@elizaos/plugin-agent-orchestrator 2.0.3-beta.2 → 2.0.3-beta.4
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.
- package/dist/cjs/index.d.ts +2 -0
- package/dist/cjs/index.node.cjs +20962 -0
- package/dist/cjs/index.node.js.map +82 -0
- package/dist/index.d.ts +2 -0
- package/dist/node/index.d.ts +2 -0
- package/dist/node/index.d.ts.map +1 -0
- package/dist/node/index.node.d.ts +4 -0
- package/dist/node/index.node.d.ts.map +1 -0
- package/dist/node/index.node.js +20946 -0
- package/dist/node/index.node.js.map +82 -0
- package/dist/node/src/actions/common.d.ts +114 -0
- package/dist/node/src/actions/common.d.ts.map +1 -0
- package/dist/node/src/actions/elizaos-capability.d.ts +3 -0
- package/dist/node/src/actions/elizaos-capability.d.ts.map +1 -0
- package/dist/node/src/actions/sandbox-stub.d.ts +25 -0
- package/dist/node/src/actions/sandbox-stub.d.ts.map +1 -0
- package/dist/node/src/actions/tasks.d.ts +108 -0
- package/dist/node/src/actions/tasks.d.ts.map +1 -0
- package/dist/node/src/api/agent-routes.d.ts +18 -0
- package/dist/node/src/api/agent-routes.d.ts.map +1 -0
- package/dist/node/src/api/bridge-routes.d.ts +70 -0
- package/dist/node/src/api/bridge-routes.d.ts.map +1 -0
- package/dist/node/src/api/credential-prompt.d.ts +38 -0
- package/dist/node/src/api/credential-prompt.d.ts.map +1 -0
- package/dist/node/src/api/issue-routes.d.ts +17 -0
- package/dist/node/src/api/issue-routes.d.ts.map +1 -0
- package/dist/node/src/api/orchestrator-routes.d.ts +25 -0
- package/dist/node/src/api/orchestrator-routes.d.ts.map +1 -0
- package/dist/node/src/api/parent-context-routes.d.ts +17 -0
- package/dist/node/src/api/parent-context-routes.d.ts.map +1 -0
- package/dist/node/src/api/route-utils.d.ts +34 -0
- package/dist/node/src/api/route-utils.d.ts.map +1 -0
- package/dist/node/src/api/routes.d.ts +22 -0
- package/dist/node/src/api/routes.d.ts.map +1 -0
- package/dist/node/src/api/workspace-routes.d.ts +17 -0
- package/dist/node/src/api/workspace-routes.d.ts.map +1 -0
- package/dist/node/src/evaluators/sub-agent-completion.d.ts +3 -0
- package/dist/node/src/evaluators/sub-agent-completion.d.ts.map +1 -0
- package/dist/node/src/index.d.ts +57 -0
- package/dist/node/src/index.d.ts.map +1 -0
- package/dist/node/src/providers/action-examples.d.ts +14 -0
- package/dist/node/src/providers/action-examples.d.ts.map +1 -0
- package/dist/node/src/providers/active-sub-agents.d.ts +15 -0
- package/dist/node/src/providers/active-sub-agents.d.ts.map +1 -0
- package/dist/node/src/providers/active-workspace-context.d.ts +13 -0
- package/dist/node/src/providers/active-workspace-context.d.ts.map +1 -0
- package/dist/node/src/providers/available-agents.d.ts +4 -0
- package/dist/node/src/providers/available-agents.d.ts.map +1 -0
- package/dist/node/src/providers/coding-session-changes.d.ts +17 -0
- package/dist/node/src/providers/coding-session-changes.d.ts.map +1 -0
- package/dist/node/src/register-routes.d.ts +31 -0
- package/dist/node/src/register-routes.d.ts.map +1 -0
- package/dist/node/src/services/acceptance-criteria.d.ts +84 -0
- package/dist/node/src/services/acceptance-criteria.d.ts.map +1 -0
- package/dist/node/src/services/acp-native-transport.d.ts +111 -0
- package/dist/node/src/services/acp-native-transport.d.ts.map +1 -0
- package/dist/node/src/services/acp-service.d.ts +226 -0
- package/dist/node/src/services/acp-service.d.ts.map +1 -0
- package/dist/node/src/services/active-session-forward.d.ts +31 -0
- package/dist/node/src/services/active-session-forward.d.ts.map +1 -0
- package/dist/node/src/services/agent-name-assignment.d.ts +50 -0
- package/dist/node/src/services/agent-name-assignment.d.ts.map +1 -0
- package/dist/node/src/services/ansi-utils.d.ts +64 -0
- package/dist/node/src/services/ansi-utils.d.ts.map +1 -0
- package/dist/node/src/services/app-deploy-guidance.d.ts +52 -0
- package/dist/node/src/services/app-deploy-guidance.d.ts.map +1 -0
- package/dist/node/src/services/audit.d.ts +18 -0
- package/dist/node/src/services/audit.d.ts.map +1 -0
- package/dist/node/src/services/coding-account-selection.d.ts +79 -0
- package/dist/node/src/services/coding-account-selection.d.ts.map +1 -0
- package/dist/node/src/services/completion-envelope.d.ts +63 -0
- package/dist/node/src/services/completion-envelope.d.ts.map +1 -0
- package/dist/node/src/services/completion-evidence.d.ts +144 -0
- package/dist/node/src/services/completion-evidence.d.ts.map +1 -0
- package/dist/node/src/services/config-env.d.ts +27 -0
- package/dist/node/src/services/config-env.d.ts.map +1 -0
- package/dist/node/src/services/goal-contract.d.ts +25 -0
- package/dist/node/src/services/goal-contract.d.ts.map +1 -0
- package/dist/node/src/services/goal-llm-verifier.d.ts +157 -0
- package/dist/node/src/services/goal-llm-verifier.d.ts.map +1 -0
- package/dist/node/src/services/goal-prompt.d.ts +82 -0
- package/dist/node/src/services/goal-prompt.d.ts.map +1 -0
- package/dist/node/src/services/independent-verifier.d.ts +58 -0
- package/dist/node/src/services/independent-verifier.d.ts.map +1 -0
- package/dist/node/src/services/interruption-decider.d.ts +43 -0
- package/dist/node/src/services/interruption-decider.d.ts.map +1 -0
- package/dist/node/src/services/json-model-output.d.ts +2 -0
- package/dist/node/src/services/json-model-output.d.ts.map +1 -0
- package/dist/node/src/services/opencode-config.d.ts +21 -0
- package/dist/node/src/services/opencode-config.d.ts.map +1 -0
- package/dist/node/src/services/orchestrator-device-support-matrix.d.ts +46 -0
- package/dist/node/src/services/orchestrator-device-support-matrix.d.ts.map +1 -0
- package/dist/node/src/services/orchestrator-task-mapper.d.ts +192 -0
- package/dist/node/src/services/orchestrator-task-mapper.d.ts.map +1 -0
- package/dist/node/src/services/orchestrator-task-service.d.ts +370 -0
- package/dist/node/src/services/orchestrator-task-service.d.ts.map +1 -0
- package/dist/node/src/services/orchestrator-task-store.d.ts +156 -0
- package/dist/node/src/services/orchestrator-task-store.d.ts.map +1 -0
- package/dist/node/src/services/orchestrator-task-types.d.ts +334 -0
- package/dist/node/src/services/orchestrator-task-types.d.ts.map +1 -0
- package/dist/node/src/services/parent-agent-broker.d.ts +23 -0
- package/dist/node/src/services/parent-agent-broker.d.ts.map +1 -0
- package/dist/node/src/services/parent-agent-dispatch.d.ts +62 -0
- package/dist/node/src/services/parent-agent-dispatch.d.ts.map +1 -0
- package/dist/node/src/services/repo-input.d.ts +16 -0
- package/dist/node/src/services/repo-input.d.ts.map +1 -0
- package/dist/node/src/services/screenshot-delivery.d.ts +38 -0
- package/dist/node/src/services/screenshot-delivery.d.ts.map +1 -0
- package/dist/node/src/services/session-event-queue.d.ts +18 -0
- package/dist/node/src/services/session-event-queue.d.ts.map +1 -0
- package/dist/node/src/services/session-store.d.ts +108 -0
- package/dist/node/src/services/session-store.d.ts.map +1 -0
- package/dist/node/src/services/skill-lifeops-context-broker.d.ts +20 -0
- package/dist/node/src/services/skill-lifeops-context-broker.d.ts.map +1 -0
- package/dist/node/src/services/skill-manifest.d.ts +48 -0
- package/dist/node/src/services/skill-manifest.d.ts.map +1 -0
- package/dist/node/src/services/skill-recommender.d.ts +53 -0
- package/dist/node/src/services/skill-recommender.d.ts.map +1 -0
- package/dist/node/src/services/smithers-task-executor.d.ts +73 -0
- package/dist/node/src/services/smithers-task-executor.d.ts.map +1 -0
- package/dist/node/src/services/smithers-task-integration.d.ts +52 -0
- package/dist/node/src/services/smithers-task-integration.d.ts.map +1 -0
- package/dist/node/src/services/smithers-task-runner.d.ts +27 -0
- package/dist/node/src/services/smithers-task-runner.d.ts.map +1 -0
- package/dist/node/src/services/smithers-task-types.d.ts +96 -0
- package/dist/node/src/services/smithers-task-types.d.ts.map +1 -0
- package/dist/node/src/services/spawn-trajectory.d.ts +23 -0
- package/dist/node/src/services/spawn-trajectory.d.ts.map +1 -0
- package/dist/node/src/services/spend-allowance.d.ts +143 -0
- package/dist/node/src/services/spend-allowance.d.ts.map +1 -0
- package/dist/node/src/services/ssrf-guard.d.ts +66 -0
- package/dist/node/src/services/ssrf-guard.d.ts.map +1 -0
- package/dist/node/src/services/sub-agent-identity.d.ts +27 -0
- package/dist/node/src/services/sub-agent-identity.d.ts.map +1 -0
- package/dist/node/src/services/sub-agent-inbox.d.ts +26 -0
- package/dist/node/src/services/sub-agent-inbox.d.ts.map +1 -0
- package/dist/node/src/services/sub-agent-router.d.ts +178 -0
- package/dist/node/src/services/sub-agent-router.d.ts.map +1 -0
- package/dist/node/src/services/task-agent-frameworks.d.ts +103 -0
- package/dist/node/src/services/task-agent-frameworks.d.ts.map +1 -0
- package/dist/node/src/services/task-agent-routing.d.ts +33 -0
- package/dist/node/src/services/task-agent-routing.d.ts.map +1 -0
- package/dist/node/src/services/task-policy.d.ts +17 -0
- package/dist/node/src/services/task-policy.d.ts.map +1 -0
- package/dist/node/src/services/task-supervisor-service.d.ts +65 -0
- package/dist/node/src/services/task-supervisor-service.d.ts.map +1 -0
- package/dist/node/src/services/task-watchdog-service.d.ts +50 -0
- package/dist/node/src/services/task-watchdog-service.d.ts.map +1 -0
- package/dist/node/src/services/terminal-capabilities.d.ts +48 -0
- package/dist/node/src/services/terminal-capabilities.d.ts.map +1 -0
- package/dist/node/src/services/trajectory-context.d.ts +69 -0
- package/dist/node/src/services/trajectory-context.d.ts.map +1 -0
- package/dist/node/src/services/trajectory-feedback.d.ts +53 -0
- package/dist/node/src/services/trajectory-feedback.d.ts.map +1 -0
- package/dist/node/src/services/types.d.ts +188 -0
- package/dist/node/src/services/types.d.ts.map +1 -0
- package/dist/node/src/services/view-deploy-guidance.d.ts +14 -0
- package/dist/node/src/services/view-deploy-guidance.d.ts.map +1 -0
- package/dist/node/src/services/workdir-validation.d.ts +10 -0
- package/dist/node/src/services/workdir-validation.d.ts.map +1 -0
- package/dist/node/src/services/workspace-diff.d.ts +50 -0
- package/dist/node/src/services/workspace-diff.d.ts.map +1 -0
- package/dist/node/src/services/workspace-git-ops.d.ts +28 -0
- package/dist/node/src/services/workspace-git-ops.d.ts.map +1 -0
- package/dist/node/src/services/workspace-github.d.ts +60 -0
- package/dist/node/src/services/workspace-github.d.ts.map +1 -0
- package/dist/node/src/services/workspace-lifecycle.d.ts +5 -0
- package/dist/node/src/services/workspace-lifecycle.d.ts.map +1 -0
- package/dist/node/src/services/workspace-service.d.ts +126 -0
- package/dist/node/src/services/workspace-service.d.ts.map +1 -0
- package/dist/node/src/services/workspace-types.d.ts +81 -0
- package/dist/node/src/services/workspace-types.d.ts.map +1 -0
- package/dist/node/src/setup-routes.d.ts +9 -0
- package/dist/node/src/setup-routes.d.ts.map +1 -0
- package/docs/multi-account-orchestration.md +1 -1
- 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 @@
|
|
|
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":"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"}
|