@claude-flow/cli 3.32.2 → 3.32.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (655) hide show
  1. package/.claude/helpers/helpers.manifest.json +3 -3
  2. package/.claude/helpers/statusline.cjs +38 -38
  3. package/catalog-manifest.json +2 -2
  4. package/package.json +2 -2
  5. package/plugins/ruflo-metaharness/scripts/smoke.sh +11 -11
  6. package/dist/src/agenticow/speculative-exploration.d.ts +0 -148
  7. package/dist/src/agenticow/speculative-exploration.js +0 -218
  8. package/dist/src/appliance/gguf-engine.d.ts +0 -91
  9. package/dist/src/appliance/gguf-engine.js +0 -425
  10. package/dist/src/appliance/ruvllm-bridge.d.ts +0 -102
  11. package/dist/src/appliance/ruvllm-bridge.js +0 -292
  12. package/dist/src/appliance/rvfa-builder.d.ts +0 -44
  13. package/dist/src/appliance/rvfa-builder.js +0 -329
  14. package/dist/src/appliance/rvfa-distribution.d.ts +0 -97
  15. package/dist/src/appliance/rvfa-distribution.js +0 -370
  16. package/dist/src/appliance/rvfa-format.d.ts +0 -111
  17. package/dist/src/appliance/rvfa-format.js +0 -393
  18. package/dist/src/appliance/rvfa-runner.d.ts +0 -69
  19. package/dist/src/appliance/rvfa-runner.js +0 -237
  20. package/dist/src/appliance/rvfa-signing.d.ts +0 -123
  21. package/dist/src/appliance/rvfa-signing.js +0 -347
  22. package/dist/src/autopilot-state.d.ts +0 -77
  23. package/dist/src/autopilot-state.js +0 -271
  24. package/dist/src/benchmarks/gaia-agent-planning.smoke.d.ts +0 -18
  25. package/dist/src/benchmarks/gaia-agent-planning.smoke.js +0 -253
  26. package/dist/src/benchmarks/gaia-agent.d.ts +0 -198
  27. package/dist/src/benchmarks/gaia-agent.js +0 -651
  28. package/dist/src/benchmarks/gaia-causal-memory.d.ts +0 -133
  29. package/dist/src/benchmarks/gaia-causal-memory.js +0 -281
  30. package/dist/src/benchmarks/gaia-causal-memory.smoke.d.ts +0 -22
  31. package/dist/src/benchmarks/gaia-causal-memory.smoke.js +0 -300
  32. package/dist/src/benchmarks/gaia-convergence.d.ts +0 -138
  33. package/dist/src/benchmarks/gaia-convergence.js +0 -260
  34. package/dist/src/benchmarks/gaia-convergence.smoke.d.ts +0 -19
  35. package/dist/src/benchmarks/gaia-convergence.smoke.js +0 -246
  36. package/dist/src/benchmarks/gaia-critic.d.ts +0 -123
  37. package/dist/src/benchmarks/gaia-critic.js +0 -312
  38. package/dist/src/benchmarks/gaia-critic.smoke.d.ts +0 -21
  39. package/dist/src/benchmarks/gaia-critic.smoke.js +0 -327
  40. package/dist/src/benchmarks/gaia-decomposer.d.ts +0 -125
  41. package/dist/src/benchmarks/gaia-decomposer.js +0 -350
  42. package/dist/src/benchmarks/gaia-decomposer.smoke.d.ts +0 -21
  43. package/dist/src/benchmarks/gaia-decomposer.smoke.js +0 -228
  44. package/dist/src/benchmarks/gaia-e2e-smoke.d.ts +0 -27
  45. package/dist/src/benchmarks/gaia-e2e-smoke.js +0 -136
  46. package/dist/src/benchmarks/gaia-extract.smoke.d.ts +0 -45
  47. package/dist/src/benchmarks/gaia-extract.smoke.js +0 -242
  48. package/dist/src/benchmarks/gaia-hardness/features.d.ts +0 -46
  49. package/dist/src/benchmarks/gaia-hardness/features.js +0 -170
  50. package/dist/src/benchmarks/gaia-hardness/predictor.d.ts +0 -105
  51. package/dist/src/benchmarks/gaia-hardness/predictor.js +0 -260
  52. package/dist/src/benchmarks/gaia-hardness/predictor.smoke.d.ts +0 -20
  53. package/dist/src/benchmarks/gaia-hardness/predictor.smoke.js +0 -235
  54. package/dist/src/benchmarks/gaia-hardness/train-data-loader.d.ts +0 -51
  55. package/dist/src/benchmarks/gaia-hardness/train-data-loader.js +0 -179
  56. package/dist/src/benchmarks/gaia-judge.d.ts +0 -88
  57. package/dist/src/benchmarks/gaia-judge.js +0 -437
  58. package/dist/src/benchmarks/gaia-loader.d.ts +0 -87
  59. package/dist/src/benchmarks/gaia-loader.js +0 -326
  60. package/dist/src/benchmarks/gaia-tools/file_read.d.ts +0 -35
  61. package/dist/src/benchmarks/gaia-tools/file_read.js +0 -403
  62. package/dist/src/benchmarks/gaia-tools/grounded_query.d.ts +0 -126
  63. package/dist/src/benchmarks/gaia-tools/grounded_query.js +0 -225
  64. package/dist/src/benchmarks/gaia-tools/index.d.ts +0 -32
  65. package/dist/src/benchmarks/gaia-tools/index.js +0 -36
  66. package/dist/src/benchmarks/gaia-tools/types.d.ts +0 -62
  67. package/dist/src/benchmarks/gaia-tools/types.js +0 -12
  68. package/dist/src/benchmarks/gaia-tools/web_search.d.ts +0 -30
  69. package/dist/src/benchmarks/gaia-tools/web_search.js +0 -210
  70. package/dist/src/benchmarks/gaia-voting.d.ts +0 -88
  71. package/dist/src/benchmarks/gaia-voting.js +0 -297
  72. package/dist/src/benchmarks/gaia-voting.smoke.d.ts +0 -20
  73. package/dist/src/benchmarks/gaia-voting.smoke.js +0 -332
  74. package/dist/src/benchmarks/pretrain/index.d.ts +0 -58
  75. package/dist/src/benchmarks/pretrain/index.js +0 -404
  76. package/dist/src/business-pods/bbs-budget-tracker.d.ts +0 -139
  77. package/dist/src/business-pods/bbs-budget-tracker.js +0 -358
  78. package/dist/src/business-pods/domain-affinity-policy.d.ts +0 -47
  79. package/dist/src/business-pods/domain-affinity-policy.js +0 -65
  80. package/dist/src/business-pods/pod-schema.d.ts +0 -96
  81. package/dist/src/business-pods/pod-schema.js +0 -225
  82. package/dist/src/commands/advisor.d.ts +0 -15
  83. package/dist/src/commands/advisor.js +0 -94
  84. package/dist/src/commands/agent-wasm.d.ts +0 -14
  85. package/dist/src/commands/agent-wasm.js +0 -333
  86. package/dist/src/commands/agent.d.ts +0 -8
  87. package/dist/src/commands/agent.js +0 -927
  88. package/dist/src/commands/analyze.d.ts +0 -19
  89. package/dist/src/commands/analyze.js +0 -2047
  90. package/dist/src/commands/announcements.d.ts +0 -17
  91. package/dist/src/commands/announcements.js +0 -0
  92. package/dist/src/commands/appliance-advanced.d.ts +0 -9
  93. package/dist/src/commands/appliance-advanced.js +0 -215
  94. package/dist/src/commands/appliance.d.ts +0 -8
  95. package/dist/src/commands/appliance.js +0 -404
  96. package/dist/src/commands/autopilot.d.ts +0 -15
  97. package/dist/src/commands/autopilot.js +0 -407
  98. package/dist/src/commands/benchmark.d.ts +0 -10
  99. package/dist/src/commands/benchmark.js +0 -460
  100. package/dist/src/commands/claims.d.ts +0 -10
  101. package/dist/src/commands/claims.js +0 -620
  102. package/dist/src/commands/cleanup.d.ts +0 -13
  103. package/dist/src/commands/cleanup.js +0 -250
  104. package/dist/src/commands/completions.d.ts +0 -10
  105. package/dist/src/commands/completions.js +0 -539
  106. package/dist/src/commands/config.d.ts +0 -8
  107. package/dist/src/commands/config.js +0 -428
  108. package/dist/src/commands/daemon.d.ts +0 -59
  109. package/dist/src/commands/daemon.js +0 -1733
  110. package/dist/src/commands/deployment.d.ts +0 -10
  111. package/dist/src/commands/deployment.js +0 -672
  112. package/dist/src/commands/doctor.d.ts +0 -10
  113. package/dist/src/commands/doctor.js +0 -1695
  114. package/dist/src/commands/eject.d.ts +0 -33
  115. package/dist/src/commands/eject.js +0 -195
  116. package/dist/src/commands/embeddings.d.ts +0 -18
  117. package/dist/src/commands/embeddings.js +0 -1623
  118. package/dist/src/commands/funnel.d.ts +0 -18
  119. package/dist/src/commands/funnel.js +0 -302
  120. package/dist/src/commands/gaia-bench.d.ts +0 -40
  121. package/dist/src/commands/gaia-bench.js +0 -597
  122. package/dist/src/commands/guidance.d.ts +0 -8
  123. package/dist/src/commands/guidance.js +0 -556
  124. package/dist/src/commands/hive-mind.d.ts +0 -11
  125. package/dist/src/commands/hive-mind.js +0 -1319
  126. package/dist/src/commands/hooks.d.ts +0 -8
  127. package/dist/src/commands/hooks.js +0 -4606
  128. package/dist/src/commands/index.d.ts +0 -118
  129. package/dist/src/commands/index.js +0 -364
  130. package/dist/src/commands/init.d.ts +0 -13
  131. package/dist/src/commands/init.js +0 -1297
  132. package/dist/src/commands/issues.d.ts +0 -21
  133. package/dist/src/commands/issues.js +0 -567
  134. package/dist/src/commands/mcp.d.ts +0 -11
  135. package/dist/src/commands/mcp.js +0 -732
  136. package/dist/src/commands/memory-backup.d.ts +0 -11
  137. package/dist/src/commands/memory-backup.js +0 -46
  138. package/dist/src/commands/memory-distill.d.ts +0 -27
  139. package/dist/src/commands/memory-distill.js +0 -374
  140. package/dist/src/commands/memory.d.ts +0 -8
  141. package/dist/src/commands/memory.js +0 -1596
  142. package/dist/src/commands/metaharness.d.ts +0 -39
  143. package/dist/src/commands/metaharness.js +0 -215
  144. package/dist/src/commands/migrate.d.ts +0 -8
  145. package/dist/src/commands/migrate.js +0 -742
  146. package/dist/src/commands/neural.d.ts +0 -10
  147. package/dist/src/commands/neural.js +0 -4331
  148. package/dist/src/commands/performance.d.ts +0 -10
  149. package/dist/src/commands/performance.js +0 -583
  150. package/dist/src/commands/plugins.d.ts +0 -11
  151. package/dist/src/commands/plugins.js +0 -826
  152. package/dist/src/commands/process.d.ts +0 -10
  153. package/dist/src/commands/process.js +0 -694
  154. package/dist/src/commands/progress.d.ts +0 -11
  155. package/dist/src/commands/progress.js +0 -259
  156. package/dist/src/commands/providers.d.ts +0 -10
  157. package/dist/src/commands/providers.js +0 -502
  158. package/dist/src/commands/proxy.d.ts +0 -21
  159. package/dist/src/commands/proxy.js +0 -310
  160. package/dist/src/commands/route.d.ts +0 -16
  161. package/dist/src/commands/route.js +0 -822
  162. package/dist/src/commands/ruvector/backup.d.ts +0 -11
  163. package/dist/src/commands/ruvector/backup.js +0 -747
  164. package/dist/src/commands/ruvector/benchmark.d.ts +0 -11
  165. package/dist/src/commands/ruvector/benchmark.js +0 -490
  166. package/dist/src/commands/ruvector/import.d.ts +0 -18
  167. package/dist/src/commands/ruvector/import.js +0 -373
  168. package/dist/src/commands/ruvector/index.d.ts +0 -29
  169. package/dist/src/commands/ruvector/index.js +0 -129
  170. package/dist/src/commands/ruvector/init.d.ts +0 -11
  171. package/dist/src/commands/ruvector/init.js +0 -467
  172. package/dist/src/commands/ruvector/migrate.d.ts +0 -11
  173. package/dist/src/commands/ruvector/migrate.js +0 -498
  174. package/dist/src/commands/ruvector/optimize.d.ts +0 -11
  175. package/dist/src/commands/ruvector/optimize.js +0 -505
  176. package/dist/src/commands/ruvector/pg-utils.d.ts +0 -14
  177. package/dist/src/commands/ruvector/pg-utils.js +0 -41
  178. package/dist/src/commands/ruvector/setup.d.ts +0 -18
  179. package/dist/src/commands/ruvector/setup.js +0 -765
  180. package/dist/src/commands/ruvector/status.d.ts +0 -11
  181. package/dist/src/commands/ruvector/status.js +0 -479
  182. package/dist/src/commands/security.d.ts +0 -10
  183. package/dist/src/commands/security.js +0 -1012
  184. package/dist/src/commands/session.d.ts +0 -8
  185. package/dist/src/commands/session.js +0 -757
  186. package/dist/src/commands/settings.d.ts +0 -19
  187. package/dist/src/commands/settings.js +0 -180
  188. package/dist/src/commands/spinner.d.ts +0 -16
  189. package/dist/src/commands/spinner.js +0 -329
  190. package/dist/src/commands/start.d.ts +0 -8
  191. package/dist/src/commands/start.js +0 -418
  192. package/dist/src/commands/status.d.ts +0 -8
  193. package/dist/src/commands/status.js +0 -608
  194. package/dist/src/commands/swarm.d.ts +0 -8
  195. package/dist/src/commands/swarm.js +0 -891
  196. package/dist/src/commands/task.d.ts +0 -8
  197. package/dist/src/commands/task.js +0 -675
  198. package/dist/src/commands/transfer-store.d.ts +0 -13
  199. package/dist/src/commands/transfer-store.js +0 -428
  200. package/dist/src/commands/update.d.ts +0 -8
  201. package/dist/src/commands/update.js +0 -276
  202. package/dist/src/commands/verify.d.ts +0 -19
  203. package/dist/src/commands/verify.js +0 -261
  204. package/dist/src/commands/version.d.ts +0 -42
  205. package/dist/src/commands/version.js +0 -106
  206. package/dist/src/commands/workflow.d.ts +0 -8
  207. package/dist/src/commands/workflow.js +0 -617
  208. package/dist/src/config/harness-feedback-applier.d.ts +0 -50
  209. package/dist/src/config/harness-feedback-applier.js +0 -122
  210. package/dist/src/config/proven-config-refresh.d.ts +0 -39
  211. package/dist/src/config/proven-config-refresh.js +0 -154
  212. package/dist/src/config/proven-config-rvfa.d.ts +0 -23
  213. package/dist/src/config/proven-config-rvfa.js +0 -73
  214. package/dist/src/config/proven-config.d.ts +0 -86
  215. package/dist/src/config/proven-config.js +0 -176
  216. package/dist/src/config-adapter.d.ts +0 -15
  217. package/dist/src/config-adapter.js +0 -186
  218. package/dist/src/encryption/vault.d.ts +0 -94
  219. package/dist/src/encryption/vault.js +0 -172
  220. package/dist/src/fs-secure.d.ts +0 -86
  221. package/dist/src/fs-secure.js +0 -133
  222. package/dist/src/funnel/advisor-tip.d.ts +0 -58
  223. package/dist/src/funnel/advisor-tip.js +0 -92
  224. package/dist/src/funnel/attribution.d.ts +0 -37
  225. package/dist/src/funnel/attribution.js +0 -101
  226. package/dist/src/funnel/consent.d.ts +0 -22
  227. package/dist/src/funnel/consent.js +0 -58
  228. package/dist/src/funnel/credit-errors.d.ts +0 -31
  229. package/dist/src/funnel/credit-errors.js +0 -88
  230. package/dist/src/funnel/credit-notifier.d.ts +0 -44
  231. package/dist/src/funnel/credit-notifier.js +0 -74
  232. package/dist/src/funnel/disclosure.d.ts +0 -47
  233. package/dist/src/funnel/disclosure.js +0 -109
  234. package/dist/src/funnel/enrollment.d.ts +0 -36
  235. package/dist/src/funnel/enrollment.js +0 -64
  236. package/dist/src/funnel/environment.d.ts +0 -17
  237. package/dist/src/funnel/environment.js +0 -39
  238. package/dist/src/funnel/event-transport.d.ts +0 -51
  239. package/dist/src/funnel/event-transport.js +0 -199
  240. package/dist/src/funnel/events.d.ts +0 -42
  241. package/dist/src/funnel/events.js +0 -150
  242. package/dist/src/funnel/index.d.ts +0 -21
  243. package/dist/src/funnel/index.js +0 -21
  244. package/dist/src/funnel/insights.d.ts +0 -50
  245. package/dist/src/funnel/insights.js +0 -120
  246. package/dist/src/funnel/local-signals.d.ts +0 -20
  247. package/dist/src/funnel/local-signals.js +0 -77
  248. package/dist/src/funnel/message-transport.d.ts +0 -51
  249. package/dist/src/funnel/message-transport.js +0 -149
  250. package/dist/src/funnel/messages.d.ts +0 -55
  251. package/dist/src/funnel/messages.js +0 -160
  252. package/dist/src/funnel/payout.d.ts +0 -40
  253. package/dist/src/funnel/payout.js +0 -60
  254. package/dist/src/funnel/power-saver-notifier.d.ts +0 -44
  255. package/dist/src/funnel/power-saver-notifier.js +0 -92
  256. package/dist/src/funnel/precedence.d.ts +0 -16
  257. package/dist/src/funnel/precedence.js +0 -85
  258. package/dist/src/funnel/promo.d.ts +0 -41
  259. package/dist/src/funnel/promo.js +0 -144
  260. package/dist/src/funnel/rate-limit-notifier.d.ts +0 -55
  261. package/dist/src/funnel/rate-limit-notifier.js +0 -102
  262. package/dist/src/funnel/rotation.d.ts +0 -19
  263. package/dist/src/funnel/rotation.js +0 -70
  264. package/dist/src/funnel/state.d.ts +0 -13
  265. package/dist/src/funnel/state.js +0 -52
  266. package/dist/src/funnel/toggle-cooldown.d.ts +0 -17
  267. package/dist/src/funnel/toggle-cooldown.js +0 -32
  268. package/dist/src/funnel/types.d.ts +0 -98
  269. package/dist/src/funnel/types.js +0 -26
  270. package/dist/src/index.d.ts +0 -81
  271. package/dist/src/index.js +0 -609
  272. package/dist/src/infrastructure/in-memory-repositories.d.ts +0 -68
  273. package/dist/src/infrastructure/in-memory-repositories.js +0 -264
  274. package/dist/src/init/claudemd-generator.d.ts +0 -16
  275. package/dist/src/init/claudemd-generator.js +0 -368
  276. package/dist/src/init/executor.d.ts +0 -41
  277. package/dist/src/init/executor.js +0 -2142
  278. package/dist/src/init/helper-refresh.d.ts +0 -79
  279. package/dist/src/init/helper-refresh.js +0 -347
  280. package/dist/src/init/helper-signing.d.ts +0 -37
  281. package/dist/src/init/helper-signing.js +0 -67
  282. package/dist/src/init/helpers-generator.d.ts +0 -87
  283. package/dist/src/init/helpers-generator.js +0 -1456
  284. package/dist/src/init/index.d.ts +0 -13
  285. package/dist/src/init/index.js +0 -15
  286. package/dist/src/init/mcp-generator.d.ts +0 -26
  287. package/dist/src/init/mcp-generator.js +0 -126
  288. package/dist/src/init/memory-package-resolver.d.ts +0 -53
  289. package/dist/src/init/memory-package-resolver.js +0 -118
  290. package/dist/src/init/settings-generator.d.ts +0 -14
  291. package/dist/src/init/settings-generator.js +0 -462
  292. package/dist/src/init/statusline-generator.d.ts +0 -28
  293. package/dist/src/init/statusline-generator.js +0 -177
  294. package/dist/src/init/types.d.ts +0 -331
  295. package/dist/src/init/types.js +0 -276
  296. package/dist/src/log-filters.d.ts +0 -46
  297. package/dist/src/log-filters.js +0 -107
  298. package/dist/src/mcp-client.d.ts +0 -92
  299. package/dist/src/mcp-client.js +0 -397
  300. package/dist/src/mcp-server.d.ts +0 -163
  301. package/dist/src/mcp-server.js +0 -751
  302. package/dist/src/mcp-tools/agent-execute-core.d.ts +0 -115
  303. package/dist/src/mcp-tools/agent-execute-core.js +0 -587
  304. package/dist/src/mcp-tools/agent-tools.d.ts +0 -9
  305. package/dist/src/mcp-tools/agent-tools.js +0 -837
  306. package/dist/src/mcp-tools/agentbbs-tools.d.ts +0 -28
  307. package/dist/src/mcp-tools/agentbbs-tools.js +0 -394
  308. package/dist/src/mcp-tools/agentdb-tools.d.ts +0 -35
  309. package/dist/src/mcp-tools/agentdb-tools.js +0 -1473
  310. package/dist/src/mcp-tools/agenticow-loader.d.ts +0 -59
  311. package/dist/src/mcp-tools/agenticow-loader.js +0 -105
  312. package/dist/src/mcp-tools/agenticow-speculate-tools.d.ts +0 -24
  313. package/dist/src/mcp-tools/agenticow-speculate-tools.js +0 -209
  314. package/dist/src/mcp-tools/agenticow-tools.d.ts +0 -36
  315. package/dist/src/mcp-tools/agenticow-tools.js +0 -360
  316. package/dist/src/mcp-tools/analyze-tools.d.ts +0 -38
  317. package/dist/src/mcp-tools/analyze-tools.js +0 -346
  318. package/dist/src/mcp-tools/auto-install.d.ts +0 -83
  319. package/dist/src/mcp-tools/auto-install.js +0 -131
  320. package/dist/src/mcp-tools/autopilot-tools.d.ts +0 -12
  321. package/dist/src/mcp-tools/autopilot-tools.js +0 -231
  322. package/dist/src/mcp-tools/browser-intent-tools.d.ts +0 -162
  323. package/dist/src/mcp-tools/browser-intent-tools.js +0 -548
  324. package/dist/src/mcp-tools/browser-session-tools.d.ts +0 -27
  325. package/dist/src/mcp-tools/browser-session-tools.js +0 -398
  326. package/dist/src/mcp-tools/browser-tools.d.ts +0 -21
  327. package/dist/src/mcp-tools/browser-tools.js +0 -760
  328. package/dist/src/mcp-tools/business-pod-tools.d.ts +0 -20
  329. package/dist/src/mcp-tools/business-pod-tools.js +0 -169
  330. package/dist/src/mcp-tools/claims-tools.d.ts +0 -12
  331. package/dist/src/mcp-tools/claims-tools.js +0 -863
  332. package/dist/src/mcp-tools/config-tools.d.ts +0 -8
  333. package/dist/src/mcp-tools/config-tools.js +0 -411
  334. package/dist/src/mcp-tools/coordination-tools.d.ts +0 -13
  335. package/dist/src/mcp-tools/coordination-tools.js +0 -729
  336. package/dist/src/mcp-tools/daa-tools.d.ts +0 -13
  337. package/dist/src/mcp-tools/daa-tools.js +0 -534
  338. package/dist/src/mcp-tools/embeddings-tools.d.ts +0 -9
  339. package/dist/src/mcp-tools/embeddings-tools.js +0 -904
  340. package/dist/src/mcp-tools/github-tools.d.ts +0 -9
  341. package/dist/src/mcp-tools/github-tools.js +0 -659
  342. package/dist/src/mcp-tools/guidance-tools.d.ts +0 -15
  343. package/dist/src/mcp-tools/guidance-tools.js +0 -639
  344. package/dist/src/mcp-tools/hive-mind-tools.d.ts +0 -8
  345. package/dist/src/mcp-tools/hive-mind-tools.js +0 -953
  346. package/dist/src/mcp-tools/hooks-tools.d.ts +0 -65
  347. package/dist/src/mcp-tools/hooks-tools.js +0 -4836
  348. package/dist/src/mcp-tools/http-fetch-tools.d.ts +0 -55
  349. package/dist/src/mcp-tools/http-fetch-tools.js +0 -329
  350. package/dist/src/mcp-tools/index.d.ts +0 -34
  351. package/dist/src/mcp-tools/index.js +0 -40
  352. package/dist/src/mcp-tools/managed-agent-tools.d.ts +0 -22
  353. package/dist/src/mcp-tools/managed-agent-tools.js +0 -357
  354. package/dist/src/mcp-tools/memory-tools.d.ts +0 -14
  355. package/dist/src/mcp-tools/memory-tools.js +0 -1330
  356. package/dist/src/mcp-tools/metaharness-tools.d.ts +0 -51
  357. package/dist/src/mcp-tools/metaharness-tools.js +0 -684
  358. package/dist/src/mcp-tools/neural-tools.d.ts +0 -54
  359. package/dist/src/mcp-tools/neural-tools.js +0 -1168
  360. package/dist/src/mcp-tools/performance-tools.d.ts +0 -16
  361. package/dist/src/mcp-tools/performance-tools.js +0 -675
  362. package/dist/src/mcp-tools/progress-tools.d.ts +0 -14
  363. package/dist/src/mcp-tools/progress-tools.js +0 -348
  364. package/dist/src/mcp-tools/request-tracker.d.ts +0 -17
  365. package/dist/src/mcp-tools/request-tracker.js +0 -27
  366. package/dist/src/mcp-tools/ruvllm-tools.d.ts +0 -9
  367. package/dist/src/mcp-tools/ruvllm-tools.js +0 -355
  368. package/dist/src/mcp-tools/security-tools.d.ts +0 -18
  369. package/dist/src/mcp-tools/security-tools.js +0 -556
  370. package/dist/src/mcp-tools/session-tools.d.ts +0 -8
  371. package/dist/src/mcp-tools/session-tools.js +0 -517
  372. package/dist/src/mcp-tools/swarm-tools.d.ts +0 -37
  373. package/dist/src/mcp-tools/swarm-tools.js +0 -390
  374. package/dist/src/mcp-tools/system-tools.d.ts +0 -13
  375. package/dist/src/mcp-tools/system-tools.js +0 -688
  376. package/dist/src/mcp-tools/task-tools.d.ts +0 -8
  377. package/dist/src/mcp-tools/task-tools.js +0 -487
  378. package/dist/src/mcp-tools/terminal-tools.d.ts +0 -8
  379. package/dist/src/mcp-tools/terminal-tools.js +0 -306
  380. package/dist/src/mcp-tools/testgen-tools.d.ts +0 -26
  381. package/dist/src/mcp-tools/testgen-tools.js +0 -168
  382. package/dist/src/mcp-tools/tool-loop-guardrail.d.ts +0 -31
  383. package/dist/src/mcp-tools/tool-loop-guardrail.js +0 -71
  384. package/dist/src/mcp-tools/transfer-tools.d.ts +0 -14
  385. package/dist/src/mcp-tools/transfer-tools.js +0 -447
  386. package/dist/src/mcp-tools/types.d.ts +0 -8
  387. package/dist/src/mcp-tools/types.js +0 -8
  388. package/dist/src/mcp-tools/validate-input.d.ts +0 -9
  389. package/dist/src/mcp-tools/validate-input.js +0 -9
  390. package/dist/src/mcp-tools/wasm-agent-tools.d.ts +0 -13
  391. package/dist/src/mcp-tools/wasm-agent-tools.js +0 -840
  392. package/dist/src/mcp-tools/workflow-tools.d.ts +0 -8
  393. package/dist/src/mcp-tools/workflow-tools.js +0 -884
  394. package/dist/src/memory/bge-embedder.d.ts +0 -25
  395. package/dist/src/memory/bge-embedder.js +0 -121
  396. package/dist/src/memory/cross-encoder-rerank.d.ts +0 -33
  397. package/dist/src/memory/cross-encoder-rerank.js +0 -123
  398. package/dist/src/memory/embedding-policy.d.ts +0 -21
  399. package/dist/src/memory/embedding-policy.js +0 -30
  400. package/dist/src/memory/embedding-quantization.d.ts +0 -62
  401. package/dist/src/memory/embedding-quantization.js +0 -156
  402. package/dist/src/memory/ewc-consolidation.d.ts +0 -305
  403. package/dist/src/memory/ewc-consolidation.js +0 -611
  404. package/dist/src/memory/graph-edge-writer.d.ts +0 -95
  405. package/dist/src/memory/graph-edge-writer.js +0 -217
  406. package/dist/src/memory/hybrid-retrieval.d.ts +0 -77
  407. package/dist/src/memory/hybrid-retrieval.js +0 -192
  408. package/dist/src/memory/intelligence.d.ts +0 -405
  409. package/dist/src/memory/intelligence.js +0 -1316
  410. package/dist/src/memory/lucene-bm25.d.ts +0 -19
  411. package/dist/src/memory/lucene-bm25.js +0 -308
  412. package/dist/src/memory/memory-bridge.d.ts +0 -537
  413. package/dist/src/memory/memory-bridge.js +0 -2460
  414. package/dist/src/memory/memory-initializer.d.ts +0 -556
  415. package/dist/src/memory/memory-initializer.js +0 -3021
  416. package/dist/src/memory/neural-package-bridge.d.ts +0 -48
  417. package/dist/src/memory/neural-package-bridge.js +0 -87
  418. package/dist/src/memory/rabitq-index.d.ts +0 -60
  419. package/dist/src/memory/rabitq-index.js +0 -242
  420. package/dist/src/memory/sona-optimizer.d.ts +0 -267
  421. package/dist/src/memory/sona-optimizer.js +0 -779
  422. package/dist/src/memory/structured-distill.d.ts +0 -48
  423. package/dist/src/memory/structured-distill.js +0 -125
  424. package/dist/src/output.d.ts +0 -9
  425. package/dist/src/output.js +0 -9
  426. package/dist/src/parser.d.ts +0 -89
  427. package/dist/src/parser.js +0 -516
  428. package/dist/src/plugins/manager.d.ts +0 -133
  429. package/dist/src/plugins/manager.js +0 -415
  430. package/dist/src/plugins/store/discovery.d.ts +0 -99
  431. package/dist/src/plugins/store/discovery.js +0 -1224
  432. package/dist/src/plugins/store/index.d.ts +0 -76
  433. package/dist/src/plugins/store/index.js +0 -141
  434. package/dist/src/plugins/store/search.d.ts +0 -46
  435. package/dist/src/plugins/store/search.js +0 -230
  436. package/dist/src/plugins/store/types.d.ts +0 -279
  437. package/dist/src/plugins/store/types.js +0 -7
  438. package/dist/src/plugins/tests/demo-plugin-store.d.ts +0 -7
  439. package/dist/src/plugins/tests/demo-plugin-store.js +0 -126
  440. package/dist/src/plugins/tests/standalone-test.d.ts +0 -12
  441. package/dist/src/plugins/tests/standalone-test.js +0 -188
  442. package/dist/src/plugins/tests/test-plugin-store.d.ts +0 -7
  443. package/dist/src/plugins/tests/test-plugin-store.js +0 -206
  444. package/dist/src/production/circuit-breaker.d.ts +0 -101
  445. package/dist/src/production/circuit-breaker.js +0 -241
  446. package/dist/src/production/error-handler.d.ts +0 -92
  447. package/dist/src/production/error-handler.js +0 -299
  448. package/dist/src/production/index.d.ts +0 -23
  449. package/dist/src/production/index.js +0 -18
  450. package/dist/src/production/monitoring.d.ts +0 -161
  451. package/dist/src/production/monitoring.js +0 -356
  452. package/dist/src/production/rate-limiter.d.ts +0 -80
  453. package/dist/src/production/rate-limiter.js +0 -201
  454. package/dist/src/production/retry.d.ts +0 -48
  455. package/dist/src/production/retry.js +0 -179
  456. package/dist/src/prompt.d.ts +0 -44
  457. package/dist/src/prompt.js +0 -501
  458. package/dist/src/runtime/headless.d.ts +0 -60
  459. package/dist/src/runtime/headless.js +0 -284
  460. package/dist/src/runtime/parent-death-watchdog.d.ts +0 -42
  461. package/dist/src/runtime/parent-death-watchdog.js +0 -70
  462. package/dist/src/ruvector/agent-wasm.d.ts +0 -228
  463. package/dist/src/ruvector/agent-wasm.js +0 -463
  464. package/dist/src/ruvector/ast-analyzer.d.ts +0 -67
  465. package/dist/src/ruvector/ast-analyzer.js +0 -277
  466. package/dist/src/ruvector/codemods/engine.d.ts +0 -45
  467. package/dist/src/ruvector/codemods/engine.js +0 -291
  468. package/dist/src/ruvector/codemods/scope-analysis.d.ts +0 -29
  469. package/dist/src/ruvector/codemods/scope-analysis.js +0 -162
  470. package/dist/src/ruvector/coverage-router.d.ts +0 -160
  471. package/dist/src/ruvector/coverage-router.js +0 -531
  472. package/dist/src/ruvector/coverage-tools.d.ts +0 -33
  473. package/dist/src/ruvector/coverage-tools.js +0 -157
  474. package/dist/src/ruvector/diff-classifier.d.ts +0 -175
  475. package/dist/src/ruvector/diff-classifier.js +0 -699
  476. package/dist/src/ruvector/diskann-backend.d.ts +0 -78
  477. package/dist/src/ruvector/diskann-backend.js +0 -310
  478. package/dist/src/ruvector/enhanced-model-router.d.ts +0 -172
  479. package/dist/src/ruvector/enhanced-model-router.js +0 -577
  480. package/dist/src/ruvector/graph-analyzer.d.ts +0 -187
  481. package/dist/src/ruvector/graph-analyzer.js +0 -929
  482. package/dist/src/ruvector/graph-backend.d.ts +0 -79
  483. package/dist/src/ruvector/graph-backend.js +0 -220
  484. package/dist/src/ruvector/index.d.ts +0 -38
  485. package/dist/src/ruvector/index.js +0 -86
  486. package/dist/src/ruvector/lora-adapter.d.ts +0 -292
  487. package/dist/src/ruvector/lora-adapter.js +0 -710
  488. package/dist/src/ruvector/model-prices.d.ts +0 -50
  489. package/dist/src/ruvector/model-prices.js +0 -72
  490. package/dist/src/ruvector/model-router.d.ts +0 -408
  491. package/dist/src/ruvector/model-router.js +0 -1162
  492. package/dist/src/ruvector/neural-router.d.ts +0 -182
  493. package/dist/src/ruvector/neural-router.js +0 -825
  494. package/dist/src/ruvector/output-verifier.d.ts +0 -83
  495. package/dist/src/ruvector/output-verifier.js +0 -277
  496. package/dist/src/ruvector/q-learning-router.d.ts +0 -227
  497. package/dist/src/ruvector/q-learning-router.js +0 -721
  498. package/dist/src/ruvector/router-calibrator.d.ts +0 -65
  499. package/dist/src/ruvector/router-calibrator.js +0 -120
  500. package/dist/src/ruvector/router-parallel-recorder.d.ts +0 -127
  501. package/dist/src/ruvector/router-parallel-recorder.js +0 -183
  502. package/dist/src/ruvector/router-trajectory.d.ts +0 -194
  503. package/dist/src/ruvector/router-trajectory.js +0 -281
  504. package/dist/src/ruvector/run-transcript-recorder.d.ts +0 -154
  505. package/dist/src/ruvector/run-transcript-recorder.js +0 -209
  506. package/dist/src/ruvector/ruvllm-wasm.d.ts +0 -179
  507. package/dist/src/ruvector/ruvllm-wasm.js +0 -379
  508. package/dist/src/ruvector/semantic-router.d.ts +0 -77
  509. package/dist/src/ruvector/semantic-router.js +0 -178
  510. package/dist/src/ruvector/task-embedder.d.ts +0 -56
  511. package/dist/src/ruvector/task-embedder.js +0 -237
  512. package/dist/src/ruvector/trajectory-tree.d.ts +0 -113
  513. package/dist/src/ruvector/trajectory-tree.js +0 -237
  514. package/dist/src/ruvector/vector-db.d.ts +0 -73
  515. package/dist/src/ruvector/vector-db.js +0 -301
  516. package/dist/src/ruvector/wasm-embedder.d.ts +0 -13
  517. package/dist/src/ruvector/wasm-embedder.js +0 -143
  518. package/dist/src/security/builtin-aidefence.d.ts +0 -34
  519. package/dist/src/security/builtin-aidefence.js +0 -86
  520. package/dist/src/services/agentic-flow-bridge.d.ts +0 -50
  521. package/dist/src/services/agentic-flow-bridge.js +0 -95
  522. package/dist/src/services/ai-job-dedup.d.ts +0 -61
  523. package/dist/src/services/ai-job-dedup.js +0 -136
  524. package/dist/src/services/checkpoint-gate.d.ts +0 -140
  525. package/dist/src/services/checkpoint-gate.js +0 -223
  526. package/dist/src/services/claim-service.d.ts +0 -204
  527. package/dist/src/services/claim-service.js +0 -818
  528. package/dist/src/services/config-file-manager.d.ts +0 -37
  529. package/dist/src/services/config-file-manager.js +0 -224
  530. package/dist/src/services/container-worker-pool.d.ts +0 -204
  531. package/dist/src/services/container-worker-pool.js +0 -589
  532. package/dist/src/services/daemon-autostart.d.ts +0 -17
  533. package/dist/src/services/daemon-autostart.js +0 -102
  534. package/dist/src/services/distill-oracle.d.ts +0 -190
  535. package/dist/src/services/distill-oracle.js +0 -349
  536. package/dist/src/services/distill-tuning.d.ts +0 -111
  537. package/dist/src/services/distill-tuning.js +0 -510
  538. package/dist/src/services/evolve-proof.d.ts +0 -253
  539. package/dist/src/services/evolve-proof.js +0 -343
  540. package/dist/src/services/fable-harness.d.ts +0 -208
  541. package/dist/src/services/fable-harness.js +0 -388
  542. package/dist/src/services/git-workspace-identity.d.ts +0 -42
  543. package/dist/src/services/git-workspace-identity.js +0 -99
  544. package/dist/src/services/global-ai-budget.d.ts +0 -135
  545. package/dist/src/services/global-ai-budget.js +0 -415
  546. package/dist/src/services/harness-benchmark.d.ts +0 -68
  547. package/dist/src/services/harness-benchmark.js +0 -94
  548. package/dist/src/services/harness-canary.d.ts +0 -60
  549. package/dist/src/services/harness-canary.js +0 -69
  550. package/dist/src/services/harness-corpus-harvester.d.ts +0 -51
  551. package/dist/src/services/harness-corpus-harvester.js +0 -74
  552. package/dist/src/services/harness-flywheel-generations.d.ts +0 -115
  553. package/dist/src/services/harness-flywheel-generations.js +0 -360
  554. package/dist/src/services/harness-flywheel-runtime.d.ts +0 -25
  555. package/dist/src/services/harness-flywheel-runtime.js +0 -92
  556. package/dist/src/services/harness-flywheel.d.ts +0 -48
  557. package/dist/src/services/harness-flywheel.js +0 -207
  558. package/dist/src/services/harness-frozen-eval.d.ts +0 -22
  559. package/dist/src/services/harness-frozen-eval.js +0 -66
  560. package/dist/src/services/harness-hosts.d.ts +0 -40
  561. package/dist/src/services/harness-hosts.js +0 -88
  562. package/dist/src/services/harness-improvement-ledger.d.ts +0 -63
  563. package/dist/src/services/harness-improvement-ledger.js +0 -101
  564. package/dist/src/services/harness-loop.d.ts +0 -53
  565. package/dist/src/services/harness-loop.js +0 -85
  566. package/dist/src/services/harness-qualification.d.ts +0 -66
  567. package/dist/src/services/harness-qualification.js +0 -143
  568. package/dist/src/services/harness-replay.d.ts +0 -37
  569. package/dist/src/services/harness-replay.js +0 -92
  570. package/dist/src/services/harness-verify.d.ts +0 -33
  571. package/dist/src/services/harness-verify.js +0 -26
  572. package/dist/src/services/harness-worker.d.ts +0 -23
  573. package/dist/src/services/harness-worker.js +0 -66
  574. package/dist/src/services/headless-worker-executor.d.ts +0 -358
  575. package/dist/src/services/headless-worker-executor.js +0 -1269
  576. package/dist/src/services/index.d.ts +0 -13
  577. package/dist/src/services/index.js +0 -11
  578. package/dist/src/services/memory-backup.d.ts +0 -53
  579. package/dist/src/services/memory-backup.js +0 -198
  580. package/dist/src/services/memory-distillation.d.ts +0 -41
  581. package/dist/src/services/memory-distillation.js +0 -277
  582. package/dist/src/services/native-training.d.ts +0 -68
  583. package/dist/src/services/native-training.js +0 -141
  584. package/dist/src/services/registry-api.d.ts +0 -58
  585. package/dist/src/services/registry-api.js +0 -146
  586. package/dist/src/services/repo-supervisor.d.ts +0 -70
  587. package/dist/src/services/repo-supervisor.js +0 -228
  588. package/dist/src/services/ruvector-training.d.ts +0 -222
  589. package/dist/src/services/ruvector-training.js +0 -693
  590. package/dist/src/services/swarm-memory-branches.d.ts +0 -135
  591. package/dist/src/services/swarm-memory-branches.js +0 -213
  592. package/dist/src/services/weight-eft.d.ts +0 -305
  593. package/dist/src/services/weight-eft.js +0 -296
  594. package/dist/src/services/worker-daemon.d.ts +0 -439
  595. package/dist/src/services/worker-daemon.js +0 -1865
  596. package/dist/src/services/worker-queue.d.ts +0 -194
  597. package/dist/src/services/worker-queue.js +0 -513
  598. package/dist/src/services/workspace-lease.d.ts +0 -55
  599. package/dist/src/services/workspace-lease.js +0 -191
  600. package/dist/src/suggest.d.ts +0 -53
  601. package/dist/src/suggest.js +0 -200
  602. package/dist/src/transfer/anonymization/index.d.ts +0 -25
  603. package/dist/src/transfer/anonymization/index.js +0 -175
  604. package/dist/src/transfer/deploy-seraphine.d.ts +0 -13
  605. package/dist/src/transfer/deploy-seraphine.js +0 -205
  606. package/dist/src/transfer/export.d.ts +0 -25
  607. package/dist/src/transfer/export.js +0 -113
  608. package/dist/src/transfer/index.d.ts +0 -12
  609. package/dist/src/transfer/index.js +0 -31
  610. package/dist/src/transfer/ipfs/client.d.ts +0 -109
  611. package/dist/src/transfer/ipfs/client.js +0 -307
  612. package/dist/src/transfer/ipfs/upload.d.ts +0 -95
  613. package/dist/src/transfer/ipfs/upload.js +0 -413
  614. package/dist/src/transfer/models/seraphine.d.ts +0 -72
  615. package/dist/src/transfer/models/seraphine.js +0 -373
  616. package/dist/src/transfer/serialization/cfp.d.ts +0 -49
  617. package/dist/src/transfer/serialization/cfp.js +0 -183
  618. package/dist/src/transfer/storage/gcs.d.ts +0 -82
  619. package/dist/src/transfer/storage/gcs.js +0 -272
  620. package/dist/src/transfer/storage/index.d.ts +0 -6
  621. package/dist/src/transfer/storage/index.js +0 -6
  622. package/dist/src/transfer/store/discovery.d.ts +0 -84
  623. package/dist/src/transfer/store/discovery.js +0 -382
  624. package/dist/src/transfer/store/download.d.ts +0 -70
  625. package/dist/src/transfer/store/download.js +0 -334
  626. package/dist/src/transfer/store/index.d.ts +0 -84
  627. package/dist/src/transfer/store/index.js +0 -153
  628. package/dist/src/transfer/store/publish.d.ts +0 -76
  629. package/dist/src/transfer/store/publish.js +0 -294
  630. package/dist/src/transfer/store/registry.d.ts +0 -58
  631. package/dist/src/transfer/store/registry.js +0 -285
  632. package/dist/src/transfer/store/search.d.ts +0 -54
  633. package/dist/src/transfer/store/search.js +0 -232
  634. package/dist/src/transfer/store/tests/standalone-test.d.ts +0 -12
  635. package/dist/src/transfer/store/tests/standalone-test.js +0 -190
  636. package/dist/src/transfer/store/types.d.ts +0 -193
  637. package/dist/src/transfer/store/types.js +0 -6
  638. package/dist/src/transfer/test-seraphine.d.ts +0 -6
  639. package/dist/src/transfer/test-seraphine.js +0 -105
  640. package/dist/src/transfer/tests/test-store.d.ts +0 -7
  641. package/dist/src/transfer/tests/test-store.js +0 -214
  642. package/dist/src/transfer/types.d.ts +0 -245
  643. package/dist/src/transfer/types.js +0 -6
  644. package/dist/src/types.d.ts +0 -13
  645. package/dist/src/types.js +0 -13
  646. package/dist/src/update/checker.d.ts +0 -34
  647. package/dist/src/update/checker.js +0 -191
  648. package/dist/src/update/executor.d.ts +0 -33
  649. package/dist/src/update/executor.js +0 -217
  650. package/dist/src/update/index.d.ts +0 -33
  651. package/dist/src/update/index.js +0 -64
  652. package/dist/src/update/rate-limiter.d.ts +0 -20
  653. package/dist/src/update/rate-limiter.js +0 -96
  654. package/dist/src/update/validator.d.ts +0 -17
  655. package/dist/src/update/validator.js +0 -123
@@ -1,208 +0,0 @@
1
- /**
2
- * fable-harness.ts — Cost-disciplined headless Fable LLM-as-judge harness.
3
- *
4
- * This is TIER 2 of the tiered `resolved` oracle (see distill-oracle.ts). When
5
- * a trajectory has NO mechanical test spec to execute, we judge whether its
6
- * completion actually resolved the task with a headless Fable model — a smarter
7
- * proxy than the structural verifier, but still a proxy (provenance tag
8
- * `judge:fable`, never presented as ground truth per ADR-169).
9
- *
10
- * ── MEASURED COST DATA (load-bearing — this file is built around it) ────────
11
- * `claude -p --model claude-fable-5 --output-format json` costs, per call:
12
- * • ~$1.56 when launched FROM THE PROJECT DIR — it auto-loads CLAUDE.md and
13
- * ~56k cache tokens of project context we do NOT want for judging.
14
- * • ~$0.34 from a CLEAN empty cwd with `--append-system-prompt` for the role.
15
- * • ~$0.02/item when we BATCH ~20 items into a single call (context amortizes
16
- * ~free across the batch).
17
- *
18
- * Therefore this harness MUST, and does:
19
- * 1. run `claude -p` from a FRESH EMPTY TEMP cwd — never the project dir, so
20
- * no CLAUDE.md / project context is loaded (the 5x cost driver);
21
- * 2. carry the judge/reflect role via `--append-system-prompt`, not a project
22
- * system prompt;
23
- * 3. BATCH N items per call (default 20) so per-item cost collapses to ~$0.02;
24
- * 4. pass `--max-budget-usd` as a hard per-call cap and stop launching batches
25
- * once the cumulative measured spend reaches the caller's budget;
26
- * 5. be OPT-IN and OFF BY DEFAULT — nothing here runs unless a caller
27
- * explicitly constructs the harness AND provides a budget cap.
28
- *
29
- * SAFETY: constructing this class spends nothing. Only `judgeBatch` /
30
- * `reflectFailures` spawn `claude`, and only when `maxBudgetUsd > 0`. The
31
- * `spawnClaude` implementation is injectable so tests never touch the real CLI.
32
- *
33
- * @module services/fable-harness
34
- */
35
- export declare const FABLE_COST_MODEL: {
36
- /** Measured $/call when launched from the project dir (loads CLAUDE.md). Anti-pattern. */
37
- readonly perCallProjectCwdUsd: 1.56;
38
- /** Measured $/call from a clean cwd with --append-system-prompt. */
39
- readonly perCallCleanCwdUsd: 0.34;
40
- /** Measured amortized $/item when batching ~20 items per call. */
41
- readonly perItemBatchedUsd: 0.02;
42
- /** Default items per `claude -p` call. */
43
- readonly defaultBatchSize: 20;
44
- /** The judge model. */
45
- readonly model: "claude-fable-5";
46
- };
47
- /**
48
- * Estimate the USD cost of judging `itemCount` items in batches of `batchSize`.
49
- * Uses the measured amortized per-item figure; callers use this to size a
50
- * budget cap before opting in.
51
- */
52
- export declare function estimateFableCostUsd(itemCount: number, batchSize?: number): number;
53
- /** One item to judge: did `output` actually resolve `task`? */
54
- export interface JudgeItem {
55
- id: string;
56
- task: string;
57
- output: string;
58
- }
59
- /** Verdict for a single judged item. */
60
- export interface JudgeResult {
61
- id: string;
62
- resolved: boolean;
63
- /** 0..1 self-reported judge confidence. */
64
- confidence: number;
65
- reason: string;
66
- }
67
- /** One item for reflective failure analysis (GEPA/evolve mutation input). */
68
- export interface ReflectItem {
69
- id: string;
70
- task: string;
71
- output: string;
72
- /** Optional signal that this trajectory is believed to have failed. */
73
- failureHint?: string;
74
- }
75
- /** Reflective diagnosis for a single item (the reflective-mutation SOTA trick). */
76
- export interface ReflectResult {
77
- id: string;
78
- failureClass: string;
79
- diagnosis: string;
80
- mutationHint: string;
81
- }
82
- /**
83
- * ADR-316 — a compact, STRUCTURAL-ONLY snapshot of the current coding
84
- * session for the statusline's co-pilot advisor tip. Every field here
85
- * mirrors funnel/insights.ts's LocalInsightContext — no raw prompt/command/
86
- * file content, ever (same bar as ADR-309, applied to a different, opt-in
87
- * data flow). The model sees only what's already surfaced structurally
88
- * elsewhere in the statusline.
89
- */
90
- export interface CoPilotSnapshot {
91
- security?: {
92
- status: string;
93
- findings?: number;
94
- cvesFixed: number;
95
- totalCves: number;
96
- };
97
- swarm?: {
98
- activeAgents: number;
99
- maxAgents: number;
100
- coordinationActive: boolean;
101
- };
102
- gitUncommittedCount?: number;
103
- contextPctUsed?: number;
104
- }
105
- /** A single proactive suggestion for the insight ticker. */
106
- export interface CoPilotTip {
107
- /** Short enough for a single statusline row (caller truncates further). */
108
- headline: string;
109
- /** One actionable sentence of extra detail. */
110
- detail: string;
111
- confidence: number;
112
- }
113
- /** Result of a raw claude spawn. */
114
- export interface ClaudeSpawnResult {
115
- stdout: string;
116
- stderr: string;
117
- code: number | null;
118
- /** Measured spend for this call, parsed from the JSON envelope when present. */
119
- costUsd?: number;
120
- }
121
- /**
122
- * Injectable spawner. Receives the argv (after `claude`), the prompt to pipe to
123
- * stdin, and the cwd (a fresh empty temp dir). Default implementation shells out
124
- * to the real `claude` CLI; tests inject a fake.
125
- */
126
- export type ClaudeSpawnFn = (argv: string[], stdinPrompt: string, cwd: string, opts: {
127
- timeoutMs: number;
128
- }) => Promise<ClaudeSpawnResult>;
129
- export interface FableHarnessOptions {
130
- /** Model id (default claude-fable-5). */
131
- model?: string;
132
- /** Items per `claude -p` call (default 20). */
133
- batchSize?: number;
134
- /**
135
- * Hard budget cap in USD across all calls this harness makes. REQUIRED to be
136
- * > 0 for any spend to happen — 0/undefined means the harness refuses to
137
- * spawn (safe default).
138
- */
139
- maxBudgetUsd?: number;
140
- /** Per-call timeout (default 5 min). */
141
- timeoutMs?: number;
142
- /** Injected spawner for tests; defaults to the real `claude` CLI. */
143
- spawnClaude?: ClaudeSpawnFn;
144
- }
145
- /**
146
- * Default `claude -p` spawner. Pipes the prompt via stdin (never as an argv
147
- * positional — mirrors the #1852 fix so shell metachars in prompts are never
148
- * re-tokenized), runs in the provided (temp) cwd, and returns stdout/stderr.
149
- * Parses `total_cost_usd` from the `--output-format json` envelope when present.
150
- */
151
- export declare const defaultSpawnClaude: ClaudeSpawnFn;
152
- /** Pull `total_cost_usd`/`cost_usd` out of a claude `--output-format json` envelope. */
153
- export declare function parseCostFromEnvelope(stdout: string): number | undefined;
154
- export declare class FableHarness {
155
- private readonly model;
156
- private readonly batchSize;
157
- private readonly maxBudgetUsd;
158
- private readonly timeoutMs;
159
- private readonly spawnClaude;
160
- private spentUsd;
161
- constructor(opts?: FableHarnessOptions);
162
- /** Cumulative measured spend across all calls this harness has made. */
163
- getSpentUsd(): number;
164
- /** True when a positive budget cap is configured (a precondition for any spend). */
165
- isEnabled(): boolean;
166
- /**
167
- * Judge a set of items in batches. Returns one JudgeResult per input id that
168
- * the model returned. Items that fall outside the budget, or that the model
169
- * omits, are simply absent from the result — the caller (distill-oracle) is
170
- * responsible for falling back to the structural proxy for those.
171
- *
172
- * Spends $0 and returns [] when no budget cap is configured.
173
- */
174
- judgeBatch(items: JudgeItem[]): Promise<JudgeResult[]>;
175
- /**
176
- * Reflective failure analysis over items — the second cost-disciplined entry
177
- * point, used by GEPA/evolve for mutation hints. Same batching + budget
178
- * discipline as judgeBatch. Returns [] when no budget cap is configured.
179
- */
180
- reflectFailures(items: ReflectItem[]): Promise<ReflectResult[]>;
181
- /**
182
- * ADR-316 — one proactive co-pilot tip from a structural session snapshot
183
- * (no raw prompt/command/file content). A single-item "batch" — same
184
- * budget/cwd/parsing discipline as judgeBatch/reflectFailures, just with
185
- * exactly one call instead of a loop. Returns null when disabled, over
186
- * budget, or the model found nothing worth surfacing (an empty verdict
187
- * array is a valid, non-error answer here, not a parse failure).
188
- */
189
- adviseCoPilotTip(snapshot: CoPilotSnapshot): Promise<CoPilotTip | null>;
190
- /** Build the argv for a `claude -p` call. Exposed shape for testability. */
191
- buildArgv(systemPrompt: string): string[];
192
- /**
193
- * Run one batch: create a FRESH EMPTY temp cwd (critical — no project
194
- * context), spawn `claude -p` there with the role via --append-system-prompt,
195
- * pipe the batch JSON to stdin, parse the verdict array out of the envelope,
196
- * and account the measured spend.
197
- */
198
- private runBatch;
199
- }
200
- /**
201
- * Extract the model's verdict array. `claude -p --output-format json` wraps the
202
- * assistant text in an envelope `{ result: "<text>", ... }`; the text is itself
203
- * the JSON array we asked for. Handle both the enveloped and bare forms, and
204
- * arrays fenced in ```json blocks.
205
- */
206
- export declare function extractVerdictArray(stdout: string): unknown[];
207
- export default FableHarness;
208
- //# sourceMappingURL=fable-harness.d.ts.map
@@ -1,388 +0,0 @@
1
- /**
2
- * fable-harness.ts — Cost-disciplined headless Fable LLM-as-judge harness.
3
- *
4
- * This is TIER 2 of the tiered `resolved` oracle (see distill-oracle.ts). When
5
- * a trajectory has NO mechanical test spec to execute, we judge whether its
6
- * completion actually resolved the task with a headless Fable model — a smarter
7
- * proxy than the structural verifier, but still a proxy (provenance tag
8
- * `judge:fable`, never presented as ground truth per ADR-169).
9
- *
10
- * ── MEASURED COST DATA (load-bearing — this file is built around it) ────────
11
- * `claude -p --model claude-fable-5 --output-format json` costs, per call:
12
- * • ~$1.56 when launched FROM THE PROJECT DIR — it auto-loads CLAUDE.md and
13
- * ~56k cache tokens of project context we do NOT want for judging.
14
- * • ~$0.34 from a CLEAN empty cwd with `--append-system-prompt` for the role.
15
- * • ~$0.02/item when we BATCH ~20 items into a single call (context amortizes
16
- * ~free across the batch).
17
- *
18
- * Therefore this harness MUST, and does:
19
- * 1. run `claude -p` from a FRESH EMPTY TEMP cwd — never the project dir, so
20
- * no CLAUDE.md / project context is loaded (the 5x cost driver);
21
- * 2. carry the judge/reflect role via `--append-system-prompt`, not a project
22
- * system prompt;
23
- * 3. BATCH N items per call (default 20) so per-item cost collapses to ~$0.02;
24
- * 4. pass `--max-budget-usd` as a hard per-call cap and stop launching batches
25
- * once the cumulative measured spend reaches the caller's budget;
26
- * 5. be OPT-IN and OFF BY DEFAULT — nothing here runs unless a caller
27
- * explicitly constructs the harness AND provides a budget cap.
28
- *
29
- * SAFETY: constructing this class spends nothing. Only `judgeBatch` /
30
- * `reflectFailures` spawn `claude`, and only when `maxBudgetUsd > 0`. The
31
- * `spawnClaude` implementation is injectable so tests never touch the real CLI.
32
- *
33
- * @module services/fable-harness
34
- */
35
- import { spawn } from 'child_process';
36
- import { mkdtemp, rm } from 'fs/promises';
37
- import { tmpdir } from 'os';
38
- import { join } from 'path';
39
- // ── Cost model (measured — exported so callers/docs share one source) ────────
40
- export const FABLE_COST_MODEL = {
41
- /** Measured $/call when launched from the project dir (loads CLAUDE.md). Anti-pattern. */
42
- perCallProjectCwdUsd: 1.56,
43
- /** Measured $/call from a clean cwd with --append-system-prompt. */
44
- perCallCleanCwdUsd: 0.34,
45
- /** Measured amortized $/item when batching ~20 items per call. */
46
- perItemBatchedUsd: 0.02,
47
- /** Default items per `claude -p` call. */
48
- defaultBatchSize: 20,
49
- /** The judge model. */
50
- model: 'claude-fable-5',
51
- };
52
- /**
53
- * Estimate the USD cost of judging `itemCount` items in batches of `batchSize`.
54
- * Uses the measured amortized per-item figure; callers use this to size a
55
- * budget cap before opting in.
56
- */
57
- export function estimateFableCostUsd(itemCount, batchSize = FABLE_COST_MODEL.defaultBatchSize) {
58
- if (itemCount <= 0)
59
- return 0;
60
- const batches = Math.ceil(itemCount / Math.max(1, batchSize));
61
- // Amortized per-item dominates; add a tiny floor per batch for the base call.
62
- const perItem = itemCount * FABLE_COST_MODEL.perItemBatchedUsd;
63
- const perBatchFloor = batches * 0.0; // per-item figure already includes base amortization
64
- return Number((perItem + perBatchFloor).toFixed(4));
65
- }
66
- // ── Prompt templates (carried via --append-system-prompt) ────────────────────
67
- const JUDGE_SYSTEM_PROMPT = [
68
- 'You are a strict evaluator judging whether an agent trajectory RESOLVED its task.',
69
- 'You receive a JSON array of items: [{id, task, output}].',
70
- 'For each item decide if `output` genuinely and correctly resolves `task`.',
71
- 'Be conservative: plausible-but-unverified or partial completions are NOT resolved.',
72
- 'Reply with ONLY a JSON array, one object per input id, no prose:',
73
- '[{"id": "...", "resolved": true|false, "confidence": 0.0-1.0, "reason": "<one sentence>"}]',
74
- ].join('\n');
75
- const REFLECT_SYSTEM_PROMPT = [
76
- 'You are a failure-analysis expert supporting reflective mutation (GEPA/evolve).',
77
- 'You receive a JSON array of items: [{id, task, output, failureHint?}].',
78
- 'For each item, classify the failure and propose a concrete mutation hint.',
79
- 'Reply with ONLY a JSON array, one object per input id, no prose:',
80
- '[{"id":"...","failureClass":"<short label>","diagnosis":"<one sentence>","mutationHint":"<actionable>"}]',
81
- ].join('\n');
82
- const ADVISOR_SYSTEM_PROMPT = [
83
- "You are RuFlo's co-pilot advisor: ONE short, proactive, actionable tip for",
84
- 'a developer, based on a single JSON object describing STRUCTURAL signals',
85
- 'from their current coding session (security scan status, swarm/agent',
86
- 'state, count of uncommitted files, context-window usage). There is no',
87
- 'prompt, command, or file content in the input — never assume or invent any.',
88
- 'If nothing in the snapshot genuinely warrants a tip, say so by returning',
89
- 'an empty array. Never pad with generic advice not grounded in the snapshot.',
90
- 'Reply with ONLY a JSON array containing zero or one object, no prose:',
91
- '[] or [{"headline":"<=60 chars","detail":"<one actionable sentence>","confidence":0.0-1.0}]',
92
- ].join('\n');
93
- // ── Default spawner (real CLI) ───────────────────────────────────────────────
94
- /**
95
- * Default `claude -p` spawner. Pipes the prompt via stdin (never as an argv
96
- * positional — mirrors the #1852 fix so shell metachars in prompts are never
97
- * re-tokenized), runs in the provided (temp) cwd, and returns stdout/stderr.
98
- * Parses `total_cost_usd` from the `--output-format json` envelope when present.
99
- */
100
- export const defaultSpawnClaude = (argv, stdinPrompt, cwd, opts) => new Promise((resolve) => {
101
- let child;
102
- try {
103
- child = spawn('claude', argv, {
104
- cwd,
105
- env: { ...process.env, CLAUDE_ENTRYPOINT: 'fable-judge' },
106
- stdio: ['pipe', 'pipe', 'pipe'],
107
- windowsHide: true,
108
- });
109
- }
110
- catch (err) {
111
- resolve({ stdout: '', stderr: err instanceof Error ? err.message : String(err), code: null });
112
- return;
113
- }
114
- let stdout = '';
115
- let stderr = '';
116
- let done = false;
117
- const finish = (r) => {
118
- if (done)
119
- return;
120
- done = true;
121
- clearTimeout(timer);
122
- resolve(r);
123
- };
124
- const timer = setTimeout(() => {
125
- try {
126
- child.kill('SIGTERM');
127
- }
128
- catch { /* already dead */ }
129
- finish({ stdout, stderr: stderr || `timed out after ${opts.timeoutMs}ms`, code: null });
130
- }, opts.timeoutMs);
131
- timer.unref?.();
132
- try {
133
- child.stdin?.end(stdinPrompt);
134
- }
135
- catch { /* surfaced via error */ }
136
- child.stdout?.on('data', (d) => { stdout += d.toString(); });
137
- child.stderr?.on('data', (d) => { stderr += d.toString(); });
138
- child.on('error', (e) => finish({ stdout, stderr: e.message, code: null }));
139
- child.on('close', (code) => {
140
- finish({ stdout, stderr, code, costUsd: parseCostFromEnvelope(stdout) });
141
- });
142
- });
143
- /** Pull `total_cost_usd`/`cost_usd` out of a claude `--output-format json` envelope. */
144
- export function parseCostFromEnvelope(stdout) {
145
- const env = tryParseJson(stdout);
146
- if (env && typeof env === 'object') {
147
- const o = env;
148
- for (const k of ['total_cost_usd', 'cost_usd', 'costUsd']) {
149
- if (typeof o[k] === 'number')
150
- return o[k];
151
- }
152
- }
153
- return undefined;
154
- }
155
- // ── Harness ──────────────────────────────────────────────────────────────
156
- export class FableHarness {
157
- model;
158
- batchSize;
159
- maxBudgetUsd;
160
- timeoutMs;
161
- spawnClaude;
162
- spentUsd = 0;
163
- constructor(opts = {}) {
164
- this.model = opts.model ?? FABLE_COST_MODEL.model;
165
- this.batchSize = Math.max(1, opts.batchSize ?? FABLE_COST_MODEL.defaultBatchSize);
166
- this.maxBudgetUsd = opts.maxBudgetUsd ?? 0;
167
- this.timeoutMs = opts.timeoutMs ?? 5 * 60 * 1000;
168
- this.spawnClaude = opts.spawnClaude ?? defaultSpawnClaude;
169
- }
170
- /** Cumulative measured spend across all calls this harness has made. */
171
- getSpentUsd() {
172
- return Number(this.spentUsd.toFixed(4));
173
- }
174
- /** True when a positive budget cap is configured (a precondition for any spend). */
175
- isEnabled() {
176
- return this.maxBudgetUsd > 0;
177
- }
178
- /**
179
- * Judge a set of items in batches. Returns one JudgeResult per input id that
180
- * the model returned. Items that fall outside the budget, or that the model
181
- * omits, are simply absent from the result — the caller (distill-oracle) is
182
- * responsible for falling back to the structural proxy for those.
183
- *
184
- * Spends $0 and returns [] when no budget cap is configured.
185
- */
186
- async judgeBatch(items) {
187
- if (items.length === 0)
188
- return [];
189
- if (!this.isEnabled())
190
- return [];
191
- const out = [];
192
- for (const batch of chunk(items, this.batchSize)) {
193
- if (this.spentUsd >= this.maxBudgetUsd)
194
- break;
195
- const parsed = await this.runBatch(JUDGE_SYSTEM_PROMPT, batch);
196
- for (const raw of parsed) {
197
- const r = normalizeJudge(raw);
198
- if (r)
199
- out.push(r);
200
- }
201
- }
202
- return out;
203
- }
204
- /**
205
- * Reflective failure analysis over items — the second cost-disciplined entry
206
- * point, used by GEPA/evolve for mutation hints. Same batching + budget
207
- * discipline as judgeBatch. Returns [] when no budget cap is configured.
208
- */
209
- async reflectFailures(items) {
210
- if (items.length === 0)
211
- return [];
212
- if (!this.isEnabled())
213
- return [];
214
- const out = [];
215
- for (const batch of chunk(items, this.batchSize)) {
216
- if (this.spentUsd >= this.maxBudgetUsd)
217
- break;
218
- const parsed = await this.runBatch(REFLECT_SYSTEM_PROMPT, batch);
219
- for (const raw of parsed) {
220
- const r = normalizeReflect(raw);
221
- if (r)
222
- out.push(r);
223
- }
224
- }
225
- return out;
226
- }
227
- /**
228
- * ADR-316 — one proactive co-pilot tip from a structural session snapshot
229
- * (no raw prompt/command/file content). A single-item "batch" — same
230
- * budget/cwd/parsing discipline as judgeBatch/reflectFailures, just with
231
- * exactly one call instead of a loop. Returns null when disabled, over
232
- * budget, or the model found nothing worth surfacing (an empty verdict
233
- * array is a valid, non-error answer here, not a parse failure).
234
- */
235
- async adviseCoPilotTip(snapshot) {
236
- if (!this.isEnabled())
237
- return null;
238
- if (this.spentUsd >= this.maxBudgetUsd)
239
- return null;
240
- const parsed = await this.runBatch(ADVISOR_SYSTEM_PROMPT, [snapshot]);
241
- if (parsed.length === 0)
242
- return null;
243
- return normalizeCoPilotTip(parsed[0]);
244
- }
245
- /** Build the argv for a `claude -p` call. Exposed shape for testability. */
246
- buildArgv(systemPrompt) {
247
- const perCallCap = Math.max(0, this.maxBudgetUsd - this.spentUsd);
248
- return [
249
- '-p',
250
- '--model', this.model,
251
- '--output-format', 'json',
252
- '--append-system-prompt', systemPrompt,
253
- '--max-budget-usd', String(round(perCallCap)),
254
- ];
255
- }
256
- /**
257
- * Run one batch: create a FRESH EMPTY temp cwd (critical — no project
258
- * context), spawn `claude -p` there with the role via --append-system-prompt,
259
- * pipe the batch JSON to stdin, parse the verdict array out of the envelope,
260
- * and account the measured spend.
261
- */
262
- async runBatch(systemPrompt, batch) {
263
- const argv = this.buildArgv(systemPrompt);
264
- const stdinPrompt = JSON.stringify(batch);
265
- const cwd = await mkdtemp(join(tmpdir(), 'ruflo-fable-'));
266
- try {
267
- const res = await this.spawnClaude(argv, stdinPrompt, cwd, { timeoutMs: this.timeoutMs });
268
- // Account spend: prefer measured envelope cost, else the amortized estimate.
269
- this.spentUsd += typeof res.costUsd === 'number'
270
- ? res.costUsd
271
- : estimateFableCostUsd(batch.length, this.batchSize);
272
- if (res.code !== 0 && !res.stdout)
273
- return [];
274
- return extractVerdictArray(res.stdout);
275
- }
276
- finally {
277
- await rm(cwd, { recursive: true, force: true }).catch(() => { });
278
- }
279
- }
280
- }
281
- // ── Parsing helpers ──────────────────────────────────────────────────────
282
- /**
283
- * Extract the model's verdict array. `claude -p --output-format json` wraps the
284
- * assistant text in an envelope `{ result: "<text>", ... }`; the text is itself
285
- * the JSON array we asked for. Handle both the enveloped and bare forms, and
286
- * arrays fenced in ```json blocks.
287
- */
288
- export function extractVerdictArray(stdout) {
289
- const trimmed = (stdout ?? '').trim();
290
- if (!trimmed)
291
- return [];
292
- // 1. Enveloped: parse envelope, then its `result` field.
293
- const env = tryParseJson(trimmed);
294
- if (env && typeof env === 'object' && !Array.isArray(env)) {
295
- const result = env.result;
296
- if (typeof result === 'string') {
297
- const inner = findJsonArray(result);
298
- if (inner)
299
- return inner;
300
- }
301
- // Some envelopes embed the array directly.
302
- const direct = env.results;
303
- if (Array.isArray(direct))
304
- return direct;
305
- }
306
- if (Array.isArray(env))
307
- return env;
308
- // 2. Bare text: find a JSON array anywhere in stdout.
309
- const arr = findJsonArray(trimmed);
310
- return arr ?? [];
311
- }
312
- function findJsonArray(text) {
313
- const fenced = text.match(/```(?:json)?\s*(\[[\s\S]*?\])\s*```/);
314
- if (fenced) {
315
- const v = tryParseJson(fenced[1]);
316
- if (Array.isArray(v))
317
- return v;
318
- }
319
- const bare = text.match(/\[[\s\S]*\]/);
320
- if (bare) {
321
- const v = tryParseJson(bare[0]);
322
- if (Array.isArray(v))
323
- return v;
324
- }
325
- return null;
326
- }
327
- function normalizeJudge(raw) {
328
- if (!raw || typeof raw !== 'object')
329
- return null;
330
- const o = raw;
331
- if (typeof o.id !== 'string')
332
- return null;
333
- return {
334
- id: o.id,
335
- resolved: o.resolved === true || o.resolved === 'true',
336
- confidence: clamp01(typeof o.confidence === 'number' ? o.confidence : Number(o.confidence)),
337
- reason: typeof o.reason === 'string' ? o.reason : '',
338
- };
339
- }
340
- function normalizeReflect(raw) {
341
- if (!raw || typeof raw !== 'object')
342
- return null;
343
- const o = raw;
344
- if (typeof o.id !== 'string')
345
- return null;
346
- return {
347
- id: o.id,
348
- failureClass: typeof o.failureClass === 'string' ? o.failureClass : 'unknown',
349
- diagnosis: typeof o.diagnosis === 'string' ? o.diagnosis : '',
350
- mutationHint: typeof o.mutationHint === 'string' ? o.mutationHint : '',
351
- };
352
- }
353
- function normalizeCoPilotTip(raw) {
354
- if (!raw || typeof raw !== 'object')
355
- return null;
356
- const o = raw;
357
- if (typeof o.headline !== 'string' || !o.headline.trim())
358
- return null;
359
- return {
360
- headline: o.headline.slice(0, 80),
361
- detail: typeof o.detail === 'string' ? o.detail.slice(0, 200) : '',
362
- confidence: clamp01(typeof o.confidence === 'number' ? o.confidence : Number(o.confidence)),
363
- };
364
- }
365
- function tryParseJson(s) {
366
- try {
367
- return JSON.parse(s);
368
- }
369
- catch {
370
- return undefined;
371
- }
372
- }
373
- function chunk(arr, size) {
374
- const out = [];
375
- for (let i = 0; i < arr.length; i += size)
376
- out.push(arr.slice(i, i + size));
377
- return out;
378
- }
379
- function clamp01(n) {
380
- if (!Number.isFinite(n))
381
- return 0;
382
- return Math.max(0, Math.min(1, n));
383
- }
384
- function round(n) {
385
- return Math.round(n * 100) / 100;
386
- }
387
- export default FableHarness;
388
- //# sourceMappingURL=fable-harness.js.map
@@ -1,42 +0,0 @@
1
- /**
2
- * #2661 — Git workspace identity: separate WORKTREE identity from
3
- * REPOSITORY identity.
4
- *
5
- * Daemon dedup, state, and scheduling have historically been keyed on the
6
- * worktree path (`process.cwd()`), so N Git worktrees of the same repository
7
- * behave as N unrelated projects — the cardinality bug behind the worktree
8
- * daemon fanout. This service resolves the identity that is SHARED across
9
- * worktrees:
10
- *
11
- * worktreeRoot `git rev-parse --show-toplevel` — per-worktree
12
- * commonGitDir `git rev-parse --git-common-dir` — shared by all worktrees
13
- * repositoryId sha256(canonical commonGitDir) — stable repo key
14
- * head `git rev-parse HEAD` — current commit
15
- *
16
- * Two worktrees of one repository resolve to the SAME repositoryId (and,
17
- * when checked out at the same commit, the same head) — the key ingredient
18
- * for cross-worktree job dedup (issue invariant 5).
19
- *
20
- * Non-git directories degrade gracefully: repositoryId falls back to a hash
21
- * of the resolved directory path (prefixed `dir:`-style via isGit=false), so
22
- * callers never need a special case.
23
- */
24
- export interface GitWorkspaceIdentity {
25
- /** Absolute root of this worktree (or the input dir when not a git repo). */
26
- worktreeRoot: string;
27
- /** Absolute path of the shared .git directory (equals worktreeRoot/.git for non-worktree clones). */
28
- commonGitDir: string;
29
- /** Stable id shared by ALL worktrees of one repository. */
30
- repositoryId: string;
31
- /** Current HEAD commit sha ('' when not a git repo or unborn HEAD). */
32
- head: string;
33
- /** False when the directory is not inside a git repository. */
34
- isGit: boolean;
35
- }
36
- /**
37
- * Resolve the git workspace identity for a directory. Never throws.
38
- */
39
- export declare function resolveGitWorkspaceIdentity(dir: string): GitWorkspaceIdentity;
40
- /** Test hook: clear the per-process identity cache. */
41
- export declare function resetGitIdentityCacheForTests(): void;
42
- //# sourceMappingURL=git-workspace-identity.d.ts.map