@aster-cloud/aster-lang-ts 1.0.33 → 1.0.35

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 (35) hide show
  1. package/dist/src/diagnostics/error_codes.d.ts +6 -1
  2. package/dist/src/diagnostics/error_codes.d.ts.map +1 -1
  3. package/dist/src/diagnostics/error_codes.js +39 -0
  4. package/dist/src/diagnostics/error_codes.js.map +1 -1
  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/mapping/pipeline.d.ts +87 -0
  10. package/dist/src/mapping/pipeline.d.ts.map +1 -0
  11. package/dist/src/mapping/pipeline.js +145 -0
  12. package/dist/src/mapping/pipeline.js.map +1 -0
  13. package/dist/src/mapping/quantity-ir.js +68 -5
  14. package/dist/src/mapping/quantity-ir.js.map +1 -1
  15. package/dist/src/mapping/review-queue.d.ts +92 -0
  16. package/dist/src/mapping/review-queue.d.ts.map +1 -0
  17. package/dist/src/mapping/review-queue.js +105 -0
  18. package/dist/src/mapping/review-queue.js.map +1 -0
  19. package/dist/test/unit/mapping/bridge-parity.test.d.ts +2 -0
  20. package/dist/test/unit/mapping/bridge-parity.test.d.ts.map +1 -0
  21. package/dist/test/unit/mapping/bridge-parity.test.js +74 -0
  22. package/dist/test/unit/mapping/bridge-parity.test.js.map +1 -0
  23. package/dist/test/unit/mapping/pipeline.test.d.ts +2 -0
  24. package/dist/test/unit/mapping/pipeline.test.d.ts.map +1 -0
  25. package/dist/test/unit/mapping/pipeline.test.js +108 -0
  26. package/dist/test/unit/mapping/pipeline.test.js.map +1 -0
  27. package/dist/test/unit/mapping/review-queue.test.d.ts +2 -0
  28. package/dist/test/unit/mapping/review-queue.test.d.ts.map +1 -0
  29. package/dist/test/unit/mapping/review-queue.test.js +112 -0
  30. package/dist/test/unit/mapping/review-queue.test.js.map +1 -0
  31. package/dist/test/unit/mapping/verdict-parity.test.d.ts +2 -0
  32. package/dist/test/unit/mapping/verdict-parity.test.d.ts.map +1 -0
  33. package/dist/test/unit/mapping/verdict-parity.test.js +85 -0
  34. package/dist/test/unit/mapping/verdict-parity.test.js.map +1 -0
  35. package/package.json +1 -1
@@ -80,7 +80,12 @@ export declare const enum ErrorCode {
80
80
  GOV_CONTROL_UNREGISTERED = "W704",
81
81
  GOV_PROFILE_UNKNOWN = "E705",
82
82
  GOV_PROFILE_VIOLATION = "E706",
83
- GOV_CHECK_UNAVAILABLE = "E707"
83
+ GOV_CHECK_UNAVAILABLE = "E707",
84
+ CEDAR_NOT_EXPORTABLE_SHAPE = "E720",
85
+ CEDAR_UNSUPPORTED_CONSTRUCT = "E721",
86
+ CEDAR_UNTYPED_CONTEXT_KEY = "E722",
87
+ CEDAR_EQUIVALENCE_MISMATCH = "E723",
88
+ CEDAR_SCHEMA_INVALID = "E724"
84
89
  }
85
90
  export interface ErrorMetadata {
86
91
  readonly code: ErrorCode;
@@ -1 +1 @@
1
- {"version":3,"file":"error_codes.d.ts","sourceRoot":"","sources":["../../../src/diagnostics/error_codes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"error_codes.d.ts","sourceRoot":"","sources":["../../../src/diagnostics/error_codes.ts"],"names":[],"mappings":"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"}
@@ -81,6 +81,11 @@ export const ERROR_MESSAGES = {
81
81
  ["E705" /* ErrorCode.GOV_PROFILE_UNKNOWN */]: "Module '{module}' declares unknown profile '{profile}' (controls registry {version})",
82
82
  ["E706" /* ErrorCode.GOV_PROFILE_VIOLATION */]: "Rule '{rule}' violates profile '{profile}': {requirement}",
83
83
  ["E707" /* ErrorCode.GOV_CHECK_UNAVAILABLE */]: "Governance check could not run for module '{module}' (profile '{profile}'); saving is blocked until it succeeds",
84
+ ["E720" /* ErrorCode.CEDAR_NOT_EXPORTABLE_SHAPE */]: "Rule '{rule}' cannot be exported to Cedar: {reason}",
85
+ ["E721" /* ErrorCode.CEDAR_UNSUPPORTED_CONSTRUCT */]: "Rule '{rule}' uses {construct}, which has no Cedar translation",
86
+ ["E722" /* ErrorCode.CEDAR_UNTYPED_CONTEXT_KEY */]: "Context key '{key}' in rule '{rule}' is used as both {first} and {second}",
87
+ ["E723" /* ErrorCode.CEDAR_EQUIVALENCE_MISMATCH */]: "Cedar export of rule '{rule}' disagrees with Aster on probe {probe}: Aster {aster}, Cedar {cedar}",
88
+ ["E724" /* ErrorCode.CEDAR_SCHEMA_INVALID */]: "Generated Cedar for rule '{rule}' failed schema validation: {detail}",
84
89
  };
85
90
  export const ERROR_METADATA = {
86
91
  ["E001" /* ErrorCode.TYPE_MISMATCH */]: {
@@ -642,6 +647,40 @@ export const ERROR_METADATA = {
642
647
  severity: 'error',
643
648
  message: "Governance check could not run for module '{module}' (profile '{profile}'); saving is blocked until it succeeds",
644
649
  help: "Retry later; this is a service fault, not a policy violation.",
650
+ }, ["E720" /* ErrorCode.CEDAR_NOT_EXPORTABLE_SHAPE */]: {
651
+ code: "E720" /* ErrorCode.CEDAR_NOT_EXPORTABLE_SHAPE */,
652
+ category: 'governance',
653
+ severity: 'error',
654
+ message: "Rule '{rule}' cannot be exported to Cedar: {reason}",
655
+ help: "Exportable rules need @id, one parameter with the guard request fields (principal_id, principal_type, principal_roles, action, resource_type, resource_id, context, agent_model) and a Verdict result.",
656
+ },
657
+ ["E721" /* ErrorCode.CEDAR_UNSUPPORTED_CONSTRUCT */]: {
658
+ code: "E721" /* ErrorCode.CEDAR_UNSUPPORTED_CONSTRUCT */,
659
+ category: 'governance',
660
+ severity: 'error',
661
+ message: "Rule '{rule}' uses {construct}, which has no Cedar translation",
662
+ help: "Use comparisons, and/or/not, List.contains on principal_roles and integer arithmetic with literals, or keep this rule Aster-only.",
663
+ },
664
+ ["E722" /* ErrorCode.CEDAR_UNTYPED_CONTEXT_KEY */]: {
665
+ code: "E722" /* ErrorCode.CEDAR_UNTYPED_CONTEXT_KEY */,
666
+ category: 'governance',
667
+ severity: 'error',
668
+ message: "Context key '{key}' in rule '{rule}' is used as both {first} and {second}",
669
+ help: "Use each context key with a single type (number, text or boolean).",
670
+ },
671
+ ["E723" /* ErrorCode.CEDAR_EQUIVALENCE_MISMATCH */]: {
672
+ code: "E723" /* ErrorCode.CEDAR_EQUIVALENCE_MISMATCH */,
673
+ category: 'governance',
674
+ severity: 'error',
675
+ message: "Cedar export of rule '{rule}' disagrees with Aster on probe {probe}: Aster {aster}, Cedar {cedar}",
676
+ help: "This is an exporter defect; the export was withheld. Please report it.",
677
+ },
678
+ ["E724" /* ErrorCode.CEDAR_SCHEMA_INVALID */]: {
679
+ code: "E724" /* ErrorCode.CEDAR_SCHEMA_INVALID */,
680
+ category: 'governance',
681
+ severity: 'error',
682
+ message: "Generated Cedar for rule '{rule}' failed schema validation: {detail}",
683
+ help: "This is an exporter defect; the export was withheld. Please report it.",
645
684
  },
646
685
  };
647
686
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"error_codes.js","sourceRoot":"","sources":["../../../src/diagnostics/error_codes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"error_codes.js","sourceRoot":"","sources":["../../../src/diagnostics/error_codes.ts"],"names":[],"mappings":"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"}
@@ -42,4 +42,18 @@ export type { ControlsRegistryData, LocalizedTitle } from './governance/controls
42
42
  export { generateFieldValue, generateInputValues, getFieldValueHint, } from './parser/input-generator.js';
43
43
  export type { TypeKind, FieldInfo, ParameterInfo, } from './parser/input-generator.js';
44
44
  export type * from './types.js';
45
+ export { runSemanticBridge } from './mapping/pipeline.js';
46
+ export type { BridgeResult, VerifiedCandidate } from './mapping/pipeline.js';
47
+ export { parseSourceIr, nodeAtOffset, verifyCoverage } from './mapping/source-ir.js';
48
+ export type { SourceNode, SectionKind } from './mapping/source-ir.js';
49
+ export { extractQuantities } from './mapping/quantity-ir.js';
50
+ export type { Quantity, QuantityKind, EntityCandidate } from './mapping/quantity-ir.js';
51
+ export { verifyMapping } from './mapping/mapping-ir.js';
52
+ export type { CandidateMapping, VerificationResult, VerificationVerdict, VerifiableNode, TextSpan } from './mapping/mapping-ir.js';
53
+ export { buildReviewQueue, recordHumanProof } from './mapping/review-queue.js';
54
+ export type { ReviewQueue, ReviewItem, ReviewSource } from './mapping/review-queue.js';
55
+ export { isApplicableTo, resolveEffective } from './mapping/proof-ir.js';
56
+ export type { Proof, ProofSubject, ProofRule, ProofAnchor, Applicability } from './mapping/proof-ir.js';
57
+ export { proposeEntities, parseProposals, verifyEntityCandidate } from './mapping/entity-proposer.js';
58
+ export type { ProposalResult } from './mapping/entity-proposer.js';
45
59
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACtD,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,OAAO,EACL,uBAAuB,EACvB,4BAA4B,EAC5B,yBAAyB,EACzB,eAAe,EACf,0BAA0B,EAC1B,cAAc,EACd,uBAAuB,GACxB,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EACV,uBAAuB,EACvB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAGpC,OAAO,EACL,eAAe,EACf,+BAA+B,EAC/B,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvF,YAAY,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,YAAY,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAGnG,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,6BAA6B,CAAC;AACrC,YAAY,EACV,QAAQ,EACR,SAAS,EACT,aAAa,GACd,MAAM,6BAA6B,CAAC;AAGrC,mBAAmB,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACtD,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,OAAO,EACL,uBAAuB,EACvB,4BAA4B,EAC5B,yBAAyB,EACzB,eAAe,EACf,0BAA0B,EAC1B,cAAc,EACd,uBAAuB,GACxB,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EACV,uBAAuB,EACvB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAGpC,OAAO,EACL,eAAe,EACf,+BAA+B,EAC/B,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvF,YAAY,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,YAAY,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAGnG,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,6BAA6B,CAAC;AACrC,YAAY,EACV,QAAQ,EACR,SAAS,EACT,aAAa,GACd,MAAM,6BAA6B,CAAC;AAGrC,mBAAmB,YAAY,CAAC;AAMhC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACrF,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACxF,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,mBAAmB,EACrE,cAAc,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC/E,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACvF,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACxG,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACtG,YAAY,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC"}
package/dist/src/index.js CHANGED
@@ -40,4 +40,15 @@ export { controlRegistryFrom, defaultControlRegistry } from './governance/contro
40
40
  export { CONTROLS_REGISTRY } from './governance/controls-registry.data.js';
41
41
  // 输入值生成器(用于策略执行时自动生成示例输入)
42
42
  export { generateFieldValue, generateInputValues, getFieldValueHint, } from './parser/input-generator.js';
43
+ // ── ADR 0037 可验证语义桥 ────────────────────────────────────────────
44
+ // ★接线后才导出:此前六个模块全是死代码(生产调用数 0、不在导出面内)。
45
+ // `runSemanticBridge` 是唯一入口,内部串起
46
+ // SourceIR → QuantityIR → CandidateGenerator → MappingIR。
47
+ export { runSemanticBridge } from './mapping/pipeline.js';
48
+ export { parseSourceIr, nodeAtOffset, verifyCoverage } from './mapping/source-ir.js';
49
+ export { extractQuantities } from './mapping/quantity-ir.js';
50
+ export { verifyMapping } from './mapping/mapping-ir.js';
51
+ export { buildReviewQueue, recordHumanProof } from './mapping/review-queue.js';
52
+ export { isApplicableTo, resolveEffective } from './mapping/proof-ir.js';
53
+ export { proposeEntities, parseProposals, verifyEntityCandidate } from './mapping/entity-proposer.js';
43
54
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,UAAU;AACV,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,oBAAoB;AACpB,OAAO,EACL,uBAAuB,EACvB,4BAA4B,EAC5B,yBAAyB,EACzB,eAAe,EACf,0BAA0B,EAC1B,cAAc,EACd,uBAAuB,GACxB,MAAM,kCAAkC,CAAC;AAO1C,UAAU;AACV,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,OAAO;AACP,OAAO,EACL,eAAe,EACf,+BAA+B,EAC/B,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAEvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAG3E,0BAA0B;AAC1B,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,UAAU;AACV,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,oBAAoB;AACpB,OAAO,EACL,uBAAuB,EACvB,4BAA4B,EAC5B,yBAAyB,EACzB,eAAe,EACf,0BAA0B,EAC1B,cAAc,EACd,uBAAuB,GACxB,MAAM,kCAAkC,CAAC;AAO1C,UAAU;AACV,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,OAAO;AACP,OAAO,EACL,eAAe,EACf,+BAA+B,EAC/B,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAEvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAG3E,0BAA0B;AAC1B,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,6BAA6B,CAAC;AAUrC,kEAAkE;AAClE,uCAAuC;AACvC,mCAAmC;AACnC,4DAA4D;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAErF,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGxD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE/E,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC"}
@@ -0,0 +1,87 @@
1
+ import { type SourceNode } from './source-ir.js';
2
+ import { type Quantity } from './quantity-ir.js';
3
+ import { type CandidateMapping, type VerificationResult } from './mapping-ir.js';
4
+ /**
5
+ * 可验证语义桥的**端到端接线**(ADR 0037 §7)。
6
+ *
7
+ * <h2>★为什么需要这个文件</h2>
8
+ *
9
+ * ADR 0037 建了六个模块(SourceIR / QuantityIR / MappingIR / ProofIR /
10
+ * CandidateGenerator / EntityProposer),但**没有任何生产路径调用它们**
11
+ * ——实测六个模块的生产调用数全为 0,也不在 `src/index.ts` 的导出面内。
12
+ * 即:**地基铺好了,线没接**。
13
+ *
14
+ * <p>本文件把它们串成一条可观测的链路:
15
+ *
16
+ * <pre>
17
+ * 人类文档
18
+ * ├─ parseSourceIr ──────────► 文档结构(Document/Section/Span)
19
+ * ├─ extractQuantities ──────► 数量实体(确定性,零 AI)
20
+ * └─ canonicalize→lex→parse→lower
21
+ * ├─ computeNodeIds ───► 稳定节点 ID
22
+ * ├─ generateCandidates► 候选映射(机械切片,不猜)
23
+ * └─ verifyMapping ────► 判定:VERIFIED / REVIEW_REQUIRED / REJECTED
24
+ * </pre>
25
+ *
26
+ * <h2>★本模块刻意不做的事</h2>
27
+ *
28
+ * - **不调 LLM**。Entity 提出是三段式的第①段,需要 provider,由调用方
29
+ * 显式传入结果(见 {@link BridgeResult.entityCandidates} 的说明)。
30
+ * 把 LLM 调用埋进"主链路"会让一条本该确定性的流水线变得不可复现。
31
+ * - **不产出 Proof**。`REVIEW_REQUIRED` 的候选必须由**人**给出 ProofIR
32
+ * (`subject = DOMAIN_EXPERT`),机器不得代签(ADR §3)。
33
+ * - **不吞错**。任何跳过/失败都进 {@link BridgeResult.diagnostics}。
34
+ */
35
+ /** 一条候选及其判定结果。 */
36
+ export interface VerifiedCandidate {
37
+ readonly mapping: CandidateMapping;
38
+ readonly result: VerificationResult;
39
+ /**
40
+ * 目标节点在**本次判定时**的内容指纹(`NodeIdMap` 的 contentHash)。
41
+ *
42
+ * <p>★**必须随候选一起交出去**:人工复核记录 Proof 时要用它锚定
43
+ * 「当时看到的是哪一版内容」。内容一变,`isApplicableTo` 才能算出
44
+ * `CONTENT_CHANGED` 而不是悄悄沿用旧结论。
45
+ *
46
+ * <p>★这个字段是**接 UI 时补的**:此前 `BridgeResult` 不含它,
47
+ * 导致复核面板拿不到 hash、提交必被服务端拒(要求 64 位十六进制)。
48
+ * 单测全绿也发现不了——因为没有任何测试真的走完"取候选 → 提交结论"。
49
+ * 又一次「验了对象,没验连线」。
50
+ *
51
+ * <p>节点不在 NodeIdMap 中时为 `undefined`(正常情况下不会发生,
52
+ * 真发生了 diagnostics 里会有「路径口径可能漂移」)。
53
+ */
54
+ readonly contentHash: string | undefined;
55
+ }
56
+ /** 端到端结果。★所有"没做成"的事都在 `diagnostics` 里,不静默丢弃。 */
57
+ export interface BridgeResult {
58
+ /** 文档结构(人类视角)。源文本无法解析时为 `undefined`。 */
59
+ readonly sourceIr: SourceNode | undefined;
60
+ /** 确定性抽取的数量实体。 */
61
+ readonly quantities: readonly Quantity[];
62
+ /** 候选映射及其判定。 */
63
+ readonly verified: readonly VerifiedCandidate[];
64
+ /** 按判定分组的计数——UI 的复核队列直接用这个。 */
65
+ readonly summary: {
66
+ readonly verified: number;
67
+ readonly reviewRequired: number;
68
+ readonly rejected: number;
69
+ };
70
+ /**
71
+ * 过程中所有「没做成」的事:解析失败、节点被跳过、区间切不出来……
72
+ *
73
+ * <p>★**必须如实报告**。静默跳过会让调用方以为「全都生成了」,
74
+ * 而实际上某些节点从双向导航里消失了——那种缺失极难发现。
75
+ */
76
+ readonly diagnostics: readonly string[];
77
+ }
78
+ /**
79
+ * 跑通「人类文档 → 结构化 → 抽取 → 候选 → 验证」全链路。
80
+ *
81
+ * <p>★`source` 必须是**可编译的 Aster 源码**。对于"任意文字",当前的定位是:
82
+ * SourceIR 与 QuantityIR 对任意文本都能工作(它们只依赖形态特征),
83
+ * 而候选映射与验证需要源码能 lower 成 Core IR。两者在本函数里**分别降级**
84
+ * ——编译不了时仍返回文档结构与数量实体,并在 diagnostics 里说明原因。
85
+ */
86
+ export declare function runSemanticBridge(source: string): BridgeResult;
87
+ //# sourceMappingURL=pipeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../../src/mapping/pipeline.ts"],"names":[],"mappings":"AAKA,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAqB,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEpE,OAAO,EAAiB,KAAK,gBAAgB,EAAE,KAAK,kBAAkB,EAC/C,MAAM,iBAAiB,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,kBAAkB;AAClB,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;IACpC;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1C;AAED,gDAAgD;AAChD,MAAM,WAAW,YAAY;IAC3B,wCAAwC;IACxC,QAAQ,CAAC,QAAQ,EAAE,UAAU,GAAG,SAAS,CAAC;IAC1C,kBAAkB;IAClB,QAAQ,CAAC,UAAU,EAAE,SAAS,QAAQ,EAAE,CAAC;IACzC,gBAAgB;IAChB,QAAQ,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAChD,+BAA+B;IAC/B,QAAQ,CAAC,OAAO,EAAE;QAChB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;QAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAgF9D"}
@@ -0,0 +1,145 @@
1
+ import { canonicalize } from '../frontend/canonicalizer.js';
2
+ import { lex } from '../frontend/lexer.js';
3
+ import { parse } from '../parser.js';
4
+ import { lowerModule } from '../lower_to_core.js';
5
+ import { computeNodeIds } from '../nodeid/node-id-map.js';
6
+ import { parseSourceIr } from './source-ir.js';
7
+ import { extractQuantities } from './quantity-ir.js';
8
+ import { generateCandidates, collectLiteralNodes } from './candidate-generator.js';
9
+ import { verifyMapping } from './mapping-ir.js';
10
+ /**
11
+ * 跑通「人类文档 → 结构化 → 抽取 → 候选 → 验证」全链路。
12
+ *
13
+ * <p>★`source` 必须是**可编译的 Aster 源码**。对于"任意文字",当前的定位是:
14
+ * SourceIR 与 QuantityIR 对任意文本都能工作(它们只依赖形态特征),
15
+ * 而候选映射与验证需要源码能 lower 成 Core IR。两者在本函数里**分别降级**
16
+ * ——编译不了时仍返回文档结构与数量实体,并在 diagnostics 里说明原因。
17
+ */
18
+ export function runSemanticBridge(source) {
19
+ const diagnostics = [];
20
+ // ── 第 1 层:人类文档结构(对任意文本都成立)──────────────────
21
+ let sourceIr;
22
+ try {
23
+ sourceIr = parseSourceIr(source);
24
+ }
25
+ catch (e) {
26
+ diagnostics.push(`SourceIR 解析失败:${e instanceof Error ? e.message : String(e)}`);
27
+ }
28
+ // ── 第 2 层:确定性数量抽取(对任意文本都成立,零 AI)─────────
29
+ let quantities = [];
30
+ try {
31
+ quantities = extractQuantities(source);
32
+ }
33
+ catch (e) {
34
+ diagnostics.push(`QuantityIR 抽取失败:${e instanceof Error ? e.message : String(e)}`);
35
+ }
36
+ // ── 第 3 层:候选映射 + 验证(需要源码可编译)─────────────────
37
+ // ★这一层**会失败**,且失败是常态(任意文字不是合法 Aster 源码)。
38
+ // 失败时前两层的结果仍然有效——这正是分层降级的意义。
39
+ let verified = [];
40
+ try {
41
+ const canonical = canonicalize(source);
42
+ const ir = lowerModule(parse(lex(canonical)).ast);
43
+ const identities = computeNodeIds(ir);
44
+ const nodes = collectLiteralNodes(ir);
45
+ if (nodes.length === 0) {
46
+ diagnostics.push('IR 里没有带 origin 的字面量节点——无候选可生成。');
47
+ }
48
+ const generated = generateCandidates(canonical, nodes);
49
+ for (const s of generated.skipped) {
50
+ diagnostics.push(`跳过节点 ${s.nodeId}:${s.why}`);
51
+ }
52
+ // ★`resolve` 的节点必须从 **IR 本身**取值,不能从 NodeIdentity 取。
53
+ //
54
+ // 我第一版从 `computeNodeIds` 的返回值里读 `value`/`name`——实测
55
+ // `NodeIdentity` 只有 `{nodeId, contentHash, kind}`,**根本没有 value**,
56
+ // 于是 `verifyMapping` 拿不到值、把每条候选都判成 REJECTED。
57
+ // 端到端 demo 一跑就暴露了(2 条候选全 REJECTED,而它们本该 VERIFIED)。
58
+ // ★这也说明"接线"本身必须端到端验证——单看两侧模块的单测都是绿的。
59
+ const byId = collectVerifiableNodes(ir);
60
+ // identities 仅用于校验路径口径一致(两边都由同一套 segmentOf 规则生成)。
61
+ for (const id of byId.keys()) {
62
+ if (!identities.has(id)) {
63
+ diagnostics.push(`节点 ${id} 不在 NodeIdMap 中——路径口径可能漂移。`);
64
+ }
65
+ }
66
+ verified = generated.candidates.map(mapping => ({
67
+ mapping,
68
+ result: verifyMapping(mapping, id => byId.get(id)),
69
+ contentHash: identities.get(mapping.nodeId)?.contentHash,
70
+ }));
71
+ }
72
+ catch (e) {
73
+ // ★不把编译失败当成错误——"任意文字"本就编译不了。
74
+ // 如实记录,让调用方知道第 3 层没跑,而不是以为跑了但没结果。
75
+ diagnostics.push(`源码无法编译成 Core IR,候选映射层已跳过:`
76
+ + `${e instanceof Error ? e.message : String(e)}`);
77
+ }
78
+ let v = 0, r = 0, j = 0;
79
+ for (const c of verified) {
80
+ if (c.result.verdict === 'VERIFIED')
81
+ v++;
82
+ else if (c.result.verdict === 'REVIEW_REQUIRED')
83
+ r++;
84
+ else
85
+ j++;
86
+ }
87
+ return {
88
+ sourceIr,
89
+ quantities,
90
+ verified,
91
+ summary: { verified: v, reviewRequired: r, rejected: j },
92
+ diagnostics,
93
+ };
94
+ }
95
+ /**
96
+ * 按与 {@link collectLiteralNodes} **完全相同**的路径规则遍历 IR,
97
+ * 产出 `nodeId → VerifiableNode`(带 `value`/`name`)。
98
+ *
99
+ * <p>★为什么不复用 `computeNodeIds` 的返回值:`NodeIdentity` 只有
100
+ * `{nodeId, contentHash, kind}`,**不含 value**。用它做 `resolve` 会让
101
+ * `verifyMapping` 永远比不出值,把所有候选判成 REJECTED。
102
+ *
103
+ * <p>★路径规则必须与 `collectLiteralNodes` / `NodeIdMap` **三方一致**,
104
+ * 否则候选的 nodeId 与这里的键对不上——那种错会表现为"节点不存在",
105
+ * 极易被误读成 IR 有问题。
106
+ */
107
+ function collectVerifiableNodes(ir) {
108
+ const out = new Map();
109
+ walkVerifiable(ir, '$', out);
110
+ return out;
111
+ }
112
+ function walkVerifiable(node, path, out) {
113
+ if (node === null || typeof node !== 'object' || Array.isArray(node))
114
+ return;
115
+ const obj = node;
116
+ if (typeof obj.kind === 'string') {
117
+ out.set(path, {
118
+ kind: obj.kind,
119
+ ...(obj.value === undefined ? {} : { value: obj.value }),
120
+ ...(typeof obj.name === 'string' ? { name: obj.name } : {}),
121
+ });
122
+ }
123
+ for (const [field, value] of Object.entries(obj)) {
124
+ if (field === 'origin')
125
+ continue;
126
+ if (Array.isArray(value)) {
127
+ value.forEach((el, i) => walkVerifiable(el, `${path}.${field}${segmentOfPath(el, i)}`, out));
128
+ }
129
+ else {
130
+ walkVerifiable(value, `${path}.${field}`, out);
131
+ }
132
+ }
133
+ }
134
+ /** 与 `collectLiteralNodes.segmentOf` / `NodeIdMap.segmentOf` 同规则(三方必须一致)。 */
135
+ function segmentOfPath(element, index) {
136
+ if (element !== null && typeof element === 'object' && !Array.isArray(element)) {
137
+ const el = element;
138
+ if (typeof el.name === 'string' && el.name !== '_')
139
+ return `{${el.name}}`;
140
+ if (typeof el.path === 'string')
141
+ return `{${el.path}}`;
142
+ }
143
+ return `[${index}]`;
144
+ }
145
+ //# sourceMappingURL=pipeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../src/mapping/pipeline.ts"],"names":[],"mappings":"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"}
@@ -126,11 +126,56 @@ function normalize(kind, text) {
126
126
  return value === undefined ? undefined : { value };
127
127
  }
128
128
  case 'DURATION': {
129
- const m = /^(\d+(?:\.\d+)?)\s?(.+)$/.exec(text);
130
- if (m === null)
129
+ // ★改用**线性**解析,不再用 `^(\d+(?:\.\d+)?)\s?(.+)$`。
130
+ //
131
+ // 原式呈二次:`(.+)$` 在尾部失配时逼着 `\d+` 逐位回退重试。
132
+ // 实测(`'00'.repeat(n/2) + '\n'`):
133
+ // 10000→144ms、20000→575ms、40000→2303ms、80000→9723ms(×4.0)
134
+ //
135
+ // ★这条是 CodeQL 报出来的(js/polynomial-redos, high)。我第一次实测
136
+ // 试了 5 种载荷全是线性,一度判它误报——直到补上「尾随 `\n`」才复现。
137
+ // **我的载荷决定了我的结论**(本轮第三次栽在同一件事上)。
138
+ //
139
+ // ★为什么不能只在正则上改(都试过,逐条记下避免重走):
140
+ // `([^\n]+)` 尾部 → 等价但**仍二次**
141
+ // `(.+?)` 惰性 → 等价但**仍二次**
142
+ // `(?=(\d+…))\1` 原子组 → 线性但**不等价**(原式要求 `\d+` 可回退:
143
+ // `"01"` → `["0","1"]`,原子化后直接失配)
144
+ // 即:**原语义本身依赖回退**,正则层无解,只能落到代码层。
145
+ //
146
+ // 本实现保留"可回退"语义,但让每次尝试都是 O(1):
147
+ // ① 一次扫出最长数字前缀;
148
+ // ② 合法前缀长度用 `dot` 位置 O(1) 判定(不再每次重跑正则);
149
+ // ③ 尾部是否含 `\n` 用预计算的 `lastIndexOf` O(1) 判定。
150
+ // 回退次数 ≤ 数字长度,每次 O(1) ⇒ 总功 O(n)。
151
+ //
152
+ // 等价性实证:随机 300000 组(96356 组匹配成功)逐字节零分歧。
153
+ // 性能:80000 长度 9723ms → 2.19ms。
154
+ const num = /^\d+(?:\.\d+)?/.exec(text);
155
+ if (num === null)
131
156
  return undefined;
132
- const value = canonicalDecimal(m[1]);
133
- return value === undefined ? undefined : { value, unit: m[2] };
157
+ const maxLen = num[0].length;
158
+ const dot = num[0].indexOf('.');
159
+ const lastNl = text.lastIndexOf('\n');
160
+ // 合法数字前缀长度:无小数点时 1..maxLen 全合法;
161
+ // 有小数点时,`dot+1`(即以 `.` 结尾)非法,其余合法。
162
+ const okLen = (k) => dot < 0 ? true : (k <= dot || k >= dot + 2);
163
+ for (let k = maxLen; k >= 1; k--) {
164
+ if (!okLen(k))
165
+ continue;
166
+ // 分支①:`\s?` 吃掉一个空白字符(它**可以**是 `\n`)
167
+ if (k < text.length && /\s/.test(text[k])
168
+ && text.length - (k + 1) > 0 && lastNl < k + 1) {
169
+ const value = canonicalDecimal(text.slice(0, k));
170
+ return value === undefined ? undefined : { value, unit: text.slice(k + 1) };
171
+ }
172
+ // 分支②:`\s?` 不吃
173
+ if (text.length - k > 0 && lastNl < k) {
174
+ const value = canonicalDecimal(text.slice(0, k));
175
+ return value === undefined ? undefined : { value, unit: text.slice(k) };
176
+ }
177
+ }
178
+ return undefined;
134
179
  }
135
180
  }
136
181
  }
@@ -145,7 +190,25 @@ function canonicalDecimal(s) {
145
190
  if (m === null)
146
191
  return undefined;
147
192
  const intPart = m[1].replace(/^0+(?=\d)/, '');
148
- const frac = (m[2] ?? '').replace(/0+$/, '');
193
+ // ★去尾随零用**线性扫描**而非 `/0+$/` —— 后者呈二次回溯:
194
+ // `+` 在每个起始位置贪婪吃完再回退,实测 10000→144ms、20000→576ms、
195
+ // 40000→2306ms(×4.0)。
196
+ //
197
+ // ★有意思的是:CodeQL 报的是上面那条 `^(\d+)(?:\.(\d*))?$`(js/polynomial-redos,
198
+ // high),但实测它是**线性**的(×2.0)——在 V8 上是误报。
199
+ // 真正二次的 `0+$` 它**没报**。
200
+ // → 静态扫描器给方向,**判据仍是实测增长率**。
201
+ //
202
+ // 当前无调用方能喂进超长小数(PERCENT/MONEY 的模式限制了长度),
203
+ // 故这不是可达漏洞;但本模块吃的是人类文档,改成线性是零成本的去险。
204
+ const frac = stripTrailingZeros(m[2] ?? '');
149
205
  return frac.length > 0 ? `${intPart}.${frac}` : intPart;
150
206
  }
207
+ /** 去掉尾随的 `0`。★线性扫描,语义与 `/0+$/` 完全一致。 */
208
+ function stripTrailingZeros(s) {
209
+ let end = s.length;
210
+ while (end > 0 && s.charCodeAt(end - 1) === 48)
211
+ end--; // '0'
212
+ return end === s.length ? s : s.slice(0, end);
213
+ }
151
214
  //# sourceMappingURL=quantity-ir.js.map
@@ -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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"}