@moxt-ai/mobius 0.0.356 → 0.0.358
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/LICENSE +202 -0
- package/dist/cli.js +414 -290
- package/dist/cli.js.map +3 -3
- package/dist/engine/acp/adapter/adapter-registry.d.ts +1 -1
- package/dist/engine/acp/adapter/adapter-registry.d.ts.map +1 -1
- package/dist/engine/acp/adapter/adapter-registry.js +2 -1
- package/dist/engine/acp/adapter/adapter-registry.js.map +1 -1
- package/dist/engine/acp/adapter/claude/adapter.d.ts +8 -35
- package/dist/engine/acp/adapter/claude/adapter.d.ts.map +1 -1
- package/dist/engine/acp/adapter/claude/adapter.js +7 -6
- package/dist/engine/acp/adapter/claude/adapter.js.map +1 -1
- package/dist/engine/acp/adapter/codex/adapter.d.ts +8 -35
- package/dist/engine/acp/adapter/codex/adapter.d.ts.map +1 -1
- package/dist/engine/acp/adapter/codex/adapter.js +27 -13
- package/dist/engine/acp/adapter/codex/adapter.js.map +1 -1
- package/dist/engine/acp/adapter/live-sessions.d.ts +1 -1
- package/dist/engine/acp/adapter/live-sessions.d.ts.map +1 -1
- package/dist/engine/acp/adapter/live-sessions.js +1 -0
- package/dist/engine/acp/adapter/live-sessions.js.map +1 -1
- package/dist/engine/acp/adapter/native-session-lookup.d.ts +2 -2
- package/dist/engine/acp/adapter/native-session-lookup.d.ts.map +1 -1
- package/dist/engine/acp/adapter/native-session-lookup.js +4 -4
- package/dist/engine/acp/adapter/native-session-lookup.js.map +1 -1
- package/dist/engine/acp/adapter/pi/adapter.d.ts +8 -35
- package/dist/engine/acp/adapter/pi/adapter.d.ts.map +1 -1
- package/dist/engine/acp/adapter/pi/adapter.js +7 -6
- package/dist/engine/acp/adapter/pi/adapter.js.map +1 -1
- package/dist/engine/acp/adapter/query-processes.d.ts +10 -7
- package/dist/engine/acp/adapter/query-processes.d.ts.map +1 -1
- package/dist/engine/acp/adapter/query-processes.js +66 -79
- package/dist/engine/acp/adapter/query-processes.js.map +1 -1
- package/dist/engine/acp/adapter/query-session.d.ts +6 -4
- package/dist/engine/acp/adapter/query-session.d.ts.map +1 -1
- package/dist/engine/acp/adapter/query-session.js +37 -22
- package/dist/engine/acp/adapter/query-session.js.map +1 -1
- package/dist/engine/acp/adapter/registry.js +3 -3
- package/dist/engine/acp/adapter/registry.js.map +1 -1
- package/dist/engine/acp/adapter/session-events.d.ts +1 -0
- package/dist/engine/acp/adapter/session-events.d.ts.map +1 -1
- package/dist/engine/acp/adapter/session-events.js +60 -56
- package/dist/engine/acp/adapter/session-events.js.map +1 -1
- package/dist/engine/acp/content/content-externalizer.d.ts +8 -2
- package/dist/engine/acp/content/content-externalizer.d.ts.map +1 -1
- package/dist/engine/acp/content/content-externalizer.js +23 -6
- package/dist/engine/acp/content/content-externalizer.js.map +1 -1
- package/dist/engine/acp/harness/codex/agent.d.ts.map +1 -1
- package/dist/engine/acp/harness/codex/agent.js +14 -8
- package/dist/engine/acp/harness/codex/agent.js.map +1 -1
- package/dist/engine/acp/harness/codex/borrowed-agent.d.ts.map +1 -1
- package/dist/engine/acp/harness/codex/borrowed-agent.js +8 -2
- package/dist/engine/acp/harness/codex/borrowed-agent.js.map +1 -1
- package/dist/engine/acp/harness/codex/history.d.ts.map +1 -1
- package/dist/engine/acp/harness/codex/history.js +25 -23
- package/dist/engine/acp/harness/codex/history.js.map +1 -1
- package/dist/engine/acp/native-history/preview-contract.d.ts +6 -13
- package/dist/engine/acp/native-history/preview-contract.d.ts.map +1 -1
- package/dist/engine/agent/runtime-agents.d.ts +1 -1
- package/dist/engine/agent/runtime-agents.d.ts.map +1 -1
- package/dist/engine/agent/runtime-agents.js +2 -2
- package/dist/engine/agent/runtime-agents.js.map +1 -1
- package/dist/engine/runtime/run.d.ts.map +1 -1
- package/dist/engine/runtime/run.js +2 -2
- package/dist/engine/runtime/run.js.map +1 -1
- package/dist/engine/session/content/external-content-store.d.ts +4 -0
- package/dist/engine/session/content/external-content-store.d.ts.map +1 -1
- package/dist/engine/session/content/external-content-store.js +31 -1
- package/dist/engine/session/content/external-content-store.js.map +1 -1
- package/dist/engine/session/live/agent-session.d.ts +1 -1
- package/dist/engine/session/live/agent-session.d.ts.map +1 -1
- package/dist/engine/session/live/agent-session.js +2 -1
- package/dist/engine/session/live/agent-session.js.map +1 -1
- package/dist/engine/session/manager/session-manager.d.ts.map +1 -1
- package/dist/engine/session/manager/session-manager.js +14 -1
- package/dist/engine/session/manager/session-manager.js.map +1 -1
- package/dist/engine/session/native/native-session-browser.d.ts.map +1 -1
- package/dist/engine/session/native/native-session-browser.js +8 -8
- package/dist/engine/session/native/native-session-browser.js.map +1 -1
- package/dist/engine/session/prompt/prompt-lifecycle.d.ts.map +1 -1
- package/dist/engine/session/prompt/prompt-lifecycle.js +6 -1
- package/dist/engine/session/prompt/prompt-lifecycle.js.map +1 -1
- package/dist/engine/session/turn/execution-receipts.d.ts.map +1 -1
- package/dist/engine/session/turn/execution-receipts.js +14 -4
- package/dist/engine/session/turn/execution-receipts.js.map +1 -1
- package/dist/engine.js +408 -283
- package/dist/engine.js.map +4 -4
- package/package.json +4 -4
|
@@ -1,18 +1,21 @@
|
|
|
1
1
|
import type { SessionCapabilities } from "@moxt-ai/mobius-sdk/protocol";
|
|
2
2
|
import { type SessionEventPage } from "../../session/history/session-event-store.ts";
|
|
3
3
|
import type { AgentProcessPool } from "../../session/process/agent-process-pool.ts";
|
|
4
|
-
import
|
|
4
|
+
import { RetainedAgentProcesses } from "../../session/process/retained-agent-processes.ts";
|
|
5
|
+
import type { AcpAgentDefinition } from "../agent/agent-definition.ts";
|
|
6
|
+
import type { NativeSessionPreviewRequest } from "../native-history/preview-contract.ts";
|
|
5
7
|
import type { NativeSessionPage } from "../protocol/native-session.ts";
|
|
6
8
|
import { AcpQuerySession } from "./query-session.ts";
|
|
7
9
|
import type { AcpSessionConnector } from "./session-events.ts";
|
|
8
|
-
/** Owns
|
|
10
|
+
/** Owns workspace-scoped readers, independently of execution conversations. */
|
|
9
11
|
export declare class AgentQueryProcesses {
|
|
10
12
|
#private;
|
|
11
|
-
constructor(processes: AgentProcessPool, connector: AcpSessionConnector);
|
|
12
|
-
readonly
|
|
13
|
-
readonly
|
|
14
|
-
readonly
|
|
15
|
-
readonly
|
|
13
|
+
constructor(agent: AcpAgentDefinition, processes: AgentProcessPool, connector: AcpSessionConnector);
|
|
14
|
+
readonly refreshAgent: (agent: AcpAgentDefinition) => void;
|
|
15
|
+
readonly retire: (readers: RetainedAgentProcesses<AcpQuerySession>, cwd: string, runtime: AcpQuerySession) => Promise<void>;
|
|
16
|
+
readonly capabilities: (cwd: string, signal: AbortSignal) => Promise<SessionCapabilities>;
|
|
17
|
+
readonly listNativeSessions: (cwd: string, cursor: string | null, signal: AbortSignal) => Promise<NativeSessionPage>;
|
|
18
|
+
readonly previewSessionEvents: (cwd: string, additionalDirectories: readonly string[], request: NativeSessionPreviewRequest, signal: AbortSignal) => Promise<SessionEventPage>;
|
|
16
19
|
readonly close: () => Promise<void>;
|
|
17
20
|
}
|
|
18
21
|
//# sourceMappingURL=query-processes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-processes.d.ts","sourceRoot":"","sources":["../../../../src/engine/acp/adapter/query-processes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"query-processes.d.ts","sourceRoot":"","sources":["../../../../src/engine/acp/adapter/query-processes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAA2B,KAAK,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAE9G,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAC;AACpF,OAAO,EAAE,sBAAsB,EAAE,MAAM,mDAAmD,CAAC;AAC3F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAC;AACzF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,+EAA+E;AAC/E,qBAAa,mBAAmB;;IAW5B,YAAY,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,gBAAgB,EAAE,SAAS,EAAE,mBAAmB,EAIjG;IAED,QAAQ,CAAC,YAAY,UAAW,kBAAkB,KAAG,IAAI,CAEvD;IAEF,QAAQ,CAAC,MAAM,YACF,sBAAsB,CAAC,eAAe,CAAC,OAC3C,MAAM,WACF,eAAe,KACzB,OAAO,CAAC,IAAI,CAAC,CAOd;IAyDF,QAAQ,CAAC,YAAY,QAAe,MAAM,UAAU,WAAW,KAAG,OAAO,CAAC,mBAAmB,CAAC,CAClB;IAE5E,QAAQ,CAAC,kBAAkB,QAClB,MAAM,UACH,MAAM,GAAG,IAAI,UACb,WAAW,KACpB,OAAO,CAAC,iBAAiB,CAAC,CACyE;IAEtG,QAAQ,CAAC,oBAAoB,QACpB,MAAM,yBACY,SAAS,MAAM,EAAE,WAC/B,2BAA2B,UAC5B,WAAW,KACpB,OAAO,CAAC,gBAAgB,CAAC,CA8B1B;IAEF,QAAQ,CAAC,KAAK,QAAa,OAAO,CAAC,IAAI,CAAC,CAYtC;CACL"}
|
|
@@ -1,117 +1,104 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
1
2
|
import { MemorySessionEventStore } from "../../session/history/session-event-store.js";
|
|
2
3
|
import { waitForSharedOperation } from "../../session/manager/operation-drain.js";
|
|
3
4
|
import { RetainedAgentProcesses } from "../../session/process/retained-agent-processes.js";
|
|
4
|
-
import { AcpExecutionError } from "../acp-error.js";
|
|
5
5
|
import { AcpQuerySession } from "./query-session.js";
|
|
6
|
-
/** Owns
|
|
6
|
+
/** Owns workspace-scoped readers, independently of execution conversations. */
|
|
7
7
|
export class AgentQueryProcesses {
|
|
8
8
|
#eventPreviewsBySession = new Map();
|
|
9
|
-
#
|
|
9
|
+
#processesByAgent = new Map();
|
|
10
|
+
#agent;
|
|
10
11
|
#processes;
|
|
11
12
|
#store = new MemorySessionEventStore();
|
|
12
13
|
#connector;
|
|
13
|
-
constructor(processes, connector) {
|
|
14
|
+
constructor(agent, processes, connector) {
|
|
15
|
+
this.#agent = agent;
|
|
14
16
|
this.#processes = processes;
|
|
15
17
|
this.#connector = connector;
|
|
16
|
-
this.#processesByQuery = new RetainedAgentProcesses({
|
|
17
|
-
touch: processes.touch,
|
|
18
|
-
changed: processes.notifyChanged,
|
|
19
|
-
});
|
|
20
18
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
if (retained) {
|
|
24
|
-
this.#store.remove(sessionId);
|
|
25
|
-
}
|
|
26
|
-
await this.#processes.retire(runtime, () => runtime.closeProcess());
|
|
19
|
+
refreshAgent = (agent) => {
|
|
20
|
+
this.#agent = agent;
|
|
27
21
|
};
|
|
28
|
-
async
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
retire
|
|
32
|
-
retireIdle: (runtime) => this.retire(options.sessionId, runtime),
|
|
33
|
-
});
|
|
34
|
-
this.#processesByQuery.retain(options.sessionId, runtime);
|
|
35
|
-
return runtime;
|
|
36
|
-
}
|
|
37
|
-
async #startPreparation(options) {
|
|
38
|
-
return await this.#processesByQuery.prepare(options.sessionId, async () => {
|
|
39
|
-
return await this.#startRetained(options);
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
async #replacePreparation(existing, options) {
|
|
43
|
-
return await this.#processesByQuery.prepare(options.sessionId, async () => {
|
|
44
|
-
await this.retire(options.sessionId, existing);
|
|
45
|
-
return await this.#startRetained(options);
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
#prepare = async (options) => {
|
|
49
|
-
const pending = this.#processesByQuery.pending(options.sessionId);
|
|
50
|
-
if (pending !== undefined) {
|
|
51
|
-
const runtime = await waitForSharedOperation(pending, options.signal);
|
|
52
|
-
if (runtime.belongsTo(options.agent.id, options.cwd, options.additionalDirectories)) {
|
|
53
|
-
this.#processesByQuery.touch(options.sessionId, runtime);
|
|
54
|
-
return runtime.capabilities();
|
|
55
|
-
}
|
|
56
|
-
return await this.#prepare(options);
|
|
22
|
+
retire = async (readers, cwd, runtime) => {
|
|
23
|
+
readers.detach(cwd, runtime);
|
|
24
|
+
try {
|
|
25
|
+
await this.#processes.retire(runtime, () => runtime.closeProcess());
|
|
57
26
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
if (existing.belongsTo(options.agent.id, options.cwd, options.additionalDirectories)) {
|
|
61
|
-
this.#processesByQuery.touch(options.sessionId, existing);
|
|
62
|
-
return existing.capabilities();
|
|
63
|
-
}
|
|
64
|
-
const runtime = await this.#replacePreparation(existing, options);
|
|
65
|
-
return runtime.capabilities();
|
|
27
|
+
finally {
|
|
28
|
+
runtime.discardEvents();
|
|
66
29
|
}
|
|
67
|
-
const runtime = await this.#startPreparation(options);
|
|
68
|
-
return runtime.capabilities();
|
|
69
30
|
};
|
|
70
|
-
async #ensure(
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
}
|
|
76
|
-
this.#processesByQuery.touch(options.sessionId, existing);
|
|
77
|
-
return existing;
|
|
31
|
+
async #ensure(agent, readers, cwd, signal) {
|
|
32
|
+
signal.throwIfAborted();
|
|
33
|
+
const pending = readers.pending(cwd);
|
|
34
|
+
if (pending !== undefined) {
|
|
35
|
+
return await waitForSharedOperation(pending, signal);
|
|
78
36
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
37
|
+
const existing = readers.get(cwd);
|
|
38
|
+
if (existing !== undefined && !existing.hasTerminated()) {
|
|
39
|
+
readers.touch(cwd, existing);
|
|
40
|
+
return existing;
|
|
83
41
|
}
|
|
84
|
-
return
|
|
42
|
+
return await readers.prepare(cwd, async () => {
|
|
43
|
+
if (existing !== undefined) {
|
|
44
|
+
await this.retire(readers, cwd, existing);
|
|
45
|
+
}
|
|
46
|
+
// This ID belongs to the reader, never to a user's conversation.
|
|
47
|
+
const readerId = randomUUID();
|
|
48
|
+
const runtime = await this.#processes.startRetained(signal, () => AcpQuerySession.start(agent, cwd, readerId, this.#store, this.#connector, signal), {
|
|
49
|
+
isBusy: () => readers.isBusy(cwd),
|
|
50
|
+
retire: (runtime) => this.retire(readers, cwd, runtime),
|
|
51
|
+
retireIdle: (runtime) => this.retire(readers, cwd, runtime),
|
|
52
|
+
});
|
|
53
|
+
readers.retain(cwd, runtime);
|
|
54
|
+
return runtime;
|
|
55
|
+
});
|
|
85
56
|
}
|
|
86
|
-
#use = async (
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
57
|
+
#use = async (cwd, signal, operation) => {
|
|
58
|
+
// Capture one immutable definition for this operation, including while it waits for capacity.
|
|
59
|
+
const agent = this.#agent;
|
|
60
|
+
let readers = this.#processesByAgent.get(agent);
|
|
61
|
+
if (readers === undefined) {
|
|
62
|
+
readers = new RetainedAgentProcesses({
|
|
63
|
+
touch: this.#processes.touch,
|
|
64
|
+
changed: this.#processes.notifyChanged,
|
|
65
|
+
});
|
|
66
|
+
this.#processesByAgent.set(agent, readers);
|
|
67
|
+
}
|
|
68
|
+
const current = readers;
|
|
69
|
+
return await current.use(cwd, async () => await operation(await this.#ensure(agent, current, cwd, signal)));
|
|
70
|
+
};
|
|
71
|
+
capabilities = async (cwd, signal) => await this.#use(cwd, signal, async (runtime) => runtime.capabilities());
|
|
72
|
+
listNativeSessions = async (cwd, cursor, signal) => await this.#use(cwd, signal, async (runtime) => await runtime.listNativeSessions(cursor, signal));
|
|
73
|
+
previewSessionEvents = async (cwd, additionalDirectories, request, signal) => {
|
|
74
|
+
signal.throwIfAborted();
|
|
75
|
+
const agent = this.#agent;
|
|
76
|
+
const { nativeSessionId, eventLimit, cursor, sessionId } = request;
|
|
91
77
|
if (cursor !== null) {
|
|
92
|
-
const preview = this.#eventPreviewsBySession.get(
|
|
78
|
+
const preview = this.#eventPreviewsBySession.get(sessionId);
|
|
93
79
|
if (preview === undefined || preview.nativeSessionId !== nativeSessionId) {
|
|
94
80
|
throw new Error("The native event cursor is invalid");
|
|
95
81
|
}
|
|
96
|
-
return preview.store.page(
|
|
82
|
+
return preview.store.page(sessionId, eventLimit, cursor);
|
|
97
83
|
}
|
|
98
84
|
const store = new MemorySessionEventStore();
|
|
99
|
-
const previous = this.#eventPreviewsBySession.get(
|
|
85
|
+
const previous = this.#eventPreviewsBySession.get(sessionId);
|
|
100
86
|
previous?.store.close();
|
|
101
|
-
this.#eventPreviewsBySession.set(
|
|
87
|
+
this.#eventPreviewsBySession.set(sessionId, { nativeSessionId, store });
|
|
102
88
|
try {
|
|
103
|
-
return await this.#processes.runTransient(
|
|
89
|
+
return await this.#processes.runTransient(signal, async () => await AcpQuerySession.start(agent, cwd, sessionId, store, this.#connector, signal), async (runtime) => await runtime.previewEvents(nativeSessionId, eventLimit, additionalDirectories, signal), async (runtime) => await runtime.closeProcess());
|
|
104
90
|
}
|
|
105
91
|
catch (error) {
|
|
106
|
-
if (this.#eventPreviewsBySession.get(
|
|
107
|
-
this.#eventPreviewsBySession.delete(
|
|
92
|
+
if (this.#eventPreviewsBySession.get(sessionId)?.store === store) {
|
|
93
|
+
this.#eventPreviewsBySession.delete(sessionId);
|
|
108
94
|
}
|
|
109
95
|
store.close();
|
|
110
96
|
throw error;
|
|
111
97
|
}
|
|
112
98
|
};
|
|
113
99
|
close = async () => {
|
|
114
|
-
await Promise.all(this.#
|
|
100
|
+
await Promise.all([...this.#processesByAgent.values()].flatMap((readers) => readers.entries().map(async ([cwd, runtime]) => await this.retire(readers, cwd, runtime))));
|
|
101
|
+
this.#processesByAgent.clear();
|
|
115
102
|
for (const preview of this.#eventPreviewsBySession.values()) {
|
|
116
103
|
preview.store.close();
|
|
117
104
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-processes.js","sourceRoot":"","sources":["../../../../src/engine/acp/adapter/query-processes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"query-processes.js","sourceRoot":"","sources":["../../../../src/engine/acp/adapter/query-processes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import type { SessionCapabilities } from "@moxt-ai/mobius-sdk/protocol";
|
|
2
|
-
import type {
|
|
2
|
+
import type { AcpAgentDefinition } from "../agent/agent-definition.ts";
|
|
3
|
+
import type { SessionEventPage, SessionEventStore } from "../native-history/preview-contract.ts";
|
|
3
4
|
import { type NativeSessionPage } from "../protocol/native-session.ts";
|
|
4
5
|
import type { AcpSessionConnector } from "./session-events.ts";
|
|
5
6
|
/** Adapter-owned ACP reader. It has neither a live observer nor interactive-session state. */
|
|
6
7
|
export declare class AcpQuerySession {
|
|
7
8
|
#private;
|
|
8
9
|
private constructor();
|
|
9
|
-
static readonly start: (
|
|
10
|
+
static readonly start: (agent: AcpAgentDefinition, cwd: string, sessionId: string, events: SessionEventStore, connector: AcpSessionConnector, signal: AbortSignal) => Promise<AcpQuerySession>;
|
|
10
11
|
readonly capabilities: () => SessionCapabilities;
|
|
11
|
-
readonly
|
|
12
|
+
readonly hasTerminated: () => boolean;
|
|
12
13
|
readonly listNativeSessions: (cursor: string | null, signal: AbortSignal) => Promise<NativeSessionPage>;
|
|
13
|
-
readonly previewEvents: (nativeSessionId: string, eventLimit: number, signal: AbortSignal) => Promise<SessionEventPage>;
|
|
14
|
+
readonly previewEvents: (nativeSessionId: string, eventLimit: number, additionalDirectories: readonly string[], signal: AbortSignal) => Promise<SessionEventPage>;
|
|
14
15
|
readonly closeProcess: () => Promise<void>;
|
|
16
|
+
readonly discardEvents: () => void;
|
|
15
17
|
}
|
|
16
18
|
//# sourceMappingURL=query-session.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-session.d.ts","sourceRoot":"","sources":["../../../../src/engine/acp/adapter/query-session.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAuB,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"query-session.d.ts","sourceRoot":"","sources":["../../../../src/engine/acp/adapter/query-session.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAuB,MAAM,8BAA8B,CAAC;AAE7F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AACjG,OAAO,EAAE,KAAK,iBAAiB,EAA2B,MAAM,+BAA+B,CAAC;AAOhG,OAAO,KAAK,EAAE,mBAAmB,EAA4B,MAAM,qBAAqB,CAAC;AAEzF,8FAA8F;AAC9F,qBAAa,eAAe;;IASxB,OAAO,eAyBN;IAED,MAAM,CAAC,QAAQ,CAAC,KAAK,UACV,kBAAkB,OACpB,MAAM,aACA,MAAM,UACT,iBAAiB,aACd,mBAAmB,UACtB,WAAW,KACpB,OAAO,CAAC,eAAe,CAAC,CA2BzB;IAEF,QAAQ,CAAC,YAAY,QAAO,mBAAmB,CAAuB;IACtE,QAAQ,CAAC,aAAa,QAAO,OAAO,CAWlC;IACF,QAAQ,CAAC,kBAAkB,WAAkB,MAAM,GAAG,IAAI,UAAU,WAAW,KAAG,OAAO,CAAC,iBAAiB,CAAC,CAwB1G;IAEF,QAAQ,CAAC,aAAa,oBACD,MAAM,cACX,MAAM,yBACK,SAAS,MAAM,EAAE,UAChC,WAAW,KACpB,OAAO,CAAC,gBAAgB,CAAC,CA2B1B;IAEF,QAAQ,CAAC,YAAY,QAAa,OAAO,CAAC,IAAI,CAAC,CAA0C;IACzF,QAAQ,CAAC,aAAa,QAAO,IAAI,CAAyC;CAC7E"}
|
|
@@ -1,46 +1,51 @@
|
|
|
1
1
|
import { methods } from "@agentclientprotocol/sdk";
|
|
2
|
-
import { arraysEqual } from "../../util/value-utils.js";
|
|
3
2
|
import { AcpExecutionError } from "../acp-error.js";
|
|
4
3
|
import { nativeSessionPageSchema } from "../protocol/native-session.js";
|
|
5
4
|
import { unsupportedSessionCapabilities } from "../protocol/session-capabilities.js";
|
|
6
5
|
import { initializeAgentConnection, RetryableAcpInitializationError, validateAgentRuntime, } from "./agent-initialization.js";
|
|
7
6
|
/** Adapter-owned ACP reader. It has neither a live observer nor interactive-session state. */
|
|
8
7
|
export class AcpQuerySession {
|
|
9
|
-
#
|
|
8
|
+
#cwd;
|
|
9
|
+
#sessionId;
|
|
10
10
|
#events;
|
|
11
11
|
#connection;
|
|
12
|
+
#lifecycle = { kind: "open" };
|
|
12
13
|
#capabilities = unsupportedSessionCapabilities();
|
|
13
14
|
#configOptions = [];
|
|
14
|
-
constructor(
|
|
15
|
-
this.#
|
|
15
|
+
constructor(agent, cwd, sessionId, events, connector) {
|
|
16
|
+
this.#cwd = cwd;
|
|
17
|
+
this.#sessionId = sessionId;
|
|
16
18
|
this.#events = events;
|
|
17
19
|
this.#connection = connector.connectQuerySession({
|
|
18
|
-
agent
|
|
19
|
-
cwd
|
|
20
|
-
sessionId: () =>
|
|
20
|
+
agent,
|
|
21
|
+
cwd,
|
|
22
|
+
sessionId: () => sessionId,
|
|
21
23
|
configOptions: () => this.#configOptions,
|
|
22
24
|
onEvent: async (event) => {
|
|
23
|
-
this.#events.append(
|
|
25
|
+
this.#events.append(sessionId, { type: "acp", payload: event.payload });
|
|
24
26
|
if (event.kind === "configuration") {
|
|
25
27
|
this.#configOptions = event.configOptions;
|
|
26
28
|
}
|
|
27
29
|
},
|
|
28
30
|
});
|
|
31
|
+
void this.#connection.termination.then(() => {
|
|
32
|
+
this.#lifecycle = { kind: "terminated" };
|
|
33
|
+
});
|
|
29
34
|
}
|
|
30
|
-
static start = async (
|
|
35
|
+
static start = async (agent, cwd, sessionId, events, connector, signal) => {
|
|
31
36
|
for (let attempt = 1; attempt <= 2; attempt += 1) {
|
|
32
|
-
await validateAgentRuntime(
|
|
33
|
-
const runtime = new AcpQuerySession(
|
|
37
|
+
await validateAgentRuntime(agent, signal);
|
|
38
|
+
const runtime = new AcpQuerySession(agent, cwd, sessionId, events, connector);
|
|
34
39
|
try {
|
|
35
|
-
const initialized = await initializeAgentConnection(runtime.#connection,
|
|
40
|
+
const initialized = await initializeAgentConnection(runtime.#connection, agent.id, agent.agentVersion, signal);
|
|
36
41
|
runtime.#capabilities = initialized.capabilities;
|
|
37
42
|
return runtime;
|
|
38
43
|
}
|
|
39
44
|
catch (error) {
|
|
40
45
|
await runtime.closeProcess();
|
|
41
|
-
|
|
46
|
+
signal.throwIfAborted();
|
|
42
47
|
if (error instanceof RetryableAcpInitializationError && attempt === 1) {
|
|
43
|
-
console.warn(`[${
|
|
48
|
+
console.warn(`[${agent.id}-acp] ACP agent initialization failed; retrying once`);
|
|
44
49
|
continue;
|
|
45
50
|
}
|
|
46
51
|
if (error instanceof AcpExecutionError) {
|
|
@@ -52,9 +57,18 @@ export class AcpQuerySession {
|
|
|
52
57
|
throw new AcpExecutionError("ACP agent initialization failed");
|
|
53
58
|
};
|
|
54
59
|
capabilities = () => this.#capabilities;
|
|
55
|
-
|
|
56
|
-
this.#
|
|
57
|
-
|
|
60
|
+
hasTerminated = () => {
|
|
61
|
+
switch (this.#lifecycle.kind) {
|
|
62
|
+
case "open":
|
|
63
|
+
return false;
|
|
64
|
+
case "terminated":
|
|
65
|
+
return true;
|
|
66
|
+
default: {
|
|
67
|
+
const unreachable = this.#lifecycle;
|
|
68
|
+
return unreachable;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
};
|
|
58
72
|
listNativeSessions = async (cursor, signal) => {
|
|
59
73
|
if (!this.#capabilities.listSessions) {
|
|
60
74
|
throw new AcpExecutionError("This Agent does not support native session listing", {}, "native_session_unsupported");
|
|
@@ -68,22 +82,23 @@ export class AcpQuerySession {
|
|
|
68
82
|
}
|
|
69
83
|
return decoded.data;
|
|
70
84
|
};
|
|
71
|
-
previewEvents = async (nativeSessionId, eventLimit, signal) => {
|
|
85
|
+
previewEvents = async (nativeSessionId, eventLimit, additionalDirectories, signal) => {
|
|
72
86
|
if (!this.#capabilities.loadSession) {
|
|
73
87
|
throw new AcpExecutionError("This Agent restores context but does not provide message history.", {}, "native_history_unsupported");
|
|
74
88
|
}
|
|
75
|
-
this.#events.reset(this.#
|
|
89
|
+
this.#events.reset(this.#sessionId);
|
|
76
90
|
this.#connection.events.select(nativeSessionId);
|
|
77
91
|
await this.#connection.race(this.#connection.connection.agent.request(methods.agent.session.load, {
|
|
78
|
-
additionalDirectories: [...
|
|
79
|
-
cwd: this.#
|
|
92
|
+
additionalDirectories: [...additionalDirectories],
|
|
93
|
+
cwd: this.#cwd,
|
|
80
94
|
mcpServers: [],
|
|
81
95
|
sessionId: nativeSessionId,
|
|
82
96
|
}, { cancellationSignal: signal }), "ACP agent exited while loading history", signal);
|
|
83
97
|
await this.#connection.events.drained();
|
|
84
98
|
signal.throwIfAborted();
|
|
85
|
-
return this.#events.page(this.#
|
|
99
|
+
return this.#events.page(this.#sessionId, eventLimit, null);
|
|
86
100
|
};
|
|
87
101
|
closeProcess = async () => await this.#connection.closeProcess();
|
|
102
|
+
discardEvents = () => this.#events.remove(this.#sessionId);
|
|
88
103
|
}
|
|
89
104
|
//# sourceMappingURL=query-session.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-session.js","sourceRoot":"","sources":["../../../../src/engine/acp/adapter/query-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"query-session.js","sourceRoot":"","sources":["../../../../src/engine/acp/adapter/query-session.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,11 +6,11 @@ import { PiAdapter } from "./pi/adapter.js";
|
|
|
6
6
|
export const harnessAdapters = (agent, dependencies) => {
|
|
7
7
|
switch (agent.id) {
|
|
8
8
|
case "codex":
|
|
9
|
-
return new CodexAdapter(dependencies);
|
|
9
|
+
return new CodexAdapter(agent, dependencies);
|
|
10
10
|
case "claude":
|
|
11
|
-
return new ClaudeAdapter(dependencies);
|
|
11
|
+
return new ClaudeAdapter(agent, dependencies);
|
|
12
12
|
case "pi":
|
|
13
|
-
return new PiAdapter(dependencies);
|
|
13
|
+
return new PiAdapter(agent, dependencies);
|
|
14
14
|
default:
|
|
15
15
|
throw new AcpExecutionError(`Agent "${agent.id}" has no registered harness adapter.`, {}, "agent_adapter_not_found");
|
|
16
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../src/engine/acp/adapter/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,oFAAoF;AACpF,MAAM,CAAC,MAAM,eAAe,GAAoB,CAC5C,KAAyB,EACzB,YAAiC,EAC1B,EAAE;IACT,QAAQ,KAAK,CAAC,EAAE,EAAE,CAAC;QACf,KAAK,OAAO;YACR,OAAO,IAAI,YAAY,CAAC,YAAY,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../src/engine/acp/adapter/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,oFAAoF;AACpF,MAAM,CAAC,MAAM,eAAe,GAAoB,CAC5C,KAAyB,EACzB,YAAiC,EAC1B,EAAE;IACT,QAAQ,KAAK,CAAC,EAAE,EAAE,CAAC;QACf,KAAK,OAAO;YACR,OAAO,IAAI,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QACjD,KAAK,QAAQ;YACT,OAAO,IAAI,aAAa,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAClD,KAAK,IAAI;YACL,OAAO,IAAI,SAAS,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAC9C;YACI,MAAM,IAAI,iBAAiB,CACvB,UAAU,KAAK,CAAC,EAAE,sCAAsC,EACxD,EAAE,EACF,yBAAyB,CAC5B,CAAC;IACV,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -58,6 +58,7 @@ export declare class AdapterSessionConnection {
|
|
|
58
58
|
readonly events: Pick<AgentUpdateStream, "sessionId" | "select" | "drained">;
|
|
59
59
|
constructor(options: AdapterSessionConnectionOptions, externalizer: Pick<AcpContentExternalizer, "update">, normalizeEvent: (event: unknown) => unknown, onClosed?: () => void);
|
|
60
60
|
get connection(): import("@agentclientprotocol/sdk").ClientConnection;
|
|
61
|
+
get termination(): Promise<import("../agent/in-process-endpoint.ts").AcpEndpointTermination>;
|
|
61
62
|
readonly initialize: (signal: AbortSignal) => Promise<void>;
|
|
62
63
|
readonly agentSettingsModelEffort: () => Readonly<{
|
|
63
64
|
effortSettingId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-events.d.ts","sourceRoot":"","sources":["../../../../src/engine/acp/adapter/session-events.ts"],"names":[],"mappings":"AACA,OAAO,EACH,KAAK,gBAAgB,EAErB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EAC3B,MAAM,8BAA8B,CAAC;AAGtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAE1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAEvE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAGjF,KAAK,iBAAiB,GAChB;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAClD;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9D,sGAAsG;AACtG,MAAM,MAAM,mBAAmB,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAA;CAAE,GAC1E;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAA;CAAE,GAC/G;IACI,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACvD,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;CACtC,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAA;CAAE,GACtF;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAA;CAAE,CAAC;AAEpH,UAAU,sBAAsB;IAC5B,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAC;IACnC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,MAAM,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,SAAS,mBAAmB,EAAE,CAAC;IAC7D,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACnE;AAED,MAAM,WAAW,+BAAgC,SAAQ,sBAAsB;IAC3E,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACvE,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,EAAE,cAAc,GAAG,eAAe,GAAG,uBAAuB,CAAC,CAAC;CAC7G;AAED,MAAM,WAAW,4BAA6B,SAAQ,+BAA+B;IACjF,QAAQ,CAAC,qBAAqB,EAAE,SAAS,MAAM,EAAE,CAAC;IAClD,QAAQ,CAAC,YAAY,EAAE,MAAM,mBAAmB,CAAC;CACpD;AAED,4FAA4F;AAC5F,MAAM,WAAW,uBAAuB;IACpC,QAAQ,CAAC,cAAc,EAAE,CAAC,OAAO,EAAE,+BAA+B,KAAK,wBAAwB,CAAC;CACnG;AAED,mGAAmG;AACnG,qBAAa,wBAAwB;;IAIjC,QAAQ,CAAC,qBAAqB,QAAO,OAAO,CAAwC;IAIpF,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC,CAAC;IAE7E,YACI,OAAO,EAAE,+BAA+B,EACxC,YAAY,EAAE,IAAI,CAAC,sBAAsB,EAAE,QAAQ,CAAC,EACpD,cAAc,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,EAC3C,QAAQ,GAAE,MAAM,IAAsB,
|
|
1
|
+
{"version":3,"file":"session-events.d.ts","sourceRoot":"","sources":["../../../../src/engine/acp/adapter/session-events.ts"],"names":[],"mappings":"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"}
|