@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
@@ -21,7 +21,7 @@
21
21
  * @task T9547
22
22
  * @epic T9515
23
23
  */
24
- import type { EngineResult, PruneOrphanedWorktreesOpts, PruneOrphanedWorktreesResult, WorktreeInfo } from '@cleocode/contracts';
24
+ import type { EngineResult, EvidenceAtom, PruneOrphanedWorktreesOpts, PruneOrphanedWorktreesResult, WorktreeInfo } from '@cleocode/contracts';
25
25
  /**
26
26
  * Drive the orphan / merged worktree prune flow used by
27
27
  * `cleo worktree prune --orphaned`.
@@ -50,6 +50,68 @@ import type { EngineResult, PruneOrphanedWorktreesOpts, PruneOrphanedWorktreesRe
50
50
  * @returns EngineResult wrapping a {@link PruneOrphanedWorktreesResult}.
51
51
  */
52
52
  export declare function pruneOrphanedWorktreesByStatus(opts: PruneOrphanedWorktreesOpts): Promise<EngineResult<PruneOrphanedWorktreesResult>>;
53
+ /**
54
+ * What one cleanup run may spend proving trees identical (T14146). Shared
55
+ * across every checkout the run inspects; once spent, the rest is unproven.
56
+ */
57
+ export interface CompareBudget {
58
+ /** Entries (files, directories, links) still allowed. */
59
+ entries: number;
60
+ /** File bytes still allowed to be read. */
61
+ bytes: number;
62
+ }
63
+ /** A fresh per-run budget: 200 000 entries and 2 GiB of file bytes. */
64
+ export declare function newCompareBudget(): CompareBudget;
65
+ /**
66
+ * Build output a merged, clean checkout can always rebuild from its source,
67
+ * so losing it loses nothing (T14146): `dist/`, `.turbo/` and `coverage/`
68
+ * (and anything inside them), and `*.tsbuildinfo` files, only where the build
69
+ * writes them: the checkout root or a `packages/<name>/` root. The same name
70
+ * deeper down (`secrets/dist/key.pem`) is not build output and stays strict.
71
+ *
72
+ * @param rel - Path relative to the checkout root, `/`-separated.
73
+ * @returns Whether the path is rebuildable output.
74
+ */
75
+ export declare function isRegenerable(rel: string): boolean;
76
+ /** How {@link unprovenContent} treats ignored content (T14146). */
77
+ export interface UnprovenContentOptions {
78
+ /** Shared per-run comparison budget; a fresh one when omitted. */
79
+ budget?: CompareBudget;
80
+ /** Ignored `node_modules` counts as redundant (worktrees, not repository copies). */
81
+ exemptNodeModules?: boolean;
82
+ /**
83
+ * Ignored build output ({@link isRegenerable}) counts as redundant. Only for
84
+ * a checkout whose commits are merged: its source rebuilds the output.
85
+ */
86
+ exemptRegenerable?: boolean;
87
+ }
88
+ /**
89
+ * What in a checkout is not proven redundant, or `null` when nothing is.
90
+ *
91
+ * Tracked changes never are; untracked content is when the main checkout
92
+ * holds the identical tree at the same path. Ignored content (which
93
+ * `--porcelain` alone never lists: an edited `.env`, an agent's nested
94
+ * `.claude/worktrees/x/`) is redundant only when exempted by `opts`
95
+ * (`node_modules`, merged build output) or when the main checkout holds the
96
+ * identical tree at the same path (what `.worktreeinclude` seeded, unchanged).
97
+ * Fail-closed: a git or read error is unproven.
98
+ *
99
+ * @param path - Checkout root.
100
+ * @param projectRoot - The main checkout seeded copies are compared against.
101
+ * @param opts - Budget and exemptions (default: `node_modules` exempt, nothing else).
102
+ * @returns Why the checkout must be kept, or `null`.
103
+ * @task T14142
104
+ * @task T14146
105
+ */
106
+ export declare function unprovenContent(path: string, projectRoot: string, opts?: UnprovenContentOptions): string | null;
107
+ /**
108
+ * The owning task's recorded evidence, or `[]` when there is no task or the store is unreadable.
109
+ *
110
+ * @param projectRoot - Project root whose task store is read.
111
+ * @param taskId - Owning task, or `null`.
112
+ * @returns The task's evidence atoms.
113
+ */
114
+ export declare function loadTaskEvidence(projectRoot: string, taskId: string | null): Promise<EvidenceAtom[]>;
53
115
  /**
54
116
  * Map a {@link WorktreeInfo} entry's `statusCategory` to a short human-readable
55
117
  * reason string used in audit logs + envelope outcomes.
@@ -74,7 +136,7 @@ export declare function reasonForStatus(wt: WorktreeInfo): string;
74
136
  *
75
137
  * Never throws — failures are reported in the returned object.
76
138
  */
77
- export declare function removeWorktreeFromDisk(wt: WorktreeInfo, projectRoot: string): {
139
+ export declare function removeWorktreeFromDisk(wt: Pick<WorktreeInfo, 'path' | 'branch' | 'isMerged'>, projectRoot: string): {
78
140
  success: true;
79
141
  branchDeleted: boolean;
80
142
  } | {
@@ -1 +1 @@
1
- {"version":3,"file":"prune.d.ts","sourceRoot":"","sources":["../../src/worktree/prune.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,KAAK,EACV,YAAY,EAGZ,0BAA0B,EAC1B,4BAA4B,EAC5B,YAAY,EACb,MAAM,qBAAqB,CAAC;AAa7B;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAsB,8BAA8B,CAClD,IAAI,EAAE,0BAA0B,GAC/B,OAAO,CAAC,YAAY,CAAC,4BAA4B,CAAC,CAAC,CAsJrD;AAsBD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,YAAY,GAAG,MAAM,CAiBxD;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,YAAY,EAChB,WAAW,EAAE,MAAM,GAClB;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,aAAa,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAwC/E"}
1
+ {"version":3,"file":"prune.d.ts","sourceRoot":"","sources":["../../src/worktree/prune.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAYH,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EAEZ,0BAA0B,EAC1B,4BAA4B,EAC5B,YAAY,EACb,MAAM,qBAAqB,CAAC;AAa7B;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAsB,8BAA8B,CAClD,IAAI,EAAE,0BAA0B,GAC/B,OAAO,CAAC,YAAY,CAAC,4BAA4B,CAAC,CAAC,CA2KrD;AAMD;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;CACf;AAED,uEAAuE;AACvE,wBAAgB,gBAAgB,IAAI,aAAa,CAEhD;AAQD;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAMlD;AAsCD,mEAAmE;AACnE,MAAM,WAAW,sBAAsB;IACrC,kEAAkE;IAClE,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,qFAAqF;IACrF,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE,sBAA2B,GAChC,MAAM,GAAG,IAAI,CA8Bf;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GAAG,IAAI,GACpB,OAAO,CAAC,YAAY,EAAE,CAAC,CAUzB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,YAAY,GAAG,MAAM,CAiBxD;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC,EACtD,WAAW,EAAE,MAAM,GAClB;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,aAAa,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAwC/E"}
@@ -21,7 +21,9 @@
21
21
  * @task T9547
22
22
  * @epic T9515
23
23
  */
24
- import { existsSync } from 'node:fs';
24
+ import { execFileSync } from 'node:child_process';
25
+ import { existsSync, lstatSync, readdirSync, readFileSync, readlinkSync, } from 'node:fs';
26
+ import { join } from 'node:path';
25
27
  import { engineError, engineSuccess } from '@cleocode/contracts/engine-result.js';
26
28
  import { describeDisposalBlockers, gitSilent, guardWorktreeDisposal, napiDestroyWorktree, pruneWorktreeRegistry, } from '@cleocode/worktree';
27
29
  import { taskEvidenceAtoms } from '../tasks/evidence-paths.js';
@@ -73,6 +75,8 @@ export async function pruneOrphanedWorktreesByStatus(opts) {
73
75
  const outcomes = [];
74
76
  const errors = [];
75
77
  let prunedCount = 0;
78
+ // One comparison budget for the whole run (T14146).
79
+ const budget = newCompareBudget();
76
80
  for (const wt of candidates) {
77
81
  const reason = reasonForStatus(wt);
78
82
  // T13700: the same guard as complete/cancel — dependents, evidence and the keep marker.
@@ -111,6 +115,24 @@ export async function pruneOrphanedWorktreesByStatus(opts) {
111
115
  }
112
116
  continue;
113
117
  }
118
+ // T14142: removal is forced, so anything not proven redundant would be lost.
119
+ // A directory already gone holds nothing to lose.
120
+ const unproven = existsSync(wt.path)
121
+ ? unprovenContent(wt.path, opts.projectRoot, { budget, exemptRegenerable: wt.isMerged })
122
+ : null;
123
+ if (unproven !== null) {
124
+ const error = `Worktree ${wt.path} kept: ${unproven}.`;
125
+ outcomes.push({
126
+ path: wt.path,
127
+ branch: wt.branch,
128
+ taskId: wt.taskId,
129
+ reason,
130
+ pruned: false,
131
+ branchDeleted: false,
132
+ error,
133
+ });
134
+ continue;
135
+ }
114
136
  if (dryRun) {
115
137
  outcomes.push({
116
138
  path: wt.path,
@@ -175,11 +197,134 @@ export async function pruneOrphanedWorktreesByStatus(opts) {
175
197
  dryRun,
176
198
  });
177
199
  }
178
- // ---------------------------------------------------------------------------
179
- // Internal helpers — exported for tests only.
180
- // ---------------------------------------------------------------------------
181
- /** The owning task's recorded evidence, or `[]` when there is no task or the store is unreadable. */
182
- async function loadTaskEvidence(projectRoot, taskId) {
200
+ /** A fresh per-run budget: 200 000 entries and 2 GiB of file bytes. */
201
+ export function newCompareBudget() {
202
+ return { entries: 200_000, bytes: 2 * 1024 * 1024 * 1024 };
203
+ }
204
+ /** A single file larger than this is never read to prove it identical (64 MiB). */
205
+ const MAX_COMPARED_FILE_BYTES = 64 * 1024 * 1024;
206
+ /** Output directories the build writes, at the root or in a workspace package. */
207
+ const REGENERABLE_DIRS = new Set(['dist', '.turbo', 'coverage']);
208
+ /**
209
+ * Build output a merged, clean checkout can always rebuild from its source,
210
+ * so losing it loses nothing (T14146): `dist/`, `.turbo/` and `coverage/`
211
+ * (and anything inside them), and `*.tsbuildinfo` files, only where the build
212
+ * writes them: the checkout root or a `packages/<name>/` root. The same name
213
+ * deeper down (`secrets/dist/key.pem`) is not build output and stays strict.
214
+ *
215
+ * @param rel - Path relative to the checkout root, `/`-separated.
216
+ * @returns Whether the path is rebuildable output.
217
+ */
218
+ export function isRegenerable(rel) {
219
+ const parts = rel.split('/');
220
+ // The output's own root: `dist`, or `packages/<name>/dist`.
221
+ const base = parts[0] === 'packages' ? 2 : 0;
222
+ if (parts.length > base && REGENERABLE_DIRS.has(parts[base] ?? ''))
223
+ return true;
224
+ return parts.length === base + 1 && rel.endsWith('.tsbuildinfo');
225
+ }
226
+ /**
227
+ * Whether `a` and `b` hold the same tree: same names, same file bytes, same
228
+ * symlink targets. Symlinks are compared, never followed. Any read error, an
229
+ * oversized file or a spent budget answers `false` (unproven), never throws.
230
+ */
231
+ function sameTree(a, b, budget) {
232
+ const stack = [[a, b]];
233
+ try {
234
+ while (stack.length > 0) {
235
+ const [x, y] = stack.pop();
236
+ if (--budget.entries < 0)
237
+ return false;
238
+ const sx = lstatSync(x);
239
+ const sy = lstatSync(y);
240
+ if (sx.isSymbolicLink() || sy.isSymbolicLink()) {
241
+ if (!sx.isSymbolicLink() || !sy.isSymbolicLink() || readlinkSync(x) !== readlinkSync(y)) {
242
+ return false;
243
+ }
244
+ }
245
+ else if (sx.isFile() && sy.isFile()) {
246
+ if (sx.size !== sy.size || sx.size > MAX_COMPARED_FILE_BYTES)
247
+ return false;
248
+ budget.bytes -= sx.size * 2;
249
+ if (budget.bytes < 0 || !readFileSync(x).equals(readFileSync(y)))
250
+ return false;
251
+ }
252
+ else if (sx.isDirectory() && sy.isDirectory()) {
253
+ const nx = readdirSync(x).sort();
254
+ const ny = readdirSync(y).sort();
255
+ if (nx.length !== ny.length || nx.some((n, i) => n !== ny[i]))
256
+ return false;
257
+ for (const n of nx)
258
+ stack.push([join(x, n), join(y, n)]);
259
+ }
260
+ else {
261
+ return false;
262
+ }
263
+ }
264
+ }
265
+ catch {
266
+ return false;
267
+ }
268
+ return true;
269
+ }
270
+ /**
271
+ * What in a checkout is not proven redundant, or `null` when nothing is.
272
+ *
273
+ * Tracked changes never are; untracked content is when the main checkout
274
+ * holds the identical tree at the same path. Ignored content (which
275
+ * `--porcelain` alone never lists: an edited `.env`, an agent's nested
276
+ * `.claude/worktrees/x/`) is redundant only when exempted by `opts`
277
+ * (`node_modules`, merged build output) or when the main checkout holds the
278
+ * identical tree at the same path (what `.worktreeinclude` seeded, unchanged).
279
+ * Fail-closed: a git or read error is unproven.
280
+ *
281
+ * @param path - Checkout root.
282
+ * @param projectRoot - The main checkout seeded copies are compared against.
283
+ * @param opts - Budget and exemptions (default: `node_modules` exempt, nothing else).
284
+ * @returns Why the checkout must be kept, or `null`.
285
+ * @task T14142
286
+ * @task T14146
287
+ */
288
+ export function unprovenContent(path, projectRoot, opts = {}) {
289
+ const budget = opts.budget ?? newCompareBudget();
290
+ const exemptNodeModules = opts.exemptNodeModules !== false;
291
+ let out;
292
+ try {
293
+ out = execFileSync('git', ['-C', path, 'status', '--porcelain', '-z', '-uall', '--ignored=matching'], { encoding: 'utf8', stdio: ['ignore', 'pipe', 'pipe'], timeout: 60_000 });
294
+ }
295
+ catch {
296
+ return 'git status failed';
297
+ }
298
+ for (const entry of out.split('\0').filter((e) => e.length > 0)) {
299
+ const code = entry.slice(0, 2);
300
+ const rel = entry.slice(3).replace(/\/$/, '');
301
+ // A tracked change is never redundant; an untracked or ignored path is
302
+ // when the main checkout holds the identical tree (a copied receipt).
303
+ if (code === '??') {
304
+ if (sameTree(join(path, rel), join(projectRoot, rel), budget))
305
+ continue;
306
+ return 'uncommitted or untracked changes';
307
+ }
308
+ if (code !== '!!')
309
+ return 'uncommitted or untracked changes';
310
+ if (exemptNodeModules && rel.split('/').includes('node_modules'))
311
+ continue;
312
+ if (opts.exemptRegenerable === true && isRegenerable(rel))
313
+ continue;
314
+ if (!sameTree(join(path, rel), join(projectRoot, rel), budget)) {
315
+ return `ignored content not in the main checkout: ${rel}`;
316
+ }
317
+ }
318
+ return null;
319
+ }
320
+ /**
321
+ * The owning task's recorded evidence, or `[]` when there is no task or the store is unreadable.
322
+ *
323
+ * @param projectRoot - Project root whose task store is read.
324
+ * @param taskId - Owning task, or `null`.
325
+ * @returns The task's evidence atoms.
326
+ */
327
+ export async function loadTaskEvidence(projectRoot, taskId) {
183
328
  if (taskId === null)
184
329
  return [];
185
330
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"prune.js","sourceRoot":"","sources":["../../src/worktree/prune.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prune.js","sourceRoot":"","sources":["../../src/worktree/prune.ts"],"names":[],"mappings":"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"}
@@ -68,6 +68,20 @@ export interface SentinelWorktreeEntry {
68
68
  /** Agent or operator that registered this entry (env `CLEO_AGENT_ID` ?? `'cleo'`). */
69
69
  adoptedBy: string;
70
70
  }
71
+ /**
72
+ * The task a worktree branch names: `task/T####` or `feat/T####`, optionally
73
+ * followed by `-<slug>` (the `task/T####-<slug>` convention). One rule for
74
+ * `worktree list` and `worktree adopt`, which used to disagree (T14165).
75
+ *
76
+ * @param branch - Git branch name.
77
+ * @returns The task ID, or null when the branch names none.
78
+ * @example
79
+ * ```ts
80
+ * taskIdFromBranch('task/T14165-adopt-readback'); // 'T14165'
81
+ * taskIdFromBranch('main'); // null
82
+ * ```
83
+ */
84
+ export declare function taskIdFromBranch(branch: string): string | null;
71
85
  /**
72
86
  * Read the sentinel index from `<projectRoot>/.cleo/worktrees.json`.
73
87
  *
@@ -1 +1 @@
1
- {"version":3,"file":"sentinel-index.d.ts","sourceRoot":"","sources":["../../src/worktree/sentinel-index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAK1D,oEAAoE;AACpE,eAAO,MAAM,4BAA4B,yBAAyB,CAAC;AAEnE;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,sBAAsB,GAAG,cAAc,CAAC;AAEpD;;;;;;;;;GASG;AACH,MAAM,WAAW,qBAAqB;IACpC,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,mEAAmE;IACnE,MAAM,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,+EAA+E;IAC/E,MAAM,EAAE,sBAAsB,CAAC;IAC/B,0EAA0E;IAC1E,SAAS,EAAE,MAAM,CAAC;IAClB,sFAAsF;IACtF,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,MAAM,EACnB,iBAAiB,CAAC,EAAE,MAAM,GACzB,qBAAqB,EAAE,CAWzB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,qBAAqB,EAAE,EAChC,iBAAiB,CAAC,EAAE,MAAM,GACzB,IAAI,CAWN;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,qBAAqB,EAC5B,iBAAiB,CAAC,EAAE,MAAM,GACzB,OAAO,CAWT;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEpE"}
1
+ {"version":3,"file":"sentinel-index.d.ts","sourceRoot":"","sources":["../../src/worktree/sentinel-index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAK1D,oEAAoE;AACpE,eAAO,MAAM,4BAA4B,yBAAyB,CAAC;AAEnE;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,sBAAsB,GAAG,cAAc,CAAC;AAEpD;;;;;;;;;GASG;AACH,MAAM,WAAW,qBAAqB;IACpC,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,mEAAmE;IACnE,MAAM,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,+EAA+E;IAC/E,MAAM,EAAE,sBAAsB,CAAC;IAC/B,0EAA0E;IAC1E,SAAS,EAAE,MAAM,CAAC;IAClB,sFAAsF;IACtF,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG9D;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,MAAM,EACnB,iBAAiB,CAAC,EAAE,MAAM,GACzB,qBAAqB,EAAE,CAWzB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,qBAAqB,EAAE,EAChC,iBAAiB,CAAC,EAAE,MAAM,GACzB,IAAI,CAWN;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,qBAAqB,EAC5B,iBAAiB,CAAC,EAAE,MAAM,GACzB,OAAO,CAWT;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEpE"}
@@ -29,6 +29,23 @@ import { getLogger } from '../logger.js';
29
29
  const log = getLogger('worktree:sentinel-index');
30
30
  /** Relative path within the project root for the sentinel index. */
31
31
  export const WORKTREE_SENTINEL_INDEX_PATH = '.cleo/worktrees.json';
32
+ /**
33
+ * The task a worktree branch names: `task/T####` or `feat/T####`, optionally
34
+ * followed by `-<slug>` (the `task/T####-<slug>` convention). One rule for
35
+ * `worktree list` and `worktree adopt`, which used to disagree (T14165).
36
+ *
37
+ * @param branch - Git branch name.
38
+ * @returns The task ID, or null when the branch names none.
39
+ * @example
40
+ * ```ts
41
+ * taskIdFromBranch('task/T14165-adopt-readback'); // 'T14165'
42
+ * taskIdFromBranch('main'); // null
43
+ * ```
44
+ */
45
+ export function taskIdFromBranch(branch) {
46
+ const match = branch.match(/^(?:task|feat)\/(T\d+)(?:-|$)/);
47
+ return match ? (match[1] ?? null) : null;
48
+ }
32
49
  /**
33
50
  * Read the sentinel index from `<projectRoot>/.cleo/worktrees.json`.
34
51
  *
@@ -1 +1 @@
1
- {"version":3,"file":"sentinel-index.js","sourceRoot":"","sources":["../../src/worktree/sentinel-index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sentinel-index.js","sourceRoot":"","sources":["../../src/worktree/sentinel-index.ts"],"names":[],"mappings":"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"}
@@ -36,6 +36,7 @@
36
36
  * @adr ADR-062 — git merge --no-ff integration semantics
37
37
  */
38
38
  import type { AdoptWorktreeOpts, AdoptWorktreeResult, EngineResult } from '@cleocode/contracts';
39
+ export { taskIdFromBranch } from './sentinel-index.js';
39
40
  export type { AdoptWorktreeOpts, AdoptWorktreeResult };
40
41
  /**
41
42
  * Register an externally-created worktree in the CLEO SSoT.
@@ -90,17 +91,4 @@ interface BranchFailure {
90
91
  * @internal Exported for tests only.
91
92
  */
92
93
  export declare function extractBranchFromWorktree(worktreePath: string): BranchSuccess | BranchFailure;
93
- /**
94
- * Extract a task ID from a branch name following the `task/T####` or
95
- * `feat/T####` naming convention.
96
- *
97
- * Mirrors the same logic in `list.ts` with an extension for `feat/` branches
98
- * (common for Claude Code Agent worktrees). Duplicated here to avoid a circular
99
- * import between `adopt` and `list`.
100
- *
101
- * @param branch - Git branch name.
102
- * @returns The task ID string, or null if the branch does not match.
103
- * @internal Exported for tests only.
104
- */
105
- export declare function taskIdFromBranch(branch: string): string | null;
106
94
  //# sourceMappingURL=worktree-adopt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"worktree-adopt.d.ts","sourceRoot":"","sources":["../../src/worktree/worktree-adopt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAIH,OAAO,KAAK,EACV,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EAEb,MAAM,qBAAqB,CAAC;AAU7B,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC,CAiF5C;AA6CD,2DAA2D;AAC3D,UAAU,aAAa;IACrB,OAAO,EAAE,IAAI,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,2DAA2D;AAC3D,UAAU,aAAa;IACrB,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,aAAa,GAAG,aAAa,CAkD7F;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG9D"}
1
+ {"version":3,"file":"worktree-adopt.d.ts","sourceRoot":"","sources":["../../src/worktree/worktree-adopt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAIH,OAAO,KAAK,EACV,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EAEb,MAAM,qBAAqB,CAAC;AAW7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAKvD,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC,CAiF5C;AA6CD,2DAA2D;AAC3D,UAAU,aAAa;IACrB,OAAO,EAAE,IAAI,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,2DAA2D;AAC3D,UAAU,aAAa;IACrB,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,aAAa,GAAG,aAAa,CAkD7F"}
@@ -41,7 +41,8 @@ import { engineError, engineSuccess } from '@cleocode/contracts/engine-result.js
41
41
  import { getLogger } from '../logger.js';
42
42
  import { resolveOrCwd } from '../paths.js';
43
43
  import { appendWorktreeAuditEntry, resolveWorktreeAuditActor } from './audit.js';
44
- import { upsertSentinelEntry } from './sentinel-index.js';
44
+ import { taskIdFromBranch, upsertSentinelEntry, } from './sentinel-index.js';
45
+ export { taskIdFromBranch } from './sentinel-index.js';
45
46
  const log = getLogger('worktree:adopt');
46
47
  /**
47
48
  * Register an externally-created worktree in the CLEO SSoT.
@@ -232,20 +233,4 @@ export function extractBranchFromWorktree(worktreePath) {
232
233
  }
233
234
  return { success: false, error: `Unrecognised HEAD content: ${headContent}` };
234
235
  }
235
- /**
236
- * Extract a task ID from a branch name following the `task/T####` or
237
- * `feat/T####` naming convention.
238
- *
239
- * Mirrors the same logic in `list.ts` with an extension for `feat/` branches
240
- * (common for Claude Code Agent worktrees). Duplicated here to avoid a circular
241
- * import between `adopt` and `list`.
242
- *
243
- * @param branch - Git branch name.
244
- * @returns The task ID string, or null if the branch does not match.
245
- * @internal Exported for tests only.
246
- */
247
- export function taskIdFromBranch(branch) {
248
- const match = branch.match(/^(?:task|feat)\/(T\d+)/);
249
- return match ? (match[1] ?? null) : null;
250
- }
251
236
  //# sourceMappingURL=worktree-adopt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"worktree-adopt.js","sourceRoot":"","sources":["../../src/worktree/worktree-adopt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worktree-adopt.js","sourceRoot":"","sources":["../../src/worktree/worktree-adopt.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cleocode/core",
3
- "version": "2026.10.27",
3
+ "version": "2026.11.1-canary.3",
4
4
  "description": "CLEO core business logic kernel — tasks, sessions, memory, orchestration, lifecycle, with bundled SQLite store",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -501,16 +501,16 @@
501
501
  "write-file-atomic": "^7.0.1",
502
502
  "yaml": "^2.8.3",
503
503
  "zod": "4.3.6",
504
- "@cleocode/adapters": "2026.10.27",
505
- "@cleocode/agents": "2026.10.27",
506
- "@cleocode/caamp": "2026.10.27",
507
- "@cleocode/contracts": "2026.10.27",
508
- "@cleocode/git-shim": "2026.10.27",
509
- "@cleocode/lafs": "2026.10.27",
510
- "@cleocode/nexus": "2026.10.27",
511
- "@cleocode/paths": "2026.10.27",
512
- "@cleocode/skills": "2026.10.27",
513
- "@cleocode/worktree": "2026.10.27"
504
+ "@cleocode/adapters": "2026.11.1-canary.3",
505
+ "@cleocode/agents": "2026.11.1-canary.3",
506
+ "@cleocode/caamp": "2026.11.1-canary.3",
507
+ "@cleocode/contracts": "2026.11.1-canary.3",
508
+ "@cleocode/git-shim": "2026.11.1-canary.3",
509
+ "@cleocode/lafs": "2026.11.1-canary.3",
510
+ "@cleocode/nexus": "2026.11.1-canary.3",
511
+ "@cleocode/paths": "2026.11.1-canary.3",
512
+ "@cleocode/skills": "2026.11.1-canary.3",
513
+ "@cleocode/worktree": "2026.11.1-canary.3"
514
514
  },
515
515
  "engines": {
516
516
  "node": ">=24.16.0"
@@ -545,7 +545,7 @@
545
545
  },
546
546
  "optionalDependencies": {
547
547
  "llmtxt": "^2026.5.15",
548
- "@cleocode/studio": "^2026.10.27"
548
+ "@cleocode/studio": "^2026.11.1-canary.3"
549
549
  },
550
550
  "scripts": {
551
551
  "build": "tsc && node scripts/copy-selfimprove-fixtures.mjs && node scripts/write-build-provenance.mjs",
@@ -97,6 +97,11 @@
97
97
  "outputDir": {
98
98
  "type": "string",
99
99
  "description": "Build output directory"
100
+ },
101
+ "heavyScripts": {
102
+ "type": "array",
103
+ "items": { "type": "string" },
104
+ "description": "Globs, relative to the project root, of scripts that run heavy tools: `cleo run` charges them as heavy whatever their content shows (T14162)."
100
105
  }
101
106
  }
102
107
  },
@@ -256,6 +261,11 @@
256
261
  },
257
262
  "uniqueItems": true,
258
263
  "description": "Required successful checks for PR and CI evidence atoms. An object entry pins the check to the GitHub App (and workflow file) that must post it (T12634)."
264
+ },
265
+ "macosRegressionParent": {
266
+ "type": "string",
267
+ "pattern": "^T[0-9]+$",
268
+ "description": "Task the merge sweep files open macos-regression GitHub issues under, one task per issue (T14104). Unset: the tasks have no parent."
259
269
  }
260
270
  }
261
271
  },
@@ -273,6 +283,15 @@
273
283
  "type": "boolean",
274
284
  "description": "Accept required CI green on a merged PR's merge commit as testsPassed/qaPassed evidence (ci:<pr>, D11149)."
275
285
  },
286
+ "deploySatisfies": {
287
+ "type": "array",
288
+ "items": {
289
+ "type": "string",
290
+ "enum": ["implemented", "testsPassed", "qaPassed", "cleanupDone", "securityPassed", "documented"]
291
+ },
292
+ "uniqueItems": true,
293
+ "description": "Gates a probed deployment (deploy:<provider>/<deploymentId>@<sha>|<probe-url>, T14083) satisfies. CLEO probes the URL at verify (2xx, naming the deployed SHA in an X-Commit/X-Version header or the body) and requires the deployed SHA to contain the task's implemented commits. No default: unset or empty, the atom satisfies nothing; testsPassed only if listed."
294
+ },
276
295
  "scopeExcludes": {
277
296
  "type": "array",
278
297
  "items": { "type": "string", "minLength": 1 },
@@ -283,6 +302,20 @@
283
302
  "items": { "type": "string", "minLength": 1 },
284
303
  "description": "Repo-relative globs of files whose change affects dependents only at the type level: a generated client (lib/api-zod/**), seed or data files (T13783). A package that depends on a change only through changed packages whose every changed path matches owes a typecheck (tool:typecheck or a qa-run typecheck receipt naming it) instead of a test file. Read from the default branch only."
285
304
  },
305
+ "repositories": {
306
+ "type": "array",
307
+ "description": "Further git repositories this project's evidence may come from (an SDK in a separate repository, T14078). A typed gate names one by its repo field; an undeclared repository is refused.",
308
+ "items": {
309
+ "type": "object",
310
+ "additionalProperties": false,
311
+ "required": ["name", "path", "purpose"],
312
+ "properties": {
313
+ "name": { "type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$", "description": "Name a typed gate's repo field uses." },
314
+ "path": { "type": "string", "minLength": 1, "description": "The checkout root, relative to the CLEO store root or absolute." },
315
+ "purpose": { "type": "string", "minLength": 1, "description": "Why the project's evidence comes from it." }
316
+ }
317
+ }
318
+ },
286
319
  "runtimePaths": {
287
320
  "type": "array",
288
321
  "items": { "type": "string", "minLength": 1 },