@elizaos/plugin-agent-orchestrator 2.0.3-beta.2 → 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 (176) hide show
  1. package/dist/cjs/index.d.ts +2 -0
  2. package/dist/cjs/index.node.cjs +20962 -0
  3. package/dist/cjs/index.node.js.map +82 -0
  4. package/dist/index.d.ts +2 -0
  5. package/dist/node/index.d.ts +2 -0
  6. package/dist/node/index.d.ts.map +1 -0
  7. package/dist/node/index.node.d.ts +4 -0
  8. package/dist/node/index.node.d.ts.map +1 -0
  9. package/dist/node/index.node.js +20946 -0
  10. package/dist/node/index.node.js.map +82 -0
  11. package/dist/node/src/actions/common.d.ts +114 -0
  12. package/dist/node/src/actions/common.d.ts.map +1 -0
  13. package/dist/node/src/actions/elizaos-capability.d.ts +3 -0
  14. package/dist/node/src/actions/elizaos-capability.d.ts.map +1 -0
  15. package/dist/node/src/actions/sandbox-stub.d.ts +25 -0
  16. package/dist/node/src/actions/sandbox-stub.d.ts.map +1 -0
  17. package/dist/node/src/actions/tasks.d.ts +108 -0
  18. package/dist/node/src/actions/tasks.d.ts.map +1 -0
  19. package/dist/node/src/api/agent-routes.d.ts +18 -0
  20. package/dist/node/src/api/agent-routes.d.ts.map +1 -0
  21. package/dist/node/src/api/bridge-routes.d.ts +70 -0
  22. package/dist/node/src/api/bridge-routes.d.ts.map +1 -0
  23. package/dist/node/src/api/credential-prompt.d.ts +38 -0
  24. package/dist/node/src/api/credential-prompt.d.ts.map +1 -0
  25. package/dist/node/src/api/issue-routes.d.ts +17 -0
  26. package/dist/node/src/api/issue-routes.d.ts.map +1 -0
  27. package/dist/node/src/api/orchestrator-routes.d.ts +25 -0
  28. package/dist/node/src/api/orchestrator-routes.d.ts.map +1 -0
  29. package/dist/node/src/api/parent-context-routes.d.ts +17 -0
  30. package/dist/node/src/api/parent-context-routes.d.ts.map +1 -0
  31. package/dist/node/src/api/route-utils.d.ts +34 -0
  32. package/dist/node/src/api/route-utils.d.ts.map +1 -0
  33. package/dist/node/src/api/routes.d.ts +22 -0
  34. package/dist/node/src/api/routes.d.ts.map +1 -0
  35. package/dist/node/src/api/workspace-routes.d.ts +17 -0
  36. package/dist/node/src/api/workspace-routes.d.ts.map +1 -0
  37. package/dist/node/src/evaluators/sub-agent-completion.d.ts +3 -0
  38. package/dist/node/src/evaluators/sub-agent-completion.d.ts.map +1 -0
  39. package/dist/node/src/index.d.ts +57 -0
  40. package/dist/node/src/index.d.ts.map +1 -0
  41. package/dist/node/src/providers/action-examples.d.ts +14 -0
  42. package/dist/node/src/providers/action-examples.d.ts.map +1 -0
  43. package/dist/node/src/providers/active-sub-agents.d.ts +15 -0
  44. package/dist/node/src/providers/active-sub-agents.d.ts.map +1 -0
  45. package/dist/node/src/providers/active-workspace-context.d.ts +13 -0
  46. package/dist/node/src/providers/active-workspace-context.d.ts.map +1 -0
  47. package/dist/node/src/providers/available-agents.d.ts +4 -0
  48. package/dist/node/src/providers/available-agents.d.ts.map +1 -0
  49. package/dist/node/src/providers/coding-session-changes.d.ts +17 -0
  50. package/dist/node/src/providers/coding-session-changes.d.ts.map +1 -0
  51. package/dist/node/src/register-routes.d.ts +31 -0
  52. package/dist/node/src/register-routes.d.ts.map +1 -0
  53. package/dist/node/src/services/acceptance-criteria.d.ts +84 -0
  54. package/dist/node/src/services/acceptance-criteria.d.ts.map +1 -0
  55. package/dist/node/src/services/acp-native-transport.d.ts +111 -0
  56. package/dist/node/src/services/acp-native-transport.d.ts.map +1 -0
  57. package/dist/node/src/services/acp-service.d.ts +226 -0
  58. package/dist/node/src/services/acp-service.d.ts.map +1 -0
  59. package/dist/node/src/services/active-session-forward.d.ts +31 -0
  60. package/dist/node/src/services/active-session-forward.d.ts.map +1 -0
  61. package/dist/node/src/services/agent-name-assignment.d.ts +50 -0
  62. package/dist/node/src/services/agent-name-assignment.d.ts.map +1 -0
  63. package/dist/node/src/services/ansi-utils.d.ts +64 -0
  64. package/dist/node/src/services/ansi-utils.d.ts.map +1 -0
  65. package/dist/node/src/services/app-deploy-guidance.d.ts +52 -0
  66. package/dist/node/src/services/app-deploy-guidance.d.ts.map +1 -0
  67. package/dist/node/src/services/audit.d.ts +18 -0
  68. package/dist/node/src/services/audit.d.ts.map +1 -0
  69. package/dist/node/src/services/coding-account-selection.d.ts +79 -0
  70. package/dist/node/src/services/coding-account-selection.d.ts.map +1 -0
  71. package/dist/node/src/services/completion-envelope.d.ts +63 -0
  72. package/dist/node/src/services/completion-envelope.d.ts.map +1 -0
  73. package/dist/node/src/services/completion-evidence.d.ts +144 -0
  74. package/dist/node/src/services/completion-evidence.d.ts.map +1 -0
  75. package/dist/node/src/services/config-env.d.ts +27 -0
  76. package/dist/node/src/services/config-env.d.ts.map +1 -0
  77. package/dist/node/src/services/goal-contract.d.ts +25 -0
  78. package/dist/node/src/services/goal-contract.d.ts.map +1 -0
  79. package/dist/node/src/services/goal-llm-verifier.d.ts +157 -0
  80. package/dist/node/src/services/goal-llm-verifier.d.ts.map +1 -0
  81. package/dist/node/src/services/goal-prompt.d.ts +82 -0
  82. package/dist/node/src/services/goal-prompt.d.ts.map +1 -0
  83. package/dist/node/src/services/independent-verifier.d.ts +58 -0
  84. package/dist/node/src/services/independent-verifier.d.ts.map +1 -0
  85. package/dist/node/src/services/interruption-decider.d.ts +43 -0
  86. package/dist/node/src/services/interruption-decider.d.ts.map +1 -0
  87. package/dist/node/src/services/json-model-output.d.ts +2 -0
  88. package/dist/node/src/services/json-model-output.d.ts.map +1 -0
  89. package/dist/node/src/services/opencode-config.d.ts +21 -0
  90. package/dist/node/src/services/opencode-config.d.ts.map +1 -0
  91. package/dist/node/src/services/orchestrator-device-support-matrix.d.ts +46 -0
  92. package/dist/node/src/services/orchestrator-device-support-matrix.d.ts.map +1 -0
  93. package/dist/node/src/services/orchestrator-task-mapper.d.ts +192 -0
  94. package/dist/node/src/services/orchestrator-task-mapper.d.ts.map +1 -0
  95. package/dist/node/src/services/orchestrator-task-service.d.ts +370 -0
  96. package/dist/node/src/services/orchestrator-task-service.d.ts.map +1 -0
  97. package/dist/node/src/services/orchestrator-task-store.d.ts +156 -0
  98. package/dist/node/src/services/orchestrator-task-store.d.ts.map +1 -0
  99. package/dist/node/src/services/orchestrator-task-types.d.ts +334 -0
  100. package/dist/node/src/services/orchestrator-task-types.d.ts.map +1 -0
  101. package/dist/node/src/services/parent-agent-broker.d.ts +23 -0
  102. package/dist/node/src/services/parent-agent-broker.d.ts.map +1 -0
  103. package/dist/node/src/services/parent-agent-dispatch.d.ts +62 -0
  104. package/dist/node/src/services/parent-agent-dispatch.d.ts.map +1 -0
  105. package/dist/node/src/services/repo-input.d.ts +16 -0
  106. package/dist/node/src/services/repo-input.d.ts.map +1 -0
  107. package/dist/node/src/services/screenshot-delivery.d.ts +38 -0
  108. package/dist/node/src/services/screenshot-delivery.d.ts.map +1 -0
  109. package/dist/node/src/services/session-event-queue.d.ts +18 -0
  110. package/dist/node/src/services/session-event-queue.d.ts.map +1 -0
  111. package/dist/node/src/services/session-store.d.ts +108 -0
  112. package/dist/node/src/services/session-store.d.ts.map +1 -0
  113. package/dist/node/src/services/skill-lifeops-context-broker.d.ts +20 -0
  114. package/dist/node/src/services/skill-lifeops-context-broker.d.ts.map +1 -0
  115. package/dist/node/src/services/skill-manifest.d.ts +48 -0
  116. package/dist/node/src/services/skill-manifest.d.ts.map +1 -0
  117. package/dist/node/src/services/skill-recommender.d.ts +53 -0
  118. package/dist/node/src/services/skill-recommender.d.ts.map +1 -0
  119. package/dist/node/src/services/smithers-task-executor.d.ts +73 -0
  120. package/dist/node/src/services/smithers-task-executor.d.ts.map +1 -0
  121. package/dist/node/src/services/smithers-task-integration.d.ts +52 -0
  122. package/dist/node/src/services/smithers-task-integration.d.ts.map +1 -0
  123. package/dist/node/src/services/smithers-task-runner.d.ts +27 -0
  124. package/dist/node/src/services/smithers-task-runner.d.ts.map +1 -0
  125. package/dist/node/src/services/smithers-task-types.d.ts +96 -0
  126. package/dist/node/src/services/smithers-task-types.d.ts.map +1 -0
  127. package/dist/node/src/services/spawn-trajectory.d.ts +23 -0
  128. package/dist/node/src/services/spawn-trajectory.d.ts.map +1 -0
  129. package/dist/node/src/services/spend-allowance.d.ts +143 -0
  130. package/dist/node/src/services/spend-allowance.d.ts.map +1 -0
  131. package/dist/node/src/services/ssrf-guard.d.ts +66 -0
  132. package/dist/node/src/services/ssrf-guard.d.ts.map +1 -0
  133. package/dist/node/src/services/sub-agent-identity.d.ts +27 -0
  134. package/dist/node/src/services/sub-agent-identity.d.ts.map +1 -0
  135. package/dist/node/src/services/sub-agent-inbox.d.ts +26 -0
  136. package/dist/node/src/services/sub-agent-inbox.d.ts.map +1 -0
  137. package/dist/node/src/services/sub-agent-router.d.ts +178 -0
  138. package/dist/node/src/services/sub-agent-router.d.ts.map +1 -0
  139. package/dist/node/src/services/task-agent-frameworks.d.ts +103 -0
  140. package/dist/node/src/services/task-agent-frameworks.d.ts.map +1 -0
  141. package/dist/node/src/services/task-agent-routing.d.ts +33 -0
  142. package/dist/node/src/services/task-agent-routing.d.ts.map +1 -0
  143. package/dist/node/src/services/task-policy.d.ts +17 -0
  144. package/dist/node/src/services/task-policy.d.ts.map +1 -0
  145. package/dist/node/src/services/task-supervisor-service.d.ts +65 -0
  146. package/dist/node/src/services/task-supervisor-service.d.ts.map +1 -0
  147. package/dist/node/src/services/task-watchdog-service.d.ts +50 -0
  148. package/dist/node/src/services/task-watchdog-service.d.ts.map +1 -0
  149. package/dist/node/src/services/terminal-capabilities.d.ts +48 -0
  150. package/dist/node/src/services/terminal-capabilities.d.ts.map +1 -0
  151. package/dist/node/src/services/trajectory-context.d.ts +69 -0
  152. package/dist/node/src/services/trajectory-context.d.ts.map +1 -0
  153. package/dist/node/src/services/trajectory-feedback.d.ts +53 -0
  154. package/dist/node/src/services/trajectory-feedback.d.ts.map +1 -0
  155. package/dist/node/src/services/types.d.ts +188 -0
  156. package/dist/node/src/services/types.d.ts.map +1 -0
  157. package/dist/node/src/services/view-deploy-guidance.d.ts +14 -0
  158. package/dist/node/src/services/view-deploy-guidance.d.ts.map +1 -0
  159. package/dist/node/src/services/workdir-validation.d.ts +10 -0
  160. package/dist/node/src/services/workdir-validation.d.ts.map +1 -0
  161. package/dist/node/src/services/workspace-diff.d.ts +50 -0
  162. package/dist/node/src/services/workspace-diff.d.ts.map +1 -0
  163. package/dist/node/src/services/workspace-git-ops.d.ts +28 -0
  164. package/dist/node/src/services/workspace-git-ops.d.ts.map +1 -0
  165. package/dist/node/src/services/workspace-github.d.ts +60 -0
  166. package/dist/node/src/services/workspace-github.d.ts.map +1 -0
  167. package/dist/node/src/services/workspace-lifecycle.d.ts +5 -0
  168. package/dist/node/src/services/workspace-lifecycle.d.ts.map +1 -0
  169. package/dist/node/src/services/workspace-service.d.ts +126 -0
  170. package/dist/node/src/services/workspace-service.d.ts.map +1 -0
  171. package/dist/node/src/services/workspace-types.d.ts +81 -0
  172. package/dist/node/src/services/workspace-types.d.ts.map +1 -0
  173. package/dist/node/src/setup-routes.d.ts +9 -0
  174. package/dist/node/src/setup-routes.d.ts.map +1 -0
  175. package/docs/multi-account-orchestration.md +1 -1
  176. package/package.json +7 -4
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Agent Orchestrator Plugin for Eliza
3
+ *
4
+ * Canonical orchestration plugin: combines the ACP-based subprocess spawn
5
+ * surface (acpx) with workspace lifecycle, GitHub integration, task share,
6
+ * task history, runtime-driven sub-agent routing, and supporting services.
7
+ *
8
+ * @module @elizaos/plugin-agent-orchestrator
9
+ */
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;
36
+ export declare const agentOrchestratorPlugin: Plugin;
37
+ export default agentOrchestratorPlugin;
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";
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";
41
+ export { createCodingAgentRouteHandler, createTaskAgentRouteHandler, handleCodingAgentRoutes, } from "./api/routes.js";
42
+ export { subAgentCompletionResponseEvaluator } from "./evaluators/sub-agent-completion.js";
43
+ export { activeSubAgentsProvider } from "./providers/active-sub-agents.js";
44
+ export { acpAvailableAgentsProvider, availableAgentsProvider, } from "./providers/available-agents.js";
45
+ export { AcpService } from "./services/acp-service.js";
46
+ export { cleanForChat } from "./services/ansi-utils.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";
50
+ export { AcpSessionStore, FileSessionStore, InMemorySessionStore, RuntimeDbSessionStore, } from "./services/session-store.js";
51
+ export { SubAgentRouter } from "./services/sub-agent-router.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";
54
+ export type { AcpEventCallback, AcpJsonRpcMessage, AgentType, ApprovalPreset, AvailableAgentInfo, PromptResult, SendOptions, SessionEventCallback, SessionEventName, SessionInfo, SessionStatus, SpawnOptions, SpawnResult, } from "./services/types.js";
55
+ export type { AuthPromptCallback, CodingWorkspaceConfig, CommitOptions, ProvisionWorkspaceOptions, PushOptions, WorkspaceResult, } from "./services/workspace-service.js";
56
+ export { CodingWorkspaceService } from "./services/workspace-service.js";
57
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Provider that injects plain text task-agent action examples into the prompt context.
3
+ *
4
+ * ElizaOS core only shows exampleCalls from its static action-docs registry,
5
+ * which doesn't include custom plugin actions. This provider bridges the gap
6
+ * by formatting our task-agent action examples in the same compact plain-text
7
+ * style the model sees for core actions.
8
+ *
9
+ * @module providers/action-examples
10
+ */
11
+ import type { Provider } from "@elizaos/core";
12
+ export declare const codingAgentExamplesProvider: Provider;
13
+ export declare const taskAgentExamplesProvider: Provider;
14
+ //# sourceMappingURL=action-examples.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action-examples.d.ts","sourceRoot":"","sources":["../../../../src/providers/action-examples.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAyB,QAAQ,EAAS,MAAM,eAAe,CAAC;AAW5E,eAAO,MAAM,2BAA2B,EAAE,QAsFzC,CAAC;AAEF,eAAO,MAAM,yBAAyB,UAA8B,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { Provider } from "@elizaos/core";
2
+ /**
3
+ * Stable view of active ACPX sub-agent sessions, sorted by sessionId so the
4
+ * provider text is deterministic across turns. Only sessions that carry
5
+ * origin metadata (i.e. were spawned by CREATE_TASK with a roomId/userId
6
+ * to route back to) are included — these are the sessions the SubAgentRouter
7
+ * will post messages from.
8
+ *
9
+ * Cache strategy: text contains structural state only (id, label, agentType,
10
+ * status, workdir-tail). Live message content is delivered via the synthetic
11
+ * Memory the router posts, NOT through this provider, so prefix cache hits
12
+ * stay high turn-over-turn.
13
+ */
14
+ export declare const activeSubAgentsProvider: Provider;
15
+ //# sourceMappingURL=active-sub-agents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"active-sub-agents.d.ts","sourceRoot":"","sources":["../../../../src/providers/active-sub-agents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,QAAQ,EAGT,MAAM,eAAe,CAAC;AA4CvB;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,uBAAuB,EAAE,QA+FrC,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Provider that injects active workspace and task-agent context into every prompt.
3
+ *
4
+ * Eliza needs to know what workspaces exist, which agents are running, and
5
+ * their current status. This provider reads from the workspace service and ACP
6
+ * service to build a live context summary that's always
7
+ * available in the prompt.
8
+ *
9
+ * @module providers/active-workspace-context
10
+ */
11
+ import type { Provider } from "@elizaos/core";
12
+ export declare const activeWorkspaceContextProvider: Provider;
13
+ //# sourceMappingURL=active-workspace-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"active-workspace-context.d.ts","sourceRoot":"","sources":["../../../../src/providers/active-workspace-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAyB,QAAQ,EAAS,MAAM,eAAe,CAAC;AA6C5E,eAAO,MAAM,8BAA8B,EAAE,QAmN5C,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Provider } from "@elizaos/core";
2
+ export declare const availableAgentsProvider: Provider;
3
+ export declare const acpAvailableAgentsProvider: Provider;
4
+ //# sourceMappingURL=available-agents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"available-agents.d.ts","sourceRoot":"","sources":["../../../../src/providers/available-agents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAyB,QAAQ,EAAS,MAAM,eAAe,CAAC;AAsC5E,eAAO,MAAM,uBAAuB,EAAE,QAqGrC,CAAC;AAEF,eAAO,MAAM,0BAA0B,UAA0B,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Surfaces the real git change set from the most recent completed coding
3
+ * sub-agent so the parent can answer "what did you change / show me the
4
+ * diff / what did you add" from ground truth instead of confabulating a
5
+ * plausible-sounding edit (the dogsite "I added a 🤣 emoji" failure, where
6
+ * the sub-agent's actual task was an image swap).
7
+ *
8
+ * The change set is captured from git at task_complete (sub-agent-router →
9
+ * workspace-diff) and persisted on session.metadata.lastChangeSet. This
10
+ * provider reads the freshest one within a recency window so a stale build
11
+ * from days ago doesn't bleed into an unrelated conversation.
12
+ *
13
+ * @module providers/coding-session-changes
14
+ */
15
+ import type { Provider } from "@elizaos/core";
16
+ export declare const codingSessionChangesProvider: Provider;
17
+ //# sourceMappingURL=coding-session-changes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coding-session-changes.d.ts","sourceRoot":"","sources":["../../../../src/providers/coding-session-changes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAyB,QAAQ,EAAS,MAAM,eAAe,CAAC;AAyB5E,eAAO,MAAM,4BAA4B,EAAE,QAwH1C,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Register the coding-agent orchestrator's HTTP routes with the
3
+ * @elizaos/core route-plugin registry. The runtime walks this registry
4
+ * during plugin initialization and mounts the rawPath routes directly onto
5
+ * the agent runtime.
6
+ *
7
+ * No-op under store builds — the routes drive spawn/control surfaces that
8
+ * are unavailable when local code execution is disabled.
9
+ *
10
+ * Implementation note: the registration kick-off used to be a bare
11
+ * top-level `void registerCodingAgentRoutePluginLoader()` call relying
12
+ * on the importer doing `import "./register-routes.js"` as a
13
+ * side-effect-only import. Bundlers targeting Node (Bun.build with
14
+ * `target: "node"`) tree-shake side-effect-only imports out of the
15
+ * final bundle when no exported symbol is referenced — which silently
16
+ * disabled the entire `/api/coding-agents/*` route surface on the
17
+ * node-target build. We now export a sentinel that the importing
18
+ * module references explicitly, which forces the bundler to keep the
19
+ * module live AND triggers the registration as a side-effect of
20
+ * touching the sentinel.
21
+ */
22
+ /**
23
+ * Sentinel re-exported by `src/index.ts` so bundlers that aggressively
24
+ * tree-shake side-effect-only imports cannot drop this module. The
25
+ * value is a Promise that resolves once the route loader has been
26
+ * registered; callers that need to await registration completion (e.g.
27
+ * tests) may chain on it, but the typical caller only needs the import
28
+ * to fire.
29
+ */
30
+ export declare const codingAgentRouteRegistration: Promise<void>;
31
+ //# sourceMappingURL=register-routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-routes.d.ts","sourceRoot":"","sources":["../../../src/register-routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAsBH;;;;;;;GAOG;AACH,eAAO,MAAM,4BAA4B,EAAE,OAAO,CAAC,IAAI,CACjB,CAAC"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Default acceptance-criteria generation for durable orchestrator tasks.
3
+ *
4
+ * The auto goal-verifier (see {@link verifyGoalCompletion}) only grills a
5
+ * completed sub-agent when the task carries acceptance criteria — a task with
6
+ * `acceptanceCriteria.length === 0` fast-paths to "pass" (or, in
7
+ * {@link OrchestratorTaskService.autoVerifyCompletion}, simply parks in
8
+ * `validating`). The common case — a task minted from a plain request like
9
+ * "fix this bug" — has no criteria, so the verifier never fires and the whole
10
+ * grill-until-truly-done loop is skipped.
11
+ *
12
+ * This module closes that gap: when a durable task is created with EMPTY
13
+ * criteria and a non-trivial goal, it generates 3-5 measurable criteria and
14
+ * stores them on the task so the verifier always has something to grill
15
+ * against.
16
+ *
17
+ * Two layers:
18
+ *
19
+ * 1. **Static templates per task type** ({@link detectTaskType} +
20
+ * {@link DEFAULT_CRITERIA_TEMPLATES}) — deterministic, model-free, and
21
+ * always the fallback.
22
+ * 2. **Optional model refinement** ({@link generateDefaultAcceptanceCriteria})
23
+ * — a cheap `ModelType.TEXT_SMALL` call (matching the rest of this plugin)
24
+ * that turns the goal + template into concrete, measurable criteria. The
25
+ * model call is fully defensive: on ANY failure (no `useModel`, throw,
26
+ * malformed JSON, too-few criteria) it falls back to the static set and
27
+ * never throws.
28
+ *
29
+ * Gated by `ELIZA_REQUIRE_GOAL_CONTRACT` (default ON; only `"0"` disables),
30
+ * mirroring the {@link shouldAutoVerifyGoal} convention.
31
+ *
32
+ * Refs: elizaOS/eliza#8896
33
+ *
34
+ * @module services/acceptance-criteria
35
+ */
36
+ import { type IAgentRuntime } from "@elizaos/core";
37
+ /** Coarse task classification driving which template set is applied. */
38
+ export type OrchestratorTaskType = "coding" | "view-create" | "app-build" | "deploy";
39
+ /**
40
+ * Static criteria templates keyed by task type. Each set is intentionally
41
+ * measurable (a verifier can grill each line against concrete evidence) and
42
+ * each set is DISTINCT so a misclassified task still gets useful, type-shaped
43
+ * criteria rather than the generic coding default.
44
+ */
45
+ export declare const DEFAULT_CRITERIA_TEMPLATES: Readonly<Record<OrchestratorTaskType, readonly string[]>>;
46
+ /**
47
+ * Whether the orchestrator auto-generates default acceptance criteria for a
48
+ * criteria-free task so the verifier always fires. Default ON; set
49
+ * `ELIZA_REQUIRE_GOAL_CONTRACT=0` to disable (a criteria-free task then stays
50
+ * criteria-free and behaves exactly as before). Mirrors the
51
+ * {@link shouldAutoVerifyGoal} flag convention.
52
+ */
53
+ export declare function shouldRequireGoalContract(): boolean;
54
+ /**
55
+ * Classify a task from its goal text. Defaults to `coding` — the safest
56
+ * superset, since every other type extends or specializes the coding checks.
57
+ * Pure and deterministic so the static path is fully testable without a model.
58
+ */
59
+ export declare function detectTaskType(goal: string): OrchestratorTaskType;
60
+ /** Whether a goal is substantive enough to warrant generated criteria. A blank
61
+ * or near-blank goal gets none (the caller leaves criteria empty). */
62
+ export declare function isNonTrivialGoal(goal: string): boolean;
63
+ /**
64
+ * The static, model-free criteria for a goal. Always returns the template set
65
+ * for the detected (or hinted) task type — the deterministic fallback that
66
+ * {@link generateDefaultAcceptanceCriteria} returns whenever the model path is
67
+ * unavailable or fails.
68
+ */
69
+ export declare function staticAcceptanceCriteria(goal: string, taskTypeHint?: OrchestratorTaskType): string[];
70
+ /**
71
+ * Generate default acceptance criteria for a goal.
72
+ *
73
+ * - When `runtime` exposes `useModel`, attempts ONE cheap
74
+ * `ModelType.TEXT_SMALL` refinement of the static template into concrete,
75
+ * measurable criteria. The call is fully defensive: any failure (missing
76
+ * `useModel`, throw, unparseable / empty response, too-few usable lines)
77
+ * falls back to the static template — it NEVER throws.
78
+ * - When `runtime` is omitted, returns the static template directly (the
79
+ * deterministic path the unit tests pin).
80
+ *
81
+ * Always returns ≥{@link MIN_CRITERIA} criteria for a non-trivial goal.
82
+ */
83
+ export declare function generateDefaultAcceptanceCriteria(goal: string, taskTypeHint?: OrchestratorTaskType, runtime?: IAgentRuntime): Promise<string[]>;
84
+ //# sourceMappingURL=acceptance-criteria.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acceptance-criteria.d.ts","sourceRoot":"","sources":["../../../../src/services/acceptance-criteria.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EAAE,KAAK,aAAa,EAAa,MAAM,eAAe,CAAC;AAG9D,wEAAwE;AACxE,MAAM,MAAM,oBAAoB,GAC5B,QAAQ,GACR,aAAa,GACb,WAAW,GACX,QAAQ,CAAC;AAuBb;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAC/C,MAAM,CAAC,oBAAoB,EAAE,SAAS,MAAM,EAAE,CAAC,CAchD,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,yBAAyB,IAAI,OAAO,CAEnD;AAWD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,CAQjE;AAED;uEACuE;AACvE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEtD;AAgCD;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,MAAM,EACZ,YAAY,CAAC,EAAE,oBAAoB,GAClC,MAAM,EAAE,CAGV;AAwCD;;;;;;;;;;;;GAYG;AACH,wBAAsB,iCAAiC,CACrD,IAAI,EAAE,MAAM,EACZ,YAAY,CAAC,EAAE,oBAAoB,EACnC,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,MAAM,EAAE,CAAC,CAuBnB"}
@@ -0,0 +1,111 @@
1
+ import type { AcpJsonRpcMessage, ApprovalPreset } from "./types.js";
2
+ export type NativeAcpEventCallback = (event: AcpJsonRpcMessage, sessionId?: string) => void;
3
+ /**
4
+ * An MCP server entry for ACP `session/new.mcpServers`, so a spawned sub-agent
5
+ * inherits the parent's MCP tools (Codex / Claude-Code parity). Either a stdio
6
+ * server (`command` + `args`) or an HTTP server (`type: "http"` + `url`).
7
+ */
8
+ export type AcpMcpServerConfig = {
9
+ name: string;
10
+ command: string;
11
+ args?: string[];
12
+ env?: Array<{
13
+ name: string;
14
+ value: string;
15
+ }>;
16
+ } | {
17
+ name: string;
18
+ type: "http";
19
+ url: string;
20
+ headers?: Array<{
21
+ name: string;
22
+ value: string;
23
+ }>;
24
+ };
25
+ export type NativeAcpClientOptions = {
26
+ command: string;
27
+ cwd: string;
28
+ env?: NodeJS.ProcessEnv;
29
+ approvalPreset: ApprovalPreset;
30
+ terminal?: boolean;
31
+ timeoutMs?: number;
32
+ onEvent?: NativeAcpEventCallback;
33
+ onStderr?: (chunk: string) => void;
34
+ /**
35
+ * MCP servers to expose to the spawned sub-agent. Defaults to the opt-in
36
+ * `ELIZA_ACP_MCP_SERVERS` env var (see `parseAcpMcpServersEnv`); when unset,
37
+ * sub-agents start with no MCP servers (the prior behavior).
38
+ */
39
+ mcpServers?: AcpMcpServerConfig[];
40
+ };
41
+ /**
42
+ * Parse the opt-in `ELIZA_ACP_MCP_SERVERS` env var — a JSON array of
43
+ * `AcpMcpServerConfig` — into the list forwarded to ACP `session/new`. This
44
+ * closes the parity gap where sub-agents couldn't use the parent's MCP tools.
45
+ *
46
+ * Defaults to `[]` so the common path is unchanged and a malformed value can
47
+ * never break sub-agent spawning: anything that isn't a well-formed array of
48
+ * `{name, command}` / `{name, type:"http", url}` entries is dropped.
49
+ */
50
+ export declare function parseAcpMcpServersEnv(raw?: string | undefined): AcpMcpServerConfig[];
51
+ export type NativeAcpSession = {
52
+ sessionId: string;
53
+ agentSessionId?: string;
54
+ };
55
+ export type NativeAcpPromptResult = {
56
+ stopReason: string;
57
+ };
58
+ export declare class NativeAcpClient {
59
+ private readonly opts;
60
+ private proc?;
61
+ private nextId;
62
+ private readBuffer;
63
+ private pending;
64
+ private terminals;
65
+ private closed;
66
+ constructor(opts: NativeAcpClientOptions);
67
+ setEventHandler(handler: NativeAcpEventCallback | undefined): void;
68
+ setTimeoutMs(timeoutMs: number | undefined): void;
69
+ start(): Promise<void>;
70
+ createSession(cwd?: string): Promise<NativeAcpSession>;
71
+ prompt(sessionId: string, text: string): Promise<NativeAcpPromptResult>;
72
+ cancel(sessionId: string): Promise<void>;
73
+ closeSession(sessionId: string): Promise<void>;
74
+ close(): Promise<void>;
75
+ private request;
76
+ private notify;
77
+ private requireProcess;
78
+ private handleStdout;
79
+ private handleLine;
80
+ private handleClientRequest;
81
+ private resolvePermission;
82
+ private readTextFile;
83
+ private writeTextFile;
84
+ private createTerminal;
85
+ private terminalOutput;
86
+ private waitForTerminalExit;
87
+ private killTerminal;
88
+ private releaseTerminal;
89
+ private requireTerminal;
90
+ private respond;
91
+ private respondError;
92
+ private rejectAll;
93
+ private isOperationApproved;
94
+ /** Whether a `session/request_permission` will be auto-approved without user
95
+ * interaction — mirrors `resolvePermission`'s decision exactly. AcpService
96
+ * uses this to avoid surfacing a phantom "blocked" for a request the
97
+ * transport immediately approves under the session's preset. The op being
98
+ * approved is necessary but not sufficient: `resolvePermission` only counts
99
+ * it as approved when a concrete option is selectable; an empty/malformed
100
+ * `options` list makes the transport cancel, which is a genuine block. */
101
+ approvesPermissionRequest(params: Record<string, unknown> | undefined): boolean;
102
+ private resolveReadablePath;
103
+ private resolveWritablePath;
104
+ private resolveDirectoryPath;
105
+ private terminateTerminal;
106
+ }
107
+ export declare function splitCommandLine(input: string): {
108
+ command: string;
109
+ args: string[];
110
+ };
111
+ //# sourceMappingURL=acp-native-transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acp-native-transport.d.ts","sourceRoot":"","sources":["../../../../src/services/acp-native-transport.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,226 @@
1
+ import { type IAgentRuntime, Service } from "@elizaos/core";
2
+ import { type AcpEventCallback, type ApprovalPreset, type AvailableAgentInfo, type PromptResult, type SendOptions, type SessionEventCallback, type SessionEventName, type SessionInfo, type SessionStore, type SpawnOptions, type SpawnResult } from "./types.js";
3
+ type RuntimeLike = IAgentRuntime & {
4
+ logger?: Partial<Record<"debug" | "info" | "warn" | "error", (message: string, data?: unknown) => void>>;
5
+ services?: Map<string, unknown[]>;
6
+ databaseAdapter?: unknown;
7
+ getSetting?: (key: string) => string | undefined | null;
8
+ };
9
+ /**
10
+ * Resolve the absolute workdir for a spawned session. When `isolate` is true,
11
+ * the session lands in a per-session subdir (`<base>/task-<sessionId>`) so
12
+ * concurrent tasks sharing a scratch root never collide; otherwise the base is
13
+ * used verbatim (cwd self-checkout / a route / an explicit caller-chosen dir).
14
+ * Pure + exported for unit testing the concurrency-isolation guarantee.
15
+ */
16
+ export declare function computeSessionWorkdir(base: string, sessionId: string, isolate: boolean): string;
17
+ /**
18
+ * A key that must never reach a sub-agent, regardless of source — parent
19
+ * process.env forwarding OR caller-supplied customCredentials. Both paths run
20
+ * through this so a spawn request cannot inject a secret (connector bot token,
21
+ * vault passphrase) the deny-list exists to keep out of sub-agents.
22
+ */
23
+ export declare function isDeniedSubAgentEnvKey(key: string): boolean;
24
+ export declare class AcpService extends Service {
25
+ static serviceType: string;
26
+ private static readonly liveInstances;
27
+ private static shutdownHookInstalled;
28
+ private static readonly sharedShutdownHandler;
29
+ capabilityDescription: string;
30
+ readonly defaultApprovalPreset: ApprovalPreset;
31
+ readonly agentSelectionStrategy: string;
32
+ protected readonly runtime: RuntimeLike;
33
+ private readonly logger;
34
+ private readonly store;
35
+ private readonly cliPath;
36
+ private readonly transportMode;
37
+ private readonly defaultAgent;
38
+ private readonly maxSessions;
39
+ private spawnReservationLock;
40
+ private readonly sessionTimeoutMs?;
41
+ private readonly sessionCallbacks;
42
+ private readonly acpCallbacks;
43
+ private readonly activeProcesses;
44
+ private readonly nativeClients;
45
+ private readonly nativePromptSessionIds;
46
+ private readonly nativeCancelledPromptSessionIds;
47
+ private readonly nativeStoppingSessionIds;
48
+ private readonly outputBuffers;
49
+ private readonly changedPathsBySession;
50
+ private started;
51
+ private healthCheckTimer;
52
+ constructor(runtime: IAgentRuntime, opts?: {
53
+ store?: SessionStore;
54
+ });
55
+ static start(runtime: IAgentRuntime): Promise<AcpService>;
56
+ start(): Promise<void>;
57
+ private reconcileOrphanedSessions;
58
+ stop(): Promise<void>;
59
+ private acpxStateRoot;
60
+ private cleanStaleLocks;
61
+ private cleanReverseOrphanedAcpxFiles;
62
+ private runHealthCheck;
63
+ private acpxSessionStateFile;
64
+ private acpxSessionStateStat;
65
+ private hasAcpxSessionState;
66
+ spawnSession(opts: SpawnOptions): Promise<SpawnResult>;
67
+ sendPrompt(sessionId: string, text: string, opts?: SendOptions): Promise<PromptResult>;
68
+ cancelSession(sessionId: string): Promise<void>;
69
+ closeSession(sessionId: string): Promise<void>;
70
+ deleteSession(sessionId: string): Promise<void>;
71
+ listSessions(): Promise<SessionInfo[]>;
72
+ getSession(sessionId: string): Promise<SessionInfo | undefined>;
73
+ updateSessionMetadata(sessionId: string, patch: Record<string, unknown>): Promise<void>;
74
+ resumeOrphanedBusySessions(): Promise<{
75
+ resumed: number;
76
+ skipped: number;
77
+ }>;
78
+ findResumableSessionByLabel(label: string, workdir: string): Promise<SessionInfo | undefined>;
79
+ onSessionEvent(handler: SessionEventCallback): () => void;
80
+ onAcpEvent(handler: AcpEventCallback): () => void;
81
+ reattachSession(sessionId: string): Promise<SpawnResult>;
82
+ getAvailableAgents(): Promise<AvailableAgentInfo[]>;
83
+ checkAvailableAgents(types?: string[]): Promise<AvailableAgentInfo[]>;
84
+ resolveAgentType(): Promise<string>;
85
+ sendToSession(sessionId: string, input: string): Promise<PromptResult>;
86
+ sendKeysToSession(sessionId: string): Promise<void>;
87
+ stopSession(sessionId: string): Promise<void>;
88
+ private closeInitialTaskSession;
89
+ subscribeToOutput(sessionId: string, callback: (data: string) => void): () => void;
90
+ getSessionOutput(sessionId: string, lines?: number): Promise<string>;
91
+ private baseArgs;
92
+ private opencodeAgentCommand;
93
+ private spawnNativeSession;
94
+ private sendNativePrompt;
95
+ private nativeAgentCommand;
96
+ private stopNativeClient;
97
+ private agentCommandArgs;
98
+ private runAcpx;
99
+ private parseNdjson;
100
+ private handleAcpEvent;
101
+ emitSessionEvent(sessionId: string, event: SessionEventName, data: unknown): void;
102
+ private requireSession;
103
+ private enforceSessionLimit;
104
+ /**
105
+ * Atomically enforce the session limit and reserve the slot by inserting the
106
+ * session. Wrapping the check (`enforceSessionLimit`) and the insert
107
+ * (`store.create`) in a single mutex-guarded critical section makes them one
108
+ * indivisible operation, so N concurrent spawns can't all pass the limit
109
+ * check before any has inserted and overshoot `maxSessions`.
110
+ *
111
+ * The mutex is a promise chain: each call awaits the previous reservation's
112
+ * settlement (success OR failure) before running its own check+insert, so
113
+ * the count observed by `enforceSessionLimit` always includes every
114
+ * already-reserved session. Errors propagate to the caller; the chain itself
115
+ * never rejects (we swallow on the tail) so one failed reservation doesn't
116
+ * wedge the lock for later spawns.
117
+ */
118
+ private reserveSessionSlot;
119
+ private stopTrackedProcess;
120
+ private terminateProcess;
121
+ /**
122
+ * Re-resolve the credential env for a session's previously selected account.
123
+ * Used by the cli transport (which spawns a fresh subprocess per prompt);
124
+ * session affinity keeps the same account, and the token is refreshed on each
125
+ * resolve. Returns undefined when the session has no linked account.
126
+ */
127
+ private accountCredentialsForSession;
128
+ private buildEnv;
129
+ private classifyExitError;
130
+ private lastOutput;
131
+ private appendOutput;
132
+ private static readonly EDIT_PATH_KEYS;
133
+ private static readonly WRITE_CONTENT_KEYS;
134
+ private static readonly MUTATING_TOOL_KINDS;
135
+ /**
136
+ * Record the file path(s) of an edit/write tool call so the change set at
137
+ * completion includes gitignored files the agent authored. Self-gates: only
138
+ * records when the call's kind is mutating OR its args carry write content,
139
+ * so reads/searches/shell calls are ignored.
140
+ */
141
+ private recordEditedPaths;
142
+ /** File paths the agent wrote via edit/write tool calls this session. */
143
+ getChangedPaths(sessionId: string): string[];
144
+ private setting;
145
+ private ensureStarted;
146
+ private log;
147
+ private shouldDisableTerminalCapability;
148
+ private missingCliMessage;
149
+ private emitMissingCli;
150
+ private assertTransportAvailable;
151
+ }
152
+ /**
153
+ * True when a value is a Claude subscription OAuth token (`sk-ant-oat…`). Such
154
+ * a token cannot authenticate Claude Code as an API key, so when it is misfiled
155
+ * in `ANTHROPIC_API_KEY` it must be stripped from a claude sub-agent's env (the
156
+ * sub-agent then uses native subscription OAuth). A real API key (`sk-ant-api…`)
157
+ * returns false and is preserved.
158
+ */
159
+ export declare function isClaudeOAuthSubscriptionToken(value: string | undefined): boolean;
160
+ /**
161
+ * The key a forwarded var is assigned under. OS system vars are canonicalized to
162
+ * their uppercase `FORWARDED_SYSTEM_ENV` form because Bun on Windows reports them
163
+ * with native casing (`Path`, `Pathext`, `SystemRoot`, `ProgramFiles`, …); a
164
+ * child must not inherit two casings of the same var (the winner is undefined on
165
+ * Windows), and JS consumers that read `env.PATH` case-sensitively need the
166
+ * canonical key. Non-system keys (ELIZA_*, API keys, model overrides) keep their
167
+ * original casing.
168
+ */
169
+ export declare function canonicalForwardedEnvKey(key: string): string;
170
+ export declare function shouldForwardEnv(key: string): boolean;
171
+ /**
172
+ * The single forwarding decision buildEnv applies per host env var: the
173
+ * deny-list wins over the allowlist. A few keys (the privileged host secrets in
174
+ * DENY_ENV_PATTERNS) match shouldForwardEnv — e.g. via the broad ELIZA_ prefix —
175
+ * yet must never reach a coding sub-agent, so the deny check runs first.
176
+ */
177
+ export declare function isEnvForwardableToSubAgent(key: string): boolean;
178
+ /**
179
+ * The deny-list-filtered, allowlisted, casing-canonicalized subset of `source`
180
+ * to forward to a coding sub-agent. Pure (no process.env read) so it is unit
181
+ * testable: pass a synthetic env (e.g. `{ Path: "…" }`, the casing Bun reports
182
+ * on Windows) and assert the result is keyed by `PATH`. See
183
+ * `canonicalForwardedEnvKey` for why OS vars are canonicalized.
184
+ */
185
+ export declare function forwardableSubAgentEnv(source: Record<string, string | undefined>): Record<string, string>;
186
+ export interface NormalizedUsage {
187
+ provider: string;
188
+ model?: string;
189
+ inputTokens: number;
190
+ outputTokens: number;
191
+ reasoningTokens: number;
192
+ cacheTokens: number;
193
+ costUsd?: number;
194
+ state: "measured";
195
+ }
196
+ /**
197
+ * Normalize a provider usage payload — Anthropic Messages (`input_tokens`,
198
+ * `cache_read_input_tokens`, ...), OpenAI Chat/Responses (`prompt_tokens`,
199
+ * `completion_tokens_details.reasoning_tokens`, ...), or the claude-agent-sdk
200
+ * result `usage` — into the camelCase token shape the orchestrator consumer
201
+ * records. Merges field-by-field across the candidate records and returns
202
+ * undefined when no real token data is present, so a turn that reports nothing
203
+ * never persists a fabricated zero-usage row (it stays "unavailable").
204
+ */
205
+ export declare function extractUsageUpdate(...sources: Array<Record<string, unknown> | undefined>): NormalizedUsage | undefined;
206
+ /**
207
+ * Shared `readdir → filter → stat → unlink-if-older-than` scan used by the
208
+ * lock-file GC and the orphaned acpx stream GC. Returns the number of files
209
+ * unlinked. Missing directory is treated as zero work (best-effort cleanup,
210
+ * never throws to the caller).
211
+ *
212
+ * Exported for unit tests only — not part of the plugin's public API.
213
+ */
214
+ export declare function scanAndUnlinkOlderThan(dir: string, predicate: (name: string) => boolean, maxAgeMs: number): Promise<number>;
215
+ /**
216
+ * Variant that also reports how many matching files were left untouched
217
+ * (younger than the threshold) — `cleanReverseOrphanedAcpxFiles` logs both
218
+ * counts because lingering reverse-orphans are a useful signal even when
219
+ * nothing got deleted on this pass.
220
+ */
221
+ export declare function scanAndUnlinkOlderThanDetailed(dir: string, predicate: (name: string) => boolean, maxAgeMs: number): Promise<{
222
+ deleted: number;
223
+ lingering: number;
224
+ }>;
225
+ export {};
226
+ //# sourceMappingURL=acp-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acp-service.d.ts","sourceRoot":"","sources":["../../../../src/services/acp-service.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,aAAa,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAqB5D,OAAO,EACL,KAAK,gBAAgB,EAIrB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,WAAW,EAEjB,MAAM,YAAY,CAAC;AAGpB,KAAK,WAAW,GAAG,aAAa,GAAG;IACjC,MAAM,CAAC,EAAE,OAAO,CACd,MAAM,CACJ,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,EACnC,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAC1C,CACF,CAAC;IACF,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAClC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;CACzD,CAAC;AAuCF;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,GACf,MAAM,CAER;AA0DD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED,qBAAa,UAAW,SAAQ,OAAO;IACrC,MAAM,CAAC,WAAW,SAA4B;IAU9C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAyB;IAC9D,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAS;IAC7C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAK3C;IAEF,qBAAqB,SAC4D;IAEjF,QAAQ,CAAC,qBAAqB,EAAE,cAAc,CAAC;IAC/C,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IAExC,mBAA4B,OAAO,EAAE,WAAW,CAAC;IACjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAmB;IACjD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAY;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IAKrC,OAAO,CAAC,oBAAoB,CAAoC;IAChE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA8B;IAC/D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA0B;IACvD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAoC;IACpE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsC;IACpE,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAqB;IAC5D,OAAO,CAAC,QAAQ,CAAC,+BAA+B,CAAqB;IACrE,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAqB;IAC9D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA+B;IAK7D,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAkC;IACxE,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,gBAAgB,CAA6B;gBAEzC,OAAO,EAAE,aAAa,EAAE,IAAI,GAAE;QAAE,KAAK,CAAC,EAAE,YAAY,CAAA;KAAO;WAkC1D,KAAK,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC;IAQzD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAuCd,yBAAyB;IAsDjC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA6B3B,OAAO,CAAC,aAAa;YAIP,eAAe;YAiBf,6BAA6B;YAwB7B,cAAc;IAiF5B,OAAO,CAAC,oBAAoB;YAId,oBAAoB;YAWpB,mBAAmB;IAI3B,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;IAkNtD,UAAU,CACd,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,WAAgB,GACrB,OAAO,CAAC,YAAY,CAAC;IA2GlB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiC/C,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA2C9C,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY/C,YAAY,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAItC,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAK/D,qBAAqB,CACzB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAAC,IAAI,CAAC;IAcV,0BAA0B,IAAI,OAAO,CAAC;QAC1C,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IA6CI,2BAA2B,CAC/B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAqCnC,cAAc,CAAC,OAAO,EAAE,oBAAoB,GAAG,MAAM,IAAI;IAQzD,UAAU,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,IAAI;IAQ3C,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAuBxD,kBAAkB,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IASnD,oBAAoB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAOrE,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IAInC,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAItE,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKnD,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAIrC,uBAAuB;IAgBrC,iBAAiB,CACf,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAC/B,MAAM,IAAI;IAKP,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,SAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIvE,OAAO,CAAC,QAAQ;IAsBhB,OAAO,CAAC,oBAAoB;YAMd,kBAAkB;YA6ElB,gBAAgB;IAwI9B,OAAO,CAAC,kBAAkB;YA2BZ,gBAAgB;IAW9B,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,OAAO;IAqNf,OAAO,CAAC,WAAW;IAenB,OAAO,CAAC,cAAc;IAqTtB,gBAAgB,CACd,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,gBAAgB,EACvB,IAAI,EAAE,OAAO,GACZ,IAAI;YAcO,cAAc;YAMd,mBAAmB;IAUjC;;;;;;;;;;;;;OAaG;YACW,kBAAkB;YAgBlB,kBAAkB;IAShC,OAAO,CAAC,gBAAgB;IAQxB;;;;;OAKG;YACW,4BAA4B;IAqB1C,OAAO,CAAC,QAAQ;IAyGhB,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAOpC;IACF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAOxC;IACF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAOxC;IAEH;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAyBzB,yEAAyE;IACzE,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE;IAI5C,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,GAAG;IAWX,OAAO,CAAC,+BAA+B;IAOvC,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,wBAAwB;CAOjC;AAqDD;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,OAAO,CAET;AA2CD;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAwBrD;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAG/D;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GACzC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQxB;AAwBD,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,UAAU,CAAC;CACnB;AASD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,GACrD,eAAe,GAAG,SAAS,CAwE7B;AAyQD;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,EACpC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CAOjB;AAED;;;;;GAKG;AACH,wBAAsB,8BAA8B,CAClD,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,EACpC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CA6BjD"}