@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,5 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Public DTO contract for Q26 `turn.
|
|
2
|
+
* Public prompt-result DTO contract for canonical Q26 `turn.result` with
|
|
3
|
+
* `kind: "prompt"`, plus the legacy `turn.prompt_status` alias and the `clientRef`
|
|
3
4
|
* correlation field on `turn.prompt`.
|
|
4
5
|
*
|
|
5
6
|
* Semantics:
|
|
@@ -13,14 +14,14 @@
|
|
|
13
14
|
* - The clientRef index is scoped to one live session runtime: identical refs
|
|
14
15
|
* may coexist in different sessions, lookups never cross sessions, a ref
|
|
15
16
|
* conflicts only while its record is retained (`client_ref_conflict`), and
|
|
16
|
-
* after terminal
|
|
17
|
+
* after terminal capacity eviction a ref may be admitted again with the
|
|
17
18
|
* prior outcome unknown — callers MUST NOT reuse a clientRef as a retry
|
|
18
19
|
* mechanism and MUST treat `unknown` as uncertainty, not proof of
|
|
19
20
|
* non-execution.
|
|
20
21
|
* - Prompt records survive process restart: an active prompt is finalized from its
|
|
21
22
|
* durable pending outcome, or as `prompt_failed` when it has none. Only skill
|
|
22
23
|
* records settle as `process_restart`, and a lookup reports `unknown` only after
|
|
23
|
-
* retained-record
|
|
24
|
+
* retained-record capacity eviction.
|
|
24
25
|
* - Q26 tracks prompts accepted through the SDK control surface (which always
|
|
25
26
|
* carries a requesting connection); submissions without a delivery owner are
|
|
26
27
|
* outside the reconciliation contract and hold no reservation.
|
|
@@ -47,6 +48,7 @@ export interface TurnPromptInput {
|
|
|
47
48
|
* prompt that is active at process restart is finalized from its durable pending
|
|
48
49
|
* outcome (or `prompt_failed` when it has none), so it never reports as unknown.
|
|
49
50
|
*/
|
|
51
|
+
import type { ReceiptState } from "./receipt-state";
|
|
50
52
|
export type PromptReconciliationStatus = "accepted" | "in_flight" | "terminal_ok" | "failed";
|
|
51
53
|
export type SdkPromptStopReason = "end_turn" | "max_tokens" | "max_turn_requests" | "refusal" | "cancelled";
|
|
52
54
|
export type SdkPromptFailureCode = "prompt_failed" | "prompt_deadline_exceeded";
|
|
@@ -76,14 +78,17 @@ interface TurnPromptReconciliationIdentity {
|
|
|
76
78
|
}
|
|
77
79
|
export interface TurnPromptReconciliationAccepted extends TurnPromptReconciliationIdentity {
|
|
78
80
|
status: "accepted";
|
|
81
|
+
receiptState: Extract<ReceiptState, "absent">;
|
|
79
82
|
}
|
|
80
83
|
export interface TurnPromptReconciliationInFlight extends TurnPromptReconciliationIdentity {
|
|
81
84
|
status: "in_flight";
|
|
85
|
+
receiptState: Extract<ReceiptState, "absent">;
|
|
82
86
|
/** Epoch milliseconds of the agent_start transition. */
|
|
83
87
|
startedAt: number;
|
|
84
88
|
}
|
|
85
89
|
export interface TurnPromptReconciliationTerminalOk extends TurnPromptReconciliationIdentity {
|
|
86
90
|
status: "terminal_ok";
|
|
91
|
+
receiptState: Exclude<ReceiptState, "absent">;
|
|
87
92
|
startedAt?: number;
|
|
88
93
|
/** Epoch milliseconds of the terminal transition. */
|
|
89
94
|
terminalAt: number;
|
|
@@ -96,6 +101,7 @@ export interface TurnPromptReconciliationTerminalOk extends TurnPromptReconcilia
|
|
|
96
101
|
}
|
|
97
102
|
export interface TurnPromptReconciliationFailed extends TurnPromptReconciliationIdentity {
|
|
98
103
|
status: "failed";
|
|
104
|
+
receiptState: Exclude<ReceiptState, "absent">;
|
|
99
105
|
startedAt?: number;
|
|
100
106
|
terminalAt: number;
|
|
101
107
|
/** Bounded, sanitized failure detail (code safe-token ≤64, message ≤512). */
|
|
@@ -107,6 +113,7 @@ export interface TurnPromptReconciliationFailed extends TurnPromptReconciliation
|
|
|
107
113
|
}
|
|
108
114
|
export interface TurnPromptReconciliationUnknown {
|
|
109
115
|
status: "unknown";
|
|
116
|
+
receiptState: Extract<ReceiptState, "unknown">;
|
|
110
117
|
}
|
|
111
118
|
export type TurnPromptReconciliation = TurnPromptReconciliationAccepted | TurnPromptReconciliationInFlight | TurnPromptReconciliationTerminalOk | TurnPromptReconciliationFailed | TurnPromptReconciliationUnknown;
|
|
112
119
|
/** Result of a successful `turn.prompt` preflight acknowledgement. */
|
|
@@ -4,6 +4,9 @@ export type AdapterDisposition = "native_alias" | "generic_safe" | "machine_only
|
|
|
4
4
|
export type OperationKind = "control" | "global" | "query" | "reverse";
|
|
5
5
|
export type Idempotency = "idempotent" | "ordered" | "fast_lane";
|
|
6
6
|
export type QueryContinuityClass = "stable_prefix" | "retained_revision" | "scalar_snapshot" | "content_addressed";
|
|
7
|
+
/** Legacy kind-specific selectors for canonical Q26 `turn.result`. */
|
|
8
|
+
export declare const TURN_RESULT_PROMPT_ALIAS = "turn.prompt_status";
|
|
9
|
+
export declare const TURN_RESULT_SKILL_ALIAS = "skill.invoke_status";
|
|
7
10
|
export interface Operation {
|
|
8
11
|
id: string;
|
|
9
12
|
sdkId: string;
|
|
@@ -13,6 +16,8 @@ export interface Operation {
|
|
|
13
16
|
errorCodes: string[];
|
|
14
17
|
revisionResource?: string;
|
|
15
18
|
continuityClass?: QueryContinuityClass;
|
|
19
|
+
/** Non-canonical request IDs that resolve to this operation's contract. */
|
|
20
|
+
aliases?: readonly string[];
|
|
16
21
|
adapterDispositions: Record<Adapter, AdapterDisposition>;
|
|
17
22
|
testIds: string[];
|
|
18
23
|
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export type ReceiptState = "absent" | "present" | "missing" | "unknown";
|
|
2
|
+
export type ExecutionState = "accepted" | "in_flight" | "terminal_ok" | "failed" | "cancelled" | "unknown";
|
|
3
|
+
export interface ReceiptSource {
|
|
4
|
+
text?: string | null;
|
|
5
|
+
artifactPath?: string | null;
|
|
6
|
+
}
|
|
7
|
+
export interface TerminalReceiptInput {
|
|
8
|
+
execution: "accepted" | "in_flight" | "completed" | "failed" | "cancelled" | "unknown";
|
|
9
|
+
reportable: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface TerminalReceiptState {
|
|
12
|
+
execution: ExecutionState;
|
|
13
|
+
receipt: ReceiptState;
|
|
14
|
+
}
|
|
15
|
+
export declare function reportableReceipt({ text, artifactPath }: ReceiptSource): boolean;
|
|
16
|
+
export declare function receiptStateForTerminal(source: ReceiptSource): Extract<ReceiptState, "present" | "missing">;
|
|
17
|
+
export declare function reduceTerminalReceiptState(input: TerminalReceiptInput): TerminalReceiptState;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { createKindAwareReconciliation, type KindAwareReconciliation, type ReconciliationKind, type SteerReconciliationResult, } from "./bus/kind-aware-reconciliation";
|
|
2
|
+
export { createReconciliationStore, type DurableExecutionReconciliationRecord, type DurableReconciliationRecord, type DurableSteerReconciliationRecord, type ReconciliationStore, resolveReconciliationSessionFile, } from "./bus/reconciliation-store";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./session-router";
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { type SessionIndex } from "../broker/session-index";
|
|
2
|
+
import { type ActivatedPreparedSession } from "../session-activation";
|
|
3
|
+
/**
|
|
4
|
+
* Exact identity of one attached SDK session endpoint. Providers persist it next to
|
|
5
|
+
* their conversation state and re-prove it before every resume, so it must be derived
|
|
6
|
+
* in exactly one place: a caller that recomputes the digest by hand silently stops
|
|
7
|
+
* matching the moment the bound fields change.
|
|
8
|
+
*/
|
|
9
|
+
export declare function sessionAttachmentAuthorityId(input: {
|
|
10
|
+
sessionId: string;
|
|
11
|
+
generation: number;
|
|
12
|
+
pid: number;
|
|
13
|
+
endpointMtimeMs: number | undefined;
|
|
14
|
+
url: string;
|
|
15
|
+
token: string;
|
|
16
|
+
}): string;
|
|
17
|
+
/** The only capability a provider may retain for an attached SDK session. */
|
|
18
|
+
export interface SessionAttachment {
|
|
19
|
+
readonly sessionId: string;
|
|
20
|
+
readonly authorityId?: string;
|
|
21
|
+
/** Current Router-owned transport identity for this exact attachment's reverse leases. */
|
|
22
|
+
readonly connectionId?: string;
|
|
23
|
+
readonly generation: number;
|
|
24
|
+
isCurrent(): boolean;
|
|
25
|
+
send(frame: Record<string, unknown>): unknown;
|
|
26
|
+
/** Revoke this exact capability after provider admission or replay fails closed. */
|
|
27
|
+
retire?(): Promise<void>;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Provider-local notification capability. This is deliberately not an
|
|
31
|
+
* attachment lease: it carries no endpoint, connection, generation, or
|
|
32
|
+
* authority identity and its cancellation can only stop this subscription.
|
|
33
|
+
*/
|
|
34
|
+
export interface NotificationSubscription {
|
|
35
|
+
readonly sessionId: string;
|
|
36
|
+
readonly subscriptionId: string;
|
|
37
|
+
readonly cursor: {
|
|
38
|
+
readonly generation: number;
|
|
39
|
+
readonly seq: number;
|
|
40
|
+
};
|
|
41
|
+
readonly isActive: () => boolean;
|
|
42
|
+
readonly send: (frame: Record<string, unknown>) => unknown;
|
|
43
|
+
readonly advanceCursor: (generation: number, seq: number) => void;
|
|
44
|
+
readonly cancel: (reason?: string) => void;
|
|
45
|
+
}
|
|
46
|
+
export type NotificationCleanupState = "pending" | "failed" | "completed";
|
|
47
|
+
export interface NotificationCleanupReceipt {
|
|
48
|
+
readonly subscriptionId: string;
|
|
49
|
+
readonly sessionId: string;
|
|
50
|
+
readonly state: NotificationCleanupState;
|
|
51
|
+
readonly reason?: string;
|
|
52
|
+
}
|
|
53
|
+
/** The transport surface Router keeps private behind its attachment capabilities. */
|
|
54
|
+
export interface SessionRouterClient {
|
|
55
|
+
onFrame(handler: (frame: Record<string, unknown>) => void): () => void;
|
|
56
|
+
onReconnect?(handler: () => void): () => void;
|
|
57
|
+
connect?(): Promise<void>;
|
|
58
|
+
request(frame: Record<string, unknown>, options?: {
|
|
59
|
+
timeoutMs?: number;
|
|
60
|
+
}): Promise<Record<string, unknown>>;
|
|
61
|
+
/** Current private transport connection identity, surfaced only through its exact attachment. */
|
|
62
|
+
readonly connectionId?: string;
|
|
63
|
+
close(): Promise<void>;
|
|
64
|
+
send(frame: Record<string, unknown>): void;
|
|
65
|
+
}
|
|
66
|
+
/** One frame after the caller's envelope/payload identity correlation. */
|
|
67
|
+
export interface SessionRouterFrame {
|
|
68
|
+
readonly body: Record<string, unknown>;
|
|
69
|
+
readonly name: string | undefined;
|
|
70
|
+
readonly sessionId: string | undefined;
|
|
71
|
+
readonly generation: number | undefined;
|
|
72
|
+
readonly commandId?: string;
|
|
73
|
+
readonly turnId?: string;
|
|
74
|
+
readonly publicationId?: string;
|
|
75
|
+
readonly seq?: number;
|
|
76
|
+
}
|
|
77
|
+
export type SessionRouterFrameCorrelator = (frame: Record<string, unknown>) => SessionRouterFrame | undefined;
|
|
78
|
+
export interface SessionRouterDeps {
|
|
79
|
+
createClient?: (authority: {
|
|
80
|
+
readonly sessionId: string;
|
|
81
|
+
readonly generation: number;
|
|
82
|
+
readonly pid: number;
|
|
83
|
+
readonly endpointMtimeMs: number;
|
|
84
|
+
}) => Promise<SessionRouterClient>;
|
|
85
|
+
createIndex?: (agentDir: string) => SessionIndex;
|
|
86
|
+
createBrokerClient?: () => Promise<SessionRouterClient>;
|
|
87
|
+
/** Receives only an opaque capability and correlated provider-neutral frames. */
|
|
88
|
+
onFrame?: (attachment: SessionAttachment, frame: SessionRouterFrame) => Promise<void> | void;
|
|
89
|
+
onAttachment?: (attachment: SessionAttachment) => Promise<void> | void;
|
|
90
|
+
/** Called only after the opaque capability becomes externally current. */
|
|
91
|
+
onAttachmentReady?: (attachment: SessionAttachment) => Promise<void> | void;
|
|
92
|
+
/** Called when the Broker index no longer reports an attached session as live. */
|
|
93
|
+
onSessionRemoved?: (attachment: SessionAttachment, reason?: "removed" | "replaced" | "replaced_same_generation") => Promise<void> | void;
|
|
94
|
+
/** Narrow provider surface for notification consumers such as Telegram. */
|
|
95
|
+
onNotificationSubscription?: (subscription: NotificationSubscription) => Promise<void> | void;
|
|
96
|
+
onNotificationSubscriptionReady?: (subscription: NotificationSubscription) => Promise<void> | void;
|
|
97
|
+
onNotificationFrame?: (subscription: NotificationSubscription, frame: SessionRouterFrame) => Promise<void> | void;
|
|
98
|
+
onNotificationSubscriptionRemoved?: (subscription: NotificationSubscription, reason?: "removed" | "replaced" | "replaced_same_generation" | "cancelled") => Promise<void> | void;
|
|
99
|
+
onReconciled?: () => void;
|
|
100
|
+
setInterval?: typeof setInterval;
|
|
101
|
+
clearInterval?: typeof clearInterval;
|
|
102
|
+
setTimeout?: typeof setTimeout;
|
|
103
|
+
clearTimeout?: typeof clearTimeout;
|
|
104
|
+
}
|
|
105
|
+
export type SessionRouterProviderDeps = Pick<SessionRouterDeps, "createClient" | "createIndex" | "createBrokerClient" | "setInterval" | "clearInterval" | "setTimeout" | "clearTimeout" | "onReconciled">;
|
|
106
|
+
export interface SessionRouterOptions {
|
|
107
|
+
agentDir: string;
|
|
108
|
+
deps?: SessionRouterDeps;
|
|
109
|
+
/** Runtime-specific identity validation; Router supplies a conservative fallback. */
|
|
110
|
+
correlateFrame?: SessionRouterFrameCorrelator;
|
|
111
|
+
}
|
|
112
|
+
export type SessionRouterErrorPhase = "pre_send" | "ambiguous";
|
|
113
|
+
export declare class SessionRouterError extends Error {
|
|
114
|
+
readonly phase: SessionRouterErrorPhase;
|
|
115
|
+
constructor(phase: SessionRouterErrorPhase, message?: string);
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Broker-index-backed SDK attachment authority. Providers receive only opaque
|
|
119
|
+
* attachment capabilities; endpoint records and SDK clients remain here.
|
|
120
|
+
*/
|
|
121
|
+
export declare class SessionRouter {
|
|
122
|
+
#private;
|
|
123
|
+
constructor(options: SessionRouterOptions);
|
|
124
|
+
/** Provider-local cleanup outcomes; core authority never depends on these. */
|
|
125
|
+
notificationCleanupReceipts(): NotificationCleanupReceipt[];
|
|
126
|
+
isReady(): boolean;
|
|
127
|
+
/** Starts reconciliation and the index watcher. */
|
|
128
|
+
start(): Promise<void>;
|
|
129
|
+
/** Exposed for deterministic callers and reconciliation tests. */
|
|
130
|
+
reconcile(): Promise<void>;
|
|
131
|
+
/** Ingests a credential-bearing Broker lifecycle result directly into Router custody. */
|
|
132
|
+
adoptLifecycleResult(value: unknown, fallback: {
|
|
133
|
+
sessionId: string;
|
|
134
|
+
cwd: string;
|
|
135
|
+
}): Promise<SessionAttachment>;
|
|
136
|
+
stop(): Promise<void>;
|
|
137
|
+
/** Returns an opaque lease only while the exact attachment generation is live. */
|
|
138
|
+
attachment(sessionId: string, expectedGeneration?: number): SessionAttachment | null;
|
|
139
|
+
/** Sends an SDK command through the current attachment without exposing its client. */
|
|
140
|
+
request(sessionId: string, frame: Record<string, unknown>, expectedGeneration?: number, expectedAttachment?: SessionAttachment, options?: {
|
|
141
|
+
timeoutMs?: number;
|
|
142
|
+
}): Promise<Record<string, unknown>>;
|
|
143
|
+
/** Resolves the exact provider-neutral binding authority for operator adoption. */
|
|
144
|
+
bindingAuthority(sessionId: string): Promise<{
|
|
145
|
+
sessionId: string;
|
|
146
|
+
endpointGeneration: number;
|
|
147
|
+
} | undefined>;
|
|
148
|
+
/** Activates a prepared session through one Router-owned, one-shot SDK client. */
|
|
149
|
+
activatePreparedSession(sessionId: string): Promise<ActivatedPreparedSession>;
|
|
150
|
+
/** Lists saved sessions through Router-owned Broker discovery without exposing credentials or mutation authority. */
|
|
151
|
+
listBrokerSessions(input: Record<string, unknown>, idempotencyKey: string): Promise<Record<string, unknown>>;
|
|
152
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export type SessionListPageRecord = Record<string, unknown>;
|
|
2
|
+
export type SessionListTraversalErrorKind = "malformed_page" | "repeated_cursor" | "page_budget_exceeded";
|
|
3
|
+
export declare class SessionListTraversalError extends Error {
|
|
4
|
+
#private;
|
|
5
|
+
constructor(kind: SessionListTraversalErrorKind);
|
|
6
|
+
get kind(): SessionListTraversalErrorKind;
|
|
7
|
+
}
|
|
8
|
+
export interface SessionListTraversalInputPage {
|
|
9
|
+
readonly sessions: readonly unknown[];
|
|
10
|
+
readonly continuationCursor?: unknown;
|
|
11
|
+
}
|
|
12
|
+
export interface SessionListTraversalPage<TResponse, TPage extends SessionListTraversalInputPage> {
|
|
13
|
+
readonly response: TResponse;
|
|
14
|
+
readonly page: TPage;
|
|
15
|
+
readonly sessions: readonly unknown[];
|
|
16
|
+
readonly continuationCursor?: string;
|
|
17
|
+
}
|
|
18
|
+
export type SessionListPage = SessionListPageRecord & SessionListTraversalInputPage;
|
|
19
|
+
/** Returns a strict session.list page from either a Broker envelope or a direct result record. */
|
|
20
|
+
export declare function sessionListPageFromResponse(value: unknown): SessionListPage | undefined;
|
|
21
|
+
/** Drains bounded Broker session.list pages while rejecting malformed or cyclic continuations. */
|
|
22
|
+
export declare function traverseSessionList<TInput extends Record<string, unknown>, TResponse, TPage extends SessionListTraversalInputPage>(input: TInput, request: (input: TInput) => Promise<TResponse>, pageFromResponse: (response: TResponse) => TPage | undefined): Promise<readonly SessionListTraversalPage<TResponse, TPage>[]>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type SdkClientOptions } from "./client";
|
|
2
2
|
type SessionReconnectOptions = Required<Pick<SdkClientOptions, "reconnectAttempts" | "reconnectBackoffMs" | "reconnectMaxBackoffMs">>;
|
|
3
3
|
/**
|
|
4
4
|
* Reconnect budget for every long-lived SDK session client: ACP sessions and the
|
|
@@ -17,4 +17,46 @@ type SessionReconnectOptions = Required<Pick<SdkClientOptions, "reconnectAttempt
|
|
|
17
17
|
* sleeps stay short and recovery is prompt once the host answers again.
|
|
18
18
|
*/
|
|
19
19
|
export declare const ACP_SESSION_RECONNECT: SessionReconnectOptions;
|
|
20
|
+
/**
|
|
21
|
+
* Post-connect response budget for session-scoped SDK commands dispatched
|
|
22
|
+
* through the Router. It bounds the wait for a reply on an already-connected
|
|
23
|
+
* transport; connecting, reconnecting, and lifecycle work keep their own
|
|
24
|
+
* separate deadlines.
|
|
25
|
+
*
|
|
26
|
+
* The transport default (10s) is sized for one-shot broker requests and is too
|
|
27
|
+
* short for the first query a cold session host answers: Q10
|
|
28
|
+
* (`models.list/current`) collects credentials for every configured profile
|
|
29
|
+
* provider, which on a multi-OAuth setup takes longer than 10s once and
|
|
30
|
+
* milliseconds afterwards. Abandoning that request loses far more than the
|
|
31
|
+
* query — the reply lands after the deadline, so the outcome can only be
|
|
32
|
+
* reported as uncertain after the frame was sent, and ACP discards the session
|
|
33
|
+
* it just created (#4258).
|
|
34
|
+
*
|
|
35
|
+
* The size is the SDK's existing model of what one healthy round trip may cost
|
|
36
|
+
* while the producer is still working: an owner heartbeat window plus a second
|
|
37
|
+
* window for recovery ({@link ACP_SESSION_RECONNECT}, and `SDK_RECONNECT_BUDGET_MS`
|
|
38
|
+
* in `./prompt-watchdog`, both `2 * HEARTBEAT_TTL_MS`). A response budget shorter
|
|
39
|
+
* than the recovery budget would abandon replies the rest of the stack is still
|
|
40
|
+
* waiting to deliver.
|
|
41
|
+
*
|
|
42
|
+
* Session commands are acknowledgement-shaped (`turn.prompt` returns an accepted
|
|
43
|
+
* receipt, not the turn's result), so no legitimate session request needs longer.
|
|
44
|
+
* The tradeoff is that a connected but wedged host is reported after this budget
|
|
45
|
+
* rather than after 10s, including `turn.abort`: ACP awaits that acknowledgement
|
|
46
|
+
* before arming its own settlement grace (`CANCEL_SETTLEMENT_GRACE_MS`), which
|
|
47
|
+
* bounds only the terminal that follows an acknowledged abort.
|
|
48
|
+
*/
|
|
49
|
+
export declare const SESSION_REQUEST_TIMEOUT_MS: number;
|
|
50
|
+
/**
|
|
51
|
+
* Reply budget for `turn.abort`, which cannot use {@link SESSION_REQUEST_TIMEOUT_MS}.
|
|
52
|
+
*
|
|
53
|
+
* A cancel is the user asking for the turn to stop now, and the caller waits for
|
|
54
|
+
* its acknowledgement before anything else can bound the turn: ACP arms its own
|
|
55
|
+
* settlement grace only after `aborted: true` comes back, so an abort that waits
|
|
56
|
+
* the full session budget delays cancellation by that budget and, if it finally
|
|
57
|
+
* rejects, leaves the prompt for the inactivity watchdog instead of the cancel
|
|
58
|
+
* path. Aborting therefore keeps the ordinary one-shot request deadline: the
|
|
59
|
+
* abort is not the query whose cold first answer needed a wider budget (#4258).
|
|
60
|
+
*/
|
|
61
|
+
export declare const SESSION_ABORT_TIMEOUT_MS = 10000;
|
|
20
62
|
export {};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type AgentMessage, type AgentTelemetryConfig, ThinkingLevel } from "@gajae-code/agent-core";
|
|
2
2
|
import { type AuthCredentialSelector, type Model, type ProviderSessionState } from "@gajae-code/ai/core";
|
|
3
3
|
import { createAppendOnlyContextManager, providerSupportsAppendOnlyAuto, resolveAppendOnlyMode } from "../append-only-mode";
|
|
4
|
+
import { AsyncJobManager } from "../async";
|
|
4
5
|
import { type Rule } from "../capability/rule";
|
|
5
6
|
import { ModelRegistry } from "../config/model-registry";
|
|
6
7
|
import { type ScopedModelSelection } from "../config/model-resolver";
|
|
@@ -24,6 +25,7 @@ import { MCPManager } from "../runtime-mcp";
|
|
|
24
25
|
import { AgentSession, type ForkContextSeed } from "../session/agent-session";
|
|
25
26
|
import { AuthStorage } from "../session/auth-storage";
|
|
26
27
|
import { SessionManager } from "../session/session-manager";
|
|
28
|
+
import { type StartupAuthConfigSnapshot } from "../session/startup-auth-config";
|
|
27
29
|
import { type BuildSystemPromptResult } from "../system-prompt";
|
|
28
30
|
import { BUILTIN_TOOLS, createTools, HIDDEN_TOOLS, type Tool, type ToolSession } from "../tools";
|
|
29
31
|
import { EventBus } from "../utils/event-bus";
|
|
@@ -40,6 +42,16 @@ import type { WorkspaceTree } from "../workspace-tree";
|
|
|
40
42
|
* result for any such trailing unpaired tool call so a resumed session always
|
|
41
43
|
* starts from a valid, paired history. No-op for well-formed transcripts.
|
|
42
44
|
*/
|
|
45
|
+
/** Whether the cached SDK-only reconciliation store still matches the current
|
|
46
|
+
* session identity. session_switch/session_branch can move to a DIFFERENT
|
|
47
|
+
* transcript that retains the same copied session id, so the cache is keyed
|
|
48
|
+
* by BOTH the session id and the session-file path (including a null-to-file
|
|
49
|
+
* transition); a mismatch means the store must be recreated or the successor
|
|
50
|
+
* reads/writes the predecessor's reconciliation file (review thread P2). */
|
|
51
|
+
export declare function sdkOnlyStoreMatches(cached: {
|
|
52
|
+
sessionId: string;
|
|
53
|
+
sessionFile: string | undefined;
|
|
54
|
+
} | undefined, sessionId: string, sessionFile: string | undefined): boolean;
|
|
43
55
|
export declare function reconcileTrailingToolCalls(messages: AgentMessage[]): AgentMessage[];
|
|
44
56
|
export interface CreateAgentSessionOptions {
|
|
45
57
|
/** Working directory for project-local discovery. Default: getProjectDir() */
|
|
@@ -81,6 +93,14 @@ export interface CreateAgentSessionOptions {
|
|
|
81
93
|
selector: AuthCredentialSelector;
|
|
82
94
|
raw: string;
|
|
83
95
|
};
|
|
96
|
+
/** Soft runtime credential preference; quota/rate-limit failures may rotate away from it. */
|
|
97
|
+
preferredCredentialSelector?: {
|
|
98
|
+
provider?: string;
|
|
99
|
+
selector: AuthCredentialSelector;
|
|
100
|
+
raw: string;
|
|
101
|
+
};
|
|
102
|
+
/** Durable global pin intent loaded from startup-auth config; session bootstrap resolves it without mutating shared storage. */
|
|
103
|
+
startupAuthConfig?: StartupAuthConfigSnapshot;
|
|
84
104
|
/** Custom tools to register (in addition to built-in tools). Accepts both CustomTool and ToolDefinition. */
|
|
85
105
|
customTools?: (CustomTool | ToolDefinition)[];
|
|
86
106
|
/** Explicit parent/phase used to load active GJC sub-skill tools for this session. */
|
|
@@ -94,6 +114,8 @@ export interface CreateAgentSessionOptions {
|
|
|
94
114
|
extensions?: ExtensionFactory[];
|
|
95
115
|
/** Additional extension paths to load (merged with discovery). */
|
|
96
116
|
additionalExtensionPaths?: string[];
|
|
117
|
+
/** Explicit hook module paths to load in addition to native discovery. */
|
|
118
|
+
hookPaths?: string[];
|
|
97
119
|
/** Disable extension discovery (explicit paths still load). */
|
|
98
120
|
disableExtensionDiscovery?: boolean;
|
|
99
121
|
/**
|
|
@@ -126,6 +148,14 @@ export interface CreateAgentSessionOptions {
|
|
|
126
148
|
/** Load MCP tools for a top-level session only from this caller-owned absolute config file path.
|
|
127
149
|
* Mutually exclusive with mcpManager. */
|
|
128
150
|
mcpConfigPath?: string;
|
|
151
|
+
/**
|
|
152
|
+
* Whether conventional MCP autoload is enabled for a top-level standalone
|
|
153
|
+
* session (default: true). When false, native user `~/.gjc/agent/mcp.json`
|
|
154
|
+
* and project `.gjc/mcp.json` registrations are not discovered or connected
|
|
155
|
+
* at startup. Plugin-bundle MCPs and `mcpConfigPath` exact-file sessions
|
|
156
|
+
* are unaffected. CLI: `--no-mcp`.
|
|
157
|
+
*/
|
|
158
|
+
enableMcpAutoload?: boolean;
|
|
129
159
|
/**
|
|
130
160
|
* Defer connecting an exact MCP config until the interactive UI is ready.
|
|
131
161
|
* @internal CLI-only startup optimization; SDK callers retain synchronous loading by default.
|
|
@@ -177,6 +207,8 @@ export interface CreateAgentSessionOptions {
|
|
|
177
207
|
agentRegistry?: AgentRegistry;
|
|
178
208
|
/** Parent task ID prefix for nested artifact naming (e.g., "6-Extensions") */
|
|
179
209
|
parentTaskPrefix?: string;
|
|
210
|
+
/** Parent manager borrowed by a child session; never disposed by the child. */
|
|
211
|
+
inheritedAsyncJobManager?: AsyncJobManager;
|
|
180
212
|
/**
|
|
181
213
|
* W6b: the parent's scope-held MCP facade, handed to a canonical sub-session so
|
|
182
214
|
* it can inherit always-on MCP tools without owning the manager. Replaces the
|
|
@@ -269,7 +301,8 @@ export declare function loadSshTool(session: ToolSession): Promise<import("../to
|
|
|
269
301
|
* back into the broker through the {@link AuthStorageOptions.refreshOAuthCredential}
|
|
270
302
|
* override to re-mint access tokens when needed.
|
|
271
303
|
*/
|
|
272
|
-
export declare function discoverAuthStorage(agentDir?: string): Promise<AuthStorage>;
|
|
304
|
+
export declare function discoverAuthStorage(agentDir?: string, startupAuth?: StartupAuthConfigSnapshot): Promise<AuthStorage>;
|
|
305
|
+
/** Ranking is resolved as part of the typed startup-auth snapshot. */
|
|
273
306
|
/**
|
|
274
307
|
* Discover extensions from cwd.
|
|
275
308
|
*/
|
|
@@ -6,10 +6,7 @@ type BrokerSessionRow = {
|
|
|
6
6
|
live: boolean;
|
|
7
7
|
ambiguous: boolean;
|
|
8
8
|
};
|
|
9
|
-
/**
|
|
10
|
-
* Exhausts broker `session.list` cursor pagination (default page limit 100) to
|
|
11
|
-
* one full snapshot; exported for tests.
|
|
12
|
-
*/
|
|
9
|
+
/** Exhausts strict broker `session.list` pages into one full session snapshot. */
|
|
13
10
|
export declare function listBrokerSessions(broker: SdkClient): Promise<BrokerSessionRow[]>;
|
|
14
11
|
/** Selects the session to serve through broker `session.list` truth (C10); exported for tests. */
|
|
15
12
|
export declare function selectBrokerSession(sessions: BrokerSessionRow[], explicitSessionId: string | undefined): string;
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { type AuthStorage, type CachedCredentialHealth, type CachedUsageReport, type CredentialInventoryRecord } from "@gajae-code/ai/core";
|
|
2
|
+
import type { Settings } from "../config/settings";
|
|
3
|
+
/** A redacted usage observation attached to an account row. */
|
|
4
|
+
export interface AccountUsageCache extends CachedUsageReport {
|
|
5
|
+
}
|
|
6
|
+
/** Safe account health state used by presentation surfaces. */
|
|
7
|
+
export interface AccountHealthCache extends CachedCredentialHealth {
|
|
8
|
+
}
|
|
9
|
+
export type AccountInventorySource = "stored" | "env" | "config" | "runtime";
|
|
10
|
+
/** Fixed presentation classification for a persisted disabled credential. */
|
|
11
|
+
export type AccountInventoryDisabledCause = "auth_failure" | "user_removed" | "duplicate" | "replaced" | "unknown";
|
|
12
|
+
export interface AccountInventoryCapabilities {
|
|
13
|
+
canCheck: boolean;
|
|
14
|
+
canPin: boolean;
|
|
15
|
+
canRemove: boolean;
|
|
16
|
+
hasCachedUsage: boolean;
|
|
17
|
+
}
|
|
18
|
+
export interface AccountInventoryRouting {
|
|
19
|
+
/** True when this row is the session's last recorded stored credential. */
|
|
20
|
+
active: boolean;
|
|
21
|
+
/** True when this source is the effective source for the provider/session. */
|
|
22
|
+
selected: boolean;
|
|
23
|
+
marker: "active" | "selected" | "available";
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Payload-free account row for renderers. This type deliberately has no
|
|
27
|
+
* AuthCredential, API-key bytes, access token, refresh token, or raw usage.
|
|
28
|
+
*/
|
|
29
|
+
export interface AccountInventoryRow {
|
|
30
|
+
/** Stable, non-secret presentation id. */
|
|
31
|
+
id: string;
|
|
32
|
+
/** Numeric storage id when this is a persisted row. */
|
|
33
|
+
credentialId?: number;
|
|
34
|
+
provider: string;
|
|
35
|
+
credentialKind: "oauth" | "api_key";
|
|
36
|
+
source: AccountInventorySource;
|
|
37
|
+
sourceLabel: string;
|
|
38
|
+
identityLabel: string | null;
|
|
39
|
+
/** OAuth identity is intentionally limited to safe labels from inventory. */
|
|
40
|
+
oauthIdentity?: {
|
|
41
|
+
label: string;
|
|
42
|
+
};
|
|
43
|
+
disabled: boolean;
|
|
44
|
+
disabledCause: AccountInventoryDisabledCause | null;
|
|
45
|
+
health: AccountHealthCache;
|
|
46
|
+
usage?: AccountUsageCache;
|
|
47
|
+
capabilities: AccountInventoryCapabilities;
|
|
48
|
+
routing: AccountInventoryRouting;
|
|
49
|
+
}
|
|
50
|
+
export interface AccountInventorySnapshot {
|
|
51
|
+
generatedAt: number;
|
|
52
|
+
generation: number;
|
|
53
|
+
rows: AccountInventoryRow[];
|
|
54
|
+
}
|
|
55
|
+
export interface AccountInventoryInput {
|
|
56
|
+
authStorage: AuthStorage;
|
|
57
|
+
modelRegistry?: {
|
|
58
|
+
getAvailable?: () => Array<{
|
|
59
|
+
provider: string;
|
|
60
|
+
}>;
|
|
61
|
+
getProviderBaseUrl?: (provider: string) => string | undefined;
|
|
62
|
+
};
|
|
63
|
+
sessionId?: string;
|
|
64
|
+
provider?: string;
|
|
65
|
+
nowMs?: number;
|
|
66
|
+
}
|
|
67
|
+
export interface AccountInventoryCheckResult {
|
|
68
|
+
rowId: string;
|
|
69
|
+
provider: string;
|
|
70
|
+
credentialId?: number;
|
|
71
|
+
ok: boolean | null;
|
|
72
|
+
reason?: string;
|
|
73
|
+
}
|
|
74
|
+
/** Build a redacted, cache-only account snapshot. This function never probes. */
|
|
75
|
+
export declare function buildAccountInventorySnapshot(input: AccountInventoryInput): AccountInventorySnapshot;
|
|
76
|
+
/** Short alias used by command/report callers. */
|
|
77
|
+
export declare const buildAccountInventory: typeof buildAccountInventorySnapshot;
|
|
78
|
+
/**
|
|
79
|
+
* Run the explicit sequential checker and return a fresh redacted snapshot.
|
|
80
|
+
* AuthStorage.checkCredentials performs stored-row probes sequentially; the
|
|
81
|
+
* synthetic API-key probes below are also intentionally sequential.
|
|
82
|
+
*/
|
|
83
|
+
export declare function checkAccountInventory(input: AccountInventoryInput): Promise<AccountInventorySnapshot>;
|
|
84
|
+
export declare const checkAccountInventorySnapshot: typeof checkAccountInventory;
|
|
85
|
+
/** Clear a global persistent pin only after its selected credential was removed. */
|
|
86
|
+
export declare function clearPersistentPinForRemovedRows(settings: Pick<Settings, "commitAtomicBatchWithCurrent">, provider: string, inventory: readonly CredentialInventoryRecord[], removedIds: readonly number[]): Promise<boolean>;
|