@gajae-code/coding-agent 0.10.2 → 0.11.1
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 +58 -2
- package/dist/types/append-only-mode.d.ts +1 -1
- package/dist/types/async/job-manager.d.ts +46 -7
- package/dist/types/cli/args.d.ts +4 -5
- package/dist/types/cli/daemon-cli.d.ts +12 -1
- package/dist/types/cli/notify-cli.d.ts +21 -1
- package/dist/types/cli.d.ts +3 -0
- package/dist/types/commands/daemon.d.ts +39 -0
- package/dist/types/commands/launch.d.ts +3 -0
- package/dist/types/commands/notify.d.ts +28 -1
- package/dist/types/commands/sdk.d.ts +33 -0
- package/dist/types/config/atomic-yaml-patch.d.ts +85 -0
- package/dist/types/config/model-profile-activation.d.ts +35 -15
- package/dist/types/config/model-profiles.d.ts +11 -5
- package/dist/types/config/model-registry.d.ts +3 -3
- package/dist/types/config/model-resolver.d.ts +39 -6
- package/dist/types/config/model-selector-value.d.ts +17 -0
- package/dist/types/config/models-config-schema.d.ts +10 -6
- package/dist/types/config/settings-schema.d.ts +133 -6
- package/dist/types/config/settings.d.ts +63 -35
- package/dist/types/coordinator-mcp/model-preset.d.ts +7 -6
- package/dist/types/coordinator-mcp/server.d.ts +6 -49
- package/dist/types/daemon/builtin.d.ts +6 -5
- package/dist/types/daemon/control-types.d.ts +1 -1
- package/dist/types/discovery/mcp-json.d.ts +12 -1
- package/dist/types/extensibility/custom-tools/types.d.ts +1 -1
- package/dist/types/extensibility/extensions/compact-handler.d.ts +4 -2
- package/dist/types/extensibility/extensions/get-commands-handler.d.ts +2 -2
- package/dist/types/extensibility/extensions/loader.d.ts +10 -1
- package/dist/types/extensibility/extensions/runner.d.ts +3 -3
- package/dist/types/extensibility/extensions/types.d.ts +141 -16
- package/dist/types/extensibility/hooks/types.d.ts +1 -1
- package/dist/types/gjc-runtime/launch-tmux.d.ts +3 -2
- package/dist/types/gjc-runtime/psmux-detect.d.ts +3 -0
- package/dist/types/gjc-runtime/session-state-sidecar.d.ts +3 -0
- package/dist/types/gjc-runtime/team-runtime.d.ts +3 -4
- package/dist/types/gjc-runtime/tmux-owner-isolation-cli.d.ts +13 -0
- package/dist/types/gjc-runtime/tmux-sessions.d.ts +4 -1
- package/dist/types/gjc-runtime/ultragoal-receipt-freshness.d.ts +11 -0
- package/dist/types/gjc-runtime/windows-powershell-command.d.ts +9 -0
- package/dist/types/harness-control-plane/operate.d.ts +5 -5
- package/dist/types/harness-control-plane/owner.d.ts +18 -4
- package/dist/types/harness-control-plane/receipts.d.ts +0 -1
- package/dist/types/harness-control-plane/sdk-transport.d.ts +43 -0
- package/dist/types/harness-control-plane/session-transport.d.ts +48 -0
- package/dist/types/harness-control-plane/types.d.ts +3 -4
- package/dist/types/lsp/index.d.ts +1 -1
- package/dist/types/main.d.ts +32 -38
- package/dist/types/modes/acp/acp-agent.d.ts +224 -53
- package/dist/types/modes/acp/acp-client-bridge.d.ts +1 -0
- package/dist/types/modes/acp/acp-mode.d.ts +6 -15
- package/dist/types/modes/acp/permission-mode.d.ts +4 -0
- package/dist/types/modes/acp/startup-options.d.ts +6 -0
- package/dist/types/modes/components/agent-dashboard.d.ts +3 -0
- package/dist/types/modes/components/model-selector.d.ts +1 -0
- package/dist/types/modes/components/notifications-settings-editor.d.ts +135 -0
- package/dist/types/modes/components/settings-selector.d.ts +6 -4
- package/dist/types/modes/components/welcome.d.ts +1 -1
- package/dist/types/modes/controllers/command-controller.d.ts +2 -2
- package/dist/types/modes/controllers/extension-ui-controller.d.ts +1 -0
- package/dist/types/modes/controllers/selector-controller.d.ts +35 -1
- package/dist/types/modes/index.d.ts +0 -4
- package/dist/types/modes/interactive-mode.d.ts +5 -2
- package/dist/types/modes/runtime-init.d.ts +2 -2
- package/dist/types/modes/shared/agent-wire/approval-gate.d.ts +6 -9
- package/dist/types/modes/shared/agent-wire/deep-interview-gate.d.ts +4 -6
- package/dist/types/modes/shared/agent-wire/event-contract.d.ts +6 -6
- package/dist/types/modes/shared/agent-wire/event-envelope.d.ts +4 -9
- package/dist/types/modes/shared/agent-wire/event-observation.d.ts +1 -1
- package/dist/types/modes/shared/agent-wire/workflow-gate-broker.d.ts +170 -30
- package/dist/types/modes/shared/agent-wire/workflow-gate-schema.d.ts +7 -7
- package/dist/types/modes/shared/agent-wire/workflow-gate-types.d.ts +105 -0
- package/dist/types/modes/types.d.ts +7 -2
- package/dist/types/runtime-mcp/client.d.ts +2 -0
- package/dist/types/runtime-mcp/config.d.ts +5 -1
- package/dist/types/runtime-mcp/manager.d.ts +8 -1
- package/dist/types/runtime-mcp/types.d.ts +4 -0
- package/dist/types/sdk/acp/adapter.d.ts +67 -0
- package/dist/types/sdk/acp/index.d.ts +2 -0
- package/dist/types/sdk/broker/broker.d.ts +53 -0
- package/dist/types/sdk/broker/discovery.d.ts +30 -0
- package/dist/types/sdk/broker/ensure.d.ts +42 -0
- package/dist/types/sdk/broker/identity.d.ts +3 -0
- package/dist/types/sdk/broker/index.d.ts +8 -0
- package/dist/types/sdk/broker/lifecycle-ledger.d.ts +95 -0
- package/dist/types/sdk/broker/lifecycle.d.ts +85 -0
- package/dist/types/sdk/broker/process-incarnation.d.ts +14 -0
- package/dist/types/sdk/broker/runtime.d.ts +33 -0
- package/dist/types/sdk/broker/session-index.d.ts +57 -0
- package/dist/types/sdk/broker/state-version.d.ts +8 -0
- package/dist/types/sdk/broker/transport.d.ts +9 -0
- package/dist/types/sdk/bus/chat-command-policy.d.ts +49 -0
- package/dist/types/sdk/bus/chat-daemon-cli.d.ts +21 -0
- package/dist/types/sdk/bus/chat-daemon-control.d.ts +111 -0
- package/dist/types/sdk/bus/chat-daemon-runtime.d.ts +77 -0
- package/dist/types/sdk/bus/chat-effect-journal.d.ts +84 -0
- package/dist/types/{notifications → sdk/bus}/config-commands.d.ts +7 -2
- package/dist/types/sdk/bus/config.d.ts +274 -0
- package/dist/types/sdk/bus/conversation-store.d.ts +72 -0
- package/dist/types/sdk/bus/discord-conversation.d.ts +58 -0
- package/dist/types/sdk/bus/discord-daemon.d.ts +50 -0
- package/dist/types/sdk/bus/discord-live-provider.d.ts +70 -0
- package/dist/types/sdk/bus/discord-provider.d.ts +85 -0
- package/dist/types/{notifications → sdk/bus}/html-format.d.ts +2 -2
- package/dist/types/{notifications → sdk/bus}/index.d.ts +113 -13
- package/dist/types/{notifications → sdk/bus}/lifecycle-control-runtime.d.ts +4 -2
- package/dist/types/{notifications → sdk/bus}/lifecycle-orchestrator.d.ts +18 -21
- package/dist/types/{notifications → sdk/bus}/managed-daemon.d.ts +1 -1
- package/dist/types/sdk/bus/native-runtime-compatibility.d.ts +13 -0
- package/dist/types/sdk/bus/notification-orchestration.d.ts +170 -0
- package/dist/types/{notifications → sdk/bus}/notification-service.d.ts +7 -1
- package/dist/types/sdk/bus/session-control.d.ts +83 -0
- package/dist/types/sdk/bus/slack-conversation.d.ts +56 -0
- package/dist/types/sdk/bus/slack-daemon.d.ts +60 -0
- package/dist/types/sdk/bus/slack-live-provider.d.ts +59 -0
- package/dist/types/sdk/bus/slack-provider.d.ts +55 -0
- package/dist/types/{notifications → sdk/bus}/telegram-cli.d.ts +4 -4
- package/dist/types/{notifications → sdk/bus}/telegram-daemon-cli.d.ts +14 -5
- package/dist/types/sdk/bus/telegram-daemon-contract.d.ts +12 -0
- package/dist/types/{notifications → sdk/bus}/telegram-daemon-control.d.ts +2 -2
- package/dist/types/{notifications → sdk/bus}/telegram-daemon.d.ts +78 -17
- package/dist/types/{notifications → sdk/bus}/telegram-reference.d.ts +2 -2
- package/dist/types/sdk/bus/telegram-setup.d.ts +128 -0
- package/dist/types/{notifications → sdk/bus}/topic-registry.d.ts +11 -0
- package/dist/types/sdk/cli/index.d.ts +1 -0
- package/dist/types/sdk/cli/session-cli.d.ts +19 -0
- package/dist/types/sdk/client/client.d.ts +1 -0
- package/dist/types/sdk/client/discovery.d.ts +27 -0
- package/dist/types/sdk/client/index.d.ts +2 -0
- package/dist/types/sdk/host/control/dispatch.d.ts +34 -0
- package/dist/types/sdk/host/control/index.d.ts +2 -0
- package/dist/types/sdk/host/control/operations.d.ts +65 -0
- package/dist/types/sdk/host/events.d.ts +35 -0
- package/dist/types/sdk/host/host.d.ts +35 -0
- package/dist/types/sdk/host/index.d.ts +4 -0
- package/dist/types/sdk/host/query/cursor.d.ts +62 -0
- package/dist/types/sdk/host/query/handlers.d.ts +70 -0
- package/dist/types/sdk/host/query/index.d.ts +3 -0
- package/dist/types/sdk/host/query/revision-store.d.ts +60 -0
- package/dist/types/sdk/host/reverse-leases.d.ts +45 -0
- package/dist/types/sdk/host/types.d.ts +32 -0
- package/dist/types/sdk/index.d.ts +6 -0
- package/dist/types/sdk/lifecycle-session.d.ts +14 -0
- package/dist/types/sdk/mcp/index.d.ts +1 -0
- package/dist/types/sdk/mcp/server.d.ts +37 -0
- package/dist/types/sdk/models.d.ts +44 -0
- package/dist/types/sdk/protocol/adapter-validation.d.ts +14 -0
- package/dist/types/sdk/protocol/operation-registry.d.ts +24 -0
- package/dist/types/{sdk.d.ts → sdk/session.d.ts} +44 -38
- package/dist/types/sdk/startup-capability.d.ts +50 -0
- package/dist/types/session/agent-session.d.ts +114 -21
- package/dist/types/session/default-model-selection.d.ts +25 -0
- package/dist/types/session/fallback-chain-controller.d.ts +52 -0
- package/dist/types/session/session-manager.d.ts +58 -1
- package/dist/types/setup/credential-auto-import.d.ts +36 -6
- package/dist/types/tools/ask-answer-registry.d.ts +1 -1
- package/dist/types/tools/browser/benchmark/detector-report.d.ts +63 -0
- package/dist/types/tools/browser/benchmark/run-suite.d.ts +18 -0
- package/dist/types/tools/browser/launch.d.ts +22 -0
- package/dist/types/tools/browser/profile-discovery.d.ts +31 -0
- package/dist/types/tools/browser/profile-posture.d.ts +37 -0
- package/dist/types/tools/browser/profile-reuse.d.ts +39 -0
- package/dist/types/tools/browser/profile-warmup.d.ts +39 -0
- package/dist/types/tools/browser/registry.d.ts +19 -0
- package/dist/types/tools/browser/tab-protocol.d.ts +4 -0
- package/dist/types/tools/index.d.ts +8 -8
- package/dist/types/tools/subagent-render.d.ts +1 -0
- package/dist/types/tools/subagent.d.ts +6 -1
- package/package.json +34 -13
- package/scripts/build-sdk-package-smoke.ts +99 -0
- package/scripts/capture-notifications-settings-showcase.ts +435 -0
- package/scripts/compile-args.ts +4 -2
- package/scripts/g005-daemon-smoke.ts +4 -5
- package/scripts/g011-daemon-path-smoke.ts +5 -5
- package/scripts/generate-sdk-adapter-parity-manifest.ts +163 -0
- package/scripts/generate-sdk-operation-inventory.ts +867 -0
- package/scripts/generate-telegram-baseline-manifest.ts +128 -0
- package/scripts/manifest-schema.ts +124 -0
- package/scripts/run-test-manifest.ts +153 -0
- package/scripts/run-threat-model-check.ts +157 -0
- package/scripts/verify-gjc-sdk-canonicalization.ts +3467 -0
- package/scripts/verify-gjc-sdk-rename.ts +90 -0
- package/src/append-only-mode.ts +1 -1
- package/src/async/job-manager.ts +406 -63
- package/src/cli/args.ts +43 -12
- package/src/cli/auth-gateway-cli.ts +2 -2
- package/src/cli/config-cli.ts +2 -1
- package/src/cli/daemon-cli.ts +63 -14
- package/src/cli/list-models.ts +1 -1
- package/src/cli/notify-cli.ts +288 -286
- package/src/cli.ts +21 -2
- package/src/commands/daemon.ts +50 -6
- package/src/commands/harness.ts +93 -36
- package/src/commands/launch.ts +5 -2
- package/src/commands/mcp-serve.ts +19 -12
- package/src/commands/notify.ts +36 -3
- package/src/commands/sdk.ts +426 -0
- package/src/commit/agentic/agent.ts +1 -0
- package/src/config/atomic-yaml-patch.ts +423 -0
- package/src/config/model-profile-activation.ts +240 -89
- package/src/config/model-profiles.ts +18 -15
- package/src/config/model-registry.ts +51 -26
- package/src/config/model-resolver.ts +138 -51
- package/src/config/model-selector-value.ts +50 -0
- package/src/config/models-config-schema.ts +14 -21
- package/src/config/settings-schema.ts +128 -10
- package/src/config/settings.ts +1120 -158
- package/src/coordinator-mcp/model-preset.ts +74 -20
- package/src/coordinator-mcp/server.ts +1597 -3052
- package/src/daemon/builtin.ts +8 -5
- package/src/daemon/control-types.ts +1 -1
- package/src/defaults/gjc/skills/team/SKILL.md +4 -4
- package/src/discovery/mcp-json.ts +327 -20
- package/src/extensibility/custom-tools/types.ts +1 -1
- package/src/extensibility/extensions/compact-handler.ts +3 -3
- package/src/extensibility/extensions/get-commands-handler.ts +2 -2
- package/src/extensibility/extensions/loader.ts +69 -5
- package/src/extensibility/extensions/runner.ts +112 -4
- package/src/extensibility/extensions/types.ts +176 -17
- package/src/extensibility/hooks/types.ts +1 -1
- package/src/gjc-runtime/launch-tmux.ts +170 -86
- package/src/gjc-runtime/psmux-detect.ts +82 -4
- package/src/gjc-runtime/session-state-sidecar.ts +41 -31
- package/src/gjc-runtime/team-runtime.ts +54 -35
- package/src/gjc-runtime/tmux-owner-isolation-cli.ts +53 -17
- package/src/gjc-runtime/tmux-owner-isolation.ts +1 -1
- package/src/gjc-runtime/tmux-sessions.ts +19 -13
- package/src/gjc-runtime/ultragoal-guard.ts +108 -14
- package/src/gjc-runtime/ultragoal-receipt-freshness.ts +102 -1
- package/src/gjc-runtime/ultragoal-runtime.ts +227 -11
- package/src/gjc-runtime/windows-powershell-command.ts +58 -0
- package/src/harness-control-plane/operate.ts +9 -9
- package/src/harness-control-plane/owner.ts +283 -39
- package/src/harness-control-plane/receipts.ts +0 -1
- package/src/harness-control-plane/sdk-transport.ts +395 -0
- package/src/harness-control-plane/session-transport.ts +94 -0
- package/src/harness-control-plane/types.ts +1 -1
- package/src/internal-urls/docs-index.generated.ts +34 -35
- package/src/lsp/client.ts +42 -6
- package/src/lsp/index.ts +2 -2
- package/src/main.ts +299 -204
- package/src/modes/DESIGN.md +258 -0
- package/src/modes/acp/acp-agent.ts +1228 -2612
- package/src/modes/acp/acp-client-bridge.ts +2 -20
- package/src/modes/acp/acp-event-mapper.ts +18 -2
- package/src/modes/acp/acp-mode.ts +8 -36
- package/src/modes/acp/permission-mode.ts +25 -0
- package/src/modes/acp/startup-options.ts +6 -0
- package/src/modes/components/agent-dashboard.ts +37 -17
- package/src/modes/components/model-selector.ts +93 -35
- package/src/modes/components/notifications-settings-editor.ts +1379 -0
- package/src/modes/components/settings-selector.ts +60 -11
- package/src/modes/components/welcome.ts +4 -4
- package/src/modes/controllers/command-controller.ts +10 -17
- package/src/modes/controllers/event-controller.ts +11 -16
- package/src/modes/controllers/extension-ui-controller.ts +396 -28
- package/src/modes/controllers/selector-controller.ts +674 -36
- package/src/modes/index.ts +0 -22
- package/src/modes/interactive-mode.ts +87 -36
- package/src/modes/runtime-init.ts +298 -6
- package/src/modes/shared/agent-wire/approval-gate.ts +9 -11
- package/src/modes/shared/agent-wire/deep-interview-gate.ts +10 -11
- package/src/modes/shared/agent-wire/event-contract.ts +7 -8
- package/src/modes/shared/agent-wire/event-envelope.ts +9 -17
- package/src/modes/shared/agent-wire/event-observation.ts +16 -7
- package/src/modes/shared/agent-wire/workflow-gate-broker.ts +1258 -87
- package/src/modes/shared/agent-wire/workflow-gate-schema.ts +15 -15
- package/src/modes/shared/agent-wire/workflow-gate-types.ts +113 -0
- package/src/modes/types.ts +7 -2
- package/src/runtime-mcp/client.ts +94 -19
- package/src/runtime-mcp/config.ts +27 -15
- package/src/runtime-mcp/manager.ts +343 -105
- package/src/runtime-mcp/oauth-flow.ts +42 -12
- package/src/runtime-mcp/transports/http.ts +49 -19
- package/src/runtime-mcp/transports/stdio.ts +47 -28
- package/src/runtime-mcp/types.ts +10 -0
- package/src/sdk/acp/adapter.ts +418 -0
- package/src/sdk/acp/index.ts +2 -0
- package/src/sdk/broker/broker.ts +642 -0
- package/src/sdk/broker/discovery.ts +113 -0
- package/src/sdk/broker/ensure.ts +307 -0
- package/src/sdk/broker/identity.ts +42 -0
- package/src/sdk/broker/index.ts +8 -0
- package/src/sdk/broker/internal-source-marker-2178.txt +1 -0
- package/src/sdk/broker/internal-source.bunfig.toml +1 -0
- package/src/sdk/broker/lifecycle-ledger.ts +286 -0
- package/src/sdk/broker/lifecycle.ts +2157 -0
- package/src/sdk/broker/process-incarnation.ts +159 -0
- package/src/sdk/broker/runtime.ts +164 -0
- package/src/sdk/broker/session-index.ts +318 -0
- package/src/sdk/broker/state-version.ts +23 -0
- package/src/sdk/broker/transport.ts +125 -0
- package/src/sdk/bus/chat-command-policy.ts +107 -0
- package/src/sdk/bus/chat-daemon-cli.ts +214 -0
- package/src/sdk/bus/chat-daemon-control.ts +713 -0
- package/src/sdk/bus/chat-daemon-runtime.ts +526 -0
- package/src/sdk/bus/chat-effect-journal.ts +355 -0
- package/src/{notifications → sdk/bus}/config-commands.ts +39 -10
- package/src/sdk/bus/config.ts +433 -0
- package/src/sdk/bus/conversation-store.ts +391 -0
- package/src/sdk/bus/discord-conversation.ts +85 -0
- package/src/sdk/bus/discord-daemon.ts +2292 -0
- package/src/sdk/bus/discord-live-provider.ts +521 -0
- package/src/sdk/bus/discord-provider.ts +56 -0
- package/src/{notifications → sdk/bus}/html-format.ts +2 -2
- package/src/sdk/bus/index.ts +3979 -0
- package/src/{notifications → sdk/bus}/lifecycle-commands.ts +2 -0
- package/src/{notifications → sdk/bus}/lifecycle-control-runtime.ts +225 -196
- package/src/{notifications → sdk/bus}/lifecycle-orchestrator.ts +161 -74
- package/src/{notifications → sdk/bus}/managed-daemon.ts +2 -2
- package/src/sdk/bus/native-runtime-compatibility.ts +42 -0
- package/src/sdk/bus/natives-augment.d.ts +38 -0
- package/src/sdk/bus/notification-orchestration.ts +535 -0
- package/src/{notifications → sdk/bus}/notification-service.ts +106 -12
- package/src/sdk/bus/session-control.ts +333 -0
- package/src/sdk/bus/slack-conversation.ts +74 -0
- package/src/sdk/bus/slack-daemon.ts +2144 -0
- package/src/sdk/bus/slack-live-provider.ts +380 -0
- package/src/sdk/bus/slack-provider.ts +76 -0
- package/src/{notifications → sdk/bus}/telegram-cli.ts +8 -8
- package/src/sdk/bus/telegram-daemon-cli.ts +330 -0
- package/src/sdk/bus/telegram-daemon-contract.ts +14 -0
- package/src/{notifications → sdk/bus}/telegram-daemon-control.ts +4 -4
- package/src/{notifications → sdk/bus}/telegram-daemon.ts +603 -63
- package/src/{notifications → sdk/bus}/telegram-reference.ts +2 -2
- package/src/sdk/bus/telegram-setup.ts +663 -0
- package/src/{notifications → sdk/bus}/topic-registry.ts +32 -0
- package/src/sdk/cli/index.ts +1 -0
- package/src/sdk/cli/session-cli.ts +275 -0
- package/src/sdk/client/client.ts +1 -0
- package/src/sdk/client/discovery.ts +108 -0
- package/src/sdk/client/index.ts +2 -0
- package/src/sdk/host/control/dispatch.ts +367 -0
- package/src/sdk/host/control/index.ts +10 -0
- package/src/sdk/host/control/operations.ts +63 -0
- package/src/sdk/host/events.ts +91 -0
- package/src/sdk/host/host.ts +296 -0
- package/src/sdk/host/index.ts +4 -0
- package/src/sdk/host/query/cursor.ts +189 -0
- package/src/sdk/host/query/handlers.ts +533 -0
- package/src/sdk/host/query/index.ts +3 -0
- package/src/sdk/host/query/revision-store.ts +1126 -0
- package/src/sdk/host/reverse-leases.ts +325 -0
- package/src/sdk/host/types.ts +29 -0
- package/src/sdk/index.ts +13 -0
- package/src/sdk/lifecycle-session.ts +39 -0
- package/src/sdk/mcp/index.ts +1 -0
- package/src/sdk/mcp/server.ts +332 -0
- package/src/sdk/models.ts +168 -0
- package/src/sdk/protocol/adapter-validation.ts +48 -0
- package/src/sdk/protocol/operation-inventory.generated.json +5654 -0
- package/src/sdk/protocol/operation-registry.ts +312 -0
- package/src/{sdk.ts → sdk/session.ts} +339 -212
- package/src/sdk/startup-capability.ts +189 -0
- package/src/session/agent-session.ts +2650 -944
- package/src/session/default-model-selection.ts +93 -0
- package/src/session/fallback-chain-controller.ts +136 -0
- package/src/session/session-manager.ts +438 -11
- package/src/session/session-storage.ts +8 -1
- package/src/setup/credential-auto-import.ts +290 -35
- package/src/setup/hermes/templates/operator-instructions.v1.md +3 -5
- package/src/slash-commands/builtin-registry.ts +2 -1
- package/src/task/executor.ts +62 -13
- package/src/task/index.ts +26 -16
- package/src/tools/ask-answer-registry.ts +1 -1
- package/src/tools/ask.ts +13 -8
- package/src/tools/browser/STEALTH-THIRD-PARTY-NOTICES.md +26 -0
- package/src/tools/browser/benchmark/detector-report.ts +157 -0
- package/src/tools/browser/benchmark/run-suite.ts +39 -0
- package/src/tools/browser/launch.ts +124 -19
- package/src/tools/browser/profile-discovery.ts +63 -0
- package/src/tools/browser/profile-posture.ts +59 -0
- package/src/tools/browser/profile-reuse.ts +102 -0
- package/src/tools/browser/profile-warmup.ts +109 -0
- package/src/tools/browser/registry.ts +87 -11
- package/src/tools/browser/tab-protocol.ts +1 -0
- package/src/tools/browser/tab-supervisor.ts +1 -0
- package/src/tools/browser/tab-worker.ts +1 -1
- package/src/tools/browser.ts +6 -0
- package/src/tools/index.ts +8 -8
- package/src/tools/puppeteer/14_stealth_permissions.txt +57 -0
- package/src/tools/puppeteer/15_stealth_webrtc.txt +60 -0
- package/src/tools/subagent-render.ts +19 -8
- package/src/tools/subagent.ts +84 -32
- package/src/tools/telegram-send.ts +2 -2
- package/vendor/insane-search/MANIFEST.json +2 -1
- package/vendor/insane-search/engine/bias_check.py +4 -1
- package/vendor/insane-search/engine/phase0.py +26 -1
- package/dist/types/harness-control-plane/rpc-adapter.d.ts +0 -69
- package/dist/types/modes/bridge/auth.d.ts +0 -12
- package/dist/types/modes/bridge/bridge-client-bridge.d.ts +0 -9
- package/dist/types/modes/bridge/bridge-mode.d.ts +0 -47
- package/dist/types/modes/bridge/bridge-ui-context.d.ts +0 -88
- package/dist/types/modes/bridge/event-stream.d.ts +0 -8
- package/dist/types/modes/rpc/host-tools.d.ts +0 -1
- package/dist/types/modes/rpc/host-uris.d.ts +0 -1
- package/dist/types/modes/rpc/rpc-client.d.ts +0 -299
- package/dist/types/modes/rpc/rpc-mode.d.ts +0 -86
- package/dist/types/modes/rpc/rpc-socket-security.d.ts +0 -10
- package/dist/types/modes/rpc/rpc-types.d.ts +0 -810
- package/dist/types/modes/shared/agent-wire/command-contract.d.ts +0 -18
- package/dist/types/modes/shared/agent-wire/command-dispatch.d.ts +0 -37
- package/dist/types/modes/shared/agent-wire/command-validation.d.ts +0 -2
- package/dist/types/modes/shared/agent-wire/handshake.d.ts +0 -56
- package/dist/types/modes/shared/agent-wire/host-tool-bridge.d.ts +0 -16
- package/dist/types/modes/shared/agent-wire/host-uri-bridge.d.ts +0 -17
- package/dist/types/modes/shared/agent-wire/protocol.d.ts +0 -25
- package/dist/types/modes/shared/agent-wire/responses.d.ts +0 -4
- package/dist/types/modes/shared/agent-wire/scopes.d.ts +0 -18
- package/dist/types/modes/shared/agent-wire/session-registry.d.ts +0 -25
- package/dist/types/modes/shared/agent-wire/ui-request-broker.d.ts +0 -42
- package/dist/types/modes/shared/agent-wire/ui-result.d.ts +0 -27
- package/dist/types/modes/shared/agent-wire/unattended-action-policy.d.ts +0 -29
- package/dist/types/modes/shared/agent-wire/unattended-audit.d.ts +0 -68
- package/dist/types/modes/shared/agent-wire/unattended-run-controller.d.ts +0 -166
- package/dist/types/modes/shared/agent-wire/unattended-session.d.ts +0 -127
- package/dist/types/notifications/config.d.ts +0 -132
- package/src/harness-control-plane/rpc-adapter.ts +0 -290
- package/src/modes/bridge/auth.ts +0 -41
- package/src/modes/bridge/bridge-client-bridge.ts +0 -47
- package/src/modes/bridge/bridge-mode.ts +0 -675
- package/src/modes/bridge/bridge-ui-context.ts +0 -200
- package/src/modes/bridge/event-stream.ts +0 -70
- package/src/modes/rpc/host-tools.ts +0 -1
- package/src/modes/rpc/host-uris.ts +0 -1
- package/src/modes/rpc/rpc-client.ts +0 -1166
- package/src/modes/rpc/rpc-mode.ts +0 -1029
- package/src/modes/rpc/rpc-socket-security.ts +0 -115
- package/src/modes/rpc/rpc-types.ts +0 -637
- package/src/modes/shared/agent-wire/command-contract.ts +0 -18
- package/src/modes/shared/agent-wire/command-dispatch.ts +0 -498
- package/src/modes/shared/agent-wire/command-validation.ts +0 -181
- package/src/modes/shared/agent-wire/handshake.ts +0 -157
- package/src/modes/shared/agent-wire/host-tool-bridge.ts +0 -197
- package/src/modes/shared/agent-wire/host-uri-bridge.ts +0 -236
- package/src/modes/shared/agent-wire/protocol.ts +0 -46
- package/src/modes/shared/agent-wire/responses.ts +0 -17
- package/src/modes/shared/agent-wire/scopes.ts +0 -94
- package/src/modes/shared/agent-wire/session-registry.ts +0 -109
- package/src/modes/shared/agent-wire/ui-request-broker.ts +0 -150
- package/src/modes/shared/agent-wire/ui-result.ts +0 -48
- package/src/modes/shared/agent-wire/unattended-action-policy.ts +0 -365
- package/src/modes/shared/agent-wire/unattended-audit.ts +0 -176
- package/src/modes/shared/agent-wire/unattended-run-controller.ts +0 -426
- package/src/modes/shared/agent-wire/unattended-session.ts +0 -528
- package/src/notifications/config.ts +0 -219
- package/src/notifications/index.ts +0 -1835
- package/src/notifications/telegram-daemon-cli.ts +0 -243
- package/src/tools/puppeteer/09_stealth_locale.txt +0 -46
- /package/dist/types/{notifications → sdk/bus}/attachment-registry.d.ts +0 -0
- /package/dist/types/{notifications → sdk/bus}/chat-adapters.d.ts +0 -0
- /package/dist/types/{notifications → sdk/bus}/daemon-paths.d.ts +0 -0
- /package/dist/types/{notifications → sdk/bus}/engine.d.ts +0 -0
- /package/dist/types/{notifications → sdk/bus}/helpers.d.ts +0 -0
- /package/dist/types/{notifications → sdk/bus}/lifecycle-commands.d.ts +0 -0
- /package/dist/types/{notifications → sdk/bus}/operator-runtime.d.ts +0 -0
- /package/dist/types/{notifications → sdk/bus}/rate-limit-pool.d.ts +0 -0
- /package/dist/types/{notifications → sdk/bus}/recent-activity.d.ts +0 -0
- /package/dist/types/{notifications → sdk/bus}/reply-sent-store.d.ts +0 -0
- /package/dist/types/{notifications → sdk/bus}/rich-draft.d.ts +0 -0
- /package/dist/types/{notifications → sdk/bus}/rich-render.d.ts +0 -0
- /package/dist/types/{notifications → sdk/bus}/threaded-inbound.d.ts +0 -0
- /package/dist/types/{notifications → sdk/bus}/threaded-render.d.ts +0 -0
- /package/src/{notifications → sdk/bus}/attachment-registry.ts +0 -0
- /package/src/{notifications → sdk/bus}/chat-adapters.ts +0 -0
- /package/src/{notifications → sdk/bus}/daemon-paths.ts +0 -0
- /package/src/{notifications → sdk/bus}/engine.ts +0 -0
- /package/src/{notifications → sdk/bus}/helpers.ts +0 -0
- /package/src/{notifications → sdk/bus}/operator-runtime.ts +0 -0
- /package/src/{notifications → sdk/bus}/rate-limit-pool.ts +0 -0
- /package/src/{notifications → sdk/bus}/recent-activity.ts +0 -0
- /package/src/{notifications → sdk/bus}/reply-sent-store.ts +0 -0
- /package/src/{notifications → sdk/bus}/rich-draft.ts +0 -0
- /package/src/{notifications → sdk/bus}/rich-render.ts +0 -0
- /package/src/{notifications → sdk/bus}/threaded-inbound.ts +0 -0
- /package/src/{notifications → sdk/bus}/threaded-render.ts +0 -0
|
@@ -2,13 +2,18 @@ import { ThinkingLevel } from "@gajae-code/agent-core";
|
|
|
2
2
|
import type { Api, Model } from "@gajae-code/ai";
|
|
3
3
|
import type { AgentSession } from "../session/agent-session";
|
|
4
4
|
import { type GjcModelAssignmentTargetId, type ModelRegistry } from "./model-registry";
|
|
5
|
+
import { type ModelSelectorValue } from "./model-selector-value";
|
|
5
6
|
import type { Settings } from "./settings";
|
|
6
|
-
type ModelProfileActivationSession = Pick<AgentSession, "model" | "thinkingLevel" | "sessionId"> & {
|
|
7
|
+
type ModelProfileActivationSession = Pick<AgentSession, "model" | "thinkingLevel" | "sessionId" | "getConfiguredModelChain" | "setConfiguredModelChain"> & {
|
|
7
8
|
setModelTemporary?: AgentSession["setModelTemporary"];
|
|
8
9
|
setActiveModelProfile?: (name: string | undefined) => void;
|
|
9
10
|
getActiveModelProfile?: () => string | undefined;
|
|
10
11
|
getSessionDefaultModelSelector?: () => string | undefined;
|
|
11
12
|
recordResumeDefaultModel?: (selector: string) => void;
|
|
13
|
+
seedDefaultFallbackResolution?: (activeIndex: number, skips: Array<{
|
|
14
|
+
selector: string;
|
|
15
|
+
reason: string;
|
|
16
|
+
}>) => void;
|
|
12
17
|
};
|
|
13
18
|
export interface PrepareModelProfileActivationOptions {
|
|
14
19
|
session: ModelProfileActivationSession;
|
|
@@ -25,15 +30,25 @@ export interface PreparedModelProfileActivation {
|
|
|
25
30
|
session: ModelProfileActivationSession & {
|
|
26
31
|
setModelTemporary: AgentSession["setModelTemporary"];
|
|
27
32
|
};
|
|
28
|
-
settings: Pick<Settings, "clearOverride" | "get" | "getGlobal" | "override" | "set" | "flush">;
|
|
33
|
+
settings: Pick<Settings, "clearOverride" | "get" | "getGlobal" | "override" | "set" | "unset" | "flush">;
|
|
29
34
|
previousModel: Model<Api> | undefined;
|
|
30
35
|
previousThinkingLevel: ThinkingLevel | undefined;
|
|
31
|
-
previousAgentModelOverrides: Record<string,
|
|
32
|
-
previousModelRoles: Record<string,
|
|
36
|
+
previousAgentModelOverrides: Record<string, ModelSelectorValue>;
|
|
37
|
+
previousModelRoles: Record<string, ModelSelectorValue>;
|
|
38
|
+
previousDefaultChain: readonly string[] | undefined;
|
|
33
39
|
defaultModel: Model<Api> | undefined;
|
|
34
40
|
defaultThinkingLevel: ThinkingLevel | undefined;
|
|
35
|
-
|
|
36
|
-
|
|
41
|
+
/** Full configured default fallback chain with resolvable entries clamped. */
|
|
42
|
+
defaultChain: readonly string[];
|
|
43
|
+
/** Index of the authenticated default-chain entry selected for activation. */
|
|
44
|
+
defaultActiveIndex: number | undefined;
|
|
45
|
+
/** Resolution-time skips that occurred before selecting the default entry. */
|
|
46
|
+
defaultResolutionSkips: Array<{
|
|
47
|
+
selector: string;
|
|
48
|
+
reason: string;
|
|
49
|
+
}>;
|
|
50
|
+
modelRoles: Record<string, ModelSelectorValue>;
|
|
51
|
+
agentModelOverrides: Record<string, ModelSelectorValue>;
|
|
37
52
|
previousActiveModelProfile: string | undefined;
|
|
38
53
|
/**
|
|
39
54
|
* The session resume default ("provider/id") captured BEFORE activation —
|
|
@@ -45,33 +60,38 @@ export interface PreparedModelProfileActivation {
|
|
|
45
60
|
previousSessionDefaultModel: string | undefined;
|
|
46
61
|
}
|
|
47
62
|
export interface MaterializeModelProfileAssignmentOptions {
|
|
48
|
-
session: Pick<ModelProfileActivationSession, "model" | "thinkingLevel" | "setActiveModelProfile" | "getActiveModelProfile">;
|
|
49
|
-
settings: Pick<Settings, "clearOverride" | "get" | "override" | "set">;
|
|
63
|
+
session: Pick<ModelProfileActivationSession, "model" | "thinkingLevel" | "getConfiguredModelChain" | "setActiveModelProfile" | "getActiveModelProfile">;
|
|
64
|
+
settings: Pick<Settings, "clearOverride" | "get" | "override" | "set" | "unset">;
|
|
50
65
|
role: GjcModelAssignmentTargetId;
|
|
51
66
|
selector: string;
|
|
52
67
|
}
|
|
53
68
|
export interface MaterializeModelProfileAssignmentsOptions {
|
|
54
|
-
session: Pick<ModelProfileActivationSession, "model" | "thinkingLevel" | "setActiveModelProfile" | "getActiveModelProfile">;
|
|
55
|
-
settings: Pick<Settings, "clearOverride" | "get" | "override" | "set">;
|
|
69
|
+
session: Pick<ModelProfileActivationSession, "model" | "thinkingLevel" | "getConfiguredModelChain" | "setActiveModelProfile" | "getActiveModelProfile">;
|
|
70
|
+
settings: Pick<Settings, "clearOverride" | "get" | "override" | "set" | "unset">;
|
|
56
71
|
assignments: ReadonlyMap<GjcModelAssignmentTargetId, string> | Partial<Record<GjcModelAssignmentTargetId, string>>;
|
|
57
72
|
}
|
|
58
73
|
export declare function materializeActiveModelProfileAssignment(options: MaterializeModelProfileAssignmentOptions): boolean;
|
|
59
74
|
export declare function materializeActiveModelProfileAssignments(options: MaterializeModelProfileAssignmentsOptions): boolean;
|
|
75
|
+
export declare class ModelProfileCredentialError extends Error {
|
|
76
|
+
readonly profileLabel: string;
|
|
77
|
+
readonly providers: readonly string[];
|
|
78
|
+
constructor(profileLabel: string, providers: readonly string[]);
|
|
79
|
+
}
|
|
60
80
|
export declare function formatModelProfileCredentialError(profileLabel: string, providers: readonly string[]): string;
|
|
61
81
|
export declare function resolveModelProfileName(profileName: string, profiles: ReadonlyMap<string, unknown>): string;
|
|
62
82
|
export declare function prepareModelProfileActivation(options: PrepareModelProfileActivationOptions): Promise<PreparedModelProfileActivation>;
|
|
63
83
|
export declare function applyPreparedModelProfileActivation(prepared: PreparedModelProfileActivation, options?: ApplyModelProfileActivationOptions): Promise<void>;
|
|
64
84
|
export interface MaterializeModelProfileForDeletionResult {
|
|
65
|
-
modelRoles: Record<string,
|
|
66
|
-
agentModelOverrides: Record<string,
|
|
67
|
-
previousModelRoles: Record<string,
|
|
68
|
-
previousAgentModelOverrides: Record<string,
|
|
85
|
+
modelRoles: Record<string, ModelSelectorValue>;
|
|
86
|
+
agentModelOverrides: Record<string, ModelSelectorValue>;
|
|
87
|
+
previousModelRoles: Record<string, ModelSelectorValue>;
|
|
88
|
+
previousAgentModelOverrides: Record<string, ModelSelectorValue>;
|
|
69
89
|
previousDefaultProfile: string | undefined;
|
|
70
90
|
previousPersistedDefaultProfile: string | undefined;
|
|
71
91
|
previousActiveModelProfile: string | undefined;
|
|
72
92
|
}
|
|
73
93
|
export declare function materializeModelProfileForDeletion(options: PrepareModelProfileActivationOptions & {
|
|
74
|
-
settings: Pick<Settings, "clearOverride" | "flush" | "get" | "getGlobal" | "override" | "set">;
|
|
94
|
+
settings: Pick<Settings, "clearOverride" | "flush" | "get" | "getGlobal" | "override" | "set" | "unset">;
|
|
75
95
|
}): Promise<MaterializeModelProfileForDeletionResult>;
|
|
76
96
|
export declare function restoreMaterializedModelProfileForDeletion(options: {
|
|
77
97
|
settings: Pick<Settings, "flush" | "override" | "set">;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { GjcModelAssignmentTargetId } from "./model-registry";
|
|
2
|
+
import { type ModelSelectorValue } from "./model-selector-value";
|
|
2
3
|
import type { ModelsConfig } from "./models-config-schema";
|
|
3
4
|
export type ModelProfileRole = GjcModelAssignmentTargetId;
|
|
4
5
|
export interface ModelProfileDefinition {
|
|
@@ -15,16 +16,21 @@ export interface ModelProfileDefinition {
|
|
|
15
16
|
* means any single xiaomi credential satisfies the group.
|
|
16
17
|
*/
|
|
17
18
|
alternativeProviderGroups?: readonly (readonly string[])[];
|
|
18
|
-
modelMapping: Partial<Record<ModelProfileRole,
|
|
19
|
+
modelMapping: Partial<Record<ModelProfileRole, ModelSelectorValue>>;
|
|
19
20
|
source: "builtin" | "user";
|
|
20
21
|
}
|
|
21
22
|
export interface ResolvedProfileBinding {
|
|
22
|
-
defaultSelector?:
|
|
23
|
-
modelRoles: Record<string,
|
|
24
|
-
agentModelOverrides: Partial<Record<Exclude<ModelProfileRole, "default">,
|
|
23
|
+
defaultSelector?: ModelSelectorValue;
|
|
24
|
+
modelRoles: Record<string, ModelSelectorValue>;
|
|
25
|
+
agentModelOverrides: Partial<Record<Exclude<ModelProfileRole, "default">, ModelSelectorValue>>;
|
|
25
26
|
}
|
|
26
27
|
export declare function deriveModelProfileMappedProviders(definition: Pick<ModelProfileDefinition, "modelMapping">): string[];
|
|
27
|
-
|
|
28
|
+
/**
|
|
29
|
+
* Return the providers explicitly declared as hard prerequisites.
|
|
30
|
+
* Model mappings may reference fallback providers, but those references are
|
|
31
|
+
* resolution-time candidates rather than activation requirements.
|
|
32
|
+
*/
|
|
33
|
+
export declare function aggregateModelProfileRequiredProviders(requiredProviders: readonly string[], _definition: Pick<ModelProfileDefinition, "modelMapping">): string[];
|
|
28
34
|
export declare const BUILTIN_MODEL_PROFILES: readonly ModelProfileDefinition[];
|
|
29
35
|
export interface ModelProfilePresentation {
|
|
30
36
|
displayName: string;
|
|
@@ -265,8 +265,8 @@ export declare const ModelsConfigFile: ConfigFile<{
|
|
|
265
265
|
} | undefined;
|
|
266
266
|
}> | undefined;
|
|
267
267
|
modelBindings?: {
|
|
268
|
-
modelRoles?: Record<string, string> | undefined;
|
|
269
|
-
agentModelOverrides?: Record<string, string> | undefined;
|
|
268
|
+
modelRoles?: Record<string, string | string[]> | undefined;
|
|
269
|
+
agentModelOverrides?: Record<string, string | string[]> | undefined;
|
|
270
270
|
} | undefined;
|
|
271
271
|
equivalence?: {
|
|
272
272
|
overrides?: Record<string, string> | undefined;
|
|
@@ -275,7 +275,7 @@ export declare const ModelsConfigFile: ConfigFile<{
|
|
|
275
275
|
profiles?: Record<string, {
|
|
276
276
|
required_providers: string[];
|
|
277
277
|
display_name?: string | undefined;
|
|
278
|
-
model_mapping: Partial<Record<"architect" | "critic" | "default" | "executor" | "planner", string>>;
|
|
278
|
+
model_mapping: Partial<Record<"architect" | "critic" | "default" | "executor" | "planner", string | string[]>>;
|
|
279
279
|
}> | undefined;
|
|
280
280
|
}>;
|
|
281
281
|
/** Provider override config (baseUrl, headers, apiKey, compat, transport) without custom models */
|
|
@@ -4,9 +4,16 @@
|
|
|
4
4
|
import { ThinkingLevel } from "@gajae-code/agent-core";
|
|
5
5
|
import { type Api, type KnownProvider, type Model } from "@gajae-code/ai";
|
|
6
6
|
import { type ModelRegistry, type ModelRole } from "./model-registry";
|
|
7
|
+
import { type ModelSelectorValue } from "./model-selector-value";
|
|
7
8
|
import type { Settings } from "./settings";
|
|
8
9
|
/** Default model IDs for each known provider */
|
|
9
10
|
export declare const defaultModelPerProvider: Record<KnownProvider, string>;
|
|
11
|
+
/**
|
|
12
|
+
* Cursor's current RPC transport executes its exec protocol while streaming and
|
|
13
|
+
* has no client-side tool-call mode. Managed fallback attempts must not enable
|
|
14
|
+
* that irreversible path.
|
|
15
|
+
*/
|
|
16
|
+
export declare function managedCursorFallbackUnavailableReason(model: Model<Api>, selector: string): string | undefined;
|
|
10
17
|
export interface ScopedModelSelection {
|
|
11
18
|
model: Model<Api>;
|
|
12
19
|
thinkingLevel?: ThinkingLevel;
|
|
@@ -61,10 +68,10 @@ export declare function parseModelPattern(pattern: string, availableModels: Mode
|
|
|
61
68
|
* Expand a role alias like "pi/default" to the configured model string.
|
|
62
69
|
*/
|
|
63
70
|
export declare function expandRoleAlias(value: string, settings?: Settings): string;
|
|
64
|
-
export declare function resolveConfiguredModelPatterns(value:
|
|
71
|
+
export declare function resolveConfiguredModelPatterns(value: ModelSelectorValue | undefined, settings?: Settings): string[];
|
|
65
72
|
export interface AgentModelPatternResolutionOptions {
|
|
66
|
-
settingsOverride?:
|
|
67
|
-
agentModel?:
|
|
73
|
+
settingsOverride?: ModelSelectorValue;
|
|
74
|
+
agentModel?: ModelSelectorValue;
|
|
68
75
|
settings?: Settings;
|
|
69
76
|
activeModelPattern?: string;
|
|
70
77
|
fallbackModelPattern?: string;
|
|
@@ -79,12 +86,12 @@ export interface ResolvedModelRoleValue {
|
|
|
79
86
|
explicitThinkingLevel: boolean;
|
|
80
87
|
warning: string | undefined;
|
|
81
88
|
}
|
|
82
|
-
export declare function resolveModelRoleValue(roleValue:
|
|
89
|
+
export declare function resolveModelRoleValue(roleValue: ModelSelectorValue | undefined, availableModels: Model<Api>[], options?: {
|
|
83
90
|
settings?: Settings;
|
|
84
91
|
matchPreferences?: ModelMatchPreferences;
|
|
85
92
|
modelRegistry?: CanonicalModelRegistry;
|
|
86
93
|
}): ResolvedModelRoleValue;
|
|
87
|
-
export declare function extractExplicitThinkingSelector(value:
|
|
94
|
+
export declare function extractExplicitThinkingSelector(value: ModelSelectorValue | undefined, settings?: Settings): ThinkingLevel | undefined;
|
|
88
95
|
/**
|
|
89
96
|
* Resolve a model identifier or pattern to a Model instance.
|
|
90
97
|
*/
|
|
@@ -107,6 +114,26 @@ export declare function resolveModelOverride(modelPatterns: string[], modelRegis
|
|
|
107
114
|
thinkingLevel?: ThinkingLevel;
|
|
108
115
|
explicitThinkingLevel: boolean;
|
|
109
116
|
};
|
|
117
|
+
/**
|
|
118
|
+
* Resolve a configured fallback chain to its first callable entry without
|
|
119
|
+
* charging requests. For retryable chains, consumers MUST pass
|
|
120
|
+
* `{ managedFallback: true }` so unsuitable entries (including Cursor's
|
|
121
|
+
* provider-side tool mode) fail closed during resolution before any request
|
|
122
|
+
* is attempted. Single-entry chains remain non-managed selections.
|
|
123
|
+
*/
|
|
124
|
+
export interface ModelChainResolutionOptions {
|
|
125
|
+
managedFallback?: boolean;
|
|
126
|
+
}
|
|
127
|
+
export declare function resolveModelChainWithAuth(modelPatterns: readonly string[], modelRegistry: ModelLookupRegistry & Pick<ModelRegistry, "getApiKey">, settings?: Settings, sessionId?: string, options?: ModelChainResolutionOptions): Promise<{
|
|
128
|
+
model?: Model<Api>;
|
|
129
|
+
thinkingLevel?: ThinkingLevel;
|
|
130
|
+
explicitThinkingLevel: boolean;
|
|
131
|
+
activeIndex: number;
|
|
132
|
+
skips: Array<{
|
|
133
|
+
selector: string;
|
|
134
|
+
reason: string;
|
|
135
|
+
}>;
|
|
136
|
+
}>;
|
|
110
137
|
/**
|
|
111
138
|
* Resolve a list of override patterns to the first matching model, with an
|
|
112
139
|
* auth-aware fallback to the parent session's active model.
|
|
@@ -128,13 +155,19 @@ export declare function resolveModelOverride(modelPatterns: string[], modelRegis
|
|
|
128
155
|
* primary resolution unchanged so the existing error path still surfaces
|
|
129
156
|
* a meaningful failure downstream.
|
|
130
157
|
*/
|
|
131
|
-
export declare function resolveModelOverrideWithAuthFallback(modelPatterns: string[], parentActiveModelPattern: string | undefined, modelRegistry: ModelLookupRegistry & Pick<ModelRegistry, "getApiKey">, settings?: Settings, sessionId?: string): Promise<{
|
|
158
|
+
export declare function resolveModelOverrideWithAuthFallback(modelPatterns: string[], parentActiveModelPattern: string | undefined, modelRegistry: ModelLookupRegistry & Pick<ModelRegistry, "getApiKey">, settings?: Settings, sessionId?: string, options?: ModelChainResolutionOptions): Promise<{
|
|
132
159
|
model?: Model<Api>;
|
|
133
160
|
thinkingLevel?: ThinkingLevel;
|
|
134
161
|
explicitThinkingLevel: boolean;
|
|
135
162
|
authFallbackUsed: boolean;
|
|
136
163
|
requestedModel?: Model<Api>;
|
|
137
164
|
fallbackReason?: "auth_unavailable";
|
|
165
|
+
activeIndex?: number;
|
|
166
|
+
parentFallbackSelector?: string;
|
|
167
|
+
skips: Array<{
|
|
168
|
+
selector: string;
|
|
169
|
+
reason: string;
|
|
170
|
+
}>;
|
|
138
171
|
}>;
|
|
139
172
|
/**
|
|
140
173
|
* Resolve a list of role patterns to the first matching model.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import * as z from "zod/v4";
|
|
2
|
+
/** A model selector or an ordered fallback chain of selectors. */
|
|
3
|
+
export type ModelSelectorValue = string | readonly string[];
|
|
4
|
+
/**
|
|
5
|
+
* Accept one validated selector or a non-empty ordered chain of validated selectors.
|
|
6
|
+
* Element schemas own each configuration surface's selector grammar.
|
|
7
|
+
*/
|
|
8
|
+
export declare function stringOrNonEmptyArray<T extends z.ZodType<string>>(elementSchema: T): z.ZodUnion<readonly [T, z.ZodArray<T>]>;
|
|
9
|
+
/** Return whether a value is a non-blank selector or a non-empty selector chain. */
|
|
10
|
+
export declare function isModelSelectorValue(value: unknown): value is ModelSelectorValue;
|
|
11
|
+
/**
|
|
12
|
+
* Preserve compatibility with comma-delimited selector strings while flattening
|
|
13
|
+
* configured chains in their declared order.
|
|
14
|
+
*/
|
|
15
|
+
export declare function normalizeModelSelectorValue(value: ModelSelectorValue | undefined): string[];
|
|
16
|
+
/** Return the first configured selector for consumers that need one selector. */
|
|
17
|
+
export declare function selectorHead(value: ModelSelectorValue | undefined): string | undefined;
|
|
@@ -62,6 +62,10 @@ export declare const OpenAICompatSchema: z.ZodObject<{
|
|
|
62
62
|
none: "none";
|
|
63
63
|
}>>;
|
|
64
64
|
}, z.core.$strip>;
|
|
65
|
+
export declare const ModelBindingsSchema: z.ZodObject<{
|
|
66
|
+
modelRoles: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>>;
|
|
67
|
+
agentModelOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>>;
|
|
68
|
+
}, z.core.$strip>;
|
|
65
69
|
export declare const ProfileRoleSchema: z.ZodEnum<{
|
|
66
70
|
architect: "architect";
|
|
67
71
|
critic: "critic";
|
|
@@ -76,7 +80,7 @@ export declare const ProfileModelMappingSchema: z.ZodRecord<z.ZodEnum<{
|
|
|
76
80
|
default: "default";
|
|
77
81
|
executor: "executor";
|
|
78
82
|
planner: "planner";
|
|
79
|
-
}> & z.core.$partial, z.ZodString
|
|
83
|
+
}> & z.core.$partial, z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
80
84
|
export declare const ProfileDefinitionSchema: z.ZodObject<{
|
|
81
85
|
required_providers: z.ZodArray<z.ZodString>;
|
|
82
86
|
display_name: z.ZodOptional<z.ZodString>;
|
|
@@ -86,7 +90,7 @@ export declare const ProfileDefinitionSchema: z.ZodObject<{
|
|
|
86
90
|
default: "default";
|
|
87
91
|
executor: "executor";
|
|
88
92
|
planner: "planner";
|
|
89
|
-
}> & z.core.$partial, z.ZodString
|
|
93
|
+
}> & z.core.$partial, z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
90
94
|
}, z.core.$strict>;
|
|
91
95
|
export declare const ProfilesSchema: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
92
96
|
required_providers: z.ZodArray<z.ZodString>;
|
|
@@ -97,7 +101,7 @@ export declare const ProfilesSchema: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
|
97
101
|
default: "default";
|
|
98
102
|
executor: "executor";
|
|
99
103
|
planner: "planner";
|
|
100
|
-
}> & z.core.$partial, z.ZodString
|
|
104
|
+
}> & z.core.$partial, z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
101
105
|
}, z.core.$strict>>;
|
|
102
106
|
export declare const ModelOverrideSchema: z.ZodObject<{
|
|
103
107
|
name: z.ZodOptional<z.ZodString>;
|
|
@@ -676,8 +680,8 @@ export declare const ModelsConfigSchema: z.ZodObject<{
|
|
|
676
680
|
}, z.core.$strict>>;
|
|
677
681
|
}, z.core.$strict>>>;
|
|
678
682
|
modelBindings: z.ZodOptional<z.ZodObject<{
|
|
679
|
-
modelRoles: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString
|
|
680
|
-
agentModelOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString
|
|
683
|
+
modelRoles: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>>;
|
|
684
|
+
agentModelOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>>;
|
|
681
685
|
}, z.core.$strip>>;
|
|
682
686
|
equivalence: z.ZodOptional<z.ZodObject<{
|
|
683
687
|
overrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
@@ -692,7 +696,7 @@ export declare const ModelsConfigSchema: z.ZodObject<{
|
|
|
692
696
|
default: "default";
|
|
693
697
|
executor: "executor";
|
|
694
698
|
planner: "planner";
|
|
695
|
-
}> & z.core.$partial, z.ZodString
|
|
699
|
+
}> & z.core.$partial, z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
696
700
|
}, z.core.$strict>>>;
|
|
697
701
|
}, z.core.$strict>;
|
|
698
702
|
export type ModelsConfig = z.infer<typeof ModelsConfigSchema>;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Effort } from "@gajae-code/ai/model-thinking";
|
|
2
|
+
import type { ModelSelectorValue } from "./model-selector-value";
|
|
2
3
|
import { type SkillDiscoverySettings } from "./skill-settings-defaults";
|
|
3
4
|
/** Unified settings schema - single source of truth for all settings.
|
|
4
5
|
*
|
|
@@ -10,7 +11,7 @@ import { type SkillDiscoverySettings } from "./skill-settings-defaults";
|
|
|
10
11
|
* settings.get("compaction.enabled") // => boolean
|
|
11
12
|
* settings.set("theme.dark", "red-claw") // sync, saves in background
|
|
12
13
|
*/
|
|
13
|
-
export type SettingTab = "appearance" | "model" | "interaction" | "context" | "memory" | "editing" | "tools" | "tasks" | "providers";
|
|
14
|
+
export type SettingTab = "appearance" | "model" | "interaction" | "context" | "memory" | "editing" | "tools" | "tasks" | "providers" | "notifications";
|
|
14
15
|
/** Tab display metadata - icon is resolved via theme.symbol() */
|
|
15
16
|
export type TabMetadata = {
|
|
16
17
|
label: string;
|
|
@@ -37,6 +38,11 @@ interface UiBase {
|
|
|
37
38
|
description: string;
|
|
38
39
|
/** Condition function name - setting only shown when true */
|
|
39
40
|
condition?: string;
|
|
41
|
+
/**
|
|
42
|
+
* Persistence owner for settings which must not use the generic immediate
|
|
43
|
+
* settings-list write path.
|
|
44
|
+
*/
|
|
45
|
+
editing?: "notification-atomic";
|
|
40
46
|
}
|
|
41
47
|
interface UiBoolean extends UiBase {
|
|
42
48
|
}
|
|
@@ -91,9 +97,13 @@ interface ArrayDef<T> {
|
|
|
91
97
|
};
|
|
92
98
|
ui?: UiBase;
|
|
93
99
|
}
|
|
100
|
+
interface RecordValueDef {
|
|
101
|
+
type: "model-selector-value";
|
|
102
|
+
}
|
|
94
103
|
interface RecordDef<T> {
|
|
95
104
|
type: "record";
|
|
96
105
|
default: Record<string, T>;
|
|
106
|
+
valueSchema?: RecordValueDef;
|
|
97
107
|
ui?: UiBase;
|
|
98
108
|
}
|
|
99
109
|
type SettingDef = BooleanDef | StringDef | NumberDef | EnumDef<readonly string[]> | ArrayDef<unknown> | RecordDef<unknown>;
|
|
@@ -130,13 +140,29 @@ export declare const SETTINGS_SCHEMA: {
|
|
|
130
140
|
readonly type: "string";
|
|
131
141
|
readonly default: undefined;
|
|
132
142
|
};
|
|
143
|
+
readonly "notifications.telegram.activation": {
|
|
144
|
+
readonly type: "record";
|
|
145
|
+
readonly default: Record<string, unknown>;
|
|
146
|
+
};
|
|
133
147
|
readonly "notifications.telegram.rich.enabled": {
|
|
134
148
|
readonly type: "boolean";
|
|
135
149
|
readonly default: true;
|
|
150
|
+
readonly ui: {
|
|
151
|
+
readonly tab: "notifications";
|
|
152
|
+
readonly label: "Telegram Rich Messages";
|
|
153
|
+
readonly description: "Format Telegram notifications with rich message content.";
|
|
154
|
+
readonly editing: "notification-atomic";
|
|
155
|
+
};
|
|
136
156
|
};
|
|
137
157
|
readonly "notifications.telegram.richDraft.enabled": {
|
|
138
158
|
readonly type: "boolean";
|
|
139
159
|
readonly default: false;
|
|
160
|
+
readonly ui: {
|
|
161
|
+
readonly tab: "notifications";
|
|
162
|
+
readonly label: "Telegram Rich Drafts";
|
|
163
|
+
readonly description: "Include rich draft updates in Telegram notifications.";
|
|
164
|
+
readonly editing: "notification-atomic";
|
|
165
|
+
};
|
|
140
166
|
};
|
|
141
167
|
readonly "notifications.telegram.topics.nameTemplate": {
|
|
142
168
|
readonly type: "string";
|
|
@@ -146,7 +172,15 @@ export declare const SETTINGS_SCHEMA: {
|
|
|
146
172
|
readonly type: "string";
|
|
147
173
|
readonly default: undefined;
|
|
148
174
|
};
|
|
149
|
-
readonly "notifications.discord.
|
|
175
|
+
readonly "notifications.discord.applicationId": {
|
|
176
|
+
readonly type: "string";
|
|
177
|
+
readonly default: undefined;
|
|
178
|
+
};
|
|
179
|
+
readonly "notifications.discord.guildId": {
|
|
180
|
+
readonly type: "string";
|
|
181
|
+
readonly default: undefined;
|
|
182
|
+
};
|
|
183
|
+
readonly "notifications.discord.parentChannelId": {
|
|
150
184
|
readonly type: "string";
|
|
151
185
|
readonly default: undefined;
|
|
152
186
|
};
|
|
@@ -154,23 +188,71 @@ export declare const SETTINGS_SCHEMA: {
|
|
|
154
188
|
readonly type: "string";
|
|
155
189
|
readonly default: undefined;
|
|
156
190
|
};
|
|
191
|
+
readonly "notifications.slack.appToken": {
|
|
192
|
+
readonly type: "string";
|
|
193
|
+
readonly default: undefined;
|
|
194
|
+
};
|
|
195
|
+
readonly "notifications.slack.workspaceId": {
|
|
196
|
+
readonly type: "string";
|
|
197
|
+
readonly default: undefined;
|
|
198
|
+
};
|
|
157
199
|
readonly "notifications.slack.channelId": {
|
|
158
200
|
readonly type: "string";
|
|
159
201
|
readonly default: undefined;
|
|
160
202
|
};
|
|
203
|
+
readonly "notifications.slack.authorizedUserId": {
|
|
204
|
+
readonly type: "string";
|
|
205
|
+
readonly default: undefined;
|
|
206
|
+
};
|
|
161
207
|
readonly "notifications.redact": {
|
|
162
208
|
readonly type: "boolean";
|
|
163
209
|
readonly default: false;
|
|
210
|
+
readonly ui: {
|
|
211
|
+
readonly tab: "notifications";
|
|
212
|
+
readonly label: "Redact Notification Content";
|
|
213
|
+
readonly description: "Redact sensitive content before notifications are delivered.";
|
|
214
|
+
readonly editing: "notification-atomic";
|
|
215
|
+
};
|
|
164
216
|
};
|
|
165
217
|
readonly "notifications.verbosity": {
|
|
166
218
|
readonly type: "string";
|
|
167
219
|
readonly default: "lean";
|
|
168
220
|
readonly validate: (value: string) => value is "lean" | "verbose";
|
|
221
|
+
readonly ui: {
|
|
222
|
+
readonly tab: "notifications";
|
|
223
|
+
readonly label: "Notification Verbosity";
|
|
224
|
+
readonly description: "Choose concise or detailed notification messages.";
|
|
225
|
+
readonly options: readonly [{
|
|
226
|
+
readonly value: "lean";
|
|
227
|
+
readonly label: "Lean";
|
|
228
|
+
readonly description: "Send concise notification messages";
|
|
229
|
+
}, {
|
|
230
|
+
readonly value: "verbose";
|
|
231
|
+
readonly label: "Verbose";
|
|
232
|
+
readonly description: "Send detailed notification messages";
|
|
233
|
+
}];
|
|
234
|
+
readonly editing: "notification-atomic";
|
|
235
|
+
};
|
|
169
236
|
};
|
|
170
237
|
readonly "notifications.sessionScope": {
|
|
171
238
|
readonly type: "string";
|
|
172
239
|
readonly default: "all";
|
|
173
240
|
readonly validate: (value: string) => value is "all" | "primary";
|
|
241
|
+
readonly ui: {
|
|
242
|
+
readonly tab: "notifications";
|
|
243
|
+
readonly label: "Notification Session Scope";
|
|
244
|
+
readonly description: "Send notifications from all sessions or only the primary session.";
|
|
245
|
+
readonly options: readonly [{
|
|
246
|
+
readonly value: "all";
|
|
247
|
+
readonly label: "All Sessions";
|
|
248
|
+
readonly description: "Allow eligible sessions";
|
|
249
|
+
}, {
|
|
250
|
+
readonly value: "primary";
|
|
251
|
+
readonly label: "Primary Session";
|
|
252
|
+
readonly description: "Limit automatic notifications to the primary session";
|
|
253
|
+
}];
|
|
254
|
+
readonly editing: "notification-atomic";
|
|
255
|
+
};
|
|
174
256
|
};
|
|
175
257
|
readonly "notifications.daemon.idleTimeoutMs": {
|
|
176
258
|
readonly type: "number";
|
|
@@ -285,7 +367,10 @@ export declare const SETTINGS_SCHEMA: {
|
|
|
285
367
|
};
|
|
286
368
|
readonly modelRoles: {
|
|
287
369
|
readonly type: "record";
|
|
288
|
-
readonly default: Record<string,
|
|
370
|
+
readonly default: Record<string, ModelSelectorValue>;
|
|
371
|
+
readonly valueSchema: {
|
|
372
|
+
readonly type: "model-selector-value";
|
|
373
|
+
};
|
|
289
374
|
};
|
|
290
375
|
readonly "modelProfile.default": {
|
|
291
376
|
readonly type: "string";
|
|
@@ -1240,6 +1325,11 @@ export declare const SETTINGS_SCHEMA: {
|
|
|
1240
1325
|
}];
|
|
1241
1326
|
};
|
|
1242
1327
|
};
|
|
1328
|
+
readonly "fallback.maxAttempts": {
|
|
1329
|
+
readonly type: "number";
|
|
1330
|
+
readonly default: 3;
|
|
1331
|
+
readonly validate: (value: number) => boolean;
|
|
1332
|
+
};
|
|
1243
1333
|
readonly "retry.enabled": {
|
|
1244
1334
|
readonly type: "boolean";
|
|
1245
1335
|
readonly default: true;
|
|
@@ -2802,6 +2892,34 @@ export declare const SETTINGS_SCHEMA: {
|
|
|
2802
2892
|
readonly description: "Directory to save screenshots. If unset, screenshots go to a temp file. Supports ~. Examples: ~/Downloads, ~/Desktop, /sdcard/Download (Android)";
|
|
2803
2893
|
};
|
|
2804
2894
|
};
|
|
2895
|
+
readonly "browser.profileReuse": {
|
|
2896
|
+
readonly type: "string";
|
|
2897
|
+
readonly default: "auto";
|
|
2898
|
+
readonly validate: (value: string) => value is "auto" | "opt-in";
|
|
2899
|
+
readonly ui: {
|
|
2900
|
+
readonly tab: "tools";
|
|
2901
|
+
readonly label: "Profile reuse posture";
|
|
2902
|
+
readonly description: "'auto' (default): when a usable real Chrome profile is available, the browser tool uses an isolated copy of it (cookies/session/cache) for stronger stealth, warns, and falls back to synthetic. 'opt-in': stay synthetic unless a real profile is explicitly requested.";
|
|
2903
|
+
};
|
|
2904
|
+
};
|
|
2905
|
+
readonly "browser.geo.timezone": {
|
|
2906
|
+
readonly type: "string";
|
|
2907
|
+
readonly default: undefined;
|
|
2908
|
+
readonly ui: {
|
|
2909
|
+
readonly tab: "tools";
|
|
2910
|
+
readonly label: "Geo timezone override";
|
|
2911
|
+
readonly description: "Optional IANA timezone (e.g. 'America/New_York') for headless sessions. Default unset preserves the real timezone. Only set this to a value coherent with your egress (e.g. a proxy region); an incoherent timezone increases bot detection.";
|
|
2912
|
+
};
|
|
2913
|
+
};
|
|
2914
|
+
readonly "browser.geo.locale": {
|
|
2915
|
+
readonly type: "string";
|
|
2916
|
+
readonly default: undefined;
|
|
2917
|
+
readonly ui: {
|
|
2918
|
+
readonly tab: "tools";
|
|
2919
|
+
readonly label: "Geo locale override";
|
|
2920
|
+
readonly description: "Optional UI locale (e.g. 'en-US') for headless sessions. Default unset preserves the real locale. Only set this coherently with your egress region.";
|
|
2921
|
+
};
|
|
2922
|
+
};
|
|
2805
2923
|
readonly "browser.gc.enabled": {
|
|
2806
2924
|
readonly type: "boolean";
|
|
2807
2925
|
readonly default: true;
|
|
@@ -3337,7 +3455,10 @@ export declare const SETTINGS_SCHEMA: {
|
|
|
3337
3455
|
};
|
|
3338
3456
|
readonly "task.agentModelOverrides": {
|
|
3339
3457
|
readonly type: "record";
|
|
3340
|
-
readonly default: Record<string,
|
|
3458
|
+
readonly default: Record<string, ModelSelectorValue>;
|
|
3459
|
+
readonly valueSchema: {
|
|
3460
|
+
readonly type: "model-selector-value";
|
|
3461
|
+
};
|
|
3341
3462
|
};
|
|
3342
3463
|
readonly "tasks.todoClearDelay": {
|
|
3343
3464
|
readonly type: "number";
|
|
@@ -3909,13 +4030,19 @@ export interface NotificationsSettings {
|
|
|
3909
4030
|
};
|
|
3910
4031
|
discord: {
|
|
3911
4032
|
botToken: string | undefined;
|
|
3912
|
-
|
|
4033
|
+
applicationId: string | undefined;
|
|
4034
|
+
guildId: string | undefined;
|
|
4035
|
+
parentChannelId: string | undefined;
|
|
3913
4036
|
};
|
|
3914
4037
|
slack: {
|
|
3915
4038
|
botToken: string | undefined;
|
|
4039
|
+
appToken: string | undefined;
|
|
4040
|
+
workspaceId: string | undefined;
|
|
3916
4041
|
channelId: string | undefined;
|
|
3917
4042
|
};
|
|
3918
4043
|
redact: boolean;
|
|
4044
|
+
verbosity: "lean" | "verbose";
|
|
4045
|
+
sessionScope: "all" | "primary";
|
|
3919
4046
|
daemon: {
|
|
3920
4047
|
idleTimeoutMs: number;
|
|
3921
4048
|
};
|
|
@@ -3934,7 +4061,7 @@ export interface GroupTypeMap {
|
|
|
3934
4061
|
statusLine: StatusLineSettings;
|
|
3935
4062
|
thinkingBudgets: ThinkingBudgetsSettings;
|
|
3936
4063
|
stt: SttSettings;
|
|
3937
|
-
modelRoles: Record<string,
|
|
4064
|
+
modelRoles: Record<string, ModelSelectorValue>;
|
|
3938
4065
|
modelTags: ModelTagsSettings;
|
|
3939
4066
|
cycleOrder: string[];
|
|
3940
4067
|
shellMinimizer: ShellMinimizerSettings;
|