@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
@@ -22,6 +22,18 @@ import type { DatabaseSync } from 'node:sqlite';
22
22
  export declare const STALE_CLAIM_MINUTES = 30;
23
23
  /** Max retry count before item is moved to 'failed' permanently. */
24
24
  export declare const MAX_RETRY_COUNT = 5;
25
+ /**
26
+ * Base exponential-backoff delay in seconds for a re-queued item (T10405).
27
+ *
28
+ * A failed/recovered item's next claim is gated until
29
+ * `now + BACKOFF_BASE_SECONDS * 2^(retryCount - 1)`, capped at
30
+ * {@link BACKOFF_MAX_SECONDS}. With base 30s the schedule is
31
+ * 30s → 60s → 120s → 240s (then capped), so a transiently-failing item
32
+ * backs off geometrically instead of hot-looping the worker.
33
+ */
34
+ export declare const BACKOFF_BASE_SECONDS = 30;
35
+ /** Maximum exponential-backoff delay in seconds (cap for {@link computeBackoffSeconds}). */
36
+ export declare const BACKOFF_MAX_SECONDS: number;
25
37
  /** Options for {@link claimNextItem}. */
26
38
  export interface ClaimOptions {
27
39
  /**
@@ -52,6 +64,20 @@ export interface StaleRecoveryResult {
52
64
  /** Number of items permanently failed due to max retries. */
53
65
  failed: number;
54
66
  }
67
+ /**
68
+ * Compute the exponential-backoff delay (seconds) for a re-queued item (T10405).
69
+ *
70
+ * Returns `BACKOFF_BASE_SECONDS * 2^(attempt - 1)` capped at
71
+ * {@link BACKOFF_MAX_SECONDS}. `attempt` is the *new* retry count (1-based:
72
+ * the first failure backs off by the base delay). An `attempt` of 0 or less is
73
+ * clamped to 1 so the first retry always waits at least the base delay.
74
+ *
75
+ * @param attempt - The new (post-increment) retry count for the item.
76
+ * @returns Backoff delay in seconds, in `[BACKOFF_BASE_SECONDS, BACKOFF_MAX_SECONDS]`.
77
+ *
78
+ * @task T10405
79
+ */
80
+ export declare function computeBackoffSeconds(attempt: number): number;
55
81
  /**
56
82
  * Claim the next pending item from the deriver queue.
57
83
  *
@@ -78,8 +104,10 @@ export declare function completeItem(itemId: string, options?: CompleteOptions):
78
104
  * Mark a claimed item as failed (with optional error message).
79
105
  *
80
106
  * If `retryCount` is below {@link MAX_RETRY_COUNT}, the item is re-queued
81
- * to `pending` with `retryCount + 1` (for retry next batch).
82
- * Otherwise the item is permanently moved to `failed`.
107
+ * to `pending` with `retryCount + 1` and an exponential-backoff
108
+ * `next_attempt_at` (T10405) so it is not re-claimed until the backoff window
109
+ * elapses. Otherwise the item is permanently moved to `failed` (DLQ semantics)
110
+ * and its backoff gate is cleared.
83
111
  *
84
112
  * @param itemId - The deriver_queue.id to fail.
85
113
  * @param errorMsg - Human-readable error for the error_msg column.
@@ -1 +1 @@
1
- {"version":3,"file":"queue-manager.d.ts","sourceRoot":"","sources":["../../src/deriver/queue-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAOhD,+DAA+D;AAC/D,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAEtC,oEAAoE;AACpE,eAAO,MAAM,eAAe,IAAI,CAAC;AASjC,yCAAyC;AACzC,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,EAAE,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;CAC1B;AAED,4BAA4B;AAC5B,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,6DAA6D;AAC7D,MAAM,WAAW,eAAe;IAC9B,yCAAyC;IACzC,EAAE,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;CAC1B;AAED,8CAA8C;AAC9C,MAAM,WAAW,mBAAmB;IAClC,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,CAAC;IACjB,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAC;CAChB;AAqCD;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAE,YAAiB,GAAG,WAAW,GAAG,IAAI,CA2D5E;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,IAAI,CAYhF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,IAAI,CAsB9F;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,eAAoB,GAAG,mBAAmB,CA0CpF"}
1
+ {"version":3,"file":"queue-manager.d.ts","sourceRoot":"","sources":["../../src/deriver/queue-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAOhD,+DAA+D;AAC/D,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAEtC,oEAAoE;AACpE,eAAO,MAAM,eAAe,IAAI,CAAC;AAEjC;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAEvC,4FAA4F;AAC5F,eAAO,MAAM,mBAAmB,QAAU,CAAC;AAS3C,yCAAyC;AACzC,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,EAAE,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;CAC1B;AAED,4BAA4B;AAC5B,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,6DAA6D;AAC7D,MAAM,WAAW,eAAe;IAC9B,yCAAyC;IACzC,EAAE,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;CAC1B;AAED,8CAA8C;AAC9C,MAAM,WAAW,mBAAmB;IAClC,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,CAAC;IACjB,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAC;CAChB;AAiCD;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAI7D;AAWD;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAE,YAAiB,GAAG,WAAW,GAAG,IAAI,CA+D5E;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,IAAI,CAYhF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,IAAI,CAyB9F;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,eAAoB,GAAG,mBAAmB,CA4CpF"}
@@ -25,6 +25,18 @@ import { getBrainNativeDb } from '../store/memory-sqlite.js';
25
25
  export const STALE_CLAIM_MINUTES = 30;
26
26
  /** Max retry count before item is moved to 'failed' permanently. */
27
27
  export const MAX_RETRY_COUNT = 5;
28
+ /**
29
+ * Base exponential-backoff delay in seconds for a re-queued item (T10405).
30
+ *
31
+ * A failed/recovered item's next claim is gated until
32
+ * `now + BACKOFF_BASE_SECONDS * 2^(retryCount - 1)`, capped at
33
+ * {@link BACKOFF_MAX_SECONDS}. With base 30s the schedule is
34
+ * 30s → 60s → 120s → 240s (then capped), so a transiently-failing item
35
+ * backs off geometrically instead of hot-looping the worker.
36
+ */
37
+ export const BACKOFF_BASE_SECONDS = 30;
38
+ /** Maximum exponential-backoff delay in seconds (cap for {@link computeBackoffSeconds}). */
39
+ export const BACKOFF_MAX_SECONDS = 30 * 60;
28
40
  /** SQLite busy error string (returned when BEGIN IMMEDIATE cannot acquire lock). */
29
41
  const SQLITE_BUSY_STR = 'database is locked';
30
42
  // ============================================================================
@@ -38,6 +50,28 @@ function defaultWorkerId() {
38
50
  function minutesAgo(n) {
39
51
  return new Date(Date.now() - n * 60_000).toISOString();
40
52
  }
53
+ /**
54
+ * Compute the exponential-backoff delay (seconds) for a re-queued item (T10405).
55
+ *
56
+ * Returns `BACKOFF_BASE_SECONDS * 2^(attempt - 1)` capped at
57
+ * {@link BACKOFF_MAX_SECONDS}. `attempt` is the *new* retry count (1-based:
58
+ * the first failure backs off by the base delay). An `attempt` of 0 or less is
59
+ * clamped to 1 so the first retry always waits at least the base delay.
60
+ *
61
+ * @param attempt - The new (post-increment) retry count for the item.
62
+ * @returns Backoff delay in seconds, in `[BACKOFF_BASE_SECONDS, BACKOFF_MAX_SECONDS]`.
63
+ *
64
+ * @task T10405
65
+ */
66
+ export function computeBackoffSeconds(attempt) {
67
+ const safeAttempt = attempt < 1 ? 1 : attempt;
68
+ const delay = BACKOFF_BASE_SECONDS * 2 ** (safeAttempt - 1);
69
+ return Math.min(delay, BACKOFF_MAX_SECONDS);
70
+ }
71
+ /** Return ISO 8601 timestamp for N seconds in the future. */
72
+ function secondsFromNow(n) {
73
+ return new Date(Date.now() + n * 1000).toISOString();
74
+ }
41
75
  // ============================================================================
42
76
  // Public API
43
77
  // ============================================================================
@@ -70,18 +104,22 @@ export function claimNextItem(options = {}) {
70
104
  throw err;
71
105
  }
72
106
  try {
107
+ // T10405: gate on the exponential-backoff window — a re-queued item with a
108
+ // future `next_attempt_at` is skipped until its backoff elapses. Fresh items
109
+ // (next_attempt_at IS NULL) are always eligible.
110
+ const now = new Date().toISOString();
73
111
  const row = nativeDb
74
112
  .prepare(`SELECT id, item_type, item_id, priority, retry_count
75
113
  FROM deriver_queue
76
114
  WHERE status = 'pending'
115
+ AND (next_attempt_at IS NULL OR next_attempt_at <= ?)
77
116
  ORDER BY priority DESC, created_at ASC
78
117
  LIMIT 1`)
79
- .get();
118
+ .get(now);
80
119
  if (!row) {
81
120
  nativeDb.exec('ROLLBACK');
82
121
  return null;
83
122
  }
84
- const now = new Date().toISOString();
85
123
  nativeDb
86
124
  .prepare(`UPDATE deriver_queue
87
125
  SET status = 'in_progress', claimed_at = ?, claimed_by = ?
@@ -129,8 +167,10 @@ export function completeItem(itemId, options = {}) {
129
167
  * Mark a claimed item as failed (with optional error message).
130
168
  *
131
169
  * If `retryCount` is below {@link MAX_RETRY_COUNT}, the item is re-queued
132
- * to `pending` with `retryCount + 1` (for retry next batch).
133
- * Otherwise the item is permanently moved to `failed`.
170
+ * to `pending` with `retryCount + 1` and an exponential-backoff
171
+ * `next_attempt_at` (T10405) so it is not re-claimed until the backoff window
172
+ * elapses. Otherwise the item is permanently moved to `failed` (DLQ semantics)
173
+ * and its backoff gate is cleared.
134
174
  *
135
175
  * @param itemId - The deriver_queue.id to fail.
136
176
  * @param errorMsg - Human-readable error for the error_msg column.
@@ -147,13 +187,16 @@ export function failItem(itemId, errorMsg, options = {}) {
147
187
  if (!row)
148
188
  return;
149
189
  const nextRetry = (row.retry_count ?? 0) + 1;
150
- const nextStatus = nextRetry >= MAX_RETRY_COUNT ? 'failed' : 'pending';
190
+ const permanentFail = nextRetry >= MAX_RETRY_COUNT;
191
+ const nextStatus = permanentFail ? 'failed' : 'pending';
192
+ // Re-queued items back off geometrically; permanently-failed items clear the gate.
193
+ const nextAttemptAt = permanentFail ? null : secondsFromNow(computeBackoffSeconds(nextRetry));
151
194
  nativeDb
152
195
  .prepare(`UPDATE deriver_queue
153
196
  SET status = ?, retry_count = ?, error_msg = ?,
154
- claimed_at = NULL, claimed_by = NULL
197
+ claimed_at = NULL, claimed_by = NULL, next_attempt_at = ?
155
198
  WHERE id = ? AND status = 'in_progress'`)
156
- .run(nextStatus, nextRetry, errorMsg, itemId);
199
+ .run(nextStatus, nextRetry, errorMsg, nextAttemptAt, itemId);
157
200
  }
158
201
  /**
159
202
  * Re-queue stale in_progress items whose `claimed_at` is older than
@@ -192,12 +235,14 @@ export function recoverStaleItems(options = {}) {
192
235
  result.failed++;
193
236
  }
194
237
  else {
238
+ // T10405: re-queued stale items also back off geometrically.
239
+ const nextAttemptAt = secondsFromNow(computeBackoffSeconds(nextRetry));
195
240
  nativeDb
196
241
  .prepare(`UPDATE deriver_queue
197
242
  SET status = 'pending', retry_count = ?, error_msg = 'recovered from stale claim',
198
- claimed_at = NULL, claimed_by = NULL
243
+ claimed_at = NULL, claimed_by = NULL, next_attempt_at = ?
199
244
  WHERE id = ?`)
200
- .run(nextRetry, row.id);
245
+ .run(nextRetry, nextAttemptAt, row.id);
201
246
  result.requeued++;
202
247
  }
203
248
  }
@@ -1 +1 @@
1
- {"version":3,"file":"queue-manager.js","sourceRoot":"","sources":["../../src/deriver/queue-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queue-manager.js","sourceRoot":"","sources":["../../src/deriver/queue-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,125 @@
1
+ /**
2
+ * ConfigDomainHandler — routes the config-as-domain operations to the
3
+ * `ConfigManifest` cascade resolver.
4
+ *
5
+ * This is the CORE-side routing surface for the four config-as-domain ops added
6
+ * in T11917 (`config.get`, `config.list`, `config.validate`, `config.unset`),
7
+ * plus the pre-existing `config.show` read. Every method delegates to the pure
8
+ * JSON cascade resolver in `../config/registry.js` (`resolveCleoConfig`,
9
+ * `getConfigValue`, `validateConfig`, `unsetConfigValue`) — the SSoT
10
+ * implementation of the {@link ConfigManifestEntry} contract from
11
+ * `@cleocode/contracts/config`.
12
+ *
13
+ * The handler lives in CORE (not the CLI `cleo/` dispatch layer) so the routing
14
+ * logic — and the cascade resolver it calls — is reusable by every consumer
15
+ * (CLI dispatch, the SDK gateway, REST clients) without crossing the
16
+ * package boundary back into `cleo/`. The thin `admin` DomainHandler in
17
+ * `packages/cleo/src/dispatch/domains/admin.ts` delegates its `config.*` ops to
18
+ * this class and wraps the {@link EngineResult} into the LAFS envelope.
19
+ *
20
+ * Pure JSON file IO only — does NOT open SQLite (ADR-068 DB Open Guard
21
+ * preserved; the cascade resolver it calls is also SQLite-free).
22
+ *
23
+ * @packageDocumentation
24
+ * @module @cleocode/core/dispatch/config-domain-handler
25
+ *
26
+ * @task T11917 — config-as-domain (M5/AC3)
27
+ * @epic T11769 — EP-API-STANDARD-FOUNDATION
28
+ * @saga T9855 — ConfigManifest SSoT
29
+ * @adr 076
30
+ */
31
+ import { type EngineResult } from '@cleocode/contracts';
32
+ import { type ResolveScope, type ValidateScope } from '../config/registry.js';
33
+ /** Result of `config.get`. */
34
+ export interface ConfigGetResult {
35
+ /** The dot-notation key that was resolved. */
36
+ key: string;
37
+ /** Cascade slice the value was resolved against. */
38
+ scope: ResolveScope;
39
+ /** Resolved value, or `null` when the key is absent. */
40
+ value: unknown;
41
+ /** `true` IFF the key resolved to a defined value in the cascade. */
42
+ found: boolean;
43
+ }
44
+ /** Result of `config.list`. */
45
+ export interface ConfigListResult {
46
+ /** Cascade slice the config was resolved against. */
47
+ scope: ResolveScope;
48
+ /** Full resolved config object for the slice. */
49
+ config: Record<string, unknown>;
50
+ /** Flattened dot-notation keys present in the resolved config. */
51
+ keys: string[];
52
+ }
53
+ /** Result of `config.validate`. */
54
+ export interface ConfigValidateResult {
55
+ /** Scope that was validated. */
56
+ scope: ValidateScope;
57
+ /** `true` IFF every gate passed. */
58
+ ok: boolean;
59
+ /** Human-readable schema issues. Empty when `ok === true`. */
60
+ issues: string[];
61
+ }
62
+ /** Result of `config.unset`. */
63
+ export interface ConfigUnsetResult {
64
+ /** Config key that was targeted. */
65
+ key: string;
66
+ /** Scope the key was removed from. */
67
+ scope: 'project' | 'global';
68
+ /** `true` IFF a value was actually deleted. */
69
+ removed: boolean;
70
+ }
71
+ /**
72
+ * Routes the config-as-domain operations to the ConfigManifest cascade
73
+ * resolver. Stateless — construct once and reuse, or instantiate per call.
74
+ *
75
+ * @task T11917
76
+ */
77
+ export declare class ConfigDomainHandler {
78
+ /**
79
+ * `config.get` — resolve a single config value by dot-notation key through
80
+ * the cascade resolver ({@link getConfigValue}).
81
+ *
82
+ * @param projectRoot - Absolute path to the project root.
83
+ * @param key - Dot-notation config key (required).
84
+ * @param scopeRaw - Cascade slice (`global` | `project` | `merged`). Defaults
85
+ * to `merged`.
86
+ */
87
+ get(projectRoot: string, key: string | undefined, scopeRaw?: string): Promise<EngineResult<ConfigGetResult>>;
88
+ /**
89
+ * `config.list` — resolve the full config cascade for a slice and surface its
90
+ * flattened dot-notation keys ({@link resolveCleoConfig} +
91
+ * {@link flattenConfigKeys}).
92
+ *
93
+ * @param projectRoot - Absolute path to the project root.
94
+ * @param scopeRaw - Cascade slice. Defaults to `merged`.
95
+ */
96
+ list(projectRoot: string, scopeRaw?: string): Promise<EngineResult<ConfigListResult>>;
97
+ /**
98
+ * `config.validate` — schema-validate a scoped config file against its
99
+ * manifest entry's schema ({@link validateConfig}). A rejected file resolves
100
+ * to `{ ok: false, issues: [...] }` — it does NOT throw.
101
+ *
102
+ * @param projectRoot - Absolute path to the project root.
103
+ * @param scopeRaw - `global` | `project`. Defaults to `project`. `merged` is
104
+ * rejected — validation runs against a single file's manifest entry.
105
+ */
106
+ validate(projectRoot: string, scopeRaw?: string): Promise<EngineResult<ConfigValidateResult>>;
107
+ /**
108
+ * `config.unset` — remove a key from a scoped config file and persist the
109
+ * result ({@link unsetConfigValue}). Idempotent: removing an absent key is a
110
+ * success with `removed: false`.
111
+ *
112
+ * @param projectRoot - Absolute path to the project root.
113
+ * @param key - Dot-notation config key to remove (required).
114
+ * @param global - When `true`, target the global config file.
115
+ */
116
+ unset(projectRoot: string, key: string | undefined, global?: boolean): Promise<EngineResult<ConfigUnsetResult>>;
117
+ }
118
+ /**
119
+ * Shared singleton {@link ConfigDomainHandler}. The handler is stateless, so a
120
+ * single instance is reused across the process.
121
+ *
122
+ * @task T11917
123
+ */
124
+ export declare const configDomainHandler: ConfigDomainHandler;
125
+ //# sourceMappingURL=config-domain-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-domain-handler.d.ts","sourceRoot":"","sources":["../../src/dispatch/config-domain-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAAE,KAAK,YAAY,EAA8B,MAAM,qBAAqB,CAAC;AACpF,OAAO,EAGL,KAAK,YAAY,EAGjB,KAAK,aAAa,EAEnB,MAAM,uBAAuB,CAAC;AAE/B,8BAA8B;AAC9B,MAAM,WAAW,eAAe;IAC9B,8CAA8C;IAC9C,GAAG,EAAE,MAAM,CAAC;IACZ,oDAAoD;IACpD,KAAK,EAAE,YAAY,CAAC;IACpB,wDAAwD;IACxD,KAAK,EAAE,OAAO,CAAC;IACf,qEAAqE;IACrE,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,+BAA+B;AAC/B,MAAM,WAAW,gBAAgB;IAC/B,qDAAqD;IACrD,KAAK,EAAE,YAAY,CAAC;IACpB,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,kEAAkE;IAClE,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,mCAAmC;AACnC,MAAM,WAAW,oBAAoB;IACnC,gCAAgC;IAChC,KAAK,EAAE,aAAa,CAAC;IACrB,oCAAoC;IACpC,EAAE,EAAE,OAAO,CAAC;IACZ,8DAA8D;IAC9D,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,gCAAgC;AAChC,MAAM,WAAW,iBAAiB;IAChC,oCAAoC;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,sCAAsC;IACtC,KAAK,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC5B,+CAA+C;IAC/C,OAAO,EAAE,OAAO,CAAC;CAClB;AA2BD;;;;;GAKG;AACH,qBAAa,mBAAmB;IAC9B;;;;;;;;OAQG;IACG,GAAG,CACP,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;IAmBzC;;;;;;;OAOG;IACG,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;IAgB3F;;;;;;;;OAQG;IACG,QAAQ,CACZ,WAAW,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC;IAmB9C;;;;;;;;OAQG;IACG,KAAK,CACT,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,MAAM,CAAC,EAAE,OAAO,GACf,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;CAW5C;AAED;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,qBAA4B,CAAC"}
@@ -0,0 +1,160 @@
1
+ /**
2
+ * ConfigDomainHandler — routes the config-as-domain operations to the
3
+ * `ConfigManifest` cascade resolver.
4
+ *
5
+ * This is the CORE-side routing surface for the four config-as-domain ops added
6
+ * in T11917 (`config.get`, `config.list`, `config.validate`, `config.unset`),
7
+ * plus the pre-existing `config.show` read. Every method delegates to the pure
8
+ * JSON cascade resolver in `../config/registry.js` (`resolveCleoConfig`,
9
+ * `getConfigValue`, `validateConfig`, `unsetConfigValue`) — the SSoT
10
+ * implementation of the {@link ConfigManifestEntry} contract from
11
+ * `@cleocode/contracts/config`.
12
+ *
13
+ * The handler lives in CORE (not the CLI `cleo/` dispatch layer) so the routing
14
+ * logic — and the cascade resolver it calls — is reusable by every consumer
15
+ * (CLI dispatch, the SDK gateway, REST clients) without crossing the
16
+ * package boundary back into `cleo/`. The thin `admin` DomainHandler in
17
+ * `packages/cleo/src/dispatch/domains/admin.ts` delegates its `config.*` ops to
18
+ * this class and wraps the {@link EngineResult} into the LAFS envelope.
19
+ *
20
+ * Pure JSON file IO only — does NOT open SQLite (ADR-068 DB Open Guard
21
+ * preserved; the cascade resolver it calls is also SQLite-free).
22
+ *
23
+ * @packageDocumentation
24
+ * @module @cleocode/core/dispatch/config-domain-handler
25
+ *
26
+ * @task T11917 — config-as-domain (M5/AC3)
27
+ * @epic T11769 — EP-API-STANDARD-FOUNDATION
28
+ * @saga T9855 — ConfigManifest SSoT
29
+ * @adr 076
30
+ */
31
+ import { engineError, engineSuccess } from '@cleocode/contracts';
32
+ import { flattenConfigKeys, getConfigValue, resolveCleoConfig, unsetConfigValue, validateConfig, } from '../config/registry.js';
33
+ /** Cascade slice selector accepted by `config.get` / `config.list`. */
34
+ const RESOLVE_SCOPES = ['global', 'project', 'merged'];
35
+ /** Scope selector accepted by `config.validate`. */
36
+ const VALIDATE_SCOPES = ['global', 'project'];
37
+ /**
38
+ * Narrow an untrusted scope string to a {@link ResolveScope}, defaulting to
39
+ * `'merged'`. Returns `null` when the string is non-empty but invalid so the
40
+ * caller can reject with `E_INVALID_INPUT`.
41
+ */
42
+ function coerceResolveScope(scope) {
43
+ if (scope === undefined)
44
+ return 'merged';
45
+ return RESOLVE_SCOPES.includes(scope) ? scope : null;
46
+ }
47
+ /**
48
+ * Narrow an untrusted scope string to a {@link ValidateScope}, defaulting to
49
+ * `'project'`. Returns `null` when the string is non-empty but invalid.
50
+ */
51
+ function coerceValidateScope(scope) {
52
+ if (scope === undefined)
53
+ return 'project';
54
+ return VALIDATE_SCOPES.includes(scope) ? scope : null;
55
+ }
56
+ /**
57
+ * Routes the config-as-domain operations to the ConfigManifest cascade
58
+ * resolver. Stateless — construct once and reuse, or instantiate per call.
59
+ *
60
+ * @task T11917
61
+ */
62
+ export class ConfigDomainHandler {
63
+ /**
64
+ * `config.get` — resolve a single config value by dot-notation key through
65
+ * the cascade resolver ({@link getConfigValue}).
66
+ *
67
+ * @param projectRoot - Absolute path to the project root.
68
+ * @param key - Dot-notation config key (required).
69
+ * @param scopeRaw - Cascade slice (`global` | `project` | `merged`). Defaults
70
+ * to `merged`.
71
+ */
72
+ async get(projectRoot, key, scopeRaw) {
73
+ if (!key) {
74
+ return engineError('E_INVALID_INPUT', 'key is required', { fix: 'cleo config get <key>' });
75
+ }
76
+ const scope = coerceResolveScope(scopeRaw);
77
+ if (scope === null) {
78
+ return engineError('E_INVALID_INPUT', `scope must be one of: ${RESOLVE_SCOPES.join(', ')}`);
79
+ }
80
+ try {
81
+ const value = await getConfigValue(key, { scope, projectRoot });
82
+ return engineSuccess({ key, scope, value: value ?? null, found: value !== undefined });
83
+ }
84
+ catch (err) {
85
+ return engineError('E_CONFIG_RESOLVE_FAILED', err instanceof Error ? err.message : String(err));
86
+ }
87
+ }
88
+ /**
89
+ * `config.list` — resolve the full config cascade for a slice and surface its
90
+ * flattened dot-notation keys ({@link resolveCleoConfig} +
91
+ * {@link flattenConfigKeys}).
92
+ *
93
+ * @param projectRoot - Absolute path to the project root.
94
+ * @param scopeRaw - Cascade slice. Defaults to `merged`.
95
+ */
96
+ async list(projectRoot, scopeRaw) {
97
+ const scope = coerceResolveScope(scopeRaw);
98
+ if (scope === null) {
99
+ return engineError('E_INVALID_INPUT', `scope must be one of: ${RESOLVE_SCOPES.join(', ')}`);
100
+ }
101
+ try {
102
+ const config = await resolveCleoConfig({ scope, projectRoot });
103
+ return engineSuccess({ scope, config, keys: flattenConfigKeys(config) });
104
+ }
105
+ catch (err) {
106
+ return engineError('E_CONFIG_RESOLVE_FAILED', err instanceof Error ? err.message : String(err));
107
+ }
108
+ }
109
+ /**
110
+ * `config.validate` — schema-validate a scoped config file against its
111
+ * manifest entry's schema ({@link validateConfig}). A rejected file resolves
112
+ * to `{ ok: false, issues: [...] }` — it does NOT throw.
113
+ *
114
+ * @param projectRoot - Absolute path to the project root.
115
+ * @param scopeRaw - `global` | `project`. Defaults to `project`. `merged` is
116
+ * rejected — validation runs against a single file's manifest entry.
117
+ */
118
+ async validate(projectRoot, scopeRaw) {
119
+ const scope = coerceValidateScope(scopeRaw);
120
+ if (scope === null) {
121
+ return engineError('E_INVALID_INPUT', `scope must be one of: ${VALIDATE_SCOPES.join(', ')} (merged is not validatable)`);
122
+ }
123
+ try {
124
+ const result = await validateConfig(scope, projectRoot);
125
+ return engineSuccess({ scope, ok: result.ok, issues: result.issues });
126
+ }
127
+ catch (err) {
128
+ return engineError('E_CONFIG_VALIDATE_FAILED', err instanceof Error ? err.message : String(err));
129
+ }
130
+ }
131
+ /**
132
+ * `config.unset` — remove a key from a scoped config file and persist the
133
+ * result ({@link unsetConfigValue}). Idempotent: removing an absent key is a
134
+ * success with `removed: false`.
135
+ *
136
+ * @param projectRoot - Absolute path to the project root.
137
+ * @param key - Dot-notation config key to remove (required).
138
+ * @param global - When `true`, target the global config file.
139
+ */
140
+ async unset(projectRoot, key, global) {
141
+ if (!key) {
142
+ return engineError('E_INVALID_INPUT', 'key is required', { fix: 'cleo config unset <key>' });
143
+ }
144
+ try {
145
+ const result = await unsetConfigValue(key, { projectRoot, global });
146
+ return engineSuccess({ key: result.key, scope: result.scope, removed: result.removed });
147
+ }
148
+ catch (err) {
149
+ return engineError('E_CONFIG_UNSET_FAILED', err instanceof Error ? err.message : String(err));
150
+ }
151
+ }
152
+ }
153
+ /**
154
+ * Shared singleton {@link ConfigDomainHandler}. The handler is stateless, so a
155
+ * single instance is reused across the process.
156
+ *
157
+ * @task T11917
158
+ */
159
+ export const configDomainHandler = new ConfigDomainHandler();
160
+ //# sourceMappingURL=config-domain-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-domain-handler.js","sourceRoot":"","sources":["../../src/dispatch/config-domain-handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * deriveOutputContract — generic per-operation OUTPUT contract producer.
3
+ *
4
+ * Closes the COVERAGE half of DHQ-057 / T11692 (the symptom-fix half — the
5
+ * `--field` remediation loop — is ST-4). The hand-authored {@link OUTPUT_CONTRACTS}
6
+ * registry covers only the 7 highest-traffic `tasks.*` operations. Every other
7
+ * operation in the 411-row {@link OPERATIONS} registry has NO machine-readable
8
+ * description of its result `data` shape, so an agent asking `cleo <op>
9
+ * --describe` (or hitting `E_FIELD_NOT_FOUND` on a bad `--field` pointer) gets
10
+ * nothing back for ~404 ops.
11
+ *
12
+ * Rather than hand-write 404 more contracts (unmaintainable, drifts instantly),
13
+ * this module DERIVES an {@link OperationOutputContract} for an operation from
14
+ * three shape registries that ALREADY exist:
15
+ *
16
+ * | Source registry | Home | Derives |
17
+ * |------------------------|--------------------------|----------------------------------------------------------|
18
+ * | {@link OPERATION_RESULT_SCHEMAS} | `@cleocode/contracts` | precise top-level data keys for the 5 workgraph reads |
19
+ * | {@link PROJECTION_PLANS} | `./mvi-projection.js` | the data PATH (`tasks.show→task`, `docs.list→attachments`) for projected reads |
20
+ * | {@link MUTATE_PROJECTION_PLANS} | `./mutate-projection.js` | the shared `{count, created, updated, deleted}` shape — but ONLY for the 6 ops that actually project it |
21
+ *
22
+ * Resolution precedence inside {@link deriveOutputContract} (most-precise first):
23
+ *
24
+ * 1. workgraph result schema → precise key-derived contract
25
+ * 2. read op with projection plan → path-rooted contract
26
+ * 3. mutate op WITH a {@link MUTATE_PROJECTION_PLANS} entry → shared
27
+ * minimal-mutate contract. An unplanned `gateway==='mutate'` op is NOT
28
+ * rewritten by the dispatch middleware (it returns its raw domain payload),
29
+ * so it must NOT advertise `/data/created/0` — it falls through to (4).
30
+ * 4. any other registered op (unplanned mutate or plain query) → a GENERIC
31
+ * object contract (data is an object; no specific `--field` pointers, but a
32
+ * `shapeNote` telling the agent to `--full`/`--describe`).
33
+ *
34
+ * A `null` return means the operation is NOT in {@link OPERATIONS} at all
35
+ * (genuinely unknown). Per T10400 §6.3 R6.7 a `null` output contract is
36
+ * "unverified shape", NEVER an error — callers MUST treat it as absent, not
37
+ * throw.
38
+ *
39
+ * ## Boundary
40
+ *
41
+ * This producer lives in `core/src/dispatch` (NOT `contracts`) because it reads
42
+ * `PROJECTION_PLANS` / `MUTATE_PROJECTION_PLANS`, which are core-resident, and
43
+ * because it is a bodied runtime helper (the contracts-purity Gate 10 forbids
44
+ * net-new bodied functions in `contracts`). It is import-time side-effect-free:
45
+ * it builds nothing at module load, only on call.
46
+ *
47
+ * @packageDocumentation
48
+ * @module @cleocode/core/dispatch/contracts/derive-output-contract
49
+ *
50
+ * @epic T11679
51
+ * @task T11762 ST-3 — DHQ-057: generic per-op output schema coverage backfill
52
+ */
53
+ import { type OperationOutputContract } from '@cleocode/contracts';
54
+ /**
55
+ * Derive an {@link OperationOutputContract} for an operation from the existing
56
+ * shape registries, or `null` when the operation is genuinely unknown.
57
+ *
58
+ * Used as the SECOND tier of {@link getOutputContract}'s resolution order
59
+ * (hand-authored {@link OUTPUT_CONTRACTS} → `deriveOutputContract` → `null`).
60
+ * The hand-authored 7 stay authoritative; this lifts coverage to near-100% for
61
+ * the remaining ~404 ops without hand-authoring sprawl.
62
+ *
63
+ * Resolution precedence (most-precise first): workgraph result schema →
64
+ * projection-plan read → planned mutate op → generic registered op (unplanned
65
+ * mutate or plain query) → `null`.
66
+ *
67
+ * A `null` return MUST be treated as "no contract / unverified shape", NOT an
68
+ * error (T10400 §6.3 R6.7).
69
+ *
70
+ * @param operation - Canonical `<domain>.<verb>` operation identifier.
71
+ * @returns A derived contract, or `null` when the operation is not registered.
72
+ *
73
+ * @example
74
+ * ```ts
75
+ * deriveOutputContract('tasks.tree'); // precise workgraph keys
76
+ * deriveOutputContract('tasks.show'); // projection-plan path (`task`)
77
+ * deriveOutputContract('tasks.add'); // shared minimal-mutate envelope (planned)
78
+ * deriveOutputContract('memory.observe'); // generic object (UNPLANNED mutate)
79
+ * deriveOutputContract('session.start'); // generic object contract
80
+ * deriveOutputContract('does.not-exist'); // null
81
+ * ```
82
+ *
83
+ * @task T11762 ST-3
84
+ */
85
+ export declare function deriveOutputContract(operation: string): OperationOutputContract | null;
86
+ //# sourceMappingURL=derive-output-contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"derive-output-contract.d.ts","sourceRoot":"","sources":["../../../src/dispatch/contracts/derive-output-contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAEH,OAAO,EAIL,KAAK,uBAAuB,EAC7B,MAAM,qBAAqB,CAAC;AA+P7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,uBAAuB,GAAG,IAAI,CA8BtF"}