@cleocode/core 2026.10.21 → 2026.10.22

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 (420) hide show
  1. package/STABILITY.md +1 -1
  2. package/dist/build-provenance.json +2 -2
  3. package/dist/config.d.ts.map +1 -1
  4. package/dist/config.js +2 -0
  5. package/dist/config.js.map +1 -1
  6. package/dist/docs/document-edges.d.ts +38 -0
  7. package/dist/docs/document-edges.d.ts.map +1 -0
  8. package/dist/docs/document-edges.js +62 -0
  9. package/dist/docs/document-edges.js.map +1 -0
  10. package/dist/docs/projection.d.ts +3 -2
  11. package/dist/docs/projection.d.ts.map +1 -1
  12. package/dist/docs/projection.js +33 -36
  13. package/dist/docs/projection.js.map +1 -1
  14. package/dist/events/event-bus.d.ts +6 -5
  15. package/dist/events/event-bus.d.ts.map +1 -1
  16. package/dist/events/event-bus.js +9 -8
  17. package/dist/events/event-bus.js.map +1 -1
  18. package/dist/gateway-client/generated/index.d.ts +2 -2
  19. package/dist/gateway-client/generated/index.d.ts.map +1 -1
  20. package/dist/gateway-client/generated/index.js +1 -1
  21. package/dist/gateway-client/generated/index.js.map +1 -1
  22. package/dist/gateway-client/generated/namespaces.gen.d.ts +1 -0
  23. package/dist/gateway-client/generated/namespaces.gen.d.ts.map +1 -1
  24. package/dist/gateway-client/generated/namespaces.gen.js +2 -1
  25. package/dist/gateway-client/generated/namespaces.gen.js.map +1 -1
  26. package/dist/gateway-client/generated/sdk.gen.d.ts +5 -1
  27. package/dist/gateway-client/generated/sdk.gen.d.ts.map +1 -1
  28. package/dist/gateway-client/generated/sdk.gen.js +11 -0
  29. package/dist/gateway-client/generated/sdk.gen.js.map +1 -1
  30. package/dist/gateway-client/generated/types.gen.d.ts +34 -0
  31. package/dist/gateway-client/generated/types.gen.d.ts.map +1 -1
  32. package/dist/git/base-ref.d.ts +81 -0
  33. package/dist/git/base-ref.d.ts.map +1 -0
  34. package/dist/git/base-ref.js +135 -0
  35. package/dist/git/base-ref.js.map +1 -0
  36. package/dist/git/hooks-install.d.ts +1 -1
  37. package/dist/git/hooks-install.d.ts.map +1 -1
  38. package/dist/git/work-tree.d.ts +40 -0
  39. package/dist/git/work-tree.d.ts.map +1 -1
  40. package/dist/git/work-tree.js +62 -7
  41. package/dist/git/work-tree.js.map +1 -1
  42. package/dist/hooks/handlers/conduit-hooks.d.ts +2 -1
  43. package/dist/hooks/handlers/conduit-hooks.d.ts.map +1 -1
  44. package/dist/hooks/handlers/conduit-hooks.js +9 -23
  45. package/dist/hooks/handlers/conduit-hooks.js.map +1 -1
  46. package/dist/hooks/handlers/index.d.ts +0 -1
  47. package/dist/hooks/handlers/index.d.ts.map +1 -1
  48. package/dist/hooks/handlers/index.js +0 -2
  49. package/dist/hooks/handlers/index.js.map +1 -1
  50. package/dist/hooks.d.ts +1 -1
  51. package/dist/hooks.d.ts.map +1 -1
  52. package/dist/init.d.ts.map +1 -1
  53. package/dist/init.js +5 -12
  54. package/dist/init.js.map +1 -1
  55. package/dist/internal.d.ts +2 -3
  56. package/dist/internal.d.ts.map +1 -1
  57. package/dist/internal.js +1 -1
  58. package/dist/internal.js.map +1 -1
  59. package/dist/lifecycle/index.d.ts +15 -1
  60. package/dist/lifecycle/index.d.ts.map +1 -1
  61. package/dist/lifecycle/index.js +12 -6
  62. package/dist/lifecycle/index.js.map +1 -1
  63. package/dist/lifecycle/stage-guidance.js +1 -1
  64. package/dist/lifecycle/stage-guidance.js.map +1 -1
  65. package/dist/memory/auto-row-quarantine.d.ts +196 -0
  66. package/dist/memory/auto-row-quarantine.d.ts.map +1 -0
  67. package/dist/memory/auto-row-quarantine.js +363 -0
  68. package/dist/memory/auto-row-quarantine.js.map +1 -0
  69. package/dist/memory/auto-row-rules.d.ts +29 -0
  70. package/dist/memory/auto-row-rules.d.ts.map +1 -0
  71. package/dist/memory/auto-row-rules.js +55 -0
  72. package/dist/memory/auto-row-rules.js.map +1 -0
  73. package/dist/memory/brain-lifecycle.d.ts.map +1 -1
  74. package/dist/memory/brain-lifecycle.js +13 -8
  75. package/dist/memory/brain-lifecycle.js.map +1 -1
  76. package/dist/memory/brain-search.d.ts +49 -29
  77. package/dist/memory/brain-search.d.ts.map +1 -1
  78. package/dist/memory/brain-search.js +159 -156
  79. package/dist/memory/brain-search.js.map +1 -1
  80. package/dist/memory/brain-similarity.d.ts +27 -4
  81. package/dist/memory/brain-similarity.d.ts.map +1 -1
  82. package/dist/memory/brain-similarity.js +41 -20
  83. package/dist/memory/brain-similarity.js.map +1 -1
  84. package/dist/memory/brain-stub-prune.d.ts +13 -0
  85. package/dist/memory/brain-stub-prune.d.ts.map +1 -1
  86. package/dist/memory/brain-stub-prune.js +14 -3
  87. package/dist/memory/brain-stub-prune.js.map +1 -1
  88. package/dist/memory/brain-writer-handlers.d.ts +3 -7
  89. package/dist/memory/brain-writer-handlers.d.ts.map +1 -1
  90. package/dist/memory/brain-writer-handlers.js +5 -20
  91. package/dist/memory/brain-writer-handlers.js.map +1 -1
  92. package/dist/memory/brain-writer-thread.d.ts +2 -11
  93. package/dist/memory/brain-writer-thread.d.ts.map +1 -1
  94. package/dist/memory/brain-writer-thread.js +20 -78
  95. package/dist/memory/brain-writer-thread.js.map +1 -1
  96. package/dist/memory/brain-writer-worker.js +1 -8
  97. package/dist/memory/brain-writer-worker.js.map +1 -1
  98. package/dist/memory/dispatch-trace-format.d.ts +13 -14
  99. package/dist/memory/dispatch-trace-format.d.ts.map +1 -1
  100. package/dist/memory/dispatch-trace-format.js +13 -14
  101. package/dist/memory/dispatch-trace-format.js.map +1 -1
  102. package/dist/memory/eligibility.d.ts +22 -0
  103. package/dist/memory/eligibility.d.ts.map +1 -1
  104. package/dist/memory/eligibility.js +36 -0
  105. package/dist/memory/eligibility.js.map +1 -1
  106. package/dist/memory/engine-compat.d.ts.map +1 -1
  107. package/dist/memory/engine-compat.js +11 -1
  108. package/dist/memory/engine-compat.js.map +1 -1
  109. package/dist/memory/evidence-graph-links.d.ts +253 -0
  110. package/dist/memory/evidence-graph-links.d.ts.map +1 -0
  111. package/dist/memory/evidence-graph-links.js +554 -0
  112. package/dist/memory/evidence-graph-links.js.map +1 -0
  113. package/dist/memory/extraction-gate.d.ts +7 -0
  114. package/dist/memory/extraction-gate.d.ts.map +1 -1
  115. package/dist/memory/extraction-gate.js +20 -8
  116. package/dist/memory/extraction-gate.js.map +1 -1
  117. package/dist/memory/global-brain.d.ts +4 -6
  118. package/dist/memory/global-brain.d.ts.map +1 -1
  119. package/dist/memory/global-brain.js +15 -2
  120. package/dist/memory/global-brain.js.map +1 -1
  121. package/dist/memory/graph-auto-populate.d.ts +73 -1
  122. package/dist/memory/graph-auto-populate.d.ts.map +1 -1
  123. package/dist/memory/graph-auto-populate.js +111 -8
  124. package/dist/memory/graph-auto-populate.js.map +1 -1
  125. package/dist/memory/import-from-provider.d.ts +19 -6
  126. package/dist/memory/import-from-provider.d.ts.map +1 -1
  127. package/dist/memory/import-from-provider.js +28 -15
  128. package/dist/memory/import-from-provider.js.map +1 -1
  129. package/dist/memory/lessons-import.d.ts +175 -0
  130. package/dist/memory/lessons-import.d.ts.map +1 -0
  131. package/dist/memory/lessons-import.js +233 -0
  132. package/dist/memory/lessons-import.js.map +1 -0
  133. package/dist/memory/lessons.d.ts +67 -0
  134. package/dist/memory/lessons.d.ts.map +1 -0
  135. package/dist/memory/lessons.js +121 -0
  136. package/dist/memory/lessons.js.map +1 -0
  137. package/dist/memory/memory-bridge.d.ts.map +1 -1
  138. package/dist/memory/memory-bridge.js +3 -2
  139. package/dist/memory/memory-bridge.js.map +1 -1
  140. package/dist/memory/public-api.d.ts.map +1 -1
  141. package/dist/memory/public-api.js +7 -6
  142. package/dist/memory/public-api.js.map +1 -1
  143. package/dist/memory/recall-ranking.d.ts +88 -0
  144. package/dist/memory/recall-ranking.d.ts.map +1 -0
  145. package/dist/memory/recall-ranking.js +130 -0
  146. package/dist/memory/recall-ranking.js.map +1 -0
  147. package/dist/memory/retrieval/build-retrieval-bundle.js +5 -5
  148. package/dist/memory/retrieval/build-retrieval-bundle.js.map +1 -1
  149. package/dist/memory/retrieval/fetch.d.ts +3 -2
  150. package/dist/memory/retrieval/fetch.d.ts.map +1 -1
  151. package/dist/memory/retrieval/fetch.js +4 -3
  152. package/dist/memory/retrieval/fetch.js.map +1 -1
  153. package/dist/memory/retrieval/observe.d.ts +1 -7
  154. package/dist/memory/retrieval/observe.d.ts.map +1 -1
  155. package/dist/memory/retrieval/observe.js +9 -58
  156. package/dist/memory/retrieval/observe.js.map +1 -1
  157. package/dist/memory/retrieval/search.d.ts +5 -6
  158. package/dist/memory/retrieval/search.d.ts.map +1 -1
  159. package/dist/memory/retrieval/search.js +38 -102
  160. package/dist/memory/retrieval/search.js.map +1 -1
  161. package/dist/memory/retrieval/telemetry.d.ts +5 -16
  162. package/dist/memory/retrieval/telemetry.d.ts.map +1 -1
  163. package/dist/memory/retrieval/telemetry.js +5 -22
  164. package/dist/memory/retrieval/telemetry.js.map +1 -1
  165. package/dist/nexus/analyze-orchestrator.d.ts +15 -0
  166. package/dist/nexus/analyze-orchestrator.d.ts.map +1 -1
  167. package/dist/nexus/analyze-orchestrator.js +53 -6
  168. package/dist/nexus/analyze-orchestrator.js.map +1 -1
  169. package/dist/nexus/brief-map.d.ts +60 -0
  170. package/dist/nexus/brief-map.d.ts.map +1 -0
  171. package/dist/nexus/brief-map.js +234 -0
  172. package/dist/nexus/brief-map.js.map +1 -0
  173. package/dist/nexus/freshness.d.ts +128 -13
  174. package/dist/nexus/freshness.d.ts.map +1 -1
  175. package/dist/nexus/freshness.js +374 -86
  176. package/dist/nexus/freshness.js.map +1 -1
  177. package/dist/nexus/graph-manifest.d.ts +47 -0
  178. package/dist/nexus/graph-manifest.d.ts.map +1 -1
  179. package/dist/nexus/graph-manifest.js +69 -0
  180. package/dist/nexus/graph-manifest.js.map +1 -1
  181. package/dist/nexus/hooks-augment.d.ts.map +1 -1
  182. package/dist/nexus/hooks-augment.js +7 -3
  183. package/dist/nexus/hooks-augment.js.map +1 -1
  184. package/dist/nexus/index-health.d.ts +112 -0
  185. package/dist/nexus/index-health.d.ts.map +1 -0
  186. package/dist/nexus/index-health.js +199 -0
  187. package/dist/nexus/index-health.js.map +1 -0
  188. package/dist/nexus/living-brain.d.ts.map +1 -1
  189. package/dist/nexus/living-brain.js +2 -15
  190. package/dist/nexus/living-brain.js.map +1 -1
  191. package/dist/nexus/pid-lock.d.ts +50 -0
  192. package/dist/nexus/pid-lock.d.ts.map +1 -0
  193. package/dist/nexus/pid-lock.js +135 -0
  194. package/dist/nexus/pid-lock.js.map +1 -0
  195. package/dist/nexus/projects-clean.d.ts.map +1 -1
  196. package/dist/nexus/projects-clean.js +33 -2
  197. package/dist/nexus/projects-clean.js.map +1 -1
  198. package/dist/nexus/refresh-child.js +4 -0
  199. package/dist/nexus/refresh-child.js.map +1 -1
  200. package/dist/nexus/registry-host.d.ts +70 -0
  201. package/dist/nexus/registry-host.d.ts.map +1 -0
  202. package/dist/nexus/registry-host.js +79 -0
  203. package/dist/nexus/registry-host.js.map +1 -0
  204. package/dist/nexus/registry.d.ts +37 -0
  205. package/dist/nexus/registry.d.ts.map +1 -1
  206. package/dist/nexus/registry.js +49 -1
  207. package/dist/nexus/registry.js.map +1 -1
  208. package/dist/nexus/reindex-on-merge.d.ts +94 -0
  209. package/dist/nexus/reindex-on-merge.d.ts.map +1 -0
  210. package/dist/nexus/reindex-on-merge.js +192 -0
  211. package/dist/nexus/reindex-on-merge.js.map +1 -0
  212. package/dist/orchestrate/handoff-ops.d.ts.map +1 -1
  213. package/dist/orchestrate/handoff-ops.js +1 -13
  214. package/dist/orchestrate/handoff-ops.js.map +1 -1
  215. package/dist/orchestrate/index.d.ts +2 -3
  216. package/dist/orchestrate/index.d.ts.map +1 -1
  217. package/dist/orchestrate/index.js +2 -2
  218. package/dist/orchestrate/index.js.map +1 -1
  219. package/dist/orchestrate/lifecycle-ops.d.ts +3 -0
  220. package/dist/orchestrate/lifecycle-ops.d.ts.map +1 -1
  221. package/dist/orchestrate/lifecycle-ops.js +5 -5
  222. package/dist/orchestrate/lifecycle-ops.js.map +1 -1
  223. package/dist/orchestrate/spawn-ops.d.ts +8 -28
  224. package/dist/orchestrate/spawn-ops.d.ts.map +1 -1
  225. package/dist/orchestrate/spawn-ops.js +8 -67
  226. package/dist/orchestrate/spawn-ops.js.map +1 -1
  227. package/dist/orchestration/lead-rollup.d.ts +7 -0
  228. package/dist/orchestration/lead-rollup.d.ts.map +1 -1
  229. package/dist/orchestration/lead-rollup.js.map +1 -1
  230. package/dist/orchestration/spawn-prompt.d.ts +8 -29
  231. package/dist/orchestration/spawn-prompt.d.ts.map +1 -1
  232. package/dist/orchestration/spawn-prompt.js +44 -112
  233. package/dist/orchestration/spawn-prompt.js.map +1 -1
  234. package/dist/orchestration/spawn.d.ts +7 -14
  235. package/dist/orchestration/spawn.d.ts.map +1 -1
  236. package/dist/orchestration/spawn.js +2 -5
  237. package/dist/orchestration/spawn.js.map +1 -1
  238. package/dist/orchestration/wave-topic.d.ts +0 -13
  239. package/dist/orchestration/wave-topic.d.ts.map +1 -1
  240. package/dist/orchestration/wave-topic.js +0 -20
  241. package/dist/orchestration/wave-topic.js.map +1 -1
  242. package/dist/release/engine-ops.js +2 -2
  243. package/dist/release/engine-ops.js.map +1 -1
  244. package/dist/release/github-pr.d.ts +8 -5
  245. package/dist/release/github-pr.d.ts.map +1 -1
  246. package/dist/release/github-pr.js +11 -16
  247. package/dist/release/github-pr.js.map +1 -1
  248. package/dist/release/plan.d.ts +4 -2
  249. package/dist/release/plan.d.ts.map +1 -1
  250. package/dist/release/plan.js +11 -4
  251. package/dist/release/plan.js.map +1 -1
  252. package/dist/release/pr-evidence.d.ts +39 -11
  253. package/dist/release/pr-evidence.d.ts.map +1 -1
  254. package/dist/release/pr-evidence.js +122 -31
  255. package/dist/release/pr-evidence.js.map +1 -1
  256. package/dist/release/reconcile.d.ts +15 -0
  257. package/dist/release/reconcile.d.ts.map +1 -1
  258. package/dist/release/reconcile.js +36 -0
  259. package/dist/release/reconcile.js.map +1 -1
  260. package/dist/render/brain/index.d.ts +3 -2
  261. package/dist/render/brain/index.d.ts.map +1 -1
  262. package/dist/render/brain/index.js +4 -2
  263. package/dist/render/brain/index.js.map +1 -1
  264. package/dist/render/brain/migrate-repo-ids.d.ts +19 -0
  265. package/dist/render/brain/migrate-repo-ids.d.ts.map +1 -0
  266. package/dist/render/brain/migrate-repo-ids.js +41 -0
  267. package/dist/render/brain/migrate-repo-ids.js.map +1 -0
  268. package/dist/render/nexus/graph/index.d.ts.map +1 -1
  269. package/dist/render/nexus/graph/index.js +10 -1
  270. package/dist/render/nexus/graph/index.js.map +1 -1
  271. package/dist/resources/admission-ledger.d.ts +39 -4
  272. package/dist/resources/admission-ledger.d.ts.map +1 -1
  273. package/dist/resources/admission-ledger.js +147 -32
  274. package/dist/resources/admission-ledger.js.map +1 -1
  275. package/dist/resources/hook-footprint.d.ts +90 -0
  276. package/dist/resources/hook-footprint.d.ts.map +1 -0
  277. package/dist/resources/hook-footprint.js +245 -0
  278. package/dist/resources/hook-footprint.js.map +1 -0
  279. package/dist/resources/pressure-gate.d.ts +3 -2
  280. package/dist/resources/pressure-gate.d.ts.map +1 -1
  281. package/dist/resources/pressure-gate.js +8 -5
  282. package/dist/resources/pressure-gate.js.map +1 -1
  283. package/dist/resources/run-admission.d.ts +23 -3
  284. package/dist/resources/run-admission.d.ts.map +1 -1
  285. package/dist/resources/run-admission.js +70 -8
  286. package/dist/resources/run-admission.js.map +1 -1
  287. package/dist/resources/run-class.d.ts +1 -0
  288. package/dist/resources/run-class.d.ts.map +1 -1
  289. package/dist/resources/run-class.js +7 -0
  290. package/dist/resources/run-class.js.map +1 -1
  291. package/dist/resources/run-governed.d.ts +13 -1
  292. package/dist/resources/run-governed.d.ts.map +1 -1
  293. package/dist/resources/run-governed.js +29 -6
  294. package/dist/resources/run-governed.js.map +1 -1
  295. package/dist/resources/top-memory.d.ts +67 -0
  296. package/dist/resources/top-memory.d.ts.map +1 -0
  297. package/dist/resources/top-memory.js +143 -0
  298. package/dist/resources/top-memory.js.map +1 -0
  299. package/dist/scaffold/global-scaffold.d.ts +6 -1
  300. package/dist/scaffold/global-scaffold.d.ts.map +1 -1
  301. package/dist/scaffold/global-scaffold.js +11 -2
  302. package/dist/scaffold/global-scaffold.js.map +1 -1
  303. package/dist/scaffold/scaffold-global.d.ts +3 -2
  304. package/dist/scaffold/scaffold-global.d.ts.map +1 -1
  305. package/dist/scaffold/scaffold-global.js +3 -2
  306. package/dist/scaffold/scaffold-global.js.map +1 -1
  307. package/dist/sentient/ingesters/brain-ingester.d.ts.map +1 -1
  308. package/dist/sentient/ingesters/brain-ingester.js +2 -1
  309. package/dist/sentient/ingesters/brain-ingester.js.map +1 -1
  310. package/dist/session/engine-ops.js +1 -1
  311. package/dist/session/engine-ops.js.map +1 -1
  312. package/dist/sessions/briefing.d.ts +26 -0
  313. package/dist/sessions/briefing.d.ts.map +1 -1
  314. package/dist/sessions/briefing.js +46 -0
  315. package/dist/sessions/briefing.js.map +1 -1
  316. package/dist/sessions/session-end-snapshot.d.ts +1 -1
  317. package/dist/sessions/session-end-snapshot.js +1 -1
  318. package/dist/sessions/session-id.d.ts +2 -1
  319. package/dist/sessions/session-id.d.ts.map +1 -1
  320. package/dist/sessions/session-id.js +3 -2
  321. package/dist/sessions/session-id.js.map +1 -1
  322. package/dist/store/agent-resolver.d.ts +0 -6
  323. package/dist/store/agent-resolver.d.ts.map +1 -1
  324. package/dist/store/agent-resolver.js +0 -31
  325. package/dist/store/agent-resolver.js.map +1 -1
  326. package/dist/store/memory-accessor.d.ts +45 -2
  327. package/dist/store/memory-accessor.d.ts.map +1 -1
  328. package/dist/store/memory-accessor.js +81 -7
  329. package/dist/store/memory-accessor.js.map +1 -1
  330. package/dist/store/schema/cleo-shared/brain.d.ts +2 -2
  331. package/dist/store/schema/memory-schema.d.ts +3 -3
  332. package/dist/store/schema/memory-schema.d.ts.map +1 -1
  333. package/dist/store/schema/memory-schema.js +2 -0
  334. package/dist/store/schema/memory-schema.js.map +1 -1
  335. package/dist/store/session-store.d.ts +5 -2
  336. package/dist/store/session-store.d.ts.map +1 -1
  337. package/dist/store/session-store.js +10 -5
  338. package/dist/store/session-store.js.map +1 -1
  339. package/dist/store/sqlite-native.d.ts +5 -4
  340. package/dist/store/sqlite-native.d.ts.map +1 -1
  341. package/dist/store/sqlite-native.js +5 -4
  342. package/dist/store/sqlite-native.js.map +1 -1
  343. package/dist/store/sync/merge/rules.d.ts.map +1 -1
  344. package/dist/store/sync/merge/rules.js +4 -3
  345. package/dist/store/sync/merge/rules.js.map +1 -1
  346. package/dist/store/validation-schemas.d.ts +1 -0
  347. package/dist/store/validation-schemas.d.ts.map +1 -1
  348. package/dist/store/vault-manifest.js +1 -1
  349. package/dist/store/vault-manifest.js.map +1 -1
  350. package/dist/system/project-health.d.ts +7 -0
  351. package/dist/system/project-health.d.ts.map +1 -1
  352. package/dist/system/project-health.js +13 -0
  353. package/dist/system/project-health.js.map +1 -1
  354. package/dist/tasks/add.d.ts.map +1 -1
  355. package/dist/tasks/add.js +0 -15
  356. package/dist/tasks/add.js.map +1 -1
  357. package/dist/tasks/affected-packages.d.ts +26 -11
  358. package/dist/tasks/affected-packages.d.ts.map +1 -1
  359. package/dist/tasks/affected-packages.js +54 -17
  360. package/dist/tasks/affected-packages.js.map +1 -1
  361. package/dist/tasks/affected-scope.d.ts +24 -0
  362. package/dist/tasks/affected-scope.d.ts.map +1 -1
  363. package/dist/tasks/affected-scope.js +57 -0
  364. package/dist/tasks/affected-scope.js.map +1 -1
  365. package/dist/tasks/change-set.d.ts +72 -9
  366. package/dist/tasks/change-set.d.ts.map +1 -1
  367. package/dist/tasks/change-set.js +227 -20
  368. package/dist/tasks/change-set.js.map +1 -1
  369. package/dist/tasks/complete-ci.d.ts.map +1 -1
  370. package/dist/tasks/complete-ci.js +2 -0
  371. package/dist/tasks/complete-ci.js.map +1 -1
  372. package/dist/tasks/complete.d.ts +2 -2
  373. package/dist/tasks/complete.d.ts.map +1 -1
  374. package/dist/tasks/complete.js +38 -17
  375. package/dist/tasks/complete.js.map +1 -1
  376. package/dist/tasks/done-plan.d.ts.map +1 -1
  377. package/dist/tasks/done-plan.js +66 -18
  378. package/dist/tasks/done-plan.js.map +1 -1
  379. package/dist/tasks/epic-enforcement.d.ts +39 -1
  380. package/dist/tasks/epic-enforcement.d.ts.map +1 -1
  381. package/dist/tasks/epic-enforcement.js +46 -2
  382. package/dist/tasks/epic-enforcement.js.map +1 -1
  383. package/dist/tasks/evidence.d.ts +74 -22
  384. package/dist/tasks/evidence.d.ts.map +1 -1
  385. package/dist/tasks/evidence.js +221 -35
  386. package/dist/tasks/evidence.js.map +1 -1
  387. package/dist/tasks/gate-runner.d.ts.map +1 -1
  388. package/dist/tasks/gate-runner.js +2 -12
  389. package/dist/tasks/gate-runner.js.map +1 -1
  390. package/dist/tasks/qa-run-binding.d.ts +2 -0
  391. package/dist/tasks/qa-run-binding.d.ts.map +1 -1
  392. package/dist/tasks/qa-run-binding.js +6 -2
  393. package/dist/tasks/qa-run-binding.js.map +1 -1
  394. package/dist/tasks/test-run-binding.d.ts +2 -0
  395. package/dist/tasks/test-run-binding.d.ts.map +1 -1
  396. package/dist/tasks/test-run-binding.js +8 -3
  397. package/dist/tasks/test-run-binding.js.map +1 -1
  398. package/dist/tasks/verification-policy.d.ts +57 -1
  399. package/dist/tasks/verification-policy.d.ts.map +1 -1
  400. package/dist/tasks/verification-policy.js +94 -1
  401. package/dist/tasks/verification-policy.js.map +1 -1
  402. package/dist/upgrade.d.ts.map +1 -1
  403. package/dist/upgrade.js +2 -15
  404. package/dist/upgrade.js.map +1 -1
  405. package/dist/validation/engine-ops.d.ts.map +1 -1
  406. package/dist/validation/engine-ops.js +39 -19
  407. package/dist/validation/engine-ops.js.map +1 -1
  408. package/package.json +13 -13
  409. package/schemas/config.schema.json +69 -0
  410. package/templates/CLEO-INJECTION.md +4 -5
  411. package/templates/CLEO-REFERENCE.md +2 -4
  412. package/templates/git-hooks/post-merge +25 -0
  413. package/dist/memory/dispatch-trace.d.ts +0 -44
  414. package/dist/memory/dispatch-trace.d.ts.map +0 -1
  415. package/dist/memory/dispatch-trace.js +0 -65
  416. package/dist/memory/dispatch-trace.js.map +0 -1
  417. package/dist/memory/retrieval/increment-citation-counts.d.ts +0 -11
  418. package/dist/memory/retrieval/increment-citation-counts.d.ts.map +0 -1
  419. package/dist/memory/retrieval/increment-citation-counts.js +0 -43
  420. package/dist/memory/retrieval/increment-citation-counts.js.map +0 -1
@@ -0,0 +1,234 @@
1
+ /**
2
+ * Brief codebase map: what already exists, so "reuse first" costs no search (T13666).
3
+ *
4
+ * One line per folder listing its exported names, inside a character budget,
5
+ * shared code (utils, lib, services, core, …) first and tests skipped. The
6
+ * names come from the nexus graph (parsed by tree-sitter, exact) when the
7
+ * project is indexed, else from a regex walk of git-tracked files. The idea
8
+ * and the fallback's patterns are adapted from Ponytail 5.1.0's
9
+ * `ponytail-map.js` (DietrichGebert, MIT).
10
+ *
11
+ * @task T13666
12
+ * @epic T13418
13
+ */
14
+ import { execFileSync } from 'node:child_process';
15
+ import { readFileSync } from 'node:fs';
16
+ import { dirname, extname, join } from 'node:path';
17
+ /** Default character budget (Ponytail's default). */
18
+ export const BRIEF_MAP_DEFAULT_BUDGET = 2000;
19
+ /** What `cleo briefing` prints instead of a map when the project has no code index. */
20
+ export const BRIEF_MAP_NO_INDEX = 'no code index; run `cleo nexus analyze`';
21
+ const MAX_FILES = 4000;
22
+ const SRC = /\.(py|js|jsx|mjs|cjs|ts|tsx|go|rs|rb|java|kt|php|swift|cs)$/;
23
+ const SKIP_DIR = /(^|\/)(node_modules|\.git|dist|build|out|vendor|venv|\.venv|__pycache__|coverage|\.next|target|migrations|fixtures|tests?|__tests__|spec)(\/|$)/;
24
+ const SKIP_FILE = /(^|\/)(test_[^/]*|[^/]*(_test|\.test|\.spec|\.gen|\.min|\.d)\.[a-z]+)$/;
25
+ const SHARED = /(util|helper|lib|common|shared|service|component|hook|core|model|schema|api)/i;
26
+ /** Symbol kinds that name something reusable. */
27
+ const SYMBOL_KINDS = new Set([
28
+ 'function',
29
+ 'class',
30
+ 'interface',
31
+ 'struct',
32
+ 'trait',
33
+ 'type_alias',
34
+ 'enum',
35
+ 'constant',
36
+ 'variable',
37
+ 'module',
38
+ 'record',
39
+ 'union',
40
+ 'typedef',
41
+ 'type',
42
+ ]);
43
+ /** Whether a repo-relative path is source worth mapping (not a test, generated or vendored file). */
44
+ export function isMappableSource(file) {
45
+ return SRC.test(file) && !SKIP_DIR.test(file) && !SKIP_FILE.test(file);
46
+ }
47
+ /**
48
+ * Render the map from per-file names: one line per folder, shared folders
49
+ * first, within `budget` characters.
50
+ *
51
+ * @param files - files with their exported names.
52
+ * @param budget - character budget for the folder lines.
53
+ * @returns the text, and how many folders were listed and skipped.
54
+ */
55
+ export function formatBriefMap(files, budget = BRIEF_MAP_DEFAULT_BUDGET) {
56
+ const ordered = files
57
+ .filter((f) => f.names.length > 0 && isMappableSource(f.file))
58
+ .slice()
59
+ .sort((a, b) => Number(SHARED.test(b.file)) - Number(SHARED.test(a.file)) || a.file.localeCompare(b.file));
60
+ const dirs = new Map();
61
+ for (const f of ordered) {
62
+ const dir = dirname(f.file);
63
+ dirs.set(dir, [...(dirs.get(dir) ?? []), f.names]);
64
+ }
65
+ const lines = [];
66
+ let used = 0;
67
+ let skipped = 0;
68
+ for (const [dir, perFile] of dirs) {
69
+ // The first names say what a file is; in a folder of many files, one name each.
70
+ const take = perFile.length > 8 ? 1 : 3;
71
+ const names = [...new Set(perFile.flatMap((n) => n.slice(0, take)))];
72
+ const line = `${dir}/: ${names.slice(0, 30).join(', ')}${names.length > 30 ? ', ...' : ''}`;
73
+ if (used + line.length > budget) {
74
+ skipped++;
75
+ continue;
76
+ }
77
+ lines.push(line);
78
+ used += line.length + 1;
79
+ }
80
+ if (lines.length === 0)
81
+ return { text: '', folders: 0, skipped };
82
+ const text = [
83
+ 'Codebase map (what already exists; reuse it, read a file only when you need its details):',
84
+ ...lines,
85
+ ...(skipped ? [`(${skipped} more folders not listed)`] : []),
86
+ ].join('\n');
87
+ return { text, folders: lines.length, skipped };
88
+ }
89
+ /**
90
+ * Exported names per file from the nexus graph; empty when the project is not
91
+ * indexed. A graph that exists but cannot be read throws, so callers never
92
+ * report a broken index as a missing one.
93
+ */
94
+ async function filesFromNexus(projectRoot) {
95
+ try {
96
+ const { and, eq } = await import('drizzle-orm');
97
+ const { getNexusDb, nexusSchema } = await import('../store/nexus-sqlite.js');
98
+ const db = await getNexusDb(projectRoot);
99
+ const t = nexusSchema.nexusNodes;
100
+ const rows = db
101
+ .select({ file: t.filePath, name: t.name, kind: t.kind, line: t.startLine })
102
+ .from(t)
103
+ .where(and(eq(t.isExported, true), eq(t.isExternal, false)))
104
+ .all();
105
+ const byFile = new Map();
106
+ for (const r of rows) {
107
+ if (!r.file || !r.name || !SYMBOL_KINDS.has(r.kind) || r.name.startsWith('_'))
108
+ continue;
109
+ byFile.set(r.file, [...(byFile.get(r.file) ?? []), { name: r.name, line: r.line ?? 0 }]);
110
+ }
111
+ return [...byFile].map(([file, names]) => ({
112
+ file,
113
+ names: [...new Set(names.sort((a, b) => a.line - b.line).map((n) => n.name))],
114
+ }));
115
+ }
116
+ catch (err) {
117
+ if (err instanceof Error && /no such table/i.test(err.message))
118
+ return [];
119
+ throw err;
120
+ }
121
+ }
122
+ const PATTERNS = {
123
+ py: [/^(?:async\s+)?def\s+([A-Za-z]\w*)/gm, /^class\s+([A-Za-z]\w*)/gm],
124
+ js: [
125
+ /^export\s+(?:default\s+)?(?:async\s+)?(?:function\*?|class|const|let|var|interface|type|enum)\s+([A-Za-z_$][\w$]*)/gm,
126
+ /^export\s*\{([^}]*)\}/gm,
127
+ ],
128
+ go: [/^func\s+(?:\([^)]*\)\s*)?([A-Z]\w*)/gm, /^type\s+([A-Z]\w*)/gm],
129
+ rs: [/^pub\s+(?:async\s+)?(?:fn|struct|enum|trait|type)\s+(\w+)/gm],
130
+ rb: [/^\s*(?:def|class|module)\s+([A-Za-z][\w.]*)/gm],
131
+ jvm: [/^\s*(?:public\s+)?(?:static\s+)?(?:final\s+)?(?:class|interface|enum|record)\s+(\w+)/gm],
132
+ };
133
+ const LANG = {
134
+ py: 'py',
135
+ js: 'js',
136
+ jsx: 'js',
137
+ mjs: 'js',
138
+ cjs: 'js',
139
+ ts: 'js',
140
+ tsx: 'js',
141
+ go: 'go',
142
+ rs: 'rs',
143
+ rb: 'rb',
144
+ java: 'jvm',
145
+ kt: 'jvm',
146
+ swift: 'jvm',
147
+ cs: 'jvm',
148
+ php: 'jvm',
149
+ };
150
+ /**
151
+ * Exported top-level names in one source file, by regex.
152
+ * shortcut: regex, not a parser (misses nested or dynamic exports), use the nexus graph when indexed
153
+ *
154
+ * @param file - repo-relative path (its extension picks the patterns).
155
+ * @param text - file contents.
156
+ */
157
+ export function namesInSource(file, text) {
158
+ const names = [];
159
+ for (const re of PATTERNS[LANG[extname(file).slice(1)] ?? ''] ?? []) {
160
+ for (const m of text.matchAll(re)) {
161
+ for (const raw of (m[1] ?? '').split(',')) {
162
+ const n = raw
163
+ .trim()
164
+ .split(/\s+as\s+/)
165
+ .pop() ?? '';
166
+ if (n && !n.startsWith('_') && !names.includes(n))
167
+ names.push(n);
168
+ }
169
+ }
170
+ }
171
+ return names;
172
+ }
173
+ /** Exported names per git-tracked file, by regex. */
174
+ function filesFromGitWalk(projectRoot) {
175
+ let tracked;
176
+ try {
177
+ tracked = execFileSync('git', ['ls-files'], {
178
+ cwd: projectRoot,
179
+ encoding: 'utf-8',
180
+ stdio: ['ignore', 'pipe', 'ignore'],
181
+ timeout: 5000,
182
+ maxBuffer: 64 * 1024 * 1024,
183
+ })
184
+ .split('\n')
185
+ .filter(isMappableSource)
186
+ .slice(0, MAX_FILES);
187
+ }
188
+ catch {
189
+ return [];
190
+ }
191
+ const files = [];
192
+ for (const file of tracked) {
193
+ try {
194
+ const text = readFileSync(join(projectRoot, file), 'utf-8').slice(0, 65536);
195
+ files.push({ file, names: namesInSource(file, text) });
196
+ }
197
+ catch {
198
+ // unreadable or deleted since ls-files: skip
199
+ }
200
+ }
201
+ return files;
202
+ }
203
+ /**
204
+ * Build the brief map from the nexus graph only, never walking the tree, so it
205
+ * is cheap enough for `cleo briefing`.
206
+ *
207
+ * @param projectRoot - the project root.
208
+ * @param budget - character budget (default {@link BRIEF_MAP_DEFAULT_BUDGET}).
209
+ * @returns the report, or `null` when the project has no code index.
210
+ * @throws when the code index exists but cannot be read.
211
+ */
212
+ export async function buildNexusBriefMap(projectRoot, budget = BRIEF_MAP_DEFAULT_BUDGET) {
213
+ const files = await filesFromNexus(projectRoot);
214
+ if (files.length === 0)
215
+ return null;
216
+ return { source: 'nexus', budget, ...formatBriefMap(files, budget) };
217
+ }
218
+ /**
219
+ * Build the brief map for a project: from the nexus graph when indexed, else
220
+ * from a git-tracked regex walk.
221
+ *
222
+ * @param projectRoot - the project root.
223
+ * @param budget - character budget (default {@link BRIEF_MAP_DEFAULT_BUDGET}).
224
+ */
225
+ export async function buildBriefMap(projectRoot, budget = BRIEF_MAP_DEFAULT_BUDGET) {
226
+ // An unreadable index falls back to the walk here; only the briefing reports it.
227
+ const fromNexus = await buildNexusBriefMap(projectRoot, budget).catch(() => null);
228
+ return (fromNexus ?? {
229
+ source: 'git-walk',
230
+ budget,
231
+ ...formatBriefMap(filesFromGitWalk(projectRoot), budget),
232
+ });
233
+ }
234
+ //# sourceMappingURL=brief-map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brief-map.js","sourceRoot":"","sources":["../../src/nexus/brief-map.ts"],"names":[],"mappings":"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"}
@@ -13,11 +13,17 @@
13
13
  * @task T12316
14
14
  * @module nexus/freshness
15
15
  */
16
- import type { GraphIndexFreshness, ParserExecutionPort } from '@cleocode/contracts';
16
+ import type { GraphIndexFreshness, NexusAnswerFreshness, ParserExecutionPort } from '@cleocode/contracts';
17
17
  import { type GraphRunCost } from './graph-manifest.js';
18
+ import { type NexusStalePolicy } from './index-health.js';
19
+ export { DEFAULT_MAX_COMMITS_BEHIND, measureAgainstBase, NEXUS_ALLOW_STALE_ENV, type NexusIndexHealth, type NexusStalePolicy, probeNexusIndexHealth, readNexusStalePolicy, } from './index-health.js';
18
20
  /** Command that refreshes the index; incremental by default since T12315. */
19
21
  export declare const NEXUS_REFRESH_COMMAND = "cleo nexus analyze";
20
- /** Default number of stale files an index query may refresh inline. */
22
+ /**
23
+ * Retired file-count cap for an inline refresh (T14014): the size-scaled cost
24
+ * estimate against the budget decides. Kept as the reported default of the
25
+ * ignored `nexus.autoRefresh.maxFiles`.
26
+ */
21
27
  export declare const DEFAULT_AUTO_REFRESH_MAX_FILES = 25;
22
28
  /** Default wall-clock budget for an inline refresh. */
23
29
  export declare const DEFAULT_AUTO_REFRESH_BUDGET_MS = 60000;
@@ -37,6 +43,20 @@ export interface NexusFreshnessAssessment {
37
43
  freshness: GraphIndexFreshness;
38
44
  /** Every stale path (modified, added, deleted or unreadable). */
39
45
  staleFiles: ReadonlySet<string>;
46
+ /**
47
+ * What a refresh would cost (T14014): files it must parse (stale ones and
48
+ * any without a reusable cache entry), files it can reuse, and the estimate.
49
+ */
50
+ refreshPlan?: NexusRefreshPlan;
51
+ }
52
+ /** What an inline refresh would parse, reuse and cost (T14014). */
53
+ export interface NexusRefreshPlan {
54
+ /** Files that must be parsed: stale, or with no exact cache entry for this build. */
55
+ toParse: number;
56
+ /** Unchanged files with an exact cache entry for this build. */
57
+ reusable: number;
58
+ /** Estimated milliseconds, or `null` when no previous run cost is recorded. */
59
+ estimateMs: number | null;
40
60
  }
41
61
  /**
42
62
  * Judge the queried symbol's own files against an assessment.
@@ -49,12 +69,20 @@ export declare function judgeSymbolFiles(assessment: NexusFreshnessAssessment, f
49
69
  export interface NexusAutoRefreshPolicy {
50
70
  /** Whether queries may refresh the index inline. @defaultValue true */
51
71
  enabled: boolean;
52
- /** Most stale files a query refreshes inline. @defaultValue 25 */
72
+ /**
73
+ * Retired (T14014): the size-scaled cost estimate against `budgetMs` decides.
74
+ * Still read from `nexus.autoRefresh.maxFiles` for compatibility; ignored.
75
+ */
53
76
  maxFiles: number;
54
77
  /** Wall-clock budget; a refresh estimated to exceed it is not started. @defaultValue 60000 */
55
78
  budgetMs: number;
56
79
  /** What turned refresh off, when not the config key (`--no-refresh`, `CLEO_NEXUS_AUTO_REFRESH`). */
57
80
  disabledBy?: string;
81
+ /**
82
+ * Indexed files above which any inline refresh needs `cleo run` admission,
83
+ * however few files it parses (T14019). @defaultValue {@link ADMISSION_GRAPH_FILES}
84
+ */
85
+ admissionGraphFiles?: number;
58
86
  }
59
87
  /**
60
88
  * Assess how far the published code graph lags the working tree.
@@ -69,6 +97,49 @@ export interface NexusAutoRefreshPolicy {
69
97
  * ```
70
98
  */
71
99
  export declare function assessNexusIndexFreshness(projectRoot: string, options?: NexusFreshnessOptions): Promise<GraphIndexFreshness>;
100
+ /**
101
+ * The freshness block every index-sensitive answer carries as `data.freshness`.
102
+ *
103
+ * @param freshness - The assessment behind the answer.
104
+ * @returns Revision, base, commits behind, age and verdict.
105
+ */
106
+ export declare function answerFreshness(freshness: GraphIndexFreshness): NexusAnswerFreshness;
107
+ /** A refused graph answer: the index is too far behind to answer from (T14008). */
108
+ export interface NexusStaleRefusal {
109
+ /** Stable error code. */
110
+ code: 'E_NEXUS_INDEX_STALE';
111
+ /** Why the answer was refused. */
112
+ message: string;
113
+ /** The exact reindex command, and the opt-out. */
114
+ fix: string;
115
+ /** The freshness facts and the threshold that refused. */
116
+ details: NexusAnswerFreshness & {
117
+ maxCommitsBehind: number;
118
+ };
119
+ }
120
+ /**
121
+ * Whether a graph answer must be refused as stale: the index trails the
122
+ * checked-out HEAD by more than the policy allows, or the target is missing
123
+ * from an index that is stale for this checkout (commits behind HEAD or
124
+ * changed files), so it may exist in code the index never saw. Distance to the
125
+ * base branch (`commitsBehind`) is reported only: on a feature branch or
126
+ * worktree it grows as the base moves, and no reindex here could clear it.
127
+ *
128
+ * @param freshness - The assessment behind the answer.
129
+ * @param policy - The stale-answer policy.
130
+ * @param options - `targetMissing` when the query found no symbol; `projectRoot`
131
+ * names the checkout in the reindex command.
132
+ * @returns The refusal, or `null` when the answer may stand.
133
+ * @example
134
+ * ```ts
135
+ * const refusal = staleIndexRefusal(freshness, policy, { projectRoot: root });
136
+ * if (refusal) return refusalEnvelope(refusal);
137
+ * ```
138
+ */
139
+ export declare function staleIndexRefusal(freshness: GraphIndexFreshness, policy: NexusStalePolicy, options?: {
140
+ targetMissing?: boolean;
141
+ projectRoot?: string;
142
+ }): NexusStaleRefusal | null;
72
143
  /**
73
144
  * Read the auto-refresh policy from `nexus.autoRefresh.*`, applying defaults.
74
145
  * @param projectRoot - Project whose merged config is read.
@@ -96,8 +167,8 @@ export interface NexusRefreshSummary {
96
167
  /** Runs one inline refresh; {@link runRefreshInChild} unless a caller supplies another. */
97
168
  export type NexusRefreshRunner = (input: NexusRefreshInput) => Promise<NexusRefreshSummary>;
98
169
  /**
99
- * Run a refresh in this thread, incrementally or not at all. Unbounded in
100
- * memory: {@link runRefreshInChild} runs it inside a heap-limited child process.
170
+ * Run a refresh in this thread, bounded by its budget. Unbounded in memory:
171
+ * {@link runRefreshInChild} runs it inside a heap-limited child process.
101
172
  *
102
173
  * @param input - The refresh to run.
103
174
  * @returns The refresh summary.
@@ -132,23 +203,67 @@ export declare function runRefreshInChild(input: NexusRefreshInput, options?: {
132
203
  heapMb?: number;
133
204
  port?: ParserExecutionPort;
134
205
  }): Promise<NexusRefreshSummary>;
206
+ /** Cooldown after an inline refresh fails or is aborted (T14014). */
207
+ export declare const INLINE_REFRESH_COOLDOWN_MS: number;
208
+ /**
209
+ * Indexed files above which every inline refresh needs `cleo run` admission
210
+ * (T14019): resolve, communities, flows and the republish run over the whole
211
+ * graph, so on a large repository they dominate memory even when one file is
212
+ * re-parsed.
213
+ */
214
+ export declare const ADMISSION_GRAPH_FILES = 2000;
215
+ /**
216
+ * The memory an inline refresh asks `cleo run` admission for (T14019): scaled
217
+ * to the graph it re-resolves (indexed files), at least
218
+ * {@link REFRESH_MIN_FOOTPRINT_BYTES}, at most the build class's footprint.
219
+ *
220
+ * @param indexedFiles - Files in the published generation.
221
+ * @param classBytes - Footprint of the `scoped-build` class on this machine.
222
+ * @returns Footprint in bytes.
223
+ * @example
224
+ * ```ts
225
+ * inlineRefreshFootprintBytes(10_000, footprintForClass('scoped-build'));
226
+ * ```
227
+ */
228
+ export declare function inlineRefreshFootprintBytes(indexedFiles: number, classBytes: number): number;
229
+ /** Fallback cooldown file under `.cleo/` when `_nexus_meta` cannot be written (T14014). */
230
+ export declare const INLINE_REFRESH_COOLDOWN_FILE = "nexus-refresh-cooldown.json";
231
+ /** Lock file under `.cleo/`: one inline refresh at a time per project. */
232
+ export declare const INLINE_REFRESH_LOCK_FILE = "nexus-inline-refresh.lock";
233
+ /**
234
+ * Admits a heavy inline refresh without waiting; `{ refused }` when the machine
235
+ * is busy (T14014). `indexedFiles` sizes the footprint (T14019).
236
+ */
237
+ export type NexusRefreshAdmitter = (projectRoot: string, indexedFiles: number) => Promise<{
238
+ release(): Promise<void>;
239
+ } | {
240
+ refused: string;
241
+ }>;
135
242
  /**
136
- * Assess freshness and, when only a few files are stale, refresh the index
243
+ * Assess freshness and, when the refresh is affordable, refresh the index
137
244
  * inline before the caller answers from it.
138
245
  *
139
- * A refresh runs only when `0 < stale ≤ maxFiles` and the recorded cost
140
- * estimate fits `budgetMs`; the budget also cancels the run at its next phase
141
- * boundary, and publication is atomic, so an abandoned refresh leaves the
142
- * previous graph intact. Every decision — refreshed, skipped or failed — is
143
- * disclosed in `autoRefresh`, and the returned freshness describes the index
144
- * the caller is about to read.
246
+ * A refresh runs when the recorded cost, scaled to the repository and to the
247
+ * files it must parse (T14014), fits `budgetMs`. It is guarded so a stale
248
+ * index never turns every query into another heavy run:
249
+ * - one inline refresh at a time per project (a pid lock; a concurrent query
250
+ * answers from the stale index);
251
+ * - a refresh beyond a small incremental set needs a non-waiting `cleo run`
252
+ * admission, and is skipped when the machine is busy;
253
+ * - a refresh that fails or is aborted sets a cooldown: no inline refresh for
254
+ * {@link INLINE_REFRESH_COOLDOWN_MS}, or until an analysis publishes a new
255
+ * generation. The cooldown is reported as `refreshCooldownUntil`.
256
+ * The budget also cancels a run at its next check, and publication is atomic,
257
+ * so an abandoned refresh leaves the previous graph intact. Every decision is
258
+ * disclosed in `autoRefresh`.
145
259
  *
146
260
  * @param projectRoot - Project whose graph is about to be queried.
147
261
  * @param policy - Explicit policy; read from config when omitted.
148
262
  * @param runRefresh - Runs the refresh; a heap-bounded worker unless supplied (T13537).
263
+ * @param admitter - Admits a heavy refresh; `cleo run` admission unless supplied.
149
264
  * @returns Freshness of the index as it stands after any refresh, with its stale set.
150
265
  */
151
- export declare function ensureNexusIndexFresh(projectRoot: string, policy?: NexusAutoRefreshPolicy, runRefresh?: NexusRefreshRunner): Promise<NexusFreshnessAssessment>;
266
+ export declare function ensureNexusIndexFresh(projectRoot: string, policy?: NexusAutoRefreshPolicy, runRefresh?: NexusRefreshRunner, admitter?: NexusRefreshAdmitter): Promise<NexusFreshnessAssessment>;
152
267
  /**
153
268
  * Collect the source files a graph query answer is about.
154
269
  *
@@ -1 +1 @@
1
- {"version":3,"file":"freshness.d.ts","sourceRoot":"","sources":["../../src/nexus/freshness.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"freshness.d.ts","sourceRoot":"","sources":["../../src/nexus/freshness.ts"],"names":[],"mappings":"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"}