@moxt-ai/mobius 0.0.349 → 0.0.350

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 (28) hide show
  1. package/dist/cli.js +52 -10
  2. package/dist/cli.js.map +2 -2
  3. package/dist/engine/generated/acp-session-store-migrations.d.ts +3 -0
  4. package/dist/engine/generated/acp-session-store-migrations.d.ts.map +1 -1
  5. package/dist/engine/generated/acp-session-store-migrations.js +5 -1
  6. package/dist/engine/generated/acp-session-store-migrations.js.map +1 -1
  7. package/dist/engine/schema/acp-session-store/execution-receipt.d.ts +16 -0
  8. package/dist/engine/schema/acp-session-store/execution-receipt.d.ts.map +1 -1
  9. package/dist/engine/schema/acp-session-store/execution-receipt.js +2 -0
  10. package/dist/engine/schema/acp-session-store/execution-receipt.js.map +1 -1
  11. package/dist/engine/session/turn/execution-receipts.d.ts +3 -4
  12. package/dist/engine/session/turn/execution-receipts.d.ts.map +1 -1
  13. package/dist/engine/session/turn/execution-receipts.js +15 -5
  14. package/dist/engine/session/turn/execution-receipts.js.map +1 -1
  15. package/dist/engine/storage/session/execution-receipt-table.d.ts +1 -0
  16. package/dist/engine/storage/session/execution-receipt-table.d.ts.map +1 -1
  17. package/dist/engine/storage/session/execution-receipt-table.js +25 -7
  18. package/dist/engine/storage/session/execution-receipt-table.js.map +1 -1
  19. package/dist/engine/storage/sqlite/local-databases.d.ts.map +1 -1
  20. package/dist/engine/storage/sqlite/local-databases.js +6 -1
  21. package/dist/engine/storage/sqlite/local-databases.js.map +1 -1
  22. package/dist/engine/storage/sqlite/local-sqlite-database.d.ts +5 -0
  23. package/dist/engine/storage/sqlite/local-sqlite-database.d.ts.map +1 -1
  24. package/dist/engine/storage/sqlite/local-sqlite-database.js +9 -0
  25. package/dist/engine/storage/sqlite/local-sqlite-database.js.map +1 -1
  26. package/dist/engine.js +52 -10
  27. package/dist/engine.js.map +2 -2
  28. package/package.json +1 -1
@@ -25,5 +25,8 @@ export declare const acpSessionStoreMigrations: readonly [{
25
25
  }, {
26
26
  readonly name: "0008_execution_identity.sql";
27
27
  readonly sql: "CREATE TABLE `execution_identity` (\n\t`command_id` text PRIMARY KEY NOT NULL,\n\t`session_id` text NOT NULL,\n\t`command_hash` text NOT NULL\n);\n";
28
+ }, {
29
+ readonly name: "0009_receipt_admission_order.sql";
30
+ readonly sql: "ALTER TABLE `execution_receipt` ADD `admission_order` integer;";
28
31
  }];
29
32
  //# sourceMappingURL=acp-session-store-migrations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"acp-session-store-migrations.d.ts","sourceRoot":"","sources":["../../../src/engine/generated/acp-session-store-migrations.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,yBAAyB;aAE9B,IAAM,EAAE,iCAAiC;aACzC,GAAK,EAAE,2ZAA2Z;;aAGla,IAAM,EAAE,4BAA4B;aACpC,GAAK,EAAE,gEAAgE;;aAGvE,IAAM,EAAE,4BAA4B;aACpC,GAAK,EAAE,ybAAyb;;aAGhc,IAAM,EAAE,yBAAyB;aACjC,GAAK,EAAE,gCAAgC;;aAGvC,IAAM,EAAE,6BAA6B;aACrC,GAAK,EAAE,8HAA8H;;aAGrI,IAAM,EAAE,2BAA2B;aACnC,GAAK,EAAE,4EAA4E;;aAGnF,IAAM,EAAE,yCAAyC;aACjD,GAAK,EAAE,iKAAiK;;aAGxK,IAAM,EAAE,yBAAyB;aACjC,GAAK,EAAE,8RAA8R;;aAGrS,IAAM,EAAE,6BAA6B;aACrC,GAAK,EAAE,qJAAqJ;EAE1J,CAAC"}
1
+ {"version":3,"file":"acp-session-store-migrations.d.ts","sourceRoot":"","sources":["../../../src/engine/generated/acp-session-store-migrations.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,yBAAyB;aAE9B,IAAM,EAAE,iCAAiC;aACzC,GAAK,EAAE,2ZAA2Z;;aAGla,IAAM,EAAE,4BAA4B;aACpC,GAAK,EAAE,gEAAgE;;aAGvE,IAAM,EAAE,4BAA4B;aACpC,GAAK,EAAE,ybAAyb;;aAGhc,IAAM,EAAE,yBAAyB;aACjC,GAAK,EAAE,gCAAgC;;aAGvC,IAAM,EAAE,6BAA6B;aACrC,GAAK,EAAE,8HAA8H;;aAGrI,IAAM,EAAE,2BAA2B;aACnC,GAAK,EAAE,4EAA4E;;aAGnF,IAAM,EAAE,yCAAyC;aACjD,GAAK,EAAE,iKAAiK;;aAGxK,IAAM,EAAE,yBAAyB;aACjC,GAAK,EAAE,8RAA8R;;aAGrS,IAAM,EAAE,6BAA6B;aACrC,GAAK,EAAE,qJAAqJ;;aAG5J,IAAM,EAAE,kCAAkC;aAC1C,GAAK,EAAE,gEAAgE;EAErE,CAAC"}
@@ -1,5 +1,5 @@
1
1
  // Generated by scripts/generate-sql-modules.ts. Do not edit.
2
- // Sources: ../../../migrations/acp-session-store/0000_slimy_captain_midlands.sql, ../../../migrations/acp-session-store/0001_regular_ultimates.sql, ../../../migrations/acp-session-store/0002_equal_black_queen.sql, ../../../migrations/acp-session-store/0003_silky_ravenous.sql, ../../../migrations/acp-session-store/0004_special_mathemanic.sql, ../../../migrations/acp-session-store/0005_orange_amphibian.sql, ../../../migrations/acp-session-store/0006_live_event_position_allocation.sql, ../../../migrations/acp-session-store/0007_busy_excalibur.sql, ../../../migrations/acp-session-store/0008_execution_identity.sql
2
+ // Sources: ../../../migrations/acp-session-store/0000_slimy_captain_midlands.sql, ../../../migrations/acp-session-store/0001_regular_ultimates.sql, ../../../migrations/acp-session-store/0002_equal_black_queen.sql, ../../../migrations/acp-session-store/0003_silky_ravenous.sql, ../../../migrations/acp-session-store/0004_special_mathemanic.sql, ../../../migrations/acp-session-store/0005_orange_amphibian.sql, ../../../migrations/acp-session-store/0006_live_event_position_allocation.sql, ../../../migrations/acp-session-store/0007_busy_excalibur.sql, ../../../migrations/acp-session-store/0008_execution_identity.sql, ../../../migrations/acp-session-store/0009_receipt_admission_order.sql
3
3
  export const acpSessionStoreMigrations = [
4
4
  {
5
5
  "name": "0000_slimy_captain_midlands.sql",
@@ -36,6 +36,10 @@ export const acpSessionStoreMigrations = [
36
36
  {
37
37
  "name": "0008_execution_identity.sql",
38
38
  "sql": "CREATE TABLE `execution_identity` (\n\t`command_id` text PRIMARY KEY NOT NULL,\n\t`session_id` text NOT NULL,\n\t`command_hash` text NOT NULL\n);\n"
39
+ },
40
+ {
41
+ "name": "0009_receipt_admission_order.sql",
42
+ "sql": "ALTER TABLE `execution_receipt` ADD `admission_order` integer;"
39
43
  }
40
44
  ];
41
45
  //# sourceMappingURL=acp-session-store-migrations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"acp-session-store-migrations.js","sourceRoot":"","sources":["../../../src/engine/generated/acp-session-store-migrations.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,ymBAAymB;AACzmB,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACrC;QACI,MAAM,EAAE,iCAAiC;QACzC,KAAK,EAAE,2ZAA2Z;KACra;IACD;QACI,MAAM,EAAE,4BAA4B;QACpC,KAAK,EAAE,gEAAgE;KAC1E;IACD;QACI,MAAM,EAAE,4BAA4B;QACpC,KAAK,EAAE,ybAAyb;KACnc;IACD;QACI,MAAM,EAAE,yBAAyB;QACjC,KAAK,EAAE,gCAAgC;KAC1C;IACD;QACI,MAAM,EAAE,6BAA6B;QACrC,KAAK,EAAE,8HAA8H;KACxI;IACD;QACI,MAAM,EAAE,2BAA2B;QACnC,KAAK,EAAE,4EAA4E;KACtF;IACD;QACI,MAAM,EAAE,yCAAyC;QACjD,KAAK,EAAE,iKAAiK;KAC3K;IACD;QACI,MAAM,EAAE,yBAAyB;QACjC,KAAK,EAAE,8RAA8R;KACxS;IACD;QACI,MAAM,EAAE,6BAA6B;QACrC,KAAK,EAAE,qJAAqJ;KAC/J;CACK,CAAC"}
1
+ {"version":3,"file":"acp-session-store-migrations.js","sourceRoot":"","sources":["../../../src/engine/generated/acp-session-store-migrations.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,irBAAirB;AACjrB,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACrC;QACI,MAAM,EAAE,iCAAiC;QACzC,KAAK,EAAE,2ZAA2Z;KACra;IACD;QACI,MAAM,EAAE,4BAA4B;QACpC,KAAK,EAAE,gEAAgE;KAC1E;IACD;QACI,MAAM,EAAE,4BAA4B;QACpC,KAAK,EAAE,ybAAyb;KACnc;IACD;QACI,MAAM,EAAE,yBAAyB;QACjC,KAAK,EAAE,gCAAgC;KAC1C;IACD;QACI,MAAM,EAAE,6BAA6B;QACrC,KAAK,EAAE,8HAA8H;KACxI;IACD;QACI,MAAM,EAAE,2BAA2B;QACnC,KAAK,EAAE,4EAA4E;KACtF;IACD;QACI,MAAM,EAAE,yCAAyC;QACjD,KAAK,EAAE,iKAAiK;KAC3K;IACD;QACI,MAAM,EAAE,yBAAyB;QACjC,KAAK,EAAE,8RAA8R;KACxS;IACD;QACI,MAAM,EAAE,6BAA6B;QACrC,KAAK,EAAE,qJAAqJ;KAC/J;IACD;QACI,MAAM,EAAE,kCAAkC;QAC1C,KAAK,EAAE,gEAAgE;KAC1E;CACK,CAAC"}
@@ -66,6 +66,22 @@ export declare const executionReceipt: import("drizzle-orm/sqlite-core").SQLiteT
66
66
  identity: undefined;
67
67
  generated: undefined;
68
68
  }, {}>;
69
+ admissionOrder: import("drizzle-orm/sqlite-core").SQLiteColumn<{
70
+ name: string;
71
+ tableName: "execution_receipt";
72
+ dataType: "number int53";
73
+ data: number;
74
+ driverParam: number;
75
+ notNull: false;
76
+ hasDefault: false;
77
+ isPrimaryKey: false;
78
+ isAutoincrement: false;
79
+ hasRuntimeDefault: false;
80
+ enumValues: undefined;
81
+ baseColumn: never;
82
+ identity: undefined;
83
+ generated: undefined;
84
+ }, {}>;
69
85
  state: import("drizzle-orm/sqlite-core").SQLiteColumn<{
70
86
  name: string;
71
87
  tableName: "execution_receipt";
@@ -1 +1 @@
1
- {"version":3,"file":"execution-receipt.d.ts","sourceRoot":"","sources":["../../../../src/engine/schema/acp-session-store/execution-receipt.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAU3B,CAAC"}
1
+ {"version":3,"file":"execution-receipt.d.ts","sourceRoot":"","sources":["../../../../src/engine/schema/acp-session-store/execution-receipt.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAY3B,CAAC"}
@@ -4,6 +4,8 @@ export const executionReceipt = sqliteTable("execution_receipt", {
4
4
  sessionId: text("session_id").notNull(),
5
5
  commandHash: text("command_hash").notNull(),
6
6
  attemptId: text("attempt_id").notNull(),
7
+ // Nullable only for receipts written by older Runtimes; assigned before recovery.
8
+ admissionOrder: integer("admission_order"),
7
9
  // Compatibility projection for older Runtimes; started and outcome own the facts.
8
10
  state: text("state").notNull(),
9
11
  started: integer("started", { mode: "boolean" }).notNull(),
@@ -1 +1 @@
1
- {"version":3,"file":"execution-receipt.js","sourceRoot":"","sources":["../../../../src/engine/schema/acp-session-store/execution-receipt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAErE,MAAM,CAAC,MAAM,gBAAgB,GAAG,WAAW,CAAC,mBAAmB,EAAE;IAC7D,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,UAAU,EAAE;IAC1C,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE;IACvC,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE;IAC3C,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE;IACvC,kFAAkF;IAClF,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE;IAC9B,OAAO,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;IAC1D,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;IACxB,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE;CAC1C,CAAC,CAAC"}
1
+ {"version":3,"file":"execution-receipt.js","sourceRoot":"","sources":["../../../../src/engine/schema/acp-session-store/execution-receipt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAErE,MAAM,CAAC,MAAM,gBAAgB,GAAG,WAAW,CAAC,mBAAmB,EAAE;IAC7D,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,UAAU,EAAE;IAC1C,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE;IACvC,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE;IAC3C,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE;IACvC,kFAAkF;IAClF,cAAc,EAAE,OAAO,CAAC,iBAAiB,CAAC;IAC1C,kFAAkF;IAClF,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE;IAC9B,OAAO,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;IAC1D,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;IACxB,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE;CAC1C,CAAC,CAAC"}
@@ -22,10 +22,9 @@ export declare class ExecutionReceipts {
22
22
  /** The command's delivery as these receipts know it; another Session's command reads as unknown. */
23
23
  readonly delivery: (commandId: string, sessionId: string) => CommandDelivery;
24
24
  /**
25
- * How the Session's most recent started command ended. Receipts keep admission order, or the
26
- * order they last changed after a restart; commands that never started (queued, or reserved for
27
- * cancellation) are not turns, unless a restart failed them before they could start. Undefined
28
- * while that command still runs, or when no turn is retained.
25
+ * How the Session's most recently admitted turn ended. Admission order survives updates and
26
+ * restarts. Commands that never started (queued, or reserved for cancellation) are not turns,
27
+ * unless they failed before starting. Undefined while the latest turn runs or none is retained.
29
28
  */
30
29
  readonly lastTurn: (sessionId: string) => LastTurnOutcome | undefined;
31
30
  /** Reserves an unseen command for cancellation before a delayed prompt can claim its identity. */
@@ -1 +1 @@
1
- {"version":3,"file":"execution-receipts.d.ts","sourceRoot":"","sources":["../../../../src/engine/session/turn/execution-receipts.ts"],"names":[],"mappings":"AACA,OAAO,EACH,KAAK,eAAe,EAGpB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACxB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kDAAkD,CAAC;AAI9F,MAAM,MAAM,uBAAuB,GAC7B,QAAQ,CAAC;IACL,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,UAAU,CAAC;CACpB,CAAC,GACF,QAAQ,CAAC;IACL,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,mBAAmB,GAAG,SAAS,CAAC;CAC5C,CAAC,GACF;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GAC7B;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC;AAUnC,qBAAa,iBAAiB;;IAQ1B,YAAY,KAAK,EAAE,qBAAqB,EAAE,OAAO,GAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAsB,EAU3F;IAoBD,QAAQ,CAAC,aAAa,QAAO,IAAI,CAE/B;IACF,QAAQ,CAAC,OAAO,cAAe,MAAM,KAAG,mBAAmB,GAAG,SAAS,CAKrE;IACF,oGAAoG;IACpG,QAAQ,CAAC,QAAQ,cAAe,MAAM,aAAa,MAAM,KAAG,eAAe,CA0BzE;IACF;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,cAAe,MAAM,KAAG,eAAe,GAAG,SAAS,CA+BlE;IACF,kGAAkG;IAClG,QAAQ,CAAC,iCAAiC,cAC3B,MAAM,aACN,MAAM,KAClB,mBAAmB,GAAG,SAAS,CA2BhC;IACF,QAAQ,CAAC,aAAa,UAAW,gBAAgB,KAAG,IAAI,CA0BtD;IACF,QAAQ,CAAC,OAAO,QAAO,SAAS;QAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;QACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;KAC/B,EAAE,CAoCD;IAEF,QAAQ,CAAC,cAAc,cAAe,MAAM,aAAa,MAAM,eAAe,MAAM,KAAG,uBAAuB,CA0C5G;IAEF,QAAQ,CAAC,oBAAoB,cAAe,MAAM,KAAG,IAAI,CAWvD;IAEF,sEAAsE;IACtE,QAAQ,CAAC,sBAAsB,cAAe,MAAM,aAAa,MAAM,KAAG,MAAM,GAAG,IAAI,CAGrF;IAEF,QAAQ,CAAC,mBAAmB,cAAe,MAAM,aAAa,MAAM,KAAG,OAAO,CAG5E;IAEF,QAAQ,CAAC,KAAK,QAAO,IAAI,CAIvB;CACL"}
1
+ {"version":3,"file":"execution-receipts.d.ts","sourceRoot":"","sources":["../../../../src/engine/session/turn/execution-receipts.ts"],"names":[],"mappings":"AACA,OAAO,EACH,KAAK,eAAe,EAGpB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACxB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kDAAkD,CAAC;AAI9F,MAAM,MAAM,uBAAuB,GAC7B,QAAQ,CAAC;IACL,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,UAAU,CAAC;CACpB,CAAC,GACF,QAAQ,CAAC;IACL,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,mBAAmB,GAAG,SAAS,CAAC;CAC5C,CAAC,GACF;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GAC7B;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC;AAWnC,qBAAa,iBAAiB;;IAQ1B,YAAY,KAAK,EAAE,qBAAqB,EAAE,OAAO,GAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAsB,EAU3F;IA2BD,QAAQ,CAAC,aAAa,QAAO,IAAI,CAE/B;IACF,QAAQ,CAAC,OAAO,cAAe,MAAM,KAAG,mBAAmB,GAAG,SAAS,CAKrE;IACF,oGAAoG;IACpG,QAAQ,CAAC,QAAQ,cAAe,MAAM,aAAa,MAAM,KAAG,eAAe,CA0BzE;IACF;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,cAAe,MAAM,KAAG,eAAe,GAAG,SAAS,CAiClE;IACF,kGAAkG;IAClG,QAAQ,CAAC,iCAAiC,cAC3B,MAAM,aACN,MAAM,KAClB,mBAAmB,GAAG,SAAS,CA4BhC;IACF,QAAQ,CAAC,aAAa,UAAW,gBAAgB,KAAG,IAAI,CA0BtD;IACF,QAAQ,CAAC,OAAO,QAAO,SAAS;QAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;QACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;KAC/B,EAAE,CAoCD;IAEF,QAAQ,CAAC,cAAc,cAAe,MAAM,aAAa,MAAM,eAAe,MAAM,KAAG,uBAAuB,CA2C5G;IAEF,QAAQ,CAAC,oBAAoB,cAAe,MAAM,KAAG,IAAI,CAWvD;IAEF,sEAAsE;IACtE,QAAQ,CAAC,sBAAsB,cAAe,MAAM,aAAa,MAAM,KAAG,MAAM,GAAG,IAAI,CAGrF;IAEF,QAAQ,CAAC,mBAAmB,cAAe,MAAM,aAAa,MAAM,KAAG,OAAO,CAG5E;IAEF,QAAQ,CAAC,KAAK,QAAO,IAAI,CAIvB;CACL"}
@@ -35,6 +35,13 @@ export class ExecutionReceipts {
35
35
  this.#activeCount += Number(receipt.outcome === null) - Number(wasActive);
36
36
  this.#onCount(this.#activeCount);
37
37
  };
38
+ #nextAdmissionOrder = () => {
39
+ let latest = 0;
40
+ for (const receipt of this.#executions.values()) {
41
+ latest = Math.max(latest, receipt.admissionOrder);
42
+ }
43
+ return latest + 1;
44
+ };
38
45
  beginShutdown = () => {
39
46
  this.#closing = true;
40
47
  };
@@ -73,21 +80,22 @@ export class ExecutionReceipts {
73
80
  }
74
81
  };
75
82
  /**
76
- * How the Session's most recent started command ended. Receipts keep admission order, or the
77
- * order they last changed after a restart; commands that never started (queued, or reserved for
78
- * cancellation) are not turns, unless a restart failed them before they could start. Undefined
79
- * while that command still runs, or when no turn is retained.
83
+ * How the Session's most recently admitted turn ended. Admission order survives updates and
84
+ * restarts. Commands that never started (queued, or reserved for cancellation) are not turns,
85
+ * unless they failed before starting. Undefined while the latest turn runs or none is retained.
80
86
  */
81
87
  lastTurn = (sessionId) => {
82
88
  let last;
89
+ let latestOrder = 0;
83
90
  for (const [commandId, receipt] of this.#executions) {
84
91
  if (receipt.sessionId !== sessionId) {
85
92
  continue;
86
93
  }
87
94
  const outcome = receipt.outcome === null ? undefined : this.outcome(commandId);
88
95
  const failedBeforeStart = outcome?.type === "lifecycle-metadata" && outcome.payload.kind === "prompt.failed-before-start";
89
- if (receipt.started || failedBeforeStart) {
96
+ if ((receipt.started || failedBeforeStart) && receipt.admissionOrder > latestOrder) {
90
97
  last = commandId;
98
+ latestOrder = receipt.admissionOrder;
91
99
  }
92
100
  }
93
101
  const outcome = last === undefined ? undefined : this.outcome(last);
@@ -128,6 +136,7 @@ export class ExecutionReceipts {
128
136
  }))
129
137
  .digest("hex");
130
138
  this.#save(commandId, {
139
+ admissionOrder: this.#nextAdmissionOrder(),
131
140
  attemptId: randomUUID(),
132
141
  commandHash,
133
142
  sessionId,
@@ -224,6 +233,7 @@ export class ExecutionReceipts {
224
233
  }
225
234
  const attemptId = randomUUID();
226
235
  this.#save(commandId, {
236
+ admissionOrder: this.#nextAdmissionOrder(),
227
237
  attemptId,
228
238
  commandHash,
229
239
  sessionId,
@@ -1 +1 @@
1
- {"version":3,"file":"execution-receipts.js","sourceRoot":"","sources":["../../../../src/engine/session/turn/execution-receipts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"execution-receipts.js","sourceRoot":"","sources":["../../../../src/engine/session/turn/execution-receipts.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ declare const receiptSchema: z.ZodReadonly<z.ZodObject<{
5
5
  sessionId: z.ZodString;
6
6
  commandHash: z.ZodString;
7
7
  attemptId: z.ZodString;
8
+ admissionOrder: z.ZodNumber;
8
9
  updatedAt: z.ZodString;
9
10
  started: z.ZodBoolean;
10
11
  outcome: z.ZodNullable<z.ZodString>;
@@ -1 +1 @@
1
- {"version":3,"file":"execution-receipt-table.d.ts","sourceRoot":"","sources":["../../../../src/engine/storage/session/execution-receipt-table.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAE9E,QAAA,MAAM,aAAa;;;;;;;;kBAUJ,CAAC;AAChB,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAEtE,QAAA,MAAM,cAAc;;;kBAA0E,CAAC;AAkB/F,2EAA2E;AAC3E,qBAAa,qBAAqB;;IAE9B,YAAY,QAAQ,EAAE,mBAAmB,EAExC;IACD,QAAQ,CAAC,QAAQ,cAAe,MAAM,KAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,GAAG,SAAS,CAOjF;IACF,QAAQ,CAAC,IAAI,QAAO,SAAS,yBAAyB,EAAE,CAS9C;IACV,QAAQ,CAAC,IAAI,YAAa,yBAAyB,iBAAiB,MAAM,KAAG,SAAS,MAAM,EAAE,CA+BvF;IACP,QAAQ,CAAC,MAAM,cAAe,MAAM,KAAG,IAAI,CAEzC;CA4BL"}
1
+ {"version":3,"file":"execution-receipt-table.d.ts","sourceRoot":"","sources":["../../../../src/engine/storage/session/execution-receipt-table.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAE9E,QAAA,MAAM,aAAa;;;;;;;;;kBAWJ,CAAC;AAChB,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAEtE,QAAA,MAAM,cAAc;;;kBAA0E,CAAC;AAkB/F,2EAA2E;AAC3E,qBAAa,qBAAqB;;IAE9B,YAAY,QAAQ,EAAE,mBAAmB,EAExC;IACD,QAAQ,CAAC,QAAQ,cAAe,MAAM,KAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,GAAG,SAAS,CAOjF;IACF,QAAQ,CAAC,IAAI,QAAO,SAAS,yBAAyB,EAAE,CAwBjD;IACP,QAAQ,CAAC,IAAI,YAAa,yBAAyB,iBAAiB,MAAM,KAAG,SAAS,MAAM,EAAE,CA+BvF;IACP,QAAQ,CAAC,MAAM,cAAe,MAAM,KAAG,IAAI,CAEzC;CA4BL"}
@@ -8,6 +8,7 @@ const receiptSchema = z
8
8
  sessionId: z.string(),
9
9
  commandHash: z.string(),
10
10
  attemptId: z.string(),
11
+ admissionOrder: z.number().int().positive().safe(),
11
12
  updatedAt: z.string(),
12
13
  started: z.boolean(),
13
14
  outcome: z.string().nullable(),
@@ -43,13 +44,30 @@ export class ExecutionReceiptTable {
43
44
  .get();
44
45
  return row === undefined ? undefined : identitySchema.parse(row);
45
46
  };
46
- list = () => receiptSchema
47
- .array()
48
- .parse(this.#database.orm
49
- .select()
50
- .from(executionReceipt)
51
- .orderBy(asc(executionReceipt.updatedAt), asc(executionReceipt.commandId))
52
- .all());
47
+ list = () => this.#database.transaction(() => {
48
+ const rows = this.#database.orm
49
+ .select()
50
+ .from(executionReceipt)
51
+ .orderBy(asc(executionReceipt.updatedAt), asc(executionReceipt.commandId))
52
+ .all();
53
+ let latestOrder = rows.reduce((latest, row) => Math.max(latest, row.admissionOrder ?? 0), 0);
54
+ return rows
55
+ .map((row) => {
56
+ if (row.admissionOrder !== null) {
57
+ return receiptSchema.parse(row);
58
+ }
59
+ // Legacy receipts have no admission order. Freeze their available ordering once,
60
+ // before recovery changes updatedAt. Rollback writers' new rows follow known ones.
61
+ const admissionOrder = ++latestOrder;
62
+ this.#database.orm
63
+ .update(executionReceipt)
64
+ .set({ admissionOrder })
65
+ .where(eq(executionReceipt.commandId, row.commandId))
66
+ .run();
67
+ return receiptSchema.parse({ ...row, admissionOrder });
68
+ })
69
+ .sort((left, right) => left.admissionOrder - right.admissionOrder);
70
+ });
53
71
  save = (receipt, terminalLimit) => this.#database.transaction(() => {
54
72
  const row = { ...receipt, state: legacyState(receipt) };
55
73
  this.#database.orm
@@ -1 +1 @@
1
- {"version":3,"file":"execution-receipt-table.js","sourceRoot":"","sources":["../../../../src/engine/storage/session/execution-receipt-table.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"execution-receipt-table.js","sourceRoot":"","sources":["../../../../src/engine/storage/session/execution-receipt-table.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"local-databases.d.ts","sourceRoot":"","sources":["../../../../src/engine/storage/sqlite/local-databases.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,MAAM,WAAW,2BAA2B;IACxC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC7B;AAED,mGAAmG;AACnG,wBAAgB,2BAA2B,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,2BAA2B,CAMlH;AAED,eAAO,MAAM,sBAAsB,SAAU,MAAM,KAAG,mBAC8B,CAAC;AAErF,eAAO,MAAM,6BAA6B,SAAU,MAAM,KAAG,mBAKvD,CAAC"}
1
+ {"version":3,"file":"local-databases.d.ts","sourceRoot":"","sources":["../../../../src/engine/storage/sqlite/local-databases.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAA6B,MAAM,4BAA4B,CAAC;AAE5F,MAAM,WAAW,2BAA2B;IACxC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC7B;AAED,mGAAmG;AACnG,wBAAgB,2BAA2B,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,2BAA2B,CAMlH;AAED,eAAO,MAAM,sBAAsB,SAAU,MAAM,KAAG,mBAajD,CAAC;AAEN,eAAO,MAAM,6BAA6B,SAAU,MAAM,KAAG,mBAKvD,CAAC"}
@@ -11,7 +11,12 @@ export function channelSessionDatabasePaths(stateDirectory, channelId) {
11
11
  sessions: join(stateDirectory, "sessions", `${channelHash}.sqlite`),
12
12
  };
13
13
  }
14
- export const openAcpSessionDatabase = (path) => new LocalSqliteDatabase(path, "ACP Session database", acpSessionStoreMigrations);
14
+ export const openAcpSessionDatabase = (path) => new LocalSqliteDatabase(path, "ACP Session database", acpSessionStoreMigrations.map((migration) => migration.name === "0009_receipt_admission_order.sql"
15
+ ? {
16
+ ...migration,
17
+ compatibleColumn: { table: "execution_receipt", column: "admission_order" },
18
+ }
19
+ : migration));
15
20
  export const openSessionEventCacheDatabase = (path) => new LocalSqliteDatabase(path, "V2 Session event cache", sessionEventCacheMigrations, [
16
21
  "PRAGMA journal_mode = WAL",
17
22
  "PRAGMA synchronous = OFF",
@@ -1 +1 @@
1
- {"version":3,"file":"local-databases.js","sourceRoot":"","sources":["../../../../src/engine/storage/sqlite/local-databases.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,yBAAyB,EAAE,MAAM,iDAAiD,CAAC;AAC5F,OAAO,EAAE,2BAA2B,EAAE,MAAM,mDAAmD,CAAC;AAChG,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAOjE,mGAAmG;AACnG,MAAM,UAAU,2BAA2B,CAAC,cAAsB,EAAE,SAAiB;IACjF,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACzE,OAAO;QACH,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,UAAU,EAAE,GAAG,WAAW,gBAAgB,CAAC;QACxE,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,UAAU,EAAE,GAAG,WAAW,SAAS,CAAC;KACtE,CAAC;AACN,CAAC;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,IAAY,EAAuB,EAAE,CACxE,IAAI,mBAAmB,CAAC,IAAI,EAAE,sBAAsB,EAAE,yBAAyB,CAAC,CAAC;AAErF,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,IAAY,EAAuB,EAAE,CAC/E,IAAI,mBAAmB,CAAC,IAAI,EAAE,wBAAwB,EAAE,2BAA2B,EAAE;IACjF,2BAA2B;IAC3B,0BAA0B;IAC1B,2BAA2B;CAC9B,CAAC,CAAC"}
1
+ {"version":3,"file":"local-databases.js","sourceRoot":"","sources":["../../../../src/engine/storage/sqlite/local-databases.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,yBAAyB,EAAE,MAAM,iDAAiD,CAAC;AAC5F,OAAO,EAAE,2BAA2B,EAAE,MAAM,mDAAmD,CAAC;AAChG,OAAO,EAAE,mBAAmB,EAA6B,MAAM,4BAA4B,CAAC;AAO5F,mGAAmG;AACnG,MAAM,UAAU,2BAA2B,CAAC,cAAsB,EAAE,SAAiB;IACjF,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACzE,OAAO;QACH,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,UAAU,EAAE,GAAG,WAAW,gBAAgB,CAAC;QACxE,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,UAAU,EAAE,GAAG,WAAW,SAAS,CAAC;KACtE,CAAC;AACN,CAAC;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,IAAY,EAAuB,EAAE,CACxE,IAAI,mBAAmB,CACnB,IAAI,EACJ,sBAAsB,EACtB,yBAAyB,CAAC,GAAG,CACzB,CAAC,SAAS,EAAwB,EAAE,CAChC,SAAS,CAAC,IAAI,KAAK,kCAAkC;IACjD,CAAC,CAAC;QACI,GAAG,SAAS;QACZ,gBAAgB,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,iBAAiB,EAAE;KAC9E;IACH,CAAC,CAAC,SAAS,CACtB,CACJ,CAAC;AAEN,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,IAAY,EAAuB,EAAE,CAC/E,IAAI,mBAAmB,CAAC,IAAI,EAAE,wBAAwB,EAAE,2BAA2B,EAAE;IACjF,2BAA2B;IAC3B,0BAA0B;IAC1B,2BAA2B;CAC9B,CAAC,CAAC"}
@@ -2,6 +2,11 @@ import { type NodeSQLiteDatabase } from "drizzle-orm/node-sqlite";
2
2
  export interface LocalSqliteMigration {
3
3
  readonly name: string;
4
4
  readonly sql: string;
5
+ /** A single optional column that old readers can ignore, without raising their version floor. */
6
+ readonly compatibleColumn?: {
7
+ readonly table: string;
8
+ readonly column: string;
9
+ };
5
10
  }
6
11
  export declare class LocalSqliteDatabase {
7
12
  #private;
@@ -1 +1 @@
1
- {"version":3,"file":"local-sqlite-database.d.ts","sourceRoot":"","sources":["../../../../src/engine/storage/sqlite/local-sqlite-database.ts"],"names":[],"mappings":"AAGA,OAAO,EAAW,KAAK,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG3E,MAAM,WAAW,oBAAoB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,mBAAmB;;IAC5B,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAC;IAGjC,YACI,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,SAAS,oBAAoB,EAAE,EAC3C,OAAO,GAAE,SAAS,MAAM,EAAO,EAelC;IAqBD,QAAQ,CAAC,WAAW,GAAI,MAAM,aAAa,MAAM,MAAM,KAAG,MAAM,CAU9D;IAEF;;;OAGG;IACH,QAAQ,CAAC,IAAI,QAAS,MAAM,KAAG,IAAI,CAEjC;IAEF,QAAQ,CAAC,KAAK,QAAO,IAAI,CAAyB;CACrD"}
1
+ {"version":3,"file":"local-sqlite-database.d.ts","sourceRoot":"","sources":["../../../../src/engine/storage/sqlite/local-sqlite-database.ts"],"names":[],"mappings":"AAGA,OAAO,EAAW,KAAK,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG3E,MAAM,WAAW,oBAAoB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,iGAAiG;IACjG,QAAQ,CAAC,gBAAgB,CAAC,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CACnF;AAED,qBAAa,mBAAmB;;IAC5B,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAC;IAGjC,YACI,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,SAAS,oBAAoB,EAAE,EAC3C,OAAO,GAAE,SAAS,MAAM,EAAO,EAelC;IAgCD,QAAQ,CAAC,WAAW,GAAI,MAAM,aAAa,MAAM,MAAM,KAAG,MAAM,CAU9D;IAEF;;;OAGG;IACH,QAAQ,CAAC,IAAI,QAAS,MAAM,KAAG,IAAI,CAEjC;IAEF,QAAQ,CAAC,KAAK,QAAO,IAAI,CAAyB;CACrD"}
@@ -35,6 +35,15 @@ export class LocalSqliteDatabase {
35
35
  throw new Error(`The ${label} migration is unavailable`);
36
36
  }
37
37
  this.transaction(() => {
38
+ if (migration.compatibleColumn !== undefined) {
39
+ const { table, column } = migration.compatibleColumn;
40
+ if (this.#sqlite
41
+ .prepare("SELECT name FROM pragma_table_info(?) WHERE name = ?")
42
+ .get(table, column) === undefined) {
43
+ this.#sqlite.exec(migration.sql);
44
+ }
45
+ return;
46
+ }
38
47
  this.#sqlite.exec(migration.sql);
39
48
  this.#sqlite.exec(`PRAGMA user_version = ${index + 1}`);
40
49
  });
@@ -1 +1 @@
1
- {"version":3,"file":"local-sqlite-database.js","sourceRoot":"","sources":["../../../../src/engine/storage/sqlite/local-sqlite-database.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local-sqlite-database.js","sourceRoot":"","sources":["../../../../src/engine/storage/sqlite/local-sqlite-database.ts"],"names":[],"mappings":"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"}
package/dist/engine.js CHANGED
@@ -77572,6 +77572,10 @@ var acpSessionStoreMigrations = [
77572
77572
  {
77573
77573
  "name": "0008_execution_identity.sql",
77574
77574
  "sql": "CREATE TABLE `execution_identity` (\n `command_id` text PRIMARY KEY NOT NULL,\n `session_id` text NOT NULL,\n `command_hash` text NOT NULL\n);\n"
77575
+ },
77576
+ {
77577
+ "name": "0009_receipt_admission_order.sql",
77578
+ "sql": "ALTER TABLE `execution_receipt` ADD `admission_order` integer;"
77575
77579
  }
77576
77580
  ];
77577
77581
 
@@ -82484,6 +82488,13 @@ var LocalSqliteDatabase = class {
82484
82488
  throw new Error(`The ${label} migration is unavailable`);
82485
82489
  }
82486
82490
  this.transaction(() => {
82491
+ if (migration.compatibleColumn !== void 0) {
82492
+ const { table, column } = migration.compatibleColumn;
82493
+ if (this.#sqlite.prepare("SELECT name FROM pragma_table_info(?) WHERE name = ?").get(table, column) === void 0) {
82494
+ this.#sqlite.exec(migration.sql);
82495
+ }
82496
+ return;
82497
+ }
82487
82498
  this.#sqlite.exec(migration.sql);
82488
82499
  this.#sqlite.exec(`PRAGMA user_version = ${index2 + 1}`);
82489
82500
  });
@@ -82518,7 +82529,16 @@ function channelSessionDatabasePaths(stateDirectory, channelId) {
82518
82529
  sessions: join22(stateDirectory, "sessions", `${channelHash}.sqlite`)
82519
82530
  };
82520
82531
  }
82521
- var openAcpSessionDatabase = (path7) => new LocalSqliteDatabase(path7, "ACP Session database", acpSessionStoreMigrations);
82532
+ var openAcpSessionDatabase = (path7) => new LocalSqliteDatabase(
82533
+ path7,
82534
+ "ACP Session database",
82535
+ acpSessionStoreMigrations.map(
82536
+ (migration) => migration.name === "0009_receipt_admission_order.sql" ? {
82537
+ ...migration,
82538
+ compatibleColumn: { table: "execution_receipt", column: "admission_order" }
82539
+ } : migration
82540
+ )
82541
+ );
82522
82542
  var openSessionEventCacheDatabase = (path7) => new LocalSqliteDatabase(path7, "V2 Session event cache", sessionEventCacheMigrations, [
82523
82543
  "PRAGMA journal_mode = WAL",
82524
82544
  "PRAGMA synchronous = OFF",
@@ -83824,6 +83844,8 @@ var executionReceipt = sqliteTable("execution_receipt", {
83824
83844
  sessionId: text("session_id").notNull(),
83825
83845
  commandHash: text("command_hash").notNull(),
83826
83846
  attemptId: text("attempt_id").notNull(),
83847
+ // Nullable only for receipts written by older Runtimes; assigned before recovery.
83848
+ admissionOrder: integer2("admission_order"),
83827
83849
  // Compatibility projection for older Runtimes; started and outcome own the facts.
83828
83850
  state: text("state").notNull(),
83829
83851
  started: integer2("started", { mode: "boolean" }).notNull(),
@@ -83878,6 +83900,7 @@ var receiptSchema = external_exports.object({
83878
83900
  sessionId: external_exports.string(),
83879
83901
  commandHash: external_exports.string(),
83880
83902
  attemptId: external_exports.string(),
83903
+ admissionOrder: external_exports.number().int().positive().safe(),
83881
83904
  updatedAt: external_exports.string(),
83882
83905
  started: external_exports.boolean(),
83883
83906
  outcome: external_exports.string().nullable()
@@ -83902,9 +83925,18 @@ var ExecutionReceiptTable = class {
83902
83925
  const row = this.#database.orm.select({ sessionId: executionIdentity.sessionId, commandHash: executionIdentity.commandHash }).from(executionIdentity).where(eq2(executionIdentity.commandId, commandId)).get();
83903
83926
  return row === void 0 ? void 0 : identitySchema.parse(row);
83904
83927
  };
83905
- list = () => receiptSchema.array().parse(
83906
- this.#database.orm.select().from(executionReceipt).orderBy(asc(executionReceipt.updatedAt), asc(executionReceipt.commandId)).all()
83907
- );
83928
+ list = () => this.#database.transaction(() => {
83929
+ const rows = this.#database.orm.select().from(executionReceipt).orderBy(asc(executionReceipt.updatedAt), asc(executionReceipt.commandId)).all();
83930
+ let latestOrder = rows.reduce((latest, row) => Math.max(latest, row.admissionOrder ?? 0), 0);
83931
+ return rows.map((row) => {
83932
+ if (row.admissionOrder !== null) {
83933
+ return receiptSchema.parse(row);
83934
+ }
83935
+ const admissionOrder = ++latestOrder;
83936
+ this.#database.orm.update(executionReceipt).set({ admissionOrder }).where(eq2(executionReceipt.commandId, row.commandId)).run();
83937
+ return receiptSchema.parse({ ...row, admissionOrder });
83938
+ }).sort((left, right) => left.admissionOrder - right.admissionOrder);
83939
+ });
83908
83940
  save = (receipt, terminalLimit) => this.#database.transaction(() => {
83909
83941
  const row = { ...receipt, state: legacyState(receipt) };
83910
83942
  this.#database.orm.insert(executionReceipt).values(row).onConflictDoUpdate({ target: executionReceipt.commandId, set: row }).run();
@@ -87266,6 +87298,13 @@ var ExecutionReceipts = class {
87266
87298
  this.#activeCount += Number(receipt.outcome === null) - Number(wasActive);
87267
87299
  this.#onCount(this.#activeCount);
87268
87300
  };
87301
+ #nextAdmissionOrder = () => {
87302
+ let latest = 0;
87303
+ for (const receipt of this.#executions.values()) {
87304
+ latest = Math.max(latest, receipt.admissionOrder);
87305
+ }
87306
+ return latest + 1;
87307
+ };
87269
87308
  beginShutdown = () => {
87270
87309
  this.#closing = true;
87271
87310
  };
@@ -87300,21 +87339,22 @@ var ExecutionReceipts = class {
87300
87339
  }
87301
87340
  };
87302
87341
  /**
87303
- * How the Session's most recent started command ended. Receipts keep admission order, or the
87304
- * order they last changed after a restart; commands that never started (queued, or reserved for
87305
- * cancellation) are not turns, unless a restart failed them before they could start. Undefined
87306
- * while that command still runs, or when no turn is retained.
87342
+ * How the Session's most recently admitted turn ended. Admission order survives updates and
87343
+ * restarts. Commands that never started (queued, or reserved for cancellation) are not turns,
87344
+ * unless they failed before starting. Undefined while the latest turn runs or none is retained.
87307
87345
  */
87308
87346
  lastTurn = (sessionId) => {
87309
87347
  let last;
87348
+ let latestOrder = 0;
87310
87349
  for (const [commandId, receipt] of this.#executions) {
87311
87350
  if (receipt.sessionId !== sessionId) {
87312
87351
  continue;
87313
87352
  }
87314
87353
  const outcome2 = receipt.outcome === null ? void 0 : this.outcome(commandId);
87315
87354
  const failedBeforeStart = outcome2?.type === "lifecycle-metadata" && outcome2.payload.kind === "prompt.failed-before-start";
87316
- if (receipt.started || failedBeforeStart) {
87355
+ if ((receipt.started || failedBeforeStart) && receipt.admissionOrder > latestOrder) {
87317
87356
  last = commandId;
87357
+ latestOrder = receipt.admissionOrder;
87318
87358
  }
87319
87359
  }
87320
87360
  const outcome = last === void 0 ? void 0 : this.outcome(last);
@@ -87354,6 +87394,7 @@ var ExecutionReceipts = class {
87354
87394
  })
87355
87395
  ).digest("hex");
87356
87396
  this.#save(commandId, {
87397
+ admissionOrder: this.#nextAdmissionOrder(),
87357
87398
  attemptId: randomUUID15(),
87358
87399
  commandHash,
87359
87400
  sessionId,
@@ -87438,6 +87479,7 @@ var ExecutionReceipts = class {
87438
87479
  }
87439
87480
  const attemptId = randomUUID15();
87440
87481
  this.#save(commandId, {
87482
+ admissionOrder: this.#nextAdmissionOrder(),
87441
87483
  attemptId,
87442
87484
  commandHash,
87443
87485
  sessionId,
@@ -90755,7 +90797,7 @@ var sessionPromptCommand = {
90755
90797
  // package.json
90756
90798
  var package_default = {
90757
90799
  name: "@moxt-ai/mobius",
90758
- version: "0.0.349",
90800
+ version: "0.0.350",
90759
90801
  description: "Mobius CLI for pairing and running local AI agent services.",
90760
90802
  type: "module",
90761
90803
  bin: {