@cleocode/core 2026.6.12 → 2026.6.14

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 (730) hide show
  1. package/dist/admin/ops.d.ts +4 -0
  2. package/dist/admin/ops.d.ts.map +1 -1
  3. package/dist/check/index.d.ts +12 -0
  4. package/dist/check/index.d.ts.map +1 -0
  5. package/dist/check/index.js +12 -0
  6. package/dist/check/index.js.map +1 -0
  7. package/dist/check/pr-gate.d.ts +179 -0
  8. package/dist/check/pr-gate.d.ts.map +1 -0
  9. package/dist/check/pr-gate.js +366 -0
  10. package/dist/check/pr-gate.js.map +1 -0
  11. package/dist/conduit/delivery-router.d.ts +134 -0
  12. package/dist/conduit/delivery-router.d.ts.map +1 -0
  13. package/dist/conduit/delivery-router.js +0 -0
  14. package/dist/conduit/delivery-router.js.map +1 -0
  15. package/dist/conduit/index.d.ts +5 -2
  16. package/dist/conduit/index.d.ts.map +1 -1
  17. package/dist/conduit/index.js +5 -2
  18. package/dist/conduit/index.js.map +1 -1
  19. package/dist/conduit/local-transport.d.ts +12 -0
  20. package/dist/conduit/local-transport.d.ts.map +1 -1
  21. package/dist/conduit/local-transport.js +53 -23
  22. package/dist/conduit/local-transport.js.map +1 -1
  23. package/dist/conduit/local-tui-adapter.d.ts +89 -0
  24. package/dist/conduit/local-tui-adapter.d.ts.map +1 -0
  25. package/dist/conduit/local-tui-adapter.js +225 -0
  26. package/dist/conduit/local-tui-adapter.js.map +1 -0
  27. package/dist/config/registry.d.ts +54 -0
  28. package/dist/config/registry.d.ts.map +1 -1
  29. package/dist/config/registry.js +94 -2
  30. package/dist/config/registry.js.map +1 -1
  31. package/dist/crypto/credentials.d.ts +37 -0
  32. package/dist/crypto/credentials.d.ts.map +1 -1
  33. package/dist/crypto/credentials.js +110 -0
  34. package/dist/crypto/credentials.js.map +1 -1
  35. package/dist/deriver/queue-manager.d.ts +30 -2
  36. package/dist/deriver/queue-manager.d.ts.map +1 -1
  37. package/dist/deriver/queue-manager.js +54 -9
  38. package/dist/deriver/queue-manager.js.map +1 -1
  39. package/dist/dispatch/config-domain-handler.d.ts +125 -0
  40. package/dist/dispatch/config-domain-handler.d.ts.map +1 -0
  41. package/dist/dispatch/config-domain-handler.js +160 -0
  42. package/dist/dispatch/config-domain-handler.js.map +1 -0
  43. package/dist/dispatch/contracts/derive-output-contract.d.ts +86 -0
  44. package/dist/dispatch/contracts/derive-output-contract.d.ts.map +1 -0
  45. package/dist/dispatch/contracts/derive-output-contract.js +347 -0
  46. package/dist/dispatch/contracts/derive-output-contract.js.map +1 -0
  47. package/dist/dispatch/contracts/ensures-schema.d.ts +77 -0
  48. package/dist/dispatch/contracts/ensures-schema.d.ts.map +1 -0
  49. package/dist/dispatch/contracts/ensures-schema.js +91 -0
  50. package/dist/dispatch/contracts/ensures-schema.js.map +1 -0
  51. package/dist/dispatch/contracts/input-contracts.d.ts.map +1 -1
  52. package/dist/dispatch/contracts/input-contracts.js +19 -1
  53. package/dist/dispatch/contracts/input-contracts.js.map +1 -1
  54. package/dist/dispatch/contracts/output-contracts.d.ts +27 -5
  55. package/dist/dispatch/contracts/output-contracts.d.ts.map +1 -1
  56. package/dist/dispatch/contracts/output-contracts.js +29 -6
  57. package/dist/dispatch/contracts/output-contracts.js.map +1 -1
  58. package/dist/docs/export-document.js +5413 -1345
  59. package/dist/docs/export-document.js.map +3 -3
  60. package/dist/gateway-client/client.d.ts +123 -0
  61. package/dist/gateway-client/client.d.ts.map +1 -0
  62. package/dist/gateway-client/client.js +93 -0
  63. package/dist/gateway-client/client.js.map +1 -0
  64. package/dist/gateway-client/generated/client/client.gen.d.ts +3 -0
  65. package/dist/gateway-client/generated/client/client.gen.d.ts.map +1 -0
  66. package/dist/gateway-client/generated/client/client.gen.js +217 -0
  67. package/dist/gateway-client/generated/client/client.gen.js.map +1 -0
  68. package/dist/gateway-client/generated/client/index.d.ts +11 -0
  69. package/dist/gateway-client/generated/client/index.d.ts.map +1 -0
  70. package/dist/gateway-client/generated/client/index.js +7 -0
  71. package/dist/gateway-client/generated/client/index.js.map +1 -0
  72. package/dist/gateway-client/generated/client/types.gen.d.ts +121 -0
  73. package/dist/gateway-client/generated/client/types.gen.d.ts.map +1 -0
  74. package/dist/gateway-client/generated/client/types.gen.js +3 -0
  75. package/dist/gateway-client/generated/client/types.gen.js.map +1 -0
  76. package/dist/gateway-client/generated/client/utils.gen.d.ts +38 -0
  77. package/dist/gateway-client/generated/client/utils.gen.d.ts.map +1 -0
  78. package/dist/gateway-client/generated/client/utils.gen.js +229 -0
  79. package/dist/gateway-client/generated/client/utils.gen.js.map +1 -0
  80. package/dist/gateway-client/generated/client.gen.d.ts +13 -0
  81. package/dist/gateway-client/generated/client.gen.d.ts.map +1 -0
  82. package/dist/gateway-client/generated/client.gen.js +4 -0
  83. package/dist/gateway-client/generated/client.gen.js.map +1 -0
  84. package/dist/gateway-client/generated/core/auth.gen.d.ts +26 -0
  85. package/dist/gateway-client/generated/core/auth.gen.d.ts.map +1 -0
  86. package/dist/gateway-client/generated/core/auth.gen.js +15 -0
  87. package/dist/gateway-client/generated/core/auth.gen.js.map +1 -0
  88. package/dist/gateway-client/generated/core/bodySerializer.gen.d.ts +26 -0
  89. package/dist/gateway-client/generated/core/bodySerializer.gen.d.ts.map +1 -0
  90. package/dist/gateway-client/generated/core/bodySerializer.gen.js +58 -0
  91. package/dist/gateway-client/generated/core/bodySerializer.gen.js.map +1 -0
  92. package/dist/gateway-client/generated/core/params.gen.d.ts +44 -0
  93. package/dist/gateway-client/generated/core/params.gen.d.ts.map +1 -0
  94. package/dist/gateway-client/generated/core/params.gen.js +101 -0
  95. package/dist/gateway-client/generated/core/params.gen.js.map +1 -0
  96. package/dist/gateway-client/generated/core/pathSerializer.gen.d.ts +34 -0
  97. package/dist/gateway-client/generated/core/pathSerializer.gen.d.ts.map +1 -0
  98. package/dist/gateway-client/generated/core/pathSerializer.gen.js +107 -0
  99. package/dist/gateway-client/generated/core/pathSerializer.gen.js.map +1 -0
  100. package/dist/gateway-client/generated/core/queryKeySerializer.gen.d.ts +19 -0
  101. package/dist/gateway-client/generated/core/queryKeySerializer.gen.d.ts.map +1 -0
  102. package/dist/gateway-client/generated/core/queryKeySerializer.gen.js +93 -0
  103. package/dist/gateway-client/generated/core/queryKeySerializer.gen.js.map +1 -0
  104. package/dist/gateway-client/generated/core/serverSentEvents.gen.d.ts +72 -0
  105. package/dist/gateway-client/generated/core/serverSentEvents.gen.d.ts.map +1 -0
  106. package/dist/gateway-client/generated/core/serverSentEvents.gen.js +133 -0
  107. package/dist/gateway-client/generated/core/serverSentEvents.gen.js.map +1 -0
  108. package/dist/gateway-client/generated/core/types.gen.d.ts +84 -0
  109. package/dist/gateway-client/generated/core/types.gen.d.ts.map +1 -0
  110. package/dist/gateway-client/generated/core/types.gen.js +3 -0
  111. package/dist/gateway-client/generated/core/types.gen.js.map +1 -0
  112. package/dist/gateway-client/generated/core/utils.gen.d.ts +20 -0
  113. package/dist/gateway-client/generated/core/utils.gen.d.ts.map +1 -0
  114. package/dist/gateway-client/generated/core/utils.gen.js +88 -0
  115. package/dist/gateway-client/generated/core/utils.gen.js.map +1 -0
  116. package/dist/gateway-client/generated/index.d.ts +3 -0
  117. package/dist/gateway-client/generated/index.d.ts.map +1 -0
  118. package/dist/gateway-client/generated/index.js +3 -0
  119. package/dist/gateway-client/generated/index.js.map +1 -0
  120. package/dist/gateway-client/generated/namespaces.gen.d.ts +512 -0
  121. package/dist/gateway-client/generated/namespaces.gen.d.ts.map +1 -0
  122. package/dist/gateway-client/generated/namespaces.gen.js +521 -0
  123. package/dist/gateway-client/generated/namespaces.gen.js.map +1 -0
  124. package/dist/gateway-client/generated/sdk.gen.d.ts +1780 -0
  125. package/dist/gateway-client/generated/sdk.gen.d.ts.map +1 -0
  126. package/dist/gateway-client/generated/sdk.gen.js +3811 -0
  127. package/dist/gateway-client/generated/sdk.gen.js.map +1 -0
  128. package/dist/gateway-client/generated/types.gen.d.ts +14681 -0
  129. package/dist/gateway-client/generated/types.gen.d.ts.map +1 -0
  130. package/dist/gateway-client/generated/types.gen.js +3 -0
  131. package/dist/gateway-client/generated/types.gen.js.map +1 -0
  132. package/dist/gateway-client/index.d.ts +27 -0
  133. package/dist/gateway-client/index.d.ts.map +1 -0
  134. package/dist/gateway-client/index.js +25 -0
  135. package/dist/gateway-client/index.js.map +1 -0
  136. package/dist/go/driver.d.ts +132 -7
  137. package/dist/go/driver.d.ts.map +1 -1
  138. package/dist/go/driver.js +135 -10
  139. package/dist/go/driver.js.map +1 -1
  140. package/dist/go/index.d.ts +1 -1
  141. package/dist/go/index.d.ts.map +1 -1
  142. package/dist/go/index.js +1 -1
  143. package/dist/go/index.js.map +1 -1
  144. package/dist/index.d.ts +11 -0
  145. package/dist/index.d.ts.map +1 -1
  146. package/dist/index.js +25 -0
  147. package/dist/index.js.map +1 -1
  148. package/dist/init.d.ts.map +1 -1
  149. package/dist/init.js +28 -0
  150. package/dist/init.js.map +1 -1
  151. package/dist/internal.d.ts +23 -11
  152. package/dist/internal.d.ts.map +1 -1
  153. package/dist/internal.js +29 -12
  154. package/dist/internal.js.map +1 -1
  155. package/dist/lifecycle/engine-ops.d.ts.map +1 -1
  156. package/dist/lifecycle/engine-ops.js +7 -4
  157. package/dist/lifecycle/engine-ops.js.map +1 -1
  158. package/dist/lifecycle/ivtr-loop.d.ts +108 -183
  159. package/dist/lifecycle/ivtr-loop.d.ts.map +1 -1
  160. package/dist/lifecycle/ivtr-loop.js +207 -522
  161. package/dist/lifecycle/ivtr-loop.js.map +1 -1
  162. package/dist/llm/auxiliary-fallback.js +1 -1
  163. package/dist/llm/auxiliary-fallback.js.map +1 -1
  164. package/dist/llm/catalog-model-resolver.d.ts +19 -0
  165. package/dist/llm/catalog-model-resolver.d.ts.map +1 -1
  166. package/dist/llm/catalog-model-resolver.js +36 -0
  167. package/dist/llm/catalog-model-resolver.js.map +1 -1
  168. package/dist/llm/catalog-resolver.d.ts +112 -0
  169. package/dist/llm/catalog-resolver.d.ts.map +1 -0
  170. package/dist/llm/catalog-resolver.js +207 -0
  171. package/dist/llm/catalog-resolver.js.map +1 -0
  172. package/dist/llm/catalog-seeder.d.ts +96 -0
  173. package/dist/llm/catalog-seeder.d.ts.map +1 -0
  174. package/dist/llm/catalog-seeder.js +189 -0
  175. package/dist/llm/catalog-seeder.js.map +1 -0
  176. package/dist/llm/cli-ops.d.ts +14 -1
  177. package/dist/llm/cli-ops.d.ts.map +1 -1
  178. package/dist/llm/cli-ops.js +46 -17
  179. package/dist/llm/cli-ops.js.map +1 -1
  180. package/dist/llm/complexity-classifier.d.ts +208 -0
  181. package/dist/llm/complexity-classifier.d.ts.map +1 -0
  182. package/dist/llm/complexity-classifier.js +359 -0
  183. package/dist/llm/complexity-classifier.js.map +1 -0
  184. package/dist/llm/concrete-session.d.ts.map +1 -1
  185. package/dist/llm/concrete-session.js +4 -0
  186. package/dist/llm/concrete-session.js.map +1 -1
  187. package/dist/llm/credential-pool.d.ts +2 -0
  188. package/dist/llm/credential-pool.d.ts.map +1 -1
  189. package/dist/llm/credential-pool.js +5 -2
  190. package/dist/llm/credential-pool.js.map +1 -1
  191. package/dist/llm/credentials-store.d.ts +10 -14
  192. package/dist/llm/credentials-store.d.ts.map +1 -1
  193. package/dist/llm/credentials-store.js.map +1 -1
  194. package/dist/llm/credentials.d.ts +35 -0
  195. package/dist/llm/credentials.d.ts.map +1 -1
  196. package/dist/llm/credentials.js +49 -0
  197. package/dist/llm/credentials.js.map +1 -1
  198. package/dist/llm/entity-ops.d.ts +299 -0
  199. package/dist/llm/entity-ops.d.ts.map +1 -0
  200. package/dist/llm/entity-ops.js +441 -0
  201. package/dist/llm/entity-ops.js.map +1 -0
  202. package/dist/llm/index.d.ts +19 -0
  203. package/dist/llm/index.d.ts.map +1 -1
  204. package/dist/llm/index.js +12 -0
  205. package/dist/llm/index.js.map +1 -1
  206. package/dist/llm/llm-queue-admit.d.ts +118 -0
  207. package/dist/llm/llm-queue-admit.d.ts.map +1 -0
  208. package/dist/llm/llm-queue-admit.js +275 -0
  209. package/dist/llm/llm-queue-admit.js.map +1 -0
  210. package/dist/llm/oauth/device-code.d.ts.map +1 -1
  211. package/dist/llm/oauth/device-code.js +2 -8
  212. package/dist/llm/oauth/device-code.js.map +1 -1
  213. package/dist/llm/oauth/google-pkce.d.ts.map +1 -1
  214. package/dist/llm/oauth/google-pkce.js +2 -18
  215. package/dist/llm/oauth/google-pkce.js.map +1 -1
  216. package/dist/llm/oauth/pkce.d.ts +70 -0
  217. package/dist/llm/oauth/pkce.d.ts.map +1 -1
  218. package/dist/llm/oauth/pkce.js +106 -29
  219. package/dist/llm/oauth/pkce.js.map +1 -1
  220. package/dist/llm/onboarding/front-door.d.ts +146 -0
  221. package/dist/llm/onboarding/front-door.d.ts.map +1 -0
  222. package/dist/llm/onboarding/front-door.js +153 -0
  223. package/dist/llm/onboarding/front-door.js.map +1 -0
  224. package/dist/llm/onboarding/login-engine.d.ts +175 -0
  225. package/dist/llm/onboarding/login-engine.d.ts.map +1 -0
  226. package/dist/llm/onboarding/login-engine.js +286 -0
  227. package/dist/llm/onboarding/login-engine.js.map +1 -0
  228. package/dist/llm/pi/gondolin-loader.d.ts +241 -0
  229. package/dist/llm/pi/gondolin-loader.d.ts.map +1 -0
  230. package/dist/llm/pi/gondolin-loader.js +195 -0
  231. package/dist/llm/pi/gondolin-loader.js.map +1 -0
  232. package/dist/llm/pi/index.d.ts +28 -0
  233. package/dist/llm/pi/index.d.ts.map +1 -0
  234. package/dist/llm/pi/index.js +27 -0
  235. package/dist/llm/pi/index.js.map +1 -0
  236. package/dist/llm/pi/pi-agent-adapter.d.ts +135 -0
  237. package/dist/llm/pi/pi-agent-adapter.d.ts.map +1 -0
  238. package/dist/llm/pi/pi-agent-adapter.js +329 -0
  239. package/dist/llm/pi/pi-agent-adapter.js.map +1 -0
  240. package/dist/llm/pi/pi-errors.d.ts +161 -0
  241. package/dist/llm/pi/pi-errors.d.ts.map +1 -0
  242. package/dist/llm/pi/pi-errors.js +296 -0
  243. package/dist/llm/pi/pi-errors.js.map +1 -0
  244. package/dist/llm/pi/pi-execution-env.d.ts +286 -0
  245. package/dist/llm/pi/pi-execution-env.d.ts.map +1 -0
  246. package/dist/llm/pi/pi-execution-env.js +406 -0
  247. package/dist/llm/pi/pi-execution-env.js.map +1 -0
  248. package/dist/llm/pi/pi-gondolin-env.d.ts +250 -0
  249. package/dist/llm/pi/pi-gondolin-env.d.ts.map +1 -0
  250. package/dist/llm/pi/pi-gondolin-env.js +541 -0
  251. package/dist/llm/pi/pi-gondolin-env.js.map +1 -0
  252. package/dist/llm/pi/pi-session-storage.d.ts +154 -0
  253. package/dist/llm/pi/pi-session-storage.d.ts.map +1 -0
  254. package/dist/llm/pi/pi-session-storage.js +314 -0
  255. package/dist/llm/pi/pi-session-storage.js.map +1 -0
  256. package/dist/llm/pi/pi-stream-fn.d.ts +124 -0
  257. package/dist/llm/pi/pi-stream-fn.d.ts.map +1 -0
  258. package/dist/llm/pi/pi-stream-fn.js +504 -0
  259. package/dist/llm/pi/pi-stream-fn.js.map +1 -0
  260. package/dist/llm/pi/pi-tool-bridge.d.ts +99 -0
  261. package/dist/llm/pi/pi-tool-bridge.d.ts.map +1 -0
  262. package/dist/llm/pi/pi-tool-bridge.js +117 -0
  263. package/dist/llm/pi/pi-tool-bridge.js.map +1 -0
  264. package/dist/llm/pi/pi-types.d.ts +56 -0
  265. package/dist/llm/pi/pi-types.d.ts.map +1 -0
  266. package/dist/llm/pi/pi-types.js +16 -0
  267. package/dist/llm/pi/pi-types.js.map +1 -0
  268. package/dist/llm/pi/resolve-execution-env.d.ts +194 -0
  269. package/dist/llm/pi/resolve-execution-env.d.ts.map +1 -0
  270. package/dist/llm/pi/resolve-execution-env.js +132 -0
  271. package/dist/llm/pi/resolve-execution-env.js.map +1 -0
  272. package/dist/llm/plugin-facade.js +5472 -1331
  273. package/dist/llm/plugin-facade.js.map +3 -3
  274. package/dist/llm/provider-registry/builtin/anthropic.d.ts.map +1 -1
  275. package/dist/llm/provider-registry/builtin/anthropic.js +23 -10
  276. package/dist/llm/provider-registry/builtin/anthropic.js.map +1 -1
  277. package/dist/llm/provider-registry/provider-alias.d.ts +62 -0
  278. package/dist/llm/provider-registry/provider-alias.d.ts.map +1 -0
  279. package/dist/llm/provider-registry/provider-alias.js +85 -0
  280. package/dist/llm/provider-registry/provider-alias.js.map +1 -0
  281. package/dist/llm/provider-registry/provider-defs.d.ts +45 -0
  282. package/dist/llm/provider-registry/provider-defs.d.ts.map +1 -0
  283. package/dist/llm/provider-registry/provider-defs.js +145 -0
  284. package/dist/llm/provider-registry/provider-defs.js.map +1 -0
  285. package/dist/llm/provider-registry/provider-seed.d.ts +78 -0
  286. package/dist/llm/provider-registry/provider-seed.d.ts.map +1 -0
  287. package/dist/llm/provider-registry/provider-seed.js +113 -0
  288. package/dist/llm/provider-registry/provider-seed.js.map +1 -0
  289. package/dist/llm/role-executor.d.ts.map +1 -1
  290. package/dist/llm/role-executor.js +44 -5
  291. package/dist/llm/role-executor.js.map +1 -1
  292. package/dist/llm/role-resolver.d.ts +46 -14
  293. package/dist/llm/role-resolver.d.ts.map +1 -1
  294. package/dist/llm/role-resolver.js +185 -20
  295. package/dist/llm/role-resolver.js.map +1 -1
  296. package/dist/llm/sealed-credential.d.ts +125 -0
  297. package/dist/llm/sealed-credential.d.ts.map +1 -0
  298. package/dist/llm/sealed-credential.js +133 -0
  299. package/dist/llm/sealed-credential.js.map +1 -0
  300. package/dist/llm/session-factory.d.ts.map +1 -1
  301. package/dist/llm/session-factory.js +6 -2
  302. package/dist/llm/session-factory.js.map +1 -1
  303. package/dist/llm/system-key.d.ts +67 -0
  304. package/dist/llm/system-key.d.ts.map +1 -0
  305. package/dist/llm/system-key.js +87 -0
  306. package/dist/llm/system-key.js.map +1 -0
  307. package/dist/llm/system-of-use-registry.d.ts +119 -0
  308. package/dist/llm/system-of-use-registry.d.ts.map +1 -0
  309. package/dist/llm/system-of-use-registry.js +200 -0
  310. package/dist/llm/system-of-use-registry.js.map +1 -0
  311. package/dist/llm/system-resolver.d.ts +32 -10
  312. package/dist/llm/system-resolver.d.ts.map +1 -1
  313. package/dist/llm/system-resolver.js +138 -35
  314. package/dist/llm/system-resolver.js.map +1 -1
  315. package/dist/memory/brain-writer-thread.d.ts.map +1 -1
  316. package/dist/memory/brain-writer-thread.js +116 -11
  317. package/dist/memory/brain-writer-thread.js.map +1 -1
  318. package/dist/memory/claude-mem-migration.d.ts.map +1 -1
  319. package/dist/memory/claude-mem-migration.js +21 -0
  320. package/dist/memory/claude-mem-migration.js.map +1 -1
  321. package/dist/memory/graph-memory-bridge.d.ts.map +1 -1
  322. package/dist/memory/graph-memory-bridge.js +32 -25
  323. package/dist/memory/graph-memory-bridge.js.map +1 -1
  324. package/dist/memory/learnings.d.ts +4 -0
  325. package/dist/memory/learnings.d.ts.map +1 -1
  326. package/dist/memory/llm-backend-resolver.js +23 -5
  327. package/dist/memory/llm-backend-resolver.js.map +1 -1
  328. package/dist/memory/patterns.d.ts +4 -0
  329. package/dist/memory/patterns.d.ts.map +1 -1
  330. package/dist/metrics/index.d.ts +2 -0
  331. package/dist/metrics/index.d.ts.map +1 -1
  332. package/dist/metrics/index.js +1 -0
  333. package/dist/metrics/index.js.map +1 -1
  334. package/dist/nexus/migrations/M-split-graph.d.ts.map +1 -1
  335. package/dist/nexus/migrations/M-split-graph.js +60 -53
  336. package/dist/nexus/migrations/M-split-graph.js.map +1 -1
  337. package/dist/orchestrate/pivot.d.ts.map +1 -1
  338. package/dist/orchestrate/pivot.js +20 -2
  339. package/dist/orchestrate/pivot.js.map +1 -1
  340. package/dist/orchestration/spawn.d.ts +89 -0
  341. package/dist/orchestration/spawn.d.ts.map +1 -1
  342. package/dist/orchestration/spawn.js +68 -0
  343. package/dist/orchestration/spawn.js.map +1 -1
  344. package/dist/playbooks/cantbook-profile.d.ts +96 -0
  345. package/dist/playbooks/cantbook-profile.d.ts.map +1 -0
  346. package/dist/playbooks/cantbook-profile.js +97 -0
  347. package/dist/playbooks/cantbook-profile.js.map +1 -0
  348. package/dist/playbooks/guarded-deterministic-runner.d.ts +153 -0
  349. package/dist/playbooks/guarded-deterministic-runner.d.ts.map +1 -0
  350. package/dist/playbooks/guarded-deterministic-runner.js +155 -0
  351. package/dist/playbooks/guarded-deterministic-runner.js.map +1 -0
  352. package/dist/playbooks/index.d.ts +2 -0
  353. package/dist/playbooks/index.d.ts.map +1 -1
  354. package/dist/playbooks/index.js +10 -0
  355. package/dist/playbooks/index.js.map +1 -1
  356. package/dist/playbooks/pi-runner-wiring.d.ts +75 -0
  357. package/dist/playbooks/pi-runner-wiring.d.ts.map +1 -0
  358. package/dist/playbooks/pi-runner-wiring.js +82 -0
  359. package/dist/playbooks/pi-runner-wiring.js.map +1 -0
  360. package/dist/release/engine-ops.js +2 -2
  361. package/dist/release/engine-ops.js.map +1 -1
  362. package/dist/routing/capability-matrix.d.ts.map +1 -1
  363. package/dist/routing/capability-matrix.js +0 -57
  364. package/dist/routing/capability-matrix.js.map +1 -1
  365. package/dist/runtime/openapi/generate-openapi.d.ts +211 -0
  366. package/dist/runtime/openapi/generate-openapi.d.ts.map +1 -0
  367. package/dist/runtime/openapi/generate-openapi.js +300 -0
  368. package/dist/runtime/openapi/generate-openapi.js.map +1 -0
  369. package/dist/runtime/openapi/index.d.ts +16 -0
  370. package/dist/runtime/openapi/index.d.ts.map +1 -0
  371. package/dist/runtime/openapi/index.js +16 -0
  372. package/dist/runtime/openapi/index.js.map +1 -0
  373. package/dist/selfimprove/budget.d.ts +206 -0
  374. package/dist/selfimprove/budget.d.ts.map +1 -0
  375. package/dist/selfimprove/budget.js +203 -0
  376. package/dist/selfimprove/budget.js.map +1 -0
  377. package/dist/selfimprove/dhq-adapter.d.ts +105 -0
  378. package/dist/selfimprove/dhq-adapter.d.ts.map +1 -0
  379. package/dist/selfimprove/dhq-adapter.js +95 -0
  380. package/dist/selfimprove/dhq-adapter.js.map +1 -0
  381. package/dist/selfimprove/draft-pr.d.ts +129 -0
  382. package/dist/selfimprove/draft-pr.d.ts.map +1 -0
  383. package/dist/selfimprove/draft-pr.js +158 -0
  384. package/dist/selfimprove/draft-pr.js.map +1 -0
  385. package/dist/selfimprove/envelope-diff.d.ts +162 -0
  386. package/dist/selfimprove/envelope-diff.d.ts.map +1 -0
  387. package/dist/selfimprove/envelope-diff.js +321 -0
  388. package/dist/selfimprove/envelope-diff.js.map +1 -0
  389. package/dist/selfimprove/replay.d.ts +121 -0
  390. package/dist/selfimprove/replay.d.ts.map +1 -0
  391. package/dist/selfimprove/replay.js +109 -0
  392. package/dist/selfimprove/replay.js.map +1 -0
  393. package/dist/selfimprove/run-loop.d.ts +148 -0
  394. package/dist/selfimprove/run-loop.d.ts.map +1 -0
  395. package/dist/selfimprove/run-loop.js +240 -0
  396. package/dist/selfimprove/run-loop.js.map +1 -0
  397. package/dist/selfimprove/scenario.d.ts +145 -0
  398. package/dist/selfimprove/scenario.d.ts.map +1 -0
  399. package/dist/selfimprove/scenario.js +243 -0
  400. package/dist/selfimprove/scenario.js.map +1 -0
  401. package/dist/selfimprove/scenarios/dhq-replay-find/golden.json +32 -0
  402. package/dist/selfimprove/scenarios/dhq-replay-find/scenario.json +18 -0
  403. package/dist/sentient/daemon-entry.js +5 -0
  404. package/dist/sentient/daemon-entry.js.map +1 -1
  405. package/dist/sentient/daemon.d.ts.map +1 -1
  406. package/dist/sentient/daemon.js +19 -0
  407. package/dist/sentient/daemon.js.map +1 -1
  408. package/dist/sentient/hygiene-scan.d.ts.map +1 -1
  409. package/dist/sentient/hygiene-scan.js +14 -6
  410. package/dist/sentient/hygiene-scan.js.map +1 -1
  411. package/dist/sessions/briefing.d.ts.map +1 -1
  412. package/dist/sessions/briefing.js +13 -9
  413. package/dist/sessions/briefing.js.map +1 -1
  414. package/dist/sessions/connection-session-handle.d.ts +161 -0
  415. package/dist/sessions/connection-session-handle.d.ts.map +1 -0
  416. package/dist/sessions/connection-session-handle.js +168 -0
  417. package/dist/sessions/connection-session-handle.js.map +1 -0
  418. package/dist/sessions/handoff.d.ts.map +1 -1
  419. package/dist/sessions/handoff.js +9 -0
  420. package/dist/sessions/handoff.js.map +1 -1
  421. package/dist/sessions/index.d.ts +4 -1
  422. package/dist/sessions/index.d.ts.map +1 -1
  423. package/dist/sessions/index.js +31 -1
  424. package/dist/sessions/index.js.map +1 -1
  425. package/dist/sessions/session-id.d.ts +34 -0
  426. package/dist/sessions/session-id.d.ts.map +1 -1
  427. package/dist/sessions/session-id.js +37 -0
  428. package/dist/sessions/session-id.js.map +1 -1
  429. package/dist/sessions/session-manifest-mirror.d.ts +115 -0
  430. package/dist/sessions/session-manifest-mirror.d.ts.map +1 -0
  431. package/dist/sessions/session-manifest-mirror.js +250 -0
  432. package/dist/sessions/session-manifest-mirror.js.map +1 -0
  433. package/dist/sessions/session-switch.d.ts.map +1 -1
  434. package/dist/sessions/session-switch.js +5 -2
  435. package/dist/sessions/session-switch.js.map +1 -1
  436. package/dist/setup/config-json-merge.d.ts.map +1 -1
  437. package/dist/setup/config-json-merge.js +14 -0
  438. package/dist/setup/config-json-merge.js.map +1 -1
  439. package/dist/setup/index.d.ts +23 -11
  440. package/dist/setup/index.d.ts.map +1 -1
  441. package/dist/setup/index.js +25 -12
  442. package/dist/setup/index.js.map +1 -1
  443. package/dist/setup/sections/llm.d.ts +28 -1
  444. package/dist/setup/sections/llm.d.ts.map +1 -1
  445. package/dist/setup/sections/llm.js +27 -6
  446. package/dist/setup/sections/llm.js.map +1 -1
  447. package/dist/setup/sections/models-roles.d.ts +40 -0
  448. package/dist/setup/sections/models-roles.d.ts.map +1 -0
  449. package/dist/setup/sections/models-roles.js +219 -0
  450. package/dist/setup/sections/models-roles.js.map +1 -0
  451. package/dist/setup/wizard.d.ts +19 -1
  452. package/dist/setup/wizard.d.ts.map +1 -1
  453. package/dist/setup/wizard.js.map +1 -1
  454. package/dist/store/converters.d.ts.map +1 -1
  455. package/dist/store/converters.js +2 -0
  456. package/dist/store/converters.js.map +1 -1
  457. package/dist/store/db-helpers.d.ts.map +1 -1
  458. package/dist/store/db-helpers.js +2 -0
  459. package/dist/store/db-helpers.js.map +1 -1
  460. package/dist/store/dual-scope-db.d.ts.map +1 -1
  461. package/dist/store/dual-scope-db.js +87 -47
  462. package/dist/store/dual-scope-db.js.map +1 -1
  463. package/dist/store/pi-session-store.d.ts +151 -0
  464. package/dist/store/pi-session-store.d.ts.map +1 -0
  465. package/dist/store/pi-session-store.js +166 -0
  466. package/dist/store/pi-session-store.js.map +1 -0
  467. package/dist/store/safety-data-accessor.d.ts +1 -0
  468. package/dist/store/safety-data-accessor.d.ts.map +1 -1
  469. package/dist/store/safety-data-accessor.js +5 -0
  470. package/dist/store/safety-data-accessor.js.map +1 -1
  471. package/dist/store/schedule-schema.d.ts +195 -0
  472. package/dist/store/schedule-schema.d.ts.map +1 -0
  473. package/dist/store/schedule-schema.js +84 -0
  474. package/dist/store/schedule-schema.js.map +1 -0
  475. package/dist/store/schedule-store.d.ts +144 -0
  476. package/dist/store/schedule-store.d.ts.map +1 -0
  477. package/dist/store/schedule-store.js +162 -0
  478. package/dist/store/schedule-store.js.map +1 -0
  479. package/dist/store/schema/attachments.d.ts +1 -1
  480. package/dist/store/schema/cleo-global/accounts.d.ts +357 -0
  481. package/dist/store/schema/cleo-global/accounts.d.ts.map +1 -0
  482. package/dist/store/schema/cleo-global/accounts.js +136 -0
  483. package/dist/store/schema/cleo-global/accounts.js.map +1 -0
  484. package/dist/store/schema/cleo-global/index.d.ts +5 -0
  485. package/dist/store/schema/cleo-global/index.d.ts.map +1 -1
  486. package/dist/store/schema/cleo-global/index.js +7 -0
  487. package/dist/store/schema/cleo-global/index.js.map +1 -1
  488. package/dist/store/schema/cleo-global/models-catalog.d.ts +359 -0
  489. package/dist/store/schema/cleo-global/models-catalog.d.ts.map +1 -0
  490. package/dist/store/schema/cleo-global/models-catalog.js +114 -0
  491. package/dist/store/schema/cleo-global/models-catalog.js.map +1 -0
  492. package/dist/store/schema/cleo-global/providers.d.ts +279 -0
  493. package/dist/store/schema/cleo-global/providers.d.ts.map +1 -0
  494. package/dist/store/schema/cleo-global/providers.js +94 -0
  495. package/dist/store/schema/cleo-global/providers.js.map +1 -0
  496. package/dist/store/schema/cleo-global/services.d.ts +493 -0
  497. package/dist/store/schema/cleo-global/services.d.ts.map +1 -0
  498. package/dist/store/schema/cleo-global/services.js +200 -0
  499. package/dist/store/schema/cleo-global/services.js.map +1 -0
  500. package/dist/store/schema/cleo-global/session-manifest.d.ts +217 -0
  501. package/dist/store/schema/cleo-global/session-manifest.d.ts.map +1 -0
  502. package/dist/store/schema/cleo-global/session-manifest.js +99 -0
  503. package/dist/store/schema/cleo-global/session-manifest.js.map +1 -0
  504. package/dist/store/schema/cleo-project/docs.d.ts +1 -1
  505. package/dist/store/schema/cleo-project/provenance-rest.d.ts +1 -1
  506. package/dist/store/schema/cleo-project/tasks-core.d.ts +16 -0
  507. package/dist/store/schema/cleo-project/tasks-core.d.ts.map +1 -1
  508. package/dist/store/schema/cleo-project/tasks-core.js +14 -0
  509. package/dist/store/schema/cleo-project/tasks-core.js.map +1 -1
  510. package/dist/store/schema/cleo-shared/brain.d.ts +2 -2
  511. package/dist/store/schema/memory-schema.d.ts +182 -2
  512. package/dist/store/schema/memory-schema.d.ts.map +1 -1
  513. package/dist/store/schema/memory-schema.js +111 -2
  514. package/dist/store/schema/memory-schema.js.map +1 -1
  515. package/dist/store/schema/provenance/releases.d.ts +1 -1
  516. package/dist/store/schema/tasks.d.ts +16 -0
  517. package/dist/store/schema/tasks.d.ts.map +1 -1
  518. package/dist/store/schema/tasks.js +10 -0
  519. package/dist/store/schema/tasks.js.map +1 -1
  520. package/dist/store/selfimprove-dhq-schema.d.ts +284 -0
  521. package/dist/store/selfimprove-dhq-schema.d.ts.map +1 -0
  522. package/dist/store/selfimprove-dhq-schema.js +128 -0
  523. package/dist/store/selfimprove-dhq-schema.js.map +1 -0
  524. package/dist/store/selfimprove-dhq-store.d.ts +175 -0
  525. package/dist/store/selfimprove-dhq-store.d.ts.map +1 -0
  526. package/dist/store/selfimprove-dhq-store.js +182 -0
  527. package/dist/store/selfimprove-dhq-store.js.map +1 -0
  528. package/dist/store/service-connections-accessor.d.ts +313 -0
  529. package/dist/store/service-connections-accessor.d.ts.map +1 -0
  530. package/dist/store/service-connections-accessor.js +464 -0
  531. package/dist/store/service-connections-accessor.js.map +1 -0
  532. package/dist/store/service-host-matcher.d.ts +70 -0
  533. package/dist/store/service-host-matcher.d.ts.map +1 -0
  534. package/dist/store/service-host-matcher.js +127 -0
  535. package/dist/store/service-host-matcher.js.map +1 -0
  536. package/dist/store/service-injection.d.ts +152 -0
  537. package/dist/store/service-injection.d.ts.map +1 -0
  538. package/dist/store/service-injection.js +225 -0
  539. package/dist/store/service-injection.js.map +1 -0
  540. package/dist/store/service-oauth.d.ts +287 -0
  541. package/dist/store/service-oauth.d.ts.map +1 -0
  542. package/dist/store/service-oauth.js +524 -0
  543. package/dist/store/service-oauth.js.map +1 -0
  544. package/dist/store/service-trust-gate.d.ts +164 -0
  545. package/dist/store/service-trust-gate.d.ts.map +1 -0
  546. package/dist/store/service-trust-gate.js +122 -0
  547. package/dist/store/service-trust-gate.js.map +1 -0
  548. package/dist/store/session-store.d.ts +52 -13
  549. package/dist/store/session-store.d.ts.map +1 -1
  550. package/dist/store/session-store.js +71 -13
  551. package/dist/store/session-store.js.map +1 -1
  552. package/dist/store/sqlite-data-accessor.d.ts.map +1 -1
  553. package/dist/store/sqlite-data-accessor.js +7 -0
  554. package/dist/store/sqlite-data-accessor.js.map +1 -1
  555. package/dist/store/umbrella-data-accessor.d.ts +1 -0
  556. package/dist/store/umbrella-data-accessor.d.ts.map +1 -1
  557. package/dist/store/umbrella-data-accessor.js +5 -0
  558. package/dist/store/umbrella-data-accessor.js.map +1 -1
  559. package/dist/store/validation-schemas.d.ts +36 -4
  560. package/dist/store/validation-schemas.d.ts.map +1 -1
  561. package/dist/store/writer-lease-schema.d.ts +392 -0
  562. package/dist/store/writer-lease-schema.d.ts.map +1 -0
  563. package/dist/store/writer-lease-schema.js +142 -0
  564. package/dist/store/writer-lease-schema.js.map +1 -0
  565. package/dist/store/writer-lease.d.ts +368 -0
  566. package/dist/store/writer-lease.d.ts.map +1 -0
  567. package/dist/store/writer-lease.js +1002 -0
  568. package/dist/store/writer-lease.js.map +1 -0
  569. package/dist/tasks/agent-lifecycle-lane.d.ts +175 -0
  570. package/dist/tasks/agent-lifecycle-lane.d.ts.map +1 -0
  571. package/dist/tasks/agent-lifecycle-lane.js +176 -0
  572. package/dist/tasks/agent-lifecycle-lane.js.map +1 -0
  573. package/dist/tasks/backfill-child-projections.d.ts.map +1 -1
  574. package/dist/tasks/backfill-child-projections.js +14 -9
  575. package/dist/tasks/backfill-child-projections.js.map +1 -1
  576. package/dist/tasks/complete.d.ts +17 -0
  577. package/dist/tasks/complete.d.ts.map +1 -1
  578. package/dist/tasks/complete.js +60 -20
  579. package/dist/tasks/complete.js.map +1 -1
  580. package/dist/tasks/depends-waiver-audit.d.ts +52 -0
  581. package/dist/tasks/depends-waiver-audit.d.ts.map +1 -0
  582. package/dist/tasks/depends-waiver-audit.js +36 -0
  583. package/dist/tasks/depends-waiver-audit.js.map +1 -0
  584. package/dist/tasks/duplicate-detector.d.ts.map +1 -1
  585. package/dist/tasks/duplicate-detector.js +14 -7
  586. package/dist/tasks/duplicate-detector.js.map +1 -1
  587. package/dist/tasks/engine-wrap.d.ts +36 -2
  588. package/dist/tasks/engine-wrap.d.ts.map +1 -1
  589. package/dist/tasks/engine-wrap.js +44 -2
  590. package/dist/tasks/engine-wrap.js.map +1 -1
  591. package/dist/tasks/index.d.ts +1 -0
  592. package/dist/tasks/index.d.ts.map +1 -1
  593. package/dist/tasks/index.js +1 -0
  594. package/dist/tasks/index.js.map +1 -1
  595. package/dist/tasks/ops.d.ts +3 -0
  596. package/dist/tasks/ops.d.ts.map +1 -1
  597. package/dist/tasks/task-ops.d.ts +1 -1
  598. package/dist/tasks/task-ops.d.ts.map +1 -1
  599. package/dist/tasks/task-ops.js +3 -1
  600. package/dist/tasks/task-ops.js.map +1 -1
  601. package/dist/tasks/task-reparent.d.ts +90 -0
  602. package/dist/tasks/task-reparent.d.ts.map +1 -1
  603. package/dist/tasks/task-reparent.js +171 -0
  604. package/dist/tasks/task-reparent.js.map +1 -1
  605. package/dist/telemetry/index.d.ts.map +1 -1
  606. package/dist/telemetry/index.js +10 -4
  607. package/dist/telemetry/index.js.map +1 -1
  608. package/dist/tools/agent-registry.d.ts +250 -0
  609. package/dist/tools/agent-registry.d.ts.map +1 -0
  610. package/dist/tools/agent-registry.js +292 -0
  611. package/dist/tools/agent-registry.js.map +1 -0
  612. package/dist/tools/agent-tool-families.d.ts +107 -0
  613. package/dist/tools/agent-tool-families.d.ts.map +1 -0
  614. package/dist/tools/agent-tool-families.js +527 -0
  615. package/dist/tools/agent-tool-families.js.map +1 -0
  616. package/dist/tools/browser-driver.d.ts +183 -0
  617. package/dist/tools/browser-driver.d.ts.map +1 -0
  618. package/dist/tools/browser-driver.js +242 -0
  619. package/dist/tools/browser-driver.js.map +1 -0
  620. package/dist/tools/builtin-agent-tools.d.ts +36 -0
  621. package/dist/tools/builtin-agent-tools.d.ts.map +1 -0
  622. package/dist/tools/builtin-agent-tools.js +191 -0
  623. package/dist/tools/builtin-agent-tools.js.map +1 -0
  624. package/dist/tools/dispatch.d.ts +370 -0
  625. package/dist/tools/dispatch.d.ts.map +1 -0
  626. package/dist/tools/dispatch.js +505 -0
  627. package/dist/tools/dispatch.js.map +1 -0
  628. package/dist/tools/env-scrub.d.ts +93 -0
  629. package/dist/tools/env-scrub.d.ts.map +1 -0
  630. package/dist/tools/env-scrub.js +176 -0
  631. package/dist/tools/env-scrub.js.map +1 -0
  632. package/dist/tools/exec-code-agent-tool.d.ts +179 -0
  633. package/dist/tools/exec-code-agent-tool.d.ts.map +1 -0
  634. package/dist/tools/exec-code-agent-tool.js +239 -0
  635. package/dist/tools/exec-code-agent-tool.js.map +1 -0
  636. package/dist/tools/fs.d.ts +30 -0
  637. package/dist/tools/fs.d.ts.map +1 -1
  638. package/dist/tools/fs.js +55 -2
  639. package/dist/tools/fs.js.map +1 -1
  640. package/dist/tools/guard.d.ts +15 -0
  641. package/dist/tools/guard.d.ts.map +1 -1
  642. package/dist/tools/guard.js +49 -12
  643. package/dist/tools/guard.js.map +1 -1
  644. package/dist/tools/index.d.ts +16 -0
  645. package/dist/tools/index.d.ts.map +1 -1
  646. package/dist/tools/index.js +52 -0
  647. package/dist/tools/index.js.map +1 -1
  648. package/dist/tools/mcp-agent-tool.d.ts +189 -0
  649. package/dist/tools/mcp-agent-tool.d.ts.map +1 -0
  650. package/dist/tools/mcp-agent-tool.js +243 -0
  651. package/dist/tools/mcp-agent-tool.js.map +1 -0
  652. package/dist/tools/media-agent-tools.d.ts +105 -0
  653. package/dist/tools/media-agent-tools.d.ts.map +1 -0
  654. package/dist/tools/media-agent-tools.js +255 -0
  655. package/dist/tools/media-agent-tools.js.map +1 -0
  656. package/dist/tools/memory-agent-tools.d.ts +99 -0
  657. package/dist/tools/memory-agent-tools.d.ts.map +1 -0
  658. package/dist/tools/memory-agent-tools.js +190 -0
  659. package/dist/tools/memory-agent-tools.js.map +1 -0
  660. package/dist/tools/pty.d.ts +45 -0
  661. package/dist/tools/pty.d.ts.map +1 -0
  662. package/dist/tools/pty.js +166 -0
  663. package/dist/tools/pty.js.map +1 -0
  664. package/dist/tools/schedule-agent-tools.d.ts +151 -0
  665. package/dist/tools/schedule-agent-tools.d.ts.map +1 -0
  666. package/dist/tools/schedule-agent-tools.js +238 -0
  667. package/dist/tools/schedule-agent-tools.js.map +1 -0
  668. package/dist/tools/schema-gen.d.ts +57 -0
  669. package/dist/tools/schema-gen.d.ts.map +1 -0
  670. package/dist/tools/schema-gen.js +52 -0
  671. package/dist/tools/schema-gen.js.map +1 -0
  672. package/dist/tools/shell.d.ts +12 -0
  673. package/dist/tools/shell.d.ts.map +1 -1
  674. package/dist/tools/shell.js +14 -1
  675. package/dist/tools/shell.js.map +1 -1
  676. package/dist/tools/skill-agent-tool.d.ts +108 -0
  677. package/dist/tools/skill-agent-tool.d.ts.map +1 -0
  678. package/dist/tools/skill-agent-tool.js +135 -0
  679. package/dist/tools/skill-agent-tool.js.map +1 -0
  680. package/dist/tools/web-agent-tools.d.ts +72 -0
  681. package/dist/tools/web-agent-tools.d.ts.map +1 -0
  682. package/dist/tools/web-agent-tools.js +393 -0
  683. package/dist/tools/web-agent-tools.js.map +1 -0
  684. package/dist/tools/web-search-backends.d.ts +156 -0
  685. package/dist/tools/web-search-backends.d.ts.map +1 -0
  686. package/dist/tools/web-search-backends.js +290 -0
  687. package/dist/tools/web-search-backends.js.map +1 -0
  688. package/dist/validation/engine-ops.d.ts.map +1 -1
  689. package/dist/validation/engine-ops.js +17 -1
  690. package/dist/validation/engine-ops.js.map +1 -1
  691. package/dist/validation/ops.d.ts +1 -15
  692. package/dist/validation/ops.d.ts.map +1 -1
  693. package/dist/validation/ops.js +0 -20
  694. package/dist/validation/ops.js.map +1 -1
  695. package/migrations/drizzle-brain/20260610000001_t10405-bitemporal-network-columns/migration.sql +71 -0
  696. package/migrations/drizzle-cleo-global/20260607000000_t11891-writer-leases/migration.sql +55 -0
  697. package/migrations/drizzle-cleo-global/20260607010000_t11639-session-manifest/migration.sql +43 -0
  698. package/migrations/drizzle-cleo-global/20260608000000_t11899-pi-session-tree/migration.sql +52 -0
  699. package/migrations/drizzle-cleo-global/20260608010000_t11709-accounts-credential-pool/migration.sql +72 -0
  700. package/migrations/drizzle-cleo-global/20260608020000_t11889-selfimprove-dhq/migration.sql +64 -0
  701. package/migrations/drizzle-cleo-global/20260609000000_t11937-service-vault/migration.sql +93 -0
  702. package/migrations/drizzle-cleo-global/20260609010000_t11733-models-catalog/migration.sql +65 -0
  703. package/migrations/drizzle-cleo-global/20260609020000_t11703-providers/migration.sql +52 -0
  704. package/migrations/drizzle-cleo-global/20260610000000_t11962-schedules/migration.sql +48 -0
  705. package/migrations/drizzle-cleo-project/20260607000000_t11891-writer-leases/migration.sql +55 -0
  706. package/migrations/drizzle-cleo-project/20260607010000_t11639-session-parent/migration.sql +22 -0
  707. package/migrations/drizzle-cleo-project/20260608000000_t11899-pi-session-tree/migration.sql +52 -0
  708. package/migrations/drizzle-cleo-project/20260608020000_t11889-selfimprove-dhq/migration.sql +64 -0
  709. package/migrations/drizzle-cleo-project/20260610000000_t11962-schedules/migration.sql +48 -0
  710. package/package.json +26 -14
  711. package/dist/lifecycle/chain-composition.d.ts +0 -30
  712. package/dist/lifecycle/chain-composition.d.ts.map +0 -1
  713. package/dist/lifecycle/chain-composition.js +0 -152
  714. package/dist/lifecycle/chain-composition.js.map +0 -1
  715. package/dist/lifecycle/chain-store.d.ts +0 -70
  716. package/dist/lifecycle/chain-store.d.ts.map +0 -1
  717. package/dist/lifecycle/chain-store.js +0 -246
  718. package/dist/lifecycle/chain-store.js.map +0 -1
  719. package/dist/lifecycle/default-chain.d.ts +0 -39
  720. package/dist/lifecycle/default-chain.d.ts.map +0 -1
  721. package/dist/lifecycle/default-chain.js +0 -176
  722. package/dist/lifecycle/default-chain.js.map +0 -1
  723. package/dist/lifecycle/tessera-engine.d.ts +0 -48
  724. package/dist/lifecycle/tessera-engine.d.ts.map +0 -1
  725. package/dist/lifecycle/tessera-engine.js +0 -249
  726. package/dist/lifecycle/tessera-engine.js.map +0 -1
  727. package/dist/validation/chain-validation.d.ts +0 -43
  728. package/dist/validation/chain-validation.d.ts.map +0 -1
  729. package/dist/validation/chain-validation.js +0 -146
  730. package/dist/validation/chain-validation.js.map +0 -1
@@ -0,0 +1,71 @@
1
+ -- T10405 (SG-PSYCHE-FOUNDATION · Tier 5): bitemporal `expired_at` + four-network `network`.
2
+ --
3
+ -- Completes the Graphiti 4-timestamp bitemporal model on the four BRAIN tables.
4
+ -- Prior schema shipped created_at + valid_at + invalid_at; this migration adds the
5
+ -- 4th timestamp `expired_at` (TRANSACTION-time end — when a row was retracted from
6
+ -- the active store, distinct from `invalid_at` = VALID-time end). It also adds the
7
+ -- four-network classification column `network` (world / bank / opinion / observation
8
+ -- per masterplan §16.D Mem0-V3 envelope). Both columns are declared in
9
+ -- memory-schema.ts; this file is their forward Drizzle DDL (T9179 precedent —
10
+ -- columns reach a fresh DB via Drizzle, never via the retired ensureColumns()).
11
+ --
12
+ -- Per-table `network` DEFAULT matches the row's cognitive role:
13
+ -- brain_decisions → 'bank' (durable account-of-record)
14
+ -- brain_patterns → 'world' (objective recurring behaviour)
15
+ -- brain_learnings → 'opinion' (evaluative belief, updates on evidence)
16
+ -- brain_observations → 'observation' (raw episodic event)
17
+ --
18
+ -- The enum is enforced in-app (no SQLite CHECK constraint — Lesson 3 convention).
19
+ -- All statements are ALTER TABLE ADD COLUMN / CREATE INDEX IF NOT EXISTS → atomic
20
+ -- + idempotent on SQLite 3.35+. The migration-manager reconciler marks this
21
+ -- migration applied-without-running when the columns already exist (consolidated
22
+ -- cleo.db path), or executes it directly on a standalone / fresh brain DB.
23
+ --
24
+ -- SAFE FOR: SQLite 3.35+ (ALTER TABLE ADD COLUMN is atomic)
25
+
26
+ ALTER TABLE brain_decisions ADD COLUMN expired_at TEXT;
27
+ --> statement-breakpoint
28
+ ALTER TABLE brain_decisions ADD COLUMN network TEXT DEFAULT 'bank';
29
+ --> statement-breakpoint
30
+ ALTER TABLE brain_patterns ADD COLUMN expired_at TEXT;
31
+ --> statement-breakpoint
32
+ ALTER TABLE brain_patterns ADD COLUMN network TEXT DEFAULT 'world';
33
+ --> statement-breakpoint
34
+ ALTER TABLE brain_learnings ADD COLUMN expired_at TEXT;
35
+ --> statement-breakpoint
36
+ ALTER TABLE brain_learnings ADD COLUMN network TEXT DEFAULT 'opinion';
37
+ --> statement-breakpoint
38
+ ALTER TABLE brain_observations ADD COLUMN expired_at TEXT;
39
+ --> statement-breakpoint
40
+ ALTER TABLE brain_observations ADD COLUMN network TEXT DEFAULT 'observation';
41
+ --> statement-breakpoint
42
+ CREATE INDEX IF NOT EXISTS idx_brain_decisions_expired_at
43
+ ON brain_decisions (expired_at);
44
+ --> statement-breakpoint
45
+ CREATE INDEX IF NOT EXISTS idx_brain_decisions_network
46
+ ON brain_decisions (network);
47
+ --> statement-breakpoint
48
+ CREATE INDEX IF NOT EXISTS idx_brain_patterns_expired_at
49
+ ON brain_patterns (expired_at);
50
+ --> statement-breakpoint
51
+ CREATE INDEX IF NOT EXISTS idx_brain_patterns_network
52
+ ON brain_patterns (network);
53
+ --> statement-breakpoint
54
+ CREATE INDEX IF NOT EXISTS idx_brain_learnings_expired_at
55
+ ON brain_learnings (expired_at);
56
+ --> statement-breakpoint
57
+ CREATE INDEX IF NOT EXISTS idx_brain_learnings_network
58
+ ON brain_learnings (network);
59
+ --> statement-breakpoint
60
+ CREATE INDEX IF NOT EXISTS idx_brain_observations_expired_at
61
+ ON brain_observations (expired_at);
62
+ --> statement-breakpoint
63
+ CREATE INDEX IF NOT EXISTS idx_brain_observations_network
64
+ ON brain_observations (network);
65
+ --> statement-breakpoint
66
+ -- T10405 (Tier 6): exponential-backoff gate on the derivation queue.
67
+ -- A re-queued item carries `next_attempt_at = now + base * 2^retryCount` so the
68
+ -- worker's claim query skips it until the backoff window elapses (no hot-loop on
69
+ -- a transiently-failing item). NULL = claimable now (default for new items).
70
+ ALTER TABLE deriver_queue ADD COLUMN next_attempt_at TEXT;
71
+
@@ -0,0 +1,55 @@
1
+ -- T11627 (ST-2) — DbWriterLease arbitration tables (local-mode, daemon-disabled).
2
+ --
3
+ -- Co-located inside EACH scope's consolidated cleo.db (this file is byte-identical
4
+ -- in drizzle-cleo-project and drizzle-cleo-global so the two lineages produce the
5
+ -- SAME migration hash — the consolidated single-file journal converges across both
6
+ -- under the CONSOLIDATED_JOURNAL_LINEAGES cross-lineage guard, T11829).
7
+ --
8
+ -- The lease engine (packages/core/src/store/writer-lease.ts) arbitrates a single
9
+ -- in-process writer per (scope, lane) via BEGIN IMMEDIATE + epoch-CAS over the
10
+ -- `_writer_leases` row, healing the T5158 multi-writer corruption WITHOUT a running
11
+ -- supervisor daemon.
12
+ --
13
+ -- AC1 (at most one active writer per scope/lane) is enforced by the PARTIAL UNIQUE
14
+ -- index `ux_writer_leases_active … WHERE active = 1`. drizzle-orm cannot model a
15
+ -- partial WHERE index, so it is emitted here as raw SQL (the established repo
16
+ -- pattern — cf. project_agent_refs.enabled in conduit-schema). The drizzle schema
17
+ -- (writer-lease-schema.ts) declares ONLY the full-column tables; the runtime
18
+ -- bootstrap asserts this index exists (assertWriterLeaseActiveIndexPresent).
19
+ --
20
+ -- Each statement is separated by a drizzle breakpoint marker line so node:sqlite
21
+ -- prepare() does not silently truncate the multi-statement file to statement one.
22
+ -- (The marker token is intentionally NOT spelled out in this comment: drizzle's
23
+ -- readMigrationFiles splits the file on that literal substring, so writing it here
24
+ -- would split the comment mid-line and corrupt statement one.)
25
+ --
26
+ -- @task T11627
27
+ -- @epic T11625
28
+
29
+ CREATE TABLE IF NOT EXISTS `_writer_leases` (
30
+ `id` INTEGER PRIMARY KEY,
31
+ `scope` TEXT NOT NULL,
32
+ `lane` TEXT NOT NULL,
33
+ `holder_id` TEXT NOT NULL,
34
+ `holder_pid` INTEGER NOT NULL,
35
+ `epoch` INTEGER NOT NULL,
36
+ `acquired_at` INTEGER NOT NULL,
37
+ `heartbeat_at` INTEGER NOT NULL,
38
+ `ttl_ms` INTEGER NOT NULL,
39
+ `reentrancy_depth` INTEGER NOT NULL DEFAULT 1,
40
+ `active` INTEGER NOT NULL DEFAULT 1
41
+ );
42
+ --> statement-breakpoint
43
+ CREATE UNIQUE INDEX IF NOT EXISTS `ux_writer_leases_active` ON `_writer_leases` (`scope`, `lane`) WHERE `active` = 1;
44
+ --> statement-breakpoint
45
+ CREATE TABLE IF NOT EXISTS `_writer_queue` (
46
+ `ticket` INTEGER PRIMARY KEY AUTOINCREMENT,
47
+ `scope` TEXT NOT NULL,
48
+ `lane` TEXT NOT NULL,
49
+ `holder_id` TEXT NOT NULL,
50
+ `priority` INTEGER NOT NULL DEFAULT 100,
51
+ `enqueued_at` INTEGER NOT NULL,
52
+ `deadline_at` INTEGER NOT NULL
53
+ );
54
+ --> statement-breakpoint
55
+ CREATE INDEX IF NOT EXISTS `ix_writer_queue_order` ON `_writer_queue` (`scope`, `lane`, `priority` ASC, `ticket` ASC);
@@ -0,0 +1,43 @@
1
+ -- T11639 (EP-SESSION-MANIFEST · epic T11638) — cross-project `session_manifest`
2
+ -- MIRROR table in the consolidated GLOBAL cleo.db (drizzle-cleo-global scope).
3
+ --
4
+ -- The authoritative session row lives per-project in `tasks_sessions` (PROJECT
5
+ -- scope). A best-effort writer mirrors a compact projection into this GLOBAL row so
6
+ -- the fleet has one machine-wide view of every session across every project without
7
+ -- ATTACHing N per-project DBs. NOT authoritative (deliberately NOT named `sessions`):
8
+ -- reconcile-on-start re-reads the project row and overwrites this row so it can never
9
+ -- drift into authority.
10
+ --
11
+ -- `project_id` is a soft FK → `nexus_project_registry.project_id` (same cleo.db),
12
+ -- nullable for sessions started outside any registered project. `parent_session_id`
13
+ -- is a soft self-reference (fork tree, sourced from CLEO_PARENT_SESSION_ID / T11629),
14
+ -- nullable for root sessions. No native FKs: the mirror must tolerate a project row
15
+ -- that lands before/without its registry/parent peer.
16
+ --
17
+ -- `IF NOT EXISTS` so a re-open over an already-migrated DB is a no-op. Each statement
18
+ -- is separated by a drizzle breakpoint marker so node:sqlite prepare() does not
19
+ -- truncate the multi-statement file to statement one.
20
+ --
21
+ -- @task T11639
22
+ -- @epic T11638
23
+
24
+ CREATE TABLE IF NOT EXISTS `session_manifest` (
25
+ `session_id` text PRIMARY KEY NOT NULL,
26
+ `project_id` text,
27
+ `parent_session_id` text,
28
+ `name` text,
29
+ `status` text,
30
+ `project_path` text,
31
+ `started_at` text,
32
+ `ended_at` text,
33
+ `mirrored_at` text NOT NULL DEFAULT (datetime('now')),
34
+ CHECK ("started_at" IS NULL OR "started_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*'),
35
+ CHECK ("ended_at" IS NULL OR "ended_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*'),
36
+ CHECK ("mirrored_at" IS NULL OR "mirrored_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*')
37
+ );
38
+ --> statement-breakpoint
39
+ CREATE INDEX IF NOT EXISTS `idx_session_manifest_project_id` ON `session_manifest` (`project_id`);
40
+ --> statement-breakpoint
41
+ CREATE INDEX IF NOT EXISTS `idx_session_manifest_parent` ON `session_manifest` (`parent_session_id`);
42
+ --> statement-breakpoint
43
+ CREATE INDEX IF NOT EXISTS `idx_session_manifest_status` ON `session_manifest` (`status`);
@@ -0,0 +1,52 @@
1
+ -- T11761 (S3 · T11899) — Pi `SessionStorage` tree-persistence tables.
2
+ --
3
+ -- Backs `CleoSessionStorage` (packages/core/src/llm/pi/pi-session-storage.ts):
4
+ -- the durable cleo.db implementation of Pi's tree-structured `SessionStorage`
5
+ -- interface (@earendil-works/pi-agent-core). Every Pi session is a tree of
6
+ -- `SessionTreeEntry` nodes (id / parentId / timestamp / type / payload) plus one
7
+ -- leaf pointer per session; this file is the physical home for both.
8
+ --
9
+ -- Pure runtime infrastructure (like `_writer_leases` from T11627) — NOT part of
10
+ -- the exodus target shape under `schema/cleo-project/`. Co-located inside EACH
11
+ -- scope's consolidated cleo.db via the existing drizzle-cleo-project /
12
+ -- drizzle-cleo-global migration sets; this file is byte-identical across both
13
+ -- lineages so the two produce the SAME migration hash (the consolidated
14
+ -- single-file journal converges across both under CONSOLIDATED_JOURNAL_LINEAGES,
15
+ -- T11829). The Pi adapter resolves PROJECT scope; the global copy keeps the two
16
+ -- lineages' DDL convergent (the lease-table precedent).
17
+ --
18
+ -- ALL writes go through the writer lease (withWriterLease('project', 'bulk', …),
19
+ -- writer-lease.ts:1067) — the adapter NEVER opens a raw writer (Gate 3). These
20
+ -- tables are written by the store accessor (pi-session-store.ts) over the native
21
+ -- handle openDualScopeDb already holds, inside the leased section.
22
+ --
23
+ -- Each statement is separated by a drizzle breakpoint marker line so node:sqlite
24
+ -- prepare() does not silently truncate the multi-statement file to statement one
25
+ -- (the marker token is intentionally not spelled out in this comment — drizzle's
26
+ -- readMigrationFiles splits the file on that literal substring).
27
+ --
28
+ -- @task T11899
29
+ -- @task T11761
30
+ -- @epic T10403
31
+
32
+ CREATE TABLE IF NOT EXISTS `pi_session_entries` (
33
+ `session_id` TEXT NOT NULL,
34
+ `entry_id` TEXT NOT NULL,
35
+ `parent_id` TEXT,
36
+ `type` TEXT NOT NULL,
37
+ `payload_json` TEXT NOT NULL,
38
+ `seq` INTEGER NOT NULL,
39
+ `ts` TEXT NOT NULL,
40
+ PRIMARY KEY (`session_id`, `entry_id`)
41
+ );
42
+ --> statement-breakpoint
43
+ CREATE INDEX IF NOT EXISTS `ix_pi_session_entries_seq` ON `pi_session_entries` (`session_id`, `seq` ASC);
44
+ --> statement-breakpoint
45
+ CREATE INDEX IF NOT EXISTS `ix_pi_session_entries_parent` ON `pi_session_entries` (`session_id`, `parent_id`);
46
+ --> statement-breakpoint
47
+ CREATE TABLE IF NOT EXISTS `pi_session_leaf` (
48
+ `session_id` TEXT PRIMARY KEY,
49
+ `leaf_id` TEXT,
50
+ `created_at` TEXT NOT NULL,
51
+ `updated_at` TEXT NOT NULL
52
+ );
@@ -0,0 +1,72 @@
1
+ -- T11709 (EP-PROVIDER-VAULT · epic T10410 · saga SG-VAULT-CORE T10409) — the
2
+ -- pooled-LLM-credential `accounts` table in the consolidated GLOBAL cleo.db
3
+ -- (drizzle-cleo-global scope ONLY — this is a cross-project, machine-wide
4
+ -- credential pool with no project-tier analog, so it is NOT mirrored into
5
+ -- drizzle-cleo-project).
6
+ --
7
+ -- One row per LLM credential ("account") for one provider: the encrypted
8
+ -- secret/refresh material plus rotation / cooldown / health metadata the pool
9
+ -- runner consults to select the next live account and retire dead ones. Replaces
10
+ -- the legacy plaintext JSON blob with a queryable, `cleo health`-visible table.
11
+ --
12
+ -- `secret_enc` / `refresh_enc` are encryptGlobal() ciphertext (T11710), NEVER
13
+ -- plaintext. This is DISTINCT from `agent_registry_accounts` (the better-auth
14
+ -- OAuth-account table) — different physical name, different purpose.
15
+ --
16
+ -- ## Active-account pointer (raw partial unique index)
17
+ --
18
+ -- `is_active` is the per-provider "currently-selected" pointer: AT MOST ONE row
19
+ -- per `provider` may carry `is_active = 1`. drizzle-orm cannot model a partial
20
+ -- `WHERE` unique index, so it is emitted here as raw SQL (the established repo
21
+ -- pattern — cf. `_writer_leases.active`, T11627 · `project_agent_refs.enabled`).
22
+ -- The drizzle schema (accounts.ts) declares only the full-column table plus the
23
+ -- non-partial `(provider, label)` unique index that drizzle CAN emit.
24
+ --
25
+ -- ## Page-2 invariant
26
+ --
27
+ -- This migration runs AFTER the consolidation baseline (…_t11363-consolidation-
28
+ -- cleo-global) which already creates dozens of tables, so `accounts` is NEVER the
29
+ -- first CREATE on a fresh DB — rootpage 2 is already owned by
30
+ -- `__drizzle_migrations` / the baseline tables. No journal pre-create is required.
31
+ --
32
+ -- `IF NOT EXISTS` so a re-open over an already-migrated DB is a no-op. Each
33
+ -- statement is separated by a drizzle breakpoint marker line so node:sqlite
34
+ -- prepare() does not silently truncate the multi-statement file to statement one
35
+ -- (the marker token is intentionally not spelled out in this comment — drizzle's
36
+ -- readMigrationFiles splits the file on that literal substring).
37
+ --
38
+ -- @task T11709
39
+ -- @epic T10410
40
+ -- @saga T10409
41
+
42
+ CREATE TABLE IF NOT EXISTS `accounts` (
43
+ `id` integer PRIMARY KEY NOT NULL,
44
+ `provider` text NOT NULL,
45
+ `label` text NOT NULL,
46
+ `auth_type` text NOT NULL,
47
+ `secret_enc` text,
48
+ `refresh_enc` text,
49
+ `expires_at` text,
50
+ `priority` integer NOT NULL DEFAULT 0,
51
+ `source` text,
52
+ `status` text NOT NULL DEFAULT 'ok',
53
+ `last_error_code` text,
54
+ `cooldown_reset_at` text,
55
+ `request_count` integer NOT NULL DEFAULT 0,
56
+ `metadata` text NOT NULL DEFAULT '{}',
57
+ `is_active` integer NOT NULL DEFAULT 0,
58
+ `created_at` text NOT NULL DEFAULT (datetime('now')),
59
+ `updated_at` text NOT NULL DEFAULT (datetime('now')),
60
+ CHECK ("status" IN ('ok', 'exhausted', 'dead')),
61
+ CHECK ("is_active" IN (0, 1)),
62
+ CHECK ("expires_at" IS NULL OR "expires_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*'),
63
+ CHECK ("cooldown_reset_at" IS NULL OR "cooldown_reset_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*'),
64
+ CHECK ("created_at" IS NULL OR "created_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*'),
65
+ CHECK ("updated_at" IS NULL OR "updated_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*')
66
+ );
67
+ --> statement-breakpoint
68
+ CREATE UNIQUE INDEX IF NOT EXISTS `ux_accounts_provider_label` ON `accounts` (`provider`, `label`);
69
+ --> statement-breakpoint
70
+ CREATE UNIQUE INDEX IF NOT EXISTS `ux_accounts_active_provider` ON `accounts` (`provider`) WHERE `is_active` = 1;
71
+ --> statement-breakpoint
72
+ CREATE INDEX IF NOT EXISTS `idx_accounts_provider_status_priority` ON `accounts` (`provider`, `status`, `priority`);
@@ -0,0 +1,64 @@
1
+ -- T11889 (T11889-A · T11911) — the self-improvement-loop DHQ sink (`selfimprove_dhq`).
2
+ --
3
+ -- One row per Dogfood-Harness-Question raised by `cleo selfimprove run`: the loop
4
+ -- replays a canned scenario, diffs the LAFS envelopes against a golden, and on
5
+ -- regression UPSERTs exactly ONE row here via the leased Gate-3 accessor
6
+ -- (selfimprove-dhq-store.ts). On green it writes nothing.
7
+ --
8
+ -- Co-located inside EACH scope's consolidated cleo.db (this file is byte-identical
9
+ -- in drizzle-cleo-project and drizzle-cleo-global so the two lineages produce the
10
+ -- SAME migration hash — the consolidated single-file journal converges across both
11
+ -- under the CONSOLIDATED_JOURNAL_LINEAGES cross-lineage guard, T11829). Pure runtime
12
+ -- infrastructure (like `_writer_leases` from T11627 and `pi_session_*` from T11899)
13
+ -- — NOT part of the exodus target shape under `schema/cleo-project/`.
14
+ --
15
+ -- ## Idempotency invariant (partial UNIQUE index)
16
+ --
17
+ -- At most ONE row per `question_hash` may carry `status = 'open'`, so a repeated
18
+ -- regression UPSERTs the same open row instead of spamming duplicates. drizzle-orm
19
+ -- cannot model a partial WHERE unique index, so it is emitted here as raw SQL (the
20
+ -- established repo pattern — cf. `_writer_leases.active`, T11627 ·
21
+ -- `project_agent_refs.enabled`). The drizzle schema (selfimprove-dhq-schema.ts)
22
+ -- declares ONLY the full-column table plus the two non-partial indexes drizzle CAN
23
+ -- emit; the runtime bootstrap asserts this partial index exists
24
+ -- (assertSelfimproveDhqOpenIndexPresent).
25
+ --
26
+ -- ## Page-2 invariant
27
+ --
28
+ -- This migration runs AFTER the consolidation baseline (…_t11363-consolidation-
29
+ -- cleo-project) which already creates dozens of tables, so `selfimprove_dhq` is
30
+ -- NEVER the first CREATE on a fresh DB — rootpage 2 is already owned by
31
+ -- `__drizzle_migrations` / the baseline tables. No journal pre-create is required
32
+ -- (the lease cold-open path pre-creates `__drizzle_migrations` before any first
33
+ -- table, so the precondition holds even on a freshly cold-opened DB).
34
+ --
35
+ -- `IF NOT EXISTS` so a re-open over an already-migrated DB is a no-op. Each
36
+ -- statement is separated by a drizzle breakpoint marker line so node:sqlite
37
+ -- prepare() does not silently truncate the multi-statement file to statement one
38
+ -- (the marker token is intentionally not spelled out in this comment — drizzle's
39
+ -- readMigrationFiles splits the file on that literal substring).
40
+ --
41
+ -- @task T11889
42
+ -- @task T11911
43
+ -- @epic T11889
44
+
45
+ CREATE TABLE IF NOT EXISTS `selfimprove_dhq` (
46
+ `id` INTEGER PRIMARY KEY,
47
+ `dhq_id` TEXT NOT NULL,
48
+ `scenario` TEXT NOT NULL,
49
+ `question_hash` TEXT NOT NULL,
50
+ `title` TEXT NOT NULL,
51
+ `regression_json` TEXT NOT NULL,
52
+ `status` TEXT NOT NULL DEFAULT 'open',
53
+ `severity` TEXT,
54
+ `pr_url` TEXT,
55
+ `run_id` TEXT NOT NULL,
56
+ `created_at` INTEGER NOT NULL,
57
+ `updated_at` INTEGER NOT NULL
58
+ );
59
+ --> statement-breakpoint
60
+ CREATE INDEX IF NOT EXISTS `ix_selfimprove_dhq_status` ON `selfimprove_dhq` (`status`);
61
+ --> statement-breakpoint
62
+ CREATE INDEX IF NOT EXISTS `ix_selfimprove_dhq_scenario` ON `selfimprove_dhq` (`scenario`);
63
+ --> statement-breakpoint
64
+ CREATE UNIQUE INDEX IF NOT EXISTS `ux_selfimprove_dhq_open` ON `selfimprove_dhq` (`question_hash`) WHERE `status` = 'open';
@@ -0,0 +1,93 @@
1
+ -- T11937 (EP-UNIVERSAL-SERVICE-VAULT · epic T11765 · saga SG-VAULT-CORE T10409 ·
2
+ -- M2 W1a) — the universal SERVICE-credential vault in the consolidated GLOBAL
3
+ -- cleo.db (drizzle-cleo-global scope ONLY — machine-wide service credentials with
4
+ -- no project-tier analog, exactly like the `accounts` LLM-credential pool T11709,
5
+ -- so NOT mirrored into drizzle-cleo-project).
6
+ --
7
+ -- Three tables, cannibalized from onecli `app_connections` / `app_configs` /
8
+ -- `agent_app_connections` with EVERY org/project/billing column dropped:
9
+ --
10
+ -- service_connections — one connected credential per (provider, label);
11
+ -- credentials_enc = encryptGlobal({access,refresh}) blob.
12
+ -- service_configs — per-provider BYOC OAuth app (enabled + client_secret_enc).
13
+ -- agent_service_grants — per-agent access + session_policy (the trust gate
14
+ -- evaluates this BEFORE any decrypt).
15
+ --
16
+ -- `credentials_enc` / `client_secret_enc` are encryptGlobal() ciphertext (T11710),
17
+ -- NEVER plaintext. These are DISTINCT from the LLM `accounts` table (model-API
18
+ -- credentials) — different physical names, different consumers, shared crypto.
19
+ --
20
+ -- ## Page-2 invariant
21
+ --
22
+ -- This migration runs AFTER the consolidation baseline (…_t11363-consolidation-
23
+ -- cleo-global) which already creates dozens of tables, so none of these tables is
24
+ -- the first CREATE on a fresh DB — rootpage 2 is already owned by
25
+ -- `__drizzle_migrations` / the baseline tables. No journal pre-create is required.
26
+ --
27
+ -- ## Idempotency + breakpoints
28
+ --
29
+ -- `IF NOT EXISTS` on every statement so a re-open over an already-migrated DB is a
30
+ -- no-op. Each statement is separated by a drizzle breakpoint marker line so
31
+ -- node:sqlite prepare() does not silently truncate the multi-statement file to
32
+ -- statement one (the marker token is the literal drizzle readMigrationFiles split
33
+ -- substring — additive/forward-only).
34
+ --
35
+ -- ## CHECK constraints (schema-parity SSoT — T11364)
36
+ --
37
+ -- The consolidated schema-parity gate re-derives the CHECK set from the drizzle
38
+ -- schema metadata (boolean → IN (0,1); enum → IN (...); `_at` TEXT → ISO-8601
39
+ -- GLOB). The CHECKs below MUST match that derivation byte-for-byte.
40
+ --
41
+ -- @task T11937
42
+ -- @epic T11765
43
+ -- @saga T10409
44
+
45
+ CREATE TABLE IF NOT EXISTS `service_connections` (
46
+ `id` integer PRIMARY KEY NOT NULL,
47
+ `provider` text NOT NULL,
48
+ `label` text NOT NULL,
49
+ `status` text NOT NULL DEFAULT 'active',
50
+ `credentials_enc` text,
51
+ `scopes` text NOT NULL DEFAULT '[]',
52
+ `expires_at` text,
53
+ `metadata` text NOT NULL DEFAULT '{}',
54
+ `connected_at` text NOT NULL DEFAULT (datetime('now')),
55
+ `updated_at` text NOT NULL DEFAULT (datetime('now')),
56
+ CHECK ("status" IN ('active', 'expired', 'revoked')),
57
+ CHECK ("expires_at" IS NULL OR "expires_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*'),
58
+ CHECK ("connected_at" IS NULL OR "connected_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*'),
59
+ CHECK ("updated_at" IS NULL OR "updated_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*')
60
+ );
61
+ --> statement-breakpoint
62
+ CREATE UNIQUE INDEX IF NOT EXISTS `ux_service_connections_provider_label` ON `service_connections` (`provider`, `label`);
63
+ --> statement-breakpoint
64
+ CREATE INDEX IF NOT EXISTS `idx_service_connections_provider_status` ON `service_connections` (`provider`, `status`);
65
+ --> statement-breakpoint
66
+ CREATE TABLE IF NOT EXISTS `service_configs` (
67
+ `id` integer PRIMARY KEY NOT NULL,
68
+ `provider` text NOT NULL,
69
+ `enabled` integer NOT NULL DEFAULT 0,
70
+ `client_secret_enc` text,
71
+ `settings` text NOT NULL DEFAULT '{}',
72
+ `created_at` text NOT NULL DEFAULT (datetime('now')),
73
+ `updated_at` text NOT NULL DEFAULT (datetime('now')),
74
+ CHECK ("enabled" IN (0, 1)),
75
+ CHECK ("created_at" IS NULL OR "created_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*'),
76
+ CHECK ("updated_at" IS NULL OR "updated_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*')
77
+ );
78
+ --> statement-breakpoint
79
+ CREATE UNIQUE INDEX IF NOT EXISTS `ux_service_configs_provider` ON `service_configs` (`provider`);
80
+ --> statement-breakpoint
81
+ CREATE TABLE IF NOT EXISTS `agent_service_grants` (
82
+ `agent_id` text NOT NULL,
83
+ `service_connection_id` integer NOT NULL,
84
+ `session_policy` text NOT NULL DEFAULT '{"mode":"allow"}',
85
+ `created_at` text NOT NULL DEFAULT (datetime('now')),
86
+ `updated_at` text NOT NULL DEFAULT (datetime('now')),
87
+ PRIMARY KEY (`agent_id`, `service_connection_id`),
88
+ FOREIGN KEY (`service_connection_id`) REFERENCES `service_connections`(`id`),
89
+ CHECK ("created_at" IS NULL OR "created_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*'),
90
+ CHECK ("updated_at" IS NULL OR "updated_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*')
91
+ );
92
+ --> statement-breakpoint
93
+ CREATE INDEX IF NOT EXISTS `idx_agent_service_grants_agent` ON `agent_service_grants` (`agent_id`);
@@ -0,0 +1,65 @@
1
+ -- T11733 (E8-CATALOG-CURATION · epic T11694) — the `models_catalog` catalog SSoT
2
+ -- table in the consolidated GLOBAL cleo.db (drizzle-cleo-global scope ONLY — the
3
+ -- provider+model capability catalog is a cross-project, machine-wide signal with
4
+ -- no project-tier analog, so it is NOT mirrored into drizzle-cleo-project).
5
+ --
6
+ -- One row per model: the full models.dev wire capability set (modalities, cost,
7
+ -- limits, reasoning/tool-call flags, status, release_date). This table is the
8
+ -- catalog SSoT — seeded from the shipped offline `curated-catalog.json` (T11734),
9
+ -- read table-first via resolveCatalogEntry() (T11737), and consulted by the
10
+ -- resolver default (latest release_date wins — T11944), killing the hardcoded
11
+ -- `claude-haiku-4-5` default literal (which survives only as the offline floor).
12
+ --
13
+ -- This carries NO secrets and NO encryption — it is catalog DATA, distinct from
14
+ -- the `accounts` LLM-credential pool (T11709) and the `service_*` vault (T11937).
15
+ --
16
+ -- ## Page-2 invariant
17
+ --
18
+ -- This migration runs AFTER the consolidation baseline (…_t11363-consolidation-
19
+ -- cleo-global) and many subsequent migrations, so `models_catalog` is NEVER the
20
+ -- first CREATE on a fresh DB — rootpage 2 is already owned by
21
+ -- `__drizzle_migrations` / the baseline tables. No journal pre-create is required.
22
+ --
23
+ -- `IF NOT EXISTS` so a re-open over an already-migrated DB is a no-op (idempotent).
24
+ -- Each statement is separated by a drizzle breakpoint marker line so node:sqlite
25
+ -- prepare() does not silently truncate the multi-statement file to statement one
26
+ -- (the marker token is intentionally not spelled out in this comment — drizzle's
27
+ -- readMigrationFiles splits the file on that literal substring).
28
+ --
29
+ -- @task T11733
30
+ -- @epic T11694
31
+
32
+ CREATE TABLE IF NOT EXISTS `models_catalog` (
33
+ `id` text PRIMARY KEY NOT NULL,
34
+ `provider_id` text NOT NULL,
35
+ `name` text NOT NULL,
36
+ `family` text NOT NULL,
37
+ `attachment` integer NOT NULL DEFAULT 0,
38
+ `reasoning` integer NOT NULL DEFAULT 0,
39
+ `temperature` integer NOT NULL DEFAULT 1,
40
+ `interleaved` integer NOT NULL DEFAULT 0,
41
+ `tool_call` integer NOT NULL DEFAULT 0,
42
+ `modalities` text NOT NULL DEFAULT '{"input":["text"],"output":["text"]}',
43
+ `cost` text NOT NULL DEFAULT '{}',
44
+ `context_limit` integer,
45
+ `output_limit` integer,
46
+ `status` text NOT NULL DEFAULT 'stable',
47
+ `release_date` text NOT NULL,
48
+ `models_dev_id` text NOT NULL,
49
+ `source` text NOT NULL DEFAULT 'seed',
50
+ `seeded_at` text NOT NULL DEFAULT (datetime('now')),
51
+ CHECK ("status" IN ('stable', 'beta', 'preview', 'deprecated', 'retired')),
52
+ CHECK ("attachment" IN (0, 1)),
53
+ CHECK ("reasoning" IN (0, 1)),
54
+ CHECK ("temperature" IN (0, 1)),
55
+ CHECK ("interleaved" IN (0, 1)),
56
+ CHECK ("tool_call" IN (0, 1)),
57
+ CHECK ("release_date" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]'),
58
+ CHECK ("seeded_at" IS NULL OR "seeded_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*')
59
+ );
60
+ --> statement-breakpoint
61
+ CREATE UNIQUE INDEX IF NOT EXISTS `ux_models_catalog_provider_modeldev` ON `models_catalog` (`provider_id`, `models_dev_id`);
62
+ --> statement-breakpoint
63
+ CREATE INDEX IF NOT EXISTS `idx_models_catalog_provider_release` ON `models_catalog` (`provider_id`, `release_date`);
64
+ --> statement-breakpoint
65
+ CREATE INDEX IF NOT EXISTS `idx_models_catalog_provider_status` ON `models_catalog` (`provider_id`, `status`);
@@ -0,0 +1,52 @@
1
+ -- T11703 (M3 Provider SSoT · epic T11667) — the `providers` declarative-provider
2
+ -- SSoT table in the consolidated GLOBAL cleo.db (drizzle-cleo-global scope ONLY —
3
+ -- the provider definition set is a cross-project, machine-wide signal with no
4
+ -- project-tier analog, so it is NOT mirrored into drizzle-cleo-project).
5
+ --
6
+ -- One row per provider: the serializable ProviderDef (T11702) — identity, aliases,
7
+ -- auth methods, wire endpoint(s) (tagged-union JSON discriminated on `transport`),
8
+ -- models.dev catalog key, default headers, optional OAuth flow, declarative request
9
+ -- quirks. This table is the provider SSoT — seeded from the builtin ProviderDef set
10
+ -- derived from the in-process ProviderProfile builtins (T11703), and read by the
11
+ -- resolver / CLI / alias resolver (T11704). The non-serializable runtime hooks stay
12
+ -- on ProviderProfile; a row carries only DATA.
13
+ --
14
+ -- This carries NO secrets and NO encryption — it is declarative config DATA, distinct
15
+ -- from the `accounts` LLM-credential pool (T11709), the `service_*` vault (T11937),
16
+ -- and the `models_catalog` catalog (T11733). The OAuth `client_id` it stores is the
17
+ -- provider's PUBLIC first-party id; client SECRETS live in the service vault.
18
+ --
19
+ -- ## Page-2 invariant
20
+ --
21
+ -- This migration runs AFTER the consolidation baseline (…_t11363-consolidation-
22
+ -- cleo-global) and many subsequent migrations, so `providers` is NEVER the first
23
+ -- CREATE on a fresh DB — rootpage 2 is already owned by `__drizzle_migrations` /
24
+ -- the baseline tables. No journal pre-create is required.
25
+ --
26
+ -- `IF NOT EXISTS` so a re-open over an already-migrated DB is a no-op (idempotent).
27
+ -- Each statement is separated by a drizzle breakpoint marker line so node:sqlite
28
+ -- prepare() does not silently truncate the multi-statement file to statement one
29
+ -- (the marker token is intentionally not spelled out in this comment — drizzle's
30
+ -- readMigrationFiles splits the file on that literal substring).
31
+ --
32
+ -- @task T11703
33
+ -- @epic T11667
34
+
35
+ CREATE TABLE IF NOT EXISTS `providers` (
36
+ `id` text PRIMARY KEY NOT NULL,
37
+ `display_name` text NOT NULL,
38
+ `aliases` text NOT NULL DEFAULT '[]',
39
+ `auth_methods` text NOT NULL DEFAULT '[]',
40
+ `endpoint` text NOT NULL,
41
+ `alt_endpoints` text NOT NULL DEFAULT '[]',
42
+ `models_dev_id` text NOT NULL,
43
+ `default_headers` text NOT NULL DEFAULT '{}',
44
+ `env_vars` text NOT NULL DEFAULT '[]',
45
+ `oauth` text,
46
+ `request_quirks` text NOT NULL DEFAULT '[]',
47
+ `source` text NOT NULL DEFAULT 'seed',
48
+ `seeded_at` text NOT NULL DEFAULT (datetime('now')),
49
+ CHECK ("seeded_at" IS NULL OR "seeded_at" GLOB '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]*')
50
+ );
51
+ --> statement-breakpoint
52
+ CREATE INDEX IF NOT EXISTS `idx_providers_models_dev` ON `providers` (`models_dev_id`);
@@ -0,0 +1,48 @@
1
+ -- T11962 (under T11679) — the cron/todo schedule sink (`schedules`).
2
+ --
3
+ -- One row per recurring schedule registered by the `cron_schedule` agent tool
4
+ -- (T11950): a cron expression + the task template (title / description)
5
+ -- materialized on each fire, an `enabled` flag, and create/update timestamps. The
6
+ -- tool registers a row daemon-OFF via the leased Gate-3 accessor
7
+ -- (schedule-store.ts); a future daemon scheduler consumes the SAME table as a
8
+ -- separate reader (AC4).
9
+ --
10
+ -- Co-located inside EACH scope's consolidated cleo.db (this file is byte-identical
11
+ -- in drizzle-cleo-project and drizzle-cleo-global so the two lineages produce the
12
+ -- SAME migration hash — the consolidated single-file journal converges across both
13
+ -- under the CONSOLIDATED_JOURNAL_LINEAGES cross-lineage guard, T11829). Pure
14
+ -- runtime infrastructure (like `_writer_leases` from T11627, `pi_session_*` from
15
+ -- T11899, and `selfimprove_dhq` from T11911) — NOT part of the exodus target shape
16
+ -- under `schema/cleo-project/`, so the consolidated schema-parity gate (T11364)
17
+ -- does not re-derive its CHECK set.
18
+ --
19
+ -- ## Page-2 invariant
20
+ --
21
+ -- This migration runs AFTER the consolidation baseline (…_t11363-consolidation-
22
+ -- cleo-project) which already creates dozens of tables, so `schedules` is NEVER
23
+ -- the first CREATE on a fresh DB — rootpage 2 is already owned by
24
+ -- `__drizzle_migrations` / the baseline tables.
25
+ --
26
+ -- `IF NOT EXISTS` so a re-open over an already-migrated DB is a no-op. Each
27
+ -- statement is separated by a drizzle breakpoint marker line so node:sqlite
28
+ -- prepare() does not silently truncate the multi-statement file to statement one
29
+ -- (the marker token is intentionally not spelled out in this comment — drizzle's
30
+ -- readMigrationFiles splits the file on that literal substring).
31
+ --
32
+ -- @task T11962
33
+ -- @epic T11679
34
+
35
+ CREATE TABLE IF NOT EXISTS `schedules` (
36
+ `id` INTEGER PRIMARY KEY,
37
+ `schedule_id` TEXT NOT NULL,
38
+ `cron_expr` TEXT NOT NULL,
39
+ `title` TEXT NOT NULL,
40
+ `description` TEXT,
41
+ `enabled` INTEGER NOT NULL DEFAULT 1 CHECK (`enabled` IN (0, 1)),
42
+ `created_at` TEXT NOT NULL DEFAULT (datetime('now')),
43
+ `updated_at` TEXT NOT NULL DEFAULT (datetime('now'))
44
+ );
45
+ --> statement-breakpoint
46
+ CREATE UNIQUE INDEX IF NOT EXISTS `ux_schedules_schedule_id` ON `schedules` (`schedule_id`);
47
+ --> statement-breakpoint
48
+ CREATE INDEX IF NOT EXISTS `ix_schedules_enabled` ON `schedules` (`enabled`);