@enderfga/claw-orchestrator 7.12.1 → 7.14.0
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/README.md +14 -11
- package/configs/engines/README.md +20 -0
- package/configs/engines/dsh.json +17 -0
- package/configs/engines/kimi-code.json +17 -0
- package/dist/bin/cli.js +123 -34
- package/dist/bin/cli.js.map +1 -1
- package/dist/src/acp-server.js +4 -2
- package/dist/src/acp-server.js.map +1 -1
- package/dist/src/autoloop/dispatcher.d.ts +19 -0
- package/dist/src/autoloop/dispatcher.js +57 -0
- package/dist/src/autoloop/dispatcher.js.map +1 -1
- package/dist/src/autoloop/runner.d.ts +102 -2
- package/dist/src/autoloop/runner.js +367 -44
- package/dist/src/autoloop/runner.js.map +1 -1
- package/dist/src/autoloop/types.d.ts +17 -0
- package/dist/src/autoloop/types.js.map +1 -1
- package/dist/src/dashboard/index.html +79 -73
- package/dist/src/embedded-server.js +35 -7
- package/dist/src/embedded-server.js.map +1 -1
- package/dist/src/engine-presets.d.ts +7 -3
- package/dist/src/engine-presets.js +39 -6
- package/dist/src/engine-presets.js.map +1 -1
- package/dist/src/engine-spawn.d.ts +8 -1
- package/dist/src/engine-spawn.js +13 -3
- package/dist/src/engine-spawn.js.map +1 -1
- package/dist/src/index.js +78 -71
- package/dist/src/index.js.map +1 -1
- package/dist/src/kernel/agent-step.d.ts +3 -0
- package/dist/src/kernel/agent-step.js.map +1 -1
- package/dist/src/kernel/engine.d.ts +5 -2
- package/dist/src/kernel/engine.js +11 -12
- package/dist/src/kernel/engine.js.map +1 -1
- package/dist/src/kernel/nodes/autoloop.d.ts +32 -2
- package/dist/src/kernel/nodes/autoloop.js +122 -15
- package/dist/src/kernel/nodes/autoloop.js.map +1 -1
- package/dist/src/kernel/nodes/goal.d.ts +94 -0
- package/dist/src/kernel/nodes/goal.js +386 -0
- package/dist/src/kernel/nodes/goal.js.map +1 -0
- package/dist/src/kernel/nodes/index.d.ts +2 -1
- package/dist/src/kernel/nodes/index.js +3 -1
- package/dist/src/kernel/nodes/index.js.map +1 -1
- package/dist/src/kernel/templates/index.d.ts +27 -3
- package/dist/src/kernel/templates/index.js +78 -1
- package/dist/src/kernel/templates/index.js.map +1 -1
- package/dist/src/kernel/types.d.ts +41 -2
- package/dist/src/kernel/types.js.map +1 -1
- package/dist/src/persistent-acp-session.d.ts +76 -0
- package/dist/src/persistent-acp-session.js +409 -0
- package/dist/src/persistent-acp-session.js.map +1 -0
- package/dist/src/persistent-agy-session.js +1 -0
- package/dist/src/persistent-agy-session.js.map +1 -1
- package/dist/src/persistent-codex-app-session.d.ts +55 -26
- package/dist/src/persistent-codex-app-session.js +109 -24
- package/dist/src/persistent-codex-app-session.js.map +1 -1
- package/dist/src/persistent-codex-session.js +1 -0
- package/dist/src/persistent-codex-session.js.map +1 -1
- package/dist/src/persistent-cursor-session.js +1 -0
- package/dist/src/persistent-cursor-session.js.map +1 -1
- package/dist/src/persistent-custom-session.js +2 -0
- package/dist/src/persistent-custom-session.js.map +1 -1
- package/dist/src/persistent-gemini-session.js +1 -0
- package/dist/src/persistent-gemini-session.js.map +1 -1
- package/dist/src/persistent-grok-session.js +1 -0
- package/dist/src/persistent-grok-session.js.map +1 -1
- package/dist/src/persistent-opencode-session.js +1 -0
- package/dist/src/persistent-opencode-session.js.map +1 -1
- package/dist/src/persistent-session.js +1 -0
- package/dist/src/persistent-session.js.map +1 -1
- package/dist/src/sanitize.d.ts +10 -0
- package/dist/src/sanitize.js +26 -0
- package/dist/src/sanitize.js.map +1 -1
- package/dist/src/session-manager.d.ts +25 -20
- package/dist/src/session-manager.js +92 -43
- package/dist/src/session-manager.js.map +1 -1
- package/dist/src/types.d.ts +35 -1
- package/dist/src/types.js +2 -0
- package/dist/src/types.js.map +1 -1
- package/openclaw.plugin.json +1 -1
- package/package.json +2 -2
- package/skills/SKILL.md +8 -5
- package/skills/references/acp.md +4 -0
- package/skills/references/autoloop.md +27 -2
- package/skills/references/claude-cli-tracking.md +3 -1
- package/skills/references/cli.md +79 -39
- package/skills/references/dashboard.md +5 -1
- package/skills/references/multi-engine.md +39 -10
- package/skills/references/tools.md +77 -65
- package/skills/references/workflow.md +87 -13
|
@@ -29,7 +29,7 @@ export type RunState = 'pending' | 'running' | 'awaiting_human' | 'verifying' |
|
|
|
29
29
|
*/
|
|
30
30
|
export type RunOutcome = 'verified' | 'unverified' | 'refuted';
|
|
31
31
|
export type NodeState = 'pending' | 'running' | 'awaiting_human' | 'succeeded' | 'failed' | 'skipped' | 'cancelled';
|
|
32
|
-
export type NodeKind = 'agent' | 'fanout' | 'council' | 'verifier' | 'human_gate' | 'router' | 'subflow' | 'autoloop' | 'ultraapp_synth' | 'ultraapp_deploy';
|
|
32
|
+
export type NodeKind = 'agent' | 'fanout' | 'council' | 'verifier' | 'human_gate' | 'router' | 'subflow' | 'autoloop' | 'goal' | 'ultraapp_synth' | 'ultraapp_deploy';
|
|
33
33
|
export interface NodeBase {
|
|
34
34
|
id: string;
|
|
35
35
|
kind: NodeKind;
|
|
@@ -176,6 +176,45 @@ export interface AutoloopNode extends NodeBase {
|
|
|
176
176
|
workspace: string;
|
|
177
177
|
config: Record<string, unknown>;
|
|
178
178
|
}
|
|
179
|
+
/**
|
|
180
|
+
* A Codex `/goal`: one `codex-app` thread working on one objective, turn after
|
|
181
|
+
* turn on its own, until the goal leaves `active`.
|
|
182
|
+
*
|
|
183
|
+
* The thread id is checkpointed on the node, so a resumed run reattaches the
|
|
184
|
+
* same thread rather than starting the objective over. A revisit after a red
|
|
185
|
+
* verifier sets a new objective on that thread, prefixed with the failing
|
|
186
|
+
* checks. Like `autoloop`, it has no default node timeout; `timeoutMs` is the
|
|
187
|
+
* wall-clock budget.
|
|
188
|
+
*/
|
|
189
|
+
export interface GoalNode extends NodeBase {
|
|
190
|
+
kind: 'goal';
|
|
191
|
+
objective: string;
|
|
192
|
+
cwd?: string;
|
|
193
|
+
model?: string;
|
|
194
|
+
effort?: string;
|
|
195
|
+
sandboxMode?: 'read-only' | 'workspace-write' | 'danger-full-access';
|
|
196
|
+
/** Argv prefix codex runs under, e.g. a sandbox wrapper. Caller-authored. */
|
|
197
|
+
launcher?: string[];
|
|
198
|
+
/**
|
|
199
|
+
* Start on this existing codex-app thread instead of a new one: its goal is
|
|
200
|
+
* replaced by `objective`, and the agent keeps the thread's history. Used
|
|
201
|
+
* once; a resumed run follows the thread id it checkpointed.
|
|
202
|
+
*/
|
|
203
|
+
threadId?: string;
|
|
204
|
+
/** Tokens the goal may spend; it ends as `budgetLimited` past this. */
|
|
205
|
+
tokenBudget?: number;
|
|
206
|
+
/**
|
|
207
|
+
* Resuming a goal that stopped on a usage limit, an overloaded endpoint or a
|
|
208
|
+
* stall. `max` counts attempts, made or not; past it the node fails. Default
|
|
209
|
+
* 20 attempts, backoff from 60 s doubling to at most 15 min.
|
|
210
|
+
*/
|
|
211
|
+
capacityRetry?: {
|
|
212
|
+
max: number;
|
|
213
|
+
backoffMs?: number;
|
|
214
|
+
};
|
|
215
|
+
/** An active goal with no turn and no notification for this long is resumed. Default 5 min. */
|
|
216
|
+
stallMs?: number;
|
|
217
|
+
}
|
|
179
218
|
/**
|
|
180
219
|
* UltraApp's two expensive stages.
|
|
181
220
|
*
|
|
@@ -206,7 +245,7 @@ export interface UltraappDeployNode extends NodeBase {
|
|
|
206
245
|
/** Where the synthesised codebase lives, once `ultraapp_synth` has produced it. */
|
|
207
246
|
codebasePath: string;
|
|
208
247
|
}
|
|
209
|
-
export type NodeSpec = AgentNode | FanoutNode | CouncilNode | VerifierNode | HumanGateNode | RouterNode | SubflowNode | AutoloopNode | UltraappSynthNode | UltraappDeployNode;
|
|
248
|
+
export type NodeSpec = AgentNode | FanoutNode | CouncilNode | VerifierNode | HumanGateNode | RouterNode | SubflowNode | AutoloopNode | GoalNode | UltraappSynthNode | UltraappDeployNode;
|
|
210
249
|
export interface WorkflowSpec {
|
|
211
250
|
name: string;
|
|
212
251
|
nodes: NodeSpec[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/kernel/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/kernel/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AA2XH,MAAM,CAAC,MAAM,mBAAmB,GAAwB,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;AAE7F,MAAM,UAAU,kBAAkB,CAAC,CAAW;IAC5C,OAAO,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ACP Session — drives any agent that speaks the Agent Client Protocol on stdio.
|
|
3
|
+
*
|
|
4
|
+
* `acp-server.ts` is the other half: there the orchestrator is the agent. Here
|
|
5
|
+
* it is the client, so one wrapper covers every ACP agent (`kimi acp`,
|
|
6
|
+
* `opencode acp`, a Claude Code ACP adapter, …) with no per-agent parsing. The
|
|
7
|
+
* agent process lives as long as the session; each send is one `session/prompt`.
|
|
8
|
+
*
|
|
9
|
+
* Protocol notes (`@agentclientprotocol/sdk` 1.3.0, protocol v1):
|
|
10
|
+
* - `initialize` → `session/new` (or `session/load` / `session/resume` for a
|
|
11
|
+
* stored session id) → `session/prompt` per send. The prompt's response
|
|
12
|
+
* carries the stop reason; text, tool calls and usage arrive before it as
|
|
13
|
+
* `session/update` notifications.
|
|
14
|
+
* - The client advertises no `fs` or `terminal` capability, so the agent
|
|
15
|
+
* reads, writes and runs commands with its own tools, in its own process.
|
|
16
|
+
* - `session/request_permission` is answered at once from the session's
|
|
17
|
+
* permission mode. Nothing here can put a question to a person, and an
|
|
18
|
+
* unanswered request would hold the turn until it times out.
|
|
19
|
+
*/
|
|
20
|
+
import { EventEmitter } from 'node:events';
|
|
21
|
+
import type { CostBreakdown, EffortLevel, ISession, SessionConfig, SessionSendOptions, SessionStats, TurnResult } from './types.js';
|
|
22
|
+
export declare class PersistentAcpSession extends EventEmitter implements ISession {
|
|
23
|
+
private readonly options;
|
|
24
|
+
private readonly agent;
|
|
25
|
+
private proc;
|
|
26
|
+
private conn;
|
|
27
|
+
private acpSessionId?;
|
|
28
|
+
private _isReady;
|
|
29
|
+
private _isPaused;
|
|
30
|
+
private _isBusy;
|
|
31
|
+
private _startTime;
|
|
32
|
+
private _history;
|
|
33
|
+
private _requests;
|
|
34
|
+
/** The turn in flight: its text so far and how to fail it if the process dies. */
|
|
35
|
+
private turnText;
|
|
36
|
+
private turnFail;
|
|
37
|
+
sessionId?: string;
|
|
38
|
+
private _stats;
|
|
39
|
+
constructor(config: SessionConfig);
|
|
40
|
+
get pid(): number | undefined;
|
|
41
|
+
get isReady(): boolean;
|
|
42
|
+
get isPaused(): boolean;
|
|
43
|
+
get isBusy(): boolean;
|
|
44
|
+
/** The agent's own session id; a later session resumes it. */
|
|
45
|
+
get agentSessionId(): string | undefined;
|
|
46
|
+
start(): Promise<this>;
|
|
47
|
+
stop(): void;
|
|
48
|
+
pause(): void;
|
|
49
|
+
resume(): void;
|
|
50
|
+
send(message: string | unknown[], options?: SessionSendOptions): Promise<TurnResult | {
|
|
51
|
+
requestId: number;
|
|
52
|
+
sent: boolean;
|
|
53
|
+
}>;
|
|
54
|
+
private _turn;
|
|
55
|
+
private _answerPermission;
|
|
56
|
+
private _onUpdate;
|
|
57
|
+
/** `PromptResponse.usage` holds session totals, so it replaces, never adds. */
|
|
58
|
+
private _absorbUsage;
|
|
59
|
+
getStats(): SessionStats & {
|
|
60
|
+
sessionId?: string;
|
|
61
|
+
uptime: number;
|
|
62
|
+
};
|
|
63
|
+
getHistory(limit?: number): Array<{
|
|
64
|
+
time: string;
|
|
65
|
+
type: string;
|
|
66
|
+
event: unknown;
|
|
67
|
+
}>;
|
|
68
|
+
getCost(): CostBreakdown;
|
|
69
|
+
compact(_summary?: string): Promise<TurnResult>;
|
|
70
|
+
getEffort(): EffortLevel;
|
|
71
|
+
setEffort(level: EffortLevel): void;
|
|
72
|
+
resolveModel(alias: string): string;
|
|
73
|
+
/** As in codex-app: with no listener, an `'error'` event would throw and take the process down. */
|
|
74
|
+
private _emitError;
|
|
75
|
+
private _addHistory;
|
|
76
|
+
}
|
|
@@ -0,0 +1,409 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ACP Session — drives any agent that speaks the Agent Client Protocol on stdio.
|
|
3
|
+
*
|
|
4
|
+
* `acp-server.ts` is the other half: there the orchestrator is the agent. Here
|
|
5
|
+
* it is the client, so one wrapper covers every ACP agent (`kimi acp`,
|
|
6
|
+
* `opencode acp`, a Claude Code ACP adapter, …) with no per-agent parsing. The
|
|
7
|
+
* agent process lives as long as the session; each send is one `session/prompt`.
|
|
8
|
+
*
|
|
9
|
+
* Protocol notes (`@agentclientprotocol/sdk` 1.3.0, protocol v1):
|
|
10
|
+
* - `initialize` → `session/new` (or `session/load` / `session/resume` for a
|
|
11
|
+
* stored session id) → `session/prompt` per send. The prompt's response
|
|
12
|
+
* carries the stop reason; text, tool calls and usage arrive before it as
|
|
13
|
+
* `session/update` notifications.
|
|
14
|
+
* - The client advertises no `fs` or `terminal` capability, so the agent
|
|
15
|
+
* reads, writes and runs commands with its own tools, in its own process.
|
|
16
|
+
* - `session/request_permission` is answered at once from the session's
|
|
17
|
+
* permission mode. Nothing here can put a question to a person, and an
|
|
18
|
+
* unanswered request would hold the turn until it times out.
|
|
19
|
+
*/
|
|
20
|
+
import { EventEmitter } from 'node:events';
|
|
21
|
+
import * as fs from 'node:fs';
|
|
22
|
+
import * as path from 'node:path';
|
|
23
|
+
import { Readable, Writable } from 'node:stream';
|
|
24
|
+
import * as acp from '@agentclientprotocol/sdk';
|
|
25
|
+
import { killEngineTree, spawnEngine } from './engine-spawn.js';
|
|
26
|
+
import { resolveAcpAgent } from './engine-presets.js';
|
|
27
|
+
import { resolveAlias } from './models.js';
|
|
28
|
+
import { SESSION_EVENT, MAX_HISTORY_ITEMS, DEFAULT_HISTORY_LIMIT } from './constants.js';
|
|
29
|
+
const DEFAULT_TURN_TIMEOUT_MS = 600_000;
|
|
30
|
+
/** Permission modes under which the agent may act without asking. */
|
|
31
|
+
const ALLOWING_MODES = new Set(['bypassPermissions', 'acceptEdits', 'auto', 'dontAsk']);
|
|
32
|
+
export class PersistentAcpSession extends EventEmitter {
|
|
33
|
+
options;
|
|
34
|
+
agent;
|
|
35
|
+
proc = null;
|
|
36
|
+
conn = null;
|
|
37
|
+
acpSessionId;
|
|
38
|
+
_isReady = false;
|
|
39
|
+
_isPaused = false;
|
|
40
|
+
_isBusy = false;
|
|
41
|
+
_startTime = null;
|
|
42
|
+
_history = [];
|
|
43
|
+
_requests = 0;
|
|
44
|
+
/** The turn in flight: its text so far and how to fail it if the process dies. */
|
|
45
|
+
turnText = '';
|
|
46
|
+
turnFail = null;
|
|
47
|
+
sessionId;
|
|
48
|
+
_stats = {
|
|
49
|
+
turns: 0,
|
|
50
|
+
turnsSucceeded: 0,
|
|
51
|
+
toolCalls: 0,
|
|
52
|
+
toolErrors: 0,
|
|
53
|
+
tokensIn: 0,
|
|
54
|
+
tokensOut: 0,
|
|
55
|
+
cachedTokens: 0,
|
|
56
|
+
costUsd: 0,
|
|
57
|
+
/** True once the agent has reported a cost; the registry estimate is then never used. */
|
|
58
|
+
costReported: false,
|
|
59
|
+
contextUsed: 0,
|
|
60
|
+
contextSize: 0,
|
|
61
|
+
lastActivity: null,
|
|
62
|
+
};
|
|
63
|
+
constructor(config) {
|
|
64
|
+
super();
|
|
65
|
+
const agent = resolveAcpAgent(config.acpAgent);
|
|
66
|
+
if (!agent)
|
|
67
|
+
throw new Error("engine 'acp' needs `acpAgent`: a bundled preset id or an inline config");
|
|
68
|
+
this.agent = agent;
|
|
69
|
+
this.options = { ...config, permissionMode: config.permissionMode || 'bypassPermissions' };
|
|
70
|
+
}
|
|
71
|
+
// ── Property accessors ─────────────────────────────────────────────────
|
|
72
|
+
get pid() {
|
|
73
|
+
return this.proc?.pid ?? undefined;
|
|
74
|
+
}
|
|
75
|
+
get isReady() {
|
|
76
|
+
return this._isReady;
|
|
77
|
+
}
|
|
78
|
+
get isPaused() {
|
|
79
|
+
return this._isPaused;
|
|
80
|
+
}
|
|
81
|
+
get isBusy() {
|
|
82
|
+
return this._isBusy;
|
|
83
|
+
}
|
|
84
|
+
/** The agent's own session id; a later session resumes it. */
|
|
85
|
+
get agentSessionId() {
|
|
86
|
+
return this.acpSessionId;
|
|
87
|
+
}
|
|
88
|
+
// ── Lifecycle ──────────────────────────────────────────────────────────
|
|
89
|
+
async start() {
|
|
90
|
+
const cwd = path.resolve(this.options.cwd || process.cwd());
|
|
91
|
+
if (!fs.existsSync(cwd))
|
|
92
|
+
fs.mkdirSync(cwd, { recursive: true });
|
|
93
|
+
this.options.cwd = cwd;
|
|
94
|
+
const command = (this.agent.commandEnv && process.env[this.agent.commandEnv]) || this.agent.command;
|
|
95
|
+
const proc = spawnEngine(command, this.agent.args ?? [], {
|
|
96
|
+
launcher: this.options.launcher,
|
|
97
|
+
cwd,
|
|
98
|
+
env: { ...process.env, ...this.agent.env },
|
|
99
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
100
|
+
});
|
|
101
|
+
this.proc = proc;
|
|
102
|
+
proc.stderr?.on('data', (d) => this.emit(SESSION_EVENT.LOG, `[acp:${this.agent.name}] ${d.toString()}`));
|
|
103
|
+
const exited = new Promise((_, reject) => {
|
|
104
|
+
proc.once('error', (err) => reject(new Error(`could not start ${command}: ${err.message}`)));
|
|
105
|
+
proc.once('exit', (code, signal) => {
|
|
106
|
+
this._isReady = false;
|
|
107
|
+
const err = new Error(`ACP agent ${this.agent.name} exited (${signal ?? `code ${code}`})`);
|
|
108
|
+
this.turnFail?.(err);
|
|
109
|
+
this.turnFail = null;
|
|
110
|
+
this.conn?.close(err);
|
|
111
|
+
reject(err);
|
|
112
|
+
this.emit(SESSION_EVENT.CLOSE, code ?? 0);
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
exited.catch(() => undefined);
|
|
116
|
+
const stream = acp.ndJsonStream(Writable.toWeb(proc.stdin), Readable.toWeb(proc.stdout));
|
|
117
|
+
this.conn = acp
|
|
118
|
+
.client({ name: 'claw-orchestrator' })
|
|
119
|
+
.onRequest(acp.methods.client.session.requestPermission, (ctx) => this._answerPermission(ctx.params))
|
|
120
|
+
.onNotification(acp.methods.client.session.update, (ctx) => this._onUpdate(ctx.params))
|
|
121
|
+
.connect(stream);
|
|
122
|
+
// A closed connection is a dead session, whether or not the exit has been reported yet.
|
|
123
|
+
this.conn.closed.then(() => (this._isReady = false), () => (this._isReady = false));
|
|
124
|
+
const agent = this.conn.agent;
|
|
125
|
+
const init = await Promise.race([
|
|
126
|
+
agent.request(acp.methods.agent.initialize, {
|
|
127
|
+
protocolVersion: acp.PROTOCOL_VERSION,
|
|
128
|
+
clientCapabilities: {},
|
|
129
|
+
clientInfo: { name: 'claw-orchestrator', version: '1' },
|
|
130
|
+
}),
|
|
131
|
+
exited,
|
|
132
|
+
]);
|
|
133
|
+
const caps = init.agentCapabilities ?? {};
|
|
134
|
+
const resumeId = this.options.resumeSessionId;
|
|
135
|
+
if (resumeId) {
|
|
136
|
+
// A stored id that cannot be honoured is an error, not a fresh session:
|
|
137
|
+
// the caller asked for that conversation, and a new one would silently
|
|
138
|
+
// drop everything it knew.
|
|
139
|
+
if (caps.sessionCapabilities?.resume) {
|
|
140
|
+
await Promise.race([
|
|
141
|
+
agent.request(acp.methods.agent.session.resume, { sessionId: resumeId, cwd, mcpServers: [] }),
|
|
142
|
+
exited,
|
|
143
|
+
]);
|
|
144
|
+
}
|
|
145
|
+
else if (caps.loadSession) {
|
|
146
|
+
await Promise.race([
|
|
147
|
+
agent.request(acp.methods.agent.session.load, { sessionId: resumeId, cwd, mcpServers: [] }),
|
|
148
|
+
exited,
|
|
149
|
+
]);
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
this.stop();
|
|
153
|
+
throw new Error(`ACP agent ${this.agent.name} cannot resume a session (no loadSession or resume capability)`);
|
|
154
|
+
}
|
|
155
|
+
// Set only now: `session/load` replays the conversation as updates
|
|
156
|
+
// before it returns, and an update for an id not yet ours is dropped —
|
|
157
|
+
// that history is not this session's work.
|
|
158
|
+
this.acpSessionId = resumeId;
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
const created = await Promise.race([
|
|
162
|
+
agent.request(acp.methods.agent.session.new, { cwd, mcpServers: [] }),
|
|
163
|
+
exited,
|
|
164
|
+
]);
|
|
165
|
+
this.acpSessionId = created.sessionId;
|
|
166
|
+
}
|
|
167
|
+
this.sessionId = `acp-${this.agent.name}-${Date.now().toString(36)}`;
|
|
168
|
+
this._startTime = new Date().toISOString();
|
|
169
|
+
this._isReady = true;
|
|
170
|
+
this.emit(SESSION_EVENT.READY);
|
|
171
|
+
this.emit(SESSION_EVENT.INIT, { type: 'system', subtype: 'init', session_id: this.sessionId });
|
|
172
|
+
return this;
|
|
173
|
+
}
|
|
174
|
+
stop() {
|
|
175
|
+
this._isReady = false;
|
|
176
|
+
this._isPaused = false;
|
|
177
|
+
if (this.conn && this.acpSessionId && this._isBusy) {
|
|
178
|
+
this.conn.agent.notify(acp.methods.agent.session.cancel, { sessionId: this.acpSessionId }).catch(() => undefined);
|
|
179
|
+
}
|
|
180
|
+
this.conn?.close();
|
|
181
|
+
this.conn = null;
|
|
182
|
+
if (this.proc) {
|
|
183
|
+
killEngineTree(this.proc);
|
|
184
|
+
this.proc = null;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
pause() {
|
|
188
|
+
this._isPaused = true;
|
|
189
|
+
this.emit(SESSION_EVENT.PAUSED, { sessionId: this.sessionId });
|
|
190
|
+
}
|
|
191
|
+
resume() {
|
|
192
|
+
this._isPaused = false;
|
|
193
|
+
this.emit(SESSION_EVENT.RESUMED, { sessionId: this.sessionId });
|
|
194
|
+
}
|
|
195
|
+
// ── send() ─────────────────────────────────────────────────────────────
|
|
196
|
+
async send(message, options = {}) {
|
|
197
|
+
if (!this._isReady || !this.conn || !this.acpSessionId)
|
|
198
|
+
throw new Error('Session not ready. Call start() first.');
|
|
199
|
+
if (this._isBusy)
|
|
200
|
+
throw new Error('A turn is already running on this ACP session');
|
|
201
|
+
const text = typeof message === 'string' ? message : JSON.stringify(message);
|
|
202
|
+
const id = ++this._requests;
|
|
203
|
+
if (!options.waitForComplete) {
|
|
204
|
+
this._turn(text, options).catch((err) => this._emitError(err));
|
|
205
|
+
return { requestId: id, sent: true };
|
|
206
|
+
}
|
|
207
|
+
return this._turn(text, options);
|
|
208
|
+
}
|
|
209
|
+
async _turn(text, options) {
|
|
210
|
+
const conn = this.conn;
|
|
211
|
+
const sessionId = this.acpSessionId;
|
|
212
|
+
this._isBusy = true;
|
|
213
|
+
this.turnText = '';
|
|
214
|
+
const onText = (chunk) => {
|
|
215
|
+
try {
|
|
216
|
+
options.callbacks?.onText?.(chunk);
|
|
217
|
+
}
|
|
218
|
+
catch {
|
|
219
|
+
// A caller's callback failing does not fail the turn.
|
|
220
|
+
}
|
|
221
|
+
};
|
|
222
|
+
this.on(SESSION_EVENT.TEXT, onText);
|
|
223
|
+
let timer;
|
|
224
|
+
try {
|
|
225
|
+
const aborted = new Promise((_, reject) => {
|
|
226
|
+
this.turnFail = reject;
|
|
227
|
+
timer = setTimeout(() => {
|
|
228
|
+
conn.agent.notify(acp.methods.agent.session.cancel, { sessionId }).catch(() => undefined);
|
|
229
|
+
reject(new Error(`Timeout waiting for ACP agent ${this.agent.name} to finish the turn`));
|
|
230
|
+
}, options.timeout || DEFAULT_TURN_TIMEOUT_MS);
|
|
231
|
+
});
|
|
232
|
+
const response = await Promise.race([
|
|
233
|
+
conn.agent.request(acp.methods.agent.session.prompt, { sessionId, prompt: [{ type: 'text', text }] }),
|
|
234
|
+
aborted,
|
|
235
|
+
]);
|
|
236
|
+
this._absorbUsage(response.usage);
|
|
237
|
+
const ok = response.stopReason === 'end_turn';
|
|
238
|
+
this._stats.turns++;
|
|
239
|
+
if (ok)
|
|
240
|
+
this._stats.turnsSucceeded++;
|
|
241
|
+
this._stats.lastActivity = new Date().toISOString();
|
|
242
|
+
const event = {
|
|
243
|
+
type: 'result',
|
|
244
|
+
subtype: ok ? 'success' : 'error',
|
|
245
|
+
result: this.turnText,
|
|
246
|
+
is_error: !ok,
|
|
247
|
+
stop_reason: response.stopReason,
|
|
248
|
+
session_id: this.sessionId,
|
|
249
|
+
total_cost_usd: this._stats.costUsd,
|
|
250
|
+
};
|
|
251
|
+
this._addHistory({ time: this._stats.lastActivity, type: 'result', event });
|
|
252
|
+
this.emit(SESSION_EVENT.RESULT, event);
|
|
253
|
+
this.emit(SESSION_EVENT.TURN_COMPLETE, event);
|
|
254
|
+
if (!ok)
|
|
255
|
+
throw new Error(`ACP agent ${this.agent.name} stopped the turn: ${response.stopReason}`);
|
|
256
|
+
return { text: this.turnText, event };
|
|
257
|
+
}
|
|
258
|
+
catch (err) {
|
|
259
|
+
if (!(err instanceof Error && err.message.startsWith(`ACP agent ${this.agent.name} stopped`))) {
|
|
260
|
+
this._stats.turns++;
|
|
261
|
+
}
|
|
262
|
+
// The connection usually ends (stdout EOF) before the exit is reported.
|
|
263
|
+
if (err instanceof Error && /connection closed/i.test(err.message)) {
|
|
264
|
+
throw new Error(`ACP agent ${this.agent.name} exited mid-turn`);
|
|
265
|
+
}
|
|
266
|
+
throw err;
|
|
267
|
+
}
|
|
268
|
+
finally {
|
|
269
|
+
clearTimeout(timer);
|
|
270
|
+
this.turnFail = null;
|
|
271
|
+
this._isBusy = false;
|
|
272
|
+
this.removeListener(SESSION_EVENT.TEXT, onText);
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
// ── Agent → client ─────────────────────────────────────────────────────
|
|
276
|
+
_answerPermission(params) {
|
|
277
|
+
const allow = ALLOWING_MODES.has(this.options.permissionMode ?? '');
|
|
278
|
+
const kinds = allow ? ['allow_once', 'allow_always'] : ['reject_once', 'reject_always'];
|
|
279
|
+
const option = kinds.map((k) => params.options.find((o) => o.kind === k)).find(Boolean);
|
|
280
|
+
this._addHistory({
|
|
281
|
+
time: new Date().toISOString(),
|
|
282
|
+
type: 'permission',
|
|
283
|
+
event: { tool: params.toolCall.title, answer: option?.kind ?? 'cancelled' },
|
|
284
|
+
});
|
|
285
|
+
return option
|
|
286
|
+
? { outcome: { outcome: 'selected', optionId: option.optionId } }
|
|
287
|
+
: { outcome: { outcome: 'cancelled' } };
|
|
288
|
+
}
|
|
289
|
+
_onUpdate(params) {
|
|
290
|
+
if (params.sessionId !== this.acpSessionId)
|
|
291
|
+
return;
|
|
292
|
+
const update = params.update;
|
|
293
|
+
this._stats.lastActivity = new Date().toISOString();
|
|
294
|
+
switch (update.sessionUpdate) {
|
|
295
|
+
case 'agent_message_chunk':
|
|
296
|
+
if (update.content.type === 'text') {
|
|
297
|
+
this.turnText += update.content.text;
|
|
298
|
+
this.emit(SESSION_EVENT.TEXT, update.content.text);
|
|
299
|
+
}
|
|
300
|
+
break;
|
|
301
|
+
case 'tool_call':
|
|
302
|
+
this._stats.toolCalls++;
|
|
303
|
+
this.emit(SESSION_EVENT.TOOL_USE, { id: update.toolCallId, name: update.title, input: update.rawInput });
|
|
304
|
+
if (update.status === 'failed')
|
|
305
|
+
this._stats.toolErrors++;
|
|
306
|
+
break;
|
|
307
|
+
case 'tool_call_update':
|
|
308
|
+
if (update.status === 'failed')
|
|
309
|
+
this._stats.toolErrors++;
|
|
310
|
+
if (update.status === 'completed' || update.status === 'failed') {
|
|
311
|
+
this.emit(SESSION_EVENT.TOOL_RESULT, {
|
|
312
|
+
id: update.toolCallId,
|
|
313
|
+
is_error: update.status === 'failed',
|
|
314
|
+
output: update.rawOutput,
|
|
315
|
+
});
|
|
316
|
+
}
|
|
317
|
+
break;
|
|
318
|
+
case 'usage_update':
|
|
319
|
+
this._stats.contextUsed = update.used;
|
|
320
|
+
this._stats.contextSize = update.size;
|
|
321
|
+
if (update.cost && update.cost.currency.toUpperCase() === 'USD') {
|
|
322
|
+
this._stats.costUsd = update.cost.amount;
|
|
323
|
+
this._stats.costReported = true;
|
|
324
|
+
}
|
|
325
|
+
break;
|
|
326
|
+
default:
|
|
327
|
+
break;
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
/** `PromptResponse.usage` holds session totals, so it replaces, never adds. */
|
|
331
|
+
_absorbUsage(usage) {
|
|
332
|
+
if (!usage)
|
|
333
|
+
return;
|
|
334
|
+
this._stats.tokensIn = usage.inputTokens;
|
|
335
|
+
this._stats.tokensOut = usage.outputTokens;
|
|
336
|
+
this._stats.cachedTokens = usage.cachedReadTokens ?? 0;
|
|
337
|
+
if (!this._stats.costReported && this.agent.pricing) {
|
|
338
|
+
const p = this.agent.pricing;
|
|
339
|
+
const fresh = Math.max(0, this._stats.tokensIn - this._stats.cachedTokens);
|
|
340
|
+
this._stats.costUsd =
|
|
341
|
+
(fresh * p.input + this._stats.cachedTokens * (p.cached ?? p.input) + this._stats.tokensOut * p.output) /
|
|
342
|
+
1_000_000;
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
// ── ISession surface ───────────────────────────────────────────────────
|
|
346
|
+
getStats() {
|
|
347
|
+
const window = this._stats.contextSize || this.agent.contextWindow || 0;
|
|
348
|
+
return {
|
|
349
|
+
turns: this._stats.turns,
|
|
350
|
+
turnsSucceeded: this._stats.turnsSucceeded,
|
|
351
|
+
toolCalls: this._stats.toolCalls,
|
|
352
|
+
toolErrors: this._stats.toolErrors,
|
|
353
|
+
tokensIn: this._stats.tokensIn,
|
|
354
|
+
tokensOut: this._stats.tokensOut,
|
|
355
|
+
cachedTokens: this._stats.cachedTokens,
|
|
356
|
+
costUsd: Math.round(this._stats.costUsd * 10000) / 10000,
|
|
357
|
+
isReady: this._isReady,
|
|
358
|
+
startTime: this._startTime,
|
|
359
|
+
lastActivity: this._stats.lastActivity,
|
|
360
|
+
contextPercent: window ? Math.min(100, Math.round((this._stats.contextUsed / window) * 100)) : 0,
|
|
361
|
+
retries: 0,
|
|
362
|
+
sessionId: this.sessionId,
|
|
363
|
+
uptime: this._startTime ? Math.round((Date.now() - new Date(this._startTime).getTime()) / 1000) : 0,
|
|
364
|
+
acpSessionId: this.acpSessionId,
|
|
365
|
+
};
|
|
366
|
+
}
|
|
367
|
+
getHistory(limit = DEFAULT_HISTORY_LIMIT) {
|
|
368
|
+
return this._history.slice(-limit);
|
|
369
|
+
}
|
|
370
|
+
getCost() {
|
|
371
|
+
const p = this.agent.pricing;
|
|
372
|
+
return {
|
|
373
|
+
model: this.options.model || this.agent.name,
|
|
374
|
+
tokensIn: this._stats.tokensIn,
|
|
375
|
+
tokensOut: this._stats.tokensOut,
|
|
376
|
+
cachedTokens: this._stats.cachedTokens,
|
|
377
|
+
pricing: { inputPer1M: p?.input ?? 0, outputPer1M: p?.output ?? 0, cachedPer1M: p?.cached },
|
|
378
|
+
breakdown: { inputCost: 0, cachedCost: 0, outputCost: 0 },
|
|
379
|
+
totalUsd: this._stats.costUsd,
|
|
380
|
+
};
|
|
381
|
+
}
|
|
382
|
+
async compact(_summary) {
|
|
383
|
+
const event = { type: 'result', result: 'ACP agents manage their own context' };
|
|
384
|
+
return { text: 'ACP agents manage their own context', event };
|
|
385
|
+
}
|
|
386
|
+
getEffort() {
|
|
387
|
+
return this.options.effort || 'auto';
|
|
388
|
+
}
|
|
389
|
+
setEffort(level) {
|
|
390
|
+
this.options.effort = level;
|
|
391
|
+
}
|
|
392
|
+
resolveModel(alias) {
|
|
393
|
+
return resolveAlias(alias);
|
|
394
|
+
}
|
|
395
|
+
// ── Helpers ────────────────────────────────────────────────────────────
|
|
396
|
+
/** As in codex-app: with no listener, an `'error'` event would throw and take the process down. */
|
|
397
|
+
_emitError(err) {
|
|
398
|
+
if (this.listenerCount(SESSION_EVENT.ERROR) > 0)
|
|
399
|
+
this.emit(SESSION_EVENT.ERROR, err);
|
|
400
|
+
else
|
|
401
|
+
this.emit(SESSION_EVENT.LOG, `[acp:${this.agent.name}] ${err.message}`);
|
|
402
|
+
}
|
|
403
|
+
_addHistory(entry) {
|
|
404
|
+
this._history.push(entry);
|
|
405
|
+
if (this._history.length > MAX_HISTORY_ITEMS)
|
|
406
|
+
this._history.shift();
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
//# sourceMappingURL=persistent-acp-session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persistent-acp-session.js","sourceRoot":"","sources":["../../src/persistent-acp-session.ts"],"names":[],"mappings":"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"}
|
|
@@ -222,6 +222,7 @@ export class PersistentAgySession extends BaseOneShotSession {
|
|
|
222
222
|
let turnError;
|
|
223
223
|
const startedAt = Date.now();
|
|
224
224
|
const proc = spawnEngine(this.engineBin, args, {
|
|
225
|
+
launcher: this.options.launcher,
|
|
225
226
|
cwd: this.options.cwd,
|
|
226
227
|
env: { ...process.env },
|
|
227
228
|
stdio: ['ignore', 'pipe', 'pipe'],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistent-agy-session.js","sourceRoot":"","sources":["../../src/persistent-agy-session.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"persistent-agy-session.js","sourceRoot":"","sources":["../../src/persistent-agy-session.ts"],"names":[],"mappings":"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"}
|