@cleocode/core 2026.9.23 → 2026.9.24

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 (651) hide show
  1. package/dist/admin/import-tasks.d.ts.map +1 -1
  2. package/dist/admin/import-tasks.js +35 -6
  3. package/dist/admin/import-tasks.js.map +1 -1
  4. package/dist/admin/import.d.ts.map +1 -1
  5. package/dist/admin/import.js +25 -6
  6. package/dist/admin/import.js.map +1 -1
  7. package/dist/build-provenance.json +2 -2
  8. package/dist/cloud/http.d.ts +8 -0
  9. package/dist/cloud/http.d.ts.map +1 -1
  10. package/dist/cloud/http.js +8 -1
  11. package/dist/cloud/http.js.map +1 -1
  12. package/dist/cloud/index.d.ts +6 -1
  13. package/dist/cloud/index.d.ts.map +1 -1
  14. package/dist/cloud/index.js +6 -1
  15. package/dist/cloud/index.js.map +1 -1
  16. package/dist/cloud/nexus-auth.d.ts +169 -0
  17. package/dist/cloud/nexus-auth.d.ts.map +1 -0
  18. package/dist/cloud/nexus-auth.js +372 -0
  19. package/dist/cloud/nexus-auth.js.map +1 -0
  20. package/dist/cloud/nexus-credentials.d.ts +188 -0
  21. package/dist/cloud/nexus-credentials.d.ts.map +1 -0
  22. package/dist/cloud/nexus-credentials.js +323 -0
  23. package/dist/cloud/nexus-credentials.js.map +1 -0
  24. package/dist/cloud/nexus-link.d.ts +85 -0
  25. package/dist/cloud/nexus-link.d.ts.map +1 -0
  26. package/dist/cloud/nexus-link.js +226 -0
  27. package/dist/cloud/nexus-link.js.map +1 -0
  28. package/dist/cloud/presence.d.ts +88 -0
  29. package/dist/cloud/presence.d.ts.map +1 -0
  30. package/dist/cloud/presence.js +137 -0
  31. package/dist/cloud/presence.js.map +1 -0
  32. package/dist/cloud/projects.d.ts +3 -1
  33. package/dist/cloud/projects.d.ts.map +1 -1
  34. package/dist/cloud/projects.js +4 -2
  35. package/dist/cloud/projects.js.map +1 -1
  36. package/dist/crypto/credentials.d.ts +14 -4
  37. package/dist/crypto/credentials.d.ts.map +1 -1
  38. package/dist/crypto/credentials.js +15 -1
  39. package/dist/crypto/credentials.js.map +1 -1
  40. package/dist/decide/bench/dataset.d.ts +125 -0
  41. package/dist/decide/bench/dataset.d.ts.map +1 -0
  42. package/dist/decide/bench/dataset.js +457 -0
  43. package/dist/decide/bench/dataset.js.map +1 -0
  44. package/dist/decide/bench/index.d.ts +23 -0
  45. package/dist/decide/bench/index.d.ts.map +1 -0
  46. package/dist/decide/bench/index.js +23 -0
  47. package/dist/decide/bench/index.js.map +1 -0
  48. package/dist/decide/bench/metrics.d.ts +55 -0
  49. package/dist/decide/bench/metrics.d.ts.map +1 -0
  50. package/dist/decide/bench/metrics.js +100 -0
  51. package/dist/decide/bench/metrics.js.map +1 -0
  52. package/dist/decide/bench/operation.d.ts +119 -0
  53. package/dist/decide/bench/operation.d.ts.map +1 -0
  54. package/dist/decide/bench/operation.js +171 -0
  55. package/dist/decide/bench/operation.js.map +1 -0
  56. package/dist/decide/bench/profiles.d.ts +74 -0
  57. package/dist/decide/bench/profiles.d.ts.map +1 -0
  58. package/dist/decide/bench/profiles.js +131 -0
  59. package/dist/decide/bench/profiles.js.map +1 -0
  60. package/dist/decide/bench/questions.d.ts +40 -0
  61. package/dist/decide/bench/questions.d.ts.map +1 -0
  62. package/dist/decide/bench/questions.js +107 -0
  63. package/dist/decide/bench/questions.js.map +1 -0
  64. package/dist/decide/bench/report.d.ts +21 -0
  65. package/dist/decide/bench/report.d.ts.map +1 -0
  66. package/dist/decide/bench/report.js +120 -0
  67. package/dist/decide/bench/report.js.map +1 -0
  68. package/dist/decide/bench/runner.d.ts +203 -0
  69. package/dist/decide/bench/runner.d.ts.map +1 -0
  70. package/dist/decide/bench/runner.js +335 -0
  71. package/dist/decide/bench/runner.js.map +1 -0
  72. package/dist/decide/bench/source.d.ts +21 -0
  73. package/dist/decide/bench/source.d.ts.map +1 -0
  74. package/dist/decide/bench/source.js +67 -0
  75. package/dist/decide/bench/source.js.map +1 -0
  76. package/dist/decide/bench/spot-check.d.ts +117 -0
  77. package/dist/decide/bench/spot-check.d.ts.map +1 -0
  78. package/dist/decide/bench/spot-check.js +221 -0
  79. package/dist/decide/bench/spot-check.js.map +1 -0
  80. package/dist/decide/bench/stats.d.ts +57 -0
  81. package/dist/decide/bench/stats.d.ts.map +1 -0
  82. package/dist/decide/bench/stats.js +82 -0
  83. package/dist/decide/bench/stats.js.map +1 -0
  84. package/dist/decide/bench/types.d.ts +216 -0
  85. package/dist/decide/bench/types.d.ts.map +1 -0
  86. package/dist/decide/bench/types.js +104 -0
  87. package/dist/decide/bench/types.js.map +1 -0
  88. package/dist/decide/client.d.ts +35 -1
  89. package/dist/decide/client.d.ts.map +1 -1
  90. package/dist/decide/client.js +124 -30
  91. package/dist/decide/client.js.map +1 -1
  92. package/dist/decide/credentials.d.ts +177 -17
  93. package/dist/decide/credentials.d.ts.map +1 -1
  94. package/dist/decide/credentials.js +505 -41
  95. package/dist/decide/credentials.js.map +1 -1
  96. package/dist/decide/index.d.ts +8 -8
  97. package/dist/decide/index.d.ts.map +1 -1
  98. package/dist/decide/index.js +8 -8
  99. package/dist/decide/index.js.map +1 -1
  100. package/dist/decide/jev-wire.d.ts +25 -19
  101. package/dist/decide/jev-wire.d.ts.map +1 -1
  102. package/dist/decide/jev-wire.js +56 -31
  103. package/dist/decide/jev-wire.js.map +1 -1
  104. package/dist/decide/operations.d.ts +63 -12
  105. package/dist/decide/operations.d.ts.map +1 -1
  106. package/dist/decide/operations.js +116 -58
  107. package/dist/decide/operations.js.map +1 -1
  108. package/dist/decide/provider-state.d.ts +85 -12
  109. package/dist/decide/provider-state.d.ts.map +1 -1
  110. package/dist/decide/provider-state.js +154 -21
  111. package/dist/decide/provider-state.js.map +1 -1
  112. package/dist/decide/provider.d.ts +5 -0
  113. package/dist/decide/provider.d.ts.map +1 -1
  114. package/dist/decide/provider.js.map +1 -1
  115. package/dist/decide/providers.d.ts +15 -2
  116. package/dist/decide/providers.d.ts.map +1 -1
  117. package/dist/decide/providers.js +22 -6
  118. package/dist/decide/providers.js.map +1 -1
  119. package/dist/decide/sites/registry.d.ts +22 -0
  120. package/dist/decide/sites/registry.d.ts.map +1 -1
  121. package/dist/decide/sites/registry.js +23 -0
  122. package/dist/decide/sites/registry.js.map +1 -1
  123. package/dist/decide/wizard.d.ts +12 -4
  124. package/dist/decide/wizard.d.ts.map +1 -1
  125. package/dist/decide/wizard.js +79 -26
  126. package/dist/decide/wizard.js.map +1 -1
  127. package/dist/dispatch/mvi-projection.d.ts +15 -2
  128. package/dist/dispatch/mvi-projection.d.ts.map +1 -1
  129. package/dist/dispatch/mvi-projection.js +73 -12
  130. package/dist/dispatch/mvi-projection.js.map +1 -1
  131. package/dist/docs/adr-allocator.d.ts +2 -2
  132. package/dist/docs/adr-allocator.d.ts.map +1 -1
  133. package/dist/docs/adr-allocator.js +17 -4
  134. package/dist/docs/adr-allocator.js.map +1 -1
  135. package/dist/docs/blob-consolidation.js +1 -1
  136. package/dist/docs/blob-consolidation.js.map +1 -1
  137. package/dist/docs/display-alias.d.ts +1 -1
  138. package/dist/docs/display-alias.d.ts.map +1 -1
  139. package/dist/docs/display-alias.js +7 -4
  140. package/dist/docs/display-alias.js.map +1 -1
  141. package/dist/docs/docs-inconsistency-detector.js +1 -1
  142. package/dist/docs/docs-inconsistency-detector.js.map +1 -1
  143. package/dist/docs/docs-update.d.ts.map +1 -1
  144. package/dist/docs/docs-update.js +6 -1
  145. package/dist/docs/docs-update.js.map +1 -1
  146. package/dist/docs/export-document.js +2928 -1053
  147. package/dist/docs/export-document.js.map +3 -3
  148. package/dist/docs/numbering.js +1 -1
  149. package/dist/docs/numbering.js.map +1 -1
  150. package/dist/docs/supersede.d.ts.map +1 -1
  151. package/dist/docs/supersede.js +6 -3
  152. package/dist/docs/supersede.js.map +1 -1
  153. package/dist/docs/version-ssot.js +1 -1
  154. package/dist/docs/version-ssot.js.map +1 -1
  155. package/dist/doctor/db-substrate.d.ts.map +1 -1
  156. package/dist/doctor/db-substrate.js +39 -24
  157. package/dist/doctor/db-substrate.js.map +1 -1
  158. package/dist/doctor/knowledge-summary.d.ts +10 -3
  159. package/dist/doctor/knowledge-summary.d.ts.map +1 -1
  160. package/dist/doctor/knowledge-summary.js +10 -3
  161. package/dist/doctor/knowledge-summary.js.map +1 -1
  162. package/dist/doctor/project-identity.d.ts +128 -37
  163. package/dist/doctor/project-identity.d.ts.map +1 -1
  164. package/dist/doctor/project-identity.js +476 -63
  165. package/dist/doctor/project-identity.js.map +1 -1
  166. package/dist/doctor/twin-collapse.d.ts +52 -2
  167. package/dist/doctor/twin-collapse.d.ts.map +1 -1
  168. package/dist/doctor/twin-collapse.js +108 -4
  169. package/dist/doctor/twin-collapse.js.map +1 -1
  170. package/dist/error-catalog.js +2 -2
  171. package/dist/error-catalog.js.map +1 -1
  172. package/dist/error-registry.js +1 -1
  173. package/dist/error-registry.js.map +1 -1
  174. package/dist/gateway-client/generated/types.gen.d.ts +22 -2
  175. package/dist/gateway-client/generated/types.gen.d.ts.map +1 -1
  176. package/dist/index.d.ts +1 -1
  177. package/dist/index.d.ts.map +1 -1
  178. package/dist/index.js +1 -1
  179. package/dist/index.js.map +1 -1
  180. package/dist/init.d.ts.map +1 -1
  181. package/dist/init.js +20 -11
  182. package/dist/init.js.map +1 -1
  183. package/dist/inject/index.d.ts.map +1 -1
  184. package/dist/inject/index.js +2 -3
  185. package/dist/inject/index.js.map +1 -1
  186. package/dist/internal.d.ts +5 -4
  187. package/dist/internal.d.ts.map +1 -1
  188. package/dist/internal.js +6 -4
  189. package/dist/internal.js.map +1 -1
  190. package/dist/llm/credential-remove-entry.d.ts +59 -0
  191. package/dist/llm/credential-remove-entry.d.ts.map +1 -0
  192. package/dist/llm/credential-remove-entry.js +101 -0
  193. package/dist/llm/credential-remove-entry.js.map +1 -0
  194. package/dist/llm/oauth/device-code.d.ts +26 -6
  195. package/dist/llm/oauth/device-code.d.ts.map +1 -1
  196. package/dist/llm/oauth/device-code.js +44 -12
  197. package/dist/llm/oauth/device-code.js.map +1 -1
  198. package/dist/llm/plugin-facade.js +3017 -1142
  199. package/dist/llm/plugin-facade.js.map +3 -3
  200. package/dist/memory/attention.d.ts.map +1 -1
  201. package/dist/memory/attention.js +5 -3
  202. package/dist/memory/attention.js.map +1 -1
  203. package/dist/memory/decisions.d.ts +48 -3
  204. package/dist/memory/decisions.d.ts.map +1 -1
  205. package/dist/memory/decisions.js +98 -14
  206. package/dist/memory/decisions.js.map +1 -1
  207. package/dist/memory/learnings.d.ts +6 -6
  208. package/dist/memory/patterns.d.ts +4 -4
  209. package/dist/migration/manual/T10165-backfill-adr-index.d.ts.map +1 -1
  210. package/dist/migration/manual/T10165-backfill-adr-index.js +5 -1
  211. package/dist/migration/manual/T10165-backfill-adr-index.js.map +1 -1
  212. package/dist/nexus/fleet-status.d.ts +83 -0
  213. package/dist/nexus/fleet-status.d.ts.map +1 -0
  214. package/dist/nexus/fleet-status.js +414 -0
  215. package/dist/nexus/fleet-status.js.map +1 -0
  216. package/dist/nexus/git-state.d.ts +15 -0
  217. package/dist/nexus/git-state.d.ts.map +1 -1
  218. package/dist/nexus/git-state.js +67 -2
  219. package/dist/nexus/git-state.js.map +1 -1
  220. package/dist/nexus/identity.d.ts.map +1 -1
  221. package/dist/nexus/identity.js +4 -0
  222. package/dist/nexus/identity.js.map +1 -1
  223. package/dist/nexus/index.d.ts +4 -1
  224. package/dist/nexus/index.d.ts.map +1 -1
  225. package/dist/nexus/index.js +7 -1
  226. package/dist/nexus/index.js.map +1 -1
  227. package/dist/nexus/migrate-json-to-sqlite.d.ts +3 -2
  228. package/dist/nexus/migrate-json-to-sqlite.d.ts.map +1 -1
  229. package/dist/nexus/migrate-json-to-sqlite.js +9 -17
  230. package/dist/nexus/migrate-json-to-sqlite.js.map +1 -1
  231. package/dist/nexus/ops.d.ts +1 -0
  232. package/dist/nexus/ops.d.ts.map +1 -1
  233. package/dist/nexus/project-activity.d.ts +104 -0
  234. package/dist/nexus/project-activity.d.ts.map +1 -0
  235. package/dist/nexus/project-activity.js +150 -0
  236. package/dist/nexus/project-activity.js.map +1 -0
  237. package/dist/nexus/query.d.ts +2 -2
  238. package/dist/nexus/query.d.ts.map +1 -1
  239. package/dist/nexus/query.js +4 -19
  240. package/dist/nexus/query.js.map +1 -1
  241. package/dist/nexus/registry-errors.d.ts +61 -0
  242. package/dist/nexus/registry-errors.d.ts.map +1 -0
  243. package/dist/nexus/registry-errors.js +85 -0
  244. package/dist/nexus/registry-errors.js.map +1 -0
  245. package/dist/nexus/registry.d.ts +30 -5
  246. package/dist/nexus/registry.d.ts.map +1 -1
  247. package/dist/nexus/registry.js +115 -70
  248. package/dist/nexus/registry.js.map +1 -1
  249. package/dist/orchestrate/pivot.d.ts +4 -0
  250. package/dist/orchestrate/pivot.d.ts.map +1 -1
  251. package/dist/orchestrate/pivot.js +75 -12
  252. package/dist/orchestrate/pivot.js.map +1 -1
  253. package/dist/orchestrate/query-ops.d.ts.map +1 -1
  254. package/dist/orchestrate/query-ops.js +29 -27
  255. package/dist/orchestrate/query-ops.js.map +1 -1
  256. package/dist/orchestrate/spawn-ops.d.ts.map +1 -1
  257. package/dist/orchestrate/spawn-ops.js +29 -3
  258. package/dist/orchestrate/spawn-ops.js.map +1 -1
  259. package/dist/orchestration/bootstrap.d.ts.map +1 -1
  260. package/dist/orchestration/bootstrap.js +20 -14
  261. package/dist/orchestration/bootstrap.js.map +1 -1
  262. package/dist/orchestration/index.d.ts +15 -1
  263. package/dist/orchestration/index.d.ts.map +1 -1
  264. package/dist/orchestration/index.js +25 -6
  265. package/dist/orchestration/index.js.map +1 -1
  266. package/dist/orchestration/lead-rollup.d.ts +7 -1
  267. package/dist/orchestration/lead-rollup.d.ts.map +1 -1
  268. package/dist/orchestration/lead-rollup.js +6 -3
  269. package/dist/orchestration/lead-rollup.js.map +1 -1
  270. package/dist/orchestration/spawn-prompt.js +1 -1
  271. package/dist/orchestration/spawn-prompt.js.map +1 -1
  272. package/dist/orchestration/waves.d.ts +21 -10
  273. package/dist/orchestration/waves.d.ts.map +1 -1
  274. package/dist/orchestration/waves.js +38 -35
  275. package/dist/orchestration/waves.js.map +1 -1
  276. package/dist/paths.d.ts +9 -2
  277. package/dist/paths.d.ts.map +1 -1
  278. package/dist/paths.js +30 -13
  279. package/dist/paths.js.map +1 -1
  280. package/dist/phases/index.d.ts +1 -1
  281. package/dist/phases/index.d.ts.map +1 -1
  282. package/dist/phases/index.js +3 -4
  283. package/dist/phases/index.js.map +1 -1
  284. package/dist/project-info.d.ts +40 -3
  285. package/dist/project-info.d.ts.map +1 -1
  286. package/dist/project-info.js +74 -6
  287. package/dist/project-info.js.map +1 -1
  288. package/dist/project-lifecycle.d.ts +28 -7
  289. package/dist/project-lifecycle.d.ts.map +1 -1
  290. package/dist/project-lifecycle.js +114 -47
  291. package/dist/project-lifecycle.js.map +1 -1
  292. package/dist/project-scope.d.ts +70 -3
  293. package/dist/project-scope.d.ts.map +1 -1
  294. package/dist/project-scope.js +154 -15
  295. package/dist/project-scope.js.map +1 -1
  296. package/dist/release/open.d.ts +12 -2
  297. package/dist/release/open.d.ts.map +1 -1
  298. package/dist/release/open.js +32 -3
  299. package/dist/release/open.js.map +1 -1
  300. package/dist/release/preflight-skip.d.ts +73 -0
  301. package/dist/release/preflight-skip.d.ts.map +1 -0
  302. package/dist/release/preflight-skip.js +254 -0
  303. package/dist/release/preflight-skip.js.map +1 -0
  304. package/dist/render/decide/index.d.ts +51 -0
  305. package/dist/render/decide/index.d.ts.map +1 -0
  306. package/dist/render/decide/index.js +289 -0
  307. package/dist/render/decide/index.js.map +1 -0
  308. package/dist/render/index.d.ts +1 -0
  309. package/dist/render/index.d.ts.map +1 -1
  310. package/dist/render/index.js +1 -0
  311. package/dist/render/index.js.map +1 -1
  312. package/dist/render/nexus/graph/index.d.ts +5 -0
  313. package/dist/render/nexus/graph/index.d.ts.map +1 -1
  314. package/dist/render/nexus/graph/index.js +53 -0
  315. package/dist/render/nexus/graph/index.js.map +1 -1
  316. package/dist/scaffold/ensure-config.d.ts +14 -6
  317. package/dist/scaffold/ensure-config.d.ts.map +1 -1
  318. package/dist/scaffold/ensure-config.js +39 -17
  319. package/dist/scaffold/ensure-config.js.map +1 -1
  320. package/dist/scaffold/project-identity.d.ts +115 -23
  321. package/dist/scaffold/project-identity.d.ts.map +1 -1
  322. package/dist/scaffold/project-identity.js +196 -44
  323. package/dist/scaffold/project-identity.js.map +1 -1
  324. package/dist/selfimprove/fix-gen.js +3027 -1152
  325. package/dist/selfimprove/fix-gen.js.map +3 -3
  326. package/dist/sentient/cross-project-hygiene.d.ts +12 -6
  327. package/dist/sentient/cross-project-hygiene.d.ts.map +1 -1
  328. package/dist/sentient/cross-project-hygiene.js +15 -10
  329. package/dist/sentient/cross-project-hygiene.js.map +1 -1
  330. package/dist/session/engine-ops.d.ts +13 -4
  331. package/dist/session/engine-ops.d.ts.map +1 -1
  332. package/dist/session/engine-ops.js +38 -45
  333. package/dist/session/engine-ops.js.map +1 -1
  334. package/dist/sessions/briefing.d.ts +7 -3
  335. package/dist/sessions/briefing.d.ts.map +1 -1
  336. package/dist/sessions/briefing.js +10 -10
  337. package/dist/sessions/briefing.js.map +1 -1
  338. package/dist/sessions/drift-watchdog.d.ts.map +1 -1
  339. package/dist/sessions/drift-watchdog.js +11 -19
  340. package/dist/sessions/drift-watchdog.js.map +1 -1
  341. package/dist/sessions/focus-state-store.d.ts +103 -26
  342. package/dist/sessions/focus-state-store.d.ts.map +1 -1
  343. package/dist/sessions/focus-state-store.js +166 -37
  344. package/dist/sessions/focus-state-store.js.map +1 -1
  345. package/dist/sessions/handoff.d.ts.map +1 -1
  346. package/dist/sessions/handoff.js +9 -18
  347. package/dist/sessions/handoff.js.map +1 -1
  348. package/dist/sessions/index.d.ts +4 -2
  349. package/dist/sessions/index.d.ts.map +1 -1
  350. package/dist/sessions/index.js +35 -6
  351. package/dist/sessions/index.js.map +1 -1
  352. package/dist/sessions/session-drift.d.ts.map +1 -1
  353. package/dist/sessions/session-drift.js +4 -2
  354. package/dist/sessions/session-drift.js.map +1 -1
  355. package/dist/sessions/session-view.d.ts +8 -1
  356. package/dist/sessions/session-view.d.ts.map +1 -1
  357. package/dist/sessions/session-view.js +9 -2
  358. package/dist/sessions/session-view.js.map +1 -1
  359. package/dist/setup/config-json-merge.d.ts.map +1 -1
  360. package/dist/setup/config-json-merge.js +1 -0
  361. package/dist/setup/config-json-merge.js.map +1 -1
  362. package/dist/setup/index.d.ts +4 -2
  363. package/dist/setup/index.d.ts.map +1 -1
  364. package/dist/setup/index.js +6 -2
  365. package/dist/setup/index.js.map +1 -1
  366. package/dist/setup/sections/nexus-account.d.ts +32 -0
  367. package/dist/setup/sections/nexus-account.d.ts.map +1 -0
  368. package/dist/setup/sections/nexus-account.js +64 -0
  369. package/dist/setup/sections/nexus-account.js.map +1 -0
  370. package/dist/setup/wizard.d.ts +1 -1
  371. package/dist/setup/wizard.d.ts.map +1 -1
  372. package/dist/setup/wizard.js.map +1 -1
  373. package/dist/skills/orchestrator/startup.d.ts.map +1 -1
  374. package/dist/skills/orchestrator/startup.js +18 -31
  375. package/dist/skills/orchestrator/startup.js.map +1 -1
  376. package/dist/snapshot/index.d.ts.map +1 -1
  377. package/dist/snapshot/index.js +60 -53
  378. package/dist/snapshot/index.js.map +1 -1
  379. package/dist/spawn/agent-identity.d.ts +33 -1
  380. package/dist/spawn/agent-identity.d.ts.map +1 -1
  381. package/dist/spawn/agent-identity.js +53 -1
  382. package/dist/spawn/agent-identity.js.map +1 -1
  383. package/dist/spawn/index.d.ts +1 -1
  384. package/dist/spawn/index.d.ts.map +1 -1
  385. package/dist/spawn/index.js +1 -1
  386. package/dist/spawn/index.js.map +1 -1
  387. package/dist/stats/index.d.ts.map +1 -1
  388. package/dist/stats/index.js +3 -4
  389. package/dist/stats/index.js.map +1 -1
  390. package/dist/status/index.d.ts +12 -3
  391. package/dist/status/index.d.ts.map +1 -1
  392. package/dist/status/index.js +47 -5
  393. package/dist/status/index.js.map +1 -1
  394. package/dist/store/attachment-repair.d.ts.map +1 -1
  395. package/dist/store/attachment-repair.js +42 -3
  396. package/dist/store/attachment-repair.js.map +1 -1
  397. package/dist/store/attachment-store.d.ts.map +1 -1
  398. package/dist/store/attachment-store.js +30 -46
  399. package/dist/store/attachment-store.js.map +1 -1
  400. package/dist/store/backup-recover-brain.d.ts +4 -0
  401. package/dist/store/backup-recover-brain.d.ts.map +1 -1
  402. package/dist/store/backup-recover-brain.js +2 -0
  403. package/dist/store/backup-recover-brain.js.map +1 -1
  404. package/dist/store/backup-recover.d.ts +9 -0
  405. package/dist/store/backup-recover.d.ts.map +1 -1
  406. package/dist/store/backup-recover.js +28 -1
  407. package/dist/store/backup-recover.js.map +1 -1
  408. package/dist/store/backup-sidecar.d.ts +30 -0
  409. package/dist/store/backup-sidecar.d.ts.map +1 -1
  410. package/dist/store/backup-sidecar.js +90 -2
  411. package/dist/store/backup-sidecar.js.map +1 -1
  412. package/dist/store/blob-keep.d.ts +135 -0
  413. package/dist/store/blob-keep.d.ts.map +1 -0
  414. package/dist/store/blob-keep.js +283 -0
  415. package/dist/store/blob-keep.js.map +1 -0
  416. package/dist/store/converters.d.ts.map +1 -1
  417. package/dist/store/converters.js +11 -0
  418. package/dist/store/converters.js.map +1 -1
  419. package/dist/store/credential-transfer.d.ts +37 -5
  420. package/dist/store/credential-transfer.d.ts.map +1 -1
  421. package/dist/store/credential-transfer.js +73 -18
  422. package/dist/store/credential-transfer.js.map +1 -1
  423. package/dist/store/data-accessor.d.ts +1 -1
  424. package/dist/store/data-accessor.d.ts.map +1 -1
  425. package/dist/store/data-accessor.js.map +1 -1
  426. package/dist/store/db-helpers.d.ts +18 -0
  427. package/dist/store/db-helpers.d.ts.map +1 -1
  428. package/dist/store/db-helpers.js +46 -0
  429. package/dist/store/db-helpers.js.map +1 -1
  430. package/dist/store/exodus/on-open.d.ts.map +1 -1
  431. package/dist/store/exodus/on-open.js +35 -0
  432. package/dist/store/exodus/on-open.js.map +1 -1
  433. package/dist/store/exodus/runtime-targets.d.ts +3 -3
  434. package/dist/store/exodus/runtime-targets.js +3 -3
  435. package/dist/store/import-remap.d.ts +12 -1
  436. package/dist/store/import-remap.d.ts.map +1 -1
  437. package/dist/store/import-remap.js +14 -0
  438. package/dist/store/import-remap.js.map +1 -1
  439. package/dist/store/legacy-tasks-lineage.d.ts +3 -1
  440. package/dist/store/legacy-tasks-lineage.d.ts.map +1 -1
  441. package/dist/store/legacy-tasks-lineage.js +3 -1
  442. package/dist/store/legacy-tasks-lineage.js.map +1 -1
  443. package/dist/store/memory-accessor.js +1 -1
  444. package/dist/store/memory-accessor.js.map +1 -1
  445. package/dist/store/migration-manager.d.ts +61 -0
  446. package/dist/store/migration-manager.d.ts.map +1 -1
  447. package/dist/store/migration-manager.js +102 -4
  448. package/dist/store/migration-manager.js.map +1 -1
  449. package/dist/store/nexus-validation-schemas.d.ts +64 -0
  450. package/dist/store/nexus-validation-schemas.d.ts.map +1 -1
  451. package/dist/store/portable-bundle-import.d.ts +8 -0
  452. package/dist/store/portable-bundle-import.d.ts.map +1 -1
  453. package/dist/store/portable-bundle-import.js +10 -0
  454. package/dist/store/portable-bundle-import.js.map +1 -1
  455. package/dist/store/portable-bundle-scan.d.ts.map +1 -1
  456. package/dist/store/portable-bundle-scan.js +1 -0
  457. package/dist/store/portable-bundle-scan.js.map +1 -1
  458. package/dist/store/portable-bundle.d.ts.map +1 -1
  459. package/dist/store/portable-bundle.js +15 -14
  460. package/dist/store/portable-bundle.js.map +1 -1
  461. package/dist/store/pre-repair-snapshot.d.ts +4 -1
  462. package/dist/store/pre-repair-snapshot.d.ts.map +1 -1
  463. package/dist/store/pre-repair-snapshot.js +5 -1
  464. package/dist/store/pre-repair-snapshot.js.map +1 -1
  465. package/dist/store/regenerators.d.ts +4 -2
  466. package/dist/store/regenerators.d.ts.map +1 -1
  467. package/dist/store/regenerators.js +7 -3
  468. package/dist/store/regenerators.js.map +1 -1
  469. package/dist/store/repair-malformed-dbs.d.ts +4 -0
  470. package/dist/store/repair-malformed-dbs.d.ts.map +1 -1
  471. package/dist/store/repair-malformed-dbs.js +3 -0
  472. package/dist/store/repair-malformed-dbs.js.map +1 -1
  473. package/dist/store/safety-data-accessor.d.ts +8 -3
  474. package/dist/store/safety-data-accessor.d.ts.map +1 -1
  475. package/dist/store/safety-data-accessor.js +11 -4
  476. package/dist/store/safety-data-accessor.js.map +1 -1
  477. package/dist/store/schema/cleo-global/nexus.d.ts +48 -0
  478. package/dist/store/schema/cleo-global/nexus.d.ts.map +1 -1
  479. package/dist/store/schema/cleo-global/nexus.js +17 -0
  480. package/dist/store/schema/cleo-global/nexus.js.map +1 -1
  481. package/dist/store/schema/cleo-project/docs.d.ts +16 -0
  482. package/dist/store/schema/cleo-project/docs.d.ts.map +1 -1
  483. package/dist/store/schema/cleo-project/docs.js +10 -0
  484. package/dist/store/schema/cleo-project/docs.js.map +1 -1
  485. package/dist/store/schema/cleo-project/tasks-core.d.ts +80 -0
  486. package/dist/store/schema/cleo-project/tasks-core.d.ts.map +1 -1
  487. package/dist/store/schema/cleo-project/tasks-core.js +25 -1
  488. package/dist/store/schema/cleo-project/tasks-core.js.map +1 -1
  489. package/dist/store/schema/cleo-shared/brain.d.ts +1 -1
  490. package/dist/store/schema/memory-schema.d.ts +1 -1
  491. package/dist/store/schema/nexus-schema.d.ts +48 -0
  492. package/dist/store/schema/nexus-schema.d.ts.map +1 -1
  493. package/dist/store/schema/nexus-schema.js +28 -7
  494. package/dist/store/schema/nexus-schema.js.map +1 -1
  495. package/dist/store/session-store.d.ts +65 -0
  496. package/dist/store/session-store.d.ts.map +1 -1
  497. package/dist/store/session-store.js +108 -7
  498. package/dist/store/session-store.js.map +1 -1
  499. package/dist/store/sqlite-data-accessor.d.ts.map +1 -1
  500. package/dist/store/sqlite-data-accessor.js +245 -47
  501. package/dist/store/sqlite-data-accessor.js.map +1 -1
  502. package/dist/store/sqlite.d.ts +15 -3
  503. package/dist/store/sqlite.d.ts.map +1 -1
  504. package/dist/store/sqlite.js +52 -20
  505. package/dist/store/sqlite.js.map +1 -1
  506. package/dist/store/store-write-guard.d.ts +9 -3
  507. package/dist/store/store-write-guard.d.ts.map +1 -1
  508. package/dist/store/store-write-guard.js +25 -4
  509. package/dist/store/store-write-guard.js.map +1 -1
  510. package/dist/store/table-classification.d.ts +1 -1
  511. package/dist/store/table-classification.d.ts.map +1 -1
  512. package/dist/store/table-classification.js +34 -8
  513. package/dist/store/table-classification.js.map +1 -1
  514. package/dist/store/task-claim.d.ts +144 -0
  515. package/dist/store/task-claim.d.ts.map +1 -0
  516. package/dist/store/task-claim.js +195 -0
  517. package/dist/store/task-claim.js.map +1 -0
  518. package/dist/store/task-version.d.ts +43 -5
  519. package/dist/store/task-version.d.ts.map +1 -1
  520. package/dist/store/task-version.js +113 -17
  521. package/dist/store/task-version.js.map +1 -1
  522. package/dist/store/tasks-schema.d.ts +2 -0
  523. package/dist/store/tasks-schema.d.ts.map +1 -1
  524. package/dist/store/tasks-schema.js +1 -0
  525. package/dist/store/tasks-schema.js.map +1 -1
  526. package/dist/store/tasks-sqlite.js +1 -1
  527. package/dist/store/tasks-sqlite.js.map +1 -1
  528. package/dist/store/twin-collapse.d.ts +339 -22
  529. package/dist/store/twin-collapse.d.ts.map +1 -1
  530. package/dist/store/twin-collapse.js +1323 -48
  531. package/dist/store/twin-collapse.js.map +1 -1
  532. package/dist/store/umbrella-data-accessor.d.ts +8 -3
  533. package/dist/store/umbrella-data-accessor.d.ts.map +1 -1
  534. package/dist/store/umbrella-data-accessor.js +10 -4
  535. package/dist/store/umbrella-data-accessor.js.map +1 -1
  536. package/dist/store/validation-schemas.d.ts +161 -1
  537. package/dist/store/validation-schemas.d.ts.map +1 -1
  538. package/dist/store/with-retry.d.ts +36 -0
  539. package/dist/store/with-retry.d.ts.map +1 -1
  540. package/dist/store/with-retry.js +51 -0
  541. package/dist/store/with-retry.js.map +1 -1
  542. package/dist/store/worktree-build-guard.d.ts +13 -4
  543. package/dist/store/worktree-build-guard.d.ts.map +1 -1
  544. package/dist/store/worktree-build-guard.js +21 -10
  545. package/dist/store/worktree-build-guard.js.map +1 -1
  546. package/dist/store/worktree-isolation-guard.d.ts +121 -10
  547. package/dist/store/worktree-isolation-guard.d.ts.map +1 -1
  548. package/dist/store/worktree-isolation-guard.js +155 -34
  549. package/dist/store/worktree-isolation-guard.js.map +1 -1
  550. package/dist/system/backup.d.ts +7 -0
  551. package/dist/system/backup.d.ts.map +1 -1
  552. package/dist/system/backup.js +5 -0
  553. package/dist/system/backup.js.map +1 -1
  554. package/dist/system/health.d.ts.map +1 -1
  555. package/dist/system/health.js +3 -1
  556. package/dist/system/health.js.map +1 -1
  557. package/dist/system/inject-generate.d.ts.map +1 -1
  558. package/dist/system/inject-generate.js +23 -10
  559. package/dist/system/inject-generate.js.map +1 -1
  560. package/dist/system/project-health.d.ts +8 -0
  561. package/dist/system/project-health.d.ts.map +1 -1
  562. package/dist/system/project-health.js +13 -5
  563. package/dist/system/project-health.js.map +1 -1
  564. package/dist/task-tools/index.d.ts +1 -1
  565. package/dist/task-tools/index.d.ts.map +1 -1
  566. package/dist/task-tools/index.js +1 -1
  567. package/dist/task-tools/index.js.map +1 -1
  568. package/dist/task-tools/score-task-priority.d.ts +38 -0
  569. package/dist/task-tools/score-task-priority.d.ts.map +1 -1
  570. package/dist/task-tools/score-task-priority.js +51 -0
  571. package/dist/task-tools/score-task-priority.js.map +1 -1
  572. package/dist/task-work/claims.d.ts +215 -0
  573. package/dist/task-work/claims.d.ts.map +1 -0
  574. package/dist/task-work/claims.js +272 -0
  575. package/dist/task-work/claims.js.map +1 -0
  576. package/dist/task-work/index.d.ts +47 -3
  577. package/dist/task-work/index.d.ts.map +1 -1
  578. package/dist/task-work/index.js +74 -41
  579. package/dist/task-work/index.js.map +1 -1
  580. package/dist/tasks/add.d.ts.map +1 -1
  581. package/dist/tasks/add.js +3 -2
  582. package/dist/tasks/add.js.map +1 -1
  583. package/dist/tasks/analyze.d.ts.map +1 -1
  584. package/dist/tasks/analyze.js +3 -4
  585. package/dist/tasks/analyze.js.map +1 -1
  586. package/dist/tasks/change-set.d.ts +5 -0
  587. package/dist/tasks/change-set.d.ts.map +1 -1
  588. package/dist/tasks/change-set.js +59 -3
  589. package/dist/tasks/change-set.js.map +1 -1
  590. package/dist/tasks/complete.d.ts +16 -0
  591. package/dist/tasks/complete.d.ts.map +1 -1
  592. package/dist/tasks/complete.js +27 -7
  593. package/dist/tasks/complete.js.map +1 -1
  594. package/dist/tasks/component-pr.d.ts +162 -1
  595. package/dist/tasks/component-pr.d.ts.map +1 -1
  596. package/dist/tasks/component-pr.js +560 -59
  597. package/dist/tasks/component-pr.js.map +1 -1
  598. package/dist/tasks/done-record.d.ts +14 -1
  599. package/dist/tasks/done-record.d.ts.map +1 -1
  600. package/dist/tasks/done-record.js +37 -0
  601. package/dist/tasks/done-record.js.map +1 -1
  602. package/dist/tasks/duplicate-detector.d.ts +20 -1
  603. package/dist/tasks/duplicate-detector.d.ts.map +1 -1
  604. package/dist/tasks/duplicate-detector.js +10 -2
  605. package/dist/tasks/duplicate-detector.js.map +1 -1
  606. package/dist/tasks/engine-wrap-ops.d.ts +19 -10
  607. package/dist/tasks/engine-wrap-ops.d.ts.map +1 -1
  608. package/dist/tasks/engine-wrap-ops.js +38 -10
  609. package/dist/tasks/engine-wrap-ops.js.map +1 -1
  610. package/dist/tasks/graph-ops.d.ts +9 -2
  611. package/dist/tasks/graph-ops.d.ts.map +1 -1
  612. package/dist/tasks/graph-ops.js +24 -32
  613. package/dist/tasks/graph-ops.js.map +1 -1
  614. package/dist/tasks/plan.d.ts.map +1 -1
  615. package/dist/tasks/plan.js +16 -60
  616. package/dist/tasks/plan.js.map +1 -1
  617. package/dist/tasks/task-context.d.ts.map +1 -1
  618. package/dist/tasks/task-context.js +13 -0
  619. package/dist/tasks/task-context.js.map +1 -1
  620. package/dist/tasks/task-import.d.ts.map +1 -1
  621. package/dist/tasks/task-import.js +21 -12
  622. package/dist/tasks/task-import.js.map +1 -1
  623. package/dist/tasks/task-next.d.ts +25 -2
  624. package/dist/tasks/task-next.d.ts.map +1 -1
  625. package/dist/tasks/task-next.js +32 -13
  626. package/dist/tasks/task-next.js.map +1 -1
  627. package/dist/tasks/update.d.ts.map +1 -1
  628. package/dist/tasks/update.js +7 -5
  629. package/dist/tasks/update.js.map +1 -1
  630. package/dist/upgrade.d.ts +1 -1
  631. package/dist/upgrade.d.ts.map +1 -1
  632. package/dist/upgrade.js +48 -9
  633. package/dist/upgrade.js.map +1 -1
  634. package/dist/validation/doctor/checks.d.ts +20 -6
  635. package/dist/validation/doctor/checks.d.ts.map +1 -1
  636. package/dist/validation/doctor/checks.js +51 -8
  637. package/dist/validation/doctor/checks.js.map +1 -1
  638. package/dist/validation/validate-ops.d.ts.map +1 -1
  639. package/dist/validation/validate-ops.js +2 -3
  640. package/dist/validation/validate-ops.js.map +1 -1
  641. package/migrations/drizzle-cleo-global/20260929010000_t12512-registry-probed-opened/migration.sql +35 -0
  642. package/migrations/drizzle-cleo-global/20260929020000_t12721-git-state-head-committed-at/migration.sql +25 -0
  643. package/migrations/drizzle-cleo-project/20260929000000_t12535-docs-attachments-union-shape/migration.sql +21 -0
  644. package/migrations/drizzle-cleo-project/20260929120000_t12502-task-claim-leases/migration.sql +77 -0
  645. package/migrations/drizzle-cleo-project/20260929130000_t12736-claim-lease-iso-repair/migration.sql +37 -0
  646. package/package.json +23 -13
  647. package/schemas/project-info.schema.json +10 -4
  648. package/templates/CLEO-INJECTION.md +1 -1
  649. package/templates/CLEO-REFERENCE.md +3 -3
  650. package/templates/cleo-gitignore +11 -0
  651. package/templates/workflows/release-prepare.yml.tmpl +156 -10
@@ -0,0 +1,254 @@
1
+ /**
2
+ * Decide which `release-prepare.yml` preflight test suites a `cleo release open`
3
+ * dispatch may skip, from CI results GitHub already holds for the SAME commit.
4
+ *
5
+ * `release-prepare` re-runs the full Linux test sweep on the commit it
6
+ * checks out — main's HEAD — which is the commit main's own push CI has
7
+ * already tested. When that push run is green, the release-prepare shards
8
+ * prove nothing new and cost ~20 minutes of the release's critical path.
9
+ * Likewise the macOS shards, which moved from every main push to nightly +
10
+ * release: when the nightly macOS jobs for the exact commit are green, the
11
+ * release has nothing left to learn from them.
12
+ *
13
+ * Every check is keyed on ONE commit SHA, resolved here and forwarded to the
14
+ * workflow as `verified-sha`. The workflow honours a skip only when it checked
15
+ * out that same commit, so a push to main between this check and the dispatch
16
+ * cannot borrow a green result from a different tree. Any failure to answer —
17
+ * `gh` error, timeout, unparseable output, no run, a run still in progress —
18
+ * resolves to "run the tests", never to "skip".
19
+ *
20
+ * Each `gh` call is bounded by {@link PREFLIGHT_CHECK_TIMEOUT_MS}.
21
+ *
22
+ * @task release-speed
23
+ */
24
+ /** Timeout for each `gh` call made while deciding preflight skips (ms). */
25
+ export const PREFLIGHT_CHECK_TIMEOUT_MS = 15_000;
26
+ /** Workflow file whose `push` run on main carries the Linux test shards. */
27
+ export const MAIN_CI_WORKFLOW = 'ci.yml';
28
+ /** Most runs whose jobs are inspected for macOS results (bounds `gh` calls). */
29
+ const MAX_MACOS_CANDIDATE_RUNS = 5;
30
+ function isRecord(value) {
31
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
32
+ }
33
+ function parseJson(raw) {
34
+ try {
35
+ return JSON.parse(raw);
36
+ }
37
+ catch {
38
+ return null;
39
+ }
40
+ }
41
+ /** Extract `workflow_runs[]` from a runs-list response, dropping malformed rows. */
42
+ function parseRuns(raw) {
43
+ const body = parseJson(raw);
44
+ if (!isRecord(body) || !Array.isArray(body['workflow_runs']))
45
+ return [];
46
+ const runs = [];
47
+ for (const row of body['workflow_runs']) {
48
+ if (!isRecord(row))
49
+ continue;
50
+ const { id, head_sha, status, conclusion, event, html_url } = row;
51
+ if (typeof id !== 'number' || typeof head_sha !== 'string' || typeof status !== 'string') {
52
+ continue;
53
+ }
54
+ runs.push({
55
+ id,
56
+ headSha: head_sha,
57
+ status,
58
+ conclusion: typeof conclusion === 'string' ? conclusion : null,
59
+ event: typeof event === 'string' ? event : '',
60
+ url: typeof html_url === 'string' ? html_url : `run ${id}`,
61
+ });
62
+ }
63
+ // Newest first: a re-run or a later attempt supersedes an earlier result.
64
+ return runs.sort((a, b) => b.id - a.id);
65
+ }
66
+ /**
67
+ * Extract `jobs[]` from a run-jobs response, dropping malformed rows.
68
+ *
69
+ * Returns `null` when the body is not a jobs page or when `total_count` says
70
+ * the page is incomplete (more jobs than one `per_page=100` page holds), so a
71
+ * caller can never judge a run from a partial job list.
72
+ */
73
+ function parseJobs(raw) {
74
+ const body = parseJson(raw);
75
+ if (!isRecord(body) || !Array.isArray(body['jobs']))
76
+ return null;
77
+ const total = body['total_count'];
78
+ if (typeof total === 'number' && total > body['jobs'].length)
79
+ return null;
80
+ const jobs = [];
81
+ for (const row of body['jobs']) {
82
+ if (!isRecord(row) || typeof row['name'] !== 'string')
83
+ continue;
84
+ const conclusion = row['conclusion'];
85
+ jobs.push({
86
+ name: row['name'],
87
+ conclusion: typeof conclusion === 'string' ? conclusion : null,
88
+ });
89
+ }
90
+ return jobs;
91
+ }
92
+ /** A `Unit Tests (<os>, shard <n>)` job from {@link MAIN_CI_WORKFLOW}, any OS. */
93
+ function isUnitTestJob(name) {
94
+ return /^Unit Tests\b/.test(name);
95
+ }
96
+ /** A job that ran the test suite on macOS, by the name GitHub renders for it. */
97
+ function isMacosJob(name) {
98
+ return /mac\s*os/i.test(name);
99
+ }
100
+ /**
101
+ * Judge whether a run's Linux `Unit Tests` shards prove the tree was tested.
102
+ * Returns `null` when they do, otherwise why not (for the run summary).
103
+ *
104
+ * Requires at least one Linux shard, every one concluded `success`, and the
105
+ * shard numbers form the complete set `1..N` (a missing shard is not a pass).
106
+ */
107
+ function judgeLinuxUnitTests(jobs) {
108
+ if (jobs === null)
109
+ return 'its job list could not be read';
110
+ const linux = jobs.filter((j) => isUnitTestJob(j.name) && !isMacosJob(j.name));
111
+ if (linux.length === 0)
112
+ return 'it ran no Linux Unit Tests jobs';
113
+ const notGreen = linux.filter((j) => j.conclusion !== 'success');
114
+ if (notGreen.length > 0) {
115
+ return `${notGreen.length} Linux Unit Tests job(s) did not succeed (${notGreen
116
+ .map((j) => `${j.name}: ${j.conclusion ?? 'no conclusion'}`)
117
+ .join(', ')})`;
118
+ }
119
+ const shards = new Set();
120
+ for (const job of linux) {
121
+ const match = /shard\s+(\d+)/i.exec(job.name);
122
+ if (match === null)
123
+ return `Linux job "${job.name}" names no shard`;
124
+ shards.add(Number(match[1]));
125
+ }
126
+ const max = Math.max(...shards);
127
+ for (let n = 1; n <= max; n++) {
128
+ if (!shards.has(n))
129
+ return `Linux Unit Tests shard ${n} of ${max} is missing`;
130
+ }
131
+ return null;
132
+ }
133
+ function shortSha(sha) {
134
+ return sha.slice(0, 12);
135
+ }
136
+ /**
137
+ * Check GitHub for CI results on the dispatch branch's HEAD and decide which
138
+ * `release-prepare` preflight test suites may be skipped.
139
+ *
140
+ * - Linux: skipped iff the newest `push` run of {@link MAIN_CI_WORKFLOW} on
141
+ * `branch` for HEAD's SHA is `completed` + `success` AND its Linux
142
+ * `Unit Tests` jobs exist, cover shards `1..N`, and all succeeded. A green
143
+ * run whose tests were skipped (docs-only push) does not qualify.
144
+ * - macOS: skipped iff a completed `schedule` (nightly) run — or the push run
145
+ * above — for HEAD's SHA has at least one macOS job and every macOS job
146
+ * concluded `success`.
147
+ *
148
+ * Never throws: any error resolves to running the suite.
149
+ *
150
+ * @param runGh - bounded `gh` runner (see {@link PreflightGhRunner})
151
+ * @param cwd - repository checkout the `gh` calls resolve `{owner}/{repo}` from
152
+ * @param branch - the branch `workflow_dispatch` checks out (the default branch)
153
+ * @returns the decision, including the SHA it is valid for
154
+ *
155
+ * @example
156
+ * ```ts
157
+ * const decision = decidePreflightSkips(runGh, projectRoot, 'main');
158
+ * if (decision.skipTests) fields.push('--field', 'skip-tests=true');
159
+ * ```
160
+ */
161
+ export function decidePreflightSkips(runGh, cwd, branch) {
162
+ const gh = (args) => {
163
+ try {
164
+ return runGh(args, cwd, PREFLIGHT_CHECK_TIMEOUT_MS);
165
+ }
166
+ catch {
167
+ return null;
168
+ }
169
+ };
170
+ const shaRaw = gh(['api', `repos/{owner}/{repo}/commits/${branch}`, '--jq', '.sha']);
171
+ const sha = shaRaw?.trim() ?? '';
172
+ if (!/^[0-9a-f]{40}$/.test(sha)) {
173
+ return {
174
+ verifiedSha: null,
175
+ skipTests: false,
176
+ skipMacosTests: false,
177
+ reason: `Could not resolve the HEAD of ${branch} via gh; running every preflight suite.`,
178
+ };
179
+ }
180
+ // ── Linux: main's own push CI for this exact commit ─────────────────────
181
+ const pushRaw = gh([
182
+ 'api',
183
+ `repos/{owner}/{repo}/actions/workflows/${MAIN_CI_WORKFLOW}/runs?head_sha=${sha}&event=push&branch=${branch}&per_page=20`,
184
+ ]);
185
+ const pushRuns = pushRaw === null ? [] : parseRuns(pushRaw).filter((r) => r.headSha === sha);
186
+ const pushRun = pushRuns[0];
187
+ let skipTests = false;
188
+ let linuxReason;
189
+ if (pushRaw === null) {
190
+ linuxReason = `Linux tests run: could not query ${MAIN_CI_WORKFLOW} runs for ${shortSha(sha)}.`;
191
+ }
192
+ else if (pushRun === undefined) {
193
+ linuxReason = `Linux tests run: no ${MAIN_CI_WORKFLOW} push run on ${branch} for ${shortSha(sha)}.`;
194
+ }
195
+ else if (pushRun.status !== 'completed') {
196
+ linuxReason = `Linux tests run: ${MAIN_CI_WORKFLOW} push run for ${shortSha(sha)} is ${pushRun.status} (${pushRun.url}).`;
197
+ }
198
+ else if (pushRun.conclusion !== 'success') {
199
+ linuxReason = `Linux tests run: ${MAIN_CI_WORKFLOW} push run for ${shortSha(sha)} concluded ${pushRun.conclusion ?? 'without a conclusion'} (${pushRun.url}).`;
200
+ }
201
+ else {
202
+ // A green run is not a tested run: a docs-only push skips `Unit Tests`
203
+ // (the `changes` gate) and still concludes `success`. Only green Linux
204
+ // `Unit Tests` jobs — every shard present and successful — prove the
205
+ // tree was tested.
206
+ const jobsRaw = gh([
207
+ 'api',
208
+ `repos/{owner}/{repo}/actions/runs/${pushRun.id}/jobs?per_page=100`,
209
+ ]);
210
+ const jobs = jobsRaw === null ? null : parseJobs(jobsRaw);
211
+ const verdict = judgeLinuxUnitTests(jobs);
212
+ if (verdict === null) {
213
+ skipTests = true;
214
+ linuxReason = `Linux tests skipped: every Linux Unit Tests shard of the ${MAIN_CI_WORKFLOW} push run for ${shortSha(sha)} is green (${pushRun.url}).`;
215
+ }
216
+ else {
217
+ linuxReason = `Linux tests run: ${MAIN_CI_WORKFLOW} push run for ${shortSha(sha)} is green but ${verdict} (${pushRun.url}).`;
218
+ }
219
+ }
220
+ // ── macOS: nightly (schedule) runs, or the push run, for this commit ─────
221
+ const scheduleRaw = gh([
222
+ 'api',
223
+ `repos/{owner}/{repo}/actions/runs?head_sha=${sha}&event=schedule&per_page=20`,
224
+ ]);
225
+ const scheduleRuns = scheduleRaw === null ? [] : parseRuns(scheduleRaw).filter((r) => r.headSha === sha);
226
+ const candidates = [...scheduleRuns, ...(pushRun ? [pushRun] : [])]
227
+ .filter((r) => r.status === 'completed')
228
+ .slice(0, MAX_MACOS_CANDIDATE_RUNS);
229
+ let skipMacosTests = false;
230
+ let macosReason = `macOS tests run: no completed nightly run with macOS jobs for ${shortSha(sha)}.`;
231
+ for (const run of candidates) {
232
+ const jobsRaw = gh(['api', `repos/{owner}/{repo}/actions/runs/${run.id}/jobs?per_page=100`]);
233
+ const jobs = jobsRaw === null ? null : parseJobs(jobsRaw);
234
+ if (jobs === null)
235
+ continue;
236
+ const macosJobs = jobs.filter((j) => isMacosJob(j.name));
237
+ if (macosJobs.length === 0)
238
+ continue;
239
+ const failed = macosJobs.filter((j) => j.conclusion !== 'success');
240
+ if (failed.length === 0) {
241
+ skipMacosTests = true;
242
+ macosReason = `macOS tests skipped: all ${macosJobs.length} macOS job(s) of the ${run.event} run for ${shortSha(sha)} are green (${run.url}).`;
243
+ break;
244
+ }
245
+ macosReason = `macOS tests run: ${failed.length} macOS job(s) of the ${run.event} run for ${shortSha(sha)} did not succeed (${run.url}).`;
246
+ }
247
+ return {
248
+ verifiedSha: sha,
249
+ skipTests,
250
+ skipMacosTests,
251
+ reason: `${linuxReason} ${macosReason}`,
252
+ };
253
+ }
254
+ //# sourceMappingURL=preflight-skip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preflight-skip.js","sourceRoot":"","sources":["../../src/release/preflight-skip.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Human renderers for `cleo decide` (System One): `config`, `status`, `ask`
3
+ * and the profile list (`profiles`, `use`, `config --remove`).
4
+ *
5
+ * The CLI shows these on an interactive terminal (see
6
+ * `packages/cleo/src/cli/lib/interactive-commands.ts`); `--json` and any
7
+ * piped or non-TTY run keep the LAFS envelope. Every value rendered here is
8
+ * already secret-free: keys appear only as the masked last-4 preview the
9
+ * decide operations return.
10
+ *
11
+ * @task T12733
12
+ * @epic T12486
13
+ */
14
+ /**
15
+ * Human form of `cleo decide ask`: the question, the state, the answer as
16
+ * yes/no with confidence, and source · latency · cost · request id.
17
+ *
18
+ * @param data - `DecideAskResult`.
19
+ * @param quiet - Print only the answer.
20
+ * @returns Rendered text.
21
+ */
22
+ export declare function renderDecideAsk(data: Record<string, unknown>, quiet: boolean): string;
23
+ /**
24
+ * Human form of the profile list (`cleo decide profiles`, `use`,
25
+ * `config --remove`): one line per profile, the active one marked.
26
+ *
27
+ * @param data - `DecideProfileListResult`.
28
+ * @param quiet - Print only the ids.
29
+ * @returns Rendered text.
30
+ */
31
+ export declare function renderDecideProfiles(data: Record<string, unknown>, quiet: boolean): string;
32
+ /**
33
+ * Human form of `cleo decide config`: the wizard result (with its smoke
34
+ * test), a scripted configure result, the profile list after `--remove`, or
35
+ * the active settings when no flags are given.
36
+ *
37
+ * @param data - `DecideWizardResult`, `DecideConfigureResult`, `DecideProfileListResult` or `DecideCredentialsSummary`.
38
+ * @param quiet - Print only the one-line outcome.
39
+ * @returns Rendered text.
40
+ */
41
+ export declare function renderDecideConfig(data: Record<string, unknown>, quiet: boolean): string;
42
+ /**
43
+ * Human form of `cleo decide status`: reachability, settings, capabilities,
44
+ * balance and month-to-date spend against the cap.
45
+ *
46
+ * @param data - `DecideProbeResult`.
47
+ * @param quiet - Print only the state.
48
+ * @returns Rendered text.
49
+ */
50
+ export declare function renderDecideStatus(data: Record<string, unknown>, quiet: boolean): string;
51
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/render/decide/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAmJH;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAGrF;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CA4B1F;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAyBxF;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAsCxF"}
@@ -0,0 +1,289 @@
1
+ /**
2
+ * Human renderers for `cleo decide` (System One): `config`, `status`, `ask`
3
+ * and the profile list (`profiles`, `use`, `config --remove`).
4
+ *
5
+ * The CLI shows these on an interactive terminal (see
6
+ * `packages/cleo/src/cli/lib/interactive-commands.ts`); `--json` and any
7
+ * piped or non-TTY run keep the LAFS envelope. Every value rendered here is
8
+ * already secret-free: keys appear only as the masked last-4 preview the
9
+ * decide operations return.
10
+ *
11
+ * @task T12733
12
+ * @epic T12486
13
+ */
14
+ import { BOLD, DIM, GREEN, NC, RED, YELLOW } from '../colors.js';
15
+ /** `value` as an object, or `undefined`. */
16
+ function obj(value) {
17
+ return typeof value === 'object' && value !== null && !Array.isArray(value)
18
+ ? value
19
+ : undefined;
20
+ }
21
+ /** `value` as a string, or `undefined`. */
22
+ function str(value) {
23
+ return typeof value === 'string' ? value : undefined;
24
+ }
25
+ /** `value` as a finite number, or `undefined`. */
26
+ function num(value) {
27
+ return typeof value === 'number' && Number.isFinite(value) ? value : undefined;
28
+ }
29
+ /** `value` as an array of objects (non-objects dropped). */
30
+ function objects(value) {
31
+ if (!Array.isArray(value))
32
+ return [];
33
+ const out = [];
34
+ for (const item of value) {
35
+ const o = obj(item);
36
+ if (o)
37
+ out.push(o);
38
+ }
39
+ return out;
40
+ }
41
+ const OK = `${GREEN}✓${NC}`;
42
+ const BAD = `${RED}✗${NC}`;
43
+ const WARN = `${YELLOW}!${NC}`;
44
+ /** A labelled, aligned detail line. */
45
+ function row(label, value) {
46
+ return ` ${label.padEnd(8)} ${value}`;
47
+ }
48
+ /** `https://…` plus `(default)` or `(override)` when known. */
49
+ function urlLine(data) {
50
+ const url = str(data['baseUrl']);
51
+ if (!url)
52
+ return undefined;
53
+ const source = str(data['urlSource']);
54
+ return source ? `${url} ${DIM}(${source})${NC}` : url;
55
+ }
56
+ /** Capability summary: the wire plus any extensions, e.g. `jev-systemone/1 + batch, usage`. */
57
+ function capabilitiesLine(value) {
58
+ const caps = obj(value);
59
+ const wire = str(caps?.['wire']);
60
+ if (!caps || !wire)
61
+ return undefined;
62
+ const extras = [
63
+ obj(caps['batch']) ? 'batch' : undefined,
64
+ Array.isArray(caps['templates']) ? 'templates' : undefined,
65
+ caps['flows'] === true ? 'flows' : undefined,
66
+ caps['usage'] === true ? 'usage' : undefined,
67
+ caps['cacheControl'] === true ? 'cache' : undefined,
68
+ caps['langHint'] === true ? 'lang' : undefined,
69
+ ].filter((x) => x !== undefined);
70
+ return extras.length ? `${wire} + ${extras.join(', ')}` : wire;
71
+ }
72
+ /** A USD amount with enough precision for per-decision costs (`$0.000015`). */
73
+ function usd(amount) {
74
+ return `$${amount >= 0.01 ? amount.toFixed(2) : amount.toFixed(6)}`;
75
+ }
76
+ /** Micro-dollars as USD. */
77
+ function micros(amount) {
78
+ return usd(amount / 1_000_000);
79
+ }
80
+ /** A typed answer in words: `yes (confidence 60%)`, `"b" (confidence 80%)`, `0.7`. */
81
+ function answerLine(value) {
82
+ const answer = obj(value);
83
+ if (!answer)
84
+ return 'none';
85
+ const confidence = num(answer['confidence']);
86
+ const suffix = confidence !== undefined ? ` (confidence ${Math.round(confidence * 100)}%)` : '';
87
+ const v = answer['value'];
88
+ if (typeof v === 'boolean')
89
+ return `${v ? 'yes' : 'no'}${suffix}`;
90
+ if (typeof v === 'string')
91
+ return `"${v}"${suffix}`;
92
+ if (typeof v === 'number')
93
+ return `${v}${suffix}`;
94
+ return `unknown${suffix}`;
95
+ }
96
+ /** `provider · 368 ms · $0.000015 · req_ixolop…`. */
97
+ function sourceLine(ask) {
98
+ const parts = [str(ask['source']) ?? 'unknown'];
99
+ const latency = num(ask['latencyMs']);
100
+ if (latency !== undefined)
101
+ parts.push(`${latency} ms`);
102
+ const cost = num(ask['costUsd']);
103
+ if (cost !== undefined)
104
+ parts.push(usd(cost));
105
+ const requestId = str(ask['requestId']);
106
+ if (requestId)
107
+ parts.push(requestId.length > 12 ? `${requestId.slice(0, 12)}…` : requestId);
108
+ return parts.join(' · ');
109
+ }
110
+ /** Shorten a long state for display. */
111
+ function clip(text, max = 160) {
112
+ const flat = text.replace(/\s+/g, ' ').trim();
113
+ return flat.length > max ? `${flat.slice(0, max - 1)}…` : flat;
114
+ }
115
+ /** The URL / model / key / status block of a configured profile or probe. */
116
+ function settingsBlock(data, state, caps) {
117
+ const lines = [];
118
+ const url = urlLine(data);
119
+ if (url)
120
+ lines.push(row('URL', url));
121
+ lines.push(row('Model', str(data['model']) ?? `${YELLOW}none${NC}`));
122
+ const key = str(data['keyPreview']);
123
+ if (key)
124
+ lines.push(row('Key', key));
125
+ const status = [state, capabilitiesLine(caps) ? `capabilities ${capabilitiesLine(caps)}` : '']
126
+ .filter(Boolean)
127
+ .join(' · ');
128
+ if (status)
129
+ lines.push(row('Status', status));
130
+ return lines;
131
+ }
132
+ /**
133
+ * Render a `decide ask` result (also the wizard's smoke test).
134
+ *
135
+ * @param data - `DecideAskResult`.
136
+ * @param heading - Title line text.
137
+ * @returns The block, one line per field.
138
+ */
139
+ function askBlock(data, heading) {
140
+ const fromProvider = str(data['source']) === 'provider' || str(data['source']) === 'cache';
141
+ const lines = [`${fromProvider ? OK : WARN} ${BOLD}${heading}${NC}`];
142
+ const question = str(data['question']);
143
+ if (question)
144
+ lines.push(` Question: ${question}`);
145
+ const state = str(data['state']);
146
+ if (state)
147
+ lines.push(` State: ${clip(state)}`);
148
+ lines.push(` Answer: ${answerLine(data['answer'])}`);
149
+ lines.push(` Source: ${sourceLine(data)}`);
150
+ const profile = str(data['profile']);
151
+ if (profile)
152
+ lines.push(` Profile: ${profile}`);
153
+ const reason = str(data['fallbackReason']);
154
+ if (reason)
155
+ lines.push(` ${YELLOW}Fallback: ${reason}${NC}`);
156
+ return lines;
157
+ }
158
+ /**
159
+ * Human form of `cleo decide ask`: the question, the state, the answer as
160
+ * yes/no with confidence, and source · latency · cost · request id.
161
+ *
162
+ * @param data - `DecideAskResult`.
163
+ * @param quiet - Print only the answer.
164
+ * @returns Rendered text.
165
+ */
166
+ export function renderDecideAsk(data, quiet) {
167
+ if (quiet)
168
+ return answerLine(data['answer']);
169
+ return askBlock(data, 'System One decision').join('\n');
170
+ }
171
+ /**
172
+ * Human form of the profile list (`cleo decide profiles`, `use`,
173
+ * `config --remove`): one line per profile, the active one marked.
174
+ *
175
+ * @param data - `DecideProfileListResult`.
176
+ * @param quiet - Print only the ids.
177
+ * @returns Rendered text.
178
+ */
179
+ export function renderDecideProfiles(data, quiet) {
180
+ const profiles = objects(data['profiles']);
181
+ if (quiet)
182
+ return profiles.map((p) => str(p['id']) ?? '').join('\n');
183
+ if (profiles.length === 0) {
184
+ return 'No System One profiles. Add one: cleo decide config --provider layahost --key-stdin';
185
+ }
186
+ const active = str(data['active']);
187
+ const lines = [`${BOLD}System One profiles${NC} ${DIM}(active: ${active ?? 'none'})${NC}`];
188
+ const width = Math.max(...profiles.map((p) => (str(p['id']) ?? '').length));
189
+ for (const p of profiles) {
190
+ const probe = obj(p['probe']);
191
+ const state = str(probe?.['state']);
192
+ const mark = p['active'] === true ? `${GREEN}*${NC}` : ' ';
193
+ const cells = [
194
+ (str(p['id']) ?? '').padEnd(width),
195
+ urlLine(p) ?? '',
196
+ str(p['model']) ?? `${YELLOW}no model${NC}`,
197
+ str(p['keyPreview']) ?? '',
198
+ state ? (state === 'reachable' ? `${GREEN}${state}${NC}` : `${RED}${state}${NC}`) : '',
199
+ ].filter(Boolean);
200
+ lines.push(`${mark} ${cells.join(' ')}`);
201
+ }
202
+ if (data['reconciled'] === true) {
203
+ lines.push(`${YELLOW}Note: an older CLEO rewrote the settings; its values were kept for ${active ?? 'the active profile'}.${NC}`);
204
+ }
205
+ return lines.join('\n');
206
+ }
207
+ /**
208
+ * Human form of `cleo decide config`: the wizard result (with its smoke
209
+ * test), a scripted configure result, the profile list after `--remove`, or
210
+ * the active settings when no flags are given.
211
+ *
212
+ * @param data - `DecideWizardResult`, `DecideConfigureResult`, `DecideProfileListResult` or `DecideCredentialsSummary`.
213
+ * @param quiet - Print only the one-line outcome.
214
+ * @returns Rendered text.
215
+ */
216
+ export function renderDecideConfig(data, quiet) {
217
+ if (Array.isArray(data['profiles']))
218
+ return renderDecideProfiles(data, quiet);
219
+ const wizardConfig = obj(data['config']);
220
+ const isWizard = str(data['summary']) !== undefined && 'configured' in data;
221
+ if (isWizard && !wizardConfig) {
222
+ return `${WARN} System One not configured: ${str(data['summary']) ?? 'skipped'}`;
223
+ }
224
+ const config = wizardConfig ?? data;
225
+ const profile = str(config['profile']) ?? str(config['provider']) ?? 'System One';
226
+ if (data['cleared'] === true || config['configured'] === false) {
227
+ const what = data['cleared'] === true ? 'cleared' : 'not configured';
228
+ return `${WARN} System One ${what}. Configure it: cleo decide config`;
229
+ }
230
+ const active = config['active'] === true || str(config['activeProfile']) === profile;
231
+ const state = str(config['providerState']);
232
+ const good = state === undefined || state === 'reachable';
233
+ const verb = str(config['modelSource']) !== undefined ? 'configured' : 'settings';
234
+ const title = `${good ? OK : BAD} ${BOLD}System One ${verb}: ${profile}${NC} ${active ? '(active)' : `${DIM}(inactive; cleo decide use ${profile})${NC}`}`;
235
+ if (quiet)
236
+ return title;
237
+ const lines = [title, ...settingsBlock(config, state, config['capabilities'])];
238
+ const warning = str(config['warning']);
239
+ if (warning)
240
+ lines.push(` ${YELLOW}${warning}${NC}`);
241
+ const smoke = obj(data['smoke']);
242
+ if (smoke)
243
+ lines.push(...askBlock(smoke, 'Test decision'));
244
+ return lines.join('\n');
245
+ }
246
+ /**
247
+ * Human form of `cleo decide status`: reachability, settings, capabilities,
248
+ * balance and month-to-date spend against the cap.
249
+ *
250
+ * @param data - `DecideProbeResult`.
251
+ * @param quiet - Print only the state.
252
+ * @returns Rendered text.
253
+ */
254
+ export function renderDecideStatus(data, quiet) {
255
+ const state = str(data['state']) ?? 'unknown';
256
+ if (quiet)
257
+ return state;
258
+ const profile = str(data['profile']);
259
+ const title = `${state === 'reachable' ? OK : BAD} ${BOLD}System One ${state}${profile ? `: ${profile}` : ''}${NC}`;
260
+ const lines = [title];
261
+ if (state !== 'unconfigured') {
262
+ const latency = num(data['latencyMs']);
263
+ const status = [state, latency !== undefined ? `${latency} ms` : undefined]
264
+ .filter(Boolean)
265
+ .join(' · ');
266
+ lines.push(...settingsBlock(data, status, data['capabilities']));
267
+ }
268
+ const usage = obj(data['usage']);
269
+ const balance = num(usage?.['balanceMicros']);
270
+ if (balance !== undefined) {
271
+ const left = num(usage?.['decisionsLeft']);
272
+ lines.push(row('Balance', `${micros(balance)}${left !== undefined ? ` (${left} decisions left)` : ''}`));
273
+ }
274
+ const spend = obj(data['spend']);
275
+ const spent = num(spend?.['spentMicros']);
276
+ const cap = num(spend?.['capMicros']);
277
+ if (spent !== undefined && cap !== undefined) {
278
+ const reached = spend?.['capReached'] === true ? ` ${RED}(cap reached)${NC}` : '';
279
+ lines.push(row('Spend', `${micros(spent)} of ${micros(cap)} in ${str(spend?.['month']) ?? 'this month'}${reached}`));
280
+ }
281
+ const sites = num(data['sites']);
282
+ if (sites !== undefined)
283
+ lines.push(row('Sites', String(sites)));
284
+ const detail = str(data['detail']);
285
+ if (detail)
286
+ lines.push(` ${DIM}${detail}${NC}`);
287
+ return lines.join('\n');
288
+ }
289
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/render/decide/index.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,7 @@ export * from './ansi.js';
19
19
  export * from './brain/index.js';
20
20
  export * from './cli-colorize.js';
21
21
  export * from './colors.js';
22
+ export * from './decide/index.js';
22
23
  export * from './docs/index.js';
23
24
  export * from './fallback.js';
24
25
  export * from './format-label.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/render/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,cAAc,WAAW,CAAC;AAK1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAK3B,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EACL,SAAS,EACT,aAAa,EACb,cAAc,EACd,YAAY,EACZ,UAAU,EACV,UAAU,EACV,aAAa,EACb,UAAU,EACV,YAAY,GACb,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/render/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,cAAc,WAAW,CAAC;AAK1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAK3B,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EACL,SAAS,EACT,aAAa,EACb,cAAc,EACd,YAAY,EACZ,UAAU,EACV,UAAU,EACV,aAAa,EACb,UAAU,EACV,YAAY,GACb,MAAM,kBAAkB,CAAC"}
@@ -23,6 +23,7 @@ export * from './ansi.js';
23
23
  export * from './brain/index.js';
24
24
  export * from './cli-colorize.js';
25
25
  export * from './colors.js';
26
+ export * from './decide/index.js';
26
27
  export * from './docs/index.js';
27
28
  export * from './fallback.js';
28
29
  export * from './format-label.js';