@gajae-code/coding-agent 0.10.1 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +70 -2
- package/dist/types/append-only-mode.d.ts +1 -1
- 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/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/gajae-pet-widget.d.ts +1 -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/pet-capability.d.ts +37 -0
- package/dist/types/modes/components/pet-selector.d.ts +1 -1
- package/dist/types/modes/components/settings-selector.d.ts +15 -4
- package/dist/types/modes/components/welcome.d.ts +1 -1
- 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 -1
- 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 +169 -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 +16 -1
- 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 +33 -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 +45 -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 +55 -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/package.json +34 -13
- package/scripts/build-sdk-package-smoke.ts +94 -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/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 +37 -34
- 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/extensibility/slash-commands.ts +3 -3
- 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 +5 -2
- package/src/gjc-runtime/tmux-sessions.ts +19 -13
- package/src/gjc-runtime/ultragoal-guard.ts +53 -6
- package/src/gjc-runtime/ultragoal-runtime.ts +155 -3
- 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 +36 -37
- 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/custom-editor.ts +1 -0
- package/src/modes/components/gajae-pet-widget.ts +169 -20
- package/src/modes/components/model-selector.ts +93 -35
- package/src/modes/components/notifications-settings-editor.ts +1379 -0
- package/src/modes/components/pet-capability.ts +115 -0
- package/src/modes/components/pet-selector.ts +4 -6
- package/src/modes/components/settings-selector.ts +86 -11
- package/src/modes/components/welcome.ts +4 -4
- package/src/modes/controllers/command-controller.ts +1 -2
- package/src/modes/controllers/event-controller.ts +11 -16
- package/src/modes/controllers/extension-ui-controller.ts +357 -12
- package/src/modes/controllers/input-controller.ts +43 -13
- package/src/modes/controllers/selector-controller.ts +671 -44
- package/src/modes/index.ts +0 -22
- package/src/modes/interactive-mode.ts +108 -24
- 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 +1254 -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 +16 -1
- 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 +94 -0
- package/src/sdk/broker/ensure.ts +249 -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 +353 -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 +2275 -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 +3943 -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 +502 -54
- 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 +2470 -866
- package/src/session/default-model-selection.ts +93 -0
- package/src/session/fallback-chain-controller.ts +136 -0
- package/src/session/session-manager.ts +447 -13
- 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 +33 -30
- package/src/task/executor.ts +62 -13
- 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/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,5 +1,5 @@
|
|
|
1
1
|
import { COORDINATOR_MCP_PROTOCOL_VERSION, COORDINATOR_MCP_SERVER_NAME, COORDINATOR_MCP_TOOL_NAMES, type CoordinatorToolName } from "../coordinator/contract";
|
|
2
|
-
import {
|
|
2
|
+
import { SdkClient } from "../sdk/client/client";
|
|
3
3
|
import { type CoordinatorModelProfileLoader } from "./model-preset";
|
|
4
4
|
import { type CoordinatorMcpConfig } from "./policy";
|
|
5
5
|
import { type SessionReaper } from "./session-reaper";
|
|
@@ -22,71 +22,28 @@ interface JsonRpcResponse {
|
|
|
22
22
|
data?: unknown;
|
|
23
23
|
};
|
|
24
24
|
}
|
|
25
|
-
interface SessionStartInput {
|
|
26
|
-
cwd: string;
|
|
27
|
-
prompt?: string;
|
|
28
|
-
mpreset?: string | null;
|
|
29
|
-
namespace: {
|
|
30
|
-
profile: string | null;
|
|
31
|
-
repo: string | null;
|
|
32
|
-
};
|
|
33
|
-
worktree: true;
|
|
34
|
-
sessionId: string;
|
|
35
|
-
launchId: string;
|
|
36
|
-
/** Canonical, coordinator-owned immutable readiness marker path. */
|
|
37
|
-
readinessMarkerFile: string;
|
|
38
|
-
/** @deprecated Compatibility alias for injected launch providers. */
|
|
39
|
-
readinessFile: string;
|
|
40
|
-
}
|
|
41
|
-
interface CommandResult {
|
|
42
|
-
exitCode: number;
|
|
43
|
-
stdout: string;
|
|
44
|
-
stderr: string;
|
|
45
|
-
}
|
|
46
|
-
type CommandRunner = (command: string[], stdinLine?: string) => Promise<CommandResult>;
|
|
47
25
|
interface CoordinatorServices {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
commandRunner?: CommandRunner;
|
|
51
|
-
forceCloseSession?: (sessionName: string, env: NodeJS.ProcessEnv, expectedSessionId?: string, expectedStateFile?: string) => Promise<unknown>;
|
|
52
|
-
ownerIsolationProbe?: OwnerIsolationProbe;
|
|
26
|
+
connectSdk?: (url: string, token: string) => Promise<SdkClient>;
|
|
27
|
+
getAgentDir?: () => string;
|
|
53
28
|
resolveModelProfiles?: CoordinatorModelProfileLoader;
|
|
29
|
+
canonicalizePath?: (value: string) => Promise<string>;
|
|
54
30
|
}
|
|
55
31
|
interface CoordinatorMcpServerOptions {
|
|
56
32
|
env?: NodeJS.ProcessEnv;
|
|
57
33
|
services?: CoordinatorServices;
|
|
34
|
+
platform?: NodeJS.Platform;
|
|
58
35
|
}
|
|
59
36
|
interface LegacyHandlerOptions {
|
|
60
37
|
env?: NodeJS.ProcessEnv;
|
|
61
|
-
createSession?: (input: SessionStartInput) => unknown;
|
|
62
38
|
}
|
|
63
|
-
/**
|
|
64
|
-
* Append an authoritative `--mpreset <profile>` to the coordinator child launch
|
|
65
|
-
* command so the spawned GJC session activates the selected profile from its
|
|
66
|
-
* first turn. The profile name is validated against the merged registry before
|
|
67
|
-
* reaching here; it is still shell-quoted as defense in depth.
|
|
68
|
-
*
|
|
69
|
-
* Precedence note: this matches `gjc --mpreset <profile>` semantics exactly, so
|
|
70
|
-
* an explicit model-affecting flag already present in the operator-configured
|
|
71
|
-
* `sessionCommand` (e.g. a `--model`/`--thinking` baked into the launch command)
|
|
72
|
-
* follows the same CLI precedence as a direct `gjc --mpreset ... --model ...`
|
|
73
|
-
* invocation. The effective profile recorded on the session is the
|
|
74
|
-
* coordinator-resolved request, not a child-attested activation receipt; a
|
|
75
|
-
* cross-process activation receipt is a possible future enhancement and is out
|
|
76
|
-
* of scope for the per-session selection contract here.
|
|
77
|
-
*/
|
|
78
|
-
export declare function buildCoordinatorSessionCommand(sessionCommand: string, mpreset: string | null | undefined): string;
|
|
79
39
|
export declare const COORDINATOR_AWAIT_TURN_TIMEOUT_MAX_MS: number;
|
|
80
40
|
export declare const COORDINATOR_RUNTIME_PROMPT_ACK_TIMEOUT_MAX_MS: number;
|
|
81
|
-
export declare const COORDINATOR_RUNTIME_READINESS_TIMEOUT_MAX_MS: number;
|
|
82
41
|
export declare const COORDINATOR_EVENT_WATCH_TIMEOUT_MAX_MS = 30000;
|
|
83
42
|
export declare const COORDINATOR_POLL_INTERVAL_MAX_MS = 10000;
|
|
84
43
|
export declare function boundedAwaitTurnTimeoutMs(value: unknown): number;
|
|
85
44
|
export declare function boundedRuntimePromptAckTimeoutMs(value: unknown): number;
|
|
86
|
-
export declare function boundedRuntimeReadinessTimeoutMs(value: unknown): number;
|
|
87
45
|
export declare function boundedEventWatchTimeoutMs(value: unknown): number;
|
|
88
46
|
export declare function boundedPollIntervalMs(value: unknown): number;
|
|
89
|
-
export declare function coordinatorOwnerIsolationProbe(runner: CommandRunner): Promise<OwnerIsolationProbe>;
|
|
90
47
|
export declare function readCoordinatorArtifact(config: CoordinatorMcpConfig, args: {
|
|
91
48
|
path: unknown;
|
|
92
49
|
}): Promise<Record<string, unknown>>;
|
|
@@ -101,7 +58,7 @@ export declare function createCoordinatorMcpServer(options?: CoordinatorMcpServe
|
|
|
101
58
|
}) => Promise<{
|
|
102
59
|
ok: boolean;
|
|
103
60
|
reason?: string;
|
|
104
|
-
|
|
61
|
+
closed: boolean;
|
|
105
62
|
active_turn_id?: string;
|
|
106
63
|
detail?: string;
|
|
107
64
|
}>;
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Static built-in daemon controller map.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* registry: there is exactly one kind today (`telegram`). Promote to a richer
|
|
6
|
-
* registry only when a second daemon kind exists.
|
|
4
|
+
* Controllers are deliberately static rather than a mutable plugin registry.
|
|
7
5
|
*/
|
|
8
6
|
import type { Settings } from "../config/settings";
|
|
9
|
-
import { type
|
|
7
|
+
import { type ChatDaemonControlDeps } from "../sdk/bus/chat-daemon-control";
|
|
8
|
+
import { type TelegramDaemonControlDeps } from "../sdk/bus/telegram-daemon-control";
|
|
10
9
|
import type { BuiltInDaemonController, DaemonKind } from "./control-types";
|
|
11
|
-
export declare const BUILT_IN_DAEMON_KINDS: readonly ["telegram"];
|
|
10
|
+
export declare const BUILT_IN_DAEMON_KINDS: readonly ["telegram", "discord", "slack"];
|
|
12
11
|
export interface BuiltInDaemonControllerDeps {
|
|
13
12
|
telegram?: TelegramDaemonControlDeps;
|
|
13
|
+
discord?: ChatDaemonControlDeps;
|
|
14
|
+
slack?: ChatDaemonControlDeps;
|
|
14
15
|
}
|
|
15
16
|
export declare function createBuiltInDaemonControllers(settings: Settings, deps?: BuiltInDaemonControllerDeps): Record<DaemonKind, BuiltInDaemonController>;
|
|
16
17
|
/**
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* controller contract. There is exactly one daemon kind today (`telegram`);
|
|
6
6
|
* a richer registry is intentionally deferred until a second kind exists.
|
|
7
7
|
*/
|
|
8
|
-
export type DaemonKind = "telegram";
|
|
8
|
+
export type DaemonKind = "telegram" | "discord" | "slack";
|
|
9
9
|
export type DaemonAction = "list" | "status" | "stop" | "reload";
|
|
10
10
|
export type DaemonHealth = "not_configured" | "stopped" | "running" | "stale" | "stopping" | "error";
|
|
11
11
|
export interface DaemonRuntimeInfo {
|
|
@@ -1 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
import { type MCPServer } from "../capability/mcp";
|
|
2
|
+
import type { LoadResult } from "../capability/types";
|
|
3
|
+
export interface MCPJsonLoadResult extends LoadResult<MCPServer> {
|
|
4
|
+
disabledServers: string[];
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Load MCP servers from a JSON file.
|
|
8
|
+
*/
|
|
9
|
+
export declare function loadMCPJsonFile(filePath: string, level: "user" | "project", options?: {
|
|
10
|
+
quiet?: boolean;
|
|
11
|
+
useCache?: boolean;
|
|
12
|
+
}): Promise<MCPJsonLoadResult>;
|
|
@@ -42,7 +42,7 @@ export interface CustomToolAPI {
|
|
|
42
42
|
exec(command: string, args: string[], options?: ExecOptions): Promise<ExecResult>;
|
|
43
43
|
/** UI methods for user interaction (select, confirm, input, notify, custom) */
|
|
44
44
|
ui: CustomToolUIContext;
|
|
45
|
-
/** Whether UI is available
|
|
45
|
+
/** Whether an interactive UI is available */
|
|
46
46
|
hasUI: boolean;
|
|
47
47
|
/** File logger for error/warning/debug messages */
|
|
48
48
|
logger: typeof import("@gajae-code/utils").logger;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Extension-facing APIs accept `string | CompactOptions`, but `AgentSession.compact`
|
|
5
5
|
* takes two positional arguments `(instructions, options)`. This helper splits the
|
|
6
|
-
* union so the same adapter can be reused by print
|
|
6
|
+
* union so the same adapter can be reused by print, SDK, ACP, and executor callers.
|
|
7
7
|
*/
|
|
8
8
|
import type { Model } from "@gajae-code/ai";
|
|
9
9
|
import type { CompactOptions } from "./types";
|
|
@@ -15,7 +15,9 @@ interface SetModelCapableSession {
|
|
|
15
15
|
modelRegistry: {
|
|
16
16
|
getApiKey(model: Model): Promise<string | undefined>;
|
|
17
17
|
};
|
|
18
|
-
setModel(model: Model
|
|
18
|
+
setModel(model: Model, role?: string, options?: {
|
|
19
|
+
cause?: string;
|
|
20
|
+
}): Promise<unknown>;
|
|
19
21
|
}
|
|
20
22
|
/**
|
|
21
23
|
* Helper for wiring the `setModel` action of an {@link ExtensionContext}.
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Helper for wiring the `getCommands` action of {@link ExtensionAPI}.
|
|
3
3
|
*
|
|
4
4
|
* Centralizes the union over the three slash-command sources the runtime
|
|
5
|
-
* exposes so the
|
|
6
|
-
*
|
|
5
|
+
* exposes so the interactive UI, ACP, SDK, print, and child task executor wiring
|
|
6
|
+
* sites cannot drift:
|
|
7
7
|
* - extension-registered hook commands (`source: "extension"`)
|
|
8
8
|
* - prompt commands loaded as `LoadedCustomCommand` — user/project/bundled
|
|
9
9
|
* custom commands and MCP prompts (`source: "prompt"`)
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ThinkingLevel } from "@gajae-code/agent-core";
|
|
2
|
+
import type { UsageReport } from "@gajae-code/ai";
|
|
2
3
|
import { EventBus } from "../../utils/event-bus";
|
|
3
4
|
import type { Extension, ExtensionFactory, ExtensionRuntime as IExtensionRuntime, LoadExtensionsResult } from "./types";
|
|
4
5
|
export declare class ExtensionRuntimeNotInitializedError extends Error {
|
|
@@ -16,7 +17,7 @@ export declare class ExtensionRuntime implements IExtensionRuntime {
|
|
|
16
17
|
sourceId: string;
|
|
17
18
|
}>;
|
|
18
19
|
sendMessage(): void;
|
|
19
|
-
sendUserMessage(): void
|
|
20
|
+
sendUserMessage(): Promise<void>;
|
|
20
21
|
appendEntry(): void;
|
|
21
22
|
setLabel(): void;
|
|
22
23
|
getActiveTools(): string[];
|
|
@@ -26,6 +27,14 @@ export declare class ExtensionRuntime implements IExtensionRuntime {
|
|
|
26
27
|
setModel(): Promise<boolean>;
|
|
27
28
|
getThinkingLevel(): ThinkingLevel;
|
|
28
29
|
setThinkingLevel(): void;
|
|
30
|
+
getThinkingVisibility(): "visible" | "hidden";
|
|
31
|
+
setThinkingVisibility(): void;
|
|
32
|
+
cycleThinkingLevel(): ThinkingLevel | undefined;
|
|
33
|
+
setThinkingLevelForControl(): Promise<void>;
|
|
34
|
+
setThinkingVisibilityForControl(): Promise<void>;
|
|
35
|
+
setModelTemporaryForControl(): Promise<boolean>;
|
|
36
|
+
fetchUsageReportsForControl(): Promise<UsageReport[] | null>;
|
|
37
|
+
getThinkingScopeForControl(): "session" | "global config";
|
|
29
38
|
getSessionName(): string | undefined;
|
|
30
39
|
setSessionName(): Promise<void>;
|
|
31
40
|
}
|
|
@@ -68,8 +68,8 @@ export declare class ExtensionRunner {
|
|
|
68
68
|
* Forward a `credential_disabled` event from `AuthStorage` to extension handlers.
|
|
69
69
|
*
|
|
70
70
|
* If {@link initialize} has not yet run, the event is buffered and replayed once
|
|
71
|
-
* initialize wires the runtime/UI context. This matters because
|
|
72
|
-
* (interactive,
|
|
71
|
+
* initialize wires the runtime/UI context. This matters because session frontends
|
|
72
|
+
* (interactive, ACP, print, and subagent) call `initialize()` AFTER `createAgentSession`
|
|
73
73
|
* returns, but `AuthStorage` can fire `credential_disabled` during startup model probes
|
|
74
74
|
* inside `createAgentSession()`. Without deferral, extension handlers would observe
|
|
75
75
|
* `hasUI=false`, an unset model, and no-op runtime actions on exactly the headline
|
|
@@ -126,7 +126,7 @@ export declare class ExtensionRunner {
|
|
|
126
126
|
}>;
|
|
127
127
|
}>;
|
|
128
128
|
/** Emit input event. Transforms chain, "handled" short-circuits. */
|
|
129
|
-
emitInput(text: string, images: ImageContent[] | undefined, source: "interactive" | "
|
|
129
|
+
emitInput(text: string, images: ImageContent[] | undefined, source: "interactive" | "sdk" | "extension"): Promise<InputEventResult>;
|
|
130
130
|
emitContext(messages: AgentMessage[]): Promise<AgentMessage[]>;
|
|
131
131
|
emitBeforeProviderRequest(payload: unknown): Promise<BeforeProviderRequestEventResult>;
|
|
132
132
|
emitAfterProviderResponse(response: ProviderResponseMetadata, _model?: Model): Promise<void>;
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import type { AgentMessage, AgentToolResult, AgentToolUpdateCallback, ThinkingLevel } from "@gajae-code/agent-core";
|
|
11
11
|
import type { CompactionResult } from "@gajae-code/agent-core/compaction";
|
|
12
|
-
import type { Api, AssistantMessageEvent, AssistantMessageEventStream, Context, ImageContent, Model, ProviderResponseMetadata, SimpleStreamOptions, Static, TextContent, TSchema } from "@gajae-code/ai";
|
|
12
|
+
import type { Api, AssistantMessageEvent, AssistantMessageEventStream, Context, ImageContent, Model, ProviderResponseMetadata, SimpleStreamOptions, Static, TextContent, TSchema, UsageReport } from "@gajae-code/ai";
|
|
13
13
|
import type { OAuthCredentials, OAuthLoginCallbacks } from "@gajae-code/ai/utils/oauth/types";
|
|
14
14
|
import type * as piCodingAgent from "@gajae-code/coding-agent";
|
|
15
15
|
import type { AutocompleteItem, Component, EditorTheme, KeyId, TUI } from "@gajae-code/tui";
|
|
@@ -20,8 +20,9 @@ import type { PythonResult } from "../../eval/py/executor";
|
|
|
20
20
|
import type { BashResult } from "../../exec/bash-executor";
|
|
21
21
|
import type { ExecOptions, ExecResult } from "../../exec/exec";
|
|
22
22
|
import type { CustomEditor } from "../../modes/components/custom-editor";
|
|
23
|
-
import type { WorkflowGateEmitter } from "../../modes/shared/agent-wire/
|
|
23
|
+
import type { WorkflowGateEmitter } from "../../modes/shared/agent-wire/workflow-gate-broker";
|
|
24
24
|
import type { Theme } from "../../modes/theme/theme";
|
|
25
|
+
import type { ClientBridgePermissionOption, ClientBridgePermissionOutcome, ClientBridgePermissionToolCall } from "../../session/client-bridge";
|
|
25
26
|
import type { CustomMessage } from "../../session/messages";
|
|
26
27
|
import type { ReadonlySessionManager, SessionManager } from "../../session/session-manager";
|
|
27
28
|
import type { BashToolDetails, BashToolInput, FindToolDetails, FindToolInput, ReadToolDetails, ReadToolInput, SearchToolDetails, SearchToolInput, WriteToolInput } from "../../tools";
|
|
@@ -54,7 +55,7 @@ export interface ExtensionUIDialogOptions {
|
|
|
54
55
|
/**
|
|
55
56
|
* For interactive TUI select dialogs, render the focused option across
|
|
56
57
|
* multiple rows instead of truncating it. This is a select-only rendering
|
|
57
|
-
* hint; non-TUI
|
|
58
|
+
* hint; non-TUI clients (SDK, ACP) drop it and do not serialize it.
|
|
58
59
|
*/
|
|
59
60
|
wrapFocused?: boolean;
|
|
60
61
|
/**
|
|
@@ -68,7 +69,7 @@ export interface ExtensionUIDialogOptions {
|
|
|
68
69
|
* inline: selecting it keeps the title and option list on screen and opens
|
|
69
70
|
* a free-text input below the list. Submitting calls `onSubmit` with the
|
|
70
71
|
* typed text and resolves the select with `optionLabel`; Escape returns to
|
|
71
|
-
* option selection. Non-TUI
|
|
72
|
+
* option selection. Non-TUI clients (SDK, ACP) drop it; callers must keep
|
|
72
73
|
* a fallback path for selects that resolve `optionLabel` without invoking
|
|
73
74
|
* `onSubmit`.
|
|
74
75
|
*/
|
|
@@ -104,7 +105,7 @@ export type ExtensionUiComponentFactory = (tui: TUI, theme: Theme) => ExtensionU
|
|
|
104
105
|
export type ExtensionWidgetContent = string[] | ExtensionUiComponentFactory | undefined;
|
|
105
106
|
/**
|
|
106
107
|
* UI context for extensions to request interactive UI.
|
|
107
|
-
*
|
|
108
|
+
* Interactive, SDK, and headless callers provide their own implementation.
|
|
108
109
|
*/
|
|
109
110
|
export interface ExtensionUIContext {
|
|
110
111
|
/** Show a selector and return the user's choice. */
|
|
@@ -175,6 +176,13 @@ export interface ExtensionUIContext {
|
|
|
175
176
|
/** Set tool output expansion state. */
|
|
176
177
|
setToolsExpanded(expanded: boolean): void;
|
|
177
178
|
}
|
|
179
|
+
export interface ExtensionTranscriptEntry {
|
|
180
|
+
id: string;
|
|
181
|
+
role: string;
|
|
182
|
+
textSummary: string;
|
|
183
|
+
ts: string;
|
|
184
|
+
body?: string;
|
|
185
|
+
}
|
|
178
186
|
export interface ContextUsage {
|
|
179
187
|
/** Context tokens, or null if unknown (e.g. right after compaction, before next LLM response). */
|
|
180
188
|
tokens: number | null;
|
|
@@ -204,7 +212,7 @@ export interface ExtensionContext {
|
|
|
204
212
|
getContextUsage(): ContextUsage | undefined;
|
|
205
213
|
/** Compact the session context (interactive mode shows UI). */
|
|
206
214
|
compact(instructionsOrOptions?: string | CompactOptions): Promise<void>;
|
|
207
|
-
/** Whether UI is available
|
|
215
|
+
/** Whether an interactive UI is available */
|
|
208
216
|
hasUI: boolean;
|
|
209
217
|
/** Current working directory */
|
|
210
218
|
cwd: string;
|
|
@@ -222,17 +230,60 @@ export interface ExtensionContext {
|
|
|
222
230
|
abort(): void;
|
|
223
231
|
/** Whether there are queued messages waiting */
|
|
224
232
|
hasPendingMessages(): boolean;
|
|
233
|
+
/** Typed pending-message counts per queue (steering, follow-up, next-turn). */
|
|
234
|
+
getPendingMessageCounts(): {
|
|
235
|
+
steering: number;
|
|
236
|
+
followUp: number;
|
|
237
|
+
nextTurn: number;
|
|
238
|
+
};
|
|
239
|
+
/** Read-only session data exposed to extensions and the SDK host. */
|
|
240
|
+
getTranscript(): ExtensionTranscriptEntry[];
|
|
241
|
+
getTranscriptBody(entryId: string): string | undefined;
|
|
242
|
+
getGoalState(): unknown;
|
|
243
|
+
getTodoState(): unknown;
|
|
244
|
+
getQueuedMessages(): unknown[];
|
|
245
|
+
getActiveTools(): string[];
|
|
246
|
+
getAllTools(): string[];
|
|
247
|
+
/** Session control seams used by the SDK host. */
|
|
248
|
+
cycleModel(): Promise<{
|
|
249
|
+
model: Model;
|
|
250
|
+
thinkingLevel: ThinkingLevel | undefined;
|
|
251
|
+
} | undefined>;
|
|
252
|
+
cycleThinkingLevel(): ThinkingLevel | undefined;
|
|
253
|
+
setQueueMode(kind: "steering" | "follow_up" | "interrupt", mode: unknown): boolean;
|
|
254
|
+
getSkillState(): unknown;
|
|
255
|
+
getConfigItems(): unknown;
|
|
256
|
+
getBranchCandidates(): unknown;
|
|
257
|
+
getExtensions(): unknown;
|
|
258
|
+
getArtifact(id: string): Uint8Array | string | undefined | Promise<Uint8Array | string | undefined>;
|
|
259
|
+
getArtifactRange?(id: string, offset: number, length: number): {
|
|
260
|
+
bytes: Uint8Array;
|
|
261
|
+
totalBytes: number;
|
|
262
|
+
} | undefined | Promise<{
|
|
263
|
+
bytes: Uint8Array;
|
|
264
|
+
totalBytes: number;
|
|
265
|
+
} | undefined>;
|
|
266
|
+
getJobs(): unknown;
|
|
267
|
+
/** Typed skill and mode controls exposed to the SDK host. */
|
|
268
|
+
invokeSkill?(name: string, args?: string): Promise<unknown>;
|
|
269
|
+
setPlanMode?(on: boolean): unknown;
|
|
270
|
+
operateGoal?(op: "create" | "get" | "resume" | "pause" | "complete" | "drop", objective?: string): Promise<unknown>;
|
|
271
|
+
/** Typed nonvisual session controls exposed to the SDK host. */
|
|
272
|
+
sdkControl?(operation: string, input: Record<string, unknown>): unknown | Promise<unknown>;
|
|
273
|
+
/** Install a permission callback backed by a live SDK reverse provider lease. */
|
|
274
|
+
setSdkPermissionProvider?(provider: ((toolCall: ClientBridgePermissionToolCall, options: ClientBridgePermissionOption[], signal?: AbortSignal) => Promise<ClientBridgePermissionOutcome>) | undefined): void;
|
|
275
|
+
/** Names of session SDK seams actually installed by the active runtime. */
|
|
276
|
+
sdkBindings?(): readonly string[];
|
|
225
277
|
/** Gracefully shutdown and exit. */
|
|
226
278
|
shutdown(): void;
|
|
227
279
|
/** Get the current effective system prompt. */
|
|
228
280
|
getSystemPrompt(): string[];
|
|
229
281
|
/** @deprecated Use hasPendingMessages() instead */
|
|
230
282
|
hasQueuedMessages(): boolean;
|
|
231
|
-
/**
|
|
232
|
-
* Unattended workflow-gate bridge. Present only when the session runs in
|
|
233
|
-
* unattended/RPC mode; `undefined` in interactive/TUI mode (notify-only).
|
|
234
|
-
*/
|
|
283
|
+
/** SDK workflow-gate bridge, when a session has a remote gate responder. */
|
|
235
284
|
workflowGate?: WorkflowGateEmitter;
|
|
285
|
+
/** Clear the active conversation while preserving the saved session identity. */
|
|
286
|
+
clearContext(): Promise<boolean>;
|
|
236
287
|
}
|
|
237
288
|
/**
|
|
238
289
|
* Extended context for command handlers.
|
|
@@ -419,12 +470,12 @@ export interface UserPythonEvent {
|
|
|
419
470
|
/** Current working directory */
|
|
420
471
|
cwd: string;
|
|
421
472
|
}
|
|
422
|
-
/** Fired when
|
|
473
|
+
/** Fired when input enters through an interactive, SDK, or extension source. */
|
|
423
474
|
export interface InputEvent {
|
|
424
475
|
type: "input";
|
|
425
476
|
text: string;
|
|
426
477
|
images?: ImageContent[];
|
|
427
|
-
source: "interactive" | "
|
|
478
|
+
source: "interactive" | "sdk" | "extension";
|
|
428
479
|
}
|
|
429
480
|
interface ToolCallEventBase {
|
|
430
481
|
type: "tool_call";
|
|
@@ -662,7 +713,8 @@ export interface ExtensionAPI {
|
|
|
662
713
|
/** Send a user message to the agent, or queue it when deliverAs is set. */
|
|
663
714
|
sendUserMessage(content: string | (TextContent | ImageContent)[], options?: {
|
|
664
715
|
deliverAs?: "steer" | "followUp";
|
|
665
|
-
|
|
716
|
+
onPreflightAccepted?: () => void;
|
|
717
|
+
}): Promise<void>;
|
|
666
718
|
/** Append a custom entry to the session for state persistence (not sent to LLM). */
|
|
667
719
|
appendEntry<T = unknown>(customType: string, data?: T): void;
|
|
668
720
|
/** Execute a shell command. */
|
|
@@ -680,7 +732,23 @@ export interface ExtensionAPI {
|
|
|
680
732
|
/** Get current thinking level. */
|
|
681
733
|
getThinkingLevel(): ThinkingLevel | undefined;
|
|
682
734
|
/** Set thinking level for the current session. */
|
|
683
|
-
setThinkingLevel(level: ThinkingLevel): void;
|
|
735
|
+
setThinkingLevel(level: ThinkingLevel, persist?: boolean): void;
|
|
736
|
+
/** Get whether thinking output is visible in the current session. */
|
|
737
|
+
getThinkingVisibility(): "visible" | "hidden";
|
|
738
|
+
/** Set whether thinking output is visible for the current session. */
|
|
739
|
+
setThinkingVisibility(visibility: "visible" | "hidden", persist?: boolean): void;
|
|
740
|
+
/** Cycle the current model's available thinking levels. */
|
|
741
|
+
cycleThinkingLevel(): ThinkingLevel | undefined;
|
|
742
|
+
/** Set thinking level from a session or durable global control surface. */
|
|
743
|
+
setThinkingLevelForControl(level: ThinkingLevel, persist: boolean): Promise<void>;
|
|
744
|
+
/** Set thinking visibility from a session or durable global control surface. */
|
|
745
|
+
setThinkingVisibilityForControl(visibility: "visible" | "hidden", persist: boolean): Promise<void>;
|
|
746
|
+
/** Set the model for this session only. Returns false when it is unavailable. */
|
|
747
|
+
setModelTemporaryForControl(model: Model, expectedSessionId?: string): Promise<boolean>;
|
|
748
|
+
/** Fetch provider usage through the session's canonical provider resolution. */
|
|
749
|
+
fetchUsageReportsForControl(): Promise<UsageReport[] | null>;
|
|
750
|
+
/** Report whether the current effort follows global config or a session override. */
|
|
751
|
+
getThinkingScopeForControl(): "session" | "global config";
|
|
684
752
|
/** Get the current session name. */
|
|
685
753
|
getSessionName(): string | undefined;
|
|
686
754
|
/** Set the session name. Persists to the session file. */
|
|
@@ -816,15 +884,24 @@ options?: {
|
|
|
816
884
|
}) => void;
|
|
817
885
|
export type SendUserMessageHandler = (content: string | (TextContent | ImageContent)[], options?: {
|
|
818
886
|
deliverAs?: "steer" | "followUp";
|
|
819
|
-
|
|
887
|
+
onPreflightAccepted?: () => void;
|
|
888
|
+
}) => void | Promise<void>;
|
|
820
889
|
export type AppendEntryHandler = <T = unknown>(customType: string, data?: T) => void;
|
|
821
890
|
export type GetActiveToolsHandler = () => string[];
|
|
822
891
|
export type GetAllToolsHandler = () => string[];
|
|
823
892
|
export type GetCommandsHandler = () => SlashCommandInfo[];
|
|
824
893
|
export type SetActiveToolsHandler = (toolNames: string[]) => Promise<void>;
|
|
825
894
|
export type SetModelHandler = (model: Model) => Promise<boolean>;
|
|
895
|
+
export type CycleThinkingLevelHandler = () => ThinkingLevel | undefined;
|
|
896
|
+
export type SetThinkingLevelForControlHandler = (level: ThinkingLevel, persist: boolean) => Promise<void>;
|
|
897
|
+
export type SetThinkingVisibilityForControlHandler = (visibility: "visible" | "hidden", persist: boolean) => Promise<void>;
|
|
898
|
+
export type SetModelTemporaryForControlHandler = (model: Model, expectedSessionId?: string) => Promise<boolean>;
|
|
899
|
+
export type FetchUsageReportsForControlHandler = () => Promise<UsageReport[] | null>;
|
|
900
|
+
export type GetThinkingScopeForControlHandler = () => "session" | "global config";
|
|
826
901
|
export type GetThinkingLevelHandler = () => ThinkingLevel | undefined;
|
|
827
902
|
export type SetThinkingLevelHandler = (level: ThinkingLevel, persist?: boolean) => void;
|
|
903
|
+
export type GetThinkingVisibilityHandler = () => "visible" | "hidden";
|
|
904
|
+
export type SetThinkingVisibilityHandler = (visibility: "visible" | "hidden", persist?: boolean) => void;
|
|
828
905
|
/** Shared state created by loader, used during registration and runtime. */
|
|
829
906
|
export interface ExtensionRuntimeState {
|
|
830
907
|
flagValues: Map<string, boolean | string>;
|
|
@@ -848,6 +925,14 @@ export interface ExtensionActions {
|
|
|
848
925
|
setModel: SetModelHandler;
|
|
849
926
|
getThinkingLevel: GetThinkingLevelHandler;
|
|
850
927
|
setThinkingLevel: SetThinkingLevelHandler;
|
|
928
|
+
getThinkingVisibility: GetThinkingVisibilityHandler;
|
|
929
|
+
setThinkingVisibility: SetThinkingVisibilityHandler;
|
|
930
|
+
cycleThinkingLevel: CycleThinkingLevelHandler;
|
|
931
|
+
setThinkingLevelForControl: SetThinkingLevelForControlHandler;
|
|
932
|
+
setThinkingVisibilityForControl: SetThinkingVisibilityForControlHandler;
|
|
933
|
+
setModelTemporaryForControl: SetModelTemporaryForControlHandler;
|
|
934
|
+
fetchUsageReportsForControl: FetchUsageReportsForControlHandler;
|
|
935
|
+
getThinkingScopeForControl: GetThinkingScopeForControlHandler;
|
|
851
936
|
getSessionName: () => string | undefined;
|
|
852
937
|
setSessionName: (name: string) => Promise<void>;
|
|
853
938
|
}
|
|
@@ -857,12 +942,52 @@ export interface ExtensionContextActions {
|
|
|
857
942
|
isIdle: () => boolean;
|
|
858
943
|
abort: () => void;
|
|
859
944
|
hasPendingMessages: () => boolean;
|
|
945
|
+
/** Typed pending-message counts per queue; optional for embedders without a counted queue. */
|
|
946
|
+
getPendingMessageCounts?: () => {
|
|
947
|
+
steering: number;
|
|
948
|
+
followUp: number;
|
|
949
|
+
nextTurn: number;
|
|
950
|
+
};
|
|
951
|
+
getTranscript?: () => ExtensionTranscriptEntry[];
|
|
952
|
+
getTranscriptBody?: (entryId: string) => string | undefined;
|
|
953
|
+
getGoalState?: () => unknown;
|
|
954
|
+
getTodoState?: () => unknown;
|
|
955
|
+
getQueuedMessages?: () => unknown[];
|
|
956
|
+
getActiveTools?: () => string[];
|
|
957
|
+
getAllTools?: () => string[];
|
|
860
958
|
shutdown: () => void;
|
|
861
959
|
getContextUsage: () => ContextUsage | undefined;
|
|
862
960
|
compact: (instructionsOrOptions?: string | CompactOptions) => Promise<void>;
|
|
863
961
|
getSystemPrompt: () => string[];
|
|
864
|
-
/**
|
|
962
|
+
/** SDK workflow-gate bridge, when a session has a remote gate responder. */
|
|
865
963
|
getWorkflowGate?: () => WorkflowGateEmitter | undefined;
|
|
964
|
+
/** Clear the active conversation while preserving the saved session identity. */
|
|
965
|
+
clearContext?: () => Promise<boolean>;
|
|
966
|
+
/** Session control and query seams exposed to the per-session SDK host. */
|
|
967
|
+
cycleModel?: () => Promise<{
|
|
968
|
+
model: Model;
|
|
969
|
+
thinkingLevel: ThinkingLevel | undefined;
|
|
970
|
+
} | undefined>;
|
|
971
|
+
cycleThinkingLevel?: () => ThinkingLevel | undefined;
|
|
972
|
+
setQueueMode?: (kind: "steering" | "follow_up" | "interrupt", mode: unknown) => boolean;
|
|
973
|
+
getSkillState?: () => unknown;
|
|
974
|
+
getConfigItems?: () => unknown;
|
|
975
|
+
getBranchCandidates?: () => unknown;
|
|
976
|
+
getExtensions?: () => unknown;
|
|
977
|
+
getArtifact?: (id: string) => Uint8Array | string | undefined | Promise<Uint8Array | string | undefined>;
|
|
978
|
+
getArtifactRange?: (id: string, offset: number, length: number) => {
|
|
979
|
+
bytes: Uint8Array;
|
|
980
|
+
totalBytes: number;
|
|
981
|
+
} | undefined | Promise<{
|
|
982
|
+
bytes: Uint8Array;
|
|
983
|
+
totalBytes: number;
|
|
984
|
+
} | undefined>;
|
|
985
|
+
getJobs?: () => unknown;
|
|
986
|
+
setSdkPermissionProvider?: (provider: ((toolCall: ClientBridgePermissionToolCall, options: ClientBridgePermissionOption[], signal?: AbortSignal) => Promise<ClientBridgePermissionOutcome>) | undefined) => void;
|
|
987
|
+
sdkControl?: (operation: string, input: Record<string, unknown>) => unknown | Promise<unknown>;
|
|
988
|
+
invokeSkill?: (name: string, args?: string) => Promise<unknown>;
|
|
989
|
+
setPlanMode?: (on: boolean) => unknown;
|
|
990
|
+
operateGoal?: (op: "create" | "get" | "resume" | "pause" | "complete" | "drop", objective?: string) => Promise<unknown>;
|
|
866
991
|
}
|
|
867
992
|
/** Actions for ExtensionCommandContext (ctx.* in command handlers). */
|
|
868
993
|
export interface ExtensionCommandContextActions {
|
|
@@ -11,7 +11,7 @@ import type { AgentEndEvent, AgentStartEvent, AutoCompactionEndEvent, AutoCompac
|
|
|
11
11
|
export type { ExecOptions, ExecResult } from "../../exec/exec";
|
|
12
12
|
/**
|
|
13
13
|
* UI context for hooks to request interactive UI from the harness.
|
|
14
|
-
*
|
|
14
|
+
* Interactive and headless callers provide their own implementation.
|
|
15
15
|
*/
|
|
16
16
|
export interface HookUIContext {
|
|
17
17
|
/**
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type { Args } from "../cli/args";
|
|
2
2
|
import { buildGjcTmuxExactSessionTarget, buildGjcTmuxProfileCommands, GJC_DEFAULT_TMUX_SESSION, GJC_TMUX_COMMAND_ENV, GJC_TMUX_MOUSE_ENV, GJC_TMUX_PROFILE_ENV, GJC_TMUX_SESSION_PREFIX, type GjcTmuxProfileCommand } from "./tmux-common";
|
|
3
3
|
import { type OwnerIsolationProbeSync } from "./tmux-owner-isolation";
|
|
4
|
-
|
|
5
|
-
export
|
|
4
|
+
import { buildWindowsPowerShellInnerCommand, GJC_TMUX_LAUNCHED_ENV, type WindowsPowerShellInnerCommandOptions } from "./windows-powershell-command";
|
|
5
|
+
export type { WindowsPowerShellInnerCommandOptions };
|
|
6
|
+
export { buildGjcTmuxExactSessionTarget, buildGjcTmuxProfileCommands, buildWindowsPowerShellInnerCommand, GJC_DEFAULT_TMUX_SESSION, GJC_TMUX_COMMAND_ENV, GJC_TMUX_LAUNCHED_ENV, GJC_TMUX_MOUSE_ENV, GJC_TMUX_PROFILE_ENV, GJC_TMUX_SESSION_PREFIX, };
|
|
6
7
|
export declare const GJC_LAUNCH_POLICY_ENV = "GJC_LAUNCH_POLICY";
|
|
7
8
|
export declare const GJC_TMUX_WINDOW_LABEL_MAX_WIDTH = 48;
|
|
8
9
|
interface TtyState {
|
|
@@ -36,6 +36,9 @@ export type PsmuxSpawnRunner = (command: string, args: string[]) => {
|
|
|
36
36
|
export type BinaryResolver = (candidate: string) => string | null;
|
|
37
37
|
/** @internal Test-only seam; production code never calls this. */
|
|
38
38
|
export declare function __setBinaryResolverForTests(resolver: BinaryResolver | null): void;
|
|
39
|
+
export type ExecutableIdentityResolver = (path: string) => string | null;
|
|
40
|
+
/** @internal Test-only seam; production code never calls this. */
|
|
41
|
+
export declare function __setExecutableIdentityResolverForTests(resolver: ExecutableIdentityResolver | null): void;
|
|
39
42
|
export declare function envDisabled(value: string | undefined): boolean;
|
|
40
43
|
/**
|
|
41
44
|
* Decide whether command resolves to a psmux binary by probing its version
|
|
@@ -41,6 +41,8 @@ export interface RuntimeStateContext {
|
|
|
41
41
|
sessionId: string;
|
|
42
42
|
cwd: string;
|
|
43
43
|
sessionFile?: string | null;
|
|
44
|
+
/** Optional platform seam for deterministic cross-platform path identity checks. */
|
|
45
|
+
platform?: NodeJS.Platform;
|
|
44
46
|
branch?: string | null;
|
|
45
47
|
/** Public-safe owner metadata used to persist the canonical terminal verdict. */
|
|
46
48
|
ownerTerminal?: OwnerTerminalContext | null;
|
|
@@ -60,6 +62,7 @@ export declare function readTerminalRuntimeStateMarker(input: {
|
|
|
60
62
|
sessionId?: string | null;
|
|
61
63
|
cwd?: string | null;
|
|
62
64
|
sessionFile?: string | null;
|
|
65
|
+
platform?: NodeJS.Platform;
|
|
63
66
|
}): Promise<TerminalRuntimeStateStatus>;
|
|
64
67
|
export declare function stateForEvent(event: RuntimeStateEvent): RuntimeState | null;
|
|
65
68
|
export declare function eventAffectsCoordinatorRuntimeState(event: RuntimeStateEvent): boolean;
|
|
@@ -146,7 +146,7 @@ export interface GjcTeamWorkerLifecycle {
|
|
|
146
146
|
}
|
|
147
147
|
export type GjcTeamNotificationDeliveryState = "pending" | "sent" | "queued" | "deferred" | "failed" | "delivered" | "acknowledged";
|
|
148
148
|
export type GjcTeamPaneAttemptResult = "sent" | "queued" | "deferred" | "failed";
|
|
149
|
-
export type GjcTeamMailboxDeliveryTransportKind = "
|
|
149
|
+
export type GjcTeamMailboxDeliveryTransportKind = "sdk" | "pane";
|
|
150
150
|
export interface GjcTeamNotification {
|
|
151
151
|
id: string;
|
|
152
152
|
kind: "mailbox_message" | "worker_lifecycle" | "invalid_attempt";
|
|
@@ -175,7 +175,7 @@ export interface GjcTeamMailboxDeliveryInput {
|
|
|
175
175
|
env: NodeJS.ProcessEnv;
|
|
176
176
|
}
|
|
177
177
|
export type GjcTeamMailboxDeliveryResult = {
|
|
178
|
-
transport: "
|
|
178
|
+
transport: "sdk";
|
|
179
179
|
state: GjcTeamNotificationDeliveryState;
|
|
180
180
|
reason?: string;
|
|
181
181
|
} | {
|
|
@@ -314,8 +314,7 @@ export declare function resolveWorkerWorktreePath(input: {
|
|
|
314
314
|
platform: NodeJS.Platform;
|
|
315
315
|
isPsmux: boolean;
|
|
316
316
|
}): string;
|
|
317
|
-
|
|
318
|
-
export declare function resolveGjcWorkerCommand(cwd?: string, env?: NodeJS.ProcessEnv, platform?: NodeJS.Platform, argv?: string[], execPath?: string, which?: CommandPathResolver): string;
|
|
317
|
+
export declare function resolveGjcWorkerCommand(cwd?: string, env?: NodeJS.ProcessEnv, platform?: NodeJS.Platform, argv?: string[], execPath?: string): string;
|
|
319
318
|
/** @internal Exported for unit tests. */
|
|
320
319
|
export declare function buildWorkerCommand(config: GjcTeamConfig, worker: GjcTeamWorker, platform?: NodeJS.Platform): string;
|
|
321
320
|
export type GjcWorkerCheckpointClassification = {
|
|
@@ -1,5 +1,18 @@
|
|
|
1
|
+
import { type TmuxServerProof } from "./tmux-owner-isolation";
|
|
1
2
|
/** Matches the sole argv shape allowed to enter the owner-isolation JSON-line protocol. */
|
|
2
3
|
export declare function isTmuxOwnerIsolationCliArgv(argv: readonly string[]): boolean;
|
|
4
|
+
interface TmuxListSessionsResult {
|
|
5
|
+
exitCode: number | null;
|
|
6
|
+
stdout: string;
|
|
7
|
+
stderr: string;
|
|
8
|
+
}
|
|
9
|
+
interface TmuxServerProofOptions {
|
|
10
|
+
platform?: NodeJS.Platform;
|
|
11
|
+
runListSessions?: (argv: string[]) => TmuxListSessionsResult;
|
|
12
|
+
}
|
|
13
|
+
/** Probes a tmux server using an injectable list-sessions runner for platform-bounded callers. */
|
|
14
|
+
export declare function tmuxServerProof(socketKey: string, tmuxControlArgv?: string[], options?: TmuxServerProofOptions): Promise<TmuxServerProof>;
|
|
3
15
|
/** Reads exactly one bounded JSON line and writes exactly one JSON response line. */
|
|
4
16
|
export declare function runTmuxOwnerIsolationCli(stdin: string): Promise<string>;
|
|
5
17
|
export declare function runTmuxOwnerIsolationCliFromStdin(): Promise<void>;
|
|
18
|
+
export {};
|
|
@@ -65,6 +65,9 @@ export interface ForceCloseOwnerDependencies {
|
|
|
65
65
|
sleep(ms: number): Promise<void>;
|
|
66
66
|
listPanePids(sessionName: string, env: NodeJS.ProcessEnv): number[];
|
|
67
67
|
}
|
|
68
|
+
export interface CreateGjcTmuxSessionOptions {
|
|
69
|
+
platform?: NodeJS.Platform;
|
|
70
|
+
}
|
|
68
71
|
export type CreateOwnerIsolationTestDependencies = {
|
|
69
72
|
probe?: Partial<OwnerIsolationProbeSync>;
|
|
70
73
|
execute?: (plan: PlanResponse, deps: TmuxOwnerIsolationExecutionDependencies) => TmuxOwnerIsolationExecutionResult;
|
|
@@ -80,7 +83,7 @@ export declare function findGjcTmuxSessionByBranch(branch: string, env?: NodeJS.
|
|
|
80
83
|
export declare function findGjcTmuxSessionByName(sessionName: string, env?: NodeJS.ProcessEnv): GjcTmuxSessionStatus | undefined;
|
|
81
84
|
export declare function findGjcTmuxSessionByScope(project: string, branch: string | null | undefined, env?: NodeJS.ProcessEnv): GjcTmuxSessionStatus | undefined;
|
|
82
85
|
export declare function statusGjcTmuxSession(sessionName: string, env?: NodeJS.ProcessEnv): GjcTmuxSessionStatus;
|
|
83
|
-
export declare function createGjcTmuxSession(env?: NodeJS.ProcessEnv): GjcTmuxSessionStatus;
|
|
86
|
+
export declare function createGjcTmuxSession(env?: NodeJS.ProcessEnv, options?: CreateGjcTmuxSessionOptions): GjcTmuxSessionStatus;
|
|
84
87
|
/** Proves a managed reusable name still resolves to one immutable session on one server. */
|
|
85
88
|
export declare function proveGjcTmuxSessionMutationTarget(sessionName: string, env?: NodeJS.ProcessEnv): ProvenTmuxSessionIdentity;
|
|
86
89
|
/** @internal */
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare const GJC_TMUX_LAUNCHED_ENV = "GJC_TMUX_LAUNCHED";
|
|
2
|
+
export interface WindowsPowerShellInnerCommandOptions {
|
|
3
|
+
command: readonly string[];
|
|
4
|
+
args?: readonly string[];
|
|
5
|
+
environment?: Record<string, string>;
|
|
6
|
+
tmuxExitMarkerPath?: string;
|
|
7
|
+
}
|
|
8
|
+
/** Builds the shared BOM-free UTF-16LE command for native Windows tmux-compatible panes. */
|
|
9
|
+
export declare function buildWindowsPowerShellInnerCommand({ command, args, environment, tmuxExitMarkerPath, }: WindowsPowerShellInnerCommandOptions): string;
|