@claudexor/daemon 4.7.0 → 4.8.2

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 (169) hide show
  1. package/dist/client.d.ts +203 -1
  2. package/dist/client.d.ts.map +1 -1
  3. package/dist/client.js +14 -0
  4. package/dist/client.js.map +1 -1
  5. package/dist/command-authority.d.ts +2 -0
  6. package/dist/command-authority.d.ts.map +1 -1
  7. package/dist/command-authority.js.map +1 -1
  8. package/dist/command-rpc.d.ts +1 -1
  9. package/dist/command-rpc.d.ts.map +1 -1
  10. package/dist/command-rpc.js +5 -2
  11. package/dist/command-rpc.js.map +1 -1
  12. package/dist/daemon-health.d.ts +30 -0
  13. package/dist/daemon-health.d.ts.map +1 -1
  14. package/dist/deferred-message-owner.d.ts +24 -0
  15. package/dist/deferred-message-owner.d.ts.map +1 -0
  16. package/dist/deferred-message-owner.js +12 -0
  17. package/dist/deferred-message-owner.js.map +1 -0
  18. package/dist/deferred-messages.d.ts +182 -0
  19. package/dist/deferred-messages.d.ts.map +1 -0
  20. package/dist/deferred-messages.js +285 -0
  21. package/dist/deferred-messages.js.map +1 -0
  22. package/dist/enqueue-command.d.ts +19 -0
  23. package/dist/enqueue-command.d.ts.map +1 -0
  24. package/dist/enqueue-command.js +37 -0
  25. package/dist/enqueue-command.js.map +1 -0
  26. package/dist/exact-retry-defaults.d.ts +7 -0
  27. package/dist/exact-retry-defaults.d.ts.map +1 -0
  28. package/dist/exact-retry-defaults.js +32 -0
  29. package/dist/exact-retry-defaults.js.map +1 -0
  30. package/dist/index.d.ts +5 -0
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +3 -0
  33. package/dist/index.js.map +1 -1
  34. package/dist/interactions.d.ts +7 -1
  35. package/dist/interactions.d.ts.map +1 -1
  36. package/dist/interactions.js +40 -0
  37. package/dist/interactions.js.map +1 -1
  38. package/dist/quota-registry-support.d.ts +2 -2
  39. package/dist/quota-registry.d.ts +5 -5
  40. package/dist/run-observation.d.ts +7 -0
  41. package/dist/run-observation.d.ts.map +1 -0
  42. package/dist/run-observation.js +111 -0
  43. package/dist/run-observation.js.map +1 -0
  44. package/dist/server.d.ts +6 -1
  45. package/dist/server.d.ts.map +1 -1
  46. package/dist/server.js +56 -41
  47. package/dist/server.js.map +1 -1
  48. package/dist/store/blob-files.d.ts +2 -2
  49. package/dist/store/blob-files.d.ts.map +1 -1
  50. package/dist/store/blob-files.js +1 -0
  51. package/dist/store/blob-files.js.map +1 -1
  52. package/dist/store/command-prune.d.ts.map +1 -1
  53. package/dist/store/command-prune.js +28 -7
  54. package/dist/store/command-prune.js.map +1 -1
  55. package/dist/store/command-queries.d.ts +6 -2
  56. package/dist/store/command-queries.d.ts.map +1 -1
  57. package/dist/store/command-queries.js +64 -1
  58. package/dist/store/command-queries.js.map +1 -1
  59. package/dist/store/command-rows.d.ts +1 -0
  60. package/dist/store/command-rows.d.ts.map +1 -1
  61. package/dist/store/command-rows.js +5 -2
  62. package/dist/store/command-rows.js.map +1 -1
  63. package/dist/store/commands.d.ts +22 -0
  64. package/dist/store/commands.d.ts.map +1 -1
  65. package/dist/store/commands.js +26 -13
  66. package/dist/store/commands.js.map +1 -1
  67. package/dist/store/deferred-message-rows.d.ts +23 -0
  68. package/dist/store/deferred-message-rows.d.ts.map +1 -0
  69. package/dist/store/deferred-message-rows.js +59 -0
  70. package/dist/store/deferred-message-rows.js.map +1 -0
  71. package/dist/store/deferred-messages.d.ts +58 -0
  72. package/dist/store/deferred-messages.d.ts.map +1 -0
  73. package/dist/store/deferred-messages.js +439 -0
  74. package/dist/store/deferred-messages.js.map +1 -0
  75. package/dist/store/deferred-retention.d.ts +6 -0
  76. package/dist/store/deferred-retention.d.ts.map +1 -0
  77. package/dist/store/deferred-retention.js +30 -0
  78. package/dist/store/deferred-retention.js.map +1 -0
  79. package/dist/store/generations.d.ts.map +1 -1
  80. package/dist/store/generations.js +7 -0
  81. package/dist/store/generations.js.map +1 -1
  82. package/dist/store/idempotency.d.ts +2 -2
  83. package/dist/store/idempotency.d.ts.map +1 -1
  84. package/dist/store/idempotency.js +4 -2
  85. package/dist/store/idempotency.js.map +1 -1
  86. package/dist/store/importer.js +3 -1
  87. package/dist/store/importer.js.map +1 -1
  88. package/dist/store/interactions.d.ts +2 -1
  89. package/dist/store/interactions.d.ts.map +1 -1
  90. package/dist/store/interactions.js +23 -2
  91. package/dist/store/interactions.js.map +1 -1
  92. package/dist/store/mutation.d.ts +5 -0
  93. package/dist/store/mutation.d.ts.map +1 -1
  94. package/dist/store/mutation.js +13 -0
  95. package/dist/store/mutation.js.map +1 -1
  96. package/dist/store/observation-notices.d.ts +14 -0
  97. package/dist/store/observation-notices.d.ts.map +1 -0
  98. package/dist/store/observation-notices.js +25 -0
  99. package/dist/store/observation-notices.js.map +1 -0
  100. package/dist/store/publish-blob.d.ts +4 -0
  101. package/dist/store/publish-blob.d.ts.map +1 -1
  102. package/dist/store/publish-blob.js +33 -10
  103. package/dist/store/publish-blob.js.map +1 -1
  104. package/dist/store/resource-rows.d.ts +6 -0
  105. package/dist/store/resource-rows.d.ts.map +1 -1
  106. package/dist/store/resource-rows.js.map +1 -1
  107. package/dist/store/resources.d.ts +22 -0
  108. package/dist/store/resources.d.ts.map +1 -1
  109. package/dist/store/resources.js +6 -0
  110. package/dist/store/resources.js.map +1 -1
  111. package/dist/store/retention-changes.d.ts +1 -0
  112. package/dist/store/retention-changes.d.ts.map +1 -1
  113. package/dist/store/retention-changes.js +5 -2
  114. package/dist/store/retention-changes.js.map +1 -1
  115. package/dist/store/retention-generations.d.ts +5 -0
  116. package/dist/store/retention-generations.d.ts.map +1 -1
  117. package/dist/store/retention-generations.js +13 -2
  118. package/dist/store/retention-generations.js.map +1 -1
  119. package/dist/store/retention-pages.d.ts +1 -1
  120. package/dist/store/retention-pages.d.ts.map +1 -1
  121. package/dist/store/retention-pages.js.map +1 -1
  122. package/dist/store/retention-references.d.ts +2 -1
  123. package/dist/store/retention-references.d.ts.map +1 -1
  124. package/dist/store/retention-references.js +5 -0
  125. package/dist/store/retention-references.js.map +1 -1
  126. package/dist/store/retention.d.ts.map +1 -1
  127. package/dist/store/retention.js +5 -0
  128. package/dist/store/retention.js.map +1 -1
  129. package/dist/store/schema.d.ts +6 -2
  130. package/dist/store/schema.d.ts.map +1 -1
  131. package/dist/store/schema.js +59 -5
  132. package/dist/store/schema.js.map +1 -1
  133. package/dist/store/sql-command-router.d.ts +4 -0
  134. package/dist/store/sql-command-router.d.ts.map +1 -1
  135. package/dist/store/sql-command-router.js +18 -0
  136. package/dist/store/sql-command-router.js.map +1 -1
  137. package/dist/store/sql-daemon-services.d.ts.map +1 -1
  138. package/dist/store/sql-daemon-services.js +14 -1
  139. package/dist/store/sql-daemon-services.js.map +1 -1
  140. package/dist/store/sql-validation.d.ts.map +1 -1
  141. package/dist/store/sql-validation.js +8 -0
  142. package/dist/store/sql-validation.js.map +1 -1
  143. package/dist/store/store.d.ts +3 -1
  144. package/dist/store/store.d.ts.map +1 -1
  145. package/dist/store/store.js +2 -0
  146. package/dist/store/store.js.map +1 -1
  147. package/dist/store/thread-history-read.d.ts +81 -0
  148. package/dist/store/thread-history-read.d.ts.map +1 -0
  149. package/dist/store/thread-history-read.js +215 -0
  150. package/dist/store/thread-history-read.js.map +1 -0
  151. package/dist/store/thread-prompt-read.d.ts +7 -0
  152. package/dist/store/thread-prompt-read.d.ts.map +1 -0
  153. package/dist/store/thread-prompt-read.js +62 -0
  154. package/dist/store/thread-prompt-read.js.map +1 -0
  155. package/dist/store/upload-binding-retention.d.ts +3 -3
  156. package/dist/store/upload-binding-retention.d.ts.map +1 -1
  157. package/dist/store/upload-binding-retention.js +2 -1
  158. package/dist/store/upload-binding-retention.js.map +1 -1
  159. package/dist/store/upload-imports.d.ts +21 -0
  160. package/dist/store/upload-imports.d.ts.map +1 -0
  161. package/dist/store/upload-imports.js +96 -0
  162. package/dist/store/upload-imports.js.map +1 -0
  163. package/dist/store/uploads.d.ts +7 -2
  164. package/dist/store/uploads.d.ts.map +1 -1
  165. package/dist/store/uploads.js +44 -10
  166. package/dist/store/uploads.js.map +1 -1
  167. package/dist/store-contracts.d.ts +14 -1
  168. package/dist/store-contracts.d.ts.map +1 -1
  169. package/package.json +5 -5
@@ -4,6 +4,7 @@ import { deleteUnownedInlineInTx, sha256Hex } from "./blob-files.js";
4
4
  import { runMutation } from "./mutation.js";
5
5
  import { PublishBlob } from "./publish-blob.js";
6
6
  import { assertContentAllowed, assertModelRef, assertResourceId, payloadRef, putResourceInTx, readResourceRow, readUploadRow, resourceError, resourceSha, purposeMismatch, sensitiveResourceError, verifiedResourceBytes, } from "./resource-rows.js";
7
+ import { SqlUploadImports } from "./upload-imports.js";
7
8
  import { SqlUploads } from "./uploads.js";
8
9
  /** Resource metadata and replay live in the one engine DB; only immutable bytes are files. */
9
10
  export class SqlResourceStore {
@@ -12,6 +13,7 @@ export class SqlResourceStore {
12
13
  log;
13
14
  uploads;
14
15
  publisher;
16
+ imports;
15
17
  cleanup = new Set();
16
18
  constructor(store, blobs, obligations, log = console.warn) {
17
19
  this.store = store;
@@ -19,6 +21,7 @@ export class SqlResourceStore {
19
21
  this.log = log;
20
22
  this.uploads = new SqlUploads(store, (work) => this.defer(work));
21
23
  this.publisher = new PublishBlob(store, blobs, obligations, this.uploads, (work) => this.defer(work));
24
+ this.imports = new SqlUploadImports(store, this.uploads, this.publisher);
22
25
  }
23
26
  create(raw, key) {
24
27
  return this.uploads.create(raw, key);
@@ -35,6 +38,9 @@ export class SqlResourceStore {
35
38
  finalize(id, expectedSha256, key) {
36
39
  return this.publisher.finalize(id, expectedSha256, key);
37
40
  }
41
+ importUpload(raw, key) {
42
+ return this.imports.import(raw, key);
43
+ }
38
44
  resolve(refs) {
39
45
  return (refs ?? []).map(({ resourceId }) => {
40
46
  const resource = this.metadata(resourceId);
@@ -1 +1 @@
1
- {"version":3,"file":"resources.js","sourceRoot":"","sources":["../../src/store/resources.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resources.js","sourceRoot":"","sources":["../../src/store/resources.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,eAAe,EACf,eAAe,GAEhB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EAAa,uBAAuB,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,eAAe,EACf,aAAa,EACb,aAAa,EACb,WAAW,EACX,eAAe,EACf,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,8FAA8F;AAC9F,MAAM,OAAO,gBAAgB;IAOR,KAAK;IACL,KAAK;IAEL,GAAG;IATL,OAAO,CAAa;IACpB,SAAS,CAAc;IACvB,OAAO,CAAmB;IAC1B,OAAO,GAAG,IAAI,GAAG,EAAiB,CAAC;IAEpD,YACmB,KAAkB,EAClB,KAAgB,EACjC,WAAwB,EACP,GAAG,GAA2B,OAAO,CAAC,IAAI;qBAH1C,KAAK;qBACL,KAAK;mBAEL,GAAG;QAEpB,IAAI,CAAC,OAAO,GAAG,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,SAAS,GAAG,IAAI,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CACjF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CACjB,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC3E,CAAC;IACD,MAAM,CAAC,GAAY,EAAE,GAAW;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACvC,CAAC;IACD,MAAM,CAAC,EAAU;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC;IACD,KAAK,CAAC,EAAU,EAAE,MAAiC;QACjD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IACD,MAAM,CAAC,EAAU;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC;IACD,QAAQ,CAAC,EAAU,EAAE,cAAkC,EAAE,GAAW;QAClE,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,cAAc,EAAE,GAAG,CAAC,CAAC;IAC1D,CAAC;IACD,YAAY,CAAC,GAAY,EAAE,GAAW;QACpC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,CAAC,IAAyC;QAC/C,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE;YACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YAC3C,IAAI,QAAQ,CAAC,OAAO,KAAK,OAAO;gBAAE,MAAM,eAAe,EAAE,CAAC;YAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;YACxD,MAAM,KAAK,GAAG,qBAAqB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YACpD,IAAI,uBAAuB,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,SAAS;gBAC/D,MAAM,sBAAsB,EAAE,CAAC;YACjC,oBAAoB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACtC,OAAO,UAAU,CAAC,KAAK,CAAC;gBACtB,WAAW,EAAE,QAAQ,CAAC,UAAU;gBAChC,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,UAAU,EAAE,QAAQ,CAAC,SAAS;gBAC9B,IAAI;aACL,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,SAAS,CAAC,GAAoB;QAC5B,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC/C,cAAc,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC9B,OAAO,qBAAqB,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrF,CAAC;IACD,YAAY,CAAC,KAAiB;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YACjC,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,kBAAkB;YACxB,IAAI,EAAE,mBAAmB;YACzB,SAAS,EAAE,KAAK,CAAC,UAAU;SAC5B,CAAC,CAAC;QACH,IAAI,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAC9C,OAAO,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,YAAY;gBAC3D,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACxC,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IACD,YAAY,CAAC,GAAoB;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAChC,CAAC;IAED,2FAA2F;IAC3F,WAAW,CAAC,GAAoB,EAAE,SAAiB;QACjD,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAC1C,CAAC;IAED,kBAAkB;QAChB,OACE,IAAI,CAAC,KAAK;aACP,OAAO,CAAC,+EAA+E,CAAC;aACxF,GAAG,EACP,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACZ,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC3F,OAAO,EAAE,GAAG,UAAU,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC;QACpE,CAAC,CAAC,CAAC;IACL,CAAC;IACD,mBAAmB;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACvC,CAAC;IACD,oBAAoB,CAAC,IAA8B;QACjD,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,uGAAuG;IACvG,KAAK,CAAC,YAAY;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI;YAAE,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5D,CAAC;IAEO,OAAO,CAAC,GAAoB,EAAE,KAA6B,EAAE,SAAkB;QACrF,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACjC,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;QACxD,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,KAAK,UAAU,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO;QACxE,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAClC,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACtC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE;YAC7B,eAAe,CAAC,EAAE,EAAE;gBAClB,GAAG,GAAG;gBACN,KAAK;gBACL,UAAU,EAAE,SAAS,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;gBAC/C,SAAS,EAAE,SAAS,IAAI,GAAG,CAAC,SAAS;aACtC,CAAC,CAAC;YACH,uBAAuB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YACjC,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACjC,CAAC;IACO,QAAQ,CAAC,EAAU;QACzB,gBAAgB,CAAC,EAAE,CAAC,CAAC;QACrB,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,KAAK,UAAU,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS;YAC7D,MAAM,aAAa,CAAC,qBAAqB,EAAE,EAAE,EAAE,GAAG,EAAE,oBAAoB,CAAC,CAAC;QAC5E,IAAI,GAAG,CAAC,KAAK,KAAK,YAAY;YAC5B,MAAM,aAAa,CAAC,8BAA8B,EAAE,GAAG,EAAE,sBAAsB,CAAC,CAAC;QACnF,OAAO,GAAG,CAAC,QAAQ,CAAC;IACtB,CAAC;IACO,KAAK,CAAC,IAAsB;QAClC,MAAM,OAAO,GAAG,IAAI;aACjB,IAAI,CACH,GAAG,EAAE,CAAC,SAAS,EACf,CAAC,KAAc,EAAE,EAAE;YACjB,IAAI,CAAC,GAAG,CACN,qCAAqC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC9F,CAAC;QACJ,CAAC,CACF;aACA,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;CACF"}
@@ -5,6 +5,7 @@ declare const columns: {
5
5
  readonly session: readonly ["id", "thread_id", "harness_id", "body"];
6
6
  readonly command: readonly ["id", "kind", "run_id", "run_dir", "state", "finished_at", "continue_from", "params_sha"];
7
7
  readonly interaction: readonly ["id", "run_id", "state"];
8
+ readonly deferred_message: readonly ["id", "pid", "predecessor_job_id", "successor_job_id", "state"];
8
9
  readonly project: readonly ["id", "pid", "root", "status", "current_pid"];
9
10
  readonly partition: readonly ["id", "name", "status", "project_id"];
10
11
  readonly blob: readonly ["sha256", "size", "inline"];
@@ -1 +1 @@
1
- {"version":3,"file":"retention-changes.d.ts","sourceRoot":"","sources":["../../src/store/retention-changes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAK9C,QAAA,MAAM,OAAO;aACX,MAAM,YAAG,IAAI,EAAE,OAAO,EAAE,MAAM;aAC9B,IAAI,YAAG,IAAI,EAAE,WAAW,EAAE,MAAM;aAChC,OAAO,YAAG,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM;aACjD,OAAO,YACL,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,SAAS,EACT,OAAO,EACP,aAAa,EACb,eAAe,EACf,YAAY;aAEd,WAAW,YAAG,IAAI,EAAE,QAAQ,EAAE,OAAO;aACrC,OAAO,YAAG,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa;aACtD,SAAS,YAAG,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY;aAChD,IAAI,YAAG,QAAQ,EAAE,MAAM,EAAE,QAAQ;CACzB,CAAC;AACX,KAAK,KAAK,GAAG,MAAM,OAAO,OAAO,CAAC;AAClC,KAAK,MAAM,GAAG;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAsC9D;kFACkF;AAClF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,WAAW;IAoBzC,OAAO,OAAO,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,WAAW,WAAW;IASlE,OAAO,OAAO,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI;IAQtC,KAAK;EAMR"}
1
+ {"version":3,"file":"retention-changes.d.ts","sourceRoot":"","sources":["../../src/store/retention-changes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAK9C,QAAA,MAAM,OAAO;aACX,MAAM,YAAG,IAAI,EAAE,OAAO,EAAE,MAAM;aAC9B,IAAI,YAAG,IAAI,EAAE,WAAW,EAAE,MAAM;aAChC,OAAO,YAAG,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM;aACjD,OAAO,YACL,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,SAAS,EACT,OAAO,EACP,aAAa,EACb,eAAe,EACf,YAAY;aAEd,WAAW,YAAG,IAAI,EAAE,QAAQ,EAAE,OAAO;aACrC,gBAAgB,YAAG,IAAI,EAAE,KAAK,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,OAAO;aACjF,OAAO,YAAG,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa;aACtD,SAAS,YAAG,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY;aAChD,IAAI,YAAG,QAAQ,EAAE,MAAM,EAAE,QAAQ;CACzB,CAAC;AACX,KAAK,KAAK,GAAG,MAAM,OAAO,OAAO,CAAC;AAClC,KAAK,MAAM,GAAG;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAwC9D;kFACkF;AAClF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,WAAW;IAoBzC,OAAO,OAAO,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,WAAW,WAAW;IASlE,OAAO,OAAO,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI;IAQtC,KAAK;EAMR"}
@@ -17,6 +17,7 @@ const columns = {
17
17
  "params_sha",
18
18
  ],
19
19
  interaction: ["id", "run_id", "state"],
20
+ deferred_message: ["id", "pid", "predecessor_job_id", "successor_job_id", "state"],
20
21
  project: ["id", "pid", "root", "status", "current_pid"],
21
22
  partition: ["id", "name", "status", "project_id"],
22
23
  blob: ["sha256", "size", "inline"],
@@ -27,8 +28,10 @@ function observe(store, listener) {
27
28
  if (!listeners) {
28
29
  const targets = new Set();
29
30
  store.db.function("disk_retention_changed", (table, id, operation) => {
31
+ // Node 24.15 truncates TEXT at NUL; interaction keys must arrive as bytes.
32
+ const decodedId = Buffer.from(id).toString("utf8");
30
33
  for (const target of targets)
31
- target({ table: table, id: String(id), operation: String(operation) });
34
+ target({ table: table, id: decodedId, operation: String(operation) });
32
35
  return null;
33
36
  });
34
37
  for (const [table, fields] of Object.entries(columns)) {
@@ -44,7 +47,7 @@ function observe(store, listener) {
44
47
  const rows = operation === "UPDATE" ? ["OLD", "NEW"] : [operation === "DELETE" ? "OLD" : "NEW"];
45
48
  store.exec(`CREATE TEMP TRIGGER disk_retention_${table}_${operation}
46
49
  AFTER ${operation} ON main.${table} ${changed} BEGIN
47
- ${rows.map((row) => `SELECT disk_retention_changed('${table}',${row}.${key},'${operation}');`).join("\n")}
50
+ ${rows.map((row) => `SELECT disk_retention_changed('${table}',CAST(${row}.${key} AS BLOB),'${operation}');`).join("\n")}
48
51
  END`);
49
52
  }
50
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"retention-changes.js","sourceRoot":"","sources":["../../src/store/retention-changes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"retention-changes.js","sourceRoot":"","sources":["../../src/store/retention-changes.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,11 @@ export declare function retentionGenerations(store: EngineStore): {
8
8
  archivedProjectRoots: Set<string>;
9
9
  protectedProjectRoots: Set<string>;
10
10
  errors: string[];
11
+ holds: {
12
+ class: "anchor_references_unreadable" | "cleanup_suppressed" | "missing_partition" | "namespace_unreadable" | "native_home_veto" | "recovery_pending" | "references_changed" | "unbound_active_registration";
13
+ count: number;
14
+ example: string;
15
+ }[];
11
16
  blocked: string | undefined;
12
17
  };
13
18
  //# sourceMappingURL=retention-generations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"retention-generations.d.ts","sourceRoot":"","sources":["../../src/store/retention-generations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;yDAEyD;AACzD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,WAAW;oBAmB9B,MAAM;;;;;;EA2D9B"}
1
+ {"version":3,"file":"retention-generations.d.ts","sourceRoot":"","sources":["../../src/store/retention-generations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG9C;;yDAEyD;AACzD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,WAAW;oBAmB9B,MAAM;;;;;;;;;;;EAmE9B"}
@@ -31,6 +31,7 @@ export function retentionGenerations(store) {
31
31
  .map((row) => row.root));
32
32
  const protectedProjectRoots = new Set();
33
33
  const errors = [];
34
+ const holds = [];
34
35
  let blocked;
35
36
  for (const row of rows) {
36
37
  if (retained(row.id) || retired(row))
@@ -39,14 +40,23 @@ export function retentionGenerations(store) {
39
40
  // Scope roots do not bound dependencies: a continuation may name any namespace.
40
41
  blocked ??= reason;
41
42
  errors.push(`all namespaces kept: ${reason}`);
43
+ holds.push({ class: "recovery_pending", count: 1, example: reason });
42
44
  }
45
+ const bindingHolds = new Set();
43
46
  for (const row of store
44
47
  .prepare(`SELECT p.root,p.current_pid FROM project p
45
48
  JOIN partition g ON g.id=p.pid LEFT JOIN partition q ON q.id=p.current_pid
46
- WHERE g.status IN ('ready','archived') AND q.id IS NULL`)
49
+ WHERE g.status IN ('ready','archived') AND
50
+ ((p.current_pid IS NOT NULL AND q.id IS NULL) OR
51
+ (p.status='active' AND p.current_pid IS NULL))`)
47
52
  .all()) {
53
+ const reason = row.current_pid === null ? "unbound_active_registration" : "missing_partition";
54
+ const holdKey = `${reason}\0${row.root}`;
55
+ if (!bindingHolds.has(holdKey))
56
+ holds.push({ class: reason, count: 1, example: row.root });
57
+ bindingHolds.add(holdKey);
48
58
  protectedProjectRoots.add(row.root);
49
- errors.push(`namespace ${row.root} kept: missing partition ${row.current_pid} awaits journal recovery`);
59
+ errors.push(`namespace ${row.root} kept: ${reason} (${row.current_pid ?? "NULL"})`);
50
60
  }
51
61
  return {
52
62
  retained,
@@ -54,6 +64,7 @@ export function retentionGenerations(store) {
54
64
  archivedProjectRoots,
55
65
  protectedProjectRoots,
56
66
  errors,
67
+ holds,
57
68
  blocked,
58
69
  };
59
70
  }
@@ -1 +1 @@
1
- {"version":3,"file":"retention-generations.js","sourceRoot":"","sources":["../../src/store/retention-generations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"retention-generations.js","sourceRoot":"","sources":["../../src/store/retention-generations.ts"],"names":[],"mappings":"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"}
@@ -2,5 +2,5 @@ import type { EngineStore } from "./store.js";
2
2
  /** Bound each synchronous SQLite read, without holding a cursor/transaction
3
3
  * across admission. Filter after paging so a sparse predicate cannot turn one
4
4
  * page into an unbounded scan. This is an I/O batch, not a retention policy. */
5
- export declare function retentionPages<T>(store: EngineStore, table: "thread" | "command", columns: string, signal?: AbortSignal): AsyncGenerator<T[]>;
5
+ export declare function retentionPages<T>(store: EngineStore, table: "thread" | "command" | "deferred_message", columns: string, signal?: AbortSignal): AsyncGenerator<T[]>;
6
6
  //# sourceMappingURL=retention-pages.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"retention-pages.d.ts","sourceRoot":"","sources":["../../src/store/retention-pages.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;gFAEgF;AAChF,wBAAuB,cAAc,CAAC,CAAC,EACrC,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,QAAQ,GAAG,SAAS,EAC3B,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,WAAW,GACnB,cAAc,CAAC,CAAC,EAAE,CAAC,CAcrB"}
1
+ {"version":3,"file":"retention-pages.d.ts","sourceRoot":"","sources":["../../src/store/retention-pages.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;gFAEgF;AAChF,wBAAuB,cAAc,CAAC,CAAC,EACrC,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,QAAQ,GAAG,SAAS,GAAG,kBAAkB,EAChD,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,WAAW,GACnB,cAAc,CAAC,CAAC,EAAE,CAAC,CAcrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"retention-pages.js","sourceRoot":"","sources":["../../src/store/retention-pages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGxE;;gFAEgF;AAChF,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,cAAc,CACnC,KAAkB,EAClB,KAA2B,EAC3B,OAAe,EACf,MAAoB;IAEpB,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CACxB,mCAAmC,OAAO,SAAS,KAAK;4CAChB,CACzC,CAAC;IACF,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,SAAS,CAAC;QACR,MAAM,EAAE,cAAc,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAA2C,CAAC;QACvE,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QACzB,MAAM,IAAI,CAAC;QACX,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,eAAe,CAAC;QAC/C,MAAM,gBAAgB,EAAE,CAAC;IAC3B,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"retention-pages.js","sourceRoot":"","sources":["../../src/store/retention-pages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGxE;;gFAEgF;AAChF,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,cAAc,CACnC,KAAkB,EAClB,KAAgD,EAChD,OAAe,EACf,MAAoB;IAEpB,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CACxB,mCAAmC,OAAO,SAAS,KAAK;4CAChB,CACzC,CAAC;IACF,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,SAAS,CAAC;QACR,MAAM,EAAE,cAAc,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAA2C,CAAC;QACvE,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QACzB,MAAM,IAAI,CAAC;QACX,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,eAAe,CAAC;QAC/C,MAAM,gBAAgB,EAAE,CAAC;IAC3B,CAAC;AACH,CAAC"}
@@ -1,4 +1,4 @@
1
- import { Thread } from "@claudexor/schema";
1
+ import { Thread, type GcHold } from "@claudexor/schema";
2
2
  import type { EngineStore } from "./store.js";
3
3
  export interface DiskRetentionReferences {
4
4
  /** Legacy exact inventory witness; current retirement rechecks changed owners. */
@@ -19,6 +19,7 @@ export interface DiskRetentionReferences {
19
19
  /** Recovery holds are receipt facts; completed quarantine is not a hold. */
20
20
  blocked?: string;
21
21
  errors?: string[];
22
+ holds?: GcHold[];
22
23
  projectRoots: string[];
23
24
  /** Retained active/archived registrations; thread root names alone are not ownership. */
24
25
  registeredProjectRoots: Set<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"retention-references.d.ts","sourceRoot":"","sources":["../../src/store/retention-references.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAS9C,MAAM,WAAW,uBAAuB;IACtC,kFAAkF;IAClF,SAAS,EAAE,MAAM,OAAO,CAAC;IACzB,qFAAqF;IACrF,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC;IACxB,8EAA8E;IAC9E,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC;IAC9B,iFAAiF;IACjF,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9C,aAAa,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,kBAAkB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACzC,oBAAoB,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAC3C,iBAAiB,CAAC,EAAE,MAAM,OAAO,CAAC;IAClC,kFAAkF;IAClF,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IACnB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,yFAAyF;IACzF,sBAAsB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACpC,6EAA6E;IAC7E,oBAAoB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACnC,qBAAqB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACnC,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACzC,OAAO,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACvE;AAED;gFACgF;AAChF,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,WAAW,EAClB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,MAAM,EAAE,CAAC,CA8CnB;AAED;wFACwF;AACxF,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,WAAW,EAClB,eAAe,GAAE,WAAW,CAAC,MAAM,CAAa,EAChD,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,uBAAuB,CAAC,CAyGlC"}
1
+ {"version":3,"file":"retention-references.d.ts","sourceRoot":"","sources":["../../src/store/retention-references.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAU9C,MAAM,WAAW,uBAAuB;IACtC,kFAAkF;IAClF,SAAS,EAAE,MAAM,OAAO,CAAC;IACzB,qFAAqF;IACrF,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC;IACxB,8EAA8E;IAC9E,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC;IAC9B,iFAAiF;IACjF,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9C,aAAa,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,kBAAkB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACzC,oBAAoB,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAC3C,iBAAiB,CAAC,EAAE,MAAM,OAAO,CAAC;IAClC,kFAAkF;IAClF,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IACnB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,yFAAyF;IACzF,sBAAsB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACpC,6EAA6E;IAC7E,oBAAoB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACnC,qBAAqB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACnC,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACzC,OAAO,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACvE;AAED;gFACgF;AAChF,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,WAAW,EAClB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,MAAM,EAAE,CAAC,CA8CnB;AAED;wFACwF;AACxF,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,WAAW,EAClB,eAAe,GAAE,WAAW,CAAC,MAAM,CAAa,EAChD,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,uBAAuB,CAAC,CAiHlC"}
@@ -8,6 +8,7 @@ import { retentionChanges } from "./retention-changes.js";
8
8
  import { RetentionReferenceReader } from "./retention-reference-reader.js";
9
9
  import { commandRetentionReferences } from "./retention-command-references.js";
10
10
  import { retentionGenerations } from "./retention-generations.js";
11
+ import { deferredRetentionReferences } from "./deferred-retention.js";
11
12
  /** Maintenance's served thread listing, including unfinished purges. Unlike
12
13
  * public synchronous listing it does not stat every registered project root. */
13
14
  export async function diskRetentionThreads(store, signal) {
@@ -85,10 +86,13 @@ export async function diskRetentionReferences(store, ignoreThreadIds = new Set()
85
86
  .all())
86
87
  if (retained(row.pid))
87
88
  reader.add(row.run_id);
89
+ const refreshDraft = await deferredRetentionReferences(store, retained, (id) => reader.add(id), signal);
88
90
  const commands = await commandRetentionReferences(store, retained, reader.runs, signal);
89
91
  const readChange = ({ table, id, }) => {
90
92
  if (table === "command")
91
93
  commands.refresh(id);
94
+ else if (table === "deferred_message")
95
+ refreshDraft(id);
92
96
  else if (table === "blob") {
93
97
  const owner = store
94
98
  .prepare("SELECT c.id,c.pid FROM command c JOIN partition q ON q.id=c.pid WHERE params_sha=? AND q.status IN ('ready','archived') LIMIT 1")
@@ -121,6 +125,7 @@ export async function diskRetentionReferences(store, ignoreThreadIds = new Set()
121
125
  close: changesObserved.close,
122
126
  blocked,
123
127
  errors,
128
+ holds: generations.holds,
124
129
  projectRoots: [...roots],
125
130
  registeredProjectRoots,
126
131
  archivedProjectRoots,
@@ -1 +1 @@
1
- {"version":3,"file":"retention-references.js","sourceRoot":"","sources":["../../src/store/retention-references.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"retention-references.js","sourceRoot":"","sources":["../../src/store/retention-references.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAe,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAiCtE;gFACgF;AAChF,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,KAAkB,EAClB,MAAoB;IAEpB,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,IAAI,GAAG,EAAmB,CAAC;IAC1C,MAAM,KAAK,GAAG,IAAI,GAAG,CAEjB,KAAK;SACF,OAAO,CACN;gFACsE,CACvE;SACA,GAAG,EACP,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CACpC,CAAC;IACF,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,cAAc,CACrC,KAAK,EACL,QAAQ,EACR,aAAa,EACb,MAAM,CACP,EAAE,CAAC;QACF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,gBAAgB,EAAE,CAAC;YACzB,MAAM,EAAE,cAAc,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3E,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAS;YACnC,IAAI,MAAc,CAAC;YACnB,IAAI,CAAC;gBACH,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;YACzC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,CAAC,EAAE,iBAAiB,GAAG,CAAC,GAAG,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE;oBACtF,KAAK,EAAE,KAAK;iBACb,CAAC,CAAC;YACL,CAAC;YACD,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAChC,IACE,MAAM,CAAC,KAAK,KAAK,QAAQ;gBACzB,IAAI;gBACJ,CAAC,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CACvB,GAAG,EAAE,CAAC,IAAI,EACV,GAAG,EAAE,CAAC,KAAK,CACZ,CAAC;gBAEF,SAAS;YACX,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;wFACwF;AACxF,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,KAAkB,EAClB,eAAe,GAAwB,IAAI,GAAG,EAAE,EAChD,MAAoB;IAEpB,MAAM,eAAe,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAChD,IAAI,CAAC;QACH,0EAA0E;QAC1E,yEAAyE;QACzE,8BAA8B;QAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAI,OAAO,CAAC,GAAG,EAAoB,CAAC,CAAC,CAAC;QACnD,MAAM,SAAS,GAAG,GAAG,EAAE,CAAE,OAAO,CAAC,GAAG,EAAoB,CAAC,CAAC,KAAK,OAAO,CAAC;QACvE,MAAM,WAAW,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAChD,MAAM,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,EAAE,OAAO,EAAE,GAC5F,WAAW,CAAC;QACd,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,sBAAsB,EAAE,GAAG,qBAAqB,CAAC,CAAC,CAAC;QAC7E,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC;QAC9D,MAAM,MAAM,GAAG,IAAI,wBAAwB,CAAC,KAAK,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;QAC9E,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,cAAc,CAKpC,KAAK,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,CAAC,EAAE,CAAC;YACjD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,MAAM,gBAAgB,EAAE,CAAC;gBACzB,MAAM,EAAE,cAAc,EAAE,CAAC;gBACzB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAClC,IAAI,CAAC,MAAM;oBAAE,SAAS;gBACtB,KAAK,MAAM,UAAU,IAAI,KAAK;qBAC3B,OAAO,CAAC,wEAAwE,CAAC;qBACjF,GAAG,CAAC,MAAM,CAAC,EAAE,CAMd;oBACA,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;gBACrC,KAAK,MAAM,OAAO,IAAI,KAAK;qBACxB,OAAO,CAAC,0DAA0D,CAAC;qBACnE,GAAG,CAAC,MAAM,CAAC,EAAE,CAKd,EAAE,CAAC;oBACH,MAAM,gBAAgB,EAAE,CAAC;oBACzB,MAAM,EAAE,cAAc,EAAE,CAAC;oBACzB,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC/B,CAAC;YACH,CAAC;QACH,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,KAAK;aACpB,OAAO,CAAC,0DAA0D,CAAC;aACnE,GAAG,EAA4C;YAChD,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,YAAY,GAAG,MAAM,2BAA2B,CACpD,KAAK,EACL,QAAQ,EACR,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EACtB,MAAM,CACP,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,0BAA0B,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACxF,MAAM,UAAU,GAAG,CAAC,EAClB,KAAK,EACL,EAAE,GAC2D,EAAE,EAAE;YACjE,IAAI,KAAK,KAAK,SAAS;gBAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;iBACzC,IAAI,KAAK,KAAK,kBAAkB;gBAAE,YAAY,CAAC,EAAE,CAAC,CAAC;iBACnD,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;gBAC1B,MAAM,KAAK,GAAG,KAAK;qBAChB,OAAO,CACN,iIAAiI,CAClI;qBACA,GAAG,CAAC,EAAE,CAA4C,CAAC;gBACtD,IAAI,KAAK;oBACP,MAAM,IAAI,KAAK,CACb,+BAA+B,KAAK,CAAC,EAAE,iBAAiB,KAAK,CAAC,GAAG,iBAAiB,EAAE,2BAA2B,CAChH,CAAC;YACN,CAAC;iBAAM,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,WAAW;gBAAE,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACrF,CAAC,CAAC;QACF,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC1D,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAClE,MAAM,OAAO,EAAE,CAAC;QAChB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK;YAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjD,OAAO;YACL,SAAS;YACT,OAAO;YACP,OAAO;YACP,aAAa,EAAE,OAAO;YACtB,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,IAAI,CAAC,OAAO,EAAE;oBACZ,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;gBAChF,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;YACrD,CAAC;YACD,aAAa,EAAE,QAAQ,CAAC,aAAa;YACrC,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB;YAC/C,oBAAoB,EAAE,QAAQ,CAAC,oBAAoB;YACnD,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;YAC7C,KAAK,EAAE,eAAe,CAAC,KAAK;YAC5B,OAAO;YACP,MAAM;YACN,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,YAAY,EAAE,CAAC,GAAG,KAAK,CAAC;YACxB,sBAAsB;YACtB,oBAAoB;YACpB,qBAAqB;YACrB,gBAAgB,EAAE,MAAM,CAAC,IAAI;YAC7B,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,cAAc,EAAE,MAAM,CAAC,QAAQ;SAChC,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,eAAe,CAAC,KAAK,EAAE,CAAC;QACxB,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"retention.d.ts","sourceRoot":"","sources":["../../src/store/retention.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"retention.d.ts","sourceRoot":"","sources":["../../src/store/retention.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,11 @@ import { requireTransaction } from "./mutation.js";
5
5
  * entity snapshots consume sequence but have no stream row; setup saves have a
6
6
  * stable address without replacing earlier saves or sharing the log's lifetime. */
7
7
  export function sqlEventVerdict(record) {
8
+ if (record.type === "deferred_message.changed") {
9
+ const id = record.payload?.draftId;
10
+ if (typeof id === "string")
11
+ return { slot: `draft:${id}` };
12
+ }
8
13
  if (record.type === "thread.entities_upserted")
9
14
  return { drop: true };
10
15
  const verdict = journalFoldPolicy.verdict(record) ?? {};
@@ -1 +1 @@
1
- {"version":3,"file":"retention.js","sourceRoot":"","sources":["../../src/store/retention.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"retention.js","sourceRoot":"","sources":["../../src/store/retention.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,11 @@ import type { DatabaseSync } from "node:sqlite";
2
2
  /** `PRAGMA application_id` of every engine store ("CXEN"). */
3
3
  export declare const ENGINE_APPLICATION_ID = 1129858382;
4
4
  /** `PRAGMA user_version`: the one schema this engine creates and serves. */
5
- export declare const ENGINE_SCHEMA_VERSION = 2;
5
+ export declare const ENGINE_SCHEMA_VERSION = 6;
6
+ /** Version 5: guard both the expression key and partial predicate against non-JSON bodies.
7
+ * Acceptance is mutable query policy, not index membership. */
8
+ export declare const PLAN_ANSWER_RUN_SQL = "CASE WHEN json_valid(CAST(body AS TEXT))\n THEN json_extract(CAST(body AS TEXT),'$.answers_plan_run_id') END";
9
+ export declare const PLAN_ANSWER_PRESENT_SQL = "CASE WHEN json_valid(CAST(body AS TEXT))\n THEN json_extract(CAST(body AS TEXT),'$.answers_plan_run_id') END IS NOT NULL";
6
10
  /**
7
11
  * SYNTHESIS_R5 §5 with R5_AMENDMENTS A1 (`command.kind`/`live` replace
8
12
  * `retention_exempt`; obligation `state`/`materialized_g`). STRICT everywhere; WITHOUT ROWID where the
@@ -11,7 +15,7 @@ export declare const ENGINE_SCHEMA_VERSION = 2;
11
15
  * history. `pid` is the surrogate of one partition generation and the only
12
16
  * partition key a row carries.
13
17
  */
14
- export declare const ENGINE_SCHEMA_SQL = "\nCREATE TABLE meta(key TEXT PRIMARY KEY, value TEXT NOT NULL) STRICT;\nCREATE TABLE partition(id INTEGER PRIMARY KEY, name TEXT NOT NULL, epoch TEXT NOT NULL, status TEXT NOT NULL,\n next_seq INTEGER NOT NULL, project_id TEXT, created_at TEXT NOT NULL, UNIQUE(name, epoch)) STRICT;\nCREATE TABLE event(pid INTEGER NOT NULL, seq INTEGER NOT NULL, time TEXT NOT NULL, type TEXT NOT NULL,\n payload BLOB NOT NULL, payload_sha TEXT, slot_key TEXT, group_key TEXT, PRIMARY KEY(pid, seq)) WITHOUT ROWID, STRICT;\nCREATE INDEX event_type ON event(pid, type, seq);\nCREATE INDEX event_slot ON event(pid, slot_key) WHERE slot_key IS NOT NULL;\nCREATE INDEX event_group ON event(pid, group_key) WHERE group_key IS NOT NULL;\nCREATE INDEX event_payload ON event(payload_sha) WHERE payload_sha IS NOT NULL;\nCREATE INDEX event_command_age ON event(time,pid,seq) WHERE type IN ('command.accepted','command.updated');\nCREATE TABLE blob(sha256 TEXT PRIMARY KEY, size INTEGER NOT NULL, inline BLOB) STRICT;\nCREATE TABLE command(id TEXT PRIMARY KEY, pid INTEGER NOT NULL, operation TEXT NOT NULL, state TEXT NOT NULL, client_id TEXT,\n run_id TEXT, task_id TEXT, run_dir TEXT, thread_id TEXT, turn_id TEXT, delegated_from TEXT, continue_from TEXT, scope_root TEXT,\n created_at TEXT NOT NULL, started_at TEXT, finished_at TEXT, summary BLOB NOT NULL, params_sha TEXT NOT NULL, result_sha TEXT,\n error BLOB, last_event_seq INTEGER, response_state TEXT, response_expires_at TEXT, request_resource_id TEXT, response_resource_id TEXT,\n kind TEXT NOT NULL, live INTEGER NOT NULL DEFAULT 1, needs_decision INTEGER NOT NULL DEFAULT 0) STRICT;\nCREATE INDEX command_run ON command(run_id);\nCREATE INDEX command_partition ON command(pid);\nCREATE INDEX command_active ON command(state, pid) WHERE live = 1 AND state IN ('queued','running');\nCREATE INDEX command_thread ON command(thread_id, state);\nCREATE INDEX command_turn ON command(turn_id, created_at);\nCREATE INDEX command_request_resource ON command(request_resource_id) WHERE request_resource_id IS NOT NULL;\nCREATE INDEX command_response_resource ON command(response_resource_id) WHERE response_resource_id IS NOT NULL;\nCREATE INDEX command_parent ON command(delegated_from);\nCREATE INDEX command_continue ON command(continue_from);\nCREATE INDEX command_list ON command(created_at DESC, id DESC) WHERE live = 1 AND kind = 'product';\nCREATE INDEX command_list_state ON command(state, created_at DESC, id DESC) WHERE live = 1 AND kind = 'product';\nCREATE INDEX command_terminal ON command(created_at, id)\n WHERE live = 1 AND kind IN ('product','delivery','maintenance') AND finished_at IS NOT NULL;\nCREATE INDEX command_prunable ON command(created_at, id)\n WHERE live = 1 AND kind IN ('product','delivery','maintenance') AND finished_at IS NOT NULL AND needs_decision = 0;\nCREATE INDEX command_expiry ON command(response_state, response_expires_at) WHERE kind = 'model';\nCREATE INDEX command_maintenance_harness ON command(json_extract(CAST(summary AS TEXT),'$.params.harness'),created_at)\n WHERE live=1 AND kind='maintenance';\nCREATE INDEX command_params ON command(params_sha);\nCREATE INDEX command_result ON command(result_sha) WHERE result_sha IS NOT NULL;\nCREATE TABLE run_terminal(run_id TEXT PRIMARY KEY, pid INTEGER NOT NULL, event BLOB NOT NULL) STRICT;\nCREATE TABLE effect_obligation(kind TEXT NOT NULL, key TEXT NOT NULL, pid INTEGER NOT NULL, created_at TEXT NOT NULL, payload BLOB NOT NULL,\n state TEXT NOT NULL DEFAULT 'pending', materialized_g INTEGER, PRIMARY KEY(kind, key)) WITHOUT ROWID, STRICT;\nCREATE TABLE idempotency(owner TEXT NOT NULL, pid INTEGER NOT NULL, key_digest TEXT NOT NULL, operation TEXT NOT NULL,\n request_digest TEXT NOT NULL, target_id TEXT NOT NULL, result BLOB, created_at TEXT NOT NULL,\n PRIMARY KEY(owner, pid, key_digest)) WITHOUT ROWID, STRICT;\nCREATE INDEX idempotency_target ON idempotency(target_id);\nCREATE TABLE thread(id TEXT PRIMARY KEY, pid INTEGER NOT NULL, state TEXT NOT NULL, updated_at TEXT NOT NULL,\n head_revision INTEGER NOT NULL DEFAULT 0, body BLOB NOT NULL) STRICT;\nCREATE INDEX thread_list ON thread(pid, state, updated_at DESC);\nCREATE TABLE turn(id TEXT PRIMARY KEY, pid INTEGER NOT NULL, thread_id TEXT NOT NULL, ordinal INTEGER NOT NULL, run_id TEXT,\n created_at TEXT NOT NULL, prompt_sha TEXT NOT NULL, body BLOB NOT NULL) STRICT;\nCREATE UNIQUE INDEX turn_thread ON turn(thread_id, ordinal);\nCREATE UNIQUE INDEX turn_run ON turn(run_id) WHERE run_id IS NOT NULL;\nCREATE INDEX turn_prompt ON turn(prompt_sha);\nCREATE TABLE session(id TEXT PRIMARY KEY, thread_id TEXT NOT NULL, harness_id TEXT NOT NULL, profile_id TEXT NOT NULL DEFAULT '', pid INTEGER NOT NULL,\n insertion_ordinal INTEGER NOT NULL DEFAULT 0, body BLOB NOT NULL) WITHOUT ROWID, STRICT;\nCREATE INDEX session_lane ON session(thread_id, harness_id, profile_id);\nCREATE INDEX session_order ON session(thread_id, insertion_ordinal);\nCREATE INDEX session_partition ON session(pid, insertion_ordinal);\nCREATE TABLE lane_checkpoint(thread_id TEXT NOT NULL, harness_id TEXT NOT NULL, profile_id TEXT NOT NULL DEFAULT '', pid INTEGER NOT NULL,\n insertion_ordinal INTEGER NOT NULL DEFAULT 0, turn_id TEXT NOT NULL, body BLOB NOT NULL, PRIMARY KEY(thread_id, harness_id, profile_id)) WITHOUT ROWID, STRICT;\nCREATE INDEX lane_checkpoint_order ON lane_checkpoint(thread_id, insertion_ordinal);\nCREATE INDEX lane_checkpoint_partition ON lane_checkpoint(pid, insertion_ordinal);\nCREATE TABLE interaction(id TEXT PRIMARY KEY, pid INTEGER NOT NULL, run_id TEXT NOT NULL, state TEXT NOT NULL,\n request BLOB NOT NULL, resolution BLOB) STRICT;\nCREATE INDEX interaction_pending ON interaction(run_id) WHERE state = 'pending';\nCREATE INDEX interaction_run ON interaction(run_id);\nCREATE INDEX interaction_partition_pending ON interaction(pid,run_id) WHERE state = 'pending';\nCREATE TABLE operator_decision(run_id TEXT PRIMARY KEY, pid INTEGER NOT NULL, body BLOB NOT NULL) STRICT;\nCREATE TABLE project(id TEXT PRIMARY KEY, pid INTEGER NOT NULL, root TEXT NOT NULL, status TEXT NOT NULL,\n current_pid INTEGER, creation_key_digest TEXT, created_at TEXT NOT NULL, updated_at TEXT NOT NULL, body BLOB NOT NULL) STRICT;\nCREATE UNIQUE INDEX project_root_active ON project(pid, root) WHERE status = 'active';\nCREATE INDEX project_current_pid ON project(current_pid) WHERE status = 'active';\nCREATE TABLE pruned_root(root TEXT PRIMARY KEY) STRICT;\nCREATE TABLE resource(id TEXT PRIMARY KEY, purpose TEXT, kind TEXT NOT NULL, sha256 TEXT NOT NULL, size_bytes INTEGER NOT NULL,\n state TEXT NOT NULL, created_at TEXT NOT NULL, expires_at TEXT, released_at TEXT, body BLOB NOT NULL) STRICT;\nCREATE INDEX resource_sha ON resource(sha256);\nCREATE INDEX resource_expiry ON resource(state, expires_at);\nCREATE TABLE upload(id TEXT PRIMARY KEY, state TEXT NOT NULL, received_bytes INTEGER NOT NULL, expected_bytes INTEGER,\n finalize_sha TEXT, body BLOB NOT NULL) STRICT;\nCREATE INDEX upload_finalize ON upload(finalize_sha) WHERE finalize_sha IS NOT NULL;\nCREATE TABLE import_partition(name TEXT PRIMARY KEY, status TEXT NOT NULL, pid INTEGER, epoch TEXT, next_seq INTEGER,\n previous_frame_hash TEXT, source_size INTEGER, source_mtime TEXT, fingerprint TEXT, records INTEGER, digest TEXT, problem TEXT) STRICT;\nCREATE TABLE unclassified(pid INTEGER NOT NULL, seq INTEGER NOT NULL, type TEXT NOT NULL, reason TEXT NOT NULL, payload BLOB NOT NULL,\n PRIMARY KEY(pid, seq)) WITHOUT ROWID, STRICT;\n\nCREATE TABLE account_last_service(harness_id TEXT NOT NULL, profile_id TEXT NOT NULL, requested_model_key TEXT NOT NULL,\n binding_digest TEXT NOT NULL, service_seq INTEGER NOT NULL, observed_at TEXT NOT NULL, run_id TEXT NOT NULL,\n attempt_id TEXT NOT NULL, try_index INTEGER NOT NULL,\n PRIMARY KEY(harness_id, profile_id, requested_model_key, binding_digest)) WITHOUT ROWID, STRICT;\n";
18
+ export declare const ENGINE_SCHEMA_SQL = "\nCREATE TABLE meta(key TEXT PRIMARY KEY, value TEXT NOT NULL) STRICT;\nCREATE TABLE partition(id INTEGER PRIMARY KEY, name TEXT NOT NULL, epoch TEXT NOT NULL, status TEXT NOT NULL,\n next_seq INTEGER NOT NULL, project_id TEXT, created_at TEXT NOT NULL, UNIQUE(name, epoch)) STRICT;\nCREATE TABLE event(pid INTEGER NOT NULL, seq INTEGER NOT NULL, time TEXT NOT NULL, type TEXT NOT NULL,\n payload BLOB NOT NULL, payload_sha TEXT, slot_key TEXT, group_key TEXT, PRIMARY KEY(pid, seq)) WITHOUT ROWID, STRICT;\nCREATE INDEX event_type ON event(pid, type, seq);\nCREATE INDEX event_slot ON event(pid, slot_key) WHERE slot_key IS NOT NULL;\nCREATE INDEX event_group ON event(pid, group_key) WHERE group_key IS NOT NULL;\nCREATE INDEX event_payload ON event(payload_sha) WHERE payload_sha IS NOT NULL;\nCREATE INDEX event_command_age ON event(time,pid,seq) WHERE type IN ('command.accepted','command.updated');\nCREATE TABLE blob(sha256 TEXT PRIMARY KEY, size INTEGER NOT NULL, inline BLOB) STRICT;\nCREATE TABLE command(id TEXT PRIMARY KEY, pid INTEGER NOT NULL, operation TEXT NOT NULL, state TEXT NOT NULL, client_id TEXT,\n run_id TEXT, task_id TEXT, run_dir TEXT, thread_id TEXT, turn_id TEXT, delegated_from TEXT, continue_from TEXT, scope_root TEXT,\n created_at TEXT NOT NULL, started_at TEXT, finished_at TEXT, summary BLOB NOT NULL, params_sha TEXT NOT NULL, result_sha TEXT,\n error BLOB, last_event_seq INTEGER, response_state TEXT, response_expires_at TEXT, request_resource_id TEXT, response_resource_id TEXT,\n kind TEXT NOT NULL, live INTEGER NOT NULL DEFAULT 1, needs_decision INTEGER NOT NULL DEFAULT 0, task_group_id TEXT) STRICT;\nCREATE INDEX command_run ON command(run_id);\nCREATE INDEX command_partition ON command(pid);\nCREATE INDEX command_active ON command(state, pid) WHERE live = 1 AND state IN ('queued','running');\nCREATE INDEX command_thread ON command(thread_id, state);\nCREATE INDEX command_turn ON command(turn_id, created_at);\nCREATE INDEX command_request_resource ON command(request_resource_id) WHERE request_resource_id IS NOT NULL;\nCREATE INDEX command_response_resource ON command(response_resource_id) WHERE response_resource_id IS NOT NULL;\nCREATE INDEX command_parent ON command(delegated_from);\nCREATE INDEX command_continue ON command(continue_from);\nCREATE INDEX command_list ON command(created_at DESC, id DESC) WHERE live = 1 AND kind = 'product';\nCREATE INDEX command_list_state ON command(state, created_at DESC, id DESC) WHERE live = 1 AND kind = 'product';\nCREATE INDEX command_terminal ON command(created_at, id)\n WHERE live = 1 AND kind IN ('product','delivery','maintenance') AND finished_at IS NOT NULL;\nCREATE INDEX command_prunable ON command(created_at, id)\n WHERE live = 1 AND kind IN ('product','delivery','maintenance') AND finished_at IS NOT NULL AND needs_decision = 0;\nCREATE INDEX command_expiry ON command(response_state, response_expires_at) WHERE kind = 'model';\nCREATE INDEX command_maintenance_harness ON command(json_extract(CAST(summary AS TEXT),'$.params.harness'),created_at)\n WHERE live=1 AND kind='maintenance';\nCREATE INDEX command_params ON command(params_sha);\nCREATE INDEX command_result ON command(result_sha) WHERE result_sha IS NOT NULL;\nCREATE TABLE run_terminal(run_id TEXT PRIMARY KEY, pid INTEGER NOT NULL, event BLOB NOT NULL) STRICT;\nCREATE TABLE effect_obligation(kind TEXT NOT NULL, key TEXT NOT NULL, pid INTEGER NOT NULL, created_at TEXT NOT NULL, payload BLOB NOT NULL,\n state TEXT NOT NULL DEFAULT 'pending', materialized_g INTEGER, PRIMARY KEY(kind, key)) WITHOUT ROWID, STRICT;\nCREATE TABLE idempotency(owner TEXT NOT NULL, pid INTEGER NOT NULL, key_digest TEXT NOT NULL, operation TEXT NOT NULL,\n request_digest TEXT NOT NULL, target_id TEXT NOT NULL, result BLOB, created_at TEXT NOT NULL,\n PRIMARY KEY(owner, pid, key_digest)) WITHOUT ROWID, STRICT;\nCREATE INDEX idempotency_target ON idempotency(target_id);\nCREATE TABLE thread(id TEXT PRIMARY KEY, pid INTEGER NOT NULL, state TEXT NOT NULL, updated_at TEXT NOT NULL,\n head_revision INTEGER NOT NULL DEFAULT 0, body BLOB NOT NULL) STRICT;\nCREATE INDEX thread_list ON thread(pid, state, updated_at DESC);\nCREATE TABLE turn(id TEXT PRIMARY KEY, pid INTEGER NOT NULL, thread_id TEXT NOT NULL, ordinal INTEGER NOT NULL, run_id TEXT,\n created_at TEXT NOT NULL, prompt_sha TEXT NOT NULL, body BLOB NOT NULL) STRICT;\nCREATE UNIQUE INDEX turn_thread ON turn(thread_id, ordinal);\nCREATE UNIQUE INDEX turn_run ON turn(run_id) WHERE run_id IS NOT NULL;\nCREATE INDEX turn_prompt ON turn(prompt_sha);\nCREATE TABLE session(id TEXT PRIMARY KEY, thread_id TEXT NOT NULL, harness_id TEXT NOT NULL, profile_id TEXT NOT NULL DEFAULT '', pid INTEGER NOT NULL,\n insertion_ordinal INTEGER NOT NULL DEFAULT 0, body BLOB NOT NULL) WITHOUT ROWID, STRICT;\nCREATE INDEX session_lane ON session(thread_id, harness_id, profile_id);\nCREATE INDEX session_order ON session(thread_id, insertion_ordinal);\nCREATE INDEX session_partition ON session(pid, insertion_ordinal);\nCREATE TABLE lane_checkpoint(thread_id TEXT NOT NULL, harness_id TEXT NOT NULL, profile_id TEXT NOT NULL DEFAULT '', pid INTEGER NOT NULL,\n insertion_ordinal INTEGER NOT NULL DEFAULT 0, turn_id TEXT NOT NULL, body BLOB NOT NULL, PRIMARY KEY(thread_id, harness_id, profile_id)) WITHOUT ROWID, STRICT;\nCREATE INDEX lane_checkpoint_order ON lane_checkpoint(thread_id, insertion_ordinal);\nCREATE INDEX lane_checkpoint_partition ON lane_checkpoint(pid, insertion_ordinal);\nCREATE TABLE interaction(id TEXT PRIMARY KEY, pid INTEGER NOT NULL, run_id TEXT NOT NULL, state TEXT NOT NULL,\n request BLOB NOT NULL, resolution BLOB) STRICT;\nCREATE INDEX interaction_pending ON interaction(run_id) WHERE state = 'pending';\nCREATE INDEX interaction_run ON interaction(run_id);\nCREATE INDEX interaction_partition_pending ON interaction(pid,run_id) WHERE state = 'pending';\nCREATE TABLE operator_decision(run_id TEXT PRIMARY KEY, pid INTEGER NOT NULL, body BLOB NOT NULL) STRICT;\nCREATE TABLE project(id TEXT PRIMARY KEY, pid INTEGER NOT NULL, root TEXT NOT NULL, status TEXT NOT NULL,\n current_pid INTEGER, creation_key_digest TEXT, created_at TEXT NOT NULL, updated_at TEXT NOT NULL, body BLOB NOT NULL) STRICT;\nCREATE UNIQUE INDEX project_root_active ON project(pid, root) WHERE status = 'active';\nCREATE INDEX project_current_pid ON project(current_pid) WHERE status = 'active';\nCREATE TABLE pruned_root(root TEXT PRIMARY KEY) STRICT;\nCREATE TABLE resource(id TEXT PRIMARY KEY, purpose TEXT, kind TEXT NOT NULL, sha256 TEXT NOT NULL, size_bytes INTEGER NOT NULL,\n state TEXT NOT NULL, created_at TEXT NOT NULL, expires_at TEXT, released_at TEXT, body BLOB NOT NULL) STRICT;\nCREATE INDEX resource_sha ON resource(sha256);\nCREATE INDEX resource_expiry ON resource(state, expires_at);\nCREATE TABLE upload(id TEXT PRIMARY KEY, state TEXT NOT NULL, received_bytes INTEGER NOT NULL, expected_bytes INTEGER,\n finalize_sha TEXT, body BLOB NOT NULL) STRICT;\nCREATE INDEX upload_finalize ON upload(finalize_sha) WHERE finalize_sha IS NOT NULL;\nCREATE TABLE import_partition(name TEXT PRIMARY KEY, status TEXT NOT NULL, pid INTEGER, epoch TEXT, next_seq INTEGER,\n previous_frame_hash TEXT, source_size INTEGER, source_mtime TEXT, fingerprint TEXT, records INTEGER, digest TEXT, problem TEXT) STRICT;\nCREATE TABLE unclassified(pid INTEGER NOT NULL, seq INTEGER NOT NULL, type TEXT NOT NULL, reason TEXT NOT NULL, payload BLOB NOT NULL,\n PRIMARY KEY(pid, seq)) WITHOUT ROWID, STRICT;\n\nCREATE TABLE account_last_service(harness_id TEXT NOT NULL, profile_id TEXT NOT NULL, requested_model_key TEXT NOT NULL,\n binding_digest TEXT NOT NULL, service_seq INTEGER NOT NULL, observed_at TEXT NOT NULL, run_id TEXT NOT NULL,\n attempt_id TEXT NOT NULL, try_index INTEGER NOT NULL,\n PRIMARY KEY(harness_id, profile_id, requested_model_key, binding_digest)) WITHOUT ROWID, STRICT;\n\nCREATE TABLE deferred_message(id TEXT PRIMARY KEY, pid INTEGER NOT NULL, predecessor_job_id TEXT NOT NULL,\n revision INTEGER NOT NULL, state TEXT NOT NULL CHECK(state IN ('waiting','held','dispatched','cleared')),\n body_sha TEXT, hold BLOB, successor_job_id TEXT, dispatched_revision INTEGER, created_at TEXT NOT NULL) STRICT;\nCREATE UNIQUE INDEX deferred_message_slot ON deferred_message(pid,predecessor_job_id) WHERE state IN ('waiting','held');\nCREATE INDEX deferred_message_predecessor ON deferred_message(predecessor_job_id);\nCREATE INDEX deferred_message_successor ON deferred_message(successor_job_id) WHERE successor_job_id IS NOT NULL;\nCREATE INDEX deferred_message_body ON deferred_message(body_sha) WHERE body_sha IS NOT NULL;\n\nCREATE INDEX turn_plan_answer ON turn(thread_id,CASE WHEN json_valid(CAST(body AS TEXT))\n THEN json_extract(CAST(body AS TEXT),'$.answers_plan_run_id') END,ordinal)\n WHERE CASE WHEN json_valid(CAST(body AS TEXT))\n THEN json_extract(CAST(body AS TEXT),'$.answers_plan_run_id') END IS NOT NULL;\n\nCREATE INDEX command_task_group ON command(task_group_id,created_at DESC,id DESC)\n WHERE live=1 AND kind='product' AND task_group_id IS NOT NULL;\nCREATE INDEX command_task_group_state ON command(task_group_id,state,created_at DESC,id DESC)\n WHERE live=1 AND kind='product' AND task_group_id IS NOT NULL;\n";
15
19
  /** Every table the DDL creates, in creation order (for tests and the importer seam). */
16
20
  export declare const ENGINE_TABLES: readonly string[];
17
21
  export interface SchemaIdentity {
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/store/schema.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,8DAA8D;AAC9D,eAAO,MAAM,qBAAqB,aAAa,CAAC;AAChD,4EAA4E;AAC5E,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAiBvC;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,2yPAmFF,CAAC;AAE7B,wFAAwF;AACxF,eAAO,MAAM,aAAa,EAAE,SAAS,MAAM,EAE1C,CAAC;AAYF,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,oGAAoG;IACpG,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,YAAY,GAAG,cAAc,CAYnE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAqB9F;AAED,uFAAuF;AACvF,wBAAgB,YAAY,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,GAAE,MAAM,IAAuB,GAAG,IAAI,CAkCvF"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/store/schema.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,8DAA8D;AAC9D,eAAO,MAAM,qBAAqB,aAAa,CAAC;AAChD,4EAA4E;AAC5E,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAyCvC;+DAC+D;AAC/D,eAAO,MAAM,mBAAmB,kHACoC,CAAC;AACrE,eAAO,MAAM,uBAAuB,8HAAuC,CAAC;AA4B5E;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,kpSAmF2E,CAAC;AAE1G,wFAAwF;AACxF,eAAO,MAAM,aAAa,EAAE,SAAS,MAAM,EAE1C,CAAC;AAgBF,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,oGAAoG;IACpG,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,YAAY,GAAG,cAAc,CAYnE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAqB9F;AAED,uFAAuF;AACvF,wBAAgB,YAAY,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,GAAE,MAAM,IAAuB,GAAG,IAAI,CAkCvF"}
@@ -3,7 +3,17 @@ import { StoreSchemaUnsupportedError } from "./errors.js";
3
3
  /** `PRAGMA application_id` of every engine store ("CXEN"). */
4
4
  export const ENGINE_APPLICATION_ID = 0x4358454e;
5
5
  /** `PRAGMA user_version`: the one schema this engine creates and serves. */
6
- export const ENGINE_SCHEMA_VERSION = 2;
6
+ export const ENGINE_SCHEMA_VERSION = 6;
7
+ /** Version 4: one reserved editable next message; accepted params stay immutable. */
8
+ const DEFERRED_MESSAGE_SQL = `
9
+ CREATE TABLE deferred_message(id TEXT PRIMARY KEY, pid INTEGER NOT NULL, predecessor_job_id TEXT NOT NULL,
10
+ revision INTEGER NOT NULL, state TEXT NOT NULL CHECK(state IN ('waiting','held','dispatched','cleared')),
11
+ body_sha TEXT, hold BLOB, successor_job_id TEXT, dispatched_revision INTEGER, created_at TEXT NOT NULL) STRICT;
12
+ CREATE UNIQUE INDEX deferred_message_slot ON deferred_message(pid,predecessor_job_id) WHERE state IN ('waiting','held');
13
+ CREATE INDEX deferred_message_predecessor ON deferred_message(predecessor_job_id);
14
+ CREATE INDEX deferred_message_successor ON deferred_message(successor_job_id) WHERE successor_job_id IS NOT NULL;
15
+ CREATE INDEX deferred_message_body ON deferred_message(body_sha) WHERE body_sha IS NOT NULL;
16
+ `;
7
17
  /**
8
18
  * Version 2: the latest request each account served per requested model
9
19
  * (INV-135 last-served tie-break). One current row per (harness, row,
@@ -18,6 +28,46 @@ CREATE TABLE account_last_service(harness_id TEXT NOT NULL, profile_id TEXT NOT
18
28
  attempt_id TEXT NOT NULL, try_index INTEGER NOT NULL,
19
29
  PRIMARY KEY(harness_id, profile_id, requested_model_key, binding_digest)) WITHOUT ROWID, STRICT;
20
30
  `;
31
+ /** CASE guards extraction even for legal non-JSON summary bytes. */
32
+ const TASK_GROUP_PRESENT_SQL = `CASE WHEN json_valid(CAST(summary AS TEXT))
33
+ THEN json_extract(CAST(summary AS TEXT),'$.params.taskGroupId') END IS NOT NULL`;
34
+ /** Version 3 indexed tagged accepted summaries. Kept as the historical 2→3 step;
35
+ * version 6 moves membership into a column. */
36
+ const TASK_GROUP_INDEX_SQL = `
37
+ CREATE INDEX command_task_group ON command(json_extract(CAST(summary AS TEXT),'$.params.taskGroupId'),created_at DESC,id DESC)
38
+ WHERE live=1 AND kind='product' AND json_valid(CAST(summary AS TEXT)) AND ${TASK_GROUP_PRESENT_SQL};
39
+ CREATE INDEX command_task_group_state ON command(json_extract(CAST(summary AS TEXT),'$.params.taskGroupId'),state,created_at DESC,id DESC)
40
+ WHERE live=1 AND kind='product' AND json_valid(CAST(summary AS TEXT)) AND ${TASK_GROUP_PRESENT_SQL};
41
+ `;
42
+ /** Version 5: guard both the expression key and partial predicate against non-JSON bodies.
43
+ * Acceptance is mutable query policy, not index membership. */
44
+ export const PLAN_ANSWER_RUN_SQL = `CASE WHEN json_valid(CAST(body AS TEXT))
45
+ THEN json_extract(CAST(body AS TEXT),'$.answers_plan_run_id') END`;
46
+ export const PLAN_ANSWER_PRESENT_SQL = `${PLAN_ANSWER_RUN_SQL} IS NOT NULL`;
47
+ const PLAN_ANSWER_INDEX_SQL = `
48
+ CREATE INDEX turn_plan_answer ON turn(thread_id,${PLAN_ANSWER_RUN_SQL},ordinal)
49
+ WHERE ${PLAN_ANSWER_PRESENT_SQL};
50
+ `;
51
+ /** Canonical (lower-case) membership of tagged product commands. */
52
+ const TASK_GROUP_COLUMN_INDEX_SQL = `
53
+ CREATE INDEX command_task_group ON command(task_group_id,created_at DESC,id DESC)
54
+ WHERE live=1 AND kind='product' AND task_group_id IS NOT NULL;
55
+ CREATE INDEX command_task_group_state ON command(task_group_id,state,created_at DESC,id DESC)
56
+ WHERE live=1 AND kind='product' AND task_group_id IS NOT NULL;
57
+ `;
58
+ /** Version 6: membership becomes a typed column. Accepted summaries keep the
59
+ * caller's spelling; live rows are found through the version-3 index, archived
60
+ * rows by a guarded scan, since restoring a generation makes them live again. */
61
+ const TASK_GROUP_COLUMN_SQL = `
62
+ ALTER TABLE command ADD COLUMN task_group_id TEXT;
63
+ UPDATE command INDEXED BY command_task_group
64
+ SET task_group_id = lower(json_extract(CAST(summary AS TEXT),'$.params.taskGroupId'))
65
+ WHERE live=1 AND kind='product' AND json_valid(CAST(summary AS TEXT)) AND ${TASK_GROUP_PRESENT_SQL};
66
+ UPDATE command SET task_group_id = lower(json_extract(CAST(summary AS TEXT),'$.params.taskGroupId'))
67
+ WHERE live=0 AND kind='product' AND json_valid(CAST(summary AS TEXT)) AND ${TASK_GROUP_PRESENT_SQL};
68
+ DROP INDEX command_task_group;
69
+ DROP INDEX command_task_group_state;
70
+ ${TASK_GROUP_COLUMN_INDEX_SQL}`;
21
71
  /**
22
72
  * SYNTHESIS_R5 §5 with R5_AMENDMENTS A1 (`command.kind`/`live` replace
23
73
  * `retention_exempt`; obligation `state`/`materialized_g`). STRICT everywhere; WITHOUT ROWID where the
@@ -42,7 +92,7 @@ CREATE TABLE command(id TEXT PRIMARY KEY, pid INTEGER NOT NULL, operation TEXT N
42
92
  run_id TEXT, task_id TEXT, run_dir TEXT, thread_id TEXT, turn_id TEXT, delegated_from TEXT, continue_from TEXT, scope_root TEXT,
43
93
  created_at TEXT NOT NULL, started_at TEXT, finished_at TEXT, summary BLOB NOT NULL, params_sha TEXT NOT NULL, result_sha TEXT,
44
94
  error BLOB, last_event_seq INTEGER, response_state TEXT, response_expires_at TEXT, request_resource_id TEXT, response_resource_id TEXT,
45
- kind TEXT NOT NULL, live INTEGER NOT NULL DEFAULT 1, needs_decision INTEGER NOT NULL DEFAULT 0) STRICT;
95
+ kind TEXT NOT NULL, live INTEGER NOT NULL DEFAULT 1, needs_decision INTEGER NOT NULL DEFAULT 0, task_group_id TEXT) STRICT;
46
96
  CREATE INDEX command_run ON command(run_id);
47
97
  CREATE INDEX command_partition ON command(pid);
48
98
  CREATE INDEX command_active ON command(state, pid) WHERE live = 1 AND state IN ('queued','running');
@@ -109,17 +159,21 @@ CREATE TABLE import_partition(name TEXT PRIMARY KEY, status TEXT NOT NULL, pid I
109
159
  previous_frame_hash TEXT, source_size INTEGER, source_mtime TEXT, fingerprint TEXT, records INTEGER, digest TEXT, problem TEXT) STRICT;
110
160
  CREATE TABLE unclassified(pid INTEGER NOT NULL, seq INTEGER NOT NULL, type TEXT NOT NULL, reason TEXT NOT NULL, payload BLOB NOT NULL,
111
161
  PRIMARY KEY(pid, seq)) WITHOUT ROWID, STRICT;
112
- ${ACCOUNT_LAST_SERVICE_SQL}`;
162
+ ${ACCOUNT_LAST_SERVICE_SQL}${DEFERRED_MESSAGE_SQL}${PLAN_ANSWER_INDEX_SQL}${TASK_GROUP_COLUMN_INDEX_SQL}`;
113
163
  /** Every table the DDL creates, in creation order (for tests and the importer seam). */
114
164
  export const ENGINE_TABLES = Object.freeze([...ENGINE_SCHEMA_SQL.matchAll(/CREATE TABLE (\w+)\(/g)].map((match) => match[1]));
115
165
  /**
116
166
  * Migrations from an older `user_version` to the current one, keyed by the
117
167
  * version they start from; a stored version with no entry here (older without
118
- * a path, or newer than this engine) is refused. Each step only adds: an
119
- * older engine refuses the upgraded file as newer, so the upgrade is one-way.
168
+ * a path, or newer than this engine) is refused. An older engine refuses the
169
+ * upgraded file as newer, so every step is one-way.
120
170
  */
121
171
  const SCHEMA_MIGRATIONS = new Map([
122
172
  [1, (db) => db.exec(ACCOUNT_LAST_SERVICE_SQL)],
173
+ [2, (db) => db.exec(TASK_GROUP_INDEX_SQL)],
174
+ [3, (db) => db.exec(DEFERRED_MESSAGE_SQL)],
175
+ [4, (db) => db.exec(PLAN_ANSWER_INDEX_SQL)],
176
+ [5, (db) => db.exec(TASK_GROUP_COLUMN_SQL)],
123
177
  ]);
124
178
  export function readSchemaIdentity(db) {
125
179
  const scalar = (sql) => {
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/store/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/store/schema.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ import type { ProjectThreadPort } from "../store-contracts.js";
5
5
  import { SqlCommandQueries } from "./command-queries.js";
6
6
  import { SqlCommandPruner } from "./command-prune.js";
7
7
  import { SqlCommandStore } from "./commands.js";
8
+ import { SqlDeferredMessages } from "./deferred-messages.js";
8
9
  import { SqlEventLedger } from "./event-store.js";
9
10
  import { SqlInteractionStore } from "./interactions.js";
10
11
  import type { Obligations } from "./obligations.js";
@@ -21,11 +22,14 @@ export declare class SqlCommandRouter extends SqlProjectRouter implements Comman
21
22
  obligations: Obligations;
22
23
  terminalFiles: SqlTerminalFiles;
23
24
  pruner: SqlCommandPruner;
25
+ validateRefs?: ConstructorParameters<typeof SqlDeferredMessages>[4];
24
26
  });
25
27
  commandStore(generation: PartitionGeneration): SqlCommandStore;
26
28
  current(): SqlCommandStore;
27
29
  forRequest(params: unknown): SqlCommandStore;
28
30
  findById(id: string): SqlCommandStore | undefined;
31
+ deferredFor(id: string): SqlDeferredMessages | undefined;
32
+ deferredStore(generation: PartitionGeneration): SqlDeferredMessages;
29
33
  pruneHistory(cap: number, retentionMs: number, now: number): string[];
30
34
  ledger(generation: Pick<PartitionGeneration, "pid" | "name" | "epoch">): SqlEventLedger;
31
35
  interactionsForRequest(params: unknown): SqlInteractionStore;