@cleocode/core 2026.9.20 → 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 (855) 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/error-catalog.d.ts.map +1 -1
  143. package/dist/error-catalog.js +21 -0
  144. package/dist/error-catalog.js.map +1 -1
  145. package/dist/error-registry.d.ts.map +1 -1
  146. package/dist/error-registry.js +40 -0
  147. package/dist/error-registry.js.map +1 -1
  148. package/dist/gc/cleanup.d.ts.map +1 -1
  149. package/dist/gc/cleanup.js +32 -19
  150. package/dist/gc/cleanup.js.map +1 -1
  151. package/dist/git/bounded-git.d.ts +170 -0
  152. package/dist/git/bounded-git.d.ts.map +1 -0
  153. package/dist/git/bounded-git.js +371 -0
  154. package/dist/git/bounded-git.js.map +1 -0
  155. package/dist/git/work-tree.d.ts +20 -0
  156. package/dist/git/work-tree.d.ts.map +1 -1
  157. package/dist/git/work-tree.js +20 -2
  158. package/dist/git/work-tree.js.map +1 -1
  159. package/dist/hooks/handlers/session-hooks.d.ts +11 -26
  160. package/dist/hooks/handlers/session-hooks.d.ts.map +1 -1
  161. package/dist/hooks/handlers/session-hooks.js +18 -47
  162. package/dist/hooks/handlers/session-hooks.js.map +1 -1
  163. package/dist/hooks/payload-schemas.d.ts +2 -2
  164. package/dist/index.d.ts +6 -5
  165. package/dist/index.d.ts.map +1 -1
  166. package/dist/index.js +5 -3
  167. package/dist/index.js.map +1 -1
  168. package/dist/init/engine-ops.d.ts.map +1 -1
  169. package/dist/init/engine-ops.js +23 -1
  170. package/dist/init/engine-ops.js.map +1 -1
  171. package/dist/init.d.ts +158 -1
  172. package/dist/init.d.ts.map +1 -1
  173. package/dist/init.js +527 -42
  174. package/dist/init.js.map +1 -1
  175. package/dist/injection.d.ts +55 -0
  176. package/dist/injection.d.ts.map +1 -1
  177. package/dist/injection.js +102 -6
  178. package/dist/injection.js.map +1 -1
  179. package/dist/internal.d.ts +9 -5
  180. package/dist/internal.d.ts.map +1 -1
  181. package/dist/internal.js +8 -4
  182. package/dist/internal.js.map +1 -1
  183. package/dist/issue/diagnostics.d.ts.map +1 -1
  184. package/dist/issue/diagnostics.js +2 -1
  185. package/dist/issue/diagnostics.js.map +1 -1
  186. package/dist/lib/concurrency.d.ts +25 -0
  187. package/dist/lib/concurrency.d.ts.map +1 -0
  188. package/dist/lib/concurrency.js +43 -0
  189. package/dist/lib/concurrency.js.map +1 -0
  190. package/dist/lib/index.d.ts +1 -0
  191. package/dist/lib/index.d.ts.map +1 -1
  192. package/dist/lib/index.js +1 -0
  193. package/dist/lib/index.js.map +1 -1
  194. package/dist/lifecycle/engine-ops.d.ts.map +1 -1
  195. package/dist/lifecycle/engine-ops.js +4 -2
  196. package/dist/lifecycle/engine-ops.js.map +1 -1
  197. package/dist/lifecycle/stage-guidance.d.ts +5 -0
  198. package/dist/lifecycle/stage-guidance.d.ts.map +1 -1
  199. package/dist/lifecycle/stage-guidance.js +14 -4
  200. package/dist/lifecycle/stage-guidance.js.map +1 -1
  201. package/dist/llm/catalog-cache.d.ts +3 -2
  202. package/dist/llm/catalog-cache.d.ts.map +1 -1
  203. package/dist/llm/catalog-cache.js +5 -5
  204. package/dist/llm/catalog-cache.js.map +1 -1
  205. package/dist/llm/credentials.d.ts +4 -4
  206. package/dist/llm/credentials.js +6 -6
  207. package/dist/llm/credentials.js.map +1 -1
  208. package/dist/llm/plugin-facade.js +4312 -1798
  209. package/dist/llm/plugin-facade.js.map +3 -3
  210. package/dist/llm/stable-device-id.d.ts.map +1 -1
  211. package/dist/llm/stable-device-id.js +3 -5
  212. package/dist/llm/stable-device-id.js.map +1 -1
  213. package/dist/memory/attention.d.ts.map +1 -1
  214. package/dist/memory/attention.js +30 -30
  215. package/dist/memory/attention.js.map +1 -1
  216. package/dist/memory/decision-contradiction.d.ts +152 -0
  217. package/dist/memory/decision-contradiction.d.ts.map +1 -0
  218. package/dist/memory/decision-contradiction.js +273 -0
  219. package/dist/memory/decision-contradiction.js.map +1 -0
  220. package/dist/memory/decisions.d.ts +42 -11
  221. package/dist/memory/decisions.d.ts.map +1 -1
  222. package/dist/memory/decisions.js +153 -56
  223. package/dist/memory/decisions.js.map +1 -1
  224. package/dist/memory/dialectic-evaluator.d.ts +7 -0
  225. package/dist/memory/dialectic-evaluator.d.ts.map +1 -1
  226. package/dist/memory/dialectic-evaluator.js +23 -8
  227. package/dist/memory/dialectic-evaluator.js.map +1 -1
  228. package/dist/memory/dispatch-trace-format.d.ts +39 -0
  229. package/dist/memory/dispatch-trace-format.d.ts.map +1 -0
  230. package/dist/memory/dispatch-trace-format.js +54 -0
  231. package/dist/memory/dispatch-trace-format.js.map +1 -0
  232. package/dist/memory/dispatch-trace.d.ts.map +1 -1
  233. package/dist/memory/dispatch-trace.js +1 -27
  234. package/dist/memory/dispatch-trace.js.map +1 -1
  235. package/dist/memory/engine-compat.d.ts +2 -0
  236. package/dist/memory/engine-compat.d.ts.map +1 -1
  237. package/dist/memory/engine-compat.js +1 -0
  238. package/dist/memory/engine-compat.js.map +1 -1
  239. package/dist/memory/import-from-provider.js +3 -3
  240. package/dist/memory/import-from-provider.js.map +1 -1
  241. package/dist/memory/learnings.d.ts +2 -2
  242. package/dist/memory/observation-type-decision.d.ts +96 -0
  243. package/dist/memory/observation-type-decision.d.ts.map +1 -0
  244. package/dist/memory/observation-type-decision.js +218 -0
  245. package/dist/memory/observation-type-decision.js.map +1 -0
  246. package/dist/memory/redaction.js +2 -0
  247. package/dist/memory/redaction.js.map +1 -1
  248. package/dist/memory/retrieval/build-retrieval-bundle.d.ts +9 -2
  249. package/dist/memory/retrieval/build-retrieval-bundle.d.ts.map +1 -1
  250. package/dist/memory/retrieval/build-retrieval-bundle.js +42 -11
  251. package/dist/memory/retrieval/build-retrieval-bundle.js.map +1 -1
  252. package/dist/memory/retrieval/get-current-session-id.d.ts +5 -0
  253. package/dist/memory/retrieval/get-current-session-id.d.ts.map +1 -1
  254. package/dist/memory/retrieval/get-current-session-id.js +7 -2
  255. package/dist/memory/retrieval/get-current-session-id.js.map +1 -1
  256. package/dist/memory/retrieval/observe.d.ts.map +1 -1
  257. package/dist/memory/retrieval/observe.js +30 -29
  258. package/dist/memory/retrieval/observe.js.map +1 -1
  259. package/dist/nexus/analyze-orchestrator.d.ts.map +1 -1
  260. package/dist/nexus/analyze-orchestrator.js +42 -29
  261. package/dist/nexus/analyze-orchestrator.js.map +1 -1
  262. package/dist/nexus/assessment-projection.d.ts +76 -0
  263. package/dist/nexus/assessment-projection.d.ts.map +1 -0
  264. package/dist/nexus/assessment-projection.js +143 -0
  265. package/dist/nexus/assessment-projection.js.map +1 -0
  266. package/dist/nexus/assessment-store.d.ts +14 -2
  267. package/dist/nexus/assessment-store.d.ts.map +1 -1
  268. package/dist/nexus/assessment-store.js +21 -3
  269. package/dist/nexus/assessment-store.js.map +1 -1
  270. package/dist/nexus/checkout-nonce.d.ts +48 -0
  271. package/dist/nexus/checkout-nonce.d.ts.map +1 -0
  272. package/dist/nexus/checkout-nonce.js +84 -0
  273. package/dist/nexus/checkout-nonce.js.map +1 -0
  274. package/dist/nexus/devices.d.ts +93 -0
  275. package/dist/nexus/devices.d.ts.map +1 -0
  276. package/dist/nexus/devices.js +141 -0
  277. package/dist/nexus/devices.js.map +1 -0
  278. package/dist/nexus/freshness.d.ts.map +1 -1
  279. package/dist/nexus/freshness.js +25 -6
  280. package/dist/nexus/freshness.js.map +1 -1
  281. package/dist/nexus/git-state.d.ts +225 -0
  282. package/dist/nexus/git-state.d.ts.map +1 -0
  283. package/dist/nexus/git-state.js +677 -0
  284. package/dist/nexus/git-state.js.map +1 -0
  285. package/dist/nexus/graph-manifest.d.ts +20 -4
  286. package/dist/nexus/graph-manifest.d.ts.map +1 -1
  287. package/dist/nexus/graph-manifest.js +40 -5
  288. package/dist/nexus/graph-manifest.js.map +1 -1
  289. package/dist/nexus/identity.d.ts +68 -23
  290. package/dist/nexus/identity.d.ts.map +1 -1
  291. package/dist/nexus/identity.js +99 -22
  292. package/dist/nexus/identity.js.map +1 -1
  293. package/dist/nexus/index.d.ts +5 -2
  294. package/dist/nexus/index.d.ts.map +1 -1
  295. package/dist/nexus/index.js +10 -4
  296. package/dist/nexus/index.js.map +1 -1
  297. package/dist/nexus/knowledge.d.ts +5 -0
  298. package/dist/nexus/knowledge.d.ts.map +1 -1
  299. package/dist/nexus/knowledge.js +26 -2
  300. package/dist/nexus/knowledge.js.map +1 -1
  301. package/dist/nexus/legacy-alias.d.ts +60 -0
  302. package/dist/nexus/legacy-alias.d.ts.map +1 -0
  303. package/dist/nexus/legacy-alias.js +68 -0
  304. package/dist/nexus/legacy-alias.js.map +1 -0
  305. package/dist/nexus/migrate-json-to-sqlite.js +2 -2
  306. package/dist/nexus/migrate-json-to-sqlite.js.map +1 -1
  307. package/dist/nexus/ops.d.ts +1 -0
  308. package/dist/nexus/ops.d.ts.map +1 -1
  309. package/dist/nexus/path-map.d.ts +264 -20
  310. package/dist/nexus/path-map.d.ts.map +1 -1
  311. package/dist/nexus/path-map.js +580 -44
  312. package/dist/nexus/path-map.js.map +1 -1
  313. package/dist/nexus/projects-clean.d.ts +9 -1
  314. package/dist/nexus/projects-clean.d.ts.map +1 -1
  315. package/dist/nexus/projects-clean.js +126 -14
  316. package/dist/nexus/projects-clean.js.map +1 -1
  317. package/dist/nexus/projects-scan.d.ts +56 -1
  318. package/dist/nexus/projects-scan.d.ts.map +1 -1
  319. package/dist/nexus/projects-scan.js +144 -3
  320. package/dist/nexus/projects-scan.js.map +1 -1
  321. package/dist/nexus/registry-hygiene.d.ts +18 -2
  322. package/dist/nexus/registry-hygiene.d.ts.map +1 -1
  323. package/dist/nexus/registry-hygiene.js +37 -11
  324. package/dist/nexus/registry-hygiene.js.map +1 -1
  325. package/dist/nexus/registry-roots.d.ts +47 -0
  326. package/dist/nexus/registry-roots.d.ts.map +1 -0
  327. package/dist/nexus/registry-roots.js +79 -0
  328. package/dist/nexus/registry-roots.js.map +1 -0
  329. package/dist/nexus/registry.d.ts +50 -9
  330. package/dist/nexus/registry.d.ts.map +1 -1
  331. package/dist/nexus/registry.js +311 -156
  332. package/dist/nexus/registry.js.map +1 -1
  333. package/dist/nexus/stored-roots.d.ts +106 -0
  334. package/dist/nexus/stored-roots.d.ts.map +1 -0
  335. package/dist/nexus/stored-roots.js +180 -0
  336. package/dist/nexus/stored-roots.js.map +1 -0
  337. package/dist/nexus/transfer.d.ts.map +1 -1
  338. package/dist/nexus/transfer.js +3 -0
  339. package/dist/nexus/transfer.js.map +1 -1
  340. package/dist/nexus/user-profile-hygiene.d.ts +168 -0
  341. package/dist/nexus/user-profile-hygiene.d.ts.map +1 -0
  342. package/dist/nexus/user-profile-hygiene.js +305 -0
  343. package/dist/nexus/user-profile-hygiene.js.map +1 -0
  344. package/dist/nexus/user-profile.d.ts +53 -2
  345. package/dist/nexus/user-profile.d.ts.map +1 -1
  346. package/dist/nexus/user-profile.js +106 -4
  347. package/dist/nexus/user-profile.js.map +1 -1
  348. package/dist/orchestrate/pivot.d.ts.map +1 -1
  349. package/dist/orchestrate/pivot.js +5 -1
  350. package/dist/orchestrate/pivot.js.map +1 -1
  351. package/dist/orchestrate/spawn-ops.d.ts +12 -0
  352. package/dist/orchestrate/spawn-ops.d.ts.map +1 -1
  353. package/dist/orchestrate/spawn-ops.js +152 -57
  354. package/dist/orchestrate/spawn-ops.js.map +1 -1
  355. package/dist/orchestration/classify-readiness.d.ts +37 -1
  356. package/dist/orchestration/classify-readiness.d.ts.map +1 -1
  357. package/dist/orchestration/classify-readiness.js +48 -19
  358. package/dist/orchestration/classify-readiness.js.map +1 -1
  359. package/dist/orchestration/index.d.ts +3 -2
  360. package/dist/orchestration/index.d.ts.map +1 -1
  361. package/dist/orchestration/index.js +2 -1
  362. package/dist/orchestration/index.js.map +1 -1
  363. package/dist/orchestration/owner-decision-readiness.d.ts +88 -0
  364. package/dist/orchestration/owner-decision-readiness.d.ts.map +1 -0
  365. package/dist/orchestration/owner-decision-readiness.js +152 -0
  366. package/dist/orchestration/owner-decision-readiness.js.map +1 -0
  367. package/dist/orchestration/psyche-memory-budget.d.ts +105 -0
  368. package/dist/orchestration/psyche-memory-budget.d.ts.map +1 -0
  369. package/dist/orchestration/psyche-memory-budget.js +383 -0
  370. package/dist/orchestration/psyche-memory-budget.js.map +1 -0
  371. package/dist/orchestration/spawn-prompt.d.ts +12 -1
  372. package/dist/orchestration/spawn-prompt.d.ts.map +1 -1
  373. package/dist/orchestration/spawn-prompt.js +141 -179
  374. package/dist/orchestration/spawn-prompt.js.map +1 -1
  375. package/dist/orchestration/spawn.d.ts +7 -0
  376. package/dist/orchestration/spawn.d.ts.map +1 -1
  377. package/dist/orchestration/spawn.js +1 -0
  378. package/dist/orchestration/spawn.js.map +1 -1
  379. package/dist/paths.d.ts +24 -8
  380. package/dist/paths.d.ts.map +1 -1
  381. package/dist/paths.js +135 -71
  382. package/dist/paths.js.map +1 -1
  383. package/dist/platform.d.ts +6 -1
  384. package/dist/platform.d.ts.map +1 -1
  385. package/dist/platform.js +8 -19
  386. package/dist/platform.js.map +1 -1
  387. package/dist/project-info.d.ts +18 -0
  388. package/dist/project-info.d.ts.map +1 -1
  389. package/dist/project-info.js +29 -1
  390. package/dist/project-info.js.map +1 -1
  391. package/dist/project-lifecycle.d.ts +91 -32
  392. package/dist/project-lifecycle.d.ts.map +1 -1
  393. package/dist/project-lifecycle.js +639 -75
  394. package/dist/project-lifecycle.js.map +1 -1
  395. package/dist/project-scope.d.ts +86 -4
  396. package/dist/project-scope.d.ts.map +1 -1
  397. package/dist/project-scope.js +226 -13
  398. package/dist/project-scope.js.map +1 -1
  399. package/dist/project-tombstone.d.ts +111 -0
  400. package/dist/project-tombstone.d.ts.map +1 -0
  401. package/dist/project-tombstone.js +220 -0
  402. package/dist/project-tombstone.js.map +1 -0
  403. package/dist/release/artifacts.d.ts.map +1 -1
  404. package/dist/release/artifacts.js +14 -9
  405. package/dist/release/artifacts.js.map +1 -1
  406. package/dist/release/ci-evidence.d.ts +223 -0
  407. package/dist/release/ci-evidence.d.ts.map +1 -0
  408. package/dist/release/ci-evidence.js +652 -0
  409. package/dist/release/ci-evidence.js.map +1 -0
  410. package/dist/release/engine-ops.d.ts.map +1 -1
  411. package/dist/release/engine-ops.js +3 -3
  412. package/dist/release/engine-ops.js.map +1 -1
  413. package/dist/release/plan.d.ts.map +1 -1
  414. package/dist/release/plan.js +7 -6
  415. package/dist/release/plan.js.map +1 -1
  416. package/dist/release/pr-evidence.d.ts +38 -0
  417. package/dist/release/pr-evidence.d.ts.map +1 -1
  418. package/dist/release/pr-evidence.js +67 -11
  419. package/dist/release/pr-evidence.js.map +1 -1
  420. package/dist/release/reconcile.d.ts.map +1 -1
  421. package/dist/release/reconcile.js +3 -2
  422. package/dist/release/reconcile.js.map +1 -1
  423. package/dist/release/release-manifest.d.ts +2 -1
  424. package/dist/release/release-manifest.d.ts.map +1 -1
  425. package/dist/release/release-manifest.js +6 -5
  426. package/dist/release/release-manifest.js.map +1 -1
  427. package/dist/render/nexus/graph/index.d.ts +4 -0
  428. package/dist/render/nexus/graph/index.d.ts.map +1 -1
  429. package/dist/render/nexus/graph/index.js +57 -0
  430. package/dist/render/nexus/graph/index.js.map +1 -1
  431. package/dist/resources/spawn-wrapper.d.ts +8 -1
  432. package/dist/resources/spawn-wrapper.d.ts.map +1 -1
  433. package/dist/resources/spawn-wrapper.js +42 -5
  434. package/dist/resources/spawn-wrapper.js.map +1 -1
  435. package/dist/routing/build-command-groups.d.ts.map +1 -1
  436. package/dist/routing/build-command-groups.js +1 -0
  437. package/dist/routing/build-command-groups.js.map +1 -1
  438. package/dist/sagas/index.d.ts +1 -1
  439. package/dist/sagas/index.d.ts.map +1 -1
  440. package/dist/sagas/index.js +1 -1
  441. package/dist/sagas/index.js.map +1 -1
  442. package/dist/sagas/reconcile.d.ts +24 -4
  443. package/dist/sagas/reconcile.d.ts.map +1 -1
  444. package/dist/sagas/reconcile.js +226 -100
  445. package/dist/sagas/reconcile.js.map +1 -1
  446. package/dist/scaffold/ensure-config.d.ts.map +1 -1
  447. package/dist/scaffold/ensure-config.js +31 -1
  448. package/dist/scaffold/ensure-config.js.map +1 -1
  449. package/dist/scaffold/project-identity.d.ts +2 -8
  450. package/dist/scaffold/project-identity.d.ts.map +1 -1
  451. package/dist/scaffold/project-identity.js +5 -21
  452. package/dist/scaffold/project-identity.js.map +1 -1
  453. package/dist/security/input-sanitization.d.ts +9 -1
  454. package/dist/security/input-sanitization.d.ts.map +1 -1
  455. package/dist/security/input-sanitization.js +12 -2
  456. package/dist/security/input-sanitization.js.map +1 -1
  457. package/dist/selfimprove/fix-gen.js +4321 -1807
  458. package/dist/selfimprove/fix-gen.js.map +3 -3
  459. package/dist/sentient/propose-tick.d.ts.map +1 -1
  460. package/dist/sentient/propose-tick.js +4 -2
  461. package/dist/sentient/propose-tick.js.map +1 -1
  462. package/dist/sequence/index.d.ts.map +1 -1
  463. package/dist/sequence/index.js +6 -23
  464. package/dist/sequence/index.js.map +1 -1
  465. package/dist/session/engine-ops.d.ts +9 -0
  466. package/dist/session/engine-ops.d.ts.map +1 -1
  467. package/dist/session/engine-ops.js +110 -18
  468. package/dist/session/engine-ops.js.map +1 -1
  469. package/dist/sessions/assumptions.d.ts.map +1 -1
  470. package/dist/sessions/assumptions.js +7 -4
  471. package/dist/sessions/assumptions.js.map +1 -1
  472. package/dist/sessions/briefing.d.ts +6 -0
  473. package/dist/sessions/briefing.d.ts.map +1 -1
  474. package/dist/sessions/briefing.js +12 -1
  475. package/dist/sessions/briefing.js.map +1 -1
  476. package/dist/sessions/decisions.d.ts +38 -3
  477. package/dist/sessions/decisions.d.ts.map +1 -1
  478. package/dist/sessions/decisions.js +235 -21
  479. package/dist/sessions/decisions.js.map +1 -1
  480. package/dist/sessions/drift-watchdog.d.ts.map +1 -1
  481. package/dist/sessions/drift-watchdog.js +4 -2
  482. package/dist/sessions/drift-watchdog.js.map +1 -1
  483. package/dist/sessions/index.d.ts.map +1 -1
  484. package/dist/sessions/index.js +33 -4
  485. package/dist/sessions/index.js.map +1 -1
  486. package/dist/sessions/session-end-snapshot-entry.d.ts +26 -0
  487. package/dist/sessions/session-end-snapshot-entry.d.ts.map +1 -0
  488. package/dist/sessions/session-end-snapshot-entry.js +59 -0
  489. package/dist/sessions/session-end-snapshot-entry.js.map +1 -0
  490. package/dist/sessions/session-end-snapshot.d.ts +114 -0
  491. package/dist/sessions/session-end-snapshot.d.ts.map +1 -0
  492. package/dist/sessions/session-end-snapshot.js +446 -0
  493. package/dist/sessions/session-end-snapshot.js.map +1 -0
  494. package/dist/sessions/session-manifest-mirror.d.ts.map +1 -1
  495. package/dist/sessions/session-manifest-mirror.js +10 -17
  496. package/dist/sessions/session-manifest-mirror.js.map +1 -1
  497. package/dist/sessions/session-switch.d.ts.map +1 -1
  498. package/dist/sessions/session-switch.js +5 -3
  499. package/dist/sessions/session-switch.js.map +1 -1
  500. package/dist/sessions/snapshot.d.ts.map +1 -1
  501. package/dist/sessions/snapshot.js +5 -4
  502. package/dist/sessions/snapshot.js.map +1 -1
  503. package/dist/sessions/terminal-identity.d.ts +169 -0
  504. package/dist/sessions/terminal-identity.d.ts.map +1 -0
  505. package/dist/sessions/terminal-identity.js +273 -0
  506. package/dist/sessions/terminal-identity.js.map +1 -0
  507. package/dist/setup/sections/verification.d.ts +1 -1
  508. package/dist/setup/sections/verification.d.ts.map +1 -1
  509. package/dist/setup/sections/verification.js +11 -15
  510. package/dist/setup/sections/verification.js.map +1 -1
  511. package/dist/skills/discovery.d.ts +8 -2
  512. package/dist/skills/discovery.d.ts.map +1 -1
  513. package/dist/skills/discovery.js +15 -3
  514. package/dist/skills/discovery.js.map +1 -1
  515. package/dist/skills/dispatch.d.ts +5 -2
  516. package/dist/skills/dispatch.d.ts.map +1 -1
  517. package/dist/skills/dispatch.js +5 -2
  518. package/dist/skills/dispatch.js.map +1 -1
  519. package/dist/skills/doctor.d.ts.map +1 -1
  520. package/dist/skills/doctor.js +5 -1
  521. package/dist/skills/doctor.js.map +1 -1
  522. package/dist/skills/federated-search.js +2 -2
  523. package/dist/skills/federated-search.js.map +1 -1
  524. package/dist/skills/index.d.ts +3 -3
  525. package/dist/skills/index.d.ts.map +1 -1
  526. package/dist/skills/index.js +1 -1
  527. package/dist/skills/index.js.map +1 -1
  528. package/dist/skills/migration.d.ts +5 -5
  529. package/dist/skills/migration.d.ts.map +1 -1
  530. package/dist/skills/migration.js +7 -9
  531. package/dist/skills/migration.js.map +1 -1
  532. package/dist/skills/orchestrator/startup.d.ts.map +1 -1
  533. package/dist/skills/orchestrator/startup.js +4 -2
  534. package/dist/skills/orchestrator/startup.js.map +1 -1
  535. package/dist/skills/skill-paths.d.ts +30 -3
  536. package/dist/skills/skill-paths.d.ts.map +1 -1
  537. package/dist/skills/skill-paths.js +28 -9
  538. package/dist/skills/skill-paths.js.map +1 -1
  539. package/dist/skills/skill-root.d.ts +60 -11
  540. package/dist/skills/skill-root.d.ts.map +1 -1
  541. package/dist/skills/skill-root.js +100 -14
  542. package/dist/skills/skill-root.js.map +1 -1
  543. package/dist/skills/skills-guard.js +5 -5
  544. package/dist/skills/skills-guard.js.map +1 -1
  545. package/dist/skills/types.d.ts +23 -0
  546. package/dist/skills/types.d.ts.map +1 -1
  547. package/dist/skills/types.js.map +1 -1
  548. package/dist/spawn/agent-identity.d.ts +51 -2
  549. package/dist/spawn/agent-identity.d.ts.map +1 -1
  550. package/dist/spawn/agent-identity.js +89 -26
  551. package/dist/spawn/agent-identity.js.map +1 -1
  552. package/dist/spawn/branch-lock.d.ts.map +1 -1
  553. package/dist/spawn/branch-lock.js +56 -79
  554. package/dist/spawn/branch-lock.js.map +1 -1
  555. package/dist/spawn/index.d.ts +2 -2
  556. package/dist/spawn/index.d.ts.map +1 -1
  557. package/dist/spawn/index.js +1 -1
  558. package/dist/spawn/index.js.map +1 -1
  559. package/dist/spawn/worktree-lock-holder.d.ts +37 -0
  560. package/dist/spawn/worktree-lock-holder.d.ts.map +1 -0
  561. package/dist/spawn/worktree-lock-holder.js +41 -0
  562. package/dist/spawn/worktree-lock-holder.js.map +1 -0
  563. package/dist/sticky/convert.d.ts.map +1 -1
  564. package/dist/sticky/convert.js +16 -4
  565. package/dist/sticky/convert.js.map +1 -1
  566. package/dist/store/attachment-store.d.ts +14 -0
  567. package/dist/store/attachment-store.d.ts.map +1 -1
  568. package/dist/store/attachment-store.js +11 -1
  569. package/dist/store/attachment-store.js.map +1 -1
  570. package/dist/store/backup-inspect.d.ts +7 -3
  571. package/dist/store/backup-inspect.d.ts.map +1 -1
  572. package/dist/store/backup-inspect.js +18 -7
  573. package/dist/store/backup-inspect.js.map +1 -1
  574. package/dist/store/backup-sidecar.d.ts +60 -0
  575. package/dist/store/backup-sidecar.d.ts.map +1 -0
  576. package/dist/store/backup-sidecar.js +96 -0
  577. package/dist/store/backup-sidecar.js.map +1 -0
  578. package/dist/store/data-accessor.d.ts +1 -1
  579. package/dist/store/data-accessor.d.ts.map +1 -1
  580. package/dist/store/data-accessor.js +6 -6
  581. package/dist/store/data-accessor.js.map +1 -1
  582. package/dist/store/data-safety-central.d.ts +13 -4
  583. package/dist/store/data-safety-central.d.ts.map +1 -1
  584. package/dist/store/data-safety-central.js +31 -4
  585. package/dist/store/data-safety-central.js.map +1 -1
  586. package/dist/store/dual-scope-db.d.ts.map +1 -1
  587. package/dist/store/dual-scope-db.js +10 -0
  588. package/dist/store/dual-scope-db.js.map +1 -1
  589. package/dist/store/exodus/__fixtures__/representative-fixture.d.ts.map +1 -1
  590. package/dist/store/exodus/__fixtures__/representative-fixture.js +4 -0
  591. package/dist/store/exodus/__fixtures__/representative-fixture.js.map +1 -1
  592. package/dist/store/exodus/migrate.js +1 -1
  593. package/dist/store/exodus/migrate.js.map +1 -1
  594. package/dist/store/exodus/reconcile.js +1 -1
  595. package/dist/store/exodus/reconcile.js.map +1 -1
  596. package/dist/store/exodus/runtime-targets.d.ts +4 -3
  597. package/dist/store/exodus/runtime-targets.d.ts.map +1 -1
  598. package/dist/store/exodus/runtime-targets.js +4 -3
  599. package/dist/store/exodus/runtime-targets.js.map +1 -1
  600. package/dist/store/import-logging.d.ts.map +1 -1
  601. package/dist/store/import-logging.js +5 -4
  602. package/dist/store/import-logging.js.map +1 -1
  603. package/dist/store/legacy-tasks-lineage.d.ts.map +1 -1
  604. package/dist/store/legacy-tasks-lineage.js +2 -7
  605. package/dist/store/legacy-tasks-lineage.js.map +1 -1
  606. package/dist/store/lock.d.ts +1 -0
  607. package/dist/store/lock.d.ts.map +1 -1
  608. package/dist/store/lock.js +1 -0
  609. package/dist/store/lock.js.map +1 -1
  610. package/dist/store/memory-accessor.d.ts +8 -3
  611. package/dist/store/memory-accessor.d.ts.map +1 -1
  612. package/dist/store/memory-accessor.js +29 -13
  613. package/dist/store/memory-accessor.js.map +1 -1
  614. package/dist/store/memory-sqlite.d.ts.map +1 -1
  615. package/dist/store/memory-sqlite.js +5 -0
  616. package/dist/store/memory-sqlite.js.map +1 -1
  617. package/dist/store/open-cleo-db.d.ts.map +1 -1
  618. package/dist/store/open-cleo-db.js +11 -6
  619. package/dist/store/open-cleo-db.js.map +1 -1
  620. package/dist/store/portable-bundle-relocate.d.ts +13 -8
  621. package/dist/store/portable-bundle-relocate.d.ts.map +1 -1
  622. package/dist/store/portable-bundle-relocate.js +75 -31
  623. package/dist/store/portable-bundle-relocate.js.map +1 -1
  624. package/dist/store/portable-bundle-scan.d.ts.map +1 -1
  625. package/dist/store/portable-bundle-scan.js +2 -1
  626. package/dist/store/portable-bundle-scan.js.map +1 -1
  627. package/dist/store/portable-bundle.d.ts.map +1 -1
  628. package/dist/store/portable-bundle.js +7 -3
  629. package/dist/store/portable-bundle.js.map +1 -1
  630. package/dist/store/pre-repair-snapshot.d.ts +77 -0
  631. package/dist/store/pre-repair-snapshot.d.ts.map +1 -0
  632. package/dist/store/pre-repair-snapshot.js +122 -0
  633. package/dist/store/pre-repair-snapshot.js.map +1 -0
  634. package/dist/store/regenerators.d.ts +2 -1
  635. package/dist/store/regenerators.d.ts.map +1 -1
  636. package/dist/store/regenerators.js +17 -3
  637. package/dist/store/regenerators.js.map +1 -1
  638. package/dist/store/relocated-store-guard.d.ts +71 -0
  639. package/dist/store/relocated-store-guard.d.ts.map +1 -0
  640. package/dist/store/relocated-store-guard.js +138 -0
  641. package/dist/store/relocated-store-guard.js.map +1 -0
  642. package/dist/store/safety-data-accessor.d.ts +2 -2
  643. package/dist/store/safety-data-accessor.d.ts.map +1 -1
  644. package/dist/store/safety-data-accessor.js +2 -2
  645. package/dist/store/safety-data-accessor.js.map +1 -1
  646. package/dist/store/schema/attachments.d.ts +2 -2
  647. package/dist/store/schema/audit.d.ts +5 -5
  648. package/dist/store/schema/background-jobs.d.ts +1 -1
  649. package/dist/store/schema/cleo-global/models-catalog.d.ts +1 -1
  650. package/dist/store/schema/cleo-global/nexus.d.ts +686 -0
  651. package/dist/store/schema/cleo-global/nexus.d.ts.map +1 -1
  652. package/dist/store/schema/cleo-global/nexus.js +175 -7
  653. package/dist/store/schema/cleo-global/nexus.js.map +1 -1
  654. package/dist/store/schema/cleo-global/skills.d.ts +2 -2
  655. package/dist/store/schema/cleo-project/audit.d.ts +5 -5
  656. package/dist/store/schema/cleo-project/docs.d.ts +3 -3
  657. package/dist/store/schema/cleo-project/lifecycle.d.ts +3 -3
  658. package/dist/store/schema/cleo-project/provenance-commits.d.ts +2 -2
  659. package/dist/store/schema/cleo-project/provenance-rest.d.ts +3 -3
  660. package/dist/store/schema/cleo-project/tasks-core-batch2.d.ts +1 -1
  661. package/dist/store/schema/cleo-project/tasks-core.d.ts +6 -6
  662. package/dist/store/schema/cleo-shared/brain.d.ts +26 -26
  663. package/dist/store/schema/lifecycle.d.ts +3 -3
  664. package/dist/store/schema/manifest.d.ts +1 -1
  665. package/dist/store/schema/memory-schema.d.ts +26 -26
  666. package/dist/store/schema/nexus-schema.d.ts +696 -2
  667. package/dist/store/schema/nexus-schema.d.ts.map +1 -1
  668. package/dist/store/schema/nexus-schema.js +175 -19
  669. package/dist/store/schema/nexus-schema.js.map +1 -1
  670. package/dist/store/schema/provenance/releases.d.ts +1 -1
  671. package/dist/store/schema/skills-schema.d.ts +2 -2
  672. package/dist/store/schema/tasks.d.ts +5 -5
  673. package/dist/store/session-binding-schema.d.ts +132 -0
  674. package/dist/store/session-binding-schema.d.ts.map +1 -0
  675. package/dist/store/session-binding-schema.js +53 -0
  676. package/dist/store/session-binding-schema.js.map +1 -0
  677. package/dist/store/session-store.d.ts +262 -4
  678. package/dist/store/session-store.d.ts.map +1 -1
  679. package/dist/store/session-store.js +486 -26
  680. package/dist/store/session-store.js.map +1 -1
  681. package/dist/store/snapshot-gate.d.ts +239 -0
  682. package/dist/store/snapshot-gate.d.ts.map +1 -0
  683. package/dist/store/snapshot-gate.js +398 -0
  684. package/dist/store/snapshot-gate.js.map +1 -0
  685. package/dist/store/split-brain-import.js +2 -2
  686. package/dist/store/split-brain-import.js.map +1 -1
  687. package/dist/store/sqlite-backup.d.ts +55 -13
  688. package/dist/store/sqlite-backup.d.ts.map +1 -1
  689. package/dist/store/sqlite-backup.js +414 -106
  690. package/dist/store/sqlite-backup.js.map +1 -1
  691. package/dist/store/sqlite-data-accessor.d.ts +15 -0
  692. package/dist/store/sqlite-data-accessor.d.ts.map +1 -1
  693. package/dist/store/sqlite-data-accessor.js +63 -4
  694. package/dist/store/sqlite-data-accessor.js.map +1 -1
  695. package/dist/store/sqlite.d.ts +1 -1
  696. package/dist/store/sqlite.d.ts.map +1 -1
  697. package/dist/store/sqlite.js +53 -5
  698. package/dist/store/sqlite.js.map +1 -1
  699. package/dist/store/store-write-guard.d.ts +28 -0
  700. package/dist/store/store-write-guard.d.ts.map +1 -0
  701. package/dist/store/store-write-guard.js +50 -0
  702. package/dist/store/store-write-guard.js.map +1 -0
  703. package/dist/store/table-classification.d.ts +143 -0
  704. package/dist/store/table-classification.d.ts.map +1 -0
  705. package/dist/store/table-classification.js +1866 -0
  706. package/dist/store/table-classification.js.map +1 -0
  707. package/dist/store/task-version.d.ts +72 -0
  708. package/dist/store/task-version.d.ts.map +1 -0
  709. package/dist/store/task-version.js +93 -0
  710. package/dist/store/task-version.js.map +1 -0
  711. package/dist/store/tasks-schema.d.ts +1 -0
  712. package/dist/store/tasks-schema.d.ts.map +1 -1
  713. package/dist/store/tasks-schema.js +13 -0
  714. package/dist/store/tasks-schema.js.map +1 -1
  715. package/dist/store/tasks-sqlite.d.ts +10 -3
  716. package/dist/store/tasks-sqlite.d.ts.map +1 -1
  717. package/dist/store/tasks-sqlite.js +12 -3
  718. package/dist/store/tasks-sqlite.js.map +1 -1
  719. package/dist/store/twin-collapse.d.ts +275 -0
  720. package/dist/store/twin-collapse.d.ts.map +1 -0
  721. package/dist/store/twin-collapse.js +805 -0
  722. package/dist/store/twin-collapse.js.map +1 -0
  723. package/dist/store/umbrella-data-accessor.d.ts +2 -2
  724. package/dist/store/umbrella-data-accessor.d.ts.map +1 -1
  725. package/dist/store/umbrella-data-accessor.js +2 -2
  726. package/dist/store/umbrella-data-accessor.js.map +1 -1
  727. package/dist/store/validation-schemas.d.ts +63 -63
  728. package/dist/store/worktree-isolation-guard.d.ts +46 -24
  729. package/dist/store/worktree-isolation-guard.d.ts.map +1 -1
  730. package/dist/store/worktree-isolation-guard.js +69 -50
  731. package/dist/store/worktree-isolation-guard.js.map +1 -1
  732. package/dist/system/backup.d.ts.map +1 -1
  733. package/dist/system/backup.js +3 -67
  734. package/dist/system/backup.js.map +1 -1
  735. package/dist/system/cleo-link.d.ts +163 -0
  736. package/dist/system/cleo-link.d.ts.map +1 -0
  737. package/dist/system/cleo-link.js +246 -0
  738. package/dist/system/cleo-link.js.map +1 -0
  739. package/dist/system/dependencies.d.ts.map +1 -1
  740. package/dist/system/dependencies.js +3 -6
  741. package/dist/system/dependencies.js.map +1 -1
  742. package/dist/system/global-delivery.d.ts +205 -0
  743. package/dist/system/global-delivery.d.ts.map +1 -0
  744. package/dist/system/global-delivery.js +320 -0
  745. package/dist/system/global-delivery.js.map +1 -0
  746. package/dist/system/health.d.ts.map +1 -1
  747. package/dist/system/health.js +29 -6
  748. package/dist/system/health.js.map +1 -1
  749. package/dist/system/project-health.d.ts.map +1 -1
  750. package/dist/system/project-health.js +1 -20
  751. package/dist/system/project-health.js.map +1 -1
  752. package/dist/system/runtime.d.ts.map +1 -1
  753. package/dist/system/runtime.js +2 -12
  754. package/dist/system/runtime.js.map +1 -1
  755. package/dist/system/safestop.d.ts.map +1 -1
  756. package/dist/system/safestop.js +5 -2
  757. package/dist/system/safestop.js.map +1 -1
  758. package/dist/system/skill-fixtures.d.ts +200 -0
  759. package/dist/system/skill-fixtures.d.ts.map +1 -0
  760. package/dist/system/skill-fixtures.js +331 -0
  761. package/dist/system/skill-fixtures.js.map +1 -0
  762. package/dist/tasks/add.d.ts.map +1 -1
  763. package/dist/tasks/add.js +4 -2
  764. package/dist/tasks/add.js.map +1 -1
  765. package/dist/tasks/affected-packages.d.ts +173 -0
  766. package/dist/tasks/affected-packages.d.ts.map +1 -0
  767. package/dist/tasks/affected-packages.js +389 -0
  768. package/dist/tasks/affected-packages.js.map +1 -0
  769. package/dist/tasks/change-set.d.ts +151 -0
  770. package/dist/tasks/change-set.d.ts.map +1 -0
  771. package/dist/tasks/change-set.js +634 -0
  772. package/dist/tasks/change-set.js.map +1 -0
  773. package/dist/tasks/complete.d.ts.map +1 -1
  774. package/dist/tasks/complete.js +10 -5
  775. package/dist/tasks/complete.js.map +1 -1
  776. package/dist/tasks/done-plan.d.ts +103 -0
  777. package/dist/tasks/done-plan.d.ts.map +1 -0
  778. package/dist/tasks/done-plan.js +541 -0
  779. package/dist/tasks/done-plan.js.map +1 -0
  780. package/dist/tasks/done-record.d.ts +127 -0
  781. package/dist/tasks/done-record.d.ts.map +1 -0
  782. package/dist/tasks/done-record.js +373 -0
  783. package/dist/tasks/done-record.js.map +1 -0
  784. package/dist/tasks/duplicate-detector.d.ts +68 -11
  785. package/dist/tasks/duplicate-detector.d.ts.map +1 -1
  786. package/dist/tasks/duplicate-detector.js +314 -58
  787. package/dist/tasks/duplicate-detector.js.map +1 -1
  788. package/dist/tasks/evidence-paths.d.ts +78 -0
  789. package/dist/tasks/evidence-paths.d.ts.map +1 -0
  790. package/dist/tasks/evidence-paths.js +150 -0
  791. package/dist/tasks/evidence-paths.js.map +1 -0
  792. package/dist/tasks/evidence.d.ts +55 -0
  793. package/dist/tasks/evidence.d.ts.map +1 -1
  794. package/dist/tasks/evidence.js +223 -26
  795. package/dist/tasks/evidence.js.map +1 -1
  796. package/dist/tasks/gate-preview.d.ts +5 -0
  797. package/dist/tasks/gate-preview.d.ts.map +1 -1
  798. package/dist/tasks/gate-preview.js +25 -21
  799. package/dist/tasks/gate-preview.js.map +1 -1
  800. package/dist/tasks/gate-result-cache.d.ts +205 -0
  801. package/dist/tasks/gate-result-cache.d.ts.map +1 -0
  802. package/dist/tasks/gate-result-cache.js +285 -0
  803. package/dist/tasks/gate-result-cache.js.map +1 -0
  804. package/dist/tasks/gate-runner.d.ts +126 -3
  805. package/dist/tasks/gate-runner.d.ts.map +1 -1
  806. package/dist/tasks/gate-runner.js +483 -28
  807. package/dist/tasks/gate-runner.js.map +1 -1
  808. package/dist/tasks/session-scope.d.ts +3 -1
  809. package/dist/tasks/session-scope.d.ts.map +1 -1
  810. package/dist/tasks/session-scope.js +18 -3
  811. package/dist/tasks/session-scope.js.map +1 -1
  812. package/dist/tasks/tool-resolver.d.ts +23 -6
  813. package/dist/tasks/tool-resolver.d.ts.map +1 -1
  814. package/dist/tasks/tool-resolver.js +146 -8
  815. package/dist/tasks/tool-resolver.js.map +1 -1
  816. package/dist/tasks/tool-vacuity.d.ts +71 -0
  817. package/dist/tasks/tool-vacuity.d.ts.map +1 -0
  818. package/dist/tasks/tool-vacuity.js +334 -0
  819. package/dist/tasks/tool-vacuity.js.map +1 -0
  820. package/dist/tasks/update.d.ts +8 -0
  821. package/dist/tasks/update.d.ts.map +1 -1
  822. package/dist/tasks/update.js +159 -78
  823. package/dist/tasks/update.js.map +1 -1
  824. package/dist/upgrade.d.ts.map +1 -1
  825. package/dist/upgrade.js +18 -2
  826. package/dist/upgrade.js.map +1 -1
  827. package/dist/validation/doctor/checks.d.ts +20 -2
  828. package/dist/validation/doctor/checks.d.ts.map +1 -1
  829. package/dist/validation/doctor/checks.js +64 -4
  830. package/dist/validation/doctor/checks.js.map +1 -1
  831. package/dist/validation/doctor/index.d.ts +1 -1
  832. package/dist/validation/doctor/index.d.ts.map +1 -1
  833. package/dist/validation/doctor/index.js +1 -1
  834. package/dist/validation/doctor/index.js.map +1 -1
  835. package/dist/validation/doctor/utils.d.ts.map +1 -1
  836. package/dist/validation/doctor/utils.js +7 -2
  837. package/dist/validation/doctor/utils.js.map +1 -1
  838. package/dist/validation/engine-ops.d.ts +15 -0
  839. package/dist/validation/engine-ops.d.ts.map +1 -1
  840. package/dist/validation/engine-ops.js +249 -98
  841. package/dist/validation/engine-ops.js.map +1 -1
  842. package/migrations/drizzle-cleo-global/20260927000000_t12469-project-locations/migration.sql +121 -0
  843. package/migrations/drizzle-cleo-global/20260927010000_t12543-user-profile-project-scope/migration.sql +23 -0
  844. package/migrations/drizzle-cleo-global/20260928010000_t12470-location-candidates/migration.sql +72 -0
  845. package/migrations/drizzle-cleo-global/20260928020000_t12510-nexus-devices/migration.sql +34 -0
  846. package/migrations/drizzle-cleo-global/20260928030000_t12511-project-git-state/migration.sql +62 -0
  847. package/migrations/drizzle-cleo-project/20260927000000_t12499-session-terminal-bindings/migration.sql +34 -0
  848. package/migrations/drizzle-cleo-project/20260928000000_t12500-binding-provider-flag/migration.sql +15 -0
  849. package/package.json +23 -13
  850. package/schemas/config.schema.json +54 -0
  851. package/schemas/project-context.schema.json +51 -3
  852. package/schemas/project-info.schema.json +28 -1
  853. package/templates/CLEO-INJECTION.md +40 -332
  854. package/templates/CLEO-REFERENCE.md +303 -0
  855. package/templates/workflows/README.md +36 -14
@@ -0,0 +1,303 @@
1
+ # CLEO Protocol — on-demand reference
2
+
3
+ Version: 2.21.0 | Companion to the always-loaded `CLEO-INJECTION.md` core
4
+
5
+ Not injected into agent context. Print one section with `cleo briefing inject --section <name>`; tier-2 spawn prompts embed this whole file. Section names are the `CLEO-INJECTION:section` markers below.
6
+
7
+ <!-- CLEO-INJECTION:section=knowledge-repair -->
8
+ ## Knowledge repair
9
+
10
+ `cleo doctor knowledge --dry-run`, then `--prepare FILE --actor AGENT`. Discover retained work with `--jobs --actor AGENT`, `--limit` and returned JSON `--cursor`; follow exact `inspectArgv`, not latest-job guesses. Retain partial diagnostics. Use `--apply JOB`, `--inspect JOB`, `--cancel JOB`, or `--resume JOB` with the original explicit `--actor AGENT --proposal-id PROPOSAL`; never borrow stored actor attribution. Verify receipts and paged lifecycle evidence (`--limit`/`--offset`); retain diagnostic failures and `prepared`/`attemptFailure` recovery details. Cancellation is a request, not rollback. Each invocation shares a default 2000ms budget (`--budget-ms`); a later explicit attempt is fresh, without renewing an active deadline or preempting synchronous SQLite. Resume preserves prior outcomes and uncertain expired attempts; live owners remain fenced. Stale source requires reassessment. After rollback, apply/resume return `E_REPAIR_ROLLED_BACK` with original and rollback receipts in `recoveryState`, not current repaired effects. Use `--rollback RECEIPT --actor AGENT --proposal-id NEW_ID`; inspect both receipts. Versioned quarantine recovery restores only `invalid_at`, preserving validated paired citation usage; protected edits conflict. Legacy receipts require exact images. Prepared rollback still guards the full current image. `cleo doctor repair` remains database recovery.
11
+ <!-- /CLEO-INJECTION:section=knowledge-repair -->
12
+
13
+ <!-- CLEO-INJECTION:section=projection -->
14
+ ## Projections, budgets and mutation receipts
15
+
16
+ Projection markers include omitted empty/null fields and survive repeated projection. `_withheld` maps omitted fields to UTF-8 content bytes (JSON bytes for structured values). A record without `_withheld` is complete. Budgeting preserves coverage, diagnostic failures, authority corrections and pending repair facts before examples. A read budget too small for mandatory facts fails explicitly; request narrower scope or more budget. Never treat this failure as clean coverage.
17
+
18
+ An impossible internal mutation budget rejects before execution. If a successful mutation's actual receipt exceeds a viable budget, its success and complete receipt remain available with `_budgetEnforcement.withinBudget: false`; overflow does not mean rollback. Inspect the receipt before retrying a mutation.
19
+
20
+ Output detail (ADR-086): `--output count` counts the returned rows, agreeing with IDs/table. `data.population` separates matched/returned counts and archive scope; scalar modes disclose these facts on stderr. `--field` resolves projected `description`/`acceptance`/`verification` without `--full`. `--output id` emits affected IDs once in created/updated/deleted order; `--full` restores full records. Delete receipts retain every affected ID, including cascaded children. Rejected output parsing: `cleo show … | tail -1 | jq …`, `cleo list … | jq -r '.data.tasks[].id'`, `cleo add 'X' 2>&1 | grep -oE 'T[0-9]+'`.
21
+ <!-- /CLEO-INJECTION:section=projection -->
22
+
23
+ <!-- CLEO-INJECTION:section=task-creation -->
24
+ ## Task Creation (ADR-066)
25
+
26
+ `--acceptance` required for ALL tasks. `cleo bug`/`--role` removed — use `cleo add --kind bug --severity Px --acceptance "..."`. Axes: `--type {epic|task|subtask}`, `--kind {work|research|experiment|bug|spike|release}`, `--severity {P0-P3}` (orthogonal to `--priority`; triggers Ed25519 attestation).
27
+
28
+ | Goal | Command |
29
+ |------|---------|
30
+ | Create a single task | `cleo add --type task --parent <epicId> --title "..." --acceptance "..."` |
31
+ | Create N tasks atomically | `cleo add-batch --file tasks.json --parent <epicId>` (file is a top-level JSON array of task objects) |
32
+ | Preview batch before inserting | `cleo add-batch --file tasks.json --parent <epicId> --dry-run` |
33
+ | Batch from stdin | `echo '[...]' \| cleo add-batch --file - --parent <epicId>` |
34
+
35
+ Acceptance input normalizes identically across add, update, batch and saga creation: string arrays in JSON parameters; for `--acceptance`, a JSON-array string or the documented pipe-delimited form. Array entries preserve literal pipes and quoted unions. Strings are trimmed and blank strings omitted; nonstring entries or malformed explicit JSON arrays reject the whole mutation. An explicit `[]` on update requests a clear; omitted acceptance stays unchanged. Normalized criteria still obey policy and immutability, including `--reason` for locked changes. Invalid stored criteria are diagnostic failures; never split historical records without original-input provenance and a guarded repair receipt.
36
+
37
+ Explicit `critical` priority on add/update requires a dependency or a nonempty `--depends-waiver`; updates check the resulting dependency set. CLI flags, JSON params, and SDK calls share this policy. Explicit severity changes use the project's signing identity: a nonempty `ownerPubkeys` allowlist restricts signers; an absent or empty list keeps the existing opt-in policy. Unreadable or malformed authority is an explicit configuration failure. Committed severity, duplicate-bypass, and dependency-waiver evidence lives in the task transaction audit. Historical filesystem attestations alone do not prove a task committed. Dry-run creates no committed attestation; failed writes leave no committed receipt.
38
+
39
+ `cleo add-batch` inserts all tasks in a single transaction — ANY failure rolls back ALL inserts. Use `--dry-run` first; the projected mutation envelope reports `/data/count` and `/data/wouldCreate` as the predicted create count while `/data/insertedCount` remains `0`. See `ct-cleo` skill section "Decomposing an epic into N tasks" for the JSON schema and rollback semantic.
40
+
41
+ ### Sagas — PM-Core V2 containment (ADR-088 supersedes ADR-073)
42
+
43
+ A **Saga** (`SG-`) is a multi-release theme grouping multiple Epics. `type='saga'` is canonical (PM-Core V2). Member Epics link via `tasks.parent_id` containment.
44
+
45
+ | Goal | Command |
46
+ |------|---------|
47
+ | Create a Saga | `cleo saga create --title "..." --description "..." --acceptance "ac1\|ac2\|ac3\|ac4\|ac5"` |
48
+ | Link an Epic to a Saga | `cleo saga add <sagaId> <epicId>` |
49
+ | List all Sagas | `cleo saga list` |
50
+ | List member Epics of a Saga | `cleo saga members <sagaId>` |
51
+ | Aggregate status across members | `cleo saga rollup <sagaId>` |
52
+
53
+ Parent matrix: Saga `parent_id IS NULL`; Epic `parent_id` = Saga (or null for standalone); Task `parent_id` = Epic; Subtask `parent_id` = Task. `task_relations` (incl. `groups`) is non-containment only — dependencies, ordering, cross-reference, evidence, supersession, provenance.
54
+
55
+ ### Depth + decomposition
56
+
57
+ `saga 0 → epic 1 → task 2 → subtask 3`; `hierarchy.maxDepth` (default 3) is the max depth VALUE, **inclusive**, so a subtask under a task is legal. `E_CLEO_DEPTH_EXCEEDED` now means only: you parented under a subtask, the leaf tier. `--type` is honoured verbatim — so `--type subtask --parent <epic>` is REFUSED, not silently retyped. A task is **either** a leaf with its own text ACs **or** a container with children, never both (PM-Core V2 design-point 3) — so the first `cleo add` under a task carrying `--acceptance` text is refused, as expected. Convert it:
58
+
59
+ | Goal | Command |
60
+ |------|---------|
61
+ | Add the subtask AND convert in one call | `cleo add --type subtask --parent <id> --title "..." --acceptance "..." --auto-decompose` |
62
+ | Convert first, then add normally | `cleo decompose <id>` (`--dry-run`, `--child-title "..."`) |
63
+
64
+ `--auto-decompose` is opt-in: it rewrites the PARENT and reports `autoDecomposed: { childId, movedAcceptance }` — read it, the task you filed is now a container. `cleo update <id> --acceptance ""` does NOT work (enforcement rejects empty).
65
+ <!-- /CLEO-INJECTION:section=task-creation -->
66
+
67
+ <!-- CLEO-INJECTION:section=task-discovery -->
68
+ ### Overlap reconciliation across a saga
69
+
70
+ `cleo add` checks duplicates only at insert, so partial overlap and later drift go unseen. Sweep for it:
71
+
72
+ | Goal | Command |
73
+ |------|---------|
74
+ | Report overlapping scope (read-only) | `cleo reconcile scope <sagaId\|epicId>` |
75
+ | Narrow to strongest signals | `cleo reconcile scope <id> --threshold 0.75` |
76
+ | Write the proposed `relates` edges | `cleo reconcile scope <id> --apply` |
77
+
78
+ Actions: **merge** (same tier+parent, ≥90%) · **absorb** (≥90% across containers) · **split** (shared scope apart — use `cleo decompose`) · **link** (siblings, usually intended sequencing). `--apply` writes ONLY `relates` edges (nothing merged, retitled, reparented or deleted; the earlier task survives). Shared naming inflates `link` similarity; act on `merge`/`absorb`.
79
+
80
+ ## Task Discovery
81
+
82
+ Task search defaults to lexical. For approximate character-subsequence matches, use `cleo find "query" --fuzzy`. Check `match.kind`, `match.fields`, and reason before inferring related work or duplicates. Compact output retains fuzzy provenance; scalar/human output explains it on stderr. `--in title|description|notes|id` restricts fields. Semantic retrieval is separately identified.
83
+
84
+ Compact SDK list/find `_withheld` retains omitted names and original UTF-8 sizes through later CLI projections. Fetch full records; absence is not emptiness.
85
+
86
+ List/find default to excluding archived rows; `--include-archive` applies the same filters to archives. Inspect `data.population` before inferring completeness; `truncated: true` includes nonzero offsets. Budgets cannot silently remove population facts or their rows.
87
+
88
+ **Use `cleo focus` to orient on a task. Use `cleo find` for discovery. NEVER `cleo list` for browsing.**
89
+
90
+ | Command | ~Tokens | Use |
91
+ |---------|---------|-----|
92
+ | `cleo focus <id>` | ≤ 1 500 | **Primary orient surface** — identity + scope + blockers + ready wave + docs + brain context in ONE call |
93
+ | `cleo find "query"` | 200-400 | Search tasks (default) |
94
+ | `cleo show <id> --full` | 300-600 | Full record beyond focus; bare show withholds fields (`_withheld`) |
95
+ | `cleo list --parent <id>` | 1000-5000 | Direct children only |
96
+ <!-- /CLEO-INJECTION:section=task-discovery -->
97
+
98
+ <!-- CLEO-INJECTION:section=task-relationships -->
99
+ ## Task Relationships — depends, blockedBy, relates
100
+
101
+ | System | Semantics | CLI |
102
+ |--------|-----------|-----|
103
+ | `depends` | **Blocking execution dependency** — task cannot start until all `depends` tasks are `done` | `cleo add --depends T1,T2` / `cleo update --depends ...` |
104
+ | `blockedBy` | **Free-text reason** why a task is blocked (e.g. "waiting for API key") | `cleo update --blocked-by "reason"` / `--clear-blocked-by` |
105
+ | `relates` | **Semantic, non-blocking** linkage (`blocks`, `related`, `duplicates`, `absorbs`, `fixes`, `extends`, `supersedes`) | `cleo relates add <from> <to> <type> <reason>` |
106
+
107
+ **Rule:** `relates` never blocks; `blocked-by` takes a reason, not a task ID. Details: `ct-cleo` → "Task Relationship Systems".
108
+ <!-- /CLEO-INJECTION:section=task-relationships -->
109
+
110
+ <!-- CLEO-INJECTION:section=memory -->
111
+ ## Memory (BRAIN)
112
+
113
+ 3-layer retrieval — search first, then fetch:
114
+
115
+ | Step | Command | ~Tokens |
116
+ |------|---------|---------|
117
+ | Search | `cleo memory find "query"` | 50/hit |
118
+ | Context | `cleo memory timeline <id>` | 200-500 |
119
+ | Details | `cleo memory fetch <id>` | 500/entry |
120
+ | Save | `cleo memory observe "text" --title "title"` | — |
121
+ | LLM status | `cleo memory llm-status` | 50 |
122
+ | Ground-truth promote | `cleo memory verify <id>` (owner only) | 50 |
123
+
124
+ Memory context: `cleo memory digest` defaults to a live project summary; no `--brief` flag. Set `brain.memoryBridge.mode = "file"` for legacy `@.cleo/memory-bridge.md` injection.
125
+ <!-- /CLEO-INJECTION:section=memory -->
126
+
127
+ <!-- CLEO-INJECTION:section=memory-jit -->
128
+ ## Memory Protocol (JIT)
129
+
130
+ | Need | Command |
131
+ |------|---------|
132
+ | Prior decisions | `cleo memory find "<topic>" --type decision` |
133
+ | Known patterns | `cleo memory find "<domain>" --type pattern` |
134
+ | Timeline context | `cleo memory timeline <id>` |
135
+ | Code context | `cleo nexus context <symbol>` |
136
+ | Impact analysis | `cleo nexus impact <symbol>` |
137
+
138
+ ### Decision Lookup (prefer BRAIN decision-store over inline ledgers)
139
+
140
+ Store architectural decisions in BRAIN (`.cleo/brain.db` → `brain_decisions`), not Markdown ledgers; cite durable IDs.
141
+
142
+ **Primary lookup — always try first:**
143
+ 1. `cleo memory decision-find --query <term>` — keyword search of decision records
144
+ 2. `cleo memory find <term> --type decision` — broader, decision-scoped
145
+ 3. `cleo memory fetch <id>` — full record
146
+
147
+ **Decision IDs (D0xx, AGT-*) are NOT globally unique.** Verify BRAIN `source_table`/`source_rowid` when citing; documents can reuse IDs.
148
+
149
+ **Historical fallback:** `cleo docs list` and `cleo docs fetch <slug>`. Preserve provenance; do not promote historical text over sourced current guidance.
150
+
151
+ Check pending/accepted/superseded status. `decision-find` has **no epic filter**: use query text (`cleo memory decision-find "<epicId>"`).
152
+
153
+ Budget: 3 JIT calls per task phase. More = task is underspecified.
154
+ <!-- /CLEO-INJECTION:section=memory-jit -->
155
+
156
+ <!-- CLEO-INJECTION:section=data-location -->
157
+ ## Where the data lives — never read `.cleo/*.db` directly
158
+
159
+ Store = **`.cleo/cleo.db`**; task rows are in PREFIXED tables (`tasks_tasks`, …). Three decoys make a HEALTHY project look corrupt:
160
+
161
+ | Decoy | Reality |
162
+ |-------|---------|
163
+ | `.cleo/tasks.db`, small + months old | The pre-migration store, left under the old live name |
164
+ | `.cleo/backups/sqlite/tasks-<ts>.db`, ~100× bigger | Snapshots **of `cleo.db`**; `tasks-` is a legacy label |
165
+ | bare `tasks` table, 0 rows | Empty relic beside the populated `tasks_tasks` |
166
+
167
+ Small legacy DBs beside large snapshots do not prove corruption. `cleo doctor superseded-store` identifies the live store by row counts; `briefing`/`focus` already read it. Use `cleo backup inspect <snapshot> --record-id <id>` for read-only historical evidence; scoped absence or unknown provenance is not recovery authority.
168
+ <!-- /CLEO-INJECTION:section=data-location -->
169
+
170
+ <!-- CLEO-INJECTION:section=nexus -->
171
+ ## Nexus — when to use which scope
172
+
173
+ `cleo nexus` queries this repo's symbol graph.
174
+
175
+ | Intent | Command |
176
+ | --- | --- |
177
+ | **Check the index before trusting it** | `cleo nexus status` |
178
+ | Blast radius before editing a symbol | `cleo nexus impact <symbol>` |
179
+ | Callers / callees / community of a symbol | `cleo nexus context <symbol>` |
180
+ | Everything about one symbol in one call | `cleo nexus full-context <symbol>` |
181
+ | Find a symbol by code text | `cleo nexus search-code "<text>"` |
182
+ | Symbols touched by a task | `cleo nexus task-symbols <taskId>` |
183
+ | Why does this symbol exist / who needs it | `cleo nexus why <symbol>` |
184
+ | Detected communities / execution flows | `cleo nexus clusters` / `flows` |
185
+ | Refresh the index | `cleo nexus analyze` |
186
+
187
+ **FIRST CALL IS `cleo nexus status`.** Check `nodeCount`, `lastIndexedAt`, `staleFileCount`/`fileCount`. Queries report `_nexus.freshness` and auto-refresh ≤25 stale files; beyond that they warn `W_NEXUS_INDEX_STALE`. `analyze` is incremental (`--full` rebuilds). For stale coverage, refresh or inspect source with `git grep` and disclose that basis. Impact/context `E_NOT_FOUND` includes index size, median age and a repair command; inspect these first.
188
+
189
+ **Project resolution**: `--project-id` > `--path` > `cwd`.
190
+ Identity is the portable `project_id` (`.cleo/project-id`); a path is a per-device hint.
191
+
192
+ **Rule**: BEFORE editing any symbol, run `cleo nexus impact <symbol>`.
193
+ HIGH/CRITICAL requires reviewing affected callers before editing. For stale, partial, missing, or failed coverage, inspect source and report the remaining uncertainty. An empty footprint alone never establishes `NONE`.
194
+ <!-- /CLEO-INJECTION:section=nexus -->
195
+
196
+ <!-- CLEO-INJECTION:section=orchestration -->
197
+ ## Orchestration (for epics ≥ 5 tasks)
198
+
199
+ | Goal | Command |
200
+ |------|---------|
201
+ | Initialize epic pipeline | `cleo orchestrate start <epicId>` (auto-inits LOOM research stage) |
202
+ | Get parallel-safe wave | `cleo orchestrate ready <epicId>` |
203
+ | Get spawn prompt for a task | `cleo orchestrate spawn <taskId>` |
204
+ | Spawn without worktree (opt-out) | `cleo orchestrate spawn <taskId> --no-worktree` |
205
+ | Multi-agent IVTR loop | `cleo orchestrate ivtr <taskId> --start` |
206
+ | View epic wave plan | `cleo orchestrate waves <epicId>` |
207
+ | Grant HITL approval (paused playbook) | `cleo orchestrate approve <resumeToken>` |
208
+ | Deny HITL approval with reason | `cleo orchestrate reject <resumeToken> --reason "<r>"` |
209
+ | List awaiting HITL approvals | `cleo orchestrate pending` |
210
+ <!-- /CLEO-INJECTION:section=orchestration -->
211
+
212
+ <!-- CLEO-INJECTION:section=playbooks -->
213
+ ## Worktree-by-Default (T1140 · ADR-055)
214
+
215
+ `cleo orchestrate spawn` provisions a Git worktree at `<cleoHome>/worktrees/<projectHash>/<taskId>/`. Its required `## Worktree Setup (REQUIRED)` section names the path, branch and `FIRST ACTION: cd '<path>'`. Confine reads/writes/Git operations there. Integrate with `git merge --no-ff` to preserve commit SHAs and authors (ADR-062). Use `--no-worktree` for meta-tasks.
216
+
217
+ ## Playbook Domain
218
+
219
+ `.cantbook` YAML encodes staged agent flows (deterministic state machine, HMAC-signed HITL resume tokens; ADR-053).
220
+
221
+ | Goal | Command |
222
+ |------|---------|
223
+ | Execute a `.cantbook` playbook | `cleo playbook run <name>` |
224
+ | Inspect run state | `cleo playbook status <runId>` |
225
+ | Resume after HITL approval | `cleo playbook resume <runId>` |
226
+
227
+ Starters (`@cleocode/playbooks`): `rcasd`, `ivtr`, `release`.
228
+ <!-- /CLEO-INJECTION:section=playbooks -->
229
+
230
+ <!-- CLEO-INJECTION:section=documents -->
231
+ ## Documents & Attachments
232
+
233
+ | Goal | Command |
234
+ |------|---------|
235
+ | Attach file/url to task | `cleo docs add <taskId> <repo-relative-file> --type <kind> --slug <slug>` or `--url <url>` |
236
+ | List task attachments | `cleo docs list --task <id>` |
237
+ | List valid doc kinds | `cleo docs list-types` |
238
+ | Generate llms.txt summary | `cleo docs generate --for <taskId>` |
239
+
240
+ Use current repo-relative paths, never arbitrary external absolute paths (`/tmp`, other checkouts). Publish: `cleo docs publish --for <ownerId> --to <repo-relative-path>`. Runtime kinds: `cleo docs list-types` / `DocKindRegistry`, not stale lists. Document storage success is separate from optional projection verification. Read `data.projection` after `cleo docs add`: retain coverage, diagnostics, captured project identity, deadline, and any job/receipt reference. Pending work can have an unresolved committed outcome; inspect it before explicit resume, never repeat the add blindly. One two-second maintenance budget covers preparation through verification; timer expiry does not preempt synchronous SQLite. Verify exact bytes with `cleo docs fetch <slug>` JSON `data.bytesBase64` and `data.metadata.sha256`; rendered content can add a newline.
241
+ <!-- /CLEO-INJECTION:section=documents -->
242
+
243
+ <!-- CLEO-INJECTION:section=human-render -->
244
+ ## Human Render Contract (ADR-077)
245
+ Typed `RenderableEnvelope<T>` from `@cleocode/contracts`. `envelope.data.kind` ∈ `tree | table | list | grouped-list | section | single | generic` — agents route on `kind`. Register with `registerRenderer(command, kind, fn)` (`packages/core/src/render/`). Commands: `cleo show T<id>` (typed), `cleo show T<id> --human` (force), `cleo tree T<id>` (generic walk of parent + `groups` edges).
246
+ <!-- /CLEO-INJECTION:section=human-render -->
247
+
248
+ <!-- CLEO-INJECTION:section=spawn-tiers -->
249
+ ## Spawn Prompt Contents (what subagents receive)
250
+
251
+ `cleo orchestrate spawn <taskId>` embeds a resolved prompt. Tier 2 is self-contained; tiers 0-1 carry the core and point subagents at `cleo briefing inject --section <name>` for reference sections. Content tiers:
252
+
253
+ | Tier | Contents |
254
+ |------|----------|
255
+ | `0` | Task identity · file paths · session linkage · stage guidance · evidence gates · quality gates · return format · protocol pointer |
256
+ | `1` | tier 0 + **CLEO-INJECTION.md core embed** (on-demand sections by `cleo briefing inject --section <name>`) — **default** |
257
+ | `2` | tier 1 + this reference embedded in full + **ct-cleo** + **ct-orchestrator** skill excerpts + **SUBAGENT-PROTOCOL-BLOCK** + anti-patterns |
258
+
259
+ `cleo orchestrate spawn T1234 --tier 0|1|2`: tier 0 for quick workers, tier 2 for autonomous ones.
260
+
261
+ Before dispatch, assert these required sections: `## Task Identity` · `## File Paths (absolute — do not guess)` · `## Session Linkage` · `## Stage-Specific Guidance` · `## Evidence-Based Gate Ritual (MANDATORY · ADR-051 · T832)` · `## Quality Gates` · `## Return Format Contract (MANDATORY)`.
262
+ <!-- /CLEO-INJECTION:section=spawn-tiers -->
263
+
264
+ <!-- CLEO-INJECTION:section=evidence -->
265
+ ## Evidence reference (ADR-051 · ADR-061)
266
+
267
+ A merged PR and green CI provide provenance. For `implemented`, pair `pr:<number>` with `files:<changed-paths>`; CLEO checks task linkage, complete changed-file coverage, and the actual merge commit's bytes. Documentation and research tasks may use appropriate documentary artifacts. The receipt retains criterion hashes, artifact paths, and result references. A valid child completion leaves any parent with unproven criteria open.
268
+
269
+ | Exit | Code | Fix |
270
+ |:----:|------|-----|
271
+ | — | `E_EVIDENCE_TESTS_FAILED` | Fix failing tests before re-verifying with `tool:pnpm-test` or `test-run:<json>` |
272
+ | — | `E_EVIDENCE_INVALID_DECISION` | `decision:<id>` atom — decision ID not found or not accepted/proposed in BRAIN |
273
+ | — | `E_EVIDENCE_GIT_ROOT` | The CLEO root is not a git checkout — a LAYOUT fact, not a failing atom. One child repo, or a `commit:` SHA that exists in exactly one child, resolves automatically. Otherwise declare it: `"evidence": { "gitRoot": "<subdir>" }` in `.cleo/project-context.json`, or `CLEO_EVIDENCE_GIT_ROOT=<repo>` for one invocation |
274
+ | — | `E_FLAG_REMOVED` | `cleo complete --force` removed per ADR-051. Use `--evidence` or `CLEO_OWNER_OVERRIDE=1` |
275
+
276
+ ### Typed acceptance gates — observe before you attest
277
+
278
+ Typed gates (`cleo req add <id> --gate '<json>'`) EXECUTE during any `cleo verify … --gate … --evidence …` write on a task that carries them. To run them without recording anything:
279
+
280
+ ```bash
281
+ cleo verify T### --run # executes typed gates, records no verification, caches passes
282
+ ```
283
+
284
+ `--run` records no verification and cannot be combined with `--gate`/`--all`/`--reset`. Passes are cached (HMAC-sealed per machine) by gate + HEAD + dirty tree + inputs, so the next write reuses them, marked `source: cache` on the result and receipt; add `--no-run` to forbid execution. `evidence.allowCachedGates: false` in `.cleo/project-context.json` disables reuse. A `test` gate with `minCount` needs its OWN command to emit a machine-readable report (`--reporter=json` for vitest, `--json` for jest); an exit code carries no count, and a report file from a separate invocation is not bound to this run — record that as `test-run:<path>` evidence instead.
285
+
286
+ ### Emergency override (audited)
287
+
288
+ ```bash
289
+ CLEO_OWNER_OVERRIDE=1 \ CLEO_OWNER_OVERRIDE_REASON="incident 1234 hotfix" \ cleo verify T### --gate cleanupDone --evidence "note:owner-approved"
290
+ ```
291
+
292
+ All overrides append a line to `.cleo/audit/force-bypass.jsonl`. Use sparingly.
293
+
294
+ ### Tool resolution + result cache (ADR-061)
295
+
296
+ `tool:<name>` resolves through `.cleo/project-context.json`, then the project's `package.json` script of that name (`<pm> run <name>`), then `primaryType` fallbacks (references-only tsconfig → `tsc -b`, which emits). A script that writes files (an auto-fixing `lint`) edits the checkout and later fails `E_EVIDENCE_STALE`; keep verification scripts read-only. Cache `.cleo/cache/evidence/<key>.json`: `(canonical, cmd, args, HEAD, dirty-tree fingerprint)`. Parallel verifies coalesce; cross-worktree semaphores: `~/.local/share/cleo/locks/tool-<canonical>/`, limit `CLEO_TOOL_CONCURRENCY_<TOOL>=<n>`. Deadlines: **1800000 ms (30 min) for `test` and `build`**, otherwise 300000 ms (5 min). Positive-integer override: `CLEO_TOOL_TIMEOUT_<TOOL>=<ms>`; invalid values explicitly fail with the tool default. Timeouts cache nothing; increase the deadline before an unchanged retry (gh#1221).
297
+
298
+ ### `pr:<number>` retroactive atom (T9764)
299
+
300
+ `pr:` proves merge provenance, not completion. CLEO checks actual `mergeCommit`, task linkage and changed files; incomplete inventories or unavailable merge artifacts remain unverified. Fetch the merge commit before `files:` evidence. Task `files` must intersect its diff; prose mentions cannot establish scope. Explicit research/spike and documentation scope retain documentary evidence.
301
+
302
+ Required checks: explicit configuration or target repository protection. `release.prRequiredWorkflows: []` requires no checks; it proves neither testing nor review. `.cleo/cache/evidence/pr-<num>.json` retains provenance and changed files; obsolete versions reject. Use `tool:test` or `test-run:<json>` plus appropriate QA tools, linking each result to verified criteria.
303
+ <!-- /CLEO-INJECTION:section=evidence -->
@@ -1,11 +1,16 @@
1
1
  # CLEO GitHub Actions workflow templates
2
2
 
3
- This directory contains CLEO's templated GitHub Actions workflows for the
4
- release pipeline defined in
3
+ This directory contains CLEO's supported consumer GitHub Actions workflow
4
+ templates for the release pipeline defined in
5
5
  `.cleo/rcasd/T9345/research/SPEC-T9345-release-pipeline-v2.md`. Templates
6
6
  are project-agnostic: they ship with `{{PLACEHOLDER}}` markers that are
7
- resolved at scaffold time by `cleo init --workflows` (T9531) against the
8
- local `.cleo/project-context.json` and the ADR-061 tool resolver.
7
+ resolved at scaffold/upgrade time against the local project context,
8
+ `.cleo/config.json`, and the ADR-061 tool resolver.
9
+
10
+ Contract boundary: these four templates are portable CLEO consumer tooling.
11
+ The cleocode repository's own `.github/workflows/*.yml` files are dogfood-only
12
+ owner CI unless a shipped CLEO installer renders them into a consumer project.
13
+ See `docs/release/consumer-workflow-hook-contract.md` for the T10476 taxonomy.
9
14
 
10
15
  ## Template files
11
16
 
@@ -87,21 +92,38 @@ Source precedence (highest first):
87
92
  | `release-fanout.yml.tmpl` | `GITHUB_TOKEN` (auto) | `DOCKER_HUB_TOKEN` (if `dockerRetag=true`), `SENTINEL_TOKEN` (if `sentinelNotify=true`), `STUDIO_DEPLOY_TOKEN` (if `studioDeploy=true`) |
88
93
  | `release-rollback.yml.tmpl` | `GITHUB_TOKEN` (auto), `NPM_TOKEN` (if `PUBLISHERS` contains `npm`) | `CARGO_TOKEN` (if `PUBLISHERS` contains `cargo`) |
89
94
 
90
- ## Scaffolding workflow
95
+ ## Scaffolding and upgrade workflow
91
96
 
92
97
  ```bash
93
- # Render the templates against the local project, writing to .github/workflows/.
94
- cleo init --workflows
98
+ # Check rendered workflows for drift (read-only; exits 1 on drift or a
99
+ # missing file). `--dry-run` prints the rendered YAML instead.
100
+ cleo upgrade workflows --check
101
+
102
+ # Re-render drifted workflows in place after editing project-context.json or
103
+ # release config (audit-logged to .cleo/audit/upgrade-workflows.jsonl).
104
+ cleo upgrade workflows --force
95
105
 
96
- # Re-render after editing project-context.json or release config.
97
- cleo init --workflows --force
106
+ # First-time install of a rendered workflow that does not exist yet.
107
+ cleo init --workflows # deprecated alias (T9888) — see note below
98
108
  ```
99
109
 
100
- The scaffolder reads each `*.yml.tmpl` file in this directory, performs
101
- regex substitution against the placeholder vocabulary above, validates the
102
- result with `actionlint`, and writes the rendered YAML to
103
- `<project>/.github/workflows/<basename>.yml`. Existing files are NOT
104
- overwritten without `--force`.
110
+ `cleo upgrade workflows` renders each `*.yml.tmpl` file in this directory with
111
+ regex substitution against the placeholder vocabulary above and compares the
112
+ result with `<project>/.github/workflows/<basename>.yml`. It reports
113
+ `unchanged`, `drift-detected`, `missing` or `override-kept` (a key declared in
114
+ `.workflow-overrides.yml`); with `--force` it overwrites drifted files, but it
115
+ never creates a missing file.
116
+
117
+ First-time install: the registry SSoT is `cleo templates install <id>` (T9886,
118
+ ids `release-prepare`, `release-publish`, `release-fanout`,
119
+ `release-rollback`; list them with `cleo templates list --kind workflow`).
120
+ Its placeholder substitution is still a pass-through stub, so it copies the
121
+ template with `{{PLACEHOLDER}}` markers unresolved. Until that lands, the
122
+ deprecated `cleo init --workflows` alias remains the only path that writes a
123
+ rendered workflow for a missing file (existing files with different content
124
+ are `skipped` unless `--force` is passed). Note that the init deprecation
125
+ warning names `cleo templates install --kind workflow`, but `templates install`
126
+ takes a positional template id and has no `--kind` flag.
105
127
 
106
128
  ## Extending without forking
107
129