@cleocode/core 2026.6.13 → 2026.6.15

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 (485) 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 +183 -0
  8. package/dist/check/pr-gate.d.ts.map +1 -0
  9. package/dist/check/pr-gate.js +348 -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-tui-adapter.d.ts +89 -0
  20. package/dist/conduit/local-tui-adapter.d.ts.map +1 -0
  21. package/dist/conduit/local-tui-adapter.js +225 -0
  22. package/dist/conduit/local-tui-adapter.js.map +1 -0
  23. package/dist/config/config-repair.d.ts +70 -0
  24. package/dist/config/config-repair.d.ts.map +1 -0
  25. package/dist/config/config-repair.js +248 -0
  26. package/dist/config/config-repair.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 +92 -0
  30. package/dist/config/registry.js.map +1 -1
  31. package/dist/config.d.ts.map +1 -1
  32. package/dist/config.js +11 -10
  33. package/dist/config.js.map +1 -1
  34. package/dist/deriver/queue-manager.d.ts +30 -2
  35. package/dist/deriver/queue-manager.d.ts.map +1 -1
  36. package/dist/deriver/queue-manager.js +54 -9
  37. package/dist/deriver/queue-manager.js.map +1 -1
  38. package/dist/dispatch/config-domain-handler.d.ts +125 -0
  39. package/dist/dispatch/config-domain-handler.d.ts.map +1 -0
  40. package/dist/dispatch/config-domain-handler.js +160 -0
  41. package/dist/dispatch/config-domain-handler.js.map +1 -0
  42. package/dist/dispatch/contracts/input-contracts.d.ts.map +1 -1
  43. package/dist/dispatch/contracts/input-contracts.js +19 -1
  44. package/dist/dispatch/contracts/input-contracts.js.map +1 -1
  45. package/dist/docs/export-document.js +3721 -696
  46. package/dist/docs/export-document.js.map +3 -3
  47. package/dist/gateway-client/client.d.ts +123 -0
  48. package/dist/gateway-client/client.d.ts.map +1 -0
  49. package/dist/gateway-client/client.js +93 -0
  50. package/dist/gateway-client/client.js.map +1 -0
  51. package/dist/gateway-client/generated/client/client.gen.d.ts +3 -0
  52. package/dist/gateway-client/generated/client/client.gen.d.ts.map +1 -0
  53. package/dist/gateway-client/generated/client/client.gen.js +217 -0
  54. package/dist/gateway-client/generated/client/client.gen.js.map +1 -0
  55. package/dist/gateway-client/generated/client/index.d.ts +11 -0
  56. package/dist/gateway-client/generated/client/index.d.ts.map +1 -0
  57. package/dist/gateway-client/generated/client/index.js +7 -0
  58. package/dist/gateway-client/generated/client/index.js.map +1 -0
  59. package/dist/gateway-client/generated/client/types.gen.d.ts +121 -0
  60. package/dist/gateway-client/generated/client/types.gen.d.ts.map +1 -0
  61. package/dist/gateway-client/generated/client/types.gen.js +3 -0
  62. package/dist/gateway-client/generated/client/types.gen.js.map +1 -0
  63. package/dist/gateway-client/generated/client/utils.gen.d.ts +38 -0
  64. package/dist/gateway-client/generated/client/utils.gen.d.ts.map +1 -0
  65. package/dist/gateway-client/generated/client/utils.gen.js +229 -0
  66. package/dist/gateway-client/generated/client/utils.gen.js.map +1 -0
  67. package/dist/gateway-client/generated/client.gen.d.ts +13 -0
  68. package/dist/gateway-client/generated/client.gen.d.ts.map +1 -0
  69. package/dist/gateway-client/generated/client.gen.js +4 -0
  70. package/dist/gateway-client/generated/client.gen.js.map +1 -0
  71. package/dist/gateway-client/generated/core/auth.gen.d.ts +26 -0
  72. package/dist/gateway-client/generated/core/auth.gen.d.ts.map +1 -0
  73. package/dist/gateway-client/generated/core/auth.gen.js +15 -0
  74. package/dist/gateway-client/generated/core/auth.gen.js.map +1 -0
  75. package/dist/gateway-client/generated/core/bodySerializer.gen.d.ts +26 -0
  76. package/dist/gateway-client/generated/core/bodySerializer.gen.d.ts.map +1 -0
  77. package/dist/gateway-client/generated/core/bodySerializer.gen.js +58 -0
  78. package/dist/gateway-client/generated/core/bodySerializer.gen.js.map +1 -0
  79. package/dist/gateway-client/generated/core/params.gen.d.ts +44 -0
  80. package/dist/gateway-client/generated/core/params.gen.d.ts.map +1 -0
  81. package/dist/gateway-client/generated/core/params.gen.js +101 -0
  82. package/dist/gateway-client/generated/core/params.gen.js.map +1 -0
  83. package/dist/gateway-client/generated/core/pathSerializer.gen.d.ts +34 -0
  84. package/dist/gateway-client/generated/core/pathSerializer.gen.d.ts.map +1 -0
  85. package/dist/gateway-client/generated/core/pathSerializer.gen.js +107 -0
  86. package/dist/gateway-client/generated/core/pathSerializer.gen.js.map +1 -0
  87. package/dist/gateway-client/generated/core/queryKeySerializer.gen.d.ts +19 -0
  88. package/dist/gateway-client/generated/core/queryKeySerializer.gen.d.ts.map +1 -0
  89. package/dist/gateway-client/generated/core/queryKeySerializer.gen.js +93 -0
  90. package/dist/gateway-client/generated/core/queryKeySerializer.gen.js.map +1 -0
  91. package/dist/gateway-client/generated/core/serverSentEvents.gen.d.ts +72 -0
  92. package/dist/gateway-client/generated/core/serverSentEvents.gen.d.ts.map +1 -0
  93. package/dist/gateway-client/generated/core/serverSentEvents.gen.js +133 -0
  94. package/dist/gateway-client/generated/core/serverSentEvents.gen.js.map +1 -0
  95. package/dist/gateway-client/generated/core/types.gen.d.ts +84 -0
  96. package/dist/gateway-client/generated/core/types.gen.d.ts.map +1 -0
  97. package/dist/gateway-client/generated/core/types.gen.js +3 -0
  98. package/dist/gateway-client/generated/core/types.gen.js.map +1 -0
  99. package/dist/gateway-client/generated/core/utils.gen.d.ts +20 -0
  100. package/dist/gateway-client/generated/core/utils.gen.d.ts.map +1 -0
  101. package/dist/gateway-client/generated/core/utils.gen.js +88 -0
  102. package/dist/gateway-client/generated/core/utils.gen.js.map +1 -0
  103. package/dist/gateway-client/generated/index.d.ts +3 -0
  104. package/dist/gateway-client/generated/index.d.ts.map +1 -0
  105. package/dist/gateway-client/generated/index.js +3 -0
  106. package/dist/gateway-client/generated/index.js.map +1 -0
  107. package/dist/gateway-client/generated/namespaces.gen.d.ts +512 -0
  108. package/dist/gateway-client/generated/namespaces.gen.d.ts.map +1 -0
  109. package/dist/gateway-client/generated/namespaces.gen.js +521 -0
  110. package/dist/gateway-client/generated/namespaces.gen.js.map +1 -0
  111. package/dist/gateway-client/generated/sdk.gen.d.ts +1780 -0
  112. package/dist/gateway-client/generated/sdk.gen.d.ts.map +1 -0
  113. package/dist/gateway-client/generated/sdk.gen.js +3811 -0
  114. package/dist/gateway-client/generated/sdk.gen.js.map +1 -0
  115. package/dist/gateway-client/generated/types.gen.d.ts +14681 -0
  116. package/dist/gateway-client/generated/types.gen.d.ts.map +1 -0
  117. package/dist/gateway-client/generated/types.gen.js +3 -0
  118. package/dist/gateway-client/generated/types.gen.js.map +1 -0
  119. package/dist/gateway-client/index.d.ts +27 -0
  120. package/dist/gateway-client/index.d.ts.map +1 -0
  121. package/dist/gateway-client/index.js +25 -0
  122. package/dist/gateway-client/index.js.map +1 -0
  123. package/dist/gc/cleanup.d.ts +23 -8
  124. package/dist/gc/cleanup.d.ts.map +1 -1
  125. package/dist/gc/cleanup.js +287 -22
  126. package/dist/gc/cleanup.js.map +1 -1
  127. package/dist/index.d.ts +10 -0
  128. package/dist/index.d.ts.map +1 -1
  129. package/dist/index.js +20 -0
  130. package/dist/index.js.map +1 -1
  131. package/dist/init.d.ts.map +1 -1
  132. package/dist/init.js +28 -0
  133. package/dist/init.js.map +1 -1
  134. package/dist/internal.d.ts +10 -1
  135. package/dist/internal.d.ts.map +1 -1
  136. package/dist/internal.js +18 -1
  137. package/dist/internal.js.map +1 -1
  138. package/dist/llm/catalog-model-resolver.d.ts +19 -0
  139. package/dist/llm/catalog-model-resolver.d.ts.map +1 -1
  140. package/dist/llm/catalog-model-resolver.js +36 -0
  141. package/dist/llm/catalog-model-resolver.js.map +1 -1
  142. package/dist/llm/catalog-resolver.d.ts +112 -0
  143. package/dist/llm/catalog-resolver.d.ts.map +1 -0
  144. package/dist/llm/catalog-resolver.js +207 -0
  145. package/dist/llm/catalog-resolver.js.map +1 -0
  146. package/dist/llm/catalog-seeder.d.ts +96 -0
  147. package/dist/llm/catalog-seeder.d.ts.map +1 -0
  148. package/dist/llm/catalog-seeder.js +189 -0
  149. package/dist/llm/catalog-seeder.js.map +1 -0
  150. package/dist/llm/cli-ops.d.ts +16 -0
  151. package/dist/llm/cli-ops.d.ts.map +1 -1
  152. package/dist/llm/cli-ops.js +37 -10
  153. package/dist/llm/cli-ops.js.map +1 -1
  154. package/dist/llm/complexity-classifier.d.ts +208 -0
  155. package/dist/llm/complexity-classifier.d.ts.map +1 -0
  156. package/dist/llm/complexity-classifier.js +359 -0
  157. package/dist/llm/complexity-classifier.js.map +1 -0
  158. package/dist/llm/credential-pool.d.ts +2 -0
  159. package/dist/llm/credential-pool.d.ts.map +1 -1
  160. package/dist/llm/credential-pool.js +5 -2
  161. package/dist/llm/credential-pool.js.map +1 -1
  162. package/dist/llm/credentials-store.d.ts +10 -14
  163. package/dist/llm/credentials-store.d.ts.map +1 -1
  164. package/dist/llm/credentials-store.js.map +1 -1
  165. package/dist/llm/cross-provider-selector.d.ts +249 -0
  166. package/dist/llm/cross-provider-selector.d.ts.map +1 -0
  167. package/dist/llm/cross-provider-selector.js +572 -0
  168. package/dist/llm/cross-provider-selector.js.map +1 -0
  169. package/dist/llm/entity-ops.d.ts +299 -0
  170. package/dist/llm/entity-ops.d.ts.map +1 -0
  171. package/dist/llm/entity-ops.js +441 -0
  172. package/dist/llm/entity-ops.js.map +1 -0
  173. package/dist/llm/index.d.ts +17 -0
  174. package/dist/llm/index.d.ts.map +1 -1
  175. package/dist/llm/index.js +9 -0
  176. package/dist/llm/index.js.map +1 -1
  177. package/dist/llm/llm-queue-admit.d.ts +118 -0
  178. package/dist/llm/llm-queue-admit.d.ts.map +1 -0
  179. package/dist/llm/llm-queue-admit.js +275 -0
  180. package/dist/llm/llm-queue-admit.js.map +1 -0
  181. package/dist/llm/local-model-fit.d.ts +260 -0
  182. package/dist/llm/local-model-fit.d.ts.map +1 -0
  183. package/dist/llm/local-model-fit.js +563 -0
  184. package/dist/llm/local-model-fit.js.map +1 -0
  185. package/dist/llm/oauth/device-code.d.ts.map +1 -1
  186. package/dist/llm/oauth/device-code.js +2 -8
  187. package/dist/llm/oauth/device-code.js.map +1 -1
  188. package/dist/llm/oauth/google-pkce.d.ts.map +1 -1
  189. package/dist/llm/oauth/google-pkce.js +2 -18
  190. package/dist/llm/oauth/google-pkce.js.map +1 -1
  191. package/dist/llm/oauth/pkce.d.ts +70 -0
  192. package/dist/llm/oauth/pkce.d.ts.map +1 -1
  193. package/dist/llm/oauth/pkce.js +106 -29
  194. package/dist/llm/oauth/pkce.js.map +1 -1
  195. package/dist/llm/onboarding/front-door.d.ts +146 -0
  196. package/dist/llm/onboarding/front-door.d.ts.map +1 -0
  197. package/dist/llm/onboarding/front-door.js +153 -0
  198. package/dist/llm/onboarding/front-door.js.map +1 -0
  199. package/dist/llm/onboarding/login-engine.d.ts +175 -0
  200. package/dist/llm/onboarding/login-engine.d.ts.map +1 -0
  201. package/dist/llm/onboarding/login-engine.js +286 -0
  202. package/dist/llm/onboarding/login-engine.js.map +1 -0
  203. package/dist/llm/pi/pi-gondolin-env.d.ts +23 -0
  204. package/dist/llm/pi/pi-gondolin-env.d.ts.map +1 -1
  205. package/dist/llm/pi/pi-gondolin-env.js +2 -2
  206. package/dist/llm/pi/pi-gondolin-env.js.map +1 -1
  207. package/dist/llm/plugin-facade.js +4612 -1042
  208. package/dist/llm/plugin-facade.js.map +3 -3
  209. package/dist/llm/provider-registry/builtin/anthropic.d.ts.map +1 -1
  210. package/dist/llm/provider-registry/builtin/anthropic.js +23 -10
  211. package/dist/llm/provider-registry/builtin/anthropic.js.map +1 -1
  212. package/dist/llm/provider-registry/builtin/ollama.d.ts +18 -0
  213. package/dist/llm/provider-registry/builtin/ollama.d.ts.map +1 -1
  214. package/dist/llm/provider-registry/builtin/ollama.js +20 -2
  215. package/dist/llm/provider-registry/builtin/ollama.js.map +1 -1
  216. package/dist/llm/provider-registry/provider-alias.d.ts +62 -0
  217. package/dist/llm/provider-registry/provider-alias.d.ts.map +1 -0
  218. package/dist/llm/provider-registry/provider-alias.js +85 -0
  219. package/dist/llm/provider-registry/provider-alias.js.map +1 -0
  220. package/dist/llm/provider-registry/provider-defs.d.ts +45 -0
  221. package/dist/llm/provider-registry/provider-defs.d.ts.map +1 -0
  222. package/dist/llm/provider-registry/provider-defs.js +145 -0
  223. package/dist/llm/provider-registry/provider-defs.js.map +1 -0
  224. package/dist/llm/provider-registry/provider-seed.d.ts +78 -0
  225. package/dist/llm/provider-registry/provider-seed.d.ts.map +1 -0
  226. package/dist/llm/provider-registry/provider-seed.js +113 -0
  227. package/dist/llm/provider-registry/provider-seed.js.map +1 -0
  228. package/dist/llm/role-executor.d.ts.map +1 -1
  229. package/dist/llm/role-executor.js +36 -0
  230. package/dist/llm/role-executor.js.map +1 -1
  231. package/dist/llm/role-resolver.d.ts.map +1 -1
  232. package/dist/llm/role-resolver.js +52 -10
  233. package/dist/llm/role-resolver.js.map +1 -1
  234. package/dist/llm/system-resolver.d.ts.map +1 -1
  235. package/dist/llm/system-resolver.js +73 -22
  236. package/dist/llm/system-resolver.js.map +1 -1
  237. package/dist/llm/transports/codex-responses.d.ts +111 -88
  238. package/dist/llm/transports/codex-responses.d.ts.map +1 -1
  239. package/dist/llm/transports/codex-responses.js +456 -258
  240. package/dist/llm/transports/codex-responses.js.map +1 -1
  241. package/dist/memory/learnings.d.ts +4 -0
  242. package/dist/memory/learnings.d.ts.map +1 -1
  243. package/dist/memory/patterns.d.ts +4 -0
  244. package/dist/memory/patterns.d.ts.map +1 -1
  245. package/dist/metrics/index.d.ts +2 -0
  246. package/dist/metrics/index.d.ts.map +1 -1
  247. package/dist/metrics/index.js +1 -0
  248. package/dist/metrics/index.js.map +1 -1
  249. package/dist/orchestration/spawn.d.ts +89 -0
  250. package/dist/orchestration/spawn.d.ts.map +1 -1
  251. package/dist/orchestration/spawn.js +68 -0
  252. package/dist/orchestration/spawn.js.map +1 -1
  253. package/dist/playbooks/cantbook-profile.d.ts +96 -0
  254. package/dist/playbooks/cantbook-profile.d.ts.map +1 -0
  255. package/dist/playbooks/cantbook-profile.js +97 -0
  256. package/dist/playbooks/cantbook-profile.js.map +1 -0
  257. package/dist/playbooks/guarded-deterministic-runner.d.ts +153 -0
  258. package/dist/playbooks/guarded-deterministic-runner.d.ts.map +1 -0
  259. package/dist/playbooks/guarded-deterministic-runner.js +155 -0
  260. package/dist/playbooks/guarded-deterministic-runner.js.map +1 -0
  261. package/dist/playbooks/index.d.ts +2 -0
  262. package/dist/playbooks/index.d.ts.map +1 -1
  263. package/dist/playbooks/index.js +10 -0
  264. package/dist/playbooks/index.js.map +1 -1
  265. package/dist/playbooks/pi-runner-wiring.d.ts +75 -0
  266. package/dist/playbooks/pi-runner-wiring.d.ts.map +1 -0
  267. package/dist/playbooks/pi-runner-wiring.js +82 -0
  268. package/dist/playbooks/pi-runner-wiring.js.map +1 -0
  269. package/dist/release/index.d.ts +2 -2
  270. package/dist/release/index.d.ts.map +1 -1
  271. package/dist/release/index.js +1 -1
  272. package/dist/release/index.js.map +1 -1
  273. package/dist/release/reconcile.d.ts +97 -0
  274. package/dist/release/reconcile.d.ts.map +1 -1
  275. package/dist/release/reconcile.js +412 -5
  276. package/dist/release/reconcile.js.map +1 -1
  277. package/dist/resources/backend.d.ts +155 -0
  278. package/dist/resources/backend.d.ts.map +1 -0
  279. package/dist/resources/backend.js +23 -0
  280. package/dist/resources/backend.js.map +1 -0
  281. package/dist/resources/linux-backend.d.ts +167 -0
  282. package/dist/resources/linux-backend.d.ts.map +1 -0
  283. package/dist/resources/linux-backend.js +259 -0
  284. package/dist/resources/linux-backend.js.map +1 -0
  285. package/dist/resources/monitor.d.ts +230 -0
  286. package/dist/resources/monitor.d.ts.map +1 -0
  287. package/dist/resources/monitor.js +255 -0
  288. package/dist/resources/monitor.js.map +1 -0
  289. package/dist/resources/spawn-wrapper.d.ts +265 -0
  290. package/dist/resources/spawn-wrapper.d.ts.map +1 -0
  291. package/dist/resources/spawn-wrapper.js +304 -0
  292. package/dist/resources/spawn-wrapper.js.map +1 -0
  293. package/dist/runtime/openapi/generate-openapi.d.ts +211 -0
  294. package/dist/runtime/openapi/generate-openapi.d.ts.map +1 -0
  295. package/dist/runtime/openapi/generate-openapi.js +300 -0
  296. package/dist/runtime/openapi/generate-openapi.js.map +1 -0
  297. package/dist/runtime/openapi/index.d.ts +16 -0
  298. package/dist/runtime/openapi/index.d.ts.map +1 -0
  299. package/dist/runtime/openapi/index.js +16 -0
  300. package/dist/runtime/openapi/index.js.map +1 -0
  301. package/dist/selfimprove/budget.d.ts +11 -2
  302. package/dist/selfimprove/budget.d.ts.map +1 -1
  303. package/dist/selfimprove/budget.js +11 -2
  304. package/dist/selfimprove/budget.js.map +1 -1
  305. package/dist/selfimprove/fix-gen.d.ts +229 -0
  306. package/dist/selfimprove/fix-gen.d.ts.map +1 -0
  307. package/dist/selfimprove/fix-gen.js +266 -0
  308. package/dist/selfimprove/fix-gen.js.map +1 -0
  309. package/dist/selfimprove/run-loop.d.ts +44 -4
  310. package/dist/selfimprove/run-loop.d.ts.map +1 -1
  311. package/dist/selfimprove/run-loop.js +73 -6
  312. package/dist/selfimprove/run-loop.js.map +1 -1
  313. package/dist/selfimprove/scenarios/dhq-replay-find/golden.json +32 -0
  314. package/dist/selfimprove/scenarios/dhq-replay-find/scenario.json +18 -0
  315. package/dist/sentient/cross-project-hygiene.d.ts +11 -2
  316. package/dist/sentient/cross-project-hygiene.d.ts.map +1 -1
  317. package/dist/sentient/cross-project-hygiene.js +73 -10
  318. package/dist/sentient/cross-project-hygiene.js.map +1 -1
  319. package/dist/sentient/daemon.d.ts.map +1 -1
  320. package/dist/sentient/daemon.js +7 -2
  321. package/dist/sentient/daemon.js.map +1 -1
  322. package/dist/sentient/worktree-dispatch.d.ts.map +1 -1
  323. package/dist/sentient/worktree-dispatch.js +8 -1
  324. package/dist/sentient/worktree-dispatch.js.map +1 -1
  325. package/dist/setup/config-json-merge.d.ts.map +1 -1
  326. package/dist/setup/config-json-merge.js +14 -0
  327. package/dist/setup/config-json-merge.js.map +1 -1
  328. package/dist/setup/index.d.ts +23 -11
  329. package/dist/setup/index.d.ts.map +1 -1
  330. package/dist/setup/index.js +25 -12
  331. package/dist/setup/index.js.map +1 -1
  332. package/dist/setup/sections/llm.d.ts +28 -1
  333. package/dist/setup/sections/llm.d.ts.map +1 -1
  334. package/dist/setup/sections/llm.js +27 -6
  335. package/dist/setup/sections/llm.js.map +1 -1
  336. package/dist/setup/sections/models-roles.d.ts +40 -0
  337. package/dist/setup/sections/models-roles.d.ts.map +1 -0
  338. package/dist/setup/sections/models-roles.js +219 -0
  339. package/dist/setup/sections/models-roles.js.map +1 -0
  340. package/dist/setup/wizard.d.ts +19 -1
  341. package/dist/setup/wizard.d.ts.map +1 -1
  342. package/dist/setup/wizard.js.map +1 -1
  343. package/dist/spawn/branch-lock.d.ts.map +1 -1
  344. package/dist/spawn/branch-lock.js +7 -1
  345. package/dist/spawn/branch-lock.js.map +1 -1
  346. package/dist/store/attachment-repair.d.ts +110 -0
  347. package/dist/store/attachment-repair.d.ts.map +1 -0
  348. package/dist/store/attachment-repair.js +326 -0
  349. package/dist/store/attachment-repair.js.map +1 -0
  350. package/dist/store/attachment-store.d.ts.map +1 -1
  351. package/dist/store/attachment-store.js +24 -7
  352. package/dist/store/attachment-store.js.map +1 -1
  353. package/dist/store/schedule-schema.d.ts +195 -0
  354. package/dist/store/schedule-schema.d.ts.map +1 -0
  355. package/dist/store/schedule-schema.js +84 -0
  356. package/dist/store/schedule-schema.js.map +1 -0
  357. package/dist/store/schedule-store.d.ts +144 -0
  358. package/dist/store/schedule-store.d.ts.map +1 -0
  359. package/dist/store/schedule-store.js +162 -0
  360. package/dist/store/schedule-store.js.map +1 -0
  361. package/dist/store/schema/attachments.d.ts +1 -1
  362. package/dist/store/schema/cleo-global/index.d.ts +3 -0
  363. package/dist/store/schema/cleo-global/index.d.ts.map +1 -1
  364. package/dist/store/schema/cleo-global/index.js +5 -0
  365. package/dist/store/schema/cleo-global/index.js.map +1 -1
  366. package/dist/store/schema/cleo-global/models-catalog.d.ts +359 -0
  367. package/dist/store/schema/cleo-global/models-catalog.d.ts.map +1 -0
  368. package/dist/store/schema/cleo-global/models-catalog.js +114 -0
  369. package/dist/store/schema/cleo-global/models-catalog.js.map +1 -0
  370. package/dist/store/schema/cleo-global/providers.d.ts +279 -0
  371. package/dist/store/schema/cleo-global/providers.d.ts.map +1 -0
  372. package/dist/store/schema/cleo-global/providers.js +94 -0
  373. package/dist/store/schema/cleo-global/providers.js.map +1 -0
  374. package/dist/store/schema/cleo-global/services.d.ts +493 -0
  375. package/dist/store/schema/cleo-global/services.d.ts.map +1 -0
  376. package/dist/store/schema/cleo-global/services.js +200 -0
  377. package/dist/store/schema/cleo-global/services.js.map +1 -0
  378. package/dist/store/schema/cleo-project/docs.d.ts +1 -1
  379. package/dist/store/schema/cleo-project/provenance-rest.d.ts +1 -1
  380. package/dist/store/schema/cleo-shared/brain.d.ts +2 -2
  381. package/dist/store/schema/memory-schema.d.ts +182 -2
  382. package/dist/store/schema/memory-schema.d.ts.map +1 -1
  383. package/dist/store/schema/memory-schema.js +111 -2
  384. package/dist/store/schema/memory-schema.js.map +1 -1
  385. package/dist/store/schema/provenance/releases.d.ts +1 -1
  386. package/dist/store/service-connections-accessor.d.ts +313 -0
  387. package/dist/store/service-connections-accessor.d.ts.map +1 -0
  388. package/dist/store/service-connections-accessor.js +464 -0
  389. package/dist/store/service-connections-accessor.js.map +1 -0
  390. package/dist/store/service-host-matcher.d.ts +70 -0
  391. package/dist/store/service-host-matcher.d.ts.map +1 -0
  392. package/dist/store/service-host-matcher.js +127 -0
  393. package/dist/store/service-host-matcher.js.map +1 -0
  394. package/dist/store/service-injection.d.ts +152 -0
  395. package/dist/store/service-injection.d.ts.map +1 -0
  396. package/dist/store/service-injection.js +225 -0
  397. package/dist/store/service-injection.js.map +1 -0
  398. package/dist/store/service-oauth.d.ts +287 -0
  399. package/dist/store/service-oauth.d.ts.map +1 -0
  400. package/dist/store/service-oauth.js +524 -0
  401. package/dist/store/service-oauth.js.map +1 -0
  402. package/dist/store/service-trust-gate.d.ts +164 -0
  403. package/dist/store/service-trust-gate.d.ts.map +1 -0
  404. package/dist/store/service-trust-gate.js +122 -0
  405. package/dist/store/service-trust-gate.js.map +1 -0
  406. package/dist/store/validation-schemas.d.ts +4 -4
  407. package/dist/tasks/agent-lifecycle-lane.d.ts +175 -0
  408. package/dist/tasks/agent-lifecycle-lane.d.ts.map +1 -0
  409. package/dist/tasks/agent-lifecycle-lane.js +176 -0
  410. package/dist/tasks/agent-lifecycle-lane.js.map +1 -0
  411. package/dist/tasks/complete.d.ts +17 -0
  412. package/dist/tasks/complete.d.ts.map +1 -1
  413. package/dist/tasks/complete.js +53 -10
  414. package/dist/tasks/complete.js.map +1 -1
  415. package/dist/tasks/depends-waiver-audit.d.ts +52 -0
  416. package/dist/tasks/depends-waiver-audit.d.ts.map +1 -0
  417. package/dist/tasks/depends-waiver-audit.js +36 -0
  418. package/dist/tasks/depends-waiver-audit.js.map +1 -0
  419. package/dist/tasks/engine-wrap.d.ts +36 -2
  420. package/dist/tasks/engine-wrap.d.ts.map +1 -1
  421. package/dist/tasks/engine-wrap.js +44 -2
  422. package/dist/tasks/engine-wrap.js.map +1 -1
  423. package/dist/tasks/evidence.d.ts +34 -2
  424. package/dist/tasks/evidence.d.ts.map +1 -1
  425. package/dist/tasks/evidence.js +293 -35
  426. package/dist/tasks/evidence.js.map +1 -1
  427. package/dist/tasks/index.d.ts +1 -0
  428. package/dist/tasks/index.d.ts.map +1 -1
  429. package/dist/tasks/index.js +1 -0
  430. package/dist/tasks/index.js.map +1 -1
  431. package/dist/tasks/ops.d.ts +3 -0
  432. package/dist/tasks/ops.d.ts.map +1 -1
  433. package/dist/tasks/task-ops.d.ts +1 -1
  434. package/dist/tasks/task-ops.d.ts.map +1 -1
  435. package/dist/tasks/task-ops.js +3 -1
  436. package/dist/tasks/task-ops.js.map +1 -1
  437. package/dist/tasks/task-reparent.d.ts +90 -0
  438. package/dist/tasks/task-reparent.d.ts.map +1 -1
  439. package/dist/tasks/task-reparent.js +171 -0
  440. package/dist/tasks/task-reparent.js.map +1 -1
  441. package/dist/tools/builtin-agent-tools.d.ts.map +1 -1
  442. package/dist/tools/builtin-agent-tools.js +41 -0
  443. package/dist/tools/builtin-agent-tools.js.map +1 -1
  444. package/dist/tools/exec-code-agent-tool.d.ts +179 -0
  445. package/dist/tools/exec-code-agent-tool.d.ts.map +1 -0
  446. package/dist/tools/exec-code-agent-tool.js +239 -0
  447. package/dist/tools/exec-code-agent-tool.js.map +1 -0
  448. package/dist/tools/index.d.ts +6 -0
  449. package/dist/tools/index.d.ts.map +1 -1
  450. package/dist/tools/index.js +15 -0
  451. package/dist/tools/index.js.map +1 -1
  452. package/dist/tools/mcp-agent-tool.d.ts +189 -0
  453. package/dist/tools/mcp-agent-tool.d.ts.map +1 -0
  454. package/dist/tools/mcp-agent-tool.js +243 -0
  455. package/dist/tools/mcp-agent-tool.js.map +1 -0
  456. package/dist/tools/media-agent-tools.d.ts +105 -0
  457. package/dist/tools/media-agent-tools.d.ts.map +1 -0
  458. package/dist/tools/media-agent-tools.js +255 -0
  459. package/dist/tools/media-agent-tools.js.map +1 -0
  460. package/dist/tools/memory-agent-tools.d.ts +99 -0
  461. package/dist/tools/memory-agent-tools.d.ts.map +1 -0
  462. package/dist/tools/memory-agent-tools.js +190 -0
  463. package/dist/tools/memory-agent-tools.js.map +1 -0
  464. package/dist/tools/schedule-agent-tools.d.ts +151 -0
  465. package/dist/tools/schedule-agent-tools.d.ts.map +1 -0
  466. package/dist/tools/schedule-agent-tools.js +238 -0
  467. package/dist/tools/schedule-agent-tools.js.map +1 -0
  468. package/dist/tools/skill-agent-tool.d.ts +108 -0
  469. package/dist/tools/skill-agent-tool.d.ts.map +1 -0
  470. package/dist/tools/skill-agent-tool.js +135 -0
  471. package/dist/tools/skill-agent-tool.js.map +1 -0
  472. package/dist/validation/engine-ops.d.ts.map +1 -1
  473. package/dist/validation/engine-ops.js +17 -1
  474. package/dist/validation/engine-ops.js.map +1 -1
  475. package/dist/verification/verify-tools.d.ts.map +1 -1
  476. package/dist/verification/verify-tools.js +5 -6
  477. package/dist/verification/verify-tools.js.map +1 -1
  478. package/migrations/drizzle-brain/20260610000001_t10405-bitemporal-network-columns/migration.sql +71 -0
  479. package/migrations/drizzle-cleo-global/20260609000000_t11937-service-vault/migration.sql +93 -0
  480. package/migrations/drizzle-cleo-global/20260609010000_t11733-models-catalog/migration.sql +65 -0
  481. package/migrations/drizzle-cleo-global/20260609020000_t11703-providers/migration.sql +52 -0
  482. package/migrations/drizzle-cleo-global/20260610000000_t11962-schedules/migration.sql +48 -0
  483. package/migrations/drizzle-cleo-project/20260610000000_t11962-schedules/migration.sql +48 -0
  484. package/package.json +33 -13
  485. package/templates/workflows/release-prepare.yml.tmpl +48 -2
@@ -0,0 +1,195 @@
1
+ /**
2
+ * Drizzle ORM schema for the **cron / todo schedule** table (`schedules`) — the
3
+ * durable sink for recurring-task schedules registered by the `cron_schedule`
4
+ * agent tool (T11962 · under T11679 · M7 · epic T11456).
5
+ *
6
+ * One row per recurring schedule: a cron expression plus the task TEMPLATE
7
+ * (title / description) materialized on each fire, an `enabled` flag, and
8
+ * creation/update timestamps. The `cron_schedule` agent tool
9
+ * ({@link import('../tools/schedule-agent-tools.js')}) registers a row through the
10
+ * leased Gate-3 accessor ({@link import('./schedule-store.js')}) so it persists
11
+ * WITHOUT a running daemon (T11950 AC3); a future daemon scheduler consumes the
12
+ * SAME table as a separate reader (T11962 AC4).
13
+ *
14
+ * ## Pure runtime infrastructure (NOT the exodus target shape)
15
+ *
16
+ * Like `_writer_leases` (T11627), `pi_session_*` (T11899), and `selfimprove_dhq`
17
+ * (T11911), this table is co-located inside EACH scope's consolidated `cleo.db`
18
+ * (project + global) via the `drizzle-cleo-project` / `drizzle-cleo-global`
19
+ * migration sets — so the two lineages produce the SAME migration hash and the
20
+ * consolidated single-file journal converges across both
21
+ * (CONSOLIDATED_JOURNAL_LINEAGES cross-lineage guard, T11829). It is NOT part of
22
+ * the exodus target shape under `schema/cleo-project/`, so the consolidated
23
+ * schema-parity gate (T11364) does not re-derive its CHECK set — exactly the
24
+ * runtime-infrastructure precedent.
25
+ *
26
+ * ## E10 typing
27
+ *
28
+ * TEXT ISO-8601 timestamps (`created_at` / `updated_at`); a typed boolean
29
+ * (`enabled`, `integer({ mode: 'boolean' })` → CHECK IN (0,1)). No JSON columns —
30
+ * the task template is two plain TEXT columns (title + nullable description).
31
+ *
32
+ * @module
33
+ * @task T11962
34
+ * @epic T11679
35
+ * @see ./schedule-store.ts — the Gate-3 accessor over this table
36
+ * @see ./selfimprove-dhq-schema.ts — the runtime-infrastructure-table precedent this mirrors
37
+ * @see ../../migrations/drizzle-cleo-project — project migration (CREATE TABLE schedules)
38
+ * @see ../../migrations/drizzle-cleo-global — global migration (byte-identical, journal convergence)
39
+ */
40
+ /**
41
+ * The physical name of the schedule table. Exported so the accessor and tests all
42
+ * reference one source of truth.
43
+ */
44
+ export declare const SCHEDULES_TABLE: "schedules";
45
+ /**
46
+ * `schedules` — one row per recurring (cron) task schedule.
47
+ *
48
+ * `cronExpr` is the recurrence (a standard 5-field cron expression); `title` /
49
+ * `description` are the task template materialized on each fire; `enabled` toggles
50
+ * whether the daemon scheduler (a separate consumer, AC4) should fire it. The row
51
+ * is written by the leased accessor ({@link import('./schedule-store.js')}) — the
52
+ * `cron_schedule` agent tool delegates to it daemon-OFF.
53
+ *
54
+ * @task T11962
55
+ */
56
+ export declare const schedules: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
57
+ name: "schedules";
58
+ schema: undefined;
59
+ columns: {
60
+ id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
61
+ name: string;
62
+ tableName: "schedules";
63
+ dataType: "number int53";
64
+ data: number;
65
+ driverParam: number;
66
+ notNull: true;
67
+ hasDefault: true;
68
+ isPrimaryKey: true;
69
+ isAutoincrement: false;
70
+ hasRuntimeDefault: false;
71
+ enumValues: undefined;
72
+ baseColumn: never;
73
+ identity: undefined;
74
+ generated: undefined;
75
+ }, {}>;
76
+ scheduleId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
77
+ name: string;
78
+ tableName: "schedules";
79
+ dataType: "string";
80
+ data: string;
81
+ driverParam: string;
82
+ notNull: true;
83
+ hasDefault: false;
84
+ isPrimaryKey: false;
85
+ isAutoincrement: false;
86
+ hasRuntimeDefault: false;
87
+ enumValues: [string, ...string[]];
88
+ baseColumn: never;
89
+ identity: undefined;
90
+ generated: undefined;
91
+ }, {}>;
92
+ cronExpr: import("drizzle-orm/sqlite-core").SQLiteColumn<{
93
+ name: string;
94
+ tableName: "schedules";
95
+ dataType: "string";
96
+ data: string;
97
+ driverParam: string;
98
+ notNull: true;
99
+ hasDefault: false;
100
+ isPrimaryKey: false;
101
+ isAutoincrement: false;
102
+ hasRuntimeDefault: false;
103
+ enumValues: [string, ...string[]];
104
+ baseColumn: never;
105
+ identity: undefined;
106
+ generated: undefined;
107
+ }, {}>;
108
+ title: import("drizzle-orm/sqlite-core").SQLiteColumn<{
109
+ name: string;
110
+ tableName: "schedules";
111
+ dataType: "string";
112
+ data: string;
113
+ driverParam: string;
114
+ notNull: true;
115
+ hasDefault: false;
116
+ isPrimaryKey: false;
117
+ isAutoincrement: false;
118
+ hasRuntimeDefault: false;
119
+ enumValues: [string, ...string[]];
120
+ baseColumn: never;
121
+ identity: undefined;
122
+ generated: undefined;
123
+ }, {}>;
124
+ description: import("drizzle-orm/sqlite-core").SQLiteColumn<{
125
+ name: string;
126
+ tableName: "schedules";
127
+ dataType: "string";
128
+ data: string;
129
+ driverParam: string;
130
+ notNull: false;
131
+ hasDefault: false;
132
+ isPrimaryKey: false;
133
+ isAutoincrement: false;
134
+ hasRuntimeDefault: false;
135
+ enumValues: [string, ...string[]];
136
+ baseColumn: never;
137
+ identity: undefined;
138
+ generated: undefined;
139
+ }, {}>;
140
+ enabled: import("drizzle-orm/sqlite-core").SQLiteColumn<{
141
+ name: string;
142
+ tableName: "schedules";
143
+ dataType: "boolean";
144
+ data: boolean;
145
+ driverParam: number;
146
+ notNull: true;
147
+ hasDefault: true;
148
+ isPrimaryKey: false;
149
+ isAutoincrement: false;
150
+ hasRuntimeDefault: false;
151
+ enumValues: undefined;
152
+ baseColumn: never;
153
+ identity: undefined;
154
+ generated: undefined;
155
+ }, {}>;
156
+ createdAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
157
+ name: string;
158
+ tableName: "schedules";
159
+ dataType: "string";
160
+ data: string;
161
+ driverParam: string;
162
+ notNull: true;
163
+ hasDefault: true;
164
+ isPrimaryKey: false;
165
+ isAutoincrement: false;
166
+ hasRuntimeDefault: false;
167
+ enumValues: [string, ...string[]];
168
+ baseColumn: never;
169
+ identity: undefined;
170
+ generated: undefined;
171
+ }, {}>;
172
+ updatedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
173
+ name: string;
174
+ tableName: "schedules";
175
+ dataType: "string";
176
+ data: string;
177
+ driverParam: string;
178
+ notNull: true;
179
+ hasDefault: true;
180
+ isPrimaryKey: false;
181
+ isAutoincrement: false;
182
+ hasRuntimeDefault: false;
183
+ enumValues: [string, ...string[]];
184
+ baseColumn: never;
185
+ identity: undefined;
186
+ generated: undefined;
187
+ }, {}>;
188
+ };
189
+ dialect: "sqlite";
190
+ }>;
191
+ /** Row type for `schedules` SELECT queries. */
192
+ export type ScheduleRow = typeof schedules.$inferSelect;
193
+ /** Row type for `schedules` INSERT operations. */
194
+ export type NewScheduleRow = typeof schedules.$inferInsert;
195
+ //# sourceMappingURL=schedule-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schedule-schema.d.ts","sourceRoot":"","sources":["../../src/store/schedule-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAKH;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAG,WAAoB,CAAC;AAEpD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6BrB,CAAC;AAEF,+CAA+C;AAC/C,MAAM,MAAM,WAAW,GAAG,OAAO,SAAS,CAAC,YAAY,CAAC;AACxD,kDAAkD;AAClD,MAAM,MAAM,cAAc,GAAG,OAAO,SAAS,CAAC,YAAY,CAAC"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Drizzle ORM schema for the **cron / todo schedule** table (`schedules`) — the
3
+ * durable sink for recurring-task schedules registered by the `cron_schedule`
4
+ * agent tool (T11962 · under T11679 · M7 · epic T11456).
5
+ *
6
+ * One row per recurring schedule: a cron expression plus the task TEMPLATE
7
+ * (title / description) materialized on each fire, an `enabled` flag, and
8
+ * creation/update timestamps. The `cron_schedule` agent tool
9
+ * ({@link import('../tools/schedule-agent-tools.js')}) registers a row through the
10
+ * leased Gate-3 accessor ({@link import('./schedule-store.js')}) so it persists
11
+ * WITHOUT a running daemon (T11950 AC3); a future daemon scheduler consumes the
12
+ * SAME table as a separate reader (T11962 AC4).
13
+ *
14
+ * ## Pure runtime infrastructure (NOT the exodus target shape)
15
+ *
16
+ * Like `_writer_leases` (T11627), `pi_session_*` (T11899), and `selfimprove_dhq`
17
+ * (T11911), this table is co-located inside EACH scope's consolidated `cleo.db`
18
+ * (project + global) via the `drizzle-cleo-project` / `drizzle-cleo-global`
19
+ * migration sets — so the two lineages produce the SAME migration hash and the
20
+ * consolidated single-file journal converges across both
21
+ * (CONSOLIDATED_JOURNAL_LINEAGES cross-lineage guard, T11829). It is NOT part of
22
+ * the exodus target shape under `schema/cleo-project/`, so the consolidated
23
+ * schema-parity gate (T11364) does not re-derive its CHECK set — exactly the
24
+ * runtime-infrastructure precedent.
25
+ *
26
+ * ## E10 typing
27
+ *
28
+ * TEXT ISO-8601 timestamps (`created_at` / `updated_at`); a typed boolean
29
+ * (`enabled`, `integer({ mode: 'boolean' })` → CHECK IN (0,1)). No JSON columns —
30
+ * the task template is two plain TEXT columns (title + nullable description).
31
+ *
32
+ * @module
33
+ * @task T11962
34
+ * @epic T11679
35
+ * @see ./schedule-store.ts — the Gate-3 accessor over this table
36
+ * @see ./selfimprove-dhq-schema.ts — the runtime-infrastructure-table precedent this mirrors
37
+ * @see ../../migrations/drizzle-cleo-project — project migration (CREATE TABLE schedules)
38
+ * @see ../../migrations/drizzle-cleo-global — global migration (byte-identical, journal convergence)
39
+ */
40
+ import { sql } from 'drizzle-orm';
41
+ import { index, integer, sqliteTable, text, unique } from 'drizzle-orm/sqlite-core';
42
+ /**
43
+ * The physical name of the schedule table. Exported so the accessor and tests all
44
+ * reference one source of truth.
45
+ */
46
+ export const SCHEDULES_TABLE = 'schedules';
47
+ /**
48
+ * `schedules` — one row per recurring (cron) task schedule.
49
+ *
50
+ * `cronExpr` is the recurrence (a standard 5-field cron expression); `title` /
51
+ * `description` are the task template materialized on each fire; `enabled` toggles
52
+ * whether the daemon scheduler (a separate consumer, AC4) should fire it. The row
53
+ * is written by the leased accessor ({@link import('./schedule-store.js')}) — the
54
+ * `cron_schedule` agent tool delegates to it daemon-OFF.
55
+ *
56
+ * @task T11962
57
+ */
58
+ export const schedules = sqliteTable(SCHEDULES_TABLE, {
59
+ /** Surrogate primary key (autoincrement via INTEGER PRIMARY KEY rowid alias). */
60
+ id: integer('id').primaryKey(),
61
+ /** Stable opaque schedule handle (`sched-<token>`) returned to the tool caller. */
62
+ scheduleId: text('schedule_id').notNull(),
63
+ /** The recurrence — a standard 5-field cron expression (e.g. `'0 9 * * 1'`). */
64
+ cronExpr: text('cron_expr').notNull(),
65
+ /** The title of the task created on each fire (the template). */
66
+ title: text('title').notNull(),
67
+ /** Optional description for the task created on each fire. */
68
+ description: text('description'),
69
+ /**
70
+ * Whether the daemon scheduler should fire this schedule. Typed boolean
71
+ * (CHECK IN (0,1)); defaults `true` so a freshly-registered schedule is live.
72
+ */
73
+ enabled: integer('enabled', { mode: 'boolean' }).notNull().default(true),
74
+ /** ISO-8601 UTC creation instant. Defaults to write time. */
75
+ createdAt: text('created_at').notNull().default(sql `(datetime('now'))`),
76
+ /** ISO-8601 UTC last-update instant. Defaults to write time; bumped on mutation. */
77
+ updatedAt: text('updated_at').notNull().default(sql `(datetime('now'))`),
78
+ }, (table) => [
79
+ // `schedule_id` is the opaque handle the accessor looks up / removes by — unique.
80
+ unique('ux_schedules_schedule_id').on(table.scheduleId),
81
+ // Lookup index — the daemon scheduler enumerates enabled schedules.
82
+ index('ix_schedules_enabled').on(table.enabled),
83
+ ]);
84
+ //# sourceMappingURL=schedule-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schedule-schema.js","sourceRoot":"","sources":["../../src/store/schedule-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEpF;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,WAAoB,CAAC;AAEpD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAClC,eAAe,EACf;IACE,iFAAiF;IACjF,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE;IAC9B,mFAAmF;IACnF,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE;IACzC,gFAAgF;IAChF,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE;IACrC,iEAAiE;IACjE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE;IAC9B,8DAA8D;IAC9D,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC;IAChC;;;OAGG;IACH,OAAO,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACxE,6DAA6D;IAC7D,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,CAAA,mBAAmB,CAAC;IACvE,oFAAoF;IACpF,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,CAAA,mBAAmB,CAAC;CACxE,EACD,CAAC,KAAK,EAAE,EAAE,CAAC;IACT,kFAAkF;IAClF,MAAM,CAAC,0BAA0B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC;IACvD,oEAAoE;IACpE,KAAK,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;CAChD,CACF,CAAC"}
@@ -0,0 +1,144 @@
1
+ /**
2
+ * Store-layer accessor for the cron / todo schedule table (`schedules`) — T11962
3
+ * (under T11679 · M7 · epic T11456).
4
+ *
5
+ * This module is the ONLY place that touches the native `cleo.db` handle for
6
+ * schedule persistence. It lives INSIDE the store chokepoint
7
+ * (`packages/core/src/store/**`), the Gate-3 allowlist, so it may extract the
8
+ * native `DatabaseSync` that {@link openDualScopeDb} already holds (via drizzle's
9
+ * `$client`) and run prepared statements over it — exactly the established
10
+ * `selfimprove-dhq-store.ts` / `pi-session-store.ts` pattern. It NEVER calls
11
+ * `new DatabaseSync(` itself.
12
+ *
13
+ * The `cron_schedule` agent tool ({@link import('../tools/schedule-agent-tools.js')})
14
+ * sits OUTSIDE the chokepoint, so it must NOT open a raw handle; it calls
15
+ * {@link addSchedule} / {@link listSchedules} / {@link removeSchedule}. A single
16
+ * INSERT/DELETE is one atomic SQLite statement, so the accessor does not wrap them
17
+ * in a writer lease itself — daemon-OFF the chokepoint already serializes the
18
+ * single in-process writer; a future daemon scheduler (a separate reader, AC4)
19
+ * never writes through this path.
20
+ *
21
+ * Physical model (see the `t11962-schedules` migration):
22
+ * - `schedules(id, schedule_id, cron_expr, title, description, enabled,
23
+ * created_at, updated_at)` — one row per recurring schedule.
24
+ * - `schedule_id` is a unique opaque handle (`sched-<token>`) returned to the
25
+ * caller and used to remove a schedule.
26
+ *
27
+ * ## Never `.all()` an unbounded query
28
+ *
29
+ * {@link listSchedules} reads through `iterate()` with an explicit SQL `LIMIT`
30
+ * (capped, default {@link SCHEDULE_LIST_DEFAULT_LIMIT}), never `.all()` over the
31
+ * whole table — the established OOM-safe read pattern (cf.
32
+ * `exodus/verify-migration.ts`).
33
+ *
34
+ * @module
35
+ * @task T11962
36
+ * @epic T11679
37
+ * @see ./schedule-schema.ts — the drizzle table declaration (physical-name SSoT)
38
+ * @see ./selfimprove-dhq-store.ts — the Gate-3 native-handle accessor precedent this mirrors
39
+ * @see ../tools/schedule-agent-tools.ts — the `cron_schedule` tool that delegates here
40
+ */
41
+ export { SCHEDULES_TABLE } from './schedule-schema.js';
42
+ /** Default cap for {@link listSchedules} — bounds the read so it never OOMs. */
43
+ export declare const SCHEDULE_LIST_DEFAULT_LIMIT: 500;
44
+ /** Hard ceiling on a {@link listSchedules} request — a caller cannot exceed it. */
45
+ export declare const SCHEDULE_LIST_MAX_LIMIT: 5000;
46
+ /** A persisted schedule row, decoded from `schedules`. */
47
+ export interface ScheduleRecord {
48
+ /** Stable opaque schedule handle (`sched-<token>`). */
49
+ readonly scheduleId: string;
50
+ /** The recurrence — a standard 5-field cron expression. */
51
+ readonly cronExpr: string;
52
+ /** The title of the task created on each fire (the template). */
53
+ readonly title: string;
54
+ /** Optional description for the task created on each fire. */
55
+ readonly description: string | null;
56
+ /** Whether the daemon scheduler should fire this schedule. */
57
+ readonly enabled: boolean;
58
+ /** ISO-8601 UTC creation instant. */
59
+ readonly createdAt: string;
60
+ /** ISO-8601 UTC last-update instant. */
61
+ readonly updatedAt: string;
62
+ }
63
+ /** Fields required to register one schedule via {@link addSchedule}. */
64
+ export interface AddScheduleParams {
65
+ /** The recurrence — a standard 5-field cron expression (e.g. `'0 9 * * 1'`). */
66
+ readonly cronExpr: string;
67
+ /** The title of the task to create on each fire. */
68
+ readonly title: string;
69
+ /** Optional description for the task created on each fire. */
70
+ readonly description?: string;
71
+ }
72
+ /** Narrow shape of the native handle methods this accessor uses. */
73
+ type NativeRunResult = {
74
+ changes: number | bigint;
75
+ lastInsertRowid: number | bigint;
76
+ };
77
+ interface NativeStatement {
78
+ run(...params: ReadonlyArray<string | number | null>): NativeRunResult;
79
+ get(...params: ReadonlyArray<string | number | null>): Record<string, unknown> | undefined;
80
+ iterate(...params: ReadonlyArray<string | number | null>): IterableIterator<Record<string, unknown>>;
81
+ }
82
+ interface NativeHandle {
83
+ prepare(sql: string): NativeStatement;
84
+ }
85
+ /**
86
+ * Extract the native `DatabaseSync` handle for the PROJECT-scope `cleo.db`.
87
+ *
88
+ * Routes through {@link openDualScopeDb} (the dual-scope chokepoint) — which
89
+ * applies the pragma SSoT, runs the consolidated migrations (creating
90
+ * `schedules`), and manages the singleton cache — then extracts the native handle
91
+ * drizzle holds on `$client`. NEVER opens a raw connection (Gate 3): it reuses the
92
+ * handle the chokepoint already owns.
93
+ *
94
+ * @param cwd - Working directory for project resolution (defaults to `cwd`).
95
+ * @returns The live native handle.
96
+ * @throws When the chokepoint returns a handle without `$client`.
97
+ */
98
+ export declare function getScheduleNativeDb(cwd?: string): Promise<NativeHandle>;
99
+ /**
100
+ * REGISTER a recurring schedule: insert one `schedules` row and return its handle.
101
+ *
102
+ * A fresh `schedule_id` is minted (`sched-<token>`) and returned so the caller can
103
+ * later {@link removeSchedule} by it. The row is created `enabled = true`. Writes
104
+ * one atomic INSERT — the chokepoint serializes the single in-process writer
105
+ * daemon-OFF.
106
+ *
107
+ * @param native - The native project `cleo.db` handle (from {@link getScheduleNativeDb}).
108
+ * @param params - The cron expression + task template.
109
+ * @returns The minted schedule handle.
110
+ */
111
+ export declare function addSchedule(native: NativeHandle, params: AddScheduleParams): string;
112
+ /**
113
+ * LIST registered schedules in stable creation order (`created_at ASC`, then `id`).
114
+ *
115
+ * Bounded by an explicit SQL `LIMIT` and read through `iterate()` — NEVER an
116
+ * unbounded `.all()`. The request limit is clamped to
117
+ * `[1, {@link SCHEDULE_LIST_MAX_LIMIT}]`, defaulting to
118
+ * {@link SCHEDULE_LIST_DEFAULT_LIMIT}.
119
+ *
120
+ * @param native - The native project `cleo.db` handle.
121
+ * @param limit - Maximum rows to return (clamped). Defaults to the default cap.
122
+ * @returns The ordered schedule records (at most `limit`).
123
+ */
124
+ export declare function listSchedules(native: NativeHandle, limit?: number): ScheduleRecord[];
125
+ /**
126
+ * GET one schedule by its opaque handle, or `null` when no such schedule exists.
127
+ *
128
+ * @param native - The native project `cleo.db` handle.
129
+ * @param scheduleId - The `sched-<token>` handle.
130
+ * @returns The schedule record, or `null`.
131
+ */
132
+ export declare function getSchedule(native: NativeHandle, scheduleId: string): ScheduleRecord | null;
133
+ /**
134
+ * REMOVE a schedule by its opaque handle.
135
+ *
136
+ * Writes one atomic DELETE. Returns whether a row was actually removed (`false`
137
+ * when the handle is unknown).
138
+ *
139
+ * @param native - The native project `cleo.db` handle.
140
+ * @param scheduleId - The `sched-<token>` handle to remove.
141
+ * @returns `true` if a row was deleted, `false` when no such schedule existed.
142
+ */
143
+ export declare function removeSchedule(native: NativeHandle, scheduleId: string): boolean;
144
+ //# sourceMappingURL=schedule-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schedule-store.d.ts","sourceRoot":"","sources":["../../src/store/schedule-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAOH,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,gFAAgF;AAChF,eAAO,MAAM,2BAA2B,EAAG,GAAY,CAAC;AAExD,mFAAmF;AACnF,eAAO,MAAM,uBAAuB,EAAG,IAAa,CAAC;AAErD,0DAA0D;AAC1D,MAAM,WAAW,cAAc;IAC7B,uDAAuD;IACvD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,2DAA2D;IAC3D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,iEAAiE;IACjE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,8DAA8D;IAC9D,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,8DAA8D;IAC9D,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,qCAAqC;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,wCAAwC;IACxC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,wEAAwE;AACxE,MAAM,WAAW,iBAAiB;IAChC,gFAAgF;IAChF,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,oDAAoD;IACpD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,8DAA8D;IAC9D,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,oEAAoE;AACpE,KAAK,eAAe,GAAG;IAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC;AACtF,UAAU,eAAe;IACvB,GAAG,CAAC,GAAG,MAAM,EAAE,aAAa,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,eAAe,CAAC;IACvE,GAAG,CAAC,GAAG,MAAM,EAAE,aAAa,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAC3F,OAAO,CACL,GAAG,MAAM,EAAE,aAAa,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,GAC/C,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC9C;AACD,UAAU,YAAY;IACpB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAC;CACvC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,mBAAmB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAW7E;AAsBD;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAUnF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,YAAY,EACpB,KAAK,GAAE,MAAoC,GAC1C,cAAc,EAAE,CAWlB;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAQ3F;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAKhF"}
@@ -0,0 +1,162 @@
1
+ /**
2
+ * Store-layer accessor for the cron / todo schedule table (`schedules`) — T11962
3
+ * (under T11679 · M7 · epic T11456).
4
+ *
5
+ * This module is the ONLY place that touches the native `cleo.db` handle for
6
+ * schedule persistence. It lives INSIDE the store chokepoint
7
+ * (`packages/core/src/store/**`), the Gate-3 allowlist, so it may extract the
8
+ * native `DatabaseSync` that {@link openDualScopeDb} already holds (via drizzle's
9
+ * `$client`) and run prepared statements over it — exactly the established
10
+ * `selfimprove-dhq-store.ts` / `pi-session-store.ts` pattern. It NEVER calls
11
+ * `new DatabaseSync(` itself.
12
+ *
13
+ * The `cron_schedule` agent tool ({@link import('../tools/schedule-agent-tools.js')})
14
+ * sits OUTSIDE the chokepoint, so it must NOT open a raw handle; it calls
15
+ * {@link addSchedule} / {@link listSchedules} / {@link removeSchedule}. A single
16
+ * INSERT/DELETE is one atomic SQLite statement, so the accessor does not wrap them
17
+ * in a writer lease itself — daemon-OFF the chokepoint already serializes the
18
+ * single in-process writer; a future daemon scheduler (a separate reader, AC4)
19
+ * never writes through this path.
20
+ *
21
+ * Physical model (see the `t11962-schedules` migration):
22
+ * - `schedules(id, schedule_id, cron_expr, title, description, enabled,
23
+ * created_at, updated_at)` — one row per recurring schedule.
24
+ * - `schedule_id` is a unique opaque handle (`sched-<token>`) returned to the
25
+ * caller and used to remove a schedule.
26
+ *
27
+ * ## Never `.all()` an unbounded query
28
+ *
29
+ * {@link listSchedules} reads through `iterate()` with an explicit SQL `LIMIT`
30
+ * (capped, default {@link SCHEDULE_LIST_DEFAULT_LIMIT}), never `.all()` over the
31
+ * whole table — the established OOM-safe read pattern (cf.
32
+ * `exodus/verify-migration.ts`).
33
+ *
34
+ * @module
35
+ * @task T11962
36
+ * @epic T11679
37
+ * @see ./schedule-schema.ts — the drizzle table declaration (physical-name SSoT)
38
+ * @see ./selfimprove-dhq-store.ts — the Gate-3 native-handle accessor precedent this mirrors
39
+ * @see ../tools/schedule-agent-tools.ts — the `cron_schedule` tool that delegates here
40
+ */
41
+ import { randomBytes } from 'node:crypto';
42
+ import { openDualScopeDb } from './dual-scope-db.js';
43
+ import { SCHEDULES_TABLE } from './schedule-schema.js';
44
+ export { SCHEDULES_TABLE } from './schedule-schema.js';
45
+ /** Default cap for {@link listSchedules} — bounds the read so it never OOMs. */
46
+ export const SCHEDULE_LIST_DEFAULT_LIMIT = 500;
47
+ /** Hard ceiling on a {@link listSchedules} request — a caller cannot exceed it. */
48
+ export const SCHEDULE_LIST_MAX_LIMIT = 5000;
49
+ /**
50
+ * Extract the native `DatabaseSync` handle for the PROJECT-scope `cleo.db`.
51
+ *
52
+ * Routes through {@link openDualScopeDb} (the dual-scope chokepoint) — which
53
+ * applies the pragma SSoT, runs the consolidated migrations (creating
54
+ * `schedules`), and manages the singleton cache — then extracts the native handle
55
+ * drizzle holds on `$client`. NEVER opens a raw connection (Gate 3): it reuses the
56
+ * handle the chokepoint already owns.
57
+ *
58
+ * @param cwd - Working directory for project resolution (defaults to `cwd`).
59
+ * @returns The live native handle.
60
+ * @throws When the chokepoint returns a handle without `$client`.
61
+ */
62
+ export async function getScheduleNativeDb(cwd) {
63
+ const handle = await openDualScopeDb('project', cwd);
64
+ const native = handle.db.$client;
65
+ if (!native) {
66
+ throw new Error('T11962: openDualScopeDb returned a project handle without $client — ' +
67
+ 'cannot extract DatabaseSync for schedule persistence.');
68
+ }
69
+ // The node:sqlite surface is wider than NativeHandle; narrow to what we use.
70
+ return native;
71
+ }
72
+ /** Decode a raw SQLite row into a typed {@link ScheduleRecord}. */
73
+ function decodeRow(row) {
74
+ return {
75
+ scheduleId: String(row.schedule_id),
76
+ cronExpr: String(row.cron_expr),
77
+ title: String(row.title),
78
+ description: row.description === null || row.description === undefined ? null : String(row.description),
79
+ // SQLite stores the typed boolean as 0/1.
80
+ enabled: Number(row.enabled) !== 0,
81
+ createdAt: String(row.created_at),
82
+ updatedAt: String(row.updated_at),
83
+ };
84
+ }
85
+ /** Mint a stable opaque schedule handle (`sched-<24 hex>`). */
86
+ function mintScheduleId() {
87
+ return `sched-${randomBytes(12).toString('hex')}`;
88
+ }
89
+ /**
90
+ * REGISTER a recurring schedule: insert one `schedules` row and return its handle.
91
+ *
92
+ * A fresh `schedule_id` is minted (`sched-<token>`) and returned so the caller can
93
+ * later {@link removeSchedule} by it. The row is created `enabled = true`. Writes
94
+ * one atomic INSERT — the chokepoint serializes the single in-process writer
95
+ * daemon-OFF.
96
+ *
97
+ * @param native - The native project `cleo.db` handle (from {@link getScheduleNativeDb}).
98
+ * @param params - The cron expression + task template.
99
+ * @returns The minted schedule handle.
100
+ */
101
+ export function addSchedule(native, params) {
102
+ const scheduleId = mintScheduleId();
103
+ native
104
+ .prepare(`INSERT INTO ${SCHEDULES_TABLE} ` +
105
+ `(schedule_id, cron_expr, title, description, enabled) ` +
106
+ `VALUES (?, ?, ?, ?, 1)`)
107
+ .run(scheduleId, params.cronExpr, params.title, params.description ?? null);
108
+ return scheduleId;
109
+ }
110
+ /**
111
+ * LIST registered schedules in stable creation order (`created_at ASC`, then `id`).
112
+ *
113
+ * Bounded by an explicit SQL `LIMIT` and read through `iterate()` — NEVER an
114
+ * unbounded `.all()`. The request limit is clamped to
115
+ * `[1, {@link SCHEDULE_LIST_MAX_LIMIT}]`, defaulting to
116
+ * {@link SCHEDULE_LIST_DEFAULT_LIMIT}.
117
+ *
118
+ * @param native - The native project `cleo.db` handle.
119
+ * @param limit - Maximum rows to return (clamped). Defaults to the default cap.
120
+ * @returns The ordered schedule records (at most `limit`).
121
+ */
122
+ export function listSchedules(native, limit = SCHEDULE_LIST_DEFAULT_LIMIT) {
123
+ const clamped = Math.max(1, Math.min(Math.floor(limit), SCHEDULE_LIST_MAX_LIMIT));
124
+ const stmt = native.prepare(`SELECT schedule_id, cron_expr, title, description, enabled, created_at, updated_at ` +
125
+ `FROM ${SCHEDULES_TABLE} ORDER BY created_at ASC, id ASC LIMIT ?`);
126
+ const out = [];
127
+ for (const row of stmt.iterate(clamped)) {
128
+ out.push(decodeRow(row));
129
+ }
130
+ return out;
131
+ }
132
+ /**
133
+ * GET one schedule by its opaque handle, or `null` when no such schedule exists.
134
+ *
135
+ * @param native - The native project `cleo.db` handle.
136
+ * @param scheduleId - The `sched-<token>` handle.
137
+ * @returns The schedule record, or `null`.
138
+ */
139
+ export function getSchedule(native, scheduleId) {
140
+ const row = native
141
+ .prepare(`SELECT schedule_id, cron_expr, title, description, enabled, created_at, updated_at ` +
142
+ `FROM ${SCHEDULES_TABLE} WHERE schedule_id = ?`)
143
+ .get(scheduleId);
144
+ return row === undefined ? null : decodeRow(row);
145
+ }
146
+ /**
147
+ * REMOVE a schedule by its opaque handle.
148
+ *
149
+ * Writes one atomic DELETE. Returns whether a row was actually removed (`false`
150
+ * when the handle is unknown).
151
+ *
152
+ * @param native - The native project `cleo.db` handle.
153
+ * @param scheduleId - The `sched-<token>` handle to remove.
154
+ * @returns `true` if a row was deleted, `false` when no such schedule existed.
155
+ */
156
+ export function removeSchedule(native, scheduleId) {
157
+ const result = native
158
+ .prepare(`DELETE FROM ${SCHEDULES_TABLE} WHERE schedule_id = ?`)
159
+ .run(scheduleId);
160
+ return Number(result.changes) > 0;
161
+ }
162
+ //# sourceMappingURL=schedule-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schedule-store.js","sourceRoot":"","sources":["../../src/store/schedule-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,gFAAgF;AAChF,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAY,CAAC;AAExD,mFAAmF;AACnF,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAa,CAAC;AA2CrD;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,GAAY;IACpD,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IACrD,MAAM,MAAM,GAAI,MAAM,CAAC,EAAgD,CAAC,OAAO,CAAC;IAChF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,sEAAsE;YACpE,uDAAuD,CAC1D,CAAC;IACJ,CAAC;IACD,6EAA6E;IAC7E,OAAO,MAAiC,CAAC;AAC3C,CAAC;AAED,mEAAmE;AACnE,SAAS,SAAS,CAAC,GAA4B;IAC7C,OAAO;QACL,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC;QACnC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC;QAC/B,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;QACxB,WAAW,EACT,GAAG,CAAC,WAAW,KAAK,IAAI,IAAI,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC;QAC5F,0CAA0C;QAC1C,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC;QAClC,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;QACjC,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;KAClC,CAAC;AACJ,CAAC;AAED,+DAA+D;AAC/D,SAAS,cAAc;IACrB,OAAO,SAAS,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;AACpD,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,WAAW,CAAC,MAAoB,EAAE,MAAyB;IACzE,MAAM,UAAU,GAAG,cAAc,EAAE,CAAC;IACpC,MAAM;SACH,OAAO,CACN,eAAe,eAAe,GAAG;QAC/B,wDAAwD;QACxD,wBAAwB,CAC3B;SACA,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC;IAC9E,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,aAAa,CAC3B,MAAoB,EACpB,QAAgB,2BAA2B;IAE3C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAClF,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CACzB,qFAAqF;QACnF,QAAQ,eAAe,0CAA0C,CACpE,CAAC;IACF,MAAM,GAAG,GAAqB,EAAE,CAAC;IACjC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACxC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,MAAoB,EAAE,UAAkB;IAClE,MAAM,GAAG,GAAG,MAAM;SACf,OAAO,CACN,qFAAqF;QACnF,QAAQ,eAAe,wBAAwB,CAClD;SACA,GAAG,CAAC,UAAU,CAAC,CAAC;IACnB,OAAO,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AACnD,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,cAAc,CAAC,MAAoB,EAAE,UAAkB;IACrE,MAAM,MAAM,GAAG,MAAM;SAClB,OAAO,CAAC,eAAe,eAAe,wBAAwB,CAAC;SAC/D,GAAG,CAAC,UAAU,CAAC,CAAC;IACnB,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACpC,CAAC"}
@@ -344,7 +344,7 @@ export declare const attachmentRefs: import("drizzle-orm/sqlite-core").SQLiteTab
344
344
  name: string;
345
345
  tableName: "attachment_refs";
346
346
  dataType: "string enum";
347
- data: "task" | "decision" | "pattern" | "learning" | "observation" | "session";
347
+ data: "task" | "observation" | "decision" | "pattern" | "learning" | "session";
348
348
  driverParam: string;
349
349
  notNull: true;
350
350
  hasDefault: false;
@@ -94,7 +94,10 @@
94
94
  export * from '../cleo-shared/index.js';
95
95
  export * from './accounts.js';
96
96
  export * from './agent-registry.js';
97
+ export * from './models-catalog.js';
97
98
  export * from './nexus.js';
99
+ export * from './providers.js';
100
+ export * from './services.js';
98
101
  export * from './session-manifest.js';
99
102
  export * from './skills.js';
100
103
  export * from './telemetry.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/store/schema/cleo-global/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4FG;AAEH,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/store/schema/cleo-global/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4FG;AAEH,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AAEpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAE3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC"}
@@ -94,7 +94,12 @@
94
94
  export * from '../cleo-shared/index.js';
95
95
  export * from './accounts.js';
96
96
  export * from './agent-registry.js';
97
+ // E8-CATALOG-CURATION (T11733) — the models.dev catalog SSoT (`models_catalog`).
98
+ export * from './models-catalog.js';
97
99
  export * from './nexus.js';
100
+ // M3 Provider SSoT (T11703 · epic T11667) — the declarative provider table (`providers`).
101
+ export * from './providers.js';
102
+ export * from './services.js';
98
103
  export * from './session-manifest.js';
99
104
  export * from './skills.js';
100
105
  export * from './telemetry.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/store/schema/cleo-global/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4FG;AAEH,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/store/schema/cleo-global/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4FG;AAEH,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,iFAAiF;AACjF,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,0FAA0F;AAC1F,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC"}