@moxt-ai/mobius 0.0.347 → 0.0.349
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/cli.js +161 -104
- package/dist/cli.js.map +4 -4
- package/dist/engine/runtime/command/registry/prompt.js +4 -4
- package/dist/engine/runtime/command/registry/prompt.js.map +1 -1
- package/dist/engine/runtime/command/registry/session.d.ts.map +1 -1
- package/dist/engine/runtime/command/registry/session.js +8 -1
- package/dist/engine/runtime/command/registry/session.js.map +1 -1
- package/dist/engine/runtime/relay/session-event-publisher.d.ts.map +1 -1
- package/dist/engine/runtime/relay/session-event-publisher.js +22 -1
- package/dist/engine/runtime/relay/session-event-publisher.js.map +1 -1
- package/dist/engine/session/content/external-content-store.d.ts +4 -1
- package/dist/engine/session/content/external-content-store.d.ts.map +1 -1
- package/dist/engine/session/content/external-content-store.js +11 -3
- package/dist/engine/session/content/external-content-store.js.map +1 -1
- package/dist/engine/session/prompt/prompt-artifacts.d.ts +6 -1
- package/dist/engine/session/prompt/prompt-artifacts.d.ts.map +1 -1
- package/dist/engine/session/prompt/prompt-artifacts.js +12 -17
- package/dist/engine/session/prompt/prompt-artifacts.js.map +1 -1
- package/dist/engine/session/prompt/prompt-lifecycle.d.ts.map +1 -1
- package/dist/engine/session/prompt/prompt-lifecycle.js +2 -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 +5 -6
- package/dist/engine/session/turn/execution-receipts.js.map +1 -1
- package/dist/engine/session/workspace/workspace-directory.d.ts +1 -0
- package/dist/engine/session/workspace/workspace-directory.d.ts.map +1 -1
- package/dist/engine/session/workspace/workspace-directory.js +2 -1
- package/dist/engine/session/workspace/workspace-directory.js.map +1 -1
- package/dist/engine.js +152 -96
- package/dist/engine.js.map +4 -4
- package/package.json +6 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-directory.js","sourceRoot":"","sources":["../../../../src/engine/session/workspace/workspace-directory.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"workspace-directory.js","sourceRoot":"","sources":["../../../../src/engine/session/workspace/workspace-directory.ts"],"names":[],"mappings":"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"}
|
package/dist/engine.js
CHANGED
|
@@ -21673,7 +21673,8 @@ var workspaceListCommandSchema = external_exports.object({
|
|
|
21673
21673
|
bindingId: identifierStringSchema,
|
|
21674
21674
|
directoryId: DIRECTORY_IDENTIFIER,
|
|
21675
21675
|
kind: external_exports.literal(WORKSPACE_LIST_KIND),
|
|
21676
|
-
requestId: identifierStringSchema
|
|
21676
|
+
requestId: identifierStringSchema,
|
|
21677
|
+
view: external_exports.literal("metadata").optional()
|
|
21677
21678
|
}).readonly();
|
|
21678
21679
|
var workspaceEntriesEventSchema = external_exports.object({
|
|
21679
21680
|
bindingId: identifierStringSchema,
|
|
@@ -63398,6 +63399,7 @@ var ClaudeAcpAgent = class {
|
|
|
63398
63399
|
session.titles.onPrompt(params.prompt);
|
|
63399
63400
|
const turn = {
|
|
63400
63401
|
promptUuid,
|
|
63402
|
+
inputQueuedAt: performance.now(),
|
|
63401
63403
|
isLocalOnlyCommand,
|
|
63402
63404
|
settled: false,
|
|
63403
63405
|
resolve: () => {
|
|
@@ -63883,6 +63885,15 @@ var ClaudeAcpAgent = class {
|
|
|
63883
63885
|
case "started": {
|
|
63884
63886
|
const queued = findUnsettledTurn(frame.command_uuid);
|
|
63885
63887
|
if (queued) {
|
|
63888
|
+
if (!queued.commandStarted) {
|
|
63889
|
+
this.logger.log(JSON.stringify({
|
|
63890
|
+
event: "claude-sdk-command-start-timing",
|
|
63891
|
+
sessionId: params.sessionId,
|
|
63892
|
+
promptUuid: queued.promptUuid,
|
|
63893
|
+
observedAt: Date.now(),
|
|
63894
|
+
queuedToCommandStartMs: performance.now() - queued.inputQueuedAt
|
|
63895
|
+
}));
|
|
63896
|
+
}
|
|
63886
63897
|
queued.commandStarted = true;
|
|
63887
63898
|
}
|
|
63888
63899
|
const state = session.orphanCommands?.get(frame.command_uuid);
|
|
@@ -64569,6 +64580,16 @@ ${message.api_refusal_explanation}` : "";
|
|
|
64569
64580
|
}
|
|
64570
64581
|
const queued = findUnsettledTurn(message.uuid);
|
|
64571
64582
|
if (queued) {
|
|
64583
|
+
if (!queued.inputEchoObserved) {
|
|
64584
|
+
queued.inputEchoObserved = true;
|
|
64585
|
+
this.logger.log(JSON.stringify({
|
|
64586
|
+
event: "claude-sdk-input-echo-timing",
|
|
64587
|
+
sessionId: params.sessionId,
|
|
64588
|
+
promptUuid: queued.promptUuid,
|
|
64589
|
+
observedAt: Date.now(),
|
|
64590
|
+
queuedToEchoMs: performance.now() - queued.inputQueuedAt
|
|
64591
|
+
}));
|
|
64592
|
+
}
|
|
64572
64593
|
if (session.activeTurn !== queued) {
|
|
64573
64594
|
if (session.activeTurn) {
|
|
64574
64595
|
if (session.cancelled) {
|
|
@@ -86975,6 +86996,63 @@ var NativeSessionService = class {
|
|
|
86975
86996
|
};
|
|
86976
86997
|
};
|
|
86977
86998
|
|
|
86999
|
+
// src/engine/session/prompt/prompt-artifacts.ts
|
|
87000
|
+
import { createHash as createHash6 } from "node:crypto";
|
|
87001
|
+
import { pathToFileURL as pathToFileURL2 } from "node:url";
|
|
87002
|
+
var PromptArtifactError = class extends OperationError {
|
|
87003
|
+
constructor(code, message, options = {}) {
|
|
87004
|
+
super(code, message, options);
|
|
87005
|
+
this.name = "PromptArtifactError";
|
|
87006
|
+
}
|
|
87007
|
+
};
|
|
87008
|
+
var ResolvedPromptArtifacts = class {
|
|
87009
|
+
images;
|
|
87010
|
+
resources;
|
|
87011
|
+
constructor(images, resources) {
|
|
87012
|
+
this.images = images;
|
|
87013
|
+
this.resources = resources;
|
|
87014
|
+
}
|
|
87015
|
+
};
|
|
87016
|
+
function isTextPromptResourceMediaType(mediaType) {
|
|
87017
|
+
return mediaType.startsWith("text/") || mediaType === "application/json" || mediaType.endsWith("+json") || mediaType === "application/xml" || mediaType.endsWith("+xml");
|
|
87018
|
+
}
|
|
87019
|
+
async function resolvePromptArtifacts(read, attachments, signal) {
|
|
87020
|
+
const images = [];
|
|
87021
|
+
const resources = [];
|
|
87022
|
+
for (const attachment of attachments) {
|
|
87023
|
+
signal.throwIfAborted();
|
|
87024
|
+
const artifact = await read(attachment, signal);
|
|
87025
|
+
const { bytes } = artifact;
|
|
87026
|
+
if (bytes.byteLength !== attachment.byteLength || createHash6("sha256").update(bytes).digest("hex") !== attachment.contentKey) {
|
|
87027
|
+
throw new PromptArtifactError(
|
|
87028
|
+
"artifact_integrity_failed",
|
|
87029
|
+
"The prompt attachment failed integrity validation"
|
|
87030
|
+
);
|
|
87031
|
+
}
|
|
87032
|
+
if (attachment.kind === "image") {
|
|
87033
|
+
if (bytes.byteLength > PROMPT_IMAGE_MAX_BYTES || images.length >= 8) {
|
|
87034
|
+
continue;
|
|
87035
|
+
}
|
|
87036
|
+
images.push({
|
|
87037
|
+
data: Buffer.from(bytes).toString("base64"),
|
|
87038
|
+
mimeType: attachment.mimeType,
|
|
87039
|
+
name: attachment.name
|
|
87040
|
+
});
|
|
87041
|
+
continue;
|
|
87042
|
+
}
|
|
87043
|
+
if (bytes.byteLength > MAX_PROMPT_ATTACHMENT_BYTES || resources.length >= 16) {
|
|
87044
|
+
continue;
|
|
87045
|
+
}
|
|
87046
|
+
resources.push({
|
|
87047
|
+
mimeType: attachment.mimeType,
|
|
87048
|
+
name: attachment.name,
|
|
87049
|
+
type: "link",
|
|
87050
|
+
uri: pathToFileURL2(artifact.path).href
|
|
87051
|
+
});
|
|
87052
|
+
}
|
|
87053
|
+
return new ResolvedPromptArtifacts(images, resources);
|
|
87054
|
+
}
|
|
87055
|
+
|
|
86978
87056
|
// src/engine/session/prompt/prompt-lifecycle.ts
|
|
86979
87057
|
function promptContent(command) {
|
|
86980
87058
|
const content = [];
|
|
@@ -86991,7 +87069,7 @@ function promptContent(command) {
|
|
|
86991
87069
|
uri: attachment.uri
|
|
86992
87070
|
} : {
|
|
86993
87071
|
byteLength: attachment.byteLength,
|
|
86994
|
-
encoding: "text",
|
|
87072
|
+
encoding: isTextPromptResourceMediaType(attachment.mimeType) ? "text" : "binary",
|
|
86995
87073
|
mimeType: attachment.mimeType,
|
|
86996
87074
|
resourceKey: attachment.contentKey,
|
|
86997
87075
|
type: "external_resource",
|
|
@@ -87156,7 +87234,7 @@ async function settleAbandonedTurn(projection, operations, cancellation) {
|
|
|
87156
87234
|
}
|
|
87157
87235
|
|
|
87158
87236
|
// src/engine/session/turn/execution-receipts.ts
|
|
87159
|
-
import { createHash as
|
|
87237
|
+
import { createHash as createHash7, randomUUID as randomUUID15 } from "node:crypto";
|
|
87160
87238
|
var MAX_TERMINAL_RECEIPTS = 1024;
|
|
87161
87239
|
var ExecutionReceipts = class {
|
|
87162
87240
|
#executions = /* @__PURE__ */ new Map();
|
|
@@ -87176,11 +87254,11 @@ var ExecutionReceipts = class {
|
|
|
87176
87254
|
}
|
|
87177
87255
|
}
|
|
87178
87256
|
}
|
|
87179
|
-
#save = (commandId, receipt) => {
|
|
87257
|
+
#save = (commandId, receipt, liveOutcome = receipt.outcome) => {
|
|
87180
87258
|
const evicted = this.#closing ? [] : this.#table.save({ ...receipt, commandId, updatedAt: (/* @__PURE__ */ new Date()).toISOString() }, MAX_TERMINAL_RECEIPTS);
|
|
87181
87259
|
const previous = this.#executions.get(commandId);
|
|
87182
87260
|
const wasActive = previous?.outcome === null;
|
|
87183
|
-
this.#executions.set(commandId, receipt);
|
|
87261
|
+
this.#executions.set(commandId, { ...receipt, outcome: liveOutcome });
|
|
87184
87262
|
for (const evictedCommandId of evicted) {
|
|
87185
87263
|
this.#executions.delete(evictedCommandId);
|
|
87186
87264
|
this.#recoveredCommands.delete(evictedCommandId);
|
|
@@ -87268,7 +87346,7 @@ var ExecutionReceipts = class {
|
|
|
87268
87346
|
type: "lifecycle-metadata",
|
|
87269
87347
|
payload: { kind: "prompt.completed", commandId, stopReason: "cancelled" }
|
|
87270
87348
|
};
|
|
87271
|
-
const commandHash =
|
|
87349
|
+
const commandHash = createHash7("sha256").update(
|
|
87272
87350
|
encodeSessionCancelBeforeStartCommand({
|
|
87273
87351
|
commandId,
|
|
87274
87352
|
kind: "session.cancel-before-start",
|
|
@@ -87297,10 +87375,12 @@ var ExecutionReceipts = class {
|
|
|
87297
87375
|
return;
|
|
87298
87376
|
}
|
|
87299
87377
|
const sanitized = payload.kind === "prompt.completed" ? payload : { ...payload, message: "The local Agent could not complete the request" };
|
|
87300
|
-
|
|
87301
|
-
|
|
87302
|
-
|
|
87303
|
-
|
|
87378
|
+
const outcome = { type: "lifecycle-metadata", payload, recordedAt: event.recordedAt };
|
|
87379
|
+
this.#save(
|
|
87380
|
+
payload.commandId,
|
|
87381
|
+
{ ...receipt, outcome: JSON.stringify({ ...outcome, payload: sanitized }) },
|
|
87382
|
+
JSON.stringify(outcome)
|
|
87383
|
+
);
|
|
87304
87384
|
};
|
|
87305
87385
|
recover = () => {
|
|
87306
87386
|
const recovered = [];
|
|
@@ -87332,7 +87412,7 @@ var ExecutionReceipts = class {
|
|
|
87332
87412
|
return recovered;
|
|
87333
87413
|
};
|
|
87334
87414
|
claimExecution = (commandId, sessionId, commandJson) => {
|
|
87335
|
-
const commandHash =
|
|
87415
|
+
const commandHash = createHash7("sha256").update(commandJson).digest("hex");
|
|
87336
87416
|
let existing = this.#executions.get(commandId);
|
|
87337
87417
|
const previous = this.outcome(commandId);
|
|
87338
87418
|
if (existing?.sessionId === sessionId && !existing.started && previous?.type === "lifecycle-metadata" && previous.payload.kind === "prompt.failed-before-start" && previous.payload.code === "runtime_restarted") {
|
|
@@ -87881,7 +87961,8 @@ var WorkspaceDirectoryService = class {
|
|
|
87881
87961
|
};
|
|
87882
87962
|
describe = async (bindingId, id, signal) => {
|
|
87883
87963
|
const path7 = await this.resolve(bindingId, id, signal);
|
|
87884
|
-
|
|
87964
|
+
const parent = dirname10(path7);
|
|
87965
|
+
return { path: path7, label: this.label(path7), parentDirectoryId: parent === path7 ? "" : encodePath(parent) };
|
|
87885
87966
|
};
|
|
87886
87967
|
list = async (bindingId, id, signal) => {
|
|
87887
87968
|
const target = await this.resolve(bindingId, id, signal);
|
|
@@ -88052,8 +88133,8 @@ function buildSessionLayer(options) {
|
|
|
88052
88133
|
}
|
|
88053
88134
|
|
|
88054
88135
|
// src/engine/session/content/external-content-store.ts
|
|
88055
|
-
import { createHash as
|
|
88056
|
-
import { join as join26 } from "node:path";
|
|
88136
|
+
import { createHash as createHash8 } from "node:crypto";
|
|
88137
|
+
import { extname as extname3, join as join26 } from "node:path";
|
|
88057
88138
|
|
|
88058
88139
|
// src/engine/storage/files/scratch-directory.ts
|
|
88059
88140
|
import { randomUUID as randomUUID17 } from "node:crypto";
|
|
@@ -88140,6 +88221,10 @@ var metadataSchema = external_exports.strictObject({
|
|
|
88140
88221
|
mediaType: external_exports.string().min(1).max(2048).regex(/^[\u0020-\u007e]+$/u),
|
|
88141
88222
|
name: external_exports.string().min(1).max(500)
|
|
88142
88223
|
});
|
|
88224
|
+
function contentFileName(key, name2) {
|
|
88225
|
+
const extension = extname3(name2).toLowerCase();
|
|
88226
|
+
return /^\.[a-z0-9]{1,16}$/u.test(extension) ? `${key}${extension}` : key;
|
|
88227
|
+
}
|
|
88143
88228
|
var LocalExternalContentStore = class {
|
|
88144
88229
|
#scratch;
|
|
88145
88230
|
#entries = /* @__PURE__ */ new Map();
|
|
@@ -88182,7 +88267,7 @@ var LocalExternalContentStore = class {
|
|
|
88182
88267
|
const active = AbortSignal.any([signal, this.#lifetime.signal]);
|
|
88183
88268
|
active.throwIfAborted();
|
|
88184
88269
|
const metadata = metadataSchema.parse({ kind, mediaType, name: name2 });
|
|
88185
|
-
const key =
|
|
88270
|
+
const key = createHash8("sha256").update(bytes).digest("hex");
|
|
88186
88271
|
const request = `mobius-content:${kind}:${key}`;
|
|
88187
88272
|
const existing = this.#entries.get(request);
|
|
88188
88273
|
if (existing !== void 0 && existing.expiresAt > Date.now()) {
|
|
@@ -88195,7 +88280,7 @@ var LocalExternalContentStore = class {
|
|
|
88195
88280
|
}
|
|
88196
88281
|
await this.#expire();
|
|
88197
88282
|
active.throwIfAborted();
|
|
88198
|
-
const path7 = await this.#scratch.write(kind, key, bytes, active);
|
|
88283
|
+
const path7 = await this.#scratch.write(kind, contentFileName(key, metadata.name), bytes, active);
|
|
88199
88284
|
active.throwIfAborted();
|
|
88200
88285
|
const retained = this.#entries.get(request);
|
|
88201
88286
|
this.#entries.set(request, {
|
|
@@ -88231,7 +88316,11 @@ var LocalExternalContentStore = class {
|
|
|
88231
88316
|
read = (sessionId, request, signal) => this.#track(async () => {
|
|
88232
88317
|
const active = AbortSignal.any([signal, this.#lifetime.signal]);
|
|
88233
88318
|
const resolved = await this.#resolve(sessionId, request, active);
|
|
88234
|
-
|
|
88319
|
+
if (resolved === null) {
|
|
88320
|
+
return null;
|
|
88321
|
+
}
|
|
88322
|
+
const bytes = await this.#scratch.read(resolved.path, active);
|
|
88323
|
+
return bytes === null ? null : { ...resolved, bytes };
|
|
88235
88324
|
});
|
|
88236
88325
|
[Symbol.asyncDispose] = async () => {
|
|
88237
88326
|
clearInterval(this.#expirationTimer);
|
|
@@ -89050,7 +89139,7 @@ var SessionError = class extends OperationError {
|
|
|
89050
89139
|
};
|
|
89051
89140
|
|
|
89052
89141
|
// src/engine/session/settings/discover-agent-settings.ts
|
|
89053
|
-
import { createHash as
|
|
89142
|
+
import { createHash as createHash9 } from "node:crypto";
|
|
89054
89143
|
|
|
89055
89144
|
// src/engine/agent/settings/agent-settings-base.ts
|
|
89056
89145
|
var AgentSettingsLaunchSelectionResult = class {
|
|
@@ -89368,7 +89457,7 @@ function settingsRevision(agent, reportedAgentVersion, settings, modelEffort) {
|
|
|
89368
89457
|
unsupportedModelIds: modelEffort.unsupportedModelIds,
|
|
89369
89458
|
valuesByModel: {}
|
|
89370
89459
|
};
|
|
89371
|
-
return
|
|
89460
|
+
return createHash9("sha256").update(
|
|
89372
89461
|
JSON.stringify({
|
|
89373
89462
|
adapterVersion: agent.adapterVersion,
|
|
89374
89463
|
agentId: agent.id,
|
|
@@ -89524,7 +89613,7 @@ function createAgentSettingsCommands(context) {
|
|
|
89524
89613
|
}
|
|
89525
89614
|
|
|
89526
89615
|
// src/engine/runtime/command/registry/content-write/index.ts
|
|
89527
|
-
import { createHash as
|
|
89616
|
+
import { createHash as createHash10 } from "node:crypto";
|
|
89528
89617
|
function createContentWriteCommands(context) {
|
|
89529
89618
|
const pending = /* @__PURE__ */ new Map();
|
|
89530
89619
|
const operations = /* @__PURE__ */ new Set();
|
|
@@ -89554,7 +89643,7 @@ function createContentWriteCommands(context) {
|
|
|
89554
89643
|
pending.set(message.requestId, {
|
|
89555
89644
|
bytes: new Uint8Array(message.byteLength),
|
|
89556
89645
|
command: message,
|
|
89557
|
-
hash:
|
|
89646
|
+
hash: createHash10("sha256"),
|
|
89558
89647
|
receivedBytes: 0,
|
|
89559
89648
|
sequence: 0
|
|
89560
89649
|
});
|
|
@@ -89648,7 +89737,7 @@ function createContentWriteCommands(context) {
|
|
|
89648
89737
|
import { WebSocket as WebSocket5 } from "undici";
|
|
89649
89738
|
|
|
89650
89739
|
// src/engine/session/content/session-files.ts
|
|
89651
|
-
import { basename as basename8, extname as
|
|
89740
|
+
import { basename as basename8, extname as extname4, isAbsolute as isAbsolute16, join as join30, normalize as normalize3, resolve as resolve16 } from "node:path";
|
|
89652
89741
|
import { fileURLToPath as fileURLToPath2 } from "node:url";
|
|
89653
89742
|
function requestedPath(value) {
|
|
89654
89743
|
if (value.includes("\0")) {
|
|
@@ -89704,7 +89793,7 @@ async function streamLocalFile(command, send2, sendChunk, signal, workingDirecto
|
|
|
89704
89793
|
send2({
|
|
89705
89794
|
byteLength: before.size,
|
|
89706
89795
|
kind: FILE_BEGIN_KIND,
|
|
89707
|
-
mediaType: external?.mediaType ?? raster?.mimeType ?? (
|
|
89796
|
+
mediaType: external?.mediaType ?? raster?.mimeType ?? (extname4(target).toLowerCase() === ".svg" ? "image/svg+xml" : "application/octet-stream"),
|
|
89708
89797
|
modifiedAt: before.modifiedAt.toISOString(),
|
|
89709
89798
|
name: external?.name ?? (basename8(target) || "file"),
|
|
89710
89799
|
requestId: command.requestId,
|
|
@@ -90418,67 +90507,6 @@ function warnIgnoredSetting(event, commandId, sessionId, agentId, selection, cat
|
|
|
90418
90507
|
`);
|
|
90419
90508
|
}
|
|
90420
90509
|
|
|
90421
|
-
// src/engine/session/prompt/prompt-artifacts.ts
|
|
90422
|
-
import { createHash as createHash10 } from "node:crypto";
|
|
90423
|
-
var MAX_AGENT_RESOURCE_BYTE_LENGTH = 1e6;
|
|
90424
|
-
var PromptArtifactError = class extends OperationError {
|
|
90425
|
-
constructor(code, message, options = {}) {
|
|
90426
|
-
super(code, message, options);
|
|
90427
|
-
this.name = "PromptArtifactError";
|
|
90428
|
-
}
|
|
90429
|
-
};
|
|
90430
|
-
var ResolvedPromptArtifacts = class {
|
|
90431
|
-
images;
|
|
90432
|
-
resources;
|
|
90433
|
-
constructor(images, resources) {
|
|
90434
|
-
this.images = images;
|
|
90435
|
-
this.resources = resources;
|
|
90436
|
-
}
|
|
90437
|
-
};
|
|
90438
|
-
function isTextMediaType(mediaType) {
|
|
90439
|
-
return mediaType.startsWith("text/") || mediaType === "application/json" || mediaType.endsWith("+json") || mediaType === "application/xml" || mediaType.endsWith("+xml");
|
|
90440
|
-
}
|
|
90441
|
-
async function resolvePromptArtifacts(read, attachments, signal) {
|
|
90442
|
-
const images = [];
|
|
90443
|
-
const resources = [];
|
|
90444
|
-
for (const attachment of attachments) {
|
|
90445
|
-
signal.throwIfAborted();
|
|
90446
|
-
const bytes = await read(attachment, signal);
|
|
90447
|
-
if (bytes.byteLength !== attachment.byteLength || createHash10("sha256").update(bytes).digest("hex") !== attachment.contentKey) {
|
|
90448
|
-
throw new PromptArtifactError(
|
|
90449
|
-
"artifact_integrity_failed",
|
|
90450
|
-
"The prompt attachment failed integrity validation"
|
|
90451
|
-
);
|
|
90452
|
-
}
|
|
90453
|
-
if (attachment.kind === "image") {
|
|
90454
|
-
if (bytes.byteLength > PROMPT_IMAGE_MAX_BYTES || images.length >= 8) {
|
|
90455
|
-
continue;
|
|
90456
|
-
}
|
|
90457
|
-
images.push({
|
|
90458
|
-
data: Buffer.from(bytes).toString("base64"),
|
|
90459
|
-
mimeType: attachment.mimeType,
|
|
90460
|
-
name: attachment.name
|
|
90461
|
-
});
|
|
90462
|
-
continue;
|
|
90463
|
-
}
|
|
90464
|
-
if (!isTextMediaType(attachment.mimeType)) {
|
|
90465
|
-
continue;
|
|
90466
|
-
}
|
|
90467
|
-
if (bytes.byteLength > MAX_AGENT_RESOURCE_BYTE_LENGTH || resources.length >= 16) {
|
|
90468
|
-
continue;
|
|
90469
|
-
}
|
|
90470
|
-
let text2;
|
|
90471
|
-
try {
|
|
90472
|
-
text2 = new TextDecoder("utf-8", { fatal: true }).decode(bytes);
|
|
90473
|
-
} catch {
|
|
90474
|
-
signal.throwIfAborted();
|
|
90475
|
-
continue;
|
|
90476
|
-
}
|
|
90477
|
-
resources.push({ mimeType: attachment.mimeType, text: text2, type: "embedded", uri: attachment.uri });
|
|
90478
|
-
}
|
|
90479
|
-
return new ResolvedPromptArtifacts(images, resources);
|
|
90480
|
-
}
|
|
90481
|
-
|
|
90482
90510
|
// src/engine/session/prompt/execute-prompt.ts
|
|
90483
90511
|
async function executePrompt({
|
|
90484
90512
|
operations,
|
|
@@ -90690,16 +90718,16 @@ var sessionPromptCommand = {
|
|
|
90690
90718
|
eventProjection: context.eventProjection,
|
|
90691
90719
|
command: message,
|
|
90692
90720
|
resolveAgent: context.resolveAgent,
|
|
90693
|
-
readArtifact: async (
|
|
90694
|
-
const
|
|
90721
|
+
readArtifact: async (attachment, signal) => {
|
|
90722
|
+
const artifact = await context.externalContent.read(
|
|
90695
90723
|
message.sessionId,
|
|
90696
|
-
`mobius-content:${
|
|
90724
|
+
`mobius-content:${attachment.kind}:${attachment.contentKey}`,
|
|
90697
90725
|
signal
|
|
90698
90726
|
);
|
|
90699
|
-
if (
|
|
90727
|
+
if (artifact === null) {
|
|
90700
90728
|
throw new Error("The prompt attachment is unavailable");
|
|
90701
90729
|
}
|
|
90702
|
-
return bytes;
|
|
90730
|
+
return { bytes: artifact.bytes, path: artifact.path };
|
|
90703
90731
|
},
|
|
90704
90732
|
reportFailure: context.diagnostics.daemonDiagnostic,
|
|
90705
90733
|
directories: context.directories,
|
|
@@ -90727,7 +90755,7 @@ var sessionPromptCommand = {
|
|
|
90727
90755
|
// package.json
|
|
90728
90756
|
var package_default = {
|
|
90729
90757
|
name: "@moxt-ai/mobius",
|
|
90730
|
-
version: "0.0.
|
|
90758
|
+
version: "0.0.349",
|
|
90731
90759
|
description: "Mobius CLI for pairing and running local AI agent services.",
|
|
90732
90760
|
type: "module",
|
|
90733
90761
|
bin: {
|
|
@@ -90769,13 +90797,13 @@ var package_default = {
|
|
|
90769
90797
|
prepack: "pnpm build",
|
|
90770
90798
|
start: "node dist/cli.js",
|
|
90771
90799
|
typecheck: "tsc --project tsconfig.json && tsc --project tests/tsconfig.json",
|
|
90772
|
-
"pretest:controlled": "
|
|
90773
|
-
"test:controlled": "vitest run tests/sessions tests/runtime
|
|
90800
|
+
"pretest:controlled": "pnpm build",
|
|
90801
|
+
"test:controlled": "vitest run tests/sessions tests/runtime",
|
|
90774
90802
|
"pretest:manual": "pnpm pretest:controlled",
|
|
90775
90803
|
"test:manual": "vitest run tests/manual",
|
|
90776
|
-
"pretest:agents": "
|
|
90804
|
+
"pretest:agents": "pnpm build",
|
|
90777
90805
|
"test:agents": "vitest run tests/agents --maxWorkers=2",
|
|
90778
|
-
"pretest:npm-compatibility": "
|
|
90806
|
+
"pretest:npm-compatibility": "pnpm build",
|
|
90779
90807
|
"test:npm-compatibility": "vitest run tests/runtime/daemon-upgrade.integration.test.ts",
|
|
90780
90808
|
"pretest:pressure": "tsc --project src/engine/acp/harness/claude/upstream/tsconfig.json && tsc --project src/engine/acp/harness/pi/upstream/tsconfig.json",
|
|
90781
90809
|
"test:pressure": "node tests/pressure/concurrent-sessions.mjs"
|
|
@@ -90899,7 +90927,12 @@ async function prepareSession(command, recovery, closed, config2, resolveAgent,
|
|
|
90899
90927
|
}
|
|
90900
90928
|
async function executeWorkspaceList(socket, command, directories, signal) {
|
|
90901
90929
|
try {
|
|
90902
|
-
const listing = await directories.
|
|
90930
|
+
const listing = command.view === "metadata" ? await directories.describe(command.bindingId, command.directoryId, signal).then((directory) => ({
|
|
90931
|
+
directoryId: command.directoryId,
|
|
90932
|
+
directoryLabel: directory.label,
|
|
90933
|
+
entries: [],
|
|
90934
|
+
parentDirectoryId: directory.parentDirectoryId
|
|
90935
|
+
})) : await directories.list(command.bindingId, command.directoryId, signal);
|
|
90903
90936
|
send(socket, {
|
|
90904
90937
|
bindingId: command.bindingId,
|
|
90905
90938
|
directoryId: listing.directoryId,
|
|
@@ -91832,13 +91865,23 @@ var RuntimeSessionEventPublisher = class {
|
|
|
91832
91865
|
return;
|
|
91833
91866
|
}
|
|
91834
91867
|
if (batch === void 0 || newBatch) {
|
|
91835
|
-
batch = { events: [], bytes: EMPTY_ENVELOPE_BYTES };
|
|
91868
|
+
batch = { events: [], firstAnswers: [], bytes: EMPTY_ENVELOPE_BYTES };
|
|
91836
91869
|
this.#pending.push(batch);
|
|
91837
91870
|
}
|
|
91838
91871
|
batch.events.push(event);
|
|
91839
91872
|
batch.bytes += bytes;
|
|
91840
91873
|
this.#pendingBytes += additionalBytes;
|
|
91874
|
+
const awaiting = this.#awaitingFirstAnswer.get(event.sessionId);
|
|
91841
91875
|
const firstAnswer = this.#consumeFirstAnswer(event);
|
|
91876
|
+
if (firstAnswer && awaiting !== void 0) {
|
|
91877
|
+
batch.firstAnswers.push({
|
|
91878
|
+
sessionId: event.sessionId,
|
|
91879
|
+
commandId: awaiting.commandId,
|
|
91880
|
+
eventId: event.eventId,
|
|
91881
|
+
observedAt: Date.now(),
|
|
91882
|
+
publishedAt: performance.now()
|
|
91883
|
+
});
|
|
91884
|
+
}
|
|
91842
91885
|
const connection = this.#connection;
|
|
91843
91886
|
if (connection.kind !== "connected" || connection.socket.readyState !== WebSocket9.OPEN) {
|
|
91844
91887
|
return;
|
|
@@ -91893,6 +91936,19 @@ var RuntimeSessionEventPublisher = class {
|
|
|
91893
91936
|
this.#pendingBytes -= batch.bytes;
|
|
91894
91937
|
try {
|
|
91895
91938
|
socket.send(encoded);
|
|
91939
|
+
for (const answer of batch.firstAnswers) {
|
|
91940
|
+
console.info(
|
|
91941
|
+
JSON.stringify({
|
|
91942
|
+
event: "runtime-first-answer-handoff-timing",
|
|
91943
|
+
sessionId: answer.sessionId,
|
|
91944
|
+
commandId: answer.commandId,
|
|
91945
|
+
eventId: answer.eventId,
|
|
91946
|
+
observedAt: answer.observedAt,
|
|
91947
|
+
handedOffAt: Date.now(),
|
|
91948
|
+
publishToHandoffMs: performance.now() - answer.publishedAt
|
|
91949
|
+
})
|
|
91950
|
+
);
|
|
91951
|
+
}
|
|
91896
91952
|
} catch {
|
|
91897
91953
|
console.warn("Live Session output could not be sent", { code: "live_event_send_failed" });
|
|
91898
91954
|
break;
|