apex-code 0.0.1-alpha.8 → 0.0.4
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/CHANGELOG.md +231 -0
- package/README.md +9 -8
- package/dist/cli/args.d.ts +26 -1
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +72 -10
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/file-processor.d.ts.map +1 -1
- package/dist/cli/file-processor.js +2 -1
- package/dist/cli/file-processor.js.map +1 -1
- package/dist/cli/mcp-command.d.ts +9 -0
- package/dist/cli/mcp-command.d.ts.map +1 -0
- package/dist/cli/mcp-command.js +53 -0
- package/dist/cli/mcp-command.js.map +1 -0
- package/dist/cli/project-trust.d.ts.map +1 -1
- package/dist/cli/project-trust.js +3 -1
- package/dist/cli/project-trust.js.map +1 -1
- package/dist/cli/startup-ui.d.ts.map +1 -1
- package/dist/cli/startup-ui.js +2 -1
- package/dist/cli/startup-ui.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +94 -5
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +3 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +45 -18
- package/dist/config.js.map +1 -1
- package/dist/core/agent-session-services.d.ts +3 -0
- package/dist/core/agent-session-services.d.ts.map +1 -1
- package/dist/core/agent-session-services.js +1 -0
- package/dist/core/agent-session-services.js.map +1 -1
- package/dist/core/agent-session.d.ts +183 -15
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +728 -117
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/auth-storage.d.ts.map +1 -1
- package/dist/core/auth-storage.js +6 -7
- package/dist/core/auth-storage.js.map +1 -1
- package/dist/core/bash-executor.d.ts.map +1 -1
- package/dist/core/bash-executor.js +7 -0
- package/dist/core/bash-executor.js.map +1 -1
- package/dist/core/checkpoints/git-checkpoints.d.ts +39 -0
- package/dist/core/checkpoints/git-checkpoints.d.ts.map +1 -0
- package/dist/core/checkpoints/git-checkpoints.js +251 -0
- package/dist/core/checkpoints/git-checkpoints.js.map +1 -0
- package/dist/core/checkpoints/session-checkpoints.d.ts +23 -0
- package/dist/core/checkpoints/session-checkpoints.d.ts.map +1 -0
- package/dist/core/checkpoints/session-checkpoints.js +36 -0
- package/dist/core/checkpoints/session-checkpoints.js.map +1 -0
- package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
- package/dist/core/compaction/branch-summarization.js +7 -3
- package/dist/core/compaction/branch-summarization.js.map +1 -1
- package/dist/core/compaction/compaction.d.ts +9 -3
- package/dist/core/compaction/compaction.d.ts.map +1 -1
- package/dist/core/compaction/compaction.js +59 -36
- package/dist/core/compaction/compaction.js.map +1 -1
- package/dist/core/defaults.d.ts +1 -0
- package/dist/core/defaults.d.ts.map +1 -1
- package/dist/core/defaults.js +9 -0
- package/dist/core/defaults.js.map +1 -1
- package/dist/core/delegation/runtime.d.ts +6 -5
- package/dist/core/delegation/runtime.d.ts.map +1 -1
- package/dist/core/delegation/runtime.js +4 -3
- package/dist/core/delegation/runtime.js.map +1 -1
- package/dist/core/durable-state/sqlite.d.ts.map +1 -1
- package/dist/core/durable-state/sqlite.js +26 -2
- package/dist/core/durable-state/sqlite.js.map +1 -1
- package/dist/core/exec.d.ts.map +1 -1
- package/dist/core/exec.js +5 -2
- package/dist/core/exec.js.map +1 -1
- package/dist/core/extensions/index.d.ts +2 -2
- package/dist/core/extensions/index.d.ts.map +1 -1
- package/dist/core/extensions/index.js +1 -1
- package/dist/core/extensions/index.js.map +1 -1
- package/dist/core/extensions/loader.d.ts.map +1 -1
- package/dist/core/extensions/loader.js +123 -50
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/extensions/runner.d.ts +5 -0
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js +45 -1
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/source-runtime.d.ts +14 -0
- package/dist/core/extensions/source-runtime.d.ts.map +1 -0
- package/dist/core/extensions/source-runtime.js +56 -0
- package/dist/core/extensions/source-runtime.js.map +1 -0
- package/dist/core/extensions/types.d.ts +60 -11
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js +3 -0
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/footer-data-provider.d.ts +1 -1
- package/dist/core/footer-data-provider.d.ts.map +1 -1
- package/dist/core/footer-data-provider.js +1 -1
- package/dist/core/footer-data-provider.js.map +1 -1
- package/dist/core/formatter-lifecycle.d.ts +69 -0
- package/dist/core/formatter-lifecycle.d.ts.map +1 -0
- package/dist/core/formatter-lifecycle.js +360 -0
- package/dist/core/formatter-lifecycle.js.map +1 -0
- package/dist/core/hooks/command-handler.d.ts +19 -0
- package/dist/core/hooks/command-handler.d.ts.map +1 -0
- package/dist/core/hooks/command-handler.js +112 -0
- package/dist/core/hooks/command-handler.js.map +1 -0
- package/dist/core/hooks/http-handler.d.ts +10 -0
- package/dist/core/hooks/http-handler.d.ts.map +1 -0
- package/dist/core/hooks/http-handler.js +36 -0
- package/dist/core/hooks/http-handler.js.map +1 -0
- package/dist/core/hooks/loader.d.ts +29 -0
- package/dist/core/hooks/loader.d.ts.map +1 -0
- package/dist/core/hooks/loader.js +139 -0
- package/dist/core/hooks/loader.js.map +1 -0
- package/dist/core/hooks/runtime.d.ts +13 -0
- package/dist/core/hooks/runtime.d.ts.map +1 -0
- package/dist/core/hooks/runtime.js +63 -0
- package/dist/core/hooks/runtime.js.map +1 -0
- package/dist/core/hooks/types.d.ts +83 -0
- package/dist/core/hooks/types.d.ts.map +1 -0
- package/dist/core/hooks/types.js +24 -0
- package/dist/core/hooks/types.js.map +1 -0
- package/dist/core/keybindings.d.ts +20 -19
- package/dist/core/keybindings.d.ts.map +1 -1
- package/dist/core/keybindings.js +26 -5
- package/dist/core/keybindings.js.map +1 -1
- package/dist/core/mcp/config.d.ts +16 -0
- package/dist/core/mcp/config.d.ts.map +1 -0
- package/dist/core/mcp/config.js +166 -0
- package/dist/core/mcp/config.js.map +1 -0
- package/dist/core/mcp/connector.d.ts +35 -0
- package/dist/core/mcp/connector.d.ts.map +1 -0
- package/dist/core/mcp/connector.js +105 -0
- package/dist/core/mcp/connector.js.map +1 -0
- package/dist/core/mcp/contract.d.ts +19 -0
- package/dist/core/mcp/contract.d.ts.map +1 -0
- package/dist/core/mcp/contract.js +89 -0
- package/dist/core/mcp/contract.js.map +1 -0
- package/dist/core/mcp/mcp-tool.d.ts +32 -0
- package/dist/core/mcp/mcp-tool.d.ts.map +1 -0
- package/dist/core/mcp/mcp-tool.js +171 -0
- package/dist/core/mcp/mcp-tool.js.map +1 -0
- package/dist/core/mcp/metadata-cache.d.ts +29 -0
- package/dist/core/mcp/metadata-cache.d.ts.map +1 -0
- package/dist/core/mcp/metadata-cache.js +99 -0
- package/dist/core/mcp/metadata-cache.js.map +1 -0
- package/dist/core/mcp/oauth/authorize.d.ts +21 -0
- package/dist/core/mcp/oauth/authorize.d.ts.map +1 -0
- package/dist/core/mcp/oauth/authorize.js +32 -0
- package/dist/core/mcp/oauth/authorize.js.map +1 -0
- package/dist/core/mcp/oauth/discover.d.ts +27 -0
- package/dist/core/mcp/oauth/discover.d.ts.map +1 -0
- package/dist/core/mcp/oauth/discover.js +116 -0
- package/dist/core/mcp/oauth/discover.js.map +1 -0
- package/dist/core/mcp/oauth/flow.d.ts +31 -0
- package/dist/core/mcp/oauth/flow.d.ts.map +1 -0
- package/dist/core/mcp/oauth/flow.js +175 -0
- package/dist/core/mcp/oauth/flow.js.map +1 -0
- package/dist/core/mcp/oauth/mcp-token.d.ts +51 -0
- package/dist/core/mcp/oauth/mcp-token.d.ts.map +1 -0
- package/dist/core/mcp/oauth/mcp-token.js +129 -0
- package/dist/core/mcp/oauth/mcp-token.js.map +1 -0
- package/dist/core/mcp/oauth/pkce.d.ts +12 -0
- package/dist/core/mcp/oauth/pkce.d.ts.map +1 -0
- package/dist/core/mcp/oauth/pkce.js +11 -0
- package/dist/core/mcp/oauth/pkce.js.map +1 -0
- package/dist/core/mcp/oauth/register.d.ts +16 -0
- package/dist/core/mcp/oauth/register.d.ts.map +1 -0
- package/dist/core/mcp/oauth/register.js +42 -0
- package/dist/core/mcp/oauth/register.js.map +1 -0
- package/dist/core/mcp/oauth/token-client.d.ts +33 -0
- package/dist/core/mcp/oauth/token-client.d.ts.map +1 -0
- package/dist/core/mcp/oauth/token-client.js +65 -0
- package/dist/core/mcp/oauth/token-client.js.map +1 -0
- package/dist/core/mcp/runtime.d.ts +20 -0
- package/dist/core/mcp/runtime.d.ts.map +1 -0
- package/dist/core/mcp/runtime.js +37 -0
- package/dist/core/mcp/runtime.js.map +1 -0
- package/dist/core/mcp/schema.d.ts +22 -0
- package/dist/core/mcp/schema.d.ts.map +1 -0
- package/dist/core/mcp/schema.js +20 -0
- package/dist/core/mcp/schema.js.map +1 -0
- package/dist/core/mcp/server-manager.d.ts +43 -0
- package/dist/core/mcp/server-manager.d.ts.map +1 -0
- package/dist/core/mcp/server-manager.js +142 -0
- package/dist/core/mcp/server-manager.js.map +1 -0
- package/dist/core/mcp/types.d.ts +100 -0
- package/dist/core/mcp/types.d.ts.map +1 -0
- package/dist/core/mcp/types.js +8 -0
- package/dist/core/mcp/types.js.map +1 -0
- package/dist/core/model-config.d.ts +5 -0
- package/dist/core/model-config.d.ts.map +1 -1
- package/dist/core/model-config.js +3 -1
- package/dist/core/model-config.js.map +1 -1
- package/dist/core/model-resolver.d.ts +1 -0
- package/dist/core/model-resolver.d.ts.map +1 -1
- package/dist/core/model-resolver.js +14 -8
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/models-store.d.ts.map +1 -1
- package/dist/core/models-store.js +2 -1
- package/dist/core/models-store.js.map +1 -1
- package/dist/core/package-manager.d.ts.map +1 -1
- package/dist/core/package-manager.js +22 -14
- package/dist/core/package-manager.js.map +1 -1
- package/dist/core/permissions/gate.d.ts.map +1 -1
- package/dist/core/permissions/gate.js +45 -4
- package/dist/core/permissions/gate.js.map +1 -1
- package/dist/core/permissions/operations.d.ts +20 -0
- package/dist/core/permissions/operations.d.ts.map +1 -0
- package/dist/core/permissions/operations.js +9 -0
- package/dist/core/permissions/operations.js.map +1 -0
- package/dist/core/permissions/policy-command.d.ts +42 -0
- package/dist/core/permissions/policy-command.d.ts.map +1 -0
- package/dist/core/permissions/policy-command.js +44 -0
- package/dist/core/permissions/policy-command.js.map +1 -0
- package/dist/core/permissions/responder.d.ts +49 -2
- package/dist/core/permissions/responder.d.ts.map +1 -1
- package/dist/core/permissions/responder.js +20 -8
- package/dist/core/permissions/responder.js.map +1 -1
- package/dist/core/permissions/rules.d.ts.map +1 -1
- package/dist/core/permissions/rules.js +11 -1
- package/dist/core/permissions/rules.js.map +1 -1
- package/dist/core/permissions/store.d.ts +18 -0
- package/dist/core/permissions/store.d.ts.map +1 -1
- package/dist/core/permissions/store.js +89 -8
- package/dist/core/permissions/store.js.map +1 -1
- package/dist/core/pi-manifest.d.ts.map +1 -1
- package/dist/core/pi-manifest.js +2 -1
- package/dist/core/pi-manifest.js.map +1 -1
- package/dist/core/policy-executor.d.ts +47 -0
- package/dist/core/policy-executor.d.ts.map +1 -0
- package/dist/core/policy-executor.js +228 -0
- package/dist/core/policy-executor.js.map +1 -0
- package/dist/core/policy-loader.d.ts +72 -0
- package/dist/core/policy-loader.d.ts.map +1 -0
- package/dist/core/policy-loader.js +195 -0
- package/dist/core/policy-loader.js.map +1 -0
- package/dist/core/project-trust.d.ts +1 -1
- package/dist/core/project-trust.d.ts.map +1 -1
- package/dist/core/project-trust.js.map +1 -1
- package/dist/core/remote-catalog-provider.d.ts.map +1 -1
- package/dist/core/remote-catalog-provider.js +2 -1
- package/dist/core/remote-catalog-provider.js.map +1 -1
- package/dist/core/resource-loader.d.ts.map +1 -1
- package/dist/core/resource-loader.js +3 -2
- package/dist/core/resource-loader.js.map +1 -1
- package/dist/core/sandbox/bwrap-arguments.d.ts +41 -0
- package/dist/core/sandbox/bwrap-arguments.d.ts.map +1 -0
- package/dist/core/sandbox/bwrap-arguments.js +136 -0
- package/dist/core/sandbox/bwrap-arguments.js.map +1 -0
- package/dist/core/sandbox/child-entry.d.ts.map +1 -1
- package/dist/core/sandbox/child-entry.js +3 -1
- package/dist/core/sandbox/child-entry.js.map +1 -1
- package/dist/core/sandbox/cli-launch.d.ts +84 -4
- package/dist/core/sandbox/cli-launch.d.ts.map +1 -1
- package/dist/core/sandbox/cli-launch.js +115 -16
- package/dist/core/sandbox/cli-launch.js.map +1 -1
- package/dist/core/sandbox/cli-supervisor.d.ts +2 -0
- package/dist/core/sandbox/cli-supervisor.d.ts.map +1 -1
- package/dist/core/sandbox/cli-supervisor.js +50 -2
- package/dist/core/sandbox/cli-supervisor.js.map +1 -1
- package/dist/core/sandbox/full-access.d.ts +28 -0
- package/dist/core/sandbox/full-access.d.ts.map +1 -0
- package/dist/core/sandbox/full-access.js +63 -0
- package/dist/core/sandbox/full-access.js.map +1 -0
- package/dist/core/sandbox/git-identity.d.ts +57 -0
- package/dist/core/sandbox/git-identity.d.ts.map +1 -0
- package/dist/core/sandbox/git-identity.js +78 -0
- package/dist/core/sandbox/git-identity.js.map +1 -0
- package/dist/core/sandbox/host-approval.d.ts +42 -0
- package/dist/core/sandbox/host-approval.d.ts.map +1 -0
- package/dist/core/sandbox/host-approval.js +99 -0
- package/dist/core/sandbox/host-approval.js.map +1 -0
- package/dist/core/sandbox/linux-backend.d.ts +14 -0
- package/dist/core/sandbox/linux-backend.d.ts.map +1 -1
- package/dist/core/sandbox/linux-backend.js +158 -80
- package/dist/core/sandbox/linux-backend.js.map +1 -1
- package/dist/core/sandbox/macos-backend.d.ts +5 -0
- package/dist/core/sandbox/macos-backend.d.ts.map +1 -1
- package/dist/core/sandbox/macos-backend.js +164 -5
- package/dist/core/sandbox/macos-backend.js.map +1 -1
- package/dist/core/sandbox/network-proxy.d.ts +19 -0
- package/dist/core/sandbox/network-proxy.d.ts.map +1 -1
- package/dist/core/sandbox/network-proxy.js +93 -19
- package/dist/core/sandbox/network-proxy.js.map +1 -1
- package/dist/core/sandbox/policy.d.ts +8 -0
- package/dist/core/sandbox/policy.d.ts.map +1 -1
- package/dist/core/sandbox/policy.js +29 -12
- package/dist/core/sandbox/policy.js.map +1 -1
- package/dist/core/sandbox/profiles.d.ts +25 -0
- package/dist/core/sandbox/profiles.d.ts.map +1 -0
- package/dist/core/sandbox/profiles.js +23 -0
- package/dist/core/sandbox/profiles.js.map +1 -0
- package/dist/core/sandbox/rpc/command-client.d.ts +28 -0
- package/dist/core/sandbox/rpc/command-client.d.ts.map +1 -0
- package/dist/core/sandbox/rpc/command-client.js +86 -0
- package/dist/core/sandbox/rpc/command-client.js.map +1 -0
- package/dist/core/sandbox/rpc/command-proxy.d.ts +48 -0
- package/dist/core/sandbox/rpc/command-proxy.d.ts.map +1 -0
- package/dist/core/sandbox/rpc/command-proxy.js +120 -0
- package/dist/core/sandbox/rpc/command-proxy.js.map +1 -0
- package/dist/core/sandbox/rpc/credential-proxy.d.ts.map +1 -1
- package/dist/core/sandbox/rpc/credential-proxy.js +2 -96
- package/dist/core/sandbox/rpc/credential-proxy.js.map +1 -1
- package/dist/core/sandbox/rpc/framing.d.ts +35 -0
- package/dist/core/sandbox/rpc/framing.d.ts.map +1 -0
- package/dist/core/sandbox/rpc/framing.js +114 -0
- package/dist/core/sandbox/rpc/framing.js.map +1 -0
- package/dist/core/sandbox/rpc/git-credential-helper.d.ts +47 -0
- package/dist/core/sandbox/rpc/git-credential-helper.d.ts.map +1 -0
- package/dist/core/sandbox/rpc/git-credential-helper.js +222 -0
- package/dist/core/sandbox/rpc/git-credential-helper.js.map +1 -0
- package/dist/core/sandbox/rpc/git-credential-proxy.d.ts +66 -0
- package/dist/core/sandbox/rpc/git-credential-proxy.d.ts.map +1 -0
- package/dist/core/sandbox/rpc/git-credential-proxy.js +209 -0
- package/dist/core/sandbox/rpc/git-credential-proxy.js.map +1 -0
- package/dist/core/sandbox/supervisor-temp.d.ts +18 -0
- package/dist/core/sandbox/supervisor-temp.d.ts.map +1 -0
- package/dist/core/sandbox/supervisor-temp.js +21 -0
- package/dist/core/sandbox/supervisor-temp.js.map +1 -0
- package/dist/core/sandbox/supervisor.d.ts +12 -1
- package/dist/core/sandbox/supervisor.d.ts.map +1 -1
- package/dist/core/sandbox/supervisor.js +15 -1
- package/dist/core/sandbox/supervisor.js.map +1 -1
- package/dist/core/sandbox/terminal-handoff.d.ts +68 -0
- package/dist/core/sandbox/terminal-handoff.d.ts.map +1 -0
- package/dist/core/sandbox/terminal-handoff.js +221 -0
- package/dist/core/sandbox/terminal-handoff.js.map +1 -0
- package/dist/core/sandbox/terminal-size.d.ts +13 -0
- package/dist/core/sandbox/terminal-size.d.ts.map +1 -1
- package/dist/core/sandbox/terminal-size.js +23 -2
- package/dist/core/sandbox/terminal-size.js.map +1 -1
- package/dist/core/sdk.d.ts +24 -2
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +63 -4
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/session-export.d.ts +4 -0
- package/dist/core/session-export.d.ts.map +1 -0
- package/dist/core/session-export.js +32 -0
- package/dist/core/session-export.js.map +1 -0
- package/dist/core/session-manager.d.ts +13 -1
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +34 -6
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/settings-diagnostics.d.ts +9 -0
- package/dist/core/settings-diagnostics.d.ts.map +1 -0
- package/dist/core/settings-diagnostics.js +21 -0
- package/dist/core/settings-diagnostics.js.map +1 -0
- package/dist/core/settings-manager.d.ts +172 -1
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +160 -11
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/skills.d.ts.map +1 -1
- package/dist/core/skills.js +51 -33
- package/dist/core/skills.js.map +1 -1
- package/dist/core/slash-commands.d.ts.map +1 -1
- package/dist/core/slash-commands.js +4 -1
- package/dist/core/slash-commands.js.map +1 -1
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js +8 -2
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/tools/background-shell.d.ts +39 -0
- package/dist/core/tools/background-shell.d.ts.map +1 -0
- package/dist/core/tools/background-shell.js +81 -0
- package/dist/core/tools/background-shell.js.map +1 -0
- package/dist/core/tools/bash-command-segments.d.ts.map +1 -1
- package/dist/core/tools/bash-command-segments.js +2 -0
- package/dist/core/tools/bash-command-segments.js.map +1 -1
- package/dist/core/tools/bash.d.ts +44 -16
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +264 -32
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/contract-snapshot.d.ts +58 -0
- package/dist/core/tools/contract-snapshot.d.ts.map +1 -0
- package/dist/core/tools/contract-snapshot.js +51 -0
- package/dist/core/tools/contract-snapshot.js.map +1 -0
- package/dist/core/tools/contract.d.ts +53 -5
- package/dist/core/tools/contract.d.ts.map +1 -1
- package/dist/core/tools/contract.js +22 -2
- package/dist/core/tools/contract.js.map +1 -1
- package/dist/core/tools/delegate.d.ts +6 -4
- package/dist/core/tools/delegate.d.ts.map +1 -1
- package/dist/core/tools/delegate.js +21 -11
- package/dist/core/tools/delegate.js.map +1 -1
- package/dist/core/tools/edit-diff.d.ts +48 -5
- package/dist/core/tools/edit-diff.d.ts.map +1 -1
- package/dist/core/tools/edit-diff.js +217 -8
- package/dist/core/tools/edit-diff.js.map +1 -1
- package/dist/core/tools/edit.d.ts +8 -0
- package/dist/core/tools/edit.d.ts.map +1 -1
- package/dist/core/tools/edit.js +72 -10
- package/dist/core/tools/edit.js.map +1 -1
- package/dist/core/tools/find.d.ts.map +1 -1
- package/dist/core/tools/find.js +5 -2
- package/dist/core/tools/find.js.map +1 -1
- package/dist/core/tools/grep.d.ts.map +1 -1
- package/dist/core/tools/grep.js +5 -2
- package/dist/core/tools/grep.js.map +1 -1
- package/dist/core/tools/index.d.ts +14 -2
- package/dist/core/tools/index.d.ts.map +1 -1
- package/dist/core/tools/index.js +12 -0
- package/dist/core/tools/index.js.map +1 -1
- package/dist/core/tools/ls.d.ts.map +1 -1
- package/dist/core/tools/ls.js +5 -2
- package/dist/core/tools/ls.js.map +1 -1
- package/dist/core/tools/lsp.d.ts +19 -1
- package/dist/core/tools/lsp.d.ts.map +1 -1
- package/dist/core/tools/lsp.js +163 -10
- package/dist/core/tools/lsp.js.map +1 -1
- package/dist/core/tools/path-permission.d.ts +3 -0
- package/dist/core/tools/path-permission.d.ts.map +1 -1
- package/dist/core/tools/path-permission.js +16 -4
- package/dist/core/tools/path-permission.js.map +1 -1
- package/dist/core/tools/path-utils.d.ts +27 -2
- package/dist/core/tools/path-utils.d.ts.map +1 -1
- package/dist/core/tools/path-utils.js +221 -4
- package/dist/core/tools/path-utils.js.map +1 -1
- package/dist/core/tools/powershell.d.ts +16 -0
- package/dist/core/tools/powershell.d.ts.map +1 -0
- package/dist/core/tools/powershell.js +39 -0
- package/dist/core/tools/powershell.js.map +1 -0
- package/dist/core/tools/read.d.ts.map +1 -1
- package/dist/core/tools/read.js +20 -11
- package/dist/core/tools/read.js.map +1 -1
- package/dist/core/tools/test.d.ts +54 -9
- package/dist/core/tools/test.d.ts.map +1 -1
- package/dist/core/tools/test.js +239 -19
- package/dist/core/tools/test.js.map +1 -1
- package/dist/core/tools/write.d.ts +7 -0
- package/dist/core/tools/write.d.ts.map +1 -1
- package/dist/core/tools/write.js +64 -9
- package/dist/core/tools/write.js.map +1 -1
- package/dist/core/trust-manager.d.ts.map +1 -1
- package/dist/core/trust-manager.js +2 -1
- package/dist/core/trust-manager.js.map +1 -1
- package/dist/core/verification-lifecycle.d.ts +77 -0
- package/dist/core/verification-lifecycle.d.ts.map +1 -0
- package/dist/core/verification-lifecycle.js +146 -0
- package/dist/core/verification-lifecycle.js.map +1 -0
- package/dist/core/workspace/artifacts.d.ts +45 -0
- package/dist/core/workspace/artifacts.d.ts.map +1 -0
- package/dist/core/workspace/artifacts.js +165 -0
- package/dist/core/workspace/artifacts.js.map +1 -0
- package/dist/core/workspace/comparison.d.ts +27 -0
- package/dist/core/workspace/comparison.d.ts.map +1 -0
- package/dist/core/workspace/comparison.js +94 -0
- package/dist/core/workspace/comparison.js.map +1 -0
- package/dist/core/workspace/git-observer.d.ts +48 -0
- package/dist/core/workspace/git-observer.d.ts.map +1 -0
- package/dist/core/workspace/git-observer.js +346 -0
- package/dist/core/workspace/git-observer.js.map +1 -0
- package/dist/core/workspace/projection.d.ts +3 -0
- package/dist/core/workspace/projection.d.ts.map +1 -0
- package/dist/core/workspace/projection.js +56 -0
- package/dist/core/workspace/projection.js.map +1 -0
- package/dist/core/workspace/state.d.ts +133 -0
- package/dist/core/workspace/state.d.ts.map +1 -0
- package/dist/core/workspace/state.js +96 -0
- package/dist/core/workspace/state.js.map +1 -0
- package/dist/extensions/llama/client.d.ts +6 -0
- package/dist/extensions/llama/client.d.ts.map +1 -1
- package/dist/extensions/llama/client.js +7 -0
- package/dist/extensions/llama/client.js.map +1 -1
- package/dist/extensions/llama/index.d.ts.map +1 -1
- package/dist/extensions/llama/index.js +2 -0
- package/dist/extensions/llama/index.js.map +1 -1
- package/dist/extensions/llama/provider.d.ts +3 -1
- package/dist/extensions/llama/provider.d.ts.map +1 -1
- package/dist/extensions/llama/provider.js +29 -4
- package/dist/extensions/llama/provider.js.map +1 -1
- package/dist/index.d.ts +8 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -4
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts +6 -0
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +58 -23
- package/dist/main.js.map +1 -1
- package/dist/migrations.d.ts.map +1 -1
- package/dist/migrations.js +4 -3
- package/dist/migrations.js.map +1 -1
- package/dist/modes/acp/server.d.ts +55 -0
- package/dist/modes/acp/server.d.ts.map +1 -0
- package/dist/modes/acp/server.js +244 -0
- package/dist/modes/acp/server.js.map +1 -0
- package/dist/modes/acp/translate.d.ts +37 -0
- package/dist/modes/acp/translate.d.ts.map +1 -0
- package/dist/modes/acp/translate.js +50 -0
- package/dist/modes/acp/translate.js.map +1 -0
- package/dist/modes/index.d.ts +1 -0
- package/dist/modes/index.d.ts.map +1 -1
- package/dist/modes/index.js +1 -0
- package/dist/modes/index.js.map +1 -1
- package/dist/modes/interactive/components/assistant-message.d.ts +29 -0
- package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/assistant-message.js +182 -23
- package/dist/modes/interactive/components/assistant-message.js.map +1 -1
- package/dist/modes/interactive/components/bash-execution.d.ts +7 -0
- package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/bash-execution.js +20 -0
- package/dist/modes/interactive/components/bash-execution.js.map +1 -1
- package/dist/modes/interactive/components/custom-editor.d.ts +9 -4
- package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-editor.js +20 -9
- package/dist/modes/interactive/components/custom-editor.js.map +1 -1
- package/dist/modes/interactive/components/extension-selector.d.ts +7 -1
- package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/extension-selector.js +7 -3
- package/dist/modes/interactive/components/extension-selector.js.map +1 -1
- package/dist/modes/interactive/components/footer.d.ts +19 -0
- package/dist/modes/interactive/components/footer.d.ts.map +1 -1
- package/dist/modes/interactive/components/footer.js +70 -10
- package/dist/modes/interactive/components/footer.js.map +1 -1
- package/dist/modes/interactive/components/model-selector.d.ts +10 -3
- package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/model-selector.js +56 -14
- package/dist/modes/interactive/components/model-selector.js.map +1 -1
- package/dist/modes/interactive/components/permission-preview.d.ts +15 -0
- package/dist/modes/interactive/components/permission-preview.d.ts.map +1 -0
- package/dist/modes/interactive/components/permission-preview.js +33 -0
- package/dist/modes/interactive/components/permission-preview.js.map +1 -0
- package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/session-selector.js +2 -2
- package/dist/modes/interactive/components/session-selector.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector.d.ts +9 -2
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +128 -56
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/components/settings-submenu.d.ts +72 -0
- package/dist/modes/interactive/components/settings-submenu.d.ts.map +1 -0
- package/dist/modes/interactive/components/settings-submenu.js +165 -0
- package/dist/modes/interactive/components/settings-submenu.js.map +1 -0
- package/dist/modes/interactive/components/thinking-selector.d.ts +15 -3
- package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/thinking-selector.js +74 -17
- package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
- package/dist/modes/interactive/components/tool-execution.d.ts +23 -1
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-execution.js +64 -10
- package/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/dist/modes/interactive/external-editor.d.ts.map +1 -1
- package/dist/modes/interactive/external-editor.js +2 -1
- package/dist/modes/interactive/external-editor.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +45 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +395 -43
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/theme/theme.d.ts +12 -0
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme.js +20 -9
- package/dist/modes/interactive/theme/theme.js.map +1 -1
- package/dist/modes/json-event.d.ts +16 -13
- package/dist/modes/json-event.d.ts.map +1 -1
- package/dist/modes/json-event.js +20 -6
- package/dist/modes/json-event.js.map +1 -1
- package/dist/modes/print-mode.d.ts.map +1 -1
- package/dist/modes/print-mode.js +27 -12
- package/dist/modes/print-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-client.d.ts +7 -0
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client.js +7 -0
- package/dist/modes/rpc/rpc-client.js.map +1 -1
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-mode.js +3 -0
- package/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-types.d.ts +12 -0
- package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-types.js.map +1 -1
- package/dist/package-manager-cli.d.ts +1 -0
- package/dist/package-manager-cli.d.ts.map +1 -1
- package/dist/package-manager-cli.js +196 -10
- package/dist/package-manager-cli.js.map +1 -1
- package/dist/utils/frontmatter.d.ts.map +1 -1
- package/dist/utils/frontmatter.js +2 -1
- package/dist/utils/frontmatter.js.map +1 -1
- package/dist/utils/management-http.d.ts +5 -3
- package/dist/utils/management-http.d.ts.map +1 -1
- package/dist/utils/management-http.js +14 -10
- package/dist/utils/management-http.js.map +1 -1
- package/dist/utils/shell.d.ts +3 -0
- package/dist/utils/shell.d.ts.map +1 -1
- package/dist/utils/shell.js +23 -9
- package/dist/utils/shell.js.map +1 -1
- package/dist/utils/syntax-highlight.d.ts +1 -0
- package/dist/utils/syntax-highlight.d.ts.map +1 -1
- package/dist/utils/syntax-highlight.js +60 -1
- package/dist/utils/syntax-highlight.js.map +1 -1
- package/dist/utils/text.d.ts +8 -0
- package/dist/utils/text.d.ts.map +1 -0
- package/dist/utils/text.js +9 -0
- package/dist/utils/text.js.map +1 -0
- package/dist/utils/version-check.d.ts.map +1 -1
- package/dist/utils/version-check.js +6 -4
- package/dist/utils/version-check.js.map +1 -1
- package/docs/compaction.md +19 -0
- package/docs/custom-provider.md +12 -9
- package/docs/environment-variables.md +1 -1
- package/docs/extensions.md +35 -7
- package/docs/json.md +7 -2
- package/docs/keybindings.md +9 -9
- package/docs/llama-cpp.md +2 -0
- package/docs/models.md +8 -2
- package/docs/packages.md +2 -2
- package/docs/quickstart.md +1 -1
- package/docs/rpc.md +32 -3
- package/docs/sdk.md +32 -2
- package/docs/settings.md +23 -7
- package/docs/skills.md +4 -3
- package/docs/terminal-setup.md +23 -7
- package/docs/usage.md +10 -5
- package/docs/windows.md +24 -2
- package/examples/extensions/border-status-editor.ts +1 -1
- package/examples/extensions/built-in-tool-renderer.ts +8 -4
- package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
- package/examples/extensions/custom-provider-anthropic/package.json +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/examples/extensions/git-checkpoint.ts +24 -36
- package/examples/extensions/gondolin/package-lock.json +2 -2
- package/examples/extensions/gondolin/package.json +1 -1
- package/examples/extensions/minimal-mode.ts +2 -2
- package/examples/extensions/notify.ts +3 -1
- package/examples/extensions/permission-gate.ts +1 -1
- package/examples/extensions/plan-mode/index.ts +1 -1
- package/examples/extensions/rpc-demo.ts +1 -1
- package/examples/extensions/sandbox/package-lock.json +2 -2
- package/examples/extensions/sandbox/package.json +1 -1
- package/examples/extensions/subagent/README.md +1 -1
- package/examples/extensions/subagent/index.ts +6 -1
- package/examples/extensions/titlebar-spinner.ts +1 -1
- package/examples/extensions/with-deps/package-lock.json +2 -2
- package/examples/extensions/with-deps/package.json +1 -1
- package/examples/rpc-extension-ui.ts +1 -1
- package/examples/sdk/06-extensions.ts +1 -1
- package/examples/sdk/README.md +1 -1
- package/npm-shrinkwrap.json +439 -405
- package/package.json +17 -17
- package/dist/server/create-harness.d.ts +0 -26
- package/dist/server/create-harness.d.ts.map +0 -1
- package/dist/server/create-harness.js +0 -107
- package/dist/server/create-harness.js.map +0 -1
|
@@ -3,8 +3,9 @@ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
|
|
|
3
3
|
import { dirname, join } from "path";
|
|
4
4
|
import { CONFIG_DIR_NAME, getAgentDir } from "../config.js";
|
|
5
5
|
import { normalizePath, resolvePath } from "../utils/paths.js";
|
|
6
|
+
import { stripBom } from "../utils/text.js";
|
|
6
7
|
import { getApexEnvironment } from "./environment.js";
|
|
7
|
-
import { DEFAULT_HTTP_IDLE_TIMEOUT_MS, parseHttpIdleTimeoutMs } from "./http-
|
|
8
|
+
import { DEFAULT_HTTP_IDLE_TIMEOUT_MS, parseHttpIdleTimeoutMs } from "./http-dispatcher.js";
|
|
8
9
|
/**
|
|
9
10
|
* `proper-lockfile` is required lazily, not imported: the supervisor loads this module
|
|
10
11
|
* on every launch just to read settings, and a static import puts the lock library
|
|
@@ -21,6 +22,32 @@ function lockfile() {
|
|
|
21
22
|
}
|
|
22
23
|
return lockfileModule;
|
|
23
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Measured run-budget defaults (docs/research/2026-09-02-run-budget-measurements.md,
|
|
27
|
+
* recorded in the spec before implementation): ~60x the heaviest corpus run and
|
|
28
|
+
* ~18x the scripted 10-step tool loop for requests; 100 full 20-call batches for
|
|
29
|
+
* tool calls. No measured basis exists for a wall-time default, so there is none.
|
|
30
|
+
*/
|
|
31
|
+
export const DEFAULT_MAX_PROVIDER_REQUESTS = 200;
|
|
32
|
+
export const DEFAULT_MAX_TOOL_CALLS = 2000;
|
|
33
|
+
/**
|
|
34
|
+
* Workspace-state artifact defaults (WS.3). A patch cap of 256 KiB covers
|
|
35
|
+
* typical bounded summaries while keeping artifacts well inside the total
|
|
36
|
+
* 2 MiB retention budget for 20 retained artifacts.
|
|
37
|
+
*/
|
|
38
|
+
export const DEFAULT_WORKSPACE_MAX_PATCH_BYTES = 256 * 1024;
|
|
39
|
+
export const DEFAULT_WORKSPACE_MAX_ARTIFACTS = 20;
|
|
40
|
+
export const DEFAULT_WORKSPACE_MAX_TOTAL_BYTES = 2 * 1024 * 1024;
|
|
41
|
+
function resolveRunBudgetLimit(value, fallback, name) {
|
|
42
|
+
if (value === undefined)
|
|
43
|
+
return fallback;
|
|
44
|
+
if (value === "unlimited")
|
|
45
|
+
return undefined;
|
|
46
|
+
if (typeof value !== "number" || !Number.isInteger(value) || !Number.isFinite(value) || value < 0) {
|
|
47
|
+
throw new Error(`Invalid ${name} setting: ${String(value)}`);
|
|
48
|
+
}
|
|
49
|
+
return value;
|
|
50
|
+
}
|
|
24
51
|
/**
|
|
25
52
|
* Hard ceiling on `delegationMaxDepth`, independent of what a user configures. A
|
|
26
53
|
* placeholder pending real measurement (the open question `docs/plans/2026-08-14-
|
|
@@ -62,6 +89,13 @@ function parseTimeoutSetting(value, settingName) {
|
|
|
62
89
|
}
|
|
63
90
|
return undefined;
|
|
64
91
|
}
|
|
92
|
+
function toSettingsError(scope, error, path) {
|
|
93
|
+
return {
|
|
94
|
+
scope,
|
|
95
|
+
...(path ? { path } : {}),
|
|
96
|
+
error: error instanceof Error ? error : new Error(String(error)),
|
|
97
|
+
};
|
|
98
|
+
}
|
|
65
99
|
export class FileSettingsStorage {
|
|
66
100
|
globalSettingsPath;
|
|
67
101
|
projectSettingsPath;
|
|
@@ -155,7 +189,8 @@ export class SettingsManager {
|
|
|
155
189
|
projectSettingsLoadError = null; // Track if project settings file had parse errors
|
|
156
190
|
writeQueue = Promise.resolve();
|
|
157
191
|
errors;
|
|
158
|
-
|
|
192
|
+
settingsPaths;
|
|
193
|
+
constructor(storage, initialGlobal, initialProject, globalLoadError = null, projectLoadError = null, initialErrors = [], projectTrusted = true, settingsPaths = {}) {
|
|
159
194
|
this.storage = storage;
|
|
160
195
|
this.globalSettings = initialGlobal;
|
|
161
196
|
this.projectSettings = initialProject;
|
|
@@ -163,26 +198,36 @@ export class SettingsManager {
|
|
|
163
198
|
this.globalSettingsLoadError = globalLoadError;
|
|
164
199
|
this.projectSettingsLoadError = projectLoadError;
|
|
165
200
|
this.errors = [...initialErrors];
|
|
201
|
+
this.settingsPaths = settingsPaths;
|
|
166
202
|
this.settings = deepMergeSettings(this.globalSettings, this.projectSettings);
|
|
167
203
|
}
|
|
168
204
|
/** Create a SettingsManager that loads from files */
|
|
169
205
|
static create(cwd, agentDir = getAgentDir(), options = {}) {
|
|
170
|
-
const
|
|
171
|
-
|
|
206
|
+
const resolvedCwd = resolvePath(cwd);
|
|
207
|
+
const resolvedAgentDir = resolvePath(agentDir);
|
|
208
|
+
const storage = new FileSettingsStorage(resolvedCwd, resolvedAgentDir);
|
|
209
|
+
return SettingsManager.fromStorageWithPaths(storage, options, {
|
|
210
|
+
global: join(resolvedAgentDir, "settings.json"),
|
|
211
|
+
project: join(resolvedCwd, CONFIG_DIR_NAME, "settings.json"),
|
|
212
|
+
});
|
|
172
213
|
}
|
|
173
214
|
/** Create a SettingsManager from an arbitrary storage backend */
|
|
174
215
|
static fromStorage(storage, options = {}) {
|
|
216
|
+
return SettingsManager.fromStorageWithPaths(storage, options);
|
|
217
|
+
}
|
|
218
|
+
/** Create a manager while retaining optional file paths for reported storage errors. */
|
|
219
|
+
static fromStorageWithPaths(storage, options, settingsPaths = {}) {
|
|
175
220
|
const projectTrusted = options.projectTrusted ?? true;
|
|
176
221
|
const globalLoad = SettingsManager.tryLoadFromStorage(storage, "global");
|
|
177
222
|
const projectLoad = SettingsManager.tryLoadFromStorage(storage, "project", projectTrusted);
|
|
178
223
|
const initialErrors = [];
|
|
179
224
|
if (globalLoad.error) {
|
|
180
|
-
initialErrors.push(
|
|
225
|
+
initialErrors.push(toSettingsError("global", globalLoad.error, settingsPaths.global));
|
|
181
226
|
}
|
|
182
227
|
if (projectLoad.error) {
|
|
183
|
-
initialErrors.push(
|
|
228
|
+
initialErrors.push(toSettingsError("project", projectLoad.error, settingsPaths.project));
|
|
184
229
|
}
|
|
185
|
-
return new SettingsManager(storage, globalLoad.settings, projectLoad.settings, globalLoad.error, projectLoad.error, initialErrors, projectTrusted);
|
|
230
|
+
return new SettingsManager(storage, globalLoad.settings, projectLoad.settings, globalLoad.error, projectLoad.error, initialErrors, projectTrusted, settingsPaths);
|
|
186
231
|
}
|
|
187
232
|
/** Create an in-memory SettingsManager (no file I/O) */
|
|
188
233
|
static inMemory(settings = {}, options = {}) {
|
|
@@ -203,7 +248,7 @@ export class SettingsManager {
|
|
|
203
248
|
if (!content) {
|
|
204
249
|
return {};
|
|
205
250
|
}
|
|
206
|
-
const settings = JSON.parse(content);
|
|
251
|
+
const settings = JSON.parse(stripBom(content));
|
|
207
252
|
return SettingsManager.migrateSettings(settings);
|
|
208
253
|
}
|
|
209
254
|
static tryLoadFromStorage(storage, scope, projectTrusted = true) {
|
|
@@ -262,6 +307,15 @@ export class SettingsManager {
|
|
|
262
307
|
}
|
|
263
308
|
return settings;
|
|
264
309
|
}
|
|
310
|
+
/** The agent directory this manager loads global settings from, when known. */
|
|
311
|
+
getAgentDir() {
|
|
312
|
+
const globalPath = this.settingsPaths.global;
|
|
313
|
+
return globalPath === undefined ? undefined : dirname(globalPath);
|
|
314
|
+
}
|
|
315
|
+
/** Merged policy settings (project replaces user arrays wholesale at this raw layer). */
|
|
316
|
+
getPolicySettings() {
|
|
317
|
+
return this.settings.policies;
|
|
318
|
+
}
|
|
265
319
|
getGlobalSettings() {
|
|
266
320
|
return structuredClone(this.globalSettings);
|
|
267
321
|
}
|
|
@@ -348,8 +402,7 @@ export class SettingsManager {
|
|
|
348
402
|
}
|
|
349
403
|
}
|
|
350
404
|
recordError(scope, error) {
|
|
351
|
-
|
|
352
|
-
this.errors.push({ scope, error: normalizedError });
|
|
405
|
+
this.errors.push(toSettingsError(scope, error, this.settingsPaths[scope]));
|
|
353
406
|
}
|
|
354
407
|
clearModifiedScope(scope) {
|
|
355
408
|
if (scope === "global") {
|
|
@@ -383,7 +436,7 @@ export class SettingsManager {
|
|
|
383
436
|
persistScopedSettings(scope, snapshotSettings, modifiedFields, modifiedNestedFields) {
|
|
384
437
|
this.storage.withLock(scope, (current) => {
|
|
385
438
|
const currentFileSettings = current
|
|
386
|
-
? SettingsManager.migrateSettings(JSON.parse(current))
|
|
439
|
+
? SettingsManager.migrateSettings(JSON.parse(stripBom(current)))
|
|
387
440
|
: {};
|
|
388
441
|
const mergedSettings = { ...currentFileSettings };
|
|
389
442
|
for (const field of modifiedFields) {
|
|
@@ -528,6 +581,30 @@ export class SettingsManager {
|
|
|
528
581
|
this.markModified("defaultThinkingLevel");
|
|
529
582
|
this.save();
|
|
530
583
|
}
|
|
584
|
+
getModelThinkingLevel(provider, modelId) {
|
|
585
|
+
return this.settings.modelThinkingLevels?.[`${provider}/${modelId}`];
|
|
586
|
+
}
|
|
587
|
+
getAllModelThinkingLevels() {
|
|
588
|
+
return { ...(this.settings.modelThinkingLevels ?? {}) };
|
|
589
|
+
}
|
|
590
|
+
setModelThinkingLevel(provider, modelId, level) {
|
|
591
|
+
if (!this.globalSettings.modelThinkingLevels) {
|
|
592
|
+
this.globalSettings.modelThinkingLevels = {};
|
|
593
|
+
}
|
|
594
|
+
this.globalSettings.modelThinkingLevels[`${provider}/${modelId}`] = level;
|
|
595
|
+
this.markModified("modelThinkingLevels");
|
|
596
|
+
this.save();
|
|
597
|
+
}
|
|
598
|
+
removeModelThinkingLevel(provider, modelId) {
|
|
599
|
+
if (!this.globalSettings.modelThinkingLevels)
|
|
600
|
+
return;
|
|
601
|
+
delete this.globalSettings.modelThinkingLevels[`${provider}/${modelId}`];
|
|
602
|
+
if (Object.keys(this.globalSettings.modelThinkingLevels).length === 0) {
|
|
603
|
+
delete this.globalSettings.modelThinkingLevels;
|
|
604
|
+
}
|
|
605
|
+
this.markModified("modelThinkingLevels");
|
|
606
|
+
this.save();
|
|
607
|
+
}
|
|
531
608
|
getTransport() {
|
|
532
609
|
return this.settings.transport ?? "auto";
|
|
533
610
|
}
|
|
@@ -569,12 +646,21 @@ export class SettingsManager {
|
|
|
569
646
|
getNetworkSettings() {
|
|
570
647
|
return this.settings.network;
|
|
571
648
|
}
|
|
649
|
+
getSandboxProfiles() {
|
|
650
|
+
return this.settings.sandboxProfiles === undefined ? undefined : structuredClone(this.settings.sandboxProfiles);
|
|
651
|
+
}
|
|
572
652
|
getLspSettings() {
|
|
573
653
|
return this.settings.lsp === undefined ? undefined : structuredClone(this.settings.lsp);
|
|
574
654
|
}
|
|
575
655
|
getWebSearchSettings() {
|
|
576
656
|
return this.settings.webSearch === undefined ? undefined : structuredClone(this.settings.webSearch);
|
|
577
657
|
}
|
|
658
|
+
getCheckpointSettings() {
|
|
659
|
+
return this.settings.checkpoints === undefined ? undefined : structuredClone(this.settings.checkpoints);
|
|
660
|
+
}
|
|
661
|
+
getHookSettings() {
|
|
662
|
+
return this.settings.hooks === undefined ? undefined : structuredClone(this.settings.hooks);
|
|
663
|
+
}
|
|
578
664
|
getBranchSummarySkipPrompt() {
|
|
579
665
|
return this.settings.branchSummary?.skipPrompt ?? false;
|
|
580
666
|
}
|
|
@@ -617,6 +703,52 @@ export class SettingsManager {
|
|
|
617
703
|
maxRetryDelayMs: this.settings.retry?.provider?.maxRetryDelayMs ?? 60000,
|
|
618
704
|
};
|
|
619
705
|
}
|
|
706
|
+
/**
|
|
707
|
+
* Resolve the run-budget policy actually enforced by the agent core (spec
|
|
708
|
+
* 2026-09-01-tool-reliability-and-execution-budgets.md). Absent fields take
|
|
709
|
+
* the measured defaults; the explicit `"unlimited"` value resolves to
|
|
710
|
+
* "no limit" for that field; malformed values throw so a broken policy is
|
|
711
|
+
* rejected before any session runs.
|
|
712
|
+
*/
|
|
713
|
+
getRunBudget() {
|
|
714
|
+
const settings = this.settings.runBudget;
|
|
715
|
+
return {
|
|
716
|
+
maxProviderRequests: resolveRunBudgetLimit(settings?.maxProviderRequests, DEFAULT_MAX_PROVIDER_REQUESTS, "runBudget.maxProviderRequests"),
|
|
717
|
+
maxToolCalls: resolveRunBudgetLimit(settings?.maxToolCalls, DEFAULT_MAX_TOOL_CALLS, "runBudget.maxToolCalls"),
|
|
718
|
+
maxWallTimeMs: resolveRunBudgetLimit(settings?.maxWallTimeMs, undefined, "runBudget.maxWallTimeMs"),
|
|
719
|
+
};
|
|
720
|
+
}
|
|
721
|
+
/**
|
|
722
|
+
* Resolve the workspace-state policy (spec
|
|
723
|
+
* 2026-09-01-harness-correctness-and-workspace-state.md § 2). Defaults to
|
|
724
|
+
* metadata-only capture. Malformed values throw so a broken policy is
|
|
725
|
+
* rejected before any session runs. The per-artifact cap is clamped to
|
|
726
|
+
* the total retention cap so a single artifact can never exceed the
|
|
727
|
+
* whole budget.
|
|
728
|
+
*/
|
|
729
|
+
getWorkspaceState() {
|
|
730
|
+
const settings = this.settings.workspaceState;
|
|
731
|
+
const patchCapture = settings?.patchCapture ?? "off";
|
|
732
|
+
if (patchCapture !== "off" && patchCapture !== "bounded") {
|
|
733
|
+
throw new Error(`Invalid workspaceState.patchCapture setting: ${String(patchCapture)}`);
|
|
734
|
+
}
|
|
735
|
+
const resolvePositive = (value, fallback, name) => {
|
|
736
|
+
if (value === undefined)
|
|
737
|
+
return fallback;
|
|
738
|
+
if (!Number.isFinite(value) || !Number.isInteger(value) || value <= 0) {
|
|
739
|
+
throw new Error(`Invalid workspaceState.${name} setting: ${String(value)}`);
|
|
740
|
+
}
|
|
741
|
+
return value;
|
|
742
|
+
};
|
|
743
|
+
const maxTotalArtifactBytes = resolvePositive(settings?.maxTotalArtifactBytes, DEFAULT_WORKSPACE_MAX_TOTAL_BYTES, "maxTotalArtifactBytes");
|
|
744
|
+
const maxPatchBytes = Math.min(resolvePositive(settings?.maxPatchBytes, DEFAULT_WORKSPACE_MAX_PATCH_BYTES, "maxPatchBytes"), maxTotalArtifactBytes);
|
|
745
|
+
return {
|
|
746
|
+
patchCapture,
|
|
747
|
+
maxPatchBytes,
|
|
748
|
+
maxArtifacts: resolvePositive(settings?.maxArtifacts, DEFAULT_WORKSPACE_MAX_ARTIFACTS, "maxArtifacts"),
|
|
749
|
+
maxTotalArtifactBytes,
|
|
750
|
+
};
|
|
751
|
+
}
|
|
620
752
|
getWebSocketConnectTimeoutMs() {
|
|
621
753
|
return parseTimeoutSetting(this.settings.websocketConnectTimeoutMs, "websocketConnectTimeoutMs");
|
|
622
754
|
}
|
|
@@ -788,6 +920,15 @@ export class SettingsManager {
|
|
|
788
920
|
getThinkingBudgets() {
|
|
789
921
|
return this.settings.thinkingBudgets;
|
|
790
922
|
}
|
|
923
|
+
getTerminalCapabilityOverrides() {
|
|
924
|
+
const terminal = this.settings.terminal;
|
|
925
|
+
const images = terminal?.images;
|
|
926
|
+
return {
|
|
927
|
+
...(images === "kitty" || images === "iterm2" ? { images } : images === false ? { images: null } : {}),
|
|
928
|
+
...(typeof terminal?.trueColor === "boolean" ? { trueColor: terminal.trueColor } : {}),
|
|
929
|
+
...(typeof terminal?.hyperlinks === "boolean" ? { hyperlinks: terminal.hyperlinks } : {}),
|
|
930
|
+
};
|
|
931
|
+
}
|
|
791
932
|
getShowImages() {
|
|
792
933
|
return this.settings.terminal?.showImages ?? true;
|
|
793
934
|
}
|
|
@@ -874,6 +1015,14 @@ export class SettingsManager {
|
|
|
874
1015
|
this.markModified("fullscreenScrollbar");
|
|
875
1016
|
this.save();
|
|
876
1017
|
}
|
|
1018
|
+
getFullscreenCopyOnSelect() {
|
|
1019
|
+
return this.settings.fullscreenCopyOnSelect ?? true;
|
|
1020
|
+
}
|
|
1021
|
+
setFullscreenCopyOnSelect(enabled) {
|
|
1022
|
+
this.globalSettings.fullscreenCopyOnSelect = enabled;
|
|
1023
|
+
this.markModified("fullscreenCopyOnSelect");
|
|
1024
|
+
this.save();
|
|
1025
|
+
}
|
|
877
1026
|
getImageAutoResize() {
|
|
878
1027
|
return this.settings.images?.autoResize ?? true;
|
|
879
1028
|
}
|