@cleocode/core 2026.6.12 → 2026.6.13

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 (385) hide show
  1. package/dist/conduit/local-transport.d.ts +12 -0
  2. package/dist/conduit/local-transport.d.ts.map +1 -1
  3. package/dist/conduit/local-transport.js +53 -23
  4. package/dist/conduit/local-transport.js.map +1 -1
  5. package/dist/crypto/credentials.d.ts +37 -0
  6. package/dist/crypto/credentials.d.ts.map +1 -1
  7. package/dist/crypto/credentials.js +110 -0
  8. package/dist/crypto/credentials.js.map +1 -1
  9. package/dist/dispatch/contracts/derive-output-contract.d.ts +86 -0
  10. package/dist/dispatch/contracts/derive-output-contract.d.ts.map +1 -0
  11. package/dist/dispatch/contracts/derive-output-contract.js +347 -0
  12. package/dist/dispatch/contracts/derive-output-contract.js.map +1 -0
  13. package/dist/dispatch/contracts/ensures-schema.d.ts +77 -0
  14. package/dist/dispatch/contracts/ensures-schema.d.ts.map +1 -0
  15. package/dist/dispatch/contracts/ensures-schema.js +91 -0
  16. package/dist/dispatch/contracts/ensures-schema.js.map +1 -0
  17. package/dist/dispatch/contracts/output-contracts.d.ts +27 -5
  18. package/dist/dispatch/contracts/output-contracts.d.ts.map +1 -1
  19. package/dist/dispatch/contracts/output-contracts.js +29 -6
  20. package/dist/dispatch/contracts/output-contracts.js.map +1 -1
  21. package/dist/docs/export-document.js +2294 -1250
  22. package/dist/docs/export-document.js.map +3 -3
  23. package/dist/go/driver.d.ts +132 -7
  24. package/dist/go/driver.d.ts.map +1 -1
  25. package/dist/go/driver.js +135 -10
  26. package/dist/go/driver.js.map +1 -1
  27. package/dist/go/index.d.ts +1 -1
  28. package/dist/go/index.d.ts.map +1 -1
  29. package/dist/go/index.js +1 -1
  30. package/dist/go/index.js.map +1 -1
  31. package/dist/index.d.ts +1 -0
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +5 -0
  34. package/dist/index.js.map +1 -1
  35. package/dist/internal.d.ts +13 -10
  36. package/dist/internal.d.ts.map +1 -1
  37. package/dist/internal.js +11 -11
  38. package/dist/internal.js.map +1 -1
  39. package/dist/lifecycle/engine-ops.d.ts.map +1 -1
  40. package/dist/lifecycle/engine-ops.js +7 -4
  41. package/dist/lifecycle/engine-ops.js.map +1 -1
  42. package/dist/lifecycle/ivtr-loop.d.ts +108 -183
  43. package/dist/lifecycle/ivtr-loop.d.ts.map +1 -1
  44. package/dist/lifecycle/ivtr-loop.js +207 -522
  45. package/dist/lifecycle/ivtr-loop.js.map +1 -1
  46. package/dist/llm/auxiliary-fallback.js +1 -1
  47. package/dist/llm/auxiliary-fallback.js.map +1 -1
  48. package/dist/llm/cli-ops.d.ts +14 -1
  49. package/dist/llm/cli-ops.d.ts.map +1 -1
  50. package/dist/llm/cli-ops.js +41 -12
  51. package/dist/llm/cli-ops.js.map +1 -1
  52. package/dist/llm/concrete-session.d.ts.map +1 -1
  53. package/dist/llm/concrete-session.js +4 -0
  54. package/dist/llm/concrete-session.js.map +1 -1
  55. package/dist/llm/credentials.d.ts +35 -0
  56. package/dist/llm/credentials.d.ts.map +1 -1
  57. package/dist/llm/credentials.js +49 -0
  58. package/dist/llm/credentials.js.map +1 -1
  59. package/dist/llm/index.d.ts +4 -0
  60. package/dist/llm/index.d.ts.map +1 -1
  61. package/dist/llm/index.js +4 -0
  62. package/dist/llm/index.js.map +1 -1
  63. package/dist/llm/pi/gondolin-loader.d.ts +241 -0
  64. package/dist/llm/pi/gondolin-loader.d.ts.map +1 -0
  65. package/dist/llm/pi/gondolin-loader.js +195 -0
  66. package/dist/llm/pi/gondolin-loader.js.map +1 -0
  67. package/dist/llm/pi/index.d.ts +28 -0
  68. package/dist/llm/pi/index.d.ts.map +1 -0
  69. package/dist/llm/pi/index.js +27 -0
  70. package/dist/llm/pi/index.js.map +1 -0
  71. package/dist/llm/pi/pi-agent-adapter.d.ts +135 -0
  72. package/dist/llm/pi/pi-agent-adapter.d.ts.map +1 -0
  73. package/dist/llm/pi/pi-agent-adapter.js +329 -0
  74. package/dist/llm/pi/pi-agent-adapter.js.map +1 -0
  75. package/dist/llm/pi/pi-errors.d.ts +161 -0
  76. package/dist/llm/pi/pi-errors.d.ts.map +1 -0
  77. package/dist/llm/pi/pi-errors.js +296 -0
  78. package/dist/llm/pi/pi-errors.js.map +1 -0
  79. package/dist/llm/pi/pi-execution-env.d.ts +286 -0
  80. package/dist/llm/pi/pi-execution-env.d.ts.map +1 -0
  81. package/dist/llm/pi/pi-execution-env.js +406 -0
  82. package/dist/llm/pi/pi-execution-env.js.map +1 -0
  83. package/dist/llm/pi/pi-gondolin-env.d.ts +227 -0
  84. package/dist/llm/pi/pi-gondolin-env.d.ts.map +1 -0
  85. package/dist/llm/pi/pi-gondolin-env.js +541 -0
  86. package/dist/llm/pi/pi-gondolin-env.js.map +1 -0
  87. package/dist/llm/pi/pi-session-storage.d.ts +154 -0
  88. package/dist/llm/pi/pi-session-storage.d.ts.map +1 -0
  89. package/dist/llm/pi/pi-session-storage.js +314 -0
  90. package/dist/llm/pi/pi-session-storage.js.map +1 -0
  91. package/dist/llm/pi/pi-stream-fn.d.ts +124 -0
  92. package/dist/llm/pi/pi-stream-fn.d.ts.map +1 -0
  93. package/dist/llm/pi/pi-stream-fn.js +504 -0
  94. package/dist/llm/pi/pi-stream-fn.js.map +1 -0
  95. package/dist/llm/pi/pi-tool-bridge.d.ts +99 -0
  96. package/dist/llm/pi/pi-tool-bridge.d.ts.map +1 -0
  97. package/dist/llm/pi/pi-tool-bridge.js +117 -0
  98. package/dist/llm/pi/pi-tool-bridge.js.map +1 -0
  99. package/dist/llm/pi/pi-types.d.ts +56 -0
  100. package/dist/llm/pi/pi-types.d.ts.map +1 -0
  101. package/dist/llm/pi/pi-types.js +16 -0
  102. package/dist/llm/pi/pi-types.js.map +1 -0
  103. package/dist/llm/pi/resolve-execution-env.d.ts +194 -0
  104. package/dist/llm/pi/resolve-execution-env.d.ts.map +1 -0
  105. package/dist/llm/pi/resolve-execution-env.js +132 -0
  106. package/dist/llm/pi/resolve-execution-env.js.map +1 -0
  107. package/dist/llm/plugin-facade.js +2253 -1151
  108. package/dist/llm/plugin-facade.js.map +3 -3
  109. package/dist/llm/role-executor.d.ts.map +1 -1
  110. package/dist/llm/role-executor.js +8 -5
  111. package/dist/llm/role-executor.js.map +1 -1
  112. package/dist/llm/role-resolver.d.ts +46 -14
  113. package/dist/llm/role-resolver.d.ts.map +1 -1
  114. package/dist/llm/role-resolver.js +178 -20
  115. package/dist/llm/role-resolver.js.map +1 -1
  116. package/dist/llm/sealed-credential.d.ts +125 -0
  117. package/dist/llm/sealed-credential.d.ts.map +1 -0
  118. package/dist/llm/sealed-credential.js +133 -0
  119. package/dist/llm/sealed-credential.js.map +1 -0
  120. package/dist/llm/session-factory.d.ts.map +1 -1
  121. package/dist/llm/session-factory.js +6 -2
  122. package/dist/llm/session-factory.js.map +1 -1
  123. package/dist/llm/system-key.d.ts +67 -0
  124. package/dist/llm/system-key.d.ts.map +1 -0
  125. package/dist/llm/system-key.js +87 -0
  126. package/dist/llm/system-key.js.map +1 -0
  127. package/dist/llm/system-of-use-registry.d.ts +119 -0
  128. package/dist/llm/system-of-use-registry.d.ts.map +1 -0
  129. package/dist/llm/system-of-use-registry.js +200 -0
  130. package/dist/llm/system-of-use-registry.js.map +1 -0
  131. package/dist/llm/system-resolver.d.ts +32 -10
  132. package/dist/llm/system-resolver.d.ts.map +1 -1
  133. package/dist/llm/system-resolver.js +70 -18
  134. package/dist/llm/system-resolver.js.map +1 -1
  135. package/dist/memory/brain-writer-thread.d.ts.map +1 -1
  136. package/dist/memory/brain-writer-thread.js +116 -11
  137. package/dist/memory/brain-writer-thread.js.map +1 -1
  138. package/dist/memory/claude-mem-migration.d.ts.map +1 -1
  139. package/dist/memory/claude-mem-migration.js +21 -0
  140. package/dist/memory/claude-mem-migration.js.map +1 -1
  141. package/dist/memory/graph-memory-bridge.d.ts.map +1 -1
  142. package/dist/memory/graph-memory-bridge.js +32 -25
  143. package/dist/memory/graph-memory-bridge.js.map +1 -1
  144. package/dist/memory/llm-backend-resolver.js +23 -5
  145. package/dist/memory/llm-backend-resolver.js.map +1 -1
  146. package/dist/nexus/migrations/M-split-graph.d.ts.map +1 -1
  147. package/dist/nexus/migrations/M-split-graph.js +60 -53
  148. package/dist/nexus/migrations/M-split-graph.js.map +1 -1
  149. package/dist/orchestrate/pivot.d.ts.map +1 -1
  150. package/dist/orchestrate/pivot.js +20 -2
  151. package/dist/orchestrate/pivot.js.map +1 -1
  152. package/dist/release/engine-ops.js +2 -2
  153. package/dist/release/engine-ops.js.map +1 -1
  154. package/dist/routing/capability-matrix.d.ts.map +1 -1
  155. package/dist/routing/capability-matrix.js +0 -57
  156. package/dist/routing/capability-matrix.js.map +1 -1
  157. package/dist/selfimprove/budget.d.ts +206 -0
  158. package/dist/selfimprove/budget.d.ts.map +1 -0
  159. package/dist/selfimprove/budget.js +203 -0
  160. package/dist/selfimprove/budget.js.map +1 -0
  161. package/dist/selfimprove/dhq-adapter.d.ts +105 -0
  162. package/dist/selfimprove/dhq-adapter.d.ts.map +1 -0
  163. package/dist/selfimprove/dhq-adapter.js +95 -0
  164. package/dist/selfimprove/dhq-adapter.js.map +1 -0
  165. package/dist/selfimprove/draft-pr.d.ts +129 -0
  166. package/dist/selfimprove/draft-pr.d.ts.map +1 -0
  167. package/dist/selfimprove/draft-pr.js +158 -0
  168. package/dist/selfimprove/draft-pr.js.map +1 -0
  169. package/dist/selfimprove/envelope-diff.d.ts +162 -0
  170. package/dist/selfimprove/envelope-diff.d.ts.map +1 -0
  171. package/dist/selfimprove/envelope-diff.js +321 -0
  172. package/dist/selfimprove/envelope-diff.js.map +1 -0
  173. package/dist/selfimprove/replay.d.ts +121 -0
  174. package/dist/selfimprove/replay.d.ts.map +1 -0
  175. package/dist/selfimprove/replay.js +109 -0
  176. package/dist/selfimprove/replay.js.map +1 -0
  177. package/dist/selfimprove/run-loop.d.ts +148 -0
  178. package/dist/selfimprove/run-loop.d.ts.map +1 -0
  179. package/dist/selfimprove/run-loop.js +240 -0
  180. package/dist/selfimprove/run-loop.js.map +1 -0
  181. package/dist/selfimprove/scenario.d.ts +145 -0
  182. package/dist/selfimprove/scenario.d.ts.map +1 -0
  183. package/dist/selfimprove/scenario.js +243 -0
  184. package/dist/selfimprove/scenario.js.map +1 -0
  185. package/dist/sentient/daemon-entry.js +5 -0
  186. package/dist/sentient/daemon-entry.js.map +1 -1
  187. package/dist/sentient/daemon.d.ts.map +1 -1
  188. package/dist/sentient/daemon.js +19 -0
  189. package/dist/sentient/daemon.js.map +1 -1
  190. package/dist/sentient/hygiene-scan.d.ts.map +1 -1
  191. package/dist/sentient/hygiene-scan.js +14 -6
  192. package/dist/sentient/hygiene-scan.js.map +1 -1
  193. package/dist/sessions/briefing.d.ts.map +1 -1
  194. package/dist/sessions/briefing.js +13 -9
  195. package/dist/sessions/briefing.js.map +1 -1
  196. package/dist/sessions/connection-session-handle.d.ts +161 -0
  197. package/dist/sessions/connection-session-handle.d.ts.map +1 -0
  198. package/dist/sessions/connection-session-handle.js +168 -0
  199. package/dist/sessions/connection-session-handle.js.map +1 -0
  200. package/dist/sessions/handoff.d.ts.map +1 -1
  201. package/dist/sessions/handoff.js +9 -0
  202. package/dist/sessions/handoff.js.map +1 -1
  203. package/dist/sessions/index.d.ts +4 -1
  204. package/dist/sessions/index.d.ts.map +1 -1
  205. package/dist/sessions/index.js +31 -1
  206. package/dist/sessions/index.js.map +1 -1
  207. package/dist/sessions/session-id.d.ts +34 -0
  208. package/dist/sessions/session-id.d.ts.map +1 -1
  209. package/dist/sessions/session-id.js +37 -0
  210. package/dist/sessions/session-id.js.map +1 -1
  211. package/dist/sessions/session-manifest-mirror.d.ts +115 -0
  212. package/dist/sessions/session-manifest-mirror.d.ts.map +1 -0
  213. package/dist/sessions/session-manifest-mirror.js +250 -0
  214. package/dist/sessions/session-manifest-mirror.js.map +1 -0
  215. package/dist/sessions/session-switch.d.ts.map +1 -1
  216. package/dist/sessions/session-switch.js +5 -2
  217. package/dist/sessions/session-switch.js.map +1 -1
  218. package/dist/store/converters.d.ts.map +1 -1
  219. package/dist/store/converters.js +2 -0
  220. package/dist/store/converters.js.map +1 -1
  221. package/dist/store/db-helpers.d.ts.map +1 -1
  222. package/dist/store/db-helpers.js +2 -0
  223. package/dist/store/db-helpers.js.map +1 -1
  224. package/dist/store/dual-scope-db.d.ts.map +1 -1
  225. package/dist/store/dual-scope-db.js +87 -47
  226. package/dist/store/dual-scope-db.js.map +1 -1
  227. package/dist/store/pi-session-store.d.ts +151 -0
  228. package/dist/store/pi-session-store.d.ts.map +1 -0
  229. package/dist/store/pi-session-store.js +166 -0
  230. package/dist/store/pi-session-store.js.map +1 -0
  231. package/dist/store/safety-data-accessor.d.ts +1 -0
  232. package/dist/store/safety-data-accessor.d.ts.map +1 -1
  233. package/dist/store/safety-data-accessor.js +5 -0
  234. package/dist/store/safety-data-accessor.js.map +1 -1
  235. package/dist/store/schema/cleo-global/accounts.d.ts +357 -0
  236. package/dist/store/schema/cleo-global/accounts.d.ts.map +1 -0
  237. package/dist/store/schema/cleo-global/accounts.js +136 -0
  238. package/dist/store/schema/cleo-global/accounts.js.map +1 -0
  239. package/dist/store/schema/cleo-global/index.d.ts +2 -0
  240. package/dist/store/schema/cleo-global/index.d.ts.map +1 -1
  241. package/dist/store/schema/cleo-global/index.js +2 -0
  242. package/dist/store/schema/cleo-global/index.js.map +1 -1
  243. package/dist/store/schema/cleo-global/session-manifest.d.ts +217 -0
  244. package/dist/store/schema/cleo-global/session-manifest.d.ts.map +1 -0
  245. package/dist/store/schema/cleo-global/session-manifest.js +99 -0
  246. package/dist/store/schema/cleo-global/session-manifest.js.map +1 -0
  247. package/dist/store/schema/cleo-project/tasks-core.d.ts +16 -0
  248. package/dist/store/schema/cleo-project/tasks-core.d.ts.map +1 -1
  249. package/dist/store/schema/cleo-project/tasks-core.js +14 -0
  250. package/dist/store/schema/cleo-project/tasks-core.js.map +1 -1
  251. package/dist/store/schema/tasks.d.ts +16 -0
  252. package/dist/store/schema/tasks.d.ts.map +1 -1
  253. package/dist/store/schema/tasks.js +10 -0
  254. package/dist/store/schema/tasks.js.map +1 -1
  255. package/dist/store/selfimprove-dhq-schema.d.ts +284 -0
  256. package/dist/store/selfimprove-dhq-schema.d.ts.map +1 -0
  257. package/dist/store/selfimprove-dhq-schema.js +128 -0
  258. package/dist/store/selfimprove-dhq-schema.js.map +1 -0
  259. package/dist/store/selfimprove-dhq-store.d.ts +175 -0
  260. package/dist/store/selfimprove-dhq-store.d.ts.map +1 -0
  261. package/dist/store/selfimprove-dhq-store.js +182 -0
  262. package/dist/store/selfimprove-dhq-store.js.map +1 -0
  263. package/dist/store/session-store.d.ts +52 -13
  264. package/dist/store/session-store.d.ts.map +1 -1
  265. package/dist/store/session-store.js +71 -13
  266. package/dist/store/session-store.js.map +1 -1
  267. package/dist/store/sqlite-data-accessor.d.ts.map +1 -1
  268. package/dist/store/sqlite-data-accessor.js +7 -0
  269. package/dist/store/sqlite-data-accessor.js.map +1 -1
  270. package/dist/store/umbrella-data-accessor.d.ts +1 -0
  271. package/dist/store/umbrella-data-accessor.d.ts.map +1 -1
  272. package/dist/store/umbrella-data-accessor.js +5 -0
  273. package/dist/store/umbrella-data-accessor.js.map +1 -1
  274. package/dist/store/validation-schemas.d.ts +32 -0
  275. package/dist/store/validation-schemas.d.ts.map +1 -1
  276. package/dist/store/writer-lease-schema.d.ts +392 -0
  277. package/dist/store/writer-lease-schema.d.ts.map +1 -0
  278. package/dist/store/writer-lease-schema.js +142 -0
  279. package/dist/store/writer-lease-schema.js.map +1 -0
  280. package/dist/store/writer-lease.d.ts +368 -0
  281. package/dist/store/writer-lease.d.ts.map +1 -0
  282. package/dist/store/writer-lease.js +1002 -0
  283. package/dist/store/writer-lease.js.map +1 -0
  284. package/dist/tasks/backfill-child-projections.d.ts.map +1 -1
  285. package/dist/tasks/backfill-child-projections.js +14 -9
  286. package/dist/tasks/backfill-child-projections.js.map +1 -1
  287. package/dist/tasks/complete.d.ts.map +1 -1
  288. package/dist/tasks/complete.js +7 -10
  289. package/dist/tasks/complete.js.map +1 -1
  290. package/dist/tasks/duplicate-detector.d.ts.map +1 -1
  291. package/dist/tasks/duplicate-detector.js +14 -7
  292. package/dist/tasks/duplicate-detector.js.map +1 -1
  293. package/dist/telemetry/index.d.ts.map +1 -1
  294. package/dist/telemetry/index.js +10 -4
  295. package/dist/telemetry/index.js.map +1 -1
  296. package/dist/tools/agent-registry.d.ts +250 -0
  297. package/dist/tools/agent-registry.d.ts.map +1 -0
  298. package/dist/tools/agent-registry.js +292 -0
  299. package/dist/tools/agent-registry.js.map +1 -0
  300. package/dist/tools/agent-tool-families.d.ts +107 -0
  301. package/dist/tools/agent-tool-families.d.ts.map +1 -0
  302. package/dist/tools/agent-tool-families.js +527 -0
  303. package/dist/tools/agent-tool-families.js.map +1 -0
  304. package/dist/tools/browser-driver.d.ts +183 -0
  305. package/dist/tools/browser-driver.d.ts.map +1 -0
  306. package/dist/tools/browser-driver.js +242 -0
  307. package/dist/tools/browser-driver.js.map +1 -0
  308. package/dist/tools/builtin-agent-tools.d.ts +36 -0
  309. package/dist/tools/builtin-agent-tools.d.ts.map +1 -0
  310. package/dist/tools/builtin-agent-tools.js +150 -0
  311. package/dist/tools/builtin-agent-tools.js.map +1 -0
  312. package/dist/tools/dispatch.d.ts +370 -0
  313. package/dist/tools/dispatch.d.ts.map +1 -0
  314. package/dist/tools/dispatch.js +505 -0
  315. package/dist/tools/dispatch.js.map +1 -0
  316. package/dist/tools/env-scrub.d.ts +93 -0
  317. package/dist/tools/env-scrub.d.ts.map +1 -0
  318. package/dist/tools/env-scrub.js +176 -0
  319. package/dist/tools/env-scrub.js.map +1 -0
  320. package/dist/tools/fs.d.ts +30 -0
  321. package/dist/tools/fs.d.ts.map +1 -1
  322. package/dist/tools/fs.js +55 -2
  323. package/dist/tools/fs.js.map +1 -1
  324. package/dist/tools/guard.d.ts +15 -0
  325. package/dist/tools/guard.d.ts.map +1 -1
  326. package/dist/tools/guard.js +49 -12
  327. package/dist/tools/guard.js.map +1 -1
  328. package/dist/tools/index.d.ts +10 -0
  329. package/dist/tools/index.d.ts.map +1 -1
  330. package/dist/tools/index.js +37 -0
  331. package/dist/tools/index.js.map +1 -1
  332. package/dist/tools/pty.d.ts +45 -0
  333. package/dist/tools/pty.d.ts.map +1 -0
  334. package/dist/tools/pty.js +166 -0
  335. package/dist/tools/pty.js.map +1 -0
  336. package/dist/tools/schema-gen.d.ts +57 -0
  337. package/dist/tools/schema-gen.d.ts.map +1 -0
  338. package/dist/tools/schema-gen.js +52 -0
  339. package/dist/tools/schema-gen.js.map +1 -0
  340. package/dist/tools/shell.d.ts +12 -0
  341. package/dist/tools/shell.d.ts.map +1 -1
  342. package/dist/tools/shell.js +14 -1
  343. package/dist/tools/shell.js.map +1 -1
  344. package/dist/tools/web-agent-tools.d.ts +72 -0
  345. package/dist/tools/web-agent-tools.d.ts.map +1 -0
  346. package/dist/tools/web-agent-tools.js +393 -0
  347. package/dist/tools/web-agent-tools.js.map +1 -0
  348. package/dist/tools/web-search-backends.d.ts +156 -0
  349. package/dist/tools/web-search-backends.d.ts.map +1 -0
  350. package/dist/tools/web-search-backends.js +290 -0
  351. package/dist/tools/web-search-backends.js.map +1 -0
  352. package/dist/validation/ops.d.ts +1 -15
  353. package/dist/validation/ops.d.ts.map +1 -1
  354. package/dist/validation/ops.js +0 -20
  355. package/dist/validation/ops.js.map +1 -1
  356. package/migrations/drizzle-cleo-global/20260607000000_t11891-writer-leases/migration.sql +55 -0
  357. package/migrations/drizzle-cleo-global/20260607010000_t11639-session-manifest/migration.sql +43 -0
  358. package/migrations/drizzle-cleo-global/20260608000000_t11899-pi-session-tree/migration.sql +52 -0
  359. package/migrations/drizzle-cleo-global/20260608010000_t11709-accounts-credential-pool/migration.sql +72 -0
  360. package/migrations/drizzle-cleo-global/20260608020000_t11889-selfimprove-dhq/migration.sql +64 -0
  361. package/migrations/drizzle-cleo-project/20260607000000_t11891-writer-leases/migration.sql +55 -0
  362. package/migrations/drizzle-cleo-project/20260607010000_t11639-session-parent/migration.sql +22 -0
  363. package/migrations/drizzle-cleo-project/20260608000000_t11899-pi-session-tree/migration.sql +52 -0
  364. package/migrations/drizzle-cleo-project/20260608020000_t11889-selfimprove-dhq/migration.sql +64 -0
  365. package/package.json +15 -13
  366. package/dist/lifecycle/chain-composition.d.ts +0 -30
  367. package/dist/lifecycle/chain-composition.d.ts.map +0 -1
  368. package/dist/lifecycle/chain-composition.js +0 -152
  369. package/dist/lifecycle/chain-composition.js.map +0 -1
  370. package/dist/lifecycle/chain-store.d.ts +0 -70
  371. package/dist/lifecycle/chain-store.d.ts.map +0 -1
  372. package/dist/lifecycle/chain-store.js +0 -246
  373. package/dist/lifecycle/chain-store.js.map +0 -1
  374. package/dist/lifecycle/default-chain.d.ts +0 -39
  375. package/dist/lifecycle/default-chain.d.ts.map +0 -1
  376. package/dist/lifecycle/default-chain.js +0 -176
  377. package/dist/lifecycle/default-chain.js.map +0 -1
  378. package/dist/lifecycle/tessera-engine.d.ts +0 -48
  379. package/dist/lifecycle/tessera-engine.d.ts.map +0 -1
  380. package/dist/lifecycle/tessera-engine.js +0 -249
  381. package/dist/lifecycle/tessera-engine.js.map +0 -1
  382. package/dist/validation/chain-validation.d.ts +0 -43
  383. package/dist/validation/chain-validation.d.ts.map +0 -1
  384. package/dist/validation/chain-validation.js +0 -146
  385. package/dist/validation/chain-validation.js.map +0 -1
@@ -58,6 +58,7 @@ import { getRecordedExodusAbort } from './exodus/abort-events.js';
58
58
  import { migrateWithRetry, reconcileJournal } from './migration-manager.js';
59
59
  import { resolveConsolidatedJournalSiblings, resolveCorePackageMigrationsFolder, } from './resolve-migrations-folder.js';
60
60
  import { applyPerfPragmas } from './sqlite-pragmas.js';
61
+ import { activeScope, activeScopeDbPath, withColdOpenLease, withWriterLease, } from './writer-lease.js';
61
62
  /**
62
63
  * Thrown by {@link assertWriteDurable} when a MUTATING caller is about to write
63
64
  * through a {@link DualScopeDbHandle} whose first-open exodus auto-migration
@@ -407,37 +408,62 @@ exodusCwd, options) {
407
408
  const db = drizzle({ client: nativeDb, schema });
408
409
  // Resolve the migrations folder for this scope.
409
410
  const migrationsFolder = resolveCorePackageMigrationsFolder(migrationsSetName(scope));
410
- // Reconcile the migration journal (handles WAL/journal divergence across
411
- // SQLite version upgrades — same pattern as sqlite.ts / memory-sqlite.ts).
412
- // T11829: pass the OTHER lineages that share this scope's consolidated cleo.db
413
- // journal so their rows are not deleted as cross-lineage orphans (the confirmed
414
- // OOM root cause: each lineage previously deleted the others' rows so the shared
415
- // journal never converged).
416
- reconcileJournal(nativeDb, migrationsFolder, existenceTable(scope), `dual-scope-db[${scope}]`, resolveConsolidatedJournalSiblings(migrationsSetName(scope)));
417
- // Run any pending migrations.
418
- migrateWithRetry(db, migrationsFolder, nativeDb, existenceTable(scope), `dual-scope-db[${scope}]`);
419
- log.debug({ scope, dbPath }, 'dual-scope cleo.db ready');
420
- const handle = {
421
- db,
422
- scope,
423
- dbPath,
424
- close() {
425
- _cache.delete(key);
426
- try {
427
- nativeDb.close();
428
- }
429
- catch {
430
- // Idempotent — ignore double-close errors.
431
- }
432
- },
433
- };
434
- // Update the cache entry to mark init complete.
435
- const entry = _cache.get(key);
436
- if (entry) {
437
- entry.initPromise = null;
438
- entry.handle = handle;
439
- }
440
- // ── Exodus-on-open (E6 · T11553) ────────────────────────────────────────
411
+ // ── Seam 0 — cold-open critical section (THE T5158 HEAL · T11627 ST-3) ────
412
+ // Lease the migrate/reconcile cold-open write-txn against the just-opened
413
+ // native handle so EXACTLY ONE process per scope runs it while concurrent
414
+ // cold-open peers BEGIN IMMEDIATE-queue and then observe a ready DB. This heals
415
+ // the T5158 `E_NOT_INITIALIZED` / `E_INTERNAL` corruption (concurrent cold-open
416
+ // migrate write-txns racing the consolidated cleo.db's single shared
417
+ // `__drizzle_migrations` journal) WITH the supervisor daemon disabled (`local`
418
+ // mode default). `off` mode is a pass-through → byte-identical to pre-lease
419
+ // behaviour (busy_timeout=30000 still serializes the write-txn).
420
+ // `withColdOpenLease` also records the scope in the Seam-1 active-scope registry
421
+ // so chokepoint write primitives lease correctly.
422
+ //
423
+ // The lease wraps ONLY reconcileJournal + migrateWithRetry — the precise write-
424
+ // txn that races in T5158. The exodus-on-open hook runs AFTER the lease releases
425
+ // (below): it owns its OWN single-flight lock + dedicated migrate connections,
426
+ // and `runExodusMigrate` CLOSES + re-opens the scope handles, which would
427
+ // close the very handle the lease row lives on mid-section. Releasing first is
428
+ // both correct (exodus is already serialized) and necessary (no close-under-lease).
429
+ const handle = await withColdOpenLease(scope, nativeDb, async () => {
430
+ // Reconcile the migration journal (handles WAL/journal divergence across
431
+ // SQLite version upgrades — same pattern as sqlite.ts / memory-sqlite.ts).
432
+ // T11829: pass the OTHER lineages that share this scope's consolidated cleo.db
433
+ // journal so their rows are not deleted as cross-lineage orphans (the confirmed
434
+ // OOM root cause: each lineage previously deleted the others' rows so the shared
435
+ // journal never converged).
436
+ reconcileJournal(nativeDb, migrationsFolder, existenceTable(scope), `dual-scope-db[${scope}]`, resolveConsolidatedJournalSiblings(migrationsSetName(scope)));
437
+ // Run any pending migrations.
438
+ migrateWithRetry(db, migrationsFolder, nativeDb, existenceTable(scope), `dual-scope-db[${scope}]`);
439
+ log.debug({ scope, dbPath }, 'dual-scope cleo.db ready');
440
+ const built = {
441
+ db,
442
+ scope,
443
+ dbPath,
444
+ close() {
445
+ _cache.delete(key);
446
+ try {
447
+ nativeDb.close();
448
+ }
449
+ catch {
450
+ // Idempotent — ignore double-close errors.
451
+ }
452
+ },
453
+ };
454
+ // Update the cache entry to mark init complete.
455
+ const entry = _cache.get(key);
456
+ if (entry) {
457
+ entry.initPromise = null;
458
+ entry.handle = built;
459
+ }
460
+ return built;
461
+ },
462
+ // Record this open's resolved dbPath in the Seam-1 registry so the chokepoint
463
+ // write primitives lease their row in THIS file — not the cwd-default — when
464
+ // more than one project's cleo.db is open in this process (T11627 Finding 1).
465
+ { dbPath });
466
+ // ── Exodus-on-open (E6 · T11553) — runs AFTER the cold-open lease releases ──
441
467
  // Data-continuity safety net: on a canonical open where the consolidated
442
468
  // cleo.db is empty but the legacy fleet (tasks.db/brain.db/…) has rows for
443
469
  // THIS scope, lazily auto-migrate ONCE — gated by a parity verify, serialised
@@ -449,9 +475,9 @@ exodusCwd, options) {
449
475
  // when it finishes, so after a `migrated`/`aborted` outcome the `handle`
450
476
  // built above (and its `nativeDb`) is CLOSED. We therefore re-open this scope
451
477
  // fresh (cache-miss, NOT armed — no `exodusCwd`) and return the new live
452
- // handle. The re-open is a no-op trigger because the DB is now populated
453
- // (migrated) or empty-with-legacy-already-attempted (aborted leaves it empty
454
- // but the un-armed re-open never fires the hook).
478
+ // handle. That re-open flows through the cold-open lease again on a FRESH handle
479
+ // (cheap claim/release — the DB is now migrated), with no contention against the
480
+ // already-released outer lease.
455
481
  //
456
482
  // Armed ONLY when `exodusCwd` was threaded through the canonical
457
483
  // `openDualScopeDb` AND `dbPath` is the canonical path for that scope+cwd —
@@ -612,8 +638,17 @@ db, table, row,
612
638
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
613
639
  _keyColumn) {
614
640
  assertNoRecordedExodusAbort();
615
- const result = await db.insert(table).values(row).onConflictDoNothing().returning();
616
- return result.length;
641
+ // Seam 1 (T11627 ST-3): gate the chokepoint write through the writer lease so
642
+ // it serializes with the leased cold-open (Seam 0) and every other chokepoint
643
+ // write in the process. The scope AND dbPath come from the process-local
644
+ // active-scope registry recorded at cold-open ({@link activeScope} /
645
+ // {@link activeScopeDbPath}) — no signature change. Pinning the dbPath keeps the
646
+ // lease row in the SAME file this write targets when multiple projects are open
647
+ // (T11627 Finding 1). `off` mode is a pass-through (busy_timeout serializes).
648
+ return withWriterLease(activeScope(), 'tasks', async () => {
649
+ const result = await db.insert(table).values(row).onConflictDoNothing().returning();
650
+ return result.length;
651
+ }, { dbPath: activeScopeDbPath() });
617
652
  }
618
653
  /**
619
654
  * Upsert `row` into `table`, updating all non-key columns when a row with
@@ -655,16 +690,21 @@ _keyColumn,
655
690
  // biome-ignore lint/suspicious/noExplicitAny: column reference type varies by table
656
691
  conflictTarget, set) {
657
692
  assertNoRecordedExodusAbort();
658
- const updateSet = set ?? row;
659
- const result = await db
660
- .insert(table)
661
- .values(row)
662
- .onConflictDoUpdate({
663
- target: conflictTarget,
664
- // biome-ignore lint/suspicious/noExplicitAny: updateSet shape varies by table; type-safe at call sites
665
- set: updateSet,
666
- })
667
- .returning();
668
- return result.length;
693
+ // Seam 1 (T11627 ST-3): gate the chokepoint upsert through the writer lease —
694
+ // same active-scope-registry path as insertIdempotent (scope + pinned dbPath),
695
+ // no signature change.
696
+ return withWriterLease(activeScope(), 'tasks', async () => {
697
+ const updateSet = set ?? row;
698
+ const result = await db
699
+ .insert(table)
700
+ .values(row)
701
+ .onConflictDoUpdate({
702
+ target: conflictTarget,
703
+ // biome-ignore lint/suspicious/noExplicitAny: updateSet shape varies by table; type-safe at call sites
704
+ set: updateSet,
705
+ })
706
+ .returning();
707
+ return result.length;
708
+ }, { dbPath: activeScopeDbPath() });
669
709
  }
670
710
  //# sourceMappingURL=dual-scope-db.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dual-scope-db.js","sourceRoot":"","sources":["../../src/store/dual-scope-db.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dual-scope-db.js","sourceRoot":"","sources":["../../src/store/dual-scope-db.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,151 @@
1
+ /**
2
+ * Store-layer accessor for the Pi `SessionStorage` tree-persistence tables
3
+ * (`pi_session_entries` + `pi_session_leaf`) — T11761 · S3 · T11899.
4
+ *
5
+ * This module is the ONLY place that touches the native `cleo.db` handle for Pi
6
+ * session persistence. It lives INSIDE the store chokepoint (`packages/core/src/
7
+ * store/**`), the Gate-3 allowlist, so it may extract the native `DatabaseSync`
8
+ * that {@link openDualScopeDb} already holds (via drizzle's `$client`) and run
9
+ * prepared statements over it — exactly the established `conduit-sqlite.ts`
10
+ * pattern. It NEVER calls `new DatabaseSync(` itself.
11
+ *
12
+ * The durable adapter (`packages/core/src/llm/pi/pi-session-storage.ts`) sits
13
+ * OUTSIDE the chokepoint, so it must NOT open a raw handle; it calls these
14
+ * accessors and wraps every WRITE in `withWriterLease('project', 'bulk', …)` so
15
+ * the daemon remains the sole arbitrated writer (ZERO authority for Pi).
16
+ *
17
+ * Physical model (see the `t11899-pi-session-tree` migration):
18
+ * - `pi_session_entries(session_id, entry_id, parent_id, type, payload_json,
19
+ * seq, ts)` — one row per `SessionTreeEntry`; PRIMARY KEY `(session_id,
20
+ * entry_id)`. `seq` is a per-session monotonic insertion ordinal that
21
+ * preserves append order (entry ids are random 8-char tokens, so insertion
22
+ * order is NOT recoverable from the id alone).
23
+ * - `pi_session_leaf(session_id, leaf_id, created_at, updated_at)` — one row per
24
+ * session recording the active tree leaf (and the session's `createdAt`
25
+ * metadata anchor).
26
+ *
27
+ * @module
28
+ * @task T11899
29
+ * @task T11761
30
+ * @epic T10403
31
+ */
32
+ /** Physical name of the Pi session-entry tree table. */
33
+ export declare const PI_SESSION_ENTRIES_TABLE: "pi_session_entries";
34
+ /** Physical name of the Pi session leaf-pointer / metadata table. */
35
+ export declare const PI_SESSION_LEAF_TABLE: "pi_session_leaf";
36
+ /**
37
+ * A persisted Pi session-tree entry row, decoded from `pi_session_entries`.
38
+ *
39
+ * `payloadJson` is the JSON-serialized residue of the `SessionTreeEntry` minus
40
+ * the columnized fields (`id` / `parentId` / `type` / `timestamp`) — the adapter
41
+ * re-hydrates the full Pi entry by merging the columns back over it.
42
+ */
43
+ export interface PiSessionEntryRow {
44
+ /** Owning session id (daemon-stamped; never minted by Pi). */
45
+ readonly sessionId: string;
46
+ /** The Pi entry id (`SessionTreeEntry.id`). */
47
+ readonly entryId: string;
48
+ /** Parent entry id, or `null` at a tree root. */
49
+ readonly parentId: string | null;
50
+ /** The `SessionTreeEntry.type` discriminator (`message` / `leaf` / `label` / …). */
51
+ readonly type: string;
52
+ /** JSON residue of the entry's type-specific fields. */
53
+ readonly payloadJson: string;
54
+ /** Per-session monotonic insertion ordinal (preserves append order). */
55
+ readonly seq: number;
56
+ /** The Pi entry timestamp (`SessionTreeEntry.timestamp`, ISO-8601). */
57
+ readonly ts: string;
58
+ }
59
+ /** The leaf-pointer + metadata row for one session. */
60
+ export interface PiSessionLeafRow {
61
+ /** Owning session id. */
62
+ readonly sessionId: string;
63
+ /** The active tree leaf entry id, or `null` (no leaf yet / reset to root). */
64
+ readonly leafId: string | null;
65
+ /** Session creation timestamp (ISO-8601) — the metadata `createdAt` anchor. */
66
+ readonly createdAt: string;
67
+ /** Last leaf-update timestamp (ISO-8601). */
68
+ readonly updatedAt: string;
69
+ }
70
+ /** Narrow shape of the native handle methods this accessor uses. */
71
+ type NativeRunResult = {
72
+ changes: number | bigint;
73
+ lastInsertRowid: number | bigint;
74
+ };
75
+ interface NativeStatement {
76
+ run(...params: ReadonlyArray<string | number | null>): NativeRunResult;
77
+ get(...params: ReadonlyArray<string | number | null>): Record<string, unknown> | undefined;
78
+ all(...params: ReadonlyArray<string | number | null>): Array<Record<string, unknown>>;
79
+ }
80
+ interface NativeHandle {
81
+ prepare(sql: string): NativeStatement;
82
+ }
83
+ /**
84
+ * Extract the native `DatabaseSync` handle for the PROJECT-scope `cleo.db`.
85
+ *
86
+ * Routes through {@link openDualScopeDb} (the dual-scope chokepoint) — which
87
+ * applies the pragma SSoT, runs the consolidated migrations (creating the
88
+ * `pi_session_*` tables), and manages the singleton cache — then extracts the
89
+ * native handle drizzle holds on `$client`. NEVER opens a raw connection (Gate
90
+ * 3): it reuses the handle the chokepoint already owns.
91
+ *
92
+ * @param cwd - Working directory for project resolution (defaults to `cwd`).
93
+ * @returns The live native handle.
94
+ * @throws When the chokepoint returns a handle without `$client`.
95
+ */
96
+ export declare function getPiSessionNativeDb(cwd?: string): Promise<NativeHandle>;
97
+ /**
98
+ * Return the leaf/metadata row for a session, or `null` when the session has no
99
+ * row yet (never written to).
100
+ *
101
+ * @param native - The native project `cleo.db` handle.
102
+ * @param sessionId - The session id.
103
+ * @returns The leaf row or `null`.
104
+ */
105
+ export declare function readPiSessionLeaf(native: NativeHandle, sessionId: string): PiSessionLeafRow | null;
106
+ /**
107
+ * Return all entry rows for a session in stable append order (`seq ASC`).
108
+ *
109
+ * @param native - The native project `cleo.db` handle.
110
+ * @param sessionId - The session id.
111
+ * @returns The ordered entry rows (empty when the session has none).
112
+ */
113
+ export declare function readPiSessionEntries(native: NativeHandle, sessionId: string): PiSessionEntryRow[];
114
+ /**
115
+ * Return a single entry row by id, or `null` when absent.
116
+ *
117
+ * @param native - The native project `cleo.db` handle.
118
+ * @param sessionId - The owning session id.
119
+ * @param entryId - The entry id.
120
+ * @returns The entry row or `null`.
121
+ */
122
+ export declare function readPiSessionEntry(native: NativeHandle, sessionId: string, entryId: string): PiSessionEntryRow | null;
123
+ /**
124
+ * Insert (or no-op on conflict) one session-tree entry.
125
+ *
126
+ * The caller MUST already hold the PROJECT/`bulk` writer lease — this accessor
127
+ * performs the raw write and does NOT acquire the lease itself (separation of
128
+ * concerns: the lease boundary lives in `pi-session-storage.ts`, outside the
129
+ * chokepoint). The `seq` is computed as `MAX(seq)+1` for the session under the
130
+ * same statement batch, so it is monotonic per session.
131
+ *
132
+ * @param native - The native project `cleo.db` handle (leased section).
133
+ * @param row - The entry to persist (without `seq` — assigned here).
134
+ */
135
+ export declare function insertPiSessionEntry(native: NativeHandle, row: Omit<PiSessionEntryRow, 'seq'>): void;
136
+ /**
137
+ * Upsert the leaf pointer + metadata row for a session.
138
+ *
139
+ * On first write the `created_at` anchor is set to `createdAt`; subsequent writes
140
+ * preserve the existing `created_at` (via `ON CONFLICT`) and only advance
141
+ * `leaf_id` + `updated_at`. The caller MUST hold the writer lease.
142
+ *
143
+ * @param native - The native project `cleo.db` handle (leased section).
144
+ * @param sessionId - The session id.
145
+ * @param leafId - The new active leaf id, or `null`.
146
+ * @param createdAt - The session creation anchor (used only on first insert).
147
+ * @param updatedAt - The update timestamp.
148
+ */
149
+ export declare function upsertPiSessionLeaf(native: NativeHandle, sessionId: string, leafId: string | null, createdAt: string, updatedAt: string): void;
150
+ export {};
151
+ //# sourceMappingURL=pi-session-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pi-session-store.d.ts","sourceRoot":"","sources":["../../src/store/pi-session-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,166 @@
1
+ /**
2
+ * Store-layer accessor for the Pi `SessionStorage` tree-persistence tables
3
+ * (`pi_session_entries` + `pi_session_leaf`) — T11761 · S3 · T11899.
4
+ *
5
+ * This module is the ONLY place that touches the native `cleo.db` handle for Pi
6
+ * session persistence. It lives INSIDE the store chokepoint (`packages/core/src/
7
+ * store/**`), the Gate-3 allowlist, so it may extract the native `DatabaseSync`
8
+ * that {@link openDualScopeDb} already holds (via drizzle's `$client`) and run
9
+ * prepared statements over it — exactly the established `conduit-sqlite.ts`
10
+ * pattern. It NEVER calls `new DatabaseSync(` itself.
11
+ *
12
+ * The durable adapter (`packages/core/src/llm/pi/pi-session-storage.ts`) sits
13
+ * OUTSIDE the chokepoint, so it must NOT open a raw handle; it calls these
14
+ * accessors and wraps every WRITE in `withWriterLease('project', 'bulk', …)` so
15
+ * the daemon remains the sole arbitrated writer (ZERO authority for Pi).
16
+ *
17
+ * Physical model (see the `t11899-pi-session-tree` migration):
18
+ * - `pi_session_entries(session_id, entry_id, parent_id, type, payload_json,
19
+ * seq, ts)` — one row per `SessionTreeEntry`; PRIMARY KEY `(session_id,
20
+ * entry_id)`. `seq` is a per-session monotonic insertion ordinal that
21
+ * preserves append order (entry ids are random 8-char tokens, so insertion
22
+ * order is NOT recoverable from the id alone).
23
+ * - `pi_session_leaf(session_id, leaf_id, created_at, updated_at)` — one row per
24
+ * session recording the active tree leaf (and the session's `createdAt`
25
+ * metadata anchor).
26
+ *
27
+ * @module
28
+ * @task T11899
29
+ * @task T11761
30
+ * @epic T10403
31
+ */
32
+ import { openDualScopeDb } from './dual-scope-db.js';
33
+ /** Physical name of the Pi session-entry tree table. */
34
+ export const PI_SESSION_ENTRIES_TABLE = 'pi_session_entries';
35
+ /** Physical name of the Pi session leaf-pointer / metadata table. */
36
+ export const PI_SESSION_LEAF_TABLE = 'pi_session_leaf';
37
+ /**
38
+ * Extract the native `DatabaseSync` handle for the PROJECT-scope `cleo.db`.
39
+ *
40
+ * Routes through {@link openDualScopeDb} (the dual-scope chokepoint) — which
41
+ * applies the pragma SSoT, runs the consolidated migrations (creating the
42
+ * `pi_session_*` tables), and manages the singleton cache — then extracts the
43
+ * native handle drizzle holds on `$client`. NEVER opens a raw connection (Gate
44
+ * 3): it reuses the handle the chokepoint already owns.
45
+ *
46
+ * @param cwd - Working directory for project resolution (defaults to `cwd`).
47
+ * @returns The live native handle.
48
+ * @throws When the chokepoint returns a handle without `$client`.
49
+ */
50
+ export async function getPiSessionNativeDb(cwd) {
51
+ const handle = await openDualScopeDb('project', cwd);
52
+ const native = handle.db.$client;
53
+ if (!native) {
54
+ throw new Error('T11899: openDualScopeDb returned a project handle without $client — ' +
55
+ 'cannot extract DatabaseSync for Pi session persistence.');
56
+ }
57
+ // The node:sqlite surface is wider than NativeStatement; narrow to what we use.
58
+ return native;
59
+ }
60
+ // ── Reads (no lease — readers operate on the shared handle) ────────────────────
61
+ /**
62
+ * Return the leaf/metadata row for a session, or `null` when the session has no
63
+ * row yet (never written to).
64
+ *
65
+ * @param native - The native project `cleo.db` handle.
66
+ * @param sessionId - The session id.
67
+ * @returns The leaf row or `null`.
68
+ */
69
+ export function readPiSessionLeaf(native, sessionId) {
70
+ const row = native
71
+ .prepare(`SELECT session_id, leaf_id, created_at, updated_at FROM ${PI_SESSION_LEAF_TABLE} WHERE session_id = ?`)
72
+ .get(sessionId);
73
+ if (row === undefined)
74
+ return null;
75
+ return {
76
+ sessionId: String(row.session_id),
77
+ leafId: row.leaf_id === null || row.leaf_id === undefined ? null : String(row.leaf_id),
78
+ createdAt: String(row.created_at),
79
+ updatedAt: String(row.updated_at),
80
+ };
81
+ }
82
+ /**
83
+ * Return all entry rows for a session in stable append order (`seq ASC`).
84
+ *
85
+ * @param native - The native project `cleo.db` handle.
86
+ * @param sessionId - The session id.
87
+ * @returns The ordered entry rows (empty when the session has none).
88
+ */
89
+ export function readPiSessionEntries(native, sessionId) {
90
+ const rows = native
91
+ .prepare(`SELECT session_id, entry_id, parent_id, type, payload_json, seq, ts ` +
92
+ `FROM ${PI_SESSION_ENTRIES_TABLE} WHERE session_id = ? ORDER BY seq ASC`)
93
+ .all(sessionId);
94
+ return rows.map(decodeEntryRow);
95
+ }
96
+ /**
97
+ * Return a single entry row by id, or `null` when absent.
98
+ *
99
+ * @param native - The native project `cleo.db` handle.
100
+ * @param sessionId - The owning session id.
101
+ * @param entryId - The entry id.
102
+ * @returns The entry row or `null`.
103
+ */
104
+ export function readPiSessionEntry(native, sessionId, entryId) {
105
+ const row = native
106
+ .prepare(`SELECT session_id, entry_id, parent_id, type, payload_json, seq, ts ` +
107
+ `FROM ${PI_SESSION_ENTRIES_TABLE} WHERE session_id = ? AND entry_id = ?`)
108
+ .get(sessionId, entryId);
109
+ return row === undefined ? null : decodeEntryRow(row);
110
+ }
111
+ /** Decode a raw SQLite row into a typed {@link PiSessionEntryRow}. */
112
+ function decodeEntryRow(row) {
113
+ return {
114
+ sessionId: String(row.session_id),
115
+ entryId: String(row.entry_id),
116
+ parentId: row.parent_id === null || row.parent_id === undefined ? null : String(row.parent_id),
117
+ type: String(row.type),
118
+ payloadJson: String(row.payload_json),
119
+ seq: Number(row.seq),
120
+ ts: String(row.ts),
121
+ };
122
+ }
123
+ // ── Writes (caller MUST hold the writer lease — see pi-session-storage.ts) ─────
124
+ /**
125
+ * Insert (or no-op on conflict) one session-tree entry.
126
+ *
127
+ * The caller MUST already hold the PROJECT/`bulk` writer lease — this accessor
128
+ * performs the raw write and does NOT acquire the lease itself (separation of
129
+ * concerns: the lease boundary lives in `pi-session-storage.ts`, outside the
130
+ * chokepoint). The `seq` is computed as `MAX(seq)+1` for the session under the
131
+ * same statement batch, so it is monotonic per session.
132
+ *
133
+ * @param native - The native project `cleo.db` handle (leased section).
134
+ * @param row - The entry to persist (without `seq` — assigned here).
135
+ */
136
+ export function insertPiSessionEntry(native, row) {
137
+ const next = native
138
+ .prepare(`SELECT COALESCE(MAX(seq), -1) + 1 AS seq FROM ${PI_SESSION_ENTRIES_TABLE} WHERE session_id = ?`)
139
+ .get(row.sessionId);
140
+ const seq = next === undefined ? 0 : Number(next.seq);
141
+ native
142
+ .prepare(`INSERT OR IGNORE INTO ${PI_SESSION_ENTRIES_TABLE} ` +
143
+ `(session_id, entry_id, parent_id, type, payload_json, seq, ts) VALUES (?, ?, ?, ?, ?, ?, ?)`)
144
+ .run(row.sessionId, row.entryId, row.parentId, row.type, row.payloadJson, seq, row.ts);
145
+ }
146
+ /**
147
+ * Upsert the leaf pointer + metadata row for a session.
148
+ *
149
+ * On first write the `created_at` anchor is set to `createdAt`; subsequent writes
150
+ * preserve the existing `created_at` (via `ON CONFLICT`) and only advance
151
+ * `leaf_id` + `updated_at`. The caller MUST hold the writer lease.
152
+ *
153
+ * @param native - The native project `cleo.db` handle (leased section).
154
+ * @param sessionId - The session id.
155
+ * @param leafId - The new active leaf id, or `null`.
156
+ * @param createdAt - The session creation anchor (used only on first insert).
157
+ * @param updatedAt - The update timestamp.
158
+ */
159
+ export function upsertPiSessionLeaf(native, sessionId, leafId, createdAt, updatedAt) {
160
+ native
161
+ .prepare(`INSERT INTO ${PI_SESSION_LEAF_TABLE} (session_id, leaf_id, created_at, updated_at) ` +
162
+ `VALUES (?, ?, ?, ?) ` +
163
+ `ON CONFLICT(session_id) DO UPDATE SET leaf_id = excluded.leaf_id, updated_at = excluded.updated_at`)
164
+ .run(sessionId, leafId, createdAt, updatedAt);
165
+ }
166
+ //# sourceMappingURL=pi-session-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pi-session-store.js","sourceRoot":"","sources":["../../src/store/pi-session-store.ts"],"names":[],"mappings":"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"}
@@ -93,6 +93,7 @@ export declare class SafetyDataAccessor implements DataAccessor {
93
93
  shiftPositions(parentId: string | null, fromPosition: number, delta: number): Promise<void>;
94
94
  transaction<T>(fn: (tx: TransactionAccessor) => Promise<T>): Promise<T>;
95
95
  getActiveSession(): Promise<Session | null>;
96
+ resolveCurrentSession(): Promise<Session | null>;
96
97
  upsertSingleSession(session: import('@cleocode/contracts').Session): Promise<void>;
97
98
  removeSingleSession(sessionId: string): Promise<void>;
98
99
  listAgentInstances(filters?: {
@@ -1 +1 @@
1
- {"version":3,"file":"safety-data-accessor.d.ts","sourceRoot":"","sources":["../../src/store/safety-data-accessor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"safety-data-accessor.d.ts","sourceRoot":"","sources":["../../src/store/safety-data-accessor.ts"],"names":[],"mappings":"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"}
@@ -200,6 +200,11 @@ export class SafetyDataAccessor {
200
200
  async getActiveSession() {
201
201
  return this.inner.getActiveSession();
202
202
  }
203
+ async resolveCurrentSession() {
204
+ // Interface pass-through (T11640) — the umbrella safety wrapper forwards
205
+ // identity resolution to the inner accessor unchanged.
206
+ return this.inner.resolveCurrentSession();
207
+ }
203
208
  async upsertSingleSession(session) {
204
209
  return this.inner.upsertSingleSession(session);
205
210
  }