@zhixuan92/multi-model-agent-core 4.1.0 → 4.2.1

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 (104) hide show
  1. package/dist/bounded-execution/index.d.ts +2 -0
  2. package/dist/bounded-execution/index.d.ts.map +1 -1
  3. package/dist/bounded-execution/index.js +2 -0
  4. package/dist/bounded-execution/index.js.map +1 -1
  5. package/dist/bounded-execution/safety-max-turns.d.ts +17 -0
  6. package/dist/bounded-execution/safety-max-turns.d.ts.map +1 -0
  7. package/dist/bounded-execution/safety-max-turns.js +17 -0
  8. package/dist/bounded-execution/safety-max-turns.js.map +1 -0
  9. package/dist/bounded-execution/stall-watchdog.d.ts +16 -0
  10. package/dist/bounded-execution/stall-watchdog.d.ts.map +1 -0
  11. package/dist/bounded-execution/stall-watchdog.js +69 -0
  12. package/dist/bounded-execution/stall-watchdog.js.map +1 -0
  13. package/dist/lifecycle/handlers/execution-context-builder.d.ts.map +1 -1
  14. package/dist/lifecycle/handlers/execution-context-builder.js +2 -1
  15. package/dist/lifecycle/handlers/execution-context-builder.js.map +1 -1
  16. package/dist/lifecycle/handlers/quality-chain-handlers.d.ts.map +1 -1
  17. package/dist/lifecycle/handlers/quality-chain-handlers.js +10 -1
  18. package/dist/lifecycle/handlers/quality-chain-handlers.js.map +1 -1
  19. package/dist/lifecycle/parallel-criteria-dispatcher.d.ts +62 -0
  20. package/dist/lifecycle/parallel-criteria-dispatcher.d.ts.map +1 -0
  21. package/dist/lifecycle/parallel-criteria-dispatcher.js +328 -0
  22. package/dist/lifecycle/parallel-criteria-dispatcher.js.map +1 -0
  23. package/dist/lifecycle/parallel-criteria-routes.d.ts +16 -0
  24. package/dist/lifecycle/parallel-criteria-routes.d.ts.map +1 -0
  25. package/dist/lifecycle/parallel-criteria-routes.js +147 -0
  26. package/dist/lifecycle/parallel-criteria-routes.js.map +1 -0
  27. package/dist/lifecycle/task-runner.d.ts.map +1 -1
  28. package/dist/lifecycle/task-runner.js +268 -97
  29. package/dist/lifecycle/task-runner.js.map +1 -1
  30. package/dist/providers/anthropic-messages-adapter.d.ts.map +1 -1
  31. package/dist/providers/anthropic-messages-adapter.js +8 -1
  32. package/dist/providers/anthropic-messages-adapter.js.map +1 -1
  33. package/dist/providers/provider-factory.d.ts.map +1 -1
  34. package/dist/providers/provider-factory.js +2 -1
  35. package/dist/providers/provider-factory.js.map +1 -1
  36. package/dist/providers/runner-adapter.d.ts +8 -0
  37. package/dist/providers/runner-adapter.d.ts.map +1 -1
  38. package/dist/providers/runner-shell-types.d.ts +7 -0
  39. package/dist/providers/runner-shell-types.d.ts.map +1 -1
  40. package/dist/providers/runner-shell.d.ts +51 -1
  41. package/dist/providers/runner-shell.d.ts.map +1 -1
  42. package/dist/providers/runner-shell.js +130 -0
  43. package/dist/providers/runner-shell.js.map +1 -1
  44. package/dist/review/annotator-engine.d.ts +7 -1
  45. package/dist/review/annotator-engine.d.ts.map +1 -1
  46. package/dist/review/annotator-engine.js +88 -15
  47. package/dist/review/annotator-engine.js.map +1 -1
  48. package/dist/review/annotator-prompt-builder.d.ts.map +1 -1
  49. package/dist/review/annotator-prompt-builder.js +10 -2
  50. package/dist/review/annotator-prompt-builder.js.map +1 -1
  51. package/dist/review/reviewer-engine.d.ts.map +1 -1
  52. package/dist/review/reviewer-engine.js +4 -3
  53. package/dist/review/reviewer-engine.js.map +1 -1
  54. package/dist/review/templates/annotator-shared.d.ts +8 -1
  55. package/dist/review/templates/annotator-shared.d.ts.map +1 -1
  56. package/dist/review/templates/annotator-shared.js.map +1 -1
  57. package/dist/tools/audit/implementer-criteria.d.ts +5 -0
  58. package/dist/tools/audit/implementer-criteria.d.ts.map +1 -1
  59. package/dist/tools/audit/implementer-criteria.js +5 -0
  60. package/dist/tools/audit/implementer-criteria.js.map +1 -1
  61. package/dist/tools/audit/tool-config.d.ts.map +1 -1
  62. package/dist/tools/audit/tool-config.js +28 -15
  63. package/dist/tools/audit/tool-config.js.map +1 -1
  64. package/dist/tools/criteria-types.d.ts +27 -0
  65. package/dist/tools/criteria-types.d.ts.map +1 -0
  66. package/dist/tools/criteria-types.js +25 -0
  67. package/dist/tools/criteria-types.js.map +1 -0
  68. package/dist/tools/debug/implementer-criteria.d.ts +3 -0
  69. package/dist/tools/debug/implementer-criteria.d.ts.map +1 -1
  70. package/dist/tools/debug/implementer-criteria.js +14 -15
  71. package/dist/tools/debug/implementer-criteria.js.map +1 -1
  72. package/dist/tools/debug/tool-config.d.ts.map +1 -1
  73. package/dist/tools/debug/tool-config.js +9 -0
  74. package/dist/tools/debug/tool-config.js.map +1 -1
  75. package/dist/tools/investigate/implementer-criteria.d.ts +3 -0
  76. package/dist/tools/investigate/implementer-criteria.d.ts.map +1 -1
  77. package/dist/tools/investigate/implementer-criteria.js +20 -14
  78. package/dist/tools/investigate/implementer-criteria.js.map +1 -1
  79. package/dist/tools/investigate/tool-config.d.ts.map +1 -1
  80. package/dist/tools/investigate/tool-config.js +5 -0
  81. package/dist/tools/investigate/tool-config.js.map +1 -1
  82. package/dist/tools/parallel-criteria-prompt.d.ts +106 -0
  83. package/dist/tools/parallel-criteria-prompt.d.ts.map +1 -0
  84. package/dist/tools/parallel-criteria-prompt.js +86 -0
  85. package/dist/tools/parallel-criteria-prompt.js.map +1 -0
  86. package/dist/tools/review/implementer-criteria.d.ts +3 -0
  87. package/dist/tools/review/implementer-criteria.d.ts.map +1 -1
  88. package/dist/tools/review/implementer-criteria.js +3 -0
  89. package/dist/tools/review/implementer-criteria.js.map +1 -1
  90. package/dist/tools/review/tool-config.d.ts.map +1 -1
  91. package/dist/tools/review/tool-config.js +11 -0
  92. package/dist/tools/review/tool-config.js.map +1 -1
  93. package/dist/tools/verify/implementer-criteria.d.ts +3 -0
  94. package/dist/tools/verify/implementer-criteria.d.ts.map +1 -1
  95. package/dist/tools/verify/implementer-criteria.js +14 -13
  96. package/dist/tools/verify/implementer-criteria.js.map +1 -1
  97. package/dist/tools/verify/tool-config.d.ts.map +1 -1
  98. package/dist/tools/verify/tool-config.js +4 -0
  99. package/dist/tools/verify/tool-config.js.map +1 -1
  100. package/dist/types/run-result.d.ts +18 -0
  101. package/dist/types/run-result.d.ts.map +1 -1
  102. package/dist/types/task-spec.d.ts +11 -0
  103. package/dist/types/task-spec.d.ts.map +1 -1
  104. package/package.json +1 -1
@@ -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"}
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 +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;AAEtD,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;AAID,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA6CD,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,cAAc,EAAE,CA0B7D;AAgFD,eAAO,MAAM,UAAU,EAAE,UAAU,CAAC,KAAK,EAAE,cAAc,EAAE,WAAW,CAyBrE,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;AAEtD,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;AAID,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA6CD,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,cAAc,EAAE,CA0B7D;AAgFD,eAAO,MAAM,UAAU,EAAE,UAAU,CAAC,KAAK,EAAE,cAAc,EAAE,WAAW,CAqCrE,CAAC"}
@@ -159,21 +159,34 @@ export const toolConfig = {
159
159
  category: 'read_only',
160
160
  agentType: 'complex',
161
161
  briefSlot: auditBriefSlot,
162
- buildTaskSpec: (brief, ctx) => ({
163
- prompt: buildPrompt(brief),
164
- agentType: 'complex',
165
- reviewPolicy: 'quality_only',
166
- briefQualityPolicy: 'off',
167
- done: brief.done,
168
- tools: ctx.config.defaults?.tools ?? 'full',
169
- timeoutMs: ctx.config.defaults?.timeoutMs ?? DEFAULT_TASK_TIMEOUT_MS,
170
- maxCostUSD: ctx.config.defaults?.maxCostUSD ?? 10,
171
- sandboxPolicy: ctx.config.defaults?.sandboxPolicy ?? 'cwd-only',
172
- cwd: ctx.projectContext?.cwd ?? ctx.cwd,
173
- contextBlockIds: brief.contextBlockIds,
174
- filePaths: brief.filePaths.length > 0 ? brief.filePaths : undefined,
175
- mainModel: ctx.mainModel,
176
- }),
162
+ buildTaskSpec: (brief, ctx) => {
163
+ // For the parallel-criteria dispatcher's cached prefix, hand it the
164
+ // pure document/file targets — not buildPrompt's full spec which
165
+ // embeds the legacy ## Finding format and would compete with the
166
+ // dispatcher's own format spec.
167
+ const targetParts = [`Audit for ${brief.auditTypeText} issues.`];
168
+ if (brief.document)
169
+ targetParts.push(`Document:\n\n${brief.document}`);
170
+ if (brief.filePaths.length > 0) {
171
+ targetParts.push(`Target files:\n${brief.filePaths.map(p => `- ${p}`).join('\n')}`);
172
+ }
173
+ return {
174
+ prompt: buildPrompt(brief),
175
+ parallelTarget: targetParts.join('\n\n'),
176
+ agentType: 'complex',
177
+ reviewPolicy: 'quality_only',
178
+ briefQualityPolicy: 'off',
179
+ done: brief.done,
180
+ tools: ctx.config.defaults?.tools ?? 'full',
181
+ timeoutMs: ctx.config.defaults?.timeoutMs ?? DEFAULT_TASK_TIMEOUT_MS,
182
+ maxCostUSD: ctx.config.defaults?.maxCostUSD ?? 10,
183
+ sandboxPolicy: ctx.config.defaults?.sandboxPolicy ?? 'cwd-only',
184
+ cwd: ctx.projectContext?.cwd ?? ctx.cwd,
185
+ contextBlockIds: brief.contextBlockIds,
186
+ filePaths: brief.filePaths.length > 0 ? brief.filePaths : undefined,
187
+ mainModel: ctx.mainModel,
188
+ };
189
+ },
177
190
  reportSchema: auditReportSchema,
178
191
  headlineTemplate: auditHeadlineTemplate,
179
192
  reviewTemplates: {
@@ -1 +1 @@
1
- {"version":3,"file":"tool-config.js","sourceRoot":"","sources":["../../../src/tools/audit/tool-config.ts"],"names":[],"mappings":"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"}
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,oBAAoB,EAAE,MAAM,gDAAgD,CAAC;AACtF,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,4CAA4C,CAAC;AAC7E,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;AAcD;;;;;;;;;;;;GAYG;AACH,MAAM,qBAAqB,GAA2B;IACpD,OAAO,EACL,+3BAA+3B;IACj4B,QAAQ,EACN,+mBAA+mB;IACjnB,WAAW,EACT,+pBAA+pB;CAClqB,CAAC;AAEF,MAAM,kBAAkB,GAAG,+PAA+P,CAAC;AAE3R,SAAS,oBAAoB,CAAC,SAAyC;IACrE,sEAAsE;IACtE,oEAAoE;IACpE,kEAAkE;IAClE,MAAM,CAAC,GAAG,SAAS,IAAI,SAAS,CAAC;IACjC,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,qGAAqG,CAAC;IAClI,OAAO,WAAW,CAAC,QAAQ,CAAC;AAC9B,CAAC;AAED,SAAS,oBAAoB,CAAC,SAAyC,EAAE,gBAAyB;IAChG,MAAM,CAAC,GAAG,SAAS,IAAI,SAAS,CAAC;IACjC,MAAM,IAAI,GAAG,qBAAqB,CAAC,CAAC,CAAC,IAAI,qBAAqB,CAAC,OAAO,CAAC;IACvE,OAAO,gBAAgB,CAAC,CAAC,CAAC,IAAI,GAAG,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7D,CAAC;AAED,SAAS,UAAU,CAAC,KAAyB;IAC3C,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAY;IACzC,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;IAClG,MAAM,aAAa,GAAG,oBAAoB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC5D,MAAM,IAAI,GAAG,oBAAoB,CAAC,KAAK,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;IACrE,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE5E,0DAA0D;IAC1D,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QAC1D,OAAO,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC3B,aAAa;YACb,IAAI;YACJ,SAAS,EAAE,CAAC,EAAE,CAAC;YACf,gBAAgB;YAChB,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,WAAW,EAAE,EAAE;SAChB,CAAC,CAAC,CAAC;IACN,CAAC;IAED,OAAO,CAAC;YACN,aAAa;YACb,IAAI;YACJ,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,SAAS,EAAE,UAAU;YACrB,gBAAgB;YAChB,eAAe,EAAE,KAAK,CAAC,eAAe;SACvC,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,KAAqB;IACxC,MAAM,KAAK,GAAa,CAAC,aAAa,KAAK,CAAC,aAAa,UAAU,CAAC,CAAC;IAErE,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,GAAmD;IACxE,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,aAAa,UAAU,CAAC,CAAC;QAC3E,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,cAAc;YAC5B,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,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,IAAI,EAAE;YACjD,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;SACb,CAAC;IAChB,CAAC;IACD,YAAY,EAAE,iBAAiB;IAC/B,gBAAgB,EAAE,qBAAqB;IACvC,eAAe,EAAE;QACf,SAAS,EAAE,oBAAoB;KAChC;CACF,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Structured criterion shape used by all five read-only routes for
3
+ * parallel-criteria fan-out. Each entry in the route's *_CRITERIA constant
4
+ * becomes one sub-worker; the per-criterion description is the variable
5
+ * suffix in the sub-worker's user message (the cached prefix carries
6
+ * everything else).
7
+ */
8
+ export interface CriterionEntry {
9
+ /** "1", "2", ..., matches the position in the existing *_FAILURE_MODES list. */
10
+ id: string;
11
+ /** Short label, e.g. "RECOMMENDATION-COHERENCE". */
12
+ title: string;
13
+ /** Verbatim prose from the existing failure-mode description, sans the
14
+ * leading "N. TITLE — " prefix. */
15
+ description: string;
16
+ }
17
+ /**
18
+ * Parses a `*_FAILURE_MODES` joined string back into structured criterion
19
+ * entries. Each route's implementer-criteria.ts already authors its
20
+ * taxonomy as a numbered list (`'1. TITLE — description...'`); this lets
21
+ * the parallel-criteria dispatcher iterate without duplicating the prose.
22
+ *
23
+ * Expected line shape per criterion: `^N. TITLE — description$`
24
+ * (em-dash with surrounding spaces; title may contain hyphens or slashes).
25
+ */
26
+ export declare function parseCriteria(failureModesText: string): CriterionEntry[];
27
+ //# sourceMappingURL=criteria-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"criteria-types.d.ts","sourceRoot":"","sources":["../../src/tools/criteria-types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B,gFAAgF;IAChF,EAAE,EAAE,MAAM,CAAC;IACX,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;IACd;wCACoC;IACpC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,gBAAgB,EAAE,MAAM,GAAG,cAAc,EAAE,CAaxE"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Parses a `*_FAILURE_MODES` joined string back into structured criterion
3
+ * entries. Each route's implementer-criteria.ts already authors its
4
+ * taxonomy as a numbered list (`'1. TITLE — description...'`); this lets
5
+ * the parallel-criteria dispatcher iterate without duplicating the prose.
6
+ *
7
+ * Expected line shape per criterion: `^N. TITLE — description$`
8
+ * (em-dash with surrounding spaces; title may contain hyphens or slashes).
9
+ */
10
+ export function parseCriteria(failureModesText) {
11
+ const out = [];
12
+ const lines = failureModesText.split('\n');
13
+ // Regex: leading digits + dot + space, capture title up to ' — ' separator,
14
+ // then capture rest of line as description.
15
+ const re = /^(\d+)\.\s+([^—]+?)\s+—\s+(.+)$/;
16
+ for (const line of lines) {
17
+ const m = re.exec(line);
18
+ if (!m)
19
+ continue;
20
+ const [, id, title, description] = m;
21
+ out.push({ id, title: title.trim(), description: description.trim() });
22
+ }
23
+ return out;
24
+ }
25
+ //# sourceMappingURL=criteria-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"criteria-types.js","sourceRoot":"","sources":["../../src/tools/criteria-types.ts"],"names":[],"mappings":"AAiBA;;;;;;;;GAQG;AACH,MAAM,UAAU,aAAa,CAAC,gBAAwB;IACpD,MAAM,GAAG,GAAqB,EAAE,CAAC;IACjC,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3C,4EAA4E;IAC5E,4CAA4C;IAC5C,MAAM,EAAE,GAAG,iCAAiC,CAAC;IAC7C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC,CAAC;YAAE,SAAS;QACjB,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;QACrC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -49,4 +49,7 @@ export declare const DEBUG_FAILURE_MODES: string;
49
49
  */
50
50
  export declare const THOROUGHNESS_REMINDER_DEBUG: string;
51
51
  export declare const ANNOTATOR_AWARENESS_DEBUG: string;
52
+ import { type CriterionEntry } from '../criteria-types.js';
53
+ /** Structured per-criterion array for parallel-criteria fan-out. */
54
+ export declare const DEBUG_CRITERIA: readonly CriterionEntry[];
52
55
  //# sourceMappingURL=implementer-criteria.d.ts.map
@@ -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,QAkBpB,CAAC;AAEb;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B,QAa5B,CAAC;AAEb,eAAO,MAAM,yBAAyB,QAS1B,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;;;;;;;;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"}
@@ -67,23 +67,19 @@ export const SCOPE_RULE_DEBUG = [
67
67
  * a careful debugger would consciously check for.
68
68
  */
69
69
  export const DEBUG_FAILURE_MODES = [
70
- 'Patterns to consciously check for. Apply on EVERY debug investigation:',
70
+ 'Five parallel angles for finding the root cause. EACH angle is a distinct perspective; from your assigned angle, propose one or more candidate root-cause hypotheses (or contributing factors). Severity = strength of the evidence chain from THIS angle.',
71
71
  '',
72
- '1. SYMPTOM-NOT-CAUSEthe suspicious line you first hit is where the failure SURFACES, not where it is CAUSED. Trace upstream until you find a state that, if changed, prevents the failure. The cited cause must be upstream of the cited symptom in the call/data flow.',
73
- '2. SCAPEGOAT FILEthe failing test or the throwing line is in a file that is just the messenger. The actual defect lives in a file the failure passes through. Read the call stack / data path and place the finding at the source, not the sink.',
74
- '3. INCOMPLETE TRACE — the chain from symptom to cause has unfilled gaps ("...somewhere in the middleware..."). Each step in the trace must be a file:line citation or an observed value. Gaps mean the maintainer redoes the investigation.',
75
- '4. UNTESTED HYPOTHESIS — the proposed fix has no falsifier. Always state HOW the maintainer can verify the fix worked: which assertion now passes, which output is now right, which command no longer errors.',
76
- '5. PARALLEL CAUSESmore than one independent root cause is plausible. If the evidence is consistent with two unrelated mechanisms, name both as separate findings. Do NOT collapse them.',
77
- '6. PRE-EXISTING-VS-NEW ENTANGLEMENT — multiple bugs are entangled in one failure. Separate them. Identify which one the caller asked about; note the others under a separate section.',
78
- '7. WRONG FIX SCOPE — the proposed fix is broader than the cause requires (a refactor when a one-line fix would do) or narrower than the cause requires (a band-aid that masks the bug). Match fix scope to the cause depth.',
79
- '8. MISSING REPRODUCTION — there is no command, input, or state the maintainer can use to trigger the failure. Without reproduction the fix cannot be verified. If the caller did not provide one, infer it and state it explicitly.',
80
- '9. CONFIDENCE OVERSTATEMENT — the chain has gaps but the finding is filed at `high` severity. Calibrate severity to evidence strength: gaps in the chain = lower severity OR explicit "this is the most likely candidate; verify by X" caveat.',
72
+ '1. SYMPTOM-LOCATION ANGLE start from where the failure surfaces (the throwing line, the failing assertion, the visible bad output). Trace UPSTREAM through the call/data path until you find a state that, if changed, prevents the failure. Each step must be a file:line citation or an observed value. Your candidate cause is the upstream state-change site you identify.',
73
+ '2. RECENT-CHANGE ANGLEread git log / recent diffs on the involved files. Which lines changed in the last N commits? Which changes plausibly altered the behavior under question? Your candidate cause is a specific recent change that could have introduced the bug; cite the commit + the line.',
74
+ '3. TEST-FAILURE ANGLEread the failing test (or the test that would fail). What assertion fires, with what expected vs actual? Read the implementation it exercises and identify where the contract is broken. Your candidate cause is "the implementation does X but the test contract requires Y at <file:line>".',
75
+ '4. REPRODUCTION ANGLEwhat minimum input / state / config triggers the failure? If no reproduction exists in the bug report, infer one from the code: which entry point + arguments would land in the failing path? Your candidate cause is "the failure requires <state>; the bug is the code path that handles that state at <file:line>".',
76
+ '5. CONCURRENCY / CONFIGURATION ANGLE does the failure depend on timing, ordering, async-ness, env vars, feature flags, or runtime config? Look for shared state, locks, awaits between check-and-act, conditional code gated on env. Your candidate cause is the race / config dependency, or "no concurrency/config dependency suspected" with reasoning.',
81
77
  '',
82
- 'Severity calibration for debug:',
83
- '- critical: confirmed root cause where applying the proposed fix incorrectly would ship a regression (e.g. fix at the wrong layer that hides the bug).',
84
- '- high: confirmed root cause with full chain symptom cause reproduction falsifier. The maintainer can apply directly.',
85
- '- medium: plausible cause with most of the chain, one or two gaps the maintainer can fill. Mark gaps explicitly.',
86
- '- low: partial trace, multiple candidates, or hypothesis without sufficient evidence. Use sparingly most findings should be medium or high.',
78
+ 'Severity calibration for each candidate root cause:',
79
+ '- critical: confirmed root cause + reproducible evidence + concrete fix is implied. The maintainer can act now without re-investigation.',
80
+ '- high: strong root-cause hypothesis with traced upstream evidence (file:line citations along the call/data path), single chain, no inferred steps.',
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
+ '- low: possible contributing factor or partial trace; weak evidence but worth surfacing for the maintainer to consider against other angles\' candidates.',
87
83
  ].join('\n');
88
84
  /**
89
85
  * Counter-balance to the SEVERITY_LADDER's anti-inflation hint.
@@ -118,4 +114,7 @@ export const ANNOTATOR_AWARENESS_DEBUG = [
118
114
  '- Is severity calibrated to evidence strength (gaps in chain = lower severity, not the same severity with hand-waving)?',
119
115
  'Self-check before emitting. Findings that fail any check are downgraded or dropped — but partial-evidence hypotheses with explicit "the gap is here, verify by X" notes are FULLY VALID, do NOT downgrade them as "speculation". Debug is speculation narrowed by evidence; hand-waving is the failure mode, not careful gap-marking.',
120
116
  ].join('\n');
117
+ import { parseCriteria } from '../criteria-types.js';
118
+ /** Structured per-criterion array for parallel-criteria fan-out. */
119
+ export const DEBUG_CRITERIA = parseCriteria(DEBUG_FAILURE_MODES);
121
120
  //# sourceMappingURL=implementer-criteria.js.map
@@ -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,wEAAwE;IACxE,EAAE;IACF,4QAA4Q;IAC5Q,qPAAqP;IACrP,6OAA6O;IAC7O,+MAA+M;IAC/M,4LAA4L;IAC5L,uLAAuL;IACvL,6NAA6N;IAC7N,qOAAqO;IACrO,gPAAgP;IAChP,EAAE;IACF,iCAAiC;IACjC,wJAAwJ;IACxJ,6HAA6H;IAC7H,kHAAkH;IAClH,+IAA+I;CAChJ,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"}
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 +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;AAEzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAEvE,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAajG,wBAAgB,aAAa,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAYjE;AAsDD,eAAO,MAAM,UAAU,EAAE,UAAU,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,CAoCjE,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;AAEzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAEvE,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAajG,wBAAgB,aAAa,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAYjE;AAsDD,eAAO,MAAM,UAAU,EAAE,UAAU,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,CA2CjE,CAAC"}
@@ -85,8 +85,17 @@ export const toolConfig = {
85
85
  parts.push(fileSection);
86
86
  parts.push(FINDING_FORMAT_INSTRUCTIONS);
87
87
  const prompt = parts.join('\n\n');
88
+ const targetParts = [`Problem to debug:\n\n${brief.problem}`];
89
+ if (brief.context)
90
+ targetParts.push(`Context: ${brief.context}`);
91
+ if (brief.hypothesis)
92
+ targetParts.push(`Initial hypothesis: ${brief.hypothesis}`);
88
93
  return {
89
94
  prompt,
95
+ // Pure user problem statement for the parallel-criteria dispatcher's
96
+ // cached prefix; bypasses the legacy ## Finding format spec from
97
+ // FINDING_FORMAT_INSTRUCTIONS that's already embedded in `prompt`.
98
+ parallelTarget: targetParts.join('\n\n'),
90
99
  agentType: 'complex',
91
100
  reviewPolicy: 'quality_only',
92
101
  briefQualityPolicy: 'off',
@@ -1 +1 @@
1
- {"version":3,"file":"tool-config.js","sourceRoot":"","sources":["../../../src/tools/debug/tool-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-config.js","sourceRoot":"","sources":["../../../src/tools/debug/tool-config.ts"],"names":[],"mappings":"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"}
@@ -57,4 +57,7 @@ export declare const INVESTIGATE_FAILURE_MODES: string;
57
57
  */
58
58
  export declare const CONFIDENCE_REMINDER_INVESTIGATE: string;
59
59
  export declare const ANNOTATOR_AWARENESS_INVESTIGATE: string;
60
+ import { type CriterionEntry } from '../criteria-types.js';
61
+ /** Structured per-criterion array for parallel-criteria fan-out. */
62
+ export declare const INVESTIGATE_CRITERIA: readonly CriterionEntry[];
60
63
  //# sourceMappingURL=implementer-criteria.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"implementer-criteria.d.ts","sourceRoot":"","sources":["../../../src/tools/investigate/implementer-criteria.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,+BAA+B,QAahC,CAAC;AAEb,eAAO,MAAM,yBAAyB,QAO1B,CAAC;AAEb,eAAO,MAAM,sBAAsB,QAKvB,CAAC;AAEb;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,QAiB1B,CAAC;AAEb;;;;;;;;;GASG;AACH,eAAO,MAAM,+BAA+B,QAYhC,CAAC;AAEb,eAAO,MAAM,+BAA+B,QAShC,CAAC"}
1
+ {"version":3,"file":"implementer-criteria.d.ts","sourceRoot":"","sources":["../../../src/tools/investigate/implementer-criteria.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,+BAA+B,QAahC,CAAC;AAEb,eAAO,MAAM,yBAAyB,QAO1B,CAAC;AAEb,eAAO,MAAM,sBAAsB,QAKvB,CAAC;AAEb;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,QAoB1B,CAAC;AAEb;;;;;;;;;GASG;AACH,eAAO,MAAM,+BAA+B,QAYhC,CAAC;AAEb,eAAO,MAAM,+BAA+B,QAShC,CAAC;AAEb,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE1E,oEAAoE;AACpE,eAAO,MAAM,oBAAoB,EAAE,SAAS,cAAc,EAA6C,CAAC"}
@@ -70,22 +70,25 @@ export const SCOPE_RULE_INVESTIGATE = [
70
70
  * an investigation answer becomes a bug when the caller acts on it.
71
71
  */
72
72
  export const INVESTIGATE_FAILURE_MODES = [
73
- 'Patterns to consciously check for. Apply on EVERY investigation:',
73
+ 'Five parallel perspectives for ANSWERING the user\'s question. From your assigned perspective, propose one or more candidate answers (or sub-answers) to the question. Each finding is a candidate answer; severity = your confidence in this answer. Pay extra care to AVOID common citation-quality failures (no hallucinated file:line; no quoting from memory — always re-read).',
74
74
  '',
75
- '1. WRONG FILEa close-named file in a different package/module is cited instead of the actual one (e.g. `src/foo/utils.ts` when the real answer is in `src/bar/utils.ts`). When a name is ambiguous, list all matches and identify which one the question is about.',
76
- '2. STALE QUOTEthe cited content was at the cited line in your training data but the file has been refactored. Always re-read before quoting; do NOT quote from memory. If the file does not currently contain the quoted content, the citation is invalid.',
77
- '3. HALLUCINATED CITATIONa `file:line` that does not exist on disk. Verify each citation by actually reading the file at the cited line range. Hallucinated citations are the most caller-actionable failure mode the caller opens the file and finds nothing there.',
78
- '4. CONFIDENCE OVERSTATEMENTclaiming "high confidence" when the chain has gaps, when there are multiple plausible answers, or when the citation is partial. Confidence reflects EVIDENCE strength, not how certain you sound.',
79
- '5. CITATION GAPa load-bearing claim made without a `file:line`. Synthesis findings without per-link citations are hand-waves. The fix: add the citation, OR downgrade the claim to "I infer X from Y, Z; verify by re-reading <file>".',
80
- '6. QUESTION SHIFT — answered an adjacent question rather than the one asked. Re-read the question literally before writing the Summary. If the asked question is "where is X declared?" do not answer "where is X used?" without saying so.',
81
- '7. SYNTHESIS WITHOUT GROUNDING — combined facts into a conclusion that no single citation supports. Either: (a) cite each link explicitly, or (b) mark the conclusion as inference and lower confidence.',
82
- '8. ASSUMED-CURRENT-STATE — wrote answer from training-data assumption ("normally Foo is implemented this way") instead of the file currently on disk. The codebase may have diverged. Always read; never assume.',
75
+ '1. DIRECT-SYMBOL-TRACE PERSPECTIVEstart from the symbols/files named in the question (or directly implied by it). Read the named file(s) top-to-bottom, follow imports/calls/types step-by-step. Your candidate answer is the chain of file:line references that, when followed in order, mechanically resolves the question.',
76
+ '2. CALLER-ANALYSIS PERSPECTIVEgrep for callers/consumers of the symbols in the question. Who depends on this code? What do they pass / expect / assert? Your candidate answer comes from the contract the callers assume the question often resolves to "this code does X because callers depend on X".',
77
+ '3. TEST-DRIVEN PERSPECTIVEfind sibling tests for the symbols/files in question (test files often co-located or under tests/). Read what the tests assert about the behavior. Your candidate answer is "the tests show the intended behavior is X" backed by test name + assertion citation.',
78
+ '4. CROSS-FILE DEPENDENCY-MAP PERSPECTIVE what other modules participate in the data path / orchestration around the question? Map the boundary: which files import the named symbols, which configure them, which receive their output. Your candidate answer comes from the system-level picture — "the answer involves X handing off to Y, configured by Z".',
79
+ '5. DOCUMENTATION/COMMENT-LENS PERSPECTIVEread docstrings, README, design docs, in-code comments adjacent to the symbols. Sometimes the answer is stated in prose by the original author. Your candidate answer is the prose explanation, cited; cross-check it against current code (docs may be stale).',
83
80
  '',
84
- 'Confidence calibration for investigations:',
85
- '- high: every load-bearing claim has a file:line citation you read this session; the citation matches the question precisely; no plausible alternative answers were found in your search.',
86
- '- medium: most claims are cited; one or two links rely on inference from cited facts; alternative answers exist but were ruled out with evidence.',
87
- '- low: partial answer; significant gaps in the citation chain; the file system has answers you have not searched; or the question is broader than the time spent investigating.',
88
- '- Use `(none)` for Citations and `low` for Confidence ONLY when the question is genuinely project-level and no code evidence applies. Most "I think it works this way" answers should be `low` confidence with a partial citation, not zero citations.',
81
+ 'Confidence calibration for each candidate answer:',
82
+ '- critical: THE answer multiple grounded file:line citations from THIS perspective, no inferred steps in the chain. The user can act on this without re-verification.',
83
+ '- high: strong answer fully grounded with file:line, evidence chain has at most one inferred step. The user should sanity-check the inferred step.',
84
+ '- medium: likely / partial answer cited inference from this perspective; some gaps in the chain. Mark "verify by reading <file>" so the user knows where to confirm.',
85
+ '- low: candidate / weak answer minimal evidence from this perspective, presented as an alternative for the user to weigh against other perspectives\' answers. Better than silence silence loses information the merge annotator could rank.',
86
+ '',
87
+ 'Quality discipline (apply WITHIN your perspective, do not let it stop you from emitting):',
88
+ '- Always re-read files this session before quoting — never quote from memory.',
89
+ '- Verify every file:line citation actually exists on disk at that range.',
90
+ '- If your perspective produces multiple distinct candidate answers (e.g. caller-analysis surfaces two callers with conflicting expectations), emit BOTH as separate findings.',
91
+ '- Do not pad — but absent total impossibility, every perspective should produce at least one candidate (even low confidence). The merge annotator will dedup and rank.',
89
92
  ].join('\n');
90
93
  /**
91
94
  * Confidence-discipline reminder.
@@ -120,4 +123,7 @@ export const ANNOTATOR_AWARENESS_INVESTIGATE = [
120
123
  '- Is the answer to the asked question, not a shifted version of it?',
121
124
  'Self-check before emitting. Findings that fail any check are downgraded or dropped — but negative findings ("searched, not found") and inference-with-citations ("I infer X from Y:42, Z:18") are FULLY VALID. Do NOT downgrade negative findings for lacking a code quote, and do NOT downgrade inference-with-citations as "speculation" if the cited links are real.',
122
125
  ].join('\n');
126
+ import { parseCriteria } from '../criteria-types.js';
127
+ /** Structured per-criterion array for parallel-criteria fan-out. */
128
+ export const INVESTIGATE_CRITERIA = parseCriteria(INVESTIGATE_FAILURE_MODES);
123
129
  //# sourceMappingURL=implementer-criteria.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"implementer-criteria.js","sourceRoot":"","sources":["../../../src/tools/investigate/implementer-criteria.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC7C,gCAAgC;IAChC,2UAA2U;IAC3U,EAAE;IACF,0EAA0E;IAC1E,yHAAyH;IACzH,4GAA4G;IAC5G,wGAAwG;IACxG,gFAAgF;IAChF,EAAE;IACF,sMAAsM;IACtM,EAAE;IACF,yOAAyO;CAC1O,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,mDAAmD;IACnD,qNAAqN;IACrN,4JAA4J;IAC5J,wKAAwK;IACxK,2QAA2Q;IAC3Q,kJAAkJ;CACnJ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,QAAQ;IACR,2FAA2F;IAC3F,2KAA2K;IAC3K,oQAAoQ;CACrQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,kEAAkE;IAClE,EAAE;IACF,uQAAuQ;IACvQ,+PAA+P;IAC/P,0QAA0Q;IAC1Q,iOAAiO;IACjO,2OAA2O;IAC3O,6OAA6O;IAC7O,0MAA0M;IAC1M,kNAAkN;IAClN,EAAE;IACF,4CAA4C;IAC5C,2LAA2L;IAC3L,mJAAmJ;IACnJ,iLAAiL;IACjL,wPAAwP;CACzP,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC7C,iCAAiC;IACjC,kJAAkJ;IAClJ,iRAAiR;IACjR,sKAAsK;IACtK,sLAAsL;IACtL,EAAE;IACF,6DAA6D;IAC7D,kKAAkK;IAClK,oIAAoI;IACpI,qtBAAqtB;IACrtB,kJAAkJ;CACnJ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC7C,yFAAyF;IACzF,mFAAmF;IACnF,0FAA0F;IAC1F,+FAA+F;IAC/F,0DAA0D;IAC1D,2EAA2E;IAC3E,qEAAqE;IACrE,yWAAyW;CAC1W,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"implementer-criteria.js","sourceRoot":"","sources":["../../../src/tools/investigate/implementer-criteria.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC7C,gCAAgC;IAChC,2UAA2U;IAC3U,EAAE;IACF,0EAA0E;IAC1E,yHAAyH;IACzH,4GAA4G;IAC5G,wGAAwG;IACxG,gFAAgF;IAChF,EAAE;IACF,sMAAsM;IACtM,EAAE;IACF,yOAAyO;CAC1O,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,mDAAmD;IACnD,qNAAqN;IACrN,4JAA4J;IAC5J,wKAAwK;IACxK,2QAA2Q;IAC3Q,kJAAkJ;CACnJ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,QAAQ;IACR,2FAA2F;IAC3F,2KAA2K;IAC3K,oQAAoQ;CACrQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,sXAAsX;IACtX,EAAE;IACF,kUAAkU;IAClU,8SAA8S;IAC9S,kSAAkS;IAClS,kWAAkW;IAClW,6SAA6S;IAC7S,EAAE;IACF,mDAAmD;IACnD,yKAAyK;IACzK,sJAAsJ;IACtJ,wKAAwK;IACxK,kPAAkP;IAClP,EAAE;IACF,2FAA2F;IAC3F,+EAA+E;IAC/E,0EAA0E;IAC1E,+KAA+K;IAC/K,wKAAwK;CACzK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC7C,iCAAiC;IACjC,kJAAkJ;IAClJ,iRAAiR;IACjR,sKAAsK;IACtK,sLAAsL;IACtL,EAAE;IACF,6DAA6D;IAC7D,kKAAkK;IAClK,oIAAoI;IACpI,qtBAAqtB;IACrtB,kJAAkJ;CACnJ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC7C,yFAAyF;IACzF,mFAAmF;IACnF,0FAA0F;IAC1F,+FAA+F;IAC/F,0DAA0D;IAC1D,2EAA2E;IAC3E,qEAAqE;IACrE,yWAAyW;CAC1W,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,OAAO,EAAE,aAAa,EAAuB,MAAM,sBAAsB,CAAC;AAE1E,oEAAoE;AACpE,MAAM,CAAC,MAAM,oBAAoB,GAA8B,aAAa,CAAC,yBAAyB,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tool-config.d.ts","sourceRoot":"","sources":["../../../src/tools/investigate/tool-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAElF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAGvE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2DAA2D,CAAC;AAazG,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAYvE;AAKD,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,wBAAyB,SAAQ,KAAK;IACrD,qBAAqB,EAAE,oBAAoB,EAAE,CAAC;IAC9C,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,0BAA0B,EAAE,MAAM,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,gBAAgB;IAC/B,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;;;;;;OAUG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;CAC7B;AAkED,eAAO,MAAM,UAAU,EAAE,UAAU,CAAC,wBAAwB,EAAE,gBAAgB,EAAE,uBAAuB,CA2DtG,CAAC"}
1
+ {"version":3,"file":"tool-config.d.ts","sourceRoot":"","sources":["../../../src/tools/investigate/tool-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAElF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAGvE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2DAA2D,CAAC;AAazG,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAYvE;AAKD,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,wBAAyB,SAAQ,KAAK;IACrD,qBAAqB,EAAE,oBAAoB,EAAE,CAAC;IAC9C,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,0BAA0B,EAAE,MAAM,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,gBAAgB;IAC/B,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;;;;;;OAUG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;CAC7B;AAkED,eAAO,MAAM,UAAU,EAAE,UAAU,CAAC,wBAAwB,EAAE,gBAAgB,EAAE,uBAAuB,CAgEtG,CAAC"}
@@ -85,6 +85,11 @@ export const toolConfig = {
85
85
  },
86
86
  buildTaskSpec: (brief, ctx) => ({
87
87
  prompt: brief.compiledPrompt,
88
+ // Pure user question for the parallel-criteria dispatcher's cached
89
+ // prefix — avoids embedding the legacy ## Summary/## Citations format
90
+ // spec from compiledPrompt, which would compete with the per-sub-worker
91
+ // ## Finding N: format the dispatcher uses.
92
+ parallelTarget: `Question: ${brief.question}`,
88
93
  agentType: 'complex',
89
94
  reviewPolicy: 'quality_only',
90
95
  cwd: ctx.projectContext?.cwd ?? ctx.cwd,
@@ -1 +1 @@
1
- {"version":3,"file":"tool-config.js","sourceRoot":"","sources":["../../../src/tools/investigate/tool-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-config.js","sourceRoot":"","sources":["../../../src/tools/investigate/tool-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,106 @@
1
+ import type { CriterionEntry } from './criteria-types.js';
2
+ /**
3
+ * Per-route semantics for findings. Same wire shape (`## Finding N:`) and
4
+ * same severity tiers (critical / high / medium / low) across all five
5
+ * read-only routes — only the *meaning* of each tier and the per-sub-worker
6
+ * goal differ.
7
+ *
8
+ * Audit / review / debug: each finding = an issue. severity = impact.
9
+ * Verify: each finding = a verification verdict. severity = how decisive
10
+ * the FAIL signal is (or how strong the PASS evidence is).
11
+ * Investigate: each finding = a candidate answer (or sub-answer) to the
12
+ * user's question. severity = confidence in the answer.
13
+ */
14
+ export interface RouteSemantics {
15
+ /** One-line goal sentence injected at the top of the per-sub-worker
16
+ * assignment block. e.g. "find issues of THIS specific kind" (audit). */
17
+ goalLine: string;
18
+ /** What "no findings" means for this route, when the sub-worker has
19
+ * nothing to emit. Investigate's empty case is rare (we can almost
20
+ * always produce SOME candidate answer, even low-confidence). */
21
+ emptyOutcomeLine: string;
22
+ /** Per-tier severity meaning for THIS route. Replaces the generic
23
+ * SEVERITY_LADDER inside the cached prefix so the worker calibrates
24
+ * to the right semantic. Order: critical, high, medium, low. */
25
+ severityMeanings: {
26
+ critical: string;
27
+ high: string;
28
+ medium: string;
29
+ low: string;
30
+ };
31
+ /** One-paragraph clarifier of what a "finding" represents on this
32
+ * route. Written into the cached prefix above the format spec so
33
+ * the worker doesn't default to "find a problem" when the route
34
+ * semantic is "propose an answer" (investigate) or "report a
35
+ * verification verdict" (verify). */
36
+ findingMeaningParagraph: string;
37
+ /** Whether each sub-worker MUST emit at least one finding.
38
+ *
39
+ * - `false` (problem-finding routes — audit/review): "no findings
40
+ * for this criterion" is a valid honest result; the artifact may
41
+ * have no problems in the category.
42
+ * - `true` (answer-finding routes — debug/verify/investigate): the
43
+ * user asked a question; every parallel angle owes at least one
44
+ * contribution (even low-severity / low-confidence). The merge
45
+ * annotator dedups + ranks; soft signals are valuable, not noise.
46
+ */
47
+ mustEmitAtLeastOne: boolean;
48
+ }
49
+ /**
50
+ * Shared cached-prefix builder for parallel-criteria fan-out across the
51
+ * five read-only routes. The prefix carries everything that's identical
52
+ * across all N sub-workers + the cache-warmer call:
53
+ * - route-specific orientation, evidence rule, scope rule, annotator awareness
54
+ * - SEVERITY_LADDER (shared across routes)
55
+ * - finding-format spec (shared shape: `## Finding N:` blocks)
56
+ * - the full criterion taxonomy listed by id+title+description so each
57
+ * sub-worker knows what's NOT theirs
58
+ * - target content (inlined document and/or file contents pre-read by the
59
+ * dispatcher)
60
+ *
61
+ * The cache_control marker is attached at the adapter layer; this helper
62
+ * only assembles the text. The per-sub-worker user message (the variable
63
+ * suffix) is built by `buildReadOnlyCriterionSuffix` below.
64
+ *
65
+ * THOROUGHNESS_REMINDER_* / CONFIDENCE_REMINDER_* are intentionally OMITTED.
66
+ * They were calibrated for a single worker covering all categories; with
67
+ * one criterion per worker, that pressure backfires (workers invent weak
68
+ * findings to hit the implied quota when their criterion legitimately has
69
+ * zero matches in the artifact).
70
+ */
71
+ export interface CachedPrefixBlocks {
72
+ /** Route-specific orientation, e.g. AUDIT_PURPOSE_ORIENTATION. */
73
+ orientation: string;
74
+ /** Route-specific EVIDENCE_RULE_*. */
75
+ evidenceRule: string;
76
+ /** Route-specific SCOPE_RULE_*. */
77
+ scopeRule: string;
78
+ /** Route-specific ANNOTATOR_AWARENESS_*. */
79
+ annotatorAwareness: string;
80
+ /** Per-route finding format text. */
81
+ findingFormat: string;
82
+ /** The full criterion taxonomy in structured form. */
83
+ criteria: readonly CriterionEntry[];
84
+ /** Route-specific semantics for what a finding represents and what
85
+ * each severity tier means. */
86
+ semantics: RouteSemantics;
87
+ }
88
+ export interface CachedPrefixTarget {
89
+ /** Inlined document content, when present (audit). */
90
+ document?: string;
91
+ /** Map of file path → file contents pre-read by the dispatcher. */
92
+ preReadFiles?: Record<string, string>;
93
+ /** File paths declared by the request, even when their contents weren't
94
+ * pre-read (sub-worker may grep on demand). */
95
+ filePaths?: readonly string[];
96
+ }
97
+ export declare function buildReadOnlyCachedPrefix(blocks: CachedPrefixBlocks, target: CachedPrefixTarget): string;
98
+ /** Per-sub-worker user message: assigns ONE criterion. The semantics
99
+ * arg controls how the assignment is framed (find issues / answer
100
+ * question / verify criterion / find root cause / find quality issues
101
+ * in the prose).
102
+ *
103
+ * Same shape across all routes; only `goalLine` and `emptyOutcomeLine`
104
+ * differ per route. */
105
+ export declare function buildReadOnlyCriterionSuffix(semantics: RouteSemantics, criterion: CriterionEntry): string;
106
+ //# sourceMappingURL=parallel-criteria-prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parallel-criteria-prompt.d.ts","sourceRoot":"","sources":["../../src/tools/parallel-criteria-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,cAAc;IAC7B;8EAC0E;IAC1E,QAAQ,EAAE,MAAM,CAAC;IACjB;;sEAEkE;IAClE,gBAAgB,EAAE,MAAM,CAAC;IACzB;;qEAEiE;IACjE,gBAAgB,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAClF;;;;0CAIsC;IACtC,uBAAuB,EAAE,MAAM,CAAC;IAChC;;;;;;;;;OASG;IACH,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,kBAAkB;IACjC,kEAAkE;IAClE,WAAW,EAAE,MAAM,CAAC;IACpB,sCAAsC;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,mCAAmC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,kBAAkB,EAAE,MAAM,CAAC;IAC3B,qCAAqC;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,sDAAsD;IACtD,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAC;IACpC;oCACgC;IAChC,SAAS,EAAE,cAAc,CAAC;CAC3B;AAaD,MAAM,WAAW,kBAAkB;IACjC,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mEAAmE;IACnE,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC;oDACgD;IAChD,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/B;AAED,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,kBAAkB,EAC1B,MAAM,EAAE,kBAAkB,GACzB,MAAM,CAwCR;AAED;;;;;;wBAMwB;AACxB,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,cAAc,EACzB,SAAS,EAAE,cAAc,GACxB,MAAM,CA4BR"}