@elizaos/plugin-agent-orchestrator 2.0.0-beta.1 → 2.0.3-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -8
- package/README.md +102 -30
- package/dist/cjs/index.node.cjs +17539 -17068
- package/dist/cjs/index.node.js.map +71 -61
- package/dist/node/index.node.js +17545 -17070
- package/dist/node/index.node.js.map +71 -61
- package/dist/node/src/actions/common.d.ts +62 -4
- package/dist/node/src/actions/common.d.ts.map +1 -1
- 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 +9 -5
- package/dist/node/src/actions/sandbox-stub.d.ts.map +1 -1
- package/dist/node/src/actions/tasks.d.ts +22 -2
- package/dist/node/src/actions/tasks.d.ts.map +1 -1
- package/dist/node/src/api/agent-routes.d.ts +1 -1
- package/dist/node/src/api/agent-routes.d.ts.map +1 -1
- package/dist/node/src/api/bridge-routes.d.ts +57 -19
- package/dist/node/src/api/bridge-routes.d.ts.map +1 -1
- 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/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.map +1 -1
- package/dist/node/src/api/route-utils.d.ts +23 -7
- package/dist/node/src/api/route-utils.d.ts.map +1 -1
- package/dist/node/src/api/routes.d.ts +1 -2
- package/dist/node/src/api/routes.d.ts.map +1 -1
- 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 +33 -8
- package/dist/node/src/index.d.ts.map +1 -1
- package/dist/node/src/providers/action-examples.d.ts.map +1 -1
- package/dist/node/src/providers/active-sub-agents.d.ts.map +1 -1
- package/dist/node/src/providers/active-workspace-context.d.ts +2 -2
- package/dist/node/src/providers/active-workspace-context.d.ts.map +1 -1
- package/dist/node/src/providers/available-agents.d.ts.map +1 -1
- 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 +21 -1
- package/dist/node/src/register-routes.d.ts.map +1 -1
- 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 +169 -4
- package/dist/node/src/services/acp-service.d.ts.map +1 -1
- 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 +1 -1
- 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 +11 -7
- package/dist/node/src/services/config-env.d.ts.map +1 -1
- 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/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 +5 -3
- package/dist/node/src/services/parent-agent-broker.d.ts.map +1 -1
- 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/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 +1 -8
- package/dist/node/src/services/session-event-queue.d.ts.map +1 -1
- package/dist/node/src/services/session-store.d.ts +2 -1
- package/dist/node/src/services/session-store.d.ts.map +1 -1
- package/dist/node/src/services/skill-lifeops-context-broker.d.ts +1 -1
- package/dist/node/src/services/skill-lifeops-context-broker.d.ts.map +1 -1
- package/dist/node/src/services/skill-manifest.d.ts +1 -1
- package/dist/node/src/services/skill-recommender.d.ts +2 -0
- package/dist/node/src/services/skill-recommender.d.ts.map +1 -1
- 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 +2 -2
- package/dist/node/src/services/spawn-trajectory.d.ts.map +1 -1
- 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 +142 -2
- package/dist/node/src/services/sub-agent-router.d.ts.map +1 -1
- package/dist/node/src/services/task-agent-frameworks.d.ts +21 -8
- package/dist/node/src/services/task-agent-frameworks.d.ts.map +1 -1
- 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-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 +4 -8
- package/dist/node/src/services/trajectory-context.d.ts.map +1 -1
- package/dist/node/src/services/trajectory-feedback.d.ts +1 -1
- package/dist/node/src/services/types.d.ts +38 -2
- package/dist/node/src/services/types.d.ts.map +1 -1
- 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 +2 -2
- package/dist/node/src/services/workspace-git-ops.d.ts.map +1 -1
- package/dist/node/src/services/workspace-github.d.ts +7 -7
- package/dist/node/src/services/workspace-github.d.ts.map +1 -1
- package/dist/node/src/services/workspace-lifecycle.d.ts +2 -15
- package/dist/node/src/services/workspace-lifecycle.d.ts.map +1 -1
- package/dist/node/src/services/workspace-service.d.ts +6 -2
- package/dist/node/src/services/workspace-service.d.ts.map +1 -1
- package/dist/node/src/setup-routes.d.ts.map +1 -1
- package/docs/SUBAGENT_FLOW_AND_PARITY.md +138 -0
- package/docs/default-eliza-skills-and-agent-bridge-plan.md +9 -15
- package/docs/economics-goal-runbook.md +140 -0
- package/docs/multi-account-orchestration.md +76 -0
- package/docs/orchestrator-buildout-followups.md +124 -0
- package/docs/orchestrator-dashboard-task-widget-secrets-assessment.md +174 -0
- package/docs/orchestrator-dashboard-task-widget-secrets-design.md +301 -0
- package/docs/research/orchestrator-view-research-report.md +273 -0
- package/docs/sub-agent-routing.md +53 -23
- package/package.json +111 -25
- package/PROJECT.md +0 -119
- package/dist/browser/index.browser.js +0 -21051
- package/dist/browser/index.browser.js.map +0 -29
- package/dist/browser/index.d.ts +0 -2
- package/dist/node/index.browser.d.ts +0 -3
- package/dist/node/index.browser.d.ts.map +0 -1
- package/dist/node/src/actions/cancel-task.d.ts +0 -3
- package/dist/node/src/actions/cancel-task.d.ts.map +0 -1
- package/dist/node/src/actions/coding-task-handlers.d.ts +0 -69
- package/dist/node/src/actions/coding-task-handlers.d.ts.map +0 -1
- package/dist/node/src/actions/coding-task-helpers.d.ts +0 -35
- package/dist/node/src/actions/coding-task-helpers.d.ts.map +0 -1
- package/dist/node/src/actions/create-task.d.ts +0 -8
- package/dist/node/src/actions/create-task.d.ts.map +0 -1
- package/dist/node/src/actions/eval-metadata.d.ts +0 -11
- package/dist/node/src/actions/eval-metadata.d.ts.map +0 -1
- package/dist/node/src/actions/finalize-workspace.d.ts +0 -11
- package/dist/node/src/actions/finalize-workspace.d.ts.map +0 -1
- package/dist/node/src/actions/list-agents.d.ts +0 -4
- package/dist/node/src/actions/list-agents.d.ts.map +0 -1
- package/dist/node/src/actions/manage-issues.d.ts +0 -11
- package/dist/node/src/actions/manage-issues.d.ts.map +0 -1
- package/dist/node/src/actions/provision-workspace.d.ts +0 -11
- package/dist/node/src/actions/provision-workspace.d.ts.map +0 -1
- package/dist/node/src/actions/send-to-agent.d.ts +0 -4
- package/dist/node/src/actions/send-to-agent.d.ts.map +0 -1
- package/dist/node/src/actions/spawn-agent.d.ts +0 -8
- package/dist/node/src/actions/spawn-agent.d.ts.map +0 -1
- package/dist/node/src/actions/stop-agent.d.ts +0 -4
- package/dist/node/src/actions/stop-agent.d.ts.map +0 -1
- package/dist/node/src/actions/task-control.d.ts +0 -3
- package/dist/node/src/actions/task-control.d.ts.map +0 -1
- package/dist/node/src/actions/task-history.d.ts +0 -3
- package/dist/node/src/actions/task-history.d.ts.map +0 -1
- package/dist/node/src/actions/task-share.d.ts +0 -3
- package/dist/node/src/actions/task-share.d.ts.map +0 -1
- package/dist/node/src/actions/task-thread-target.d.ts +0 -11
- package/dist/node/src/actions/task-thread-target.d.ts.map +0 -1
- package/dist/node/src/api/coordinator-routes.d.ts +0 -22
- package/dist/node/src/api/coordinator-routes.d.ts.map +0 -1
- package/dist/node/src/api/hook-routes.d.ts +0 -18
- package/dist/node/src/api/hook-routes.d.ts.map +0 -1
- package/dist/node/src/routes/coding-agents-fallback-routes.d.ts +0 -19
- package/dist/node/src/routes/coding-agents-fallback-routes.d.ts.map +0 -1
- package/dist/node/src/services/acpx-subprocess.d.ts +0 -3
- package/dist/node/src/services/acpx-subprocess.d.ts.map +0 -1
- package/dist/node/src/services/agent-credentials.d.ts +0 -23
- package/dist/node/src/services/agent-credentials.d.ts.map +0 -1
- package/dist/node/src/services/agent-metrics.d.ts +0 -30
- package/dist/node/src/services/agent-metrics.d.ts.map +0 -1
- package/dist/node/src/services/agent-selection.d.ts +0 -53
- package/dist/node/src/services/agent-selection.d.ts.map +0 -1
- package/dist/node/src/services/claude-code-skill-installer.d.ts +0 -33
- package/dist/node/src/services/claude-code-skill-installer.d.ts.map +0 -1
- package/dist/node/src/services/coordinator-event-normalizer.d.ts +0 -50
- package/dist/node/src/services/coordinator-event-normalizer.d.ts.map +0 -1
- package/dist/node/src/services/custom-validator-runner.d.ts +0 -66
- package/dist/node/src/services/custom-validator-runner.d.ts.map +0 -1
- package/dist/node/src/services/debug-capture.d.ts +0 -38
- package/dist/node/src/services/debug-capture.d.ts.map +0 -1
- package/dist/node/src/services/pty-auto-response.d.ts +0 -30
- package/dist/node/src/services/pty-auto-response.d.ts.map +0 -1
- package/dist/node/src/services/pty-init.d.ts +0 -55
- package/dist/node/src/services/pty-init.d.ts.map +0 -1
- package/dist/node/src/services/pty-service.d.ts +0 -218
- package/dist/node/src/services/pty-service.d.ts.map +0 -1
- package/dist/node/src/services/pty-session-io.d.ts +0 -49
- package/dist/node/src/services/pty-session-io.d.ts.map +0 -1
- package/dist/node/src/services/pty-spawn.d.ts +0 -104
- package/dist/node/src/services/pty-spawn.d.ts.map +0 -1
- package/dist/node/src/services/pty-types.d.ts +0 -94
- package/dist/node/src/services/pty-types.d.ts.map +0 -1
- package/dist/node/src/services/skill-callback-bridge.d.ts +0 -78
- package/dist/node/src/services/skill-callback-bridge.d.ts.map +0 -1
- package/dist/node/src/services/skill-essentials.d.ts +0 -16
- package/dist/node/src/services/skill-essentials.d.ts.map +0 -1
- package/dist/node/src/services/stall-classifier.d.ts +0 -69
- package/dist/node/src/services/stall-classifier.d.ts.map +0 -1
- package/dist/node/src/services/structured-proof-bridge.d.ts +0 -99
- package/dist/node/src/services/structured-proof-bridge.d.ts.map +0 -1
- package/dist/node/src/services/swarm-coordinator-prompts.d.ts +0 -93
- package/dist/node/src/services/swarm-coordinator-prompts.d.ts.map +0 -1
- package/dist/node/src/services/swarm-coordinator.d.ts +0 -473
- package/dist/node/src/services/swarm-coordinator.d.ts.map +0 -1
- package/dist/node/src/services/swarm-decision-loop.d.ts +0 -69
- package/dist/node/src/services/swarm-decision-loop.d.ts.map +0 -1
- package/dist/node/src/services/swarm-event-triage.d.ts +0 -49
- package/dist/node/src/services/swarm-event-triage.d.ts.map +0 -1
- package/dist/node/src/services/swarm-history.d.ts +0 -27
- package/dist/node/src/services/swarm-history.d.ts.map +0 -1
- package/dist/node/src/services/swarm-idle-watchdog.d.ts +0 -22
- package/dist/node/src/services/swarm-idle-watchdog.d.ts.map +0 -1
- package/dist/node/src/services/task-acceptance.d.ts +0 -8
- package/dist/node/src/services/task-acceptance.d.ts.map +0 -1
- package/dist/node/src/services/task-agent-auth.d.ts +0 -69
- package/dist/node/src/services/task-agent-auth.d.ts.map +0 -1
- package/dist/node/src/services/task-kind.d.ts +0 -3
- package/dist/node/src/services/task-kind.d.ts.map +0 -1
- package/dist/node/src/services/task-registry.d.ts +0 -550
- package/dist/node/src/services/task-registry.d.ts.map +0 -1
- package/dist/node/src/services/task-share.d.ts +0 -18
- package/dist/node/src/services/task-share.d.ts.map +0 -1
- package/dist/node/src/services/task-validation.d.ts +0 -69
- package/dist/node/src/services/task-validation.d.ts.map +0 -1
- package/dist/node/src/services/task-verifier-runner.d.ts +0 -5
- package/dist/node/src/services/task-verifier-runner.d.ts.map +0 -1
- package/dist/node/vitest.config.d.ts +0 -3
- package/dist/node/vitest.config.d.ts.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
## 0.2.0 (unreleased)
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
ACP-based spawn, sub-agent routing, and workspace services into
|
|
6
6
|
a single package at `plugins/plugin-agent-orchestrator`. Internal
|
|
7
|
-
`@elizaos/plugin-acpx` callers were rewritten to the
|
|
7
|
+
`@elizaos/plugin-acpx` callers were rewritten to the package.
|
|
8
8
|
|
|
9
9
|
### Added
|
|
10
10
|
|
|
@@ -33,7 +33,7 @@ a single package at `plugins/plugin-agent-orchestrator`. Internal
|
|
|
33
33
|
instead of importing `createUniqueUuid` from `@elizaos/core`. This keeps
|
|
34
34
|
the router's import surface type-only.
|
|
35
35
|
- Browser build dropped: this package owns Node-only services
|
|
36
|
-
(`
|
|
36
|
+
(`AcpService`, `CodingWorkspaceService`, child_process spawn).
|
|
37
37
|
|
|
38
38
|
### Fixed
|
|
39
39
|
|
|
@@ -46,12 +46,10 @@ a single package at `plugins/plugin-agent-orchestrator`. Internal
|
|
|
46
46
|
`listSessions`/`getSession` for FileSessionStore + RuntimeDbSessionStore,
|
|
47
47
|
`enforceSessionLimit` excluding both `"error"` and `"errored"`.
|
|
48
48
|
|
|
49
|
-
###
|
|
49
|
+
### Removed
|
|
50
50
|
|
|
51
|
-
-
|
|
52
|
-
|
|
53
|
-
dormant for ACP-spawned sessions. Retiring them is a follow-up
|
|
54
|
-
cleanup; new work should use `AcpService` + `SubAgentRouter`.
|
|
51
|
+
- Removed the legacy swarm/terminal implementation family. The plugin now
|
|
52
|
+
has one task-agent transport: `AcpService` + `SubAgentRouter`.
|
|
55
53
|
|
|
56
54
|
## 0.1.0
|
|
57
55
|
|
package/README.md
CHANGED
|
@@ -4,27 +4,47 @@
|
|
|
4
4
|
[](https://github.com/elizaos/eliza/actions/workflows/ci.yml)
|
|
5
5
|
[](LICENSE)
|
|
6
6
|
|
|
7
|
-
The canonical orchestration plugin for
|
|
7
|
+
The canonical orchestration plugin for elizaOS task agents. Spawns local coding agents (elizaos, pi-agent, opencode, codex, claude) through Agent Client Protocol transports, routes their output back through the runtime so the main agent decides what to do, and bundles workspace lifecycle, GitHub PR integration, task share, and supporting services in a single package.
|
|
8
8
|
|
|
9
|
-
> Naming: this plugin is *not* the same thing as `@elizaos/plugin-acp`. That package is Shaw's ACP gateway client (IDE bridge over a remote ACP gateway). `@elizaos/plugin-agent-orchestrator` is the *task backend* that
|
|
9
|
+
> Naming: this plugin is *not* the same thing as `@elizaos/plugin-acp`. That package is Shaw's ACP gateway client (IDE bridge over a remote ACP gateway). `@elizaos/plugin-agent-orchestrator` is the *task backend* that runs coding agents as subprocesses on the same host as the runtime.
|
|
10
10
|
|
|
11
11
|
## What it does
|
|
12
12
|
|
|
13
13
|
The plugin combines three concerns:
|
|
14
14
|
|
|
15
|
-
1. **Spawn** coding agents via ACP. The
|
|
16
|
-
2. **Route** sub-agent terminal events (`task_complete`, `error`, `blocked`) back into the runtime as synthetic inbound messages addressed to the original `roomId`/`userId`/`messageId`. The main agent's normal action layer then decides whether to `REPLY` to the user, `SEND_TO_AGENT` to push the sub-agent further, or
|
|
15
|
+
1. **Spawn** coding agents via ACP. The default path embeds ACP JSON-RPC session management in this plugin and talks directly to an ACP-compatible agent process; the legacy path can still shell out to [`acpx`](https://github.com/openclaw/acpx) when `ELIZA_ACP_TRANSPORT=cli`.
|
|
16
|
+
2. **Route** sub-agent terminal events (`task_complete`, `error`, `blocked`) and swarm coordination events back into the runtime as synthetic inbound messages addressed to the task room, worktree room, or original `roomId`/`userId`/`messageId`. The main agent's normal action layer then decides whether to `REPLY` to the user, `SEND_TO_AGENT` to push the sub-agent further, ask the task creator a question, or coordinate with other agents. See [`docs/sub-agent-routing.md`](./docs/sub-agent-routing.md).
|
|
17
17
|
3. **Coordinate** workspace lifecycle (clone, branch, commit, push, PR open) and GitHub issue management for repo-hosted tasks.
|
|
18
18
|
|
|
19
19
|
## Installation
|
|
20
20
|
|
|
21
21
|
```bash
|
|
22
22
|
npm install @elizaos/plugin-agent-orchestrator
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Native TypeScript ACP is the default transport. Set the default coding agent with `ELIZA_ACP_DEFAULT_AGENT` (`elizaos`, `pi-agent`, or `opencode` are the primary supported defaults):
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
export ELIZA_ACP_TRANSPORT=native
|
|
29
|
+
export ELIZA_ACP_DEFAULT_AGENT=elizaos
|
|
30
|
+
export ELIZA_ELIZAOS_ACP_COMMAND="elizaos"
|
|
31
|
+
export ELIZA_PI_AGENT_ACP_COMMAND="pi-agent"
|
|
32
|
+
export ELIZA_CODEX_ACP_COMMAND="npx -y @zed-industries/codex-acp@0.14.0"
|
|
33
|
+
export ELIZA_CLAUDE_ACP_COMMAND="npx -y @agentclientprotocol/claude-agent-acp@0.34.0"
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Authenticate the underlying agent you plan to use before spawning sessions. Native Codex and Claude defaults use `npx`, so pin or replace those commands in production if you do not want runtime downloads.
|
|
37
|
+
|
|
38
|
+
The legacy command-wrapper path remains available for compatibility:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
23
41
|
npm install -g acpx@latest
|
|
24
|
-
|
|
42
|
+
export ELIZA_ACP_TRANSPORT=cli
|
|
25
43
|
```
|
|
26
44
|
|
|
27
|
-
|
|
45
|
+
Adapter packaging decision: this release does not vendor the Codex or Claude ACP adapter packages. Native transport is the default; Codex and Claude use pinned `npx` commands unless deployment config overrides them. OpenCode is the exception: the package prefers the bundled OpenCode shim when available, then falls back to `opencode acp`.
|
|
46
|
+
|
|
47
|
+
`coding-agent-adapters` is a runtime registry/API dependency used by this plugin's agent inventory and routes; it is not a bundled Codex or Claude ACP adapter executable.
|
|
28
48
|
|
|
29
49
|
## Quick start
|
|
30
50
|
|
|
@@ -38,17 +58,24 @@ export default {
|
|
|
38
58
|
|
|
39
59
|
## Action surface
|
|
40
60
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
|
44
|
-
|
|
|
45
|
-
| `
|
|
46
|
-
| `
|
|
47
|
-
| `
|
|
48
|
-
| `
|
|
49
|
-
| `
|
|
50
|
-
| `
|
|
51
|
-
| `
|
|
61
|
+
All actions are virtual sub-operations of the single `TASKS` parent action, promoted via `promoteSubactionsToActions` with the `TASKS_` prefix.
|
|
62
|
+
|
|
63
|
+
| Promoted action | Sub-operation | Purpose |
|
|
64
|
+
| --- | --- | --- |
|
|
65
|
+
| `TASKS_CREATE` | `create` | One-shot: spawn + prompt + return. Captures origin metadata for routing. |
|
|
66
|
+
| `TASKS_SPAWN_AGENT` | `spawn_agent` | Start a long-lived ACP coding-agent session. Returns active session info. |
|
|
67
|
+
| `TASKS_SEND` | `send` | Send a follow-up prompt to a running session (`SEND_TO_AGENT` simile). |
|
|
68
|
+
| `TASKS_STOP_AGENT` | `stop_agent` | Cooperatively cancel + close a session. |
|
|
69
|
+
| `TASKS_LIST_AGENTS` | `list_agents` | List active and persisted sessions. |
|
|
70
|
+
| `TASKS_CANCEL` | `cancel` | Cancel an in-flight task while preserving history. |
|
|
71
|
+
| `TASKS_HISTORY` | `history` | Retrieve past task sessions. |
|
|
72
|
+
| `TASKS_CONTROL` | `control` | Lifecycle control: pause/resume/stop/continue/archive/reopen. |
|
|
73
|
+
| `TASKS_SHARE` | `share` | Share a task session. |
|
|
74
|
+
| `TASKS_PROVISION_WORKSPACE` | `provision_workspace` | Clone repo, create git worktree for a task. |
|
|
75
|
+
| `TASKS_SUBMIT_WORKSPACE` | `submit_workspace` | Commit, push, open PR for a workspace. |
|
|
76
|
+
| `TASKS_MANAGE_ISSUES` | `manage_issues` | GitHub issue create/list/get/update/comment/close/reopen/add_labels. |
|
|
77
|
+
| `TASKS_ARCHIVE` | `archive` | Archive a completed coding task. |
|
|
78
|
+
| `TASKS_REOPEN` | `reopen` | Reopen an archived task. |
|
|
52
79
|
|
|
53
80
|
## Providers
|
|
54
81
|
|
|
@@ -56,13 +83,14 @@ export default {
|
|
|
56
83
|
- `ACTIVE_SUB_AGENTS` — cache-stable view of currently-routed sub-agent sessions; sorted by sessionId, structural fields only (no timestamps, no message excerpts), so the planner-visible block stays cached across status flips.
|
|
57
84
|
- `ACTIVE_WORKSPACE_CONTEXT` — live workspace/session state.
|
|
58
85
|
- `CODING_AGENT_EXAMPLES` — structured action call examples.
|
|
86
|
+
- `CODING_SESSION_CHANGES` — real git changeset for "show me the diff" queries.
|
|
59
87
|
|
|
60
88
|
## Services
|
|
61
89
|
|
|
62
|
-
- `AcpService` — ACP subprocess lifecycle,
|
|
63
|
-
- `
|
|
64
|
-
- `
|
|
65
|
-
- `CodingWorkspaceService` — git workspace lifecycle helpers.
|
|
90
|
+
- `AcpService` — ACP subprocess lifecycle, session state, event emission, and transport selection. Registers under `ACP_SUBPROCESS_SERVICE`.
|
|
91
|
+
- `OrchestratorTaskService` — durable task store, sub-agent lifecycle API, event bridge from ACP to task records. Registers under `ORCHESTRATOR_TASK_SERVICE`.
|
|
92
|
+
- `SubAgentRouter` — subscribes to `AcpService.onSessionEvent`, posts terminal-event synthetic memories to `runtime.messageService.handleMessage`. Registers under `ACPX_SUB_AGENT_ROUTER`. Per-session round-trip cap (`ACPX_SUB_AGENT_ROUND_TRIP_CAP`, default 32) force-stops runaway loops. Disable with `ACPX_SUB_AGENT_ROUTER_DISABLED=1`.
|
|
93
|
+
- `CodingWorkspaceService` — git workspace lifecycle helpers. Registers under `CODING_WORKSPACE_SERVICE`.
|
|
66
94
|
|
|
67
95
|
```ts
|
|
68
96
|
import { AcpService, SubAgentRouter } from "@elizaos/plugin-agent-orchestrator";
|
|
@@ -106,21 +134,34 @@ You usually don't subscribe directly — `SubAgentRouter` already does, and rout
|
|
|
106
134
|
|
|
107
135
|
## Configuration
|
|
108
136
|
|
|
109
|
-
All configuration is via environment variables.
|
|
137
|
+
All configuration is via environment variables. Use `ELIZA_ACP_TRANSPORT=native` for the embedded TypeScript ACP client and `ELIZA_ACP_TRANSPORT=cli` only when you deliberately want the existing `acpx` wrapper.
|
|
110
138
|
|
|
111
139
|
| Variable | Default | Purpose |
|
|
112
140
|
| --- | --- | --- |
|
|
113
|
-
| `
|
|
114
|
-
| `
|
|
141
|
+
| `ELIZA_ACP_TRANSPORT` | `native` | Transport mode. Accepted values include `native`/`direct` and `cli`/`acpx`. |
|
|
142
|
+
| `ELIZA_ACP_CLI` | `acpx` | ACPX executable name or absolute path for the CLI transport. |
|
|
143
|
+
| `ELIZA_ACP_DEFAULT_AGENT` | `elizaos` | Default agent type. Primary choices: `elizaos`, `pi-agent`, `opencode`. |
|
|
144
|
+
| `ELIZA_ELIZAOS_ACP_COMMAND` | `elizaos` | Native elizaOS ACP command. |
|
|
145
|
+
| `ELIZA_PI_AGENT_ACP_COMMAND` | `pi-agent` | Native Pi Agent ACP command. |
|
|
146
|
+
| `ELIZA_CODEX_ACP_COMMAND` | `npx -y @zed-industries/codex-acp@0.14.0` | Native Codex ACP command. |
|
|
147
|
+
| `ELIZA_CLAUDE_ACP_COMMAND` | `npx -y @agentclientprotocol/claude-agent-acp@0.34.0` | Native Claude ACP command. |
|
|
148
|
+
| `ELIZA_OPENCODE_ACP_COMMAND` | bundled shim or `opencode acp` | Native OpenCode ACP command override. |
|
|
115
149
|
| `ELIZA_ACP_DEFAULT_APPROVAL` | `autonomous` | Approval preset (`read-only`, `auto`, `permissive`, `autonomous`, `full-access`). |
|
|
116
|
-
| `ELIZA_ACP_PROMPT_TIMEOUT_MS` / `ACPX_DEFAULT_TIMEOUT_MS` | `
|
|
117
|
-
| `
|
|
118
|
-
| `ELIZA_ACP_STATE_DIR` | `~/.eliza/plugin-acpx` | Where to persist session state when no runtime DB. |
|
|
150
|
+
| `ELIZA_ACP_PROMPT_TIMEOUT_MS` / `ACPX_DEFAULT_TIMEOUT_MS` | `300000` (5m) | Per-prompt timeout. |
|
|
151
|
+
| `ELIZA_ACP_STATE_DIR` | `~/.eliza/plugin-acp` | Where to persist session state when no runtime DB. |
|
|
119
152
|
| `ACPX_DEFAULT_CWD` | runtime cwd | Base directory for spawned agent workdirs. |
|
|
120
|
-
| `ELIZA_ACP_LOG_LEVEL` | `info` | `debug` \| `info` \| `warn` \| `error`. |
|
|
121
153
|
| `ELIZA_ACP_MAX_SESSIONS` | `8` | Concurrent session cap. |
|
|
122
154
|
| `ACPX_SUB_AGENT_ROUTER_DISABLED` | unset | Set to `1` to keep the router service registered but unbound (test/staging). |
|
|
123
155
|
| `ACPX_SUB_AGENT_ROUND_TRIP_CAP` | `32` | Per-session inject cap before force-stop to prevent ping-pong loops. |
|
|
156
|
+
| `ACPX_PROGRESS_MODE` / `ELIZA_SUB_AGENT_PROGRESS_MODE` | `compact` | Sub-agent progress UX: `compact` delays and edits one status message, `threaded` preserves per-task threads, `silent` disables visible progress. |
|
|
157
|
+
| `ACPX_PROGRESS_DELAY_MS` / `ELIZA_SUB_AGENT_PROGRESS_DELAY_MS` | `15000` | Delay before the first visible progress message, so short tasks only show the final answer. |
|
|
158
|
+
| `ACPX_PROGRESS_REACTIONS` / `ELIZA_SUB_AGENT_PROGRESS_REACTIONS` | unset | Set to `1` to add progress reactions in `threaded` mode. |
|
|
159
|
+
|
|
160
|
+
### Native transport status
|
|
161
|
+
|
|
162
|
+
Native transport is an ACP JSON-RPC client. It currently handles `initialize`, `session/new`, `session/prompt`, cooperative `session/cancel`, `session/close`, file reads/writes scoped to the session workspace, permission requests, and basic terminal requests from the agent.
|
|
163
|
+
|
|
164
|
+
Use the CLI transport only when you need the existing `acpx` command wrapper semantics.
|
|
124
165
|
|
|
125
166
|
## Persistence
|
|
126
167
|
|
|
@@ -143,13 +184,44 @@ node tests/e2e/acp-codex-smoke.mjs
|
|
|
143
184
|
|
|
144
185
|
# Full router loop (vitest, gated):
|
|
145
186
|
RUN_LIVE_ACPX=1 bun run test
|
|
187
|
+
|
|
188
|
+
# Native ACP adapter smoke (gated, no-op unless enabled):
|
|
189
|
+
RUN_LIVE_NATIVE_ACP=1 node tests/e2e/live-native-acp-smoke.mjs
|
|
146
190
|
```
|
|
147
191
|
|
|
148
|
-
`acp-codex-smoke.mjs`
|
|
192
|
+
`acp-codex-smoke.mjs` exercises the legacy `acpx` path by spawning a real codex session, sending "what is 7 + 8?", and verifying `task_complete` fires with response `"15"`. The vitest live test (`__tests__/live/sub-agent-router.live.test.ts`) verifies the synthetic Memory routes back from a real subprocess into a test `messageService.handleMessage` with all routing keys intact. Both no-op (skip) when `acpx` isn't installed.
|
|
193
|
+
|
|
194
|
+
`live-native-acp-smoke.mjs` sets `ELIZA_ACP_TRANSPORT=native`, starts a native ACP adapter over stdio, sends a tiny math prompt, and verifies the prompt response ended with `stopReason: "end_turn"` and final text containing `15`. Optional providers require explicit commands:
|
|
195
|
+
|
|
196
|
+
```bash
|
|
197
|
+
RUN_LIVE_NATIVE_ACP=1 LIVE_NATIVE_ACP_AGENT=claude ELIZA_CLAUDE_ACP_COMMAND="npx -y @agentclientprotocol/claude-agent-acp@0.34.0" node tests/e2e/live-native-acp-smoke.mjs
|
|
198
|
+
RUN_LIVE_NATIVE_ACP=1 LIVE_NATIVE_ACP_AGENT=opencode ELIZA_OPENCODE_ACP_COMMAND="opencode acp" node tests/e2e/live-native-acp-smoke.mjs
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
The native smoke skips successfully when `RUN_LIVE_NATIVE_ACP` is unset, when an optional provider command is not configured, or when the adapter reports missing authentication/credentials. Use `RUN_LIVE_NATIVE_ACP=1 bun run test -- __tests__/live/native-acp-smoke.live.test.ts` to run the same smoke through Vitest.
|
|
202
|
+
|
|
203
|
+
Native transport is covered by unit tests under `__tests__/unit/acp-native-transport.test.ts` and by the gated live smoke above.
|
|
204
|
+
|
|
205
|
+
## Package scripts
|
|
206
|
+
|
|
207
|
+
| Script | Purpose |
|
|
208
|
+
| --- | --- |
|
|
209
|
+
| `bun run build` / `bun run build:ts` | Build Node ESM, CJS, and declaration outputs. |
|
|
210
|
+
| `bun run dev` | Rebuild in watch mode. |
|
|
211
|
+
| `bun run typecheck` | Run TypeScript without emitting files. |
|
|
212
|
+
| `bun run test` | Run the plugin vitest suite. |
|
|
213
|
+
| `bun run test:unit` | Run unit tests only. |
|
|
214
|
+
| `bun run test:e2e:manual` | Run the manual `acp-codex-smoke.mjs` smoke against installed/authenticated `acpx` + Codex. |
|
|
215
|
+
| `bun run test:watch` | Run the vitest suite in watch mode. |
|
|
216
|
+
| `bun run lint:check` | Run Biome checks without writing changes. |
|
|
217
|
+
| `bun run lint` | Run Biome checks with write/unsafe fixes. |
|
|
218
|
+
| `bun run format:check` | Check formatting. |
|
|
219
|
+
| `bun run format` | Write formatting changes. |
|
|
220
|
+
| `bun run clean` | Remove local build/cache outputs. |
|
|
149
221
|
|
|
150
222
|
## Status
|
|
151
223
|
|
|
152
|
-
`0.
|
|
224
|
+
`2.0.3-beta.14` — package. ACP subprocess sessions are the only task-agent spawn path. The native ACP client is the default (`ELIZA_ACP_TRANSPORT=native`).
|
|
153
225
|
|
|
154
226
|
## Contributing
|
|
155
227
|
|