@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
@@ -31,6 +31,9 @@ export declare const adminCoreOps: {
31
31
  readonly health: AdminCoreOperation<'admin.health'>;
32
32
  readonly 'config.show': AdminCoreOperation<'admin.config.show'>;
33
33
  readonly 'config.presets': AdminCoreOperation<'admin.config.presets'>;
34
+ readonly 'config.get': AdminCoreOperation<'admin.config.get'>;
35
+ readonly 'config.list': AdminCoreOperation<'admin.config.list'>;
36
+ readonly 'config.validate': AdminCoreOperation<'admin.config.validate'>;
34
37
  readonly stats: AdminCoreOperation<'admin.stats'>;
35
38
  readonly context: AdminCoreOperation<'admin.context'>;
36
39
  readonly 'context.pull': AdminCoreOperation<'admin.context.pull'>;
@@ -56,6 +59,7 @@ export declare const adminCoreOps: {
56
59
  readonly 'health.mutate': AdminCoreOperation<'admin.health.mutate'>;
57
60
  readonly 'config.set': AdminCoreOperation<'admin.config.set'>;
58
61
  readonly 'config.set-preset': AdminCoreOperation<'admin.config.set-preset'>;
62
+ readonly 'config.unset': AdminCoreOperation<'admin.config.unset'>;
59
63
  readonly 'backup.mutate': AdminCoreOperation<'admin.backup.mutate'>;
60
64
  readonly migrate: AdminCoreOperation<'admin.migrate'>;
61
65
  readonly cleanup: AdminCoreOperation<'admin.cleanup'>;
@@ -1 +1 @@
1
- {"version":3,"file":"ops.d.ts","sourceRoot":"","sources":["../../src/admin/ops.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ops.d.ts","sourceRoot":"","sources":["../../src/admin/ops.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD,KAAK,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;AAClC,KAAK,aAAa,CAAC,EAAE,SAAS,WAAW,IAAI,OAAO,CAAC,QAAQ,EAAE;IAAE,EAAE,EAAE,EAAE,CAAA;CAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;AACrF,KAAK,aAAa,CAAC,EAAE,SAAS,WAAW,IAAI,OAAO,CAAC,QAAQ,EAAE;IAAE,EAAE,EAAE,EAAE,CAAA;CAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;AACrF,KAAK,kBAAkB,CAAC,EAAE,SAAS,WAAW,IAAI,CAChD,MAAM,EAAE,aAAa,CAAC,EAAE,CAAC,KACtB,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;AAEhC;;;;;;;;;;GAUG;AACH,MAAM,CAAC,OAAO,CAAC,MAAM,YAAY,EAAE;IACjC,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAC;IACtD,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAC;IACpD,QAAQ,CAAC,aAAa,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;IAChE,QAAQ,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;IACtE,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;IAC9D,QAAQ,CAAC,aAAa,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;IAChE,QAAQ,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,uBAAuB,CAAC,CAAC;IACxE,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAC,aAAa,CAAC,CAAC;IAClD,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAC;IACtD,QAAQ,CAAC,cAAc,EAAE,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;IAClE,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAC;IACtD,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAC,aAAa,CAAC,CAAC;IAClD,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAC9C,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAChD,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IACxD,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAChD,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAC,aAAa,CAAC,CAAC;IAClD,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IAC1D,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IAC1D,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAC;IACpD,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAC;IACpD,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAC9C,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAC;IACtD,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAC,aAAa,CAAC,CAAC;IAClD,QAAQ,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;IACtE,QAAQ,CAAC,cAAc,EAAE,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;IAClE,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAChD,QAAQ,CAAC,cAAc,EAAE,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;IAClE,QAAQ,CAAC,eAAe,EAAE,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;IACpE,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;IAC9D,QAAQ,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,yBAAyB,CAAC,CAAC;IAC5E,QAAQ,CAAC,cAAc,EAAE,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;IAClE,QAAQ,CAAC,eAAe,EAAE,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;IACpE,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAC;IACtD,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAC;IACtD,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;IAC9D,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IACxD,QAAQ,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,uBAAuB,CAAC,CAAC;IACxE,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IAC1D,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAC;IACpD,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAC;IACpD,QAAQ,CAAC,cAAc,EAAE,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;IAClE,QAAQ,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;IACtE,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;IAC9D,QAAQ,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;CACvE,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * `@cleocode/core` check module — local CI-gate runners.
3
+ *
4
+ * Currently exposes the unified pre-PR gate (`cleo check pr`, T11956). The
5
+ * gate registry + runner live here so the CLI handler stays a thin dispatch
6
+ * (AGENTS.md Package-Boundary Check).
7
+ *
8
+ * @task T11956
9
+ * @epic T11679
10
+ */
11
+ export { buildGateArgv, formatPrGateSummary, PR_GATES, type PrGateDef, type PrGateRunResult, type PrGateSummary, type RunPrGateOptions, resolveWorkingTree, runPrGate, selectPrGates, } from './pr-gate.js';
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/check/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,QAAQ,EACR,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,kBAAkB,EAClB,SAAS,EACT,aAAa,GACd,MAAM,cAAc,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * `@cleocode/core` check module — local CI-gate runners.
3
+ *
4
+ * Currently exposes the unified pre-PR gate (`cleo check pr`, T11956). The
5
+ * gate registry + runner live here so the CLI handler stays a thin dispatch
6
+ * (AGENTS.md Package-Boundary Check).
7
+ *
8
+ * @task T11956
9
+ * @epic T11679
10
+ */
11
+ export { buildGateArgv, formatPrGateSummary, PR_GATES, resolveWorkingTree, runPrGate, selectPrGates, } from './pr-gate.js';
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/check/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,QAAQ,EAKR,kBAAkB,EAClB,SAAS,EACT,aAAa,GACd,MAAM,cAAc,CAAC"}
@@ -0,0 +1,183 @@
1
+ /**
2
+ * `cleo check pr` — unified local pre-PR gate (T11956 · DHQ-073 · Epic T11679).
3
+ *
4
+ * Runs the SAME high-signal gates that CI runs, locally, in one command, and
5
+ * returns a single pass/fail summary so an agent can self-verify BEFORE
6
+ * opening a PR. This closes the DHQ-073 gap: there was no single "run exactly
7
+ * the CI required-gates locally" command, so agents repeatedly hit
8
+ * Type-Check / Canon-Drift / Install-Test failures only after CI ran.
9
+ *
10
+ * Design (CORE-first, per AGENTS.md Package-Boundary Check)
11
+ * --------------------------------------------------------
12
+ * The gate REGISTRY and the RUNNER live here in `@cleocode/core`. The CLI
13
+ * handler in `packages/cleo` is a thin dispatch that calls {@link runPrGate}
14
+ * and renders the result. No business logic lives in the CLI layer.
15
+ *
16
+ * Memory safety
17
+ * -------------
18
+ * Heavy gates (build, typecheck, test) are cgroup-capped on Linux via
19
+ * `systemd-run --user --scope -p MemoryMax=… -p MemorySwapMax=0` when the
20
+ * binary is available — mirroring the project's OOM-safety discipline. The cap
21
+ * is best-effort: if `systemd-run` is absent (macOS / minimal CI) the gate
22
+ * runs uncapped.
23
+ *
24
+ * @task T11956
25
+ * @epic T11679 (DHQ burn-down)
26
+ * @see docs/release/branch-protection-setup.md § "Required Status Checks"
27
+ */
28
+ /**
29
+ * A single runnable pre-PR gate. The `command` + `args` are executed verbatim
30
+ * (no shell) from the repository root.
31
+ */
32
+ export interface PrGateDef {
33
+ /** Stable machine id (kebab-case) used in results and `--only` filters. */
34
+ readonly id: string;
35
+ /** Human-readable label shown in the summary. */
36
+ readonly label: string;
37
+ /** The executable to run (e.g. `pnpm`, `node`, `cleo`). */
38
+ readonly command: string;
39
+ /** Arguments passed to the executable. */
40
+ readonly args: readonly string[];
41
+ /**
42
+ * Whether this gate is memory-heavy and should be cgroup-capped on Linux.
43
+ * Lint gates are cheap; build/typecheck/test are heavy.
44
+ */
45
+ readonly heavy: boolean;
46
+ /**
47
+ * `core` gates run by default. `full` gates run only with `full: true` —
48
+ * the complete CI lint surface, which is slower and rarely needed for a
49
+ * focused change.
50
+ */
51
+ readonly tier: 'core' | 'full';
52
+ /** One-line rationale shown in `--list`. */
53
+ readonly description: string;
54
+ }
55
+ /**
56
+ * The canonical pre-PR gate registry. The `core` tier mirrors the gates that
57
+ * actually gate `main` and that agents most commonly trip; the `full` tier
58
+ * adds the complete standalone-lint surface for an exhaustive local sweep.
59
+ *
60
+ * Ordered cheapest-first so a fast lint failure surfaces before the slow
61
+ * build/test gates run.
62
+ */
63
+ export declare const PR_GATES: readonly PrGateDef[];
64
+ /** Outcome of a single gate. */
65
+ export interface PrGateRunResult {
66
+ /** Gate id (matches {@link PrGateDef.id}). */
67
+ readonly id: string;
68
+ /** Gate label. */
69
+ readonly label: string;
70
+ /** Final status. `skipped` means the gate was filtered out by `--only`. */
71
+ readonly status: 'pass' | 'fail' | 'skipped';
72
+ /** Process exit code (null if the process could not be spawned or skipped). */
73
+ readonly exitCode: number | null;
74
+ /** Wall-clock duration in milliseconds. */
75
+ readonly durationMs: number;
76
+ /** Whether the gate was cgroup-capped on this run. */
77
+ readonly capped: boolean;
78
+ /** Last lines of combined stdout/stderr (trimmed) for failure triage. */
79
+ readonly outputTail: string;
80
+ }
81
+ /** Aggregate result of a `cleo check pr` run. */
82
+ export interface PrGateSummary {
83
+ /** Repository root the gates ran against. */
84
+ readonly repoRoot: string;
85
+ /** True iff every non-skipped gate passed. */
86
+ readonly passed: boolean;
87
+ /** Per-gate results in execution order. */
88
+ readonly gates: readonly PrGateRunResult[];
89
+ /** Roll-up counts. */
90
+ readonly summary: {
91
+ readonly pass: number;
92
+ readonly fail: number;
93
+ readonly skipped: number;
94
+ };
95
+ }
96
+ /** Options controlling a {@link runPrGate} run. */
97
+ export interface RunPrGateOptions {
98
+ /** Run the full standalone-lint surface in addition to the core tier. */
99
+ readonly full?: boolean;
100
+ /** Restrict the run to these gate ids (others reported as `skipped`). */
101
+ readonly only?: readonly string[];
102
+ /** Continue running remaining gates after the first failure (default true). */
103
+ readonly keepGoing?: boolean;
104
+ /** MemoryMax for heavy gates on Linux (default `16G`). */
105
+ readonly memoryMax?: string;
106
+ /**
107
+ * Override the working tree the gates run in. Defaults to the git toplevel
108
+ * of `process.cwd()` (so an agent inside a worktree validates THAT worktree,
109
+ * incl. uncommitted changes — not whatever `CLEO_ROOT` points at).
110
+ */
111
+ readonly cwd?: string;
112
+ /**
113
+ * Streaming sink for human progress. Receives one line per lifecycle event.
114
+ * Defaults to a no-op so the function is pure-by-default for tests.
115
+ */
116
+ readonly onProgress?: (line: string) => void;
117
+ }
118
+ /**
119
+ * Resolve the gate set for a run: the `core` tier always, plus the `full`
120
+ * tier when requested, then narrowed by `only` (which marks the rest skipped).
121
+ *
122
+ * @param opts run options
123
+ * @returns the gates to execute (in registry order) plus the skipped set
124
+ * @internal exported for unit testing
125
+ */
126
+ export declare function selectPrGates(opts: Pick<RunPrGateOptions, 'full' | 'only'>): {
127
+ toRun: PrGateDef[];
128
+ skipped: PrGateDef[];
129
+ };
130
+ /**
131
+ * Build the argv for a gate, wrapping heavy gates in a cgroup-capped
132
+ * `systemd-run --user --scope` (via the spawn-wrapper SSoT) when available.
133
+ *
134
+ * Delegates to {@link buildSpawnArgs} from
135
+ * `packages/core/src/resources/spawn-wrapper.ts` — the ONLY constructor of
136
+ * `systemd-run` argv for cleo children (T11993 SSoT enforcement).
137
+ *
138
+ * @param gate the gate definition
139
+ * @param memoryMax MemoryMax value (e.g. `16G`); passed as a resource override.
140
+ * @returns `{ command, args, capped }`
141
+ * @internal exported for unit testing
142
+ */
143
+ export declare function buildGateArgv(gate: PrGateDef, memoryMax: string): {
144
+ command: string;
145
+ args: string[];
146
+ capped: boolean;
147
+ };
148
+ /**
149
+ * Resolve the working tree the gates run in: the git toplevel of
150
+ * `process.cwd()` (so the gates validate the agent's actual checkout/worktree
151
+ * incl. uncommitted changes). Falls back to {@link getProjectRoot} when not in
152
+ * a git work tree.
153
+ *
154
+ * @returns absolute path to the working-tree root
155
+ * @internal exported for unit testing
156
+ */
157
+ export declare function resolveWorkingTree(): string;
158
+ /**
159
+ * Run the unified pre-PR gate suite and return a structured summary.
160
+ *
161
+ * Each gate runs as a child process from the repository root. Heavy gates are
162
+ * cgroup-capped on Linux when `systemd-run` is available. By default the run
163
+ * continues after a failure (so the agent sees every problem at once); pass
164
+ * `keepGoing: false` to stop at the first failure.
165
+ *
166
+ * This function performs no process I/O of its own beyond `onProgress`
167
+ * callbacks — the CLI layer owns stdout/stderr rendering.
168
+ *
169
+ * @param opts run options
170
+ * @returns the aggregate {@link PrGateSummary}
171
+ */
172
+ export declare function runPrGate(opts?: RunPrGateOptions): PrGateSummary;
173
+ /**
174
+ * Render a {@link PrGateSummary} as a human-readable, multi-line report
175
+ * (no trailing newline). The CLI writes this to stderr while the LAFS envelope
176
+ * goes to stdout — keeping presentation logic in core so the CLI stays a thin
177
+ * dispatch (AGENTS.md Package-Boundary Check).
178
+ *
179
+ * @param summary the aggregate result of a `cleo check pr` run
180
+ * @returns the formatted human report
181
+ */
182
+ export declare function formatPrGateSummary(summary: PrGateSummary): string;
183
+ //# sourceMappingURL=pr-gate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pr-gate.d.ts","sourceRoot":"","sources":["../../src/check/pr-gate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,348 @@
1
+ /**
2
+ * `cleo check pr` — unified local pre-PR gate (T11956 · DHQ-073 · Epic T11679).
3
+ *
4
+ * Runs the SAME high-signal gates that CI runs, locally, in one command, and
5
+ * returns a single pass/fail summary so an agent can self-verify BEFORE
6
+ * opening a PR. This closes the DHQ-073 gap: there was no single "run exactly
7
+ * the CI required-gates locally" command, so agents repeatedly hit
8
+ * Type-Check / Canon-Drift / Install-Test failures only after CI ran.
9
+ *
10
+ * Design (CORE-first, per AGENTS.md Package-Boundary Check)
11
+ * --------------------------------------------------------
12
+ * The gate REGISTRY and the RUNNER live here in `@cleocode/core`. The CLI
13
+ * handler in `packages/cleo` is a thin dispatch that calls {@link runPrGate}
14
+ * and renders the result. No business logic lives in the CLI layer.
15
+ *
16
+ * Memory safety
17
+ * -------------
18
+ * Heavy gates (build, typecheck, test) are cgroup-capped on Linux via
19
+ * `systemd-run --user --scope -p MemoryMax=… -p MemorySwapMax=0` when the
20
+ * binary is available — mirroring the project's OOM-safety discipline. The cap
21
+ * is best-effort: if `systemd-run` is absent (macOS / minimal CI) the gate
22
+ * runs uncapped.
23
+ *
24
+ * @task T11956
25
+ * @epic T11679 (DHQ burn-down)
26
+ * @see docs/release/branch-protection-setup.md § "Required Status Checks"
27
+ */
28
+ import { spawnSync } from 'node:child_process';
29
+ import { getProjectRoot } from '../paths.js';
30
+ import { buildSpawnArgs, hasSystemdRun } from '../resources/spawn-wrapper.js';
31
+ /**
32
+ * The default MemoryMax applied to heavy gates on Linux. Matches the project's
33
+ * standard cgroup cap for local build/test runs.
34
+ */
35
+ const DEFAULT_MEMORY_MAX = '16G';
36
+ /**
37
+ * The canonical pre-PR gate registry. The `core` tier mirrors the gates that
38
+ * actually gate `main` and that agents most commonly trip; the `full` tier
39
+ * adds the complete standalone-lint surface for an exhaustive local sweep.
40
+ *
41
+ * Ordered cheapest-first so a fast lint failure surfaces before the slow
42
+ * build/test gates run.
43
+ */
44
+ export const PR_GATES = [
45
+ {
46
+ id: 'biome',
47
+ label: 'Biome (lint + format)',
48
+ command: 'pnpm',
49
+ args: ['biome', 'check', '.'],
50
+ heavy: false,
51
+ tier: 'core',
52
+ description: 'Format + lint check (CI: Lint & Format)',
53
+ },
54
+ {
55
+ id: 'lockfile',
56
+ label: 'Lockfile Check',
57
+ command: 'pnpm',
58
+ args: ['install', '--frozen-lockfile'],
59
+ heavy: false,
60
+ tier: 'core',
61
+ description: 'pnpm-lock.yaml is consistent (CI: Lockfile Check)',
62
+ },
63
+ {
64
+ id: 'arch',
65
+ label: 'Architectural Boundary Check (cleo check arch)',
66
+ command: 'cleo',
67
+ args: ['check', 'arch'],
68
+ heavy: false,
69
+ tier: 'core',
70
+ description: 'SG-ARCH-SOLID gates (CI: Arch Boundary Check)',
71
+ },
72
+ {
73
+ id: 'canon-docs',
74
+ label: 'Canon Drift Check (docs SSoT)',
75
+ command: 'cleo',
76
+ args: ['check', 'canon', 'docs'],
77
+ heavy: false,
78
+ tier: 'core',
79
+ description: 'No raw *.md bypassing the docs SSoT (CI: Canon Drift Check)',
80
+ },
81
+ {
82
+ id: 'merge-bar-aggregate',
83
+ label: 'Merge-Bar Aggregate Gate Lint',
84
+ command: 'node',
85
+ args: ['scripts/lint-merge-bar-aggregate.mjs'],
86
+ heavy: false,
87
+ tier: 'core',
88
+ description: 'Every PR-gating workflow keeps a complete aggregate gate (T11955)',
89
+ },
90
+ {
91
+ id: 'typecheck',
92
+ label: 'Type Check (full tsc -b)',
93
+ command: 'pnpm',
94
+ args: ['run', 'typecheck'],
95
+ heavy: true,
96
+ tier: 'core',
97
+ description: 'Full-tree TypeScript build (CI: Type Check)',
98
+ },
99
+ {
100
+ id: 'build',
101
+ label: 'Build',
102
+ command: 'pnpm',
103
+ args: ['run', 'build'],
104
+ heavy: true,
105
+ tier: 'core',
106
+ description: 'Full dependency-graph build (CI: Build & Verify)',
107
+ },
108
+ {
109
+ id: 'test',
110
+ label: 'Unit Tests',
111
+ command: 'pnpm',
112
+ args: ['run', 'test'],
113
+ heavy: true,
114
+ tier: 'core',
115
+ description: 'Vitest suite (CI: Unit Tests shards)',
116
+ },
117
+ // --- full tier: the complete standalone-lint surface ---------------------
118
+ {
119
+ id: 'lint-llm-chokepoint',
120
+ label: 'LLM Chokepoint Guard',
121
+ command: 'node',
122
+ args: ['scripts/lint-llm-chokepoint.mjs'],
123
+ heavy: false,
124
+ tier: 'full',
125
+ description: 'No-hardcoded-models / out-of-chokepoint LLM construction (CI: Arch Boundary Check)',
126
+ },
127
+ {
128
+ id: 'lint-contracts-dep',
129
+ label: 'Contracts Dep Lint',
130
+ command: 'node',
131
+ args: ['scripts/lint-contracts-dep.mjs'],
132
+ heavy: false,
133
+ tier: 'full',
134
+ description: 'Package boundary dependency lint (CI: Contracts Dep Lint)',
135
+ },
136
+ {
137
+ id: 'lint-deployed-template-parity',
138
+ label: 'Deployed Template Parity',
139
+ command: 'node',
140
+ args: ['scripts/lint-deployed-template-parity.mjs'],
141
+ heavy: false,
142
+ tier: 'full',
143
+ description: 'Rendered workflow templates match deployed (CI: Deployed Template Parity)',
144
+ },
145
+ {
146
+ id: 'lint-publish-surface',
147
+ label: 'Publish Surface Lint',
148
+ command: 'node',
149
+ args: ['scripts/lint-publish-surface.mjs'],
150
+ heavy: false,
151
+ tier: 'full',
152
+ description: 'npm publish surface SSoT (CI: Publish Surface Lint)',
153
+ },
154
+ {
155
+ id: 'lint-no-crate-publish',
156
+ label: 'Crate Publish Guard',
157
+ command: 'node',
158
+ args: ['scripts/lint-no-crate-publish.mjs'],
159
+ heavy: false,
160
+ tier: 'full',
161
+ description: 'Zero crates.io publishes (CI: Crate Publish Guard)',
162
+ },
163
+ ];
164
+ /**
165
+ * Resolve the gate set for a run: the `core` tier always, plus the `full`
166
+ * tier when requested, then narrowed by `only` (which marks the rest skipped).
167
+ *
168
+ * @param opts run options
169
+ * @returns the gates to execute (in registry order) plus the skipped set
170
+ * @internal exported for unit testing
171
+ */
172
+ export function selectPrGates(opts) {
173
+ const tierFiltered = PR_GATES.filter((g) => g.tier === 'core' || (opts.full && g.tier === 'full'));
174
+ if (!opts.only || opts.only.length === 0) {
175
+ return { toRun: [...tierFiltered], skipped: [] };
176
+ }
177
+ const wanted = new Set(opts.only);
178
+ const toRun = tierFiltered.filter((g) => wanted.has(g.id));
179
+ const skipped = tierFiltered.filter((g) => !wanted.has(g.id));
180
+ return { toRun, skipped };
181
+ }
182
+ /**
183
+ * Build the argv for a gate, wrapping heavy gates in a cgroup-capped
184
+ * `systemd-run --user --scope` (via the spawn-wrapper SSoT) when available.
185
+ *
186
+ * Delegates to {@link buildSpawnArgs} from
187
+ * `packages/core/src/resources/spawn-wrapper.ts` — the ONLY constructor of
188
+ * `systemd-run` argv for cleo children (T11993 SSoT enforcement).
189
+ *
190
+ * @param gate the gate definition
191
+ * @param memoryMax MemoryMax value (e.g. `16G`); passed as a resource override.
192
+ * @returns `{ command, args, capped }`
193
+ * @internal exported for unit testing
194
+ */
195
+ export function buildGateArgv(gate, memoryMax) {
196
+ if (gate.heavy && hasSystemdRun()) {
197
+ const built = buildSpawnArgs(gate.command, gate.args, {
198
+ scopeClass: 'test',
199
+ resources: { memoryMax },
200
+ });
201
+ return {
202
+ command: built.command,
203
+ args: built.args,
204
+ capped: built.mode === 'systemd',
205
+ };
206
+ }
207
+ return { command: gate.command, args: [...gate.args], capped: false };
208
+ }
209
+ /**
210
+ * Resolve the working tree the gates run in: the git toplevel of
211
+ * `process.cwd()` (so the gates validate the agent's actual checkout/worktree
212
+ * incl. uncommitted changes). Falls back to {@link getProjectRoot} when not in
213
+ * a git work tree.
214
+ *
215
+ * @returns absolute path to the working-tree root
216
+ * @internal exported for unit testing
217
+ */
218
+ export function resolveWorkingTree() {
219
+ const top = spawnSync('git', ['rev-parse', '--show-toplevel'], {
220
+ encoding: 'utf8',
221
+ stdio: ['ignore', 'pipe', 'ignore'],
222
+ });
223
+ if (top.status === 0 && typeof top.stdout === 'string' && top.stdout.trim().length > 0) {
224
+ return top.stdout.trim();
225
+ }
226
+ return getProjectRoot();
227
+ }
228
+ /**
229
+ * Keep only the last `n` non-empty lines of a captured output blob, trimmed.
230
+ *
231
+ * @param output raw combined output
232
+ * @param n max lines to retain
233
+ */
234
+ function tailLines(output, n) {
235
+ return output
236
+ .split('\n')
237
+ .map((l) => l.trimEnd())
238
+ .filter((l) => l.length > 0)
239
+ .slice(-n)
240
+ .join('\n');
241
+ }
242
+ /**
243
+ * Run the unified pre-PR gate suite and return a structured summary.
244
+ *
245
+ * Each gate runs as a child process from the repository root. Heavy gates are
246
+ * cgroup-capped on Linux when `systemd-run` is available. By default the run
247
+ * continues after a failure (so the agent sees every problem at once); pass
248
+ * `keepGoing: false` to stop at the first failure.
249
+ *
250
+ * This function performs no process I/O of its own beyond `onProgress`
251
+ * callbacks — the CLI layer owns stdout/stderr rendering.
252
+ *
253
+ * @param opts run options
254
+ * @returns the aggregate {@link PrGateSummary}
255
+ */
256
+ export function runPrGate(opts = {}) {
257
+ const repoRoot = opts.cwd ?? resolveWorkingTree();
258
+ const memoryMax = opts.memoryMax ?? DEFAULT_MEMORY_MAX;
259
+ const keepGoing = opts.keepGoing ?? true;
260
+ const emit = opts.onProgress ?? (() => { });
261
+ const { toRun, skipped } = selectPrGates(opts);
262
+ const results = [];
263
+ let aborted = false;
264
+ for (const gate of toRun) {
265
+ if (aborted) {
266
+ results.push({
267
+ id: gate.id,
268
+ label: gate.label,
269
+ status: 'skipped',
270
+ exitCode: null,
271
+ durationMs: 0,
272
+ capped: false,
273
+ outputTail: 'skipped — earlier gate failed and --keep-going is off',
274
+ });
275
+ continue;
276
+ }
277
+ const { command, args, capped } = buildGateArgv(gate, memoryMax);
278
+ emit(`▶ ${gate.label}${capped ? ` (capped ${memoryMax})` : ''}`);
279
+ const start = Date.now();
280
+ const proc = spawnSync(command, args, {
281
+ cwd: repoRoot,
282
+ encoding: 'utf8',
283
+ stdio: ['ignore', 'pipe', 'pipe'],
284
+ env: process.env,
285
+ });
286
+ const durationMs = Date.now() - start;
287
+ const combined = `${proc.stdout ?? ''}\n${proc.stderr ?? ''}`;
288
+ const passed = proc.status === 0;
289
+ results.push({
290
+ id: gate.id,
291
+ label: gate.label,
292
+ status: passed ? 'pass' : 'fail',
293
+ exitCode: proc.status,
294
+ durationMs,
295
+ capped,
296
+ outputTail: passed ? '' : tailLines(combined, 20),
297
+ });
298
+ emit(`${passed ? '✓' : '✗'} ${gate.label} (${(durationMs / 1000).toFixed(1)}s)`);
299
+ if (!passed && !keepGoing)
300
+ aborted = true;
301
+ }
302
+ for (const gate of skipped) {
303
+ results.push({
304
+ id: gate.id,
305
+ label: gate.label,
306
+ status: 'skipped',
307
+ exitCode: null,
308
+ durationMs: 0,
309
+ capped: false,
310
+ outputTail: 'skipped — not selected by --only',
311
+ });
312
+ }
313
+ const pass = results.filter((r) => r.status === 'pass').length;
314
+ const fail = results.filter((r) => r.status === 'fail').length;
315
+ const skip = results.filter((r) => r.status === 'skipped').length;
316
+ return {
317
+ repoRoot,
318
+ passed: fail === 0,
319
+ gates: results,
320
+ summary: { pass, fail, skipped: skip },
321
+ };
322
+ }
323
+ /**
324
+ * Render a {@link PrGateSummary} as a human-readable, multi-line report
325
+ * (no trailing newline). The CLI writes this to stderr while the LAFS envelope
326
+ * goes to stdout — keeping presentation logic in core so the CLI stays a thin
327
+ * dispatch (AGENTS.md Package-Boundary Check).
328
+ *
329
+ * @param summary the aggregate result of a `cleo check pr` run
330
+ * @returns the formatted human report
331
+ */
332
+ export function formatPrGateSummary(summary) {
333
+ const rule = '─'.repeat(52);
334
+ const lines = ['', 'Pre-PR Gate (cleo check pr) — T11956', rule];
335
+ for (const g of summary.gates) {
336
+ const icon = g.status === 'pass' ? 'PASS' : g.status === 'fail' ? 'FAIL' : 'SKIP';
337
+ const dur = g.status === 'skipped' ? '' : ` (${(g.durationMs / 1000).toFixed(1)}s)`;
338
+ lines.push(` [${icon}] ${g.label}${dur}`);
339
+ if (g.status === 'fail' && g.outputTail) {
340
+ for (const tail of g.outputTail.split('\n').slice(-6))
341
+ lines.push(` ${tail}`);
342
+ }
343
+ }
344
+ const { pass, fail, skipped } = summary.summary;
345
+ lines.push(rule, ` Result: ${pass} passed, ${fail} failed, ${skipped} skipped`, '');
346
+ return lines.join('\n');
347
+ }
348
+ //# sourceMappingURL=pr-gate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pr-gate.js","sourceRoot":"","sources":["../../src/check/pr-gate.ts"],"names":[],"mappings":"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"}