@mingyuxu/check 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -0
- package/dist/critic/critique.d.ts +31 -0
- package/dist/critic/critique.d.ts.map +1 -0
- package/dist/critic/critique.js +68 -0
- package/dist/critic/critique.js.map +1 -0
- package/dist/critic/observe.d.ts +48 -0
- package/dist/critic/observe.d.ts.map +1 -0
- package/dist/critic/observe.js +62 -0
- package/dist/critic/observe.js.map +1 -0
- package/dist/domain/actions.d.ts +67 -0
- package/dist/domain/actions.d.ts.map +1 -0
- package/dist/domain/actions.js +123 -0
- package/dist/domain/actions.js.map +1 -0
- package/dist/domain/invalidation.d.ts +18 -0
- package/dist/domain/invalidation.d.ts.map +1 -0
- package/dist/domain/invalidation.js +44 -0
- package/dist/domain/invalidation.js.map +1 -0
- package/dist/domain/registers.d.ts +45 -0
- package/dist/domain/registers.d.ts.map +1 -0
- package/dist/domain/registers.js +121 -0
- package/dist/domain/registers.js.map +1 -0
- package/dist/domain/view.d.ts +48 -0
- package/dist/domain/view.d.ts.map +1 -0
- package/dist/domain/view.js +70 -0
- package/dist/domain/view.js.map +1 -0
- package/dist/forge/attribution.d.ts +18 -0
- package/dist/forge/attribution.d.ts.map +1 -0
- package/dist/forge/attribution.js +83 -0
- package/dist/forge/attribution.js.map +1 -0
- package/dist/forge/bakeoff.d.ts +35 -0
- package/dist/forge/bakeoff.d.ts.map +1 -0
- package/dist/forge/bakeoff.js +48 -0
- package/dist/forge/bakeoff.js.map +1 -0
- package/dist/forge/contracts.d.ts +67 -0
- package/dist/forge/contracts.d.ts.map +1 -0
- package/dist/forge/contracts.js +70 -0
- package/dist/forge/contracts.js.map +1 -0
- package/dist/forge/evaluate-scenario.d.ts +17 -0
- package/dist/forge/evaluate-scenario.d.ts.map +1 -0
- package/dist/forge/evaluate-scenario.js +93 -0
- package/dist/forge/evaluate-scenario.js.map +1 -0
- package/dist/forge/evaluate.d.ts +25 -0
- package/dist/forge/evaluate.d.ts.map +1 -0
- package/dist/forge/evaluate.js +81 -0
- package/dist/forge/evaluate.js.map +1 -0
- package/dist/forge/feedback.d.ts +21 -0
- package/dist/forge/feedback.d.ts.map +1 -0
- package/dist/forge/feedback.js +41 -0
- package/dist/forge/feedback.js.map +1 -0
- package/dist/forge/reflect.d.ts +35 -0
- package/dist/forge/reflect.d.ts.map +1 -0
- package/dist/forge/reflect.js +72 -0
- package/dist/forge/reflect.js.map +1 -0
- package/dist/forge/scorer.d.ts +67 -0
- package/dist/forge/scorer.d.ts.map +1 -0
- package/dist/forge/scorer.js +99 -0
- package/dist/forge/scorer.js.map +1 -0
- package/dist/forge/trace.d.ts +25 -0
- package/dist/forge/trace.d.ts.map +1 -0
- package/dist/forge/trace.js +51 -0
- package/dist/forge/trace.js.map +1 -0
- package/dist/index.d.ts +78 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +47 -0
- package/dist/index.js.map +1 -0
- package/dist/knowledge/loader.d.ts +19 -0
- package/dist/knowledge/loader.d.ts.map +1 -0
- package/dist/knowledge/loader.js +76 -0
- package/dist/knowledge/loader.js.map +1 -0
- package/dist/knowledge/retrieval.d.ts +23 -0
- package/dist/knowledge/retrieval.d.ts.map +1 -0
- package/dist/knowledge/retrieval.js +100 -0
- package/dist/knowledge/retrieval.js.map +1 -0
- package/dist/knowledge/skill.d.ts +22 -0
- package/dist/knowledge/skill.d.ts.map +1 -0
- package/dist/knowledge/skill.js +112 -0
- package/dist/knowledge/skill.js.map +1 -0
- package/dist/knowledge/write.d.ts +35 -0
- package/dist/knowledge/write.d.ts.map +1 -0
- package/dist/knowledge/write.js +84 -0
- package/dist/knowledge/write.js.map +1 -0
- package/dist/manage.d.ts +7 -0
- package/dist/manage.d.ts.map +1 -0
- package/dist/manage.js +36 -0
- package/dist/manage.js.map +1 -0
- package/dist/methods/loader.d.ts +18 -0
- package/dist/methods/loader.d.ts.map +1 -0
- package/dist/methods/loader.js +65 -0
- package/dist/methods/loader.js.map +1 -0
- package/dist/nodes/aggregate.d.ts +2 -0
- package/dist/nodes/aggregate.d.ts.map +1 -0
- package/dist/nodes/aggregate.js +101 -0
- package/dist/nodes/aggregate.js.map +1 -0
- package/dist/nodes/base.d.ts +31 -0
- package/dist/nodes/base.d.ts.map +1 -0
- package/dist/nodes/base.js +44 -0
- package/dist/nodes/base.js.map +1 -0
- package/dist/nodes/cognition.d.ts +2 -0
- package/dist/nodes/cognition.d.ts.map +1 -0
- package/dist/nodes/cognition.js +263 -0
- package/dist/nodes/cognition.js.map +1 -0
- package/dist/nodes/confidence.d.ts +9 -0
- package/dist/nodes/confidence.d.ts.map +1 -0
- package/dist/nodes/confidence.js +19 -0
- package/dist/nodes/confidence.js.map +1 -0
- package/dist/nodes/deliver.d.ts +2 -0
- package/dist/nodes/deliver.d.ts.map +1 -0
- package/dist/nodes/deliver.js +37 -0
- package/dist/nodes/deliver.js.map +1 -0
- package/dist/nodes/evidence.d.ts +2 -0
- package/dist/nodes/evidence.d.ts.map +1 -0
- package/dist/nodes/evidence.js +118 -0
- package/dist/nodes/evidence.js.map +1 -0
- package/dist/nodes/ground.d.ts +2 -0
- package/dist/nodes/ground.d.ts.map +1 -0
- package/dist/nodes/ground.js +22 -0
- package/dist/nodes/ground.js.map +1 -0
- package/dist/nodes/parse.d.ts +2 -0
- package/dist/nodes/parse.d.ts.map +1 -0
- package/dist/nodes/parse.js +72 -0
- package/dist/nodes/parse.js.map +1 -0
- package/dist/nodes/scope.d.ts +4 -0
- package/dist/nodes/scope.d.ts.map +1 -0
- package/dist/nodes/scope.js +63 -0
- package/dist/nodes/scope.js.map +1 -0
- package/dist/nodes/shape.d.ts +2 -0
- package/dist/nodes/shape.d.ts.map +1 -0
- package/dist/nodes/shape.js +111 -0
- package/dist/nodes/shape.js.map +1 -0
- package/dist/ontology/checkskill.d.ts +26 -0
- package/dist/ontology/checkskill.d.ts.map +1 -0
- package/dist/ontology/checkskill.js +89 -0
- package/dist/ontology/checkskill.js.map +1 -0
- package/dist/ontology/functions.d.ts +29 -0
- package/dist/ontology/functions.d.ts.map +1 -0
- package/dist/ontology/functions.js +143 -0
- package/dist/ontology/functions.js.map +1 -0
- package/dist/ontology/loader.d.ts +44 -0
- package/dist/ontology/loader.d.ts.map +1 -0
- package/dist/ontology/loader.js +254 -0
- package/dist/ontology/loader.js.map +1 -0
- package/dist/ontology/runtime-graph.d.ts +22 -0
- package/dist/ontology/runtime-graph.d.ts.map +1 -0
- package/dist/ontology/runtime-graph.js +111 -0
- package/dist/ontology/runtime-graph.js.map +1 -0
- package/dist/ontology/store.d.ts +65 -0
- package/dist/ontology/store.d.ts.map +1 -0
- package/dist/ontology/store.js +179 -0
- package/dist/ontology/store.js.map +1 -0
- package/dist/parsers/exec.d.ts +9 -0
- package/dist/parsers/exec.d.ts.map +1 -0
- package/dist/parsers/exec.js +41 -0
- package/dist/parsers/exec.js.map +1 -0
- package/dist/parsers/runner.d.ts +2 -0
- package/dist/parsers/runner.d.ts.map +1 -0
- package/dist/parsers/runner.js +26 -0
- package/dist/parsers/runner.js.map +1 -0
- package/dist/parsers/store.d.ts +32 -0
- package/dist/parsers/store.d.ts.map +1 -0
- package/dist/parsers/store.js +64 -0
- package/dist/parsers/store.js.map +1 -0
- package/dist/parsers/synthesize.d.ts +26 -0
- package/dist/parsers/synthesize.d.ts.map +1 -0
- package/dist/parsers/synthesize.js +63 -0
- package/dist/parsers/synthesize.js.map +1 -0
- package/dist/planner.d.ts +89 -0
- package/dist/planner.d.ts.map +1 -0
- package/dist/planner.js +785 -0
- package/dist/planner.js.map +1 -0
- package/dist/project.d.ts +4 -0
- package/dist/project.d.ts.map +1 -0
- package/dist/project.js +42 -0
- package/dist/project.js.map +1 -0
- package/dist/scenario-builder.d.ts +56 -0
- package/dist/scenario-builder.d.ts.map +1 -0
- package/dist/scenario-builder.js +366 -0
- package/dist/scenario-builder.js.map +1 -0
- package/dist/schemas/index.d.ts +12 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +8 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/judgment.d.ts +38 -0
- package/dist/schemas/judgment.d.ts.map +1 -0
- package/dist/schemas/judgment.js +45 -0
- package/dist/schemas/judgment.js.map +1 -0
- package/dist/schemas/payloads.d.ts +53 -0
- package/dist/schemas/payloads.d.ts.map +1 -0
- package/dist/schemas/payloads.js +54 -0
- package/dist/schemas/payloads.js.map +1 -0
- package/dist/schemas/result.d.ts +36 -0
- package/dist/schemas/result.d.ts.map +1 -0
- package/dist/schemas/result.js +26 -0
- package/dist/schemas/result.js.map +1 -0
- package/dist/schemas/spec.d.ts +40 -0
- package/dist/schemas/spec.d.ts.map +1 -0
- package/dist/schemas/spec.js +82 -0
- package/dist/schemas/spec.js.map +1 -0
- package/dist/schemas/target.d.ts +28 -0
- package/dist/schemas/target.d.ts.map +1 -0
- package/dist/schemas/target.js +36 -0
- package/dist/schemas/target.js.map +1 -0
- package/dist/schemas/workflow.d.ts +21 -0
- package/dist/schemas/workflow.d.ts.map +1 -0
- package/dist/schemas/workflow.js +100 -0
- package/dist/schemas/workflow.js.map +1 -0
- package/dist/skills/judge-runner.d.ts +2 -0
- package/dist/skills/judge-runner.d.ts.map +1 -0
- package/dist/skills/judge-runner.js +29 -0
- package/dist/skills/judge-runner.js.map +1 -0
- package/dist/skills/judge-synth.d.ts +31 -0
- package/dist/skills/judge-synth.d.ts.map +1 -0
- package/dist/skills/judge-synth.js +87 -0
- package/dist/skills/judge-synth.js.map +1 -0
- package/dist/subagents/worker.d.ts +5 -0
- package/dist/subagents/worker.d.ts.map +1 -0
- package/dist/subagents/worker.js +58 -0
- package/dist/subagents/worker.js.map +1 -0
- package/dist/workflows/context.d.ts +26 -0
- package/dist/workflows/context.d.ts.map +1 -0
- package/dist/workflows/context.js +23 -0
- package/dist/workflows/context.js.map +1 -0
- package/dist/workflows/executor.d.ts +44 -0
- package/dist/workflows/executor.d.ts.map +1 -0
- package/dist/workflows/executor.js +146 -0
- package/dist/workflows/executor.js.map +1 -0
- package/dist/workflows/merge.d.ts +4 -0
- package/dist/workflows/merge.d.ts.map +1 -0
- package/dist/workflows/merge.js +21 -0
- package/dist/workflows/merge.js.map +1 -0
- package/dist/workflows/run.d.ts +20 -0
- package/dist/workflows/run.d.ts.map +1 -0
- package/dist/workflows/run.js +66 -0
- package/dist/workflows/run.js.map +1 -0
- package/knowledge/methods/prose-rule.method.md +21 -0
- package/knowledge/methods/ratio-limit.method.md +31 -0
- package/knowledge/ontology/verification.yaml +268 -0
- package/package.json +36 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill.js","sourceRoot":"","sources":["../../src/knowledge/skill.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export declare const KINDS: readonly ["concept", "relation", "glossary", "regulation"];
|
|
2
|
+
export type Kind = (typeof KINDS)[number];
|
|
3
|
+
export interface Delta {
|
|
4
|
+
id: string;
|
|
5
|
+
ts: number;
|
|
6
|
+
status: string;
|
|
7
|
+
kind: string;
|
|
8
|
+
name: string;
|
|
9
|
+
scope: string;
|
|
10
|
+
slug: string;
|
|
11
|
+
target_rel: string;
|
|
12
|
+
supersedes: string | null;
|
|
13
|
+
provenance: Record<string, unknown>;
|
|
14
|
+
markdown: string;
|
|
15
|
+
}
|
|
16
|
+
export declare function proposeKnowledgeDelta(projectRoot: string, opts: {
|
|
17
|
+
kind: string;
|
|
18
|
+
name: string;
|
|
19
|
+
scope?: string;
|
|
20
|
+
body?: string;
|
|
21
|
+
sections?: Record<string, string>;
|
|
22
|
+
provenance?: Record<string, unknown>;
|
|
23
|
+
now: number;
|
|
24
|
+
}): Delta;
|
|
25
|
+
export declare function listPending(projectRoot: string): Delta[];
|
|
26
|
+
export declare function applyDelta(projectRoot: string, deltaId: string, opts: {
|
|
27
|
+
now: number;
|
|
28
|
+
}): {
|
|
29
|
+
applied: string;
|
|
30
|
+
superseded: string | null;
|
|
31
|
+
id: string;
|
|
32
|
+
kind: string;
|
|
33
|
+
name: string;
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=write.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write.d.ts","sourceRoot":"","sources":["../../src/knowledge/write.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,KAAK,4DAA6D,CAAC;AAChF,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;AAe1C,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GACxJ,KAAK,CAsBP;AAED,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,KAAK,EAAE,CAIxD;AAED,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAoB9K"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 知识写入闭环(P7)—— 确认的知识沉淀进 domain/,带版本、可追溯、被回归门守。
|
|
3
|
+
* 权限单向:只产 delta 进 pending,经【人确认】applyDelta 才写入(人类专属)。
|
|
4
|
+
* 从 Python write.py 忠实移植(file_lock 简化为同步写)。
|
|
5
|
+
*/
|
|
6
|
+
import { existsSync, readFileSync, writeFileSync, appendFileSync, mkdirSync } from "node:fs";
|
|
7
|
+
import { join, dirname } from "node:path";
|
|
8
|
+
export const KINDS = ["concept", "relation", "glossary", "regulation"];
|
|
9
|
+
const TEMPLATES = {
|
|
10
|
+
concept: ["定义", "常见形式", "与近义概念的区别", "例外", "关联概念"],
|
|
11
|
+
relation: ["关系陈述", "成立条件", "反例"],
|
|
12
|
+
glossary: ["释义", "别名"],
|
|
13
|
+
regulation: ["允许集", "禁止集", "阈值", "例外条件"],
|
|
14
|
+
};
|
|
15
|
+
function slug(name) {
|
|
16
|
+
const s = name.replace(/[^\w一-鿿]+/g, "_").replace(/^_+|_+$/g, "");
|
|
17
|
+
return s || "entry";
|
|
18
|
+
}
|
|
19
|
+
const kdir = (root) => join(root, "knowledge");
|
|
20
|
+
export function proposeKnowledgeDelta(projectRoot, opts) {
|
|
21
|
+
if (!KINDS.includes(opts.kind))
|
|
22
|
+
throw new Error(`kind 必须是 ${KINDS.join("/")} 之一`);
|
|
23
|
+
const kd = kdir(projectRoot);
|
|
24
|
+
const pend = join(kd, ".pending");
|
|
25
|
+
mkdirSync(pend, { recursive: true });
|
|
26
|
+
const scope = opts.scope ?? "finance";
|
|
27
|
+
const sl = slug(opts.name);
|
|
28
|
+
const targetRel = `domain/${scope}/${opts.kind}/${sl}.md`;
|
|
29
|
+
const superseded = existsSync(join(kd, targetRel)) ? targetRel : null;
|
|
30
|
+
const sections = { ...(opts.sections ?? {}) };
|
|
31
|
+
for (const sec of TEMPLATES[opts.kind])
|
|
32
|
+
if (!(sec in sections))
|
|
33
|
+
sections[sec] = "(待补充)";
|
|
34
|
+
const md = render(opts.name, opts.kind, scope, sections, opts.body ?? "");
|
|
35
|
+
const existing = listPending(projectRoot);
|
|
36
|
+
const delta = {
|
|
37
|
+
id: `kd-${String(existing.length + 1).padStart(3, "0")}`, ts: opts.now, status: "pending",
|
|
38
|
+
kind: opts.kind, name: opts.name, scope, slug: sl, target_rel: targetRel,
|
|
39
|
+
supersedes: superseded, provenance: opts.provenance ?? {}, markdown: md,
|
|
40
|
+
};
|
|
41
|
+
appendFileSync(join(pend, "queue.jsonl"), JSON.stringify(delta) + "\n", "utf-8");
|
|
42
|
+
return delta;
|
|
43
|
+
}
|
|
44
|
+
export function listPending(projectRoot) {
|
|
45
|
+
const q = join(kdir(projectRoot), ".pending", "queue.jsonl");
|
|
46
|
+
if (!existsSync(q))
|
|
47
|
+
return [];
|
|
48
|
+
return readFileSync(q, "utf-8").split("\n").filter((l) => l.trim()).map((l) => JSON.parse(l)).filter((d) => d.status === "pending");
|
|
49
|
+
}
|
|
50
|
+
export function applyDelta(projectRoot, deltaId, opts) {
|
|
51
|
+
const kd = kdir(projectRoot);
|
|
52
|
+
const q = join(kd, ".pending", "queue.jsonl");
|
|
53
|
+
if (!existsSync(q))
|
|
54
|
+
throw new Error("没有待处理知识 delta");
|
|
55
|
+
const rows = readFileSync(q, "utf-8").split("\n").filter((l) => l.trim()).map((l) => JSON.parse(l));
|
|
56
|
+
const match = rows.find((r) => r.id === deltaId && r.status === "pending");
|
|
57
|
+
if (!match)
|
|
58
|
+
throw new Error(`没有待处理 delta ${deltaId}`);
|
|
59
|
+
const dest = join(kd, match.target_rel);
|
|
60
|
+
mkdirSync(dirname(dest), { recursive: true });
|
|
61
|
+
if (match.supersedes && existsSync(dest)) {
|
|
62
|
+
const arch = join(kd, ".versions", match.slug);
|
|
63
|
+
mkdirSync(arch, { recursive: true });
|
|
64
|
+
writeFileSync(join(arch, `${Math.floor(opts.now)}.md`), readFileSync(dest, "utf-8"), "utf-8");
|
|
65
|
+
}
|
|
66
|
+
writeFileSync(dest, match.markdown, "utf-8");
|
|
67
|
+
for (const r of rows)
|
|
68
|
+
if (r.id === deltaId) {
|
|
69
|
+
r.status = "applied";
|
|
70
|
+
r.applied_at = opts.now;
|
|
71
|
+
r.applied_to = dest;
|
|
72
|
+
}
|
|
73
|
+
writeFileSync(q, rows.map((r) => JSON.stringify(r)).join("\n") + "\n", "utf-8");
|
|
74
|
+
return { applied: dest, superseded: match.supersedes, id: deltaId, kind: match.kind, name: match.name };
|
|
75
|
+
}
|
|
76
|
+
function render(name, kind, scope, sections, body) {
|
|
77
|
+
const out = ["---", `name: ${name}`, `kind: ${kind}`, `scope: ${scope}`, "version: 1.0.0", "---", `# ${name}`];
|
|
78
|
+
if (body.trim())
|
|
79
|
+
out.push(body.trim());
|
|
80
|
+
for (const [sec, content] of Object.entries(sections))
|
|
81
|
+
out.push(`\n## ${sec}\n${String(content).trim() || "无"}`);
|
|
82
|
+
return out.join("\n") + "\n";
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=write.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write.js","sourceRoot":"","sources":["../../src/knowledge/write.ts"],"names":[],"mappings":"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"}
|
package/dist/manage.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** 归档场景目录,返回归档位置。之后 build 同名场景 = 从零重建。 */
|
|
2
|
+
export declare function resetScenario(workspace: string, scenarioKey: string, o?: {
|
|
3
|
+
keepPack?: boolean;
|
|
4
|
+
now?: number;
|
|
5
|
+
}): string;
|
|
6
|
+
export declare function listArchives(workspace: string, scenarioKey?: string): string[];
|
|
7
|
+
//# sourceMappingURL=manage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manage.d.ts","sourceRoot":"","sources":["../src/manage.ts"],"names":[],"mappings":"AAaA,0CAA0C;AAC1C,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,GAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,MAAM,CAY1H;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAO9E"}
|
package/dist/manage.js
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* workspace 管理 —— 场景归档与重建。纪律:重建 = 归档后重来,从不销毁。
|
|
3
|
+
* 从 Python manage.py 忠实移植。
|
|
4
|
+
*/
|
|
5
|
+
import { existsSync, mkdirSync, renameSync, cpSync, readdirSync, statSync } from "node:fs";
|
|
6
|
+
import { join } from "node:path";
|
|
7
|
+
function stamp(now) {
|
|
8
|
+
const d = new Date(now * 1000);
|
|
9
|
+
const p = (n) => String(n).padStart(2, "0");
|
|
10
|
+
return `${d.getFullYear()}${p(d.getMonth() + 1)}${p(d.getDate())}-${p(d.getHours())}${p(d.getMinutes())}${p(d.getSeconds())}`;
|
|
11
|
+
}
|
|
12
|
+
/** 归档场景目录,返回归档位置。之后 build 同名场景 = 从零重建。 */
|
|
13
|
+
export function resetScenario(workspace, scenarioKey, o = {}) {
|
|
14
|
+
const home = join(workspace, scenarioKey);
|
|
15
|
+
if (!existsSync(join(home, ".session", "state.json")))
|
|
16
|
+
throw new Error(`场景 ${scenarioKey} 不存在(${home})——无可重建。`);
|
|
17
|
+
const archiveRoot = join(workspace, ".archive");
|
|
18
|
+
mkdirSync(archiveRoot, { recursive: true });
|
|
19
|
+
const dest = join(archiveRoot, `${scenarioKey}-${stamp(o.now ?? Date.now() / 1000)}`);
|
|
20
|
+
renameSync(home, dest);
|
|
21
|
+
if (o.keepPack && existsSync(join(dest, "pack", "pack.json"))) {
|
|
22
|
+
mkdirSync(home, { recursive: true });
|
|
23
|
+
cpSync(join(dest, "pack"), join(home, "pack"), { recursive: true });
|
|
24
|
+
}
|
|
25
|
+
return dest;
|
|
26
|
+
}
|
|
27
|
+
export function listArchives(workspace, scenarioKey) {
|
|
28
|
+
const archiveRoot = join(workspace, ".archive");
|
|
29
|
+
if (!existsSync(archiveRoot))
|
|
30
|
+
return [];
|
|
31
|
+
return readdirSync(archiveRoot)
|
|
32
|
+
.filter((n) => statSync(join(archiveRoot, n)).isDirectory() && (!scenarioKey || n.startsWith(`${scenarioKey}-`)))
|
|
33
|
+
.sort()
|
|
34
|
+
.map((n) => join(archiveRoot, n));
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=manage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manage.js","sourceRoot":"","sources":["../src/manage.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC3F,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,SAAS,KAAK,CAAC,GAAW;IACxB,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;IAC/B,MAAM,CAAC,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACpD,OAAO,GAAG,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC;AAChI,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,aAAa,CAAC,SAAiB,EAAE,WAAmB,EAAE,IAA0C,EAAE;IAChH,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAC1C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,MAAM,WAAW,QAAQ,IAAI,UAAU,CAAC,CAAC;IAChH,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAChD,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,WAAW,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;IACtF,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACvB,IAAI,CAAC,CAAC,QAAQ,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;QAC9D,SAAS,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,SAAiB,EAAE,WAAoB;IAClE,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAChD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,CAAC;IACxC,OAAO,WAAW,CAAC,WAAW,CAAC;SAC5B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC;SAChH,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;AACtC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface Method {
|
|
2
|
+
method_id: string;
|
|
3
|
+
version: string;
|
|
4
|
+
applies_to_rule_kind: string;
|
|
5
|
+
produces: string[];
|
|
6
|
+
emits_function?: string;
|
|
7
|
+
body: string;
|
|
8
|
+
source: string;
|
|
9
|
+
}
|
|
10
|
+
/** 方法目录:<root>/knowledge/methods → 包内回落。 */
|
|
11
|
+
export declare function methodsDirs(root?: string): string[];
|
|
12
|
+
/** 加载所有 Method(后出现目录同名覆盖)。 */
|
|
13
|
+
export declare function loadMethods(root?: string): Method[];
|
|
14
|
+
/** 按 rule_kind 选方法(同类取版本号最大的);没有专用方法时回落到通用 Method(*)。 */
|
|
15
|
+
export declare function selectMethod(methods: Method[], ruleKind: string): Method | null;
|
|
16
|
+
/** 方法 id@版本,用于 CheckSkill.provenance.built_by_method。 */
|
|
17
|
+
export declare const methodRef: (m: Method) => string;
|
|
18
|
+
//# sourceMappingURL=loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/methods/loader.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,MAAM;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAmBD,4CAA4C;AAC5C,wBAAgB,WAAW,CAAC,IAAI,GAAE,MAAsB,GAAG,MAAM,EAAE,CAOlE;AAED,8BAA8B;AAC9B,wBAAgB,WAAW,CAAC,IAAI,GAAE,MAAsB,GAAG,MAAM,EAAE,CAWlE;AAED,yDAAyD;AACzD,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAK/E;AAED,yDAAyD;AACzD,eAAO,MAAM,SAAS,GAAI,GAAG,MAAM,KAAG,MAAwC,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Method(方法论 / meta-skill)寄存器 —— 读 knowledge/methods/*.method.md。
|
|
3
|
+
* Method 是「怎么造 CheckSkill」的配方:构建期由 Build Loop 消费,产出 ontology 对象(v5)。
|
|
4
|
+
* 与运行期 CheckSkill 严格分层:Method 不进冻结包,是工厂不是产品。
|
|
5
|
+
*/
|
|
6
|
+
import { existsSync, readFileSync, readdirSync } from "node:fs";
|
|
7
|
+
import { join, dirname, basename } from "node:path";
|
|
8
|
+
import { fileURLToPath } from "node:url";
|
|
9
|
+
import { parseYaml } from "../ontology/loader.js";
|
|
10
|
+
/** 拆 frontmatter(--- yaml ---)+ body。 */
|
|
11
|
+
function parseMethodFile(text, source) {
|
|
12
|
+
const m = /^---\n([\s\S]*?)\n---\n?([\s\S]*)$/.exec(text);
|
|
13
|
+
if (!m)
|
|
14
|
+
return null;
|
|
15
|
+
const fm = parseYaml(m[1]);
|
|
16
|
+
if (!fm.method_id)
|
|
17
|
+
return null;
|
|
18
|
+
return {
|
|
19
|
+
method_id: String(fm.method_id),
|
|
20
|
+
version: String(fm.version ?? "1"),
|
|
21
|
+
applies_to_rule_kind: String(fm.applies_to_rule_kind ?? ""),
|
|
22
|
+
produces: Array.isArray(fm.produces) ? fm.produces.map(String) : [],
|
|
23
|
+
emits_function: fm.emits_function ? String(fm.emits_function) : undefined,
|
|
24
|
+
body: (m[2] ?? "").trim(),
|
|
25
|
+
source,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
/** 方法目录:<root>/knowledge/methods → 包内回落。 */
|
|
29
|
+
export function methodsDirs(root = process.cwd()) {
|
|
30
|
+
const dirs = [join(root, "knowledge", "methods")]; // 项目自定义优先
|
|
31
|
+
try {
|
|
32
|
+
const here = dirname(fileURLToPath(import.meta.url)); // <pkg>/{src|dist}/methods
|
|
33
|
+
for (const up of ["../..", "../../..", "../../../.."])
|
|
34
|
+
dirs.push(join(here, up, "knowledge", "methods"));
|
|
35
|
+
}
|
|
36
|
+
catch { /* ignore */ }
|
|
37
|
+
return dirs;
|
|
38
|
+
}
|
|
39
|
+
/** 加载所有 Method(后出现目录同名覆盖)。 */
|
|
40
|
+
export function loadMethods(root = process.cwd()) {
|
|
41
|
+
const byId = new Map();
|
|
42
|
+
for (const dir of methodsDirs(root)) {
|
|
43
|
+
if (!existsSync(dir))
|
|
44
|
+
continue;
|
|
45
|
+
for (const name of readdirSync(dir)) {
|
|
46
|
+
if (!name.endsWith(".method.md"))
|
|
47
|
+
continue;
|
|
48
|
+
const mth = parseMethodFile(readFileSync(join(dir, name), "utf-8"), basename(name));
|
|
49
|
+
if (mth)
|
|
50
|
+
byId.set(mth.method_id, mth);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return [...byId.values()];
|
|
54
|
+
}
|
|
55
|
+
/** 按 rule_kind 选方法(同类取版本号最大的);没有专用方法时回落到通用 Method(*)。 */
|
|
56
|
+
export function selectMethod(methods, ruleKind) {
|
|
57
|
+
const exact = methods.filter((m) => m.applies_to_rule_kind === ruleKind);
|
|
58
|
+
const cands = exact.length ? exact : methods.filter((m) => m.applies_to_rule_kind === "*");
|
|
59
|
+
if (!cands.length)
|
|
60
|
+
return null;
|
|
61
|
+
return cands.sort((a, b) => Number(b.version) - Number(a.version))[0];
|
|
62
|
+
}
|
|
63
|
+
/** 方法 id@版本,用于 CheckSkill.provenance.built_by_method。 */
|
|
64
|
+
export const methodRef = (m) => `${m.method_id}@v${m.version}`;
|
|
65
|
+
//# sourceMappingURL=loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/methods/loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aggregate.d.ts","sourceRoot":"","sources":["../../src/nodes/aggregate.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/** ⑦ 汇总 Aggregate — 把 checks 汇成目标判决;升级(L2 有界循环)。从 Python aggregate.py 移植。 */
|
|
2
|
+
import { component } from "./base.js";
|
|
3
|
+
import { makeConfidence, makeOutcome, makeResult } from "../schemas/result.js";
|
|
4
|
+
import * as conf from "./confidence.js";
|
|
5
|
+
function confidence(ctx, sourcePresent) {
|
|
6
|
+
const prior = ctx.scratch.method_prior ?? 0.75;
|
|
7
|
+
const historical = ctx.scratch.historical ?? 1.0;
|
|
8
|
+
const corner = ctx.scratch.corner_case_proximity ?? 0.0;
|
|
9
|
+
const score = conf.compute(prior, sourcePresent ? 1.0 : 0.6, historical, corner);
|
|
10
|
+
return makeConfidence({ score, method_prior: prior, historical, corner_case_proximity: corner, band: conf.band(score) });
|
|
11
|
+
}
|
|
12
|
+
component("Aggregate", "verdict_policy", (ctx, params) => {
|
|
13
|
+
const t = ctx.target;
|
|
14
|
+
const mode = t.postprocess.verdict_policy ?? params.mode ?? "any_fail";
|
|
15
|
+
const checks = ctx.checks;
|
|
16
|
+
const statuses = checks.map((c) => c.status);
|
|
17
|
+
const has = (s) => statuses.includes(s);
|
|
18
|
+
let verdict;
|
|
19
|
+
if (!checks.length)
|
|
20
|
+
verdict = "missing";
|
|
21
|
+
else if (mode === "all_pass")
|
|
22
|
+
verdict = statuses.every((s) => s === "pass" || s === "not_applicable") ? "pass" : has("fail") ? "fail" : "review_required";
|
|
23
|
+
else if (mode === "threshold")
|
|
24
|
+
verdict = statuses.filter((s) => s === "fail").length >= Number(params.fail_if_failed_gte ?? 2) ? "fail" : "pass";
|
|
25
|
+
else {
|
|
26
|
+
if (has("fail"))
|
|
27
|
+
verdict = "fail";
|
|
28
|
+
else if (has("uncertain"))
|
|
29
|
+
verdict = "review_required";
|
|
30
|
+
else if (statuses.every((s) => s === "missing"))
|
|
31
|
+
verdict = "missing";
|
|
32
|
+
else if (statuses.every((s) => s === "pass" || s === "not_applicable"))
|
|
33
|
+
verdict = "pass";
|
|
34
|
+
else
|
|
35
|
+
verdict = "review_required";
|
|
36
|
+
}
|
|
37
|
+
const evidence = [];
|
|
38
|
+
for (const c of checks) {
|
|
39
|
+
for (const r of c.supporting_evidence_refs ?? []) {
|
|
40
|
+
const blk = ctx.document.get(r);
|
|
41
|
+
evidence.push({ quote: blk ? blk.text : "", block_id: r, grounded: true });
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
ctx.result = makeResult(t.target_id, {
|
|
45
|
+
unit: { doc: ctx.document.document_id },
|
|
46
|
+
outcome: makeOutcome({ kind: "verdict", verdict }),
|
|
47
|
+
status: "ok",
|
|
48
|
+
checks: [...checks],
|
|
49
|
+
evidence,
|
|
50
|
+
confidence: confidence(ctx, evidence.length > 0),
|
|
51
|
+
provenance: { workflow: ctx.scratch.workflow_id ?? "" },
|
|
52
|
+
});
|
|
53
|
+
}, { costHint: "free" });
|
|
54
|
+
component("Aggregate", "value_result", (ctx) => {
|
|
55
|
+
const t = ctx.target;
|
|
56
|
+
const ext = ctx.scratch.extraction ?? {};
|
|
57
|
+
const value = ext.value;
|
|
58
|
+
const status = ctx.scratch.extract_status ?? (value != null ? "extracted" : "confirmed_no_match");
|
|
59
|
+
const ref = ext.evidence_ref;
|
|
60
|
+
const evidence = [];
|
|
61
|
+
if (value != null && ref) {
|
|
62
|
+
const blk = ctx.document.get(ref);
|
|
63
|
+
evidence.push({ quote: blk ? blk.text : ext.原文 ?? "", block_id: ref, grounded: true });
|
|
64
|
+
}
|
|
65
|
+
const prov = { workflow: ctx.scratch.workflow_id ?? "", 依据: ext.依据 ?? "" };
|
|
66
|
+
if (ctx.scratch.override_log)
|
|
67
|
+
prov.overrides = ctx.scratch.override_log;
|
|
68
|
+
ctx.result = makeResult(t.target_id, {
|
|
69
|
+
unit: { doc: ctx.document.document_id },
|
|
70
|
+
outcome: makeOutcome({ kind: "value", value }),
|
|
71
|
+
status, evidence, confidence: confidence(ctx, evidence.length > 0),
|
|
72
|
+
provenance: prov, derived: { ...(ctx.scratch.derived ?? {}) }, sub_results: [...(ctx.scratch.sub_results ?? [])],
|
|
73
|
+
});
|
|
74
|
+
}, { costHint: "free" });
|
|
75
|
+
component("Aggregate", "comparison_result", (ctx) => {
|
|
76
|
+
const t = ctx.target;
|
|
77
|
+
const ext = ctx.scratch.extraction ?? {};
|
|
78
|
+
const cmp = ctx.scratch.comparison;
|
|
79
|
+
const value = ext.value;
|
|
80
|
+
const ref = ext.evidence_ref;
|
|
81
|
+
const evidence = [];
|
|
82
|
+
if (value != null && ref) {
|
|
83
|
+
const blk = ctx.document.get(ref);
|
|
84
|
+
evidence.push({ quote: blk ? blk.text : ext.原文 ?? "", block_id: ref, grounded: true });
|
|
85
|
+
}
|
|
86
|
+
let status, outcome;
|
|
87
|
+
if (cmp == null) {
|
|
88
|
+
status = value == null ? "confirmed_no_match" : "extracted";
|
|
89
|
+
outcome = makeOutcome({ kind: "value", value });
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
status = "extracted";
|
|
93
|
+
outcome = makeOutcome({ kind: "comparison", comparison: cmp });
|
|
94
|
+
}
|
|
95
|
+
ctx.result = makeResult(t.target_id, {
|
|
96
|
+
unit: { doc: ctx.document.document_id, case: ctx.scratch.case_id ?? "" },
|
|
97
|
+
outcome, status, evidence, confidence: confidence(ctx, value != null),
|
|
98
|
+
provenance: { workflow: ctx.scratch.workflow_id ?? "", reference: t.reference.source ?? "" },
|
|
99
|
+
});
|
|
100
|
+
}, { costHint: "free" });
|
|
101
|
+
//# sourceMappingURL=aggregate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aggregate.js","sourceRoot":"","sources":["../../src/nodes/aggregate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 组件注册表:按 (NodeType, method) 键索引的类型化积木。
|
|
3
|
+
* 新能力 = 在这里加一个受控、带契约的组件(评审+注册门)。执行面永不自由代码。
|
|
4
|
+
* 从 Python nodes/base.py 忠实移植(装饰器 → component() 注册函数)。
|
|
5
|
+
*/
|
|
6
|
+
import type { RunContext } from "../workflows/context.js";
|
|
7
|
+
/** NodeType -> 属于八段中的哪一段。 */
|
|
8
|
+
export declare const STAGE_OF_TYPE: Record<string, string>;
|
|
9
|
+
export declare const AUTONOMY: readonly ["L0", "L1", "L2", "L3"];
|
|
10
|
+
export type Autonomy = (typeof AUTONOMY)[number];
|
|
11
|
+
export type NodeFn = (ctx: RunContext, params: Record<string, unknown>) => void | Promise<void>;
|
|
12
|
+
export interface ComponentSpec {
|
|
13
|
+
nodeType: string;
|
|
14
|
+
method: string;
|
|
15
|
+
fn: NodeFn;
|
|
16
|
+
autonomy: Autonomy;
|
|
17
|
+
costHint?: string;
|
|
18
|
+
qualityHint?: string;
|
|
19
|
+
whenToUse?: string;
|
|
20
|
+
}
|
|
21
|
+
export declare function component(nodeType: string, method: string, fn: NodeFn, opts?: {
|
|
22
|
+
autonomy?: Autonomy;
|
|
23
|
+
costHint?: string;
|
|
24
|
+
qualityHint?: string;
|
|
25
|
+
whenToUse?: string;
|
|
26
|
+
}): void;
|
|
27
|
+
export declare function getComponent(nodeType: string, method: string): ComponentSpec;
|
|
28
|
+
export declare function registry(): Set<string>;
|
|
29
|
+
/** 触发各节点模块的 component() 注册(幂等)。 */
|
|
30
|
+
export declare function loadBuiltinComponents(): Promise<void>;
|
|
31
|
+
//# sourceMappingURL=base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/nodes/base.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D,6BAA6B;AAC7B,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAShD,CAAC;AAEF,eAAO,MAAM,QAAQ,mCAAoC,CAAC;AAC1D,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjD,MAAM,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEhG,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAKD,wBAAgB,SAAS,CACvB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,MAAM,EACV,IAAI,GAAE;IAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAC9F,IAAI,CAKN;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,CAI5E;AAED,wBAAgB,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,CAEtC;AAGD,mCAAmC;AACnC,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAQ3D"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/** NodeType -> 属于八段中的哪一段。 */
|
|
2
|
+
export const STAGE_OF_TYPE = {
|
|
3
|
+
Parse: "parse", SectionTree: "parse", Chunk: "parse",
|
|
4
|
+
Profile: "scope", Applicability: "scope",
|
|
5
|
+
Locate: "evidence", Filter: "evidence", Score: "evidence", Pack: "evidence", Join: "evidence",
|
|
6
|
+
Extract: "cognition", Judge: "cognition",
|
|
7
|
+
Ground: "ground",
|
|
8
|
+
Normalize: "shape", Standardize: "shape", Derive: "shape", Reconcile: "shape", Compare: "shape",
|
|
9
|
+
Aggregate: "aggregate", Vote: "aggregate", Escalate: "aggregate",
|
|
10
|
+
Report: "deliver",
|
|
11
|
+
};
|
|
12
|
+
export const AUTONOMY = ["L0", "L1", "L2", "L3"];
|
|
13
|
+
const REGISTRY = new Map();
|
|
14
|
+
const key = (t, m) => `${t}.${m}`;
|
|
15
|
+
export function component(nodeType, method, fn, opts = {}) {
|
|
16
|
+
if (!(nodeType in STAGE_OF_TYPE))
|
|
17
|
+
throw new Error(`unknown node_type ${nodeType}`);
|
|
18
|
+
const autonomy = opts.autonomy ?? "L0";
|
|
19
|
+
if (!AUTONOMY.includes(autonomy))
|
|
20
|
+
throw new Error(`unknown autonomy ${autonomy}`);
|
|
21
|
+
REGISTRY.set(key(nodeType, method), { nodeType, method, fn, autonomy, ...opts });
|
|
22
|
+
}
|
|
23
|
+
export function getComponent(nodeType, method) {
|
|
24
|
+
const c = REGISTRY.get(key(nodeType, method));
|
|
25
|
+
if (!c)
|
|
26
|
+
throw new Error(`no component ${nodeType}.${method}`);
|
|
27
|
+
return c;
|
|
28
|
+
}
|
|
29
|
+
export function registry() {
|
|
30
|
+
return new Set(REGISTRY.keys());
|
|
31
|
+
}
|
|
32
|
+
let loaded = false;
|
|
33
|
+
/** 触发各节点模块的 component() 注册(幂等)。 */
|
|
34
|
+
export async function loadBuiltinComponents() {
|
|
35
|
+
if (loaded)
|
|
36
|
+
return;
|
|
37
|
+
await Promise.all([
|
|
38
|
+
import("./parse.js"), import("./scope.js"), import("./evidence.js"),
|
|
39
|
+
import("./cognition.js"), import("./ground.js"), import("./shape.js"),
|
|
40
|
+
import("./aggregate.js"), import("./deliver.js"),
|
|
41
|
+
]);
|
|
42
|
+
loaded = true;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/nodes/base.ts"],"names":[],"mappings":"AAOA,6BAA6B;AAC7B,MAAM,CAAC,MAAM,aAAa,GAA2B;IACnD,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO;IACpD,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO;IACxC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU;IAC7F,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW;IACxC,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;IAC/F,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW;IAChE,MAAM,EAAE,SAAS;CAClB,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAU,CAAC;AAe1D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAyB,CAAC;AAClD,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;AAElD,MAAM,UAAU,SAAS,CACvB,QAAgB,EAChB,MAAc,EACd,EAAU,EACV,OAA6F,EAAE;IAE/F,IAAI,CAAC,CAAC,QAAQ,IAAI,aAAa,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAC;IACnF,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC;IACvC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,QAAQ,EAAE,CAAC,CAAC;IAClF,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;AACnF,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,QAAgB,EAAE,MAAc;IAC3D,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9C,IAAI,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,QAAQ,IAAI,MAAM,EAAE,CAAC,CAAC;IAC9D,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,OAAO,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AAClC,CAAC;AAED,IAAI,MAAM,GAAG,KAAK,CAAC;AACnB,mCAAmC;AACnC,MAAM,CAAC,KAAK,UAAU,qBAAqB;IACzC,IAAI,MAAM;QAAE,OAAO;IACnB,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,MAAM,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC;QACnE,MAAM,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC;QACrE,MAAM,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;KACjD,CAAC,CAAC;IACH,MAAM,GAAG,IAAI,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cognition.d.ts","sourceRoot":"","sources":["../../src/nodes/cognition.ts"],"names":[],"mappings":""}
|