mixdog 0.9.172 → 0.9.173

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 (623) hide show
  1. package/package.json +3 -3
  2. package/scripts/code-graph-description-contract.mjs +1 -2
  3. package/scripts/context-renewal-live-check.mjs +1 -1
  4. package/scripts/coverage-query.mjs +27 -0
  5. package/scripts/generate-runtime-manifest.mjs +12 -16
  6. package/scripts/graph-parity.mjs +108 -75
  7. package/scripts/lib/coverage.mjs +309 -0
  8. package/scripts/lib/embedding-model-bench-core.mjs +4 -2
  9. package/scripts/lib/recall-bench-eval.mjs +4 -4
  10. package/scripts/lib/run-node-tests.mjs +137 -13
  11. package/scripts/lib/test-failure-records.mjs +46 -0
  12. package/scripts/lib/test-failure-summary.mjs +59 -0
  13. package/scripts/lib/test-summary-reporter.mjs +7 -3
  14. package/scripts/mouse-probe.mjs +1 -3
  15. package/scripts/office/build-pptx-icons.mjs +0 -1
  16. package/scripts/perf/transcript-runtime-probe.mjs +20 -4
  17. package/scripts/pg-memory-diet.mjs +2 -4
  18. package/scripts/routing-corpus.mjs +0 -2
  19. package/scripts/session-diag.mjs +0 -7
  20. package/scripts/session-sweep.mjs +102 -56
  21. package/scripts/test.mjs +113 -37
  22. package/scripts/tui-frame-harness.mjs +1 -1
  23. package/src/app.mjs +79 -74
  24. package/src/cli.mjs +0 -2
  25. package/src/defaults/skills/browser-use/SKILL.md +8 -6
  26. package/src/defaults/skills/code-tidy/SKILL.md +67 -17
  27. package/src/defaults/skills/code-tidy/references/agent-cleanup.md +26 -3
  28. package/src/defaults/skills/computer-use/SKILL.md +12 -5
  29. package/src/defaults/skills/goal-management/SKILL.md +16 -9
  30. package/src/defaults/skills/pdf/SKILL.md +2 -1
  31. package/src/defaults/skills/xlsx/SKILL.md +3 -3
  32. package/src/headless-exec.mjs +1 -2
  33. package/src/help.mjs +2 -2
  34. package/src/lib/rules-builder.cjs +0 -23
  35. package/src/repl/slash-commands.mjs +1 -5
  36. package/src/runtime/agent/orchestrator/agent-runtime/agent-dispatch/turn.mjs +4 -4
  37. package/src/runtime/agent/orchestrator/agent-runtime/cache-strategy.mjs +25 -41
  38. package/src/runtime/agent/orchestrator/agent-trace-format.mjs +25 -24
  39. package/src/runtime/agent/orchestrator/agent-trace-io.mjs +15 -22
  40. package/src/runtime/agent/orchestrator/agent-trace.mjs +0 -22
  41. package/src/runtime/agent/orchestrator/config-providers-merge.mjs +56 -0
  42. package/src/runtime/agent/orchestrator/config.mjs +34 -76
  43. package/src/runtime/agent/orchestrator/context/role-instructions.mjs +1 -1
  44. package/src/runtime/agent/orchestrator/providers/admission-scheduler.mjs +40 -39
  45. package/src/runtime/agent/orchestrator/providers/anthropic-api-recovery.mjs +75 -0
  46. package/src/runtime/agent/orchestrator/providers/anthropic-api-request.mjs +152 -0
  47. package/src/runtime/agent/orchestrator/providers/anthropic-api-transport.mjs +168 -0
  48. package/src/runtime/agent/orchestrator/providers/anthropic-messages.mjs +2 -1
  49. package/src/runtime/agent/orchestrator/providers/anthropic-midstream-recovery.mjs +248 -0
  50. package/src/runtime/agent/orchestrator/providers/anthropic-oauth-midstream.mjs +16 -206
  51. package/src/runtime/agent/orchestrator/providers/anthropic-oauth-recovery.mjs +11 -63
  52. package/src/runtime/agent/orchestrator/providers/anthropic-recovery-guards.mjs +86 -0
  53. package/src/runtime/agent/orchestrator/providers/anthropic-turn-result.mjs +88 -0
  54. package/src/runtime/agent/orchestrator/providers/anthropic.mjs +87 -591
  55. package/src/runtime/agent/orchestrator/providers/antigravity-oauth.mjs +32 -288
  56. package/src/runtime/agent/orchestrator/providers/antigravity-response.mjs +101 -0
  57. package/src/runtime/agent/orchestrator/providers/antigravity-stream.mjs +161 -0
  58. package/src/runtime/agent/orchestrator/providers/antigravity-transport.mjs +114 -0
  59. package/src/runtime/agent/orchestrator/providers/gemini-cache-policy.mjs +266 -0
  60. package/src/runtime/agent/orchestrator/providers/gemini-request-body.mjs +54 -0
  61. package/src/runtime/agent/orchestrator/providers/gemini-response.mjs +145 -0
  62. package/src/runtime/agent/orchestrator/providers/gemini-schema.mjs +56 -39
  63. package/src/runtime/agent/orchestrator/providers/gemini-sdk-request.mjs +107 -0
  64. package/src/runtime/agent/orchestrator/providers/gemini.mjs +23 -533
  65. package/src/runtime/agent/orchestrator/providers/lib/anthropic-request-utils.mjs +10 -4
  66. package/src/runtime/agent/orchestrator/providers/media-normalization.mjs +83 -32
  67. package/src/runtime/agent/orchestrator/providers/openai-compat-responses.mjs +41 -25
  68. package/src/runtime/agent/orchestrator/providers/openai-http-sse-response-state/response-outcome.mjs +4 -98
  69. package/src/runtime/agent/orchestrator/providers/openai-http-sse-response-state/response-stamps.mjs +114 -0
  70. package/src/runtime/agent/orchestrator/providers/openai-oauth-dispatch.mjs +258 -0
  71. package/src/runtime/agent/orchestrator/providers/openai-oauth.mjs +48 -214
  72. package/src/runtime/agent/orchestrator/providers/openai-responses-input.mjs +80 -60
  73. package/src/runtime/agent/orchestrator/providers/openai-ws-handshake.mjs +108 -0
  74. package/src/runtime/agent/orchestrator/providers/openai-ws-pool.mjs +8 -87
  75. package/src/runtime/agent/orchestrator/providers/openai-ws-send-outcome.mjs +52 -293
  76. package/src/runtime/agent/orchestrator/providers/openai-ws-send-trace.mjs +316 -0
  77. package/src/runtime/agent/orchestrator/providers/opencode-go-usage.mjs +76 -253
  78. package/src/runtime/agent/orchestrator/session/cache/scoped-cache.mjs +1 -7
  79. package/src/runtime/agent/orchestrator/session/compact/budget.mjs +17 -16
  80. package/src/runtime/agent/orchestrator/session/compact/runner.mjs +6 -4
  81. package/src/runtime/agent/orchestrator/session/compact/summary-schema.mjs +1 -1
  82. package/src/runtime/agent/orchestrator/session/context-compaction-policy.mjs +9 -13
  83. package/src/runtime/agent/orchestrator/session/context-utils.mjs +1 -2
  84. package/src/runtime/agent/orchestrator/session/evidence-union.mjs +6 -9
  85. package/src/runtime/agent/orchestrator/session/loop/compact-policy.mjs +2 -3
  86. package/src/runtime/agent/orchestrator/session/loop/diagnostics.mjs +1 -8
  87. package/src/runtime/agent/orchestrator/session/loop/tool-classify.mjs +1 -3
  88. package/src/runtime/agent/orchestrator/session/loop/tool-exec/call-prep.mjs +1 -5
  89. package/src/runtime/agent/orchestrator/session/manager/ask-turn-execute.mjs +0 -1
  90. package/src/runtime/agent/orchestrator/session/manager/ask-turn-loop-options.mjs +4 -55
  91. package/src/runtime/agent/orchestrator/session/manager/ask-turn-steering-drain.mjs +63 -0
  92. package/src/runtime/agent/orchestrator/session/manager/compaction-runner.mjs +1 -1
  93. package/src/runtime/agent/orchestrator/session/manager/foreign-pending-messages.mjs +80 -65
  94. package/src/runtime/agent/orchestrator/session/manager/pending-claim-ledger.mjs +68 -0
  95. package/src/runtime/agent/orchestrator/session/manager/pending-delivered-ledger.mjs +56 -0
  96. package/src/runtime/agent/orchestrator/session/manager/pending-lifecycle-epoch.mjs +84 -0
  97. package/src/runtime/agent/orchestrator/session/manager/pending-messages.mjs +51 -651
  98. package/src/runtime/agent/orchestrator/session/manager/pending-persist-queue.mjs +264 -0
  99. package/src/runtime/agent/orchestrator/session/manager/pending-spool-file.mjs +131 -0
  100. package/src/runtime/agent/orchestrator/session/manager/pending-spool-sweep.mjs +73 -0
  101. package/src/runtime/agent/orchestrator/session/manager/prepared-resume-cache.mjs +122 -0
  102. package/src/runtime/agent/orchestrator/session/manager/prompt-utils.mjs +2 -1
  103. package/src/runtime/agent/orchestrator/session/manager/runtime-liveness.mjs +5 -4
  104. package/src/runtime/agent/orchestrator/session/manager/session-close.mjs +60 -35
  105. package/src/runtime/agent/orchestrator/session/manager/session-crud.mjs +3 -2
  106. package/src/runtime/agent/orchestrator/session/manager/session-lifecycle.mjs +22 -646
  107. package/src/runtime/agent/orchestrator/session/manager/session-owner-liveness.mjs +135 -0
  108. package/src/runtime/agent/orchestrator/session/manager/session-prompt-composition.mjs +150 -0
  109. package/src/runtime/agent/orchestrator/session/manager/session-record.mjs +154 -0
  110. package/src/runtime/agent/orchestrator/session/manager/session-tool-surface.mjs +135 -0
  111. package/src/runtime/agent/orchestrator/session/manager/tool-resolution.mjs +4 -11
  112. package/src/runtime/agent/orchestrator/session/manager/turn-checkpoint-journal.mjs +0 -6
  113. package/src/runtime/agent/orchestrator/session/manager/usage-metrics.mjs +1 -3
  114. package/src/runtime/agent/orchestrator/session/pre-send-compact.mjs +11 -12
  115. package/src/runtime/agent/orchestrator/session/provider-prefix-guard.mjs +23 -32
  116. package/src/runtime/agent/orchestrator/session/store/lifecycle-barriers.mjs +275 -0
  117. package/src/runtime/agent/orchestrator/session/store/lifecycle-read.mjs +67 -0
  118. package/src/runtime/agent/orchestrator/session/store/listing.mjs +1 -1
  119. package/src/runtime/agent/orchestrator/session/store/live-cache-eviction.mjs +72 -0
  120. package/src/runtime/agent/orchestrator/session/store/liveness-veto.mjs +53 -0
  121. package/src/runtime/agent/orchestrator/session/store/load-session.mjs +60 -0
  122. package/src/runtime/agent/orchestrator/session/store/pending-saves.mjs +55 -0
  123. package/src/runtime/agent/orchestrator/session/store/serialize.mjs +7 -15
  124. package/src/runtime/agent/orchestrator/session/store/session-delete.mjs +149 -0
  125. package/src/runtime/agent/orchestrator/session/store/session-observers.mjs +55 -0
  126. package/src/runtime/agent/orchestrator/session/store/write-admission.mjs +108 -0
  127. package/src/runtime/agent/orchestrator/session/store-agent-worker-rows.mjs +531 -0
  128. package/src/runtime/agent/orchestrator/session/store-summary-archived-agent.mjs +126 -0
  129. package/src/runtime/agent/orchestrator/session/store-summary-fields.mjs +24 -0
  130. package/src/runtime/agent/orchestrator/session/store-summary-index.mjs +2 -10
  131. package/src/runtime/agent/orchestrator/session/store-summary-locations.mjs +46 -0
  132. package/src/runtime/agent/orchestrator/session/store-summary-reader.mjs +11 -791
  133. package/src/runtime/agent/orchestrator/session/store-transcript-projection.mjs +126 -0
  134. package/src/runtime/agent/orchestrator/session/store.mjs +33 -771
  135. package/src/runtime/agent/orchestrator/session/tool-batch/finalize.mjs +1 -1
  136. package/src/runtime/agent/orchestrator/session/tool-result-offload.mjs +13 -7
  137. package/src/runtime/agent/orchestrator/stable-hash-stringify.mjs +10 -0
  138. package/src/runtime/agent/orchestrator/tools/builtin/arg-guard.mjs +50 -75
  139. package/src/runtime/agent/orchestrator/tools/builtin/builtin-tools.mjs +2 -1
  140. package/src/runtime/agent/orchestrator/tools/builtin/cache-layers.mjs +22 -21
  141. package/src/runtime/agent/orchestrator/tools/builtin/external-tool-adapters.mjs +0 -2
  142. package/src/runtime/agent/orchestrator/tools/builtin/git-command-policy.mjs +44 -27
  143. package/src/runtime/agent/orchestrator/tools/builtin/git-command-tool.mjs +36 -54
  144. package/src/runtime/agent/orchestrator/tools/builtin/git-partial-stage.mjs +8 -5
  145. package/src/runtime/agent/orchestrator/tools/builtin/lib/grep-context-expander.mjs +8 -5
  146. package/src/runtime/agent/orchestrator/tools/builtin/lib/grep-output.mjs +18 -9
  147. package/src/runtime/agent/orchestrator/tools/builtin/lib/grep-request.mjs +2 -3
  148. package/src/runtime/agent/orchestrator/tools/builtin/lib/grep-single-file-rescue.mjs +80 -67
  149. package/src/runtime/agent/orchestrator/tools/builtin/lib/shell-task-output.mjs +12 -4
  150. package/src/runtime/agent/orchestrator/tools/builtin/native-search-client.mjs +1 -4
  151. package/src/runtime/agent/orchestrator/tools/builtin/path-diagnostics.mjs +61 -72
  152. package/src/runtime/agent/orchestrator/tools/builtin/read-formatting.mjs +0 -5
  153. package/src/runtime/agent/orchestrator/tools/builtin/read-office-files.mjs +3 -3
  154. package/src/runtime/agent/orchestrator/tools/builtin/read-range-index.mjs +11 -14
  155. package/src/runtime/agent/orchestrator/tools/builtin/read-single-render.mjs +3 -6
  156. package/src/runtime/agent/orchestrator/tools/builtin/read-special-files.mjs +1 -2
  157. package/src/runtime/agent/orchestrator/tools/builtin/read-streaming.mjs +124 -94
  158. package/src/runtime/agent/orchestrator/tools/builtin/read-tool/batch-dispatch.mjs +6 -3
  159. package/src/runtime/agent/orchestrator/tools/builtin/read-tool/reach-preflight.mjs +1 -1
  160. package/src/runtime/agent/orchestrator/tools/builtin/read-tool.mjs +1 -1
  161. package/src/runtime/agent/orchestrator/tools/builtin/read-windows.mjs +2 -2
  162. package/src/runtime/agent/orchestrator/tools/builtin/search-builders.mjs +1 -1
  163. package/src/runtime/agent/orchestrator/tools/builtin/search-glob-tool.mjs +6 -6
  164. package/src/runtime/agent/orchestrator/tools/builtin/search-grep-tool.mjs +2 -2
  165. package/src/runtime/agent/orchestrator/tools/builtin/shell-analysis.mjs +21 -35
  166. package/src/runtime/agent/orchestrator/tools/builtin/shell-jobs.mjs +0 -3
  167. package/src/runtime/agent/orchestrator/tools/builtin/shell-lossless-compact.mjs +1 -3
  168. package/src/runtime/agent/orchestrator/tools/builtin/shell-output.mjs +1 -1
  169. package/src/runtime/agent/orchestrator/tools/builtin/shell-runtime.mjs +0 -2
  170. package/src/runtime/agent/orchestrator/tools/builtin/task-tool.mjs +4 -3
  171. package/src/runtime/agent/orchestrator/tools/builtin/text-stats.mjs +6 -3
  172. package/src/runtime/agent/orchestrator/tools/builtin.mjs +0 -4
  173. package/src/runtime/agent/orchestrator/tools/code-graph/aggregate-roots.mjs +7 -7
  174. package/src/runtime/agent/orchestrator/tools/code-graph/ast-calls.mjs +0 -3
  175. package/src/runtime/agent/orchestrator/tools/code-graph/build-file-infos.mjs +182 -0
  176. package/src/runtime/agent/orchestrator/tools/code-graph/build.mjs +14 -159
  177. package/src/runtime/agent/orchestrator/tools/code-graph/constants.mjs +2 -3
  178. package/src/runtime/agent/orchestrator/tools/code-graph/dispatch.mjs +21 -8
  179. package/src/runtime/agent/orchestrator/tools/code-graph/graph-binary.mjs +0 -3
  180. package/src/runtime/agent/orchestrator/tools/code-graph/search-references.mjs +5 -3
  181. package/src/runtime/agent/orchestrator/tools/code-graph/search.mjs +2 -3
  182. package/src/runtime/agent/orchestrator/tools/code-graph/symbol-index.mjs +1 -2
  183. package/src/runtime/agent/orchestrator/tools/code-graph/text-mask.golden.json +1 -1
  184. package/src/runtime/agent/orchestrator/tools/code-graph/text-mask.mjs +0 -1
  185. package/src/runtime/agent/orchestrator/tools/graph-manifest.json +11 -11
  186. package/src/runtime/agent/orchestrator/tools/lib/shell-run-state.mjs +1 -1
  187. package/src/runtime/agent/orchestrator/tools/lib/shell-warm-standby.mjs +1 -1
  188. package/src/runtime/agent/orchestrator/tools/patch/dispatch.mjs +3 -6
  189. package/src/runtime/agent/orchestrator/tools/patch/mutation-output.mjs +1 -1
  190. package/src/runtime/agent/orchestrator/tools/patch/native-server.mjs +25 -39
  191. package/src/runtime/agent/orchestrator/tools/patch/parsing.mjs +9 -14
  192. package/src/runtime/agent/orchestrator/tools/patch/paths.mjs +11 -6
  193. package/src/runtime/agent/orchestrator/tools/patch/replay-capture.mjs +5 -6
  194. package/src/runtime/agent/orchestrator/tools/patch/text-lines.mjs +4 -4
  195. package/src/runtime/agent/orchestrator/tools/patch/v4a-anchors.mjs +10 -7
  196. package/src/runtime/agent/orchestrator/tools/patch/v4a-convert.mjs +20 -30
  197. package/src/runtime/agent/orchestrator/tools/patch/v4a-windows.mjs +4 -19
  198. package/src/runtime/agent/orchestrator/tools/patch/wave.mjs +13 -2
  199. package/src/runtime/agent/orchestrator/tools/patch.mjs +0 -19
  200. package/src/runtime/agent/orchestrator/tools/shell-command.mjs +60 -36
  201. package/src/runtime/agent/orchestrator/tools/shell-exec-output.mjs +0 -4
  202. package/src/runtime/agent/orchestrator/tools/shell-policy.mjs +6 -7
  203. package/src/runtime/attachments/store.mjs +13 -12
  204. package/src/runtime/browser-bridge/client.mjs +19 -9
  205. package/src/runtime/channels/index.mjs +1 -1
  206. package/src/runtime/channels/lib/event-pipeline.mjs +8 -8
  207. package/src/runtime/channels/lib/event-queue.mjs +15 -20
  208. package/src/runtime/channels/lib/executor.mjs +10 -7
  209. package/src/runtime/channels/lib/owner-heartbeat.mjs +0 -4
  210. package/src/runtime/channels/lib/runtime-paths.mjs +30 -33
  211. package/src/runtime/channels/lib/scheduler.mjs +11 -20
  212. package/src/runtime/channels/lib/voice-runtime-fetcher.mjs +0 -4
  213. package/src/runtime/channels/lib/voice-transcription.mjs +127 -104
  214. package/src/runtime/channels/lib/webhook/verification.mjs +33 -20
  215. package/src/runtime/channels/lib/worker-bootstrap.mjs +0 -2
  216. package/src/runtime/channels/lib/worker-main.mjs +2 -2
  217. package/src/runtime/computer-bridge/action-schema.mjs +20 -0
  218. package/src/runtime/computer-bridge/core-actions.mjs +15 -0
  219. package/src/runtime/github/client.mjs +2 -3
  220. package/src/runtime/github/commands.mjs +9 -3
  221. package/src/runtime/github/contract.mjs +7 -0
  222. package/src/runtime/local-provider/catalog.mjs +4 -3
  223. package/src/runtime/local-provider/hardware.mjs +7 -20
  224. package/src/runtime/local-provider/resumable-installations.mjs +12 -19
  225. package/src/runtime/media/auth.mjs +16 -13
  226. package/src/runtime/media/catalog.mjs +14 -6
  227. package/src/runtime/media/lanes.mjs +2 -1
  228. package/src/runtime/memory/index.mjs +5 -10
  229. package/src/runtime/memory/lib/core-memory-store.mjs +3 -7
  230. package/src/runtime/memory/lib/embedding-provider.mjs +9 -19
  231. package/src/runtime/memory/lib/embedding-worker.mjs +24 -28
  232. package/src/runtime/memory/lib/http-router/admin-routes.mjs +5 -51
  233. package/src/runtime/memory/lib/http-router/admin-trace-routes.mjs +65 -0
  234. package/src/runtime/memory/lib/memory-action-handlers/cycle-actions.mjs +18 -143
  235. package/src/runtime/memory/lib/memory-action-handlers/cycle-backfill-action.mjs +84 -0
  236. package/src/runtime/memory/lib/memory-action-handlers/cycle-rebuild-action.mjs +94 -0
  237. package/src/runtime/memory/lib/memory-action-handlers/manage-actions.mjs +92 -53
  238. package/src/runtime/memory/lib/memory-categories.mjs +13 -0
  239. package/src/runtime/memory/lib/memory-chunk-quality.mjs +134 -74
  240. package/src/runtime/memory/lib/memory-cycle-requests.mjs +64 -70
  241. package/src/runtime/memory/lib/memory-cycle1.mjs +17 -33
  242. package/src/runtime/memory/lib/memory-embed.mjs +10 -2
  243. package/src/runtime/memory/lib/memory-ops-policy.mjs +3 -2
  244. package/src/runtime/memory/lib/memory-recall-scope-filter.mjs +1 -1
  245. package/src/runtime/memory/lib/memory.mjs +7 -35
  246. package/src/runtime/memory/lib/pg/adapter.mjs +3 -4
  247. package/src/runtime/memory/lib/pg/process.mjs +23 -28
  248. package/src/runtime/memory/lib/pg/supervisor.mjs +10 -11
  249. package/src/runtime/memory/lib/query-hybrid-search.mjs +2 -2
  250. package/src/runtime/memory/lib/query-maintenance-handlers.mjs +112 -89
  251. package/src/runtime/memory/lib/query-ranking.mjs +8 -11
  252. package/src/runtime/memory/lib/recall-format.mjs +6 -12
  253. package/src/runtime/memory/lib/recall-hybrid/plan.mjs +1 -1
  254. package/src/runtime/memory/lib/runtime-fetcher.mjs +73 -65
  255. package/src/runtime/memory/lib/trace-store.mjs +10 -19
  256. package/src/runtime/memory/lib/transcript-ingest.mjs +7 -4
  257. package/src/runtime/memory/tool-defs.mjs +5 -8
  258. package/src/runtime/office/authoring/pptx-author-action.mjs +2 -2
  259. package/src/runtime/office/authoring/pptx-author-session.mjs +6 -9
  260. package/src/runtime/office/authoring/pptx-brief.mjs +11 -4
  261. package/src/runtime/office/authoring/pptx-receipt.mjs +79 -60
  262. package/src/runtime/office/bench/benchmark.mjs +102 -82
  263. package/src/runtime/office/capabilities-catalog.mjs +2 -0
  264. package/src/runtime/office/capabilities-signatures.mjs +8 -0
  265. package/src/runtime/office/capabilities.mjs +3 -4
  266. package/src/runtime/office/com/com-adapter.mjs +13 -1
  267. package/src/runtime/office/com/office-com-host.ps1 +63 -1
  268. package/src/runtime/office/core/office-actions-batch.mjs +12 -12
  269. package/src/runtime/office/core/office-actions-open.mjs +2 -7
  270. package/src/runtime/office/core/office-core.mjs +20 -1
  271. package/src/runtime/office/core/office-finalize/session-save.mjs +9 -6
  272. package/src/runtime/office/core/office-session-dispatch.mjs +86 -0
  273. package/src/runtime/office/core/office-sessionless-actions.mjs +115 -0
  274. package/src/runtime/office/core/office-sessions.mjs +2 -2
  275. package/src/runtime/office/core/office-transactions.mjs +2 -4
  276. package/src/runtime/office/core/tabular.mjs +13 -16
  277. package/src/runtime/office/design/composition-system.mjs +32 -28
  278. package/src/runtime/office/design/content-model.mjs +2 -1
  279. package/src/runtime/office/design/design-art-direction.mjs +17 -14
  280. package/src/runtime/office/design/design-creative-director.mjs +1 -1
  281. package/src/runtime/office/design/design-discipline.mjs +8 -0
  282. package/src/runtime/office/design/design-tokens.mjs +9 -5
  283. package/src/runtime/office/design/docx/design-docx-components.mjs +88 -156
  284. package/src/runtime/office/design/library/design-library-pack.mjs +11 -23
  285. package/src/runtime/office/design/library/design-library.mjs +15 -37
  286. package/src/runtime/office/design/library/design-template-index.mjs +1 -9
  287. package/src/runtime/office/design/library/design-template-induct.mjs +2 -1
  288. package/src/runtime/office/design/native-design.mjs +2 -3
  289. package/src/runtime/office/index.mjs +7 -160
  290. package/src/runtime/office/pdf/pdf-adapter.mjs +17 -2
  291. package/src/runtime/office/pdf/pdf-ocr.mjs +2 -1
  292. package/src/runtime/office/pdf/pdf-render.mjs +12 -13
  293. package/src/runtime/office/pdf/pdf-writer.mjs +135 -6
  294. package/src/runtime/office/portable/docx-revisions.mjs +5 -5
  295. package/src/runtime/office/portable/docx-runs.mjs +4 -7
  296. package/src/runtime/office/portable/docx-tracked-edits.mjs +14 -9
  297. package/src/runtime/office/portable/font-provisioner.mjs +2 -2
  298. package/src/runtime/office/portable/ooxml-validator.mjs +4 -1
  299. package/src/runtime/office/portable/portable-docx-edits.mjs +61 -45
  300. package/src/runtime/office/portable/portable-docx-operations.mjs +13 -4
  301. package/src/runtime/office/portable/portable-docx-parts.mjs +59 -70
  302. package/src/runtime/office/portable/portable-docx-xml.mjs +3 -5
  303. package/src/runtime/office/portable/portable-opc.mjs +63 -39
  304. package/src/runtime/office/portable/portable-package.mjs +5 -23
  305. package/src/runtime/office/portable/portable-pptx-chart.mjs +7 -6
  306. package/src/runtime/office/portable/portable-pptx-charts.mjs +27 -20
  307. package/src/runtime/office/portable/portable-pptx-core.mjs +10 -21
  308. package/src/runtime/office/portable/portable-pptx-deck.mjs +5 -8
  309. package/src/runtime/office/portable/portable-pptx-package.mjs +23 -30
  310. package/src/runtime/office/portable/portable-pptx-shapes.mjs +21 -57
  311. package/src/runtime/office/portable/portable-sheet-audits.mjs +14 -36
  312. package/src/runtime/office/portable/portable-sheet-page.mjs +22 -23
  313. package/src/runtime/office/portable/portable-sheet-parts.mjs +4 -5
  314. package/src/runtime/office/portable/portable-sheet-styles.mjs +11 -19
  315. package/src/runtime/office/portable/portable-sheet-xml.mjs +15 -7
  316. package/src/runtime/office/portable/portable-slide-shapes.mjs +4 -0
  317. package/src/runtime/office/portable/portable-snapshot-pptx.mjs +2 -2
  318. package/src/runtime/office/portable/portable-snapshot-shared.mjs +1 -1
  319. package/src/runtime/office/portable/portable-snapshot-xlsx.mjs +16 -17
  320. package/src/runtime/office/portable/portable-soffice.mjs +176 -13
  321. package/src/runtime/office/portable/portable-validation-package.mjs +16 -18
  322. package/src/runtime/office/portable/portable-validation.mjs +57 -31
  323. package/src/runtime/office/portable/portable-xlsx-cell-values.mjs +15 -0
  324. package/src/runtime/office/portable/portable-xlsx-charts.mjs +192 -0
  325. package/src/runtime/office/portable/portable-xlsx-drawings.mjs +323 -0
  326. package/src/runtime/office/portable/portable-xlsx-operations.mjs +29 -627
  327. package/src/runtime/office/portable/portable-xlsx-pivot-ops.mjs +94 -0
  328. package/src/runtime/office/portable/portable-xlsx-range-layout.mjs +236 -0
  329. package/src/runtime/office/portable/portable-xlsx-sheet-edits.mjs +19 -14
  330. package/src/runtime/office/portable/portable-xlsx.mjs +32 -0
  331. package/src/runtime/office/portable/portable-xml.mjs +9 -0
  332. package/src/runtime/office/portable/pptx-relations.mjs +11 -0
  333. package/src/runtime/office/portable/pptx-targets.mjs +2 -1
  334. package/src/runtime/office/portable/review-editability.mjs +4 -11
  335. package/src/runtime/office/portable/text-metrics.mjs +35 -55
  336. package/src/runtime/office/portable/xlsx-assertions.mjs +2 -15
  337. package/src/runtime/office/portable/xlsx-audit-support.mjs +2 -6
  338. package/src/runtime/office/portable/xlsx-contract.mjs +4 -0
  339. package/src/runtime/office/portable/xlsx-formula-audit.mjs +11 -4
  340. package/src/runtime/office/portable/xlsx-recalculate.mjs +1 -1
  341. package/src/runtime/office/portable/xlsx-sheet-hygiene.mjs +5 -1
  342. package/src/runtime/office/quality/assurance-rendered.mjs +3 -2
  343. package/src/runtime/office/quality/assurance-structure-pptx.mjs +16 -15
  344. package/src/runtime/office/quality/assurance-trust.mjs +25 -10
  345. package/src/runtime/office/quality/design-aesthetics.mjs +172 -145
  346. package/src/runtime/office/quality/design-deck-diversity.mjs +2 -5
  347. package/src/runtime/office/quality/design-review-authored.mjs +2 -2
  348. package/src/runtime/office/quality/design-review-critique.mjs +36 -37
  349. package/src/runtime/office/quality/design-review.mjs +113 -96
  350. package/src/runtime/office/quality/document-acceptance.mjs +10 -3
  351. package/src/runtime/office/quality/inline-audit.mjs +7 -2
  352. package/src/runtime/office/quality/pptx-deck-rubric.mjs +14 -6
  353. package/src/runtime/office/quality/pptx-slide-roles.mjs +7 -9
  354. package/src/runtime/office/quality/presentation-acceptance.mjs +2 -6
  355. package/src/runtime/office/quality/quality-pipeline.mjs +21 -14
  356. package/src/runtime/office/quality/quality-score.mjs +2 -2
  357. package/src/runtime/office/quality/render-air.mjs +12 -5
  358. package/src/runtime/shared/atomic-file.mjs +19 -8
  359. package/src/runtime/shared/config.mjs +7 -13
  360. package/src/runtime/shared/err-text.mjs +11 -6
  361. package/src/runtime/shared/file-lock.mjs +10 -6
  362. package/src/runtime/shared/inline-file-kind.mjs +51 -0
  363. package/src/runtime/shared/llm/usage-accounting.mjs +9 -6
  364. package/src/runtime/shared/llm/usage-ledger-rollup.mjs +272 -0
  365. package/src/runtime/shared/llm/usage-ledger.mjs +8 -218
  366. package/src/runtime/shared/pristine-execution.mjs +2 -6
  367. package/src/runtime/shared/process-lifecycle.mjs +34 -52
  368. package/src/runtime/shared/process-shutdown.mjs +1 -1
  369. package/src/runtime/shared/schedule-model-ref.mjs +14 -0
  370. package/src/runtime/shared/schedule-session-run.mjs +3 -13
  371. package/src/runtime/shared/schedules-db.mjs +16 -39
  372. package/src/runtime/shared/staged-child-result.mjs +2 -7
  373. package/src/runtime/shared/staged-update.mjs +1 -5
  374. package/src/runtime/shared/tool-card-model/agent-surface.mjs +8 -3
  375. package/src/runtime/shared/tool-card-model/card-status.mjs +2 -1
  376. package/src/runtime/shared/tool-card-model/displayed-result.mjs +2 -3
  377. package/src/runtime/shared/tool-card-model/generic-detail.mjs +5 -3
  378. package/src/runtime/shared/tool-card-model.golden-cases.mjs +10 -2
  379. package/src/runtime/shared/tool-card-model.golden.json +3 -12
  380. package/src/runtime/shared/tool-execution-contract.mjs +22 -26
  381. package/src/runtime/shared/tool-result-summary.mjs +7 -14
  382. package/src/runtime/shared/tool-surface.mjs +30 -33
  383. package/src/runtime/shared/tool-work-units.mjs +12 -8
  384. package/src/runtime/shared/turn-snapshot-store.mjs +2 -4
  385. package/src/runtime/shared/turn-worktree-snapshot.mjs +13 -16
  386. package/src/runtime/shared/update-checker.mjs +5 -0
  387. package/src/runtime/shared/user-data-guard.mjs +10 -17
  388. package/src/runtime/shared/webhook-session-run.mjs +3 -15
  389. package/src/runtime/tidy/history-comment.mjs +32 -27
  390. package/src/runtime/tidy/process.mjs +18 -21
  391. package/src/runtime/tidy/report.mjs +50 -9
  392. package/src/runtime/tidy/resolve.mjs +13 -14
  393. package/src/runtime/tidy/runners/air.mjs +2 -20
  394. package/src/runtime/tidy/runners/biome.mjs +4 -6
  395. package/src/runtime/tidy/runners/dprint.mjs +2 -23
  396. package/src/runtime/tidy/runners/mago.mjs +2 -20
  397. package/src/runtime/tidy/runners/ruff.mjs +2 -8
  398. package/src/runtime/tidy/runners/shared.mjs +35 -9
  399. package/src/runtime/tidy/runners/stylua.mjs +2 -20
  400. package/src/runtime/tidy/shadow.mjs +138 -0
  401. package/src/runtime/tidy/tool.mjs +33 -0
  402. package/src/runtime/tidy/worktree.mjs +114 -0
  403. package/src/runtime/web-search/index.mjs +64 -68
  404. package/src/runtime/web-search/lib/http-fetch.mjs +39 -54
  405. package/src/runtime/web-search/lib/ssrf-guard.mjs +19 -52
  406. package/src/runtime/web-search/lib/web-tools.mjs +2 -2
  407. package/src/session-runtime/config-helpers.mjs +9 -9
  408. package/src/session-runtime/context-inspection.mjs +64 -23
  409. package/src/session-runtime/context-status-cache.mjs +0 -2
  410. package/src/session-runtime/context-status-inspection.mjs +54 -25
  411. package/src/session-runtime/context-status-shape.mjs +1 -18
  412. package/src/session-runtime/goal-facade-api.mjs +15 -12
  413. package/src/session-runtime/goal-mutations.mjs +4 -3
  414. package/src/session-runtime/goal-runtime.mjs +5 -0
  415. package/src/session-runtime/goal-tasks.mjs +5 -10
  416. package/src/session-runtime/goal-text.mjs +46 -9
  417. package/src/session-runtime/goal-tool-defs.mjs +7 -8
  418. package/src/session-runtime/goal-tool-exec.mjs +1 -1
  419. package/src/session-runtime/goal-turns.mjs +54 -3
  420. package/src/session-runtime/hook-payload.mjs +2 -1
  421. package/src/session-runtime/inheritance-fit.mjs +3 -3
  422. package/src/session-runtime/lifecycle/teardown.mjs +9 -1
  423. package/src/session-runtime/mcp-glue/server-catalog.mjs +4 -6
  424. package/src/session-runtime/model-capabilities.mjs +1 -3
  425. package/src/session-runtime/notification-bus.mjs +30 -7
  426. package/src/session-runtime/plugin-mcp.mjs +0 -2
  427. package/src/session-runtime/provider-auth/accounts.mjs +2 -2
  428. package/src/session-runtime/provider-auth/login.mjs +0 -7
  429. package/src/session-runtime/provider-usage.mjs +1 -1
  430. package/src/session-runtime/runtime-paths.mjs +1 -3
  431. package/src/session-runtime/session-hooks.mjs +37 -96
  432. package/src/session-runtime/statusline-route.mjs +1 -4
  433. package/src/session-runtime/tool-catalog-schema.mjs +0 -6
  434. package/src/session-runtime/tool-catalog.mjs +10 -15
  435. package/src/session-runtime/workflow-ids.mjs +1 -2
  436. package/src/standalone/agent-task-status.mjs +1 -2
  437. package/src/standalone/agent-tool/close-flow/close-all.mjs +67 -0
  438. package/src/standalone/agent-tool/close-flow.mjs +2 -58
  439. package/src/standalone/agent-tool/execute-send.mjs +91 -0
  440. package/src/standalone/agent-tool/execute-spawn.mjs +76 -0
  441. package/src/standalone/agent-tool/execute.mjs +7 -147
  442. package/src/standalone/agent-tool/helpers.mjs +3 -6
  443. package/src/standalone/agent-tool/notify/early-completion.mjs +58 -0
  444. package/src/standalone/agent-tool/notify.mjs +7 -55
  445. package/src/standalone/agent-tool/provider-init.mjs +73 -64
  446. package/src/standalone/agent-tool/render.mjs +123 -115
  447. package/src/standalone/agent-tool/spawn-flow/spawn-plan.mjs +89 -0
  448. package/src/standalone/agent-tool/spawn-flow/spawn-prep.mjs +16 -75
  449. package/src/standalone/agent-tool/spawn-flow/spawn-run.mjs +1 -1
  450. package/src/standalone/agent-tool/worker-rows.mjs +0 -7
  451. package/src/standalone/channel-admin.mjs +13 -18
  452. package/src/standalone/channel-transport/remote-binding.mjs +10 -79
  453. package/src/standalone/channel-transport/remote-intent.mjs +52 -0
  454. package/src/standalone/channel-transport/remote-notify.mjs +15 -107
  455. package/src/standalone/channel-transport/remote-pointer.mjs +124 -0
  456. package/src/standalone/channel-transport/remote-state.mjs +47 -0
  457. package/src/standalone/daemon-agent-control.mjs +65 -0
  458. package/src/standalone/daemon-channels-loader.mjs +60 -0
  459. package/src/standalone/daemon-desktop-runtime.mjs +28 -0
  460. package/src/standalone/daemon-local-session-bridge.mjs +62 -0
  461. package/src/standalone/daemon-stored-session-views.mjs +55 -0
  462. package/src/standalone/daemon.mjs +175 -320
  463. package/src/standalone/desktop-service-registry.mjs +9 -7
  464. package/src/standalone/folder-dialog.mjs +11 -12
  465. package/src/standalone/hook-bus/command-handler.mjs +60 -49
  466. package/src/standalone/hook-bus/event-runner.mjs +7 -74
  467. package/src/standalone/hook-bus/handler-dispatch.mjs +75 -0
  468. package/src/standalone/provider-admin.mjs +14 -35
  469. package/src/standalone/session-client/attachment-calls.mjs +67 -0
  470. package/src/standalone/session-client/stream-link.mjs +85 -0
  471. package/src/standalone/session-client.mjs +31 -106
  472. package/src/standalone/session-frame-stream.mjs +4 -2
  473. package/src/standalone/session-protocol.mjs +0 -1
  474. package/src/standalone/session-runtime-agent-control-client.mjs +11 -27
  475. package/src/standalone/session-runtime-agent-control.mjs +85 -0
  476. package/src/standalone/session-runtime-host.mjs +30 -472
  477. package/src/standalone/session-runtime-inline-host/telemetry.mjs +38 -0
  478. package/src/standalone/session-runtime-inline-host.mjs +6 -37
  479. package/src/standalone/session-runtime-proxy.mjs +164 -0
  480. package/src/standalone/session-runtime-shard-router.mjs +4 -7
  481. package/src/standalone/session-runtime-spawn-leases.mjs +82 -0
  482. package/src/standalone/session-runtime-worker.mjs +27 -7
  483. package/src/standalone/session-service/agent-tree/agent-child.mjs +59 -0
  484. package/src/standalone/session-service/agent-tree/agent-turns.mjs +4 -55
  485. package/src/standalone/session-service/agent-tree.mjs +3 -1
  486. package/src/standalone/session-service/entries/disposal.mjs +72 -0
  487. package/src/standalone/session-service/entries/external-binding.mjs +6 -3
  488. package/src/standalone/session-service/entries/lifecycle.mjs +15 -59
  489. package/src/standalone/session-service/retention/busy.mjs +50 -0
  490. package/src/standalone/session-service/retention.mjs +5 -44
  491. package/src/standalone/session-service/session-calls/goal-recovery.mjs +44 -0
  492. package/src/standalone/session-service/session-calls/session-action.mjs +5 -8
  493. package/src/standalone/session-service/session-calls/session-turns.mjs +12 -42
  494. package/src/standalone/session-service/session-calls/session-views.mjs +8 -8
  495. package/src/standalone/session-transport/stack.mjs +131 -0
  496. package/src/standalone/session-transport.mjs +10 -103
  497. package/src/standalone/usage-dashboard.mjs +167 -165
  498. package/src/standalone/usage-stats-model.mjs +117 -97
  499. package/src/tui/App.jsx +27 -210
  500. package/src/tui/app/app-format.mjs +7 -0
  501. package/src/tui/app/app-view/floating-panel.jsx +229 -0
  502. package/src/tui/app/app-view/text-entry-labels.mjs +81 -0
  503. package/src/tui/app/app-view/transcript-viewport/trailing-bands.jsx +94 -0
  504. package/src/tui/app/app-view/transcript-viewport/transcript-rows.jsx +87 -0
  505. package/src/tui/app/app-view/transcript-viewport.jsx +74 -0
  506. package/src/tui/app/app-view.jsx +12 -450
  507. package/src/tui/app/core-memory-picker/core-rows.mjs +32 -0
  508. package/src/tui/app/core-memory-picker/entry-prompts.mjs +45 -0
  509. package/src/tui/app/core-memory-picker/list-panels.mjs +75 -0
  510. package/src/tui/app/core-memory-picker.mjs +26 -120
  511. package/src/tui/app/doctor.mjs +17 -12
  512. package/src/tui/app/extension-pickers/skills-pickers/project-skills.mjs +38 -0
  513. package/src/tui/app/extension-pickers/skills-pickers/skill-detail.mjs +80 -0
  514. package/src/tui/app/extension-pickers/skills-pickers/skill-items.mjs +44 -0
  515. package/src/tui/app/extension-pickers/skills-pickers.mjs +31 -137
  516. package/src/tui/app/model-picker/route-selection/context-window.mjs +47 -0
  517. package/src/tui/app/model-picker/route-selection/effort.mjs +87 -0
  518. package/src/tui/app/model-picker/route-selection/fast-parameters.mjs +84 -0
  519. package/src/tui/app/model-picker/route-selection/model-key.mjs +5 -0
  520. package/src/tui/app/model-picker/route-selection.mjs +34 -200
  521. package/src/tui/app/mouse-input/edge-autoscroll.mjs +53 -0
  522. package/src/tui/app/mouse-input/geometry.mjs +109 -0
  523. package/src/tui/app/mouse-input/sgr-buttons.mjs +14 -0
  524. package/src/tui/app/mouse-input/wheel-router.mjs +96 -0
  525. package/src/tui/app/panel-signature.mjs +58 -0
  526. package/src/tui/app/project-picker/project-service.mjs +3 -7
  527. package/src/tui/app/prompt-submit.mjs +2 -7
  528. package/src/tui/app/provider-setup/api-key-actions.mjs +7 -80
  529. package/src/tui/app/provider-setup/oauth-actions.mjs +2 -10
  530. package/src/tui/app/provider-setup/provider-items.mjs +20 -3
  531. package/src/tui/app/settings-picker/settings-toggles/cycled.mjs +4 -0
  532. package/src/tui/app/settings-picker/settings-toggles/listed-cyclers.mjs +77 -0
  533. package/src/tui/app/settings-picker/settings-toggles/store-toggles.mjs +61 -0
  534. package/src/tui/app/settings-picker/settings-toggles/theme-cycler.mjs +36 -0
  535. package/src/tui/app/settings-picker/settings-toggles.mjs +21 -149
  536. package/src/tui/app/slash-commands.mjs +14 -4
  537. package/src/tui/app/store-service-call.mjs +17 -0
  538. package/src/tui/app/text-entry-policy.mjs +1 -3
  539. package/src/tui/app/transcript-row-estimate.mjs +31 -91
  540. package/src/tui/app/transcript-window.mjs +19 -0
  541. package/src/tui/app/use-disabled-skills.mjs +52 -0
  542. package/src/tui/app/use-global-key-input/copy-first.mjs +43 -0
  543. package/src/tui/app/use-global-key-input/shift-arrow.mjs +30 -0
  544. package/src/tui/app/use-global-key-input.mjs +10 -67
  545. package/src/tui/app/use-model-catalog-cache.mjs +86 -0
  546. package/src/tui/app/use-mouse-input.mjs +64 -218
  547. package/src/tui/app/use-pasted-buffers.mjs +55 -81
  548. package/src/tui/app/use-prompt-draft-flow/draft-change.mjs +66 -0
  549. package/src/tui/app/use-prompt-draft-flow/prompt-cancels.mjs +40 -0
  550. package/src/tui/app/use-prompt-draft-flow.mjs +38 -77
  551. package/src/tui/app/use-prompt-queue-history/prompt-history.mjs +22 -0
  552. package/src/tui/app/use-prompt-queue-history/restore-to-prompt.mjs +147 -0
  553. package/src/tui/app/use-prompt-queue-history.mjs +20 -117
  554. package/src/tui/app/use-selection-focus.mjs +2 -1
  555. package/src/tui/app/use-selection-geometry.mjs +9 -12
  556. package/src/tui/app/use-selection-paint/paint-queue.mjs +90 -0
  557. package/src/tui/app/use-selection-paint/selection-clip.mjs +33 -0
  558. package/src/tui/app/use-selection-paint.mjs +31 -102
  559. package/src/tui/app/use-transcript-activity.mjs +1 -1
  560. package/src/tui/app/use-transcript-window/instance-state.mjs +1 -1
  561. package/src/tui/app/use-welcome-prompt-hint.mjs +1 -1
  562. package/src/tui/app/workflow-cycle.mjs +63 -0
  563. package/src/tui/components/AnsiText.jsx +47 -15
  564. package/src/tui/components/ItemRightHintOverprint.jsx +2 -15
  565. package/src/tui/components/Picker.jsx +9 -23
  566. package/src/tui/components/PromptInput.jsx +89 -335
  567. package/src/tui/components/QueuedCommands.jsx +1 -3
  568. package/src/tui/components/Spinner.jsx +1 -2
  569. package/src/tui/components/StatusLine.jsx +11 -21
  570. package/src/tui/components/TextEntryPanel.jsx +5 -52
  571. package/src/tui/components/ToolExecution.jsx +5 -14
  572. package/src/tui/components/TranscriptItem.jsx +0 -2
  573. package/src/tui/components/TurnDone.jsx +2 -14
  574. package/src/tui/components/prompt-input/cursor-anchor.mjs +65 -0
  575. package/src/tui/components/prompt-input/edit-helpers.mjs +1 -2
  576. package/src/tui/components/prompt-input/key-signals.mjs +122 -0
  577. package/src/tui/components/prompt-input/mouse-selection.mjs +114 -0
  578. package/src/tui/components/prompt-input/restore-policy.d.mts +0 -1
  579. package/src/tui/components/prompt-input/restore-policy.mjs +3 -8
  580. package/src/tui/components/prompt-input/selected-text.jsx +25 -0
  581. package/src/tui/components/prompt-input/undo-stack.mjs +75 -0
  582. package/src/tui/components/tool-output-format.mjs +1 -2
  583. package/src/tui/dist/index.mjs +2841 -2469
  584. package/src/tui/index.jsx +2 -2
  585. package/src/tui/markdown/measure-rendered-rows.mjs +8 -33
  586. package/src/tui/markdown/render-ansi.mjs +5 -5
  587. package/src/tui/markdown/table-layout/box-lines.mjs +46 -0
  588. package/src/tui/markdown/table-layout/cells.mjs +23 -0
  589. package/src/tui/markdown/table-layout/column-widths.mjs +65 -0
  590. package/src/tui/markdown/table-layout/vertical-lines.mjs +46 -0
  591. package/src/tui/markdown/table-layout.mjs +21 -151
  592. package/src/tui/prompt-history-store.mjs +0 -9
  593. package/src/tui/session/active-tool-summary.mjs +19 -27
  594. package/src/tui/session/agent-envelope.mjs +9 -9
  595. package/src/tui/session/live-share/owner.mjs +9 -7
  596. package/src/tui/session/live-share/retry.mjs +15 -0
  597. package/src/tui/session/live-share/viewer/frame-router.mjs +32 -0
  598. package/src/tui/session/live-share/viewer/pipe-client.mjs +108 -0
  599. package/src/tui/session/live-share/viewer.mjs +23 -114
  600. package/src/tui/session/notice-surface.mjs +1 -1
  601. package/src/tui/session/notice-text.mjs +21 -17
  602. package/src/tui/session/queue-helpers.mjs +12 -14
  603. package/src/tui/session/session-api/intake/submission.mjs +3 -8
  604. package/src/tui/session/session-api/integrations.mjs +0 -11
  605. package/src/tui/session/session-api/lifecycle/session-reset.mjs +76 -74
  606. package/src/tui/session/session-flow/drain.mjs +18 -5
  607. package/src/tui/session/session-flow/queue/entry-shape.mjs +53 -0
  608. package/src/tui/session/session-flow/queue/take-entries.mjs +82 -0
  609. package/src/tui/session/session-flow/queue.mjs +10 -112
  610. package/src/tui/session/session-flow/session-reset.mjs +2 -7
  611. package/src/tui/session/tool-approval.mjs +13 -17
  612. package/src/tui/session/tool-result-text.mjs +16 -28
  613. package/src/tui/session/transcript-spill.mjs +3 -7
  614. package/src/tui/session/transcript-store/replace-items.mjs +66 -0
  615. package/src/tui/session/transcript-store/streaming-tail.mjs +49 -0
  616. package/src/tui/session/transcript-store.mjs +16 -95
  617. package/src/tui/statusline-ansi-bridge.mjs +1 -40
  618. package/src/ui/markdown.mjs +3 -2
  619. package/src/ui/statusline-agents.mjs +9 -14
  620. package/src/ui/statusline.mjs +4 -4
  621. package/src/runtime/channels/lib/cli-worker-host.mjs +0 -2
  622. package/src/runtime/memory/lib/llm-worker-host.mjs +0 -11
  623. package/src/standalone/opencode-go-login.mjs +0 -140
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mixdog",
3
- "version": "0.9.172",
3
+ "version": "0.9.173",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "Standalone mixdog coding-agent CLI/TUI workspace.",
@@ -74,9 +74,9 @@
74
74
  "test:release-assets": "node --check scripts/verify-release-assets.mjs && node --check scripts/release-gate-test.mjs && node --check scripts/prepare-native-assets.mjs && node --test scripts/release-gate-test.mjs scripts/prepare-native-assets-test.mjs scripts/generate-voice-runtime-manifest.test.mjs",
75
75
  "test:native-edit-wire": "node scripts/native-edit-wire-test.mjs",
76
76
  "test:release-critical": "npm run test:release-assets && npm run smoke:patch && npm run test:providers",
77
- "test:spec-advisory": "node scripts/advisory-spec-test.mjs && npm run test:spec-advisory --prefix apps/desktop",
77
+ "test:spec-advisory": "node scripts/run-advisory-spec.mjs && npm run test:spec-advisory --prefix apps/desktop",
78
78
  "test:session-transport": "node --test \"scripts/session-transport/*.test.mjs\" scripts/daemon-bootstrap-test.mjs src/runtime/shared/child-spawn-remote.test.mjs src/standalone/session-runtime-agent-control-client.test.mjs src/standalone/session-runtime-dispatch-cancel.test.mjs src/standalone/session-runtime-host-factory.test.mjs src/standalone/session-runtime-inline-host.test.mjs src/standalone/session-runtime-provider-cooldown.test.mjs src/standalone/session-runtime-shard-host.test.mjs src/standalone/session-runtime-shard-router.test.mjs",
79
- "test:session": "node --test scripts/runtime-turn-contract-test.mjs scripts/session-save-fault-store-test.mjs scripts/turn-review-revert-test.mjs src/runtime/shared/tool-surface.test.mjs src/runtime/bridge-clients.test.mjs src/runtime/browser-bridge/action-schema.test.mjs src/runtime/computer-bridge/client-semantic-error.test.mjs src/runtime/agent/orchestrator/session/tool-envelope.test.mjs src/runtime/agent/orchestrator/session/eager-dispatch.test.mjs",
79
+ "test:session": "node --test scripts/runtime-turn-contract-test.mjs scripts/session-save-fault-store.slow.test.mjs scripts/turn-review-revert.slow.test.mjs src/runtime/shared/tool-surface.test.mjs src/runtime/bridge-clients.test.mjs src/runtime/browser-bridge/action-schema.test.mjs src/runtime/computer-bridge/client-semantic-error.test.mjs src/runtime/agent/orchestrator/session/tool-envelope.test.mjs src/runtime/agent/orchestrator/session/eager-dispatch.test.mjs",
80
80
  "test:quick": "npm run test:session && npm run test:session-transport && npm run test:desktop-main --prefix apps/desktop",
81
81
  "test:office": "node --test scripts/run-office-live-tests.test.mjs src/runtime/office/office-runtime-contract.test.mjs src/runtime/office/office-runtime-com.test.mjs src/runtime/office/office-runtime-portable.test.mjs src/runtime/office/xlsx-formula-audit.test.mjs src/runtime/office/xlsx-portable-snapshot.test.mjs src/runtime/office/office-runtime-pdf.test.mjs src/runtime/office/office-runtime-design.test.mjs src/runtime/office/office-assurance.test.mjs src/runtime/office/office-design-aesthetics.test.mjs src/runtime/office/portable-authoring.test.mjs src/runtime/office/slide-quality.test.mjs src/runtime/office/authoring/pptx-brief.test.mjs src/runtime/office/authoring/pptx-receipt.test.mjs src/runtime/office/quality/render-air.test.mjs src/runtime/office/quality/pptx-deck-rubric.test.mjs && npm run test:office-approval --prefix apps/desktop",
82
82
  "test:office:live": "node scripts/run-office-live-tests.mjs",
@@ -20,8 +20,7 @@ const includesTerm = (text, term) => {
20
20
  const includesAll = (text, terms) => terms.every((term) => includesTerm(text, term));
21
21
  const hasPositiveClause = (text, terms) =>
22
22
  clauses(text).some((clause) => !NEGATION.test(clause) && includesAll(clause, terms));
23
- const hasModeClause = (text, label, modes, target = null) =>
24
- hasPositiveClause(text, [label, ...modes, ...(target ? [target] : [])]);
23
+ const hasModeClause = (text, label, modes) => hasPositiveClause(text, [label, ...modes]);
25
24
  const hasContradictoryTargetAssignment = (text) =>
26
25
  hasPositiveClause(text, [...FILE_MODES, 'symbols[]']) || hasPositiveClause(text, [...SYMBOL_MODES, 'files[]']);
27
26
  const removeIdentifier = (text, identifier) =>
@@ -58,7 +58,7 @@ if (child) {
58
58
  console.error(`${spec.name}: ${error.message}`);
59
59
  process.exitCode = 1;
60
60
  } finally {
61
- await runtime?.stop?.('context-renewal-live-check');
61
+ await runtime?.close('context-renewal-live-check');
62
62
  }
63
63
  process.exit(process.exitCode || 0);
64
64
  }
@@ -0,0 +1,27 @@
1
+ #!/usr/bin/env node
2
+ // Ask the artifact written by `node scripts/test.mjs --coverage` whether the
3
+ // suite executed the function a line belongs to. A file that changed since the
4
+ // collection answers STALE instead of a verdict nobody should act on.
5
+ //
6
+ // Usage: node scripts/coverage-query.mjs <file> <line>
7
+ // node scripts/coverage-query.mjs --status
8
+ import { relative, resolve } from 'node:path';
9
+ import {
10
+ coverageStaleness,
11
+ formatCoverageAnswer,
12
+ formatStaleness,
13
+ loadCoverageArtifact,
14
+ queryCoverage,
15
+ } from './lib/coverage.mjs';
16
+
17
+ const [file, line] = process.argv.slice(2);
18
+ if (file === '--status') {
19
+ console.log(formatStaleness(await coverageStaleness(await loadCoverageArtifact())));
20
+ } else if (!file || !/^\d+$/.test(line ?? '')) {
21
+ console.error('usage: node scripts/coverage-query.mjs <file> <line> | --status');
22
+ process.exitCode = 1;
23
+ } else {
24
+ const artifact = await loadCoverageArtifact();
25
+ const path = relative(process.cwd(), resolve(process.cwd(), file));
26
+ console.log(formatCoverageAnswer(await queryCoverage(artifact, path, Number(line))));
27
+ }
@@ -46,7 +46,6 @@ try {
46
46
 
47
47
  const { assets } = JSON.parse(assetsJson);
48
48
 
49
- // Filter tarball assets
50
49
  const tarballs = assets.filter((a) => /^mixdog-runtime-.+\.tar\.gz$/.test(a.name));
51
50
  console.log(
52
51
  `Found ${tarballs.length} tarball(s):`,
@@ -65,27 +64,24 @@ if (tarballs.length === 0) {
65
64
  const PG_RE = /pg(\d+)\.(\d+)/;
66
65
  const VEC_RE = /pgvector(\d+(?:\.\d+)+)/;
67
66
 
68
- let pgMajor = 16,
69
- pgMinor = 4,
70
- pgvectorVersion = '0.7.4';
71
- for (const t of tarballs) {
72
- const pgM = PG_RE.exec(t.name);
73
- const vM = VEC_RE.exec(t.name);
74
- if (pgM) {
75
- pgMajor = parseInt(pgM[1], 10);
76
- pgMinor = parseInt(pgM[2], 10);
77
- }
78
- if (vM) {
79
- pgvectorVersion = vM[1];
80
- }
81
- break; // all tarballs share the same version; just read the first
67
+ // All tarballs of one release share the same versions, so the first asset
68
+ // carrying both wins. A release whose names carry neither must fail here: a
69
+ // manifest built from hardcoded defaults would publish the wrong runtime.
70
+ const versioned = tarballs.find((t) => PG_RE.test(t.name) && VEC_RE.test(t.name));
71
+ if (!versioned) {
72
+ console.error(
73
+ `Cannot read pg/pgvector versions from release asset name(s): ${tarballs.map((t) => t.name).join(', ')}`
74
+ );
75
+ process.exit(1);
82
76
  }
77
+ const pgMajor = parseInt(PG_RE.exec(versioned.name)[1], 10);
78
+ const pgMinor = parseInt(PG_RE.exec(versioned.name)[2], 10);
79
+ const pgvectorVersion = VEC_RE.exec(versioned.name)[1];
83
80
 
84
81
  // ---------------------------------------------------------------------------
85
82
  // 3. Fetch sha256 sidecar content for each tarball
86
83
  // ---------------------------------------------------------------------------
87
84
  async function fetchSha256(sha256AssetName, _downloadUrl) {
88
- // Try matching .sha256 sidecar from the asset list first
89
85
  const sidecar = assets.find((a) => a.name === sha256AssetName);
90
86
  if (!sidecar) {
91
87
  throw new Error(`Missing required checksum sidecar: ${sha256AssetName}`);
@@ -18,6 +18,53 @@ export function normalizeRel(rel) {
18
18
  return String(rel || '').replace(/\\/g, '/');
19
19
  }
20
20
 
21
+ /** Flags whose next argv entry is stored verbatim on the named option field. */
22
+ const STRING_FLAG_FIELDS = new Map([
23
+ ['--old', 'old'],
24
+ ['--new', 'new'],
25
+ ['--root', 'root'],
26
+ ['--json', 'json'],
27
+ ['--old-jsonl', 'oldJsonl'],
28
+ ['--new-jsonl', 'newJsonl'],
29
+ ['--kind-map', 'kindMap'],
30
+ ]);
31
+
32
+ /** Flags whose next argv entry is stored as a Number on the named option field. */
33
+ const NUMBER_FLAG_FIELDS = new Map([
34
+ ['--max-symbol-loss', 'maxSymbolLoss'],
35
+ ['--max-import-diff', 'maxImportDiff'],
36
+ ['--max-token-loss', 'maxTokenLoss'],
37
+ ['--max-time-ratio', 'maxTimeRatio'],
38
+ ['--runs', 'runs'],
39
+ ]);
40
+
41
+ /** Consume the consecutive non-flag argv entries that follow index `start`. */
42
+ function takeTrailingValues(argv, start) {
43
+ const values = [];
44
+ let index = start;
45
+ while (index + 1 < argv.length && !String(argv[index + 1]).startsWith('--')) {
46
+ values.push(argv[index + 1]);
47
+ index += 1;
48
+ }
49
+ return { values, index };
50
+ }
51
+
52
+ /** Cross-flag mode requirements and numeric threshold ranges. */
53
+ function validateParityOptions(out) {
54
+ const jsonlMode = Boolean(out.oldJsonl || out.newJsonl);
55
+ if (jsonlMode && (!out.oldJsonl || !out.newJsonl)) {
56
+ throw new Error('both --old-jsonl and --new-jsonl are required');
57
+ }
58
+ if (!jsonlMode && (!out.old || !out.new)) {
59
+ throw new Error('--old and --new binaries are required (or --old-jsonl/--new-jsonl)');
60
+ }
61
+ if (!Number.isFinite(out.maxSymbolLoss) || out.maxSymbolLoss < 0) throw new Error('invalid --max-symbol-loss');
62
+ if (!Number.isFinite(out.maxImportDiff) || out.maxImportDiff < 0) throw new Error('invalid --max-import-diff');
63
+ if (!Number.isFinite(out.maxTokenLoss) || out.maxTokenLoss < 0) throw new Error('invalid --max-token-loss');
64
+ if (!Number.isFinite(out.maxTimeRatio) || out.maxTimeRatio <= 0) throw new Error('invalid --max-time-ratio');
65
+ if (!Number.isFinite(out.runs) || out.runs < 1 || !Number.isInteger(out.runs)) throw new Error('invalid --runs');
66
+ }
67
+
21
68
  export function parseArgs(argv) {
22
69
  const out = {
23
70
  old: null,
@@ -43,55 +90,19 @@ export function parseArgs(argv) {
43
90
  };
44
91
  for (let i = 0; i < argv.length; i += 1) {
45
92
  const a = argv[i];
93
+ const stringField = STRING_FLAG_FIELDS.get(a);
94
+ if (stringField) {
95
+ out[stringField] = take(argv, i, a);
96
+ i += 1;
97
+ continue;
98
+ }
99
+ const numberField = NUMBER_FLAG_FIELDS.get(a);
100
+ if (numberField) {
101
+ out[numberField] = Number(take(argv, i, a));
102
+ i += 1;
103
+ continue;
104
+ }
46
105
  switch (a) {
47
- case '--old':
48
- out.old = take(argv, i, a);
49
- i += 1;
50
- break;
51
- case '--new':
52
- out.new = take(argv, i, a);
53
- i += 1;
54
- break;
55
- case '--root':
56
- out.root = take(argv, i, a);
57
- i += 1;
58
- break;
59
- case '--json':
60
- out.json = take(argv, i, a);
61
- i += 1;
62
- break;
63
- case '--old-jsonl':
64
- out.oldJsonl = take(argv, i, a);
65
- i += 1;
66
- break;
67
- case '--new-jsonl':
68
- out.newJsonl = take(argv, i, a);
69
- i += 1;
70
- break;
71
- case '--max-symbol-loss':
72
- out.maxSymbolLoss = Number(take(argv, i, a));
73
- i += 1;
74
- break;
75
- case '--max-import-diff':
76
- out.maxImportDiff = Number(take(argv, i, a));
77
- i += 1;
78
- break;
79
- case '--max-token-loss':
80
- out.maxTokenLoss = Number(take(argv, i, a));
81
- i += 1;
82
- break;
83
- case '--max-time-ratio':
84
- out.maxTimeRatio = Number(take(argv, i, a));
85
- i += 1;
86
- break;
87
- case '--runs':
88
- out.runs = Number(take(argv, i, a));
89
- i += 1;
90
- break;
91
- case '--kind-map':
92
- out.kindMap = take(argv, i, a);
93
- i += 1;
94
- break;
95
106
  case '--tokens':
96
107
  out.tokens = true;
97
108
  break;
@@ -99,18 +110,17 @@ export function parseArgs(argv) {
99
110
  const first = take(argv, i, a);
100
111
  i += 1;
101
112
  out.allowNewLanguages.push(...splitLangIds(first));
102
- while (i + 1 < argv.length && !String(argv[i + 1]).startsWith('--')) {
103
- out.allowNewLanguages.push(...splitLangIds(argv[i + 1]));
104
- i += 1;
105
- }
113
+ const trailing = takeTrailingValues(argv, i);
114
+ for (const value of trailing.values) out.allowNewLanguages.push(...splitLangIds(value));
115
+ i = trailing.index;
106
116
  break;
107
117
  }
108
- case '--files':
109
- while (i + 1 < argv.length && !String(argv[i + 1]).startsWith('--')) {
110
- out.files.push(argv[i + 1]);
111
- i += 1;
112
- }
118
+ case '--files': {
119
+ const trailing = takeTrailingValues(argv, i);
120
+ out.files.push(...trailing.values);
121
+ i = trailing.index;
113
122
  break;
123
+ }
114
124
  case '--help':
115
125
  case '-h':
116
126
  throw new Error('help');
@@ -118,18 +128,7 @@ export function parseArgs(argv) {
118
128
  throw new Error(`unknown argument: ${a}`);
119
129
  }
120
130
  }
121
- const jsonlMode = Boolean(out.oldJsonl || out.newJsonl);
122
- if (jsonlMode && (!out.oldJsonl || !out.newJsonl)) {
123
- throw new Error('both --old-jsonl and --new-jsonl are required');
124
- }
125
- if (!jsonlMode && (!out.old || !out.new)) {
126
- throw new Error('--old and --new binaries are required (or --old-jsonl/--new-jsonl)');
127
- }
128
- if (!Number.isFinite(out.maxSymbolLoss) || out.maxSymbolLoss < 0) throw new Error('invalid --max-symbol-loss');
129
- if (!Number.isFinite(out.maxImportDiff) || out.maxImportDiff < 0) throw new Error('invalid --max-import-diff');
130
- if (!Number.isFinite(out.maxTokenLoss) || out.maxTokenLoss < 0) throw new Error('invalid --max-token-loss');
131
- if (!Number.isFinite(out.maxTimeRatio) || out.maxTimeRatio <= 0) throw new Error('invalid --max-time-ratio');
132
- if (!Number.isFinite(out.runs) || out.runs < 1 || !Number.isInteger(out.runs)) throw new Error('invalid --runs');
131
+ validateParityOptions(out);
133
132
  out.allowNewLanguages = [...new Set(out.allowNewLanguages)];
134
133
  return out;
135
134
  }
@@ -184,11 +183,9 @@ export function parseLangsStdout(text) {
184
183
  }
185
184
  };
186
185
  const whole = tryParse(src);
187
- if (whole && Object.keys(whole).length) return whole;
188
186
  if (whole) return whole;
189
187
  for (const line of src.split(/\n/)) {
190
188
  const parsed = tryParse(line.trim());
191
- if (parsed && Object.keys(parsed).length) return parsed;
192
189
  if (parsed) return parsed;
193
190
  }
194
191
  return {};
@@ -771,8 +768,9 @@ function formatExamples(examples) {
771
768
  return examples.map((ex) => ` - ${JSON.stringify(ex)}`).join('\n');
772
769
  }
773
770
 
774
- export function formatMarkdown(report) {
775
- const lines = ['# mixdog-graph extraction parity', ''];
771
+ /** Run inputs: compared binaries/root, file counts, language allow-list, kind-map source. */
772
+ function formatRunInputLines(report) {
773
+ const lines = [];
776
774
  if (report.old) lines.push(`- old: \`${report.old}\``);
777
775
  if (report.new) lines.push(`- new: \`${report.new}\``);
778
776
  if (report.root) lines.push(`- root: \`${report.root}\``);
@@ -799,6 +797,12 @@ export function formatMarkdown(report) {
799
797
  lines.push('- kind-map: inactive');
800
798
  }
801
799
  if (report.tokens) lines.push('- tokens: on');
800
+ return lines;
801
+ }
802
+
803
+ /** Gate outcome: manifest parity, timing ratio, and the PASS/FAIL verdict. */
804
+ function formatGateLines(report) {
805
+ const lines = [];
802
806
  if (report.manifestIdentical == null) lines.push('- manifest: (skipped)');
803
807
  else if (report.manifestIdentical) {
804
808
  lines.push(
@@ -822,7 +826,12 @@ export function formatMarkdown(report) {
822
826
  } else {
823
827
  lines.push('- result: **PASS**');
824
828
  }
825
- lines.push('', '## Totals', '');
829
+ return lines;
830
+ }
831
+
832
+ /** Per-category totals table. */
833
+ function formatTotalsLines(report) {
834
+ const lines = ['', '## Totals', ''];
826
835
  lines.push('| category | count |');
827
836
  lines.push('|---|---|');
828
837
  lines.push(`| LOSS | ${report.totals.loss} |`);
@@ -837,6 +846,12 @@ export function formatMarkdown(report) {
837
846
  lines.push(`| TOKEN_LOSS | ${report.totals.tokenLost || 0} |`);
838
847
  lines.push(`| TOKEN_ADD | ${report.totals.tokenAdded || 0} |`);
839
848
  }
849
+ return lines;
850
+ }
851
+
852
+ /** Optional sections that qualify the totals: unmapped kinds, additive fields, line moves. */
853
+ function formatTotalsQualifierLines(report) {
854
+ const lines = [];
840
855
  if (report.unmappedKinds?.length) {
841
856
  lines.push('', '## Unmapped kinds', '');
842
857
  for (const item of report.unmappedKinds) {
@@ -862,7 +877,12 @@ export function formatMarkdown(report) {
862
877
  lines.push(`- ${item.rel}: \`${item.name}\``);
863
878
  }
864
879
  }
880
+ return lines;
881
+ }
865
882
 
883
+ /** One section per language with its non-empty diff buckets and examples. */
884
+ function formatLanguageLines(report) {
885
+ const lines = [];
866
886
  const langs = Object.keys(report.byLanguage).sort();
867
887
  for (const lang of langs) {
868
888
  const b = report.byLanguage[lang];
@@ -881,7 +901,20 @@ export function formatMarkdown(report) {
881
901
  if (formatted) lines.push(formatted);
882
902
  }
883
903
  }
884
- lines.push('');
904
+ return lines;
905
+ }
906
+
907
+ export function formatMarkdown(report) {
908
+ const lines = [
909
+ '# mixdog-graph extraction parity',
910
+ '',
911
+ ...formatRunInputLines(report),
912
+ ...formatGateLines(report),
913
+ ...formatTotalsLines(report),
914
+ ...formatTotalsQualifierLines(report),
915
+ ...formatLanguageLines(report),
916
+ '',
917
+ ];
885
918
  return lines.join('\n');
886
919
  }
887
920