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

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 (186) hide show
  1. package/README.md +6 -6
  2. package/dist/config/schema.d.ts +1 -1
  3. package/dist/events/to-wire-record.d.ts.map +1 -1
  4. package/dist/events/to-wire-record.js +7 -0
  5. package/dist/events/to-wire-record.js.map +1 -1
  6. package/dist/events/wire-schema.d.ts +6 -6
  7. package/dist/index.d.ts +2 -18
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +0 -13
  10. package/dist/index.js.map +1 -1
  11. package/dist/lifecycle/handlers/read-route-implementer.d.ts +5 -0
  12. package/dist/lifecycle/handlers/read-route-implementer.d.ts.map +1 -1
  13. package/dist/lifecycle/handlers/read-route-implementer.js +1 -1
  14. package/dist/lifecycle/handlers/read-route-implementer.js.map +1 -1
  15. package/dist/lifecycle/handlers/review-stage.js +11 -1
  16. package/dist/lifecycle/handlers/review-stage.js.map +1 -1
  17. package/dist/lifecycle/perform-implementation.d.ts.map +1 -1
  18. package/dist/lifecycle/perform-implementation.js +37 -0
  19. package/dist/lifecycle/perform-implementation.js.map +1 -1
  20. package/dist/lifecycle/tool-config-types.d.ts +7 -1
  21. package/dist/lifecycle/tool-config-types.d.ts.map +1 -1
  22. package/dist/providers/claude-session.d.ts.map +1 -1
  23. package/dist/providers/claude-session.js +36 -2
  24. package/dist/providers/claude-session.js.map +1 -1
  25. package/dist/tools/audit/brief-slot.d.ts +15 -0
  26. package/dist/tools/audit/brief-slot.d.ts.map +1 -0
  27. package/dist/tools/audit/brief-slot.js +69 -0
  28. package/dist/tools/audit/brief-slot.js.map +1 -0
  29. package/dist/tools/audit/tool-config.d.ts +2 -14
  30. package/dist/tools/audit/tool-config.d.ts.map +1 -1
  31. package/dist/tools/audit/tool-config.js +1 -68
  32. package/dist/tools/audit/tool-config.js.map +1 -1
  33. package/dist/{intake/brief-compiler-slots/debug.d.ts → tools/debug/brief-slot.d.ts} +1 -1
  34. package/dist/tools/debug/brief-slot.d.ts.map +1 -0
  35. package/dist/{intake/brief-compiler-slots/debug.js → tools/debug/brief-slot.js} +1 -1
  36. package/dist/tools/debug/brief-slot.js.map +1 -0
  37. package/dist/tools/debug/tool-config.d.ts +1 -1
  38. package/dist/tools/debug/tool-config.d.ts.map +1 -1
  39. package/dist/tools/debug/tool-config.js +1 -1
  40. package/dist/tools/debug/tool-config.js.map +1 -1
  41. package/dist/tools/delegate/brief-slot.d.ts +13 -0
  42. package/dist/tools/delegate/brief-slot.d.ts.map +1 -0
  43. package/dist/{intake/brief-compiler-slots/delegate.js → tools/delegate/brief-slot.js} +12 -3
  44. package/dist/tools/delegate/brief-slot.js.map +1 -0
  45. package/dist/tools/delegate/schema.d.ts +1 -1
  46. package/dist/tools/delegate/tool-config.d.ts +1 -10
  47. package/dist/tools/delegate/tool-config.d.ts.map +1 -1
  48. package/dist/tools/delegate/tool-config.js +2 -10
  49. package/dist/tools/delegate/tool-config.js.map +1 -1
  50. package/dist/tools/execute-plan/brief-slot.d.ts +21 -0
  51. package/dist/tools/execute-plan/brief-slot.d.ts.map +1 -0
  52. package/dist/{intake/brief-compiler-slots/execute-plan.js → tools/execute-plan/brief-slot.js} +3 -67
  53. package/dist/tools/execute-plan/brief-slot.js.map +1 -0
  54. package/dist/tools/execute-plan/draft-id.d.ts.map +1 -0
  55. package/dist/tools/execute-plan/draft-id.js.map +1 -0
  56. package/dist/tools/execute-plan/plan-extractor.d.ts.map +1 -0
  57. package/dist/tools/execute-plan/plan-extractor.js.map +1 -0
  58. package/dist/tools/execute-plan/schema.d.ts +1 -1
  59. package/dist/tools/execute-plan/tool-config.d.ts +3 -3
  60. package/dist/tools/execute-plan/tool-config.d.ts.map +1 -1
  61. package/dist/tools/execute-plan/tool-config.js +2 -2
  62. package/dist/tools/execute-plan/tool-config.js.map +1 -1
  63. package/dist/tools/investigate/brief-slot.d.ts +31 -0
  64. package/dist/tools/investigate/brief-slot.d.ts.map +1 -0
  65. package/dist/tools/investigate/brief-slot.js +69 -0
  66. package/dist/tools/investigate/brief-slot.js.map +1 -0
  67. package/dist/tools/investigate/tool-config.d.ts +2 -29
  68. package/dist/tools/investigate/tool-config.d.ts.map +1 -1
  69. package/dist/tools/investigate/tool-config.js +2 -62
  70. package/dist/tools/investigate/tool-config.js.map +1 -1
  71. package/dist/tools/research/brief-slot.d.ts +19 -0
  72. package/dist/tools/research/brief-slot.d.ts.map +1 -0
  73. package/dist/tools/research/brief-slot.js +37 -0
  74. package/dist/tools/research/brief-slot.js.map +1 -0
  75. package/dist/tools/research/tool-config.d.ts +2 -14
  76. package/dist/tools/research/tool-config.d.ts.map +1 -1
  77. package/dist/tools/research/tool-config.js +2 -14
  78. package/dist/tools/research/tool-config.js.map +1 -1
  79. package/dist/tools/retry/brief-slot.d.ts +7 -0
  80. package/dist/tools/retry/brief-slot.d.ts.map +1 -0
  81. package/dist/tools/retry/brief-slot.js +2 -0
  82. package/dist/tools/retry/brief-slot.js.map +1 -0
  83. package/dist/tools/retry/tool-config.d.ts +1 -5
  84. package/dist/tools/retry/tool-config.d.ts.map +1 -1
  85. package/dist/tools/retry/tool-config.js +2 -1
  86. package/dist/tools/retry/tool-config.js.map +1 -1
  87. package/dist/{intake/brief-compiler-slots/review.d.ts → tools/review/brief-slot.d.ts} +1 -1
  88. package/dist/tools/review/brief-slot.d.ts.map +1 -0
  89. package/dist/{intake/brief-compiler-slots/review.js → tools/review/brief-slot.js} +1 -1
  90. package/dist/tools/review/brief-slot.js.map +1 -0
  91. package/dist/tools/review/tool-config.d.ts +1 -1
  92. package/dist/tools/review/tool-config.d.ts.map +1 -1
  93. package/dist/tools/review/tool-config.js +1 -1
  94. package/dist/tools/review/tool-config.js.map +1 -1
  95. package/dist/types/brief-quality-policy.d.ts +3 -0
  96. package/dist/types/brief-quality-policy.d.ts.map +1 -0
  97. package/dist/types/brief-quality-policy.js +2 -0
  98. package/dist/types/brief-quality-policy.js.map +1 -0
  99. package/dist/{intake/types.d.ts → types/draft-task.d.ts} +2 -40
  100. package/dist/types/draft-task.d.ts.map +1 -0
  101. package/dist/types/draft-task.js +2 -0
  102. package/dist/types/draft-task.js.map +1 -0
  103. package/dist/types/review-policy.d.ts +2 -0
  104. package/dist/types/review-policy.d.ts.map +1 -0
  105. package/dist/types/review-policy.js +2 -0
  106. package/dist/types/review-policy.js.map +1 -0
  107. package/dist/types/task-spec.d.ts +1 -1
  108. package/dist/types/task-spec.d.ts.map +1 -1
  109. package/package.json +1 -49
  110. package/dist/intake/brief-compiler-slots/debug.d.ts.map +0 -1
  111. package/dist/intake/brief-compiler-slots/debug.js.map +0 -1
  112. package/dist/intake/brief-compiler-slots/delegate.d.ts +0 -23
  113. package/dist/intake/brief-compiler-slots/delegate.d.ts.map +0 -1
  114. package/dist/intake/brief-compiler-slots/delegate.js.map +0 -1
  115. package/dist/intake/brief-compiler-slots/execute-plan.d.ts +0 -49
  116. package/dist/intake/brief-compiler-slots/execute-plan.d.ts.map +0 -1
  117. package/dist/intake/brief-compiler-slots/execute-plan.js.map +0 -1
  118. package/dist/intake/brief-compiler-slots/register-context-block.d.ts +0 -17
  119. package/dist/intake/brief-compiler-slots/register-context-block.d.ts.map +0 -1
  120. package/dist/intake/brief-compiler-slots/register-context-block.js +0 -17
  121. package/dist/intake/brief-compiler-slots/register-context-block.js.map +0 -1
  122. package/dist/intake/brief-compiler-slots/research.d.ts +0 -18
  123. package/dist/intake/brief-compiler-slots/research.d.ts.map +0 -1
  124. package/dist/intake/brief-compiler-slots/research.js +0 -43
  125. package/dist/intake/brief-compiler-slots/research.js.map +0 -1
  126. package/dist/intake/brief-compiler-slots/retry.d.ts +0 -20
  127. package/dist/intake/brief-compiler-slots/retry.d.ts.map +0 -1
  128. package/dist/intake/brief-compiler-slots/retry.js +0 -37
  129. package/dist/intake/brief-compiler-slots/retry.js.map +0 -1
  130. package/dist/intake/brief-compiler-slots/review.d.ts.map +0 -1
  131. package/dist/intake/brief-compiler-slots/review.js.map +0 -1
  132. package/dist/intake/brief-compiler.d.ts +0 -9
  133. package/dist/intake/brief-compiler.d.ts.map +0 -1
  134. package/dist/intake/brief-compiler.js +0 -8
  135. package/dist/intake/brief-compiler.js.map +0 -1
  136. package/dist/intake/classify.d.ts +0 -3
  137. package/dist/intake/classify.d.ts.map +0 -1
  138. package/dist/intake/classify.js +0 -111
  139. package/dist/intake/classify.js.map +0 -1
  140. package/dist/intake/context-overflow-estimator.d.ts +0 -33
  141. package/dist/intake/context-overflow-estimator.d.ts.map +0 -1
  142. package/dist/intake/context-overflow-estimator.js +0 -36
  143. package/dist/intake/context-overflow-estimator.js.map +0 -1
  144. package/dist/intake/draft-id.d.ts.map +0 -1
  145. package/dist/intake/draft-id.js.map +0 -1
  146. package/dist/intake/field-inferer.d.ts +0 -10
  147. package/dist/intake/field-inferer.d.ts.map +0 -1
  148. package/dist/intake/field-inferer.js +0 -57
  149. package/dist/intake/field-inferer.js.map +0 -1
  150. package/dist/intake/host-allowlist-builder.d.ts +0 -25
  151. package/dist/intake/host-allowlist-builder.d.ts.map +0 -1
  152. package/dist/intake/host-allowlist-builder.js +0 -102
  153. package/dist/intake/host-allowlist-builder.js.map +0 -1
  154. package/dist/intake/index.d.ts +0 -5
  155. package/dist/intake/index.d.ts.map +0 -1
  156. package/dist/intake/index.js +0 -6
  157. package/dist/intake/index.js.map +0 -1
  158. package/dist/intake/pipeline.d.ts +0 -5
  159. package/dist/intake/pipeline.d.ts.map +0 -1
  160. package/dist/intake/pipeline.js +0 -110
  161. package/dist/intake/pipeline.js.map +0 -1
  162. package/dist/intake/plan-extractor.d.ts.map +0 -1
  163. package/dist/intake/plan-extractor.js.map +0 -1
  164. package/dist/intake/resolve.d.ts +0 -16
  165. package/dist/intake/resolve.d.ts.map +0 -1
  166. package/dist/intake/resolve.js +0 -37
  167. package/dist/intake/resolve.js.map +0 -1
  168. package/dist/intake/source-schema.d.ts +0 -4
  169. package/dist/intake/source-schema.d.ts.map +0 -1
  170. package/dist/intake/source-schema.js +0 -45
  171. package/dist/intake/source-schema.js.map +0 -1
  172. package/dist/intake/types.d.ts.map +0 -1
  173. package/dist/intake/types.js +0 -2
  174. package/dist/intake/types.js.map +0 -1
  175. package/dist/intake/verify-command-validator.d.ts +0 -6
  176. package/dist/intake/verify-command-validator.d.ts.map +0 -1
  177. package/dist/intake/verify-command-validator.js +0 -47
  178. package/dist/intake/verify-command-validator.js.map +0 -1
  179. package/dist/intake/verify-referenced-blocks.d.ts +0 -5
  180. package/dist/intake/verify-referenced-blocks.d.ts.map +0 -1
  181. package/dist/intake/verify-referenced-blocks.js +0 -9
  182. package/dist/intake/verify-referenced-blocks.js.map +0 -1
  183. /package/dist/{intake → tools/execute-plan}/draft-id.d.ts +0 -0
  184. /package/dist/{intake → tools/execute-plan}/draft-id.js +0 -0
  185. /package/dist/{intake → tools/execute-plan}/plan-extractor.d.ts +0 -0
  186. /package/dist/{intake → tools/execute-plan}/plan-extractor.js +0 -0
@@ -1,71 +1,7 @@
1
1
  import { readFileSync } from 'node:fs';
2
2
  import { resolve as pathResolve } from 'node:path';
3
- import { createDraftId } from '../draft-id.js';
4
- const SCOPE_CONTRACT = `
5
- Execute exactly the steps in the plan. Do NOT add steps not in the plan.
6
- `.trim();
7
- function normalizeTask(input) {
8
- return typeof input === 'string' ? { task: input } : input;
9
- }
10
- export function compileExecutePlan(input, requestId) {
11
- return input.tasks.map((rawTask, index) => {
12
- const taskInput = normalizeTask(rawTask);
13
- const task = taskInput.task;
14
- const prompt = [
15
- 'Below are the plan and/or spec documents for this project:',
16
- '',
17
- '---',
18
- input.fileContents,
19
- '---',
20
- '',
21
- 'Execute the following task from the documents above:',
22
- '',
23
- `Requested task: "${task}"`,
24
- '',
25
- 'Find this task in the plan/spec documents above (not in any preceding context blocks),',
26
- 'understand its requirements, and implement it fully.',
27
- 'Follow the plan exactly as written. If the plan provides code blocks, use them verbatim.',
28
- 'Do not redesign, do not substitute your own approach.',
29
- 'The plan was written by a higher-capability model — your job is to execute it faithfully.',
30
- 'Follow any acceptance criteria, file paths, and constraints specified in the plan.',
31
- 'If you cannot find a unique matching task, report that no match was found and do not implement anything.',
32
- '',
33
- SCOPE_CONTRACT,
34
- ].join('\n');
35
- return {
36
- draftId: createDraftId(requestId, index, `task-${index}`),
37
- source: {
38
- route: 'execute_plan',
39
- originalInput: { tasks: input.tasks, filePaths: input.filePaths },
40
- filePaths: input.filePaths ?? [],
41
- task,
42
- },
43
- prompt,
44
- reviewPolicy: taskInput.reviewPolicy,
45
- verifyCommand: input.verifyCommand,
46
- };
47
- });
48
- }
49
- // v4.0 spec C8 slot-style API. Distinct from compileExecutePlan above —
50
- // the slot extracts plan sections via plan-extractor and emits agentType-locked briefs.
51
- import { extractPlanSection } from '../plan-extractor.js';
52
- export function executePlanSlot(input) {
53
- const planPath = input.filePaths[0];
54
- const cwd = input.cwd ?? process.cwd();
55
- return input.taskDescriptors.map((descriptor, i) => {
56
- const section = extractPlanSection(planPath, descriptor, cwd);
57
- return {
58
- taskIndex: i,
59
- brief: section.body,
60
- cwd,
61
- agentType: 'standard',
62
- reviewPolicy: input.perTaskReviewPolicy?.[i] ?? 'full',
63
- contextBlockIds: [],
64
- autoCommit: true,
65
- };
66
- });
67
- }
68
- export function toolExecutePlanBriefSlot(input) {
3
+ import { extractPlanSection } from './plan-extractor.js';
4
+ export function executePlanBriefSlot(input) {
69
5
  const planPath = input.filePaths[0];
70
6
  const cwd = input.cwd ?? process.cwd();
71
7
  const rp = input.perTaskReviewPolicy ?? {};
@@ -145,4 +81,4 @@ function readPlanSectionRaw(planFilePath, descriptor, cwd) {
145
81
  }
146
82
  return { body, truncated };
147
83
  }
148
- //# sourceMappingURL=execute-plan.js.map
84
+ //# sourceMappingURL=brief-slot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brief-slot.js","sourceRoot":"","sources":["../../../src/tools/execute-plan/brief-slot.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draft-id.d.ts","sourceRoot":"","sources":["../../../src/tools/execute-plan/draft-id.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAOtE;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,SAAS,GAAG,MAAM,CAE3F;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAG1C;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAmBhF"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draft-id.js","sourceRoot":"","sources":["../../../src/tools/execute-plan/draft-id.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,CAAS;IACxC,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACpC,MAAM,CAAC,SAAS,EAAE,YAAY,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC;IAChD,MAAM,SAAS,GAAG,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IAC7C,IAAI,KAAK,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IAClC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,SAAiB,EAAE,SAAiB,EAAE,MAAM,GAAG,MAAM;IACjF,OAAO,GAAG,SAAS,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAC9C,OAAO,UAAU,EAAE,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,QAAkB;IACvD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAoB,CAAC;IACzC,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;QAChC,IAAI,CAAC,MAAM;YAAE,SAAS;QACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC/C,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;QACjC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnB,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-extractor.d.ts","sourceRoot":"","sources":["../../../src/tools/execute-plan/plan-extractor.ts"],"names":[],"mappings":"AAcA,qBAAa,mBAAoB,SAAQ,KAAK;IACzB,UAAU,EAAE,MAAM;IAAS,MAAM,EAAE,MAAM;gBAAzC,UAAU,EAAE,MAAM,EAAS,MAAM,EAAE,MAAM;CAI7D;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,WAAW,CA8DrG"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-extractor.js","sourceRoot":"","sources":["../../../src/tools/execute-plan/plan-extractor.ts"],"names":[],"mappings":"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"}
@@ -3,10 +3,10 @@ export declare const inputSchema: z.ZodObject<{
3
3
  tasks: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
4
4
  task: z.ZodString;
5
5
  reviewPolicy: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
6
+ none: "none";
6
7
  full: "full";
7
8
  quality_only: "quality_only";
8
9
  diff_only: "diff_only";
9
- none: "none";
10
10
  }>>>;
11
11
  outputTargets: z.ZodOptional<z.ZodArray<z.ZodString>>;
12
12
  }, z.core.$strict>]>>;
@@ -1,21 +1,21 @@
1
1
  import { z } from 'zod';
2
2
  import { ToolSurfaceRegistry } from '../../tool-surface/tool-surface-registry.js';
3
3
  import type { ToolConfig } from '../../lifecycle/tool-config-types.js';
4
- import { type ToolExecutePlanBrief } from '../../intake/brief-compiler-slots/execute-plan.js';
4
+ import { type ExecutePlanBrief } from './brief-slot.js';
5
5
  export declare const executePlanInputSchema: z.ZodObject<{
6
6
  filePaths: z.ZodArray<z.ZodString>;
7
7
  taskDescriptors: z.ZodArray<z.ZodString>;
8
8
  cwd: z.ZodOptional<z.ZodString>;
9
9
  perTaskReviewPolicy: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<{
10
+ none: "none";
10
11
  full: "full";
11
12
  quality_only: "quality_only";
12
13
  diff_only: "diff_only";
13
- none: "none";
14
14
  }>>>;
15
15
  contextBlockIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
16
16
  verifyCommand: z.ZodOptional<z.ZodArray<z.ZodString>>;
17
17
  }, z.core.$strict>;
18
18
  export type ExecutePlanWireInput = z.infer<typeof executePlanInputSchema>;
19
19
  export declare function registerExecutePlan(registry: ToolSurfaceRegistry): void;
20
- export declare const toolConfig: ToolConfig<ExecutePlanWireInput, ToolExecutePlanBrief>;
20
+ export declare const toolConfig: ToolConfig<ExecutePlanWireInput, ExecutePlanBrief>;
21
21
  //# sourceMappingURL=tool-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-config.d.ts","sourceRoot":"","sources":["../../../src/tools/execute-plan/tool-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAGlF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAA4B,KAAK,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AAaxH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;kBAOxB,CAAC;AAEZ,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAE1E,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAYvE;AAgFD,eAAO,MAAM,UAAU,EAAE,UAAU,CAAC,oBAAoB,EAAE,oBAAoB,CA+B7E,CAAC"}
1
+ {"version":3,"file":"tool-config.d.ts","sourceRoot":"","sources":["../../../src/tools/execute-plan/tool-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAGlF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAwB,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAa9E,eAAO,MAAM,sBAAsB;;;;;;;;;;;;kBAOxB,CAAC;AAEZ,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAE1E,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAYvE;AAgFD,eAAO,MAAM,UAAU,EAAE,UAAU,CAAC,oBAAoB,EAAE,gBAAgB,CA+BzE,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { z } from 'zod';
2
2
  import { specLintTemplate } from '../../review/templates/spec-review.js';
3
3
  import { qualityLintTemplate } from '../../review/templates/quality-review.js';
4
- import { toolExecutePlanBriefSlot } from '../../intake/brief-compiler-slots/execute-plan.js';
4
+ import { executePlanBriefSlot } from './brief-slot.js';
5
5
  import { executePlanHeadlineTemplate } from '../../reporting/headline-templates/execute-plan.js';
6
6
  import { executePlanReportSchema } from '../../reporting/report-parser-slots/execute-plan-report.js';
7
7
  import { DEFAULT_TASK_TIMEOUT_MS } from '../../config/schema.js';
@@ -78,7 +78,7 @@ export const toolConfig = {
78
78
  category: 'artifact_producing',
79
79
  serializeSameRepo: true,
80
80
  agentType: 'standard',
81
- briefSlot: toolExecutePlanBriefSlot,
81
+ briefSlot: executePlanBriefSlot,
82
82
  buildTaskSpec: (brief, ctx) => ({
83
83
  prompt: buildExecutePlanPrompt(brief.filePaths, brief.taskDescriptor, brief.sectionBody, brief.sectionTruncated),
84
84
  agentType: 'standard',
@@ -1 +1 @@
1
- {"version":3,"file":"tool-config.js","sourceRoot":"","sources":["../../../src/tools/execute-plan/tool-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-config.js","sourceRoot":"","sources":["../../../src/tools/execute-plan/tool-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import type { Input } from './schema.js';
2
+ export interface ResolvedContextBlock {
3
+ id: string;
4
+ content: string;
5
+ }
6
+ export interface EnrichedInvestigateInput extends Input {
7
+ resolvedContextBlocks: ResolvedContextBlock[];
8
+ canonicalizedFilePaths: string[];
9
+ relativeFilePathsForPrompt: string[];
10
+ }
11
+ export interface InvestigateBrief {
12
+ /** The user's original question — drives the headline text. */
13
+ question: string;
14
+ /**
15
+ * The fully compiled implementer prompt (template + question + anchors +
16
+ * context blocks). Stored here for buildTaskSpec to forward as
17
+ * TaskSpec.prompt, but deliberately NOT named `prompt`/`brief`. The
18
+ * task-executor's `taskBrief` resolution chain reads
19
+ * `briefs[0].prompt ?? .brief ?? .question`; a `prompt` field here would
20
+ * cause the headline to be the prompt-template instructions (the tool
21
+ * sweep #5 bug — headline read 'Investigation: "Produce a narrative
22
+ * investigation report. Number each findin…"'). Falling through to
23
+ * `question` is the desired behavior.
24
+ */
25
+ compiledPrompt: string;
26
+ filePaths: string[];
27
+ contextBlockIds: string[];
28
+ tools?: 'none' | 'readonly';
29
+ }
30
+ export declare const investigateBriefSlot: (input: EnrichedInvestigateInput) => InvestigateBrief[];
31
+ //# sourceMappingURL=brief-slot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brief-slot.d.ts","sourceRoot":"","sources":["../../../src/tools/investigate/brief-slot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAazC,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;AAwED,eAAO,MAAM,oBAAoB,GAAI,OAAO,wBAAwB,KAAG,gBAAgB,EAStF,CAAC"}
@@ -0,0 +1,69 @@
1
+ import { INVESTIGATE_PURPOSE_ORIENTATION, EVIDENCE_RULE_INVESTIGATE, SCOPE_RULE_INVESTIGATE, ANNOTATOR_AWARENESS_INVESTIGATE, INVESTIGATE_FAILURE_MODES, CONFIDENCE_REMINDER_INVESTIGATE, } from './implementer-criteria.js';
2
+ function compilePrompt(input) {
3
+ const promptParts = [];
4
+ // Orientation goes FIRST — the worker needs to know why this
5
+ // investigation exists (caller will act on this answer; wrong file
6
+ // path becomes a bug) before reading the format spec / taxonomy.
7
+ // Without it, workers default to plausible-sounding answers with
8
+ // shaky citations.
9
+ promptParts.push(INVESTIGATE_PURPOSE_ORIENTATION);
10
+ promptParts.push([
11
+ 'Produce an investigation report in this EXACT structured format. The deterministic',
12
+ 'parser extracts findings, summary, and confidence by section — do NOT emit JSON, and',
13
+ 'do NOT use a numbered-list narrative. Sections MUST use h2 headers (`##`).',
14
+ '',
15
+ '## Summary',
16
+ 'One paragraph stating the answer to the question, in plain prose. This is the synthesis',
17
+ 'a human reads first; do not omit it.',
18
+ '',
19
+ '## Finding 1: <one-line title — the candidate answer or sub-answer in one line>',
20
+ '- Severity: critical | high | medium | low (your confidence in this answer: critical=direct verbatim citation; high=clearly inferable from cited source; medium=single interpretation step required; low=weak inference)',
21
+ '- Category: <category — e.g. "control-flow", "data-shape", "dependency", "side-effect", or any short label that classifies this answer>',
22
+ '- Evidence: <one-paragraph explanation that MUST include at least one `<file>:<line>` or `<file>:<line>-<line>` citation. The parser drops findings whose Evidence contains no file:line reference. Quote the relevant code or doc when helpful. If the question is genuinely project-level with no code evidence, emit Severity: low and write "no code citation — project-level inference based on …" with named files referenced inline.>',
23
+ '- Suggestion: <one-line follow-up — a fix, how to verify, or where to look next; optional but encouraged>',
24
+ '',
25
+ '## Finding 2: ... (one block per candidate answer)',
26
+ '',
27
+ 'Number findings sequentially starting at 1. Severity/Category/Evidence/Suggestion bullets are on their own lines with the labels exactly as shown. Emit AT LEAST ONE Finding — empty/narrative-only responses are workflow errors and will be discarded.',
28
+ '',
29
+ '## Confidence',
30
+ 'One of high, medium, or low, optionally followed by ` — <one-line rationale>`. This is the OVERALL confidence in your synthesis; per-finding confidence lives in each Finding\'s Severity. Do NOT wrap the level in backticks; emit it as plain text.',
31
+ '',
32
+ '## Outcome',
33
+ 'One of: found | not_applicable. Emit `found` whenever you produced at least one Finding (the normal case). Emit `not_applicable` only when the question itself does not apply to this codebase.',
34
+ '',
35
+ '## Unresolved',
36
+ 'Optional bullets describing follow-up questions; write `(none)` if there are none.',
37
+ 'Prefix a bullet with `[needs_context]` if it requires the caller to supply more',
38
+ 'information before the question can be answered.',
39
+ ].join('\n'));
40
+ for (const block of input.resolvedContextBlocks) {
41
+ promptParts.push(block.content);
42
+ }
43
+ if (input.relativeFilePathsForPrompt.length > 0) {
44
+ promptParts.push('Anchor paths to start from (you may also read beyond these):\n' +
45
+ input.relativeFilePathsForPrompt.map(p => `- ${p}`).join('\n'));
46
+ }
47
+ promptParts.push(`Question: ${input.question}`);
48
+ if (input.resolvedContextBlocks.length > 0) {
49
+ promptParts.push('A prior investigation report is provided as context above. Refine or extend that investigation. In your output, mark which prior unresolved questions you resolved this round and which remain open.');
50
+ }
51
+ // Tool sweep #12: shared rubric. Investigate doesn't use the
52
+ // SEVERITY_LADDER (its findings are citations, not severity-rated)
53
+ // but evidence-grounding + scope-discipline + annotator-awareness
54
+ // apply just as much. Workers that cite hallucinated lines or
55
+ // speculate about unread files now have the rubric inline.
56
+ promptParts.push(INVESTIGATE_FAILURE_MODES, CONFIDENCE_REMINDER_INVESTIGATE, EVIDENCE_RULE_INVESTIGATE, SCOPE_RULE_INVESTIGATE, ANNOTATOR_AWARENESS_INVESTIGATE);
57
+ return promptParts.join('\n\n');
58
+ }
59
+ export const investigateBriefSlot = (input) => {
60
+ const compiledPrompt = compilePrompt(input);
61
+ return [{
62
+ question: input.question,
63
+ compiledPrompt,
64
+ filePaths: input.canonicalizedFilePaths,
65
+ contextBlockIds: input.contextBlockIds ?? [],
66
+ tools: input.tools,
67
+ }];
68
+ };
69
+ //# sourceMappingURL=brief-slot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brief-slot.js","sourceRoot":"","sources":["../../../src/tools/investigate/brief-slot.ts"],"names":[],"mappings":"AACA,OAAO,EACL,+BAA+B,EAC/B,yBAAyB,EACzB,sBAAsB,EACtB,+BAA+B,EAC/B,yBAAyB,EACzB,+BAA+B,GAChC,MAAM,2BAA2B,CAAC;AAoCnC,SAAS,aAAa,CAAC,KAA+B;IACpD,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,6DAA6D;IAC7D,mEAAmE;IACnE,iEAAiE;IACjE,iEAAiE;IACjE,mBAAmB;IACnB,WAAW,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;IAClD,WAAW,CAAC,IAAI,CACd;QACE,oFAAoF;QACpF,sFAAsF;QACtF,4EAA4E;QAC5E,EAAE;QACF,YAAY;QACZ,yFAAyF;QACzF,sCAAsC;QACtC,EAAE;QACF,iFAAiF;QACjF,2NAA2N;QAC3N,yIAAyI;QACzI,8aAA8a;QAC9a,2GAA2G;QAC3G,EAAE;QACF,oDAAoD;QACpD,EAAE;QACF,0PAA0P;QAC1P,EAAE;QACF,eAAe;QACf,uPAAuP;QACvP,EAAE;QACF,YAAY;QACZ,iMAAiM;QACjM,EAAE;QACF,eAAe;QACf,oFAAoF;QACpF,iFAAiF;QACjF,kDAAkD;KACnD,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;IACF,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,qBAAqB,EAAE,CAAC;QAChD,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,KAAK,CAAC,0BAA0B,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,WAAW,CAAC,IAAI,CACd,gEAAgE;YAChE,KAAK,CAAC,0BAA0B,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAC/D,CAAC;IACJ,CAAC;IACD,WAAW,CAAC,IAAI,CAAC,aAAa,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IAChD,IAAI,KAAK,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3C,WAAW,CAAC,IAAI,CACd,sMAAsM,CACvM,CAAC;IACJ,CAAC;IACD,6DAA6D;IAC7D,mEAAmE;IACnE,kEAAkE;IAClE,8DAA8D;IAC9D,2DAA2D;IAC3D,WAAW,CAAC,IAAI,CACd,yBAAyB,EACzB,+BAA+B,EAC/B,yBAAyB,EACzB,sBAAsB,EACtB,+BAA+B,CAChC,CAAC;IACF,OAAO,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAA+B,EAAsB,EAAE;IAC1F,MAAM,cAAc,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAC5C,OAAO,CAAC;YACN,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,cAAc;YACd,SAAS,EAAE,KAAK,CAAC,sBAAsB;YACvC,eAAe,EAAE,KAAK,CAAC,eAAe,IAAI,EAAE;YAC5C,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -1,35 +1,8 @@
1
1
  import { ToolSurfaceRegistry } from '../../tool-surface/tool-surface-registry.js';
2
- import type { Input } from './schema.js';
3
2
  import type { ToolConfig } from '../../lifecycle/tool-config-types.js';
4
3
  import type { InvestigateReportOutput } from '../../reporting/report-parser-slots/investigate-report.js';
4
+ import { type EnrichedInvestigateInput, type InvestigateBrief } from './brief-slot.js';
5
+ export type { EnrichedInvestigateInput, InvestigateBrief } from './brief-slot.js';
5
6
  export declare function registerInvestigate(registry: ToolSurfaceRegistry): void;
6
- export interface ResolvedContextBlock {
7
- id: string;
8
- content: string;
9
- }
10
- export interface EnrichedInvestigateInput extends Input {
11
- resolvedContextBlocks: ResolvedContextBlock[];
12
- canonicalizedFilePaths: string[];
13
- relativeFilePathsForPrompt: string[];
14
- }
15
- export interface InvestigateBrief {
16
- /** The user's original question — drives the headline text. */
17
- question: string;
18
- /**
19
- * The fully compiled implementer prompt (template + question + anchors +
20
- * context blocks). Stored here for buildTaskSpec to forward as
21
- * TaskSpec.prompt, but deliberately NOT named `prompt`/`brief`. The
22
- * task-executor's `taskBrief` resolution chain reads
23
- * `briefs[0].prompt ?? .brief ?? .question`; a `prompt` field here would
24
- * cause the headline to be the prompt-template instructions (the tool
25
- * sweep #5 bug — headline read 'Investigation: "Produce a narrative
26
- * investigation report. Number each findin…"'). Falling through to
27
- * `question` is the desired behavior.
28
- */
29
- compiledPrompt: string;
30
- filePaths: string[];
31
- contextBlockIds: string[];
32
- tools?: 'none' | 'readonly';
33
- }
34
7
  export declare const toolConfig: ToolConfig<EnrichedInvestigateInput, InvestigateBrief, InvestigateReportOutput>;
35
8
  //# sourceMappingURL=tool-config.d.ts.map
@@ -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,CA+DtG,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;AAIlF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAGvE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2DAA2D,CAAC;AAIzG,OAAO,EAAwB,KAAK,wBAAwB,EAAE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAI7G,YAAY,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAElF,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAYvE;AAGD,eAAO,MAAM,UAAU,EAAE,UAAU,CAAC,wBAAwB,EAAE,gBAAgB,EAAE,uBAAuB,CAsDtG,CAAC"}
@@ -4,7 +4,7 @@ import { investigateReportSchema } from '../../reporting/report-parser-slots/inv
4
4
  import { investigateHeadlineTemplate } from '../../reporting/headline-templates/investigate.js';
5
5
  import { deriveInvestigateWorkerStatus } from '../../reporting/derive-investigate-status.js';
6
6
  import { DEFAULT_TASK_TIMEOUT_MS } from '../../config/schema.js';
7
- import { INVESTIGATE_PURPOSE_ORIENTATION, EVIDENCE_RULE_INVESTIGATE, SCOPE_RULE_INVESTIGATE, ANNOTATOR_AWARENESS_INVESTIGATE, INVESTIGATE_FAILURE_MODES, CONFIDENCE_REMINDER_INVESTIGATE, } from './implementer-criteria.js';
7
+ import { investigateBriefSlot } from './brief-slot.js';
8
8
  export function registerInvestigate(registry) {
9
9
  registry.register({
10
10
  routeName: 'investigate',
@@ -18,71 +18,11 @@ export function registerInvestigate(registry) {
18
18
  responseShapeName: 'BatchResponse',
19
19
  });
20
20
  }
21
- function compilePrompt(input) {
22
- const promptParts = [];
23
- // Orientation goes FIRST — the worker needs to know why this
24
- // investigation exists (caller will act on this answer; wrong file
25
- // path becomes a bug) before reading the format spec / taxonomy.
26
- // Without it, workers default to plausible-sounding answers with
27
- // shaky citations.
28
- promptParts.push(INVESTIGATE_PURPOSE_ORIENTATION);
29
- promptParts.push([
30
- 'Produce an investigation report in this EXACT structured format. The deterministic',
31
- 'parser extracts citations, confidence, and unresolved items by section — do NOT emit',
32
- 'JSON, and do NOT use a numbered-list narrative. Sections MUST use h2 headers (`##`).',
33
- '',
34
- '## Summary',
35
- 'One paragraph stating the answer to the question, in plain prose.',
36
- '',
37
- '## Citations',
38
- 'One bullet per evidence item. Each bullet must start with `-` and contain `<file>:<LINE> — <claim>` (em-dash, OR `--` is also accepted). The parser tolerates an optional pair of backticks wrapping the path:line portion (e.g. `` `src/foo.ts:42` — claim ``) but the canonical form is without backticks.',
39
- 'Examples (use either form):',
40
- ' - src/foo.ts:42 — claim about line 42',
41
- ' - src/foo.ts:42-58 — claim about a span',
42
- 'Use a LINE-LINE range when an evidence span covers multiple lines.',
43
- 'If the question is fully project-level (no code evidence applies), write `(none)` on its own line — but only when Confidence is `low`.',
44
- '',
45
- '## Confidence',
46
- 'One of high, medium, or low, optionally followed by ` — <one-line rationale>`. Do NOT wrap the level in backticks; emit it as plain text.',
47
- '',
48
- '## Unresolved',
49
- 'Optional bullets describing follow-up questions; write `(none)` if there are none.',
50
- 'Prefix a bullet with `[needs_context]` if it requires the caller to supply more',
51
- 'information before the question can be answered.',
52
- ].join('\n'));
53
- for (const block of input.resolvedContextBlocks) {
54
- promptParts.push(block.content);
55
- }
56
- if (input.relativeFilePathsForPrompt.length > 0) {
57
- promptParts.push('Anchor paths to start from (you may also read beyond these):\n' +
58
- input.relativeFilePathsForPrompt.map(p => `- ${p}`).join('\n'));
59
- }
60
- promptParts.push(`Question: ${input.question}`);
61
- if (input.resolvedContextBlocks.length > 0) {
62
- promptParts.push('A prior investigation report is provided as context above. Refine or extend that investigation. In your output, mark which prior unresolved questions you resolved this round and which remain open.');
63
- }
64
- // Tool sweep #12: shared rubric. Investigate doesn't use the
65
- // SEVERITY_LADDER (its findings are citations, not severity-rated)
66
- // but evidence-grounding + scope-discipline + annotator-awareness
67
- // apply just as much. Workers that cite hallucinated lines or
68
- // speculate about unread files now have the rubric inline.
69
- promptParts.push(INVESTIGATE_FAILURE_MODES, CONFIDENCE_REMINDER_INVESTIGATE, EVIDENCE_RULE_INVESTIGATE, SCOPE_RULE_INVESTIGATE, ANNOTATOR_AWARENESS_INVESTIGATE);
70
- return promptParts.join('\n\n');
71
- }
72
21
  export const toolConfig = {
73
22
  name: 'investigate',
74
23
  category: 'read_only',
75
24
  agentType: 'complex',
76
- briefSlot: (input) => {
77
- const compiledPrompt = compilePrompt(input);
78
- return [{
79
- question: input.question,
80
- compiledPrompt,
81
- filePaths: input.canonicalizedFilePaths,
82
- contextBlockIds: input.contextBlockIds ?? [],
83
- tools: input.tools,
84
- }];
85
- },
25
+ briefSlot: investigateBriefSlot,
86
26
  buildTaskSpec: (brief, ctx) => ({
87
27
  prompt: brief.compiledPrompt,
88
28
  // Pure user question for the parallel-criteria dispatcher's cached
@@ -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,19 @@
1
+ import type { Input } from './schema.js';
2
+ export interface ResolvedContextBlock {
3
+ id: string;
4
+ content: string;
5
+ }
6
+ export interface EnrichedResearchInput extends Input {
7
+ resolvedContextBlocks: ResolvedContextBlock[];
8
+ /** Operator-configured source descriptors (research.userSources). */
9
+ userSources: readonly string[];
10
+ /** True iff research.brave.apiKeys is non-empty (drives the prompt branch
11
+ * that says "escalate to web_search"). */
12
+ hasBrave: boolean;
13
+ }
14
+ export interface ResearchBrief {
15
+ compiledPrompt: string;
16
+ contextBlockIds: string[];
17
+ }
18
+ export declare const researchBriefSlot: (input: EnrichedResearchInput) => ResearchBrief[];
19
+ //# sourceMappingURL=brief-slot.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,37 @@
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
+ export const researchBriefSlot = (input) => {
28
+ const compiledPrompt = compileResearchPrompt(input, input.resolvedContextBlocks, {
29
+ userSources: input.userSources,
30
+ hasBrave: input.hasBrave,
31
+ });
32
+ return [{
33
+ compiledPrompt,
34
+ contextBlockIds: input.contextBlockIds ?? [],
35
+ }];
36
+ };
37
+ //# sourceMappingURL=brief-slot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brief-slot.js","sourceRoot":"","sources":["../../../src/tools/research/brief-slot.ts"],"names":[],"mappings":"AACA,OAAO,EACL,sBAAsB,EACtB,oCAAoC,EACpC,qCAAqC,EACrC,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,2BAA2B,CAAC;AA0BnC,SAAS,qBAAqB,CAC5B,KAAY,EACZ,qBAA6C,EAC7C,MAAqB;IAErB,MAAM,YAAY,GAAG,qBAAqB,CAAC,MAAM;QAC/C,CAAC,CAAC,mCAAmC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM;QACxG,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,gBAAgB,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM;QAChD,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAC3D,CAAC,CAAC,mBAAmB,CAAC;IAExB,OAAO,GAAG,YAAY;;kBAEN,KAAK,CAAC,UAAU;yBACT,KAAK,CAAC,gBAAgB;;;EAG7C,gBAAgB;;EAEhB,oCAAoC;;EAEpC,oBAAoB,CAAC,MAAM,CAAC,QAAQ,CAAC;;EAErC,qCAAqC;;EAErC,uBAAuB;;EAEvB,sBAAsB,EAAE,CAAC;AAC3B,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAA4B,EAAmB,EAAE;IACjF,MAAM,cAAc,GAAG,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,qBAAqB,EAAE;QAC/E,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;KACzB,CAAC,CAAC;IACH,OAAO,CAAC;YACN,cAAc;YACd,eAAe,EAAE,KAAK,CAAC,eAAe,IAAI,EAAE;SAC7C,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -1,20 +1,8 @@
1
1
  import { ToolSurfaceRegistry } from '../../tool-surface/tool-surface-registry.js';
2
- import type { Input } from './schema.js';
3
2
  import type { ToolConfig } from '../../lifecycle/tool-config-types.js';
4
3
  import { type ResearchReport } from '../../reporting/report-parser-slots/research-report.js';
5
- import { type ResolvedContextBlock } from '../../intake/brief-compiler-slots/research.js';
4
+ import { type EnrichedResearchInput, type ResearchBrief } from './brief-slot.js';
5
+ export type { EnrichedResearchInput, ResearchBrief, ResolvedContextBlock } from './brief-slot.js';
6
6
  export declare function registerResearch(registry: ToolSurfaceRegistry): void;
7
- export interface EnrichedResearchInput extends Input {
8
- resolvedContextBlocks: ResolvedContextBlock[];
9
- /** Operator-configured source descriptors (research.userSources). */
10
- userSources: readonly string[];
11
- /** True iff research.brave.apiKeys is non-empty (drives the prompt branch
12
- * that says "escalate to web_search"). */
13
- hasBrave: boolean;
14
- }
15
- export interface ResearchBrief {
16
- compiledPrompt: string;
17
- contextBlockIds: string[];
18
- }
19
7
  export declare const toolConfig: ToolConfig<EnrichedResearchInput, ResearchBrief, ResearchReport>;
20
8
  //# sourceMappingURL=tool-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-config.d.ts","sourceRoot":"","sources":["../../../src/tools/research/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,EAAwB,KAAK,cAAc,EAAE,MAAM,wDAAwD,CAAC;AAEnH,OAAO,EAAmB,KAAK,oBAAoB,EAAE,MAAM,+CAA+C,CAAC;AAG3G,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAYpE;AAED,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;AAED,eAAO,MAAM,UAAU,EAAE,UAAU,CAAC,qBAAqB,EAAE,aAAa,EAAE,cAAc,CA+BvF,CAAC"}
1
+ {"version":3,"file":"tool-config.d.ts","sourceRoot":"","sources":["../../../src/tools/research/tool-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAElF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAEvE,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,wDAAwD,CAAC;AAEnH,OAAO,EAAqB,KAAK,qBAAqB,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAKpG,YAAY,EAAE,qBAAqB,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAElG,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAYpE;AAED,eAAO,MAAM,UAAU,EAAE,UAAU,CAAC,qBAAqB,EAAE,aAAa,EAAE,cAAc,CAmBvF,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { inputSchema } from './schema.js';
2
2
  import { researchReportSchema } from '../../reporting/report-parser-slots/research-report.js';
3
3
  import { researchHeadlineTemplate } from '../../reporting/headline-templates/research.js';
4
- import { compileResearch } from '../../intake/brief-compiler-slots/research.js';
4
+ import { researchBriefSlot } from './brief-slot.js';
5
5
  import { DEFAULT_TASK_TIMEOUT_MS } from '../../config/schema.js';
6
6
  export function registerResearch(registry) {
7
7
  registry.register({
@@ -20,19 +20,7 @@ export const toolConfig = {
20
20
  name: 'research',
21
21
  category: 'read_only',
22
22
  agentType: 'complex',
23
- briefSlot: (input) => {
24
- // cwd is irrelevant to prompt compilation (research is external-only); the
25
- // generic executor's buildTaskSpec sets the cwd on the TaskSpec from
26
- // ExecutionContext.
27
- const { task } = compileResearch(input, input.resolvedContextBlocks, '', {
28
- userSources: input.userSources,
29
- hasBrave: input.hasBrave,
30
- });
31
- return [{
32
- compiledPrompt: task.prompt,
33
- contextBlockIds: input.contextBlockIds ?? [],
34
- }];
35
- },
23
+ briefSlot: researchBriefSlot,
36
24
  buildTaskSpec: (brief, ctx) => ({
37
25
  prompt: brief.compiledPrompt,
38
26
  parallelTarget: brief.compiledPrompt,
@@ -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;AAI1C,OAAO,EAAE,oBAAoB,EAAuB,MAAM,wDAAwD,CAAC;AACnH,OAAO,EAAE,wBAAwB,EAAE,MAAM,gDAAgD,CAAC;AAC1F,OAAO,EAAE,eAAe,EAA6B,MAAM,+CAA+C,CAAC;AAC3G,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,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;AAgBD,MAAM,CAAC,MAAM,UAAU,GAAqE;IAC1F,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE,WAAW;IACrB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,CAAC,KAA4B,EAAmB,EAAE;QAC3D,2EAA2E;QAC3E,qEAAqE;QACrE,oBAAoB;QACpB,MAAM,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,qBAAqB,EAAE,EAAE,EAAE;YACvE,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;SACzB,CAAC,CAAC;QACH,OAAO,CAAC;gBACN,cAAc,EAAE,IAAI,CAAC,MAAM;gBAC3B,eAAe,EAAE,KAAK,CAAC,eAAe,IAAI,EAAE;aAC7C,CAAC,CAAC;IACL,CAAC;IACD,aAAa,EAAE,CAAC,KAAoB,EAAE,GAAqB,EAAE,EAAE,CAAC,CAAC;QAC/D,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,UAAmB;QAC1B,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;KACtC,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;AAMjE,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,EAAE,CAAC,CAAC;QAC/D,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,UAAmB;QAC1B,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;KACtC,CAAC;IACF,YAAY,EAAE,oBAAoB;IAClC,gBAAgB,EAAE,wBAAwB;CAC3C,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { Input } from './schema.js';
2
+ export interface RetryBrief {
3
+ batchId: string;
4
+ taskIndex: number;
5
+ }
6
+ export declare const retryBriefSlot: (input: Input) => RetryBrief[];
7
+ //# sourceMappingURL=brief-slot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brief-slot.d.ts","sourceRoot":"","sources":["../../../src/tools/retry/brief-slot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,cAAc,GAAI,OAAO,KAAK,KAAG,UAAU,EACsB,CAAC"}