muonroi-cli 1.8.1 → 1.8.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 (971) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +122 -122
  3. package/dist/src/cli/cost-forensics.js +12 -12
  4. package/dist/src/council/prompts.js +20 -20
  5. package/dist/src/generated/version.d.ts +1 -1
  6. package/dist/src/generated/version.js +1 -1
  7. package/dist/src/mcp/oauth-callback.js +2 -2
  8. package/dist/src/mcp/setup-guide-text.d.ts +1 -1
  9. package/dist/src/mcp/setup-guide-text.js +76 -74
  10. package/dist/src/ops/doctor.js +7 -7
  11. package/dist/src/orchestrator/orchestrator.js +22 -13
  12. package/dist/src/orchestrator/prompts.js +159 -159
  13. package/dist/src/pil/layer1-intent.js +37 -37
  14. package/dist/src/pil/layer2_5-ponytail.js +8 -8
  15. package/dist/src/product-loop/done-gate.js +3 -3
  16. package/dist/src/product-loop/loop-driver.js +18 -18
  17. package/dist/src/product-loop/progress-snapshot.js +4 -4
  18. package/dist/src/providers/mcp-vision-bridge.js +48 -48
  19. package/dist/src/reporter/index.js +1 -1
  20. package/dist/src/scaffold/bb-ecosystem-apply.js +47 -47
  21. package/dist/src/scaffold/bb-quality-gate.js +5 -5
  22. package/dist/src/scaffold/continuation-prompt.js +60 -60
  23. package/dist/src/scaffold/init-new.js +453 -453
  24. package/dist/src/self-qa/agentic-loop.js +19 -19
  25. package/dist/src/storage/interaction-log.js +5 -5
  26. package/dist/src/storage/migrations.js +125 -125
  27. package/dist/src/storage/session-experience-store.js +4 -4
  28. package/dist/src/storage/sessions.js +43 -43
  29. package/dist/src/storage/transcript.js +100 -100
  30. package/dist/src/storage/usage.js +14 -14
  31. package/dist/src/storage/workspaces.js +12 -12
  32. package/dist/src/ui/slash/council-inspect.js +4 -4
  33. package/dist/src/utils/clipboard-image.js +23 -23
  34. package/dist/src/utils/install-manager.d.ts +1 -0
  35. package/dist/src/utils/install-manager.js +29 -0
  36. package/dist/src/utils/side-question.js +2 -2
  37. package/dist/src/utils/skills.js +3 -3
  38. package/dist/src/utils/update-checker.js +12 -2
  39. package/package.json +8 -1
  40. package/dist/src/__test-helpers__/catalog-fixtures.d.ts +0 -22
  41. package/dist/src/__test-helpers__/catalog-fixtures.js +0 -55
  42. package/dist/src/__test-stubs__/ee-server.d.ts +0 -27
  43. package/dist/src/__test-stubs__/ee-server.js +0 -138
  44. package/dist/src/__test-stubs__/vitest-setup.d.ts +0 -1
  45. package/dist/src/__test-stubs__/vitest-setup.js +0 -38
  46. package/dist/src/__tests__/council/bubble-layout.test.d.ts +0 -1
  47. package/dist/src/__tests__/council/bubble-layout.test.js +0 -39
  48. package/dist/src/__tests__/council/code-block-truncate.test.d.ts +0 -1
  49. package/dist/src/__tests__/council/code-block-truncate.test.js +0 -45
  50. package/dist/src/__tests__/council/role-palette.test.d.ts +0 -1
  51. package/dist/src/__tests__/council/role-palette.test.js +0 -59
  52. package/dist/src/__tests__/first-run-wizard.test.d.ts +0 -1
  53. package/dist/src/__tests__/first-run-wizard.test.js +0 -9
  54. package/dist/src/agent-harness/__tests__/cli-flags.spec.d.ts +0 -1
  55. package/dist/src/agent-harness/__tests__/cli-flags.spec.js +0 -33
  56. package/dist/src/agent-harness/__tests__/driver.spec.d.ts +0 -1
  57. package/dist/src/agent-harness/__tests__/driver.spec.js +0 -141
  58. package/dist/src/agent-harness/__tests__/idle.spec.d.ts +0 -1
  59. package/dist/src/agent-harness/__tests__/idle.spec.js +0 -84
  60. package/dist/src/agent-harness/__tests__/mock-llm.spec.d.ts +0 -1
  61. package/dist/src/agent-harness/__tests__/mock-llm.spec.js +0 -91
  62. package/dist/src/agent-harness/__tests__/mock-model.spec.d.ts +0 -5
  63. package/dist/src/agent-harness/__tests__/mock-model.spec.js +0 -270
  64. package/dist/src/agent-harness/__tests__/predicate.spec.d.ts +0 -1
  65. package/dist/src/agent-harness/__tests__/predicate.spec.js +0 -27
  66. package/dist/src/agent-harness/__tests__/protocol.spec.d.ts +0 -1
  67. package/dist/src/agent-harness/__tests__/protocol.spec.js +0 -56
  68. package/dist/src/agent-harness/__tests__/schema.spec.d.ts +0 -1
  69. package/dist/src/agent-harness/__tests__/schema.spec.js +0 -76
  70. package/dist/src/agent-harness/__tests__/selector.spec.d.ts +0 -1
  71. package/dist/src/agent-harness/__tests__/selector.spec.js +0 -70
  72. package/dist/src/agent-harness/__tests__/sidechannel.spec.d.ts +0 -1
  73. package/dist/src/agent-harness/__tests__/sidechannel.spec.js +0 -29
  74. package/dist/src/agent-harness/__tests__/spec-helpers.spec.d.ts +0 -1
  75. package/dist/src/agent-harness/__tests__/spec-helpers.spec.js +0 -68
  76. package/dist/src/chat/__tests__/broadcast-bus.test.d.ts +0 -1
  77. package/dist/src/chat/__tests__/broadcast-bus.test.js +0 -81
  78. package/dist/src/chat/__tests__/channel-manager.test.d.ts +0 -1
  79. package/dist/src/chat/__tests__/channel-manager.test.js +0 -133
  80. package/dist/src/chat/__tests__/client.test.d.ts +0 -1
  81. package/dist/src/chat/__tests__/client.test.js +0 -109
  82. package/dist/src/chat/__tests__/discord-integration.test.d.ts +0 -1
  83. package/dist/src/chat/__tests__/discord-integration.test.js +0 -153
  84. package/dist/src/chat/__tests__/intent-prompt.test.d.ts +0 -1
  85. package/dist/src/chat/__tests__/intent-prompt.test.js +0 -80
  86. package/dist/src/chat/__tests__/verdict-resolver.test.d.ts +0 -1
  87. package/dist/src/chat/__tests__/verdict-resolver.test.js +0 -308
  88. package/dist/src/cli/__tests__/bw-vault.test.d.ts +0 -1
  89. package/dist/src/cli/__tests__/bw-vault.test.js +0 -87
  90. package/dist/src/cli/__tests__/keys-bundle.test.d.ts +0 -1
  91. package/dist/src/cli/__tests__/keys-bundle.test.js +0 -40
  92. package/dist/src/cli/__tests__/share-cmd.test.d.ts +0 -1
  93. package/dist/src/cli/__tests__/share-cmd.test.js +0 -175
  94. package/dist/src/cli/config/__tests__/model-picker.test.d.ts +0 -1
  95. package/dist/src/cli/config/__tests__/model-picker.test.js +0 -56
  96. package/dist/src/cli/config/__tests__/provider-fetch.test.d.ts +0 -1
  97. package/dist/src/cli/config/__tests__/provider-fetch.test.js +0 -38
  98. package/dist/src/cli/cost-forensics.test.d.ts +0 -1
  99. package/dist/src/cli/cost-forensics.test.js +0 -223
  100. package/dist/src/cli/experience-report.test.d.ts +0 -5
  101. package/dist/src/cli/experience-report.test.js +0 -63
  102. package/dist/src/cli/keys.test.d.ts +0 -1
  103. package/dist/src/cli/keys.test.js +0 -86
  104. package/dist/src/council/__tests__/abort-threading.test.d.ts +0 -1
  105. package/dist/src/council/__tests__/abort-threading.test.js +0 -193
  106. package/dist/src/council/__tests__/accounting.test.d.ts +0 -1
  107. package/dist/src/council/__tests__/accounting.test.js +0 -66
  108. package/dist/src/council/__tests__/audit-replay.test.d.ts +0 -1
  109. package/dist/src/council/__tests__/audit-replay.test.js +0 -241
  110. package/dist/src/council/__tests__/clarification-prompt.test.d.ts +0 -1
  111. package/dist/src/council/__tests__/clarification-prompt.test.js +0 -71
  112. package/dist/src/council/__tests__/clarifier-max-rounds.test.d.ts +0 -1
  113. package/dist/src/council/__tests__/clarifier-max-rounds.test.js +0 -46
  114. package/dist/src/council/__tests__/clarifier-options.test.d.ts +0 -1
  115. package/dist/src/council/__tests__/clarifier-options.test.js +0 -54
  116. package/dist/src/council/__tests__/clarifier-ready-gate.test.d.ts +0 -1
  117. package/dist/src/council/__tests__/clarifier-ready-gate.test.js +0 -265
  118. package/dist/src/council/__tests__/cost-aware.test.d.ts +0 -1
  119. package/dist/src/council/__tests__/cost-aware.test.js +0 -49
  120. package/dist/src/council/__tests__/council-turn-length-emit.test.d.ts +0 -1
  121. package/dist/src/council/__tests__/council-turn-length-emit.test.js +0 -130
  122. package/dist/src/council/__tests__/debate-planner-structured.test.d.ts +0 -1
  123. package/dist/src/council/__tests__/debate-planner-structured.test.js +0 -209
  124. package/dist/src/council/__tests__/debate-round-budget.test.d.ts +0 -1
  125. package/dist/src/council/__tests__/debate-round-budget.test.js +0 -45
  126. package/dist/src/council/__tests__/decisions-lock.test.d.ts +0 -6
  127. package/dist/src/council/__tests__/decisions-lock.test.js +0 -352
  128. package/dist/src/council/__tests__/evaluator-metrics.test.d.ts +0 -1
  129. package/dist/src/council/__tests__/evaluator-metrics.test.js +0 -463
  130. package/dist/src/council/__tests__/oauth-reachable.test.d.ts +0 -1
  131. package/dist/src/council/__tests__/oauth-reachable.test.js +0 -31
  132. package/dist/src/council/__tests__/parse-outcome-fallback.test.d.ts +0 -1
  133. package/dist/src/council/__tests__/parse-outcome-fallback.test.js +0 -114
  134. package/dist/src/council/__tests__/post-debate-recommendation.test.d.ts +0 -1
  135. package/dist/src/council/__tests__/post-debate-recommendation.test.js +0 -58
  136. package/dist/src/council/__tests__/research-tools.test.d.ts +0 -1
  137. package/dist/src/council/__tests__/research-tools.test.js +0 -214
  138. package/dist/src/council/__tests__/round-tools.test.d.ts +0 -1
  139. package/dist/src/council/__tests__/round-tools.test.js +0 -306
  140. package/dist/src/council/__tests__/tool-trace.test.d.ts +0 -1
  141. package/dist/src/council/__tests__/tool-trace.test.js +0 -131
  142. package/dist/src/council/__tests__/types-contract.test.d.ts +0 -9
  143. package/dist/src/council/__tests__/types-contract.test.js +0 -82
  144. package/dist/src/council/clarifier-question-cap.test.d.ts +0 -12
  145. package/dist/src/council/clarifier-question-cap.test.js +0 -73
  146. package/dist/src/daemon/scheduler.test.d.ts +0 -1
  147. package/dist/src/daemon/scheduler.test.js +0 -103
  148. package/dist/src/ee/__tests__/bb-design.test.d.ts +0 -14
  149. package/dist/src/ee/__tests__/bb-design.test.js +0 -180
  150. package/dist/src/ee/__tests__/ee-onboarding.test.d.ts +0 -1
  151. package/dist/src/ee/__tests__/ee-onboarding.test.js +0 -32
  152. package/dist/src/ee/__tests__/export-transcripts.test.d.ts +0 -11
  153. package/dist/src/ee/__tests__/export-transcripts.test.js +0 -200
  154. package/dist/src/ee/__tests__/pil-context-bridge.test.d.ts +0 -1
  155. package/dist/src/ee/__tests__/pil-context-bridge.test.js +0 -54
  156. package/dist/src/ee/__tests__/pipeline.integration.test.d.ts +0 -14
  157. package/dist/src/ee/__tests__/pipeline.integration.test.js +0 -151
  158. package/dist/src/ee/__tests__/recall-format.test.d.ts +0 -10
  159. package/dist/src/ee/__tests__/recall-format.test.js +0 -57
  160. package/dist/src/ee/__tests__/recall-ledger.test.d.ts +0 -1
  161. package/dist/src/ee/__tests__/recall-ledger.test.js +0 -45
  162. package/dist/src/ee/__tests__/render-sink-wiring.test.d.ts +0 -1
  163. package/dist/src/ee/__tests__/render-sink-wiring.test.js +0 -74
  164. package/dist/src/ee/artifact-cache.test.d.ts +0 -1
  165. package/dist/src/ee/artifact-cache.test.js +0 -69
  166. package/dist/src/ee/auth.test.d.ts +0 -1
  167. package/dist/src/ee/auth.test.js +0 -59
  168. package/dist/src/ee/bridge.test.d.ts +0 -1
  169. package/dist/src/ee/bridge.test.js +0 -230
  170. package/dist/src/ee/client.test.d.ts +0 -1
  171. package/dist/src/ee/client.test.js +0 -181
  172. package/dist/src/ee/extract-session.test.d.ts +0 -1
  173. package/dist/src/ee/extract-session.test.js +0 -192
  174. package/dist/src/ee/intercept.test.d.ts +0 -1
  175. package/dist/src/ee/intercept.test.js +0 -171
  176. package/dist/src/ee/judge.test.d.ts +0 -1
  177. package/dist/src/ee/judge.test.js +0 -190
  178. package/dist/src/ee/mistake-detector.test.d.ts +0 -1
  179. package/dist/src/ee/mistake-detector.test.js +0 -221
  180. package/dist/src/ee/offline-queue.test.d.ts +0 -1
  181. package/dist/src/ee/offline-queue.test.js +0 -246
  182. package/dist/src/ee/phase-outcome.test.d.ts +0 -1
  183. package/dist/src/ee/phase-outcome.test.js +0 -94
  184. package/dist/src/ee/phase-tracker.test.d.ts +0 -1
  185. package/dist/src/ee/phase-tracker.test.js +0 -142
  186. package/dist/src/ee/posttool.test.d.ts +0 -1
  187. package/dist/src/ee/posttool.test.js +0 -70
  188. package/dist/src/ee/prompt-stale.test.d.ts +0 -8
  189. package/dist/src/ee/prompt-stale.test.js +0 -76
  190. package/dist/src/ee/recall-mirror.test.d.ts +0 -1
  191. package/dist/src/ee/recall-mirror.test.js +0 -65
  192. package/dist/src/ee/render.test.d.ts +0 -1
  193. package/dist/src/ee/render.test.js +0 -63
  194. package/dist/src/ee/scope.test.d.ts +0 -1
  195. package/dist/src/ee/scope.test.js +0 -97
  196. package/dist/src/ee/search.test.d.ts +0 -1
  197. package/dist/src/ee/search.test.js +0 -23
  198. package/dist/src/ee/session-trajectory.test.d.ts +0 -1
  199. package/dist/src/ee/session-trajectory.test.js +0 -120
  200. package/dist/src/ee/touch.test.d.ts +0 -1
  201. package/dist/src/ee/touch.test.js +0 -62
  202. package/dist/src/ee/who-am-i.test.d.ts +0 -1
  203. package/dist/src/ee/who-am-i.test.js +0 -101
  204. package/dist/src/flow/__tests__/migration.test.d.ts +0 -1
  205. package/dist/src/flow/__tests__/migration.test.js +0 -105
  206. package/dist/src/flow/__tests__/parser.test.d.ts +0 -1
  207. package/dist/src/flow/__tests__/parser.test.js +0 -68
  208. package/dist/src/flow/__tests__/run-manager-product.test.d.ts +0 -1
  209. package/dist/src/flow/__tests__/run-manager-product.test.js +0 -49
  210. package/dist/src/flow/__tests__/run-manager.test.d.ts +0 -1
  211. package/dist/src/flow/__tests__/run-manager.test.js +0 -83
  212. package/dist/src/flow/__tests__/scaffold-checkpoint.test.d.ts +0 -1
  213. package/dist/src/flow/__tests__/scaffold-checkpoint.test.js +0 -93
  214. package/dist/src/flow/__tests__/scaffold.test.d.ts +0 -1
  215. package/dist/src/flow/__tests__/scaffold.test.js +0 -47
  216. package/dist/src/flow/__tests__/warning-persist.test.d.ts +0 -5
  217. package/dist/src/flow/__tests__/warning-persist.test.js +0 -96
  218. package/dist/src/flow/compaction/__tests__/compress.test.d.ts +0 -1
  219. package/dist/src/flow/compaction/__tests__/compress.test.js +0 -63
  220. package/dist/src/flow/compaction/__tests__/extract.test.d.ts +0 -1
  221. package/dist/src/flow/compaction/__tests__/extract.test.js +0 -66
  222. package/dist/src/flow/compaction/__tests__/preserve.test.d.ts +0 -1
  223. package/dist/src/flow/compaction/__tests__/preserve.test.js +0 -62
  224. package/dist/src/gsd/__tests__/gray-areas.test.d.ts +0 -1
  225. package/dist/src/gsd/__tests__/gray-areas.test.js +0 -29
  226. package/dist/src/gsd/__tests__/types.test.d.ts +0 -1
  227. package/dist/src/gsd/__tests__/types.test.js +0 -78
  228. package/dist/src/headless/__tests__/council-answers.test.d.ts +0 -1
  229. package/dist/src/headless/__tests__/council-answers.test.js +0 -251
  230. package/dist/src/headless/output.test.d.ts +0 -1
  231. package/dist/src/headless/output.test.js +0 -239
  232. package/dist/src/lsp/builtins.test.d.ts +0 -1
  233. package/dist/src/lsp/builtins.test.js +0 -112
  234. package/dist/src/lsp/client-normalize.test.d.ts +0 -12
  235. package/dist/src/lsp/client-normalize.test.js +0 -34
  236. package/dist/src/lsp/manager.test.d.ts +0 -1
  237. package/dist/src/lsp/manager.test.js +0 -194
  238. package/dist/src/lsp/npm-cache.test.d.ts +0 -1
  239. package/dist/src/lsp/npm-cache.test.js +0 -53
  240. package/dist/src/lsp/smoke.test.d.ts +0 -1
  241. package/dist/src/lsp/smoke.test.js +0 -56
  242. package/dist/src/maintain/__tests__/codebase-intel.test.d.ts +0 -5
  243. package/dist/src/maintain/__tests__/codebase-intel.test.js +0 -237
  244. package/dist/src/maintain/__tests__/gh-create-pr.test.d.ts +0 -11
  245. package/dist/src/maintain/__tests__/gh-create-pr.test.js +0 -160
  246. package/dist/src/maintain/__tests__/pr-builder.test.d.ts +0 -10
  247. package/dist/src/maintain/__tests__/pr-builder.test.js +0 -229
  248. package/dist/src/maintain/__tests__/repo-map.test.d.ts +0 -5
  249. package/dist/src/maintain/__tests__/repo-map.test.js +0 -90
  250. package/dist/src/maintain/__tests__/task-runner.test.d.ts +0 -11
  251. package/dist/src/maintain/__tests__/task-runner.test.js +0 -281
  252. package/dist/src/mcp/__tests__/auto-setup.test.d.ts +0 -1
  253. package/dist/src/mcp/__tests__/auto-setup.test.js +0 -155
  254. package/dist/src/mcp/__tests__/cap-tool-result.test.d.ts +0 -1
  255. package/dist/src/mcp/__tests__/cap-tool-result.test.js +0 -58
  256. package/dist/src/mcp/__tests__/client-pool.spec.d.ts +0 -1
  257. package/dist/src/mcp/__tests__/client-pool.spec.js +0 -169
  258. package/dist/src/mcp/__tests__/ee-tools.test.d.ts +0 -1
  259. package/dist/src/mcp/__tests__/ee-tools.test.js +0 -226
  260. package/dist/src/mcp/__tests__/forensics-tools.test.d.ts +0 -1
  261. package/dist/src/mcp/__tests__/forensics-tools.test.js +0 -54
  262. package/dist/src/mcp/__tests__/harness-driver-action-tools.spec.d.ts +0 -1
  263. package/dist/src/mcp/__tests__/harness-driver-action-tools.spec.js +0 -103
  264. package/dist/src/mcp/__tests__/harness-driver-async-tools.spec.d.ts +0 -1
  265. package/dist/src/mcp/__tests__/harness-driver-async-tools.spec.js +0 -112
  266. package/dist/src/mcp/__tests__/harness-driver-read-tools.spec.d.ts +0 -1
  267. package/dist/src/mcp/__tests__/harness-driver-read-tools.spec.js +0 -124
  268. package/dist/src/mcp/__tests__/harness-driver-security.spec.d.ts +0 -1
  269. package/dist/src/mcp/__tests__/harness-driver-security.spec.js +0 -61
  270. package/dist/src/mcp/__tests__/harness-driver.spec.d.ts +0 -1
  271. package/dist/src/mcp/__tests__/harness-driver.spec.js +0 -20
  272. package/dist/src/mcp/__tests__/lazy-schema.spec.d.ts +0 -1
  273. package/dist/src/mcp/__tests__/lazy-schema.spec.js +0 -152
  274. package/dist/src/mcp/__tests__/lsp-tools.test.d.ts +0 -1
  275. package/dist/src/mcp/__tests__/lsp-tools.test.js +0 -56
  276. package/dist/src/mcp/__tests__/mcp-keychain.test.d.ts +0 -1
  277. package/dist/src/mcp/__tests__/mcp-keychain.test.js +0 -40
  278. package/dist/src/mcp/__tests__/parallel-build.spec.d.ts +0 -1
  279. package/dist/src/mcp/__tests__/parallel-build.spec.js +0 -67
  280. package/dist/src/mcp/__tests__/research-onboarding.test.d.ts +0 -1
  281. package/dist/src/mcp/__tests__/research-onboarding.test.js +0 -148
  282. package/dist/src/mcp/__tests__/runtime-hydration.test.d.ts +0 -1
  283. package/dist/src/mcp/__tests__/runtime-hydration.test.js +0 -78
  284. package/dist/src/mcp/__tests__/runtime-output-cap.test.d.ts +0 -1
  285. package/dist/src/mcp/__tests__/runtime-output-cap.test.js +0 -42
  286. package/dist/src/mcp/__tests__/runtime-sanitize.test.d.ts +0 -1
  287. package/dist/src/mcp/__tests__/runtime-sanitize.test.js +0 -40
  288. package/dist/src/mcp/__tests__/self-verify-jobs.test.d.ts +0 -1
  289. package/dist/src/mcp/__tests__/self-verify-jobs.test.js +0 -92
  290. package/dist/src/mcp/__tests__/smart-filter.test.d.ts +0 -1
  291. package/dist/src/mcp/__tests__/smart-filter.test.js +0 -177
  292. package/dist/src/mcp/__tests__/tools-server.smoke.test.d.ts +0 -1
  293. package/dist/src/mcp/__tests__/tools-server.smoke.test.js +0 -42
  294. package/dist/src/mcp/parse-headers.test.d.ts +0 -1
  295. package/dist/src/mcp/parse-headers.test.js +0 -43
  296. package/dist/src/mcp/smoke.test.d.ts +0 -1
  297. package/dist/src/mcp/smoke.test.js +0 -159
  298. package/dist/src/models/__tests__/registry.test.d.ts +0 -1
  299. package/dist/src/models/__tests__/registry.test.js +0 -74
  300. package/dist/src/models/catalog-gemini.test.d.ts +0 -1
  301. package/dist/src/models/catalog-gemini.test.js +0 -48
  302. package/dist/src/models/catalog-url.test.d.ts +0 -1
  303. package/dist/src/models/catalog-url.test.js +0 -26
  304. package/dist/src/models/catalog-validation.test.d.ts +0 -1
  305. package/dist/src/models/catalog-validation.test.js +0 -63
  306. package/dist/src/ops/__tests__/doctor-council-mcp.test.d.ts +0 -1
  307. package/dist/src/ops/__tests__/doctor-council-mcp.test.js +0 -139
  308. package/dist/src/ops/__tests__/doctor-ee-health.test.d.ts +0 -1
  309. package/dist/src/ops/__tests__/doctor-ee-health.test.js +0 -134
  310. package/dist/src/ops/bug-report.test.d.ts +0 -1
  311. package/dist/src/ops/bug-report.test.js +0 -148
  312. package/dist/src/ops/doctor.test.d.ts +0 -1
  313. package/dist/src/ops/doctor.test.js +0 -97
  314. package/dist/src/orchestrator/__tests__/agent-base-url-switch.test.d.ts +0 -1
  315. package/dist/src/orchestrator/__tests__/agent-base-url-switch.test.js +0 -77
  316. package/dist/src/orchestrator/__tests__/auto-commit.test.d.ts +0 -1
  317. package/dist/src/orchestrator/__tests__/auto-commit.test.js +0 -142
  318. package/dist/src/orchestrator/__tests__/batch-turn-runner.test.d.ts +0 -1
  319. package/dist/src/orchestrator/__tests__/batch-turn-runner.test.js +0 -164
  320. package/dist/src/orchestrator/__tests__/council-manager.test.d.ts +0 -1
  321. package/dist/src/orchestrator/__tests__/council-manager.test.js +0 -148
  322. package/dist/src/orchestrator/__tests__/cross-turn-dedup.test.d.ts +0 -1
  323. package/dist/src/orchestrator/__tests__/cross-turn-dedup.test.js +0 -175
  324. package/dist/src/orchestrator/__tests__/current-call-id.test.d.ts +0 -16
  325. package/dist/src/orchestrator/__tests__/current-call-id.test.js +0 -138
  326. package/dist/src/orchestrator/__tests__/delegations.test.d.ts +0 -1
  327. package/dist/src/orchestrator/__tests__/delegations.test.js +0 -96
  328. package/dist/src/orchestrator/__tests__/error-forensics.test.d.ts +0 -1
  329. package/dist/src/orchestrator/__tests__/error-forensics.test.js +0 -93
  330. package/dist/src/orchestrator/__tests__/flow-resume.test.d.ts +0 -5
  331. package/dist/src/orchestrator/__tests__/flow-resume.test.js +0 -61
  332. package/dist/src/orchestrator/__tests__/humanize-api-error.test.d.ts +0 -1
  333. package/dist/src/orchestrator/__tests__/humanize-api-error.test.js +0 -68
  334. package/dist/src/orchestrator/__tests__/mcp-capability-block.test.d.ts +0 -1
  335. package/dist/src/orchestrator/__tests__/mcp-capability-block.test.js +0 -39
  336. package/dist/src/orchestrator/__tests__/message-processor.test.d.ts +0 -1
  337. package/dist/src/orchestrator/__tests__/message-processor.test.js +0 -189
  338. package/dist/src/orchestrator/__tests__/message-write-ahead.test.d.ts +0 -22
  339. package/dist/src/orchestrator/__tests__/message-write-ahead.test.js +0 -149
  340. package/dist/src/orchestrator/__tests__/project-stack.test.d.ts +0 -1
  341. package/dist/src/orchestrator/__tests__/project-stack.test.js +0 -65
  342. package/dist/src/orchestrator/__tests__/prompts.test.d.ts +0 -1
  343. package/dist/src/orchestrator/__tests__/prompts.test.js +0 -88
  344. package/dist/src/orchestrator/__tests__/read-path-budget.test.d.ts +0 -1
  345. package/dist/src/orchestrator/__tests__/read-path-budget.test.js +0 -156
  346. package/dist/src/orchestrator/__tests__/retry-classifier.test.d.ts +0 -1
  347. package/dist/src/orchestrator/__tests__/retry-classifier.test.js +0 -112
  348. package/dist/src/orchestrator/__tests__/retry-stream.test.d.ts +0 -1
  349. package/dist/src/orchestrator/__tests__/retry-stream.test.js +0 -151
  350. package/dist/src/orchestrator/__tests__/route-feedback.test.d.ts +0 -1
  351. package/dist/src/orchestrator/__tests__/route-feedback.test.js +0 -47
  352. package/dist/src/orchestrator/__tests__/stream-runner.test.d.ts +0 -1
  353. package/dist/src/orchestrator/__tests__/stream-runner.test.js +0 -202
  354. package/dist/src/orchestrator/__tests__/sub-agent-model-tier.test.d.ts +0 -1
  355. package/dist/src/orchestrator/__tests__/sub-agent-model-tier.test.js +0 -45
  356. package/dist/src/orchestrator/__tests__/sub-session-delegation.test.d.ts +0 -1
  357. package/dist/src/orchestrator/__tests__/sub-session-delegation.test.js +0 -507
  358. package/dist/src/orchestrator/__tests__/usage-events-shape.test.d.ts +0 -8
  359. package/dist/src/orchestrator/__tests__/usage-events-shape.test.js +0 -58
  360. package/dist/src/orchestrator/__tests__/usage-normalizer-c1.test.d.ts +0 -21
  361. package/dist/src/orchestrator/__tests__/usage-normalizer-c1.test.js +0 -155
  362. package/dist/src/orchestrator/__tests__/usage-shape-threading.test.d.ts +0 -1
  363. package/dist/src/orchestrator/__tests__/usage-shape-threading.test.js +0 -98
  364. package/dist/src/orchestrator/__tests__/write-ahead.test.d.ts +0 -20
  365. package/dist/src/orchestrator/__tests__/write-ahead.test.js +0 -134
  366. package/dist/src/orchestrator/abort.test.d.ts +0 -1
  367. package/dist/src/orchestrator/abort.test.js +0 -34
  368. package/dist/src/orchestrator/agent.test.d.ts +0 -1
  369. package/dist/src/orchestrator/agent.test.js +0 -178
  370. package/dist/src/orchestrator/cleanup.test.d.ts +0 -1
  371. package/dist/src/orchestrator/cleanup.test.js +0 -67
  372. package/dist/src/orchestrator/compaction.test.d.ts +0 -1
  373. package/dist/src/orchestrator/compaction.test.js +0 -187
  374. package/dist/src/orchestrator/delegations.test.d.ts +0 -1
  375. package/dist/src/orchestrator/delegations.test.js +0 -107
  376. package/dist/src/orchestrator/grounding-check.test.d.ts +0 -1
  377. package/dist/src/orchestrator/grounding-check.test.js +0 -94
  378. package/dist/src/orchestrator/interrupted-turn.test.d.ts +0 -1
  379. package/dist/src/orchestrator/interrupted-turn.test.js +0 -34
  380. package/dist/src/orchestrator/message-seq.test.d.ts +0 -1
  381. package/dist/src/orchestrator/message-seq.test.js +0 -24
  382. package/dist/src/orchestrator/pending-calls.test.d.ts +0 -1
  383. package/dist/src/orchestrator/pending-calls.test.js +0 -188
  384. package/dist/src/orchestrator/provider-options-shape.spec.d.ts +0 -1
  385. package/dist/src/orchestrator/provider-options-shape.spec.js +0 -63
  386. package/dist/src/orchestrator/reasoning.test.d.ts +0 -1
  387. package/dist/src/orchestrator/reasoning.test.js +0 -101
  388. package/dist/src/orchestrator/repetition-detector.test.d.ts +0 -1
  389. package/dist/src/orchestrator/repetition-detector.test.js +0 -103
  390. package/dist/src/orchestrator/sandbox.test.d.ts +0 -1
  391. package/dist/src/orchestrator/sandbox.test.js +0 -99
  392. package/dist/src/orchestrator/scope-ceiling.test.d.ts +0 -13
  393. package/dist/src/orchestrator/scope-ceiling.test.js +0 -181
  394. package/dist/src/orchestrator/scope-reminder.test.d.ts +0 -15
  395. package/dist/src/orchestrator/scope-reminder.test.js +0 -225
  396. package/dist/src/orchestrator/session-experience.test.d.ts +0 -6
  397. package/dist/src/orchestrator/session-experience.test.js +0 -72
  398. package/dist/src/orchestrator/stall-rescue.test.d.ts +0 -1
  399. package/dist/src/orchestrator/stall-rescue.test.js +0 -117
  400. package/dist/src/orchestrator/stall-watchdog.test.d.ts +0 -1
  401. package/dist/src/orchestrator/stall-watchdog.test.js +0 -153
  402. package/dist/src/orchestrator/steer-inbox.test.d.ts +0 -1
  403. package/dist/src/orchestrator/steer-inbox.test.js +0 -33
  404. package/dist/src/orchestrator/sub-agent-cap.test.d.ts +0 -1
  405. package/dist/src/orchestrator/sub-agent-cap.test.js +0 -208
  406. package/dist/src/orchestrator/subagent-compactor.spec.d.ts +0 -1
  407. package/dist/src/orchestrator/subagent-compactor.spec.js +0 -636
  408. package/dist/src/orchestrator/text-tool-call-detector.test.d.ts +0 -1
  409. package/dist/src/orchestrator/text-tool-call-detector.test.js +0 -147
  410. package/dist/src/orchestrator/token-counter.test.d.ts +0 -1
  411. package/dist/src/orchestrator/token-counter.test.js +0 -57
  412. package/dist/src/orchestrator/tool-args-hash.test.d.ts +0 -1
  413. package/dist/src/orchestrator/tool-args-hash.test.js +0 -105
  414. package/dist/src/orchestrator/tool-args-repair.test.d.ts +0 -1
  415. package/dist/src/orchestrator/tool-args-repair.test.js +0 -136
  416. package/dist/src/orchestrator/tool-loop-askcard.test.d.ts +0 -1
  417. package/dist/src/orchestrator/tool-loop-askcard.test.js +0 -71
  418. package/dist/src/orchestrator/tool-loop-cap.test.d.ts +0 -1
  419. package/dist/src/orchestrator/tool-loop-cap.test.js +0 -176
  420. package/dist/src/orchestrator/tool-repetition-detector.test.d.ts +0 -1
  421. package/dist/src/orchestrator/tool-repetition-detector.test.js +0 -101
  422. package/dist/src/pil/__tests__/budget.test.d.ts +0 -1
  423. package/dist/src/pil/__tests__/budget.test.js +0 -33
  424. package/dist/src/pil/__tests__/clarity-gate.test.d.ts +0 -1
  425. package/dist/src/pil/__tests__/clarity-gate.test.js +0 -37
  426. package/dist/src/pil/__tests__/config.test.d.ts +0 -1
  427. package/dist/src/pil/__tests__/config.test.js +0 -57
  428. package/dist/src/pil/__tests__/discovery-cache.test.d.ts +0 -1
  429. package/dist/src/pil/__tests__/discovery-cache.test.js +0 -38
  430. package/dist/src/pil/__tests__/discovery-types.test.d.ts +0 -1
  431. package/dist/src/pil/__tests__/discovery-types.test.js +0 -65
  432. package/dist/src/pil/__tests__/discovery.test.d.ts +0 -1
  433. package/dist/src/pil/__tests__/discovery.test.js +0 -178
  434. package/dist/src/pil/__tests__/dual-run.test.d.ts +0 -1
  435. package/dist/src/pil/__tests__/dual-run.test.js +0 -51
  436. package/dist/src/pil/__tests__/layer1-intent-trace.test.d.ts +0 -1
  437. package/dist/src/pil/__tests__/layer1-intent-trace.test.js +0 -138
  438. package/dist/src/pil/__tests__/layer1-intent.test.d.ts +0 -1
  439. package/dist/src/pil/__tests__/layer1-intent.test.js +0 -329
  440. package/dist/src/pil/__tests__/layer15-context-scan.test.d.ts +0 -1
  441. package/dist/src/pil/__tests__/layer15-context-scan.test.js +0 -64
  442. package/dist/src/pil/__tests__/layer16-clarity.test.d.ts +0 -1
  443. package/dist/src/pil/__tests__/layer16-clarity.test.js +0 -72
  444. package/dist/src/pil/__tests__/layer17-feasibility.test.d.ts +0 -1
  445. package/dist/src/pil/__tests__/layer17-feasibility.test.js +0 -36
  446. package/dist/src/pil/__tests__/layer18-acceptance.test.d.ts +0 -1
  447. package/dist/src/pil/__tests__/layer18-acceptance.test.js +0 -18
  448. package/dist/src/pil/__tests__/layer2-personality.test.d.ts +0 -1
  449. package/dist/src/pil/__tests__/layer2-personality.test.js +0 -57
  450. package/dist/src/pil/__tests__/layer2_5-ponytail.test.d.ts +0 -1
  451. package/dist/src/pil/__tests__/layer2_5-ponytail.test.js +0 -53
  452. package/dist/src/pil/__tests__/layer3-ee-injection.test.d.ts +0 -1
  453. package/dist/src/pil/__tests__/layer3-ee-injection.test.js +0 -221
  454. package/dist/src/pil/__tests__/layer3-injected-chunk.test.d.ts +0 -1
  455. package/dist/src/pil/__tests__/layer3-injected-chunk.test.js +0 -134
  456. package/dist/src/pil/__tests__/layer4-gsd.test.d.ts +0 -1
  457. package/dist/src/pil/__tests__/layer4-gsd.test.js +0 -191
  458. package/dist/src/pil/__tests__/layer5-context.test.d.ts +0 -1
  459. package/dist/src/pil/__tests__/layer5-context.test.js +0 -175
  460. package/dist/src/pil/__tests__/layer6-output.test.d.ts +0 -1
  461. package/dist/src/pil/__tests__/layer6-output.test.js +0 -465
  462. package/dist/src/pil/__tests__/llm-classify.test.d.ts +0 -1
  463. package/dist/src/pil/__tests__/llm-classify.test.js +0 -275
  464. package/dist/src/pil/__tests__/native-capabilities-workbook.test.d.ts +0 -1
  465. package/dist/src/pil/__tests__/native-capabilities-workbook.test.js +0 -40
  466. package/dist/src/pil/__tests__/ollama-classify.test.d.ts +0 -1
  467. package/dist/src/pil/__tests__/ollama-classify.test.js +0 -68
  468. package/dist/src/pil/__tests__/orchestrator-integration.test.d.ts +0 -10
  469. package/dist/src/pil/__tests__/orchestrator-integration.test.js +0 -100
  470. package/dist/src/pil/__tests__/pipeline.test.d.ts +0 -1
  471. package/dist/src/pil/__tests__/pipeline.test.js +0 -188
  472. package/dist/src/pil/__tests__/renderer-coverage.test.d.ts +0 -7
  473. package/dist/src/pil/__tests__/renderer-coverage.test.js +0 -42
  474. package/dist/src/pil/__tests__/response-tools.test.d.ts +0 -1
  475. package/dist/src/pil/__tests__/response-tools.test.js +0 -242
  476. package/dist/src/pil/__tests__/schema.test.d.ts +0 -1
  477. package/dist/src/pil/__tests__/schema.test.js +0 -202
  478. package/dist/src/pil/__tests__/scoreComplexity.test.d.ts +0 -1
  479. package/dist/src/pil/__tests__/scoreComplexity.test.js +0 -119
  480. package/dist/src/pil/__tests__/scoreSufficiency.test.d.ts +0 -8
  481. package/dist/src/pil/__tests__/scoreSufficiency.test.js +0 -89
  482. package/dist/src/pil/__tests__/store.test.d.ts +0 -1
  483. package/dist/src/pil/__tests__/store.test.js +0 -44
  484. package/dist/src/pil/__tests__/surface-compaction-artifacts.test.d.ts +0 -1
  485. package/dist/src/pil/__tests__/surface-compaction-artifacts.test.js +0 -112
  486. package/dist/src/pil/__tests__/task-tier-map.test.d.ts +0 -1
  487. package/dist/src/pil/__tests__/task-tier-map.test.js +0 -33
  488. package/dist/src/pil/agent-operating-contract.test.d.ts +0 -1
  489. package/dist/src/pil/agent-operating-contract.test.js +0 -80
  490. package/dist/src/pil/cheap-model-playbook.test.d.ts +0 -1
  491. package/dist/src/pil/cheap-model-playbook.test.js +0 -160
  492. package/dist/src/pil/cheap-model-workbooks.test.d.ts +0 -1
  493. package/dist/src/pil/cheap-model-workbooks.test.js +0 -129
  494. package/dist/src/pil/layer1-intent.test.d.ts +0 -1
  495. package/dist/src/pil/layer1-intent.test.js +0 -764
  496. package/dist/src/pil/layer1_5-complexity-size.test.d.ts +0 -10
  497. package/dist/src/pil/layer1_5-complexity-size.test.js +0 -248
  498. package/dist/src/pil/session-experience-injection.test.d.ts +0 -6
  499. package/dist/src/pil/session-experience-injection.test.js +0 -79
  500. package/dist/src/pil/session-state.test.d.ts +0 -1
  501. package/dist/src/pil/session-state.test.js +0 -73
  502. package/dist/src/playbook/__tests__/directives.test.d.ts +0 -1
  503. package/dist/src/playbook/__tests__/directives.test.js +0 -115
  504. package/dist/src/product-loop/__tests__/artifact-io.test.d.ts +0 -1
  505. package/dist/src/product-loop/__tests__/artifact-io.test.js +0 -83
  506. package/dist/src/product-loop/__tests__/assumption-ledger.test.d.ts +0 -1
  507. package/dist/src/product-loop/__tests__/assumption-ledger.test.js +0 -261
  508. package/dist/src/product-loop/__tests__/backlog-builder.test.d.ts +0 -10
  509. package/dist/src/product-loop/__tests__/backlog-builder.test.js +0 -175
  510. package/dist/src/product-loop/__tests__/backlog-store.test.d.ts +0 -4
  511. package/dist/src/product-loop/__tests__/backlog-store.test.js +0 -96
  512. package/dist/src/product-loop/__tests__/cb2-retry-bonus.test.d.ts +0 -13
  513. package/dist/src/product-loop/__tests__/cb2-retry-bonus.test.js +0 -158
  514. package/dist/src/product-loop/__tests__/circuit-breakers-coverage.test.d.ts +0 -1
  515. package/dist/src/product-loop/__tests__/circuit-breakers-coverage.test.js +0 -67
  516. package/dist/src/product-loop/__tests__/circuit-breakers.test.d.ts +0 -1
  517. package/dist/src/product-loop/__tests__/circuit-breakers.test.js +0 -79
  518. package/dist/src/product-loop/__tests__/complexity-routing.spec.d.ts +0 -11
  519. package/dist/src/product-loop/__tests__/complexity-routing.spec.js +0 -240
  520. package/dist/src/product-loop/__tests__/context-policy.test.d.ts +0 -1
  521. package/dist/src/product-loop/__tests__/context-policy.test.js +0 -266
  522. package/dist/src/product-loop/__tests__/cost-preview.test.d.ts +0 -1
  523. package/dist/src/product-loop/__tests__/cost-preview.test.js +0 -111
  524. package/dist/src/product-loop/__tests__/cost-scoper.test.d.ts +0 -1
  525. package/dist/src/product-loop/__tests__/cost-scoper.test.js +0 -50
  526. package/dist/src/product-loop/__tests__/cross-run-memory.test.d.ts +0 -1
  527. package/dist/src/product-loop/__tests__/cross-run-memory.test.js +0 -168
  528. package/dist/src/product-loop/__tests__/design-output.spec.d.ts +0 -1
  529. package/dist/src/product-loop/__tests__/design-output.spec.js +0 -36
  530. package/dist/src/product-loop/__tests__/discover.test.d.ts +0 -1
  531. package/dist/src/product-loop/__tests__/discover.test.js +0 -83
  532. package/dist/src/product-loop/__tests__/discovery-context-format.test.d.ts +0 -13
  533. package/dist/src/product-loop/__tests__/discovery-context-format.test.js +0 -100
  534. package/dist/src/product-loop/__tests__/discovery-council-runner.test.d.ts +0 -1
  535. package/dist/src/product-loop/__tests__/discovery-council-runner.test.js +0 -13
  536. package/dist/src/product-loop/__tests__/discovery-detection.test.d.ts +0 -1
  537. package/dist/src/product-loop/__tests__/discovery-detection.test.js +0 -151
  538. package/dist/src/product-loop/__tests__/discovery-ecosystem.test.d.ts +0 -8
  539. package/dist/src/product-loop/__tests__/discovery-ecosystem.test.js +0 -209
  540. package/dist/src/product-loop/__tests__/discovery-integration.test.d.ts +0 -1
  541. package/dist/src/product-loop/__tests__/discovery-integration.test.js +0 -126
  542. package/dist/src/product-loop/__tests__/discovery-interview.test.d.ts +0 -1
  543. package/dist/src/product-loop/__tests__/discovery-interview.test.js +0 -394
  544. package/dist/src/product-loop/__tests__/discovery-migrations.test.d.ts +0 -1
  545. package/dist/src/product-loop/__tests__/discovery-migrations.test.js +0 -69
  546. package/dist/src/product-loop/__tests__/discovery-persistence.test.d.ts +0 -1
  547. package/dist/src/product-loop/__tests__/discovery-persistence.test.js +0 -146
  548. package/dist/src/product-loop/__tests__/discovery-prompt-parser.test.d.ts +0 -1
  549. package/dist/src/product-loop/__tests__/discovery-prompt-parser.test.js +0 -65
  550. package/dist/src/product-loop/__tests__/discovery-prompt-specificity.test.d.ts +0 -1
  551. package/dist/src/product-loop/__tests__/discovery-prompt-specificity.test.js +0 -55
  552. package/dist/src/product-loop/__tests__/discovery-recommender-ecosystem.test.d.ts +0 -9
  553. package/dist/src/product-loop/__tests__/discovery-recommender-ecosystem.test.js +0 -178
  554. package/dist/src/product-loop/__tests__/discovery-recommender.test.d.ts +0 -1
  555. package/dist/src/product-loop/__tests__/discovery-recommender.test.js +0 -316
  556. package/dist/src/product-loop/__tests__/discovery-schema.test.d.ts +0 -1
  557. package/dist/src/product-loop/__tests__/discovery-schema.test.js +0 -77
  558. package/dist/src/product-loop/__tests__/done-gate-coverage.test.d.ts +0 -1
  559. package/dist/src/product-loop/__tests__/done-gate-coverage.test.js +0 -135
  560. package/dist/src/product-loop/__tests__/done-gate.test.d.ts +0 -1
  561. package/dist/src/product-loop/__tests__/done-gate.test.js +0 -122
  562. package/dist/src/product-loop/__tests__/ee-extract-wiring.test.d.ts +0 -8
  563. package/dist/src/product-loop/__tests__/ee-extract-wiring.test.js +0 -186
  564. package/dist/src/product-loop/__tests__/extract-to-ee.test.d.ts +0 -1
  565. package/dist/src/product-loop/__tests__/extract-to-ee.test.js +0 -161
  566. package/dist/src/product-loop/__tests__/feedback-routing.test.d.ts +0 -1
  567. package/dist/src/product-loop/__tests__/feedback-routing.test.js +0 -83
  568. package/dist/src/product-loop/__tests__/gather-selectable-alts.test.d.ts +0 -15
  569. package/dist/src/product-loop/__tests__/gather-selectable-alts.test.js +0 -143
  570. package/dist/src/product-loop/__tests__/hot-path.spec.d.ts +0 -11
  571. package/dist/src/product-loop/__tests__/hot-path.spec.js +0 -146
  572. package/dist/src/product-loop/__tests__/integration.test.d.ts +0 -7
  573. package/dist/src/product-loop/__tests__/integration.test.js +0 -301
  574. package/dist/src/product-loop/__tests__/loop-driver-audit.test.d.ts +0 -1
  575. package/dist/src/product-loop/__tests__/loop-driver-audit.test.js +0 -269
  576. package/dist/src/product-loop/__tests__/loop-driver.test.d.ts +0 -1
  577. package/dist/src/product-loop/__tests__/loop-driver.test.js +0 -225
  578. package/dist/src/product-loop/__tests__/maintenance-task-synthesis.test.d.ts +0 -8
  579. package/dist/src/product-loop/__tests__/maintenance-task-synthesis.test.js +0 -67
  580. package/dist/src/product-loop/__tests__/phase-a1-a3-sprint-runner.test.d.ts +0 -13
  581. package/dist/src/product-loop/__tests__/phase-a1-a3-sprint-runner.test.js +0 -268
  582. package/dist/src/product-loop/__tests__/phase-a2-backlog-build.test.d.ts +0 -8
  583. package/dist/src/product-loop/__tests__/phase-a2-backlog-build.test.js +0 -162
  584. package/dist/src/product-loop/__tests__/phase-budget.test.d.ts +0 -1
  585. package/dist/src/product-loop/__tests__/phase-budget.test.js +0 -149
  586. package/dist/src/product-loop/__tests__/phase-orchestrator-integration.test.d.ts +0 -1
  587. package/dist/src/product-loop/__tests__/phase-orchestrator-integration.test.js +0 -138
  588. package/dist/src/product-loop/__tests__/phase-plan.test.d.ts +0 -1
  589. package/dist/src/product-loop/__tests__/phase-plan.test.js +0 -208
  590. package/dist/src/product-loop/__tests__/phase-rituals.test.d.ts +0 -1
  591. package/dist/src/product-loop/__tests__/phase-rituals.test.js +0 -174
  592. package/dist/src/product-loop/__tests__/phase-runner.test.d.ts +0 -1
  593. package/dist/src/product-loop/__tests__/phase-runner.test.js +0 -414
  594. package/dist/src/product-loop/__tests__/phase-tracker-bridge.test.d.ts +0 -1
  595. package/dist/src/product-loop/__tests__/phase-tracker-bridge.test.js +0 -67
  596. package/dist/src/product-loop/__tests__/pick-backend-stack.test.d.ts +0 -11
  597. package/dist/src/product-loop/__tests__/pick-backend-stack.test.js +0 -95
  598. package/dist/src/product-loop/__tests__/product-identity.test.d.ts +0 -1
  599. package/dist/src/product-loop/__tests__/product-identity.test.js +0 -40
  600. package/dist/src/product-loop/__tests__/progress-snapshot.test.d.ts +0 -8
  601. package/dist/src/product-loop/__tests__/progress-snapshot.test.js +0 -152
  602. package/dist/src/product-loop/__tests__/reality-anchor.test.d.ts +0 -1
  603. package/dist/src/product-loop/__tests__/reality-anchor.test.js +0 -49
  604. package/dist/src/product-loop/__tests__/repo-audit.test.d.ts +0 -1
  605. package/dist/src/product-loop/__tests__/repo-audit.test.js +0 -97
  606. package/dist/src/product-loop/__tests__/repo-brief.test.d.ts +0 -9
  607. package/dist/src/product-loop/__tests__/repo-brief.test.js +0 -132
  608. package/dist/src/product-loop/__tests__/role-memory.test.d.ts +0 -1
  609. package/dist/src/product-loop/__tests__/role-memory.test.js +0 -56
  610. package/dist/src/product-loop/__tests__/role-registry.test.d.ts +0 -1
  611. package/dist/src/product-loop/__tests__/role-registry.test.js +0 -222
  612. package/dist/src/product-loop/__tests__/role-routing-ee.test.d.ts +0 -1
  613. package/dist/src/product-loop/__tests__/role-routing-ee.test.js +0 -79
  614. package/dist/src/product-loop/__tests__/route-decision-emit.test.d.ts +0 -10
  615. package/dist/src/product-loop/__tests__/route-decision-emit.test.js +0 -222
  616. package/dist/src/product-loop/__tests__/seed-questions.test.d.ts +0 -1
  617. package/dist/src/product-loop/__tests__/seed-questions.test.js +0 -30
  618. package/dist/src/product-loop/__tests__/ship-polish.test.d.ts +0 -1
  619. package/dist/src/product-loop/__tests__/ship-polish.test.js +0 -96
  620. package/dist/src/product-loop/__tests__/sprint-planner.test.d.ts +0 -6
  621. package/dist/src/product-loop/__tests__/sprint-planner.test.js +0 -140
  622. package/dist/src/product-loop/__tests__/sprint-runner-backlog.test.d.ts +0 -8
  623. package/dist/src/product-loop/__tests__/sprint-runner-backlog.test.js +0 -221
  624. package/dist/src/product-loop/__tests__/sprint-runner-emit.test.d.ts +0 -14
  625. package/dist/src/product-loop/__tests__/sprint-runner-emit.test.js +0 -279
  626. package/dist/src/product-loop/__tests__/sprint-runner-phase-chunks.test.d.ts +0 -14
  627. package/dist/src/product-loop/__tests__/sprint-runner-phase-chunks.test.js +0 -193
  628. package/dist/src/product-loop/__tests__/sprint-runner.test.d.ts +0 -1
  629. package/dist/src/product-loop/__tests__/sprint-runner.test.js +0 -432
  630. package/dist/src/product-loop/__tests__/sprint-self-verify.test.d.ts +0 -8
  631. package/dist/src/product-loop/__tests__/sprint-self-verify.test.js +0 -73
  632. package/dist/src/product-loop/__tests__/sprint-store.test.d.ts +0 -7
  633. package/dist/src/product-loop/__tests__/sprint-store.test.js +0 -84
  634. package/dist/src/product-loop/__tests__/stakeholder-acl.test.d.ts +0 -1
  635. package/dist/src/product-loop/__tests__/stakeholder-acl.test.js +0 -83
  636. package/dist/src/product-loop/__tests__/state-md-ee-injections.test.d.ts +0 -8
  637. package/dist/src/product-loop/__tests__/state-md-ee-injections.test.js +0 -182
  638. package/dist/src/product-loop/__tests__/sufficiency-routing.spec.d.ts +0 -12
  639. package/dist/src/product-loop/__tests__/sufficiency-routing.spec.js +0 -140
  640. package/dist/src/product-loop/__tests__/typed-artifacts.test.d.ts +0 -1
  641. package/dist/src/product-loop/__tests__/typed-artifacts.test.js +0 -222
  642. package/dist/src/product-loop/__tests__/types.test.d.ts +0 -1
  643. package/dist/src/product-loop/__tests__/types.test.js +0 -79
  644. package/dist/src/product-loop/__tests__/verify-failure-threshold.test.d.ts +0 -9
  645. package/dist/src/product-loop/__tests__/verify-failure-threshold.test.js +0 -146
  646. package/dist/src/product-loop/__tests__/verify-failure-tracking.test.d.ts +0 -4
  647. package/dist/src/product-loop/__tests__/verify-failure-tracking.test.js +0 -122
  648. package/dist/src/product-loop/__tests__/verify-result.test.d.ts +0 -1
  649. package/dist/src/product-loop/__tests__/verify-result.test.js +0 -53
  650. package/dist/src/providers/__tests__/adapter-oauth-wiring.test.d.ts +0 -8
  651. package/dist/src/providers/__tests__/adapter-oauth-wiring.test.js +0 -125
  652. package/dist/src/providers/__tests__/capabilities-cosmetic.test.d.ts +0 -1
  653. package/dist/src/providers/__tests__/capabilities-cosmetic.test.js +0 -109
  654. package/dist/src/providers/__tests__/capabilities-flags.test.d.ts +0 -1
  655. package/dist/src/providers/__tests__/capabilities-flags.test.js +0 -145
  656. package/dist/src/providers/__tests__/capabilities-provider-options.test.d.ts +0 -1
  657. package/dist/src/providers/__tests__/capabilities-provider-options.test.js +0 -201
  658. package/dist/src/providers/__tests__/capabilities-sanitize.test.d.ts +0 -1
  659. package/dist/src/providers/__tests__/capabilities-sanitize.test.js +0 -60
  660. package/dist/src/providers/__tests__/capabilities.test.d.ts +0 -1
  661. package/dist/src/providers/__tests__/capabilities.test.js +0 -41
  662. package/dist/src/providers/__tests__/provider-coverage.test.d.ts +0 -1
  663. package/dist/src/providers/__tests__/provider-coverage.test.js +0 -45
  664. package/dist/src/providers/__tests__/reasoning-roundtrip.test.d.ts +0 -1
  665. package/dist/src/providers/__tests__/reasoning-roundtrip.test.js +0 -216
  666. package/dist/src/providers/__tests__/runtime-integration.test.d.ts +0 -1
  667. package/dist/src/providers/__tests__/runtime-integration.test.js +0 -93
  668. package/dist/src/providers/__tests__/runtime.test.d.ts +0 -1
  669. package/dist/src/providers/__tests__/runtime.test.js +0 -80
  670. package/dist/src/providers/__tests__/siliconflow-sse-repair.test.d.ts +0 -1
  671. package/dist/src/providers/__tests__/siliconflow-sse-repair.test.js +0 -267
  672. package/dist/src/providers/__tests__/strategies-registry.test.d.ts +0 -8
  673. package/dist/src/providers/__tests__/strategies-registry.test.js +0 -49
  674. package/dist/src/providers/__tests__/strategies-resolve.test.d.ts +0 -12
  675. package/dist/src/providers/__tests__/strategies-resolve.test.js +0 -128
  676. package/dist/src/providers/__tests__/wire-debug.test.d.ts +0 -1
  677. package/dist/src/providers/__tests__/wire-debug.test.js +0 -39
  678. package/dist/src/providers/adapter.test.d.ts +0 -1
  679. package/dist/src/providers/adapter.test.js +0 -19
  680. package/dist/src/providers/auth/__tests__/browser-flow.test.d.ts +0 -8
  681. package/dist/src/providers/auth/__tests__/browser-flow.test.js +0 -186
  682. package/dist/src/providers/auth/__tests__/device-flow.test.d.ts +0 -6
  683. package/dist/src/providers/auth/__tests__/device-flow.test.js +0 -219
  684. package/dist/src/providers/auth/__tests__/gemini-oauth.test.d.ts +0 -4
  685. package/dist/src/providers/auth/__tests__/gemini-oauth.test.js +0 -306
  686. package/dist/src/providers/auth/__tests__/grok-oauth.test.d.ts +0 -8
  687. package/dist/src/providers/auth/__tests__/grok-oauth.test.js +0 -236
  688. package/dist/src/providers/auth/__tests__/openai-oauth.test.d.ts +0 -7
  689. package/dist/src/providers/auth/__tests__/openai-oauth.test.js +0 -309
  690. package/dist/src/providers/auth/__tests__/token-store.test.d.ts +0 -7
  691. package/dist/src/providers/auth/__tests__/token-store.test.js +0 -125
  692. package/dist/src/providers/errors.test.d.ts +0 -1
  693. package/dist/src/providers/errors.test.js +0 -66
  694. package/dist/src/providers/gemini.test.d.ts +0 -1
  695. package/dist/src/providers/gemini.test.js +0 -37
  696. package/dist/src/providers/keychain.test.d.ts +0 -1
  697. package/dist/src/providers/keychain.test.js +0 -84
  698. package/dist/src/providers/mcp-vision-bridge.test.d.ts +0 -1
  699. package/dist/src/providers/mcp-vision-bridge.test.js +0 -381
  700. package/dist/src/providers/ollama.test.d.ts +0 -1
  701. package/dist/src/providers/ollama.test.js +0 -37
  702. package/dist/src/providers/openai-compatible.test.d.ts +0 -1
  703. package/dist/src/providers/openai-compatible.test.js +0 -53
  704. package/dist/src/providers/openai.test.d.ts +0 -1
  705. package/dist/src/providers/openai.test.js +0 -53
  706. package/dist/src/providers/pricing.test.d.ts +0 -1
  707. package/dist/src/providers/pricing.test.js +0 -81
  708. package/dist/src/providers/prompt-cache-key.spec.d.ts +0 -5
  709. package/dist/src/providers/prompt-cache-key.spec.js +0 -24
  710. package/dist/src/providers/runtime-mock.spec.d.ts +0 -8
  711. package/dist/src/providers/runtime-mock.spec.js +0 -69
  712. package/dist/src/providers/vision-proxy.test.d.ts +0 -1
  713. package/dist/src/providers/vision-proxy.test.js +0 -212
  714. package/dist/src/reporter/__tests__/acl-check.test.d.ts +0 -6
  715. package/dist/src/reporter/__tests__/acl-check.test.js +0 -59
  716. package/dist/src/reporter/__tests__/auto-fire.test.d.ts +0 -10
  717. package/dist/src/reporter/__tests__/auto-fire.test.js +0 -140
  718. package/dist/src/reporter/__tests__/budget.test.d.ts +0 -7
  719. package/dist/src/reporter/__tests__/budget.test.js +0 -60
  720. package/dist/src/reporter/__tests__/handlers.test.d.ts +0 -7
  721. package/dist/src/reporter/__tests__/handlers.test.js +0 -163
  722. package/dist/src/reporter/__tests__/query-router.test.d.ts +0 -6
  723. package/dist/src/reporter/__tests__/query-router.test.js +0 -90
  724. package/dist/src/router/__tests__/step-router.test.d.ts +0 -4
  725. package/dist/src/router/__tests__/step-router.test.js +0 -131
  726. package/dist/src/router/classifier/index.test.d.ts +0 -1
  727. package/dist/src/router/classifier/index.test.js +0 -29
  728. package/dist/src/router/classifier/regex.test.d.ts +0 -1
  729. package/dist/src/router/classifier/regex.test.js +0 -44
  730. package/dist/src/router/classifier/tree-sitter.test.d.ts +0 -1
  731. package/dist/src/router/classifier/tree-sitter.test.js +0 -23
  732. package/dist/src/router/cold.test.d.ts +0 -1
  733. package/dist/src/router/cold.test.js +0 -56
  734. package/dist/src/router/decide.test.d.ts +0 -1
  735. package/dist/src/router/decide.test.js +0 -198
  736. package/dist/src/router/health.test.d.ts +0 -1
  737. package/dist/src/router/health.test.js +0 -52
  738. package/dist/src/router/provider-sentinel.test.d.ts +0 -1
  739. package/dist/src/router/provider-sentinel.test.js +0 -20
  740. package/dist/src/router/role-override.test.d.ts +0 -1
  741. package/dist/src/router/role-override.test.js +0 -26
  742. package/dist/src/router/warm.test.d.ts +0 -1
  743. package/dist/src/router/warm.test.js +0 -202
  744. package/dist/src/scaffold/__tests__/continuation-prompt.test.d.ts +0 -4
  745. package/dist/src/scaffold/__tests__/continuation-prompt.test.js +0 -79
  746. package/dist/src/scaffold/__tests__/continue-as-council.spec.d.ts +0 -10
  747. package/dist/src/scaffold/__tests__/continue-as-council.spec.js +0 -102
  748. package/dist/src/scaffold/__tests__/dotnet-assembly-name.test.d.ts +0 -1
  749. package/dist/src/scaffold/__tests__/dotnet-assembly-name.test.js +0 -27
  750. package/dist/src/scaffold/__tests__/fe-scaffold-contents.test.d.ts +0 -1
  751. package/dist/src/scaffold/__tests__/fe-scaffold-contents.test.js +0 -106
  752. package/dist/src/scaffold/__tests__/init-new.smoke.spec.d.ts +0 -15
  753. package/dist/src/scaffold/__tests__/init-new.smoke.spec.js +0 -81
  754. package/dist/src/scaffold/__tests__/init-new.spec.d.ts +0 -5
  755. package/dist/src/scaffold/__tests__/init-new.spec.js +0 -378
  756. package/dist/src/scaffold/__tests__/install-bb-templates.spec.d.ts +0 -1
  757. package/dist/src/scaffold/__tests__/install-bb-templates.spec.js +0 -77
  758. package/dist/src/scaffold/__tests__/point-to-existing.spec.d.ts +0 -7
  759. package/dist/src/scaffold/__tests__/point-to-existing.spec.js +0 -94
  760. package/dist/src/self-qa/__tests__/agentic-context.test.d.ts +0 -1
  761. package/dist/src/self-qa/__tests__/agentic-context.test.js +0 -98
  762. package/dist/src/self-qa/__tests__/agentic-loop.test.d.ts +0 -1
  763. package/dist/src/self-qa/__tests__/agentic-loop.test.js +0 -62
  764. package/dist/src/self-qa/__tests__/delta-encoder.test.d.ts +0 -1
  765. package/dist/src/self-qa/__tests__/delta-encoder.test.js +0 -97
  766. package/dist/src/self-qa/__tests__/judge.test.d.ts +0 -1
  767. package/dist/src/self-qa/__tests__/judge.test.js +0 -131
  768. package/dist/src/self-qa/__tests__/scenario-planner.test.d.ts +0 -1
  769. package/dist/src/self-qa/__tests__/scenario-planner.test.js +0 -79
  770. package/dist/src/self-qa/__tests__/spec-emitter.test.d.ts +0 -1
  771. package/dist/src/self-qa/__tests__/spec-emitter.test.js +0 -62
  772. package/dist/src/storage/__tests__/hierarchical-session.test.d.ts +0 -1
  773. package/dist/src/storage/__tests__/hierarchical-session.test.js +0 -161
  774. package/dist/src/storage/__tests__/migrations.test.d.ts +0 -12
  775. package/dist/src/storage/__tests__/migrations.test.js +0 -357
  776. package/dist/src/storage/__tests__/sweep-stale-pending.test.d.ts +0 -10
  777. package/dist/src/storage/__tests__/sweep-stale-pending.test.js +0 -97
  778. package/dist/src/storage/__tests__/ui-interaction-log.test.d.ts +0 -7
  779. package/dist/src/storage/__tests__/ui-interaction-log.test.js +0 -127
  780. package/dist/src/storage/atomic-io.test.d.ts +0 -1
  781. package/dist/src/storage/atomic-io.test.js +0 -74
  782. package/dist/src/storage/config.test.d.ts +0 -1
  783. package/dist/src/storage/config.test.js +0 -29
  784. package/dist/src/storage/session-experience-store.test.d.ts +0 -5
  785. package/dist/src/storage/session-experience-store.test.js +0 -86
  786. package/dist/src/storage/tool-results.test.d.ts +0 -1
  787. package/dist/src/storage/tool-results.test.js +0 -48
  788. package/dist/src/storage/transcript-response-entry.test.d.ts +0 -1
  789. package/dist/src/storage/transcript-response-entry.test.js +0 -111
  790. package/dist/src/storage/transcript.test.d.ts +0 -1
  791. package/dist/src/storage/transcript.test.js +0 -22
  792. package/dist/src/storage/usage-cap.test.d.ts +0 -1
  793. package/dist/src/storage/usage-cap.test.js +0 -51
  794. package/dist/src/tools/__tests__/native-tools.test.d.ts +0 -1
  795. package/dist/src/tools/__tests__/native-tools.test.js +0 -59
  796. package/dist/src/tools/__tests__/vision-gate.test.d.ts +0 -1
  797. package/dist/src/tools/__tests__/vision-gate.test.js +0 -56
  798. package/dist/src/tools/bash-output-cache.test.d.ts +0 -1
  799. package/dist/src/tools/bash-output-cache.test.js +0 -89
  800. package/dist/src/tools/bash-output-integration.test.d.ts +0 -10
  801. package/dist/src/tools/bash-output-integration.test.js +0 -30
  802. package/dist/src/tools/bash.test.d.ts +0 -1
  803. package/dist/src/tools/bash.test.js +0 -90
  804. package/dist/src/tools/computer.test.d.ts +0 -1
  805. package/dist/src/tools/computer.test.js +0 -142
  806. package/dist/src/tools/file-tracker.test.d.ts +0 -1
  807. package/dist/src/tools/file-tracker.test.js +0 -77
  808. package/dist/src/tools/file.test.d.ts +0 -1
  809. package/dist/src/tools/file.test.js +0 -106
  810. package/dist/src/tools/git-safety.test.d.ts +0 -1
  811. package/dist/src/tools/git-safety.test.js +0 -155
  812. package/dist/src/tools/registry-bash-empty-command.test.d.ts +0 -13
  813. package/dist/src/tools/registry-bash-empty-command.test.js +0 -57
  814. package/dist/src/tools/registry-bash-footer.test.d.ts +0 -7
  815. package/dist/src/tools/registry-bash-footer.test.js +0 -82
  816. package/dist/src/tools/registry-ee-query.test.d.ts +0 -11
  817. package/dist/src/tools/registry-ee-query.test.js +0 -71
  818. package/dist/src/tools/registry-git-safety.test.d.ts +0 -7
  819. package/dist/src/tools/registry-git-safety.test.js +0 -103
  820. package/dist/src/tools/registry-session-repeat.test.d.ts +0 -12
  821. package/dist/src/tools/registry-session-repeat.test.js +0 -87
  822. package/dist/src/tools/registry.test.d.ts +0 -1
  823. package/dist/src/tools/registry.test.js +0 -34
  824. package/dist/src/tools/schedule.test.d.ts +0 -1
  825. package/dist/src/tools/schedule.test.js +0 -118
  826. package/dist/src/tools/todo-write-snapshot.test.d.ts +0 -1
  827. package/dist/src/tools/todo-write-snapshot.test.js +0 -43
  828. package/dist/src/ui/__tests__/markdown-render.test.d.ts +0 -1
  829. package/dist/src/ui/__tests__/markdown-render.test.js +0 -65
  830. package/dist/src/ui/__tests__/picker-providers.test.d.ts +0 -1
  831. package/dist/src/ui/__tests__/picker-providers.test.js +0 -31
  832. package/dist/src/ui/cards/__tests__/product-status-card.test.d.ts +0 -1
  833. package/dist/src/ui/cards/__tests__/product-status-card.test.js +0 -27
  834. package/dist/src/ui/components/__tests__/council-leader-bubble.test.d.ts +0 -1
  835. package/dist/src/ui/components/__tests__/council-leader-bubble.test.js +0 -14
  836. package/dist/src/ui/components/__tests__/council-message-bubble.test.d.ts +0 -1
  837. package/dist/src/ui/components/__tests__/council-message-bubble.test.js +0 -74
  838. package/dist/src/ui/components/__tests__/council-phase-timeline.test.d.ts +0 -1
  839. package/dist/src/ui/components/__tests__/council-phase-timeline.test.js +0 -51
  840. package/dist/src/ui/components/__tests__/council-placeholder-bubble.test.d.ts +0 -1
  841. package/dist/src/ui/components/__tests__/council-placeholder-bubble.test.js +0 -14
  842. package/dist/src/ui/components/__tests__/council-question-card.test.d.ts +0 -1
  843. package/dist/src/ui/components/__tests__/council-question-card.test.js +0 -121
  844. package/dist/src/ui/components/__tests__/council-synthesis-banner.test.d.ts +0 -1
  845. package/dist/src/ui/components/__tests__/council-synthesis-banner.test.js +0 -11
  846. package/dist/src/ui/components/__tests__/task-list-panel.test.d.ts +0 -1
  847. package/dist/src/ui/components/__tests__/task-list-panel.test.js +0 -31
  848. package/dist/src/ui/components/__tests__/use-pair-quote-buffer.test.d.ts +0 -1
  849. package/dist/src/ui/components/__tests__/use-pair-quote-buffer.test.js +0 -37
  850. package/dist/src/ui/slash/__tests__/clear.test.d.ts +0 -1
  851. package/dist/src/ui/slash/__tests__/clear.test.js +0 -58
  852. package/dist/src/ui/slash/__tests__/compact.test.d.ts +0 -1
  853. package/dist/src/ui/slash/__tests__/compact.test.js +0 -43
  854. package/dist/src/ui/slash/__tests__/cost.test.d.ts +0 -1
  855. package/dist/src/ui/slash/__tests__/cost.test.js +0 -54
  856. package/dist/src/ui/slash/__tests__/discuss.test.d.ts +0 -1
  857. package/dist/src/ui/slash/__tests__/discuss.test.js +0 -83
  858. package/dist/src/ui/slash/__tests__/execute.test.d.ts +0 -1
  859. package/dist/src/ui/slash/__tests__/execute.test.js +0 -71
  860. package/dist/src/ui/slash/__tests__/expand.test.d.ts +0 -1
  861. package/dist/src/ui/slash/__tests__/expand.test.js +0 -67
  862. package/dist/src/ui/slash/__tests__/ideal.test.d.ts +0 -1
  863. package/dist/src/ui/slash/__tests__/ideal.test.js +0 -158
  864. package/dist/src/ui/slash/__tests__/menu-parity.test.d.ts +0 -17
  865. package/dist/src/ui/slash/__tests__/menu-parity.test.js +0 -43
  866. package/dist/src/ui/slash/__tests__/optimize.test.d.ts +0 -1
  867. package/dist/src/ui/slash/__tests__/optimize.test.js +0 -130
  868. package/dist/src/ui/slash/__tests__/pin.test.d.ts +0 -1
  869. package/dist/src/ui/slash/__tests__/pin.test.js +0 -38
  870. package/dist/src/ui/slash/__tests__/plan.test.d.ts +0 -1
  871. package/dist/src/ui/slash/__tests__/plan.test.js +0 -82
  872. package/dist/src/ui/slash/__tests__/ponytail.test.d.ts +0 -1
  873. package/dist/src/ui/slash/__tests__/ponytail.test.js +0 -37
  874. package/dist/src/ui/slash/__tests__/status-render.test.d.ts +0 -7
  875. package/dist/src/ui/slash/__tests__/status-render.test.js +0 -77
  876. package/dist/src/ui/slash/route.test.d.ts +0 -1
  877. package/dist/src/ui/slash/route.test.js +0 -70
  878. package/dist/src/ui/status-bar/index.test.d.ts +0 -1
  879. package/dist/src/ui/status-bar/index.test.js +0 -139
  880. package/dist/src/ui/status-bar/store.test.d.ts +0 -1
  881. package/dist/src/ui/status-bar/store.test.js +0 -116
  882. package/dist/src/ui/status-bar/tier-badge.test.d.ts +0 -1
  883. package/dist/src/ui/status-bar/tier-badge.test.js +0 -34
  884. package/dist/src/ui/status-bar/usd-meter.test.d.ts +0 -1
  885. package/dist/src/ui/status-bar/usd-meter.test.js +0 -32
  886. package/dist/src/ui/utils/__tests__/format.test.d.ts +0 -1
  887. package/dist/src/ui/utils/__tests__/format.test.js +0 -50
  888. package/dist/src/ui/utils/__tests__/tools.test.d.ts +0 -1
  889. package/dist/src/ui/utils/__tests__/tools.test.js +0 -48
  890. package/dist/src/ui/utils/relaunch.test.d.ts +0 -1
  891. package/dist/src/ui/utils/relaunch.test.js +0 -133
  892. package/dist/src/ui/utils/text.test.d.ts +0 -1
  893. package/dist/src/ui/utils/text.test.js +0 -47
  894. package/dist/src/usage/__tests__/product-ledger.test.d.ts +0 -1
  895. package/dist/src/usage/__tests__/product-ledger.test.js +0 -60
  896. package/dist/src/usage/downgrade.test.d.ts +0 -1
  897. package/dist/src/usage/downgrade.test.js +0 -70
  898. package/dist/src/usage/estimator.test.d.ts +0 -1
  899. package/dist/src/usage/estimator.test.js +0 -38
  900. package/dist/src/usage/ledger.test.d.ts +0 -1
  901. package/dist/src/usage/ledger.test.js +0 -171
  902. package/dist/src/usage/midstream.test.d.ts +0 -1
  903. package/dist/src/usage/midstream.test.js +0 -47
  904. package/dist/src/usage/thresholds.test.d.ts +0 -1
  905. package/dist/src/usage/thresholds.test.js +0 -77
  906. package/dist/src/utils/__tests__/auto-council-settings.test.d.ts +0 -1
  907. package/dist/src/utils/__tests__/auto-council-settings.test.js +0 -41
  908. package/dist/src/utils/__tests__/compaction-caps.test.d.ts +0 -21
  909. package/dist/src/utils/__tests__/compaction-caps.test.js +0 -187
  910. package/dist/src/utils/__tests__/ee-logger.test.d.ts +0 -11
  911. package/dist/src/utils/__tests__/ee-logger.test.js +0 -165
  912. package/dist/src/utils/__tests__/file-lock.test.d.ts +0 -1
  913. package/dist/src/utils/__tests__/file-lock.test.js +0 -66
  914. package/dist/src/utils/__tests__/footprint-gitignore.test.d.ts +0 -1
  915. package/dist/src/utils/__tests__/footprint-gitignore.test.js +0 -50
  916. package/dist/src/utils/__tests__/llm-deadline-abort.test.d.ts +0 -1
  917. package/dist/src/utils/__tests__/llm-deadline-abort.test.js +0 -33
  918. package/dist/src/utils/__tests__/llm-deadline.test.d.ts +0 -1
  919. package/dist/src/utils/__tests__/llm-deadline.test.js +0 -68
  920. package/dist/src/utils/__tests__/logger.test.d.ts +0 -1
  921. package/dist/src/utils/__tests__/logger.test.js +0 -115
  922. package/dist/src/utils/__tests__/rate-limit.test.d.ts +0 -1
  923. package/dist/src/utils/__tests__/rate-limit.test.js +0 -38
  924. package/dist/src/utils/__tests__/settings-agent-first.test.d.ts +0 -1
  925. package/dist/src/utils/__tests__/settings-agent-first.test.js +0 -48
  926. package/dist/src/utils/__tests__/settings-disabled-models.test.d.ts +0 -7
  927. package/dist/src/utils/__tests__/settings-disabled-models.test.js +0 -99
  928. package/dist/src/utils/__tests__/settings-web-research.test.d.ts +0 -1
  929. package/dist/src/utils/__tests__/settings-web-research.test.js +0 -46
  930. package/dist/src/utils/__tests__/slugify.test.d.ts +0 -1
  931. package/dist/src/utils/__tests__/slugify.test.js +0 -37
  932. package/dist/src/utils/__tests__/visible-retry.test.d.ts +0 -1
  933. package/dist/src/utils/__tests__/visible-retry.test.js +0 -143
  934. package/dist/src/utils/install-manager.test.d.ts +0 -1
  935. package/dist/src/utils/install-manager.test.js +0 -169
  936. package/dist/src/utils/instructions.test.d.ts +0 -1
  937. package/dist/src/utils/instructions.test.js +0 -93
  938. package/dist/src/utils/open-url.test.d.ts +0 -1
  939. package/dist/src/utils/open-url.test.js +0 -86
  940. package/dist/src/utils/permission-mode.test.d.ts +0 -1
  941. package/dist/src/utils/permission-mode.test.js +0 -188
  942. package/dist/src/utils/redactor.test.d.ts +0 -1
  943. package/dist/src/utils/redactor.test.js +0 -84
  944. package/dist/src/utils/settings.test.d.ts +0 -1
  945. package/dist/src/utils/settings.test.js +0 -212
  946. package/dist/src/utils/shell.test.d.ts +0 -1
  947. package/dist/src/utils/shell.test.js +0 -97
  948. package/dist/src/utils/skills.test.d.ts +0 -1
  949. package/dist/src/utils/skills.test.js +0 -45
  950. package/dist/src/utils/subagent-display.test.d.ts +0 -1
  951. package/dist/src/utils/subagent-display.test.js +0 -21
  952. package/dist/src/utils/subagents-settings.test.d.ts +0 -1
  953. package/dist/src/utils/subagents-settings.test.js +0 -64
  954. package/dist/src/utils/telegram-audio-settings.test.d.ts +0 -1
  955. package/dist/src/utils/telegram-audio-settings.test.js +0 -39
  956. package/dist/src/utils/update-checker.test.d.ts +0 -1
  957. package/dist/src/utils/update-checker.test.js +0 -142
  958. package/dist/src/verify/__tests__/coverage-parsers.test.d.ts +0 -1
  959. package/dist/src/verify/__tests__/coverage-parsers.test.js +0 -69
  960. package/dist/src/verify/__tests__/dotnet-recipe.test.d.ts +0 -10
  961. package/dist/src/verify/__tests__/dotnet-recipe.test.js +0 -70
  962. package/dist/src/verify/checkpoint.test.d.ts +0 -1
  963. package/dist/src/verify/checkpoint.test.js +0 -160
  964. package/dist/src/verify/entrypoint.test.d.ts +0 -1
  965. package/dist/src/verify/entrypoint.test.js +0 -233
  966. package/dist/src/verify/environment.test.d.ts +0 -1
  967. package/dist/src/verify/environment.test.js +0 -94
  968. package/dist/src/verify/orchestrator.test.d.ts +0 -1
  969. package/dist/src/verify/orchestrator.test.js +0 -126
  970. package/dist/src/verify/runtime-prep.test.d.ts +0 -1
  971. package/dist/src/verify/runtime-prep.test.js +0 -38
@@ -1,54 +0,0 @@
1
- import { describe, expect, it } from "vitest";
2
- import { buildClarifyOptions } from "../clarifier.js";
3
- describe("buildClarifyOptions", () => {
4
- it("converts non-empty suggestions into choice options", () => {
5
- const { options } = buildClarifyOptions(["A", "B", "C"]);
6
- const choices = options.filter((o) => o.kind === "choice");
7
- expect(choices.map((o) => o.label)).toEqual(["A", "B", "C"]);
8
- expect(choices.map((o) => o.value)).toEqual(["A", "B", "C"]);
9
- });
10
- it("appends Type something + Chat about this escape options", () => {
11
- const { options } = buildClarifyOptions(["Pick me"]);
12
- const kinds = options.map((o) => o.kind);
13
- expect(kinds).toEqual(["choice", "freetext", "chat"]);
14
- expect(options[1].label).toBe("Type something");
15
- expect(options[2].label).toBe("Chat about this");
16
- });
17
- it("filters blank or non-string suggestions", () => {
18
- const { options } = buildClarifyOptions(["", " ", "real"]);
19
- const choices = options.filter((o) => o.kind === "choice");
20
- expect(choices.map((o) => o.label)).toEqual(["real"]);
21
- });
22
- it("works with undefined suggestions (only escape hatches remain)", () => {
23
- const { options } = buildClarifyOptions(undefined);
24
- expect(options.length).toBe(2);
25
- expect(options[0].kind).toBe("freetext");
26
- expect(options[1].kind).toBe("chat");
27
- });
28
- it("trims whitespace from labels and values", () => {
29
- const { options } = buildClarifyOptions([" spaced "]);
30
- expect(options[0].label).toBe("spaced");
31
- expect(options[0].value).toBe("spaced");
32
- });
33
- it("omits defaultIndex when no recommendation provided", () => {
34
- const { defaultIndex } = buildClarifyOptions(["A", "B"]);
35
- expect(defaultIndex).toBeUndefined();
36
- });
37
- it("omits defaultIndex when recommended does not match any suggestion", () => {
38
- const { defaultIndex } = buildClarifyOptions(["A", "B"], "C");
39
- expect(defaultIndex).toBeUndefined();
40
- });
41
- it("omits defaultIndex when recommended is blank", () => {
42
- const { defaultIndex } = buildClarifyOptions(["A", "B"], " ");
43
- expect(defaultIndex).toBeUndefined();
44
- });
45
- it("sets defaultIndex to recommended position when it matches a suggestion", () => {
46
- const { defaultIndex } = buildClarifyOptions(["A", "B", "C"], "B");
47
- expect(defaultIndex).toBe(1);
48
- });
49
- it("matches recommended case-insensitively", () => {
50
- const { defaultIndex } = buildClarifyOptions(["Postgres", "MySQL"], "postgres");
51
- expect(defaultIndex).toBe(0);
52
- });
53
- });
54
- //# sourceMappingURL=clarifier-options.test.js.map
@@ -1,265 +0,0 @@
1
- import { describe, expect, it, vi } from "vitest";
2
- import { judgeReadiness, MAX_CLARIFY_ROUNDS, runClarification } from "../clarifier.js";
3
- // ---------------------------------------------------------------------------
4
- // Helpers
5
- // ---------------------------------------------------------------------------
6
- /** Drain the generator and return the final ClarifiedSpec. */
7
- async function _drain(gen) {
8
- let result;
9
- let done = false;
10
- while (!done) {
11
- const next = await gen.next();
12
- if (next.done) {
13
- result = next.value;
14
- done = true;
15
- }
16
- }
17
- return result;
18
- }
19
- /** Count "clarification_round active" phase events emitted by the generator. */
20
- async function countRounds(gen) {
21
- let rounds = 0;
22
- let spec;
23
- let done = false;
24
- while (!done) {
25
- const next = await gen.next();
26
- if (next.done) {
27
- spec = next.value;
28
- done = true;
29
- }
30
- else if (next.value.type === "council_phase" &&
31
- next.value.councilPhase?.kind === "clarification_round" &&
32
- next.value.councilPhase?.state === "active") {
33
- rounds++;
34
- }
35
- }
36
- return { rounds, spec: spec };
37
- }
38
- // ---------------------------------------------------------------------------
39
- // Shared mock responder — always answers "some answer"
40
- // ---------------------------------------------------------------------------
41
- const alwaysAnswer = vi.fn().mockResolvedValue("some answer");
42
- // ---------------------------------------------------------------------------
43
- // Test A: judgeReadiness returns ready=true after round 1 → loop exits early
44
- // ---------------------------------------------------------------------------
45
- describe("P5 ready-gate: Test A — judge ready after round 1", () => {
46
- it("exits loop after 1 round and populates spec.ready + spec.confidenceScore", async () => {
47
- // First call: returns a clarification question
48
- // Second call (judgeReadiness): returns ready=true
49
- // Spec synthesis call: returns a valid spec JSON
50
- let callCount = 0;
51
- const mockLLM = {
52
- generate: vi.fn().mockImplementation(async () => {
53
- callCount++;
54
- if (callCount === 1) {
55
- // clarify_questions round 1
56
- return JSON.stringify([{ question: "What is the target platform?", why: "Scope clarity", isRequired: true }]);
57
- }
58
- if (callCount === 2) {
59
- // judgeReadiness verdict — ready after round 1
60
- return JSON.stringify({ ready: true, confidence: 0.9, gaps: [] });
61
- }
62
- // spec_synthesis
63
- return JSON.stringify({
64
- problemStatement: "Build a todo app",
65
- constraints: ["web only"],
66
- successCriteria: ["User can add tasks", "User can mark done"],
67
- scope: "Single user, local storage",
68
- });
69
- }),
70
- };
71
- const gen = runClarification("Build a todo app", "leader-model", "", alwaysAnswer, mockLLM);
72
- const { rounds, spec } = await countRounds(gen);
73
- expect(rounds).toBe(1);
74
- expect(spec.ready).toBe(true);
75
- expect(spec.confidenceScore).toBeGreaterThan(0);
76
- expect(spec.clarifyHistory).toHaveLength(1);
77
- expect(spec.remainingGaps).toEqual([]);
78
- });
79
- });
80
- // ---------------------------------------------------------------------------
81
- // Test B: judge returns ready=false for 3 rounds, then ready=true on round 4
82
- // ---------------------------------------------------------------------------
83
- describe("P5 ready-gate: Test B — judge ready at round 4", () => {
84
- it("runs 4 rounds and history has 4 entries", async () => {
85
- let callCount = 0;
86
- const mockLLM = {
87
- generate: vi.fn().mockImplementation(async () => {
88
- callCount++;
89
- // Pattern: clarify_q → judge → clarify_q → judge → ... (interleaved)
90
- // Calls: 1=q1, 2=judge1(not ready), 3=q2, 4=judge2(not ready),
91
- // 5=q3, 6=judge3(not ready), 7=q4, 8=judge4(ready), 9=synthesis
92
- const judgeCallNums = [2, 4, 6, 8];
93
- if (judgeCallNums.includes(callCount)) {
94
- const isLastJudge = callCount === 8;
95
- return JSON.stringify({
96
- ready: isLastJudge,
97
- confidence: isLastJudge ? 0.85 : 0.4,
98
- gaps: isLastJudge ? [] : ["Target platform not specified.", "Authentication method unclear."],
99
- });
100
- }
101
- if (callCount === 9) {
102
- // spec synthesis
103
- return JSON.stringify({
104
- problemStatement: "Build a todo app",
105
- constraints: [],
106
- successCriteria: ["Tasks can be added"],
107
- scope: "Web app",
108
- });
109
- }
110
- // clarify_questions
111
- return JSON.stringify([{ question: `Question ${callCount}`, why: "Gap", isRequired: true }]);
112
- }),
113
- };
114
- const gen = runClarification("Build a todo app", "leader-model", "", alwaysAnswer, mockLLM);
115
- const { rounds, spec } = await countRounds(gen);
116
- expect(rounds).toBe(4);
117
- expect(spec.clarifyHistory).toHaveLength(4);
118
- expect(spec.ready).toBe(true);
119
- });
120
- });
121
- // ---------------------------------------------------------------------------
122
- // Test C: judge always returns ready=false → loop caps at MAX_CLARIFY_ROUNDS
123
- // ---------------------------------------------------------------------------
124
- describe("P5 ready-gate: Test C — hard cap at MAX_CLARIFY_ROUNDS", () => {
125
- it(`caps at ${MAX_CLARIFY_ROUNDS} rounds, spec.ready=false, remainingGaps non-empty`, async () => {
126
- const mockLLM = {
127
- generate: vi.fn().mockImplementation(async (_modelId, system) => {
128
- // Distinguish clarify prompt (system contains "clarification questions")
129
- // from judge prompt (system contains "debate facilitator")
130
- // from synthesis prompt (system contains "synthesizing")
131
- if (system.includes("debate facilitator")) {
132
- return JSON.stringify({ ready: false, confidence: 0.2, gaps: ["Gap A.", "Gap B."] });
133
- }
134
- if (system.includes("synthesizing") || system.includes("extracting")) {
135
- return JSON.stringify({
136
- problemStatement: "Build something",
137
- constraints: [],
138
- successCriteria: ["Something works"],
139
- scope: "TBD",
140
- });
141
- }
142
- // clarify_questions
143
- return JSON.stringify([{ question: "Some question?", why: "Gap", isRequired: true }]);
144
- }),
145
- };
146
- const gen = runClarification("Build something vague", "leader-model", "", alwaysAnswer, mockLLM);
147
- const { rounds, spec } = await countRounds(gen);
148
- expect(rounds).toBe(MAX_CLARIFY_ROUNDS);
149
- expect(spec.ready).toBe(false);
150
- expect(spec.remainingGaps?.length ?? 0).toBeGreaterThan(0);
151
- });
152
- });
153
- // ---------------------------------------------------------------------------
154
- // Test E: clarifier asks ZERO questions → spec.ready=true, judge NOT called
155
- // (de-robotized prompt now commonly returns [] — the gate must reflect that,
156
- // not stay at its not-ready default, and must not pay for a judge LLM call.)
157
- // ---------------------------------------------------------------------------
158
- describe("P5 ready-gate: Test E — zero questions ⇒ ready without a judge call", () => {
159
- it("marks spec.ready=true and skips the readiness judge when the clarifier asks nothing", async () => {
160
- let callCount = 0;
161
- const generate = vi.fn().mockImplementation(async () => {
162
- callCount++;
163
- if (callCount === 1)
164
- return "[]"; // clarify round 0: nothing to ask
165
- // spec synthesis (if reached) — no judge call should occur on this path
166
- return JSON.stringify({
167
- problemStatement: "Add a retry to the EE bridge",
168
- constraints: [],
169
- successCriteria: ["Retries once on transient failure"],
170
- scope: "EE bridge only",
171
- });
172
- });
173
- const mockLLM = { generate };
174
- const gen = runClarification("Add a retry to the EE bridge", "leader-model", "## Current Project\nTypeScript CLI", alwaysAnswer, mockLLM);
175
- const spec = await _drain(gen);
176
- expect(spec.ready).toBe(true);
177
- expect(spec.confidenceScore).toBe(1);
178
- expect(spec.remainingGaps).toEqual([]);
179
- expect(spec.clarifyHistory).toEqual([]);
180
- // The readiness judge ("debate facilitator" system prompt) must NOT fire.
181
- const judgeCalled = generate.mock.calls.some(([, system]) => typeof system === "string" && system.includes("debate facilitator"));
182
- expect(judgeCalled).toBe(false);
183
- });
184
- });
185
- // ---------------------------------------------------------------------------
186
- // Test D: judgeReadiness unit tests
187
- // ---------------------------------------------------------------------------
188
- describe("P5 ready-gate: Test D — judgeReadiness unit", () => {
189
- const baseSpec = {
190
- problemStatement: "Build a REST API for a todo app",
191
- constraints: ["TypeScript only"],
192
- successCriteria: ["CRUD endpoints work", "Auth required"],
193
- scope: "Backend only, no UI",
194
- rawQA: [],
195
- };
196
- it("returns ready=true when LLM says so with detailed Q&A", async () => {
197
- const mockLLM = {
198
- generate: vi.fn().mockResolvedValue(JSON.stringify({ ready: true, confidence: 0.95, gaps: [] })),
199
- };
200
- const qa = [
201
- { question: "What platform?", answer: "Web — Node.js backend" },
202
- { question: "Auth method?", answer: "JWT" },
203
- { question: "Database?", answer: "PostgreSQL" },
204
- ];
205
- const result = await judgeReadiness(baseSpec, "Build a REST API", qa, mockLLM, "leader-model", false);
206
- expect(result.ready).toBe(true);
207
- expect(result.confidence).toBeGreaterThan(0.8);
208
- expect(result.gaps).toHaveLength(0);
209
- });
210
- it("returns ready=false when topic only, no Q&A", async () => {
211
- const mockLLM = {
212
- generate: vi.fn().mockResolvedValue(JSON.stringify({
213
- ready: false,
214
- confidence: 0.15,
215
- gaps: ["Deployment target not specified.", "Auth approach unknown."],
216
- })),
217
- };
218
- const partialSpec = {
219
- problemStatement: "todo app",
220
- constraints: [],
221
- successCriteria: [],
222
- scope: "",
223
- rawQA: [],
224
- };
225
- const result = await judgeReadiness(partialSpec, "todo app", [], mockLLM, "leader-model", false);
226
- expect(result.ready).toBe(false);
227
- expect(result.gaps.length).toBeGreaterThan(0);
228
- });
229
- it("clamps confidence to [0, 1]", async () => {
230
- const mockLLM = {
231
- generate: vi
232
- .fn()
233
- .mockResolvedValue(JSON.stringify({ ready: false, confidence: 1.8, gaps: ["Something missing."] })),
234
- };
235
- const result = await judgeReadiness(baseSpec, "topic", [], mockLLM, "model", false);
236
- expect(result.confidence).toBeLessThanOrEqual(1);
237
- expect(result.confidence).toBeGreaterThanOrEqual(0);
238
- });
239
- it("forces gaps=[] when ready=true regardless of LLM output", async () => {
240
- const mockLLM = {
241
- generate: vi.fn().mockResolvedValue(
242
- // LLM contradicts itself: ready=true but also provides gaps
243
- JSON.stringify({ ready: true, confidence: 0.9, gaps: ["Some gap that shouldn't be here."] })),
244
- };
245
- const result = await judgeReadiness(baseSpec, "topic", [], mockLLM, "model", false);
246
- expect(result.ready).toBe(true);
247
- expect(result.gaps).toHaveLength(0);
248
- });
249
- it("handles LLM failure gracefully — returns ready=false, confidence=0", async () => {
250
- const mockLLM = {
251
- generate: vi.fn().mockRejectedValue(new Error("network error")),
252
- };
253
- const result = await judgeReadiness(baseSpec, "topic", [], mockLLM, "model", false);
254
- expect(result.ready).toBe(false);
255
- expect(result.confidence).toBe(0);
256
- });
257
- it("handles malformed JSON from LLM — returns ready=false", async () => {
258
- const mockLLM = {
259
- generate: vi.fn().mockResolvedValue("not json at all"),
260
- };
261
- const result = await judgeReadiness(baseSpec, "topic", [], mockLLM, "model", false);
262
- expect(result.ready).toBe(false);
263
- });
264
- });
265
- //# sourceMappingURL=clarifier-ready-gate.test.js.map
@@ -1 +0,0 @@
1
- export {};
@@ -1,49 +0,0 @@
1
- import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
2
- import * as registry from "../../models/registry.js";
3
- import * as runtime from "../../providers/runtime.js";
4
- import { pickCouncilTaskModel } from "../leader.js";
5
- const catalog = [
6
- { id: "premium-x", provider: "anthropic", tier: "premium" },
7
- { id: "balanced-x", provider: "anthropic", tier: "balanced" },
8
- { id: "fast-x", provider: "anthropic", tier: "fast" },
9
- { id: "fast-y", provider: "openai", tier: "fast" },
10
- ];
11
- describe("pickCouncilTaskModel", () => {
12
- beforeEach(() => {
13
- vi.spyOn(registry, "getModelInfo").mockImplementation((id) => catalog.find((m) => m.id === id));
14
- vi.spyOn(registry, "getModelByTier").mockImplementation((tier, prefer) => {
15
- const onPrefer = catalog.find((m) => m.tier === tier && m.provider === prefer);
16
- return onPrefer ?? catalog.find((m) => m.tier === tier);
17
- });
18
- vi.spyOn(runtime, "detectProviderForModel").mockImplementation((id) => {
19
- const m = catalog.find((x) => x.id === id);
20
- return (m?.provider ?? "anthropic");
21
- });
22
- });
23
- afterEach(() => {
24
- vi.restoreAllMocks();
25
- });
26
- it("returns leader unchanged when costAware=false", () => {
27
- expect(pickCouncilTaskModel("research_need", "premium-x", false)).toBe("premium-x");
28
- });
29
- it("downshifts to fast tier for trivial classifier (research_need)", () => {
30
- expect(pickCouncilTaskModel("research_need", "premium-x", true)).toBe("fast-x");
31
- });
32
- it("downshifts to balanced tier for evaluate_round", () => {
33
- expect(pickCouncilTaskModel("evaluate_round", "premium-x", true)).toBe("balanced-x");
34
- });
35
- it("does not switch providers (leader anthropic, no anthropic-fast → falls back)", () => {
36
- vi.spyOn(registry, "getModelByTier").mockImplementation((tier) => tier === "fast" ? catalog.find((m) => m.id === "fast-y") : undefined);
37
- // fast-y is openai — must NOT be selected; fall back to leader.
38
- expect(pickCouncilTaskModel("research_need", "premium-x", true)).toBe("premium-x");
39
- });
40
- it("does not downshift when leader is already at or below target tier", () => {
41
- expect(pickCouncilTaskModel("evaluate_round", "balanced-x", true)).toBe("balanced-x");
42
- expect(pickCouncilTaskModel("evaluate_round", "fast-x", true)).toBe("fast-x");
43
- });
44
- it("falls back to leader when target tier has no model anywhere", () => {
45
- vi.spyOn(registry, "getModelByTier").mockReturnValue(undefined);
46
- expect(pickCouncilTaskModel("research_need", "premium-x", true)).toBe("premium-x");
47
- });
48
- });
49
- //# sourceMappingURL=cost-aware.test.js.map
@@ -1,130 +0,0 @@
1
- /**
2
- * council-turn-length emit contract (G2-b).
3
- *
4
- * Drives the REAL `runDebate` generator with a recording CouncilLLM and a
5
- * capturing `globalThis.__muonroiAgentRuntime`, then asserts the observe-only
6
- * `council-turn-length` harness event fires for each fully-assembled speaker
7
- * turn — opening statements (round 0) and discussion turns (round 1+) — carrying
8
- * the right charCount / wordCount / round / model / correlationId.
9
- *
10
- * This exercises the production emit path in src/council/debate.ts end-to-end
11
- * (not a mocked re-implementation). The MCP harness tool surface only exposes
12
- * toast/stream.delta via tui_last_event, so this generator-level drive is the
13
- * faithful wire-level proof that the event fires during a real council run.
14
- */
15
- import { afterEach, beforeEach, describe, expect, it } from "vitest";
16
- import { runDebate } from "../debate.js";
17
- const OPENING = "Opening alpha beta gamma."; // 25 chars, 4 words
18
- const ROUND = "Round response one two three."; // round-turn text
19
- function recordingLlm() {
20
- return {
21
- // openingWithRetry + leader-eval + summaries all go through generate. Opening
22
- // statements use the returned text verbatim → that drives the round-0 emit.
23
- generate: async () => OPENING,
24
- // debateWithRetry (discussion turns) is the ONLY caller of debate → drives the
25
- // round-1+ emit with a known, non-failure string.
26
- debate: async () => ({ text: ROUND, toolCalls: [] }),
27
- research: async () => "findings",
28
- };
29
- }
30
- function makeParticipants() {
31
- return [
32
- { role: "architect", model: "model-arch", position: "", stance: { name: "architect", lens: "design" } },
33
- { role: "qa", model: "model-qa", position: "", stance: { name: "qa", lens: "risk" } },
34
- ];
35
- }
36
- function makeSpec() {
37
- return {
38
- problemStatement: "Decide X vs Y for a small service.",
39
- constraints: [],
40
- successCriteria: [],
41
- scope: "",
42
- rawQA: [],
43
- };
44
- }
45
- function makeConfig(participants) {
46
- return {
47
- topic: "X vs Y",
48
- conversationContext: "",
49
- leaderModelId: "model-leader",
50
- participants,
51
- debatePlan: {
52
- intentSummary: "Pick the better option.",
53
- stances: [
54
- { name: "architect", lens: "design" },
55
- { name: "qa", lens: "risk" },
56
- ],
57
- outputShape: {
58
- kind: "decision",
59
- sections: [{ key: "rec", heading: "Recommendation", shape: "list" }],
60
- guardrails: [],
61
- },
62
- plannedRounds: 1,
63
- },
64
- // Skip research so the flow goes straight to opening statements deterministically.
65
- researchSkipOverride: true,
66
- runId: "sess-turnlen-test",
67
- };
68
- }
69
- describe("council-turn-length emit (real runDebate)", () => {
70
- let captured;
71
- let prevRuntime;
72
- beforeEach(() => {
73
- captured = [];
74
- const g = globalThis;
75
- prevRuntime = g.__muonroiAgentRuntime;
76
- g.__muonroiAgentRuntime = { emitEvent: (e) => captured.push(e) };
77
- });
78
- afterEach(() => {
79
- globalThis.__muonroiAgentRuntime = prevRuntime;
80
- });
81
- function turnLengthEvents() {
82
- return captured.filter((e) => e.t === "event" && e.kind === "council-turn-length");
83
- }
84
- it("emits a round-0 event per opening speaker with correct counts + correlationId", async () => {
85
- const participants = makeParticipants();
86
- const gen = runDebate(makeSpec(), makeConfig(participants), recordingLlm());
87
- let step = await gen.next();
88
- while (!step.done)
89
- step = await gen.next();
90
- const opening = turnLengthEvents().filter((e) => e.round === 0);
91
- // One opening statement per participant.
92
- expect(opening.length).toBe(2);
93
- for (const e of opening) {
94
- expect(e.charCount).toBe(OPENING.length);
95
- expect(e.wordCount).toBe(4);
96
- expect(e.correlationId).toBe("sess-turnlen-test");
97
- expect(typeof e.model).toBe("string");
98
- expect(e.model.length).toBeGreaterThan(0);
99
- }
100
- // Roles are the participant stance names / roles.
101
- const roles = opening.map((e) => e.role);
102
- expect(roles).toContain("architect");
103
- expect(roles).toContain("qa");
104
- });
105
- it("emits round-1 discussion-turn events with the discussion text's counts", async () => {
106
- const gen = runDebate(makeSpec(), makeConfig(makeParticipants()), recordingLlm());
107
- let step = await gen.next();
108
- while (!step.done)
109
- step = await gen.next();
110
- const round1 = turnLengthEvents().filter((e) => e.round === 1);
111
- expect(round1.length).toBeGreaterThanOrEqual(1);
112
- for (const e of round1) {
113
- expect(e.charCount).toBe(ROUND.trim().length);
114
- expect(e.wordCount).toBe(ROUND.trim().split(/\s+/).filter(Boolean).length);
115
- expect(e.correlationId).toBe("sess-turnlen-test");
116
- }
117
- });
118
- it("does not emit when no agent runtime is installed (normal user mode)", async () => {
119
- globalThis.__muonroiAgentRuntime = undefined;
120
- const localCaptured = [];
121
- // Re-install a capturer AFTER clearing to prove the helper truly no-ops when
122
- // the runtime is absent: here it's absent, so localCaptured stays empty.
123
- const gen = runDebate(makeSpec(), makeConfig(makeParticipants()), recordingLlm());
124
- let step = await gen.next();
125
- while (!step.done)
126
- step = await gen.next();
127
- expect(localCaptured.length).toBe(0);
128
- });
129
- });
130
- //# sourceMappingURL=council-turn-length-emit.test.js.map