forked from ChaiHao/BPOS-MVP
14 语义节点/16 边:A5 是内置审批点(驳回走 reject 声明 reopen A4), G2 的两条互斥分支显式汇合于 G2J —— 隐式合并过不了闭合校验(实测)。 顺手修 graph-to-pkg:卡点带 to 时还原成语义边,否则回边画成卡点一存盘就没了。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KeDBx2PHLavbURXB8LJJ7m
28 lines
1.0 KiB
TypeScript
28 lines
1.0 KiB
TypeScript
/**
|
|
* 播种入口(编码规范 §15 · M0/M1)。
|
|
* 种子数据本体在 `org` 模块的 domain(它是组织主数据,归 org 管);此处只做装配与运行。
|
|
*/
|
|
import { loadConfig } from './config.ts';
|
|
import { createContainer } from './container.ts';
|
|
import { seedMvp } from './seed-mvp.ts';
|
|
|
|
export async function seed(): Promise<void> {
|
|
const container = await createContainer(loadConfig());
|
|
try {
|
|
await container.org.ensureSeeded();
|
|
const { staff, positions } = await container.org.listStaff();
|
|
process.stdout.write(`种子完成:${positions.length} 个岗位 / ${staff.length} 名员工\n`);
|
|
for (const s of staff) process.stdout.write(` ${s.account.padEnd(12)} ${s.name}(${s.position.code})\n`);
|
|
|
|
// MVP 底座:四域数据 · 六活动槽位 · 1:1 流程包(README MVP 完成判据第 1 条)
|
|
process.stdout.write('\n── 治理台配置 ──\n');
|
|
await seedMvp(container);
|
|
} finally {
|
|
await container.close();
|
|
}
|
|
}
|
|
|
|
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
await seed();
|
|
}
|