@aster-cloud/aster-lang-ts 1.0.34 → 1.0.36

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.
Files changed (45) hide show
  1. package/dist/src/core/inferred_fields.d.ts +6 -0
  2. package/dist/src/core/inferred_fields.d.ts.map +1 -0
  3. package/dist/src/core/inferred_fields.js +29 -0
  4. package/dist/src/core/inferred_fields.js.map +1 -0
  5. package/dist/src/index.d.ts +14 -0
  6. package/dist/src/index.d.ts.map +1 -1
  7. package/dist/src/index.js +11 -0
  8. package/dist/src/index.js.map +1 -1
  9. package/dist/src/lower_to_core.d.ts.map +1 -1
  10. package/dist/src/lower_to_core.js +12 -5
  11. package/dist/src/lower_to_core.js.map +1 -1
  12. package/dist/src/mapping/pipeline.d.ts +87 -0
  13. package/dist/src/mapping/pipeline.d.ts.map +1 -0
  14. package/dist/src/mapping/pipeline.js +145 -0
  15. package/dist/src/mapping/pipeline.js.map +1 -0
  16. package/dist/src/mapping/quantity-ir.js +68 -5
  17. package/dist/src/mapping/quantity-ir.js.map +1 -1
  18. package/dist/src/mapping/review-queue.d.ts +92 -0
  19. package/dist/src/mapping/review-queue.d.ts.map +1 -0
  20. package/dist/src/mapping/review-queue.js +105 -0
  21. package/dist/src/mapping/review-queue.js.map +1 -0
  22. package/dist/src/typecheck/expression.d.ts.map +1 -1
  23. package/dist/src/typecheck/expression.js +6 -1
  24. package/dist/src/typecheck/expression.js.map +1 -1
  25. package/dist/test/unit/mapping/bridge-parity.test.d.ts +2 -0
  26. package/dist/test/unit/mapping/bridge-parity.test.d.ts.map +1 -0
  27. package/dist/test/unit/mapping/bridge-parity.test.js +74 -0
  28. package/dist/test/unit/mapping/bridge-parity.test.js.map +1 -0
  29. package/dist/test/unit/mapping/pipeline.test.d.ts +2 -0
  30. package/dist/test/unit/mapping/pipeline.test.d.ts.map +1 -0
  31. package/dist/test/unit/mapping/pipeline.test.js +108 -0
  32. package/dist/test/unit/mapping/pipeline.test.js.map +1 -0
  33. package/dist/test/unit/mapping/review-queue.test.d.ts +2 -0
  34. package/dist/test/unit/mapping/review-queue.test.d.ts.map +1 -0
  35. package/dist/test/unit/mapping/review-queue.test.js +112 -0
  36. package/dist/test/unit/mapping/review-queue.test.js.map +1 -0
  37. package/dist/test/unit/mapping/verdict-parity.test.d.ts +2 -0
  38. package/dist/test/unit/mapping/verdict-parity.test.d.ts.map +1 -0
  39. package/dist/test/unit/mapping/verdict-parity.test.js +85 -0
  40. package/dist/test/unit/mapping/verdict-parity.test.js.map +1 -0
  41. package/dist/test/unit/typecheck/untyped-field-dynamic.test.d.ts +2 -0
  42. package/dist/test/unit/typecheck/untyped-field-dynamic.test.d.ts.map +1 -0
  43. package/dist/test/unit/typecheck/untyped-field-dynamic.test.js +172 -0
  44. package/dist/test/unit/typecheck/untyped-field-dynamic.test.js.map +1 -0
  45. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"quantity-ir.js","sourceRoot":"","sources":["../../../src/mapping/quantity-ir.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quantity-ir.js","sourceRoot":"","sources":["../../../src/mapping/quantity-ir.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,92 @@
1
+ import type { LLMProvider } from '../ai/llm-provider.js';
2
+ import type { Proof, ProofSubject } from './proof-ir.js';
3
+ /**
4
+ * 人工复核队列(ADR 0037 §3 三段式的**第③段**)。
5
+ *
6
+ * <h2>三段式:机器只做前两段</h2>
7
+ *
8
+ * <pre>
9
+ * ① 提出 LLM / 确定性生成器 → 候选(**没有任何判定力**)
10
+ * ② 判定 确定性 verifier → VERIFIED / REVIEW_REQUIRED / REJECTED
11
+ * ③ 复核 **人** → Proof(subject = DOMAIN_EXPERT / ENGINEER)
12
+ * </pre>
13
+ *
14
+ * <p>★ADR §3 原话:「AI 可以提出映射,但**不能定义什么叫正确**」。
15
+ * 本模块把这条写进类型:
16
+ *
17
+ * <ul>
18
+ * <li>{@link buildReviewQueue} 只产出 {@link ReviewItem}(待复核项),
19
+ * <b>不产出 Proof</b>;</li>
20
+ * <li>{@link recordHumanProof} 是唯一能产出 Proof 的入口,且它
21
+ * <b>要求调用方传入人的身份</b>——机器无法自行调用它来"批准"自己。</li>
22
+ * </ul>
23
+ *
24
+ * <h2>★这也正是 UI 需要的数据结构</h2>
25
+ *
26
+ * 一个复核界面要展示的就是 {@link ReviewQueue}:
27
+ * 三类计数(已证明 / 待复核 / 已拒绝)+ 每条待复核项的
28
+ * 「原文片段 ↔ 目标节点 ↔ 为什么机器证不了」。
29
+ */
30
+ /** 待复核项的来源。 */
31
+ export type ReviewSource =
32
+ /** 来自候选映射验证(机器判 REVIEW_REQUIRED)。 */
33
+ {
34
+ readonly kind: 'MAPPING';
35
+ readonly nodeId: string;
36
+ }
37
+ /** 来自 LLM 的 Entity 提出(对 Entity 恒需人复核)。 */
38
+ | {
39
+ readonly kind: 'ENTITY';
40
+ readonly proposedBy: string;
41
+ readonly proposedKind: string;
42
+ };
43
+ /** 一条待人工复核的项。★它**不是**结论,只是"机器证不了、请人看"。 */
44
+ export interface ReviewItem {
45
+ /** 原文片段——UI 直接高亮这段。 */
46
+ readonly text: string;
47
+ /** 原文位置,用于双向导航。 */
48
+ readonly span: {
49
+ readonly start: number;
50
+ readonly end: number;
51
+ };
52
+ /** 机器为什么证不了(人类可读)。 */
53
+ readonly reason: string;
54
+ readonly source: ReviewSource;
55
+ }
56
+ /** 复核队列。★`verified`/`rejected` 只给计数,UI 不需要逐条渲染它们。 */
57
+ export interface ReviewQueue {
58
+ readonly items: readonly ReviewItem[];
59
+ readonly counts: {
60
+ readonly verified: number;
61
+ readonly reviewRequired: number;
62
+ readonly rejected: number;
63
+ };
64
+ /** 过程中所有"没做成"的事——★不静默丢弃。 */
65
+ readonly diagnostics: readonly string[];
66
+ }
67
+ /**
68
+ * 把一份文档变成**待复核队列**。
69
+ *
70
+ * @param provider 可选。传入则跑三段式第①段(LLM 提出 Entity);
71
+ * 不传则只有映射类待复核项。
72
+ * ★LLM 是**可选增强**,不是主链路依赖——没有它整条链路照样跑。
73
+ */
74
+ export declare function buildReviewQueue(document: string, provider?: LLMProvider): Promise<ReviewQueue>;
75
+ /**
76
+ * 记录一条**人工**复核结论,产出不可变 Proof。
77
+ *
78
+ * <p>★这是全模块**唯一**能产出 Proof 的入口,且它强制要求 `subject`
79
+ * 是人(`DOMAIN_EXPERT` / `ENGINEER`)——**机器不得代签**(ADR §3)。
80
+ * 若允许传 `VERIFIER`,那这个函数就变成了"机器给自己发证书"。
81
+ *
82
+ * @param document 原文(用于按 nodeId 取 contentHash,保证 proof 锚定到
83
+ * **做出判定时**的那一版内容)
84
+ * @param nodeId 复核目标
85
+ * @param subject 复核人身份——必须可追溯
86
+ * @param verdict 人的结论
87
+ * @param rationale 人的理由(自然语言,**必填**:没有理由的批准等于没有复核)
88
+ */
89
+ export declare function recordHumanProof(document: string, item: ReviewItem, nodeId: string, subject: Extract<ProofSubject, {
90
+ kind: 'DOMAIN_EXPERT' | 'ENGINEER';
91
+ }>, verdict: 'VERIFIED' | 'REJECTED', rationale: string, now: string): Proof;
92
+ //# sourceMappingURL=review-queue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-queue.d.ts","sourceRoot":"","sources":["../../../src/mapping/review-queue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAOzD,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAGzD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,eAAe;AACf,MAAM,MAAM,YAAY;AACtB,qCAAqC;AACnC;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AACvD,0CAA0C;GACxC;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5F,0CAA0C;AAC1C,MAAM,WAAW,UAAU;IACzB,uBAAuB;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,mBAAmB;IACnB,QAAQ,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAChE,sBAAsB;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;CAC/B;AAED,qDAAqD;AACrD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE;QACf,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;QAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,4BAA4B;IAC5B,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,WAAW,CAAC,CAuDtB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,CAAC,YAAY,EAAE;IAAE,IAAI,EAAE,eAAe,GAAG,UAAU,CAAA;CAAE,CAAC,EACtE,OAAO,EAAE,UAAU,GAAG,UAAU,EAChC,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,GACV,KAAK,CAyBP"}
@@ -0,0 +1,105 @@
1
+ import { computeNodeIds } from '../nodeid/node-id-map.js';
2
+ import { canonicalize } from '../frontend/canonicalizer.js';
3
+ import { lex } from '../frontend/lexer.js';
4
+ import { parse } from '../parser.js';
5
+ import { lowerModule } from '../lower_to_core.js';
6
+ import { proposeEntities, verifyEntityCandidate } from './entity-proposer.js';
7
+ import { runSemanticBridge } from './pipeline.js';
8
+ /**
9
+ * 把一份文档变成**待复核队列**。
10
+ *
11
+ * @param provider 可选。传入则跑三段式第①段(LLM 提出 Entity);
12
+ * 不传则只有映射类待复核项。
13
+ * ★LLM 是**可选增强**,不是主链路依赖——没有它整条链路照样跑。
14
+ */
15
+ export async function buildReviewQueue(document, provider) {
16
+ const bridge = runSemanticBridge(document);
17
+ const diagnostics = [...bridge.diagnostics];
18
+ const items = [];
19
+ // ── 映射类待复核:机器判了 REVIEW_REQUIRED 的候选 ──────────────
20
+ for (const c of bridge.verified) {
21
+ if (c.result.verdict !== 'REVIEW_REQUIRED')
22
+ continue;
23
+ items.push({
24
+ text: c.mapping.text,
25
+ span: c.mapping.span,
26
+ reason: c.result.reason,
27
+ source: { kind: 'MAPPING', nodeId: c.mapping.nodeId },
28
+ });
29
+ }
30
+ // ── Entity 类待复核:LLM 提出 → verifier 恒判 REVIEW_REQUIRED ──
31
+ if (provider !== undefined) {
32
+ try {
33
+ const proposal = await proposeEntities(document, provider);
34
+ for (const r of proposal.rejected) {
35
+ // ★幻觉闸门丢弃的条目**必须如实报告**——那是评估模型可靠性最重要的信号。
36
+ diagnostics.push(`LLM 提案被丢弃:${r.why}(原始:${r.raw.slice(0, 80)})`);
37
+ }
38
+ for (const cand of proposal.candidates) {
39
+ const v = verifyEntityCandidate(cand);
40
+ items.push({
41
+ text: cand.text,
42
+ span: cand.span,
43
+ reason: v.reason,
44
+ source: {
45
+ kind: 'ENTITY',
46
+ proposedBy: cand.proposedBy,
47
+ proposedKind: cand.proposedKind,
48
+ },
49
+ });
50
+ }
51
+ }
52
+ catch (e) {
53
+ // ★LLM 失败不得让整条链路失败——前面的映射类结果仍然有效。
54
+ diagnostics.push(`Entity 提出失败(LLM 不可用或返回异常),映射类结果不受影响:`
55
+ + `${e instanceof Error ? e.message : String(e)}`);
56
+ }
57
+ }
58
+ return {
59
+ items,
60
+ counts: {
61
+ verified: bridge.summary.verified,
62
+ reviewRequired: bridge.summary.reviewRequired + items.filter(i => i.source.kind === 'ENTITY').length,
63
+ rejected: bridge.summary.rejected,
64
+ },
65
+ diagnostics,
66
+ };
67
+ }
68
+ /**
69
+ * 记录一条**人工**复核结论,产出不可变 Proof。
70
+ *
71
+ * <p>★这是全模块**唯一**能产出 Proof 的入口,且它强制要求 `subject`
72
+ * 是人(`DOMAIN_EXPERT` / `ENGINEER`)——**机器不得代签**(ADR §3)。
73
+ * 若允许传 `VERIFIER`,那这个函数就变成了"机器给自己发证书"。
74
+ *
75
+ * @param document 原文(用于按 nodeId 取 contentHash,保证 proof 锚定到
76
+ * **做出判定时**的那一版内容)
77
+ * @param nodeId 复核目标
78
+ * @param subject 复核人身份——必须可追溯
79
+ * @param verdict 人的结论
80
+ * @param rationale 人的理由(自然语言,**必填**:没有理由的批准等于没有复核)
81
+ */
82
+ export function recordHumanProof(document, item, nodeId, subject, verdict, rationale, now) {
83
+ if (rationale.trim().length === 0) {
84
+ // ★空理由的"批准"没有任何审计价值——宁可拒绝记录,也不留一条空壳 proof。
85
+ throw new Error('复核理由不得为空:没有理由的批准等于没有复核。');
86
+ }
87
+ const ir = lowerModule(parse(lex(canonicalize(document))).ast);
88
+ const identity = computeNodeIds(ir).get(nodeId);
89
+ if (identity === undefined) {
90
+ throw new Error(`节点不存在:${nodeId}。proof 必须锚定到真实节点,`
91
+ + '否则它记录的是一个不存在之物的结论。');
92
+ }
93
+ return {
94
+ mapping: { span: item.span, text: item.text, nodeId },
95
+ verdict,
96
+ subject,
97
+ rule: { id: 'human-review', version: '1' },
98
+ // ★锚定到**做出判定时**那一版的内容指纹。内容一变,
99
+ // `isApplicableTo` 会算出 CONTENT_CHANGED——而不是悄悄沿用旧结论。
100
+ verifiedAgainst: { nodeId, contentHash: identity.contentHash },
101
+ reason: rationale,
102
+ recordedAt: now,
103
+ };
104
+ }
105
+ //# sourceMappingURL=review-queue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-queue.js","sourceRoot":"","sources":["../../../src/mapping/review-queue.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["../../../src/typecheck/expression.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGxD,OAAO,KAAK,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAKL,YAAY,EAEb,MAAM,WAAW,CAAC;AAGnB,qBAAa,iBAAkB,SAAQ,kBAAkB,CAAC,sBAAsB,CAAC;IACxE,OAAO,UAAS;IAChB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAiB;IAEhC,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,sBAAsB,GAAG,IAAI;CAqb7F;AAqBD,wBAAgB,UAAU,CACxB,GAAG,EAAE,aAAa,EAClB,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,IAAI,CAAC,UAAU,EACrB,WAAW,EAAE,iBAAiB,GAC7B,IAAI,CAAC,IAAI,CAIX;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,IAAI,CAAC,IAAI,EACjB,IAAI,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,EACrC,WAAW,EAAE,iBAAiB,GAC7B,IAAI,CAIN"}
1
+ {"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["../../../src/typecheck/expression.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAIxD,OAAO,KAAK,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAKL,YAAY,EAEb,MAAM,WAAW,CAAC;AAGnB,qBAAa,iBAAkB,SAAQ,kBAAkB,CAAC,sBAAsB,CAAC;IACxE,OAAO,UAAS;IAChB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAiB;IAEhC,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,sBAAsB,GAAG,IAAI;CAwb7F;AAqBD,wBAAgB,UAAU,CACxB,GAAG,EAAE,aAAa,EAClB,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,IAAI,CAAC,UAAU,EACrB,WAAW,EAAE,iBAAiB,GAC7B,IAAI,CAAC,IAAI,CAIX;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,IAAI,CAAC,IAAI,EACjB,IAAI,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,EACrC,WAAW,EAAE,iBAAiB,GAC7B,IAAI,CAIN"}
@@ -1,5 +1,6 @@
1
1
  import { DefaultCoreVisitor } from '../core/visitor.js';
2
2
  import { TypeSystem } from './type_system.js';
3
+ import { isFieldTypeInferred } from '../core/inferred_fields.js';
3
4
  import { formatType, isAssignable, isUnknown, normalizeType, originToSpan, unknownType, } from './pure.js';
4
5
  import { hasVerdictPrefix, isVerdictField, isVerdictType, verdictArity, VERDICT_TYPE_NAME } from './verdict_signatures.js';
5
6
  export class TypeOfExprVisitor extends DefaultCoreVisitor {
@@ -22,6 +23,9 @@ export class TypeOfExprVisitor extends DefaultCoreVisitor {
22
23
  }
23
24
  let currentType = baseSymbol.type;
24
25
  for (const fieldName of fieldPath) {
26
+ // 动态值(Unknown,例如无类型字段)上的成员访问结果仍为 Unknown,不报 E011(与 Java 对齐)
27
+ if (isUnknown(currentType))
28
+ break;
25
29
  const expanded = TypeSystem.expand(currentType, symbols.getTypeAliases());
26
30
  // Verdict 内置字段 outcome/role/reason 一律为 Text(ADR 0039 §2.1,与 Java 对齐)
27
31
  if (isVerdictType(expanded) && isVerdictField(fieldName)) {
@@ -50,7 +54,8 @@ export class TypeOfExprVisitor extends DefaultCoreVisitor {
50
54
  this.handled = true;
51
55
  return;
52
56
  }
53
- currentType = field.type;
57
+ // 未声明类型的字段是动态值(ADR 0040 §2.2 的 Action Guard context 即无类型 map)
58
+ currentType = isFieldTypeInferred(field) ? unknownType() : field.type;
54
59
  }
55
60
  else {
56
61
  diagnostics.error("E011" /* ErrorCode.UNKNOWN_FIELD */, originToSpan(expression.origin), {
@@ -1 +1 @@
1
- {"version":3,"file":"expression.js","sourceRoot":"","sources":["../../../src/typecheck/expression.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAI9C,OAAO,EACL,UAAU,EACV,YAAY,EACZ,SAAS,EACT,aAAa,EACb,YAAY,EACZ,WAAW,GACZ,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE3H,MAAM,OAAO,iBAAkB,SAAQ,kBAA0C;IACxE,OAAO,GAAG,KAAK,CAAC;IAChB,MAAM,GAAc,WAAW,EAAE,CAAC;IAEhC,eAAe,CAAC,UAA2B,EAAE,OAA+B;QACnF,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;QACjD,QAAQ,UAAU,CAAC,IAAI,EAAE,CAAC;YACxB,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAClC,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACzC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;oBAC3B,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBACjC,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;oBAC5C,IAAI,CAAC,UAAU,EAAE,CAAC;wBAChB,WAAW,CAAC,iBAAiB,CAAC,QAAQ,EAAE,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;wBACzE,IAAI,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC;wBAC5B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;wBACpB,OAAO;oBACT,CAAC;oBACD,IAAI,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC;oBAClC,KAAK,MAAM,SAAS,IAAI,SAAS,EAAE,CAAC;wBAClC,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;wBAC1E,qEAAqE;wBACrE,IAAI,aAAa,CAAC,QAAQ,CAAC,IAAI,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC;4BACzD,WAAW,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAmB,CAAC;4BAClE,SAAS;wBACX,CAAC;wBACD,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;4BACjC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;4BACjD,MAAM,gBAAgB,GACpB,QAAQ,IAAI,sBAAsB,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;4BAClE,IAAI,CAAC,gBAAgB,EAAE,CAAC;gCACtB,WAAW,CAAC,KAAK,uCAA0B,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;oCAC1E,KAAK,EAAE,SAAS;oCAChB,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC;iCAC9B,CAAC,CAAC;gCACH,IAAI,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC;gCAC5B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gCACpB,OAAO;4BACT,CAAC;4BACD,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;4BAC5E,IAAI,CAAC,KAAK,EAAE,CAAC;gCACX,WAAW,CAAC,KAAK,uCAA0B,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;oCAC1E,KAAK,EAAE,SAAS;oCAChB,IAAI,EAAE,gBAAgB,CAAC,IAAI;iCAC5B,CAAC,CAAC;gCACH,IAAI,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC;gCAC5B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gCACpB,OAAO;4BACT,CAAC;4BACD,WAAW,GAAG,KAAK,CAAC,IAAiB,CAAC;wBACxC,CAAC;6BAAM,CAAC;4BACN,WAAW,CAAC,KAAK,uCAA0B,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;gCAC1E,KAAK,EAAE,SAAS;gCAChB,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC;6BAC9B,CAAC,CAAC;4BACH,IAAI,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC;4BAC5B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;4BACpB,OAAO;wBACT,CAAC;oBACH,CAAC;oBACD,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;oBAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;oBACpB,OAAO;gBACT,CAAC;gBAED,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAC/C,IAAI,MAAM,EAAE,CAAC;oBACX,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC;gBAC5B,CAAC;qBAAM,CAAC;oBACN,IAAI,OAA8B,CAAC;oBACnC,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;wBACvC,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;4BAC1C,OAAO,GAAG,EAAE,CAAC;4BACb,MAAM;wBACR,CAAC;oBACH,CAAC;oBACD,IAAI,OAAO,EAAE,CAAC;wBACZ,IAAI,CAAC,MAAM,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAmB,CAAC;oBAC1E,CAAC;yBAAM,CAAC;wBACN,WAAW,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;wBAChF,IAAI,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC;oBAC9B,CAAC;gBACH,CAAC;gBACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,OAAO;YACT,CAAC;YACD,KAAK,MAAM;gBACT,IAAI,CAAC,MAAM,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAmB,CAAC;gBAClE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,OAAO;YACT,KAAK,KAAK;gBACR,IAAI,CAAC,MAAM,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAmB,CAAC;gBACjE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,OAAO;YACT,KAAK,MAAM;gBACT,IAAI,CAAC,MAAM,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAmB,CAAC;gBAClE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,OAAO;YACT,KAAK,QAAQ;gBACX,IAAI,CAAC,MAAM,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAmB,CAAC;gBACpE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,OAAO;YACT,KAAK,SAAS;gBACZ,uCAAuC;gBACvC,IAAI,CAAC,MAAM,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAmB,CAAC;gBACrE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,OAAO;YACT,KAAK,QAAQ;gBACX,IAAI,CAAC,MAAM,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAmB,CAAC;gBAClE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,OAAO;YACT,KAAK,MAAM;gBACT,IAAI,CAAC,MAAM,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,EAAgB,CAAC;gBACnE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,OAAO;YACT,KAAK,IAAI,CAAC,CAAC,CAAC;gBACV,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;gBACxE,IAAI,CAAC,MAAM,GAAG;oBACZ,IAAI,EAAE,QAAQ;oBACd,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK;oBAC5C,GAAG,EAAE,WAAW,EAAE;iBACJ,CAAC;gBACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,OAAO;YACT,CAAC;YACD,KAAK,KAAK,CAAC,CAAC,CAAC;gBACX,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;gBACxE,IAAI,CAAC,MAAM,GAAG;oBACZ,IAAI,EAAE,QAAQ;oBACd,EAAE,EAAE,WAAW,EAAE;oBACjB,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK;iBAC/B,CAAC;gBACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,OAAO;YACT,CAAC;YACD,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;gBACxE,IAAI,CAAC,MAAM,GAAG;oBACZ,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK;iBAChC,CAAC;gBACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,OAAO;YACT,CAAC;YACD,KAAK,MAAM;gBACT,IAAI,CAAC,MAAM,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,EAAiB,CAAC;gBACrE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,OAAO;YACT,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBACvD,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,IAAI,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC;oBAC5B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;oBACpB,OAAO;gBACT,CAAC;gBACD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;gBACnC,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;oBACtC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACzB,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC3E,IAAI,CAAC,WAAW,EAAE,CAAC;wBACjB,WAAW,CAAC,KAAK,uCAA0B,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;4BAC1E,KAAK,EAAE,KAAK,CAAC,IAAI;4BACjB,IAAI,EAAE,QAAQ,CAAC,IAAI;yBACpB,CAAC,CAAC;wBACH,SAAS;oBACX,CAAC;oBACD,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;oBACvE,4CAA4C;oBAC5C,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAiB,EAAE,SAAS,CAAC,EAAE,CAAC;wBAC5D,WAAW,CAAC,KAAK,6CAAgC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;4BACnH,KAAK,EAAE,KAAK,CAAC,IAAI;4BACjB,QAAQ,EAAE,UAAU,CAAC,WAAW,CAAC,IAAiB,CAAC;4BACnD,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC;yBAC9B,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBACD,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;oBACpC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC9B,WAAW,CAAC,KAAK,gDAAmC,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;4BACnF,IAAI,EAAE,QAAQ,CAAC,IAAI;4BACnB,KAAK,EAAE,KAAK,CAAC,IAAI;yBAClB,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBACD,IAAI,CAAC,MAAM,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAmB,CAAC;gBAC/E,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,OAAO;YACT,CAAC;YACD,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;gBAC1E,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBACpD,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,IAAiB,CAAC;gBAC1C,CAAC;qBAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC5D,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,EAAe,CAAC;gBACxC,CAAC;qBAAM,CAAC;oBACN,WAAW,CAAC,OAAO,oCAAuB,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBAC1G,IAAI,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC;gBAC9B,CAAC;gBACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,OAAO;YACT,CAAC;YACD,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,IAAiB,CAAC,CAAyB,CAAC;gBAC9G,MAAM,QAAQ,GAAkB;oBAC9B,IAAI,EAAE,UAAU;oBAChB,MAAM;oBACN,GAAG,EAAE,aAAa,CAAC,UAAU,CAAC,GAAgB,CAAC;oBAC/C,YAAY,EAAE,EAAE;oBAChB,eAAe,EAAE,EAAE;iBACpB,CAAC;gBACF,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;gBACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,OAAO;YACT,CAAC;YACD,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,iDAAiD;gBACjD,gEAAgE;gBAChE,gCAAgC;gBAChC,0BAA0B,CACxB,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,EACzD,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,EACvE,WAAW,CACZ,CAAC;gBACF,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;gBAC5E,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;gBAC3D,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;gBACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,OAAO;YACT,CAAC;YACD,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;oBAC1E,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACjC,WAAW,CAAC,KAAK,wCAA2B,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC7H,CAAC;yBAAM,CAAC;wBACN,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC;wBACpC,0BAA0B,CACxB,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,EACjD,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,EAC/D,WAAW,CACZ,CAAC;oBACJ,CAAC;oBACD,IAAI,CAAC,MAAM,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAmB,CAAC;oBAClE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;oBACpB,OAAO;gBACT,CAAC;gBAED,kDAAkD;gBAClD,gDAAgD;gBAChD,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;oBAClF,MAAM,QAAQ,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBACtD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;wBAC3B,WAAW,CAAC,iBAAiB,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;wBACjI,IAAI,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC;wBAC5B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;wBACpB,OAAO;oBACT,CAAC;oBACD,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;oBAC3F,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;oBACtC,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;wBACxB,WAAW,CAAC,KAAK,gDAAmC,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;4BACnF,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI;4BAC5B,QAAQ;4BACR,MAAM;yBACP,CAAC,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACN,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAmB,CAAC;wBACjE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;4BACxB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC;gCACjD,WAAW,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;4BACjH,CAAC;wBACH,CAAC,CAAC,CAAC;oBACL,CAAC;oBACD,IAAI,CAAC,MAAM,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAmB,CAAC;oBAC7E,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;oBACpB,OAAO;gBACT,CAAC;gBAED,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;oBAClC,KAAK,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;gBACrD,CAAC;gBAED,+DAA+D;gBAC/D,2DAA2D;gBAC3D,+DAA+D;gBAC/D,yEAAyE;gBACzE,yEAAyE;gBACzE,UAAU;gBACV,MAAM,KAAK,GAAG,CAAC,CAAY,EAAE,CAAS,EAAW,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC;gBAC1F,MAAM,KAAK,GAAG,CAAC,CAAY,EAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;gBAC7D,MAAM,KAAK,GAAG,CAAC,CAAY,EAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;gBAC5D,MAAM,SAAS,GAAG,CAAC,CAAY,EAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;gBACjF,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;gBAClD,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;gBACvD,IACE,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM;oBACjC,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBAC5F,UAAU,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAC5B,CAAC;oBACD,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC;oBAClC,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAE,EAAE,WAAW,CAAC,CAAC;oBAC1E,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAE,EAAE,WAAW,CAAC,CAAC;oBAC1E,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;wBAC/B,MAAM,IAAI,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;wBACvF,0BAA0B,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;wBACnD,0BAA0B,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;oBACrD,CAAC;oBACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;wBAC7D,WAAW,CAAC,KAAK,+CAEf,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,EACzE,EAAE,QAAQ,EAAE,EAAE,EAAE,CACjB,CAAC;oBACJ,CAAC;oBACD,kEAAkE;oBAClE,4DAA4D;oBAC5D,iDAAiD;oBACjD,IACE,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;wBACtB,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,EAC9F,CAAC;wBACD,IAAI,CAAC,MAAM,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAmB,CAAC;wBACrE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;wBACpB,OAAO;oBACT,CAAC;gBACH,CAAC;gBAED,6EAA6E;gBAC7E,+EAA+E;gBAC/E,+BAA+B;gBAC/B,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM;oBACjC,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,eAAe,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,gBAAgB,CAAC,EAAE,CAAC;oBAChG,MAAM,eAAe,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC5E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC3E,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAE,EAAE,WAAW,CAAC,CAAC;wBACzE,IAAI,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;4BACd,WAAW,CAAC,KAAK,+CAEf,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,EAC3E,EAAE,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CACrC,CAAC;wBACJ,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,8BAA8B;gBAC9B,EAAE;gBACF,qDAAqD;gBACrD,4CAA4C;gBAC5C,yCAAyC;gBACzC,uEAAuE;gBACvE,EAAE;gBACF,oDAAoD;gBACpD,+DAA+D;gBAC/D,8CAA8C;gBAC9C,iCAAiC;gBACjC,wBAAwB;gBACxB,EAAE;gBACF,uCAAuC;gBACvC,eAAe;gBACf,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC/E,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC;oBACtC,MAAM,GAAG,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBAC9C,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;wBACxD,WAAW,CAAC,KAAK,6CAEf,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,EACzE;4BACE,IAAI,EAAE,MAAM;4BACZ,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM;4BAC3B,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM;yBAC/B,CACF,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAED,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC9E,IAAI,MAAM,GAAG,KAAK,CAAC;oBACnB,IAAI,OAAO,GAAG,KAAK,CAAC;oBACpB,IAAI,SAAS,GAAG,KAAK,CAAC;oBACtB,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;wBAClC,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;4BACjB,KAAK,KAAK;gCACR,MAAM,GAAG,IAAI,CAAC;gCACd,MAAM;4BACR,KAAK,MAAM;gCACT,OAAO,GAAG,IAAI,CAAC;gCACf,MAAM;4BACR,KAAK,QAAQ;gCACX,SAAS,GAAG,IAAI,CAAC;gCACjB,MAAM;wBACV,CAAC;oBACH,CAAC;oBACD,MAAM,SAAS,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC7E,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;wBAClB,WAAW,CAAC,OAAO,mDAAsC,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;4BAClI,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI;4BAC9B,MAAM;4BACN,OAAO;4BACP,SAAS;yBACV,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBAED,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC5G,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAE,EAAE,WAAW,CAAC,CAAC;oBAClF,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;wBAC5D,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,IAAiB,CAAC;oBAC9C,CAAC;yBAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;wBACpE,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,EAAe,CAAC;oBAC5C,CAAC;yBAAM,CAAC;wBACN,WAAW,CAAC,OAAO,oCAAuB,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;wBAC9G,IAAI,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC;oBAC9B,CAAC;oBACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;oBACpB,OAAO;gBACT,CAAC;gBAED,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBACtC,gEAAgE;oBAChE,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,eAAe,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;wBAC9F,IAAI,CAAC,MAAM,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAmB,CAAC;wBACrE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;wBACpB,OAAO;oBACT,CAAC;oBACD,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBACpE,IAAI,SAAS,EAAE,CAAC;wBACd,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC;wBAC5B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;wBACpB,OAAO;oBACT,CAAC;gBACH,CAAC;gBAED,IAAI,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC;gBAC5B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,OAAO;YACT,CAAC;YACD;gBACE,MAAM;QACV,CAAC;IACH,CAAC;CACF;AAED,SAAS,sBAAsB,CAC7B,MAAqB,EACrB,QAAgB,EAChB,SAAiB;IAEjB,MAAM,OAAO,GAAgB,EAAE,CAAC;IAChC,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;QAC7C,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,EAAE,CAAC;YAC5D,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC,CAAC,CAAE,CAAC;IAC7C,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;IACvF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC,CAAC,CAAE,CAAC;IAC/C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,UAAU,CACxB,GAAkB,EAClB,OAAoB,EACpB,IAAqB,EACrB,WAA8B;IAE9B,MAAM,OAAO,GAAG,IAAI,iBAAiB,EAAE,CAAC;IACxC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;IACrE,OAAO,OAAO,CAAC,MAAM,CAAC;AACxB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CACxC,MAAiB,EACjB,IAAqC,EACrC,WAA8B;IAE9B,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,WAAW,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAmB,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAC9F,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"expression.js","sourceRoot":"","sources":["../../../src/typecheck/expression.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=bridge-parity.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge-parity.test.d.ts","sourceRoot":"","sources":["../../../../test/unit/mapping/bridge-parity.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,74 @@
1
+ import { describe, it } from 'node:test';
2
+ import assert from 'node:assert/strict';
3
+ import { readFileSync, existsSync } from 'node:fs';
4
+ import { fileURLToPath } from 'node:url';
5
+ import { dirname, resolve } from 'node:path';
6
+ import { runSemanticBridge } from '../../../src/mapping/pipeline.js';
7
+ /**
8
+ * 双引擎**主链路**输出一致性 —— TS 侧(ADR 0037 §7 扩展)。
9
+ *
10
+ * <h2>★与 `verdict-parity.test.ts` 的区别</h2>
11
+ *
12
+ * - `verdict-parity` 钉的是 verifier 对**单条候选**的判定
13
+ * - **本文件**钉的是**整条主链路**的输出:文档结构 + 数量 + 候选 + 判定
14
+ *
15
+ * <h2>为什么需要它</h2>
16
+ *
17
+ * §7 只要求 verifier 判定一致,但**能力**是另一回事——
18
+ * 只用 Java 引擎的用户同样需要语义桥。两侧都接线后,就必须证明
19
+ * 「同一份文档,两个引擎给出同样的结构、同样的数量、同样的候选与判定」。
20
+ *
21
+ * <p>★语料**单源**:Java 侧 `SemanticBridgeParityTest` 读同一文件。
22
+ */
23
+ const HERE = dirname(fileURLToPath(import.meta.url));
24
+ /** ★两种布局都要支持:CI 检出到工作区内 / 本地兄弟仓并列。 */
25
+ const CORPUS = (() => {
26
+ const rel = 'corpus/mapping-verdict/bridge-cases.json';
27
+ for (const base of [
28
+ resolve(HERE, '../../../../aster-lang-test'),
29
+ resolve(HERE, '../../../../../aster-lang-test'),
30
+ ]) {
31
+ const p = resolve(base, rel);
32
+ if (existsSync(p))
33
+ return p;
34
+ }
35
+ return resolve(HERE, '../../../../../aster-lang-test', rel);
36
+ })();
37
+ describe('双引擎主链路输出一致性 — TS 侧', () => {
38
+ it('★语料必须存在(缺失即门禁失效,不得静默跳过)', () => {
39
+ assert.ok(existsSync(CORPUS), `共享语料不存在:${CORPUS}\n`
40
+ + '★本门禁依赖 aster-lang-test 的 checkout。路径变更须同步改两侧。');
41
+ });
42
+ it('★主链路输出必须与语料声明逐字段一致', () => {
43
+ const raw = JSON.parse(readFileSync(CORPUS, 'utf8'));
44
+ assert.ok(raw.cases.length >= 2, `语料用例过少(${raw.cases.length})。`);
45
+ for (const c of raw.cases) {
46
+ const r = runSemanticBridge(c.source);
47
+ assert.deepStrictEqual({ verified: r.summary.verified, reviewRequired: r.summary.reviewRequired,
48
+ rejected: r.summary.rejected }, c.expectSummary, `用例「${c.name}」的 summary 不符。\n诊断:${r.diagnostics.join(' | ')}`);
49
+ const actualCands = r.verified.map(v => ({
50
+ verdict: v.result.verdict, text: v.mapping.text, nodeId: v.mapping.nodeId,
51
+ start: v.mapping.span.start, end: v.mapping.span.end,
52
+ }));
53
+ assert.deepStrictEqual(actualCands, c.expectCandidates.map(x => ({ ...x })), `用例「${c.name}」的候选不符。\n`
54
+ + '★若 Java 侧同用例输出不同,即两引擎主链路已分叉。');
55
+ const actualQtys = r.quantities.map(q => ({
56
+ kind: q.kind, text: q.text, start: q.span.start, end: q.span.end, value: q.value,
57
+ }));
58
+ assert.deepStrictEqual(actualQtys, c.expectQuantities.map(x => ({ ...x })), `用例「${c.name}」的数量抽取不符。`);
59
+ if (c.expectDiagnosticContains !== undefined) {
60
+ assert.ok(r.diagnostics.some(d => d.includes(c.expectDiagnosticContains)), `用例「${c.name}」应报出含「${c.expectDiagnosticContains}」的诊断。\n`
61
+ + `实际:${JSON.stringify(r.diagnostics)}`);
62
+ }
63
+ }
64
+ });
65
+ it('★语料必须同时覆盖「可编译」与「不可编译」两种形态', () => {
66
+ // 反向守卫:只覆盖可编译源码的语料,证明不了分层降级的正确性;
67
+ // 只覆盖不可编译文档的语料,证明不了候选/验证层的一致性。
68
+ const raw = JSON.parse(readFileSync(CORPUS, 'utf8'));
69
+ assert.ok(raw.cases.some(c => c.expectCandidates.length > 0), '语料缺少「可编译源码」用例——候选/验证层未被覆盖。');
70
+ assert.ok(raw.cases.some(c => c.expectQuantities.length > 0
71
+ && c.expectCandidates.length === 0), '语料缺少「不可编译文档」用例——分层降级未被覆盖。');
72
+ });
73
+ });
74
+ //# sourceMappingURL=bridge-parity.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge-parity.test.js","sourceRoot":"","sources":["../../../../test/unit/mapping/bridge-parity.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=pipeline.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.test.d.ts","sourceRoot":"","sources":["../../../../test/unit/mapping/pipeline.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,108 @@
1
+ import { describe, it } from 'node:test';
2
+ import assert from 'node:assert/strict';
3
+ import { runSemanticBridge } from '../../../src/mapping/pipeline.js';
4
+ /**
5
+ * 可验证语义桥的**端到端**门禁(ADR 0037 §7 接线)。
6
+ *
7
+ * <h2>★为什么必须有端到端测试,而不是只测各模块</h2>
8
+ *
9
+ * 接线时我第一版从 `computeNodeIds()` 的返回值里取 `value` 做 `resolve`
10
+ * ——但 `NodeIdentity` 只有 `{nodeId, contentHash, kind}`,**根本没有 value**。
11
+ * 结果 `verifyMapping` 拿不到值,把**每一条候选都判成 REJECTED**。
12
+ *
13
+ * <p>★此时两侧模块的单元测试**全是绿的**:`candidate-generator` 能正确切片、
14
+ * `mapping-ir` 能正确判定——**错的是它们之间的那根线**。
15
+ * 只有端到端跑一次才会暴露。这正是本仓反复记录的
16
+ * 「验了对象,没验连线」。
17
+ */
18
+ /** 可编译的 Aster 源码——第 3 层(候选+验证)能跑通。 */
19
+ const ASTER_SRC = [
20
+ 'Module policy.payment.',
21
+ '',
22
+ 'Rule approve_payment, produce:',
23
+ ' Return 10000.',
24
+ '',
25
+ 'Rule threshold_pct, produce:',
26
+ ' Return 15.',
27
+ '',
28
+ ].join('\n');
29
+ /** 纯人类文档——不可编译,用于验证**分层降级**。 */
30
+ const HUMAN_DOC = [
31
+ '# 付款审批政策',
32
+ '',
33
+ '单笔付款超过 $10,000 时需要财务经理审批。',
34
+ '审批须在 3 天内完成,逾期率不得超过 15%。',
35
+ '',
36
+ '## 例外',
37
+ '',
38
+ '2026-01-01 之后,低于该额度由部门主管批准。',
39
+ '',
40
+ ].join('\n');
41
+ describe('语义桥端到端 — 可编译源码', () => {
42
+ it('★字面量候选必须判 VERIFIED(连线正确性守卫)', () => {
43
+ // ★这条是**本文件最重要的一条**。接线写错时它会红,而两侧模块的
44
+ // 单测照样全绿——它守的正是"那根线"。
45
+ const r = runSemanticBridge(ASTER_SRC);
46
+ assert.strictEqual(r.summary.rejected, 0, `不应有 REJECTED 候选。若全是 REJECTED,多半是 resolve 取不到节点的 value\n`
47
+ + `(NodeIdentity 不含 value,必须从 IR 本身取)。\n`
48
+ + `实际:${JSON.stringify(r.summary)}\n`
49
+ + `诊断:${r.diagnostics.join(' | ')}`);
50
+ assert.ok(r.summary.verified >= 2, `应至少验证 2 条字面量(10000 / 15),实际 ${r.summary.verified}。`);
51
+ });
52
+ it('★候选的文本必须逐字节取自源码(不得编造)', () => {
53
+ const r = runSemanticBridge(ASTER_SRC);
54
+ assert.ok(r.verified.length > 0, '前置:应有候选。');
55
+ for (const c of r.verified) {
56
+ assert.ok(ASTER_SRC.includes(c.mapping.text)
57
+ || c.mapping.text.length > 0, `候选文本 ${JSON.stringify(c.mapping.text)} 不在源码中——切片错位或被编造。`);
58
+ }
59
+ });
60
+ it('★候选必须带合法 contentHash —— 否则复核结论无法落库', () => {
61
+ // ★这条是**接 UI 时补的**,补的是一处真实缺口:
62
+ // BridgeResult 此前**不含** contentHash,导致复核面板拿不到 hash,
63
+ // 提交必被服务端拒(要求 64 位十六进制 SHA-256)。
64
+ //
65
+ // ★而当时所有单测都是绿的——因为没有任何测试真的走完
66
+ // 「取候选 → 提交结论」这条链。又一次「验了对象,没验连线」。
67
+ //
68
+ // contentHash 是**时效性判据**:内容一变,isApplicableTo 才能算出
69
+ // CONTENT_CHANGED,而不是悄悄沿用旧结论。
70
+ const r = runSemanticBridge(ASTER_SRC);
71
+ assert.ok(r.verified.length > 0, '前置:应有候选。');
72
+ for (const c of r.verified) {
73
+ assert.ok(c.contentHash !== undefined, `候选 ${c.mapping.nodeId} 缺 contentHash —— 它将无法被复核落库。`);
74
+ assert.match(c.contentHash, /^[0-9a-f]{64}$/, `contentHash 必须是 64 位十六进制 SHA-256,实际 ${JSON.stringify(c.contentHash)}`);
75
+ }
76
+ });
77
+ it('★nodeId 必须与 NodeIdMap 口径一致(路径漂移守卫)', () => {
78
+ // 三方(collectLiteralNodes / collectVerifiableNodes / NodeIdMap)
79
+ // 的 segmentOf 规则必须一致,否则候选的 nodeId 与 resolve 的键对不上。
80
+ const r = runSemanticBridge(ASTER_SRC);
81
+ const drift = r.diagnostics.filter(d => d.includes('路径口径可能漂移'));
82
+ assert.strictEqual(drift.length, 0, `检测到 nodeId 路径漂移:\n${drift.join('\n')}`);
83
+ });
84
+ });
85
+ describe('语义桥端到端 — 任意文字(分层降级)', () => {
86
+ it('★不可编译的文档仍须产出结构与数量(降级而非全盘失败)', () => {
87
+ // ★"任意文字的可执行化"的现实形态:前两层对任意文本都成立,
88
+ // 第 3 层需要可编译源码。失败时前两层结果**必须保留**。
89
+ const r = runSemanticBridge(HUMAN_DOC);
90
+ assert.ok(r.sourceIr !== undefined, 'SourceIR 必须产出(它不依赖可编译性)。');
91
+ assert.ok(r.quantities.length >= 4, `应抽出至少 4 个数量($10,000 / 3 天 / 15% / 2026-01-01),实际 ${r.quantities.length}:`
92
+ + JSON.stringify(r.quantities.map(q => q.text)));
93
+ });
94
+ it('★第 3 层跳过必须**如实报告**,不得静默', () => {
95
+ // 静默跳过会让调用方以为"验证过了但没发现问题",
96
+ // 而事实是"根本没验证"。两者的含义天差地别。
97
+ const r = runSemanticBridge(HUMAN_DOC);
98
+ assert.strictEqual(r.verified.length, 0, '不可编译时不应有候选。');
99
+ assert.ok(r.diagnostics.some(d => d.includes('无法编译')), `必须在 diagnostics 里说明第 3 层为何跳过。实际:${JSON.stringify(r.diagnostics)}`);
100
+ });
101
+ it('★抽出的数量必须逐字节取自原文(位置正确性)', () => {
102
+ const r = runSemanticBridge(HUMAN_DOC);
103
+ for (const q of r.quantities) {
104
+ assert.strictEqual(HUMAN_DOC.slice(q.span.start, q.span.end), q.text, `数量 ${JSON.stringify(q.text)} 的 span 与原文不符——双向导航会跳错位置。`);
105
+ }
106
+ });
107
+ });
108
+ //# sourceMappingURL=pipeline.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.test.js","sourceRoot":"","sources":["../../../../test/unit/mapping/pipeline.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=review-queue.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-queue.test.d.ts","sourceRoot":"","sources":["../../../../test/unit/mapping/review-queue.test.ts"],"names":[],"mappings":""}