@mcp-abap-adt/llm-agent-libs 16.1.1 → 17.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 (167) 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 +10 -0
  7. package/dist/builder.d.ts.map +1 -1
  8. package/dist/builder.js +17 -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 +220 -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 +17 -0
  30. package/dist/coordinator/dag/llm-dag-planner.d.ts.map +1 -0
  31. package/dist/coordinator/dag/llm-dag-planner.js +152 -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/compose-task.d.ts +16 -0
  74. package/dist/coordinator/dispatch/compose-task.d.ts.map +1 -0
  75. package/dist/coordinator/dispatch/compose-task.js +40 -0
  76. package/dist/coordinator/dispatch/compose-task.js.map +1 -0
  77. package/dist/coordinator/dispatch/self.d.ts.map +1 -1
  78. package/dist/coordinator/dispatch/self.js +2 -1
  79. package/dist/coordinator/dispatch/self.js.map +1 -1
  80. package/dist/coordinator/dispatch/subagent.d.ts.map +1 -1
  81. package/dist/coordinator/dispatch/subagent.js +8 -22
  82. package/dist/coordinator/dispatch/subagent.js.map +1 -1
  83. package/dist/coordinator/index.d.ts +6 -0
  84. package/dist/coordinator/index.d.ts.map +1 -1
  85. package/dist/coordinator/index.js +6 -0
  86. package/dist/coordinator/index.js.map +1 -1
  87. package/dist/coordinator/planning/one-shot.d.ts.map +1 -1
  88. package/dist/coordinator/planning/one-shot.js +40 -2
  89. package/dist/coordinator/planning/one-shot.js.map +1 -1
  90. package/dist/coordinator/planning/replan-on-error.d.ts.map +1 -1
  91. package/dist/coordinator/planning/replan-on-error.js +16 -1
  92. package/dist/coordinator/planning/replan-on-error.js.map +1 -1
  93. package/dist/coordinator/planning/skill-steps.d.ts.map +1 -1
  94. package/dist/coordinator/planning/skill-steps.js +3 -0
  95. package/dist/coordinator/planning/skill-steps.js.map +1 -1
  96. package/dist/index.d.ts +8 -2
  97. package/dist/index.d.ts.map +1 -1
  98. package/dist/index.js +5 -1
  99. package/dist/index.js.map +1 -1
  100. package/dist/logger/default-request-logger.d.ts +18 -6
  101. package/dist/logger/default-request-logger.d.ts.map +1 -1
  102. package/dist/logger/default-request-logger.js +15 -4
  103. package/dist/logger/default-request-logger.js.map +1 -1
  104. package/dist/logger/noop-request-logger.d.ts +10 -5
  105. package/dist/logger/noop-request-logger.d.ts.map +1 -1
  106. package/dist/logger/noop-request-logger.js +4 -3
  107. package/dist/logger/noop-request-logger.js.map +1 -1
  108. package/dist/logger/session-request-logger.d.ts +50 -0
  109. package/dist/logger/session-request-logger.d.ts.map +1 -0
  110. package/dist/logger/session-request-logger.js +151 -0
  111. package/dist/logger/session-request-logger.js.map +1 -0
  112. package/dist/pipeline/context.d.ts +8 -3
  113. package/dist/pipeline/context.d.ts.map +1 -1
  114. package/dist/pipeline/default-pipeline.d.ts +27 -4
  115. package/dist/pipeline/default-pipeline.d.ts.map +1 -1
  116. package/dist/pipeline/default-pipeline.js +42 -7
  117. package/dist/pipeline/default-pipeline.js.map +1 -1
  118. package/dist/pipeline/handlers/coordinator.d.ts +0 -3
  119. package/dist/pipeline/handlers/coordinator.d.ts.map +1 -1
  120. package/dist/pipeline/handlers/coordinator.js +47 -22
  121. package/dist/pipeline/handlers/coordinator.js.map +1 -1
  122. package/dist/pipeline/handlers/dag-coordinator.d.ts +47 -0
  123. package/dist/pipeline/handlers/dag-coordinator.d.ts.map +1 -0
  124. package/dist/pipeline/handlers/dag-coordinator.js +369 -0
  125. package/dist/pipeline/handlers/dag-coordinator.js.map +1 -0
  126. package/dist/pipeline/handlers/index.d.ts +7 -0
  127. package/dist/pipeline/handlers/index.d.ts.map +1 -1
  128. package/dist/pipeline/handlers/index.js +5 -1
  129. package/dist/pipeline/handlers/index.js.map +1 -1
  130. package/dist/pipeline/handlers/rag-query.d.ts.map +1 -1
  131. package/dist/pipeline/handlers/rag-query.js +1 -0
  132. package/dist/pipeline/handlers/rag-query.js.map +1 -1
  133. package/dist/pipeline/handlers/subagent.d.ts.map +1 -1
  134. package/dist/pipeline/handlers/subagent.js +0 -2
  135. package/dist/pipeline/handlers/subagent.js.map +1 -1
  136. package/dist/pipeline/handlers/summarize.d.ts.map +1 -1
  137. package/dist/pipeline/handlers/summarize.js +5 -0
  138. package/dist/pipeline/handlers/summarize.js.map +1 -1
  139. package/dist/pipeline/handlers/tool-loop.d.ts.map +1 -1
  140. package/dist/pipeline/handlers/tool-loop.js +16 -0
  141. package/dist/pipeline/handlers/tool-loop.js.map +1 -1
  142. package/dist/pipeline/handlers/translate.d.ts.map +1 -1
  143. package/dist/pipeline/handlers/translate.js +1 -0
  144. package/dist/pipeline/handlers/translate.js.map +1 -1
  145. package/dist/pipeline/index.d.ts +2 -1
  146. package/dist/pipeline/index.d.ts.map +1 -1
  147. package/dist/pipeline/index.js +1 -1
  148. package/dist/pipeline/index.js.map +1 -1
  149. package/dist/session/session-graph-factory.d.ts +66 -0
  150. package/dist/session/session-graph-factory.d.ts.map +1 -0
  151. package/dist/session/session-graph-factory.js +63 -0
  152. package/dist/session/session-graph-factory.js.map +1 -0
  153. package/dist/session/session-graph.d.ts +54 -0
  154. package/dist/session/session-graph.d.ts.map +1 -0
  155. package/dist/session/session-graph.js +76 -0
  156. package/dist/session/session-graph.js.map +1 -0
  157. package/dist/session/session-registry.d.ts +89 -0
  158. package/dist/session/session-registry.d.ts.map +1 -0
  159. package/dist/session/session-registry.js +279 -0
  160. package/dist/session/session-registry.js.map +1 -0
  161. package/dist/subagent/direct-llm-subagent.d.ts.map +1 -1
  162. package/dist/subagent/direct-llm-subagent.js +0 -2
  163. package/dist/subagent/direct-llm-subagent.js.map +1 -1
  164. package/dist/subagent/smart-agent-subagent.d.ts.map +1 -1
  165. package/dist/subagent/smart-agent-subagent.js +3 -3
  166. package/dist/subagent/smart-agent-subagent.js.map +1 -1
  167. package/package.json +14 -14
@@ -0,0 +1,15 @@
1
+ import type { ErrorContext, ErrorReaction, IErrorStrategy, IReviewStrategy, PlanNode } from '@mcp-abap-adt/llm-agent';
2
+ /**
3
+ * Error strategy that delegates recovery to the reviewer: on a node failure it
4
+ * asks the reviewer to replan the REMAINING objective against current state
5
+ * (`reviewExecutionFailure`), returning a `revise` reaction (whole-remainder
6
+ * swap) or `abort`. Stateless — the interpreter owns the per-run budget.
7
+ */
8
+ export declare class ReviewerErrorStrategy implements IErrorStrategy {
9
+ private readonly reviewer;
10
+ readonly maxReplans: number;
11
+ readonly name = "reviewer";
12
+ constructor(reviewer: IReviewStrategy, maxReplans?: number);
13
+ onNodeFailure(node: PlanNode, error: unknown, ctx: ErrorContext): Promise<ErrorReaction>;
14
+ }
15
+ //# sourceMappingURL=reviewer-error-strategy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reviewer-error-strategy.d.ts","sourceRoot":"","sources":["../../../src/coordinator/dag/reviewer-error-strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,cAAc,EACd,eAAe,EACf,QAAQ,EACT,MAAM,yBAAyB,CAAC;AAEjC;;;;;GAKG;AACH,qBAAa,qBAAsB,YAAW,cAAc;IAGxD,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,QAAQ,CAAC,UAAU;IAHrB,QAAQ,CAAC,IAAI,cAAc;gBAER,QAAQ,EAAE,eAAe,EACjC,UAAU,SAAI;IAGnB,aAAa,CACjB,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,YAAY,GAChB,OAAO,CAAC,aAAa,CAAC;CAwB1B"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Error strategy that delegates recovery to the reviewer: on a node failure it
3
+ * asks the reviewer to replan the REMAINING objective against current state
4
+ * (`reviewExecutionFailure`), returning a `revise` reaction (whole-remainder
5
+ * swap) or `abort`. Stateless — the interpreter owns the per-run budget.
6
+ */
7
+ export class ReviewerErrorStrategy {
8
+ reviewer;
9
+ maxReplans;
10
+ name = 'reviewer';
11
+ constructor(reviewer, maxReplans = 4) {
12
+ this.reviewer = reviewer;
13
+ this.maxReplans = maxReplans;
14
+ }
15
+ async onNodeFailure(node, error, ctx) {
16
+ if (ctx.remainingReplans <= 0 ||
17
+ !this.reviewer.reviewExecutionFailure ||
18
+ !ctx.plan ||
19
+ !ctx.completedResults) {
20
+ return { action: 'abort' };
21
+ }
22
+ const decision = await this.reviewer.reviewExecutionFailure({
23
+ objective: ctx.plan.objective,
24
+ plan: ctx.plan,
25
+ trace: ctx.completedResults,
26
+ failedNodeId: node.id,
27
+ error: error instanceof Error ? error.message : String(error),
28
+ agents: ctx.agents,
29
+ sessionId: ctx.sessionId,
30
+ signal: ctx.signal,
31
+ });
32
+ if (decision.action === 'revise') {
33
+ return { action: 'revise', revisedPlan: decision.revisedPlan };
34
+ }
35
+ return { action: 'abort' };
36
+ }
37
+ }
38
+ //# sourceMappingURL=reviewer-error-strategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reviewer-error-strategy.js","sourceRoot":"","sources":["../../../src/coordinator/dag/reviewer-error-strategy.ts"],"names":[],"mappings":"AAQA;;;;;GAKG;AACH,MAAM,OAAO,qBAAqB;IAGb;IACR;IAHF,IAAI,GAAG,UAAU,CAAC;IAC3B,YACmB,QAAyB,EACjC,aAAa,CAAC;QADN,aAAQ,GAAR,QAAQ,CAAiB;QACjC,eAAU,GAAV,UAAU,CAAI;IACtB,CAAC;IAEJ,KAAK,CAAC,aAAa,CACjB,IAAc,EACd,KAAc,EACd,GAAiB;QAEjB,IACE,GAAG,CAAC,gBAAgB,IAAI,CAAC;YACzB,CAAC,IAAI,CAAC,QAAQ,CAAC,sBAAsB;YACrC,CAAC,GAAG,CAAC,IAAI;YACT,CAAC,GAAG,CAAC,gBAAgB,EACrB,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;QAC7B,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC;YAC1D,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS;YAC7B,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,KAAK,EAAE,GAAG,CAAC,gBAAgB;YAC3B,YAAY,EAAE,IAAI,CAAC,EAAE;YACrB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YAC7D,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,MAAM,EAAE,GAAG,CAAC,MAAM;SACnB,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACjC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,CAAC;QACjE,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IAC7B,CAAC;CACF"}
@@ -0,0 +1,12 @@
1
+ import type { DagPlan } from '@mcp-abap-adt/llm-agent';
2
+ /**
3
+ * Replace node `nodeId` in `plan` with the nodes of `subPlan`, flat (no nesting):
4
+ * - sub-plan node ids are namespaced `${nodeId}:${id}` (collision-safe);
5
+ * - sub-plan ROOT nodes (no intra-sub deps) inherit the replaced node's
6
+ * `dependsOn` AND `needsInput`;
7
+ * - consumers that depended on `nodeId` now depend on the sub-plan's TERMINAL
8
+ * nodes (sub nodes nothing else in the sub-plan depends on).
9
+ * Returns a new DagPlan (no mutation of the input).
10
+ */
11
+ export declare function spliceSubPlan(plan: DagPlan, nodeId: string, subPlan: DagPlan): DagPlan;
12
+ //# sourceMappingURL=splice-sub-plan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"splice-sub-plan.d.ts","sourceRoot":"","sources":["../../../src/coordinator/dag/splice-sub-plan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAY,MAAM,yBAAyB,CAAC;AAEjE;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,GACf,OAAO,CAkCT"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Replace node `nodeId` in `plan` with the nodes of `subPlan`, flat (no nesting):
3
+ * - sub-plan node ids are namespaced `${nodeId}:${id}` (collision-safe);
4
+ * - sub-plan ROOT nodes (no intra-sub deps) inherit the replaced node's
5
+ * `dependsOn` AND `needsInput`;
6
+ * - consumers that depended on `nodeId` now depend on the sub-plan's TERMINAL
7
+ * nodes (sub nodes nothing else in the sub-plan depends on).
8
+ * Returns a new DagPlan (no mutation of the input).
9
+ */
10
+ export function spliceSubPlan(plan, nodeId, subPlan) {
11
+ const replaced = plan.nodes.find((n) => n.id === nodeId);
12
+ if (!replaced)
13
+ return plan;
14
+ const ns = (id) => `${nodeId}:${id}`;
15
+ const subDependedOn = new Set(subPlan.nodes.flatMap((n) => n.dependsOn ?? []));
16
+ const terminals = subPlan.nodes
17
+ .filter((n) => !subDependedOn.has(n.id))
18
+ .map((n) => ns(n.id));
19
+ const inheritedDeps = replaced.dependsOn ?? [];
20
+ const splicedSubNodes = subPlan.nodes.map((n) => {
21
+ const intra = (n.dependsOn ?? []).map(ns);
22
+ const isRoot = (n.dependsOn ?? []).length === 0;
23
+ return {
24
+ ...n,
25
+ id: ns(n.id),
26
+ dependsOn: isRoot ? inheritedDeps : intra,
27
+ needsInput: isRoot ? (replaced.needsInput ?? n.needsInput) : n.needsInput,
28
+ };
29
+ });
30
+ const rest = plan.nodes
31
+ .filter((n) => n.id !== nodeId)
32
+ .map((n) => {
33
+ const deps = n.dependsOn ?? [];
34
+ if (!deps.includes(nodeId))
35
+ return n;
36
+ const rewired = deps.filter((d) => d !== nodeId).concat(terminals);
37
+ return { ...n, dependsOn: rewired };
38
+ });
39
+ return { ...plan, nodes: [...rest, ...splicedSubNodes] };
40
+ }
41
+ //# sourceMappingURL=splice-sub-plan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"splice-sub-plan.js","sourceRoot":"","sources":["../../../src/coordinator/dag/splice-sub-plan.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,MAAM,UAAU,aAAa,CAC3B,IAAa,EACb,MAAc,EACd,OAAgB;IAEhB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;IACzD,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3B,MAAM,EAAE,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,GAAG,MAAM,IAAI,EAAE,EAAE,CAAC;IAE7C,MAAM,aAAa,GAAG,IAAI,GAAG,CAC3B,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,CAChD,CAAC;IACF,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK;SAC5B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SACvC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxB,MAAM,aAAa,GAAG,QAAQ,CAAC,SAAS,IAAI,EAAE,CAAC;IAE/C,MAAM,eAAe,GAAe,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC1D,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;QAChD,OAAO;YACL,GAAG,CAAC;YACJ,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACZ,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK;YACzC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU;SAC1E,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK;SACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC;SAC9B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,MAAM,IAAI,GAAG,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACnE,OAAO,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;IAEL,OAAO,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,eAAe,CAAC,EAAE,CAAC;AAC3D,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { IStateOracle, ISubAgent, StateOracleInput, StateOracleResult } from '@mcp-abap-adt/llm-agent';
2
+ /**
3
+ * Adapter wrapping a raw ISubAgent as an IStateOracle. The wrapped
4
+ * subagent runs a full pipeline whose LLM activity is logged by its
5
+ * own handlers under their own component labels (`tool-loop`,
6
+ * `classifier`, …) via the SHARED session requestLogger keyed on the
7
+ * forwarded traceId. To avoid double-counting, this adapter
8
+ * intentionally returns `usage: undefined`; the handler's
9
+ * `logRoleUsage('oracle', …)` is therefore a no-op for subagent-backed
10
+ * oracles. A pure-LLM IStateOracle implementation that bypasses
11
+ * pipeline logging would populate `usage` normally.
12
+ */
13
+ export declare class SubAgentStateOracle implements IStateOracle {
14
+ private readonly inner;
15
+ constructor(inner: ISubAgent);
16
+ get name(): string;
17
+ query(input: StateOracleInput): Promise<StateOracleResult>;
18
+ }
19
+ //# sourceMappingURL=subagent-state-oracle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subagent-state-oracle.d.ts","sourceRoot":"","sources":["../../../src/coordinator/dag/subagent-state-oracle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,yBAAyB,CAAC;AAEjC;;;;;;;;;;GAUG;AACH,qBAAa,mBAAoB,YAAW,YAAY;IAC1C,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,SAAS;IAE7C,IAAI,IAAI,IAAI,MAAM,CAEjB;IAEK,KAAK,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAUjE"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Adapter wrapping a raw ISubAgent as an IStateOracle. The wrapped
3
+ * subagent runs a full pipeline whose LLM activity is logged by its
4
+ * own handlers under their own component labels (`tool-loop`,
5
+ * `classifier`, …) via the SHARED session requestLogger keyed on the
6
+ * forwarded traceId. To avoid double-counting, this adapter
7
+ * intentionally returns `usage: undefined`; the handler's
8
+ * `logRoleUsage('oracle', …)` is therefore a no-op for subagent-backed
9
+ * oracles. A pure-LLM IStateOracle implementation that bypasses
10
+ * pipeline logging would populate `usage` normally.
11
+ */
12
+ export class SubAgentStateOracle {
13
+ inner;
14
+ constructor(inner) {
15
+ this.inner = inner;
16
+ }
17
+ get name() {
18
+ return this.inner.name;
19
+ }
20
+ async query(input) {
21
+ const res = await this.inner.run({
22
+ task: input.query,
23
+ sessionId: input.sessionId,
24
+ signal: input.signal,
25
+ trace: input.trace,
26
+ sessionLogger: input.sessionLogger,
27
+ });
28
+ return { answer: res.output, usage: undefined };
29
+ }
30
+ }
31
+ //# sourceMappingURL=subagent-state-oracle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subagent-state-oracle.js","sourceRoot":"","sources":["../../../src/coordinator/dag/subagent-state-oracle.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;GAUG;AACH,MAAM,OAAO,mBAAmB;IACD;IAA7B,YAA6B,KAAgB;QAAhB,UAAK,GAAL,KAAK,CAAW;IAAG,CAAC;IAEjD,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAuB;QACjC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;YAC/B,IAAI,EAAE,KAAK,CAAC,KAAK;YACjB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,aAAa,EAAE,KAAK,CAAC,aAAa;SACnC,CAAC,CAAC;QACH,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAClD,CAAC;CACF"}
@@ -0,0 +1,11 @@
1
+ import type { FinalizerInput, FinalizerResult, IFinalizer } from '@mcp-abap-adt/llm-agent';
2
+ /**
3
+ * Deterministic markdown join over the execution trace. No LLM. Useful
4
+ * when the plan is already shaped per-section and the answer is just
5
+ * the concatenation of the section outputs.
6
+ */
7
+ export declare class TemplateFinalizer implements IFinalizer {
8
+ readonly name = "template";
9
+ finalize(input: FinalizerInput): Promise<FinalizerResult>;
10
+ }
11
+ //# sourceMappingURL=template-finalizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template-finalizer.d.ts","sourceRoot":"","sources":["../../../src/coordinator/dag/template-finalizer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EACf,UAAU,EACX,MAAM,yBAAyB,CAAC;AAEjC;;;;GAIG;AACH,qBAAa,iBAAkB,YAAW,UAAU;IAClD,QAAQ,CAAC,IAAI,cAAc;IAErB,QAAQ,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;CAQhE"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Deterministic markdown join over the execution trace. No LLM. Useful
3
+ * when the plan is already shaped per-section and the answer is just
4
+ * the concatenation of the section outputs.
5
+ */
6
+ export class TemplateFinalizer {
7
+ name = 'template';
8
+ async finalize(input) {
9
+ let out = '';
10
+ for (const t of input.executionTrace) {
11
+ out += `# Node ${t.nodeId} — ${t.goal}\n${t.output}\n\n`;
12
+ }
13
+ input.onPartial?.({ kind: 'content', delta: out });
14
+ return { output: out };
15
+ }
16
+ }
17
+ //# sourceMappingURL=template-finalizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template-finalizer.js","sourceRoot":"","sources":["../../../src/coordinator/dag/template-finalizer.ts"],"names":[],"mappings":"AAMA;;;;GAIG;AACH,MAAM,OAAO,iBAAiB;IACnB,IAAI,GAAG,UAAU,CAAC;IAE3B,KAAK,CAAC,QAAQ,CAAC,KAAqB;QAClC,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;YACrC,GAAG,IAAI,UAAU,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,MAAM,CAAC;QAC3D,CAAC;QACD,KAAK,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QACnD,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;IACzB,CAAC;CACF"}
@@ -0,0 +1,16 @@
1
+ import type { ICoordinatorContext, PlanStep } from '@mcp-abap-adt/llm-agent';
2
+ /**
3
+ * Deterministically compose the executor `task` from the planner's structured
4
+ * intent. The planner decides (goal, plan objective, needsInput); this helper
5
+ * assembles the final string with no LLM involvement, so client material is
6
+ * inserted verbatim and losslessly.
7
+ *
8
+ * - `step.inputTemplate` (advanced override) wins and is resolved as-is.
9
+ * - No-regression path: when there is no objective and no needsInput (and no
10
+ * template), the task reduces to the bare `step.goal` — unchanged behavior.
11
+ * - Otherwise: "Task: <goal>", then "Overall objective: <objective>" when the
12
+ * plan carries one, then the client request as delimited data when
13
+ * `step.needsInput` is true.
14
+ */
15
+ export declare function composeTask(step: PlanStep, ctx: ICoordinatorContext): string;
16
+ //# sourceMappingURL=compose-task.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compose-task.d.ts","sourceRoot":"","sources":["../../../src/coordinator/dispatch/compose-task.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAG7E;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,mBAAmB,GAAG,MAAM,CA2B5E"}
@@ -0,0 +1,40 @@
1
+ import { resolveTemplate } from '../../util/template.js';
2
+ /**
3
+ * Deterministically compose the executor `task` from the planner's structured
4
+ * intent. The planner decides (goal, plan objective, needsInput); this helper
5
+ * assembles the final string with no LLM involvement, so client material is
6
+ * inserted verbatim and losslessly.
7
+ *
8
+ * - `step.inputTemplate` (advanced override) wins and is resolved as-is.
9
+ * - No-regression path: when there is no objective and no needsInput (and no
10
+ * template), the task reduces to the bare `step.goal` — unchanged behavior.
11
+ * - Otherwise: "Task: <goal>", then "Overall objective: <objective>" when the
12
+ * plan carries one, then the client request as delimited data when
13
+ * `step.needsInput` is true.
14
+ */
15
+ export function composeTask(step, ctx) {
16
+ if (step.inputTemplate) {
17
+ const renderCtx = {
18
+ goal: step.goal,
19
+ objective: ctx.plan?.objective ?? '',
20
+ inputText: ctx.inputText,
21
+ stepResults: ctx.stepResults,
22
+ step,
23
+ };
24
+ return resolveTemplate(step.inputTemplate, renderCtx);
25
+ }
26
+ const objective = ctx.plan?.objective;
27
+ // No-regression path: nothing to compose → bare goal (unchanged behavior).
28
+ if (!objective && !step.needsInput) {
29
+ return step.goal;
30
+ }
31
+ const parts = [`Task: ${step.goal}`];
32
+ if (objective) {
33
+ parts.push(`Overall objective: ${objective}`);
34
+ }
35
+ if (step.needsInput) {
36
+ parts.push(`Input (user-provided data):\n---\n${ctx.inputText}\n---`);
37
+ }
38
+ return parts.join('\n\n');
39
+ }
40
+ //# sourceMappingURL=compose-task.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compose-task.js","sourceRoot":"","sources":["../../../src/coordinator/dispatch/compose-task.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,WAAW,CAAC,IAAc,EAAE,GAAwB;IAClE,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,MAAM,SAAS,GAA4B;YACzC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,SAAS,EAAE,GAAG,CAAC,IAAI,EAAE,SAAS,IAAI,EAAE;YACpC,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,IAAI;SACL,CAAC;QACF,OAAO,eAAe,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC;IAEtC,2EAA2E;IAC3E,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,MAAM,KAAK,GAAa,CAAC,SAAS,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/C,IAAI,SAAS,EAAE,CAAC;QACd,KAAK,CAAC,IAAI,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAC;IAChD,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,qCAAqC,GAAG,CAAC,SAAS,OAAO,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"self.d.ts","sourceRoot":"","sources":["../../../src/coordinator/dispatch/self.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,iBAAiB,EACjB,IAAI,EACJ,QAAQ,EACR,UAAU,EACX,MAAM,yBAAyB,CAAC;AAEjC,qBAAa,YAAa,YAAW,iBAAiB;IAIlD,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IAJhC,QAAQ,CAAC,IAAI,UAAU;gBAGJ,GAAG,EAAE,IAAI,EACT,YAAY,CAAC,EAAE,MAAM,YAAA;IAGlC,QAAQ,CACZ,IAAI,EAAE,QAAQ,EACd,GAAG,EAAE,mBAAmB,GACvB,OAAO,CAAC,UAAU,CAAC;CAuCvB"}
1
+ {"version":3,"file":"self.d.ts","sourceRoot":"","sources":["../../../src/coordinator/dispatch/self.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,iBAAiB,EACjB,IAAI,EACJ,QAAQ,EACR,UAAU,EACX,MAAM,yBAAyB,CAAC;AAGjC,qBAAa,YAAa,YAAW,iBAAiB;IAIlD,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IAJhC,QAAQ,CAAC,IAAI,UAAU;gBAGJ,GAAG,EAAE,IAAI,EACT,YAAY,CAAC,EAAE,MAAM,YAAA;IAGlC,QAAQ,CACZ,IAAI,EAAE,QAAQ,EACd,GAAG,EAAE,mBAAmB,GACvB,OAAO,CAAC,UAAU,CAAC;CAuCvB"}
@@ -1,3 +1,4 @@
1
+ import { composeTask } from './compose-task.js';
1
2
  export class SelfDispatch {
2
3
  llm;
3
4
  systemPrompt;
@@ -13,7 +14,7 @@ export class SelfDispatch {
13
14
  const priorBlock = Object.values(ctx.stepResults)
14
15
  .map((r) => `- ${r.stepId}: ${r.output.slice(0, 300)}`)
15
16
  .join('\n') || '(none)';
16
- const userMsg = `Current step: ${step.goal}\n\nResults so far:\n${priorBlock}`;
17
+ const userMsg = `${composeTask(step, ctx)}\n\nResults so far:\n${priorBlock}`;
17
18
  const started = Date.now();
18
19
  try {
19
20
  const res = await this.llm.chat([
@@ -1 +1 @@
1
- {"version":3,"file":"self.js","sourceRoot":"","sources":["../../../src/coordinator/dispatch/self.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,YAAY;IAIJ;IACA;IAJV,IAAI,GAAG,MAAM,CAAC;IAEvB,YACmB,GAAS,EACT,YAAqB;QADrB,QAAG,GAAH,GAAG,CAAM;QACT,iBAAY,GAAZ,YAAY,CAAS;IACrC,CAAC;IAEJ,KAAK,CAAC,QAAQ,CACZ,IAAc,EACd,GAAwB;QAExB,MAAM,GAAG,GACP,IAAI,CAAC,YAAY;YACjB,GAAG,CAAC,YAAY;YAChB,yEAAyE,CAAC;QAC5E,MAAM,UAAU,GACd,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC;aAC3B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;aACtD,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC;QAC5B,MAAM,OAAO,GAAG,iBAAiB,IAAI,CAAC,IAAI,wBAAwB,UAAU,EAAE,CAAC;QAE/E,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAC7B;gBACE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE;gBAChC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE;aACnC,EACD,EAAE,EACF,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CACjD,CAAC;YACF,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,MAAM,GAAG,CAAC,KAAK,CAAC;YAC7B,OAAO;gBACL,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO;gBACzB,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK;gBACtB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO;gBAChC,EAAE,EAAE,IAAI;aACT,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,MAAM,EAAE,EAAE;gBACV,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO;gBAChC,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACxD,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"self.js","sourceRoot":"","sources":["../../../src/coordinator/dispatch/self.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,OAAO,YAAY;IAIJ;IACA;IAJV,IAAI,GAAG,MAAM,CAAC;IAEvB,YACmB,GAAS,EACT,YAAqB;QADrB,QAAG,GAAH,GAAG,CAAM;QACT,iBAAY,GAAZ,YAAY,CAAS;IACrC,CAAC;IAEJ,KAAK,CAAC,QAAQ,CACZ,IAAc,EACd,GAAwB;QAExB,MAAM,GAAG,GACP,IAAI,CAAC,YAAY;YACjB,GAAG,CAAC,YAAY;YAChB,yEAAyE,CAAC;QAC5E,MAAM,UAAU,GACd,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC;aAC3B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;aACtD,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC;QAC5B,MAAM,OAAO,GAAG,GAAG,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,wBAAwB,UAAU,EAAE,CAAC;QAE9E,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAC7B;gBACE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE;gBAChC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE;aACnC,EACD,EAAE,EACF,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CACjD,CAAC;YACF,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,MAAM,GAAG,CAAC,KAAK,CAAC;YAC7B,OAAO;gBACL,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO;gBACzB,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK;gBACtB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO;gBAChC,EAAE,EAAE,IAAI;aACT,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,MAAM,EAAE,EAAE;gBACV,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO;gBAChC,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACxD,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"subagent.d.ts","sourceRoot":"","sources":["../../../src/coordinator/dispatch/subagent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,mBAAmB,EACnB,iBAAiB,EACjB,uBAAuB,EACvB,QAAQ,EACR,UAAU,EACX,MAAM,yBAAyB,CAAC;AAGjC;;;;;;;;GAQG;AACH,qBAAa,gBAAiB,YAAW,iBAAiB;IAG5C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;IAF5C,QAAQ,CAAC,IAAI,cAAc;gBAEE,cAAc,CAAC,EAAE,uBAAuB,YAAA;IAE/D,QAAQ,CACZ,IAAI,EAAE,QAAQ,EACd,GAAG,EAAE,mBAAmB,GACvB,OAAO,CAAC,UAAU,CAAC;CAkHvB"}
1
+ {"version":3,"file":"subagent.d.ts","sourceRoot":"","sources":["../../../src/coordinator/dispatch/subagent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,mBAAmB,EACnB,iBAAiB,EACjB,uBAAuB,EACvB,QAAQ,EACR,UAAU,EACX,MAAM,yBAAyB,CAAC;AAGjC;;;;;;;;GAQG;AACH,qBAAa,gBAAiB,YAAW,iBAAiB;IAG5C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;IAF5C,QAAQ,CAAC,IAAI,cAAc;gBAEE,cAAc,CAAC,EAAE,uBAAuB,YAAA;IAE/D,QAAQ,CACZ,IAAI,EAAE,QAAQ,EACd,GAAG,EAAE,mBAAmB,GACvB,OAAO,CAAC,UAAU,CAAC;CAkGvB"}
@@ -1,4 +1,4 @@
1
- import { resolveTemplate } from '../../util/template.js';
1
+ import { composeTask } from './compose-task.js';
2
2
  /**
3
3
  * Dispatch the step to a named subagent from the registry.
4
4
  * If step.agent is unset or absent from registry, returns ok=false StepResult.
@@ -35,23 +35,13 @@ export class SubAgentDispatch {
35
35
  error: `SubAgentDispatch: agent '${agentName}' not in registry (registered: ${[...ctx.registry.keys()].join(', ') || 'none'})`,
36
36
  };
37
37
  }
38
- const renderCtx = {
39
- inputText: ctx.inputText,
40
- stepResults: ctx.stepResults,
41
- step: step,
42
- goal: step.goal,
43
- };
44
- const task = step.inputTemplate
45
- ? resolveTemplate(step.inputTemplate, renderCtx)
46
- : step.goal;
47
- const childLayer = (ctx.layer ?? 0) + 1;
38
+ const task = composeTask(step, ctx);
48
39
  let context;
49
40
  if (this.contextBuilder) {
50
41
  const built = await this.contextBuilder.build({
51
42
  task,
52
43
  step,
53
44
  agent: sub,
54
- layer: childLayer,
55
45
  inputText: ctx.inputText,
56
46
  sessionId: ctx.sessionId,
57
47
  signal: ctx.signal,
@@ -76,27 +66,23 @@ export class SubAgentDispatch {
76
66
  context,
77
67
  sessionId: ctx.sessionId,
78
68
  signal: ctx.signal,
79
- layer: childLayer,
80
69
  });
81
- // Epicfail propagation: do NOT retry, do NOT transform — preserve trace
82
- // by attaching this layer's frame and passing it upward in StepResult.
70
+ // Epicfail propagation: do NOT retry, do NOT transform — surface the
71
+ // flat trace upward in StepResult unchanged (or build one if absent).
83
72
  if (res.errorClass === 'epicfail') {
84
- const childTrace = res.epicFailTrace;
85
- const wrappedTrace = {
86
- layer: ctx.layer ?? 0,
73
+ const trace = res.epicFailTrace ?? {
87
74
  stepId: step.id,
88
75
  agentName,
89
76
  attempts: [],
90
- originalError: childTrace?.originalError ?? `epicfail from '${agentName}'`,
91
- childTrace,
77
+ originalError: `epicfail from '${agentName}'`,
92
78
  };
93
79
  return {
94
80
  stepId: step.id,
95
81
  output: '',
96
82
  durationMs: Date.now() - started,
97
83
  ok: false,
98
- error: `epicfail from '${agentName}': ${childTrace?.originalError ?? 'unknown'}`,
99
- epicFailTrace: wrappedTrace,
84
+ error: `epicfail from '${agentName}': ${trace.originalError}`,
85
+ epicFailTrace: trace,
100
86
  };
101
87
  }
102
88
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"subagent.js","sourceRoot":"","sources":["../../../src/coordinator/dispatch/subagent.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD;;;;;;;;GAQG;AACH,MAAM,OAAO,gBAAgB;IAGE;IAFpB,IAAI,GAAG,UAAU,CAAC;IAE3B,YAA6B,cAAwC;QAAxC,mBAAc,GAAd,cAAc,CAA0B;IAAG,CAAC;IAEzE,KAAK,CAAC,QAAQ,CACZ,IAAc,EACd,GAAwB;QAExB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;QAC7B,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO;gBACL,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,MAAM,EAAE,EAAE;gBACV,UAAU,EAAE,CAAC;gBACb,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,2BAA2B,IAAI,CAAC,EAAE,8CAA8C;aACxF,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACxC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO;gBACL,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,MAAM,EAAE,EAAE;gBACV,UAAU,EAAE,CAAC;gBACb,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,4BAA4B,SAAS,kCAC1C,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MACzC,GAAG;aACJ,CAAC;QACJ,CAAC;QACD,MAAM,SAAS,GAA4B;YACzC,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC;QACF,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa;YAC7B,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC;YAChD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAEd,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAExC,IAAI,OAA2B,CAAC;QAChC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;gBAC5C,IAAI;gBACJ,IAAI;gBACJ,KAAK,EAAE,GAAG;gBACV,KAAK,EAAE,UAAU;gBACjB,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,MAAM,EAAE,GAAG,CAAC,MAAM;aACnB,CAAC,CAAC;YACH,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QACjE,CAAC;QAED,wEAAwE;QACxE,IACE,GAAG,CAAC,YAAY,CAAC,aAAa,KAAK,UAAU;YAC7C,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,EAC/C,CAAC;YACD,OAAO;gBACL,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,MAAM,EAAE,EAAE;gBACV,UAAU,EAAE,CAAC;gBACb,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,+BAA+B,SAAS,iEAAiE;aACjH,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC;gBACxB,IAAI;gBACJ,OAAO;gBACP,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,KAAK,EAAE,UAAU;aAClB,CAAC,CAAC;YAEH,wEAAwE;YACxE,uEAAuE;YACvE,IAAI,GAAG,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;gBAClC,MAAM,UAAU,GAAG,GAAG,CAAC,aAAa,CAAC;gBACrC,MAAM,YAAY,GAAkB;oBAClC,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;oBACrB,MAAM,EAAE,IAAI,CAAC,EAAE;oBACf,SAAS;oBACT,QAAQ,EAAE,EAAE;oBACZ,aAAa,EACX,UAAU,EAAE,aAAa,IAAI,kBAAkB,SAAS,GAAG;oBAC7D,UAAU;iBACX,CAAC;gBACF,OAAO;oBACL,MAAM,EAAE,IAAI,CAAC,EAAE;oBACf,MAAM,EAAE,EAAE;oBACV,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO;oBAChC,EAAE,EAAE,KAAK;oBACT,KAAK,EAAE,kBAAkB,SAAS,MAAM,UAAU,EAAE,aAAa,IAAI,SAAS,EAAE;oBAChF,aAAa,EAAE,YAAY;iBAC5B,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO;gBAChC,EAAE,EAAE,IAAI;aACT,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,MAAM,EAAE,EAAE;gBACV,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO;gBAChC,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACxD,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"subagent.js","sourceRoot":"","sources":["../../../src/coordinator/dispatch/subagent.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,11 @@
1
1
  export { AutoActivation } from './activation/auto.js';
2
2
  export { ExplicitActivation } from './activation/explicit.js';
3
+ export { AbortErrorStrategy } from './dag/abort-error-strategy.js';
4
+ export { DagPlanInterpreter } from './dag/dag-plan-interpreter.js';
5
+ export { LlmDagPlanner } from './dag/llm-dag-planner.js';
6
+ export { LlmReviewStrategy } from './dag/llm-review-strategy.js';
7
+ export { NoopReviewStrategy } from './dag/noop-review-strategy.js';
8
+ export { ReplanErrorStrategy } from './dag/replan-error-strategy.js';
3
9
  export { HybridDispatch } from './dispatch/hybrid.js';
4
10
  export { SelfDispatch } from './dispatch/self.js';
5
11
  export { SubAgentDispatch } from './dispatch/subagent.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/coordinator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/coordinator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -1,5 +1,11 @@
1
1
  export { AutoActivation } from './activation/auto.js';
2
2
  export { ExplicitActivation } from './activation/explicit.js';
3
+ export { AbortErrorStrategy } from './dag/abort-error-strategy.js';
4
+ export { DagPlanInterpreter } from './dag/dag-plan-interpreter.js';
5
+ export { LlmDagPlanner } from './dag/llm-dag-planner.js';
6
+ export { LlmReviewStrategy } from './dag/llm-review-strategy.js';
7
+ export { NoopReviewStrategy } from './dag/noop-review-strategy.js';
8
+ export { ReplanErrorStrategy } from './dag/replan-error-strategy.js';
3
9
  export { HybridDispatch } from './dispatch/hybrid.js';
4
10
  export { SelfDispatch } from './dispatch/self.js';
5
11
  export { SubAgentDispatch } from './dispatch/subagent.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/coordinator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/coordinator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"one-shot.d.ts","sourceRoot":"","sources":["../../../src/coordinator/planning/one-shot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,IAAI,EACJ,iBAAiB,EACjB,IAAI,EACJ,QAAQ,EACR,UAAU,EACX,MAAM,yBAAyB,CAAC;AAEjC;;;GAGG;AACH,qBAAa,eAAgB,YAAW,iBAAiB;IAG3C,OAAO,CAAC,QAAQ,CAAC,UAAU;IAFvC,QAAQ,CAAC,IAAI,cAAc;gBAEE,UAAU,EAAE,IAAI;IAEvC,gBAAgB,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IA8C/D,YAAY,CAAC,IAAI,EAAE,mBAAmB,EAAE,WAAW,EAAE,UAAU,GAAG,OAAO;IAInE,WAAW,CACf,IAAI,EAAE,mBAAmB,EACzB,SAAS,EAAE,QAAQ,EAAE,GACpB,OAAO,CAAC,IAAI,CAAC;CAOjB"}
1
+ {"version":3,"file":"one-shot.d.ts","sourceRoot":"","sources":["../../../src/coordinator/planning/one-shot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,IAAI,EACJ,iBAAiB,EACjB,IAAI,EACJ,QAAQ,EACR,UAAU,EACX,MAAM,yBAAyB,CAAC;AAEjC;;;GAGG;AACH,qBAAa,eAAgB,YAAW,iBAAiB;IAG3C,OAAO,CAAC,QAAQ,CAAC,UAAU;IAFvC,QAAQ,CAAC,IAAI,cAAc;gBAEE,UAAU,EAAE,IAAI;IAEvC,gBAAgB,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAkG/D,YAAY,CAAC,IAAI,EAAE,mBAAmB,EAAE,WAAW,EAAE,UAAU,GAAG,OAAO;IAInE,WAAW,CACf,IAAI,EAAE,mBAAmB,EACzB,SAAS,EAAE,QAAQ,EAAE,GACpB,OAAO,CAAC,IAAI,CAAC;CAOjB"}
@@ -16,9 +16,17 @@ export class OneShotPlanning {
16
16
  ? `\n\nApplicable skill instructions:\n${ctx.skillContent}\n`
17
17
  : '';
18
18
  const systemPrompt = `You are a planner. Decompose the user request into ordered steps.
19
+ The dispatched executor sees ONLY the step you author (its "goal" plus the shared
20
+ "objective", and the user's input as delimited data when you set "needsInput").
21
+ It never sees the raw user request as an instruction. So set "needsInput": true on
22
+ any step that must act on the user's provided material (text to summarize, code to
23
+ review, etc.).
24
+ Emit a plan-level "objective" (the shared purpose) so all steps stay aligned.
19
25
  For each step, choose the best agent from the list (or omit "agent" if no specialist fits).
20
- Respond with ONLY a JSON object of shape:
21
- {"steps":[{"id":"step-1","goal":"...","agent":"optional-name"}],"rationale":"..."}
26
+ If the request is too ambiguous to plan, respond with ONLY {"clarification":"<your question>"}.
27
+ If the request needs no decomposition (it can be answered directly without breaking it into steps), return an empty steps array: {"steps":[]}.
28
+ Otherwise respond with ONLY a JSON object of shape:
29
+ {"objective":"...","steps":[{"id":"step-1","goal":"...","agent":"optional-name","needsInput":false}],"rationale":"..."}
22
30
 
23
31
  Available agents:
24
32
  ${agentsBlock || '(none — use self-dispatch)'}${skillBlock}`;
@@ -30,14 +38,44 @@ ${agentsBlock || '(none — use self-dispatch)'}${skillBlock}`;
30
38
  throw response.error;
31
39
  const jsonText = extractJson(response.value.content);
32
40
  const parsed = JSON.parse(jsonText);
41
+ // A clarification must stand alone. Combined with any steps array (incl. [])
42
+ // it is ambiguous mixed output → fail loud, keeping a clean three-way union:
43
+ // {clarification} | {steps:[...]} | {steps:[]} (answer-directly).
44
+ if (parsed.clarification) {
45
+ if (Array.isArray(parsed.steps)) {
46
+ throw new Error(`Planner returned both a clarification and a steps array (ambiguous): ${jsonText.slice(0, 200)}`);
47
+ }
48
+ return {
49
+ steps: [],
50
+ clarification: parsed.clarification,
51
+ createdAt: Date.now(),
52
+ source: 'planner-llm',
53
+ };
54
+ }
55
+ // A missing / non-array `steps` is malformed → fail loud
56
+ // (→ COORDINATOR_PLAN_FAILED). An explicit empty array `steps: []` is the
57
+ // answer-directly signal and is allowed through (the for-loop below is a
58
+ // no-op for it). The empty plan is consumed by the CoordinatorHandler
59
+ // answer-directly branch (#155 Task 2), which self-dispatches the original
60
+ // request; this planner only produces the signal.
61
+ if (!Array.isArray(parsed.steps)) {
62
+ throw new Error(`Planner returned no steps array and no clarification: ${jsonText.slice(0, 200)}`);
63
+ }
64
+ for (const s of parsed.steps) {
65
+ if (typeof s.goal !== 'string' || s.goal.trim() === '') {
66
+ throw new Error(`Planner step is missing a goal: ${JSON.stringify(s)}`);
67
+ }
68
+ }
33
69
  const steps = parsed.steps.map((s, i) => ({
34
70
  id: s.id ?? `step-${i + 1}`,
35
71
  goal: s.goal,
36
72
  agent: s.agent,
73
+ needsInput: s.needsInput,
37
74
  status: 'pending',
38
75
  }));
39
76
  return {
40
77
  steps,
78
+ objective: parsed.objective,
41
79
  rationale: parsed.rationale,
42
80
  createdAt: Date.now(),
43
81
  source: 'planner-llm',
@@ -1 +1 @@
1
- {"version":3,"file":"one-shot.js","sourceRoot":"","sources":["../../../src/coordinator/planning/one-shot.ts"],"names":[],"mappings":"AASA;;;GAGG;AACH,MAAM,OAAO,eAAe;IAGG;IAFpB,IAAI,GAAG,UAAU,CAAC;IAE3B,YAA6B,UAAgB;QAAhB,eAAU,GAAV,UAAU,CAAM;IAAG,CAAC;IAEjD,KAAK,CAAC,gBAAgB,CAAC,GAAwB;QAC7C,MAAM,WAAW,GAAG,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;aAC5C,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,WAAW,IAAI,kBAAkB,EAAE,CAAC;aACvE,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,UAAU,GAAG,GAAG,CAAC,YAAY;YACjC,CAAC,CAAC,uCAAuC,GAAG,CAAC,YAAY,IAAI;YAC7D,CAAC,CAAC,EAAE,CAAC;QAEP,MAAM,YAAY,GAAG;;;;;;EAMvB,WAAW,IAAI,4BAA4B,GAAG,UAAU,EAAE,CAAC;QAEzD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CACzC;YACE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;YACzC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,SAAS,EAAE;SACzC,EACD,EAAE,EACF,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CACjD,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,MAAM,QAAQ,CAAC,KAAK,CAAC;QAEvC,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAGjC,CAAC;QACF,MAAM,KAAK,GAAe,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACpD,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE;YAC3B,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,MAAM,EAAE,SAAS;SAClB,CAAC,CAAC,CAAC;QAEJ,OAAO;YACL,KAAK;YACL,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,MAAM,EAAE,aAAa;SACtB,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,IAAyB,EAAE,WAAuB;QAC7D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,WAAW,CACf,IAAyB,EACzB,SAAqB;QAErB,OAAO;YACL,KAAK,EAAE,SAAS;YAChB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,MAAM,EAAE,aAAa;SACtB,CAAC;IACJ,CAAC;CACF;AAED,SAAS,WAAW,CAAC,IAAY;IAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACxC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,iDAAiD,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CACtE,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"one-shot.js","sourceRoot":"","sources":["../../../src/coordinator/planning/one-shot.ts"],"names":[],"mappings":"AASA;;;GAGG;AACH,MAAM,OAAO,eAAe;IAGG;IAFpB,IAAI,GAAG,UAAU,CAAC;IAE3B,YAA6B,UAAgB;QAAhB,eAAU,GAAV,UAAU,CAAM;IAAG,CAAC;IAEjD,KAAK,CAAC,gBAAgB,CAAC,GAAwB;QAC7C,MAAM,WAAW,GAAG,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;aAC5C,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,WAAW,IAAI,kBAAkB,EAAE,CAAC;aACvE,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,UAAU,GAAG,GAAG,CAAC,YAAY;YACjC,CAAC,CAAC,uCAAuC,GAAG,CAAC,YAAY,IAAI;YAC7D,CAAC,CAAC,EAAE,CAAC;QAEP,MAAM,YAAY,GAAG;;;;;;;;;;;;;;EAcvB,WAAW,IAAI,4BAA4B,GAAG,UAAU,EAAE,CAAC;QAEzD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CACzC;YACE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;YACzC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,SAAS,EAAE;SACzC,EACD,EAAE,EACF,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CACjD,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,MAAM,QAAQ,CAAC,KAAK,CAAC;QAEvC,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAUjC,CAAC;QAEF,6EAA6E;QAC7E,6EAA6E;QAC7E,kEAAkE;QAClE,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YACzB,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChC,MAAM,IAAI,KAAK,CACb,wEAAwE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CACjG,CAAC;YACJ,CAAC;YACD,OAAO;gBACL,KAAK,EAAE,EAAE;gBACT,aAAa,EAAE,MAAM,CAAC,aAAa;gBACnC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;gBACrB,MAAM,EAAE,aAAa;aACtB,CAAC;QACJ,CAAC;QAED,yDAAyD;QACzD,0EAA0E;QAC1E,yEAAyE;QACzE,sEAAsE;QACtE,2EAA2E;QAC3E,kDAAkD;QAClD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CACb,yDAAyD,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAClF,CAAC;QACJ,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAC7B,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBACvD,MAAM,IAAI,KAAK,CAAC,mCAAmC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAe,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACpD,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE;YAC3B,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,MAAM,EAAE,SAAS;SAClB,CAAC,CAAC,CAAC;QAEJ,OAAO;YACL,KAAK;YACL,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,MAAM,EAAE,aAAa;SACtB,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,IAAyB,EAAE,WAAuB;QAC7D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,WAAW,CACf,IAAyB,EACzB,SAAqB;QAErB,OAAO;YACL,KAAK,EAAE,SAAS;YAChB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,MAAM,EAAE,aAAa;SACtB,CAAC;IACJ,CAAC;CACF;AAED,SAAS,WAAW,CAAC,IAAY;IAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACxC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,iDAAiD,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CACtE,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"replan-on-error.d.ts","sourceRoot":"","sources":["../../../src/coordinator/planning/replan-on-error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,IAAI,EACJ,iBAAiB,EACjB,IAAI,EACJ,QAAQ,EACR,UAAU,EACX,MAAM,yBAAyB,CAAC;AAGjC;;;GAGG;AACH,qBAAa,qBAAsB,YAAW,iBAAiB;IAIjD,OAAO,CAAC,QAAQ,CAAC,UAAU;IAHvC,QAAQ,CAAC,IAAI,qBAAqB;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;gBAEd,UAAU,EAAE,IAAI;IAI7C,gBAAgB,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzD,YAAY,CAAC,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO;IAIlE,WAAW,CACf,GAAG,EAAE,mBAAmB,EACxB,SAAS,EAAE,QAAQ,EAAE,GACpB,OAAO,CAAC,IAAI,CAAC;CA2DjB"}
1
+ {"version":3,"file":"replan-on-error.d.ts","sourceRoot":"","sources":["../../../src/coordinator/planning/replan-on-error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,IAAI,EACJ,iBAAiB,EACjB,IAAI,EACJ,QAAQ,EACR,UAAU,EACX,MAAM,yBAAyB,CAAC;AAGjC;;;GAGG;AACH,qBAAa,qBAAsB,YAAW,iBAAiB;IAIjD,OAAO,CAAC,QAAQ,CAAC,UAAU;IAHvC,QAAQ,CAAC,IAAI,qBAAqB;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;gBAEd,UAAU,EAAE,IAAI;IAI7C,gBAAgB,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzD,YAAY,CAAC,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO;IAIlE,WAAW,CACf,GAAG,EAAE,mBAAmB,EACxB,SAAS,EAAE,QAAQ,EAAE,GACpB,OAAO,CAAC,IAAI,CAAC;CAgFjB"}
@@ -41,8 +41,11 @@ ${remainingBlock}
41
41
  Available agents:
42
42
  ${agentsBlock || '(none — use self-dispatch)'}
43
43
 
44
+ Set "needsInput": true on any step that must act on the user's provided material.
45
+ Re-state the shared "objective".
46
+
44
47
  Respond with ONLY a JSON object:
45
- {"steps":[{"id":"...","goal":"...","agent":"optional"}],"rationale":"..."}`;
48
+ {"objective":"...","steps":[{"id":"...","goal":"...","agent":"optional","needsInput":false}],"rationale":"..."}`;
46
49
  // Use the same ILlm.chat(messages, tools, options) signature as one-shot.ts.
47
50
  const response = await this.plannerLlm.chat([
48
51
  { role: 'system', content: systemPrompt },
@@ -52,13 +55,25 @@ Respond with ONLY a JSON object:
52
55
  throw response.error;
53
56
  const jsonText = extractJson(response.value.content);
54
57
  const parsed = JSON.parse(jsonText);
58
+ // A replan must yield at least one valid step; an empty/malformed result
59
+ // fails loud (→ COORDINATOR_REPLAN_FAILED) instead of stalling silently.
60
+ if (!Array.isArray(parsed.steps) || parsed.steps.length === 0) {
61
+ throw new Error(`Replan returned no steps: ${jsonText.slice(0, 200)}`);
62
+ }
63
+ for (const s of parsed.steps) {
64
+ if (typeof s.goal !== 'string' || s.goal.trim() === '') {
65
+ throw new Error(`Replan step is missing a goal: ${JSON.stringify(s)}`);
66
+ }
67
+ }
55
68
  return {
56
69
  steps: parsed.steps.map((s, i) => ({
57
70
  id: s.id ?? `replan-${i + 1}`,
58
71
  goal: s.goal,
59
72
  agent: s.agent,
73
+ needsInput: s.needsInput,
60
74
  status: 'pending',
61
75
  })),
76
+ objective: parsed.objective,
62
77
  rationale: parsed.rationale,
63
78
  createdAt: Date.now(),
64
79
  source: 'planner-llm',
@@ -1 +1 @@
1
- {"version":3,"file":"replan-on-error.js","sourceRoot":"","sources":["../../../src/coordinator/planning/replan-on-error.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"replan-on-error.js","sourceRoot":"","sources":["../../../src/coordinator/planning/replan-on-error.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"skill-steps.d.ts","sourceRoot":"","sources":["../../../src/coordinator/planning/skill-steps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,iBAAiB,EACjB,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,UAAU,EACX,MAAM,yBAAyB,CAAC;AAEjC;;;;;;;;;;;;;;GAcG;AACH,qBAAa,kBAAmB,YAAW,iBAAiB;IAIxD,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAHnC,QAAQ,CAAC,IAAI,iBAAiB;gBAGX,gBAAgB,GAAE,CACjC,GAAG,EAAE,mBAAmB,KACrB,UAAU,GAAG,SAAwC;IAGtD,gBAAgB,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB/D,YAAY,CAAC,IAAI,EAAE,mBAAmB,EAAE,WAAW,EAAE,UAAU,GAAG,OAAO;IAInE,WAAW,CACf,IAAI,EAAE,mBAAmB,EACzB,SAAS,EAAE,QAAQ,EAAE,GACpB,OAAO,CAAC,IAAI,CAAC;CAOjB"}
1
+ {"version":3,"file":"skill-steps.d.ts","sourceRoot":"","sources":["../../../src/coordinator/planning/skill-steps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,iBAAiB,EACjB,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,UAAU,EACX,MAAM,yBAAyB,CAAC;AAEjC;;;;;;;;;;;;;;GAcG;AACH,qBAAa,kBAAmB,YAAW,iBAAiB;IAIxD,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAHnC,QAAQ,CAAC,IAAI,iBAAiB;gBAGX,gBAAgB,GAAE,CACjC,GAAG,EAAE,mBAAmB,KACrB,UAAU,GAAG,SAAwC;IAGtD,gBAAgB,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IA2B/D,YAAY,CAAC,IAAI,EAAE,mBAAmB,EAAE,WAAW,EAAE,UAAU,GAAG,OAAO;IAInE,WAAW,CACf,IAAI,EAAE,mBAAmB,EACzB,SAAS,EAAE,QAAQ,EAAE,GACpB,OAAO,CAAC,IAAI,CAAC;CAOjB"}