@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
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ThinkingLevel, type ThinkingLevel as ThinkingLevelValue } from "@gajae-code/agent-core";
|
|
2
2
|
import type { Effort } from "@gajae-code/ai";
|
|
3
3
|
import {
|
|
4
|
+
type Component,
|
|
4
5
|
Container,
|
|
5
6
|
Input,
|
|
6
7
|
matchesKey,
|
|
@@ -25,6 +26,10 @@ import { getCurrentThemeName, getSelectListTheme, getSettingsListTheme, theme }
|
|
|
25
26
|
import { matchesAppInterrupt } from "../../modes/utils/keybinding-matchers";
|
|
26
27
|
import { getTabBarTheme } from "../shared";
|
|
27
28
|
import { DynamicBorder } from "./dynamic-border";
|
|
29
|
+
import {
|
|
30
|
+
type NotificationsEditorOperations,
|
|
31
|
+
NotificationsSettingsEditorComponent,
|
|
32
|
+
} from "./notifications-settings-editor";
|
|
28
33
|
import { createPetSelectItems, getPetUnavailableWarning, isPetAvailable } from "./pet-capability";
|
|
29
34
|
import { handleInputOrEscape, PluginSettingsComponent } from "./plugin-settings";
|
|
30
35
|
import { getSettingsForTab, type SettingDef } from "./settings-defs";
|
|
@@ -712,6 +717,7 @@ export class SettingsSelectorComponent extends Container {
|
|
|
712
717
|
#tabBar: TabBar;
|
|
713
718
|
#currentList: SettingsList | null = null;
|
|
714
719
|
#pluginComponent: PluginSettingsComponent | null = null;
|
|
720
|
+
#notificationsEditor: NotificationsSettingsEditorComponent | null = null;
|
|
715
721
|
#statusPreviewContainer: Container | null = null;
|
|
716
722
|
#statusPreviewText: Text | null = null;
|
|
717
723
|
#currentTabId: SettingTab | "plugins" = "appearance";
|
|
@@ -720,6 +726,7 @@ export class SettingsSelectorComponent extends Container {
|
|
|
720
726
|
constructor(
|
|
721
727
|
private readonly context: SettingsRuntimeContext,
|
|
722
728
|
private readonly callbacks: SettingsCallbacks,
|
|
729
|
+
private readonly notificationsOperations?: NotificationsEditorOperations,
|
|
723
730
|
) {
|
|
724
731
|
super();
|
|
725
732
|
|
|
@@ -731,6 +738,7 @@ export class SettingsSelectorComponent extends Container {
|
|
|
731
738
|
this.#tabBar.onTabChange = () => {
|
|
732
739
|
this.#switchToTab(this.#tabBar.getActiveTab().id as SettingTab | "plugins");
|
|
733
740
|
};
|
|
741
|
+
|
|
734
742
|
this.addChild(this.#tabBar);
|
|
735
743
|
|
|
736
744
|
// Spacer after tab bar
|
|
@@ -744,6 +752,9 @@ export class SettingsSelectorComponent extends Container {
|
|
|
744
752
|
}
|
|
745
753
|
|
|
746
754
|
#switchToTab(tabId: SettingTab | "plugins"): void {
|
|
755
|
+
if (this.#currentTabId === "notifications" && tabId !== "notifications" && !this.#disposeNotificationsEditor()) {
|
|
756
|
+
return;
|
|
757
|
+
}
|
|
747
758
|
this.#currentTabId = tabId;
|
|
748
759
|
|
|
749
760
|
// Remove current content
|
|
@@ -767,6 +778,8 @@ export class SettingsSelectorComponent extends Container {
|
|
|
767
778
|
|
|
768
779
|
if (tabId === "plugins") {
|
|
769
780
|
this.#showPluginsTab();
|
|
781
|
+
} else if (tabId === "notifications") {
|
|
782
|
+
this.#showNotificationsTab();
|
|
770
783
|
} else {
|
|
771
784
|
this.#showSettingsTab(tabId);
|
|
772
785
|
}
|
|
@@ -775,6 +788,16 @@ export class SettingsSelectorComponent extends Container {
|
|
|
775
788
|
this.addChild(bottomBorder);
|
|
776
789
|
}
|
|
777
790
|
|
|
791
|
+
#disposeNotificationsEditor(): boolean {
|
|
792
|
+
const editor = this.#notificationsEditor;
|
|
793
|
+
if (!editor) return true;
|
|
794
|
+
if (editor.navigationLocked) return false;
|
|
795
|
+
editor.dispose();
|
|
796
|
+
this.removeChild(editor);
|
|
797
|
+
this.#notificationsEditor = null;
|
|
798
|
+
return true;
|
|
799
|
+
}
|
|
800
|
+
|
|
778
801
|
/**
|
|
779
802
|
* Convert a setting definition to a SettingItem for the UI.
|
|
780
803
|
*/
|
|
@@ -851,7 +874,7 @@ export class SettingsSelectorComponent extends Container {
|
|
|
851
874
|
currentValue: string,
|
|
852
875
|
done: (value?: string) => void,
|
|
853
876
|
): Container {
|
|
854
|
-
let options
|
|
877
|
+
let options = def.options;
|
|
855
878
|
|
|
856
879
|
// Special case: inject runtime options for thinking level
|
|
857
880
|
if (def.path === "defaultThinkingLevel") {
|
|
@@ -1033,6 +1056,14 @@ export class SettingsSelectorComponent extends Container {
|
|
|
1033
1056
|
}
|
|
1034
1057
|
}
|
|
1035
1058
|
|
|
1059
|
+
#showNotificationsTab(): void {
|
|
1060
|
+
if (!this.notificationsOperations) return;
|
|
1061
|
+
this.#notificationsEditor = new NotificationsSettingsEditorComponent(this.notificationsOperations, {
|
|
1062
|
+
onCancel: () => this.callbacks.onCancel(),
|
|
1063
|
+
});
|
|
1064
|
+
this.addChild(this.#notificationsEditor);
|
|
1065
|
+
}
|
|
1066
|
+
|
|
1036
1067
|
/**
|
|
1037
1068
|
* Show a settings tab using definitions.
|
|
1038
1069
|
*/
|
|
@@ -1197,21 +1228,39 @@ export class SettingsSelectorComponent extends Container {
|
|
|
1197
1228
|
this.addChild(this.#pluginComponent);
|
|
1198
1229
|
}
|
|
1199
1230
|
|
|
1200
|
-
getFocusComponent():
|
|
1201
|
-
|
|
1202
|
-
|
|
1231
|
+
getFocusComponent(): Component {
|
|
1232
|
+
return (this.#currentList || this.#pluginComponent || this.#notificationsEditor)!;
|
|
1233
|
+
}
|
|
1234
|
+
|
|
1235
|
+
override dispose(): void {
|
|
1236
|
+
if (this.#notificationsEditor?.navigationLocked) return;
|
|
1237
|
+
this.#notificationsEditor?.dispose();
|
|
1238
|
+
this.#notificationsEditor = null;
|
|
1239
|
+
super.dispose();
|
|
1203
1240
|
}
|
|
1204
1241
|
|
|
1205
1242
|
handleInput(data: string): void {
|
|
1243
|
+
const tabNavigation =
|
|
1244
|
+
matchesKey(data, "tab") ||
|
|
1245
|
+
matchesKey(data, "shift+tab") ||
|
|
1246
|
+
matchesKey(data, "left") ||
|
|
1247
|
+
matchesKey(data, "right");
|
|
1248
|
+
if (this.#notificationsEditor && this.#currentTabId === "notifications") {
|
|
1249
|
+
if (tabNavigation) {
|
|
1250
|
+
if (this.#notificationsEditor.navigationLocked) {
|
|
1251
|
+
this.#notificationsEditor.handleInput(data);
|
|
1252
|
+
return;
|
|
1253
|
+
}
|
|
1254
|
+
this.#tabBar.handleInput(data);
|
|
1255
|
+
return;
|
|
1256
|
+
}
|
|
1257
|
+
this.#notificationsEditor.handleInput(data);
|
|
1258
|
+
return;
|
|
1259
|
+
}
|
|
1260
|
+
|
|
1206
1261
|
// Handle tab switching — but NOT when a text input is active, since
|
|
1207
1262
|
// arrow keys must reach the cursor and Tab must not switch tabs.
|
|
1208
|
-
if (
|
|
1209
|
-
!this.#textInputActive &&
|
|
1210
|
-
(matchesKey(data, "tab") ||
|
|
1211
|
-
matchesKey(data, "shift+tab") ||
|
|
1212
|
-
matchesKey(data, "left") ||
|
|
1213
|
-
matchesKey(data, "right"))
|
|
1214
|
-
) {
|
|
1263
|
+
if (!this.#textInputActive && tabNavigation) {
|
|
1215
1264
|
this.#tabBar.handleInput(data);
|
|
1216
1265
|
return;
|
|
1217
1266
|
}
|
|
@@ -10,7 +10,7 @@ export interface RecentSession {
|
|
|
10
10
|
|
|
11
11
|
export interface LspServerInfo {
|
|
12
12
|
name: string;
|
|
13
|
-
status: "ready" | "error" | "connecting";
|
|
13
|
+
status: "idle" | "ready" | "error" | "connecting";
|
|
14
14
|
fileTypes: string[];
|
|
15
15
|
}
|
|
16
16
|
|
|
@@ -172,9 +172,9 @@ export class WelcomeComponent implements Component {
|
|
|
172
172
|
const icon =
|
|
173
173
|
server.status === "ready"
|
|
174
174
|
? theme.styledSymbol("status.success", "success")
|
|
175
|
-
: server.status === "
|
|
176
|
-
? theme.styledSymbol("status.
|
|
177
|
-
: theme.styledSymbol("status.
|
|
175
|
+
: server.status === "error"
|
|
176
|
+
? theme.styledSymbol("status.error", "error")
|
|
177
|
+
: theme.styledSymbol("status.pending", "muted");
|
|
178
178
|
const exts = server.fileTypes.slice(0, 3).join(" ");
|
|
179
179
|
lspLines.push(` ${icon} ${theme.fg("muted", server.name)} ${theme.fg("dim", exts)}`);
|
|
180
180
|
}
|
|
@@ -450,8 +450,7 @@ export class CommandController {
|
|
|
450
450
|
if (this.ctx.lspServers && this.ctx.lspServers.length > 0) {
|
|
451
451
|
info += `\n${theme.bold("LSP Servers")}\n`;
|
|
452
452
|
for (const server of this.ctx.lspServers) {
|
|
453
|
-
const statusColor =
|
|
454
|
-
server.status === "ready" ? "success" : server.status === "connecting" ? "warning" : "error";
|
|
453
|
+
const statusColor = server.status === "ready" ? "success" : server.status === "error" ? "error" : "warning";
|
|
455
454
|
const statusText =
|
|
456
455
|
server.status === "error" && server.error ? `${server.status}: ${server.error}` : server.status;
|
|
457
456
|
info += `${theme.fg("dim", `${server.name}:`)} ${theme.fg(statusColor, statusText)} ${theme.fg("dim", `(${server.fileTypes.join(", ")})`)}\n`;
|
|
@@ -917,22 +916,15 @@ export class CommandController {
|
|
|
917
916
|
}
|
|
918
917
|
}
|
|
919
918
|
|
|
920
|
-
async #runNewSessionFlow(options?: NewSessionOptions, label: string = "New session started"): Promise<
|
|
919
|
+
async #runNewSessionFlow(options?: NewSessionOptions, label: string = "New session started"): Promise<boolean> {
|
|
920
|
+
if (!(await this.ctx.session.newSession(options))) return false;
|
|
921
|
+
|
|
921
922
|
if (this.ctx.loadingAnimation) {
|
|
922
923
|
this.ctx.loadingAnimation.stop();
|
|
923
924
|
this.ctx.loadingAnimation = undefined;
|
|
924
925
|
}
|
|
925
926
|
this.ctx.statusContainer.clear();
|
|
926
|
-
|
|
927
|
-
if (this.ctx.session.isCompacting) {
|
|
928
|
-
this.ctx.session.abortCompaction();
|
|
929
|
-
while (this.ctx.session.isCompacting) {
|
|
930
|
-
await Bun.sleep(10);
|
|
931
|
-
}
|
|
932
|
-
}
|
|
933
|
-
if (!(await this.ctx.session.newSession(options))) return;
|
|
934
927
|
this.ctx.resetIrcSidebarSession();
|
|
935
|
-
|
|
936
928
|
this.ctx.resetObserverRegistry();
|
|
937
929
|
setSessionTerminalTitle(this.ctx.sessionManager.getSessionName(), this.ctx.sessionManager.getCwd());
|
|
938
930
|
|
|
@@ -953,10 +945,11 @@ export class CommandController {
|
|
|
953
945
|
this.ctx.chatContainer.addChild(new Text(`${theme.fg("accent", `${theme.status.success} ${label}`)}`, 1, 0));
|
|
954
946
|
await this.ctx.reloadTodos();
|
|
955
947
|
this.ctx.ui.requestRender();
|
|
948
|
+
return true;
|
|
956
949
|
}
|
|
957
950
|
|
|
958
|
-
async handleClearCommand(): Promise<
|
|
959
|
-
|
|
951
|
+
async handleClearCommand(): Promise<boolean> {
|
|
952
|
+
return this.#runNewSessionFlow();
|
|
960
953
|
}
|
|
961
954
|
|
|
962
955
|
async handleContextClearCommand(): Promise<void> {
|
|
@@ -996,12 +989,12 @@ export class CommandController {
|
|
|
996
989
|
this.ctx.ui.requestRender();
|
|
997
990
|
}
|
|
998
991
|
|
|
999
|
-
async handleDropCommand(): Promise<
|
|
992
|
+
async handleDropCommand(): Promise<boolean> {
|
|
1000
993
|
if (!this.ctx.sessionManager.getSessionFile()) {
|
|
1001
994
|
this.ctx.showError("Nothing to drop (in-memory session)");
|
|
1002
|
-
return;
|
|
995
|
+
return false;
|
|
1003
996
|
}
|
|
1004
|
-
|
|
997
|
+
return this.#runNewSessionFlow({ drop: true }, "Session dropped");
|
|
1005
998
|
}
|
|
1006
999
|
|
|
1007
1000
|
async handleForkCommand(): Promise<void> {
|
|
@@ -16,9 +16,9 @@ import { ToolExecutionComponent } from "../../modes/components/tool-execution";
|
|
|
16
16
|
import { TtsrNotificationComponent } from "../../modes/components/ttsr-notification";
|
|
17
17
|
import { getSymbolTheme, theme } from "../../modes/theme/theme";
|
|
18
18
|
import type { InteractiveModeContext, TodoPhase } from "../../modes/types";
|
|
19
|
-
import { completionNotifyDisabledByEnv } from "../../notifications/config";
|
|
20
|
-
import { summaryFromMessage } from "../../notifications/helpers";
|
|
21
19
|
import type { PlanApprovalDetails } from "../../plan-mode/approved-plan";
|
|
20
|
+
import { completionNotifyDisabledByEnv } from "../../sdk/bus/config";
|
|
21
|
+
import { summaryFromMessage } from "../../sdk/bus/helpers";
|
|
22
22
|
import type { AgentSessionEvent } from "../../session/agent-session";
|
|
23
23
|
import { type CustomMessage, isSilentAbort, readPendingDisplayTag } from "../../session/messages";
|
|
24
24
|
import { transferSessionMessageIdentity } from "../../session/session-manager";
|
|
@@ -135,14 +135,13 @@ export class EventController {
|
|
|
135
135
|
auto_compaction_end: e => this.#handleAutoCompactionEnd(e),
|
|
136
136
|
auto_retry_start: e => this.#handleAutoRetryStart(e),
|
|
137
137
|
auto_retry_end: e => this.#handleAutoRetryEnd(e),
|
|
138
|
-
retry_fallback_applied: e => this.#handleRetryFallbackApplied(e),
|
|
139
|
-
retry_fallback_succeeded: e => this.#handleRetryFallbackSucceeded(e),
|
|
140
138
|
ttsr_triggered: e => this.#handleTtsrTriggered(e),
|
|
141
139
|
todo_reminder: e => this.#handleTodoReminder(e),
|
|
142
140
|
todo_auto_clear: e => this.#handleTodoAutoClear(e),
|
|
143
141
|
irc_message: e => this.#handleIrcMessage(e),
|
|
144
142
|
subagent_steer_message: e => this.#handleSubagentSteerMessage(e),
|
|
145
143
|
notice: e => this.#handleNotice(e),
|
|
144
|
+
model_fallback_switched: e => this.#handleModelFallbackSwitched(e),
|
|
146
145
|
thinking_level_changed: async () => {},
|
|
147
146
|
goal_updated: async () => {},
|
|
148
147
|
} satisfies AgentSessionEventHandlers;
|
|
@@ -497,6 +496,14 @@ export class EventController {
|
|
|
497
496
|
this.ctx.ui.requestRender();
|
|
498
497
|
}
|
|
499
498
|
|
|
499
|
+
async #handleModelFallbackSwitched(
|
|
500
|
+
event: Extract<AgentSessionEvent, { type: "model_fallback_switched" }>,
|
|
501
|
+
): Promise<void> {
|
|
502
|
+
this.ctx.showStatus(`Fallback model: ${event.from} → ${event.to}`);
|
|
503
|
+
this.ctx.statusLine.invalidate();
|
|
504
|
+
this.ctx.ui.requestRender();
|
|
505
|
+
}
|
|
506
|
+
|
|
500
507
|
async #handleNotice(event: Extract<AgentSessionEvent, { type: "notice" }>): Promise<void> {
|
|
501
508
|
const message = event.source ? `${event.source}: ${event.message}` : event.message;
|
|
502
509
|
if (event.level === "error") {
|
|
@@ -977,18 +984,6 @@ export class EventController {
|
|
|
977
984
|
this.ctx.ui.requestRender();
|
|
978
985
|
}
|
|
979
986
|
|
|
980
|
-
async #handleRetryFallbackApplied(
|
|
981
|
-
event: Extract<AgentSessionEvent, { type: "retry_fallback_applied" }>,
|
|
982
|
-
): Promise<void> {
|
|
983
|
-
this.ctx.showWarning(`Fallback: ${event.from} -> ${event.to}`);
|
|
984
|
-
}
|
|
985
|
-
|
|
986
|
-
async #handleRetryFallbackSucceeded(
|
|
987
|
-
event: Extract<AgentSessionEvent, { type: "retry_fallback_succeeded" }>,
|
|
988
|
-
): Promise<void> {
|
|
989
|
-
this.ctx.showStatus(`Fallback succeeded on ${event.model}`);
|
|
990
|
-
}
|
|
991
|
-
|
|
992
987
|
async #handleTtsrTriggered(event: Extract<AgentSessionEvent, { type: "ttsr_triggered" }>): Promise<void> {
|
|
993
988
|
const component = new TtsrNotificationComponent(event.rules);
|
|
994
989
|
component.setExpanded(this.ctx.toolOutputExpanded);
|