@zhixuan92/multi-model-agent-core 4.7.3 → 4.7.4

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 (105) hide show
  1. package/dist/events/task-envelope.d.ts +4 -0
  2. package/dist/events/task-envelope.d.ts.map +1 -1
  3. package/dist/events/task-envelope.js.map +1 -1
  4. package/dist/events/to-wire-record.d.ts.map +1 -1
  5. package/dist/events/to-wire-record.js +30 -20
  6. package/dist/events/to-wire-record.js.map +1 -1
  7. package/dist/events/wire-schema.d.ts +42 -30
  8. package/dist/events/wire-schema.d.ts.map +1 -1
  9. package/dist/events/wire-schema.js +15 -1
  10. package/dist/events/wire-schema.js.map +1 -1
  11. package/dist/index.d.ts +1 -0
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +1 -0
  14. package/dist/index.js.map +1 -1
  15. package/dist/lifecycle/findings-parser.d.ts +8 -1
  16. package/dist/lifecycle/findings-parser.d.ts.map +1 -1
  17. package/dist/lifecycle/findings-parser.js +109 -18
  18. package/dist/lifecycle/findings-parser.js.map +1 -1
  19. package/dist/lifecycle/handlers/annotate-stage.d.ts +4 -0
  20. package/dist/lifecycle/handlers/annotate-stage.d.ts.map +1 -1
  21. package/dist/lifecycle/handlers/annotate-stage.js +14 -1
  22. package/dist/lifecycle/handlers/annotate-stage.js.map +1 -1
  23. package/dist/lifecycle/handlers/baseline-handlers.d.ts.map +1 -1
  24. package/dist/lifecycle/handlers/baseline-handlers.js +61 -4
  25. package/dist/lifecycle/handlers/baseline-handlers.js.map +1 -1
  26. package/dist/lifecycle/handlers/enrich-runtime-result.d.ts.map +1 -1
  27. package/dist/lifecycle/handlers/enrich-runtime-result.js +10 -0
  28. package/dist/lifecycle/handlers/enrich-runtime-result.js.map +1 -1
  29. package/dist/lifecycle/handlers/implement-stage.d.ts.map +1 -1
  30. package/dist/lifecycle/handlers/implement-stage.js +4 -0
  31. package/dist/lifecycle/handlers/implement-stage.js.map +1 -1
  32. package/dist/lifecycle/handlers/read-route-implementer.d.ts +6 -0
  33. package/dist/lifecycle/handlers/read-route-implementer.d.ts.map +1 -1
  34. package/dist/lifecycle/handlers/read-route-implementer.js +26 -1
  35. package/dist/lifecycle/handlers/read-route-implementer.js.map +1 -1
  36. package/dist/lifecycle/handlers/review-stage.d.ts.map +1 -1
  37. package/dist/lifecycle/handlers/review-stage.js +28 -3
  38. package/dist/lifecycle/handlers/review-stage.js.map +1 -1
  39. package/dist/lifecycle/lifecycle-driver.js +4 -0
  40. package/dist/lifecycle/lifecycle-driver.js.map +1 -1
  41. package/dist/lifecycle/merge-stage-stats.d.ts +9 -0
  42. package/dist/lifecycle/merge-stage-stats.d.ts.map +1 -1
  43. package/dist/lifecycle/merge-stage-stats.js +21 -0
  44. package/dist/lifecycle/merge-stage-stats.js.map +1 -1
  45. package/dist/lifecycle/parallel-criteria-routes.d.ts +5 -0
  46. package/dist/lifecycle/parallel-criteria-routes.d.ts.map +1 -1
  47. package/dist/lifecycle/parallel-criteria-routes.js +15 -7
  48. package/dist/lifecycle/parallel-criteria-routes.js.map +1 -1
  49. package/dist/lifecycle/perform-implementation.d.ts.map +1 -1
  50. package/dist/lifecycle/perform-implementation.js +9 -0
  51. package/dist/lifecycle/perform-implementation.js.map +1 -1
  52. package/dist/lifecycle/stage-io.d.ts +12 -0
  53. package/dist/lifecycle/stage-io.d.ts.map +1 -1
  54. package/dist/lifecycle/stage-io.js.map +1 -1
  55. package/dist/reporting/findings-outcome.d.ts +13 -0
  56. package/dist/reporting/findings-outcome.d.ts.map +1 -0
  57. package/dist/reporting/findings-outcome.js +22 -0
  58. package/dist/reporting/findings-outcome.js.map +1 -0
  59. package/dist/reporting/report-parser-slots/investigate-report.d.ts +6 -0
  60. package/dist/reporting/report-parser-slots/investigate-report.d.ts.map +1 -1
  61. package/dist/reporting/report-parser-slots/investigate-report.js +122 -13
  62. package/dist/reporting/report-parser-slots/investigate-report.js.map +1 -1
  63. package/dist/reporting/structured-report.d.ts +4 -0
  64. package/dist/reporting/structured-report.d.ts.map +1 -1
  65. package/dist/reporting/structured-report.js.map +1 -1
  66. package/dist/review/parse-review-report.d.ts +4 -1
  67. package/dist/review/parse-review-report.d.ts.map +1 -1
  68. package/dist/review/parse-review-report.js +3 -2
  69. package/dist/review/parse-review-report.js.map +1 -1
  70. package/dist/review/templates/quality-review.d.ts +1 -0
  71. package/dist/review/templates/quality-review.d.ts.map +1 -1
  72. package/dist/review/templates/quality-review.js +14 -3
  73. package/dist/review/templates/quality-review.js.map +1 -1
  74. package/dist/review/templates/spec-review.d.ts +1 -0
  75. package/dist/review/templates/spec-review.d.ts.map +1 -1
  76. package/dist/review/templates/spec-review.js +19 -12
  77. package/dist/review/templates/spec-review.js.map +1 -1
  78. package/dist/tools/audit/skill-audit-criteria.d.ts.map +1 -1
  79. package/dist/tools/audit/skill-audit-criteria.js +1 -0
  80. package/dist/tools/audit/skill-audit-criteria.js.map +1 -1
  81. package/dist/tools/audit/spec-audit-criteria.d.ts.map +1 -1
  82. package/dist/tools/audit/spec-audit-criteria.js +5 -4
  83. package/dist/tools/audit/spec-audit-criteria.js.map +1 -1
  84. package/dist/tools/audit/subtypes.d.ts.map +1 -1
  85. package/dist/tools/audit/subtypes.js +2 -0
  86. package/dist/tools/audit/subtypes.js.map +1 -1
  87. package/dist/tools/debug/subtypes.d.ts.map +1 -1
  88. package/dist/tools/debug/subtypes.js +5 -4
  89. package/dist/tools/debug/subtypes.js.map +1 -1
  90. package/dist/tools/investigate/subtypes.d.ts.map +1 -1
  91. package/dist/tools/investigate/subtypes.js +5 -4
  92. package/dist/tools/investigate/subtypes.js.map +1 -1
  93. package/dist/tools/parallel-criteria-prompt.d.ts +7 -0
  94. package/dist/tools/parallel-criteria-prompt.d.ts.map +1 -1
  95. package/dist/tools/parallel-criteria-prompt.js.map +1 -1
  96. package/dist/tools/research/subtypes.d.ts.map +1 -1
  97. package/dist/tools/research/subtypes.js +5 -4
  98. package/dist/tools/research/subtypes.js.map +1 -1
  99. package/dist/tools/research/tool-config.d.ts.map +1 -1
  100. package/dist/tools/research/tool-config.js +1 -0
  101. package/dist/tools/research/tool-config.js.map +1 -1
  102. package/dist/tools/review/subtypes.d.ts.map +1 -1
  103. package/dist/tools/review/subtypes.js +5 -4
  104. package/dist/tools/review/subtypes.js.map +1 -1
  105. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"stage-io.js","sourceRoot":"","sources":["../../src/lifecycle/stage-io.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,gDAAgD;AAOhD,4EAA4E;AAC5E,2EAA2E;AAC3E,wEAAwE;AACxE,kEAAkE;AAClE,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,CAAU,CAAC;AAEhJ,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,UAAU,EAAE,cAAc,EAAE,OAAO,CAAU,CAAC;AA4I3E,sBAAsB;AAEtB,gFAAgF;AAChF,MAAM,UAAU,WAAW,CAAC,KAAoD;IAG9E,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACrC,IAAI,MAAM,EAAE,OAAO,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,OAAwB,CAAC;IAC1E,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC3C,IAAI,SAAS,EAAE,OAAO,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC,OAA2B,CAAC;IACnF,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"stage-io.js","sourceRoot":"","sources":["../../src/lifecycle/stage-io.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,gDAAgD;AAOhD,4EAA4E;AAC5E,2EAA2E;AAC3E,wEAAwE;AACxE,kEAAkE;AAClE,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,CAAU,CAAC;AAEhJ,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,UAAU,EAAE,cAAc,EAAE,OAAO,CAAU,CAAC;AAyJ3E,sBAAsB;AAEtB,gFAAgF;AAChF,MAAM,UAAU,WAAW,CAAC,KAAoD;IAG9E,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACrC,IAAI,MAAM,EAAE,OAAO,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,OAAwB,CAAC;IAC1E,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC3C,IAAI,SAAS,EAAE,OAAO,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC,OAA2B,CAAC;IACnF,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { z } from 'zod';
2
+ export declare const FINDINGS_OUTCOME_KINDS: readonly ["found", "clean", "not_applicable"];
3
+ export type FindingsOutcomeKind = typeof FINDINGS_OUTCOME_KINDS[number];
4
+ export declare const findingsOutcomeKindSchema: z.ZodEnum<{
5
+ not_applicable: "not_applicable";
6
+ clean: "clean";
7
+ found: "found";
8
+ }>;
9
+ export declare function inferFromFindings(findings: readonly {
10
+ severity: unknown;
11
+ }[], legalOutcomes: readonly FindingsOutcomeKind[]): FindingsOutcomeKind;
12
+ export declare function aggregateOutcomes(perTurn: readonly FindingsOutcomeKind[]): FindingsOutcomeKind;
13
+ //# sourceMappingURL=findings-outcome.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findings-outcome.d.ts","sourceRoot":"","sources":["../../src/reporting/findings-outcome.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,sBAAsB,+CAAgD,CAAC;AACpF,MAAM,MAAM,mBAAmB,GAAG,OAAO,sBAAsB,CAAC,MAAM,CAAC,CAAC;AAExE,eAAO,MAAM,yBAAyB;;;;EAAiC,CAAC;AAExE,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,SAAS;IAAE,QAAQ,EAAE,OAAO,CAAA;CAAE,EAAE,EAC1C,aAAa,EAAE,SAAS,mBAAmB,EAAE,GAC5C,mBAAmB,CAMrB;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,SAAS,mBAAmB,EAAE,GAAG,mBAAmB,CAK9F"}
@@ -0,0 +1,22 @@
1
+ import { z } from 'zod';
2
+ export const FINDINGS_OUTCOME_KINDS = ['found', 'clean', 'not_applicable'];
3
+ export const findingsOutcomeKindSchema = z.enum(FINDINGS_OUTCOME_KINDS);
4
+ export function inferFromFindings(findings, legalOutcomes) {
5
+ if (findings.length > 0)
6
+ return 'found';
7
+ // Pick the first non-found legal value (clean for issue-hunters, not_applicable for answer-producers)
8
+ const nonFound = legalOutcomes.find(o => o !== 'found');
9
+ if (!nonFound)
10
+ throw new Error('legalOutcomes must contain at least one non-found value');
11
+ return nonFound;
12
+ }
13
+ export function aggregateOutcomes(perTurn) {
14
+ if (perTurn.length === 0)
15
+ throw new Error('aggregateOutcomes: empty input');
16
+ if (perTurn.includes('found'))
17
+ return 'found';
18
+ if (perTurn.includes('not_applicable'))
19
+ return 'not_applicable';
20
+ return 'clean';
21
+ }
22
+ //# sourceMappingURL=findings-outcome.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findings-outcome.js","sourceRoot":"","sources":["../../src/reporting/findings-outcome.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,gBAAgB,CAAU,CAAC;AAGpF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;AAExE,MAAM,UAAU,iBAAiB,CAC/B,QAA0C,EAC1C,aAA6C;IAE7C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC;IACxC,sGAAsG;IACtG,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC;IACxD,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC1F,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAuC;IACvE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IAC5E,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IAC9C,IAAI,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAAE,OAAO,gBAAgB,CAAC;IAChE,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -14,8 +14,14 @@ export interface Confidence {
14
14
  rationale: string;
15
15
  }
16
16
  export declare function parseConfidence(rawLines: string[]): Confidence | null;
17
+ export interface Finding {
18
+ title: string;
19
+ evidence: Citation[];
20
+ evidenceIsNone: boolean;
21
+ }
17
22
  export interface ParsedInvestigation {
18
23
  citations: Citation[];
24
+ findings: Finding[];
19
25
  confidence: Confidence | null;
20
26
  needsCallerClarification: boolean;
21
27
  diagnostics: {
@@ -1 +1 @@
1
- {"version":3,"file":"investigate-report.d.ts","sourceRoot":"","sources":["../../../src/reporting/report-parser-slots/investigate-report.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAKnE,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAiDD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,oBAAoB,CAwBvE;AAID,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;CACnB;AAID,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,UAAU,GAAG,IAAI,CAyBrE;AAID,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,wBAAwB,EAAE,OAAO,CAAC;IAClC,WAAW,EAAE;QACX,sBAAsB,EAAE,MAAM,CAAC;QAC/B,uBAAuB,EAAE,MAAM,EAAE,CAAC;QAClC,uBAAuB,EAAE,MAAM,EAAE,CAAC;KACnC,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;IACvC,SAAS,EAAE,OAAO,GAAG,kBAAkB,GAAG,eAAe,GAAG,SAAS,CAAC;IACtE,UAAU,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;CAC7C;AAED,MAAM,MAAM,wBAAwB,GAChC;IAAE,IAAI,EAAE,sBAAsB,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,aAAa,EAAE,mBAAmB,CAAC;IAAC,eAAe,EAAE,eAAe,CAAA;CAAE,CAAC;AAkBxG,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,wBAAwB,CAgEpF;AAID,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,aAAa,EAAE,mBAAmB,CAAC;IACnC,eAAe,EAAE,eAAe,CAAC;CAClC;AAED,eAAO,MAAM,uBAAuB,EAAE,YAAY,CAAC,uBAAuB,CAQzE,CAAC"}
1
+ {"version":3,"file":"investigate-report.d.ts","sourceRoot":"","sources":["../../../src/reporting/report-parser-slots/investigate-report.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAKnE,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAiDD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,oBAAoB,CAwBvE;AAID,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;CACnB;AAID,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,UAAU,GAAG,IAAI,CAyBrE;AAID,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC;CACzB;AAID,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,wBAAwB,EAAE,OAAO,CAAC;IAClC,WAAW,EAAE;QACX,sBAAsB,EAAE,MAAM,CAAC;QAC/B,uBAAuB,EAAE,MAAM,EAAE,CAAC;QAClC,uBAAuB,EAAE,MAAM,EAAE,CAAC;KACnC,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;IACvC,SAAS,EAAE,OAAO,GAAG,kBAAkB,GAAG,eAAe,GAAG,SAAS,CAAC;IACtE,UAAU,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;CAC7C;AAED,MAAM,MAAM,wBAAwB,GAChC;IAAE,IAAI,EAAE,sBAAsB,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,aAAa,EAAE,mBAAmB,CAAC;IAAC,eAAe,EAAE,eAAe,CAAA;CAAE,CAAC;AAkIxG,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,wBAAwB,CAqFpF;AAID,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,aAAa,EAAE,mBAAmB,CAAC;IACnC,eAAe,EAAE,eAAe,CAAC;CAClC;AAED,eAAO,MAAM,uBAAuB,EAAE,YAAY,CAAC,uBAAuB,CAQzE,CAAC"}
@@ -113,12 +113,104 @@ const NEEDS_CONTEXT_BULLET_RE = /^(?:[-*]|\d+[.)])\s+\[needs_context\]/i;
113
113
  function detectNeedsContext(unresolvedLines) {
114
114
  return unresolvedLines.some(l => NEEDS_CONTEXT_BULLET_RE.test(l.trim()));
115
115
  }
116
+ // ── Finding block parsing ──
117
+ const FINDING_BLOCK_RE = /^##\s+finding\s+\d+:\s*(.+)$/im;
118
+ const EVIDENCE_BULLET_RE = /^(?:[-*]|\d+[.)])\s+evidence:\s*(.+)$/im;
119
+ function parseEvidenceLine(line) {
120
+ const match = line.match(EVIDENCE_BULLET_RE);
121
+ if (!match || !match[1]) {
122
+ return { isNone: false, citations: [], malformed: 0 };
123
+ }
124
+ const evidenceContent = match[1].trim();
125
+ // Check if evidence is (none)
126
+ if (evidenceContent === '(none)' || evidenceContent === 'none') {
127
+ return { isNone: true, citations: [], malformed: 0 };
128
+ }
129
+ // Parse as a citation line (format: file:lines — claim or file:lines -- claim)
130
+ const citationMatch = evidenceContent.match(CITATION_RE);
131
+ if (!citationMatch || !citationMatch.groups) {
132
+ return { isNone: false, citations: [], malformed: 1 };
133
+ }
134
+ const { file, lines, claim } = citationMatch.groups;
135
+ if (!isValidLineToken(lines)) {
136
+ return { isNone: false, citations: [], malformed: 1 };
137
+ }
138
+ if (!claim || !claim.trim()) {
139
+ return { isNone: false, citations: [], malformed: 1 };
140
+ }
141
+ return {
142
+ isNone: false,
143
+ citations: [{ file: file.trim(), lines: lines, claim: claim.trim() }],
144
+ malformed: 0,
145
+ };
146
+ }
147
+ function extractFindingsFromReport(rawOutput) {
148
+ const findings = [];
149
+ let allCitations = [];
150
+ let malformedCount = 0;
151
+ // Split by Finding blocks (case-insensitive)
152
+ const findingRegex = /^##\s+finding\s+\d+:\s*(.+)$/im;
153
+ const lines = rawOutput.split('\n');
154
+ let currentFinding = null;
155
+ for (const line of lines) {
156
+ const findingMatch = line.match(findingRegex);
157
+ if (findingMatch) {
158
+ // Start a new finding
159
+ if (currentFinding) {
160
+ // Process the previous finding
161
+ const finding = processFindingLines(currentFinding);
162
+ if (finding) {
163
+ findings.push(finding);
164
+ allCitations = allCitations.concat(finding.evidence);
165
+ malformedCount += finding.malformedLines;
166
+ }
167
+ }
168
+ currentFinding = { title: findingMatch[1].trim(), lines: [] };
169
+ }
170
+ else if (currentFinding) {
171
+ currentFinding.lines.push(line);
172
+ }
173
+ }
174
+ // Process the last finding
175
+ if (currentFinding) {
176
+ const finding = processFindingLines(currentFinding);
177
+ if (finding) {
178
+ findings.push(finding);
179
+ allCitations = allCitations.concat(finding.evidence);
180
+ malformedCount += finding.malformedLines;
181
+ }
182
+ }
183
+ return { findings, allCitations, malformedEvidenceLines: malformedCount };
184
+ }
185
+ function processFindingLines(finding) {
186
+ let evidenceIsNone = false;
187
+ let citations = [];
188
+ let malformed = 0;
189
+ // Look for Evidence: bullet
190
+ for (const line of finding.lines) {
191
+ if (EVIDENCE_BULLET_RE.test(line)) {
192
+ const result = parseEvidenceLine(line);
193
+ evidenceIsNone = result.isNone;
194
+ citations = result.citations;
195
+ malformed = result.malformed;
196
+ break;
197
+ }
198
+ }
199
+ return {
200
+ title: finding.title,
201
+ evidence: citations,
202
+ evidenceIsNone,
203
+ malformedLines: malformed,
204
+ };
205
+ }
116
206
  export function parseInvestigationReport(rawOutput) {
117
207
  if (!rawOutput || !rawOutput.trim())
118
208
  return { kind: 'no_structured_report' };
209
+ // Check for investigation headers: can have Findings, or traditional Citations/Confidence/Summary
210
+ const hasFindingsHeader = hasSectionHeader(rawOutput, 'finding');
119
211
  const recognized = ['summary', 'citations', 'confidence'];
120
- const hasInvestigationHeader = recognized.some(name => hasSectionHeader(rawOutput, name));
121
- if (!hasInvestigationHeader)
212
+ const hasTraditionalHeader = recognized.some(name => hasSectionHeader(rawOutput, name));
213
+ if (!hasFindingsHeader && !hasTraditionalHeader)
122
214
  return { kind: 'no_structured_report' };
123
215
  const generic = parseStructuredReport(rawOutput);
124
216
  const summaryHeaderPresent = hasSectionHeader(rawOutput, 'summary');
@@ -139,21 +231,37 @@ export function parseInvestigationReport(rawOutput) {
139
231
  confidenceValidity = 'valid';
140
232
  else
141
233
  confidenceValidity = 'invalid';
142
- const citationsHeaderPresent = hasSectionHeader(rawOutput, 'citations');
143
- const citationsLines = generic.extraSections['citations'] ?? [];
234
+ // Extract findings and citations from Finding blocks if present
235
+ const { findings: rawFindings, allCitations: findingsCitations, malformedEvidenceLines } = extractFindingsFromReport(rawOutput);
236
+ // Second-pass: filter findings with evidenceIsNone when confidence is not low
237
+ let finalFindings = rawFindings;
238
+ if (confidenceParsed && confidenceParsed.level !== 'low') {
239
+ finalFindings = rawFindings.filter(f => !f.evidenceIsNone);
240
+ }
241
+ // Determine citations validity
144
242
  let citationsValidity;
145
243
  let citationsParsed;
146
- if (!citationsHeaderPresent) {
147
- citationsValidity = 'missing';
148
- citationsParsed = { citations: [], malformedCitationLines: 0 };
149
- }
150
- else if (isLegitimatelyNone(citationsLines)) {
151
- citationsParsed = { citations: [], malformedCitationLines: 0 };
152
- citationsValidity = (confidenceParsed?.level === 'low') ? 'empty_legitimate' : 'empty_invalid';
244
+ if (hasFindingsHeader && rawFindings.length > 0) {
245
+ // Use citations from findings
246
+ citationsParsed = { citations: findingsCitations, malformedCitationLines: malformedEvidenceLines };
247
+ citationsValidity = findingsCitations.length > 0 ? 'valid' : 'empty_invalid';
153
248
  }
154
249
  else {
155
- citationsParsed = parseCitations(citationsLines);
156
- citationsValidity = citationsParsed.citations.length > 0 ? 'valid' : 'empty_invalid';
250
+ // Fall back to traditional ## Citations section
251
+ const citationsHeaderPresent = hasSectionHeader(rawOutput, 'citations');
252
+ const citationsLines = generic.extraSections['citations'] ?? [];
253
+ if (!citationsHeaderPresent) {
254
+ citationsValidity = 'missing';
255
+ citationsParsed = { citations: [], malformedCitationLines: 0 };
256
+ }
257
+ else if (isLegitimatelyNone(citationsLines)) {
258
+ citationsParsed = { citations: [], malformedCitationLines: 0 };
259
+ citationsValidity = (confidenceParsed?.level === 'low') ? 'empty_legitimate' : 'empty_invalid';
260
+ }
261
+ else {
262
+ citationsParsed = parseCitations(citationsLines);
263
+ citationsValidity = citationsParsed.citations.length > 0 ? 'valid' : 'empty_invalid';
264
+ }
157
265
  }
158
266
  const missing = [];
159
267
  const invalid = [];
@@ -175,6 +283,7 @@ export function parseInvestigationReport(rawOutput) {
175
283
  kind: 'structured_report',
176
284
  investigation: {
177
285
  citations: citationsParsed.citations,
286
+ findings: finalFindings,
178
287
  confidence: confidenceParsed,
179
288
  needsCallerClarification,
180
289
  diagnostics: {
@@ -1 +1 @@
1
- {"version":3,"file":"investigate-report.js","sourceRoot":"","sources":["../../../src/reporting/report-parser-slots/investigate-report.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"investigate-report.js","sourceRoot":"","sources":["../../../src/reporting/report-parser-slots/investigate-report.ts"],"names":[],"mappings":"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"}
@@ -31,6 +31,10 @@ export interface ParsedStructuredReport {
31
31
  extraSections: Record<string, string[]>;
32
32
  commit?: CommitFields;
33
33
  commitDiagnostic?: string;
34
+ findingsOutcome?: 'found' | 'clean' | 'not_applicable';
35
+ findingsOutcomeReason?: string | null;
36
+ outcomeInferred?: boolean;
37
+ outcomeMalformed?: boolean;
34
38
  }
35
39
  export type StructuredReport = ParsedStructuredReport;
36
40
  export declare function parseStructuredReport(output: string): ParsedStructuredReport;
@@ -1 +1 @@
1
- {"version":3,"file":"structured-report.d.ts","sourceRoot":"","sources":["../../src/reporting/structured-report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,sBAAsB,QAiC3B,CAAC;AAET,eAAO,MAAM,YAAY;;;;;;;;;;;;;iBAUvB,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAExD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,cAAc,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3D,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACxC,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,MAAM,gBAAgB,GAAG,sBAAsB,CAAC;AAEtD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,sBAAsB,CAmD5E"}
1
+ {"version":3,"file":"structured-report.d.ts","sourceRoot":"","sources":["../../src/reporting/structured-report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,sBAAsB,QAiC3B,CAAC;AAET,eAAO,MAAM,YAAY;;;;;;;;;;;;;iBAUvB,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAExD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,cAAc,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3D,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACxC,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,gBAAgB,CAAC;IACvD,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,MAAM,gBAAgB,GAAG,sBAAsB,CAAC;AAEtD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,sBAAsB,CAmD5E"}
@@ -1 +1 @@
1
- {"version":3,"file":"structured-report.js","sourceRoot":"","sources":["../../src/reporting/structured-report.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"structured-report.js","sourceRoot":"","sources":["../../src/reporting/structured-report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCrC,CAAC,IAAI,EAAE,CAAC;AAET,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC3E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC,QAAQ,EAAE;IAClE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;SAChB,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,EAAE,CAAC;SACP,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,6CAA6C,CAAC;SAC7E,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,iCAAiC,CAAC;SAChE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,EAAE,gCAAgC,CAAC;IACnF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;CACtC,CAAC,CAAC;AA0BH,MAAM,UAAU,qBAAqB,CAAC,MAAc;IAClD,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QAC9B,OAAO;YACL,OAAO,EAAE,IAAI;YACb,YAAY,EAAE,EAAE;YAChB,cAAc,EAAE,EAAE;YAClB,mBAAmB,EAAE,EAAE;YACvB,UAAU,EAAE,EAAE;YACd,aAAa,EAAE,EAAE;SAClB,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAEzC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;QAC5B,SAAS,EAAE,eAAe,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,YAAY;KACrF,CAAC,CAAC;IACH,MAAM,aAAa,GAA6B,EAAE,CAAC;IACnD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,aAAa,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAA2B;QACrC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI;QACzC,YAAY,EAAE,iBAAiB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QAC1D,cAAc,EAAE,mBAAmB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAChE,mBAAmB,EAAE,QAAQ,CAAC,uBAAuB,CAAC,IAAI,EAAE;QAC5D,UAAU,EAAE,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE;QACxC,aAAa;KACd,CAAC;IAEF,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACjF,IAAI,WAAW,EAAE,CAAC;QAChB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAC3C,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM;qBAC1C,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;qBAC7C,IAAI,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,gBAAgB,GAAG,kCAAmC,CAAW,CAAC,OAAO,EAAE,CAAC;QACrF,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,eAAe,CAAC,MAAc;IACrC,MAAM,QAAQ,GAA6B,EAAE,CAAC;IAE9C,yCAAyC;IACzC,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC3C,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC;YAAE,SAAS;QACzC,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,YAAY,KAAK,CAAC,CAAC;YAAE,SAAS;QAClC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;QACnE,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACvD,IAAI,MAAM,IAAI,OAAO,EAAE,CAAC;YACtB,QAAQ,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAED,8DAA8D;IAC9D,6EAA6E;IAC7E,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC1C,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,SAAS;QACxC,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,YAAY,KAAK,CAAC,CAAC;YAAE,SAAS;QAClC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;QACnE,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACvD,IAAI,MAAM,IAAI,OAAO,EAAE,CAAC;YACtB,QAAQ,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAC;IAEtD,oDAAoD;IACpD,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;IACjF,KAAK,MAAM,IAAI,IAAI,gBAAgB,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,MAA0B,CAAC;QAC/B,IAAI,OAA2B,CAAC;QAEhC,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAClE,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;YAC3C,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAChC,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;YAChF,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;gBAC5C,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACjC,CAAC;QACH,CAAC;QAED,IAAI,MAAM,IAAI,OAAO,EAAE,CAAC;YACtB,QAAQ,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAC;IAEtD,yDAAyD;IACzD,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IAC1D,IAAI,cAAc,EAAE,CAAC;QACnB,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,mBAAmB,CAAC,KAA2B;IACtD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9C,wEAAwE;IACxE,MAAM,SAAS,GAAG,KAAK;SACpB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SACxD,MAAM,CAAC,OAAO,CAAC,CAAC;IACnB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACxC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACzC,OAAO,SAAS,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC;AACxF,CAAC;AAED,SAAS,iBAAiB,CAAC,KAA2B;IACpD,IAAI,mBAAmB,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAC1C,OAAQ,KAAkB;SACvB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;SAC1C,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;SACpC,GAAG,CAAC,CAAC,CAAC,EAAE;QACP,MAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,QAAQ,KAAK,CAAC,CAAC;YAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QACrD,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;IACtF,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,mBAAmB,CAAC,KAA2B;IACtD,IAAI,mBAAmB,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAC1C,OAAQ,KAAkB;SACvB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;SAC1C,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;SACpC,GAAG,CAAC,CAAC,CAAC,EAAE;QACP,MAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,QAAQ,KAAK,CAAC,CAAC;YAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QACvD,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;IACxF,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,3 +1,4 @@
1
+ import type { FindingsOutcomeKind } from '../reporting/findings-outcome.js';
1
2
  export interface ParsedReviewReport {
2
3
  verdict: 'approved' | 'changes_required';
3
4
  findings: Array<{
@@ -8,5 +9,7 @@ export interface ParsedReviewReport {
8
9
  suggestion?: string;
9
10
  }>;
10
11
  }
11
- export declare function parseReviewReport(text: string): ParsedReviewReport;
12
+ type WarnSink = (event: string, data: Record<string, unknown>) => void;
13
+ export declare function parseReviewReport(text: string, legalOutcomes?: readonly FindingsOutcomeKind[], warnSink?: WarnSink): ParsedReviewReport;
14
+ export {};
12
15
  //# sourceMappingURL=parse-review-report.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-review-report.d.ts","sourceRoot":"","sources":["../../src/review/parse-review-report.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,UAAU,GAAG,kBAAkB,CAAC;IACzC,QAAQ,EAAE,KAAK,CAAC;QACd,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;QACjD,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;CACJ;AAKD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CA8BlE"}
1
+ {"version":3,"file":"parse-review-report.d.ts","sourceRoot":"","sources":["../../src/review/parse-review-report.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAE5E,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,UAAU,GAAG,kBAAkB,CAAC;IACzC,QAAQ,EAAE,KAAK,CAAC;QACd,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;QACjD,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;CACJ;AAKD,KAAK,QAAQ,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;AAEvE,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,aAAa,GAAE,SAAS,mBAAmB,EAAyC,EACpF,QAAQ,CAAC,EAAE,QAAQ,GAClB,kBAAkB,CA+BpB"}
@@ -1,7 +1,7 @@
1
1
  import { parseFindings } from '../lifecycle/findings-parser.js';
2
2
  const VERDICT_HEADER = /^##\s*verdict\s*$/im;
3
3
  const FINDINGS_HEADER = /^##\s*findings\s*$/im;
4
- export function parseReviewReport(text) {
4
+ export function parseReviewReport(text, legalOutcomes = ['found', 'clean', 'not_applicable'], warnSink) {
5
5
  const safe = (text ?? '').toString();
6
6
  const verdictMatch = safe.match(VERDICT_HEADER);
7
7
  const findingsMatch = safe.match(FINDINGS_HEADER);
@@ -22,7 +22,8 @@ export function parseReviewReport(text) {
22
22
  const findingsSection = findingsMatch
23
23
  ? safe.slice(findingsMatch.index + findingsMatch[0].length)
24
24
  : '';
25
- const findings = parseFindings(findingsSection, 'reviewer');
25
+ const result = parseFindings(findingsSection, 'reviewer', legalOutcomes, warnSink);
26
+ const findings = result.findings;
26
27
  // approved + findings → changes_required per design spec §4
27
28
  if (verdict === 'approved' && findings.length > 0) {
28
29
  verdict = 'changes_required';
@@ -1 +1 @@
1
- {"version":3,"file":"parse-review-report.js","sourceRoot":"","sources":["../../src/review/parse-review-report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAahE,MAAM,cAAc,GAAG,qBAAqB,CAAC;AAC7C,MAAM,eAAe,GAAG,sBAAsB,CAAC;AAE/C,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,MAAM,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;IACrC,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAChD,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAElD,IAAI,OAAO,GAAoC,kBAAkB,CAAC;IAClE,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACvE,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACrF,IAAI,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/D,OAAO,GAAG,UAAU,CAAC;QACvB,CAAC;IACH,CAAC;SAAM,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/E,OAAO,GAAG,UAAU,CAAC;IACvB,CAAC;IAED,qEAAqE;IACrE,2EAA2E;IAC3E,+EAA+E;IAC/E,MAAM,eAAe,GAAG,aAAa;QACnC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAC5D,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,QAAQ,GAAG,aAAa,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;IAE5D,4DAA4D;IAC5D,IAAI,OAAO,KAAK,UAAU,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClD,OAAO,GAAG,kBAAkB,CAAC;IAC/B,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC/B,CAAC"}
1
+ {"version":3,"file":"parse-review-report.js","sourceRoot":"","sources":["../../src/review/parse-review-report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAchE,MAAM,cAAc,GAAG,qBAAqB,CAAC;AAC7C,MAAM,eAAe,GAAG,sBAAsB,CAAC;AAI/C,MAAM,UAAU,iBAAiB,CAC/B,IAAY,EACZ,gBAAgD,CAAC,OAAO,EAAE,OAAO,EAAE,gBAAgB,CAAC,EACpF,QAAmB;IAEnB,MAAM,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;IACrC,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAChD,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAElD,IAAI,OAAO,GAAoC,kBAAkB,CAAC;IAClE,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACvE,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACrF,IAAI,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/D,OAAO,GAAG,UAAU,CAAC;QACvB,CAAC;IACH,CAAC;SAAM,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/E,OAAO,GAAG,UAAU,CAAC;IACvB,CAAC;IAED,qEAAqE;IACrE,2EAA2E;IAC3E,+EAA+E;IAC/E,MAAM,eAAe,GAAG,aAAa;QACnC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAC5D,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,MAAM,GAAG,aAAa,CAAC,eAAe,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;IACnF,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IAEjC,4DAA4D;IAC5D,IAAI,OAAO,KAAK,UAAU,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClD,OAAO,GAAG,kBAAkB,CAAC;IAC/B,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC/B,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { ReviewTemplate } from './shared.js';
2
+ export declare const legalOutcomes: readonly ["found", "clean"];
2
3
  export declare const qualityLintTemplate: ReviewTemplate;
3
4
  export declare function qualityReviewPrompt(ctx: {
4
5
  brief: string;
@@ -1 +1 @@
1
- {"version":3,"file":"quality-review.d.ts","sourceRoot":"","sources":["../../../src/review/templates/quality-review.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAuBlD,eAAO,MAAM,mBAAmB,EAAE,cA8CjC,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,GAAG,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,MAAM,CAUjH"}
1
+ {"version":3,"file":"quality-review.d.ts","sourceRoot":"","sources":["../../../src/review/templates/quality-review.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,eAAO,MAAM,aAAa,6BAA8B,CAAC;AAiCzD,eAAO,MAAM,mBAAmB,EAAE,cA8CjC,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,GAAG,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,MAAM,CAUjH"}
@@ -1,3 +1,4 @@
1
+ export const legalOutcomes = ['found', 'clean'];
1
2
  const OUTPUT_FORMAT = `Output format (mandatory):
2
3
 
3
4
  ## Verdict
@@ -6,18 +7,28 @@ approved | changes_required
6
7
  ## Finding N: <one-line claim for this finding>
7
8
  - Severity: critical | high | medium | low
8
9
  - Category: <category name>
9
- - Issue: <one concrete symptom or risk — quote source line or describe observable bad behaviour>
10
+ - Evidence: <one concrete symptom or risk — quote source line or describe observable bad behaviour>
10
11
  - Suggestion: <specific, actionable fix — not a general nudge>
11
12
 
12
13
  ## Finding N+1: ...
13
14
  (omit section entirely if approved)
14
15
 
16
+ ## Outcome
17
+ found | clean
18
+
15
19
  Rules:
16
20
  - "approved" when the code is safe and correct enough to ship. Style nits do NOT block.
17
21
  - "changes_required" only for substantive risks (null-handling gap, missing error path, real edge case, security surface, etc.).
18
22
  - Each finding must be specific enough that a rework worker can act on it without re-deriving.
19
- - If approved, write "## Verdict\napproved" and omit the ## Finding sections entirely.
20
- - Do NOT use editor tools. Read-only investigation only.`;
23
+ - If approved, write "## Verdict\napproved" and omit the ## Finding sections entirely; then "## Outcome\nclean".
24
+ - If changes_required, write "## Outcome\nfound".
25
+ - Do NOT use editor tools. Read-only investigation only.
26
+
27
+ **Severity definitions (per quality-review):**
28
+ - **critical:** Will break in production
29
+ - **high:** Correctness gap in normal use
30
+ - **medium:** Maintainability/fragility
31
+ - **low:** Style`;
21
32
  export const qualityLintTemplate = {
22
33
  systemPrompt: [
23
34
  'You are the QUALITY reviewer for a plan-execution task. You are LINT-ONLY — do NOT edit files.',
@@ -1 +1 @@
1
- {"version":3,"file":"quality-review.js","sourceRoot":"","sources":["../../../src/review/templates/quality-review.ts"],"names":[],"mappings":"AAEA,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;yDAmBmC,CAAC;AAE1D,MAAM,CAAC,MAAM,mBAAmB,GAAmB;IACjD,YAAY,EAAE;QACZ,gGAAgG;QAChG,yFAAyF;QACzF,wGAAwG;QACxG,mFAAmF;QACnF,EAAE;QACF,aAAa;QACb,EAAE;QACF,QAAQ;QACR,yFAAyF;QACzF,kIAAkI;QAClI,gGAAgG;QAChG,wFAAwF;QACxF,0DAA0D;KAC3D,CAAC,IAAI,CAAC,IAAI,CAAC;IAEZ,eAAe,CAAC,GAAG;QACjB,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;QACzC,IAAI,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzD,KAAK,CAAC,IAAI,CAAC,mDAAmD,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAClG,CAAC;QACD,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,4DAA4D,GAAG,CAAC,IAAI,UAAU,CAAC,CAAC;QAC7F,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QAC9D,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,mFAAmF,CAAC,CAAC;QAChG,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,iBAAiB,CAAC,IAAI;QACpB,kEAAkE;QAClE,8DAA8D;QAC9D,oEAAoE;QACpE,4CAA4C;QAC5C,OAAO;YACL,sCAAsC;YACtC,EAAE;YACF,wEAAwE;YACxE,6EAA6E;YAC7E,EAAE;YACF,aAAa;SACd,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;CACF,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,GAAqE;IACvG,OAAO;;SAEA,GAAG,CAAC,KAAK;;eAEH,GAAG,CAAC,aAAa;;iBAEf,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ;;EAEtD,aAAa,EAAE,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"quality-review.js","sourceRoot":"","sources":["../../../src/review/templates/quality-review.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,OAAO,CAAU,CAAC;AAEzD,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA6BL,CAAC;AAElB,MAAM,CAAC,MAAM,mBAAmB,GAAmB;IACjD,YAAY,EAAE;QACZ,gGAAgG;QAChG,yFAAyF;QACzF,wGAAwG;QACxG,mFAAmF;QACnF,EAAE;QACF,aAAa;QACb,EAAE;QACF,QAAQ;QACR,yFAAyF;QACzF,kIAAkI;QAClI,gGAAgG;QAChG,wFAAwF;QACxF,0DAA0D;KAC3D,CAAC,IAAI,CAAC,IAAI,CAAC;IAEZ,eAAe,CAAC,GAAG;QACjB,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;QACzC,IAAI,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzD,KAAK,CAAC,IAAI,CAAC,mDAAmD,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAClG,CAAC;QACD,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,4DAA4D,GAAG,CAAC,IAAI,UAAU,CAAC,CAAC;QAC7F,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QAC9D,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,mFAAmF,CAAC,CAAC;QAChG,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,iBAAiB,CAAC,IAAI;QACpB,kEAAkE;QAClE,8DAA8D;QAC9D,oEAAoE;QACpE,4CAA4C;QAC5C,OAAO;YACL,sCAAsC;YACtC,EAAE;YACF,wEAAwE;YACxE,6EAA6E;YAC7E,EAAE;YACF,aAAa;SACd,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;CACF,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,GAAqE;IACvG,OAAO;;SAEA,GAAG,CAAC,KAAK;;eAEH,GAAG,CAAC,aAAa;;iBAEf,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ;;EAEtD,aAAa,EAAE,CAAC;AAClB,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { ReviewTemplate } from './shared.js';
2
+ export declare const legalOutcomes: readonly ["found", "clean"];
2
3
  export declare const OUTPUT_FORMAT: string;
3
4
  export declare function specReviewPrompt(ctx: {
4
5
  brief: string;
@@ -1 +1 @@
1
- {"version":3,"file":"spec-review.d.ts","sourceRoot":"","sources":["../../../src/review/templates/spec-review.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,eAAO,MAAM,aAAa,QAqBlB,CAAC;AAET,wBAAgB,gBAAgB,CAAC,GAAG,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,MAAM,CAU9G;AAED,eAAO,MAAM,gBAAgB,EAAE,cAiC9B,CAAC"}
1
+ {"version":3,"file":"spec-review.d.ts","sourceRoot":"","sources":["../../../src/review/templates/spec-review.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,eAAO,MAAM,aAAa,6BAA8B,CAAC;AAEzD,eAAO,MAAM,aAAa,QA0BlB,CAAC;AAET,wBAAgB,gBAAgB,CAAC,GAAG,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,MAAM,CAU9G;AAED,eAAO,MAAM,gBAAgB,EAAE,cAkC9B,CAAC"}
@@ -1,24 +1,30 @@
1
+ export const legalOutcomes = ['found', 'clean'];
1
2
  export const OUTPUT_FORMAT = `
2
3
  ## Verdict
3
- <approved | changes_required>
4
-
5
- ## Deviations
6
- List each gap on its own line as "- <plan step>: <what is wrong>". Write "(none)" if the diff fully satisfies the plan.
4
+ approved | changes_required
7
5
 
8
6
  ## Findings
9
7
  Emit zero or more findings using EXACTLY this block format. Each finding is its own block.
10
8
 
11
- ## Finding N:
12
- Severity: <critical|high|medium|low>
13
- Category: <one word — e.g. missing-step, wrong-file, broken-contract>
14
- Claim: <one sentencewhat is wrong>
15
- Evidence: <verbatim excerpt from source, ≥20 chars or empty if inferable>
16
- Suggestion: <one sentence — how to fix it>
9
+ ## Finding N: <one-line claim>
10
+ - Severity: critical | high | medium | low
11
+ - Category: <one word — e.g. missing-step, wrong-file, broken-contract>
12
+ - Evidence: <verbatim excerpt from source, ≥20 chars or (none) if inferable>
13
+ - Suggestion: <one sentencehow to fix it>
17
14
 
18
15
  ## Finding N+1:
19
16
  ...
20
17
 
21
- If no findings, write "## Findings\n(none)" and stop.
18
+ If no findings, write "## Findings\n(none)".
19
+
20
+ ## Outcome
21
+ found | clean
22
+
23
+ **Severity definitions (per spec-review):**
24
+ - **critical:** Plan step missed/wrong such that feature won't work
25
+ - **high:** Plan step partially implemented
26
+ - **medium:** Diverges in non-essential ways
27
+ - **low:** Cosmetic drift
22
28
  `.trim();
23
29
  export function specReviewPrompt(ctx) {
24
30
  return `You are the spec reviewer for this task.
@@ -45,7 +51,8 @@ export const specLintTemplate = {
45
51
  '- "approved" means the diff fully implements the plan section. Trivial wording differences are OK.',
46
52
  '- "changes_required" when any plan step is missing, partial, or wrong on disk.',
47
53
  '- Each finding must be specific enough that a rework worker can act on it without re-deriving.',
48
- '- If no findings, write "## Findings\\n(none)".',
54
+ '- If no findings, write "## Findings\\n(none)" followed by "## Outcome\\nclean".',
55
+ '- If any findings, write "## Outcome\\nfound".',
49
56
  '- Do NOT use editor tools. Read-only investigation only. Editing is the rework stage\'s job.',
50
57
  ].join('\n'),
51
58
  buildUserPrompt(ctx) {
@@ -1 +1 @@
1
- {"version":3,"file":"spec-review.js","sourceRoot":"","sources":["../../../src/review/templates/spec-review.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;CAqB5B,CAAC,IAAI,EAAE,CAAC;AAET,MAAM,UAAU,gBAAgB,CAAC,GAAqE;IACpG,OAAO;;SAEA,GAAG,CAAC,KAAK;;eAEH,GAAG,CAAC,aAAa;;iBAEf,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ;;EAEtD,aAAa,EAAE,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAmB;IAC9C,YAAY,EAAE;QACZ,6FAA6F;QAC7F,yFAAyF;QACzF,mFAAmF;QACnF,EAAE;QACF,4BAA4B;QAC5B,EAAE;QACF,aAAa;QACb,EAAE;QACF,QAAQ;QACR,oGAAoG;QACpG,gFAAgF;QAChF,gGAAgG;QAChG,iDAAiD;QACjD,8FAA8F;KAC/F,CAAC,IAAI,CAAC,IAAI,CAAC;IAEZ,eAAe,CAAC,GAAG;QACjB,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;QACzC,IAAI,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzD,KAAK,CAAC,IAAI,CAAC,uEAAuE,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACtH,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,uBAAuB,GAAG,CAAC,YAAY,IAAI,cAAc,EAAE,CAAC,CAAC;QACxE,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,4DAA4D,GAAG,CAAC,IAAI,UAAU,CAAC,CAAC;QAC7F,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QAC9D,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;QAC5E,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"spec-review.js","sourceRoot":"","sources":["../../../src/review/templates/spec-review.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,OAAO,CAAU,CAAC;AAEzD,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;CA0B5B,CAAC,IAAI,EAAE,CAAC;AAET,MAAM,UAAU,gBAAgB,CAAC,GAAqE;IACpG,OAAO;;SAEA,GAAG,CAAC,KAAK;;eAEH,GAAG,CAAC,aAAa;;iBAEf,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ;;EAEtD,aAAa,EAAE,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAmB;IAC9C,YAAY,EAAE;QACZ,6FAA6F;QAC7F,yFAAyF;QACzF,mFAAmF;QACnF,EAAE;QACF,4BAA4B;QAC5B,EAAE;QACF,aAAa;QACb,EAAE;QACF,QAAQ;QACR,oGAAoG;QACpG,gFAAgF;QAChF,gGAAgG;QAChG,kFAAkF;QAClF,gDAAgD;QAChD,8FAA8F;KAC/F,CAAC,IAAI,CAAC,IAAI,CAAC;IAEZ,eAAe,CAAC,GAAG;QACjB,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;QACzC,IAAI,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzD,KAAK,CAAC,IAAI,CAAC,uEAAuE,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACtH,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,uBAAuB,GAAG,CAAC,YAAY,IAAI,cAAc,EAAE,CAAC,CAAC;QACxE,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,4DAA4D,GAAG,CAAC,IAAI,UAAU,CAAC,CAAC;QAC7F,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QAC9D,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;QAC5E,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"skill-audit-criteria.d.ts","sourceRoot":"","sources":["../../../src/tools/audit/skill-audit-criteria.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAErE,eAAO,MAAM,+BAA+B,QAShC,CAAC;AAEb,eAAO,MAAM,yBAAyB,QAO1B,CAAC;AAEb,eAAO,MAAM,sBAAsB,QAKvB,CAAC;AAEb,eAAO,MAAM,+BAA+B,QAEhC,CAAC;AAYb,eAAO,MAAM,oBAAoB,EAAE,SAAS,cAAc,EAA6C,CAAC;AAExG,eAAO,MAAM,qBAAqB,EAAE,cAWnC,CAAC"}
1
+ {"version":3,"file":"skill-audit-criteria.d.ts","sourceRoot":"","sources":["../../../src/tools/audit/skill-audit-criteria.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAErE,eAAO,MAAM,+BAA+B,QAShC,CAAC;AAEb,eAAO,MAAM,yBAAyB,QAO1B,CAAC;AAEb,eAAO,MAAM,sBAAsB,QAKvB,CAAC;AAEb,eAAO,MAAM,+BAA+B,QAEhC,CAAC;AAYb,eAAO,MAAM,oBAAoB,EAAE,SAAS,cAAc,EAA6C,CAAC;AAExG,eAAO,MAAM,qBAAqB,EAAE,cAYnC,CAAC"}
@@ -47,5 +47,6 @@ export const SKILL_AUDIT_SEMANTICS = {
47
47
  low: 'stylistic / link / metadata fix; does not affect dispatch correctness.',
48
48
  },
49
49
  mustEmitAtLeastOne: false,
50
+ legalOutcomes: ['found', 'clean'],
50
51
  };
51
52
  //# sourceMappingURL=skill-audit-criteria.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"skill-audit-criteria.js","sourceRoot":"","sources":["../../../src/tools/audit/skill-audit-criteria.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC7C,wBAAwB;IACxB,wSAAwS;IACxS,EAAE;IACF,+DAA+D;IAC/D,kFAAkF;IAClF,gEAAgE;IAChE,EAAE;IACF,wPAAwP;CACzP,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,kDAAkD;IAClD,wHAAwH;IACxH,4GAA4G;IAC5G,+HAA+H;IAC/H,gGAAgG;IAChG,6IAA6I;CAC9I,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,QAAQ;IACR,qLAAqL;IACrL,sNAAsN;IACtN,uNAAuN;CACxN,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC7C,oHAAoH;CACrH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,yBAAyB,GAAG;IAChC,wLAAwL;IACxL,sNAAsN;IACtN,iLAAiL;IACjL,uJAAuJ;IACvJ,4LAA4L;IAC5L,wMAAwM;IACxM,iLAAiL;CAClL,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,oBAAoB,GAA8B,aAAa,CAAC,yBAAyB,CAAC,CAAC;AAExG,MAAM,CAAC,MAAM,qBAAqB,GAAmB;IACnD,QAAQ,EAAE,8LAA8L;IACxM,gBAAgB,EAAE,8KAA8K;IAChM,uBAAuB,EAAE,6SAA6S;IACtU,gBAAgB,EAAE;QAChB,QAAQ,EAAE,qKAAqK;QAC/K,IAAI,EAAE,qHAAqH;QAC3H,MAAM,EAAE,oJAAoJ;QAC5J,GAAG,EAAE,wEAAwE;KAC9E;IACD,kBAAkB,EAAE,KAAK;CAC1B,CAAC"}
1
+ {"version":3,"file":"skill-audit-criteria.js","sourceRoot":"","sources":["../../../src/tools/audit/skill-audit-criteria.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC7C,wBAAwB;IACxB,wSAAwS;IACxS,EAAE;IACF,+DAA+D;IAC/D,kFAAkF;IAClF,gEAAgE;IAChE,EAAE;IACF,wPAAwP;CACzP,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,kDAAkD;IAClD,wHAAwH;IACxH,4GAA4G;IAC5G,+HAA+H;IAC/H,gGAAgG;IAChG,6IAA6I;CAC9I,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,QAAQ;IACR,qLAAqL;IACrL,sNAAsN;IACtN,uNAAuN;CACxN,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC7C,oHAAoH;CACrH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,yBAAyB,GAAG;IAChC,wLAAwL;IACxL,sNAAsN;IACtN,iLAAiL;IACjL,uJAAuJ;IACvJ,4LAA4L;IAC5L,wMAAwM;IACxM,iLAAiL;CAClL,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,oBAAoB,GAA8B,aAAa,CAAC,yBAAyB,CAAC,CAAC;AAExG,MAAM,CAAC,MAAM,qBAAqB,GAAmB;IACnD,QAAQ,EAAE,8LAA8L;IACxM,gBAAgB,EAAE,8KAA8K;IAChM,uBAAuB,EAAE,6SAA6S;IACtU,gBAAgB,EAAE;QAChB,QAAQ,EAAE,qKAAqK;QAC/K,IAAI,EAAE,qHAAqH;QAC3H,MAAM,EAAE,oJAAoJ;QAC5J,GAAG,EAAE,wEAAwE;KAC9E;IACD,kBAAkB,EAAE,KAAK;IACzB,aAAa,EAAE,CAAC,OAAO,EAAE,OAAO,CAAU;CAC3C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"spec-audit-criteria.d.ts","sourceRoot":"","sources":["../../../src/tools/audit/spec-audit-criteria.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAErE,eAAO,MAAM,8BAA8B,QAS/B,CAAC;AAEb,eAAO,MAAM,wBAAwB,QAQzB,CAAC;AAEb,eAAO,MAAM,qBAAqB,QAKtB,CAAC;AAEb,eAAO,MAAM,8BAA8B,QAE/B,CAAC;AAcb,eAAO,MAAM,mBAAmB,EAAE,SAAS,cAAc,EAA4C,CAAC;AAEtG,eAAO,MAAM,oBAAoB,EAAE,cAWlC,CAAC"}
1
+ {"version":3,"file":"spec-audit-criteria.d.ts","sourceRoot":"","sources":["../../../src/tools/audit/spec-audit-criteria.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAErE,eAAO,MAAM,8BAA8B,QAS/B,CAAC;AAEb,eAAO,MAAM,wBAAwB,QAQzB,CAAC;AAEb,eAAO,MAAM,qBAAqB,QAKtB,CAAC;AAEb,eAAO,MAAM,8BAA8B,QAE/B,CAAC;AAcb,eAAO,MAAM,mBAAmB,EAAE,SAAS,cAAc,EAA4C,CAAC;AAEtG,eAAO,MAAM,oBAAoB,EAAE,cAYlC,CAAC"}
@@ -44,11 +44,12 @@ export const SPEC_AUDIT_SEMANTICS = {
44
44
  emptyOutcomeLine: 'If THIS criterion does not surface a real gap in the spec, respond with the literal text "No findings for this criterion." — that is a valid outcome on a clean spec.',
45
45
  findingMeaningParagraph: 'A finding is a PLACE WHERE THE SPEC PROSE FAILS THE EXECUTABILITY TEST viewed through this criterion. Title = the failing prose snippet (or its anchor). Severity reflects whether the failure would silently ship wrong behavior, block the executor, force a clarification round, or just leave a stylistic gap.',
46
46
  severityMeanings: {
47
- critical: 'literal execution would silently produce the wrong outcome — e.g. a requirement whose stated test would pass on broken behavior, or two requirements that contradict in a way the executor cannot detect.',
48
- high: 'would block the executor — vague verb without a measurable outcome on a load-bearing requirement, missing acceptance criterion on a critical path, undeclared assumption that downstream code depends on.',
49
- medium: 'would force a clarification round — implicit scope, decision without trace, non-functional constraint hinted but not stated.',
50
- low: 'stylistic / metadata gap; minor inconsistency that does not affect executability.',
47
+ critical: 'Blocks executability of the audited doc',
48
+ high: 'Significant ambiguity/gap; rework needed',
49
+ medium: 'Clarity gap; minor assumption needed',
50
+ low: 'Polish; no behavior change',
51
51
  },
52
52
  mustEmitAtLeastOne: false,
53
+ legalOutcomes: ['found', 'clean'],
53
54
  };
54
55
  //# sourceMappingURL=spec-audit-criteria.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"spec-audit-criteria.js","sourceRoot":"","sources":["../../../src/tools/audit/spec-audit-criteria.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,wBAAwB;IACxB,gUAAgU;IAChU,EAAE;IACF,+DAA+D;IAC/D,sFAAsF;IACtF,8EAA8E;IAC9E,EAAE;IACF,0PAA0P;CAC3P,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,kDAAkD;IAClD,iHAAiH;IACjH,8DAA8D;IAC9D,8GAA8G;IAC9G,0JAA0J;IAC1J,wFAAwF;IACxF,+KAA+K;CAChL,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,QAAQ;IACR,yUAAyU;IACzU,wWAAwW;IACxW,4OAA4O;CAC7O,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,oHAAoH;CACrH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,wBAAwB,GAAG;IAC/B,yOAAyO;IACzO,o9BAAo9B;IACp9B,iMAAiM;IACjM,uMAAuM;IACvM,2KAA2K;IAC3K,uMAAuM;IACvM,2JAA2J;IAC3J,g0BAAg0B;IACh0B,yxCAAyxC;CAC1xC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,mBAAmB,GAA8B,aAAa,CAAC,wBAAwB,CAAC,CAAC;AAEtG,MAAM,CAAC,MAAM,oBAAoB,GAAmB;IAClD,QAAQ,EAAE,+JAA+J;IACzK,gBAAgB,EAAE,uKAAuK;IACzL,uBAAuB,EAAE,oTAAoT;IAC7U,gBAAgB,EAAE;QAChB,QAAQ,EAAE,2MAA2M;QACrN,IAAI,EAAE,2MAA2M;QACjN,MAAM,EAAE,8HAA8H;QACtI,GAAG,EAAE,mFAAmF;KACzF;IACD,kBAAkB,EAAE,KAAK;CAC1B,CAAC"}
1
+ {"version":3,"file":"spec-audit-criteria.js","sourceRoot":"","sources":["../../../src/tools/audit/spec-audit-criteria.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,wBAAwB;IACxB,gUAAgU;IAChU,EAAE;IACF,+DAA+D;IAC/D,sFAAsF;IACtF,8EAA8E;IAC9E,EAAE;IACF,0PAA0P;CAC3P,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,kDAAkD;IAClD,iHAAiH;IACjH,8DAA8D;IAC9D,8GAA8G;IAC9G,0JAA0J;IAC1J,wFAAwF;IACxF,+KAA+K;CAChL,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,QAAQ;IACR,yUAAyU;IACzU,wWAAwW;IACxW,4OAA4O;CAC7O,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,oHAAoH;CACrH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,wBAAwB,GAAG;IAC/B,yOAAyO;IACzO,o9BAAo9B;IACp9B,iMAAiM;IACjM,uMAAuM;IACvM,2KAA2K;IAC3K,uMAAuM;IACvM,2JAA2J;IAC3J,g0BAAg0B;IACh0B,yxCAAyxC;CAC1xC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,mBAAmB,GAA8B,aAAa,CAAC,wBAAwB,CAAC,CAAC;AAEtG,MAAM,CAAC,MAAM,oBAAoB,GAAmB;IAClD,QAAQ,EAAE,+JAA+J;IACzK,gBAAgB,EAAE,uKAAuK;IACzL,uBAAuB,EAAE,oTAAoT;IAC7U,gBAAgB,EAAE;QAChB,QAAQ,EAAE,yCAAyC;QACnD,IAAI,EAAE,0CAA0C;QAChD,MAAM,EAAE,sCAAsC;QAC9C,GAAG,EAAE,4BAA4B;KAClC;IACD,kBAAkB,EAAE,KAAK;IACzB,aAAa,EAAE,CAAC,OAAO,EAAE,OAAO,CAAU;CAC3C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"subtypes.d.ts","sourceRoot":"","sources":["../../../src/tools/audit/subtypes.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAarF,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAgCjE,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,YAAY,EAAE,mBAAmB,CAiCpE,CAAC"}
1
+ {"version":3,"file":"subtypes.d.ts","sourceRoot":"","sources":["../../../src/tools/audit/subtypes.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAarF,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAkCjE,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,YAAY,EAAE,mBAAmB,CAiCpE,CAAC"}