@moxt-ai/mobius 0.0.183 → 0.0.185
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/acp/agent-connection.d.ts.map +1 -1
- package/dist/acp/agent-connection.js +14 -2
- package/dist/acp/agent-connection.js.map +1 -1
- package/dist/acp/agent-runtime-manager.d.ts +2 -1
- package/dist/acp/agent-runtime-manager.d.ts.map +1 -1
- package/dist/acp/agent-runtime-manager.js +46 -36
- package/dist/acp/agent-runtime-manager.js.map +1 -1
- package/dist/acp/agent-session.d.ts +4 -3
- package/dist/acp/agent-session.d.ts.map +1 -1
- package/dist/acp/agent-session.js +15 -3
- package/dist/acp/agent-session.js.map +1 -1
- package/dist/acp/session-contracts.d.ts +5 -0
- package/dist/acp/session-contracts.d.ts.map +1 -1
- package/dist/acp/session-contracts.js.map +1 -1
- package/dist/cli.js +112 -48
- package/dist/cli.js.map +3 -3
- package/dist/daemon-session-commands.d.ts.map +1 -1
- package/dist/daemon-session-commands.js +6 -4
- package/dist/daemon-session-commands.js.map +1 -1
- package/dist/index.js +111 -47
- package/dist/index.js.map +3 -3
- package/dist/runtime.js +111 -47
- package/dist/runtime.js.map +3 -3
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon-session-commands.d.ts","sourceRoot":"","sources":["../src/daemon-session-commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,uBAAuB,EACvB,qBAAqB,EAErB,qBAAqB,EACrB,oBAAoB,EACvB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"daemon-session-commands.d.ts","sourceRoot":"","sources":["../src/daemon-session-commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,uBAAuB,EACvB,qBAAqB,EAErB,qBAAqB,EACrB,oBAAoB,EACvB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,KAAK,EAAsB,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC9F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AACxF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAwFpF,wBAAsB,oBAAoB,CACtC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,oBAAoB,EAC7B,WAAW,EAAE,yBAAyB,EACtC,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,WAAW,GACpB,OAAO,CAAC,IAAI,CAAC,CAoBf;AAED,wBAAsB,qBAAqB,CACvC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,qBAAqB,EAC9B,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,yBAAyB,EACtC,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,mBAAmB,EAC7B,WAAW,EAAE,0BAA0B,EACvC,MAAM,EAAE,WAAW,GACpB,OAAO,CAAC,IAAI,CAAC,CAuCf;AAED,wBAAsB,qBAAqB,CACvC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,qBAAqB,EAC9B,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,yBAAyB,EACtC,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,mBAAmB,EAC7B,cAAc,EAAE,oBAAoB,EACpC,WAAW,EAAE,0BAA0B,EACvC,MAAM,EAAE,WAAW,GACpB,OAAO,CAAC,IAAI,CAAC,CAqDf;AAED,wBAAsB,uBAAuB,CACzC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,uBAAuB,EAChC,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,yBAAyB,EACtC,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,mBAAmB,EAC7B,MAAM,EAAE,WAAW,GACpB,OAAO,CAAC,IAAI,CAAC,CAsCf"}
|
|
@@ -2,7 +2,7 @@ import { AcpExecutionError } from "./acp/acp-error.js";
|
|
|
2
2
|
import { resolveSessionDirectories } from "./authorization/resolve-session-directories.js";
|
|
3
3
|
import { operationErrorCode, reportOperationFailure, send } from "./daemon-command-results.js";
|
|
4
4
|
import { AccumulatingOperationMetrics } from "./infra/operation-metrics.js";
|
|
5
|
-
async function prepareSession(command, config, directories, audit, sessions, metrics, signal) {
|
|
5
|
+
async function prepareSession(command, recovery, config, directories, audit, sessions, metrics, signal) {
|
|
6
6
|
return await metrics.measure("prepare-total", async () => {
|
|
7
7
|
const resolved = await metrics.measure("workspace-resolve", async () => await resolveSessionDirectories(directories, config.bindingId, command.directoryId, command.additionalDirectoryIds, signal));
|
|
8
8
|
const agent = config.catalog.find(command.agentId);
|
|
@@ -15,7 +15,9 @@ async function prepareSession(command, config, directories, audit, sessions, met
|
|
|
15
15
|
};
|
|
16
16
|
const prepared = command.transient === true
|
|
17
17
|
? await sessions.inspectSession(preparation, metrics)
|
|
18
|
-
:
|
|
18
|
+
: recovery.kind === "history-required"
|
|
19
|
+
? await sessions.restoreSession(preparation, metrics)
|
|
20
|
+
: await sessions.prepareSession(preparation, metrics);
|
|
19
21
|
const configuration = command.configuration;
|
|
20
22
|
const configOptions = configuration === undefined
|
|
21
23
|
? prepared.configOptions
|
|
@@ -82,7 +84,7 @@ export async function executeWorkspaceList(socket, command, directories, audit,
|
|
|
82
84
|
export async function executeSessionPrepare(socket, command, config, directories, audit, sessions, diagnostics, signal) {
|
|
83
85
|
const metrics = new AccumulatingOperationMetrics();
|
|
84
86
|
try {
|
|
85
|
-
const readyEvent = await prepareSession(command, config, directories, audit, sessions, metrics, signal);
|
|
87
|
+
const readyEvent = await prepareSession(command, { kind: "interactive-only" }, config, directories, audit, sessions, metrics, signal);
|
|
86
88
|
send(socket, {
|
|
87
89
|
...readyEvent,
|
|
88
90
|
runtimeTimings: metrics.snapshot(),
|
|
@@ -125,7 +127,7 @@ export async function executeSessionRestore(socket, command, config, directories
|
|
|
125
127
|
requestId: command.requestId,
|
|
126
128
|
sessionId: command.sessionId,
|
|
127
129
|
sessionState: "provisioned",
|
|
128
|
-
}, config, directories, audit, sessions, metrics, signal);
|
|
130
|
+
}, { kind: "history-required" }, config, directories, audit, sessions, metrics, signal);
|
|
129
131
|
send(socket, {
|
|
130
132
|
entry,
|
|
131
133
|
kind: "session.restored",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon-session-commands.js","sourceRoot":"","sources":["../src/daemon-session-commands.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAGvD,OAAO,EAAE,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AAG3F,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAC/F,OAAO,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAI5E,KAAK,UAAU,cAAc,CACzB,OAA8B,EAC9B,MAAoB,EACpB,WAAsC,EACtC,KAAiB,EACjB,QAA6B,EAC7B,OAAqC,EACrC,MAAmB;IAEnB,OAAO,MAAM,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CAClC,mBAAmB,EACnB,KAAK,IAAI,EAAE,CACP,MAAM,yBAAyB,CAC3B,WAAW,EACX,MAAM,CAAC,SAAS,EAChB,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,sBAAsB,EAC9B,MAAM,CACT,CACR,CAAC;QACF,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACnD,MAAM,WAAW,GAAG;YAChB,qBAAqB,EAAE,QAAQ,CAAC,qBAAqB;YACrD,KAAK;YACL,GAAG,EAAE,QAAQ,CAAC,GAAG;YACjB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,MAAM;SACT,CAAC;QACF,MAAM,QAAQ,GACV,OAAO,CAAC,SAAS,KAAK,IAAI;YACtB,CAAC,CAAC,MAAM,QAAQ,CAAC,cAAc,CAAC,WAAW,EAAE,OAAO,CAAC;YACrD,CAAC,CAAC,MAAM,QAAQ,CAAC,cAAc,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"daemon-session-commands.js","sourceRoot":"","sources":["../src/daemon-session-commands.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -23242,6 +23242,18 @@ function readString2(value, fallback = "") {
|
|
|
23242
23242
|
}
|
|
23243
23243
|
|
|
23244
23244
|
// src/acp/agent-connection.ts
|
|
23245
|
+
function requestErrorMessage(error62) {
|
|
23246
|
+
const fallback = truncate2(error62.message, 500);
|
|
23247
|
+
if (error62.message !== "Internal error" || !isRecord4(error62.data)) {
|
|
23248
|
+
return fallback;
|
|
23249
|
+
}
|
|
23250
|
+
const agentError = error62.data["error"];
|
|
23251
|
+
if (!isRecord4(agentError)) {
|
|
23252
|
+
return fallback;
|
|
23253
|
+
}
|
|
23254
|
+
const message = agentError["message"];
|
|
23255
|
+
return typeof message === "string" && message.length > 0 ? truncate2(message, 500) : fallback;
|
|
23256
|
+
}
|
|
23245
23257
|
function readableWebStream(input2) {
|
|
23246
23258
|
let streamOpen = true;
|
|
23247
23259
|
return new ReadableStream({
|
|
@@ -23413,7 +23425,7 @@ var AgentConnection = class {
|
|
|
23413
23425
|
);
|
|
23414
23426
|
}
|
|
23415
23427
|
if (error62 instanceof RequestError) {
|
|
23416
|
-
throw new AcpExecutionError(
|
|
23428
|
+
throw new AcpExecutionError(requestErrorMessage(error62), { cause: error62 }, "acp_agent_error");
|
|
23417
23429
|
}
|
|
23418
23430
|
throw error62;
|
|
23419
23431
|
}
|
|
@@ -30278,11 +30290,11 @@ var AgentSession = class _AgentSession {
|
|
|
30278
30290
|
}
|
|
30279
30291
|
throw new AcpExecutionError("ACP agent initialization failed");
|
|
30280
30292
|
}
|
|
30281
|
-
static start = async (options, getObserver, store, metrics, contentExternalizer) => await _AgentSession.#start(
|
|
30293
|
+
static start = async (options, recovery, getObserver, store, metrics, contentExternalizer) => await _AgentSession.#start(
|
|
30282
30294
|
options,
|
|
30283
30295
|
getObserver,
|
|
30284
30296
|
store,
|
|
30285
|
-
async (runtime) => await runtime.initialize(options.signal, options.origin),
|
|
30297
|
+
async (runtime) => await runtime.initialize(options.signal, recovery, options.origin),
|
|
30286
30298
|
metrics,
|
|
30287
30299
|
contentExternalizer
|
|
30288
30300
|
);
|
|
@@ -30320,6 +30332,16 @@ var AgentSession = class _AgentSession {
|
|
|
30320
30332
|
const history = await this.#completedHistory(signal, "ACP agent exited while loading history");
|
|
30321
30333
|
return await embedLocalHistoryImages(await history.snapshot(), signal);
|
|
30322
30334
|
};
|
|
30335
|
+
ensureHistoryLoaded = async (signal) => {
|
|
30336
|
+
if (!this.#capabilities.loadSession) {
|
|
30337
|
+
throw new AcpExecutionError(
|
|
30338
|
+
"This Agent restores context but does not provide message history.",
|
|
30339
|
+
{},
|
|
30340
|
+
"native_history_unsupported"
|
|
30341
|
+
);
|
|
30342
|
+
}
|
|
30343
|
+
await this.#completedHistory(signal, "ACP agent exited while loading history");
|
|
30344
|
+
};
|
|
30323
30345
|
loadHistoryEventsV2 = async (eventLimit, cursor, signal) => {
|
|
30324
30346
|
if (!this.#capabilities.loadSession) {
|
|
30325
30347
|
throw new AcpExecutionError(
|
|
@@ -30492,7 +30514,7 @@ var AgentSession = class _AgentSession {
|
|
|
30492
30514
|
128
|
|
30493
30515
|
);
|
|
30494
30516
|
}
|
|
30495
|
-
initialize = async (signal, origin) => {
|
|
30517
|
+
initialize = async (signal, recovery, origin) => {
|
|
30496
30518
|
await this.#initializeAgent(signal);
|
|
30497
30519
|
let stored = this.#metrics.measureSync(
|
|
30498
30520
|
"session-state-read",
|
|
@@ -30561,7 +30583,19 @@ var AgentSession = class _AgentSession {
|
|
|
30561
30583
|
this.#prompted = stored.session.prompted;
|
|
30562
30584
|
this.#sessionTitle = stored.session.title;
|
|
30563
30585
|
this.#restored = true;
|
|
30564
|
-
if (
|
|
30586
|
+
if (recovery.kind === "history-required") {
|
|
30587
|
+
if (!this.#capabilities.loadSession) {
|
|
30588
|
+
throw new AcpExecutionError(
|
|
30589
|
+
"This Agent restores context but does not provide message history.",
|
|
30590
|
+
{},
|
|
30591
|
+
"native_history_unsupported"
|
|
30592
|
+
);
|
|
30593
|
+
}
|
|
30594
|
+
lifecycleResponse = await this.#metrics.measure(
|
|
30595
|
+
"session-load",
|
|
30596
|
+
async () => (await this.#loadSession(signal, "ACP agent exited while loading a session")).response
|
|
30597
|
+
);
|
|
30598
|
+
} else if (this.#capabilities.resumeSession) {
|
|
30565
30599
|
lifecycleResponse = await this.#metrics.measure(
|
|
30566
30600
|
"session-resume",
|
|
30567
30601
|
async () => await this.race(
|
|
@@ -32179,12 +32213,13 @@ var AgentRuntimeManager = class {
|
|
|
32179
32213
|
this.#executionProcesses.retain(options.sessionId, runtime);
|
|
32180
32214
|
return runtime;
|
|
32181
32215
|
}
|
|
32182
|
-
async #startPreparation(options, metrics = unmeasuredOperationMetrics) {
|
|
32216
|
+
async #startPreparation(options, recovery, metrics = unmeasuredOperationMetrics) {
|
|
32183
32217
|
return await this.#executionProcesses.prepare(options.sessionId, async () => {
|
|
32184
32218
|
return await this.#startRetainedSessionProcess(
|
|
32185
32219
|
options,
|
|
32186
32220
|
async () => await AgentSession.start(
|
|
32187
32221
|
options.origin === void 0 && this.#sessionIdentity === "native" && isNativeChatSessionId(options.agent.id, options.sessionId) && this.#store.read(options.sessionId) instanceof MissingAcpStoredSession ? { ...options, origin: { kind: "import", nativeSessionId: options.sessionId } } : options,
|
|
32222
|
+
recovery,
|
|
32188
32223
|
() => this.#observer,
|
|
32189
32224
|
this.#store,
|
|
32190
32225
|
metrics,
|
|
@@ -32193,7 +32228,7 @@ var AgentRuntimeManager = class {
|
|
|
32193
32228
|
);
|
|
32194
32229
|
});
|
|
32195
32230
|
}
|
|
32196
|
-
async #replacePreparation(existing, options, metrics) {
|
|
32231
|
+
async #replacePreparation(existing, options, recovery, metrics) {
|
|
32197
32232
|
return await this.#executionProcesses.prepare(options.sessionId, async () => {
|
|
32198
32233
|
await this.#retireSessionProcess(
|
|
32199
32234
|
options.sessionId,
|
|
@@ -32205,6 +32240,7 @@ var AgentRuntimeManager = class {
|
|
|
32205
32240
|
options,
|
|
32206
32241
|
async () => await AgentSession.start(
|
|
32207
32242
|
options,
|
|
32243
|
+
recovery,
|
|
32208
32244
|
() => this.#observer,
|
|
32209
32245
|
this.#store,
|
|
32210
32246
|
metrics,
|
|
@@ -32221,6 +32257,7 @@ var AgentRuntimeManager = class {
|
|
|
32221
32257
|
options,
|
|
32222
32258
|
async () => await AgentSession.start(
|
|
32223
32259
|
options,
|
|
32260
|
+
{ kind: "interactive-only" },
|
|
32224
32261
|
() => this.#observer,
|
|
32225
32262
|
this.#store,
|
|
32226
32263
|
unmeasuredOperationMetrics,
|
|
@@ -32264,42 +32301,58 @@ var AgentRuntimeManager = class {
|
|
|
32264
32301
|
return runtime;
|
|
32265
32302
|
});
|
|
32266
32303
|
}
|
|
32267
|
-
|
|
32268
|
-
|
|
32269
|
-
|
|
32270
|
-
|
|
32271
|
-
|
|
32272
|
-
const pending = this.#executionProcesses.pending(options2.sessionId);
|
|
32273
|
-
if (pending !== void 0) {
|
|
32274
|
-
const runtime2 = await metrics.measure(
|
|
32275
|
-
"session-preparation-wait",
|
|
32276
|
-
async () => await waitForSharedOperation(pending, options2.signal)
|
|
32277
|
-
);
|
|
32278
|
-
if (runtime2.belongsTo(options2.agent.id, options2.cwd, options2.additionalDirectories)) {
|
|
32279
|
-
this.#executionProcesses.touch(options2.sessionId, runtime2);
|
|
32280
|
-
return runtime2.prepared();
|
|
32281
|
-
}
|
|
32282
|
-
return await this.prepareSession(options2, metrics);
|
|
32283
|
-
}
|
|
32284
|
-
const existing = this.#executionProcesses.get(options2.sessionId);
|
|
32285
|
-
if (existing !== void 0) {
|
|
32286
|
-
if (existing.belongsTo(options2.agent.id, options2.cwd, options2.additionalDirectories)) {
|
|
32287
|
-
this.#executionProcesses.touch(options2.sessionId, existing);
|
|
32288
|
-
return existing.prepared();
|
|
32304
|
+
async #prepareSession(options, recovery, metrics = unmeasuredOperationMetrics) {
|
|
32305
|
+
return await this.#operations.run(options, async (options2) => {
|
|
32306
|
+
const stored = metrics.measureSync("session-state-read", () => this.#store.read(options2.sessionId));
|
|
32307
|
+
if (stored instanceof FoundAcpStoredSession && this.#nativeOperations.has(`${stored.session.agentId}:${stored.session.nativeSessionId}`)) {
|
|
32308
|
+
throw new AcpExecutionError("The native session is being managed", {}, "session_busy");
|
|
32289
32309
|
}
|
|
32290
|
-
|
|
32291
|
-
|
|
32292
|
-
|
|
32293
|
-
|
|
32294
|
-
|
|
32310
|
+
const pending = this.#executionProcesses.pending(options2.sessionId);
|
|
32311
|
+
if (pending !== void 0) {
|
|
32312
|
+
const runtime2 = await metrics.measure(
|
|
32313
|
+
"session-preparation-wait",
|
|
32314
|
+
async () => await waitForSharedOperation(pending, options2.signal)
|
|
32295
32315
|
);
|
|
32316
|
+
if (runtime2.belongsTo(options2.agent.id, options2.cwd, options2.additionalDirectories)) {
|
|
32317
|
+
this.#executionProcesses.touch(options2.sessionId, runtime2);
|
|
32318
|
+
if (recovery.kind === "history-required") {
|
|
32319
|
+
await metrics.measure(
|
|
32320
|
+
"session-load",
|
|
32321
|
+
async () => await runtime2.ensureHistoryLoaded(options2.signal)
|
|
32322
|
+
);
|
|
32323
|
+
}
|
|
32324
|
+
return runtime2.prepared();
|
|
32325
|
+
}
|
|
32326
|
+
return await this.#prepareSession(options2, recovery, metrics);
|
|
32327
|
+
}
|
|
32328
|
+
const existing = this.#executionProcesses.get(options2.sessionId);
|
|
32329
|
+
if (existing !== void 0) {
|
|
32330
|
+
if (existing.belongsTo(options2.agent.id, options2.cwd, options2.additionalDirectories)) {
|
|
32331
|
+
this.#executionProcesses.touch(options2.sessionId, existing);
|
|
32332
|
+
if (recovery.kind === "history-required") {
|
|
32333
|
+
await metrics.measure(
|
|
32334
|
+
"session-load",
|
|
32335
|
+
async () => await existing.ensureHistoryLoaded(options2.signal)
|
|
32336
|
+
);
|
|
32337
|
+
}
|
|
32338
|
+
return existing.prepared();
|
|
32339
|
+
}
|
|
32340
|
+
if (!existing.canRebind()) {
|
|
32341
|
+
throw new AcpExecutionError(
|
|
32342
|
+
"The agent or workspace cannot change after a conversation has started",
|
|
32343
|
+
{},
|
|
32344
|
+
"session_identity_mismatch"
|
|
32345
|
+
);
|
|
32346
|
+
}
|
|
32347
|
+
const runtime2 = await this.#replacePreparation(existing, options2, recovery, metrics);
|
|
32348
|
+
return runtime2.prepared();
|
|
32296
32349
|
}
|
|
32297
|
-
const
|
|
32298
|
-
return
|
|
32299
|
-
}
|
|
32300
|
-
|
|
32301
|
-
|
|
32302
|
-
});
|
|
32350
|
+
const runtime = await this.#startPreparation(options2, recovery, metrics);
|
|
32351
|
+
return runtime.prepared();
|
|
32352
|
+
});
|
|
32353
|
+
}
|
|
32354
|
+
prepareSession = async (options, metrics = unmeasuredOperationMetrics) => await this.#prepareSession(options, { kind: "interactive-only" }, metrics);
|
|
32355
|
+
restoreSession = async (options, metrics = unmeasuredOperationMetrics) => await this.#prepareSession(options, { kind: "history-required" }, metrics);
|
|
32303
32356
|
/**
|
|
32304
32357
|
* Opens a short-lived native ACP session only to read the local Agent's
|
|
32305
32358
|
* authoritative settings. Its identity and store are private to this
|
|
@@ -32313,6 +32366,7 @@ var AgentRuntimeManager = class {
|
|
|
32313
32366
|
...options2,
|
|
32314
32367
|
sessionId: `agent-settings-${crypto.randomUUID()}`
|
|
32315
32368
|
},
|
|
32369
|
+
{ kind: "interactive-only" },
|
|
32316
32370
|
() => this.#agentSettingsObserver,
|
|
32317
32371
|
new MemoryAcpSessionStore(),
|
|
32318
32372
|
unmeasuredOperationMetrics,
|
|
@@ -32350,7 +32404,7 @@ var AgentRuntimeManager = class {
|
|
|
32350
32404
|
);
|
|
32351
32405
|
}
|
|
32352
32406
|
return await this.#executionProcesses.use(options2.sessionId, async () => {
|
|
32353
|
-
const runtime = await this.#startPreparation(options2, metrics);
|
|
32407
|
+
const runtime = await this.#startPreparation(options2, { kind: "interactive-only" }, metrics);
|
|
32354
32408
|
try {
|
|
32355
32409
|
return runtime.prepared();
|
|
32356
32410
|
} finally {
|
|
@@ -32370,7 +32424,7 @@ var AgentRuntimeManager = class {
|
|
|
32370
32424
|
}
|
|
32371
32425
|
const existing = this.#executionProcesses.get(options2.sessionId);
|
|
32372
32426
|
if (existing === void 0) {
|
|
32373
|
-
return (await this.#startPreparation(options2)).prepared();
|
|
32427
|
+
return (await this.#startPreparation(options2, { kind: "interactive-only" })).prepared();
|
|
32374
32428
|
}
|
|
32375
32429
|
if (!existing.belongsTo(options2.agent.id, options2.cwd, options2.additionalDirectories)) {
|
|
32376
32430
|
throw new AcpExecutionError(
|
|
@@ -32555,7 +32609,7 @@ var AgentRuntimeManager = class {
|
|
|
32555
32609
|
const temporaryOptions = { ...options2, sessionId: temporarySessionId };
|
|
32556
32610
|
return await this.#executionProcesses.use(temporarySessionId, async () => {
|
|
32557
32611
|
try {
|
|
32558
|
-
const runtime = await this.#startPreparation(temporaryOptions);
|
|
32612
|
+
const runtime = await this.#startPreparation(temporaryOptions, { kind: "interactive-only" });
|
|
32559
32613
|
let adopted = false;
|
|
32560
32614
|
try {
|
|
32561
32615
|
const nativeSessionId = runtime.nativeSessionId();
|
|
@@ -32721,7 +32775,7 @@ var AgentRuntimeManager = class {
|
|
|
32721
32775
|
return await this.#executionProcesses.use(options2.sessionId, async () => {
|
|
32722
32776
|
this.#nativeOperations.add(key);
|
|
32723
32777
|
try {
|
|
32724
|
-
const runtime = await this.#startPreparation({ ...options2, origin });
|
|
32778
|
+
const runtime = await this.#startPreparation({ ...options2, origin }, { kind: "interactive-only" });
|
|
32725
32779
|
const openedKey = `${options2.agent.id}:${runtime.nativeSessionId()}`;
|
|
32726
32780
|
this.#nativeOperations.add(openedKey);
|
|
32727
32781
|
try {
|
|
@@ -42203,7 +42257,7 @@ async function executePrompt({
|
|
|
42203
42257
|
}
|
|
42204
42258
|
|
|
42205
42259
|
// src/daemon-session-commands.ts
|
|
42206
|
-
async function prepareSession(command, config2, directories, audit, sessions, metrics, signal) {
|
|
42260
|
+
async function prepareSession(command, recovery, config2, directories, audit, sessions, metrics, signal) {
|
|
42207
42261
|
return await metrics.measure("prepare-total", async () => {
|
|
42208
42262
|
const resolved = await metrics.measure(
|
|
42209
42263
|
"workspace-resolve",
|
|
@@ -42223,7 +42277,7 @@ async function prepareSession(command, config2, directories, audit, sessions, me
|
|
|
42223
42277
|
sessionId: command.sessionId,
|
|
42224
42278
|
signal
|
|
42225
42279
|
};
|
|
42226
|
-
const prepared = command.transient === true ? await sessions.inspectSession(preparation, metrics) : await sessions.prepareSession(preparation, metrics);
|
|
42280
|
+
const prepared = command.transient === true ? await sessions.inspectSession(preparation, metrics) : recovery.kind === "history-required" ? await sessions.restoreSession(preparation, metrics) : await sessions.prepareSession(preparation, metrics);
|
|
42227
42281
|
const configuration = command.configuration;
|
|
42228
42282
|
const configOptions = configuration === void 0 ? prepared.configOptions : await metrics.measure(
|
|
42229
42283
|
"configuration",
|
|
@@ -42293,7 +42347,16 @@ async function executeWorkspaceList(socket, command, directories, audit, signal)
|
|
|
42293
42347
|
async function executeSessionPrepare(socket, command, config2, directories, audit, sessions, diagnostics, signal) {
|
|
42294
42348
|
const metrics = new AccumulatingOperationMetrics();
|
|
42295
42349
|
try {
|
|
42296
|
-
const readyEvent = await prepareSession(
|
|
42350
|
+
const readyEvent = await prepareSession(
|
|
42351
|
+
command,
|
|
42352
|
+
{ kind: "interactive-only" },
|
|
42353
|
+
config2,
|
|
42354
|
+
directories,
|
|
42355
|
+
audit,
|
|
42356
|
+
sessions,
|
|
42357
|
+
metrics,
|
|
42358
|
+
signal
|
|
42359
|
+
);
|
|
42297
42360
|
send(socket, {
|
|
42298
42361
|
...readyEvent,
|
|
42299
42362
|
runtimeTimings: metrics.snapshot()
|
|
@@ -42342,6 +42405,7 @@ async function executeSessionRestore(socket, command, config2, directories, audi
|
|
|
42342
42405
|
sessionId: command.sessionId,
|
|
42343
42406
|
sessionState: "provisioned"
|
|
42344
42407
|
},
|
|
42408
|
+
{ kind: "history-required" },
|
|
42345
42409
|
config2,
|
|
42346
42410
|
directories,
|
|
42347
42411
|
audit,
|