@moxt-ai/mobius 0.0.339 → 0.0.341
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/adapter/codex/tool-event.js +2 -2
- package/dist/acp/adapter/codex/tool-event.js.map +1 -1
- package/dist/acp/adapter/session-events.d.ts.map +1 -1
- package/dist/acp/adapter/session-events.js +59 -82
- package/dist/acp/adapter/session-events.js.map +1 -1
- package/dist/acp/content/content-externalizer.d.ts.map +1 -1
- package/dist/acp/content/content-externalizer.js +26 -0
- package/dist/acp/content/content-externalizer.js.map +1 -1
- package/dist/acp/native-history/preview-contract.d.ts +3 -4
- package/dist/acp/native-history/preview-contract.d.ts.map +1 -1
- package/dist/cli.js +103 -561
- package/dist/cli.js.map +4 -4
- package/dist/daemon/upgrades/data.js +5 -5
- package/dist/daemon/upgrades/data.js.map +1 -1
- package/dist/daemon/upgrades/package.js +5 -5
- package/dist/daemon/upgrades/package.js.map +1 -1
- package/dist/runtime.js +87 -78
- package/dist/runtime.js.map +3 -3
- package/dist/session/history/session-event-history-projection.d.ts.map +1 -1
- package/dist/session/history/session-event-history-projection.js +7 -0
- package/dist/session/history/session-event-history-projection.js.map +1 -1
- package/dist/storage/daemon/version-data.js +2 -2
- package/dist/storage/daemon/version-data.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { decodeRuntimeUpgradeVersion } from "@moxt-ai/mobius-sdk/protocol";
|
|
2
2
|
import { copyVersionData, discardVersionData, readCurrentDataVersion, versionDataExists, writeCurrentDataVersion, } from "../../storage/daemon/version-data.js";
|
|
3
3
|
import { readStateDirectory } from "../../storage/state-directory.js";
|
|
4
4
|
import { readSwitchStatus } from "../control/switch-status.js";
|
|
@@ -7,7 +7,7 @@ import { readSwitchStatus } from "../control/switch-status.js";
|
|
|
7
7
|
export async function prepareVersionData(version, signal, environment = process.env, fallbackVersion = null) {
|
|
8
8
|
signal.throwIfAborted();
|
|
9
9
|
const root = readStateDirectory(environment);
|
|
10
|
-
const targetVersion =
|
|
10
|
+
const targetVersion = decodeRuntimeUpgradeVersion(version);
|
|
11
11
|
const current = await readCurrentDataVersion(root, signal);
|
|
12
12
|
let previous;
|
|
13
13
|
if (current !== null) {
|
|
@@ -25,7 +25,7 @@ export async function prepareVersionData(version, signal, environment = process.
|
|
|
25
25
|
}
|
|
26
26
|
previous = fallbackVersion;
|
|
27
27
|
}
|
|
28
|
-
const leftBehind = await copyVersionData(root,
|
|
28
|
+
const leftBehind = await copyVersionData(root, decodeRuntimeUpgradeVersion(previous), targetVersion, signal);
|
|
29
29
|
for (const entry of leftBehind) {
|
|
30
30
|
process.stderr.write(`Mobius did not carry ${entry} into version ${targetVersion}: an earlier Mobius ran with that installation as its state root.\n`);
|
|
31
31
|
}
|
|
@@ -33,10 +33,10 @@ export async function prepareVersionData(version, signal, environment = process.
|
|
|
33
33
|
// A version whose switch rolled back never had the current data; once the previous version runs again, its copy is
|
|
34
34
|
// stale, and its next attempt must inherit the current data rather than reuse that copy.
|
|
35
35
|
export async function discardRolledBackData(version, signal) {
|
|
36
|
-
await discardVersionData(readStateDirectory(),
|
|
36
|
+
await discardVersionData(readStateDirectory(), decodeRuntimeUpgradeVersion(version), signal);
|
|
37
37
|
}
|
|
38
38
|
export async function recordCurrentData(version, signal) {
|
|
39
|
-
await writeCurrentDataVersion(readStateDirectory(),
|
|
39
|
+
await writeCurrentDataVersion(readStateDirectory(), decodeRuntimeUpgradeVersion(version), signal);
|
|
40
40
|
}
|
|
41
41
|
export async function prepareUpgradeData(controlDirectory, version, signal) {
|
|
42
42
|
const transition = await readSwitchStatus(controlDirectory, signal);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data.js","sourceRoot":"","sources":["../../../src/daemon/upgrades/data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EACH,eAAe,EACf,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,EACjB,uBAAuB,GAC1B,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D,oHAAoH;AACpH,0DAA0D;AAC1D,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACpC,OAAe,EACf,MAAmB,EACnB,WAAW,GAAgC,OAAO,CAAC,GAAG,EACtD,eAAe,GAAkB,IAAI;IAErC,MAAM,CAAC,cAAc,EAAE,CAAC;IACxB,MAAM,IAAI,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAC7C,MAAM,aAAa,GAAG,2BAA2B,CAAC,
|
|
1
|
+
{"version":3,"file":"data.js","sourceRoot":"","sources":["../../../src/daemon/upgrades/data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EACH,eAAe,EACf,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,EACjB,uBAAuB,GAC1B,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D,oHAAoH;AACpH,0DAA0D;AAC1D,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACpC,OAAe,EACf,MAAmB,EACnB,WAAW,GAAgC,OAAO,CAAC,GAAG,EACtD,eAAe,GAAkB,IAAI;IAErC,MAAM,CAAC,cAAc,EAAE,CAAC;IACxB,MAAM,IAAI,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAC7C,MAAM,aAAa,GAAG,2BAA2B,CAAC,OAAO,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC3D,IAAI,QAAgB,CAAC;IACrB,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACnB,IAAI,OAAO,KAAK,aAAa,EAAE,CAAC;YAC5B,OAAO;QACX,CAAC;QACD,6GAA6G;QAC7G,yFAAyF;QACzF,MAAM,kBAAkB,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;QACtD,QAAQ,GAAG,OAAO,CAAC;IACvB,CAAC;SAAM,CAAC;QACJ,IAAI,eAAe,KAAK,IAAI,IAAI,CAAC,MAAM,iBAAiB,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;YACrF,OAAO;QACX,CAAC;QACD,QAAQ,GAAG,eAAe,CAAC;IAC/B,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,2BAA2B,CAAC,QAAQ,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;IAC7G,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAChB,wBAAwB,KAAK,iBAAiB,aAAa,qEAAqE,CACnI,CAAC;IACN,CAAC;AACL,CAAC;AAED,mHAAmH;AACnH,yFAAyF;AACzF,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,OAAe,EAAE,MAAmB;IAC5E,MAAM,kBAAkB,CAAC,kBAAkB,EAAE,EAAE,2BAA2B,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;AACjG,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAAe,EAAE,MAAmB;IACxE,MAAM,uBAAuB,CAAC,kBAAkB,EAAE,EAAE,2BAA2B,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;AACtG,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACpC,gBAAuC,EACvC,OAAe,EACf,MAAmB;IAEnB,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IACpE,MAAM,QAAQ,GACV,UAAU,EAAE,IAAI,KAAK,WAAW,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IACjH,MAAM,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AACrE,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { isAbsolute, join, relative } from "node:path";
|
|
2
|
-
import {
|
|
2
|
+
import { decodeRuntimeUpgradeVersion } from "@moxt-ai/mobius-sdk/protocol";
|
|
3
3
|
import { gt, satisfies, validRange } from "semver";
|
|
4
4
|
import { z } from "zod";
|
|
5
5
|
import { readInstalledRelease, releasePrefix } from "../../storage/daemon/release-files.js";
|
|
@@ -16,7 +16,7 @@ export class DaemonReleaseUpgradeError extends Error {
|
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
18
|
export async function prepareDaemonReleaseVersion(version, signal) {
|
|
19
|
-
|
|
19
|
+
decodeRuntimeUpgradeVersion(version);
|
|
20
20
|
signal.throwIfAborted();
|
|
21
21
|
const prefix = releasePrefix(version);
|
|
22
22
|
let installed;
|
|
@@ -44,7 +44,7 @@ export async function prepareDaemonReleaseVersion(version, signal) {
|
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
46
|
export async function installDaemonReleaseVersion(version, signal) {
|
|
47
|
-
|
|
47
|
+
decodeRuntimeUpgradeVersion(version);
|
|
48
48
|
const npm = await findExecutableOnPath("npm", process.env);
|
|
49
49
|
if (npm === null) {
|
|
50
50
|
throw new DaemonReleaseUpgradeError("npm_unavailable", "npm is required to download the new daemon");
|
|
@@ -127,7 +127,7 @@ async function verifyInstalledDaemonRelease(installed, prefix, version, signal)
|
|
|
127
127
|
// a one-element array from npm 12. Accept exactly those shapes; anything else is
|
|
128
128
|
// not a version npm reported.
|
|
129
129
|
const npmViewVersionSchema = z
|
|
130
|
-
.union([
|
|
130
|
+
.union([z.string(), z.tuple([z.string()])])
|
|
131
131
|
.transform((value) => (typeof value === "string" ? value : value[0]));
|
|
132
132
|
export async function findNewDaemonReleaseVersion(currentVersion, signal) {
|
|
133
133
|
const npm = await findExecutableOnPath("npm", process.env);
|
|
@@ -144,7 +144,7 @@ export async function findNewDaemonReleaseVersion(currentVersion, signal) {
|
|
|
144
144
|
timeoutMilliseconds: 30_000,
|
|
145
145
|
outputLimitBytes: 4096,
|
|
146
146
|
});
|
|
147
|
-
const version = npmViewVersionSchema.parse(JSON.parse(result.stdout));
|
|
147
|
+
const version = decodeRuntimeUpgradeVersion(npmViewVersionSchema.parse(JSON.parse(result.stdout)));
|
|
148
148
|
return gt(version, currentVersion) ? version : null;
|
|
149
149
|
}
|
|
150
150
|
catch (cause) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package.js","sourceRoot":"","sources":["../../../src/daemon/upgrades/package.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACnD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAyB,oBAAoB,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACnH,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC3F,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAE3F,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IACvC,IAAI,CAAS;IACtB,YAAY,IAAY,EAAE,OAAe,EAAE,OAAsB;QAC7D,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;CACJ;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,OAAe,EAAE,MAAmB;IAClF,2BAA2B,CAAC,
|
|
1
|
+
{"version":3,"file":"package.js","sourceRoot":"","sources":["../../../src/daemon/upgrades/package.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime.js
CHANGED
|
@@ -21307,6 +21307,7 @@ var boundedJsonSchema = external_exports.unknown().superRefine((value, context)
|
|
|
21307
21307
|
context.addIssue({ code: "custom", message: issue2 });
|
|
21308
21308
|
}
|
|
21309
21309
|
});
|
|
21310
|
+
var isBoundedJson = (value) => boundedJsonIssue(value) === null;
|
|
21310
21311
|
var toolCallLocationSchema = external_exports.object({
|
|
21311
21312
|
line: external_exports.number().int().nonnegative().safe().nullable().optional(),
|
|
21312
21313
|
path: boundedString
|
|
@@ -23273,24 +23274,6 @@ var AgentUpdateStream = class {
|
|
|
23273
23274
|
};
|
|
23274
23275
|
|
|
23275
23276
|
// src/acp/adapter/session-events.ts
|
|
23276
|
-
var MAXIMUM_REASONING_UPDATE_CHARACTERS = 1e6;
|
|
23277
|
-
function* reasoningWireUpdates(update) {
|
|
23278
|
-
if (update.sessionUpdate !== "agent_thought_chunk" || update.content.type !== "text" || update.content.text.length <= MAXIMUM_REASONING_UPDATE_CHARACTERS) {
|
|
23279
|
-
yield update;
|
|
23280
|
-
return;
|
|
23281
|
-
}
|
|
23282
|
-
const text2 = update.content.text;
|
|
23283
|
-
for (let start = 0; start < text2.length; ) {
|
|
23284
|
-
let end = Math.min(start + MAXIMUM_REASONING_UPDATE_CHARACTERS, text2.length);
|
|
23285
|
-
const last = text2.charCodeAt(end - 1);
|
|
23286
|
-
const next = text2.charCodeAt(end);
|
|
23287
|
-
if (last >= 55296 && last <= 56319 && next >= 56320 && next <= 57343) {
|
|
23288
|
-
end -= 1;
|
|
23289
|
-
}
|
|
23290
|
-
yield { ...update, content: { ...update.content, text: text2.slice(start, end) } };
|
|
23291
|
-
start = end;
|
|
23292
|
-
}
|
|
23293
|
-
}
|
|
23294
23277
|
var AdapterSessionConnection = class {
|
|
23295
23278
|
#connection;
|
|
23296
23279
|
#onBackgroundActivity;
|
|
@@ -23311,68 +23294,66 @@ var AdapterSessionConnection = class {
|
|
|
23311
23294
|
throw new AcpExecutionError("ACP agent referenced an unknown session", {}, "invalid_agent_session");
|
|
23312
23295
|
}
|
|
23313
23296
|
const signal = AbortSignal.any([this.#lifetime.signal, AbortSignal.timeout(3e4)]);
|
|
23314
|
-
|
|
23315
|
-
|
|
23316
|
-
|
|
23317
|
-
|
|
23318
|
-
|
|
23319
|
-
|
|
23320
|
-
|
|
23321
|
-
|
|
23322
|
-
|
|
23323
|
-
(update.sessionUpdate === "tool_call" || update.sessionUpdate === "tool_call_update") && backgroundTask !== void 0 && typeof eventUpdate === "object" && eventUpdate !== null ? { ...eventUpdate, backgroundTask } : eventUpdate
|
|
23324
|
-
)
|
|
23297
|
+
const externalized = await externalizer.update(options.sessionId(), notification.update, signal);
|
|
23298
|
+
signal.throwIfAborted();
|
|
23299
|
+
const update = externalized.agent;
|
|
23300
|
+
const eventUpdate = externalized.event;
|
|
23301
|
+
const backgroundTask = update._meta?.["mobius.backgroundTask"];
|
|
23302
|
+
const payload = decodeAcpSessionUpdate(
|
|
23303
|
+
JSON.stringify(
|
|
23304
|
+
normalizeEvent(
|
|
23305
|
+
(update.sessionUpdate === "tool_call" || update.sessionUpdate === "tool_call_update") && backgroundTask !== void 0 && typeof eventUpdate === "object" && eventUpdate !== null ? { ...eventUpdate, backgroundTask } : eventUpdate
|
|
23325
23306
|
)
|
|
23326
|
-
)
|
|
23327
|
-
|
|
23328
|
-
|
|
23329
|
-
|
|
23330
|
-
|
|
23331
|
-
|
|
23332
|
-
|
|
23333
|
-
|
|
23334
|
-
|
|
23335
|
-
|
|
23336
|
-
|
|
23337
|
-
|
|
23338
|
-
}
|
|
23339
|
-
|
|
23340
|
-
|
|
23341
|
-
|
|
23342
|
-
|
|
23343
|
-
|
|
23344
|
-
|
|
23345
|
-
|
|
23346
|
-
|
|
23347
|
-
|
|
23348
|
-
|
|
23349
|
-
|
|
23350
|
-
|
|
23351
|
-
|
|
23352
|
-
|
|
23353
|
-
|
|
23354
|
-
}
|
|
23355
|
-
if (Object.hasOwn(update, "updatedAt")) {
|
|
23356
|
-
changes.push({ kind: "updated-at", value: truncate(update.updatedAt ?? "", 128) });
|
|
23357
|
-
}
|
|
23358
|
-
event = { kind: "info", payload, changes };
|
|
23359
|
-
break;
|
|
23307
|
+
)
|
|
23308
|
+
);
|
|
23309
|
+
let event;
|
|
23310
|
+
switch (update.sessionUpdate) {
|
|
23311
|
+
case "available_commands_update":
|
|
23312
|
+
event = {
|
|
23313
|
+
kind: "commands",
|
|
23314
|
+
payload,
|
|
23315
|
+
commands: update.availableCommands.slice(0, 500).map((command) => ({
|
|
23316
|
+
description: truncate(command.description, 500),
|
|
23317
|
+
inputHint: truncate(command.input?.hint ?? "", 255),
|
|
23318
|
+
name: truncate(command.name, 128)
|
|
23319
|
+
})).filter((command) => command.name.length > 0)
|
|
23320
|
+
};
|
|
23321
|
+
break;
|
|
23322
|
+
case "config_option_update":
|
|
23323
|
+
event = {
|
|
23324
|
+
kind: "configuration",
|
|
23325
|
+
payload,
|
|
23326
|
+
configOptions: protocol.normalizeUpdate(options.configOptions(), update.configOptions)
|
|
23327
|
+
};
|
|
23328
|
+
break;
|
|
23329
|
+
case "current_mode_update":
|
|
23330
|
+
event = { kind: "mode", payload, modeId: update.currentModeId };
|
|
23331
|
+
break;
|
|
23332
|
+
case "session_info_update": {
|
|
23333
|
+
const changes = [];
|
|
23334
|
+
if (Object.hasOwn(update, "title")) {
|
|
23335
|
+
changes.push({ kind: "title", value: truncate(update.title ?? "", 500) });
|
|
23360
23336
|
}
|
|
23361
|
-
|
|
23362
|
-
|
|
23363
|
-
|
|
23364
|
-
|
|
23365
|
-
|
|
23366
|
-
case "plan":
|
|
23367
|
-
case "plan_update":
|
|
23368
|
-
case "plan_removed":
|
|
23369
|
-
event = { kind: "content", payload };
|
|
23370
|
-
break;
|
|
23371
|
-
default:
|
|
23372
|
-
event = { kind: "other", payload };
|
|
23337
|
+
if (Object.hasOwn(update, "updatedAt")) {
|
|
23338
|
+
changes.push({ kind: "updated-at", value: truncate(update.updatedAt ?? "", 128) });
|
|
23339
|
+
}
|
|
23340
|
+
event = { kind: "info", payload, changes };
|
|
23341
|
+
break;
|
|
23373
23342
|
}
|
|
23374
|
-
|
|
23343
|
+
case "user_message_chunk":
|
|
23344
|
+
case "agent_message_chunk":
|
|
23345
|
+
case "agent_thought_chunk":
|
|
23346
|
+
case "tool_call":
|
|
23347
|
+
case "tool_call_update":
|
|
23348
|
+
case "plan":
|
|
23349
|
+
case "plan_update":
|
|
23350
|
+
case "plan_removed":
|
|
23351
|
+
event = { kind: "content", payload };
|
|
23352
|
+
break;
|
|
23353
|
+
default:
|
|
23354
|
+
event = { kind: "other", payload };
|
|
23375
23355
|
}
|
|
23356
|
+
await options.onEvent(event);
|
|
23376
23357
|
});
|
|
23377
23358
|
this.events = this.#updates;
|
|
23378
23359
|
const client2 = {
|
|
@@ -23780,6 +23761,7 @@ import { randomUUID } from "node:crypto";
|
|
|
23780
23761
|
|
|
23781
23762
|
// src/session/history/session-event-history-projection.ts
|
|
23782
23763
|
var MAXIMUM_PROJECTED_REASONING_BYTES = 24 * 1024;
|
|
23764
|
+
var MAXIMUM_PROJECTED_MESSAGE_CHARACTERS = 1e6;
|
|
23783
23765
|
function boundReasoning(payload) {
|
|
23784
23766
|
if (payload.content.type !== "text" || Buffer.byteLength(payload.content.text, "utf8") <= MAXIMUM_PROJECTED_REASONING_BYTES) {
|
|
23785
23767
|
return payload;
|
|
@@ -23848,6 +23830,9 @@ function mergeTextChunk(previous, incoming) {
|
|
|
23848
23830
|
if (previous.sessionUpdate !== "agent_message_chunk" && previous.sessionUpdate !== "agent_thought_chunk" && previous.sessionUpdate !== "user_message_chunk" || incoming.sessionUpdate !== previous.sessionUpdate || previous.messageId !== incoming.messageId || previous.content.type !== "text" || incoming.content.type !== "text") {
|
|
23849
23831
|
return null;
|
|
23850
23832
|
}
|
|
23833
|
+
if (previous.sessionUpdate !== "agent_thought_chunk" && previous.content.text.length + incoming.content.text.length > MAXIMUM_PROJECTED_MESSAGE_CHARACTERS) {
|
|
23834
|
+
return null;
|
|
23835
|
+
}
|
|
23851
23836
|
const content = { text: `${previous.content.text}${incoming.content.text}`, type: "text" };
|
|
23852
23837
|
if (previous.sessionUpdate === "agent_thought_chunk" && incoming.sessionUpdate === "agent_thought_chunk") {
|
|
23853
23838
|
return boundReasoning({
|
|
@@ -32007,7 +31992,7 @@ function prepareCodexToolUpdate(update) {
|
|
|
32007
31992
|
};
|
|
32008
31993
|
}
|
|
32009
31994
|
function fitPayload(value) {
|
|
32010
|
-
if (value === void 0 ||
|
|
31995
|
+
if (value === void 0 || isBoundedJson(value)) {
|
|
32011
31996
|
return value;
|
|
32012
31997
|
}
|
|
32013
31998
|
return { truncated: true, text: payloadText(value) };
|
|
@@ -32181,6 +32166,29 @@ var harnessAdapters = (agent, dependencies) => {
|
|
|
32181
32166
|
|
|
32182
32167
|
// src/acp/content/content-externalizer.ts
|
|
32183
32168
|
var MAXIMUM_ENCODED_CONTENT_CHARACTERS = 4e6;
|
|
32169
|
+
var MAXIMUM_TEXT_CHARACTERS = 1e6;
|
|
32170
|
+
function boundedText2(text2) {
|
|
32171
|
+
if (text2.length <= MAXIMUM_TEXT_CHARACTERS) {
|
|
32172
|
+
return text2;
|
|
32173
|
+
}
|
|
32174
|
+
const marker = (start2) => `... [omit ${text2.length - start2} characters since ${start2}]`;
|
|
32175
|
+
let start = 0;
|
|
32176
|
+
let upper = MAXIMUM_TEXT_CHARACTERS;
|
|
32177
|
+
while (start < upper) {
|
|
32178
|
+
const candidate = Math.ceil((start + upper) / 2);
|
|
32179
|
+
if (candidate + marker(candidate).length <= MAXIMUM_TEXT_CHARACTERS) {
|
|
32180
|
+
start = candidate;
|
|
32181
|
+
} else {
|
|
32182
|
+
upper = candidate - 1;
|
|
32183
|
+
}
|
|
32184
|
+
}
|
|
32185
|
+
const last = text2.charCodeAt(start - 1);
|
|
32186
|
+
const next = text2.charCodeAt(start);
|
|
32187
|
+
if (last >= 55296 && last <= 56319 && next >= 56320 && next <= 57343) {
|
|
32188
|
+
start -= 1;
|
|
32189
|
+
}
|
|
32190
|
+
return text2.slice(0, start) + marker(start);
|
|
32191
|
+
}
|
|
32184
32192
|
function decodeBase64(data) {
|
|
32185
32193
|
if (data.length > MAXIMUM_ENCODED_CONTENT_CHARACTERS || data.length % 4 !== 0 || !/^[A-Za-z0-9+/]*={0,2}$/u.test(data)) {
|
|
32186
32194
|
throw new Error("The ACP embedded content is not valid bounded base64");
|
|
@@ -32225,6 +32233,7 @@ var AcpContentExternalizer = class {
|
|
|
32225
32233
|
async #content(sessionId, content, signal) {
|
|
32226
32234
|
switch (content.type) {
|
|
32227
32235
|
case "text":
|
|
32236
|
+
return { agent: content, event: { ...content, text: boundedText2(content.text) } };
|
|
32228
32237
|
case "resource_link":
|
|
32229
32238
|
return { agent: content, event: content };
|
|
32230
32239
|
case "image": {
|
|
@@ -32438,7 +32447,7 @@ import { fetch as fetch3 } from "undici";
|
|
|
32438
32447
|
// package.json
|
|
32439
32448
|
var package_default = {
|
|
32440
32449
|
name: "@moxt-ai/mobius",
|
|
32441
|
-
version: "0.0.
|
|
32450
|
+
version: "0.0.341",
|
|
32442
32451
|
description: "Mobius CLI for pairing and running local AI agent services.",
|
|
32443
32452
|
type: "module",
|
|
32444
32453
|
bin: {
|