muonroi-cli 1.8.1 → 1.8.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (946) hide show
  1. package/LICENSE +5 -17
  2. package/README.md +20 -9
  3. package/dist/src/generated/version.d.ts +1 -1
  4. package/dist/src/generated/version.js +1 -1
  5. package/dist/src/mcp/setup-guide-text.d.ts +1 -1
  6. package/dist/src/mcp/setup-guide-text.js +8 -5
  7. package/dist/src/orchestrator/orchestrator.js +22 -13
  8. package/dist/src/orchestrator/tool-engine.d.ts +4 -0
  9. package/dist/src/orchestrator/tool-engine.js +49 -0
  10. package/dist/src/ui/use-app-logic.js +0 -0
  11. package/dist/src/utils/install-manager.d.ts +1 -0
  12. package/dist/src/utils/install-manager.js +41 -10
  13. package/dist/src/utils/update-checker.js +12 -2
  14. package/package.json +9 -2
  15. package/dist/src/__test-helpers__/catalog-fixtures.d.ts +0 -22
  16. package/dist/src/__test-helpers__/catalog-fixtures.js +0 -55
  17. package/dist/src/__test-stubs__/ee-server.d.ts +0 -27
  18. package/dist/src/__test-stubs__/ee-server.js +0 -138
  19. package/dist/src/__test-stubs__/vitest-setup.d.ts +0 -1
  20. package/dist/src/__test-stubs__/vitest-setup.js +0 -38
  21. package/dist/src/__tests__/council/bubble-layout.test.d.ts +0 -1
  22. package/dist/src/__tests__/council/bubble-layout.test.js +0 -39
  23. package/dist/src/__tests__/council/code-block-truncate.test.d.ts +0 -1
  24. package/dist/src/__tests__/council/code-block-truncate.test.js +0 -45
  25. package/dist/src/__tests__/council/role-palette.test.d.ts +0 -1
  26. package/dist/src/__tests__/council/role-palette.test.js +0 -59
  27. package/dist/src/__tests__/first-run-wizard.test.d.ts +0 -1
  28. package/dist/src/__tests__/first-run-wizard.test.js +0 -9
  29. package/dist/src/agent-harness/__tests__/cli-flags.spec.d.ts +0 -1
  30. package/dist/src/agent-harness/__tests__/cli-flags.spec.js +0 -33
  31. package/dist/src/agent-harness/__tests__/driver.spec.d.ts +0 -1
  32. package/dist/src/agent-harness/__tests__/driver.spec.js +0 -141
  33. package/dist/src/agent-harness/__tests__/idle.spec.d.ts +0 -1
  34. package/dist/src/agent-harness/__tests__/idle.spec.js +0 -84
  35. package/dist/src/agent-harness/__tests__/mock-llm.spec.d.ts +0 -1
  36. package/dist/src/agent-harness/__tests__/mock-llm.spec.js +0 -91
  37. package/dist/src/agent-harness/__tests__/mock-model.spec.d.ts +0 -5
  38. package/dist/src/agent-harness/__tests__/mock-model.spec.js +0 -270
  39. package/dist/src/agent-harness/__tests__/predicate.spec.d.ts +0 -1
  40. package/dist/src/agent-harness/__tests__/predicate.spec.js +0 -27
  41. package/dist/src/agent-harness/__tests__/protocol.spec.d.ts +0 -1
  42. package/dist/src/agent-harness/__tests__/protocol.spec.js +0 -56
  43. package/dist/src/agent-harness/__tests__/schema.spec.d.ts +0 -1
  44. package/dist/src/agent-harness/__tests__/schema.spec.js +0 -76
  45. package/dist/src/agent-harness/__tests__/selector.spec.d.ts +0 -1
  46. package/dist/src/agent-harness/__tests__/selector.spec.js +0 -70
  47. package/dist/src/agent-harness/__tests__/sidechannel.spec.d.ts +0 -1
  48. package/dist/src/agent-harness/__tests__/sidechannel.spec.js +0 -29
  49. package/dist/src/agent-harness/__tests__/spec-helpers.spec.d.ts +0 -1
  50. package/dist/src/agent-harness/__tests__/spec-helpers.spec.js +0 -68
  51. package/dist/src/chat/__tests__/broadcast-bus.test.d.ts +0 -1
  52. package/dist/src/chat/__tests__/broadcast-bus.test.js +0 -81
  53. package/dist/src/chat/__tests__/channel-manager.test.d.ts +0 -1
  54. package/dist/src/chat/__tests__/channel-manager.test.js +0 -133
  55. package/dist/src/chat/__tests__/client.test.d.ts +0 -1
  56. package/dist/src/chat/__tests__/client.test.js +0 -109
  57. package/dist/src/chat/__tests__/discord-integration.test.d.ts +0 -1
  58. package/dist/src/chat/__tests__/discord-integration.test.js +0 -153
  59. package/dist/src/chat/__tests__/intent-prompt.test.d.ts +0 -1
  60. package/dist/src/chat/__tests__/intent-prompt.test.js +0 -80
  61. package/dist/src/chat/__tests__/verdict-resolver.test.d.ts +0 -1
  62. package/dist/src/chat/__tests__/verdict-resolver.test.js +0 -308
  63. package/dist/src/cli/__tests__/bw-vault.test.d.ts +0 -1
  64. package/dist/src/cli/__tests__/bw-vault.test.js +0 -87
  65. package/dist/src/cli/__tests__/keys-bundle.test.d.ts +0 -1
  66. package/dist/src/cli/__tests__/keys-bundle.test.js +0 -40
  67. package/dist/src/cli/__tests__/share-cmd.test.d.ts +0 -1
  68. package/dist/src/cli/__tests__/share-cmd.test.js +0 -175
  69. package/dist/src/cli/config/__tests__/model-picker.test.d.ts +0 -1
  70. package/dist/src/cli/config/__tests__/model-picker.test.js +0 -56
  71. package/dist/src/cli/config/__tests__/provider-fetch.test.d.ts +0 -1
  72. package/dist/src/cli/config/__tests__/provider-fetch.test.js +0 -38
  73. package/dist/src/cli/cost-forensics.test.d.ts +0 -1
  74. package/dist/src/cli/cost-forensics.test.js +0 -223
  75. package/dist/src/cli/experience-report.test.d.ts +0 -5
  76. package/dist/src/cli/experience-report.test.js +0 -63
  77. package/dist/src/cli/keys.test.d.ts +0 -1
  78. package/dist/src/cli/keys.test.js +0 -86
  79. package/dist/src/council/__tests__/abort-threading.test.d.ts +0 -1
  80. package/dist/src/council/__tests__/abort-threading.test.js +0 -193
  81. package/dist/src/council/__tests__/accounting.test.d.ts +0 -1
  82. package/dist/src/council/__tests__/accounting.test.js +0 -66
  83. package/dist/src/council/__tests__/audit-replay.test.d.ts +0 -1
  84. package/dist/src/council/__tests__/audit-replay.test.js +0 -241
  85. package/dist/src/council/__tests__/clarification-prompt.test.d.ts +0 -1
  86. package/dist/src/council/__tests__/clarification-prompt.test.js +0 -71
  87. package/dist/src/council/__tests__/clarifier-max-rounds.test.d.ts +0 -1
  88. package/dist/src/council/__tests__/clarifier-max-rounds.test.js +0 -46
  89. package/dist/src/council/__tests__/clarifier-options.test.d.ts +0 -1
  90. package/dist/src/council/__tests__/clarifier-options.test.js +0 -54
  91. package/dist/src/council/__tests__/clarifier-ready-gate.test.d.ts +0 -1
  92. package/dist/src/council/__tests__/clarifier-ready-gate.test.js +0 -265
  93. package/dist/src/council/__tests__/cost-aware.test.d.ts +0 -1
  94. package/dist/src/council/__tests__/cost-aware.test.js +0 -49
  95. package/dist/src/council/__tests__/council-turn-length-emit.test.d.ts +0 -1
  96. package/dist/src/council/__tests__/council-turn-length-emit.test.js +0 -130
  97. package/dist/src/council/__tests__/debate-planner-structured.test.d.ts +0 -1
  98. package/dist/src/council/__tests__/debate-planner-structured.test.js +0 -209
  99. package/dist/src/council/__tests__/debate-round-budget.test.d.ts +0 -1
  100. package/dist/src/council/__tests__/debate-round-budget.test.js +0 -45
  101. package/dist/src/council/__tests__/decisions-lock.test.d.ts +0 -6
  102. package/dist/src/council/__tests__/decisions-lock.test.js +0 -352
  103. package/dist/src/council/__tests__/evaluator-metrics.test.d.ts +0 -1
  104. package/dist/src/council/__tests__/evaluator-metrics.test.js +0 -463
  105. package/dist/src/council/__tests__/oauth-reachable.test.d.ts +0 -1
  106. package/dist/src/council/__tests__/oauth-reachable.test.js +0 -31
  107. package/dist/src/council/__tests__/parse-outcome-fallback.test.d.ts +0 -1
  108. package/dist/src/council/__tests__/parse-outcome-fallback.test.js +0 -114
  109. package/dist/src/council/__tests__/post-debate-recommendation.test.d.ts +0 -1
  110. package/dist/src/council/__tests__/post-debate-recommendation.test.js +0 -58
  111. package/dist/src/council/__tests__/research-tools.test.d.ts +0 -1
  112. package/dist/src/council/__tests__/research-tools.test.js +0 -214
  113. package/dist/src/council/__tests__/round-tools.test.d.ts +0 -1
  114. package/dist/src/council/__tests__/round-tools.test.js +0 -306
  115. package/dist/src/council/__tests__/tool-trace.test.d.ts +0 -1
  116. package/dist/src/council/__tests__/tool-trace.test.js +0 -131
  117. package/dist/src/council/__tests__/types-contract.test.d.ts +0 -9
  118. package/dist/src/council/__tests__/types-contract.test.js +0 -82
  119. package/dist/src/council/clarifier-question-cap.test.d.ts +0 -12
  120. package/dist/src/council/clarifier-question-cap.test.js +0 -73
  121. package/dist/src/daemon/scheduler.test.d.ts +0 -1
  122. package/dist/src/daemon/scheduler.test.js +0 -103
  123. package/dist/src/ee/__tests__/bb-design.test.d.ts +0 -14
  124. package/dist/src/ee/__tests__/bb-design.test.js +0 -180
  125. package/dist/src/ee/__tests__/ee-onboarding.test.d.ts +0 -1
  126. package/dist/src/ee/__tests__/ee-onboarding.test.js +0 -32
  127. package/dist/src/ee/__tests__/export-transcripts.test.d.ts +0 -11
  128. package/dist/src/ee/__tests__/export-transcripts.test.js +0 -200
  129. package/dist/src/ee/__tests__/pil-context-bridge.test.d.ts +0 -1
  130. package/dist/src/ee/__tests__/pil-context-bridge.test.js +0 -54
  131. package/dist/src/ee/__tests__/pipeline.integration.test.d.ts +0 -14
  132. package/dist/src/ee/__tests__/pipeline.integration.test.js +0 -151
  133. package/dist/src/ee/__tests__/recall-format.test.d.ts +0 -10
  134. package/dist/src/ee/__tests__/recall-format.test.js +0 -57
  135. package/dist/src/ee/__tests__/recall-ledger.test.d.ts +0 -1
  136. package/dist/src/ee/__tests__/recall-ledger.test.js +0 -45
  137. package/dist/src/ee/__tests__/render-sink-wiring.test.d.ts +0 -1
  138. package/dist/src/ee/__tests__/render-sink-wiring.test.js +0 -74
  139. package/dist/src/ee/artifact-cache.test.d.ts +0 -1
  140. package/dist/src/ee/artifact-cache.test.js +0 -69
  141. package/dist/src/ee/auth.test.d.ts +0 -1
  142. package/dist/src/ee/auth.test.js +0 -59
  143. package/dist/src/ee/bridge.test.d.ts +0 -1
  144. package/dist/src/ee/bridge.test.js +0 -230
  145. package/dist/src/ee/client.test.d.ts +0 -1
  146. package/dist/src/ee/client.test.js +0 -181
  147. package/dist/src/ee/extract-session.test.d.ts +0 -1
  148. package/dist/src/ee/extract-session.test.js +0 -192
  149. package/dist/src/ee/intercept.test.d.ts +0 -1
  150. package/dist/src/ee/intercept.test.js +0 -171
  151. package/dist/src/ee/judge.test.d.ts +0 -1
  152. package/dist/src/ee/judge.test.js +0 -190
  153. package/dist/src/ee/mistake-detector.test.d.ts +0 -1
  154. package/dist/src/ee/mistake-detector.test.js +0 -221
  155. package/dist/src/ee/offline-queue.test.d.ts +0 -1
  156. package/dist/src/ee/offline-queue.test.js +0 -246
  157. package/dist/src/ee/phase-outcome.test.d.ts +0 -1
  158. package/dist/src/ee/phase-outcome.test.js +0 -94
  159. package/dist/src/ee/phase-tracker.test.d.ts +0 -1
  160. package/dist/src/ee/phase-tracker.test.js +0 -142
  161. package/dist/src/ee/posttool.test.d.ts +0 -1
  162. package/dist/src/ee/posttool.test.js +0 -70
  163. package/dist/src/ee/prompt-stale.test.d.ts +0 -8
  164. package/dist/src/ee/prompt-stale.test.js +0 -76
  165. package/dist/src/ee/recall-mirror.test.d.ts +0 -1
  166. package/dist/src/ee/recall-mirror.test.js +0 -65
  167. package/dist/src/ee/render.test.d.ts +0 -1
  168. package/dist/src/ee/render.test.js +0 -63
  169. package/dist/src/ee/scope.test.d.ts +0 -1
  170. package/dist/src/ee/scope.test.js +0 -97
  171. package/dist/src/ee/search.test.d.ts +0 -1
  172. package/dist/src/ee/search.test.js +0 -23
  173. package/dist/src/ee/session-trajectory.test.d.ts +0 -1
  174. package/dist/src/ee/session-trajectory.test.js +0 -120
  175. package/dist/src/ee/touch.test.d.ts +0 -1
  176. package/dist/src/ee/touch.test.js +0 -62
  177. package/dist/src/ee/who-am-i.test.d.ts +0 -1
  178. package/dist/src/ee/who-am-i.test.js +0 -101
  179. package/dist/src/flow/__tests__/migration.test.d.ts +0 -1
  180. package/dist/src/flow/__tests__/migration.test.js +0 -105
  181. package/dist/src/flow/__tests__/parser.test.d.ts +0 -1
  182. package/dist/src/flow/__tests__/parser.test.js +0 -68
  183. package/dist/src/flow/__tests__/run-manager-product.test.d.ts +0 -1
  184. package/dist/src/flow/__tests__/run-manager-product.test.js +0 -49
  185. package/dist/src/flow/__tests__/run-manager.test.d.ts +0 -1
  186. package/dist/src/flow/__tests__/run-manager.test.js +0 -83
  187. package/dist/src/flow/__tests__/scaffold-checkpoint.test.d.ts +0 -1
  188. package/dist/src/flow/__tests__/scaffold-checkpoint.test.js +0 -93
  189. package/dist/src/flow/__tests__/scaffold.test.d.ts +0 -1
  190. package/dist/src/flow/__tests__/scaffold.test.js +0 -47
  191. package/dist/src/flow/__tests__/warning-persist.test.d.ts +0 -5
  192. package/dist/src/flow/__tests__/warning-persist.test.js +0 -96
  193. package/dist/src/flow/compaction/__tests__/compress.test.d.ts +0 -1
  194. package/dist/src/flow/compaction/__tests__/compress.test.js +0 -63
  195. package/dist/src/flow/compaction/__tests__/extract.test.d.ts +0 -1
  196. package/dist/src/flow/compaction/__tests__/extract.test.js +0 -66
  197. package/dist/src/flow/compaction/__tests__/preserve.test.d.ts +0 -1
  198. package/dist/src/flow/compaction/__tests__/preserve.test.js +0 -62
  199. package/dist/src/gsd/__tests__/gray-areas.test.d.ts +0 -1
  200. package/dist/src/gsd/__tests__/gray-areas.test.js +0 -29
  201. package/dist/src/gsd/__tests__/types.test.d.ts +0 -1
  202. package/dist/src/gsd/__tests__/types.test.js +0 -78
  203. package/dist/src/headless/__tests__/council-answers.test.d.ts +0 -1
  204. package/dist/src/headless/__tests__/council-answers.test.js +0 -251
  205. package/dist/src/headless/output.test.d.ts +0 -1
  206. package/dist/src/headless/output.test.js +0 -239
  207. package/dist/src/lsp/builtins.test.d.ts +0 -1
  208. package/dist/src/lsp/builtins.test.js +0 -112
  209. package/dist/src/lsp/client-normalize.test.d.ts +0 -12
  210. package/dist/src/lsp/client-normalize.test.js +0 -34
  211. package/dist/src/lsp/manager.test.d.ts +0 -1
  212. package/dist/src/lsp/manager.test.js +0 -194
  213. package/dist/src/lsp/npm-cache.test.d.ts +0 -1
  214. package/dist/src/lsp/npm-cache.test.js +0 -53
  215. package/dist/src/lsp/smoke.test.d.ts +0 -1
  216. package/dist/src/lsp/smoke.test.js +0 -56
  217. package/dist/src/maintain/__tests__/codebase-intel.test.d.ts +0 -5
  218. package/dist/src/maintain/__tests__/codebase-intel.test.js +0 -237
  219. package/dist/src/maintain/__tests__/gh-create-pr.test.d.ts +0 -11
  220. package/dist/src/maintain/__tests__/gh-create-pr.test.js +0 -160
  221. package/dist/src/maintain/__tests__/pr-builder.test.d.ts +0 -10
  222. package/dist/src/maintain/__tests__/pr-builder.test.js +0 -229
  223. package/dist/src/maintain/__tests__/repo-map.test.d.ts +0 -5
  224. package/dist/src/maintain/__tests__/repo-map.test.js +0 -90
  225. package/dist/src/maintain/__tests__/task-runner.test.d.ts +0 -11
  226. package/dist/src/maintain/__tests__/task-runner.test.js +0 -281
  227. package/dist/src/mcp/__tests__/auto-setup.test.d.ts +0 -1
  228. package/dist/src/mcp/__tests__/auto-setup.test.js +0 -155
  229. package/dist/src/mcp/__tests__/cap-tool-result.test.d.ts +0 -1
  230. package/dist/src/mcp/__tests__/cap-tool-result.test.js +0 -58
  231. package/dist/src/mcp/__tests__/client-pool.spec.d.ts +0 -1
  232. package/dist/src/mcp/__tests__/client-pool.spec.js +0 -169
  233. package/dist/src/mcp/__tests__/ee-tools.test.d.ts +0 -1
  234. package/dist/src/mcp/__tests__/ee-tools.test.js +0 -226
  235. package/dist/src/mcp/__tests__/forensics-tools.test.d.ts +0 -1
  236. package/dist/src/mcp/__tests__/forensics-tools.test.js +0 -54
  237. package/dist/src/mcp/__tests__/harness-driver-action-tools.spec.d.ts +0 -1
  238. package/dist/src/mcp/__tests__/harness-driver-action-tools.spec.js +0 -103
  239. package/dist/src/mcp/__tests__/harness-driver-async-tools.spec.d.ts +0 -1
  240. package/dist/src/mcp/__tests__/harness-driver-async-tools.spec.js +0 -112
  241. package/dist/src/mcp/__tests__/harness-driver-read-tools.spec.d.ts +0 -1
  242. package/dist/src/mcp/__tests__/harness-driver-read-tools.spec.js +0 -124
  243. package/dist/src/mcp/__tests__/harness-driver-security.spec.d.ts +0 -1
  244. package/dist/src/mcp/__tests__/harness-driver-security.spec.js +0 -61
  245. package/dist/src/mcp/__tests__/harness-driver.spec.d.ts +0 -1
  246. package/dist/src/mcp/__tests__/harness-driver.spec.js +0 -20
  247. package/dist/src/mcp/__tests__/lazy-schema.spec.d.ts +0 -1
  248. package/dist/src/mcp/__tests__/lazy-schema.spec.js +0 -152
  249. package/dist/src/mcp/__tests__/lsp-tools.test.d.ts +0 -1
  250. package/dist/src/mcp/__tests__/lsp-tools.test.js +0 -56
  251. package/dist/src/mcp/__tests__/mcp-keychain.test.d.ts +0 -1
  252. package/dist/src/mcp/__tests__/mcp-keychain.test.js +0 -40
  253. package/dist/src/mcp/__tests__/parallel-build.spec.d.ts +0 -1
  254. package/dist/src/mcp/__tests__/parallel-build.spec.js +0 -67
  255. package/dist/src/mcp/__tests__/research-onboarding.test.d.ts +0 -1
  256. package/dist/src/mcp/__tests__/research-onboarding.test.js +0 -148
  257. package/dist/src/mcp/__tests__/runtime-hydration.test.d.ts +0 -1
  258. package/dist/src/mcp/__tests__/runtime-hydration.test.js +0 -78
  259. package/dist/src/mcp/__tests__/runtime-output-cap.test.d.ts +0 -1
  260. package/dist/src/mcp/__tests__/runtime-output-cap.test.js +0 -42
  261. package/dist/src/mcp/__tests__/runtime-sanitize.test.d.ts +0 -1
  262. package/dist/src/mcp/__tests__/runtime-sanitize.test.js +0 -40
  263. package/dist/src/mcp/__tests__/self-verify-jobs.test.d.ts +0 -1
  264. package/dist/src/mcp/__tests__/self-verify-jobs.test.js +0 -92
  265. package/dist/src/mcp/__tests__/smart-filter.test.d.ts +0 -1
  266. package/dist/src/mcp/__tests__/smart-filter.test.js +0 -177
  267. package/dist/src/mcp/__tests__/tools-server.smoke.test.d.ts +0 -1
  268. package/dist/src/mcp/__tests__/tools-server.smoke.test.js +0 -42
  269. package/dist/src/mcp/parse-headers.test.d.ts +0 -1
  270. package/dist/src/mcp/parse-headers.test.js +0 -43
  271. package/dist/src/mcp/smoke.test.d.ts +0 -1
  272. package/dist/src/mcp/smoke.test.js +0 -159
  273. package/dist/src/models/__tests__/registry.test.d.ts +0 -1
  274. package/dist/src/models/__tests__/registry.test.js +0 -74
  275. package/dist/src/models/catalog-gemini.test.d.ts +0 -1
  276. package/dist/src/models/catalog-gemini.test.js +0 -48
  277. package/dist/src/models/catalog-url.test.d.ts +0 -1
  278. package/dist/src/models/catalog-url.test.js +0 -26
  279. package/dist/src/models/catalog-validation.test.d.ts +0 -1
  280. package/dist/src/models/catalog-validation.test.js +0 -63
  281. package/dist/src/ops/__tests__/doctor-council-mcp.test.d.ts +0 -1
  282. package/dist/src/ops/__tests__/doctor-council-mcp.test.js +0 -139
  283. package/dist/src/ops/__tests__/doctor-ee-health.test.d.ts +0 -1
  284. package/dist/src/ops/__tests__/doctor-ee-health.test.js +0 -134
  285. package/dist/src/ops/bug-report.test.d.ts +0 -1
  286. package/dist/src/ops/bug-report.test.js +0 -148
  287. package/dist/src/ops/doctor.test.d.ts +0 -1
  288. package/dist/src/ops/doctor.test.js +0 -97
  289. package/dist/src/orchestrator/__tests__/agent-base-url-switch.test.d.ts +0 -1
  290. package/dist/src/orchestrator/__tests__/agent-base-url-switch.test.js +0 -77
  291. package/dist/src/orchestrator/__tests__/auto-commit.test.d.ts +0 -1
  292. package/dist/src/orchestrator/__tests__/auto-commit.test.js +0 -142
  293. package/dist/src/orchestrator/__tests__/batch-turn-runner.test.d.ts +0 -1
  294. package/dist/src/orchestrator/__tests__/batch-turn-runner.test.js +0 -164
  295. package/dist/src/orchestrator/__tests__/council-manager.test.d.ts +0 -1
  296. package/dist/src/orchestrator/__tests__/council-manager.test.js +0 -148
  297. package/dist/src/orchestrator/__tests__/cross-turn-dedup.test.d.ts +0 -1
  298. package/dist/src/orchestrator/__tests__/cross-turn-dedup.test.js +0 -175
  299. package/dist/src/orchestrator/__tests__/current-call-id.test.d.ts +0 -16
  300. package/dist/src/orchestrator/__tests__/current-call-id.test.js +0 -138
  301. package/dist/src/orchestrator/__tests__/delegations.test.d.ts +0 -1
  302. package/dist/src/orchestrator/__tests__/delegations.test.js +0 -96
  303. package/dist/src/orchestrator/__tests__/error-forensics.test.d.ts +0 -1
  304. package/dist/src/orchestrator/__tests__/error-forensics.test.js +0 -93
  305. package/dist/src/orchestrator/__tests__/flow-resume.test.d.ts +0 -5
  306. package/dist/src/orchestrator/__tests__/flow-resume.test.js +0 -61
  307. package/dist/src/orchestrator/__tests__/humanize-api-error.test.d.ts +0 -1
  308. package/dist/src/orchestrator/__tests__/humanize-api-error.test.js +0 -68
  309. package/dist/src/orchestrator/__tests__/mcp-capability-block.test.d.ts +0 -1
  310. package/dist/src/orchestrator/__tests__/mcp-capability-block.test.js +0 -39
  311. package/dist/src/orchestrator/__tests__/message-processor.test.d.ts +0 -1
  312. package/dist/src/orchestrator/__tests__/message-processor.test.js +0 -189
  313. package/dist/src/orchestrator/__tests__/message-write-ahead.test.d.ts +0 -22
  314. package/dist/src/orchestrator/__tests__/message-write-ahead.test.js +0 -149
  315. package/dist/src/orchestrator/__tests__/project-stack.test.d.ts +0 -1
  316. package/dist/src/orchestrator/__tests__/project-stack.test.js +0 -65
  317. package/dist/src/orchestrator/__tests__/prompts.test.d.ts +0 -1
  318. package/dist/src/orchestrator/__tests__/prompts.test.js +0 -88
  319. package/dist/src/orchestrator/__tests__/read-path-budget.test.d.ts +0 -1
  320. package/dist/src/orchestrator/__tests__/read-path-budget.test.js +0 -156
  321. package/dist/src/orchestrator/__tests__/retry-classifier.test.d.ts +0 -1
  322. package/dist/src/orchestrator/__tests__/retry-classifier.test.js +0 -112
  323. package/dist/src/orchestrator/__tests__/retry-stream.test.d.ts +0 -1
  324. package/dist/src/orchestrator/__tests__/retry-stream.test.js +0 -151
  325. package/dist/src/orchestrator/__tests__/route-feedback.test.d.ts +0 -1
  326. package/dist/src/orchestrator/__tests__/route-feedback.test.js +0 -47
  327. package/dist/src/orchestrator/__tests__/stream-runner.test.d.ts +0 -1
  328. package/dist/src/orchestrator/__tests__/stream-runner.test.js +0 -202
  329. package/dist/src/orchestrator/__tests__/sub-agent-model-tier.test.d.ts +0 -1
  330. package/dist/src/orchestrator/__tests__/sub-agent-model-tier.test.js +0 -45
  331. package/dist/src/orchestrator/__tests__/sub-session-delegation.test.d.ts +0 -1
  332. package/dist/src/orchestrator/__tests__/sub-session-delegation.test.js +0 -507
  333. package/dist/src/orchestrator/__tests__/usage-events-shape.test.d.ts +0 -8
  334. package/dist/src/orchestrator/__tests__/usage-events-shape.test.js +0 -58
  335. package/dist/src/orchestrator/__tests__/usage-normalizer-c1.test.d.ts +0 -21
  336. package/dist/src/orchestrator/__tests__/usage-normalizer-c1.test.js +0 -155
  337. package/dist/src/orchestrator/__tests__/usage-shape-threading.test.d.ts +0 -1
  338. package/dist/src/orchestrator/__tests__/usage-shape-threading.test.js +0 -98
  339. package/dist/src/orchestrator/__tests__/write-ahead.test.d.ts +0 -20
  340. package/dist/src/orchestrator/__tests__/write-ahead.test.js +0 -134
  341. package/dist/src/orchestrator/abort.test.d.ts +0 -1
  342. package/dist/src/orchestrator/abort.test.js +0 -34
  343. package/dist/src/orchestrator/agent.test.d.ts +0 -1
  344. package/dist/src/orchestrator/agent.test.js +0 -178
  345. package/dist/src/orchestrator/cleanup.test.d.ts +0 -1
  346. package/dist/src/orchestrator/cleanup.test.js +0 -67
  347. package/dist/src/orchestrator/compaction.test.d.ts +0 -1
  348. package/dist/src/orchestrator/compaction.test.js +0 -187
  349. package/dist/src/orchestrator/delegations.test.d.ts +0 -1
  350. package/dist/src/orchestrator/delegations.test.js +0 -107
  351. package/dist/src/orchestrator/grounding-check.test.d.ts +0 -1
  352. package/dist/src/orchestrator/grounding-check.test.js +0 -94
  353. package/dist/src/orchestrator/interrupted-turn.test.d.ts +0 -1
  354. package/dist/src/orchestrator/interrupted-turn.test.js +0 -34
  355. package/dist/src/orchestrator/message-seq.test.d.ts +0 -1
  356. package/dist/src/orchestrator/message-seq.test.js +0 -24
  357. package/dist/src/orchestrator/pending-calls.test.d.ts +0 -1
  358. package/dist/src/orchestrator/pending-calls.test.js +0 -188
  359. package/dist/src/orchestrator/provider-options-shape.spec.d.ts +0 -1
  360. package/dist/src/orchestrator/provider-options-shape.spec.js +0 -63
  361. package/dist/src/orchestrator/reasoning.test.d.ts +0 -1
  362. package/dist/src/orchestrator/reasoning.test.js +0 -101
  363. package/dist/src/orchestrator/repetition-detector.test.d.ts +0 -1
  364. package/dist/src/orchestrator/repetition-detector.test.js +0 -103
  365. package/dist/src/orchestrator/sandbox.test.d.ts +0 -1
  366. package/dist/src/orchestrator/sandbox.test.js +0 -99
  367. package/dist/src/orchestrator/scope-ceiling.test.d.ts +0 -13
  368. package/dist/src/orchestrator/scope-ceiling.test.js +0 -181
  369. package/dist/src/orchestrator/scope-reminder.test.d.ts +0 -15
  370. package/dist/src/orchestrator/scope-reminder.test.js +0 -225
  371. package/dist/src/orchestrator/session-experience.test.d.ts +0 -6
  372. package/dist/src/orchestrator/session-experience.test.js +0 -72
  373. package/dist/src/orchestrator/stall-rescue.test.d.ts +0 -1
  374. package/dist/src/orchestrator/stall-rescue.test.js +0 -117
  375. package/dist/src/orchestrator/stall-watchdog.test.d.ts +0 -1
  376. package/dist/src/orchestrator/stall-watchdog.test.js +0 -153
  377. package/dist/src/orchestrator/steer-inbox.test.d.ts +0 -1
  378. package/dist/src/orchestrator/steer-inbox.test.js +0 -33
  379. package/dist/src/orchestrator/sub-agent-cap.test.d.ts +0 -1
  380. package/dist/src/orchestrator/sub-agent-cap.test.js +0 -208
  381. package/dist/src/orchestrator/subagent-compactor.spec.d.ts +0 -1
  382. package/dist/src/orchestrator/subagent-compactor.spec.js +0 -636
  383. package/dist/src/orchestrator/text-tool-call-detector.test.d.ts +0 -1
  384. package/dist/src/orchestrator/text-tool-call-detector.test.js +0 -147
  385. package/dist/src/orchestrator/token-counter.test.d.ts +0 -1
  386. package/dist/src/orchestrator/token-counter.test.js +0 -57
  387. package/dist/src/orchestrator/tool-args-hash.test.d.ts +0 -1
  388. package/dist/src/orchestrator/tool-args-hash.test.js +0 -105
  389. package/dist/src/orchestrator/tool-args-repair.test.d.ts +0 -1
  390. package/dist/src/orchestrator/tool-args-repair.test.js +0 -136
  391. package/dist/src/orchestrator/tool-loop-askcard.test.d.ts +0 -1
  392. package/dist/src/orchestrator/tool-loop-askcard.test.js +0 -71
  393. package/dist/src/orchestrator/tool-loop-cap.test.d.ts +0 -1
  394. package/dist/src/orchestrator/tool-loop-cap.test.js +0 -176
  395. package/dist/src/orchestrator/tool-repetition-detector.test.d.ts +0 -1
  396. package/dist/src/orchestrator/tool-repetition-detector.test.js +0 -101
  397. package/dist/src/pil/__tests__/budget.test.d.ts +0 -1
  398. package/dist/src/pil/__tests__/budget.test.js +0 -33
  399. package/dist/src/pil/__tests__/clarity-gate.test.d.ts +0 -1
  400. package/dist/src/pil/__tests__/clarity-gate.test.js +0 -37
  401. package/dist/src/pil/__tests__/config.test.d.ts +0 -1
  402. package/dist/src/pil/__tests__/config.test.js +0 -57
  403. package/dist/src/pil/__tests__/discovery-cache.test.d.ts +0 -1
  404. package/dist/src/pil/__tests__/discovery-cache.test.js +0 -38
  405. package/dist/src/pil/__tests__/discovery-types.test.d.ts +0 -1
  406. package/dist/src/pil/__tests__/discovery-types.test.js +0 -65
  407. package/dist/src/pil/__tests__/discovery.test.d.ts +0 -1
  408. package/dist/src/pil/__tests__/discovery.test.js +0 -178
  409. package/dist/src/pil/__tests__/dual-run.test.d.ts +0 -1
  410. package/dist/src/pil/__tests__/dual-run.test.js +0 -51
  411. package/dist/src/pil/__tests__/layer1-intent-trace.test.d.ts +0 -1
  412. package/dist/src/pil/__tests__/layer1-intent-trace.test.js +0 -138
  413. package/dist/src/pil/__tests__/layer1-intent.test.d.ts +0 -1
  414. package/dist/src/pil/__tests__/layer1-intent.test.js +0 -329
  415. package/dist/src/pil/__tests__/layer15-context-scan.test.d.ts +0 -1
  416. package/dist/src/pil/__tests__/layer15-context-scan.test.js +0 -64
  417. package/dist/src/pil/__tests__/layer16-clarity.test.d.ts +0 -1
  418. package/dist/src/pil/__tests__/layer16-clarity.test.js +0 -72
  419. package/dist/src/pil/__tests__/layer17-feasibility.test.d.ts +0 -1
  420. package/dist/src/pil/__tests__/layer17-feasibility.test.js +0 -36
  421. package/dist/src/pil/__tests__/layer18-acceptance.test.d.ts +0 -1
  422. package/dist/src/pil/__tests__/layer18-acceptance.test.js +0 -18
  423. package/dist/src/pil/__tests__/layer2-personality.test.d.ts +0 -1
  424. package/dist/src/pil/__tests__/layer2-personality.test.js +0 -57
  425. package/dist/src/pil/__tests__/layer2_5-ponytail.test.d.ts +0 -1
  426. package/dist/src/pil/__tests__/layer2_5-ponytail.test.js +0 -53
  427. package/dist/src/pil/__tests__/layer3-ee-injection.test.d.ts +0 -1
  428. package/dist/src/pil/__tests__/layer3-ee-injection.test.js +0 -221
  429. package/dist/src/pil/__tests__/layer3-injected-chunk.test.d.ts +0 -1
  430. package/dist/src/pil/__tests__/layer3-injected-chunk.test.js +0 -134
  431. package/dist/src/pil/__tests__/layer4-gsd.test.d.ts +0 -1
  432. package/dist/src/pil/__tests__/layer4-gsd.test.js +0 -191
  433. package/dist/src/pil/__tests__/layer5-context.test.d.ts +0 -1
  434. package/dist/src/pil/__tests__/layer5-context.test.js +0 -175
  435. package/dist/src/pil/__tests__/layer6-output.test.d.ts +0 -1
  436. package/dist/src/pil/__tests__/layer6-output.test.js +0 -465
  437. package/dist/src/pil/__tests__/llm-classify.test.d.ts +0 -1
  438. package/dist/src/pil/__tests__/llm-classify.test.js +0 -275
  439. package/dist/src/pil/__tests__/native-capabilities-workbook.test.d.ts +0 -1
  440. package/dist/src/pil/__tests__/native-capabilities-workbook.test.js +0 -40
  441. package/dist/src/pil/__tests__/ollama-classify.test.d.ts +0 -1
  442. package/dist/src/pil/__tests__/ollama-classify.test.js +0 -68
  443. package/dist/src/pil/__tests__/orchestrator-integration.test.d.ts +0 -10
  444. package/dist/src/pil/__tests__/orchestrator-integration.test.js +0 -100
  445. package/dist/src/pil/__tests__/pipeline.test.d.ts +0 -1
  446. package/dist/src/pil/__tests__/pipeline.test.js +0 -188
  447. package/dist/src/pil/__tests__/renderer-coverage.test.d.ts +0 -7
  448. package/dist/src/pil/__tests__/renderer-coverage.test.js +0 -42
  449. package/dist/src/pil/__tests__/response-tools.test.d.ts +0 -1
  450. package/dist/src/pil/__tests__/response-tools.test.js +0 -242
  451. package/dist/src/pil/__tests__/schema.test.d.ts +0 -1
  452. package/dist/src/pil/__tests__/schema.test.js +0 -202
  453. package/dist/src/pil/__tests__/scoreComplexity.test.d.ts +0 -1
  454. package/dist/src/pil/__tests__/scoreComplexity.test.js +0 -119
  455. package/dist/src/pil/__tests__/scoreSufficiency.test.d.ts +0 -8
  456. package/dist/src/pil/__tests__/scoreSufficiency.test.js +0 -89
  457. package/dist/src/pil/__tests__/store.test.d.ts +0 -1
  458. package/dist/src/pil/__tests__/store.test.js +0 -44
  459. package/dist/src/pil/__tests__/surface-compaction-artifacts.test.d.ts +0 -1
  460. package/dist/src/pil/__tests__/surface-compaction-artifacts.test.js +0 -112
  461. package/dist/src/pil/__tests__/task-tier-map.test.d.ts +0 -1
  462. package/dist/src/pil/__tests__/task-tier-map.test.js +0 -33
  463. package/dist/src/pil/agent-operating-contract.test.d.ts +0 -1
  464. package/dist/src/pil/agent-operating-contract.test.js +0 -80
  465. package/dist/src/pil/cheap-model-playbook.test.d.ts +0 -1
  466. package/dist/src/pil/cheap-model-playbook.test.js +0 -160
  467. package/dist/src/pil/cheap-model-workbooks.test.d.ts +0 -1
  468. package/dist/src/pil/cheap-model-workbooks.test.js +0 -129
  469. package/dist/src/pil/layer1-intent.test.d.ts +0 -1
  470. package/dist/src/pil/layer1-intent.test.js +0 -764
  471. package/dist/src/pil/layer1_5-complexity-size.test.d.ts +0 -10
  472. package/dist/src/pil/layer1_5-complexity-size.test.js +0 -248
  473. package/dist/src/pil/session-experience-injection.test.d.ts +0 -6
  474. package/dist/src/pil/session-experience-injection.test.js +0 -79
  475. package/dist/src/pil/session-state.test.d.ts +0 -1
  476. package/dist/src/pil/session-state.test.js +0 -73
  477. package/dist/src/playbook/__tests__/directives.test.d.ts +0 -1
  478. package/dist/src/playbook/__tests__/directives.test.js +0 -115
  479. package/dist/src/product-loop/__tests__/artifact-io.test.d.ts +0 -1
  480. package/dist/src/product-loop/__tests__/artifact-io.test.js +0 -83
  481. package/dist/src/product-loop/__tests__/assumption-ledger.test.d.ts +0 -1
  482. package/dist/src/product-loop/__tests__/assumption-ledger.test.js +0 -261
  483. package/dist/src/product-loop/__tests__/backlog-builder.test.d.ts +0 -10
  484. package/dist/src/product-loop/__tests__/backlog-builder.test.js +0 -175
  485. package/dist/src/product-loop/__tests__/backlog-store.test.d.ts +0 -4
  486. package/dist/src/product-loop/__tests__/backlog-store.test.js +0 -96
  487. package/dist/src/product-loop/__tests__/cb2-retry-bonus.test.d.ts +0 -13
  488. package/dist/src/product-loop/__tests__/cb2-retry-bonus.test.js +0 -158
  489. package/dist/src/product-loop/__tests__/circuit-breakers-coverage.test.d.ts +0 -1
  490. package/dist/src/product-loop/__tests__/circuit-breakers-coverage.test.js +0 -67
  491. package/dist/src/product-loop/__tests__/circuit-breakers.test.d.ts +0 -1
  492. package/dist/src/product-loop/__tests__/circuit-breakers.test.js +0 -79
  493. package/dist/src/product-loop/__tests__/complexity-routing.spec.d.ts +0 -11
  494. package/dist/src/product-loop/__tests__/complexity-routing.spec.js +0 -240
  495. package/dist/src/product-loop/__tests__/context-policy.test.d.ts +0 -1
  496. package/dist/src/product-loop/__tests__/context-policy.test.js +0 -266
  497. package/dist/src/product-loop/__tests__/cost-preview.test.d.ts +0 -1
  498. package/dist/src/product-loop/__tests__/cost-preview.test.js +0 -111
  499. package/dist/src/product-loop/__tests__/cost-scoper.test.d.ts +0 -1
  500. package/dist/src/product-loop/__tests__/cost-scoper.test.js +0 -50
  501. package/dist/src/product-loop/__tests__/cross-run-memory.test.d.ts +0 -1
  502. package/dist/src/product-loop/__tests__/cross-run-memory.test.js +0 -168
  503. package/dist/src/product-loop/__tests__/design-output.spec.d.ts +0 -1
  504. package/dist/src/product-loop/__tests__/design-output.spec.js +0 -36
  505. package/dist/src/product-loop/__tests__/discover.test.d.ts +0 -1
  506. package/dist/src/product-loop/__tests__/discover.test.js +0 -83
  507. package/dist/src/product-loop/__tests__/discovery-context-format.test.d.ts +0 -13
  508. package/dist/src/product-loop/__tests__/discovery-context-format.test.js +0 -100
  509. package/dist/src/product-loop/__tests__/discovery-council-runner.test.d.ts +0 -1
  510. package/dist/src/product-loop/__tests__/discovery-council-runner.test.js +0 -13
  511. package/dist/src/product-loop/__tests__/discovery-detection.test.d.ts +0 -1
  512. package/dist/src/product-loop/__tests__/discovery-detection.test.js +0 -151
  513. package/dist/src/product-loop/__tests__/discovery-ecosystem.test.d.ts +0 -8
  514. package/dist/src/product-loop/__tests__/discovery-ecosystem.test.js +0 -209
  515. package/dist/src/product-loop/__tests__/discovery-integration.test.d.ts +0 -1
  516. package/dist/src/product-loop/__tests__/discovery-integration.test.js +0 -126
  517. package/dist/src/product-loop/__tests__/discovery-interview.test.d.ts +0 -1
  518. package/dist/src/product-loop/__tests__/discovery-interview.test.js +0 -394
  519. package/dist/src/product-loop/__tests__/discovery-migrations.test.d.ts +0 -1
  520. package/dist/src/product-loop/__tests__/discovery-migrations.test.js +0 -69
  521. package/dist/src/product-loop/__tests__/discovery-persistence.test.d.ts +0 -1
  522. package/dist/src/product-loop/__tests__/discovery-persistence.test.js +0 -146
  523. package/dist/src/product-loop/__tests__/discovery-prompt-parser.test.d.ts +0 -1
  524. package/dist/src/product-loop/__tests__/discovery-prompt-parser.test.js +0 -65
  525. package/dist/src/product-loop/__tests__/discovery-prompt-specificity.test.d.ts +0 -1
  526. package/dist/src/product-loop/__tests__/discovery-prompt-specificity.test.js +0 -55
  527. package/dist/src/product-loop/__tests__/discovery-recommender-ecosystem.test.d.ts +0 -9
  528. package/dist/src/product-loop/__tests__/discovery-recommender-ecosystem.test.js +0 -178
  529. package/dist/src/product-loop/__tests__/discovery-recommender.test.d.ts +0 -1
  530. package/dist/src/product-loop/__tests__/discovery-recommender.test.js +0 -316
  531. package/dist/src/product-loop/__tests__/discovery-schema.test.d.ts +0 -1
  532. package/dist/src/product-loop/__tests__/discovery-schema.test.js +0 -77
  533. package/dist/src/product-loop/__tests__/done-gate-coverage.test.d.ts +0 -1
  534. package/dist/src/product-loop/__tests__/done-gate-coverage.test.js +0 -135
  535. package/dist/src/product-loop/__tests__/done-gate.test.d.ts +0 -1
  536. package/dist/src/product-loop/__tests__/done-gate.test.js +0 -122
  537. package/dist/src/product-loop/__tests__/ee-extract-wiring.test.d.ts +0 -8
  538. package/dist/src/product-loop/__tests__/ee-extract-wiring.test.js +0 -186
  539. package/dist/src/product-loop/__tests__/extract-to-ee.test.d.ts +0 -1
  540. package/dist/src/product-loop/__tests__/extract-to-ee.test.js +0 -161
  541. package/dist/src/product-loop/__tests__/feedback-routing.test.d.ts +0 -1
  542. package/dist/src/product-loop/__tests__/feedback-routing.test.js +0 -83
  543. package/dist/src/product-loop/__tests__/gather-selectable-alts.test.d.ts +0 -15
  544. package/dist/src/product-loop/__tests__/gather-selectable-alts.test.js +0 -143
  545. package/dist/src/product-loop/__tests__/hot-path.spec.d.ts +0 -11
  546. package/dist/src/product-loop/__tests__/hot-path.spec.js +0 -146
  547. package/dist/src/product-loop/__tests__/integration.test.d.ts +0 -7
  548. package/dist/src/product-loop/__tests__/integration.test.js +0 -301
  549. package/dist/src/product-loop/__tests__/loop-driver-audit.test.d.ts +0 -1
  550. package/dist/src/product-loop/__tests__/loop-driver-audit.test.js +0 -269
  551. package/dist/src/product-loop/__tests__/loop-driver.test.d.ts +0 -1
  552. package/dist/src/product-loop/__tests__/loop-driver.test.js +0 -225
  553. package/dist/src/product-loop/__tests__/maintenance-task-synthesis.test.d.ts +0 -8
  554. package/dist/src/product-loop/__tests__/maintenance-task-synthesis.test.js +0 -67
  555. package/dist/src/product-loop/__tests__/phase-a1-a3-sprint-runner.test.d.ts +0 -13
  556. package/dist/src/product-loop/__tests__/phase-a1-a3-sprint-runner.test.js +0 -268
  557. package/dist/src/product-loop/__tests__/phase-a2-backlog-build.test.d.ts +0 -8
  558. package/dist/src/product-loop/__tests__/phase-a2-backlog-build.test.js +0 -162
  559. package/dist/src/product-loop/__tests__/phase-budget.test.d.ts +0 -1
  560. package/dist/src/product-loop/__tests__/phase-budget.test.js +0 -149
  561. package/dist/src/product-loop/__tests__/phase-orchestrator-integration.test.d.ts +0 -1
  562. package/dist/src/product-loop/__tests__/phase-orchestrator-integration.test.js +0 -138
  563. package/dist/src/product-loop/__tests__/phase-plan.test.d.ts +0 -1
  564. package/dist/src/product-loop/__tests__/phase-plan.test.js +0 -208
  565. package/dist/src/product-loop/__tests__/phase-rituals.test.d.ts +0 -1
  566. package/dist/src/product-loop/__tests__/phase-rituals.test.js +0 -174
  567. package/dist/src/product-loop/__tests__/phase-runner.test.d.ts +0 -1
  568. package/dist/src/product-loop/__tests__/phase-runner.test.js +0 -414
  569. package/dist/src/product-loop/__tests__/phase-tracker-bridge.test.d.ts +0 -1
  570. package/dist/src/product-loop/__tests__/phase-tracker-bridge.test.js +0 -67
  571. package/dist/src/product-loop/__tests__/pick-backend-stack.test.d.ts +0 -11
  572. package/dist/src/product-loop/__tests__/pick-backend-stack.test.js +0 -95
  573. package/dist/src/product-loop/__tests__/product-identity.test.d.ts +0 -1
  574. package/dist/src/product-loop/__tests__/product-identity.test.js +0 -40
  575. package/dist/src/product-loop/__tests__/progress-snapshot.test.d.ts +0 -8
  576. package/dist/src/product-loop/__tests__/progress-snapshot.test.js +0 -152
  577. package/dist/src/product-loop/__tests__/reality-anchor.test.d.ts +0 -1
  578. package/dist/src/product-loop/__tests__/reality-anchor.test.js +0 -49
  579. package/dist/src/product-loop/__tests__/repo-audit.test.d.ts +0 -1
  580. package/dist/src/product-loop/__tests__/repo-audit.test.js +0 -97
  581. package/dist/src/product-loop/__tests__/repo-brief.test.d.ts +0 -9
  582. package/dist/src/product-loop/__tests__/repo-brief.test.js +0 -132
  583. package/dist/src/product-loop/__tests__/role-memory.test.d.ts +0 -1
  584. package/dist/src/product-loop/__tests__/role-memory.test.js +0 -56
  585. package/dist/src/product-loop/__tests__/role-registry.test.d.ts +0 -1
  586. package/dist/src/product-loop/__tests__/role-registry.test.js +0 -222
  587. package/dist/src/product-loop/__tests__/role-routing-ee.test.d.ts +0 -1
  588. package/dist/src/product-loop/__tests__/role-routing-ee.test.js +0 -79
  589. package/dist/src/product-loop/__tests__/route-decision-emit.test.d.ts +0 -10
  590. package/dist/src/product-loop/__tests__/route-decision-emit.test.js +0 -222
  591. package/dist/src/product-loop/__tests__/seed-questions.test.d.ts +0 -1
  592. package/dist/src/product-loop/__tests__/seed-questions.test.js +0 -30
  593. package/dist/src/product-loop/__tests__/ship-polish.test.d.ts +0 -1
  594. package/dist/src/product-loop/__tests__/ship-polish.test.js +0 -96
  595. package/dist/src/product-loop/__tests__/sprint-planner.test.d.ts +0 -6
  596. package/dist/src/product-loop/__tests__/sprint-planner.test.js +0 -140
  597. package/dist/src/product-loop/__tests__/sprint-runner-backlog.test.d.ts +0 -8
  598. package/dist/src/product-loop/__tests__/sprint-runner-backlog.test.js +0 -221
  599. package/dist/src/product-loop/__tests__/sprint-runner-emit.test.d.ts +0 -14
  600. package/dist/src/product-loop/__tests__/sprint-runner-emit.test.js +0 -279
  601. package/dist/src/product-loop/__tests__/sprint-runner-phase-chunks.test.d.ts +0 -14
  602. package/dist/src/product-loop/__tests__/sprint-runner-phase-chunks.test.js +0 -193
  603. package/dist/src/product-loop/__tests__/sprint-runner.test.d.ts +0 -1
  604. package/dist/src/product-loop/__tests__/sprint-runner.test.js +0 -432
  605. package/dist/src/product-loop/__tests__/sprint-self-verify.test.d.ts +0 -8
  606. package/dist/src/product-loop/__tests__/sprint-self-verify.test.js +0 -73
  607. package/dist/src/product-loop/__tests__/sprint-store.test.d.ts +0 -7
  608. package/dist/src/product-loop/__tests__/sprint-store.test.js +0 -84
  609. package/dist/src/product-loop/__tests__/stakeholder-acl.test.d.ts +0 -1
  610. package/dist/src/product-loop/__tests__/stakeholder-acl.test.js +0 -83
  611. package/dist/src/product-loop/__tests__/state-md-ee-injections.test.d.ts +0 -8
  612. package/dist/src/product-loop/__tests__/state-md-ee-injections.test.js +0 -182
  613. package/dist/src/product-loop/__tests__/sufficiency-routing.spec.d.ts +0 -12
  614. package/dist/src/product-loop/__tests__/sufficiency-routing.spec.js +0 -140
  615. package/dist/src/product-loop/__tests__/typed-artifacts.test.d.ts +0 -1
  616. package/dist/src/product-loop/__tests__/typed-artifacts.test.js +0 -222
  617. package/dist/src/product-loop/__tests__/types.test.d.ts +0 -1
  618. package/dist/src/product-loop/__tests__/types.test.js +0 -79
  619. package/dist/src/product-loop/__tests__/verify-failure-threshold.test.d.ts +0 -9
  620. package/dist/src/product-loop/__tests__/verify-failure-threshold.test.js +0 -146
  621. package/dist/src/product-loop/__tests__/verify-failure-tracking.test.d.ts +0 -4
  622. package/dist/src/product-loop/__tests__/verify-failure-tracking.test.js +0 -122
  623. package/dist/src/product-loop/__tests__/verify-result.test.d.ts +0 -1
  624. package/dist/src/product-loop/__tests__/verify-result.test.js +0 -53
  625. package/dist/src/providers/__tests__/adapter-oauth-wiring.test.d.ts +0 -8
  626. package/dist/src/providers/__tests__/adapter-oauth-wiring.test.js +0 -125
  627. package/dist/src/providers/__tests__/capabilities-cosmetic.test.d.ts +0 -1
  628. package/dist/src/providers/__tests__/capabilities-cosmetic.test.js +0 -109
  629. package/dist/src/providers/__tests__/capabilities-flags.test.d.ts +0 -1
  630. package/dist/src/providers/__tests__/capabilities-flags.test.js +0 -145
  631. package/dist/src/providers/__tests__/capabilities-provider-options.test.d.ts +0 -1
  632. package/dist/src/providers/__tests__/capabilities-provider-options.test.js +0 -201
  633. package/dist/src/providers/__tests__/capabilities-sanitize.test.d.ts +0 -1
  634. package/dist/src/providers/__tests__/capabilities-sanitize.test.js +0 -60
  635. package/dist/src/providers/__tests__/capabilities.test.d.ts +0 -1
  636. package/dist/src/providers/__tests__/capabilities.test.js +0 -41
  637. package/dist/src/providers/__tests__/provider-coverage.test.d.ts +0 -1
  638. package/dist/src/providers/__tests__/provider-coverage.test.js +0 -45
  639. package/dist/src/providers/__tests__/reasoning-roundtrip.test.d.ts +0 -1
  640. package/dist/src/providers/__tests__/reasoning-roundtrip.test.js +0 -216
  641. package/dist/src/providers/__tests__/runtime-integration.test.d.ts +0 -1
  642. package/dist/src/providers/__tests__/runtime-integration.test.js +0 -93
  643. package/dist/src/providers/__tests__/runtime.test.d.ts +0 -1
  644. package/dist/src/providers/__tests__/runtime.test.js +0 -80
  645. package/dist/src/providers/__tests__/siliconflow-sse-repair.test.d.ts +0 -1
  646. package/dist/src/providers/__tests__/siliconflow-sse-repair.test.js +0 -267
  647. package/dist/src/providers/__tests__/strategies-registry.test.d.ts +0 -8
  648. package/dist/src/providers/__tests__/strategies-registry.test.js +0 -49
  649. package/dist/src/providers/__tests__/strategies-resolve.test.d.ts +0 -12
  650. package/dist/src/providers/__tests__/strategies-resolve.test.js +0 -128
  651. package/dist/src/providers/__tests__/wire-debug.test.d.ts +0 -1
  652. package/dist/src/providers/__tests__/wire-debug.test.js +0 -39
  653. package/dist/src/providers/adapter.test.d.ts +0 -1
  654. package/dist/src/providers/adapter.test.js +0 -19
  655. package/dist/src/providers/auth/__tests__/browser-flow.test.d.ts +0 -8
  656. package/dist/src/providers/auth/__tests__/browser-flow.test.js +0 -186
  657. package/dist/src/providers/auth/__tests__/device-flow.test.d.ts +0 -6
  658. package/dist/src/providers/auth/__tests__/device-flow.test.js +0 -219
  659. package/dist/src/providers/auth/__tests__/gemini-oauth.test.d.ts +0 -4
  660. package/dist/src/providers/auth/__tests__/gemini-oauth.test.js +0 -306
  661. package/dist/src/providers/auth/__tests__/grok-oauth.test.d.ts +0 -8
  662. package/dist/src/providers/auth/__tests__/grok-oauth.test.js +0 -236
  663. package/dist/src/providers/auth/__tests__/openai-oauth.test.d.ts +0 -7
  664. package/dist/src/providers/auth/__tests__/openai-oauth.test.js +0 -309
  665. package/dist/src/providers/auth/__tests__/token-store.test.d.ts +0 -7
  666. package/dist/src/providers/auth/__tests__/token-store.test.js +0 -125
  667. package/dist/src/providers/errors.test.d.ts +0 -1
  668. package/dist/src/providers/errors.test.js +0 -66
  669. package/dist/src/providers/gemini.test.d.ts +0 -1
  670. package/dist/src/providers/gemini.test.js +0 -37
  671. package/dist/src/providers/keychain.test.d.ts +0 -1
  672. package/dist/src/providers/keychain.test.js +0 -84
  673. package/dist/src/providers/mcp-vision-bridge.test.d.ts +0 -1
  674. package/dist/src/providers/mcp-vision-bridge.test.js +0 -381
  675. package/dist/src/providers/ollama.test.d.ts +0 -1
  676. package/dist/src/providers/ollama.test.js +0 -37
  677. package/dist/src/providers/openai-compatible.test.d.ts +0 -1
  678. package/dist/src/providers/openai-compatible.test.js +0 -53
  679. package/dist/src/providers/openai.test.d.ts +0 -1
  680. package/dist/src/providers/openai.test.js +0 -53
  681. package/dist/src/providers/pricing.test.d.ts +0 -1
  682. package/dist/src/providers/pricing.test.js +0 -81
  683. package/dist/src/providers/prompt-cache-key.spec.d.ts +0 -5
  684. package/dist/src/providers/prompt-cache-key.spec.js +0 -24
  685. package/dist/src/providers/runtime-mock.spec.d.ts +0 -8
  686. package/dist/src/providers/runtime-mock.spec.js +0 -69
  687. package/dist/src/providers/vision-proxy.test.d.ts +0 -1
  688. package/dist/src/providers/vision-proxy.test.js +0 -212
  689. package/dist/src/reporter/__tests__/acl-check.test.d.ts +0 -6
  690. package/dist/src/reporter/__tests__/acl-check.test.js +0 -59
  691. package/dist/src/reporter/__tests__/auto-fire.test.d.ts +0 -10
  692. package/dist/src/reporter/__tests__/auto-fire.test.js +0 -140
  693. package/dist/src/reporter/__tests__/budget.test.d.ts +0 -7
  694. package/dist/src/reporter/__tests__/budget.test.js +0 -60
  695. package/dist/src/reporter/__tests__/handlers.test.d.ts +0 -7
  696. package/dist/src/reporter/__tests__/handlers.test.js +0 -163
  697. package/dist/src/reporter/__tests__/query-router.test.d.ts +0 -6
  698. package/dist/src/reporter/__tests__/query-router.test.js +0 -90
  699. package/dist/src/router/__tests__/step-router.test.d.ts +0 -4
  700. package/dist/src/router/__tests__/step-router.test.js +0 -131
  701. package/dist/src/router/classifier/index.test.d.ts +0 -1
  702. package/dist/src/router/classifier/index.test.js +0 -29
  703. package/dist/src/router/classifier/regex.test.d.ts +0 -1
  704. package/dist/src/router/classifier/regex.test.js +0 -44
  705. package/dist/src/router/classifier/tree-sitter.test.d.ts +0 -1
  706. package/dist/src/router/classifier/tree-sitter.test.js +0 -23
  707. package/dist/src/router/cold.test.d.ts +0 -1
  708. package/dist/src/router/cold.test.js +0 -56
  709. package/dist/src/router/decide.test.d.ts +0 -1
  710. package/dist/src/router/decide.test.js +0 -198
  711. package/dist/src/router/health.test.d.ts +0 -1
  712. package/dist/src/router/health.test.js +0 -52
  713. package/dist/src/router/provider-sentinel.test.d.ts +0 -1
  714. package/dist/src/router/provider-sentinel.test.js +0 -20
  715. package/dist/src/router/role-override.test.d.ts +0 -1
  716. package/dist/src/router/role-override.test.js +0 -26
  717. package/dist/src/router/warm.test.d.ts +0 -1
  718. package/dist/src/router/warm.test.js +0 -202
  719. package/dist/src/scaffold/__tests__/continuation-prompt.test.d.ts +0 -4
  720. package/dist/src/scaffold/__tests__/continuation-prompt.test.js +0 -79
  721. package/dist/src/scaffold/__tests__/continue-as-council.spec.d.ts +0 -10
  722. package/dist/src/scaffold/__tests__/continue-as-council.spec.js +0 -102
  723. package/dist/src/scaffold/__tests__/dotnet-assembly-name.test.d.ts +0 -1
  724. package/dist/src/scaffold/__tests__/dotnet-assembly-name.test.js +0 -27
  725. package/dist/src/scaffold/__tests__/fe-scaffold-contents.test.d.ts +0 -1
  726. package/dist/src/scaffold/__tests__/fe-scaffold-contents.test.js +0 -106
  727. package/dist/src/scaffold/__tests__/init-new.smoke.spec.d.ts +0 -15
  728. package/dist/src/scaffold/__tests__/init-new.smoke.spec.js +0 -81
  729. package/dist/src/scaffold/__tests__/init-new.spec.d.ts +0 -5
  730. package/dist/src/scaffold/__tests__/init-new.spec.js +0 -378
  731. package/dist/src/scaffold/__tests__/install-bb-templates.spec.d.ts +0 -1
  732. package/dist/src/scaffold/__tests__/install-bb-templates.spec.js +0 -77
  733. package/dist/src/scaffold/__tests__/point-to-existing.spec.d.ts +0 -7
  734. package/dist/src/scaffold/__tests__/point-to-existing.spec.js +0 -94
  735. package/dist/src/self-qa/__tests__/agentic-context.test.d.ts +0 -1
  736. package/dist/src/self-qa/__tests__/agentic-context.test.js +0 -98
  737. package/dist/src/self-qa/__tests__/agentic-loop.test.d.ts +0 -1
  738. package/dist/src/self-qa/__tests__/agentic-loop.test.js +0 -62
  739. package/dist/src/self-qa/__tests__/delta-encoder.test.d.ts +0 -1
  740. package/dist/src/self-qa/__tests__/delta-encoder.test.js +0 -97
  741. package/dist/src/self-qa/__tests__/judge.test.d.ts +0 -1
  742. package/dist/src/self-qa/__tests__/judge.test.js +0 -131
  743. package/dist/src/self-qa/__tests__/scenario-planner.test.d.ts +0 -1
  744. package/dist/src/self-qa/__tests__/scenario-planner.test.js +0 -79
  745. package/dist/src/self-qa/__tests__/spec-emitter.test.d.ts +0 -1
  746. package/dist/src/self-qa/__tests__/spec-emitter.test.js +0 -62
  747. package/dist/src/storage/__tests__/hierarchical-session.test.d.ts +0 -1
  748. package/dist/src/storage/__tests__/hierarchical-session.test.js +0 -161
  749. package/dist/src/storage/__tests__/migrations.test.d.ts +0 -12
  750. package/dist/src/storage/__tests__/migrations.test.js +0 -357
  751. package/dist/src/storage/__tests__/sweep-stale-pending.test.d.ts +0 -10
  752. package/dist/src/storage/__tests__/sweep-stale-pending.test.js +0 -97
  753. package/dist/src/storage/__tests__/ui-interaction-log.test.d.ts +0 -7
  754. package/dist/src/storage/__tests__/ui-interaction-log.test.js +0 -127
  755. package/dist/src/storage/atomic-io.test.d.ts +0 -1
  756. package/dist/src/storage/atomic-io.test.js +0 -74
  757. package/dist/src/storage/config.test.d.ts +0 -1
  758. package/dist/src/storage/config.test.js +0 -29
  759. package/dist/src/storage/session-experience-store.test.d.ts +0 -5
  760. package/dist/src/storage/session-experience-store.test.js +0 -86
  761. package/dist/src/storage/tool-results.test.d.ts +0 -1
  762. package/dist/src/storage/tool-results.test.js +0 -48
  763. package/dist/src/storage/transcript-response-entry.test.d.ts +0 -1
  764. package/dist/src/storage/transcript-response-entry.test.js +0 -111
  765. package/dist/src/storage/transcript.test.d.ts +0 -1
  766. package/dist/src/storage/transcript.test.js +0 -22
  767. package/dist/src/storage/usage-cap.test.d.ts +0 -1
  768. package/dist/src/storage/usage-cap.test.js +0 -51
  769. package/dist/src/tools/__tests__/native-tools.test.d.ts +0 -1
  770. package/dist/src/tools/__tests__/native-tools.test.js +0 -59
  771. package/dist/src/tools/__tests__/vision-gate.test.d.ts +0 -1
  772. package/dist/src/tools/__tests__/vision-gate.test.js +0 -56
  773. package/dist/src/tools/bash-output-cache.test.d.ts +0 -1
  774. package/dist/src/tools/bash-output-cache.test.js +0 -89
  775. package/dist/src/tools/bash-output-integration.test.d.ts +0 -10
  776. package/dist/src/tools/bash-output-integration.test.js +0 -30
  777. package/dist/src/tools/bash.test.d.ts +0 -1
  778. package/dist/src/tools/bash.test.js +0 -90
  779. package/dist/src/tools/computer.test.d.ts +0 -1
  780. package/dist/src/tools/computer.test.js +0 -142
  781. package/dist/src/tools/file-tracker.test.d.ts +0 -1
  782. package/dist/src/tools/file-tracker.test.js +0 -77
  783. package/dist/src/tools/file.test.d.ts +0 -1
  784. package/dist/src/tools/file.test.js +0 -106
  785. package/dist/src/tools/git-safety.test.d.ts +0 -1
  786. package/dist/src/tools/git-safety.test.js +0 -155
  787. package/dist/src/tools/registry-bash-empty-command.test.d.ts +0 -13
  788. package/dist/src/tools/registry-bash-empty-command.test.js +0 -57
  789. package/dist/src/tools/registry-bash-footer.test.d.ts +0 -7
  790. package/dist/src/tools/registry-bash-footer.test.js +0 -82
  791. package/dist/src/tools/registry-ee-query.test.d.ts +0 -11
  792. package/dist/src/tools/registry-ee-query.test.js +0 -71
  793. package/dist/src/tools/registry-git-safety.test.d.ts +0 -7
  794. package/dist/src/tools/registry-git-safety.test.js +0 -103
  795. package/dist/src/tools/registry-session-repeat.test.d.ts +0 -12
  796. package/dist/src/tools/registry-session-repeat.test.js +0 -87
  797. package/dist/src/tools/registry.test.d.ts +0 -1
  798. package/dist/src/tools/registry.test.js +0 -34
  799. package/dist/src/tools/schedule.test.d.ts +0 -1
  800. package/dist/src/tools/schedule.test.js +0 -118
  801. package/dist/src/tools/todo-write-snapshot.test.d.ts +0 -1
  802. package/dist/src/tools/todo-write-snapshot.test.js +0 -43
  803. package/dist/src/ui/__tests__/markdown-render.test.d.ts +0 -1
  804. package/dist/src/ui/__tests__/markdown-render.test.js +0 -65
  805. package/dist/src/ui/__tests__/picker-providers.test.d.ts +0 -1
  806. package/dist/src/ui/__tests__/picker-providers.test.js +0 -31
  807. package/dist/src/ui/cards/__tests__/product-status-card.test.d.ts +0 -1
  808. package/dist/src/ui/cards/__tests__/product-status-card.test.js +0 -27
  809. package/dist/src/ui/components/__tests__/council-leader-bubble.test.d.ts +0 -1
  810. package/dist/src/ui/components/__tests__/council-leader-bubble.test.js +0 -14
  811. package/dist/src/ui/components/__tests__/council-message-bubble.test.d.ts +0 -1
  812. package/dist/src/ui/components/__tests__/council-message-bubble.test.js +0 -74
  813. package/dist/src/ui/components/__tests__/council-phase-timeline.test.d.ts +0 -1
  814. package/dist/src/ui/components/__tests__/council-phase-timeline.test.js +0 -51
  815. package/dist/src/ui/components/__tests__/council-placeholder-bubble.test.d.ts +0 -1
  816. package/dist/src/ui/components/__tests__/council-placeholder-bubble.test.js +0 -14
  817. package/dist/src/ui/components/__tests__/council-question-card.test.d.ts +0 -1
  818. package/dist/src/ui/components/__tests__/council-question-card.test.js +0 -121
  819. package/dist/src/ui/components/__tests__/council-synthesis-banner.test.d.ts +0 -1
  820. package/dist/src/ui/components/__tests__/council-synthesis-banner.test.js +0 -11
  821. package/dist/src/ui/components/__tests__/task-list-panel.test.d.ts +0 -1
  822. package/dist/src/ui/components/__tests__/task-list-panel.test.js +0 -31
  823. package/dist/src/ui/components/__tests__/use-pair-quote-buffer.test.d.ts +0 -1
  824. package/dist/src/ui/components/__tests__/use-pair-quote-buffer.test.js +0 -37
  825. package/dist/src/ui/slash/__tests__/clear.test.d.ts +0 -1
  826. package/dist/src/ui/slash/__tests__/clear.test.js +0 -58
  827. package/dist/src/ui/slash/__tests__/compact.test.d.ts +0 -1
  828. package/dist/src/ui/slash/__tests__/compact.test.js +0 -43
  829. package/dist/src/ui/slash/__tests__/cost.test.d.ts +0 -1
  830. package/dist/src/ui/slash/__tests__/cost.test.js +0 -54
  831. package/dist/src/ui/slash/__tests__/discuss.test.d.ts +0 -1
  832. package/dist/src/ui/slash/__tests__/discuss.test.js +0 -83
  833. package/dist/src/ui/slash/__tests__/execute.test.d.ts +0 -1
  834. package/dist/src/ui/slash/__tests__/execute.test.js +0 -71
  835. package/dist/src/ui/slash/__tests__/expand.test.d.ts +0 -1
  836. package/dist/src/ui/slash/__tests__/expand.test.js +0 -67
  837. package/dist/src/ui/slash/__tests__/ideal.test.d.ts +0 -1
  838. package/dist/src/ui/slash/__tests__/ideal.test.js +0 -158
  839. package/dist/src/ui/slash/__tests__/menu-parity.test.d.ts +0 -17
  840. package/dist/src/ui/slash/__tests__/menu-parity.test.js +0 -43
  841. package/dist/src/ui/slash/__tests__/optimize.test.d.ts +0 -1
  842. package/dist/src/ui/slash/__tests__/optimize.test.js +0 -130
  843. package/dist/src/ui/slash/__tests__/pin.test.d.ts +0 -1
  844. package/dist/src/ui/slash/__tests__/pin.test.js +0 -38
  845. package/dist/src/ui/slash/__tests__/plan.test.d.ts +0 -1
  846. package/dist/src/ui/slash/__tests__/plan.test.js +0 -82
  847. package/dist/src/ui/slash/__tests__/ponytail.test.d.ts +0 -1
  848. package/dist/src/ui/slash/__tests__/ponytail.test.js +0 -37
  849. package/dist/src/ui/slash/__tests__/status-render.test.d.ts +0 -7
  850. package/dist/src/ui/slash/__tests__/status-render.test.js +0 -77
  851. package/dist/src/ui/slash/route.test.d.ts +0 -1
  852. package/dist/src/ui/slash/route.test.js +0 -70
  853. package/dist/src/ui/status-bar/index.test.d.ts +0 -1
  854. package/dist/src/ui/status-bar/index.test.js +0 -139
  855. package/dist/src/ui/status-bar/store.test.d.ts +0 -1
  856. package/dist/src/ui/status-bar/store.test.js +0 -116
  857. package/dist/src/ui/status-bar/tier-badge.test.d.ts +0 -1
  858. package/dist/src/ui/status-bar/tier-badge.test.js +0 -34
  859. package/dist/src/ui/status-bar/usd-meter.test.d.ts +0 -1
  860. package/dist/src/ui/status-bar/usd-meter.test.js +0 -32
  861. package/dist/src/ui/utils/__tests__/format.test.d.ts +0 -1
  862. package/dist/src/ui/utils/__tests__/format.test.js +0 -50
  863. package/dist/src/ui/utils/__tests__/tools.test.d.ts +0 -1
  864. package/dist/src/ui/utils/__tests__/tools.test.js +0 -48
  865. package/dist/src/ui/utils/relaunch.test.d.ts +0 -1
  866. package/dist/src/ui/utils/relaunch.test.js +0 -133
  867. package/dist/src/ui/utils/text.test.d.ts +0 -1
  868. package/dist/src/ui/utils/text.test.js +0 -47
  869. package/dist/src/usage/__tests__/product-ledger.test.d.ts +0 -1
  870. package/dist/src/usage/__tests__/product-ledger.test.js +0 -60
  871. package/dist/src/usage/downgrade.test.d.ts +0 -1
  872. package/dist/src/usage/downgrade.test.js +0 -70
  873. package/dist/src/usage/estimator.test.d.ts +0 -1
  874. package/dist/src/usage/estimator.test.js +0 -38
  875. package/dist/src/usage/ledger.test.d.ts +0 -1
  876. package/dist/src/usage/ledger.test.js +0 -171
  877. package/dist/src/usage/midstream.test.d.ts +0 -1
  878. package/dist/src/usage/midstream.test.js +0 -47
  879. package/dist/src/usage/thresholds.test.d.ts +0 -1
  880. package/dist/src/usage/thresholds.test.js +0 -77
  881. package/dist/src/utils/__tests__/auto-council-settings.test.d.ts +0 -1
  882. package/dist/src/utils/__tests__/auto-council-settings.test.js +0 -41
  883. package/dist/src/utils/__tests__/compaction-caps.test.d.ts +0 -21
  884. package/dist/src/utils/__tests__/compaction-caps.test.js +0 -187
  885. package/dist/src/utils/__tests__/ee-logger.test.d.ts +0 -11
  886. package/dist/src/utils/__tests__/ee-logger.test.js +0 -165
  887. package/dist/src/utils/__tests__/file-lock.test.d.ts +0 -1
  888. package/dist/src/utils/__tests__/file-lock.test.js +0 -66
  889. package/dist/src/utils/__tests__/footprint-gitignore.test.d.ts +0 -1
  890. package/dist/src/utils/__tests__/footprint-gitignore.test.js +0 -50
  891. package/dist/src/utils/__tests__/llm-deadline-abort.test.d.ts +0 -1
  892. package/dist/src/utils/__tests__/llm-deadline-abort.test.js +0 -33
  893. package/dist/src/utils/__tests__/llm-deadline.test.d.ts +0 -1
  894. package/dist/src/utils/__tests__/llm-deadline.test.js +0 -68
  895. package/dist/src/utils/__tests__/logger.test.d.ts +0 -1
  896. package/dist/src/utils/__tests__/logger.test.js +0 -115
  897. package/dist/src/utils/__tests__/rate-limit.test.d.ts +0 -1
  898. package/dist/src/utils/__tests__/rate-limit.test.js +0 -38
  899. package/dist/src/utils/__tests__/settings-agent-first.test.d.ts +0 -1
  900. package/dist/src/utils/__tests__/settings-agent-first.test.js +0 -48
  901. package/dist/src/utils/__tests__/settings-disabled-models.test.d.ts +0 -7
  902. package/dist/src/utils/__tests__/settings-disabled-models.test.js +0 -99
  903. package/dist/src/utils/__tests__/settings-web-research.test.d.ts +0 -1
  904. package/dist/src/utils/__tests__/settings-web-research.test.js +0 -46
  905. package/dist/src/utils/__tests__/slugify.test.d.ts +0 -1
  906. package/dist/src/utils/__tests__/slugify.test.js +0 -37
  907. package/dist/src/utils/__tests__/visible-retry.test.d.ts +0 -1
  908. package/dist/src/utils/__tests__/visible-retry.test.js +0 -143
  909. package/dist/src/utils/install-manager.test.d.ts +0 -1
  910. package/dist/src/utils/install-manager.test.js +0 -169
  911. package/dist/src/utils/instructions.test.d.ts +0 -1
  912. package/dist/src/utils/instructions.test.js +0 -93
  913. package/dist/src/utils/open-url.test.d.ts +0 -1
  914. package/dist/src/utils/open-url.test.js +0 -86
  915. package/dist/src/utils/permission-mode.test.d.ts +0 -1
  916. package/dist/src/utils/permission-mode.test.js +0 -188
  917. package/dist/src/utils/redactor.test.d.ts +0 -1
  918. package/dist/src/utils/redactor.test.js +0 -84
  919. package/dist/src/utils/settings.test.d.ts +0 -1
  920. package/dist/src/utils/settings.test.js +0 -212
  921. package/dist/src/utils/shell.test.d.ts +0 -1
  922. package/dist/src/utils/shell.test.js +0 -97
  923. package/dist/src/utils/skills.test.d.ts +0 -1
  924. package/dist/src/utils/skills.test.js +0 -45
  925. package/dist/src/utils/subagent-display.test.d.ts +0 -1
  926. package/dist/src/utils/subagent-display.test.js +0 -21
  927. package/dist/src/utils/subagents-settings.test.d.ts +0 -1
  928. package/dist/src/utils/subagents-settings.test.js +0 -64
  929. package/dist/src/utils/telegram-audio-settings.test.d.ts +0 -1
  930. package/dist/src/utils/telegram-audio-settings.test.js +0 -39
  931. package/dist/src/utils/update-checker.test.d.ts +0 -1
  932. package/dist/src/utils/update-checker.test.js +0 -142
  933. package/dist/src/verify/__tests__/coverage-parsers.test.d.ts +0 -1
  934. package/dist/src/verify/__tests__/coverage-parsers.test.js +0 -69
  935. package/dist/src/verify/__tests__/dotnet-recipe.test.d.ts +0 -10
  936. package/dist/src/verify/__tests__/dotnet-recipe.test.js +0 -70
  937. package/dist/src/verify/checkpoint.test.d.ts +0 -1
  938. package/dist/src/verify/checkpoint.test.js +0 -160
  939. package/dist/src/verify/entrypoint.test.d.ts +0 -1
  940. package/dist/src/verify/entrypoint.test.js +0 -233
  941. package/dist/src/verify/environment.test.d.ts +0 -1
  942. package/dist/src/verify/environment.test.js +0 -94
  943. package/dist/src/verify/orchestrator.test.d.ts +0 -1
  944. package/dist/src/verify/orchestrator.test.js +0 -126
  945. package/dist/src/verify/runtime-prep.test.d.ts +0 -1
  946. package/dist/src/verify/runtime-prep.test.js +0 -38
@@ -1,67 +0,0 @@
1
- import { describe, expect, it } from "vitest";
2
- import { startStubEEServer } from "../__test-stubs__/ee-server.js";
3
- import { createEEClient } from "../ee/client.js";
4
- import { extractSession } from "../ee/extract-session.js";
5
- import { setDefaultEEClient } from "../ee/intercept.js";
6
- // ─── Helpers ──────────────────────────────────────────────────────────────────
7
- function buildTestMessages(userCount) {
8
- const msgs = [];
9
- for (let i = 0; i < userCount; i++) {
10
- msgs.push({ role: "user", content: `Message ${i + 1}` });
11
- msgs.push({ role: "assistant", content: `Response ${i + 1}` });
12
- }
13
- return msgs;
14
- }
15
- // ─── Tests ────────────────────────────────────────────────────────────────────
16
- describe("cleanup -> extractSession -> /api/extract integration", () => {
17
- // Stub server started fresh per test via beforeEach / per-test setup
18
- // afterAll cleanup is handled within each test using try/finally
19
- it("Test 1 (EXTRACT-01): extractSession hits /api/extract on stub server with correct source", async () => {
20
- const stub = await startStubEEServer();
21
- const client = createEEClient({ baseUrl: `http://127.0.0.1:${stub.port}` });
22
- setDefaultEEClient(client);
23
- try {
24
- // 6 user messages — exceeds 5-message threshold
25
- await extractSession(buildTestMessages(6), "/tmp/test-project", "cli-exit", "session-abc");
26
- expect(stub.calls.extract.length).toBe(1);
27
- expect(stub.calls.extract[0].meta?.source).toBe("cli-exit");
28
- expect(stub.calls.extract[0].projectPath).toBe("/tmp/test-project");
29
- }
30
- finally {
31
- setDefaultEEClient(null);
32
- await stub.stop();
33
- }
34
- });
35
- it("Test 2 (EXTRACT-03): extractSession completes within 2.5s against 3s-latency stub", async () => {
36
- const stub = await startStubEEServer({ latencyMs: 3000 });
37
- const client = createEEClient({ baseUrl: `http://127.0.0.1:${stub.port}` });
38
- setDefaultEEClient(client);
39
- try {
40
- const start = Date.now();
41
- // Should complete quickly because AbortSignal.timeout(2000) fires
42
- await extractSession(buildTestMessages(6), "/tmp/test-project", "cli-exit");
43
- const elapsed = Date.now() - start;
44
- // AbortSignal(2000ms) fires and error is swallowed — must complete in < 2500ms
45
- expect(elapsed).toBeLessThan(2500);
46
- // Request was aborted before server responded — no extract calls logged
47
- expect(stub.calls.extract.length).toBe(0);
48
- }
49
- finally {
50
- setDefaultEEClient(null);
51
- await stub.stop();
52
- }
53
- });
54
- it("Test 3 (D-05): extractSession resolves without throwing when EE server is unreachable", async () => {
55
- // Point at port 1 — nothing listening there
56
- const client = createEEClient({ baseUrl: "http://127.0.0.1:1" });
57
- setDefaultEEClient(client);
58
- try {
59
- // Must resolve (not throw) even when server is unreachable
60
- await expect(extractSession(buildTestMessages(6), "/tmp/test-project", "cli-exit")).resolves.toBeUndefined();
61
- }
62
- finally {
63
- setDefaultEEClient(null);
64
- }
65
- });
66
- });
67
- //# sourceMappingURL=cleanup.test.js.map
@@ -1 +0,0 @@
1
- export {};
@@ -1,187 +0,0 @@
1
- import { afterAll, beforeAll, describe, expect, it } from "vitest";
2
- import { buildEffectiveTranscript } from "../storage/transcript-view.js";
3
- import { COMPACTION_META_MAX_OUTPUT_TOKENS, COMPACTION_SUMMARY_HEADER, createCompactionSummaryMessage, findCutPoint, metaCompactionMaxTokens, prepareCompaction, serializeConversation, shouldCompactContext, } from "./compaction.js";
4
- import { buildCheckpointReminder } from "./scope-reminder.js";
5
- import { __forceFallbackForTests } from "./token-counter.js";
6
- // Pin token counts to the chars/4 fallback so cut-point assertions remain stable.
7
- // The real BPE tokenizer is exercised by token-counter's own tests.
8
- beforeAll(() => __forceFallbackForTests(true));
9
- afterAll(() => __forceFallbackForTests(false));
10
- function user(text) {
11
- return { role: "user", content: text };
12
- }
13
- function assistantText(text) {
14
- return {
15
- role: "assistant",
16
- content: [{ type: "text", text }],
17
- };
18
- }
19
- function assistantToolCall(toolCallId, toolName, input = {}) {
20
- return {
21
- role: "assistant",
22
- content: [{ type: "tool-call", toolCallId, toolName, input }],
23
- };
24
- }
25
- function toolResult(toolCallId, toolName, output) {
26
- return {
27
- role: "tool",
28
- content: [{ type: "tool-result", toolCallId, toolName, output }],
29
- };
30
- }
31
- describe("compaction helpers", () => {
32
- it("triggers when context exceeds reserved headroom", () => {
33
- const settings = { reserveTokens: 100, keepRecentTokens: 40 };
34
- expect(shouldCompactContext(901, 1000, settings)).toBe(true);
35
- expect(shouldCompactContext(900, 1000, settings)).toBe(false);
36
- });
37
- it("never selects a tool-result message as the cut point", () => {
38
- const messages = [
39
- user("inspect this file"),
40
- assistantToolCall("call-1", "read_file", { path: "src/index.ts" }),
41
- toolResult("call-1", "read_file", "x".repeat(400)),
42
- assistantText("I found the relevant section."),
43
- user("continue"),
44
- ];
45
- const cutPoint = findCutPoint(messages, 0, 130);
46
- expect(cutPoint.firstKeptIndex).not.toBe(2);
47
- expect(messages[cutPoint.firstKeptIndex]?.role).not.toBe("tool");
48
- });
49
- it("detects split turns and captures the turn prefix for summarization", () => {
50
- const messages = [
51
- user("Refactor the session loader."),
52
- assistantText("a".repeat(320)),
53
- assistantText("recent status update"),
54
- ];
55
- const preparation = prepareCompaction(messages, "system prompt", {
56
- reserveTokens: 100,
57
- keepRecentTokens: 5,
58
- });
59
- expect(preparation).not.toBeNull();
60
- expect(preparation?.isSplitTurn).toBe(true);
61
- expect(preparation?.messagesToSummarize).toHaveLength(0);
62
- expect(preparation?.turnPrefixMessages).toHaveLength(2);
63
- expect(preparation?.keptMessages).toHaveLength(1);
64
- });
65
- it("excludes the previous summary message from new compaction input", () => {
66
- const messages = [
67
- createCompactionSummaryMessage("Earlier work"),
68
- user("Handle migration edge cases"),
69
- assistantText("I added the table and loader changes."),
70
- user("Now wire the retry path"),
71
- ];
72
- const preparation = prepareCompaction(messages, "system prompt", {
73
- reserveTokens: 100,
74
- keepRecentTokens: 4,
75
- });
76
- expect(preparation).not.toBeNull();
77
- expect(preparation?.previousSummary).toBe("Earlier work");
78
- expect(preparation?.messagesToSummarize[0]).toEqual(user("Handle migration edge cases"));
79
- expect(preparation?.messagesToSummarize.some((message) => message.role === "system")).toBe(false);
80
- });
81
- it("serializes tool results with truncation markers", () => {
82
- const transcript = serializeConversation([user("Read the output"), toolResult("call-1", "bash", "x".repeat(8105))]);
83
- expect(transcript).toContain("[Tool result from bash]:");
84
- expect(transcript).toContain("more characters truncated");
85
- });
86
- it("preserves both head and tail of long tool results", () => {
87
- // Distinctive head and tail tokens — head-only truncation would lose the tail.
88
- const head = "HEAD_MARKER_START";
89
- const tail = "TAIL_MARKER_END";
90
- const filler = "x".repeat(10_000);
91
- const payload = `${head}${filler}${tail}`;
92
- const transcript = serializeConversation([user("read"), toolResult("call-1", "bash", payload)]);
93
- expect(transcript).toContain(head);
94
- expect(transcript).toContain(tail);
95
- expect(transcript).toContain("more characters truncated");
96
- });
97
- it("dedupes identical large tool-result payloads across history + turn-prefix slices", () => {
98
- const bigOutput = "y".repeat(2000); // > DEDUP_MIN_CHARS (500)
99
- const messages = [
100
- user("read it"),
101
- assistantToolCall("c1", "read_file", { path: "src/a.ts" }),
102
- toolResult("c1", "read_file", bigOutput),
103
- assistantText("ok"),
104
- user("read it again"),
105
- assistantToolCall("c2", "read_file", { path: "src/a.ts" }),
106
- toolResult("c2", "read_file", bigOutput),
107
- assistantText("done"),
108
- user("latest"),
109
- assistantText("recent reply"),
110
- ];
111
- const preparation = prepareCompaction(messages, "system", {
112
- reserveTokens: 100,
113
- keepRecentTokens: 50,
114
- });
115
- expect(preparation).not.toBeNull();
116
- const fullSlice = [...(preparation?.messagesToSummarize ?? []), ...(preparation?.turnPrefixMessages ?? [])];
117
- const serialized = serializeConversation(fullSlice);
118
- // First occurrence kept verbatim, second replaced with the elision marker.
119
- expect(serialized).toContain("Identical to earlier read_file result");
120
- expect(serialized.match(/y{2000}/g) ?? []).toHaveLength(1);
121
- });
122
- it("builds the effective transcript from the latest persisted checkpoint", () => {
123
- const rawMessages = [
124
- user("old request"),
125
- assistantText("old answer"),
126
- user("new request"),
127
- assistantText("new answer"),
128
- user("latest request"),
129
- ];
130
- const seqs = [1, 2, 3, 4, 5];
131
- const timestamps = seqs.map((seq) => new Date(`2026-03-20T00:00:0${seq}.000Z`));
132
- const checkpoint = {
133
- firstKeptSeq: 4,
134
- summary: "Summarized old work",
135
- tokensBefore: 1234,
136
- createdAt: new Date("2026-03-20T00:00:10.000Z"),
137
- };
138
- const transcript = buildEffectiveTranscript(rawMessages, seqs, timestamps, checkpoint);
139
- expect(transcript.messages).toHaveLength(3);
140
- expect(transcript.seqs).toEqual([null, 4, 5]);
141
- expect(transcript.messages[0]).toEqual(createCompactionSummaryMessage("Summarized old work"));
142
- expect(transcript.messages[0]?.role === "system" && typeof transcript.messages[0].content === "string"
143
- ? transcript.messages[0].content
144
- : "").toContain(COMPACTION_SUMMARY_HEADER);
145
- });
146
- it("creates compaction summary with EE-extractable checkpoint meta (Progress ✔ DONE shape for pilContext/layer3)", () => {
147
- // This is the exact text shape persisted to EE behavioral collection on cli-compact-checkpoint
148
- // (orchestrator compactForContext + extract). Layer 3 searches for it; agent uses via "task finished?".
149
- const summaryMsg = createCompactionSummaryMessage("Goal: implement anti-mu\nPlan: Phase 1-3\nProgress: ✔ DONE dedup marker\n↻ In Progress: layer1 enrich");
150
- const content = typeof summaryMsg.content === "string" ? summaryMsg.content : "";
151
- expect(content).toContain("Context checkpoint summary");
152
- expect(content).toContain("✔ DONE");
153
- expect(content).toContain("Progress");
154
- expect(summaryMsg.role).toBe("system");
155
- });
156
- it("buildCheckpointReminder now includes PRESERVE + KEEP_TOOL_IDS + tool-artifact query for anti-mù (ideas 3+4)", () => {
157
- const r = buildCheckpointReminder(3, true);
158
- expect(r).toContain("PRESERVE");
159
- expect(r).toContain("KEEP_TOOL_IDS");
160
- expect(r).toContain("tool-artifact");
161
- });
162
- });
163
- describe("metaCompactionMaxTokens — meta summary cap (tunable, session 2b7a10219499)", () => {
164
- it("defaults to 1536 — looser than the old hard 1024, still well below the 14k-char problem", () => {
165
- delete process.env.MUONROI_META_COMPACT_MAX_TOKENS;
166
- expect(metaCompactionMaxTokens()).toBe(COMPACTION_META_MAX_OUTPUT_TOKENS);
167
- expect(COMPACTION_META_MAX_OUTPUT_TOKENS).toBe(1536);
168
- expect(COMPACTION_META_MAX_OUTPUT_TOKENS).toBeGreaterThan(1024);
169
- });
170
- it("honors a valid MUONROI_META_COMPACT_MAX_TOKENS override", () => {
171
- process.env.MUONROI_META_COMPACT_MAX_TOKENS = "2048";
172
- try {
173
- expect(metaCompactionMaxTokens()).toBe(2048);
174
- }
175
- finally {
176
- delete process.env.MUONROI_META_COMPACT_MAX_TOKENS;
177
- }
178
- });
179
- it("clamps out-of-range / garbage overrides to the default", () => {
180
- for (const bad of ["999999", "100", "-5", "abc", ""]) {
181
- process.env.MUONROI_META_COMPACT_MAX_TOKENS = bad;
182
- expect(metaCompactionMaxTokens(), bad).toBe(COMPACTION_META_MAX_OUTPUT_TOKENS);
183
- }
184
- delete process.env.MUONROI_META_COMPACT_MAX_TOKENS;
185
- });
186
- });
187
- //# sourceMappingURL=compaction.test.js.map
@@ -1 +0,0 @@
1
- export {};
@@ -1,107 +0,0 @@
1
- import fs from "node:fs";
2
- import os from "node:os";
3
- import path from "node:path";
4
- import { afterEach, describe, expect, it, vi } from "vitest";
5
- const tempDirs = [];
6
- function makeTempDir(prefix) {
7
- const dir = fs.mkdtempSync(path.join(os.tmpdir(), prefix));
8
- tempDirs.push(dir);
9
- return dir;
10
- }
11
- function readStoredDelegationRecord(home) {
12
- const delegationsRoot = path.join(home, ".muonroi-cli", "delegations");
13
- const projectDirs = fs.readdirSync(delegationsRoot);
14
- expect(projectDirs).toHaveLength(1);
15
- const projectDir = path.join(delegationsRoot, projectDirs[0]);
16
- const files = fs.readdirSync(projectDir).filter((file) => file.endsWith(".json"));
17
- expect(files).toHaveLength(1);
18
- return JSON.parse(fs.readFileSync(path.join(projectDir, files[0]), "utf8"));
19
- }
20
- async function importDelegationsModule(options = {}) {
21
- vi.resetModules();
22
- vi.doUnmock("os");
23
- vi.doUnmock("child_process");
24
- if (options.home) {
25
- const osActual = await vi.importActual("os");
26
- vi.doMock("os", () => ({
27
- ...osActual,
28
- default: { ...osActual, homedir: () => options.home },
29
- homedir: () => options.home,
30
- }));
31
- }
32
- if (options.spawnMock) {
33
- const cpActual = await vi.importActual("child_process");
34
- vi.doMock("child_process", () => ({
35
- ...cpActual,
36
- spawn: options.spawnMock,
37
- }));
38
- }
39
- return import("./delegations.js");
40
- }
41
- afterEach(() => {
42
- for (const dir of tempDirs.splice(0)) {
43
- fs.rmSync(dir, { recursive: true, force: true, maxRetries: 10, retryDelay: 50 });
44
- }
45
- vi.restoreAllMocks();
46
- vi.resetModules();
47
- vi.doUnmock("os");
48
- vi.doUnmock("child_process");
49
- });
50
- describe("DelegationManager sandbox propagation", () => {
51
- it("persists sandbox mode in background delegation records", async () => {
52
- const home = makeTempDir("muonroi-delegation-home-");
53
- const cwd = makeTempDir("muonroi-delegation-cwd-");
54
- const spawnMock = vi.fn(() => ({
55
- pid: 2468,
56
- unref: vi.fn(),
57
- }));
58
- const mod = await importDelegationsModule({ home, spawnMock });
59
- const manager = new mod.DelegationManager(() => cwd);
60
- const result = await manager.start({
61
- agent: "explore",
62
- description: "Inspect the repo",
63
- prompt: "Find the execution path.",
64
- }, {
65
- model: "muonroi-test-model",
66
- sandboxMode: "shuru",
67
- maxToolRounds: 25,
68
- maxTokens: 2048,
69
- });
70
- expect(result.success).toBe(true);
71
- expect(spawnMock).toHaveBeenCalledWith(process.execPath, expect.arrayContaining(["--directory", cwd]), expect.objectContaining({ cwd }));
72
- const record = readStoredDelegationRecord(home);
73
- expect(record.sandboxMode).toBe("shuru");
74
- expect(record.pid).toBe(2468);
75
- });
76
- it("persists sandbox settings in background delegation records", async () => {
77
- const home = makeTempDir("muonroi-delegation-home-");
78
- const cwd = makeTempDir("muonroi-delegation-cwd-");
79
- const spawnMock = vi.fn(() => ({
80
- pid: 3579,
81
- unref: vi.fn(),
82
- }));
83
- const mod = await importDelegationsModule({ home, spawnMock });
84
- const manager = new mod.DelegationManager(() => cwd);
85
- const sandboxSettings = {
86
- allowNet: true,
87
- allowedHosts: ["api.openai.com"],
88
- cpus: 4,
89
- memory: 4096,
90
- };
91
- await manager.start({
92
- agent: "explore",
93
- description: "Inspect",
94
- prompt: "Look around",
95
- }, {
96
- model: "muonroi-test-model",
97
- sandboxMode: "shuru",
98
- sandboxSettings,
99
- maxToolRounds: 25,
100
- maxTokens: 2048,
101
- });
102
- const record = readStoredDelegationRecord(home);
103
- expect(record.sandboxMode).toBe("shuru");
104
- expect(record.sandboxSettings).toEqual(sandboxSettings);
105
- });
106
- });
107
- //# sourceMappingURL=delegations.test.js.map
@@ -1 +0,0 @@
1
- export {};
@@ -1,94 +0,0 @@
1
- import { describe, expect, it } from "vitest";
2
- import { buildGroundingFootnote, findUnverifiedClaims } from "./grounding-check.js";
3
- describe("findUnverifiedClaims — count claims", () => {
4
- it("flags an exact count not present in the tool-output corpus", () => {
5
- // The decisive live case: deepseek claimed 67 tests while no command output
6
- // contained 67 (actual 401). corpus has no '67'.
7
- const claims = findUnverifiedClaims("There are 67 tests in the repository.", "ran find; output: 401\n");
8
- expect(claims.some((c) => c.kind === "count" && c.value === "67")).toBe(true);
9
- });
10
- it("does NOT flag a count that appears verbatim in the corpus", () => {
11
- const claims = findUnverifiedClaims("There are 401 tests.", "$ find src -name '*.test.ts' | wc -l\n401\n");
12
- expect(claims).toHaveLength(0);
13
- });
14
- it("matches counts with thousands separators against an unseparated corpus", () => {
15
- // Model prints '1,273 commits'; git output is '1273'. Should be VERIFIED.
16
- const claims = findUnverifiedClaims("The repo has 1,273 commits.", "$ git rev-list --count HEAD\n1273\n");
17
- expect(claims).toHaveLength(0);
18
- });
19
- it("ignores small numbers (< 10) — too common, low risk", () => {
20
- expect(findUnverifiedClaims("Fixed 3 files.", "")).toHaveLength(0);
21
- });
22
- it("ignores percentages, multipliers, versions, money", () => {
23
- const text = "97% cache hit, 16x faster, v0.4.0 shipped, $50 saved across 99 files.";
24
- // Only "99 files" is a real count claim; the rest must be skipped. corpus
25
- // lacks 99 -> 99 flagged, others NOT.
26
- const claims = findUnverifiedClaims(text, "");
27
- expect(claims.map((c) => c.value)).toEqual(["99"]);
28
- });
29
- it("ignores hedged/approximate numbers (presented as estimates, not facts)", () => {
30
- const text = "~130,220 lines, about 500 files, roughly 40 modules.";
31
- expect(findUnverifiedClaims(text, "")).toHaveLength(0);
32
- });
33
- it("only counts a number when followed by a recognised count noun", () => {
34
- // A bare number with no count noun is not a verifiable 'count claim'.
35
- expect(findUnverifiedClaims("The answer is 42 ultimately.", "")).toHaveLength(0);
36
- });
37
- // Gap found in the live deepseek-vs-gemini comparison (2026-06-04): deepseek
38
- // emitted "total lines of code across all .ts files in src/: 10026" — a
39
- // fabricated count where the NOUN precedes the NUMBER (separated by a colon),
40
- // which the number-then-noun pattern missed. Cover the noun→:/=→number shape.
41
- it("flags a noun-before-number count claim (noun : number)", () => {
42
- const claims = findUnverifiedClaims("Total lines of code across all .ts files in src/: 10026.", "");
43
- expect(claims.some((c) => c.kind === "count" && c.value === "10026")).toBe(true);
44
- });
45
- it("flags a noun = number claim", () => {
46
- const claims = findUnverifiedClaims("Estimated modules = 240 in the repo.", "");
47
- expect(claims.some((c) => c.kind === "count" && c.value === "240")).toBe(true);
48
- });
49
- it("does NOT flag a noun:number when the number is in the corpus", () => {
50
- expect(findUnverifiedClaims("Total commits: 1,273.", "$ git rev-list --count HEAD\n1273\n")).toHaveLength(0);
51
- });
52
- it("does NOT flag a hedged noun:number", () => {
53
- expect(findUnverifiedClaims("Total lines: ~10026.", "")).toHaveLength(0);
54
- });
55
- it("does NOT treat 'line 42' (no separator) as a count claim", () => {
56
- // file:line context — handled separately; must not become a count claim.
57
- expect(findUnverifiedClaims("See line 42 for details.", "").filter((c) => c.kind === "count")).toHaveLength(0);
58
- });
59
- });
60
- describe("findUnverifiedClaims — file:line claims", () => {
61
- it("flags a file:line whose file never appears in the corpus", () => {
62
- const claims = findUnverifiedClaims("The bug is at app.tsx:836.", "read src/index.ts lines 1-40\n");
63
- expect(claims.some((c) => c.kind === "fileline" && c.value === "app.tsx:836")).toBe(true);
64
- });
65
- it("does NOT flag a file:line whose file was read/grepped this turn", () => {
66
- const claims = findUnverifiedClaims("See app.tsx:836.", "$ read_file app.tsx\n...contents of app.tsx...\n");
67
- expect(claims).toHaveLength(0);
68
- });
69
- });
70
- describe("findUnverifiedClaims — bounds & dedup", () => {
71
- it("caps the number of returned claims", () => {
72
- const text = "100 files, 200 files, 300 files, 400 files, 500 files, 600 files, 700 files.";
73
- expect(findUnverifiedClaims(text, "").length).toBeLessThanOrEqual(5);
74
- });
75
- it("returns empty for empty text", () => {
76
- expect(findUnverifiedClaims("", "anything")).toHaveLength(0);
77
- });
78
- });
79
- describe("buildGroundingFootnote", () => {
80
- it("returns empty string when there are no claims", () => {
81
- expect(buildGroundingFootnote([])).toBe("");
82
- });
83
- it("lists the unverified claims with an advisory (non-accusatory) tone", () => {
84
- const note = buildGroundingFootnote([
85
- { kind: "count", value: "67", text: "67 tests" },
86
- { kind: "fileline", value: "app.tsx:836", text: "app.tsx:836" },
87
- ]);
88
- expect(note).toMatch(/unverified/i);
89
- expect(note).toMatch(/67 tests/);
90
- expect(note).toMatch(/app\.tsx:836/);
91
- expect(note).toMatch(/may be derived|confirm/i);
92
- });
93
- });
94
- //# sourceMappingURL=grounding-check.test.js.map
@@ -1 +0,0 @@
1
- export {};
@@ -1,34 +0,0 @@
1
- import { describe, expect, it } from "vitest";
2
- import { buildInterruptedTurnNote } from "./interrupted-turn.js";
3
- describe("buildInterruptedTurnNote", () => {
4
- it("is never empty — so the stalled turn always leaves a trace in history", () => {
5
- expect(buildInterruptedTurnNote("", []).length).toBeGreaterThan(0);
6
- });
7
- it("records the interruption and the tools that were issued", () => {
8
- const note = buildInterruptedTurnNote("", ["bash", "read_file", "grep"]);
9
- expect(note).toMatch(/interrupted|stall/i);
10
- expect(note).toMatch(/bash/);
11
- expect(note).toMatch(/read_file/);
12
- expect(note).toMatch(/3 tool/); // count
13
- });
14
- it("warns against blindly redoing partially-applied work", () => {
15
- expect(buildInterruptedTurnNote("", ["bash"])).toMatch(/partial|re-check|recheck/i);
16
- });
17
- it("prepends any partial assistant text before the note", () => {
18
- const note = buildInterruptedTurnNote("Here is what I found so far:", ["bash"]);
19
- expect(note.startsWith("Here is what I found so far:")).toBe(true);
20
- expect(note).toMatch(/interrupted|stall/i);
21
- });
22
- it("dedupes tool names but keeps the raw count", () => {
23
- const note = buildInterruptedTurnNote("", ["bash", "bash", "bash", "read_file"]);
24
- expect(note).toMatch(/4 tool/); // raw count
25
- // bash listed once
26
- expect(note.match(/bash/g)?.length).toBe(1);
27
- });
28
- it("handles the no-tools case with a generic note", () => {
29
- const note = buildInterruptedTurnNote("", []);
30
- expect(note).toMatch(/interrupted|stall/i);
31
- expect(note).not.toMatch(/tool call/);
32
- });
33
- });
34
- //# sourceMappingURL=interrupted-turn.test.js.map
@@ -1 +0,0 @@
1
- export {};
@@ -1,24 +0,0 @@
1
- import { describe, expect, it } from "vitest";
2
- import { lastPersistedSeq } from "./message-seq.js";
3
- describe("lastPersistedSeq", () => {
4
- it("returns null for empty array", () => {
5
- expect(lastPersistedSeq([])).toBeNull();
6
- });
7
- it("returns null when all entries are null", () => {
8
- expect(lastPersistedSeq([null, null, null])).toBeNull();
9
- });
10
- it("returns the last numeric entry when trailing nulls exist", () => {
11
- expect(lastPersistedSeq([1, 2, 3, null, null])).toBe(3);
12
- });
13
- it("returns the highest seq when the last entry is numeric", () => {
14
- expect(lastPersistedSeq([1, 2, 3])).toBe(3);
15
- });
16
- it("skips over interrupted/stub gaps", () => {
17
- expect(lastPersistedSeq([5, null, 7, null, 9, null])).toBe(9);
18
- });
19
- it("returns 0 (not null) when 0 is a valid seq", () => {
20
- expect(lastPersistedSeq([0])).toBe(0);
21
- expect(lastPersistedSeq([0, null])).toBe(0);
22
- });
23
- });
24
- //# sourceMappingURL=message-seq.test.js.map
@@ -1 +0,0 @@
1
- export {};