muonroi-cli 1.8.0 → 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 (975) hide show
  1. package/dist/src/agent-harness/mock-model.js +112 -4
  2. package/dist/src/cli/cost-forensics.js +7 -4
  3. package/dist/src/flow/compaction/index.d.ts +1 -0
  4. package/dist/src/flow/compaction/index.js +4 -0
  5. package/dist/src/generated/version.d.ts +1 -1
  6. package/dist/src/generated/version.js +1 -1
  7. package/dist/src/index.js +4 -2
  8. package/dist/src/lsp/manager.js +11 -3
  9. package/dist/src/mcp/auto-setup.js +0 -8
  10. package/dist/src/mcp/self-verify-jobs.d.ts +1 -0
  11. package/dist/src/mcp/self-verify-runner.js +1 -1
  12. package/dist/src/mcp/setup-guide-text.d.ts +1 -1
  13. package/dist/src/mcp/setup-guide-text.js +3 -1
  14. package/dist/src/orchestrator/auto-commit.js +9 -7
  15. package/dist/src/orchestrator/message-processor.d.ts +2 -0
  16. package/dist/src/orchestrator/message-processor.js +7 -0
  17. package/dist/src/orchestrator/orchestrator.d.ts +3 -0
  18. package/dist/src/orchestrator/orchestrator.js +371 -28
  19. package/dist/src/orchestrator/pending-calls.js +2 -1
  20. package/dist/src/orchestrator/preprocessor.js +3 -2
  21. package/dist/src/orchestrator/prompts.d.ts +8 -0
  22. package/dist/src/orchestrator/prompts.js +224 -177
  23. package/dist/src/orchestrator/sub-agent-cap.d.ts +2 -0
  24. package/dist/src/orchestrator/sub-agent-cap.js +12 -4
  25. package/dist/src/orchestrator/subagent-compactor.d.ts +7 -0
  26. package/dist/src/orchestrator/subagent-compactor.js +65 -14
  27. package/dist/src/orchestrator/tool-engine.d.ts +2 -0
  28. package/dist/src/orchestrator/tool-engine.js +80 -21
  29. package/dist/src/orchestrator/turn-runner-deps.d.ts +2 -0
  30. package/dist/src/pil/llm-classify.d.ts +11 -0
  31. package/dist/src/pil/llm-classify.js +193 -0
  32. package/dist/src/self-qa/agentic-loop.js +30 -21
  33. package/dist/src/storage/index.d.ts +1 -1
  34. package/dist/src/storage/index.js +1 -1
  35. package/dist/src/storage/migrations.js +13 -1
  36. package/dist/src/storage/transcript.d.ts +2 -0
  37. package/dist/src/storage/transcript.js +304 -178
  38. package/dist/src/storage/usage.js +22 -5
  39. package/dist/src/tools/native-tools.js +10 -1
  40. package/dist/src/tools/registry.d.ts +1 -0
  41. package/dist/src/tools/registry.js +30 -2
  42. package/dist/src/types/index.d.ts +1 -1
  43. package/dist/src/ui/app.js +0 -0
  44. package/dist/src/ui/slash/expand.js +14 -1
  45. package/dist/src/ui/use-app-logic.js +0 -0
  46. package/dist/src/utils/install-manager.d.ts +2 -0
  47. package/dist/src/utils/install-manager.js +105 -7
  48. package/dist/src/utils/logger.d.ts +28 -0
  49. package/dist/src/utils/logger.js +171 -0
  50. package/dist/src/utils/settings.d.ts +9 -1
  51. package/dist/src/utils/settings.js +59 -22
  52. package/dist/src/utils/update-checker.js +12 -2
  53. package/package.json +8 -1
  54. package/dist/src/__test-helpers__/catalog-fixtures.d.ts +0 -22
  55. package/dist/src/__test-helpers__/catalog-fixtures.js +0 -55
  56. package/dist/src/__test-stubs__/ee-server.d.ts +0 -27
  57. package/dist/src/__test-stubs__/ee-server.js +0 -138
  58. package/dist/src/__test-stubs__/vitest-setup.d.ts +0 -1
  59. package/dist/src/__test-stubs__/vitest-setup.js +0 -38
  60. package/dist/src/__tests__/council/bubble-layout.test.d.ts +0 -1
  61. package/dist/src/__tests__/council/bubble-layout.test.js +0 -39
  62. package/dist/src/__tests__/council/code-block-truncate.test.d.ts +0 -1
  63. package/dist/src/__tests__/council/code-block-truncate.test.js +0 -45
  64. package/dist/src/__tests__/council/role-palette.test.d.ts +0 -1
  65. package/dist/src/__tests__/council/role-palette.test.js +0 -59
  66. package/dist/src/__tests__/first-run-wizard.test.d.ts +0 -1
  67. package/dist/src/__tests__/first-run-wizard.test.js +0 -9
  68. package/dist/src/agent-harness/__tests__/cli-flags.spec.d.ts +0 -1
  69. package/dist/src/agent-harness/__tests__/cli-flags.spec.js +0 -33
  70. package/dist/src/agent-harness/__tests__/driver.spec.d.ts +0 -1
  71. package/dist/src/agent-harness/__tests__/driver.spec.js +0 -141
  72. package/dist/src/agent-harness/__tests__/idle.spec.d.ts +0 -1
  73. package/dist/src/agent-harness/__tests__/idle.spec.js +0 -84
  74. package/dist/src/agent-harness/__tests__/mock-llm.spec.d.ts +0 -1
  75. package/dist/src/agent-harness/__tests__/mock-llm.spec.js +0 -91
  76. package/dist/src/agent-harness/__tests__/mock-model.spec.d.ts +0 -5
  77. package/dist/src/agent-harness/__tests__/mock-model.spec.js +0 -270
  78. package/dist/src/agent-harness/__tests__/predicate.spec.d.ts +0 -1
  79. package/dist/src/agent-harness/__tests__/predicate.spec.js +0 -27
  80. package/dist/src/agent-harness/__tests__/protocol.spec.d.ts +0 -1
  81. package/dist/src/agent-harness/__tests__/protocol.spec.js +0 -56
  82. package/dist/src/agent-harness/__tests__/schema.spec.d.ts +0 -1
  83. package/dist/src/agent-harness/__tests__/schema.spec.js +0 -76
  84. package/dist/src/agent-harness/__tests__/selector.spec.d.ts +0 -1
  85. package/dist/src/agent-harness/__tests__/selector.spec.js +0 -70
  86. package/dist/src/agent-harness/__tests__/sidechannel.spec.d.ts +0 -1
  87. package/dist/src/agent-harness/__tests__/sidechannel.spec.js +0 -29
  88. package/dist/src/agent-harness/__tests__/spec-helpers.spec.d.ts +0 -1
  89. package/dist/src/agent-harness/__tests__/spec-helpers.spec.js +0 -68
  90. package/dist/src/chat/__tests__/broadcast-bus.test.d.ts +0 -1
  91. package/dist/src/chat/__tests__/broadcast-bus.test.js +0 -81
  92. package/dist/src/chat/__tests__/channel-manager.test.d.ts +0 -1
  93. package/dist/src/chat/__tests__/channel-manager.test.js +0 -133
  94. package/dist/src/chat/__tests__/client.test.d.ts +0 -1
  95. package/dist/src/chat/__tests__/client.test.js +0 -109
  96. package/dist/src/chat/__tests__/discord-integration.test.d.ts +0 -1
  97. package/dist/src/chat/__tests__/discord-integration.test.js +0 -153
  98. package/dist/src/chat/__tests__/intent-prompt.test.d.ts +0 -1
  99. package/dist/src/chat/__tests__/intent-prompt.test.js +0 -80
  100. package/dist/src/chat/__tests__/verdict-resolver.test.d.ts +0 -1
  101. package/dist/src/chat/__tests__/verdict-resolver.test.js +0 -308
  102. package/dist/src/cli/__tests__/bw-vault.test.d.ts +0 -1
  103. package/dist/src/cli/__tests__/bw-vault.test.js +0 -87
  104. package/dist/src/cli/__tests__/keys-bundle.test.d.ts +0 -1
  105. package/dist/src/cli/__tests__/keys-bundle.test.js +0 -40
  106. package/dist/src/cli/__tests__/share-cmd.test.d.ts +0 -1
  107. package/dist/src/cli/__tests__/share-cmd.test.js +0 -175
  108. package/dist/src/cli/config/__tests__/model-picker.test.d.ts +0 -1
  109. package/dist/src/cli/config/__tests__/model-picker.test.js +0 -56
  110. package/dist/src/cli/config/__tests__/provider-fetch.test.d.ts +0 -1
  111. package/dist/src/cli/config/__tests__/provider-fetch.test.js +0 -38
  112. package/dist/src/cli/cost-forensics.test.d.ts +0 -1
  113. package/dist/src/cli/cost-forensics.test.js +0 -223
  114. package/dist/src/cli/experience-report.test.d.ts +0 -5
  115. package/dist/src/cli/experience-report.test.js +0 -63
  116. package/dist/src/cli/keys.test.d.ts +0 -1
  117. package/dist/src/cli/keys.test.js +0 -86
  118. package/dist/src/council/__tests__/abort-threading.test.d.ts +0 -1
  119. package/dist/src/council/__tests__/abort-threading.test.js +0 -193
  120. package/dist/src/council/__tests__/accounting.test.d.ts +0 -1
  121. package/dist/src/council/__tests__/accounting.test.js +0 -66
  122. package/dist/src/council/__tests__/audit-replay.test.d.ts +0 -1
  123. package/dist/src/council/__tests__/audit-replay.test.js +0 -241
  124. package/dist/src/council/__tests__/clarification-prompt.test.d.ts +0 -1
  125. package/dist/src/council/__tests__/clarification-prompt.test.js +0 -71
  126. package/dist/src/council/__tests__/clarifier-max-rounds.test.d.ts +0 -1
  127. package/dist/src/council/__tests__/clarifier-max-rounds.test.js +0 -46
  128. package/dist/src/council/__tests__/clarifier-options.test.d.ts +0 -1
  129. package/dist/src/council/__tests__/clarifier-options.test.js +0 -54
  130. package/dist/src/council/__tests__/clarifier-ready-gate.test.d.ts +0 -1
  131. package/dist/src/council/__tests__/clarifier-ready-gate.test.js +0 -265
  132. package/dist/src/council/__tests__/cost-aware.test.d.ts +0 -1
  133. package/dist/src/council/__tests__/cost-aware.test.js +0 -49
  134. package/dist/src/council/__tests__/council-turn-length-emit.test.d.ts +0 -1
  135. package/dist/src/council/__tests__/council-turn-length-emit.test.js +0 -130
  136. package/dist/src/council/__tests__/debate-planner-structured.test.d.ts +0 -1
  137. package/dist/src/council/__tests__/debate-planner-structured.test.js +0 -209
  138. package/dist/src/council/__tests__/debate-round-budget.test.d.ts +0 -1
  139. package/dist/src/council/__tests__/debate-round-budget.test.js +0 -45
  140. package/dist/src/council/__tests__/decisions-lock.test.d.ts +0 -6
  141. package/dist/src/council/__tests__/decisions-lock.test.js +0 -352
  142. package/dist/src/council/__tests__/evaluator-metrics.test.d.ts +0 -1
  143. package/dist/src/council/__tests__/evaluator-metrics.test.js +0 -463
  144. package/dist/src/council/__tests__/oauth-reachable.test.d.ts +0 -1
  145. package/dist/src/council/__tests__/oauth-reachable.test.js +0 -31
  146. package/dist/src/council/__tests__/parse-outcome-fallback.test.d.ts +0 -1
  147. package/dist/src/council/__tests__/parse-outcome-fallback.test.js +0 -114
  148. package/dist/src/council/__tests__/post-debate-recommendation.test.d.ts +0 -1
  149. package/dist/src/council/__tests__/post-debate-recommendation.test.js +0 -58
  150. package/dist/src/council/__tests__/research-tools.test.d.ts +0 -1
  151. package/dist/src/council/__tests__/research-tools.test.js +0 -214
  152. package/dist/src/council/__tests__/round-tools.test.d.ts +0 -1
  153. package/dist/src/council/__tests__/round-tools.test.js +0 -306
  154. package/dist/src/council/__tests__/tool-trace.test.d.ts +0 -1
  155. package/dist/src/council/__tests__/tool-trace.test.js +0 -131
  156. package/dist/src/council/__tests__/types-contract.test.d.ts +0 -9
  157. package/dist/src/council/__tests__/types-contract.test.js +0 -82
  158. package/dist/src/council/clarifier-question-cap.test.d.ts +0 -12
  159. package/dist/src/council/clarifier-question-cap.test.js +0 -73
  160. package/dist/src/daemon/scheduler.test.d.ts +0 -1
  161. package/dist/src/daemon/scheduler.test.js +0 -103
  162. package/dist/src/ee/__tests__/bb-design.test.d.ts +0 -14
  163. package/dist/src/ee/__tests__/bb-design.test.js +0 -180
  164. package/dist/src/ee/__tests__/ee-onboarding.test.d.ts +0 -1
  165. package/dist/src/ee/__tests__/ee-onboarding.test.js +0 -32
  166. package/dist/src/ee/__tests__/export-transcripts.test.d.ts +0 -11
  167. package/dist/src/ee/__tests__/export-transcripts.test.js +0 -200
  168. package/dist/src/ee/__tests__/pil-context-bridge.test.d.ts +0 -1
  169. package/dist/src/ee/__tests__/pil-context-bridge.test.js +0 -54
  170. package/dist/src/ee/__tests__/pipeline.integration.test.d.ts +0 -14
  171. package/dist/src/ee/__tests__/pipeline.integration.test.js +0 -151
  172. package/dist/src/ee/__tests__/recall-format.test.d.ts +0 -10
  173. package/dist/src/ee/__tests__/recall-format.test.js +0 -57
  174. package/dist/src/ee/__tests__/recall-ledger.test.d.ts +0 -1
  175. package/dist/src/ee/__tests__/recall-ledger.test.js +0 -45
  176. package/dist/src/ee/__tests__/render-sink-wiring.test.d.ts +0 -1
  177. package/dist/src/ee/__tests__/render-sink-wiring.test.js +0 -74
  178. package/dist/src/ee/artifact-cache.test.d.ts +0 -1
  179. package/dist/src/ee/artifact-cache.test.js +0 -69
  180. package/dist/src/ee/auth.test.d.ts +0 -1
  181. package/dist/src/ee/auth.test.js +0 -59
  182. package/dist/src/ee/bridge.test.d.ts +0 -1
  183. package/dist/src/ee/bridge.test.js +0 -230
  184. package/dist/src/ee/client.test.d.ts +0 -1
  185. package/dist/src/ee/client.test.js +0 -181
  186. package/dist/src/ee/extract-session.test.d.ts +0 -1
  187. package/dist/src/ee/extract-session.test.js +0 -192
  188. package/dist/src/ee/intercept.test.d.ts +0 -1
  189. package/dist/src/ee/intercept.test.js +0 -171
  190. package/dist/src/ee/judge.test.d.ts +0 -1
  191. package/dist/src/ee/judge.test.js +0 -190
  192. package/dist/src/ee/mistake-detector.test.d.ts +0 -1
  193. package/dist/src/ee/mistake-detector.test.js +0 -221
  194. package/dist/src/ee/offline-queue.test.d.ts +0 -1
  195. package/dist/src/ee/offline-queue.test.js +0 -246
  196. package/dist/src/ee/phase-outcome.test.d.ts +0 -1
  197. package/dist/src/ee/phase-outcome.test.js +0 -94
  198. package/dist/src/ee/phase-tracker.test.d.ts +0 -1
  199. package/dist/src/ee/phase-tracker.test.js +0 -142
  200. package/dist/src/ee/posttool.test.d.ts +0 -1
  201. package/dist/src/ee/posttool.test.js +0 -70
  202. package/dist/src/ee/prompt-stale.test.d.ts +0 -8
  203. package/dist/src/ee/prompt-stale.test.js +0 -76
  204. package/dist/src/ee/recall-mirror.test.d.ts +0 -1
  205. package/dist/src/ee/recall-mirror.test.js +0 -65
  206. package/dist/src/ee/render.test.d.ts +0 -1
  207. package/dist/src/ee/render.test.js +0 -63
  208. package/dist/src/ee/scope.test.d.ts +0 -1
  209. package/dist/src/ee/scope.test.js +0 -97
  210. package/dist/src/ee/search.test.d.ts +0 -1
  211. package/dist/src/ee/search.test.js +0 -23
  212. package/dist/src/ee/session-trajectory.test.d.ts +0 -1
  213. package/dist/src/ee/session-trajectory.test.js +0 -120
  214. package/dist/src/ee/touch.test.d.ts +0 -1
  215. package/dist/src/ee/touch.test.js +0 -62
  216. package/dist/src/ee/who-am-i.test.d.ts +0 -1
  217. package/dist/src/ee/who-am-i.test.js +0 -101
  218. package/dist/src/flow/__tests__/migration.test.d.ts +0 -1
  219. package/dist/src/flow/__tests__/migration.test.js +0 -105
  220. package/dist/src/flow/__tests__/parser.test.d.ts +0 -1
  221. package/dist/src/flow/__tests__/parser.test.js +0 -68
  222. package/dist/src/flow/__tests__/run-manager-product.test.d.ts +0 -1
  223. package/dist/src/flow/__tests__/run-manager-product.test.js +0 -49
  224. package/dist/src/flow/__tests__/run-manager.test.d.ts +0 -1
  225. package/dist/src/flow/__tests__/run-manager.test.js +0 -83
  226. package/dist/src/flow/__tests__/scaffold-checkpoint.test.d.ts +0 -1
  227. package/dist/src/flow/__tests__/scaffold-checkpoint.test.js +0 -93
  228. package/dist/src/flow/__tests__/scaffold.test.d.ts +0 -1
  229. package/dist/src/flow/__tests__/scaffold.test.js +0 -47
  230. package/dist/src/flow/__tests__/warning-persist.test.d.ts +0 -5
  231. package/dist/src/flow/__tests__/warning-persist.test.js +0 -96
  232. package/dist/src/flow/compaction/__tests__/compress.test.d.ts +0 -1
  233. package/dist/src/flow/compaction/__tests__/compress.test.js +0 -63
  234. package/dist/src/flow/compaction/__tests__/extract.test.d.ts +0 -1
  235. package/dist/src/flow/compaction/__tests__/extract.test.js +0 -66
  236. package/dist/src/flow/compaction/__tests__/preserve.test.d.ts +0 -1
  237. package/dist/src/flow/compaction/__tests__/preserve.test.js +0 -62
  238. package/dist/src/gsd/__tests__/gray-areas.test.d.ts +0 -1
  239. package/dist/src/gsd/__tests__/gray-areas.test.js +0 -29
  240. package/dist/src/gsd/__tests__/types.test.d.ts +0 -1
  241. package/dist/src/gsd/__tests__/types.test.js +0 -78
  242. package/dist/src/headless/__tests__/council-answers.test.d.ts +0 -1
  243. package/dist/src/headless/__tests__/council-answers.test.js +0 -251
  244. package/dist/src/headless/output.test.d.ts +0 -1
  245. package/dist/src/headless/output.test.js +0 -239
  246. package/dist/src/lsp/builtins.test.d.ts +0 -1
  247. package/dist/src/lsp/builtins.test.js +0 -112
  248. package/dist/src/lsp/client-normalize.test.d.ts +0 -12
  249. package/dist/src/lsp/client-normalize.test.js +0 -34
  250. package/dist/src/lsp/manager.test.d.ts +0 -1
  251. package/dist/src/lsp/manager.test.js +0 -155
  252. package/dist/src/lsp/npm-cache.test.d.ts +0 -1
  253. package/dist/src/lsp/npm-cache.test.js +0 -53
  254. package/dist/src/lsp/smoke.test.d.ts +0 -1
  255. package/dist/src/lsp/smoke.test.js +0 -56
  256. package/dist/src/maintain/__tests__/codebase-intel.test.d.ts +0 -5
  257. package/dist/src/maintain/__tests__/codebase-intel.test.js +0 -237
  258. package/dist/src/maintain/__tests__/gh-create-pr.test.d.ts +0 -11
  259. package/dist/src/maintain/__tests__/gh-create-pr.test.js +0 -160
  260. package/dist/src/maintain/__tests__/pr-builder.test.d.ts +0 -10
  261. package/dist/src/maintain/__tests__/pr-builder.test.js +0 -229
  262. package/dist/src/maintain/__tests__/repo-map.test.d.ts +0 -5
  263. package/dist/src/maintain/__tests__/repo-map.test.js +0 -90
  264. package/dist/src/maintain/__tests__/task-runner.test.d.ts +0 -11
  265. package/dist/src/maintain/__tests__/task-runner.test.js +0 -281
  266. package/dist/src/mcp/__tests__/auto-setup.test.d.ts +0 -1
  267. package/dist/src/mcp/__tests__/auto-setup.test.js +0 -155
  268. package/dist/src/mcp/__tests__/cap-tool-result.test.d.ts +0 -1
  269. package/dist/src/mcp/__tests__/cap-tool-result.test.js +0 -58
  270. package/dist/src/mcp/__tests__/client-pool.spec.d.ts +0 -1
  271. package/dist/src/mcp/__tests__/client-pool.spec.js +0 -169
  272. package/dist/src/mcp/__tests__/ee-tools.test.d.ts +0 -1
  273. package/dist/src/mcp/__tests__/ee-tools.test.js +0 -226
  274. package/dist/src/mcp/__tests__/forensics-tools.test.d.ts +0 -1
  275. package/dist/src/mcp/__tests__/forensics-tools.test.js +0 -54
  276. package/dist/src/mcp/__tests__/harness-driver-action-tools.spec.d.ts +0 -1
  277. package/dist/src/mcp/__tests__/harness-driver-action-tools.spec.js +0 -103
  278. package/dist/src/mcp/__tests__/harness-driver-async-tools.spec.d.ts +0 -1
  279. package/dist/src/mcp/__tests__/harness-driver-async-tools.spec.js +0 -112
  280. package/dist/src/mcp/__tests__/harness-driver-read-tools.spec.d.ts +0 -1
  281. package/dist/src/mcp/__tests__/harness-driver-read-tools.spec.js +0 -124
  282. package/dist/src/mcp/__tests__/harness-driver-security.spec.d.ts +0 -1
  283. package/dist/src/mcp/__tests__/harness-driver-security.spec.js +0 -61
  284. package/dist/src/mcp/__tests__/harness-driver.spec.d.ts +0 -1
  285. package/dist/src/mcp/__tests__/harness-driver.spec.js +0 -20
  286. package/dist/src/mcp/__tests__/lazy-schema.spec.d.ts +0 -1
  287. package/dist/src/mcp/__tests__/lazy-schema.spec.js +0 -152
  288. package/dist/src/mcp/__tests__/lsp-tools.test.d.ts +0 -1
  289. package/dist/src/mcp/__tests__/lsp-tools.test.js +0 -56
  290. package/dist/src/mcp/__tests__/mcp-keychain.test.d.ts +0 -1
  291. package/dist/src/mcp/__tests__/mcp-keychain.test.js +0 -40
  292. package/dist/src/mcp/__tests__/parallel-build.spec.d.ts +0 -1
  293. package/dist/src/mcp/__tests__/parallel-build.spec.js +0 -67
  294. package/dist/src/mcp/__tests__/research-onboarding.test.d.ts +0 -1
  295. package/dist/src/mcp/__tests__/research-onboarding.test.js +0 -148
  296. package/dist/src/mcp/__tests__/runtime-hydration.test.d.ts +0 -1
  297. package/dist/src/mcp/__tests__/runtime-hydration.test.js +0 -78
  298. package/dist/src/mcp/__tests__/runtime-output-cap.test.d.ts +0 -1
  299. package/dist/src/mcp/__tests__/runtime-output-cap.test.js +0 -42
  300. package/dist/src/mcp/__tests__/runtime-sanitize.test.d.ts +0 -1
  301. package/dist/src/mcp/__tests__/runtime-sanitize.test.js +0 -40
  302. package/dist/src/mcp/__tests__/self-verify-jobs.test.d.ts +0 -1
  303. package/dist/src/mcp/__tests__/self-verify-jobs.test.js +0 -92
  304. package/dist/src/mcp/__tests__/smart-filter.test.d.ts +0 -1
  305. package/dist/src/mcp/__tests__/smart-filter.test.js +0 -177
  306. package/dist/src/mcp/__tests__/tools-server.smoke.test.d.ts +0 -1
  307. package/dist/src/mcp/__tests__/tools-server.smoke.test.js +0 -42
  308. package/dist/src/mcp/parse-headers.test.d.ts +0 -1
  309. package/dist/src/mcp/parse-headers.test.js +0 -43
  310. package/dist/src/mcp/smoke.test.d.ts +0 -1
  311. package/dist/src/mcp/smoke.test.js +0 -159
  312. package/dist/src/models/__tests__/registry.test.d.ts +0 -1
  313. package/dist/src/models/__tests__/registry.test.js +0 -74
  314. package/dist/src/models/catalog-gemini.test.d.ts +0 -1
  315. package/dist/src/models/catalog-gemini.test.js +0 -48
  316. package/dist/src/models/catalog-url.test.d.ts +0 -1
  317. package/dist/src/models/catalog-url.test.js +0 -26
  318. package/dist/src/models/catalog-validation.test.d.ts +0 -1
  319. package/dist/src/models/catalog-validation.test.js +0 -63
  320. package/dist/src/ops/__tests__/doctor-council-mcp.test.d.ts +0 -1
  321. package/dist/src/ops/__tests__/doctor-council-mcp.test.js +0 -139
  322. package/dist/src/ops/__tests__/doctor-ee-health.test.d.ts +0 -1
  323. package/dist/src/ops/__tests__/doctor-ee-health.test.js +0 -134
  324. package/dist/src/ops/bug-report.test.d.ts +0 -1
  325. package/dist/src/ops/bug-report.test.js +0 -148
  326. package/dist/src/ops/doctor.test.d.ts +0 -1
  327. package/dist/src/ops/doctor.test.js +0 -97
  328. package/dist/src/orchestrator/__tests__/agent-base-url-switch.test.d.ts +0 -1
  329. package/dist/src/orchestrator/__tests__/agent-base-url-switch.test.js +0 -77
  330. package/dist/src/orchestrator/__tests__/auto-commit.test.d.ts +0 -1
  331. package/dist/src/orchestrator/__tests__/auto-commit.test.js +0 -142
  332. package/dist/src/orchestrator/__tests__/batch-turn-runner.test.d.ts +0 -1
  333. package/dist/src/orchestrator/__tests__/batch-turn-runner.test.js +0 -163
  334. package/dist/src/orchestrator/__tests__/council-manager.test.d.ts +0 -1
  335. package/dist/src/orchestrator/__tests__/council-manager.test.js +0 -148
  336. package/dist/src/orchestrator/__tests__/cross-turn-dedup.test.d.ts +0 -1
  337. package/dist/src/orchestrator/__tests__/cross-turn-dedup.test.js +0 -175
  338. package/dist/src/orchestrator/__tests__/current-call-id.test.d.ts +0 -16
  339. package/dist/src/orchestrator/__tests__/current-call-id.test.js +0 -138
  340. package/dist/src/orchestrator/__tests__/delegations.test.d.ts +0 -1
  341. package/dist/src/orchestrator/__tests__/delegations.test.js +0 -96
  342. package/dist/src/orchestrator/__tests__/error-forensics.test.d.ts +0 -1
  343. package/dist/src/orchestrator/__tests__/error-forensics.test.js +0 -93
  344. package/dist/src/orchestrator/__tests__/flow-resume.test.d.ts +0 -5
  345. package/dist/src/orchestrator/__tests__/flow-resume.test.js +0 -61
  346. package/dist/src/orchestrator/__tests__/humanize-api-error.test.d.ts +0 -1
  347. package/dist/src/orchestrator/__tests__/humanize-api-error.test.js +0 -68
  348. package/dist/src/orchestrator/__tests__/mcp-capability-block.test.d.ts +0 -1
  349. package/dist/src/orchestrator/__tests__/mcp-capability-block.test.js +0 -39
  350. package/dist/src/orchestrator/__tests__/message-processor.test.d.ts +0 -1
  351. package/dist/src/orchestrator/__tests__/message-processor.test.js +0 -188
  352. package/dist/src/orchestrator/__tests__/message-write-ahead.test.d.ts +0 -22
  353. package/dist/src/orchestrator/__tests__/message-write-ahead.test.js +0 -149
  354. package/dist/src/orchestrator/__tests__/project-stack.test.d.ts +0 -1
  355. package/dist/src/orchestrator/__tests__/project-stack.test.js +0 -65
  356. package/dist/src/orchestrator/__tests__/read-path-budget.test.d.ts +0 -1
  357. package/dist/src/orchestrator/__tests__/read-path-budget.test.js +0 -156
  358. package/dist/src/orchestrator/__tests__/retry-classifier.test.d.ts +0 -1
  359. package/dist/src/orchestrator/__tests__/retry-classifier.test.js +0 -112
  360. package/dist/src/orchestrator/__tests__/retry-stream.test.d.ts +0 -1
  361. package/dist/src/orchestrator/__tests__/retry-stream.test.js +0 -151
  362. package/dist/src/orchestrator/__tests__/route-feedback.test.d.ts +0 -1
  363. package/dist/src/orchestrator/__tests__/route-feedback.test.js +0 -47
  364. package/dist/src/orchestrator/__tests__/stream-runner.test.d.ts +0 -1
  365. package/dist/src/orchestrator/__tests__/stream-runner.test.js +0 -202
  366. package/dist/src/orchestrator/__tests__/sub-agent-model-tier.test.d.ts +0 -1
  367. package/dist/src/orchestrator/__tests__/sub-agent-model-tier.test.js +0 -45
  368. package/dist/src/orchestrator/__tests__/usage-events-shape.test.d.ts +0 -8
  369. package/dist/src/orchestrator/__tests__/usage-events-shape.test.js +0 -58
  370. package/dist/src/orchestrator/__tests__/usage-normalizer-c1.test.d.ts +0 -21
  371. package/dist/src/orchestrator/__tests__/usage-normalizer-c1.test.js +0 -155
  372. package/dist/src/orchestrator/__tests__/usage-shape-threading.test.d.ts +0 -1
  373. package/dist/src/orchestrator/__tests__/usage-shape-threading.test.js +0 -98
  374. package/dist/src/orchestrator/__tests__/write-ahead.test.d.ts +0 -20
  375. package/dist/src/orchestrator/__tests__/write-ahead.test.js +0 -134
  376. package/dist/src/orchestrator/abort.test.d.ts +0 -1
  377. package/dist/src/orchestrator/abort.test.js +0 -34
  378. package/dist/src/orchestrator/agent.test.d.ts +0 -1
  379. package/dist/src/orchestrator/agent.test.js +0 -178
  380. package/dist/src/orchestrator/cleanup.test.d.ts +0 -1
  381. package/dist/src/orchestrator/cleanup.test.js +0 -67
  382. package/dist/src/orchestrator/compaction.test.d.ts +0 -1
  383. package/dist/src/orchestrator/compaction.test.js +0 -187
  384. package/dist/src/orchestrator/delegations.test.d.ts +0 -1
  385. package/dist/src/orchestrator/delegations.test.js +0 -107
  386. package/dist/src/orchestrator/grounding-check.test.d.ts +0 -1
  387. package/dist/src/orchestrator/grounding-check.test.js +0 -94
  388. package/dist/src/orchestrator/interrupted-turn.test.d.ts +0 -1
  389. package/dist/src/orchestrator/interrupted-turn.test.js +0 -34
  390. package/dist/src/orchestrator/message-seq.test.d.ts +0 -1
  391. package/dist/src/orchestrator/message-seq.test.js +0 -24
  392. package/dist/src/orchestrator/pending-calls.test.d.ts +0 -1
  393. package/dist/src/orchestrator/pending-calls.test.js +0 -188
  394. package/dist/src/orchestrator/provider-options-shape.spec.d.ts +0 -1
  395. package/dist/src/orchestrator/provider-options-shape.spec.js +0 -63
  396. package/dist/src/orchestrator/reasoning.test.d.ts +0 -1
  397. package/dist/src/orchestrator/reasoning.test.js +0 -101
  398. package/dist/src/orchestrator/repetition-detector.test.d.ts +0 -1
  399. package/dist/src/orchestrator/repetition-detector.test.js +0 -103
  400. package/dist/src/orchestrator/sandbox.test.d.ts +0 -1
  401. package/dist/src/orchestrator/sandbox.test.js +0 -99
  402. package/dist/src/orchestrator/scope-ceiling.test.d.ts +0 -13
  403. package/dist/src/orchestrator/scope-ceiling.test.js +0 -181
  404. package/dist/src/orchestrator/scope-reminder.test.d.ts +0 -15
  405. package/dist/src/orchestrator/scope-reminder.test.js +0 -225
  406. package/dist/src/orchestrator/session-experience.test.d.ts +0 -6
  407. package/dist/src/orchestrator/session-experience.test.js +0 -72
  408. package/dist/src/orchestrator/stall-rescue.test.d.ts +0 -1
  409. package/dist/src/orchestrator/stall-rescue.test.js +0 -117
  410. package/dist/src/orchestrator/stall-watchdog.test.d.ts +0 -1
  411. package/dist/src/orchestrator/stall-watchdog.test.js +0 -153
  412. package/dist/src/orchestrator/steer-inbox.test.d.ts +0 -1
  413. package/dist/src/orchestrator/steer-inbox.test.js +0 -33
  414. package/dist/src/orchestrator/sub-agent-cap.test.d.ts +0 -1
  415. package/dist/src/orchestrator/sub-agent-cap.test.js +0 -208
  416. package/dist/src/orchestrator/subagent-compactor.spec.d.ts +0 -1
  417. package/dist/src/orchestrator/subagent-compactor.spec.js +0 -520
  418. package/dist/src/orchestrator/text-tool-call-detector.test.d.ts +0 -1
  419. package/dist/src/orchestrator/text-tool-call-detector.test.js +0 -147
  420. package/dist/src/orchestrator/token-counter.test.d.ts +0 -1
  421. package/dist/src/orchestrator/token-counter.test.js +0 -57
  422. package/dist/src/orchestrator/tool-args-hash.test.d.ts +0 -1
  423. package/dist/src/orchestrator/tool-args-hash.test.js +0 -105
  424. package/dist/src/orchestrator/tool-args-repair.test.d.ts +0 -1
  425. package/dist/src/orchestrator/tool-args-repair.test.js +0 -136
  426. package/dist/src/orchestrator/tool-loop-askcard.test.d.ts +0 -1
  427. package/dist/src/orchestrator/tool-loop-askcard.test.js +0 -71
  428. package/dist/src/orchestrator/tool-loop-cap.test.d.ts +0 -1
  429. package/dist/src/orchestrator/tool-loop-cap.test.js +0 -176
  430. package/dist/src/orchestrator/tool-repetition-detector.test.d.ts +0 -1
  431. package/dist/src/orchestrator/tool-repetition-detector.test.js +0 -101
  432. package/dist/src/pil/__tests__/budget.test.d.ts +0 -1
  433. package/dist/src/pil/__tests__/budget.test.js +0 -33
  434. package/dist/src/pil/__tests__/clarity-gate.test.d.ts +0 -1
  435. package/dist/src/pil/__tests__/clarity-gate.test.js +0 -37
  436. package/dist/src/pil/__tests__/config.test.d.ts +0 -1
  437. package/dist/src/pil/__tests__/config.test.js +0 -57
  438. package/dist/src/pil/__tests__/discovery-cache.test.d.ts +0 -1
  439. package/dist/src/pil/__tests__/discovery-cache.test.js +0 -38
  440. package/dist/src/pil/__tests__/discovery-types.test.d.ts +0 -1
  441. package/dist/src/pil/__tests__/discovery-types.test.js +0 -65
  442. package/dist/src/pil/__tests__/discovery.test.d.ts +0 -1
  443. package/dist/src/pil/__tests__/discovery.test.js +0 -178
  444. package/dist/src/pil/__tests__/dual-run.test.d.ts +0 -1
  445. package/dist/src/pil/__tests__/dual-run.test.js +0 -51
  446. package/dist/src/pil/__tests__/layer1-intent-trace.test.d.ts +0 -1
  447. package/dist/src/pil/__tests__/layer1-intent-trace.test.js +0 -138
  448. package/dist/src/pil/__tests__/layer1-intent.test.d.ts +0 -1
  449. package/dist/src/pil/__tests__/layer1-intent.test.js +0 -329
  450. package/dist/src/pil/__tests__/layer15-context-scan.test.d.ts +0 -1
  451. package/dist/src/pil/__tests__/layer15-context-scan.test.js +0 -64
  452. package/dist/src/pil/__tests__/layer16-clarity.test.d.ts +0 -1
  453. package/dist/src/pil/__tests__/layer16-clarity.test.js +0 -72
  454. package/dist/src/pil/__tests__/layer17-feasibility.test.d.ts +0 -1
  455. package/dist/src/pil/__tests__/layer17-feasibility.test.js +0 -36
  456. package/dist/src/pil/__tests__/layer18-acceptance.test.d.ts +0 -1
  457. package/dist/src/pil/__tests__/layer18-acceptance.test.js +0 -18
  458. package/dist/src/pil/__tests__/layer2-personality.test.d.ts +0 -1
  459. package/dist/src/pil/__tests__/layer2-personality.test.js +0 -57
  460. package/dist/src/pil/__tests__/layer2_5-ponytail.test.d.ts +0 -1
  461. package/dist/src/pil/__tests__/layer2_5-ponytail.test.js +0 -53
  462. package/dist/src/pil/__tests__/layer3-ee-injection.test.d.ts +0 -1
  463. package/dist/src/pil/__tests__/layer3-ee-injection.test.js +0 -221
  464. package/dist/src/pil/__tests__/layer3-injected-chunk.test.d.ts +0 -1
  465. package/dist/src/pil/__tests__/layer3-injected-chunk.test.js +0 -134
  466. package/dist/src/pil/__tests__/layer4-gsd.test.d.ts +0 -1
  467. package/dist/src/pil/__tests__/layer4-gsd.test.js +0 -191
  468. package/dist/src/pil/__tests__/layer5-context.test.d.ts +0 -1
  469. package/dist/src/pil/__tests__/layer5-context.test.js +0 -175
  470. package/dist/src/pil/__tests__/layer6-output.test.d.ts +0 -1
  471. package/dist/src/pil/__tests__/layer6-output.test.js +0 -465
  472. package/dist/src/pil/__tests__/llm-classify.test.d.ts +0 -1
  473. package/dist/src/pil/__tests__/llm-classify.test.js +0 -197
  474. package/dist/src/pil/__tests__/native-capabilities-workbook.test.d.ts +0 -1
  475. package/dist/src/pil/__tests__/native-capabilities-workbook.test.js +0 -40
  476. package/dist/src/pil/__tests__/ollama-classify.test.d.ts +0 -1
  477. package/dist/src/pil/__tests__/ollama-classify.test.js +0 -68
  478. package/dist/src/pil/__tests__/orchestrator-integration.test.d.ts +0 -10
  479. package/dist/src/pil/__tests__/orchestrator-integration.test.js +0 -100
  480. package/dist/src/pil/__tests__/pipeline.test.d.ts +0 -1
  481. package/dist/src/pil/__tests__/pipeline.test.js +0 -188
  482. package/dist/src/pil/__tests__/renderer-coverage.test.d.ts +0 -7
  483. package/dist/src/pil/__tests__/renderer-coverage.test.js +0 -42
  484. package/dist/src/pil/__tests__/response-tools.test.d.ts +0 -1
  485. package/dist/src/pil/__tests__/response-tools.test.js +0 -242
  486. package/dist/src/pil/__tests__/schema.test.d.ts +0 -1
  487. package/dist/src/pil/__tests__/schema.test.js +0 -202
  488. package/dist/src/pil/__tests__/scoreComplexity.test.d.ts +0 -1
  489. package/dist/src/pil/__tests__/scoreComplexity.test.js +0 -119
  490. package/dist/src/pil/__tests__/scoreSufficiency.test.d.ts +0 -8
  491. package/dist/src/pil/__tests__/scoreSufficiency.test.js +0 -89
  492. package/dist/src/pil/__tests__/store.test.d.ts +0 -1
  493. package/dist/src/pil/__tests__/store.test.js +0 -44
  494. package/dist/src/pil/__tests__/surface-compaction-artifacts.test.d.ts +0 -1
  495. package/dist/src/pil/__tests__/surface-compaction-artifacts.test.js +0 -112
  496. package/dist/src/pil/__tests__/task-tier-map.test.d.ts +0 -1
  497. package/dist/src/pil/__tests__/task-tier-map.test.js +0 -33
  498. package/dist/src/pil/agent-operating-contract.test.d.ts +0 -1
  499. package/dist/src/pil/agent-operating-contract.test.js +0 -80
  500. package/dist/src/pil/cheap-model-playbook.test.d.ts +0 -1
  501. package/dist/src/pil/cheap-model-playbook.test.js +0 -160
  502. package/dist/src/pil/cheap-model-workbooks.test.d.ts +0 -1
  503. package/dist/src/pil/cheap-model-workbooks.test.js +0 -129
  504. package/dist/src/pil/layer1-intent.test.d.ts +0 -1
  505. package/dist/src/pil/layer1-intent.test.js +0 -764
  506. package/dist/src/pil/layer1_5-complexity-size.test.d.ts +0 -10
  507. package/dist/src/pil/layer1_5-complexity-size.test.js +0 -248
  508. package/dist/src/pil/session-experience-injection.test.d.ts +0 -6
  509. package/dist/src/pil/session-experience-injection.test.js +0 -79
  510. package/dist/src/pil/session-state.test.d.ts +0 -1
  511. package/dist/src/pil/session-state.test.js +0 -73
  512. package/dist/src/playbook/__tests__/directives.test.d.ts +0 -1
  513. package/dist/src/playbook/__tests__/directives.test.js +0 -115
  514. package/dist/src/product-loop/__tests__/artifact-io.test.d.ts +0 -1
  515. package/dist/src/product-loop/__tests__/artifact-io.test.js +0 -83
  516. package/dist/src/product-loop/__tests__/assumption-ledger.test.d.ts +0 -1
  517. package/dist/src/product-loop/__tests__/assumption-ledger.test.js +0 -261
  518. package/dist/src/product-loop/__tests__/backlog-builder.test.d.ts +0 -10
  519. package/dist/src/product-loop/__tests__/backlog-builder.test.js +0 -175
  520. package/dist/src/product-loop/__tests__/backlog-store.test.d.ts +0 -4
  521. package/dist/src/product-loop/__tests__/backlog-store.test.js +0 -96
  522. package/dist/src/product-loop/__tests__/cb2-retry-bonus.test.d.ts +0 -13
  523. package/dist/src/product-loop/__tests__/cb2-retry-bonus.test.js +0 -158
  524. package/dist/src/product-loop/__tests__/circuit-breakers-coverage.test.d.ts +0 -1
  525. package/dist/src/product-loop/__tests__/circuit-breakers-coverage.test.js +0 -67
  526. package/dist/src/product-loop/__tests__/circuit-breakers.test.d.ts +0 -1
  527. package/dist/src/product-loop/__tests__/circuit-breakers.test.js +0 -79
  528. package/dist/src/product-loop/__tests__/complexity-routing.spec.d.ts +0 -11
  529. package/dist/src/product-loop/__tests__/complexity-routing.spec.js +0 -240
  530. package/dist/src/product-loop/__tests__/context-policy.test.d.ts +0 -1
  531. package/dist/src/product-loop/__tests__/context-policy.test.js +0 -266
  532. package/dist/src/product-loop/__tests__/cost-preview.test.d.ts +0 -1
  533. package/dist/src/product-loop/__tests__/cost-preview.test.js +0 -111
  534. package/dist/src/product-loop/__tests__/cost-scoper.test.d.ts +0 -1
  535. package/dist/src/product-loop/__tests__/cost-scoper.test.js +0 -50
  536. package/dist/src/product-loop/__tests__/cross-run-memory.test.d.ts +0 -1
  537. package/dist/src/product-loop/__tests__/cross-run-memory.test.js +0 -168
  538. package/dist/src/product-loop/__tests__/design-output.spec.d.ts +0 -1
  539. package/dist/src/product-loop/__tests__/design-output.spec.js +0 -36
  540. package/dist/src/product-loop/__tests__/discover.test.d.ts +0 -1
  541. package/dist/src/product-loop/__tests__/discover.test.js +0 -83
  542. package/dist/src/product-loop/__tests__/discovery-context-format.test.d.ts +0 -13
  543. package/dist/src/product-loop/__tests__/discovery-context-format.test.js +0 -100
  544. package/dist/src/product-loop/__tests__/discovery-council-runner.test.d.ts +0 -1
  545. package/dist/src/product-loop/__tests__/discovery-council-runner.test.js +0 -13
  546. package/dist/src/product-loop/__tests__/discovery-detection.test.d.ts +0 -1
  547. package/dist/src/product-loop/__tests__/discovery-detection.test.js +0 -151
  548. package/dist/src/product-loop/__tests__/discovery-ecosystem.test.d.ts +0 -8
  549. package/dist/src/product-loop/__tests__/discovery-ecosystem.test.js +0 -209
  550. package/dist/src/product-loop/__tests__/discovery-integration.test.d.ts +0 -1
  551. package/dist/src/product-loop/__tests__/discovery-integration.test.js +0 -126
  552. package/dist/src/product-loop/__tests__/discovery-interview.test.d.ts +0 -1
  553. package/dist/src/product-loop/__tests__/discovery-interview.test.js +0 -394
  554. package/dist/src/product-loop/__tests__/discovery-migrations.test.d.ts +0 -1
  555. package/dist/src/product-loop/__tests__/discovery-migrations.test.js +0 -69
  556. package/dist/src/product-loop/__tests__/discovery-persistence.test.d.ts +0 -1
  557. package/dist/src/product-loop/__tests__/discovery-persistence.test.js +0 -146
  558. package/dist/src/product-loop/__tests__/discovery-prompt-parser.test.d.ts +0 -1
  559. package/dist/src/product-loop/__tests__/discovery-prompt-parser.test.js +0 -65
  560. package/dist/src/product-loop/__tests__/discovery-prompt-specificity.test.d.ts +0 -1
  561. package/dist/src/product-loop/__tests__/discovery-prompt-specificity.test.js +0 -55
  562. package/dist/src/product-loop/__tests__/discovery-recommender-ecosystem.test.d.ts +0 -9
  563. package/dist/src/product-loop/__tests__/discovery-recommender-ecosystem.test.js +0 -178
  564. package/dist/src/product-loop/__tests__/discovery-recommender.test.d.ts +0 -1
  565. package/dist/src/product-loop/__tests__/discovery-recommender.test.js +0 -316
  566. package/dist/src/product-loop/__tests__/discovery-schema.test.d.ts +0 -1
  567. package/dist/src/product-loop/__tests__/discovery-schema.test.js +0 -77
  568. package/dist/src/product-loop/__tests__/done-gate-coverage.test.d.ts +0 -1
  569. package/dist/src/product-loop/__tests__/done-gate-coverage.test.js +0 -135
  570. package/dist/src/product-loop/__tests__/done-gate.test.d.ts +0 -1
  571. package/dist/src/product-loop/__tests__/done-gate.test.js +0 -122
  572. package/dist/src/product-loop/__tests__/ee-extract-wiring.test.d.ts +0 -8
  573. package/dist/src/product-loop/__tests__/ee-extract-wiring.test.js +0 -186
  574. package/dist/src/product-loop/__tests__/extract-to-ee.test.d.ts +0 -1
  575. package/dist/src/product-loop/__tests__/extract-to-ee.test.js +0 -161
  576. package/dist/src/product-loop/__tests__/feedback-routing.test.d.ts +0 -1
  577. package/dist/src/product-loop/__tests__/feedback-routing.test.js +0 -83
  578. package/dist/src/product-loop/__tests__/gather-selectable-alts.test.d.ts +0 -15
  579. package/dist/src/product-loop/__tests__/gather-selectable-alts.test.js +0 -143
  580. package/dist/src/product-loop/__tests__/hot-path.spec.d.ts +0 -11
  581. package/dist/src/product-loop/__tests__/hot-path.spec.js +0 -146
  582. package/dist/src/product-loop/__tests__/integration.test.d.ts +0 -7
  583. package/dist/src/product-loop/__tests__/integration.test.js +0 -301
  584. package/dist/src/product-loop/__tests__/loop-driver-audit.test.d.ts +0 -1
  585. package/dist/src/product-loop/__tests__/loop-driver-audit.test.js +0 -269
  586. package/dist/src/product-loop/__tests__/loop-driver.test.d.ts +0 -1
  587. package/dist/src/product-loop/__tests__/loop-driver.test.js +0 -225
  588. package/dist/src/product-loop/__tests__/maintenance-task-synthesis.test.d.ts +0 -8
  589. package/dist/src/product-loop/__tests__/maintenance-task-synthesis.test.js +0 -67
  590. package/dist/src/product-loop/__tests__/phase-a1-a3-sprint-runner.test.d.ts +0 -13
  591. package/dist/src/product-loop/__tests__/phase-a1-a3-sprint-runner.test.js +0 -268
  592. package/dist/src/product-loop/__tests__/phase-a2-backlog-build.test.d.ts +0 -8
  593. package/dist/src/product-loop/__tests__/phase-a2-backlog-build.test.js +0 -162
  594. package/dist/src/product-loop/__tests__/phase-budget.test.d.ts +0 -1
  595. package/dist/src/product-loop/__tests__/phase-budget.test.js +0 -149
  596. package/dist/src/product-loop/__tests__/phase-orchestrator-integration.test.d.ts +0 -1
  597. package/dist/src/product-loop/__tests__/phase-orchestrator-integration.test.js +0 -138
  598. package/dist/src/product-loop/__tests__/phase-plan.test.d.ts +0 -1
  599. package/dist/src/product-loop/__tests__/phase-plan.test.js +0 -208
  600. package/dist/src/product-loop/__tests__/phase-rituals.test.d.ts +0 -1
  601. package/dist/src/product-loop/__tests__/phase-rituals.test.js +0 -174
  602. package/dist/src/product-loop/__tests__/phase-runner.test.d.ts +0 -1
  603. package/dist/src/product-loop/__tests__/phase-runner.test.js +0 -414
  604. package/dist/src/product-loop/__tests__/phase-tracker-bridge.test.d.ts +0 -1
  605. package/dist/src/product-loop/__tests__/phase-tracker-bridge.test.js +0 -67
  606. package/dist/src/product-loop/__tests__/pick-backend-stack.test.d.ts +0 -11
  607. package/dist/src/product-loop/__tests__/pick-backend-stack.test.js +0 -95
  608. package/dist/src/product-loop/__tests__/product-identity.test.d.ts +0 -1
  609. package/dist/src/product-loop/__tests__/product-identity.test.js +0 -40
  610. package/dist/src/product-loop/__tests__/progress-snapshot.test.d.ts +0 -8
  611. package/dist/src/product-loop/__tests__/progress-snapshot.test.js +0 -152
  612. package/dist/src/product-loop/__tests__/reality-anchor.test.d.ts +0 -1
  613. package/dist/src/product-loop/__tests__/reality-anchor.test.js +0 -49
  614. package/dist/src/product-loop/__tests__/repo-audit.test.d.ts +0 -1
  615. package/dist/src/product-loop/__tests__/repo-audit.test.js +0 -97
  616. package/dist/src/product-loop/__tests__/repo-brief.test.d.ts +0 -9
  617. package/dist/src/product-loop/__tests__/repo-brief.test.js +0 -132
  618. package/dist/src/product-loop/__tests__/role-memory.test.d.ts +0 -1
  619. package/dist/src/product-loop/__tests__/role-memory.test.js +0 -56
  620. package/dist/src/product-loop/__tests__/role-registry.test.d.ts +0 -1
  621. package/dist/src/product-loop/__tests__/role-registry.test.js +0 -222
  622. package/dist/src/product-loop/__tests__/role-routing-ee.test.d.ts +0 -1
  623. package/dist/src/product-loop/__tests__/role-routing-ee.test.js +0 -79
  624. package/dist/src/product-loop/__tests__/route-decision-emit.test.d.ts +0 -10
  625. package/dist/src/product-loop/__tests__/route-decision-emit.test.js +0 -222
  626. package/dist/src/product-loop/__tests__/seed-questions.test.d.ts +0 -1
  627. package/dist/src/product-loop/__tests__/seed-questions.test.js +0 -30
  628. package/dist/src/product-loop/__tests__/ship-polish.test.d.ts +0 -1
  629. package/dist/src/product-loop/__tests__/ship-polish.test.js +0 -96
  630. package/dist/src/product-loop/__tests__/sprint-planner.test.d.ts +0 -6
  631. package/dist/src/product-loop/__tests__/sprint-planner.test.js +0 -140
  632. package/dist/src/product-loop/__tests__/sprint-runner-backlog.test.d.ts +0 -8
  633. package/dist/src/product-loop/__tests__/sprint-runner-backlog.test.js +0 -221
  634. package/dist/src/product-loop/__tests__/sprint-runner-emit.test.d.ts +0 -14
  635. package/dist/src/product-loop/__tests__/sprint-runner-emit.test.js +0 -279
  636. package/dist/src/product-loop/__tests__/sprint-runner-phase-chunks.test.d.ts +0 -14
  637. package/dist/src/product-loop/__tests__/sprint-runner-phase-chunks.test.js +0 -193
  638. package/dist/src/product-loop/__tests__/sprint-runner.test.d.ts +0 -1
  639. package/dist/src/product-loop/__tests__/sprint-runner.test.js +0 -432
  640. package/dist/src/product-loop/__tests__/sprint-self-verify.test.d.ts +0 -8
  641. package/dist/src/product-loop/__tests__/sprint-self-verify.test.js +0 -73
  642. package/dist/src/product-loop/__tests__/sprint-store.test.d.ts +0 -7
  643. package/dist/src/product-loop/__tests__/sprint-store.test.js +0 -84
  644. package/dist/src/product-loop/__tests__/stakeholder-acl.test.d.ts +0 -1
  645. package/dist/src/product-loop/__tests__/stakeholder-acl.test.js +0 -83
  646. package/dist/src/product-loop/__tests__/state-md-ee-injections.test.d.ts +0 -8
  647. package/dist/src/product-loop/__tests__/state-md-ee-injections.test.js +0 -182
  648. package/dist/src/product-loop/__tests__/sufficiency-routing.spec.d.ts +0 -12
  649. package/dist/src/product-loop/__tests__/sufficiency-routing.spec.js +0 -140
  650. package/dist/src/product-loop/__tests__/typed-artifacts.test.d.ts +0 -1
  651. package/dist/src/product-loop/__tests__/typed-artifacts.test.js +0 -222
  652. package/dist/src/product-loop/__tests__/types.test.d.ts +0 -1
  653. package/dist/src/product-loop/__tests__/types.test.js +0 -79
  654. package/dist/src/product-loop/__tests__/verify-failure-threshold.test.d.ts +0 -9
  655. package/dist/src/product-loop/__tests__/verify-failure-threshold.test.js +0 -146
  656. package/dist/src/product-loop/__tests__/verify-failure-tracking.test.d.ts +0 -4
  657. package/dist/src/product-loop/__tests__/verify-failure-tracking.test.js +0 -122
  658. package/dist/src/product-loop/__tests__/verify-result.test.d.ts +0 -1
  659. package/dist/src/product-loop/__tests__/verify-result.test.js +0 -53
  660. package/dist/src/providers/__tests__/adapter-oauth-wiring.test.d.ts +0 -8
  661. package/dist/src/providers/__tests__/adapter-oauth-wiring.test.js +0 -125
  662. package/dist/src/providers/__tests__/capabilities-cosmetic.test.d.ts +0 -1
  663. package/dist/src/providers/__tests__/capabilities-cosmetic.test.js +0 -109
  664. package/dist/src/providers/__tests__/capabilities-flags.test.d.ts +0 -1
  665. package/dist/src/providers/__tests__/capabilities-flags.test.js +0 -145
  666. package/dist/src/providers/__tests__/capabilities-provider-options.test.d.ts +0 -1
  667. package/dist/src/providers/__tests__/capabilities-provider-options.test.js +0 -201
  668. package/dist/src/providers/__tests__/capabilities-sanitize.test.d.ts +0 -1
  669. package/dist/src/providers/__tests__/capabilities-sanitize.test.js +0 -60
  670. package/dist/src/providers/__tests__/capabilities.test.d.ts +0 -1
  671. package/dist/src/providers/__tests__/capabilities.test.js +0 -41
  672. package/dist/src/providers/__tests__/provider-coverage.test.d.ts +0 -1
  673. package/dist/src/providers/__tests__/provider-coverage.test.js +0 -45
  674. package/dist/src/providers/__tests__/reasoning-roundtrip.test.d.ts +0 -1
  675. package/dist/src/providers/__tests__/reasoning-roundtrip.test.js +0 -216
  676. package/dist/src/providers/__tests__/runtime-integration.test.d.ts +0 -1
  677. package/dist/src/providers/__tests__/runtime-integration.test.js +0 -93
  678. package/dist/src/providers/__tests__/runtime.test.d.ts +0 -1
  679. package/dist/src/providers/__tests__/runtime.test.js +0 -80
  680. package/dist/src/providers/__tests__/siliconflow-sse-repair.test.d.ts +0 -1
  681. package/dist/src/providers/__tests__/siliconflow-sse-repair.test.js +0 -267
  682. package/dist/src/providers/__tests__/strategies-registry.test.d.ts +0 -8
  683. package/dist/src/providers/__tests__/strategies-registry.test.js +0 -49
  684. package/dist/src/providers/__tests__/strategies-resolve.test.d.ts +0 -12
  685. package/dist/src/providers/__tests__/strategies-resolve.test.js +0 -128
  686. package/dist/src/providers/__tests__/wire-debug.test.d.ts +0 -1
  687. package/dist/src/providers/__tests__/wire-debug.test.js +0 -39
  688. package/dist/src/providers/adapter.test.d.ts +0 -1
  689. package/dist/src/providers/adapter.test.js +0 -19
  690. package/dist/src/providers/auth/__tests__/browser-flow.test.d.ts +0 -8
  691. package/dist/src/providers/auth/__tests__/browser-flow.test.js +0 -186
  692. package/dist/src/providers/auth/__tests__/device-flow.test.d.ts +0 -6
  693. package/dist/src/providers/auth/__tests__/device-flow.test.js +0 -219
  694. package/dist/src/providers/auth/__tests__/gemini-oauth.test.d.ts +0 -4
  695. package/dist/src/providers/auth/__tests__/gemini-oauth.test.js +0 -306
  696. package/dist/src/providers/auth/__tests__/grok-oauth.test.d.ts +0 -8
  697. package/dist/src/providers/auth/__tests__/grok-oauth.test.js +0 -236
  698. package/dist/src/providers/auth/__tests__/openai-oauth.test.d.ts +0 -7
  699. package/dist/src/providers/auth/__tests__/openai-oauth.test.js +0 -309
  700. package/dist/src/providers/auth/__tests__/token-store.test.d.ts +0 -7
  701. package/dist/src/providers/auth/__tests__/token-store.test.js +0 -125
  702. package/dist/src/providers/errors.test.d.ts +0 -1
  703. package/dist/src/providers/errors.test.js +0 -66
  704. package/dist/src/providers/gemini.test.d.ts +0 -1
  705. package/dist/src/providers/gemini.test.js +0 -37
  706. package/dist/src/providers/keychain.test.d.ts +0 -1
  707. package/dist/src/providers/keychain.test.js +0 -84
  708. package/dist/src/providers/mcp-vision-bridge.test.d.ts +0 -1
  709. package/dist/src/providers/mcp-vision-bridge.test.js +0 -381
  710. package/dist/src/providers/ollama.test.d.ts +0 -1
  711. package/dist/src/providers/ollama.test.js +0 -37
  712. package/dist/src/providers/openai-compatible.test.d.ts +0 -1
  713. package/dist/src/providers/openai-compatible.test.js +0 -53
  714. package/dist/src/providers/openai.test.d.ts +0 -1
  715. package/dist/src/providers/openai.test.js +0 -53
  716. package/dist/src/providers/pricing.test.d.ts +0 -1
  717. package/dist/src/providers/pricing.test.js +0 -81
  718. package/dist/src/providers/prompt-cache-key.spec.d.ts +0 -5
  719. package/dist/src/providers/prompt-cache-key.spec.js +0 -24
  720. package/dist/src/providers/runtime-mock.spec.d.ts +0 -8
  721. package/dist/src/providers/runtime-mock.spec.js +0 -69
  722. package/dist/src/providers/vision-proxy.test.d.ts +0 -1
  723. package/dist/src/providers/vision-proxy.test.js +0 -212
  724. package/dist/src/reporter/__tests__/acl-check.test.d.ts +0 -6
  725. package/dist/src/reporter/__tests__/acl-check.test.js +0 -59
  726. package/dist/src/reporter/__tests__/auto-fire.test.d.ts +0 -10
  727. package/dist/src/reporter/__tests__/auto-fire.test.js +0 -140
  728. package/dist/src/reporter/__tests__/budget.test.d.ts +0 -7
  729. package/dist/src/reporter/__tests__/budget.test.js +0 -60
  730. package/dist/src/reporter/__tests__/handlers.test.d.ts +0 -7
  731. package/dist/src/reporter/__tests__/handlers.test.js +0 -163
  732. package/dist/src/reporter/__tests__/query-router.test.d.ts +0 -6
  733. package/dist/src/reporter/__tests__/query-router.test.js +0 -90
  734. package/dist/src/router/__tests__/step-router.test.d.ts +0 -4
  735. package/dist/src/router/__tests__/step-router.test.js +0 -131
  736. package/dist/src/router/classifier/index.test.d.ts +0 -1
  737. package/dist/src/router/classifier/index.test.js +0 -29
  738. package/dist/src/router/classifier/regex.test.d.ts +0 -1
  739. package/dist/src/router/classifier/regex.test.js +0 -44
  740. package/dist/src/router/classifier/tree-sitter.test.d.ts +0 -1
  741. package/dist/src/router/classifier/tree-sitter.test.js +0 -23
  742. package/dist/src/router/cold.test.d.ts +0 -1
  743. package/dist/src/router/cold.test.js +0 -56
  744. package/dist/src/router/decide.test.d.ts +0 -1
  745. package/dist/src/router/decide.test.js +0 -198
  746. package/dist/src/router/health.test.d.ts +0 -1
  747. package/dist/src/router/health.test.js +0 -52
  748. package/dist/src/router/provider-sentinel.test.d.ts +0 -1
  749. package/dist/src/router/provider-sentinel.test.js +0 -20
  750. package/dist/src/router/role-override.test.d.ts +0 -1
  751. package/dist/src/router/role-override.test.js +0 -26
  752. package/dist/src/router/warm.test.d.ts +0 -1
  753. package/dist/src/router/warm.test.js +0 -202
  754. package/dist/src/scaffold/__tests__/continuation-prompt.test.d.ts +0 -4
  755. package/dist/src/scaffold/__tests__/continuation-prompt.test.js +0 -79
  756. package/dist/src/scaffold/__tests__/continue-as-council.spec.d.ts +0 -10
  757. package/dist/src/scaffold/__tests__/continue-as-council.spec.js +0 -102
  758. package/dist/src/scaffold/__tests__/dotnet-assembly-name.test.d.ts +0 -1
  759. package/dist/src/scaffold/__tests__/dotnet-assembly-name.test.js +0 -27
  760. package/dist/src/scaffold/__tests__/fe-scaffold-contents.test.d.ts +0 -1
  761. package/dist/src/scaffold/__tests__/fe-scaffold-contents.test.js +0 -106
  762. package/dist/src/scaffold/__tests__/init-new.smoke.spec.d.ts +0 -15
  763. package/dist/src/scaffold/__tests__/init-new.smoke.spec.js +0 -81
  764. package/dist/src/scaffold/__tests__/init-new.spec.d.ts +0 -5
  765. package/dist/src/scaffold/__tests__/init-new.spec.js +0 -378
  766. package/dist/src/scaffold/__tests__/install-bb-templates.spec.d.ts +0 -1
  767. package/dist/src/scaffold/__tests__/install-bb-templates.spec.js +0 -77
  768. package/dist/src/scaffold/__tests__/point-to-existing.spec.d.ts +0 -7
  769. package/dist/src/scaffold/__tests__/point-to-existing.spec.js +0 -94
  770. package/dist/src/self-qa/__tests__/agentic-context.test.d.ts +0 -1
  771. package/dist/src/self-qa/__tests__/agentic-context.test.js +0 -98
  772. package/dist/src/self-qa/__tests__/agentic-loop.test.d.ts +0 -1
  773. package/dist/src/self-qa/__tests__/agentic-loop.test.js +0 -62
  774. package/dist/src/self-qa/__tests__/delta-encoder.test.d.ts +0 -1
  775. package/dist/src/self-qa/__tests__/delta-encoder.test.js +0 -97
  776. package/dist/src/self-qa/__tests__/judge.test.d.ts +0 -1
  777. package/dist/src/self-qa/__tests__/judge.test.js +0 -131
  778. package/dist/src/self-qa/__tests__/scenario-planner.test.d.ts +0 -1
  779. package/dist/src/self-qa/__tests__/scenario-planner.test.js +0 -79
  780. package/dist/src/self-qa/__tests__/spec-emitter.test.d.ts +0 -1
  781. package/dist/src/self-qa/__tests__/spec-emitter.test.js +0 -62
  782. package/dist/src/storage/__tests__/migrations.test.d.ts +0 -12
  783. package/dist/src/storage/__tests__/migrations.test.js +0 -357
  784. package/dist/src/storage/__tests__/sweep-stale-pending.test.d.ts +0 -10
  785. package/dist/src/storage/__tests__/sweep-stale-pending.test.js +0 -97
  786. package/dist/src/storage/__tests__/ui-interaction-log.test.d.ts +0 -7
  787. package/dist/src/storage/__tests__/ui-interaction-log.test.js +0 -127
  788. package/dist/src/storage/atomic-io.test.d.ts +0 -1
  789. package/dist/src/storage/atomic-io.test.js +0 -74
  790. package/dist/src/storage/config.test.d.ts +0 -1
  791. package/dist/src/storage/config.test.js +0 -29
  792. package/dist/src/storage/session-experience-store.test.d.ts +0 -5
  793. package/dist/src/storage/session-experience-store.test.js +0 -86
  794. package/dist/src/storage/tool-results.test.d.ts +0 -1
  795. package/dist/src/storage/tool-results.test.js +0 -48
  796. package/dist/src/storage/transcript-response-entry.test.d.ts +0 -1
  797. package/dist/src/storage/transcript-response-entry.test.js +0 -98
  798. package/dist/src/storage/transcript.test.d.ts +0 -1
  799. package/dist/src/storage/transcript.test.js +0 -22
  800. package/dist/src/storage/usage-cap.test.d.ts +0 -1
  801. package/dist/src/storage/usage-cap.test.js +0 -51
  802. package/dist/src/tools/__tests__/native-tools.test.d.ts +0 -1
  803. package/dist/src/tools/__tests__/native-tools.test.js +0 -59
  804. package/dist/src/tools/__tests__/vision-gate.test.d.ts +0 -1
  805. package/dist/src/tools/__tests__/vision-gate.test.js +0 -56
  806. package/dist/src/tools/bash-output-cache.test.d.ts +0 -1
  807. package/dist/src/tools/bash-output-cache.test.js +0 -89
  808. package/dist/src/tools/bash-output-integration.test.d.ts +0 -10
  809. package/dist/src/tools/bash-output-integration.test.js +0 -30
  810. package/dist/src/tools/bash.test.d.ts +0 -1
  811. package/dist/src/tools/bash.test.js +0 -90
  812. package/dist/src/tools/computer.test.d.ts +0 -1
  813. package/dist/src/tools/computer.test.js +0 -142
  814. package/dist/src/tools/file-tracker.test.d.ts +0 -1
  815. package/dist/src/tools/file-tracker.test.js +0 -77
  816. package/dist/src/tools/file.test.d.ts +0 -1
  817. package/dist/src/tools/file.test.js +0 -106
  818. package/dist/src/tools/git-safety.test.d.ts +0 -1
  819. package/dist/src/tools/git-safety.test.js +0 -155
  820. package/dist/src/tools/registry-bash-empty-command.test.d.ts +0 -13
  821. package/dist/src/tools/registry-bash-empty-command.test.js +0 -57
  822. package/dist/src/tools/registry-bash-footer.test.d.ts +0 -7
  823. package/dist/src/tools/registry-bash-footer.test.js +0 -82
  824. package/dist/src/tools/registry-ee-query.test.d.ts +0 -11
  825. package/dist/src/tools/registry-ee-query.test.js +0 -71
  826. package/dist/src/tools/registry-git-safety.test.d.ts +0 -7
  827. package/dist/src/tools/registry-git-safety.test.js +0 -103
  828. package/dist/src/tools/registry-session-repeat.test.d.ts +0 -12
  829. package/dist/src/tools/registry-session-repeat.test.js +0 -87
  830. package/dist/src/tools/registry.test.d.ts +0 -1
  831. package/dist/src/tools/registry.test.js +0 -34
  832. package/dist/src/tools/schedule.test.d.ts +0 -1
  833. package/dist/src/tools/schedule.test.js +0 -118
  834. package/dist/src/tools/todo-write-snapshot.test.d.ts +0 -1
  835. package/dist/src/tools/todo-write-snapshot.test.js +0 -43
  836. package/dist/src/ui/__tests__/markdown-render.test.d.ts +0 -1
  837. package/dist/src/ui/__tests__/markdown-render.test.js +0 -65
  838. package/dist/src/ui/__tests__/picker-providers.test.d.ts +0 -1
  839. package/dist/src/ui/__tests__/picker-providers.test.js +0 -31
  840. package/dist/src/ui/cards/__tests__/product-status-card.test.d.ts +0 -1
  841. package/dist/src/ui/cards/__tests__/product-status-card.test.js +0 -27
  842. package/dist/src/ui/components/__tests__/council-leader-bubble.test.d.ts +0 -1
  843. package/dist/src/ui/components/__tests__/council-leader-bubble.test.js +0 -14
  844. package/dist/src/ui/components/__tests__/council-message-bubble.test.d.ts +0 -1
  845. package/dist/src/ui/components/__tests__/council-message-bubble.test.js +0 -74
  846. package/dist/src/ui/components/__tests__/council-phase-timeline.test.d.ts +0 -1
  847. package/dist/src/ui/components/__tests__/council-phase-timeline.test.js +0 -51
  848. package/dist/src/ui/components/__tests__/council-placeholder-bubble.test.d.ts +0 -1
  849. package/dist/src/ui/components/__tests__/council-placeholder-bubble.test.js +0 -14
  850. package/dist/src/ui/components/__tests__/council-question-card.test.d.ts +0 -1
  851. package/dist/src/ui/components/__tests__/council-question-card.test.js +0 -121
  852. package/dist/src/ui/components/__tests__/council-synthesis-banner.test.d.ts +0 -1
  853. package/dist/src/ui/components/__tests__/council-synthesis-banner.test.js +0 -11
  854. package/dist/src/ui/components/__tests__/task-list-panel.test.d.ts +0 -1
  855. package/dist/src/ui/components/__tests__/task-list-panel.test.js +0 -31
  856. package/dist/src/ui/components/__tests__/use-pair-quote-buffer.test.d.ts +0 -1
  857. package/dist/src/ui/components/__tests__/use-pair-quote-buffer.test.js +0 -37
  858. package/dist/src/ui/slash/__tests__/clear.test.d.ts +0 -1
  859. package/dist/src/ui/slash/__tests__/clear.test.js +0 -58
  860. package/dist/src/ui/slash/__tests__/compact.test.d.ts +0 -1
  861. package/dist/src/ui/slash/__tests__/compact.test.js +0 -43
  862. package/dist/src/ui/slash/__tests__/cost.test.d.ts +0 -1
  863. package/dist/src/ui/slash/__tests__/cost.test.js +0 -54
  864. package/dist/src/ui/slash/__tests__/discuss.test.d.ts +0 -1
  865. package/dist/src/ui/slash/__tests__/discuss.test.js +0 -83
  866. package/dist/src/ui/slash/__tests__/execute.test.d.ts +0 -1
  867. package/dist/src/ui/slash/__tests__/execute.test.js +0 -71
  868. package/dist/src/ui/slash/__tests__/expand.test.d.ts +0 -1
  869. package/dist/src/ui/slash/__tests__/expand.test.js +0 -67
  870. package/dist/src/ui/slash/__tests__/ideal.test.d.ts +0 -1
  871. package/dist/src/ui/slash/__tests__/ideal.test.js +0 -158
  872. package/dist/src/ui/slash/__tests__/menu-parity.test.d.ts +0 -17
  873. package/dist/src/ui/slash/__tests__/menu-parity.test.js +0 -43
  874. package/dist/src/ui/slash/__tests__/optimize.test.d.ts +0 -1
  875. package/dist/src/ui/slash/__tests__/optimize.test.js +0 -130
  876. package/dist/src/ui/slash/__tests__/pin.test.d.ts +0 -1
  877. package/dist/src/ui/slash/__tests__/pin.test.js +0 -38
  878. package/dist/src/ui/slash/__tests__/plan.test.d.ts +0 -1
  879. package/dist/src/ui/slash/__tests__/plan.test.js +0 -82
  880. package/dist/src/ui/slash/__tests__/ponytail.test.d.ts +0 -1
  881. package/dist/src/ui/slash/__tests__/ponytail.test.js +0 -37
  882. package/dist/src/ui/slash/__tests__/status-render.test.d.ts +0 -7
  883. package/dist/src/ui/slash/__tests__/status-render.test.js +0 -77
  884. package/dist/src/ui/slash/route.test.d.ts +0 -1
  885. package/dist/src/ui/slash/route.test.js +0 -70
  886. package/dist/src/ui/status-bar/index.test.d.ts +0 -1
  887. package/dist/src/ui/status-bar/index.test.js +0 -139
  888. package/dist/src/ui/status-bar/store.test.d.ts +0 -1
  889. package/dist/src/ui/status-bar/store.test.js +0 -116
  890. package/dist/src/ui/status-bar/tier-badge.test.d.ts +0 -1
  891. package/dist/src/ui/status-bar/tier-badge.test.js +0 -34
  892. package/dist/src/ui/status-bar/usd-meter.test.d.ts +0 -1
  893. package/dist/src/ui/status-bar/usd-meter.test.js +0 -32
  894. package/dist/src/ui/utils/__tests__/format.test.d.ts +0 -1
  895. package/dist/src/ui/utils/__tests__/format.test.js +0 -50
  896. package/dist/src/ui/utils/__tests__/tools.test.d.ts +0 -1
  897. package/dist/src/ui/utils/__tests__/tools.test.js +0 -48
  898. package/dist/src/ui/utils/relaunch.test.d.ts +0 -1
  899. package/dist/src/ui/utils/relaunch.test.js +0 -133
  900. package/dist/src/ui/utils/text.test.d.ts +0 -1
  901. package/dist/src/ui/utils/text.test.js +0 -47
  902. package/dist/src/usage/__tests__/product-ledger.test.d.ts +0 -1
  903. package/dist/src/usage/__tests__/product-ledger.test.js +0 -60
  904. package/dist/src/usage/downgrade.test.d.ts +0 -1
  905. package/dist/src/usage/downgrade.test.js +0 -70
  906. package/dist/src/usage/estimator.test.d.ts +0 -1
  907. package/dist/src/usage/estimator.test.js +0 -38
  908. package/dist/src/usage/ledger.test.d.ts +0 -1
  909. package/dist/src/usage/ledger.test.js +0 -171
  910. package/dist/src/usage/midstream.test.d.ts +0 -1
  911. package/dist/src/usage/midstream.test.js +0 -47
  912. package/dist/src/usage/thresholds.test.d.ts +0 -1
  913. package/dist/src/usage/thresholds.test.js +0 -77
  914. package/dist/src/utils/__tests__/auto-council-settings.test.d.ts +0 -1
  915. package/dist/src/utils/__tests__/auto-council-settings.test.js +0 -41
  916. package/dist/src/utils/__tests__/compaction-caps.test.d.ts +0 -21
  917. package/dist/src/utils/__tests__/compaction-caps.test.js +0 -187
  918. package/dist/src/utils/__tests__/ee-logger.test.d.ts +0 -11
  919. package/dist/src/utils/__tests__/ee-logger.test.js +0 -165
  920. package/dist/src/utils/__tests__/file-lock.test.d.ts +0 -1
  921. package/dist/src/utils/__tests__/file-lock.test.js +0 -66
  922. package/dist/src/utils/__tests__/footprint-gitignore.test.d.ts +0 -1
  923. package/dist/src/utils/__tests__/footprint-gitignore.test.js +0 -50
  924. package/dist/src/utils/__tests__/llm-deadline-abort.test.d.ts +0 -1
  925. package/dist/src/utils/__tests__/llm-deadline-abort.test.js +0 -33
  926. package/dist/src/utils/__tests__/llm-deadline.test.d.ts +0 -1
  927. package/dist/src/utils/__tests__/llm-deadline.test.js +0 -56
  928. package/dist/src/utils/__tests__/rate-limit.test.d.ts +0 -1
  929. package/dist/src/utils/__tests__/rate-limit.test.js +0 -38
  930. package/dist/src/utils/__tests__/settings-disabled-models.test.d.ts +0 -7
  931. package/dist/src/utils/__tests__/settings-disabled-models.test.js +0 -99
  932. package/dist/src/utils/__tests__/settings-web-research.test.d.ts +0 -1
  933. package/dist/src/utils/__tests__/settings-web-research.test.js +0 -46
  934. package/dist/src/utils/__tests__/slugify.test.d.ts +0 -1
  935. package/dist/src/utils/__tests__/slugify.test.js +0 -37
  936. package/dist/src/utils/__tests__/visible-retry.test.d.ts +0 -1
  937. package/dist/src/utils/__tests__/visible-retry.test.js +0 -143
  938. package/dist/src/utils/install-manager.test.d.ts +0 -1
  939. package/dist/src/utils/install-manager.test.js +0 -127
  940. package/dist/src/utils/instructions.test.d.ts +0 -1
  941. package/dist/src/utils/instructions.test.js +0 -93
  942. package/dist/src/utils/open-url.test.d.ts +0 -1
  943. package/dist/src/utils/open-url.test.js +0 -86
  944. package/dist/src/utils/permission-mode.test.d.ts +0 -1
  945. package/dist/src/utils/permission-mode.test.js +0 -188
  946. package/dist/src/utils/redactor.test.d.ts +0 -1
  947. package/dist/src/utils/redactor.test.js +0 -84
  948. package/dist/src/utils/settings.test.d.ts +0 -1
  949. package/dist/src/utils/settings.test.js +0 -212
  950. package/dist/src/utils/shell.test.d.ts +0 -1
  951. package/dist/src/utils/shell.test.js +0 -97
  952. package/dist/src/utils/skills.test.d.ts +0 -1
  953. package/dist/src/utils/skills.test.js +0 -45
  954. package/dist/src/utils/subagent-display.test.d.ts +0 -1
  955. package/dist/src/utils/subagent-display.test.js +0 -21
  956. package/dist/src/utils/subagents-settings.test.d.ts +0 -1
  957. package/dist/src/utils/subagents-settings.test.js +0 -64
  958. package/dist/src/utils/telegram-audio-settings.test.d.ts +0 -1
  959. package/dist/src/utils/telegram-audio-settings.test.js +0 -39
  960. package/dist/src/utils/update-checker.test.d.ts +0 -1
  961. package/dist/src/utils/update-checker.test.js +0 -138
  962. package/dist/src/verify/__tests__/coverage-parsers.test.d.ts +0 -1
  963. package/dist/src/verify/__tests__/coverage-parsers.test.js +0 -69
  964. package/dist/src/verify/__tests__/dotnet-recipe.test.d.ts +0 -10
  965. package/dist/src/verify/__tests__/dotnet-recipe.test.js +0 -70
  966. package/dist/src/verify/checkpoint.test.d.ts +0 -1
  967. package/dist/src/verify/checkpoint.test.js +0 -160
  968. package/dist/src/verify/entrypoint.test.d.ts +0 -1
  969. package/dist/src/verify/entrypoint.test.js +0 -233
  970. package/dist/src/verify/environment.test.d.ts +0 -1
  971. package/dist/src/verify/environment.test.js +0 -94
  972. package/dist/src/verify/orchestrator.test.d.ts +0 -1
  973. package/dist/src/verify/orchestrator.test.js +0 -126
  974. package/dist/src/verify/runtime-prep.test.d.ts +0 -1
  975. package/dist/src/verify/runtime-prep.test.js +0 -38
@@ -1,5 +1,6 @@
1
1
  import { getCompactionSummaryText } from "../orchestrator/compaction.js";
2
2
  import { getResponseTaskType, isResponseTool } from "../pil/response-tools.js";
3
+ import { logger } from "../utils/logger.js";
3
4
  import { getDatabase, withTransaction } from "./db.js";
4
5
  import { extractToolResultFromOutput, getOutputKind, isOutputSuccess } from "./tool-results.js";
5
6
  import { buildEffectiveTranscript } from "./transcript-view.js";
@@ -42,11 +43,11 @@ function isInternalCouncilMarker(content) {
42
43
  }
43
44
  function loadMessageRows(sessionId) {
44
45
  const rows = getDatabase()
45
- .prepare(`
46
- SELECT session_id, seq, role, message_json, created_at
47
- FROM messages
48
- WHERE session_id = ?
49
- ORDER BY seq ASC
46
+ .prepare(`
47
+ SELECT session_id, seq, role, message_json, created_at
48
+ FROM messages
49
+ WHERE session_id = ?
50
+ ORDER BY seq ASC
50
51
  `)
51
52
  .all(sessionId);
52
53
  for (const row of rows) {
@@ -66,12 +67,12 @@ function toPersistedCompaction(row) {
66
67
  }
67
68
  export function loadLatestCompaction(sessionId) {
68
69
  const row = getDatabase()
69
- .prepare(`
70
- SELECT session_id, first_kept_seq, summary, tokens_before, created_at
71
- FROM compactions
72
- WHERE session_id = ?
73
- ORDER BY id DESC
74
- LIMIT 1
70
+ .prepare(`
71
+ SELECT session_id, first_kept_seq, summary, tokens_before, created_at
72
+ FROM compactions
73
+ WHERE session_id = ?
74
+ ORDER BY id DESC
75
+ LIMIT 1
75
76
  `)
76
77
  .get(sessionId);
77
78
  return toPersistedCompaction(row);
@@ -112,37 +113,37 @@ export function appendMessages(sessionId, messages) {
112
113
  // with `status='completed'` and the full message_json. Pre-A5 callers
113
114
  // hit this path identically: there is no pending row so the IGNORE
114
115
  // branch is unused and the INSERT wins.
115
- const insertMessage = db.prepare(`
116
- INSERT INTO messages (session_id, seq, role, message_json, created_at, status)
117
- VALUES (?, ?, ?, ?, ?, 'completed')
118
- ON CONFLICT(session_id, seq) DO UPDATE SET
119
- role = excluded.role,
120
- message_json = excluded.message_json,
121
- status = 'completed'
116
+ const insertMessage = db.prepare(`
117
+ INSERT INTO messages (session_id, seq, role, message_json, created_at, status)
118
+ VALUES (?, ?, ?, ?, ?, 'completed')
119
+ ON CONFLICT(session_id, seq) DO UPDATE SET
120
+ role = excluded.role,
121
+ message_json = excluded.message_json,
122
+ status = 'completed'
122
123
  `);
123
- const insertToolCall = db.prepare(`
124
- INSERT OR IGNORE INTO tool_calls (
125
- session_id, message_seq, tool_call_id, tool_name, args_json, status, started_at, completed_at
126
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
124
+ const insertToolCall = db.prepare(`
125
+ INSERT OR IGNORE INTO tool_calls (
126
+ session_id, message_seq, tool_call_id, tool_name, args_json, status, started_at, completed_at
127
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
127
128
  `);
128
- const updateToolCall = db.prepare(`
129
- UPDATE tool_calls
130
- SET tool_name = ?, args_json = ?, status = ?, completed_at = ?
131
- WHERE session_id = ? AND tool_call_id = ?
129
+ const updateToolCall = db.prepare(`
130
+ UPDATE tool_calls
131
+ SET tool_name = ?, args_json = ?, status = ?, completed_at = ?
132
+ WHERE session_id = ? AND tool_call_id = ?
132
133
  `);
133
- const selectToolCall = db.prepare(`
134
- SELECT id, tool_call_id, tool_name, args_json
135
- FROM tool_calls
136
- WHERE session_id = ? AND tool_call_id = ?
134
+ const selectToolCall = db.prepare(`
135
+ SELECT id, tool_call_id, tool_name, args_json
136
+ FROM tool_calls
137
+ WHERE session_id = ? AND tool_call_id = ?
137
138
  `);
138
- const insertToolResult = db.prepare(`
139
- INSERT INTO tool_results (tool_call_row_id, output_kind, output_json, success, created_at)
140
- VALUES (?, ?, ?, ?, ?)
139
+ const insertToolResult = db.prepare(`
140
+ INSERT INTO tool_results (tool_call_row_id, output_kind, output_json, success, created_at)
141
+ VALUES (?, ?, ?, ?, ?)
141
142
  `);
142
- const updateSession = db.prepare(`
143
- UPDATE sessions
144
- SET updated_at = ?
145
- WHERE id = ?
143
+ const updateSession = db.prepare(`
144
+ UPDATE sessions
145
+ SET updated_at = ?
146
+ WHERE id = ?
146
147
  `);
147
148
  messages.forEach((message, index) => {
148
149
  const seq = nextSeq + index;
@@ -204,10 +205,10 @@ export function persistToolCallWriteAhead(sessionId, messageSeq, toolCallId, too
204
205
  const now = new Date().toISOString();
205
206
  try {
206
207
  getDatabase()
207
- .prepare(`
208
- INSERT OR IGNORE INTO tool_calls (
209
- session_id, message_seq, tool_call_id, tool_name, args_json, status, started_at, completed_at
210
- ) VALUES (?, ?, ?, ?, ?, 'pending', ?, NULL)
208
+ .prepare(`
209
+ INSERT OR IGNORE INTO tool_calls (
210
+ session_id, message_seq, tool_call_id, tool_name, args_json, status, started_at, completed_at
211
+ ) VALUES (?, ?, ?, ?, ?, 'pending', ?, NULL)
211
212
  `)
212
213
  .run(sessionId, messageSeq, toolCallId, toolName, argsJson, now);
213
214
  }
@@ -253,10 +254,10 @@ export function persistMessageWriteAhead(sessionId, seq, role, messageJson) {
253
254
  const now = new Date().toISOString();
254
255
  try {
255
256
  getDatabase()
256
- .prepare(`
257
- INSERT OR IGNORE INTO messages (
258
- session_id, seq, role, message_json, created_at, status
259
- ) VALUES (?, ?, ?, ?, ?, 'pending')
257
+ .prepare(`
258
+ INSERT OR IGNORE INTO messages (
259
+ session_id, seq, role, message_json, created_at, status
260
+ ) VALUES (?, ?, ?, ?, ?, 'pending')
260
261
  `)
261
262
  .run(sessionId, seq, role, messageJson, now);
262
263
  }
@@ -274,10 +275,10 @@ export function persistMessageWriteAhead(sessionId, seq, role, messageJson) {
274
275
  export function markMessageCompleted(sessionId, seq) {
275
276
  try {
276
277
  getDatabase()
277
- .prepare(`
278
- UPDATE messages
279
- SET status = 'completed'
280
- WHERE session_id = ? AND seq = ? AND status = 'pending'
278
+ .prepare(`
279
+ UPDATE messages
280
+ SET status = 'completed'
281
+ WHERE session_id = ? AND seq = ? AND status = 'pending'
281
282
  `)
282
283
  .run(sessionId, seq);
283
284
  }
@@ -296,10 +297,10 @@ export function markMessageCompleted(sessionId, seq) {
296
297
  export function markMessageErrored(sessionId, seq) {
297
298
  try {
298
299
  getDatabase()
299
- .prepare(`
300
- UPDATE messages
301
- SET status = 'errored'
302
- WHERE session_id = ? AND seq = ? AND status = 'pending'
300
+ .prepare(`
301
+ UPDATE messages
302
+ SET status = 'errored'
303
+ WHERE session_id = ? AND seq = ? AND status = 'pending'
303
304
  `)
304
305
  .run(sessionId, seq);
305
306
  }
@@ -327,21 +328,20 @@ export function markMessageErrored(sessionId, seq) {
327
328
  */
328
329
  export function sweepStalePendingRows(staleAfterMs = 5 * 60 * 1000) {
329
330
  const cutoff = new Date(Date.now() - staleAfterMs).toISOString();
330
- const now = new Date().toISOString();
331
331
  try {
332
332
  const db = getDatabase();
333
333
  const toolCalls = db
334
- .prepare(`
335
- UPDATE tool_calls
336
- SET status = 'aborted', completed_at = ?
337
- WHERE status = 'pending' AND started_at < ?
334
+ .prepare(`
335
+ UPDATE tool_calls
336
+ SET status = 'aborted', completed_at = started_at
337
+ WHERE status = 'pending' AND started_at < ?
338
338
  `)
339
- .run(now, cutoff);
339
+ .run(cutoff);
340
340
  const messages = db
341
- .prepare(`
342
- UPDATE messages
343
- SET status = 'aborted'
344
- WHERE status = 'pending' AND created_at < ?
341
+ .prepare(`
342
+ UPDATE messages
343
+ SET status = 'aborted'
344
+ WHERE status = 'pending' AND created_at < ?
345
345
  `)
346
346
  .run(cutoff);
347
347
  return { toolCalls: toolCalls.changes, messages: messages.changes };
@@ -355,10 +355,10 @@ export function markToolCallErrored(sessionId, toolCallId, errorMessage) {
355
355
  const now = new Date().toISOString();
356
356
  try {
357
357
  getDatabase()
358
- .prepare(`
359
- UPDATE tool_calls
360
- SET status = 'errored', completed_at = ?, args_json = COALESCE(args_json, ?)
361
- WHERE session_id = ? AND tool_call_id = ?
358
+ .prepare(`
359
+ UPDATE tool_calls
360
+ SET status = 'errored', completed_at = ?, args_json = COALESCE(args_json, ?)
361
+ WHERE session_id = ? AND tool_call_id = ?
362
362
  `)
363
363
  .run(now, JSON.stringify({ error: errorMessage.slice(0, 500) }), sessionId, toolCallId);
364
364
  }
@@ -368,109 +368,215 @@ export function markToolCallErrored(sessionId, toolCallId, errorMessage) {
368
368
  }
369
369
  export function appendCompaction(sessionId, firstKeptSeq, summary, tokensBefore) {
370
370
  withTransaction((db) => {
371
- db.prepare(`
372
- INSERT INTO compactions (session_id, first_kept_seq, summary, tokens_before, created_at)
373
- VALUES (?, ?, ?, ?, ?)
371
+ db.prepare(`
372
+ INSERT INTO compactions (session_id, first_kept_seq, summary, tokens_before, created_at)
373
+ VALUES (?, ?, ?, ?, ?)
374
374
  `).run(sessionId, firstKeptSeq, summary, tokensBefore, new Date().toISOString());
375
- db.prepare(`
376
- UPDATE sessions
377
- SET updated_at = ?
378
- WHERE id = ?
375
+ db.prepare(`
376
+ UPDATE sessions
377
+ SET updated_at = ?
378
+ WHERE id = ?
379
379
  `).run(new Date().toISOString(), sessionId);
380
380
  });
381
381
  }
382
+ export function revertLatestCompaction(sessionId) {
383
+ withTransaction((db) => {
384
+ db.prepare(`
385
+ DELETE FROM compactions
386
+ WHERE session_id = ?
387
+ AND id = (SELECT MAX(id) FROM compactions WHERE session_id = ?)
388
+ `).run(sessionId, sessionId);
389
+ db.prepare(`
390
+ UPDATE sessions
391
+ SET updated_at = ?
392
+ WHERE id = ?
393
+ `).run(new Date().toISOString(), sessionId);
394
+ });
395
+ }
396
+ export function getSessionChain(sessionId) {
397
+ logger.debug("storage", "Resolving session chain", { sessionId });
398
+ const db = getDatabase();
399
+ // 1. Walk up to the root parent
400
+ let rootId = sessionId;
401
+ const visitedUp = new Set();
402
+ while (rootId && !visitedUp.has(rootId)) {
403
+ visitedUp.add(rootId);
404
+ try {
405
+ const row = db.prepare("SELECT parent_session_id FROM sessions WHERE id = ?").get(rootId);
406
+ if (row?.parent_session_id) {
407
+ rootId = row.parent_session_id;
408
+ }
409
+ else {
410
+ break;
411
+ }
412
+ }
413
+ catch {
414
+ break;
415
+ }
416
+ }
417
+ // 2. Find all descendants of the root session using a BFS queue to handle multiple child branches
418
+ const allIds = new Set([rootId]);
419
+ const queue = [rootId];
420
+ while (queue.length > 0) {
421
+ const currentId = queue.shift();
422
+ try {
423
+ const children = db.prepare("SELECT id FROM sessions WHERE parent_session_id = ?").all(currentId);
424
+ for (const child of children) {
425
+ if (!allIds.has(child.id)) {
426
+ allIds.add(child.id);
427
+ queue.push(child.id);
428
+ }
429
+ }
430
+ }
431
+ catch (err) {
432
+ logger.error("storage", `Failed to query child sessions for ${currentId} during walk`, { error: err });
433
+ }
434
+ }
435
+ // 3. Sort chronologically by querying the database for all matched sessions ordered by created_at
436
+ let chain = [];
437
+ try {
438
+ const placeholders = Array.from(allIds)
439
+ .map(() => "?")
440
+ .join(",");
441
+ const sortedRows = db
442
+ .prepare(`
443
+ SELECT id FROM sessions
444
+ WHERE id IN (${placeholders})
445
+ ORDER BY created_at ASC
446
+ `)
447
+ .all(...Array.from(allIds));
448
+ chain = sortedRows.map((r) => r.id);
449
+ }
450
+ catch (err) {
451
+ logger.error("storage", `Failed to sort session chain for root ${rootId}`, { error: err });
452
+ // Fallback to unsorted array if query fails
453
+ chain = Array.from(allIds);
454
+ }
455
+ logger.debug("storage", "Resolved session chain successfully", { sessionId, chainLength: chain.length, chain });
456
+ return chain;
457
+ }
382
458
  export function buildChatEntries(sessionId) {
383
- const toolResults = loadStoredToolResults(sessionId);
459
+ const chain = getSessionChain(sessionId);
460
+ logger.debug("storage", "Building chat entries from session chain", { sessionId, chainLength: chain.length });
461
+ const toolResults = new Map();
462
+ for (const sid of chain) {
463
+ const results = loadStoredToolResults(sid);
464
+ for (const [k, v] of results) {
465
+ toolResults.set(k, v);
466
+ }
467
+ }
468
+ // Load parent/child session metadata to reconcile user prompt timestamps across rotation/sub-session boundaries
469
+ const db = getDatabase();
470
+ const sessionMeta = new Map();
471
+ try {
472
+ if (chain.length > 1) {
473
+ const placeholders = chain.map(() => "?").join(",");
474
+ const rows = db
475
+ .prepare(`SELECT id, parent_session_id, created_at FROM sessions WHERE id IN (${placeholders})`)
476
+ .all(...chain);
477
+ for (const r of rows) {
478
+ sessionMeta.set(r.id, { parent_session_id: r.parent_session_id, created_at: r.created_at });
479
+ }
480
+ }
481
+ }
482
+ catch (err) {
483
+ logger.error("storage", "Failed to load session metadata for chain in buildChatEntries", { error: err });
484
+ }
485
+ // Map each child sub-session's initial user prompt to its creation timestamp
486
+ const childPrompts = new Map();
487
+ for (let i = 1; i < chain.length; i++) {
488
+ const sid = chain[i];
489
+ const meta = sessionMeta.get(sid);
490
+ if (meta && meta.parent_session_id) {
491
+ const records = buildEffectiveMessageRecords(sid);
492
+ const firstUser = records.find((r) => r.message.role === "user");
493
+ if (firstUser) {
494
+ const content = renderUserContent(firstUser.message.content);
495
+ if (content) {
496
+ childPrompts.set(content, new Date(meta.created_at));
497
+ }
498
+ }
499
+ }
500
+ }
384
501
  const callMap = new Map();
385
502
  const entries = [];
386
- // Response-tool callIds already rendered as a structured_response from a
387
- // persisted tool-RESULT row (success path). After the loop we recover any
388
- // response tool that was CALLED but produced no result row — i.e. respond_*
389
- // whose execution ERRORED (the AI SDK does not persist tool-error parts as
390
- // tool-result rows). Its answer lives in the call args; without this it is
391
- // dropped on the turn-finalize rebuild and the user sees an empty turn or
392
- // only the last council debate round.
393
503
  const renderedResponseCallIds = new Set();
394
504
  let lastTimestamp;
395
- for (const row of buildEffectiveMessageRecords(sessionId)) {
396
- const { message, timestamp } = row;
397
- lastTimestamp = timestamp;
398
- if (message.role === "user") {
399
- const content = renderUserContent(message.content);
400
- if (content) {
401
- entries.push({ type: "user", content, timestamp });
505
+ for (let i = 0; i < chain.length; i++) {
506
+ const sid = chain[i];
507
+ const records = buildEffectiveMessageRecords(sid);
508
+ const isChildSession = i > 0;
509
+ for (let j = 0; j < records.length; j++) {
510
+ const { message, timestamp } = records[j];
511
+ lastTimestamp = timestamp;
512
+ if (message.role === "user") {
513
+ const content = renderUserContent(message.content);
514
+ if (isChildSession && childPrompts.has(content)) {
515
+ // Skip B's user message because it's a duplicate of A's user message
516
+ continue;
517
+ }
518
+ if (content) {
519
+ entries.push({ type: "user", content, timestamp });
520
+ }
521
+ continue;
402
522
  }
403
- continue;
404
- }
405
- if (message.role === "system") {
406
- const summaryText = getCompactionSummaryText(message);
407
- const content = summaryText ?? (typeof message.content === "string" ? message.content.trim() : "");
408
- if (content && !isInternalCouncilMarker(content)) {
409
- // A compaction checkpoint is internal context-management, NOT the
410
- // assistant's answer. Tag it with a source label so the UI renders it
411
- // as a clearly-marked, collapsible checkpoint instead of dumping the
412
- // raw "## Goal / ## Context For Suffix" scaffolding as a chat reply.
413
- entries.push(summaryText !== null
414
- ? { type: "assistant", content, timestamp, sourceLabel: "⋯ context checkpoint (auto-compacted)" }
415
- : { type: "assistant", content, timestamp });
523
+ if (message.role === "system") {
524
+ const summaryText = getCompactionSummaryText(message);
525
+ if (isChildSession && j === 0 && summaryText !== null) {
526
+ // Skip the first message in a child session if it's the parent compaction summary
527
+ // to keep the visual timeline clean, since the user already sees the parent history.
528
+ continue;
529
+ }
530
+ const content = summaryText ?? (typeof message.content === "string" ? message.content.trim() : "");
531
+ if (content && !isInternalCouncilMarker(content)) {
532
+ entries.push(summaryText !== null
533
+ ? { type: "assistant", content, timestamp, sourceLabel: "⋯ context checkpoint (auto-compacted)" }
534
+ : { type: "assistant", content, timestamp });
535
+ }
536
+ continue;
416
537
  }
417
- continue;
418
- }
419
- if (message.role === "assistant") {
420
- const text = renderAssistantContent(message.content, callMap);
421
- if (text) {
422
- entries.push({ type: "assistant", content: text, timestamp });
538
+ if (message.role === "assistant") {
539
+ const text = renderAssistantContent(message.content, callMap);
540
+ if (text) {
541
+ entries.push({ type: "assistant", content: text, timestamp });
542
+ }
543
+ continue;
423
544
  }
424
- continue;
425
- }
426
- if (message.role === "tool" && Array.isArray(message.content)) {
427
- for (const part of message.content) {
428
- if (part.type !== "tool-result")
429
- continue;
430
- // Response tools (respond_general/analyze/plan/...) are the model's
431
- // TERMINAL structured answer (identity execute the payload lives in
432
- // the call args and is echoed in the result). The live stream yields
433
- // them as a `structured_response` chunk (message-processor.ts:2733),
434
- // which the UI renders as the answer block. Persisted history MUST
435
- // rebuild the SAME entry: finalizeActiveTurn (app.tsx) replaces the
436
- // live message list with getChatEntries() on every normal turn, so if
437
- // we rebuilt a respond_* result as a bare tool_result the rendered
438
- // answer would be silently dropped the instant streaming ended (live
439
- // repro session 9d3d371ca1bd: grok investigated, emitted a 10K-char
440
- // respond_general, the answer flashed then vanished on turn finalize —
441
- // the user saw only the "→ respond_general" indicator). AI SDK v5/v6
442
- // wraps tool outputs as `{type:"json", value:{...}}`; unwrap to expose
443
- // the schema-shaped payload to the renderer.
444
- if (isResponseTool(part.toolName)) {
445
- renderedResponseCallIds.add(part.toolCallId);
446
- const rawOutput = part.output;
447
- const unwrapped = rawOutput && typeof rawOutput === "object" && rawOutput.type === "json"
448
- ? (rawOutput.value ?? {})
449
- : (rawOutput ?? {});
545
+ if (message.role === "tool" && Array.isArray(message.content)) {
546
+ for (const part of message.content) {
547
+ if (part.type !== "tool-result")
548
+ continue;
549
+ if (isResponseTool(part.toolName)) {
550
+ renderedResponseCallIds.add(part.toolCallId);
551
+ const rawOutput = part.output;
552
+ const unwrapped = rawOutput && typeof rawOutput === "object" && rawOutput.type === "json"
553
+ ? (rawOutput.value ?? {})
554
+ : (rawOutput ?? {});
555
+ entries.push({
556
+ type: "structured_response",
557
+ content: "",
558
+ timestamp,
559
+ structuredResponse: {
560
+ taskType: getResponseTaskType(part.toolName) ?? part.toolName,
561
+ data: unwrapped,
562
+ },
563
+ });
564
+ continue;
565
+ }
566
+ const toolCall = callMap.get(part.toolCallId) ?? toFallbackToolCall(part.toolCallId, part.toolName);
567
+ const toolResult = toolResults.get(part.toolCallId) ??
568
+ extractToolResultFromOutput(part.output) ?? {
569
+ success: isOutputSuccess(part.output),
570
+ output: JSON.stringify(part.output),
571
+ };
450
572
  entries.push({
451
- type: "structured_response",
452
- content: "",
573
+ type: "tool_result",
574
+ content: toolResult.success ? toolResult.output || "Success" : toolResult.error || "Error",
453
575
  timestamp,
454
- structuredResponse: {
455
- taskType: getResponseTaskType(part.toolName) ?? part.toolName,
456
- data: unwrapped,
457
- },
576
+ toolCall,
577
+ toolResult,
458
578
  });
459
- continue;
460
579
  }
461
- const toolCall = callMap.get(part.toolCallId) ?? toFallbackToolCall(part.toolCallId, part.toolName);
462
- const toolResult = toolResults.get(part.toolCallId) ??
463
- extractToolResultFromOutput(part.output) ?? {
464
- success: isOutputSuccess(part.output),
465
- output: JSON.stringify(part.output),
466
- };
467
- entries.push({
468
- type: "tool_result",
469
- content: toolResult.success ? toolResult.output || "Success" : toolResult.error || "Error",
470
- timestamp,
471
- toolCall,
472
- toolResult,
473
- });
474
580
  }
475
581
  }
476
582
  }
@@ -501,14 +607,27 @@ export function buildChatEntries(sessionId) {
501
607
  },
502
608
  });
503
609
  }
610
+ // Adjust parent user message timestamps to match their corresponding child session creation time
611
+ for (const entry of entries) {
612
+ if (entry.type === "user") {
613
+ const content = entry.content.trim();
614
+ const childTime = childPrompts.get(content);
615
+ if (childTime) {
616
+ entry.timestamp = childTime;
617
+ }
618
+ }
619
+ }
620
+ // Sort entries chronologically by timestamp (stable sort)
621
+ entries.sort((a, b) => a.timestamp.getTime() - b.timestamp.getTime());
622
+ logger.debug("storage", "Built chat entries successfully", { sessionId, count: entries.length });
504
623
  return entries;
505
624
  }
506
625
  function getNextSequence(db, sessionId) {
507
626
  const row = db
508
- .prepare(`
509
- SELECT COALESCE(MAX(seq), 0) AS max_seq
510
- FROM messages
511
- WHERE session_id = ?
627
+ .prepare(`
628
+ SELECT COALESCE(MAX(seq), 0) AS max_seq
629
+ FROM messages
630
+ WHERE session_id = ?
512
631
  `)
513
632
  .get(sessionId);
514
633
  return (row?.max_seq ?? 0) + 1;
@@ -558,12 +677,12 @@ function renderAssistantContent(content, callMap) {
558
677
  }
559
678
  function loadStoredToolResults(sessionId) {
560
679
  const rows = getDatabase()
561
- .prepare(`
562
- SELECT tc.tool_call_id, tr.output_json
563
- FROM tool_results tr
564
- JOIN tool_calls tc ON tc.id = tr.tool_call_row_id
565
- WHERE tc.session_id = ?
566
- ORDER BY tr.id ASC
680
+ .prepare(`
681
+ SELECT tc.tool_call_id, tr.output_json
682
+ FROM tool_results tr
683
+ JOIN tool_calls tc ON tc.id = tr.tool_call_row_id
684
+ WHERE tc.session_id = ?
685
+ ORDER BY tr.id ASC
567
686
  `)
568
687
  .all(sessionId);
569
688
  return new Map(rows.map((row) => [row.tool_call_id, JSON.parse(row.output_json)]));
@@ -579,20 +698,27 @@ function toFallbackToolCall(toolCallId, toolName) {
579
698
  };
580
699
  }
581
700
  export function getLastTodoWriteArgs(sessionId) {
582
- try {
583
- const row = getDatabase()
584
- .prepare(`
585
- SELECT args_json
586
- FROM tool_calls
587
- WHERE session_id = ? AND tool_name = 'todo_write'
588
- ORDER BY id DESC
589
- LIMIT 1
590
- `)
591
- .get(sessionId);
592
- return row?.args_json ?? null;
593
- }
594
- catch {
595
- return null;
701
+ const chain = getSessionChain(sessionId);
702
+ const db = getDatabase();
703
+ for (let i = chain.length - 1; i >= 0; i--) {
704
+ try {
705
+ const row = db
706
+ .prepare(`
707
+ SELECT args_json
708
+ FROM tool_calls
709
+ WHERE session_id = ? AND tool_name = 'todo_write'
710
+ ORDER BY id DESC
711
+ LIMIT 1
712
+ `)
713
+ .get(chain[i]);
714
+ if (row?.args_json) {
715
+ return row.args_json;
716
+ }
717
+ }
718
+ catch {
719
+ // ignore and check parent
720
+ }
596
721
  }
722
+ return null;
597
723
  }
598
724
  //# sourceMappingURL=transcript.js.map
@@ -1,5 +1,7 @@
1
1
  import { getModelInfo } from "../models/registry.js";
2
+ import { logger } from "../utils/logger.js";
2
3
  import { getDatabase } from "./db.js";
4
+ import { getSessionChain } from "./transcript.js";
3
5
  export function recordUsageEvent(sessionId, source, model, usage, messageSeq, pilActive = false, enrichmentDelta = 0, providerOptionsShape = null) {
4
6
  if (!usage)
5
7
  return;
@@ -21,24 +23,39 @@ export function recordUsageEvent(sessionId, source, model, usage, messageSeq, pi
21
23
  .run(sessionId, messageSeq ?? null, source, model, inputTokens, outputTokens, totalTokens, costMicros, new Date().toISOString(), pilActive ? 1 : 0, enrichmentDelta, cacheReadTokens, cacheCreationTokens, providerOptionsShape);
22
24
  }
23
25
  export function getSessionTotalTokens(sessionId) {
26
+ const chain = getSessionChain(sessionId);
27
+ const placeholders = chain.map(() => "?").join(",");
24
28
  const row = getDatabase()
25
29
  .prepare(`
26
30
  SELECT COALESCE(SUM(total_tokens), 0) AS total_tokens
27
31
  FROM usage_events
28
- WHERE session_id = ?
32
+ WHERE session_id IN (${placeholders})
29
33
  `)
30
- .get(sessionId);
31
- return row?.total_tokens ?? 0;
34
+ .get(...chain);
35
+ const total = row?.total_tokens ?? 0;
36
+ logger.debug("storage", "Calculated session total tokens from chain", {
37
+ sessionId,
38
+ chainLength: chain.length,
39
+ totalTokens: total,
40
+ });
41
+ return total;
32
42
  }
33
43
  export function listSessionUsage(sessionId) {
44
+ const chain = getSessionChain(sessionId);
45
+ const placeholders = chain.map(() => "?").join(",");
34
46
  const rows = getDatabase()
35
47
  .prepare(`
36
48
  SELECT id, session_id, message_seq, source, model, input_tokens, output_tokens, total_tokens, cost_micros, created_at, cache_read_tokens, cache_creation_tokens
37
49
  FROM usage_events
38
- WHERE session_id = ?
50
+ WHERE session_id IN (${placeholders})
39
51
  ORDER BY id ASC
40
52
  `)
41
- .all(sessionId);
53
+ .all(...chain);
54
+ logger.debug("storage", "Retrieved session usage events from chain", {
55
+ sessionId,
56
+ chainLength: chain.length,
57
+ eventCount: rows.length,
58
+ });
42
59
  return rows.map((row) => ({
43
60
  id: row.id,
44
61
  sessionId: row.session_id,