mixdog 1.4.2 → 1.4.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 (417) hide show
  1. package/package.json +2 -2
  2. package/scripts/build-shipped-history.mjs +15 -5
  3. package/scripts/gate-local.mjs +65 -19
  4. package/scripts/graph-parity.mjs +8 -3
  5. package/scripts/lib/gate-scheduler.mjs +2 -1
  6. package/scripts/lib/run-node-tests.mjs +17 -5
  7. package/scripts/lib/test-failure-summary.mjs +1 -8
  8. package/scripts/lib/test-spawn-ledger.mjs +33 -2
  9. package/scripts/post-release-check.mjs +26 -16
  10. package/scripts/provider-pingpong-live.mjs +1 -1
  11. package/scripts/prune-embedding-runtime.mjs +3 -1
  12. package/scripts/release-paths.mjs +7 -1
  13. package/src/defaults/shipped-history.json +20 -0
  14. package/src/defaults/skills/setup/SKILL.md +2 -2
  15. package/src/defaults/skills/setup/references/actions.md +16 -3
  16. package/src/defaults/skills/setup/references/surfaces.md +3 -0
  17. package/src/defaults/skills/setup-guide/SKILL.md +6 -1
  18. package/src/lib/instruction-text.cjs +36 -0
  19. package/src/lib/rules-builder.cjs +34 -20
  20. package/src/orchestration/balanced.md +23 -0
  21. package/src/orchestration/focused.md +22 -0
  22. package/src/orchestration/none.md +5 -0
  23. package/src/orchestration/swarm.md +24 -0
  24. package/src/rules/agent-mode/AGENT_MODE.md +3 -1
  25. package/src/rules/agent-mode/MIXY.md +2 -2
  26. package/src/runtime/agent/orchestrator/agent-runtime/agent-dispatch/session-prep.mjs +3 -3
  27. package/src/runtime/agent/orchestrator/agent-runtime/agent-dispatch.mjs +0 -1
  28. package/src/runtime/agent/orchestrator/agent-runtime/agent-progress-watchdog.mjs +4 -2
  29. package/src/runtime/agent/orchestrator/agent-runtime/cache-strategy.mjs +0 -9
  30. package/src/runtime/agent/orchestrator/agent-runtime/heartbeat-completion.mjs +2 -2
  31. package/src/runtime/agent/orchestrator/agent-runtime/session-builder.mjs +67 -0
  32. package/src/runtime/agent/orchestrator/agent-trace-format.mjs +1 -0
  33. package/src/runtime/agent/orchestrator/context/role-instructions.mjs +4 -4
  34. package/src/runtime/agent/orchestrator/mcp/agent-connectors.mjs +3 -1
  35. package/src/runtime/agent/orchestrator/mcp/child-tree.mjs +199 -46
  36. package/src/runtime/agent/orchestrator/mcp/client-config.mjs +3 -5
  37. package/src/runtime/agent/orchestrator/mcp/client-transport.mjs +9 -3
  38. package/src/runtime/agent/orchestrator/mcp/client.mjs +3 -5
  39. package/src/runtime/agent/orchestrator/mcp/oauth-client.mjs +1 -1
  40. package/src/runtime/agent/orchestrator/mcp/oauth-credentials.mjs +8 -2
  41. package/src/runtime/agent/orchestrator/mcp/oauth-probe.mjs +1 -1
  42. package/src/runtime/agent/orchestrator/mcp/oauth-provider.mjs +14 -0
  43. package/src/runtime/agent/orchestrator/mcp/oauth.mjs +1 -1
  44. package/src/runtime/agent/orchestrator/providers/anthropic-oauth-client-version.mjs +1 -1
  45. package/src/runtime/agent/orchestrator/providers/anthropic-sse-turn/turn-events/content-block-stop.mjs +3 -3
  46. package/src/runtime/agent/orchestrator/providers/codex-client-meta.mjs +1 -1
  47. package/src/runtime/agent/orchestrator/providers/gemini-thinking.mjs +2 -2
  48. package/src/runtime/agent/orchestrator/providers/openai-compat-response-normalization.mjs +4 -6
  49. package/src/runtime/agent/orchestrator/providers/openai-compat-responses-head-parity.json +2784 -2872
  50. package/src/runtime/agent/orchestrator/providers/openai-compat-xai.mjs +5 -8
  51. package/src/runtime/agent/orchestrator/providers/openai-responses-payload-parity.fixture.json +288 -300
  52. package/src/runtime/agent/orchestrator/providers/vertex-ai.mjs +10 -1
  53. package/src/runtime/agent/orchestrator/providers/xai-tool-search-head-parity.json +10 -30
  54. package/src/runtime/agent/orchestrator/runtime-core/builtin-features.mjs +30 -0
  55. package/src/runtime/agent/orchestrator/runtime-core/config-helpers.mjs +0 -11
  56. package/src/runtime/agent/orchestrator/runtime-core/deferred-tool-availability.mjs +8 -0
  57. package/src/runtime/agent/orchestrator/runtime-core/deferred-tool-delta.mjs +17 -3
  58. package/src/runtime/agent/orchestrator/runtime-core/goal-control.mjs +47 -27
  59. package/src/runtime/agent/orchestrator/runtime-core/goal-deadlines.mjs +141 -10
  60. package/src/runtime/agent/orchestrator/runtime-core/goal-mutations.mjs +26 -63
  61. package/src/runtime/agent/orchestrator/runtime-core/goal-reminder.mjs +28 -3
  62. package/src/runtime/agent/orchestrator/runtime-core/goal-runtime.mjs +36 -11
  63. package/src/runtime/agent/orchestrator/runtime-core/goal-state.mjs +88 -56
  64. package/src/runtime/agent/orchestrator/runtime-core/goal-storage.mjs +4 -1
  65. package/src/runtime/agent/orchestrator/runtime-core/goal-store.mjs +51 -32
  66. package/src/runtime/agent/orchestrator/runtime-core/goal-text.mjs +45 -145
  67. package/src/runtime/agent/orchestrator/runtime-core/goal-tool-defs.mjs +15 -98
  68. package/src/runtime/agent/orchestrator/runtime-core/goal-tool-exec.mjs +32 -99
  69. package/src/runtime/agent/orchestrator/runtime-core/goal-turns.mjs +23 -78
  70. package/src/runtime/agent/orchestrator/runtime-core/orchestration.mjs +69 -48
  71. package/src/runtime/agent/orchestrator/runtime-core/todo-list.mjs +367 -0
  72. package/src/runtime/agent/orchestrator/runtime-core/todo-tool-defs.mjs +47 -0
  73. package/src/runtime/agent/orchestrator/runtime-core/tool-availability.mjs +155 -0
  74. package/src/runtime/agent/orchestrator/runtime-core/tool-catalog-data.mjs +9 -0
  75. package/src/runtime/agent/orchestrator/runtime-core/tool-catalog.mjs +119 -35
  76. package/src/runtime/agent/orchestrator/runtime-core/tool-defs.mjs +1 -1
  77. package/src/runtime/agent/orchestrator/runtime-core/workflow/context.mjs +1 -1
  78. package/src/runtime/agent/orchestrator/session/agent-loop.mjs +28 -22
  79. package/src/runtime/agent/orchestrator/session/agent-pool-progress.mjs +30 -0
  80. package/src/runtime/agent/orchestrator/session/attachment-preflight.mjs +1 -1
  81. package/src/runtime/agent/orchestrator/session/cache-warm.mjs +2 -2
  82. package/src/runtime/agent/orchestrator/session/catalog-db/index.mjs +2 -2
  83. package/src/runtime/agent/orchestrator/session/catalog-db/schema.mjs +1 -1
  84. package/src/runtime/agent/orchestrator/session/compact/execution-tail.mjs +1 -1
  85. package/src/runtime/agent/orchestrator/session/compact/runner.mjs +3 -0
  86. package/src/runtime/agent/orchestrator/session/compact/summary-route.mjs +1 -1
  87. package/src/runtime/agent/orchestrator/session/context-utils.mjs +8 -12
  88. package/src/runtime/agent/orchestrator/session/conversation-import/claude.mjs +1 -1
  89. package/src/runtime/agent/orchestrator/session/conversation-import/codex.mjs +1 -1
  90. package/src/runtime/agent/orchestrator/session/conversation-import/convert.mjs +1 -1
  91. package/src/runtime/agent/orchestrator/session/conversation-import/imported-session.mjs +7 -3
  92. package/src/runtime/agent/orchestrator/session/human-gate/held-message.mjs +1 -1
  93. package/src/runtime/agent/orchestrator/session/human-gate/requests.mjs +1 -2
  94. package/src/runtime/agent/orchestrator/session/human-gate/run-policy.mjs +1 -1
  95. package/src/runtime/agent/orchestrator/session/image-strip-recovery.mjs +1 -1
  96. package/src/runtime/agent/orchestrator/session/loop/completion-guards.mjs +11 -1
  97. package/src/runtime/agent/orchestrator/session/loop/context-overflow.mjs +1 -1
  98. package/src/runtime/agent/orchestrator/session/loop/loop-state.mjs +8 -1
  99. package/src/runtime/agent/orchestrator/session/loop/no-tool-turn/todo-check.mjs +196 -0
  100. package/src/runtime/agent/orchestrator/session/loop/no-tool-turn.mjs +116 -50
  101. package/src/runtime/agent/orchestrator/session/loop/pre-dispatch-deny.mjs +8 -1
  102. package/src/runtime/agent/orchestrator/session/loop/provider-tool-exclusions.mjs +1 -1
  103. package/src/runtime/agent/orchestrator/session/loop/route-fallback.mjs +1 -1
  104. package/src/runtime/agent/orchestrator/session/loop/steering.mjs +3 -1
  105. package/src/runtime/agent/orchestrator/session/loop/stored-tool-args.mjs +5 -6
  106. package/src/runtime/agent/orchestrator/session/loop/tool-exec/before-hook.mjs +6 -1
  107. package/src/runtime/agent/orchestrator/session/loop/tool-exec/dispatch.mjs +16 -2
  108. package/src/runtime/agent/orchestrator/session/loop/turn-report.mjs +35 -0
  109. package/src/runtime/agent/orchestrator/session/loop/usage.mjs +1 -1
  110. package/src/runtime/agent/orchestrator/session/manager/ask-session.mjs +57 -26
  111. package/src/runtime/agent/orchestrator/session/manager/ask-turn-auto-effort.mjs +9 -7
  112. package/src/runtime/agent/orchestrator/session/manager/ask-turn-execute.mjs +21 -3
  113. package/src/runtime/agent/orchestrator/session/manager/ask-turn-failure.mjs +27 -11
  114. package/src/runtime/agent/orchestrator/session/manager/ask-turn-open.mjs +37 -34
  115. package/src/runtime/agent/orchestrator/session/manager/ask-turn-prepare.mjs +15 -0
  116. package/src/runtime/agent/orchestrator/session/manager/ask-turn-settle.mjs +25 -15
  117. package/src/runtime/agent/orchestrator/session/manager/ask-turn-state.mjs +79 -24
  118. package/src/runtime/agent/orchestrator/session/manager/ask-turn-steering-drain.mjs +3 -0
  119. package/src/runtime/agent/orchestrator/session/manager/compaction-runner.mjs +12 -1
  120. package/src/runtime/agent/orchestrator/session/manager/context-meta.mjs +1 -1
  121. package/src/runtime/agent/orchestrator/session/manager/idle-cleanup.mjs +6 -1
  122. package/src/runtime/agent/orchestrator/session/manager/pending-messages.mjs +9 -1
  123. package/src/runtime/agent/orchestrator/session/manager/pending-spool-path.mjs +2 -2
  124. package/src/runtime/agent/orchestrator/session/manager/pending-spool-shard.mjs +1 -1
  125. package/src/runtime/agent/orchestrator/session/manager/prompt-settings.mjs +598 -0
  126. package/src/runtime/agent/orchestrator/session/manager/prompt-utils.mjs +19 -0
  127. package/src/runtime/agent/orchestrator/session/manager/rules-cache.mjs +19 -10
  128. package/src/runtime/agent/orchestrator/session/manager/session-close.mjs +5 -0
  129. package/src/runtime/agent/orchestrator/session/manager/session-fallback-title.mjs +1 -1
  130. package/src/runtime/agent/orchestrator/session/manager/session-lifecycle.mjs +31 -0
  131. package/src/runtime/agent/orchestrator/session/manager/session-lock.mjs +31 -0
  132. package/src/runtime/agent/orchestrator/session/manager/session-prompt-composition.mjs +42 -6
  133. package/src/runtime/agent/orchestrator/session/manager/session-record.mjs +2 -0
  134. package/src/runtime/agent/orchestrator/session/manager/tool-resolution.mjs +11 -1
  135. package/src/runtime/agent/orchestrator/session/manager/turn-checkpoint-context.mjs +8 -9
  136. package/src/runtime/agent/orchestrator/session/manager/turn-checkpoint-journal.mjs +339 -88
  137. package/src/runtime/agent/orchestrator/session/manager/turn-checkpoint-recovery.mjs +135 -11
  138. package/src/runtime/agent/orchestrator/session/manager/turn-checkpoint.mjs +377 -104
  139. package/src/runtime/agent/orchestrator/session/manager/turn-durability.mjs +144 -0
  140. package/src/runtime/agent/orchestrator/session/manager/turn-interruption.mjs +1 -1
  141. package/src/runtime/agent/orchestrator/session/manager/usage-metrics.mjs +4 -0
  142. package/src/runtime/agent/orchestrator/session/manager.mjs +6 -0
  143. package/src/runtime/agent/orchestrator/session/mixy-name.mjs +1 -1
  144. package/src/runtime/agent/orchestrator/session/pre-send-compact.mjs +8 -1
  145. package/src/runtime/agent/orchestrator/session/save-session-worker.mjs +5 -1
  146. package/src/runtime/agent/orchestrator/session/store/canonical-reader.mjs +1 -1
  147. package/src/runtime/agent/orchestrator/session/store/liveness-veto.mjs +2 -2
  148. package/src/runtime/agent/orchestrator/session/store/save-worker.mjs +23 -2
  149. package/src/runtime/agent/orchestrator/session/store/sweep/sub-agent-retention.mjs +3 -3
  150. package/src/runtime/agent/orchestrator/session/store/transcript-durability.mjs +88 -0
  151. package/src/runtime/agent/orchestrator/session/store-agent-worker-rows.mjs +5 -0
  152. package/src/runtime/agent/orchestrator/session/store-summary-log.mjs +1 -1
  153. package/src/runtime/agent/orchestrator/session/store-transcript-projection.mjs +14 -5
  154. package/src/runtime/agent/orchestrator/session/store-transcript-worker.mjs +2 -2
  155. package/src/runtime/agent/orchestrator/session/store.mjs +5 -0
  156. package/src/runtime/agent/orchestrator/session/synthetic-user-envelope.mjs +7 -1
  157. package/src/runtime/agent/orchestrator/session/tail-reminder-rules.mjs +9 -1
  158. package/src/runtime/agent/orchestrator/session/transcript-restore/agent-envelope.mjs +1 -1
  159. package/src/runtime/agent/orchestrator/session/transcript-restore/restore.mjs +3 -1
  160. package/src/runtime/agent/orchestrator/session/transcript-restore/user-text.mjs +2 -2
  161. package/src/runtime/agent/orchestrator/stall-policy.mjs +3 -5
  162. package/src/runtime/agent/orchestrator/tools/builtin/bash-tool/backgrounded-result.mjs +4 -1
  163. package/src/runtime/agent/orchestrator/tools/builtin/bash-tool/misuse-guard.mjs +21 -3
  164. package/src/runtime/agent/orchestrator/tools/builtin/bash-tool/result-format.mjs +1 -1
  165. package/src/runtime/agent/orchestrator/tools/builtin/bash-tool/worktree-add-guard.mjs +77 -0
  166. package/src/runtime/agent/orchestrator/tools/builtin/bash-tool.mjs +0 -1
  167. package/src/runtime/agent/orchestrator/tools/builtin/git-command-tool.mjs +7 -3
  168. package/src/runtime/agent/orchestrator/tools/builtin/git-worktree-tool.mjs +27 -9
  169. package/src/runtime/agent/orchestrator/tools/builtin/lib/search-input-helpers.mjs +2 -2
  170. package/src/runtime/agent/orchestrator/tools/builtin/read-range-index.mjs +1 -1
  171. package/src/runtime/agent/orchestrator/tools/builtin/read-single-fast-paths.mjs +0 -1
  172. package/src/runtime/agent/orchestrator/tools/builtin/search-tool.mjs +0 -10
  173. package/src/runtime/agent/orchestrator/tools/builtin/shell-jobs.mjs +1 -2
  174. package/src/runtime/agent/orchestrator/tools/builtin.mjs +1 -24
  175. package/src/runtime/agent/orchestrator/tools/code-graph/graph-binary/child-kill.mjs +4 -3
  176. package/src/runtime/agent/orchestrator/tools/code-graph/graph-binary.mjs +1 -2
  177. package/src/runtime/agent/orchestrator/tools/code-graph/modes/calls.mjs +1 -1
  178. package/src/runtime/agent/orchestrator/tools/code-graph/modes/symbols.mjs +2 -2
  179. package/src/runtime/agent/orchestrator/tools/code-graph/search.mjs +4 -5
  180. package/src/runtime/agent/orchestrator/tools/code-graph/symbol-index.mjs +3 -4
  181. package/src/runtime/agent/orchestrator/tools/code-graph.mjs +4 -22
  182. package/src/runtime/agent/orchestrator/tools/lib/shell-descendants.mjs +2 -2
  183. package/src/runtime/agent/orchestrator/tools/lib/shell-run-state.mjs +1 -1
  184. package/src/runtime/agent/orchestrator/tools/shell-command.mjs +0 -4
  185. package/src/runtime/agent/orchestrator/tools/shell-policy.mjs +0 -1
  186. package/src/runtime/attachments/attachment-reference.mjs +1 -1
  187. package/src/runtime/attachments/pdf-extract.mjs +1 -1
  188. package/src/runtime/attachments/store.d.mts +1 -0
  189. package/src/runtime/attachments/store.mjs +2 -2
  190. package/src/runtime/channels/lib/config-reload-watch.mjs +42 -0
  191. package/src/runtime/channels/lib/owned-runtime/config-reload.mjs +29 -9
  192. package/src/runtime/channels/lib/scheduler.mjs +33 -0
  193. package/src/runtime/channels/lib/schedules-db.mjs +11 -4
  194. package/src/runtime/channels/lib/webhook/session-dispatch.mjs +4 -1
  195. package/src/runtime/channels/lib/webhooks-db.mjs +9 -3
  196. package/src/runtime/channels/lib/whisper-server.mjs +12 -12
  197. package/src/runtime/channels/lib/worker-main.mjs +9 -31
  198. package/src/runtime/computer-bridge/linux-readiness.mjs +10 -14
  199. package/src/runtime/connectors/connector-accounts-mcp.mjs +169 -33
  200. package/src/runtime/connectors/gmail-app-password.mjs +2 -2
  201. package/src/runtime/connectors/google-mcp.mjs +1 -1
  202. package/src/runtime/effort-judge/judge-client.mjs +2 -2
  203. package/src/runtime/effort-judge/judge-input.mjs +4 -4
  204. package/src/runtime/explore/explorer.mjs +0 -5
  205. package/src/runtime/explore/tool.mjs +3 -3
  206. package/src/runtime/local-provider/hardware.mjs +1 -1
  207. package/src/runtime/media/adapters/codex-image.mjs +3 -3
  208. package/src/runtime/media/adapters/gemini-video.mjs +1 -1
  209. package/src/runtime/media/media-usage.mjs +1 -1
  210. package/src/runtime/media/store.mjs +1 -1
  211. package/src/runtime/memory/index.mjs +11 -1
  212. package/src/runtime/memory/lib/embedding-reindex.mjs +27 -0
  213. package/src/runtime/memory/lib/memory-embed.mjs +83 -14
  214. package/src/runtime/memory/lib/memory-process-lock.mjs +159 -36
  215. package/src/runtime/memory/lib/memory-text-utils.mjs +6 -1
  216. package/src/runtime/memory/lib/memory.mjs +17 -0
  217. package/src/runtime/memory/lib/pg/process.mjs +1 -1
  218. package/src/runtime/memory/lib/pg/supervisor.mjs +16 -96
  219. package/src/runtime/memory/lib/recall-hybrid/hybrid-sql.mjs +12 -3
  220. package/src/runtime/office/authoring/docx-html-runner.mjs +1 -1
  221. package/src/runtime/office/authoring/pptx-author-action.mjs +1 -1
  222. package/src/runtime/office/authoring/xlsx-html-build.mjs +1 -1
  223. package/src/runtime/office/authoring/xlsx-html-runner.mjs +1 -1
  224. package/src/runtime/office/capabilities.mjs +1 -1
  225. package/src/runtime/office/core/office-core.mjs +1 -1
  226. package/src/runtime/office/design/content-model.mjs +3 -3
  227. package/src/runtime/office/design/docx/design-docx/section.mjs +6 -6
  228. package/src/runtime/office/design/xlsx/design-xlsx-components.mjs +1 -1
  229. package/src/runtime/office/design/xlsx/design-xlsx.mjs +1 -1
  230. package/src/runtime/office/pdf/ocr-engine.mjs +1 -1
  231. package/src/runtime/office/pdf/pdf-writer.mjs +4 -4
  232. package/src/runtime/office/portable/portable-docx-operations.mjs +2 -2
  233. package/src/runtime/office/portable/portable-soffice.mjs +8 -6
  234. package/src/runtime/office/portable/xlsx-contract.mjs +1 -1
  235. package/src/runtime/shared/atomic-file.d.mts +8 -0
  236. package/src/runtime/shared/background-tasks.mjs +22 -4
  237. package/src/runtime/shared/background-wait.mjs +66 -0
  238. package/src/runtime/shared/child-guardian.mjs +17 -7
  239. package/src/runtime/shared/config.mjs +313 -16
  240. package/src/runtime/shared/connector-catalog.d.mts +4 -5
  241. package/src/runtime/shared/connector-catalog.mjs +11 -1
  242. package/src/runtime/shared/file-lock.mjs +8 -3
  243. package/src/runtime/shared/git-runner.mjs +7 -2
  244. package/src/runtime/shared/idle-gc.mjs +30 -7
  245. package/src/runtime/shared/llm/http-agent.mjs +8 -5
  246. package/src/runtime/shared/llm/system-proxy.mjs +2 -1
  247. package/src/runtime/shared/llm/usage-ledger-quota.mjs +31 -12
  248. package/src/runtime/shared/llm/usage-ledger-rollup.mjs +84 -8
  249. package/src/runtime/shared/llm/usage-ledger.mjs +3 -0
  250. package/src/runtime/shared/llm/usage-rollup.mjs +48 -0
  251. package/src/runtime/shared/maintenance-schedule.mjs +109 -0
  252. package/src/runtime/shared/process-runner.mjs +8 -4
  253. package/src/runtime/shared/routine-trigger.d.mts +13 -0
  254. package/src/runtime/shared/routine-trigger.mjs +34 -0
  255. package/src/runtime/shared/run-child.d.mts +2 -1
  256. package/src/runtime/shared/run-child.mjs +70 -18
  257. package/src/runtime/shared/session-scratch.mjs +14 -2
  258. package/src/runtime/shared/shipped-definitions.mjs +7 -1
  259. package/src/runtime/shared/tool-card-model.golden.json +3 -12
  260. package/src/runtime/shared/tool-execution-contract.mjs +2 -0
  261. package/src/runtime/shared/tool-work-units.mjs +31 -6
  262. package/src/runtime/shared/turn-snapshot.mjs +26 -4
  263. package/src/runtime/shared/turn-worktree-snapshot.mjs +6 -11
  264. package/src/runtime/shared/worker-requests.mjs +17 -3
  265. package/src/runtime/shared/worktrees/branch-management.mjs +1 -5
  266. package/src/runtime/shared/worktrees/contract.mjs +16 -6
  267. package/src/runtime/shared/worktrees/dependencies.mjs +127 -89
  268. package/src/runtime/shared/worktrees/disk.mjs +79 -2
  269. package/src/runtime/shared/worktrees/git.mjs +44 -11
  270. package/src/runtime/shared/worktrees/include.mjs +6 -4
  271. package/src/runtime/shared/worktrees/maintenance.mjs +422 -30
  272. package/src/runtime/shared/worktrees/manager.mjs +772 -75
  273. package/src/runtime/shared/worktrees/settings.mjs +33 -7
  274. package/src/runtime/shared/worktrees/test-support.mjs +5 -1
  275. package/src/runtime/shared/worktrees/worker-snapshots.mjs +82 -0
  276. package/src/runtime/tidy/process.mjs +2 -1
  277. package/src/runtime/web-search/index.mjs +3 -22
  278. package/src/runtime/web-search/lib/web-tools.mjs +2 -2
  279. package/src/runtime/web-search/tool-defs.mjs +17 -26
  280. package/src/session-runtime/agent-profile-changes.mjs +55 -4
  281. package/src/session-runtime/boot/apis.mjs +27 -4
  282. package/src/session-runtime/boot/begin.mjs +2 -0
  283. package/src/session-runtime/boot/config.mjs +10 -1
  284. package/src/session-runtime/boot/facade.mjs +1 -0
  285. package/src/session-runtime/boot/providers.mjs +70 -3
  286. package/src/session-runtime/boot/session.mjs +2 -0
  287. package/src/session-runtime/boot/tools.mjs +69 -25
  288. package/src/session-runtime/channel-config-api.mjs +1 -0
  289. package/src/session-runtime/config-change-effects.mjs +179 -0
  290. package/src/session-runtime/config-lifecycle/config-writers.mjs +1 -0
  291. package/src/session-runtime/config-lifecycle.mjs +160 -24
  292. package/src/session-runtime/conversation-import/discovery.mjs +86 -7
  293. package/src/session-runtime/conversation-import/service.mjs +3 -2
  294. package/src/session-runtime/goal-facade-api.mjs +49 -3
  295. package/src/session-runtime/internal-tool-executor/ask-user-tool.mjs +3 -0
  296. package/src/session-runtime/internal-tool-executor/bridge-tools.mjs +3 -2
  297. package/src/session-runtime/internal-tool-executor/feature-tools.mjs +3 -11
  298. package/src/session-runtime/internal-tool-executor/workspace-tools.mjs +18 -4
  299. package/src/session-runtime/internal-tool-executor.mjs +12 -19
  300. package/src/session-runtime/lifecycle/cold-heir.mjs +7 -0
  301. package/src/session-runtime/lifecycle/memory-ingest.mjs +3 -3
  302. package/src/session-runtime/lifecycle/session-switch/session-delete.mjs +53 -5
  303. package/src/session-runtime/lifecycle/session-switch.mjs +13 -2
  304. package/src/session-runtime/lifecycle/teardown/session-close.mjs +4 -4
  305. package/src/session-runtime/lifecycle-api.mjs +1 -0
  306. package/src/session-runtime/mcp-glue/server-catalog.mjs +14 -3
  307. package/src/session-runtime/mcp-glue/server-connection.mjs +34 -8
  308. package/src/session-runtime/model-route/set-route.mjs +40 -7
  309. package/src/session-runtime/native-web-search/routes.mjs +3 -3
  310. package/src/session-runtime/provider-auth/refresh.mjs +6 -3
  311. package/src/session-runtime/provider-auth/setup.mjs +1 -1
  312. package/src/session-runtime/provider-readiness.mjs +53 -4
  313. package/src/session-runtime/resource-api.mjs +1 -1
  314. package/src/session-runtime/resource-extension-sync.mjs +4 -8
  315. package/src/session-runtime/resource-mcp-connector-accounts.mjs +5 -1
  316. package/src/session-runtime/resource-mcp-secrets.mjs +3 -3
  317. package/src/session-runtime/resource-plugins-api.mjs +4 -0
  318. package/src/session-runtime/routine-executor.mjs +152 -0
  319. package/src/session-runtime/routine-home-turn.mjs +46 -5
  320. package/src/session-runtime/runtime-facade.mjs +5 -0
  321. package/src/session-runtime/runtime-feature-gates.mjs +2 -11
  322. package/src/session-runtime/schedule-session-run.mjs +1 -0
  323. package/src/session-runtime/services/agent-tool/job-task-reconcile.mjs +6 -1
  324. package/src/session-runtime/services/agent-tool/job-views/session-progress.mjs +7 -0
  325. package/src/session-runtime/services/agent-tool/send-flow.mjs +110 -6
  326. package/src/session-runtime/services/agent-tool/spawn-flow/job-start.mjs +12 -0
  327. package/src/session-runtime/services/agent-tool/spawn-flow/spawn-plan.mjs +5 -0
  328. package/src/session-runtime/services/agent-tool/spawn-flow/spawn-run.mjs +24 -6
  329. package/src/session-runtime/services/agent-tool.mjs +51 -1
  330. package/src/session-runtime/services/channel-admin.mjs +18 -0
  331. package/src/session-runtime/services/hook-bus/command-handler.mjs +7 -11
  332. package/src/session-runtime/services/plugin-admin.mjs +4 -0
  333. package/src/session-runtime/services/seeds.mjs +7 -0
  334. package/src/session-runtime/services/usage-stats-model.mjs +32 -11
  335. package/src/session-runtime/session-create/materialize.mjs +4 -2
  336. package/src/session-runtime/session-create/session-options.mjs +2 -0
  337. package/src/session-runtime/settings-builtin-tools-api.mjs +1 -9
  338. package/src/session-runtime/setup-tool/connector-widen-approval.mjs +1 -1
  339. package/src/session-runtime/setup-tool/executor.mjs +8 -1
  340. package/src/session-runtime/setup-tool/extended-actions.mjs +2 -0
  341. package/src/session-runtime/setup-tool/settings-contract.mjs +28 -0
  342. package/src/session-runtime/setup-tool/tool-defs.mjs +26 -1
  343. package/src/session-runtime/tool-policy/agent-profile-fold.mjs +40 -43
  344. package/src/session-runtime/tool-policy/mode-switch.mjs +1 -1
  345. package/src/session-runtime/tool-policy/policy-stage.mjs +106 -8
  346. package/src/session-runtime/tool-policy/workflow-overlay.mjs +2 -1
  347. package/src/session-runtime/tool-policy-refresh.mjs +182 -5
  348. package/src/session-runtime/tool-surface.mjs +38 -1
  349. package/src/session-runtime/turn/agent-ops.mjs +10 -2
  350. package/src/session-runtime/turn/session-ops.mjs +2 -0
  351. package/src/session-runtime/turn/turn-run/turn-prepare.mjs +5 -0
  352. package/src/session-runtime/turn/turn-run.mjs +1 -1
  353. package/src/session-runtime/webhook-session-run.mjs +2 -0
  354. package/src/session-runtime/workflow-agents-api/agent-connectors.mjs +1 -4
  355. package/src/session-runtime/workflow-agents-api/agent-route.mjs +3 -10
  356. package/src/session-runtime/workflow-agents-api/instruction-files.mjs +165 -0
  357. package/src/session-runtime/workflow-agents-api/style-and-mode.mjs +5 -4
  358. package/src/session-runtime/workflow-agents-api/workflow-packs.mjs +2 -3
  359. package/src/session-runtime/workflow-agents-api.mjs +2 -0
  360. package/src/session-runtime/workspace/project-branches.mjs +1 -1
  361. package/src/session-runtime/workspace/session-view.mjs +1 -1
  362. package/src/session-runtime/workspace/transitions.mjs +20 -4
  363. package/src/session-runtime/workspace/worktree-maintenance.mjs +126 -6
  364. package/src/session-runtime/workspace/worktree-setup.mjs +13 -1
  365. package/src/session-runtime/workspace/worktree-tool.mjs +16 -0
  366. package/src/standalone/daemon-agent-control.mjs +25 -8
  367. package/src/standalone/daemon-desktop-runtime.mjs +6 -2
  368. package/src/standalone/daemon-lag-profiler.mjs +7 -7
  369. package/src/standalone/daemon.mjs +54 -2
  370. package/src/standalone/local-session-runtime.mjs +16 -0
  371. package/src/standalone/session-client/daemon-unavailable.mjs +1 -1
  372. package/src/standalone/session-protocol.mjs +11 -0
  373. package/src/standalone/session-service/agent-route-follow.mjs +23 -20
  374. package/src/standalone/session-service/agent-tree/agent-turns.mjs +18 -6
  375. package/src/standalone/session-service/quota-resume.mjs +9 -0
  376. package/src/standalone/session-service/session-calls/session-action.mjs +51 -1
  377. package/src/standalone/session-service/session-calls/session-turns.mjs +37 -18
  378. package/src/standalone/session-service/session-calls/turn-gate.mjs +34 -0
  379. package/src/standalone/session-service/session-calls.mjs +2 -1
  380. package/src/tui/App.jsx +8 -0
  381. package/src/tui/app/clipboard.mjs +1 -1
  382. package/src/tui/app/create-app-pickers.mjs +2 -0
  383. package/src/tui/app/doctor.mjs +2 -2
  384. package/src/tui/app/panel-signature.mjs +1 -1
  385. package/src/tui/app/settings-picker.mjs +53 -8
  386. package/src/tui/app/shell-layout/row-budgets.mjs +2 -2
  387. package/src/tui/app/slash-commands.mjs +1 -1
  388. package/src/tui/app/slash-dispatch/route-commands.mjs +1 -1
  389. package/src/tui/app/slash-dispatch/session-commands.mjs +1 -1
  390. package/src/tui/app/use-prompt-queue-history.mjs +2 -2
  391. package/src/tui/app/use-transcript-activity.mjs +1 -1
  392. package/src/tui/app/use-transcript-window/geometry.mjs +1 -1
  393. package/src/tui/components/prompt-input/escape-policy.d.mts +0 -1
  394. package/src/tui/components/prompt-input/escape-policy.mjs +1 -1
  395. package/src/tui/components/question-panel-model.mjs +4 -4
  396. package/src/tui/components/tool-execution/standard-card.jsx +3 -4
  397. package/src/tui/components/user-message-skills.mjs +1 -1
  398. package/src/tui/dist/index.mjs +309 -30
  399. package/src/tui/markdown/render-ansi.mjs +1 -1
  400. package/src/tui/session/agent-job-feed/notification-router.mjs +10 -0
  401. package/src/tui/session/agent-job-feed.mjs +2 -0
  402. package/src/tui/session/context-state.mjs +3 -0
  403. package/src/tui/session/quota-resume.mjs +1 -1
  404. package/src/tui/session/session-api/lifecycle/dispose.mjs +1 -0
  405. package/src/tui/session/session-api/lifecycle/session-reset.mjs +7 -0
  406. package/src/tui/session/session-api/routes-agent-definitions.mjs +5 -0
  407. package/src/tui/session/session-api/worktree.mjs +13 -1
  408. package/src/tui/session/session-flow/drain.mjs +11 -14
  409. package/src/tui/session/tool-card-results/grouped-result.mjs +2 -2
  410. package/src/tui/session/turn-quiet.mjs +1 -1
  411. package/src/tui/session/turn.mjs +3 -0
  412. package/src/tui/session/worktree-setup-notice.mjs +1 -1
  413. package/src/tui/spinner-meta.mjs +3 -3
  414. package/src/tui/spinner-verbs.mjs +2 -2
  415. package/src/defaults/skills/goal-management/SKILL.md +0 -169
  416. package/src/runtime/agent/orchestrator/runtime-core/goal-tasks.mjs +0 -156
  417. package/src/session-runtime/goal-tasks.mjs +0 -1
@@ -264,15 +264,12 @@ export function _shouldFallbackXaiWsToHttp(err, signal) {
264
264
  });
265
265
  }
266
266
 
267
- // No `config` argument: the single caller (xaiResponsesCacheRouting) never had
268
- // one to pass, so the provider-config lane aliases this used to read were dead
269
- // operands. Lane selection on this route is opts + env only.
267
+ // No `config` argument: the single caller (xaiResponsesCacheRouting) has none
268
+ // to pass. Lane selection on this route is opts + env only.
270
269
  function xaiResponsesPromptCacheLane(opts, cacheRouting) {
271
- // Lane SHARDS only, for xAI/Grok. The `*CacheMaxParallel` /
272
- // *_CACHE_MAX_PARALLEL knobs that used to bound the lane's in-flight
273
- // admission were removed with the lane queue itself (admission is the
274
- // shared provider scheduler's job now). They are deliberately NOT accepted
275
- // here as shard aliases — on this route they never selected shards, and a
270
+ // Lane SHARDS only, for xAI/Grok. Admission is the shared provider
271
+ // scheduler's job, so the `*CacheMaxParallel` / *_CACHE_MAX_PARALLEL knobs
272
+ // are deliberately NOT accepted here as shard aliases — on this route they never selected shards, and a
276
273
  // setting named "max parallel" silently deciding prompt-cache key fan-out
277
274
  // is a different control with different consequences. An xAI operator who
278
275
  // set one gets the documented default until they opt into
@@ -1,323 +1,311 @@
1
1
  {
2
- "openai|gpt-5.5": {
3
- "model": "gpt-5.5",
4
- "instructions": "Sys",
5
- "input": [
6
- {
7
- "role": "user",
8
- "content": [
9
- {
10
- "type": "input_text",
11
- "text": "hi"
12
- }
13
- ]
14
- }
15
- ],
16
- "tools": [
17
- {
18
- "type": "function",
19
- "name": "read",
20
- "description": "r",
21
- "parameters": {
22
- "type": "object",
23
- "properties": {}
2
+ "openai|gpt-5.5": {
3
+ "model": "gpt-5.5",
4
+ "instructions": "Sys",
5
+ "input": [
6
+ {
7
+ "role": "user",
8
+ "content": [
9
+ {
10
+ "type": "input_text",
11
+ "text": "hi"
12
+ }
13
+ ]
14
+ }
15
+ ],
16
+ "tools": [
17
+ {
18
+ "type": "function",
19
+ "name": "read",
20
+ "description": "r",
21
+ "parameters": {
22
+ "type": "object",
23
+ "properties": {}
24
+ },
25
+ "strict": false
26
+ },
27
+ {
28
+ "type": "tool_search",
29
+ "execution": "client",
30
+ "description": "l",
31
+ "parameters": {
32
+ "type": "object",
33
+ "properties": {}
34
+ }
35
+ }
36
+ ],
37
+ "tool_choice": "auto",
38
+ "parallel_tool_calls": true,
39
+ "reasoning": {
40
+ "effort": "high",
41
+ "summary": "auto"
24
42
  },
25
- "strict": false
26
- },
27
- {
28
- "type": "tool_search",
29
- "execution": "client",
30
- "description": "l",
31
- "parameters": {
32
- "type": "object",
33
- "properties": {}
43
+ "store": false,
44
+ "stream": true,
45
+ "include": ["reasoning.encrypted_content"],
46
+ "prompt_cache_key": "mixdog-openai-9d2848824f0e8f27c7",
47
+ "text": {
48
+ "verbosity": "low"
34
49
  }
35
- }
36
- ],
37
- "tool_choice": "auto",
38
- "parallel_tool_calls": true,
39
- "reasoning": {
40
- "effort": "high",
41
- "summary": "auto"
42
50
  },
43
- "store": false,
44
- "stream": true,
45
- "include": [
46
- "reasoning.encrypted_content"
47
- ],
48
- "prompt_cache_key": "mixdog-openai-9d2848824f0e8f27c7",
49
- "text": {
50
- "verbosity": "low"
51
- }
52
- },
53
- "openai|gpt-5.4": {
54
- "model": "gpt-5.4",
55
- "instructions": "Sys",
56
- "input": [
57
- {
58
- "role": "user",
59
- "content": [
60
- {
61
- "type": "input_text",
62
- "text": "hi"
63
- }
64
- ]
65
- }
66
- ],
67
- "tools": [
68
- {
69
- "type": "function",
70
- "name": "read",
71
- "description": "r",
72
- "parameters": {
73
- "type": "object",
74
- "properties": {}
51
+ "openai|gpt-5.4": {
52
+ "model": "gpt-5.4",
53
+ "instructions": "Sys",
54
+ "input": [
55
+ {
56
+ "role": "user",
57
+ "content": [
58
+ {
59
+ "type": "input_text",
60
+ "text": "hi"
61
+ }
62
+ ]
63
+ }
64
+ ],
65
+ "tools": [
66
+ {
67
+ "type": "function",
68
+ "name": "read",
69
+ "description": "r",
70
+ "parameters": {
71
+ "type": "object",
72
+ "properties": {}
73
+ },
74
+ "strict": false
75
+ },
76
+ {
77
+ "type": "tool_search",
78
+ "execution": "client",
79
+ "description": "l",
80
+ "parameters": {
81
+ "type": "object",
82
+ "properties": {}
83
+ }
84
+ }
85
+ ],
86
+ "tool_choice": "auto",
87
+ "parallel_tool_calls": true,
88
+ "reasoning": {
89
+ "effort": "high",
90
+ "summary": "auto"
75
91
  },
76
- "strict": false
77
- },
78
- {
79
- "type": "tool_search",
80
- "execution": "client",
81
- "description": "l",
82
- "parameters": {
83
- "type": "object",
84
- "properties": {}
92
+ "store": false,
93
+ "stream": true,
94
+ "include": ["reasoning.encrypted_content"],
95
+ "prompt_cache_key": "mixdog-openai-23e138e99281d0cc66",
96
+ "text": {
97
+ "verbosity": "low"
85
98
  }
86
- }
87
- ],
88
- "tool_choice": "auto",
89
- "parallel_tool_calls": true,
90
- "reasoning": {
91
- "effort": "high",
92
- "summary": "auto"
93
99
  },
94
- "store": false,
95
- "stream": true,
96
- "include": [
97
- "reasoning.encrypted_content"
98
- ],
99
- "prompt_cache_key": "mixdog-openai-23e138e99281d0cc66",
100
- "text": {
101
- "verbosity": "low"
102
- }
103
- },
104
- "openai|gpt-5.6-sol": {
105
- "model": "gpt-5.6-sol",
106
- "instructions": "Sys",
107
- "input": [
108
- {
109
- "role": "user",
110
- "content": [
111
- {
112
- "type": "input_text",
113
- "text": "hi"
114
- }
115
- ]
116
- }
117
- ],
118
- "tools": [
119
- {
120
- "type": "function",
121
- "name": "read",
122
- "description": "r",
123
- "parameters": {
124
- "type": "object",
125
- "properties": {}
100
+ "openai|gpt-5.6-sol": {
101
+ "model": "gpt-5.6-sol",
102
+ "instructions": "Sys",
103
+ "input": [
104
+ {
105
+ "role": "user",
106
+ "content": [
107
+ {
108
+ "type": "input_text",
109
+ "text": "hi"
110
+ }
111
+ ]
112
+ }
113
+ ],
114
+ "tools": [
115
+ {
116
+ "type": "function",
117
+ "name": "read",
118
+ "description": "r",
119
+ "parameters": {
120
+ "type": "object",
121
+ "properties": {}
122
+ },
123
+ "strict": false
124
+ },
125
+ {
126
+ "type": "tool_search",
127
+ "execution": "client",
128
+ "description": "l",
129
+ "parameters": {
130
+ "type": "object",
131
+ "properties": {}
132
+ }
133
+ }
134
+ ],
135
+ "tool_choice": "auto",
136
+ "parallel_tool_calls": true,
137
+ "reasoning": {
138
+ "effort": "high",
139
+ "summary": "auto"
126
140
  },
127
- "strict": false
128
- },
129
- {
130
- "type": "tool_search",
131
- "execution": "client",
132
- "description": "l",
133
- "parameters": {
134
- "type": "object",
135
- "properties": {}
141
+ "store": false,
142
+ "stream": true,
143
+ "include": ["reasoning.encrypted_content"],
144
+ "prompt_cache_key": "mixdog-openai-b61ada2751af9f3cdc",
145
+ "text": {
146
+ "verbosity": "low"
136
147
  }
137
- }
138
- ],
139
- "tool_choice": "auto",
140
- "parallel_tool_calls": true,
141
- "reasoning": {
142
- "effort": "high",
143
- "summary": "auto"
144
148
  },
145
- "store": false,
146
- "stream": true,
147
- "include": [
148
- "reasoning.encrypted_content"
149
- ],
150
- "prompt_cache_key": "mixdog-openai-b61ada2751af9f3cdc",
151
- "text": {
152
- "verbosity": "low"
153
- }
154
- },
155
- "openai-oauth|gpt-5.5": {
156
- "model": "gpt-5.5",
157
- "instructions": "Sys",
158
- "input": [
159
- {
160
- "type": "message",
161
- "role": "user",
162
- "content": [
163
- {
164
- "type": "input_text",
165
- "text": "hi"
166
- }
149
+ "openai-oauth|gpt-5.5": {
150
+ "model": "gpt-5.5",
151
+ "instructions": "Sys",
152
+ "input": [
153
+ {
154
+ "type": "message",
155
+ "role": "user",
156
+ "content": [
157
+ {
158
+ "type": "input_text",
159
+ "text": "hi"
160
+ }
161
+ ],
162
+ "internal_chat_message_metadata_passthrough": {}
163
+ }
167
164
  ],
168
- "internal_chat_message_metadata_passthrough": {}
169
- }
170
- ],
171
- "tools": [
172
- {
173
- "type": "function",
174
- "name": "read",
175
- "description": "r",
176
- "parameters": {
177
- "type": "object",
178
- "properties": {}
165
+ "tools": [
166
+ {
167
+ "type": "function",
168
+ "name": "read",
169
+ "description": "r",
170
+ "parameters": {
171
+ "type": "object",
172
+ "properties": {}
173
+ },
174
+ "strict": false
175
+ },
176
+ {
177
+ "type": "tool_search",
178
+ "execution": "client",
179
+ "description": "l",
180
+ "parameters": {
181
+ "type": "object",
182
+ "properties": {}
183
+ }
184
+ }
185
+ ],
186
+ "tool_choice": "auto",
187
+ "parallel_tool_calls": true,
188
+ "reasoning": {
189
+ "effort": "high",
190
+ "summary": "auto"
191
+ },
192
+ "store": false,
193
+ "stream": true,
194
+ "stream_options": {
195
+ "reasoning_summary_delivery": "sequential_cutoff"
179
196
  },
180
- "strict": false
181
- },
182
- {
183
- "type": "tool_search",
184
- "execution": "client",
185
- "description": "l",
186
- "parameters": {
187
- "type": "object",
188
- "properties": {}
197
+ "include": ["reasoning.encrypted_content"],
198
+ "prompt_cache_key": "parity",
199
+ "text": {
200
+ "verbosity": "low"
189
201
  }
190
- }
191
- ],
192
- "tool_choice": "auto",
193
- "parallel_tool_calls": true,
194
- "reasoning": {
195
- "effort": "high",
196
- "summary": "auto"
197
202
  },
198
- "store": false,
199
- "stream": true,
200
- "stream_options": {
201
- "reasoning_summary_delivery": "sequential_cutoff"
202
- },
203
- "include": [
204
- "reasoning.encrypted_content"
205
- ],
206
- "prompt_cache_key": "parity",
207
- "text": {
208
- "verbosity": "low"
209
- }
210
- },
211
- "openai-oauth|gpt-5.4": {
212
- "model": "gpt-5.4",
213
- "instructions": "Sys",
214
- "input": [
215
- {
216
- "type": "message",
217
- "role": "user",
218
- "content": [
219
- {
220
- "type": "input_text",
221
- "text": "hi"
222
- }
203
+ "openai-oauth|gpt-5.4": {
204
+ "model": "gpt-5.4",
205
+ "instructions": "Sys",
206
+ "input": [
207
+ {
208
+ "type": "message",
209
+ "role": "user",
210
+ "content": [
211
+ {
212
+ "type": "input_text",
213
+ "text": "hi"
214
+ }
215
+ ],
216
+ "internal_chat_message_metadata_passthrough": {}
217
+ }
218
+ ],
219
+ "tools": [
220
+ {
221
+ "type": "function",
222
+ "name": "read",
223
+ "description": "r",
224
+ "parameters": {
225
+ "type": "object",
226
+ "properties": {}
227
+ },
228
+ "strict": false
229
+ },
230
+ {
231
+ "type": "tool_search",
232
+ "execution": "client",
233
+ "description": "l",
234
+ "parameters": {
235
+ "type": "object",
236
+ "properties": {}
237
+ }
238
+ }
223
239
  ],
224
- "internal_chat_message_metadata_passthrough": {}
225
- }
226
- ],
227
- "tools": [
228
- {
229
- "type": "function",
230
- "name": "read",
231
- "description": "r",
232
- "parameters": {
233
- "type": "object",
234
- "properties": {}
240
+ "tool_choice": "auto",
241
+ "parallel_tool_calls": true,
242
+ "reasoning": {
243
+ "effort": "high",
244
+ "summary": "auto"
235
245
  },
236
- "strict": false
237
- },
238
- {
239
- "type": "tool_search",
240
- "execution": "client",
241
- "description": "l",
242
- "parameters": {
243
- "type": "object",
244
- "properties": {}
246
+ "store": false,
247
+ "stream": true,
248
+ "stream_options": {
249
+ "reasoning_summary_delivery": "sequential_cutoff"
250
+ },
251
+ "include": ["reasoning.encrypted_content"],
252
+ "prompt_cache_key": "parity",
253
+ "text": {
254
+ "verbosity": "low"
245
255
  }
246
- }
247
- ],
248
- "tool_choice": "auto",
249
- "parallel_tool_calls": true,
250
- "reasoning": {
251
- "effort": "high",
252
- "summary": "auto"
253
- },
254
- "store": false,
255
- "stream": true,
256
- "stream_options": {
257
- "reasoning_summary_delivery": "sequential_cutoff"
258
256
  },
259
- "include": [
260
- "reasoning.encrypted_content"
261
- ],
262
- "prompt_cache_key": "parity",
263
- "text": {
264
- "verbosity": "low"
265
- }
266
- },
267
- "openai-oauth|gpt-5.6-sol": {
268
- "model": "gpt-5.6-sol",
269
- "instructions": "Sys",
270
- "input": [
271
- {
272
- "type": "message",
273
- "role": "user",
274
- "content": [
275
- {
276
- "type": "input_text",
277
- "text": "hi"
278
- }
257
+ "openai-oauth|gpt-5.6-sol": {
258
+ "model": "gpt-5.6-sol",
259
+ "instructions": "Sys",
260
+ "input": [
261
+ {
262
+ "type": "message",
263
+ "role": "user",
264
+ "content": [
265
+ {
266
+ "type": "input_text",
267
+ "text": "hi"
268
+ }
269
+ ],
270
+ "internal_chat_message_metadata_passthrough": {}
271
+ }
272
+ ],
273
+ "tools": [
274
+ {
275
+ "type": "function",
276
+ "name": "read",
277
+ "description": "r",
278
+ "parameters": {
279
+ "type": "object",
280
+ "properties": {}
281
+ },
282
+ "strict": false
283
+ },
284
+ {
285
+ "type": "tool_search",
286
+ "execution": "client",
287
+ "description": "l",
288
+ "parameters": {
289
+ "type": "object",
290
+ "properties": {}
291
+ }
292
+ }
279
293
  ],
280
- "internal_chat_message_metadata_passthrough": {}
281
- }
282
- ],
283
- "tools": [
284
- {
285
- "type": "function",
286
- "name": "read",
287
- "description": "r",
288
- "parameters": {
289
- "type": "object",
290
- "properties": {}
294
+ "tool_choice": "auto",
295
+ "parallel_tool_calls": true,
296
+ "reasoning": {
297
+ "effort": "high",
298
+ "summary": "auto"
299
+ },
300
+ "store": false,
301
+ "stream": true,
302
+ "stream_options": {
303
+ "reasoning_summary_delivery": "sequential_cutoff"
291
304
  },
292
- "strict": false
293
- },
294
- {
295
- "type": "tool_search",
296
- "execution": "client",
297
- "description": "l",
298
- "parameters": {
299
- "type": "object",
300
- "properties": {}
305
+ "include": ["reasoning.encrypted_content"],
306
+ "prompt_cache_key": "parity",
307
+ "text": {
308
+ "verbosity": "low"
301
309
  }
302
- }
303
- ],
304
- "tool_choice": "auto",
305
- "parallel_tool_calls": true,
306
- "reasoning": {
307
- "effort": "high",
308
- "summary": "auto"
309
- },
310
- "store": false,
311
- "stream": true,
312
- "stream_options": {
313
- "reasoning_summary_delivery": "sequential_cutoff"
314
- },
315
- "include": [
316
- "reasoning.encrypted_content"
317
- ],
318
- "prompt_cache_key": "parity",
319
- "text": {
320
- "verbosity": "low"
321
310
  }
322
- }
323
311
  }
@@ -3,6 +3,7 @@ import { getLlmDispatcher } from '../../../shared/llm/http-agent.mjs';
3
3
  import { sanitizeToolPairs } from '../session/context-utils.mjs';
4
4
  import { noteRequestServiceTier } from '../../../shared/llm/usage-context.mjs';
5
5
  import { buildGeminiRequest } from './gemini-request-body.mjs';
6
+ import { geminiDocumentedThinkingLevels } from './gemini-thinking.mjs';
6
7
  import { geminiEndsWithFunctionResponse, runGeminiStreamAttempts } from './gemini-retry-policy.mjs';
7
8
  import { consumeGeminiRestStreamResponse } from './gemini-stream.mjs';
8
9
  import { geminiTextLeakGuardFor } from './gemini-sdk-request.mjs';
@@ -551,7 +552,15 @@ export class VertexAIProvider {
551
552
  async listModels() {
552
553
  return VERTEX_MODELS.map((model) => {
553
554
  const tierOption = vertexTierOption(model.id);
554
- return { ...model, provider: this.name, ...(tierOption ? { modelParameterOptions: [tierOption] } : {}) };
555
+ // The picker offers effort only from a declared ladder; these models'
556
+ // levels are documented rather than listed by a catalog.
557
+ const levels = geminiDocumentedThinkingLevels(model.id);
558
+ return {
559
+ ...model,
560
+ provider: this.name,
561
+ ...(levels ? { supportsReasoning: true, reasoningOptions: [{ type: 'effort', values: levels }] } : {}),
562
+ ...(tierOption ? { modelParameterOptions: [tierOption] } : {}),
563
+ };
555
564
  });
556
565
  }
557
566