mixdog 0.9.63 → 0.9.64
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.
- package/README.md +3 -0
- package/package.json +9 -2
- package/scripts/code-graph-description-contract.mjs +3 -3
- package/scripts/verify-release-assets.mjs +2 -2
- package/src/runtime/agent/orchestrator/agent-runtime/agent-dispatch.mjs +11 -14
- package/src/runtime/agent/orchestrator/agent-runtime/agent-progress-watchdog.mjs +6 -6
- package/src/runtime/agent/orchestrator/agent-runtime/cache-strategy.mjs +2 -2
- package/src/runtime/agent/orchestrator/agent-trace-format.mjs +1 -0
- package/src/runtime/agent/orchestrator/config.mjs +19 -124
- package/src/runtime/agent/orchestrator/context/collect.mjs +6 -6
- package/src/runtime/agent/orchestrator/dispatch-persist.mjs +2 -2
- package/src/runtime/agent/orchestrator/internal-agents.mjs +2 -2
- package/src/runtime/agent/orchestrator/mcp/child-tree.mjs +1 -1
- package/src/runtime/agent/orchestrator/mcp/client.mjs +4 -4
- package/src/runtime/agent/orchestrator/providers/admission-scheduler.mjs +2 -2
- package/src/runtime/agent/orchestrator/providers/anthropic-betas.mjs +4 -4
- package/src/runtime/agent/orchestrator/providers/anthropic-effort.mjs +2 -2
- package/src/runtime/agent/orchestrator/providers/anthropic-max-tokens.mjs +4 -4
- package/src/runtime/agent/orchestrator/providers/anthropic-messages.mjs +333 -0
- package/src/runtime/agent/orchestrator/providers/anthropic-model-resolve.mjs +2 -2
- package/src/runtime/agent/orchestrator/providers/anthropic-oauth-credentials.mjs +4 -4
- package/src/runtime/agent/orchestrator/providers/anthropic-oauth.mjs +1 -1
- package/src/runtime/agent/orchestrator/providers/anthropic.mjs +3 -277
- package/src/runtime/agent/orchestrator/providers/codex-client-meta.mjs +2 -2
- package/src/runtime/agent/orchestrator/providers/custom-tool-wire.mjs +1 -1
- package/src/runtime/agent/orchestrator/providers/gemini-cache.mjs +2 -2
- package/src/runtime/agent/orchestrator/providers/gemini-stream.mjs +6 -6
- package/src/runtime/agent/orchestrator/providers/grok-oauth-login.mjs +196 -0
- package/src/runtime/agent/orchestrator/providers/grok-oauth-tokens.mjs +460 -0
- package/src/runtime/agent/orchestrator/providers/grok-oauth.mjs +14 -593
- package/src/runtime/agent/orchestrator/providers/lib/anthropic-request-utils.mjs +1 -1
- package/src/runtime/agent/orchestrator/providers/media-normalization.mjs +1 -1
- package/src/runtime/agent/orchestrator/providers/openai-compat-wire.mjs +1 -1
- package/src/runtime/agent/orchestrator/providers/openai-compat-xai.mjs +4 -4
- package/src/runtime/agent/orchestrator/providers/openai-oauth-ws.mjs +2 -2
- package/src/runtime/agent/orchestrator/providers/openai-oauth.mjs +5 -280
- package/src/runtime/agent/orchestrator/providers/openai-responses-payload.mjs +357 -0
- package/src/runtime/agent/orchestrator/providers/openai-ws-headers.mjs +216 -0
- package/src/runtime/agent/orchestrator/providers/openai-ws-pool.mjs +2 -188
- package/src/runtime/agent/orchestrator/providers/openai-ws-stream.mjs +2 -2
- package/src/runtime/agent/orchestrator/providers/openai-ws.mjs +2 -2
- package/src/runtime/agent/orchestrator/providers/opencode-go.mjs +1 -1
- package/src/runtime/agent/orchestrator/providers/provider-catalog-cache.mjs +1 -1
- package/src/runtime/agent/orchestrator/providers/registry.mjs +1 -1
- package/src/runtime/agent/orchestrator/providers/retry-classifier.mjs +2 -2
- package/src/runtime/agent/orchestrator/providers/statusline-route-meta.mjs +1 -1
- package/src/runtime/agent/orchestrator/session/cache/prefetch-cache.mjs +1 -1
- package/src/runtime/agent/orchestrator/session/cache/scoped-cache.mjs +3 -3
- package/src/runtime/agent/orchestrator/session/compact/budget.mjs +2 -2
- package/src/runtime/agent/orchestrator/session/compact/file-reattach.mjs +2 -2
- package/src/runtime/agent/orchestrator/session/compact/summary-schema.mjs +1 -1
- package/src/runtime/agent/orchestrator/session/compact/summary.mjs +1 -1
- package/src/runtime/agent/orchestrator/session/compact/text-utils.mjs +2 -2
- package/src/runtime/agent/orchestrator/session/context-utils.mjs +4 -4
- package/src/runtime/agent/orchestrator/session/loop/deferred-call-through.mjs +1 -1
- package/src/runtime/agent/orchestrator/session/loop/pre-dispatch-deny.mjs +17 -0
- package/src/runtime/agent/orchestrator/session/loop/steering.mjs +1 -1
- package/src/runtime/agent/orchestrator/session/loop/stored-tool-args.mjs +18 -26
- package/src/runtime/agent/orchestrator/session/loop/termination.mjs +1 -1
- package/src/runtime/agent/orchestrator/session/loop/tool-classify.mjs +3 -3
- package/src/runtime/agent/orchestrator/session/manager/compaction-runner.mjs +1 -0
- package/src/runtime/agent/orchestrator/session/manager/context-meta.mjs +1 -1
- package/src/runtime/agent/orchestrator/session/manager/delivered-completions.mjs +1 -1
- package/src/runtime/agent/orchestrator/session/manager/status-telemetry.mjs +1 -1
- package/src/runtime/agent/orchestrator/session/store/live-state.mjs +49 -0
- package/src/runtime/agent/orchestrator/session/store/load-cache.mjs +49 -0
- package/src/runtime/agent/orchestrator/session/store/save-worker.mjs +260 -0
- package/src/runtime/agent/orchestrator/session/store/serialize.mjs +72 -0
- package/src/runtime/agent/orchestrator/session/store/summary-cache.mjs +163 -0
- package/src/runtime/agent/orchestrator/session/store/write-guards.mjs +1 -1
- package/src/runtime/agent/orchestrator/session/store-summary-index.mjs +1 -1
- package/src/runtime/agent/orchestrator/session/store-summary-reader.mjs +4 -1
- package/src/runtime/agent/orchestrator/session/store.mjs +9 -561
- package/src/runtime/agent/orchestrator/session/tool-envelope.mjs +1 -1
- package/src/runtime/agent/orchestrator/session/tool-result-offload.mjs +2 -2
- package/src/runtime/agent/orchestrator/stall-policy.mjs +11 -11
- package/src/runtime/agent/orchestrator/tools/bash-policy-scan.mjs +1 -1
- package/src/runtime/agent/orchestrator/tools/bash-session.mjs +2 -2
- package/src/runtime/agent/orchestrator/tools/builtin/advisory-lock.mjs +1 -1
- package/src/runtime/agent/orchestrator/tools/builtin/arg-guard.mjs +2 -2
- package/src/runtime/agent/orchestrator/tools/builtin/atomic-write.mjs +1 -1
- package/src/runtime/agent/orchestrator/tools/builtin/bash-tool.mjs +2 -154
- package/src/runtime/agent/orchestrator/tools/builtin/cache-layers.mjs +1 -1
- package/src/runtime/agent/orchestrator/tools/builtin/cwd-utils.mjs +1 -1
- package/src/runtime/agent/orchestrator/tools/builtin/fs-reachability.mjs +1 -1
- package/src/runtime/agent/orchestrator/tools/builtin/fuzzy-match.mjs +1 -1
- package/src/runtime/agent/orchestrator/tools/builtin/glob-walk.mjs +1 -1
- package/src/runtime/agent/orchestrator/tools/builtin/path-locks.mjs +1 -1
- package/src/runtime/agent/orchestrator/tools/builtin/path-utils.mjs +1 -1
- package/src/runtime/agent/orchestrator/tools/builtin/read-args.mjs +2 -2
- package/src/runtime/agent/orchestrator/tools/builtin/read-formatting.mjs +2 -3
- package/src/runtime/agent/orchestrator/tools/builtin/read-image-resize.mjs +4 -4
- package/src/runtime/agent/orchestrator/tools/builtin/read-open.mjs +1 -1
- package/src/runtime/agent/orchestrator/tools/builtin/read-streaming.mjs +1 -1
- package/src/runtime/agent/orchestrator/tools/builtin/rg-runner.mjs +2 -2
- package/src/runtime/agent/orchestrator/tools/builtin/search-path-diagnostics.mjs +5 -5
- package/src/runtime/agent/orchestrator/tools/builtin/shell-analysis.mjs +1 -1
- package/src/runtime/agent/orchestrator/tools/builtin/shell-job-paths.mjs +2 -2
- package/src/runtime/agent/orchestrator/tools/builtin/shell-job-process.mjs +2 -2
- package/src/runtime/agent/orchestrator/tools/builtin/shell-job-spawn.mjs +519 -0
- package/src/runtime/agent/orchestrator/tools/builtin/shell-jobs.mjs +5 -449
- package/src/runtime/agent/orchestrator/tools/builtin/snapshot-helpers.mjs +1 -1
- package/src/runtime/agent/orchestrator/tools/builtin/task-tool.mjs +212 -0
- package/src/runtime/agent/orchestrator/tools/builtin.mjs +1 -1
- package/src/runtime/agent/orchestrator/tools/code-graph/build.mjs +1 -7
- package/src/runtime/agent/orchestrator/tools/code-graph/disk-cache.mjs +9 -36
- package/src/runtime/agent/orchestrator/tools/code-graph/dispatch.mjs +15 -3
- package/src/runtime/agent/orchestrator/tools/code-graph/search-references.mjs +429 -0
- package/src/runtime/agent/orchestrator/tools/code-graph/search.mjs +2 -395
- package/src/runtime/agent/orchestrator/tools/code-graph/symbol-index.mjs +2 -2
- package/src/runtime/agent/orchestrator/tools/code-graph/text-mask.mjs +1 -1
- package/src/runtime/agent/orchestrator/tools/code-graph/trusted-roots.mjs +1 -1
- package/src/runtime/agent/orchestrator/tools/code-graph-prewarm-worker.mjs +1 -1
- package/src/runtime/agent/orchestrator/tools/code-graph-state.mjs +3 -3
- package/src/runtime/agent/orchestrator/tools/mutation-planner.mjs +5 -5
- package/src/runtime/agent/orchestrator/tools/next-call-utils.mjs +1 -1
- package/src/runtime/agent/orchestrator/tools/patch/dispatch.mjs +1 -1
- package/src/runtime/agent/orchestrator/tools/patch/matcher.mjs +7 -7
- package/src/runtime/agent/orchestrator/tools/patch/orchestrator.mjs +72 -9
- package/src/runtime/agent/orchestrator/tools/patch/parsing.mjs +4 -4
- package/src/runtime/agent/orchestrator/tools/patch/paths.mjs +1 -1
- package/src/runtime/agent/orchestrator/tools/patch/v4a-convert.mjs +1 -1
- package/src/runtime/agent/orchestrator/tools/patch-tool-defs.mjs +4 -4
- package/src/runtime/agent/orchestrator/tools/patch.mjs +1 -1
- package/src/runtime/agent/orchestrator/tools/result-compression.mjs +3 -3
- package/src/runtime/agent/orchestrator/tools/shell-command.mjs +2 -444
- package/src/runtime/agent/orchestrator/tools/shell-exec-output.mjs +505 -0
- package/src/runtime/agent/orchestrator/tools/shell-exec-policy.mjs +2 -2
- package/src/runtime/agent/orchestrator/tools/shell-snapshot.mjs +1 -1
- package/src/runtime/channels/lib/backend-dispatch.mjs +20 -5
- package/src/runtime/channels/lib/scheduler.mjs +1 -1
- package/src/runtime/channels/lib/telegram-format.mjs +1 -1
- package/src/runtime/channels/lib/voice-runtime-fetcher.mjs +4 -4
- package/src/runtime/channels/tool-defs.mjs +2 -3
- package/src/runtime/memory/index.mjs +1 -5
- package/src/runtime/memory/lib/core-memory-candidates.mjs +357 -0
- package/src/runtime/memory/lib/core-memory-store.mjs +7 -357
- package/src/runtime/memory/lib/cycle-signatures.mjs +1 -1
- package/src/runtime/memory/lib/embedding-model-config.mjs +1 -1
- package/src/runtime/memory/lib/embedding-provider.mjs +1 -5
- package/src/runtime/memory/lib/embedding-worker.mjs +1 -5
- package/src/runtime/memory/lib/ko-morph.mjs +2 -2
- package/src/runtime/memory/lib/memory-config-flags.mjs +2 -5
- package/src/runtime/memory/lib/memory-cycle-requests.mjs +3 -7
- package/src/runtime/memory/lib/memory-cycle1.mjs +4 -8
- package/src/runtime/memory/lib/memory-cycle2-gate.mjs +1 -1
- package/src/runtime/memory/lib/memory-cycle2-mutations.mjs +1 -1
- package/src/runtime/memory/lib/memory-cycle2-shared.mjs +2 -5
- package/src/runtime/memory/lib/memory-cycle3.mjs +1 -5
- package/src/runtime/memory/lib/memory-embed.mjs +2 -6
- package/src/runtime/memory/lib/memory-log.mjs +8 -0
- package/src/runtime/memory/lib/memory-ops-policy.mjs +4 -8
- package/src/runtime/memory/lib/memory-recall-scope-filter.mjs +1 -1
- package/src/runtime/memory/lib/memory-recall-store.mjs +2 -193
- package/src/runtime/memory/lib/memory-score.mjs +1 -1
- package/src/runtime/memory/lib/memory-text-utils.mjs +2 -2
- package/src/runtime/memory/lib/memory.mjs +2 -6
- package/src/runtime/memory/lib/pg/adapter.mjs +2 -6
- package/src/runtime/memory/lib/pg/process.mjs +1 -5
- package/src/runtime/memory/lib/pg/supervisor.mjs +1 -5
- package/src/runtime/memory/lib/recall-format.mjs +2 -2
- package/src/runtime/memory/lib/recall-scoring.mjs +195 -0
- package/src/runtime/memory/lib/runtime-fetcher.mjs +1 -5
- package/src/runtime/memory/lib/trace-store.mjs +2 -6
- package/src/runtime/search/lib/http-fetch.mjs +6 -6
- package/src/runtime/search/lib/web-tools.mjs +2 -2
- package/src/runtime/shared/buffered-appender.mjs +1 -1
- package/src/runtime/shared/child-guardian.mjs +1 -1
- package/src/runtime/shared/child-spawn-gate.mjs +1 -1
- package/src/runtime/shared/config.mjs +4 -4
- package/src/runtime/shared/launcher-control.mjs +9 -10
- package/src/runtime/shared/llm/index.mjs +5 -20
- package/src/runtime/shared/markdown-frontmatter.mjs +1 -1
- package/src/runtime/shared/memory-snapshot.mjs +4 -4
- package/src/runtime/shared/pristine-execution.mjs +1 -1
- package/src/runtime/shared/process-lifecycle.mjs +0 -1
- package/src/runtime/shared/process-shutdown.mjs +1 -1
- package/src/runtime/shared/resource-admission.mjs +2 -2
- package/src/runtime/shared/schedule-session-run.mjs +1 -1
- package/src/runtime/shared/schedules-db.mjs +1 -1
- package/src/runtime/shared/service-discovery.mjs +2 -2
- package/src/runtime/shared/staged-update.mjs +6 -6
- package/src/runtime/shared/tool-execution-contract.mjs +1 -1
- package/src/runtime/shared/tool-primitives.mjs +1 -1
- package/src/runtime/shared/tool-surface.mjs +2 -2
- package/src/runtime/shared/update-checker.mjs +1 -1
- package/src/runtime/shared/user-cwd.mjs +3 -3
- package/src/runtime/shared/user-data-guard.mjs +4 -4
- package/src/runtime/shared/workspace-router.mjs +5 -5
- package/src/session-runtime/config-helpers.mjs +2 -3
- package/src/session-runtime/config-lifecycle.mjs +1 -1
- package/src/session-runtime/hitch-profile.mjs +1 -1
- package/src/session-runtime/lifecycle-api.mjs +6 -4
- package/src/session-runtime/model-recency.mjs +5 -5
- package/src/session-runtime/plugin-mcp.mjs +1 -1
- package/src/session-runtime/provider-request-snapshot.mjs +338 -0
- package/src/session-runtime/session-text.mjs +4 -4
- package/src/session-runtime/tool-catalog-schema.mjs +197 -0
- package/src/session-runtime/tool-catalog.mjs +6 -483
- package/src/session-runtime/tool-defs.mjs +1 -1
- package/src/standalone/agent-task-status.mjs +1 -1
- package/src/standalone/agent-tool/helpers.mjs +2 -2
- package/src/standalone/channel-admin.mjs +4 -4
- package/src/standalone/explore-tool.mjs +3 -3
- package/src/standalone/hook-bus/config.mjs +1 -1
- package/src/standalone/hook-bus/constants.mjs +1 -1
- package/src/standalone/hook-bus/rules.mjs +1 -1
- package/src/standalone/projects.mjs +1 -1
- package/src/standalone/provider-admin.mjs +2 -2
- package/src/tui/app/app-format.mjs +2 -2
- package/src/tui/app/clipboard.mjs +3 -3
- package/src/tui/app/input-parsers.mjs +1 -1
- package/src/tui/app/text-layout.mjs +1 -1
- package/src/tui/app/transcript-row-estimate.mjs +360 -0
- package/src/tui/app/transcript-window.mjs +5 -347
- package/src/tui/app/use-mouse-input.mjs +1 -1
- package/src/tui/app/use-prompt-handlers.mjs +1 -1
- package/src/tui/components/tool-execution/surface-detail.mjs +9 -9
- package/src/tui/components/tool-execution/text-format.mjs +2 -2
- package/src/tui/components/tool-output-format.mjs +7 -7
- package/src/tui/display-width.mjs +4 -4
- package/src/tui/dist/index.mjs +63 -97
- package/src/tui/engine/agent-envelope.mjs +5 -5
- package/src/tui/engine/notification-plan.mjs +1 -1
- package/src/tui/engine/queue-helpers.mjs +3 -3
- package/src/tui/engine/render-timing.mjs +4 -5
- package/src/tui/engine/session-api-ext.mjs +3 -3
- package/src/tui/engine/tool-result-status.mjs +5 -5
- package/src/tui/engine/tool-result-text.mjs +1 -1
- package/src/tui/engine/transcript-spill.mjs +585 -0
- package/src/tui/engine/tui-steering-persist.mjs +1 -1
- package/src/tui/engine.mjs +2 -474
- package/src/tui/lib/voice-setup.mjs +1 -1
- package/src/tui/markdown/format-token.mjs +1 -1
- package/src/tui/markdown/render-ansi.mjs +1 -1
- package/src/tui/markdown/table-layout.mjs +4 -4
- package/src/tui/paste-attachments.mjs +1 -1
- package/src/tui/prompt-history-store.mjs +3 -3
- package/src/tui/statusline-ansi-bridge.mjs +2 -2
- package/src/tui/theme.mjs +1 -1
- package/src/tui/transcript-tool-failures.mjs +2 -2
- package/src/ui/ansi.mjs +0 -9
- package/src/ui/statusline-format.mjs +2 -4
- package/scripts/_bench-cwc.json +0 -20
- package/scripts/_jitter-fuzz.jsx +0 -42
- package/scripts/_jitter-fuzz2.jsx +0 -30
- package/scripts/_jitter-probe.jsx +0 -35
- package/scripts/_jp2.jsx +0 -16
- package/scripts/_smoke_wd.mjs +0 -7
- package/scripts/abort-recovery-test.mjs +0 -175
- package/scripts/agent-dispatch-abort-compose-test.mjs +0 -31
- package/scripts/agent-live-arg-guard-smoke.mjs +0 -20
- package/scripts/agent-live-path-suffix-smoke.mjs +0 -34
- package/scripts/agent-live-toolcall-args-smoke.mjs +0 -45
- package/scripts/agent-loop-policy-test.mjs +0 -37
- package/scripts/agent-model-liveness-test.mjs +0 -763
- package/scripts/agent-parallel-smoke.mjs +0 -435
- package/scripts/agent-route-batch-test.mjs +0 -40
- package/scripts/agent-tag-reuse-smoke.mjs +0 -441
- package/scripts/agent-terminal-reap-test.mjs +0 -252
- package/scripts/agent-trace-io-test.mjs +0 -133
- package/scripts/ansi-color-capability-test.mjs +0 -90
- package/scripts/anthropic-admission-retry-integration-test.mjs +0 -119
- package/scripts/anthropic-maxtokens-test.mjs +0 -119
- package/scripts/anthropic-oauth-refresh-race-test.mjs +0 -397
- package/scripts/anthropic-transport-policy-test.mjs +0 -726
- package/scripts/apply-patch-edit-smoke.mjs +0 -71
- package/scripts/arg-guard-test.mjs +0 -93
- package/scripts/async-notify-settlement-test.mjs +0 -99
- package/scripts/atomic-lock-tryonce-test.mjs +0 -125
- package/scripts/background-task-meta-smoke.mjs +0 -38
- package/scripts/bench-run.mjs +0 -508
- package/scripts/boot-smoke.mjs +0 -137
- package/scripts/build-runtime-windows.ps1 +0 -242
- package/scripts/channel-daemon-smoke.mjs +0 -1103
- package/scripts/code-graph-aggregate-cwd-test.mjs +0 -158
- package/scripts/code-graph-disk-hit-test.mjs +0 -290
- package/scripts/code-graph-dispatch-test.mjs +0 -96
- package/scripts/code-graph-root-federation-test.mjs +0 -273
- package/scripts/compact-active-turn-test.mjs +0 -68
- package/scripts/compact-file-reattach-test.mjs +0 -88
- package/scripts/compact-pressure-test.mjs +0 -788
- package/scripts/compact-prior-context-flatten-test.mjs +0 -252
- package/scripts/compact-recall-digest-test.mjs +0 -57
- package/scripts/compact-smoke.mjs +0 -1017
- package/scripts/compact-trigger-migration-smoke.mjs +0 -261
- package/scripts/compacted-placeholder-scrub-test.mjs +0 -63
- package/scripts/context-mcp-metering-test.mjs +0 -1406
- package/scripts/debounced-skills-async-save-test.mjs +0 -57
- package/scripts/deferred-tool-loading-test.mjs +0 -250
- package/scripts/desktop-session-bridge-test.mjs +0 -1013
- package/scripts/dispatch-persist-recovery-test.mjs +0 -141
- package/scripts/embedding-worker-exit-test.mjs +0 -76
- package/scripts/execution-completion-dedup-test.mjs +0 -205
- package/scripts/execution-pending-resume-kick-test.mjs +0 -151
- package/scripts/execution-resume-esc-integration-test.mjs +0 -176
- package/scripts/explore-bench-tmp.mjs +0 -36
- package/scripts/explore-bench.mjs +0 -248
- package/scripts/explore-prompt-policy-test.mjs +0 -256
- package/scripts/explore-timeout-cancel-test.mjs +0 -345
- package/scripts/find-fuzzy-hidden-test.mjs +0 -267
- package/scripts/forwarder-rebind-tail-test.mjs +0 -67
- package/scripts/freevar-smoke.mjs +0 -98
- package/scripts/gemini-provider-test.mjs +0 -1448
- package/scripts/generate-oc-icons.mjs +0 -11
- package/scripts/grok-oauth-refresh-race-test.mjs +0 -273
- package/scripts/headless-pristine-execution-test.mjs +0 -614
- package/scripts/hook-bus-test.mjs +0 -552
- package/scripts/ingest-pure-conversation-smoke.mjs +0 -175
- package/scripts/internal-comms-bench-test.mjs +0 -226
- package/scripts/internal-comms-bench.mjs +0 -853
- package/scripts/internal-comms-smoke.mjs +0 -277
- package/scripts/internal-tools-normalization-test.mjs +0 -62
- package/scripts/interrupted-turn-history-test.mjs +0 -399
- package/scripts/lead-workflow-smoke.mjs +0 -592
- package/scripts/lifecycle-api-test.mjs +0 -137
- package/scripts/live-share-test.mjs +0 -148
- package/scripts/live-worker-smoke.mjs +0 -333
- package/scripts/log-writer-guard-smoke.mjs +0 -131
- package/scripts/maintenance-default-routes-test.mjs +0 -164
- package/scripts/max-output-recovery-persist-test.mjs +0 -81
- package/scripts/max-output-recovery-test.mjs +0 -368
- package/scripts/mcp-client-normalization-test.mjs +0 -45
- package/scripts/mcp-grace-deferred-test.mjs +0 -225
- package/scripts/memory-core-input-test.mjs +0 -167
- package/scripts/memory-cycle-routing-test.mjs +0 -111
- package/scripts/memory-meta-concurrency-test.mjs +0 -20
- package/scripts/memory-pg-recovery-test.mjs +0 -59
- package/scripts/memory-rule-contract-test.mjs +0 -93
- package/scripts/model-list-sanitize-test.mjs +0 -37
- package/scripts/mouse-tracking-restore-smoke.mjs +0 -107
- package/scripts/native-edit-wire-test.mjs +0 -152
- package/scripts/notify-completion-mirror-test.mjs +0 -73
- package/scripts/openai-oauth-refresh-race-test.mjs +0 -120
- package/scripts/openai-oauth-ws-1006-retry-test.mjs +0 -954
- package/scripts/openai-ws-early-settle-test.mjs +0 -216
- package/scripts/output-style-bench.mjs +0 -292
- package/scripts/output-style-smoke.mjs +0 -145
- package/scripts/parent-abort-link-test.mjs +0 -90
- package/scripts/patch-binary-cache-test.mjs +0 -181
- package/scripts/path-suffix-test.mjs +0 -57
- package/scripts/pending-completion-drop-test.mjs +0 -239
- package/scripts/pending-messages-lock-nonblocking-test.mjs +0 -62
- package/scripts/pretool-ask-runtime-test.mjs +0 -54
- package/scripts/process-lifecycle-test.mjs +0 -461
- package/scripts/prompt-immediate-render-test.mjs +0 -89
- package/scripts/prompt-input-parity-test.mjs +0 -145
- package/scripts/provider-admission-scheduler-test.mjs +0 -681
- package/scripts/provider-contract-test.mjs +0 -632
- package/scripts/provider-stream-stall-test.mjs +0 -276
- package/scripts/provider-toolcall-test.mjs +0 -3063
- package/scripts/reactive-compact-persist-smoke.mjs +0 -203
- package/scripts/recall-bench.mjs +0 -359
- package/scripts/resource-admission-test.mjs +0 -792
- package/scripts/result-classification-test.mjs +0 -75
- package/scripts/rg-runner-test.mjs +0 -240
- package/scripts/routing-corpus-test.mjs +0 -349
- package/scripts/sanitize-tool-pairs-test.mjs +0 -260
- package/scripts/session-bench-cache-break-test.mjs +0 -102
- package/scripts/session-bench.mjs +0 -1708
- package/scripts/session-context-bench.mjs +0 -344
- package/scripts/session-heartbeat-lifecycle-test.mjs +0 -68
- package/scripts/session-ingest-compaction-smoke.mjs +0 -279
- package/scripts/session-ingest-smoke.mjs +0 -177
- package/scripts/session-orphan-sweep-test.mjs +0 -109
- package/scripts/set-effort-config-test.mjs +0 -41
- package/scripts/shell-failure-diagnostics-test.mjs +0 -280
- package/scripts/shell-hardening-test.mjs +0 -209
- package/scripts/shell-jobs-windows-hide-test.mjs +0 -164
- package/scripts/ship-mode-test.mjs +0 -98
- package/scripts/smoke-loop-failure-summary-test.mjs +0 -38
- package/scripts/smoke-loop-failure-summary.mjs +0 -16
- package/scripts/smoke-loop-report.mjs +0 -221
- package/scripts/smoke-loop.mjs +0 -202
- package/scripts/smoke-runtime-negative.ps1 +0 -106
- package/scripts/statusline-quota-hysteresis-test.mjs +0 -62
- package/scripts/steering-drain-buckets-test.mjs +0 -467
- package/scripts/steering-fold-provenance-test.mjs +0 -71
- package/scripts/streaming-tail-window-test.mjs +0 -175
- package/scripts/submit-commandbusy-race-test.mjs +0 -257
- package/scripts/task-bench.mjs +0 -205
- package/scripts/terminal-bench-isolation-guards-test.mjs +0 -102
- package/scripts/termio-input-smoke.mjs +0 -199
- package/scripts/tool-result-hook-test.mjs +0 -48
- package/scripts/tool-smoke.mjs +0 -2453
- package/scripts/tool-tui-presentation-test.mjs +0 -286
- package/scripts/toolcall-args-test.mjs +0 -239
- package/scripts/tui-ambiguous-width-test.mjs +0 -113
- package/scripts/tui-background-failure-smoke.mjs +0 -73
- package/scripts/tui-perf-run.ps1 +0 -26
- package/scripts/tui-render-smoke.mjs +0 -90
- package/scripts/tui-runtime-load-bench-entry.jsx +0 -608
- package/scripts/tui-runtime-load-bench.mjs +0 -50
- package/scripts/tui-store-frame-batch-test.mjs +0 -99
- package/scripts/tui-transcript-jitter-harness-entry.jsx +0 -383
- package/scripts/tui-transcript-perf-test.mjs +0 -934
- package/scripts/usage-metrics-epoch-smoke.mjs +0 -114
- package/scripts/verify-release-assets-test.mjs +0 -281
- package/scripts/web-fetch-routing-test.mjs +0 -158
- package/scripts/webhook-smoke.mjs +0 -201
- package/scripts/windows-hide-spawn-options-test.mjs +0 -19
- package/scripts/worker-notify-rejection-test.mjs +0 -51
- package/scripts/write-backpressure-test.mjs +0 -147
package/src/tui/dist/index.mjs
CHANGED
|
@@ -203,7 +203,6 @@ __export(paste_attachments_exports, {
|
|
|
203
203
|
formatPastedTextRef: () => formatPastedTextRef,
|
|
204
204
|
imageAttachmentFromBuffer: () => imageAttachmentFromBuffer,
|
|
205
205
|
imageReferenceIds: () => imageReferenceIds,
|
|
206
|
-
isImagePathText: () => isImagePathText,
|
|
207
206
|
pastedTextReferenceIds: () => pastedTextReferenceIds,
|
|
208
207
|
readClipboardImageAttachment: () => readClipboardImageAttachment,
|
|
209
208
|
readClipboardText: () => readClipboardText,
|
|
@@ -1243,7 +1242,6 @@ __export(config_exports, {
|
|
|
1243
1242
|
deleteSecret: () => deleteSecret,
|
|
1244
1243
|
diagnoseDiscordTokenValue: () => diagnoseDiscordTokenValue,
|
|
1245
1244
|
getAgentApiKey: () => getAgentApiKey,
|
|
1246
|
-
getCapabilities: () => getCapabilities,
|
|
1247
1245
|
getDiscordToken: () => getDiscordToken,
|
|
1248
1246
|
getOpenAIUsageSessionKey: () => getOpenAIUsageSessionKey,
|
|
1249
1247
|
getOpenCodeGoAuthCookie: () => getOpenCodeGoAuthCookie,
|
|
@@ -1252,7 +1250,6 @@ __export(config_exports, {
|
|
|
1252
1250
|
hasStoredSecret: () => hasStoredSecret,
|
|
1253
1251
|
invalidateConfigReadCache: () => invalidateConfigReadCache,
|
|
1254
1252
|
invalidateSecretReadCache: () => invalidateSecretReadCache,
|
|
1255
|
-
isDiscordSnowflake: () => isDiscordSnowflake,
|
|
1256
1253
|
pendingConfigWrites: () => pendingConfigWrites,
|
|
1257
1254
|
readConfig: () => readConfig,
|
|
1258
1255
|
readSection: () => readSection,
|
|
@@ -1261,9 +1258,7 @@ __export(config_exports, {
|
|
|
1261
1258
|
updateConfig: () => updateConfig,
|
|
1262
1259
|
updateConfigAsync: () => updateConfigAsync,
|
|
1263
1260
|
updateSection: () => updateSection,
|
|
1264
|
-
updateSectionAsync: () => updateSectionAsync
|
|
1265
|
-
writeSection: () => writeSection,
|
|
1266
|
-
writeSectionAsync: () => writeSectionAsync
|
|
1261
|
+
updateSectionAsync: () => updateSectionAsync
|
|
1267
1262
|
});
|
|
1268
1263
|
import { readFileSync as readFileSync5, statSync as statSync4, mkdirSync as mkdirSync5, existsSync as existsSync6 } from "fs";
|
|
1269
1264
|
import { join as join6, dirname as dirname6 } from "path";
|
|
@@ -1454,13 +1449,6 @@ function updateConfig(updater) {
|
|
|
1454
1449
|
});
|
|
1455
1450
|
return saved;
|
|
1456
1451
|
}
|
|
1457
|
-
function writeSection(section, data) {
|
|
1458
|
-
withConfigLock(() => {
|
|
1459
|
-
const all = readAllForRmW();
|
|
1460
|
-
all[section] = stripGeneratedMarker(data);
|
|
1461
|
-
writeAll(all);
|
|
1462
|
-
});
|
|
1463
|
-
}
|
|
1464
1452
|
function updateSection(section, updater) {
|
|
1465
1453
|
withConfigLock(() => {
|
|
1466
1454
|
const all = readAllForRmW();
|
|
@@ -1528,13 +1516,6 @@ function updateConfigAsync(updater) {
|
|
|
1528
1516
|
return saved;
|
|
1529
1517
|
});
|
|
1530
1518
|
}
|
|
1531
|
-
function writeSectionAsync(section, data) {
|
|
1532
|
-
return trackConfigWrite(() => withConfigLockAsync(async () => {
|
|
1533
|
-
const all = readAllForRmW();
|
|
1534
|
-
all[section] = stripGeneratedMarker(data);
|
|
1535
|
-
await writeAllAsync(all);
|
|
1536
|
-
}));
|
|
1537
|
-
}
|
|
1538
1519
|
function updateSectionAsync(section, updater) {
|
|
1539
1520
|
return trackConfigWrite(() => withConfigLockAsync(async () => {
|
|
1540
1521
|
const all = readAllForRmW();
|
|
@@ -1543,18 +1524,6 @@ function updateSectionAsync(section, updater) {
|
|
|
1543
1524
|
await writeAllAsync(all);
|
|
1544
1525
|
}));
|
|
1545
1526
|
}
|
|
1546
|
-
function readCapabilities() {
|
|
1547
|
-
const raw = readAll().capabilities;
|
|
1548
|
-
const out = { ...CAPABILITY_DEFAULTS };
|
|
1549
|
-
if (raw && typeof raw === "object") {
|
|
1550
|
-
if (raw.homeAccess === true) out.homeAccess = true;
|
|
1551
|
-
else if (raw.homeAccess === false) out.homeAccess = false;
|
|
1552
|
-
}
|
|
1553
|
-
return out;
|
|
1554
|
-
}
|
|
1555
|
-
function getCapabilities() {
|
|
1556
|
-
return readCapabilities();
|
|
1557
|
-
}
|
|
1558
1527
|
function isDiscordSnowflake(value) {
|
|
1559
1528
|
return /^\d{17,20}$/.test(String(value || "").trim());
|
|
1560
1529
|
}
|
|
@@ -2618,7 +2587,7 @@ import React21 from "react";
|
|
|
2618
2587
|
import { render } from "../../../vendor/ink/build/index.js";
|
|
2619
2588
|
import { closeSync as closeSync3, constants as fsConstants, createWriteStream as createWriteStream2, mkdirSync as mkdirSync9, openSync as openSync3, readSync } from "node:fs";
|
|
2620
2589
|
import { tmpdir as tmpdir3 } from "node:os";
|
|
2621
|
-
import { dirname as
|
|
2590
|
+
import { dirname as dirname12, join as join15 } from "node:path";
|
|
2622
2591
|
import { performance as performance3 } from "node:perf_hooks";
|
|
2623
2592
|
import { format } from "node:util";
|
|
2624
2593
|
|
|
@@ -6233,16 +6202,7 @@ var magenta = sgr("38;2;177;133;219");
|
|
|
6233
6202
|
var cyan = sgr("38;2;136;136;136");
|
|
6234
6203
|
var white = sgr("38;2;198;198;198");
|
|
6235
6204
|
var gray = sgr("38;2;198;198;198");
|
|
6236
|
-
var brightRed = sgr("38;2;220;70;88");
|
|
6237
6205
|
var brightGreen = sgr("38;2;0;185;88");
|
|
6238
|
-
var brightYellow = sgr("38;2;255;210;80");
|
|
6239
|
-
var brightBlue = sgr("38;2;93;173;255");
|
|
6240
|
-
var brightMagenta = sgr("38;2;190;150;230");
|
|
6241
|
-
var brightCyan = sgr("38;2;168;168;168");
|
|
6242
|
-
var brightWhite = sgr("38;2;220;220;220");
|
|
6243
|
-
var bgGray = sgr("100");
|
|
6244
|
-
var bgBlack = sgr("40");
|
|
6245
|
-
var bgBlue = sgr("44");
|
|
6246
6206
|
|
|
6247
6207
|
// src/tui/statusline-ansi-bridge.mjs
|
|
6248
6208
|
var RESET2 = "\x1B[0m";
|
|
@@ -12413,41 +12373,7 @@ function wrapExpandedResultLines(logicalLines, columns = 80, { isShell = false }
|
|
|
12413
12373
|
return out.length > 0 ? clampAll(out) : [" "];
|
|
12414
12374
|
}
|
|
12415
12375
|
|
|
12416
|
-
// src/tui/app/transcript-
|
|
12417
|
-
function positiveIntEnv(name, fallback) {
|
|
12418
|
-
const value = Number(process.env[name]);
|
|
12419
|
-
return Number.isFinite(value) && value > 0 ? Math.floor(value) : fallback;
|
|
12420
|
-
}
|
|
12421
|
-
var TRANSCRIPT_WINDOW_MIN_ITEMS = positiveIntEnv("MIXDOG_TUI_TRANSCRIPT_WINDOW_MIN_ITEMS", 12);
|
|
12422
|
-
var TRANSCRIPT_WINDOW_OVERSCAN_ROWS = positiveIntEnv("MIXDOG_TUI_TRANSCRIPT_OVERSCAN_ROWS", 16);
|
|
12423
|
-
var TRANSCRIPT_WINDOW_MAX_ITEMS = positiveIntEnv("MIXDOG_TUI_TRANSCRIPT_WINDOW_ITEMS", 80);
|
|
12424
|
-
var TRANSCRIPT_WINDOW_TAIL_OVERSCAN_ROWS = positiveIntEnv("MIXDOG_TUI_TRANSCRIPT_TAIL_OVERSCAN_ROWS", 4);
|
|
12425
|
-
var TRANSCRIPT_WINDOW_TAIL_MAX_ITEMS = positiveIntEnv("MIXDOG_TUI_TRANSCRIPT_WINDOW_TAIL_ITEMS", 20);
|
|
12426
|
-
var SELECTION_PAINT_INTERVAL_MS = positiveIntEnv("MIXDOG_TUI_SELECTION_PAINT_MS", 24);
|
|
12427
|
-
var SCROLL_COALESCE_MS = positiveIntEnv("MIXDOG_TUI_SCROLL_COALESCE_MS", 16);
|
|
12428
|
-
var PROMPT_HISTORY_LIMIT = 50;
|
|
12429
|
-
function boolEnvDefaultTrue(name) {
|
|
12430
|
-
const raw = process.env[name];
|
|
12431
|
-
if (raw == null) return true;
|
|
12432
|
-
const v = String(raw).trim().toLowerCase();
|
|
12433
|
-
return !(v === "0" || v === "false" || v === "off" || v === "no");
|
|
12434
|
-
}
|
|
12435
|
-
var TRANSCRIPT_MEASURED_ROWS = boolEnvDefaultTrue("MIXDOG_TUI_TRANSCRIPT_MEASURED");
|
|
12436
|
-
function selectionRectsEqual(a, b) {
|
|
12437
|
-
if (a === b) return true;
|
|
12438
|
-
if (!a || !b) return false;
|
|
12439
|
-
return a.mode === b.mode && a.x1 === b.x1 && a.y1 === b.y1 && a.x2 === b.x2 && a.y2 === b.y2 && a.clipY1 === b.clipY1 && a.clipY2 === b.clipY2 && a.captureText === b.captureText;
|
|
12440
|
-
}
|
|
12441
|
-
function shiftSelectionRectY(rect, deltaY) {
|
|
12442
|
-
const dy = Math.round(Number(deltaY) || 0);
|
|
12443
|
-
if (!rect || dy === 0) return rect || null;
|
|
12444
|
-
return { ...rect, y1: rect.y1 + dy, y2: rect.y2 + dy };
|
|
12445
|
-
}
|
|
12446
|
-
function comparePoints(a, b) {
|
|
12447
|
-
if (a.y !== b.y) return a.y < b.y ? -1 : 1;
|
|
12448
|
-
if (a.x !== b.x) return a.x < b.x ? -1 : 1;
|
|
12449
|
-
return 0;
|
|
12450
|
-
}
|
|
12376
|
+
// src/tui/app/transcript-row-estimate.mjs
|
|
12451
12377
|
function wrappedLineRows2(line, width) {
|
|
12452
12378
|
const text = String(line);
|
|
12453
12379
|
const full = displayWidth(text);
|
|
@@ -12746,6 +12672,42 @@ function estimateTranscriptItemRows(item, columns, toolOutputExpanded, attachedT
|
|
|
12746
12672
|
return 1;
|
|
12747
12673
|
}
|
|
12748
12674
|
}
|
|
12675
|
+
|
|
12676
|
+
// src/tui/app/transcript-window.mjs
|
|
12677
|
+
function positiveIntEnv(name, fallback) {
|
|
12678
|
+
const value = Number(process.env[name]);
|
|
12679
|
+
return Number.isFinite(value) && value > 0 ? Math.floor(value) : fallback;
|
|
12680
|
+
}
|
|
12681
|
+
var TRANSCRIPT_WINDOW_MIN_ITEMS = positiveIntEnv("MIXDOG_TUI_TRANSCRIPT_WINDOW_MIN_ITEMS", 12);
|
|
12682
|
+
var TRANSCRIPT_WINDOW_OVERSCAN_ROWS = positiveIntEnv("MIXDOG_TUI_TRANSCRIPT_OVERSCAN_ROWS", 16);
|
|
12683
|
+
var TRANSCRIPT_WINDOW_MAX_ITEMS = positiveIntEnv("MIXDOG_TUI_TRANSCRIPT_WINDOW_ITEMS", 80);
|
|
12684
|
+
var TRANSCRIPT_WINDOW_TAIL_OVERSCAN_ROWS = positiveIntEnv("MIXDOG_TUI_TRANSCRIPT_TAIL_OVERSCAN_ROWS", 4);
|
|
12685
|
+
var TRANSCRIPT_WINDOW_TAIL_MAX_ITEMS = positiveIntEnv("MIXDOG_TUI_TRANSCRIPT_WINDOW_TAIL_ITEMS", 20);
|
|
12686
|
+
var SELECTION_PAINT_INTERVAL_MS = positiveIntEnv("MIXDOG_TUI_SELECTION_PAINT_MS", 24);
|
|
12687
|
+
var SCROLL_COALESCE_MS = positiveIntEnv("MIXDOG_TUI_SCROLL_COALESCE_MS", 16);
|
|
12688
|
+
var PROMPT_HISTORY_LIMIT = 50;
|
|
12689
|
+
function boolEnvDefaultTrue(name) {
|
|
12690
|
+
const raw = process.env[name];
|
|
12691
|
+
if (raw == null) return true;
|
|
12692
|
+
const v = String(raw).trim().toLowerCase();
|
|
12693
|
+
return !(v === "0" || v === "false" || v === "off" || v === "no");
|
|
12694
|
+
}
|
|
12695
|
+
var TRANSCRIPT_MEASURED_ROWS = boolEnvDefaultTrue("MIXDOG_TUI_TRANSCRIPT_MEASURED");
|
|
12696
|
+
function selectionRectsEqual(a, b) {
|
|
12697
|
+
if (a === b) return true;
|
|
12698
|
+
if (!a || !b) return false;
|
|
12699
|
+
return a.mode === b.mode && a.x1 === b.x1 && a.y1 === b.y1 && a.x2 === b.x2 && a.y2 === b.y2 && a.clipY1 === b.clipY1 && a.clipY2 === b.clipY2 && a.captureText === b.captureText;
|
|
12700
|
+
}
|
|
12701
|
+
function shiftSelectionRectY(rect, deltaY) {
|
|
12702
|
+
const dy = Math.round(Number(deltaY) || 0);
|
|
12703
|
+
if (!rect || dy === 0) return rect || null;
|
|
12704
|
+
return { ...rect, y1: rect.y1 + dy, y2: rect.y2 + dy };
|
|
12705
|
+
}
|
|
12706
|
+
function comparePoints(a, b) {
|
|
12707
|
+
if (a.y !== b.y) return a.y < b.y ? -1 : 1;
|
|
12708
|
+
if (a.x !== b.x) return a.x < b.x ? -1 : 1;
|
|
12709
|
+
return 0;
|
|
12710
|
+
}
|
|
12749
12711
|
function lowerBound(values, target) {
|
|
12750
12712
|
let lo = 0;
|
|
12751
12713
|
let hi = values.length;
|
|
@@ -23672,11 +23634,8 @@ function App({ store, initialStatusLine = "", forceOnboarding = false }) {
|
|
|
23672
23634
|
|
|
23673
23635
|
// src/tui/engine.mjs
|
|
23674
23636
|
import { performance as performance2 } from "node:perf_hooks";
|
|
23675
|
-
import { mkdtempSync, readFileSync as
|
|
23676
|
-
import {
|
|
23677
|
-
import { tmpdir as tmpdir2 } from "node:os";
|
|
23678
|
-
import { basename as basename6, dirname as dirname10, join as join13 } from "node:path";
|
|
23679
|
-
import { Worker } from "node:worker_threads";
|
|
23637
|
+
import { mkdtempSync as mkdtempSync2, readFileSync as readFileSync11, readdirSync as readdirSync5, rmSync as rmSync4, statSync as statSync7, watch as watch2, writeFileSync as writeFileSync8 } from "node:fs";
|
|
23638
|
+
import { basename as basename7, dirname as dirname11, join as join14 } from "node:path";
|
|
23680
23639
|
|
|
23681
23640
|
// src/runtime/shared/tool-execution-contract.mjs
|
|
23682
23641
|
function clean2(value) {
|
|
@@ -29747,16 +29706,12 @@ function createLiveShare({
|
|
|
29747
29706
|
};
|
|
29748
29707
|
}
|
|
29749
29708
|
|
|
29750
|
-
// src/tui/engine.mjs
|
|
29751
|
-
|
|
29752
|
-
|
|
29753
|
-
|
|
29754
|
-
|
|
29755
|
-
}
|
|
29756
|
-
var LEAD_TURN_TIMEOUT_MS = (() => {
|
|
29757
|
-
const value = Number(process.env.MIXDOG_LEAD_TURN_TIMEOUT_MS);
|
|
29758
|
-
return Number.isFinite(value) && value > 0 ? Math.max(1e4, Math.round(value)) : 5 * 6e4;
|
|
29759
|
-
})();
|
|
29709
|
+
// src/tui/engine/transcript-spill.mjs
|
|
29710
|
+
import { mkdtempSync, readFileSync as readFileSync10, readdirSync as readdirSync4, rmSync as rmSync3, statSync as statSync6, watch, writeFileSync as writeFileSync7 } from "node:fs";
|
|
29711
|
+
import { randomUUID } from "node:crypto";
|
|
29712
|
+
import { tmpdir as tmpdir2 } from "node:os";
|
|
29713
|
+
import { basename as basename6, dirname as dirname10, join as join13 } from "node:path";
|
|
29714
|
+
import { Worker } from "node:worker_threads";
|
|
29760
29715
|
var TUI_DEBUG2 = /^(1|true|yes|on)$/i.test(String(process.env.MIXDOG_TUI_DEBUG || ""));
|
|
29761
29716
|
var tuiDebug = (msg) => {
|
|
29762
29717
|
if (!TUI_DEBUG2) return;
|
|
@@ -30238,6 +30193,17 @@ function createEngineItemMutators({
|
|
|
30238
30193
|
};
|
|
30239
30194
|
return { patchItem, settleStreamingTail };
|
|
30240
30195
|
}
|
|
30196
|
+
|
|
30197
|
+
// src/tui/engine.mjs
|
|
30198
|
+
var SESSION_RUNTIME_MODULE = import.meta.url.replace(/\\/g, "/").includes("/tui/dist/") ? "../../mixdog-session-runtime.mjs" : "../mixdog-session-runtime.mjs";
|
|
30199
|
+
var TOOL_APPROVAL_TIMEOUT_MS = (() => {
|
|
30200
|
+
const value = Number(process.env.MIXDOG_TOOL_APPROVAL_TIMEOUT_MS);
|
|
30201
|
+
return Number.isFinite(value) && value > 0 ? Math.max(1e3, Math.round(value)) : 12e4;
|
|
30202
|
+
})();
|
|
30203
|
+
var LEAD_TURN_TIMEOUT_MS = (() => {
|
|
30204
|
+
const value = Number(process.env.MIXDOG_LEAD_TURN_TIMEOUT_MS);
|
|
30205
|
+
return Number.isFinite(value) && value > 0 ? Math.max(1e4, Math.round(value)) : 5 * 6e4;
|
|
30206
|
+
})();
|
|
30241
30207
|
async function createEngineSession({
|
|
30242
30208
|
provider: providerName,
|
|
30243
30209
|
model,
|
|
@@ -30905,8 +30871,8 @@ async function createEngineSession({
|
|
|
30905
30871
|
try {
|
|
30906
30872
|
const spoolPath = String(runtime.pendingSpoolPath?.() || "");
|
|
30907
30873
|
if (spoolPath) {
|
|
30908
|
-
const spoolFile =
|
|
30909
|
-
spoolWatcher =
|
|
30874
|
+
const spoolFile = basename7(spoolPath);
|
|
30875
|
+
spoolWatcher = watch2(dirname11(spoolPath), { persistent: false }, (_event, filename) => {
|
|
30910
30876
|
if (filename && String(filename) !== spoolFile) return;
|
|
30911
30877
|
if (flags.disposed || spoolDebounce) return;
|
|
30912
30878
|
spoolDebounce = setTimeout(() => {
|
|
@@ -30975,7 +30941,7 @@ async function createEngineSession({
|
|
|
30975
30941
|
}
|
|
30976
30942
|
let mtime = 0;
|
|
30977
30943
|
try {
|
|
30978
|
-
mtime =
|
|
30944
|
+
mtime = statSync7(sessionPath(id)).mtimeMs || 0;
|
|
30979
30945
|
} catch {
|
|
30980
30946
|
return;
|
|
30981
30947
|
}
|
|
@@ -31223,7 +31189,7 @@ function scheduleHardExit(code = 0) {
|
|
|
31223
31189
|
timer2.unref?.();
|
|
31224
31190
|
}
|
|
31225
31191
|
function resolveTuiStderrLogPath() {
|
|
31226
|
-
return process.env.MIXDOG_TUI_STDERR_LOG ||
|
|
31192
|
+
return process.env.MIXDOG_TUI_STDERR_LOG || join15(process.env.MIXDOG_RUNTIME_ROOT || join15(tmpdir3(), "mixdog"), "mixdog-tui.stderr.log");
|
|
31227
31193
|
}
|
|
31228
31194
|
function ansiFg(rgb) {
|
|
31229
31195
|
const m = /rgb\((\d+),\s*(\d+),\s*(\d+)\)/.exec(String(rgb || ""));
|
|
@@ -31305,7 +31271,7 @@ function installTuiStderrGuard() {
|
|
|
31305
31271
|
const originalWrite = process.stderr.write.bind(process.stderr);
|
|
31306
31272
|
const logPath = resolveTuiStderrLogPath();
|
|
31307
31273
|
try {
|
|
31308
|
-
mkdirSync9(
|
|
31274
|
+
mkdirSync9(dirname12(logPath), { recursive: true });
|
|
31309
31275
|
} catch {
|
|
31310
31276
|
}
|
|
31311
31277
|
(0, import_mixdog_debug.rotateBoundedLog)(logPath, import_mixdog_debug.PLUGIN_LOG_MAX_BYTES, import_mixdog_debug.PLUGIN_LOG_KEEP_BYTES);
|
|
@@ -12,7 +12,7 @@ export function textBetweenTag(text, tag) {
|
|
|
12
12
|
return match ? match[1].trim() : '';
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
function stripSyntheticAgentTags(text) {
|
|
16
16
|
const value = String(text ?? '').trim();
|
|
17
17
|
const finalAnswer = textBetweenTag(value, 'final-answer');
|
|
18
18
|
if (finalAnswer) return finalAnswer;
|
|
@@ -24,7 +24,7 @@ export function stripSyntheticAgentTags(text) {
|
|
|
24
24
|
.trim();
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
function splitBridgeEnvelope(text) {
|
|
28
28
|
const value = String(text ?? '').trim();
|
|
29
29
|
if (!value) return { head: '', body: '' };
|
|
30
30
|
const match = /\n\s*\n/.exec(value);
|
|
@@ -35,7 +35,7 @@ export function splitBridgeEnvelope(text) {
|
|
|
35
35
|
};
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
function agentJobStatusText(parsed) {
|
|
39
39
|
if (!parsed) return '';
|
|
40
40
|
const parts = [];
|
|
41
41
|
if (parsed.status) parts.push(`status: ${parsed.status}`);
|
|
@@ -158,7 +158,7 @@ export function isStatusOnlyAgentCompletionNotification(text) {
|
|
|
158
158
|
return !(hasAgentResponseResultText(result) || hasAgentResponseResultText(text));
|
|
159
159
|
}
|
|
160
160
|
|
|
161
|
-
|
|
161
|
+
function hasAgentResponseResultText(text) {
|
|
162
162
|
const value = String(text || '').trim();
|
|
163
163
|
if (!value) return false;
|
|
164
164
|
if (/^status:\s*(?:running|pending|queued|completed|failed|cancelled|canceled)(?:\s*·\s*task_id:\s*\S+)?$/i.test(value)) return false;
|
|
@@ -166,7 +166,7 @@ export function hasAgentResponseResultText(text) {
|
|
|
166
166
|
return true;
|
|
167
167
|
}
|
|
168
168
|
|
|
169
|
-
|
|
169
|
+
function bracketField(text, name) {
|
|
170
170
|
const re = new RegExp(`^\\[${name}:\\s*([^\\]]*)\\]`, 'mi');
|
|
171
171
|
return re.exec(String(text ?? ''))?.[1]?.trim() || '';
|
|
172
172
|
}
|
|
@@ -63,7 +63,7 @@ export function executionCardKey(event, text, parsed) {
|
|
|
63
63
|
return `card:${executionId}:${hasBody}`;
|
|
64
64
|
}
|
|
65
65
|
|
|
66
|
-
|
|
66
|
+
function isExecutionNotification(event, text, parsed) {
|
|
67
67
|
const meta = event?.meta && typeof event.meta === 'object' ? event.meta : {};
|
|
68
68
|
if (meta.execution_id || meta.execution_surface) return true;
|
|
69
69
|
if (parseAgentResultEnvelope(text)) return true;
|
|
@@ -53,7 +53,7 @@ export function isSlashQueuedEntry(entry) {
|
|
|
53
53
|
return text.trim().startsWith('/');
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
|
|
56
|
+
function firstQueueLine(text) {
|
|
57
57
|
return String(text || '').split('\n').map((line) => line.trim()).find(Boolean) || '';
|
|
58
58
|
}
|
|
59
59
|
|
|
@@ -88,7 +88,7 @@ export function promptContentText(content) {
|
|
|
88
88
|
return String(content ?? '');
|
|
89
89
|
}
|
|
90
90
|
|
|
91
|
-
|
|
91
|
+
function timestampMs(value) {
|
|
92
92
|
if (value == null || value === '') return 0;
|
|
93
93
|
const n = Number(value);
|
|
94
94
|
if (Number.isFinite(n) && n > 0) return n;
|
|
@@ -96,7 +96,7 @@ export function timestampMs(value) {
|
|
|
96
96
|
return Number.isFinite(parsed) && parsed > 0 ? parsed : 0;
|
|
97
97
|
}
|
|
98
98
|
|
|
99
|
-
|
|
99
|
+
function hasModelVisibleConversation(session) {
|
|
100
100
|
const messages = Array.isArray(session?.messages) ? session.messages : [];
|
|
101
101
|
return messages.some((message) => {
|
|
102
102
|
const role = message?.role;
|
|
@@ -17,12 +17,11 @@
|
|
|
17
17
|
* The fixed timeout below is only a fallback ceiling for when no renderer ack is
|
|
18
18
|
* wired (or the renderer is idle) so a yield can never hang the turn.
|
|
19
19
|
*/
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
const RENDER_ACK_FALLBACK_MS = 32;
|
|
21
|
+
const RENDER_ACK_HANG_GUARD_MS = 250;
|
|
22
|
+
const RENDER_SETTLE_IDLE_MS = 64;
|
|
23
23
|
|
|
24
24
|
// Back-compat alias: previously the fixed wait duration, now the fallback only.
|
|
25
|
-
export const RENDER_THROTTLE_FLUSH_MS = RENDER_ACK_FALLBACK_MS;
|
|
26
25
|
|
|
27
26
|
let pendingRenderAcks = [];
|
|
28
27
|
let renderAckSeq = 0;
|
|
@@ -38,7 +37,7 @@ export const scheduleRenderFrameAck = () => {
|
|
|
38
37
|
setImmediate(() => notifyRenderFrame(seq));
|
|
39
38
|
};
|
|
40
39
|
|
|
41
|
-
|
|
40
|
+
const notifyRenderFrame = (seq = ++renderAckSeq) => {
|
|
42
41
|
if (pendingRenderAcks.length === 0) return;
|
|
43
42
|
const acks = pendingRenderAcks;
|
|
44
43
|
pendingRenderAcks = [];
|
|
@@ -58,7 +58,7 @@ export function restoredAssistantTranscriptItems(message, nextId) {
|
|
|
58
58
|
// tool_calls and the follow-up role:'tool' results, but resume used to drop
|
|
59
59
|
// both — a reopened session lost every tool marker (user bug). Rebuild one
|
|
60
60
|
// transcript tool item per call and attach its result by tool_call_id.
|
|
61
|
-
|
|
61
|
+
function restoredToolCallItems(message, nextId, pendingByCallId) {
|
|
62
62
|
const calls = Array.isArray(message?.tool_calls) ? message.tool_calls
|
|
63
63
|
: Array.isArray(message?.toolCalls) ? message.toolCalls : [];
|
|
64
64
|
const at = Number(message?.meta?.transcript?.at);
|
|
@@ -86,7 +86,7 @@ export function restoredToolCallItems(message, nextId, pendingByCallId) {
|
|
|
86
86
|
return items;
|
|
87
87
|
}
|
|
88
88
|
|
|
89
|
-
|
|
89
|
+
function attachRestoredToolResult(message, pendingByCallId) {
|
|
90
90
|
const callId = typeof message?.tool_call_id === 'string' && message.tool_call_id
|
|
91
91
|
? message.tool_call_id
|
|
92
92
|
: typeof message?.toolCallId === 'string' ? message.toolCallId : '';
|
|
@@ -177,7 +177,7 @@ function buildRestoredAggregateItem(members) {
|
|
|
177
177
|
// Runs of 1 keep the plain per-call card (its argument summary stays visible).
|
|
178
178
|
// Agent cards never merge on restore: the live rule scopes Agent grouping to
|
|
179
179
|
// a single provider batch, a boundary the stored history no longer carries.
|
|
180
|
-
|
|
180
|
+
function mergeRestoredToolItems(items) {
|
|
181
181
|
const merged = [];
|
|
182
182
|
let run = null; // { bucket, members: [{ item, category }] }
|
|
183
183
|
const flushRun = () => {
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
toolResultTerminalStatus,
|
|
14
14
|
} from '../../runtime/shared/tool-status.mjs';
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
const CANCELLED_RESULT_STATUS_LINE = '[status: cancelled]';
|
|
17
17
|
|
|
18
18
|
// Detect a shell command that RAN but exited non-zero (a process exit code)
|
|
19
19
|
// as opposed to a real tool-call failure (`[shell-tool-failed]`) or a
|
|
@@ -71,15 +71,15 @@ export function failureDetailText({ succeeded = 0, realErrors = 0, exitErrors =
|
|
|
71
71
|
return parts.join(' · ');
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
-
|
|
74
|
+
function normalizedResultStatusToken(value) {
|
|
75
75
|
return normalizeToolTerminalStatus(value);
|
|
76
76
|
}
|
|
77
77
|
|
|
78
|
-
|
|
78
|
+
function resultTextTerminalStatus(text) {
|
|
79
79
|
return toolResultTerminalStatus(text);
|
|
80
80
|
}
|
|
81
81
|
|
|
82
|
-
|
|
82
|
+
function itemHasKnownTerminalStatus(item, texts = []) {
|
|
83
83
|
const settled = (token) => token === 'completed' || token === 'failed' || token === 'cancelled';
|
|
84
84
|
if (settled(normalizedResultStatusToken(item?.args?.status))) return true;
|
|
85
85
|
for (const text of texts) {
|
|
@@ -129,7 +129,7 @@ export function groupedToolResultText(group) {
|
|
|
129
129
|
return '';
|
|
130
130
|
}
|
|
131
131
|
|
|
132
|
-
|
|
132
|
+
function firstErrorLine(text) {
|
|
133
133
|
const clean = toolErrorDisplay(text, 'tool');
|
|
134
134
|
if (clean) return clean;
|
|
135
135
|
for (const line of String(text || '').split('\n')) {
|
|
@@ -52,7 +52,7 @@ function compactToolResultObjectFallback(obj) {
|
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
-
|
|
55
|
+
function toolResultPartText(part, depth = 0) {
|
|
56
56
|
if (part == null) return '';
|
|
57
57
|
if (depth > TOOL_RESULT_PART_MAX_DEPTH) return '';
|
|
58
58
|
if (typeof part === 'string') return part;
|