frely-cli 0.13.1 → 0.13.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/dist/agent/app-install.d.ts +6 -3
- package/dist/agent/app-install.js +18 -6
- package/dist/agent/app-install.js.map +1 -1
- package/dist/agent/pi-node-supervisor.d.ts +59 -0
- package/dist/agent/pi-node-supervisor.js +250 -0
- package/dist/agent/pi-node-supervisor.js.map +1 -0
- package/dist/agent-help.d.ts +2 -86
- package/dist/agent-help.js +1 -8
- package/dist/agent-help.js.map +1 -1
- package/dist/app-manager.js +2 -2
- package/dist/app-manager.js.map +1 -1
- package/dist/auth.d.ts +1 -0
- package/dist/auth.js +52 -19
- package/dist/auth.js.map +1 -1
- package/dist/device/protocol.d.ts +1 -1
- package/dist/device/protocol.js +1 -1
- package/dist/device/protocol.js.map +1 -1
- package/dist/device/relay-client.d.ts +1 -8
- package/dist/device/relay-client.js +8 -20
- package/dist/device/relay-client.js.map +1 -1
- package/dist/diagnostics.js +3 -5
- package/dist/diagnostics.js.map +1 -1
- package/dist/index.js +20 -84
- package/dist/index.js.map +1 -1
- package/dist/runtime/diagnostics.js +1 -0
- package/dist/runtime/diagnostics.js.map +1 -1
- package/dist/runtime/mcp.d.ts +0 -137
- package/dist/runtime/mcp.js +0 -22
- package/dist/runtime/mcp.js.map +1 -1
- package/dist/skill/access.js +7 -2
- package/dist/skill/access.js.map +1 -1
- package/package.json +1 -1
- package/dist/agent/agent-service.d.ts +0 -77
- package/dist/agent/agent-service.js +0 -348
- package/dist/agent/agent-service.js.map +0 -1
- package/dist/agent/app-key.d.ts +0 -14
- package/dist/agent/app-key.js +0 -46
- package/dist/agent/app-key.js.map +0 -1
- package/dist/agent/compose.d.ts +0 -23
- package/dist/agent/compose.js +0 -42
- package/dist/agent/compose.js.map +0 -1
- package/dist/agent/ops-server.d.ts +0 -18
- package/dist/agent/ops-server.js +0 -175
- package/dist/agent/ops-server.js.map +0 -1
- package/dist/agent/ops-stdio.d.ts +0 -5
- package/dist/agent/ops-stdio.js +0 -47
- package/dist/agent/ops-stdio.js.map +0 -1
- package/dist/agent/ops.d.ts +0 -25
- package/dist/agent/ops.js +0 -82
- package/dist/agent/ops.js.map +0 -1
- package/dist/agent/protocol.d.ts +0 -72
- package/dist/agent/protocol.js +0 -195
- package/dist/agent/protocol.js.map +0 -1
- package/dist/agent/supervisor.d.ts +0 -80
- package/dist/agent/supervisor.js +0 -281
- package/dist/agent/supervisor.js.map +0 -1
- package/dist/agent/task-store.d.ts +0 -82
- package/dist/agent/task-store.js +0 -220
- package/dist/agent/task-store.js.map +0 -1
- package/dist/agent/tool-executor.d.ts +0 -28
- package/dist/agent/tool-executor.js +0 -113
- package/dist/agent/tool-executor.js.map +0 -1
- package/dist/agent/worktrees.d.ts +0 -35
- package/dist/agent/worktrees.js +0 -143
- package/dist/agent/worktrees.js.map +0 -1
- package/dist/runtime/relay-agent.d.ts +0 -25
- package/dist/runtime/relay-agent.js +0 -63
- package/dist/runtime/relay-agent.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/agent/protocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Agent host supervisor: spawns the capsule agent host with a duplex fd3
|
|
3
|
-
* protocol pipe, performs the frely.agent-host.v1 handshake, forwards tool
|
|
4
|
-
* requests, and owns idle shutdown / crash handling.
|
|
5
|
-
*/
|
|
6
|
-
import { type ChildProcess } from "node:child_process";
|
|
7
|
-
import { type DiagnosticLog } from "../runtime/diagnostics.js";
|
|
8
|
-
import { type AgentHostTaskEvent, type JsonRpcId } from "./protocol.js";
|
|
9
|
-
import { type CapsuleFacts, type AppInstall } from "./app-install.js";
|
|
10
|
-
export declare const AGENT_HOST_IDLE_TIMEOUT_MS: number;
|
|
11
|
-
export declare const AGENT_HOST_HANDSHAKE_TIMEOUT_MS = 15000;
|
|
12
|
-
export type AgentHostStatus = "stopped" | "starting" | "running" | "failed";
|
|
13
|
-
export type HostRequest = {
|
|
14
|
-
id: JsonRpcId;
|
|
15
|
-
method: string;
|
|
16
|
-
params: unknown;
|
|
17
|
-
};
|
|
18
|
-
/** JSON-RPC peer over the fd3 pipe of a spawned agent host. */
|
|
19
|
-
export declare class AgentHostConnection {
|
|
20
|
-
readonly process: ChildProcess;
|
|
21
|
-
private readonly duplex;
|
|
22
|
-
private readonly log?;
|
|
23
|
-
private nextId;
|
|
24
|
-
private readonly pending;
|
|
25
|
-
private writeClosed;
|
|
26
|
-
private closeListeners;
|
|
27
|
-
private constructor();
|
|
28
|
-
static start(facts: CapsuleFacts, options: {
|
|
29
|
-
log?: DiagnosticLog | undefined;
|
|
30
|
-
onEvent?: (taskId: string, event: AgentHostTaskEvent) => void;
|
|
31
|
-
onToolRequest?: (request: HostRequest, args: Record<string, unknown>, taskId: string) => Promise<unknown>;
|
|
32
|
-
}): Promise<AgentHostConnection>;
|
|
33
|
-
private onEvent?;
|
|
34
|
-
private onToolRequest?;
|
|
35
|
-
private handshake;
|
|
36
|
-
request(method: string, params: Record<string, unknown>, timeoutMs?: number): Promise<unknown>;
|
|
37
|
-
notify(method: string, params: Record<string, unknown>): void;
|
|
38
|
-
respond(id: JsonRpcId, result: unknown): void;
|
|
39
|
-
respondError(id: JsonRpcId, code: number, message: string): void;
|
|
40
|
-
shutdown(graceMs?: number): Promise<void>;
|
|
41
|
-
kill(): void;
|
|
42
|
-
onClose(listener: (error?: Error) => void): void;
|
|
43
|
-
private write;
|
|
44
|
-
private handleLine;
|
|
45
|
-
private handleNotification;
|
|
46
|
-
private handleHostRequest;
|
|
47
|
-
private closed;
|
|
48
|
-
private close;
|
|
49
|
-
}
|
|
50
|
-
export declare function cliVersion(): string;
|
|
51
|
-
/** Owns the single agent host process across tasks. */
|
|
52
|
-
export declare class AgentHostSupervisor {
|
|
53
|
-
private readonly deps;
|
|
54
|
-
private connection;
|
|
55
|
-
private starting;
|
|
56
|
-
private idleTimer;
|
|
57
|
-
private state;
|
|
58
|
-
private lastError;
|
|
59
|
-
private integrityVerified;
|
|
60
|
-
private lastActivityAt;
|
|
61
|
-
constructor(deps: {
|
|
62
|
-
resolveFacts: () => Promise<CapsuleFacts>;
|
|
63
|
-
onEvent: (taskId: string, event: AgentHostTaskEvent) => void;
|
|
64
|
-
onToolRequest: (request: HostRequest, args: Record<string, unknown>, taskId: string) => Promise<unknown>;
|
|
65
|
-
onHostLost: (error?: Error) => void;
|
|
66
|
-
isIdle: () => boolean | Promise<boolean>;
|
|
67
|
-
log?: DiagnosticLog | undefined;
|
|
68
|
-
fullIntegrityVerification?: boolean;
|
|
69
|
-
appInstall?: (() => Promise<AppInstall>) | undefined;
|
|
70
|
-
});
|
|
71
|
-
status(): {
|
|
72
|
-
state: AgentHostStatus;
|
|
73
|
-
hostVersion: string | null;
|
|
74
|
-
lastError: string | null;
|
|
75
|
-
};
|
|
76
|
-
ensureHost(): Promise<AgentHostConnection>;
|
|
77
|
-
stop(): Promise<void>;
|
|
78
|
-
private armIdleTimer;
|
|
79
|
-
private disarmIdleTimer;
|
|
80
|
-
}
|
package/dist/agent/supervisor.js
DELETED
|
@@ -1,281 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Agent host supervisor: spawns the capsule agent host with a duplex fd3
|
|
3
|
-
* protocol pipe, performs the frely.agent-host.v1 handshake, forwards tool
|
|
4
|
-
* requests, and owns idle shutdown / crash handling.
|
|
5
|
-
*/
|
|
6
|
-
import { spawn } from "node:child_process";
|
|
7
|
-
import { createInterface } from "node:readline";
|
|
8
|
-
import { diagnostic } from "../runtime/diagnostics.js";
|
|
9
|
-
import { VERSION } from "../version.js";
|
|
10
|
-
import { AGENT_HOST_CONNECTION_KEY_ENV, AGENT_HOST_PROTOCOL_VERSION, AgentHostProtocolError, decodeAgentHostFrame, decodeTaskEvent, decodeToolParams, encodeAgentHostFrame, isToolMethod, newConnectionKey, } from "./protocol.js";
|
|
11
|
-
export const AGENT_HOST_IDLE_TIMEOUT_MS = 15 * 60 * 1000;
|
|
12
|
-
export const AGENT_HOST_HANDSHAKE_TIMEOUT_MS = 15_000;
|
|
13
|
-
/** JSON-RPC peer over the fd3 pipe of a spawned agent host. */
|
|
14
|
-
export class AgentHostConnection {
|
|
15
|
-
process;
|
|
16
|
-
duplex;
|
|
17
|
-
log;
|
|
18
|
-
nextId = 1;
|
|
19
|
-
pending = new Map();
|
|
20
|
-
writeClosed = false;
|
|
21
|
-
closeListeners = [];
|
|
22
|
-
constructor(process, duplex, log) {
|
|
23
|
-
this.process = process;
|
|
24
|
-
this.duplex = duplex;
|
|
25
|
-
this.log = log;
|
|
26
|
-
const lines = createInterface({ input: duplex, crlfDelay: Infinity });
|
|
27
|
-
lines.on("line", (line) => this.handleLine(line));
|
|
28
|
-
// readline re-emits input stream errors (e.g. ECONNRESET during host teardown) as its own
|
|
29
|
-
// "error" event; without a listener that becomes an uncaughtException.
|
|
30
|
-
lines.on("error", (error) => this.close(error));
|
|
31
|
-
this.duplex.on("error", (error) => this.close(error));
|
|
32
|
-
this.duplex.on("close", () => this.close());
|
|
33
|
-
this.process.once("exit", (code, signal) => this.close(new Error(`Agent host exited (code=${code} signal=${signal}).`)));
|
|
34
|
-
}
|
|
35
|
-
static async start(facts, options) {
|
|
36
|
-
const key = newConnectionKey();
|
|
37
|
-
const child = spawn(facts.executable, facts.agentHostArguments, {
|
|
38
|
-
stdio: ["ignore", "ignore", "ignore", "pipe"],
|
|
39
|
-
env: { ...process.env, [AGENT_HOST_CONNECTION_KEY_ENV]: key },
|
|
40
|
-
windowsHide: true,
|
|
41
|
-
});
|
|
42
|
-
const duplex = child.stdio[3];
|
|
43
|
-
if (!duplex) {
|
|
44
|
-
child.kill();
|
|
45
|
-
throw new AgentHostProtocolError("unexpected_frame");
|
|
46
|
-
}
|
|
47
|
-
const connection = new AgentHostConnection(child, duplex, options.log);
|
|
48
|
-
try {
|
|
49
|
-
await connection.handshake(key);
|
|
50
|
-
}
|
|
51
|
-
catch (error) {
|
|
52
|
-
connection.kill();
|
|
53
|
-
throw error;
|
|
54
|
-
}
|
|
55
|
-
connection.onEvent = options.onEvent;
|
|
56
|
-
connection.onToolRequest = options.onToolRequest ?? null;
|
|
57
|
-
return connection;
|
|
58
|
-
}
|
|
59
|
-
onEvent;
|
|
60
|
-
onToolRequest;
|
|
61
|
-
async handshake(connectionKey) {
|
|
62
|
-
const result = (await this.request("initialize", { protocolVersion: AGENT_HOST_PROTOCOL_VERSION, cliVersion: cliVersion(), connectionKey, capabilities: ["tasks", "tools"] }, AGENT_HOST_HANDSHAKE_TIMEOUT_MS));
|
|
63
|
-
if (!result || result.protocolVersion !== AGENT_HOST_PROTOCOL_VERSION) {
|
|
64
|
-
throw new AgentHostProtocolError("handshake_rejected");
|
|
65
|
-
}
|
|
66
|
-
this.notify("initialized", {});
|
|
67
|
-
}
|
|
68
|
-
request(method, params, timeoutMs = 120_000) {
|
|
69
|
-
if (this.writeClosed)
|
|
70
|
-
return Promise.reject(new Error("Agent host connection is closed."));
|
|
71
|
-
const id = this.nextId++;
|
|
72
|
-
return new Promise((resolve, reject) => {
|
|
73
|
-
const timer = setTimeout(() => {
|
|
74
|
-
this.pending.delete(id);
|
|
75
|
-
reject(new Error(`Agent host request timed out: ${method}`));
|
|
76
|
-
}, timeoutMs);
|
|
77
|
-
timer.unref?.();
|
|
78
|
-
this.pending.set(id, { resolve, reject, method, timer });
|
|
79
|
-
this.write({ jsonrpc: "2.0", id, method, params });
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
notify(method, params) {
|
|
83
|
-
if (this.writeClosed)
|
|
84
|
-
return;
|
|
85
|
-
this.write({ jsonrpc: "2.0", method, params });
|
|
86
|
-
}
|
|
87
|
-
respond(id, result) {
|
|
88
|
-
if (this.writeClosed)
|
|
89
|
-
return;
|
|
90
|
-
this.write({ jsonrpc: "2.0", id, result });
|
|
91
|
-
}
|
|
92
|
-
respondError(id, code, message) {
|
|
93
|
-
if (this.writeClosed)
|
|
94
|
-
return;
|
|
95
|
-
this.write({ jsonrpc: "2.0", id, error: { code, message } });
|
|
96
|
-
}
|
|
97
|
-
async shutdown(graceMs = 5_000) {
|
|
98
|
-
try {
|
|
99
|
-
await this.request("host.shutdown", {}, graceMs).catch(() => undefined);
|
|
100
|
-
}
|
|
101
|
-
finally {
|
|
102
|
-
this.kill();
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
kill() {
|
|
106
|
-
this.writeClosed = true;
|
|
107
|
-
this.process.kill();
|
|
108
|
-
}
|
|
109
|
-
onClose(listener) {
|
|
110
|
-
this.closeListeners.push(listener);
|
|
111
|
-
}
|
|
112
|
-
write(message) {
|
|
113
|
-
this.duplex.write(encodeAgentHostFrame(message), (error) => {
|
|
114
|
-
if (error)
|
|
115
|
-
this.close(error instanceof Error ? error : new Error(String(error)));
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
handleLine(line) {
|
|
119
|
-
let message;
|
|
120
|
-
try {
|
|
121
|
-
message = decodeAgentHostFrame(line);
|
|
122
|
-
}
|
|
123
|
-
catch (error) {
|
|
124
|
-
diagnostic(this.log, "agent.host.frame_invalid", {}, error);
|
|
125
|
-
this.close(error instanceof Error ? error : new Error("invalid frame"));
|
|
126
|
-
return;
|
|
127
|
-
}
|
|
128
|
-
if ("method" in message) {
|
|
129
|
-
if ("id" in message && message.id !== undefined)
|
|
130
|
-
void this.handleHostRequest(message);
|
|
131
|
-
else
|
|
132
|
-
this.handleNotification(message.method, message.params);
|
|
133
|
-
return;
|
|
134
|
-
}
|
|
135
|
-
const pending = this.pending.get(message.id);
|
|
136
|
-
if (!pending)
|
|
137
|
-
return;
|
|
138
|
-
this.pending.delete(message.id);
|
|
139
|
-
clearTimeout(pending.timer);
|
|
140
|
-
if ("error" in message && message.error)
|
|
141
|
-
pending.reject(new Error(`${pending.method}: ${message.error.message}`));
|
|
142
|
-
else
|
|
143
|
-
pending.resolve(message.result);
|
|
144
|
-
}
|
|
145
|
-
handleNotification(method, params) {
|
|
146
|
-
if (method !== "task.event") {
|
|
147
|
-
diagnostic(this.log, "agent.host.unexpected_notification", { method });
|
|
148
|
-
return;
|
|
149
|
-
}
|
|
150
|
-
try {
|
|
151
|
-
const { taskId, event } = decodeTaskEvent(params);
|
|
152
|
-
this.onEvent?.(taskId, event);
|
|
153
|
-
}
|
|
154
|
-
catch (error) {
|
|
155
|
-
diagnostic(this.log, "agent.host.event_invalid", {}, error);
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
async handleHostRequest(request) {
|
|
159
|
-
if (!isToolMethod(request.method)) {
|
|
160
|
-
this.respondError(request.id, -32601, `Unknown method: ${request.method}`);
|
|
161
|
-
return;
|
|
162
|
-
}
|
|
163
|
-
if (!this.onToolRequest) {
|
|
164
|
-
this.respondError(request.id, -32000, "No tool executor attached.");
|
|
165
|
-
return;
|
|
166
|
-
}
|
|
167
|
-
try {
|
|
168
|
-
const { taskId, args } = decodeToolParams(request.method, request.params);
|
|
169
|
-
const result = await this.onToolRequest({ id: request.id, method: request.method, params: request.params }, args, taskId);
|
|
170
|
-
this.respond(request.id, { ok: true, result });
|
|
171
|
-
}
|
|
172
|
-
catch (error) {
|
|
173
|
-
this.respond(request.id, { ok: false, error: { code: "tool_failed", message: error instanceof Error ? error.message.slice(0, 512) : "tool failed" } });
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
closed = false;
|
|
177
|
-
close(error) {
|
|
178
|
-
if (this.closed)
|
|
179
|
-
return;
|
|
180
|
-
this.closed = true;
|
|
181
|
-
this.writeClosed = true;
|
|
182
|
-
for (const pending of this.pending.values()) {
|
|
183
|
-
clearTimeout(pending.timer);
|
|
184
|
-
pending.reject(error ?? new Error("Agent host connection closed."));
|
|
185
|
-
}
|
|
186
|
-
this.pending.clear();
|
|
187
|
-
for (const listener of [...this.closeListeners])
|
|
188
|
-
listener(error);
|
|
189
|
-
this.closeListeners = [];
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
export function cliVersion() {
|
|
193
|
-
return process.env.FRELY_CLI_VERSION_OVERRIDE ?? VERSION;
|
|
194
|
-
}
|
|
195
|
-
/** Owns the single agent host process across tasks. */
|
|
196
|
-
export class AgentHostSupervisor {
|
|
197
|
-
deps;
|
|
198
|
-
connection = null;
|
|
199
|
-
starting = null;
|
|
200
|
-
idleTimer = null;
|
|
201
|
-
state = "stopped";
|
|
202
|
-
lastError = null;
|
|
203
|
-
integrityVerified = false;
|
|
204
|
-
lastActivityAt = 0;
|
|
205
|
-
constructor(deps) {
|
|
206
|
-
this.deps = deps;
|
|
207
|
-
}
|
|
208
|
-
status() {
|
|
209
|
-
return { state: this.state, hostVersion: null, lastError: this.lastError };
|
|
210
|
-
}
|
|
211
|
-
async ensureHost() {
|
|
212
|
-
if (this.connection)
|
|
213
|
-
return this.connection;
|
|
214
|
-
if (this.starting)
|
|
215
|
-
return this.starting;
|
|
216
|
-
this.starting = (async () => {
|
|
217
|
-
this.state = "starting";
|
|
218
|
-
const facts = await this.deps.resolveFacts();
|
|
219
|
-
if (this.deps.fullIntegrityVerification && !this.integrityVerified) {
|
|
220
|
-
const { verifyCapsuleIntegrity } = await import("./app-install.js");
|
|
221
|
-
const install = this.deps.appInstall ? await this.deps.appInstall() : null;
|
|
222
|
-
if (install)
|
|
223
|
-
await verifyCapsuleIntegrity(install);
|
|
224
|
-
this.integrityVerified = true;
|
|
225
|
-
}
|
|
226
|
-
const connection = await AgentHostConnection.start(facts, {
|
|
227
|
-
log: this.deps.log,
|
|
228
|
-
onEvent: (taskId, event) => {
|
|
229
|
-
this.lastActivityAt = Date.now();
|
|
230
|
-
this.deps.onEvent(taskId, event);
|
|
231
|
-
},
|
|
232
|
-
onToolRequest: (request, args, taskId) => {
|
|
233
|
-
this.lastActivityAt = Date.now();
|
|
234
|
-
return this.deps.onToolRequest(request, args, taskId);
|
|
235
|
-
},
|
|
236
|
-
});
|
|
237
|
-
connection.onClose((error) => {
|
|
238
|
-
this.connection = null;
|
|
239
|
-
this.state = "stopped";
|
|
240
|
-
this.lastError = error ? error.message : null;
|
|
241
|
-
this.deps.onHostLost(error);
|
|
242
|
-
});
|
|
243
|
-
this.connection = connection;
|
|
244
|
-
this.state = "running";
|
|
245
|
-
this.lastError = null;
|
|
246
|
-
this.armIdleTimer();
|
|
247
|
-
return connection;
|
|
248
|
-
})();
|
|
249
|
-
try {
|
|
250
|
-
return await this.starting;
|
|
251
|
-
}
|
|
252
|
-
finally {
|
|
253
|
-
this.starting = null;
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
async stop() {
|
|
257
|
-
this.disarmIdleTimer();
|
|
258
|
-
const connection = this.connection;
|
|
259
|
-
this.connection = null;
|
|
260
|
-
this.state = "stopped";
|
|
261
|
-
if (connection)
|
|
262
|
-
await connection.shutdown();
|
|
263
|
-
}
|
|
264
|
-
armIdleTimer() {
|
|
265
|
-
this.disarmIdleTimer();
|
|
266
|
-
this.lastActivityAt = Date.now();
|
|
267
|
-
this.idleTimer = setInterval(() => {
|
|
268
|
-
void Promise.resolve(this.deps.isIdle()).then((idle) => {
|
|
269
|
-
if (idle && Date.now() - this.lastActivityAt >= AGENT_HOST_IDLE_TIMEOUT_MS)
|
|
270
|
-
void this.stop();
|
|
271
|
-
});
|
|
272
|
-
}, 30_000);
|
|
273
|
-
this.idleTimer.unref?.();
|
|
274
|
-
}
|
|
275
|
-
disarmIdleTimer() {
|
|
276
|
-
if (this.idleTimer)
|
|
277
|
-
clearInterval(this.idleTimer);
|
|
278
|
-
this.idleTimer = null;
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
//# sourceMappingURL=supervisor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"supervisor.js","sourceRoot":"","sources":["../../src/agent/supervisor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
import { type AgentHostTaskEvent } from "./protocol.js";
|
|
2
|
-
export type AgentTaskRuntimeStatus = "queued" | "running" | "waiting_input" | "completed" | "failed" | "cancelled";
|
|
3
|
-
export type AgentTaskMergeStatus = "none" | "merge_requested" | "approved" | "merged" | "merge_conflict" | "discarded";
|
|
4
|
-
export type AgentTaskSource = {
|
|
5
|
-
kind: "gui";
|
|
6
|
-
} | {
|
|
7
|
-
kind: "web";
|
|
8
|
-
} | {
|
|
9
|
-
kind: "mcp";
|
|
10
|
-
authorizationId: string;
|
|
11
|
-
};
|
|
12
|
-
export type AgentTaskUsage = {
|
|
13
|
-
inputTokens: number;
|
|
14
|
-
outputTokens: number;
|
|
15
|
-
costUsd: number;
|
|
16
|
-
};
|
|
17
|
-
export type AgentTaskRecord = {
|
|
18
|
-
id: string;
|
|
19
|
-
source: AgentTaskSource;
|
|
20
|
-
workspace: string;
|
|
21
|
-
worktreePath: string;
|
|
22
|
-
branch: string;
|
|
23
|
-
baseBranch: string;
|
|
24
|
-
baseCommit: string;
|
|
25
|
-
goal: string;
|
|
26
|
-
model: string | null;
|
|
27
|
-
maxCostUsd: number;
|
|
28
|
-
status: AgentTaskRuntimeStatus;
|
|
29
|
-
mergeStatus: AgentTaskMergeStatus;
|
|
30
|
-
usage: AgentTaskUsage;
|
|
31
|
-
error: string | null;
|
|
32
|
-
mergeRequest: {
|
|
33
|
-
requestedAt: string;
|
|
34
|
-
note?: string;
|
|
35
|
-
} | null;
|
|
36
|
-
approval: {
|
|
37
|
-
approvedAt: string;
|
|
38
|
-
approvedBy: "gui" | "web";
|
|
39
|
-
} | null;
|
|
40
|
-
createdAt: string;
|
|
41
|
-
updatedAt: string;
|
|
42
|
-
settledAt: string | null;
|
|
43
|
-
};
|
|
44
|
-
export type StoredAgentEvent = AgentHostTaskEvent & {
|
|
45
|
-
seq: number;
|
|
46
|
-
at: string;
|
|
47
|
-
};
|
|
48
|
-
export declare const AGENT_TASK_EVENTS_PAGE_SIZE = 100;
|
|
49
|
-
export declare const AGENT_TASK_MAX_GOAL_BYTES: number;
|
|
50
|
-
export declare const AGENT_DEFAULT_MAX_COST_USD = 2;
|
|
51
|
-
export declare const AGENT_MAX_COST_USD_LIMIT = 50;
|
|
52
|
-
export declare const AGENT_DEFAULT_MAX_CONCURRENT_TASKS = 2;
|
|
53
|
-
export declare const AGENT_START_RATE_LIMIT_PER_MINUTE = 5;
|
|
54
|
-
export declare class AgentStoreError extends Error {
|
|
55
|
-
readonly code: "task_not_found" | "task_exists" | "store_corrupt" | "invalid_task";
|
|
56
|
-
constructor(code: "task_not_found" | "task_exists" | "store_corrupt" | "invalid_task");
|
|
57
|
-
}
|
|
58
|
-
export declare function agentStateDir(env?: NodeJS.ProcessEnv): string;
|
|
59
|
-
export declare function agentConfigPath(env?: NodeJS.ProcessEnv): string;
|
|
60
|
-
export declare function agentDataDir(env?: NodeJS.ProcessEnv): string;
|
|
61
|
-
export declare function workspaceStorageKey(workspaceRoot: string): string;
|
|
62
|
-
/** Serialize + validate the runtime/merge state machine transitions. */
|
|
63
|
-
export declare function nextRuntimeStatus(current: AgentTaskRuntimeStatus, event: AgentHostTaskEvent): AgentTaskRuntimeStatus | null;
|
|
64
|
-
export declare function isTerminalStatus(status: AgentTaskRuntimeStatus): boolean;
|
|
65
|
-
export declare class TaskStore {
|
|
66
|
-
private readonly rootDir;
|
|
67
|
-
constructor(rootDir: string);
|
|
68
|
-
static open(rootDir?: string, env?: NodeJS.ProcessEnv): TaskStore;
|
|
69
|
-
create(record: AgentTaskRecord): Promise<void>;
|
|
70
|
-
read(id: string): Promise<AgentTaskRecord>;
|
|
71
|
-
update(id: string, mutate: (record: AgentTaskRecord) => AgentTaskRecord): Promise<AgentTaskRecord>;
|
|
72
|
-
list(): Promise<AgentTaskRecord[]>;
|
|
73
|
-
appendEvent(id: string, event: AgentHostTaskEvent): Promise<StoredAgentEvent>;
|
|
74
|
-
readEvents(id: string, cursor: number, limit?: number): Promise<{
|
|
75
|
-
events: StoredAgentEvent[];
|
|
76
|
-
nextCursor: number | null;
|
|
77
|
-
}>;
|
|
78
|
-
private lastEventSeq;
|
|
79
|
-
private taskDir;
|
|
80
|
-
private persist;
|
|
81
|
-
}
|
|
82
|
-
export declare function validateTaskRecord(value: unknown): AgentTaskRecord;
|