@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
@@ -32,6 +32,7 @@
32
32
  import { deriveApiWire } from './api-mode.js';
33
33
  import { CredentialPool } from './credential-pool.js';
34
34
  import { classifyError } from './error-classifier.js';
35
+ import { llmQueueAdmit } from './llm-queue-admit.js';
35
36
  import { ModelRunner } from './model-runner.js';
36
37
  import { isKimiCodeApiKey } from './provider-registry/builtin/kimi-code.js';
37
38
  import { resolveLLMForRole } from './role-resolver.js';
@@ -59,6 +60,31 @@ function warnOnceForRole(key, message) {
59
60
  WARNED_ROLE_FAILURES.add(key);
60
61
  console.warn(message);
61
62
  }
63
+ /**
64
+ * Map the calling agent's advertised role (`CLEO_AGENT_ROLE`) to an LLM-queue
65
+ * priority class (T11630 · AC1).
66
+ *
67
+ * The role-executor drives the brain's dream/compression layer, so its calls
68
+ * default to `background` — yielding to any interactive lead/worker LLM traffic.
69
+ * An orchestrator/lead agent advertising itself via `CLEO_AGENT_ROLE` is mapped
70
+ * to `lead` so its calls are never starved behind a background consolidation; a
71
+ * `worker` maps to `worker`.
72
+ *
73
+ * @returns The {@link QueuePriorityClass} for the current process.
74
+ * @task T11630
75
+ */
76
+ function resolveQueuePriorityClass() {
77
+ switch (process.env.CLEO_AGENT_ROLE) {
78
+ case 'lead':
79
+ case 'orchestrator':
80
+ return 'lead';
81
+ case 'worker':
82
+ case 'subagent':
83
+ return 'worker';
84
+ default:
85
+ return 'background';
86
+ }
87
+ }
62
88
  /**
63
89
  * Test-only: clear the role-failure warning latch so a fresh test run starts
64
90
  * from a clean slate. Production callers MUST NOT use this.
@@ -91,7 +117,7 @@ const DEFAULT_MAX_TOKENS = 1024;
91
117
  */
92
118
  export async function executeForRole(role, systemPrompt, userContent, opts = {}) {
93
119
  const llm = await resolveLLMForRole(role, { projectRoot: opts.projectRoot });
94
- if (!llm.credential?.apiKey) {
120
+ if (!llm.sealedCredential || !llm.credential) {
95
121
  // No usable credential for this role's resolved provider. Surface ONE
96
122
  // actionable re-auth hint per (role, provider) tuple instead of a silent
97
123
  // skip — the caller still degrades gracefully via the null return.
@@ -121,12 +147,15 @@ export async function executeForRole(role, systemPrompt, userContent, opts = {})
121
147
  // transport blocks that had each drifted from `session-factory` (the
122
148
  // anthropic block hardcoded the OAuth beta header; the others omitted it).
123
149
  const authType = llm.credential.authType === 'oauth' ? 'oauth' : 'api_key';
150
+ // E10 (T11753): materialize the plaintext from the sealed handle ONLY here,
151
+ // at the wire — immediately before building the transport. The token is used
152
+ // for the kimi-code diagnostic and the transport credential, then goes out
153
+ // of scope; it is never returned, logged, or serialized.
154
+ const token = (await llm.sealedCredential.fetch()).value;
124
155
  // Diagnostic (preserved): a non-`sk-kimi-`, non-OAuth key routed to
125
156
  // kimi-code will likely fail — the legacy Moonshot `mk-*` path lives on the
126
157
  // separate `moonshot` provider.
127
- if (llm.provider === 'kimi-code' &&
128
- authType !== 'oauth' &&
129
- !isKimiCodeApiKey(llm.credential.apiKey)) {
158
+ if (llm.provider === 'kimi-code' && authType !== 'oauth' && !isKimiCodeApiKey(token)) {
130
159
  console.warn(`[role-executor] kimi-code credential is not sk-kimi- prefixed and not OAuth; ` +
131
160
  `the request may fail. Configure a coding-plan key from kimi.com/code or ` +
132
161
  `switch the provider to 'moonshot' for legacy mk- keys.`);
@@ -135,7 +164,7 @@ export async function executeForRole(role, systemPrompt, userContent, opts = {})
135
164
  const resolvedCredential = {
136
165
  provider: llm.provider,
137
166
  label: llm.credentialLabel ?? 'default',
138
- token: llm.credential.apiKey,
167
+ token,
139
168
  authType,
140
169
  expiresAt: null,
141
170
  refreshToken: null,
@@ -144,6 +173,16 @@ export async function executeForRole(role, systemPrompt, userContent, opts = {})
144
173
  awsProfile: null,
145
174
  };
146
175
  const transport = ModelRunner.buildTransportFromCredential(llm.provider, resolvedCredential, wire.apiMode);
176
+ // LLM-queue admit gate (T11630 · AC1-AC4). Ask the supervisor's priority
177
+ // scheduler + per-provider rate governor for admission BEFORE the call hits
178
+ // the wire. With the daemon OFF (the default, mode `off`) this is a no-op
179
+ // pass-through (`admitted:true, via:'direct'`) — every call works with no
180
+ // supervisor. In `supervisor` mode an over-budget call is deferred with a
181
+ // structured back-off + re-request inside `llmQueueAdmit`, never dropped; an
182
+ // absent/dead arbiter degrades to direct execution. The role-executor drives
183
+ // the brain's dream/compression layer, so these calls are `background`
184
+ // priority unless the agent advertises a higher class via CLEO_AGENT_ROLE.
185
+ await llmQueueAdmit(llm.provider, resolveQueuePriorityClass(), opts.maxTokens ?? DEFAULT_MAX_TOKENS, `role:${role}:pid-${process.pid}`);
147
186
  const resp = await transport.complete(request);
148
187
  return {
149
188
  content: resp.content ?? '',
@@ -1 +1 @@
1
- {"version":3,"file":"role-executor.js","sourceRoot":"","sources":["../../src/llm/role-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"role-executor.js","sourceRoot":"","sources":["../../src/llm/role-executor.ts"],"names":[],"mappings":"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"}
@@ -26,9 +26,8 @@
26
26
  * @module llm/role-resolver
27
27
  */
28
28
  import type { Anthropic } from '@anthropic-ai/sdk';
29
- import type { ApiMode, ModelCaps, ResolutionSource, ResolveLLMForRoleOptions, RoleName } from '@cleocode/contracts';
29
+ import type { ApiMode, CredentialMetadataWire, ModelCaps, ResolutionSource, ResolveLLMForRoleOptions, RoleName, SealedCredential } from '@cleocode/contracts';
30
30
  import type { OpenAI } from 'openai';
31
- import { type CredentialResult } from './credentials.js';
32
31
  import { IMPLICIT_FALLBACK_MODEL } from './fallback-model.js';
33
32
  import type { ModelTransport } from './types-config.js';
34
33
  /**
@@ -89,14 +88,24 @@ export type { ResolutionSource, ResolveLLMForRoleOptions };
89
88
  *
90
89
  * The contracts-level `ResolvedLLM` (from `@cleocode/contracts`) carries
91
90
  * `client: unknown` to stay SDK-free. This core variant tightens the same
92
- * envelope with the concrete SDK union (`LLMClient`) and the local
93
- * {@link CredentialResult} — same shape, narrower types.
91
+ * envelope with the concrete SDK union (`LLMClient`) — same shape, narrower
92
+ * `client` type.
94
93
  *
95
- * `client` is `null` only when `credential.apiKey` is also null — in which
94
+ * `client` is `null` only when {@link sealedCredential} is also null — in which
96
95
  * case the caller MUST fall back to its graceful-degradation path
97
96
  * (return null / skip / log warn).
98
97
  *
98
+ * ## E10 — no inline plaintext (T11753)
99
+ *
100
+ * The secret-bearing `credential.apiKey` field is **gone**. `credential` is now
101
+ * non-secret {@link CredentialMetadataWire} metadata (provider / source /
102
+ * authType) so callers can still branch on auth scheme and surface diagnostics.
103
+ * The plaintext token is reachable ONLY via {@link sealedCredential}'s `fetch()`
104
+ * at the wire (`transportForProvider` / `session-factory.ts`) or daemon
105
+ * worker-injection — it never crosses this envelope.
106
+ *
99
107
  * @task T9255
108
+ * @task T11753
100
109
  */
101
110
  export interface ResolvedLLM {
102
111
  /** LLM provider transport that was resolved. */
@@ -110,10 +119,24 @@ export interface ResolvedLLM {
110
119
  */
111
120
  client: LLMClient | null;
112
121
  /**
113
- * Resolved credential. `null` when none of the 6 credential tiers
114
- * produced a token. Callers MUST handle this case.
122
+ * Resolved credential **metadata** (provider / source / authType) — NO
123
+ * plaintext. `null` when none of the 6 credential tiers produced a token
124
+ * (paired with `sealedCredential === null`). Callers MUST handle this case
125
+ * and obtain the secret via {@link sealedCredential}.
126
+ *
127
+ * @task T11753
128
+ */
129
+ credential: CredentialMetadataWire | null;
130
+ /**
131
+ * Sealed credential handle — the canonical, on-demand credential surface
132
+ * (E10 · T11752 · T11753). `null` exactly when `credential` is `null`.
133
+ *
134
+ * The plaintext is materialized ONLY by `sealedCredential.fetch()` at the
135
+ * wire / daemon worker-injection — never returned up this envelope.
136
+ *
137
+ * @task T11753
115
138
  */
116
- credential: CredentialResult | null;
139
+ sealedCredential: SealedCredential | null;
117
140
  /** Which config path produced this resolution. */
118
141
  source: ResolutionSource;
119
142
  /** When `roles[role].credentialLabel` was set, the label that was used. */
@@ -151,18 +174,27 @@ export interface ResolvedLLM {
151
174
  *
152
175
  * See module docs for the full resolution algorithm. Never throws — when
153
176
  * no credential is reachable the caller receives
154
- * `{ credential: null, client: null, ... }` and is responsible for its own
155
- * graceful-degradation path (the previous Phase 1 pattern was a `return null`
156
- * shortcut at the call-site).
177
+ * `{ credential: null, sealedCredential: null, client: null, ... }` and is
178
+ * responsible for its own graceful-degradation path (the previous Phase 1
179
+ * pattern was a `return null` shortcut at the call-site).
180
+ *
181
+ * E10 (T11753): the plaintext token never rides on the returned envelope.
182
+ * Materialize it ONLY at the wire by calling `llm.sealedCredential.fetch()`.
157
183
  *
158
184
  * @example
159
185
  * ```ts
160
186
  * const llm = await resolveLLMForRole('consolidation', { projectRoot });
161
- * if (!llm.credential?.apiKey || !llm.client) {
187
+ * if (!llm.sealedCredential || !llm.client) {
162
188
  * return null; // graceful no-op
163
189
  * }
190
+ * // At the wire — the ONLY place the plaintext is materialized:
191
+ * const token = (await llm.sealedCredential.fetch()).value;
164
192
  * const response = await fetch('https://api.anthropic.com/v1/messages', {
165
- * headers: { 'Content-Type': 'application/json', ...authHeaders(llm.credential) },
193
+ * headers: {
194
+ * 'Content-Type': 'application/json',
195
+ * ...authHeaders({ provider: llm.provider, apiKey: token,
196
+ * source: llm.credential?.source, authType: llm.credential?.authType ?? 'api_key' }),
197
+ * },
166
198
  * body: JSON.stringify({ model: llm.model, ...rest }),
167
199
  * });
168
200
  * ```
@@ -172,6 +204,7 @@ export interface ResolvedLLM {
172
204
  * @returns A {@link ResolvedLLM} envelope; never throws.
173
205
  *
174
206
  * @task T9255
207
+ * @task T11753
175
208
  */
176
209
  export declare function resolveLLMForRole(role: RoleName, opts?: ResolveLLMForRoleOptions): Promise<ResolvedLLM>;
177
210
  /**
@@ -208,6 +241,5 @@ export declare function resolveLLMForRole(role: RoleName, opts?: ResolveLLMForRo
208
241
  export declare function resolveAnthropicForRole(role: RoleName, opts?: ResolveLLMForRoleOptions): Promise<{
209
242
  client: Pick<Anthropic, 'messages'>;
210
243
  model: string;
211
- credential: CredentialResult;
212
244
  } | null>;
213
245
  //# sourceMappingURL=role-resolver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"role-resolver.d.ts","sourceRoot":"","sources":["../../src/llm/role-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EACV,OAAO,EAMP,SAAS,EACT,gBAAgB,EAChB,wBAAwB,EACxB,QAAQ,EACT,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIrC,OAAO,EAAE,KAAK,gBAAgB,EAAsB,MAAM,kBAAkB,CAAC;AAE7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,uBAAuB,EAAE,CAAC;AAEnC;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,EAAE,cAA4B,CAAC;AAEtE;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,sBAAsB,sBAAsB,CAAC;AAE1D;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAKrE,YAAY,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,CAAC;AAE3D;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,WAAW;IAC1B,gDAAgD;IAChD,QAAQ,EAAE,cAAc,CAAC;IACzB,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC;IACzB;;;OAGG;IACH,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACpC,kDAAkD;IAClD,MAAM,EAAE,gBAAgB,CAAC;IACzB,2EAA2E;IAC3E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;;;OAQG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB;;;;OAIG;IACH,QAAQ,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;IACjD;;;OAGG;IACH,YAAY,CAAC,EAAE,SAAS,CAAC;CAC1B;AAoLD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,QAAQ,EACd,IAAI,CAAC,EAAE,wBAAwB,GAC9B,OAAO,CAAC,WAAW,CAAC,CAsEtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,QAAQ,EACd,IAAI,CAAC,EAAE,wBAAwB,GAC9B,OAAO,CAAC;IACT,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,gBAAgB,CAAC;CAC9B,GAAG,IAAI,CAAC,CAmBR"}
1
+ {"version":3,"file":"role-resolver.d.ts","sourceRoot":"","sources":["../../src/llm/role-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EACV,OAAO,EAEP,sBAAsB,EAKtB,SAAS,EACT,gBAAgB,EAChB,wBAAwB,EACxB,QAAQ,EACR,gBAAgB,EAEjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAMrC,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAI9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,uBAAuB,EAAE,CAAC;AAEnC;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,EAAE,cAA4B,CAAC;AAEtE;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,sBAAsB,sBAAsB,CAAC;AAE1D;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAKrE,YAAY,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,WAAW;IAC1B,gDAAgD;IAChD,QAAQ,EAAE,cAAc,CAAC;IACzB,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC;IACzB;;;;;;;OAOG;IACH,UAAU,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAC1C;;;;;;;;OAQG;IACH,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC1C,kDAAkD;IAClD,MAAM,EAAE,gBAAgB,CAAC;IACzB,2EAA2E;IAC3E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;;;OAQG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB;;;;OAIG;IACH,QAAQ,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;IACjD;;;OAGG;IACH,YAAY,CAAC,EAAE,SAAS,CAAC;CAC1B;AAwTD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,QAAQ,EACd,IAAI,CAAC,EAAE,wBAAwB,GAC9B,OAAO,CAAC,WAAW,CAAC,CA4GtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,QAAQ,EACd,IAAI,CAAC,EAAE,wBAAwB,GAC9B,OAAO,CAAC;IACT,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,IAAI,CAAC,CAwBR"}
@@ -31,6 +31,8 @@ import { CredentialPool } from './credential-pool.js';
31
31
  import { resolveCredentials } from './credentials.js';
32
32
  import { getCredentialByLabel, pickCredentialForProvider } from './credentials-store.js';
33
33
  import { IMPLICIT_FALLBACK_MODEL } from './fallback-model.js';
34
+ import { makeSealedCredential, tokenPreview } from './sealed-credential.js';
35
+ import { getRegisteredSystemDefault } from './system-of-use-registry.js';
34
36
  import { buildAnthropicClient } from './transports/anthropic-client-factory.js';
35
37
  /**
36
38
  * Implicit fallback model used when no role-specific and no `default` entry is
@@ -98,6 +100,90 @@ function resolveNamedProfile(llm, name, source) {
98
100
  source,
99
101
  };
100
102
  }
103
+ /**
104
+ * Resolve a `llm.systems[systemKey]` {@link SystemBinding} into a
105
+ * {@link SelectedProviderModel}, or `undefined` when `systemKey` is unset, the
106
+ * key is absent, or the entry is structurally incomplete (neither a resolvable
107
+ * `profile` nor a complete inline `provider`+`model` tuple).
108
+ *
109
+ * A binding referencing a named profile wins over its inline tuple — mirroring
110
+ * {@link LlmRoleConfig.profile} precedence. The resolved profile keeps
111
+ * `source: 'system'` (not `'profile'`) so diagnostics attribute the resolution
112
+ * to the per-system override tier, while the profile's `credentialLabel` is
113
+ * preserved unless the binding pins its own.
114
+ *
115
+ * @param llm - The LLM config block (may be undefined).
116
+ * @param systemKey - Encoded system-of-use key (may be undefined).
117
+ * @task T11748
118
+ */
119
+ function resolveSystemBinding(llm, systemKey) {
120
+ if (!systemKey)
121
+ return undefined;
122
+ const binding = llm?.systems?.[systemKey];
123
+ if (!binding)
124
+ return undefined;
125
+ // 1. Binding pinned to a named profile (wins over the inline tuple).
126
+ const bindingProfile = resolveNamedProfile(llm, binding.profile, 'system');
127
+ if (bindingProfile) {
128
+ // The binding may override the profile's credential label.
129
+ return {
130
+ ...bindingProfile,
131
+ credentialLabel: binding.credentialLabel ?? bindingProfile.credentialLabel,
132
+ };
133
+ }
134
+ // 2. Inline provider/model tuple on the binding.
135
+ if (binding.provider && binding.model) {
136
+ return {
137
+ provider: binding.provider,
138
+ model: binding.model,
139
+ credentialLabel: binding.credentialLabel,
140
+ source: 'system',
141
+ };
142
+ }
143
+ // Structurally incomplete — fall through to the next tier.
144
+ return undefined;
145
+ }
146
+ /**
147
+ * Resolve the runtime-registered default for `systemKey` (registerSystemOfUse —
148
+ * T11751) into a {@link SelectedProviderModel}, or `undefined` when no system is
149
+ * registered under that key (or its default is structurally incomplete).
150
+ *
151
+ * Consulted ONLY after every user-config tier in {@link selectProviderModel} is
152
+ * exhausted — so a `registerSystemOfUse` default can NEVER override user config
153
+ * (`systems[key]` / `default` / `defaultProfile`). A registered binding that
154
+ * names a `profile` resolves it against `llm.profiles` (the profile wins over an
155
+ * inline tuple); the resolution is stamped `source: 'registered-default'` for
156
+ * diagnostics.
157
+ *
158
+ * @param llm - The LLM config block (may be undefined).
159
+ * @param systemKey - Encoded system-of-use key (may be undefined).
160
+ * @task T11751
161
+ */
162
+ function resolveRegisteredSystemDefault(llm, systemKey) {
163
+ const defaults = getRegisteredSystemDefault(systemKey);
164
+ if (!defaults)
165
+ return undefined;
166
+ // 1. Default pinned to a named profile (wins over the inline tuple).
167
+ const profile = resolveNamedProfile(llm, defaults.profile, 'registered-default');
168
+ if (profile) {
169
+ return {
170
+ ...profile,
171
+ credentialLabel: defaults.credentialLabel ?? profile.credentialLabel,
172
+ };
173
+ }
174
+ // 2. Inline provider/model tuple on the default.
175
+ if (defaults.provider && defaults.model) {
176
+ return {
177
+ provider: defaults.provider,
178
+ model: defaults.model,
179
+ credentialLabel: defaults.credentialLabel,
180
+ source: 'registered-default',
181
+ };
182
+ }
183
+ // Structurally incomplete (getRegisteredSystemDefault already filters these,
184
+ // but stay defensive) — fall through to implicit fallback.
185
+ return undefined;
186
+ }
101
187
  /**
102
188
  * Pick provider/model/credentialLabel from the highest-priority configured
103
189
  * tier. Always returns a value because the implicit fallback is unconditional.
@@ -105,20 +191,42 @@ function resolveNamedProfile(llm, name, source) {
105
191
  * Resolution order:
106
192
  * 1. `roles[role].profile` → named profile (`source: 'profile'`)
107
193
  * 2. `roles[role]` inline `{provider, model}` (`source: 'role'`)
108
- * 3. `default` (`source: 'default'`)
109
- * 4. `defaultProfile` → named profile (`source: 'default-profile'`)
110
- * 5. implicit fallback (`source: 'implicit-fallback'`)
194
+ * 3. `systems[systemKey]` → per-system override (`source: 'system'`) — only
195
+ * consulted when `systemKey` is set (threaded by `resolveLLMForSystem`).
196
+ * 4. `default` (`source: 'default'`)
197
+ * 5. `defaultProfile` → named profile (`source: 'default-profile'`)
198
+ * 6. `registerSystemOfUse` default (`source: 'registered-default'`) — runtime
199
+ * registration, consulted strictly BELOW all user config (T11751).
200
+ * 7. implicit fallback (`source: 'implicit-fallback'`)
201
+ *
202
+ * Tiers 1–2 are the *explicit-arg* lane (per-role config / role override);
203
+ * tier 3 is the hermes *granular override* — consulted after the explicit
204
+ * choice but before the global base (`default` / `defaultProfile`), matching
205
+ * the E9 priority `explicit-arg → llm.systems[key] → llm.defaultProfile →
206
+ * registered-default → implicit fallback` (T11748 · T11751). The configurable
207
+ * `defaultProfile` is what lets background roles resolve to a user-selectable
208
+ * provider WITHOUT hardcoding the provider in code.
111
209
  *
112
- * The configurable `defaultProfile` is what lets background roles resolve to a
113
- * user-selectable provider WITHOUT hardcoding the provider in code.
210
+ * @param llm - The LLM config block (may be undefined).
211
+ * @param role - The role used for `roles[role]` lookup.
212
+ * @param systemKey - Optional encoded system-of-use key activating tiers 3 + 6.
213
+ * @task T11748 (`systems[systemKey]` tier)
214
+ * @task T11751 (`registered-default` tier)
114
215
  */
115
- function selectProviderModel(llm, role) {
216
+ function selectProviderModel(llm, role, systemKey, profileOverride) {
116
217
  const roleEntry = llm?.roles?.[role];
117
- // 1. Role pinned to a named profile.
218
+ // 0. Explicit profile pin (T11759 · M4) — HIGHEST priority. A caller that
219
+ // pins a named profile (e.g. a `.cantbook` stage's `profile:`) cannot be
220
+ // silently overridden by background role config. Falls through unchanged when
221
+ // the name is unknown / structurally incomplete.
222
+ const pinnedProfile = resolveNamedProfile(llm, profileOverride, 'profile');
223
+ if (pinnedProfile)
224
+ return pinnedProfile;
225
+ // 1. Role pinned to a named profile (explicit-arg lane).
118
226
  const roleProfile = resolveNamedProfile(llm, roleEntry?.profile, 'profile');
119
227
  if (roleProfile)
120
228
  return roleProfile;
121
- // 2. Role with an inline provider/model tuple (existing behaviour).
229
+ // 2. Role with an inline provider/model tuple (explicit-arg lane).
122
230
  if (roleEntry?.provider && roleEntry.model) {
123
231
  return {
124
232
  provider: roleEntry.provider,
@@ -127,7 +235,11 @@ function selectProviderModel(llm, role) {
127
235
  source: 'role',
128
236
  };
129
237
  }
130
- // 3. Canonical default tuple.
238
+ // 3. Per-system override (hermes granular override) — beats the global base.
239
+ const systemBinding = resolveSystemBinding(llm, systemKey);
240
+ if (systemBinding)
241
+ return systemBinding;
242
+ // 4. Canonical default tuple.
131
243
  const defaultEntry = llm?.default;
132
244
  if (defaultEntry?.provider && defaultEntry.model) {
133
245
  return {
@@ -137,11 +249,17 @@ function selectProviderModel(llm, role) {
137
249
  source: 'default',
138
250
  };
139
251
  }
140
- // 4. Configurable default profile binding (user-selectable; not hardcoded).
252
+ // 5. Configurable default profile binding (user-selectable; not hardcoded).
141
253
  const defaultProfile = resolveNamedProfile(llm, llm?.defaultProfile, 'default-profile');
142
254
  if (defaultProfile)
143
255
  return defaultProfile;
144
- // 5. Implicit fallback (last resort).
256
+ // 6. Runtime-registered default (registerSystemOfUse — T11751) — consulted
257
+ // strictly BELOW every user-config tier above, so the user ALWAYS wins. A
258
+ // plugin/extension default only binds when the user configured nothing.
259
+ const registeredDefault = resolveRegisteredSystemDefault(llm, systemKey);
260
+ if (registeredDefault)
261
+ return registeredDefault;
262
+ // 7. Implicit fallback (last resort).
145
263
  return {
146
264
  provider: IMPLICIT_FALLBACK_PROVIDER,
147
265
  model: IMPLICIT_FALLBACK_MODEL,
@@ -230,18 +348,27 @@ async function resolveCredentialForRole(provider, credentialLabel, projectRoot)
230
348
  *
231
349
  * See module docs for the full resolution algorithm. Never throws — when
232
350
  * no credential is reachable the caller receives
233
- * `{ credential: null, client: null, ... }` and is responsible for its own
234
- * graceful-degradation path (the previous Phase 1 pattern was a `return null`
235
- * shortcut at the call-site).
351
+ * `{ credential: null, sealedCredential: null, client: null, ... }` and is
352
+ * responsible for its own graceful-degradation path (the previous Phase 1
353
+ * pattern was a `return null` shortcut at the call-site).
354
+ *
355
+ * E10 (T11753): the plaintext token never rides on the returned envelope.
356
+ * Materialize it ONLY at the wire by calling `llm.sealedCredential.fetch()`.
236
357
  *
237
358
  * @example
238
359
  * ```ts
239
360
  * const llm = await resolveLLMForRole('consolidation', { projectRoot });
240
- * if (!llm.credential?.apiKey || !llm.client) {
361
+ * if (!llm.sealedCredential || !llm.client) {
241
362
  * return null; // graceful no-op
242
363
  * }
364
+ * // At the wire — the ONLY place the plaintext is materialized:
365
+ * const token = (await llm.sealedCredential.fetch()).value;
243
366
  * const response = await fetch('https://api.anthropic.com/v1/messages', {
244
- * headers: { 'Content-Type': 'application/json', ...authHeaders(llm.credential) },
367
+ * headers: {
368
+ * 'Content-Type': 'application/json',
369
+ * ...authHeaders({ provider: llm.provider, apiKey: token,
370
+ * source: llm.credential?.source, authType: llm.credential?.authType ?? 'api_key' }),
371
+ * },
245
372
  * body: JSON.stringify({ model: llm.model, ...rest }),
246
373
  * });
247
374
  * ```
@@ -251,6 +378,7 @@ async function resolveCredentialForRole(provider, credentialLabel, projectRoot)
251
378
  * @returns A {@link ResolvedLLM} envelope; never throws.
252
379
  *
253
380
  * @task T9255
381
+ * @task T11753
254
382
  */
255
383
  export async function resolveLLMForRole(role, opts) {
256
384
  const projectRoot = resolveOrCwd(opts?.projectRoot);
@@ -267,8 +395,11 @@ export async function resolveLLMForRole(role, opts) {
267
395
  config = undefined;
268
396
  }
269
397
  // Step 2 — pick provider/model/credentialLabel from the highest-priority tier.
398
+ // `opts.systemKey` (threaded by `resolveLLMForSystem`) activates the
399
+ // `llm.systems[key]` granular-override tier; role callers leave it unset and
400
+ // that tier is skipped — role resolution is unchanged (T11748).
270
401
  const llmBlock = readLlmBlock(config);
271
- const { provider, model, credentialLabel, source } = selectProviderModel(llmBlock, role);
402
+ const { provider, model, credentialLabel, source } = selectProviderModel(llmBlock, role, opts?.systemKey, opts?.profileOverride);
272
403
  // Step 3 — resolve credential.
273
404
  const { credential, usedLabel } = await resolveCredentialForRole(provider, credentialLabel, projectRoot);
274
405
  // Step 4 — construct SDK client if we have a credential.
@@ -303,11 +434,40 @@ export async function resolveLLMForRole(role, opts) {
303
434
  // is surfaced from the resolved credential (or null when none).
304
435
  const authType = credential?.authType ?? null;
305
436
  const wire = deriveApiWire(provider, authType);
437
+ // Step 6 — E10 (T11753): seal the credential. The plaintext token is captured
438
+ // in the handle's `fetch()` closure but is NOT placed on the returned
439
+ // envelope. `credential` becomes non-secret metadata; consumers reach the
440
+ // secret ONLY via `sealedCredential.fetch()` at the wire. No-credential
441
+ // resolution yields `{ credential: null, sealedCredential: null }`.
442
+ let credentialMetadata = null;
443
+ let sealedCredential = null;
444
+ if (credential?.apiKey) {
445
+ const token = credential.apiKey;
446
+ const wireAuthType = credential.authType === 'oauth' ? 'oauth' : 'api_key';
447
+ credentialMetadata = {
448
+ provider: credential.provider,
449
+ source: credential.source,
450
+ authType: wireAuthType,
451
+ };
452
+ sealedCredential = makeSealedCredential({
453
+ provider: credential.provider,
454
+ account: usedLabel ?? 'default',
455
+ // Non-secret redacted preview (≤ last 4 chars) computed ONCE at seal time
456
+ // — the only token-derived string allowed on a log/envelope/diagnostic
457
+ // (E10 · T11754 · AC3). The full plaintext is NOT retained for it.
458
+ tokenPreview: tokenPreview(token, wireAuthType),
459
+ // The already-resolved plaintext is captured in this closure and handed
460
+ // out ONLY when a wire boundary invokes fetch(); it is never surfaced on
461
+ // the envelope. T11754 swaps this thunk for an on-demand vault decrypt.
462
+ resolveToken: () => token,
463
+ });
464
+ }
306
465
  return {
307
466
  provider,
308
467
  model,
309
468
  client,
310
- credential,
469
+ credential: credentialMetadata,
470
+ sealedCredential,
311
471
  source,
312
472
  credentialLabel: usedLabel,
313
473
  apiMode: wire.apiMode,
@@ -356,7 +516,13 @@ export async function resolveAnthropicForRole(role, opts) {
356
516
  }
357
517
  if (llm.provider !== 'anthropic')
358
518
  return null;
359
- if (!llm.credential?.apiKey || !llm.client)
519
+ // E10 (T11753): gate on the sealed handle's presence — its existence is the
520
+ // post-resolution "a usable credential was found" signal, replacing the
521
+ // removed inline `credential.apiKey` truthiness check. The Anthropic SDK
522
+ // `client` was already wired from the plaintext inside `resolveLLMForRole`
523
+ // (the one allowed `new Anthropic(...)` chokepoint), so the secret does not
524
+ // need to cross this boundary again.
525
+ if (!llm.sealedCredential || !llm.client)
360
526
  return null;
361
527
  // Safe narrowing: provider === 'anthropic' and direct Anthropic construction
362
528
  // in resolveLLMForRole guarantees the client is an Anthropic SDK instance.
@@ -366,7 +532,6 @@ export async function resolveAnthropicForRole(role, opts) {
366
532
  return {
367
533
  client: llm.client,
368
534
  model: llm.model,
369
- credential: llm.credential,
370
535
  };
371
536
  }
372
537
  //# sourceMappingURL=role-resolver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"role-resolver.js","sourceRoot":"","sources":["../../src/llm/role-resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"role-resolver.js","sourceRoot":"","sources":["../../src/llm/role-resolver.ts"],"names":[],"mappings":"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"}