@mcp-abap-adt/llm-agent-libs 16.2.0 → 18.0.0

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 (198) hide show
  1. package/dist/adapters/llm-provider-bridge.js +2 -2
  2. package/dist/adapters/llm-provider-bridge.js.map +1 -1
  3. package/dist/agent.d.ts.map +1 -1
  4. package/dist/agent.js +48 -37
  5. package/dist/agent.js.map +1 -1
  6. package/dist/builder.d.ts +19 -0
  7. package/dist/builder.d.ts.map +1 -1
  8. package/dist/builder.js +29 -3
  9. package/dist/builder.js.map +1 -1
  10. package/dist/classifier/llm-classifier.d.ts.map +1 -1
  11. package/dist/classifier/llm-classifier.js +1 -0
  12. package/dist/classifier/llm-classifier.js.map +1 -1
  13. package/dist/coordinator/dag/abort-error-strategy.d.ts +7 -0
  14. package/dist/coordinator/dag/abort-error-strategy.d.ts.map +1 -0
  15. package/dist/coordinator/dag/abort-error-strategy.js +8 -0
  16. package/dist/coordinator/dag/abort-error-strategy.js.map +1 -0
  17. package/dist/coordinator/dag/compose-node-task.d.ts +8 -0
  18. package/dist/coordinator/dag/compose-node-task.d.ts.map +1 -0
  19. package/dist/coordinator/dag/compose-node-task.js +41 -0
  20. package/dist/coordinator/dag/compose-node-task.js.map +1 -0
  21. package/dist/coordinator/dag/dag-plan-interpreter.d.ts +9 -0
  22. package/dist/coordinator/dag/dag-plan-interpreter.d.ts.map +1 -0
  23. package/dist/coordinator/dag/dag-plan-interpreter.js +236 -0
  24. package/dist/coordinator/dag/dag-plan-interpreter.js.map +1 -0
  25. package/dist/coordinator/dag/index.d.ts +5 -0
  26. package/dist/coordinator/dag/index.d.ts.map +1 -0
  27. package/dist/coordinator/dag/index.js +5 -0
  28. package/dist/coordinator/dag/index.js.map +1 -0
  29. package/dist/coordinator/dag/llm-dag-planner.d.ts +24 -0
  30. package/dist/coordinator/dag/llm-dag-planner.d.ts.map +1 -0
  31. package/dist/coordinator/dag/llm-dag-planner.js +161 -0
  32. package/dist/coordinator/dag/llm-dag-planner.js.map +1 -0
  33. package/dist/coordinator/dag/llm-finalizer.d.ts +21 -0
  34. package/dist/coordinator/dag/llm-finalizer.d.ts.map +1 -0
  35. package/dist/coordinator/dag/llm-finalizer.js +77 -0
  36. package/dist/coordinator/dag/llm-finalizer.js.map +1 -0
  37. package/dist/coordinator/dag/llm-review-strategy.d.ts +17 -0
  38. package/dist/coordinator/dag/llm-review-strategy.d.ts.map +1 -0
  39. package/dist/coordinator/dag/llm-review-strategy.js +149 -0
  40. package/dist/coordinator/dag/llm-review-strategy.js.map +1 -0
  41. package/dist/coordinator/dag/noop-review-strategy.d.ts +8 -0
  42. package/dist/coordinator/dag/noop-review-strategy.d.ts.map +1 -0
  43. package/dist/coordinator/dag/noop-review-strategy.js +11 -0
  44. package/dist/coordinator/dag/noop-review-strategy.js.map +1 -0
  45. package/dist/coordinator/dag/passthrough-finalizer.d.ts +11 -0
  46. package/dist/coordinator/dag/passthrough-finalizer.d.ts.map +1 -0
  47. package/dist/coordinator/dag/passthrough-finalizer.js +13 -0
  48. package/dist/coordinator/dag/passthrough-finalizer.js.map +1 -0
  49. package/dist/coordinator/dag/render-ancestor-context.d.ts +8 -0
  50. package/dist/coordinator/dag/render-ancestor-context.d.ts.map +1 -0
  51. package/dist/coordinator/dag/render-ancestor-context.js +27 -0
  52. package/dist/coordinator/dag/render-ancestor-context.js.map +1 -0
  53. package/dist/coordinator/dag/replan-error-strategy.d.ts +15 -0
  54. package/dist/coordinator/dag/replan-error-strategy.d.ts.map +1 -0
  55. package/dist/coordinator/dag/replan-error-strategy.js +32 -0
  56. package/dist/coordinator/dag/replan-error-strategy.js.map +1 -0
  57. package/dist/coordinator/dag/reviewer-error-strategy.d.ts +15 -0
  58. package/dist/coordinator/dag/reviewer-error-strategy.d.ts.map +1 -0
  59. package/dist/coordinator/dag/reviewer-error-strategy.js +38 -0
  60. package/dist/coordinator/dag/reviewer-error-strategy.js.map +1 -0
  61. package/dist/coordinator/dag/splice-sub-plan.d.ts +12 -0
  62. package/dist/coordinator/dag/splice-sub-plan.d.ts.map +1 -0
  63. package/dist/coordinator/dag/splice-sub-plan.js +41 -0
  64. package/dist/coordinator/dag/splice-sub-plan.js.map +1 -0
  65. package/dist/coordinator/dag/subagent-state-oracle.d.ts +19 -0
  66. package/dist/coordinator/dag/subagent-state-oracle.d.ts.map +1 -0
  67. package/dist/coordinator/dag/subagent-state-oracle.js +31 -0
  68. package/dist/coordinator/dag/subagent-state-oracle.js.map +1 -0
  69. package/dist/coordinator/dag/template-finalizer.d.ts +11 -0
  70. package/dist/coordinator/dag/template-finalizer.d.ts.map +1 -0
  71. package/dist/coordinator/dag/template-finalizer.js +17 -0
  72. package/dist/coordinator/dag/template-finalizer.js.map +1 -0
  73. package/dist/coordinator/dispatch/subagent.d.ts.map +1 -1
  74. package/dist/coordinator/dispatch/subagent.js +6 -12
  75. package/dist/coordinator/dispatch/subagent.js.map +1 -1
  76. package/dist/coordinator/index.d.ts +6 -0
  77. package/dist/coordinator/index.d.ts.map +1 -1
  78. package/dist/coordinator/index.js +6 -0
  79. package/dist/coordinator/index.js.map +1 -1
  80. package/dist/coordinator/planning/one-shot.d.ts.map +1 -1
  81. package/dist/coordinator/planning/one-shot.js +14 -7
  82. package/dist/coordinator/planning/one-shot.js.map +1 -1
  83. package/dist/coordinator/stepper/cyclic-react-executor.d.ts +42 -0
  84. package/dist/coordinator/stepper/cyclic-react-executor.d.ts.map +1 -0
  85. package/dist/coordinator/stepper/cyclic-react-executor.js +272 -0
  86. package/dist/coordinator/stepper/cyclic-react-executor.js.map +1 -0
  87. package/dist/coordinator/stepper/index.d.ts +10 -0
  88. package/dist/coordinator/stepper/index.d.ts.map +1 -0
  89. package/dist/coordinator/stepper/index.js +10 -0
  90. package/dist/coordinator/stepper/index.js.map +1 -0
  91. package/dist/coordinator/stepper/llm-stepper-planner.d.ts +27 -0
  92. package/dist/coordinator/stepper/llm-stepper-planner.d.ts.map +1 -0
  93. package/dist/coordinator/stepper/llm-stepper-planner.js +86 -0
  94. package/dist/coordinator/stepper/llm-stepper-planner.js.map +1 -0
  95. package/dist/coordinator/stepper/llm-task-formalizer.d.ts +22 -0
  96. package/dist/coordinator/stepper/llm-task-formalizer.d.ts.map +1 -0
  97. package/dist/coordinator/stepper/llm-task-formalizer.js +73 -0
  98. package/dist/coordinator/stepper/llm-task-formalizer.js.map +1 -0
  99. package/dist/coordinator/stepper/logging-llm.d.ts +30 -0
  100. package/dist/coordinator/stepper/logging-llm.d.ts.map +1 -0
  101. package/dist/coordinator/stepper/logging-llm.js +73 -0
  102. package/dist/coordinator/stepper/logging-llm.js.map +1 -0
  103. package/dist/coordinator/stepper/need-resolver.d.ts +18 -0
  104. package/dist/coordinator/stepper/need-resolver.d.ts.map +1 -0
  105. package/dist/coordinator/stepper/need-resolver.js +42 -0
  106. package/dist/coordinator/stepper/need-resolver.js.map +1 -0
  107. package/dist/coordinator/stepper/root-finalizer.d.ts +17 -0
  108. package/dist/coordinator/stepper/root-finalizer.d.ts.map +1 -0
  109. package/dist/coordinator/stepper/root-finalizer.js +53 -0
  110. package/dist/coordinator/stepper/root-finalizer.js.map +1 -0
  111. package/dist/coordinator/stepper/static-planner.d.ts +23 -0
  112. package/dist/coordinator/stepper/static-planner.d.ts.map +1 -0
  113. package/dist/coordinator/stepper/static-planner.js +25 -0
  114. package/dist/coordinator/stepper/static-planner.js.map +1 -0
  115. package/dist/coordinator/stepper/stepper-interpreter.d.ts +6 -0
  116. package/dist/coordinator/stepper/stepper-interpreter.d.ts.map +1 -0
  117. package/dist/coordinator/stepper/stepper-interpreter.js +130 -0
  118. package/dist/coordinator/stepper/stepper-interpreter.js.map +1 -0
  119. package/dist/coordinator/stepper/stepper.d.ts +36 -0
  120. package/dist/coordinator/stepper/stepper.d.ts.map +1 -0
  121. package/dist/coordinator/stepper/stepper.js +49 -0
  122. package/dist/coordinator/stepper/stepper.js.map +1 -0
  123. package/dist/index.d.ts +10 -2
  124. package/dist/index.d.ts.map +1 -1
  125. package/dist/index.js +10 -1
  126. package/dist/index.js.map +1 -1
  127. package/dist/logger/default-request-logger.d.ts +18 -6
  128. package/dist/logger/default-request-logger.d.ts.map +1 -1
  129. package/dist/logger/default-request-logger.js +25 -4
  130. package/dist/logger/default-request-logger.js.map +1 -1
  131. package/dist/logger/noop-request-logger.d.ts +10 -5
  132. package/dist/logger/noop-request-logger.d.ts.map +1 -1
  133. package/dist/logger/noop-request-logger.js +5 -3
  134. package/dist/logger/noop-request-logger.js.map +1 -1
  135. package/dist/logger/session-request-logger.d.ts +50 -0
  136. package/dist/logger/session-request-logger.d.ts.map +1 -0
  137. package/dist/logger/session-request-logger.js +161 -0
  138. package/dist/logger/session-request-logger.js.map +1 -0
  139. package/dist/pipeline/context.d.ts +8 -3
  140. package/dist/pipeline/context.d.ts.map +1 -1
  141. package/dist/pipeline/default-pipeline.d.ts +35 -4
  142. package/dist/pipeline/default-pipeline.d.ts.map +1 -1
  143. package/dist/pipeline/default-pipeline.js +49 -7
  144. package/dist/pipeline/default-pipeline.js.map +1 -1
  145. package/dist/pipeline/handlers/coordinator.d.ts +0 -3
  146. package/dist/pipeline/handlers/coordinator.d.ts.map +1 -1
  147. package/dist/pipeline/handlers/coordinator.js +33 -22
  148. package/dist/pipeline/handlers/coordinator.js.map +1 -1
  149. package/dist/pipeline/handlers/dag-coordinator.d.ts +47 -0
  150. package/dist/pipeline/handlers/dag-coordinator.d.ts.map +1 -0
  151. package/dist/pipeline/handlers/dag-coordinator.js +369 -0
  152. package/dist/pipeline/handlers/dag-coordinator.js.map +1 -0
  153. package/dist/pipeline/handlers/index.d.ts +14 -0
  154. package/dist/pipeline/handlers/index.d.ts.map +1 -1
  155. package/dist/pipeline/handlers/index.js +8 -1
  156. package/dist/pipeline/handlers/index.js.map +1 -1
  157. package/dist/pipeline/handlers/rag-query.d.ts.map +1 -1
  158. package/dist/pipeline/handlers/rag-query.js +1 -0
  159. package/dist/pipeline/handlers/rag-query.js.map +1 -1
  160. package/dist/pipeline/handlers/subagent.d.ts.map +1 -1
  161. package/dist/pipeline/handlers/subagent.js +0 -2
  162. package/dist/pipeline/handlers/subagent.js.map +1 -1
  163. package/dist/pipeline/handlers/summarize.d.ts.map +1 -1
  164. package/dist/pipeline/handlers/summarize.js +5 -0
  165. package/dist/pipeline/handlers/summarize.js.map +1 -1
  166. package/dist/pipeline/handlers/tool-loop.d.ts.map +1 -1
  167. package/dist/pipeline/handlers/tool-loop.js +17 -0
  168. package/dist/pipeline/handlers/tool-loop.js.map +1 -1
  169. package/dist/pipeline/handlers/translate.d.ts.map +1 -1
  170. package/dist/pipeline/handlers/translate.js +1 -0
  171. package/dist/pipeline/handlers/translate.js.map +1 -1
  172. package/dist/pipeline/index.d.ts +2 -1
  173. package/dist/pipeline/index.d.ts.map +1 -1
  174. package/dist/pipeline/index.js +1 -1
  175. package/dist/pipeline/index.js.map +1 -1
  176. package/dist/rag/knowledge-rag.d.ts +74 -0
  177. package/dist/rag/knowledge-rag.d.ts.map +1 -0
  178. package/dist/rag/knowledge-rag.js +116 -0
  179. package/dist/rag/knowledge-rag.js.map +1 -0
  180. package/dist/session/session-graph-factory.d.ts +66 -0
  181. package/dist/session/session-graph-factory.d.ts.map +1 -0
  182. package/dist/session/session-graph-factory.js +63 -0
  183. package/dist/session/session-graph-factory.js.map +1 -0
  184. package/dist/session/session-graph.d.ts +54 -0
  185. package/dist/session/session-graph.d.ts.map +1 -0
  186. package/dist/session/session-graph.js +76 -0
  187. package/dist/session/session-graph.js.map +1 -0
  188. package/dist/session/session-registry.d.ts +96 -0
  189. package/dist/session/session-registry.d.ts.map +1 -0
  190. package/dist/session/session-registry.js +297 -0
  191. package/dist/session/session-registry.js.map +1 -0
  192. package/dist/subagent/direct-llm-subagent.d.ts.map +1 -1
  193. package/dist/subagent/direct-llm-subagent.js +0 -2
  194. package/dist/subagent/direct-llm-subagent.js.map +1 -1
  195. package/dist/subagent/smart-agent-subagent.d.ts.map +1 -1
  196. package/dist/subagent/smart-agent-subagent.js +3 -3
  197. package/dist/subagent/smart-agent-subagent.js.map +1 -1
  198. package/package.json +14 -14
@@ -0,0 +1,369 @@
1
+ import { ClarifySignal, NeedInfoSignal } from '@mcp-abap-adt/llm-agent';
2
+ import { OrchestratorError } from '../../agent.js';
3
+ import { PassthroughFinalizer } from '../../coordinator/dag/passthrough-finalizer.js';
4
+ import { AbortErrorStrategy } from '../../coordinator/index.js';
5
+ import { summaryToUsage } from '../../logger/session-request-logger.js';
6
+ /**
7
+ * Marker prefixed onto a coordinator-emitted clarification question. `Message`
8
+ * has no metadata field, so the marker lives in the assistant content — but it is
9
+ * zero-width (invisible): the user/API sees only the question. On the next turn
10
+ * `buildAncestorContext` reconstructs the clarification Q/A ONLY from the marked
11
+ * tail turn. This is a coordinator-internal protocol detail (emit + reconstruct
12
+ * are both here), NOT a public contract — hence it lives in llm-agent-libs, not in
13
+ * the contracts package. Zero-width: U+2063 INVISIBLE SEPARATOR x3.
14
+ */
15
+ export const CLARIFY_MARKER = '⁣⁣⁣';
16
+ export class DagCoordinatorHandler {
17
+ deps;
18
+ finalizer;
19
+ constructor(deps) {
20
+ this.deps = deps;
21
+ this.finalizer = deps.finalizer ?? new PassthroughFinalizer();
22
+ // The DAG interpreter passes data-flow (dependency outputs + user input)
23
+ // through the composed task text, never through the ISubAgentInput.context
24
+ // field. A worker with contextPolicy='required' (the DirectLlmSubAgent
25
+ // default) would therefore always fail at dispatch. Reject it at startup
26
+ // with a clear message instead of failing per-request.
27
+ for (const [name, w] of deps.workers) {
28
+ if (w.capabilities?.contextPolicy === 'required') {
29
+ throw new Error(`DagCoordinatorHandler: worker '${name}' has contextPolicy='required', ` +
30
+ 'but the DAG interpreter supplies node data via the composed task text, ' +
31
+ "not the context field. Use a worker with contextPolicy 'optional' or 'forbidden'.");
32
+ }
33
+ }
34
+ }
35
+ async execute(ctx, _rawConfig, _span) {
36
+ const maxRoundTrips = Math.max(1, this.deps.maxRoundTrips ?? 6);
37
+ const ancestorContext = buildAncestorContext(ctx);
38
+ const agents = [...this.deps.workers.values()].map((w) => ({
39
+ name: w.name,
40
+ description: w.description,
41
+ }));
42
+ let roundTrips = 0;
43
+ // HIGH finding: planner+reviewer LLM spend was escaping both
44
+ // /v1/usage and response.usage. The role return types now carry an
45
+ // optional `usage` field; we forward it into the session requestLogger
46
+ // here, keyed by the current traceId so it lands in the per-request
47
+ // delta AND in the session-cumulative buckets (categorized as
48
+ // 'auxiliary' via CATEGORY_MAP). Non-LLM strategies omit `usage`, so
49
+ // this is a no-op for them.
50
+ const logRoleUsage = (component, model, usage, durationMs) => {
51
+ if (!usage)
52
+ return;
53
+ ctx.requestLogger.logLlmCall({
54
+ component,
55
+ model: model ?? 'unknown',
56
+ promptTokens: usage.promptTokens,
57
+ completionTokens: usage.completionTokens,
58
+ totalTokens: usage.totalTokens,
59
+ durationMs,
60
+ requestId: ctx.options?.trace?.traceId,
61
+ });
62
+ };
63
+ // Generic role runner. Owns logging for BOTH happy path AND signal paths
64
+ // (HIGH finding: a role that throws ClarifySignal/NeedInfoSignal still
65
+ // consumed LLM tokens — discarding them was invisible spend). Per-role
66
+ // adapters set `signal.usage` on the signal before throwing; `runRole`
67
+ // reads it here and routes it through the same `logRoleUsage`.
68
+ const runRole = async (component, model, thunk) => {
69
+ for (;;) {
70
+ const start = Date.now();
71
+ try {
72
+ const value = await thunk();
73
+ logRoleUsage(component, model, value.usage, Date.now() - start);
74
+ return { value };
75
+ }
76
+ catch (err) {
77
+ if (err instanceof ClarifySignal) {
78
+ logRoleUsage(component, model, err.usage, Date.now() - start);
79
+ ctx.options?.sessionLogger?.logStep('coordinator_clarify', {
80
+ question: err.question,
81
+ });
82
+ ctx.yield({
83
+ ok: true,
84
+ value: {
85
+ content: CLARIFY_MARKER + err.question,
86
+ },
87
+ });
88
+ // Attach per-request usage to the TERMINAL yield only — mirrors the
89
+ // success-path pattern below (around the result.ok branch). The
90
+ // response-assembler in agent.process sums chunk-level usage, so
91
+ // putting usage on the content yield as well would double-count.
92
+ // Without this, response.usage was zero on clarify paths even though
93
+ // /v1/usage saw the spend (Fix #10 logged it into requestLogger).
94
+ const traceIdClarify = ctx.options?.trace?.traceId;
95
+ const usageClarify = traceIdClarify
96
+ ? summaryToUsage(ctx.requestLogger.getSummary(traceIdClarify))
97
+ : undefined;
98
+ ctx.yield({
99
+ ok: true,
100
+ value: {
101
+ content: '',
102
+ finishReason: 'stop',
103
+ ...(usageClarify ? { usage: usageClarify } : {}),
104
+ },
105
+ });
106
+ return { ended: true };
107
+ }
108
+ if (err instanceof NeedInfoSignal) {
109
+ logRoleUsage(component, model, err.usage, Date.now() - start);
110
+ if (!this.deps.stateOracle) {
111
+ throw new OrchestratorError(`coordinator: role requested info but no stateOracle is configured: ${err.query}`, 'COORDINATOR_NEEDINFO_UNRESOLVED');
112
+ }
113
+ if (++roundTrips > maxRoundTrips) {
114
+ throw new OrchestratorError('coordinator: round-trip budget exhausted', 'COORDINATOR_BUDGET_EXHAUSTED');
115
+ }
116
+ const oracleStart = Date.now();
117
+ const ans = await this.deps.stateOracle.query({
118
+ query: err.query,
119
+ sessionId: ctx.sessionId,
120
+ signal: ctx.options?.signal,
121
+ trace: ctx.options?.trace,
122
+ sessionLogger: ctx.options?.sessionLogger,
123
+ });
124
+ logRoleUsage('oracle', this.deps.stateOracle.model, ans.usage, Date.now() - oracleStart);
125
+ ancestorContext.oracleObservations.push({
126
+ query: err.query,
127
+ answer: ans.answer,
128
+ });
129
+ continue;
130
+ }
131
+ // MEDIUM finding: a role that throws a plain Error (parse-/shape-error
132
+ // from LlmDagPlanner / LlmReviewStrategy) ALSO consumed LLM tokens;
133
+ // those adapters now attach `res.usage` onto the Error via withUsage.
134
+ // Bill it here before rethrowing so the failed call is still visible
135
+ // in /v1/usage and the per-request delta (otherwise: real spend,
136
+ // invisible).
137
+ const failedUsage = err.usage;
138
+ if (failedUsage) {
139
+ logRoleUsage(component, model, failedUsage, Date.now() - start);
140
+ }
141
+ throw err;
142
+ }
143
+ }
144
+ };
145
+ let planRes;
146
+ const plannerModel = this.deps.planner.model;
147
+ try {
148
+ planRes = await runRole('planner', plannerModel, () => this.deps.planner.plan({
149
+ prompt: ctx.inputText,
150
+ agents,
151
+ ancestorContext,
152
+ sessionId: ctx.sessionId,
153
+ signal: ctx.options?.signal,
154
+ }));
155
+ }
156
+ catch (err) {
157
+ ctx.error =
158
+ err instanceof OrchestratorError
159
+ ? err
160
+ : new OrchestratorError(errMsg(err), 'COORDINATOR_PLAN_FAILED');
161
+ return false;
162
+ }
163
+ if ('ended' in planRes)
164
+ return true;
165
+ let plan = planRes.value.plan;
166
+ try {
167
+ for (;;) {
168
+ if (++roundTrips > maxRoundTrips) {
169
+ ctx.error = new OrchestratorError('coordinator: round-trip budget exhausted', 'COORDINATOR_BUDGET_EXHAUSTED');
170
+ return false;
171
+ }
172
+ const reviewer = this.deps.reviewer;
173
+ if (reviewer) {
174
+ let gate;
175
+ const reviewerModel = reviewer.model;
176
+ try {
177
+ gate = await runRole('reviewer', reviewerModel, () => reviewer.review({
178
+ prompt: ctx.inputText,
179
+ plan,
180
+ agents,
181
+ ancestorContext,
182
+ sessionId: ctx.sessionId,
183
+ signal: ctx.options?.signal,
184
+ }));
185
+ }
186
+ catch (err) {
187
+ // A generic reviewer-gate failure keeps the slice-2 error code
188
+ // (COORDINATOR_REVIEW_FAILED), not the loop's default STEP_FAILED.
189
+ // OrchestratorError from runRole (needInfo-no-oracle / budget) is
190
+ // preserved as-is.
191
+ ctx.error =
192
+ err instanceof OrchestratorError
193
+ ? err
194
+ : new OrchestratorError(errMsg(err), 'COORDINATOR_REVIEW_FAILED');
195
+ return false;
196
+ }
197
+ if ('ended' in gate)
198
+ return true;
199
+ const verdict = gate.value.verdict;
200
+ if (!verdict.pass) {
201
+ const replanned = await runRole('planner', plannerModel, () => this.deps.planner.plan({
202
+ prompt: ctx.inputText,
203
+ agents,
204
+ ancestorContext,
205
+ reviewerFeedback: verdict.feedback,
206
+ sessionId: ctx.sessionId,
207
+ signal: ctx.options?.signal,
208
+ }));
209
+ if ('ended' in replanned)
210
+ return true;
211
+ plan = replanned.value.plan;
212
+ continue;
213
+ }
214
+ }
215
+ const onPartial = (chunk) => {
216
+ if (chunk.kind === 'content') {
217
+ ctx.yield({ ok: true, value: { content: chunk.delta } });
218
+ }
219
+ // node-start / node-end / tool-call → session log only (NOT yielded to client)
220
+ ctx.options?.sessionLogger?.logStep('dag_stream', chunk);
221
+ };
222
+ let result;
223
+ try {
224
+ result = await this.deps.interpreter.interpret(plan, {
225
+ inputText: ctx.inputText,
226
+ workers: this.deps.workers,
227
+ sessionId: ctx.sessionId,
228
+ signal: ctx.options?.signal,
229
+ errorStrategy: this.deps.errorStrategy ?? new AbortErrorStrategy(),
230
+ ancestorContext,
231
+ trace: ctx.options?.trace,
232
+ sessionLogger: ctx.options?.sessionLogger,
233
+ onPartial,
234
+ });
235
+ }
236
+ catch (err) {
237
+ ctx.error =
238
+ err instanceof OrchestratorError
239
+ ? err
240
+ : new OrchestratorError(errMsg(err), codeOf(err) ?? 'COORDINATOR_PLAN_INVALID');
241
+ return false;
242
+ }
243
+ if (result.ok) {
244
+ ctx.options?.sessionLogger?.logStep('dag_coordinator_final', {
245
+ nodeCount: plan.nodes.length,
246
+ outputLength: result.output.length,
247
+ });
248
+ const executedPlan = result.executedPlan ?? plan;
249
+ const nodeIndex = new Map(executedPlan.nodes?.map((n) => [n.id, n]) ?? []);
250
+ const executionTrace = (result.executionOrder ?? []).map((id) => ({
251
+ nodeId: id,
252
+ goal: nodeIndex.get(id)?.goal ?? '',
253
+ output: result.nodeResults[id]?.output ?? '',
254
+ }));
255
+ const finalRes = await runRole('finalizer', this.finalizer.model, () => this.finalizer.finalize({
256
+ prompt: ctx.inputText,
257
+ objective: executedPlan.objective ?? ctx.inputText,
258
+ ancestorContext,
259
+ interpreterOutput: result.output,
260
+ executionTrace,
261
+ sessionId: ctx.sessionId,
262
+ signal: ctx.options?.signal,
263
+ trace: ctx.options?.trace,
264
+ onPartial,
265
+ }));
266
+ if ('ended' in finalRes)
267
+ return true;
268
+ // Attach usage ONLY to the terminal `finishReason:'stop'` chunk.
269
+ // The agent's response assembler accumulates usage across yielded
270
+ // chunks; including usage on both yields would double-count.
271
+ const traceId = ctx.options?.trace?.traceId;
272
+ const usage = traceId
273
+ ? summaryToUsage(ctx.requestLogger.getSummary(traceId))
274
+ : undefined;
275
+ ctx.yield({
276
+ ok: true,
277
+ value: {
278
+ content: '',
279
+ finishReason: 'stop',
280
+ ...(usage ? { usage } : {}),
281
+ },
282
+ });
283
+ return true;
284
+ }
285
+ const reviewExecutionFailure = reviewer?.reviewExecutionFailure?.bind(reviewer);
286
+ if (!reviewExecutionFailure) {
287
+ ctx.error = new OrchestratorError(`coordinator: ${result.error ?? 'plan execution failed'}`, 'COORDINATOR_STEP_FAILED');
288
+ return false;
289
+ }
290
+ const execPlan = result.executedPlan ?? plan;
291
+ const trace = execPlan.nodes
292
+ .map((n) => result.nodeResults[n.id])
293
+ .filter((r) => Boolean(r));
294
+ const failedId = result.failedNodeId ?? execPlan.nodes[0]?.id ?? '';
295
+ const recovery = await runRole('reviewer', reviewer?.model, () => reviewExecutionFailure({
296
+ objective: execPlan.objective,
297
+ plan: execPlan,
298
+ trace,
299
+ failedNodeId: failedId,
300
+ error: result.nodeResults[failedId]?.error ??
301
+ result.error ??
302
+ 'unknown',
303
+ agents,
304
+ ancestorContext,
305
+ sessionId: ctx.sessionId,
306
+ signal: ctx.options?.signal,
307
+ }));
308
+ if ('ended' in recovery)
309
+ return true;
310
+ const decision = recovery.value.decision;
311
+ if (decision.action === 'revise') {
312
+ if (decision.revisedPlan.nodes.length === 0) {
313
+ ctx.error = new OrchestratorError('coordinator: reviewer returned an empty revised plan', 'COORDINATOR_PLAN_INVALID');
314
+ return false;
315
+ }
316
+ plan = decision.revisedPlan;
317
+ continue;
318
+ }
319
+ ctx.error = new OrchestratorError(`coordinator: recovery aborted: ${result.error ?? 'unknown'}`, 'COORDINATOR_STEP_FAILED');
320
+ return false;
321
+ }
322
+ }
323
+ catch (err) {
324
+ ctx.error =
325
+ err instanceof OrchestratorError
326
+ ? err
327
+ : new OrchestratorError(errMsg(err), 'COORDINATOR_STEP_FAILED');
328
+ return false;
329
+ }
330
+ }
331
+ }
332
+ export function buildAncestorContext(ctx) {
333
+ const h = ctx.history ?? [];
334
+ const n = h.length;
335
+ const isMarked = (m) => m?.role === 'assistant' &&
336
+ typeof m.content === 'string' &&
337
+ m.content.startsWith(CLARIFY_MARKER);
338
+ let mi = -1;
339
+ if (isMarked(h[n - 1]))
340
+ mi = n - 1;
341
+ else if (h[n - 1]?.role === 'user' && isMarked(h[n - 2]))
342
+ mi = n - 2;
343
+ if (mi >= 0) {
344
+ const question = h[mi].content
345
+ .slice(CLARIFY_MARKER.length)
346
+ .trim();
347
+ const parent = h[mi - 1];
348
+ const objective = parent?.role === 'user' && typeof parent.content === 'string'
349
+ ? parent.content
350
+ : ctx.inputText;
351
+ return {
352
+ objective,
353
+ clarifications: [{ question, answer: ctx.inputText }],
354
+ oracleObservations: [],
355
+ };
356
+ }
357
+ return {
358
+ objective: ctx.inputText,
359
+ clarifications: [],
360
+ oracleObservations: [],
361
+ };
362
+ }
363
+ function errMsg(err) {
364
+ return err instanceof Error ? err.message : String(err);
365
+ }
366
+ function codeOf(err) {
367
+ return err?.code;
368
+ }
369
+ //# sourceMappingURL=dag-coordinator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dag-coordinator.js","sourceRoot":"","sources":["../../../src/pipeline/handlers/dag-coordinator.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ import { AssembleHandler } from './assemble.js';
10
10
  import { BuildToolQueryHandler } from './build-tool-query.js';
11
11
  import { ClassifyHandler } from './classify.js';
12
12
  import { type CoordinatorHandlerDeps } from './coordinator.js';
13
+ import { type DagCoordinatorHandlerDeps } from './dag-coordinator.js';
13
14
  import { ExpandHandler } from './expand.js';
14
15
  import { HistoryUpsertHandler } from './history-upsert.js';
15
16
  import { RagQueryHandler } from './rag-query.js';
@@ -30,6 +31,19 @@ export type StageHandlerRegistry = Map<string, IStageHandler>;
30
31
  export interface BuildHandlerRegistryOptions {
31
32
  subAgents?: SubAgentRegistry;
32
33
  coordinator?: CoordinatorHandlerDeps;
34
+ /**
35
+ * DAG coordinator deps. When set, registers `DagCoordinatorHandler` under
36
+ * the `coordinator` stage slot. Mutually exclusive with `coordinator` —
37
+ * `dagCoordinator` takes precedence when both are supplied.
38
+ */
39
+ dagCoordinator?: DagCoordinatorHandlerDeps;
40
+ /**
41
+ * Pre-built stage handler to register under the `coordinator` slot.
42
+ * Takes precedence over `dagCoordinator` and `coordinator` when all three
43
+ * are supplied. Used by the 18.0 Stepper runtime: caller builds a
44
+ * `StepperCoordinatorHandler` and passes it in directly.
45
+ */
46
+ stepperCoordinator?: IStageHandler;
33
47
  /**
34
48
  * Activation strategy used by the `coordinator-activate` runtime stage to
35
49
  * compute `ctx.coordinatorActive`. Required when `coordinator` is set —
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/pipeline/handlers/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,MAAM,oBAAoB,GAAG,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AAE9D;;;;;;GAMG;AACH,MAAM,WAAW,2BAA2B;IAC1C,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,WAAW,CAAC,EAAE,sBAAsB,CAAC;IACrC;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,mBAAmB,CAAC;CAC7C;AAED,wBAAgB,2BAA2B,CACzC,IAAI,GAAE,2BAAgC,GACrC,oBAAoB,CA4BtB;AAED,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,GACjB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/pipeline/handlers/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,MAAM,oBAAoB,GAAG,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AAE9D;;;;;;GAMG;AACH,MAAM,WAAW,2BAA2B;IAC1C,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,WAAW,CAAC,EAAE,sBAAsB,CAAC;IACrC;;;;OAIG;IACH,cAAc,CAAC,EAAE,yBAAyB,CAAC;IAC3C;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,aAAa,CAAC;IACnC;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,mBAAmB,CAAC;CAC7C;AAED,wBAAgB,2BAA2B,CACzC,IAAI,GAAE,2BAAgC,GACrC,oBAAoB,CAgCtB;AAED,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,GACjB,CAAC"}
@@ -9,6 +9,7 @@ import { BuildToolQueryHandler } from './build-tool-query.js';
9
9
  import { ClassifyHandler } from './classify.js';
10
10
  import { CoordinatorHandler, } from './coordinator.js';
11
11
  import { CoordinatorActivateHandler } from './coordinator-activate.js';
12
+ import { DagCoordinatorHandler, } from './dag-coordinator.js';
12
13
  import { ExpandHandler } from './expand.js';
13
14
  import { HistoryUpsertHandler } from './history-upsert.js';
14
15
  import { RagQueryHandler } from './rag-query.js';
@@ -37,7 +38,13 @@ export function buildDefaultHandlerRegistry(opts = {}) {
37
38
  if (opts.subAgents && opts.subAgents.size > 0) {
38
39
  registry.set('subagent', new SubAgentHandler(opts.subAgents));
39
40
  }
40
- if (opts.coordinator) {
41
+ if (opts.stepperCoordinator) {
42
+ registry.set('coordinator', opts.stepperCoordinator);
43
+ }
44
+ else if (opts.dagCoordinator) {
45
+ registry.set('coordinator', new DagCoordinatorHandler(opts.dagCoordinator));
46
+ }
47
+ else if (opts.coordinator) {
41
48
  registry.set('coordinator', new CoordinatorHandler(opts.coordinator));
42
49
  }
43
50
  if (opts.coordinatorActivation) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/pipeline/handlers/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EACL,kBAAkB,GAEnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAsBlD,MAAM,UAAU,2BAA2B,CACzC,OAAoC,EAAE;IAEtC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAwB;QAC9C,CAAC,UAAU,EAAE,IAAI,eAAe,EAAE,CAAC;QACnC,CAAC,WAAW,EAAE,IAAI,gBAAgB,EAAE,CAAC;QACrC,CAAC,WAAW,EAAE,IAAI,gBAAgB,EAAE,CAAC;QACrC,CAAC,QAAQ,EAAE,IAAI,aAAa,EAAE,CAAC;QAC/B,CAAC,WAAW,EAAE,IAAI,eAAe,EAAE,CAAC;QACpC,CAAC,QAAQ,EAAE,IAAI,aAAa,EAAE,CAAC;QAC/B,CAAC,cAAc,EAAE,IAAI,kBAAkB,EAAE,CAAC;QAC1C,CAAC,kBAAkB,EAAE,IAAI,qBAAqB,EAAE,CAAC;QACjD,CAAC,aAAa,EAAE,IAAI,iBAAiB,EAAE,CAAC;QACxC,CAAC,UAAU,EAAE,IAAI,eAAe,EAAE,CAAC;QACnC,CAAC,WAAW,EAAE,IAAI,eAAe,EAAE,CAAC;QACpC,CAAC,gBAAgB,EAAE,IAAI,oBAAoB,EAAE,CAAC;KAC/C,CAAC,CAAC;IACH,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAC9C,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,QAAQ,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/B,QAAQ,CAAC,GAAG,CACV,sBAAsB,EACtB,IAAI,0BAA0B,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAC3D,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,GACjB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/pipeline/handlers/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"rag-query.d.ts","sourceRoot":"","sources":["../../../src/pipeline/handlers/rag-query.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,qBAAa,eAAgB,YAAW,aAAa;IAC7C,OAAO,CACX,GAAG,EAAE,eAAe,EACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,EAAE,KAAK,GACV,OAAO,CAAC,OAAO,CAAC;CAyGpB"}
1
+ {"version":3,"file":"rag-query.d.ts","sourceRoot":"","sources":["../../../src/pipeline/handlers/rag-query.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,qBAAa,eAAgB,YAAW,aAAa;IAC7C,OAAO,CACX,GAAG,EAAE,eAAe,EACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,EAAE,KAAK,GACV,OAAO,CAAC,OAAO,CAAC;CA0GpB"}
@@ -75,6 +75,7 @@ export class RagQueryHandler {
75
75
  query: queryText.slice(0, 200),
76
76
  resultCount: result.ok ? result.value.length : 0,
77
77
  durationMs: Date.now() - ragStart,
78
+ requestId: ctx.options?.trace?.traceId,
78
79
  });
79
80
  // Log embedding usage once (first rag-query stage that uses the embedding)
80
81
  if (!ctx.embeddingUsageLogged && embedding?.getUsage) {
@@ -1 +1 @@
1
- {"version":3,"file":"rag-query.js","sourceRoot":"","sources":["../../../src/pipeline/handlers/rag-query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rag-query.js","sourceRoot":"","sources":["../../../src/pipeline/handlers/rag-query.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"subagent.d.ts","sourceRoot":"","sources":["../../../src/pipeline/handlers/subagent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAGV,gBAAgB,EACjB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAQzD,qBAAa,eAAgB,YAAW,aAAa;IACvC,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,gBAAgB;IAEjD,OAAO,CACX,GAAG,EAAE,eAAe,EACpB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,OAAO,CAAC;CA2DpB"}
1
+ {"version":3,"file":"subagent.d.ts","sourceRoot":"","sources":["../../../src/pipeline/handlers/subagent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAGV,gBAAgB,EACjB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAQzD,qBAAa,eAAgB,YAAW,aAAa;IACvC,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,gBAAgB;IAEjD,OAAO,CACX,GAAG,EAAE,eAAe,EACpB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,OAAO,CAAC;CAyDpB"}
@@ -36,8 +36,6 @@ export class SubAgentHandler {
36
36
  task,
37
37
  sessionId: ctx.sessionId,
38
38
  signal,
39
- // Increments from current pipeline layer, matching SubAgentDispatch convention.
40
- layer: (ctx.layer ?? 0) + 1,
41
39
  });
42
40
  }
43
41
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"subagent.js","sourceRoot":"","sources":["../../../src/pipeline/handlers/subagent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAUlE,MAAM,OAAO,eAAe;IACG;IAA7B,YAA6B,QAA0B;QAA1B,aAAQ,GAAR,QAAQ,CAAkB;IAAG,CAAC;IAE3D,KAAK,CAAC,OAAO,CACX,GAAoB,EACpB,SAAkC,EAClC,KAAY;QAEZ,MAAM,MAAM,GAAG,SAA2C,CAAC;QAE3D,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACtD,GAAG,CAAC,KAAK,GAAG,IAAI,iBAAiB,CAC/B,qCAAqC,EACrC,uBAAuB,CACxB,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,GAAG,GAA0B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnE,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,GAAG,CAAC,KAAK,GAAG,IAAI,iBAAiB,CAC/B,aAAa,MAAM,CAAC,KAAK,4BACvB,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAC1C,EAAE,EACF,oBAAoB,CACrB,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,IAAI,eAAe,CAAC;QACpD,MAAM,IAAI,GAAG,eAAe,CAC1B,YAAY,EACZ,GAAyC,CAC1C,CAAC;QAEF,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC;QACnC,IAAI,MAAuB,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC;gBACrB,IAAI;gBACJ,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,MAAM;gBACN,gFAAgF;gBAChF,KAAK,EAAE,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC;aAC5B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,KAAK,GAAG,IAAI,iBAAiB,CAC/B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAChD,wBAAwB,CACzB,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,IAAI,cAAc,MAAM,CAAC,KAAK,EAAE,CAAC;QACnE,MAAM,SAAS,GAAG,GAAyC,CAAC;QAC5D,IAAI,CAAC,SAAS,CAAC,UAAU;YAAE,SAAS,CAAC,UAAU,GAAG,EAAE,CAAC;QACrD,OAAO,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAE9C,GAAG,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,YAAY,MAAM,CAAC,KAAK,EAAE,EAAE;YAC9D,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;YACxB,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;YAClC,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
1
+ {"version":3,"file":"subagent.js","sourceRoot":"","sources":["../../../src/pipeline/handlers/subagent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAUlE,MAAM,OAAO,eAAe;IACG;IAA7B,YAA6B,QAA0B;QAA1B,aAAQ,GAAR,QAAQ,CAAkB;IAAG,CAAC;IAE3D,KAAK,CAAC,OAAO,CACX,GAAoB,EACpB,SAAkC,EAClC,KAAY;QAEZ,MAAM,MAAM,GAAG,SAA2C,CAAC;QAE3D,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACtD,GAAG,CAAC,KAAK,GAAG,IAAI,iBAAiB,CAC/B,qCAAqC,EACrC,uBAAuB,CACxB,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,GAAG,GAA0B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnE,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,GAAG,CAAC,KAAK,GAAG,IAAI,iBAAiB,CAC/B,aAAa,MAAM,CAAC,KAAK,4BACvB,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAC1C,EAAE,EACF,oBAAoB,CACrB,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,IAAI,eAAe,CAAC;QACpD,MAAM,IAAI,GAAG,eAAe,CAC1B,YAAY,EACZ,GAAyC,CAC1C,CAAC;QAEF,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC;QACnC,IAAI,MAAuB,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC;gBACrB,IAAI;gBACJ,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,MAAM;aACP,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,KAAK,GAAG,IAAI,iBAAiB,CAC/B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAChD,wBAAwB,CACzB,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,IAAI,cAAc,MAAM,CAAC,KAAK,EAAE,CAAC;QACnE,MAAM,SAAS,GAAG,GAAyC,CAAC;QAC5D,IAAI,CAAC,SAAS,CAAC,UAAU;YAAE,SAAS,CAAC,UAAU,GAAG,EAAE,CAAC;QACrD,OAAO,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAE9C,GAAG,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,YAAY,MAAM,CAAC,KAAK,EAAE,EAAE;YAC9D,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;YACxB,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;YAClC,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"summarize.d.ts","sourceRoot":"","sources":["../../../src/pipeline/handlers/summarize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,qBAAa,gBAAiB,YAAW,aAAa;IAC9C,OAAO,CACX,GAAG,EAAE,eAAe,EACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,EAAE,KAAK,GACV,OAAO,CAAC,OAAO,CAAC;CAwDpB"}
1
+ {"version":3,"file":"summarize.d.ts","sourceRoot":"","sources":["../../../src/pipeline/handlers/summarize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,qBAAa,gBAAiB,YAAW,aAAa;IAC9C,OAAO,CACX,GAAG,EAAE,eAAe,EACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,EAAE,KAAK,GACV,OAAO,CAAC,OAAO,CAAC;CA6DpB"}
@@ -30,6 +30,11 @@ export class SummarizeHandler {
30
30
  const chatStart = Date.now();
31
31
  const res = await ctx.helperLlm.chat([...toSummarize, { role: 'system', content: prompt }], [], ctx.options);
32
32
  ctx.requestLogger.logLlmCall({
33
+ // Stamp requestId so this helper-LLM call is attributed to the active
34
+ // request's per-traceId delta — without it, history-summarization tokens
35
+ // only show up in the session-cumulative aggregate and are missing from
36
+ // `response.usage` (which is computed from the delta).
37
+ requestId: ctx.options?.trace?.traceId,
33
38
  component: 'helper',
34
39
  model: ctx.helperLlm.model ?? 'unknown',
35
40
  promptTokens: res.ok ? (res.value.usage?.promptTokens ?? 0) : 0,
@@ -1 +1 @@
1
- {"version":3,"file":"summarize.js","sourceRoot":"","sources":["../../../src/pipeline/handlers/summarize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,MAAM,OAAO,gBAAgB;IAC3B,KAAK,CAAC,OAAO,CACX,GAAoB,EACpB,MAA+B,EAC/B,IAAW;QAEX,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;YACnB,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACnC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;YAC7C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,KAAK,GACR,MAAM,CAAC,KAAgB,IAAI,GAAG,CAAC,MAAM,CAAC,yBAAyB,IAAI,EAAE,CAAC;QAEzE,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;YAChC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACnC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC;YACnD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAE1C,MAAM,MAAM,GACV,GAAG,CAAC,MAAM,CAAC,oBAAoB;YAC/B,iJAAiJ,CAAC;QAEpJ,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,SAAS,CAAC,IAAI,CAClC,CAAC,GAAG,WAAW,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAC9D,EAAE,EACF,GAAG,CAAC,OAAO,CACZ,CAAC;QACF,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC;YAC3B,SAAS,EAAE,QAAQ;YACnB,KAAK,EAAE,GAAG,CAAC,SAAS,CAAC,KAAK,IAAI,SAAS;YACvC,YAAY,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/D,gBAAgB,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,gBAAgB,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvE,WAAW,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7D,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;SACnC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,oCAAoC;YACpC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YACpC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,GAAG,CAAC,OAAO,GAAG;YACZ;gBACE,IAAI,EAAE,QAAiB;gBACvB,OAAO,EAAE,qCAAqC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE;aAClE;YACD,GAAG,MAAM;SACV,CAAC;QAEF,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
1
+ {"version":3,"file":"summarize.js","sourceRoot":"","sources":["../../../src/pipeline/handlers/summarize.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tool-loop.d.ts","sourceRoot":"","sources":["../../../src/pipeline/handlers/tool-loop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAgBH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAqDzD,qBAAa,eAAgB,YAAW,aAAa;IAC7C,OAAO,CACX,GAAG,EAAE,eAAe,EACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,UAAU,EAAE,KAAK,GAChB,OAAO,CAAC,OAAO,CAAC;CAyxBpB"}
1
+ {"version":3,"file":"tool-loop.d.ts","sourceRoot":"","sources":["../../../src/pipeline/handlers/tool-loop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAgBH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAqDzD,qBAAa,eAAgB,YAAW,aAAa;IAC7C,OAAO,CACX,GAAG,EAAE,eAAe,EACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,UAAU,EAAE,KAAK,GAChB,OAAO,CAAC,OAAO,CAAC;CA0yBpB"}
@@ -349,6 +349,9 @@ export class ToolLoopHandler {
349
349
  if (chunk.content) {
350
350
  content += chunk.content;
351
351
  ctx.yield({ ok: true, value: { content: chunk.content } });
352
+ if (ctx.onPartial) {
353
+ ctx.onPartial({ kind: 'content', delta: chunk.content });
354
+ }
352
355
  }
353
356
  if (chunk.toolCalls) {
354
357
  // Register newly seen external tool indices
@@ -389,6 +392,14 @@ export class ToolLoopHandler {
389
392
  ex.arguments += tc.arguments;
390
393
  }
391
394
  }
395
+ if (tc.name && ctx.onPartial) {
396
+ ctx.onPartial({
397
+ kind: 'mcp-call',
398
+ source: { stepperId: tc.name, name: 'tool' },
399
+ tool: tc.name,
400
+ args: tc.arguments,
401
+ });
402
+ }
392
403
  }
393
404
  }
394
405
  if (chunk.finishReason)
@@ -418,6 +429,7 @@ export class ToolLoopHandler {
418
429
  completionTokens: iterCompletionTokens,
419
430
  totalTokens: iterTotalTokens,
420
431
  durationMs: llmCallDuration,
432
+ requestId: ctx.options?.trace?.traceId,
421
433
  });
422
434
  const toolCalls = Array.from(toolCallsMap.values()).map((tc) => {
423
435
  let args = {};
@@ -721,6 +733,11 @@ export class ToolLoopHandler {
721
733
  tool_call_id: tc.id,
722
734
  });
723
735
  ctx.requestLogger.logToolCall({
736
+ // Stamp requestId so tool executions land in the per-traceId delta
737
+ // bucket — without it, `getSummary(traceId).toolCalls` stays 0 even
738
+ // when the request actually ran tools (only the session-cumulative
739
+ // counter would tick).
740
+ requestId: ctx.options?.trace?.traceId,
724
741
  toolName: tc.name,
725
742
  success: !!res?.ok,
726
743
  durationMs: r.duration,