@elizaos/plugin-agent-orchestrator 2.0.0-alpha.8 → 2.0.0-beta.1
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 +62 -0
- package/LICENSE +21 -0
- package/PROJECT.md +119 -0
- package/README.md +160 -0
- package/dist/browser/index.browser.js +21051 -0
- package/dist/browser/index.browser.js.map +29 -0
- package/dist/browser/index.d.ts +2 -0
- package/dist/cjs/index.d.ts +2 -0
- package/dist/cjs/index.node.cjs +20491 -0
- package/dist/cjs/index.node.js.map +72 -0
- package/dist/index.d.ts +2 -21
- package/dist/node/index.browser.d.ts +3 -0
- package/dist/node/index.browser.d.ts.map +1 -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 +20471 -0
- package/dist/node/index.node.js.map +72 -0
- package/dist/node/src/actions/cancel-task.d.ts +3 -0
- package/dist/node/src/actions/cancel-task.d.ts.map +1 -0
- package/dist/node/src/actions/coding-task-handlers.d.ts +69 -0
- package/dist/node/src/actions/coding-task-handlers.d.ts.map +1 -0
- package/dist/node/src/actions/coding-task-helpers.d.ts +35 -0
- package/dist/node/src/actions/coding-task-helpers.d.ts.map +1 -0
- package/dist/node/src/actions/common.d.ts +56 -0
- package/dist/node/src/actions/common.d.ts.map +1 -0
- package/dist/node/src/actions/create-task.d.ts +8 -0
- package/dist/node/src/actions/create-task.d.ts.map +1 -0
- package/dist/node/src/actions/eval-metadata.d.ts +11 -0
- package/dist/node/src/actions/eval-metadata.d.ts.map +1 -0
- package/dist/node/src/actions/finalize-workspace.d.ts +11 -0
- package/dist/node/src/actions/finalize-workspace.d.ts.map +1 -0
- package/dist/node/src/actions/list-agents.d.ts +4 -0
- package/dist/node/src/actions/list-agents.d.ts.map +1 -0
- package/dist/node/src/actions/manage-issues.d.ts +11 -0
- package/dist/node/src/actions/manage-issues.d.ts.map +1 -0
- package/dist/node/src/actions/provision-workspace.d.ts +11 -0
- package/dist/node/src/actions/provision-workspace.d.ts.map +1 -0
- package/dist/node/src/actions/sandbox-stub.d.ts +21 -0
- package/dist/node/src/actions/sandbox-stub.d.ts.map +1 -0
- package/dist/node/src/actions/send-to-agent.d.ts +4 -0
- package/dist/node/src/actions/send-to-agent.d.ts.map +1 -0
- package/dist/node/src/actions/spawn-agent.d.ts +8 -0
- package/dist/node/src/actions/spawn-agent.d.ts.map +1 -0
- package/dist/node/src/actions/stop-agent.d.ts +4 -0
- package/dist/node/src/actions/stop-agent.d.ts.map +1 -0
- package/dist/node/src/actions/task-control.d.ts +3 -0
- package/dist/node/src/actions/task-control.d.ts.map +1 -0
- package/dist/node/src/actions/task-history.d.ts +3 -0
- package/dist/node/src/actions/task-history.d.ts.map +1 -0
- package/dist/node/src/actions/task-share.d.ts +3 -0
- package/dist/node/src/actions/task-share.d.ts.map +1 -0
- package/dist/node/src/actions/task-thread-target.d.ts +11 -0
- package/dist/node/src/actions/task-thread-target.d.ts.map +1 -0
- package/dist/node/src/actions/tasks.d.ts +88 -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 +32 -0
- package/dist/node/src/api/bridge-routes.d.ts.map +1 -0
- package/dist/node/src/api/coordinator-routes.d.ts +22 -0
- package/dist/node/src/api/coordinator-routes.d.ts.map +1 -0
- package/dist/node/src/api/hook-routes.d.ts +18 -0
- package/dist/node/src/api/hook-routes.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/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 +18 -0
- package/dist/node/src/api/route-utils.d.ts.map +1 -0
- package/dist/node/src/api/routes.d.ts +23 -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/index.d.ts +32 -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/register-routes.d.ts +11 -0
- package/dist/node/src/register-routes.d.ts.map +1 -0
- package/dist/node/src/routes/coding-agents-fallback-routes.d.ts +19 -0
- package/dist/node/src/routes/coding-agents-fallback-routes.d.ts.map +1 -0
- package/dist/node/src/services/acp-service.d.ts +61 -0
- package/dist/node/src/services/acp-service.d.ts.map +1 -0
- package/dist/node/src/services/acpx-subprocess.d.ts +3 -0
- package/dist/node/src/services/acpx-subprocess.d.ts.map +1 -0
- package/dist/node/src/services/agent-credentials.d.ts +23 -0
- package/dist/node/src/services/agent-credentials.d.ts.map +1 -0
- package/dist/node/src/services/agent-metrics.d.ts +30 -0
- package/dist/node/src/services/agent-metrics.d.ts.map +1 -0
- package/dist/node/src/services/agent-selection.d.ts +53 -0
- package/dist/node/src/services/agent-selection.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/claude-code-skill-installer.d.ts +33 -0
- package/dist/node/src/services/claude-code-skill-installer.d.ts.map +1 -0
- package/dist/node/src/services/config-env.d.ts +23 -0
- package/dist/node/src/services/config-env.d.ts.map +1 -0
- package/dist/node/src/services/coordinator-event-normalizer.d.ts +50 -0
- package/dist/node/src/services/coordinator-event-normalizer.d.ts.map +1 -0
- package/dist/node/src/services/custom-validator-runner.d.ts +66 -0
- package/dist/node/src/services/custom-validator-runner.d.ts.map +1 -0
- package/dist/node/src/services/debug-capture.d.ts +38 -0
- package/dist/node/src/services/debug-capture.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/parent-agent-broker.d.ts +21 -0
- package/dist/node/src/services/parent-agent-broker.d.ts.map +1 -0
- package/dist/node/src/services/pty-auto-response.d.ts +30 -0
- package/dist/node/src/services/pty-auto-response.d.ts.map +1 -0
- package/dist/node/src/services/pty-init.d.ts +55 -0
- package/dist/node/src/services/pty-init.d.ts.map +1 -0
- package/dist/node/src/services/pty-service.d.ts +218 -0
- package/dist/node/src/services/pty-service.d.ts.map +1 -0
- package/dist/node/src/services/pty-session-io.d.ts +49 -0
- package/dist/node/src/services/pty-session-io.d.ts.map +1 -0
- package/dist/node/src/services/pty-spawn.d.ts +104 -0
- package/dist/node/src/services/pty-spawn.d.ts.map +1 -0
- package/dist/node/src/services/pty-types.d.ts +94 -0
- package/dist/node/src/services/pty-types.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/session-event-queue.d.ts +25 -0
- package/dist/node/src/services/session-event-queue.d.ts.map +1 -0
- package/dist/node/src/services/session-store.d.ts +107 -0
- package/dist/node/src/services/session-store.d.ts.map +1 -0
- package/dist/node/src/services/skill-callback-bridge.d.ts +78 -0
- package/dist/node/src/services/skill-callback-bridge.d.ts.map +1 -0
- package/dist/node/src/services/skill-essentials.d.ts +16 -0
- package/dist/node/src/services/skill-essentials.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 +51 -0
- package/dist/node/src/services/skill-recommender.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/stall-classifier.d.ts +69 -0
- package/dist/node/src/services/stall-classifier.d.ts.map +1 -0
- package/dist/node/src/services/structured-proof-bridge.d.ts +99 -0
- package/dist/node/src/services/structured-proof-bridge.d.ts.map +1 -0
- package/dist/node/src/services/sub-agent-router.d.ts +38 -0
- package/dist/node/src/services/sub-agent-router.d.ts.map +1 -0
- package/dist/node/src/services/swarm-coordinator-prompts.d.ts +93 -0
- package/dist/node/src/services/swarm-coordinator-prompts.d.ts.map +1 -0
- package/dist/node/src/services/swarm-coordinator.d.ts +473 -0
- package/dist/node/src/services/swarm-coordinator.d.ts.map +1 -0
- package/dist/node/src/services/swarm-decision-loop.d.ts +69 -0
- package/dist/node/src/services/swarm-decision-loop.d.ts.map +1 -0
- package/dist/node/src/services/swarm-event-triage.d.ts +49 -0
- package/dist/node/src/services/swarm-event-triage.d.ts.map +1 -0
- package/dist/node/src/services/swarm-history.d.ts +27 -0
- package/dist/node/src/services/swarm-history.d.ts.map +1 -0
- package/dist/node/src/services/swarm-idle-watchdog.d.ts +22 -0
- package/dist/node/src/services/swarm-idle-watchdog.d.ts.map +1 -0
- package/dist/node/src/services/task-acceptance.d.ts +8 -0
- package/dist/node/src/services/task-acceptance.d.ts.map +1 -0
- package/dist/node/src/services/task-agent-auth.d.ts +69 -0
- package/dist/node/src/services/task-agent-auth.d.ts.map +1 -0
- package/dist/node/src/services/task-agent-frameworks.d.ts +90 -0
- package/dist/node/src/services/task-agent-frameworks.d.ts.map +1 -0
- package/dist/node/src/services/task-kind.d.ts +3 -0
- package/dist/node/src/services/task-kind.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-registry.d.ts +550 -0
- package/dist/node/src/services/task-registry.d.ts.map +1 -0
- package/dist/node/src/services/task-share.d.ts +18 -0
- package/dist/node/src/services/task-share.d.ts.map +1 -0
- package/dist/node/src/services/task-validation.d.ts +69 -0
- package/dist/node/src/services/task-validation.d.ts.map +1 -0
- package/dist/node/src/services/task-verifier-runner.d.ts +5 -0
- package/dist/node/src/services/task-verifier-runner.d.ts.map +1 -0
- package/dist/node/src/services/trajectory-context.d.ts +73 -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 +152 -0
- package/dist/node/src/services/types.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 +18 -0
- package/dist/node/src/services/workspace-lifecycle.d.ts.map +1 -0
- package/dist/node/src/services/workspace-service.d.ts +122 -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/dist/node/vitest.config.d.ts +3 -0
- package/dist/node/vitest.config.d.ts.map +1 -0
- package/docs/default-eliza-skills-and-agent-bridge-plan.md +231 -0
- package/docs/sub-agent-routing.md +197 -0
- package/package.json +113 -37
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -21110
- package/dist/index.js.map +0 -109
- package/dist/src/actions/messaging.d.ts +0 -24
- package/dist/src/actions/messaging.d.ts.map +0 -1
- package/dist/src/actions/peek-subagent.d.ts +0 -3
- package/dist/src/actions/peek-subagent.d.ts.map +0 -1
- package/dist/src/actions/subagent-management.d.ts +0 -7
- package/dist/src/actions/subagent-management.d.ts.map +0 -1
- package/dist/src/actions/task-management.d.ts +0 -9
- package/dist/src/actions/task-management.d.ts.map +0 -1
- package/dist/src/config.d.ts +0 -4
- package/dist/src/config.d.ts.map +0 -1
- package/dist/src/providers/orchestrator-config.d.ts +0 -80
- package/dist/src/providers/orchestrator-config.d.ts.map +0 -1
- package/dist/src/providers/task-context.d.ts +0 -3
- package/dist/src/providers/task-context.d.ts.map +0 -1
- package/dist/src/services/agent-orchestrator-service.d.ts +0 -59
- package/dist/src/services/agent-orchestrator-service.d.ts.map +0 -1
- package/dist/src/services/messaging-service.d.ts +0 -111
- package/dist/src/services/messaging-service.d.ts.map +0 -1
- package/dist/src/services/sandbox-service.d.ts +0 -103
- package/dist/src/services/sandbox-service.d.ts.map +0 -1
- package/dist/src/services/subagent-service.d.ts +0 -140
- package/dist/src/services/subagent-service.d.ts.map +0 -1
- package/dist/src/sub-agents/adapter.d.ts +0 -13
- package/dist/src/sub-agents/adapter.d.ts.map +0 -1
- package/dist/src/sub-agents/claude-agent-sdk-sub-agent.d.ts +0 -18
- package/dist/src/sub-agents/claude-agent-sdk-sub-agent.d.ts.map +0 -1
- package/dist/src/sub-agents/codex-sdk-sub-agent.d.ts +0 -18
- package/dist/src/sub-agents/codex-sdk-sub-agent.d.ts.map +0 -1
- package/dist/src/sub-agents/eliza-sub-agent.d.ts +0 -27
- package/dist/src/sub-agents/eliza-sub-agent.d.ts.map +0 -1
- package/dist/src/sub-agents/elizaos-native-sub-agent.d.ts +0 -61
- package/dist/src/sub-agents/elizaos-native-sub-agent.d.ts.map +0 -1
- package/dist/src/sub-agents/index.d.ts +0 -10
- package/dist/src/sub-agents/index.d.ts.map +0 -1
- package/dist/src/sub-agents/opencode-sub-agent.d.ts +0 -44
- package/dist/src/sub-agents/opencode-sub-agent.d.ts.map +0 -1
- package/dist/src/sub-agents/registry.d.ts +0 -3
- package/dist/src/sub-agents/registry.d.ts.map +0 -1
- package/dist/src/sub-agents/sweagent-sub-agent.d.ts +0 -19
- package/dist/src/sub-agents/sweagent-sub-agent.d.ts.map +0 -1
- package/dist/src/sub-agents/tools.d.ts +0 -15
- package/dist/src/sub-agents/tools.d.ts.map +0 -1
- package/dist/src/sub-agents/types.d.ts +0 -170
- package/dist/src/sub-agents/types.d.ts.map +0 -1
- package/dist/src/types/index.d.ts +0 -12
- package/dist/src/types/index.d.ts.map +0 -1
- package/dist/src/types/messaging.d.ts +0 -202
- package/dist/src/types/messaging.d.ts.map +0 -1
- package/dist/src/types/sandbox.d.ts +0 -228
- package/dist/src/types/sandbox.d.ts.map +0 -1
- package/dist/src/types/subagent.d.ts +0 -232
- package/dist/src/types/subagent.d.ts.map +0 -1
- package/dist/src/types.d.ts +0 -138
- package/dist/src/types.d.ts.map +0 -1
- package/dist/src/utils/index.d.ts +0 -7
- package/dist/src/utils/index.d.ts.map +0 -1
- package/dist/src/utils/session.d.ts +0 -184
- package/dist/src/utils/session.d.ts.map +0 -1
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { SessionEventName } from "./pty-types.js";
|
|
2
|
+
export type CoordinatorEventSource = "pty_manager" | "adapter_fast_path" | "session_ready_forward" | "hook" | "unknown";
|
|
3
|
+
export interface CoordinatorSessionSnapshot {
|
|
4
|
+
id: string;
|
|
5
|
+
type?: string;
|
|
6
|
+
status?: string;
|
|
7
|
+
}
|
|
8
|
+
interface CoordinatorEventBase<TName extends SessionEventName> {
|
|
9
|
+
sessionId: string;
|
|
10
|
+
name: TName;
|
|
11
|
+
source: CoordinatorEventSource;
|
|
12
|
+
timestamp: number;
|
|
13
|
+
rawData: unknown;
|
|
14
|
+
session?: CoordinatorSessionSnapshot;
|
|
15
|
+
}
|
|
16
|
+
export interface CoordinatorReadyEvent extends CoordinatorEventBase<"ready"> {
|
|
17
|
+
}
|
|
18
|
+
export interface CoordinatorBlockedEvent extends CoordinatorEventBase<"blocked"> {
|
|
19
|
+
promptText: string;
|
|
20
|
+
promptType?: string;
|
|
21
|
+
promptInfo?: Record<string, unknown>;
|
|
22
|
+
autoResponded: boolean;
|
|
23
|
+
}
|
|
24
|
+
export interface CoordinatorLoginRequiredEvent extends CoordinatorEventBase<"login_required"> {
|
|
25
|
+
instructions?: string;
|
|
26
|
+
url?: string;
|
|
27
|
+
deviceCode?: string;
|
|
28
|
+
method?: string;
|
|
29
|
+
promptSnippet?: string;
|
|
30
|
+
}
|
|
31
|
+
export interface CoordinatorTaskCompleteEvent extends CoordinatorEventBase<"task_complete"> {
|
|
32
|
+
response: string;
|
|
33
|
+
}
|
|
34
|
+
export interface CoordinatorToolRunningEvent extends CoordinatorEventBase<"tool_running"> {
|
|
35
|
+
toolName?: string;
|
|
36
|
+
description?: string;
|
|
37
|
+
}
|
|
38
|
+
export interface CoordinatorStoppedEvent extends CoordinatorEventBase<"stopped"> {
|
|
39
|
+
reason?: string;
|
|
40
|
+
}
|
|
41
|
+
export interface CoordinatorErrorEvent extends CoordinatorEventBase<"error"> {
|
|
42
|
+
message: string;
|
|
43
|
+
}
|
|
44
|
+
export interface CoordinatorMessageEvent extends CoordinatorEventBase<"message"> {
|
|
45
|
+
content?: string;
|
|
46
|
+
}
|
|
47
|
+
export type CoordinatorNormalizedEvent = CoordinatorReadyEvent | CoordinatorBlockedEvent | CoordinatorLoginRequiredEvent | CoordinatorTaskCompleteEvent | CoordinatorToolRunningEvent | CoordinatorStoppedEvent | CoordinatorErrorEvent | CoordinatorMessageEvent;
|
|
48
|
+
export declare function normalizeCoordinatorEvent(sessionId: string, event: string, data: unknown): CoordinatorNormalizedEvent | null;
|
|
49
|
+
export {};
|
|
50
|
+
//# sourceMappingURL=coordinator-event-normalizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coordinator-event-normalizer.d.ts","sourceRoot":"","sources":["../../../../src/services/coordinator-event-normalizer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,MAAM,MAAM,sBAAsB,GAC9B,aAAa,GACb,mBAAmB,GACnB,uBAAuB,GACvB,MAAM,GACN,SAAS,CAAC;AAEd,MAAM,WAAW,0BAA0B;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,oBAAoB,CAAC,KAAK,SAAS,gBAAgB;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,KAAK,CAAC;IACZ,MAAM,EAAE,sBAAsB,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,0BAA0B,CAAC;CACtC;AAED,MAAM,WAAW,qBAAsB,SAAQ,oBAAoB,CAAC,OAAO,CAAC;CAAG;AAE/E,MAAM,WAAW,uBACf,SAAQ,oBAAoB,CAAC,SAAS,CAAC;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,6BACf,SAAQ,oBAAoB,CAAC,gBAAgB,CAAC;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,4BACf,SAAQ,oBAAoB,CAAC,eAAe,CAAC;IAC7C,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,2BACf,SAAQ,oBAAoB,CAAC,cAAc,CAAC;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,uBACf,SAAQ,oBAAoB,CAAC,SAAS,CAAC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,qBAAsB,SAAQ,oBAAoB,CAAC,OAAO,CAAC;IAC1E,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,uBACf,SAAQ,oBAAoB,CAAC,SAAS,CAAC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,0BAA0B,GAClC,qBAAqB,GACrB,uBAAuB,GACvB,6BAA6B,GAC7B,4BAA4B,GAC5B,2BAA2B,GAC3B,uBAAuB,GACvB,qBAAqB,GACrB,uBAAuB,CAAC;AAmC5B,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,OAAO,GACZ,0BAA0B,GAAG,IAAI,CAiKnC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Custom validator runner — sibling to `task-validation.ts`.
|
|
3
|
+
*
|
|
4
|
+
* The default validator (`validateTaskCompletion`) runs an LLM-based pass
|
|
5
|
+
* over the agent's turn output and workspace evidence. That works for the
|
|
6
|
+
* generic case, but specialized task types (APP.create, PLUGIN.create, etc.)
|
|
7
|
+
* own their own verification surface — disk layout, manifest shape, lint
|
|
8
|
+
* results, test exit codes — and the orchestrator should defer to that
|
|
9
|
+
* verification rather than reasoning over it through an LLM.
|
|
10
|
+
*
|
|
11
|
+
* `runCustomValidator` resolves a runtime service by name, calls the named
|
|
12
|
+
* method with the supplied params (plus the structured-proof claim, if any),
|
|
13
|
+
* and returns a normalized `{ verdict, retryablePromptForChild }` result the
|
|
14
|
+
* decision loop can act on. Every failure path returns `verdict: "fail"`
|
|
15
|
+
* with a concrete `retryablePromptForChild` so the loop never crashes on a
|
|
16
|
+
* misconfigured spec.
|
|
17
|
+
*
|
|
18
|
+
* @module services/custom-validator-runner
|
|
19
|
+
*/
|
|
20
|
+
import type { IAgentRuntime } from "@elizaos/core";
|
|
21
|
+
export interface CustomValidatorSpec {
|
|
22
|
+
/** Runtime service name passed to `runtime.getService(...)`. */
|
|
23
|
+
service: string;
|
|
24
|
+
/** Method name to invoke on the resolved service. */
|
|
25
|
+
method: string;
|
|
26
|
+
/**
|
|
27
|
+
* Free-form params object the orchestrator passes through to the
|
|
28
|
+
* validator. Validators are responsible for typing this on their side.
|
|
29
|
+
*/
|
|
30
|
+
params: Record<string, unknown>;
|
|
31
|
+
}
|
|
32
|
+
export type CustomValidatorVerdict = "pass" | "fail";
|
|
33
|
+
export interface CustomValidatorResult {
|
|
34
|
+
verdict: CustomValidatorVerdict;
|
|
35
|
+
/**
|
|
36
|
+
* Concrete next-turn prompt the orchestrator will send back to the child
|
|
37
|
+
* when the verdict is "fail". When the verdict is "pass" this field is
|
|
38
|
+
* still populated for trace/log purposes but the orchestrator ignores it.
|
|
39
|
+
*/
|
|
40
|
+
retryablePromptForChild: string;
|
|
41
|
+
/**
|
|
42
|
+
* Pass-through structured details from the validator service. Persisted
|
|
43
|
+
* on the validation report and surfaced on escalation events.
|
|
44
|
+
*/
|
|
45
|
+
details?: unknown;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Resolve `ELIZA_APP_VERIFICATION_MAX_RETRIES`. Per-task `maxRetries`
|
|
49
|
+
* override wins; otherwise the env var; otherwise the documented default
|
|
50
|
+
* of 3. A negative value falls through to the next source.
|
|
51
|
+
*/
|
|
52
|
+
export declare function getMaxRetries(taskOverride?: number): number;
|
|
53
|
+
/**
|
|
54
|
+
* Invoke a custom validator service+method and normalize the result. Never
|
|
55
|
+
* throws — every failure path collapses into `verdict: "fail"` with a
|
|
56
|
+
* descriptive `retryablePromptForChild` so the decision loop can stay on
|
|
57
|
+
* the happy path.
|
|
58
|
+
*
|
|
59
|
+
* @param runtime Eliza runtime for `getService`.
|
|
60
|
+
* @param spec `{ service, method, params }` from the task metadata.
|
|
61
|
+
* @param structuredProof Optional claim recorded by the structured-proof
|
|
62
|
+
* bridge. Validators that want to cross-check claims
|
|
63
|
+
* against disk receive this under `params.structuredProof`.
|
|
64
|
+
*/
|
|
65
|
+
export declare function runCustomValidator(runtime: IAgentRuntime, spec: CustomValidatorSpec, structuredProof?: unknown): Promise<CustomValidatorResult>;
|
|
66
|
+
//# sourceMappingURL=custom-validator-runner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-validator-runner.d.ts","sourceRoot":"","sources":["../../../../src/services/custom-validator-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,MAAM,WAAW,mBAAmB;IAClC,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,MAAM,CAAC;AAErD,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,sBAAsB,CAAC;IAChC;;;;OAIG;IACH,uBAAuB,EAAE,MAAM,CAAC;IAChC;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAM3D;AA0CD;;;;;;;;;;;GAWG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,mBAAmB,EACzB,eAAe,CAAC,EAAE,OAAO,GACxB,OAAO,CAAC,qBAAqB,CAAC,CA4DhC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Debug PTY Capture — optional session recording for offline analysis.
|
|
3
|
+
*
|
|
4
|
+
* Activated by setting `PARALLAX_DEBUG_CAPTURE=1`. When enabled, all PTY
|
|
5
|
+
* output and stdin are recorded per-session using `pty-state-capture`.
|
|
6
|
+
* Capture files persist in `.parallax/pty-captures/<sessionId>/` after
|
|
7
|
+
* the agent session is killed, enabling post-mortem analysis of state
|
|
8
|
+
* transitions, stall classifications, and coordinator timing.
|
|
9
|
+
*
|
|
10
|
+
* The `pty-state-capture` package is dynamically imported — if not
|
|
11
|
+
* installed, capture is silently disabled. This means it can stay out
|
|
12
|
+
* of production dependencies entirely.
|
|
13
|
+
*
|
|
14
|
+
* @module services/debug-capture
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Returns true if debug capture is enabled via environment variable.
|
|
18
|
+
*/
|
|
19
|
+
export declare function isDebugCaptureEnabled(): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Open a capture session for a PTY session. Call this when spawning.
|
|
22
|
+
*/
|
|
23
|
+
export declare function captureSessionOpen(sessionId: string, agentType: string): Promise<void>;
|
|
24
|
+
/**
|
|
25
|
+
* Feed PTY output data to the capture. Call this on every data chunk.
|
|
26
|
+
*/
|
|
27
|
+
export declare function captureFeed(sessionId: string, chunk: string, direction?: "stdout" | "stderr" | "stdin"): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* Record a lifecycle event (session_ready, session_stopped, etc.).
|
|
30
|
+
*/
|
|
31
|
+
export declare function captureLifecycle(sessionId: string, event: "session_started" | "session_ready" | "session_stopped" | "session_error", detail?: string): Promise<void>;
|
|
32
|
+
/**
|
|
33
|
+
* Get a snapshot of a capture session's current state.
|
|
34
|
+
*/
|
|
35
|
+
export declare function captureSnapshot(sessionId: string): unknown | null;
|
|
36
|
+
/** @internal Reset module state for testing only. */
|
|
37
|
+
export declare function _resetForTesting(): void;
|
|
38
|
+
//# sourceMappingURL=debug-capture.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug-capture.d.ts","sourceRoot":"","sources":["../../../../src/services/debug-capture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAsBH;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,CAE/C;AAmCD;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAQf;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,SAAS,GAAE,QAAQ,GAAG,QAAQ,GAAG,OAAkB,GAClD,OAAO,CAAC,IAAI,CAAC,CAOf;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,MAAM,EACjB,KAAK,EACD,iBAAiB,GACjB,eAAe,GACf,iBAAiB,GACjB,eAAe,EACnB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAOf;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAQjE;AAED,qDAAqD;AACrD,wBAAgB,gBAAgB,IAAI,IAAI,CAGvC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-model-output.d.ts","sourceRoot":"","sources":["../../../../src/services/json-model-output.ts"],"names":[],"mappings":"AAAA,wBAAgB,uBAAuB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjE,GAAG,EAAE,MAAM,GACV,CAAC,GAAG,IAAI,CAgBV"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { IAgentRuntime } from "@elizaos/core";
|
|
2
|
+
import type { SessionInfo } from "./pty-types.js";
|
|
3
|
+
export declare const PARENT_AGENT_BROKER_SLUG = "parent-agent";
|
|
4
|
+
export declare const PARENT_AGENT_BROKER_MANIFEST_ENTRY: {
|
|
5
|
+
readonly slug: "parent-agent";
|
|
6
|
+
readonly name: "Parent Eliza Agent";
|
|
7
|
+
readonly description: "Task-scoped bridge for asking the running parent Eliza agent to use its loaded capabilities, actions, providers, connectors, and confirmation flow.";
|
|
8
|
+
readonly guidance: "Use when workspace context is not enough and the parent agent should do something with its own capabilities. Examples: `USE_SKILL parent-agent {\"request\":\"Find the next free 30 minute slot on my calendar\"}`, `USE_SKILL parent-agent {\"mode\":\"list-actions\",\"query\":\"github\"}`, `USE_SKILL parent-agent {\"mode\":\"list-cloud-commands\"}`, or `USE_SKILL parent-agent {\"mode\":\"cloud-command\",\"command\":\"apps.list\"}`. Mutating, paid, or destructive Cloud commands require explicit `confirmed:true` after parent/user approval.";
|
|
9
|
+
};
|
|
10
|
+
export interface ParentAgentBrokerRequest {
|
|
11
|
+
runtime: IAgentRuntime;
|
|
12
|
+
sessionId: string;
|
|
13
|
+
session?: SessionInfo;
|
|
14
|
+
args: unknown;
|
|
15
|
+
}
|
|
16
|
+
export declare function runParentAgentBroker(request: ParentAgentBrokerRequest): Promise<{
|
|
17
|
+
success: boolean;
|
|
18
|
+
text: string;
|
|
19
|
+
data?: Record<string, unknown>;
|
|
20
|
+
}>;
|
|
21
|
+
//# sourceMappingURL=parent-agent-broker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parent-agent-broker.d.ts","sourceRoot":"","sources":["../../../../src/services/parent-agent-broker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,aAAa,EAGd,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AASlD,eAAO,MAAM,wBAAwB,iBAAiB,CAAC;AAEvD,eAAO,MAAM,kCAAkC;;;;;CAOrC,CAAC;AAwiBX,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,aAAa,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,IAAI,EAAE,OAAO,CAAC;CACf;AAwiBD,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC,CA4H7E"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auto-response rule management for PTY sessions (bypass-fix).
|
|
3
|
+
*
|
|
4
|
+
* Contains logic for pushing default auto-response rules per agent type
|
|
5
|
+
* and handling Gemini authentication flow.
|
|
6
|
+
*
|
|
7
|
+
* @module services/pty-auto-response
|
|
8
|
+
*/
|
|
9
|
+
import type { IAgentRuntime } from "@elizaos/core";
|
|
10
|
+
import type { BunCompatiblePTYManager, PTYManager } from "pty-manager";
|
|
11
|
+
export interface AutoResponseContext {
|
|
12
|
+
manager: PTYManager | BunCompatiblePTYManager;
|
|
13
|
+
usingBunWorker: boolean;
|
|
14
|
+
runtime: IAgentRuntime;
|
|
15
|
+
log: (msg: string) => void;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Push session-specific auto-response rules that depend on runtime config.
|
|
19
|
+
* Trust prompts, update notices, and other static rules are handled by
|
|
20
|
+
* adapter built-in rules (coding-agent-adapters). This only pushes rules
|
|
21
|
+
* that need runtime values (e.g. API keys).
|
|
22
|
+
*/
|
|
23
|
+
export declare function pushDefaultRules(ctx: AutoResponseContext, sessionId: string, agentType: string): Promise<void>;
|
|
24
|
+
/**
|
|
25
|
+
* Handle Gemini authentication when login_required fires.
|
|
26
|
+
* Sends /auth to start the auth flow; auto-response rules
|
|
27
|
+
* then handle menu selection and API key input.
|
|
28
|
+
*/
|
|
29
|
+
export declare function handleGeminiAuth(ctx: AutoResponseContext, sessionId: string, sendKeysToSession: (sessionId: string, keys: string | string[]) => Promise<void>): Promise<void>;
|
|
30
|
+
//# sourceMappingURL=pty-auto-response.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pty-auto-response.d.ts","sourceRoot":"","sources":["../../../../src/services/pty-auto-response.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAEV,uBAAuB,EACvB,UAAU,EACX,MAAM,aAAa,CAAC;AAGrB,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,UAAU,GAAG,uBAAuB,CAAC;IAC9C,cAAc,EAAE,OAAO,CAAC;IACxB,OAAO,EAAE,aAAa,CAAC;IACvB,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5B;AASD;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,mBAAmB,EACxB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAmLf;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,mBAAmB,EACxB,SAAS,EAAE,MAAM,EACjB,iBAAiB,EAAE,CACjB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,KACpB,OAAO,CAAC,IAAI,CAAC,GACjB,OAAO,CAAC,IAAI,CAAC,CAwBf"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PTY manager initialization — extracted from PTYService.initialize().
|
|
3
|
+
*
|
|
4
|
+
* Creates either a BunCompatiblePTYManager (for Bun runtime) or PTYManager
|
|
5
|
+
* (for Node), wires up event handlers, and returns the configured manager.
|
|
6
|
+
*
|
|
7
|
+
* @module services/pty-init
|
|
8
|
+
*/
|
|
9
|
+
import type { BunCompatiblePTYManager as BunCompatiblePTYManagerType, PTYManager as PTYManagerType, StallClassification } from "pty-manager";
|
|
10
|
+
import type { CompletionMethod } from "./agent-metrics.js";
|
|
11
|
+
import type { PTYServiceConfig } from "./pty-types.js";
|
|
12
|
+
/**
|
|
13
|
+
* All callbacks and state that the initialization logic needs
|
|
14
|
+
* from the surrounding PTYService instance.
|
|
15
|
+
*/
|
|
16
|
+
export interface InitContext {
|
|
17
|
+
serviceConfig: PTYServiceConfig;
|
|
18
|
+
classifyStall: (sessionId: string, recentOutput: string) => Promise<StallClassification | null>;
|
|
19
|
+
emitEvent: (sessionId: string, event: string, data: unknown) => void;
|
|
20
|
+
handleGeminiAuth: (sessionId: string) => void;
|
|
21
|
+
sessionMetadata: Map<string, Record<string, unknown>>;
|
|
22
|
+
sessionOutputBuffers: Map<string, string[]>;
|
|
23
|
+
taskResponseMarkers: Map<string, number>;
|
|
24
|
+
metricsTracker: {
|
|
25
|
+
recordCompletion(type: string, method: CompletionMethod, durationMs: number): void;
|
|
26
|
+
};
|
|
27
|
+
traceEntries: Array<string | Record<string, unknown>>;
|
|
28
|
+
maxTraceEntries: number;
|
|
29
|
+
log: (msg: string) => void;
|
|
30
|
+
handleWorkerExit?: (info: {
|
|
31
|
+
code: number | null;
|
|
32
|
+
signal: string | null;
|
|
33
|
+
}) => void;
|
|
34
|
+
/** Check if a session has an active task in the coordinator. */
|
|
35
|
+
hasActiveTask?: (sessionId: string) => boolean;
|
|
36
|
+
/** Check if a session's task has started work (task delivered or decisions made). */
|
|
37
|
+
hasTaskActivity?: (sessionId: string) => boolean;
|
|
38
|
+
/** Mark a session's task as delivered (initial ready event processed). */
|
|
39
|
+
markTaskDelivered?: (sessionId: string) => void;
|
|
40
|
+
}
|
|
41
|
+
/** Value returned by {@link initializePTYManager}. */
|
|
42
|
+
export interface InitResult {
|
|
43
|
+
manager: PTYManagerType | BunCompatiblePTYManagerType;
|
|
44
|
+
usingBunWorker: boolean;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Create and configure a PTY manager for the current runtime.
|
|
48
|
+
*
|
|
49
|
+
* - **Bun**: instantiates a {@link BunCompatiblePTYManager} that spawns a
|
|
50
|
+
* Node worker process and communicates via JSON-RPC over stdio.
|
|
51
|
+
* - **Node**: instantiates a {@link PTYManager} directly and registers
|
|
52
|
+
* all built-in adapters in-process.
|
|
53
|
+
*/
|
|
54
|
+
export declare function initializePTYManager(ctx: InitContext): Promise<InitResult>;
|
|
55
|
+
//# sourceMappingURL=pty-init.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pty-init.d.ts","sourceRoot":"","sources":["../../../../src/services/pty-init.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,OAAO,KAAK,EAEV,uBAAuB,IAAI,2BAA2B,EAEtD,UAAU,IAAI,cAAc,EAG5B,mBAAmB,EAGpB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AA8EvD;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,gBAAgB,CAAC;IAChC,aAAa,EAAE,CACb,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,KACjB,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC;IACzC,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACrE,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACtD,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5C,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,cAAc,EAAE;QACd,gBAAgB,CACd,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,gBAAgB,EACxB,UAAU,EAAE,MAAM,GACjB,IAAI,CAAC;KACT,CAAC;IACF,YAAY,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACtD,eAAe,EAAE,MAAM,CAAC;IACxB,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3B,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE;QACxB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;KACvB,KAAK,IAAI,CAAC;IACX,gEAAgE;IAChE,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IAC/C,qFAAqF;IACrF,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IACjD,0EAA0E;IAC1E,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CACjD;AAoED,sDAAsD;AACtD,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,cAAc,GAAG,2BAA2B,CAAC;IACtD,cAAc,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,WAAW,GACf,OAAO,CAAC,UAAU,CAAC,CA4arB"}
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
/** @module services/pty-service */
|
|
2
|
+
import { type IAgentRuntime } from "@elizaos/core";
|
|
3
|
+
import { type AdapterType, type AgentFileDescriptor, type ApprovalConfig, type ApprovalPreset, type PreflightResult, type WriteMemoryOptions } from "coding-agent-adapters";
|
|
4
|
+
import { PTYConsoleBridge } from "pty-console";
|
|
5
|
+
import type { SessionFilter, SessionMessage } from "pty-manager";
|
|
6
|
+
import type { AgentSelectionStrategy } from "./agent-selection.js";
|
|
7
|
+
import { type CoordinatorNormalizedEvent } from "./coordinator-event-normalizer.js";
|
|
8
|
+
import type { CodingAgentType, PTYServiceConfig, SessionEventCallback, SessionInfo, SpawnSessionOptions } from "./pty-types.js";
|
|
9
|
+
import { SwarmCoordinator } from "./swarm-coordinator.js";
|
|
10
|
+
import { type TaskAgentAuthLaunchResult, type TaskAgentAuthStatus } from "./task-agent-auth.js";
|
|
11
|
+
import { type SupportedTaskAgentAdapter, type TaskAgentFrameworkState, type TaskAgentTaskProfileInput } from "./task-agent-frameworks.js";
|
|
12
|
+
export declare function shouldSuppressCodexExecPtyManagerEvent(options: {
|
|
13
|
+
codexExecMode: boolean;
|
|
14
|
+
event: string;
|
|
15
|
+
data: unknown;
|
|
16
|
+
}): boolean;
|
|
17
|
+
export declare function shouldSuppressCodexExecHookEvent(options: {
|
|
18
|
+
codexExecMode: boolean;
|
|
19
|
+
event: string;
|
|
20
|
+
}): boolean;
|
|
21
|
+
export type { CodingAgentType, PTYServiceConfig, SessionEventName, SessionInfo, SpawnSessionOptions, } from "./pty-types.js";
|
|
22
|
+
/**
|
|
23
|
+
* Pre-accept Claude Code's one-time trust dialog for a workdir by writing
|
|
24
|
+
* `hasTrustDialogAccepted: true` into `~/.claude.json`'s `projects` map.
|
|
25
|
+
*
|
|
26
|
+
* Why: Claude Code shows a Bypass Permissions / Trust dialog the first time
|
|
27
|
+
* it runs in any unrecognised directory. On a fresh scratch workdir that
|
|
28
|
+
* dialog is blocking: the auto-response path ends up pressing Enter, which
|
|
29
|
+
* defaults to "No, exit" and kills the subagent with exit code 1 before any
|
|
30
|
+
* work happens. Seeding the trust entry upfront skips the dialog entirely.
|
|
31
|
+
*
|
|
32
|
+
* Idempotent and best-effort: returns without throwing if the config file
|
|
33
|
+
* does not yet exist, is unreadable, or is not valid JSON. In those cases
|
|
34
|
+
* claude will show the dialog the normal way, which is no worse than before.
|
|
35
|
+
*
|
|
36
|
+
* Concurrency: serialized per config path via `claudeConfigWriteQueue` so
|
|
37
|
+
* parallel swarm spawns don't clobber each other's trust entries.
|
|
38
|
+
*/
|
|
39
|
+
declare function seedClaudeTrustForWorkdir(workdir: string, overrideConfigPath?: string): Promise<void>;
|
|
40
|
+
export declare const seedClaudeTrustForWorkdirForTesting: typeof seedClaudeTrustForWorkdir;
|
|
41
|
+
/**
|
|
42
|
+
* Retrieve the SwarmCoordinator from the PTYService registered on the runtime.
|
|
43
|
+
* Returns undefined if PTYService or coordinator is not available.
|
|
44
|
+
*/
|
|
45
|
+
export declare function getPtyService(runtime: IAgentRuntime): PTYService | null;
|
|
46
|
+
export declare function getCoordinator(runtime: IAgentRuntime): SwarmCoordinator | undefined;
|
|
47
|
+
export declare class PTYService {
|
|
48
|
+
static serviceType: string;
|
|
49
|
+
capabilityDescription: string;
|
|
50
|
+
private runtime;
|
|
51
|
+
private manager;
|
|
52
|
+
private usingBunWorker;
|
|
53
|
+
private serviceConfig;
|
|
54
|
+
private sessionNames;
|
|
55
|
+
private sessionMetadata;
|
|
56
|
+
private sessionWorkdirs;
|
|
57
|
+
private eventCallbacks;
|
|
58
|
+
private normalizedEventCallbacks;
|
|
59
|
+
private outputUnsubscribers;
|
|
60
|
+
private transcriptUnsubscribers;
|
|
61
|
+
private sessionOutputBuffers;
|
|
62
|
+
private completionReconcileTimers;
|
|
63
|
+
private completionSignalSince;
|
|
64
|
+
private terminalSessionStates;
|
|
65
|
+
private adapterCache;
|
|
66
|
+
/** Tracks the buffer index when a task was sent, so we can capture the response on completion */
|
|
67
|
+
private taskResponseMarkers;
|
|
68
|
+
/** Captures "Task completion trace" log entries from worker stderr (rolling, capped at 200) */
|
|
69
|
+
private traceEntries;
|
|
70
|
+
private static readonly MAX_TRACE_ENTRIES;
|
|
71
|
+
/** Lightweight per-agent-type metrics for observability */
|
|
72
|
+
private metricsTracker;
|
|
73
|
+
/** Active provider auth helper processes keyed by agent type. */
|
|
74
|
+
private activeAuthFlows;
|
|
75
|
+
private preflightCache;
|
|
76
|
+
private preflightInFlight;
|
|
77
|
+
private pendingBunList;
|
|
78
|
+
private coalescedBunList;
|
|
79
|
+
/** Pending task_complete → auto-stop timers, cancellable by the coordinator. */
|
|
80
|
+
private taskCompleteAutoStopTimers;
|
|
81
|
+
/** Background auth-recovery watchers keyed by blocked session id. */
|
|
82
|
+
private authRecoveryTimers;
|
|
83
|
+
/** Console bridge for terminal output streaming and buffered hydration */
|
|
84
|
+
consoleBridge: PTYConsoleBridge | null;
|
|
85
|
+
/** Swarm coordinator instance (if active). Accessed via getCoordinator(runtime). */
|
|
86
|
+
coordinator: SwarmCoordinator | null;
|
|
87
|
+
constructor(runtime: IAgentRuntime, config?: PTYServiceConfig);
|
|
88
|
+
static start(runtime: IAgentRuntime): Promise<PTYService>;
|
|
89
|
+
static stopRuntime(runtime: IAgentRuntime): Promise<void>;
|
|
90
|
+
private initialize;
|
|
91
|
+
stop(): Promise<void>;
|
|
92
|
+
private generateSessionId;
|
|
93
|
+
/** Build a SessionIOContext from current instance state. */
|
|
94
|
+
private ioContext;
|
|
95
|
+
/**
|
|
96
|
+
* Spawn a new PTY session for a coding agent
|
|
97
|
+
*/
|
|
98
|
+
spawnSession(options: SpawnSessionOptions): Promise<SessionInfo>;
|
|
99
|
+
private spawnSessionInternal;
|
|
100
|
+
private autoResponseContext;
|
|
101
|
+
private pushDefaultRules;
|
|
102
|
+
private handleGeminiAuth;
|
|
103
|
+
sendToSession(sessionId: string, input: string): Promise<SessionMessage | undefined>;
|
|
104
|
+
sendKeysToSession(sessionId: string, keys: string | string[]): Promise<void>;
|
|
105
|
+
/**
|
|
106
|
+
* Cancel a pending task_complete auto-stop for this session. Returns true
|
|
107
|
+
* if a timer was cancelled, false if none was pending. Safe to call any
|
|
108
|
+
* number of times. Intended for the swarm coordinator's task_complete
|
|
109
|
+
* handler so the assessment LLM has time to decide whether to keep the
|
|
110
|
+
* session alive (respond) or stop it (complete/escalate/ignore).
|
|
111
|
+
*/
|
|
112
|
+
cancelTaskCompleteAutoStop(sessionId: string): boolean;
|
|
113
|
+
stopSession(sessionId: string, force?: boolean): Promise<void>;
|
|
114
|
+
/** Default approval preset. Runtime env var takes precedence over config. */
|
|
115
|
+
get defaultApprovalPreset(): ApprovalPreset;
|
|
116
|
+
/** Agent selection strategy. Env var takes precedence. */
|
|
117
|
+
get agentSelectionStrategy(): AgentSelectionStrategy;
|
|
118
|
+
/**
|
|
119
|
+
* Default agent type when strategy is "fixed".
|
|
120
|
+
* Precedence: config file (`eliza.json` env section, written by the UI)
|
|
121
|
+
* > runtime/env setting > "claude" fallback.
|
|
122
|
+
*/
|
|
123
|
+
get defaultAgentType(): AdapterType;
|
|
124
|
+
private get explicitDefaultAgentType();
|
|
125
|
+
/**
|
|
126
|
+
* Resolve which agent type to use when the caller didn't specify one.
|
|
127
|
+
*
|
|
128
|
+
* When the caller explicitly configured a fixed default agent type, fixed
|
|
129
|
+
* mode returns that pinned framework. Otherwise the resolver scores the
|
|
130
|
+
* available frameworks from task shape, auth/install state, and recent
|
|
131
|
+
* metrics so dynamic routing still works on unconfigured installs.
|
|
132
|
+
*/
|
|
133
|
+
resolveAgentType(selection?: TaskAgentTaskProfileInput): Promise<string>;
|
|
134
|
+
getFrameworkState(selection?: TaskAgentTaskProfileInput): Promise<TaskAgentFrameworkState>;
|
|
135
|
+
getSession(sessionId: string): SessionInfo | undefined;
|
|
136
|
+
listSessions(filter?: SessionFilter): Promise<SessionInfo[]>;
|
|
137
|
+
subscribeToOutput(sessionId: string, callback: (data: string) => void): () => void;
|
|
138
|
+
getSessionOutput(sessionId: string, lines?: number): Promise<string>;
|
|
139
|
+
/**
|
|
140
|
+
* Whether the adapter currently classifies the session as actively
|
|
141
|
+
* processing work (e.g. Codex's "esc to interrupt" status row).
|
|
142
|
+
*
|
|
143
|
+
* The swarm idle watchdog consults this before assuming a session is
|
|
144
|
+
* idle based on output byte diffs, which are fooled by TUIs that
|
|
145
|
+
* redraw the same status row in place via cursor positioning.
|
|
146
|
+
*
|
|
147
|
+
* Returns `false` for unknown sessions or adapters that don't
|
|
148
|
+
* implement `detectLoading`. For Bun-compat mode this round-trips to
|
|
149
|
+
* the worker; for in-process mode it reads the session directly.
|
|
150
|
+
*/
|
|
151
|
+
isSessionLoading(sessionId: string): Promise<boolean>;
|
|
152
|
+
private clearTranscriptCapture;
|
|
153
|
+
private resolveTaskThreadId;
|
|
154
|
+
private persistTranscript;
|
|
155
|
+
private wireTranscriptCapture;
|
|
156
|
+
isSessionBlocked(sessionId: string): boolean;
|
|
157
|
+
/**
|
|
158
|
+
* Find a PTY session ID by its working directory.
|
|
159
|
+
* Used by the HTTP hooks endpoint to correlate Claude's cwd with our session.
|
|
160
|
+
*/
|
|
161
|
+
findSessionIdByCwd(cwd: string): string | undefined;
|
|
162
|
+
/**
|
|
163
|
+
* Handle an incoming hook event from Claude Code's HTTP hooks.
|
|
164
|
+
* Translates hook events into PTY service events.
|
|
165
|
+
*/
|
|
166
|
+
handleHookEvent(sessionId: string, event: string, data: Record<string, unknown>): void;
|
|
167
|
+
checkAvailableAgents(types?: AdapterType[]): Promise<PreflightResult[]>;
|
|
168
|
+
getAgentAuthStatus(agentType: SupportedTaskAgentAdapter): Promise<TaskAgentAuthStatus>;
|
|
169
|
+
triggerAgentAuth(agentType: SupportedTaskAgentAdapter): Promise<TaskAgentAuthLaunchResult>;
|
|
170
|
+
startSessionAuthRecovery(sessionId: string, agentType: SupportedTaskAgentAdapter, login: {
|
|
171
|
+
instructions?: string;
|
|
172
|
+
url?: string;
|
|
173
|
+
deviceCode?: string;
|
|
174
|
+
method?: string;
|
|
175
|
+
promptSnippet?: string;
|
|
176
|
+
}): Promise<TaskAgentAuthLaunchResult & {
|
|
177
|
+
recoveryStarted: boolean;
|
|
178
|
+
status: "recovered" | "recovering" | "failed";
|
|
179
|
+
}>;
|
|
180
|
+
private monitorSessionAuthRecovery;
|
|
181
|
+
private resumeSessionAfterRecoveredAuth;
|
|
182
|
+
getSupportedAgentTypes(): CodingAgentType[];
|
|
183
|
+
private classifyStall;
|
|
184
|
+
private getAdapter;
|
|
185
|
+
getWorkspaceFiles(agentType: AdapterType): AgentFileDescriptor[];
|
|
186
|
+
getMemoryFilePath(agentType: AdapterType): string;
|
|
187
|
+
getApprovalConfig(agentType: AdapterType, preset: ApprovalPreset): ApprovalConfig;
|
|
188
|
+
writeMemoryFile(agentType: AdapterType, workspacePath: string, content: string, options?: WriteMemoryOptions): Promise<string>;
|
|
189
|
+
/** Marker comment used to detect orchestrator-managed gitignore entries. */
|
|
190
|
+
private static readonly GITIGNORE_MARKER;
|
|
191
|
+
/** Per-path lock to serialize concurrent gitignore updates for the same workdir. */
|
|
192
|
+
private static gitignoreLocks;
|
|
193
|
+
/**
|
|
194
|
+
* Ensure that orchestrator-injected files (CLAUDE.md, .claude/, GEMINI.md, etc.)
|
|
195
|
+
* are listed in the workspace .gitignore so agents don't commit them.
|
|
196
|
+
* Appends to an existing .gitignore or creates one. Idempotent: skips if
|
|
197
|
+
* the marker comment is already present. Serialized per-path to prevent
|
|
198
|
+
* duplicate entries from concurrent spawns.
|
|
199
|
+
*/
|
|
200
|
+
private ensureOrchestratorGitignore;
|
|
201
|
+
private doEnsureGitignore;
|
|
202
|
+
onSessionEvent(callback: SessionEventCallback): () => void;
|
|
203
|
+
onNormalizedSessionEvent(callback: (event: CoordinatorNormalizedEvent) => void): () => void;
|
|
204
|
+
registerAdapter(adapter: unknown): void;
|
|
205
|
+
private toSessionInfo;
|
|
206
|
+
private toTerminalSessionInfo;
|
|
207
|
+
private emitEvent;
|
|
208
|
+
getAgentMetrics(): Record<string, Omit<import("./agent-metrics.js").AgentMetrics, "totalCompletionMs">>;
|
|
209
|
+
private log;
|
|
210
|
+
private handleWorkerExit;
|
|
211
|
+
private clearCompletionReconcile;
|
|
212
|
+
private scheduleCompletionReconcile;
|
|
213
|
+
private isAdapterBackedAgentType;
|
|
214
|
+
private shouldSuppressBlockedEvent;
|
|
215
|
+
private responseLooksMeaningful;
|
|
216
|
+
private reconcileBusySessionFromOutput;
|
|
217
|
+
}
|
|
218
|
+
//# sourceMappingURL=pty-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pty-service.d.ts","sourceRoot":"","sources":["../../../../src/services/pty-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session I/O helpers — extracted from PTYService for maintainability.
|
|
3
|
+
*
|
|
4
|
+
* Standalone functions for sending input/keys to sessions and stopping
|
|
5
|
+
* sessions. Each function takes a {@link SessionIOContext} that provides
|
|
6
|
+
* the manager instance and shared state maps.
|
|
7
|
+
*
|
|
8
|
+
* @module services/pty-session-io
|
|
9
|
+
*/
|
|
10
|
+
import type { BunCompatiblePTYManager, PTYManager, SessionMessage } from "pty-manager";
|
|
11
|
+
/**
|
|
12
|
+
* Shared context required by all session I/O functions.
|
|
13
|
+
* Built inline from PTYService instance fields.
|
|
14
|
+
*/
|
|
15
|
+
export interface SessionIOContext {
|
|
16
|
+
manager: PTYManager | BunCompatiblePTYManager;
|
|
17
|
+
usingBunWorker: boolean;
|
|
18
|
+
sessionOutputBuffers: Map<string, string[]>;
|
|
19
|
+
taskResponseMarkers: Map<string, number>;
|
|
20
|
+
outputUnsubscribers: Map<string, () => void>;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Send text input to a session.
|
|
24
|
+
*
|
|
25
|
+
* Marks the buffer position for task response capture, then writes the
|
|
26
|
+
* input via the appropriate manager API.
|
|
27
|
+
*/
|
|
28
|
+
export declare function sendToSession(ctx: SessionIOContext, sessionId: string, input: string): Promise<SessionMessage | undefined>;
|
|
29
|
+
/**
|
|
30
|
+
* Send key sequences to a session (for special keys like arrows, enter, etc.).
|
|
31
|
+
*/
|
|
32
|
+
export declare function sendKeysToSession(ctx: SessionIOContext, sessionId: string, keys: string | string[]): Promise<void>;
|
|
33
|
+
/**
|
|
34
|
+
* Stop a PTY session and clean up all associated state.
|
|
35
|
+
*
|
|
36
|
+
* @param force - When true, sends SIGKILL immediately instead of SIGTERM.
|
|
37
|
+
* Use for sessions whose task is already complete — there's nothing to save.
|
|
38
|
+
*/
|
|
39
|
+
export declare function stopSession(ctx: SessionIOContext, sessionId: string, sessionMetadata: Map<string, Record<string, unknown>>, sessionWorkdirs: Map<string, string>, log: (msg: string) => void, force?: boolean): Promise<void>;
|
|
40
|
+
/**
|
|
41
|
+
* Subscribe to live output from a session.
|
|
42
|
+
* Returns an unsubscribe function.
|
|
43
|
+
*/
|
|
44
|
+
export declare function subscribeToOutput(ctx: SessionIOContext, sessionId: string, callback: (data: string) => void): () => void;
|
|
45
|
+
/**
|
|
46
|
+
* Get buffered or logged output from a session.
|
|
47
|
+
*/
|
|
48
|
+
export declare function getSessionOutput(ctx: SessionIOContext, sessionId: string, lines?: number): Promise<string>;
|
|
49
|
+
//# sourceMappingURL=pty-session-io.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pty-session-io.d.ts","sourceRoot":"","sources":["../../../../src/services/pty-session-io.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EACV,uBAAuB,EACvB,UAAU,EACV,cAAc,EACf,MAAM,aAAa,CAAC;AAErB;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,UAAU,GAAG,uBAAuB,CAAC;IAC9C,cAAc,EAAE,OAAO,CAAC;IACxB,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5C,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC;CAC9C;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,gBAAgB,EACrB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAoBrC;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,gBAAgB,EACrB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GACtB,OAAO,CAAC,IAAI,CAAC,CAUf;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,GAAG,EAAE,gBAAgB,EACrB,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACrD,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,EAC1B,KAAK,UAAQ,GACZ,OAAO,CAAC,IAAI,CAAC,CAiEf;AAkCD;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,gBAAgB,EACrB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAC/B,MAAM,IAAI,CAiBZ;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,gBAAgB,EACrB,SAAS,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,CAejB"}
|