@cleocode/core 2026.6.13 → 2026.6.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (485) hide show
  1. package/dist/admin/ops.d.ts +4 -0
  2. package/dist/admin/ops.d.ts.map +1 -1
  3. package/dist/check/index.d.ts +12 -0
  4. package/dist/check/index.d.ts.map +1 -0
  5. package/dist/check/index.js +12 -0
  6. package/dist/check/index.js.map +1 -0
  7. package/dist/check/pr-gate.d.ts +183 -0
  8. package/dist/check/pr-gate.d.ts.map +1 -0
  9. package/dist/check/pr-gate.js +348 -0
  10. package/dist/check/pr-gate.js.map +1 -0
  11. package/dist/conduit/delivery-router.d.ts +134 -0
  12. package/dist/conduit/delivery-router.d.ts.map +1 -0
  13. package/dist/conduit/delivery-router.js +0 -0
  14. package/dist/conduit/delivery-router.js.map +1 -0
  15. package/dist/conduit/index.d.ts +5 -2
  16. package/dist/conduit/index.d.ts.map +1 -1
  17. package/dist/conduit/index.js +5 -2
  18. package/dist/conduit/index.js.map +1 -1
  19. package/dist/conduit/local-tui-adapter.d.ts +89 -0
  20. package/dist/conduit/local-tui-adapter.d.ts.map +1 -0
  21. package/dist/conduit/local-tui-adapter.js +225 -0
  22. package/dist/conduit/local-tui-adapter.js.map +1 -0
  23. package/dist/config/config-repair.d.ts +70 -0
  24. package/dist/config/config-repair.d.ts.map +1 -0
  25. package/dist/config/config-repair.js +248 -0
  26. package/dist/config/config-repair.js.map +1 -0
  27. package/dist/config/registry.d.ts +54 -0
  28. package/dist/config/registry.d.ts.map +1 -1
  29. package/dist/config/registry.js +92 -0
  30. package/dist/config/registry.js.map +1 -1
  31. package/dist/config.d.ts.map +1 -1
  32. package/dist/config.js +11 -10
  33. package/dist/config.js.map +1 -1
  34. package/dist/deriver/queue-manager.d.ts +30 -2
  35. package/dist/deriver/queue-manager.d.ts.map +1 -1
  36. package/dist/deriver/queue-manager.js +54 -9
  37. package/dist/deriver/queue-manager.js.map +1 -1
  38. package/dist/dispatch/config-domain-handler.d.ts +125 -0
  39. package/dist/dispatch/config-domain-handler.d.ts.map +1 -0
  40. package/dist/dispatch/config-domain-handler.js +160 -0
  41. package/dist/dispatch/config-domain-handler.js.map +1 -0
  42. package/dist/dispatch/contracts/input-contracts.d.ts.map +1 -1
  43. package/dist/dispatch/contracts/input-contracts.js +19 -1
  44. package/dist/dispatch/contracts/input-contracts.js.map +1 -1
  45. package/dist/docs/export-document.js +3721 -696
  46. package/dist/docs/export-document.js.map +3 -3
  47. package/dist/gateway-client/client.d.ts +123 -0
  48. package/dist/gateway-client/client.d.ts.map +1 -0
  49. package/dist/gateway-client/client.js +93 -0
  50. package/dist/gateway-client/client.js.map +1 -0
  51. package/dist/gateway-client/generated/client/client.gen.d.ts +3 -0
  52. package/dist/gateway-client/generated/client/client.gen.d.ts.map +1 -0
  53. package/dist/gateway-client/generated/client/client.gen.js +217 -0
  54. package/dist/gateway-client/generated/client/client.gen.js.map +1 -0
  55. package/dist/gateway-client/generated/client/index.d.ts +11 -0
  56. package/dist/gateway-client/generated/client/index.d.ts.map +1 -0
  57. package/dist/gateway-client/generated/client/index.js +7 -0
  58. package/dist/gateway-client/generated/client/index.js.map +1 -0
  59. package/dist/gateway-client/generated/client/types.gen.d.ts +121 -0
  60. package/dist/gateway-client/generated/client/types.gen.d.ts.map +1 -0
  61. package/dist/gateway-client/generated/client/types.gen.js +3 -0
  62. package/dist/gateway-client/generated/client/types.gen.js.map +1 -0
  63. package/dist/gateway-client/generated/client/utils.gen.d.ts +38 -0
  64. package/dist/gateway-client/generated/client/utils.gen.d.ts.map +1 -0
  65. package/dist/gateway-client/generated/client/utils.gen.js +229 -0
  66. package/dist/gateway-client/generated/client/utils.gen.js.map +1 -0
  67. package/dist/gateway-client/generated/client.gen.d.ts +13 -0
  68. package/dist/gateway-client/generated/client.gen.d.ts.map +1 -0
  69. package/dist/gateway-client/generated/client.gen.js +4 -0
  70. package/dist/gateway-client/generated/client.gen.js.map +1 -0
  71. package/dist/gateway-client/generated/core/auth.gen.d.ts +26 -0
  72. package/dist/gateway-client/generated/core/auth.gen.d.ts.map +1 -0
  73. package/dist/gateway-client/generated/core/auth.gen.js +15 -0
  74. package/dist/gateway-client/generated/core/auth.gen.js.map +1 -0
  75. package/dist/gateway-client/generated/core/bodySerializer.gen.d.ts +26 -0
  76. package/dist/gateway-client/generated/core/bodySerializer.gen.d.ts.map +1 -0
  77. package/dist/gateway-client/generated/core/bodySerializer.gen.js +58 -0
  78. package/dist/gateway-client/generated/core/bodySerializer.gen.js.map +1 -0
  79. package/dist/gateway-client/generated/core/params.gen.d.ts +44 -0
  80. package/dist/gateway-client/generated/core/params.gen.d.ts.map +1 -0
  81. package/dist/gateway-client/generated/core/params.gen.js +101 -0
  82. package/dist/gateway-client/generated/core/params.gen.js.map +1 -0
  83. package/dist/gateway-client/generated/core/pathSerializer.gen.d.ts +34 -0
  84. package/dist/gateway-client/generated/core/pathSerializer.gen.d.ts.map +1 -0
  85. package/dist/gateway-client/generated/core/pathSerializer.gen.js +107 -0
  86. package/dist/gateway-client/generated/core/pathSerializer.gen.js.map +1 -0
  87. package/dist/gateway-client/generated/core/queryKeySerializer.gen.d.ts +19 -0
  88. package/dist/gateway-client/generated/core/queryKeySerializer.gen.d.ts.map +1 -0
  89. package/dist/gateway-client/generated/core/queryKeySerializer.gen.js +93 -0
  90. package/dist/gateway-client/generated/core/queryKeySerializer.gen.js.map +1 -0
  91. package/dist/gateway-client/generated/core/serverSentEvents.gen.d.ts +72 -0
  92. package/dist/gateway-client/generated/core/serverSentEvents.gen.d.ts.map +1 -0
  93. package/dist/gateway-client/generated/core/serverSentEvents.gen.js +133 -0
  94. package/dist/gateway-client/generated/core/serverSentEvents.gen.js.map +1 -0
  95. package/dist/gateway-client/generated/core/types.gen.d.ts +84 -0
  96. package/dist/gateway-client/generated/core/types.gen.d.ts.map +1 -0
  97. package/dist/gateway-client/generated/core/types.gen.js +3 -0
  98. package/dist/gateway-client/generated/core/types.gen.js.map +1 -0
  99. package/dist/gateway-client/generated/core/utils.gen.d.ts +20 -0
  100. package/dist/gateway-client/generated/core/utils.gen.d.ts.map +1 -0
  101. package/dist/gateway-client/generated/core/utils.gen.js +88 -0
  102. package/dist/gateway-client/generated/core/utils.gen.js.map +1 -0
  103. package/dist/gateway-client/generated/index.d.ts +3 -0
  104. package/dist/gateway-client/generated/index.d.ts.map +1 -0
  105. package/dist/gateway-client/generated/index.js +3 -0
  106. package/dist/gateway-client/generated/index.js.map +1 -0
  107. package/dist/gateway-client/generated/namespaces.gen.d.ts +512 -0
  108. package/dist/gateway-client/generated/namespaces.gen.d.ts.map +1 -0
  109. package/dist/gateway-client/generated/namespaces.gen.js +521 -0
  110. package/dist/gateway-client/generated/namespaces.gen.js.map +1 -0
  111. package/dist/gateway-client/generated/sdk.gen.d.ts +1780 -0
  112. package/dist/gateway-client/generated/sdk.gen.d.ts.map +1 -0
  113. package/dist/gateway-client/generated/sdk.gen.js +3811 -0
  114. package/dist/gateway-client/generated/sdk.gen.js.map +1 -0
  115. package/dist/gateway-client/generated/types.gen.d.ts +14681 -0
  116. package/dist/gateway-client/generated/types.gen.d.ts.map +1 -0
  117. package/dist/gateway-client/generated/types.gen.js +3 -0
  118. package/dist/gateway-client/generated/types.gen.js.map +1 -0
  119. package/dist/gateway-client/index.d.ts +27 -0
  120. package/dist/gateway-client/index.d.ts.map +1 -0
  121. package/dist/gateway-client/index.js +25 -0
  122. package/dist/gateway-client/index.js.map +1 -0
  123. package/dist/gc/cleanup.d.ts +23 -8
  124. package/dist/gc/cleanup.d.ts.map +1 -1
  125. package/dist/gc/cleanup.js +287 -22
  126. package/dist/gc/cleanup.js.map +1 -1
  127. package/dist/index.d.ts +10 -0
  128. package/dist/index.d.ts.map +1 -1
  129. package/dist/index.js +20 -0
  130. package/dist/index.js.map +1 -1
  131. package/dist/init.d.ts.map +1 -1
  132. package/dist/init.js +28 -0
  133. package/dist/init.js.map +1 -1
  134. package/dist/internal.d.ts +10 -1
  135. package/dist/internal.d.ts.map +1 -1
  136. package/dist/internal.js +18 -1
  137. package/dist/internal.js.map +1 -1
  138. package/dist/llm/catalog-model-resolver.d.ts +19 -0
  139. package/dist/llm/catalog-model-resolver.d.ts.map +1 -1
  140. package/dist/llm/catalog-model-resolver.js +36 -0
  141. package/dist/llm/catalog-model-resolver.js.map +1 -1
  142. package/dist/llm/catalog-resolver.d.ts +112 -0
  143. package/dist/llm/catalog-resolver.d.ts.map +1 -0
  144. package/dist/llm/catalog-resolver.js +207 -0
  145. package/dist/llm/catalog-resolver.js.map +1 -0
  146. package/dist/llm/catalog-seeder.d.ts +96 -0
  147. package/dist/llm/catalog-seeder.d.ts.map +1 -0
  148. package/dist/llm/catalog-seeder.js +189 -0
  149. package/dist/llm/catalog-seeder.js.map +1 -0
  150. package/dist/llm/cli-ops.d.ts +16 -0
  151. package/dist/llm/cli-ops.d.ts.map +1 -1
  152. package/dist/llm/cli-ops.js +37 -10
  153. package/dist/llm/cli-ops.js.map +1 -1
  154. package/dist/llm/complexity-classifier.d.ts +208 -0
  155. package/dist/llm/complexity-classifier.d.ts.map +1 -0
  156. package/dist/llm/complexity-classifier.js +359 -0
  157. package/dist/llm/complexity-classifier.js.map +1 -0
  158. package/dist/llm/credential-pool.d.ts +2 -0
  159. package/dist/llm/credential-pool.d.ts.map +1 -1
  160. package/dist/llm/credential-pool.js +5 -2
  161. package/dist/llm/credential-pool.js.map +1 -1
  162. package/dist/llm/credentials-store.d.ts +10 -14
  163. package/dist/llm/credentials-store.d.ts.map +1 -1
  164. package/dist/llm/credentials-store.js.map +1 -1
  165. package/dist/llm/cross-provider-selector.d.ts +249 -0
  166. package/dist/llm/cross-provider-selector.d.ts.map +1 -0
  167. package/dist/llm/cross-provider-selector.js +572 -0
  168. package/dist/llm/cross-provider-selector.js.map +1 -0
  169. package/dist/llm/entity-ops.d.ts +299 -0
  170. package/dist/llm/entity-ops.d.ts.map +1 -0
  171. package/dist/llm/entity-ops.js +441 -0
  172. package/dist/llm/entity-ops.js.map +1 -0
  173. package/dist/llm/index.d.ts +17 -0
  174. package/dist/llm/index.d.ts.map +1 -1
  175. package/dist/llm/index.js +9 -0
  176. package/dist/llm/index.js.map +1 -1
  177. package/dist/llm/llm-queue-admit.d.ts +118 -0
  178. package/dist/llm/llm-queue-admit.d.ts.map +1 -0
  179. package/dist/llm/llm-queue-admit.js +275 -0
  180. package/dist/llm/llm-queue-admit.js.map +1 -0
  181. package/dist/llm/local-model-fit.d.ts +260 -0
  182. package/dist/llm/local-model-fit.d.ts.map +1 -0
  183. package/dist/llm/local-model-fit.js +563 -0
  184. package/dist/llm/local-model-fit.js.map +1 -0
  185. package/dist/llm/oauth/device-code.d.ts.map +1 -1
  186. package/dist/llm/oauth/device-code.js +2 -8
  187. package/dist/llm/oauth/device-code.js.map +1 -1
  188. package/dist/llm/oauth/google-pkce.d.ts.map +1 -1
  189. package/dist/llm/oauth/google-pkce.js +2 -18
  190. package/dist/llm/oauth/google-pkce.js.map +1 -1
  191. package/dist/llm/oauth/pkce.d.ts +70 -0
  192. package/dist/llm/oauth/pkce.d.ts.map +1 -1
  193. package/dist/llm/oauth/pkce.js +106 -29
  194. package/dist/llm/oauth/pkce.js.map +1 -1
  195. package/dist/llm/onboarding/front-door.d.ts +146 -0
  196. package/dist/llm/onboarding/front-door.d.ts.map +1 -0
  197. package/dist/llm/onboarding/front-door.js +153 -0
  198. package/dist/llm/onboarding/front-door.js.map +1 -0
  199. package/dist/llm/onboarding/login-engine.d.ts +175 -0
  200. package/dist/llm/onboarding/login-engine.d.ts.map +1 -0
  201. package/dist/llm/onboarding/login-engine.js +286 -0
  202. package/dist/llm/onboarding/login-engine.js.map +1 -0
  203. package/dist/llm/pi/pi-gondolin-env.d.ts +23 -0
  204. package/dist/llm/pi/pi-gondolin-env.d.ts.map +1 -1
  205. package/dist/llm/pi/pi-gondolin-env.js +2 -2
  206. package/dist/llm/pi/pi-gondolin-env.js.map +1 -1
  207. package/dist/llm/plugin-facade.js +4612 -1042
  208. package/dist/llm/plugin-facade.js.map +3 -3
  209. package/dist/llm/provider-registry/builtin/anthropic.d.ts.map +1 -1
  210. package/dist/llm/provider-registry/builtin/anthropic.js +23 -10
  211. package/dist/llm/provider-registry/builtin/anthropic.js.map +1 -1
  212. package/dist/llm/provider-registry/builtin/ollama.d.ts +18 -0
  213. package/dist/llm/provider-registry/builtin/ollama.d.ts.map +1 -1
  214. package/dist/llm/provider-registry/builtin/ollama.js +20 -2
  215. package/dist/llm/provider-registry/builtin/ollama.js.map +1 -1
  216. package/dist/llm/provider-registry/provider-alias.d.ts +62 -0
  217. package/dist/llm/provider-registry/provider-alias.d.ts.map +1 -0
  218. package/dist/llm/provider-registry/provider-alias.js +85 -0
  219. package/dist/llm/provider-registry/provider-alias.js.map +1 -0
  220. package/dist/llm/provider-registry/provider-defs.d.ts +45 -0
  221. package/dist/llm/provider-registry/provider-defs.d.ts.map +1 -0
  222. package/dist/llm/provider-registry/provider-defs.js +145 -0
  223. package/dist/llm/provider-registry/provider-defs.js.map +1 -0
  224. package/dist/llm/provider-registry/provider-seed.d.ts +78 -0
  225. package/dist/llm/provider-registry/provider-seed.d.ts.map +1 -0
  226. package/dist/llm/provider-registry/provider-seed.js +113 -0
  227. package/dist/llm/provider-registry/provider-seed.js.map +1 -0
  228. package/dist/llm/role-executor.d.ts.map +1 -1
  229. package/dist/llm/role-executor.js +36 -0
  230. package/dist/llm/role-executor.js.map +1 -1
  231. package/dist/llm/role-resolver.d.ts.map +1 -1
  232. package/dist/llm/role-resolver.js +52 -10
  233. package/dist/llm/role-resolver.js.map +1 -1
  234. package/dist/llm/system-resolver.d.ts.map +1 -1
  235. package/dist/llm/system-resolver.js +73 -22
  236. package/dist/llm/system-resolver.js.map +1 -1
  237. package/dist/llm/transports/codex-responses.d.ts +111 -88
  238. package/dist/llm/transports/codex-responses.d.ts.map +1 -1
  239. package/dist/llm/transports/codex-responses.js +456 -258
  240. package/dist/llm/transports/codex-responses.js.map +1 -1
  241. package/dist/memory/learnings.d.ts +4 -0
  242. package/dist/memory/learnings.d.ts.map +1 -1
  243. package/dist/memory/patterns.d.ts +4 -0
  244. package/dist/memory/patterns.d.ts.map +1 -1
  245. package/dist/metrics/index.d.ts +2 -0
  246. package/dist/metrics/index.d.ts.map +1 -1
  247. package/dist/metrics/index.js +1 -0
  248. package/dist/metrics/index.js.map +1 -1
  249. package/dist/orchestration/spawn.d.ts +89 -0
  250. package/dist/orchestration/spawn.d.ts.map +1 -1
  251. package/dist/orchestration/spawn.js +68 -0
  252. package/dist/orchestration/spawn.js.map +1 -1
  253. package/dist/playbooks/cantbook-profile.d.ts +96 -0
  254. package/dist/playbooks/cantbook-profile.d.ts.map +1 -0
  255. package/dist/playbooks/cantbook-profile.js +97 -0
  256. package/dist/playbooks/cantbook-profile.js.map +1 -0
  257. package/dist/playbooks/guarded-deterministic-runner.d.ts +153 -0
  258. package/dist/playbooks/guarded-deterministic-runner.d.ts.map +1 -0
  259. package/dist/playbooks/guarded-deterministic-runner.js +155 -0
  260. package/dist/playbooks/guarded-deterministic-runner.js.map +1 -0
  261. package/dist/playbooks/index.d.ts +2 -0
  262. package/dist/playbooks/index.d.ts.map +1 -1
  263. package/dist/playbooks/index.js +10 -0
  264. package/dist/playbooks/index.js.map +1 -1
  265. package/dist/playbooks/pi-runner-wiring.d.ts +75 -0
  266. package/dist/playbooks/pi-runner-wiring.d.ts.map +1 -0
  267. package/dist/playbooks/pi-runner-wiring.js +82 -0
  268. package/dist/playbooks/pi-runner-wiring.js.map +1 -0
  269. package/dist/release/index.d.ts +2 -2
  270. package/dist/release/index.d.ts.map +1 -1
  271. package/dist/release/index.js +1 -1
  272. package/dist/release/index.js.map +1 -1
  273. package/dist/release/reconcile.d.ts +97 -0
  274. package/dist/release/reconcile.d.ts.map +1 -1
  275. package/dist/release/reconcile.js +412 -5
  276. package/dist/release/reconcile.js.map +1 -1
  277. package/dist/resources/backend.d.ts +155 -0
  278. package/dist/resources/backend.d.ts.map +1 -0
  279. package/dist/resources/backend.js +23 -0
  280. package/dist/resources/backend.js.map +1 -0
  281. package/dist/resources/linux-backend.d.ts +167 -0
  282. package/dist/resources/linux-backend.d.ts.map +1 -0
  283. package/dist/resources/linux-backend.js +259 -0
  284. package/dist/resources/linux-backend.js.map +1 -0
  285. package/dist/resources/monitor.d.ts +230 -0
  286. package/dist/resources/monitor.d.ts.map +1 -0
  287. package/dist/resources/monitor.js +255 -0
  288. package/dist/resources/monitor.js.map +1 -0
  289. package/dist/resources/spawn-wrapper.d.ts +265 -0
  290. package/dist/resources/spawn-wrapper.d.ts.map +1 -0
  291. package/dist/resources/spawn-wrapper.js +304 -0
  292. package/dist/resources/spawn-wrapper.js.map +1 -0
  293. package/dist/runtime/openapi/generate-openapi.d.ts +211 -0
  294. package/dist/runtime/openapi/generate-openapi.d.ts.map +1 -0
  295. package/dist/runtime/openapi/generate-openapi.js +300 -0
  296. package/dist/runtime/openapi/generate-openapi.js.map +1 -0
  297. package/dist/runtime/openapi/index.d.ts +16 -0
  298. package/dist/runtime/openapi/index.d.ts.map +1 -0
  299. package/dist/runtime/openapi/index.js +16 -0
  300. package/dist/runtime/openapi/index.js.map +1 -0
  301. package/dist/selfimprove/budget.d.ts +11 -2
  302. package/dist/selfimprove/budget.d.ts.map +1 -1
  303. package/dist/selfimprove/budget.js +11 -2
  304. package/dist/selfimprove/budget.js.map +1 -1
  305. package/dist/selfimprove/fix-gen.d.ts +229 -0
  306. package/dist/selfimprove/fix-gen.d.ts.map +1 -0
  307. package/dist/selfimprove/fix-gen.js +266 -0
  308. package/dist/selfimprove/fix-gen.js.map +1 -0
  309. package/dist/selfimprove/run-loop.d.ts +44 -4
  310. package/dist/selfimprove/run-loop.d.ts.map +1 -1
  311. package/dist/selfimprove/run-loop.js +73 -6
  312. package/dist/selfimprove/run-loop.js.map +1 -1
  313. package/dist/selfimprove/scenarios/dhq-replay-find/golden.json +32 -0
  314. package/dist/selfimprove/scenarios/dhq-replay-find/scenario.json +18 -0
  315. package/dist/sentient/cross-project-hygiene.d.ts +11 -2
  316. package/dist/sentient/cross-project-hygiene.d.ts.map +1 -1
  317. package/dist/sentient/cross-project-hygiene.js +73 -10
  318. package/dist/sentient/cross-project-hygiene.js.map +1 -1
  319. package/dist/sentient/daemon.d.ts.map +1 -1
  320. package/dist/sentient/daemon.js +7 -2
  321. package/dist/sentient/daemon.js.map +1 -1
  322. package/dist/sentient/worktree-dispatch.d.ts.map +1 -1
  323. package/dist/sentient/worktree-dispatch.js +8 -1
  324. package/dist/sentient/worktree-dispatch.js.map +1 -1
  325. package/dist/setup/config-json-merge.d.ts.map +1 -1
  326. package/dist/setup/config-json-merge.js +14 -0
  327. package/dist/setup/config-json-merge.js.map +1 -1
  328. package/dist/setup/index.d.ts +23 -11
  329. package/dist/setup/index.d.ts.map +1 -1
  330. package/dist/setup/index.js +25 -12
  331. package/dist/setup/index.js.map +1 -1
  332. package/dist/setup/sections/llm.d.ts +28 -1
  333. package/dist/setup/sections/llm.d.ts.map +1 -1
  334. package/dist/setup/sections/llm.js +27 -6
  335. package/dist/setup/sections/llm.js.map +1 -1
  336. package/dist/setup/sections/models-roles.d.ts +40 -0
  337. package/dist/setup/sections/models-roles.d.ts.map +1 -0
  338. package/dist/setup/sections/models-roles.js +219 -0
  339. package/dist/setup/sections/models-roles.js.map +1 -0
  340. package/dist/setup/wizard.d.ts +19 -1
  341. package/dist/setup/wizard.d.ts.map +1 -1
  342. package/dist/setup/wizard.js.map +1 -1
  343. package/dist/spawn/branch-lock.d.ts.map +1 -1
  344. package/dist/spawn/branch-lock.js +7 -1
  345. package/dist/spawn/branch-lock.js.map +1 -1
  346. package/dist/store/attachment-repair.d.ts +110 -0
  347. package/dist/store/attachment-repair.d.ts.map +1 -0
  348. package/dist/store/attachment-repair.js +326 -0
  349. package/dist/store/attachment-repair.js.map +1 -0
  350. package/dist/store/attachment-store.d.ts.map +1 -1
  351. package/dist/store/attachment-store.js +24 -7
  352. package/dist/store/attachment-store.js.map +1 -1
  353. package/dist/store/schedule-schema.d.ts +195 -0
  354. package/dist/store/schedule-schema.d.ts.map +1 -0
  355. package/dist/store/schedule-schema.js +84 -0
  356. package/dist/store/schedule-schema.js.map +1 -0
  357. package/dist/store/schedule-store.d.ts +144 -0
  358. package/dist/store/schedule-store.d.ts.map +1 -0
  359. package/dist/store/schedule-store.js +162 -0
  360. package/dist/store/schedule-store.js.map +1 -0
  361. package/dist/store/schema/attachments.d.ts +1 -1
  362. package/dist/store/schema/cleo-global/index.d.ts +3 -0
  363. package/dist/store/schema/cleo-global/index.d.ts.map +1 -1
  364. package/dist/store/schema/cleo-global/index.js +5 -0
  365. package/dist/store/schema/cleo-global/index.js.map +1 -1
  366. package/dist/store/schema/cleo-global/models-catalog.d.ts +359 -0
  367. package/dist/store/schema/cleo-global/models-catalog.d.ts.map +1 -0
  368. package/dist/store/schema/cleo-global/models-catalog.js +114 -0
  369. package/dist/store/schema/cleo-global/models-catalog.js.map +1 -0
  370. package/dist/store/schema/cleo-global/providers.d.ts +279 -0
  371. package/dist/store/schema/cleo-global/providers.d.ts.map +1 -0
  372. package/dist/store/schema/cleo-global/providers.js +94 -0
  373. package/dist/store/schema/cleo-global/providers.js.map +1 -0
  374. package/dist/store/schema/cleo-global/services.d.ts +493 -0
  375. package/dist/store/schema/cleo-global/services.d.ts.map +1 -0
  376. package/dist/store/schema/cleo-global/services.js +200 -0
  377. package/dist/store/schema/cleo-global/services.js.map +1 -0
  378. package/dist/store/schema/cleo-project/docs.d.ts +1 -1
  379. package/dist/store/schema/cleo-project/provenance-rest.d.ts +1 -1
  380. package/dist/store/schema/cleo-shared/brain.d.ts +2 -2
  381. package/dist/store/schema/memory-schema.d.ts +182 -2
  382. package/dist/store/schema/memory-schema.d.ts.map +1 -1
  383. package/dist/store/schema/memory-schema.js +111 -2
  384. package/dist/store/schema/memory-schema.js.map +1 -1
  385. package/dist/store/schema/provenance/releases.d.ts +1 -1
  386. package/dist/store/service-connections-accessor.d.ts +313 -0
  387. package/dist/store/service-connections-accessor.d.ts.map +1 -0
  388. package/dist/store/service-connections-accessor.js +464 -0
  389. package/dist/store/service-connections-accessor.js.map +1 -0
  390. package/dist/store/service-host-matcher.d.ts +70 -0
  391. package/dist/store/service-host-matcher.d.ts.map +1 -0
  392. package/dist/store/service-host-matcher.js +127 -0
  393. package/dist/store/service-host-matcher.js.map +1 -0
  394. package/dist/store/service-injection.d.ts +152 -0
  395. package/dist/store/service-injection.d.ts.map +1 -0
  396. package/dist/store/service-injection.js +225 -0
  397. package/dist/store/service-injection.js.map +1 -0
  398. package/dist/store/service-oauth.d.ts +287 -0
  399. package/dist/store/service-oauth.d.ts.map +1 -0
  400. package/dist/store/service-oauth.js +524 -0
  401. package/dist/store/service-oauth.js.map +1 -0
  402. package/dist/store/service-trust-gate.d.ts +164 -0
  403. package/dist/store/service-trust-gate.d.ts.map +1 -0
  404. package/dist/store/service-trust-gate.js +122 -0
  405. package/dist/store/service-trust-gate.js.map +1 -0
  406. package/dist/store/validation-schemas.d.ts +4 -4
  407. package/dist/tasks/agent-lifecycle-lane.d.ts +175 -0
  408. package/dist/tasks/agent-lifecycle-lane.d.ts.map +1 -0
  409. package/dist/tasks/agent-lifecycle-lane.js +176 -0
  410. package/dist/tasks/agent-lifecycle-lane.js.map +1 -0
  411. package/dist/tasks/complete.d.ts +17 -0
  412. package/dist/tasks/complete.d.ts.map +1 -1
  413. package/dist/tasks/complete.js +53 -10
  414. package/dist/tasks/complete.js.map +1 -1
  415. package/dist/tasks/depends-waiver-audit.d.ts +52 -0
  416. package/dist/tasks/depends-waiver-audit.d.ts.map +1 -0
  417. package/dist/tasks/depends-waiver-audit.js +36 -0
  418. package/dist/tasks/depends-waiver-audit.js.map +1 -0
  419. package/dist/tasks/engine-wrap.d.ts +36 -2
  420. package/dist/tasks/engine-wrap.d.ts.map +1 -1
  421. package/dist/tasks/engine-wrap.js +44 -2
  422. package/dist/tasks/engine-wrap.js.map +1 -1
  423. package/dist/tasks/evidence.d.ts +34 -2
  424. package/dist/tasks/evidence.d.ts.map +1 -1
  425. package/dist/tasks/evidence.js +293 -35
  426. package/dist/tasks/evidence.js.map +1 -1
  427. package/dist/tasks/index.d.ts +1 -0
  428. package/dist/tasks/index.d.ts.map +1 -1
  429. package/dist/tasks/index.js +1 -0
  430. package/dist/tasks/index.js.map +1 -1
  431. package/dist/tasks/ops.d.ts +3 -0
  432. package/dist/tasks/ops.d.ts.map +1 -1
  433. package/dist/tasks/task-ops.d.ts +1 -1
  434. package/dist/tasks/task-ops.d.ts.map +1 -1
  435. package/dist/tasks/task-ops.js +3 -1
  436. package/dist/tasks/task-ops.js.map +1 -1
  437. package/dist/tasks/task-reparent.d.ts +90 -0
  438. package/dist/tasks/task-reparent.d.ts.map +1 -1
  439. package/dist/tasks/task-reparent.js +171 -0
  440. package/dist/tasks/task-reparent.js.map +1 -1
  441. package/dist/tools/builtin-agent-tools.d.ts.map +1 -1
  442. package/dist/tools/builtin-agent-tools.js +41 -0
  443. package/dist/tools/builtin-agent-tools.js.map +1 -1
  444. package/dist/tools/exec-code-agent-tool.d.ts +179 -0
  445. package/dist/tools/exec-code-agent-tool.d.ts.map +1 -0
  446. package/dist/tools/exec-code-agent-tool.js +239 -0
  447. package/dist/tools/exec-code-agent-tool.js.map +1 -0
  448. package/dist/tools/index.d.ts +6 -0
  449. package/dist/tools/index.d.ts.map +1 -1
  450. package/dist/tools/index.js +15 -0
  451. package/dist/tools/index.js.map +1 -1
  452. package/dist/tools/mcp-agent-tool.d.ts +189 -0
  453. package/dist/tools/mcp-agent-tool.d.ts.map +1 -0
  454. package/dist/tools/mcp-agent-tool.js +243 -0
  455. package/dist/tools/mcp-agent-tool.js.map +1 -0
  456. package/dist/tools/media-agent-tools.d.ts +105 -0
  457. package/dist/tools/media-agent-tools.d.ts.map +1 -0
  458. package/dist/tools/media-agent-tools.js +255 -0
  459. package/dist/tools/media-agent-tools.js.map +1 -0
  460. package/dist/tools/memory-agent-tools.d.ts +99 -0
  461. package/dist/tools/memory-agent-tools.d.ts.map +1 -0
  462. package/dist/tools/memory-agent-tools.js +190 -0
  463. package/dist/tools/memory-agent-tools.js.map +1 -0
  464. package/dist/tools/schedule-agent-tools.d.ts +151 -0
  465. package/dist/tools/schedule-agent-tools.d.ts.map +1 -0
  466. package/dist/tools/schedule-agent-tools.js +238 -0
  467. package/dist/tools/schedule-agent-tools.js.map +1 -0
  468. package/dist/tools/skill-agent-tool.d.ts +108 -0
  469. package/dist/tools/skill-agent-tool.d.ts.map +1 -0
  470. package/dist/tools/skill-agent-tool.js +135 -0
  471. package/dist/tools/skill-agent-tool.js.map +1 -0
  472. package/dist/validation/engine-ops.d.ts.map +1 -1
  473. package/dist/validation/engine-ops.js +17 -1
  474. package/dist/validation/engine-ops.js.map +1 -1
  475. package/dist/verification/verify-tools.d.ts.map +1 -1
  476. package/dist/verification/verify-tools.js +5 -6
  477. package/dist/verification/verify-tools.js.map +1 -1
  478. package/migrations/drizzle-brain/20260610000001_t10405-bitemporal-network-columns/migration.sql +71 -0
  479. package/migrations/drizzle-cleo-global/20260609000000_t11937-service-vault/migration.sql +93 -0
  480. package/migrations/drizzle-cleo-global/20260609010000_t11733-models-catalog/migration.sql +65 -0
  481. package/migrations/drizzle-cleo-global/20260609020000_t11703-providers/migration.sql +52 -0
  482. package/migrations/drizzle-cleo-global/20260610000000_t11962-schedules/migration.sql +48 -0
  483. package/migrations/drizzle-cleo-project/20260610000000_t11962-schedules/migration.sql +48 -0
  484. package/package.json +33 -13
  485. package/templates/workflows/release-prepare.yml.tmpl +48 -2
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../../src/llm/provider-registry/builtin/anthropic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAG3D;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,yBAAyB,yCAAyC,CAAC;AAwChF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,gBAAgB,EAAE,eAa9B,CAAC"}
1
+ {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../../src/llm/provider-registry/builtin/anthropic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAG3D;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,yBAAyB,yCAAyC,CAAC;AAqDhF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,gBAAgB,EAAE,eAa9B,CAAC"}
@@ -37,28 +37,41 @@ function resolveAnthropicClientId() {
37
37
  /**
38
38
  * Anthropic OAuth PKCE configuration.
39
39
  *
40
- * Anthropic uses RFC 7636 PKCE (not device-code). Endpoints and redirect
41
- * URI mirror the Hermes Agent reference implementation
42
- * (`agent/anthropic_adapter.py` `_OAUTH_*` constants):
40
+ * Anthropic uses RFC 7636 PKCE (not device-code). Endpoints mirror the
41
+ * embedded Pi framework reference implementation
42
+ * (`@earendil-works/pi-ai` `dist/utils/oauth/anthropic.js`, also what
43
+ * OpenCode and Claude Code use):
43
44
  * - authorizationEndpoint: https://claude.ai/oauth/authorize
44
- * - tokenEndpoint: https://console.anthropic.com/v1/oauth/token
45
- * - redirectUri: https://console.anthropic.com/oauth/code/callback
45
+ * - tokenEndpoint: https://platform.claude.com/v1/oauth/token
46
+ * - redirectUri: https://platform.claude.com/oauth/code/callback
47
+ *
48
+ * The `console.anthropic.com` endpoints were retired in the Anthropic →
49
+ * claude.com domain migration: the authorize server redirects to
50
+ * `platform.claude.com/oauth/code/callback` regardless of the requested
51
+ * redirect_uri, so exchanging against the old host fails with HTTP 400
52
+ * (T11958 / DHQ-075).
53
+ *
54
+ * Anthropic's token endpoint is non-RFC in two ways (mirrored from pi-ai):
55
+ * - it expects an `application/json` body (`tokenBodyFormat: 'json'`), and
56
+ * - it requires the authorize-time `state` echoed in the exchange body.
46
57
  *
47
58
  * The Anthropic-hosted redirect URI displays the authorization code on the
48
- * post-redirect page so the user can paste it back into the CLI prompt
49
- * (the same headless paste-back flow Hermes and Claude Code use). No local
50
- * HTTP listener is required.
59
+ * post-redirect page (`code=true` opts into that display) so the user can
60
+ * paste it back into the CLI prompt. No local HTTP listener is required.
51
61
  *
52
62
  * @task T9302
53
63
  * @task T9344
64
+ * @task T11958
54
65
  */
55
66
  const ANTHROPIC_OAUTH = {
56
67
  mode: 'pkce',
57
68
  clientId: resolveAnthropicClientId(),
58
69
  authorizationEndpoint: 'https://claude.ai/oauth/authorize',
59
- tokenEndpoint: 'https://console.anthropic.com/v1/oauth/token',
70
+ tokenEndpoint: 'https://platform.claude.com/v1/oauth/token',
60
71
  scope: 'org:create_api_key user:profile user:inference',
61
- redirectUri: 'https://console.anthropic.com/oauth/code/callback',
72
+ redirectUri: 'https://platform.claude.com/oauth/code/callback',
73
+ extraAuthParams: { code: 'true' },
74
+ tokenBodyFormat: 'json',
62
75
  };
63
76
  /**
64
77
  * Anthropic Claude provider profile.
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../../../src/llm/provider-registry/builtin/anthropic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,sCAAsC,CAAC;AAEhF;;;;;;GAMG;AACH,SAAS,wBAAwB;IAC/B,OAAO,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,IAAI,yBAAyB,CAAC;AACpF,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,eAAe,GAAwB;IAC3C,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,wBAAwB,EAAE;IACpC,qBAAqB,EAAE,mCAAmC;IAC1D,aAAa,EAAE,8CAA8C;IAC7D,KAAK,EAAE,gDAAgD;IACvD,WAAW,EAAE,mDAAmD;CACjE,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAoB;IAC/C,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,kBAAkB;IAC/B,SAAS,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC;IAC/B,OAAO,EAAE,2BAA2B;IACpC,YAAY,EAAE,2BAA2B;IACzC,OAAO,EAAE,CAAC,QAAQ,EAAE,eAAe,CAAC;IACpC,2EAA2E;IAC3E,IAAI,EAAE,UAAU;IAChB,eAAe,EAAE,2BAA2B;IAC5C,gBAAgB,EAAE,IAAI;IACtB,cAAc,EAAE,EAAE,mBAAmB,EAAE,YAAY,EAAE;IACrD,KAAK,EAAE,eAAe;CACvB,CAAC"}
1
+ {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../../../src/llm/provider-registry/builtin/anthropic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,sCAAsC,CAAC;AAEhF;;;;;;GAMG;AACH,SAAS,wBAAwB;IAC/B,OAAO,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,IAAI,yBAAyB,CAAC;AACpF,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,eAAe,GAAwB;IAC3C,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,wBAAwB,EAAE;IACpC,qBAAqB,EAAE,mCAAmC;IAC1D,aAAa,EAAE,4CAA4C;IAC3D,KAAK,EAAE,gDAAgD;IACvD,WAAW,EAAE,iDAAiD;IAC9D,eAAe,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;IACjC,eAAe,EAAE,MAAM;CACxB,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAoB;IAC/C,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,kBAAkB;IAC/B,SAAS,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC;IAC/B,OAAO,EAAE,2BAA2B;IACpC,YAAY,EAAE,2BAA2B;IACzC,OAAO,EAAE,CAAC,QAAQ,EAAE,eAAe,CAAC;IACpC,2EAA2E;IAC3E,IAAI,EAAE,UAAU;IAChB,eAAe,EAAE,2BAA2B;IAC5C,gBAAgB,EAAE,IAAI;IACtB,cAAc,EAAE,EAAE,mBAAmB,EAAE,YAAY,EAAE;IACrD,KAAK,EAAE,eAAe;CACvB,CAAC"}
@@ -30,6 +30,24 @@ import type { ProviderProfile } from '@cleocode/contracts';
30
30
  * `authTypes: ['api_key']` is listed for compatibility with the credential
31
31
  * store API, but local Ollama deployments do not require an actual key —
32
32
  * users may leave it empty or store a token for remote/proxied deployments.
33
+ *
34
+ * ## Default model selection (DHQ-081 · T11978 · T11990)
35
+ *
36
+ * `defaultModel` is `gemma4:e4b` (standard/frontier tasks, requires ≥ 8 GB RAM).
37
+ * `defaultAuxModel` is `gemma4:e2b` (fast/aux tasks, requires ≥ 4 GB RAM).
38
+ *
39
+ * Tags live-verified on ollama.com/library/gemma4 2026-06-11:
40
+ * - gemma4:e2b = 7.2 GB download (Q4_K_M), edge 2B effective params
41
+ * - gemma4:e4b = 9.6 GB download (Q4_K_M), edge 4B effective params
42
+ * - gemma4:12b = 7.6 GB download (QAT), 12B params, 256k context
43
+ *
44
+ * The cross-provider selector (`cross-provider-selector.ts`) gates model selection
45
+ * on `os.totalmem()` and falls through to `qwen2:0.5b` only as a proof-of-life
46
+ * last resort when RAM is below 4 GB. These are the provider-registry SSoT
47
+ * constants; the selector reads them via `getProviderProfile('ollama')`.
48
+ *
49
+ * If the catalog does not yet have a `gemma4` family entry, the resolver logs a
50
+ * hint to run `cleo llm refresh-catalog`.
33
51
  */
34
52
  export declare const ollamaProfile: ProviderProfile;
35
53
  //# sourceMappingURL=ollama.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ollama.d.ts","sourceRoot":"","sources":["../../../../src/llm/provider-registry/builtin/ollama.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAM3D;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,aAAa,EAAE,eAa3B,CAAC"}
1
+ {"version":3,"file":"ollama.d.ts","sourceRoot":"","sources":["../../../../src/llm/provider-registry/builtin/ollama.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAM3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,aAAa,EAAE,eAa3B,CAAC"}
@@ -32,17 +32,35 @@
32
32
  * `authTypes: ['api_key']` is listed for compatibility with the credential
33
33
  * store API, but local Ollama deployments do not require an actual key —
34
34
  * users may leave it empty or store a token for remote/proxied deployments.
35
+ *
36
+ * ## Default model selection (DHQ-081 · T11978 · T11990)
37
+ *
38
+ * `defaultModel` is `gemma4:e4b` (standard/frontier tasks, requires ≥ 8 GB RAM).
39
+ * `defaultAuxModel` is `gemma4:e2b` (fast/aux tasks, requires ≥ 4 GB RAM).
40
+ *
41
+ * Tags live-verified on ollama.com/library/gemma4 2026-06-11:
42
+ * - gemma4:e2b = 7.2 GB download (Q4_K_M), edge 2B effective params
43
+ * - gemma4:e4b = 9.6 GB download (Q4_K_M), edge 4B effective params
44
+ * - gemma4:12b = 7.6 GB download (QAT), 12B params, 256k context
45
+ *
46
+ * The cross-provider selector (`cross-provider-selector.ts`) gates model selection
47
+ * on `os.totalmem()` and falls through to `qwen2:0.5b` only as a proof-of-life
48
+ * last resort when RAM is below 4 GB. These are the provider-registry SSoT
49
+ * constants; the selector reads them via `getProviderProfile('ollama')`.
50
+ *
51
+ * If the catalog does not yet have a `gemma4` family entry, the resolver logs a
52
+ * hint to run `cleo llm refresh-catalog`.
35
53
  */
36
54
  export const ollamaProfile = {
37
55
  name: 'ollama',
38
56
  displayName: 'Ollama (local)',
39
57
  authTypes: ['api_key'],
40
58
  baseUrl: 'http://localhost:11434',
41
- defaultModel: 'llama3',
59
+ defaultModel: 'gemma4:e4b',
42
60
  aliases: ['ollama-local'],
43
61
  // Hermes-parity routing/catalog fields (T11756). Local on-device tier.
44
62
  tier: 'local',
45
- defaultAuxModel: 'llama3',
63
+ defaultAuxModel: 'gemma4:e2b',
46
64
  defaultMaxTokens: 2048,
47
65
  envVars: ['OLLAMA_API_KEY', 'OLLAMA_BASE_URL'],
48
66
  supportsThinkingBudget: false,
@@ -1 +1 @@
1
- {"version":3,"file":"ollama.js","sourceRoot":"","sources":["../../../../src/llm/provider-registry/builtin/ollama.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,aAAa,GAAoB;IAC5C,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,gBAAgB;IAC7B,SAAS,EAAE,CAAC,SAAS,CAAC;IACtB,OAAO,EAAE,wBAAwB;IACjC,YAAY,EAAE,QAAQ;IACtB,OAAO,EAAE,CAAC,cAAc,CAAC;IACzB,uEAAuE;IACvE,IAAI,EAAE,OAAO;IACb,eAAe,EAAE,QAAQ;IACzB,gBAAgB,EAAE,IAAI;IACtB,OAAO,EAAE,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;IAC9C,sBAAsB,EAAE,KAAK;CAC9B,CAAC"}
1
+ {"version":3,"file":"ollama.js","sourceRoot":"","sources":["../../../../src/llm/provider-registry/builtin/ollama.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,CAAC,MAAM,aAAa,GAAoB;IAC5C,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,gBAAgB;IAC7B,SAAS,EAAE,CAAC,SAAS,CAAC;IACtB,OAAO,EAAE,wBAAwB;IACjC,YAAY,EAAE,YAAY;IAC1B,OAAO,EAAE,CAAC,cAAc,CAAC;IACzB,uEAAuE;IACvE,IAAI,EAAE,OAAO;IACb,eAAe,EAAE,YAAY;IAC7B,gBAAgB,EAAE,IAAI;IACtB,OAAO,EAAE,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;IAC9C,sBAAsB,EAAE,KAAK;CAC9B,CAAC"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Pure provider-alias resolution over {@link ProviderDef.aliases} (T11704).
3
+ *
4
+ * M3 Provider SSoT (epic T11667 · task T11704). {@link resolveProviderId} maps a name
5
+ * OR an alias to its canonical provider id, reading the {@link ProviderDef} set's
6
+ * `aliases` arrays as the SINGLE source — `codex`/`chatgpt` → `openai`,
7
+ * `claude` → `anthropic`, `google` → `gemini`, … It is the declarative replacement
8
+ * for the ad-hoc `_aliases` Map the in-process registry populates imperatively.
9
+ *
10
+ * ## Pure + deterministic + side-effect-free (AC2 · AC5)
11
+ *
12
+ * The resolver is a pure function of `(input, defs)`: no DB, no network, no module
13
+ * state. {@link buildAliasIndex} folds the provider set into an immutable
14
+ * `alias → id` index once; {@link resolveProviderId} is a single case-insensitive
15
+ * lookup. An alias that collides with ANOTHER provider's primary id is rejected at
16
+ * index-build time (a hard error) so a mis-declared alias can never silently
17
+ * mis-route. Unknown input returns `null`.
18
+ *
19
+ * @module llm/provider-registry/provider-alias
20
+ * @task T11704
21
+ * @epic T11667
22
+ * @see @cleocode/contracts — {@link ProviderDef} (the declarative contract, T11702)
23
+ * @see ./provider-defs.ts — {@link builtinProviderDefs} (the default provider set)
24
+ */
25
+ import type { ProviderDef } from '@cleocode/contracts';
26
+ /**
27
+ * An immutable case-insensitive `alias-or-id → canonical-id` index built from a
28
+ * provider set. Every provider's own id maps to itself; every alias maps to its
29
+ * provider's id.
30
+ *
31
+ * @task T11704
32
+ */
33
+ export type ProviderAliasIndex = ReadonlyMap<string, string>;
34
+ /**
35
+ * Build the immutable {@link ProviderAliasIndex} from a provider set.
36
+ *
37
+ * Every provider's lower-cased `id` maps to itself; every lower-cased alias maps to
38
+ * its provider's id. Pure + deterministic.
39
+ *
40
+ * @param defs - The provider definitions (defaults to {@link builtinProviderDefs}).
41
+ * @returns The case-insensitive alias index.
42
+ * @throws {Error} When an alias collides with ANOTHER provider's primary id, or two
43
+ * providers declare the SAME alias (ambiguous resolution — AC2).
44
+ * @task T11704
45
+ */
46
+ export declare function buildAliasIndex(defs?: ReadonlyArray<ProviderDef>): ProviderAliasIndex;
47
+ /**
48
+ * Resolve a provider name or alias to its canonical provider id (case-insensitive).
49
+ *
50
+ * Pure + deterministic + side-effect-free. `codex`/`chatgpt` → `openai`,
51
+ * `claude` → `anthropic`, an exact provider id → itself. Returns `null` for an
52
+ * unknown name (callers handle the generic/fallback case).
53
+ *
54
+ * @param input - The provider name or alias to resolve.
55
+ * @param indexOrDefs - An already-built {@link ProviderAliasIndex}, OR the provider
56
+ * set to build one from (defaults to {@link builtinProviderDefs}). Pass the prebuilt
57
+ * index in a hot loop to avoid rebuilding per call.
58
+ * @returns The canonical provider id, or `null` when `input` matches no id/alias.
59
+ * @task T11704
60
+ */
61
+ export declare function resolveProviderId(input: string, indexOrDefs?: ProviderAliasIndex | ReadonlyArray<ProviderDef>): string | null;
62
+ //# sourceMappingURL=provider-alias.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-alias.d.ts","sourceRoot":"","sources":["../../../src/llm/provider-registry/provider-alias.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGvD;;;;;;GAMG;AACH,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE7D;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAC7B,IAAI,GAAE,aAAa,CAAC,WAAW,CAAyB,GACvD,kBAAkB,CA8BpB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EACb,WAAW,GAAE,kBAAkB,GAAG,aAAa,CAAC,WAAW,CAAyB,GACnF,MAAM,GAAG,IAAI,CAMf"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * Pure provider-alias resolution over {@link ProviderDef.aliases} (T11704).
3
+ *
4
+ * M3 Provider SSoT (epic T11667 · task T11704). {@link resolveProviderId} maps a name
5
+ * OR an alias to its canonical provider id, reading the {@link ProviderDef} set's
6
+ * `aliases` arrays as the SINGLE source — `codex`/`chatgpt` → `openai`,
7
+ * `claude` → `anthropic`, `google` → `gemini`, … It is the declarative replacement
8
+ * for the ad-hoc `_aliases` Map the in-process registry populates imperatively.
9
+ *
10
+ * ## Pure + deterministic + side-effect-free (AC2 · AC5)
11
+ *
12
+ * The resolver is a pure function of `(input, defs)`: no DB, no network, no module
13
+ * state. {@link buildAliasIndex} folds the provider set into an immutable
14
+ * `alias → id` index once; {@link resolveProviderId} is a single case-insensitive
15
+ * lookup. An alias that collides with ANOTHER provider's primary id is rejected at
16
+ * index-build time (a hard error) so a mis-declared alias can never silently
17
+ * mis-route. Unknown input returns `null`.
18
+ *
19
+ * @module llm/provider-registry/provider-alias
20
+ * @task T11704
21
+ * @epic T11667
22
+ * @see @cleocode/contracts — {@link ProviderDef} (the declarative contract, T11702)
23
+ * @see ./provider-defs.ts — {@link builtinProviderDefs} (the default provider set)
24
+ */
25
+ import { builtinProviderDefs } from './provider-defs.js';
26
+ /**
27
+ * Build the immutable {@link ProviderAliasIndex} from a provider set.
28
+ *
29
+ * Every provider's lower-cased `id` maps to itself; every lower-cased alias maps to
30
+ * its provider's id. Pure + deterministic.
31
+ *
32
+ * @param defs - The provider definitions (defaults to {@link builtinProviderDefs}).
33
+ * @returns The case-insensitive alias index.
34
+ * @throws {Error} When an alias collides with ANOTHER provider's primary id, or two
35
+ * providers declare the SAME alias (ambiguous resolution — AC2).
36
+ * @task T11704
37
+ */
38
+ export function buildAliasIndex(defs = builtinProviderDefs()) {
39
+ const ids = new Set();
40
+ for (const def of defs)
41
+ ids.add(def.id.toLowerCase());
42
+ const index = new Map();
43
+ // Primary ids first — an id always resolves to itself.
44
+ for (const id of ids)
45
+ index.set(id, id);
46
+ for (const def of defs) {
47
+ const canonical = def.id.toLowerCase();
48
+ for (const alias of def.aliases) {
49
+ const key = alias.toLowerCase();
50
+ // An alias that IS another provider's primary id is a hard collision.
51
+ if (ids.has(key) && key !== canonical) {
52
+ throw new Error(`[provider-alias] Alias "${alias}" for provider "${def.id}" collides with the ` +
53
+ `primary id of another provider.`);
54
+ }
55
+ const existing = index.get(key);
56
+ if (existing !== undefined && existing !== canonical) {
57
+ throw new Error(`[provider-alias] Alias "${alias}" is declared by both "${existing}" and ` +
58
+ `"${def.id}" — ambiguous resolution.`);
59
+ }
60
+ index.set(key, canonical);
61
+ }
62
+ }
63
+ return index;
64
+ }
65
+ /**
66
+ * Resolve a provider name or alias to its canonical provider id (case-insensitive).
67
+ *
68
+ * Pure + deterministic + side-effect-free. `codex`/`chatgpt` → `openai`,
69
+ * `claude` → `anthropic`, an exact provider id → itself. Returns `null` for an
70
+ * unknown name (callers handle the generic/fallback case).
71
+ *
72
+ * @param input - The provider name or alias to resolve.
73
+ * @param indexOrDefs - An already-built {@link ProviderAliasIndex}, OR the provider
74
+ * set to build one from (defaults to {@link builtinProviderDefs}). Pass the prebuilt
75
+ * index in a hot loop to avoid rebuilding per call.
76
+ * @returns The canonical provider id, or `null` when `input` matches no id/alias.
77
+ * @task T11704
78
+ */
79
+ export function resolveProviderId(input, indexOrDefs = builtinProviderDefs()) {
80
+ // Discriminate on the Map's `get` method — an already-built ProviderAliasIndex
81
+ // (a ReadonlyMap) has it; a provider-set array does not (build the index from it).
82
+ const index = 'get' in indexOrDefs ? indexOrDefs : buildAliasIndex(indexOrDefs);
83
+ return index.get(input.trim().toLowerCase()) ?? null;
84
+ }
85
+ //# sourceMappingURL=provider-alias.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-alias.js","sourceRoot":"","sources":["../../../src/llm/provider-registry/provider-alias.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAWzD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,eAAe,CAC7B,OAAmC,mBAAmB,EAAE;IAExD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,KAAK,MAAM,GAAG,IAAI,IAAI;QAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;IAEtD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxC,uDAAuD;IACvD,KAAK,MAAM,EAAE,IAAI,GAAG;QAAE,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAExC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;QACvC,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChC,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YAChC,sEAAsE;YACtE,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACtC,MAAM,IAAI,KAAK,CACb,2BAA2B,KAAK,mBAAmB,GAAG,CAAC,EAAE,sBAAsB;oBAC7E,iCAAiC,CACpC,CAAC;YACJ,CAAC;YACD,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAChC,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACrD,MAAM,IAAI,KAAK,CACb,2BAA2B,KAAK,0BAA0B,QAAQ,QAAQ;oBACxE,IAAI,GAAG,CAAC,EAAE,2BAA2B,CACxC,CAAC;YACJ,CAAC;YACD,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,iBAAiB,CAC/B,KAAa,EACb,cAA+D,mBAAmB,EAAE;IAEpF,+EAA+E;IAC/E,mFAAmF;IACnF,MAAM,KAAK,GACT,KAAK,IAAI,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;IACpE,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,IAAI,IAAI,CAAC;AACvD,CAAC"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Builtin {@link ProviderDef} set — the SEED SOURCE for the `providers` table.
3
+ *
4
+ * M3 Provider SSoT (epic T11667 · task T11703). The DECLARATIVE provider definitions
5
+ * are DERIVED from the existing runtime {@link ProviderProfile} builtins (the in-process
6
+ * registry SSoT) rather than re-declared — so the two never drift and there is one
7
+ * place to add a provider (the profile). `toProviderDef` projects a `ProviderProfile`
8
+ * (which bundles non-serializable hook closures) down to the serializable `ProviderDef`
9
+ * shape (DATA only): identity + aliases + auth + endpoint(s) + catalog key + headers +
10
+ * env vars + OAuth placeholder + the declarative request quirks.
11
+ *
12
+ * ## Why this lives under `provider-registry/`
13
+ *
14
+ * The builtin profiles are model-data SSoT (the LLM-chokepoint lint exempts this
15
+ * directory for model-id literals). This module reads their declarative DATA and
16
+ * never constructs a transport/client — it carries no model-id literals of its own.
17
+ *
18
+ * @module llm/provider-registry/provider-defs
19
+ * @task T11703
20
+ * @epic T11667
21
+ * @see @cleocode/contracts — {@link ProviderDef} (the declarative contract, T11702)
22
+ * @see ./index.ts — the in-process {@link ProviderProfile} registry (runtime SSoT)
23
+ * @see ./provider-seed.ts — the seeder that upserts these rows into `providers`
24
+ */
25
+ import type { ProviderDef, ProviderProfile } from '@cleocode/contracts';
26
+ /**
27
+ * Project a runtime {@link ProviderProfile} down to the serializable
28
+ * {@link ProviderDef} (DATA only — drops the hook closures, keeps their declarative
29
+ * {@link RequestQuirk} kinds). Pure + deterministic.
30
+ *
31
+ * @param profile - The runtime profile (in-process registry SSoT).
32
+ * @returns The declarative provider definition.
33
+ * @task T11703
34
+ */
35
+ export declare function toProviderDef(profile: ProviderProfile): ProviderDef;
36
+ /**
37
+ * The builtin {@link ProviderDef} set — DERIVED from the runtime
38
+ * {@link ProviderProfile} builtins. The SSoT-seed source for the `providers`
39
+ * table (T11703) and the input to the pure alias resolver (T11704).
40
+ *
41
+ * @returns Builtin provider definitions (one per provider id; xai collapsed to one).
42
+ * @task T11703
43
+ */
44
+ export declare function builtinProviderDefs(): ReadonlyArray<ProviderDef>;
45
+ //# sourceMappingURL=provider-defs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-defs.d.ts","sourceRoot":"","sources":["../../../src/llm/provider-registry/provider-defs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EACV,WAAW,EAEX,eAAe,EAIhB,MAAM,qBAAqB,CAAC;AAmG7B;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,WAAW,CA2BnE;AAuBD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,IAAI,aAAa,CAAC,WAAW,CAAC,CAEhE"}
@@ -0,0 +1,145 @@
1
+ /**
2
+ * Builtin {@link ProviderDef} set — the SEED SOURCE for the `providers` table.
3
+ *
4
+ * M3 Provider SSoT (epic T11667 · task T11703). The DECLARATIVE provider definitions
5
+ * are DERIVED from the existing runtime {@link ProviderProfile} builtins (the in-process
6
+ * registry SSoT) rather than re-declared — so the two never drift and there is one
7
+ * place to add a provider (the profile). `toProviderDef` projects a `ProviderProfile`
8
+ * (which bundles non-serializable hook closures) down to the serializable `ProviderDef`
9
+ * shape (DATA only): identity + aliases + auth + endpoint(s) + catalog key + headers +
10
+ * env vars + OAuth placeholder + the declarative request quirks.
11
+ *
12
+ * ## Why this lives under `provider-registry/`
13
+ *
14
+ * The builtin profiles are model-data SSoT (the LLM-chokepoint lint exempts this
15
+ * directory for model-id literals). This module reads their declarative DATA and
16
+ * never constructs a transport/client — it carries no model-id literals of its own.
17
+ *
18
+ * @module llm/provider-registry/provider-defs
19
+ * @task T11703
20
+ * @epic T11667
21
+ * @see @cleocode/contracts — {@link ProviderDef} (the declarative contract, T11702)
22
+ * @see ./index.ts — the in-process {@link ProviderProfile} registry (runtime SSoT)
23
+ * @see ./provider-seed.ts — the seeder that upserts these rows into `providers`
24
+ */
25
+ import { anthropicProfile } from './builtin/anthropic.js';
26
+ import { bedrockProfile } from './builtin/bedrock.js';
27
+ import { geminiProfile } from './builtin/gemini.js';
28
+ import { kimiCodeProfile } from './builtin/kimi-code.js';
29
+ import { moonshotProfile } from './builtin/moonshot.js';
30
+ import { ollamaProfile } from './builtin/ollama.js';
31
+ import { openaiProfile } from './builtin/openai.js';
32
+ import { openrouterProfile } from './builtin/openrouter.js';
33
+ import { xaiProfile } from './builtin/xai.js';
34
+ /**
35
+ * Per-builtin projection overlay (the non-`ProviderProfile` declarative DATA).
36
+ *
37
+ * Transport mapping mirrors `deriveApiMode` (api-mode.ts):
38
+ * - `anthropic` / `kimi-code` → `anthropic-messages` (kimi speaks Anthropic wire)
39
+ * - `openai` → `openai-completions` primary + `openai-responses` alt (Codex OAuth)
40
+ * - `gemini` / `bedrock` / `ollama` → `aisdk` (reached via AI-SDK provider factory)
41
+ * - `xai` → `openai-completions` primary + `openai-responses` alt (collapses the
42
+ * prior `xaiProfile` / `xaiResponsesProfile` duplication into ONE row — AC4)
43
+ * - `openrouter` / `moonshot` → `openai-completions`
44
+ *
45
+ * @task T11703
46
+ */
47
+ const OVERLAYS = {
48
+ anthropic: { transport: 'anthropic-messages' },
49
+ openai: {
50
+ transport: 'openai-completions',
51
+ altTransports: [{ transport: 'openai-responses' }],
52
+ },
53
+ gemini: { transport: 'aisdk', aiSdkProvider: 'google' },
54
+ moonshot: { transport: 'openai-completions' },
55
+ 'kimi-code': {
56
+ transport: 'anthropic-messages',
57
+ modelsDevId: 'moonshot',
58
+ quirks: ['kimi-reasoning-effort'],
59
+ },
60
+ openrouter: { transport: 'openai-completions', quirks: ['openrouter-pareto'] },
61
+ bedrock: { transport: 'aisdk', aiSdkProvider: 'bedrock' },
62
+ xai: {
63
+ transport: 'openai-completions',
64
+ altTransports: [{ transport: 'openai-responses' }],
65
+ quirks: ['grok-conv-id'],
66
+ },
67
+ ollama: { transport: 'aisdk', aiSdkProvider: 'openai-compatible' },
68
+ };
69
+ /**
70
+ * Build a {@link ProviderEndpoint} from a transport + base URL (+ AI-SDK key).
71
+ *
72
+ * @internal
73
+ */
74
+ function makeEndpoint(transport, baseUrl, aiSdkProvider) {
75
+ if (transport === 'aisdk') {
76
+ // The aisdk variant REQUIRES an aiSdkProvider; default to the OpenAI-compatible
77
+ // factory when an overlay omits it (the generic compat path).
78
+ return { transport: 'aisdk', baseUrl, aiSdkProvider: aiSdkProvider ?? 'openai-compatible' };
79
+ }
80
+ return { transport, baseUrl };
81
+ }
82
+ /**
83
+ * Project a runtime {@link ProviderProfile} down to the serializable
84
+ * {@link ProviderDef} (DATA only — drops the hook closures, keeps their declarative
85
+ * {@link RequestQuirk} kinds). Pure + deterministic.
86
+ *
87
+ * @param profile - The runtime profile (in-process registry SSoT).
88
+ * @returns The declarative provider definition.
89
+ * @task T11703
90
+ */
91
+ export function toProviderDef(profile) {
92
+ const overlay = OVERLAYS[profile.name.toLowerCase()];
93
+ const transport = overlay?.transport ?? 'openai-completions';
94
+ const endpoint = makeEndpoint(transport, profile.baseUrl, overlay?.aiSdkProvider);
95
+ const altEndpoints = (overlay?.altTransports ?? []).map((alt) => makeEndpoint(alt.transport, alt.baseUrl ?? profile.baseUrl, alt.aiSdkProvider));
96
+ const requestQuirks = (overlay?.quirks ?? []).map((kind) => ({ kind }));
97
+ const def = {
98
+ id: profile.name,
99
+ displayName: profile.displayName,
100
+ aliases: [...(profile.aliases ?? [])],
101
+ authMethods: [...profile.authTypes],
102
+ endpoint,
103
+ ...(altEndpoints.length > 0 ? { altEndpoints } : {}),
104
+ modelsDevId: overlay?.modelsDevId ?? profile.name,
105
+ ...(profile.defaultHeaders !== undefined
106
+ ? { defaultHeaders: { ...profile.defaultHeaders } }
107
+ : {}),
108
+ ...(profile.envVars !== undefined ? { envVars: [...profile.envVars] } : {}),
109
+ ...(profile.oauth !== undefined ? { oauth: profile.oauth } : {}),
110
+ ...(requestQuirks.length > 0 ? { requestQuirks } : {}),
111
+ };
112
+ return def;
113
+ }
114
+ /**
115
+ * Runtime profiles that seed the builtin {@link ProviderDef} set.
116
+ *
117
+ * The `xai` Responses profile (`xaiResponsesProfile`) is intentionally OMITTED — its
118
+ * Responses endpoint is folded into the single `xai` row's `altEndpoints` (AC4). The
119
+ * dual-ApiMode duplication collapses to one declarative row per provider id.
120
+ *
121
+ * @task T11703
122
+ */
123
+ const SEED_PROFILES = [
124
+ anthropicProfile,
125
+ openaiProfile,
126
+ geminiProfile,
127
+ moonshotProfile,
128
+ kimiCodeProfile,
129
+ openrouterProfile,
130
+ bedrockProfile,
131
+ xaiProfile,
132
+ ollamaProfile,
133
+ ];
134
+ /**
135
+ * The builtin {@link ProviderDef} set — DERIVED from the runtime
136
+ * {@link ProviderProfile} builtins. The SSoT-seed source for the `providers`
137
+ * table (T11703) and the input to the pure alias resolver (T11704).
138
+ *
139
+ * @returns Builtin provider definitions (one per provider id; xai collapsed to one).
140
+ * @task T11703
141
+ */
142
+ export function builtinProviderDefs() {
143
+ return SEED_PROFILES.map(toProviderDef);
144
+ }
145
+ //# sourceMappingURL=provider-defs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-defs.js","sourceRoot":"","sources":["../../../src/llm/provider-registry/provider-defs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAUH,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAoC9C;;;;;;;;;;;;GAYG;AACH,MAAM,QAAQ,GAAiD;IAC7D,SAAS,EAAE,EAAE,SAAS,EAAE,oBAAoB,EAAE;IAC9C,MAAM,EAAE;QACN,SAAS,EAAE,oBAAoB;QAC/B,aAAa,EAAE,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;KACnD;IACD,MAAM,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE;IACvD,QAAQ,EAAE,EAAE,SAAS,EAAE,oBAAoB,EAAE;IAC7C,WAAW,EAAE;QACX,SAAS,EAAE,oBAAoB;QAC/B,WAAW,EAAE,UAAU;QACvB,MAAM,EAAE,CAAC,uBAAuB,CAAC;KAClC;IACD,UAAU,EAAE,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC,mBAAmB,CAAC,EAAE;IAC9E,OAAO,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE;IACzD,GAAG,EAAE;QACH,SAAS,EAAE,oBAAoB;QAC/B,aAAa,EAAE,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;QAClD,MAAM,EAAE,CAAC,cAAc,CAAC;KACzB;IACD,MAAM,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE;CACnE,CAAC;AAEF;;;;GAIG;AACH,SAAS,YAAY,CACnB,SAA4B,EAC5B,OAAe,EACf,aAAsB;IAEtB,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;QAC1B,gFAAgF;QAChF,8DAA8D;QAC9D,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,IAAI,mBAAmB,EAAE,CAAC;IAC9F,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;AAChC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,aAAa,CAAC,OAAwB;IACpD,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IACrD,MAAM,SAAS,GAAsB,OAAO,EAAE,SAAS,IAAI,oBAAoB,CAAC;IAChF,MAAM,QAAQ,GAAG,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;IAElF,MAAM,YAAY,GAAuB,CAAC,OAAO,EAAE,aAAa,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAClF,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,aAAa,CAAC,CAC/E,CAAC;IAEF,MAAM,aAAa,GAAmB,CAAC,OAAO,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAExF,MAAM,GAAG,GAAgB;QACvB,EAAE,EAAE,OAAO,CAAC,IAAI;QAChB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,OAAO,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QACrC,WAAW,EAAE,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,QAAQ;QACR,GAAG,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,WAAW,EAAE,OAAO,EAAE,WAAW,IAAI,OAAO,CAAC,IAAI;QACjD,GAAG,CAAC,OAAO,CAAC,cAAc,KAAK,SAAS;YACtC,CAAC,CAAC,EAAE,cAAc,EAAE,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,EAAE;YACnD,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,GAAG,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACvD,CAAC;IACF,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,aAAa,GAAmC;IACpD,gBAAgB;IAChB,aAAa;IACb,aAAa;IACb,eAAe;IACf,eAAe;IACf,iBAAiB;IACjB,cAAc;IACd,UAAU;IACV,aAAa;CACd,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AAC1C,CAAC"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Provider seeder — populates the `providers` table from the builtin ProviderDef set.
3
+ *
4
+ * M3 Provider SSoT (epic T11667 · task T11703). {@link seedProviders} takes the builtin
5
+ * {@link ProviderDef} set (derived from the runtime {@link ProviderProfile} builtins by
6
+ * {@link builtinProviderDefs}), serializes each declarative field to its TEXT column,
7
+ * and UPSERTS each row via {@link openDualScopeDb}`('global')`. Seeding is the offline
8
+ * bootstrap of the provider SSoT — NO network is touched.
9
+ *
10
+ * ## Idempotent (AC5) + does NOT clobber user plugin providers
11
+ *
12
+ * The upsert targets the `id` primary key, so re-running yields the same row count and
13
+ * never duplicates (running twice = same rows). Only BUILTIN ids are touched — a user
14
+ * plugin provider row (a different id) is never read or written, so a re-seed cannot
15
+ * clobber it. `source` is stamped `seed` for these rows; plugin rows carry their own
16
+ * `source`.
17
+ *
18
+ * @module llm/provider-registry/provider-seed
19
+ * @task T11703
20
+ * @epic T11667
21
+ * @see ./provider-defs.ts — the builtin ProviderDef set (seed source)
22
+ * @see ../../store/schema/cleo-global/providers.ts — the persisted table
23
+ * @see ../catalog-seeder.ts — the sibling seeder this mirrors
24
+ */
25
+ import type { ProviderDef } from '@cleocode/contracts';
26
+ import { type CleoGlobalDb } from '../../store/dual-scope-db.js';
27
+ import { type NewProviderRow } from '../../store/schema/cleo-global/providers.js';
28
+ /** Result of a {@link seedProviders} run. */
29
+ export interface SeedProvidersResult {
30
+ /** Whether rows were written this run. */
31
+ readonly seeded: boolean;
32
+ /** Number of builtin provider rows upserted. */
33
+ readonly rowCount: number;
34
+ }
35
+ /** Injectable seam for {@link seedProviders} (tests pass a temp-DB handle + defs). */
36
+ export interface SeedProvidersDeps {
37
+ /**
38
+ * An already-open global Drizzle handle. When omitted the seeder opens via
39
+ * {@link openDualScopeDb}`('global')`. Tests pass a temp-DB handle (opened via
40
+ * {@link openProviderSeederAtPath}) to stay off `.cleo/*.db`.
41
+ */
42
+ readonly db?: CleoGlobalDb;
43
+ /**
44
+ * The provider definitions to seed, bypassing {@link builtinProviderDefs} (tests
45
+ * pass a fixture). When omitted the builtin set is used.
46
+ */
47
+ readonly defs?: ReadonlyArray<ProviderDef>;
48
+ }
49
+ /**
50
+ * Open the global seeder handle at an EXPLICIT path (test seam).
51
+ *
52
+ * @param dbPath - Absolute path to the temp `cleo.db`.
53
+ * @task T11703
54
+ */
55
+ export declare function openProviderSeederAtPath(dbPath: string): Promise<CleoGlobalDb>;
56
+ /**
57
+ * Serialize one {@link ProviderDef} into a `providers` INSERT row. JSON columns are
58
+ * `JSON.stringify`-serialized; `oauth` is NULL when the provider has no OAuth flow.
59
+ *
60
+ * @param def - The declarative provider definition.
61
+ * @returns The flattened `providers` row.
62
+ * @task T11703
63
+ */
64
+ export declare function providerDefToRow(def: ProviderDef): NewProviderRow;
65
+ /**
66
+ * Seed the `providers` table from the builtin {@link ProviderDef} set — idempotent,
67
+ * offline-first, plugin-safe.
68
+ *
69
+ * Upserts on the `id` primary key, so running twice yields the same row count and
70
+ * never duplicates (AC5). Only builtin ids are written; user plugin provider rows
71
+ * (other ids) are never touched. NO network is touched.
72
+ *
73
+ * @param deps - Optional injected DB handle / fixture defs (tests).
74
+ * @returns A {@link SeedProvidersResult} describing what happened.
75
+ * @task T11703
76
+ */
77
+ export declare function seedProviders(deps?: SeedProvidersDeps): Promise<SeedProvidersResult>;
78
+ //# sourceMappingURL=provider-seed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-seed.d.ts","sourceRoot":"","sources":["../../../src/llm/provider-registry/provider-seed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EACL,KAAK,YAAY,EAGlB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,KAAK,cAAc,EAAa,MAAM,6CAA6C,CAAC;AAK7F,6CAA6C;AAC7C,MAAM,WAAW,mBAAmB;IAClC,0CAA0C;IAC1C,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,gDAAgD;IAChD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,sFAAsF;AACtF,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC;IAC3B;;;OAGG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;CAC5C;AAED;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAGpF;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,WAAW,GAAG,cAAc,CAejE;AASD;;;;;;;;;;;GAWG;AACH,wBAAsB,aAAa,CAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CA8B1F"}