@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,200 @@
1
+ /**
2
+ * Global-scope `cleo.db` — **universal service-credential vault** (3 tables).
3
+ *
4
+ * EP-UNIVERSAL-SERVICE-VAULT (epic T11765 · saga SG-VAULT-CORE T10409 · M2 W1a ·
5
+ * task T11937). The **service** half of the universal vault — machine-wide OAuth /
6
+ * API credentials for third-party SERVICES (github, google, notion, figma, …) —
7
+ * cannibalized from onecli's `app_connections` / `app_configs` /
8
+ * `agent_app_connections`, DROPPING every org / project / billing column (the
9
+ * vault is machine-wide, exactly like the `accounts` LLM-credential pool — T11709,
10
+ * the established precedent this directory mirrors). Three tables:
11
+ *
12
+ * - `service_connections` — one user-connected credential per `(provider, label)`:
13
+ * the encrypted token blob + non-secret metadata (scopes, expiry, username).
14
+ * - `service_configs` — per-provider BYOC (bring-your-own-client) OAuth app:
15
+ * enabled flag + encrypted client secret + non-secret settings (client id,
16
+ * scopes). One row per provider.
17
+ * - `agent_service_grants` — per-agent access to a connection, plus the
18
+ * `session_policy` (block / rate-limit / manual-approval) the trust gate
19
+ * evaluates BEFORE any decrypt (T11937 AC4 — policy-before-decrypt).
20
+ *
21
+ * ## NOT the LLM credential pool (`accounts`) — do not confuse the two
22
+ *
23
+ * `accounts` (T11709) holds MODEL-API credentials (the pool the LLM runner picks
24
+ * from). These `service_*` tables hold SERVICE-API credentials (the things an
25
+ * agent's tools call: github, gmail, …). Different physical names, different
26
+ * consumers, different egress path. The crypto, ISO-timestamp typing, and
27
+ * accessor patterns are shared by design.
28
+ *
29
+ * ## Encrypted at rest (global KDF — reuse, no new crypto · T11710)
30
+ *
31
+ * `credentials_enc` (the `{access_token, refresh_token}` JSON blob) and
32
+ * `client_secret_enc` (the BYOC client secret) are `encryptGlobal()` ciphertext
33
+ * (packages/core/src/crypto/credentials.ts), NEVER plaintext. They keep the
34
+ * versioned `0x01 + 12B IV + 16B authTag` framing and decrypt via the project-
35
+ * INDEPENDENT KDF `HMAC-SHA256(machine-key || globalSalt, id)` with
36
+ * `id = service:${provider}:${label}` — so a service credential decrypts
37
+ * consistently for the machine regardless of the reading project's cwd.
38
+ *
39
+ * ## E10 typing (per docs/migration/sqlite-schema-canonical.md)
40
+ *
41
+ * TEXT ISO-8601 timestamps (`*_at`, GLOB-checked in the migration); named enums
42
+ * ({@link SERVICE_CONNECTION_STATUSES}); typed booleans (`enabled`); JSON-as-TEXT
43
+ * (`scopes`, `metadata`, `settings`, `session_policy`). The consolidated
44
+ * schema-parity gate (T11364) re-derives the CHECK set from THIS metadata, so the
45
+ * forward migration's CHECKs must match it exactly.
46
+ *
47
+ * @task T11937
48
+ * @epic T11765
49
+ * @saga T10409
50
+ * @see ../../../crypto/credentials.ts — `encryptGlobal` / `decryptGlobal` (T11710)
51
+ * @see ./accounts.ts — `accounts` (the SIBLING LLM-credential-pool table, T11709)
52
+ * @see ../../service-connections-accessor.ts — the store CRUD + sealed-handle egress
53
+ * @see ../../service-trust-gate.ts — policy-before-decrypt grant evaluation
54
+ * @see ../../../../migrations/drizzle-cleo-global — the forward migration
55
+ */
56
+ import { sql } from 'drizzle-orm';
57
+ import { index, integer, primaryKey, sqliteTable, text, unique } from 'drizzle-orm/sqlite-core';
58
+ /**
59
+ * Legal `service_connections.status` values — the lifecycle of a connection.
60
+ *
61
+ * - `active` — usable; the token is (or can be refreshed to) valid.
62
+ * - `expired` — the access token (and refresh, if any) has lapsed; needs re-auth.
63
+ * - `revoked` — the user (or provider) revoked the grant; never usable again.
64
+ *
65
+ * @task T11937
66
+ */
67
+ export const SERVICE_CONNECTION_STATUSES = ['active', 'expired', 'revoked'];
68
+ /**
69
+ * `service_connections` — one user-connected service credential per `(provider, label)`.
70
+ *
71
+ * `credentials_enc` is the `encryptGlobal()` ciphertext of the
72
+ * `{access_token, refresh_token}` JSON blob (NEVER plaintext). `scopes` is the
73
+ * JSON-serialized granted scope list; `metadata` is non-secret JSON (e.g. the
74
+ * connected `username`/`email`) safe to display. The `(provider, label)` pair is
75
+ * unique. The OAuth build/exchange/refresh that POPULATES `credentials_enc` is
76
+ * T11939 — this table is the clean seam it writes into.
77
+ *
78
+ * @task T11937
79
+ */
80
+ export const serviceConnections = sqliteTable('service_connections', {
81
+ /** Surrogate primary key (autoincrement via INTEGER PRIMARY KEY rowid alias). */
82
+ id: integer('id').primaryKey(),
83
+ /** Stable service-provider key (e.g. `github` | `google`). Joins SERVICE_PROVIDERS. */
84
+ provider: text('provider').notNull(),
85
+ /**
86
+ * Human-readable connection label, unique WITHIN a provider (e.g. `personal`,
87
+ * `work-org`). The `(provider, label)` pair is the natural unique key and the
88
+ * `${provider}:${label}` half of the `encryptGlobal` id.
89
+ */
90
+ label: text('label').notNull(),
91
+ /**
92
+ * Connection lifecycle — `active` | `expired` | `revoked`
93
+ * ({@link SERVICE_CONNECTION_STATUSES}). Only `active` connections resolve.
94
+ */
95
+ status: text('status', { enum: SERVICE_CONNECTION_STATUSES }).notNull().default('active'),
96
+ /**
97
+ * Encrypted credential blob — `encryptGlobal()` ciphertext of the
98
+ * `{access_token, refresh_token}` JSON (`0x01 + 12B IV + 16B authTag` framing,
99
+ * T11710). NEVER plaintext. NULL until the OAuth dance (T11939) writes a token.
100
+ */
101
+ credentialsEnc: text('credentials_enc'),
102
+ /** JSON-serialized granted scope list (non-secret). Serialized TEXT; defaults to `[]`. */
103
+ scopes: text('scopes').notNull().default('[]'),
104
+ /** ISO-8601 UTC access-token expiry; NULL for a non-expiring token. */
105
+ expiresAt: text('expires_at'),
106
+ /**
107
+ * Free-form NON-SECRET JSON (e.g. connected `username` / `email` / account id)
108
+ * safe to display. NEVER holds token material. Serialized TEXT; defaults `{}`.
109
+ */
110
+ metadata: text('metadata').notNull().default('{}'),
111
+ /** ISO-8601 UTC instant the connection was first established. Defaults to write time. */
112
+ connectedAt: text('connected_at').notNull().default(sql `(datetime('now'))`),
113
+ /** ISO-8601 UTC last-update instant. Defaults to write time; bumped on mutation. */
114
+ updatedAt: text('updated_at').notNull().default(sql `(datetime('now'))`),
115
+ }, (table) => [
116
+ // A label is unique within a provider — the natural unique key.
117
+ unique('ux_service_connections_provider_label').on(table.provider, table.label),
118
+ // Lookup index — resolve a provider's active connections.
119
+ index('idx_service_connections_provider_status').on(table.provider, table.status),
120
+ ]);
121
+ /**
122
+ * `service_configs` — per-provider BYOC (bring-your-own-client) OAuth app config.
123
+ *
124
+ * When a user brings their own OAuth client (rather than using CLEO's first-party
125
+ * app), the client id + non-secret OAuth settings live in `settings` (JSON) and
126
+ * the client SECRET lives encrypted in `client_secret_enc`. One row per provider
127
+ * (`UNIQUE(provider)`). `enabled` toggles whether the BYOC config is used. This
128
+ * is the clean seam the OAuth flow (T11939) reads to prefer a user client over
129
+ * the registry default.
130
+ *
131
+ * @task T11937
132
+ */
133
+ export const serviceConfigs = sqliteTable('service_configs', {
134
+ /** Surrogate primary key. */
135
+ id: integer('id').primaryKey(),
136
+ /** Stable service-provider key — unique (one BYOC config per provider). */
137
+ provider: text('provider').notNull(),
138
+ /** Whether this BYOC config is active. Typed boolean (CHECK IN (0,1)). Default false. */
139
+ enabled: integer('enabled', { mode: 'boolean' }).notNull().default(false),
140
+ /**
141
+ * Encrypted BYOC client secret — `encryptGlobal()` ciphertext (id
142
+ * `service-config:${provider}`). NEVER plaintext. NULL for a public-client
143
+ * (PKCE) provider that has no secret.
144
+ */
145
+ clientSecretEnc: text('client_secret_enc'),
146
+ /**
147
+ * Non-secret BYOC settings JSON — the user's OAuth `client_id`, custom
148
+ * `scopes`, custom endpoints, etc. NEVER holds the client secret. Serialized
149
+ * TEXT; defaults `{}`.
150
+ */
151
+ settings: text('settings').notNull().default('{}'),
152
+ /** ISO-8601 UTC row-creation instant. Defaults to write time. */
153
+ createdAt: text('created_at').notNull().default(sql `(datetime('now'))`),
154
+ /** ISO-8601 UTC last-update instant. Defaults to write time; bumped on mutation. */
155
+ updatedAt: text('updated_at').notNull().default(sql `(datetime('now'))`),
156
+ }, (table) => [
157
+ // One BYOC config per provider.
158
+ unique('ux_service_configs_provider').on(table.provider),
159
+ ]);
160
+ /**
161
+ * `agent_service_grants` — per-agent access to a service connection + policy.
162
+ *
163
+ * A grant authorizes one `agent_id` to use one `service_connection_id`, carrying
164
+ * the `session_policy` JSON (block / rate-limit / manual-approval) the trust gate
165
+ * (T11937 AC4) evaluates BEFORE any `decryptGlobal`. ABSENCE of a grant denies;
166
+ * a `block` policy denies; only a passing policy lets the store decrypt. The
167
+ * composite `(agent_id, service_connection_id)` is the primary key.
168
+ *
169
+ * `service_connection_id` references `service_connections(id)` — both tables live
170
+ * in the SAME global `cleo.db` file (Pattern A), so the FK is in-file and
171
+ * enforceable. The FK is declared natively (intra-domain, single global file —
172
+ * mirrors the agent-registry FK convention).
173
+ *
174
+ * @task T11937
175
+ */
176
+ export const agentServiceGrants = sqliteTable('agent_service_grants', {
177
+ /** The granted agent's id (FK-soft to the agent registry; string id). */
178
+ agentId: text('agent_id').notNull(),
179
+ /** The service connection this grant authorizes — references `service_connections(id)`. */
180
+ serviceConnectionId: integer('service_connection_id')
181
+ .notNull()
182
+ .references(() => serviceConnections.id),
183
+ /**
184
+ * Per-session access policy JSON evaluated BEFORE decrypt. Shape (see
185
+ * {@link import('../../service-trust-gate.js').SessionPolicy}):
186
+ * `{ mode: 'allow'|'block', rateLimit?: {...}, manualApproval?: boolean }`.
187
+ * Serialized TEXT; defaults `{"mode":"allow"}` (a bare grant = allow).
188
+ */
189
+ sessionPolicy: text('session_policy').notNull().default('{"mode":"allow"}'),
190
+ /** ISO-8601 UTC grant-creation instant. Defaults to write time. */
191
+ createdAt: text('created_at').notNull().default(sql `(datetime('now'))`),
192
+ /** ISO-8601 UTC last-update instant. Defaults to write time; bumped on mutation. */
193
+ updatedAt: text('updated_at').notNull().default(sql `(datetime('now'))`),
194
+ }, (table) => [
195
+ // A grant is uniquely identified by (agent, connection).
196
+ primaryKey({ columns: [table.agentId, table.serviceConnectionId] }),
197
+ // Lookup index — resolve all grants for one agent.
198
+ index('idx_agent_service_grants_agent').on(table.agentId),
199
+ ]);
200
+ //# sourceMappingURL=services.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"services.js","sourceRoot":"","sources":["../../../../src/store/schema/cleo-global/services.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,217 @@
1
+ /**
2
+ * Global-scope `cleo.db` — cross-project **session manifest** mirror (1 table).
3
+ *
4
+ * EP-SESSION-MANIFEST (epic T11638, task T11639). The `session_manifest` table is
5
+ * a CROSS-PROJECT MIRROR of the per-project `tasks_sessions` rows: each project's
6
+ * authoritative session lives in that project's `tasks_sessions` table (PROJECT
7
+ * scope `cleo.db`), and a best-effort writer copies a compact projection into this
8
+ * GLOBAL-scope row so the fleet has a single, machine-wide view of every session
9
+ * across every project — without ATTACHing N per-project DBs.
10
+ *
11
+ * ## NOT named `sessions` (AC1)
12
+ *
13
+ * The table is deliberately `session_manifest`, NOT `sessions`. The authoritative
14
+ * project-tier table is `tasks_sessions`; naming the global mirror `sessions` would
15
+ * invite a future reader to mistake the mirror for the source of truth. The name
16
+ * encodes its role: a manifest (an index/catalog), never the authority.
17
+ *
18
+ * ## MIRROR, never authoritative (AC4)
19
+ *
20
+ * Every column here is derived from the project row. The mirror writer is
21
+ * best-effort (a failure NEVER fails the underlying session op) and reconcile-on-
22
+ * start re-reads the authoritative project row and OVERWRITES the manifest row, so
23
+ * a stale or partially-written manifest entry can never drift into being treated as
24
+ * truth. Consumers needing exact session state MUST read the project's
25
+ * `tasks_sessions`; this table answers "which sessions exist, where, and how are
26
+ * they forked" cheaply across projects.
27
+ *
28
+ * ## Identity (`project_id`)
29
+ *
30
+ * `project_id` is the canonical `nexus_project_registry.project_id` (12-hex) for
31
+ * the project that owns the session — a soft FK into the global registry table in
32
+ * THIS same `cleo.db`. It is reused (never minted here) so the manifest joins
33
+ * cleanly to the registry. Nullable: a session started outside any resolvable
34
+ * registered project still mirrors, with `project_id` NULL.
35
+ *
36
+ * ## Fork tree (`parent_session_id`)
37
+ *
38
+ * `parent_session_id` mirrors the project row's own `parent_session_id`
39
+ * (populated from `CLEO_PARENT_SESSION_ID`, stamped by the supervisor — PR #996 /
40
+ * T11629). It reconstructs the orchestrator→worker fork tree machine-wide without
41
+ * a per-project DB scan. Soft self-reference to `session_manifest.session_id`;
42
+ * NULL for a root session.
43
+ *
44
+ * @task T11639
45
+ * @epic T11638
46
+ * @saga T11242
47
+ * @see ../cleo-project/tasks-core.ts — `tasksSessions` (the authoritative source)
48
+ * @see ./nexus.ts — `nexusProjectRegistry` (the `project_id` SSoT)
49
+ * @see ../../sessions/session-manifest-mirror.ts — the best-effort mirror writers
50
+ */
51
+ /**
52
+ * `session_manifest` — cross-project mirror of per-project `tasks_sessions` rows.
53
+ *
54
+ * A best-effort projection: one row per session, keyed on the session id, carrying
55
+ * just enough to answer fleet-wide "what sessions exist, in which project, and how
56
+ * are they forked" without opening every project's `cleo.db`. NOT authoritative —
57
+ * the project's `tasks_sessions` row is the source of truth; this row is overwritten
58
+ * on reconcile-on-start so it can never drift into authority (AC4).
59
+ *
60
+ * @task T11639
61
+ */
62
+ export declare const sessionManifest: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
63
+ name: "session_manifest";
64
+ schema: undefined;
65
+ columns: {
66
+ sessionId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
67
+ name: string;
68
+ tableName: "session_manifest";
69
+ dataType: "string";
70
+ data: string;
71
+ driverParam: string;
72
+ notNull: true;
73
+ hasDefault: false;
74
+ isPrimaryKey: true;
75
+ isAutoincrement: false;
76
+ hasRuntimeDefault: false;
77
+ enumValues: [string, ...string[]];
78
+ baseColumn: never;
79
+ identity: undefined;
80
+ generated: undefined;
81
+ }, {}>;
82
+ projectId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
83
+ name: string;
84
+ tableName: "session_manifest";
85
+ dataType: "string";
86
+ data: string;
87
+ driverParam: string;
88
+ notNull: false;
89
+ hasDefault: false;
90
+ isPrimaryKey: false;
91
+ isAutoincrement: false;
92
+ hasRuntimeDefault: false;
93
+ enumValues: [string, ...string[]];
94
+ baseColumn: never;
95
+ identity: undefined;
96
+ generated: undefined;
97
+ }, {}>;
98
+ parentSessionId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
99
+ name: string;
100
+ tableName: "session_manifest";
101
+ dataType: "string";
102
+ data: string;
103
+ driverParam: string;
104
+ notNull: false;
105
+ hasDefault: false;
106
+ isPrimaryKey: false;
107
+ isAutoincrement: false;
108
+ hasRuntimeDefault: false;
109
+ enumValues: [string, ...string[]];
110
+ baseColumn: never;
111
+ identity: undefined;
112
+ generated: undefined;
113
+ }, {}>;
114
+ name: import("drizzle-orm/sqlite-core").SQLiteColumn<{
115
+ name: string;
116
+ tableName: "session_manifest";
117
+ dataType: "string";
118
+ data: string;
119
+ driverParam: string;
120
+ notNull: false;
121
+ hasDefault: false;
122
+ isPrimaryKey: false;
123
+ isAutoincrement: false;
124
+ hasRuntimeDefault: false;
125
+ enumValues: [string, ...string[]];
126
+ baseColumn: never;
127
+ identity: undefined;
128
+ generated: undefined;
129
+ }, {}>;
130
+ status: import("drizzle-orm/sqlite-core").SQLiteColumn<{
131
+ name: string;
132
+ tableName: "session_manifest";
133
+ dataType: "string";
134
+ data: string;
135
+ driverParam: string;
136
+ notNull: false;
137
+ hasDefault: false;
138
+ isPrimaryKey: false;
139
+ isAutoincrement: false;
140
+ hasRuntimeDefault: false;
141
+ enumValues: [string, ...string[]];
142
+ baseColumn: never;
143
+ identity: undefined;
144
+ generated: undefined;
145
+ }, {}>;
146
+ projectPath: import("drizzle-orm/sqlite-core").SQLiteColumn<{
147
+ name: string;
148
+ tableName: "session_manifest";
149
+ dataType: "string";
150
+ data: string;
151
+ driverParam: string;
152
+ notNull: false;
153
+ hasDefault: false;
154
+ isPrimaryKey: false;
155
+ isAutoincrement: false;
156
+ hasRuntimeDefault: false;
157
+ enumValues: [string, ...string[]];
158
+ baseColumn: never;
159
+ identity: undefined;
160
+ generated: undefined;
161
+ }, {}>;
162
+ startedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
163
+ name: string;
164
+ tableName: "session_manifest";
165
+ dataType: "string";
166
+ data: string;
167
+ driverParam: string;
168
+ notNull: false;
169
+ hasDefault: false;
170
+ isPrimaryKey: false;
171
+ isAutoincrement: false;
172
+ hasRuntimeDefault: false;
173
+ enumValues: [string, ...string[]];
174
+ baseColumn: never;
175
+ identity: undefined;
176
+ generated: undefined;
177
+ }, {}>;
178
+ endedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
179
+ name: string;
180
+ tableName: "session_manifest";
181
+ dataType: "string";
182
+ data: string;
183
+ driverParam: string;
184
+ notNull: false;
185
+ hasDefault: false;
186
+ isPrimaryKey: false;
187
+ isAutoincrement: false;
188
+ hasRuntimeDefault: false;
189
+ enumValues: [string, ...string[]];
190
+ baseColumn: never;
191
+ identity: undefined;
192
+ generated: undefined;
193
+ }, {}>;
194
+ mirroredAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
195
+ name: string;
196
+ tableName: "session_manifest";
197
+ dataType: "string";
198
+ data: string;
199
+ driverParam: string;
200
+ notNull: true;
201
+ hasDefault: true;
202
+ isPrimaryKey: false;
203
+ isAutoincrement: false;
204
+ hasRuntimeDefault: false;
205
+ enumValues: [string, ...string[]];
206
+ baseColumn: never;
207
+ identity: undefined;
208
+ generated: undefined;
209
+ }, {}>;
210
+ };
211
+ dialect: "sqlite";
212
+ }>;
213
+ /** Row type for `session_manifest` SELECT queries (mirror shape). */
214
+ export type SessionManifestRow = typeof sessionManifest.$inferSelect;
215
+ /** Row type for `session_manifest` INSERT/UPSERT operations (mirror shape). */
216
+ export type NewSessionManifestRow = typeof sessionManifest.$inferInsert;
217
+ //# sourceMappingURL=session-manifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-manifest.d.ts","sourceRoot":"","sources":["../../../../src/store/schema/cleo-global/session-manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAKH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsC3B,CAAC;AAEF,qEAAqE;AACrE,MAAM,MAAM,kBAAkB,GAAG,OAAO,eAAe,CAAC,YAAY,CAAC;AACrE,+EAA+E;AAC/E,MAAM,MAAM,qBAAqB,GAAG,OAAO,eAAe,CAAC,YAAY,CAAC"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Global-scope `cleo.db` — cross-project **session manifest** mirror (1 table).
3
+ *
4
+ * EP-SESSION-MANIFEST (epic T11638, task T11639). The `session_manifest` table is
5
+ * a CROSS-PROJECT MIRROR of the per-project `tasks_sessions` rows: each project's
6
+ * authoritative session lives in that project's `tasks_sessions` table (PROJECT
7
+ * scope `cleo.db`), and a best-effort writer copies a compact projection into this
8
+ * GLOBAL-scope row so the fleet has a single, machine-wide view of every session
9
+ * across every project — without ATTACHing N per-project DBs.
10
+ *
11
+ * ## NOT named `sessions` (AC1)
12
+ *
13
+ * The table is deliberately `session_manifest`, NOT `sessions`. The authoritative
14
+ * project-tier table is `tasks_sessions`; naming the global mirror `sessions` would
15
+ * invite a future reader to mistake the mirror for the source of truth. The name
16
+ * encodes its role: a manifest (an index/catalog), never the authority.
17
+ *
18
+ * ## MIRROR, never authoritative (AC4)
19
+ *
20
+ * Every column here is derived from the project row. The mirror writer is
21
+ * best-effort (a failure NEVER fails the underlying session op) and reconcile-on-
22
+ * start re-reads the authoritative project row and OVERWRITES the manifest row, so
23
+ * a stale or partially-written manifest entry can never drift into being treated as
24
+ * truth. Consumers needing exact session state MUST read the project's
25
+ * `tasks_sessions`; this table answers "which sessions exist, where, and how are
26
+ * they forked" cheaply across projects.
27
+ *
28
+ * ## Identity (`project_id`)
29
+ *
30
+ * `project_id` is the canonical `nexus_project_registry.project_id` (12-hex) for
31
+ * the project that owns the session — a soft FK into the global registry table in
32
+ * THIS same `cleo.db`. It is reused (never minted here) so the manifest joins
33
+ * cleanly to the registry. Nullable: a session started outside any resolvable
34
+ * registered project still mirrors, with `project_id` NULL.
35
+ *
36
+ * ## Fork tree (`parent_session_id`)
37
+ *
38
+ * `parent_session_id` mirrors the project row's own `parent_session_id`
39
+ * (populated from `CLEO_PARENT_SESSION_ID`, stamped by the supervisor — PR #996 /
40
+ * T11629). It reconstructs the orchestrator→worker fork tree machine-wide without
41
+ * a per-project DB scan. Soft self-reference to `session_manifest.session_id`;
42
+ * NULL for a root session.
43
+ *
44
+ * @task T11639
45
+ * @epic T11638
46
+ * @saga T11242
47
+ * @see ../cleo-project/tasks-core.ts — `tasksSessions` (the authoritative source)
48
+ * @see ./nexus.ts — `nexusProjectRegistry` (the `project_id` SSoT)
49
+ * @see ../../sessions/session-manifest-mirror.ts — the best-effort mirror writers
50
+ */
51
+ import { sql } from 'drizzle-orm';
52
+ import { index, sqliteTable, text } from 'drizzle-orm/sqlite-core';
53
+ /**
54
+ * `session_manifest` — cross-project mirror of per-project `tasks_sessions` rows.
55
+ *
56
+ * A best-effort projection: one row per session, keyed on the session id, carrying
57
+ * just enough to answer fleet-wide "what sessions exist, in which project, and how
58
+ * are they forked" without opening every project's `cleo.db`. NOT authoritative —
59
+ * the project's `tasks_sessions` row is the source of truth; this row is overwritten
60
+ * on reconcile-on-start so it can never drift into authority (AC4).
61
+ *
62
+ * @task T11639
63
+ */
64
+ export const sessionManifest = sqliteTable('session_manifest', {
65
+ /** Session id (canonical `ses_...` form). Primary key — one manifest row per session. */
66
+ sessionId: text('session_id').primaryKey(),
67
+ /**
68
+ * Canonical `nexus_project_registry.project_id` (12-hex) of the owning project.
69
+ * Soft FK into the global registry in THIS `cleo.db`; NULL when the session was
70
+ * started outside any resolvable registered project.
71
+ */
72
+ projectId: text('project_id'),
73
+ /**
74
+ * Fork-tree parent session id, mirrored from the project row's own
75
+ * `parent_session_id` (sourced from `CLEO_PARENT_SESSION_ID`, T11629). Soft
76
+ * self-reference to `session_manifest.session_id`; NULL for a root session.
77
+ */
78
+ parentSessionId: text('parent_session_id'),
79
+ /** Mirrored session name. */
80
+ name: text('name'),
81
+ /** Mirrored session status (`active` | `ended` | `orphaned` | …). */
82
+ status: text('status'),
83
+ /** Mirrored absolute project root path (for operator readability / debugging). */
84
+ projectPath: text('project_path'),
85
+ /** Mirrored ISO-8601 UTC session-start instant. */
86
+ startedAt: text('started_at'),
87
+ /** Mirrored ISO-8601 UTC session-end instant; NULL while active. */
88
+ endedAt: text('ended_at'),
89
+ /**
90
+ * ISO-8601 UTC instant this mirror row was last written by a mirror/reconcile
91
+ * writer (NOT the session's own activity). Defaults to write time.
92
+ */
93
+ mirroredAt: text('mirrored_at').notNull().default(sql `(datetime('now'))`),
94
+ }, (table) => [
95
+ index('idx_session_manifest_project_id').on(table.projectId),
96
+ index('idx_session_manifest_parent').on(table.parentSessionId),
97
+ index('idx_session_manifest_status').on(table.status),
98
+ ]);
99
+ //# sourceMappingURL=session-manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-manifest.js","sourceRoot":"","sources":["../../../../src/store/schema/cleo-global/session-manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAEnE;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CACxC,kBAAkB,EAClB;IACE,yFAAyF;IACzF,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,UAAU,EAAE;IAC1C;;;;OAIG;IACH,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC;IAC7B;;;;OAIG;IACH,eAAe,EAAE,IAAI,CAAC,mBAAmB,CAAC;IAC1C,6BAA6B;IAC7B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;IAClB,qEAAqE;IACrE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC;IACtB,kFAAkF;IAClF,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC;IACjC,mDAAmD;IACnD,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC;IAC7B,oEAAoE;IACpE,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC;IACzB;;;OAGG;IACH,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,CAAA,mBAAmB,CAAC;CAC1E,EACD,CAAC,KAAK,EAAE,EAAE,CAAC;IACT,KAAK,CAAC,iCAAiC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;IAC5D,KAAK,CAAC,6BAA6B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC;IAC9D,KAAK,CAAC,6BAA6B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;CACtD,CACF,CAAC"}
@@ -351,7 +351,7 @@ export declare const docsAttachmentRefs: import("drizzle-orm/sqlite-core").SQLit
351
351
  name: string;
352
352
  tableName: "docs_attachment_refs";
353
353
  dataType: "string enum";
354
- data: "task" | "decision" | "pattern" | "learning" | "observation" | "session";
354
+ data: "task" | "observation" | "decision" | "pattern" | "learning" | "session";
355
355
  driverParam: string;
356
356
  notNull: true;
357
357
  hasDefault: false;
@@ -595,7 +595,7 @@ export declare const tasksReleases: import("drizzle-orm/sqlite-core").SQLiteTabl
595
595
  name: string;
596
596
  tableName: "tasks_releases";
597
597
  dataType: "string enum";
598
- data: "latest" | "beta" | "dev" | "hotfix";
598
+ data: "beta" | "latest" | "dev" | "hotfix";
599
599
  driverParam: string;
600
600
  notNull: true;
601
601
  hasDefault: true;
@@ -1490,6 +1490,22 @@ export declare const tasksSessions: import("drizzle-orm/sqlite-core").SQLiteTabl
1490
1490
  identity: undefined;
1491
1491
  generated: undefined;
1492
1492
  }, {}>;
1493
+ parentSessionId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1494
+ name: string;
1495
+ tableName: "tasks_sessions";
1496
+ dataType: "string";
1497
+ data: string;
1498
+ driverParam: string;
1499
+ notNull: false;
1500
+ hasDefault: false;
1501
+ isPrimaryKey: false;
1502
+ isAutoincrement: false;
1503
+ hasRuntimeDefault: false;
1504
+ enumValues: [string, ...string[]];
1505
+ baseColumn: never;
1506
+ identity: undefined;
1507
+ generated: undefined;
1508
+ }, {}>;
1493
1509
  agentIdentifier: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1494
1510
  name: string;
1495
1511
  tableName: "tasks_sessions";
@@ -1 +1 @@
1
- {"version":3,"file":"tasks-core.d.ts","sourceRoot":"","sources":["../../../../src/store/schema/cleo-project/tasks-core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tasks-core.d.ts","sourceRoot":"","sources":["../../../../src/store/schema/cleo-project/tasks-core.ts"],"names":[],"mappings":"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"}
@@ -355,6 +355,19 @@ export const tasksSessions = sqliteTable('tasks_sessions', {
355
355
  nextSessionId: text('next_session_id').references(() => tasksSessions.id, {
356
356
  onDelete: 'set null',
357
357
  }),
358
+ /**
359
+ * Fork-tree PARENT session pointer (self-FK). Distinct from
360
+ * `previousSessionId` (the linear resume chain): `parentSessionId` is the
361
+ * orchestrator→worker spawn edge, sourced from `CLEO_PARENT_SESSION_ID`
362
+ * (stamped by the supervisor — T11629 / PR #996) at session start. NULL for a
363
+ * root session with no spawning parent. Nullable, `ON DELETE SET NULL`.
364
+ *
365
+ * @task T11639
366
+ * @epic T11638
367
+ */
368
+ parentSessionId: text('parent_session_id').references(() => tasksSessions.id, {
369
+ onDelete: 'set null',
370
+ }),
358
371
  /** Agent identifier. */
359
372
  agentIdentifier: text('agent_identifier'),
360
373
  /** ISO-8601 UTC handoff-consumed instant (canonical TEXT, §4). */
@@ -387,6 +400,7 @@ export const tasksSessions = sqliteTable('tasks_sessions', {
387
400
  }, (table) => [
388
401
  index('idx_tasks_sessions_status').on(table.status),
389
402
  index('idx_tasks_sessions_previous').on(table.previousSessionId),
403
+ index('idx_tasks_sessions_parent').on(table.parentSessionId),
390
404
  index('idx_tasks_sessions_agent_identifier').on(table.agentIdentifier),
391
405
  index('idx_tasks_sessions_started_at').on(table.startedAt),
392
406
  index('idx_tasks_sessions_status_started_at').on(table.status, table.startedAt),