@cleocode/core 2026.6.11 → 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 (414) 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 +2309 -1262
  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/release/plan.d.ts +4 -6
  155. package/dist/release/plan.d.ts.map +1 -1
  156. package/dist/release/plan.js +10 -23
  157. package/dist/release/plan.js.map +1 -1
  158. package/dist/release/reconcile.d.ts +0 -2
  159. package/dist/release/reconcile.d.ts.map +1 -1
  160. package/dist/release/reconcile.js +43 -50
  161. package/dist/release/reconcile.js.map +1 -1
  162. package/dist/release/release-manifest.d.ts.map +1 -1
  163. package/dist/release/release-manifest.js +4 -1
  164. package/dist/release/release-manifest.js.map +1 -1
  165. package/dist/release/verify-provenance.js +20 -20
  166. package/dist/release/verify-provenance.js.map +1 -1
  167. package/dist/routing/capability-matrix.d.ts.map +1 -1
  168. package/dist/routing/capability-matrix.js +0 -57
  169. package/dist/routing/capability-matrix.js.map +1 -1
  170. package/dist/selfimprove/budget.d.ts +206 -0
  171. package/dist/selfimprove/budget.d.ts.map +1 -0
  172. package/dist/selfimprove/budget.js +203 -0
  173. package/dist/selfimprove/budget.js.map +1 -0
  174. package/dist/selfimprove/dhq-adapter.d.ts +105 -0
  175. package/dist/selfimprove/dhq-adapter.d.ts.map +1 -0
  176. package/dist/selfimprove/dhq-adapter.js +95 -0
  177. package/dist/selfimprove/dhq-adapter.js.map +1 -0
  178. package/dist/selfimprove/draft-pr.d.ts +129 -0
  179. package/dist/selfimprove/draft-pr.d.ts.map +1 -0
  180. package/dist/selfimprove/draft-pr.js +158 -0
  181. package/dist/selfimprove/draft-pr.js.map +1 -0
  182. package/dist/selfimprove/envelope-diff.d.ts +162 -0
  183. package/dist/selfimprove/envelope-diff.d.ts.map +1 -0
  184. package/dist/selfimprove/envelope-diff.js +321 -0
  185. package/dist/selfimprove/envelope-diff.js.map +1 -0
  186. package/dist/selfimprove/replay.d.ts +121 -0
  187. package/dist/selfimprove/replay.d.ts.map +1 -0
  188. package/dist/selfimprove/replay.js +109 -0
  189. package/dist/selfimprove/replay.js.map +1 -0
  190. package/dist/selfimprove/run-loop.d.ts +148 -0
  191. package/dist/selfimprove/run-loop.d.ts.map +1 -0
  192. package/dist/selfimprove/run-loop.js +240 -0
  193. package/dist/selfimprove/run-loop.js.map +1 -0
  194. package/dist/selfimprove/scenario.d.ts +145 -0
  195. package/dist/selfimprove/scenario.d.ts.map +1 -0
  196. package/dist/selfimprove/scenario.js +243 -0
  197. package/dist/selfimprove/scenario.js.map +1 -0
  198. package/dist/sentient/daemon-entry.js +5 -0
  199. package/dist/sentient/daemon-entry.js.map +1 -1
  200. package/dist/sentient/daemon.d.ts.map +1 -1
  201. package/dist/sentient/daemon.js +19 -0
  202. package/dist/sentient/daemon.js.map +1 -1
  203. package/dist/sentient/hygiene-scan.d.ts.map +1 -1
  204. package/dist/sentient/hygiene-scan.js +14 -6
  205. package/dist/sentient/hygiene-scan.js.map +1 -1
  206. package/dist/sessions/briefing.d.ts.map +1 -1
  207. package/dist/sessions/briefing.js +13 -9
  208. package/dist/sessions/briefing.js.map +1 -1
  209. package/dist/sessions/connection-session-handle.d.ts +161 -0
  210. package/dist/sessions/connection-session-handle.d.ts.map +1 -0
  211. package/dist/sessions/connection-session-handle.js +168 -0
  212. package/dist/sessions/connection-session-handle.js.map +1 -0
  213. package/dist/sessions/handoff.d.ts.map +1 -1
  214. package/dist/sessions/handoff.js +9 -0
  215. package/dist/sessions/handoff.js.map +1 -1
  216. package/dist/sessions/index.d.ts +4 -1
  217. package/dist/sessions/index.d.ts.map +1 -1
  218. package/dist/sessions/index.js +31 -1
  219. package/dist/sessions/index.js.map +1 -1
  220. package/dist/sessions/session-id.d.ts +34 -0
  221. package/dist/sessions/session-id.d.ts.map +1 -1
  222. package/dist/sessions/session-id.js +37 -0
  223. package/dist/sessions/session-id.js.map +1 -1
  224. package/dist/sessions/session-manifest-mirror.d.ts +115 -0
  225. package/dist/sessions/session-manifest-mirror.d.ts.map +1 -0
  226. package/dist/sessions/session-manifest-mirror.js +250 -0
  227. package/dist/sessions/session-manifest-mirror.js.map +1 -0
  228. package/dist/sessions/session-switch.d.ts.map +1 -1
  229. package/dist/sessions/session-switch.js +5 -2
  230. package/dist/sessions/session-switch.js.map +1 -1
  231. package/dist/store/converters.d.ts.map +1 -1
  232. package/dist/store/converters.js +2 -0
  233. package/dist/store/converters.js.map +1 -1
  234. package/dist/store/db-helpers.d.ts.map +1 -1
  235. package/dist/store/db-helpers.js +2 -0
  236. package/dist/store/db-helpers.js.map +1 -1
  237. package/dist/store/dual-scope-db.d.ts.map +1 -1
  238. package/dist/store/dual-scope-db.js +87 -47
  239. package/dist/store/dual-scope-db.js.map +1 -1
  240. package/dist/store/pi-session-store.d.ts +151 -0
  241. package/dist/store/pi-session-store.d.ts.map +1 -0
  242. package/dist/store/pi-session-store.js +166 -0
  243. package/dist/store/pi-session-store.js.map +1 -0
  244. package/dist/store/safety-data-accessor.d.ts +1 -0
  245. package/dist/store/safety-data-accessor.d.ts.map +1 -1
  246. package/dist/store/safety-data-accessor.js +5 -0
  247. package/dist/store/safety-data-accessor.js.map +1 -1
  248. package/dist/store/schema/cleo-global/accounts.d.ts +357 -0
  249. package/dist/store/schema/cleo-global/accounts.d.ts.map +1 -0
  250. package/dist/store/schema/cleo-global/accounts.js +136 -0
  251. package/dist/store/schema/cleo-global/accounts.js.map +1 -0
  252. package/dist/store/schema/cleo-global/index.d.ts +2 -0
  253. package/dist/store/schema/cleo-global/index.d.ts.map +1 -1
  254. package/dist/store/schema/cleo-global/index.js +2 -0
  255. package/dist/store/schema/cleo-global/index.js.map +1 -1
  256. package/dist/store/schema/cleo-global/session-manifest.d.ts +217 -0
  257. package/dist/store/schema/cleo-global/session-manifest.d.ts.map +1 -0
  258. package/dist/store/schema/cleo-global/session-manifest.js +99 -0
  259. package/dist/store/schema/cleo-global/session-manifest.js.map +1 -0
  260. package/dist/store/schema/cleo-project/tasks-core.d.ts +16 -0
  261. package/dist/store/schema/cleo-project/tasks-core.d.ts.map +1 -1
  262. package/dist/store/schema/cleo-project/tasks-core.js +14 -0
  263. package/dist/store/schema/cleo-project/tasks-core.js.map +1 -1
  264. package/dist/store/schema/tasks.d.ts +16 -0
  265. package/dist/store/schema/tasks.d.ts.map +1 -1
  266. package/dist/store/schema/tasks.js +10 -0
  267. package/dist/store/schema/tasks.js.map +1 -1
  268. package/dist/store/selfimprove-dhq-schema.d.ts +284 -0
  269. package/dist/store/selfimprove-dhq-schema.d.ts.map +1 -0
  270. package/dist/store/selfimprove-dhq-schema.js +128 -0
  271. package/dist/store/selfimprove-dhq-schema.js.map +1 -0
  272. package/dist/store/selfimprove-dhq-store.d.ts +175 -0
  273. package/dist/store/selfimprove-dhq-store.d.ts.map +1 -0
  274. package/dist/store/selfimprove-dhq-store.js +182 -0
  275. package/dist/store/selfimprove-dhq-store.js.map +1 -0
  276. package/dist/store/session-store.d.ts +52 -13
  277. package/dist/store/session-store.d.ts.map +1 -1
  278. package/dist/store/session-store.js +71 -13
  279. package/dist/store/session-store.js.map +1 -1
  280. package/dist/store/sqlite-data-accessor.d.ts.map +1 -1
  281. package/dist/store/sqlite-data-accessor.js +7 -0
  282. package/dist/store/sqlite-data-accessor.js.map +1 -1
  283. package/dist/store/tasks-schema.d.ts +4 -0
  284. package/dist/store/tasks-schema.d.ts.map +1 -1
  285. package/dist/store/tasks-schema.js +14 -0
  286. package/dist/store/tasks-schema.js.map +1 -1
  287. package/dist/store/umbrella-data-accessor.d.ts +1 -0
  288. package/dist/store/umbrella-data-accessor.d.ts.map +1 -1
  289. package/dist/store/umbrella-data-accessor.js +5 -0
  290. package/dist/store/umbrella-data-accessor.js.map +1 -1
  291. package/dist/store/validation-schemas.d.ts +94 -62
  292. package/dist/store/validation-schemas.d.ts.map +1 -1
  293. package/dist/store/writer-lease-schema.d.ts +392 -0
  294. package/dist/store/writer-lease-schema.d.ts.map +1 -0
  295. package/dist/store/writer-lease-schema.js +142 -0
  296. package/dist/store/writer-lease-schema.js.map +1 -0
  297. package/dist/store/writer-lease.d.ts +368 -0
  298. package/dist/store/writer-lease.d.ts.map +1 -0
  299. package/dist/store/writer-lease.js +1002 -0
  300. package/dist/store/writer-lease.js.map +1 -0
  301. package/dist/task-tools/describe-schema.d.ts +4 -2
  302. package/dist/task-tools/describe-schema.d.ts.map +1 -1
  303. package/dist/task-tools/describe-schema.js +9 -3
  304. package/dist/task-tools/describe-schema.js.map +1 -1
  305. package/dist/tasks/backfill-child-projections.d.ts.map +1 -1
  306. package/dist/tasks/backfill-child-projections.js +14 -9
  307. package/dist/tasks/backfill-child-projections.js.map +1 -1
  308. package/dist/tasks/complete.d.ts.map +1 -1
  309. package/dist/tasks/complete.js +7 -10
  310. package/dist/tasks/complete.js.map +1 -1
  311. package/dist/tasks/duplicate-detector.d.ts.map +1 -1
  312. package/dist/tasks/duplicate-detector.js +14 -7
  313. package/dist/tasks/duplicate-detector.js.map +1 -1
  314. package/dist/telemetry/index.d.ts.map +1 -1
  315. package/dist/telemetry/index.js +10 -4
  316. package/dist/telemetry/index.js.map +1 -1
  317. package/dist/tools/agent-registry.d.ts +250 -0
  318. package/dist/tools/agent-registry.d.ts.map +1 -0
  319. package/dist/tools/agent-registry.js +292 -0
  320. package/dist/tools/agent-registry.js.map +1 -0
  321. package/dist/tools/agent-tool-families.d.ts +107 -0
  322. package/dist/tools/agent-tool-families.d.ts.map +1 -0
  323. package/dist/tools/agent-tool-families.js +527 -0
  324. package/dist/tools/agent-tool-families.js.map +1 -0
  325. package/dist/tools/browser-driver.d.ts +183 -0
  326. package/dist/tools/browser-driver.d.ts.map +1 -0
  327. package/dist/tools/browser-driver.js +242 -0
  328. package/dist/tools/browser-driver.js.map +1 -0
  329. package/dist/tools/builtin-agent-tools.d.ts +36 -0
  330. package/dist/tools/builtin-agent-tools.d.ts.map +1 -0
  331. package/dist/tools/builtin-agent-tools.js +150 -0
  332. package/dist/tools/builtin-agent-tools.js.map +1 -0
  333. package/dist/tools/dispatch.d.ts +370 -0
  334. package/dist/tools/dispatch.d.ts.map +1 -0
  335. package/dist/tools/dispatch.js +505 -0
  336. package/dist/tools/dispatch.js.map +1 -0
  337. package/dist/tools/env-scrub.d.ts +93 -0
  338. package/dist/tools/env-scrub.d.ts.map +1 -0
  339. package/dist/tools/env-scrub.js +176 -0
  340. package/dist/tools/env-scrub.js.map +1 -0
  341. package/dist/tools/fs.d.ts +30 -0
  342. package/dist/tools/fs.d.ts.map +1 -1
  343. package/dist/tools/fs.js +55 -2
  344. package/dist/tools/fs.js.map +1 -1
  345. package/dist/tools/guard.d.ts +15 -0
  346. package/dist/tools/guard.d.ts.map +1 -1
  347. package/dist/tools/guard.js +49 -12
  348. package/dist/tools/guard.js.map +1 -1
  349. package/dist/tools/index.d.ts +10 -0
  350. package/dist/tools/index.d.ts.map +1 -1
  351. package/dist/tools/index.js +37 -0
  352. package/dist/tools/index.js.map +1 -1
  353. package/dist/tools/pty.d.ts +45 -0
  354. package/dist/tools/pty.d.ts.map +1 -0
  355. package/dist/tools/pty.js +166 -0
  356. package/dist/tools/pty.js.map +1 -0
  357. package/dist/tools/schema-gen.d.ts +57 -0
  358. package/dist/tools/schema-gen.d.ts.map +1 -0
  359. package/dist/tools/schema-gen.js +52 -0
  360. package/dist/tools/schema-gen.js.map +1 -0
  361. package/dist/tools/shell.d.ts +12 -0
  362. package/dist/tools/shell.d.ts.map +1 -1
  363. package/dist/tools/shell.js +14 -1
  364. package/dist/tools/shell.js.map +1 -1
  365. package/dist/tools/web-agent-tools.d.ts +72 -0
  366. package/dist/tools/web-agent-tools.d.ts.map +1 -0
  367. package/dist/tools/web-agent-tools.js +393 -0
  368. package/dist/tools/web-agent-tools.js.map +1 -0
  369. package/dist/tools/web-search-backends.d.ts +156 -0
  370. package/dist/tools/web-search-backends.d.ts.map +1 -0
  371. package/dist/tools/web-search-backends.js +290 -0
  372. package/dist/tools/web-search-backends.js.map +1 -0
  373. package/dist/validation/ops.d.ts +1 -15
  374. package/dist/validation/ops.d.ts.map +1 -1
  375. package/dist/validation/ops.js +0 -20
  376. package/dist/validation/ops.js.map +1 -1
  377. package/migrations/drizzle-cleo-global/20260607000000_t11891-writer-leases/migration.sql +55 -0
  378. package/migrations/drizzle-cleo-global/20260607010000_t11639-session-manifest/migration.sql +43 -0
  379. package/migrations/drizzle-cleo-global/20260608000000_t11899-pi-session-tree/migration.sql +52 -0
  380. package/migrations/drizzle-cleo-global/20260608010000_t11709-accounts-credential-pool/migration.sql +72 -0
  381. package/migrations/drizzle-cleo-global/20260608020000_t11889-selfimprove-dhq/migration.sql +64 -0
  382. package/migrations/drizzle-cleo-project/20260606000000_t11884-restore-prefixed-task-triggers/migration.sql +272 -0
  383. package/migrations/drizzle-cleo-project/20260606000000_t11884-restore-prefixed-task-triggers/revert.sql +29 -0
  384. package/migrations/drizzle-cleo-project/20260606000100_t11883-tasks-releases-version-unique/migration.sql +21 -0
  385. package/migrations/drizzle-cleo-project/20260606000100_t11883-tasks-releases-version-unique/revert.sql +4 -0
  386. package/migrations/drizzle-cleo-project/20260607000000_t11891-writer-leases/migration.sql +55 -0
  387. package/migrations/drizzle-cleo-project/20260607010000_t11639-session-parent/migration.sql +22 -0
  388. package/migrations/drizzle-cleo-project/20260608000000_t11899-pi-session-tree/migration.sql +52 -0
  389. package/migrations/drizzle-cleo-project/20260608020000_t11889-selfimprove-dhq/migration.sql +64 -0
  390. package/package.json +15 -13
  391. package/dist/lifecycle/chain-composition.d.ts +0 -30
  392. package/dist/lifecycle/chain-composition.d.ts.map +0 -1
  393. package/dist/lifecycle/chain-composition.js +0 -152
  394. package/dist/lifecycle/chain-composition.js.map +0 -1
  395. package/dist/lifecycle/chain-store.d.ts +0 -70
  396. package/dist/lifecycle/chain-store.d.ts.map +0 -1
  397. package/dist/lifecycle/chain-store.js +0 -246
  398. package/dist/lifecycle/chain-store.js.map +0 -1
  399. package/dist/lifecycle/default-chain.d.ts +0 -39
  400. package/dist/lifecycle/default-chain.d.ts.map +0 -1
  401. package/dist/lifecycle/default-chain.js +0 -176
  402. package/dist/lifecycle/default-chain.js.map +0 -1
  403. package/dist/lifecycle/tessera-engine.d.ts +0 -48
  404. package/dist/lifecycle/tessera-engine.d.ts.map +0 -1
  405. package/dist/lifecycle/tessera-engine.js +0 -249
  406. package/dist/lifecycle/tessera-engine.js.map +0 -1
  407. package/dist/release/provenance-fk.d.ts +0 -74
  408. package/dist/release/provenance-fk.d.ts.map +0 -1
  409. package/dist/release/provenance-fk.js +0 -122
  410. package/dist/release/provenance-fk.js.map +0 -1
  411. package/dist/validation/chain-validation.d.ts +0 -43
  412. package/dist/validation/chain-validation.d.ts.map +0 -1
  413. package/dist/validation/chain-validation.js +0 -146
  414. package/dist/validation/chain-validation.js.map +0 -1
@@ -1,176 +0,0 @@
1
- /**
2
- * Default RCASD-IVTR+C WarpChain Builder
3
- *
4
- * Constructs the canonical 9-stage pipeline chain from existing
5
- * stage definitions, prerequisites, and verification gates.
6
- *
7
- * @task T5399
8
- */
9
- import { PROTOCOL_TYPES } from '../orchestration/protocol-validators.js';
10
- import { VERIFICATION_GATE_ORDER } from '../validation/verification.js';
11
- import { PIPELINE_STAGES, STAGE_DEFINITIONS, STAGE_PREREQUISITES } from './stages.js';
12
- export const DEFAULT_CHAIN_ID = 'rcasd-ivtrc';
13
- /**
14
- * Stage mapping for protocol validation gates in the default chain.
15
- *
16
- * Cross-cutting protocols compose with specific host stages:
17
- * - `contribution` is validated at implementation (author attribution).
18
- * - `artifact-publish` and `provenance` are validated at release
19
- * (see release.md composition: release triggers artifact-publish for the
20
- * distribution phase, which delegates signing/attestation to provenance).
21
- *
22
- * Pipeline stages map 1:1 to their own protocol validators.
23
- *
24
- * @task T5419
25
- * @task T260 — add architecture-decision, validation, testing mappings
26
- */
27
- export const DEFAULT_PROTOCOL_STAGE_MAP = {
28
- research: 'research',
29
- consensus: 'consensus',
30
- 'architecture-decision': 'architecture_decision',
31
- specification: 'specification',
32
- decomposition: 'decomposition',
33
- implementation: 'implementation',
34
- contribution: 'implementation',
35
- validation: 'validation',
36
- testing: 'testing',
37
- release: 'release',
38
- 'artifact-publish': 'release',
39
- provenance: 'release',
40
- };
41
- /**
42
- * Map a pipeline stage name to the WarpStage category union.
43
- *
44
- * @task T5399
45
- */
46
- function stageToCategory(stage) {
47
- const map = {
48
- research: 'research',
49
- consensus: 'consensus',
50
- architecture_decision: 'architecture',
51
- specification: 'specification',
52
- decomposition: 'decomposition',
53
- implementation: 'implementation',
54
- validation: 'validation',
55
- testing: 'testing',
56
- release: 'release',
57
- };
58
- return map[stage];
59
- }
60
- /**
61
- * Map verification gate names to the stages they guard (exit gates).
62
- *
63
- * Each gate is positioned as an exit gate on the stage it validates:
64
- * - implemented -> implementation
65
- * - testsPassed -> testing
66
- * - qaPassed -> validation
67
- * - cleanupDone -> decomposition
68
- * - securityPassed -> validation
69
- * - documented -> specification
70
- *
71
- * @task T5399
72
- */
73
- function gateToStageId(gate) {
74
- const map = {
75
- implemented: 'implementation',
76
- testsPassed: 'testing',
77
- qaPassed: 'validation',
78
- cleanupDone: 'decomposition',
79
- securityPassed: 'validation',
80
- documented: 'specification',
81
- };
82
- return map[gate];
83
- }
84
- /**
85
- * Build the canonical 9-stage RCASD-IVTR+C WarpChain.
86
- *
87
- * - Each PIPELINE_STAGE becomes a WarpStage
88
- * - Each prerequisite from STAGE_PREREQUISITES becomes an entry GateContract
89
- * - Each verification gate from VERIFICATION_GATE_ORDER becomes an exit GateContract
90
- * - All 8 links are linear (stage[i] -> stage[i+1])
91
- *
92
- * @task T5399
93
- */
94
- export function buildDefaultChain() {
95
- const stages = PIPELINE_STAGES.map((stage) => {
96
- const def = STAGE_DEFINITIONS[stage];
97
- return {
98
- id: stage,
99
- name: def.name,
100
- category: stageToCategory(stage),
101
- skippable: def.skippable,
102
- description: def.description,
103
- };
104
- });
105
- const links = [];
106
- for (let i = 0; i < PIPELINE_STAGES.length - 1; i++) {
107
- links.push({
108
- from: PIPELINE_STAGES[i],
109
- to: PIPELINE_STAGES[i + 1],
110
- type: 'linear',
111
- });
112
- }
113
- const gates = [];
114
- let gateCounter = 0;
115
- for (const stage of PIPELINE_STAGES) {
116
- const prereqs = STAGE_PREREQUISITES[stage];
117
- for (const prereq of prereqs) {
118
- gateCounter++;
119
- gates.push({
120
- id: `gate-entry-${gateCounter}`,
121
- name: `${prereq} complete (prereq for ${stage})`,
122
- type: 'entry',
123
- stageId: stage,
124
- position: 'before',
125
- check: { type: 'stage_complete', stageId: prereq },
126
- severity: 'blocking',
127
- canForce: false,
128
- });
129
- }
130
- }
131
- for (const stage of PIPELINE_STAGES) {
132
- for (const protocolType of PROTOCOL_TYPES) {
133
- if (DEFAULT_PROTOCOL_STAGE_MAP[protocolType] !== stage) {
134
- continue;
135
- }
136
- gateCounter++;
137
- gates.push({
138
- id: `gate-protocol-${gateCounter}`,
139
- name: `${protocolType} protocol validation`,
140
- type: 'exit',
141
- stageId: stage,
142
- position: 'after',
143
- check: { type: 'protocol_valid', protocolType },
144
- severity: 'blocking',
145
- canForce: false,
146
- });
147
- }
148
- }
149
- for (const gate of VERIFICATION_GATE_ORDER) {
150
- gateCounter++;
151
- gates.push({
152
- id: `gate-exit-${gateCounter}`,
153
- name: `${gate} verification gate`,
154
- type: 'exit',
155
- stageId: gateToStageId(gate),
156
- position: 'after',
157
- check: { type: 'verification_gate', gateName: gate },
158
- severity: 'blocking',
159
- canForce: true,
160
- });
161
- }
162
- return {
163
- id: DEFAULT_CHAIN_ID,
164
- name: 'RCASD-IVTR+C Default Pipeline',
165
- version: '1.0.0',
166
- description: 'Canonical 9-stage CLEO lifecycle pipeline: Research, Consensus, Architecture, Specification, Decomposition, Implementation, Validation, Testing, Release (+Contribution)',
167
- shape: {
168
- stages,
169
- links,
170
- entryPoint: PIPELINE_STAGES[0],
171
- exitPoints: [PIPELINE_STAGES[PIPELINE_STAGES.length - 1]],
172
- },
173
- gates,
174
- };
175
- }
176
- //# sourceMappingURL=default-chain.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"default-chain.js","sourceRoot":"","sources":["../../src/lifecycle/default-chain.ts"],"names":[],"mappings":"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"}
@@ -1,48 +0,0 @@
1
- /**
2
- * Tessera Instantiation Engine
3
- *
4
- * Provides template management and instantiation for parameterized
5
- * WarpChain workflows. Wraps buildDefaultChain() with template
6
- * variables and manages the template registry.
7
- *
8
- * @task T5409
9
- */
10
- import type { TesseraInstantiationInput, TesseraTemplate, WarpChainInstance } from '@cleocode/contracts';
11
- /**
12
- * Build the default RCASD Tessera template.
13
- *
14
- * Wraps buildDefaultChain() with template variables:
15
- * - epicId (required, type 'epicId')
16
- * - projectName (optional, type 'string', default 'unnamed')
17
- * - skipResearch (optional, type 'boolean', default false)
18
- *
19
- * @task T5409
20
- */
21
- export declare function buildDefaultTessera(): TesseraTemplate;
22
- /**
23
- * Instantiate a Tessera template into a concrete WarpChainInstance.
24
- *
25
- * Steps:
26
- * 1. Validate all required variables are provided
27
- * 2. Apply defaults for missing optional variables
28
- * 3. Construct concrete WarpChain from template
29
- * 4. Validate chain via validateChain()
30
- * 5. Store via createInstance() from chain-store
31
- * 6. Return instance
32
- *
33
- * @task T5409
34
- */
35
- export declare function instantiateTessera(template: TesseraTemplate, input: TesseraInstantiationInput, projectRoot: string): Promise<WarpChainInstance>;
36
- /**
37
- * List all registered Tessera templates.
38
- *
39
- * @task T5409
40
- */
41
- export declare function listTesseraTemplates(): TesseraTemplate[];
42
- /**
43
- * Find a Tessera template by ID.
44
- *
45
- * @task T5409
46
- */
47
- export declare function showTessera(id: string): TesseraTemplate | null;
48
- //# sourceMappingURL=tessera-engine.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tessera-engine.d.ts","sourceRoot":"","sources":["../../src/lifecycle/tessera-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,yBAAyB,EACzB,eAAe,EAGf,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AA6J7B;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,IAAI,eAAe,CAoCrD;AAYD;;;;;;;;;;;;GAYG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,eAAe,EACzB,KAAK,EAAE,yBAAyB,EAChC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,iBAAiB,CAAC,CA6C5B;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,eAAe,EAAE,CAGxD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAG9D"}
@@ -1,249 +0,0 @@
1
- /**
2
- * Tessera Instantiation Engine
3
- *
4
- * Provides template management and instantiation for parameterized
5
- * WarpChain workflows. Wraps buildDefaultChain() with template
6
- * variables and manages the template registry.
7
- *
8
- * @task T5409
9
- */
10
- import { validateChain } from '../validation/chain-validation.js';
11
- import { addChain, createInstance, showChain } from './chain-store.js';
12
- import { buildDefaultChain } from './default-chain.js';
13
- const DEFAULT_TESSERA_ID = 'tessera-rcasd';
14
- const TASK_ID_PATTERN = /^T\d+$/;
15
- const PLACEHOLDER_EXACT = /^\{\{\s*([A-Za-z0-9_]+)\s*\}\}$/;
16
- const PLACEHOLDER_GLOBAL = /\{\{\s*([A-Za-z0-9_]+)\s*\}\}/g;
17
- function valueType(value) {
18
- if (value === null) {
19
- return 'null';
20
- }
21
- if (Array.isArray(value)) {
22
- return 'array';
23
- }
24
- return typeof value;
25
- }
26
- function hasOwn(obj, key) {
27
- return Object.hasOwn(obj, key);
28
- }
29
- function validateVariableType(name, varDef, value) {
30
- switch (varDef.type) {
31
- case 'string': {
32
- if (typeof value !== 'string') {
33
- throw new Error(`Invalid variable type for "${name}": expected string, got ${valueType(value)}`);
34
- }
35
- return;
36
- }
37
- case 'number': {
38
- if (typeof value !== 'number' || !Number.isFinite(value)) {
39
- throw new Error(`Invalid variable type for "${name}": expected finite number, got ${valueType(value)}`);
40
- }
41
- return;
42
- }
43
- case 'boolean': {
44
- if (typeof value !== 'boolean') {
45
- throw new Error(`Invalid variable type for "${name}": expected boolean, got ${valueType(value)}`);
46
- }
47
- return;
48
- }
49
- case 'taskId':
50
- case 'epicId': {
51
- if (typeof value !== 'string') {
52
- throw new Error(`Invalid variable type for "${name}": expected ${varDef.type}, got ${valueType(value)}`);
53
- }
54
- if (!TASK_ID_PATTERN.test(value)) {
55
- throw new Error(`Invalid variable format for "${name}": expected ${varDef.type} like "T1234", got "${value}"`);
56
- }
57
- return;
58
- }
59
- default: {
60
- throw new Error(`Unsupported variable type for "${name}": ${String(varDef.type)}`);
61
- }
62
- }
63
- }
64
- function substituteTemplateValue(value, variables, path) {
65
- if (typeof value === 'string') {
66
- const exact = value.match(PLACEHOLDER_EXACT);
67
- if (exact) {
68
- const variableName = exact[1];
69
- if (!hasOwn(variables, variableName)) {
70
- throw new Error(`Unknown template variable "${variableName}" at ${path}`);
71
- }
72
- return variables[variableName];
73
- }
74
- return value.replace(PLACEHOLDER_GLOBAL, (_full, variableName) => {
75
- if (!hasOwn(variables, variableName)) {
76
- throw new Error(`Unknown template variable "${variableName}" at ${path}`);
77
- }
78
- return String(variables[variableName]);
79
- });
80
- }
81
- if (Array.isArray(value)) {
82
- return value.map((entry, index) => substituteTemplateValue(entry, variables, `${path}[${index}]`));
83
- }
84
- if (value !== null && typeof value === 'object') {
85
- const out = {};
86
- for (const [key, nested] of Object.entries(value)) {
87
- out[key] = substituteTemplateValue(nested, variables, `${path}.${key}`);
88
- }
89
- return out;
90
- }
91
- return value;
92
- }
93
- function resolveVariables(template, inputVariables) {
94
- const variableKeys = Object.keys(template.variables).sort();
95
- const allowedVariables = new Set(variableKeys);
96
- for (const key of Object.keys(inputVariables).sort()) {
97
- if (!allowedVariables.has(key)) {
98
- throw new Error(`Unknown variable: ${key}. Allowed variables: ${variableKeys.join(', ')}`);
99
- }
100
- }
101
- const resolvedVariables = {};
102
- for (const key of variableKeys) {
103
- const varDef = template.variables[key];
104
- const hasInput = hasOwn(inputVariables, key);
105
- const inputValue = hasInput ? inputVariables[key] : undefined;
106
- if (inputValue === undefined) {
107
- if (varDef.required) {
108
- throw new Error(`Missing required variable: ${key}`);
109
- }
110
- if (hasOwn(template.defaultValues, key)) {
111
- const defaultValue = template.defaultValues[key];
112
- validateVariableType(key, varDef, defaultValue);
113
- resolvedVariables[key] = defaultValue;
114
- }
115
- else if (varDef.default !== undefined) {
116
- validateVariableType(key, varDef, varDef.default);
117
- resolvedVariables[key] = varDef.default;
118
- }
119
- continue;
120
- }
121
- validateVariableType(key, varDef, inputValue);
122
- resolvedVariables[key] = inputValue;
123
- }
124
- return resolvedVariables;
125
- }
126
- /**
127
- * Build the default RCASD Tessera template.
128
- *
129
- * Wraps buildDefaultChain() with template variables:
130
- * - epicId (required, type 'epicId')
131
- * - projectName (optional, type 'string', default 'unnamed')
132
- * - skipResearch (optional, type 'boolean', default false)
133
- *
134
- * @task T5409
135
- */
136
- export function buildDefaultTessera() {
137
- const chain = buildDefaultChain();
138
- return {
139
- ...chain,
140
- id: DEFAULT_TESSERA_ID,
141
- tessera: DEFAULT_TESSERA_ID,
142
- variables: {
143
- epicId: {
144
- name: 'epicId',
145
- type: 'epicId',
146
- description: 'The epic task ID to bind this pipeline to',
147
- required: true,
148
- },
149
- projectName: {
150
- name: 'projectName',
151
- type: 'string',
152
- description: 'Name of the project for labeling',
153
- required: false,
154
- default: 'unnamed',
155
- },
156
- skipResearch: {
157
- name: 'skipResearch',
158
- type: 'boolean',
159
- description: 'Whether to skip the research stage',
160
- required: false,
161
- default: false,
162
- },
163
- },
164
- archetypes: ['lifecycle', 'rcasd'],
165
- defaultValues: {
166
- projectName: 'unnamed',
167
- skipResearch: false,
168
- },
169
- category: 'lifecycle',
170
- };
171
- }
172
- /** In-memory template registry. */
173
- const templates = new Map();
174
- /** Ensure the default template is registered. */
175
- function ensureDefaults() {
176
- if (!templates.has(DEFAULT_TESSERA_ID)) {
177
- templates.set(DEFAULT_TESSERA_ID, buildDefaultTessera());
178
- }
179
- }
180
- /**
181
- * Instantiate a Tessera template into a concrete WarpChainInstance.
182
- *
183
- * Steps:
184
- * 1. Validate all required variables are provided
185
- * 2. Apply defaults for missing optional variables
186
- * 3. Construct concrete WarpChain from template
187
- * 4. Validate chain via validateChain()
188
- * 5. Store via createInstance() from chain-store
189
- * 6. Return instance
190
- *
191
- * @task T5409
192
- */
193
- export async function instantiateTessera(template, input, projectRoot) {
194
- // 1. Resolve and validate input variables
195
- const inputVariables = input.variables && typeof input.variables === 'object' ? input.variables : {};
196
- const resolvedVariables = resolveVariables(template, inputVariables);
197
- // 2. Build chain from template with deep substitution
198
- const chainSeed = {
199
- id: template.id,
200
- name: template.name,
201
- version: template.version,
202
- description: template.description,
203
- shape: template.shape,
204
- gates: template.gates,
205
- tessera: template.id,
206
- metadata: template.metadata,
207
- };
208
- const substituted = substituteTemplateValue(chainSeed, resolvedVariables, 'chain');
209
- const chain = substituted;
210
- chain.metadata = {
211
- ...(chain.metadata ?? {}),
212
- variables: resolvedVariables,
213
- };
214
- // 3. Validate the chain
215
- const validation = validateChain(chain);
216
- if (validation.errors.length > 0) {
217
- throw new Error(`Tessera chain validation failed: ${validation.errors.join('; ')}`);
218
- }
219
- // 4. Store chain if not already stored, then create instance
220
- const existing = await showChain(chain.id, projectRoot);
221
- if (!existing) {
222
- await addChain(chain, projectRoot);
223
- }
224
- // 5. Create and return instance
225
- return createInstance({
226
- chainId: chain.id,
227
- epicId: input.epicId,
228
- variables: resolvedVariables,
229
- }, projectRoot);
230
- }
231
- /**
232
- * List all registered Tessera templates.
233
- *
234
- * @task T5409
235
- */
236
- export function listTesseraTemplates() {
237
- ensureDefaults();
238
- return Array.from(templates.values());
239
- }
240
- /**
241
- * Find a Tessera template by ID.
242
- *
243
- * @task T5409
244
- */
245
- export function showTessera(id) {
246
- ensureDefaults();
247
- return templates.get(id) ?? null;
248
- }
249
- //# sourceMappingURL=tessera-engine.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tessera-engine.js","sourceRoot":"","sources":["../../src/lifecycle/tessera-engine.ts"],"names":[],"mappings":"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"}
@@ -1,74 +0,0 @@
1
- /**
2
- * Post-cutover provenance `task_id` / `epic_id` FK reconciliation (DHQ-051).
3
- *
4
- * Shared between `cleo release reconcile` ({@link releaseReconcileV2}) and
5
- * `cleo release plan` ({@link releasePlan} → `upsertReleasesRow`). Both verbs
6
- * write provenance rows (`task_commits`, `pr_tasks`, `releases`,
7
- * `release_changes`) whose `task_id` / `epic_id` foreign keys reference the
8
- * BARE `tasks` table — which is empty on a consolidated dual-scope `cleo.db`
9
- * after the T11578 cutover (runtime task data moved to the prefixed
10
- * `tasks_tasks` table). A row inserted with an `epicId` / `taskId` that exists
11
- * only in `tasks_tasks` violates the FK at INSERT time, aborting the verb.
12
- *
13
- * This module is the single source of truth for the FK-ordered parent backfill
14
- * that makes those FKs satisfiable. `reconcile.ts` re-exports both symbols so
15
- * its public surface is unchanged.
16
- *
17
- * @task T11659 — reconcile slice (original)
18
- * @task T11818 — plan/open slice (DRY hoist)
19
- * @epic T11466
20
- */
21
- import type { DatabaseSync } from '../store/sqlite.js';
22
- /** Result of resolving + reconciling the provenance `task_id` FK parent table. */
23
- export interface FkParentTaskResolution {
24
- /** Physical table the provenance `task_id` FK references, or null if absent. */
25
- parentTable: string | null;
26
- /**
27
- * Task IDs the FK can now resolve (FK parent rows present after any
28
- * FK-ordered shim backfill). A `task_id` reference to an id in this set is
29
- * safe to INSERT under strict FK enforcement.
30
- */
31
- resolvableIds: Set<string>;
32
- }
33
- /**
34
- * Make the provenance `task_id` foreign keys satisfiable on a consolidated
35
- * `cleo.db` by inserting any missing FK-parent rows in FK order (parent-before
36
- * -child), then returning the set of IDs the FK can resolve.
37
- *
38
- * ## Background (DHQ-051 · T11659 / T11818 — same class as DHQ-045)
39
- *
40
- * After the dual-scope `cleo.db` cutover (T11578) the runtime task store moved
41
- * from the bare `tasks` table to the prefixed `tasks_tasks` table. The drizzle
42
- * `schema.tasks` symbol is shadowed at the barrel (`tasks-schema.ts`) onto
43
- * `tasks_tasks`, so token-validity probes read the populated prefixed table.
44
- * BUT the provenance tables (`task_commits`, `pr_tasks`, `releases`,
45
- * `release_changes`) predate the cutover — their `task_id` / `epic_id` FKs
46
- * still reference the BARE `tasks` table, which is empty on a consolidated
47
- * `cleo.db`. A token validated against `tasks_tasks` therefore passes the
48
- * legacy gate yet violates the FK at INSERT time, aborting the whole verb with
49
- * `E_PROVENANCE_FAILED` (reconcile) or `E_INTERNAL` (plan).
50
- *
51
- * ## Strategy — FK-ordered parent backfill (Strategy 1)
52
- *
53
- * For every task referenced by this release we ensure a row exists in the FK
54
- * parent table BEFORE the child provenance rows are written. The parent table
55
- * is discovered dynamically via `PRAGMA foreign_key_list('task_commits')` (so
56
- * the logic tracks whatever the live schema enforces — including a future
57
- * schema that repoints the FK at `tasks_tasks`, where this becomes a no-op).
58
- * Missing parent rows are copied from the runtime `tasks_tasks` store via
59
- * `INSERT OR IGNORE … SELECT` of only the NOT NULL columns, so the copied rows
60
- * satisfy the parent table's own CHECK/NOT NULL constraints. Tasks that exist
61
- * in neither table remain unresolvable and are skipped-with-warn / NULLed by
62
- * the callers (the row, never the whole verb).
63
- *
64
- * Idempotent: `INSERT OR IGNORE` never duplicates and never overwrites an
65
- * existing parent row. Callers run it inside their write transaction so a later
66
- * failure rolls the shim rows back too.
67
- *
68
- * @param nativeDb - The consolidated `cleo.db` native handle.
69
- * @param referencedIds - Every task id this verb may reference (commit tokens,
70
- * PR tokens, plan tasks, epic).
71
- * @returns The FK parent table name + the IDs it can now resolve.
72
- */
73
- export declare function ensureProvenanceTaskFkParents(nativeDb: DatabaseSync, referencedIds: ReadonlySet<string>): FkParentTaskResolution;
74
- //# sourceMappingURL=provenance-fk.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"provenance-fk.d.ts","sourceRoot":"","sources":["../../src/release/provenance-fk.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIvD,kFAAkF;AAClF,MAAM,WAAW,sBAAsB;IACrC,gFAAgF;IAChF,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B;;;;OAIG;IACH,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,YAAY,EACtB,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,GACjC,sBAAsB,CAmExB"}