mixdog 0.9.47 → 0.9.49

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 (83) hide show
  1. package/package.json +14 -4
  2. package/scripts/agent-parallel-smoke.mjs +4 -1
  3. package/scripts/agent-route-batch-test.mjs +40 -0
  4. package/scripts/code-graph-aggregate-cwd-test.mjs +154 -0
  5. package/scripts/code-graph-description-contract.mjs +185 -0
  6. package/scripts/code-graph-disk-hit-test.mjs +55 -0
  7. package/scripts/code-graph-dispatch-test.mjs +96 -0
  8. package/scripts/compact-pressure-test.mjs +40 -0
  9. package/scripts/deferred-tool-loading-test.mjs +233 -0
  10. package/scripts/execution-completion-dedup-test.mjs +48 -0
  11. package/scripts/explore-prompt-policy-test.mjs +88 -3
  12. package/scripts/live-worker-smoke.mjs +68 -16
  13. package/scripts/memory-core-input-test.mjs +33 -13
  14. package/scripts/native-edit-wire-test.mjs +152 -0
  15. package/scripts/openai-oauth-ws-1006-retry-test.mjs +294 -16
  16. package/scripts/patch-binary-cache-test.mjs +181 -0
  17. package/scripts/prompt-immediate-render-test.mjs +89 -0
  18. package/scripts/provider-toolcall-test.mjs +280 -15
  19. package/scripts/shell-failure-diagnostics-test.mjs +211 -0
  20. package/scripts/statusline-quota-hysteresis-test.mjs +26 -1
  21. package/scripts/streaming-tail-window-test.mjs +29 -0
  22. package/scripts/tool-failures.mjs +21 -3
  23. package/scripts/tool-smoke.mjs +263 -38
  24. package/scripts/tool-tui-presentation-test.mjs +17 -1
  25. package/scripts/tui-perf-run.ps1 +26 -0
  26. package/scripts/tui-transcript-perf-test.mjs +7 -1
  27. package/scripts/verify-release-assets-test.mjs +647 -0
  28. package/scripts/verify-release-assets.mjs +293 -0
  29. package/scripts/windows-hide-spawn-options-test.mjs +19 -0
  30. package/src/cli.mjs +1 -0
  31. package/src/runtime/agent/orchestrator/agent-trace-format.mjs +16 -5
  32. package/src/runtime/agent/orchestrator/providers/anthropic-oauth.mjs +35 -11
  33. package/src/runtime/agent/orchestrator/providers/anthropic.mjs +35 -11
  34. package/src/runtime/agent/orchestrator/providers/custom-tool-wire.mjs +28 -0
  35. package/src/runtime/agent/orchestrator/providers/openai-compat-wire.mjs +1 -1
  36. package/src/runtime/agent/orchestrator/providers/openai-oauth-ws.mjs +34 -34
  37. package/src/runtime/agent/orchestrator/providers/openai-oauth.mjs +45 -38
  38. package/src/runtime/agent/orchestrator/providers/openai-ws-pool.mjs +36 -11
  39. package/src/runtime/agent/orchestrator/providers/retry-classifier.mjs +4 -4
  40. package/src/runtime/agent/orchestrator/session/eager-dispatch.mjs +10 -6
  41. package/src/runtime/agent/orchestrator/session/loop/deferred-call-through.mjs +4 -3
  42. package/src/runtime/agent/orchestrator/session/loop/recall-fasttrack.mjs +4 -3
  43. package/src/runtime/agent/orchestrator/session/loop/tool-helpers.mjs +16 -1
  44. package/src/runtime/agent/orchestrator/session/manager/ask-session.mjs +2 -2
  45. package/src/runtime/agent/orchestrator/session/manager/compaction-runner.mjs +0 -1
  46. package/src/runtime/agent/orchestrator/session/tool-batch.mjs +13 -8
  47. package/src/runtime/agent/orchestrator/tools/builtin/bash-tool.mjs +30 -16
  48. package/src/runtime/agent/orchestrator/tools/code-graph/build.mjs +25 -8
  49. package/src/runtime/agent/orchestrator/tools/code-graph/dispatch.mjs +69 -4
  50. package/src/runtime/agent/orchestrator/tools/code-graph-prewarm-worker.mjs +5 -4
  51. package/src/runtime/agent/orchestrator/tools/code-graph-tool-defs.mjs +1 -1
  52. package/src/runtime/agent/orchestrator/tools/graph-manifest.json +12 -12
  53. package/src/runtime/agent/orchestrator/tools/patch/native-server.mjs +12 -7
  54. package/src/runtime/agent/orchestrator/tools/patch-binary-fetcher.mjs +77 -18
  55. package/src/runtime/agent/orchestrator/tools/patch-manifest.json +11 -11
  56. package/src/runtime/agent/orchestrator/tools/shell-command.mjs +99 -24
  57. package/src/runtime/memory/lib/memory-action-handlers.mjs +21 -11
  58. package/src/runtime/memory/tool-defs.mjs +1 -2
  59. package/src/session-runtime/context-status.mjs +25 -16
  60. package/src/session-runtime/model-route-api.mjs +2 -0
  61. package/src/session-runtime/runtime-core.mjs +2 -2
  62. package/src/session-runtime/session-turn-api.mjs +4 -1
  63. package/src/session-runtime/tool-catalog.mjs +113 -19
  64. package/src/session-runtime/tool-defs.mjs +1 -0
  65. package/src/standalone/agent-tool/helpers.mjs +25 -6
  66. package/src/standalone/agent-tool.mjs +75 -41
  67. package/src/tui/App.jsx +4 -0
  68. package/src/tui/app/input-parsers.mjs +8 -9
  69. package/src/tui/components/Markdown.jsx +6 -1
  70. package/src/tui/components/Message.jsx +11 -2
  71. package/src/tui/components/PromptInput.jsx +19 -21
  72. package/src/tui/components/Spinner.jsx +4 -4
  73. package/src/tui/components/StatusLine.jsx +6 -6
  74. package/src/tui/components/TranscriptItem.jsx +2 -2
  75. package/src/tui/components/prompt-input/immediate-render.mjs +47 -0
  76. package/src/tui/components/tool-execution/surface-detail.mjs +14 -9
  77. package/src/tui/dist/index.mjs +130 -45
  78. package/src/tui/engine/agent-job-feed.mjs +21 -2
  79. package/src/tui/engine/turn.mjs +12 -1
  80. package/src/tui/markdown/measure-rendered-rows.mjs +1 -1
  81. package/src/tui/markdown/streaming-markdown.mjs +20 -0
  82. package/src/ui/statusline.mjs +5 -5
  83. package/src/vendor/statusline/src/gateway/session-routes.mjs +22 -10
@@ -140,22 +140,30 @@ export function readLatestGatewayHostRoute(clientHostPid, options = {}) {
140
140
  return best;
141
141
  }
142
142
 
143
- export function writeGatewaySessionRoute(sessionId, route, options = {}) {
144
- const sid = normalizeGatewaySessionId(sessionId);
145
- const normalized = normalizeGatewayRouteSection(route || {});
146
- if (!sid || !normalized) return false;
147
- const pid = normalizeClientHostPid(options?.clientHostPid ?? route?.clientHostPid);
143
+ export function writeGatewaySessionRoutes(entries = []) {
144
+ const normalizedEntries = [];
145
+ for (const entry of Array.isArray(entries) ? entries : []) {
146
+ const sid = normalizeGatewaySessionId(entry?.sessionId);
147
+ const route = normalizeGatewayRouteSection(entry?.route || {});
148
+ if (!sid || !route) continue;
149
+ const pid = normalizeClientHostPid(entry?.options?.clientHostPid ?? entry?.route?.clientHostPid);
150
+ normalizedEntries.push({ sid, route, pid });
151
+ }
152
+ if (normalizedEntries.length === 0) return false;
148
153
  try {
149
154
  updateJsonAtomicSync(gatewaySessionRoutesPath(), (curRaw) => {
150
155
  const cur = curRaw && typeof curRaw === 'object' ? curRaw : {};
151
156
  const sessions = cur.sessions && typeof cur.sessions === 'object' ? { ...cur.sessions } : {};
152
157
  const sessionHosts = cur.sessionHosts && typeof cur.sessionHosts === 'object' ? { ...cur.sessionHosts } : {};
153
- if (pid) {
154
- sessionHosts[hostRouteKey(sid, pid)] = { ...normalized, sessionId: sid, clientHostPid: pid, updatedAt: Date.now() };
155
- } else {
156
- sessions[sid] = { ...normalized, sessionId: sid, updatedAt: Date.now() };
158
+ const updatedAt = Date.now();
159
+ for (const { sid, route, pid } of normalizedEntries) {
160
+ if (pid) {
161
+ sessionHosts[hostRouteKey(sid, pid)] = { ...route, sessionId: sid, clientHostPid: pid, updatedAt };
162
+ } else {
163
+ sessions[sid] = { ...route, sessionId: sid, updatedAt };
164
+ }
157
165
  }
158
- return { version: 2, updatedAt: Date.now(), sessions, sessionHosts };
166
+ return { version: 2, updatedAt, sessions, sessionHosts };
159
167
  }, { compact: true, fsync: false, fsyncDir: false });
160
168
  return true;
161
169
  } catch {
@@ -163,6 +171,10 @@ export function writeGatewaySessionRoute(sessionId, route, options = {}) {
163
171
  }
164
172
  }
165
173
 
174
+ export function writeGatewaySessionRoute(sessionId, route, options = {}) {
175
+ return writeGatewaySessionRoutes([{ sessionId, route, options }]);
176
+ }
177
+
166
178
  export function clearGatewaySessionRoute(sessionId, options = {}) {
167
179
  const sid = normalizeGatewaySessionId(sessionId);
168
180
  if (!sid) return false;