@gajae-code/coding-agent 0.13.2 → 0.14.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 +215 -8
- package/README.md +2 -0
- package/bin/gajaessi.js +4 -0
- package/dist/types/async/job-manager.d.ts +55 -2
- package/dist/types/async/support.d.ts +14 -0
- package/dist/types/capability/mcp.d.ts +6 -0
- package/dist/types/capability/types.d.ts +6 -0
- package/dist/types/cli/accounts-cli.d.ts +19 -0
- package/dist/types/cli/args.d.ts +3 -0
- package/dist/types/cli/config-cli.d.ts +6 -0
- package/dist/types/cli/crash-cli.d.ts +10 -0
- package/dist/types/cli/customize-doctor.d.ts +145 -0
- package/dist/types/cli/daemon-cli.d.ts +3 -1
- package/dist/types/cli/mcp-cli.d.ts +11 -0
- package/dist/types/cli/notify-cli.d.ts +1 -1
- package/dist/types/cli/root-flags.d.ts +12 -0
- package/dist/types/cli/setup-cli.d.ts +3 -1
- package/dist/types/cli/skills-cli.d.ts +2 -1
- package/dist/types/cli/update-cli.d.ts +19 -1
- package/dist/types/cli.d.ts +6 -0
- package/dist/types/commands/accounts.d.ts +40 -0
- package/dist/types/commands/crash.d.ts +24 -0
- package/dist/types/commands/customize.d.ts +22 -0
- package/dist/types/commands/daemon.d.ts +1 -1
- package/dist/types/commands/launch.d.ts +6 -0
- package/dist/types/commands/setup.d.ts +6 -0
- package/dist/types/commands/skills.d.ts +6 -1
- package/dist/types/commands/update.d.ts +7 -0
- package/dist/types/config/atomic-yaml-patch-worker.d.ts +25 -0
- package/dist/types/config/atomic-yaml-patch.d.ts +62 -2
- package/dist/types/config/config-schema-version.d.ts +10 -0
- package/dist/types/config/file-lock.d.ts +18 -0
- package/dist/types/config/model-profile-activation.d.ts +3 -1
- package/dist/types/config/model-registry.d.ts +10 -1
- package/dist/types/config/models-config-schema.d.ts +2 -0
- package/dist/types/config/settings-schema.d.ts +73 -9
- package/dist/types/config/settings.d.ts +63 -0
- package/dist/types/config/skill-settings-defaults.d.ts +26 -0
- package/dist/types/config/task-delegation.d.ts +39 -0
- package/dist/types/config/update-channel.d.ts +10 -0
- package/dist/types/coordinator-mcp/server.d.ts +5 -1
- package/dist/types/crash/index-store.d.ts +87 -0
- package/dist/types/crash/nudge.d.ts +50 -0
- package/dist/types/crash/record-loader.d.ts +17 -0
- package/dist/types/crash/report.d.ts +134 -0
- package/dist/types/crash/sanitize.d.ts +25 -0
- package/dist/types/cursor.d.ts +13 -2
- package/dist/types/customization/import.d.ts +37 -0
- package/dist/types/customization/index.d.ts +4 -0
- package/dist/types/customization/inventory.d.ts +25 -0
- package/dist/types/customization/mutations.d.ts +32 -0
- package/dist/types/customization/types.d.ts +115 -0
- package/dist/types/daemon/control-types.d.ts +8 -1
- package/dist/types/daemon/operator-contract.d.ts +4 -4
- package/dist/types/discovery/claude.d.ts +39 -1
- package/dist/types/discovery/codex.d.ts +39 -1
- package/dist/types/discovery/index.d.ts +2 -0
- package/dist/types/discovery/mcp-compat.d.ts +30 -0
- package/dist/types/edit/renderer.d.ts +23 -0
- package/dist/types/extensibility/extensions/runner.d.ts +3 -0
- package/dist/types/extensibility/extensions/types.d.ts +21 -4
- package/dist/types/extensibility/gjc-plugins/observability.d.ts +6 -1
- package/dist/types/extensibility/gjc-plugins/registry.d.ts +8 -1
- package/dist/types/extensibility/hooks/loader.d.ts +19 -5
- package/dist/types/extensibility/runtime-skill-discovery.d.ts +22 -1
- package/dist/types/extensibility/skill-management.d.ts +107 -0
- package/dist/types/gjc-runtime/deep-interview-runtime.d.ts +3 -1
- package/dist/types/gjc-runtime/launch-worktree.d.ts +8 -0
- package/dist/types/gjc-runtime/linux-proc.d.ts +3 -0
- package/dist/types/gjc-runtime/ralplan-runtime.d.ts +10 -6
- package/dist/types/gjc-runtime/session-state-lock.d.ts +104 -0
- package/dist/types/gjc-runtime/session-state-sidecar.d.ts +120 -2
- package/dist/types/gjc-runtime/state-writer.d.ts +10 -1
- package/dist/types/gjc-runtime/ultragoal-guard.d.ts +4 -2
- package/dist/types/gjc-runtime/ultragoal-runtime.d.ts +8 -6
- package/dist/types/gjc-runtime/workflow-settings.d.ts +109 -0
- package/dist/types/hooks/events.d.ts +60 -0
- package/dist/types/hooks/normalize.d.ts +83 -0
- package/dist/types/hooks/skill-state.d.ts +9 -2
- package/dist/types/main.d.ts +2 -1
- package/dist/types/modes/acp/abort-scope.d.ts +13 -0
- package/dist/types/modes/acp/acp-agent.d.ts +7 -4
- package/dist/types/modes/components/customization/customization-dashboard.d.ts +44 -0
- package/dist/types/modes/components/customization/import-wizard.d.ts +21 -0
- package/dist/types/modes/components/customization/index.d.ts +1 -0
- package/dist/types/modes/components/dynamic-theme-text.d.ts +9 -0
- package/dist/types/modes/components/gajae-pet-widget.d.ts +6 -28
- package/dist/types/modes/components/irc-sidebar.d.ts +1 -0
- package/dist/types/modes/components/iterm-pet-transport.d.ts +122 -0
- package/dist/types/modes/components/oauth-selector.d.ts +10 -4
- package/dist/types/modes/components/pet-capability.d.ts +7 -21
- package/dist/types/modes/components/settings-selector.d.ts +5 -0
- package/dist/types/modes/components/status-line/gh.d.ts +6 -2
- package/dist/types/modes/controllers/extension-ui-controller.d.ts +1 -1
- package/dist/types/modes/controllers/selector-controller.d.ts +7 -8
- package/dist/types/modes/controllers/stt-controller.d.ts +1 -1
- package/dist/types/modes/interactive-mode.d.ts +1 -0
- package/dist/types/modes/theme/defaults/index.d.ts +118 -0
- package/dist/types/modes/types.d.ts +1 -0
- package/dist/types/modes/utils/injected-user-submission.d.ts +10 -0
- package/dist/types/runtime-mcp/config.d.ts +9 -0
- package/dist/types/runtime-mcp/manager.d.ts +26 -1
- package/dist/types/runtime-mcp/oauth-discovery.d.ts +4 -0
- package/dist/types/runtime-mcp/oauth-flow.d.ts +24 -1
- package/dist/types/runtime-mcp/pool-key.d.ts +2 -0
- package/dist/types/runtime-mcp/protocol.d.ts +278 -0
- package/dist/types/runtime-mcp/scope-config.d.ts +29 -0
- package/dist/types/runtime-mcp/tool-bridge.d.ts +15 -13
- package/dist/types/runtime-mcp/transports/http.d.ts +9 -0
- package/dist/types/runtime-mcp/types.d.ts +102 -10
- package/dist/types/sdk/acp/adapter.d.ts +26 -5
- package/dist/types/sdk/broker/broker.d.ts +3 -55
- package/dist/types/sdk/broker/lifecycle.d.ts +18 -12
- package/dist/types/sdk/broker/session-index.d.ts +14 -5
- package/dist/types/sdk/broker/startup-failure.d.ts +16 -1
- package/dist/types/sdk/bus/chat-daemon-control.d.ts +51 -1
- package/dist/types/sdk/bus/chat-daemon-runtime.d.ts +4 -41
- package/dist/types/sdk/bus/config.d.ts +11 -0
- package/dist/types/sdk/bus/conversation-store.d.ts +0 -1
- package/dist/types/sdk/bus/daemon-paths.d.ts +6 -0
- package/dist/types/sdk/bus/discord-conversation.d.ts +2 -0
- package/dist/types/sdk/bus/discord-daemon.d.ts +17 -12
- package/dist/types/sdk/bus/existing-thread-readiness.d.ts +4 -34
- package/dist/types/sdk/bus/inbound-reaction-ordering.d.ts +61 -0
- package/dist/types/sdk/bus/index.d.ts +85 -99
- package/dist/types/sdk/bus/kind-aware-reconciliation.d.ts +29 -7
- package/dist/types/sdk/bus/managed-daemon.d.ts +2 -32
- package/dist/types/sdk/bus/notification-service.d.ts +52 -0
- package/dist/types/sdk/bus/operator-runtime.d.ts +1 -1
- package/dist/types/sdk/bus/prompt-reconciliation.d.ts +16 -5
- package/dist/types/sdk/bus/reconciliation-store.d.ts +113 -5
- package/dist/types/sdk/bus/session-control.d.ts +25 -1
- package/dist/types/sdk/bus/slack-conversation.d.ts +4 -0
- package/dist/types/sdk/bus/slack-daemon.d.ts +9 -17
- package/dist/types/sdk/bus/slack-live-provider.d.ts +3 -1
- package/dist/types/sdk/bus/slack-provider.d.ts +4 -0
- package/dist/types/sdk/bus/slack-thread-binding.d.ts +6 -40
- package/dist/types/sdk/bus/telegram-adoption-intent.d.ts +30 -104
- package/dist/types/sdk/bus/telegram-daemon-cli.d.ts +10 -0
- package/dist/types/sdk/bus/telegram-daemon-contract.d.ts +262 -19
- package/dist/types/sdk/bus/telegram-daemon-orphan-reap.d.ts +125 -0
- package/dist/types/sdk/bus/telegram-daemon-owner-registry.d.ts +22 -0
- package/dist/types/sdk/bus/telegram-daemon.d.ts +119 -310
- package/dist/types/sdk/bus/telegram-reference.d.ts +1 -47
- package/dist/types/sdk/bus/threaded-render.d.ts +1 -0
- package/dist/types/sdk/bus/topic-registry.d.ts +33 -17
- package/dist/types/sdk/cli/rows.d.ts +2 -11
- package/dist/types/sdk/cli/session-cli.d.ts +15 -25
- package/dist/types/sdk/client/client.d.ts +97 -1
- package/dist/types/sdk/host/control/dispatch.d.ts +0 -7
- package/dist/types/sdk/host/control/index.d.ts +1 -1
- package/dist/types/sdk/host/control/operations.d.ts +18 -5
- package/dist/types/sdk/host/control/runtime-gate.d.ts +19 -0
- package/dist/types/sdk/host/host.d.ts +15 -1
- package/dist/types/sdk/host/query/handlers.d.ts +5 -0
- package/dist/types/sdk/host/reverse-leases.d.ts +1 -1
- package/dist/types/sdk/host/session-runtime.d.ts +127 -7
- package/dist/types/sdk/host/types.d.ts +1 -1
- package/dist/types/sdk/host/websocket-transport.d.ts +1 -1
- package/dist/types/sdk/index.d.ts +2 -1
- package/dist/types/sdk/lifecycle/broker-client.d.ts +8 -0
- package/dist/types/sdk/lifecycle/client.d.ts +59 -0
- package/dist/types/sdk/lifecycle/index.d.ts +3 -0
- package/dist/types/sdk/lifecycle/service.d.ts +232 -0
- package/dist/types/sdk/mcp/server.d.ts +9 -6
- package/dist/types/sdk/prompt-deadline-lease.d.ts +43 -0
- package/dist/types/sdk/prompt-deadline-manager.d.ts +28 -0
- package/dist/types/sdk/prompt-status.d.ts +10 -3
- package/dist/types/sdk/protocol/operation-registry.d.ts +5 -0
- package/dist/types/sdk/receipt-state.d.ts +17 -0
- package/dist/types/sdk/reconciliation-extensions.d.ts +2 -0
- package/dist/types/sdk/router/index.d.ts +1 -0
- package/dist/types/sdk/router/session-router.d.ts +152 -0
- package/dist/types/sdk/session-list.d.ts +22 -0
- package/dist/types/sdk/session-reconnect.d.ts +43 -1
- package/dist/types/sdk/session.d.ts +34 -1
- package/dist/types/sdk/transport/serve-cli.d.ts +1 -4
- package/dist/types/session/account-inventory.d.ts +86 -0
- package/dist/types/session/agent-session.d.ts +145 -6
- package/dist/types/session/agent-storage.d.ts +10 -0
- package/dist/types/session/coordinator-tool-label.d.ts +28 -0
- package/dist/types/session/internal/managed-session-storage.d.ts +23 -4
- package/dist/types/session/messages.d.ts +1 -1
- package/dist/types/session/secure-token-file.d.ts +3 -0
- package/dist/types/session/session-manager.d.ts +47 -1
- package/dist/types/session/startup-auth-config.d.ts +44 -0
- package/dist/types/session/terminal-abort.d.ts +378 -0
- package/dist/types/session/yield-queue.d.ts +7 -0
- package/dist/types/session-import/claude.d.ts +26 -0
- package/dist/types/session-import/codex.d.ts +88 -0
- package/dist/types/session-import/command.d.ts +35 -0
- package/dist/types/session-import/detect.d.ts +22 -0
- package/dist/types/session-import/index.d.ts +7 -0
- package/dist/types/session-import/provider-codex.d.ts +22 -0
- package/dist/types/session-import/provider-service.d.ts +38 -0
- package/dist/types/session-import/redact.d.ts +23 -0
- package/dist/types/session-import/service.d.ts +47 -0
- package/dist/types/session-import/types.d.ts +120 -0
- package/dist/types/setup/paseo/check.d.ts +16 -0
- package/dist/types/setup/paseo/install-saga.d.ts +115 -0
- package/dist/types/setup/paseo/json-publisher.d.ts +76 -0
- package/dist/types/setup/paseo/orchestration-preferences.d.ts +24 -0
- package/dist/types/setup/paseo/paseo-ownership.d.ts +87 -0
- package/dist/types/setup/paseo/paseo-setup.d.ts +29 -0
- package/dist/types/setup/paseo/provider-config.d.ts +35 -0
- package/dist/types/setup/paseo/remove.d.ts +14 -0
- package/dist/types/setup/paseo/result-types.d.ts +59 -0
- package/dist/types/setup/paseo/setup-deps.d.ts +73 -0
- package/dist/types/setup/paseo/skills-bridge.d.ts +44 -0
- package/dist/types/skill-state/active-state.d.ts +5 -1
- package/dist/types/slash-commands/acp-builtins.d.ts +5 -1
- package/dist/types/slash-commands/builtin-registry.d.ts +2 -0
- package/dist/types/slash-commands/helpers/credential-switch.d.ts +12 -0
- package/dist/types/slash-commands/helpers/usage-report.d.ts +5 -6
- package/dist/types/slash-commands/types.d.ts +7 -1
- package/dist/types/task/executor.d.ts +10 -0
- package/dist/types/task/index.d.ts +3 -1
- package/dist/types/tools/ask-answer-registry.d.ts +6 -3
- package/dist/types/tools/bash-sleep-advisory.d.ts +14 -0
- package/dist/types/tools/bash.d.ts +2 -6
- package/dist/types/tools/browser/attach.d.ts +11 -0
- package/dist/types/tools/browser/launch.d.ts +20 -0
- package/dist/types/tools/browser/profile-discovery.d.ts +6 -0
- package/dist/types/tools/browser/render.d.ts +1 -0
- package/dist/types/tools/browser.d.ts +3 -1
- package/dist/types/tools/image-gen.d.ts +10 -2
- package/dist/types/tools/index.d.ts +8 -0
- package/dist/types/tools/monitor.d.ts +1 -1
- package/dist/types/tools/skill-discovery.d.ts +8 -1
- package/dist/types/tools/subagent.d.ts +2 -0
- package/dist/types/tools/ultragoal-ask-guard.d.ts +2 -2
- package/dist/types/utils/herdr-pane.d.ts +76 -0
- package/package.json +19 -9
- package/scripts/build-binary.ts +2 -1
- package/scripts/build-sdk-package-smoke.ts +2 -13
- package/scripts/capture-sticky-viewport-showcase.ts +0 -1
- package/scripts/compile-args.ts +2 -0
- package/scripts/generate-sdk-adapter-parity-manifest.ts +31 -16
- package/scripts/generate-sdk-operation-inventory.ts +28 -0
- package/scripts/generate-telegram-baseline-manifest.ts +1 -0
- package/scripts/generate-tool-catalog.ts +6 -4
- package/scripts/verify-gjc-sdk-canonicalization.ts +5 -39
- package/src/async/job-manager.ts +352 -17
- package/src/async/support.ts +25 -0
- package/src/autoresearch/dashboard.ts +28 -13
- package/src/capability/index.ts +3 -1
- package/src/capability/mcp.ts +6 -0
- package/src/capability/types.ts +6 -0
- package/src/cli/accounts-cli.ts +395 -0
- package/src/cli/args.ts +23 -0
- package/src/cli/auth-broker-cli.ts +136 -66
- package/src/cli/auth-gateway-cli.ts +94 -70
- package/src/cli/config-cli.ts +27 -2
- package/src/cli/crash-cli.ts +78 -0
- package/src/cli/customize-doctor.ts +1605 -0
- package/src/cli/daemon-cli.ts +12 -3
- package/src/cli/fast-help.ts +1 -0
- package/src/cli/mcp-cli.ts +128 -60
- package/src/cli/notify-cli.ts +8 -14
- package/src/cli/root-flags.ts +8 -0
- package/src/cli/setup-cli.ts +145 -0
- package/src/cli/skills-cli.ts +38 -2
- package/src/cli/update-cli.ts +167 -12
- package/src/cli.ts +4 -0
- package/src/commands/accounts.ts +71 -0
- package/src/commands/crash.ts +35 -0
- package/src/commands/customize.ts +84 -0
- package/src/commands/daemon.ts +2 -2
- package/src/commands/deep-interview.ts +2 -0
- package/src/commands/launch.ts +1 -0
- package/src/commands/mcp.ts +12 -7
- package/src/commands/ralplan.ts +2 -0
- package/src/commands/sdk.ts +65 -32
- package/src/commands/setup.ts +5 -0
- package/src/commands/skills.ts +14 -4
- package/src/commands/ultragoal.ts +10 -1
- package/src/commands/update.ts +26 -15
- package/src/config/atomic-yaml-patch-worker.ts +57 -0
- package/src/config/atomic-yaml-patch.ts +769 -29
- package/src/config/config-schema-version.ts +10 -0
- package/src/config/file-lock.ts +70 -1
- package/src/config/mcp-schema.json +52 -14
- package/src/config/model-profile-activation.ts +23 -2
- package/src/config/model-profiles.ts +88 -21
- package/src/config/model-registry.ts +147 -21
- package/src/config/models-config-schema.ts +1 -1
- package/src/config/settings-schema.ts +77 -7
- package/src/config/settings.ts +4038 -199
- package/src/config/skill-settings-defaults.ts +41 -3
- package/src/config/task-delegation.ts +87 -0
- package/src/config/update-channel.ts +23 -0
- package/src/coordinator-mcp/server.ts +377 -308
- package/src/crash/index-store.ts +723 -0
- package/src/crash/nudge.ts +89 -0
- package/src/crash/record-loader.ts +149 -0
- package/src/crash/report.ts +551 -0
- package/src/crash/sanitize.ts +129 -0
- package/src/cursor.ts +36 -10
- package/src/customization/import.ts +946 -0
- package/src/customization/index.ts +4 -0
- package/src/customization/inventory.ts +335 -0
- package/src/customization/mutations.ts +141 -0
- package/src/customization/types.ts +223 -0
- package/src/daemon/control-types.ts +8 -1
- package/src/daemon/operator-contract.ts +6 -6
- package/src/defaults/gjc/extensions/grok-cli-vendor/src/models/catalog.ts +31 -6
- package/src/defaults/gjc/skills/deep-interview/SKILL.md +11 -22
- package/src/defaults/gjc/skills/ralplan/SKILL.md +36 -23
- package/src/defaults/gjc/skills/ultragoal/SKILL.md +16 -0
- package/src/discovery/claude-hooks.ts +38 -0
- package/src/discovery/claude.ts +142 -209
- package/src/discovery/codex-hooks.ts +38 -0
- package/src/discovery/codex.ts +132 -198
- package/src/discovery/helpers.ts +8 -1
- package/src/discovery/index.ts +2 -0
- package/src/discovery/mcp-compat.ts +234 -0
- package/src/discovery/mcp-json.ts +6 -0
- package/src/edit/renderer.ts +40 -0
- package/src/edit/streaming.ts +4 -2
- package/src/exec/bash-executor.ts +24 -20
- package/src/export/html/index.ts +51 -2
- package/src/extensibility/extensions/loader.ts +9 -1
- package/src/extensibility/extensions/runner.ts +17 -4
- package/src/extensibility/extensions/types.ts +31 -6
- package/src/extensibility/gjc-plugins/constrained-hooks.ts +33 -0
- package/src/extensibility/gjc-plugins/installer.ts +9 -5
- package/src/extensibility/gjc-plugins/observability.ts +8 -2
- package/src/extensibility/gjc-plugins/registry.ts +13 -2
- package/src/extensibility/gjc-plugins/runtime-adapters.ts +3 -1
- package/src/extensibility/gjc-plugins/schema.ts +222 -39
- package/src/extensibility/hooks/loader.ts +154 -10
- package/src/extensibility/runtime-skill-discovery.ts +257 -60
- package/src/extensibility/skill-management.ts +368 -0
- package/src/extensibility/skills.ts +52 -16
- package/src/gjc-runtime/deep-interview-runtime.ts +45 -61
- package/src/gjc-runtime/launch-worktree.ts +56 -2
- package/src/gjc-runtime/linux-proc.ts +7 -1
- package/src/gjc-runtime/ralplan-runtime.ts +100 -164
- package/src/gjc-runtime/session-state-lock.ts +992 -0
- package/src/gjc-runtime/session-state-sidecar.ts +644 -142
- package/src/gjc-runtime/state-writer.ts +39 -14
- package/src/gjc-runtime/tmux-owner-isolation.ts +5 -4
- package/src/gjc-runtime/ultragoal-guard.ts +11 -4
- package/src/gjc-runtime/ultragoal-runtime.ts +44 -41
- package/src/gjc-runtime/workflow-settings.ts +596 -0
- package/src/goals/tools/goal-tool.ts +6 -1
- package/src/hooks/events.ts +291 -0
- package/src/hooks/native-skill-hook.ts +4 -0
- package/src/hooks/normalize.ts +369 -0
- package/src/hooks/skill-state.ts +165 -46
- package/src/internal-urls/docs-index.generated.ts +41 -32
- package/src/main.ts +36 -5
- package/src/migrate/mcp-mapper.ts +25 -2
- package/src/modes/acp/abort-scope.ts +29 -0
- package/src/modes/acp/acp-agent.ts +423 -98
- package/src/modes/components/assistant-message.ts +6 -1
- package/src/modes/components/chrome.ts +4 -3
- package/src/modes/components/customization/customization-dashboard.ts +443 -0
- package/src/modes/components/customization/import-wizard.ts +372 -0
- package/src/modes/components/customization/index.ts +1 -0
- package/src/modes/components/dynamic-theme-text.ts +22 -0
- package/src/modes/components/gajae-pet-widget.ts +607 -193
- package/src/modes/components/irc-sidebar.ts +11 -0
- package/src/modes/components/iterm-pet-transport.ts +585 -0
- package/src/modes/components/model-selector.ts +1 -6
- package/src/modes/components/oauth-selector.ts +277 -86
- package/src/modes/components/pet-capability.ts +35 -31
- package/src/modes/components/settings-selector.ts +29 -5
- package/src/modes/components/status-line/gh.ts +45 -1
- package/src/modes/components/status-line/segments.ts +19 -4
- package/src/modes/components/tool-status-header.ts +13 -3
- package/src/modes/controllers/command-controller.ts +20 -8
- package/src/modes/controllers/extension-ui-controller.ts +56 -257
- package/src/modes/controllers/input-controller.ts +10 -0
- package/src/modes/controllers/runtime-mcp-command-controller.ts +16 -3
- package/src/modes/controllers/selector-controller.ts +238 -77
- package/src/modes/controllers/stt-controller.ts +3 -3
- package/src/modes/interactive-mode.ts +88 -16
- package/src/modes/print-mode.ts +35 -6
- package/src/modes/runtime-init.ts +21 -68
- package/src/modes/theme/defaults/index.ts +2 -0
- package/src/modes/theme/defaults/ouroboros.json +118 -0
- package/src/modes/types.ts +1 -0
- package/src/modes/utils/injected-user-submission.ts +25 -0
- package/src/modes/utils/terminal-bell.ts +15 -1
- package/src/prompts/agent-fragments/ralplan-persistence.md +1 -1
- package/src/prompts/agent-fragments/restricted-bash.md +1 -1
- package/src/prompts/agents/critic.md +1 -1
- package/src/prompts/system/rlm-research.md +1 -1
- package/src/prompts/system/system-prompt.md +0 -2
- package/src/prompts/tools/bash.md +7 -1
- package/src/prompts/tools/browser.md +1 -1
- package/src/prompts/tools/cron.md +6 -6
- package/src/prompts/tools/read.md +0 -2
- package/src/prompts/tools/skill-discovery.md +4 -2
- package/src/runtime-mcp/client.ts +427 -23
- package/src/runtime-mcp/config.ts +37 -5
- package/src/runtime-mcp/manager-pool.test.ts +56 -0
- package/src/runtime-mcp/manager.ts +52 -2
- package/src/runtime-mcp/oauth-discovery.ts +13 -0
- package/src/runtime-mcp/oauth-flow.ts +46 -1
- package/src/runtime-mcp/pool-key.ts +5 -1
- package/src/runtime-mcp/pool.test.ts +9 -0
- package/src/runtime-mcp/protocol.test.ts +353 -0
- package/src/runtime-mcp/protocol.ts +624 -0
- package/src/runtime-mcp/scope-config.ts +78 -0
- package/src/runtime-mcp/tool-bridge.ts +44 -10
- package/src/runtime-mcp/transports/http.ts +84 -13
- package/src/runtime-mcp/types.ts +123 -12
- package/src/sdk/acp/adapter.ts +328 -97
- package/src/sdk/broker/broker.ts +160 -741
- package/src/sdk/broker/ensure.ts +9 -1
- package/src/sdk/broker/lifecycle.ts +510 -116
- package/src/sdk/broker/operation-receipt-ledger.ts +11 -2
- package/src/sdk/broker/process-incarnation.ts +19 -0
- package/src/sdk/broker/session-index.ts +516 -117
- package/src/sdk/broker/startup-failure.ts +28 -5
- package/src/sdk/broker/transport.ts +1 -13
- package/src/sdk/bus/chat-daemon-cli.ts +4 -2
- package/src/sdk/bus/chat-daemon-control.ts +67 -6
- package/src/sdk/bus/chat-daemon-runtime.ts +183 -859
- package/src/sdk/bus/config.ts +13 -0
- package/src/sdk/bus/conversation-store.ts +59 -171
- package/src/sdk/bus/daemon-paths.ts +20 -0
- package/src/sdk/bus/discord-conversation.ts +2 -0
- package/src/sdk/bus/discord-daemon.ts +524 -126
- package/src/sdk/bus/discord-live-provider.ts +206 -79
- package/src/sdk/bus/existing-thread-readiness.ts +4 -97
- package/src/sdk/bus/inbound-reaction-ordering.ts +122 -0
- package/src/sdk/bus/index.ts +2480 -456
- package/src/sdk/bus/kind-aware-reconciliation.ts +204 -34
- package/src/sdk/bus/lifecycle-commands.ts +2 -2
- package/src/sdk/bus/managed-daemon.ts +2 -145
- package/src/sdk/bus/notification-service.ts +196 -0
- package/src/sdk/bus/operator-runtime.ts +1 -1
- package/src/sdk/bus/prompt-reconciliation.ts +24 -15
- package/src/sdk/bus/reconciliation-store.ts +553 -24
- package/src/sdk/bus/session-control.ts +49 -3
- package/src/sdk/bus/slack-conversation.ts +4 -0
- package/src/sdk/bus/slack-daemon.ts +733 -134
- package/src/sdk/bus/slack-live-provider.ts +65 -15
- package/src/sdk/bus/slack-provider.ts +4 -0
- package/src/sdk/bus/slack-thread-binding.ts +9 -104
- package/src/sdk/bus/telegram-adoption-intent.ts +299 -209
- package/src/sdk/bus/telegram-daemon-cli.ts +194 -7
- package/src/sdk/bus/telegram-daemon-contract.ts +265 -19
- package/src/sdk/bus/telegram-daemon-control.ts +3 -13
- package/src/sdk/bus/telegram-daemon-orphan-reap.ts +498 -0
- package/src/sdk/bus/telegram-daemon-owner-registry.ts +176 -0
- package/src/sdk/bus/telegram-daemon.ts +2552 -2280
- package/src/sdk/bus/telegram-reference.ts +1 -226
- package/src/sdk/bus/telegram-setup.ts +2 -2
- package/src/sdk/bus/threaded-render.ts +1 -0
- package/src/sdk/bus/topic-registry.ts +279 -146
- package/src/sdk/cli/rows.ts +2 -35
- package/src/sdk/cli/session-cli.ts +776 -700
- package/src/sdk/client/client.ts +892 -1
- package/src/sdk/host/control/dispatch.ts +93 -58
- package/src/sdk/host/control/index.ts +1 -1
- package/src/sdk/host/control/operations.ts +18 -10
- package/src/sdk/host/control/runtime-gate.ts +40 -0
- package/src/sdk/host/host.ts +63 -12
- package/src/sdk/host/query/handlers.ts +66 -7
- package/src/sdk/host/reverse-leases.ts +2 -2
- package/src/sdk/host/sdk-surface-parity.test.ts +1 -1
- package/src/sdk/host/session-runtime.test.ts +2787 -34
- package/src/sdk/host/session-runtime.ts +1489 -101
- package/src/sdk/host/surface-policy.ts +12 -8
- package/src/sdk/host/types.ts +1 -1
- package/src/sdk/host/websocket-transport.lifecycle.test.ts +31 -59
- package/src/sdk/host/websocket-transport.ts +85 -50
- package/src/sdk/index.ts +2 -1
- package/src/sdk/lifecycle/broker-client.ts +53 -0
- package/src/sdk/lifecycle/client.ts +234 -0
- package/src/sdk/lifecycle/index.ts +3 -0
- package/src/sdk/{bus/recent-activity.ts → lifecycle/recent-sessions.ts} +5 -2
- package/src/sdk/lifecycle/service.ts +720 -0
- package/src/sdk/mcp/server.ts +226 -188
- package/src/sdk/prompt-deadline-lease.ts +55 -0
- package/src/sdk/prompt-deadline-manager.ts +148 -0
- package/src/sdk/prompt-status.ts +11 -3
- package/src/sdk/protocol/operation-inventory.generated.json +272 -129
- package/src/sdk/protocol/operation-registry.ts +71 -8
- package/src/sdk/receipt-state.ts +43 -0
- package/src/sdk/reconciliation-extensions.ts +14 -0
- package/src/sdk/router/index.ts +1 -0
- package/src/sdk/router/session-router.ts +1658 -0
- package/src/sdk/session-list.ts +93 -0
- package/src/sdk/session-reconnect.ts +45 -1
- package/src/sdk/session.ts +716 -120
- package/src/sdk/transport/serve-cli.ts +18 -34
- package/src/session/account-inventory.ts +603 -0
- package/src/session/agent-session.ts +2873 -559
- package/src/session/agent-storage.ts +35 -0
- package/src/session/blob-store.ts +32 -1
- package/src/session/coordinator-tool-label.ts +40 -0
- package/src/session/internal/managed-session-scope.ts +4 -0
- package/src/session/internal/managed-session-storage.ts +199 -31
- package/src/session/messages.ts +1 -1
- package/src/session/secure-token-file.ts +80 -0
- package/src/session/session-manager.ts +757 -57
- package/src/session/session-storage.ts +25 -16
- package/src/session/startup-auth-config.ts +297 -0
- package/src/session/terminal-abort.ts +1253 -0
- package/src/session/yield-queue.ts +57 -15
- package/src/session-import/claude.ts +334 -0
- package/src/session-import/codex.ts +1033 -0
- package/src/session-import/command.ts +77 -0
- package/src/session-import/detect.ts +133 -0
- package/src/session-import/index.ts +7 -0
- package/src/session-import/provider-codex.ts +327 -0
- package/src/session-import/provider-service.ts +457 -0
- package/src/session-import/redact.ts +128 -0
- package/src/session-import/service.ts +1264 -0
- package/src/session-import/types.ts +148 -0
- package/src/setup/paseo/check.ts +213 -0
- package/src/setup/paseo/install-saga.ts +293 -0
- package/src/setup/paseo/json-publisher.ts +263 -0
- package/src/setup/paseo/orchestration-preferences.ts +86 -0
- package/src/setup/paseo/paseo-ownership.ts +224 -0
- package/src/setup/paseo/paseo-setup.ts +253 -0
- package/src/setup/paseo/provider-config.ts +139 -0
- package/src/setup/paseo/remove.ts +183 -0
- package/src/setup/paseo/result-types.ts +79 -0
- package/src/setup/paseo/setup-deps.ts +175 -0
- package/src/setup/paseo/skills-bridge.ts +260 -0
- package/src/skill-state/active-state.ts +21 -11
- package/src/slash-commands/acp-builtins.ts +9 -1
- package/src/slash-commands/builtin-registry.ts +117 -19
- package/src/slash-commands/helpers/credential-switch.ts +143 -0
- package/src/slash-commands/helpers/mcp.ts +9 -3
- package/src/slash-commands/helpers/usage-report.ts +61 -56
- package/src/slash-commands/types.ts +7 -2
- package/src/task/executor.ts +30 -11
- package/src/task/index.ts +66 -7
- package/src/task/render.ts +23 -9
- package/src/tools/ask-answer-registry.ts +23 -7
- package/src/tools/ask.ts +8 -4
- package/src/tools/bash-sleep-advisory.ts +115 -0
- package/src/tools/bash.ts +98 -18
- package/src/tools/browser/attach.ts +71 -3
- package/src/tools/browser/launch.ts +86 -13
- package/src/tools/browser/profile-discovery.ts +57 -7
- package/src/tools/browser/render.ts +8 -1
- package/src/tools/browser.ts +130 -21
- package/src/tools/computer.enforcement.test.ts +1 -1
- package/src/tools/computer.ts +3 -2
- package/src/tools/cron.ts +12 -1
- package/src/tools/image-gen.ts +349 -142
- package/src/tools/index.ts +8 -0
- package/src/tools/job.ts +33 -6
- package/src/tools/monitor.ts +41 -2
- package/src/tools/skill-discovery.ts +21 -29
- package/src/tools/subagent.ts +142 -24
- package/src/tools/todo-contract.ts +55 -3
- package/src/tools/todo-write.ts +4 -3
- package/src/tools/tool-catalog.generated.ts +6 -6
- package/src/tools/ultragoal-ask-guard.ts +10 -3
- package/src/utils/herdr-pane.ts +345 -0
- package/src/utils/title-generator.ts +2 -0
- package/src/web/scrapers/index.ts +6 -4
- package/dist/types/cli/malloc-env-guard.test.d.ts +0 -1
- package/dist/types/defaults/gjc-defaults.test.d.ts +0 -1
- package/dist/types/memory-backend/lazy-loading.test.d.ts +0 -1
- package/dist/types/runtime/boot-ordering.test.d.ts +0 -1
- package/dist/types/runtime/lazy-service.test.d.ts +0 -1
- package/dist/types/runtime/network-prewarm-service.test.d.ts +0 -1
- package/dist/types/runtime/workspace-tree-service.test.d.ts +0 -1
- package/dist/types/runtime-mcp/config.test.d.ts +0 -1
- package/dist/types/runtime-mcp/http.test.d.ts +0 -1
- package/dist/types/runtime-mcp/manager-pool.test.d.ts +0 -1
- package/dist/types/runtime-mcp/pool-key.test.d.ts +0 -1
- package/dist/types/runtime-mcp/pool.test.d.ts +0 -1
- package/dist/types/sdk/bus/lifecycle-control-runtime.d.ts +0 -117
- package/dist/types/sdk/bus/lifecycle-orchestrator.d.ts +0 -141
- package/dist/types/sdk/bus/telegram-cli.d.ts +0 -31
- package/dist/types/sdk/elevation/allowlist.d.ts +0 -20
- package/dist/types/sdk/elevation/audit.d.ts +0 -93
- package/dist/types/sdk/elevation/capability.d.ts +0 -3
- package/dist/types/sdk/elevation/digest.d.ts +0 -72
- package/dist/types/sdk/elevation/dispatch-receipt.d.ts +0 -85
- package/dist/types/sdk/elevation/grant-ledger.d.ts +0 -163
- package/dist/types/sdk/elevation/owner.d.ts +0 -48
- package/dist/types/sdk/host/import-graph.test.d.ts +0 -1
- package/dist/types/sdk/host/sdk-surface-parity.test.d.ts +0 -1
- package/dist/types/sdk/host/session-runtime.test.d.ts +0 -1
- package/dist/types/sdk/host/websocket-transport.lifecycle.test.d.ts +0 -1
- package/dist/types/session/auth-broker-config.d.ts +0 -13
- package/dist/types/session/heap-eviction-artifacts.test.d.ts +0 -1
- package/dist/types/skills/skills.test.d.ts +0 -1
- package/dist/types/slash-commands/notify-command.test.d.ts +0 -1
- package/dist/types/task/token-log.test.d.ts +0 -1
- package/dist/types/tools/computer.enforcement.test.d.ts +0 -1
- package/dist/types/tools/descriptors.test.d.ts +0 -1
- package/scripts/g005-daemon-smoke.ts +0 -180
- package/scripts/g011-daemon-path-smoke.ts +0 -153
- package/src/sdk/bus/lifecycle-control-runtime.ts +0 -1733
- package/src/sdk/bus/lifecycle-orchestrator.ts +0 -489
- package/src/sdk/bus/telegram-cli.ts +0 -212
- package/src/sdk/elevation/allowlist.ts +0 -54
- package/src/sdk/elevation/audit.ts +0 -208
- package/src/sdk/elevation/capability.ts +0 -41
- package/src/sdk/elevation/digest.ts +0 -129
- package/src/sdk/elevation/dispatch-receipt.ts +0 -184
- package/src/sdk/elevation/grant-ledger.ts +0 -1142
- package/src/sdk/elevation/owner.ts +0 -109
- package/src/session/auth-broker-config.ts +0 -109
- /package/dist/types/{ai-core-import-gate.test.d.ts → discovery/claude-hooks.d.ts} +0 -0
- /package/dist/types/{cli/fixture-report.test.d.ts → discovery/codex-hooks.d.ts} +0 -0
- /package/dist/types/sdk/{bus/recent-activity.d.ts → lifecycle/recent-sessions.d.ts} +0 -0
|
@@ -1,18 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Telegram **reference** client for the Gajae-Code SDK.
|
|
3
|
-
*
|
|
4
|
-
* This is an example/template, NOT an upstream-owned integration: it implements
|
|
5
|
-
* the documented WS protocol (see `docs/sdk.md`) so you can copy it
|
|
6
|
-
* to build Discord/Slack/etc. clients with zero upstream changes. The Bot API
|
|
7
|
-
* transport shape is salvaged from the removed `telegram-remote` package.
|
|
8
|
-
*
|
|
9
|
-
* Flow: read the endpoint discovery file -> connect to the session WS -> render
|
|
10
|
-
* `action_needed` to a Telegram chat (inline keyboard for options) -> map button
|
|
11
|
-
* taps / text replies to `reply` frames -> reflect `action_resolved` /
|
|
12
|
-
* `reply_rejected`.
|
|
13
|
-
*
|
|
14
|
-
* Dependency-free: uses global `fetch` and `WebSocket` (Bun/Node 22+).
|
|
15
|
-
*/
|
|
1
|
+
/** Telegram transport and presentation helpers shared by the managed provider adapter. */
|
|
16
2
|
/** One inline-keyboard button. */
|
|
17
3
|
export interface InlineButton {
|
|
18
4
|
text: string;
|
|
@@ -132,36 +118,4 @@ export interface RouteInboundContext {
|
|
|
132
118
|
}
|
|
133
119
|
/** Route a Telegram update to a session/action without I/O. Fail closed under ambiguity. */
|
|
134
120
|
export declare function routeInboundUpdate(update: unknown, ctx: RouteInboundContext): RouteDecision;
|
|
135
|
-
/** Read `{url, token, pid?, stale?}` from an endpoint discovery file. */
|
|
136
|
-
export declare function readEndpoint(path: string): {
|
|
137
|
-
url: string;
|
|
138
|
-
token: string;
|
|
139
|
-
pid?: number;
|
|
140
|
-
stale?: boolean;
|
|
141
|
-
};
|
|
142
|
-
/** A bounded, diagnostic-only notification mirrored to reference-client embedders. */
|
|
143
|
-
export type TelegramReferenceDiagnostic = Readonly<{
|
|
144
|
-
code: "action_unavailable";
|
|
145
|
-
requiredCapabilities: readonly string[];
|
|
146
|
-
}>;
|
|
147
|
-
/** Options for {@link runTelegramReferenceClient}. */
|
|
148
|
-
export interface TelegramReferenceOptions {
|
|
149
|
-
botToken: string;
|
|
150
|
-
chatId: string;
|
|
151
|
-
endpointFile: string;
|
|
152
|
-
apiBase?: string;
|
|
153
|
-
fetchImpl?: typeof fetch;
|
|
154
|
-
sound?: TelegramNotificationSound;
|
|
155
|
-
/**
|
|
156
|
-
* Additive mirror of bounded logger diagnostics. It never receives tokens,
|
|
157
|
-
* identifiers, raw frames, Telegram content, or WebSocket replies.
|
|
158
|
-
*/
|
|
159
|
-
onDiagnostic?: (diagnostic: TelegramReferenceDiagnostic) => void;
|
|
160
|
-
}
|
|
161
|
-
/**
|
|
162
|
-
* Run the reference bridge until the WebSocket closes. Sends `action_needed` to
|
|
163
|
-
* the chat and forwards taps/text as replies. This is a minimal example loop;
|
|
164
|
-
* production clients add reconnection, multi-chat routing, and persistence.
|
|
165
|
-
*/
|
|
166
|
-
export declare function runTelegramReferenceClient(opts: TelegramReferenceOptions): Promise<void>;
|
|
167
121
|
export {};
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Forum-topic registry for eligible orchestration sessions on the threaded
|
|
3
|
+
* Telegram surface.
|
|
3
4
|
*
|
|
4
|
-
* Each
|
|
5
|
-
* daemon-created topics without deleting their durable
|
|
6
|
-
* successors move inactive records into retained history before
|
|
7
|
-
* active authority. The registry also tracks whether the one-time
|
|
8
|
-
* header has already been pinned.
|
|
5
|
+
* Each eligible orchestration session owns one active Telegram forum topic.
|
|
6
|
+
* Remote archive closes daemon-created topics without deleting their durable
|
|
7
|
+
* records; rotated successors move inactive records into retained history before
|
|
8
|
+
* creating a new active authority. The registry also tracks whether the one-time
|
|
9
|
+
* identity header has already been pinned.
|
|
9
10
|
*
|
|
10
11
|
* State is a plain serialisable map persisted beside the daemon state files;
|
|
11
12
|
* topic creation is injected so this module is pure and unit-testable without a
|
|
@@ -51,6 +52,10 @@ export interface TopicRecord {
|
|
|
51
52
|
authorityState?: TopicLifecycleState;
|
|
52
53
|
/** Telegram chat and endpoint authority last proven to use this topic. */
|
|
53
54
|
chatId?: string;
|
|
55
|
+
/** Stable provider binding; never contains SDK endpoint or attachment identity. */
|
|
56
|
+
telegramBinding?: TelegramTopicBinding;
|
|
57
|
+
/** Why this record is archive-fenced; absence means no remote archive is authorized. */
|
|
58
|
+
archiveReason?: "session_closed" | "notification_subscription_removed" | "create_compensation";
|
|
54
59
|
/** Canonical endpoint tuple (URL + token) that currently holds the lease. */
|
|
55
60
|
endpointKey?: string;
|
|
56
61
|
/** Authenticated endpoint authority digest, excluding transport presentation. */
|
|
@@ -78,6 +83,8 @@ export interface TopicCreateClaim {
|
|
|
78
83
|
leaseOwner?: string;
|
|
79
84
|
authorityEpoch: number;
|
|
80
85
|
createdAt: number;
|
|
86
|
+
telegramBinding?: TelegramTopicBinding;
|
|
87
|
+
/** Legacy v2 input only; never emitted by serialize(). */
|
|
81
88
|
binding?: TopicEndpointBinding;
|
|
82
89
|
}
|
|
83
90
|
export interface ArchiveJob {
|
|
@@ -103,8 +110,8 @@ export interface TopicRegistryState {
|
|
|
103
110
|
topics: Record<string, TopicRecord>;
|
|
104
111
|
/** Durable lifecycle epochs retained after an archive starts. */
|
|
105
112
|
fences?: Record<string, number>;
|
|
106
|
-
/** Closed
|
|
107
|
-
closedEndpoints?: Record<string,
|
|
113
|
+
/** Closed durable Telegram bindings; values intentionally contain no SDK endpoint identity. */
|
|
114
|
+
closedEndpoints?: Record<string, TelegramTopicBinding>;
|
|
108
115
|
/** Persistent host identity used to distinguish concurrent installations. */
|
|
109
116
|
installationHostId?: string;
|
|
110
117
|
/** Bounded durable archive work; no topic record is physically deleted. */
|
|
@@ -122,11 +129,20 @@ export interface TopicRegistryCasAuthority {
|
|
|
122
129
|
read(): Promise<TopicRegistryState | undefined>;
|
|
123
130
|
compareAndSet(expectedGeneration: number, next: TopicRegistryState): Promise<boolean>;
|
|
124
131
|
}
|
|
132
|
+
/** Durable Telegram authority. This is the only binding shape writers persist. */
|
|
133
|
+
export interface TelegramTopicBinding {
|
|
134
|
+
chatId: string;
|
|
135
|
+
transport: "telegram";
|
|
136
|
+
}
|
|
137
|
+
export type TopicArchiveReason = NonNullable<TopicRecord["archiveReason"]>;
|
|
125
138
|
/** Authenticated runtime binding for a durable topic lease. */
|
|
126
139
|
export interface TopicEndpointBinding {
|
|
127
140
|
chatId: string;
|
|
128
|
-
|
|
129
|
-
|
|
141
|
+
transport?: "telegram";
|
|
142
|
+
logicalSessionId?: string;
|
|
143
|
+
/** Legacy input-only fields. They are never authority or persistence fields. */
|
|
144
|
+
endpointKey?: string;
|
|
145
|
+
endpointDigest?: string;
|
|
130
146
|
endpointGeneration?: number;
|
|
131
147
|
}
|
|
132
148
|
/** Discriminated durable endpoint authority for identity-less replay admission. */
|
|
@@ -239,9 +255,9 @@ export declare class TopicRegistry {
|
|
|
239
255
|
* incumbents, cross-chat records, malformed evidence, collisions, and delete
|
|
240
256
|
* fences remain fail-closed.
|
|
241
257
|
*/
|
|
242
|
-
bindEndpoint(sessionId: string, binding: TopicEndpointBinding,
|
|
258
|
+
bindEndpoint(sessionId: string, binding: TopicEndpointBinding, _activeEndpointKeys?: ReadonlySet<string>, _allowEndpointRotation?: boolean): "bound" | "unchanged" | "rejected";
|
|
243
259
|
/** Undo a failed durable endpoint migration without disturbing concurrent metadata writers. */
|
|
244
|
-
restoreEndpointBinding(sessionId: string, expected: TopicEndpointBinding, previous: Pick<TopicRecord, "chatId"
|
|
260
|
+
restoreEndpointBinding(sessionId: string, expected: TopicEndpointBinding, previous: Pick<TopicRecord, "chatId">): boolean;
|
|
245
261
|
/**
|
|
246
262
|
* Return the existing active topic for `sessionId`, or create one via
|
|
247
263
|
* `create` (called only on first use).
|
|
@@ -296,28 +312,28 @@ export declare class TopicRegistry {
|
|
|
296
312
|
/** Restore the exact archive fence after a failed compensation publication. */
|
|
297
313
|
restoreArchiveFence(snapshot: TopicArchiveAuthoritySnapshot): boolean;
|
|
298
314
|
/** Fence new work before the remote archive starts, including an absent in-flight create. */
|
|
299
|
-
beginArchive(sessionId: string, hostId
|
|
315
|
+
beginArchive(sessionId: string, hostId: string | undefined, now: number, reason: TopicArchiveReason): TopicRecord | undefined;
|
|
300
316
|
/** Verify the durable archive initiator immediately before remote dispatch. */
|
|
301
317
|
archiveAuthorityAllows(sessionId: string, hostId: string, pairedChatId: string, now: number): boolean;
|
|
302
318
|
/** @deprecated Production dispatch must provide the current paired chat id. */
|
|
303
319
|
archiveAuthorityAllows(sessionId: string, hostId: string, now: number): boolean;
|
|
304
320
|
/** Retain an accepted create as deletion-fenced before remote compensation can begin. */
|
|
305
|
-
fenceAcceptedCreate(sessionId: string, topicId: string, now?: () => number, name?: string, binding?: TopicEndpointBinding, topicOrigin?: TopicRecord["topicOrigin"], archiveChatId?: string): TopicRecord;
|
|
321
|
+
fenceAcceptedCreate(sessionId: string, topicId: string, now?: () => number, name?: string, binding?: TopicEndpointBinding, topicOrigin?: TopicRecord["topicOrigin"], archiveChatId?: string, reason?: TopicArchiveReason): TopicRecord;
|
|
306
322
|
/** Fence an accepted create only when its exact creator lease still owns the record. */
|
|
307
|
-
fenceAcceptedCreateForLease(sessionId: string, topicId: string, creationLeaseEpoch: number, hostId: string, now?: () => number, name?: string, binding?: TopicEndpointBinding, topicOrigin?: TopicRecord["topicOrigin"], archiveChatId?: string): TopicRecord | undefined;
|
|
323
|
+
fenceAcceptedCreateForLease(sessionId: string, topicId: string, creationLeaseEpoch: number, hostId: string, now?: () => number, name?: string, binding?: TopicEndpointBinding, topicOrigin?: TopicRecord["topicOrigin"], archiveChatId?: string, reason?: TopicArchiveReason): TopicRecord | undefined;
|
|
308
324
|
/** Wait for a revoked create to settle before admitting a later lifecycle epoch. */
|
|
309
325
|
awaitInflight(sessionId: string): Promise<void>;
|
|
310
326
|
/**
|
|
311
327
|
* Retain a topic record after a definite remote archive only while the exact
|
|
312
328
|
* dispatched authority epoch is still current.
|
|
313
329
|
*/
|
|
314
|
-
settleArchive(sessionId: string, topicId: string, dispatchedAuthorityEpoch: number): boolean;
|
|
330
|
+
settleArchive(sessionId: string, topicId: string, dispatchedAuthorityEpoch: number, reason: TopicArchiveReason): boolean;
|
|
315
331
|
/** Durable archive jobs that are eligible for a retry at `now`. */
|
|
316
332
|
archivePendingSessionIds(now?: number): string[];
|
|
317
333
|
/** Durable/manual recovery candidates that exceeded the automatic archive retry budget. */
|
|
318
334
|
archiveExhaustedSessionIds(): string[];
|
|
319
335
|
/** Persist an indefinitely discoverable retry after an ambiguous archive result. */
|
|
320
|
-
scheduleArchiveRetry(sessionId: string, now: number, diagnostic?: string): ArchiveJob | undefined;
|
|
336
|
+
scheduleArchiveRetry(sessionId: string, now: number, reason: TopicArchiveReason, diagnostic?: string): ArchiveJob | undefined;
|
|
321
337
|
/** Serialise active records plus unpublished staged creates for atomic commit. */
|
|
322
338
|
serialize(): TopicRegistryState;
|
|
323
339
|
}
|
|
@@ -4,9 +4,8 @@
|
|
|
4
4
|
* Every semantic verb renders its output through these rows so machine
|
|
5
5
|
* consumers get one deterministic, versioned envelope per verb. Credentials
|
|
6
6
|
* are never part of the row schema: broker `session.list` rows carry no
|
|
7
|
-
* credentials,
|
|
8
|
-
*
|
|
9
|
-
* pass-through host payloads are redacted recursively before rendering.
|
|
7
|
+
* credentials, and pass-through host payloads are redacted recursively before
|
|
8
|
+
* rendering.
|
|
10
9
|
*/
|
|
11
10
|
export declare const SESSION_ROWS_VERSION = 1;
|
|
12
11
|
export type SdkSessionActivityState = "active" | "idle";
|
|
@@ -80,14 +79,6 @@ export declare function stripSecretFields(value: unknown): unknown;
|
|
|
80
79
|
* index shapes.
|
|
81
80
|
*/
|
|
82
81
|
export declare function toSessionRowV1(value: unknown): SdkSessionRowV1;
|
|
83
|
-
/**
|
|
84
|
-
* Offline inspect row projected from a local SDK endpoint discovery record.
|
|
85
|
-
* The discovery record carries the endpoint credential (`url`/`token`); neither
|
|
86
|
-
* is ever projected into the row. `path` is the endpoint file
|
|
87
|
-
* `<stateRoot>/sdk/<sessionId>.json`, so the state root is recovered from the
|
|
88
|
-
* path when the layout matches.
|
|
89
|
-
*/
|
|
90
|
-
export declare function toOfflineSessionRowV1(value: unknown): SdkSessionRowV1;
|
|
91
82
|
export declare function toCheckpointRecordV1(value: unknown): SdkCheckpointRecordV1 | undefined;
|
|
92
83
|
export declare function toRetentionGapV1(value: unknown): SdkRetentionGapV1 | undefined;
|
|
93
84
|
/** Projects a transcript entry or ring event into a tail item with dedupe keys. */
|
|
@@ -1,51 +1,41 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export type SdkSessionCliAction = "list" | "inspect" | "send" | "status" | "tail" | "
|
|
1
|
+
import { SessionRouter } from "../router";
|
|
2
|
+
export type SdkSessionCliAction = "list" | "inspect" | "send" | "status" | "tail" | "raw" | "control" | "query" | "global";
|
|
3
3
|
export type SdkSessionCliRawKind = "control" | "query" | "global";
|
|
4
4
|
export interface SdkSessionCliArgs {
|
|
5
5
|
action?: string;
|
|
6
|
-
/** Raw dispatch kind when action is "raw" (control | query | global). */
|
|
7
6
|
rawAction?: string;
|
|
8
7
|
sessionId?: string;
|
|
9
|
-
/** Caller-chosen operation reference (ULID) for `send`; required target for `status`. */
|
|
10
8
|
opRef?: string;
|
|
11
9
|
operation?: string;
|
|
12
10
|
query?: string;
|
|
13
|
-
/** Convenience `send` body: forwarded as the `text` field of turn.prompt. */
|
|
14
11
|
text?: string;
|
|
15
12
|
jsonInput?: string;
|
|
16
13
|
jsonInputFile?: string;
|
|
17
14
|
jsonInputStdin?: boolean;
|
|
18
15
|
idempotencyKey?: string;
|
|
19
|
-
elevationRequestId?: string;
|
|
20
|
-
operationKind?: OperationKind;
|
|
21
16
|
confirm?: boolean;
|
|
22
|
-
/** Raw query continuation cursor, or a saved checkpoint token to resume `tail` from (re-minted per connection). */
|
|
23
17
|
cursor?: string;
|
|
24
|
-
showEndpointCredential?: boolean;
|
|
25
|
-
yes?: boolean;
|
|
26
|
-
/** `send --wait`: poll turn.prompt_status until terminal or the wait window elapses. */
|
|
27
18
|
wait?: boolean;
|
|
28
|
-
/** Bounded wait for `send --wait`, `status`, and live `tail` follow. */
|
|
29
19
|
timeoutMs?: number;
|
|
30
|
-
/** `tail --strict`: fail closed on retention gaps (exit 1 retention_gap). */
|
|
31
20
|
strict?: boolean;
|
|
32
|
-
/** `tail --until-idle`: exit once the observed event stream reaches a terminal turn state. */
|
|
33
21
|
untilIdle?: boolean;
|
|
34
|
-
/** `tail --all-events`: include every event-ring kind instead of the tail subset. */
|
|
35
22
|
allEvents?: boolean;
|
|
36
23
|
repo?: string;
|
|
37
24
|
agentDir?: string;
|
|
38
25
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
*/
|
|
26
|
+
export interface RetainedTranscriptTailReader {
|
|
27
|
+
readonly size: number;
|
|
28
|
+
readRange(start: number, end: number): Promise<Uint8Array>;
|
|
29
|
+
}
|
|
30
|
+
/** Creates a lowercase ULID operation reference for prompt reconciliation. */
|
|
45
31
|
export declare function createOperationRef(now?: number): string;
|
|
32
|
+
/** Exported for tests: each status poll must stay inside the caller's wait window. */
|
|
33
|
+
export declare function waitForTerminalStatus(router: SessionRouter, sessionId: string, clientRef: string, timeoutMs: number | undefined): Promise<{
|
|
34
|
+
terminal: boolean;
|
|
35
|
+
status: string;
|
|
36
|
+
detail: unknown;
|
|
37
|
+
}>;
|
|
38
|
+
export declare function scanRetainedTranscriptTail(reader: RetainedTranscriptTailReader): Promise<unknown[]>;
|
|
46
39
|
export declare function runTail(repo: string, agentDir: string, sessionId: string, args: SdkSessionCliArgs): Promise<unknown>;
|
|
47
|
-
/**
|
|
48
|
-
* Runs the `gjc sdk session` command family: semantic verbs (list, inspect,
|
|
49
|
-
* send, status, tail) plus the explicit raw control/query/global hatch.
|
|
50
|
-
*/
|
|
40
|
+
/** Runs the broker-bound `gjc sdk session` command family without exposing endpoint credentials. */
|
|
51
41
|
export declare function runSdkSessionCli(args: SdkSessionCliArgs, writeOutput?: (value: unknown) => void, setExitCode?: (exitCode: 1 | 2) => void): Promise<void>;
|
|
@@ -1 +1,97 @@
|
|
|
1
|
-
export
|
|
1
|
+
export type SdkErrorCode = "invalid_input" | "unknown_operation" | "not_found" | "unavailable" | "timeout" | "connection_closed" | "uncertain_after_send" | "endpoint_credential_forbidden" | (string & {});
|
|
2
|
+
export declare class SdkClientError extends Error {
|
|
3
|
+
readonly code: SdkErrorCode;
|
|
4
|
+
readonly details: unknown;
|
|
5
|
+
/**
|
|
6
|
+
* Reconnect-cycle diagnostics, separate from `details` because `details` is an
|
|
7
|
+
* established contract: callers read the terminating transport error straight off
|
|
8
|
+
* it (`session-cli.ts` matches `details.code` against `ENOENT`/`ECONNREFUSED`, and
|
|
9
|
+
* lifecycle callers cast it to a sent record). Wrapping that value would silently
|
|
10
|
+
* break every such reader, so the new attribution rides alongside it instead.
|
|
11
|
+
*/
|
|
12
|
+
readonly reconnect?: SdkReconnectExhaustedDetails;
|
|
13
|
+
constructor(code: SdkErrorCode, message: string, details?: unknown, reconnect?: SdkReconnectExhaustedDetails);
|
|
14
|
+
}
|
|
15
|
+
export type SdkReconnectTerminationReason = "attempts_exhausted" | "deadline" | "cancelled";
|
|
16
|
+
/**
|
|
17
|
+
* Reconnect-cycle termination diagnostics. `attemptsConsumed` counts retry slots,
|
|
18
|
+
* not socket opens: the initial open is free, so the loop can open one more socket
|
|
19
|
+
* than `attemptBudget`. Both values are therefore directly comparable.
|
|
20
|
+
*
|
|
21
|
+
* `reason` is authoritative. `attemptsConsumed < attemptBudget` is corroborating
|
|
22
|
+
* evidence of truncation, not a classifier: a zero-attempt client that trips its
|
|
23
|
+
* deadline immediately reports `0 === 0` and is still deadline-terminated.
|
|
24
|
+
*/
|
|
25
|
+
export interface SdkReconnectExhaustedDetails {
|
|
26
|
+
readonly attemptsConsumed: number;
|
|
27
|
+
readonly attemptBudget: number;
|
|
28
|
+
readonly elapsedMs: number;
|
|
29
|
+
readonly reason: SdkReconnectTerminationReason;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Deadline a one-shot request client waits for a reply. Long-lived session
|
|
33
|
+
* clients override it per request; see `SESSION_REQUEST_TIMEOUT_MS`.
|
|
34
|
+
*/
|
|
35
|
+
export declare const DEFAULT_SDK_REQUEST_TIMEOUT_MS = 10000;
|
|
36
|
+
export interface SdkClientOptions {
|
|
37
|
+
timeoutMs?: number;
|
|
38
|
+
/** Absolute wall-clock deadline shared by connect, hello, retry, and request work. */
|
|
39
|
+
deadline?: number;
|
|
40
|
+
reconnectAttempts?: number;
|
|
41
|
+
reconnectBackoffMs?: number;
|
|
42
|
+
/**
|
|
43
|
+
* Per-attempt ceiling for the exponential reconnect backoff. A long reconnect
|
|
44
|
+
* budget must keep probing frequently instead of sleeping for tens of seconds
|
|
45
|
+
* on its last attempts. Defaults to 2s.
|
|
46
|
+
*/
|
|
47
|
+
reconnectMaxBackoffMs?: number;
|
|
48
|
+
}
|
|
49
|
+
export interface SdkRequestOptions {
|
|
50
|
+
timeoutMs?: number;
|
|
51
|
+
idempotencyKey?: string;
|
|
52
|
+
confirm?: boolean;
|
|
53
|
+
}
|
|
54
|
+
export type SdkFrame = Record<string, unknown>;
|
|
55
|
+
/** Request identity retained after an uncertain send for lifecycle reconciliation. */
|
|
56
|
+
export interface SdkSentRecord {
|
|
57
|
+
readonly id: string;
|
|
58
|
+
readonly operation?: string;
|
|
59
|
+
readonly idempotencyKey?: string;
|
|
60
|
+
readonly fingerprint: string;
|
|
61
|
+
}
|
|
62
|
+
export type SdkFrameHandler = (frame: SdkFrame) => void;
|
|
63
|
+
export type SdkReconnectHandler = () => void;
|
|
64
|
+
export type SdkReconnectFailedHandler = (error: SdkClientError) => void;
|
|
65
|
+
/**
|
|
66
|
+
* Transport facts attached to a request timeout before an outcome is known.
|
|
67
|
+
* A timeout after send is surfaced as `uncertain_after_send` with an
|
|
68
|
+
* {@link SdkSentRecord} in its details.
|
|
69
|
+
*/
|
|
70
|
+
export interface SdkRequestTimeoutDetails {
|
|
71
|
+
requestId: string;
|
|
72
|
+
requestSent: boolean;
|
|
73
|
+
}
|
|
74
|
+
/** A transport-only v3 SDK WebSocket client with no host or session authority. */
|
|
75
|
+
export declare class SdkClient {
|
|
76
|
+
#private;
|
|
77
|
+
connectionId?: string;
|
|
78
|
+
constructor(url: string, token: string, options?: SdkClientOptions);
|
|
79
|
+
static connect(url: string, token: string, options?: SdkClientOptions): Promise<SdkClient>;
|
|
80
|
+
connect(): Promise<void>;
|
|
81
|
+
/** Resolves once the current WebSocket has received its server hello frame. */
|
|
82
|
+
awaitHello(): Promise<void>;
|
|
83
|
+
onFrame(handler: SdkFrameHandler): () => void;
|
|
84
|
+
onReconnect(handler: SdkReconnectHandler): () => void;
|
|
85
|
+
onReconnectFailed(handler: SdkReconnectFailedHandler): () => void;
|
|
86
|
+
send(frame: SdkFrame): void;
|
|
87
|
+
request(frame: SdkFrame, timeout?: number | {
|
|
88
|
+
timeoutMs?: number;
|
|
89
|
+
idempotencyKey?: string;
|
|
90
|
+
}): Promise<SdkFrame>;
|
|
91
|
+
close(): Promise<void>;
|
|
92
|
+
control(operation: string, input?: Record<string, unknown>, options?: SdkRequestOptions): Promise<unknown>;
|
|
93
|
+
query(query: string, input?: Record<string, unknown>, cursor?: string, options?: SdkRequestOptions): Promise<unknown>;
|
|
94
|
+
global(operation: string, input?: Record<string, unknown>, options?: SdkRequestOptions): Promise<unknown>;
|
|
95
|
+
getSentRecord(id: string): SdkSentRecord | undefined;
|
|
96
|
+
lookupLifecycle(record: SdkSentRecord, timeoutMs?: number): Promise<unknown>;
|
|
97
|
+
}
|
|
@@ -7,8 +7,6 @@ export interface ControlRequest {
|
|
|
7
7
|
expectedRevision?: string;
|
|
8
8
|
idempotencyKey?: string;
|
|
9
9
|
confirm?: boolean;
|
|
10
|
-
/** Top-level elevation claim selector, preserved from the control frame. */
|
|
11
|
-
elevationRequestId?: string;
|
|
12
10
|
}
|
|
13
11
|
export type ControlErrorCode = string;
|
|
14
12
|
export interface ControlError {
|
|
@@ -32,11 +30,6 @@ export declare class TypedControlError extends Error {
|
|
|
32
30
|
export declare class BusyError extends TypedControlError {
|
|
33
31
|
constructor(message?: string);
|
|
34
32
|
}
|
|
35
|
-
/**
|
|
36
|
-
* Build the typed control request from a wire frame. Every runtime transport
|
|
37
|
-
* mapper uses this helper so the top-level elevation claim selector cannot
|
|
38
|
-
* drift between callsites.
|
|
39
|
-
*/
|
|
40
33
|
export declare function controlRequestFromFrame(frame: Record<string, unknown>): ControlRequest;
|
|
41
34
|
/** Dispatches a registry-defined per-session control operation. */
|
|
42
35
|
export declare function dispatchControl(surface: ControlSurface, registryRow: Operation | undefined, request: ControlRequest): Promise<ControlResponse>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { BusyError, type ControlError, type ControlErrorCode, type ControlRequest, type ControlResponse, controlRequestFromFrame, dispatchControl, TypedControlError, } from "./dispatch";
|
|
2
|
-
export type { ControlInput, ControlSurface, ControlValue } from "./operations";
|
|
2
|
+
export type { AbortScope, ControlInput, ControlSurface, ControlValue } from "./operations";
|
|
@@ -1,19 +1,32 @@
|
|
|
1
1
|
export type ControlValue = unknown;
|
|
2
|
+
export type AbortMode = "turn" | "terminal";
|
|
3
|
+
export type AbortScope = "turn" | "owned";
|
|
4
|
+
/**
|
|
5
|
+
* Terminal-mode C04 `turn.abort` input. `scope` selects whether exact causal
|
|
6
|
+
* owned work (background Bash/task jobs, detached subagents) is also stopped
|
|
7
|
+
* (`"owned"`) or left running so its completion can resume the root worker
|
|
8
|
+
* (`"turn"`, the default).
|
|
9
|
+
*/
|
|
10
|
+
export interface TerminalAbortInput {
|
|
11
|
+
mode: "terminal";
|
|
12
|
+
scope?: AbortScope;
|
|
13
|
+
}
|
|
2
14
|
export type ControlInput = Record<string, unknown>;
|
|
3
15
|
/**
|
|
4
16
|
* Narrow host contract used by control dispatch. Implementations adapt an
|
|
5
17
|
* AgentSession and its controllers without exposing those concrete types here.
|
|
6
18
|
*/
|
|
7
19
|
export interface ControlSurface {
|
|
8
|
-
authorizeElevationClaim?(sdkId: string, input: ControlInput, capability: string): boolean;
|
|
9
20
|
prompt(text: string, images?: ControlValue, clientRef?: string): Promise<ControlValue> | ControlValue;
|
|
10
|
-
steer(text: string): Promise<ControlValue> | ControlValue;
|
|
21
|
+
steer(text: string, clientRef?: string): Promise<ControlValue> | ControlValue;
|
|
11
22
|
followUp(text: string): Promise<ControlValue> | ControlValue;
|
|
12
23
|
abort(): Promise<ControlValue> | ControlValue;
|
|
24
|
+
/** Terminal abort: stop the current root turn (and optionally exact owned work). */
|
|
25
|
+
abortTerminal?(input: TerminalAbortInput, idempotencyKey?: string): Promise<ControlValue> | ControlValue;
|
|
13
26
|
abortAndPrompt(text: string): Promise<ControlValue> | ControlValue;
|
|
14
27
|
answerAsk(id: string, answer: ControlValue): Promise<ControlValue> | ControlValue;
|
|
15
|
-
answerGate(id: string, response: ControlValue, expectedSessionId?: string, idempotencyKey?: string
|
|
16
|
-
approvePlan(id: string, choice: ControlValue, expectedSessionId?: string
|
|
28
|
+
answerGate(id: string, response: ControlValue, expectedSessionId?: string, idempotencyKey?: string): Promise<ControlValue> | ControlValue;
|
|
29
|
+
approvePlan(id: string, choice: ControlValue, expectedSessionId?: string): Promise<ControlValue> | ControlValue;
|
|
17
30
|
invokeSkill(name: string, args: ControlValue, clientRef?: string): Promise<ControlValue> | ControlValue;
|
|
18
31
|
setPlanMode(on: boolean): Promise<ControlValue> | ControlValue;
|
|
19
32
|
operateGoal(op: string, objective?: string): Promise<ControlValue> | ControlValue;
|
|
@@ -34,7 +47,7 @@ export interface ControlSurface {
|
|
|
34
47
|
newSession(): Promise<ControlValue> | ControlValue;
|
|
35
48
|
forkSession(): Promise<ControlValue> | ControlValue;
|
|
36
49
|
resumeSession(id: string): Promise<ControlValue> | ControlValue;
|
|
37
|
-
closeSession(): Promise<ControlValue> | ControlValue;
|
|
50
|
+
closeSession(capability?: string): Promise<ControlValue> | ControlValue;
|
|
38
51
|
switchSession(id: string): Promise<ControlValue> | ControlValue;
|
|
39
52
|
branchSession(entryId: string): Promise<ControlValue> | ControlValue;
|
|
40
53
|
renameSession(name: string): Promise<ControlValue> | ControlValue;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Private field carried only on the Broker's endpoint close request.
|
|
3
|
+
*
|
|
4
|
+
* The value is the lifecycle effect marker bound to the serving process. It is
|
|
5
|
+
* never published in endpoint discovery or lifecycle service results; callers
|
|
6
|
+
* that do not hold the Broker's indexed lifecycle record cannot satisfy this
|
|
7
|
+
* gate.
|
|
8
|
+
*/
|
|
9
|
+
export declare const BROKER_RUNTIME_CLOSE_CAPABILITY_FIELD = "__gjcBrokerCloseCapability";
|
|
10
|
+
export declare function brokerRuntimeCloseCapability(input: unknown): string | undefined;
|
|
11
|
+
/** Remove the private close capability before a request is exposed to diagnostics. */
|
|
12
|
+
export declare function redactBrokerRuntimeCloseCapability(frame: Record<string, unknown>): Record<string, unknown>;
|
|
13
|
+
/**
|
|
14
|
+
* Runtime-local authority check for the Broker-only graceful close executor.
|
|
15
|
+
*
|
|
16
|
+
* A lifecycle child receives GJC_LIFECYCLE_REQUEST_ID from the Broker launch
|
|
17
|
+
* environment. Generic SDK requests never receive that private marker.
|
|
18
|
+
*/
|
|
19
|
+
export declare function hasBrokerRuntimeCloseCapability(input: unknown): boolean;
|
|
@@ -34,12 +34,21 @@ export type SessionActivationGate = (input: {
|
|
|
34
34
|
export interface SessionSdkHostOptions extends HostEndpointAdapters {
|
|
35
35
|
control?: (connectionId: string, frame: SdkFrame) => unknown | Promise<unknown>;
|
|
36
36
|
query?: (connectionId: string, frame: SdkFrame) => unknown | Promise<unknown>;
|
|
37
|
+
/** Test/lifecycle seam invoked synchronously before fire-and-forget dispatch. */
|
|
38
|
+
onFrameAdmitted?: (connectionId: string, frame: SdkFrame) => void;
|
|
37
39
|
/** Best-effort diagnostic observation of accepted control/query frames. */
|
|
38
40
|
onRequest?: SdkRequestObserver;
|
|
39
41
|
/** Runs before a control response is sent; identity transitions use sendTerminal. */
|
|
40
|
-
beforeControlResponse?: (connectionId: string, request: SdkFrame, response: SdkFrame, sendTerminal: () => Promise<
|
|
42
|
+
beforeControlResponse?: (connectionId: string, request: SdkFrame, response: SdkFrame, sendTerminal: () => Promise<unknown>) => void | Promise<void>;
|
|
41
43
|
/** Runs only after a successful control response has been sent to the client. */
|
|
42
44
|
afterControlResponse?: (connectionId: string, request: SdkFrame, response: SdkFrame) => void | Promise<void>;
|
|
45
|
+
/**
|
|
46
|
+
* Classifies the awaited control-response write exactly once: `written`
|
|
47
|
+
* (sent), `rejected` (the write threw), or `dropped` (the send adapter
|
|
48
|
+
* deliberately skipped delivery). `afterControlResponse` runs only
|
|
49
|
+
* on `written`. Used to persist monotonic response-state transitions.
|
|
50
|
+
*/
|
|
51
|
+
onControlResponseDelivery?: (connectionId: string, request: SdkFrame, response: SdkFrame, outcome: "written" | "rejected" | "dropped") => void | Promise<void>;
|
|
43
52
|
installProviderDefinitions?: (capability: string, definitions: unknown) => void;
|
|
44
53
|
onProviderDefinitionsRemoved?: (capability: string) => void;
|
|
45
54
|
onReverseCancel?: (requestId: string, reason: "provider_disconnected" | "lease_released") => void;
|
|
@@ -54,6 +63,11 @@ export interface SessionSdkHostOptions extends HostEndpointAdapters {
|
|
|
54
63
|
*/
|
|
55
64
|
activationGate?: SessionActivationGate;
|
|
56
65
|
}
|
|
66
|
+
/** Shared by the replay filter and transport live broadcasts: a connection
|
|
67
|
+
* must see the same capability-gated event kinds on both legs, or live and
|
|
68
|
+
* replay delivery diverge for the same subscriber. */
|
|
69
|
+
export declare const TOOL_ACTIVITY_CAPABILITY = "tool_activity_v2";
|
|
70
|
+
export declare const CAP_GATED_FRAME_KINDS: ReadonlySet<string>;
|
|
57
71
|
/** SDK hosting is independent of notification configuration. Only root sessions host an endpoint. */
|
|
58
72
|
export declare function shouldHostSdk(_settings: unknown, isTopLevel: boolean, env?: NodeJS.ProcessEnv): boolean;
|
|
59
73
|
/** Adapter-based session host; bus wiring owns NotificationServer creation and transport framing. */
|
|
@@ -50,6 +50,11 @@ export interface SessionSurface {
|
|
|
50
50
|
commandId?: string;
|
|
51
51
|
turnId?: string;
|
|
52
52
|
}): unknown | Promise<unknown>;
|
|
53
|
+
getSteerStatus?(selector: {
|
|
54
|
+
commandId?: string;
|
|
55
|
+
turnId?: string;
|
|
56
|
+
clientRef?: string;
|
|
57
|
+
}): unknown | Promise<unknown>;
|
|
53
58
|
/** Q27 effective model-profile catalog from the live session registry. */
|
|
54
59
|
getModelProfiles?(): unknown[] | Promise<unknown[]>;
|
|
55
60
|
/**
|
|
@@ -25,7 +25,7 @@ export interface ProviderLease {
|
|
|
25
25
|
export interface ReverseLeaseOptions {
|
|
26
26
|
now?: () => number;
|
|
27
27
|
leaseTtlMs?: number;
|
|
28
|
-
sendFrame: (connectionId: string, frame: SdkFrame) =>
|
|
28
|
+
sendFrame: (connectionId: string, frame: SdkFrame) => unknown;
|
|
29
29
|
installDefinitions?: (capability: string, definitions: unknown) => void;
|
|
30
30
|
onCancel?: (requestId: string, reason: "provider_disconnected" | "lease_released") => void;
|
|
31
31
|
onDefinitionsRemoved?: (capability: string) => void;
|