@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
|
@@ -66,6 +66,7 @@ export interface ForkContextSeedOptions {
|
|
|
66
66
|
preserveLatestUser?: boolean;
|
|
67
67
|
signal?: AbortSignal;
|
|
68
68
|
}
|
|
69
|
+
import type { AuthCredentialSelector } from "@gajae-code/ai/core";
|
|
69
70
|
import { type AsyncJob, type AsyncJobDeliveryState, AsyncJobManager } from "../async";
|
|
70
71
|
import type { Rule } from "../capability/rule";
|
|
71
72
|
import { type ModelRegistry } from "../config/model-registry";
|
|
@@ -115,6 +116,18 @@ import type { BranchSummaryEntry, CompactionEntry, NewSessionOptions, PreparedNe
|
|
|
115
116
|
import { SessionManager } from "./session-manager";
|
|
116
117
|
import { ToolChoiceQueue } from "./tool-choice-queue";
|
|
117
118
|
import { YieldQueue } from "./yield-queue";
|
|
119
|
+
/**
|
|
120
|
+
* Classify an async-result delivery against terminal-abort ownership:
|
|
121
|
+
* - "ordinary": no owned-completion envelope — deliver as before.
|
|
122
|
+
* - "fresh": an exact registered owned-completion the owning scope's gate
|
|
123
|
+
* authorizes as a fresh-turn resume (scope:"turn", policy enabled).
|
|
124
|
+
* - "drop": a recognized owned-completion the gate denies — scope:"owned"
|
|
125
|
+
* (policy disabled, stopped work must never call followUp/prompt), a
|
|
126
|
+
* forged/unregistered tuple, or an envelope whose terminal scope no longer
|
|
127
|
+
* exists. Dropped entries never reach the agent (AC 36 zero final calls
|
|
128
|
+
* from stopped work), even if a delivery races the settlement purge.
|
|
129
|
+
*/
|
|
130
|
+
export declare function ownedCompletionResumeAction(message: AgentMessage): "ordinary" | "fresh" | "drop";
|
|
118
131
|
/** Session-specific events that extend the core AgentEvent */
|
|
119
132
|
export type AutoCompactionContinuationSkipReason = "auto_continue_disabled_non_resumable_tail";
|
|
120
133
|
export type AgentSessionEvent = AgentEvent | {
|
|
@@ -199,6 +212,9 @@ export interface AgentSessionConfig {
|
|
|
199
212
|
agent: Agent;
|
|
200
213
|
sessionManager: SessionManager;
|
|
201
214
|
settings: Settings;
|
|
215
|
+
/** The session's REQUESTED effective agent directory, independent of the
|
|
216
|
+
* global Settings singleton (which may be reused across sessions). */
|
|
217
|
+
agentDir?: string;
|
|
202
218
|
/** Lazy memory backend service; omitted callers receive a session-local default. */
|
|
203
219
|
memoryBackend?: LazyService<MemoryBackend>;
|
|
204
220
|
/** Lazy workspace-tree service; omitted callers retain the legacy direct-scan path. */
|
|
@@ -241,6 +257,12 @@ export interface AgentSessionConfig {
|
|
|
241
257
|
workflowGatePublication?: "endpoint" | "local";
|
|
242
258
|
/** Tool registry for LSP and settings */
|
|
243
259
|
toolRegistry?: Map<string, AgentTool>;
|
|
260
|
+
/**
|
|
261
|
+
* Tool objects this session's builder constructed from built-in descriptors, captured
|
|
262
|
+
* before any extension, MCP, or dynamically registered tool could claim their registry
|
|
263
|
+
* names. Absent means no provenance was proven and every tool reports as `custom`.
|
|
264
|
+
*/
|
|
265
|
+
builtinToolIdentities?: ReadonlySet<object>;
|
|
244
266
|
/** Tool-session factory context used to lazily attach workflow-gate-only tools. */
|
|
245
267
|
workflowGateToolSession?: ToolSession;
|
|
246
268
|
/** Current session pre-LLM message transform pipeline */
|
|
@@ -314,6 +336,8 @@ export interface AgentSessionConfig {
|
|
|
314
336
|
* **MUST NOT** dispose it on their own teardown.
|
|
315
337
|
*/
|
|
316
338
|
ownedAsyncJobManager?: AsyncJobManager;
|
|
339
|
+
/** False when a child borrows its parent's manager and must not dispose it. */
|
|
340
|
+
disposeAsyncJobManager?: boolean;
|
|
317
341
|
/** Cheap TUI retained-memory counters; absent for headless sessions. */
|
|
318
342
|
retainedMemorySampler?: () => RetainedMemorySample;
|
|
319
343
|
/**
|
|
@@ -342,8 +366,12 @@ export interface AgentSessionConfig {
|
|
|
342
366
|
providerSessionId?: string;
|
|
343
367
|
/** Optional auth-selection identity, distinct from logical/canonical and provider-cache identity. */
|
|
344
368
|
credentialSessionId?: string;
|
|
369
|
+
/** Opaque credential-store authority fingerprint for durable numeric session pins. */
|
|
370
|
+
credentialStoreIdentity?: string;
|
|
345
371
|
/** Optional provider-facing cache identity, distinct from logical session identity. */
|
|
346
372
|
providerCacheSessionId?: string;
|
|
373
|
+
/** Explicit provider affinity whose persisted transcript path scopes async ownership. */
|
|
374
|
+
asyncJobProviderSessionId?: string;
|
|
347
375
|
}
|
|
348
376
|
export interface AgentSessionMemoryGuardRestoreInput extends Omit<AgentSessionConfig, "sessionManager" | "recoveryHydrationContext"> {
|
|
349
377
|
staged: Extract<MemoryGuardRestoreResult, {
|
|
@@ -400,6 +428,8 @@ export interface PromptOptions {
|
|
|
400
428
|
lineCount?: number;
|
|
401
429
|
cleanedArgs?: string;
|
|
402
430
|
}) => void;
|
|
431
|
+
/** Optional invocation-scoped cancellation fence used before an accepted skill starts execution. */
|
|
432
|
+
preflightSignal?: AbortSignal;
|
|
403
433
|
}
|
|
404
434
|
/** Result from a handoff operation. */
|
|
405
435
|
export interface HandoffResult {
|
|
@@ -572,6 +602,12 @@ export declare class AgentSession {
|
|
|
572
602
|
readonly agent: Agent;
|
|
573
603
|
sessionManager: SessionManager;
|
|
574
604
|
readonly settings: Settings;
|
|
605
|
+
/**
|
|
606
|
+
* The session's effective agent directory: its REQUESTED directory when
|
|
607
|
+
* provided, else the global Settings singleton's (which may be reused
|
|
608
|
+
* across sessions and therefore not the requesting session's own).
|
|
609
|
+
*/
|
|
610
|
+
getSessionAgentDir(): string;
|
|
575
611
|
readonly memoryBackend: LazyService<MemoryBackend>;
|
|
576
612
|
readonly notificationSessionController: NotificationSessionController | undefined;
|
|
577
613
|
readonly taskDepth: number;
|
|
@@ -723,7 +759,32 @@ export declare class AgentSession {
|
|
|
723
759
|
/** Whether agent is currently streaming a response */
|
|
724
760
|
get isStreaming(): boolean;
|
|
725
761
|
/** Wait until streaming and session settlement work are fully settled. */
|
|
726
|
-
|
|
762
|
+
/**
|
|
763
|
+
* Wait until streaming and session settlement work are fully settled.
|
|
764
|
+
*
|
|
765
|
+
* The internal-only `ignoreSelectionFenceGeneration` is used exclusively by
|
|
766
|
+
* `setDefaultModelSelection`'s mid-selection drain: the selection must not
|
|
767
|
+
* wait on work parked behind its own (or a later) fence — its agent run,
|
|
768
|
+
* recovery, and deferrals — because that work is waiting on the selection
|
|
769
|
+
* itself (#4519). External callers observe everything.
|
|
770
|
+
*/
|
|
771
|
+
waitForIdle(ignoreSelectionFenceGeneration?: number): Promise<void>;
|
|
772
|
+
/**
|
|
773
|
+
* Deterministically await every in-flight agent-event handler (including the
|
|
774
|
+
* synchronous canonical persistence each one performs) plus the durable
|
|
775
|
+
* transcript flush, without waiting for a prompt/turn lifecycle.
|
|
776
|
+
*
|
|
777
|
+
* This is the explicit signal replacement for real-time settle sleeps after
|
|
778
|
+
* externally emitted events (`agent.emitExternalEvent`): the dispatcher
|
|
779
|
+
* increments `#agentEventHandlersInFlight` synchronously before this call can
|
|
780
|
+
* observe it, and each handler decrements it in its `finally`, so the
|
|
781
|
+
* settlement promise below resolves exactly when the last handler — and
|
|
782
|
+
* therefore its `sessionManager.appendMessage`/`_persist` work — has finished.
|
|
783
|
+
* `flush()` then queues deterministically behind the SessionManager persist
|
|
784
|
+
* queue, so every seeded entry is canonical AND on disk before the caller
|
|
785
|
+
* proceeds.
|
|
786
|
+
*/
|
|
787
|
+
awaitSessionSettlement(): Promise<void>;
|
|
727
788
|
drainAsyncJobDeliveriesForAcp(options?: {
|
|
728
789
|
timeoutMs?: number;
|
|
729
790
|
}): Promise<boolean>;
|
|
@@ -861,6 +922,10 @@ export declare class AgentSession {
|
|
|
861
922
|
get sessionId(): string;
|
|
862
923
|
/** Credential selection identity; defaults to the provider-facing session identity. */
|
|
863
924
|
get credentialSessionId(): string;
|
|
925
|
+
/** Pin one OAuth credential for this session scope and persist the minimal intent. */
|
|
926
|
+
setCredentialPin(provider: string, selector: AuthCredentialSelector): Promise<void>;
|
|
927
|
+
/** Mask persistent/global selection for this session and restore AUTO ranking. */
|
|
928
|
+
setCredentialAuto(provider: string): Promise<void>;
|
|
864
929
|
/** Current session display name, if set */
|
|
865
930
|
get sessionName(): string | undefined;
|
|
866
931
|
/** Scoped models for cycling (from --models flag) */
|
|
@@ -870,7 +935,7 @@ export declare class AgentSession {
|
|
|
870
935
|
/** Live SDK configuration values exposed through the session query surface. */
|
|
871
936
|
getSdkConfigItems(): Record<string, string>;
|
|
872
937
|
setPlanModeState(state: PlanModeState | undefined): void;
|
|
873
|
-
invokeSkill(name: string, args?: string, options?: Pick<PromptOptions, "onPreflightAccepted" | "onPreflightAcceptCommit" | "onSkillPrepared">): Promise<{
|
|
938
|
+
invokeSkill(name: string, args?: string, options?: Pick<PromptOptions, "onPreflightAccepted" | "onPreflightAcceptCommit" | "onSkillPrepared" | "preflightSignal">): Promise<{
|
|
874
939
|
name: string;
|
|
875
940
|
path: string;
|
|
876
941
|
args?: string;
|
|
@@ -925,7 +990,7 @@ export declare class AgentSession {
|
|
|
925
990
|
* @throws Error if no model selected or no API key available (when not streaming)
|
|
926
991
|
*/
|
|
927
992
|
prompt(text: string, options?: PromptOptions): Promise<void>;
|
|
928
|
-
promptCustomMessage<T = unknown>(message: Pick<CustomMessage<T>, "customType" | "content" | "display" | "details" | "attribution">, options?: Pick<PromptOptions, "streamingBehavior" | "toolChoice" | "followUpQueuePolicy" | "onPreflightAccepted" | "onPreflightAcceptCommit">): Promise<void>;
|
|
993
|
+
promptCustomMessage<T = unknown>(message: Pick<CustomMessage<T>, "customType" | "content" | "display" | "details" | "attribution">, options?: Pick<PromptOptions, "streamingBehavior" | "toolChoice" | "followUpQueuePolicy" | "onPreflightAccepted" | "onPreflightAcceptCommit" | "preflightSignal">): Promise<void>;
|
|
929
994
|
/**
|
|
930
995
|
* Queue a steering message to interrupt the agent mid-run.
|
|
931
996
|
*/
|
|
@@ -952,6 +1017,13 @@ export declare class AgentSession {
|
|
|
952
1017
|
triggerTurn?: boolean;
|
|
953
1018
|
deliverAs?: "steer" | "followUp" | "nextTurn";
|
|
954
1019
|
followUpQueuePolicy?: "respect-mode" | "sequential";
|
|
1020
|
+
/** INTERNAL trusted option: origin of a hidden next-turn message —
|
|
1021
|
+
* "turn" (produced by the current turn's continuation machinery,
|
|
1022
|
+
* purged by a terminal abort) or "external" (background producers,
|
|
1023
|
+
* preserved). Extension sendMessage callers are classified
|
|
1024
|
+
* "external" at the trusted bridge and never supply this bit
|
|
1025
|
+
* (review thread P2). */
|
|
1026
|
+
origin?: "turn" | "external";
|
|
955
1027
|
}): Promise<void>;
|
|
956
1028
|
/** Remove undelivered queued custom messages matching `predicate` from executable queues and tagged display mirrors. */
|
|
957
1029
|
purgeQueuedCustomMessages(predicate: (message: CustomMessage) => boolean): PurgeQueuedCustomMessagesResult;
|
|
@@ -964,8 +1036,14 @@ export declare class AgentSession {
|
|
|
964
1036
|
*/
|
|
965
1037
|
sendUserMessage(content: string | (TextContent | ImageContent)[], options?: {
|
|
966
1038
|
deliverAs?: "steer" | "followUp";
|
|
1039
|
+
/** Preserve a busy SDK dispatch as queued work across an admission fence. */
|
|
1040
|
+
queuedAtDispatch?: boolean;
|
|
967
1041
|
onPreflightAccepted?: () => void;
|
|
968
1042
|
onPreflightAcceptCommit?: () => void | Promise<void>;
|
|
1043
|
+
/** Fired when a queued submission (steering or follow-up) is promoted to its own run (SDK ownership correlation). */
|
|
1044
|
+
onQueuedPromoted?: () => void;
|
|
1045
|
+
preflightSignal?: AbortSignal;
|
|
1046
|
+
sdkRunToken?: string;
|
|
969
1047
|
}): Promise<void>;
|
|
970
1048
|
/**
|
|
971
1049
|
* Clear queued messages and return them.
|
|
@@ -1029,11 +1107,63 @@ export declare class AgentSession {
|
|
|
1029
1107
|
silent?: boolean;
|
|
1030
1108
|
}): Promise<void>;
|
|
1031
1109
|
/**
|
|
1032
|
-
*
|
|
1033
|
-
|
|
1110
|
+
* Private terminal-abort seam: read the CURRENT turn's attempt epoch WITHOUT
|
|
1111
|
+
* interrupting it. Used to write the durable initial terminal marker BEFORE
|
|
1112
|
+
* any fence/stop effect (plan ordered step 4). Only the epoch is exposed —
|
|
1113
|
+
* never the opaque lineage handle — so no private origin metadata leaves the
|
|
1114
|
+
* session. Fails closed (undefined) when no active turn lineage exists.
|
|
1115
|
+
*/
|
|
1116
|
+
/**
|
|
1117
|
+
* Private terminal-abort seam: cancel a PENDING (not-yet-started) prompt
|
|
1118
|
+
* preflight. Aborting the preflight controller fires the captured admission
|
|
1119
|
+
* signal so #throwIfPromptPreflightCancelled throws and the pending prompt
|
|
1120
|
+
* never starts even if its SDK waiter was already settled; the controller is
|
|
1121
|
+
* reset for the next admission. No run handle exists for a preflight prompt.
|
|
1122
|
+
*/
|
|
1123
|
+
cancelPendingPreflightForTerminalAbort(): void;
|
|
1124
|
+
/**
|
|
1125
|
+
* Capture the steering admission snapshot at abort ADMISSION: the host
|
|
1126
|
+
* invokes this before its durable marker transaction, so client steering
|
|
1127
|
+
* admitted while the abort is in flight classifies as post-snapshot and is
|
|
1128
|
+
* preserved instead of being purged at the later abortPromptAndWait
|
|
1129
|
+
* (review thread P1). Snapshots are stored PER-ADMISSION in a per-turn
|
|
1130
|
+
* FIFO: the settlement of each admission consumes its own captured
|
|
1131
|
+
* sequence, so a later overlapping abort of the same turn can never
|
|
1132
|
+
* overwrite an earlier admission's snapshot and purge an already-accepted
|
|
1133
|
+
* steer (review thread P1).
|
|
1134
|
+
*/
|
|
1135
|
+
captureTerminalAbortSteeringSnapshot(): number | undefined;
|
|
1136
|
+
/**
|
|
1137
|
+
* Discard a captured snapshot whose admission never settles (a durable
|
|
1138
|
+
* same-key replay, no-effect, conflict, or marker failure): the entry is
|
|
1139
|
+
* keyed to the CURRENT turn, which is where its admission captured it.
|
|
1140
|
+
* Removing by token keeps overlapping admissions' entries independent.
|
|
1141
|
+
*/
|
|
1142
|
+
/**
|
|
1143
|
+
* Rebind a captured snapshot to the CURRENT turn: the owner-mismatch
|
|
1144
|
+
* fall-through may terminalize the aborting requester's own turn that won
|
|
1145
|
+
* the race, while the token was captured under the other connection's
|
|
1146
|
+
* turn. The entry moves to the current turn's FIFO (retaining the original
|
|
1147
|
+
* admission sequence) so the settlement's purge classifies steering
|
|
1148
|
+
* admitted since admission as post-snapshot (review thread P1).
|
|
1149
|
+
*/
|
|
1150
|
+
rebindTerminalAbortSteeringSnapshot(token: number): void;
|
|
1151
|
+
discardTerminalAbortSteeringSnapshot(token: number): void;
|
|
1152
|
+
getTerminalTurnEpoch(): number | undefined;
|
|
1034
1153
|
abortPromptAndWait(handle: string, options: {
|
|
1035
1154
|
graceMs: number;
|
|
1036
|
-
|
|
1155
|
+
terminal?: {
|
|
1156
|
+
scope: "turn" | "owned";
|
|
1157
|
+
expectedEpoch?: number;
|
|
1158
|
+
steeringSnapshotToken?: number;
|
|
1159
|
+
};
|
|
1160
|
+
}): Promise<RunSettlementProof & {
|
|
1161
|
+
terminalScope?: {
|
|
1162
|
+
scopeId: string;
|
|
1163
|
+
abortedAttemptEpoch: number;
|
|
1164
|
+
lineageIdHash: string;
|
|
1165
|
+
};
|
|
1166
|
+
}>;
|
|
1037
1167
|
/** Atomically interrupt the active run and make text the next prompt. */
|
|
1038
1168
|
cancelAndSubmit(text: string, options?: {
|
|
1039
1169
|
queuedEntryId?: string;
|
|
@@ -1075,6 +1205,15 @@ export declare class AgentSession {
|
|
|
1075
1205
|
}): Promise<void>;
|
|
1076
1206
|
setActiveModelProfile(name: string | undefined): void;
|
|
1077
1207
|
getActiveModelProfile(): string | undefined;
|
|
1208
|
+
/**
|
|
1209
|
+
* Re-apply vendor-separated delegation after a profile activation changed the
|
|
1210
|
+
* role layer. `eagerTasks` is resolved at prompt build time, but under
|
|
1211
|
+
* `tools.discoveryMode: all` the `task` tool is hidden until something
|
|
1212
|
+
* activates it, and the delegation directive stays behind its
|
|
1213
|
+
* `has tools "task"` guard. Activating a vendor-separated profile mid-session
|
|
1214
|
+
* must therefore reach the live tool set, not just the next session.
|
|
1215
|
+
*/
|
|
1216
|
+
syncEagerDelegation(): Promise<void>;
|
|
1078
1217
|
/** Record runtime override keys installed by a profile activation. */
|
|
1079
1218
|
noteProfileInstalledOverrides(modelRoles: readonly string[], agentModelOverrides: readonly string[], preProfileModel: Model | undefined): void;
|
|
1080
1219
|
/** Drop the recorded profile-installed override keys after materialization. */
|
|
@@ -23,6 +23,16 @@ export declare class AgentStorage {
|
|
|
23
23
|
* @deprecated Use config.yml instead. This is only for migration.
|
|
24
24
|
*/
|
|
25
25
|
getSettings(): Settings | null;
|
|
26
|
+
/**
|
|
27
|
+
* @deprecated Settings are now stored in config.yml, not agent.db.
|
|
28
|
+
* Clears the legacy settings rows after they have been drained into
|
|
29
|
+
* config.yml so a later load never re-imports them (the database has no
|
|
30
|
+
* other one-time guard). Retries transient SQLITE_BUSY contention with
|
|
31
|
+
* exponential backoff and THROWS on persistent failure: the migration must
|
|
32
|
+
* not treat a failed drain as success while stale rows stay eligible for
|
|
33
|
+
* re-import on a later load.
|
|
34
|
+
*/
|
|
35
|
+
clearSettings(): Promise<void>;
|
|
26
36
|
/**
|
|
27
37
|
* @deprecated Settings are now stored in config.yml, not agent.db.
|
|
28
38
|
* This method is kept for backward compatibility but does nothing.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Proves whether the tool OBJECT that actually ran is one this session constructed from a
|
|
3
|
+
* built-in descriptor, before any extension, MCP, or dynamically registered tool could
|
|
4
|
+
* override that registry name.
|
|
5
|
+
*/
|
|
6
|
+
export type BuiltinToolProvenance = (tool: object) => boolean;
|
|
7
|
+
/**
|
|
8
|
+
* Canonical public label for the tool object a call was ACTUALLY dispatched to.
|
|
9
|
+
*
|
|
10
|
+
* The input is the object the producer bound to the event, never a name resolved here. A
|
|
11
|
+
* wire name is model text and the tool list behind it is mutable: a `setTools`, MCP
|
|
12
|
+
* reload, or tool refresh between dispatch and this call would otherwise publish whatever
|
|
13
|
+
* holds the name by now instead of what ran.
|
|
14
|
+
*
|
|
15
|
+
* Two independent facts must hold before a canonical label is published:
|
|
16
|
+
*
|
|
17
|
+
* 1. the producer bound a dispatched tool object at all (an unknown name the loop
|
|
18
|
+
* rejected, and a call aborted before dispatch, bind nothing), AND
|
|
19
|
+
* 2. that object carries built-in provenance and its canonical name is one of the closed
|
|
20
|
+
* built-in descriptors.
|
|
21
|
+
*
|
|
22
|
+
* The object check is what makes the label trustworthy. A registry name is not
|
|
23
|
+
* provenance: an SDK extension, MCP, or custom tool may register itself as `bash` or
|
|
24
|
+
* `edit`, or claim a built-in `customWireName`, and would otherwise be published under
|
|
25
|
+
* the built-in's label. Without proven provenance — including for a direct AgentSession
|
|
26
|
+
* construction that supplies none — the answer is `custom`.
|
|
27
|
+
*/
|
|
28
|
+
export declare function canonicalCoordinatorToolLabel(dispatchedTool: object | undefined, isBuiltinToolObject: BuiltinToolProvenance): string;
|
|
@@ -9,6 +9,7 @@ export declare const MANAGED_ARTIFACT_COPY_BATCH_SIZE = 256;
|
|
|
9
9
|
export declare class ManagedPublishError extends Error {
|
|
10
10
|
readonly classification: "destination_conflict" | "atomic_unavailable" | "invalid_request" | "durability_not_provable" | "identity_mismatch" | "io_error" | "durability_failed";
|
|
11
11
|
readonly diagnostic: string;
|
|
12
|
+
readonly stagingCleanupSafe: boolean;
|
|
12
13
|
constructor(classification: ManagedPublishError["classification"], outcome: NativePublishOutcome);
|
|
13
14
|
}
|
|
14
15
|
export declare class ManagedReplaceError extends Error {
|
|
@@ -18,6 +19,9 @@ export declare class ManagedReplaceError extends Error {
|
|
|
18
19
|
readonly retainedSuccessorPath: string | undefined;
|
|
19
20
|
readonly retainedPlaceholderPath: string | undefined;
|
|
20
21
|
readonly retainedUnknownPath: string | undefined;
|
|
22
|
+
/** Path-free Windows NTSTATUS of the underlying pre-mutation failure, when
|
|
23
|
+
* the native layer preserved one (e.g. `0xC0000043` for a sharing violation). */
|
|
24
|
+
readonly windowsErrorCode: string | undefined;
|
|
21
25
|
readonly replacementCause: unknown;
|
|
22
26
|
constructor(result: NativeExactUnlinkResult, cleanupReceiptPath: string, replacementCause?: unknown);
|
|
23
27
|
}
|
|
@@ -25,6 +29,10 @@ export declare class ManagedCommittedMutationError extends Error {
|
|
|
25
29
|
readonly operation: "replace" | "append";
|
|
26
30
|
constructor(operation: "replace" | "append", cause: unknown);
|
|
27
31
|
}
|
|
32
|
+
export declare class ManagedTreeMoveOutcomeError extends Error {
|
|
33
|
+
readonly stagingCleanupSafe: boolean;
|
|
34
|
+
constructor(message: string, stagingCleanupSafe: boolean);
|
|
35
|
+
}
|
|
28
36
|
/** Cleanup is safe only when the native move reports that it did not commit. */
|
|
29
37
|
export declare function mayCleanManagedTreeStaging(error: unknown): boolean;
|
|
30
38
|
/**
|
|
@@ -97,11 +105,11 @@ export interface ScrubbedProtocolRemnantReapResult {
|
|
|
97
105
|
* names carry a terminal remnant prefix and whose timestamps are older than
|
|
98
106
|
* the age gate are removed: a zero-length single-link entry is exactly what
|
|
99
107
|
* the scrub proof leaves behind, and non-zero entries (displaced predecessors
|
|
100
|
-
* or detached receipts retained as evidence) are never touched.
|
|
101
|
-
*
|
|
102
|
-
*
|
|
108
|
+
* or detached receipts retained as evidence) are never touched. A proven
|
|
109
|
+
* concurrent disappearance (ENOENT) is benign; all other I/O failures are
|
|
110
|
+
* returned and logged once without aborting scope preparation.
|
|
103
111
|
*/
|
|
104
|
-
export declare function reapScrubbedProtocolRemnantsSync(directory: string, minAgeMs?: number):
|
|
112
|
+
export declare function reapScrubbedProtocolRemnantsSync(directory: string, minAgeMs?: number): ScrubbedProtocolRemnantReapResult;
|
|
105
113
|
/**
|
|
106
114
|
* Async twin of {@link reapScrubbedProtocolRemnantsSync} with the same safety
|
|
107
115
|
* filters (terminal remnant prefix, zero-length, single-link, non-symlink,
|
|
@@ -169,11 +177,22 @@ export declare class ManagedSessionDescendantStore {
|
|
|
169
177
|
ensureDirectory(relativePath?: string): ManagedDirectoryRoot;
|
|
170
178
|
publishNoReplace(relativePath: string, bytes: Uint8Array): Promise<void>;
|
|
171
179
|
publishNoReplaceSync(relativePath: string, bytes: Uint8Array): void;
|
|
180
|
+
/**
|
|
181
|
+
* Atomically publishes an already-written managed staging file without
|
|
182
|
+
* materializing its contents. The staging file and destination must be
|
|
183
|
+
* descendants of this retained store.
|
|
184
|
+
*/
|
|
185
|
+
publishStagedFileNoReplace(sourceRelativePath: string, destinationRelativePath: string, expected: {
|
|
186
|
+
bytes: number;
|
|
187
|
+
sha256: string;
|
|
188
|
+
}): void;
|
|
172
189
|
replace(relativePath: string, bytes: Uint8Array): Promise<void>;
|
|
190
|
+
replaceExpectedIdentitySync(relativePath: string, bytes: Uint8Array, expected: ManagedFileIdentity): void;
|
|
173
191
|
replaceExpected(relativePath: string, bytes: Uint8Array, expected: ManagedFileSnapshot): void;
|
|
174
192
|
replaceSync(relativePath: string, bytes: Uint8Array): void;
|
|
175
193
|
captureBoundedAppendExpectation(relativePath: string): ManagedBoundedAppendExpectation | undefined;
|
|
176
194
|
appendExpectedSync(relativePath: string, bytes: Uint8Array, expected: ManagedBoundedAppendExpectation): ManagedAppendReceipt;
|
|
195
|
+
appendExpectedIdentitySync(relativePath: string, bytes: Uint8Array, expected: ManagedFileIdentity): ManagedAppendReceipt;
|
|
177
196
|
appendSync(relativePath: string, bytes: Uint8Array): ManagedAppendReceipt;
|
|
178
197
|
/** Capture descriptor identity without copying file bytes when retained authority is available. */
|
|
179
198
|
descriptorExpected(relativePath: string): SessionStorageStat | null;
|
|
@@ -60,7 +60,7 @@ export declare function readPendingDisplayTag(details: unknown): string | undefi
|
|
|
60
60
|
* the CustomMessageEntry to disk. Scoped intentionally narrow: only fields
|
|
61
61
|
* declared here are stripped. Adding a new entry is a deliberate, reviewed
|
|
62
62
|
* change — unrelated future payload fields are never silently dropped. */
|
|
63
|
-
export declare const INTERNAL_DETAILS_FIELDS: readonly ["__pendingDisplayTag"];
|
|
63
|
+
export declare const INTERNAL_DETAILS_FIELDS: readonly ["__pendingDisplayTag", "ownedCompletions"];
|
|
64
64
|
/** Return a `details` copy with every key in `INTERNAL_DETAILS_FIELDS`
|
|
65
65
|
* removed. Returns the input unchanged when there is nothing to strip
|
|
66
66
|
* (null/non-object, or no listed fields present) so callers don't pay a
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export declare function readSecureTokenFile(file: string): Promise<string | null>;
|
|
2
|
+
export declare function writeSecureTokenFile(file: string, token: string): Promise<void>;
|
|
3
|
+
export declare function createSecureTokenFileExclusive(file: string, token: string): Promise<boolean>;
|
|
@@ -8,7 +8,7 @@ import type { ManagedLegacyLocalMigrationSource } from "../internal-urls/local-p
|
|
|
8
8
|
import { ArtifactManager } from "./artifacts";
|
|
9
9
|
import { type BlobPutResult, BlobStore } from "./blob-store";
|
|
10
10
|
import { type ManagedMigrationPolicy } from "./internal/managed-session-scope";
|
|
11
|
-
import { type ManagedBoundedAppendExpectation, type ManagedDirectoryRoot, ManagedSessionDescendantStore } from "./internal/managed-session-storage";
|
|
11
|
+
import { type ManagedBoundedAppendExpectation, type ManagedDirectoryRoot, type ManagedFileIdentity, ManagedSessionDescendantStore } from "./internal/managed-session-storage";
|
|
12
12
|
import { type BaseAnchor, BoundedLabelsPinsStore, type CommittedTail, type DescriptorSnapshot, type DictionaryPartitionCommit, FixedCacheAccount, type MetadataDeltaValue, type ParentBucketCommit, type ReducerState, type ReopenClassification, SessionMemoryAccountant } from "./internal/session-memory-sidecar";
|
|
13
13
|
import { type MemoryGuardCreateCheckpointInput, type MemoryGuardParticipantIngressLease, type MemoryGuardRestoreInput, type MemoryGuardRestoreResult, type MemoryGuardSessionManagerCheckpointV1 } from "./memory-guard-checkpoint-participant";
|
|
14
14
|
import { type BashExecutionMessage, type CustomMessage, type FileMentionMessage, type HookMessage, type PythonExecutionMessage } from "./messages";
|
|
@@ -652,6 +652,33 @@ export declare class SessionAppendPersistenceError extends Error {
|
|
|
652
652
|
readonly persistenceError: Error;
|
|
653
653
|
constructor(phase: SessionAppendPersistenceFailurePhase, entryId: string, persistenceError: Error);
|
|
654
654
|
}
|
|
655
|
+
/**
|
|
656
|
+
* Typed near-limit append outcome (#4566).
|
|
657
|
+
*
|
|
658
|
+
* A live managed append that would cross the per-file transcript cap is now
|
|
659
|
+
* preflighted: when the append alone cannot fit even after a full rewrite of
|
|
660
|
+
* the live entries, this deterministic error replaces the generic
|
|
661
|
+
* `SessionAppendPersistenceError: content_too_large` abort. It states whether
|
|
662
|
+
* the in-memory entry was kept (so the just-committed source mutation keeps
|
|
663
|
+
* its receipt on the next successful persist) and how to continue.
|
|
664
|
+
*/
|
|
665
|
+
export declare class SessionNearLimitAppendError extends Error {
|
|
666
|
+
readonly code: "near_limit_append";
|
|
667
|
+
/** Serialized size (bytes) of the entry that could not fit. */
|
|
668
|
+
readonly entryBytes: number;
|
|
669
|
+
/** Live-entry rewrite size (bytes) the recovery already attempted. */
|
|
670
|
+
readonly liveBytes: number;
|
|
671
|
+
/** Managed per-file cap in force when the append was rejected. */
|
|
672
|
+
readonly capBytes: number;
|
|
673
|
+
/** True when the entry remains in the resident list awaiting the next persist. */
|
|
674
|
+
readonly entryRetained: boolean;
|
|
675
|
+
constructor(details: {
|
|
676
|
+
entryBytes: number;
|
|
677
|
+
liveBytes: number;
|
|
678
|
+
capBytes: number;
|
|
679
|
+
entryRetained: boolean;
|
|
680
|
+
});
|
|
681
|
+
}
|
|
655
682
|
export declare class SessionManagedStorageError extends Error {
|
|
656
683
|
readonly code = "managed_storage_unsupported";
|
|
657
684
|
constructor();
|
|
@@ -962,6 +989,7 @@ interface SessionManagerStateSnapshot {
|
|
|
962
989
|
sessionName: string | undefined;
|
|
963
990
|
titleSource: "auto" | "user" | undefined;
|
|
964
991
|
sessionFile: string | undefined;
|
|
992
|
+
managedPersistExpectedIdentity: ManagedFileIdentity | undefined;
|
|
965
993
|
flushed: boolean;
|
|
966
994
|
ensuredOnDisk: boolean;
|
|
967
995
|
needsFullRewriteOnNextPersist: boolean;
|
|
@@ -980,6 +1008,15 @@ export declare const SessionManagerTestHooks: {
|
|
|
980
1008
|
afterForkTranscriptPublished?: () => void | Promise<void>;
|
|
981
1009
|
beforeEphemeralArtifactManagerInstall?: (dir: string) => void | Promise<void>;
|
|
982
1010
|
beforePersistPatchFence?: (attempt: number) => void;
|
|
1011
|
+
beforeStrictMissingCheck?: (filePath: string, storage: SessionStorage) => void;
|
|
1012
|
+
beforeManagedResumeAcceptance?: (filePath: string, storage: SessionStorage) => void;
|
|
1013
|
+
beforeManagedResumeReturn?: (filePath: string, storage: SessionStorage) => void;
|
|
1014
|
+
beforeManagedSourceStat?: (filePath: string, storage: SessionStorage) => void | Promise<void>;
|
|
1015
|
+
beforeManagedMissingInit?: (filePath: string, storage: SessionStorage) => void | Promise<void>;
|
|
1016
|
+
beforeManagedMissingPublish?: (filePath: string, storage: SessionStorage) => void | Promise<void>;
|
|
1017
|
+
beforeManagedMissingReturn?: (filePath: string, storage: SessionStorage) => void | Promise<void>;
|
|
1018
|
+
afterManagedMissingAssertion?: (filePath: string, storage: SessionStorage) => void | Promise<void>;
|
|
1019
|
+
beforeManagedSwitchIdentity?: (filePath: string, storage: SessionStorage) => void | Promise<void>;
|
|
983
1020
|
/** Internal first-open GC strategy override; omitted means current. */
|
|
984
1021
|
firstOpenGcStrategy?: SessionMemoryGcStrategy;
|
|
985
1022
|
/** Internal first-open secondary-artifact mode override; omitted means auto. */
|
|
@@ -996,6 +1033,8 @@ export declare const SessionManagerTestHooks: {
|
|
|
996
1033
|
lastSidecarInitError?: string;
|
|
997
1034
|
/** Test-only generated-ID cache capacity override. */
|
|
998
1035
|
coldIdHashMaxEntriesOverride?: number;
|
|
1036
|
+
/** Test-only session-context budget override (in-process; does not leak to subprocesses). */
|
|
1037
|
+
sessionContextBudgetBytesOverride?: number;
|
|
999
1038
|
};
|
|
1000
1039
|
/**
|
|
1001
1040
|
* Freshness snapshot captured with every async whole-session persistence
|
|
@@ -1130,6 +1169,13 @@ export declare class SessionManager {
|
|
|
1130
1169
|
listForResumePickerReadOnly(): Promise<SessionInfo[]>;
|
|
1131
1170
|
getSessionId(): string;
|
|
1132
1171
|
getSessionFile(): string | undefined;
|
|
1172
|
+
/**
|
|
1173
|
+
* On-disk transcript file size in bytes. Returns 0 when the file is
|
|
1174
|
+
* unavailable, unreadable, or no session file is set. The managed-storage
|
|
1175
|
+
* path reads through the descriptor (no full-file scan); the plain-file
|
|
1176
|
+
* path uses statSync.
|
|
1177
|
+
*/
|
|
1178
|
+
getTranscriptFileBytes(): number;
|
|
1133
1179
|
getSessionMemoryStats(): SessionMemoryStats;
|
|
1134
1180
|
setSessionMemoryMode(mode: SessionMemoryMode): void;
|
|
1135
1181
|
acquireMemoryGuardParticipantIngressLease(): MemoryGuardParticipantIngressLease;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Read the global startup-auth configuration before Settings is initialized.
|
|
3
|
+
*
|
|
4
|
+
* The config file is canonical nested YAML only. Legacy literal dotted auth keys
|
|
5
|
+
* are rejected with a manual rewrite diagnostic; no compatibility migration is
|
|
6
|
+
* performed. Environment values are trusted credential sources and take
|
|
7
|
+
* precedence over global config values.
|
|
8
|
+
*/
|
|
9
|
+
import type { AuthCredentialSelector, CredentialRankingMode } from "@gajae-code/ai/core";
|
|
10
|
+
export interface AuthBrokerClientConfig {
|
|
11
|
+
url: string;
|
|
12
|
+
token: string;
|
|
13
|
+
}
|
|
14
|
+
export interface StartupAuthConfigSnapshot {
|
|
15
|
+
broker: AuthBrokerClientConfig | null;
|
|
16
|
+
/** Opaque credential-store authority used to bind numeric row-id pins. */
|
|
17
|
+
credentialStoreIdentity: string;
|
|
18
|
+
/** Persisted authority for global numeric pins; absent values invalidate ID pins. */
|
|
19
|
+
credentialPinStoreIdentity?: string;
|
|
20
|
+
credentialRankingMode: CredentialRankingMode;
|
|
21
|
+
credentialPins: Readonly<Record<string, string>>;
|
|
22
|
+
}
|
|
23
|
+
export type StartupAuthConfigErrorKind = "unreadable" | "invalid-yaml" | "non-mapping-root" | "invalid-auth" | "invalid-broker" | "invalid-gateway" | "invalid-ranking-mode" | "invalid-credential-pins";
|
|
24
|
+
/** A malformed startup-auth config aborts resolution rather than downgrading to local authority. */
|
|
25
|
+
export declare class StartupAuthConfigError extends Error {
|
|
26
|
+
readonly kind: StartupAuthConfigErrorKind;
|
|
27
|
+
readonly name = "StartupAuthConfigError";
|
|
28
|
+
readonly code: StartupAuthConfigErrorKind;
|
|
29
|
+
readonly causeClass: StartupAuthConfigErrorKind;
|
|
30
|
+
constructor(kind: StartupAuthConfigErrorKind, configPath: string);
|
|
31
|
+
}
|
|
32
|
+
/** JSON-schema pattern shared with the runtime persisted-selector grammar. */
|
|
33
|
+
export declare const PERSISTED_CREDENTIAL_SELECTOR_PATTERN = "^(id:[1-9][0-9]*|email:[^@\\s]+@[^@\\s]+|account:\\S+)$";
|
|
34
|
+
/** Path to the local bearer token file. Created on the broker host by `gjc auth-broker token`. */
|
|
35
|
+
export declare function getAuthBrokerTokenFilePath(): string;
|
|
36
|
+
/** Validate the persisted selector grammar used by `auth.credentialPins`. */
|
|
37
|
+
export declare function parsePersistedCredentialSelector(value: string): AuthCredentialSelector | undefined;
|
|
38
|
+
export declare function isValidPersistedCredentialSelector(value: string): boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Resolve one typed startup-auth snapshot from trusted env and global config.
|
|
41
|
+
* Project settings are intentionally not read here, so project-scoped pins
|
|
42
|
+
* cannot influence credential selection.
|
|
43
|
+
*/
|
|
44
|
+
export declare function resolveStartupAuthConfig(agentDir?: string): Promise<StartupAuthConfigSnapshot>;
|