@cleocode/core 2026.10.27 → 2026.11.1-canary.3

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 (520) hide show
  1. package/README.md +2 -0
  2. package/binaries/README.md +30 -10
  3. package/dist/.source-stamp.json +4 -0
  4. package/dist/audit/reconstruct.d.ts.map +1 -1
  5. package/dist/audit/reconstruct.js +3 -13
  6. package/dist/audit/reconstruct.js.map +1 -1
  7. package/dist/build-provenance.json +2 -2
  8. package/dist/cloud/nexus-cloud.d.ts.map +1 -1
  9. package/dist/cloud/nexus-cloud.js +3 -3
  10. package/dist/cloud/nexus-cloud.js.map +1 -1
  11. package/dist/cloud/nexus-device.d.ts +1 -1
  12. package/dist/cloud/nexus-link.d.ts +18 -2
  13. package/dist/cloud/nexus-link.d.ts.map +1 -1
  14. package/dist/cloud/nexus-link.js +26 -6
  15. package/dist/cloud/nexus-link.js.map +1 -1
  16. package/dist/cloud/nexus-vault.d.ts.map +1 -1
  17. package/dist/cloud/nexus-vault.js +3 -9
  18. package/dist/cloud/nexus-vault.js.map +1 -1
  19. package/dist/decide/sites/registry.d.ts +40 -0
  20. package/dist/decide/sites/registry.d.ts.map +1 -1
  21. package/dist/decide/sites/registry.js +38 -0
  22. package/dist/decide/sites/registry.js.map +1 -1
  23. package/dist/docs/adr-allocator.d.ts +3 -3
  24. package/dist/docs/adr-allocator.d.ts.map +1 -1
  25. package/dist/docs/adr-allocator.js +8 -5
  26. package/dist/docs/adr-allocator.js.map +1 -1
  27. package/dist/docs/blob-consolidation.d.ts.map +1 -1
  28. package/dist/docs/blob-consolidation.js +3 -2
  29. package/dist/docs/blob-consolidation.js.map +1 -1
  30. package/dist/docs/derive-links.d.ts +12 -0
  31. package/dist/docs/derive-links.d.ts.map +1 -1
  32. package/dist/docs/derive-links.js +19 -0
  33. package/dist/docs/derive-links.js.map +1 -1
  34. package/dist/docs/doc-name-rule.d.ts +105 -0
  35. package/dist/docs/doc-name-rule.d.ts.map +1 -0
  36. package/dist/docs/doc-name-rule.js +212 -0
  37. package/dist/docs/doc-name-rule.js.map +1 -0
  38. package/dist/docs/docs-inconsistency-detector.d.ts.map +1 -1
  39. package/dist/docs/docs-inconsistency-detector.js +4 -3
  40. package/dist/docs/docs-inconsistency-detector.js.map +1 -1
  41. package/dist/docs/docs-ops.d.ts +27 -5
  42. package/dist/docs/docs-ops.d.ts.map +1 -1
  43. package/dist/docs/docs-ops.js +149 -17
  44. package/dist/docs/docs-ops.js.map +1 -1
  45. package/dist/docs/docs-read-model.d.ts +45 -15
  46. package/dist/docs/docs-read-model.d.ts.map +1 -1
  47. package/dist/docs/docs-read-model.js +22 -102
  48. package/dist/docs/docs-read-model.js.map +1 -1
  49. package/dist/docs/docs-update.d.ts.map +1 -1
  50. package/dist/docs/docs-update.js +8 -2
  51. package/dist/docs/docs-update.js.map +1 -1
  52. package/dist/docs/doctor.d.ts +71 -4
  53. package/dist/docs/doctor.d.ts.map +1 -1
  54. package/dist/docs/doctor.js +324 -23
  55. package/dist/docs/doctor.js.map +1 -1
  56. package/dist/docs/duplicate-check.d.ts +138 -0
  57. package/dist/docs/duplicate-check.d.ts.map +1 -0
  58. package/dist/docs/duplicate-check.js +286 -0
  59. package/dist/docs/duplicate-check.js.map +1 -0
  60. package/dist/docs/fetch-result.d.ts.map +1 -1
  61. package/dist/docs/fetch-result.js +27 -0
  62. package/dist/docs/fetch-result.js.map +1 -1
  63. package/dist/docs/import/scanner.d.ts +2 -0
  64. package/dist/docs/import/scanner.d.ts.map +1 -1
  65. package/dist/docs/import/scanner.js +3 -1
  66. package/dist/docs/import/scanner.js.map +1 -1
  67. package/dist/docs/lineage.d.ts +66 -0
  68. package/dist/docs/lineage.d.ts.map +1 -0
  69. package/dist/docs/lineage.js +190 -0
  70. package/dist/docs/lineage.js.map +1 -0
  71. package/dist/docs/modernize/apply.d.ts +139 -0
  72. package/dist/docs/modernize/apply.d.ts.map +1 -0
  73. package/dist/docs/modernize/apply.js +760 -0
  74. package/dist/docs/modernize/apply.js.map +1 -0
  75. package/dist/docs/modernize/guard.d.ts +92 -0
  76. package/dist/docs/modernize/guard.d.ts.map +1 -0
  77. package/dist/docs/modernize/guard.js +214 -0
  78. package/dist/docs/modernize/guard.js.map +1 -0
  79. package/dist/docs/modernize/index.d.ts +68 -0
  80. package/dist/docs/modernize/index.d.ts.map +1 -0
  81. package/dist/docs/modernize/index.js +97 -0
  82. package/dist/docs/modernize/index.js.map +1 -0
  83. package/dist/docs/modernize/judge.d.ts +85 -0
  84. package/dist/docs/modernize/judge.d.ts.map +1 -0
  85. package/dist/docs/modernize/judge.js +186 -0
  86. package/dist/docs/modernize/judge.js.map +1 -0
  87. package/dist/docs/modernize/plan.d.ts +77 -0
  88. package/dist/docs/modernize/plan.d.ts.map +1 -0
  89. package/dist/docs/modernize/plan.js +510 -0
  90. package/dist/docs/modernize/plan.js.map +1 -0
  91. package/dist/docs/modernize/restore.d.ts +41 -0
  92. package/dist/docs/modernize/restore.d.ts.map +1 -0
  93. package/dist/docs/modernize/restore.js +103 -0
  94. package/dist/docs/modernize/restore.js.map +1 -0
  95. package/dist/docs/modernize/rules.d.ts +197 -0
  96. package/dist/docs/modernize/rules.d.ts.map +1 -0
  97. package/dist/docs/modernize/rules.js +510 -0
  98. package/dist/docs/modernize/rules.js.map +1 -0
  99. package/dist/docs/modernize/store.d.ts +64 -0
  100. package/dist/docs/modernize/store.d.ts.map +1 -0
  101. package/dist/docs/modernize/store.js +390 -0
  102. package/dist/docs/modernize/store.js.map +1 -0
  103. package/dist/docs/publications-store.d.ts +16 -2
  104. package/dist/docs/publications-store.d.ts.map +1 -1
  105. package/dist/docs/publications-store.js +23 -2
  106. package/dist/docs/publications-store.js.map +1 -1
  107. package/dist/docs/publish-pr.d.ts.map +1 -1
  108. package/dist/docs/publish-pr.js +12 -1
  109. package/dist/docs/publish-pr.js.map +1 -1
  110. package/dist/docs/rot.d.ts +94 -0
  111. package/dist/docs/rot.d.ts.map +1 -0
  112. package/dist/docs/rot.js +298 -0
  113. package/dist/docs/rot.js.map +1 -0
  114. package/dist/docs/similarity-check.d.ts +2 -0
  115. package/dist/docs/similarity-check.d.ts.map +1 -1
  116. package/dist/docs/similarity-check.js +6 -49
  117. package/dist/docs/similarity-check.js.map +1 -1
  118. package/dist/docs/slug-rename.d.ts +84 -0
  119. package/dist/docs/slug-rename.d.ts.map +1 -0
  120. package/dist/docs/slug-rename.js +166 -0
  121. package/dist/docs/slug-rename.js.map +1 -0
  122. package/dist/docs/slug-similarity.d.ts +24 -0
  123. package/dist/docs/slug-similarity.d.ts.map +1 -0
  124. package/dist/docs/slug-similarity.js +63 -0
  125. package/dist/docs/slug-similarity.js.map +1 -0
  126. package/dist/docs/wikilinks.d.ts +20 -4
  127. package/dist/docs/wikilinks.d.ts.map +1 -1
  128. package/dist/docs/wikilinks.js +52 -7
  129. package/dist/docs/wikilinks.js.map +1 -1
  130. package/dist/docs/writer-registry.d.ts.map +1 -1
  131. package/dist/docs/writer-registry.js +33 -0
  132. package/dist/docs/writer-registry.js.map +1 -1
  133. package/dist/doctor/type-matrix-repair.d.ts +194 -0
  134. package/dist/doctor/type-matrix-repair.d.ts.map +1 -0
  135. package/dist/doctor/type-matrix-repair.js +662 -0
  136. package/dist/doctor/type-matrix-repair.js.map +1 -0
  137. package/dist/gateway-client/generated/index.d.ts +2 -2
  138. package/dist/gateway-client/generated/index.d.ts.map +1 -1
  139. package/dist/gateway-client/generated/index.js +1 -1
  140. package/dist/gateway-client/generated/index.js.map +1 -1
  141. package/dist/gateway-client/generated/namespaces.gen.d.ts +5 -0
  142. package/dist/gateway-client/generated/namespaces.gen.d.ts.map +1 -1
  143. package/dist/gateway-client/generated/namespaces.gen.js +6 -1
  144. package/dist/gateway-client/generated/namespaces.gen.js.map +1 -1
  145. package/dist/gateway-client/generated/sdk.gen.d.ts +21 -1
  146. package/dist/gateway-client/generated/sdk.gen.d.ts.map +1 -1
  147. package/dist/gateway-client/generated/sdk.gen.js +55 -0
  148. package/dist/gateway-client/generated/sdk.gen.js.map +1 -1
  149. package/dist/gateway-client/generated/types.gen.d.ts +222 -0
  150. package/dist/gateway-client/generated/types.gen.d.ts.map +1 -1
  151. package/dist/gc/gc-subsystem.d.ts +4 -0
  152. package/dist/gc/gc-subsystem.d.ts.map +1 -1
  153. package/dist/gc/gc-subsystem.js +16 -0
  154. package/dist/gc/gc-subsystem.js.map +1 -1
  155. package/dist/git/work-tree.d.ts +48 -0
  156. package/dist/git/work-tree.d.ts.map +1 -1
  157. package/dist/git/work-tree.js +63 -1
  158. package/dist/git/work-tree.js.map +1 -1
  159. package/dist/hooks/handlers/session-hooks.d.ts +5 -4
  160. package/dist/hooks/handlers/session-hooks.d.ts.map +1 -1
  161. package/dist/hooks/handlers/session-hooks.js +5 -21
  162. package/dist/hooks/handlers/session-hooks.js.map +1 -1
  163. package/dist/internal.d.ts +5 -1
  164. package/dist/internal.d.ts.map +1 -1
  165. package/dist/internal.js +5 -1
  166. package/dist/internal.js.map +1 -1
  167. package/dist/memory/brain-doctor.d.ts.map +1 -1
  168. package/dist/memory/brain-doctor.js +6 -1
  169. package/dist/memory/brain-doctor.js.map +1 -1
  170. package/dist/memory/engine-compat.d.ts.map +1 -1
  171. package/dist/memory/engine-compat.js +6 -0
  172. package/dist/memory/engine-compat.js.map +1 -1
  173. package/dist/nexus/analyze-orchestrator.d.ts +24 -0
  174. package/dist/nexus/analyze-orchestrator.d.ts.map +1 -1
  175. package/dist/nexus/analyze-orchestrator.js +43 -5
  176. package/dist/nexus/analyze-orchestrator.js.map +1 -1
  177. package/dist/nexus/user-profile.d.ts +2 -1
  178. package/dist/nexus/user-profile.d.ts.map +1 -1
  179. package/dist/nexus/user-profile.js +13 -5
  180. package/dist/nexus/user-profile.js.map +1 -1
  181. package/dist/orchestrate/admission.d.ts +8 -0
  182. package/dist/orchestrate/admission.d.ts.map +1 -1
  183. package/dist/orchestrate/admission.js +3 -1
  184. package/dist/orchestrate/admission.js.map +1 -1
  185. package/dist/orchestrate/query-ops.d.ts.map +1 -1
  186. package/dist/orchestrate/query-ops.js +15 -4
  187. package/dist/orchestrate/query-ops.js.map +1 -1
  188. package/dist/orchestrate/spawn-ops.d.ts.map +1 -1
  189. package/dist/orchestrate/spawn-ops.js +43 -2
  190. package/dist/orchestrate/spawn-ops.js.map +1 -1
  191. package/dist/orchestration/index.d.ts +6 -0
  192. package/dist/orchestration/index.d.ts.map +1 -1
  193. package/dist/orchestration/index.js +3 -0
  194. package/dist/orchestration/index.js.map +1 -1
  195. package/dist/orchestration/spawn-prompt.d.ts.map +1 -1
  196. package/dist/orchestration/spawn-prompt.js +3 -1
  197. package/dist/orchestration/spawn-prompt.js.map +1 -1
  198. package/dist/paths.d.ts +43 -1
  199. package/dist/paths.d.ts.map +1 -1
  200. package/dist/paths.js +51 -1
  201. package/dist/paths.js.map +1 -1
  202. package/dist/project-lifecycle.d.ts.map +1 -1
  203. package/dist/project-lifecycle.js +31 -0
  204. package/dist/project-lifecycle.js.map +1 -1
  205. package/dist/release/authorization.d.ts +156 -0
  206. package/dist/release/authorization.d.ts.map +1 -0
  207. package/dist/release/authorization.js +460 -0
  208. package/dist/release/authorization.js.map +1 -0
  209. package/dist/release/ci-evidence.d.ts +55 -4
  210. package/dist/release/ci-evidence.d.ts.map +1 -1
  211. package/dist/release/ci-evidence.js +251 -22
  212. package/dist/release/ci-evidence.js.map +1 -1
  213. package/dist/release/ci-run-evidence.d.ts +107 -0
  214. package/dist/release/ci-run-evidence.d.ts.map +1 -0
  215. package/dist/release/ci-run-evidence.js +234 -0
  216. package/dist/release/ci-run-evidence.js.map +1 -0
  217. package/dist/release/cut.d.ts +231 -0
  218. package/dist/release/cut.d.ts.map +1 -0
  219. package/dist/release/cut.js +775 -0
  220. package/dist/release/cut.js.map +1 -0
  221. package/dist/release/deploy-evidence.d.ts +173 -0
  222. package/dist/release/deploy-evidence.d.ts.map +1 -0
  223. package/dist/release/deploy-evidence.js +381 -0
  224. package/dist/release/deploy-evidence.js.map +1 -0
  225. package/dist/release/engine-ops.d.ts.map +1 -1
  226. package/dist/release/engine-ops.js +10 -4
  227. package/dist/release/engine-ops.js.map +1 -1
  228. package/dist/release/index.d.ts +3 -0
  229. package/dist/release/index.d.ts.map +1 -1
  230. package/dist/release/index.js +2 -0
  231. package/dist/release/index.js.map +1 -1
  232. package/dist/release/invariants/archive-reason-invariant.d.ts.map +1 -1
  233. package/dist/release/invariants/archive-reason-invariant.js +4 -1
  234. package/dist/release/invariants/archive-reason-invariant.js.map +1 -1
  235. package/dist/release/open.d.ts.map +1 -1
  236. package/dist/release/open.js +2 -6
  237. package/dist/release/open.js.map +1 -1
  238. package/dist/release/plan.d.ts +34 -2
  239. package/dist/release/plan.d.ts.map +1 -1
  240. package/dist/release/plan.js +30 -6
  241. package/dist/release/plan.js.map +1 -1
  242. package/dist/release/preflight-skip.d.ts +4 -19
  243. package/dist/release/preflight-skip.d.ts.map +1 -1
  244. package/dist/release/preflight-skip.js +5 -110
  245. package/dist/release/preflight-skip.js.map +1 -1
  246. package/dist/release/reconcile-latest.d.ts +29 -0
  247. package/dist/release/reconcile-latest.d.ts.map +1 -0
  248. package/dist/release/reconcile-latest.js +71 -0
  249. package/dist/release/reconcile-latest.js.map +1 -0
  250. package/dist/release/reconcile.d.ts +3 -1
  251. package/dist/release/reconcile.d.ts.map +1 -1
  252. package/dist/release/reconcile.js +18 -6
  253. package/dist/release/reconcile.js.map +1 -1
  254. package/dist/release/release-published.d.ts +27 -0
  255. package/dist/release/release-published.d.ts.map +1 -0
  256. package/dist/release/release-published.js +35 -0
  257. package/dist/release/release-published.js.map +1 -0
  258. package/dist/release/tty-confirm.d.ts +23 -0
  259. package/dist/release/tty-confirm.d.ts.map +1 -0
  260. package/dist/release/tty-confirm.js +50 -0
  261. package/dist/release/tty-confirm.js.map +1 -0
  262. package/dist/remote/index.js +1 -1
  263. package/dist/remote/index.js.map +1 -1
  264. package/dist/resources/admission-ledger.d.ts +103 -1
  265. package/dist/resources/admission-ledger.d.ts.map +1 -1
  266. package/dist/resources/admission-ledger.js +200 -17
  267. package/dist/resources/admission-ledger.js.map +1 -1
  268. package/dist/resources/agent-lease.d.ts +82 -0
  269. package/dist/resources/agent-lease.d.ts.map +1 -0
  270. package/dist/resources/agent-lease.js +167 -0
  271. package/dist/resources/agent-lease.js.map +1 -0
  272. package/dist/resources/governor.d.ts +27 -1
  273. package/dist/resources/governor.d.ts.map +1 -1
  274. package/dist/resources/governor.js +88 -4
  275. package/dist/resources/governor.js.map +1 -1
  276. package/dist/resources/hook-footprint.d.ts +13 -1
  277. package/dist/resources/hook-footprint.d.ts.map +1 -1
  278. package/dist/resources/hook-footprint.js +33 -7
  279. package/dist/resources/hook-footprint.js.map +1 -1
  280. package/dist/resources/run-governed.d.ts +25 -0
  281. package/dist/resources/run-governed.d.ts.map +1 -1
  282. package/dist/resources/run-governed.js +44 -3
  283. package/dist/resources/run-governed.js.map +1 -1
  284. package/dist/sagas/reconcile.d.ts.map +1 -1
  285. package/dist/sagas/reconcile.js +11 -0
  286. package/dist/sagas/reconcile.js.map +1 -1
  287. package/dist/scaffold/ensure-dirs.d.ts.map +1 -1
  288. package/dist/scaffold/ensure-dirs.js +8 -6
  289. package/dist/scaffold/ensure-dirs.js.map +1 -1
  290. package/dist/security/override-cap-setting.d.ts +132 -0
  291. package/dist/security/override-cap-setting.d.ts.map +1 -1
  292. package/dist/security/override-cap-setting.js +88 -10
  293. package/dist/security/override-cap-setting.js.map +1 -1
  294. package/dist/security/owner-override-authority.d.ts.map +1 -1
  295. package/dist/security/owner-override-authority.js +5 -1
  296. package/dist/security/owner-override-authority.js.map +1 -1
  297. package/dist/selfimprove/draft-pr.d.ts.map +1 -1
  298. package/dist/selfimprove/draft-pr.js +4 -1
  299. package/dist/selfimprove/draft-pr.js.map +1 -1
  300. package/dist/session/engine-ops.d.ts.map +1 -1
  301. package/dist/session/engine-ops.js +4 -16
  302. package/dist/session/engine-ops.js.map +1 -1
  303. package/dist/sessions/briefing.d.ts +6 -0
  304. package/dist/sessions/briefing.d.ts.map +1 -1
  305. package/dist/sessions/briefing.js +34 -0
  306. package/dist/sessions/briefing.js.map +1 -1
  307. package/dist/sessions/session-end-snapshot-entry.js +2 -2
  308. package/dist/sessions/session-end-snapshot-entry.js.map +1 -1
  309. package/dist/sessions/session-end-snapshot.js +4 -4
  310. package/dist/sessions/session-end-snapshot.js.map +1 -1
  311. package/dist/skills/injection/token.d.ts.map +1 -1
  312. package/dist/skills/injection/token.js +3 -6
  313. package/dist/skills/injection/token.js.map +1 -1
  314. package/dist/skills/orchestrator/spawn.d.ts.map +1 -1
  315. package/dist/skills/orchestrator/spawn.js +3 -4
  316. package/dist/skills/orchestrator/spawn.js.map +1 -1
  317. package/dist/skills/propose-patch.d.ts.map +1 -1
  318. package/dist/skills/propose-patch.js +4 -1
  319. package/dist/skills/propose-patch.js.map +1 -1
  320. package/dist/spawn/branch-integration.d.ts.map +1 -1
  321. package/dist/spawn/branch-integration.js +5 -2
  322. package/dist/spawn/branch-integration.js.map +1 -1
  323. package/dist/store/attachment-repair.d.ts.map +1 -1
  324. package/dist/store/attachment-repair.js +5 -4
  325. package/dist/store/attachment-repair.js.map +1 -1
  326. package/dist/store/attachment-store.d.ts +6 -0
  327. package/dist/store/attachment-store.d.ts.map +1 -1
  328. package/dist/store/attachment-store.js +19 -2
  329. package/dist/store/attachment-store.js.map +1 -1
  330. package/dist/store/blob-ops.d.ts +1 -1
  331. package/dist/store/blob-ops.d.ts.map +1 -1
  332. package/dist/store/blob-ops.js +7 -3
  333. package/dist/store/blob-ops.js.map +1 -1
  334. package/dist/store/conduit-doc-history.d.ts +15 -1
  335. package/dist/store/conduit-doc-history.d.ts.map +1 -1
  336. package/dist/store/conduit-doc-history.js +16 -10
  337. package/dist/store/conduit-doc-history.js.map +1 -1
  338. package/dist/store/db-helpers.d.ts +29 -0
  339. package/dist/store/db-helpers.d.ts.map +1 -1
  340. package/dist/store/db-helpers.js +89 -1
  341. package/dist/store/db-helpers.js.map +1 -1
  342. package/dist/store/decision-adr-links.d.ts.map +1 -1
  343. package/dist/store/decision-adr-links.js +5 -2
  344. package/dist/store/decision-adr-links.js.map +1 -1
  345. package/dist/store/git-checkpoint.d.ts +11 -1
  346. package/dist/store/git-checkpoint.d.ts.map +1 -1
  347. package/dist/store/git-checkpoint.js +14 -3
  348. package/dist/store/git-checkpoint.js.map +1 -1
  349. package/dist/store/llmtxt-blob-adapter.d.ts.map +1 -1
  350. package/dist/store/llmtxt-blob-adapter.js +4 -1
  351. package/dist/store/llmtxt-blob-adapter.js.map +1 -1
  352. package/dist/store/schema/attachments.d.ts +7 -5
  353. package/dist/store/schema/attachments.d.ts.map +1 -1
  354. package/dist/store/schema/attachments.js +5 -2
  355. package/dist/store/schema/attachments.js.map +1 -1
  356. package/dist/store/session-store.d.ts.map +1 -1
  357. package/dist/store/session-store.js +6 -0
  358. package/dist/store/session-store.js.map +1 -1
  359. package/dist/store/sqlite-backup.d.ts +6 -1
  360. package/dist/store/sqlite-backup.d.ts.map +1 -1
  361. package/dist/store/sqlite-backup.js +9 -5
  362. package/dist/store/sqlite-backup.js.map +1 -1
  363. package/dist/store/sqlite-data-accessor.d.ts.map +1 -1
  364. package/dist/store/sqlite-data-accessor.js +63 -36
  365. package/dist/store/sqlite-data-accessor.js.map +1 -1
  366. package/dist/system/backup.d.ts +29 -0
  367. package/dist/system/backup.d.ts.map +1 -1
  368. package/dist/system/backup.js +240 -37
  369. package/dist/system/backup.js.map +1 -1
  370. package/dist/system/dependencies.d.ts +22 -0
  371. package/dist/system/dependencies.d.ts.map +1 -1
  372. package/dist/system/dependencies.js +49 -2
  373. package/dist/system/dependencies.js.map +1 -1
  374. package/dist/system/health.d.ts.map +1 -1
  375. package/dist/system/health.js +23 -1
  376. package/dist/system/health.js.map +1 -1
  377. package/dist/task-work/claims.d.ts.map +1 -1
  378. package/dist/task-work/claims.js +14 -0
  379. package/dist/task-work/claims.js.map +1 -1
  380. package/dist/task-work/index.d.ts.map +1 -1
  381. package/dist/task-work/index.js +22 -0
  382. package/dist/task-work/index.js.map +1 -1
  383. package/dist/tasks/ac-coverage-gate.d.ts +27 -0
  384. package/dist/tasks/ac-coverage-gate.d.ts.map +1 -1
  385. package/dist/tasks/ac-coverage-gate.js +63 -28
  386. package/dist/tasks/ac-coverage-gate.js.map +1 -1
  387. package/dist/tasks/affected-packages.d.ts +26 -30
  388. package/dist/tasks/affected-packages.d.ts.map +1 -1
  389. package/dist/tasks/affected-packages.js +27 -50
  390. package/dist/tasks/affected-packages.js.map +1 -1
  391. package/dist/tasks/affected-scope.d.ts +13 -3
  392. package/dist/tasks/affected-scope.d.ts.map +1 -1
  393. package/dist/tasks/affected-scope.js +29 -11
  394. package/dist/tasks/affected-scope.js.map +1 -1
  395. package/dist/tasks/change-set.d.ts.map +1 -1
  396. package/dist/tasks/change-set.js +39 -20
  397. package/dist/tasks/change-set.js.map +1 -1
  398. package/dist/tasks/command-gate-cmd.d.ts +33 -0
  399. package/dist/tasks/command-gate-cmd.d.ts.map +1 -0
  400. package/dist/tasks/command-gate-cmd.js +45 -0
  401. package/dist/tasks/command-gate-cmd.js.map +1 -0
  402. package/dist/tasks/complete-ci.d.ts +9 -0
  403. package/dist/tasks/complete-ci.d.ts.map +1 -1
  404. package/dist/tasks/complete-ci.js +21 -4
  405. package/dist/tasks/complete-ci.js.map +1 -1
  406. package/dist/tasks/complete.d.ts.map +1 -1
  407. package/dist/tasks/complete.js +14 -0
  408. package/dist/tasks/complete.js.map +1 -1
  409. package/dist/tasks/component-pr.d.ts +37 -0
  410. package/dist/tasks/component-pr.d.ts.map +1 -1
  411. package/dist/tasks/component-pr.js +106 -14
  412. package/dist/tasks/component-pr.js.map +1 -1
  413. package/dist/tasks/done-plan.d.ts +14 -1
  414. package/dist/tasks/done-plan.d.ts.map +1 -1
  415. package/dist/tasks/done-plan.js +125 -15
  416. package/dist/tasks/done-plan.js.map +1 -1
  417. package/dist/tasks/done-record.d.ts.map +1 -1
  418. package/dist/tasks/done-record.js +4 -0
  419. package/dist/tasks/done-record.js.map +1 -1
  420. package/dist/tasks/engine-converters.d.ts.map +1 -1
  421. package/dist/tasks/engine-converters.js +2 -0
  422. package/dist/tasks/engine-converters.js.map +1 -1
  423. package/dist/tasks/evidence-tree.d.ts +28 -1
  424. package/dist/tasks/evidence-tree.d.ts.map +1 -1
  425. package/dist/tasks/evidence-tree.js +66 -2
  426. package/dist/tasks/evidence-tree.js.map +1 -1
  427. package/dist/tasks/evidence.d.ts +39 -27
  428. package/dist/tasks/evidence.d.ts.map +1 -1
  429. package/dist/tasks/evidence.js +382 -188
  430. package/dist/tasks/evidence.js.map +1 -1
  431. package/dist/tasks/gate-notes.d.ts +17 -0
  432. package/dist/tasks/gate-notes.d.ts.map +1 -1
  433. package/dist/tasks/gate-notes.js.map +1 -1
  434. package/dist/tasks/gate-preview.d.ts +7 -1
  435. package/dist/tasks/gate-preview.d.ts.map +1 -1
  436. package/dist/tasks/gate-preview.js +30 -4
  437. package/dist/tasks/gate-preview.js.map +1 -1
  438. package/dist/tasks/gate-runner.d.ts +42 -0
  439. package/dist/tasks/gate-runner.d.ts.map +1 -1
  440. package/dist/tasks/gate-runner.js +234 -94
  441. package/dist/tasks/gate-runner.js.map +1 -1
  442. package/dist/tasks/manifest-scope.d.ts +115 -0
  443. package/dist/tasks/manifest-scope.d.ts.map +1 -0
  444. package/dist/tasks/manifest-scope.js +352 -0
  445. package/dist/tasks/manifest-scope.js.map +1 -0
  446. package/dist/tasks/merge-close.d.ts +376 -0
  447. package/dist/tasks/merge-close.d.ts.map +1 -0
  448. package/dist/tasks/merge-close.js +1497 -0
  449. package/dist/tasks/merge-close.js.map +1 -0
  450. package/dist/tasks/qa-run-binding.d.ts +5 -0
  451. package/dist/tasks/qa-run-binding.d.ts.map +1 -1
  452. package/dist/tasks/qa-run-binding.js +6 -1
  453. package/dist/tasks/qa-run-binding.js.map +1 -1
  454. package/dist/tasks/req.d.ts.map +1 -1
  455. package/dist/tasks/req.js +29 -1
  456. package/dist/tasks/req.js.map +1 -1
  457. package/dist/tasks/review-verdict.d.ts +159 -0
  458. package/dist/tasks/review-verdict.d.ts.map +1 -0
  459. package/dist/tasks/review-verdict.js +442 -0
  460. package/dist/tasks/review-verdict.js.map +1 -0
  461. package/dist/tasks/task-reparent.d.ts.map +1 -1
  462. package/dist/tasks/task-reparent.js +22 -3
  463. package/dist/tasks/task-reparent.js.map +1 -1
  464. package/dist/tasks/test-report-counts.d.ts +274 -0
  465. package/dist/tasks/test-report-counts.d.ts.map +1 -0
  466. package/dist/tasks/test-report-counts.js +746 -0
  467. package/dist/tasks/test-report-counts.js.map +1 -0
  468. package/dist/tasks/test-run-binding.d.ts +20 -45
  469. package/dist/tasks/test-run-binding.d.ts.map +1 -1
  470. package/dist/tasks/test-run-binding.js +34 -119
  471. package/dist/tasks/test-run-binding.js.map +1 -1
  472. package/dist/tasks/update.d.ts.map +1 -1
  473. package/dist/tasks/update.js +42 -0
  474. package/dist/tasks/update.js.map +1 -1
  475. package/dist/tasks/verification-policy.d.ts +12 -0
  476. package/dist/tasks/verification-policy.d.ts.map +1 -1
  477. package/dist/tasks/verification-policy.js +13 -0
  478. package/dist/tasks/verification-policy.js.map +1 -1
  479. package/dist/tasks/workspace-resolution.d.ts +225 -0
  480. package/dist/tasks/workspace-resolution.d.ts.map +1 -0
  481. package/dist/tasks/workspace-resolution.js +497 -0
  482. package/dist/tasks/workspace-resolution.js.map +1 -0
  483. package/dist/validation/doctor/checks.d.ts +20 -0
  484. package/dist/validation/doctor/checks.d.ts.map +1 -1
  485. package/dist/validation/doctor/checks.js +112 -0
  486. package/dist/validation/doctor/checks.js.map +1 -1
  487. package/dist/validation/engine-ops.d.ts.map +1 -1
  488. package/dist/validation/engine-ops.js +37 -3
  489. package/dist/validation/engine-ops.js.map +1 -1
  490. package/dist/validation/validate-ops.d.ts +4 -0
  491. package/dist/validation/validate-ops.d.ts.map +1 -1
  492. package/dist/validation/validate-ops.js +79 -2
  493. package/dist/validation/validate-ops.js.map +1 -1
  494. package/dist/worktree/list.d.ts +4 -21
  495. package/dist/worktree/list.d.ts.map +1 -1
  496. package/dist/worktree/list.js +14 -44
  497. package/dist/worktree/list.js.map +1 -1
  498. package/dist/worktree/merged-cleanup.d.ts +63 -0
  499. package/dist/worktree/merged-cleanup.d.ts.map +1 -0
  500. package/dist/worktree/merged-cleanup.js +571 -0
  501. package/dist/worktree/merged-cleanup.js.map +1 -0
  502. package/dist/worktree/prune.d.ts +64 -2
  503. package/dist/worktree/prune.d.ts.map +1 -1
  504. package/dist/worktree/prune.js +151 -6
  505. package/dist/worktree/prune.js.map +1 -1
  506. package/dist/worktree/sentinel-index.d.ts +14 -0
  507. package/dist/worktree/sentinel-index.d.ts.map +1 -1
  508. package/dist/worktree/sentinel-index.js +17 -0
  509. package/dist/worktree/sentinel-index.js.map +1 -1
  510. package/dist/worktree/worktree-adopt.d.ts +1 -13
  511. package/dist/worktree/worktree-adopt.d.ts.map +1 -1
  512. package/dist/worktree/worktree-adopt.js +2 -17
  513. package/dist/worktree/worktree-adopt.js.map +1 -1
  514. package/package.json +12 -12
  515. package/schemas/project-context.schema.json +33 -0
  516. package/templates/CLEO-INJECTION.md +6 -16
  517. package/templates/CLEO-REFERENCE.md +27 -4
  518. package/templates/git-hooks/legacy-hashes.json +2 -1
  519. package/templates/git-hooks/pre-commit +43 -11
  520. package/templates/workflows/release-prepare.yml.tmpl +9 -88
@@ -0,0 +1,85 @@
1
+ /**
2
+ * System One judgments for `cleo docs modernize` (T14113).
3
+ *
4
+ * Two registered sites, asked only when a rule is unsure:
5
+ *
6
+ * - `docs.modernize.classify` — which kind is a doc whose folder, name and
7
+ * headings did not settle it (rule confidence below the floor).
8
+ * - `docs.modernize.merge` — are two docs that share a slug one doc, when
9
+ * their similarity sits in the middle band.
10
+ *
11
+ * Every ask goes through {@link askSiteDecision}: budgeted, audited to
12
+ * `decisions.jsonl` beside the rule answer, and never throwing. With no
13
+ * provider configured the site resolves to `off` and the rule answers with
14
+ * zero network; in `shadow` (the default) the provider is asked and recorded
15
+ * but the rule acts; only `on` with a confident, valid answer acts on it.
16
+ * Each call returns a {@link DocsModernizeJudgment} the plan row carries.
17
+ *
18
+ * @task T14113
19
+ * @epic T14106
20
+ */
21
+ import type { DocsModernizeJudgment } from '@cleocode/contracts';
22
+ import type { DecideOptions } from '../../decide/client.js';
23
+ import type { DecisionSiteMode } from '../../decide/site.js';
24
+ /** Wait budget per question, in ms. Modernize is a batch job, not a hot path. */
25
+ export declare const MODERNIZE_DECISION_BUDGET_MS = 5000;
26
+ /** Minimum confidence before `on` mode acts on a decided answer. */
27
+ export declare const MODERNIZE_MIN_CONFIDENCE = 0.6;
28
+ /** Effective modes for both sites, resolved once per run. */
29
+ export interface ModernizeJudgeSettings {
30
+ /** Mode of `docs.modernize.classify`. */
31
+ readonly classifyMode: DecisionSiteMode;
32
+ /** Mode of `docs.modernize.merge`. */
33
+ readonly mergeMode: DecisionSiteMode;
34
+ /** Provider wiring forwarded to `decide()` (tests inject a provider here). */
35
+ readonly wiring?: DecideOptions;
36
+ /** Project root for config and the audit sink. */
37
+ readonly projectRoot: string;
38
+ }
39
+ /**
40
+ * Resolve both sites' modes. Unconfigured System One resolves to `off`.
41
+ *
42
+ * @param projectRoot - Project root for config lookup.
43
+ * @param wiring - Optional provider wiring.
44
+ * @param mode - Optional explicit mode for both sites.
45
+ * @returns The settings for one run.
46
+ */
47
+ export declare function resolveModernizeJudgeSettings(projectRoot: string, wiring?: DecideOptions, mode?: DecisionSiteMode): Promise<ModernizeJudgeSettings>;
48
+ /**
49
+ * Judge the kind of a doc the rules were unsure about.
50
+ *
51
+ * @param input - The doc, the rule's kind and confidence, and the offered kinds.
52
+ * @param settings - Run settings.
53
+ * @returns The judgment; `acted` is the kind the plan uses.
54
+ */
55
+ export declare function judgeDocKind(input: {
56
+ readonly path: string;
57
+ readonly title: string;
58
+ readonly content: string;
59
+ readonly ruleKind: string;
60
+ readonly ruleConfidence: number;
61
+ readonly kinds: ReadonlyArray<{
62
+ readonly kind: string;
63
+ readonly description: string;
64
+ }>;
65
+ }, settings: ModernizeJudgeSettings): Promise<DocsModernizeJudgment>;
66
+ /**
67
+ * Judge whether two docs that share a slug are one doc.
68
+ *
69
+ * @param input - Both docs and their line similarity.
70
+ * @param settings - Run settings.
71
+ * @returns The judgment; `acted` is `merge` or `separate`.
72
+ */
73
+ export declare function judgeDocMerge(input: {
74
+ readonly left: {
75
+ readonly path: string;
76
+ readonly content: string;
77
+ };
78
+ readonly right: {
79
+ readonly path: string;
80
+ readonly content: string;
81
+ };
82
+ readonly similarity: number;
83
+ readonly rule: 'merge' | 'separate';
84
+ }, settings: ModernizeJudgeSettings): Promise<DocsModernizeJudgment>;
85
+ //# sourceMappingURL=judge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"judge.d.ts","sourceRoot":"","sources":["../../../src/docs/modernize/judge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAGV,qBAAqB,EAEtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAwB,gBAAgB,EAAgB,MAAM,sBAAsB,CAAC;AAMjG,iFAAiF;AACjF,eAAO,MAAM,4BAA4B,OAAQ,CAAC;AAElD,oEAAoE;AACpE,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAW5C,6DAA6D;AAC7D,MAAM,WAAW,sBAAsB;IACrC,yCAAyC;IACzC,QAAQ,CAAC,YAAY,EAAE,gBAAgB,CAAC;IACxC,sCAAsC;IACtC,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IACrC,8EAA8E;IAC9E,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC;IAChC,kDAAkD;IAClD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;GAOG;AACH,wBAAsB,6BAA6B,CACjD,WAAW,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,aAAa,EACtB,IAAI,CAAC,EAAE,gBAAgB,GACtB,OAAO,CAAC,sBAAsB,CAAC,CAiBjC;AAwED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAChC,KAAK,EAAE;IACL,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACxF,EACD,QAAQ,EAAE,sBAAsB,GAC/B,OAAO,CAAC,qBAAqB,CAAC,CAyBhC;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,KAAK,EAAE;IACL,QAAQ,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACnE,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACpE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,CAAC;CACrC,EACD,QAAQ,EAAE,sBAAsB,GAC/B,OAAO,CAAC,qBAAqB,CAAC,CAgChC"}
@@ -0,0 +1,186 @@
1
+ /**
2
+ * System One judgments for `cleo docs modernize` (T14113).
3
+ *
4
+ * Two registered sites, asked only when a rule is unsure:
5
+ *
6
+ * - `docs.modernize.classify` — which kind is a doc whose folder, name and
7
+ * headings did not settle it (rule confidence below the floor).
8
+ * - `docs.modernize.merge` — are two docs that share a slug one doc, when
9
+ * their similarity sits in the middle band.
10
+ *
11
+ * Every ask goes through {@link askSiteDecision}: budgeted, audited to
12
+ * `decisions.jsonl` beside the rule answer, and never throwing. With no
13
+ * provider configured the site resolves to `off` and the rule answers with
14
+ * zero network; in `shadow` (the default) the provider is asked and recorded
15
+ * but the rule acts; only `on` with a confident, valid answer acts on it.
16
+ * Each call returns a {@link DocsModernizeJudgment} the plan row carries.
17
+ *
18
+ * @task T14113
19
+ * @epic T14106
20
+ */
21
+ import { DOC_MODERNIZE_CLASSIFY_SITE, DOC_MODERNIZE_MERGE_SITE, } from '../../decide/sites/registry.js';
22
+ /** Wait budget per question, in ms. Modernize is a batch job, not a hot path. */
23
+ export const MODERNIZE_DECISION_BUDGET_MS = 5_000;
24
+ /** Minimum confidence before `on` mode acts on a decided answer. */
25
+ export const MODERNIZE_MIN_CONFIDENCE = 0.6;
26
+ /** Characters of body sent per doc. */
27
+ const EXCERPT_MAX_CHARS = 1_500;
28
+ /** Characters of a path or title sent. */
29
+ const LABEL_MAX_CHARS = 200;
30
+ /** The merge question's options. */
31
+ const MERGE_OPTIONS = ['merge', 'separate'];
32
+ /**
33
+ * Resolve both sites' modes. Unconfigured System One resolves to `off`.
34
+ *
35
+ * @param projectRoot - Project root for config lookup.
36
+ * @param wiring - Optional provider wiring.
37
+ * @param mode - Optional explicit mode for both sites.
38
+ * @returns The settings for one run.
39
+ */
40
+ export async function resolveModernizeJudgeSettings(projectRoot, wiring, mode) {
41
+ const { resolveDecisionSiteSettings } = await import('../../decide/site.js');
42
+ const [classify, merge] = await Promise.all([
43
+ resolveDecisionSiteSettings({
44
+ modeKey: DOC_MODERNIZE_CLASSIFY_SITE.modeKey,
45
+ mode,
46
+ wiring,
47
+ projectRoot,
48
+ }),
49
+ resolveDecisionSiteSettings({
50
+ modeKey: DOC_MODERNIZE_MERGE_SITE.modeKey,
51
+ mode,
52
+ wiring,
53
+ projectRoot,
54
+ }),
55
+ ]);
56
+ return { classifyMode: classify.mode, mergeMode: merge.mode, wiring, projectRoot };
57
+ }
58
+ /** A one-hot choice answer standing for the rule. */
59
+ function ruleAnswer(options, value, confidence) {
60
+ return {
61
+ type: 'choice',
62
+ value,
63
+ probabilities: Object.fromEntries(options.map((o) => [o, o === value ? 1 : 0])),
64
+ confidence,
65
+ };
66
+ }
67
+ /**
68
+ * Ask one choice question and fold the outcome into a judgment. `ask` calls
69
+ * `askSiteDecision` with the registered site id (gate 35 reads it there).
70
+ */
71
+ async function judgeChoice(input) {
72
+ const base = {
73
+ question: input.question,
74
+ site: input.siteId,
75
+ mode: input.mode,
76
+ ruleAnswer: input.rule,
77
+ };
78
+ const fallback = {
79
+ ...base,
80
+ decidedAnswer: null,
81
+ decidedConfidence: null,
82
+ source: 'fallback',
83
+ acted: input.rule,
84
+ };
85
+ if (input.mode === 'off')
86
+ return fallback;
87
+ const name = input.question;
88
+ const decision = await input.ask({
89
+ budgetMs: MODERNIZE_DECISION_BUDGET_MS,
90
+ minConfidence: MODERNIZE_MIN_CONFIDENCE,
91
+ mode: input.mode,
92
+ heuristicVerdict: input.rule,
93
+ buildRequest: input.buildRequest,
94
+ heuristicAnswers: { [name]: ruleAnswer(input.options, input.rule, input.ruleConfidence) },
95
+ isValid: (answers) => {
96
+ const a = answers[name];
97
+ return a?.type === 'choice' && typeof a.value === 'string' && input.options.includes(a.value);
98
+ },
99
+ agree: (answers) => answers[name]?.value === input.rule,
100
+ wiring: input.settings.wiring,
101
+ projectRoot: input.settings.projectRoot,
102
+ });
103
+ const answer = decision?.answers[name];
104
+ if (!decision || answer?.type !== 'choice')
105
+ return fallback;
106
+ const acts = input.mode === 'on' && decision.confident;
107
+ return {
108
+ ...base,
109
+ decidedAnswer: answer.value,
110
+ decidedConfidence: answer.confidence,
111
+ source: decision.source,
112
+ acted: acts ? answer.value : input.rule,
113
+ };
114
+ }
115
+ /**
116
+ * Judge the kind of a doc the rules were unsure about.
117
+ *
118
+ * @param input - The doc, the rule's kind and confidence, and the offered kinds.
119
+ * @param settings - Run settings.
120
+ * @returns The judgment; `acted` is the kind the plan uses.
121
+ */
122
+ export async function judgeDocKind(input, settings) {
123
+ const { askSiteDecision, redactThenClip } = await import('../../decide/site.js');
124
+ return judgeChoice({
125
+ ask: (common) => askSiteDecision({ siteId: DOC_MODERNIZE_CLASSIFY_SITE.id, ...common }),
126
+ question: 'classify',
127
+ siteId: DOC_MODERNIZE_CLASSIFY_SITE.id,
128
+ mode: settings.classifyMode,
129
+ options: input.kinds.map((k) => k.kind),
130
+ rule: input.ruleKind,
131
+ ruleConfidence: input.ruleConfidence,
132
+ settings,
133
+ buildRequest: (redact) => ({
134
+ state: {
135
+ path: redactThenClip(input.path, LABEL_MAX_CHARS, redact),
136
+ title: redactThenClip(input.title, LABEL_MAX_CHARS, redact),
137
+ excerpt: redactThenClip(input.content, EXCERPT_MAX_CHARS, redact),
138
+ },
139
+ questions: {
140
+ classify: {
141
+ type: 'choice',
142
+ criteria: Object.fromEntries(input.kinds.map((k) => [k.kind, k.description])),
143
+ },
144
+ },
145
+ }),
146
+ });
147
+ }
148
+ /**
149
+ * Judge whether two docs that share a slug are one doc.
150
+ *
151
+ * @param input - Both docs and their line similarity.
152
+ * @param settings - Run settings.
153
+ * @returns The judgment; `acted` is `merge` or `separate`.
154
+ */
155
+ export async function judgeDocMerge(input, settings) {
156
+ const { askSiteDecision, redactThenClip } = await import('../../decide/site.js');
157
+ return judgeChoice({
158
+ ask: (common) => askSiteDecision({ siteId: DOC_MODERNIZE_MERGE_SITE.id, ...common }),
159
+ question: 'merge',
160
+ siteId: DOC_MODERNIZE_MERGE_SITE.id,
161
+ mode: settings.mergeMode,
162
+ options: MERGE_OPTIONS,
163
+ rule: input.rule,
164
+ ruleConfidence: 0.5,
165
+ settings,
166
+ buildRequest: (redact) => ({
167
+ state: {
168
+ firstPath: redactThenClip(input.left.path, LABEL_MAX_CHARS, redact),
169
+ firstExcerpt: redactThenClip(input.left.content, EXCERPT_MAX_CHARS, redact),
170
+ secondPath: redactThenClip(input.right.path, LABEL_MAX_CHARS, redact),
171
+ secondExcerpt: redactThenClip(input.right.content, EXCERPT_MAX_CHARS, redact),
172
+ lineSimilarity: Math.round(input.similarity * 100) / 100,
173
+ },
174
+ questions: {
175
+ merge: {
176
+ type: 'choice',
177
+ criteria: {
178
+ merge: 'Both documents cover the same subject; one is an older, partial or alternate version of the other and they should become one document.',
179
+ separate: 'The documents cover different subjects that happen to share a name; both should stay as separate documents.',
180
+ },
181
+ },
182
+ },
183
+ }),
184
+ });
185
+ }
186
+ //# sourceMappingURL=judge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"judge.js","sourceRoot":"","sources":["../../../src/docs/modernize/judge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * `cleo docs modernize <path> --dry-run` — propose, per file, a kind, a
3
+ * stable slug and a disposition (T14113).
4
+ *
5
+ * Steps:
6
+ *
7
+ * 1. Scan `.md` / `.txt` files under the root (the `docs import` scanner),
8
+ * skipping build, generated and image folders.
9
+ * 2. Classify each file by rules (front matter, folder, filename, headings);
10
+ * a rule below {@link MODERNIZE_CLASSIFY_FLOOR} is judged by System One
11
+ * (`docs.modernize.classify`).
12
+ * 3. Derive the stable slug: no task, session or date tokens.
13
+ * 4. Group files by slug. Byte-identical members are deleted in favour of the
14
+ * survivor; other members merge when their line similarity is high, stay
15
+ * apart (with a numbered slug) when it is low, and are judged by System
16
+ * One (`docs.modernize.merge`) in between.
17
+ * 5. Survivors keep or move to `<kind folder>/<slug><ext>`.
18
+ *
19
+ * Read-only: nothing is written except the decision-audit line each System
20
+ * One question gets. The plan is the input to `applyDocsModernize`.
21
+ *
22
+ * @task T14113
23
+ * @epic T14106
24
+ */
25
+ import type { DocKindMetadata, DocsModernizeOverrides, DocsModernizePlan } from '@cleocode/contracts';
26
+ import type { DecideOptions } from '../../decide/client.js';
27
+ import type { DecisionSiteMode } from '../../decide/site.js';
28
+ /** Folders modernize never descends into, beyond the scanner's defaults. */
29
+ export declare const MODERNIZE_EXCLUDE_DIRS: ReadonlySet<string>;
30
+ /** File extensions modernize reads. */
31
+ export declare const MODERNIZE_EXTENSIONS: readonly string[];
32
+ /** Options for {@link planDocsModernize}. */
33
+ export interface PlanDocsModernizeOptions {
34
+ /** Absolute directory to modernize. */
35
+ readonly root: string;
36
+ /** Project root (kind registry, config, decision audit). */
37
+ readonly projectRoot: string;
38
+ /** Extra folder names to skip. */
39
+ readonly exclude?: readonly string[];
40
+ /** Explicit System One mode for both sites (tests; default from config). */
41
+ readonly mode?: DecisionSiteMode;
42
+ /** Provider wiring forwarded to `decide()` (tests). */
43
+ readonly decide?: DecideOptions;
44
+ /** Clock override (tests). */
45
+ readonly now?: () => Date;
46
+ /** Reviewer decisions keyed by path; they win over rules and System One. */
47
+ readonly overrides?: DocsModernizeOverrides;
48
+ /** Use this kind for every file instead of classifying (bulk ingest). */
49
+ readonly kind?: string;
50
+ /** Ingest every file into the store and leave the folder untouched. */
51
+ readonly storeOnly?: boolean;
52
+ /** Repository root for the `refs` scan (default: the project root). */
53
+ readonly repoRoot?: string;
54
+ }
55
+ /**
56
+ * Task and decision ids an old path names (`T1234`, `D11180`), upper-cased,
57
+ * in order of appearance.
58
+ *
59
+ * @param relPath - Path relative to the root.
60
+ * @returns Unique ids.
61
+ */
62
+ export declare function ownerIdsFromPath(relPath: string): string[];
63
+ /** The folder, relative to the root, that a kind's docs live in. */
64
+ export declare function kindFolder(kind: string, kinds: readonly DocKindMetadata[]): string;
65
+ /**
66
+ * Plan a modernize run over `options.root`.
67
+ *
68
+ * @param options - Root, project root and System One overrides.
69
+ * @returns The plan: one row per scanned file, sorted by path.
70
+ */
71
+ export declare function planDocsModernize(options: PlanDocsModernizeOptions): Promise<DocsModernizePlan>;
72
+ /** Raised when an override names a path the scan did not find. */
73
+ export declare class DocsModernizeOverrideError extends Error {
74
+ /** Stable code for the envelope. */
75
+ readonly code = "E_MODERNIZE_OVERRIDE";
76
+ }
77
+ //# sourceMappingURL=plan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../../src/docs/modernize/plan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAIH,OAAO,KAAK,EACV,eAAe,EAKf,sBAAsB,EACtB,iBAAiB,EAElB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAmB7D,4EAA4E;AAC5E,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,MAAM,CAKrD,CAAC;AAEH,uCAAuC;AACvC,eAAO,MAAM,oBAAoB,EAAE,SAAS,MAAM,EAAoB,CAAC;AAEvE,6CAA6C;AAC7C,MAAM,WAAW,wBAAwB;IACvC,uCAAuC;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,4DAA4D;IAC5D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,kCAAkC;IAClC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,4EAA4E;IAC5E,QAAQ,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACjC,uDAAuD;IACvD,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC;IAChC,8BAA8B;IAC9B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,4EAA4E;IAC5E,QAAQ,CAAC,SAAS,CAAC,EAAE,sBAAsB,CAAC;IAC5C,yEAAyE;IACzE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,uEAAuE;IACvE,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAQD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAM1D;AAgED,oEAAoE;AACpE,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,eAAe,EAAE,GAAG,MAAM,CAIlF;AA2FD;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,iBAAiB,CAAC,CAqM5B;AA8ID,kEAAkE;AAClE,qBAAa,0BAA2B,SAAQ,KAAK;IACnD,oCAAoC;IACpC,QAAQ,CAAC,IAAI,0BAA0B;CACxC"}