@zhixuan92/multi-model-agent-core 4.0.3 → 4.0.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 (294) hide show
  1. package/README.md +10 -12
  2. package/dist/events/cloud-events.d.ts +1 -3
  3. package/dist/events/cloud-events.d.ts.map +1 -1
  4. package/dist/events/event-builder.d.ts +1 -1
  5. package/dist/events/event-builder.d.ts.map +1 -1
  6. package/dist/events/observability-events.d.ts +3 -111
  7. package/dist/events/observability-events.d.ts.map +1 -1
  8. package/dist/events/observability-events.js +0 -58
  9. package/dist/events/observability-events.js.map +1 -1
  10. package/dist/events/telemetry-types.d.ts +3 -3
  11. package/dist/events/telemetry-types.js +1 -1
  12. package/dist/events/telemetry-types.js.map +1 -1
  13. package/dist/index.d.ts +2 -7
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +1 -7
  16. package/dist/index.js.map +1 -1
  17. package/dist/intake/brief-compiler-slots/debug.d.ts +0 -26
  18. package/dist/intake/brief-compiler-slots/debug.d.ts.map +1 -1
  19. package/dist/intake/brief-compiler-slots/debug.js +5 -44
  20. package/dist/intake/brief-compiler-slots/debug.js.map +1 -1
  21. package/dist/intake/brief-compiler-slots/delegate.d.ts +0 -24
  22. package/dist/intake/brief-compiler-slots/delegate.d.ts.map +1 -1
  23. package/dist/intake/brief-compiler-slots/delegate.js +2 -45
  24. package/dist/intake/brief-compiler-slots/delegate.js.map +1 -1
  25. package/dist/intake/brief-compiler-slots/research.d.ts +18 -0
  26. package/dist/intake/brief-compiler-slots/research.d.ts.map +1 -0
  27. package/dist/intake/brief-compiler-slots/research.js +43 -0
  28. package/dist/intake/brief-compiler-slots/research.js.map +1 -0
  29. package/dist/intake/brief-compiler-slots/review.d.ts +0 -23
  30. package/dist/intake/brief-compiler-slots/review.d.ts.map +1 -1
  31. package/dist/intake/brief-compiler-slots/review.js +0 -62
  32. package/dist/intake/brief-compiler-slots/review.js.map +1 -1
  33. package/dist/lifecycle/diff-tracker.d.ts +72 -0
  34. package/dist/lifecycle/diff-tracker.d.ts.map +1 -0
  35. package/dist/lifecycle/diff-tracker.js +316 -0
  36. package/dist/lifecycle/diff-tracker.js.map +1 -0
  37. package/dist/lifecycle/handlers/prepare-execution-context-handler.d.ts +1 -1
  38. package/dist/lifecycle/handlers/prepare-execution-context-handler.d.ts.map +1 -1
  39. package/dist/lifecycle/handlers/prepare-execution-context-handler.js +23 -1
  40. package/dist/lifecycle/handlers/prepare-execution-context-handler.js.map +1 -1
  41. package/dist/lifecycle/handlers/quality-chain-handlers.d.ts.map +1 -1
  42. package/dist/lifecycle/handlers/quality-chain-handlers.js +57 -6
  43. package/dist/lifecycle/handlers/quality-chain-handlers.js.map +1 -1
  44. package/dist/lifecycle/handlers/review-diff-handler.d.ts.map +1 -1
  45. package/dist/lifecycle/handlers/review-diff-handler.js +38 -12
  46. package/dist/lifecycle/handlers/review-diff-handler.js.map +1 -1
  47. package/dist/lifecycle/handlers/spec-chain-handlers.d.ts.map +1 -1
  48. package/dist/lifecycle/handlers/spec-chain-handlers.js +38 -10
  49. package/dist/lifecycle/handlers/spec-chain-handlers.js.map +1 -1
  50. package/dist/lifecycle/handlers/terminal-handlers.d.ts.map +1 -1
  51. package/dist/lifecycle/handlers/terminal-handlers.js +17 -2
  52. package/dist/lifecycle/handlers/terminal-handlers.js.map +1 -1
  53. package/dist/lifecycle/merge-stage-stats.d.ts +27 -0
  54. package/dist/lifecycle/merge-stage-stats.d.ts.map +1 -1
  55. package/dist/lifecycle/merge-stage-stats.js +56 -0
  56. package/dist/lifecycle/merge-stage-stats.js.map +1 -1
  57. package/dist/lifecycle/stage-plan-types.d.ts +15 -0
  58. package/dist/lifecycle/stage-plan-types.d.ts.map +1 -1
  59. package/dist/lifecycle/stage-progression.d.ts.map +1 -1
  60. package/dist/lifecycle/stage-progression.js +1 -0
  61. package/dist/lifecycle/stage-progression.js.map +1 -1
  62. package/dist/lifecycle/task-runner.js +1 -1
  63. package/dist/lifecycle/task-runner.js.map +1 -1
  64. package/dist/providers/provider-factory.d.ts.map +1 -1
  65. package/dist/providers/provider-factory.js +6 -0
  66. package/dist/providers/provider-factory.js.map +1 -1
  67. package/dist/reporting/headline-templates/audit.d.ts.map +1 -1
  68. package/dist/reporting/headline-templates/audit.js +17 -8
  69. package/dist/reporting/headline-templates/audit.js.map +1 -1
  70. package/dist/reporting/headline-templates/debug.d.ts +22 -3
  71. package/dist/reporting/headline-templates/debug.d.ts.map +1 -1
  72. package/dist/reporting/headline-templates/debug.js +38 -8
  73. package/dist/reporting/headline-templates/debug.js.map +1 -1
  74. package/dist/reporting/headline-templates/delegate.d.ts.map +1 -1
  75. package/dist/reporting/headline-templates/delegate.js +14 -3
  76. package/dist/reporting/headline-templates/delegate.js.map +1 -1
  77. package/dist/reporting/headline-templates/execute-plan.d.ts.map +1 -1
  78. package/dist/reporting/headline-templates/execute-plan.js +17 -8
  79. package/dist/reporting/headline-templates/execute-plan.js.map +1 -1
  80. package/dist/reporting/headline-templates/research.d.ts +3 -0
  81. package/dist/reporting/headline-templates/research.d.ts.map +1 -0
  82. package/dist/reporting/headline-templates/research.js +23 -0
  83. package/dist/reporting/headline-templates/research.js.map +1 -0
  84. package/dist/reporting/headline-templates/review.d.ts.map +1 -1
  85. package/dist/reporting/headline-templates/review.js +23 -6
  86. package/dist/reporting/headline-templates/review.js.map +1 -1
  87. package/dist/reporting/headline-templates/verify.d.ts.map +1 -1
  88. package/dist/reporting/headline-templates/verify.js +23 -6
  89. package/dist/reporting/headline-templates/verify.js.map +1 -1
  90. package/dist/reporting/headline-text.d.ts +5 -0
  91. package/dist/reporting/headline-text.d.ts.map +1 -1
  92. package/dist/reporting/headline-text.js +36 -5
  93. package/dist/reporting/headline-text.js.map +1 -1
  94. package/dist/reporting/report-parser-slots/research-report.d.ts +30 -0
  95. package/dist/reporting/report-parser-slots/research-report.d.ts.map +1 -0
  96. package/dist/reporting/report-parser-slots/research-report.js +94 -0
  97. package/dist/reporting/report-parser-slots/research-report.js.map +1 -0
  98. package/dist/reporting/report-parser-slots/verify-report.d.ts +17 -0
  99. package/dist/reporting/report-parser-slots/verify-report.d.ts.map +1 -1
  100. package/dist/reporting/report-parser-slots/verify-report.js +45 -3
  101. package/dist/reporting/report-parser-slots/verify-report.js.map +1 -1
  102. package/dist/reporting/severity.d.ts +22 -0
  103. package/dist/reporting/severity.d.ts.map +1 -1
  104. package/dist/reporting/severity.js +36 -0
  105. package/dist/reporting/severity.js.map +1 -1
  106. package/dist/review/annotator-output-parser.d.ts.map +1 -1
  107. package/dist/review/annotator-output-parser.js +94 -14
  108. package/dist/review/annotator-output-parser.js.map +1 -1
  109. package/dist/review/annotator-prompt-builder.d.ts +20 -0
  110. package/dist/review/annotator-prompt-builder.d.ts.map +1 -1
  111. package/dist/review/annotator-prompt-builder.js +54 -3
  112. package/dist/review/annotator-prompt-builder.js.map +1 -1
  113. package/dist/review/reviewer-engine.d.ts +15 -1
  114. package/dist/review/reviewer-engine.d.ts.map +1 -1
  115. package/dist/review/reviewer-engine.js.map +1 -1
  116. package/dist/review/reviewer-output-parser.d.ts.map +1 -1
  117. package/dist/review/reviewer-output-parser.js +171 -16
  118. package/dist/review/reviewer-output-parser.js.map +1 -1
  119. package/dist/review/reviewer-prompt-builder.d.ts +5 -13
  120. package/dist/review/reviewer-prompt-builder.d.ts.map +1 -1
  121. package/dist/review/reviewer-prompt-builder.js.map +1 -1
  122. package/dist/review/templates/annotator-audit.d.ts.map +1 -1
  123. package/dist/review/templates/annotator-audit.js +13 -0
  124. package/dist/review/templates/annotator-audit.js.map +1 -1
  125. package/dist/review/templates/annotator-debug.d.ts.map +1 -1
  126. package/dist/review/templates/annotator-debug.js +11 -1
  127. package/dist/review/templates/annotator-debug.js.map +1 -1
  128. package/dist/review/templates/annotator-investigate.d.ts.map +1 -1
  129. package/dist/review/templates/annotator-investigate.js +10 -1
  130. package/dist/review/templates/annotator-investigate.js.map +1 -1
  131. package/dist/review/templates/annotator-review.d.ts.map +1 -1
  132. package/dist/review/templates/annotator-review.js +10 -0
  133. package/dist/review/templates/annotator-review.js.map +1 -1
  134. package/dist/review/templates/annotator-shared.d.ts +7 -1
  135. package/dist/review/templates/annotator-shared.d.ts.map +1 -1
  136. package/dist/review/templates/annotator-shared.js +18 -29
  137. package/dist/review/templates/annotator-shared.js.map +1 -1
  138. package/dist/review/templates/annotator-verify.d.ts.map +1 -1
  139. package/dist/review/templates/annotator-verify.js +11 -1
  140. package/dist/review/templates/annotator-verify.js.map +1 -1
  141. package/dist/review/templates/diff-review.d.ts +8 -0
  142. package/dist/review/templates/diff-review.d.ts.map +1 -1
  143. package/dist/review/templates/diff-review.js +34 -2
  144. package/dist/review/templates/diff-review.js.map +1 -1
  145. package/dist/review/templates/finding-criteria.d.ts +15 -0
  146. package/dist/review/templates/finding-criteria.d.ts.map +1 -0
  147. package/dist/review/templates/finding-criteria.js +39 -0
  148. package/dist/review/templates/finding-criteria.js.map +1 -0
  149. package/dist/review/templates/quality-review-artifact.d.ts +13 -0
  150. package/dist/review/templates/quality-review-artifact.d.ts.map +1 -1
  151. package/dist/review/templates/quality-review-artifact.js +41 -3
  152. package/dist/review/templates/quality-review-artifact.js.map +1 -1
  153. package/dist/review/templates/quality-review-audit.d.ts.map +1 -1
  154. package/dist/review/templates/quality-review-audit.js +3 -2
  155. package/dist/review/templates/quality-review-audit.js.map +1 -1
  156. package/dist/review/templates/quality-review-debug.d.ts.map +1 -1
  157. package/dist/review/templates/quality-review-debug.js +3 -2
  158. package/dist/review/templates/quality-review-debug.js.map +1 -1
  159. package/dist/review/templates/quality-review-investigate.d.ts.map +1 -1
  160. package/dist/review/templates/quality-review-investigate.js +3 -2
  161. package/dist/review/templates/quality-review-investigate.js.map +1 -1
  162. package/dist/review/templates/quality-review-review.d.ts.map +1 -1
  163. package/dist/review/templates/quality-review-review.js +3 -2
  164. package/dist/review/templates/quality-review-review.js.map +1 -1
  165. package/dist/review/templates/quality-review-verify.d.ts.map +1 -1
  166. package/dist/review/templates/quality-review-verify.js +3 -2
  167. package/dist/review/templates/quality-review-verify.js.map +1 -1
  168. package/dist/review/templates/shared.d.ts +22 -5
  169. package/dist/review/templates/shared.d.ts.map +1 -1
  170. package/dist/review/templates/spec-review.d.ts +15 -0
  171. package/dist/review/templates/spec-review.d.ts.map +1 -1
  172. package/dist/review/templates/spec-review.js +43 -3
  173. package/dist/review/templates/spec-review.js.map +1 -1
  174. package/dist/stores/file-backed-context-block-store.d.ts +5 -1
  175. package/dist/stores/file-backed-context-block-store.d.ts.map +1 -1
  176. package/dist/stores/file-backed-context-block-store.js +16 -19
  177. package/dist/stores/file-backed-context-block-store.js.map +1 -1
  178. package/dist/stores/project-context-registry.d.ts +5 -3
  179. package/dist/stores/project-context-registry.d.ts.map +1 -1
  180. package/dist/stores/project-context-registry.js.map +1 -1
  181. package/dist/tool-surface/openapi-generator.d.ts.map +1 -1
  182. package/dist/tool-surface/openapi-generator.js +4 -4
  183. package/dist/tool-surface/openapi-generator.js.map +1 -1
  184. package/dist/tool-surface/register-all-tools.js +3 -3
  185. package/dist/tool-surface/register-all-tools.js.map +1 -1
  186. package/dist/tools/audit/implementer-criteria.d.ts +17 -0
  187. package/dist/tools/audit/implementer-criteria.d.ts.map +1 -0
  188. package/dist/tools/audit/implementer-criteria.js +36 -0
  189. package/dist/tools/audit/implementer-criteria.js.map +1 -0
  190. package/dist/tools/audit/tool-config.d.ts.map +1 -1
  191. package/dist/tools/audit/tool-config.js +24 -6
  192. package/dist/tools/audit/tool-config.js.map +1 -1
  193. package/dist/tools/debug/implementer-criteria.d.ts +12 -0
  194. package/dist/tools/debug/implementer-criteria.d.ts.map +1 -0
  195. package/dist/tools/debug/implementer-criteria.js +29 -0
  196. package/dist/tools/debug/implementer-criteria.js.map +1 -0
  197. package/dist/tools/debug/tool-config.d.ts.map +1 -1
  198. package/dist/tools/debug/tool-config.js +18 -4
  199. package/dist/tools/debug/tool-config.js.map +1 -1
  200. package/dist/tools/execute-plan/tool-config.d.ts.map +1 -1
  201. package/dist/tools/execute-plan/tool-config.js +5 -1
  202. package/dist/tools/execute-plan/tool-config.js.map +1 -1
  203. package/dist/tools/index.d.ts +0 -1
  204. package/dist/tools/index.d.ts.map +1 -1
  205. package/dist/tools/index.js +0 -1
  206. package/dist/tools/index.js.map +1 -1
  207. package/dist/tools/investigate/implementer-criteria.d.ts +17 -0
  208. package/dist/tools/investigate/implementer-criteria.d.ts.map +1 -0
  209. package/dist/tools/investigate/implementer-criteria.js +33 -0
  210. package/dist/tools/investigate/implementer-criteria.js.map +1 -0
  211. package/dist/tools/investigate/tool-config.d.ts +13 -1
  212. package/dist/tools/investigate/tool-config.d.ts.map +1 -1
  213. package/dist/tools/investigate/tool-config.js +34 -4
  214. package/dist/tools/investigate/tool-config.js.map +1 -1
  215. package/dist/tools/research/implementer-criteria.d.ts +15 -0
  216. package/dist/tools/research/implementer-criteria.d.ts.map +1 -0
  217. package/dist/tools/research/implementer-criteria.js +37 -0
  218. package/dist/tools/research/implementer-criteria.js.map +1 -0
  219. package/dist/tools/{explore → research}/schema.d.ts +2 -3
  220. package/dist/tools/research/schema.d.ts.map +1 -0
  221. package/dist/tools/{explore → research}/schema.js +10 -16
  222. package/dist/tools/research/schema.js.map +1 -0
  223. package/dist/tools/research/tool-config.d.ts +20 -0
  224. package/dist/tools/research/tool-config.d.ts.map +1 -0
  225. package/dist/tools/research/tool-config.js +51 -0
  226. package/dist/tools/research/tool-config.js.map +1 -0
  227. package/dist/tools/retry/tool-config.d.ts.map +1 -1
  228. package/dist/tools/retry/tool-config.js +27 -4
  229. package/dist/tools/retry/tool-config.js.map +1 -1
  230. package/dist/tools/review/implementer-criteria.d.ts +11 -0
  231. package/dist/tools/review/implementer-criteria.d.ts.map +1 -0
  232. package/dist/tools/review/implementer-criteria.js +27 -0
  233. package/dist/tools/review/implementer-criteria.js.map +1 -0
  234. package/dist/tools/review/tool-config.d.ts.map +1 -1
  235. package/dist/tools/review/tool-config.js +43 -4
  236. package/dist/tools/review/tool-config.js.map +1 -1
  237. package/dist/tools/verify/implementer-criteria.d.ts +12 -0
  238. package/dist/tools/verify/implementer-criteria.d.ts.map +1 -0
  239. package/dist/tools/verify/implementer-criteria.js +29 -0
  240. package/dist/tools/verify/implementer-criteria.js.map +1 -0
  241. package/dist/tools/verify/tool-config.d.ts.map +1 -1
  242. package/dist/tools/verify/tool-config.js +18 -4
  243. package/dist/tools/verify/tool-config.js.map +1 -1
  244. package/dist/types/enums.d.ts +1 -11
  245. package/dist/types/enums.d.ts.map +1 -1
  246. package/dist/types/enums.js +2 -4
  247. package/dist/types/enums.js.map +1 -1
  248. package/package.json +12 -40
  249. package/dist/intake/brief-compiler-slots/audit.d.ts +0 -23
  250. package/dist/intake/brief-compiler-slots/audit.d.ts.map +0 -1
  251. package/dist/intake/brief-compiler-slots/audit.js +0 -61
  252. package/dist/intake/brief-compiler-slots/audit.js.map +0 -1
  253. package/dist/intake/brief-compiler-slots/explore.d.ts +0 -43
  254. package/dist/intake/brief-compiler-slots/explore.d.ts.map +0 -1
  255. package/dist/intake/brief-compiler-slots/explore.js +0 -116
  256. package/dist/intake/brief-compiler-slots/explore.js.map +0 -1
  257. package/dist/intake/brief-compiler-slots/investigate.d.ts +0 -26
  258. package/dist/intake/brief-compiler-slots/investigate.d.ts.map +0 -1
  259. package/dist/intake/brief-compiler-slots/investigate.js +0 -42
  260. package/dist/intake/brief-compiler-slots/investigate.js.map +0 -1
  261. package/dist/intake/brief-compiler-slots/verify.d.ts +0 -21
  262. package/dist/intake/brief-compiler-slots/verify.d.ts.map +0 -1
  263. package/dist/intake/brief-compiler-slots/verify.js +0 -62
  264. package/dist/intake/brief-compiler-slots/verify.js.map +0 -1
  265. package/dist/reporting/compose-explore-headline.d.ts +0 -14
  266. package/dist/reporting/compose-explore-headline.d.ts.map +0 -1
  267. package/dist/reporting/compose-explore-headline.js +0 -14
  268. package/dist/reporting/compose-explore-headline.js.map +0 -1
  269. package/dist/reporting/derive-explore-status.d.ts +0 -18
  270. package/dist/reporting/derive-explore-status.d.ts.map +0 -1
  271. package/dist/reporting/derive-explore-status.js +0 -15
  272. package/dist/reporting/derive-explore-status.js.map +0 -1
  273. package/dist/reporting/headline-templates/explore.d.ts +0 -3
  274. package/dist/reporting/headline-templates/explore.d.ts.map +0 -1
  275. package/dist/reporting/headline-templates/explore.js +0 -13
  276. package/dist/reporting/headline-templates/explore.js.map +0 -1
  277. package/dist/reporting/parse-explore-report.d.ts +0 -38
  278. package/dist/reporting/parse-explore-report.d.ts.map +0 -1
  279. package/dist/reporting/parse-explore-report.js +0 -185
  280. package/dist/reporting/parse-explore-report.js.map +0 -1
  281. package/dist/reporting/report-parser-slots/explore-report.d.ts +0 -17
  282. package/dist/reporting/report-parser-slots/explore-report.d.ts.map +0 -1
  283. package/dist/reporting/report-parser-slots/explore-report.js +0 -9
  284. package/dist/reporting/report-parser-slots/explore-report.js.map +0 -1
  285. package/dist/research/explore-orchestrator.d.ts +0 -14
  286. package/dist/research/explore-orchestrator.d.ts.map +0 -1
  287. package/dist/research/explore-orchestrator.js +0 -362
  288. package/dist/research/explore-orchestrator.js.map +0 -1
  289. package/dist/tools/explore/schema.d.ts.map +0 -1
  290. package/dist/tools/explore/schema.js.map +0 -1
  291. package/dist/tools/explore/tool-config.d.ts +0 -7
  292. package/dist/tools/explore/tool-config.d.ts.map +0 -1
  293. package/dist/tools/explore/tool-config.js +0 -36
  294. package/dist/tools/explore/tool-config.js.map +0 -1
@@ -1,362 +0,0 @@
1
- import { randomUUID } from 'node:crypto';
2
- import { runTaskViaDispatcher } from '../lifecycle/task-runner.js';
3
- import { resolveAgent } from '../escalation/agent-resolver.js';
4
- import { computeTimings, computeAggregateCost } from '../lifecycle/shared-compute.js';
5
- import { notApplicable } from '../reporting/not-applicable.js';
6
- import { compileExplore, } from '../intake/brief-compiler-slots/explore.js';
7
- import { parseExploreReport, } from '../reporting/parse-explore-report.js';
8
- import { deriveExploreStatus } from '../reporting/derive-explore-status.js';
9
- import { composeExploreHeadline } from '../reporting/compose-explore-headline.js';
10
- import { mapReviewVerdicts } from '../review/review-verdict-mapping.js';
11
- // ---------------------------------------------------------------------------
12
- // Helpers
13
- // ---------------------------------------------------------------------------
14
- function isFailed(result) {
15
- return result.status === 'error' || result.status === 'api_error'
16
- || result.status === 'provider_transport_failure' || result.status === 'unavailable'
17
- || result.status === 'api_aborted' || result.status === 'timeout'
18
- || result.status === 'cost_exceeded' || result.status === 'brief_too_vague'
19
- || result.status === 'incomplete';
20
- }
21
- function extractReportText(result) {
22
- return result?.output ?? '';
23
- }
24
- function buildFallbackResult(msg) {
25
- return {
26
- output: '',
27
- status: 'error',
28
- usage: { inputTokens: 0, outputTokens: 0, cachedReadTokens: 0, cachedNonReadTokens: 0 },
29
- turns: 0,
30
- filesRead: [],
31
- filesWritten: [],
32
- toolCalls: [],
33
- outputIsDiagnostic: false,
34
- escalationLog: [],
35
- error: msg,
36
- errorCode: 'runner_crash',
37
- retryable: false,
38
- durationMs: 0,
39
- directoriesListed: [],
40
- structuredReport: {
41
- summary: null,
42
- filesChanged: [],
43
- validationsRun: [],
44
- deviationsFromBrief: [],
45
- unresolved: [],
46
- extraSections: {},
47
- },
48
- parsedFindings: [],
49
- workerStatus: 'failed',
50
- structuredError: {
51
- code: 'runner_crash',
52
- message: msg,
53
- where: 'orchestrator:explore',
54
- },
55
- };
56
- }
57
- async function runLifecycleTask(args) {
58
- const { task, resolved, config, ctx, bus, route } = args;
59
- return runTaskViaDispatcher({
60
- task: task,
61
- resolved,
62
- config,
63
- taskIndex: 0,
64
- batchId: ctx.batchId,
65
- recordHeartbeat: ctx.recordHeartbeat,
66
- logger: ctx.logger,
67
- recorder: ctx.recorder,
68
- route,
69
- client: ctx.client,
70
- bus,
71
- });
72
- }
73
- // ---------------------------------------------------------------------------
74
- // Orchestrator
75
- // ---------------------------------------------------------------------------
76
- export async function executeExplore(ctx, args) {
77
- const { config } = ctx;
78
- const cwd = ctx.projectContext.cwd;
79
- const batchId = ctx.batchId ?? randomUUID();
80
- const research = config.research;
81
- const hasBrave = (research?.brave?.apiKeys?.length ?? 0) > 0;
82
- let resolved;
83
- try {
84
- resolved = resolveAgent('complex', config);
85
- }
86
- catch (e) {
87
- const err = e instanceof Error ? e : new Error(String(e));
88
- const fallback = buildFallbackResult(err.message);
89
- return {
90
- headline: `explore: agent resolution failed — ${err.message}`,
91
- results: [fallback],
92
- batchTimings: computeTimings(0, [fallback]),
93
- costSummary: computeAggregateCost([fallback]),
94
- structuredReport: notApplicable('agent resolution failed'),
95
- error: notApplicable('batch succeeded'),
96
- batchId,
97
- wallClockMs: 0,
98
- mainModel: ctx.mainModel,
99
- specReviewVerdict: 'not_applicable',
100
- qualityReviewVerdict: 'not_applicable',
101
- roundsUsed: 0,
102
- };
103
- }
104
- const promptAnchors = args.relativeAnchorsForPrompt.length
105
- ? args.relativeAnchorsForPrompt
106
- : args.canonicalizedAnchors;
107
- const compiled = compileExplore(args.input, args.resolvedContextBlocks, promptAnchors, cwd, {
108
- userSources: research?.userSources ?? [],
109
- hasBrave,
110
- absoluteAnchors: args.canonicalizedAnchors,
111
- });
112
- if (compiled.tasks.length !== 3) {
113
- throw new Error(`compileExplore produced ${compiled.tasks.length} tasks; expected exactly 3`);
114
- }
115
- const internalTask = compiled.tasks[0];
116
- const externalTask = compiled.tasks[1];
117
- if (internalTask.route !== 'explore_internal' || externalTask.route !== 'explore_external') {
118
- throw new Error(`compileExplore task route mismatch: ${internalTask.route} / ${externalTask.route}`);
119
- }
120
- let internalProvider;
121
- let externalProvider;
122
- try {
123
- internalProvider = resolveAgent('complex', config);
124
- externalProvider = resolveAgent('complex', config);
125
- }
126
- catch (e) {
127
- const err = e instanceof Error ? e : new Error(String(e));
128
- const fallback = buildFallbackResult(err.message);
129
- return {
130
- headline: `explore: provider resolution failed — ${err.message}`,
131
- results: [fallback],
132
- batchTimings: computeTimings(0, [fallback]),
133
- costSummary: computeAggregateCost([fallback]),
134
- structuredReport: notApplicable('provider resolution failed'),
135
- error: notApplicable('batch succeeded'),
136
- batchId,
137
- wallClockMs: 0,
138
- mainModel: ctx.mainModel,
139
- specReviewVerdict: 'not_applicable',
140
- qualityReviewVerdict: 'not_applicable',
141
- roundsUsed: 0,
142
- };
143
- }
144
- if (args.customToolset && args.customToolset.length > 0) {
145
- externalTask.customToolset = args.customToolset;
146
- }
147
- const startMs = Date.now();
148
- ctx.bus?.emit({
149
- event: 'explore_parallel_start',
150
- ts: new Date().toISOString(),
151
- batchId,
152
- internalRoute: internalTask.route,
153
- externalRoute: externalTask.route,
154
- });
155
- // --- Parallel fan-out: internal (#0) + external (#1) ---
156
- const [internalResult, externalResult] = await Promise.all([
157
- runLifecycleTask({
158
- task: internalTask,
159
- resolved: internalProvider,
160
- config,
161
- ctx,
162
- bus: ctx.bus,
163
- route: internalTask.route,
164
- }).catch((e) => {
165
- const err = e instanceof Error ? e : new Error(String(e));
166
- return buildFallbackResult(err.message);
167
- }),
168
- runLifecycleTask({
169
- task: externalTask,
170
- resolved: externalProvider,
171
- config,
172
- ctx,
173
- bus: ctx.bus,
174
- route: externalTask.route,
175
- }).catch((e) => {
176
- const err = e instanceof Error ? e : new Error(String(e));
177
- return buildFallbackResult(err.message);
178
- }),
179
- ]);
180
- const internalOk = !isFailed(internalResult);
181
- const externalOk = !isFailed(externalResult);
182
- ctx.bus?.emit({
183
- event: 'explore_parallel_end',
184
- ts: new Date().toISOString(),
185
- batchId,
186
- internalOk,
187
- externalOk,
188
- internalDurationMs: internalResult.durationMs ?? 0,
189
- externalDurationMs: externalResult.durationMs ?? 0,
190
- });
191
- const degraded = [];
192
- if (!internalOk) {
193
- degraded.push('internal');
194
- ctx.bus?.emit({
195
- event: 'explore_internal_unavailable',
196
- ts: new Date().toISOString(),
197
- batchId,
198
- reason: internalResult.structuredError?.message ?? 'internal worker failed',
199
- });
200
- }
201
- if (!externalOk) {
202
- degraded.push('external');
203
- ctx.bus?.emit({
204
- event: 'explore_external_unavailable',
205
- ts: new Date().toISOString(),
206
- batchId,
207
- reason: externalResult.structuredError?.message ?? 'external worker failed',
208
- });
209
- }
210
- // --- Synthesizer (#2) ---
211
- const internalReport = internalOk ? extractReportText(internalResult) : undefined;
212
- const externalReport = externalOk ? extractReportText(externalResult) : undefined;
213
- const synthCompiled = compileExplore(args.input, args.resolvedContextBlocks, promptAnchors, cwd, {
214
- userSources: research?.userSources ?? [],
215
- hasBrave,
216
- absoluteAnchors: args.canonicalizedAnchors,
217
- synthesizerDegradedSources: degraded.length ? degraded : undefined,
218
- internalReport,
219
- externalReport,
220
- });
221
- const synthTask = synthCompiled.tasks[2];
222
- ctx.bus?.emit({
223
- event: 'explore_synthesize_start',
224
- ts: new Date().toISOString(),
225
- batchId,
226
- internalAvailable: internalOk,
227
- externalAvailable: externalOk,
228
- });
229
- let synthProvider;
230
- try {
231
- synthProvider = resolveAgent('complex', config);
232
- }
233
- catch (e) {
234
- const err = e instanceof Error ? e : new Error(String(e));
235
- const fallback = buildFallbackResult(err.message);
236
- return {
237
- headline: `explore: synthesizer provider resolution failed — ${err.message}`,
238
- results: [internalResult, externalResult, fallback],
239
- batchTimings: computeTimings(Date.now() - startMs, [internalResult, externalResult, fallback]),
240
- costSummary: computeAggregateCost([internalResult, externalResult, fallback]),
241
- structuredReport: notApplicable('provider resolution failed'),
242
- error: notApplicable('batch succeeded'),
243
- batchId,
244
- wallClockMs: Date.now() - startMs,
245
- mainModel: ctx.mainModel,
246
- specReviewVerdict: 'not_applicable',
247
- qualityReviewVerdict: 'not_applicable',
248
- roundsUsed: 0,
249
- };
250
- }
251
- const synthStartMs = Date.now();
252
- let synthResult;
253
- let synthError;
254
- try {
255
- synthResult = await runLifecycleTask({
256
- task: synthTask,
257
- resolved: synthProvider,
258
- config,
259
- ctx,
260
- bus: ctx.bus,
261
- route: synthTask.route,
262
- });
263
- }
264
- catch (e) {
265
- synthError = e instanceof Error ? e : new Error(String(e));
266
- synthResult = buildFallbackResult(synthError.message);
267
- }
268
- const synthDurationMs = Date.now() - synthStartMs;
269
- // --- Parse synthesizer output ---
270
- const parseResult = parseExploreReport(synthResult?.output ?? '');
271
- let parsedReport;
272
- if (parseResult.kind === 'structured_report') {
273
- parsedReport = parseResult.report;
274
- if (!synthResult.structuredReport) {
275
- synthResult.structuredReport = {
276
- summary: null,
277
- filesChanged: [],
278
- validationsRun: [],
279
- deviationsFromBrief: [],
280
- unresolved: [],
281
- extraSections: {},
282
- };
283
- }
284
- synthResult.structuredReport.explore = parsedReport;
285
- }
286
- const threadCount = parsedReport?.threads.length ?? 0;
287
- if (parsedReport) {
288
- for (const thread of parsedReport.threads) {
289
- ctx.bus?.emit({
290
- event: 'explore_thread_started',
291
- ts: new Date().toISOString(),
292
- batchId,
293
- threadIndex: thread.index,
294
- });
295
- ctx.bus?.emit({
296
- event: 'explore_thread_completed',
297
- ts: new Date().toISOString(),
298
- batchId,
299
- threadIndex: thread.index,
300
- });
301
- }
302
- }
303
- ctx.bus?.emit({
304
- event: 'explore_synthesize_end',
305
- ts: new Date().toISOString(),
306
- batchId,
307
- threadCount,
308
- recommendedNextStep: parsedReport
309
- ? parsedReport.recommendedNextStep !== null && parsedReport.recommendedNextStep !== undefined
310
- : false,
311
- durationMs: synthDurationMs,
312
- });
313
- // --- Derive status ---
314
- const synthFailed = isFailed(synthResult) || synthError !== undefined;
315
- const incompleteReason = synthResult?.incompleteReason;
316
- const workerError = synthError ?? synthResult?.workerError;
317
- const derived = deriveExploreStatus({
318
- workerError,
319
- incompleteReason,
320
- parseDiagnostics: parsedReport?.diagnostics ?? {
321
- malformed: false,
322
- insufficientThreads: false,
323
- droppedThreads: [],
324
- },
325
- threads: threadCount,
326
- });
327
- synthResult.workerStatus = derived.workerStatus;
328
- if (derived.incompleteReason !== undefined) {
329
- synthResult.incompleteReason = derived.incompleteReason;
330
- }
331
- // --- Compute failedCount for headline ---
332
- let failedCount = 0;
333
- if (!internalOk)
334
- failedCount++;
335
- if (!externalOk)
336
- failedCount++;
337
- const allResults = [internalResult, externalResult, synthResult];
338
- const headline = composeExploreHeadline({
339
- taskCount: 3,
340
- failedCount,
341
- threadCount,
342
- synthFailed,
343
- });
344
- const reviewVerdicts = mapReviewVerdicts(synthResult, true);
345
- // --- Aggregate ---
346
- const wallClockMs = Date.now() - startMs;
347
- return {
348
- headline,
349
- results: allResults,
350
- batchTimings: computeTimings(wallClockMs, allResults),
351
- costSummary: computeAggregateCost(allResults),
352
- structuredReport: notApplicable('per-task structured report carried on result'),
353
- error: notApplicable('batch succeeded'),
354
- batchId,
355
- wallClockMs,
356
- mainModel: ctx.mainModel,
357
- specReviewVerdict: reviewVerdicts.specReviewVerdict,
358
- qualityReviewVerdict: reviewVerdicts.qualityReviewVerdict,
359
- roundsUsed: reviewVerdicts.roundsUsed,
360
- };
361
- }
362
- //# sourceMappingURL=explore-orchestrator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"explore-orchestrator.js","sourceRoot":"","sources":["../../src/research/explore-orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAOzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAE/D,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EACL,cAAc,GAEf,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,kBAAkB,GAEnB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAUxE,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,SAAS,QAAQ,CAAC,MAAiB;IACjC,OAAO,MAAM,CAAC,MAAM,KAAK,OAAO,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW;WAC5D,MAAM,CAAC,MAAM,KAAK,4BAA4B,IAAI,MAAM,CAAC,MAAM,KAAK,aAAa;WACjF,MAAM,CAAC,MAAM,KAAK,aAAa,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;WAC9D,MAAM,CAAC,MAAM,KAAK,eAAe,IAAI,MAAM,CAAC,MAAM,KAAK,iBAAiB;WACxE,MAAM,CAAC,MAAM,KAAK,YAAY,CAAC;AACtC,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAiB;IAC1C,OAAO,MAAM,EAAE,MAAM,IAAI,EAAE,CAAC;AAC9B,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAW;IACtC,OAAO;QACL,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,OAAO;QACf,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,mBAAmB,EAAE,CAAC,EAAE;QACvF,KAAK,EAAE,CAAC;QACR,SAAS,EAAE,EAAE;QACb,YAAY,EAAE,EAAE;QAChB,SAAS,EAAE,EAAE;QACb,kBAAkB,EAAE,KAAK;QACzB,aAAa,EAAE,EAAE;QACjB,KAAK,EAAE,GAAG;QACV,SAAS,EAAE,cAAc;QACzB,SAAS,EAAE,KAAK;QAChB,UAAU,EAAE,CAAC;QACb,iBAAiB,EAAE,EAAE;QACrB,gBAAgB,EAAE;YAChB,OAAO,EAAE,IAAI;YACb,YAAY,EAAE,EAAE;YAChB,cAAc,EAAE,EAAE;YAClB,mBAAmB,EAAE,EAAE;YACvB,UAAU,EAAE,EAAE;YACd,aAAa,EAAE,EAAE;SAClB;QACD,cAAc,EAAE,EAAE;QAClB,YAAY,EAAE,QAAQ;QACtB,eAAe,EAAE;YACf,IAAI,EAAE,cAAuB;YAC7B,OAAO,EAAE,GAAG;YACZ,KAAK,EAAE,sBAA+B;SACvC;KACF,CAAC;AACJ,CAAC;AAWD,KAAK,UAAU,gBAAgB,CAAC,IAAuB;IACrD,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IACzD,OAAO,oBAAoB,CAAC;QAC1B,IAAI,EAAE,IAAW;QACjB,QAAQ;QACR,MAAM;QACN,SAAS,EAAE,CAAC;QACZ,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,eAAe,EAAE,GAAG,CAAC,eAAe;QACpC,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,KAAK;QACL,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,GAAG;KACJ,CAAC,CAAC;AACL,CAAC;AAED,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,GAAqB,EACrB,IAA8B;IAE9B,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IACvB,MAAM,GAAG,GAAG,GAAG,CAAC,cAAe,CAAC,GAAG,CAAC;IACpC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,UAAU,EAAE,CAAC;IAE5C,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IACjC,MAAM,QAAQ,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAE7D,IAAI,QAAyC,CAAC;IAC9C,IAAI,CAAC;QACH,QAAQ,GAAG,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClD,OAAO;YACL,QAAQ,EAAE,sCAAsC,GAAG,CAAC,OAAO,EAAE;YAC7D,OAAO,EAAE,CAAC,QAAQ,CAAC;YACnB,YAAY,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;YAC3C,WAAW,EAAE,oBAAoB,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7C,gBAAgB,EAAE,aAAa,CAAC,yBAAyB,CAAC;YAC1D,KAAK,EAAE,aAAa,CAAC,iBAAiB,CAAC;YACvC,OAAO;YACP,WAAW,EAAE,CAAC;YACd,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,iBAAiB,EAAE,gBAAgB;YACnC,oBAAoB,EAAE,gBAAgB;YACtC,UAAU,EAAE,CAAC;SACd,CAAC;IACJ,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM;QACxD,CAAC,CAAC,IAAI,CAAC,wBAAwB;QAC/B,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC;IAE9B,MAAM,QAAQ,GAAG,cAAc,CAC7B,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,qBAAqB,EAC1B,aAAa,EACb,GAAG,EACH;QACE,WAAW,EAAE,QAAQ,EAAE,WAAW,IAAI,EAAE;QACxC,QAAQ;QACR,eAAe,EAAE,IAAI,CAAC,oBAAoB;KAC3C,CACF,CAAC;IAEF,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,2BAA2B,QAAQ,CAAC,KAAK,CAAC,MAAM,4BAA4B,CAAC,CAAC;IAChG,CAAC;IAED,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACvC,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEvC,IAAI,YAAY,CAAC,KAAK,KAAK,kBAAkB,IAAI,YAAY,CAAC,KAAK,KAAK,kBAAkB,EAAE,CAAC;QAC3F,MAAM,IAAI,KAAK,CACb,uCAAuC,YAAY,CAAC,KAAK,MAAM,YAAY,CAAC,KAAK,EAAE,CACpF,CAAC;IACJ,CAAC;IAED,IAAI,gBAAiD,CAAC;IACtD,IAAI,gBAAiD,CAAC;IACtD,IAAI,CAAC;QACH,gBAAgB,GAAG,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACnD,gBAAgB,GAAG,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACrD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClD,OAAO;YACL,QAAQ,EAAE,yCAAyC,GAAG,CAAC,OAAO,EAAE;YAChE,OAAO,EAAE,CAAC,QAAQ,CAAC;YACnB,YAAY,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;YAC3C,WAAW,EAAE,oBAAoB,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7C,gBAAgB,EAAE,aAAa,CAAC,4BAA4B,CAAC;YAC7D,KAAK,EAAE,aAAa,CAAC,iBAAiB,CAAC;YACvC,OAAO;YACP,WAAW,EAAE,CAAC;YACd,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,iBAAiB,EAAE,gBAAgB;YACnC,oBAAoB,EAAE,gBAAgB;YACtC,UAAU,EAAE,CAAC;SACd,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxD,YAAY,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;IAClD,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE3B,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC;QACZ,KAAK,EAAE,wBAAwB;QAC/B,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QAC5B,OAAO;QACP,aAAa,EAAE,YAAY,CAAC,KAAK;QACjC,aAAa,EAAE,YAAY,CAAC,KAAK;KAClC,CAAC,CAAC;IAEH,0DAA0D;IAE1D,MAAM,CAAC,cAAc,EAAE,cAAc,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACzD,gBAAgB,CAAC;YACf,IAAI,EAAE,YAAY;YAClB,QAAQ,EAAE,gBAAgB;YAC1B,MAAM;YACN,GAAG;YACH,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,KAAK,EAAE,YAAY,CAAC,KAAK;SAC1B,CAAC,CAAC,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE;YACtB,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1D,OAAO,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC,CAAC;QACF,gBAAgB,CAAC;YACf,IAAI,EAAE,YAAY;YAClB,QAAQ,EAAE,gBAAgB;YAC1B,MAAM;YACN,GAAG;YACH,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,KAAK,EAAE,YAAY,CAAC,KAAK;SAC1B,CAAC,CAAC,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE;YACtB,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1D,OAAO,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC,CAAC;KACH,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IAE7C,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC;QACZ,KAAK,EAAE,sBAAsB;QAC7B,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QAC5B,OAAO;QACP,UAAU;QACV,UAAU;QACV,kBAAkB,EAAE,cAAc,CAAC,UAAU,IAAI,CAAC;QAClD,kBAAkB,EAAE,cAAc,CAAC,UAAU,IAAI,CAAC;KACnD,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAgC,EAAE,CAAC;IACjD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1B,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC;YACZ,KAAK,EAAE,8BAA8B;YACrC,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAC5B,OAAO;YACP,MAAM,EAAE,cAAc,CAAC,eAAe,EAAE,OAAO,IAAI,wBAAwB;SAC5E,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1B,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC;YACZ,KAAK,EAAE,8BAA8B;YACrC,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAC5B,OAAO;YACP,MAAM,EAAE,cAAc,CAAC,eAAe,EAAE,OAAO,IAAI,wBAAwB;SAC5E,CAAC,CAAC;IACL,CAAC;IAED,2BAA2B;IAE3B,MAAM,cAAc,GAAG,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAClF,MAAM,cAAc,GAAG,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAElF,MAAM,aAAa,GAAG,cAAc,CAClC,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,qBAAqB,EAC1B,aAAa,EACb,GAAG,EACH;QACE,WAAW,EAAE,QAAQ,EAAE,WAAW,IAAI,EAAE;QACxC,QAAQ;QACR,eAAe,EAAE,IAAI,CAAC,oBAAoB;QAC1C,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;QAClE,cAAc;QACd,cAAc;KACf,CACF,CAAC;IAEF,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEzC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC;QACZ,KAAK,EAAE,0BAA0B;QACjC,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QAC5B,OAAO;QACP,iBAAiB,EAAE,UAAU;QAC7B,iBAAiB,EAAE,UAAU;KAC9B,CAAC,CAAC;IAEH,IAAI,aAA8C,CAAC;IACnD,IAAI,CAAC;QACH,aAAa,GAAG,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClD,OAAO;YACL,QAAQ,EAAE,qDAAqD,GAAG,CAAC,OAAO,EAAE;YAC5E,OAAO,EAAE,CAAC,cAAc,EAAE,cAAc,EAAE,QAAQ,CAAC;YACnD,YAAY,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC,cAAc,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;YAC9F,WAAW,EAAE,oBAAoB,CAAC,CAAC,cAAc,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;YAC7E,gBAAgB,EAAE,aAAa,CAAC,4BAA4B,CAAC;YAC7D,KAAK,EAAE,aAAa,CAAC,iBAAiB,CAAC;YACvC,OAAO;YACP,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO;YACjC,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,iBAAiB,EAAE,gBAAgB;YACnC,oBAAoB,EAAE,gBAAgB;YACtC,UAAU,EAAE,CAAC;SACd,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAChC,IAAI,WAAsB,CAAC;IAC3B,IAAI,UAA6B,CAAC;IAClC,IAAI,CAAC;QACH,WAAW,GAAG,MAAM,gBAAgB,CAAC;YACnC,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,aAAa;YACvB,MAAM;YACN,GAAG;YACH,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,KAAK,EAAE,SAAS,CAAC,KAAK;SACvB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,UAAU,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,WAAW,GAAG,mBAAmB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACxD,CAAC;IACD,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC;IAElD,mCAAmC;IAEnC,MAAM,WAAW,GAAG,kBAAkB,CAAC,WAAW,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;IAClE,IAAI,YAA6C,CAAC;IAClD,IAAI,WAAW,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;QAC7C,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC;QAClC,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC;YACjC,WAAmB,CAAC,gBAAgB,GAAG;gBACtC,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,EAAE;gBAChB,cAAc,EAAE,EAAE;gBAClB,mBAAmB,EAAE,EAAE;gBACvB,UAAU,EAAE,EAAE;gBACd,aAAa,EAAE,EAAE;aAClB,CAAC;QACJ,CAAC;QACA,WAAW,CAAC,gBAAwB,CAAC,OAAO,GAAG,YAAY,CAAC;IAC/D,CAAC;IAED,MAAM,WAAW,GAAG,YAAY,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;IAEtD,IAAI,YAAY,EAAE,CAAC;QACjB,KAAK,MAAM,MAAM,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;YAC1C,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC;gBACZ,KAAK,EAAE,wBAAwB;gBAC/B,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBAC5B,OAAO;gBACP,WAAW,EAAE,MAAM,CAAC,KAAK;aAC1B,CAAC,CAAC;YACH,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC;gBACZ,KAAK,EAAE,0BAA0B;gBACjC,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBAC5B,OAAO;gBACP,WAAW,EAAE,MAAM,CAAC,KAAK;aAC1B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC;QACZ,KAAK,EAAE,wBAAwB;QAC/B,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QAC5B,OAAO;QACP,WAAW;QACX,mBAAmB,EAAE,YAAY;YAC/B,CAAC,CAAC,YAAY,CAAC,mBAAmB,KAAK,IAAI,IAAI,YAAY,CAAC,mBAAmB,KAAK,SAAS;YAC7F,CAAC,CAAC,KAAK;QACT,UAAU,EAAE,eAAe;KAC5B,CAAC,CAAC;IAEH,wBAAwB;IAExB,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,UAAU,KAAK,SAAS,CAAC;IACtE,MAAM,gBAAgB,GAAI,WAAmB,EAAE,gBAAmE,CAAC;IACnH,MAAM,WAAW,GAAG,UAAU,IAAM,WAAmB,EAAE,WAAiC,CAAC;IAE3F,MAAM,OAAO,GAAG,mBAAmB,CAAC;QAClC,WAAW;QACX,gBAAgB;QAChB,gBAAgB,EAAE,YAAY,EAAE,WAAW,IAAI;YAC7C,SAAS,EAAE,KAAK;YAChB,mBAAmB,EAAE,KAAK;YAC1B,cAAc,EAAE,EAAE;SACnB;QACD,OAAO,EAAE,WAAW;KACrB,CAAC,CAAC;IAEF,WAAmB,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IACzD,IAAI,OAAO,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;QAC1C,WAAmB,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IACnE,CAAC;IAED,2CAA2C;IAE3C,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,CAAC,UAAU;QAAE,WAAW,EAAE,CAAC;IAC/B,IAAI,CAAC,UAAU;QAAE,WAAW,EAAE,CAAC;IAE/B,MAAM,UAAU,GAAG,CAAC,cAAc,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;IAEjE,MAAM,QAAQ,GAAG,sBAAsB,CAAC;QACtC,SAAS,EAAE,CAAC;QACZ,WAAW;QACX,WAAW;QACX,WAAW;KACZ,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,iBAAiB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAE5D,oBAAoB;IAEpB,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;IAEzC,OAAO;QACL,QAAQ;QACR,OAAO,EAAE,UAAU;QACnB,YAAY,EAAE,cAAc,CAAC,WAAW,EAAE,UAAU,CAAC;QACrD,WAAW,EAAE,oBAAoB,CAAC,UAAU,CAAC;QAC7C,gBAAgB,EAAE,aAAa,CAAC,8CAA8C,CAAC;QAC/E,KAAK,EAAE,aAAa,CAAC,iBAAiB,CAAC;QACvC,OAAO;QACP,WAAW;QACX,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,iBAAiB,EAAE,cAAc,CAAC,iBAAiB;QACnD,oBAAoB,EAAE,cAAc,CAAC,oBAAoB;QACzD,UAAU,EAAE,cAAc,CAAC,UAAU;KACtC,CAAC;AACJ,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/tools/explore/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA4BxB,eAAO,MAAM,WAAW;;;;;kBAyCC,CAAC;AAE1B,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/tools/explore/schema.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import { ToolSurfaceRegistry } from '../../tool-surface/tool-surface-registry.js';
2
- import type { Input } from './schema.js';
3
- import type { ToolConfig } from '../../lifecycle/tool-config-types.js';
4
- import { type ExploreReport } from '../../reporting/report-parser-slots/explore-report.js';
5
- export declare function registerExplore(registry: ToolSurfaceRegistry): void;
6
- export declare const toolConfig: ToolConfig<Input, Input, ExploreReport>;
7
- //# sourceMappingURL=tool-config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool-config.d.ts","sourceRoot":"","sources":["../../../src/tools/explore/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;AACvE,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,uDAAuD,CAAC;AAGhH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAYnE;AAED,eAAO,MAAM,UAAU,EAAE,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,aAAa,CAkB9D,CAAC"}
@@ -1,36 +0,0 @@
1
- import { inputSchema } from './schema.js';
2
- import { exploreReportSchema } from '../../reporting/report-parser-slots/explore-report.js';
3
- import { exploreHeadlineTemplate } from '../../reporting/headline-templates/explore.js';
4
- export function registerExplore(registry) {
5
- registry.register({
6
- routeName: 'explore',
7
- httpMethod: 'POST',
8
- httpPath: '/explore',
9
- surface: 'tool',
10
- schema: inputSchema,
11
- toolCategory: 'research',
12
- agentTypeDefault: 'complex',
13
- agentTypeOverridable: false,
14
- responseShapeName: 'BatchResponse',
15
- });
16
- }
17
- export const toolConfig = {
18
- name: 'explore',
19
- category: 'research',
20
- agentType: 'complex',
21
- briefSlot: (input) => [input],
22
- buildTaskSpec: (brief, ctx) => ({
23
- prompt: `Explore: ${brief.explorationQuestion ?? ''}\n\nContext: ${brief.currentContext ?? ''}`,
24
- agentType: 'complex',
25
- reviewPolicy: 'none',
26
- cwd: ctx.projectContext?.cwd ?? ctx.cwd,
27
- contextBlockIds: brief.contextBlockIds,
28
- tools: ctx.config.defaults?.tools ?? 'full',
29
- timeoutMs: ctx.config.defaults?.timeoutMs,
30
- maxCostUSD: ctx.config.defaults?.maxCostUSD,
31
- sandboxPolicy: ctx.config.defaults?.sandboxPolicy ?? 'cwd-only',
32
- }),
33
- reportSchema: exploreReportSchema,
34
- headlineTemplate: exploreHeadlineTemplate,
35
- };
36
- //# sourceMappingURL=tool-config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool-config.js","sourceRoot":"","sources":["../../../src/tools/explore/tool-config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C,OAAO,EAAE,mBAAmB,EAAsB,MAAM,uDAAuD,CAAC;AAChH,OAAO,EAAE,uBAAuB,EAAE,MAAM,+CAA+C,CAAC;AAExF,MAAM,UAAU,eAAe,CAAC,QAA6B;IAC3D,QAAQ,CAAC,QAAQ,CAAC;QAChB,SAAS,EAAE,SAAS;QACpB,UAAU,EAAE,MAAM;QAClB,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,MAAM;QACf,MAAM,EAAE,WAAW;QACnB,YAAY,EAAE,UAAU;QACxB,gBAAgB,EAAE,SAAS;QAC3B,oBAAoB,EAAE,KAAK;QAC3B,iBAAiB,EAAE,eAAe;KACnC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAA4C;IACjE,IAAI,EAAE,SAAS;IACf,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC;IAC7B,aAAa,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAC9B,MAAM,EAAE,YAAY,KAAK,CAAC,mBAAmB,IAAI,EAAE,gBAAgB,KAAK,CAAC,cAAc,IAAI,EAAE,EAAE;QAC/F,SAAS,EAAE,SAAS;QACpB,YAAY,EAAE,MAAe;QAC7B,GAAG,EAAE,GAAG,CAAC,cAAc,EAAE,GAAG,IAAI,GAAG,CAAC,GAAG;QACvC,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,IAAI,MAAM;QAC3C,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS;QACzC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU;QAC3C,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,aAAa,IAAI,UAAU;KAChE,CAAC;IACF,YAAY,EAAE,mBAAmB;IACjC,gBAAgB,EAAE,uBAAuB;CAC1C,CAAC"}