@moxt-ai/mobius 0.0.400 → 0.0.403

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.
Files changed (63) hide show
  1. package/dist/{chunk-VAIQ6KYK.js → chunk-5S4YJP7Y.js} +65 -14
  2. package/dist/{chunk-VAIQ6KYK.js.map → chunk-5S4YJP7Y.js.map} +2 -2
  3. package/dist/{chunk-QYYMBZ56.js → chunk-KMPTV5P7.js} +2 -2
  4. package/dist/{chunk-QYYMBZ56.js.map → chunk-KMPTV5P7.js.map} +1 -1
  5. package/dist/cli/handler/agents/index.d.ts.map +1 -1
  6. package/dist/cli/handler/agents/index.js +2 -1
  7. package/dist/cli/handler/agents/index.js.map +1 -1
  8. package/dist/cli/handler/pair/remove.d.ts.map +1 -1
  9. package/dist/cli/handler/pair/remove.js +6 -0
  10. package/dist/cli/handler/pair/remove.js.map +1 -1
  11. package/dist/{cli-VJHRRDWH.js → cli-FQ3VTTOC.js} +137 -115
  12. package/dist/cli-FQ3VTTOC.js.map +7 -0
  13. package/dist/cli.js +2 -2
  14. package/dist/daemon/config.js +2 -2
  15. package/dist/daemon/lifecycle/daemon.d.ts.map +1 -1
  16. package/dist/daemon/lifecycle/daemon.js +0 -4
  17. package/dist/daemon/lifecycle/daemon.js.map +1 -1
  18. package/dist/daemon/pairing/pair-local-machine.d.ts +0 -1
  19. package/dist/daemon/pairing/pair-local-machine.d.ts.map +1 -1
  20. package/dist/daemon/pairing/pair-local-machine.js +5 -12
  21. package/dist/daemon/pairing/pair-local-machine.js.map +1 -1
  22. package/dist/engine/acp/harness/codex/app-server-protocol.d.ts +3 -0
  23. package/dist/engine/acp/harness/codex/app-server-protocol.d.ts.map +1 -1
  24. package/dist/engine/acp/harness/codex/app-server-protocol.js +3 -0
  25. package/dist/engine/acp/harness/codex/app-server-protocol.js.map +1 -1
  26. package/dist/engine/acp/harness/codex/owned-agent.d.ts.map +1 -1
  27. package/dist/engine/acp/harness/codex/owned-agent.js +34 -8
  28. package/dist/engine/acp/harness/codex/owned-agent.js.map +1 -1
  29. package/dist/engine/runtime/command/registry/prompt.d.ts.map +1 -1
  30. package/dist/engine/runtime/command/registry/prompt.js +15 -5
  31. package/dist/engine/runtime/command/registry/prompt.js.map +1 -1
  32. package/dist/engine/session/prompt/prompt-lifecycle.d.ts +1 -1
  33. package/dist/engine/session/prompt/prompt-lifecycle.d.ts.map +1 -1
  34. package/dist/engine/session/prompt/prompt-lifecycle.js +2 -2
  35. package/dist/engine/session/prompt/prompt-lifecycle.js.map +1 -1
  36. package/dist/engine/session/turn/active-turn.d.ts +2 -0
  37. package/dist/engine/session/turn/active-turn.d.ts.map +1 -1
  38. package/dist/engine/session/turn/active-turn.js +2 -0
  39. package/dist/engine/session/turn/active-turn.js.map +1 -1
  40. package/dist/engine.js +2 -2
  41. package/dist/storage/daemon/current-data.d.ts +9 -0
  42. package/dist/storage/daemon/current-data.d.ts.map +1 -0
  43. package/dist/storage/daemon/current-data.js +94 -0
  44. package/dist/storage/daemon/current-data.js.map +1 -0
  45. package/dist/storage/daemon/pairing-copies.d.ts +4 -0
  46. package/dist/storage/daemon/pairing-copies.d.ts.map +1 -0
  47. package/dist/storage/daemon/pairing-copies.js +66 -0
  48. package/dist/storage/daemon/pairing-copies.js.map +1 -0
  49. package/dist/storage/state-directory.d.ts +2 -2
  50. package/dist/storage/state-root-layout.d.ts +2 -2
  51. package/dist/storage/state-root-layout.d.ts.map +1 -1
  52. package/dist/storage/state-root-layout.js +2 -2
  53. package/dist/storage/state-root-layout.js.map +1 -1
  54. package/package.json +2 -2
  55. package/dist/cli-VJHRRDWH.js.map +0 -7
  56. package/dist/daemon/upgrades/data.d.ts +0 -3
  57. package/dist/daemon/upgrades/data.d.ts.map +0 -1
  58. package/dist/daemon/upgrades/data.js +0 -22
  59. package/dist/daemon/upgrades/data.js.map +0 -1
  60. package/dist/storage/daemon/version-data.d.ts +0 -18
  61. package/dist/storage/daemon/version-data.d.ts.map +0 -1
  62. package/dist/storage/daemon/version-data.js +0 -131
  63. package/dist/storage/daemon/version-data.js.map +0 -1
@@ -3,7 +3,7 @@ import {
3
3
  __export,
4
4
  __using,
5
5
  package_default
6
- } from "./chunk-QYYMBZ56.js";
6
+ } from "./chunk-KMPTV5P7.js";
7
7
 
8
8
  // src/engine/runtime/relay/runtime-revocation.ts
9
9
  var runtimeRevocationCloseCode = 1008;
@@ -20726,7 +20726,9 @@ var promptExecutionContextSchema = external_exports.object({
20726
20726
  additionalDirectoryIds: external_exports.array(DIRECTORY_IDENTIFIER).max(16).readonly()
20727
20727
  }).readonly();
20728
20728
  var lifecycleMetadataSchema = external_exports.discriminatedUnion("kind", [
20729
- external_exports.object({ kind: external_exports.literal("session.queue.changed") }).readonly(),
20729
+ // `changedByCommandId` names the command whose admission to or departure from the queue changed it. Runtimes
20730
+ // before it existed omit it, so a reader must treat an unnamed change as possibly any command's.
20731
+ external_exports.object({ changedByCommandId: identifierStringSchema.optional(), kind: external_exports.literal("session.queue.changed") }).readonly(),
20730
20732
  external_exports.object({ event: sessionPermissionRequestedEventSchema, kind: external_exports.literal("session.permission.requested") }).readonly(),
20731
20733
  external_exports.object({ event: sessionPermissionResolvedEventSchema, kind: external_exports.literal("session.permission.resolved") }).readonly(),
20732
20734
  external_exports.object({ event: sessionElicitationRequestedEventSchema, kind: external_exports.literal("session.elicitation.requested") }).readonly(),
@@ -21087,6 +21089,7 @@ var SESSION_STATUS_CHANGED_KIND = "session.status.changed";
21087
21089
  var SESSION_COMMANDS_UPDATED_KIND = "session.commands.updated";
21088
21090
  var SESSION_INFO_UPDATED_KIND = "session.info.updated";
21089
21091
  var SESSION_OPERATION_FAILED_KIND = "session.operation.failed";
21092
+ var SESSION_PROMPT_ACCEPTED_KIND = "session.prompt.accepted";
21090
21093
  var sessionStatusChangedEventSchema = external_exports.object({
21091
21094
  kind: external_exports.literal(SESSION_STATUS_CHANGED_KIND),
21092
21095
  sessionId: identifierStringSchema,
@@ -21214,6 +21217,12 @@ var sessionOperationFailedEventSchema = external_exports.object({
21214
21217
  runtimeTimings: runtimeTimingsSchema.optional(),
21215
21218
  sessionId: external_exports.string().max(128)
21216
21219
  }).readonly();
21220
+ var sessionPromptAcceptedEventSchema = external_exports.object({
21221
+ kind: external_exports.literal(SESSION_PROMPT_ACCEPTED_KIND),
21222
+ requestId: identifierStringSchema,
21223
+ sessionId: identifierStringSchema,
21224
+ state: external_exports.enum(["queued", "running", "settled"])
21225
+ }).readonly();
21217
21226
  var decodeSessionListCommand = (encoded) => decodeZodMessage(encoded, sessionListCommandSchema);
21218
21227
  var encodeSessionListCommand = (message) => encodeZodMessage(message, sessionListCommandSchema);
21219
21228
  var decodeSessionsListedEvent = (encoded) => decodeZodMessage(encoded, sessionsListedEventSchema);
@@ -21242,6 +21251,8 @@ var decodeSessionInfoUpdatedEvent = (encoded) => decodeZodMessage(encoded, sessi
21242
21251
  var encodeSessionInfoUpdatedEvent = (message) => encodeZodMessage(message, sessionInfoUpdatedEventSchema);
21243
21252
  var decodeSessionOperationFailedEvent = (encoded) => decodeZodMessage(encoded, sessionOperationFailedEventSchema);
21244
21253
  var encodeSessionOperationFailedEvent = (message) => encodeZodMessage(message, sessionOperationFailedEventSchema);
21254
+ var decodeSessionPromptAcceptedEvent = (encoded) => decodeZodMessage(encoded, sessionPromptAcceptedEventSchema);
21255
+ var encodeSessionPromptAcceptedEvent = (message) => encodeZodMessage(message, sessionPromptAcceptedEventSchema);
21245
21256
 
21246
21257
  // ../mobius-sdk/src/protocol/session/prompt/commands.ts
21247
21258
  var SESSION_PROMPT_KIND = "session.prompt";
@@ -21983,6 +21994,11 @@ var daemonToServiceSignatures = {
21983
21994
  encodeSessionOperationFailedEvent,
21984
21995
  decodeSessionOperationFailedEvent
21985
21996
  ),
21997
+ [SESSION_PROMPT_ACCEPTED_KIND]: defineMessageSignature(
21998
+ SESSION_PROMPT_ACCEPTED_KIND,
21999
+ encodeSessionPromptAcceptedEvent,
22000
+ decodeSessionPromptAcceptedEvent
22001
+ ),
21986
22002
  [SESSION_HISTORY_PAGE_LOADED_KIND]: defineMessageSignature(
21987
22003
  SESSION_HISTORY_PAGE_LOADED_KIND,
21988
22004
  encodeSessionHistoryPageLoaded,
@@ -68417,6 +68433,7 @@ var turnSchema = external_exports.object({
68417
68433
  status: turnStatusSchema
68418
68434
  });
68419
68435
  var turnSteerResponseSchema = external_exports.object({ turnId: boundedText(256) });
68436
+ var threadNotificationSchema = external_exports.object({ threadId: boundedText(256).min(1) });
68420
68437
  var turnNotificationSchema = external_exports.object({
68421
68438
  thread: external_exports.object({ id: boundedText(256) }).nullish(),
68422
68439
  threadId: boundedText(256),
@@ -69600,6 +69617,19 @@ var APPROVAL_REASON_CHARACTER_LIMIT = 500;
69600
69617
  var APPROVAL_TIMEOUT_MILLISECONDS = 36e5;
69601
69618
  var COMPACT_TIMEOUT_MILLISECONDS = 36e5;
69602
69619
  var COMPACT_ITEM_WAIT_MILLISECONDS = 6e5;
69620
+ var THREAD_NOTIFICATIONS = /* @__PURE__ */ new Set([
69621
+ "item/agentMessage/delta",
69622
+ "item/completed",
69623
+ "item/reasoning/summaryTextDelta",
69624
+ "item/reasoning/textDelta",
69625
+ "item/started",
69626
+ "thread/compacted",
69627
+ "thread/name/updated",
69628
+ "thread/settings/updated",
69629
+ "turn/completed",
69630
+ "turn/plan/updated",
69631
+ "turn/started"
69632
+ ]);
69603
69633
  var APPROVAL_OPTIONS = Object.freeze([
69604
69634
  { kind: "allow_once", name: "Allow once", optionId: "accept" },
69605
69635
  { kind: "allow_always", name: "Allow for this session", optionId: "acceptForSession" },
@@ -69871,9 +69901,16 @@ var CodexOwnedAcpAgent = class {
69871
69901
  await pending;
69872
69902
  };
69873
69903
  onNotification = async (method, params) => {
69904
+ if (!THREAD_NOTIFICATIONS.has(method)) {
69905
+ return;
69906
+ }
69907
+ const thread = threadNotificationSchema.safeParse(params);
69908
+ if (!thread.success || thread.data.threadId !== this.#context.threadId()) {
69909
+ return;
69910
+ }
69874
69911
  if (method === "turn/started") {
69875
69912
  const decoded = turnNotificationSchema.safeParse(params);
69876
- if (decoded.success && decoded.data.threadId === this.#context.threadId() && this.#turn !== null && (this.#turn.turn.id === "" || this.#turn.turn.id === decoded.data.turn.id)) {
69913
+ if (decoded.success && this.#turn !== null && (this.#turn.turn.id === "" || this.#turn.turn.id === decoded.data.turn.id)) {
69877
69914
  this.#turn.turn.id = decoded.data.turn.id;
69878
69915
  this.#nativeTurnId = decoded.data.turn.id;
69879
69916
  }
@@ -69881,7 +69918,7 @@ var CodexOwnedAcpAgent = class {
69881
69918
  }
69882
69919
  if (method === "turn/completed") {
69883
69920
  const decoded = turnNotificationSchema.safeParse(params);
69884
- if (decoded.success && decoded.data.threadId === this.#context.threadId()) {
69921
+ if (decoded.success) {
69885
69922
  await this.#enqueue(async () => {
69886
69923
  for (const [id, mode] of this.#runningCommands) {
69887
69924
  if (mode === "background") {
@@ -69914,7 +69951,7 @@ var CodexOwnedAcpAgent = class {
69914
69951
  }
69915
69952
  if (method === "thread/settings/updated") {
69916
69953
  const decoded = threadSettingsUpdatedSchema.safeParse(params);
69917
- if (decoded.success && decoded.data.threadId === this.#context.threadId()) {
69954
+ if (decoded.success) {
69918
69955
  const mode = decoded.data.threadSettings.collaborationMode?.mode;
69919
69956
  if (this.#settings.observeCollaborationMode(mode)) {
69920
69957
  await this.#enqueue(async () => {
@@ -69926,7 +69963,7 @@ var CodexOwnedAcpAgent = class {
69926
69963
  }
69927
69964
  if (method === "turn/plan/updated") {
69928
69965
  const plan = params.plan;
69929
- if (Array.isArray(plan) && params.threadId === this.#context.threadId()) {
69966
+ if (Array.isArray(plan)) {
69930
69967
  const entries = plan.map((step) => ({
69931
69968
  content: typeof step === "object" && step !== null && "step" in step ? String(Reflect.get(step, "step")) : "",
69932
69969
  priority: "medium",
@@ -69940,7 +69977,7 @@ var CodexOwnedAcpAgent = class {
69940
69977
  }
69941
69978
  if (method === "item/reasoning/summaryTextDelta" || method === "item/reasoning/textDelta") {
69942
69979
  const decoded = reasoningTextDeltaParamsSchema.safeParse(params);
69943
- if (decoded.success && decoded.data.threadId === this.#context.threadId() && this.#turn !== null && decoded.data.turnId === this.#turn.turn.id && decoded.data.delta.length > 0) {
69980
+ if (decoded.success && this.#turn !== null && decoded.data.turnId === this.#turn.turn.id && decoded.data.delta.length > 0) {
69944
69981
  const source = method === "item/reasoning/textDelta" ? "content" : "summary";
69945
69982
  const previous = this.#streamedReasoningSources.get(decoded.data.itemId);
69946
69983
  this.#streamedReasoningSources.set(
@@ -69959,7 +69996,7 @@ var CodexOwnedAcpAgent = class {
69959
69996
  }
69960
69997
  if (method === "item/agentMessage/delta") {
69961
69998
  const decoded = reasoningTextDeltaParamsSchema.safeParse(params);
69962
- if (decoded.success && decoded.data.threadId === this.#context.threadId() && this.#turn !== null && decoded.data.turnId === this.#turn.turn.id && decoded.data.delta.length > 0) {
69999
+ if (decoded.success && this.#turn !== null && decoded.data.turnId === this.#turn.turn.id && decoded.data.delta.length > 0) {
69963
70000
  this.#agentMessages.set(decoded.data.itemId, "streaming");
69964
70001
  await this.#enqueue(async () => {
69965
70002
  await this.#context.emit(agentMessageUpdate(decoded.data.itemId, decoded.data.delta));
@@ -69977,7 +70014,7 @@ var CodexOwnedAcpAgent = class {
69977
70014
  if (item.type === "userMessage") {
69978
70015
  if (method === "item/started") {
69979
70016
  const turn = this.#turn;
69980
- if (turn === null || typeof params !== "object" || params === null || Reflect.get(params, "threadId") !== this.#context.threadId() || Reflect.get(params, "turnId") !== turn.turn.id) {
70017
+ if (turn === null || typeof params !== "object" || params === null || Reflect.get(params, "turnId") !== turn.turn.id) {
69981
70018
  return;
69982
70019
  }
69983
70020
  const submitted = item.clientId === turn.clientId ? turn.content : item.clientId == null ? void 0 : turn.steeringContent.get(item.clientId);
@@ -88586,10 +88623,10 @@ var PromptLifecycle = class {
88586
88623
  await this.#recordLifecycle(sessionId, event);
88587
88624
  this.publishTerminal(sessionId, event.payload.commandId);
88588
88625
  };
88589
- queueChanged = async (sessionId) => {
88626
+ queueChanged = async (sessionId, commandId) => {
88590
88627
  await this.#recordLifecycle(sessionId, {
88591
88628
  type: "lifecycle-metadata",
88592
- payload: { kind: "session.queue.changed" }
88629
+ payload: { changedByCommandId: commandId, kind: "session.queue.changed" }
88593
88630
  });
88594
88631
  };
88595
88632
  completed = async (sessionId, commandId, stopReason) => {
@@ -89183,6 +89220,8 @@ var ActiveRuntimeTurn = class {
89183
89220
  }
89184
89221
  this.#admission = { kind: "queued", promotion: Promise.withResolvers() };
89185
89222
  };
89223
+ /** Whether the prompt was admitted to its Session's queue, whatever happened to it afterwards. */
89224
+ enteredQueue = () => this.command.disposition === SessionPromptDisposition.Queue && this.#admission.kind !== "waiting";
89186
89225
  isQueued = () => (this.#admission.kind === "queued" || this.#admission.kind === "admitted" && this.#admission.disposition === SessionPromptDisposition.Queue) && !this.#started() && !this.#controller.signal.aborted;
89187
89226
  abortRuntime = () => {
89188
89227
  this.#controller.abort();
@@ -92157,6 +92196,13 @@ var sessionPromptCommand = {
92157
92196
  }
92158
92197
  if (receipt.kind === "duplicate") {
92159
92198
  const outcome = receipt.outcome;
92199
+ const original = context.sessionTurns.get(message.commandId, message.sessionId);
92200
+ send(context.socket, {
92201
+ kind: "session.prompt.accepted",
92202
+ requestId: message.commandId,
92203
+ sessionId: message.sessionId,
92204
+ state: outcome !== void 0 ? "settled" : original?.isQueued() === true ? "queued" : "running"
92205
+ });
92160
92206
  if (outcome !== void 0) {
92161
92207
  void context.eventProjection.replayOutcome(message.sessionId, outcome).catch((cause) => {
92162
92208
  console.error("Could not replay the persisted execution outcome", cause);
@@ -92177,7 +92223,7 @@ var sessionPromptCommand = {
92177
92223
  const turn = context.sessionTurns.start(message, receipt.attemptId);
92178
92224
  context.eventProjection.requested(message);
92179
92225
  const queueChanged = () => {
92180
- void context.eventProjection.queueChanged(message.sessionId).catch((error62) => {
92226
+ void context.eventProjection.queueChanged(message.sessionId, message.commandId).catch((error62) => {
92181
92227
  console.error("Could not record queue change", error62);
92182
92228
  });
92183
92229
  };
@@ -92211,7 +92257,7 @@ var sessionPromptCommand = {
92211
92257
  }).finally(() => {
92212
92258
  context.sessionTurns.finish(turn);
92213
92259
  context.eventProjection.publishTerminal(message.sessionId, message.commandId);
92214
- if (message.disposition === SessionPromptDisposition.Queue) {
92260
+ if (turn.enteredQueue()) {
92215
92261
  queueChanged();
92216
92262
  }
92217
92263
  });
@@ -93841,6 +93887,11 @@ export {
93841
93887
  external_exports,
93842
93888
  isNodeError,
93843
93889
  installationPointerPath,
93890
+ connectionFilePath,
93891
+ channelIndexFilePath,
93892
+ readInstallationFile,
93893
+ removeInstallationFile,
93894
+ isIdentifier,
93844
93895
  decodeRuntimeUpgradeVersion,
93845
93896
  ensurePrivateDirectory,
93846
93897
  platformSupportFor,
@@ -93877,4 +93928,4 @@ export {
93877
93928
  * MIT Licensed
93878
93929
  *)
93879
93930
  */
93880
- //# sourceMappingURL=chunk-VAIQ6KYK.js.map
93931
+ //# sourceMappingURL=chunk-5S4YJP7Y.js.map