@cleocode/core 2026.8.2 → 2026.8.4

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 (186) hide show
  1. package/dist/check/pr-gate.d.ts.map +1 -1
  2. package/dist/check/pr-gate.js +9 -0
  3. package/dist/check/pr-gate.js.map +1 -1
  4. package/dist/docs/export-document.js +66 -16
  5. package/dist/docs/export-document.js.map +3 -3
  6. package/dist/doctor/index.d.ts +2 -0
  7. package/dist/doctor/index.d.ts.map +1 -1
  8. package/dist/doctor/index.js +1 -0
  9. package/dist/doctor/index.js.map +1 -1
  10. package/dist/doctor/superseded-store.d.ts +101 -0
  11. package/dist/doctor/superseded-store.d.ts.map +1 -0
  12. package/dist/doctor/superseded-store.js +156 -0
  13. package/dist/doctor/superseded-store.js.map +1 -0
  14. package/dist/hooks/registry.d.ts +2 -2
  15. package/dist/hooks/registry.d.ts.map +1 -1
  16. package/dist/hooks/registry.js +5 -0
  17. package/dist/hooks/registry.js.map +1 -1
  18. package/dist/hooks/types.d.ts +59 -0
  19. package/dist/hooks/types.d.ts.map +1 -1
  20. package/dist/init/scaffold-workflows.d.ts +12 -0
  21. package/dist/init/scaffold-workflows.d.ts.map +1 -1
  22. package/dist/init/scaffold-workflows.js +16 -0
  23. package/dist/init/scaffold-workflows.js.map +1 -1
  24. package/dist/init/upgrade-workflows.d.ts.map +1 -1
  25. package/dist/init/upgrade-workflows.js +16 -0
  26. package/dist/init/upgrade-workflows.js.map +1 -1
  27. package/dist/init.d.ts.map +1 -1
  28. package/dist/init.js +16 -1
  29. package/dist/init.js.map +1 -1
  30. package/dist/internal.d.ts +1 -0
  31. package/dist/internal.d.ts.map +1 -1
  32. package/dist/internal.js +2 -0
  33. package/dist/internal.js.map +1 -1
  34. package/dist/llm/credentials.d.ts +16 -1
  35. package/dist/llm/credentials.d.ts.map +1 -1
  36. package/dist/llm/credentials.js.map +1 -1
  37. package/dist/llm/cross-provider-selector.d.ts +25 -0
  38. package/dist/llm/cross-provider-selector.d.ts.map +1 -1
  39. package/dist/llm/cross-provider-selector.js +76 -3
  40. package/dist/llm/cross-provider-selector.js.map +1 -1
  41. package/dist/llm/local-inference-probe.d.ts +101 -0
  42. package/dist/llm/local-inference-probe.d.ts.map +1 -0
  43. package/dist/llm/local-inference-probe.js +174 -0
  44. package/dist/llm/local-inference-probe.js.map +1 -0
  45. package/dist/llm/plugin-facade.js +199 -21
  46. package/dist/llm/plugin-facade.js.map +3 -3
  47. package/dist/llm/role-executor.d.ts.map +1 -1
  48. package/dist/llm/role-executor.js +95 -9
  49. package/dist/llm/role-executor.js.map +1 -1
  50. package/dist/llm/role-resolver.d.ts +10 -0
  51. package/dist/llm/role-resolver.d.ts.map +1 -1
  52. package/dist/llm/role-resolver.js +92 -1
  53. package/dist/llm/role-resolver.js.map +1 -1
  54. package/dist/llm/system-resolver.d.ts.map +1 -1
  55. package/dist/llm/system-resolver.js +2 -0
  56. package/dist/llm/system-resolver.js.map +1 -1
  57. package/dist/memory/brain-search.d.ts +109 -0
  58. package/dist/memory/brain-search.d.ts.map +1 -1
  59. package/dist/memory/brain-search.js +149 -37
  60. package/dist/memory/brain-search.js.map +1 -1
  61. package/dist/memory/brain-stub-prune.d.ts +109 -0
  62. package/dist/memory/brain-stub-prune.d.ts.map +1 -0
  63. package/dist/memory/brain-stub-prune.js +155 -0
  64. package/dist/memory/brain-stub-prune.js.map +1 -0
  65. package/dist/memory/engine-compat.d.ts.map +1 -1
  66. package/dist/memory/engine-compat.js +61 -3
  67. package/dist/memory/engine-compat.js.map +1 -1
  68. package/dist/nexus/analyze-orchestrator.d.ts.map +1 -1
  69. package/dist/nexus/analyze-orchestrator.js +28 -0
  70. package/dist/nexus/analyze-orchestrator.js.map +1 -1
  71. package/dist/nexus/context.d.ts.map +1 -1
  72. package/dist/nexus/context.js +3 -3
  73. package/dist/nexus/context.js.map +1 -1
  74. package/dist/nexus/impact.d.ts.map +1 -1
  75. package/dist/nexus/impact.js +3 -3
  76. package/dist/nexus/impact.js.map +1 -1
  77. package/dist/nexus/symbol-miss.d.ts +132 -0
  78. package/dist/nexus/symbol-miss.d.ts.map +1 -0
  79. package/dist/nexus/symbol-miss.js +168 -0
  80. package/dist/nexus/symbol-miss.js.map +1 -0
  81. package/dist/orchestrate/spawn-ops.d.ts +21 -1
  82. package/dist/orchestrate/spawn-ops.d.ts.map +1 -1
  83. package/dist/orchestrate/spawn-ops.js +39 -2
  84. package/dist/orchestrate/spawn-ops.js.map +1 -1
  85. package/dist/orchestrate/worker-verify.d.ts.map +1 -1
  86. package/dist/orchestrate/worker-verify.js +22 -0
  87. package/dist/orchestrate/worker-verify.js.map +1 -1
  88. package/dist/release/changesets-aggregator.d.ts.map +1 -1
  89. package/dist/release/changesets-aggregator.js +15 -1
  90. package/dist/release/changesets-aggregator.js.map +1 -1
  91. package/dist/release/open.d.ts +29 -2
  92. package/dist/release/open.d.ts.map +1 -1
  93. package/dist/release/open.js +48 -11
  94. package/dist/release/open.js.map +1 -1
  95. package/dist/resources/governor.d.ts +12 -2
  96. package/dist/resources/governor.d.ts.map +1 -1
  97. package/dist/resources/governor.js +12 -3
  98. package/dist/resources/governor.js.map +1 -1
  99. package/dist/scaffold/ensure-dirs.d.ts.map +1 -1
  100. package/dist/scaffold/ensure-dirs.js +14 -2
  101. package/dist/scaffold/ensure-dirs.js.map +1 -1
  102. package/dist/scaffold/project-detection.d.ts.map +1 -1
  103. package/dist/scaffold/project-detection.js +2 -1
  104. package/dist/scaffold/project-detection.js.map +1 -1
  105. package/dist/selfimprove/draft-pr.d.ts +14 -1
  106. package/dist/selfimprove/draft-pr.d.ts.map +1 -1
  107. package/dist/selfimprove/draft-pr.js.map +1 -1
  108. package/dist/selfimprove/fix-gen.d.ts +0 -21
  109. package/dist/selfimprove/fix-gen.d.ts.map +1 -1
  110. package/dist/selfimprove/fix-gen.js +276 -76
  111. package/dist/selfimprove/fix-gen.js.map +3 -3
  112. package/dist/selfimprove/run-loop.d.ts.map +1 -1
  113. package/dist/selfimprove/run-loop.js +50 -19
  114. package/dist/selfimprove/run-loop.js.map +1 -1
  115. package/dist/selfimprove/scenarios/dhq-replay-find/golden.json +114 -4
  116. package/dist/selfimprove/scenarios/dhq-replay-find/scenario.json +3 -3
  117. package/dist/sentient/dream-cycle.d.ts +20 -19
  118. package/dist/sentient/dream-cycle.d.ts.map +1 -1
  119. package/dist/sentient/dream-cycle.js +322 -11
  120. package/dist/sentient/dream-cycle.js.map +1 -1
  121. package/dist/sentient/dream-watermark.d.ts +134 -0
  122. package/dist/sentient/dream-watermark.d.ts.map +1 -0
  123. package/dist/sentient/dream-watermark.js +156 -0
  124. package/dist/sentient/dream-watermark.js.map +1 -0
  125. package/dist/sentient/state.d.ts +17 -0
  126. package/dist/sentient/state.d.ts.map +1 -1
  127. package/dist/sentient/state.js +22 -3
  128. package/dist/sentient/state.js.map +1 -1
  129. package/dist/sentient/tick.d.ts.map +1 -1
  130. package/dist/sentient/tick.js +79 -2
  131. package/dist/sentient/tick.js.map +1 -1
  132. package/dist/sessions/index.d.ts.map +1 -1
  133. package/dist/sessions/index.js +5 -1
  134. package/dist/sessions/index.js.map +1 -1
  135. package/dist/sessions/snapshot.d.ts.map +1 -1
  136. package/dist/sessions/snapshot.js +6 -3
  137. package/dist/sessions/snapshot.js.map +1 -1
  138. package/dist/store/checkpoint-git-dir.d.ts +95 -0
  139. package/dist/store/checkpoint-git-dir.d.ts.map +1 -0
  140. package/dist/store/checkpoint-git-dir.js +111 -0
  141. package/dist/store/checkpoint-git-dir.js.map +1 -0
  142. package/dist/store/git-checkpoint.d.ts.map +1 -1
  143. package/dist/store/git-checkpoint.js +6 -5
  144. package/dist/store/git-checkpoint.js.map +1 -1
  145. package/dist/system/health.d.ts.map +1 -1
  146. package/dist/system/health.js +2 -1
  147. package/dist/system/health.js.map +1 -1
  148. package/dist/tasks/add.d.ts.map +1 -1
  149. package/dist/tasks/add.js +40 -4
  150. package/dist/tasks/add.js.map +1 -1
  151. package/dist/tasks/collection.d.ts +51 -0
  152. package/dist/tasks/collection.d.ts.map +1 -0
  153. package/dist/tasks/collection.js +81 -0
  154. package/dist/tasks/collection.js.map +1 -0
  155. package/dist/tasks/complete.d.ts.map +1 -1
  156. package/dist/tasks/complete.js +8 -3
  157. package/dist/tasks/complete.js.map +1 -1
  158. package/dist/tasks/evidence.d.ts.map +1 -1
  159. package/dist/tasks/evidence.js +17 -0
  160. package/dist/tasks/evidence.js.map +1 -1
  161. package/dist/tasks/find.d.ts +50 -0
  162. package/dist/tasks/find.d.ts.map +1 -1
  163. package/dist/tasks/find.js +63 -2
  164. package/dist/tasks/find.js.map +1 -1
  165. package/dist/tasks/heavy-tool-env.d.ts +112 -0
  166. package/dist/tasks/heavy-tool-env.d.ts.map +1 -0
  167. package/dist/tasks/heavy-tool-env.js +133 -0
  168. package/dist/tasks/heavy-tool-env.js.map +1 -0
  169. package/dist/tasks/index.d.ts +2 -0
  170. package/dist/tasks/index.d.ts.map +1 -1
  171. package/dist/tasks/index.js +1 -0
  172. package/dist/tasks/index.js.map +1 -1
  173. package/dist/tasks/tool-cache.d.ts.map +1 -1
  174. package/dist/tasks/tool-cache.js +9 -3
  175. package/dist/tasks/tool-cache.js.map +1 -1
  176. package/dist/tasks/tool-resolver.d.ts +1 -1
  177. package/dist/tasks/tool-resolver.d.ts.map +1 -1
  178. package/dist/tasks/tool-resolver.js +83 -0
  179. package/dist/tasks/tool-resolver.js.map +1 -1
  180. package/dist/tasks/tool-semaphore.d.ts +82 -12
  181. package/dist/tasks/tool-semaphore.d.ts.map +1 -1
  182. package/dist/tasks/tool-semaphore.js +79 -17
  183. package/dist/tasks/tool-semaphore.js.map +1 -1
  184. package/package.json +13 -13
  185. package/templates/CLEO-INJECTION.md +55 -22
  186. package/templates/workflows/release-prepare.yml.tmpl +73 -16
@@ -1 +1 @@
1
- {"version":3,"file":"tool-resolver.js","sourceRoot":"","sources":["../../src/tasks/tool-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAGxE,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,MAAM;IACN,OAAO;IACP,MAAM;IACN,WAAW;IACX,OAAO;IACP,eAAe;IACf;;;;;;;;OAQG;IACH,mBAAmB;CACX,CAAC;AAkDX,8EAA8E;AAC9E,uEAAuE;AACvE,kEAAkE;AAClE,wDAAwD;AACxD,8EAA8E;AAE9E;;;;GAIG;AACH,MAAM,mBAAmB,GAAkC;IACzD,eAAe;IACf,WAAW,EAAE,MAAM;IACnB,UAAU,EAAE,MAAM;IAClB,WAAW,EAAE,MAAM;IACnB,UAAU,EAAE,MAAM;IAClB,MAAM,EAAE,MAAM;IACd,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,MAAM;IACd,YAAY,EAAE,MAAM;IACpB,SAAS,EAAE,MAAM;IACjB,WAAW;IACX,YAAY,EAAE,OAAO;IACrB,WAAW,EAAE,OAAO;IACpB,YAAY,EAAE,OAAO;IACrB,WAAW,EAAE,OAAO;IACpB,aAAa,EAAE,OAAO;IACtB,UAAU,EAAE,OAAO;IACnB,UAAU;IACV,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,MAAM;IACd,QAAQ,EAAE,MAAM;IAChB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,MAAM;IACd,gBAAgB;IAChB,GAAG,EAAE,WAAW;IAChB,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,WAAW;IACpB,mBAAmB;IACnB,KAAK,EAAE,OAAO;IACd,YAAY,EAAE,OAAO;IACrB,WAAW,EAAE,OAAO;IACpB,aAAa,EAAE,OAAO;CACvB,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,uBAAuB,GAA2C;IACtE,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;IAC5B,KAAK,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC;IAC3B,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;IACzB,SAAS,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC;IACnC,KAAK,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC;IAC3B,eAAe,EAAE,CAAC,eAAe,EAAE,SAAS,CAAC;IAC7C,mBAAmB,EAAE,IAAI;CAC1B,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,eAAe,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACxF,CAAC;AAWD;;;;;;;;;;GAUG;AACH,MAAM,iBAAiB,GAAsE;IAC3F,IAAI,EAAE;QACJ,+EAA+E;QAC/E,0EAA0E;QAC1E,sEAAsE;QACtE,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE;QACpC,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;QAC7C,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE;QACnD,SAAS,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE;QACpD,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE;QACtC,eAAe,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE;QAChD,wEAAwE;QACxE,mBAAmB,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE;KACrE;IACD,MAAM,EAAE;QACN,IAAI,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE;QACjC,KAAK,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;QAC/C,IAAI,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE;QAC3C,SAAS,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE;QACvC,KAAK,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE;QACrC,eAAe,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE;QAC/C,mBAAmB,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE;KACrE;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE;QACtC,KAAK,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE;QACxC,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE;QAChE,SAAS,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE;QAC5C,KAAK,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE;QACxC,eAAe,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE;QAClD,mBAAmB,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE;KACrE;IACD,EAAE,EAAE;QACF,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;QAC5C,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE;QAC9C,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;QAC3C,SAAS,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE;QACrE,mBAAmB,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE;KACrE;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;QAChD,KAAK,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE;QAC3C,IAAI,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE;QAClD,mBAAmB,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE;KACrE;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE;QACpC,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE;QACxC,mBAAmB,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE;KACrE;IACD,MAAM,EAAE;QACN,IAAI,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE;QACvC,KAAK,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE;QACzC,mBAAmB,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE;KACrE;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE;QACtC,mBAAmB,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE;KACrE;IACD,MAAM,EAAE;QACN,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE;QACpC,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE;QACxC,mBAAmB,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE;KACrE;IACD,GAAG,EAAE;QACH,IAAI,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE;QACzC,KAAK,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE;QAC7C,mBAAmB,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE;KACrE;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE;QACrC,KAAK,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE;QACzC,IAAI,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE;QACrC,SAAS,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE;QAC3C,mBAAmB,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE;KACrE;IACD,GAAG,EAAE;QACH,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE;QACpC,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;QAC7C,mBAAmB,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE;KACrE;IACD,OAAO,EAAE;QACP,mBAAmB,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE;KACrE;CACF,CAAC;AAEF,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E;;;;;;;;;;GAUG;AACH,SAAS,kBAAkB,CAAC,GAAW;IACrC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACnC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACrB,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AACvC,CAAC;AAUD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,UAAU,kBAAkB,CAChC,QAAgB,EAChB,WAAmB,EACnB,OAAuB,EAAE;IAEzB,6BAA6B;IAC7B,MAAM,SAAS,GAA0B,eAAqC,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC/F,CAAC,CAAE,QAA0B;QAC7B,CAAC,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC;IAE5C,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EACJ,kBAAkB,QAAQ,4BAA4B;gBACtD,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;gBACjC,mBAAmB,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;YACjF,QAAQ,EAAE,gBAAgB;SAC3B,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,SAAS,KAAK,QAAQ,CAAC;IAEvC,qCAAqC;IACrC,MAAM,GAAG,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC;IAEpD,MAAM,KAAK,GAAG,uBAAuB,CAAC,SAAS,CAAC,CAAC;IACjD,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,GAAG,GAAG,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACpD,IAAI,MAAM,EAAE,CAAC;YACX,OAAO;gBACL,EAAE,EAAE,IAAI;gBACR,OAAO,EAAE;oBACP,SAAS;oBACT,WAAW,EAAE,QAAQ;oBACrB,GAAG,EAAE,MAAM,CAAC,GAAG;oBACf,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,iBAAiB;iBACrD;aACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,8BAA8B;IAC9B,MAAM,WAAW,GACf,IAAI,CAAC,mBAAmB;QACvB,gBAAgB,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAA6B;QACnE,wBAAwB,CAAC,WAAW,CAAC,CAAC;IAExC,4BAA4B;IAC5B,MAAM,QAAQ,GAAG,iBAAiB,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IACtD,MAAM,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;IAEhC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EACJ,SAAS,QAAQ,8CAA8C,WAAW,KAAK;gBAC/E,qKAAqK;gBACrK,uEAAuE;YACzE,QAAQ,EAAE,oBAAoB;SAC/B,CAAC;IACJ,CAAC;IAED,OAAO;QACL,EAAE,EAAE,IAAI;QACR,OAAO,EAAE;YACP,SAAS;YACT,WAAW,EAAE,QAAQ;YACrB,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,IAAI,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC;YACnB,MAAM,EAAE,kBAAkB;YAC1B,WAAW;SACZ;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,wBAAwB,CAAC,WAAmB;IACnD,MAAM,GAAG,GAAG,CAAC,CAAS,EAAW,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;IACrE,IAAI,GAAG,CAAC,cAAc,CAAC;QAAE,OAAO,MAAM,CAAC;IACvC,IAAI,GAAG,CAAC,YAAY,CAAC;QAAE,OAAO,MAAM,CAAC;IACrC,IAAI,GAAG,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,kBAAkB,CAAC;QAAE,OAAO,QAAQ,CAAC;IACzF,IAAI,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/B,IAAI,GAAG,CAAC,SAAS,CAAC;QAAE,OAAO,MAAM,CAAC;IAClC,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,cAAc,CAAC,IAAI,GAAG,CAAC,kBAAkB,CAAC;QAAE,OAAO,MAAM,CAAC;IACpF,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC;QAAE,OAAO,MAAM,CAAC;IACzD,IAAI,GAAG,CAAC,SAAS,CAAC;QAAE,OAAO,QAAQ,CAAC;IACpC,IAAI,GAAG,CAAC,eAAe,CAAC;QAAE,OAAO,KAAK,CAAC;IACvC,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,gBAAgB,CAAC,GAAmC,EAAE,IAAc;IAC3E,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,IAAI,MAAM,GAAY,GAAG,CAAC;IAC1B,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;QAC3B,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC;QAChF,MAAM,GAAI,MAAkC,CAAC,OAAO,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AACzE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,WAAmB;IACvD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,sBAAsB,CAAC,CAAC;IAChE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;QAC1C,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC;QACxF,OAAO,MAAiC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"tool-resolver.js","sourceRoot":"","sources":["../../src/tasks/tool-resolver.ts"],"names":[],"mappings":"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"}
@@ -18,18 +18,27 @@
18
18
  *
19
19
  * Defaults (configurable via env):
20
20
  *
21
- * | Tool | Default | CPU profile |
22
- * |----------------|----------------|-------------------------------------|
23
- * | test, build | max(1, cpus/4) | runs its own worker pool already |
24
- * | lint, typecheck| max(2, cpus/2) | usually single-threaded, lighter |
25
- * | audit | max(2, cpus/2) | network-bound, small RAM |
26
- * | security-scan | max(2, cpus/2) | network-bound, small RAM |
21
+ * | Tool | Default | Binding constraint |
22
+ * |----------------|----------------------------------|---------------------------|
23
+ * | test, build | min(RAM/24GiB, cpus/4), min 1 | MEMORY (each run forks) |
24
+ * | lint, typecheck| max(2, cpus/2) | CPU (single-process) |
25
+ * | audit | max(2, cpus/2) | network-bound, small RAM |
26
+ * | security-scan | max(2, cpus/2) | network-bound, small RAM |
27
+ *
28
+ * T12091: `test`/`build` were `max(1, cpus/4)` — 6 slots on a 24-core box. Since
29
+ * each `pnpm run test` is itself allowed 6 vitest forks × 4 GiB, the two bounds
30
+ * composed to 144 GiB of permitted heap on 62 GiB of RAM. Neither layer was
31
+ * individually violated, which is exactly why the machine froze without any
32
+ * guard firing. Heavy tools are now bounded by the dimension that actually
33
+ * limits them — see {@link defaultMaxConcurrent}.
27
34
  *
28
35
  * Override via `CLEO_TOOL_CONCURRENCY_<CANONICAL>` (e.g.
29
36
  * `CLEO_TOOL_CONCURRENCY_TEST=2`). Set to `0` or a negative number to
30
- * disable the limit for that tool.
37
+ * disable the limit for that tool — which also disables the RAM bound, so it is
38
+ * the one setting that can still oversubscribe the machine.
31
39
  *
32
40
  * @task T1534
41
+ * @task T12091
33
42
  * @adr ADR-061
34
43
  */
35
44
  import type { ResourceSample } from '../resources/backend.js';
@@ -76,6 +85,17 @@ export interface AcquireSlotOptions {
76
85
  * @internal
77
86
  */
78
87
  cpuCount?: number;
88
+ /**
89
+ * Override `os.totalmem()` (in GiB) for tests.
90
+ *
91
+ * T12091 made the heavy-tool budget RAM-derived, which would otherwise make
92
+ * the slot count depend on whatever host the suite runs on — a 16 GiB CI
93
+ * runner and a 62 GiB workstation resolve different budgets for identical
94
+ * inputs. Injecting it keeps semaphore behaviour deterministic.
95
+ *
96
+ * @internal
97
+ */
98
+ totalRamGib?: number;
79
99
  /**
80
100
  * Memory-pressure sample used to scale the effective slot count for the
81
101
  * pressure-sensitive `test`/`build` tools (T12001, Epic T11992). When
@@ -88,13 +108,63 @@ export interface AcquireSlotOptions {
88
108
  pressureSample?: ResourceSample | null;
89
109
  }
90
110
  /**
91
- * Compute the default max-concurrency for a canonical tool given the CPU
92
- * count. CPU-heavy runners (test, build) get a quarter of cores; lighter
93
- * tools (lint, typecheck, audit, security-scan) get half. Always at least 1.
111
+ * Worst-case resident footprint of ONE `tool:test` / `tool:build` invocation,
112
+ * in GiB.
113
+ *
114
+ * This is not a guess. `vitest.memory-safe.ts` permits
115
+ * `MEMORY_SAFE_MAX_WORKERS` forks (up to 6) each capped at `FORK_HEAP_MB`
116
+ * (4096), so a single `pnpm run test` may legitimately hold ~24 GiB before any
117
+ * guard fires. Keep this in step with that file if either bound changes.
118
+ *
119
+ * @task T12091
120
+ */
121
+ export declare const HEAVY_TOOL_FOOTPRINT_GIB = 24;
122
+ /**
123
+ * Compute the default max-concurrency for a canonical tool.
124
+ *
125
+ * ## Why this is RAM-derived, not core-derived (T12091)
126
+ *
127
+ * This returned `floor(cpus / 4)` for `test`/`build`, which on a 24-core box is
128
+ * **6 concurrent full test suites**. Each of those is itself allowed 6 vitest
129
+ * forks × a 4 GiB heap cap, so the composed permission was
130
+ *
131
+ * 6 runs × 6 forks × 4 GiB = 144 GiB
132
+ *
133
+ * on a 62 GiB machine. Both layers were individually "bounded" and their
134
+ * composition was 2.3× the hardware — which is precisely how this box froze
135
+ * repeatedly: no single guard was violated. The per-invocation cap (T12087) and
136
+ * this cross-invocation cap were written independently and never multiplied out.
137
+ *
138
+ * The dimensional error is the root of it: what limits a test run is MEMORY, and
139
+ * core count says nothing about memory. A 24-core/16 GiB VM got the same 6 slots
140
+ * as a 24-core/256 GiB server. So heavy tools now divide TOTAL RAM by
141
+ * {@link HEAVY_TOOL_FOOTPRINT_GIB} and are additionally capped by cores, never
142
+ * exceeding what the machine can actually hold.
143
+ *
144
+ * Reactive pressure scaling ({@link pressureScaleSlots}) is not a substitute:
145
+ * PSI `some avg10` is a ten-second average, and a fork fleet can exhaust RAM
146
+ * faster than that window can report it. Admission has to be right up front.
147
+ *
148
+ * Light tools (lint, typecheck, audit, security-scan) are single-process and
149
+ * short, and keep the core-derived half-of-cores budget.
150
+ *
151
+ * @param canonical - the canonical tool class.
152
+ * @param cpuCount - logical cores available.
153
+ * @param totalRamGib - total machine RAM in GiB; defaults to a live reading.
154
+ * @returns the machine-wide slot count, always ≥ 1.
155
+ *
156
+ * @example
157
+ * ```ts
158
+ * // 24 cores, 62 GiB → floor(62/24) = 2 (was 6, permitting 144 GiB of heap)
159
+ * defaultMaxConcurrent('test', 24, 62); // → 2
160
+ * // 24 cores, 16 GiB → 1: one suite is already more than this box can hold
161
+ * defaultMaxConcurrent('test', 24, 16); // → 1
162
+ * ```
94
163
  *
95
164
  * @task T1534
165
+ * @task T12091
96
166
  */
97
- export declare function defaultMaxConcurrent(canonical: CanonicalTool, cpuCount: number): number;
167
+ export declare function defaultMaxConcurrent(canonical: CanonicalTool, cpuCount: number, totalRamGib?: number): number;
98
168
  /**
99
169
  * Resolve the active per-tool concurrency limit, honouring the
100
170
  * `CLEO_TOOL_CONCURRENCY_<CANONICAL>` env override when set. A value of
@@ -104,7 +174,7 @@ export declare function defaultMaxConcurrent(canonical: CanonicalTool, cpuCount:
104
174
  *
105
175
  * @task T1534
106
176
  */
107
- export declare function resolveMaxConcurrent(canonical: CanonicalTool, cpuCount?: number): number;
177
+ export declare function resolveMaxConcurrent(canonical: CanonicalTool, cpuCount?: number, totalRamGib?: number): number;
108
178
  /**
109
179
  * Scale a static slot budget down under memory pressure (T12001 · choke-point
110
180
  * #6). Mirrors the governor's `test-run` budget: halve when `some avg10` exceeds
@@ -1 +1 @@
1
- {"version":3,"file":"tool-semaphore.d.ts","sourceRoot":"","sources":["../../src/tasks/tool-semaphore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AASH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAMxD;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AAEhD;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;CACxC;AAMD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAcvF;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAWxF;AAWD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,aAAa,EACxB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,cAAc,EACtB,UAAU,GAAE;IAAE,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAO,GACnE,MAAM,CAQR;AA4BD;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,aAAa,GAAG,MAAM,CAE7D;AAyBD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,aAAa,EACxB,IAAI,GAAE,kBAAuB,GAC5B,OAAO,CAAC,aAAa,CAAC,CA+ExB"}
1
+ {"version":3,"file":"tool-semaphore.d.ts","sourceRoot":"","sources":["../../src/tasks/tool-semaphore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AASH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAMxD;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AAEhD;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;;;OASG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;CACxC;AAMD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,aAAa,EACxB,QAAQ,EAAE,MAAM,EAChB,WAAW,GAAE,MAA+B,GAC3C,MAAM,CAiBR;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,aAAa,EACxB,QAAQ,CAAC,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CAeR;AAWD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,aAAa,EACxB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,cAAc,EACtB,UAAU,GAAE;IAAE,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAO,GACnE,MAAM,CAQR;AA4BD;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,aAAa,GAAG,MAAM,CAE7D;AAyBD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,aAAa,EACxB,IAAI,GAAE,kBAAuB,GAC5B,OAAO,CAAC,aAAa,CAAC,CA+ExB"}
@@ -18,22 +18,31 @@
18
18
  *
19
19
  * Defaults (configurable via env):
20
20
  *
21
- * | Tool | Default | CPU profile |
22
- * |----------------|----------------|-------------------------------------|
23
- * | test, build | max(1, cpus/4) | runs its own worker pool already |
24
- * | lint, typecheck| max(2, cpus/2) | usually single-threaded, lighter |
25
- * | audit | max(2, cpus/2) | network-bound, small RAM |
26
- * | security-scan | max(2, cpus/2) | network-bound, small RAM |
21
+ * | Tool | Default | Binding constraint |
22
+ * |----------------|----------------------------------|---------------------------|
23
+ * | test, build | min(RAM/24GiB, cpus/4), min 1 | MEMORY (each run forks) |
24
+ * | lint, typecheck| max(2, cpus/2) | CPU (single-process) |
25
+ * | audit | max(2, cpus/2) | network-bound, small RAM |
26
+ * | security-scan | max(2, cpus/2) | network-bound, small RAM |
27
+ *
28
+ * T12091: `test`/`build` were `max(1, cpus/4)` — 6 slots on a 24-core box. Since
29
+ * each `pnpm run test` is itself allowed 6 vitest forks × 4 GiB, the two bounds
30
+ * composed to 144 GiB of permitted heap on 62 GiB of RAM. Neither layer was
31
+ * individually violated, which is exactly why the machine froze without any
32
+ * guard firing. Heavy tools are now bounded by the dimension that actually
33
+ * limits them — see {@link defaultMaxConcurrent}.
27
34
  *
28
35
  * Override via `CLEO_TOOL_CONCURRENCY_<CANONICAL>` (e.g.
29
36
  * `CLEO_TOOL_CONCURRENCY_TEST=2`). Set to `0` or a negative number to
30
- * disable the limit for that tool.
37
+ * disable the limit for that tool — which also disables the RAM bound, so it is
38
+ * the one setting that can still oversubscribe the machine.
31
39
  *
32
40
  * @task T1534
41
+ * @task T12091
33
42
  * @adr ADR-061
34
43
  */
35
44
  import { existsSync, mkdirSync, writeFileSync } from 'node:fs';
36
- import { availableParallelism } from 'node:os';
45
+ import { availableParallelism, totalmem } from 'node:os';
37
46
  import { join } from 'node:path';
38
47
  import lockfile from 'proper-lockfile';
39
48
  import { getCleoHome } from '../paths.js';
@@ -42,18 +51,71 @@ import { ResourceMonitor } from '../resources/monitor.js';
42
51
  // Concurrency-limit defaults + override resolution
43
52
  // ---------------------------------------------------------------------------
44
53
  /**
45
- * Compute the default max-concurrency for a canonical tool given the CPU
46
- * count. CPU-heavy runners (test, build) get a quarter of cores; lighter
47
- * tools (lint, typecheck, audit, security-scan) get half. Always at least 1.
54
+ * Worst-case resident footprint of ONE `tool:test` / `tool:build` invocation,
55
+ * in GiB.
56
+ *
57
+ * This is not a guess. `vitest.memory-safe.ts` permits
58
+ * `MEMORY_SAFE_MAX_WORKERS` forks (up to 6) each capped at `FORK_HEAP_MB`
59
+ * (4096), so a single `pnpm run test` may legitimately hold ~24 GiB before any
60
+ * guard fires. Keep this in step with that file if either bound changes.
61
+ *
62
+ * @task T12091
63
+ */
64
+ export const HEAVY_TOOL_FOOTPRINT_GIB = 24;
65
+ /**
66
+ * Compute the default max-concurrency for a canonical tool.
67
+ *
68
+ * ## Why this is RAM-derived, not core-derived (T12091)
69
+ *
70
+ * This returned `floor(cpus / 4)` for `test`/`build`, which on a 24-core box is
71
+ * **6 concurrent full test suites**. Each of those is itself allowed 6 vitest
72
+ * forks × a 4 GiB heap cap, so the composed permission was
73
+ *
74
+ * 6 runs × 6 forks × 4 GiB = 144 GiB
75
+ *
76
+ * on a 62 GiB machine. Both layers were individually "bounded" and their
77
+ * composition was 2.3× the hardware — which is precisely how this box froze
78
+ * repeatedly: no single guard was violated. The per-invocation cap (T12087) and
79
+ * this cross-invocation cap were written independently and never multiplied out.
80
+ *
81
+ * The dimensional error is the root of it: what limits a test run is MEMORY, and
82
+ * core count says nothing about memory. A 24-core/16 GiB VM got the same 6 slots
83
+ * as a 24-core/256 GiB server. So heavy tools now divide TOTAL RAM by
84
+ * {@link HEAVY_TOOL_FOOTPRINT_GIB} and are additionally capped by cores, never
85
+ * exceeding what the machine can actually hold.
86
+ *
87
+ * Reactive pressure scaling ({@link pressureScaleSlots}) is not a substitute:
88
+ * PSI `some avg10` is a ten-second average, and a fork fleet can exhaust RAM
89
+ * faster than that window can report it. Admission has to be right up front.
90
+ *
91
+ * Light tools (lint, typecheck, audit, security-scan) are single-process and
92
+ * short, and keep the core-derived half-of-cores budget.
93
+ *
94
+ * @param canonical - the canonical tool class.
95
+ * @param cpuCount - logical cores available.
96
+ * @param totalRamGib - total machine RAM in GiB; defaults to a live reading.
97
+ * @returns the machine-wide slot count, always ≥ 1.
98
+ *
99
+ * @example
100
+ * ```ts
101
+ * // 24 cores, 62 GiB → floor(62/24) = 2 (was 6, permitting 144 GiB of heap)
102
+ * defaultMaxConcurrent('test', 24, 62); // → 2
103
+ * // 24 cores, 16 GiB → 1: one suite is already more than this box can hold
104
+ * defaultMaxConcurrent('test', 24, 16); // → 1
105
+ * ```
48
106
  *
49
107
  * @task T1534
108
+ * @task T12091
50
109
  */
51
- export function defaultMaxConcurrent(canonical, cpuCount) {
110
+ export function defaultMaxConcurrent(canonical, cpuCount, totalRamGib = totalmem() / 1024 ** 3) {
52
111
  const cpus = Math.max(1, cpuCount);
53
112
  switch (canonical) {
54
113
  case 'test':
55
- case 'build':
56
- return Math.max(1, Math.floor(cpus / 4));
114
+ case 'build': {
115
+ const byRam = Math.floor(totalRamGib / HEAVY_TOOL_FOOTPRINT_GIB);
116
+ const byCpu = Math.floor(cpus / 4);
117
+ return Math.max(1, Math.min(byRam, byCpu));
118
+ }
57
119
  case 'lint':
58
120
  case 'typecheck':
59
121
  case 'audit':
@@ -72,7 +134,7 @@ export function defaultMaxConcurrent(canonical, cpuCount) {
72
134
  *
73
135
  * @task T1534
74
136
  */
75
- export function resolveMaxConcurrent(canonical, cpuCount) {
137
+ export function resolveMaxConcurrent(canonical, cpuCount, totalRamGib) {
76
138
  const envKey = `CLEO_TOOL_CONCURRENCY_${canonical.toUpperCase().replace(/-/g, '_')}`;
77
139
  const raw = process.env[envKey];
78
140
  if (raw !== undefined && raw !== '') {
@@ -83,7 +145,7 @@ export function resolveMaxConcurrent(canonical, cpuCount) {
83
145
  return parsed;
84
146
  }
85
147
  }
86
- return defaultMaxConcurrent(canonical, cpuCount ?? availableParallelism());
148
+ return defaultMaxConcurrent(canonical, cpuCount ?? availableParallelism(), totalRamGib ?? totalmem() / 1024 ** 3);
87
149
  }
88
150
  /**
89
151
  * Whether a canonical tool's slot budget shrinks under memory pressure.
@@ -197,7 +259,7 @@ const NOOP_RELEASE = async () => {
197
259
  * @task T1534
198
260
  */
199
261
  export async function acquireGlobalSlot(canonical, opts = {}) {
200
- const max = resolveMaxConcurrent(canonical, opts.cpuCount);
262
+ const max = resolveMaxConcurrent(canonical, opts.cpuCount, opts.totalRamGib);
201
263
  if (!Number.isFinite(max) || max <= 0) {
202
264
  return NOOP_RELEASE;
203
265
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tool-semaphore.js","sourceRoot":"","sources":["../../src/tasks/tool-semaphore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-semaphore.js","sourceRoot":"","sources":["../../src/tasks/tool-semaphore.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cleocode/core",
3
- "version": "2026.8.2",
3
+ "version": "2026.8.4",
4
4
  "description": "CLEO core business logic kernel — tasks, sessions, memory, orchestration, lifecycle, with bundled SQLite store",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -456,16 +456,16 @@
456
456
  "write-file-atomic": "^7.0.1",
457
457
  "yaml": "^2.8.3",
458
458
  "zod": "^4.3.6",
459
- "@cleocode/adapters": "2026.8.2",
460
- "@cleocode/agents": "2026.8.2",
461
- "@cleocode/git-shim": "2026.8.2",
462
- "@cleocode/contracts": "2026.8.2",
463
- "@cleocode/caamp": "2026.8.2",
464
- "@cleocode/lafs": "2026.8.2",
465
- "@cleocode/nexus": "2026.8.2",
466
- "@cleocode/skills": "2026.8.2",
467
- "@cleocode/worktree": "2026.8.2",
468
- "@cleocode/paths": "2026.8.2"
459
+ "@cleocode/adapters": "2026.8.4",
460
+ "@cleocode/agents": "2026.8.4",
461
+ "@cleocode/caamp": "2026.8.4",
462
+ "@cleocode/lafs": "2026.8.4",
463
+ "@cleocode/contracts": "2026.8.4",
464
+ "@cleocode/git-shim": "2026.8.4",
465
+ "@cleocode/nexus": "2026.8.4",
466
+ "@cleocode/paths": "2026.8.4",
467
+ "@cleocode/skills": "2026.8.4",
468
+ "@cleocode/worktree": "2026.8.4"
469
469
  },
470
470
  "engines": {
471
471
  "node": ">=24.16.0"
@@ -491,7 +491,7 @@
491
491
  "@types/proper-lockfile": "^4.1.4",
492
492
  "@types/tar": "^6.1.13",
493
493
  "@types/write-file-atomic": "^4.0.3",
494
- "@cleocode/utils": "2026.8.1"
494
+ "@cleocode/utils": "2026.8.4"
495
495
  },
496
496
  "repository": {
497
497
  "type": "git",
@@ -500,7 +500,7 @@
500
500
  },
501
501
  "optionalDependencies": {
502
502
  "llmtxt": "^2026.5.15",
503
- "@cleocode/studio": "^2026.8.2"
503
+ "@cleocode/studio": "^2026.8.4"
504
504
  },
505
505
  "scripts": {
506
506
  "build": "tsc && node scripts/copy-selfimprove-fixtures.mjs",
@@ -127,7 +127,7 @@ CLEO has **three distinct relationship systems**. Do not conflate them.
127
127
  |------|---------|
128
128
  | Check session | `cleo session status` |
129
129
  | Resume context | `cleo briefing` |
130
- | Start session | `cleo session start --scope global` |
130
+ | Start session | `cleo session start --scope global --name "<what you are doing>"` (both flags are REQUIRED) |
131
131
  | End session | `cleo session end --note "..."` |
132
132
  <!-- /CLEO-INJECTION:section=session-commands -->
133
133
 
@@ -148,32 +148,65 @@ CLEO has **three distinct relationship systems**. Do not conflate them.
148
148
  Memory context: `cleo memory digest --brief` gives a live project memory summary (default mode). Legacy file mode: set `brain.memoryBridge.mode = "file"` in config to restore `@.cleo/memory-bridge.md` injection.
149
149
  <!-- /CLEO-INJECTION:section=memory -->
150
150
 
151
- <!-- CLEO-INJECTION:section=nexus -->
152
- ## Nexus — when to use which scope
151
+ <!-- CLEO-INJECTION:section=data-location -->
152
+ ## Where the data lives — never read `.cleo/*.db` directly
153
153
 
154
- `cleo nexus` is the code-intelligence surface. It has **5 scopes**. Pick by intent, not name.
154
+ Store = **`.cleo/cleo.db`**; task rows are in PREFIXED tables (`tasks_tasks`, …).
155
+ Three decoys make a HEALTHY project look corrupt:
155
156
 
156
- | Intent | Scope | First-reach command |
157
- |---------------------------------------------|----------------|-----------------------------------------|
158
- | Edit/refactor *this* repo safely | `project` | `cleo nexus impact <symbol>` |
159
- | Explore *this* repo by concept or symbol | `project` | `cleo nexus query` / `context` |
160
- | One-shot machine-readable repo snapshot | `project` | `cleo nexus report` (LAFS JSON) |
161
- | Recall what the agent knows across sessions | `living-brain` | `cleo nexus brain find "<q>"` |
162
- | Compare or share patterns across repos | `cross-project`| `cleo nexus compare` / `shared` |
163
- | Blend code + memory + cross-repo | `hybrid` | `cleo nexus synthesize <topic>` |
164
- | Index health / reindex / purge | `global-infra` | `cleo nexus admin <status|analyze|clean>` |
157
+ | Decoy | Reality |
158
+ |-------|---------|
159
+ | `.cleo/tasks.db`, small + months old | The pre-migration store, left under the old live name |
160
+ | `.cleo/backups/sqlite/tasks-<ts>.db`, ~100× bigger | Snapshots **of `cleo.db`**; `tasks-` is a legacy label |
161
+ | bare `tasks` table, 0 rows | Empty relic beside the populated `tasks_tasks` |
165
162
 
166
- **Project resolution** (project + hybrid scopes only):
167
- `--project-id` > `--path` > `cwd`. Default ID = `base64url(path).slice(0,32)`.
163
+ A 400 KB `tasks.db` beside 58 MB `tasks-*.db` is the NORMAL migrated layout — not
164
+ truncation, not rotation, not `llmtxt.db`. `cleo doctor superseded-store` proves
165
+ which DB is real by counting rows in both; `briefing`/`focus` read it already.
166
+ <!-- /CLEO-INJECTION:section=data-location -->
168
167
 
169
- **Every nexus envelope returns**:
170
- - `meta.scope` — confirms which scope answered
171
- - `meta.projectId` — confirms which project (if applicable)
172
- - `meta.suggestedNext: string[]` — chained-reasoning hints (use these before re-discovering)
173
168
 
174
- **Rule**: BEFORE editing any symbol, run `cleo nexus impact <symbol>`. HIGH/CRITICAL = stop and warn.
169
+ <!-- CLEO-INJECTION:section=nexus -->
170
+ ## Nexus — when to use which scope
175
171
 
176
- **Skip the help dump**: `cleo nexus report` answers most agent project-questions in one call.
172
+ `cleo nexus` is the code-intelligence surface over THIS repo's symbol graph.
173
+ Pick by intent. Every command below is verified to exist — see the gate note.
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
+ | Rebuild the index | `cleo nexus analyze` |
186
+
187
+ **FIRST CALL IS `cleo nexus status`.** It returns `nodeCount`, `lastIndexedAt`
188
+ and `staleFileCount`. The index is NOT auto-refreshed — a symbol added after
189
+ the last `analyze` run is simply absent, and a lookup for it returns
190
+ `E_NOT_FOUND` that reads identically to "no such symbol". If `staleFileCount`
191
+ is a large fraction of `fileCount`, run `cleo nexus analyze` or treat
192
+ `git grep` as the ground truth and SAY SO in your response.
193
+
194
+ `E_NOT_FOUND` from `impact`/`context` now reports the index size, its median
195
+ entry age, and the repair command. Read it — do not infer that nexus is broken.
196
+
197
+ **Project resolution**: `--project-id` > `--path` > `cwd`.
198
+ Default ID = `base64url(path).slice(0,32)`.
199
+
200
+ **Rule**: BEFORE editing any symbol, run `cleo nexus impact <symbol>`.
201
+ HIGH/CRITICAL = stop and warn. If the index is stale, say that instead of
202
+ silently substituting `git grep`.
203
+
204
+ > Commands named here are asserted against the live CLI by
205
+ > `scripts/lint-injection-commands.mjs` (T12069). Five commands previously
206
+ > listed in this section — `nexus report`, `nexus brain find`, `nexus compare`,
207
+ > `nexus shared`, `nexus synthesize`, plus `nexus admin` — never existed; the
208
+ > gate exists so a protocol that every agent is told to follow can no longer
209
+ > drift from the binary.
177
210
  <!-- /CLEO-INJECTION:section=nexus -->
178
211
 
179
212
  <!-- CLEO-INJECTION:section=orchestration -->
@@ -372,7 +405,7 @@ Every spawn prompt contains these required sections — orchestrators can progra
372
405
  ## Rules
373
406
 
374
407
  - No time estimates — use `small`, `medium`, `large` sizing
375
- - Token budget: avoid `cleo list` without `--parent`, avoid `cleo help --tier 2` before tier 0
408
+ - Token budget: avoid `cleo list` without `--parent`; get usage from `cleo <command> --help` (there is no top-level help command)
376
409
  - Do not read full task details for tasks you won't work on
377
410
  <!-- /CLEO-INJECTION:section=rules -->
378
411