@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
|
@@ -9,7 +9,7 @@ export interface SessionSdkTransport {
|
|
|
9
9
|
readonly sessionId: string;
|
|
10
10
|
readonly stateRoot: string;
|
|
11
11
|
readonly token: string;
|
|
12
|
-
sendFrame(connectionId: string, frame: SdkFrame): void | Promise<void>;
|
|
12
|
+
sendFrame(connectionId: string, frame: SdkFrame): void | "written" | "dropped" | Promise<void> | Promise<"written" | "dropped">;
|
|
13
13
|
onFrame(handler: (connectionId: string, frame: SdkFrame) => void): undefined | (() => void);
|
|
14
14
|
onMalformedFrame?(handler: (connectionId: string, message: string) => void): undefined | (() => void);
|
|
15
15
|
start(): Promise<{
|
|
@@ -27,6 +27,105 @@ export interface SessionSdkRuntimeOptions extends Omit<SessionSdkHostOptions, "s
|
|
|
27
27
|
/** Mutable shadow of patched config values merged into query readback. */
|
|
28
28
|
configOverrides?: Map<string, unknown>;
|
|
29
29
|
}
|
|
30
|
+
export interface SdkOnlyInvocationRecord extends InvocationCorrelation {
|
|
31
|
+
kind: InvocationKind | "terminal" | "steer";
|
|
32
|
+
clientRef?: string;
|
|
33
|
+
status: InvocationStatus | "dispatching" | "rejected";
|
|
34
|
+
acceptedAt: number;
|
|
35
|
+
startedAt?: number;
|
|
36
|
+
terminalAt?: number;
|
|
37
|
+
error?: {
|
|
38
|
+
code: string;
|
|
39
|
+
message: string;
|
|
40
|
+
};
|
|
41
|
+
outcome?: unknown;
|
|
42
|
+
pendingOutcome?: unknown;
|
|
43
|
+
skillName?: string;
|
|
44
|
+
/** Steer records (origin/dev) carry their own dispatching lifecycle. */
|
|
45
|
+
textDigest?: string;
|
|
46
|
+
createdAt?: number;
|
|
47
|
+
settledAt?: number;
|
|
48
|
+
}
|
|
49
|
+
export interface SdkOnlyTerminalScopeRecord {
|
|
50
|
+
selection: "turn" | "owned";
|
|
51
|
+
idempotencyKeyHash?: string;
|
|
52
|
+
idempotencyInputHash?: string;
|
|
53
|
+
turnDisposition: "pending" | "stopped" | "uncertain" | "no_effect" | "no_effect_reserved" | "no_effect_marker_failure";
|
|
54
|
+
terminalPublished?: boolean;
|
|
55
|
+
ownedWorkDisposition: "not_requested" | "left_running" | "stopped" | "uncertain";
|
|
56
|
+
automaticDeliveryDisposition: "enabled" | "none";
|
|
57
|
+
resumeOnOwnedCompletion: boolean;
|
|
58
|
+
turnContinuationFence: {
|
|
59
|
+
state: "retained" | "released";
|
|
60
|
+
abortedAttemptEpoch: number;
|
|
61
|
+
blockedContinuationIds: string[];
|
|
62
|
+
predecessorTombstones: string[];
|
|
63
|
+
ownedCompletionPolicy: "enabled" | "disabled";
|
|
64
|
+
};
|
|
65
|
+
responseState: "pending" | "sent" | "delivered" | "failed";
|
|
66
|
+
responsePayloadHash: string;
|
|
67
|
+
replayPayloadHash?: string;
|
|
68
|
+
acceptedAt: number;
|
|
69
|
+
terminalAt?: number;
|
|
70
|
+
}
|
|
71
|
+
export interface SdkOnlyEvictedTerminalKeyEntry {
|
|
72
|
+
keyHash: string;
|
|
73
|
+
inputHash: string;
|
|
74
|
+
turnDisposition?: "stopped" | "uncertain" | "no_effect" | "no_effect_reserved" | "no_effect_marker_failure";
|
|
75
|
+
ownedWorkDisposition?: "not_requested" | "left_running" | "stopped" | "uncertain";
|
|
76
|
+
responseState?: "pending" | "sent" | "delivered" | "failed";
|
|
77
|
+
responsePayloadHash?: string;
|
|
78
|
+
replayPayloadHash?: string;
|
|
79
|
+
terminalPublished?: boolean;
|
|
80
|
+
}
|
|
81
|
+
export interface SdkOnlyReconciliationStore {
|
|
82
|
+
readonly path: string | null;
|
|
83
|
+
load(): Promise<unknown[]>;
|
|
84
|
+
transact(mutator: (records: SdkOnlyInvocationRecord[]) => SdkOnlyInvocationRecord[]): Promise<void>;
|
|
85
|
+
snapshotTerminalScopes(): SdkOnlyTerminalScopeRecord[];
|
|
86
|
+
snapshotTerminalKeys(): SdkOnlyEvictedTerminalKeyEntry[];
|
|
87
|
+
transactTerminalScopes(mutator: (scopes: SdkOnlyTerminalScopeRecord[]) => SdkOnlyTerminalScopeRecord[]): Promise<void>;
|
|
88
|
+
transactTerminalState(mutator: (state: {
|
|
89
|
+
scopes: SdkOnlyTerminalScopeRecord[];
|
|
90
|
+
keys: SdkOnlyEvictedTerminalKeyEntry[];
|
|
91
|
+
}) => {
|
|
92
|
+
scopes: SdkOnlyTerminalScopeRecord[];
|
|
93
|
+
keys: SdkOnlyEvictedTerminalKeyEntry[];
|
|
94
|
+
}): Promise<void>;
|
|
95
|
+
}
|
|
96
|
+
export interface SdkOnlyTerminalAbortSeams {
|
|
97
|
+
getReconciliationStore?: () => SdkOnlyReconciliationStore | undefined;
|
|
98
|
+
getTerminalTurnEpoch: () => number | undefined;
|
|
99
|
+
getActivePromptHandle: () => string | undefined;
|
|
100
|
+
/** Re-read the active prompt's owning SDK connection for the owner-mismatch
|
|
101
|
+
* recheck; falls back to the runtime-tracked owner when absent (review
|
|
102
|
+
* thread P1). */
|
|
103
|
+
getActivePromptOwnerConnectionId?: () => string | undefined;
|
|
104
|
+
cancelPendingPreflightForTerminalAbort: () => void;
|
|
105
|
+
/** Capture the steering admission snapshot at abort ADMISSION (before any
|
|
106
|
+
* durable transaction), so steers admitted while the abort is in flight
|
|
107
|
+
* classify as post-snapshot (review thread P1). */
|
|
108
|
+
captureTerminalAbortSteeringSnapshot?: () => number | undefined;
|
|
109
|
+
/** Discard the steering snapshot when a replay-only abort never settles
|
|
110
|
+
* (review thread P1). */
|
|
111
|
+
discardTerminalAbortSteeringSnapshot?: (token: number) => void;
|
|
112
|
+
/** Rebind the snapshot to the current turn when the requester's turn
|
|
113
|
+
* wins the race (review thread P1). */
|
|
114
|
+
rebindTerminalAbortSteeringSnapshot?: (token: number) => void;
|
|
115
|
+
abortPromptAndWaitWithTerminal: (handle: string, options: {
|
|
116
|
+
graceMs: number;
|
|
117
|
+
terminal?: {
|
|
118
|
+
scope: "turn" | "owned";
|
|
119
|
+
expectedEpoch?: number;
|
|
120
|
+
steeringSnapshotToken?: number;
|
|
121
|
+
};
|
|
122
|
+
}) => Promise<{
|
|
123
|
+
status: string;
|
|
124
|
+
terminalScope?: unknown;
|
|
125
|
+
}>;
|
|
126
|
+
/** Test override for the maximum durable terminal reservation rows. */
|
|
127
|
+
maxDurableTerminalReservationsForTests?: number;
|
|
128
|
+
}
|
|
30
129
|
/**
|
|
31
130
|
* The transport-neutral SDK session runtime.
|
|
32
131
|
*
|
|
@@ -71,13 +170,20 @@ export interface CreateSdkSessionRuntimeOptions {
|
|
|
71
170
|
settings?: Settings;
|
|
72
171
|
/** Mutable shadow of patched config values merged into query readback. */
|
|
73
172
|
configOverrides?: Map<string, unknown>;
|
|
173
|
+
/** Private session-owned terminal-abort capabilities; never exposed on ExtensionContext. */
|
|
174
|
+
terminalAbortSeams?: SdkOnlyTerminalAbortSeams;
|
|
175
|
+
/** Callback when a frame is admitted to the runtime (test harness). */
|
|
176
|
+
onFrameAdmitted?: () => void;
|
|
74
177
|
}
|
|
75
178
|
export interface InvocationCorrelation {
|
|
76
179
|
commandId: string;
|
|
77
180
|
turnId: string;
|
|
78
181
|
}
|
|
79
|
-
export type InvocationKind = "prompt" | "skill";
|
|
182
|
+
export type InvocationKind = "prompt" | "skill" | "steer";
|
|
183
|
+
type InvocationStatus = "accepted" | "in_flight" | "terminal_ok" | "failed" | "uncertain";
|
|
80
184
|
export interface InvocationReconciliation {
|
|
185
|
+
/** Shared v2 reconciliation owner; present for durable terminal admission. */
|
|
186
|
+
readonly store?: SdkOnlyReconciliationStore;
|
|
81
187
|
admit(kind: InvocationKind, clientRef?: string): void;
|
|
82
188
|
release(kind: InvocationKind, clientRef?: string): void;
|
|
83
189
|
noteAccepted(kind: InvocationKind, correlation: InvocationCorrelation, clientRef?: string): Promise<void>;
|
|
@@ -98,10 +204,23 @@ export interface InvocationReconciliation {
|
|
|
98
204
|
clientRef?: string;
|
|
99
205
|
}): unknown;
|
|
100
206
|
hydrate(): Promise<void>;
|
|
207
|
+
claimPendingOutcome(kind: InvocationKind, correlation: InvocationCorrelation, outcome: {
|
|
208
|
+
kind: string;
|
|
209
|
+
code: string;
|
|
210
|
+
message: string;
|
|
211
|
+
provenance?: string;
|
|
212
|
+
}): Promise<unknown>;
|
|
213
|
+
finalizeOutcome(kind: InvocationKind, correlation: InvocationCorrelation, outcome?: {
|
|
214
|
+
kind: string;
|
|
215
|
+
code: string;
|
|
216
|
+
message: string;
|
|
217
|
+
provenance?: string;
|
|
218
|
+
}): Promise<void>;
|
|
101
219
|
}
|
|
102
220
|
export declare function createInvocationReconciliation(options?: {
|
|
103
221
|
stateRoot?: string;
|
|
104
222
|
sessionId?: string;
|
|
223
|
+
store?: SdkOnlyReconciliationStore;
|
|
105
224
|
}): InvocationReconciliation;
|
|
106
225
|
export interface SdkSurfaceFactoryOptions {
|
|
107
226
|
ctx: ExtensionContext;
|
|
@@ -123,12 +242,12 @@ export interface SdkSurfaceFactoryOptions {
|
|
|
123
242
|
turnId?: string;
|
|
124
243
|
clientRef?: string;
|
|
125
244
|
}) => unknown;
|
|
245
|
+
steerStatusLookup?: (selector: {
|
|
246
|
+
commandId?: string;
|
|
247
|
+
turnId?: string;
|
|
248
|
+
clientRef?: string;
|
|
249
|
+
}) => unknown;
|
|
126
250
|
hostTools?: boolean | (() => boolean);
|
|
127
|
-
/** Q30 event-ring watermark source (the live session event stream); synchronous. */
|
|
128
|
-
getEventWatermark?: () => {
|
|
129
|
-
generation: number;
|
|
130
|
-
seq: number;
|
|
131
|
-
};
|
|
132
251
|
}
|
|
133
252
|
/** Shared policy, capability, and query-surface factory for every SDK transport. */
|
|
134
253
|
export interface SdkSurfaceFactory {
|
|
@@ -148,3 +267,4 @@ export declare function createSdkSurfaceFactory(options: SdkSurfaceFactoryOption
|
|
|
148
267
|
export declare function registerSdkOnlyNotificationCommand(api: ExtensionAPI): void;
|
|
149
268
|
/** Install a complete SDK host for a session when notifications are inactive. */
|
|
150
269
|
export declare function createSdkSessionRuntimeExtension(api: ExtensionAPI, options: CreateSdkSessionRuntimeOptions): void;
|
|
270
|
+
export {};
|
|
@@ -15,7 +15,7 @@ export interface HostEndpointAdapters {
|
|
|
15
15
|
sessionId: string;
|
|
16
16
|
stateRoot: string;
|
|
17
17
|
token: string;
|
|
18
|
-
sendFrame: (connectionId: string, frame: SdkFrame) =>
|
|
18
|
+
sendFrame: (connectionId: string, frame: SdkFrame) => "written" | "dropped" | Promise<"written" | "dropped">;
|
|
19
19
|
onFrame: (handler: (connectionId: string, frame: SdkFrame) => void) => undefined | (() => void);
|
|
20
20
|
}
|
|
21
21
|
export interface BrokerIndexWriter {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as fs from "node:fs/promises";
|
|
2
2
|
import type { SessionSdkTransport } from "./session-runtime";
|
|
3
3
|
export interface SdkWebSocketTransportDependencies {
|
|
4
|
-
readonly filesystem?: Pick<typeof fs, "mkdir" | "writeFile" | "chmod" | "rename" | "
|
|
4
|
+
readonly filesystem?: Pick<typeof fs, "mkdir" | "writeFile" | "chmod" | "rename" | "rm" | "stat">;
|
|
5
5
|
readonly serve?: typeof Bun.serve;
|
|
6
6
|
}
|
|
7
7
|
export type SdkTransportLifecycleErrorCode = "endpoint_write_failed" | "endpoint_chmod_failed" | "endpoint_remove_failed" | "server_stop_failed";
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
export { MODEL_PROFILE_DISCOVERY_QUERY, MODEL_PROFILE_ERROR_DETAIL_MAX_BYTES, type ModelProfileCatalogItem, type ModelProfileErrorCode, type ModelProfileErrorDetails, ModelProfileRegistryError, type ModelProfileRegistryErrorDetails, type UnknownModelProfileDetails, UnknownModelProfileError, } from "../config/model-profile-contract";
|
|
2
2
|
export * as bus from "./bus";
|
|
3
|
-
export * from "./client";
|
|
4
3
|
export * as host from "./host";
|
|
4
|
+
export * as lifecycle from "./lifecycle";
|
|
5
5
|
export * as mcp from "./mcp";
|
|
6
6
|
export type { Q10CurrentThinkingLevel, Q10Model, Q10SettableThinkingLevel, Q10ThinkingCapabilities, Q10ThinkingEffort, Q10ThinkingMode, } from "./models";
|
|
7
7
|
export * from "./prompt-status";
|
|
8
8
|
export type { ActiveProviderConnectionKind, ActiveProviderDescriptor } from "./providers";
|
|
9
|
+
export * as router from "./router";
|
|
9
10
|
export * from "./session";
|
|
10
11
|
export * from "./session-directory";
|
|
11
12
|
export * from "./turn-result";
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type SessionLifecycleClient, type SessionLifecycleClientRequestOptions, type SessionLifecycleOperation, SessionLifecycleService } from "./service";
|
|
2
|
+
/** SDK-core Broker client that keeps Broker credentials inside the lifecycle boundary. */
|
|
3
|
+
export declare class AgentDirSessionLifecycleClient implements SessionLifecycleClient {
|
|
4
|
+
#private;
|
|
5
|
+
constructor(agentDir: string);
|
|
6
|
+
global(operation: SessionLifecycleOperation, input: Record<string, unknown>, options: SessionLifecycleClientRequestOptions): Promise<unknown>;
|
|
7
|
+
}
|
|
8
|
+
export declare function createBrokerSessionLifecycleService(agentDir: string): SessionLifecycleService;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { type ListRecentSessionsResult } from "./recent-sessions";
|
|
2
|
+
import { type SessionCreateOutcome, type SessionLifecycleActor, SessionLifecycleService, type SessionResumeOutcome } from "./service";
|
|
3
|
+
export type ExternalSessionCreateTarget = {
|
|
4
|
+
readonly kind: "existing_path";
|
|
5
|
+
readonly path: string;
|
|
6
|
+
} | {
|
|
7
|
+
readonly kind: "worktree";
|
|
8
|
+
readonly repo: string;
|
|
9
|
+
readonly branch: string;
|
|
10
|
+
} | {
|
|
11
|
+
readonly kind: "plain_dir";
|
|
12
|
+
readonly path: string;
|
|
13
|
+
};
|
|
14
|
+
export interface ExternalSessionResumeTarget {
|
|
15
|
+
readonly sessionIdOrPrefix: string;
|
|
16
|
+
readonly path?: string;
|
|
17
|
+
}
|
|
18
|
+
export type ExternalSessionResumeResult = {
|
|
19
|
+
readonly kind: "result";
|
|
20
|
+
readonly outcome: SessionResumeOutcome;
|
|
21
|
+
} | {
|
|
22
|
+
readonly kind: "not_found";
|
|
23
|
+
} | {
|
|
24
|
+
readonly kind: "ambiguous";
|
|
25
|
+
readonly candidates: readonly {
|
|
26
|
+
readonly sessionId: string;
|
|
27
|
+
readonly path?: string;
|
|
28
|
+
}[];
|
|
29
|
+
} | {
|
|
30
|
+
readonly kind: "unavailable";
|
|
31
|
+
readonly message: string;
|
|
32
|
+
};
|
|
33
|
+
export declare class AgentDirSessionLifecycleService extends SessionLifecycleService {
|
|
34
|
+
#private;
|
|
35
|
+
constructor(agentDir: string);
|
|
36
|
+
createExternal(request: {
|
|
37
|
+
readonly actor: SessionLifecycleActor;
|
|
38
|
+
readonly capability: "session.create";
|
|
39
|
+
readonly requestKey: string;
|
|
40
|
+
readonly target: ExternalSessionCreateTarget;
|
|
41
|
+
readonly modelPreset?: string;
|
|
42
|
+
readonly readinessTimeoutMs?: number;
|
|
43
|
+
}): Promise<SessionCreateOutcome>;
|
|
44
|
+
listRecent(input: {
|
|
45
|
+
readonly cwd: string;
|
|
46
|
+
readonly limit?: number;
|
|
47
|
+
readonly includeInternal?: boolean;
|
|
48
|
+
readonly allWorkspaces?: boolean;
|
|
49
|
+
}): Promise<ListRecentSessionsResult>;
|
|
50
|
+
resumeExternal(request: {
|
|
51
|
+
readonly actor: SessionLifecycleActor;
|
|
52
|
+
readonly capability: "session.resume";
|
|
53
|
+
readonly requestKey: string;
|
|
54
|
+
readonly target: ExternalSessionResumeTarget;
|
|
55
|
+
readonly modelPreset?: string;
|
|
56
|
+
readonly readinessTimeoutMs?: number;
|
|
57
|
+
}): Promise<ExternalSessionResumeResult>;
|
|
58
|
+
}
|
|
59
|
+
export declare function createSessionLifecycleService(agentDir: string): AgentDirSessionLifecycleService;
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
export type SessionLifecycleOperation = "session.create" | "session.fork" | "session.resume" | "session.close" | "session.delete" | "session.list";
|
|
2
|
+
export interface SessionLifecycleActor {
|
|
3
|
+
readonly id: string;
|
|
4
|
+
readonly namespace: string;
|
|
5
|
+
}
|
|
6
|
+
export interface SessionLifecycleClientRequestOptions {
|
|
7
|
+
readonly idempotencyKey?: string;
|
|
8
|
+
readonly timeoutMs?: number;
|
|
9
|
+
}
|
|
10
|
+
/** The deliberately small client surface needed by the lifecycle facade. */
|
|
11
|
+
export interface SessionLifecycleClient {
|
|
12
|
+
global(operation: SessionLifecycleOperation, input: Record<string, unknown>, options: SessionLifecycleClientRequestOptions): Promise<unknown>;
|
|
13
|
+
}
|
|
14
|
+
export interface SessionLifecycleWorktreeTarget {
|
|
15
|
+
readonly enabled: true;
|
|
16
|
+
readonly name?: string;
|
|
17
|
+
}
|
|
18
|
+
export interface SessionLifecycleTranscriptIdentity {
|
|
19
|
+
readonly dev: string;
|
|
20
|
+
readonly ino: string;
|
|
21
|
+
readonly size: number;
|
|
22
|
+
readonly mtimeMs: number;
|
|
23
|
+
readonly mtimeNs: string;
|
|
24
|
+
readonly sha256: string;
|
|
25
|
+
}
|
|
26
|
+
export interface SessionLifecycleSavedSessionIdentity extends SessionLifecycleTranscriptIdentity {
|
|
27
|
+
readonly nlink: string;
|
|
28
|
+
readonly ctimeNs: string;
|
|
29
|
+
}
|
|
30
|
+
export interface SessionLifecycleSavedSession {
|
|
31
|
+
readonly id: string;
|
|
32
|
+
readonly path: string;
|
|
33
|
+
readonly identity: SessionLifecycleSavedSessionIdentity;
|
|
34
|
+
}
|
|
35
|
+
export interface SessionLifecycleCoordinatorTarget {
|
|
36
|
+
readonly coordinatorStateDir?: string;
|
|
37
|
+
readonly coordinatorSessionId?: string;
|
|
38
|
+
readonly coordinatorSessionBranch?: string;
|
|
39
|
+
}
|
|
40
|
+
export interface SessionCreateTarget extends SessionLifecycleCoordinatorTarget {
|
|
41
|
+
readonly cwd: string;
|
|
42
|
+
readonly stateRoot?: string;
|
|
43
|
+
readonly body?: string;
|
|
44
|
+
readonly modelPreset?: string;
|
|
45
|
+
readonly mcpServers?: readonly Record<string, unknown>[];
|
|
46
|
+
readonly worktree?: SessionLifecycleWorktreeTarget;
|
|
47
|
+
readonly readiness?: "immediate" | "deferred";
|
|
48
|
+
readonly readinessTimeoutMs?: number;
|
|
49
|
+
}
|
|
50
|
+
export interface SessionForkTarget extends SessionLifecycleCoordinatorTarget {
|
|
51
|
+
readonly cwd: string;
|
|
52
|
+
readonly stateRoot?: string;
|
|
53
|
+
readonly sourceSessionId?: string;
|
|
54
|
+
readonly sourceSessionPath?: string;
|
|
55
|
+
readonly sourceSessionIdentity?: SessionLifecycleTranscriptIdentity;
|
|
56
|
+
readonly body?: string;
|
|
57
|
+
readonly modelPreset?: string;
|
|
58
|
+
readonly mcpServers?: readonly Record<string, unknown>[];
|
|
59
|
+
readonly worktree?: SessionLifecycleWorktreeTarget;
|
|
60
|
+
readonly readinessTimeoutMs?: number;
|
|
61
|
+
}
|
|
62
|
+
export interface SessionResumeTarget extends SessionLifecycleCoordinatorTarget {
|
|
63
|
+
readonly sessionId: string;
|
|
64
|
+
readonly cwd?: string;
|
|
65
|
+
readonly stateRoot?: string;
|
|
66
|
+
readonly sessionPath?: string;
|
|
67
|
+
readonly sessionIdentity?: SessionLifecycleTranscriptIdentity;
|
|
68
|
+
readonly body?: string;
|
|
69
|
+
readonly modelPreset?: string;
|
|
70
|
+
readonly mcpServers?: readonly Record<string, unknown>[];
|
|
71
|
+
readonly worktree?: SessionLifecycleWorktreeTarget;
|
|
72
|
+
readonly readinessTimeoutMs?: number;
|
|
73
|
+
}
|
|
74
|
+
export interface SessionCloseTarget {
|
|
75
|
+
readonly sessionId: string;
|
|
76
|
+
readonly endpointGeneration?: number;
|
|
77
|
+
readonly endpointIncarnation?: string;
|
|
78
|
+
}
|
|
79
|
+
export interface SessionDeleteTarget {
|
|
80
|
+
readonly sessionId: string;
|
|
81
|
+
readonly cwd?: string;
|
|
82
|
+
readonly stateRoot?: string;
|
|
83
|
+
readonly sessionPath?: string;
|
|
84
|
+
}
|
|
85
|
+
export interface SessionListTarget {
|
|
86
|
+
readonly cwd?: string;
|
|
87
|
+
readonly resolveSessionId?: string;
|
|
88
|
+
}
|
|
89
|
+
interface SessionLifecycleMutationRequestBase<TOperation extends Exclude<SessionLifecycleOperation, "session.list">, TTarget> {
|
|
90
|
+
readonly operation: TOperation;
|
|
91
|
+
readonly actor: SessionLifecycleActor;
|
|
92
|
+
readonly capability: TOperation;
|
|
93
|
+
readonly requestKey: string;
|
|
94
|
+
readonly target: TTarget;
|
|
95
|
+
readonly timeoutMs?: number;
|
|
96
|
+
}
|
|
97
|
+
export type SessionCreateRequest = SessionLifecycleMutationRequestBase<"session.create", SessionCreateTarget>;
|
|
98
|
+
export type SessionForkRequest = SessionLifecycleMutationRequestBase<"session.fork", SessionForkTarget>;
|
|
99
|
+
export type SessionResumeRequest = SessionLifecycleMutationRequestBase<"session.resume", SessionResumeTarget>;
|
|
100
|
+
export type SessionCloseRequest = SessionLifecycleMutationRequestBase<"session.close", SessionCloseTarget>;
|
|
101
|
+
export type SessionDeleteRequest = SessionLifecycleMutationRequestBase<"session.delete", SessionDeleteTarget>;
|
|
102
|
+
export interface SessionListRequest {
|
|
103
|
+
readonly operation: "session.list";
|
|
104
|
+
readonly actor: SessionLifecycleActor;
|
|
105
|
+
readonly capability: "session.list";
|
|
106
|
+
readonly target?: SessionListTarget;
|
|
107
|
+
readonly timeoutMs?: number;
|
|
108
|
+
}
|
|
109
|
+
export type SessionLifecycleRequest = SessionLifecycleMutationRequest | SessionListRequest;
|
|
110
|
+
export type SessionLifecycleMutationRequest = SessionCreateRequest | SessionForkRequest | SessionResumeRequest | SessionCloseRequest | SessionDeleteRequest;
|
|
111
|
+
export type SessionLifecycleCertainty = "terminal" | "retryable" | "cleanup_pending" | "uncertain";
|
|
112
|
+
export interface SessionLifecycleSessionResult {
|
|
113
|
+
readonly sessionId: string;
|
|
114
|
+
readonly cwd?: string;
|
|
115
|
+
readonly endpointGeneration?: number;
|
|
116
|
+
readonly reused?: boolean;
|
|
117
|
+
readonly note?: string;
|
|
118
|
+
}
|
|
119
|
+
export interface SessionLifecycleListEntry {
|
|
120
|
+
readonly sessionId: string;
|
|
121
|
+
readonly live?: boolean;
|
|
122
|
+
readonly endpointGeneration?: number;
|
|
123
|
+
readonly terminalUncertain?: boolean;
|
|
124
|
+
readonly repo?: string;
|
|
125
|
+
}
|
|
126
|
+
export interface SessionLifecycleListResult {
|
|
127
|
+
readonly indexSeq: number;
|
|
128
|
+
readonly sessions: readonly SessionLifecycleListEntry[];
|
|
129
|
+
readonly warnings: readonly string[];
|
|
130
|
+
readonly savedSession?: SessionLifecycleSavedSession;
|
|
131
|
+
}
|
|
132
|
+
export interface SessionCreateResult {
|
|
133
|
+
readonly ok: true;
|
|
134
|
+
readonly operation: "session.create";
|
|
135
|
+
readonly result: SessionLifecycleSessionResult;
|
|
136
|
+
}
|
|
137
|
+
export interface SessionForkResult {
|
|
138
|
+
readonly ok: true;
|
|
139
|
+
readonly operation: "session.fork";
|
|
140
|
+
readonly result: SessionLifecycleSessionResult;
|
|
141
|
+
}
|
|
142
|
+
export interface SessionResumeResult {
|
|
143
|
+
readonly ok: true;
|
|
144
|
+
readonly operation: "session.resume";
|
|
145
|
+
readonly result: SessionLifecycleSessionResult;
|
|
146
|
+
}
|
|
147
|
+
export interface SessionCloseResult {
|
|
148
|
+
readonly ok: true;
|
|
149
|
+
readonly operation: "session.close";
|
|
150
|
+
readonly result: SessionLifecycleSessionResult;
|
|
151
|
+
}
|
|
152
|
+
export interface SessionDeleteResult {
|
|
153
|
+
readonly ok: true;
|
|
154
|
+
readonly operation: "session.delete";
|
|
155
|
+
readonly result: SessionLifecycleSessionResult;
|
|
156
|
+
}
|
|
157
|
+
export interface SessionListSuccessResult {
|
|
158
|
+
readonly ok: true;
|
|
159
|
+
readonly operation: "session.list";
|
|
160
|
+
readonly result: SessionLifecycleListResult;
|
|
161
|
+
}
|
|
162
|
+
export interface SessionLifecycleError {
|
|
163
|
+
readonly code: string;
|
|
164
|
+
readonly message: string;
|
|
165
|
+
}
|
|
166
|
+
export type SessionCreateFailure = {
|
|
167
|
+
readonly ok: false;
|
|
168
|
+
readonly operation: "session.create";
|
|
169
|
+
readonly certainty: SessionLifecycleCertainty;
|
|
170
|
+
readonly error: SessionLifecycleError;
|
|
171
|
+
};
|
|
172
|
+
export type SessionForkFailure = {
|
|
173
|
+
readonly ok: false;
|
|
174
|
+
readonly operation: "session.fork";
|
|
175
|
+
readonly certainty: SessionLifecycleCertainty;
|
|
176
|
+
readonly error: SessionLifecycleError;
|
|
177
|
+
};
|
|
178
|
+
export type SessionResumeFailure = {
|
|
179
|
+
readonly ok: false;
|
|
180
|
+
readonly operation: "session.resume";
|
|
181
|
+
readonly certainty: SessionLifecycleCertainty;
|
|
182
|
+
readonly error: SessionLifecycleError;
|
|
183
|
+
};
|
|
184
|
+
export type SessionCloseFailure = {
|
|
185
|
+
readonly ok: false;
|
|
186
|
+
readonly operation: "session.close";
|
|
187
|
+
readonly certainty: SessionLifecycleCertainty;
|
|
188
|
+
readonly error: SessionLifecycleError;
|
|
189
|
+
};
|
|
190
|
+
export type SessionDeleteFailure = {
|
|
191
|
+
readonly ok: false;
|
|
192
|
+
readonly operation: "session.delete";
|
|
193
|
+
readonly certainty: SessionLifecycleCertainty;
|
|
194
|
+
readonly error: SessionLifecycleError;
|
|
195
|
+
};
|
|
196
|
+
export type SessionListFailure = {
|
|
197
|
+
readonly ok: false;
|
|
198
|
+
readonly operation: "session.list";
|
|
199
|
+
readonly certainty: SessionLifecycleCertainty;
|
|
200
|
+
readonly error: SessionLifecycleError;
|
|
201
|
+
};
|
|
202
|
+
export type SessionCreateOutcome = SessionCreateResult | SessionCreateFailure;
|
|
203
|
+
export type SessionForkOutcome = SessionForkResult | SessionForkFailure;
|
|
204
|
+
export type SessionResumeOutcome = SessionResumeResult | SessionResumeFailure;
|
|
205
|
+
export type SessionCloseOutcome = SessionCloseResult | SessionCloseFailure;
|
|
206
|
+
export type SessionDeleteOutcome = SessionDeleteResult | SessionDeleteFailure;
|
|
207
|
+
export type SessionListOutcome = SessionListSuccessResult | SessionListFailure;
|
|
208
|
+
export type SessionLifecycleResult = SessionCreateOutcome | SessionForkOutcome | SessionResumeOutcome | SessionCloseOutcome | SessionDeleteOutcome | SessionListOutcome;
|
|
209
|
+
/** Shared, side-effect-free validation for lifecycle mutation requests. */
|
|
210
|
+
export type SessionLifecycleMutationValidation = {
|
|
211
|
+
readonly ok: true;
|
|
212
|
+
readonly operation: Exclude<SessionLifecycleOperation, "session.list">;
|
|
213
|
+
readonly actor: SessionLifecycleActor;
|
|
214
|
+
readonly requestKey: string;
|
|
215
|
+
readonly target: Readonly<Record<string, unknown>>;
|
|
216
|
+
} | SessionCreateFailure | SessionForkFailure | SessionResumeFailure | SessionCloseFailure | SessionDeleteFailure;
|
|
217
|
+
/** Derives a stable Broker idempotency key without exposing caller identity to Broker inputs. */
|
|
218
|
+
export declare function deriveSessionLifecycleIdempotencyKey(actor: SessionLifecycleActor, requestKey: string, operation: SessionLifecycleOperation): string;
|
|
219
|
+
/** Validates lifecycle authority and shape without contacting the Broker. */
|
|
220
|
+
export declare function validateSessionLifecycleMutationRequest(request: unknown): SessionLifecycleMutationValidation;
|
|
221
|
+
export declare class SessionLifecycleService {
|
|
222
|
+
#private;
|
|
223
|
+
constructor(client: SessionLifecycleClient);
|
|
224
|
+
execute(request: SessionLifecycleMutationRequest): Promise<SessionCreateOutcome | SessionForkOutcome | SessionResumeOutcome | SessionCloseOutcome | SessionDeleteOutcome>;
|
|
225
|
+
create(request: Omit<SessionCreateRequest, "operation">): Promise<SessionCreateOutcome>;
|
|
226
|
+
fork(request: Omit<SessionForkRequest, "operation">): Promise<SessionForkOutcome>;
|
|
227
|
+
resume(request: Omit<SessionResumeRequest, "operation">): Promise<SessionResumeOutcome>;
|
|
228
|
+
close(request: Omit<SessionCloseRequest, "operation">): Promise<SessionCloseOutcome>;
|
|
229
|
+
delete(request: Omit<SessionDeleteRequest, "operation">): Promise<SessionDeleteOutcome>;
|
|
230
|
+
list(request: Omit<SessionListRequest, "operation">): Promise<SessionListOutcome>;
|
|
231
|
+
}
|
|
232
|
+
export {};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { SessionLifecycleService } from "../lifecycle/service";
|
|
2
|
+
import { SessionRouter } from "../router";
|
|
2
3
|
type Arguments = Record<string, unknown>;
|
|
3
4
|
type JsonRpcRequest = {
|
|
4
5
|
jsonrpc: "2.0";
|
|
@@ -16,22 +17,24 @@ type JsonRpcResponse = {
|
|
|
16
17
|
};
|
|
17
18
|
};
|
|
18
19
|
export interface SdkMcpServerOptions {
|
|
19
|
-
repo?: string;
|
|
20
20
|
agentDir?: string;
|
|
21
|
-
|
|
21
|
+
router?: SessionRouter;
|
|
22
|
+
lifecycleService?: SessionLifecycleService;
|
|
22
23
|
}
|
|
23
24
|
export declare const SDK_MCP_TOOL_NAMES: readonly ["gjc_session_control", "gjc_session_query", "gjc_session_global", "gjc_session_list"];
|
|
24
|
-
/** Creates the model-facing MCP adapter
|
|
25
|
+
/** Creates the model-facing MCP adapter with Router-owned live session authority. */
|
|
25
26
|
export declare function createSdkMcpServer(options?: SdkMcpServerOptions): {
|
|
26
27
|
callTool: (name: string, args?: Arguments) => Promise<unknown>;
|
|
27
28
|
handleJsonRpc: (request: JsonRpcRequest) => Promise<JsonRpcResponse>;
|
|
28
29
|
handle: (request: JsonRpcRequest) => Promise<JsonRpcResponse>;
|
|
30
|
+
start: () => Promise<void>;
|
|
31
|
+
close: () => Promise<void>;
|
|
29
32
|
tools: Record<string, unknown>[];
|
|
30
33
|
};
|
|
31
34
|
/**
|
|
32
35
|
* Runs the SDK MCP server over stdio (newline-delimited JSON-RPC), the shipped
|
|
33
|
-
* `gjc mcp-serve sdk` entrypoint.
|
|
34
|
-
*
|
|
36
|
+
* `gjc mcp-serve sdk` entrypoint. SessionRouter owns live endpoint authority and starts lazily
|
|
37
|
+
* on the first live-session tool, then stops after stdin and in-flight requests drain.
|
|
35
38
|
*/
|
|
36
39
|
export declare function runSdkMcpStdio(options?: SdkMcpServerOptions): Promise<void>;
|
|
37
40
|
export {};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bounded progress-aware lease for the SDK prompt terminal deadline (#4334).
|
|
3
|
+
*
|
|
4
|
+
* The accepted prompt deadline is no longer a fixed wall-clock window from
|
|
5
|
+
* acceptance: fresh *attributable* progress — tool/skill execution events
|
|
6
|
+
* correlated to the exact accepted `commandId`/`turnId` at the prompt/agent
|
|
7
|
+
* runtime boundary — renews the terminal deadline up to a deterministic hard
|
|
8
|
+
* maximum runtime. Unrelated session noise, heartbeats, other turns, streaming
|
|
9
|
+
* chatter, and retry bookkeeping never renew the lease, and there is no
|
|
10
|
+
* unbounded disable value: `maxMs` is always a finite bound.
|
|
11
|
+
*/
|
|
12
|
+
export interface PromptDeadlineLease {
|
|
13
|
+
/** When the prompt was accepted; anchors the hard maximum runtime. */
|
|
14
|
+
readonly acceptedAt: number;
|
|
15
|
+
/** Last verified attributable progress (starts at acceptance). */
|
|
16
|
+
lastProgressAt: number;
|
|
17
|
+
/** Inactivity window: the deadline is this far past the last verified progress. */
|
|
18
|
+
readonly leaseMs: number;
|
|
19
|
+
/** Deterministic hard maximum runtime from acceptance; never unbounded. */
|
|
20
|
+
readonly maxMs: number;
|
|
21
|
+
}
|
|
22
|
+
export declare function createPromptDeadlineLease(input: {
|
|
23
|
+
now: number;
|
|
24
|
+
leaseMs: number;
|
|
25
|
+
maxMs: number;
|
|
26
|
+
}): PromptDeadlineLease;
|
|
27
|
+
/**
|
|
28
|
+
* Current terminal deadline: the inactivity lease from last verified progress,
|
|
29
|
+
* bounded by the hard maximum runtime from acceptance.
|
|
30
|
+
*/
|
|
31
|
+
export declare function promptDeadlineAt(lease: PromptDeadlineLease): number;
|
|
32
|
+
/**
|
|
33
|
+
* Record fresh attributable progress. Monotonic: a stale or equal timestamp
|
|
34
|
+
* never moves the lease backwards, so out-of-order delivery cannot shorten it.
|
|
35
|
+
*/
|
|
36
|
+
export declare function recordAttributableProgress(lease: PromptDeadlineLease, now: number): void;
|
|
37
|
+
/**
|
|
38
|
+
* Whether an agent session event at the prompt/agent runtime boundary is
|
|
39
|
+
* attributable progress for the accepted prompt. Only tool execution
|
|
40
|
+
* boundaries qualify: skills do their work through tools, so skill progress is
|
|
41
|
+
* covered; streaming text/thinking deltas, retries, and bookkeeping are not.
|
|
42
|
+
*/
|
|
43
|
+
export declare function isAttributableProgressEventType(type: string): boolean;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { KindAwareReconciliation } from "./bus/kind-aware-reconciliation";
|
|
2
|
+
import type { InvocationCorrelation, InvocationReconciliation } from "./host/session-runtime";
|
|
3
|
+
type DeadlineReconciliation = InvocationReconciliation | KindAwareReconciliation;
|
|
4
|
+
export type PromptDeadlineOutcome = {
|
|
5
|
+
kind: "failed";
|
|
6
|
+
code: "prompt_deadline_exceeded";
|
|
7
|
+
message: string;
|
|
8
|
+
provenance: "deadline";
|
|
9
|
+
};
|
|
10
|
+
export declare class PromptDeadlineManager {
|
|
11
|
+
#private;
|
|
12
|
+
constructor(options: {
|
|
13
|
+
reconciliation: DeadlineReconciliation;
|
|
14
|
+
getLeaseMs: () => number;
|
|
15
|
+
getMaxMs: () => number;
|
|
16
|
+
now?: () => number;
|
|
17
|
+
});
|
|
18
|
+
onAccepted(correlation: InvocationCorrelation): void;
|
|
19
|
+
onProgress(correlation: InvocationCorrelation, now?: number): void;
|
|
20
|
+
onAttributableEvent(correlation: InvocationCorrelation, eventType: string, now?: number): void;
|
|
21
|
+
clear(correlation: InvocationCorrelation): void;
|
|
22
|
+
clearAll(): void;
|
|
23
|
+
/** For tests: current deadline or undefined if no lease. */
|
|
24
|
+
deadlineAt(correlation: InvocationCorrelation): number | undefined;
|
|
25
|
+
/** For tests: whether a lease exists. */
|
|
26
|
+
has(correlation: InvocationCorrelation): boolean;
|
|
27
|
+
}
|
|
28
|
+
export {};
|