@zhixuan92/multi-model-agent-core 4.7.11 → 4.7.13

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 (225) hide show
  1. package/README.md +4 -5
  2. package/dist/bounded-execution/progress-watchdog.js +1 -1
  3. package/dist/bounded-execution/progress-watchdog.js.map +1 -1
  4. package/dist/config/schema.d.ts +49 -2
  5. package/dist/config/schema.d.ts.map +1 -1
  6. package/dist/config/schema.js.map +1 -1
  7. package/dist/events/wire-schema.d.ts +17 -17
  8. package/dist/index.d.ts +2 -2
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +2 -1
  11. package/dist/index.js.map +1 -1
  12. package/dist/lifecycle/auto-commit.js +3 -3
  13. package/dist/lifecycle/auto-commit.js.map +1 -1
  14. package/dist/lifecycle/diff-tracker.js +4 -4
  15. package/dist/lifecycle/diff-tracker.js.map +1 -1
  16. package/dist/lifecycle/git-toplevel.d.ts.map +1 -1
  17. package/dist/lifecycle/git-toplevel.js +3 -0
  18. package/dist/lifecycle/git-toplevel.js.map +1 -1
  19. package/dist/lifecycle/handlers/commit-stage.js +5 -5
  20. package/dist/lifecycle/handlers/commit-stage.js.map +1 -1
  21. package/dist/lifecycle/handlers/git-commit-handler.js +1 -1
  22. package/dist/lifecycle/handlers/git-commit-handler.js.map +1 -1
  23. package/dist/lifecycle/handlers/implement-stage.js +2 -2
  24. package/dist/lifecycle/handlers/implement-stage.js.map +1 -1
  25. package/dist/lifecycle/merge-stage-stats.d.ts +1 -2
  26. package/dist/lifecycle/merge-stage-stats.d.ts.map +1 -1
  27. package/dist/lifecycle/merge-stage-stats.js.map +1 -1
  28. package/dist/lifecycle/perform-implementation.d.ts.map +1 -1
  29. package/dist/lifecycle/perform-implementation.js +13 -10
  30. package/dist/lifecycle/perform-implementation.js.map +1 -1
  31. package/dist/lifecycle/read-only-subtype-spec.d.ts +1 -1
  32. package/dist/lifecycle/read-only-subtype-spec.d.ts.map +1 -1
  33. package/dist/lifecycle/{parallel-criteria-routes.d.ts → read-route-criteria.d.ts} +2 -2
  34. package/dist/lifecycle/read-route-criteria.d.ts.map +1 -0
  35. package/dist/lifecycle/{parallel-criteria-routes.js → read-route-criteria.js} +2 -2
  36. package/dist/lifecycle/read-route-criteria.js.map +1 -0
  37. package/dist/lifecycle/real-diff.d.ts.map +1 -1
  38. package/dist/lifecycle/real-diff.js +2 -0
  39. package/dist/lifecycle/real-diff.js.map +1 -1
  40. package/dist/lifecycle/repo-hygiene.d.ts.map +1 -1
  41. package/dist/lifecycle/repo-hygiene.js +3 -0
  42. package/dist/lifecycle/repo-hygiene.js.map +1 -1
  43. package/dist/lifecycle/research-pre-loop.d.ts.map +1 -1
  44. package/dist/lifecycle/research-pre-loop.js +0 -1
  45. package/dist/lifecycle/research-pre-loop.js.map +1 -1
  46. package/dist/lifecycle/task-runner.d.ts +0 -1
  47. package/dist/lifecycle/task-runner.d.ts.map +1 -1
  48. package/dist/lifecycle/task-runner.js +0 -1
  49. package/dist/lifecycle/task-runner.js.map +1 -1
  50. package/dist/reporting/commit-stage-runner.js +4 -4
  51. package/dist/reporting/commit-stage-runner.js.map +1 -1
  52. package/dist/reporting/findings-headline.d.ts +12 -0
  53. package/dist/reporting/findings-headline.d.ts.map +1 -0
  54. package/dist/reporting/findings-headline.js +40 -0
  55. package/dist/reporting/findings-headline.js.map +1 -0
  56. package/dist/reporting/report-parser-slots/no-structured-report.d.ts +10 -0
  57. package/dist/reporting/report-parser-slots/no-structured-report.d.ts.map +1 -0
  58. package/dist/reporting/report-parser-slots/no-structured-report.js +13 -0
  59. package/dist/reporting/report-parser-slots/no-structured-report.js.map +1 -0
  60. package/dist/tools/audit/implementer-criteria.d.ts +0 -11
  61. package/dist/tools/audit/implementer-criteria.d.ts.map +1 -1
  62. package/dist/tools/audit/implementer-criteria.js +0 -22
  63. package/dist/tools/audit/implementer-criteria.js.map +1 -1
  64. package/dist/tools/audit/schema.d.ts +2 -2
  65. package/dist/tools/audit/skill-audit-criteria.d.ts +1 -1
  66. package/dist/tools/audit/skill-audit-criteria.d.ts.map +1 -1
  67. package/dist/tools/audit/spec-audit-criteria.d.ts +1 -1
  68. package/dist/tools/audit/spec-audit-criteria.d.ts.map +1 -1
  69. package/dist/tools/audit/subtypes.js +1 -1
  70. package/dist/tools/audit/subtypes.js.map +1 -1
  71. package/dist/tools/audit/tool-config.d.ts +1 -2
  72. package/dist/tools/audit/tool-config.d.ts.map +1 -1
  73. package/dist/tools/audit/tool-config.js +11 -87
  74. package/dist/tools/audit/tool-config.js.map +1 -1
  75. package/dist/tools/debug/implementer-criteria.d.ts +0 -10
  76. package/dist/tools/debug/implementer-criteria.d.ts.map +1 -1
  77. package/dist/tools/debug/implementer-criteria.js +0 -23
  78. package/dist/tools/debug/implementer-criteria.js.map +1 -1
  79. package/dist/tools/debug/schema.d.ts +2 -2
  80. package/dist/tools/debug/tool-config.d.ts.map +1 -1
  81. package/dist/tools/debug/tool-config.js +10 -71
  82. package/dist/tools/debug/tool-config.js.map +1 -1
  83. package/dist/tools/delegate/brief-slot.d.ts +1 -0
  84. package/dist/tools/delegate/brief-slot.d.ts.map +1 -1
  85. package/dist/tools/delegate/brief-slot.js +5 -2
  86. package/dist/tools/delegate/brief-slot.js.map +1 -1
  87. package/dist/tools/delegate/schema.d.ts +4 -4
  88. package/dist/tools/delegate/schema.js +1 -1
  89. package/dist/tools/delegate/schema.js.map +1 -1
  90. package/dist/tools/delegate/tool-config.d.ts.map +1 -1
  91. package/dist/tools/delegate/tool-config.js +1 -0
  92. package/dist/tools/delegate/tool-config.js.map +1 -1
  93. package/dist/tools/execute-plan/barrel.d.ts +2 -0
  94. package/dist/tools/execute-plan/barrel.d.ts.map +1 -0
  95. package/dist/tools/execute-plan/barrel.js +7 -0
  96. package/dist/tools/execute-plan/barrel.js.map +1 -0
  97. package/dist/tools/execute-plan/tool-config.d.ts +48 -0
  98. package/dist/tools/execute-plan/tool-config.d.ts.map +1 -1
  99. package/dist/tools/execute-plan/tool-config.js +4 -0
  100. package/dist/tools/execute-plan/tool-config.js.map +1 -1
  101. package/dist/tools/index.d.ts +1 -2
  102. package/dist/tools/index.d.ts.map +1 -1
  103. package/dist/tools/index.js +7 -7
  104. package/dist/tools/index.js.map +1 -1
  105. package/dist/tools/investigate/brief-slot.d.ts +3 -19
  106. package/dist/tools/investigate/brief-slot.d.ts.map +1 -1
  107. package/dist/tools/investigate/brief-slot.js +0 -60
  108. package/dist/tools/investigate/brief-slot.js.map +1 -1
  109. package/dist/tools/investigate/implementer-criteria.d.ts +0 -11
  110. package/dist/tools/investigate/implementer-criteria.d.ts.map +1 -1
  111. package/dist/tools/investigate/implementer-criteria.js +0 -23
  112. package/dist/tools/investigate/implementer-criteria.js.map +1 -1
  113. package/dist/tools/investigate/schema.d.ts +3 -3
  114. package/dist/tools/investigate/tool-config.d.ts.map +1 -1
  115. package/dist/tools/investigate/tool-config.js +2 -6
  116. package/dist/tools/investigate/tool-config.js.map +1 -1
  117. package/dist/tools/{parallel-criteria-prompt.d.ts → read-route-prompt.d.ts} +1 -1
  118. package/dist/tools/read-route-prompt.d.ts.map +1 -0
  119. package/dist/tools/{parallel-criteria-prompt.js → read-route-prompt.js} +1 -1
  120. package/dist/tools/read-route-prompt.js.map +1 -0
  121. package/dist/tools/research/brief-slot.d.ts +4 -1
  122. package/dist/tools/research/brief-slot.d.ts.map +1 -1
  123. package/dist/tools/research/brief-slot.js +1 -31
  124. package/dist/tools/research/brief-slot.js.map +1 -1
  125. package/dist/tools/research/tool-config.js +2 -2
  126. package/dist/tools/research/tool-config.js.map +1 -1
  127. package/dist/tools/research/two-turn-driver.d.ts +0 -4
  128. package/dist/tools/research/two-turn-driver.d.ts.map +1 -1
  129. package/dist/tools/research/two-turn-driver.js.map +1 -1
  130. package/dist/tools/retry/schema.d.ts +2 -2
  131. package/dist/tools/retry/tool-config.js +4 -4
  132. package/dist/tools/retry/tool-config.js.map +1 -1
  133. package/dist/tools/review/implementer-criteria.d.ts +0 -12
  134. package/dist/tools/review/implementer-criteria.d.ts.map +1 -1
  135. package/dist/tools/review/implementer-criteria.js +0 -23
  136. package/dist/tools/review/implementer-criteria.js.map +1 -1
  137. package/dist/tools/review/schema.d.ts +2 -2
  138. package/dist/tools/review/subtypes.js +1 -1
  139. package/dist/tools/review/subtypes.js.map +1 -1
  140. package/dist/tools/review/tool-config.d.ts.map +1 -1
  141. package/dist/tools/review/tool-config.js +11 -80
  142. package/dist/tools/review/tool-config.js.map +1 -1
  143. package/dist/tools/shared-output.d.ts +2 -2
  144. package/dist/transport/http-listener.d.ts +6 -15
  145. package/dist/transport/http-listener.d.ts.map +1 -1
  146. package/dist/transport/http-listener.js +11 -22
  147. package/dist/transport/http-listener.js.map +1 -1
  148. package/dist/transport/index.d.ts +1 -1
  149. package/dist/transport/index.d.ts.map +1 -1
  150. package/dist/transport/index.js.map +1 -1
  151. package/dist/transport/route-dispatcher.d.ts +4 -17
  152. package/dist/transport/route-dispatcher.d.ts.map +1 -1
  153. package/dist/transport/route-dispatcher.js +8 -14
  154. package/dist/transport/route-dispatcher.js.map +1 -1
  155. package/dist/types/brief-quality-policy.d.ts +0 -1
  156. package/dist/types/brief-quality-policy.d.ts.map +1 -1
  157. package/dist/types/config.d.ts +2 -97
  158. package/dist/types/config.d.ts.map +1 -1
  159. package/dist/types/enums.d.ts +1 -108
  160. package/dist/types/enums.d.ts.map +1 -1
  161. package/dist/types/enums.js +9 -97
  162. package/dist/types/enums.js.map +1 -1
  163. package/dist/types/run-result.d.ts +2 -33
  164. package/dist/types/run-result.d.ts.map +1 -1
  165. package/dist/types/task-spec.d.ts +12 -10
  166. package/dist/types/task-spec.d.ts.map +1 -1
  167. package/dist/types.d.ts +1 -1
  168. package/dist/types.d.ts.map +1 -1
  169. package/package.json +1 -1
  170. package/dist/lifecycle/parallel-criteria-routes.d.ts.map +0 -1
  171. package/dist/lifecycle/parallel-criteria-routes.js.map +0 -1
  172. package/dist/lifecycle/plan-extraction.d.ts +0 -2
  173. package/dist/lifecycle/plan-extraction.d.ts.map +0 -1
  174. package/dist/lifecycle/plan-extraction.js +0 -44
  175. package/dist/lifecycle/plan-extraction.js.map +0 -1
  176. package/dist/reporting/headline-templates/audit.d.ts +0 -3
  177. package/dist/reporting/headline-templates/audit.d.ts.map +0 -1
  178. package/dist/reporting/headline-templates/audit.js +0 -37
  179. package/dist/reporting/headline-templates/audit.js.map +0 -1
  180. package/dist/reporting/headline-templates/debug.d.ts +0 -25
  181. package/dist/reporting/headline-templates/debug.d.ts.map +0 -1
  182. package/dist/reporting/headline-templates/debug.js +0 -42
  183. package/dist/reporting/headline-templates/debug.js.map +0 -1
  184. package/dist/reporting/headline-templates/retry.d.ts +0 -3
  185. package/dist/reporting/headline-templates/retry.d.ts.map +0 -1
  186. package/dist/reporting/headline-templates/retry.js +0 -9
  187. package/dist/reporting/headline-templates/retry.js.map +0 -1
  188. package/dist/reporting/headline-templates/review.d.ts +0 -3
  189. package/dist/reporting/headline-templates/review.d.ts.map +0 -1
  190. package/dist/reporting/headline-templates/review.js +0 -38
  191. package/dist/reporting/headline-templates/review.js.map +0 -1
  192. package/dist/reporting/report-parser-slots/audit-report.d.ts +0 -13
  193. package/dist/reporting/report-parser-slots/audit-report.d.ts.map +0 -1
  194. package/dist/reporting/report-parser-slots/audit-report.js +0 -9
  195. package/dist/reporting/report-parser-slots/audit-report.js.map +0 -1
  196. package/dist/reporting/report-parser-slots/retry-report.d.ts +0 -8
  197. package/dist/reporting/report-parser-slots/retry-report.d.ts.map +0 -1
  198. package/dist/reporting/report-parser-slots/retry-report.js +0 -9
  199. package/dist/reporting/report-parser-slots/retry-report.js.map +0 -1
  200. package/dist/reporting/report-parser-slots/review-report.d.ts +0 -14
  201. package/dist/reporting/report-parser-slots/review-report.d.ts.map +0 -1
  202. package/dist/reporting/report-parser-slots/review-report.js +0 -9
  203. package/dist/reporting/report-parser-slots/review-report.js.map +0 -1
  204. package/dist/tools/audit/plan-audit-verdict.d.ts +0 -15
  205. package/dist/tools/audit/plan-audit-verdict.d.ts.map +0 -1
  206. package/dist/tools/audit/plan-audit-verdict.js +0 -44
  207. package/dist/tools/audit/plan-audit-verdict.js.map +0 -1
  208. package/dist/tools/execute-plan/draft-id.d.ts +0 -12
  209. package/dist/tools/execute-plan/draft-id.d.ts.map +0 -1
  210. package/dist/tools/execute-plan/draft-id.js +0 -46
  211. package/dist/tools/execute-plan/draft-id.js.map +0 -1
  212. package/dist/tools/execute-plan/schema.d.ts +0 -65
  213. package/dist/tools/execute-plan/schema.d.ts.map +0 -1
  214. package/dist/tools/execute-plan/schema.js +0 -32
  215. package/dist/tools/execute-plan/schema.js.map +0 -1
  216. package/dist/tools/parallel-criteria-prompt.d.ts.map +0 -1
  217. package/dist/tools/parallel-criteria-prompt.js.map +0 -1
  218. package/dist/tools/shared/severity-ladder.d.ts +0 -2
  219. package/dist/tools/shared/severity-ladder.d.ts.map +0 -1
  220. package/dist/tools/shared/severity-ladder.js +0 -9
  221. package/dist/tools/shared/severity-ladder.js.map +0 -1
  222. package/dist/types/draft-task.d.ts +0 -60
  223. package/dist/types/draft-task.d.ts.map +0 -1
  224. package/dist/types/draft-task.js +0 -2
  225. package/dist/types/draft-task.js.map +0 -1
@@ -0,0 +1,12 @@
1
+ import type { HeadlineTemplate } from './headline-composer.js';
2
+ /**
3
+ * Shared headline for read routes whose terminal headline is
4
+ * `[status] <route> <path>: N findings (M <countLabel>)`. Findings come from
5
+ * the annotator-built report when present, else parseNarrativeFindings of the
6
+ * worker output. audit + debug use countLabel 'high'; review uses 'blocking'.
7
+ *
8
+ * Replaces the per-tool audit/review/debug headline templates, which were
9
+ * byte-identical apart from the route name and the count word.
10
+ */
11
+ export declare function makeFindingsHeadlineTemplate(routeName: string, countLabel: 'high' | 'blocking'): HeadlineTemplate;
12
+ //# sourceMappingURL=findings-headline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findings-headline.d.ts","sourceRoot":"","sources":["../../src/reporting/findings-headline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAI/D;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GAAG,UAAU,GAC9B,gBAAgB,CA2BlB"}
@@ -0,0 +1,40 @@
1
+ import { isNotApplicable } from './not-applicable.js';
2
+ import { countHighOrCritical, parseNarrativeFindings } from './severity.js';
3
+ /**
4
+ * Shared headline for read routes whose terminal headline is
5
+ * `[status] <route> <path>: N findings (M <countLabel>)`. Findings come from
6
+ * the annotator-built report when present, else parseNarrativeFindings of the
7
+ * worker output. audit + debug use countLabel 'high'; review uses 'blocking'.
8
+ *
9
+ * Replaces the per-tool audit/review/debug headline templates, which were
10
+ * byte-identical apart from the route name and the count word.
11
+ */
12
+ export function makeFindingsHeadlineTemplate(routeName, countLabel) {
13
+ return {
14
+ compose({ report, status, runResult, task }) {
15
+ const r = report;
16
+ const reportInapplicable = !r || isNotApplicable(r);
17
+ const reportFindings = !reportInapplicable && Array.isArray(r?.findings)
18
+ ? r.findings
19
+ : [];
20
+ let findings = reportFindings.length > 0 ? reportFindings : [];
21
+ if (findings.length === 0 && typeof runResult?.output === 'string') {
22
+ const narrative = parseNarrativeFindings(runResult.output);
23
+ if (narrative.length > 0)
24
+ findings = narrative;
25
+ }
26
+ const path = (!reportInapplicable && typeof r?.documentPath === 'string' ? r.documentPath : '')
27
+ || (!reportInapplicable && typeof r?.filePath === 'string' ? r.filePath : '')
28
+ || task?.filePaths?.[0]
29
+ || '';
30
+ if (findings.length === 0 && !path) {
31
+ return `[${status}] ${routeName} completed`;
32
+ }
33
+ const blocking = countHighOrCritical(findings);
34
+ return path
35
+ ? `[${status}] ${routeName} ${path}: ${findings.length} findings (${blocking} ${countLabel})`
36
+ : `[${status}] ${routeName}: ${findings.length} findings (${blocking} ${countLabel})`;
37
+ },
38
+ };
39
+ }
40
+ //# sourceMappingURL=findings-headline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findings-headline.js","sourceRoot":"","sources":["../../src/reporting/findings-headline.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAE5E;;;;;;;;GAQG;AACH,MAAM,UAAU,4BAA4B,CAC1C,SAAiB,EACjB,UAA+B;IAE/B,OAAO;QACL,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE;YACzC,MAAM,CAAC,GAAG,MAA+F,CAAC;YAC1G,MAAM,kBAAkB,GAAG,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC;YACpD,MAAM,cAAc,GAAG,CAAC,kBAAkB,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC;gBACtE,CAAC,CAAE,CAAE,CAAC,QAA0C;gBAChD,CAAC,CAAC,EAAE,CAAC;YACP,IAAI,QAAQ,GAAkC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9F,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,SAAS,EAAE,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACnE,MAAM,SAAS,GAAG,sBAAsB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBAC3D,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;oBAAE,QAAQ,GAAG,SAAS,CAAC;YACjD,CAAC;YACD,MAAM,IAAI,GACR,CAAC,CAAC,kBAAkB,IAAI,OAAO,CAAC,EAAE,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAE,CAAE,CAAC,YAAuB,CAAC,CAAC,CAAC,EAAE,CAAC;mBAC5F,CAAC,CAAC,kBAAkB,IAAI,OAAO,CAAC,EAAE,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAE,CAAE,CAAC,QAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;mBACtF,IAA6C,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;mBAC9D,EAAE,CAAC;YACR,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACnC,OAAO,IAAI,MAAM,KAAK,SAAS,YAAY,CAAC;YAC9C,CAAC;YACD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YAC/C,OAAO,IAAI;gBACT,CAAC,CAAC,IAAI,MAAM,KAAK,SAAS,IAAI,IAAI,KAAK,QAAQ,CAAC,MAAM,cAAc,QAAQ,IAAI,UAAU,GAAG;gBAC7F,CAAC,CAAC,IAAI,MAAM,KAAK,SAAS,KAAK,QAAQ,CAAC,MAAM,cAAc,QAAQ,IAAI,UAAU,GAAG,CAAC;QAC1F,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { ReportSchema } from '../structured-report-parser.js';
2
+ /**
3
+ * Shared fallback report slot for routes whose canonical structured report is
4
+ * built by the annotator (audit/review/debug) or whose envelope report is
5
+ * overwritten in postProcess (retry). The slot is required by ToolConfig but
6
+ * never produces a report itself — it throws so task-executor falls through to
7
+ * parseStructuredReport, matching debug's prior inline behavior.
8
+ */
9
+ export declare const noStructuredReportSchema: ReportSchema<never>;
10
+ //# sourceMappingURL=no-structured-report.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"no-structured-report.d.ts","sourceRoot":"","sources":["../../../src/reporting/report-parser-slots/no-structured-report.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAEnE;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,EAAE,YAAY,CAAC,KAAK,CAIxD,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Shared fallback report slot for routes whose canonical structured report is
3
+ * built by the annotator (audit/review/debug) or whose envelope report is
4
+ * overwritten in postProcess (retry). The slot is required by ToolConfig but
5
+ * never produces a report itself — it throws so task-executor falls through to
6
+ * parseStructuredReport, matching debug's prior inline behavior.
7
+ */
8
+ export const noStructuredReportSchema = {
9
+ parse() {
10
+ throw new Error('no structured report emitted by this route');
11
+ },
12
+ };
13
+ //# sourceMappingURL=no-structured-report.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"no-structured-report.js","sourceRoot":"","sources":["../../../src/reporting/report-parser-slots/no-structured-report.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAwB;IAC3D,KAAK;QACH,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;CACF,CAAC"}
@@ -53,17 +53,6 @@ export declare const SCOPE_RULE_AUDIT: string;
53
53
  * non-trivial prose artifacts and are independent of the audit-type label.
54
54
  */
55
55
  export declare const DOC_AUDIT_FAILURE_MODES: string;
56
- /**
57
- * Counter-balance to the SEVERITY_LADDER's anti-inflation hint.
58
- *
59
- * The shared severity ladder ends with "Workers commonly inflate — resist
60
- * the urge." That bias is correct for code reviews, where over-flagging
61
- * stylistic preferences is the common failure. For prose-document audits
62
- * the opposite is true: workers UNDER-find because they have nothing to
63
- * pattern-match against in their training. This block tells the worker
64
- * the doc-audit failure mode is silence, not noise.
65
- */
66
- export declare const THOROUGHNESS_REMINDER_AUDIT: string;
67
56
  export declare const ANNOTATOR_AWARENESS_AUDIT: string;
68
57
  import { type CriterionEntry } from '../criteria-types.js';
69
58
  /** Structured per-criterion array for parallel-criteria fan-out. Derived
@@ -1 +1 @@
1
- {"version":3,"file":"implementer-criteria.d.ts","sourceRoot":"","sources":["../../../src/tools/audit/implementer-criteria.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,yBAAyB,QAmB1B,CAAC;AAEb,eAAO,MAAM,mBAAmB,QAOpB,CAAC;AAEb,eAAO,MAAM,gBAAgB,QAMjB,CAAC;AAEb;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB,QAoBxB,CAAC;AAEb;;;;;;;;;GASG;AACH,eAAO,MAAM,2BAA2B,QAW5B,CAAC;AAEb,eAAO,MAAM,yBAAyB,QAO1B,CAAC;AAEb,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE1E;;kDAEkD;AAClD,eAAO,MAAM,cAAc,EAAE,SAAS,cAAc,EAA2C,CAAC"}
1
+ {"version":3,"file":"implementer-criteria.d.ts","sourceRoot":"","sources":["../../../src/tools/audit/implementer-criteria.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,yBAAyB,QAmB1B,CAAC;AAEb,eAAO,MAAM,mBAAmB,QAOpB,CAAC;AAEb,eAAO,MAAM,gBAAgB,QAMjB,CAAC;AAEb;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB,QAoBxB,CAAC;AAEb,eAAO,MAAM,yBAAyB,QAO1B,CAAC;AAEb,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE1E;;kDAEkD;AAClD,eAAO,MAAM,cAAc,EAAE,SAAS,cAAc,EAA2C,CAAC"}
@@ -105,28 +105,6 @@ export const DOC_AUDIT_FAILURE_MODES = [
105
105
  '- medium: argument soundness gap, fix actionability gap, drift between sections (item-count mismatch), structural inconsistency between similar items, scope-creep risk that needs a guardrail.',
106
106
  '- low: stylistic, labeling, or formatting issues; missing metadata; minor cross-reference fixes.',
107
107
  ].join('\n');
108
- /**
109
- * Counter-balance to the SEVERITY_LADDER's anti-inflation hint.
110
- *
111
- * The shared severity ladder ends with "Workers commonly inflate — resist
112
- * the urge." That bias is correct for code reviews, where over-flagging
113
- * stylistic preferences is the common failure. For prose-document audits
114
- * the opposite is true: workers UNDER-find because they have nothing to
115
- * pattern-match against in their training. This block tells the worker
116
- * the doc-audit failure mode is silence, not noise.
117
- */
118
- export const THOROUGHNESS_REMINDER_AUDIT = [
119
- 'Thoroughness expectation for prose-document audits:',
120
- '- For non-trivial documents (>500 words), zero or 1-2 findings is unusual and usually indicates the rubric was applied too narrowly. Sweep the full failure-mode taxonomy above before declaring "no findings."',
121
- '- The SEVERITY_LADDER warns against inflation. That warning is calibrated for code reviews — for prose audits the typical failure mode is the opposite (under-finding because the worker only looked for surface nits). Apply the failure-mode taxonomy thoroughly first; THEN calibrate severity downward where the impact is small.',
122
- '- Do not invent findings to hit a quota. But if you have applied all 11 failure modes and still have only stylistic nits, double-check categories 1, 2, 5, 6, and 8 (recommendation-coherence, internal contradiction, argument soundness, completeness against constraints, drift) — these are the ones workers most often miss on first pass.',
123
- '',
124
- 'Principle-mapping pass (REQUIRED when the doc has a principles / constraints / "what we won\'t do" section):',
125
- '- Make ONE explicit pass walking each recommendation against each principle/constraint listed in the doc.',
126
- '- For each (recommendation, constraint) pair, ask: does this recommendation, as written, require something the constraint forbids? Or rely on something the constraint says is unavailable?',
127
- '- Worked example (illustrative — DO NOT match this verbatim against the doc you are auditing). Suppose a doc states Principle X: "Operations must be deterministic — no random sources." Suppose recommendation R proposes: "On request collision, generate a fresh tiebreaker using the system entropy pool." Chain: the tiebreaker uses entropy; entropy is non-deterministic; Principle X forbids non-determinism; therefore R is unimplementable as written without breaking Principle X. → File this as a HIGH-severity recommendation-coherence finding. The general pattern: a fix that REQUIRES something a constraint FORBIDS, or RELIES ON something a constraint says is UNAVAILABLE, is a load-bearing finding regardless of how clean the fix\'s prose reads.',
128
- '- Most workers miss findings of this shape on first pass because the chain spans two non-adjacent sections. The principle-mapping pass forces you to make the chain.',
129
- ].join('\n');
130
108
  export const ANNOTATOR_AWARENESS_AUDIT = [
131
109
  'After your output, an annotator validates each finding against this audit-specific rubric:',
132
110
  '- Is the finding about the document (contradiction / absence / ambiguity / wrong claim / scope gap / recommendation-coherence / argument-soundness)?',
@@ -1 +1 @@
1
- {"version":3,"file":"implementer-criteria.js","sourceRoot":"","sources":["../../../src/tools/audit/implementer-criteria.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,wBAAwB;IACxB,0RAA0R;IAC1R,EAAE;IACF,gEAAgE;IAChE,mGAAmG;IACnG,gFAAgF;IAChF,wGAAwG;IACxG,kGAAkG;IAClG,+FAA+F;IAC/F,8FAA8F;IAC9F,kEAAkE;IAClE,oEAAoE;IACpE,iHAAiH;IACjH,oFAAoF;IACpF,EAAE;IACF,uNAAuN;IACvN,EAAE;IACF,gPAAgP;CACjP,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,kDAAkD;IAClD,+EAA+E;IAC/E,mQAAmQ;IACnQ,qIAAqI;IACrI,wOAAwO;IACxO,8HAA8H;CAC/H,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,QAAQ;IACR,sHAAsH;IACtH,2GAA2G;IAC3G,yNAAyN;IACzN,qKAAqK;CACtK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,wOAAwO;IACxO,EAAE;IACF,wgBAAwgB;IACxgB,ySAAyS;IACzS,0PAA0P;IAC1P,uJAAuJ;IACvJ,0MAA0M;IAC1M,mVAAmV;IACnV,iNAAiN;IACjN,kbAAkb;IAClb,0LAA0L;IAC1L,gYAAgY;IAChY,oNAAoN;IACpN,EAAE;IACF,sCAAsC;IACtC,uRAAuR;IACvR,iPAAiP;IACjP,iMAAiM;IACjM,kGAAkG;CACnG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,qDAAqD;IACrD,iNAAiN;IACjN,uUAAuU;IACvU,iVAAiV;IACjV,EAAE;IACF,8GAA8G;IAC9G,2GAA2G;IAC3G,6LAA6L;IAC7L,4uBAA4uB;IAC5uB,sKAAsK;CACvK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,4FAA4F;IAC5F,sJAAsJ;IACtJ,mJAAmJ;IACnJ,4IAA4I;IAC5I,+FAA+F;IAC/F,kOAAkO;CACnO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,OAAO,EAAE,aAAa,EAAuB,MAAM,sBAAsB,CAAC;AAE1E;;kDAEkD;AAClD,MAAM,CAAC,MAAM,cAAc,GAA8B,aAAa,CAAC,uBAAuB,CAAC,CAAC"}
1
+ {"version":3,"file":"implementer-criteria.js","sourceRoot":"","sources":["../../../src/tools/audit/implementer-criteria.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,wBAAwB;IACxB,0RAA0R;IAC1R,EAAE;IACF,gEAAgE;IAChE,mGAAmG;IACnG,gFAAgF;IAChF,wGAAwG;IACxG,kGAAkG;IAClG,+FAA+F;IAC/F,8FAA8F;IAC9F,kEAAkE;IAClE,oEAAoE;IACpE,iHAAiH;IACjH,oFAAoF;IACpF,EAAE;IACF,uNAAuN;IACvN,EAAE;IACF,gPAAgP;CACjP,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,kDAAkD;IAClD,+EAA+E;IAC/E,mQAAmQ;IACnQ,qIAAqI;IACrI,wOAAwO;IACxO,8HAA8H;CAC/H,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,QAAQ;IACR,sHAAsH;IACtH,2GAA2G;IAC3G,yNAAyN;IACzN,qKAAqK;CACtK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,wOAAwO;IACxO,EAAE;IACF,wgBAAwgB;IACxgB,ySAAyS;IACzS,0PAA0P;IAC1P,uJAAuJ;IACvJ,0MAA0M;IAC1M,mVAAmV;IACnV,iNAAiN;IACjN,kbAAkb;IAClb,0LAA0L;IAC1L,gYAAgY;IAChY,oNAAoN;IACpN,EAAE;IACF,sCAAsC;IACtC,uRAAuR;IACvR,iPAAiP;IACjP,iMAAiM;IACjM,kGAAkG;CACnG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,4FAA4F;IAC5F,sJAAsJ;IACtJ,mJAAmJ;IACnJ,4IAA4I;IAC5I,+FAA+F;IAC/F,kOAAkO;CACnO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,OAAO,EAAE,aAAa,EAAuB,MAAM,sBAAsB,CAAC;AAE1E;;kDAEkD;AAClD,MAAM,CAAC,MAAM,cAAc,GAA8B,aAAa,CAAC,uBAAuB,CAAC,CAAC"}
@@ -38,20 +38,20 @@ export declare const outputSchema: z.ZodObject<{
38
38
  reason: z.ZodString;
39
39
  }, z.core.$strip>]>;
40
40
  specReviewVerdict: z.ZodOptional<z.ZodEnum<{
41
+ error: "error";
41
42
  approved: "approved";
42
43
  concerns: "concerns";
43
44
  changes_required: "changes_required";
44
45
  annotated: "annotated";
45
- error: "error";
46
46
  skipped: "skipped";
47
47
  not_applicable: "not_applicable";
48
48
  }>>;
49
49
  qualityReviewVerdict: z.ZodOptional<z.ZodEnum<{
50
+ error: "error";
50
51
  approved: "approved";
51
52
  concerns: "concerns";
52
53
  changes_required: "changes_required";
53
54
  annotated: "annotated";
54
- error: "error";
55
55
  skipped: "skipped";
56
56
  not_applicable: "not_applicable";
57
57
  }>>;
@@ -1,5 +1,5 @@
1
1
  import type { CriterionEntry } from '../criteria-types.js';
2
- import type { RouteSemantics } from '../parallel-criteria-prompt.js';
2
+ import type { RouteSemantics } from '../read-route-prompt.js';
3
3
  export declare const SKILL_AUDIT_PURPOSE_ORIENTATION: string;
4
4
  export declare const EVIDENCE_RULE_SKILL_AUDIT: string;
5
5
  export declare const SCOPE_RULE_SKILL_AUDIT: string;
@@ -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,cAYnC,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,yBAAyB,CAAC;AAE9D,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"}
@@ -1,5 +1,5 @@
1
1
  import type { CriterionEntry } from '../criteria-types.js';
2
- import type { RouteSemantics } from '../parallel-criteria-prompt.js';
2
+ import type { RouteSemantics } from '../read-route-prompt.js';
3
3
  export declare const SPEC_AUDIT_PURPOSE_ORIENTATION: string;
4
4
  export declare const EVIDENCE_RULE_SPEC_AUDIT: string;
5
5
  export declare const SCOPE_RULE_SPEC_AUDIT: string;
@@ -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,cAYlC,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,yBAAyB,CAAC;AAE9D,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"}
@@ -3,7 +3,7 @@ import { PLAN_AUDIT_PURPOSE_ORIENTATION, EVIDENCE_RULE_PLAN_AUDIT, SCOPE_RULE_PL
3
3
  import { SPEC_AUDIT_CRITERIA, SPEC_AUDIT_PURPOSE_ORIENTATION, EVIDENCE_RULE_SPEC_AUDIT, SCOPE_RULE_SPEC_AUDIT, ANNOTATOR_AWARENESS_SPEC_AUDIT, SPEC_AUDIT_SEMANTICS } from './spec-audit-criteria.js';
4
4
  import { SKILL_AUDIT_CRITERIA, SKILL_AUDIT_PURPOSE_ORIENTATION, EVIDENCE_RULE_SKILL_AUDIT, SCOPE_RULE_SKILL_AUDIT, ANNOTATOR_AWARENESS_SKILL_AUDIT, SKILL_AUDIT_SEMANTICS } from './skill-audit-criteria.js';
5
5
  // Copied verbatim from ROUTE_SEMANTICS.audit in
6
- // packages/core/src/lifecycle/parallel-criteria-routes.ts (the legacy
6
+ // packages/core/src/lifecycle/read-route-criteria.ts (the legacy
7
7
  // private const there is removed in Task 8 once dispatch reads from here).
8
8
  const SEMANTICS_DEFAULT = {
9
9
  goalLine: 'Find ALL issues of THIS specific kind in the artifact above.',
@@ -1 +1 @@
1
- {"version":3,"file":"subtypes.js","sourceRoot":"","sources":["../../../src/tools/audit/subtypes.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,yBAAyB,EAAE,mBAAmB,EAAE,gBAAgB,EAChE,yBAAyB,EAAE,cAAc,GAC1C,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,8BAA8B,EAAE,wBAAwB,EAAE,qBAAqB,EAC/E,8BAA8B,EAAE,mBAAmB,GACpD,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,8BAA8B,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,8BAA8B,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACtM,OAAO,EAAE,oBAAoB,EAAE,+BAA+B,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,+BAA+B,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAI7M,gDAAgD;AAChD,sEAAsE;AACtE,2EAA2E;AAC3E,MAAM,iBAAiB,GAAmB;IACxC,QAAQ,EAAE,8DAA8D;IACxE,gBAAgB,EAAE,mLAAmL;IACrM,uBAAuB,EAAE,qOAAqO;IAC9P,gBAAgB,EAAE;QAChB,QAAQ,EAAE,2LAA2L;QACrM,IAAI,EAAE,2KAA2K;QACjL,MAAM,EAAE,iKAAiK;QACzK,GAAG,EAAE,uFAAuF;KAC7F;IACD,kBAAkB,EAAE,KAAK;IACzB,aAAa,EAAE,CAAC,OAAO,EAAE,OAAO,CAAU;CAC3C,CAAC;AAEF,mDAAmD;AACnD,MAAM,cAAc,GAAmB;IACrC,QAAQ,EAAE,wPAAwP;IAClQ,gBAAgB,EAAE,ySAAyS;IAC3T,uBAAuB,EAAE,6TAA6T;IACtV,gBAAgB,EAAE;QAChB,QAAQ,EAAE,wSAAwS;QAClT,IAAI,EAAE,kOAAkO;QACxO,MAAM,EAAE,4NAA4N;QACpO,GAAG,EAAE,uGAAuG;KAC7G;IACD,kBAAkB,EAAE,KAAK;IACzB,aAAa,EAAE,CAAC,OAAO,EAAE,OAAO,CAAU;CAC3C,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAA8C;IACvE,OAAO,EAAE;QACP,QAAQ,EAAE,cAAc;QACxB,WAAW,EAAE,yBAAyB;QACtC,YAAY,EAAE,mBAAmB;QACjC,SAAS,EAAE,gBAAgB;QAC3B,kBAAkB,EAAE,yBAAyB;QAC7C,SAAS,EAAE,iBAAiB;KAC7B;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,mBAAmB;QAC7B,WAAW,EAAE,8BAA8B;QAC3C,YAAY,EAAE,wBAAwB;QACtC,SAAS,EAAE,qBAAqB;QAChC,kBAAkB,EAAE,8BAA8B;QAClD,SAAS,EAAE,cAAc;KAC1B;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,mBAAmB;QAC7B,WAAW,EAAE,8BAA8B;QAC3C,YAAY,EAAE,wBAAwB;QACtC,SAAS,EAAE,qBAAqB;QAChC,kBAAkB,EAAE,8BAA8B;QAClD,SAAS,EAAE,oBAAoB;KAChC;IACD,KAAK,EAAE;QACL,QAAQ,EAAE,oBAAoB;QAC9B,WAAW,EAAE,+BAA+B;QAC5C,YAAY,EAAE,yBAAyB;QACvC,SAAS,EAAE,sBAAsB;QACjC,kBAAkB,EAAE,+BAA+B;QACnD,SAAS,EAAE,qBAAqB;KACjC;CACF,CAAC"}
1
+ {"version":3,"file":"subtypes.js","sourceRoot":"","sources":["../../../src/tools/audit/subtypes.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,yBAAyB,EAAE,mBAAmB,EAAE,gBAAgB,EAChE,yBAAyB,EAAE,cAAc,GAC1C,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,8BAA8B,EAAE,wBAAwB,EAAE,qBAAqB,EAC/E,8BAA8B,EAAE,mBAAmB,GACpD,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,8BAA8B,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,8BAA8B,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACtM,OAAO,EAAE,oBAAoB,EAAE,+BAA+B,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,+BAA+B,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAI7M,gDAAgD;AAChD,iEAAiE;AACjE,2EAA2E;AAC3E,MAAM,iBAAiB,GAAmB;IACxC,QAAQ,EAAE,8DAA8D;IACxE,gBAAgB,EAAE,mLAAmL;IACrM,uBAAuB,EAAE,qOAAqO;IAC9P,gBAAgB,EAAE;QAChB,QAAQ,EAAE,2LAA2L;QACrM,IAAI,EAAE,2KAA2K;QACjL,MAAM,EAAE,iKAAiK;QACzK,GAAG,EAAE,uFAAuF;KAC7F;IACD,kBAAkB,EAAE,KAAK;IACzB,aAAa,EAAE,CAAC,OAAO,EAAE,OAAO,CAAU;CAC3C,CAAC;AAEF,mDAAmD;AACnD,MAAM,cAAc,GAAmB;IACrC,QAAQ,EAAE,wPAAwP;IAClQ,gBAAgB,EAAE,ySAAyS;IAC3T,uBAAuB,EAAE,6TAA6T;IACtV,gBAAgB,EAAE;QAChB,QAAQ,EAAE,wSAAwS;QAClT,IAAI,EAAE,kOAAkO;QACxO,MAAM,EAAE,4NAA4N;QACpO,GAAG,EAAE,uGAAuG;KAC7G;IACD,kBAAkB,EAAE,KAAK;IACzB,aAAa,EAAE,CAAC,OAAO,EAAE,OAAO,CAAU;CAC3C,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAA8C;IACvE,OAAO,EAAE;QACP,QAAQ,EAAE,cAAc;QACxB,WAAW,EAAE,yBAAyB;QACtC,YAAY,EAAE,mBAAmB;QACjC,SAAS,EAAE,gBAAgB;QAC3B,kBAAkB,EAAE,yBAAyB;QAC7C,SAAS,EAAE,iBAAiB;KAC7B;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,mBAAmB;QAC7B,WAAW,EAAE,8BAA8B;QAC3C,YAAY,EAAE,wBAAwB;QACtC,SAAS,EAAE,qBAAqB;QAChC,kBAAkB,EAAE,8BAA8B;QAClD,SAAS,EAAE,cAAc;KAC1B;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,mBAAmB;QAC7B,WAAW,EAAE,8BAA8B;QAC3C,YAAY,EAAE,wBAAwB;QACtC,SAAS,EAAE,qBAAqB;QAChC,kBAAkB,EAAE,8BAA8B;QAClD,SAAS,EAAE,oBAAoB;KAChC;IACD,KAAK,EAAE;QACL,QAAQ,EAAE,oBAAoB;QAC9B,WAAW,EAAE,+BAA+B;QAC5C,YAAY,EAAE,yBAAyB;QACvC,SAAS,EAAE,sBAAsB;QACjC,kBAAkB,EAAE,+BAA+B;QACnD,SAAS,EAAE,qBAAqB;KACjC;CACF,CAAC"}
@@ -1,8 +1,7 @@
1
1
  import { ToolSurfaceRegistry } from '../../tool-surface/tool-surface-registry.js';
2
2
  import { type Input } from './schema.js';
3
3
  import { type AuditBrief } from './brief-slot.js';
4
- import { type AuditReport } from '../../reporting/report-parser-slots/audit-report.js';
5
4
  import type { ToolConfig } from '../../lifecycle/tool-config-types.js';
6
5
  export declare function registerAudit(registry: ToolSurfaceRegistry): void;
7
- export declare const toolConfig: ToolConfig<Input, AuditBrief, AuditReport>;
6
+ export declare const toolConfig: ToolConfig<Input, AuditBrief, unknown>;
8
7
  //# sourceMappingURL=tool-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-config.d.ts","sourceRoot":"","sources":["../../../src/tools/audit/tool-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAClF,OAAO,EAAe,KAAK,KAAK,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,qDAAqD,CAAC;AAE1G,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAavE,wBAAgB,aAAa,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAYjE;AAgFD,eAAO,MAAM,UAAU,EAAE,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,CAoCjE,CAAC"}
1
+ {"version":3,"file":"tool-config.d.ts","sourceRoot":"","sources":["../../../src/tools/audit/tool-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAClF,OAAO,EAAe,KAAK,KAAK,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAGlE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAIvE,wBAAgB,aAAa,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAYjE;AAED,eAAO,MAAM,UAAU,EAAE,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAqC7D,CAAC"}
@@ -1,10 +1,8 @@
1
1
  import { inputSchema } from './schema.js';
2
2
  import { auditBriefSlot } from './brief-slot.js';
3
- import { auditReportSchema } from '../../reporting/report-parser-slots/audit-report.js';
4
- import { auditHeadlineTemplate } from '../../reporting/headline-templates/audit.js';
3
+ import { noStructuredReportSchema } from '../../reporting/report-parser-slots/no-structured-report.js';
4
+ import { makeFindingsHeadlineTemplate } from '../../reporting/findings-headline.js';
5
5
  import { DEFAULT_TASK_TIMEOUT_MS } from '../../config/schema.js';
6
- import { SEVERITY_LADDER } from '../shared/severity-ladder.js';
7
- import { AUDIT_PURPOSE_ORIENTATION, EVIDENCE_RULE_AUDIT, SCOPE_RULE_AUDIT, ANNOTATOR_AWARENESS_AUDIT, DOC_AUDIT_FAILURE_MODES, THOROUGHNESS_REMINDER_AUDIT, } from './implementer-criteria.js';
8
6
  export function registerAudit(registry) {
9
7
  registry.register({
10
8
  routeName: 'audit',
@@ -18,100 +16,26 @@ export function registerAudit(registry) {
18
16
  responseShapeName: 'BatchResponse',
19
17
  });
20
18
  }
21
- const FINDING_FORMAT_INSTRUCTIONS = [
22
- // Orientation goes FIRST — the worker needs to know why this audit
23
- // exists before reading the format spec / taxonomy / evidence rules.
24
- // Without it, workers calibrated on "find issues in this doc" produce
25
- // stylistic proofreading; with it, they target executability blockers.
26
- AUDIT_PURPOSE_ORIENTATION,
27
- '',
28
- 'Produce a narrative audit report. Use this EXACT per-finding format — both the structured reviewer and the deterministic fallback extract from this same format:',
29
- '',
30
- '## Finding 1: <one-line title>',
31
- '- Severity: critical | high | medium | low',
32
- '- Location: file:line (when applicable)',
33
- '- Issue: one-paragraph explanation',
34
- '- Suggestion: one-line fix recommendation',
35
- '',
36
- '## Finding 2: <one-line title>',
37
- '- Severity: ...',
38
- '- ...',
39
- '',
40
- 'Rules:',
41
- '- Each finding heading MUST start with "## Finding N: " (h2, "Finding ", number, colon, title) — number sequentially from 1.',
42
- '- Severity / Location / Issue / Suggestion bullets are on their own lines with the labels exactly as shown.',
43
- '- If you found no issues, say "No findings." in plain prose and emit zero `## Finding N:` blocks.',
44
- '',
45
- // Tool sweep #12: share the annotator's rubric with the implementer
46
- // so the worker self-aligns with what the reviewer will check.
47
- // Result: fewer downgraded findings, fewer missed criticals.
48
- SEVERITY_LADDER,
49
- '',
50
- // Doc-audit failure-mode taxonomy. Without this block, workers calibrated
51
- // on code-audit rubrics produce only surface-level proofreading nits on
52
- // prose artifacts. The 11 categories below are what actually goes wrong
53
- // in non-trivial specs/plans/recommendation docs.
54
- DOC_AUDIT_FAILURE_MODES,
55
- '',
56
- // Counter-balances the SEVERITY_LADDER's anti-inflation hint for the
57
- // prose-document case, where the typical failure is under-finding.
58
- THOROUGHNESS_REMINDER_AUDIT,
59
- '',
60
- EVIDENCE_RULE_AUDIT,
61
- '',
62
- SCOPE_RULE_AUDIT,
63
- '',
64
- ANNOTATOR_AWARENESS_AUDIT,
65
- ].join('\n');
66
- const DELTA_AUDIT_INSTRUCTIONS = [
67
- 'A prior audit report is provided in the context above. Verify which prior findings have been fixed.',
68
- 'In your output: **omit** fixed findings; **include** still-present findings (mark "unfixed from prior audit"); **include** new findings; end with a **Fixed** summary line.',
69
- ].join('\n');
70
- function buildFilePathsPrompt(filePaths) {
71
- if (filePaths.length === 0)
72
- return '';
73
- return `Read and analyze these files:\n${filePaths.map(p => `- ${p}`).join('\n')}`;
74
- }
75
- function buildPrompt(brief) {
76
- const parts = [`Audit for ${brief.subtypeText} issues.`];
77
- if (brief.perFilePath) {
78
- parts.push(`Read and analyze this file:\n- ${brief.perFilePath}`);
79
- }
80
- else {
81
- if (brief.document)
82
- parts.push(`Document:\n\n${brief.document}`);
83
- const fileSection = buildFilePathsPrompt(brief.filePaths);
84
- if (fileSection)
85
- parts.push(fileSection);
86
- }
87
- // Tool sweep #11: emit FINDING_FORMAT_INSTRUCTIONS unconditionally
88
- // (pre-fix the DELTA branch dropped them, leaving the worker without
89
- // a format spec → annotator could not parse delta-mode output).
90
- if (brief.hasContextBlocks) {
91
- parts.push(DELTA_AUDIT_INSTRUCTIONS);
92
- }
93
- parts.push(FINDING_FORMAT_INSTRUCTIONS);
94
- return parts.join('\n\n');
95
- }
96
19
  export const toolConfig = {
97
20
  name: 'audit',
98
21
  category: 'read_only',
99
22
  agentType: 'complex',
100
23
  briefSlot: auditBriefSlot,
101
24
  buildTaskSpec: (brief, ctx) => {
102
- // For the parallel-criteria dispatcher's cached prefix, hand it the
103
- // pure document/file targets not buildPrompt's full spec which
104
- // embeds the legacy ## Finding format and would compete with the
105
- // dispatcher's own format spec.
25
+ // The read-route dispatcher builds the worker prefix from this pure
26
+ // target + FINDING_FORMAT_SHARED + the audit RouteSemantics (subtypes.ts);
27
+ // `prompt` carries the same pure target (TaskSpec.prompt is required and
28
+ // feeds telemetry, but is not the read-route worker input).
106
29
  const targetParts = [`Audit for ${brief.subtypeText} issues.`];
107
30
  if (brief.document)
108
31
  targetParts.push(`Document:\n\n${brief.document}`);
109
32
  if (brief.filePaths.length > 0) {
110
33
  targetParts.push(`Target files:\n${brief.filePaths.map(p => `- ${p}`).join('\n')}`);
111
34
  }
35
+ const target = targetParts.join('\n\n');
112
36
  return {
113
- prompt: buildPrompt(brief),
114
- parallelTarget: targetParts.join('\n\n'),
37
+ prompt: target,
38
+ readTarget: target,
115
39
  agentType: 'complex',
116
40
  reviewPolicy: 'none',
117
41
  briefQualityPolicy: 'off',
@@ -128,7 +52,7 @@ export const toolConfig = {
128
52
  subtype: brief.subtype,
129
53
  };
130
54
  },
131
- reportSchema: auditReportSchema,
132
- headlineTemplate: auditHeadlineTemplate,
55
+ reportSchema: noStructuredReportSchema,
56
+ headlineTemplate: makeFindingsHeadlineTemplate('audit', 'high'),
133
57
  };
134
58
  //# sourceMappingURL=tool-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-config.js","sourceRoot":"","sources":["../../../src/tools/audit/tool-config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAc,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,cAAc,EAAmB,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAoB,MAAM,qDAAqD,CAAC;AAC1G,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AAGpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EACL,yBAAyB,EACzB,mBAAmB,EACnB,gBAAgB,EAChB,yBAAyB,EACzB,uBAAuB,EACvB,2BAA2B,GAC5B,MAAM,2BAA2B,CAAC;AAEnC,MAAM,UAAU,aAAa,CAAC,QAA6B;IACzD,QAAQ,CAAC,QAAQ,CAAC;QAChB,SAAS,EAAE,OAAO;QAClB,UAAU,EAAE,MAAM;QAClB,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,MAAM;QACf,MAAM,EAAE,WAAW;QACnB,YAAY,EAAE,WAAW;QACzB,gBAAgB,EAAE,SAAS;QAC3B,oBAAoB,EAAE,KAAK;QAC3B,iBAAiB,EAAE,eAAe;KACnC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,2BAA2B,GAAG;IAClC,mEAAmE;IACnE,qEAAqE;IACrE,sEAAsE;IACtE,uEAAuE;IACvE,yBAAyB;IACzB,EAAE;IACF,kKAAkK;IAClK,EAAE;IACF,gCAAgC;IAChC,4CAA4C;IAC5C,yCAAyC;IACzC,oCAAoC;IACpC,2CAA2C;IAC3C,EAAE;IACF,gCAAgC;IAChC,iBAAiB;IACjB,OAAO;IACP,EAAE;IACF,QAAQ;IACR,8HAA8H;IAC9H,6GAA6G;IAC7G,mGAAmG;IACnG,EAAE;IACF,oEAAoE;IACpE,+DAA+D;IAC/D,6DAA6D;IAC7D,eAAe;IACf,EAAE;IACF,0EAA0E;IAC1E,wEAAwE;IACxE,wEAAwE;IACxE,kDAAkD;IAClD,uBAAuB;IACvB,EAAE;IACF,qEAAqE;IACrE,mEAAmE;IACnE,2BAA2B;IAC3B,EAAE;IACF,mBAAmB;IACnB,EAAE;IACF,gBAAgB;IAChB,EAAE;IACF,yBAAyB;CAC1B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,wBAAwB,GAAG;IAC/B,qGAAqG;IACrG,6KAA6K;CAC9K,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,SAAS,oBAAoB,CAAC,SAAmB;IAC/C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACtC,OAAO,kCAAkC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AACrF,CAAC;AAED,SAAS,WAAW,CAAC,KAAiB;IACpC,MAAM,KAAK,GAAa,CAAC,aAAa,KAAK,CAAC,WAAW,UAAU,CAAC,CAAC;IAEnE,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,kCAAkC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;IACpE,CAAC;SAAM,CAAC;QACN,IAAI,KAAK,CAAC,QAAQ;YAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QACjE,MAAM,WAAW,GAAG,oBAAoB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC1D,IAAI,WAAW;YAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC;IAED,mEAAmE;IACnE,qEAAqE;IACrE,gEAAgE;IAChE,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACvC,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IAExC,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAA+C;IACpE,IAAI,EAAE,OAAO;IACb,QAAQ,EAAE,WAAW;IACrB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,cAAc;IACzB,aAAa,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QAC5B,oEAAoE;QACpE,iEAAiE;QACjE,iEAAiE;QACjE,gCAAgC;QAChC,MAAM,WAAW,GAAa,CAAC,aAAa,KAAK,CAAC,WAAW,UAAU,CAAC,CAAC;QACzE,IAAI,KAAK,CAAC,QAAQ;YAAE,WAAW,CAAC,IAAI,CAAC,gBAAgB,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QACvE,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,WAAW,CAAC,IAAI,CAAC,kBAAkB,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtF,CAAC;QACD,OAAO;YACL,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC;YAC1B,cAAc,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;YACxC,SAAS,EAAE,SAAS;YACpB,YAAY,EAAE,MAAM;YACpB,kBAAkB,EAAE,KAAK;YACzB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,IAAI,MAAM;YAC3C,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,IAAI,uBAAuB;YACpE,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,aAAa,IAAI,UAAU;YAC/D,GAAG,EAAE,GAAG,CAAC,cAAc,EAAE,GAAG,IAAI,GAAG,CAAC,GAAG;YACvC,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YACnE,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,iEAAiE;YACjE,iEAAiE;YACjE,OAAO,EAAE,KAAK,CAAC,OAAO;SACX,CAAC;IAChB,CAAC;IACD,YAAY,EAAE,iBAAiB;IAC/B,gBAAgB,EAAE,qBAAqB;CACxC,CAAC"}
1
+ {"version":3,"file":"tool-config.js","sourceRoot":"","sources":["../../../src/tools/audit/tool-config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAc,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,cAAc,EAAmB,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,6DAA6D,CAAC;AACvG,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AAGpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,MAAM,UAAU,aAAa,CAAC,QAA6B;IACzD,QAAQ,CAAC,QAAQ,CAAC;QAChB,SAAS,EAAE,OAAO;QAClB,UAAU,EAAE,MAAM;QAClB,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,MAAM;QACf,MAAM,EAAE,WAAW;QACnB,YAAY,EAAE,WAAW;QACzB,gBAAgB,EAAE,SAAS;QAC3B,oBAAoB,EAAE,KAAK;QAC3B,iBAAiB,EAAE,eAAe;KACnC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAA2C;IAChE,IAAI,EAAE,OAAO;IACb,QAAQ,EAAE,WAAW;IACrB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,cAAc;IACzB,aAAa,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QAC5B,oEAAoE;QACpE,2EAA2E;QAC3E,yEAAyE;QACzE,4DAA4D;QAC5D,MAAM,WAAW,GAAa,CAAC,aAAa,KAAK,CAAC,WAAW,UAAU,CAAC,CAAC;QACzE,IAAI,KAAK,CAAC,QAAQ;YAAE,WAAW,CAAC,IAAI,CAAC,gBAAgB,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QACvE,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,WAAW,CAAC,IAAI,CAAC,kBAAkB,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtF,CAAC;QACD,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxC,OAAO;YACL,MAAM,EAAE,MAAM;YACd,UAAU,EAAE,MAAM;YAClB,SAAS,EAAE,SAAS;YACpB,YAAY,EAAE,MAAM;YACpB,kBAAkB,EAAE,KAAK;YACzB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,IAAI,MAAM;YAC3C,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,IAAI,uBAAuB;YACpE,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,aAAa,IAAI,UAAU;YAC/D,GAAG,EAAE,GAAG,CAAC,cAAc,EAAE,GAAG,IAAI,GAAG,CAAC,GAAG;YACvC,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YACnE,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,iEAAiE;YACjE,iEAAiE;YACjE,OAAO,EAAE,KAAK,CAAC,OAAO;SACX,CAAC;IAChB,CAAC;IACD,YAAY,EAAE,wBAAwB;IACtC,gBAAgB,EAAE,4BAA4B,CAAC,OAAO,EAAE,MAAM,CAAC;CAChE,CAAC"}
@@ -38,16 +38,6 @@ export declare const SCOPE_RULE_DEBUG: string;
38
38
  * a careful debugger would consciously check for.
39
39
  */
40
40
  export declare const DEBUG_FAILURE_MODES: string;
41
- /**
42
- * Counter-balance to the SEVERITY_LADDER's anti-inflation hint.
43
- *
44
- * The shared severity ladder warns against inflation. For debug, the
45
- * common failure is the OPPOSITE — workers stop at the first plausible
46
- * explanation (over-confidence on a shallow trace) rather than tracing
47
- * to the actual cause. This block tells the worker the typical debug
48
- * failure is shallow root-cause, not noisy hypothesis lists.
49
- */
50
- export declare const THOROUGHNESS_REMINDER_DEBUG: string;
51
41
  export declare const ANNOTATOR_AWARENESS_DEBUG: string;
52
42
  import { type CriterionEntry } from '../criteria-types.js';
53
43
  /** Structured per-criterion array for parallel-criteria fan-out. */
@@ -1 +1 @@
1
- {"version":3,"file":"implementer-criteria.d.ts","sourceRoot":"","sources":["../../../src/tools/debug/implementer-criteria.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB,QAe1B,CAAC;AAEb,eAAO,MAAM,mBAAmB,QAQpB,CAAC;AAEb,eAAO,MAAM,gBAAgB,QAMjB,CAAC;AAEb;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,QAcpB,CAAC;AAEb;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B,QAa5B,CAAC;AAEb,eAAO,MAAM,yBAAyB,QAS1B,CAAC;AAEb,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE1E,oEAAoE;AACpE,eAAO,MAAM,cAAc,EAAE,SAAS,cAAc,EAAuC,CAAC"}
1
+ {"version":3,"file":"implementer-criteria.d.ts","sourceRoot":"","sources":["../../../src/tools/debug/implementer-criteria.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB,QAe1B,CAAC;AAEb,eAAO,MAAM,mBAAmB,QAQpB,CAAC;AAEb,eAAO,MAAM,gBAAgB,QAMjB,CAAC;AAEb;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,QAcpB,CAAC;AAEb,eAAO,MAAM,yBAAyB,QAS1B,CAAC;AAEb,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE1E,oEAAoE;AACpE,eAAO,MAAM,cAAc,EAAE,SAAS,cAAc,EAAuC,CAAC"}
@@ -81,29 +81,6 @@ export const DEBUG_FAILURE_MODES = [
81
81
  '- medium: likely candidate cause with most of the chain; 1-2 inferred steps; mark gaps explicitly with "verify by reading <file>" or "verify by running <cmd>".',
82
82
  '- low: possible contributing factor or partial trace; weak evidence but worth surfacing for the maintainer to consider against other angles\' candidates.',
83
83
  ].join('\n');
84
- /**
85
- * Counter-balance to the SEVERITY_LADDER's anti-inflation hint.
86
- *
87
- * The shared severity ladder warns against inflation. For debug, the
88
- * common failure is the OPPOSITE — workers stop at the first plausible
89
- * explanation (over-confidence on a shallow trace) rather than tracing
90
- * to the actual cause. This block tells the worker the typical debug
91
- * failure is shallow root-cause, not noisy hypothesis lists.
92
- */
93
- export const THOROUGHNESS_REMINDER_DEBUG = [
94
- 'Thoroughness expectation for debug investigations:',
95
- '- For non-trivial failures (test failure, runtime error, unexpected behavior), stopping at the first plausible explanation is the typical debug failure mode. Always check for SYMPTOM-NOT-CAUSE before filing a finding: ask "if I changed this line, would the failure still happen via a different path?"',
96
- '- The SEVERITY_LADDER warns against inflation. That warning is calibrated for code reviews — for debug, the common failure is OVER-CONFIDENCE on a shallow trace (calling a symptom location the cause). Apply the failure-mode taxonomy first; THEN calibrate severity.',
97
- '- Do not invent hypotheses to hit a quota. But if you have only one finding and the failure is non-trivial, double-check categories 1, 2, 3, and 5 (symptom-not-cause, scapegoat file, incomplete trace, parallel causes) — these are the ones investigators most often miss on first pass.',
98
- '- Limit yourself to 3-5 most-likely hypotheses. Do NOT enumerate implausible ones to pad the list.',
99
- '',
100
- 'Symptom → cause walk (REQUIRED on every investigation):',
101
- '- Start at the SYMPTOM (where the failure surfaces — the error message, the failing assertion, the wrong output).',
102
- '- Walk UPSTREAM in the call/data flow. At each step, check whether the state at that point is consistent with the failure or already wrong. The point where the state first becomes wrong is the cause.',
103
- '- For each step in the walk, cite a file:line. If the walk crosses a function boundary, cite both sides (caller line + callee line).',
104
- '- Worked example. A test fails with `TypeError: cannot read property "id" of undefined` at `tests/users.test.ts:42` (assertion on the response). The walk: assertion sees `response.user === undefined`; the route handler at `src/handlers/getUser.ts:18` returns `{ user: rows[0] }` from a DB call; the DB call at `src/db/users.ts:34` returns `[]` for the test fixture id; the fixture loader at `tests/fixtures/users.ts:12` writes to a different table than the handler reads. → CAUSE is `tests/fixtures/users.ts:12` (wrong table). The TypeError at `tests/users.test.ts:42` is the SYMPTOM. A finding that named `getUser.ts:18` as the cause would have shipped a fix that adds null-checking — masking the bug instead of fixing it.',
105
- '- Most investigators miss findings of this shape on first pass because the failing line is loud and the upstream cause is quiet. The symptom → cause walk forces the trace.',
106
- ].join('\n');
107
84
  export const ANNOTATOR_AWARENESS_DEBUG = [
108
85
  'After your output, an annotator validates each finding against this debug rubric:',
109
86
  '- Is each finding a hypothesis with a complete trace from symptom to cause (not a point observation at the symptom)?',
@@ -1 +1 @@
1
- {"version":3,"file":"implementer-criteria.js","sourceRoot":"","sources":["../../../src/tools/debug/implementer-criteria.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,sCAAsC;IACtC,gLAAgL;IAChL,EAAE;IACF,+DAA+D;IAC/D,sFAAsF;IACtF,8GAA8G;IAC9G,8FAA8F;IAC9F,gHAAgH;IAChH,0GAA0G;IAC1G,2IAA2I;IAC3I,EAAE;IACF,0NAA0N;IAC1N,EAAE;IACF,4OAA4O;CAC7O,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,kDAAkD;IAClD,+GAA+G;IAC/G,kOAAkO;IAClO,8IAA8I;IAC9I,2KAA2K;IAC3K,kKAAkK;IAClK,iRAAiR;CAClR,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,QAAQ;IACR,8EAA8E;IAC9E,wMAAwM;IACxM,8OAA8O;IAC9O,kKAAkK;CACnK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,4PAA4P;IAC5P,EAAE;IACF,kXAAkX;IAClX,sSAAsS;IACtS,uTAAuT;IACvT,gVAAgV;IAChV,8VAA8V;IAC9V,EAAE;IACF,qDAAqD;IACrD,0IAA0I;IAC1I,qJAAqJ;IACrJ,iKAAiK;IACjK,2JAA2J;CAC5J,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,oDAAoD;IACpD,8SAA8S;IAC9S,0QAA0Q;IAC1Q,6RAA6R;IAC7R,oGAAoG;IACpG,EAAE;IACF,yDAAyD;IACzD,mHAAmH;IACnH,yMAAyM;IACzM,sIAAsI;IACtI,qtBAAqtB;IACrtB,6KAA6K;CAC9K,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,mFAAmF;IACnF,sHAAsH;IACtH,kFAAkF;IAClF,+EAA+E;IAC/E,kEAAkE;IAClE,qEAAqE;IACrE,yHAAyH;IACzH,uUAAuU;CACxU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,OAAO,EAAE,aAAa,EAAuB,MAAM,sBAAsB,CAAC;AAE1E,oEAAoE;AACpE,MAAM,CAAC,MAAM,cAAc,GAA8B,aAAa,CAAC,mBAAmB,CAAC,CAAC"}
1
+ {"version":3,"file":"implementer-criteria.js","sourceRoot":"","sources":["../../../src/tools/debug/implementer-criteria.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,sCAAsC;IACtC,gLAAgL;IAChL,EAAE;IACF,+DAA+D;IAC/D,sFAAsF;IACtF,8GAA8G;IAC9G,8FAA8F;IAC9F,gHAAgH;IAChH,0GAA0G;IAC1G,2IAA2I;IAC3I,EAAE;IACF,0NAA0N;IAC1N,EAAE;IACF,4OAA4O;CAC7O,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,kDAAkD;IAClD,+GAA+G;IAC/G,kOAAkO;IAClO,8IAA8I;IAC9I,2KAA2K;IAC3K,kKAAkK;IAClK,iRAAiR;CAClR,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,QAAQ;IACR,8EAA8E;IAC9E,wMAAwM;IACxM,8OAA8O;IAC9O,kKAAkK;CACnK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,4PAA4P;IAC5P,EAAE;IACF,kXAAkX;IAClX,sSAAsS;IACtS,uTAAuT;IACvT,gVAAgV;IAChV,8VAA8V;IAC9V,EAAE;IACF,qDAAqD;IACrD,0IAA0I;IAC1I,qJAAqJ;IACrJ,iKAAiK;IACjK,2JAA2J;CAC5J,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,mFAAmF;IACnF,sHAAsH;IACtH,kFAAkF;IAClF,+EAA+E;IAC/E,kEAAkE;IAClE,qEAAqE;IACrE,yHAAyH;IACzH,uUAAuU;CACxU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,OAAO,EAAE,aAAa,EAAuB,MAAM,sBAAsB,CAAC;AAE1E,oEAAoE;AACpE,MAAM,CAAC,MAAM,cAAc,GAA8B,aAAa,CAAC,mBAAmB,CAAC,CAAC"}
@@ -37,20 +37,20 @@ export declare const outputSchema: z.ZodObject<{
37
37
  reason: z.ZodString;
38
38
  }, z.core.$strip>]>;
39
39
  specReviewVerdict: z.ZodOptional<z.ZodEnum<{
40
+ error: "error";
40
41
  approved: "approved";
41
42
  concerns: "concerns";
42
43
  changes_required: "changes_required";
43
44
  annotated: "annotated";
44
- error: "error";
45
45
  skipped: "skipped";
46
46
  not_applicable: "not_applicable";
47
47
  }>>;
48
48
  qualityReviewVerdict: z.ZodOptional<z.ZodEnum<{
49
+ error: "error";
49
50
  approved: "approved";
50
51
  concerns: "concerns";
51
52
  changes_required: "changes_required";
52
53
  annotated: "annotated";
53
- error: "error";
54
54
  skipped: "skipped";
55
55
  not_applicable: "not_applicable";
56
56
  }>>;
@@ -1 +1 @@
1
- {"version":3,"file":"tool-config.d.ts","sourceRoot":"","sources":["../../../src/tools/debug/tool-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAElF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAEvE,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAatE,wBAAgB,aAAa,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAYjE;AAsDD,eAAO,MAAM,UAAU,EAAE,UAAU,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,CAuCjE,CAAC"}
1
+ {"version":3,"file":"tool-config.d.ts","sourceRoot":"","sources":["../../../src/tools/debug/tool-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAElF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAEvE,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAKtE,wBAAgB,aAAa,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAYjE;AAED,eAAO,MAAM,UAAU,EAAE,UAAU,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,CAgCjE,CAAC"}
@@ -1,9 +1,8 @@
1
1
  import { inputSchema } from './schema.js';
2
2
  import { debugBriefSlot } from './brief-slot.js';
3
- import { debugHeadlineTemplate } from '../../reporting/headline-templates/debug.js';
3
+ import { noStructuredReportSchema } from '../../reporting/report-parser-slots/no-structured-report.js';
4
+ import { makeFindingsHeadlineTemplate } from '../../reporting/findings-headline.js';
4
5
  import { DEFAULT_TASK_TIMEOUT_MS } from '../../config/schema.js';
5
- import { SEVERITY_LADDER } from '../shared/severity-ladder.js';
6
- import { DEBUG_PURPOSE_ORIENTATION, EVIDENCE_RULE_DEBUG, SCOPE_RULE_DEBUG, ANNOTATOR_AWARENESS_DEBUG, DEBUG_FAILURE_MODES, THOROUGHNESS_REMINDER_DEBUG, } from './implementer-criteria.js';
7
6
  export function registerDebug(registry) {
8
7
  registry.register({
9
8
  routeName: 'debug',
@@ -17,84 +16,24 @@ export function registerDebug(registry) {
17
16
  responseShapeName: 'BatchResponse',
18
17
  });
19
18
  }
20
- const FINDING_FORMAT_INSTRUCTIONS = [
21
- // Orientation goes FIRST — the worker needs to know why this debug
22
- // exists (fix specification, not a hint; symptom-vs-cause matters)
23
- // before reading the format spec / taxonomy / evidence rules.
24
- // Without it, workers point at the failing line and call it the cause.
25
- DEBUG_PURPOSE_ORIENTATION,
26
- '',
27
- 'Use hypothesis-driven debugging. Use this EXACT per-finding format — both the structured reviewer and the deterministic fallback extract from this same format:',
28
- '',
29
- '## Finding 1: <one-line title>',
30
- '- Severity: critical | high | medium | low',
31
- '- Reproduction: command/input/state to trigger the failure',
32
- '- Symptom: file:line where the failure surfaces',
33
- '- Trace: each step file:line + observed value, ending at the cause',
34
- '- Cause: file:line that, if changed, would prevent the failure',
35
- '- Fix: proposed change (PROPOSE only — do NOT apply the fix)',
36
- '- Falsifier: how the maintainer verifies the fix works',
37
- '',
38
- '## Finding 2: <one-line title>',
39
- '- Severity: ...',
40
- '- ...',
41
- '',
42
- 'Rules:',
43
- '- Each finding heading MUST start with "## Finding N: " (h2, "Finding ", number, colon, title) — number sequentially from 1.',
44
- '- Reproduction / Symptom / Trace / Cause / Fix / Falsifier bullets are on their own lines with the labels exactly as shown.',
45
- '- This is a read-only diagnostic — do NOT edit any file. Propose fixes; the caller applies them.',
46
- '- Limit yourself to 3-5 most-likely hypotheses. Do not enumerate implausible ones to pad the list.',
47
- '',
48
- // Tool sweep #12: shared rubric so worker self-aligns with the annotator.
49
- SEVERITY_LADDER,
50
- '',
51
- // Debug failure-mode taxonomy. Without this block, workers stop at
52
- // the first plausible explanation (often the symptom) instead of
53
- // tracing upstream to the actual cause.
54
- DEBUG_FAILURE_MODES,
55
- '',
56
- // Counter-balances the SEVERITY_LADDER's anti-inflation hint and
57
- // includes the symptom→cause walk with worked example.
58
- THOROUGHNESS_REMINDER_DEBUG,
59
- '',
60
- EVIDENCE_RULE_DEBUG,
61
- '',
62
- SCOPE_RULE_DEBUG,
63
- '',
64
- ANNOTATOR_AWARENESS_DEBUG,
65
- ].join('\n');
66
- function buildFilePathsPrompt(filePaths) {
67
- if (!filePaths || filePaths.length === 0)
68
- return '';
69
- return `Read and analyze these files:\n${filePaths.map(p => `- ${p}`).join('\n')}`;
70
- }
71
19
  export const toolConfig = {
72
20
  name: 'debug',
73
21
  category: 'read_only',
74
22
  agentType: 'complex',
75
23
  briefSlot: debugBriefSlot,
76
24
  buildTaskSpec: (brief, ctx) => {
77
- const parts = [`Debug this problem:\n\n${brief.problem}`];
78
- if (brief.context)
79
- parts.push(`Context: ${brief.context}`);
80
- if (brief.hypothesis)
81
- parts.push(`Initial hypothesis: ${brief.hypothesis}`);
82
- const fileSection = buildFilePathsPrompt(brief.filePaths);
83
- if (fileSection)
84
- parts.push(fileSection);
85
- parts.push(FINDING_FORMAT_INSTRUCTIONS);
86
- const prompt = parts.join('\n\n');
87
25
  const targetParts = [`Problem to debug:\n\n${brief.problem}`];
88
26
  if (brief.context)
89
27
  targetParts.push(`Context: ${brief.context}`);
90
28
  if (brief.hypothesis)
91
29
  targetParts.push(`Initial hypothesis: ${brief.hypothesis}`);
30
+ // The read-route dispatcher builds the worker prefix from this pure target
31
+ // + FINDING_FORMAT_SHARED + debug RouteSemantics; `prompt` mirrors it
32
+ // (required field / telemetry, not the read-route worker input).
33
+ const target = targetParts.join('\n\n');
92
34
  return {
93
- prompt,
94
- // Pure user problem statement for the parallel-criteria dispatcher's
95
- // cached prefix; bypasses the legacy ## Finding format spec from
96
- // FINDING_FORMAT_INSTRUCTIONS that's already embedded in `prompt`.
97
- parallelTarget: targetParts.join('\n\n'),
35
+ prompt: target,
36
+ readTarget: target,
98
37
  agentType: 'complex',
99
38
  reviewPolicy: 'none',
100
39
  briefQualityPolicy: 'off',
@@ -109,7 +48,7 @@ export const toolConfig = {
109
48
  mainModel: ctx.mainModel ?? undefined,
110
49
  };
111
50
  },
112
- reportSchema: { parse: (_text) => { throw new Error('no structured report emitted by this executor'); } },
113
- headlineTemplate: debugHeadlineTemplate,
51
+ reportSchema: noStructuredReportSchema,
52
+ headlineTemplate: makeFindingsHeadlineTemplate('debug', 'high'),
114
53
  };
115
54
  //# sourceMappingURL=tool-config.js.map