@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,30 +1,30 @@
|
|
|
1
|
-
import { type AgentTelemetryConfig,
|
|
1
|
+
import { type AgentTelemetryConfig, ThinkingLevel } from "@gajae-code/agent-core";
|
|
2
2
|
import { type AuthCredentialSelector, type Model, type ProviderSessionState } from "@gajae-code/ai";
|
|
3
|
-
import { createAppendOnlyContextManager, providerSupportsAppendOnlyAuto, resolveAppendOnlyMode } from "
|
|
4
|
-
import { type Rule } from "
|
|
5
|
-
import { ModelRegistry } from "
|
|
6
|
-
import { type ScopedModelSelection } from "
|
|
7
|
-
import { type PromptTemplate } from "
|
|
8
|
-
import { Settings, type SkillsSettings } from "
|
|
9
|
-
import type { BashRestrictionProfile } from "
|
|
10
|
-
import "
|
|
11
|
-
import type { CustomCommandsLoadResult } from "
|
|
12
|
-
import type { CustomTool } from "
|
|
13
|
-
import { type ExtensionFactory, type ExtensionUIContext, type LoadExtensionsResult, type ToolDefinition } from "
|
|
14
|
-
import { type ConstrainedPluginHook } from "
|
|
15
|
-
import { type Skill, type SkillWarning } from "
|
|
16
|
-
import type { FileSlashCommand } from "
|
|
17
|
-
import type { HindsightSessionState } from "
|
|
18
|
-
import { type LocalProtocolOptions } from "
|
|
19
|
-
import { AgentRegistry } from "
|
|
20
|
-
import { MCPManager } from "
|
|
21
|
-
import { AgentSession, type ForkContextSeed } from "
|
|
22
|
-
import { AuthStorage } from "
|
|
23
|
-
import { SessionManager } from "
|
|
24
|
-
import { type BuildSystemPromptResult } from "
|
|
25
|
-
import { BashTool, BUILTIN_TOOLS, createTools, EditTool, EvalTool, FindTool, HIDDEN_TOOLS, type LspStartupServerInfo, loadSshTool, ReadTool, ResolveTool, SearchTool, type Tool, type ToolSession, WebSearchTool, WriteTool } from "
|
|
26
|
-
import { EventBus } from "
|
|
27
|
-
import { type WorkspaceTree } from "
|
|
3
|
+
import { createAppendOnlyContextManager, providerSupportsAppendOnlyAuto, resolveAppendOnlyMode } from "../append-only-mode";
|
|
4
|
+
import { type Rule } from "../capability/rule";
|
|
5
|
+
import { ModelRegistry } from "../config/model-registry";
|
|
6
|
+
import { type ScopedModelSelection } from "../config/model-resolver";
|
|
7
|
+
import { type PromptTemplate } from "../config/prompt-templates";
|
|
8
|
+
import { Settings, type SkillsSettings } from "../config/settings";
|
|
9
|
+
import type { BashRestrictionProfile } from "../tools/bash-allowed-prefixes";
|
|
10
|
+
import "../discovery";
|
|
11
|
+
import type { CustomCommandsLoadResult } from "../extensibility/custom-commands";
|
|
12
|
+
import type { CustomTool } from "../extensibility/custom-tools/types";
|
|
13
|
+
import { type ExtensionFactory, type ExtensionUIContext, type LoadExtensionsResult, type ToolDefinition } from "../extensibility/extensions";
|
|
14
|
+
import { type ConstrainedPluginHook } from "../extensibility/gjc-plugins/constrained-hooks";
|
|
15
|
+
import { type Skill, type SkillWarning } from "../extensibility/skills";
|
|
16
|
+
import type { FileSlashCommand } from "../extensibility/slash-commands";
|
|
17
|
+
import type { HindsightSessionState } from "../hindsight/state";
|
|
18
|
+
import { type LocalProtocolOptions } from "../internal-urls";
|
|
19
|
+
import { AgentRegistry } from "../registry/agent-registry";
|
|
20
|
+
import { MCPManager } from "../runtime-mcp";
|
|
21
|
+
import { AgentSession, type ForkContextSeed } from "../session/agent-session";
|
|
22
|
+
import { AuthStorage } from "../session/auth-storage";
|
|
23
|
+
import { SessionManager } from "../session/session-manager";
|
|
24
|
+
import { type BuildSystemPromptResult } from "../system-prompt";
|
|
25
|
+
import { BashTool, BUILTIN_TOOLS, createTools, EditTool, EvalTool, FindTool, HIDDEN_TOOLS, type LspStartupServerInfo, loadSshTool, ReadTool, ResolveTool, SearchTool, type Tool, type ToolSession, WebSearchTool, WriteTool } from "../tools";
|
|
26
|
+
import { EventBus } from "../utils/event-bus";
|
|
27
|
+
import { type WorkspaceTree } from "../workspace-tree";
|
|
28
28
|
export interface CreateAgentSessionOptions {
|
|
29
29
|
/** Working directory for project-local discovery. Default: getProjectDir() */
|
|
30
30
|
cwd?: string;
|
|
@@ -100,8 +100,12 @@ export interface CreateAgentSessionOptions {
|
|
|
100
100
|
slashCommands?: FileSlashCommand[];
|
|
101
101
|
/** @deprecated MCP runtime discovery is quarantined and ignored. */
|
|
102
102
|
enableMCP?: boolean;
|
|
103
|
-
/** Existing MCP manager to reuse (skips discovery, propagates to toolSession).
|
|
103
|
+
/** Existing MCP manager to reuse (skips discovery, propagates to toolSession).
|
|
104
|
+
* Mutually exclusive with mcpConfigPath. */
|
|
104
105
|
mcpManager?: MCPManager;
|
|
106
|
+
/** Load MCP tools for a top-level session only from this caller-owned absolute config file path.
|
|
107
|
+
* Mutually exclusive with mcpManager. */
|
|
108
|
+
mcpConfigPath?: string;
|
|
105
109
|
/** Enable LSP integration (tool, formatting, diagnostics, warmup). Default: true */
|
|
106
110
|
enableLsp?: boolean;
|
|
107
111
|
/** Skip Python kernel availability check and prelude warmup */
|
|
@@ -144,6 +148,8 @@ export interface CreateAgentSessionOptions {
|
|
|
144
148
|
settings?: Settings;
|
|
145
149
|
/** Whether UI is available (enables interactive tools like ask). Default: false */
|
|
146
150
|
hasUI?: boolean;
|
|
151
|
+
/** Whether this host mode can own a notification session endpoint. Default: true. */
|
|
152
|
+
notificationHostModeSupported?: boolean;
|
|
147
153
|
/**
|
|
148
154
|
* Opt-in OpenTelemetry instrumentation forwarded to the underlying Agent.
|
|
149
155
|
* Passing `{}` enables the loop's GenAI-semantic-convention spans. See
|
|
@@ -169,24 +175,24 @@ export interface CreateAgentSessionResult {
|
|
|
169
175
|
extensionsResult: LoadExtensionsResult;
|
|
170
176
|
/** Update tool UI context (interactive mode) */
|
|
171
177
|
setToolUIContext: (uiContext: ExtensionUIContext, hasUI: boolean) => void;
|
|
172
|
-
/** MCP manager for server lifecycle management (undefined if MCP disabled) */
|
|
178
|
+
/** MCP manager for server lifecycle management (undefined if MCP disabled or an exact tools-only config is session-owned) */
|
|
173
179
|
mcpManager?: MCPManager;
|
|
174
180
|
/** Warning if session was restored with a different model than saved */
|
|
175
181
|
modelFallbackMessage?: string;
|
|
176
|
-
/** LSP servers
|
|
182
|
+
/** LSP servers configured for lazy startup in interactive mode */
|
|
177
183
|
lspServers?: LspStartupServerInfo[];
|
|
178
184
|
/** Shared event bus for tool/extension communication */
|
|
179
185
|
eventBus: EventBus;
|
|
180
186
|
}
|
|
181
|
-
export type { PromptTemplate } from "
|
|
182
|
-
export { Settings, type SkillsSettings } from "
|
|
183
|
-
export type { CustomCommand, CustomCommandFactory } from "
|
|
184
|
-
export type { CustomTool, CustomToolFactory } from "
|
|
185
|
-
export type * from "
|
|
186
|
-
export type { Skill } from "
|
|
187
|
-
export type { FileSlashCommand } from "
|
|
188
|
-
export type { Tool } from "
|
|
189
|
-
export { buildDirectoryTree, buildWorkspaceTree, type DirectoryTree, type WorkspaceTree } from "
|
|
187
|
+
export type { PromptTemplate } from "../config/prompt-templates";
|
|
188
|
+
export { Settings, type SkillsSettings } from "../config/settings";
|
|
189
|
+
export type { CustomCommand, CustomCommandFactory } from "../extensibility/custom-commands/types";
|
|
190
|
+
export type { CustomTool, CustomToolFactory } from "../extensibility/custom-tools/types";
|
|
191
|
+
export type * from "../extensibility/extensions";
|
|
192
|
+
export type { Skill } from "../extensibility/skills";
|
|
193
|
+
export type { FileSlashCommand } from "../extensibility/slash-commands";
|
|
194
|
+
export type { Tool } from "../tools";
|
|
195
|
+
export { buildDirectoryTree, buildWorkspaceTree, type DirectoryTree, type WorkspaceTree } from "../workspace-tree";
|
|
190
196
|
export { BashTool, BUILTIN_TOOLS, createTools, EditTool, EvalTool, FindTool, HIDDEN_TOOLS, loadSshTool, ReadTool, ResolveTool, SearchTool, type ToolSession, WebSearchTool, WriteTool, };
|
|
191
197
|
/**
|
|
192
198
|
* Create an AuthStorage instance.
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
export type SdkStartupPhase = "registration" | "startup";
|
|
2
|
+
export type SdkStartupReason = "disabled" | "ineligible" | "factory_absent" | "runner_absent" | "pending" | "failed";
|
|
3
|
+
export interface SdkStartupFailure {
|
|
4
|
+
phase: SdkStartupPhase;
|
|
5
|
+
reason: SdkStartupReason;
|
|
6
|
+
message: string;
|
|
7
|
+
}
|
|
8
|
+
export type SdkStartupResult = {
|
|
9
|
+
status: "started";
|
|
10
|
+
} | {
|
|
11
|
+
status: "failed";
|
|
12
|
+
failure: SdkStartupFailure;
|
|
13
|
+
};
|
|
14
|
+
/** Internal symbols for lifecycle-only SDK startup construction and bus wiring. */
|
|
15
|
+
export declare const lifecycleStartupCapabilityOption: unique symbol;
|
|
16
|
+
export declare function attachLifecycleStartupCapability(api: object, capability: SdkStartupCapability): void;
|
|
17
|
+
export declare function lifecycleStartupCapabilityForApi(api: object): SdkStartupCapability | undefined;
|
|
18
|
+
export interface SdkStartupRollbackResult {
|
|
19
|
+
endpointGeneration: number | null;
|
|
20
|
+
fenced: boolean;
|
|
21
|
+
runtimeRemoved: boolean;
|
|
22
|
+
hostStopped: boolean;
|
|
23
|
+
brokerRegistrationReleased: boolean;
|
|
24
|
+
}
|
|
25
|
+
/** Internal lifecycle-only proof recorder. Fields become true only after their operation completes. */
|
|
26
|
+
export declare class SdkStartupRollbackTracker {
|
|
27
|
+
#private;
|
|
28
|
+
get generation(): number | undefined;
|
|
29
|
+
get result(): SdkStartupRollbackResult;
|
|
30
|
+
recordGeneration(generation: number): void;
|
|
31
|
+
recordAbsent(): void;
|
|
32
|
+
recordStop(generation: number, result: Pick<SdkStartupRollbackResult, "runtimeRemoved" | "hostStopped" | "brokerRegistrationReleased">): void;
|
|
33
|
+
}
|
|
34
|
+
/** Redact untrusted startup errors before they cross the lifecycle boundary. */
|
|
35
|
+
export declare function sanitizeSdkStartupMessage(value: unknown, knownSecrets?: Iterable<unknown>): string;
|
|
36
|
+
/** Convert every lifecycle bootstrap outcome to the public, bounded failure shape. */
|
|
37
|
+
export declare function normalizeSdkStartupFailure(phase: SdkStartupPhase, reason: SdkStartupReason, error?: unknown, knownSecrets?: Iterable<unknown>): SdkStartupFailure;
|
|
38
|
+
/** Session-owned, exactly-once lifecycle bootstrap completion. */
|
|
39
|
+
export declare class SdkStartupCapability {
|
|
40
|
+
#private;
|
|
41
|
+
readonly rollback?: SdkStartupRollbackTracker | undefined;
|
|
42
|
+
get cancelled(): boolean;
|
|
43
|
+
cancel(): void;
|
|
44
|
+
constructor(rollback?: SdkStartupRollbackTracker | undefined);
|
|
45
|
+
normalizeFailure(phase: SdkStartupPhase, reason: SdkStartupReason, error?: unknown): SdkStartupFailure;
|
|
46
|
+
get result(): SdkStartupResult | undefined;
|
|
47
|
+
get promise(): Promise<SdkStartupResult>;
|
|
48
|
+
settleStarted(): SdkStartupResult;
|
|
49
|
+
settleFailure(failure: SdkStartupFailure): SdkStartupResult;
|
|
50
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* AgentSession - Core abstraction for agent lifecycle and session management.
|
|
3
3
|
*
|
|
4
|
-
* This class is shared
|
|
4
|
+
* This class is shared by interactive, print, ACP, and SDK-hosted session callers.
|
|
5
5
|
* It encapsulates:
|
|
6
6
|
* - Agent state access
|
|
7
7
|
* - Event subscription with automatic session persistence
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
*
|
|
13
13
|
* Modes use this class and add their own I/O layer on top.
|
|
14
14
|
*/
|
|
15
|
-
import { type Agent, type AgentEvent, type AgentMessage, type AgentState, type AgentTool, type
|
|
15
|
+
import { type Agent, type AgentContext, type AgentEvent, type AgentLoopConfig, type AgentMessage, type AgentState, type AgentTool, type MidRunMaintenanceOutcome, type StablePrefixSnapshot, ThinkingLevel } from "@gajae-code/agent-core";
|
|
16
16
|
import { type CompactionResult, type EmergencyCompactionSample } from "@gajae-code/agent-core/compaction";
|
|
17
17
|
import type { AssistantMessage, Effort, ImageContent, Message, MessageAttribution, Model, ProviderSessionState, ServiceTier, SimpleStreamOptions, TextContent, ToolCall, ToolChoice, Usage, UsageReport } from "@gajae-code/ai";
|
|
18
18
|
export interface ForkContextSeedMetadata {
|
|
@@ -60,23 +60,26 @@ import type { LoadedCustomCommand } from "../extensibility/custom-commands";
|
|
|
60
60
|
import type { CustomTool } from "../extensibility/custom-tools/types";
|
|
61
61
|
import type { ExtensionRunner } from "../extensibility/extensions";
|
|
62
62
|
import type { CompactOptions, ContextUsage } from "../extensibility/extensions/types";
|
|
63
|
-
import type
|
|
63
|
+
import { type Skill, type SkillWarning } from "../extensibility/skills";
|
|
64
64
|
import { type FileSlashCommand } from "../extensibility/slash-commands";
|
|
65
65
|
import { GoalRuntime } from "../goals/runtime";
|
|
66
66
|
import type { Goal, GoalModeState } from "../goals/state";
|
|
67
67
|
import type { HindsightSessionState } from "../hindsight/state";
|
|
68
|
-
import type
|
|
68
|
+
import { type WorkflowGateEmitter } from "../modes/shared/agent-wire/workflow-gate-broker";
|
|
69
69
|
import type { PlanModeState } from "../plan-mode/state";
|
|
70
70
|
import { type AgentRegistry } from "../registry/agent-registry";
|
|
71
71
|
import { type DiscoverableMCPSearchIndex, type DiscoverableMCPTool } from "../runtime-mcp/discoverable-tool-metadata";
|
|
72
72
|
import { MCPManager } from "../runtime-mcp/manager";
|
|
73
|
+
import type { NotificationSessionController } from "../sdk/bus/session-control";
|
|
73
74
|
import { type SecretObfuscator } from "../secrets/obfuscator";
|
|
74
75
|
import { type DiscoverableTool, type DiscoverableToolSearchIndex } from "../tool-discovery/tool-index";
|
|
75
76
|
import type { AskAnswerSource, ToolSession } from "../tools";
|
|
76
77
|
import type { CheckpointState } from "../tools/checkpoint";
|
|
77
78
|
import { type TodoItem, type TodoPhase } from "../tools/todo-write";
|
|
78
79
|
import { type WorkspaceTree } from "../workspace-tree";
|
|
79
|
-
import type
|
|
80
|
+
import { type DefaultModelSelectionResult } from "./default-model-selection";
|
|
81
|
+
export { DefaultModelSelectionRecoveryError } from "./default-model-selection";
|
|
82
|
+
import type { ClientBridge, ClientBridgePermissionOption, ClientBridgePermissionOutcome, ClientBridgePermissionToolCall } from "./client-bridge";
|
|
80
83
|
import { type ContributionPrepOptions, type ContributionPrepResult } from "./contribution-prep";
|
|
81
84
|
import { type CustomMessage } from "./messages";
|
|
82
85
|
import type { BranchSummaryEntry, CompactionEntry, NewSessionOptions, SessionContext, SessionManager, SessionManagerCloseOutcome } from "./session-manager";
|
|
@@ -111,14 +114,16 @@ export type AgentSessionEvent = AgentEvent | {
|
|
|
111
114
|
attempt: number;
|
|
112
115
|
finalError?: string;
|
|
113
116
|
} | {
|
|
114
|
-
type: "
|
|
117
|
+
type: "model_fallback_switched";
|
|
118
|
+
eventId: string;
|
|
115
119
|
from: string;
|
|
116
120
|
to: string;
|
|
121
|
+
reason: string;
|
|
117
122
|
role: string;
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
123
|
+
scope: string;
|
|
124
|
+
activeIndex: number;
|
|
125
|
+
chainLength: number;
|
|
126
|
+
attemptsUsed: number;
|
|
122
127
|
} | {
|
|
123
128
|
type: "ttsr_triggered";
|
|
124
129
|
rules: Rule[];
|
|
@@ -164,6 +169,8 @@ export interface AgentSessionConfig {
|
|
|
164
169
|
agent: Agent;
|
|
165
170
|
sessionManager: SessionManager;
|
|
166
171
|
settings: Settings;
|
|
172
|
+
/** Shared Gate-A-eligible notification session controller, when this host supports it. */
|
|
173
|
+
notificationSessionController?: NotificationSessionController;
|
|
167
174
|
/** Models to cycle through with Alt+N (from --models flag) */
|
|
168
175
|
scopedModels?: ScopedModelSelection[];
|
|
169
176
|
/** Initial session thinking selector. */
|
|
@@ -202,7 +209,7 @@ export interface AgentSessionConfig {
|
|
|
202
209
|
/** Current session message-to-LLM conversion pipeline */
|
|
203
210
|
convertToLlm?: (messages: AgentMessage[]) => Message[] | Promise<Message[]>;
|
|
204
211
|
/** System prompt builder that can consider tool availability. Returns ordered provider-facing blocks. */
|
|
205
|
-
rebuildSystemPrompt?: (toolNames: string[], tools: Map<string, AgentTool
|
|
212
|
+
rebuildSystemPrompt?: (toolNames: string[], tools: Map<string, AgentTool>, candidateModel?: Model) => Promise<{
|
|
206
213
|
systemPrompt: string[];
|
|
207
214
|
}>;
|
|
208
215
|
/** Initial workspace tree snapshot used for the first volatile per-turn context message. */
|
|
@@ -268,6 +275,7 @@ export interface AgentSessionConfig {
|
|
|
268
275
|
/** Optional provider-facing cache identity, distinct from logical session identity. */
|
|
269
276
|
providerCacheSessionId?: string;
|
|
270
277
|
}
|
|
278
|
+
type MidRunMaintenanceLifecycle = Parameters<NonNullable<AgentLoopConfig["maintainContext"]>>[1];
|
|
271
279
|
/** Options for AgentSession.prompt() */
|
|
272
280
|
export interface PromptOptions {
|
|
273
281
|
/** Whether to expand file-based prompt templates (default: true) */
|
|
@@ -286,6 +294,11 @@ export interface PromptOptions {
|
|
|
286
294
|
attribution?: MessageAttribution;
|
|
287
295
|
/** Skip pre-send compaction checks for this prompt (internal use for maintenance flows). */
|
|
288
296
|
skipCompactionCheck?: boolean;
|
|
297
|
+
/**
|
|
298
|
+
* Invoked after all prompt preflight checks pass and immediately before agent execution begins.
|
|
299
|
+
* Cancellation before this callback rejects the prompt.
|
|
300
|
+
*/
|
|
301
|
+
onPreflightAccepted?: () => void;
|
|
289
302
|
}
|
|
290
303
|
/** Result from a handoff operation. */
|
|
291
304
|
export interface HandoffResult {
|
|
@@ -303,17 +316,18 @@ export interface ModelCycleResult {
|
|
|
303
316
|
/** Whether cycling through scoped models (--models flag) or all available */
|
|
304
317
|
isScoped: boolean;
|
|
305
318
|
}
|
|
319
|
+
export type ModelChangeCause = "user-selection" | "profile-activation" | "fallback-switch" | "restore" | "rollback" | "startup-override" | "temporary-operation";
|
|
320
|
+
export type TemporaryModelReason = "plan-mode" | "context-promotion" | "temporary-cycle" | "profile-preview" | "extension-temporary" | "other";
|
|
321
|
+
/** Opaque handle for a non-destructive temporary provider-session scope. */
|
|
322
|
+
export interface TemporaryProviderSessionScope {
|
|
323
|
+
readonly reason: TemporaryModelReason;
|
|
324
|
+
}
|
|
306
325
|
/** Result from cycleRoleModels() */
|
|
307
326
|
export interface RoleModelCycleResult {
|
|
308
327
|
model: Model;
|
|
309
328
|
thinkingLevel: ThinkingLevel | undefined;
|
|
310
329
|
role: string;
|
|
311
330
|
}
|
|
312
|
-
export interface DefaultModelSelectionResult {
|
|
313
|
-
readonly provider: string;
|
|
314
|
-
readonly modelId: string;
|
|
315
|
-
readonly thinkingLevel: ResolvedThinkingLevel;
|
|
316
|
-
}
|
|
317
331
|
/** Session statistics for /session command */
|
|
318
332
|
export interface SessionStats {
|
|
319
333
|
sessionFile: string | undefined;
|
|
@@ -394,6 +408,7 @@ export declare class AgentSession {
|
|
|
394
408
|
readonly agent: Agent;
|
|
395
409
|
readonly sessionManager: SessionManager;
|
|
396
410
|
readonly settings: Settings;
|
|
411
|
+
readonly notificationSessionController: NotificationSessionController | undefined;
|
|
397
412
|
readonly taskDepth: number;
|
|
398
413
|
readonly yieldQueue: YieldQueue;
|
|
399
414
|
readonly configWarnings: string[];
|
|
@@ -435,6 +450,12 @@ export declare class AgentSession {
|
|
|
435
450
|
setStandingResolveHandler(handler: ((input: unknown) => Promise<unknown> | unknown) | null): void;
|
|
436
451
|
/** Provider-scoped mutable state store for transport/session caches. */
|
|
437
452
|
get providerSessionState(): Map<string, ProviderSessionState>;
|
|
453
|
+
/** Suspend provider state without closing it while a temporary model is active. */
|
|
454
|
+
beginTemporaryProviderSessionScope(reason: TemporaryModelReason): TemporaryProviderSessionScope;
|
|
455
|
+
/** Restore a temporary scope, unwinding any auto-owned scopes above it. */
|
|
456
|
+
restoreTemporaryProviderSessionScope(token: TemporaryProviderSessionScope): boolean;
|
|
457
|
+
/** Promote a temporary scope. The suspended provider state is permanently closed. */
|
|
458
|
+
commitTemporaryProviderSessionScope(token: TemporaryProviderSessionScope): boolean;
|
|
438
459
|
buildForkContextSeed(options: ForkContextSeedOptions): Promise<ForkContextSeed>;
|
|
439
460
|
getHindsightSessionState(): HindsightSessionState | undefined;
|
|
440
461
|
setHindsightSessionState(state: HindsightSessionState | undefined): HindsightSessionState | undefined;
|
|
@@ -567,6 +588,12 @@ export declare class AgentSession {
|
|
|
567
588
|
* no fold target exists.
|
|
568
589
|
*/
|
|
569
590
|
hasForegroundBashBackgroundRequestHandler(): boolean;
|
|
591
|
+
/** Set the SDK permission policy used by guarded ACP tool execution. */
|
|
592
|
+
setSdkPermissionMode(mode: "prompt" | "allow" | "deny"): void;
|
|
593
|
+
/** Current SDK permission policy for guarded ACP tool execution. */
|
|
594
|
+
get sdkPermissionMode(): "prompt" | "allow" | "deny";
|
|
595
|
+
/** Register or clear the SDK reverse permission provider for this session. */
|
|
596
|
+
setSdkPermissionProvider(provider: ((toolCall: ClientBridgePermissionToolCall, options: ClientBridgePermissionOption[], signal?: AbortSignal) => Promise<ClientBridgePermissionOutcome>) | undefined): void;
|
|
570
597
|
/**
|
|
571
598
|
* Ask the active managed foreground bash call to return as a background job.
|
|
572
599
|
* Returns false when no supported foreground tool is currently backgroundable.
|
|
@@ -613,10 +640,6 @@ export declare class AgentSession {
|
|
|
613
640
|
* This allows /mcp add/remove/reauth to take effect without restarting the session.
|
|
614
641
|
*/
|
|
615
642
|
refreshMCPTools(mcpTools: CustomTool[]): Promise<void>;
|
|
616
|
-
/**
|
|
617
|
-
* Replace RPC host-owned tools and refresh the active tool set before the next model call.
|
|
618
|
-
*/
|
|
619
|
-
refreshRpcHostTools(rpcTools: AgentTool[]): Promise<void>;
|
|
620
643
|
/**
|
|
621
644
|
* Refresh plugin sub-skill tools after workflow/sub-skill activation or phase changes.
|
|
622
645
|
*/
|
|
@@ -657,7 +680,25 @@ export declare class AgentSession {
|
|
|
657
680
|
get scopedModels(): ReadonlyArray<ScopedModelSelection>;
|
|
658
681
|
/** Prompt templates */
|
|
659
682
|
getPlanModeState(): PlanModeState | undefined;
|
|
683
|
+
/** Live SDK configuration values exposed through the session query surface. */
|
|
684
|
+
getSdkConfigItems(): Record<string, string>;
|
|
660
685
|
setPlanModeState(state: PlanModeState | undefined): void;
|
|
686
|
+
invokeSkill(name: string, args?: string): Promise<{
|
|
687
|
+
name: string;
|
|
688
|
+
path: string;
|
|
689
|
+
args?: string;
|
|
690
|
+
lineCount?: number;
|
|
691
|
+
}>;
|
|
692
|
+
setSdkPlanMode(on: boolean): PlanModeState | undefined;
|
|
693
|
+
operateGoal(op: "create" | "get" | "resume" | "pause" | "complete" | "drop", objective?: string): Promise<unknown>;
|
|
694
|
+
getTranscript(): Array<{
|
|
695
|
+
id: string;
|
|
696
|
+
role: string;
|
|
697
|
+
textSummary: string;
|
|
698
|
+
ts: string;
|
|
699
|
+
body: string;
|
|
700
|
+
}>;
|
|
701
|
+
getTranscriptBody(entryId: string): string | undefined;
|
|
661
702
|
getGoalModeState(): GoalModeState | undefined;
|
|
662
703
|
setGoalModeState(state: GoalModeState | undefined): void;
|
|
663
704
|
getWorkflowGateEmitter(): WorkflowGateEmitter | undefined;
|
|
@@ -738,6 +779,7 @@ export declare class AgentSession {
|
|
|
738
779
|
*/
|
|
739
780
|
sendUserMessage(content: string | (TextContent | ImageContent)[], options?: {
|
|
740
781
|
deliverAs?: "steer" | "followUp";
|
|
782
|
+
onPreflightAccepted?: () => void;
|
|
741
783
|
}): Promise<void>;
|
|
742
784
|
/**
|
|
743
785
|
* Clear queued messages and return them.
|
|
@@ -749,6 +791,12 @@ export declare class AgentSession {
|
|
|
749
791
|
};
|
|
750
792
|
/** Number of pending messages (includes steering, follow-up, and next-turn messages) */
|
|
751
793
|
get queuedMessageCount(): number;
|
|
794
|
+
/** Typed pending-message counts per queue (steering, follow-up, next-turn). */
|
|
795
|
+
get pendingMessageCounts(): {
|
|
796
|
+
steering: number;
|
|
797
|
+
followUp: number;
|
|
798
|
+
nextTurn: number;
|
|
799
|
+
};
|
|
752
800
|
/** Whether the agent has queued steering messages that a `user_interrupt`
|
|
753
801
|
* abort would resume into (steer-on-interrupt). Drives the Esc-on-steer UX:
|
|
754
802
|
* the first Esc consumes the steer and auto-continues, a second Esc aborts. */
|
|
@@ -779,6 +827,14 @@ export declare class AgentSession {
|
|
|
779
827
|
getTodoPhases(): TodoPhase[];
|
|
780
828
|
setTodoPhases(phases: TodoPhase[]): void;
|
|
781
829
|
applyCompactionPostAppendForTests(compactionEntryId: string, firstKeptEntryId: string, fromExtension?: boolean): Promise<CompactionEntry | undefined>;
|
|
830
|
+
/** Read-only test seam for active mid-run EventStream drain barriers. */
|
|
831
|
+
get activeMidRunBarrierCountForTests(): number;
|
|
832
|
+
/** Read-only test seam for active mid-run maintenance invocations. */
|
|
833
|
+
get activeMidRunMaintenanceCountForTests(): number;
|
|
834
|
+
/** Test seam: drive the cooperative mid-run maintenance checkpoint directly. */
|
|
835
|
+
runMidRunMaintenanceForTests(context: AgentContext, lifecycle?: MidRunMaintenanceLifecycle): Promise<MidRunMaintenanceOutcome>;
|
|
836
|
+
/** Test seam: estimate mid-run context tokens for a given context view. */
|
|
837
|
+
estimateMidRunContextTokensForTests(messages: readonly AgentMessage[]): number;
|
|
782
838
|
/**
|
|
783
839
|
* Abort current operation and wait for agent to become idle.
|
|
784
840
|
*/
|
|
@@ -824,9 +880,28 @@ export declare class AgentSession {
|
|
|
824
880
|
setModel(model: Model, role?: string, options?: {
|
|
825
881
|
selector?: string;
|
|
826
882
|
thinkingLevel?: ThinkingLevel;
|
|
883
|
+
cause?: ModelChangeCause;
|
|
827
884
|
}): Promise<void>;
|
|
828
885
|
setActiveModelProfile(name: string | undefined): void;
|
|
829
886
|
getActiveModelProfile(): string | undefined;
|
|
887
|
+
/** Return the persisted configured fallback selectors for a model role. */
|
|
888
|
+
getConfiguredModelChain(role: string): readonly string[] | undefined;
|
|
889
|
+
/** Persist the configured fallback selectors for a model role. */
|
|
890
|
+
setConfiguredModelChain(role: string, entries: readonly string[], origin: string, identity?: string, explicitHead?: boolean): void;
|
|
891
|
+
/**
|
|
892
|
+
* Replace only the in-memory default fallback controller. Used when startup
|
|
893
|
+
* falls through an unavailable persisted chain to the global default, which
|
|
894
|
+
* must not mutate the persisted configured intent.
|
|
895
|
+
*/
|
|
896
|
+
setDefaultFallbackRuntimeModel(selector: string): void;
|
|
897
|
+
/**
|
|
898
|
+
* Seed default fallback state after guarded auth-aware model resolution skips chain entries.
|
|
899
|
+
* The configured chain's role, origin, and identity are retained by the controller.
|
|
900
|
+
*/
|
|
901
|
+
seedDefaultFallbackResolution(activeIndex: number, skips: Array<{
|
|
902
|
+
selector: string;
|
|
903
|
+
reason: string;
|
|
904
|
+
}>): void;
|
|
830
905
|
/**
|
|
831
906
|
* The model selector ("provider/id") that resume restores as the session
|
|
832
907
|
* default — the latest session-log `model_change` with role="default".
|
|
@@ -858,7 +933,13 @@ export declare class AgentSession {
|
|
|
858
933
|
*/
|
|
859
934
|
setModelTemporary(model: Model, thinkingLevel?: ThinkingLevel, options?: {
|
|
860
935
|
persistAsSessionDefault?: boolean;
|
|
861
|
-
|
|
936
|
+
cause?: ModelChangeCause;
|
|
937
|
+
reason?: TemporaryModelReason;
|
|
938
|
+
providerSessionScope?: TemporaryProviderSessionScope;
|
|
939
|
+
signal?: AbortSignal;
|
|
940
|
+
}): Promise<TemporaryProviderSessionScope | void>;
|
|
941
|
+
/** Set a durable per-session model from a control surface without exposing credential errors. */
|
|
942
|
+
setModelTemporaryForControl(model: Model, expectedSessionId?: string): Promise<boolean>;
|
|
862
943
|
setDefaultModelSelection(model: Model, thinkingLevel: ThinkingLevel | undefined): Promise<DefaultModelSelectionResult>;
|
|
863
944
|
/**
|
|
864
945
|
* Cycle to next/previous model.
|
|
@@ -885,6 +966,17 @@ export declare class AgentSession {
|
|
|
885
966
|
* Saves the effective metadata-clamped level to the session, and to settings when requested.
|
|
886
967
|
*/
|
|
887
968
|
setThinkingLevel(level: ThinkingLevel | undefined, persist?: boolean): void;
|
|
969
|
+
/**
|
|
970
|
+
* Set thinking level from a control surface. Global changes are durable or rolled back.
|
|
971
|
+
*/
|
|
972
|
+
setThinkingLevelForControl(level: ThinkingLevel, persist: boolean): Promise<void>;
|
|
973
|
+
getThinkingScopeForControl(): "session" | "global config";
|
|
974
|
+
getThinkingVisibility(): "visible" | "hidden";
|
|
975
|
+
setThinkingVisibility(visibility: "visible" | "hidden", persist?: boolean): void;
|
|
976
|
+
/**
|
|
977
|
+
* Set thinking visibility from a control surface. Global changes are durable or rolled back.
|
|
978
|
+
*/
|
|
979
|
+
setThinkingVisibilityForControl(visibility: "visible" | "hidden", persist: boolean): Promise<void>;
|
|
888
980
|
/**
|
|
889
981
|
* Cycle to next thinking level.
|
|
890
982
|
* @returns New level, or undefined if model doesn't support thinking
|
|
@@ -1190,6 +1282,7 @@ export declare class AgentSession {
|
|
|
1190
1282
|
estimateCount: number;
|
|
1191
1283
|
};
|
|
1192
1284
|
fetchUsageReports(signal?: AbortSignal): Promise<UsageReport[] | null>;
|
|
1285
|
+
fetchUsageReportsForControl(): Promise<UsageReport[] | null>;
|
|
1193
1286
|
/**
|
|
1194
1287
|
* Export session to HTML.
|
|
1195
1288
|
* @param outputPath Optional output path (defaults to session directory)
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { ResolvedThinkingLevel } from "@gajae-code/agent-core";
|
|
2
|
+
export type DefaultModelSelectionRollbackStage = "durable" | "session" | "live";
|
|
3
|
+
export declare const DEFAULT_MODEL_SELECTION_RECOVERY_MESSAGE = "Default model selection could not be completed after durable selection.";
|
|
4
|
+
export type DefaultModelSelectionRecovery = {
|
|
5
|
+
readonly message: string;
|
|
6
|
+
readonly rollback: {
|
|
7
|
+
readonly disposition: "restored" | "partial" | "unknown";
|
|
8
|
+
readonly failures: readonly {
|
|
9
|
+
readonly stage: DefaultModelSelectionRollbackStage;
|
|
10
|
+
readonly message: string;
|
|
11
|
+
}[];
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
export interface DefaultModelSelectionResult {
|
|
15
|
+
readonly provider: string;
|
|
16
|
+
readonly modelId: string;
|
|
17
|
+
readonly thinkingLevel: ResolvedThinkingLevel;
|
|
18
|
+
}
|
|
19
|
+
export declare function parseDefaultModelSelectionRecovery(value: unknown): DefaultModelSelectionRecovery | undefined;
|
|
20
|
+
export declare class DefaultModelSelectionRecoveryError extends Error {
|
|
21
|
+
readonly name = "DefaultModelSelectionRecoveryError";
|
|
22
|
+
readonly code = "default_model_selection_recovery";
|
|
23
|
+
readonly recovery: DefaultModelSelectionRecovery;
|
|
24
|
+
constructor(_message: string, recovery: DefaultModelSelectionRecovery);
|
|
25
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
export type FallbackTriggerClass = "rate_limit" | "quota" | "auth" | "server" | "other";
|
|
2
|
+
/** Immutable configured fallback intent. Transient attempt state never belongs here. */
|
|
3
|
+
export interface ConfiguredFallbackChain {
|
|
4
|
+
role: string;
|
|
5
|
+
entries: readonly string[];
|
|
6
|
+
origin: string;
|
|
7
|
+
identity?: string;
|
|
8
|
+
explicitHead: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface FallbackFailure {
|
|
11
|
+
selector: string;
|
|
12
|
+
triggerClass: FallbackTriggerClass;
|
|
13
|
+
reason: string;
|
|
14
|
+
}
|
|
15
|
+
export type FallbackFailureResult = "retry" | "advance" | "exhausted";
|
|
16
|
+
/**
|
|
17
|
+
* In-memory policy state for one fallback-chain scope. A controller is deliberately
|
|
18
|
+
* not serializable: configured chain intent is durable, current position is not.
|
|
19
|
+
*/
|
|
20
|
+
export declare class FallbackChainController {
|
|
21
|
+
#private;
|
|
22
|
+
readonly chain: ConfiguredFallbackChain;
|
|
23
|
+
readonly maxAttempts: number;
|
|
24
|
+
activeIndex: number;
|
|
25
|
+
attemptsUsed: number;
|
|
26
|
+
tried: FallbackFailure[];
|
|
27
|
+
skips: Array<{
|
|
28
|
+
selector: string;
|
|
29
|
+
reason: string;
|
|
30
|
+
}>;
|
|
31
|
+
exhaustedForTurn: boolean;
|
|
32
|
+
constructor(chain: ConfiguredFallbackChain, maxAttempts: number);
|
|
33
|
+
currentSelector(): string | undefined;
|
|
34
|
+
onResolutionSkip(reason: string): boolean;
|
|
35
|
+
/** Charge an upstream request at its concrete transport boundary. */
|
|
36
|
+
onAttemptStarted(): void;
|
|
37
|
+
/** Start a logically new request without losing its sticky selected entry. */
|
|
38
|
+
resetAttemptBudget(): void;
|
|
39
|
+
/** Seed a controller from auth-aware resolution without charging requests. */
|
|
40
|
+
seedResolution(activeIndex: number, skips: Array<{
|
|
41
|
+
selector: string;
|
|
42
|
+
reason: string;
|
|
43
|
+
}>): void;
|
|
44
|
+
onAttemptFailure(triggerClass: FallbackTriggerClass, reason: string): FallbackFailureResult;
|
|
45
|
+
advance(): boolean;
|
|
46
|
+
isExhausted(): boolean;
|
|
47
|
+
resetForNewTurn(): void;
|
|
48
|
+
resetSticky(): void;
|
|
49
|
+
}
|
|
50
|
+
export declare function cappedExponentialWithFullJitter(baseDelayMs: number, maxDelayMs: number, attemptK: number, random?: () => number): number;
|
|
51
|
+
/** Retry-After is intentionally uncapped. */
|
|
52
|
+
export declare function effectiveFallbackDelay(baseDelayMs: number, maxDelayMs: number, attemptK: number, retryAfterMs: number | undefined, random?: () => number): number;
|