@cleocode/core 2026.10.4 → 2026.10.5-rc.ci.672

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 (1260) hide show
  1. package/dist/bootstrap.d.ts.map +1 -1
  2. package/dist/bootstrap.js +7 -37
  3. package/dist/bootstrap.js.map +1 -1
  4. package/dist/build-provenance.json +2 -2
  5. package/dist/caamp/adapter.d.ts.map +1 -1
  6. package/dist/caamp/adapter.js +5 -2
  7. package/dist/caamp/adapter.js.map +1 -1
  8. package/dist/changesets/parse-frontmatter.d.ts +1 -1
  9. package/dist/changesets/parse-frontmatter.d.ts.map +1 -1
  10. package/dist/changesets/parse-frontmatter.js +2 -1
  11. package/dist/changesets/parse-frontmatter.js.map +1 -1
  12. package/dist/changesets/parser.d.ts +1 -1
  13. package/dist/changesets/parser.d.ts.map +1 -1
  14. package/dist/changesets/parser.js +2 -1
  15. package/dist/changesets/parser.js.map +1 -1
  16. package/dist/changesets/writer.d.ts +8 -1
  17. package/dist/changesets/writer.d.ts.map +1 -1
  18. package/dist/changesets/writer.js +56 -5
  19. package/dist/changesets/writer.js.map +1 -1
  20. package/dist/cloud/keys.d.ts +9 -0
  21. package/dist/cloud/keys.d.ts.map +1 -1
  22. package/dist/cloud/keys.js +11 -0
  23. package/dist/cloud/keys.js.map +1 -1
  24. package/dist/cloud/nexus-attach.d.ts +17 -0
  25. package/dist/cloud/nexus-attach.d.ts.map +1 -1
  26. package/dist/cloud/nexus-attach.js +30 -9
  27. package/dist/cloud/nexus-attach.js.map +1 -1
  28. package/dist/cloud/nexus-auth.d.ts +7 -1
  29. package/dist/cloud/nexus-auth.d.ts.map +1 -1
  30. package/dist/cloud/nexus-auth.js +7 -1
  31. package/dist/cloud/nexus-auth.js.map +1 -1
  32. package/dist/cloud/nexus-cloud-activity.d.ts.map +1 -1
  33. package/dist/cloud/nexus-cloud-activity.js +2 -1
  34. package/dist/cloud/nexus-cloud-activity.js.map +1 -1
  35. package/dist/cloud/nexus-cloud-conflicts.d.ts +48 -0
  36. package/dist/cloud/nexus-cloud-conflicts.d.ts.map +1 -0
  37. package/dist/cloud/nexus-cloud-conflicts.js +68 -0
  38. package/dist/cloud/nexus-cloud-conflicts.js.map +1 -0
  39. package/dist/cloud/nexus-cloud-status.d.ts +42 -6
  40. package/dist/cloud/nexus-cloud-status.d.ts.map +1 -1
  41. package/dist/cloud/nexus-cloud-status.js +233 -19
  42. package/dist/cloud/nexus-cloud-status.js.map +1 -1
  43. package/dist/cloud/nexus-cloud.d.ts +18 -1
  44. package/dist/cloud/nexus-cloud.d.ts.map +1 -1
  45. package/dist/cloud/nexus-cloud.js +56 -2
  46. package/dist/cloud/nexus-cloud.js.map +1 -1
  47. package/dist/cloud/nexus-credentials.d.ts +1 -1
  48. package/dist/cloud/nexus-credentials.d.ts.map +1 -1
  49. package/dist/cloud/nexus-credentials.js +1 -1
  50. package/dist/cloud/nexus-credentials.js.map +1 -1
  51. package/dist/cloud/nexus-enrol.d.ts +1 -1
  52. package/dist/cloud/nexus-enrol.d.ts.map +1 -1
  53. package/dist/cloud/nexus-enrol.js +2 -1
  54. package/dist/cloud/nexus-enrol.js.map +1 -1
  55. package/dist/cloud/nexus-first-run.d.ts +6 -2
  56. package/dist/cloud/nexus-first-run.d.ts.map +1 -1
  57. package/dist/cloud/nexus-first-run.js +8 -2
  58. package/dist/cloud/nexus-first-run.js.map +1 -1
  59. package/dist/cloud/nexus-link.d.ts +35 -4
  60. package/dist/cloud/nexus-link.d.ts.map +1 -1
  61. package/dist/cloud/nexus-link.js +172 -7
  62. package/dist/cloud/nexus-link.js.map +1 -1
  63. package/dist/cloud/nexus-presence-refresh.d.ts +65 -0
  64. package/dist/cloud/nexus-presence-refresh.d.ts.map +1 -0
  65. package/dist/cloud/nexus-presence-refresh.js +122 -0
  66. package/dist/cloud/nexus-presence-refresh.js.map +1 -0
  67. package/dist/cloud/nexus-project-history.d.ts +54 -0
  68. package/dist/cloud/nexus-project-history.d.ts.map +1 -0
  69. package/dist/cloud/nexus-project-history.js +108 -0
  70. package/dist/cloud/nexus-project-history.js.map +1 -0
  71. package/dist/cloud/nexus-vault-keys.d.ts.map +1 -1
  72. package/dist/cloud/nexus-vault-keys.js +12 -6
  73. package/dist/cloud/nexus-vault-keys.js.map +1 -1
  74. package/dist/cloud/nexus-vault.d.ts +7 -3
  75. package/dist/cloud/nexus-vault.d.ts.map +1 -1
  76. package/dist/cloud/nexus-vault.js +176 -29
  77. package/dist/cloud/nexus-vault.js.map +1 -1
  78. package/dist/cloud/presence.d.ts +1 -1
  79. package/dist/cloud/presence.d.ts.map +1 -1
  80. package/dist/cloud/presence.js +1 -1
  81. package/dist/cloud/presence.js.map +1 -1
  82. package/dist/cloud/projects.d.ts +7 -4
  83. package/dist/cloud/projects.d.ts.map +1 -1
  84. package/dist/cloud/projects.js +10 -1
  85. package/dist/cloud/projects.js.map +1 -1
  86. package/dist/cloud/signing.d.ts +14 -0
  87. package/dist/cloud/signing.d.ts.map +1 -1
  88. package/dist/cloud/signing.js +9 -0
  89. package/dist/cloud/signing.js.map +1 -1
  90. package/dist/conduit/cloud-endpoint.d.ts +96 -0
  91. package/dist/conduit/cloud-endpoint.d.ts.map +1 -0
  92. package/dist/conduit/cloud-endpoint.js +191 -0
  93. package/dist/conduit/cloud-endpoint.js.map +1 -0
  94. package/dist/conduit/conduit-client.d.ts.map +1 -1
  95. package/dist/conduit/conduit-client.js +2 -1
  96. package/dist/conduit/conduit-client.js.map +1 -1
  97. package/dist/conduit/factory.d.ts +4 -0
  98. package/dist/conduit/factory.d.ts.map +1 -1
  99. package/dist/conduit/factory.js +7 -1
  100. package/dist/conduit/factory.js.map +1 -1
  101. package/dist/conduit/http-transport.d.ts +12 -7
  102. package/dist/conduit/http-transport.d.ts.map +1 -1
  103. package/dist/conduit/http-transport.js +18 -11
  104. package/dist/conduit/http-transport.js.map +1 -1
  105. package/dist/conduit/index.d.ts +3 -1
  106. package/dist/conduit/index.d.ts.map +1 -1
  107. package/dist/conduit/index.js +3 -1
  108. package/dist/conduit/index.js.map +1 -1
  109. package/dist/conduit/sse-transport.d.ts +5 -1
  110. package/dist/conduit/sse-transport.d.ts.map +1 -1
  111. package/dist/conduit/sse-transport.js +10 -2
  112. package/dist/conduit/sse-transport.js.map +1 -1
  113. package/dist/config/registry.js +1 -1
  114. package/dist/config/registry.js.map +1 -1
  115. package/dist/core-paths.d.ts +13 -0
  116. package/dist/core-paths.d.ts.map +1 -0
  117. package/dist/core-paths.js +13 -0
  118. package/dist/core-paths.js.map +1 -0
  119. package/dist/decide/bench/source.js +1 -1
  120. package/dist/decide/bench/source.js.map +1 -1
  121. package/dist/decide/client.d.ts +1 -1
  122. package/dist/decide/client.d.ts.map +1 -1
  123. package/dist/decide/client.js +1 -1
  124. package/dist/decide/client.js.map +1 -1
  125. package/dist/decide/credentials.d.ts +1 -1
  126. package/dist/decide/credentials.d.ts.map +1 -1
  127. package/dist/decide/credentials.js +1 -1
  128. package/dist/decide/credentials.js.map +1 -1
  129. package/dist/decide/jev-wire.d.ts +1 -1
  130. package/dist/decide/jev-wire.d.ts.map +1 -1
  131. package/dist/decide/jev-wire.js +1 -1
  132. package/dist/decide/jev-wire.js.map +1 -1
  133. package/dist/decide/operations.d.ts +1 -1
  134. package/dist/decide/operations.d.ts.map +1 -1
  135. package/dist/decide/operations.js +1 -1
  136. package/dist/decide/operations.js.map +1 -1
  137. package/dist/decide/providers.d.ts +1 -1
  138. package/dist/decide/providers.d.ts.map +1 -1
  139. package/dist/decide/providers.js +1 -1
  140. package/dist/decide/providers.js.map +1 -1
  141. package/dist/decide/wizard.d.ts.map +1 -1
  142. package/dist/decide/wizard.js +1 -1
  143. package/dist/decide/wizard.js.map +1 -1
  144. package/dist/dispatch/config-domain-handler.d.ts +1 -1
  145. package/dist/dispatch/config-domain-handler.d.ts.map +1 -1
  146. package/dist/dispatch/config-domain-handler.js +1 -1
  147. package/dist/dispatch/config-domain-handler.js.map +1 -1
  148. package/dist/dispatch/contracts/ensures-schema.d.ts +1 -1
  149. package/dist/dispatch/contracts/ensures-schema.d.ts.map +1 -1
  150. package/dist/dispatch/contracts/ensures-schema.js +1 -1
  151. package/dist/dispatch/contracts/ensures-schema.js.map +1 -1
  152. package/dist/dispatch/contracts/input-contracts.d.ts +1 -1
  153. package/dist/dispatch/contracts/input-contracts.d.ts.map +1 -1
  154. package/dist/dispatch/contracts/input-contracts.js +3 -1
  155. package/dist/dispatch/contracts/input-contracts.js.map +1 -1
  156. package/dist/dispatch/describe-operation.d.ts +1 -1
  157. package/dist/dispatch/describe-operation.d.ts.map +1 -1
  158. package/dist/dispatch/describe-operation.js +1 -1
  159. package/dist/dispatch/describe-operation.js.map +1 -1
  160. package/dist/docs/display-alias.js +1 -1
  161. package/dist/docs/display-alias.js.map +1 -1
  162. package/dist/docs/docs-update.d.ts +1 -1
  163. package/dist/docs/docs-update.d.ts.map +1 -1
  164. package/dist/docs/docs-update.js +2 -1
  165. package/dist/docs/docs-update.js.map +1 -1
  166. package/dist/docs/export-document.js +14 -58300
  167. package/dist/docs/export-document.js.map +3 -3
  168. package/dist/docs/publish-pr.js +1 -1
  169. package/dist/docs/publish-pr.js.map +1 -1
  170. package/dist/docs/supersede.js +1 -1
  171. package/dist/docs/supersede.js.map +1 -1
  172. package/dist/docs/validate-body.d.ts +1 -1
  173. package/dist/docs/validate-body.d.ts.map +1 -1
  174. package/dist/docs/validate-body.js +1 -1
  175. package/dist/docs/validate-body.js.map +1 -1
  176. package/dist/docs/writer-registry.js +1 -1
  177. package/dist/docs/writer-registry.js.map +1 -1
  178. package/dist/doctor/acceptance-drift.js +1 -1
  179. package/dist/doctor/acceptance-drift.js.map +1 -1
  180. package/dist/doctor/db-substrate.d.ts +1 -1
  181. package/dist/doctor/db-substrate.d.ts.map +1 -1
  182. package/dist/doctor/db-substrate.js +1 -1
  183. package/dist/doctor/db-substrate.js.map +1 -1
  184. package/dist/doctor/invariant-audit.js +1 -1
  185. package/dist/doctor/invariant-audit.js.map +1 -1
  186. package/dist/doctor/malformed-task-ids.js +1 -1
  187. package/dist/doctor/malformed-task-ids.js.map +1 -1
  188. package/dist/doctor/row-identity-refill.d.ts +43 -0
  189. package/dist/doctor/row-identity-refill.d.ts.map +1 -0
  190. package/dist/doctor/row-identity-refill.js +186 -0
  191. package/dist/doctor/row-identity-refill.js.map +1 -0
  192. package/dist/doctor/superseded-store.d.ts.map +1 -1
  193. package/dist/doctor/superseded-store.js +51 -2
  194. package/dist/doctor/superseded-store.js.map +1 -1
  195. package/dist/doctor/sync-repair.d.ts +39 -0
  196. package/dist/doctor/sync-repair.d.ts.map +1 -0
  197. package/dist/doctor/sync-repair.js +71 -0
  198. package/dist/doctor/sync-repair.js.map +1 -0
  199. package/dist/doctor/sync-triggers.d.ts +63 -4
  200. package/dist/doctor/sync-triggers.d.ts.map +1 -1
  201. package/dist/doctor/sync-triggers.js +352 -9
  202. package/dist/doctor/sync-triggers.js.map +1 -1
  203. package/dist/doctor/twin-collapse.js +1 -1
  204. package/dist/doctor/twin-collapse.js.map +1 -1
  205. package/dist/engine/engine-ops.d.ts.map +1 -1
  206. package/dist/engine/engine-ops.js +7 -1
  207. package/dist/engine/engine-ops.js.map +1 -1
  208. package/dist/engine-result.d.ts +1 -1
  209. package/dist/engine-result.d.ts.map +1 -1
  210. package/dist/engine-result.js +1 -1
  211. package/dist/engine-result.js.map +1 -1
  212. package/dist/error-registry.d.ts +1 -1
  213. package/dist/error-registry.d.ts.map +1 -1
  214. package/dist/error-registry.js +1 -1
  215. package/dist/error-registry.js.map +1 -1
  216. package/dist/errors-to-engine.d.ts +20 -0
  217. package/dist/errors-to-engine.d.ts.map +1 -1
  218. package/dist/errors-to-engine.js +37 -0
  219. package/dist/errors-to-engine.js.map +1 -1
  220. package/dist/gc/janitor.d.ts +23 -4
  221. package/dist/gc/janitor.d.ts.map +1 -1
  222. package/dist/gc/janitor.js +71 -11
  223. package/dist/gc/janitor.js.map +1 -1
  224. package/dist/goal/continuation.d.ts +1 -1
  225. package/dist/goal/continuation.d.ts.map +1 -1
  226. package/dist/goal/continuation.js +1 -1
  227. package/dist/goal/continuation.js.map +1 -1
  228. package/dist/goal/judge.d.ts.map +1 -1
  229. package/dist/goal/judge.js +2 -1
  230. package/dist/goal/judge.js.map +1 -1
  231. package/dist/hooks/handlers/session-hooks.d.ts.map +1 -1
  232. package/dist/hooks/handlers/session-hooks.js +1 -1
  233. package/dist/hooks/handlers/session-hooks.js.map +1 -1
  234. package/dist/init/engine-ops.js +1 -1
  235. package/dist/init/engine-ops.js.map +1 -1
  236. package/dist/init.d.ts.map +1 -1
  237. package/dist/init.js +10 -41
  238. package/dist/init.js.map +1 -1
  239. package/dist/inject/index.js +1 -1
  240. package/dist/inject/index.js.map +1 -1
  241. package/dist/injection.d.ts.map +1 -1
  242. package/dist/injection.js +13 -0
  243. package/dist/injection.js.map +1 -1
  244. package/dist/internal.d.ts +4 -3
  245. package/dist/internal.d.ts.map +1 -1
  246. package/dist/internal.js +7 -4
  247. package/dist/internal.js.map +1 -1
  248. package/dist/issue/create.js +1 -1
  249. package/dist/issue/create.js.map +1 -1
  250. package/dist/json-schema-validator.js +1 -1
  251. package/dist/json-schema-validator.js.map +1 -1
  252. package/dist/lifecycle/index.d.ts +2 -23
  253. package/dist/lifecycle/index.d.ts.map +1 -1
  254. package/dist/lifecycle/index.js +5 -112
  255. package/dist/lifecycle/index.js.map +1 -1
  256. package/dist/lifecycle/kind-requirements.d.ts +1 -1
  257. package/dist/lifecycle/kind-requirements.d.ts.map +1 -1
  258. package/dist/lifecycle/kind-requirements.js +1 -1
  259. package/dist/lifecycle/kind-requirements.js.map +1 -1
  260. package/dist/lifecycle/pipeline.js +1 -1
  261. package/dist/lifecycle/pipeline.js.map +1 -1
  262. package/dist/lifecycle/resume.js +2 -2
  263. package/dist/lifecycle/resume.js.map +1 -1
  264. package/dist/lifecycle/state-machine.js +1 -1
  265. package/dist/lifecycle/state-machine.js.map +1 -1
  266. package/dist/lifecycle/status.d.ts +46 -0
  267. package/dist/lifecycle/status.d.ts.map +1 -0
  268. package/dist/lifecycle/status.js +147 -0
  269. package/dist/lifecycle/status.js.map +1 -0
  270. package/dist/lifecycle/verification/satisfies-validator.js +1 -1
  271. package/dist/lifecycle/verification/satisfies-validator.js.map +1 -1
  272. package/dist/llm/catalog-seeder.d.ts +1 -1
  273. package/dist/llm/catalog-seeder.d.ts.map +1 -1
  274. package/dist/llm/catalog-seeder.js +1 -1
  275. package/dist/llm/catalog-seeder.js.map +1 -1
  276. package/dist/llm/cli-ops.d.ts +1 -2
  277. package/dist/llm/cli-ops.d.ts.map +1 -1
  278. package/dist/llm/cli-ops.js +2 -1
  279. package/dist/llm/cli-ops.js.map +1 -1
  280. package/dist/llm/credential-seeders/claude-code-seeder.js +1 -1
  281. package/dist/llm/credential-seeders/claude-code-seeder.js.map +1 -1
  282. package/dist/llm/credential-seeders/cleo-pkce-seeder.js +1 -1
  283. package/dist/llm/credential-seeders/cleo-pkce-seeder.js.map +1 -1
  284. package/dist/llm/credential-writeback.js +1 -1
  285. package/dist/llm/credential-writeback.js.map +1 -1
  286. package/dist/llm/entity-ops.d.ts +1 -1
  287. package/dist/llm/entity-ops.d.ts.map +1 -1
  288. package/dist/llm/entity-ops.js +2 -1
  289. package/dist/llm/entity-ops.js.map +1 -1
  290. package/dist/llm/llm-queue-admit.d.ts +1 -1
  291. package/dist/llm/llm-queue-admit.d.ts.map +1 -1
  292. package/dist/llm/llm-queue-admit.js +2 -1
  293. package/dist/llm/llm-queue-admit.js.map +1 -1
  294. package/dist/llm/onboarding/login-engine.js +1 -1
  295. package/dist/llm/onboarding/login-engine.js.map +1 -1
  296. package/dist/llm/pi/pi-errors.d.ts +1 -1
  297. package/dist/llm/pi/pi-errors.d.ts.map +1 -1
  298. package/dist/llm/pi/pi-errors.js +1 -1
  299. package/dist/llm/pi/pi-errors.js.map +1 -1
  300. package/dist/llm/plugin-facade.d.ts.map +1 -1
  301. package/dist/llm/plugin-facade.js +14 -93552
  302. package/dist/llm/plugin-facade.js.map +3 -3
  303. package/dist/llm/system-key.d.ts +1 -1
  304. package/dist/llm/system-key.d.ts.map +1 -1
  305. package/dist/llm/system-key.js +1 -1
  306. package/dist/llm/system-key.js.map +1 -1
  307. package/dist/llm/system-of-use-registry.d.ts +1 -1
  308. package/dist/llm/system-of-use-registry.d.ts.map +1 -1
  309. package/dist/llm/system-of-use-registry.js +1 -1
  310. package/dist/llm/system-of-use-registry.js.map +1 -1
  311. package/dist/llm/system-resolver.js +1 -1
  312. package/dist/llm/system-resolver.js.map +1 -1
  313. package/dist/memory/brain-host.d.ts +71 -0
  314. package/dist/memory/brain-host.d.ts.map +1 -0
  315. package/dist/memory/brain-host.js +84 -0
  316. package/dist/memory/brain-host.js.map +1 -0
  317. package/dist/memory/brain-writer-handlers.d.ts.map +1 -1
  318. package/dist/memory/brain-writer-handlers.js +24 -7
  319. package/dist/memory/brain-writer-handlers.js.map +1 -1
  320. package/dist/memory/brain-writer-thread.d.ts +66 -6
  321. package/dist/memory/brain-writer-thread.d.ts.map +1 -1
  322. package/dist/memory/brain-writer-thread.js +67 -10
  323. package/dist/memory/brain-writer-thread.js.map +1 -1
  324. package/dist/memory/brain-writer-worker.js +7 -0
  325. package/dist/memory/brain-writer-worker.js.map +1 -1
  326. package/dist/memory/decisions.js +2 -1
  327. package/dist/memory/decisions.js.map +1 -1
  328. package/dist/memory/embedding-backfill.d.ts +70 -0
  329. package/dist/memory/embedding-backfill.d.ts.map +1 -0
  330. package/dist/memory/embedding-backfill.js +110 -0
  331. package/dist/memory/embedding-backfill.js.map +1 -0
  332. package/dist/memory/index.js +1 -1
  333. package/dist/memory/index.js.map +1 -1
  334. package/dist/memory/manifest-identity.js +1 -1
  335. package/dist/memory/manifest-identity.js.map +1 -1
  336. package/dist/memory/retrieval/observe.d.ts +23 -0
  337. package/dist/memory/retrieval/observe.d.ts.map +1 -1
  338. package/dist/memory/retrieval/observe.js +82 -36
  339. package/dist/memory/retrieval/observe.js.map +1 -1
  340. package/dist/metrics/model-provider-registry.d.ts.map +1 -1
  341. package/dist/metrics/model-provider-registry.js +6 -0
  342. package/dist/metrics/model-provider-registry.js.map +1 -1
  343. package/dist/metrics/token-service.d.ts +17 -0
  344. package/dist/metrics/token-service.d.ts.map +1 -1
  345. package/dist/metrics/token-service.js +17 -0
  346. package/dist/metrics/token-service.js.map +1 -1
  347. package/dist/migration/index.js +1 -1
  348. package/dist/migration/index.js.map +1 -1
  349. package/dist/migration/manual/T10165-backfill-adr-index.js +1 -1
  350. package/dist/migration/manual/T10165-backfill-adr-index.js.map +1 -1
  351. package/dist/nexus/assessment-projection.d.ts +1 -1
  352. package/dist/nexus/assessment-projection.d.ts.map +1 -1
  353. package/dist/nexus/assessment-projection.js +1 -1
  354. package/dist/nexus/assessment-projection.js.map +1 -1
  355. package/dist/nexus/deps.d.ts +1 -1
  356. package/dist/nexus/deps.d.ts.map +1 -1
  357. package/dist/nexus/deps.js +1 -1
  358. package/dist/nexus/deps.js.map +1 -1
  359. package/dist/nexus/fleet-status.d.ts +1 -1
  360. package/dist/nexus/fleet-status.d.ts.map +1 -1
  361. package/dist/nexus/fleet-status.js +1 -1
  362. package/dist/nexus/fleet-status.js.map +1 -1
  363. package/dist/nexus/identity.js +1 -1
  364. package/dist/nexus/identity.js.map +1 -1
  365. package/dist/nexus/permissions.d.ts +1 -1
  366. package/dist/nexus/permissions.d.ts.map +1 -1
  367. package/dist/nexus/permissions.js +1 -1
  368. package/dist/nexus/permissions.js.map +1 -1
  369. package/dist/nexus/query-dsl.js +1 -1
  370. package/dist/nexus/query-dsl.js.map +1 -1
  371. package/dist/nexus/query.d.ts +1 -2
  372. package/dist/nexus/query.d.ts.map +1 -1
  373. package/dist/nexus/query.js +1 -1
  374. package/dist/nexus/query.js.map +1 -1
  375. package/dist/nexus/registry-errors.js +1 -1
  376. package/dist/nexus/registry-errors.js.map +1 -1
  377. package/dist/nexus/registry.d.ts +1 -1
  378. package/dist/nexus/registry.d.ts.map +1 -1
  379. package/dist/nexus/registry.js +1 -1
  380. package/dist/nexus/registry.js.map +1 -1
  381. package/dist/nexus/workspace.js +1 -1
  382. package/dist/nexus/workspace.js.map +1 -1
  383. package/dist/orchestrate/pivot.d.ts.map +1 -1
  384. package/dist/orchestrate/pivot.js +2 -1
  385. package/dist/orchestrate/pivot.js.map +1 -1
  386. package/dist/orchestrate/query-ops.js +1 -1
  387. package/dist/orchestrate/query-ops.js.map +1 -1
  388. package/dist/orchestrate/spawn-ops.js +1 -1
  389. package/dist/orchestrate/spawn-ops.js.map +1 -1
  390. package/dist/orchestration/atomicity.d.ts +1 -1
  391. package/dist/orchestration/atomicity.d.ts.map +1 -1
  392. package/dist/orchestration/atomicity.js +1 -1
  393. package/dist/orchestration/atomicity.js.map +1 -1
  394. package/dist/orchestration/classify.js +1 -1
  395. package/dist/orchestration/classify.js.map +1 -1
  396. package/dist/orchestration/index.js +1 -1
  397. package/dist/orchestration/index.js.map +1 -1
  398. package/dist/orchestration/parallel.js +1 -1
  399. package/dist/orchestration/parallel.js.map +1 -1
  400. package/dist/orchestration/protocol-validators.d.ts +1 -1
  401. package/dist/orchestration/protocol-validators.d.ts.map +1 -1
  402. package/dist/orchestration/protocol-validators.js +1 -1
  403. package/dist/orchestration/protocol-validators.js.map +1 -1
  404. package/dist/orchestration/skill-ops.js +1 -1
  405. package/dist/orchestration/skill-ops.js.map +1 -1
  406. package/dist/orchestration/spawn-prompt.d.ts +9 -0
  407. package/dist/orchestration/spawn-prompt.d.ts.map +1 -1
  408. package/dist/orchestration/spawn-prompt.js +13 -2
  409. package/dist/orchestration/spawn-prompt.js.map +1 -1
  410. package/dist/orchestration/spawn.js +1 -1
  411. package/dist/orchestration/spawn.js.map +1 -1
  412. package/dist/paths.d.ts +3 -1
  413. package/dist/paths.d.ts.map +1 -1
  414. package/dist/paths.js +3 -1
  415. package/dist/paths.js.map +1 -1
  416. package/dist/phases/deps.js +1 -1
  417. package/dist/phases/deps.js.map +1 -1
  418. package/dist/phases/index.js +1 -1
  419. package/dist/phases/index.js.map +1 -1
  420. package/dist/project-lifecycle.js +3 -3
  421. package/dist/project-lifecycle.js.map +1 -1
  422. package/dist/registrations.d.ts +30 -0
  423. package/dist/registrations.d.ts.map +1 -0
  424. package/dist/registrations.js +30 -0
  425. package/dist/registrations.js.map +1 -0
  426. package/dist/release/changesets-aggregator.js +1 -1
  427. package/dist/release/changesets-aggregator.js.map +1 -1
  428. package/dist/release/ci-evidence.d.ts +68 -2
  429. package/dist/release/ci-evidence.d.ts.map +1 -1
  430. package/dist/release/ci-evidence.js +203 -39
  431. package/dist/release/ci-evidence.js.map +1 -1
  432. package/dist/release/invariants/archive-reason-invariant.d.ts +1 -1
  433. package/dist/release/invariants/archive-reason-invariant.d.ts.map +1 -1
  434. package/dist/release/invariants/archive-reason-invariant.js +1 -1
  435. package/dist/release/invariants/archive-reason-invariant.js.map +1 -1
  436. package/dist/release/invariants/registry.d.ts +1 -1
  437. package/dist/release/invariants/registry.d.ts.map +1 -1
  438. package/dist/release/invariants/registry.js +1 -1
  439. package/dist/release/invariants/registry.js.map +1 -1
  440. package/dist/release/open.d.ts +1 -1
  441. package/dist/release/open.d.ts.map +1 -1
  442. package/dist/release/open.js +3 -1
  443. package/dist/release/open.js.map +1 -1
  444. package/dist/release/plan.d.ts +1 -2
  445. package/dist/release/plan.d.ts.map +1 -1
  446. package/dist/release/plan.js +4 -1
  447. package/dist/release/plan.js.map +1 -1
  448. package/dist/release/pr-evidence.d.ts +1 -1
  449. package/dist/release/pr-evidence.d.ts.map +1 -1
  450. package/dist/release/pr-evidence.js +2 -2
  451. package/dist/release/pr-evidence.js.map +1 -1
  452. package/dist/release/preflight-skip.d.ts +5 -0
  453. package/dist/release/preflight-skip.d.ts.map +1 -1
  454. package/dist/release/preflight-skip.js +60 -1
  455. package/dist/release/preflight-skip.js.map +1 -1
  456. package/dist/release/reconcile.d.ts +1 -1
  457. package/dist/release/reconcile.d.ts.map +1 -1
  458. package/dist/release/reconcile.js +19 -3
  459. package/dist/release/reconcile.js.map +1 -1
  460. package/dist/release/version-bump.d.ts +1 -1
  461. package/dist/release/version-bump.d.ts.map +1 -1
  462. package/dist/release/version-bump.js +1 -1
  463. package/dist/release/version-bump.js.map +1 -1
  464. package/dist/resources/admission-ledger.d.ts +587 -0
  465. package/dist/resources/admission-ledger.d.ts.map +1 -0
  466. package/dist/resources/admission-ledger.js +1401 -0
  467. package/dist/resources/admission-ledger.js.map +1 -0
  468. package/dist/resources/backend.d.ts +37 -1
  469. package/dist/resources/backend.d.ts.map +1 -1
  470. package/dist/resources/backend.js +1 -1
  471. package/dist/resources/darwin-backend.d.ts +152 -26
  472. package/dist/resources/darwin-backend.d.ts.map +1 -1
  473. package/dist/resources/darwin-backend.js +217 -34
  474. package/dist/resources/darwin-backend.js.map +1 -1
  475. package/dist/resources/governor.d.ts +36 -39
  476. package/dist/resources/governor.d.ts.map +1 -1
  477. package/dist/resources/governor.js +140 -49
  478. package/dist/resources/governor.js.map +1 -1
  479. package/dist/resources/pressure-gate.d.ts +148 -0
  480. package/dist/resources/pressure-gate.d.ts.map +1 -0
  481. package/dist/resources/pressure-gate.js +273 -0
  482. package/dist/resources/pressure-gate.js.map +1 -0
  483. package/dist/resources/run-admission.d.ts +33 -45
  484. package/dist/resources/run-admission.d.ts.map +1 -1
  485. package/dist/resources/run-admission.js +50 -118
  486. package/dist/resources/run-admission.js.map +1 -1
  487. package/dist/resources/run-class.d.ts +60 -4
  488. package/dist/resources/run-class.d.ts.map +1 -1
  489. package/dist/resources/run-class.js +473 -6
  490. package/dist/resources/run-class.js.map +1 -1
  491. package/dist/resources/run-governed.d.ts +43 -11
  492. package/dist/resources/run-governed.d.ts.map +1 -1
  493. package/dist/resources/run-governed.js +139 -99
  494. package/dist/resources/run-governed.js.map +1 -1
  495. package/dist/resources/slot-holder.d.ts +12 -4
  496. package/dist/resources/slot-holder.d.ts.map +1 -1
  497. package/dist/resources/slot-holder.js +19 -14
  498. package/dist/resources/slot-holder.js.map +1 -1
  499. package/dist/resources/spawn-wrapper.js +1 -1
  500. package/dist/resources/spawn-wrapper.js.map +1 -1
  501. package/dist/resources/supervisor-admit.d.ts +1 -1
  502. package/dist/resources/supervisor-admit.d.ts.map +1 -1
  503. package/dist/resources/supervisor-admit.js +2 -1
  504. package/dist/resources/supervisor-admit.js.map +1 -1
  505. package/dist/runtime/openapi/generate-openapi.d.ts +1 -1
  506. package/dist/runtime/openapi/generate-openapi.d.ts.map +1 -1
  507. package/dist/runtime/openapi/generate-openapi.js +1 -1
  508. package/dist/runtime/openapi/generate-openapi.js.map +1 -1
  509. package/dist/sagas/index.d.ts +3 -1
  510. package/dist/sagas/index.d.ts.map +1 -1
  511. package/dist/sagas/index.js +2 -5
  512. package/dist/sagas/index.js.map +1 -1
  513. package/dist/scaffold/project-identity.js +1 -1
  514. package/dist/scaffold/project-identity.js.map +1 -1
  515. package/dist/sdk/validator-attest.d.ts +1 -1
  516. package/dist/sdk/validator-attest.d.ts.map +1 -1
  517. package/dist/sdk/validator-attest.js +1 -1
  518. package/dist/sdk/validator-attest.js.map +1 -1
  519. package/dist/sdk/validator-reject.d.ts +1 -1
  520. package/dist/sdk/validator-reject.d.ts.map +1 -1
  521. package/dist/sdk/validator-reject.js +1 -1
  522. package/dist/sdk/validator-reject.js.map +1 -1
  523. package/dist/security/input-sanitization.js +2 -1
  524. package/dist/security/input-sanitization.js.map +1 -1
  525. package/dist/security/override-cap.js +1 -1
  526. package/dist/security/override-cap.js.map +1 -1
  527. package/dist/security/owner-override-auth.js +1 -1
  528. package/dist/security/owner-override-auth.js.map +1 -1
  529. package/dist/security/shared-evidence-tracker.js +1 -1
  530. package/dist/security/shared-evidence-tracker.js.map +1 -1
  531. package/dist/selfimprove/fix-gen.js +35 -93037
  532. package/dist/selfimprove/fix-gen.js.map +3 -3
  533. package/dist/sentient/daemon.d.ts.map +1 -1
  534. package/dist/sentient/daemon.js +3 -0
  535. package/dist/sentient/daemon.js.map +1 -1
  536. package/dist/sentient/tick.d.ts +7 -0
  537. package/dist/sentient/tick.d.ts.map +1 -1
  538. package/dist/sentient/tick.js +11 -0
  539. package/dist/sentient/tick.js.map +1 -1
  540. package/dist/sequence/index.js +1 -1
  541. package/dist/sequence/index.js.map +1 -1
  542. package/dist/session/engine-ops.d.ts +3 -45
  543. package/dist/session/engine-ops.d.ts.map +1 -1
  544. package/dist/session/engine-ops.js +63 -112
  545. package/dist/session/engine-ops.js.map +1 -1
  546. package/dist/session/status-op.d.ts +40 -0
  547. package/dist/session/status-op.d.ts.map +1 -0
  548. package/dist/session/status-op.js +71 -0
  549. package/dist/session/status-op.js.map +1 -0
  550. package/dist/session/task-current.d.ts +31 -0
  551. package/dist/session/task-current.d.ts.map +1 -0
  552. package/dist/session/task-current.js +59 -0
  553. package/dist/session/task-current.js.map +1 -0
  554. package/dist/sessions/assumptions.d.ts +1 -1
  555. package/dist/sessions/assumptions.d.ts.map +1 -1
  556. package/dist/sessions/assumptions.js +1 -1
  557. package/dist/sessions/assumptions.js.map +1 -1
  558. package/dist/sessions/context-inject.js +1 -1
  559. package/dist/sessions/context-inject.js.map +1 -1
  560. package/dist/sessions/decisions.d.ts +1 -1
  561. package/dist/sessions/decisions.d.ts.map +1 -1
  562. package/dist/sessions/decisions.js +1 -1
  563. package/dist/sessions/decisions.js.map +1 -1
  564. package/dist/sessions/focus-state-store.d.ts.map +1 -1
  565. package/dist/sessions/focus-state-store.js +2 -1
  566. package/dist/sessions/focus-state-store.js.map +1 -1
  567. package/dist/sessions/handoff.js +1 -1
  568. package/dist/sessions/handoff.js.map +1 -1
  569. package/dist/sessions/index.d.ts +1 -2
  570. package/dist/sessions/index.d.ts.map +1 -1
  571. package/dist/sessions/index.js +3 -2
  572. package/dist/sessions/index.js.map +1 -1
  573. package/dist/sessions/session-drift.js +1 -1
  574. package/dist/sessions/session-drift.js.map +1 -1
  575. package/dist/sessions/session-end-snapshot-entry.d.ts +4 -0
  576. package/dist/sessions/session-end-snapshot-entry.d.ts.map +1 -1
  577. package/dist/sessions/session-end-snapshot-entry.js +11 -0
  578. package/dist/sessions/session-end-snapshot-entry.js.map +1 -1
  579. package/dist/sessions/session-end-snapshot.d.ts.map +1 -1
  580. package/dist/sessions/session-end-snapshot.js +4 -0
  581. package/dist/sessions/session-end-snapshot.js.map +1 -1
  582. package/dist/sessions/session-enforcement.js +1 -1
  583. package/dist/sessions/session-enforcement.js.map +1 -1
  584. package/dist/sessions/session-show.d.ts +1 -2
  585. package/dist/sessions/session-show.d.ts.map +1 -1
  586. package/dist/sessions/session-show.js +1 -1
  587. package/dist/sessions/session-show.js.map +1 -1
  588. package/dist/sessions/session-stats.js +1 -1
  589. package/dist/sessions/session-stats.js.map +1 -1
  590. package/dist/sessions/session-suspend.d.ts +1 -2
  591. package/dist/sessions/session-suspend.d.ts.map +1 -1
  592. package/dist/sessions/session-suspend.js +1 -1
  593. package/dist/sessions/session-suspend.js.map +1 -1
  594. package/dist/sessions/session-switch.js +1 -1
  595. package/dist/sessions/session-switch.js.map +1 -1
  596. package/dist/sessions/snapshot.js +1 -1
  597. package/dist/sessions/snapshot.js.map +1 -1
  598. package/dist/sessions/terminal-identity.d.ts +1 -1
  599. package/dist/sessions/terminal-identity.d.ts.map +1 -1
  600. package/dist/sessions/terminal-identity.js +1 -1
  601. package/dist/sessions/terminal-identity.js.map +1 -1
  602. package/dist/setup/sections/integrations.d.ts.map +1 -1
  603. package/dist/setup/sections/integrations.js +9 -0
  604. package/dist/setup/sections/integrations.js.map +1 -1
  605. package/dist/setup/sections/models-roles.js +1 -1
  606. package/dist/setup/sections/models-roles.js.map +1 -1
  607. package/dist/setup/sections/verification.d.ts.map +1 -1
  608. package/dist/setup/sections/verification.js +8 -2
  609. package/dist/setup/sections/verification.js.map +1 -1
  610. package/dist/shutdown.d.ts +24 -0
  611. package/dist/shutdown.d.ts.map +1 -1
  612. package/dist/shutdown.js +30 -1
  613. package/dist/shutdown.js.map +1 -1
  614. package/dist/skills/agents/install.d.ts +46 -6
  615. package/dist/skills/agents/install.d.ts.map +1 -1
  616. package/dist/skills/agents/install.js +86 -17
  617. package/dist/skills/agents/install.js.map +1 -1
  618. package/dist/skills/injection/subagent.js +1 -1
  619. package/dist/skills/injection/subagent.js.map +1 -1
  620. package/dist/skills/manifests/research.d.ts.map +1 -1
  621. package/dist/skills/manifests/research.js +2 -1
  622. package/dist/skills/manifests/research.js.map +1 -1
  623. package/dist/skills/orchestrator/spawn.js +1 -1
  624. package/dist/skills/orchestrator/spawn.js.map +1 -1
  625. package/dist/skills/orchestrator/validator.js +1 -1
  626. package/dist/skills/orchestrator/validator.js.map +1 -1
  627. package/dist/snapshot/index.d.ts.map +1 -1
  628. package/dist/snapshot/index.js +13 -0
  629. package/dist/snapshot/index.js.map +1 -1
  630. package/dist/spawn/agent-identity.js +1 -1
  631. package/dist/spawn/agent-identity.js.map +1 -1
  632. package/dist/stats/index.d.ts.map +1 -1
  633. package/dist/stats/index.js +2 -1
  634. package/dist/stats/index.js.map +1 -1
  635. package/dist/store/agent-install.d.ts.map +1 -1
  636. package/dist/store/agent-install.js +2 -1
  637. package/dist/store/agent-install.js.map +1 -1
  638. package/dist/store/agent-registry-accessor.d.ts +1 -0
  639. package/dist/store/agent-registry-accessor.d.ts.map +1 -1
  640. package/dist/store/agent-registry-accessor.js +3 -1
  641. package/dist/store/agent-registry-accessor.js.map +1 -1
  642. package/dist/store/atomic.js +1 -1
  643. package/dist/store/atomic.js.map +1 -1
  644. package/dist/store/attachment-store.js +1 -1
  645. package/dist/store/attachment-store.js.map +1 -1
  646. package/dist/store/audit-log-schema.d.ts +645 -0
  647. package/dist/store/audit-log-schema.d.ts.map +1 -0
  648. package/dist/store/audit-log-schema.js +30 -0
  649. package/dist/store/audit-log-schema.js.map +1 -0
  650. package/dist/store/background-ops.d.ts +26 -0
  651. package/dist/store/background-ops.d.ts.map +1 -1
  652. package/dist/store/background-ops.js +46 -0
  653. package/dist/store/background-ops.js.map +1 -1
  654. package/dist/store/backup-recover.d.ts +36 -1
  655. package/dist/store/backup-recover.d.ts.map +1 -1
  656. package/dist/store/backup-recover.js +99 -1
  657. package/dist/store/backup-recover.js.map +1 -1
  658. package/dist/store/backup-verify.d.ts +1 -1
  659. package/dist/store/backup-verify.d.ts.map +1 -1
  660. package/dist/store/backup-verify.js +6 -1
  661. package/dist/store/backup-verify.js.map +1 -1
  662. package/dist/store/backup.js +1 -1
  663. package/dist/store/backup.js.map +1 -1
  664. package/dist/store/conduit-sqlite.d.ts.map +1 -1
  665. package/dist/store/conduit-sqlite.js +2 -26
  666. package/dist/store/conduit-sqlite.js.map +1 -1
  667. package/dist/store/converters.js +1 -1
  668. package/dist/store/converters.js.map +1 -1
  669. package/dist/store/db-helpers.js +1 -1
  670. package/dist/store/db-helpers.js.map +1 -1
  671. package/dist/store/dependency-cycles.js +1 -1
  672. package/dist/store/dependency-cycles.js.map +1 -1
  673. package/dist/store/display-id-alias.d.ts +2 -2
  674. package/dist/store/display-id-alias.d.ts.map +1 -1
  675. package/dist/store/display-id-alias.js +5 -28
  676. package/dist/store/display-id-alias.js.map +1 -1
  677. package/dist/store/drizzle-node-sqlite.d.ts +56 -0
  678. package/dist/store/drizzle-node-sqlite.d.ts.map +1 -0
  679. package/dist/store/drizzle-node-sqlite.js +87 -0
  680. package/dist/store/drizzle-node-sqlite.js.map +1 -0
  681. package/dist/store/dual-scope-db.d.ts +26 -33
  682. package/dist/store/dual-scope-db.d.ts.map +1 -1
  683. package/dist/store/dual-scope-db.js +416 -127
  684. package/dist/store/dual-scope-db.js.map +1 -1
  685. package/dist/store/exodus/abort-events.d.ts +134 -0
  686. package/dist/store/exodus/abort-events.d.ts.map +1 -1
  687. package/dist/store/exodus/abort-events.js +201 -0
  688. package/dist/store/exodus/abort-events.js.map +1 -1
  689. package/dist/store/exodus/migrate.d.ts +7 -0
  690. package/dist/store/exodus/migrate.d.ts.map +1 -1
  691. package/dist/store/exodus/migrate.js +156 -118
  692. package/dist/store/exodus/migrate.js.map +1 -1
  693. package/dist/store/exodus/on-open.d.ts +36 -0
  694. package/dist/store/exodus/on-open.d.ts.map +1 -1
  695. package/dist/store/exodus/on-open.js +102 -27
  696. package/dist/store/exodus/on-open.js.map +1 -1
  697. package/dist/store/exodus/prior-recoveries.d.ts +75 -0
  698. package/dist/store/exodus/prior-recoveries.d.ts.map +1 -0
  699. package/dist/store/exodus/prior-recoveries.js +122 -0
  700. package/dist/store/exodus/prior-recoveries.js.map +1 -0
  701. package/dist/store/exodus/reconcile.d.ts.map +1 -1
  702. package/dist/store/exodus/reconcile.js +188 -24
  703. package/dist/store/exodus/reconcile.js.map +1 -1
  704. package/dist/store/exodus/runtime-targets.d.ts +3 -3
  705. package/dist/store/exodus/runtime-targets.js +3 -3
  706. package/dist/store/exodus/task-id-collision-sql.d.ts +52 -0
  707. package/dist/store/exodus/task-id-collision-sql.d.ts.map +1 -0
  708. package/dist/store/exodus/task-id-collision-sql.js +97 -0
  709. package/dist/store/exodus/task-id-collision-sql.js.map +1 -0
  710. package/dist/store/exodus/task-id-remap.d.ts +113 -0
  711. package/dist/store/exodus/task-id-remap.d.ts.map +1 -0
  712. package/dist/store/exodus/task-id-remap.js +301 -0
  713. package/dist/store/exodus/task-id-remap.js.map +1 -0
  714. package/dist/store/exodus/verify-migration.js +1 -1
  715. package/dist/store/exodus/verify-migration.js.map +1 -1
  716. package/dist/store/exodus/write-guard.d.ts +136 -0
  717. package/dist/store/exodus/write-guard.d.ts.map +1 -0
  718. package/dist/store/exodus/write-guard.js +289 -0
  719. package/dist/store/exodus/write-guard.js.map +1 -0
  720. package/dist/store/identity-share.d.ts +31 -0
  721. package/dist/store/identity-share.d.ts.map +1 -0
  722. package/dist/store/identity-share.js +54 -0
  723. package/dist/store/identity-share.js.map +1 -0
  724. package/dist/store/import-remap.js +1 -1
  725. package/dist/store/import-remap.js.map +1 -1
  726. package/dist/store/import-sort.js +1 -1
  727. package/dist/store/import-sort.js.map +1 -1
  728. package/dist/store/json.js +1 -1
  729. package/dist/store/json.js.map +1 -1
  730. package/dist/store/legacy-tasks-lineage.js +3 -3
  731. package/dist/store/legacy-tasks-lineage.js.map +1 -1
  732. package/dist/store/lock.d.ts +17 -0
  733. package/dist/store/lock.d.ts.map +1 -1
  734. package/dist/store/lock.js +18 -1
  735. package/dist/store/lock.js.map +1 -1
  736. package/dist/store/memory-sqlite.d.ts.map +1 -1
  737. package/dist/store/memory-sqlite.js +2 -25
  738. package/dist/store/memory-sqlite.js.map +1 -1
  739. package/dist/store/migration-files.d.ts +30 -0
  740. package/dist/store/migration-files.d.ts.map +1 -0
  741. package/dist/store/migration-files.js +59 -0
  742. package/dist/store/migration-files.js.map +1 -0
  743. package/dist/store/migration-manager.d.ts.map +1 -1
  744. package/dist/store/migration-manager.js +14 -14
  745. package/dist/store/migration-manager.js.map +1 -1
  746. package/dist/store/migration-runner.d.ts.map +1 -1
  747. package/dist/store/migration-runner.js +2 -2
  748. package/dist/store/migration-runner.js.map +1 -1
  749. package/dist/store/migration-sqlite.d.ts +1 -1
  750. package/dist/store/migration-sqlite.d.ts.map +1 -1
  751. package/dist/store/migration-sqlite.js +290 -355
  752. package/dist/store/migration-sqlite.js.map +1 -1
  753. package/dist/store/open-cleo-db.d.ts.map +1 -1
  754. package/dist/store/open-cleo-db.js +4 -2
  755. package/dist/store/open-cleo-db.js.map +1 -1
  756. package/dist/store/pid-alive.d.ts +15 -0
  757. package/dist/store/pid-alive.d.ts.map +1 -0
  758. package/dist/store/pid-alive.js +24 -0
  759. package/dist/store/pid-alive.js.map +1 -0
  760. package/dist/store/portable-bundle-scan.d.ts +1 -1
  761. package/dist/store/portable-bundle-scan.d.ts.map +1 -1
  762. package/dist/store/portable-bundle-scan.js +1 -1
  763. package/dist/store/portable-bundle-scan.js.map +1 -1
  764. package/dist/store/portable-bundle.d.ts +10 -1
  765. package/dist/store/portable-bundle.d.ts.map +1 -1
  766. package/dist/store/portable-bundle.js +10 -1
  767. package/dist/store/portable-bundle.js.map +1 -1
  768. package/dist/store/recover-malformed-db.d.ts +1 -1
  769. package/dist/store/recover-malformed-db.d.ts.map +1 -1
  770. package/dist/store/recover-malformed-db.js +1 -1
  771. package/dist/store/recover-malformed-db.js.map +1 -1
  772. package/dist/store/repair-malformed-dbs.d.ts +1 -1
  773. package/dist/store/repair-malformed-dbs.d.ts.map +1 -1
  774. package/dist/store/repair-malformed-dbs.js +1 -1
  775. package/dist/store/repair-malformed-dbs.js.map +1 -1
  776. package/dist/store/restore-marker.d.ts +89 -0
  777. package/dist/store/restore-marker.d.ts.map +1 -0
  778. package/dist/store/restore-marker.js +197 -0
  779. package/dist/store/restore-marker.js.map +1 -0
  780. package/dist/store/restore-store.d.ts +85 -0
  781. package/dist/store/restore-store.d.ts.map +1 -0
  782. package/dist/store/restore-store.js +391 -0
  783. package/dist/store/restore-store.js.map +1 -0
  784. package/dist/store/row-identity.d.ts +123 -1
  785. package/dist/store/row-identity.d.ts.map +1 -1
  786. package/dist/store/row-identity.js +454 -80
  787. package/dist/store/row-identity.js.map +1 -1
  788. package/dist/store/schema/agent-registry-schema.d.ts +1 -1
  789. package/dist/store/schema/agent-registry-schema.d.ts.map +1 -1
  790. package/dist/store/schema/agent-registry-schema.js +5 -1
  791. package/dist/store/schema/agent-registry-schema.js.map +1 -1
  792. package/dist/store/schema/cleo-global/agent-registry.d.ts +1 -1
  793. package/dist/store/schema/cleo-global/agent-registry.d.ts.map +1 -1
  794. package/dist/store/schema/cleo-global/agent-registry.js +9 -5
  795. package/dist/store/schema/cleo-global/agent-registry.js.map +1 -1
  796. package/dist/store/schema/cleo-global/models-catalog.js +1 -1
  797. package/dist/store/schema/cleo-global/models-catalog.js.map +1 -1
  798. package/dist/store/schema/cleo-global/nexus.js +1 -1
  799. package/dist/store/schema/cleo-global/nexus.js.map +1 -1
  800. package/dist/store/schema/cleo-project/provenance-commits.d.ts +1 -1
  801. package/dist/store/schema/cleo-project/provenance-orphans.d.ts +1 -1
  802. package/dist/store/schema/cleo-project/provenance-orphans.d.ts.map +1 -1
  803. package/dist/store/schema/cleo-project/provenance-orphans.js +9 -2
  804. package/dist/store/schema/cleo-project/provenance-orphans.js.map +1 -1
  805. package/dist/store/schema/cleo-project/provenance-rest.d.ts +1 -1
  806. package/dist/store/schema/cleo-project/provenance-rest.js +1 -1
  807. package/dist/store/schema/cleo-project/provenance-rest.js.map +1 -1
  808. package/dist/store/schema/cleo-shared/brain.js +1 -1
  809. package/dist/store/schema/cleo-shared/brain.js.map +1 -1
  810. package/dist/store/schema/memory-schema.d.ts +1 -1
  811. package/dist/store/schema/memory-schema.d.ts.map +1 -1
  812. package/dist/store/schema/memory-schema.js +1 -1
  813. package/dist/store/schema/memory-schema.js.map +1 -1
  814. package/dist/store/schema/nexus-schema.js +1 -1
  815. package/dist/store/schema/nexus-schema.js.map +1 -1
  816. package/dist/store/service-host-matcher.d.ts +1 -1
  817. package/dist/store/service-host-matcher.d.ts.map +1 -1
  818. package/dist/store/service-host-matcher.js +1 -1
  819. package/dist/store/service-host-matcher.js.map +1 -1
  820. package/dist/store/service-oauth.js +1 -1
  821. package/dist/store/service-oauth.js.map +1 -1
  822. package/dist/store/session-store.d.ts.map +1 -1
  823. package/dist/store/session-store.js +7 -1
  824. package/dist/store/session-store.js.map +1 -1
  825. package/dist/store/sqlite-backup.d.ts +1 -1
  826. package/dist/store/sqlite-backup.d.ts.map +1 -1
  827. package/dist/store/sqlite-backup.js +1 -1
  828. package/dist/store/sqlite-backup.js.map +1 -1
  829. package/dist/store/sqlite-data-accessor.d.ts +52 -1
  830. package/dist/store/sqlite-data-accessor.d.ts.map +1 -1
  831. package/dist/store/sqlite-data-accessor.js +95 -22
  832. package/dist/store/sqlite-data-accessor.js.map +1 -1
  833. package/dist/store/sqlite-native.d.ts.map +1 -1
  834. package/dist/store/sqlite-native.js +9 -9
  835. package/dist/store/sqlite-native.js.map +1 -1
  836. package/dist/store/sqlite-pragmas.d.ts +12 -5
  837. package/dist/store/sqlite-pragmas.d.ts.map +1 -1
  838. package/dist/store/sqlite-pragmas.js +13 -2
  839. package/dist/store/sqlite-pragmas.js.map +1 -1
  840. package/dist/store/sqlite.d.ts.map +1 -1
  841. package/dist/store/sqlite.js +7 -32
  842. package/dist/store/sqlite.js.map +1 -1
  843. package/dist/store/status-registry.d.ts +1 -1
  844. package/dist/store/status-registry.d.ts.map +1 -1
  845. package/dist/store/status-registry.js +1 -1
  846. package/dist/store/status-registry.js.map +1 -1
  847. package/dist/store/sync/apply/applier.d.ts +119 -0
  848. package/dist/store/sync/apply/applier.d.ts.map +1 -0
  849. package/dist/store/sync/apply/applier.js +1239 -0
  850. package/dist/store/sync/apply/applier.js.map +1 -0
  851. package/dist/store/sync/apply/fk.d.ts +47 -0
  852. package/dist/store/sync/apply/fk.d.ts.map +1 -0
  853. package/dist/store/sync/apply/fk.js +89 -0
  854. package/dist/store/sync/apply/fk.js.map +1 -0
  855. package/dist/store/sync/apply/footprints.d.ts +60 -0
  856. package/dist/store/sync/apply/footprints.d.ts.map +1 -0
  857. package/dist/store/sync/apply/footprints.js +235 -0
  858. package/dist/store/sync/apply/footprints.js.map +1 -0
  859. package/dist/store/sync/apply/frame.d.ts +80 -0
  860. package/dist/store/sync/apply/frame.d.ts.map +1 -0
  861. package/dist/store/sync/apply/frame.js +127 -0
  862. package/dist/store/sync/apply/frame.js.map +1 -0
  863. package/dist/store/sync/apply/index.d.ts +11 -0
  864. package/dist/store/sync/apply/index.d.ts.map +1 -0
  865. package/dist/store/sync/apply/index.js +11 -0
  866. package/dist/store/sync/apply/index.js.map +1 -0
  867. package/dist/store/sync/apply/parent-delete.d.ts +38 -0
  868. package/dist/store/sync/apply/parent-delete.d.ts.map +1 -0
  869. package/dist/store/sync/apply/parent-delete.js +41 -0
  870. package/dist/store/sync/apply/parent-delete.js.map +1 -0
  871. package/dist/store/sync/apply/post-apply.d.ts +67 -0
  872. package/dist/store/sync/apply/post-apply.d.ts.map +1 -0
  873. package/dist/store/sync/apply/post-apply.js +118 -0
  874. package/dist/store/sync/apply/post-apply.js.map +1 -0
  875. package/dist/store/sync/apply/refs.d.ts +60 -0
  876. package/dist/store/sync/apply/refs.d.ts.map +1 -0
  877. package/dist/store/sync/apply/refs.js +90 -0
  878. package/dist/store/sync/apply/refs.js.map +1 -0
  879. package/dist/store/sync/apply/write-api.d.ts +195 -0
  880. package/dist/store/sync/apply/write-api.d.ts.map +1 -0
  881. package/dist/store/sync/apply/write-api.js +416 -0
  882. package/dist/store/sync/apply/write-api.js.map +1 -0
  883. package/dist/store/sync/apply-intent.d.ts +117 -0
  884. package/dist/store/sync/apply-intent.d.ts.map +1 -0
  885. package/dist/store/sync/apply-intent.js +225 -0
  886. package/dist/store/sync/apply-intent.js.map +1 -0
  887. package/dist/store/sync/capture.d.ts +32 -2
  888. package/dist/store/sync/capture.d.ts.map +1 -1
  889. package/dist/store/sync/capture.js +47 -13
  890. package/dist/store/sync/capture.js.map +1 -1
  891. package/dist/store/sync/conflicts.d.ts +81 -0
  892. package/dist/store/sync/conflicts.d.ts.map +1 -0
  893. package/dist/store/sync/conflicts.js +98 -0
  894. package/dist/store/sync/conflicts.js.map +1 -0
  895. package/dist/store/sync/field-leave.d.ts +146 -0
  896. package/dist/store/sync/field-leave.d.ts.map +1 -0
  897. package/dist/store/sync/field-leave.js +241 -0
  898. package/dist/store/sync/field-leave.js.map +1 -0
  899. package/dist/store/sync/flags.d.ts +119 -0
  900. package/dist/store/sync/flags.d.ts.map +1 -1
  901. package/dist/store/sync/flags.js +360 -0
  902. package/dist/store/sync/flags.js.map +1 -1
  903. package/dist/store/sync/held.d.ts +197 -0
  904. package/dist/store/sync/held.d.ts.map +1 -0
  905. package/dist/store/sync/held.js +314 -0
  906. package/dist/store/sync/held.js.map +1 -0
  907. package/dist/store/sync/identity-fill.d.ts.map +1 -1
  908. package/dist/store/sync/identity-fill.js +10 -2
  909. package/dist/store/sync/identity-fill.js.map +1 -1
  910. package/dist/store/sync/inbox.d.ts +114 -0
  911. package/dist/store/sync/inbox.d.ts.map +1 -0
  912. package/dist/store/sync/inbox.js +222 -0
  913. package/dist/store/sync/inbox.js.map +1 -0
  914. package/dist/store/sync/inherit.d.ts +36 -0
  915. package/dist/store/sync/inherit.d.ts.map +1 -0
  916. package/dist/store/sync/inherit.js +38 -0
  917. package/dist/store/sync/inherit.js.map +1 -0
  918. package/dist/store/sync/merge/engine.d.ts +114 -0
  919. package/dist/store/sync/merge/engine.d.ts.map +1 -0
  920. package/dist/store/sync/merge/engine.js +698 -0
  921. package/dist/store/sync/merge/engine.js.map +1 -0
  922. package/dist/store/sync/merge/index.d.ts +11 -0
  923. package/dist/store/sync/merge/index.d.ts.map +1 -0
  924. package/dist/store/sync/merge/index.js +11 -0
  925. package/dist/store/sync/merge/index.js.map +1 -0
  926. package/dist/store/sync/merge/rules.d.ts +91 -0
  927. package/dist/store/sync/merge/rules.d.ts.map +1 -0
  928. package/dist/store/sync/merge/rules.js +151 -0
  929. package/dist/store/sync/merge/rules.js.map +1 -0
  930. package/dist/store/sync/merge/types.d.ts +206 -0
  931. package/dist/store/sync/merge/types.d.ts.map +1 -0
  932. package/dist/store/sync/merge/types.js +15 -0
  933. package/dist/store/sync/merge/types.js.map +1 -0
  934. package/dist/store/sync/migration-hooks.d.ts +47 -0
  935. package/dist/store/sync/migration-hooks.d.ts.map +1 -0
  936. package/dist/store/sync/migration-hooks.js +74 -0
  937. package/dist/store/sync/migration-hooks.js.map +1 -0
  938. package/dist/store/sync/netting.d.ts +5 -0
  939. package/dist/store/sync/netting.d.ts.map +1 -1
  940. package/dist/store/sync/netting.js +29 -2
  941. package/dist/store/sync/netting.js.map +1 -1
  942. package/dist/store/sync/remap.d.ts +72 -0
  943. package/dist/store/sync/remap.d.ts.map +1 -0
  944. package/dist/store/sync/remap.js +209 -0
  945. package/dist/store/sync/remap.js.map +1 -0
  946. package/dist/store/sync/repair.d.ts +180 -0
  947. package/dist/store/sync/repair.d.ts.map +1 -0
  948. package/dist/store/sync/repair.js +499 -0
  949. package/dist/store/sync/repair.js.map +1 -0
  950. package/dist/store/sync/replica-registry.d.ts +54 -0
  951. package/dist/store/sync/replica-registry.d.ts.map +1 -1
  952. package/dist/store/sync/replica-registry.js +72 -2
  953. package/dist/store/sync/replica-registry.js.map +1 -1
  954. package/dist/store/sync/replica.d.ts +71 -9
  955. package/dist/store/sync/replica.d.ts.map +1 -1
  956. package/dist/store/sync/replica.js +95 -11
  957. package/dist/store/sync/replica.js.map +1 -1
  958. package/dist/store/sync/row-meta.d.ts +148 -0
  959. package/dist/store/sync/row-meta.d.ts.map +1 -0
  960. package/dist/store/sync/row-meta.js +200 -0
  961. package/dist/store/sync/row-meta.js.map +1 -0
  962. package/dist/store/sync/schema.d.ts +13 -5
  963. package/dist/store/sync/schema.d.ts.map +1 -1
  964. package/dist/store/sync/schema.js +34 -7
  965. package/dist/store/sync/schema.js.map +1 -1
  966. package/dist/store/sync/sealer-values.d.ts.map +1 -1
  967. package/dist/store/sync/sealer-values.js +1 -0
  968. package/dist/store/sync/sealer-values.js.map +1 -1
  969. package/dist/store/sync/sealer.d.ts +96 -0
  970. package/dist/store/sync/sealer.d.ts.map +1 -1
  971. package/dist/store/sync/sealer.js +532 -58
  972. package/dist/store/sync/sealer.js.map +1 -1
  973. package/dist/store/sync/sequencing.d.ts +175 -0
  974. package/dist/store/sync/sequencing.d.ts.map +1 -0
  975. package/dist/store/sync/sequencing.js +295 -0
  976. package/dist/store/sync/sequencing.js.map +1 -0
  977. package/dist/store/sync/structural.d.ts +30 -2
  978. package/dist/store/sync/structural.d.ts.map +1 -1
  979. package/dist/store/sync/structural.js +64 -2
  980. package/dist/store/sync/structural.js.map +1 -1
  981. package/dist/store/sync/timestamp-canon.d.ts +44 -0
  982. package/dist/store/sync/timestamp-canon.d.ts.map +1 -0
  983. package/dist/store/sync/timestamp-canon.js +102 -0
  984. package/dist/store/sync/timestamp-canon.js.map +1 -0
  985. package/dist/store/sync/timestamps.d.ts +1 -30
  986. package/dist/store/sync/timestamps.d.ts.map +1 -1
  987. package/dist/store/sync/timestamps.js +2 -89
  988. package/dist/store/sync/timestamps.js.map +1 -1
  989. package/dist/store/sync/trigger-classes.d.ts +8 -0
  990. package/dist/store/sync/trigger-classes.d.ts.map +1 -1
  991. package/dist/store/sync/trigger-classes.js +13 -0
  992. package/dist/store/sync/trigger-classes.js.map +1 -1
  993. package/dist/store/sync/write-actor.d.ts +58 -0
  994. package/dist/store/sync/write-actor.d.ts.map +1 -0
  995. package/dist/store/sync/write-actor.js +67 -0
  996. package/dist/store/sync/write-actor.js.map +1 -0
  997. package/dist/store/table-classification.d.ts.map +1 -1
  998. package/dist/store/table-classification.js +84 -0
  999. package/dist/store/table-classification.js.map +1 -1
  1000. package/dist/store/task-claim.d.ts +1 -1
  1001. package/dist/store/task-claim.d.ts.map +1 -1
  1002. package/dist/store/task-claim.js +1 -1
  1003. package/dist/store/task-claim.js.map +1 -1
  1004. package/dist/store/task-reference-columns.d.ts +27 -0
  1005. package/dist/store/task-reference-columns.d.ts.map +1 -0
  1006. package/dist/store/task-reference-columns.js +65 -0
  1007. package/dist/store/task-reference-columns.js.map +1 -0
  1008. package/dist/store/task-version.d.ts +1 -1
  1009. package/dist/store/task-version.d.ts.map +1 -1
  1010. package/dist/store/task-version.js +1 -1
  1011. package/dist/store/task-version.js.map +1 -1
  1012. package/dist/store/tasks-schema.d.ts +2 -1
  1013. package/dist/store/tasks-schema.d.ts.map +1 -1
  1014. package/dist/store/tasks-schema.js +5 -4
  1015. package/dist/store/tasks-schema.js.map +1 -1
  1016. package/dist/store/tasks-sqlite.d.ts +1 -1
  1017. package/dist/store/tasks-sqlite.d.ts.map +1 -1
  1018. package/dist/store/tasks-sqlite.js +3 -1
  1019. package/dist/store/tasks-sqlite.js.map +1 -1
  1020. package/dist/store/twin-collapse.d.ts +43 -14
  1021. package/dist/store/twin-collapse.d.ts.map +1 -1
  1022. package/dist/store/twin-collapse.js +373 -32
  1023. package/dist/store/twin-collapse.js.map +1 -1
  1024. package/dist/store/validation-schemas.d.ts +44 -674
  1025. package/dist/store/validation-schemas.d.ts.map +1 -1
  1026. package/dist/store/validation-schemas.js +2 -22
  1027. package/dist/store/validation-schemas.js.map +1 -1
  1028. package/dist/store/vault-manifest.d.ts +1 -1
  1029. package/dist/store/vault-manifest.d.ts.map +1 -1
  1030. package/dist/store/vault-manifest.js +1 -1
  1031. package/dist/store/vault-manifest.js.map +1 -1
  1032. package/dist/store/worktree-build-guard.js +1 -1
  1033. package/dist/store/worktree-build-guard.js.map +1 -1
  1034. package/dist/store/worktree-isolation-guard.js +1 -1
  1035. package/dist/store/worktree-isolation-guard.js.map +1 -1
  1036. package/dist/store/writer-lease.d.ts.map +1 -1
  1037. package/dist/store/writer-lease.js +1 -11
  1038. package/dist/store/writer-lease.js.map +1 -1
  1039. package/dist/store/zod-schema-factory.d.ts +16 -0
  1040. package/dist/store/zod-schema-factory.d.ts.map +1 -0
  1041. package/dist/store/zod-schema-factory.js +23 -0
  1042. package/dist/store/zod-schema-factory.js.map +1 -0
  1043. package/dist/system/backup.d.ts +106 -0
  1044. package/dist/system/backup.d.ts.map +1 -1
  1045. package/dist/system/backup.js +295 -19
  1046. package/dist/system/backup.js.map +1 -1
  1047. package/dist/system/cleanup.js +1 -1
  1048. package/dist/system/cleanup.js.map +1 -1
  1049. package/dist/system/labels.js +1 -1
  1050. package/dist/system/labels.js.map +1 -1
  1051. package/dist/system/migrate.js +1 -1
  1052. package/dist/system/migrate.js.map +1 -1
  1053. package/dist/system/safestop.d.ts.map +1 -1
  1054. package/dist/system/safestop.js +1 -1
  1055. package/dist/system/safestop.js.map +1 -1
  1056. package/dist/task-work/current.d.ts +34 -0
  1057. package/dist/task-work/current.d.ts.map +1 -0
  1058. package/dist/task-work/current.js +34 -0
  1059. package/dist/task-work/current.js.map +1 -0
  1060. package/dist/task-work/index.d.ts +2 -19
  1061. package/dist/task-work/index.d.ts.map +1 -1
  1062. package/dist/task-work/index.js +6 -20
  1063. package/dist/task-work/index.js.map +1 -1
  1064. package/dist/tasks/ac-identity.d.ts +28 -0
  1065. package/dist/tasks/ac-identity.d.ts.map +1 -0
  1066. package/dist/tasks/ac-identity.js +43 -0
  1067. package/dist/tasks/ac-identity.js.map +1 -0
  1068. package/dist/tasks/ac-immutability.d.ts +1 -1
  1069. package/dist/tasks/ac-immutability.d.ts.map +1 -1
  1070. package/dist/tasks/ac-immutability.js +1 -1
  1071. package/dist/tasks/ac-immutability.js.map +1 -1
  1072. package/dist/tasks/ac-table.d.ts +2 -14
  1073. package/dist/tasks/ac-table.d.ts.map +1 -1
  1074. package/dist/tasks/ac-table.js +6 -29
  1075. package/dist/tasks/ac-table.js.map +1 -1
  1076. package/dist/tasks/acceptance-input.js +1 -1
  1077. package/dist/tasks/acceptance-input.js.map +1 -1
  1078. package/dist/tasks/add.d.ts.map +1 -1
  1079. package/dist/tasks/add.js +3 -1
  1080. package/dist/tasks/add.js.map +1 -1
  1081. package/dist/tasks/affected-packages.d.ts +80 -12
  1082. package/dist/tasks/affected-packages.d.ts.map +1 -1
  1083. package/dist/tasks/affected-packages.js +130 -19
  1084. package/dist/tasks/affected-packages.js.map +1 -1
  1085. package/dist/tasks/archive.d.ts.map +1 -1
  1086. package/dist/tasks/archive.js +1 -1
  1087. package/dist/tasks/archive.js.map +1 -1
  1088. package/dist/tasks/axis-filters.d.ts.map +1 -1
  1089. package/dist/tasks/axis-filters.js +2 -1
  1090. package/dist/tasks/axis-filters.js.map +1 -1
  1091. package/dist/tasks/child-disposition.js +1 -1
  1092. package/dist/tasks/child-disposition.js.map +1 -1
  1093. package/dist/tasks/collection.js +1 -1
  1094. package/dist/tasks/collection.js.map +1 -1
  1095. package/dist/tasks/complete.d.ts.map +1 -1
  1096. package/dist/tasks/complete.js +2 -1
  1097. package/dist/tasks/complete.js.map +1 -1
  1098. package/dist/tasks/decompose.js +1 -1
  1099. package/dist/tasks/decompose.js.map +1 -1
  1100. package/dist/tasks/delete.js +1 -1
  1101. package/dist/tasks/delete.js.map +1 -1
  1102. package/dist/tasks/done-plan.d.ts +2 -1
  1103. package/dist/tasks/done-plan.d.ts.map +1 -1
  1104. package/dist/tasks/done-plan.js +10 -20
  1105. package/dist/tasks/done-plan.js.map +1 -1
  1106. package/dist/tasks/done-record.d.ts +1 -1
  1107. package/dist/tasks/done-record.d.ts.map +1 -1
  1108. package/dist/tasks/done-record.js +1 -1
  1109. package/dist/tasks/done-record.js.map +1 -1
  1110. package/dist/tasks/enforcement.d.ts +2 -1
  1111. package/dist/tasks/enforcement.d.ts.map +1 -1
  1112. package/dist/tasks/enforcement.js +1 -1
  1113. package/dist/tasks/enforcement.js.map +1 -1
  1114. package/dist/tasks/engine-wrap-ops.js +1 -1
  1115. package/dist/tasks/engine-wrap-ops.js.map +1 -1
  1116. package/dist/tasks/engine-wrap.d.ts.map +1 -1
  1117. package/dist/tasks/engine-wrap.js +7 -3
  1118. package/dist/tasks/engine-wrap.js.map +1 -1
  1119. package/dist/tasks/epic-enforcement.js +1 -1
  1120. package/dist/tasks/epic-enforcement.js.map +1 -1
  1121. package/dist/tasks/evidence.d.ts.map +1 -1
  1122. package/dist/tasks/evidence.js +41 -19
  1123. package/dist/tasks/evidence.js.map +1 -1
  1124. package/dist/tasks/find.js +1 -1
  1125. package/dist/tasks/find.js.map +1 -1
  1126. package/dist/tasks/gate-result-cache.js +1 -1
  1127. package/dist/tasks/gate-result-cache.js.map +1 -1
  1128. package/dist/tasks/gate-runner.d.ts.map +1 -1
  1129. package/dist/tasks/gate-runner.js +1 -1
  1130. package/dist/tasks/gate-runner.js.map +1 -1
  1131. package/dist/tasks/heavy-tool-env.d.ts +79 -11
  1132. package/dist/tasks/heavy-tool-env.d.ts.map +1 -1
  1133. package/dist/tasks/heavy-tool-env.js +111 -14
  1134. package/dist/tasks/heavy-tool-env.js.map +1 -1
  1135. package/dist/tasks/index.d.ts +1 -1
  1136. package/dist/tasks/index.d.ts.map +1 -1
  1137. package/dist/tasks/index.js +2 -2
  1138. package/dist/tasks/index.js.map +1 -1
  1139. package/dist/tasks/labels.js +1 -1
  1140. package/dist/tasks/labels.js.map +1 -1
  1141. package/dist/tasks/nexus-impact-gate.js +1 -1
  1142. package/dist/tasks/nexus-impact-gate.js.map +1 -1
  1143. package/dist/tasks/pipeline-stage.js +1 -1
  1144. package/dist/tasks/pipeline-stage.js.map +1 -1
  1145. package/dist/tasks/population.js +1 -1
  1146. package/dist/tasks/population.js.map +1 -1
  1147. package/dist/tasks/ranking-audit.js +1 -1
  1148. package/dist/tasks/ranking-audit.js.map +1 -1
  1149. package/dist/tasks/reconcile-scope.js +1 -1
  1150. package/dist/tasks/reconcile-scope.js.map +1 -1
  1151. package/dist/tasks/relates.js +1 -1
  1152. package/dist/tasks/relates.js.map +1 -1
  1153. package/dist/tasks/req.d.ts.map +1 -1
  1154. package/dist/tasks/req.js +2 -1
  1155. package/dist/tasks/req.js.map +1 -1
  1156. package/dist/tasks/severity-attestation.d.ts +1 -1
  1157. package/dist/tasks/severity-attestation.d.ts.map +1 -1
  1158. package/dist/tasks/severity-attestation.js +1 -1
  1159. package/dist/tasks/severity-attestation.js.map +1 -1
  1160. package/dist/tasks/show.d.ts.map +1 -1
  1161. package/dist/tasks/show.js +47 -3
  1162. package/dist/tasks/show.js.map +1 -1
  1163. package/dist/tasks/task-import.js +1 -1
  1164. package/dist/tasks/task-import.js.map +1 -1
  1165. package/dist/tasks/task-reparent.d.ts.map +1 -1
  1166. package/dist/tasks/task-reparent.js +2 -1
  1167. package/dist/tasks/task-reparent.js.map +1 -1
  1168. package/dist/tasks/test-run-binding.d.ts.map +1 -1
  1169. package/dist/tasks/test-run-binding.js +9 -2
  1170. package/dist/tasks/test-run-binding.js.map +1 -1
  1171. package/dist/tasks/tool-cache.d.ts +23 -8
  1172. package/dist/tasks/tool-cache.d.ts.map +1 -1
  1173. package/dist/tasks/tool-cache.js +57 -16
  1174. package/dist/tasks/tool-cache.js.map +1 -1
  1175. package/dist/tasks/tool-resolver.d.ts +8 -0
  1176. package/dist/tasks/tool-resolver.d.ts.map +1 -1
  1177. package/dist/tasks/tool-resolver.js +15 -1
  1178. package/dist/tasks/tool-resolver.js.map +1 -1
  1179. package/dist/tasks/tool-runner-guard.d.ts +131 -0
  1180. package/dist/tasks/tool-runner-guard.d.ts.map +1 -0
  1181. package/dist/tasks/tool-runner-guard.js +141 -0
  1182. package/dist/tasks/tool-runner-guard.js.map +1 -0
  1183. package/dist/tasks/tool-semaphore.d.ts +103 -342
  1184. package/dist/tasks/tool-semaphore.d.ts.map +1 -1
  1185. package/dist/tasks/tool-semaphore.js +131 -619
  1186. package/dist/tasks/tool-semaphore.js.map +1 -1
  1187. package/dist/tasks/update.d.ts.map +1 -1
  1188. package/dist/tasks/update.js +2 -1
  1189. package/dist/tasks/update.js.map +1 -1
  1190. package/dist/upgrade.d.ts.map +1 -1
  1191. package/dist/upgrade.js +5 -34
  1192. package/dist/upgrade.js.map +1 -1
  1193. package/dist/validation/doctor/checks.d.ts +24 -0
  1194. package/dist/validation/doctor/checks.d.ts.map +1 -1
  1195. package/dist/validation/doctor/checks.js +168 -0
  1196. package/dist/validation/doctor/checks.js.map +1 -1
  1197. package/dist/validation/doctor/index.d.ts +1 -1
  1198. package/dist/validation/doctor/index.d.ts.map +1 -1
  1199. package/dist/validation/doctor/index.js +1 -1
  1200. package/dist/validation/doctor/index.js.map +1 -1
  1201. package/dist/validation/engine-ops.js +1 -1
  1202. package/dist/validation/engine-ops.js.map +1 -1
  1203. package/dist/validation/engine.d.ts +1 -1
  1204. package/dist/validation/engine.d.ts.map +1 -1
  1205. package/dist/validation/engine.js +2 -1
  1206. package/dist/validation/engine.js.map +1 -1
  1207. package/dist/validation/index.d.ts +1 -1
  1208. package/dist/validation/index.d.ts.map +1 -1
  1209. package/dist/validation/index.js +1 -1
  1210. package/dist/validation/index.js.map +1 -1
  1211. package/dist/validation/operation-gate-validators.js +1 -1
  1212. package/dist/validation/operation-gate-validators.js.map +1 -1
  1213. package/dist/validation/protocol-common.js +1 -1
  1214. package/dist/validation/protocol-common.js.map +1 -1
  1215. package/dist/validation/protocols/_shared.js +1 -1
  1216. package/dist/validation/protocols/_shared.js.map +1 -1
  1217. package/dist/validation/validate-ops.js +1 -1
  1218. package/dist/validation/validate-ops.js.map +1 -1
  1219. package/dist/validation/verification.js +1 -1
  1220. package/dist/validation/verification.js.map +1 -1
  1221. package/dist/workgraph/index.d.ts +1 -1
  1222. package/dist/workgraph/index.d.ts.map +1 -1
  1223. package/dist/workgraph/index.js +1 -1
  1224. package/dist/workgraph/index.js.map +1 -1
  1225. package/dist/workgraph/reparent-preflight.d.ts +1 -2
  1226. package/dist/workgraph/reparent-preflight.d.ts.map +1 -1
  1227. package/dist/workgraph/reparent-preflight.js +1 -1
  1228. package/dist/workgraph/reparent-preflight.js.map +1 -1
  1229. package/dist/workgraph/scaffold-validate.js +1 -1
  1230. package/dist/workgraph/scaffold-validate.js.map +1 -1
  1231. package/dist/worktree/force-unlock.d.ts +1 -1
  1232. package/dist/worktree/force-unlock.d.ts.map +1 -1
  1233. package/dist/worktree/force-unlock.js +1 -1
  1234. package/dist/worktree/force-unlock.js.map +1 -1
  1235. package/dist/worktree/isolation.d.ts +1 -1
  1236. package/dist/worktree/isolation.d.ts.map +1 -1
  1237. package/dist/worktree/isolation.js +1 -1
  1238. package/dist/worktree/isolation.js.map +1 -1
  1239. package/dist/worktree/list.d.ts +1 -1
  1240. package/dist/worktree/list.d.ts.map +1 -1
  1241. package/dist/worktree/list.js +1 -1
  1242. package/dist/worktree/list.js.map +1 -1
  1243. package/dist/worktree/prune.d.ts +1 -1
  1244. package/dist/worktree/prune.d.ts.map +1 -1
  1245. package/dist/worktree/prune.js +1 -1
  1246. package/dist/worktree/prune.js.map +1 -1
  1247. package/dist/worktree/worktree-adopt.d.ts +1 -2
  1248. package/dist/worktree/worktree-adopt.d.ts.map +1 -1
  1249. package/dist/worktree/worktree-adopt.js +1 -1
  1250. package/dist/worktree/worktree-adopt.js.map +1 -1
  1251. package/migrations/sync-journal/20261004120000_t12757-apply-intent/migration.sql +21 -0
  1252. package/migrations/sync-journal/20261005120000_t12344-inbox/migration.sql +67 -0
  1253. package/migrations/sync-journal/20261006120000_t13193-rebase-undo/migration.sql +51 -0
  1254. package/migrations/sync-journal/20261006130000_t13193-rebase-state/migration.sql +17 -0
  1255. package/migrations/sync-journal/20261006140000_t13193-held-rows/migration.sql +24 -0
  1256. package/package.json +13 -13
  1257. package/schemas/project-context.schema.json +14 -0
  1258. package/templates/CLEO-INJECTION.md +11 -11
  1259. package/templates/CLEO-REFERENCE.md +2 -2
  1260. package/templates/workflows/release-prepare.yml.tmpl +10 -10
@@ -0,0 +1,180 @@
1
+ /**
2
+ * The repair diff (journal spec §4.4, §4.3 item 3; S3d, T12987).
3
+ *
4
+ * A table is `suspect:` when something may have written it uncaptured: a
5
+ * bracketed rewriter (exodus, the lineage carry-forward, the identity fill),
6
+ * a quarantined capture, or a migration pass over rows that were already out
7
+ * of baseline. Later migrations skip every row of a suspect table when they
8
+ * re-baseline `chash` (T13202), so this pass is the only place those rows are
9
+ * checked again, and it re-checks EVERY row of the table, never only the
10
+ * captured ones.
11
+ *
12
+ * For each suspect table it compares the live rows with `_sync_row_meta`:
13
+ * - a live row whose meta `chash` differs: U, carrying the full after-image
14
+ * (the before-image is unknown; only its hash was kept);
15
+ * - a live row with no meta, or with a tombstone: I;
16
+ * - a live meta row with no live row (an orphan): D.
17
+ *
18
+ * Rows held by a rebase (`held = 1`, §3.5 Rule 5) are skipped, so a held
19
+ * insert never produces a spurious D. The ops are written as captures of one
20
+ * `repair` frame per table and sealed by the sealer (`via: 'repair'`), so row
21
+ * meta, the ledger and `chash` have one writer.
22
+ *
23
+ * A table whose row meta was never baselined (no `baseline:<table>` key)
24
+ * cannot tell a pre-sync row from an uncaptured insert: both lack meta. Such
25
+ * rows are baselined instead (meta with the §1.2 genesis HLC, no op) and the
26
+ * ledger is set to the verified count; nothing is pushed before the genesis
27
+ * checkpoint, which carries them. From then on a row without meta is an
28
+ * uncaptured insert. Once the stream has started ({@link streamStarted}) a
29
+ * row without meta is journaled as an I in every table, baselined or not,
30
+ * and the table is then marked baselined (T13217): never absorbed silently.
31
+ *
32
+ * The suspect key is cleared only after verification: no live capture of the
33
+ * table remains, a rescan finds nothing to repair, and the ledger equals
34
+ * `count(*) + held`. A key re-marked while the repair ran is kept.
35
+ *
36
+ * @task T12987
37
+ * @module store/sync/repair
38
+ */
39
+ import type { DatabaseSync } from 'node:sqlite';
40
+ import type { TableScope } from '@cleocode/contracts';
41
+ import { type SealerRowView } from './sealer.js';
42
+ /** `_sync_meta` key prefix of a table whose row meta covers every live row. */
43
+ export declare const BASELINE_KEY_PREFIX = "baseline:";
44
+ /** How many uids a report lists per kind (the counts are always complete). */
45
+ export declare const REPAIR_SAMPLE_SIZE = 20;
46
+ /** A live row: its uid and its local key `rk` (as the capture triggers write it). */
47
+ export interface RepairRow {
48
+ readonly uid: string;
49
+ readonly rk: string;
50
+ }
51
+ /** The repair diff of one suspect table. */
52
+ export interface RepairPlan {
53
+ readonly table: string;
54
+ /** Row meta covers every live row, so a row without meta is an uncaptured insert. */
55
+ readonly baselined: boolean;
56
+ /** Live rows to emit as I. */
57
+ readonly inserts: readonly RepairRow[];
58
+ /** Live rows whose `chash` differs: U. */
59
+ readonly updates: readonly RepairRow[];
60
+ /** Live meta rows without a live row: D. */
61
+ readonly deletes: readonly string[];
62
+ /** Live rows without meta in a table never baselined: baselined, no op. */
63
+ readonly unbaselined: readonly RepairRow[];
64
+ /** Rows a rebase holds (skipped). */
65
+ readonly held: number;
66
+ /** Live rows with no uid: the identity fill must run first. */
67
+ readonly unidentified: number;
68
+ /** Why the table was not diffed, or null. */
69
+ readonly skipped: string | null;
70
+ }
71
+ /** What the repair did to one table. */
72
+ export interface RepairTableResult {
73
+ readonly table: string;
74
+ readonly baselined: boolean;
75
+ readonly counts: {
76
+ readonly inserts: number;
77
+ readonly updates: number;
78
+ readonly deletes: number;
79
+ readonly baselinedRows: number;
80
+ readonly held: number;
81
+ readonly unidentified: number;
82
+ };
83
+ /** Up to {@link REPAIR_SAMPLE_SIZE} uids per kind. */
84
+ readonly sample: {
85
+ readonly inserts: readonly string[];
86
+ readonly updates: readonly string[];
87
+ readonly deletes: readonly string[];
88
+ };
89
+ /** The repair frame written, or null (dry run, nothing to emit, skipped). */
90
+ readonly frame: string | null;
91
+ /** The suspect key was cleared. */
92
+ readonly cleared: boolean;
93
+ /** Why the table stays suspect, or null. */
94
+ readonly reason: string | null;
95
+ }
96
+ /** What {@link repairSuspectTables} did. */
97
+ export interface RepairReport {
98
+ /** Why nothing ran, or null. */
99
+ readonly refused: string | null;
100
+ readonly dryRun: boolean;
101
+ readonly tables: readonly RepairTableResult[];
102
+ /** Transactions and ops the sealer wrote while sealing pending and repair captures. */
103
+ readonly sealed: {
104
+ readonly txns: number;
105
+ readonly ops: number;
106
+ };
107
+ }
108
+ /** Options of {@link repairSuspectTables}. */
109
+ export interface RepairOptions {
110
+ readonly scope: TableScope;
111
+ /** Plan only: write nothing, seal nothing, clear nothing. */
112
+ readonly dryRun?: boolean;
113
+ /** Restrict to these suspect tables (default: every suspect table). */
114
+ readonly tables?: readonly string[];
115
+ readonly env?: NodeJS.ProcessEnv;
116
+ /** The replica to seal as (default: the store's bound replica). */
117
+ readonly replica?: string;
118
+ /** Seal while `sync.seal` is unreleased (tests and Gate B only). */
119
+ readonly allowUnreleased?: boolean;
120
+ readonly now?: () => number;
121
+ }
122
+ /**
123
+ * Whether this store's stream has started (T13217): a genesis cut was
124
+ * recorded (a `_sync_meta` key starting with {@link GENESIS_CUT_KEY_PREFIX},
125
+ * §2.11 §10), a sealed transaction was carried by a segment or folded into a
126
+ * checkpoint (`state` `segmented` or `folded`; `inherited` is another
127
+ * replica's and does not count), or undo is on (it turns on with the genesis
128
+ * cut, C1). After that, a checkpoint may already have left the device, so a
129
+ * row without meta can no longer be assumed to be in it.
130
+ *
131
+ * The `undo_enabled` clause never decides the repair diff, which refuses to
132
+ * run while undo is on; it is there for other callers of this function.
133
+ */
134
+ export declare function streamStarted(db: DatabaseSync): boolean;
135
+ /**
136
+ * Diff one table against its row meta, every row. Read-only.
137
+ *
138
+ * @param db - The store.
139
+ * @param scope - Its scope.
140
+ * @param table - A sync-set table.
141
+ * @param view - From {@link sealerRowView}, shared across tables.
142
+ */
143
+ export declare function planRepair(db: DatabaseSync, scope: TableScope, table: string, view?: SealerRowView): RepairPlan;
144
+ /**
145
+ * Baseline one table's row meta (§1.2 "genesis of an existing row"; §1.6
146
+ * "one live meta row per live sync-set row"): every live row with a uid and
147
+ * no meta gets meta with its genesis HLC and no op, the ledger is set to
148
+ * `count(*) + held`, and `baseline:<table>` is recorded, atomically. The
149
+ * repair diff calls it for a table never baselined; T12342's first-enable
150
+ * init is meant to call it for every sync-set table, so row meta keeps one
151
+ * initializer.
152
+ *
153
+ * Runs in the caller's transaction when there is one, else in its own
154
+ * `BEGIN IMMEDIATE`.
155
+ *
156
+ * @param db - The store.
157
+ * @param scope - Its scope.
158
+ * @param table - A sync-set table with a uid column.
159
+ * @param replica - The replica the baseline meta names as origin.
160
+ * @param now - Wall milliseconds (the genesis HLC is clamped to it).
161
+ * @returns The rows baselined, or null when the table is not in the sync set.
162
+ */
163
+ export declare function baselineRowMeta(db: DatabaseSync, scope: TableScope, table: string, replica: string, now?: number): number | null;
164
+ /**
165
+ * Seal what is pending, then run the repair diff over every suspect table
166
+ * (§4.4; S3d, T12987): emit each table's repair ops in a `repair` frame, seal
167
+ * them, then verify and clear the suspect key. The pending seal runs even
168
+ * when no table is suspect (the NEW-8 step before a migration pass). A dry
169
+ * run only plans.
170
+ *
171
+ * Prerequisites (§4.4): the sealer's preconditions hold, a replica is bound,
172
+ * the table's capture triggers are present, and no capture of the table is
173
+ * left waiting after the pending seal. Undo is not written for repair
174
+ * captures yet, so the repair refuses while `undo_enabled` is set.
175
+ *
176
+ * @param db - The store; must not be inside a transaction.
177
+ * @param opts - {@link RepairOptions}.
178
+ */
179
+ export declare function repairSuspectTables(db: DatabaseSync, opts: RepairOptions): RepairReport;
180
+ //# sourceMappingURL=repair.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repair.d.ts","sourceRoot":"","sources":["../../../src/store/sync/repair.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAQtD,OAAO,EAAE,KAAK,aAAa,EAAiD,MAAM,aAAa,CAAC;AAMhG,+EAA+E;AAC/E,eAAO,MAAM,mBAAmB,cAAc,CAAC;AAE/C,8EAA8E;AAC9E,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAErC,qFAAqF;AACrF,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,4CAA4C;AAC5C,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,qFAAqF;IACrF,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,8BAA8B;IAC9B,QAAQ,CAAC,OAAO,EAAE,SAAS,SAAS,EAAE,CAAC;IACvC,0CAA0C;IAC1C,QAAQ,CAAC,OAAO,EAAE,SAAS,SAAS,EAAE,CAAC;IACvC,4CAA4C;IAC5C,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,2EAA2E;IAC3E,QAAQ,CAAC,WAAW,EAAE,SAAS,SAAS,EAAE,CAAC;IAC3C,qCAAqC;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,+DAA+D;IAC/D,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,6CAA6C;IAC7C,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED,wCAAwC;AACxC,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE;QACf,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;QAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;KAC/B,CAAC;IACF,sDAAsD;IACtD,QAAQ,CAAC,MAAM,EAAE;QACf,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;QACpC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;QACpC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;KACrC,CAAC;IACF,6EAA6E;IAC7E,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,mCAAmC;IACnC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,4CAA4C;IAC5C,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,4CAA4C;AAC5C,MAAM,WAAW,YAAY;IAC3B,gCAAgC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC9C,uFAAuF;IACvF,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CAClE;AAED,8CAA8C;AAC9C,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,6DAA6D;IAC7D,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,uEAAuE;IACvE,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACjC,mEAAmE;IACnE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,oEAAoE;IACpE,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CAC7B;AAoCD;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAYvD;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CACxB,EAAE,EAAE,YAAY,EAChB,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,MAAM,EACb,IAAI,GAAE,aAAwC,GAC7C,UAAU,CA2EZ;AAqJD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,eAAe,CAC7B,EAAE,EAAE,YAAY,EAChB,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,GAAG,GAAE,MAAmB,GACvB,MAAM,GAAG,IAAI,CA0Bf;AA2ED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,GAAG,YAAY,CA6EvF"}
@@ -0,0 +1,499 @@
1
+ /**
2
+ * The repair diff (journal spec §4.4, §4.3 item 3; S3d, T12987).
3
+ *
4
+ * A table is `suspect:` when something may have written it uncaptured: a
5
+ * bracketed rewriter (exodus, the lineage carry-forward, the identity fill),
6
+ * a quarantined capture, or a migration pass over rows that were already out
7
+ * of baseline. Later migrations skip every row of a suspect table when they
8
+ * re-baseline `chash` (T13202), so this pass is the only place those rows are
9
+ * checked again, and it re-checks EVERY row of the table, never only the
10
+ * captured ones.
11
+ *
12
+ * For each suspect table it compares the live rows with `_sync_row_meta`:
13
+ * - a live row whose meta `chash` differs: U, carrying the full after-image
14
+ * (the before-image is unknown; only its hash was kept);
15
+ * - a live row with no meta, or with a tombstone: I;
16
+ * - a live meta row with no live row (an orphan): D.
17
+ *
18
+ * Rows held by a rebase (`held = 1`, §3.5 Rule 5) are skipped, so a held
19
+ * insert never produces a spurious D. The ops are written as captures of one
20
+ * `repair` frame per table and sealed by the sealer (`via: 'repair'`), so row
21
+ * meta, the ledger and `chash` have one writer.
22
+ *
23
+ * A table whose row meta was never baselined (no `baseline:<table>` key)
24
+ * cannot tell a pre-sync row from an uncaptured insert: both lack meta. Such
25
+ * rows are baselined instead (meta with the §1.2 genesis HLC, no op) and the
26
+ * ledger is set to the verified count; nothing is pushed before the genesis
27
+ * checkpoint, which carries them. From then on a row without meta is an
28
+ * uncaptured insert. Once the stream has started ({@link streamStarted}) a
29
+ * row without meta is journaled as an I in every table, baselined or not,
30
+ * and the table is then marked baselined (T13217): never absorbed silently.
31
+ *
32
+ * The suspect key is cleared only after verification: no live capture of the
33
+ * table remains, a rescan finds nothing to repair, and the ledger equals
34
+ * `count(*) + held`. A key re-marked while the repair ran is kept.
35
+ *
36
+ * @task T12987
37
+ * @module store/sync/repair
38
+ */
39
+ import { randomUUID } from 'node:crypto';
40
+ import { rowIdentitySpec, UID_COLUMN } from '../row-identity-registry.js';
41
+ import { AT_MS_SQL, captureTableDef, repairImageSql } from './capture.js';
42
+ import { withImmediateTransaction } from './clock-store.js';
43
+ import { encodeHlc, MAX_PHYS } from './hlc.js';
44
+ import { activeReplica } from './replica.js';
45
+ import { upsertRowMeta } from './row-meta.js';
46
+ import { GENESIS_CUT_KEY_PREFIX, hasTable } from './schema.js';
47
+ import { sealerRowView, sealPending, sealPreconditions } from './sealer.js';
48
+ import { decodeEnc } from './sealer-values.js';
49
+ import { suspectTables } from './structural.js';
50
+ import { canonicalStoreTimestamp, timestampColumns } from './timestamps.js';
51
+ import { CAPTURE_TRIGGER_PREFIX } from './trigger-classes.js';
52
+ /** `_sync_meta` key prefix of a table whose row meta covers every live row. */
53
+ export const BASELINE_KEY_PREFIX = 'baseline:';
54
+ /** How many uids a report lists per kind (the counts are always complete). */
55
+ export const REPAIR_SAMPLE_SIZE = 20;
56
+ const q = (id) => `"${id.replaceAll('"', '""')}"`;
57
+ const empty = (refused, dryRun) => ({
58
+ refused,
59
+ dryRun,
60
+ tables: [],
61
+ sealed: { txns: 0, ops: 0 },
62
+ });
63
+ /** The live captures of `table` still waiting to seal. */
64
+ function waiting(db, table) {
65
+ return db
66
+ .prepare("SELECT count(*) AS n FROM _sync_capture WHERE state = 'live' AND tbl = ?")
67
+ .get(table).n;
68
+ }
69
+ function metaValue(db, key) {
70
+ return db.prepare('SELECT value FROM _sync_meta WHERE key = ?').get(key)?.value;
71
+ }
72
+ function captureTriggersPresent(db, table) {
73
+ return (db
74
+ .prepare("SELECT 1 FROM sqlite_master WHERE type = 'trigger' AND name = ?")
75
+ .get(`${CAPTURE_TRIGGER_PREFIX}${table}_i`) !== undefined);
76
+ }
77
+ /**
78
+ * Whether this store's stream has started (T13217): a genesis cut was
79
+ * recorded (a `_sync_meta` key starting with {@link GENESIS_CUT_KEY_PREFIX},
80
+ * §2.11 §10), a sealed transaction was carried by a segment or folded into a
81
+ * checkpoint (`state` `segmented` or `folded`; `inherited` is another
82
+ * replica's and does not count), or undo is on (it turns on with the genesis
83
+ * cut, C1). After that, a checkpoint may already have left the device, so a
84
+ * row without meta can no longer be assumed to be in it.
85
+ *
86
+ * The `undo_enabled` clause never decides the repair diff, which refuses to
87
+ * run while undo is on; it is there for other callers of this function.
88
+ */
89
+ export function streamStarted(db) {
90
+ const meta = db
91
+ .prepare("SELECT 1 FROM _sync_meta WHERE substr(key, 1, length(?)) = ? OR key = 'undo_enabled' LIMIT 1")
92
+ .get(GENESIS_CUT_KEY_PREFIX, GENESIS_CUT_KEY_PREFIX);
93
+ if (meta !== undefined)
94
+ return true;
95
+ return (hasTable(db, '_sync_txn') &&
96
+ db.prepare("SELECT 1 FROM _sync_txn WHERE state IN ('segmented', 'folded') LIMIT 1").get() !==
97
+ undefined);
98
+ }
99
+ /**
100
+ * Diff one table against its row meta, every row. Read-only.
101
+ *
102
+ * @param db - The store.
103
+ * @param scope - Its scope.
104
+ * @param table - A sync-set table.
105
+ * @param view - From {@link sealerRowView}, shared across tables.
106
+ */
107
+ export function planRepair(db, scope, table, view = sealerRowView(db, scope)) {
108
+ const plan = (skipped, baselined = false) => ({
109
+ table,
110
+ baselined,
111
+ inserts: [],
112
+ updates: [],
113
+ deletes: [],
114
+ unbaselined: [],
115
+ held: 0,
116
+ unidentified: 0,
117
+ skipped,
118
+ });
119
+ if (!hasTable(db, table))
120
+ return plan('table does not exist');
121
+ const def = captureTableDef(db, scope, table);
122
+ if (!def)
123
+ return plan('not in the sync set');
124
+ if (!def.identity.includes(UID_COLUMN))
125
+ return plan('table has no uid column');
126
+ if (!captureTriggersPresent(db, table)) {
127
+ return plan('capture triggers missing: run cleo doctor sync-triggers --repair first');
128
+ }
129
+ if (waiting(db, table) > 0)
130
+ return plan('captures still waiting to seal');
131
+ const baselined = metaValue(db, `${BASELINE_KEY_PREFIX}${table}`) !== undefined;
132
+ // Once the stream has started, no row may be absorbed silently: a row
133
+ // without meta is journaled as an I even in a table never baselined
134
+ // (T13217). Only before genesis is it baselined without an op.
135
+ const journalMissing = baselined || streamStarted(db);
136
+ const meta = new Map();
137
+ for (const m of db
138
+ .prepare('SELECT uid, chash, deleted, held FROM _sync_row_meta WHERE tbl = ?')
139
+ .all(table)) {
140
+ meta.set(m.uid, { chash: m.chash, deleted: m.deleted, held: m.held });
141
+ }
142
+ const inserts = [];
143
+ const updates = [];
144
+ const unbaselined = [];
145
+ let held = 0;
146
+ let unidentified = 0;
147
+ const live = new Set();
148
+ const rows = db
149
+ .prepare(`SELECT x.${q(UID_COLUMN)} AS uid, ${repairImageSql(def, 'x').rk} AS rk FROM ${q(table)} x`)
150
+ .iterate();
151
+ for (const r of rows) {
152
+ // A natural row's uid is a function of its key, as the sealer reads it.
153
+ const uid = r.uid ?? view.naturalUid(def, r.rk);
154
+ if (uid === null) {
155
+ unidentified += 1;
156
+ continue;
157
+ }
158
+ live.add(uid);
159
+ const row = { uid, rk: r.rk };
160
+ const m = meta.get(uid);
161
+ if (!m)
162
+ (journalMissing ? inserts : unbaselined).push(row);
163
+ else if (m.held === 1)
164
+ held += 1;
165
+ else if (m.deleted === 1)
166
+ inserts.push(row);
167
+ else if (view.chash(def, uid) !== m.chash)
168
+ updates.push(row);
169
+ }
170
+ const deletes = [];
171
+ for (const [uid, m] of meta) {
172
+ if (live.has(uid) || m.deleted === 1)
173
+ continue;
174
+ if (m.held === 1)
175
+ held += 1;
176
+ else
177
+ deletes.push(uid);
178
+ }
179
+ return {
180
+ table,
181
+ baselined,
182
+ inserts,
183
+ updates,
184
+ deletes,
185
+ unbaselined,
186
+ held,
187
+ unidentified,
188
+ skipped: null,
189
+ };
190
+ }
191
+ /** `x`'s local key matches the bound key values ({@link keyValues}). */
192
+ function keyWhere(def) {
193
+ return def.key.map((k) => `x.${q(k)} IS ?`).join(' AND ');
194
+ }
195
+ /** A bindable SQLite value for a decoded key part. */
196
+ function bindable(v) {
197
+ if (v === null || typeof v === 'string' || typeof v === 'number')
198
+ return v;
199
+ if ('$i' in v)
200
+ return BigInt(v.$i);
201
+ if ('$r' in v)
202
+ return Number(v.$r);
203
+ return Buffer.from(v.$b, 'base64');
204
+ }
205
+ /** The key values a row's `rk` encodes, in key-column order. */
206
+ function keyValues(rk) {
207
+ return JSON.parse(rk).map((p) => bindable(decodeEnc(p)));
208
+ }
209
+ /**
210
+ * Write a plan's ops as the captures of one `repair` frame. Runs in the
211
+ * caller's transaction.
212
+ *
213
+ * @returns The frame, or null when the plan emits nothing.
214
+ */
215
+ function writeRepairFrame(db, def, plan) {
216
+ if (plan.inserts.length + plan.updates.length + plan.deletes.length === 0)
217
+ return null;
218
+ const frame = randomUUID();
219
+ const first = db.prepare('SELECT coalesce(max(seq), 0) + 1 AS n FROM main._sync_capture').get().n;
220
+ db.prepare('INSERT INTO _sync_frame (frame, kind, actor, first_seq) VALUES (?, ?, ?, ?)').run(frame, 'repair', null, first);
221
+ const img = repairImageSql(def, 'x');
222
+ const fromLive = (op, image) => db.prepare(`INSERT INTO _sync_capture (tbl, op, rk, uid, img, at_ms, frame, kind) ` +
223
+ `SELECT ?, '${op}', ?, ?, ${image}, ${AT_MS_SQL}, ?, 'repair' ` +
224
+ `FROM ${q(def.table)} x WHERE ${keyWhere(def)}`);
225
+ const ins = fromLive('I', img.insert);
226
+ const upd = fromLive('U', img.update);
227
+ // An orphan has no live row, so no local key: its rk only has to be unique
228
+ // per row, and its image is empty (the sealer reads a natural key from meta).
229
+ const del = db.prepare(`INSERT INTO _sync_capture (tbl, op, rk, uid, img, at_ms, frame, kind) ` +
230
+ `VALUES (?, 'D', ?, ?, '{}', ${AT_MS_SQL}, ?, 'repair')`);
231
+ for (const r of plan.updates)
232
+ upd.run(def.table, r.rk, r.uid, frame, ...keyValues(r.rk));
233
+ for (const r of plan.inserts)
234
+ ins.run(def.table, r.rk, r.uid, frame, ...keyValues(r.rk));
235
+ for (const uid of plan.deletes)
236
+ del.run(def.table, JSON.stringify(['<orphan>', uid]), uid, frame);
237
+ return frame;
238
+ }
239
+ /** The column a pre-sync row's genesis HLC is read from (§1.2), or null. */
240
+ function genesisColumn(scope, table) {
241
+ const stamps = timestampColumns(scope, table);
242
+ for (const c of ['updated_at', 'created_at', 'recorded_at', 'started_at']) {
243
+ if (stamps.has(c))
244
+ return c;
245
+ }
246
+ return null;
247
+ }
248
+ /**
249
+ * Baseline live rows that have no meta (§1.2 "genesis of an existing row"):
250
+ * the row's modification column, else its birth column, clamped to
251
+ * `[0, now]`, counter 0, this replica. No op is emitted.
252
+ */
253
+ function baselineRows(db, scope, def, rows, replica, view, now) {
254
+ const col = genesisColumn(scope, def.table);
255
+ const natural = rowIdentitySpec(scope, def.table)?.kind !== 'minted';
256
+ const read = db.prepare(`SELECT ${col ? `x.${q(col)}` : 'NULL'} AS at FROM ${q(def.table)} x WHERE ${keyWhere(def)}`);
257
+ for (const r of rows) {
258
+ const row = read.get(...keyValues(r.rk));
259
+ if (!row)
260
+ continue;
261
+ const canon = typeof row.at === 'string' ? canonicalStoreTimestamp(row.at) : null;
262
+ const phys = canon ? Math.min(Math.max(Date.parse(canon), 0), now, MAX_PHYS) : 0;
263
+ const uid = r.uid;
264
+ upsertRowMeta(db, {
265
+ tbl: def.table,
266
+ uid,
267
+ hlc: encodeHlc({ phys, ctr: 0, replica }),
268
+ fhlc: null,
269
+ origin: replica,
270
+ actor: null,
271
+ version: 0,
272
+ deleted: false,
273
+ keyJson: natural ? view.naturalKeyJson(def, r.rk) : null,
274
+ chash: view.chash(def, uid),
275
+ bfp: natural ? null : (view.liveBirthFp(def.table, uid) ?? null),
276
+ });
277
+ }
278
+ }
279
+ /** Set `table`'s sealed-row count in the ledger. */
280
+ function setLedger(db, table, live) {
281
+ db.prepare('INSERT INTO _sync_ledger (tbl, live) VALUES (?, ?) ON CONFLICT (tbl) DO UPDATE SET live = excluded.live').run(table, live);
282
+ }
283
+ /**
284
+ * Baseline `rows` and record it, in the caller's transaction: their meta,
285
+ * the ledger set to `count(*) + held`, and `baseline:<table>` commit (or roll
286
+ * back, or die with the process) together, so a crash mid-baseline leaves
287
+ * nothing half-written and the next run starts over.
288
+ */
289
+ function baselineTable(db, scope, def, rows, replica, view, now) {
290
+ baselineRows(db, scope, def, rows, replica, view, now);
291
+ const count = db.prepare(`SELECT count(*) AS n FROM ${q(def.table)}`).get().n;
292
+ const held = db.prepare('SELECT held FROM _sync_ledger WHERE tbl = ?').get(def.table)?.held ?? 0;
293
+ setLedger(db, def.table, count + held);
294
+ const at = new Date(now).toISOString();
295
+ db.prepare('INSERT INTO _sync_meta (key, value, updated_at) VALUES (?, ?, ?) ' +
296
+ 'ON CONFLICT(key) DO UPDATE SET value = excluded.value, updated_at = excluded.updated_at').run(`${BASELINE_KEY_PREFIX}${def.table}`, at, at);
297
+ }
298
+ /**
299
+ * Baseline one table's row meta (§1.2 "genesis of an existing row"; §1.6
300
+ * "one live meta row per live sync-set row"): every live row with a uid and
301
+ * no meta gets meta with its genesis HLC and no op, the ledger is set to
302
+ * `count(*) + held`, and `baseline:<table>` is recorded, atomically. The
303
+ * repair diff calls it for a table never baselined; T12342's first-enable
304
+ * init is meant to call it for every sync-set table, so row meta keeps one
305
+ * initializer.
306
+ *
307
+ * Runs in the caller's transaction when there is one, else in its own
308
+ * `BEGIN IMMEDIATE`.
309
+ *
310
+ * @param db - The store.
311
+ * @param scope - Its scope.
312
+ * @param table - A sync-set table with a uid column.
313
+ * @param replica - The replica the baseline meta names as origin.
314
+ * @param now - Wall milliseconds (the genesis HLC is clamped to it).
315
+ * @returns The rows baselined, or null when the table is not in the sync set.
316
+ */
317
+ export function baselineRowMeta(db, scope, table, replica, now = Date.now()) {
318
+ const def = captureTableDef(db, scope, table);
319
+ if (!def)
320
+ return null;
321
+ if (!def.identity.includes(UID_COLUMN))
322
+ return null;
323
+ const run = (fn) => (db.isTransaction ? fn() : withImmediateTransaction(db, fn));
324
+ return run(() => {
325
+ const view = sealerRowView(db, scope);
326
+ const known = new Set(db.prepare('SELECT uid FROM _sync_row_meta WHERE tbl = ?').all(table).map((r) => r.uid));
327
+ const rows = [];
328
+ for (const r of db
329
+ .prepare(`SELECT x.${q(UID_COLUMN)} AS uid, ${repairImageSql(def, 'x').rk} AS rk FROM ${q(table)} x`)
330
+ .iterate()) {
331
+ const uid = r.uid ?? view.naturalUid(def, r.rk);
332
+ if (uid !== null && !known.has(uid))
333
+ rows.push({ uid, rk: r.rk });
334
+ }
335
+ baselineTable(db, scope, def, rows, replica, view, now);
336
+ return rows.length;
337
+ });
338
+ }
339
+ function resultOf(plan, frame, cleared, reason) {
340
+ return {
341
+ table: plan.table,
342
+ baselined: plan.baselined,
343
+ counts: {
344
+ inserts: plan.inserts.length,
345
+ updates: plan.updates.length,
346
+ deletes: plan.deletes.length,
347
+ baselinedRows: plan.unbaselined.length,
348
+ held: plan.held,
349
+ unidentified: plan.unidentified,
350
+ },
351
+ sample: {
352
+ inserts: plan.inserts.slice(0, REPAIR_SAMPLE_SIZE).map((r) => r.uid),
353
+ updates: plan.updates.slice(0, REPAIR_SAMPLE_SIZE).map((r) => r.uid),
354
+ deletes: plan.deletes.slice(0, REPAIR_SAMPLE_SIZE),
355
+ },
356
+ frame,
357
+ cleared,
358
+ reason,
359
+ };
360
+ }
361
+ /**
362
+ * Verify a repaired table and clear its suspect key (§4.4 verification). Runs
363
+ * in its own `BEGIN IMMEDIATE`.
364
+ *
365
+ * @returns Why the table stays suspect, or null when the key was cleared.
366
+ */
367
+ function verifyAndClear(db, scope, table, mark, replica, now) {
368
+ return withImmediateTransaction(db, () => {
369
+ const def = captureTableDef(db, scope, table);
370
+ if (!def)
371
+ return 'left the sync set during the repair';
372
+ if (waiting(db, table) > 0)
373
+ return 'writes arrived during the repair: run it again';
374
+ const view = sealerRowView(db, scope);
375
+ const plan = planRepair(db, scope, table, view);
376
+ if (plan.skipped)
377
+ return plan.skipped;
378
+ if (plan.unidentified > 0) {
379
+ return `${plan.unidentified} row(s) without uid: run the identity fill first`;
380
+ }
381
+ const left = plan.inserts.length + plan.updates.length + plan.deletes.length;
382
+ if (left > 0)
383
+ return `the rescan still finds ${left} row(s) to repair`;
384
+ const count = db.prepare(`SELECT count(*) AS n FROM ${q(table)}`).get().n;
385
+ const ledger = db.prepare('SELECT live, held FROM _sync_ledger WHERE tbl = ?').get(table);
386
+ if (!plan.baselined) {
387
+ baselineTable(db, scope, def, plan.unbaselined, replica, view, now);
388
+ }
389
+ else if (!ledger) {
390
+ setLedger(db, table, count);
391
+ }
392
+ else if (ledger.live !== count + ledger.held) {
393
+ return `ledger ${ledger.live} differs from count ${count} + held ${ledger.held}`;
394
+ }
395
+ // A key re-marked while the repair ran carries a newer value: keep it.
396
+ const gone = db
397
+ .prepare('DELETE FROM _sync_meta WHERE key = ? AND value = ?')
398
+ .run(`suspect:${table}`, mark);
399
+ return gone.changes === 1 ? null : 'marked suspect again during the repair: run it again';
400
+ });
401
+ }
402
+ /**
403
+ * Seal what is pending, then run the repair diff over every suspect table
404
+ * (§4.4; S3d, T12987): emit each table's repair ops in a `repair` frame, seal
405
+ * them, then verify and clear the suspect key. The pending seal runs even
406
+ * when no table is suspect (the NEW-8 step before a migration pass). A dry
407
+ * run only plans.
408
+ *
409
+ * Prerequisites (§4.4): the sealer's preconditions hold, a replica is bound,
410
+ * the table's capture triggers are present, and no capture of the table is
411
+ * left waiting after the pending seal. Undo is not written for repair
412
+ * captures yet, so the repair refuses while `undo_enabled` is set.
413
+ *
414
+ * @param db - The store; must not be inside a transaction.
415
+ * @param opts - {@link RepairOptions}.
416
+ */
417
+ export function repairSuspectTables(db, opts) {
418
+ const dryRun = opts.dryRun === true;
419
+ const env = opts.env ?? process.env;
420
+ const now = opts.now ?? Date.now;
421
+ if (!hasTable(db, '_sync_row_meta') || !hasTable(db, '_sync_meta')) {
422
+ return empty('sync schema not installed', dryRun);
423
+ }
424
+ const wanted = opts.tables ? new Set(opts.tables) : null;
425
+ const suspect = suspectTables(db).filter((t) => wanted === null || wanted.has(t));
426
+ if (dryRun) {
427
+ const view = sealerRowView(db, opts.scope);
428
+ return {
429
+ refused: null,
430
+ dryRun,
431
+ tables: suspect.map((t) => {
432
+ const plan = planRepair(db, opts.scope, t, view);
433
+ return resultOf(plan, null, false, plan.skipped ?? 'dry run');
434
+ }),
435
+ sealed: { txns: 0, ops: 0 },
436
+ };
437
+ }
438
+ const refused = sealPreconditions(db, env, opts.allowUnreleased === true);
439
+ if (refused)
440
+ return empty(refused, dryRun);
441
+ const replica = opts.replica ?? activeReplica(db, opts.scope)?.replicaId;
442
+ if (!replica)
443
+ return empty('no bound replica', dryRun);
444
+ const sealed = { txns: 0, ops: 0 };
445
+ const sealAll = () => {
446
+ for (;;) {
447
+ const r = sealPending(db, {
448
+ scope: opts.scope,
449
+ replica,
450
+ env,
451
+ allowUnreleased: opts.allowUnreleased === true,
452
+ now,
453
+ });
454
+ sealed.txns += r.txns;
455
+ sealed.ops += r.ops;
456
+ if (r.refused !== null || r.captures === 0 || r.pending.length > 0)
457
+ return;
458
+ }
459
+ };
460
+ // §4.4 prerequisite: sealing idle. Captured writes seal first (NEW-8),
461
+ // whether or not any table is suspect.
462
+ sealAll();
463
+ if (suspect.length === 0)
464
+ return { refused: null, dryRun, tables: [], sealed };
465
+ if (metaValue(db, 'undo_enabled') !== undefined) {
466
+ return {
467
+ refused: 'repair captures carry no undo yet: refused while undo_enabled is set',
468
+ dryRun,
469
+ tables: [],
470
+ sealed,
471
+ };
472
+ }
473
+ const results = [];
474
+ const written = [];
475
+ for (const table of suspect) {
476
+ const out = withImmediateTransaction(db, () => {
477
+ const mark = metaValue(db, `suspect:${table}`);
478
+ const plan = planRepair(db, opts.scope, table);
479
+ if (mark === undefined || plan.skipped !== null)
480
+ return { plan, frame: null, mark };
481
+ const def = captureTableDef(db, opts.scope, table);
482
+ return { plan, frame: def ? writeRepairFrame(db, def, plan) : null, mark };
483
+ });
484
+ if (out.mark === undefined)
485
+ continue; // cleared by someone else meanwhile
486
+ if (out.plan.skipped !== null) {
487
+ results.push(resultOf(out.plan, null, false, out.plan.skipped));
488
+ continue;
489
+ }
490
+ written.push({ plan: out.plan, frame: out.frame, mark: out.mark });
491
+ }
492
+ sealAll();
493
+ for (const w of written) {
494
+ const reason = verifyAndClear(db, opts.scope, w.plan.table, w.mark, replica, now());
495
+ results.push(resultOf(w.plan, w.frame, reason === null, reason));
496
+ }
497
+ return { refused: null, dryRun, tables: results, sealed };
498
+ }
499
+ //# sourceMappingURL=repair.js.map