@elizaos/plugin-agent-orchestrator 2.0.0-beta.1 → 2.0.3-beta.3

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 (268) hide show
  1. package/CHANGELOG.md +6 -8
  2. package/README.md +102 -30
  3. package/dist/cjs/index.node.cjs +17539 -17068
  4. package/dist/cjs/index.node.js.map +71 -61
  5. package/dist/node/index.node.js +17545 -17070
  6. package/dist/node/index.node.js.map +71 -61
  7. package/dist/node/src/actions/common.d.ts +62 -4
  8. package/dist/node/src/actions/common.d.ts.map +1 -1
  9. package/dist/node/src/actions/elizaos-capability.d.ts +3 -0
  10. package/dist/node/src/actions/elizaos-capability.d.ts.map +1 -0
  11. package/dist/node/src/actions/sandbox-stub.d.ts +9 -5
  12. package/dist/node/src/actions/sandbox-stub.d.ts.map +1 -1
  13. package/dist/node/src/actions/tasks.d.ts +22 -2
  14. package/dist/node/src/actions/tasks.d.ts.map +1 -1
  15. package/dist/node/src/api/agent-routes.d.ts +1 -1
  16. package/dist/node/src/api/agent-routes.d.ts.map +1 -1
  17. package/dist/node/src/api/bridge-routes.d.ts +57 -19
  18. package/dist/node/src/api/bridge-routes.d.ts.map +1 -1
  19. package/dist/node/src/api/credential-prompt.d.ts +38 -0
  20. package/dist/node/src/api/credential-prompt.d.ts.map +1 -0
  21. package/dist/node/src/api/orchestrator-routes.d.ts +25 -0
  22. package/dist/node/src/api/orchestrator-routes.d.ts.map +1 -0
  23. package/dist/node/src/api/parent-context-routes.d.ts.map +1 -1
  24. package/dist/node/src/api/route-utils.d.ts +23 -7
  25. package/dist/node/src/api/route-utils.d.ts.map +1 -1
  26. package/dist/node/src/api/routes.d.ts +1 -2
  27. package/dist/node/src/api/routes.d.ts.map +1 -1
  28. package/dist/node/src/evaluators/sub-agent-completion.d.ts +3 -0
  29. package/dist/node/src/evaluators/sub-agent-completion.d.ts.map +1 -0
  30. package/dist/node/src/index.d.ts +33 -8
  31. package/dist/node/src/index.d.ts.map +1 -1
  32. package/dist/node/src/providers/action-examples.d.ts.map +1 -1
  33. package/dist/node/src/providers/active-sub-agents.d.ts.map +1 -1
  34. package/dist/node/src/providers/active-workspace-context.d.ts +2 -2
  35. package/dist/node/src/providers/active-workspace-context.d.ts.map +1 -1
  36. package/dist/node/src/providers/available-agents.d.ts.map +1 -1
  37. package/dist/node/src/providers/coding-session-changes.d.ts +17 -0
  38. package/dist/node/src/providers/coding-session-changes.d.ts.map +1 -0
  39. package/dist/node/src/register-routes.d.ts +21 -1
  40. package/dist/node/src/register-routes.d.ts.map +1 -1
  41. package/dist/node/src/services/acceptance-criteria.d.ts +84 -0
  42. package/dist/node/src/services/acceptance-criteria.d.ts.map +1 -0
  43. package/dist/node/src/services/acp-native-transport.d.ts +111 -0
  44. package/dist/node/src/services/acp-native-transport.d.ts.map +1 -0
  45. package/dist/node/src/services/acp-service.d.ts +169 -4
  46. package/dist/node/src/services/acp-service.d.ts.map +1 -1
  47. package/dist/node/src/services/active-session-forward.d.ts +31 -0
  48. package/dist/node/src/services/active-session-forward.d.ts.map +1 -0
  49. package/dist/node/src/services/agent-name-assignment.d.ts +50 -0
  50. package/dist/node/src/services/agent-name-assignment.d.ts.map +1 -0
  51. package/dist/node/src/services/ansi-utils.d.ts +1 -1
  52. package/dist/node/src/services/app-deploy-guidance.d.ts +52 -0
  53. package/dist/node/src/services/app-deploy-guidance.d.ts.map +1 -0
  54. package/dist/node/src/services/audit.d.ts +18 -0
  55. package/dist/node/src/services/audit.d.ts.map +1 -0
  56. package/dist/node/src/services/coding-account-selection.d.ts +79 -0
  57. package/dist/node/src/services/coding-account-selection.d.ts.map +1 -0
  58. package/dist/node/src/services/completion-envelope.d.ts +63 -0
  59. package/dist/node/src/services/completion-envelope.d.ts.map +1 -0
  60. package/dist/node/src/services/completion-evidence.d.ts +144 -0
  61. package/dist/node/src/services/completion-evidence.d.ts.map +1 -0
  62. package/dist/node/src/services/config-env.d.ts +11 -7
  63. package/dist/node/src/services/config-env.d.ts.map +1 -1
  64. package/dist/node/src/services/goal-contract.d.ts +25 -0
  65. package/dist/node/src/services/goal-contract.d.ts.map +1 -0
  66. package/dist/node/src/services/goal-llm-verifier.d.ts +157 -0
  67. package/dist/node/src/services/goal-llm-verifier.d.ts.map +1 -0
  68. package/dist/node/src/services/goal-prompt.d.ts +82 -0
  69. package/dist/node/src/services/goal-prompt.d.ts.map +1 -0
  70. package/dist/node/src/services/independent-verifier.d.ts +58 -0
  71. package/dist/node/src/services/independent-verifier.d.ts.map +1 -0
  72. package/dist/node/src/services/interruption-decider.d.ts +43 -0
  73. package/dist/node/src/services/interruption-decider.d.ts.map +1 -0
  74. package/dist/node/src/services/opencode-config.d.ts +21 -0
  75. package/dist/node/src/services/opencode-config.d.ts.map +1 -0
  76. package/dist/node/src/services/orchestrator-device-support-matrix.d.ts +46 -0
  77. package/dist/node/src/services/orchestrator-device-support-matrix.d.ts.map +1 -0
  78. package/dist/node/src/services/orchestrator-task-mapper.d.ts +192 -0
  79. package/dist/node/src/services/orchestrator-task-mapper.d.ts.map +1 -0
  80. package/dist/node/src/services/orchestrator-task-service.d.ts +370 -0
  81. package/dist/node/src/services/orchestrator-task-service.d.ts.map +1 -0
  82. package/dist/node/src/services/orchestrator-task-store.d.ts +156 -0
  83. package/dist/node/src/services/orchestrator-task-store.d.ts.map +1 -0
  84. package/dist/node/src/services/orchestrator-task-types.d.ts +334 -0
  85. package/dist/node/src/services/orchestrator-task-types.d.ts.map +1 -0
  86. package/dist/node/src/services/parent-agent-broker.d.ts +5 -3
  87. package/dist/node/src/services/parent-agent-broker.d.ts.map +1 -1
  88. package/dist/node/src/services/parent-agent-dispatch.d.ts +62 -0
  89. package/dist/node/src/services/parent-agent-dispatch.d.ts.map +1 -0
  90. package/dist/node/src/services/screenshot-delivery.d.ts +38 -0
  91. package/dist/node/src/services/screenshot-delivery.d.ts.map +1 -0
  92. package/dist/node/src/services/session-event-queue.d.ts +1 -8
  93. package/dist/node/src/services/session-event-queue.d.ts.map +1 -1
  94. package/dist/node/src/services/session-store.d.ts +2 -1
  95. package/dist/node/src/services/session-store.d.ts.map +1 -1
  96. package/dist/node/src/services/skill-lifeops-context-broker.d.ts +1 -1
  97. package/dist/node/src/services/skill-lifeops-context-broker.d.ts.map +1 -1
  98. package/dist/node/src/services/skill-manifest.d.ts +1 -1
  99. package/dist/node/src/services/skill-recommender.d.ts +2 -0
  100. package/dist/node/src/services/skill-recommender.d.ts.map +1 -1
  101. package/dist/node/src/services/smithers-task-executor.d.ts +73 -0
  102. package/dist/node/src/services/smithers-task-executor.d.ts.map +1 -0
  103. package/dist/node/src/services/smithers-task-integration.d.ts +52 -0
  104. package/dist/node/src/services/smithers-task-integration.d.ts.map +1 -0
  105. package/dist/node/src/services/smithers-task-runner.d.ts +27 -0
  106. package/dist/node/src/services/smithers-task-runner.d.ts.map +1 -0
  107. package/dist/node/src/services/smithers-task-types.d.ts +96 -0
  108. package/dist/node/src/services/smithers-task-types.d.ts.map +1 -0
  109. package/dist/node/src/services/spawn-trajectory.d.ts +2 -2
  110. package/dist/node/src/services/spawn-trajectory.d.ts.map +1 -1
  111. package/dist/node/src/services/spend-allowance.d.ts +143 -0
  112. package/dist/node/src/services/spend-allowance.d.ts.map +1 -0
  113. package/dist/node/src/services/ssrf-guard.d.ts +66 -0
  114. package/dist/node/src/services/ssrf-guard.d.ts.map +1 -0
  115. package/dist/node/src/services/sub-agent-identity.d.ts +27 -0
  116. package/dist/node/src/services/sub-agent-identity.d.ts.map +1 -0
  117. package/dist/node/src/services/sub-agent-inbox.d.ts +26 -0
  118. package/dist/node/src/services/sub-agent-inbox.d.ts.map +1 -0
  119. package/dist/node/src/services/sub-agent-router.d.ts +142 -2
  120. package/dist/node/src/services/sub-agent-router.d.ts.map +1 -1
  121. package/dist/node/src/services/task-agent-frameworks.d.ts +21 -8
  122. package/dist/node/src/services/task-agent-frameworks.d.ts.map +1 -1
  123. package/dist/node/src/services/task-agent-routing.d.ts +33 -0
  124. package/dist/node/src/services/task-agent-routing.d.ts.map +1 -0
  125. package/dist/node/src/services/task-supervisor-service.d.ts +65 -0
  126. package/dist/node/src/services/task-supervisor-service.d.ts.map +1 -0
  127. package/dist/node/src/services/task-watchdog-service.d.ts +50 -0
  128. package/dist/node/src/services/task-watchdog-service.d.ts.map +1 -0
  129. package/dist/node/src/services/terminal-capabilities.d.ts +48 -0
  130. package/dist/node/src/services/terminal-capabilities.d.ts.map +1 -0
  131. package/dist/node/src/services/trajectory-context.d.ts +4 -8
  132. package/dist/node/src/services/trajectory-context.d.ts.map +1 -1
  133. package/dist/node/src/services/trajectory-feedback.d.ts +1 -1
  134. package/dist/node/src/services/types.d.ts +38 -2
  135. package/dist/node/src/services/types.d.ts.map +1 -1
  136. package/dist/node/src/services/view-deploy-guidance.d.ts +14 -0
  137. package/dist/node/src/services/view-deploy-guidance.d.ts.map +1 -0
  138. package/dist/node/src/services/workdir-validation.d.ts +10 -0
  139. package/dist/node/src/services/workdir-validation.d.ts.map +1 -0
  140. package/dist/node/src/services/workspace-diff.d.ts +50 -0
  141. package/dist/node/src/services/workspace-diff.d.ts.map +1 -0
  142. package/dist/node/src/services/workspace-git-ops.d.ts +2 -2
  143. package/dist/node/src/services/workspace-git-ops.d.ts.map +1 -1
  144. package/dist/node/src/services/workspace-github.d.ts +7 -7
  145. package/dist/node/src/services/workspace-github.d.ts.map +1 -1
  146. package/dist/node/src/services/workspace-lifecycle.d.ts +2 -15
  147. package/dist/node/src/services/workspace-lifecycle.d.ts.map +1 -1
  148. package/dist/node/src/services/workspace-service.d.ts +6 -2
  149. package/dist/node/src/services/workspace-service.d.ts.map +1 -1
  150. package/dist/node/src/setup-routes.d.ts.map +1 -1
  151. package/docs/SUBAGENT_FLOW_AND_PARITY.md +138 -0
  152. package/docs/default-eliza-skills-and-agent-bridge-plan.md +9 -15
  153. package/docs/economics-goal-runbook.md +140 -0
  154. package/docs/multi-account-orchestration.md +76 -0
  155. package/docs/orchestrator-buildout-followups.md +124 -0
  156. package/docs/orchestrator-dashboard-task-widget-secrets-assessment.md +174 -0
  157. package/docs/orchestrator-dashboard-task-widget-secrets-design.md +301 -0
  158. package/docs/research/orchestrator-view-research-report.md +273 -0
  159. package/docs/sub-agent-routing.md +53 -23
  160. package/package.json +111 -25
  161. package/PROJECT.md +0 -119
  162. package/dist/browser/index.browser.js +0 -21051
  163. package/dist/browser/index.browser.js.map +0 -29
  164. package/dist/browser/index.d.ts +0 -2
  165. package/dist/node/index.browser.d.ts +0 -3
  166. package/dist/node/index.browser.d.ts.map +0 -1
  167. package/dist/node/src/actions/cancel-task.d.ts +0 -3
  168. package/dist/node/src/actions/cancel-task.d.ts.map +0 -1
  169. package/dist/node/src/actions/coding-task-handlers.d.ts +0 -69
  170. package/dist/node/src/actions/coding-task-handlers.d.ts.map +0 -1
  171. package/dist/node/src/actions/coding-task-helpers.d.ts +0 -35
  172. package/dist/node/src/actions/coding-task-helpers.d.ts.map +0 -1
  173. package/dist/node/src/actions/create-task.d.ts +0 -8
  174. package/dist/node/src/actions/create-task.d.ts.map +0 -1
  175. package/dist/node/src/actions/eval-metadata.d.ts +0 -11
  176. package/dist/node/src/actions/eval-metadata.d.ts.map +0 -1
  177. package/dist/node/src/actions/finalize-workspace.d.ts +0 -11
  178. package/dist/node/src/actions/finalize-workspace.d.ts.map +0 -1
  179. package/dist/node/src/actions/list-agents.d.ts +0 -4
  180. package/dist/node/src/actions/list-agents.d.ts.map +0 -1
  181. package/dist/node/src/actions/manage-issues.d.ts +0 -11
  182. package/dist/node/src/actions/manage-issues.d.ts.map +0 -1
  183. package/dist/node/src/actions/provision-workspace.d.ts +0 -11
  184. package/dist/node/src/actions/provision-workspace.d.ts.map +0 -1
  185. package/dist/node/src/actions/send-to-agent.d.ts +0 -4
  186. package/dist/node/src/actions/send-to-agent.d.ts.map +0 -1
  187. package/dist/node/src/actions/spawn-agent.d.ts +0 -8
  188. package/dist/node/src/actions/spawn-agent.d.ts.map +0 -1
  189. package/dist/node/src/actions/stop-agent.d.ts +0 -4
  190. package/dist/node/src/actions/stop-agent.d.ts.map +0 -1
  191. package/dist/node/src/actions/task-control.d.ts +0 -3
  192. package/dist/node/src/actions/task-control.d.ts.map +0 -1
  193. package/dist/node/src/actions/task-history.d.ts +0 -3
  194. package/dist/node/src/actions/task-history.d.ts.map +0 -1
  195. package/dist/node/src/actions/task-share.d.ts +0 -3
  196. package/dist/node/src/actions/task-share.d.ts.map +0 -1
  197. package/dist/node/src/actions/task-thread-target.d.ts +0 -11
  198. package/dist/node/src/actions/task-thread-target.d.ts.map +0 -1
  199. package/dist/node/src/api/coordinator-routes.d.ts +0 -22
  200. package/dist/node/src/api/coordinator-routes.d.ts.map +0 -1
  201. package/dist/node/src/api/hook-routes.d.ts +0 -18
  202. package/dist/node/src/api/hook-routes.d.ts.map +0 -1
  203. package/dist/node/src/routes/coding-agents-fallback-routes.d.ts +0 -19
  204. package/dist/node/src/routes/coding-agents-fallback-routes.d.ts.map +0 -1
  205. package/dist/node/src/services/acpx-subprocess.d.ts +0 -3
  206. package/dist/node/src/services/acpx-subprocess.d.ts.map +0 -1
  207. package/dist/node/src/services/agent-credentials.d.ts +0 -23
  208. package/dist/node/src/services/agent-credentials.d.ts.map +0 -1
  209. package/dist/node/src/services/agent-metrics.d.ts +0 -30
  210. package/dist/node/src/services/agent-metrics.d.ts.map +0 -1
  211. package/dist/node/src/services/agent-selection.d.ts +0 -53
  212. package/dist/node/src/services/agent-selection.d.ts.map +0 -1
  213. package/dist/node/src/services/claude-code-skill-installer.d.ts +0 -33
  214. package/dist/node/src/services/claude-code-skill-installer.d.ts.map +0 -1
  215. package/dist/node/src/services/coordinator-event-normalizer.d.ts +0 -50
  216. package/dist/node/src/services/coordinator-event-normalizer.d.ts.map +0 -1
  217. package/dist/node/src/services/custom-validator-runner.d.ts +0 -66
  218. package/dist/node/src/services/custom-validator-runner.d.ts.map +0 -1
  219. package/dist/node/src/services/debug-capture.d.ts +0 -38
  220. package/dist/node/src/services/debug-capture.d.ts.map +0 -1
  221. package/dist/node/src/services/pty-auto-response.d.ts +0 -30
  222. package/dist/node/src/services/pty-auto-response.d.ts.map +0 -1
  223. package/dist/node/src/services/pty-init.d.ts +0 -55
  224. package/dist/node/src/services/pty-init.d.ts.map +0 -1
  225. package/dist/node/src/services/pty-service.d.ts +0 -218
  226. package/dist/node/src/services/pty-service.d.ts.map +0 -1
  227. package/dist/node/src/services/pty-session-io.d.ts +0 -49
  228. package/dist/node/src/services/pty-session-io.d.ts.map +0 -1
  229. package/dist/node/src/services/pty-spawn.d.ts +0 -104
  230. package/dist/node/src/services/pty-spawn.d.ts.map +0 -1
  231. package/dist/node/src/services/pty-types.d.ts +0 -94
  232. package/dist/node/src/services/pty-types.d.ts.map +0 -1
  233. package/dist/node/src/services/skill-callback-bridge.d.ts +0 -78
  234. package/dist/node/src/services/skill-callback-bridge.d.ts.map +0 -1
  235. package/dist/node/src/services/skill-essentials.d.ts +0 -16
  236. package/dist/node/src/services/skill-essentials.d.ts.map +0 -1
  237. package/dist/node/src/services/stall-classifier.d.ts +0 -69
  238. package/dist/node/src/services/stall-classifier.d.ts.map +0 -1
  239. package/dist/node/src/services/structured-proof-bridge.d.ts +0 -99
  240. package/dist/node/src/services/structured-proof-bridge.d.ts.map +0 -1
  241. package/dist/node/src/services/swarm-coordinator-prompts.d.ts +0 -93
  242. package/dist/node/src/services/swarm-coordinator-prompts.d.ts.map +0 -1
  243. package/dist/node/src/services/swarm-coordinator.d.ts +0 -473
  244. package/dist/node/src/services/swarm-coordinator.d.ts.map +0 -1
  245. package/dist/node/src/services/swarm-decision-loop.d.ts +0 -69
  246. package/dist/node/src/services/swarm-decision-loop.d.ts.map +0 -1
  247. package/dist/node/src/services/swarm-event-triage.d.ts +0 -49
  248. package/dist/node/src/services/swarm-event-triage.d.ts.map +0 -1
  249. package/dist/node/src/services/swarm-history.d.ts +0 -27
  250. package/dist/node/src/services/swarm-history.d.ts.map +0 -1
  251. package/dist/node/src/services/swarm-idle-watchdog.d.ts +0 -22
  252. package/dist/node/src/services/swarm-idle-watchdog.d.ts.map +0 -1
  253. package/dist/node/src/services/task-acceptance.d.ts +0 -8
  254. package/dist/node/src/services/task-acceptance.d.ts.map +0 -1
  255. package/dist/node/src/services/task-agent-auth.d.ts +0 -69
  256. package/dist/node/src/services/task-agent-auth.d.ts.map +0 -1
  257. package/dist/node/src/services/task-kind.d.ts +0 -3
  258. package/dist/node/src/services/task-kind.d.ts.map +0 -1
  259. package/dist/node/src/services/task-registry.d.ts +0 -550
  260. package/dist/node/src/services/task-registry.d.ts.map +0 -1
  261. package/dist/node/src/services/task-share.d.ts +0 -18
  262. package/dist/node/src/services/task-share.d.ts.map +0 -1
  263. package/dist/node/src/services/task-validation.d.ts +0 -69
  264. package/dist/node/src/services/task-validation.d.ts.map +0 -1
  265. package/dist/node/src/services/task-verifier-runner.d.ts +0 -5
  266. package/dist/node/src/services/task-verifier-runner.d.ts.map +0 -1
  267. package/dist/node/vitest.config.d.ts +0 -3
  268. package/dist/node/vitest.config.d.ts.map +0 -1
@@ -12,8 +12,14 @@ export interface AcpActionService {
12
12
  sendKeysToSession(sessionId: string, keys?: string): Promise<void>;
13
13
  stopSession(sessionId: string, force?: boolean): Promise<void>;
14
14
  cancelSession?(sessionId: string): Promise<void>;
15
+ getSessionOutput?(sessionId: string, lines?: number): Promise<string>;
15
16
  listSessions(): SessionInfo[] | Promise<SessionInfo[]>;
16
17
  getSession(sessionId: string): SessionInfo | undefined | Promise<SessionInfo | null | undefined>;
18
+ findResumableSessionByLabel?(label: string, workdir: string): Promise<SessionInfo | undefined>;
19
+ resumeOrphanedBusySessions?(): Promise<{
20
+ resumed: number;
21
+ skipped: number;
22
+ }>;
17
23
  resolveAgentType?(selection?: Record<string, unknown>): Promise<string> | string;
18
24
  checkAvailableAgents?(types?: string[]): Promise<AvailableAgentInfo[]>;
19
25
  getAvailableAgents?(): Promise<AvailableAgentInfo[]>;
@@ -25,20 +31,72 @@ export type HandlerOptionsLike = {
25
31
  parameters?: Record<string, unknown>;
26
32
  } | Record<string, unknown>;
27
33
  export declare function getAcpService(runtime: IAgentRuntime): AcpActionService | undefined;
28
- export declare function logger(runtime: IAgentRuntime): import("@elizaos/core").Logger;
34
+ export declare function logger(runtime: IAgentRuntime): IAgentRuntime["logger"];
29
35
  export declare function contentRecord(message: Memory): Record<string, unknown>;
30
36
  export declare function paramsRecord(options?: HandlerOptionsLike): Record<string, unknown>;
31
37
  export declare function pickString(params: Record<string, unknown>, content: Record<string, unknown>, name: string): string | undefined;
32
38
  export declare function pickBoolean(params: Record<string, unknown>, content: Record<string, unknown>, name: string): boolean | undefined;
33
- export declare function pickNumber(params: Record<string, unknown>, content: Record<string, unknown>, name: string): number | undefined;
34
39
  export declare function messageText(message: Memory): string;
40
+ /**
41
+ * Resolve the genuine originating user request for workdir-route matching.
42
+ *
43
+ * Workdir routes (`TASK_AGENT_WORKDIR_ROUTES`) match keyword phrases like
44
+ * "web page" against `${userRequest}\n${task}`. Feeding only the planner's
45
+ * `task` argument is unreliable: with a verbose planner (gpt-oss /
46
+ * TASKS_CREATE) the user's wording survives, but with a terser planner
47
+ * (claude / TASKS_SPAWN_AGENT) the action arrives with the planner's
48
+ * rephrasing — and the orchestrator's `messageText()` only reads
49
+ * `content.text`, which may be envelope-wrapped or empty — dropping the route
50
+ * keyword and silently falling the spawn back to the default ACP workspace.
51
+ * Builds then land in the wrong directory and never get hosted.
52
+ *
53
+ * The fix is planner-independent and reads only sources that are guaranteed
54
+ * populated synchronously at action time (no DB round-trip, no persistence
55
+ * race — the failure mode of the earlier `getMemories`-first attempt):
56
+ * 1. the message's own `content.currentMessageText` (the raw human request
57
+ * the connector stamped), via `userRequestFromMessage`;
58
+ * 2. the newest non-agent message in the state-composed conversation window
59
+ * (`state.data.providers.RECENT_MESSAGES.data.recentMessages`) — covers
60
+ * the case where the action message is a synthetic re-plan trigger but
61
+ * the user's original request is still in the dialogue;
62
+ * 3. a bounded `getMemories` read, kept ONLY as a last resort.
63
+ *
64
+ * Fail-open: every source is optional and the result is unioned with the
65
+ * action's own text, so routing never regresses below today's behavior.
66
+ */
67
+ export declare function resolveOriginatingRequestText(runtime: IAgentRuntime, message: Memory, state?: State, opts?: {
68
+ timeoutMs?: number;
69
+ scanLimit?: number;
70
+ }): Promise<string>;
35
71
  export declare function hasExplicitPayload(message: Memory, fields: string[]): boolean;
36
- export declare function looksLikeTaskAgentRequest(text: string): boolean;
37
72
  export declare function shortId(id: string): string;
38
73
  export declare function labelFor(session: Pick<SessionInfo, "id" | "name" | "metadata">): string;
39
74
  export declare function newestSession(sessions: SessionInfo[]): SessionInfo | undefined;
40
75
  export declare function listSessionsWithin(service: AcpActionService, timeoutMs?: number): Promise<SessionInfo[]>;
41
- export declare function validateHasSessions(runtime: IAgentRuntime): Promise<boolean>;
76
+ /**
77
+ * Block until the number of in-flight sub-agent sessions drops below the
78
+ * configured ceiling, so concurrent spawns don't stampede the model
79
+ * provider.
80
+ *
81
+ * Why this exists: coding sub-agents (opencode + gpt-oss-class models on
82
+ * Cerebras / other OpenAI-compatible providers) degrade hard under
83
+ * concurrent load — the provider rate-limits, and the model responds by
84
+ * silently skipping its Write/tool calls and "completing" with a text-only
85
+ * answer. One build at a time succeeds; four at once produces one good
86
+ * build and three empty workdirs. Serialising spawns past a small ceiling
87
+ * trades a little latency for builds that actually land.
88
+ *
89
+ * Bounded and self-correcting: it polls real session state (no permits to
90
+ * leak), and gives up waiting after `maxWaitMs` so a wedged session can
91
+ * never deadlock the queue — the spawn just proceeds.
92
+ *
93
+ * Tunable via `ELIZA_MAX_CONCURRENT_SPAWNS` (default 2). Set to 0 or a
94
+ * negative value to disable the gate entirely.
95
+ */
96
+ export declare function waitForSpawnSlot(runtime: IAgentRuntime, service: AcpActionService, opts?: {
97
+ maxWaitMs?: number;
98
+ pollMs?: number;
99
+ }): Promise<void>;
42
100
  export declare function callbackText(callback: HandlerCallback | undefined, text: string): Promise<void>;
43
101
  export declare function errorResult(error: string, text?: string): ActionResult;
44
102
  export declare function resolveSession(service: AcpActionService, sessionId: string | undefined, state?: State): Promise<{
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../src/actions/common.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../src/actions/common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,eAAe,EACf,aAAa,EACb,MAAM,EACN,KAAK,EAGN,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,WAAW,EACZ,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,gBAAgB;IAC/B,qBAAqB,CAAC,EAAE,cAAc,CAAC;IACvC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACvD,UAAU,CAAC,CACT,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC5C,OAAO,CAAC,YAAY,CAAC,CAAC;IACzB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACvE,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,aAAa,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,gBAAgB,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACtE,YAAY,IAAI,WAAW,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IACvD,UAAU,CACR,SAAS,EAAE,MAAM,GAChB,WAAW,GAAG,SAAS,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IACrE,2BAA2B,CAAC,CAC1B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;IACpC,0BAA0B,CAAC,IAAI,OAAO,CAAC;QACrC,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IACH,gBAAgB,CAAC,CACf,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IAC5B,oBAAoB,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACvE,kBAAkB,CAAC,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACrD,cAAc,CAAC,CACb,OAAO,EAAE,CACP,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,gBAAgB,EACvB,IAAI,EAAE,OAAO,KACV,IAAI,GACR,MAAM,IAAI,CAAC;IACd,UAAU,CAAC,CACT,OAAO,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,GAC9D,MAAM,IAAI,CAAC;IACd,gBAAgB,CAAC,CACf,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,gBAAgB,EACvB,IAAI,EAAE,OAAO,GACZ,IAAI,CAAC;CACT;AAED,MAAM,MAAM,kBAAkB,GAC1B;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GACxC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE5B,wBAAgB,aAAa,CAC3B,OAAO,EAAE,aAAa,GACrB,gBAAgB,GAAG,SAAS,CAO9B;AAED,wBAAgB,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,aAAa,CAAC,QAAQ,CAAC,CAEtE;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAItE;AAED,wBAAgB,YAAY,CAC1B,OAAO,CAAC,EAAE,kBAAkB,GAC3B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAMzB;AAED,wBAAgB,UAAU,CACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,IAAI,EAAE,MAAM,GACX,MAAM,GAAG,SAAS,CAKpB;AAED,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,IAAI,EAAE,MAAM,GACX,OAAO,GAAG,SAAS,CAGrB;AAaD,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAInD;AA+CD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAsB,6BAA6B,CACjD,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,KAAK,EACb,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GACpD,OAAO,CAAC,MAAM,CAAC,CAiDjB;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAG7E;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAE1C;AAED,wBAAgB,QAAQ,CACtB,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,GAAG,MAAM,GAAG,UAAU,CAAC,GACrD,MAAM,CAIR;AAED,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,WAAW,EAAE,GACtB,WAAW,GAAG,SAAS,CAQzB;AAED,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,gBAAgB,EACzB,SAAS,SAAO,GACf,OAAO,CAAC,WAAW,EAAE,CAAC,CAOxB;AAeD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,gBAAgB,EACzB,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GACjD,OAAO,CAAC,IAAI,CAAC,CAgCf;AAED,wBAAsB,YAAY,CAChC,QAAQ,EAAE,eAAe,GAAG,SAAS,EACrC,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,YAAY,CAEtE;AAYD,wBAAsB,cAAc,CAClC,OAAO,EAAE,gBAAgB,EACzB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,KAAK,CAAC,EAAE,KAAK,GACZ,OAAO,CAAC;IACT,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB,CAAC,CAaD;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,KAAK,GAAG,SAAS,EACxB,OAAO,EAAE,WAAW,GAAG,WAAW,GACjC,IAAI,CAEN;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,KAAK,GAAG,SAAS,EACxB,QAAQ,EAAE,WAAW,EAAE,GACtB,IAAI,CAEN;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,gBAAgB,EACzB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,gBAAgB,EACvB,IAAI,EAAE,OAAO,GACZ,IAAI,CAEN;AAED,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,cAAc,GAAG,SAAS,CAS5B;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAGnD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAErD;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,MAAM,GAAG,SAAS,CAKpB"}
@@ -0,0 +1,3 @@
1
+ import type { Action } from "@elizaos/core";
2
+ export declare const elizaOsCapabilityAction: Action;
3
+ //# sourceMappingURL=elizaos-capability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elizaos-capability.d.ts","sourceRoot":"","sources":["../../../../src/actions/elizaos-capability.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,MAAM,EAOP,MAAM,eAAe,CAAC;AA4HvB,eAAO,MAAM,uBAAuB,EAAE,MA2ErC,CAAC"}
@@ -1,21 +1,25 @@
1
1
  /**
2
- * Sandbox-build stub for the TASKS coding-agent surface.
2
+ * Sandbox-build fallback for the TASKS coding-agent surface.
3
3
  *
4
4
  * Store-distributed builds (Mac App Store, Microsoft Store, Flathub) run in
5
5
  * an OS sandbox that forbids forking arbitrary user-installed binaries. The
6
- * orchestrator's spawn paths (claude / codex / opencode CLIs via PTY) are
6
+ * orchestrator's spawn paths (claude / codex / opencode CLIs via ACP) are
7
7
  * therefore not viable in those builds, so we replace the TASKS action with
8
- * a single stub that explains the limitation and points the user at the
8
+ * a single unavailable action that explains the limitation and points the user at the
9
9
  * direct-download artifact.
10
10
  *
11
11
  * Behavior:
12
- * - validate(): always true — we want this stub to win whenever the
12
+ * - validate(): always true — we want this action to win whenever the
13
13
  * planner reaches for any coding-agent simile under sandbox.
14
14
  * - handler(): returns a single user-facing error result; no spawn
15
- * attempt, no workspace allocation, no PTY.
15
+ * attempt, no workspace allocation, no subprocess session.
16
16
  */
17
17
  import type { Action } from "@elizaos/core";
18
+ import type { OrchestratorTerminalSupport } from "../services/terminal-capabilities.js";
18
19
  export declare const tasksSandboxStubAction: Action & {
19
20
  suppressPostActionContinuation: true;
20
21
  };
22
+ export declare function createTerminalUnsupportedTasksAction(support: OrchestratorTerminalSupport): Action & {
23
+ suppressPostActionContinuation: true;
24
+ };
21
25
  //# sourceMappingURL=sandbox-stub.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sandbox-stub.d.ts","sourceRoot":"","sources":["../../../../src/actions/sandbox-stub.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EACV,MAAM,EAMP,MAAM,eAAe,CAAC;AAKvB,eAAO,MAAM,sBAAsB,EAAE,MAAM,GAAG;IAC5C,8BAA8B,EAAE,IAAI,CAAC;CAwEtC,CAAC"}
1
+ {"version":3,"file":"sandbox-stub.d.ts","sourceRoot":"","sources":["../../../../src/actions/sandbox-stub.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EACV,MAAM,EAOP,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sCAAsC,CAAC;AAoGxF,eAAO,MAAM,sBAAsB,EAAE,MAAM,GAAG;IAC5C,8BAA8B,EAAE,IAAI,CAAC;CAMrC,CAAC;AAEH,wBAAgB,oCAAoC,CAClD,OAAO,EAAE,2BAA2B,GACnC,MAAM,GAAG;IAAE,8BAA8B,EAAE,IAAI,CAAA;CAAE,CAenD"}
@@ -3,10 +3,10 @@
3
3
  * task-agent lifecycle, workspace lifecycle, GitHub issue management, and
4
4
  * coding-task archive/reopen surface.
5
5
  *
6
- * Old leaf actions live as similes; their handlers were folded into per-op
6
+ * Old leaf actions live as similes; their handlers were folded into per-action
7
7
  * runners on this file.
8
8
  *
9
- * Ops:
9
+ * Actions:
10
10
  * create — CREATE_AGENT_TASK / START_CODING_TASK
11
11
  * spawn_agent — SPAWN_AGENT
12
12
  * send — SEND_TO_AGENT
@@ -27,62 +27,82 @@
27
27
  import type { Action } from "@elizaos/core";
28
28
  export declare const tasksAction: Action & {
29
29
  suppressPostActionContinuation: true;
30
+ suppressEarlyReply: true;
30
31
  };
31
32
  export declare const createTaskAction: Action & {
32
33
  suppressPostActionContinuation: true;
34
+ suppressEarlyReply: true;
33
35
  };
34
36
  export declare const startCodingTaskAction: Action & {
35
37
  suppressPostActionContinuation: true;
38
+ suppressEarlyReply: true;
36
39
  };
37
40
  export declare const spawnAgentAction: Action & {
38
41
  suppressPostActionContinuation: true;
42
+ suppressEarlyReply: true;
39
43
  };
40
44
  export declare const spawnTaskAgentAction: Action & {
41
45
  suppressPostActionContinuation: true;
46
+ suppressEarlyReply: true;
42
47
  };
43
48
  export declare const sendToAgentAction: Action & {
44
49
  suppressPostActionContinuation: true;
50
+ suppressEarlyReply: true;
45
51
  };
46
52
  export declare const sendToTaskAgentAction: Action & {
47
53
  suppressPostActionContinuation: true;
54
+ suppressEarlyReply: true;
48
55
  };
49
56
  export declare const stopAgentAction: Action & {
50
57
  suppressPostActionContinuation: true;
58
+ suppressEarlyReply: true;
51
59
  };
52
60
  export declare const stopTaskAgentAction: Action & {
53
61
  suppressPostActionContinuation: true;
62
+ suppressEarlyReply: true;
54
63
  };
55
64
  export declare const listAgentsAction: Action & {
56
65
  suppressPostActionContinuation: true;
66
+ suppressEarlyReply: true;
57
67
  };
58
68
  export declare const listTaskAgentsAction: Action & {
59
69
  suppressPostActionContinuation: true;
70
+ suppressEarlyReply: true;
60
71
  };
61
72
  export declare const cancelTaskAction: Action & {
62
73
  suppressPostActionContinuation: true;
74
+ suppressEarlyReply: true;
63
75
  };
64
76
  export declare const taskHistoryAction: Action & {
65
77
  suppressPostActionContinuation: true;
78
+ suppressEarlyReply: true;
66
79
  };
67
80
  export declare const taskControlAction: Action & {
68
81
  suppressPostActionContinuation: true;
82
+ suppressEarlyReply: true;
69
83
  };
70
84
  export declare const taskShareAction: Action & {
71
85
  suppressPostActionContinuation: true;
86
+ suppressEarlyReply: true;
72
87
  };
73
88
  export declare const provisionWorkspaceAction: Action & {
74
89
  suppressPostActionContinuation: true;
90
+ suppressEarlyReply: true;
75
91
  };
76
92
  export declare const finalizeWorkspaceAction: Action & {
77
93
  suppressPostActionContinuation: true;
94
+ suppressEarlyReply: true;
78
95
  };
79
96
  export declare const manageIssuesAction: Action & {
80
97
  suppressPostActionContinuation: true;
98
+ suppressEarlyReply: true;
81
99
  };
82
100
  export declare const archiveCodingTaskAction: Action & {
83
101
  suppressPostActionContinuation: true;
102
+ suppressEarlyReply: true;
84
103
  };
85
104
  export declare const reopenCodingTaskAction: Action & {
86
105
  suppressPostActionContinuation: true;
106
+ suppressEarlyReply: true;
87
107
  };
88
108
  //# sourceMappingURL=tasks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../../../src/actions/tasks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EACV,MAAM,EAOP,MAAM,eAAe,CAAC;AAg+DvB,eAAO,MAAM,WAAW,EAAE,MAAM,GAAG;IAAE,8BAA8B,EAAE,IAAI,CAAA;CAwlBxE,CAAC;AAGF,eAAO,MAAM,gBAAgB;oCA3lBwC,IAAI;CA2lB9B,CAAC;AAC5C,eAAO,MAAM,qBAAqB;oCA5lBmC,IAAI;CA4lBzB,CAAC;AACjD,eAAO,MAAM,gBAAgB;oCA7lBwC,IAAI;CA6lB9B,CAAC;AAC5C,eAAO,MAAM,oBAAoB;oCA9lBoC,IAAI;CA8lB1B,CAAC;AAChD,eAAO,MAAM,iBAAiB;oCA/lBuC,IAAI;CA+lB7B,CAAC;AAC7C,eAAO,MAAM,qBAAqB;oCAhmBmC,IAAI;CAgmBzB,CAAC;AACjD,eAAO,MAAM,eAAe;oCAjmByC,IAAI;CAimB/B,CAAC;AAC3C,eAAO,MAAM,mBAAmB;oCAlmBqC,IAAI;CAkmB3B,CAAC;AAC/C,eAAO,MAAM,gBAAgB;oCAnmBwC,IAAI;CAmmB9B,CAAC;AAC5C,eAAO,MAAM,oBAAoB;oCApmBoC,IAAI;CAomB1B,CAAC;AAChD,eAAO,MAAM,gBAAgB;oCArmBwC,IAAI;CAqmB9B,CAAC;AAC5C,eAAO,MAAM,iBAAiB;oCAtmBuC,IAAI;CAsmB7B,CAAC;AAC7C,eAAO,MAAM,iBAAiB;oCAvmBuC,IAAI;CAumB7B,CAAC;AAC7C,eAAO,MAAM,eAAe;oCAxmByC,IAAI;CAwmB/B,CAAC;AAC3C,eAAO,MAAM,wBAAwB;oCAzmBgC,IAAI;CAymBtB,CAAC;AACpD,eAAO,MAAM,uBAAuB;oCA1mBiC,IAAI;CA0mBvB,CAAC;AACnD,eAAO,MAAM,kBAAkB;oCA3mBsC,IAAI;CA2mB5B,CAAC;AAC9C,eAAO,MAAM,uBAAuB;oCA5mBiC,IAAI;CA4mBvB,CAAC;AACnD,eAAO,MAAM,sBAAsB;oCA7mBkC,IAAI;CA6mBxB,CAAC"}
1
+ {"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../../../src/actions/tasks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAGH,OAAO,KAAK,EACV,MAAM,EAOP,MAAM,eAAe,CAAC;AA29EvB,eAAO,MAAM,WAAW,EAAE,MAAM,GAAG;IACjC,8BAA8B,EAAE,IAAI,CAAC;IACrC,kBAAkB,EAAE,IAAI,CAAC;CA2zB1B,CAAC;AAGF,eAAO,MAAM,gBAAgB;oCA/zBK,IAAI;wBAChB,IAAI;CA8zBiB,CAAC;AAC5C,eAAO,MAAM,qBAAqB;oCAh0BA,IAAI;wBAChB,IAAI;CA+zBsB,CAAC;AACjD,eAAO,MAAM,gBAAgB;oCAj0BK,IAAI;wBAChB,IAAI;CAg0BiB,CAAC;AAC5C,eAAO,MAAM,oBAAoB;oCAl0BC,IAAI;wBAChB,IAAI;CAi0BqB,CAAC;AAChD,eAAO,MAAM,iBAAiB;oCAn0BI,IAAI;wBAChB,IAAI;CAk0BkB,CAAC;AAC7C,eAAO,MAAM,qBAAqB;oCAp0BA,IAAI;wBAChB,IAAI;CAm0BsB,CAAC;AACjD,eAAO,MAAM,eAAe;oCAr0BM,IAAI;wBAChB,IAAI;CAo0BgB,CAAC;AAC3C,eAAO,MAAM,mBAAmB;oCAt0BE,IAAI;wBAChB,IAAI;CAq0BoB,CAAC;AAC/C,eAAO,MAAM,gBAAgB;oCAv0BK,IAAI;wBAChB,IAAI;CAs0BiB,CAAC;AAC5C,eAAO,MAAM,oBAAoB;oCAx0BC,IAAI;wBAChB,IAAI;CAu0BqB,CAAC;AAChD,eAAO,MAAM,gBAAgB;oCAz0BK,IAAI;wBAChB,IAAI;CAw0BiB,CAAC;AAC5C,eAAO,MAAM,iBAAiB;oCA10BI,IAAI;wBAChB,IAAI;CAy0BkB,CAAC;AAC7C,eAAO,MAAM,iBAAiB;oCA30BI,IAAI;wBAChB,IAAI;CA00BkB,CAAC;AAC7C,eAAO,MAAM,eAAe;oCA50BM,IAAI;wBAChB,IAAI;CA20BgB,CAAC;AAC3C,eAAO,MAAM,wBAAwB;oCA70BH,IAAI;wBAChB,IAAI;CA40ByB,CAAC;AACpD,eAAO,MAAM,uBAAuB;oCA90BF,IAAI;wBAChB,IAAI;CA60BwB,CAAC;AACnD,eAAO,MAAM,kBAAkB;oCA/0BG,IAAI;wBAChB,IAAI;CA80BmB,CAAC;AAC9C,eAAO,MAAM,uBAAuB;oCAh1BF,IAAI;wBAChB,IAAI;CA+0BwB,CAAC;AACnD,eAAO,MAAM,sBAAsB;oCAj1BD,IAAI;wBAChB,IAAI;CAg1BuB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Task Agent Route Handlers
3
3
  *
4
- * Handles routes for PTY-based task-agent management:
4
+ * Handles routes for ACP-based task-agent management:
5
5
  * - Preflight checks, metrics, workspace files
6
6
  * - Approval presets and config
7
7
  * - Agent CRUD: list, spawn, get, send, stop, output
@@ -1 +1 @@
1
- {"version":3,"file":"agent-routes.d.ts","sourceRoot":"","sources":["../../../../src/api/agent-routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAiBjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAiMrD;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,YAAY,GAChB,OAAO,CAAC,OAAO,CAAC,CA2mBlB"}
1
+ {"version":3,"file":"agent-routes.d.ts","sourceRoot":"","sources":["../../../../src/api/agent-routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAcjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAkNrD;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,YAAY,GAChB,OAAO,CAAC,OAAO,CAAC,CAwkBlB"}
@@ -1,32 +1,70 @@
1
1
  /**
2
- * Sub-agent bridge routes read-only HTTP endpoints exposing parent state.
2
+ * Sub-agent credential bridge — additive credential endpoints.
3
3
  *
4
- * Spawned coding sub-agents (Claude Code, Codex) live in sealed PTY workspaces
5
- * with no direct access to the parent Eliza runtime's memory, character, or
6
- * room context. These routes give them a constrained read channel so they can
7
- * resolve pronouns ("the user's dad") and align with parent context the
8
- * orchestrator's task brief didn't surface.
4
+ * These routes complement the existing read-only parent-context bridge
5
+ * (`parent-context-routes.ts`) by giving a spawned coding sub-agent a way
6
+ * to *request* a missing credential from the parent. The parent collects
7
+ * the value from the owner via the standard REQUEST_SECRET sensitive-request
8
+ * flow (owner-only actor policy, DM or owner-app-inline target), encrypts
9
+ * it under a one-time symmetric key, and the child long-polls the GET
10
+ * endpoint with the bearer token it received at scope declaration.
9
11
  *
10
- * Endpoints (loopback-only, agentId-authed via the path):
12
+ * Endpoints (loopback-only):
11
13
  *
12
- * GET /api/coding-agents/:sessionId/parent-context
13
- * GET /api/coding-agents/:sessionId/memory?q=<query>&limit=<N>
14
- * GET /api/coding-agents/:sessionId/active-workspaces
14
+ * POST /api/coding-agents/:sessionId/credentials/request
15
+ * body: { credentialKeys: string[] }
16
+ * { credentialScopeId, scopedToken, expiresAt, sensitiveRequestIds }
15
17
  *
16
- * All responses are read-only. Mutations stay with the orchestrator —
17
- * sub-agents can't write parent state through the bridge.
18
+ * GET /api/coding-agents/:sessionId/credentials/:key?token=<scopedToken>
19
+ * long-poll up to 5 minutes for the encrypted value, one-shot redemption.
20
+ * → { key, value, retrievedAt } // value plaintext, recovered by the
21
+ * // service's decrypt-on-retrieve
18
22
  *
19
- * Validation: every request's :sessionId is checked against the coordinator's
20
- * `tasks` map. Unknown / stale sessions get 404. Tasks in stopped/error/completed
21
- * status get 410 (so the sub-agent can fall back to no-parent-context mode
22
- * cleanly).
23
- *
24
- * @module api/bridge-routes
23
+ * The orchestrator wires this module via `routes.ts`. The implementation is
24
+ * decoupled from the credential-tunnel service: callers pass a small
25
+ * `BridgeCredentialAdapter` so the same routes can be wired against a
26
+ * test-time mock or the production `CredentialTunnelService`.
25
27
  */
26
28
  import type { IncomingMessage, ServerResponse } from "node:http";
27
29
  import type { RouteContext } from "./route-utils.js";
28
30
  /**
29
- * Entry point dispatches to the right handler based on parsed path.
31
+ * Adapter surface the bridge routes need from the parent runtime. The
32
+ * concrete implementation lives in app-core (`CredentialTunnelService`) and
33
+ * is registered into the parent runtime out-of-band; the route layer never
34
+ * imports it directly.
35
+ */
36
+ export interface BridgeCredentialAdapter {
37
+ requestCredentials(input: {
38
+ childSessionId: string;
39
+ credentialKeys: readonly string[];
40
+ }): Promise<{
41
+ credentialScopeId: string;
42
+ scopedToken: string;
43
+ expiresAt: number;
44
+ sensitiveRequestIds: readonly string[];
45
+ }>;
46
+ tryRetrieveCredential(input: {
47
+ childSessionId: string;
48
+ key: string;
49
+ scopedToken: string;
50
+ }): Promise<{
51
+ status: "pending";
52
+ } | {
53
+ status: "ready";
54
+ value: string;
55
+ } | {
56
+ status: "expired";
57
+ } | {
58
+ status: "rejected";
59
+ reason: string;
60
+ }>;
61
+ }
62
+ /**
63
+ * Dispatcher for the credential bridge routes. Returns true when the path
64
+ * matches one of our patterns (whether or not the response is a success).
65
+ *
66
+ * `routes.ts` calls this after parent-context routes and before generic
67
+ * `:agentId` routes.
30
68
  */
31
69
  export declare function handleBridgeRoutes(req: IncomingMessage, res: ServerResponse, pathname: string, ctx: RouteContext): Promise<boolean>;
32
70
  //# sourceMappingURL=bridge-routes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bridge-routes.d.ts","sourceRoot":"","sources":["../../../../src/api/bridge-routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAsMrD;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,YAAY,GAChB,OAAO,CAAC,OAAO,CAAC,CAkClB"}
1
+ {"version":3,"file":"bridge-routes.d.ts","sourceRoot":"","sources":["../../../../src/api/bridge-routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAOjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AASrD;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACtC,kBAAkB,CAAC,KAAK,EAAE;QACxB,cAAc,EAAE,MAAM,CAAC;QACvB,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;KACnC,GAAG,OAAO,CAAC;QACV,iBAAiB,EAAE,MAAM,CAAC;QAC1B,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;KACxC,CAAC,CAAC;IACH,qBAAqB,CAAC,KAAK,EAAE;QAC3B,cAAc,EAAE,MAAM,CAAC;QACvB,GAAG,EAAE,MAAM,CAAC;QACZ,WAAW,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO,CACP;QAAE,MAAM,EAAE,SAAS,CAAA;KAAE,GACrB;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAClC;QAAE,MAAM,EAAE,SAAS,CAAA;KAAE,GACrB;QAAE,MAAM,EAAE,UAAU,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CACzC,CAAC;CACH;AAwOD;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,YAAY,GAChB,OAAO,CAAC,OAAO,CAAC,CA0DlB"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * In-chat surfacing of a sub-agent credential request (#8907).
3
+ *
4
+ * The credential bridge (`bridge-routes.ts`) already fires the sensitive-request
5
+ * flow (REQUEST_SECRET → owner DM / owner-app), but nothing told the user *in
6
+ * the originating task thread* that a sub-agent is blocked waiting on a secret —
7
+ * on Telegram (no side panels) that is the blocking gap. This module posts a
8
+ * compact prompt to the origin room when a request opens, and a status
9
+ * follow-up when the long-poll resolves, so the user can act without leaving
10
+ * chat.
11
+ *
12
+ * Kept decoupled from the route layer: it only needs the runtime's optional
13
+ * `sendMessageToTarget` and the origin keys the orchestrator stamps on
14
+ * `session.metadata` at spawn time (`roomId`, `source`).
15
+ */
16
+ import type { IAgentRuntime } from "@elizaos/core";
17
+ /**
18
+ * Post a chat prompt to the origin room announcing the pending credential
19
+ * request. Returns true when a message was dispatched. Best-effort: a runtime
20
+ * without `sendMessageToTarget`, or a session with no origin room, is a no-op.
21
+ */
22
+ export declare function emitCredentialPrompt(input: {
23
+ runtime: IAgentRuntime;
24
+ metadata: Record<string, unknown> | undefined;
25
+ credentialKeys: readonly string[];
26
+ label?: string;
27
+ }): Promise<boolean>;
28
+ /**
29
+ * Post a follow-up once a requested credential has been delivered, so the user
30
+ * sees the task is unblocked. Best-effort, same no-op conditions as above.
31
+ */
32
+ export declare function emitCredentialResolved(input: {
33
+ runtime: IAgentRuntime;
34
+ metadata: Record<string, unknown> | undefined;
35
+ key: string;
36
+ label?: string;
37
+ }): Promise<boolean>;
38
+ //# sourceMappingURL=credential-prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credential-prompt.d.ts","sourceRoot":"","sources":["../../../../src/api/credential-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAW,aAAa,EAAQ,MAAM,eAAe,CAAC;AA4ClE;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,KAAK,EAAE;IAChD,OAAO,EAAE,aAAa,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAC9C,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,OAAO,CAAC,CAiCnB;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,KAAK,EAAE;IAClD,OAAO,EAAE,aAAa,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAC9C,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,OAAO,CAAC,CAuBnB"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Orchestrator Task Route Handlers
3
+ *
4
+ * Mounts the durable task surface under `/api/orchestrator/*`:
5
+ * aggregate status, task CRUD, lifecycle (pause/resume/archive/reopen/fork/
6
+ * validate/delete), room messages, event log, usage rollup, and sub-agent
7
+ * add/stop. All orchestration logic lives in {@link OrchestratorTaskService};
8
+ * these handlers validate input at the boundary and forward to the service.
9
+ *
10
+ * @module api/orchestrator-routes
11
+ */
12
+ import type { IncomingMessage, ServerResponse } from "node:http";
13
+ import type { RouteContext } from "./route-utils.js";
14
+ /**
15
+ * Handle `/api/orchestrator/*` routes. Returns true when the path was matched
16
+ * (whether it succeeded or errored), false to let the dispatcher continue.
17
+ */
18
+ /**
19
+ * Single error boundary for every orchestrator endpoint. A thrown service call
20
+ * (DB / file / session failure) becomes a 500 instead of an unhandled promise
21
+ * rejection that leaves the request hanging forever. Paths outside the
22
+ * orchestrator prefix return false (not handled) untouched.
23
+ */
24
+ export declare function handleOrchestratorRoutes(req: IncomingMessage, res: ServerResponse, pathname: string, ctx: RouteContext): Promise<boolean>;
25
+ //# sourceMappingURL=orchestrator-routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestrator-routes.d.ts","sourceRoot":"","sources":["../../../../src/api/orchestrator-routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAkBjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAqHrD;;;GAGG;AACH;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAC5C,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,YAAY,GAChB,OAAO,CAAC,OAAO,CAAC,CAalB"}
@@ -1 +1 @@
1
- {"version":3,"file":"parent-context-routes.d.ts","sourceRoot":"","sources":["../../../../src/api/parent-context-routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAMjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AA+UrD;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,YAAY,GAChB,OAAO,CAAC,OAAO,CAAC,CAiGlB"}
1
+ {"version":3,"file":"parent-context-routes.d.ts","sourceRoot":"","sources":["../../../../src/api/parent-context-routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAKjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AA+TrD;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,YAAY,GAChB,OAAO,CAAC,OAAO,CAAC,CA8FlB"}
@@ -1,18 +1,34 @@
1
1
  import type { IncomingMessage, ServerResponse } from "node:http";
2
2
  import type { IAgentRuntime } from "@elizaos/core";
3
- import type { PTYService } from "../services/pty-service.js";
4
- import type { SwarmCoordinator } from "../services/swarm-coordinator.js";
3
+ import type { AcpActionService } from "../actions/common.js";
5
4
  import type { CodingWorkspaceService } from "../services/workspace-service.js";
6
- export type JsonValue = string | number | boolean | null | JsonValue[] | {
7
- [key: string]: JsonValue;
8
- };
9
5
  export interface RouteContext {
10
6
  runtime: IAgentRuntime;
11
- ptyService: PTYService | null;
7
+ acpService: AcpActionService | null;
12
8
  workspaceService: CodingWorkspaceService | null;
13
- coordinator?: SwarmCoordinator;
14
9
  }
10
+ /**
11
+ * Parse the JSON request body.
12
+ *
13
+ * The elizaOS runtime route dispatcher parses JSON bodies and attaches the
14
+ * result to `req.body` before invoking `rawPath` handlers (see
15
+ * `@elizaos/core` `readJsonBody`), draining the request stream in the process.
16
+ * Re-reading that already-ended stream would hang forever, so we return the
17
+ * pre-parsed body when present and only fall back to reading the stream for
18
+ * direct callers (e.g. unit tests) that pass an unconsumed request.
19
+ */
15
20
  export declare function parseBody(req: IncomingMessage): Promise<Record<string, unknown>>;
16
21
  export declare function sendJson(res: ServerResponse, data: unknown, status?: number): void;
17
22
  export declare function sendError(res: ServerResponse, message: string, status?: number): void;
23
+ /**
24
+ * Send a 503 that honestly reports the backing service is still initializing,
25
+ * with a quiet-backoff signal for polling clients. This is NOT an empty-data
26
+ * fallback — the request genuinely cannot be served yet, so the status stays
27
+ * 503/unavailable. The `Retry-After` header (HTTP spec: integer seconds) plus
28
+ * the machine-readable `{ status: "initializing", retryAfterMs }` body let the
29
+ * dashboard back off instead of hammering the endpoint during the startup
30
+ * window. Callers pass the same human-readable message they would give
31
+ * `sendError(..., 503)`.
32
+ */
33
+ export declare function sendServiceUnavailable(res: ServerResponse, message: string, retryAfterMs?: number): void;
18
34
  //# sourceMappingURL=route-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"route-utils.d.ts","sourceRoot":"","sources":["../../../../src/api/route-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAE/E,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,SAAS,EAAE,GACX;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAEjC,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,aAAa,CAAC;IACvB,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,gBAAgB,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAChD,WAAW,CAAC,EAAE,gBAAgB,CAAC;CAChC;AAMD,wBAAsB,SAAS,CAC7B,GAAG,EAAE,eAAe,GACnB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAsBlC;AAGD,wBAAgB,QAAQ,CACtB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,OAAO,EACb,MAAM,SAAM,GACX,IAAI,CAGN;AAGD,wBAAgB,SAAS,CACvB,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,MAAM,EACf,MAAM,SAAM,GACX,IAAI,CAEN"}
1
+ {"version":3,"file":"route-utils.d.ts","sourceRoot":"","sources":["../../../../src/api/route-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAE/E,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,aAAa,CAAC;IACvB,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACpC,gBAAgB,EAAE,sBAAsB,GAAG,IAAI,CAAC;CACjD;AAKD;;;;;;;;;GASG;AACH,wBAAsB,SAAS,CAC7B,GAAG,EAAE,eAAe,GACnB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA8BlC;AAGD,wBAAgB,QAAQ,CACtB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,OAAO,EACb,MAAM,SAAM,GACX,IAAI,CAGN;AAGD,wBAAgB,SAAS,CACvB,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,MAAM,EACf,MAAM,SAAM,GACX,IAAI,CAEN;AAYD;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,MAAM,EACf,YAAY,SAAsC,GACjD,IAAI,CASN"}
@@ -8,7 +8,6 @@
8
8
  */
9
9
  import type { IncomingMessage, ServerResponse } from "node:http";
10
10
  import type { IAgentRuntime } from "@elizaos/core";
11
- import type { SwarmCoordinator } from "../services/swarm-coordinator.js";
12
11
  import type { RouteContext } from "./route-utils.js";
13
12
  /**
14
13
  * Handle task-agent routes
@@ -18,6 +17,6 @@ export declare function handleCodingAgentRoutes(req: IncomingMessage, res: Serve
18
17
  /**
19
18
  * Create route handler with services from runtime
20
19
  */
21
- export declare function createCodingAgentRouteHandler(runtime: IAgentRuntime, coordinator?: SwarmCoordinator): (req: IncomingMessage, res: ServerResponse, pathname: string) => Promise<boolean>;
20
+ export declare function createCodingAgentRouteHandler(runtime: IAgentRuntime): (req: IncomingMessage, res: ServerResponse, pathname: string) => Promise<boolean>;
22
21
  export declare const createTaskAgentRouteHandler: typeof createCodingAgentRouteHandler;
23
22
  //# sourceMappingURL=routes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../../src/api/routes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAQzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGrD;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,YAAY,GAChB,OAAO,CAAC,OAAO,CAAC,CA4ClB;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,aAAa,EACtB,WAAW,CAAC,EAAE,gBAAgB,IAEtB,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,UAAU,MAAM,sBASpE;AAED,eAAO,MAAM,2BAA2B,sCAAgC,CAAC"}
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../../src/api/routes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAQnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGrD;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,YAAY,GAChB,OAAO,CAAC,OAAO,CAAC,CA8BlB;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,aAAa,IAC1D,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,UAAU,MAAM,sBAQpE;AAED,eAAO,MAAM,2BAA2B,sCAAgC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type ResponseHandlerEvaluator } from "@elizaos/core";
2
+ export declare const subAgentCompletionResponseEvaluator: ResponseHandlerEvaluator;
3
+ //# sourceMappingURL=sub-agent-completion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sub-agent-completion.d.ts","sourceRoot":"","sources":["../../../../src/evaluators/sub-agent-completion.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,wBAAwB,EAE9B,MAAM,eAAe,CAAC;AAmevB,eAAO,MAAM,mCAAmC,EAAE,wBAsOjD,CAAC"}
@@ -7,25 +7,50 @@
7
7
  *
8
8
  * @module @elizaos/plugin-agent-orchestrator
9
9
  */
10
- import type { Plugin } from "@elizaos/core";
11
- import "./register-routes.js";
10
+ import type { IAgentRuntime, Plugin } from "@elizaos/core";
11
+ export { codingAgentRouteRegistration } from "./register-routes.js";
12
+ export declare function createAgentOrchestratorPlugin(): Plugin;
13
+ export declare function stripProgressLabelPrefix(text: string): string;
14
+ type SubAgentProgressMode = "compact" | "threaded" | "silent" | "ack";
15
+ interface SubAgentProgressPolicy {
16
+ mode: SubAgentProgressMode;
17
+ reactions: boolean;
18
+ delayMs: number;
19
+ }
20
+ export declare function resolveSubAgentProgressPolicy(runtime: IAgentRuntime): SubAgentProgressPolicy;
21
+ export declare function compactProgressText(text: string): string;
22
+ /**
23
+ * Decide whether the planner already acknowledged a spawn turn, so the
24
+ * orchestrator's spawn ACK can be suppressed (avoiding two back-to-back acks:
25
+ * planner "On it." + orchestrator "working on it now."). True iff the planner
26
+ * sent a user-facing message to the room within the spawn turn — i.e. at/after
27
+ * the session's createdAt minus a small lookback (REPLY and the TASKS spawn
28
+ * action run in the same turn, in either order). A planner reply older than
29
+ * that belongs to an earlier turn (e.g. a previous task's completion summary)
30
+ * and must NOT suppress this spawn's ack. Pure + deterministic so it is unit
31
+ * tested directly instead of relying on a flaky live "On it." case.
32
+ */
33
+ export declare function plannerAlreadyAckedSpawn(plannerReplyAtMs: number | undefined, sessionCreatedAtMs: number | undefined, lookbackMs: number): boolean;
34
+ export declare function sanitizePlannerText(text: string): string;
35
+ export declare function extractCompletionSummary(raw: string): string;
12
36
  export declare const agentOrchestratorPlugin: Plugin;
13
37
  export default agentOrchestratorPlugin;
14
38
  export type { AdapterType, AgentCredentials, AgentFileDescriptor, ApprovalConfig, ApprovalPreset as AdapterApprovalPreset, PreflightResult, PresetDefinition, RiskLevel, ToolCategory, WriteMemoryOptions, } from "coding-agent-adapters";
39
+ export { getAcpService } from "./actions/common.js";
15
40
  export { archiveCodingTaskAction, cancelTaskAction, createTaskAction, finalizeWorkspaceAction, listAgentsAction, listTaskAgentsAction, manageIssuesAction, provisionWorkspaceAction, reopenCodingTaskAction, sendToAgentAction, sendToTaskAgentAction, spawnAgentAction, spawnTaskAgentAction, startCodingTaskAction, stopAgentAction, stopTaskAgentAction, taskControlAction, taskHistoryAction, taskShareAction, tasksAction, } from "./actions/tasks.js";
16
41
  export { createCodingAgentRouteHandler, createTaskAgentRouteHandler, handleCodingAgentRoutes, } from "./api/routes.js";
42
+ export { subAgentCompletionResponseEvaluator } from "./evaluators/sub-agent-completion.js";
17
43
  export { activeSubAgentsProvider } from "./providers/active-sub-agents.js";
18
44
  export { acpAvailableAgentsProvider, availableAgentsProvider, } from "./providers/available-agents.js";
19
45
  export { AcpService } from "./services/acp-service.js";
20
46
  export { cleanForChat } from "./services/ansi-utils.js";
21
- export type { CodingAgentType, PTYServiceConfig, SessionEventName as PTYSessionEventName, SessionInfo as PTYSessionInfo, SpawnSessionOptions as PTYSpawnSessionOptions, } from "./services/pty-service.js";
22
- export { getCoordinator, PTYService } from "./services/pty-service.js";
47
+ export { COMPLETION_ENVELOPE_INSTRUCTION, type CompletionEnvelope, envelopeCorrection, parseCompletionEnvelope, summarizeEnvelope, } from "./services/completion-envelope.js";
48
+ export { buildIndependentVerifierPrompt, type IndependentVerifierVerdict, runIndependentVerification, shouldRunIndependentVerify, verifierVerdict, } from "./services/independent-verifier.js";
49
+ export { collectScreenshotPaths, deliverScreenshots, screenshotsToAttachments, } from "./services/screenshot-delivery.js";
23
50
  export { AcpSessionStore, FileSessionStore, InMemorySessionStore, RuntimeDbSessionStore, } from "./services/session-store.js";
24
51
  export { SubAgentRouter } from "./services/sub-agent-router.js";
25
- export type { AgentDecisionCallback, ChatMessageCallback, CoordinationDecision, PendingDecision, SupervisionLevel, SwarmCompleteCallback, SwarmEvent, TaskCompletionSummary, TaskContext, WsBroadcastCallback, } from "./services/swarm-coordinator.js";
26
- export { SwarmCoordinator } from "./services/swarm-coordinator.js";
27
- export type { CoordinationLLMResponse, SharedDecision, } from "./services/swarm-coordinator-prompts.js";
28
- export { buildBlockedEventMessage, buildTurnCompleteEventMessage, } from "./services/swarm-coordinator-prompts.js";
52
+ export { composeRoomDigest, runSupervisorTick, type SupervisorTaskView, statusEmoji, TASK_SUPERVISOR_SERVICE_TYPE, TaskSupervisorService, } from "./services/task-supervisor-service.js";
53
+ export { detectStalledSessions, STALL_GRILL_PROMPT, TASK_WATCHDOG_SERVICE_TYPE, TaskWatchdogService, type WatchdogSessionView, } from "./services/task-watchdog-service.js";
29
54
  export type { AcpEventCallback, AcpJsonRpcMessage, AgentType, ApprovalPreset, AvailableAgentInfo, PromptResult, SendOptions, SessionEventCallback, SessionEventName, SessionInfo, SessionStatus, SpawnOptions, SpawnResult, } from "./services/types.js";
30
55
  export type { AuthPromptCallback, CodingWorkspaceConfig, CommitOptions, ProvisionWorkspaceOptions, PushOptions, WorkspaceResult, } from "./services/workspace-service.js";
31
56
  export { CodingWorkspaceService } from "./services/workspace-service.js";