@moxt-ai/mobius 0.0.328 → 0.0.329

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.
@@ -1 +1 @@
1
- {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../src/daemon/upgrades/data.ts"],"names":[],"mappings":"AAYA,wBAAsB,kBAAkB,CACpC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,WAAW,EACnB,WAAW,GAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAe,EACtD,eAAe,GAAE,MAAM,GAAG,IAAW,GACtC,OAAO,CAAC,IAAI,CAAC,CAiBf;AAID,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/F;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3F;AAED,wBAAsB,kBAAkB,CACpC,gBAAgB,EAAE,MAAM,EACxB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,WAAW,GACpB,OAAO,CAAC,IAAI,CAAC,CAKf"}
1
+ {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../src/daemon/upgrades/data.ts"],"names":[],"mappings":"AAaA,wBAAsB,kBAAkB,CACpC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,WAAW,EACnB,WAAW,GAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAe,EACtD,eAAe,GAAE,MAAM,GAAG,IAAW,GACtC,OAAO,CAAC,IAAI,CAAC,CA0Bf;AAID,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/F;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3F;AAED,wBAAsB,kBAAkB,CACpC,gBAAgB,EAAE,MAAM,EACxB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,WAAW,GACpB,OAAO,CAAC,IAAI,CAAC,CAKf"}
@@ -2,17 +2,28 @@ import { runtimeUpgradeVersionSchema } 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";
5
- // A version that has never run inherits the current data, or the data of the version it replaces.
5
+ // A version whose data is not current inherits the current data. Without a current data pointer, a version that has
6
+ // never run inherits the data of the version it replaces.
6
7
  export async function prepareVersionData(version, signal, environment = process.env, fallbackVersion = null) {
7
8
  signal.throwIfAborted();
8
9
  const root = readStateDirectory(environment);
9
10
  const targetVersion = runtimeUpgradeVersionSchema.parse(version);
10
- if (await versionDataExists(root, targetVersion, signal)) {
11
- return;
11
+ const current = await readCurrentDataVersion(root, signal);
12
+ let previous;
13
+ if (current !== null) {
14
+ if (current === targetVersion) {
15
+ return;
16
+ }
17
+ // The pointer names the data that wins. A directory it does not name never became current, as one an earlier
18
+ // CLI started for its own version, so it is stale and must not replace the current data.
19
+ await discardVersionData(root, targetVersion, signal);
20
+ previous = current;
12
21
  }
13
- const previous = (await readCurrentDataVersion(root, signal)) ?? fallbackVersion;
14
- if (previous === null) {
15
- return;
22
+ else {
23
+ if (fallbackVersion === null || (await versionDataExists(root, targetVersion, signal))) {
24
+ return;
25
+ }
26
+ previous = fallbackVersion;
16
27
  }
17
28
  const leftBehind = await copyVersionData(root, runtimeUpgradeVersionSchema.parse(previous), targetVersion, signal);
18
29
  for (const entry of leftBehind) {
@@ -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;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D,kGAAkG;AAClG,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,KAAK,CAAC,OAAO,CAAC,CAAC;IACjE,IAAI,MAAM,iBAAiB,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,CAAC;QACvD,OAAO;IACX,CAAC;IACD,MAAM,QAAQ,GAAG,CAAC,MAAM,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,eAAe,CAAC;IACjF,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO;IACX,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,2BAA2B,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;IACnH,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,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;AACvG,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAAe,EAAE,MAAmB;IACxE,MAAM,uBAAuB,CAAC,kBAAkB,EAAE,EAAE,2BAA2B,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;AAC5G,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACpC,gBAAwB,EACxB,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
+ {"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;AAC9C,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,KAAK,CAAC,OAAO,CAAC,CAAC;IACjE,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,KAAK,CAAC,QAAQ,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;IACnH,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,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;AACvG,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAAe,EAAE,MAAmB;IACxE,MAAM,uBAAuB,CAAC,kBAAkB,EAAE,EAAE,2BAA2B,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;AAC5G,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACpC,gBAAwB,EACxB,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 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/runtime/command/registry/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACpG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AA0BpD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,cAAc,GAAG;IAC5D,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,sBAAsB,KAAK,IAAI,CAAC;IAC7D,QAAQ,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACnD,QAAQ,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC,CAyCA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/runtime/command/registry/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACpG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AA2BpD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,cAAc,GAAG;IAC5D,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,sBAAsB,KAAK,IAAI,CAAC;IAC7D,QAAQ,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACnD,QAAQ,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC,CA0CA"}
@@ -4,7 +4,7 @@ import { createAgentSettingsCommands } from "./agent-settings.js";
4
4
  import { createContentWriteCommands } from "./content-write/index.js";
5
5
  import { fileReadCommand } from "./file-read/index.js";
6
6
  import { previewHistoryPageLoadCommand, sessionHistoryPageLoadCommand } from "./history.js";
7
- import { elicitationRespondCommand, permissionRespondCommand, promptDispositionCommand, sessionCancelCommand, sessionCloseCommand, } from "./interactions.js";
7
+ import { elicitationRespondCommand, permissionRespondCommand, promptDispositionCommand, sessionCancelBeforeStartCommand, sessionCancelCommand, sessionCloseCommand, } from "./interactions.js";
8
8
  import { createNativeSessionCommands } from "./native-sessions.js";
9
9
  import { sessionPromptCommand } from "./prompt.js";
10
10
  import { runtimeDiagnosticsCommand, runtimePingCommand } from "./runtime.js";
@@ -21,6 +21,7 @@ export function createCommandRegistry(context) {
21
21
  ...createAgentSettingsCommands(context),
22
22
  ...contentWrites.commands,
23
23
  fileReadCommand,
24
+ sessionCancelBeforeStartCommand,
24
25
  sessionCancelCommand,
25
26
  sessionCloseCommand,
26
27
  promptDispositionCommand,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/runtime/command/registry/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAA+B,MAAM,8BAA8B,CAAC;AAGpG,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;AAC5F,OAAO,EACH,yBAAyB,EACzB,wBAAwB,EACxB,wBAAwB,EACxB,oBAAoB,EACpB,mBAAmB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,EACH,wBAAwB,EACxB,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,GACvB,MAAM,cAAc,CAAC;AAEtB,MAAM,UAAU,qBAAqB,CAAC,OAAuB;IAKzD,MAAM,aAAa,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAA8B;QACxC,yBAAyB;QACzB,kBAAkB;QAClB,6BAA6B;QAC7B,6BAA6B;QAC7B,GAAG,2BAA2B,CAAC,OAAO,CAAC;QACvC,GAAG,0BAA0B,CAAC,OAAO,CAAC;QACtC,GAAG,2BAA2B,CAAC,OAAO,CAAC;QACvC,GAAG,aAAa,CAAC,QAAQ;QACzB,eAAe;QACf,oBAAoB;QACpB,mBAAmB;QACnB,wBAAwB;QACxB,oBAAoB;QACpB,qBAAqB;QACrB,uBAAuB;QACvB,wBAAwB;QACxB,oBAAoB;QACpB,qBAAqB;QACrB,wBAAwB;QACxB,yBAAyB;QACzB,oBAAoB;KACvB,CAAC;IACF,OAAO;QACH,QAAQ,EAAE,CAAC,OAAO,EAAQ,EAAE;YACxB,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;YAC9E,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YACpD,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACrC,CAAC;QACD,aAAa,EAAE,CAAC,OAAO,EAAQ,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAC9F,MAAM,EAAE,KAAK,IAAmB,EAAE;YAC9B,MAAM,OAAO,CAAC,GAAG,CAAC;gBACd,aAAa,CAAC,MAAM,EAAE;gBACtB,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;aAC7F,CAAC,CAAC;QACP,CAAC;KACJ,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/runtime/command/registry/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAA+B,MAAM,8BAA8B,CAAC;AAGpG,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;AAC5F,OAAO,EACH,yBAAyB,EACzB,wBAAwB,EACxB,wBAAwB,EACxB,+BAA+B,EAC/B,oBAAoB,EACpB,mBAAmB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,EACH,wBAAwB,EACxB,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,GACvB,MAAM,cAAc,CAAC;AAEtB,MAAM,UAAU,qBAAqB,CAAC,OAAuB;IAKzD,MAAM,aAAa,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAA8B;QACxC,yBAAyB;QACzB,kBAAkB;QAClB,6BAA6B;QAC7B,6BAA6B;QAC7B,GAAG,2BAA2B,CAAC,OAAO,CAAC;QACvC,GAAG,0BAA0B,CAAC,OAAO,CAAC;QACtC,GAAG,2BAA2B,CAAC,OAAO,CAAC;QACvC,GAAG,aAAa,CAAC,QAAQ;QACzB,eAAe;QACf,+BAA+B;QAC/B,oBAAoB;QACpB,mBAAmB;QACnB,wBAAwB;QACxB,oBAAoB;QACpB,qBAAqB;QACrB,uBAAuB;QACvB,wBAAwB;QACxB,oBAAoB;QACpB,qBAAqB;QACrB,wBAAwB;QACxB,yBAAyB;QACzB,oBAAoB;KACvB,CAAC;IACF,OAAO;QACH,QAAQ,EAAE,CAAC,OAAO,EAAQ,EAAE;YACxB,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;YAC9E,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YACpD,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACrC,CAAC;QACD,aAAa,EAAE,CAAC,OAAO,EAAQ,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAC9F,MAAM,EAAE,KAAK,IAAmB,EAAE;YAC9B,MAAM,OAAO,CAAC,GAAG,CAAC;gBACd,aAAa,CAAC,MAAM,EAAE;gBACtB,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;aAC7F,CAAC,CAAC;QACP,CAAC;KACJ,CAAC;AACN,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import type { RuntimeCommand } from "../definition.ts";
2
2
  export declare const sessionCancelCommand: RuntimeCommand;
3
+ export declare const sessionCancelBeforeStartCommand: RuntimeCommand;
3
4
  export declare const sessionCloseCommand: RuntimeCommand;
4
5
  export declare const promptDispositionCommand: RuntimeCommand;
5
6
  export declare const permissionRespondCommand: RuntimeCommand;
@@ -1 +1 @@
1
- {"version":3,"file":"interactions.d.ts","sourceRoot":"","sources":["../../../../src/runtime/command/registry/interactions.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGvD,eAAO,MAAM,oBAAoB,EAAE,cAqBlC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,cAejC,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,cAgBtC,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,cAUtC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,cAUvC,CAAC"}
1
+ {"version":3,"file":"interactions.d.ts","sourceRoot":"","sources":["../../../../src/runtime/command/registry/interactions.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGvD,eAAO,MAAM,oBAAoB,EAAE,cAqBlC,CAAC;AAEF,eAAO,MAAM,+BAA+B,EAAE,cAmC7C,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,cAejC,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,cAgBtC,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,cAUtC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,cAUvC,CAAC"}
@@ -1,4 +1,5 @@
1
- import { SESSION_CANCEL_KIND, SESSION_CLOSE_KIND, SESSION_CLOSED_KIND, SESSION_ELICITATION_RESPOND_KIND, SESSION_PERMISSION_RESPOND_KIND, SESSION_PROMPT_DISPOSITION_KIND, } from "@moxt-ai/mobius-sdk/protocol";
1
+ import { SESSION_CANCEL_BEFORE_START_KIND, SESSION_CANCEL_KIND, SESSION_CLOSE_KIND, SESSION_CLOSED_KIND, SESSION_ELICITATION_RESPOND_KIND, SESSION_PERMISSION_RESPOND_KIND, SESSION_PROMPT_DISPOSITION_KIND, } from "@moxt-ai/mobius-sdk/protocol";
2
+ import { SessionError } from "../../../session/api/session-error.js";
2
3
  import { settleAbandonedTurn } from "../../../session/prompt/prompt-lifecycle.js";
3
4
  import { reportOperationFailure, send } from "../transport.js";
4
5
  export const sessionCancelCommand = {
@@ -23,6 +24,32 @@ export const sessionCancelCommand = {
23
24
  });
24
25
  },
25
26
  };
27
+ export const sessionCancelBeforeStartCommand = {
28
+ kind: SESSION_CANCEL_BEFORE_START_KIND,
29
+ handle: ({ eventProjection, operations, sessionTurns, socket }, message) => {
30
+ if (message.kind !== SESSION_CANCEL_BEFORE_START_KIND) {
31
+ throw new Error("Command kind mismatch");
32
+ }
33
+ const turn = sessionTurns.get(message.commandId, message.sessionId);
34
+ if (turn === undefined) {
35
+ const outcome = operations.recordCancellationBeforeAdmission(message.commandId, message.sessionId);
36
+ if (outcome !== undefined) {
37
+ void eventProjection.replayOutcome(message.sessionId, outcome).catch((error) => {
38
+ reportOperationFailure(socket, message.commandId, message.sessionId, error);
39
+ });
40
+ return;
41
+ }
42
+ reportOperationFailure(socket, message.commandId, message.sessionId, new SessionError("turn_not_active", "The command is not waiting to start"));
43
+ return;
44
+ }
45
+ // No await separates checking admission from requesting cancellation.
46
+ if (turn.snapshot() !== null) {
47
+ reportOperationFailure(socket, message.commandId, message.sessionId, new SessionError("turn_already_started", "The command already started"));
48
+ return;
49
+ }
50
+ turn.requestCancellation();
51
+ },
52
+ };
26
53
  export const sessionCloseCommand = {
27
54
  kind: SESSION_CLOSE_KIND,
28
55
  handle: ({ sessions, signal, socket }, message) => {
@@ -1 +1 @@
1
- {"version":3,"file":"interactions.js","sourceRoot":"","sources":["../../../../src/runtime/command/registry/interactions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interactions.js","sourceRoot":"","sources":["../../../../src/runtime/command/registry/interactions.ts"],"names":[],"mappings":"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"}
package/dist/runtime.js CHANGED
@@ -21926,6 +21926,7 @@ var encodeSessionOperationFailedEvent = (message) => encodeZodMessage(message, s
21926
21926
  var SESSION_PROMPT_KIND = "session.prompt";
21927
21927
  var SESSION_PROMPT_DISPOSITION_KIND = "session.prompt.disposition";
21928
21928
  var SESSION_CANCEL_KIND = "session.cancel";
21929
+ var SESSION_CANCEL_BEFORE_START_KIND = "session.cancel-before-start";
21929
21930
  var SessionPromptDisposition = Object.freeze({
21930
21931
  Queue: "queue",
21931
21932
  Reject: "reject",
@@ -21937,6 +21938,16 @@ var SessionHistoryPolicy = Object.freeze({
21937
21938
  });
21938
21939
  var MAX_PROMPT_LENGTH = 1e5;
21939
21940
  var MAX_PROMPT_ATTACHMENT_BYTES = 32 * 1024 * 1024;
21941
+ function decodeSessionCancelBeforeStartCommand(encoded) {
21942
+ const value = parseJson(encoded);
21943
+ assertKind(value, SESSION_CANCEL_BEFORE_START_KIND);
21944
+ return {
21945
+ commandId: readIdentifier(value, "commandId"),
21946
+ kind: SESSION_CANCEL_BEFORE_START_KIND,
21947
+ sessionId: readIdentifier(value, "sessionId")
21948
+ };
21949
+ }
21950
+ var encodeSessionCancelBeforeStartCommand = (message) => JSON.stringify(decodeSessionCancelBeforeStartCommand(JSON.stringify(message)));
21940
21951
  var promptAttachmentSchema = external_exports.object({
21941
21952
  byteLength: external_exports.number().int().positive().max(MAX_PROMPT_ATTACHMENT_BYTES),
21942
21953
  contentKey: external_exports.string().regex(/^[a-f0-9]{64}$/u),
@@ -22782,6 +22793,11 @@ var serviceToDaemonSignatures = {
22782
22793
  decodeRuntimeDiagnosticsRequest
22783
22794
  ),
22784
22795
  [RUNTIME_PING_KIND]: defineMessageSignature(RUNTIME_PING_KIND, encodeRuntimePingCommand, decodeRuntimePingCommand),
22796
+ [SESSION_CANCEL_BEFORE_START_KIND]: defineMessageSignature(
22797
+ SESSION_CANCEL_BEFORE_START_KIND,
22798
+ encodeSessionCancelBeforeStartCommand,
22799
+ decodeSessionCancelBeforeStartCommand
22800
+ ),
22785
22801
  [SESSION_CANCEL_KIND]: defineMessageSignature(
22786
22802
  SESSION_CANCEL_KIND,
22787
22803
  encodeSessionCancelCommand,
@@ -32529,7 +32545,7 @@ import { fetch as fetch3 } from "undici";
32529
32545
  // package.json
32530
32546
  var package_default = {
32531
32547
  name: "@moxt-ai/mobius",
32532
- version: "0.0.328",
32548
+ version: "0.0.329",
32533
32549
  description: "Mobius CLI for pairing and running local AI agent services.",
32534
32550
  type: "module",
32535
32551
  bin: {
@@ -86978,6 +86994,11 @@ var PromptLifecycle = class {
86978
86994
  });
86979
86995
  };
86980
86996
  async function settleAbandonedTurn(projection, operations, cancellation) {
86997
+ const outcome = operations.recordCancellationBeforeAdmission(cancellation.commandId, cancellation.sessionId);
86998
+ if (outcome !== void 0) {
86999
+ await projection.replayOutcome(cancellation.sessionId, outcome);
87000
+ return;
87001
+ }
86981
87002
  const attemptId = operations.findUnsettledAttemptId(cancellation.commandId, cancellation.sessionId);
86982
87003
  if (attemptId === null) {
86983
87004
  console.warn("Mobius daemon ignored cancellation for an inactive turn");
@@ -87051,6 +87072,33 @@ var ExecutionReceipts = class {
87051
87072
  const receipt = this.#executions.get(commandId);
87052
87073
  return receipt?.outcome === null || receipt === void 0 ? void 0 : sessionEventPayloadSchema.parse(JSON.parse(receipt.outcome));
87053
87074
  };
87075
+ /** Reserves an unseen command for cancellation before a delayed prompt can claim its identity. */
87076
+ recordCancellationBeforeAdmission = (commandId, sessionId) => {
87077
+ const existing = this.#executions.get(commandId);
87078
+ if (existing !== void 0) {
87079
+ return existing.sessionId === sessionId && isTerminal(existing.state) ? this.outcome(commandId) : void 0;
87080
+ }
87081
+ const outcome = {
87082
+ type: "lifecycle-metadata",
87083
+ payload: { kind: "prompt.completed", commandId, stopReason: "cancelled" }
87084
+ };
87085
+ const commandHash = createHash6("sha256").update(
87086
+ encodeSessionCancelBeforeStartCommand({
87087
+ commandId,
87088
+ kind: "session.cancel-before-start",
87089
+ sessionId
87090
+ })
87091
+ ).digest("hex");
87092
+ this.#save(commandId, {
87093
+ attemptId: randomUUID15(),
87094
+ commandHash,
87095
+ sessionId,
87096
+ state: "cancelled",
87097
+ started: false,
87098
+ outcome: JSON.stringify({ ...outcome, recordedAt: (/* @__PURE__ */ new Date()).toISOString() })
87099
+ });
87100
+ return outcome;
87101
+ };
87054
87102
  recordOutcome = (event) => {
87055
87103
  if (event.type !== "lifecycle-metadata") {
87056
87104
  return;
@@ -89764,6 +89812,41 @@ var sessionCancelCommand = {
89764
89812
  });
89765
89813
  }
89766
89814
  };
89815
+ var sessionCancelBeforeStartCommand = {
89816
+ kind: SESSION_CANCEL_BEFORE_START_KIND,
89817
+ handle: ({ eventProjection, operations, sessionTurns, socket }, message) => {
89818
+ if (message.kind !== SESSION_CANCEL_BEFORE_START_KIND) {
89819
+ throw new Error("Command kind mismatch");
89820
+ }
89821
+ const turn = sessionTurns.get(message.commandId, message.sessionId);
89822
+ if (turn === void 0) {
89823
+ const outcome = operations.recordCancellationBeforeAdmission(message.commandId, message.sessionId);
89824
+ if (outcome !== void 0) {
89825
+ void eventProjection.replayOutcome(message.sessionId, outcome).catch((error62) => {
89826
+ reportOperationFailure(socket, message.commandId, message.sessionId, error62);
89827
+ });
89828
+ return;
89829
+ }
89830
+ reportOperationFailure(
89831
+ socket,
89832
+ message.commandId,
89833
+ message.sessionId,
89834
+ new SessionError("turn_not_active", "The command is not waiting to start")
89835
+ );
89836
+ return;
89837
+ }
89838
+ if (turn.snapshot() !== null) {
89839
+ reportOperationFailure(
89840
+ socket,
89841
+ message.commandId,
89842
+ message.sessionId,
89843
+ new SessionError("turn_already_started", "The command already started")
89844
+ );
89845
+ return;
89846
+ }
89847
+ turn.requestCancellation();
89848
+ }
89849
+ };
89767
89850
  var sessionCloseCommand = {
89768
89851
  kind: SESSION_CLOSE_KIND,
89769
89852
  handle: ({ sessions, signal, socket }, message) => {
@@ -90859,6 +90942,7 @@ function createCommandRegistry(context) {
90859
90942
  ...createAgentSettingsCommands(context),
90860
90943
  ...contentWrites.commands,
90861
90944
  fileReadCommand,
90945
+ sessionCancelBeforeStartCommand,
90862
90946
  sessionCancelCommand,
90863
90947
  sessionCloseCommand,
90864
90948
  promptDispositionCommand,