@gajae-code/coding-agent 0.18.11 → 0.19.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 +760 -0
- package/dist/types/async/job-manager.d.ts +7 -3
- package/dist/types/async/result-formatting.d.ts +2 -0
- package/dist/types/autoresearch/git.d.ts +1 -1
- package/dist/types/capability/fs.d.ts +2 -2
- package/dist/types/capability/rule.d.ts +7 -2
- package/dist/types/cli/accounts-cli.d.ts +2 -2
- package/dist/types/cli/append-system-prompt.d.ts +6 -0
- package/dist/types/cli/args.d.ts +7 -2
- package/dist/types/cli/customize-doctor-precedence.d.ts +16 -0
- package/dist/types/cli/customize-doctor.d.ts +4 -3
- package/dist/types/cli/doctor/install-repairs.d.ts +4 -1
- package/dist/types/cli/install-activation.d.ts +10 -4
- package/dist/types/cli/public-command-errors.d.ts +2 -0
- package/dist/types/cli/root-flags.d.ts +0 -12
- package/dist/types/cli/update-cli.d.ts +21 -3
- package/dist/types/cli-main.d.ts +0 -6
- package/dist/types/cli-ordinary.d.ts +2 -2
- package/dist/types/commands/accounts.d.ts +2 -1
- package/dist/types/commands/launch.d.ts +0 -6
- package/dist/types/commands/migrate.d.ts +1 -1
- package/dist/types/commands/sdk.d.ts +13 -0
- package/dist/types/commit/changelog/index.d.ts +1 -0
- package/dist/types/commit/map-reduce/index.d.ts +4 -4
- package/dist/types/config/autorouting-tier-map.d.ts +53 -1
- package/dist/types/config/config-hot-reload-trust.d.ts +12 -0
- package/dist/types/config/config-hot-reload.d.ts +44 -0
- package/dist/types/config/file-lock.d.ts +52 -3
- package/dist/types/config/model-discovery-manager.d.ts +2 -0
- package/dist/types/config/model-profile-activation.d.ts +79 -9
- package/dist/types/config/model-registry.d.ts +72 -8
- package/dist/types/config/model-resolver.d.ts +7 -4
- package/dist/types/config/models-config-schema.d.ts +10 -0
- package/dist/types/config/settings-schema.d.ts +57 -4
- package/dist/types/config/settings.d.ts +33 -1
- package/dist/types/coordinator-mcp/server.d.ts +4 -0
- package/dist/types/customization/import.d.ts +2 -0
- package/dist/types/customization/types.d.ts +1 -1
- package/dist/types/dap/config.d.ts +8 -4
- package/dist/types/dap/session.d.ts +11 -2
- package/dist/types/debug/system-info.d.ts +6 -1
- package/dist/types/discovery/helpers.d.ts +7 -2
- package/dist/types/discovery/mcp-compat.d.ts +3 -1
- package/dist/types/edit/index.d.ts +5 -0
- package/dist/types/edit/modes/patch.d.ts +14 -0
- package/dist/types/edit/modes/replace.d.ts +3 -0
- package/dist/types/eval/py/runtime.d.ts +9 -0
- package/dist/types/exec/bash-executor.d.ts +12 -0
- package/dist/types/export/ttsr.d.ts +19 -0
- package/dist/types/extensibility/extensions/types.d.ts +5 -1
- package/dist/types/extensibility/slash-commands.d.ts +1 -0
- package/dist/types/gjc-runtime/managed-owner-admission.d.ts +3 -0
- package/dist/types/gjc-runtime/ralplan-current-final.d.ts +54 -0
- package/dist/types/gjc-runtime/ralplan-runtime.d.ts +5 -0
- package/dist/types/gjc-runtime/session-state-lock.d.ts +2 -0
- package/dist/types/gjc-runtime/state-runtime.d.ts +0 -2
- package/dist/types/gjc-runtime/tmux-sessions.d.ts +24 -0
- package/dist/types/gjc-runtime/ultragoal-change-set.d.ts +6 -0
- package/dist/types/gjc-runtime/ultragoal-runtime.d.ts +1 -0
- package/dist/types/harness-control-plane/receipt-spool.d.ts +4 -0
- package/dist/types/hindsight/content.d.ts +5 -6
- package/dist/types/internal-urls/types.d.ts +2 -0
- package/dist/types/lsp/clients/swiftlint-client.d.ts +0 -4
- package/dist/types/main.d.ts +23 -18
- package/dist/types/migrate/action-planner.d.ts +10 -1
- package/dist/types/migrate/adapters/codex.d.ts +2 -1
- package/dist/types/migrate/adapters/index.d.ts +42 -1
- package/dist/types/migrate/executor.d.ts +3 -1
- package/dist/types/migrate/hook-module.d.ts +23 -0
- package/dist/types/migrate/report.d.ts +2 -1
- package/dist/types/migrate/types.d.ts +82 -3
- package/dist/types/modes/components/agent-dashboard.d.ts +1 -1
- package/dist/types/modes/components/model-selector.d.ts +43 -0
- package/dist/types/modes/components/settings-selector.d.ts +6 -0
- package/dist/types/modes/controllers/selector-controller.d.ts +2 -0
- package/dist/types/modes/prompt-suggestion-controller.d.ts +1 -1
- package/dist/types/modes/theme/theme.d.ts +1 -0
- package/dist/types/modes/utils/host-status.d.ts +15 -11
- package/dist/types/runtime-mcp/content-limits.d.ts +4 -0
- package/dist/types/runtime-mcp/manager.d.ts +7 -0
- package/dist/types/runtime-mcp/plugin-mcp-name-filter.d.ts +22 -0
- package/dist/types/runtime-mcp/project-host-values.d.ts +11 -5
- package/dist/types/runtime-mcp/tool-bridge.d.ts +4 -0
- package/dist/types/sdk/broker/broker-exit.d.ts +3 -3
- package/dist/types/sdk/broker/broker.d.ts +29 -2
- package/dist/types/sdk/broker/daemon-entry.d.ts +11 -1
- package/dist/types/sdk/broker/doctor-restart.d.ts +1 -1
- package/dist/types/sdk/broker/ensure.d.ts +141 -9
- package/dist/types/sdk/broker/hop.d.ts +45 -0
- package/dist/types/sdk/broker/lifecycle-ledger.d.ts +18 -10
- package/dist/types/sdk/broker/lifecycle.d.ts +22 -0
- package/dist/types/sdk/broker/lock-host-identity.d.ts +5 -0
- package/dist/types/sdk/broker/session-index.d.ts +6 -1
- package/dist/types/sdk/broker/transport.d.ts +2 -0
- package/dist/types/sdk/bus/chat-command-policy.d.ts +2 -1
- package/dist/types/sdk/bus/index.d.ts +44 -0
- package/dist/types/sdk/bus/reconciliation-store.d.ts +10 -0
- package/dist/types/sdk/bus/telegram-daemon-contract.d.ts +9 -1
- package/dist/types/sdk/bus/telegram-daemon.d.ts +2 -0
- package/dist/types/sdk/bus/threaded-render.d.ts +2 -1
- package/dist/types/sdk/cli/session-cli.d.ts +0 -1
- package/dist/types/sdk/host/control/operations.d.ts +5 -1
- package/dist/types/sdk/host/events.d.ts +4 -0
- package/dist/types/sdk/host/host.d.ts +2 -1
- package/dist/types/sdk/host/prompt-image-upload.d.ts +43 -0
- package/dist/types/sdk/host/session-runtime.d.ts +40 -8
- package/dist/types/sdk/host/surface-policy.d.ts +2 -1
- package/dist/types/sdk/lifecycle/service.d.ts +12 -0
- package/dist/types/sdk/prompt-deadline-flush.d.ts +42 -4
- package/dist/types/sdk/prompt-deadline-manager.d.ts +2 -0
- package/dist/types/sdk/prompt-status.d.ts +11 -4
- package/dist/types/sdk/protocol/adapter-validation.d.ts +10 -4
- package/dist/types/sdk/reconciliation-extensions.d.ts +1 -1
- package/dist/types/sdk/session-list.d.ts +1 -1
- package/dist/types/session/agent-session.d.ts +107 -9
- package/dist/types/session/internal/managed-session-scope.d.ts +2 -2
- package/dist/types/session/internal/managed-session-storage.d.ts +1 -1
- package/dist/types/session/internal/native-publish-outcome.d.ts +1 -1
- package/dist/types/session/messages.d.ts +5 -1
- package/dist/types/session/session-manager.d.ts +29 -3
- package/dist/types/session/startup-auth-config.d.ts +24 -2
- package/dist/types/session/streaming-output.d.ts +11 -0
- package/dist/types/session/terminal-abort.d.ts +3 -1
- package/dist/types/session-import/service.d.ts +1 -1
- package/dist/types/skill-state/workflow-mutation-guard.d.ts +20 -4
- package/dist/types/slash-commands/helpers/mcp.d.ts +5 -0
- package/dist/types/slash-commands/helpers/provider-auth-status.d.ts +8 -0
- package/dist/types/ssh/ssh-executor.d.ts +8 -1
- package/dist/types/system-prompt.d.ts +3 -2
- package/dist/types/task/executor.d.ts +19 -2
- package/dist/types/task/role-body.d.ts +11 -0
- package/dist/types/tools/ast-edit-write-path.d.ts +10 -0
- package/dist/types/tools/atomic-file-write.d.ts +9 -7
- package/dist/types/tools/awaiting-input.d.ts +28 -0
- package/dist/types/tools/bash-allowed-prefixes.d.ts +17 -0
- package/dist/types/tools/bash-skill-urls.d.ts +4 -0
- package/dist/types/tools/bash.d.ts +7 -0
- package/dist/types/tools/descriptors.d.ts +15 -2
- package/dist/types/tools/fetch.d.ts +7 -1
- package/dist/types/tools/index.d.ts +2 -0
- package/dist/types/tools/irc.d.ts +5 -3
- package/dist/types/tools/python.d.ts +1 -1
- package/dist/types/tools/report-issue.d.ts +41 -0
- package/dist/types/tools/subagent.d.ts +23 -0
- package/dist/types/tools/tmux-self-injection-guard.d.ts +2 -0
- package/dist/types/tools/ultragoal-ask-guard.d.ts +1 -1
- package/dist/types/tools/write.d.ts +2 -0
- package/dist/types/utils/file-mentions.d.ts +5 -0
- package/dist/types/utils/image-limits.d.ts +7 -0
- package/dist/types/utils/image-loading.d.ts +0 -1
- package/dist/types/utils/open.d.ts +0 -1
- package/dist/types/utils/pasted-image-loading.d.ts +1 -5
- package/dist/types/utils/prompt-suggestion.d.ts +2 -2
- package/dist/types/utils/shell-snapshot.d.ts +2 -0
- package/dist/types/utils/title-generator.d.ts +13 -3
- package/dist/types/web/scrapers/types.d.ts +8 -1
- package/dist/types/web/search/providers/codex.d.ts +6 -7
- package/dist/types/web/search/providers/insane.d.ts +7 -1
- package/dist/types/web/search/providers/searxng.d.ts +5 -0
- package/package.json +10 -9
- package/scripts/acp-conformance-agent.ts +12 -2
- package/scripts/build-binary.ts +2 -1
- package/scripts/capture-subagent-compact-panel-showcase.ts +105 -0
- package/scripts/generate-docs-index.ts +8 -1
- package/scripts/generate-sdk-operation-inventory.ts +38 -4
- package/src/async/job-manager.ts +356 -56
- package/src/async/result-formatting.ts +40 -0
- package/src/autoresearch/git.ts +9 -2
- package/src/autoresearch/prompts/prompt-setup.md +1 -1
- package/src/capability/fs.ts +58 -22
- package/src/capability/index.ts +2 -2
- package/src/capability/rule.ts +11 -2
- package/src/cli/accounts-cli.ts +176 -8
- package/src/cli/append-system-prompt.ts +12 -0
- package/src/cli/args.ts +11 -7
- package/src/cli/auth-broker-cli.ts +21 -11
- package/src/cli/customize-doctor-precedence.ts +31 -0
- package/src/cli/customize-doctor.ts +49 -39
- package/src/cli/doctor/install-repairs.ts +35 -5
- package/src/cli/fast-help.ts +1 -3
- package/src/cli/install-activation.ts +47 -4
- package/src/cli/migrate-cli.ts +19 -6
- package/src/cli/public-command-errors.ts +6 -0
- package/src/cli/root-flags.ts +2 -4
- package/src/cli/stats-cli.ts +9 -5
- package/src/cli/update-cli.ts +471 -13
- package/src/cli-ordinary.ts +7 -2
- package/src/commands/accounts.ts +10 -5
- package/src/commands/harness.ts +25 -15
- package/src/commands/migrate.ts +3 -3
- package/src/commands/sdk.ts +277 -50
- package/src/commands/ultragoal.ts +16 -8
- package/src/commit/agentic/agent.ts +6 -6
- package/src/commit/analysis/conventional.ts +14 -5
- package/src/commit/changelog/index.ts +39 -1
- package/src/commit/map-reduce/index.ts +7 -7
- package/src/commit/message.ts +10 -3
- package/src/commit/pipeline.ts +12 -12
- package/src/config/autorouting-tier-map.ts +50 -1
- package/src/config/config-file.ts +106 -3
- package/src/config/config-hot-reload-trust.ts +148 -0
- package/src/config/config-hot-reload.ts +742 -0
- package/src/config/file-lock.ts +1615 -328
- package/src/config/keybindings.ts +154 -7
- package/src/config/model-bindings-applier.ts +85 -47
- package/src/config/model-discovery-manager.ts +10 -0
- package/src/config/model-profile-activation.ts +889 -148
- package/src/config/model-registry.ts +1706 -205
- package/src/config/model-resolver.ts +52 -22
- package/src/config/models-config-schema.ts +6 -0
- package/src/config/settings-schema.ts +73 -4
- package/src/config/settings.ts +460 -24
- package/src/coordinator-mcp/policy.ts +26 -1
- package/src/coordinator-mcp/server.ts +37 -2
- package/src/crash/sanitize.ts +7 -1
- package/src/customization/import.ts +279 -8
- package/src/customization/inventory.ts +24 -8
- package/src/customization/types.ts +1 -0
- package/src/dap/client.ts +3 -2
- package/src/dap/config.ts +31 -11
- package/src/dap/defaults.json +1 -1
- package/src/dap/session.ts +161 -36
- package/src/debug/crash-diagnostics.ts +89 -6
- package/src/debug/report-bundle.ts +90 -2
- package/src/debug/system-info.ts +8 -3
- package/src/defaults/gjc/extensions/grok-cli-vendor/src/shared/base-url.ts +21 -7
- package/src/discovery/agents-md.ts +1 -1
- package/src/discovery/builtin.ts +4 -3
- package/src/discovery/helpers.ts +25 -16
- package/src/discovery/mcp-compat.ts +120 -17
- package/src/edit/apply-patch/index.ts +12 -1
- package/src/edit/index.ts +204 -22
- package/src/edit/modes/patch.ts +214 -8
- package/src/edit/modes/replace.ts +136 -0
- package/src/eval/js/context-manager.ts +29 -3
- package/src/eval/js/worker-entry.ts +51 -18
- package/src/eval/py/executor.ts +14 -4
- package/src/eval/py/runner.py +144 -5
- package/src/eval/py/runtime.ts +44 -4
- package/src/exec/bash-executor.ts +81 -4
- package/src/exec/bash-shell-guardian.ts +4 -1
- package/src/exec/bash-shell-supervisor.ts +8 -4
- package/src/exec/isolated-shell.ts +5 -1
- package/src/exec/non-interactive-env.ts +0 -1
- package/src/export/html/index.ts +86 -6
- package/src/export/ttsr.ts +176 -1
- package/src/extensibility/custom-tools/wrapper.ts +3 -1
- package/src/extensibility/extensions/loader.ts +10 -1
- package/src/extensibility/extensions/ouroboros-ooo-bridge.ts +63 -1
- package/src/extensibility/extensions/types.ts +5 -1
- package/src/extensibility/hooks/loader.ts +10 -2
- package/src/extensibility/plugins/marketplace/fetcher.ts +2 -2
- package/src/extensibility/plugins/marketplace/manager.ts +36 -10
- package/src/extensibility/slash-commands.ts +5 -0
- package/src/gjc-runtime/gc-runtime.ts +37 -7
- package/src/gjc-runtime/launch-tmux.ts +30 -15
- package/src/gjc-runtime/launch-worktree.test.ts +148 -0
- package/src/gjc-runtime/launch-worktree.ts +101 -14
- package/src/gjc-runtime/managed-owner-admission.ts +46 -2
- package/src/gjc-runtime/ralplan-current-final.ts +294 -0
- package/src/gjc-runtime/ralplan-runtime.ts +95 -1
- package/src/gjc-runtime/session-resolution.ts +38 -6
- package/src/gjc-runtime/session-state-lock.ts +59 -14
- package/src/gjc-runtime/state-runtime.ts +23 -19
- package/src/gjc-runtime/state-writer.ts +109 -5
- package/src/gjc-runtime/tmux-sessions.ts +93 -13
- package/src/gjc-runtime/ultragoal-change-set.ts +90 -11
- package/src/gjc-runtime/ultragoal-guard.ts +9 -1
- package/src/gjc-runtime/ultragoal-runtime.ts +15 -5
- package/src/harness-control-plane/finalize.ts +11 -0
- package/src/harness-control-plane/receipt-spool.ts +105 -28
- package/src/harness-control-plane/storage.ts +124 -6
- package/src/hindsight/content.ts +116 -16
- package/src/hindsight/mental-models.ts +22 -10
- package/src/hindsight/state.ts +7 -4
- package/src/hooks/native-skill-hook.ts +17 -12
- package/src/internal-urls/artifact-protocol.ts +3 -1
- package/src/internal-urls/docs-index.generated.ts +23 -22
- package/src/internal-urls/local-protocol.ts +167 -8
- package/src/internal-urls/types.ts +2 -0
- package/src/lsp/client.ts +2 -1
- package/src/lsp/clients/biome-client.ts +2 -0
- package/src/lsp/clients/swiftlint-client.ts +2 -0
- package/src/lsp/index.ts +29 -0
- package/src/lsp/workspace-path.ts +23 -0
- package/src/main.ts +330 -92
- package/src/memories/index.ts +25 -2
- package/src/migrate/action-planner.ts +574 -2
- package/src/migrate/adapters/claude-code.ts +162 -5
- package/src/migrate/adapters/codex.ts +77 -7
- package/src/migrate/adapters/index.ts +258 -5
- package/src/migrate/adapters/opencode.ts +10 -1
- package/src/migrate/executor.ts +222 -7
- package/src/migrate/hook-module.ts +193 -0
- package/src/migrate/report.ts +63 -2
- package/src/migrate/types.ts +84 -4
- package/src/modes/DESIGN.md +51 -0
- package/src/modes/acp/acp-agent.ts +10 -1
- package/src/modes/acp/permission-mode.ts +18 -1
- package/src/modes/components/agent-dashboard.ts +20 -4
- package/src/modes/components/assistant-message.ts +55 -1
- package/src/modes/components/customization/customization-dashboard.ts +7 -0
- package/src/modes/components/customization/import-wizard.ts +29 -3
- package/src/modes/components/model-selector.ts +157 -103
- package/src/modes/components/settings-selector.ts +103 -37
- package/src/modes/components/welcome.ts +3 -1
- package/src/modes/controllers/command-controller.ts +300 -9
- package/src/modes/controllers/event-controller.ts +1 -1
- package/src/modes/controllers/extension-ui-controller.ts +31 -1
- package/src/modes/controllers/goal-mode-controller.ts +79 -10
- package/src/modes/controllers/input-controller.ts +2 -0
- package/src/modes/controllers/plan-mode-controller.ts +66 -11
- package/src/modes/controllers/runtime-mcp-command-controller.ts +7 -6
- package/src/modes/controllers/selector-controller.ts +76 -7
- package/src/modes/interactive-mode.ts +123 -4
- package/src/modes/prompt-suggestion-controller.ts +1 -1
- package/src/modes/runtime-init.ts +5 -1
- package/src/modes/theme/theme.ts +15 -0
- package/src/modes/utils/host-status.ts +21 -10
- package/src/prompts/agent-fragments/browser-aside.md +2 -2
- package/src/prompts/system/irc-incoming.md +3 -1
- package/src/prompts/tools/debug.md +1 -1
- package/src/prompts/tools/irc.md +1 -1
- package/src/prompts/tools/read.md +1 -1
- package/src/prompts/tools/report-issue.md +13 -0
- package/src/prompts/tools/task.md +1 -1
- package/src/runtime-credential-selector.ts +2 -2
- package/src/runtime-mcp/content-limits.ts +7 -0
- package/src/runtime-mcp/manager-pool.test.ts +5 -4
- package/src/runtime-mcp/manager.ts +40 -3
- package/src/runtime-mcp/oauth-flow.ts +32 -6
- package/src/runtime-mcp/plugin-mcp-name-filter.ts +62 -0
- package/src/runtime-mcp/project-host-values.ts +12 -8
- package/src/runtime-mcp/render.ts +16 -1
- package/src/runtime-mcp/tool-bridge.ts +194 -21
- package/src/runtime-mcp/transports/stdio.ts +2 -1
- package/src/sdk/broker/broker-exit.ts +10 -5
- package/src/sdk/broker/broker.ts +484 -85
- package/src/sdk/broker/daemon-entry.ts +338 -116
- package/src/sdk/broker/doctor-restart.ts +2 -1
- package/src/sdk/broker/ensure.ts +1214 -268
- package/src/sdk/broker/hop.ts +286 -0
- package/src/sdk/broker/lifecycle-ledger.ts +38 -11
- package/src/sdk/broker/lifecycle.ts +102 -6
- package/src/sdk/broker/lock-host-identity.ts +29 -0
- package/src/sdk/broker/session-index.ts +91 -16
- package/src/sdk/broker/transport.ts +17 -1
- package/src/sdk/bus/chat-command-policy.ts +16 -3
- package/src/sdk/bus/chat-daemon-control.ts +2 -2
- package/src/sdk/bus/index.ts +460 -35
- package/src/sdk/bus/reconciliation-store.ts +201 -8
- package/src/sdk/bus/session-control.ts +2 -0
- package/src/sdk/bus/slack-daemon.ts +105 -9
- package/src/sdk/bus/telegram-daemon-contract.ts +9 -1
- package/src/sdk/bus/telegram-daemon.ts +10 -2
- package/src/sdk/bus/threaded-render.ts +20 -1
- package/src/sdk/cli/session-cli.ts +23 -6
- package/src/sdk/host/control/dispatch.ts +13 -1
- package/src/sdk/host/control/operations.ts +10 -1
- package/src/sdk/host/events.ts +67 -4
- package/src/sdk/host/host.ts +8 -2
- package/src/sdk/host/prompt-image-upload.ts +438 -0
- package/src/sdk/host/sdk-surface-parity.test.ts +15 -0
- package/src/sdk/host/session-runtime.test.ts +1737 -129
- package/src/sdk/host/session-runtime.ts +684 -83
- package/src/sdk/host/surface-policy.ts +4 -0
- package/src/sdk/host/websocket-transport.lifecycle.test.ts +90 -2
- package/src/sdk/host/websocket-transport.ts +19 -7
- package/src/sdk/lifecycle/service.ts +15 -1
- package/src/sdk/prompt-deadline-flush.ts +78 -5
- package/src/sdk/prompt-deadline-manager.ts +68 -14
- package/src/sdk/prompt-status.ts +6 -4
- package/src/sdk/protocol/adapter-validation.ts +81 -12
- package/src/sdk/protocol/operation-inventory.generated.json +261 -2
- package/src/sdk/protocol/operation-registry.ts +33 -3
- package/src/sdk/reconciliation-extensions.ts +1 -0
- package/src/sdk/session-list.ts +1 -0
- package/src/sdk/session.ts +237 -97
- package/src/session/agent-session.ts +2726 -479
- package/src/session/history-storage.ts +182 -12
- package/src/session/internal/managed-session-scope.ts +173 -57
- package/src/session/internal/managed-session-storage.ts +85 -12
- package/src/session/internal/native-publish-outcome.ts +5 -1
- package/src/session/messages.ts +47 -6
- package/src/session/session-manager.ts +326 -19
- package/src/session/startup-auth-config.ts +116 -8
- package/src/session/streaming-output.ts +262 -4
- package/src/session/terminal-abort.ts +14 -2
- package/src/session-import/redact.ts +53 -2
- package/src/session-import/service.ts +1 -0
- package/src/skill-state/workflow-mutation-guard.ts +2145 -206
- package/src/slash-commands/builtin-registry.ts +21 -6
- package/src/slash-commands/helpers/credential-switch.ts +10 -5
- package/src/slash-commands/helpers/mcp.ts +11 -3
- package/src/slash-commands/helpers/provider-auth-status.ts +456 -0
- package/src/ssh/ssh-executor.ts +9 -2
- package/src/stt/recorder.ts +26 -9
- package/src/system-prompt.ts +61 -16
- package/src/task/executor.ts +115 -20
- package/src/task/index.ts +389 -175
- package/src/task/role-body.ts +84 -0
- package/src/task/token-log-mode.test.ts +162 -0
- package/src/task/token-log.ts +91 -2
- package/src/tools/archive-reader.ts +650 -37
- package/src/tools/ask.ts +1 -0
- package/src/tools/ast-edit-write-path.ts +64 -0
- package/src/tools/ast-edit.ts +18 -1
- package/src/tools/ast-grep.ts +7 -2
- package/src/tools/atomic-file-write.ts +46 -15
- package/src/tools/auto-generated-guard.ts +15 -3
- package/src/tools/awaiting-input.ts +114 -0
- package/src/tools/bash-allowed-prefixes.ts +214 -6
- package/src/tools/bash-interactive.ts +14 -2
- package/src/tools/bash-skill-urls.ts +58 -5
- package/src/tools/bash.ts +113 -26
- package/src/tools/browser/tab-worker.ts +39 -13
- package/src/tools/browser.ts +17 -7
- package/src/tools/cron.ts +10 -1
- package/src/tools/debug.ts +16 -8
- package/src/tools/descriptors.test.ts +44 -0
- package/src/tools/descriptors.ts +50 -6
- package/src/tools/eval.ts +15 -0
- package/src/tools/fetch.ts +93 -4
- package/src/tools/gh.ts +27 -12
- package/src/tools/image-gen.ts +20 -6
- package/src/tools/index.ts +2 -0
- package/src/tools/irc.ts +5 -3
- package/src/tools/monitor.ts +9 -1
- package/src/tools/output-meta.ts +74 -5
- package/src/tools/python.ts +1 -1
- package/src/tools/read.ts +26 -37
- package/src/tools/recipe/runner.ts +23 -12
- package/src/tools/render-utils.ts +2 -2
- package/src/tools/report-issue.ts +184 -0
- package/src/tools/search.ts +3 -2
- package/src/tools/ssh.ts +274 -8
- package/src/tools/subagent-render.ts +114 -12
- package/src/tools/subagent.ts +118 -5
- package/src/tools/tmux-self-injection-guard.ts +3301 -122
- package/src/tools/todo-write.ts +41 -3
- package/src/tools/tool-catalog.generated.ts +32 -4
- package/src/tools/ultragoal-ask-guard.ts +13 -1
- package/src/tools/write.ts +42 -3
- package/src/tui/tree-list.ts +15 -1
- package/src/utils/commit-message-generator.ts +12 -4
- package/src/utils/external-editor.ts +21 -7
- package/src/utils/file-mentions.ts +75 -7
- package/src/utils/git.ts +38 -7
- package/src/utils/image-limits.ts +8 -0
- package/src/utils/image-loading.ts +1 -1
- package/src/utils/open.ts +73 -4
- package/src/utils/pasted-image-loading.ts +9 -8
- package/src/utils/prompt-suggestion.ts +5 -4
- package/src/utils/shell-snapshot.ts +9 -1
- package/src/utils/title-generator.ts +72 -22
- package/src/web/scrapers/index.ts +3 -1
- package/src/web/scrapers/types.ts +8 -0
- package/src/web/scrapers/youtube.ts +3 -2
- package/src/web/search/index.ts +2 -1
- package/src/web/search/providers/codex.ts +29 -32
- package/src/web/search/providers/insane.ts +91 -28
- package/src/web/search/providers/searxng.ts +62 -10
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import type { NativeDirectoryTreeResult, NativeExactUnlinkResult } from "@gajae-code/natives";
|
|
1
|
+
import type { NativeDirectoryTreeResult, NativeDirectoryTreeSnapshot, NativeExactUnlinkResult } from "@gajae-code/natives";
|
|
2
2
|
import { renameDirectoryNoReplacePathAsync, renameNoReplacePathAsync } from "@gajae-code/natives";
|
|
3
3
|
export interface FileLockOptions {
|
|
4
4
|
staleMs?: number;
|
|
5
|
+
/** Age after which an ownerless removal transition may be adopted; defaults to `staleMs`. */
|
|
6
|
+
orphanTransitionAgeMs?: number;
|
|
5
7
|
retries?: number;
|
|
6
8
|
retryDelayMs?: number;
|
|
7
9
|
signal?: AbortSignal;
|
|
@@ -13,6 +15,7 @@ export interface FileLockOptions {
|
|
|
13
15
|
previousOwnerHostIds?: readonly string[];
|
|
14
16
|
}
|
|
15
17
|
export type FileLockAcquireReason = "acquire_timeout" | "orphan_transition";
|
|
18
|
+
export type FileLockPublicationFailureCode = "access_denied" | "sharing_violation";
|
|
16
19
|
/**
|
|
17
20
|
* Why the acquire path could not retire a lock directory whose owner it had already
|
|
18
21
|
* proven dead. Attached to `FileLockAcquireError` so a host whose lock-removal path
|
|
@@ -38,20 +41,57 @@ export declare class FileLockAcquireError extends Error {
|
|
|
38
41
|
readonly reason: FileLockAcquireReason;
|
|
39
42
|
readonly orphanPath?: string | undefined;
|
|
40
43
|
readonly removalFailure?: FileLockStaleRemovalFailure | undefined;
|
|
44
|
+
readonly publicationFailureCode?: FileLockPublicationFailureCode | undefined;
|
|
45
|
+
/** True only when exhaustion proved a same-host owner process is live. */
|
|
46
|
+
readonly holderIsLive: boolean;
|
|
41
47
|
readonly code: FileLockAcquireReason;
|
|
42
|
-
constructor(filePath: string, lockPath: string, attempts: number, holder: string, reason?: FileLockAcquireReason, orphanPath?: string | undefined, removalFailure?: FileLockStaleRemovalFailure | undefined
|
|
48
|
+
constructor(filePath: string, lockPath: string, attempts: number, holder: string, reason?: FileLockAcquireReason, orphanPath?: string | undefined, removalFailure?: FileLockStaleRemovalFailure | undefined, publicationFailureCode?: FileLockPublicationFailureCode | undefined,
|
|
49
|
+
/** True only when exhaustion proved a same-host owner process is live. */
|
|
50
|
+
holderIsLive?: boolean);
|
|
51
|
+
}
|
|
52
|
+
export declare class FileLockStagingCleanupError extends Error {
|
|
53
|
+
readonly lockPath: string;
|
|
54
|
+
readonly stagingPath: string;
|
|
55
|
+
readonly code: string | undefined;
|
|
56
|
+
constructor(lockPath: string, stagingPath: string, cause: unknown);
|
|
43
57
|
}
|
|
44
58
|
export declare function isFileLockAcquireTimeout(error: unknown): error is FileLockAcquireError;
|
|
59
|
+
type FileLockStagingFileIdentity = {
|
|
60
|
+
dev: string;
|
|
61
|
+
ino: string;
|
|
62
|
+
};
|
|
63
|
+
type FileLockStagingRootIdentity = {
|
|
64
|
+
rootDev: string;
|
|
65
|
+
rootIno: string;
|
|
66
|
+
treeSnapshot?: NativeDirectoryTreeSnapshot;
|
|
67
|
+
infoFileIdentity?: FileLockStagingFileIdentity;
|
|
68
|
+
};
|
|
69
|
+
export declare const FILE_LOCK_ORPHAN_TRANSITION_ADOPTION_AGE_MS: number;
|
|
45
70
|
/** Release retries cover transient handle denial and a competing exact-removal quarantine cleanup. */
|
|
46
71
|
export declare const FILE_LOCK_RELEASE_RETRY_ATTEMPTS = 20;
|
|
47
72
|
export declare const FILE_LOCK_RELEASE_RETRY_DELAY_MS = 25;
|
|
48
73
|
export declare const FileLockTestHooks: {
|
|
49
74
|
afterParentMkdir?: (lockPath: string) => void | Promise<void>;
|
|
75
|
+
afterStagingInfoWrite?: (stagingPath: string) => void | Promise<void>;
|
|
76
|
+
stagingInfoIdentity?: (infoPath: string, capture: () => Promise<FileLockStagingFileIdentity>) => Promise<FileLockStagingFileIdentity>;
|
|
77
|
+
stagingInfoCleanup?: (infoPath: string, callerFd: number, quarantineName: string) => NativeExactUnlinkResult | Promise<NativeExactUnlinkResult>;
|
|
78
|
+
beforeDetachedLockCleanup?: (detachedPath: string) => boolean | Promise<boolean>;
|
|
79
|
+
afterRemovalOwnerPublish?: (transitionPath: string) => void | Promise<void>;
|
|
80
|
+
afterRemovalTransitionMissing?: (transitionPath: string) => void | Promise<void>;
|
|
81
|
+
afterForeignTransitionMissing?: (transitionPath: string) => void | Promise<void>;
|
|
82
|
+
beforeRemovalRecordUnlink?: (recordPath: string) => boolean | Promise<boolean>;
|
|
50
83
|
beforeRemovalOwnerPublish?: (transitionPath: string) => void | Promise<void>;
|
|
84
|
+
cleanupPendingStaging?: (stagingPath: string) => Promise<void>;
|
|
85
|
+
stagingRootIdentity?: (stagingPath: string) => FileLockStagingRootIdentity | Promise<FileLockStagingRootIdentity>;
|
|
51
86
|
nativePublicationBindings?: () => {
|
|
52
87
|
renameNoReplacePathAsync: typeof renameNoReplacePathAsync;
|
|
53
88
|
renameDirectoryNoReplacePathAsync: typeof renameDirectoryNoReplacePathAsync;
|
|
54
89
|
};
|
|
90
|
+
stagingIdentityEvidence?: () => {
|
|
91
|
+
processIncarnation: string | null;
|
|
92
|
+
startTime: string | null;
|
|
93
|
+
};
|
|
94
|
+
processIncarnation?: (pid: number) => string | null;
|
|
55
95
|
nativeQuarantineBindings?: () => NativeFileLockBindings;
|
|
56
96
|
nativeExactRemovalProbe?: () => boolean | Promise<boolean>;
|
|
57
97
|
};
|
|
@@ -170,6 +210,15 @@ type NativeFileLockBindings = {
|
|
|
170
210
|
}, detachOnly?: boolean): NativeExactUnlinkResult;
|
|
171
211
|
};
|
|
172
212
|
export declare function acquireFileLock(filePath: string, options?: FileLockOptions): Promise<() => Promise<void>>;
|
|
213
|
+
/**
|
|
214
|
+
* Describes the retained removal transition blocking `filePath`, if one exists.
|
|
215
|
+
*
|
|
216
|
+
* `acquireFileLock` reports this on exhaustion, but a caller whose own budget
|
|
217
|
+
* aborts the acquisition first would otherwise never learn that a stale
|
|
218
|
+
* transition — not ordinary contention — is what blocked it. Such a caller can
|
|
219
|
+
* ask directly after an abort so the block is surfaced instead of swallowed.
|
|
220
|
+
*/
|
|
221
|
+
export declare function describeRetainedLockTransition(filePath: string, options?: FileLockOptions): Promise<FileLockAcquireError | undefined>;
|
|
173
222
|
/**
|
|
174
223
|
* Serializes all contenders, including callers in the same process. Because this
|
|
175
224
|
* API exposes no ownership token, recursive acquisition is indistinguishable
|
|
@@ -177,7 +226,7 @@ export declare function acquireFileLock(filePath: string, options?: FileLockOpti
|
|
|
177
226
|
* that fact through its own `lockHeld` path instead of acquiring it again.
|
|
178
227
|
*/
|
|
179
228
|
export declare function withFileLock<T>(filePath: string, fn: () => Promise<T>, options?: FileLockOptions): Promise<T>;
|
|
180
|
-
/**
|
|
229
|
+
/** Return a name-encoded staging PID for GC discovery. */
|
|
181
230
|
export declare function fileLockStagingOwnerPid(name: string): number | null;
|
|
182
231
|
export interface FileLockStagingResult {
|
|
183
232
|
path: string;
|
|
@@ -53,6 +53,8 @@ export declare class ModelDiscoveryManager<TProvider extends DiscoveryProvider>
|
|
|
53
53
|
get providers(): readonly TProvider[];
|
|
54
54
|
providerIds(): Set<string>;
|
|
55
55
|
getState(provider: string): ProviderDiscoveryState | undefined;
|
|
56
|
+
/** Retain accepted discovery evidence for unchanged providers during a local reload. */
|
|
57
|
+
retainStatesFrom(source: ModelDiscoveryManager<TProvider>, providers: ReadonlySet<string>): void;
|
|
56
58
|
invalidate(provider: string): void;
|
|
57
59
|
loadCached(provider: TProvider, cacheDbPath?: string, expectedProvenance?: string): readonly Model<Api>[];
|
|
58
60
|
beginRefresh(provider: string): DiscoveryRefreshToken;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ThinkingLevel } from "@gajae-code/agent-core";
|
|
2
2
|
import { type Api, type Model } from "@gajae-code/ai/core";
|
|
3
|
-
import type { AgentSession, DefaultFallbackRuntimeState } from "../session/agent-session";
|
|
3
|
+
import type { AgentSession, AgentSessionProfileInstalledOverrideState, DefaultFallbackRuntimeState } from "../session/agent-session";
|
|
4
4
|
import { type ModelProfileDefinition } from "./model-profiles";
|
|
5
5
|
export { resolveModelProfileName } from "./model-profile-contract";
|
|
6
6
|
import { type GjcModelAssignmentTargetId, type ModelRegistry } from "./model-registry";
|
|
@@ -13,10 +13,20 @@ type UserCanonicalVariantSelection = {
|
|
|
13
13
|
type ModelProfileActivationSession = Pick<AgentSession, "model" | "thinkingLevel" | "sessionId" | "getConfiguredModelChain" | "setConfiguredModelChain"> & {
|
|
14
14
|
credentialSessionId?: string;
|
|
15
15
|
setModelTemporary?: AgentSession["setModelTemporary"];
|
|
16
|
-
setActiveModelProfile?: (name: string | undefined) => void;
|
|
16
|
+
setActiveModelProfile?: (name: string | undefined, activatedByThisProcess?: boolean) => void;
|
|
17
17
|
getActiveModelProfile?: () => string | undefined;
|
|
18
|
+
getActivatedModelProfile?: () => string | undefined;
|
|
18
19
|
/** Record which runtime override keys this activation installed (session-scoped). */
|
|
19
|
-
noteProfileInstalledOverrides?: (modelRoles: readonly string[], agentModelOverrides: readonly string[], preProfileModel: Model<Api> | undefined
|
|
20
|
+
noteProfileInstalledOverrides?: (modelRoles: readonly string[], agentModelOverrides: readonly string[], preProfileModel: Model<Api> | undefined, baseline?: {
|
|
21
|
+
modelRoles: Readonly<Record<string, ModelSelectorValue>>;
|
|
22
|
+
agentModelOverrides: Readonly<Record<string, ModelSelectorValue>>;
|
|
23
|
+
}, installed?: {
|
|
24
|
+
modelRoles: Readonly<Record<string, ModelSelectorValue>>;
|
|
25
|
+
agentModelOverrides: Readonly<Record<string, ModelSelectorValue>>;
|
|
26
|
+
}, manual?: {
|
|
27
|
+
modelRoles: readonly string[];
|
|
28
|
+
agentModelOverrides: readonly string[];
|
|
29
|
+
}, configuredDefaultChain?: readonly string[]) => void;
|
|
20
30
|
/** Drop the recorded profile-installed override keys (e.g. after materialization). */
|
|
21
31
|
clearProfileInstalledOverrides?: () => void;
|
|
22
32
|
/** Current profile-installed override keys, for deriving the activation base. */
|
|
@@ -24,11 +34,15 @@ type ModelProfileActivationSession = Pick<AgentSession, "model" | "thinkingLevel
|
|
|
24
34
|
modelRoles: readonly string[];
|
|
25
35
|
agentModelOverrides: readonly string[];
|
|
26
36
|
};
|
|
37
|
+
/** Profile-installed baselines, preserved when a refreshed profile drops an assignment. */
|
|
38
|
+
getProfileInstalledOverrideState?: () => AgentSessionProfileInstalledOverrideState;
|
|
39
|
+
restoreProfileInstalledOverrideState?: (state: AgentSessionProfileInstalledOverrideState) => void;
|
|
27
40
|
/** Re-apply vendor-separated delegation (task tool + prompt) after the role layer changed. */
|
|
28
41
|
syncEagerDelegation?: () => Promise<void>;
|
|
29
42
|
getSessionDefaultModelSelector?: () => string | undefined;
|
|
30
43
|
recordResumeDefaultModel?: (selector: string | undefined) => void;
|
|
31
44
|
getUserCanonicalVariantSelection?: () => UserCanonicalVariantSelection;
|
|
45
|
+
getUserModelSelectionRevision?: () => number;
|
|
32
46
|
seedDefaultFallbackResolution?: (activeIndex: number, skips: Array<{
|
|
33
47
|
selector: string;
|
|
34
48
|
reason: string;
|
|
@@ -36,7 +50,10 @@ type ModelProfileActivationSession = Pick<AgentSession, "model" | "thinkingLevel
|
|
|
36
50
|
getDefaultFallbackRuntimeState?: () => DefaultFallbackRuntimeState;
|
|
37
51
|
restoreDefaultFallbackRuntimeState?: (state: DefaultFallbackRuntimeState) => void;
|
|
38
52
|
restoreModelSelectionForRollback?: AgentSession["restoreModelSelectionForRollback"];
|
|
39
|
-
|
|
53
|
+
prepareModelSelectionForProfileActivation?: AgentSession["prepareModelSelectionForProfileActivation"];
|
|
54
|
+
commitPreparedProfileModelSelection?: AgentSession["commitPreparedProfileModelSelection"];
|
|
55
|
+
finishPreparedProfileModelSelection?: AgentSession["finishPreparedProfileModelSelection"];
|
|
56
|
+
modelRegistry?: Pick<ModelRegistry, "getSessionCanonicalVariant" | "restoreSessionCanonicalVariant" | "clearCanonicalVariant" | "getModelProfile" | "getAvailable" | "lookupAliasExists" | "resolveModelByLookupAlias" | "authStorage" | "isCredentiallessProvider"> & Partial<Pick<ModelRegistry, "seedCanonicalVariant">>;
|
|
40
57
|
getConfiguredModelChainState?: (role: string) => ConfiguredModelChainState | undefined;
|
|
41
58
|
};
|
|
42
59
|
type ConfiguredModelChainState = {
|
|
@@ -45,18 +62,46 @@ type ConfiguredModelChainState = {
|
|
|
45
62
|
identity?: string;
|
|
46
63
|
explicitHead: boolean;
|
|
47
64
|
};
|
|
65
|
+
type PublishedModelProfileActivationState = {
|
|
66
|
+
model: Model<Api> | undefined;
|
|
67
|
+
thinkingLevel: ThinkingLevel | undefined;
|
|
68
|
+
modelRolesOverride: Readonly<Record<string, ModelSelectorValue>> | undefined;
|
|
69
|
+
agentModelOverridesOverride: Readonly<Record<string, ModelSelectorValue>> | undefined;
|
|
70
|
+
defaultChainState: ConfiguredModelChainState | undefined;
|
|
71
|
+
defaultFallbackRuntimeState: DefaultFallbackRuntimeState | undefined;
|
|
72
|
+
activeModelProfile: string | undefined;
|
|
73
|
+
activatedModelProfile: string | undefined;
|
|
74
|
+
profileInstalledOverrideState: AgentSessionProfileInstalledOverrideState | undefined;
|
|
75
|
+
sessionDefaultModel: string | undefined;
|
|
76
|
+
persistedModelRoles: Readonly<Record<string, ModelSelectorValue>> | undefined;
|
|
77
|
+
persistedAgentModelOverrides: Readonly<Record<string, ModelSelectorValue>> | undefined;
|
|
78
|
+
persistedDefaultProfile: string | undefined;
|
|
79
|
+
persistedDefaultThinkingLevel: Exclude<ThinkingLevel, "inherit"> | undefined;
|
|
80
|
+
defaultThinkingLevelOverride: Exclude<ThinkingLevel, "inherit"> | undefined;
|
|
81
|
+
defaultProfileOverride: string | undefined;
|
|
82
|
+
};
|
|
48
83
|
export interface PrepareModelProfileActivationOptions {
|
|
49
84
|
session: ModelProfileActivationSession;
|
|
50
|
-
modelRegistry: Pick<ModelRegistry, "getModelProfile" | "getModelProfiles" | "getAvailableModelProfileNames" | "getApiKeyForProvider" | "getAll" | "resolveCanonicalModel" | "getCanonicalVariants" | "getCanonicalId" | "isSelectorCircuitOpen"> & Partial<Pick<ModelRegistry, "getAvailable" | "resolveModelByLookupAlias" | "lookupAliasExists" | "clearCanonicalVariant" | "seedCanonicalVariant" | "getSessionCanonicalVariant" | "restoreSessionCanonicalVariant" | "getConfiguredProviderIds" | "isKnownProvider">> & {
|
|
85
|
+
modelRegistry: Pick<ModelRegistry, "getModelProfile" | "getModelProfiles" | "getAvailableModelProfileNames" | "getApiKeyForProvider" | "getAll" | "resolveCanonicalModel" | "getCanonicalVariants" | "getCanonicalId" | "isSelectorCircuitOpen"> & Partial<Pick<ModelRegistry, "getAvailable" | "hasUsableAuthForProvider" | "isStagedReloadCandidate" | "resolveModelByLookupAlias" | "lookupAliasExists" | "clearCanonicalVariant" | "seedCanonicalVariant" | "getSessionCanonicalVariant" | "restoreSessionCanonicalVariant" | "getConfiguredProviderIds" | "getConfiguredModelBindings" | "isKnownProvider">> & {
|
|
51
86
|
getError?: ModelRegistry["getError"];
|
|
52
87
|
authStorage?: ModelRegistry["authStorage"];
|
|
53
88
|
};
|
|
54
89
|
settings: Pick<Settings, "get" | "getGlobal" | "getOverride">;
|
|
90
|
+
/** Live mutation target when `settings` is a validated staged view. */
|
|
91
|
+
settingsForApply?: Settings;
|
|
92
|
+
prepareSessionModelSelection?: boolean;
|
|
93
|
+
preserveManualOverrides?: boolean;
|
|
94
|
+
preserveCanonicalVariant?: boolean;
|
|
95
|
+
signal?: AbortSignal;
|
|
55
96
|
profileName: string;
|
|
56
97
|
}
|
|
57
98
|
export interface ApplyModelProfileActivationOptions {
|
|
58
99
|
persistDefault?: boolean;
|
|
59
100
|
thinkingLevelOverride?: ThinkingLevel;
|
|
101
|
+
preserveDefaultModelSelection?: boolean;
|
|
102
|
+
preserveLiveModelSelection?: boolean;
|
|
103
|
+
deferRuntimePublication?: boolean;
|
|
104
|
+
signal?: AbortSignal;
|
|
60
105
|
/** Cancels deferred activation if a newer user model selection exists. */
|
|
61
106
|
isCurrent?: () => boolean;
|
|
62
107
|
}
|
|
@@ -77,11 +122,16 @@ export interface PreparedModelProfileActivation {
|
|
|
77
122
|
previousDefaultProfileOverride: string | undefined;
|
|
78
123
|
previousPersistedDefaultProfile: string | undefined;
|
|
79
124
|
previousPersistedDefaultThinkingLevel: Exclude<ThinkingLevel, "inherit"> | undefined;
|
|
80
|
-
previousDefaultThinkingLevelOverride: ThinkingLevel | undefined;
|
|
125
|
+
previousDefaultThinkingLevelOverride: Exclude<ThinkingLevel, "inherit"> | undefined;
|
|
81
126
|
baseAgentModelOverrides: Record<string, ModelSelectorValue>;
|
|
82
127
|
baseModelRoles: Record<string, ModelSelectorValue>;
|
|
83
128
|
previousDefaultChain: readonly string[] | undefined;
|
|
84
129
|
previousDefaultChainState: ConfiguredModelChainState | undefined;
|
|
130
|
+
previousProfileInstalledOverrideState: AgentSessionProfileInstalledOverrideState | undefined;
|
|
131
|
+
preparedDefaultModelSelection: Awaited<ReturnType<NonNullable<ModelProfileActivationSession["prepareModelSelectionForProfileActivation"]>>> | undefined;
|
|
132
|
+
defaultChainPublished: boolean;
|
|
133
|
+
defaultModelPublished: boolean;
|
|
134
|
+
publishedState: PublishedModelProfileActivationState | undefined;
|
|
85
135
|
previousDefaultFallbackRuntimeState: DefaultFallbackRuntimeState | undefined;
|
|
86
136
|
defaultModel: Model<Api> | undefined;
|
|
87
137
|
defaultThinkingLevel: ThinkingLevel | undefined;
|
|
@@ -96,7 +146,10 @@ export interface PreparedModelProfileActivation {
|
|
|
96
146
|
}>;
|
|
97
147
|
modelRoles: Record<string, ModelSelectorValue>;
|
|
98
148
|
agentModelOverrides: Record<string, ModelSelectorValue>;
|
|
149
|
+
manualModelRoleOverrides: ReadonlySet<string>;
|
|
150
|
+
manualAgentModelOverrides: ReadonlySet<string>;
|
|
99
151
|
previousActiveModelProfile: string | undefined;
|
|
152
|
+
previousActivatedModelProfile: string | undefined;
|
|
100
153
|
/**
|
|
101
154
|
* The session resume default ("provider/id") captured BEFORE activation —
|
|
102
155
|
* the model resume would restore prior to this profile. Snapshotted
|
|
@@ -119,16 +172,26 @@ export interface PreparedModelProfileActivation {
|
|
|
119
172
|
modelRegistry: PrepareModelProfileActivationOptions["modelRegistry"];
|
|
120
173
|
}
|
|
121
174
|
export interface MaterializeModelProfileAssignmentOptions {
|
|
122
|
-
session: Pick<ModelProfileActivationSession, "model" | "thinkingLevel" | "sessionId" | "credentialSessionId" | "getConfiguredModelChain" | "getConfiguredModelChainState" | "setConfiguredModelChain" | "setActiveModelProfile" | "getActiveModelProfile" | "getDefaultFallbackRuntimeState" | "restoreDefaultFallbackRuntimeState" | "modelRegistry" | "clearProfileInstalledOverrides">;
|
|
175
|
+
session: Pick<ModelProfileActivationSession, "model" | "thinkingLevel" | "sessionId" | "credentialSessionId" | "getConfiguredModelChain" | "getConfiguredModelChainState" | "setConfiguredModelChain" | "setActiveModelProfile" | "getActiveModelProfile" | "getActivatedModelProfile" | "getProfileInstalledOverrideState" | "getDefaultFallbackRuntimeState" | "restoreDefaultFallbackRuntimeState" | "modelRegistry" | "clearProfileInstalledOverrides">;
|
|
123
176
|
settings: Pick<Settings, "clearOverride" | "get" | "getGlobal" | "getOverride" | "override" | "set" | "unset">;
|
|
124
177
|
role: GjcModelAssignmentTargetId;
|
|
125
178
|
selector: string;
|
|
126
179
|
}
|
|
127
180
|
export interface MaterializeModelProfileAssignmentsOptions {
|
|
128
|
-
session: Pick<ModelProfileActivationSession, "model" | "thinkingLevel" | "sessionId" | "credentialSessionId" | "getConfiguredModelChain" | "getConfiguredModelChainState" | "setConfiguredModelChain" | "setActiveModelProfile" | "getActiveModelProfile" | "getDefaultFallbackRuntimeState" | "restoreDefaultFallbackRuntimeState" | "modelRegistry" | "clearProfileInstalledOverrides">;
|
|
181
|
+
session: Pick<ModelProfileActivationSession, "model" | "thinkingLevel" | "sessionId" | "credentialSessionId" | "getConfiguredModelChain" | "getConfiguredModelChainState" | "setConfiguredModelChain" | "setActiveModelProfile" | "getActiveModelProfile" | "getActivatedModelProfile" | "getProfileInstalledOverrideState" | "getDefaultFallbackRuntimeState" | "restoreDefaultFallbackRuntimeState" | "modelRegistry" | "clearProfileInstalledOverrides">;
|
|
129
182
|
settings: Pick<Settings, "clearOverride" | "get" | "getGlobal" | "getOverride" | "override" | "set" | "unset">;
|
|
130
183
|
assignments: ReadonlyMap<GjcModelAssignmentTargetId, string> | Partial<Record<GjcModelAssignmentTargetId, string>>;
|
|
131
184
|
}
|
|
185
|
+
/**
|
|
186
|
+
* Resolve the profile a materialization may consume.
|
|
187
|
+
*
|
|
188
|
+
* Only a profile this process actually activated owns role-only materialization.
|
|
189
|
+
* A persisted profile whose activation failed or was only restored from history
|
|
190
|
+
* stays in place. An explicit default selection may supersede that durable profile.
|
|
191
|
+
*/
|
|
192
|
+
export declare function resolveMaterializationProfileIdentity(activatedProfile: string | undefined, durableProfile: string | undefined, includesDefault: boolean): string | undefined;
|
|
193
|
+
/** Resolve startup-override materialization in activated-chain, profile, then global-default order. */
|
|
194
|
+
export declare function resolveMaterializedDefaultSelector(activatedDefaultChain: readonly string[] | undefined, profileDefault: ModelSelectorValue | undefined, globalDefault: ModelSelectorValue | undefined): ModelSelectorValue | undefined;
|
|
132
195
|
export declare function materializeActiveModelProfileAssignment(options: MaterializeModelProfileAssignmentOptions): boolean;
|
|
133
196
|
export declare function materializeActiveModelProfileAssignments(options: MaterializeModelProfileAssignmentsOptions): boolean;
|
|
134
197
|
export declare class ModelProfileCredentialError extends Error {
|
|
@@ -253,7 +316,12 @@ export declare function resolveModelProfileDefaultChain(options: {
|
|
|
253
316
|
}>;
|
|
254
317
|
export declare function rewriteSelectorForProxy(selector: string, proxyProvider: string, proxyMode: ModelProfileProxyMode, allModels: Model<Api>[], directlyAuthenticated: ReadonlySet<string>, routableProviders: ReadonlySet<string>): string;
|
|
255
318
|
export declare function prepareModelProfileActivation(options: PrepareModelProfileActivationOptions): Promise<PreparedModelProfileActivation>;
|
|
319
|
+
/** Publish the prepared model selection and role layer without awaiting. */
|
|
320
|
+
export declare function publishPreparedModelProfileActivation(prepared: PreparedModelProfileActivation, options?: Pick<ApplyModelProfileActivationOptions, "preserveDefaultModelSelection" | "preserveLiveModelSelection">): void;
|
|
321
|
+
export declare function finishPreparedModelProfileActivation(prepared: PreparedModelProfileActivation): Promise<void>;
|
|
256
322
|
export declare function applyPreparedModelProfileActivation(prepared: PreparedModelProfileActivation, options?: ApplyModelProfileActivationOptions): Promise<void>;
|
|
323
|
+
/** Restore an applied activation when its enclosing settings/registry commit fails. */
|
|
324
|
+
export declare function rollbackPreparedModelProfileActivation(prepared: PreparedModelProfileActivation, options?: ApplyModelProfileActivationOptions): Promise<void>;
|
|
257
325
|
export interface MaterializeModelProfileForDeletionResult {
|
|
258
326
|
modelRoles: Record<string, ModelSelectorValue>;
|
|
259
327
|
agentModelOverrides: Record<string, ModelSelectorValue>;
|
|
@@ -267,8 +335,10 @@ export interface MaterializeModelProfileForDeletionResult {
|
|
|
267
335
|
previousDefaultProfile: string | undefined;
|
|
268
336
|
previousPersistedDefaultProfile: string | undefined;
|
|
269
337
|
previousActiveModelProfile: string | undefined;
|
|
338
|
+
previousActivatedModelProfile: string | undefined;
|
|
270
339
|
previousDefaultChainState: ConfiguredModelChainState | undefined;
|
|
271
340
|
previousDefaultFallbackRuntimeState: DefaultFallbackRuntimeState | undefined;
|
|
341
|
+
previousProfileInstalledOverrideState: AgentSessionProfileInstalledOverrideState | undefined;
|
|
272
342
|
/**
|
|
273
343
|
* Restores the session sticky canonical variant that was snapshotted before
|
|
274
344
|
* materialization cleared it. Internal closure capturing the registry,
|
|
@@ -283,7 +353,7 @@ export declare function materializeModelProfileForDeletion(options: PrepareModel
|
|
|
283
353
|
}): Promise<MaterializeModelProfileForDeletionResult>;
|
|
284
354
|
export declare function restoreMaterializedModelProfileForDeletion(options: {
|
|
285
355
|
settings: Pick<Settings, "clearOverride" | "flushOrThrow" | "override" | "set" | "unset">;
|
|
286
|
-
session: Pick<ModelProfileActivationSession, "setActiveModelProfile" | "setConfiguredModelChain" | "restoreDefaultFallbackRuntimeState">;
|
|
356
|
+
session: Pick<ModelProfileActivationSession, "setActiveModelProfile" | "setConfiguredModelChain" | "restoreDefaultFallbackRuntimeState" | "restoreProfileInstalledOverrideState">;
|
|
287
357
|
snapshot: MaterializeModelProfileForDeletionResult;
|
|
288
358
|
}): Promise<void>;
|
|
289
359
|
export declare function activateModelProfile(options: PrepareModelProfileActivationOptions, applyOptions?: ApplyModelProfileActivationOptions): Promise<void>;
|
|
@@ -5,15 +5,15 @@ import { type ActiveProviderDescriptor } from "../sdk/providers";
|
|
|
5
5
|
import type { AuthStorage } from "../session/auth-storage";
|
|
6
6
|
import type { ActiveSearchModelContext, WebSearchMode } from "../web/search/types";
|
|
7
7
|
import { type BillingPath } from "./billing-path";
|
|
8
|
-
import { ConfigError, ConfigFile } from "./config-file";
|
|
8
|
+
import { ConfigError, ConfigFile, type LoadResult } from "./config-file";
|
|
9
9
|
import { isAuthenticated, kNoAuth } from "./model-auth";
|
|
10
10
|
import { type ConfiguredModelBindings } from "./model-bindings-applier";
|
|
11
11
|
import { type ProviderDiscoveryState } from "./model-discovery-manager";
|
|
12
|
-
import { type ModelPresetRegistryDependencies, type ModelPresetRegistryRefreshResult } from "./model-preset-registry";
|
|
12
|
+
import { type AcceptedModelPresetRegistry, type ModelPresetRegistryDependencies, type ModelPresetRegistryRefreshResult } from "./model-preset-registry";
|
|
13
13
|
export type { ProviderDiscoveryState, ProviderDiscoveryStatus } from "./model-discovery-manager";
|
|
14
14
|
import { type CanonicalModelIndex, type CanonicalModelRecord, type CanonicalModelVariant, type ModelEquivalenceConfig } from "./model-equivalence";
|
|
15
15
|
import { type ModelProfileDefinition } from "./model-profiles";
|
|
16
|
-
import { GJC_MODEL_ASSIGNMENT_TARGET_IDS, type ModelProfileConfig } from "./models-config-schema";
|
|
16
|
+
import { GJC_MODEL_ASSIGNMENT_TARGET_IDS, type ModelProfileConfig, type ModelsConfig } from "./models-config-schema";
|
|
17
17
|
import { type EffectiveProviderAuth } from "./provider-selection-policy";
|
|
18
18
|
import { type Settings } from "./settings";
|
|
19
19
|
export type { BillingPath, BillingPathKind } from "./billing-path";
|
|
@@ -78,6 +78,7 @@ export declare const ModelsConfigFile: ConfigFile<{
|
|
|
78
78
|
sendSessionHeaders?: boolean | undefined;
|
|
79
79
|
supportsResponsesSessionAffinity?: boolean | undefined;
|
|
80
80
|
supportsServiceTier?: boolean | undefined;
|
|
81
|
+
supportsUltrafastTier?: boolean | undefined;
|
|
81
82
|
supportsMultipleSystemMessages?: boolean | undefined;
|
|
82
83
|
supportsReasoningEffort?: boolean | undefined;
|
|
83
84
|
reasoningEffortMap?: {
|
|
@@ -163,6 +164,7 @@ export declare const ModelsConfigFile: ConfigFile<{
|
|
|
163
164
|
sendSessionHeaders?: boolean | undefined;
|
|
164
165
|
supportsResponsesSessionAffinity?: boolean | undefined;
|
|
165
166
|
supportsServiceTier?: boolean | undefined;
|
|
167
|
+
supportsUltrafastTier?: boolean | undefined;
|
|
166
168
|
supportsMultipleSystemMessages?: boolean | undefined;
|
|
167
169
|
supportsReasoningEffort?: boolean | undefined;
|
|
168
170
|
reasoningEffortMap?: {
|
|
@@ -212,6 +214,7 @@ export declare const ModelsConfigFile: ConfigFile<{
|
|
|
212
214
|
extraBody?: Record<string, unknown> | undefined;
|
|
213
215
|
} | undefined;
|
|
214
216
|
cacheRetention?: "long" | "none" | "short" | undefined;
|
|
217
|
+
streamIdleTimeoutMs?: number | undefined;
|
|
215
218
|
}[] | undefined;
|
|
216
219
|
modelOverrides?: Record<string, {
|
|
217
220
|
name?: string | undefined;
|
|
@@ -241,6 +244,7 @@ export declare const ModelsConfigFile: ConfigFile<{
|
|
|
241
244
|
sendSessionHeaders?: boolean | undefined;
|
|
242
245
|
supportsResponsesSessionAffinity?: boolean | undefined;
|
|
243
246
|
supportsServiceTier?: boolean | undefined;
|
|
247
|
+
supportsUltrafastTier?: boolean | undefined;
|
|
244
248
|
supportsMultipleSystemMessages?: boolean | undefined;
|
|
245
249
|
supportsReasoningEffort?: boolean | undefined;
|
|
246
250
|
reasoningEffortMap?: {
|
|
@@ -290,10 +294,12 @@ export declare const ModelsConfigFile: ConfigFile<{
|
|
|
290
294
|
extraBody?: Record<string, unknown> | undefined;
|
|
291
295
|
} | undefined;
|
|
292
296
|
cacheRetention?: "long" | "none" | "short" | undefined;
|
|
297
|
+
streamIdleTimeoutMs?: number | undefined;
|
|
293
298
|
}> | undefined;
|
|
294
299
|
disableStrictTools?: boolean | undefined;
|
|
295
300
|
transport?: "pi-native" | undefined;
|
|
296
301
|
cacheRetention?: "long" | "none" | "short" | undefined;
|
|
302
|
+
streamIdleTimeoutMs?: number | undefined;
|
|
297
303
|
openaiCompat?: {
|
|
298
304
|
baseUrl: string;
|
|
299
305
|
apiKey?: string | undefined;
|
|
@@ -325,6 +331,7 @@ interface ProviderOverride {
|
|
|
325
331
|
transport?: Model<Api>["transport"];
|
|
326
332
|
requestTransform?: ModelRequestTransform;
|
|
327
333
|
cacheRetention?: CacheRetention;
|
|
334
|
+
streamIdleTimeoutMs?: number;
|
|
328
335
|
isOAuth?: boolean;
|
|
329
336
|
}
|
|
330
337
|
/**
|
|
@@ -359,7 +366,7 @@ export declare function registrySelectorResolvesToModel(selector: string, index:
|
|
|
359
366
|
* See `xiaomi-tp-discovery-merge.test.ts` and the `refresh()` baseUrl-override
|
|
360
367
|
* regression in `model-registry.test.ts`.
|
|
361
368
|
*/
|
|
362
|
-
export declare function mergeDiscoveredModel<TApi extends Api>(model: Model<TApi>, existing: Model<Api> | undefined, providerOverride?: Pick<ProviderOverride, "baseUrl" | "headers" | "transport" | "requestTransform" | "cacheRetention">): Model<TApi>;
|
|
369
|
+
export declare function mergeDiscoveredModel<TApi extends Api>(model: Model<TApi>, existing: Model<Api> | undefined, providerOverride?: Pick<ProviderOverride, "baseUrl" | "headers" | "transport" | "requestTransform" | "cacheRetention" | "streamIdleTimeoutMs">): Model<TApi>;
|
|
363
370
|
export interface CanonicalModelQueryOptions {
|
|
364
371
|
availableOnly?: boolean;
|
|
365
372
|
candidates?: readonly Model<Api>[];
|
|
@@ -373,6 +380,27 @@ export interface CanonicalModelSelection {
|
|
|
373
380
|
record: CanonicalModelRecord;
|
|
374
381
|
model: Model<Api> | undefined;
|
|
375
382
|
}
|
|
383
|
+
/** Internal pure parser shared by discovery; exported for regression coverage. */
|
|
384
|
+
export declare function extractGoogleOAuthProjectId(value: string | undefined, accessToken: string): string | undefined;
|
|
385
|
+
export interface ModelsConfigReloadCandidate {
|
|
386
|
+
readonly valid: boolean;
|
|
387
|
+
readonly changed: boolean;
|
|
388
|
+
readonly diagnostics: {
|
|
389
|
+
readonly valid: boolean;
|
|
390
|
+
readonly errors: readonly unknown[];
|
|
391
|
+
};
|
|
392
|
+
readonly registry: ModelRegistry;
|
|
393
|
+
isCurrent(): boolean;
|
|
394
|
+
commit(): void;
|
|
395
|
+
rollback(): void;
|
|
396
|
+
finalize(): void;
|
|
397
|
+
}
|
|
398
|
+
interface ModelRegistryInternalOptions {
|
|
399
|
+
readonly configFile: ConfigFile<ModelsConfig>;
|
|
400
|
+
readonly configSource: LoadResult<ModelsConfig>;
|
|
401
|
+
readonly runtimeSource: ModelRegistry;
|
|
402
|
+
readonly acceptedPresets: AcceptedModelPresetRegistry;
|
|
403
|
+
}
|
|
376
404
|
/**
|
|
377
405
|
* Model registry - loads and manages models, resolves API keys via AuthStorage.
|
|
378
406
|
*/
|
|
@@ -382,7 +410,15 @@ export declare class ModelRegistry {
|
|
|
382
410
|
/**
|
|
383
411
|
* @param authStorage - Auth storage for API key resolution
|
|
384
412
|
*/
|
|
385
|
-
constructor(authStorage: AuthStorage, modelsPath?: string, registrySettings?: Pick<Settings, "get" | "getGlobal"> & Partial<Pick<Settings, "commitAtomicBatchWithCurrent">>, modelPresetRegistryDependencies?: ModelPresetRegistryDependencies);
|
|
413
|
+
constructor(authStorage: AuthStorage, modelsPath?: string, registrySettings?: Pick<Settings, "get" | "getGlobal"> & Partial<Pick<Settings, "commitAtomicBatchWithCurrent">>, modelPresetRegistryDependencies?: ModelPresetRegistryDependencies, internalOptions?: ModelRegistryInternalOptions);
|
|
414
|
+
getModelsConfigPath(): string | undefined;
|
|
415
|
+
stageModelsConfigReload(snapshot: {
|
|
416
|
+
path: string;
|
|
417
|
+
text: string | null;
|
|
418
|
+
identity: string;
|
|
419
|
+
}, registrySettings?: Pick<Settings, "get" | "getGlobal">): Promise<ModelsConfigReloadCandidate>;
|
|
420
|
+
withConsumerLease<T>(body: () => T | Promise<T>, signal?: AbortSignal): Promise<T>;
|
|
421
|
+
acquirePublicationFence(signal?: AbortSignal): Promise<() => void>;
|
|
386
422
|
dispose(): Promise<void>;
|
|
387
423
|
onCatalogChanged(listener: () => void): () => void;
|
|
388
424
|
/** Replace the read-only settings snapshot used by profile-scoped resolution. */
|
|
@@ -426,11 +462,25 @@ export declare class ModelRegistry {
|
|
|
426
462
|
getConfiguredModelBindings(): ConfiguredModelBindings | undefined;
|
|
427
463
|
/**
|
|
428
464
|
* Get all models (embedded + accepted registry + custom).
|
|
465
|
+
* Supplying a credential session selects only that session's Google OAuth discovery catalog.
|
|
429
466
|
* If models.yml had errors, returns embedded plus accepted registry models.
|
|
430
467
|
*/
|
|
431
|
-
getAll(): Model<Api>[];
|
|
468
|
+
getAll(credentialSessionId?: string): Model<Api>[];
|
|
432
469
|
/** Provider ids declared in models.yml, including override-only providers. */
|
|
433
470
|
getConfiguredProviderIds(): readonly string[];
|
|
471
|
+
/** Configured API-key sources in models.yml precedence order, excluding absent environment values. */
|
|
472
|
+
getProviderConfigApiKeySources(provider: string): Array<{
|
|
473
|
+
kind: "environment";
|
|
474
|
+
name: string;
|
|
475
|
+
provider: string;
|
|
476
|
+
} | {
|
|
477
|
+
kind: "models-yml";
|
|
478
|
+
provider: string;
|
|
479
|
+
}>;
|
|
480
|
+
/** Environment variable name for a provider API key supplied by runtime setup. */
|
|
481
|
+
getProviderRuntimeApiKeyEnvName(provider: string): string | undefined;
|
|
482
|
+
/** Whether a runtime extension's provider API key is currently installed in AuthStorage. */
|
|
483
|
+
hasRuntimeProviderApiKey(provider: string): boolean;
|
|
434
484
|
/**
|
|
435
485
|
* Whether this registry can serve a provider id from any active source.
|
|
436
486
|
*
|
|
@@ -553,8 +603,9 @@ export declare class ModelRegistry {
|
|
|
553
603
|
* is authoritative for visibility: live discovery only enriches entries and
|
|
554
604
|
* adds unknown ids, and never removes a bundled model. A provider that cannot
|
|
555
605
|
* serve a model reports its own error when the model is used.
|
|
606
|
+
* Without a credential session, project-scoped Google OAuth discoveries are omitted.
|
|
556
607
|
*/
|
|
557
|
-
getAvailable(): Model<Api>[];
|
|
608
|
+
getAvailable(credentialSessionId?: string): Model<Api>[];
|
|
558
609
|
getActiveProviders(): ActiveProviderDescriptor[];
|
|
559
610
|
/**
|
|
560
611
|
* Check whether auth is configured for a model's provider.
|
|
@@ -583,7 +634,7 @@ export declare class ModelRegistry {
|
|
|
583
634
|
/**
|
|
584
635
|
* Find a model by provider and ID.
|
|
585
636
|
*/
|
|
586
|
-
find(provider: string, modelId: string): Model<Api> | undefined;
|
|
637
|
+
find(provider: string, modelId: string, credentialSessionId?: string): Model<Api> | undefined;
|
|
587
638
|
/**
|
|
588
639
|
* Get the base URL associated with a provider, if any model defines one.
|
|
589
640
|
*/
|
|
@@ -600,6 +651,15 @@ export declare class ModelRegistry {
|
|
|
600
651
|
preferredCredentialSelector?: AuthCredentialSelector;
|
|
601
652
|
signal?: AbortSignal;
|
|
602
653
|
}): Promise<string | undefined>;
|
|
654
|
+
/** Get a model API key together with the stored row that resolved it, when any. */
|
|
655
|
+
getApiKeyWithCredentialRowId(model: Model<Api>, sessionId?: string, options?: {
|
|
656
|
+
credentialSelector?: AuthCredentialSelector;
|
|
657
|
+
preferredCredentialSelector?: AuthCredentialSelector;
|
|
658
|
+
signal?: AbortSignal;
|
|
659
|
+
}): Promise<{
|
|
660
|
+
apiKey: string | undefined;
|
|
661
|
+
credentialRowId: number | undefined;
|
|
662
|
+
}>;
|
|
603
663
|
/**
|
|
604
664
|
* Get API key for a provider (e.g., "openai").
|
|
605
665
|
*/
|
|
@@ -608,6 +668,10 @@ export declare class ModelRegistry {
|
|
|
608
668
|
preferredCredentialSelector?: AuthCredentialSelector;
|
|
609
669
|
signal?: AbortSignal;
|
|
610
670
|
}): Promise<string | undefined>;
|
|
671
|
+
/** Check credential availability without resolving keys or refreshing OAuth tokens. */
|
|
672
|
+
hasUsableAuthForProvider(provider: string, sessionId?: string): boolean;
|
|
673
|
+
/** @internal Whether this registry is an unpublished staged reload candidate. */
|
|
674
|
+
isStagedReloadCandidate(): boolean;
|
|
611
675
|
/**
|
|
612
676
|
* Check if a model is using OAuth credentials (subscription).
|
|
613
677
|
*/
|
|
@@ -144,7 +144,7 @@ export declare function resolveModelFromSettings(options: {
|
|
|
144
144
|
/**
|
|
145
145
|
* Resolve a list of override patterns to the first matching model.
|
|
146
146
|
*/
|
|
147
|
-
export declare function resolveModelOverride(modelPatterns: string[], modelRegistry: ModelLookupRegistry, settings?: Settings, sessionId?: string, aliasIntent?: "preset-equivalent" | "reject"): {
|
|
147
|
+
export declare function resolveModelOverride(modelPatterns: string[], modelRegistry: ModelLookupRegistry, settings?: Settings, sessionId?: string, aliasIntent?: "preset-equivalent" | "reject", credentialSessionId?: string): {
|
|
148
148
|
model?: Model<Api>;
|
|
149
149
|
thinkingLevel?: ThinkingLevel;
|
|
150
150
|
explicitThinkingLevel: boolean;
|
|
@@ -164,6 +164,8 @@ export interface ModelChainResolutionOptions {
|
|
|
164
164
|
canonicalSessionId?: string | null;
|
|
165
165
|
credentialSessionId?: string;
|
|
166
166
|
isCredentialUnavailable?: (provider: string) => boolean;
|
|
167
|
+
/** Read-only auth eligibility for staged profile preflight when no access token can be exposed. */
|
|
168
|
+
isProviderAuthAvailable?: (provider: string) => boolean;
|
|
167
169
|
signal?: AbortSignal;
|
|
168
170
|
}
|
|
169
171
|
/**
|
|
@@ -245,7 +247,7 @@ export declare function resolveRoleSelection(roles: readonly string[], settings:
|
|
|
245
247
|
* For each non-glob pattern, alias IDs are preferred over dated versions; otherwise
|
|
246
248
|
* the latest dated version is selected.
|
|
247
249
|
*/
|
|
248
|
-
export declare function resolveModelScope(patterns: string[], modelRegistry: Pick<ModelRegistry, "getAvailable" | "getCanonicalVariants">, preferences?: ModelMatchPreferences): Promise<ScopedModel[]>;
|
|
250
|
+
export declare function resolveModelScope(patterns: string[], modelRegistry: Pick<ModelRegistry, "getAvailable" | "getCanonicalVariants">, preferences?: ModelMatchPreferences, credentialSessionId?: string): Promise<ScopedModel[]>;
|
|
249
251
|
/**
|
|
250
252
|
* Resolve the set of models a session is allowed to use, given the active
|
|
251
253
|
* settings. Starts from `modelRegistry.getAvailable()` (so disabled providers
|
|
@@ -258,7 +260,7 @@ export declare function resolveModelScope(patterns: string[], modelRegistry: Pic
|
|
|
258
260
|
* model matches any pattern — callers MUST treat this as "no usable model"
|
|
259
261
|
* rather than falling back to the global default (see issue #1022).
|
|
260
262
|
*/
|
|
261
|
-
export declare function resolveAllowedModels(modelRegistry: Pick<ModelRegistry, "getAvailable" | "getCanonicalVariants">, settings: Settings | undefined, preferences?: ModelMatchPreferences): Promise<Model<Api>[]>;
|
|
263
|
+
export declare function resolveAllowedModels(modelRegistry: Pick<ModelRegistry, "getAvailable" | "getCanonicalVariants">, settings: Settings | undefined, preferences?: ModelMatchPreferences, credentialSessionId?: string): Promise<Model<Api>[]>;
|
|
262
264
|
export interface ResolveCliModelResult {
|
|
263
265
|
model: Model<Api> | undefined;
|
|
264
266
|
selector?: string;
|
|
@@ -295,11 +297,12 @@ export declare function findInitialModel(options: {
|
|
|
295
297
|
defaultModelId?: string;
|
|
296
298
|
defaultThinkingSelector?: ThinkingLevel;
|
|
297
299
|
modelRegistry: InitialModelRegistry;
|
|
300
|
+
credentialSessionId?: string;
|
|
298
301
|
}): Promise<InitialModelResult>;
|
|
299
302
|
/**
|
|
300
303
|
* Restore model from session, with fallback to available models
|
|
301
304
|
*/
|
|
302
|
-
export declare function restoreModelFromSession(savedProvider: string, savedModelId: string, currentModel: Model<Api> | undefined, shouldPrintMessages: boolean, modelRegistry: RestorableModelRegistry): Promise<{
|
|
305
|
+
export declare function restoreModelFromSession(savedProvider: string, savedModelId: string, currentModel: Model<Api> | undefined, shouldPrintMessages: boolean, modelRegistry: RestorableModelRegistry, credentialSessionId?: string): Promise<{
|
|
303
306
|
model: Model<Api> | undefined;
|
|
304
307
|
fallbackMessage: string | undefined;
|
|
305
308
|
}>;
|
|
@@ -5,6 +5,7 @@ export declare const ModelCompatSchema: z.ZodObject<{
|
|
|
5
5
|
sendSessionHeaders: z.ZodOptional<z.ZodBoolean>;
|
|
6
6
|
supportsResponsesSessionAffinity: z.ZodOptional<z.ZodBoolean>;
|
|
7
7
|
supportsServiceTier: z.ZodOptional<z.ZodBoolean>;
|
|
8
|
+
supportsUltrafastTier: z.ZodOptional<z.ZodBoolean>;
|
|
8
9
|
supportsMultipleSystemMessages: z.ZodOptional<z.ZodBoolean>;
|
|
9
10
|
supportsReasoningEffort: z.ZodOptional<z.ZodBoolean>;
|
|
10
11
|
reasoningEffortMap: z.ZodOptional<z.ZodObject<{
|
|
@@ -76,6 +77,7 @@ export declare const OpenAICompatSchema: z.ZodObject<{
|
|
|
76
77
|
sendSessionHeaders: z.ZodOptional<z.ZodBoolean>;
|
|
77
78
|
supportsResponsesSessionAffinity: z.ZodOptional<z.ZodBoolean>;
|
|
78
79
|
supportsServiceTier: z.ZodOptional<z.ZodBoolean>;
|
|
80
|
+
supportsUltrafastTier: z.ZodOptional<z.ZodBoolean>;
|
|
79
81
|
supportsMultipleSystemMessages: z.ZodOptional<z.ZodBoolean>;
|
|
80
82
|
supportsReasoningEffort: z.ZodOptional<z.ZodBoolean>;
|
|
81
83
|
reasoningEffortMap: z.ZodOptional<z.ZodObject<{
|
|
@@ -265,6 +267,7 @@ export declare const ModelOverrideSchema: z.ZodObject<{
|
|
|
265
267
|
sendSessionHeaders: z.ZodOptional<z.ZodBoolean>;
|
|
266
268
|
supportsResponsesSessionAffinity: z.ZodOptional<z.ZodBoolean>;
|
|
267
269
|
supportsServiceTier: z.ZodOptional<z.ZodBoolean>;
|
|
270
|
+
supportsUltrafastTier: z.ZodOptional<z.ZodBoolean>;
|
|
268
271
|
supportsMultipleSystemMessages: z.ZodOptional<z.ZodBoolean>;
|
|
269
272
|
supportsReasoningEffort: z.ZodOptional<z.ZodBoolean>;
|
|
270
273
|
reasoningEffortMap: z.ZodOptional<z.ZodObject<{
|
|
@@ -345,6 +348,7 @@ export declare const ModelOverrideSchema: z.ZodObject<{
|
|
|
345
348
|
none: "none";
|
|
346
349
|
short: "short";
|
|
347
350
|
}>>;
|
|
351
|
+
streamIdleTimeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
348
352
|
}, z.core.$strict>;
|
|
349
353
|
export type ModelOverride = z.infer<typeof ModelOverrideSchema>;
|
|
350
354
|
export declare const ProviderDiscoverySchema: z.ZodObject<{
|
|
@@ -397,6 +401,7 @@ export declare const ModelsConfigSchema: z.ZodObject<{
|
|
|
397
401
|
sendSessionHeaders: z.ZodOptional<z.ZodBoolean>;
|
|
398
402
|
supportsResponsesSessionAffinity: z.ZodOptional<z.ZodBoolean>;
|
|
399
403
|
supportsServiceTier: z.ZodOptional<z.ZodBoolean>;
|
|
404
|
+
supportsUltrafastTier: z.ZodOptional<z.ZodBoolean>;
|
|
400
405
|
supportsMultipleSystemMessages: z.ZodOptional<z.ZodBoolean>;
|
|
401
406
|
supportsReasoningEffort: z.ZodOptional<z.ZodBoolean>;
|
|
402
407
|
reasoningEffortMap: z.ZodOptional<z.ZodObject<{
|
|
@@ -582,6 +587,7 @@ export declare const ModelsConfigSchema: z.ZodObject<{
|
|
|
582
587
|
sendSessionHeaders: z.ZodOptional<z.ZodBoolean>;
|
|
583
588
|
supportsResponsesSessionAffinity: z.ZodOptional<z.ZodBoolean>;
|
|
584
589
|
supportsServiceTier: z.ZodOptional<z.ZodBoolean>;
|
|
590
|
+
supportsUltrafastTier: z.ZodOptional<z.ZodBoolean>;
|
|
585
591
|
supportsMultipleSystemMessages: z.ZodOptional<z.ZodBoolean>;
|
|
586
592
|
supportsReasoningEffort: z.ZodOptional<z.ZodBoolean>;
|
|
587
593
|
reasoningEffortMap: z.ZodOptional<z.ZodObject<{
|
|
@@ -662,6 +668,7 @@ export declare const ModelsConfigSchema: z.ZodObject<{
|
|
|
662
668
|
none: "none";
|
|
663
669
|
short: "short";
|
|
664
670
|
}>>;
|
|
671
|
+
streamIdleTimeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
665
672
|
}, z.core.$strict>>>;
|
|
666
673
|
modelOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
667
674
|
name: z.ZodOptional<z.ZodString>;
|
|
@@ -731,6 +738,7 @@ export declare const ModelsConfigSchema: z.ZodObject<{
|
|
|
731
738
|
sendSessionHeaders: z.ZodOptional<z.ZodBoolean>;
|
|
732
739
|
supportsResponsesSessionAffinity: z.ZodOptional<z.ZodBoolean>;
|
|
733
740
|
supportsServiceTier: z.ZodOptional<z.ZodBoolean>;
|
|
741
|
+
supportsUltrafastTier: z.ZodOptional<z.ZodBoolean>;
|
|
734
742
|
supportsMultipleSystemMessages: z.ZodOptional<z.ZodBoolean>;
|
|
735
743
|
supportsReasoningEffort: z.ZodOptional<z.ZodBoolean>;
|
|
736
744
|
reasoningEffortMap: z.ZodOptional<z.ZodObject<{
|
|
@@ -811,6 +819,7 @@ export declare const ModelsConfigSchema: z.ZodObject<{
|
|
|
811
819
|
none: "none";
|
|
812
820
|
short: "short";
|
|
813
821
|
}>>;
|
|
822
|
+
streamIdleTimeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
814
823
|
}, z.core.$strict>>>;
|
|
815
824
|
disableStrictTools: z.ZodOptional<z.ZodBoolean>;
|
|
816
825
|
transport: z.ZodOptional<z.ZodLiteral<"pi-native">>;
|
|
@@ -819,6 +828,7 @@ export declare const ModelsConfigSchema: z.ZodObject<{
|
|
|
819
828
|
none: "none";
|
|
820
829
|
short: "short";
|
|
821
830
|
}>>;
|
|
831
|
+
streamIdleTimeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
822
832
|
openaiCompat: z.ZodOptional<z.ZodObject<{
|
|
823
833
|
baseUrl: z.ZodString;
|
|
824
834
|
apiKey: z.ZodOptional<z.ZodString>;
|