@moxt-ai/mobius 0.0.177 → 0.0.178
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 +1 -3
- package/dist/acp/agent-connection.d.ts.map +1 -1
- package/dist/acp/agent-connection.js +3 -4
- package/dist/acp/agent-connection.js.map +1 -1
- package/dist/acp/agent-runtime-manager.d.ts.map +1 -1
- package/dist/acp/agent-runtime-manager.js +1 -8
- package/dist/acp/agent-runtime-manager.js.map +1 -1
- package/dist/acp/agent-session.d.ts +1 -2
- package/dist/acp/agent-session.d.ts.map +1 -1
- package/dist/acp/agent-session.js +6 -12
- package/dist/acp/agent-session.js.map +1 -1
- package/dist/acp/codex/agent.d.ts.map +1 -1
- package/dist/acp/codex/agent.js +1 -1
- package/dist/acp/codex/agent.js.map +1 -1
- package/dist/cli.js +63 -26
- package/dist/cli.js.map +2 -2
- package/dist/index.js +62 -25
- package/dist/index.js.map +2 -2
- package/dist/relay-connection/session-event-publisher.d.ts +5 -0
- package/dist/relay-connection/session-event-publisher.d.ts.map +1 -1
- package/dist/relay-connection/session-event-publisher.js +48 -2
- package/dist/relay-connection/session-event-publisher.js.map +1 -1
- package/dist/run-daemon.js +1 -1
- package/dist/run-daemon.js.map +1 -1
- package/dist/runtime.js +62 -25
- package/dist/runtime.js.map +2 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -20954,6 +20954,7 @@ var MAX_CONTENT_LENGTH = 1e6;
|
|
|
20954
20954
|
var MAX_JSON_DEPTH = 16;
|
|
20955
20955
|
var MAX_JSON_KEYS = 1e3;
|
|
20956
20956
|
var SESSION_EVENT_V2_KIND = "session.event.v2";
|
|
20957
|
+
var SESSION_EVENT_V2_BATCH_MAX_SIZE = 1e3;
|
|
20957
20958
|
var boundedString = external_exports.string().max(MAX_CONTENT_LENGTH);
|
|
20958
20959
|
var shortString = external_exports.string().max(2048);
|
|
20959
20960
|
var externalContentKeySchema = external_exports.string().regex(/^[a-f0-9]{64}$/u);
|
|
@@ -21325,6 +21326,7 @@ var sessionEventV2Schema = external_exports.discriminatedUnion("type", [
|
|
|
21325
21326
|
type: external_exports.literal("lifecycle-metadata")
|
|
21326
21327
|
}).readonly()
|
|
21327
21328
|
]);
|
|
21329
|
+
var sessionEventBatchV2Schema = external_exports.array(sessionEventV2Schema).min(1).max(SESSION_EVENT_V2_BATCH_MAX_SIZE).readonly();
|
|
21328
21330
|
var sessionExportV2Schema = external_exports.object({
|
|
21329
21331
|
binding: external_exports.object({
|
|
21330
21332
|
bindingId: identifierStringSchema,
|
|
@@ -21367,7 +21369,7 @@ var mobiusSessionExportV2Schema = external_exports.object({
|
|
|
21367
21369
|
formatVersion: external_exports.literal("2"),
|
|
21368
21370
|
session: sessionExportV2Schema
|
|
21369
21371
|
}).readonly();
|
|
21370
|
-
var sessionEventEnvelopeV2Schema = external_exports.object({
|
|
21372
|
+
var sessionEventEnvelopeV2Schema = external_exports.object({ events: sessionEventBatchV2Schema, kind: external_exports.literal(SESSION_EVENT_V2_KIND) }).readonly();
|
|
21371
21373
|
var sessionEventLogPageV2Schema = external_exports.object({
|
|
21372
21374
|
daemonGenerationId: identifierStringSchema,
|
|
21373
21375
|
events: external_exports.array(sessionEventV2Schema).max(MAX_EVENT_COUNT).readonly(),
|
|
@@ -23339,14 +23341,13 @@ var AgentConnection = class {
|
|
|
23339
23341
|
get inProcessAgent() {
|
|
23340
23342
|
return this.#process.kind === "in-process" ? this.#process.endpoint : null;
|
|
23341
23343
|
}
|
|
23342
|
-
|
|
23343
|
-
closeProcess = async (capturedProcesses = []) => {
|
|
23344
|
+
closeProcess = async () => {
|
|
23344
23345
|
try {
|
|
23345
23346
|
if (this.#process.kind === "in-process") {
|
|
23346
23347
|
await this.#process.endpoint.close();
|
|
23347
23348
|
return;
|
|
23348
23349
|
}
|
|
23349
|
-
await stopProcessTree(this.#process.child
|
|
23350
|
+
await stopProcessTree(this.#process.child);
|
|
23350
23351
|
} finally {
|
|
23351
23352
|
this.connection.close();
|
|
23352
23353
|
}
|
|
@@ -30973,16 +30974,11 @@ var AgentSession = class _AgentSession {
|
|
|
30973
30974
|
}
|
|
30974
30975
|
};
|
|
30975
30976
|
cancel = async () => {
|
|
30976
|
-
|
|
30977
|
-
|
|
30978
|
-
await this.#
|
|
30979
|
-
|
|
30980
|
-
|
|
30981
|
-
sessionId: this.#updates.sessionId()
|
|
30982
|
-
});
|
|
30983
|
-
}
|
|
30984
|
-
} finally {
|
|
30985
|
-
await this.closeProcess(capturedProcesses);
|
|
30977
|
+
await this.#interactions.cancelPendingInteractions();
|
|
30978
|
+
if (this.#turn.running) {
|
|
30979
|
+
await this.#connection.connection.agent.notify(methods3.agent.session.cancel, {
|
|
30980
|
+
sessionId: this.#updates.sessionId()
|
|
30981
|
+
});
|
|
30986
30982
|
}
|
|
30987
30983
|
};
|
|
30988
30984
|
respondPermission = (options) => this.#interactions.respondPermission(options);
|
|
@@ -31182,7 +31178,7 @@ var AgentSession = class _AgentSession {
|
|
|
31182
31178
|
await this.closeProcess();
|
|
31183
31179
|
}
|
|
31184
31180
|
};
|
|
31185
|
-
closeProcess = (
|
|
31181
|
+
closeProcess = () => this.#connection.closeProcess();
|
|
31186
31182
|
race = (operation, exitMessage, signal) => this.#connection.race(operation, exitMessage, signal);
|
|
31187
31183
|
assertNativeSession = (sessionId) => {
|
|
31188
31184
|
if (sessionId !== this.#updates.sessionId()) {
|
|
@@ -32323,13 +32319,7 @@ var AgentRuntimeManager = class {
|
|
|
32323
32319
|
await this.#executions.cancel(sessionId, async () => {
|
|
32324
32320
|
const runtime = this.#executionProcesses.get(sessionId);
|
|
32325
32321
|
if (runtime !== void 0) {
|
|
32326
|
-
|
|
32327
|
-
await runtime.cancel();
|
|
32328
|
-
} finally {
|
|
32329
|
-
if (this.#executionProcesses.detach(sessionId, runtime)) {
|
|
32330
|
-
this.#processes.releaseClosed(runtime);
|
|
32331
|
-
}
|
|
32332
|
-
}
|
|
32322
|
+
await runtime.cancel();
|
|
32333
32323
|
}
|
|
32334
32324
|
});
|
|
32335
32325
|
};
|
|
@@ -35117,7 +35107,7 @@ var CodexAcpAgent = class {
|
|
|
35117
35107
|
};
|
|
35118
35108
|
#completeTurn = async (turn) => {
|
|
35119
35109
|
const active = this.#turn;
|
|
35120
|
-
if (active === null) {
|
|
35110
|
+
if (active === null || active.turn.id !== turn.id) {
|
|
35121
35111
|
return;
|
|
35122
35112
|
}
|
|
35123
35113
|
await this.#updateTail;
|
|
@@ -43007,24 +42997,33 @@ async function runRelayConnection({
|
|
|
43007
42997
|
// src/relay-connection/session-event-publisher.ts
|
|
43008
42998
|
import { WebSocket as WebSocket8 } from "undici";
|
|
43009
42999
|
var MAX_BUFFERED_BYTES = 32 * 1024 * 1024;
|
|
43000
|
+
var SESSION_EVENT_V2_BATCH_WINDOW_MILLISECONDS = 200;
|
|
43010
43001
|
var DaemonSessionEventPublisher = class {
|
|
43002
|
+
#pendingV2Events = [];
|
|
43003
|
+
#pendingV2Task = null;
|
|
43011
43004
|
#socket = null;
|
|
43005
|
+
#timer;
|
|
43006
|
+
constructor(timer) {
|
|
43007
|
+
this.#timer = timer;
|
|
43008
|
+
}
|
|
43012
43009
|
connect = (socket) => {
|
|
43010
|
+
this.dropPendingV2Events();
|
|
43013
43011
|
this.#socket = socket;
|
|
43014
43012
|
};
|
|
43015
43013
|
disconnect = (socket) => {
|
|
43016
43014
|
if (this.#socket === socket) {
|
|
43017
43015
|
this.#socket = null;
|
|
43016
|
+
this.dropPendingV2Events();
|
|
43018
43017
|
}
|
|
43019
43018
|
};
|
|
43020
43019
|
close = () => {
|
|
43021
43020
|
this.#socket = null;
|
|
43021
|
+
this.dropPendingV2Events();
|
|
43022
43022
|
};
|
|
43023
43023
|
publishOperationFailure = (sessionId, requestId, code, message) => {
|
|
43024
43024
|
this.#send({ kind: "session.operation.failed", sessionId, requestId, code, message });
|
|
43025
43025
|
};
|
|
43026
43026
|
publishStatus = (event) => this.#send(event);
|
|
43027
|
-
publishV2 = (event) => this.#send({ event, kind: SESSION_EVENT_V2_KIND });
|
|
43028
43027
|
#send = (message) => {
|
|
43029
43028
|
const socket = this.#socket;
|
|
43030
43029
|
if (socket === null || socket.readyState !== WebSocket8.OPEN) {
|
|
@@ -43040,6 +43039,44 @@ var DaemonSessionEventPublisher = class {
|
|
|
43040
43039
|
} catch {
|
|
43041
43040
|
}
|
|
43042
43041
|
};
|
|
43042
|
+
publishV2 = (event) => {
|
|
43043
|
+
const socket = this.#socket;
|
|
43044
|
+
if (socket === null || socket.readyState !== WebSocket8.OPEN) {
|
|
43045
|
+
return;
|
|
43046
|
+
}
|
|
43047
|
+
this.#pendingV2Events.push(event);
|
|
43048
|
+
if (this.#pendingV2Events.length >= SESSION_EVENT_V2_BATCH_MAX_SIZE) {
|
|
43049
|
+
this.flushV2Events(socket);
|
|
43050
|
+
return;
|
|
43051
|
+
}
|
|
43052
|
+
this.#pendingV2Task ??= this.#timer.schedule(
|
|
43053
|
+
() => this.flushV2Events(socket),
|
|
43054
|
+
SESSION_EVENT_V2_BATCH_WINDOW_MILLISECONDS
|
|
43055
|
+
);
|
|
43056
|
+
};
|
|
43057
|
+
dropPendingV2Events = () => {
|
|
43058
|
+
this.#pendingV2Task?.cancel();
|
|
43059
|
+
this.#pendingV2Task = null;
|
|
43060
|
+
this.#pendingV2Events = [];
|
|
43061
|
+
};
|
|
43062
|
+
flushV2Events = (socket) => {
|
|
43063
|
+
this.#pendingV2Task?.cancel();
|
|
43064
|
+
this.#pendingV2Task = null;
|
|
43065
|
+
const events = this.#pendingV2Events;
|
|
43066
|
+
this.#pendingV2Events = [];
|
|
43067
|
+
if (events.length === 0 || this.#socket !== socket || socket.readyState !== WebSocket8.OPEN) {
|
|
43068
|
+
return;
|
|
43069
|
+
}
|
|
43070
|
+
const encoded = encodeDaemonToServiceMessage({ events, kind: SESSION_EVENT_V2_KIND });
|
|
43071
|
+
if (socket.bufferedAmount + Buffer.byteLength(encoded, "utf8") > MAX_BUFFERED_BYTES) {
|
|
43072
|
+
socket.close(1013, "Live event transport overloaded");
|
|
43073
|
+
return;
|
|
43074
|
+
}
|
|
43075
|
+
try {
|
|
43076
|
+
socket.send(encoded);
|
|
43077
|
+
} catch {
|
|
43078
|
+
}
|
|
43079
|
+
};
|
|
43043
43080
|
};
|
|
43044
43081
|
|
|
43045
43082
|
// src/relay-connection/timer.ts
|
|
@@ -43283,7 +43320,7 @@ async function runDaemon(config2, audit, signal, timer = systemDaemonTimer, opti
|
|
|
43283
43320
|
const sessionStore = new SqliteAcpSessionStore(sessionDatabase, eventsV2);
|
|
43284
43321
|
await using externalContent = new LocalExternalContentStore(stateDirectory);
|
|
43285
43322
|
const operations = new DaemonOperationState();
|
|
43286
|
-
const publisher = new DaemonSessionEventPublisher();
|
|
43323
|
+
const publisher = new DaemonSessionEventPublisher(timer);
|
|
43287
43324
|
const eventLogV2 = new DaemonSessionEventLogV2(
|
|
43288
43325
|
publisher,
|
|
43289
43326
|
(sessionId, event) => agentRuntime.recordLifecycleEventV2(sessionId, event),
|