@prestyj/cli 5.12.0 → 5.16.0
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 +51 -36
- package/assets/skills/bulletproof/SKILL.md +158 -0
- package/assets/skills/bulletproof/references/agent-surface.md +82 -0
- package/assets/skills/bulletproof/references/audit-protocol.md +147 -0
- package/assets/skills/bulletproof/references/platform-playbooks.md +176 -0
- package/assets/skills/bulletproof/references/provenance.md +45 -0
- package/assets/skills/bulletproof/references/secure-defaults.md +108 -0
- package/assets/skills/bulletproof/references/supply-chain.md +76 -0
- package/assets/skills/bulletproof/references/threat-landscape.md +74 -0
- package/assets/skills/bulletproof/references/verification.md +65 -0
- package/assets/skills/clarify/SKILL.md +30 -0
- package/assets/skills/code-review/SKILL.md +30 -0
- package/assets/skills/durable/SKILL.md +111 -0
- package/assets/skills/durable/references/backups-and-runtime.md +86 -0
- package/assets/skills/durable/references/migrations-and-schema.md +79 -0
- package/assets/skills/lean/SKILL.md +110 -0
- package/assets/skills/lean/references/memory-and-processes.md +98 -0
- package/assets/skills/lean/references/playbooks.md +107 -0
- package/assets/skills/root-cause/SKILL.md +36 -0
- package/assets/skills/shared-language/SKILL.md +30 -0
- package/assets/skills/tdd/SKILL.md +30 -0
- package/dist/app-sidecar.js +486 -95
- package/dist/app-sidecar.js.map +1 -1
- package/dist/chat-agents/research.d.ts +1 -1
- package/dist/chat-agents/research.d.ts.map +1 -1
- package/dist/chat-agents/research.js +1 -1
- package/dist/chat-agents/research.js.map +1 -1
- package/dist/cli/mcp.js +30 -10
- package/dist/cli/mcp.js.map +1 -1
- package/dist/cli/shared.d.ts.map +1 -1
- package/dist/cli/shared.js +2 -0
- package/dist/cli/shared.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +16 -7
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +12 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +16 -0
- package/dist/config.js.map +1 -1
- package/dist/core/agent-session.d.ts +65 -4
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +281 -22
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/agents.d.ts +2 -3
- package/dist/core/agents.d.ts.map +1 -1
- package/dist/core/agents.js +4 -5
- package/dist/core/agents.js.map +1 -1
- package/dist/core/api-benchmark.d.ts +1 -1
- package/dist/core/api-benchmark.js +2 -2
- package/dist/core/ask-user.d.ts +63 -0
- package/dist/core/ask-user.d.ts.map +1 -0
- package/dist/core/ask-user.js +40 -0
- package/dist/core/ask-user.js.map +1 -0
- package/dist/core/auth-providers.d.ts +6 -0
- package/dist/core/auth-providers.d.ts.map +1 -1
- package/dist/core/auth-providers.js +30 -24
- package/dist/core/auth-providers.js.map +1 -1
- package/dist/core/bundled-agents.d.ts.map +1 -1
- package/dist/core/bundled-agents.js +17 -5
- package/dist/core/bundled-agents.js.map +1 -1
- package/dist/core/context-limits.d.ts +35 -0
- package/dist/core/context-limits.d.ts.map +1 -0
- package/dist/core/context-limits.js +35 -0
- package/dist/core/context-limits.js.map +1 -0
- package/dist/core/env-delta.d.ts +27 -0
- package/dist/core/env-delta.d.ts.map +1 -0
- package/dist/core/env-delta.js +65 -0
- package/dist/core/env-delta.js.map +1 -0
- package/dist/core/event-bus.d.ts +12 -2
- package/dist/core/event-bus.d.ts.map +1 -1
- package/dist/core/event-bus.js +1 -0
- package/dist/core/event-bus.js.map +1 -1
- package/dist/core/goal-worker.js +1 -1
- package/dist/core/goal-worker.js.map +1 -1
- package/dist/core/hashline-edit-benchmark.d.ts +2 -0
- package/dist/core/hashline-edit-benchmark.d.ts.map +1 -1
- package/dist/core/hashline-edit-benchmark.js +5 -1
- package/dist/core/hashline-edit-benchmark.js.map +1 -1
- package/dist/core/lsp/edit-telemetry.d.ts +27 -0
- package/dist/core/lsp/edit-telemetry.d.ts.map +1 -0
- package/dist/core/lsp/edit-telemetry.js +50 -0
- package/dist/core/lsp/edit-telemetry.js.map +1 -0
- package/dist/core/lsp/manager.d.ts +24 -1
- package/dist/core/lsp/manager.d.ts.map +1 -1
- package/dist/core/lsp/manager.js +53 -2
- package/dist/core/lsp/manager.js.map +1 -1
- package/dist/core/mcp/client.js +1 -1
- package/dist/core/mcp/client.js.map +1 -1
- package/dist/core/mcp/content.d.ts +5 -0
- package/dist/core/mcp/content.d.ts.map +1 -1
- package/dist/core/mcp/content.js +20 -2
- package/dist/core/mcp/content.js.map +1 -1
- package/dist/core/mcp/defaults.d.ts +7 -3
- package/dist/core/mcp/defaults.d.ts.map +1 -1
- package/dist/core/mcp/defaults.js +19 -14
- package/dist/core/mcp/defaults.js.map +1 -1
- package/dist/core/mcp/deferred-catalog.d.ts +9 -0
- package/dist/core/mcp/deferred-catalog.d.ts.map +1 -1
- package/dist/core/mcp/deferred-catalog.js +15 -1
- package/dist/core/mcp/deferred-catalog.js.map +1 -1
- package/dist/core/mcp/elicitation-bridge.d.ts.map +1 -1
- package/dist/core/mcp/elicitation-bridge.js +12 -28
- package/dist/core/mcp/elicitation-bridge.js.map +1 -1
- package/dist/core/mcp/shared-pool.d.ts +2 -2
- package/dist/core/mcp/shared-pool.js +2 -2
- package/dist/core/nolan-prompt.d.ts +1 -1
- package/dist/core/nolan-prompt.js +16 -8
- package/dist/core/nolan-prompt.js.map +1 -1
- package/dist/core/parked-requests.d.ts +44 -0
- package/dist/core/parked-requests.d.ts.map +1 -0
- package/dist/core/parked-requests.js +34 -0
- package/dist/core/parked-requests.js.map +1 -0
- package/dist/core/platform-clis.d.ts +16 -0
- package/dist/core/platform-clis.d.ts.map +1 -0
- package/dist/core/platform-clis.js +299 -0
- package/dist/core/platform-clis.js.map +1 -0
- package/dist/core/process-manager.d.ts +50 -1
- package/dist/core/process-manager.d.ts.map +1 -1
- package/dist/core/process-manager.js +155 -4
- package/dist/core/process-manager.js.map +1 -1
- package/dist/core/prompt-commands.d.ts.map +1 -1
- package/dist/core/prompt-commands.js +75 -37
- package/dist/core/prompt-commands.js.map +1 -1
- package/dist/core/sandbox.d.ts +17 -1
- package/dist/core/sandbox.d.ts.map +1 -1
- package/dist/core/sandbox.js +140 -9
- package/dist/core/sandbox.js.map +1 -1
- package/dist/core/session-manager.d.ts +18 -1
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +62 -23
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/settings-manager.d.ts +22 -2
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +64 -0
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/skills.d.ts +16 -1
- package/dist/core/skills.d.ts.map +1 -1
- package/dist/core/skills.js +38 -6
- package/dist/core/skills.js.map +1 -1
- package/dist/core/steroids.d.ts +59 -0
- package/dist/core/steroids.d.ts.map +1 -0
- package/dist/core/steroids.js +227 -0
- package/dist/core/steroids.js.map +1 -0
- package/dist/core/subagent-manager.d.ts +17 -0
- package/dist/core/subagent-manager.d.ts.map +1 -1
- package/dist/core/subagent-manager.js +92 -1
- package/dist/core/subagent-manager.js.map +1 -1
- package/dist/core/subagent-turn-record.d.ts +17 -0
- package/dist/core/subagent-turn-record.d.ts.map +1 -0
- package/dist/core/subagent-turn-record.js +82 -0
- package/dist/core/subagent-turn-record.js.map +1 -0
- package/dist/core/verification-gate.d.ts +123 -0
- package/dist/core/verification-gate.d.ts.map +1 -0
- package/dist/core/verification-gate.js +446 -0
- package/dist/core/verification-gate.js.map +1 -0
- package/dist/core/workspace-guard.d.ts +6 -0
- package/dist/core/workspace-guard.d.ts.map +1 -1
- package/dist/core/workspace-guard.js +58 -7
- package/dist/core/workspace-guard.js.map +1 -1
- package/dist/hf-pull.d.ts +102 -0
- package/dist/hf-pull.d.ts.map +1 -0
- package/dist/hf-pull.js +225 -0
- package/dist/hf-pull.js.map +1 -0
- package/dist/modes/json-mode.d.ts +2 -2
- package/dist/modes/json-mode.d.ts.map +1 -1
- package/dist/modes/json-mode.js +2 -8
- package/dist/modes/json-mode.js.map +1 -1
- package/dist/modes/subagent-worker-mode.d.ts.map +1 -1
- package/dist/modes/subagent-worker-mode.js +66 -18
- package/dist/modes/subagent-worker-mode.js.map +1 -1
- package/dist/system-prompt.d.ts +5 -2
- package/dist/system-prompt.d.ts.map +1 -1
- package/dist/system-prompt.js +136 -36
- package/dist/system-prompt.js.map +1 -1
- package/dist/tools/ask-user.d.ts +35 -0
- package/dist/tools/ask-user.d.ts.map +1 -0
- package/dist/tools/ask-user.js +157 -0
- package/dist/tools/ask-user.js.map +1 -0
- package/dist/tools/bash.d.ts +4 -0
- package/dist/tools/bash.d.ts.map +1 -1
- package/dist/tools/bash.js +63 -4
- package/dist/tools/bash.js.map +1 -1
- package/dist/tools/edit.d.ts +2 -1
- package/dist/tools/edit.d.ts.map +1 -1
- package/dist/tools/edit.js +58 -9
- package/dist/tools/edit.js.map +1 -1
- package/dist/tools/index.d.ts +9 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +8 -2
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/operations.d.ts +48 -0
- package/dist/tools/operations.d.ts.map +1 -1
- package/dist/tools/operations.js +92 -2
- package/dist/tools/operations.js.map +1 -1
- package/dist/tools/path-utils.d.ts +28 -1
- package/dist/tools/path-utils.d.ts.map +1 -1
- package/dist/tools/path-utils.js +44 -2
- package/dist/tools/path-utils.js.map +1 -1
- package/dist/tools/prompt-hints.d.ts.map +1 -1
- package/dist/tools/prompt-hints.js +8 -6
- package/dist/tools/prompt-hints.js.map +1 -1
- package/dist/tools/read-only-bash.d.ts +6 -0
- package/dist/tools/read-only-bash.d.ts.map +1 -1
- package/dist/tools/read-only-bash.js +168 -9
- package/dist/tools/read-only-bash.js.map +1 -1
- package/dist/tools/read.d.ts.map +1 -1
- package/dist/tools/read.js +35 -3
- package/dist/tools/read.js.map +1 -1
- package/dist/tools/skill.d.ts +3 -2
- package/dist/tools/skill.d.ts.map +1 -1
- package/dist/tools/skill.js +11 -7
- package/dist/tools/skill.js.map +1 -1
- package/dist/tools/steroids.d.ts +46 -0
- package/dist/tools/steroids.d.ts.map +1 -0
- package/dist/tools/steroids.js +233 -0
- package/dist/tools/steroids.js.map +1 -0
- package/dist/tools/subagent-shared.d.ts +1 -1
- package/dist/tools/subagent-shared.d.ts.map +1 -1
- package/dist/tools/subagent-shared.js +1 -4
- package/dist/tools/subagent-shared.js.map +1 -1
- package/dist/tools/subagent.js +1 -1
- package/dist/tools/subagent.js.map +1 -1
- package/dist/tools/tool-search.d.ts +2 -1
- package/dist/tools/tool-search.d.ts.map +1 -1
- package/dist/tools/tool-search.js +28 -3
- package/dist/tools/tool-search.js.map +1 -1
- package/dist/tools/tool-tiers.d.ts.map +1 -1
- package/dist/tools/tool-tiers.js +5 -0
- package/dist/tools/tool-tiers.js.map +1 -1
- package/dist/tools/web-fetch.d.ts +7 -0
- package/dist/tools/web-fetch.d.ts.map +1 -1
- package/dist/tools/web-fetch.js +308 -20
- package/dist/tools/web-fetch.js.map +1 -1
- package/dist/tools/write.d.ts +1 -1
- package/dist/tools/write.d.ts.map +1 -1
- package/dist/tools/write.js +1 -1
- package/dist/tools/write.js.map +1 -1
- package/dist/ui/App.d.ts +3 -0
- package/dist/ui/App.d.ts.map +1 -1
- package/dist/ui/App.js +56 -30
- package/dist/ui/App.js.map +1 -1
- package/dist/ui/app-items.d.ts +5 -0
- package/dist/ui/app-items.d.ts.map +1 -1
- package/dist/ui/app-items.js +5 -0
- package/dist/ui/app-items.js.map +1 -1
- package/dist/ui/components/Footer.js +1 -1
- package/dist/ui/components/Footer.js.map +1 -1
- package/dist/ui/components/ModelSelector.d.ts.map +1 -1
- package/dist/ui/components/ModelSelector.js +1 -0
- package/dist/ui/components/ModelSelector.js.map +1 -1
- package/dist/ui/components/ToolExecution.d.ts.map +1 -1
- package/dist/ui/components/ToolExecution.js +10 -3
- package/dist/ui/components/ToolExecution.js.map +1 -1
- package/dist/ui/hooks/useAgentLoop.d.ts +1 -1
- package/dist/ui/hooks/useAgentLoop.d.ts.map +1 -1
- package/dist/ui/hooks/useAgentLoop.js.map +1 -1
- package/dist/ui/login.d.ts.map +1 -1
- package/dist/ui/login.js +5 -33
- package/dist/ui/login.js.map +1 -1
- package/dist/ui/prompt-routing.d.ts +2 -2
- package/dist/ui/prompt-routing.d.ts.map +1 -1
- package/dist/ui/prompt-routing.js +20 -8
- package/dist/ui/prompt-routing.js.map +1 -1
- package/dist/ui/submit-prompt-command.d.ts.map +1 -1
- package/dist/ui/submit-prompt-command.js +1 -1
- package/dist/ui/submit-prompt-command.js.map +1 -1
- package/dist/ui/terminal-history.js +4 -2
- package/dist/ui/terminal-history.js.map +1 -1
- package/dist/ui/tool-group-summary.d.ts +2 -0
- package/dist/ui/tool-group-summary.d.ts.map +1 -1
- package/dist/ui/tool-group-summary.js +11 -25
- package/dist/ui/tool-group-summary.js.map +1 -1
- package/dist/ui/tool-line-summary.d.ts.map +1 -1
- package/dist/ui/tool-line-summary.js +12 -9
- package/dist/ui/tool-line-summary.js.map +1 -1
- package/dist/ui/transcript/tool-presentation.d.ts.map +1 -1
- package/dist/ui/transcript/tool-presentation.js +2 -7
- package/dist/ui/transcript/tool-presentation.js.map +1 -1
- package/dist/ui/utils/text-utils.d.ts +0 -6
- package/dist/ui/utils/text-utils.d.ts.map +1 -1
- package/dist/ui/utils/text-utils.js +8 -3
- package/dist/ui/utils/text-utils.js.map +1 -1
- package/dist/utils/image.d.ts.map +1 -1
- package/dist/utils/image.js.map +1 -1
- package/dist/utils/text.d.ts +41 -0
- package/dist/utils/text.d.ts.map +1 -1
- package/dist/utils/text.js +46 -0
- package/dist/utils/text.js.map +1 -1
- package/package.json +7 -8
- package/dist/app-sidecar-auth-broadcast.test.d.ts +0 -2
- package/dist/app-sidecar-auth-broadcast.test.d.ts.map +0 -1
- package/dist/app-sidecar-auth-broadcast.test.js +0 -348
- package/dist/app-sidecar-auth-broadcast.test.js.map +0 -1
- package/dist/app-sidecar-sessions.test.d.ts +0 -2
- package/dist/app-sidecar-sessions.test.d.ts.map +0 -1
- package/dist/app-sidecar-sessions.test.js +0 -178
- package/dist/app-sidecar-sessions.test.js.map +0 -1
- package/dist/chat-agents/general.test.d.ts +0 -2
- package/dist/chat-agents/general.test.d.ts.map +0 -1
- package/dist/chat-agents/general.test.js +0 -52
- package/dist/chat-agents/general.test.js.map +0 -1
- package/dist/chat-agents/jiwa.test.d.ts +0 -2
- package/dist/chat-agents/jiwa.test.d.ts.map +0 -1
- package/dist/chat-agents/jiwa.test.js +0 -66
- package/dist/chat-agents/jiwa.test.js.map +0 -1
- package/dist/chat-agents/memory.test.d.ts +0 -2
- package/dist/chat-agents/memory.test.d.ts.map +0 -1
- package/dist/chat-agents/memory.test.js +0 -165
- package/dist/chat-agents/memory.test.js.map +0 -1
- package/dist/chat-agents/specialists.test.d.ts +0 -2
- package/dist/chat-agents/specialists.test.d.ts.map +0 -1
- package/dist/chat-agents/specialists.test.js +0 -98
- package/dist/chat-agents/specialists.test.js.map +0 -1
- package/dist/cli/command-routing.test.d.ts +0 -2
- package/dist/cli/command-routing.test.d.ts.map +0 -1
- package/dist/cli/command-routing.test.js +0 -61
- package/dist/cli/command-routing.test.js.map +0 -1
- package/dist/config.test.d.ts +0 -2
- package/dist/config.test.d.ts.map +0 -1
- package/dist/config.test.js +0 -123
- package/dist/config.test.js.map +0 -1
- package/dist/core/agent-mcp-passthrough.test.d.ts +0 -2
- package/dist/core/agent-mcp-passthrough.test.d.ts.map +0 -1
- package/dist/core/agent-mcp-passthrough.test.js +0 -61
- package/dist/core/agent-mcp-passthrough.test.js.map +0 -1
- package/dist/core/agent-notifications.test.d.ts +0 -2
- package/dist/core/agent-notifications.test.d.ts.map +0 -1
- package/dist/core/agent-notifications.test.js +0 -97
- package/dist/core/agent-notifications.test.js.map +0 -1
- package/dist/core/agent-session-add-dir.test.d.ts +0 -2
- package/dist/core/agent-session-add-dir.test.d.ts.map +0 -1
- package/dist/core/agent-session-add-dir.test.js +0 -110
- package/dist/core/agent-session-add-dir.test.js.map +0 -1
- package/dist/core/agent-session-checkpoint-flush.test.d.ts +0 -2
- package/dist/core/agent-session-checkpoint-flush.test.d.ts.map +0 -1
- package/dist/core/agent-session-checkpoint-flush.test.js +0 -201
- package/dist/core/agent-session-checkpoint-flush.test.js.map +0 -1
- package/dist/core/agent-session-compaction.test.d.ts +0 -2
- package/dist/core/agent-session-compaction.test.d.ts.map +0 -1
- package/dist/core/agent-session-compaction.test.js +0 -1096
- package/dist/core/agent-session-compaction.test.js.map +0 -1
- package/dist/core/agent-session-crash-durability.test.d.ts +0 -2
- package/dist/core/agent-session-crash-durability.test.d.ts.map +0 -1
- package/dist/core/agent-session-crash-durability.test.js +0 -102
- package/dist/core/agent-session-crash-durability.test.js.map +0 -1
- package/dist/core/agent-session-marker-anchors.test.d.ts +0 -2
- package/dist/core/agent-session-marker-anchors.test.d.ts.map +0 -1
- package/dist/core/agent-session-marker-anchors.test.js +0 -326
- package/dist/core/agent-session-marker-anchors.test.js.map +0 -1
- package/dist/core/agent-session-memory-tail.test.d.ts +0 -2
- package/dist/core/agent-session-memory-tail.test.d.ts.map +0 -1
- package/dist/core/agent-session-memory-tail.test.js +0 -119
- package/dist/core/agent-session-memory-tail.test.js.map +0 -1
- package/dist/core/agent-session-model-switch.test.d.ts +0 -2
- package/dist/core/agent-session-model-switch.test.d.ts.map +0 -1
- package/dist/core/agent-session-model-switch.test.js +0 -161
- package/dist/core/agent-session-model-switch.test.js.map +0 -1
- package/dist/core/agent-session-notifications.test.d.ts +0 -2
- package/dist/core/agent-session-notifications.test.d.ts.map +0 -1
- package/dist/core/agent-session-notifications.test.js +0 -114
- package/dist/core/agent-session-notifications.test.js.map +0 -1
- package/dist/core/agent-session-process-gate.test.d.ts +0 -2
- package/dist/core/agent-session-process-gate.test.d.ts.map +0 -1
- package/dist/core/agent-session-process-gate.test.js +0 -98
- package/dist/core/agent-session-process-gate.test.js.map +0 -1
- package/dist/core/agent-session-queue.test.d.ts +0 -2
- package/dist/core/agent-session-queue.test.d.ts.map +0 -1
- package/dist/core/agent-session-queue.test.js +0 -184
- package/dist/core/agent-session-queue.test.js.map +0 -1
- package/dist/core/agent-session-review-coverage.test.d.ts +0 -2
- package/dist/core/agent-session-review-coverage.test.d.ts.map +0 -1
- package/dist/core/agent-session-review-coverage.test.js +0 -140
- package/dist/core/agent-session-review-coverage.test.js.map +0 -1
- package/dist/core/agent-session-slash-restore.test.d.ts +0 -2
- package/dist/core/agent-session-slash-restore.test.d.ts.map +0 -1
- package/dist/core/agent-session-slash-restore.test.js +0 -121
- package/dist/core/agent-session-slash-restore.test.js.map +0 -1
- package/dist/core/agent-session-subagent-policy.test.d.ts +0 -2
- package/dist/core/agent-session-subagent-policy.test.d.ts.map +0 -1
- package/dist/core/agent-session-subagent-policy.test.js +0 -40
- package/dist/core/agent-session-subagent-policy.test.js.map +0 -1
- package/dist/core/agent-session-tool-result-policy.test.d.ts +0 -2
- package/dist/core/agent-session-tool-result-policy.test.d.ts.map +0 -1
- package/dist/core/agent-session-tool-result-policy.test.js +0 -25
- package/dist/core/agent-session-tool-result-policy.test.js.map +0 -1
- package/dist/core/agent-session-tool-tiers.test.d.ts +0 -2
- package/dist/core/agent-session-tool-tiers.test.d.ts.map +0 -1
- package/dist/core/agent-session-tool-tiers.test.js +0 -138
- package/dist/core/agent-session-tool-tiers.test.js.map +0 -1
- package/dist/core/agent-tools-allowlist.test.d.ts +0 -2
- package/dist/core/agent-tools-allowlist.test.d.ts.map +0 -1
- package/dist/core/agent-tools-allowlist.test.js +0 -74
- package/dist/core/agent-tools-allowlist.test.js.map +0 -1
- package/dist/core/agents.test.d.ts +0 -2
- package/dist/core/agents.test.d.ts.map +0 -1
- package/dist/core/agents.test.js +0 -147
- package/dist/core/agents.test.js.map +0 -1
- package/dist/core/auto-update.test.d.ts +0 -2
- package/dist/core/auto-update.test.d.ts.map +0 -1
- package/dist/core/auto-update.test.js +0 -204
- package/dist/core/auto-update.test.js.map +0 -1
- package/dist/core/autopilot-cycle.test.d.ts +0 -2
- package/dist/core/autopilot-cycle.test.d.ts.map +0 -1
- package/dist/core/autopilot-cycle.test.js +0 -375
- package/dist/core/autopilot-cycle.test.js.map +0 -1
- package/dist/core/autopilot-gate.test.d.ts +0 -2
- package/dist/core/autopilot-gate.test.d.ts.map +0 -1
- package/dist/core/autopilot-gate.test.js +0 -295
- package/dist/core/autopilot-gate.test.js.map +0 -1
- package/dist/core/autopilot-verdict.test.d.ts +0 -2
- package/dist/core/autopilot-verdict.test.d.ts.map +0 -1
- package/dist/core/autopilot-verdict.test.js +0 -153
- package/dist/core/autopilot-verdict.test.js.map +0 -1
- package/dist/core/checkpoint-store.test.d.ts +0 -2
- package/dist/core/checkpoint-store.test.d.ts.map +0 -1
- package/dist/core/checkpoint-store.test.js +0 -111
- package/dist/core/checkpoint-store.test.js.map +0 -1
- package/dist/core/code-retrieval-chunkers.test.d.ts +0 -2
- package/dist/core/code-retrieval-chunkers.test.d.ts.map +0 -1
- package/dist/core/code-retrieval-chunkers.test.js +0 -203
- package/dist/core/code-retrieval-chunkers.test.js.map +0 -1
- package/dist/core/compaction/active-context.test.d.ts +0 -2
- package/dist/core/compaction/active-context.test.d.ts.map +0 -1
- package/dist/core/compaction/active-context.test.js +0 -57
- package/dist/core/compaction/active-context.test.js.map +0 -1
- package/dist/core/compaction/compactor.test.d.ts +0 -2
- package/dist/core/compaction/compactor.test.d.ts.map +0 -1
- package/dist/core/compaction/compactor.test.js +0 -1072
- package/dist/core/compaction/compactor.test.js.map +0 -1
- package/dist/core/compaction/policy.test.d.ts +0 -2
- package/dist/core/compaction/policy.test.d.ts.map +0 -1
- package/dist/core/compaction/policy.test.js +0 -35
- package/dist/core/compaction/policy.test.js.map +0 -1
- package/dist/core/compaction/query-aware-selector.test.d.ts +0 -2
- package/dist/core/compaction/query-aware-selector.test.d.ts.map +0 -1
- package/dist/core/compaction/query-aware-selector.test.js +0 -96
- package/dist/core/compaction/query-aware-selector.test.js.map +0 -1
- package/dist/core/compaction/token-estimator.test.d.ts +0 -2
- package/dist/core/compaction/token-estimator.test.d.ts.map +0 -1
- package/dist/core/compaction/token-estimator.test.js +0 -283
- package/dist/core/compaction/token-estimator.test.js.map +0 -1
- package/dist/core/compaction/tool-result-pruner.test.d.ts +0 -2
- package/dist/core/compaction/tool-result-pruner.test.d.ts.map +0 -1
- package/dist/core/compaction/tool-result-pruner.test.js +0 -320
- package/dist/core/compaction/tool-result-pruner.test.js.map +0 -1
- package/dist/core/continue-replay-inventory.test.d.ts +0 -2
- package/dist/core/continue-replay-inventory.test.d.ts.map +0 -1
- package/dist/core/continue-replay-inventory.test.js +0 -42
- package/dist/core/continue-replay-inventory.test.js.map +0 -1
- package/dist/core/encode-cwd.test.d.ts +0 -2
- package/dist/core/encode-cwd.test.d.ts.map +0 -1
- package/dist/core/encode-cwd.test.js +0 -80
- package/dist/core/encode-cwd.test.js.map +0 -1
- package/dist/core/extensions/plugin-bundles.test.d.ts +0 -2
- package/dist/core/extensions/plugin-bundles.test.d.ts.map +0 -1
- package/dist/core/extensions/plugin-bundles.test.js +0 -110
- package/dist/core/extensions/plugin-bundles.test.js.map +0 -1
- package/dist/core/foreign-session-import.test.d.ts +0 -2
- package/dist/core/foreign-session-import.test.d.ts.map +0 -1
- package/dist/core/foreign-session-import.test.js +0 -220
- package/dist/core/foreign-session-import.test.js.map +0 -1
- package/dist/core/goal-controller.test.d.ts +0 -2
- package/dist/core/goal-controller.test.d.ts.map +0 -1
- package/dist/core/goal-controller.test.js +0 -784
- package/dist/core/goal-controller.test.js.map +0 -1
- package/dist/core/goal-lifecycle-smoke.test.d.ts +0 -2
- package/dist/core/goal-lifecycle-smoke.test.d.ts.map +0 -1
- package/dist/core/goal-lifecycle-smoke.test.js +0 -248
- package/dist/core/goal-lifecycle-smoke.test.js.map +0 -1
- package/dist/core/goal-prerequisites.test.d.ts +0 -2
- package/dist/core/goal-prerequisites.test.d.ts.map +0 -1
- package/dist/core/goal-prerequisites.test.js +0 -118
- package/dist/core/goal-prerequisites.test.js.map +0 -1
- package/dist/core/goal-store.test.d.ts +0 -2
- package/dist/core/goal-store.test.d.ts.map +0 -1
- package/dist/core/goal-store.test.js +0 -398
- package/dist/core/goal-store.test.js.map +0 -1
- package/dist/core/goal-verifier.test.d.ts +0 -2
- package/dist/core/goal-verifier.test.d.ts.map +0 -1
- package/dist/core/goal-verifier.test.js +0 -131
- package/dist/core/goal-verifier.test.js.map +0 -1
- package/dist/core/goal-worker-dev-server-lifecycle.test.d.ts +0 -2
- package/dist/core/goal-worker-dev-server-lifecycle.test.d.ts.map +0 -1
- package/dist/core/goal-worker-dev-server-lifecycle.test.js +0 -68
- package/dist/core/goal-worker-dev-server-lifecycle.test.js.map +0 -1
- package/dist/core/goal-worker.test.d.ts +0 -2
- package/dist/core/goal-worker.test.d.ts.map +0 -1
- package/dist/core/goal-worker.test.js +0 -269
- package/dist/core/goal-worker.test.js.map +0 -1
- package/dist/core/hashline-edit-benchmark.test.d.ts +0 -2
- package/dist/core/hashline-edit-benchmark.test.d.ts.map +0 -1
- package/dist/core/hashline-edit-benchmark.test.js +0 -190
- package/dist/core/hashline-edit-benchmark.test.js.map +0 -1
- package/dist/core/ideal-review.test.d.ts +0 -2
- package/dist/core/ideal-review.test.d.ts.map +0 -1
- package/dist/core/ideal-review.test.js +0 -242
- package/dist/core/ideal-review.test.js.map +0 -1
- package/dist/core/input-normalization.test.d.ts +0 -2
- package/dist/core/input-normalization.test.d.ts.map +0 -1
- package/dist/core/input-normalization.test.js +0 -75
- package/dist/core/input-normalization.test.js.map +0 -1
- package/dist/core/json-mode-flag-parity.test.d.ts +0 -2
- package/dist/core/json-mode-flag-parity.test.d.ts.map +0 -1
- package/dist/core/json-mode-flag-parity.test.js +0 -66
- package/dist/core/json-mode-flag-parity.test.js.map +0 -1
- package/dist/core/language-detector.test.d.ts +0 -2
- package/dist/core/language-detector.test.d.ts.map +0 -1
- package/dist/core/language-detector.test.js +0 -109
- package/dist/core/language-detector.test.js.map +0 -1
- package/dist/core/local-endpoint-store.test.d.ts +0 -2
- package/dist/core/local-endpoint-store.test.d.ts.map +0 -1
- package/dist/core/local-endpoint-store.test.js +0 -131
- package/dist/core/local-endpoint-store.test.js.map +0 -1
- package/dist/core/loop-breaker.test.d.ts +0 -2
- package/dist/core/loop-breaker.test.d.ts.map +0 -1
- package/dist/core/loop-breaker.test.js +0 -238
- package/dist/core/loop-breaker.test.js.map +0 -1
- package/dist/core/lsp/client-navigation.test.d.ts +0 -2
- package/dist/core/lsp/client-navigation.test.d.ts.map +0 -1
- package/dist/core/lsp/client-navigation.test.js +0 -135
- package/dist/core/lsp/client-navigation.test.js.map +0 -1
- package/dist/core/lsp/format.test.d.ts +0 -2
- package/dist/core/lsp/format.test.d.ts.map +0 -1
- package/dist/core/lsp/format.test.js +0 -56
- package/dist/core/lsp/format.test.js.map +0 -1
- package/dist/core/lsp/integration.test.d.ts +0 -2
- package/dist/core/lsp/integration.test.d.ts.map +0 -1
- package/dist/core/lsp/integration.test.js +0 -60
- package/dist/core/lsp/integration.test.js.map +0 -1
- package/dist/core/lsp/jsonrpc.test.d.ts +0 -2
- package/dist/core/lsp/jsonrpc.test.d.ts.map +0 -1
- package/dist/core/lsp/jsonrpc.test.js +0 -127
- package/dist/core/lsp/jsonrpc.test.js.map +0 -1
- package/dist/core/lsp/manager-navigation.test.d.ts +0 -2
- package/dist/core/lsp/manager-navigation.test.d.ts.map +0 -1
- package/dist/core/lsp/manager-navigation.test.js +0 -121
- package/dist/core/lsp/manager-navigation.test.js.map +0 -1
- package/dist/core/lsp/manager.test.d.ts +0 -2
- package/dist/core/lsp/manager.test.d.ts.map +0 -1
- package/dist/core/lsp/manager.test.js +0 -220
- package/dist/core/lsp/manager.test.js.map +0 -1
- package/dist/core/lsp/pool.test.d.ts +0 -2
- package/dist/core/lsp/pool.test.d.ts.map +0 -1
- package/dist/core/lsp/pool.test.js +0 -286
- package/dist/core/lsp/pool.test.js.map +0 -1
- package/dist/core/lsp/servers.test.d.ts +0 -2
- package/dist/core/lsp/servers.test.d.ts.map +0 -1
- package/dist/core/lsp/servers.test.js +0 -67
- package/dist/core/lsp/servers.test.js.map +0 -1
- package/dist/core/lsp/uri.test.d.ts +0 -2
- package/dist/core/lsp/uri.test.d.ts.map +0 -1
- package/dist/core/lsp/uri.test.js +0 -56
- package/dist/core/lsp/uri.test.js.map +0 -1
- package/dist/core/lsp/windows.test.d.ts +0 -2
- package/dist/core/lsp/windows.test.d.ts.map +0 -1
- package/dist/core/lsp/windows.test.js +0 -239
- package/dist/core/lsp/windows.test.js.map +0 -1
- package/dist/core/mcp/catalog-cache.test.d.ts +0 -2
- package/dist/core/mcp/catalog-cache.test.d.ts.map +0 -1
- package/dist/core/mcp/catalog-cache.test.js +0 -99
- package/dist/core/mcp/catalog-cache.test.js.map +0 -1
- package/dist/core/mcp/client-session-recovery.test.d.ts +0 -2
- package/dist/core/mcp/client-session-recovery.test.d.ts.map +0 -1
- package/dist/core/mcp/client-session-recovery.test.js +0 -231
- package/dist/core/mcp/client-session-recovery.test.js.map +0 -1
- package/dist/core/mcp/content.test.d.ts +0 -2
- package/dist/core/mcp/content.test.d.ts.map +0 -1
- package/dist/core/mcp/content.test.js +0 -135
- package/dist/core/mcp/content.test.js.map +0 -1
- package/dist/core/mcp/elicitation.test.d.ts +0 -2
- package/dist/core/mcp/elicitation.test.d.ts.map +0 -1
- package/dist/core/mcp/elicitation.test.js +0 -158
- package/dist/core/mcp/elicitation.test.js.map +0 -1
- package/dist/core/mcp/legacy-negotiation.test.d.ts +0 -2
- package/dist/core/mcp/legacy-negotiation.test.d.ts.map +0 -1
- package/dist/core/mcp/legacy-negotiation.test.js +0 -80
- package/dist/core/mcp/legacy-negotiation.test.js.map +0 -1
- package/dist/core/mcp/loopback.test.d.ts +0 -2
- package/dist/core/mcp/loopback.test.d.ts.map +0 -1
- package/dist/core/mcp/loopback.test.js +0 -87
- package/dist/core/mcp/loopback.test.js.map +0 -1
- package/dist/core/mcp/oauth-store.test.d.ts +0 -2
- package/dist/core/mcp/oauth-store.test.d.ts.map +0 -1
- package/dist/core/mcp/oauth-store.test.js +0 -94
- package/dist/core/mcp/oauth-store.test.js.map +0 -1
- package/dist/core/mcp/parse-add-command.test.d.ts +0 -2
- package/dist/core/mcp/parse-add-command.test.d.ts.map +0 -1
- package/dist/core/mcp/parse-add-command.test.js +0 -81
- package/dist/core/mcp/parse-add-command.test.js.map +0 -1
- package/dist/core/mcp/resolve-stdio.test.d.ts +0 -2
- package/dist/core/mcp/resolve-stdio.test.d.ts.map +0 -1
- package/dist/core/mcp/resolve-stdio.test.js +0 -239
- package/dist/core/mcp/resolve-stdio.test.js.map +0 -1
- package/dist/core/mcp/session-elicitation-wiring.test.d.ts +0 -2
- package/dist/core/mcp/session-elicitation-wiring.test.d.ts.map +0 -1
- package/dist/core/mcp/session-elicitation-wiring.test.js +0 -138
- package/dist/core/mcp/session-elicitation-wiring.test.js.map +0 -1
- package/dist/core/mcp/shared-pool.test.d.ts +0 -2
- package/dist/core/mcp/shared-pool.test.d.ts.map +0 -1
- package/dist/core/mcp/shared-pool.test.js +0 -425
- package/dist/core/mcp/shared-pool.test.js.map +0 -1
- package/dist/core/mcp/store.test.d.ts +0 -2
- package/dist/core/mcp/store.test.d.ts.map +0 -1
- package/dist/core/mcp/store.test.js +0 -110
- package/dist/core/mcp/store.test.js.map +0 -1
- package/dist/core/mcp/when-connected.test.d.ts +0 -2
- package/dist/core/mcp/when-connected.test.d.ts.map +0 -1
- package/dist/core/mcp/when-connected.test.js +0 -46
- package/dist/core/mcp/when-connected.test.js.map +0 -1
- package/dist/core/message-images.test.d.ts +0 -2
- package/dist/core/message-images.test.d.ts.map +0 -1
- package/dist/core/message-images.test.js +0 -62
- package/dist/core/message-images.test.js.map +0 -1
- package/dist/core/network-guard.test.d.ts +0 -2
- package/dist/core/network-guard.test.d.ts.map +0 -1
- package/dist/core/network-guard.test.js +0 -72
- package/dist/core/network-guard.test.js.map +0 -1
- package/dist/core/nolan-context.test.d.ts +0 -2
- package/dist/core/nolan-context.test.d.ts.map +0 -1
- package/dist/core/nolan-context.test.js +0 -342
- package/dist/core/nolan-context.test.js.map +0 -1
- package/dist/core/nolan-model.test.d.ts +0 -2
- package/dist/core/nolan-model.test.d.ts.map +0 -1
- package/dist/core/nolan-model.test.js +0 -51
- package/dist/core/nolan-model.test.js.map +0 -1
- package/dist/core/nolan-prompt.test.d.ts +0 -2
- package/dist/core/nolan-prompt.test.d.ts.map +0 -1
- package/dist/core/nolan-prompt.test.js +0 -160
- package/dist/core/nolan-prompt.test.js.map +0 -1
- package/dist/core/persistent-shell.test.d.ts +0 -2
- package/dist/core/persistent-shell.test.d.ts.map +0 -1
- package/dist/core/persistent-shell.test.js +0 -84
- package/dist/core/persistent-shell.test.js.map +0 -1
- package/dist/core/pixel-fix.test.d.ts +0 -2
- package/dist/core/pixel-fix.test.d.ts.map +0 -1
- package/dist/core/pixel-fix.test.js +0 -310
- package/dist/core/pixel-fix.test.js.map +0 -1
- package/dist/core/pixel.test.d.ts +0 -2
- package/dist/core/pixel.test.d.ts.map +0 -1
- package/dist/core/pixel.test.js +0 -269
- package/dist/core/pixel.test.js.map +0 -1
- package/dist/core/process-gate.test.d.ts +0 -2
- package/dist/core/process-gate.test.d.ts.map +0 -1
- package/dist/core/process-gate.test.js +0 -87
- package/dist/core/process-gate.test.js.map +0 -1
- package/dist/core/process-manager-dev-server-repro.test.d.ts +0 -2
- package/dist/core/process-manager-dev-server-repro.test.d.ts.map +0 -1
- package/dist/core/process-manager-dev-server-repro.test.js +0 -225
- package/dist/core/process-manager-dev-server-repro.test.js.map +0 -1
- package/dist/core/process-manager-notifications.test.d.ts +0 -2
- package/dist/core/process-manager-notifications.test.d.ts.map +0 -1
- package/dist/core/process-manager-notifications.test.js +0 -227
- package/dist/core/process-manager-notifications.test.js.map +0 -1
- package/dist/core/progress/engine.test.d.ts +0 -2
- package/dist/core/progress/engine.test.d.ts.map +0 -1
- package/dist/core/progress/engine.test.js +0 -136
- package/dist/core/progress/engine.test.js.map +0 -1
- package/dist/core/progress/git-xp.test.d.ts +0 -2
- package/dist/core/progress/git-xp.test.d.ts.map +0 -1
- package/dist/core/progress/git-xp.test.js +0 -88
- package/dist/core/progress/git-xp.test.js.map +0 -1
- package/dist/core/progress/ranks.test.d.ts +0 -2
- package/dist/core/progress/ranks.test.d.ts.map +0 -1
- package/dist/core/progress/ranks.test.js +0 -100
- package/dist/core/progress/ranks.test.js.map +0 -1
- package/dist/core/progress/rebuild.test.d.ts +0 -2
- package/dist/core/progress/rebuild.test.d.ts.map +0 -1
- package/dist/core/progress/rebuild.test.js +0 -103
- package/dist/core/progress/rebuild.test.js.map +0 -1
- package/dist/core/progress/store.test.d.ts +0 -2
- package/dist/core/progress/store.test.d.ts.map +0 -1
- package/dist/core/progress/store.test.js +0 -108
- package/dist/core/progress/store.test.js.map +0 -1
- package/dist/core/project-discovery.test.d.ts +0 -2
- package/dist/core/project-discovery.test.d.ts.map +0 -1
- package/dist/core/project-discovery.test.js +0 -519
- package/dist/core/project-discovery.test.js.map +0 -1
- package/dist/core/prompt-commands.test.d.ts +0 -2
- package/dist/core/prompt-commands.test.d.ts.map +0 -1
- package/dist/core/prompt-commands.test.js +0 -175
- package/dist/core/prompt-commands.test.js.map +0 -1
- package/dist/core/radio.test.d.ts +0 -2
- package/dist/core/radio.test.d.ts.map +0 -1
- package/dist/core/radio.test.js +0 -117
- package/dist/core/radio.test.js.map +0 -1
- package/dist/core/regrounding.test.d.ts +0 -2
- package/dist/core/regrounding.test.d.ts.map +0 -1
- package/dist/core/regrounding.test.js +0 -38
- package/dist/core/regrounding.test.js.map +0 -1
- package/dist/core/resolve-start.test.d.ts +0 -2
- package/dist/core/resolve-start.test.d.ts.map +0 -1
- package/dist/core/resolve-start.test.js +0 -68
- package/dist/core/resolve-start.test.js.map +0 -1
- package/dist/core/run-claim.test.d.ts +0 -2
- package/dist/core/run-claim.test.d.ts.map +0 -1
- package/dist/core/run-claim.test.js +0 -107
- package/dist/core/run-claim.test.js.map +0 -1
- package/dist/core/run-journal.test.d.ts +0 -2
- package/dist/core/run-journal.test.d.ts.map +0 -1
- package/dist/core/run-journal.test.js +0 -195
- package/dist/core/run-journal.test.js.map +0 -1
- package/dist/core/run-lifecycle.test.d.ts +0 -2
- package/dist/core/run-lifecycle.test.d.ts.map +0 -1
- package/dist/core/run-lifecycle.test.js +0 -64
- package/dist/core/run-lifecycle.test.js.map +0 -1
- package/dist/core/sandbox-feedback.test.d.ts +0 -2
- package/dist/core/sandbox-feedback.test.d.ts.map +0 -1
- package/dist/core/sandbox-feedback.test.js +0 -32
- package/dist/core/sandbox-feedback.test.js.map +0 -1
- package/dist/core/sandbox.test.d.ts +0 -2
- package/dist/core/sandbox.test.d.ts.map +0 -1
- package/dist/core/sandbox.test.js +0 -157
- package/dist/core/sandbox.test.js.map +0 -1
- package/dist/core/semantic-search-benchmark.test.d.ts +0 -2
- package/dist/core/semantic-search-benchmark.test.d.ts.map +0 -1
- package/dist/core/semantic-search-benchmark.test.js +0 -89
- package/dist/core/semantic-search-benchmark.test.js.map +0 -1
- package/dist/core/session-compaction.test.d.ts +0 -2
- package/dist/core/session-compaction.test.d.ts.map +0 -1
- package/dist/core/session-compaction.test.js +0 -92
- package/dist/core/session-compaction.test.js.map +0 -1
- package/dist/core/session-export.test.d.ts +0 -2
- package/dist/core/session-export.test.d.ts.map +0 -1
- package/dist/core/session-export.test.js +0 -353
- package/dist/core/session-export.test.js.map +0 -1
- package/dist/core/session-history.test.d.ts +0 -2
- package/dist/core/session-history.test.d.ts.map +0 -1
- package/dist/core/session-history.test.js +0 -272
- package/dist/core/session-history.test.js.map +0 -1
- package/dist/core/session-manager.test.d.ts +0 -2
- package/dist/core/session-manager.test.d.ts.map +0 -1
- package/dist/core/session-manager.test.js +0 -573
- package/dist/core/session-manager.test.js.map +0 -1
- package/dist/core/session-notification-visibility.test.d.ts +0 -2
- package/dist/core/session-notification-visibility.test.d.ts.map +0 -1
- package/dist/core/session-notification-visibility.test.js +0 -113
- package/dist/core/session-notification-visibility.test.js.map +0 -1
- package/dist/core/session-restore-display.test.d.ts +0 -2
- package/dist/core/session-restore-display.test.d.ts.map +0 -1
- package/dist/core/session-restore-display.test.js +0 -103
- package/dist/core/session-restore-display.test.js.map +0 -1
- package/dist/core/session-storage-fd-leak.test.d.ts +0 -2
- package/dist/core/session-storage-fd-leak.test.d.ts.map +0 -1
- package/dist/core/session-storage-fd-leak.test.js +0 -116
- package/dist/core/session-storage-fd-leak.test.js.map +0 -1
- package/dist/core/session-storage.test.d.ts +0 -2
- package/dist/core/session-storage.test.d.ts.map +0 -1
- package/dist/core/session-storage.test.js +0 -277
- package/dist/core/session-storage.test.js.map +0 -1
- package/dist/core/setup-history.test.d.ts +0 -2
- package/dist/core/setup-history.test.d.ts.map +0 -1
- package/dist/core/setup-history.test.js +0 -59
- package/dist/core/setup-history.test.js.map +0 -1
- package/dist/core/shell.test.d.ts +0 -2
- package/dist/core/shell.test.d.ts.map +0 -1
- package/dist/core/shell.test.js +0 -87
- package/dist/core/shell.test.js.map +0 -1
- package/dist/core/shutdown.test.d.ts +0 -2
- package/dist/core/shutdown.test.d.ts.map +0 -1
- package/dist/core/shutdown.test.js +0 -160
- package/dist/core/shutdown.test.js.map +0 -1
- package/dist/core/sidecar-error-reporter.d.ts +0 -12
- package/dist/core/sidecar-error-reporter.d.ts.map +0 -1
- package/dist/core/sidecar-error-reporter.js +0 -57
- package/dist/core/sidecar-error-reporter.js.map +0 -1
- package/dist/core/sidecar-error-reporter.test.d.ts +0 -2
- package/dist/core/sidecar-error-reporter.test.d.ts.map +0 -1
- package/dist/core/sidecar-error-reporter.test.js +0 -61
- package/dist/core/sidecar-error-reporter.test.js.map +0 -1
- package/dist/core/skills-routing.test.d.ts +0 -2
- package/dist/core/skills-routing.test.d.ts.map +0 -1
- package/dist/core/skills-routing.test.js +0 -168
- package/dist/core/skills-routing.test.js.map +0 -1
- package/dist/core/slash-commands.test.d.ts +0 -2
- package/dist/core/slash-commands.test.d.ts.map +0 -1
- package/dist/core/slash-commands.test.js +0 -59
- package/dist/core/slash-commands.test.js.map +0 -1
- package/dist/core/source-maps.test.d.ts +0 -2
- package/dist/core/source-maps.test.d.ts.map +0 -1
- package/dist/core/source-maps.test.js +0 -175
- package/dist/core/source-maps.test.js.map +0 -1
- package/dist/core/speed-benchmark.test.d.ts +0 -2
- package/dist/core/speed-benchmark.test.d.ts.map +0 -1
- package/dist/core/speed-benchmark.test.js +0 -102
- package/dist/core/speed-benchmark.test.js.map +0 -1
- package/dist/core/subagent-manager.test.d.ts +0 -2
- package/dist/core/subagent-manager.test.d.ts.map +0 -1
- package/dist/core/subagent-manager.test.js +0 -375
- package/dist/core/subagent-manager.test.js.map +0 -1
- package/dist/core/subagent-store.test.d.ts +0 -2
- package/dist/core/subagent-store.test.d.ts.map +0 -1
- package/dist/core/subagent-store.test.js +0 -106
- package/dist/core/subagent-store.test.js.map +0 -1
- package/dist/core/verification-evidence.test.d.ts +0 -2
- package/dist/core/verification-evidence.test.d.ts.map +0 -1
- package/dist/core/verification-evidence.test.js +0 -103
- package/dist/core/verification-evidence.test.js.map +0 -1
- package/dist/core/verify-commands.test.d.ts +0 -2
- package/dist/core/verify-commands.test.d.ts.map +0 -1
- package/dist/core/verify-commands.test.js +0 -81
- package/dist/core/verify-commands.test.js.map +0 -1
- package/dist/core/workspace-guard.test.d.ts +0 -2
- package/dist/core/workspace-guard.test.d.ts.map +0 -1
- package/dist/core/workspace-guard.test.js +0 -107
- package/dist/core/workspace-guard.test.js.map +0 -1
- package/dist/modes/acp-mode.test.d.ts +0 -2
- package/dist/modes/acp-mode.test.d.ts.map +0 -1
- package/dist/modes/acp-mode.test.js +0 -1065
- package/dist/modes/acp-mode.test.js.map +0 -1
- package/dist/modes/json-mode.test.d.ts +0 -2
- package/dist/modes/json-mode.test.d.ts.map +0 -1
- package/dist/modes/json-mode.test.js +0 -84
- package/dist/modes/json-mode.test.js.map +0 -1
- package/dist/modes/subagent-worker-mode.test.d.ts +0 -2
- package/dist/modes/subagent-worker-mode.test.d.ts.map +0 -1
- package/dist/modes/subagent-worker-mode.test.js +0 -52
- package/dist/modes/subagent-worker-mode.test.js.map +0 -1
- package/dist/session.test.d.ts +0 -2
- package/dist/session.test.d.ts.map +0 -1
- package/dist/session.test.js +0 -35
- package/dist/session.test.js.map +0 -1
- package/dist/system-prompt.test.d.ts +0 -2
- package/dist/system-prompt.test.d.ts.map +0 -1
- package/dist/system-prompt.test.js +0 -536
- package/dist/system-prompt.test.js.map +0 -1
- package/dist/system-prompt.tiering.test.d.ts +0 -2
- package/dist/system-prompt.tiering.test.d.ts.map +0 -1
- package/dist/system-prompt.tiering.test.js +0 -105
- package/dist/system-prompt.tiering.test.js.map +0 -1
- package/dist/tools/bash.test.d.ts +0 -2
- package/dist/tools/bash.test.d.ts.map +0 -1
- package/dist/tools/bash.test.js +0 -204
- package/dist/tools/bash.test.js.map +0 -1
- package/dist/tools/checkpoint-hook.test.d.ts +0 -2
- package/dist/tools/checkpoint-hook.test.d.ts.map +0 -1
- package/dist/tools/checkpoint-hook.test.js +0 -65
- package/dist/tools/checkpoint-hook.test.js.map +0 -1
- package/dist/tools/code-nav.test.d.ts +0 -2
- package/dist/tools/code-nav.test.d.ts.map +0 -1
- package/dist/tools/code-nav.test.js +0 -136
- package/dist/tools/code-nav.test.js.map +0 -1
- package/dist/tools/code-skeleton.test.d.ts +0 -2
- package/dist/tools/code-skeleton.test.d.ts.map +0 -1
- package/dist/tools/code-skeleton.test.js +0 -115
- package/dist/tools/code-skeleton.test.js.map +0 -1
- package/dist/tools/compress-integration.test.d.ts +0 -2
- package/dist/tools/compress-integration.test.d.ts.map +0 -1
- package/dist/tools/compress-integration.test.js +0 -59
- package/dist/tools/compress-integration.test.js.map +0 -1
- package/dist/tools/compress.test.d.ts +0 -2
- package/dist/tools/compress.test.d.ts.map +0 -1
- package/dist/tools/compress.test.js +0 -60
- package/dist/tools/compress.test.js.map +0 -1
- package/dist/tools/edit-diff.test.d.ts +0 -2
- package/dist/tools/edit-diff.test.d.ts.map +0 -1
- package/dist/tools/edit-diff.test.js +0 -329
- package/dist/tools/edit-diff.test.js.map +0 -1
- package/dist/tools/edit-robustness.test.d.ts +0 -2
- package/dist/tools/edit-robustness.test.d.ts.map +0 -1
- package/dist/tools/edit-robustness.test.js +0 -417
- package/dist/tools/edit-robustness.test.js.map +0 -1
- package/dist/tools/edit.test.d.ts +0 -2
- package/dist/tools/edit.test.d.ts.map +0 -1
- package/dist/tools/edit.test.js +0 -940
- package/dist/tools/edit.test.js.map +0 -1
- package/dist/tools/exit-plan.test.d.ts +0 -2
- package/dist/tools/exit-plan.test.d.ts.map +0 -1
- package/dist/tools/exit-plan.test.js +0 -72
- package/dist/tools/exit-plan.test.js.map +0 -1
- package/dist/tools/generate-image.test.d.ts +0 -2
- package/dist/tools/generate-image.test.d.ts.map +0 -1
- package/dist/tools/generate-image.test.js +0 -240
- package/dist/tools/generate-image.test.js.map +0 -1
- package/dist/tools/goal-mode.test.d.ts +0 -2
- package/dist/tools/goal-mode.test.d.ts.map +0 -1
- package/dist/tools/goal-mode.test.js +0 -121
- package/dist/tools/goal-mode.test.js.map +0 -1
- package/dist/tools/goals.test.d.ts +0 -2
- package/dist/tools/goals.test.d.ts.map +0 -1
- package/dist/tools/goals.test.js +0 -795
- package/dist/tools/goals.test.js.map +0 -1
- package/dist/tools/grep-parity.test.d.ts +0 -2
- package/dist/tools/grep-parity.test.d.ts.map +0 -1
- package/dist/tools/grep-parity.test.js +0 -92
- package/dist/tools/grep-parity.test.js.map +0 -1
- package/dist/tools/grep-recall.test.d.ts +0 -2
- package/dist/tools/grep-recall.test.d.ts.map +0 -1
- package/dist/tools/grep-recall.test.js +0 -114
- package/dist/tools/grep-recall.test.js.map +0 -1
- package/dist/tools/grep-spawn.test.d.ts +0 -2
- package/dist/tools/grep-spawn.test.d.ts.map +0 -1
- package/dist/tools/grep-spawn.test.js +0 -66
- package/dist/tools/grep-spawn.test.js.map +0 -1
- package/dist/tools/grep.test.d.ts +0 -2
- package/dist/tools/grep.test.d.ts.map +0 -1
- package/dist/tools/grep.test.js +0 -82
- package/dist/tools/grep.test.js.map +0 -1
- package/dist/tools/html-extract.test.d.ts +0 -2
- package/dist/tools/html-extract.test.d.ts.map +0 -1
- package/dist/tools/html-extract.test.js +0 -60
- package/dist/tools/html-extract.test.js.map +0 -1
- package/dist/tools/index.test.d.ts +0 -2
- package/dist/tools/index.test.d.ts.map +0 -1
- package/dist/tools/index.test.js +0 -55
- package/dist/tools/index.test.js.map +0 -1
- package/dist/tools/overflow.test.d.ts +0 -2
- package/dist/tools/overflow.test.d.ts.map +0 -1
- package/dist/tools/overflow.test.js +0 -59
- package/dist/tools/overflow.test.js.map +0 -1
- package/dist/tools/path-utils.test.d.ts +0 -2
- package/dist/tools/path-utils.test.d.ts.map +0 -1
- package/dist/tools/path-utils.test.js +0 -54
- package/dist/tools/path-utils.test.js.map +0 -1
- package/dist/tools/pdf-extract.test.d.ts +0 -2
- package/dist/tools/pdf-extract.test.d.ts.map +0 -1
- package/dist/tools/pdf-extract.test.js +0 -15
- package/dist/tools/pdf-extract.test.js.map +0 -1
- package/dist/tools/plan-mode.test.d.ts +0 -2
- package/dist/tools/plan-mode.test.d.ts.map +0 -1
- package/dist/tools/plan-mode.test.js +0 -116
- package/dist/tools/plan-mode.test.js.map +0 -1
- package/dist/tools/read-only-bash.test.d.ts +0 -2
- package/dist/tools/read-only-bash.test.d.ts.map +0 -1
- package/dist/tools/read-only-bash.test.js +0 -47
- package/dist/tools/read-only-bash.test.js.map +0 -1
- package/dist/tools/read.test.d.ts +0 -2
- package/dist/tools/read.test.d.ts.map +0 -1
- package/dist/tools/read.test.js +0 -146
- package/dist/tools/read.test.js.map +0 -1
- package/dist/tools/screenshot.test.d.ts +0 -2
- package/dist/tools/screenshot.test.d.ts.map +0 -1
- package/dist/tools/screenshot.test.js +0 -145
- package/dist/tools/screenshot.test.js.map +0 -1
- package/dist/tools/search-code.test.d.ts +0 -2
- package/dist/tools/search-code.test.d.ts.map +0 -1
- package/dist/tools/search-code.test.js +0 -83
- package/dist/tools/search-code.test.js.map +0 -1
- package/dist/tools/source-path.test.d.ts +0 -2
- package/dist/tools/source-path.test.d.ts.map +0 -1
- package/dist/tools/source-path.test.js +0 -80
- package/dist/tools/source-path.test.js.map +0 -1
- package/dist/tools/subagent-control.test.d.ts +0 -2
- package/dist/tools/subagent-control.test.d.ts.map +0 -1
- package/dist/tools/subagent-control.test.js +0 -73
- package/dist/tools/subagent-control.test.js.map +0 -1
- package/dist/tools/subagent-shared.test.d.ts +0 -2
- package/dist/tools/subagent-shared.test.d.ts.map +0 -1
- package/dist/tools/subagent-shared.test.js +0 -83
- package/dist/tools/subagent-shared.test.js.map +0 -1
- package/dist/tools/subagent.test.d.ts +0 -2
- package/dist/tools/subagent.test.d.ts.map +0 -1
- package/dist/tools/subagent.test.js +0 -180
- package/dist/tools/subagent.test.js.map +0 -1
- package/dist/tools/task-send.test.d.ts +0 -2
- package/dist/tools/task-send.test.d.ts.map +0 -1
- package/dist/tools/task-send.test.js +0 -104
- package/dist/tools/task-send.test.js.map +0 -1
- package/dist/tools/tasks.test.d.ts +0 -2
- package/dist/tools/tasks.test.d.ts.map +0 -1
- package/dist/tools/tasks.test.js +0 -62
- package/dist/tools/tasks.test.js.map +0 -1
- package/dist/tools/tool-search.test.d.ts +0 -2
- package/dist/tools/tool-search.test.d.ts.map +0 -1
- package/dist/tools/tool-search.test.js +0 -69
- package/dist/tools/tool-search.test.js.map +0 -1
- package/dist/tools/tool-tiers.test.d.ts +0 -2
- package/dist/tools/tool-tiers.test.d.ts.map +0 -1
- package/dist/tools/tool-tiers.test.js +0 -48
- package/dist/tools/tool-tiers.test.js.map +0 -1
- package/dist/tools/truncate-utils.test.d.ts +0 -2
- package/dist/tools/truncate-utils.test.d.ts.map +0 -1
- package/dist/tools/truncate-utils.test.js +0 -93
- package/dist/tools/truncate-utils.test.js.map +0 -1
- package/dist/tools/truncate.test.d.ts +0 -2
- package/dist/tools/truncate.test.d.ts.map +0 -1
- package/dist/tools/truncate.test.js +0 -100
- package/dist/tools/truncate.test.js.map +0 -1
- package/dist/tools/web-fetch.test.d.ts +0 -2
- package/dist/tools/web-fetch.test.d.ts.map +0 -1
- package/dist/tools/web-fetch.test.js +0 -539
- package/dist/tools/web-fetch.test.js.map +0 -1
- package/dist/tools/web-search.test.d.ts +0 -2
- package/dist/tools/web-search.test.d.ts.map +0 -1
- package/dist/tools/web-search.test.js +0 -333
- package/dist/tools/web-search.test.js.map +0 -1
- package/dist/tools/write.test.d.ts +0 -2
- package/dist/tools/write.test.d.ts.map +0 -1
- package/dist/tools/write.test.js +0 -176
- package/dist/tools/write.test.js.map +0 -1
- package/dist/ui/anchor-pad-reclaim.test.d.ts +0 -2
- package/dist/ui/anchor-pad-reclaim.test.d.ts.map +0 -1
- package/dist/ui/anchor-pad-reclaim.test.js +0 -146
- package/dist/ui/anchor-pad-reclaim.test.js.map +0 -1
- package/dist/ui/app-items.test.d.ts +0 -2
- package/dist/ui/app-items.test.d.ts.map +0 -1
- package/dist/ui/app-items.test.js +0 -54
- package/dist/ui/app-items.test.js.map +0 -1
- package/dist/ui/app-state-persistence.test.d.ts +0 -2
- package/dist/ui/app-state-persistence.test.d.ts.map +0 -1
- package/dist/ui/app-state-persistence.test.js +0 -71
- package/dist/ui/app-state-persistence.test.js.map +0 -1
- package/dist/ui/assistant-stream-flush-parity.test.d.ts +0 -2
- package/dist/ui/assistant-stream-flush-parity.test.d.ts.map +0 -1
- package/dist/ui/assistant-stream-flush-parity.test.js +0 -85
- package/dist/ui/assistant-stream-flush-parity.test.js.map +0 -1
- package/dist/ui/atomic-flush-regression.test.d.ts +0 -2
- package/dist/ui/atomic-flush-regression.test.d.ts.map +0 -1
- package/dist/ui/atomic-flush-regression.test.js +0 -218
- package/dist/ui/atomic-flush-regression.test.js.map +0 -1
- package/dist/ui/chat-layout-pinning.test.d.ts +0 -2
- package/dist/ui/chat-layout-pinning.test.d.ts.map +0 -1
- package/dist/ui/chat-layout-pinning.test.js +0 -525
- package/dist/ui/chat-layout-pinning.test.js.map +0 -1
- package/dist/ui/components/ActivityIndicator.test.d.ts +0 -2
- package/dist/ui/components/ActivityIndicator.test.d.ts.map +0 -1
- package/dist/ui/components/ActivityIndicator.test.js +0 -40
- package/dist/ui/components/ActivityIndicator.test.js.map +0 -1
- package/dist/ui/components/AssistantMessage.test.d.ts +0 -2
- package/dist/ui/components/AssistantMessage.test.d.ts.map +0 -1
- package/dist/ui/components/AssistantMessage.test.js +0 -418
- package/dist/ui/components/AssistantMessage.test.js.map +0 -1
- package/dist/ui/components/Footer.test.d.ts +0 -2
- package/dist/ui/components/Footer.test.d.ts.map +0 -1
- package/dist/ui/components/Footer.test.js +0 -16
- package/dist/ui/components/Footer.test.js.map +0 -1
- package/dist/ui/components/InputArea.test.d.ts +0 -2
- package/dist/ui/components/InputArea.test.d.ts.map +0 -1
- package/dist/ui/components/InputArea.test.js +0 -95
- package/dist/ui/components/InputArea.test.js.map +0 -1
- package/dist/ui/components/PlanOverlay.test.d.ts +0 -2
- package/dist/ui/components/PlanOverlay.test.d.ts.map +0 -1
- package/dist/ui/components/PlanOverlay.test.js +0 -24
- package/dist/ui/components/PlanOverlay.test.js.map +0 -1
- package/dist/ui/components/StreamingArea.test.d.ts +0 -2
- package/dist/ui/components/StreamingArea.test.d.ts.map +0 -1
- package/dist/ui/components/StreamingArea.test.js +0 -18
- package/dist/ui/components/StreamingArea.test.js.map +0 -1
- package/dist/ui/components/UserMessage.test.d.ts +0 -2
- package/dist/ui/components/UserMessage.test.d.ts.map +0 -1
- package/dist/ui/components/UserMessage.test.js +0 -39
- package/dist/ui/components/UserMessage.test.js.map +0 -1
- package/dist/ui/components/themed-output.test.d.ts +0 -2
- package/dist/ui/components/themed-output.test.d.ts.map +0 -1
- package/dist/ui/components/themed-output.test.js +0 -111
- package/dist/ui/components/themed-output.test.js.map +0 -1
- package/dist/ui/footer-jump-regression.test.d.ts +0 -2
- package/dist/ui/footer-jump-regression.test.d.ts.map +0 -1
- package/dist/ui/footer-jump-regression.test.js +0 -224
- package/dist/ui/footer-jump-regression.test.js.map +0 -1
- package/dist/ui/footer-status-layout.test.d.ts +0 -2
- package/dist/ui/footer-status-layout.test.d.ts.map +0 -1
- package/dist/ui/footer-status-layout.test.js +0 -71
- package/dist/ui/footer-status-layout.test.js.map +0 -1
- package/dist/ui/frame-clip-regression.test.d.ts +0 -2
- package/dist/ui/frame-clip-regression.test.d.ts.map +0 -1
- package/dist/ui/frame-clip-regression.test.js +0 -215
- package/dist/ui/frame-clip-regression.test.js.map +0 -1
- package/dist/ui/goal-events.test.d.ts +0 -2
- package/dist/ui/goal-events.test.d.ts.map +0 -1
- package/dist/ui/goal-events.test.js +0 -350
- package/dist/ui/goal-events.test.js.map +0 -1
- package/dist/ui/goal-lifecycle-orchestration.test.d.ts +0 -2
- package/dist/ui/goal-lifecycle-orchestration.test.d.ts.map +0 -1
- package/dist/ui/goal-lifecycle-orchestration.test.js +0 -512
- package/dist/ui/goal-lifecycle-orchestration.test.js.map +0 -1
- package/dist/ui/goal-overlay.test.d.ts +0 -2
- package/dist/ui/goal-overlay.test.d.ts.map +0 -1
- package/dist/ui/goal-overlay.test.js +0 -384
- package/dist/ui/goal-overlay.test.js.map +0 -1
- package/dist/ui/goal-status-bar.test.d.ts +0 -2
- package/dist/ui/goal-status-bar.test.d.ts.map +0 -1
- package/dist/ui/goal-status-bar.test.js +0 -172
- package/dist/ui/goal-status-bar.test.js.map +0 -1
- package/dist/ui/hooks/stall-retry-duplicate.test.d.ts +0 -2
- package/dist/ui/hooks/stall-retry-duplicate.test.d.ts.map +0 -1
- package/dist/ui/hooks/stall-retry-duplicate.test.js +0 -94
- package/dist/ui/hooks/stall-retry-duplicate.test.js.map +0 -1
- package/dist/ui/hooks/useAgentLoop.test.d.ts +0 -2
- package/dist/ui/hooks/useAgentLoop.test.d.ts.map +0 -1
- package/dist/ui/hooks/useAgentLoop.test.js +0 -66
- package/dist/ui/hooks/useAgentLoop.test.js.map +0 -1
- package/dist/ui/hooks/useContextCompaction.test.d.ts +0 -2
- package/dist/ui/hooks/useContextCompaction.test.d.ts.map +0 -1
- package/dist/ui/hooks/useContextCompaction.test.js +0 -135
- package/dist/ui/hooks/useContextCompaction.test.js.map +0 -1
- package/dist/ui/hooks/useTranscriptHistory.sessionstore.test.d.ts +0 -2
- package/dist/ui/hooks/useTranscriptHistory.sessionstore.test.d.ts.map +0 -1
- package/dist/ui/hooks/useTranscriptHistory.sessionstore.test.js +0 -81
- package/dist/ui/hooks/useTranscriptHistory.sessionstore.test.js.map +0 -1
- package/dist/ui/hooks/useTranscriptHistory.test.d.ts +0 -2
- package/dist/ui/hooks/useTranscriptHistory.test.d.ts.map +0 -1
- package/dist/ui/hooks/useTranscriptHistory.test.js +0 -61
- package/dist/ui/hooks/useTranscriptHistory.test.js.map +0 -1
- package/dist/ui/hooks/useTranscriptScroll.test.d.ts +0 -2
- package/dist/ui/hooks/useTranscriptScroll.test.d.ts.map +0 -1
- package/dist/ui/hooks/useTranscriptScroll.test.js +0 -119
- package/dist/ui/hooks/useTranscriptScroll.test.js.map +0 -1
- package/dist/ui/live-area-clamp.test.d.ts +0 -2
- package/dist/ui/live-area-clamp.test.d.ts.map +0 -1
- package/dist/ui/live-area-clamp.test.js +0 -125
- package/dist/ui/live-area-clamp.test.js.map +0 -1
- package/dist/ui/live-area-height.test.d.ts +0 -2
- package/dist/ui/live-area-height.test.d.ts.map +0 -1
- package/dist/ui/live-area-height.test.js +0 -76
- package/dist/ui/live-area-height.test.js.map +0 -1
- package/dist/ui/live-frame-height.test.d.ts +0 -2
- package/dist/ui/live-frame-height.test.d.ts.map +0 -1
- package/dist/ui/live-frame-height.test.js +0 -116
- package/dist/ui/live-frame-height.test.js.map +0 -1
- package/dist/ui/live-item-flush.test.d.ts +0 -2
- package/dist/ui/live-item-flush.test.d.ts.map +0 -1
- package/dist/ui/live-item-flush.test.js +0 -437
- package/dist/ui/live-item-flush.test.js.map +0 -1
- package/dist/ui/long-prompt-regression-harness.test.d.ts +0 -2
- package/dist/ui/long-prompt-regression-harness.test.d.ts.map +0 -1
- package/dist/ui/long-prompt-regression-harness.test.js +0 -195
- package/dist/ui/long-prompt-regression-harness.test.js.map +0 -1
- package/dist/ui/pixel.test.d.ts +0 -2
- package/dist/ui/pixel.test.d.ts.map +0 -1
- package/dist/ui/pixel.test.js +0 -138
- package/dist/ui/pixel.test.js.map +0 -1
- package/dist/ui/plan-overlay.test.d.ts +0 -2
- package/dist/ui/plan-overlay.test.d.ts.map +0 -1
- package/dist/ui/plan-overlay.test.js +0 -305
- package/dist/ui/plan-overlay.test.js.map +0 -1
- package/dist/ui/queued-message.test.d.ts +0 -2
- package/dist/ui/queued-message.test.d.ts.map +0 -1
- package/dist/ui/queued-message.test.js +0 -172
- package/dist/ui/queued-message.test.js.map +0 -1
- package/dist/ui/render.test.d.ts +0 -2
- package/dist/ui/render.test.d.ts.map +0 -1
- package/dist/ui/render.test.js +0 -42
- package/dist/ui/render.test.js.map +0 -1
- package/dist/ui/scroll-stabilization.test.d.ts +0 -2
- package/dist/ui/scroll-stabilization.test.d.ts.map +0 -1
- package/dist/ui/scroll-stabilization.test.js +0 -64
- package/dist/ui/scroll-stabilization.test.js.map +0 -1
- package/dist/ui/slash-command-images.test.d.ts +0 -2
- package/dist/ui/slash-command-images.test.d.ts.map +0 -1
- package/dist/ui/slash-command-images.test.js +0 -110
- package/dist/ui/slash-command-images.test.js.map +0 -1
- package/dist/ui/startup-banner-order.test.d.ts +0 -2
- package/dist/ui/startup-banner-order.test.d.ts.map +0 -1
- package/dist/ui/startup-banner-order.test.js +0 -105
- package/dist/ui/startup-banner-order.test.js.map +0 -1
- package/dist/ui/stores/transcript-scroll-store.test.d.ts +0 -2
- package/dist/ui/stores/transcript-scroll-store.test.d.ts.map +0 -1
- package/dist/ui/stores/transcript-scroll-store.test.js +0 -73
- package/dist/ui/stores/transcript-scroll-store.test.js.map +0 -1
- package/dist/ui/streaming-flush-bounce.test.d.ts +0 -2
- package/dist/ui/streaming-flush-bounce.test.d.ts.map +0 -1
- package/dist/ui/streaming-flush-bounce.test.js +0 -177
- package/dist/ui/streaming-flush-bounce.test.js.map +0 -1
- package/dist/ui/submit-boundary-gap.test.d.ts +0 -2
- package/dist/ui/submit-boundary-gap.test.d.ts.map +0 -1
- package/dist/ui/submit-boundary-gap.test.js +0 -180
- package/dist/ui/submit-boundary-gap.test.js.map +0 -1
- package/dist/ui/terminal-history-repaint.test.d.ts +0 -2
- package/dist/ui/terminal-history-repaint.test.d.ts.map +0 -1
- package/dist/ui/terminal-history-repaint.test.js +0 -73
- package/dist/ui/terminal-history-repaint.test.js.map +0 -1
- package/dist/ui/terminal-history-retry-dedup.test.d.ts +0 -2
- package/dist/ui/terminal-history-retry-dedup.test.d.ts.map +0 -1
- package/dist/ui/terminal-history-retry-dedup.test.js +0 -61
- package/dist/ui/terminal-history-retry-dedup.test.js.map +0 -1
- package/dist/ui/terminal-history.test.d.ts +0 -2
- package/dist/ui/terminal-history.test.d.ts.map +0 -1
- package/dist/ui/terminal-history.test.js +0 -557
- package/dist/ui/terminal-history.test.js.map +0 -1
- package/dist/ui/thinking-level-cycle.test.d.ts +0 -2
- package/dist/ui/thinking-level-cycle.test.d.ts.map +0 -1
- package/dist/ui/thinking-level-cycle.test.js +0 -45
- package/dist/ui/thinking-level-cycle.test.js.map +0 -1
- package/dist/ui/tool-group-summary.test.d.ts +0 -2
- package/dist/ui/tool-group-summary.test.d.ts.map +0 -1
- package/dist/ui/tool-group-summary.test.js +0 -79
- package/dist/ui/tool-group-summary.test.js.map +0 -1
- package/dist/ui/transcript/spacing.test.d.ts +0 -2
- package/dist/ui/transcript/spacing.test.d.ts.map +0 -1
- package/dist/ui/transcript/spacing.test.js +0 -191
- package/dist/ui/transcript/spacing.test.js.map +0 -1
- package/dist/ui/transcript/transcript-lines.test.d.ts +0 -2
- package/dist/ui/transcript/transcript-lines.test.d.ts.map +0 -1
- package/dist/ui/transcript/transcript-lines.test.js +0 -76
- package/dist/ui/transcript/transcript-lines.test.js.map +0 -1
- package/dist/ui/transcript-viewport-pinning.test.d.ts +0 -2
- package/dist/ui/transcript-viewport-pinning.test.d.ts.map +0 -1
- package/dist/ui/transcript-viewport-pinning.test.js +0 -148
- package/dist/ui/transcript-viewport-pinning.test.js.map +0 -1
- package/dist/ui/tui-history-parity.test.d.ts +0 -2
- package/dist/ui/tui-history-parity.test.d.ts.map +0 -1
- package/dist/ui/tui-history-parity.test.js +0 -388
- package/dist/ui/tui-history-parity.test.js.map +0 -1
- package/dist/ui/tui-simulation.test.d.ts +0 -2
- package/dist/ui/tui-simulation.test.d.ts.map +0 -1
- package/dist/ui/tui-simulation.test.js +0 -145
- package/dist/ui/tui-simulation.test.js.map +0 -1
- package/dist/ui/tui-terminal-recorder.test.d.ts +0 -2
- package/dist/ui/tui-terminal-recorder.test.d.ts.map +0 -1
- package/dist/ui/tui-terminal-recorder.test.js +0 -134
- package/dist/ui/tui-terminal-recorder.test.js.map +0 -1
- package/dist/ui/utils/assistant-stream-split.test.d.ts +0 -2
- package/dist/ui/utils/assistant-stream-split.test.d.ts.map +0 -1
- package/dist/ui/utils/assistant-stream-split.test.js +0 -74
- package/dist/ui/utils/assistant-stream-split.test.js.map +0 -1
- package/dist/ui/utils/markdown-renderer.test.d.ts +0 -2
- package/dist/ui/utils/markdown-renderer.test.d.ts.map +0 -1
- package/dist/ui/utils/markdown-renderer.test.js +0 -63
- package/dist/ui/utils/markdown-renderer.test.js.map +0 -1
- package/dist/ui/utils/table-text.test.d.ts +0 -2
- package/dist/ui/utils/table-text.test.d.ts.map +0 -1
- package/dist/ui/utils/table-text.test.js +0 -202
- package/dist/ui/utils/table-text.test.js.map +0 -1
- package/dist/ui/utils/terminal-graphics.test.d.ts +0 -2
- package/dist/ui/utils/terminal-graphics.test.d.ts.map +0 -1
- package/dist/ui/utils/terminal-graphics.test.js +0 -100
- package/dist/ui/utils/terminal-graphics.test.js.map +0 -1
- package/dist/ui/utils/terminal-input.test.d.ts +0 -2
- package/dist/ui/utils/terminal-input.test.d.ts.map +0 -1
- package/dist/ui/utils/terminal-input.test.js +0 -15
- package/dist/ui/utils/terminal-input.test.js.map +0 -1
- package/dist/utils/git.test.d.ts +0 -2
- package/dist/utils/git.test.d.ts.map +0 -1
- package/dist/utils/git.test.js +0 -36
- package/dist/utils/git.test.js.map +0 -1
- package/dist/utils/github.test.d.ts +0 -2
- package/dist/utils/github.test.d.ts.map +0 -1
- package/dist/utils/github.test.js +0 -23
- package/dist/utils/github.test.js.map +0 -1
- package/dist/utils/http-body.test.d.ts +0 -2
- package/dist/utils/http-body.test.d.ts.map +0 -1
- package/dist/utils/http-body.test.js +0 -68
- package/dist/utils/http-body.test.js.map +0 -1
- package/dist/utils/image.test.d.ts +0 -2
- package/dist/utils/image.test.d.ts.map +0 -1
- package/dist/utils/image.test.js +0 -139
- package/dist/utils/image.test.js.map +0 -1
- package/dist/utils/plan-steps.test.d.ts +0 -2
- package/dist/utils/plan-steps.test.d.ts.map +0 -1
- package/dist/utils/plan-steps.test.js +0 -159
- package/dist/utils/plan-steps.test.js.map +0 -1
- package/dist/utils/process.test.d.ts +0 -2
- package/dist/utils/process.test.d.ts.map +0 -1
- package/dist/utils/process.test.js +0 -42
- package/dist/utils/process.test.js.map +0 -1
|
@@ -26,7 +26,8 @@ import { buildSubAgentCompletionFollowUp } from "./subagent-manager.js";
|
|
|
26
26
|
import { applyAsyncSubagentPolicy } from "./subagent-policy.js";
|
|
27
27
|
import { z } from "zod";
|
|
28
28
|
import { MCPClientManager, getAllMcpServers } from "./mcp/index.js";
|
|
29
|
-
import { DeferredToolCatalog } from "./mcp/deferred-catalog.js";
|
|
29
|
+
import { clampMcpToolDescription, DeferredToolCatalog } from "./mcp/deferred-catalog.js";
|
|
30
|
+
import { CONTEXT_LIMITS, resolveContextLimits } from "./context-limits.js";
|
|
30
31
|
import { McpCatalogCache } from "./mcp/catalog-cache.js";
|
|
31
32
|
import { describeDropped, importForeignSession, } from "./foreign-session-import.js";
|
|
32
33
|
import { createToolSearchTool } from "../tools/tool-search.js";
|
|
@@ -41,8 +42,10 @@ import { detectProjectStack } from "./language-detector.js";
|
|
|
41
42
|
import { evaluateIdealReview, buildIdealReviewMessage, buildReviewCoverageEscalationMessage, buildReviewCoverageMessage, MAX_REVIEW_COVERAGE_INJECTIONS, withReviewCoverageRequirements, detectTestDrift, ReviewCoverageTracker, } from "./ideal-review.js";
|
|
42
43
|
import { evaluateLoopBreak, buildLoopBreakMessage, CycleDetector, ToolCallProgressTracker, detectTextRepetition, } from "./loop-breaker.js";
|
|
43
44
|
import { buildRegroundingMessage } from "./regrounding.js";
|
|
45
|
+
import { buildEnvDeltaMessage } from "./env-delta.js";
|
|
44
46
|
import { wrapSteeringText, buildNotificationSteeringText, STEERING_PREFIX } from "./steering.js";
|
|
45
47
|
import { AgentNotificationQueue } from "./agent-notifications.js";
|
|
48
|
+
import { VerificationGate, extractAddedLines, isCheckOwnFile, isCodeFilePath, isVerificationCommand, } from "./verification-gate.js";
|
|
46
49
|
import { findUserSessionPrompt, getUserSessionPrompt } from "./session-preview.js";
|
|
47
50
|
import { normalizeMessageImages } from "./message-images.js";
|
|
48
51
|
import crypto from "node:crypto";
|
|
@@ -140,16 +143,35 @@ export class AgentSession {
|
|
|
140
143
|
idealReviewPhase = "idle";
|
|
141
144
|
/** Runtime-only suppression while Nolan owns verification in autopilot mode. */
|
|
142
145
|
idealReviewSuppressed = false;
|
|
146
|
+
/** Mirror of the last `hook_armed` value broadcast this run, so the event
|
|
147
|
+
* fires only on a real edge. */
|
|
148
|
+
idealReviewArmed = false;
|
|
149
|
+
/** Cached test-drift probe, keyed by the size of the edited-file set. Drift
|
|
150
|
+
* depends only on WHICH files were edited and that set only grows, so this
|
|
151
|
+
* keeps the arming check off the filesystem on most tool results — the probe
|
|
152
|
+
* is several sync existsSync calls per edited file. */
|
|
153
|
+
idealDriftProbe = null;
|
|
143
154
|
reviewCoverage;
|
|
144
155
|
/** Coverage follow-ups spent this run, capped by MAX_REVIEW_COVERAGE_INJECTIONS. */
|
|
145
156
|
reviewCoverageInjected = 0;
|
|
146
157
|
/** 0 = none; 1 = first nudge sent; 2 = final stop-and-report injected. */
|
|
147
158
|
loopBreakInjected = 0;
|
|
148
159
|
regroundingInjected = false;
|
|
160
|
+
/**
|
|
161
|
+
* The environment as the cached system prompt currently describes it.
|
|
162
|
+
* Re-recorded on every prompt build, so a rebuild (e.g. `/add-dir`) needs no
|
|
163
|
+
* delta; anything that changes WITHOUT one is caught by the hook below.
|
|
164
|
+
*/
|
|
165
|
+
renderedEnvironment = {};
|
|
149
166
|
/** Wall-clock start of the current run; scopes the background-process gate. */
|
|
150
167
|
runStartedAt = 0;
|
|
151
168
|
/** Gate injections spent this run, capped by MAX_PROCESS_GATE_INJECTIONS. */
|
|
152
169
|
processGateInjected = 0;
|
|
170
|
+
/** Verification gate: code edited this run, nothing proved it since. */
|
|
171
|
+
verificationGate = new VerificationGate();
|
|
172
|
+
/** Mirror of the last verification `hook_armed` value, so the event fires
|
|
173
|
+
* only on a real edge. */
|
|
174
|
+
verificationArmed = false;
|
|
153
175
|
compactionOccurred = false;
|
|
154
176
|
lastCompactionCompacted = false;
|
|
155
177
|
compactionRetryAfter = 0;
|
|
@@ -184,6 +206,8 @@ export class AgentSession {
|
|
|
184
206
|
mcpManager;
|
|
185
207
|
/** Deferred MCP tools awaiting discovery via tool_search. */
|
|
186
208
|
mcpCatalog;
|
|
209
|
+
/** Resolved prompt-injection byte budgets (contextLimits setting). */
|
|
210
|
+
contextLimits = CONTEXT_LIMITS;
|
|
187
211
|
/**
|
|
188
212
|
* Built-in tools held in the catalog instead of the live toolset. Their names
|
|
189
213
|
* still render as one-line hints in the prompt's Tools section, so the model
|
|
@@ -294,6 +318,7 @@ export class AgentSession {
|
|
|
294
318
|
// Load settings & auth
|
|
295
319
|
this.settingsManager = new SettingsManager(paths.settingsFile);
|
|
296
320
|
await this.settingsManager.load();
|
|
321
|
+
this.contextLimits = resolveContextLimits(this.settingsManager.get("contextLimits"));
|
|
297
322
|
this.authStorage = new AuthStorage(paths.authFile);
|
|
298
323
|
await this.authStorage.load();
|
|
299
324
|
// Session manager. Agent-specific roots keep chat and coder histories isolated.
|
|
@@ -326,6 +351,7 @@ export class AgentSession {
|
|
|
326
351
|
const { tools: builtInTools, processManager, rebuildReadTool, lspManager, subAgentManager, } = await createTools(this.cwd, {
|
|
327
352
|
agents,
|
|
328
353
|
skills: this.skills,
|
|
354
|
+
contextLimits: this.contextLimits,
|
|
329
355
|
provider: this.provider,
|
|
330
356
|
model: this.model,
|
|
331
357
|
lspDiagnostics: this.settingsManager.get("lspDiagnostics"),
|
|
@@ -348,6 +374,7 @@ export class AgentSession {
|
|
|
348
374
|
// tool agree on which roots are writable.
|
|
349
375
|
additionalRoots: this.additionalRoots,
|
|
350
376
|
allowOutsideWorkspaceWrites: this.settingsManager.get("allowOutsideWorkspaceWrites"),
|
|
377
|
+
allowUnixSockets: this.settingsManager.get("sandboxAllowUnixSockets"),
|
|
351
378
|
}),
|
|
352
379
|
getUseExternalGrep: () => this.settingsManager.get("grepUseRipgrep"),
|
|
353
380
|
authStorage: this.authStorage,
|
|
@@ -399,7 +426,7 @@ export class AgentSession {
|
|
|
399
426
|
// sits inside the cached prefix stays byte-stable across turns.
|
|
400
427
|
this.tools = core;
|
|
401
428
|
this.deferredBuiltinToolNames = deferred.map((t) => t.name);
|
|
402
|
-
this.mcpCatalog ??= new DeferredToolCatalog();
|
|
429
|
+
this.mcpCatalog ??= new DeferredToolCatalog(this.contextLimits);
|
|
403
430
|
this.mcpCatalog.add(deferred);
|
|
404
431
|
this.ensureToolSearchTool();
|
|
405
432
|
}
|
|
@@ -522,7 +549,7 @@ export class AgentSession {
|
|
|
522
549
|
* everything passes (default behavior). Otherwise a tool is allowed when its
|
|
523
550
|
* name is in `allowedTools`, OR it's an MCP tool (`mcp__<server>__<tool>`)
|
|
524
551
|
* whose `<server>` is in `allowedMcpServers`. The MCP-prefix rule lets a
|
|
525
|
-
* whitelisted research server
|
|
552
|
+
* whitelisted research server expose all its tools
|
|
526
553
|
* without hard-coding each one, while every other tool stays blocked.
|
|
527
554
|
*/
|
|
528
555
|
isToolAllowed(name) {
|
|
@@ -552,8 +579,7 @@ export class AgentSession {
|
|
|
552
579
|
return;
|
|
553
580
|
// Allow-listed (read-only advisory) sessions enforce a fixed tool set by
|
|
554
581
|
// name. An MCP server is only connected when its name is explicitly
|
|
555
|
-
// whitelisted via `allowedMcpServers
|
|
556
|
-
// `kencode-search` so it can research real code). With no whitelist, skip
|
|
582
|
+
// whitelisted via `allowedMcpServers`. With no whitelist, skip
|
|
557
583
|
// MCP entirely — dynamic `mcp__server__tool` names could never match a fixed
|
|
558
584
|
// allow-list, and connecting would waste resources spawning stdio servers.
|
|
559
585
|
const mcpWhitelist = this.opts.allowedMcpServers;
|
|
@@ -570,7 +596,9 @@ export class AgentSession {
|
|
|
570
596
|
// GLM not configured — skip Z.AI MCP servers
|
|
571
597
|
}
|
|
572
598
|
}
|
|
573
|
-
let servers = await getAllMcpServers(this.provider, apiKey, this.cwd
|
|
599
|
+
let servers = await getAllMcpServers(this.provider, apiKey, this.cwd, {
|
|
600
|
+
allowProjectScope: this.settingsManager.isProjectTrusted(this.cwd),
|
|
601
|
+
});
|
|
574
602
|
// Whitelisted allow-listed session: connect ONLY the named servers, never
|
|
575
603
|
// the user's full configured set (which could include mutating tools). The
|
|
576
604
|
// whitelist only restricts in allow-list mode (the documented contract) so
|
|
@@ -601,11 +629,21 @@ export class AgentSession {
|
|
|
601
629
|
if (this.opts.backgroundMcpConnect && mcpTools.length > 0) {
|
|
602
630
|
await this.rebuildSystemPromptInPlace();
|
|
603
631
|
}
|
|
632
|
+
// Detect project-scope servers excluded because the repo isn't trusted,
|
|
633
|
+
// so the host can offer a per-repo "Trust" button. Computed after the
|
|
634
|
+
// connect so the blocked list reflects the same connect attempt.
|
|
604
635
|
}
|
|
605
636
|
catch (err) {
|
|
606
637
|
log("WARN", "mcp", `MCP initialization failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
607
638
|
}
|
|
608
639
|
}
|
|
640
|
+
/** Persist `cwd` as a trusted project for project-scope MCP. Called by the
|
|
641
|
+
* sidecar's `/mcp/add` handler when a user adds a project-scope server via
|
|
642
|
+
* the MCP modal — the explicit add is itself the trust signal. The next
|
|
643
|
+
* session load connects its `.ezcoder/mcp.json` servers. */
|
|
644
|
+
async trustProject(cwd) {
|
|
645
|
+
await this.settingsManager.trustProject(cwd);
|
|
646
|
+
}
|
|
609
647
|
/**
|
|
610
648
|
* Route freshly connected MCP tools: deferred into the tool_search catalog
|
|
611
649
|
* (default — keeps ~8k tokens of schema out of every cache-miss turn) or
|
|
@@ -624,10 +662,11 @@ export class AgentSession {
|
|
|
624
662
|
}
|
|
625
663
|
const defer = !this.opts.allowedTools && this.settingsManager.get("deferredMcpTools");
|
|
626
664
|
if (!defer) {
|
|
627
|
-
|
|
665
|
+
// Eager path bypasses the catalog, so budget descriptions here too.
|
|
666
|
+
this.replaceOrPushTools(mcpTools.map((tool) => clampMcpToolDescription(tool, this.contextLimits)));
|
|
628
667
|
return;
|
|
629
668
|
}
|
|
630
|
-
this.mcpCatalog ??= new DeferredToolCatalog();
|
|
669
|
+
this.mcpCatalog ??= new DeferredToolCatalog(this.contextLimits);
|
|
631
670
|
// `add` is name-keyed, so live definitions replace cached stubs in place.
|
|
632
671
|
this.mcpCatalog.add(mcpTools);
|
|
633
672
|
// A stub the model already promoted lives in `this.tools`; swap it for the
|
|
@@ -645,7 +684,7 @@ export class AgentSession {
|
|
|
645
684
|
* registration on an existing catalog would leave those tools unreachable.
|
|
646
685
|
*/
|
|
647
686
|
ensureToolSearchTool() {
|
|
648
|
-
this.mcpCatalog ??= new DeferredToolCatalog();
|
|
687
|
+
this.mcpCatalog ??= new DeferredToolCatalog(this.contextLimits);
|
|
649
688
|
if (this.tools.some((t) => t.name === "tool_search"))
|
|
650
689
|
return;
|
|
651
690
|
this.tools.push(createToolSearchTool(this.mcpCatalog, (promoted) => {
|
|
@@ -663,7 +702,7 @@ export class AgentSession {
|
|
|
663
702
|
return outcome.ok
|
|
664
703
|
? { serverName, ok: true }
|
|
665
704
|
: { serverName, ok: false, error: outcome.error };
|
|
666
|
-
}));
|
|
705
|
+
}, this.contextLimits));
|
|
667
706
|
}
|
|
668
707
|
/** Append tools, replacing any same-named entry (cached stub → live tool). */
|
|
669
708
|
replaceOrPushTools(tools) {
|
|
@@ -721,7 +760,7 @@ export class AgentSession {
|
|
|
721
760
|
}
|
|
722
761
|
/** Catalog-only registration for cached stubs — never marks them live. */
|
|
723
762
|
addCachedMcpTools(stubs) {
|
|
724
|
-
this.mcpCatalog ??= new DeferredToolCatalog();
|
|
763
|
+
this.mcpCatalog ??= new DeferredToolCatalog(this.contextLimits);
|
|
725
764
|
this.mcpCatalog.add(stubs);
|
|
726
765
|
this.ensureToolSearchTool();
|
|
727
766
|
}
|
|
@@ -859,12 +898,28 @@ export class AgentSession {
|
|
|
859
898
|
buildAttachmentParts(text, attachments) {
|
|
860
899
|
const parts = [];
|
|
861
900
|
const fileNotes = [];
|
|
862
|
-
const
|
|
901
|
+
const modelInfo = getModel(this.model);
|
|
902
|
+
const modelSupportsVideo = modelInfo?.supportsVideo ?? false;
|
|
903
|
+
// GLM only: GLM models have no native image input, but the GLM session is
|
|
904
|
+
// the only one with the zai_vision MCP server connected (core/mcp/defaults.ts).
|
|
905
|
+
// Point at the real tool instead of an inline image the provider layer would
|
|
906
|
+
// blank into a placeholder. Every other provider keeps inline images.
|
|
907
|
+
const glmImageHint = this.provider === "glm" && modelInfo?.supportsImages === false;
|
|
863
908
|
for (const a of attachments) {
|
|
864
909
|
if (a.kind === "image") {
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
910
|
+
if (glmImageHint && a.path) {
|
|
911
|
+
parts.push({
|
|
912
|
+
type: "text",
|
|
913
|
+
text: `[User attached an image saved at: ${a.path} — analyze it with the ` +
|
|
914
|
+
`mcp__zai_vision__analyze_image tool (if that tool is not available yet, ` +
|
|
915
|
+
`call tool_search with "analyze image" to unlock it first, then call it with image_source=${a.path})]`,
|
|
916
|
+
});
|
|
917
|
+
}
|
|
918
|
+
else {
|
|
919
|
+
parts.push({ type: "image", mediaType: a.mediaType, data: a.data });
|
|
920
|
+
if (a.path) {
|
|
921
|
+
parts.push({ type: "text", text: `[Image saved at ${a.path}]` });
|
|
922
|
+
}
|
|
868
923
|
}
|
|
869
924
|
}
|
|
870
925
|
else if (a.kind === "video") {
|
|
@@ -936,10 +991,15 @@ export class AgentSession {
|
|
|
936
991
|
this.reviewCoverage.reset();
|
|
937
992
|
this.reviewCoverageInjected = 0;
|
|
938
993
|
this.idealReviewPhase = "idle";
|
|
994
|
+
// No event here: clients reset their own hold on run_start.
|
|
995
|
+
this.idealReviewArmed = false;
|
|
996
|
+
this.verificationArmed = false;
|
|
997
|
+
this.idealDriftProbe = null;
|
|
939
998
|
this.loopBreakInjected = 0;
|
|
940
999
|
this.regroundingInjected = false;
|
|
941
1000
|
this.runStartedAt = Date.now();
|
|
942
1001
|
this.processGateInjected = 0;
|
|
1002
|
+
this.verificationGate.reset();
|
|
943
1003
|
this.compactionOccurred = false;
|
|
944
1004
|
this.originalRequest = originalRequest;
|
|
945
1005
|
}
|
|
@@ -978,10 +1038,48 @@ export class AgentSession {
|
|
|
978
1038
|
const removed = (diff.match(/^-[^-]/gm) ?? []).length;
|
|
979
1039
|
this.hookStats.changedLines += added + removed;
|
|
980
1040
|
}
|
|
1041
|
+
// Verification-gate bookkeeping: successful code mutations and completed
|
|
1042
|
+
// foreground verification commands, in occurrence order.
|
|
1043
|
+
if (!event.isError && args) {
|
|
1044
|
+
if (name === "edit" || name === "write") {
|
|
1045
|
+
const filePath = String(args.file_path ?? "");
|
|
1046
|
+
// Check-owning files (tsconfig.json, pytest.ini, vitest.config.ts …)
|
|
1047
|
+
// are tracked even when they are not source code: editing one is how
|
|
1048
|
+
// a red suite is turned green without fixing anything.
|
|
1049
|
+
if (filePath && (isCodeFilePath(filePath) || isCheckOwnFile(filePath))) {
|
|
1050
|
+
const addedText = name === "write"
|
|
1051
|
+
? String(args.content ?? "")
|
|
1052
|
+
: extractAddedLines(event.details?.diff ?? event.result);
|
|
1053
|
+
this.verificationGate.recordMutation(filePath, addedText);
|
|
1054
|
+
}
|
|
1055
|
+
}
|
|
1056
|
+
if (name === "bash" &&
|
|
1057
|
+
!args.run_in_background &&
|
|
1058
|
+
isVerificationCommand(String(args.command ?? ""))) {
|
|
1059
|
+
this.verificationGate.recordVerification();
|
|
1060
|
+
}
|
|
1061
|
+
// Reading the final output of an EXITED background verification run
|
|
1062
|
+
// counts: the process gate forces this read anyway, so without it the
|
|
1063
|
+
// gate would demand a redundant foreground re-run of tests the agent
|
|
1064
|
+
// already watched finish.
|
|
1065
|
+
if (name === "task_output") {
|
|
1066
|
+
const proc = this.processManager
|
|
1067
|
+
?.list()
|
|
1068
|
+
.find((p) => p.id === args.id);
|
|
1069
|
+
if (proc && proc.exitCode !== null && isVerificationCommand(proc.command)) {
|
|
1070
|
+
this.verificationGate.recordVerification();
|
|
1071
|
+
}
|
|
1072
|
+
}
|
|
1073
|
+
}
|
|
1074
|
+
// Tool results are what push the run over the review gate, and they all
|
|
1075
|
+
// land before the model writes its candidate final answer — so this is
|
|
1076
|
+
// the point where arming still beats the draft's first token.
|
|
1077
|
+
this.refreshHookArming();
|
|
981
1078
|
break;
|
|
982
1079
|
}
|
|
983
1080
|
case "turn_end":
|
|
984
1081
|
this.hookStats.turns = event.turn;
|
|
1082
|
+
this.refreshHookArming();
|
|
985
1083
|
for (let index = this.messages.length - 1; index >= 0; index--) {
|
|
986
1084
|
const anchor = this.messages[index];
|
|
987
1085
|
if (anchor?.role === "assistant") {
|
|
@@ -1036,6 +1134,24 @@ export class AgentSession {
|
|
|
1036
1134
|
* Mirrors the TUI's getSteeringMessages ordering.
|
|
1037
1135
|
*/
|
|
1038
1136
|
getHookSteeringMessages() {
|
|
1137
|
+
// Environment drift: settings can move the network allowlist mid-session,
|
|
1138
|
+
// and `/add-dir` can widen the workspace, with no prompt rebuild — leaving
|
|
1139
|
+
// the cached Environment section describing facts that are no longer real.
|
|
1140
|
+
// Correcting it by appending is ~30 tokens; re-rendering the prompt would
|
|
1141
|
+
// invalidate every cached byte from that section onward. Unconditional and
|
|
1142
|
+
// cheap: identical facts produce no message at all.
|
|
1143
|
+
//
|
|
1144
|
+
// This runs for a verbatim custom prompt TOO. Those sessions (Nolan's) never
|
|
1145
|
+
// rebuild their prompt, so this note is the only channel that can tell them
|
|
1146
|
+
// a root was added — skipping it meant Nolan could write into a folder it had
|
|
1147
|
+
// never been told about. The note states the facts outright rather than
|
|
1148
|
+
// referring to a section such a prompt does not have.
|
|
1149
|
+
const environmentDelta = buildEnvDeltaMessage(this.renderedEnvironment, this.promptEnvironment());
|
|
1150
|
+
if (environmentDelta) {
|
|
1151
|
+
// The model has now been told; only a further change re-triggers this.
|
|
1152
|
+
this.renderedEnvironment = this.promptEnvironment();
|
|
1153
|
+
log("INFO", "session", "Injecting an environment update the prompt is too stale to show");
|
|
1154
|
+
}
|
|
1039
1155
|
// Push notifications: a child that finished or a background build that
|
|
1040
1156
|
// exited is new *fact*, not a correction, and it is cheap (bounded to 1 KiB
|
|
1041
1157
|
// per drain). Drained above the loop-break checks so the agent can act on
|
|
@@ -1087,10 +1203,18 @@ export class AgentSession {
|
|
|
1087
1203
|
];
|
|
1088
1204
|
return { role: "user", content: parts, provenance };
|
|
1089
1205
|
});
|
|
1090
|
-
return
|
|
1206
|
+
return [
|
|
1207
|
+
...(environmentDelta ? [environmentDelta] : []),
|
|
1208
|
+
...steeringMessages,
|
|
1209
|
+
...(notificationMessage ? [notificationMessage] : []),
|
|
1210
|
+
];
|
|
1211
|
+
}
|
|
1212
|
+
if (environmentDelta || notificationMessage) {
|
|
1213
|
+
return [
|
|
1214
|
+
...(environmentDelta ? [environmentDelta] : []),
|
|
1215
|
+
...(notificationMessage ? [notificationMessage] : []),
|
|
1216
|
+
];
|
|
1091
1217
|
}
|
|
1092
|
-
if (notificationMessage)
|
|
1093
|
-
return [notificationMessage];
|
|
1094
1218
|
if (this.opts.selfCorrectionHooks === false)
|
|
1095
1219
|
return null;
|
|
1096
1220
|
if (!this.settingsManager.get("idealReviewEnabled"))
|
|
@@ -1165,6 +1289,86 @@ export class AgentSession {
|
|
|
1165
1289
|
});
|
|
1166
1290
|
return granted;
|
|
1167
1291
|
}
|
|
1292
|
+
/**
|
|
1293
|
+
* Would the stop AFTER the current turn inject the Ideal review? Same inputs
|
|
1294
|
+
* as the pre-stop gate below, evaluated early so clients know a candidate
|
|
1295
|
+
* final answer is a review draft BEFORE it streams.
|
|
1296
|
+
*
|
|
1297
|
+
* The turn count is looked ahead by one on purpose. `hookStats.turns` only
|
|
1298
|
+
* advances at `turn_end`, so while the model is writing the draft the counter
|
|
1299
|
+
* still reads the PREVIOUS turn; the real gate sees one more. Without the
|
|
1300
|
+
* lookahead a run sitting on score 3 crosses to 4 on the draft's own
|
|
1301
|
+
* `turn_end` — after the text already streamed — which is precisely the
|
|
1302
|
+
* appear-then-vanish flash. Over-arming by one turn point costs only live
|
|
1303
|
+
* token streaming on a final answer that then shows whole; under-arming costs
|
|
1304
|
+
* the flash, so this errs toward arming.
|
|
1305
|
+
*/
|
|
1306
|
+
wouldInjectIdealReview() {
|
|
1307
|
+
if (this.opts.selfCorrectionHooks === false || this.idealReviewSuppressed)
|
|
1308
|
+
return false;
|
|
1309
|
+
// Mid-review a stop still injects: the coverage follow-up while files are
|
|
1310
|
+
// unread, or its escalation once the budget is spent. Both make the model
|
|
1311
|
+
// answer again, so the candidate answer is a draft exactly as it is before
|
|
1312
|
+
// the review starts — without arming here it paints and the reviewed answer
|
|
1313
|
+
// lands under it as a duplicate.
|
|
1314
|
+
if (this.idealReviewPhase === "reviewing") {
|
|
1315
|
+
return this.reviewCoverage.evidence().missing.length > 0;
|
|
1316
|
+
}
|
|
1317
|
+
if (this.idealReviewPhase !== "idle")
|
|
1318
|
+
return false;
|
|
1319
|
+
if (!this.settingsManager.get("idealReviewEnabled"))
|
|
1320
|
+
return false;
|
|
1321
|
+
if (evaluateIdealReview({ ...this.hookStats, turns: this.hookStats.turns + 1 }).shouldReview) {
|
|
1322
|
+
return true;
|
|
1323
|
+
}
|
|
1324
|
+
const files = this.hookFileEditCounts.size;
|
|
1325
|
+
if (files === 0)
|
|
1326
|
+
return false;
|
|
1327
|
+
if (this.idealDriftProbe?.files !== files) {
|
|
1328
|
+
this.idealDriftProbe = {
|
|
1329
|
+
files,
|
|
1330
|
+
drifted: detectTestDrift(this.hookFileEditCounts.keys(), this.cwd).length > 0,
|
|
1331
|
+
};
|
|
1332
|
+
}
|
|
1333
|
+
return this.idealDriftProbe.drifted;
|
|
1334
|
+
}
|
|
1335
|
+
/** Would a stop right now inject the verification gate? Same conditions as
|
|
1336
|
+
* the pre-stop branch below, so arming and injection cannot disagree. */
|
|
1337
|
+
wouldInjectVerification() {
|
|
1338
|
+
if (this.opts.selfCorrectionHooks === false)
|
|
1339
|
+
return false;
|
|
1340
|
+
if (!this.settingsManager.get("verificationGateEnabled"))
|
|
1341
|
+
return false;
|
|
1342
|
+
if (this.opts.allowedTools && !this.opts.allowedTools.includes("bash"))
|
|
1343
|
+
return false;
|
|
1344
|
+
return this.verificationGate.willInject();
|
|
1345
|
+
}
|
|
1346
|
+
/** Broadcast pre-final hook arming on change. Both edges matter: armed=false
|
|
1347
|
+
* after the hook fires is what lets a client stream the REVIEWED final
|
|
1348
|
+
* answer live again.
|
|
1349
|
+
*
|
|
1350
|
+
* Callable before `initialize()`: the sidecar sets Nolan's review suppression
|
|
1351
|
+
* on a freshly constructed session, and every arming predicate below reads
|
|
1352
|
+
* settings that `initialize()` has not loaded yet. Nothing can be armed
|
|
1353
|
+
* before the session can run a turn, and the first `tool_result`/`turn_end`
|
|
1354
|
+
* recomputes both edges — so skipping is the correct answer, not a patch. */
|
|
1355
|
+
refreshHookArming() {
|
|
1356
|
+
if (!this.settingsManager)
|
|
1357
|
+
return;
|
|
1358
|
+
this.refreshIdealReviewArmed();
|
|
1359
|
+
const armed = this.wouldInjectVerification();
|
|
1360
|
+
if (armed === this.verificationArmed)
|
|
1361
|
+
return;
|
|
1362
|
+
this.verificationArmed = armed;
|
|
1363
|
+
this.eventBus.emit("hook_armed", { kind: "verification", armed });
|
|
1364
|
+
}
|
|
1365
|
+
refreshIdealReviewArmed() {
|
|
1366
|
+
const armed = this.wouldInjectIdealReview();
|
|
1367
|
+
if (armed === this.idealReviewArmed)
|
|
1368
|
+
return;
|
|
1369
|
+
this.idealReviewArmed = armed;
|
|
1370
|
+
this.eventBus.emit("hook_armed", { kind: "ideal", armed });
|
|
1371
|
+
}
|
|
1168
1372
|
/**
|
|
1169
1373
|
* Pre-stop Ideal review phase machine. Once review starts, completion is
|
|
1170
1374
|
* blocked until harness-owned post-injection reads cover every changed file.
|
|
@@ -1184,6 +1388,23 @@ export class AgentSession {
|
|
|
1184
1388
|
});
|
|
1185
1389
|
return processFollowUp;
|
|
1186
1390
|
}
|
|
1391
|
+
// Verification gate: code was edited but nothing verified since the last
|
|
1392
|
+
// edit. Above the Ideal review so checks RUN before the read-based review
|
|
1393
|
+
// starts; off for allow-listed sessions that cannot run commands at all.
|
|
1394
|
+
if (this.opts.selfCorrectionHooks !== false &&
|
|
1395
|
+
this.settingsManager.get("verificationGateEnabled") &&
|
|
1396
|
+
(!this.opts.allowedTools || this.opts.allowedTools.includes("bash"))) {
|
|
1397
|
+
const verificationFollowUp = this.verificationGate.followUp();
|
|
1398
|
+
if (verificationFollowUp) {
|
|
1399
|
+
log("INFO", "verification-gate", "Injecting verification follow-up", {});
|
|
1400
|
+
// Announce, THEN disarm: clients release held text on disarm, so the
|
|
1401
|
+
// reverse order paints the draft and immediately deletes it — the exact
|
|
1402
|
+
// flash arming exists to prevent.
|
|
1403
|
+
this.eventBus.emit("hook", { kind: "verification" });
|
|
1404
|
+
this.refreshHookArming();
|
|
1405
|
+
return verificationFollowUp;
|
|
1406
|
+
}
|
|
1407
|
+
}
|
|
1187
1408
|
if (this.opts.selfCorrectionHooks === false || this.idealReviewSuppressed)
|
|
1188
1409
|
return null;
|
|
1189
1410
|
if (this.idealReviewPhase === "reviewing") {
|
|
@@ -1196,8 +1417,20 @@ export class AgentSession {
|
|
|
1196
1417
|
lspMissing: lspEvidence.missing,
|
|
1197
1418
|
});
|
|
1198
1419
|
if (coverage.missing.length > 0) {
|
|
1420
|
+
// Announce like any other pre-final injection: this follow-up makes the
|
|
1421
|
+
// model answer again, so the answer it interrupts is a draft and the
|
|
1422
|
+
// hook event is what tells clients to discard it. Injecting silently is
|
|
1423
|
+
// what let the pre-coverage answer paint above the reviewed one.
|
|
1424
|
+
this.eventBus.emit("hook", {
|
|
1425
|
+
kind: "ideal",
|
|
1426
|
+
coverageExpected: coverage.expected,
|
|
1427
|
+
coverageMissing: coverage.missing,
|
|
1428
|
+
});
|
|
1199
1429
|
if (this.reviewCoverageInjected < MAX_REVIEW_COVERAGE_INJECTIONS) {
|
|
1200
1430
|
this.reviewCoverageInjected += 1;
|
|
1431
|
+
// Stays armed (coverage is still outstanding) — this call is here so a
|
|
1432
|
+
// client that missed the earlier edge is armed before the next draft.
|
|
1433
|
+
this.refreshIdealReviewArmed();
|
|
1201
1434
|
return [
|
|
1202
1435
|
this.withReviewLspEvidence(buildReviewCoverageMessage(coverage.missing), lspEvidence),
|
|
1203
1436
|
];
|
|
@@ -1205,6 +1438,9 @@ export class AgentSession {
|
|
|
1205
1438
|
// Budget spent: close the gate so the run cannot spin on a file that
|
|
1206
1439
|
// never becomes readable, and require the gap be reported to the user.
|
|
1207
1440
|
this.idealReviewPhase = "complete";
|
|
1441
|
+
// The gate is shut, so this is the real disarm: the answer to the
|
|
1442
|
+
// escalation is final and streams live.
|
|
1443
|
+
this.refreshIdealReviewArmed();
|
|
1208
1444
|
log("INFO", "ideal", "Ideal review coverage escalated after retry budget", {
|
|
1209
1445
|
injected: String(this.reviewCoverageInjected),
|
|
1210
1446
|
missing: coverage.missing,
|
|
@@ -1233,6 +1469,13 @@ export class AgentSession {
|
|
|
1233
1469
|
coverageExpected: coverage.expected,
|
|
1234
1470
|
coverageMissing: coverage.missing,
|
|
1235
1471
|
});
|
|
1472
|
+
// Recompute strictly AFTER the hook event: clients release held text on
|
|
1473
|
+
// disarm, so the reverse order would paint the draft and then delete it —
|
|
1474
|
+
// the exact flash arming exists to prevent. Arming normally PERSISTS here,
|
|
1475
|
+
// because review starts with every changed file uncovered and a stop while
|
|
1476
|
+
// coverage is outstanding injects again. Disarm lands later, on the read
|
|
1477
|
+
// that closes the last gap (or when the retry budget escalates).
|
|
1478
|
+
this.refreshIdealReviewArmed();
|
|
1236
1479
|
log("INFO", "ideal", "Injecting ideal review before final response", {
|
|
1237
1480
|
coverageExpected: coverage.expected,
|
|
1238
1481
|
coverageMissing: coverage.missing,
|
|
@@ -1720,7 +1963,7 @@ export class AgentSession {
|
|
|
1720
1963
|
// Reconnect MCP servers ONLY when GLM is involved on either side — GLM
|
|
1721
1964
|
// is the only provider with a different server set (Z.AI tools), so a
|
|
1722
1965
|
// non-GLM switch keeps the identical set. Skipping the dispose/reconnect
|
|
1723
|
-
// there avoids tearing down a live stdio child
|
|
1966
|
+
// there avoids tearing down a live stdio child and
|
|
1724
1967
|
// gambling on a `npx` re-spawn that could fail and drop the tools.
|
|
1725
1968
|
const glmInvolved = this.provider === "glm" || prevProvider === "glm";
|
|
1726
1969
|
if (this.mcpManager && glmInvolved) {
|
|
@@ -1741,7 +1984,9 @@ export class AgentSession {
|
|
|
1741
1984
|
}
|
|
1742
1985
|
}
|
|
1743
1986
|
// Use getAllMcpServers so user-configured servers survive the reconnect.
|
|
1744
|
-
const servers = await getAllMcpServers(this.provider, apiKey, this.cwd
|
|
1987
|
+
const servers = await getAllMcpServers(this.provider, apiKey, this.cwd, {
|
|
1988
|
+
allowProjectScope: this.settingsManager.isProjectTrusted(this.cwd),
|
|
1989
|
+
});
|
|
1745
1990
|
const mcpTools = await this.mcpManager.connectAll(servers);
|
|
1746
1991
|
// Drop stale MCP tools from both the live set and deferred catalog before
|
|
1747
1992
|
// re-adding. Some tools may already have been promoted out of the catalog.
|
|
@@ -2144,6 +2389,9 @@ export class AgentSession {
|
|
|
2144
2389
|
this.idealReviewPhase = "idle";
|
|
2145
2390
|
this.reviewCoverage.reset();
|
|
2146
2391
|
}
|
|
2392
|
+
// Suppression flips mid-run (autopilot takes over verification), so a client
|
|
2393
|
+
// holding a draft under a stale arming must be released.
|
|
2394
|
+
this.refreshHookArming();
|
|
2147
2395
|
}
|
|
2148
2396
|
/** Queue a user message (optionally with attachments) to be injected mid-run
|
|
2149
2397
|
* as steering. Returns the new queue length. No-op semantics are the caller's
|
|
@@ -2302,6 +2550,16 @@ export class AgentSession {
|
|
|
2302
2550
|
const live = new Set(liveNames);
|
|
2303
2551
|
return this.deferredBuiltinToolNames.filter((name) => !live.has(name));
|
|
2304
2552
|
}
|
|
2553
|
+
/**
|
|
2554
|
+
* The environment about to be rendered into a prompt, remembered as the
|
|
2555
|
+
* truth the model has been told. Pairs with the env-delta hook: whatever the
|
|
2556
|
+
* prompt states, the model is only corrected when reality moves away from it.
|
|
2557
|
+
*/
|
|
2558
|
+
recordRenderedEnvironment() {
|
|
2559
|
+
const environment = this.promptEnvironment();
|
|
2560
|
+
this.renderedEnvironment = environment;
|
|
2561
|
+
return environment;
|
|
2562
|
+
}
|
|
2305
2563
|
/** Environment facts that vary per session rather than per host. */
|
|
2306
2564
|
promptEnvironment() {
|
|
2307
2565
|
const networkAllow = this.settingsManager.get("networkMode") === "allowlist"
|
|
@@ -2327,10 +2585,11 @@ export class AgentSession {
|
|
|
2327
2585
|
toolNames,
|
|
2328
2586
|
deferredToolNames,
|
|
2329
2587
|
context: this.opts.agentContext,
|
|
2330
|
-
environment: this.
|
|
2588
|
+
environment: this.recordRenderedEnvironment(),
|
|
2589
|
+
contextLimits: this.contextLimits,
|
|
2331
2590
|
});
|
|
2332
2591
|
}
|
|
2333
|
-
return buildSystemPrompt(this.cwd, this.skills, planMode, approvedPlanPath, toolNames, undefined, this.provider, this.
|
|
2592
|
+
return buildSystemPrompt(this.cwd, this.skills, planMode, approvedPlanPath, toolNames, undefined, this.provider, this.recordRenderedEnvironment(), deferredToolNames, this.contextLimits);
|
|
2334
2593
|
}
|
|
2335
2594
|
/** Rebuild messages[0] from current plan-mode + approved-plan state. */
|
|
2336
2595
|
async rebuildSystemPromptInPlace() {
|