@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
@@ -12,7 +12,10 @@ export interface EnrichedResearchInput extends Input {
12
12
  hasBrave: boolean;
13
13
  }
14
14
  export interface ResearchBrief {
15
- compiledPrompt: string;
15
+ /** Pure research question — becomes TaskSpec.prompt + readTarget. The actual
16
+ * worker input is the two-turn pre-loop prefix built in
17
+ * perform-implementation from TaskSpec.research, not this field. */
18
+ researchQuestion: string;
16
19
  contextBlockIds: string[];
17
20
  }
18
21
  export declare const researchBriefSlot: (input: EnrichedResearchInput) => ResearchBrief[];
@@ -1 +1 @@
1
- {"version":3,"file":"brief-slot.d.ts","sourceRoot":"","sources":["../../../src/tools/research/brief-slot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAYzC,MAAM,WAAW,oBAAoB;IAAG,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;CAAE;AAEtE,MAAM,WAAW,qBAAsB,SAAQ,KAAK;IAClD,qBAAqB,EAAE,oBAAoB,EAAE,CAAC;IAC9C,qEAAqE;IACrE,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B;+CAC2C;IAC3C,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAuCD,eAAO,MAAM,iBAAiB,GAAI,OAAO,qBAAqB,KAAG,aAAa,EAS7E,CAAC;AAaF,OAAO,EAAyB,KAAK,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAE3F,eAAO,MAAM,yBAAyB,QAAY,CAAC;AAEnD,MAAM,WAAW,WAAW;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAO,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAO,MAAM,CAAC;IACzB,IAAI,EAAc,YAAY,CAAC;IAC/B,aAAa,EAAK,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC1D;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,CAI/D;AA6CD,wBAAgB,gCAAgC,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,CAU1E"}
1
+ {"version":3,"file":"brief-slot.d.ts","sourceRoot":"","sources":["../../../src/tools/research/brief-slot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAKzC,MAAM,WAAW,oBAAoB;IAAG,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;CAAE;AAEtE,MAAM,WAAW,qBAAsB,SAAQ,KAAK;IAClD,qBAAqB,EAAE,oBAAoB,EAAE,CAAC;IAC9C,qEAAqE;IACrE,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B;+CAC2C;IAC3C,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B;;yEAEqE;IACrE,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,eAAO,MAAM,iBAAiB,GAAI,OAAO,qBAAqB,KAAG,aAAa,EAK7E,CAAC;AAaF,OAAO,EAAyB,KAAK,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAE3F,eAAO,MAAM,yBAAyB,QAAY,CAAC;AAEnD,MAAM,WAAW,WAAW;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAO,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAO,MAAM,CAAC;IACzB,IAAI,EAAc,YAAY,CAAC;IAC/B,aAAa,EAAK,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC1D;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,CAI/D;AA6CD,wBAAgB,gCAAgC,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,CAU1E"}
@@ -1,36 +1,6 @@
1
- import { EVIDENCE_RULE_RESEARCH, TRUST_BOUNDARY_USER_SOURCES_RESEARCH, TRUST_BOUNDARY_EXTERNAL_DATA_RESEARCH, QUERY_PHRASING_RESEARCH, strategyRuleResearch, } from './implementer-criteria.js';
2
- function compileResearchPrompt(input, resolvedContextBlocks, extras) {
3
- const priorContext = resolvedContextBlocks.length
4
- ? `## Prior context (read-only)\n\n${resolvedContextBlocks.map(b => b.content).join('\n\n---\n\n')}\n\n`
5
- : '';
6
- const userSourcesBlock = extras.userSources.length
7
- ? extras.userSources.map((s, i) => `${i}. ${s}`).join('\n')
8
- : '(none configured)';
9
- return `${priorContext}You are an external researcher. The caller wants to discover external ideas, sources, and practices relevant to their question; your job is to bring back substantive external material with citations.
10
-
11
- **Background:** ${input.background}
12
- **Research question:** ${input.researchQuestion}
13
-
14
- **User-described sources (free text — interpret each one):**
15
- ${userSourcesBlock}
16
-
17
- ${TRUST_BOUNDARY_USER_SOURCES_RESEARCH}
18
-
19
- ${strategyRuleResearch(extras.hasBrave)}
20
-
21
- ${TRUST_BOUNDARY_EXTERNAL_DATA_RESEARCH}
22
-
23
- ${QUERY_PHRASING_RESEARCH}
24
-
25
- ${EVIDENCE_RULE_RESEARCH}`;
26
- }
27
1
  export const researchBriefSlot = (input) => {
28
- const compiledPrompt = compileResearchPrompt(input, input.resolvedContextBlocks, {
29
- userSources: input.userSources,
30
- hasBrave: input.hasBrave,
31
- });
32
2
  return [{
33
- compiledPrompt,
3
+ researchQuestion: input.researchQuestion,
34
4
  contextBlockIds: input.contextBlockIds ?? [],
35
5
  }];
36
6
  };
@@ -1 +1 @@
1
- {"version":3,"file":"brief-slot.js","sourceRoot":"","sources":["../../../src/tools/research/brief-slot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"brief-slot.js","sourceRoot":"","sources":["../../../src/tools/research/brief-slot.ts"],"names":[],"mappings":"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"}
@@ -22,8 +22,8 @@ export const toolConfig = {
22
22
  agentType: 'complex',
23
23
  briefSlot: researchBriefSlot,
24
24
  buildTaskSpec: (brief, ctx, enriched) => ({
25
- prompt: brief.compiledPrompt,
26
- parallelTarget: brief.compiledPrompt,
25
+ prompt: `Research: ${brief.researchQuestion}`,
26
+ readTarget: `Research: ${brief.researchQuestion}`,
27
27
  agentType: 'complex',
28
28
  reviewPolicy: 'none',
29
29
  cwd: ctx.projectContext?.cwd ?? ctx.cwd,
@@ -1 +1 @@
1
- {"version":3,"file":"tool-config.js","sourceRoot":"","sources":["../../../src/tools/research/tool-config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C,OAAO,EAAE,oBAAoB,EAAuB,MAAM,wDAAwD,CAAC;AACnH,OAAO,EAAE,wBAAwB,EAAE,MAAM,gDAAgD,CAAC;AAC1F,OAAO,EAAE,iBAAiB,EAAkD,MAAM,iBAAiB,CAAC;AACpG,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAIjE,MAAM,UAAU,gBAAgB,CAAC,QAA6B;IAC5D,QAAQ,CAAC,QAAQ,CAAC;QAChB,SAAS,EAAE,UAAU;QACrB,UAAU,EAAE,MAAM;QAClB,QAAQ,EAAE,WAAW;QACrB,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,GAAqE;IAC1F,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE,WAAW;IACrB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,iBAAiB;IAC5B,aAAa,EAAE,CAAC,KAAoB,EAAE,GAAqB,EAAE,QAAgC,EAAE,EAAE,CAAC,CAAC;QACjG,MAAM,EAAE,KAAK,CAAC,cAAc;QAC5B,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,SAAS,EAAE,SAAkB;QAC7B,YAAY,EAAE,MAAe;QAC7B,GAAG,EAAE,GAAG,CAAC,cAAc,EAAE,GAAG,IAAI,GAAG,CAAC,GAAG;QACvC,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,KAAK,EAAE,MAAe;QACtB,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,IAAI,uBAAuB;QACpE,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,aAAa,IAAI,UAAU;QAC/D,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,SAAS;QACrC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;YACb,QAAQ,EAAE;gBACR,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;gBAC3C,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,WAAW,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;gBAC9C,qBAAqB,EAAE,CAAC,QAAQ,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;aAC3G;SACF,CAAC,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;IACF,YAAY,EAAE,oBAAoB;IAClC,gBAAgB,EAAE,wBAAwB;CAC3C,CAAC"}
1
+ {"version":3,"file":"tool-config.js","sourceRoot":"","sources":["../../../src/tools/research/tool-config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C,OAAO,EAAE,oBAAoB,EAAuB,MAAM,wDAAwD,CAAC;AACnH,OAAO,EAAE,wBAAwB,EAAE,MAAM,gDAAgD,CAAC;AAC1F,OAAO,EAAE,iBAAiB,EAAkD,MAAM,iBAAiB,CAAC;AACpG,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAIjE,MAAM,UAAU,gBAAgB,CAAC,QAA6B;IAC5D,QAAQ,CAAC,QAAQ,CAAC;QAChB,SAAS,EAAE,UAAU;QACrB,UAAU,EAAE,MAAM;QAClB,QAAQ,EAAE,WAAW;QACrB,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,GAAqE;IAC1F,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE,WAAW;IACrB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,iBAAiB;IAC5B,aAAa,EAAE,CAAC,KAAoB,EAAE,GAAqB,EAAE,QAAgC,EAAE,EAAE,CAAC,CAAC;QACjG,MAAM,EAAE,aAAa,KAAK,CAAC,gBAAgB,EAAE;QAC7C,UAAU,EAAE,aAAa,KAAK,CAAC,gBAAgB,EAAE;QACjD,SAAS,EAAE,SAAkB;QAC7B,YAAY,EAAE,MAAe;QAC7B,GAAG,EAAE,GAAG,CAAC,cAAc,EAAE,GAAG,IAAI,GAAG,CAAC,GAAG;QACvC,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,KAAK,EAAE,MAAe;QACtB,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,IAAI,uBAAuB;QACpE,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,aAAa,IAAI,UAAU;QAC/D,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,SAAS;QACrC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;YACb,QAAQ,EAAE;gBACR,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;gBAC3C,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,WAAW,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;gBAC9C,qBAAqB,EAAE,CAAC,QAAQ,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;aAC3G;SACF,CAAC,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;IACF,YAAY,EAAE,oBAAoB;IAClC,gBAAgB,EAAE,wBAAwB;CAC3C,CAAC"}
@@ -6,10 +6,6 @@ export interface TwoTurnDeps {
6
6
  runOrchestrator: (plan: QueryPlan) => Promise<EvidencePack>;
7
7
  researchQuestion: string;
8
8
  background?: string;
9
- contextBlocks: Array<{
10
- id: string;
11
- content: string;
12
- }>;
13
9
  }
14
10
  export interface TwoTurnResult {
15
11
  plan: QueryPlan;
@@ -1 +1 @@
1
- {"version":3,"file":"two-turn-driver.d.ts","sourceRoot":"","sources":["../../../src/tools/research/two-turn-driver.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAkB,KAAK,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAIpE,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAY,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACzC,eAAe,EAAI,CAAC,IAAI,EAAE,SAAS,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IAC9D,gBAAgB,EAAG,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAQ,MAAM,CAAC;IAC1B,aAAa,EAAM,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC3D;AAMD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAY,SAAS,CAAC;IAC1B,IAAI,EAAY,YAAY,CAAC;IAC7B,WAAW,EAAK,UAAU,CAAC;CAC5B;AAYD,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAyBhF"}
1
+ {"version":3,"file":"two-turn-driver.d.ts","sourceRoot":"","sources":["../../../src/tools/research/two-turn-driver.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAkB,KAAK,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAIpE,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAY,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACzC,eAAe,EAAI,CAAC,IAAI,EAAE,SAAS,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IAC9D,gBAAgB,EAAG,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAQ,MAAM,CAAC;CAC3B;AAMD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAY,SAAS,CAAC;IAC1B,IAAI,EAAY,YAAY,CAAC;IAC7B,WAAW,EAAK,UAAU,CAAC;CAC5B;AAYD,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAyBhF"}
@@ -1 +1 @@
1
- {"version":3,"file":"two-turn-driver.js","sourceRoot":"","sources":["../../../src/tools/research/two-turn-driver.ts"],"names":[],"mappings":"AAAA,EAAE;AACF,uEAAuE;AACvE,2EAA2E;AAC3E,wEAAwE;AACxE,sBAAsB;AAGtB,OAAO,EAAE,cAAc,EAAkB,MAAM,8BAA8B,CAAC;AAG9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAoBzD,SAAS,QAAQ,CAAC,IAAY;IAC5B,IAAI,CAAC;QACH,qEAAqE;QACrE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACxF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;IACrD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAG,CAAW,CAAC,OAAO,EAAE,CAAC;IAClD,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAiB;IACtD,UAAU;IACV,MAAM,WAAW,GAAG,sBAAsB,CAAC;QACzC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;QACvC,UAAU,EAAQ,IAAI,CAAC,UAAU;KAClC,CAAC,CAAC;IACH,+DAA+D;IAC/D,IAAI,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACvD,IAAI,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAE1C,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,6CAA6C;QAC7C,MAAM,WAAW,GAAG,mDAAmD,MAAM,CAAC,GAAG,OAAO,WAAW,EAAE,CAAC;QACtG,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACnD,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,0BAA0B,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IAEzB,UAAU;IACV,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAE9C,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AACrC,CAAC"}
1
+ {"version":3,"file":"two-turn-driver.js","sourceRoot":"","sources":["../../../src/tools/research/two-turn-driver.ts"],"names":[],"mappings":"AAAA,EAAE;AACF,uEAAuE;AACvE,2EAA2E;AAC3E,wEAAwE;AACxE,sBAAsB;AAGtB,OAAO,EAAE,cAAc,EAAkB,MAAM,8BAA8B,CAAC;AAG9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAmBzD,SAAS,QAAQ,CAAC,IAAY;IAC5B,IAAI,CAAC;QACH,qEAAqE;QACrE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACxF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;IACrD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAG,CAAW,CAAC,OAAO,EAAE,CAAC;IAClD,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAiB;IACtD,UAAU;IACV,MAAM,WAAW,GAAG,sBAAsB,CAAC;QACzC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;QACvC,UAAU,EAAQ,IAAI,CAAC,UAAU;KAClC,CAAC,CAAC;IACH,+DAA+D;IAC/D,IAAI,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACvD,IAAI,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAE1C,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,6CAA6C;QAC7C,MAAM,WAAW,GAAG,mDAAmD,MAAM,CAAC,GAAG,OAAO,WAAW,EAAE,CAAC;QACtG,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACnD,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,0BAA0B,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IAEzB,UAAU;IACV,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAE9C,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AACrC,CAAC"}
@@ -31,20 +31,20 @@ export declare const outputSchema: z.ZodObject<{
31
31
  reason: z.ZodString;
32
32
  }, z.core.$strip>]>;
33
33
  specReviewVerdict: z.ZodOptional<z.ZodEnum<{
34
+ error: "error";
34
35
  approved: "approved";
35
36
  concerns: "concerns";
36
37
  changes_required: "changes_required";
37
38
  annotated: "annotated";
38
- error: "error";
39
39
  skipped: "skipped";
40
40
  not_applicable: "not_applicable";
41
41
  }>>;
42
42
  qualityReviewVerdict: z.ZodOptional<z.ZodEnum<{
43
+ error: "error";
43
44
  approved: "approved";
44
45
  concerns: "concerns";
45
46
  changes_required: "changes_required";
46
47
  annotated: "annotated";
47
- error: "error";
48
48
  skipped: "skipped";
49
49
  not_applicable: "not_applicable";
50
50
  }>>;
@@ -1,7 +1,7 @@
1
1
  import { inputSchema } from './schema.js';
2
2
  import { retryBriefSlot } from './brief-slot.js';
3
- import { retryReportSchema } from '../../reporting/report-parser-slots/retry-report.js';
4
- import { retryHeadlineTemplate } from '../../reporting/headline-templates/retry.js';
3
+ import { noStructuredReportSchema } from '../../reporting/report-parser-slots/no-structured-report.js';
4
+ import { makeFindingsHeadlineTemplate } from '../../reporting/findings-headline.js';
5
5
  import { notApplicable } from '../../reporting/not-applicable.js';
6
6
  export function registerRetry(registry) {
7
7
  registry.register({
@@ -41,8 +41,8 @@ export const toolConfig = {
41
41
  autoCommit: origTask?.autoCommit ?? false,
42
42
  };
43
43
  },
44
- reportSchema: retryReportSchema,
45
- headlineTemplate: retryHeadlineTemplate,
44
+ reportSchema: noStructuredReportSchema,
45
+ headlineTemplate: makeFindingsHeadlineTemplate('retry', 'high'),
46
46
  postProcessEnvelope: (envelope, ctx) => {
47
47
  const results = (Array.isArray(envelope.results) ? envelope.results : []);
48
48
  const total = results.length;
@@ -1 +1 @@
1
- {"version":3,"file":"tool-config.js","sourceRoot":"","sources":["../../../src/tools/retry/tool-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-config.js","sourceRoot":"","sources":["../../../src/tools/retry/tool-config.ts"],"names":[],"mappings":"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"}
@@ -41,18 +41,6 @@ export declare const SCOPE_RULE_REVIEW: string;
41
41
  * scan for before pressing merge.
42
42
  */
43
43
  export declare const CODE_REVIEW_FAILURE_MODES: string;
44
- /**
45
- * Counter-balance to the SEVERITY_LADDER's anti-inflation hint.
46
- *
47
- * The shared severity ladder ends with "Workers commonly inflate —
48
- * resist the urge." That bias is correct in the limit (no, the missing
49
- * comma is not critical) but produces UNDER-finding when combined with
50
- * a thin per-tool rubric. For code review specifically, the typical
51
- * failure is missing the cross-file ripple or test gap because the
52
- * worker only looked at the diff in the named file. This block tells
53
- * the worker that under-finding is the more common review failure.
54
- */
55
- export declare const THOROUGHNESS_REMINDER_REVIEW: string;
56
44
  export declare const ANNOTATOR_AWARENESS_REVIEW: string;
57
45
  import { type CriterionEntry } from '../criteria-types.js';
58
46
  /** Structured per-criterion array for parallel-criteria fan-out. */
@@ -1 +1 @@
1
- {"version":3,"file":"implementer-criteria.d.ts","sourceRoot":"","sources":["../../../src/tools/review/implementer-criteria.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,QAmB3B,CAAC;AAEb,eAAO,MAAM,oBAAoB,QAQrB,CAAC;AAEb,eAAO,MAAM,iBAAiB,QAOlB,CAAC;AAEb;;;;;;;;GAQG;AACH,eAAO,MAAM,yBAAyB,QAmB1B,CAAC;AAEb;;;;;;;;;;GAUG;AACH,eAAO,MAAM,4BAA4B,QAW7B,CAAC;AAEb,eAAO,MAAM,0BAA0B,QAO3B,CAAC;AAEb,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE1E,oEAAoE;AACpE,eAAO,MAAM,eAAe,EAAE,SAAS,cAAc,EAA6C,CAAC"}
1
+ {"version":3,"file":"implementer-criteria.d.ts","sourceRoot":"","sources":["../../../src/tools/review/implementer-criteria.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,QAmB3B,CAAC;AAEb,eAAO,MAAM,oBAAoB,QAQrB,CAAC;AAEb,eAAO,MAAM,iBAAiB,QAOlB,CAAC;AAEb;;;;;;;;GAQG;AACH,eAAO,MAAM,yBAAyB,QAmB1B,CAAC;AAEb,eAAO,MAAM,0BAA0B,QAO3B,CAAC;AAEb,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE1E,oEAAoE;AACpE,eAAO,MAAM,eAAe,EAAE,SAAS,cAAc,EAA6C,CAAC"}
@@ -94,29 +94,6 @@ export const CODE_REVIEW_FAILURE_MODES = [
94
94
  '- medium: a real issue worth fixing soon: test gap on a non-trivial change, race condition with low contention, performance regression on a non-hot path, missing edge case on an unlikely input.',
95
95
  '- low: stylistic / naming / dead-code / minor-refactor opportunity. Does not change merge safety.',
96
96
  ].join('\n');
97
- /**
98
- * Counter-balance to the SEVERITY_LADDER's anti-inflation hint.
99
- *
100
- * The shared severity ladder ends with "Workers commonly inflate —
101
- * resist the urge." That bias is correct in the limit (no, the missing
102
- * comma is not critical) but produces UNDER-finding when combined with
103
- * a thin per-tool rubric. For code review specifically, the typical
104
- * failure is missing the cross-file ripple or test gap because the
105
- * worker only looked at the diff in the named file. This block tells
106
- * the worker that under-finding is the more common review failure.
107
- */
108
- export const THOROUGHNESS_REMINDER_REVIEW = [
109
- 'Thoroughness expectation for code reviews:',
110
- '- For non-trivial diffs (>30 changed lines OR a public symbol changed), 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."',
111
- '- The SEVERITY_LADDER warns against inflation. That warning is calibrated — but the typical UNDER-finding in code review is missing the cross-file ripple or test gap because the worker only looked at the diff in the named file. Apply the failure-mode taxonomy thoroughly first; THEN calibrate severity downward where the impact is small.',
112
- '- Do not invent findings to hit a quota. But if you have applied all 10 failure modes and still have only stylistic nits, double-check categories 1, 2, 4, and 10 (test gap, cross-file ripple, missing edge case, implicit-contract assumption) — these are the ones reviewers most often miss on first pass and the ones most likely to ship a regression.',
113
- '',
114
- 'Cross-file pass (REQUIRED when the named files change a public symbol — exported function, exported type, route handler, or wire-schema field):',
115
- '- Make ONE explicit pass: identify the changed public symbols, grep for their call sites in the rest of the repo, and check whether each call site is consistent with the new signature/return-shape/contract.',
116
- '- For each (changed symbol, call site) pair, ask: does the call site as currently written still work after this change?',
117
- '- Worked example. A diff in `src/foo.ts` renames `getUserById(id)` to `getUserById(id, opts)` and makes `opts` required. The grep finds 3 call sites in `src/handlers/auth.ts`, `src/handlers/billing.ts`, `tests/integration/users.test.ts`. None pass `opts`. Flag this as HIGH (or CRITICAL if `auth.ts` would no-op silently rather than error). The fact that `src/foo.ts` looks clean in isolation is exactly the kind of false-clean that ships regressions.',
118
- '- Most reviewers miss findings of this shape on first pass because they only read the named files. The cross-file pass forces the grep.',
119
- ].join('\n');
120
97
  export const ANNOTATOR_AWARENESS_REVIEW = [
121
98
  'After your output, an annotator validates each finding against this code-review rubric:',
122
99
  '- Is the finding within the requested focus area (or universally applicable: security, performance, correctness apply to every review)?',
@@ -1 +1 @@
1
- {"version":3,"file":"implementer-criteria.js","sourceRoot":"","sources":["../../../src/tools/review/implementer-criteria.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,yBAAyB;IACzB,6LAA6L;IAC7L,EAAE;IACF,iIAAiI;IACjI,sFAAsF;IACtF,oHAAoH;IACpH,qGAAqG;IACrG,oHAAoH;IACpH,yGAAyG;IACzG,iEAAiE;IACjE,oGAAoG;IACpG,4GAA4G;IAC5G,+GAA+G;IAC/G,qGAAqG;IACrG,EAAE;IACF,mOAAmO;IACnO,EAAE;IACF,2OAA2O;CAC5O,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,kDAAkD;IAClD,4EAA4E;IAC5E,0GAA0G;IAC1G,0WAA0W;IAC1W,8MAA8M;IAC9M,iNAAiN;IACjN,sIAAsI;CACvI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,QAAQ;IACR,sGAAsG;IACtG,0QAA0Q;IAC1Q,yLAAyL;IACzL,wMAAwM;IACxM,0OAA0O;CAC3O,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,oOAAoO;IACpO,EAAE;IACF,+PAA+P;IAC/P,+OAA+O;IAC/O,uSAAuS;IACvS,yMAAyM;IACzM,8NAA8N;IAC9N,+LAA+L;IAC/L,sMAAsM;IACtM,gRAAgR;IAChR,oQAAoQ;IACpQ,kQAAkQ;IAClQ,EAAE;IACF,wCAAwC;IACxC,oNAAoN;IACpN,2NAA2N;IAC3N,mMAAmM;IACnM,mGAAmG;CACpG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,4CAA4C;IAC5C,+OAA+O;IAC/O,mVAAmV;IACnV,8VAA8V;IAC9V,EAAE;IACF,iJAAiJ;IACjJ,gNAAgN;IAChN,yHAAyH;IACzH,qcAAqc;IACrc,yIAAyI;CAC1I,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,yFAAyF;IACzF,yIAAyI;IACzI,6HAA6H;IAC7H,gIAAgI;IAChI,sJAAsJ;IACtJ,gSAAgS;CACjS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,OAAO,EAAE,aAAa,EAAuB,MAAM,sBAAsB,CAAC;AAE1E,oEAAoE;AACpE,MAAM,CAAC,MAAM,eAAe,GAA8B,aAAa,CAAC,yBAAyB,CAAC,CAAC"}
1
+ {"version":3,"file":"implementer-criteria.js","sourceRoot":"","sources":["../../../src/tools/review/implementer-criteria.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,yBAAyB;IACzB,6LAA6L;IAC7L,EAAE;IACF,iIAAiI;IACjI,sFAAsF;IACtF,oHAAoH;IACpH,qGAAqG;IACrG,oHAAoH;IACpH,yGAAyG;IACzG,iEAAiE;IACjE,oGAAoG;IACpG,4GAA4G;IAC5G,+GAA+G;IAC/G,qGAAqG;IACrG,EAAE;IACF,mOAAmO;IACnO,EAAE;IACF,2OAA2O;CAC5O,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,kDAAkD;IAClD,4EAA4E;IAC5E,0GAA0G;IAC1G,0WAA0W;IAC1W,8MAA8M;IAC9M,iNAAiN;IACjN,sIAAsI;CACvI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,QAAQ;IACR,sGAAsG;IACtG,0QAA0Q;IAC1Q,yLAAyL;IACzL,wMAAwM;IACxM,0OAA0O;CAC3O,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,oOAAoO;IACpO,EAAE;IACF,+PAA+P;IAC/P,+OAA+O;IAC/O,uSAAuS;IACvS,yMAAyM;IACzM,8NAA8N;IAC9N,+LAA+L;IAC/L,sMAAsM;IACtM,gRAAgR;IAChR,oQAAoQ;IACpQ,kQAAkQ;IAClQ,EAAE;IACF,wCAAwC;IACxC,oNAAoN;IACpN,2NAA2N;IAC3N,mMAAmM;IACnM,mGAAmG;CACpG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,yFAAyF;IACzF,yIAAyI;IACzI,6HAA6H;IAC7H,gIAAgI;IAChI,sJAAsJ;IACtJ,gSAAgS;CACjS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,OAAO,EAAE,aAAa,EAAuB,MAAM,sBAAsB,CAAC;AAE1E,oEAAoE;AACpE,MAAM,CAAC,MAAM,eAAe,GAA8B,aAAa,CAAC,yBAAyB,CAAC,CAAC"}
@@ -41,20 +41,20 @@ export declare const outputSchema: z.ZodObject<{
41
41
  reason: z.ZodString;
42
42
  }, z.core.$strip>]>;
43
43
  specReviewVerdict: z.ZodOptional<z.ZodEnum<{
44
+ error: "error";
44
45
  approved: "approved";
45
46
  concerns: "concerns";
46
47
  changes_required: "changes_required";
47
48
  annotated: "annotated";
48
- error: "error";
49
49
  skipped: "skipped";
50
50
  not_applicable: "not_applicable";
51
51
  }>>;
52
52
  qualityReviewVerdict: z.ZodOptional<z.ZodEnum<{
53
+ error: "error";
53
54
  approved: "approved";
54
55
  concerns: "concerns";
55
56
  changes_required: "changes_required";
56
57
  annotated: "annotated";
57
- error: "error";
58
58
  skipped: "skipped";
59
59
  not_applicable: "not_applicable";
60
60
  }>>;
@@ -1,6 +1,6 @@
1
1
  import { REVIEW_PURPOSE_ORIENTATION, EVIDENCE_RULE_REVIEW, SCOPE_RULE_REVIEW, ANNOTATOR_AWARENESS_REVIEW, REVIEW_CRITERIA, } from './implementer-criteria.js';
2
2
  // Copied verbatim from ROUTE_SEMANTICS.review in
3
- // packages/core/src/lifecycle/parallel-criteria-routes.ts (removed in Task 8).
3
+ // packages/core/src/lifecycle/read-route-criteria.ts (removed in Task 8).
4
4
  const SEMANTICS_DEFAULT = {
5
5
  goalLine: 'Find ALL issues of THIS specific kind in the diff / source above.',
6
6
  emptyOutcomeLine: 'If none exist, respond with the literal text "No findings for this criterion." — that is a fully valid outcome. Do NOT pad to avoid returning empty.',
@@ -1 +1 @@
1
- {"version":3,"file":"subtypes.js","sourceRoot":"","sources":["../../../src/tools/review/subtypes.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,0BAA0B,EAAE,oBAAoB,EAAE,iBAAiB,EACnE,0BAA0B,EAAE,eAAe,GAC5C,MAAM,2BAA2B,CAAC;AAInC,iDAAiD;AACjD,+EAA+E;AAC/E,MAAM,iBAAiB,GAAmB;IACxC,QAAQ,EAAE,mEAAmE;IAC7E,gBAAgB,EAAE,sJAAsJ;IACxK,uBAAuB,EAAE,mOAAmO;IAC5P,gBAAgB,EAAE;QAChB,QAAQ,EAAE,8BAA8B;QACxC,IAAI,EAAE,yCAAyC;QAC/C,MAAM,EAAE,2BAA2B;QACnC,GAAG,EAAE,OAAO;KACb;IACD,kBAAkB,EAAE,KAAK;IACzB,aAAa,EAAE,CAAC,OAAO,EAAE,OAAO,CAAU;CAC3C,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAA+C;IACzE,OAAO,EAAE;QACP,QAAQ,EAAE,eAAe;QACzB,WAAW,EAAE,0BAA0B;QACvC,YAAY,EAAE,oBAAoB;QAClC,SAAS,EAAE,iBAAiB;QAC5B,kBAAkB,EAAE,0BAA0B;QAC9C,SAAS,EAAE,iBAAiB;KAC7B;CACF,CAAC"}
1
+ {"version":3,"file":"subtypes.js","sourceRoot":"","sources":["../../../src/tools/review/subtypes.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,0BAA0B,EAAE,oBAAoB,EAAE,iBAAiB,EACnE,0BAA0B,EAAE,eAAe,GAC5C,MAAM,2BAA2B,CAAC;AAInC,iDAAiD;AACjD,0EAA0E;AAC1E,MAAM,iBAAiB,GAAmB;IACxC,QAAQ,EAAE,mEAAmE;IAC7E,gBAAgB,EAAE,sJAAsJ;IACxK,uBAAuB,EAAE,mOAAmO;IAC5P,gBAAgB,EAAE;QAChB,QAAQ,EAAE,8BAA8B;QACxC,IAAI,EAAE,yCAAyC;QAC/C,MAAM,EAAE,2BAA2B;QACnC,GAAG,EAAE,OAAO;KACb;IACD,kBAAkB,EAAE,KAAK;IACzB,aAAa,EAAE,CAAC,OAAO,EAAE,OAAO,CAAU;CAC3C,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAA+C;IACzE,OAAO,EAAE;QACP,QAAQ,EAAE,eAAe;QACzB,WAAW,EAAE,0BAA0B;QACvC,YAAY,EAAE,oBAAoB;QAClC,SAAS,EAAE,iBAAiB;QAC5B,kBAAkB,EAAE,0BAA0B;QAC9C,SAAS,EAAE,iBAAiB;KAC7B;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tool-config.d.ts","sourceRoot":"","sources":["../../../src/tools/review/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,EAAmB,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAcpE,wBAAgB,cAAc,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAYlE;AA2GD,eAAO,MAAM,UAAU,EAAE,UAAU,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CA2C9D,CAAC"}
1
+ {"version":3,"file":"tool-config.d.ts","sourceRoot":"","sources":["../../../src/tools/review/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,EAAmB,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAKpE,wBAAgB,cAAc,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAYlE;AAsCD,eAAO,MAAM,UAAU,EAAE,UAAU,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAyC9D,CAAC"}
@@ -1,10 +1,8 @@
1
1
  import { inputSchema } from './schema.js';
2
2
  import { reviewBriefSlot } from './brief-slot.js';
3
- import { reviewReportSchema } from '../../reporting/report-parser-slots/review-report.js';
4
- import { reviewHeadlineTemplate } from '../../reporting/headline-templates/review.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 { REVIEW_PURPOSE_ORIENTATION, EVIDENCE_RULE_REVIEW, SCOPE_RULE_REVIEW, ANNOTATOR_AWARENESS_REVIEW, CODE_REVIEW_FAILURE_MODES, THOROUGHNESS_REMINDER_REVIEW, } from './implementer-criteria.js';
8
6
  export function registerReview(registry) {
9
7
  registry.register({
10
8
  routeName: 'review',
@@ -48,84 +46,15 @@ function resolveReviewDoneCondition(focus, hasContextBlocks) {
48
46
  }
49
47
  return hasContextBlocks ? base + DELTA_REVIEW_SUFFIX : base;
50
48
  }
51
- function buildReviewPrompt(brief) {
52
- const { code, filePaths, focus, hasContextBlocks, filePath } = brief;
53
- const parts = ['Review this code:'];
54
- if (filePath) {
55
- parts.push(`Read and analyze this file:\n- ${filePath}`);
56
- }
57
- else {
58
- if (code)
59
- parts.push(`\`\`\`\n${code}\n\`\`\``);
60
- if (filePaths && filePaths.length > 0) {
61
- parts.push(`Read and analyze these files:\n${filePaths.map(p => `- ${p}`).join('\n')}`);
62
- }
63
- if (focus && focus.length > 0)
64
- parts.push(`Focus areas: ${focus.join(', ')}.`);
65
- }
66
- // Tool sweep #11: emit format spec unconditionally (pre-fix the
67
- // DELTA branch dropped it, breaking annotator parse on delta runs).
68
- if (hasContextBlocks) {
69
- parts.push('A prior review is in the context above. **Omit** addressed findings, **include** still-present ones (mark "unfixed from prior review"), **include** any new findings, and end with a **Fixed** summary.');
70
- }
71
- parts.push(FINDING_FORMAT_INSTRUCTIONS);
72
- return parts.join('\n\n');
73
- }
74
- const FINDING_FORMAT_INSTRUCTIONS = [
75
- // Orientation goes FIRST — the worker needs to know why this review
76
- // exists (pre-merge gate, your verdict is authoritative, missing a
77
- // regression here ships) before reading the format spec / taxonomy /
78
- // evidence rules. Without it, workers do line-by-line proofreading and
79
- // miss cross-file ripples and test gaps.
80
- REVIEW_PURPOSE_ORIENTATION,
81
- '',
82
- 'Produce a narrative code review. Use this EXACT per-finding format — both the structured reviewer and the deterministic fallback extract from this same format:',
83
- '',
84
- '## Finding 1: <one-line title>',
85
- '- Severity: critical | high | medium | low',
86
- '- Location: file:line',
87
- '- Issue: one-paragraph explanation',
88
- '- Suggestion: one-line fix recommendation',
89
- '',
90
- '## Finding 2: <one-line title>',
91
- '- Severity: ...',
92
- '- ...',
93
- '',
94
- 'Rules:',
95
- '- Each finding heading MUST start with "## Finding N: " (h2, "Finding ", number, colon, title) — number sequentially from 1.',
96
- '- Severity / Location / Issue / Suggestion bullets are on their own lines with the labels exactly as shown.',
97
- '- If you found no issues, say "No findings." in plain prose and emit zero `## Finding N:` blocks.',
98
- '',
99
- SEVERITY_LADDER,
100
- '',
101
- // Code-review failure-mode taxonomy. Without this block, workers
102
- // calibrated on line-by-line proofreading miss the cross-file ripple,
103
- // test gap, and implicit-contract findings that actually block merges.
104
- CODE_REVIEW_FAILURE_MODES,
105
- '',
106
- // Counter-balances the SEVERITY_LADDER's anti-inflation hint and
107
- // includes the cross-file pass with worked example.
108
- THOROUGHNESS_REMINDER_REVIEW,
109
- '',
110
- EVIDENCE_RULE_REVIEW,
111
- '',
112
- SCOPE_RULE_REVIEW,
113
- '',
114
- ANNOTATOR_AWARENESS_REVIEW,
115
- ].join('\n');
116
49
  export const toolConfig = {
117
50
  name: 'review',
118
51
  category: 'read_only',
119
52
  agentType: 'complex',
120
53
  briefSlot: reviewBriefSlot,
121
54
  buildTaskSpec: (brief, ctx) => {
122
- const prompt = buildReviewPrompt(brief);
123
55
  // Propagate filePaths + mainModel onto the TaskSpec so the headline
124
56
  // composer can name the file in clean-review headlines and so the
125
- // wire telemetry carries main_model attribution. Audit does this
126
- // already; review missed it, producing "[ok] review completed"
127
- // (no path) even when filePaths was provided. (Tool sweep #2 — gap surfaced
128
- // by review batch c24353f6 on packages/core/src/reporting/severity.ts.)
57
+ // wire telemetry carries main_model attribution.
129
58
  const filePaths = brief.filePath
130
59
  ? [brief.filePath]
131
60
  : (brief.filePaths && brief.filePaths.length > 0 ? brief.filePaths : undefined);
@@ -137,11 +66,13 @@ export const toolConfig = {
137
66
  }
138
67
  if (brief.focus)
139
68
  targetParts.push(`Focus: ${Array.isArray(brief.focus) ? brief.focus.join(', ') : brief.focus}`);
69
+ // The read-route dispatcher builds the worker prefix from this pure target
70
+ // + FINDING_FORMAT_SHARED + review RouteSemantics; `prompt` mirrors it
71
+ // (required field / telemetry, not the read-route worker input).
72
+ const target = targetParts.join('\n\n');
140
73
  return {
141
- prompt,
142
- // Pure user code/files for the parallel-criteria dispatcher's cached
143
- // prefix; bypasses the legacy ## Finding format spec embedded in `prompt`.
144
- parallelTarget: targetParts.join('\n\n'),
74
+ prompt: target,
75
+ readTarget: target,
145
76
  agentType: 'complex',
146
77
  reviewPolicy: 'none',
147
78
  briefQualityPolicy: 'off',
@@ -156,7 +87,7 @@ export const toolConfig = {
156
87
  autoCommit: false,
157
88
  };
158
89
  },
159
- reportSchema: reviewReportSchema,
160
- headlineTemplate: reviewHeadlineTemplate,
90
+ reportSchema: noStructuredReportSchema,
91
+ headlineTemplate: makeFindingsHeadlineTemplate('review', 'blocking'),
161
92
  };
162
93
  //# sourceMappingURL=tool-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-config.js","sourceRoot":"","sources":["../../../src/tools/review/tool-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-config.js","sourceRoot":"","sources":["../../../src/tools/review/tool-config.ts"],"names":[],"mappings":"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"}
@@ -34,20 +34,20 @@ export declare function buildOutputEnvelopeSchema(resultItemSchema?: z.ZodTypeAn
34
34
  reason: z.ZodString;
35
35
  }, z.core.$strip>]>;
36
36
  specReviewVerdict: z.ZodOptional<z.ZodEnum<{
37
+ error: "error";
37
38
  approved: "approved";
38
39
  concerns: "concerns";
39
40
  changes_required: "changes_required";
40
41
  annotated: "annotated";
41
- error: "error";
42
42
  skipped: "skipped";
43
43
  not_applicable: "not_applicable";
44
44
  }>>;
45
45
  qualityReviewVerdict: z.ZodOptional<z.ZodEnum<{
46
+ error: "error";
46
47
  approved: "approved";
47
48
  concerns: "concerns";
48
49
  changes_required: "changes_required";
49
50
  annotated: "annotated";
50
- error: "error";
51
51
  skipped: "skipped";
52
52
  not_applicable: "not_applicable";
53
53
  }>>;
@@ -1,12 +1,10 @@
1
1
  import { type IncomingMessage, type ServerResponse } from 'node:http';
2
2
  /**
3
- * Spec C1 HTTPListener — bind loopback, accept HTTP. Supports a graceful
4
- * shutdown state where new requests are rejected with 503 while in-flight
5
- * async batches complete and TelemetryUploader drains.
6
- *
7
- * The listener owns the socket lifecycle. Routing and request pipeline are
8
- * separate (RouteDispatcher + RequestPipeline). Wire them together in the
9
- * server boot, not here.
3
+ * HTTPListener — owns the HTTP socket lifecycle: bind a loopback interface,
4
+ * accept connections, close on shutdown. Routing, draining policy, auth, and
5
+ * request parsing live elsewhere (RouteDispatcher + request-pipeline). The
6
+ * listener's only request-time responsibility is to convert a rejected handler
7
+ * promise into a 500 (when the response is still writable) or a log line.
10
8
  */
11
9
  export type HTTPRequestHandler = (req: IncomingMessage, res: ServerResponse) => void | Promise<void>;
12
10
  export interface HTTPListenerOptions {
@@ -14,24 +12,17 @@ export interface HTTPListenerOptions {
14
12
  bind: string;
15
13
  /** Listening port. Pass 0 for ephemeral allocation. */
16
14
  port: number;
17
- /** Application handler. Called for every accepted request unless draining. */
15
+ /** Application handler. Called for every accepted request. */
18
16
  handler: HTTPRequestHandler;
19
17
  }
20
18
  export declare class HTTPListener {
21
19
  private readonly options;
22
20
  private server;
23
- private draining;
24
- private startedAt;
25
21
  constructor(options: HTTPListenerOptions);
26
22
  start(): Promise<{
27
23
  port: number;
28
24
  address: string | null;
29
25
  }>;
30
- /** Begin graceful shutdown — new requests get 503; existing ones complete. */
31
- beginDraining(): void;
32
- isDraining(): boolean;
33
- /** Wall-clock ms when the listener started. Zero if never started. */
34
- getStartedAt(): number;
35
26
  stop(): Promise<void>;
36
27
  }
37
28
  //# sourceMappingURL=http-listener.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"http-listener.d.ts","sourceRoot":"","sources":["../../src/transport/http-listener.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,eAAe,EAAE,KAAK,cAAc,EAAe,MAAM,WAAW,CAAC;AAEjG;;;;;;;;GAQG;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAErG,MAAM,WAAW,mBAAmB;IAClC,oFAAoF;IACpF,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,OAAO,EAAE,kBAAkB,CAAC;CAC7B;AAED,qBAAa,YAAY;IAKX,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJpC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,SAAS,CAAK;gBAEO,OAAO,EAAE,mBAAmB;IAEnD,KAAK,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAsBhE,8EAA8E;IAC9E,aAAa,IAAI,IAAI;IAIrB,UAAU,IAAI,OAAO;IAIrB,sEAAsE;IACtE,YAAY,IAAI,MAAM;IAIhB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAM5B"}
1
+ {"version":3,"file":"http-listener.d.ts","sourceRoot":"","sources":["../../src/transport/http-listener.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,eAAe,EAAE,KAAK,cAAc,EAAe,MAAM,WAAW,CAAC;AAEjG;;;;;;GAMG;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAErG,MAAM,WAAW,mBAAmB;IAClC,oFAAoF;IACpF,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,8DAA8D;IAC9D,OAAO,EAAE,kBAAkB,CAAC;CAC7B;AAED,qBAAa,YAAY;IAGX,OAAO,CAAC,QAAQ,CAAC,OAAO;IAFpC,OAAO,CAAC,MAAM,CAAuB;gBAER,OAAO,EAAE,mBAAmB;IAEnD,KAAK,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAuB1D,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAM5B"}
@@ -2,43 +2,32 @@ import { createServer } from 'node:http';
2
2
  export class HTTPListener {
3
3
  options;
4
4
  server = null;
5
- draining = false;
6
- startedAt = 0;
7
5
  constructor(options) {
8
6
  this.options = options;
9
7
  }
10
8
  async start() {
11
9
  const server = createServer((req, res) => {
12
- if (this.draining) {
13
- res.statusCode = 503;
14
- res.setHeader('Retry-After', '5');
15
- res.setHeader('Content-Type', 'application/json');
16
- res.end(JSON.stringify({ error: { code: 'shutting_down', message: 'Server is shutting down' } }));
17
- return;
18
- }
19
- void this.options.handler(req, res);
10
+ Promise.resolve(this.options.handler(req, res)).catch((err) => {
11
+ const msg = err instanceof Error ? (err.stack ?? err.message) : String(err);
12
+ process.stderr.write(`[mmagent] listener handler rejected: ${msg}\n`);
13
+ if (!res.headersSent) {
14
+ res.writeHead(500, { 'content-type': 'application/json' });
15
+ res.end(JSON.stringify({ error: { code: 'internal_error', message: 'Internal server error' } }));
16
+ }
17
+ else if (!res.writableEnded) {
18
+ res.end();
19
+ }
20
+ });
20
21
  });
21
22
  await new Promise((resolve) => {
22
23
  server.listen(this.options.port, this.options.bind, resolve);
23
24
  });
24
25
  this.server = server;
25
- this.startedAt = Date.now();
26
26
  const addr = server.address();
27
27
  const port = typeof addr === 'object' && addr !== null ? addr.port : this.options.port;
28
28
  const address = typeof addr === 'object' && addr !== null ? (addr.address ?? null) : null;
29
29
  return { port, address };
30
30
  }
31
- /** Begin graceful shutdown — new requests get 503; existing ones complete. */
32
- beginDraining() {
33
- this.draining = true;
34
- }
35
- isDraining() {
36
- return this.draining;
37
- }
38
- /** Wall-clock ms when the listener started. Zero if never started. */
39
- getStartedAt() {
40
- return this.startedAt;
41
- }
42
31
  async stop() {
43
32
  if (!this.server)
44
33
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"http-listener.js","sourceRoot":"","sources":["../../src/transport/http-listener.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA0D,MAAM,WAAW,CAAC;AAuBjG,MAAM,OAAO,YAAY;IAKM;IAJrB,MAAM,GAAkB,IAAI,CAAC;IAC7B,QAAQ,GAAG,KAAK,CAAC;IACjB,SAAS,GAAG,CAAC,CAAC;IAEtB,YAA6B,OAA4B;QAA5B,YAAO,GAAP,OAAO,CAAqB;IAAG,CAAC;IAE7D,KAAK,CAAC,KAAK;QACT,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACvC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;gBACrB,GAAG,CAAC,SAAS,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;gBAClC,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;gBAClD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,yBAAyB,EAAE,EAAE,CAAC,CAAC,CAAC;gBAClG,OAAO;YACT,CAAC;YACD,KAAK,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QACH,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAClC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC,CAAE,IAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QAC7G,MAAM,OAAO,GAAG,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAE,IAA6B,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACpH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,8EAA8E;IAC9E,aAAa;QACX,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,sEAAsE;IACtE,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACpE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC;CACF"}
1
+ {"version":3,"file":"http-listener.js","sourceRoot":"","sources":["../../src/transport/http-listener.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA0D,MAAM,WAAW,CAAC;AAqBjG,MAAM,OAAO,YAAY;IAGM;IAFrB,MAAM,GAAkB,IAAI,CAAC;IAErC,YAA6B,OAA4B;QAA5B,YAAO,GAAP,OAAO,CAAqB;IAAG,CAAC;IAE7D,KAAK,CAAC,KAAK;QACT,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACvC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;gBACrE,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC5E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wCAAwC,GAAG,IAAI,CAAC,CAAC;gBACtE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;oBACrB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;oBAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,uBAAuB,EAAE,EAAE,CAAC,CAAC,CAAC;gBACnG,CAAC;qBAAM,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;oBAC9B,GAAG,CAAC,GAAG,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAClC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC,CAAE,IAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QAC7G,MAAM,OAAO,GAAG,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAE,IAA6B,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACpH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACpE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
1
  export { HTTPListener, type HTTPListenerOptions, type HTTPRequestHandler } from './http-listener.js';
2
- export { RouteDispatcher, type RouteMetadata, type ResponseShape } from './route-dispatcher.js';
2
+ export { RouteDispatcher } from './route-dispatcher.js';
3
3
  export { isLoopbackAddress, shouldRejectNonLoopback, isAllowedHostHeader, } from './loopback-enforcer.js';
4
4
  //# sourceMappingURL=index.d.ts.map