@cleocode/core 2026.9.19 → 2026.9.21

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 (863) hide show
  1. package/dist/adapters/discovery.d.ts.map +1 -1
  2. package/dist/adapters/discovery.js +3 -10
  3. package/dist/adapters/discovery.js.map +1 -1
  4. package/dist/adrs/link-pipeline.js +2 -2
  5. package/dist/adrs/link-pipeline.js.map +1 -1
  6. package/dist/adrs/parse.js +3 -3
  7. package/dist/adrs/parse.js.map +1 -1
  8. package/dist/agents/invoke-meta-agent.d.ts.map +1 -1
  9. package/dist/agents/invoke-meta-agent.js +8 -4
  10. package/dist/agents/invoke-meta-agent.js.map +1 -1
  11. package/dist/bootstrap.d.ts +5 -1
  12. package/dist/bootstrap.d.ts.map +1 -1
  13. package/dist/bootstrap.js +41 -21
  14. package/dist/bootstrap.js.map +1 -1
  15. package/dist/cloud/crypto.d.ts +47 -0
  16. package/dist/cloud/crypto.d.ts.map +1 -0
  17. package/dist/cloud/crypto.js +223 -0
  18. package/dist/cloud/crypto.js.map +1 -0
  19. package/dist/cloud/http.d.ts +52 -0
  20. package/dist/cloud/http.d.ts.map +1 -0
  21. package/dist/cloud/http.js +98 -0
  22. package/dist/cloud/http.js.map +1 -0
  23. package/dist/cloud/index.d.ts +19 -0
  24. package/dist/cloud/index.d.ts.map +1 -0
  25. package/dist/cloud/index.js +19 -0
  26. package/dist/cloud/index.js.map +1 -0
  27. package/dist/cloud/journal.d.ts +169 -0
  28. package/dist/cloud/journal.d.ts.map +1 -0
  29. package/dist/cloud/journal.js +428 -0
  30. package/dist/cloud/journal.js.map +1 -0
  31. package/dist/cloud/keys.d.ts +213 -0
  32. package/dist/cloud/keys.d.ts.map +1 -0
  33. package/dist/cloud/keys.js +362 -0
  34. package/dist/cloud/keys.js.map +1 -0
  35. package/dist/cloud/manifest-check.d.ts +36 -0
  36. package/dist/cloud/manifest-check.d.ts.map +1 -0
  37. package/dist/cloud/manifest-check.js +70 -0
  38. package/dist/cloud/manifest-check.js.map +1 -0
  39. package/dist/cloud/projects.d.ts +13 -0
  40. package/dist/cloud/projects.d.ts.map +1 -0
  41. package/dist/cloud/projects.js +11 -0
  42. package/dist/cloud/projects.js.map +1 -0
  43. package/dist/cloud/signing.d.ts +105 -0
  44. package/dist/cloud/signing.d.ts.map +1 -0
  45. package/dist/cloud/signing.js +117 -0
  46. package/dist/cloud/signing.js.map +1 -0
  47. package/dist/cloud/streams.d.ts +6 -0
  48. package/dist/cloud/streams.d.ts.map +1 -0
  49. package/dist/cloud/streams.js +5 -0
  50. package/dist/cloud/streams.js.map +1 -0
  51. package/dist/decide/audit.d.ts +131 -0
  52. package/dist/decide/audit.d.ts.map +1 -0
  53. package/dist/decide/audit.js +98 -0
  54. package/dist/decide/audit.js.map +1 -0
  55. package/dist/decide/budget.d.ts +91 -0
  56. package/dist/decide/budget.d.ts.map +1 -0
  57. package/dist/decide/budget.js +194 -0
  58. package/dist/decide/budget.js.map +1 -0
  59. package/dist/decide/cache.d.ts +49 -0
  60. package/dist/decide/cache.d.ts.map +1 -0
  61. package/dist/decide/cache.js +87 -0
  62. package/dist/decide/cache.js.map +1 -0
  63. package/dist/decide/client.d.ts +103 -0
  64. package/dist/decide/client.d.ts.map +1 -0
  65. package/dist/decide/client.js +262 -0
  66. package/dist/decide/client.js.map +1 -0
  67. package/dist/decide/credentials.d.ts +159 -0
  68. package/dist/decide/credentials.d.ts.map +1 -0
  69. package/dist/decide/credentials.js +383 -0
  70. package/dist/decide/credentials.js.map +1 -0
  71. package/dist/decide/index.d.ts +18 -0
  72. package/dist/decide/index.d.ts.map +1 -0
  73. package/dist/decide/index.js +18 -0
  74. package/dist/decide/index.js.map +1 -0
  75. package/dist/decide/jev-wire.d.ts +155 -0
  76. package/dist/decide/jev-wire.d.ts.map +1 -0
  77. package/dist/decide/jev-wire.js +420 -0
  78. package/dist/decide/jev-wire.js.map +1 -0
  79. package/dist/decide/operations.d.ts +152 -0
  80. package/dist/decide/operations.d.ts.map +1 -0
  81. package/dist/decide/operations.js +199 -0
  82. package/dist/decide/operations.js.map +1 -0
  83. package/dist/decide/provider.d.ts +90 -0
  84. package/dist/decide/provider.d.ts.map +1 -0
  85. package/dist/decide/provider.js +43 -0
  86. package/dist/decide/provider.js.map +1 -0
  87. package/dist/decide/site.d.ts +148 -0
  88. package/dist/decide/site.d.ts.map +1 -0
  89. package/dist/decide/site.js +181 -0
  90. package/dist/decide/site.js.map +1 -0
  91. package/dist/decide/transport.d.ts +67 -0
  92. package/dist/decide/transport.d.ts.map +1 -0
  93. package/dist/decide/transport.js +350 -0
  94. package/dist/decide/transport.js.map +1 -0
  95. package/dist/docs/export-document.js +5908 -2436
  96. package/dist/docs/export-document.js.map +3 -3
  97. package/dist/docs/index.d.ts +2 -2
  98. package/dist/docs/index.d.ts.map +1 -1
  99. package/dist/docs/index.js +1 -1
  100. package/dist/docs/index.js.map +1 -1
  101. package/dist/docs/projection.d.ts.map +1 -1
  102. package/dist/docs/projection.js +2 -3
  103. package/dist/docs/projection.js.map +1 -1
  104. package/dist/docs/publish-pr.d.ts +69 -1
  105. package/dist/docs/publish-pr.d.ts.map +1 -1
  106. package/dist/docs/publish-pr.js +112 -10
  107. package/dist/docs/publish-pr.js.map +1 -1
  108. package/dist/doctor/db-substrate.d.ts +13 -8
  109. package/dist/doctor/db-substrate.d.ts.map +1 -1
  110. package/dist/doctor/db-substrate.js +39 -26
  111. package/dist/doctor/db-substrate.js.map +1 -1
  112. package/dist/doctor/index.d.ts +2 -0
  113. package/dist/doctor/index.d.ts.map +1 -1
  114. package/dist/doctor/index.js +1 -0
  115. package/dist/doctor/index.js.map +1 -1
  116. package/dist/doctor/knowledge.d.ts.map +1 -1
  117. package/dist/doctor/knowledge.js +5 -15
  118. package/dist/doctor/knowledge.js.map +1 -1
  119. package/dist/doctor/nexus-schema-residency.d.ts +1 -1
  120. package/dist/doctor/nexus-schema-residency.d.ts.map +1 -1
  121. package/dist/doctor/nexus-schema-residency.js +3 -0
  122. package/dist/doctor/nexus-schema-residency.js.map +1 -1
  123. package/dist/doctor/project-identity.d.ts +44 -1
  124. package/dist/doctor/project-identity.d.ts.map +1 -1
  125. package/dist/doctor/project-identity.js +237 -10
  126. package/dist/doctor/project-identity.js.map +1 -1
  127. package/dist/doctor/projects.d.ts +170 -0
  128. package/dist/doctor/projects.d.ts.map +1 -0
  129. package/dist/doctor/projects.js +1075 -0
  130. package/dist/doctor/projects.js.map +1 -0
  131. package/dist/doctor/twin-collapse.d.ts +97 -0
  132. package/dist/doctor/twin-collapse.d.ts.map +1 -0
  133. package/dist/doctor/twin-collapse.js +168 -0
  134. package/dist/doctor/twin-collapse.js.map +1 -0
  135. package/dist/doctor/worktree-orphans.d.ts.map +1 -1
  136. package/dist/doctor/worktree-orphans.js +13 -29
  137. package/dist/doctor/worktree-orphans.js.map +1 -1
  138. package/dist/doctor/worktree-stores.d.ts +128 -0
  139. package/dist/doctor/worktree-stores.d.ts.map +1 -0
  140. package/dist/doctor/worktree-stores.js +374 -0
  141. package/dist/doctor/worktree-stores.js.map +1 -0
  142. package/dist/engine/engine-ops.d.ts.map +1 -1
  143. package/dist/engine/engine-ops.js +59 -23
  144. package/dist/engine/engine-ops.js.map +1 -1
  145. package/dist/error-catalog.d.ts.map +1 -1
  146. package/dist/error-catalog.js +21 -0
  147. package/dist/error-catalog.js.map +1 -1
  148. package/dist/error-registry.d.ts.map +1 -1
  149. package/dist/error-registry.js +40 -0
  150. package/dist/error-registry.js.map +1 -1
  151. package/dist/gc/cleanup.d.ts.map +1 -1
  152. package/dist/gc/cleanup.js +32 -19
  153. package/dist/gc/cleanup.js.map +1 -1
  154. package/dist/git/bounded-git.d.ts +170 -0
  155. package/dist/git/bounded-git.d.ts.map +1 -0
  156. package/dist/git/bounded-git.js +371 -0
  157. package/dist/git/bounded-git.js.map +1 -0
  158. package/dist/git/work-tree.d.ts +20 -0
  159. package/dist/git/work-tree.d.ts.map +1 -1
  160. package/dist/git/work-tree.js +20 -2
  161. package/dist/git/work-tree.js.map +1 -1
  162. package/dist/hooks/handlers/session-hooks.d.ts +11 -26
  163. package/dist/hooks/handlers/session-hooks.d.ts.map +1 -1
  164. package/dist/hooks/handlers/session-hooks.js +18 -47
  165. package/dist/hooks/handlers/session-hooks.js.map +1 -1
  166. package/dist/hooks/payload-schemas.d.ts +2 -2
  167. package/dist/index.d.ts +6 -5
  168. package/dist/index.d.ts.map +1 -1
  169. package/dist/index.js +5 -3
  170. package/dist/index.js.map +1 -1
  171. package/dist/init/engine-ops.d.ts.map +1 -1
  172. package/dist/init/engine-ops.js +23 -1
  173. package/dist/init/engine-ops.js.map +1 -1
  174. package/dist/init.d.ts +158 -1
  175. package/dist/init.d.ts.map +1 -1
  176. package/dist/init.js +535 -44
  177. package/dist/init.js.map +1 -1
  178. package/dist/injection.d.ts +55 -0
  179. package/dist/injection.d.ts.map +1 -1
  180. package/dist/injection.js +102 -6
  181. package/dist/injection.js.map +1 -1
  182. package/dist/internal.d.ts +9 -5
  183. package/dist/internal.d.ts.map +1 -1
  184. package/dist/internal.js +8 -4
  185. package/dist/internal.js.map +1 -1
  186. package/dist/issue/diagnostics.d.ts.map +1 -1
  187. package/dist/issue/diagnostics.js +2 -1
  188. package/dist/issue/diagnostics.js.map +1 -1
  189. package/dist/lib/concurrency.d.ts +25 -0
  190. package/dist/lib/concurrency.d.ts.map +1 -0
  191. package/dist/lib/concurrency.js +43 -0
  192. package/dist/lib/concurrency.js.map +1 -0
  193. package/dist/lib/index.d.ts +1 -0
  194. package/dist/lib/index.d.ts.map +1 -1
  195. package/dist/lib/index.js +1 -0
  196. package/dist/lib/index.js.map +1 -1
  197. package/dist/lifecycle/engine-ops.d.ts.map +1 -1
  198. package/dist/lifecycle/engine-ops.js +4 -2
  199. package/dist/lifecycle/engine-ops.js.map +1 -1
  200. package/dist/lifecycle/stage-guidance.d.ts +5 -0
  201. package/dist/lifecycle/stage-guidance.d.ts.map +1 -1
  202. package/dist/lifecycle/stage-guidance.js +14 -4
  203. package/dist/lifecycle/stage-guidance.js.map +1 -1
  204. package/dist/llm/catalog-cache.d.ts +3 -2
  205. package/dist/llm/catalog-cache.d.ts.map +1 -1
  206. package/dist/llm/catalog-cache.js +5 -5
  207. package/dist/llm/catalog-cache.js.map +1 -1
  208. package/dist/llm/credentials.d.ts +4 -4
  209. package/dist/llm/credentials.js +6 -6
  210. package/dist/llm/credentials.js.map +1 -1
  211. package/dist/llm/plugin-facade.js +4312 -1798
  212. package/dist/llm/plugin-facade.js.map +3 -3
  213. package/dist/llm/stable-device-id.d.ts.map +1 -1
  214. package/dist/llm/stable-device-id.js +3 -5
  215. package/dist/llm/stable-device-id.js.map +1 -1
  216. package/dist/memory/attention.d.ts.map +1 -1
  217. package/dist/memory/attention.js +30 -30
  218. package/dist/memory/attention.js.map +1 -1
  219. package/dist/memory/decision-contradiction.d.ts +152 -0
  220. package/dist/memory/decision-contradiction.d.ts.map +1 -0
  221. package/dist/memory/decision-contradiction.js +273 -0
  222. package/dist/memory/decision-contradiction.js.map +1 -0
  223. package/dist/memory/decisions.d.ts +42 -11
  224. package/dist/memory/decisions.d.ts.map +1 -1
  225. package/dist/memory/decisions.js +153 -56
  226. package/dist/memory/decisions.js.map +1 -1
  227. package/dist/memory/dialectic-evaluator.d.ts +7 -0
  228. package/dist/memory/dialectic-evaluator.d.ts.map +1 -1
  229. package/dist/memory/dialectic-evaluator.js +23 -8
  230. package/dist/memory/dialectic-evaluator.js.map +1 -1
  231. package/dist/memory/dispatch-trace-format.d.ts +39 -0
  232. package/dist/memory/dispatch-trace-format.d.ts.map +1 -0
  233. package/dist/memory/dispatch-trace-format.js +54 -0
  234. package/dist/memory/dispatch-trace-format.js.map +1 -0
  235. package/dist/memory/dispatch-trace.d.ts.map +1 -1
  236. package/dist/memory/dispatch-trace.js +1 -27
  237. package/dist/memory/dispatch-trace.js.map +1 -1
  238. package/dist/memory/engine-compat.d.ts +2 -0
  239. package/dist/memory/engine-compat.d.ts.map +1 -1
  240. package/dist/memory/engine-compat.js +1 -0
  241. package/dist/memory/engine-compat.js.map +1 -1
  242. package/dist/memory/import-from-provider.js +3 -3
  243. package/dist/memory/import-from-provider.js.map +1 -1
  244. package/dist/memory/learnings.d.ts +2 -2
  245. package/dist/memory/observation-type-decision.d.ts +96 -0
  246. package/dist/memory/observation-type-decision.d.ts.map +1 -0
  247. package/dist/memory/observation-type-decision.js +218 -0
  248. package/dist/memory/observation-type-decision.js.map +1 -0
  249. package/dist/memory/redaction.js +2 -0
  250. package/dist/memory/redaction.js.map +1 -1
  251. package/dist/memory/retrieval/build-retrieval-bundle.d.ts +9 -2
  252. package/dist/memory/retrieval/build-retrieval-bundle.d.ts.map +1 -1
  253. package/dist/memory/retrieval/build-retrieval-bundle.js +42 -11
  254. package/dist/memory/retrieval/build-retrieval-bundle.js.map +1 -1
  255. package/dist/memory/retrieval/get-current-session-id.d.ts +5 -0
  256. package/dist/memory/retrieval/get-current-session-id.d.ts.map +1 -1
  257. package/dist/memory/retrieval/get-current-session-id.js +7 -2
  258. package/dist/memory/retrieval/get-current-session-id.js.map +1 -1
  259. package/dist/memory/retrieval/observe.d.ts.map +1 -1
  260. package/dist/memory/retrieval/observe.js +30 -29
  261. package/dist/memory/retrieval/observe.js.map +1 -1
  262. package/dist/nexus/analyze-orchestrator.d.ts.map +1 -1
  263. package/dist/nexus/analyze-orchestrator.js +42 -29
  264. package/dist/nexus/analyze-orchestrator.js.map +1 -1
  265. package/dist/nexus/assessment-projection.d.ts +76 -0
  266. package/dist/nexus/assessment-projection.d.ts.map +1 -0
  267. package/dist/nexus/assessment-projection.js +143 -0
  268. package/dist/nexus/assessment-projection.js.map +1 -0
  269. package/dist/nexus/assessment-store.d.ts +14 -2
  270. package/dist/nexus/assessment-store.d.ts.map +1 -1
  271. package/dist/nexus/assessment-store.js +21 -3
  272. package/dist/nexus/assessment-store.js.map +1 -1
  273. package/dist/nexus/checkout-nonce.d.ts +48 -0
  274. package/dist/nexus/checkout-nonce.d.ts.map +1 -0
  275. package/dist/nexus/checkout-nonce.js +84 -0
  276. package/dist/nexus/checkout-nonce.js.map +1 -0
  277. package/dist/nexus/devices.d.ts +93 -0
  278. package/dist/nexus/devices.d.ts.map +1 -0
  279. package/dist/nexus/devices.js +141 -0
  280. package/dist/nexus/devices.js.map +1 -0
  281. package/dist/nexus/freshness.d.ts.map +1 -1
  282. package/dist/nexus/freshness.js +25 -6
  283. package/dist/nexus/freshness.js.map +1 -1
  284. package/dist/nexus/git-state.d.ts +225 -0
  285. package/dist/nexus/git-state.d.ts.map +1 -0
  286. package/dist/nexus/git-state.js +677 -0
  287. package/dist/nexus/git-state.js.map +1 -0
  288. package/dist/nexus/graph-manifest.d.ts +20 -4
  289. package/dist/nexus/graph-manifest.d.ts.map +1 -1
  290. package/dist/nexus/graph-manifest.js +40 -5
  291. package/dist/nexus/graph-manifest.js.map +1 -1
  292. package/dist/nexus/identity.d.ts +68 -23
  293. package/dist/nexus/identity.d.ts.map +1 -1
  294. package/dist/nexus/identity.js +99 -22
  295. package/dist/nexus/identity.js.map +1 -1
  296. package/dist/nexus/index.d.ts +5 -2
  297. package/dist/nexus/index.d.ts.map +1 -1
  298. package/dist/nexus/index.js +10 -4
  299. package/dist/nexus/index.js.map +1 -1
  300. package/dist/nexus/knowledge.d.ts +5 -0
  301. package/dist/nexus/knowledge.d.ts.map +1 -1
  302. package/dist/nexus/knowledge.js +26 -2
  303. package/dist/nexus/knowledge.js.map +1 -1
  304. package/dist/nexus/legacy-alias.d.ts +60 -0
  305. package/dist/nexus/legacy-alias.d.ts.map +1 -0
  306. package/dist/nexus/legacy-alias.js +68 -0
  307. package/dist/nexus/legacy-alias.js.map +1 -0
  308. package/dist/nexus/migrate-json-to-sqlite.js +2 -2
  309. package/dist/nexus/migrate-json-to-sqlite.js.map +1 -1
  310. package/dist/nexus/ops.d.ts +1 -0
  311. package/dist/nexus/ops.d.ts.map +1 -1
  312. package/dist/nexus/path-map.d.ts +264 -20
  313. package/dist/nexus/path-map.d.ts.map +1 -1
  314. package/dist/nexus/path-map.js +580 -44
  315. package/dist/nexus/path-map.js.map +1 -1
  316. package/dist/nexus/projects-clean.d.ts +9 -1
  317. package/dist/nexus/projects-clean.d.ts.map +1 -1
  318. package/dist/nexus/projects-clean.js +126 -14
  319. package/dist/nexus/projects-clean.js.map +1 -1
  320. package/dist/nexus/projects-scan.d.ts +56 -1
  321. package/dist/nexus/projects-scan.d.ts.map +1 -1
  322. package/dist/nexus/projects-scan.js +144 -3
  323. package/dist/nexus/projects-scan.js.map +1 -1
  324. package/dist/nexus/registry-hygiene.d.ts +18 -2
  325. package/dist/nexus/registry-hygiene.d.ts.map +1 -1
  326. package/dist/nexus/registry-hygiene.js +37 -11
  327. package/dist/nexus/registry-hygiene.js.map +1 -1
  328. package/dist/nexus/registry-roots.d.ts +47 -0
  329. package/dist/nexus/registry-roots.d.ts.map +1 -0
  330. package/dist/nexus/registry-roots.js +79 -0
  331. package/dist/nexus/registry-roots.js.map +1 -0
  332. package/dist/nexus/registry.d.ts +50 -9
  333. package/dist/nexus/registry.d.ts.map +1 -1
  334. package/dist/nexus/registry.js +311 -156
  335. package/dist/nexus/registry.js.map +1 -1
  336. package/dist/nexus/stored-roots.d.ts +106 -0
  337. package/dist/nexus/stored-roots.d.ts.map +1 -0
  338. package/dist/nexus/stored-roots.js +180 -0
  339. package/dist/nexus/stored-roots.js.map +1 -0
  340. package/dist/nexus/transfer.d.ts.map +1 -1
  341. package/dist/nexus/transfer.js +3 -0
  342. package/dist/nexus/transfer.js.map +1 -1
  343. package/dist/nexus/user-profile-hygiene.d.ts +168 -0
  344. package/dist/nexus/user-profile-hygiene.d.ts.map +1 -0
  345. package/dist/nexus/user-profile-hygiene.js +305 -0
  346. package/dist/nexus/user-profile-hygiene.js.map +1 -0
  347. package/dist/nexus/user-profile.d.ts +53 -2
  348. package/dist/nexus/user-profile.d.ts.map +1 -1
  349. package/dist/nexus/user-profile.js +106 -4
  350. package/dist/nexus/user-profile.js.map +1 -1
  351. package/dist/orchestrate/pivot.d.ts.map +1 -1
  352. package/dist/orchestrate/pivot.js +5 -1
  353. package/dist/orchestrate/pivot.js.map +1 -1
  354. package/dist/orchestrate/spawn-ops.d.ts +12 -0
  355. package/dist/orchestrate/spawn-ops.d.ts.map +1 -1
  356. package/dist/orchestrate/spawn-ops.js +152 -57
  357. package/dist/orchestrate/spawn-ops.js.map +1 -1
  358. package/dist/orchestration/classify-readiness.d.ts +37 -1
  359. package/dist/orchestration/classify-readiness.d.ts.map +1 -1
  360. package/dist/orchestration/classify-readiness.js +48 -19
  361. package/dist/orchestration/classify-readiness.js.map +1 -1
  362. package/dist/orchestration/index.d.ts +3 -2
  363. package/dist/orchestration/index.d.ts.map +1 -1
  364. package/dist/orchestration/index.js +2 -1
  365. package/dist/orchestration/index.js.map +1 -1
  366. package/dist/orchestration/owner-decision-readiness.d.ts +88 -0
  367. package/dist/orchestration/owner-decision-readiness.d.ts.map +1 -0
  368. package/dist/orchestration/owner-decision-readiness.js +152 -0
  369. package/dist/orchestration/owner-decision-readiness.js.map +1 -0
  370. package/dist/orchestration/psyche-memory-budget.d.ts +105 -0
  371. package/dist/orchestration/psyche-memory-budget.d.ts.map +1 -0
  372. package/dist/orchestration/psyche-memory-budget.js +383 -0
  373. package/dist/orchestration/psyche-memory-budget.js.map +1 -0
  374. package/dist/orchestration/spawn-prompt.d.ts +12 -1
  375. package/dist/orchestration/spawn-prompt.d.ts.map +1 -1
  376. package/dist/orchestration/spawn-prompt.js +141 -179
  377. package/dist/orchestration/spawn-prompt.js.map +1 -1
  378. package/dist/orchestration/spawn.d.ts +7 -0
  379. package/dist/orchestration/spawn.d.ts.map +1 -1
  380. package/dist/orchestration/spawn.js +1 -0
  381. package/dist/orchestration/spawn.js.map +1 -1
  382. package/dist/paths.d.ts +24 -8
  383. package/dist/paths.d.ts.map +1 -1
  384. package/dist/paths.js +135 -71
  385. package/dist/paths.js.map +1 -1
  386. package/dist/platform.d.ts +6 -1
  387. package/dist/platform.d.ts.map +1 -1
  388. package/dist/platform.js +8 -19
  389. package/dist/platform.js.map +1 -1
  390. package/dist/project-info.d.ts +18 -0
  391. package/dist/project-info.d.ts.map +1 -1
  392. package/dist/project-info.js +29 -1
  393. package/dist/project-info.js.map +1 -1
  394. package/dist/project-lifecycle.d.ts +91 -32
  395. package/dist/project-lifecycle.d.ts.map +1 -1
  396. package/dist/project-lifecycle.js +639 -75
  397. package/dist/project-lifecycle.js.map +1 -1
  398. package/dist/project-scope.d.ts +86 -4
  399. package/dist/project-scope.d.ts.map +1 -1
  400. package/dist/project-scope.js +226 -13
  401. package/dist/project-scope.js.map +1 -1
  402. package/dist/project-tombstone.d.ts +111 -0
  403. package/dist/project-tombstone.d.ts.map +1 -0
  404. package/dist/project-tombstone.js +220 -0
  405. package/dist/project-tombstone.js.map +1 -0
  406. package/dist/release/artifacts.d.ts.map +1 -1
  407. package/dist/release/artifacts.js +14 -9
  408. package/dist/release/artifacts.js.map +1 -1
  409. package/dist/release/ci-evidence.d.ts +223 -0
  410. package/dist/release/ci-evidence.d.ts.map +1 -0
  411. package/dist/release/ci-evidence.js +652 -0
  412. package/dist/release/ci-evidence.js.map +1 -0
  413. package/dist/release/engine-ops.d.ts.map +1 -1
  414. package/dist/release/engine-ops.js +3 -3
  415. package/dist/release/engine-ops.js.map +1 -1
  416. package/dist/release/plan.d.ts.map +1 -1
  417. package/dist/release/plan.js +7 -6
  418. package/dist/release/plan.js.map +1 -1
  419. package/dist/release/pr-evidence.d.ts +38 -0
  420. package/dist/release/pr-evidence.d.ts.map +1 -1
  421. package/dist/release/pr-evidence.js +67 -11
  422. package/dist/release/pr-evidence.js.map +1 -1
  423. package/dist/release/reconcile.d.ts.map +1 -1
  424. package/dist/release/reconcile.js +3 -2
  425. package/dist/release/reconcile.js.map +1 -1
  426. package/dist/release/release-manifest.d.ts +2 -1
  427. package/dist/release/release-manifest.d.ts.map +1 -1
  428. package/dist/release/release-manifest.js +6 -5
  429. package/dist/release/release-manifest.js.map +1 -1
  430. package/dist/render/nexus/graph/index.d.ts +4 -0
  431. package/dist/render/nexus/graph/index.d.ts.map +1 -1
  432. package/dist/render/nexus/graph/index.js +57 -0
  433. package/dist/render/nexus/graph/index.js.map +1 -1
  434. package/dist/resources/spawn-wrapper.d.ts +8 -1
  435. package/dist/resources/spawn-wrapper.d.ts.map +1 -1
  436. package/dist/resources/spawn-wrapper.js +42 -5
  437. package/dist/resources/spawn-wrapper.js.map +1 -1
  438. package/dist/routing/build-command-groups.d.ts.map +1 -1
  439. package/dist/routing/build-command-groups.js +1 -0
  440. package/dist/routing/build-command-groups.js.map +1 -1
  441. package/dist/sagas/index.d.ts +1 -1
  442. package/dist/sagas/index.d.ts.map +1 -1
  443. package/dist/sagas/index.js +1 -1
  444. package/dist/sagas/index.js.map +1 -1
  445. package/dist/sagas/reconcile.d.ts +24 -4
  446. package/dist/sagas/reconcile.d.ts.map +1 -1
  447. package/dist/sagas/reconcile.js +226 -100
  448. package/dist/sagas/reconcile.js.map +1 -1
  449. package/dist/scaffold/ensure-config.d.ts.map +1 -1
  450. package/dist/scaffold/ensure-config.js +31 -1
  451. package/dist/scaffold/ensure-config.js.map +1 -1
  452. package/dist/scaffold/project-identity.d.ts +2 -8
  453. package/dist/scaffold/project-identity.d.ts.map +1 -1
  454. package/dist/scaffold/project-identity.js +5 -21
  455. package/dist/scaffold/project-identity.js.map +1 -1
  456. package/dist/security/input-sanitization.d.ts +9 -1
  457. package/dist/security/input-sanitization.d.ts.map +1 -1
  458. package/dist/security/input-sanitization.js +12 -2
  459. package/dist/security/input-sanitization.js.map +1 -1
  460. package/dist/selfimprove/fix-gen.js +4321 -1807
  461. package/dist/selfimprove/fix-gen.js.map +3 -3
  462. package/dist/sentient/propose-tick.d.ts.map +1 -1
  463. package/dist/sentient/propose-tick.js +4 -2
  464. package/dist/sentient/propose-tick.js.map +1 -1
  465. package/dist/sequence/index.d.ts.map +1 -1
  466. package/dist/sequence/index.js +6 -23
  467. package/dist/sequence/index.js.map +1 -1
  468. package/dist/session/engine-ops.d.ts +9 -0
  469. package/dist/session/engine-ops.d.ts.map +1 -1
  470. package/dist/session/engine-ops.js +110 -18
  471. package/dist/session/engine-ops.js.map +1 -1
  472. package/dist/sessions/assumptions.d.ts.map +1 -1
  473. package/dist/sessions/assumptions.js +7 -4
  474. package/dist/sessions/assumptions.js.map +1 -1
  475. package/dist/sessions/briefing.d.ts +6 -0
  476. package/dist/sessions/briefing.d.ts.map +1 -1
  477. package/dist/sessions/briefing.js +12 -1
  478. package/dist/sessions/briefing.js.map +1 -1
  479. package/dist/sessions/decisions.d.ts +38 -3
  480. package/dist/sessions/decisions.d.ts.map +1 -1
  481. package/dist/sessions/decisions.js +235 -21
  482. package/dist/sessions/decisions.js.map +1 -1
  483. package/dist/sessions/drift-watchdog.d.ts.map +1 -1
  484. package/dist/sessions/drift-watchdog.js +4 -2
  485. package/dist/sessions/drift-watchdog.js.map +1 -1
  486. package/dist/sessions/index.d.ts.map +1 -1
  487. package/dist/sessions/index.js +33 -4
  488. package/dist/sessions/index.js.map +1 -1
  489. package/dist/sessions/session-end-snapshot-entry.d.ts +26 -0
  490. package/dist/sessions/session-end-snapshot-entry.d.ts.map +1 -0
  491. package/dist/sessions/session-end-snapshot-entry.js +59 -0
  492. package/dist/sessions/session-end-snapshot-entry.js.map +1 -0
  493. package/dist/sessions/session-end-snapshot.d.ts +114 -0
  494. package/dist/sessions/session-end-snapshot.d.ts.map +1 -0
  495. package/dist/sessions/session-end-snapshot.js +446 -0
  496. package/dist/sessions/session-end-snapshot.js.map +1 -0
  497. package/dist/sessions/session-manifest-mirror.d.ts.map +1 -1
  498. package/dist/sessions/session-manifest-mirror.js +10 -17
  499. package/dist/sessions/session-manifest-mirror.js.map +1 -1
  500. package/dist/sessions/session-switch.d.ts.map +1 -1
  501. package/dist/sessions/session-switch.js +5 -3
  502. package/dist/sessions/session-switch.js.map +1 -1
  503. package/dist/sessions/snapshot.d.ts.map +1 -1
  504. package/dist/sessions/snapshot.js +5 -4
  505. package/dist/sessions/snapshot.js.map +1 -1
  506. package/dist/sessions/terminal-identity.d.ts +169 -0
  507. package/dist/sessions/terminal-identity.d.ts.map +1 -0
  508. package/dist/sessions/terminal-identity.js +273 -0
  509. package/dist/sessions/terminal-identity.js.map +1 -0
  510. package/dist/setup/sections/verification.d.ts +1 -1
  511. package/dist/setup/sections/verification.d.ts.map +1 -1
  512. package/dist/setup/sections/verification.js +11 -15
  513. package/dist/setup/sections/verification.js.map +1 -1
  514. package/dist/skills/discovery.d.ts +8 -2
  515. package/dist/skills/discovery.d.ts.map +1 -1
  516. package/dist/skills/discovery.js +15 -3
  517. package/dist/skills/discovery.js.map +1 -1
  518. package/dist/skills/dispatch.d.ts +5 -2
  519. package/dist/skills/dispatch.d.ts.map +1 -1
  520. package/dist/skills/dispatch.js +5 -2
  521. package/dist/skills/dispatch.js.map +1 -1
  522. package/dist/skills/doctor.d.ts.map +1 -1
  523. package/dist/skills/doctor.js +5 -1
  524. package/dist/skills/doctor.js.map +1 -1
  525. package/dist/skills/federated-search.js +2 -2
  526. package/dist/skills/federated-search.js.map +1 -1
  527. package/dist/skills/index.d.ts +3 -3
  528. package/dist/skills/index.d.ts.map +1 -1
  529. package/dist/skills/index.js +1 -1
  530. package/dist/skills/index.js.map +1 -1
  531. package/dist/skills/install.d.ts +15 -2
  532. package/dist/skills/install.d.ts.map +1 -1
  533. package/dist/skills/install.js +21 -5
  534. package/dist/skills/install.js.map +1 -1
  535. package/dist/skills/migration.d.ts +5 -5
  536. package/dist/skills/migration.d.ts.map +1 -1
  537. package/dist/skills/migration.js +7 -9
  538. package/dist/skills/migration.js.map +1 -1
  539. package/dist/skills/orchestrator/startup.d.ts.map +1 -1
  540. package/dist/skills/orchestrator/startup.js +4 -2
  541. package/dist/skills/orchestrator/startup.js.map +1 -1
  542. package/dist/skills/skill-paths.d.ts +30 -3
  543. package/dist/skills/skill-paths.d.ts.map +1 -1
  544. package/dist/skills/skill-paths.js +28 -9
  545. package/dist/skills/skill-paths.js.map +1 -1
  546. package/dist/skills/skill-root.d.ts +60 -11
  547. package/dist/skills/skill-root.d.ts.map +1 -1
  548. package/dist/skills/skill-root.js +100 -14
  549. package/dist/skills/skill-root.js.map +1 -1
  550. package/dist/skills/skills-guard.js +5 -5
  551. package/dist/skills/skills-guard.js.map +1 -1
  552. package/dist/skills/types.d.ts +23 -0
  553. package/dist/skills/types.d.ts.map +1 -1
  554. package/dist/skills/types.js.map +1 -1
  555. package/dist/spawn/agent-identity.d.ts +51 -2
  556. package/dist/spawn/agent-identity.d.ts.map +1 -1
  557. package/dist/spawn/agent-identity.js +89 -26
  558. package/dist/spawn/agent-identity.js.map +1 -1
  559. package/dist/spawn/branch-lock.d.ts.map +1 -1
  560. package/dist/spawn/branch-lock.js +56 -79
  561. package/dist/spawn/branch-lock.js.map +1 -1
  562. package/dist/spawn/index.d.ts +2 -2
  563. package/dist/spawn/index.d.ts.map +1 -1
  564. package/dist/spawn/index.js +1 -1
  565. package/dist/spawn/index.js.map +1 -1
  566. package/dist/spawn/worktree-lock-holder.d.ts +37 -0
  567. package/dist/spawn/worktree-lock-holder.d.ts.map +1 -0
  568. package/dist/spawn/worktree-lock-holder.js +41 -0
  569. package/dist/spawn/worktree-lock-holder.js.map +1 -0
  570. package/dist/sticky/convert.d.ts.map +1 -1
  571. package/dist/sticky/convert.js +16 -4
  572. package/dist/sticky/convert.js.map +1 -1
  573. package/dist/store/attachment-store.d.ts +14 -0
  574. package/dist/store/attachment-store.d.ts.map +1 -1
  575. package/dist/store/attachment-store.js +11 -1
  576. package/dist/store/attachment-store.js.map +1 -1
  577. package/dist/store/backup-inspect.d.ts +7 -3
  578. package/dist/store/backup-inspect.d.ts.map +1 -1
  579. package/dist/store/backup-inspect.js +18 -7
  580. package/dist/store/backup-inspect.js.map +1 -1
  581. package/dist/store/backup-sidecar.d.ts +60 -0
  582. package/dist/store/backup-sidecar.d.ts.map +1 -0
  583. package/dist/store/backup-sidecar.js +96 -0
  584. package/dist/store/backup-sidecar.js.map +1 -0
  585. package/dist/store/data-accessor.d.ts +1 -1
  586. package/dist/store/data-accessor.d.ts.map +1 -1
  587. package/dist/store/data-accessor.js +6 -6
  588. package/dist/store/data-accessor.js.map +1 -1
  589. package/dist/store/data-safety-central.d.ts +13 -4
  590. package/dist/store/data-safety-central.d.ts.map +1 -1
  591. package/dist/store/data-safety-central.js +31 -4
  592. package/dist/store/data-safety-central.js.map +1 -1
  593. package/dist/store/dual-scope-db.d.ts.map +1 -1
  594. package/dist/store/dual-scope-db.js +10 -0
  595. package/dist/store/dual-scope-db.js.map +1 -1
  596. package/dist/store/exodus/__fixtures__/representative-fixture.d.ts.map +1 -1
  597. package/dist/store/exodus/__fixtures__/representative-fixture.js +4 -0
  598. package/dist/store/exodus/__fixtures__/representative-fixture.js.map +1 -1
  599. package/dist/store/exodus/migrate.js +1 -1
  600. package/dist/store/exodus/migrate.js.map +1 -1
  601. package/dist/store/exodus/reconcile.js +1 -1
  602. package/dist/store/exodus/reconcile.js.map +1 -1
  603. package/dist/store/exodus/runtime-targets.d.ts +4 -3
  604. package/dist/store/exodus/runtime-targets.d.ts.map +1 -1
  605. package/dist/store/exodus/runtime-targets.js +4 -3
  606. package/dist/store/exodus/runtime-targets.js.map +1 -1
  607. package/dist/store/import-logging.d.ts.map +1 -1
  608. package/dist/store/import-logging.js +5 -4
  609. package/dist/store/import-logging.js.map +1 -1
  610. package/dist/store/legacy-tasks-lineage.d.ts.map +1 -1
  611. package/dist/store/legacy-tasks-lineage.js +2 -7
  612. package/dist/store/legacy-tasks-lineage.js.map +1 -1
  613. package/dist/store/lock.d.ts +1 -0
  614. package/dist/store/lock.d.ts.map +1 -1
  615. package/dist/store/lock.js +1 -0
  616. package/dist/store/lock.js.map +1 -1
  617. package/dist/store/memory-accessor.d.ts +8 -3
  618. package/dist/store/memory-accessor.d.ts.map +1 -1
  619. package/dist/store/memory-accessor.js +29 -13
  620. package/dist/store/memory-accessor.js.map +1 -1
  621. package/dist/store/memory-sqlite.d.ts.map +1 -1
  622. package/dist/store/memory-sqlite.js +5 -0
  623. package/dist/store/memory-sqlite.js.map +1 -1
  624. package/dist/store/open-cleo-db.d.ts.map +1 -1
  625. package/dist/store/open-cleo-db.js +11 -6
  626. package/dist/store/open-cleo-db.js.map +1 -1
  627. package/dist/store/portable-bundle-relocate.d.ts +13 -8
  628. package/dist/store/portable-bundle-relocate.d.ts.map +1 -1
  629. package/dist/store/portable-bundle-relocate.js +75 -31
  630. package/dist/store/portable-bundle-relocate.js.map +1 -1
  631. package/dist/store/portable-bundle-scan.d.ts.map +1 -1
  632. package/dist/store/portable-bundle-scan.js +2 -1
  633. package/dist/store/portable-bundle-scan.js.map +1 -1
  634. package/dist/store/portable-bundle.d.ts.map +1 -1
  635. package/dist/store/portable-bundle.js +7 -3
  636. package/dist/store/portable-bundle.js.map +1 -1
  637. package/dist/store/pre-repair-snapshot.d.ts +77 -0
  638. package/dist/store/pre-repair-snapshot.d.ts.map +1 -0
  639. package/dist/store/pre-repair-snapshot.js +122 -0
  640. package/dist/store/pre-repair-snapshot.js.map +1 -0
  641. package/dist/store/regenerators.d.ts +2 -1
  642. package/dist/store/regenerators.d.ts.map +1 -1
  643. package/dist/store/regenerators.js +17 -3
  644. package/dist/store/regenerators.js.map +1 -1
  645. package/dist/store/relocated-store-guard.d.ts +71 -0
  646. package/dist/store/relocated-store-guard.d.ts.map +1 -0
  647. package/dist/store/relocated-store-guard.js +138 -0
  648. package/dist/store/relocated-store-guard.js.map +1 -0
  649. package/dist/store/safety-data-accessor.d.ts +2 -2
  650. package/dist/store/safety-data-accessor.d.ts.map +1 -1
  651. package/dist/store/safety-data-accessor.js +2 -2
  652. package/dist/store/safety-data-accessor.js.map +1 -1
  653. package/dist/store/schema/attachments.d.ts +2 -2
  654. package/dist/store/schema/audit.d.ts +5 -5
  655. package/dist/store/schema/background-jobs.d.ts +1 -1
  656. package/dist/store/schema/cleo-global/models-catalog.d.ts +1 -1
  657. package/dist/store/schema/cleo-global/nexus.d.ts +686 -0
  658. package/dist/store/schema/cleo-global/nexus.d.ts.map +1 -1
  659. package/dist/store/schema/cleo-global/nexus.js +175 -7
  660. package/dist/store/schema/cleo-global/nexus.js.map +1 -1
  661. package/dist/store/schema/cleo-global/skills.d.ts +2 -2
  662. package/dist/store/schema/cleo-project/audit.d.ts +5 -5
  663. package/dist/store/schema/cleo-project/docs.d.ts +3 -3
  664. package/dist/store/schema/cleo-project/lifecycle.d.ts +3 -3
  665. package/dist/store/schema/cleo-project/provenance-commits.d.ts +2 -2
  666. package/dist/store/schema/cleo-project/provenance-rest.d.ts +3 -3
  667. package/dist/store/schema/cleo-project/tasks-core-batch2.d.ts +1 -1
  668. package/dist/store/schema/cleo-project/tasks-core.d.ts +6 -6
  669. package/dist/store/schema/cleo-shared/brain.d.ts +26 -26
  670. package/dist/store/schema/lifecycle.d.ts +3 -3
  671. package/dist/store/schema/manifest.d.ts +1 -1
  672. package/dist/store/schema/memory-schema.d.ts +26 -26
  673. package/dist/store/schema/nexus-schema.d.ts +696 -2
  674. package/dist/store/schema/nexus-schema.d.ts.map +1 -1
  675. package/dist/store/schema/nexus-schema.js +175 -19
  676. package/dist/store/schema/nexus-schema.js.map +1 -1
  677. package/dist/store/schema/provenance/releases.d.ts +1 -1
  678. package/dist/store/schema/skills-schema.d.ts +2 -2
  679. package/dist/store/schema/tasks.d.ts +5 -5
  680. package/dist/store/session-binding-schema.d.ts +132 -0
  681. package/dist/store/session-binding-schema.d.ts.map +1 -0
  682. package/dist/store/session-binding-schema.js +53 -0
  683. package/dist/store/session-binding-schema.js.map +1 -0
  684. package/dist/store/session-store.d.ts +262 -4
  685. package/dist/store/session-store.d.ts.map +1 -1
  686. package/dist/store/session-store.js +486 -26
  687. package/dist/store/session-store.js.map +1 -1
  688. package/dist/store/snapshot-gate.d.ts +239 -0
  689. package/dist/store/snapshot-gate.d.ts.map +1 -0
  690. package/dist/store/snapshot-gate.js +398 -0
  691. package/dist/store/snapshot-gate.js.map +1 -0
  692. package/dist/store/split-brain-import.js +2 -2
  693. package/dist/store/split-brain-import.js.map +1 -1
  694. package/dist/store/sqlite-backup.d.ts +55 -13
  695. package/dist/store/sqlite-backup.d.ts.map +1 -1
  696. package/dist/store/sqlite-backup.js +414 -106
  697. package/dist/store/sqlite-backup.js.map +1 -1
  698. package/dist/store/sqlite-data-accessor.d.ts +15 -0
  699. package/dist/store/sqlite-data-accessor.d.ts.map +1 -1
  700. package/dist/store/sqlite-data-accessor.js +63 -4
  701. package/dist/store/sqlite-data-accessor.js.map +1 -1
  702. package/dist/store/sqlite.d.ts +1 -1
  703. package/dist/store/sqlite.d.ts.map +1 -1
  704. package/dist/store/sqlite.js +53 -5
  705. package/dist/store/sqlite.js.map +1 -1
  706. package/dist/store/store-write-guard.d.ts +28 -0
  707. package/dist/store/store-write-guard.d.ts.map +1 -0
  708. package/dist/store/store-write-guard.js +50 -0
  709. package/dist/store/store-write-guard.js.map +1 -0
  710. package/dist/store/table-classification.d.ts +143 -0
  711. package/dist/store/table-classification.d.ts.map +1 -0
  712. package/dist/store/table-classification.js +1866 -0
  713. package/dist/store/table-classification.js.map +1 -0
  714. package/dist/store/task-version.d.ts +72 -0
  715. package/dist/store/task-version.d.ts.map +1 -0
  716. package/dist/store/task-version.js +93 -0
  717. package/dist/store/task-version.js.map +1 -0
  718. package/dist/store/tasks-schema.d.ts +1 -0
  719. package/dist/store/tasks-schema.d.ts.map +1 -1
  720. package/dist/store/tasks-schema.js +13 -0
  721. package/dist/store/tasks-schema.js.map +1 -1
  722. package/dist/store/tasks-sqlite.d.ts +10 -3
  723. package/dist/store/tasks-sqlite.d.ts.map +1 -1
  724. package/dist/store/tasks-sqlite.js +12 -3
  725. package/dist/store/tasks-sqlite.js.map +1 -1
  726. package/dist/store/twin-collapse.d.ts +275 -0
  727. package/dist/store/twin-collapse.d.ts.map +1 -0
  728. package/dist/store/twin-collapse.js +805 -0
  729. package/dist/store/twin-collapse.js.map +1 -0
  730. package/dist/store/umbrella-data-accessor.d.ts +2 -2
  731. package/dist/store/umbrella-data-accessor.d.ts.map +1 -1
  732. package/dist/store/umbrella-data-accessor.js +2 -2
  733. package/dist/store/umbrella-data-accessor.js.map +1 -1
  734. package/dist/store/validation-schemas.d.ts +63 -63
  735. package/dist/store/worktree-isolation-guard.d.ts +46 -24
  736. package/dist/store/worktree-isolation-guard.d.ts.map +1 -1
  737. package/dist/store/worktree-isolation-guard.js +69 -50
  738. package/dist/store/worktree-isolation-guard.js.map +1 -1
  739. package/dist/system/backup.d.ts.map +1 -1
  740. package/dist/system/backup.js +3 -67
  741. package/dist/system/backup.js.map +1 -1
  742. package/dist/system/cleo-link.d.ts +163 -0
  743. package/dist/system/cleo-link.d.ts.map +1 -0
  744. package/dist/system/cleo-link.js +246 -0
  745. package/dist/system/cleo-link.js.map +1 -0
  746. package/dist/system/dependencies.d.ts.map +1 -1
  747. package/dist/system/dependencies.js +26 -41
  748. package/dist/system/dependencies.js.map +1 -1
  749. package/dist/system/global-delivery.d.ts +205 -0
  750. package/dist/system/global-delivery.d.ts.map +1 -0
  751. package/dist/system/global-delivery.js +320 -0
  752. package/dist/system/global-delivery.js.map +1 -0
  753. package/dist/system/health.d.ts.map +1 -1
  754. package/dist/system/health.js +29 -6
  755. package/dist/system/health.js.map +1 -1
  756. package/dist/system/project-health.d.ts.map +1 -1
  757. package/dist/system/project-health.js +1 -20
  758. package/dist/system/project-health.js.map +1 -1
  759. package/dist/system/runtime.d.ts.map +1 -1
  760. package/dist/system/runtime.js +2 -12
  761. package/dist/system/runtime.js.map +1 -1
  762. package/dist/system/safestop.d.ts.map +1 -1
  763. package/dist/system/safestop.js +5 -2
  764. package/dist/system/safestop.js.map +1 -1
  765. package/dist/system/skill-fixtures.d.ts +200 -0
  766. package/dist/system/skill-fixtures.d.ts.map +1 -0
  767. package/dist/system/skill-fixtures.js +331 -0
  768. package/dist/system/skill-fixtures.js.map +1 -0
  769. package/dist/tasks/add.d.ts.map +1 -1
  770. package/dist/tasks/add.js +4 -2
  771. package/dist/tasks/add.js.map +1 -1
  772. package/dist/tasks/affected-packages.d.ts +173 -0
  773. package/dist/tasks/affected-packages.d.ts.map +1 -0
  774. package/dist/tasks/affected-packages.js +389 -0
  775. package/dist/tasks/affected-packages.js.map +1 -0
  776. package/dist/tasks/change-set.d.ts +151 -0
  777. package/dist/tasks/change-set.d.ts.map +1 -0
  778. package/dist/tasks/change-set.js +634 -0
  779. package/dist/tasks/change-set.js.map +1 -0
  780. package/dist/tasks/complete.d.ts.map +1 -1
  781. package/dist/tasks/complete.js +10 -5
  782. package/dist/tasks/complete.js.map +1 -1
  783. package/dist/tasks/done-plan.d.ts +103 -0
  784. package/dist/tasks/done-plan.d.ts.map +1 -0
  785. package/dist/tasks/done-plan.js +541 -0
  786. package/dist/tasks/done-plan.js.map +1 -0
  787. package/dist/tasks/done-record.d.ts +127 -0
  788. package/dist/tasks/done-record.d.ts.map +1 -0
  789. package/dist/tasks/done-record.js +373 -0
  790. package/dist/tasks/done-record.js.map +1 -0
  791. package/dist/tasks/duplicate-detector.d.ts +68 -11
  792. package/dist/tasks/duplicate-detector.d.ts.map +1 -1
  793. package/dist/tasks/duplicate-detector.js +314 -58
  794. package/dist/tasks/duplicate-detector.js.map +1 -1
  795. package/dist/tasks/evidence-paths.d.ts +78 -0
  796. package/dist/tasks/evidence-paths.d.ts.map +1 -0
  797. package/dist/tasks/evidence-paths.js +150 -0
  798. package/dist/tasks/evidence-paths.js.map +1 -0
  799. package/dist/tasks/evidence.d.ts +55 -0
  800. package/dist/tasks/evidence.d.ts.map +1 -1
  801. package/dist/tasks/evidence.js +223 -26
  802. package/dist/tasks/evidence.js.map +1 -1
  803. package/dist/tasks/gate-preview.d.ts +5 -0
  804. package/dist/tasks/gate-preview.d.ts.map +1 -1
  805. package/dist/tasks/gate-preview.js +25 -21
  806. package/dist/tasks/gate-preview.js.map +1 -1
  807. package/dist/tasks/gate-result-cache.d.ts +205 -0
  808. package/dist/tasks/gate-result-cache.d.ts.map +1 -0
  809. package/dist/tasks/gate-result-cache.js +285 -0
  810. package/dist/tasks/gate-result-cache.js.map +1 -0
  811. package/dist/tasks/gate-runner.d.ts +126 -3
  812. package/dist/tasks/gate-runner.d.ts.map +1 -1
  813. package/dist/tasks/gate-runner.js +483 -28
  814. package/dist/tasks/gate-runner.js.map +1 -1
  815. package/dist/tasks/session-scope.d.ts +3 -1
  816. package/dist/tasks/session-scope.d.ts.map +1 -1
  817. package/dist/tasks/session-scope.js +18 -3
  818. package/dist/tasks/session-scope.js.map +1 -1
  819. package/dist/tasks/tool-resolver.d.ts +23 -6
  820. package/dist/tasks/tool-resolver.d.ts.map +1 -1
  821. package/dist/tasks/tool-resolver.js +146 -8
  822. package/dist/tasks/tool-resolver.js.map +1 -1
  823. package/dist/tasks/tool-vacuity.d.ts +71 -0
  824. package/dist/tasks/tool-vacuity.d.ts.map +1 -0
  825. package/dist/tasks/tool-vacuity.js +334 -0
  826. package/dist/tasks/tool-vacuity.js.map +1 -0
  827. package/dist/tasks/update.d.ts +8 -0
  828. package/dist/tasks/update.d.ts.map +1 -1
  829. package/dist/tasks/update.js +159 -78
  830. package/dist/tasks/update.js.map +1 -1
  831. package/dist/upgrade.d.ts.map +1 -1
  832. package/dist/upgrade.js +18 -2
  833. package/dist/upgrade.js.map +1 -1
  834. package/dist/validation/doctor/checks.d.ts +20 -2
  835. package/dist/validation/doctor/checks.d.ts.map +1 -1
  836. package/dist/validation/doctor/checks.js +64 -4
  837. package/dist/validation/doctor/checks.js.map +1 -1
  838. package/dist/validation/doctor/index.d.ts +1 -1
  839. package/dist/validation/doctor/index.d.ts.map +1 -1
  840. package/dist/validation/doctor/index.js +1 -1
  841. package/dist/validation/doctor/index.js.map +1 -1
  842. package/dist/validation/doctor/utils.d.ts.map +1 -1
  843. package/dist/validation/doctor/utils.js +7 -2
  844. package/dist/validation/doctor/utils.js.map +1 -1
  845. package/dist/validation/engine-ops.d.ts +15 -0
  846. package/dist/validation/engine-ops.d.ts.map +1 -1
  847. package/dist/validation/engine-ops.js +249 -98
  848. package/dist/validation/engine-ops.js.map +1 -1
  849. package/migrations/drizzle-cleo-global/20260927000000_t12469-project-locations/migration.sql +121 -0
  850. package/migrations/drizzle-cleo-global/20260927010000_t12543-user-profile-project-scope/migration.sql +23 -0
  851. package/migrations/drizzle-cleo-global/20260928010000_t12470-location-candidates/migration.sql +72 -0
  852. package/migrations/drizzle-cleo-global/20260928020000_t12510-nexus-devices/migration.sql +34 -0
  853. package/migrations/drizzle-cleo-global/20260928030000_t12511-project-git-state/migration.sql +62 -0
  854. package/migrations/drizzle-cleo-project/20260927000000_t12499-session-terminal-bindings/migration.sql +34 -0
  855. package/migrations/drizzle-cleo-project/20260928000000_t12500-binding-provider-flag/migration.sql +15 -0
  856. package/package.json +23 -13
  857. package/schemas/config.schema.json +54 -0
  858. package/schemas/project-context.schema.json +51 -3
  859. package/schemas/project-info.schema.json +28 -1
  860. package/templates/CLEO-INJECTION.md +40 -332
  861. package/templates/CLEO-REFERENCE.md +303 -0
  862. package/templates/workflows/README.md +36 -14
  863. package/templates/workflows/release-prepare.yml.tmpl +7 -0
@@ -19,16 +19,40 @@
19
19
  * The tracked file is never modified here. It is write-once, and a malformed
20
20
  * one is restored from version control, never regenerated.
21
21
  *
22
+ * T12557: `projectRoot` is a path fact, derived from the real root at runtime.
23
+ * A persisted copy in `project-info.json` or `project-context.json` goes stale
24
+ * on every move, so the inspection lists it under `derivedFields` and
25
+ * `--resolve` strips it. Each removed value is kept in `project-info.json`
26
+ * under `strippedFields`, the same in-file receipt pattern as
27
+ * `previousProjectIds`. `projectHash` is NOT a path fact: it is a write-once
28
+ * identity key, and nothing here ever touches it.
29
+ *
22
30
  * @task T12353
31
+ * @task T12557
23
32
  * @see ADR-094 — write-once portable project identity (amends ADR-013 §9)
24
33
  */
25
34
  import { execFileSync } from 'node:child_process';
26
35
  import { existsSync, readFileSync, renameSync, writeFileSync } from 'node:fs';
27
36
  import { join } from 'node:path';
28
- import { getCleoHome, isValidPortableProjectId, PORTABLE_PROJECT_ID_FILE, readPortableProjectId, } from '@cleocode/paths';
37
+ import { canonicalizePath, getCleoHome, isValidPortableProjectId, PORTABLE_PROJECT_ID_FILE, readDeclaredProjectIdentity, readPortableProjectId, } from '@cleocode/paths';
29
38
  import { ensurePortableProjectId } from '../scaffold/project-identity.js';
39
+ import { detectRelocatedRoot } from '../store/relocated-store-guard.js';
30
40
  /** Command that reports identity state; the prefix of every remedy below. */
31
41
  const IDENTITY_COMMAND = 'cleo doctor project-identity';
42
+ /** Files that must not persist path-derived fields. */
43
+ const DERIVED_FIELD_FILES = [
44
+ 'project-info.json',
45
+ 'project-context.json',
46
+ ];
47
+ /**
48
+ * Path facts derived from the real root at runtime, never authoritative on
49
+ * disk. `projectHash` is deliberately absent: it is a write-once identity key.
50
+ */
51
+ const DERIVED_FIELDS = ['projectRoot'];
52
+ /** Schema `maxItems` for the `previousProjectIds` / `strippedFields` receipts; oldest drop first. */
53
+ const RECEIPT_MAX_ITEMS = 50;
54
+ /** Bound every git probe: briefing runs this inspection on each call. */
55
+ const GIT_PROBE_TIMEOUT_MS = 5000;
32
56
  /** Read the id and the whole object from `project-info.json`; `undefined` when absent. */
33
57
  function readInfo(projectRoot) {
34
58
  const path = join(projectRoot, '.cleo', 'project-info.json');
@@ -43,12 +67,40 @@ function readInfo(projectRoot) {
43
67
  return 'unparseable';
44
68
  }
45
69
  }
70
+ /** Read a `.cleo/` JSON object; `undefined` when absent or not an object. */
71
+ function readCleoJson(projectRoot, file) {
72
+ const path = join(projectRoot, '.cleo', file);
73
+ if (!existsSync(path))
74
+ return undefined;
75
+ try {
76
+ const data = JSON.parse(readFileSync(path, 'utf-8'));
77
+ return data !== null && typeof data === 'object' && !Array.isArray(data)
78
+ ? data
79
+ : undefined;
80
+ }
81
+ catch {
82
+ return undefined;
83
+ }
84
+ }
85
+ /** List persisted path-derived fields across the metadata files (T12557). */
86
+ function findDerivedFields(projectRoot) {
87
+ const found = [];
88
+ for (const file of DERIVED_FIELD_FILES) {
89
+ const data = readCleoJson(projectRoot, file);
90
+ if (!data)
91
+ continue;
92
+ for (const field of DERIVED_FIELDS)
93
+ if (field in data)
94
+ found.push({ file, field, value: data[field] });
95
+ }
96
+ return found;
97
+ }
46
98
  /** Git's view of the tracked file: `null` when this is not a git work tree. */
47
99
  function gitFileState(projectRoot) {
48
100
  const rel = `.cleo/${PORTABLE_PROJECT_ID_FILE}`;
49
101
  const run = (args) => {
50
102
  try {
51
- execFileSync('git', args, { cwd: projectRoot, stdio: 'pipe' });
103
+ execFileSync('git', args, { cwd: projectRoot, stdio: 'pipe', timeout: GIT_PROBE_TIMEOUT_MS });
52
104
  return true;
53
105
  }
54
106
  catch {
@@ -80,16 +132,37 @@ export function inspectProjectIdentity(projectRoot) {
80
132
  const info = readInfo(projectRoot);
81
133
  const trackedId = tracked.status === 'valid' ? tracked.projectId : null;
82
134
  const localId = info && info !== 'unparseable' ? info.id : null;
83
- const base = { projectRoot, trackedId, localId };
135
+ const base = { projectRoot, trackedId, localId, derivedFields: findDerivedFields(projectRoot) };
136
+ // A CLEO root need not be a git work tree; git remedies apply only inside one.
137
+ let git;
138
+ const gitState = () => {
139
+ if (git === undefined)
140
+ git = gitFileState(projectRoot);
141
+ return git;
142
+ };
84
143
  if (tracked.status === 'invalid') {
85
144
  return {
86
145
  ...base,
87
146
  state: 'invalid',
88
147
  message: `.cleo/project-id is unusable (${tracked.reason}). CLEO never regenerates it.`,
89
- remedy: 'git checkout -- .cleo/project-id (restore the committed id; inspect with `git log -p -- .cleo/project-id`)',
148
+ remedy: gitState() === null
149
+ ? 'restore .cleo/project-id from a backup of this project (the CLEO root is not a git work tree)'
150
+ : 'git checkout -- .cleo/project-id (restore the committed id; inspect with `git log -p -- .cleo/project-id`)',
90
151
  };
91
152
  }
92
153
  if (info === undefined) {
154
+ // T12558: a tracked id restored (e.g. by `git checkout -- .`) at a root the
155
+ // project was rerooted away from must not be "adopted" by a plain init —
156
+ // that is exactly the refusal. Point at the live root, or the opt-out.
157
+ const relocated = detectRelocatedRoot(projectRoot, join(getCleoHome(), 'cleo.db'));
158
+ if (relocated) {
159
+ return {
160
+ ...base,
161
+ state: 'not-adopted',
162
+ message: `.cleo/project-id declares ${relocated.projectId}, which was rerooted from here to ${relocated.movedTo} (${relocated.via}).`,
163
+ remedy: `cd "${relocated.movedTo}" (the live project). A DIFFERENT project here needs a new id: \`cleo init --here --new-identity\``,
164
+ };
165
+ }
93
166
  return trackedId
94
167
  ? {
95
168
  ...base,
@@ -117,7 +190,9 @@ export function inspectProjectIdentity(projectRoot) {
117
190
  ...base,
118
191
  state: 'missing',
119
192
  message: `.cleo/project-id is missing. The local id is ${localId}.`,
120
- remedy: `${IDENTITY_COMMAND} --resolve && git add .cleo/project-id && git commit -m "chore: track CLEO project id"`,
193
+ remedy: gitState() === null
194
+ ? `${IDENTITY_COMMAND} --resolve (the CLEO root is not a git work tree; keep .cleo/project-id with the project)`
195
+ : `${IDENTITY_COMMAND} --resolve && git add .cleo/project-id && git commit -m "chore: track CLEO project id"`,
121
196
  };
122
197
  }
123
198
  if (trackedId !== localId) {
@@ -128,8 +203,7 @@ export function inspectProjectIdentity(projectRoot) {
128
203
  remedy: `${IDENTITY_COMMAND} --resolve --dry-run then ${IDENTITY_COMMAND} --resolve (re-keys local state to ${trackedId}; ${localId} stays resolvable as an alias)`,
129
204
  };
130
205
  }
131
- const git = gitFileState(projectRoot);
132
- if (git === 'ignored') {
206
+ if (gitState() === 'ignored') {
133
207
  return {
134
208
  ...base,
135
209
  state: 'ignored',
@@ -137,7 +211,7 @@ export function inspectProjectIdentity(projectRoot) {
137
211
  remedy: 'cleo upgrade (refreshes .cleo/.gitignore with `!project-id`), then git add .cleo/project-id',
138
212
  };
139
213
  }
140
- if (git === 'untracked') {
214
+ if (gitState() === 'untracked') {
141
215
  return {
142
216
  ...base,
143
217
  state: 'untracked',
@@ -158,6 +232,120 @@ function writeJsonAtomic(path, data) {
158
232
  writeFileSync(tmp, `${JSON.stringify(data, null, 2)}\n`);
159
233
  renameSync(tmp, path);
160
234
  }
235
+ /** Whether git tracks `.cleo/<file>`, so rewriting it dirties the work tree. */
236
+ function isGitTracked(projectRoot, file) {
237
+ try {
238
+ execFileSync('git', ['ls-files', '--error-unmatch', `.cleo/${file}`], {
239
+ cwd: projectRoot,
240
+ stdio: 'pipe',
241
+ timeout: GIT_PROBE_TIMEOUT_MS,
242
+ });
243
+ return true;
244
+ }
245
+ catch {
246
+ return false;
247
+ }
248
+ }
249
+ /**
250
+ * Return `info` with `findings` appended to its `strippedFields` receipt
251
+ * (capped at the schema's `maxItems`) and, when `stripInfo`, its own path
252
+ * facts removed. Pure; the caller writes the result.
253
+ *
254
+ * @param info - Parsed `project-info.json`.
255
+ * @param findings - Path facts being removed, with their values.
256
+ * @param now - ISO timestamp recorded on each receipt entry.
257
+ * @param stripInfo - Remove `DERIVED_FIELDS` from `info` itself.
258
+ * @returns A new object; `info` is not mutated.
259
+ * @example
260
+ * ```ts
261
+ * const next = withStrippedFieldsReceipt(info, findings, new Date().toISOString(), true);
262
+ * ```
263
+ * @task T12557
264
+ */
265
+ export function withStrippedFieldsReceipt(info, findings, now, stripInfo) {
266
+ const next = { ...info };
267
+ const prior = Array.isArray(info['strippedFields']) ? info['strippedFields'] : [];
268
+ next['strippedFields'] = [
269
+ ...prior,
270
+ ...findings.map((finding) => ({ ...finding, strippedAt: now })),
271
+ ].slice(-RECEIPT_MAX_ITEMS);
272
+ if (stripInfo)
273
+ for (const field of DERIVED_FIELDS)
274
+ delete next[field];
275
+ return next;
276
+ }
277
+ /**
278
+ * Remove persisted path facts. The receipt is written first, into
279
+ * `project-info.json` `strippedFields`, so a value is never removed without a
280
+ * durable record of it; without a readable `project-info.json` nothing is
281
+ * stripped.
282
+ */
283
+ function stripDerivedFields(projectRoot, findings, now) {
284
+ const info = readCleoJson(projectRoot, 'project-info.json');
285
+ if (!info)
286
+ return false;
287
+ const stripInfo = findings.some((finding) => finding.file === 'project-info.json');
288
+ writeJsonAtomic(join(projectRoot, '.cleo', 'project-info.json'), withStrippedFieldsReceipt(info, findings, now, stripInfo));
289
+ if (findings.some((finding) => finding.file === 'project-context.json')) {
290
+ const context = readCleoJson(projectRoot, 'project-context.json');
291
+ if (context) {
292
+ for (const field of DERIVED_FIELDS)
293
+ delete context[field];
294
+ writeJsonAtomic(join(projectRoot, '.cleo', 'project-context.json'), context);
295
+ }
296
+ }
297
+ return true;
298
+ }
299
+ /**
300
+ * Find this checkout's `candidate` location: it declares an id whose registry
301
+ * row names another path, and it is not already a live location on this device.
302
+ */
303
+ async function findCandidateCheckout(projectRoot, cleoHome) {
304
+ const declared = readDeclaredProjectIdentity(projectRoot);
305
+ if (!declared)
306
+ return null;
307
+ const path = canonicalizePath(projectRoot);
308
+ const { getNexusRegistryDb } = await import('../store/nexus-sqlite.js');
309
+ const { projectRegistry } = await import('../store/schema/nexus-schema.js');
310
+ const { eq } = await import('drizzle-orm');
311
+ const { decideEncounterBinding } = await import('../nexus/path-map.js');
312
+ const db = await getNexusRegistryDb(cleoHome ?? getCleoHome());
313
+ const row = db
314
+ .select({ projectPath: projectRegistry.projectPath })
315
+ .from(projectRegistry)
316
+ .where(eq(projectRegistry.projectId, declared.projectId))
317
+ .get();
318
+ if (!row || row.projectPath === path)
319
+ return null;
320
+ const binding = decideEncounterBinding(db, {
321
+ projectId: declared.projectId,
322
+ projectPath: path,
323
+ now: new Date().toISOString(),
324
+ });
325
+ if (binding === 'refresh')
326
+ return null;
327
+ return { projectId: declared.projectId, path, registeredPath: row.projectPath };
328
+ }
329
+ /** Promote a candidate checkout to the project's live, registered location. */
330
+ async function confirmCandidateCheckout(candidate, cleoHome) {
331
+ const { getNexusRegistryDb } = await import('../store/nexus-sqlite.js');
332
+ const { confirmProjectLocation } = await import('../nexus/path-map.js');
333
+ const { collectCheckoutEvidence } = await import('../nexus/identity.js');
334
+ const { ensureCheckoutNonce } = await import('../nexus/checkout-nonce.js');
335
+ const evidence = await collectCheckoutEvidence(candidate.path);
336
+ // The confirmed checkout gets its own nonce, so a later move is provable.
337
+ const checkoutNonce = ensureCheckoutNonce(candidate.path);
338
+ const db = await getNexusRegistryDb(cleoHome ?? getCleoHome());
339
+ db.transaction((tx) => {
340
+ confirmProjectLocation(tx, {
341
+ projectId: candidate.projectId,
342
+ projectPath: candidate.path,
343
+ now: new Date().toISOString(),
344
+ evidence,
345
+ checkoutNonce,
346
+ });
347
+ }, { behavior: 'immediate' });
348
+ }
161
349
  /**
162
350
  * Resolve the identity state that {@link inspectProjectIdentity} reported.
163
351
  *
@@ -167,6 +355,9 @@ function writeJsonAtomic(path, data) {
167
355
  * renames the row's primary key, re-points aliases and records the old id as
168
356
  * an alias. Then `project-info.json` is rewritten, keeping the old id under
169
357
  * `previousProjectIds`.
358
+ * - In every state, persisted `projectRoot` fields are stripped first
359
+ * (T12557). The removed values are kept in `project-info.json`
360
+ * `strippedFields`. `projectHash` is never touched.
170
361
  *
171
362
  * Every other state is refused with its remedy. The operation is idempotent:
172
363
  * re-running after a partial apply completes the remaining steps.
@@ -186,6 +377,36 @@ export async function resolveProjectIdentity(projectRoot, options = {}) {
186
377
  const before = inspectProjectIdentity(projectRoot);
187
378
  const steps = [];
188
379
  const result = (refused, rows = { before: 0, after: 0 }) => ({ dryRun, before, steps, registryRows: rows, refused });
380
+ // T12470: a checkout that declares an already-registered id is only a
381
+ // `candidate` until confirmed. Resolving here IS the explicit confirmation.
382
+ const confirmCandidateStep = async () => {
383
+ const candidate = await findCandidateCheckout(projectRoot, options.cleoHome);
384
+ if (!candidate)
385
+ return false;
386
+ steps.push({
387
+ action: 'confirm-candidate-location',
388
+ detail: `confirm ${candidate.path} as the live location of ${candidate.projectId} (registry row moves from ${candidate.registeredPath}; its permissions stay with the row)`,
389
+ });
390
+ if (!dryRun)
391
+ await confirmCandidateCheckout(candidate, options.cleoHome);
392
+ return true;
393
+ };
394
+ if (before.derivedFields.length > 0) {
395
+ const removed = before.derivedFields
396
+ .map((finding) => `${finding.file}:${finding.field}=${JSON.stringify(finding.value)}`)
397
+ .join(', ');
398
+ const trackedNote = before.derivedFields.some((finding) => finding.file === 'project-context.json')
399
+ ? isGitTracked(projectRoot, 'project-context.json')
400
+ ? '; .cleo/project-context.json is git-tracked, so this dirties the work tree (commit the change)'
401
+ : '; .cleo/project-context.json is not git-tracked'
402
+ : '';
403
+ steps.push({
404
+ action: 'strip-derived-fields',
405
+ detail: `remove ${removed} (a path fact derived at runtime; a persisted copy goes stale on a move). Receipt: project-info.json strippedFields${trackedNote}`,
406
+ });
407
+ if (!dryRun && !stripDerivedFields(projectRoot, before.derivedFields, new Date().toISOString()))
408
+ return result('Cannot record a strip receipt: .cleo/project-info.json is missing or unreadable.');
409
+ }
189
410
  if (before.state === 'missing' && before.localId) {
190
411
  steps.push({
191
412
  action: 'write-tracked-id',
@@ -193,6 +414,7 @@ export async function resolveProjectIdentity(projectRoot, options = {}) {
193
414
  });
194
415
  if (!dryRun)
195
416
  await ensurePortableProjectId(projectRoot, before.localId);
417
+ await confirmCandidateStep();
196
418
  return result(null);
197
419
  }
198
420
  if (before.state === 'info-invalid') {
@@ -204,10 +426,15 @@ export async function resolveProjectIdentity(projectRoot, options = {}) {
204
426
  const { ensureProjectInfo } = await import('../scaffold/ensure-config.js');
205
427
  await ensureProjectInfo(projectRoot, { force: true });
206
428
  }
429
+ await confirmCandidateStep();
207
430
  return result(null);
208
431
  }
432
+ if (before.state !== 'conflict' && (await confirmCandidateStep()))
433
+ return result(null);
209
434
  if (before.state !== 'conflict' || !before.trackedId || !before.localId) {
210
- return result(before.remedy ? `${before.message} Remedy: ${before.remedy}` : 'Nothing to resolve.');
435
+ if (before.remedy)
436
+ return result(`${before.message} Remedy: ${before.remedy}`);
437
+ return result(steps.length > 0 ? null : 'Nothing to resolve.');
211
438
  }
212
439
  const oldId = before.localId;
213
440
  const newId = before.trackedId;
@@ -298,7 +525,7 @@ export async function resolveProjectIdentity(projectRoot, options = {}) {
298
525
  writeJsonAtomic(join(projectRoot, '.cleo', 'project-info.json'), {
299
526
  ...info.data,
300
527
  projectId: newId,
301
- previousProjectIds: [...new Set([...previous, oldId])],
528
+ previousProjectIds: [...new Set([...previous, oldId])].slice(-RECEIPT_MAX_ITEMS),
302
529
  lastUpdated: now,
303
530
  });
304
531
  }
@@ -1 +1 @@
1
- {"version":3,"file":"project-identity.js","sourceRoot":"","sources":["../../src/doctor/project-identity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-identity.js","sourceRoot":"","sources":["../../src/doctor/project-identity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,170 @@
1
+ /**
2
+ * `cleo doctor projects` — machine-wide integrity check of the project
3
+ * registry (T12471 · ADR-094).
4
+ *
5
+ * The registry is keyed by project id, never by path. A path is a per-device
6
+ * hint that goes stale when a project moves, is deleted, or is re-initialized
7
+ * under a new id. This module walks every registry row, probes its path, scans
8
+ * the directories projects live in for `.cleo/` declarations, and classifies
9
+ * each row (see `NexusRegistryFindingKind`):
10
+ *
11
+ * - {@link inspectProjectRegistry} is read-only and returns every non-`ok`
12
+ * row with its exact remedy.
13
+ * - {@link applyProjectRegistryRepair} applies only the safe classes: a
14
+ * `moved` row is rebound to the one path that declares its id, a
15
+ * `missing` row's location is recorded as `missing`, and an alias row whose
16
+ * truncated legacy key several projects claim is removed (T12589). No
17
+ * registry row is deleted. The rows the changes touch are imaged before and
18
+ * after, and both images are written to `nexus_audit_log` in the same
19
+ * transaction as the changes.
20
+ * - {@link rollbackProjectRegistryRepair} restores the before image, guarded
21
+ * on the current rows still matching the after image.
22
+ *
23
+ * Split identities, ambiguous moves, temp rows and home/root rows are owner
24
+ * decisions: they are reported with a remedy and never changed.
25
+ *
26
+ * Probes are bounded: at most `concurrency` filesystem reads at once, each
27
+ * with a `timeoutMs` budget. Only ENOENT/ENOTDIR prove a path gone; EACCES,
28
+ * EPERM or a timeout leave the row `unreadable` and untouched (#1606).
29
+ *
30
+ * @task T12471
31
+ * @epic T12468
32
+ * @see ADR-094 — write-once portable project identity
33
+ */
34
+ import type { NexusRegistryIntegrityReport, NexusRegistryRollbackResult } from '@cleocode/contracts';
35
+ /** Options shared by inspect and apply. */
36
+ export interface ProjectRegistryScanOptions {
37
+ /** Extra directories to scan for `.cleo/`, beyond the registry-derived parents. */
38
+ roots?: readonly string[];
39
+ /** Scan depth below each root (default 2). */
40
+ maxDepth?: number;
41
+ /** Filesystem reads in flight at once (default 16). */
42
+ concurrency?: number;
43
+ /** Budget per filesystem probe in milliseconds (default 2000). */
44
+ timeoutMs?: number;
45
+ /** Global CLEO home whose registry is checked (defaults to the current one). */
46
+ cleoHome?: string;
47
+ }
48
+ /** Error with a stable code, raised when a rollback is refused. */
49
+ export declare class RegistryRepairError extends Error {
50
+ readonly code: 'E_NOT_FOUND' | 'E_ROLLBACK_CONFLICT';
51
+ /** @override */
52
+ readonly name = "RegistryRepairError";
53
+ /**
54
+ * @param code - Stable error code (`E_NOT_FOUND`, `E_ROLLBACK_CONFLICT`).
55
+ * @param message - Explanation with the remedy.
56
+ */
57
+ constructor(code: 'E_NOT_FOUND' | 'E_ROLLBACK_CONFLICT', message: string);
58
+ }
59
+ /**
60
+ * Whether a registry path is a temp row: under a temp directory while the
61
+ * registry itself is persistent. A sandboxed registry (temp `CLEO_HOME`) keeps
62
+ * its temp fixtures legitimately, as encounter registration does.
63
+ *
64
+ * @param projectPath - Registered path.
65
+ * @param cleoHome - Home of the registry being checked.
66
+ * @returns `true` for a temp row.
67
+ *
68
+ * @example
69
+ * ```ts
70
+ * isTempRegistryPath('/tmp/fixture', '/home/me/.local/share/cleo'); // true
71
+ * ```
72
+ */
73
+ export declare function isTempRegistryPath(projectPath: string, cleoHome: string): boolean;
74
+ /**
75
+ * Whether a registry path is the home directory or a filesystem root: a
76
+ * project registered there claims every directory below it.
77
+ *
78
+ * @param projectPath - Registered path.
79
+ * @param home - Home directory (defaults to the current user's).
80
+ * @returns `true` for a home or root row.
81
+ *
82
+ * @example
83
+ * ```ts
84
+ * isHomeOrRootPath('/'); // true
85
+ * ```
86
+ */
87
+ export declare function isHomeOrRootPath(projectPath: string, home?: string): boolean;
88
+ /**
89
+ * Whether `path` lies in a trash directory. A project the owner trashed is
90
+ * never a move target, and its registry row may be cleaned.
91
+ *
92
+ * @param path - Absolute path.
93
+ * @returns `true` inside `.Trash`, `.Trashes`, `$RECYCLE.BIN` or `.local/share/Trash`.
94
+ *
95
+ * @example
96
+ * ```ts
97
+ * isTrashPath('/Users/me/.Trash/app'); // true
98
+ * ```
99
+ */
100
+ export declare function isTrashPath(path: string): boolean;
101
+ /**
102
+ * Classify every registry row, read-only.
103
+ *
104
+ * @param opts - Extra scan roots, depth, concurrency, per-probe budget, registry home.
105
+ * @returns Counts per kind and every non-`ok` row with its exact remedy.
106
+ *
107
+ * @example
108
+ * ```ts
109
+ * const report = await inspectProjectRegistry({ roots: ['/home/me/src'] });
110
+ * for (const f of report.findings) console.log(f.kind, f.projectPath, f.remedy);
111
+ * ```
112
+ */
113
+ export declare function inspectProjectRegistry(opts?: ProjectRegistryScanOptions): Promise<NexusRegistryIntegrityReport>;
114
+ /**
115
+ * Inspect, then apply the safe repairs: rebind every `moved` row to the path
116
+ * that declares its id, record every `missing` row's location as
117
+ * `missing`, and remove every alias row whose key several projects claim
118
+ * (T12589). One immediate transaction makes the changes and writes the
119
+ * receipt (before and after images of every touched row, alias rows
120
+ * included) to `nexus_audit_log`. No registry row is deleted, and nothing
121
+ * outside the registry is written. A row that changed since inspection is
122
+ * skipped.
123
+ *
124
+ * @param opts - Same options as {@link inspectProjectRegistry}.
125
+ * @returns The report, with `dryRun: false` and a receipt when anything applied.
126
+ *
127
+ * @example
128
+ * ```ts
129
+ * const result = await applyProjectRegistryRepair();
130
+ * if (result.receipt) console.log(result.receipt.rollback);
131
+ * ```
132
+ */
133
+ export declare function applyProjectRegistryRepair(opts?: ProjectRegistryScanOptions): Promise<NexusRegistryIntegrityReport>;
134
+ /**
135
+ * Restore the rows an applied repair changed. Refused when the receipt is
136
+ * unknown, was already rolled back, or when any row in its scope changed
137
+ * since the repair (the current rows must equal the receipt's after image) —
138
+ * a later edit is never overwritten. The rollback writes its own receipt.
139
+ *
140
+ * @param receiptId - `receiptId` from {@link applyProjectRegistryRepair}.
141
+ * @param opts - Registry home.
142
+ * @returns Rows restored per table and the rollback's own receipt id.
143
+ * @throws RegistryRepairError (`E_NOT_FOUND`, `E_ROLLBACK_CONFLICT`).
144
+ *
145
+ * @example
146
+ * ```ts
147
+ * await rollbackProjectRegistryRepair(receipt.receiptId);
148
+ * ```
149
+ */
150
+ export declare function rollbackProjectRegistryRepair(receiptId: string, opts?: Pick<ProjectRegistryScanOptions, 'cleoHome'>): Promise<NexusRegistryRollbackResult>;
151
+ /**
152
+ * For each id, the paths on this device other than `exclude` that provably
153
+ * hold it now: recorded locations of the id that still declare it, plus
154
+ * directories found by scanning `roots`. Used by `nexus projects clean` to
155
+ * refuse deleting a row whose project merely moved (T12471).
156
+ *
157
+ * @param ids - Project ids to look for, with the registered path to exclude.
158
+ * @param opts - Scan roots and budgets; roots default to the parents of the given paths.
159
+ * @returns Map from id to the paths that declare it (ids found nowhere are absent).
160
+ *
161
+ * @example
162
+ * ```ts
163
+ * const found = await locateProjectsElsewhere([{ projectId, projectPath }]);
164
+ * ```
165
+ */
166
+ export declare function locateProjectsElsewhere(ids: ReadonlyArray<{
167
+ projectId: string;
168
+ projectPath: string;
169
+ }>, opts?: ProjectRegistryScanOptions): Promise<Map<string, string[]>>;
170
+ //# sourceMappingURL=projects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/doctor/projects.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAOH,OAAO,KAAK,EAIV,4BAA4B,EAG5B,2BAA2B,EAE5B,MAAM,qBAAqB,CAAC;AAiE7B,2CAA2C;AAC3C,MAAM,WAAW,0BAA0B;IACzC,mFAAmF;IACnF,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kEAAkE;IAClE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gFAAgF;IAChF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AA4DD,mEAAmE;AACnE,qBAAa,mBAAoB,SAAQ,KAAK;IAS1C,QAAQ,CAAC,IAAI,EAAE,aAAa,GAAG,qBAAqB;IARtD,gBAAgB;IAChB,SAAkB,IAAI,yBAAyB;IAE/C;;;OAGG;gBAEQ,IAAI,EAAE,aAAa,GAAG,qBAAqB,EACpD,OAAO,EAAE,MAAM;CAIlB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEjF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,GAAE,MAAkB,GAAG,OAAO,CAGvF;AA8DD;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CASjD;AA8gBD;;;;;;;;;;;GAWG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,GAAE,0BAA+B,GACpC,OAAO,CAAC,4BAA4B,CAAC,CAEvC;AAoMD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,0BAA0B,CAC9C,IAAI,GAAE,0BAA+B,GACpC,OAAO,CAAC,4BAA4B,CAAC,CAuIvC;AAiBD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,6BAA6B,CACjD,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE,IAAI,CAAC,0BAA0B,EAAE,UAAU,CAAM,GACtD,OAAO,CAAC,2BAA2B,CAAC,CAiEtC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,aAAa,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,EAC9D,IAAI,GAAE,0BAA+B,GACpC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAwDhC"}