@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
|
@@ -70,10 +70,13 @@ export interface ForkContextSeedOptions {
|
|
|
70
70
|
import type { AuthCredentialSelector } from "@gajae-code/ai/core";
|
|
71
71
|
import { type AsyncJob, type AsyncJobDeliveryState, AsyncJobManager, type FoldReason, type JobFoldEvent, type SubagentLifecycle } from "../async";
|
|
72
72
|
import type { Rule } from "../capability/rule";
|
|
73
|
+
import type { ConfigHotReloadCandidate, ConfigHotReloadPaths } from "../config/config-hot-reload";
|
|
73
74
|
import { type ModelRegistry } from "../config/model-registry";
|
|
74
75
|
import { type ResolvedModelRoleValue, type ScopedModelSelection } from "../config/model-resolver";
|
|
76
|
+
import { type ModelSelectorValue } from "../config/model-selector-value";
|
|
75
77
|
import { type PromptTemplate } from "../config/prompt-templates";
|
|
76
78
|
import type { Settings, SkillsSettings } from "../config/settings";
|
|
79
|
+
import { type SettingPath } from "../config/settings-schema";
|
|
77
80
|
import { RawSseDebugBuffer } from "../debug/raw-sse-buffer";
|
|
78
81
|
import { type PythonResult } from "../eval/py/executor";
|
|
79
82
|
import { type BashArtifactSaveResult, type BashResult } from "../exec/bash-executor";
|
|
@@ -99,11 +102,12 @@ import type { NetworkPrewarmRuntime } from "../runtime/network-prewarm-service";
|
|
|
99
102
|
import type { WorkspaceTreeRuntime } from "../runtime/workspace-tree-service";
|
|
100
103
|
import { type ExactMcpServerControlResult, MCPManager } from "../runtime-mcp/manager";
|
|
101
104
|
import type { NotificationSessionController } from "../sdk/bus/session-control";
|
|
102
|
-
import type
|
|
105
|
+
import { type SecretObfuscator } from "../secrets/obfuscator";
|
|
103
106
|
import { type DiscoverableTool, type DiscoverableToolSearchIndex } from "../tool-discovery/tool-index";
|
|
104
107
|
import type { AskAnswerSource, ToolSession } from "../tools";
|
|
105
108
|
import type { CheckpointState } from "../tools/checkpoint";
|
|
106
109
|
import { type TodoItem, type TodoPhase } from "../tools/todo-write";
|
|
110
|
+
import { type EditMode } from "../utils/edit-mode";
|
|
107
111
|
import { type WorkspaceTree } from "../workspace-tree";
|
|
108
112
|
import { type DefaultModelSelectionResult } from "./default-model-selection";
|
|
109
113
|
import { type ConfiguredFallbackChain, type FallbackChainRuntimeState } from "./fallback-chain-controller";
|
|
@@ -301,6 +305,8 @@ export interface AgentSessionConfig {
|
|
|
301
305
|
workflowGatePublication?: "endpoint" | "local";
|
|
302
306
|
/** Tool registry for LSP and settings */
|
|
303
307
|
toolRegistry?: Map<string, AgentTool>;
|
|
308
|
+
/** Publish committed active tool names to tool execution contexts. */
|
|
309
|
+
onToolNamesChanged?: (toolNames: string[]) => void;
|
|
304
310
|
/**
|
|
305
311
|
* Tool objects this session's builder constructed from built-in descriptors, captured
|
|
306
312
|
* before any extension, MCP, or dynamically registered tool could claim their registry
|
|
@@ -368,6 +374,8 @@ export interface AgentSessionConfig {
|
|
|
368
374
|
defaultSelectedMCPServerNames?: string[];
|
|
369
375
|
/** MCP tool names that should seed brand-new sessions created from this AgentSession. */
|
|
370
376
|
defaultSelectedMCPToolNames?: string[];
|
|
377
|
+
/** Conventional autoload MCP names for the current catalog when autoload is not deferred. */
|
|
378
|
+
defaultSelectedConventionalMCPToolNames?: string[];
|
|
371
379
|
/** MCP capabilities that are always active and never part of persisted user selection. */
|
|
372
380
|
mandatoryMCPToolNames?: string[];
|
|
373
381
|
/** TTSR manager for time-traveling stream rules */
|
|
@@ -481,6 +489,10 @@ export interface PromptOptions {
|
|
|
481
489
|
/** Internal host capability; ordinary package callers cannot construct the branded value. */
|
|
482
490
|
sdkRunCapability?: unknown;
|
|
483
491
|
}
|
|
492
|
+
export type QueuedRunStartFailure = {
|
|
493
|
+
readonly disposition: "not-started";
|
|
494
|
+
readonly error: unknown;
|
|
495
|
+
};
|
|
484
496
|
export interface SendUserMessageOptions {
|
|
485
497
|
deliverAs?: QueuedInputDelivery;
|
|
486
498
|
/** Preserve a busy SDK dispatch as queued work across an admission fence. */
|
|
@@ -494,6 +506,8 @@ export interface SendUserMessageOptions {
|
|
|
494
506
|
startsOwnRun?: boolean;
|
|
495
507
|
removed?: boolean;
|
|
496
508
|
}) => void;
|
|
509
|
+
/** Internal positive core refusal, never a provider or teardown failure. */
|
|
510
|
+
onQueuedRunStartFailed?: (failure: QueuedRunStartFailure) => void;
|
|
497
511
|
/** Internal dispatch disposition used before actual queue consumption. */
|
|
498
512
|
onDispatchDisposition?: (promotion: {
|
|
499
513
|
startsOwnRun: boolean;
|
|
@@ -726,6 +740,41 @@ export interface DefaultFallbackRuntimeState {
|
|
|
726
740
|
controller: FallbackChainRuntimeState;
|
|
727
741
|
exhaustedLastTurn: boolean;
|
|
728
742
|
}
|
|
743
|
+
export interface AgentSessionProfileInstalledOverrideState {
|
|
744
|
+
modelRoles: ReadonlyMap<string, ModelSelectorValue | undefined>;
|
|
745
|
+
agentModelOverrides: ReadonlyMap<string, ModelSelectorValue | undefined>;
|
|
746
|
+
installedModelRoles: ReadonlyMap<string, ModelSelectorValue>;
|
|
747
|
+
installedAgentModelOverrides: ReadonlyMap<string, ModelSelectorValue>;
|
|
748
|
+
manualModelRoles: ReadonlySet<string>;
|
|
749
|
+
manualAgentModelOverrides: ReadonlySet<string>;
|
|
750
|
+
configuredAgentModelOverrides: ReadonlySet<string>;
|
|
751
|
+
configuredDefaultChain?: readonly string[];
|
|
752
|
+
preProfileModel: Model | undefined;
|
|
753
|
+
}
|
|
754
|
+
export interface PreparedProfileModelSelection {
|
|
755
|
+
readonly sessionId: string;
|
|
756
|
+
readonly model: Model;
|
|
757
|
+
readonly thinkingLevel: ThinkingLevel | undefined;
|
|
758
|
+
readonly committedThinkingLevel: ThinkingLevel | undefined;
|
|
759
|
+
readonly previousModel: Model | undefined;
|
|
760
|
+
readonly previousThinkingLevel: ThinkingLevel | undefined;
|
|
761
|
+
readonly previousEditMode: EditMode;
|
|
762
|
+
readonly signal: AbortSignal | undefined;
|
|
763
|
+
}
|
|
764
|
+
export interface ConfigurationReloadResult {
|
|
765
|
+
readonly applied: boolean;
|
|
766
|
+
readonly settingsChanged: boolean;
|
|
767
|
+
readonly modelsChanged: boolean;
|
|
768
|
+
readonly changedSettings: readonly SettingPath[];
|
|
769
|
+
}
|
|
770
|
+
export type ConfigurationReloadErrorCode = "SESSION_UNAVAILABLE" | "PATH_CHANGED" | "SETTINGS_INVALID" | "MODELS_INVALID" | "MODEL_UNAVAILABLE" | "ACTIVE_PROFILE_INVALID" | "PUBLICATION_FAILED" | "VALIDATION_CLEANUP_FAILED";
|
|
771
|
+
export declare class ConfigurationReloadError extends Error {
|
|
772
|
+
readonly code: ConfigurationReloadErrorCode;
|
|
773
|
+
readonly retryable: boolean;
|
|
774
|
+
constructor(code: ConfigurationReloadErrorCode, cause?: unknown, options?: {
|
|
775
|
+
readonly retryable?: boolean;
|
|
776
|
+
});
|
|
777
|
+
}
|
|
729
778
|
/** A lost continuation may only settle the emitter/session pair that opened it. */
|
|
730
779
|
export declare function isCurrentWorkflowGateContinuation(currentSessionId: string, expectedSessionId: string, currentEmitter: WorkflowGateEmitter | undefined, expectedEmitter: WorkflowGateEmitter): boolean;
|
|
731
780
|
export declare class AgentSession {
|
|
@@ -779,19 +828,27 @@ export declare class AgentSession {
|
|
|
779
828
|
session_id?: string;
|
|
780
829
|
} | undefined;
|
|
781
830
|
/**
|
|
782
|
-
* Live prompt marker or
|
|
783
|
-
* cwd-local mutation guard must honor after
|
|
831
|
+
* Live prompt marker or durable workflow identity — the effective state the
|
|
832
|
+
* cwd-local mutation guard must honor during and after a workflow prompt.
|
|
784
833
|
*/
|
|
785
834
|
getEffectiveActiveWorkflowSkillState(): {
|
|
786
835
|
skill: string;
|
|
787
836
|
sessionId: string;
|
|
788
837
|
} | undefined;
|
|
838
|
+
/** Refresh durable workflow identity before a terminal or safety-sensitive operation. */
|
|
839
|
+
refreshEffectiveActiveWorkflowSkillState(): Promise<{
|
|
840
|
+
skill: string;
|
|
841
|
+
sessionId: string;
|
|
842
|
+
} | undefined>;
|
|
789
843
|
/** Replace the session-owned MCP manager after a cwd rescope. */
|
|
790
844
|
replaceOwnedMcpManager(next: MCPManager | undefined): Promise<void>;
|
|
791
|
-
/** Swap named custom tools and
|
|
845
|
+
/** Swap named custom tools and restore authoritative MCP selections as late tools arrive. */
|
|
792
846
|
replaceNamedCustomTools(previousNames: readonly string[], nextTools: readonly CustomTool[], options?: {
|
|
793
847
|
mandatoryMCPToolNames?: readonly string[];
|
|
848
|
+
defaultSelectedConventionalMCPToolNames?: readonly string[];
|
|
794
849
|
activateNewTools?: boolean;
|
|
850
|
+
inactiveNewToolNames?: readonly string[];
|
|
851
|
+
persistMCPSelection?: boolean;
|
|
795
852
|
}): Promise<void>;
|
|
796
853
|
/** Best-effort accessor for the active skill's `current_phase` field from
|
|
797
854
|
* its persisted mode-state file. Used by the `skill` tool to enforce the
|
|
@@ -855,6 +912,8 @@ export declare class AgentSession {
|
|
|
855
912
|
* manager's stable control-plane records (they outlive AsyncJob eviction).
|
|
856
913
|
*/
|
|
857
914
|
getSubagentLifecycleStatuses(): SubagentLifecycle[];
|
|
915
|
+
/** Notify UI projections after a committed session-identity transition. */
|
|
916
|
+
notifySessionIdentityChanged(): Promise<void>;
|
|
858
917
|
/**
|
|
859
918
|
* Emit a UI-only notice to the session. Surfaces in interactive mode as a
|
|
860
919
|
* `showWarning` / `showError` / `showStatus` line; non-interactive modes
|
|
@@ -873,6 +932,8 @@ export declare class AgentSession {
|
|
|
873
932
|
* Multiple listeners can be added. Returns unsubscribe function for this listener.
|
|
874
933
|
*/
|
|
875
934
|
subscribe(listener: AgentSessionEventListener): () => void;
|
|
935
|
+
/** Subscribe to committed session identity changes that affect UI projections. */
|
|
936
|
+
subscribeSessionIdentityChanges(listener: () => void | Promise<void>): () => void;
|
|
876
937
|
/**
|
|
877
938
|
* Remove all listeners, flush pending writes, and disconnect from agent.
|
|
878
939
|
* Call this when completely done with the session.
|
|
@@ -958,6 +1019,7 @@ export declare class AgentSession {
|
|
|
958
1019
|
type: "agent_end";
|
|
959
1020
|
}>): void;
|
|
960
1021
|
flushParkedAgentEndForCoordinatorPersistForTests(): void;
|
|
1022
|
+
waitForAgentEndHandlingForTests(): Promise<void>;
|
|
961
1023
|
drainAsyncJobDeliveriesForAcp(options?: {
|
|
962
1024
|
timeoutMs?: number;
|
|
963
1025
|
}): Promise<boolean>;
|
|
@@ -1059,6 +1121,11 @@ export declare class AgentSession {
|
|
|
1059
1121
|
* deliberately bypassed: suppression is runtime state, not user authority.
|
|
1060
1122
|
*/
|
|
1061
1123
|
controlExactMcpServer(action: ExactMcpControlAction, name: string): Promise<ExactMcpControlResult | undefined>;
|
|
1124
|
+
/** Whether the current context has committed persisted, constructor, or caller MCP selection authority. */
|
|
1125
|
+
hasCommittedMCPToolSelectionAuthority(): boolean;
|
|
1126
|
+
/** Whether the current context has committed or pending caller MCP selection authority. */
|
|
1127
|
+
hasMCPToolSelectionAuthority(): boolean;
|
|
1128
|
+
getActiveMCPToolNames(): string[];
|
|
1062
1129
|
getSelectedMCPToolNames(): string[];
|
|
1063
1130
|
isToolDiscoveryEnabled(): boolean;
|
|
1064
1131
|
getDiscoverableTools(filter?: {
|
|
@@ -1066,7 +1133,9 @@ export declare class AgentSession {
|
|
|
1066
1133
|
}): DiscoverableTool[];
|
|
1067
1134
|
getDiscoverableToolSearchIndex(): DiscoverableToolSearchIndex;
|
|
1068
1135
|
getSelectedDiscoveredToolNames(): string[];
|
|
1069
|
-
activateDiscoveredTools(toolNames: string[]
|
|
1136
|
+
activateDiscoveredTools(toolNames: string[], options?: {
|
|
1137
|
+
persistMCPSelection?: boolean;
|
|
1138
|
+
}): Promise<string[]>;
|
|
1070
1139
|
/**
|
|
1071
1140
|
* Reload the SSH tool from disk-backed capability discovery and make the
|
|
1072
1141
|
* refreshed definition visible to the next model call without restarting.
|
|
@@ -1079,8 +1148,15 @@ export declare class AgentSession {
|
|
|
1079
1148
|
* Only tools in the registry can be enabled. Unknown tool names are ignored.
|
|
1080
1149
|
* Also rebuilds the system prompt to reflect the new tool set.
|
|
1081
1150
|
* Changes take effect before the next model call.
|
|
1151
|
+
* Use `explicit: false` for internal filtering and `persistMCPSelection: false` when the live
|
|
1152
|
+
* selection must not be written to the session transcript. Internal mode transitions may set
|
|
1153
|
+
* `retryOnMcpCatalogChange` when a catalog publication must not leave their tool swap unapplied.
|
|
1082
1154
|
*/
|
|
1083
|
-
setActiveToolsByName(toolNames: string[]
|
|
1155
|
+
setActiveToolsByName(toolNames: string[], options?: {
|
|
1156
|
+
explicit?: boolean;
|
|
1157
|
+
persistMCPSelection?: boolean;
|
|
1158
|
+
retryOnMcpCatalogChange?: boolean;
|
|
1159
|
+
}): Promise<void>;
|
|
1084
1160
|
/** Rebuild the base system prompt using the current active tool set. */
|
|
1085
1161
|
refreshBaseSystemPrompt(): Promise<void>;
|
|
1086
1162
|
/**
|
|
@@ -1479,8 +1555,12 @@ export declare class AgentSession {
|
|
|
1479
1555
|
cause?: ModelChangeCause;
|
|
1480
1556
|
onMutationStarted?: () => void;
|
|
1481
1557
|
}): Promise<void>;
|
|
1482
|
-
|
|
1558
|
+
/** History may restore the identity without proving this process activated the profile. */
|
|
1559
|
+
setActiveModelProfile(name: string | undefined, activatedByThisProcess?: boolean): void;
|
|
1560
|
+
markProfileRoleOverrideManual(path: "modelRoles" | "task.agentModelOverrides", role: string): void;
|
|
1483
1561
|
getActiveModelProfile(): string | undefined;
|
|
1562
|
+
/** A restored profile identity is not eligible for role-only materialization until activation succeeds. */
|
|
1563
|
+
getActivatedModelProfile(): string | undefined;
|
|
1484
1564
|
setUnavailableModelProfile(name: string | undefined): void;
|
|
1485
1565
|
getUnavailableModelProfile(): string | undefined;
|
|
1486
1566
|
/** Revision fence for deferred activation after a user model selection. */
|
|
@@ -1492,6 +1572,9 @@ export declare class AgentSession {
|
|
|
1492
1572
|
};
|
|
1493
1573
|
/** Fence deferred startup profile recovery before an explicit control-surface selection. */
|
|
1494
1574
|
markUserModelSelection(): void;
|
|
1575
|
+
getConfigurationPaths(): ConfigHotReloadPaths | undefined;
|
|
1576
|
+
validateConfiguration(candidate: ConfigHotReloadCandidate): Promise<void>;
|
|
1577
|
+
reloadConfiguration(candidate: ConfigHotReloadCandidate, signal: AbortSignal): Promise<ConfigurationReloadResult>;
|
|
1495
1578
|
/**
|
|
1496
1579
|
* Re-apply vendor-separated delegation after a profile activation changed the
|
|
1497
1580
|
* role layer. `eagerTasks` is resolved at prompt build time, but under
|
|
@@ -1502,7 +1585,18 @@ export declare class AgentSession {
|
|
|
1502
1585
|
*/
|
|
1503
1586
|
syncEagerDelegation(): Promise<void>;
|
|
1504
1587
|
/** Record runtime override keys installed by a profile activation. */
|
|
1505
|
-
noteProfileInstalledOverrides(modelRoles: readonly string[], agentModelOverrides: readonly string[], preProfileModel: Model | undefined
|
|
1588
|
+
noteProfileInstalledOverrides(modelRoles: readonly string[], agentModelOverrides: readonly string[], preProfileModel: Model | undefined, baseline?: {
|
|
1589
|
+
modelRoles: Readonly<Record<string, ModelSelectorValue>>;
|
|
1590
|
+
agentModelOverrides: Readonly<Record<string, ModelSelectorValue>>;
|
|
1591
|
+
}, installed?: {
|
|
1592
|
+
modelRoles: Readonly<Record<string, ModelSelectorValue>>;
|
|
1593
|
+
agentModelOverrides: Readonly<Record<string, ModelSelectorValue>>;
|
|
1594
|
+
}, manual?: {
|
|
1595
|
+
modelRoles: readonly string[];
|
|
1596
|
+
agentModelOverrides: readonly string[];
|
|
1597
|
+
}, configuredDefaultChain?: readonly string[]): void;
|
|
1598
|
+
getProfileInstalledOverrideState(): AgentSessionProfileInstalledOverrideState;
|
|
1599
|
+
restoreProfileInstalledOverrideState(state: AgentSessionProfileInstalledOverrideState): void;
|
|
1506
1600
|
/** Drop the recorded profile-installed override keys after materialization. */
|
|
1507
1601
|
clearProfileInstalledOverrides(): void;
|
|
1508
1602
|
/** Current profile-installed override keys, for deriving the activation base. */
|
|
@@ -1628,6 +1722,9 @@ export declare class AgentSession {
|
|
|
1628
1722
|
shouldMutate?: () => boolean;
|
|
1629
1723
|
onMutationStarted?: () => void;
|
|
1630
1724
|
}): Promise<TemporaryProviderSessionScope | void>;
|
|
1725
|
+
prepareModelSelectionForProfileActivation(model: Model, thinkingLevel: ThinkingLevel | undefined, signal?: AbortSignal): Promise<PreparedProfileModelSelection>;
|
|
1726
|
+
commitPreparedProfileModelSelection(prepared: PreparedProfileModelSelection, onThinkingLevelApplied?: (mutationRevision: number) => void): void;
|
|
1727
|
+
finishPreparedProfileModelSelection(prepared: PreparedProfileModelSelection): Promise<void>;
|
|
1631
1728
|
/** Restore the exact live-model state captured before a failed selector transaction. */
|
|
1632
1729
|
restoreModelSelectionForRollback(model: Model | undefined, thinkingLevel: ThinkingLevel | undefined): Promise<void>;
|
|
1633
1730
|
/** Set a durable per-session model from a control surface without exposing credential errors. */
|
|
@@ -1882,7 +1979,8 @@ export declare class AgentSession {
|
|
|
1882
1979
|
* the reply is generated, both the incoming question and the auto-reply are
|
|
1883
1980
|
* queued for injection into the recipient's persisted history so the model
|
|
1884
1981
|
* sees the exchange on its next turn. Injection happens immediately when the
|
|
1885
|
-
* session is idle
|
|
1982
|
+
* session is idle; a busy session steers the exchange into the live run, which
|
|
1983
|
+
* commits it at its next tool boundary.
|
|
1886
1984
|
*/
|
|
1887
1985
|
respondAsBackground(args: {
|
|
1888
1986
|
from: string;
|
|
@@ -87,7 +87,7 @@ export declare function managedDirectoryIdentityForScope(scope: ManagedScope): {
|
|
|
87
87
|
};
|
|
88
88
|
export declare function managedRootForScope(scope: ManagedScope): ManagedDirectoryRoot;
|
|
89
89
|
export type ManagedMigrationPolicy = "copy-retain" | "disabled";
|
|
90
|
-
export type ManagedScopeErrorCode = "cwd_missing" | "cwd_not_directory" | "identity_unavailable" | "network_unsupported" | "sessions_root_unavailable" | "binding_conflict" | "binding_invalid" | "migration_busy" | "managed_gc_journal_capacity_exceeded" | "atomic_unavailable" | "invalid_request" | "durability_failed" | "durability_not_provable" | "capacity_exceeded";
|
|
90
|
+
export type ManagedScopeErrorCode = "cwd_missing" | "cwd_not_directory" | "identity_unavailable" | "network_unsupported" | "sessions_root_unavailable" | "binding_conflict" | "binding_invalid" | "migration_busy" | "managed_gc_journal_capacity_exceeded" | "atomic_unavailable" | "invalid_request" | "permission_denied" | "durability_failed" | "durability_not_provable" | "capacity_exceeded";
|
|
91
91
|
export type ManagedScopeResolution = {
|
|
92
92
|
kind: "resolved";
|
|
93
93
|
scope: ManagedScope;
|
|
@@ -122,7 +122,7 @@ export type ManagedCandidateListing = {
|
|
|
122
122
|
code: "scan_failed" | "unsafe_root" | "invalid_candidate";
|
|
123
123
|
message: string;
|
|
124
124
|
};
|
|
125
|
-
export type ManagedOpenFailure = "migration_busy" | "binding_conflict" | "binding_invalid" | "destination_conflict" | "source_changed" | "unsafe_artifacts" | "artifact_capacity_exceeded" | "managed_gc_journal_capacity_exceeded" | "durability_failed" | "atomic_unavailable" | "invalid_request" | "durability_not_provable" | "migration_retired" | "legacy_migration_disabled" | "managed_storage_unsupported";
|
|
125
|
+
export type ManagedOpenFailure = "migration_busy" | "binding_conflict" | "binding_invalid" | "destination_conflict" | "source_changed" | "unsafe_artifacts" | "artifact_capacity_exceeded" | "managed_gc_journal_capacity_exceeded" | "durability_failed" | "atomic_unavailable" | "permission_denied" | "invalid_request" | "durability_not_provable" | "migration_retired" | "legacy_migration_disabled" | "managed_storage_unsupported";
|
|
126
126
|
export type ManagedOpenCandidateResult = {
|
|
127
127
|
kind: "opened";
|
|
128
128
|
path: string;
|
|
@@ -15,7 +15,7 @@ export declare class ManagedAppendIdentityMismatchError extends Error {
|
|
|
15
15
|
constructor(relativePath: string);
|
|
16
16
|
}
|
|
17
17
|
export declare class ManagedPublishError extends Error {
|
|
18
|
-
readonly classification: "destination_conflict" | "atomic_unavailable" | "invalid_request" | "durability_not_provable" | "identity_mismatch" | "io_error" | "durability_failed";
|
|
18
|
+
readonly classification: "destination_conflict" | "atomic_unavailable" | "invalid_request" | "durability_not_provable" | "identity_mismatch" | "permission_denied" | "io_error" | "durability_failed";
|
|
19
19
|
readonly diagnostic: string;
|
|
20
20
|
readonly stagingCleanupSafe: boolean;
|
|
21
21
|
constructor(classification: ManagedPublishError["classification"], outcome: NativePublishOutcome);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export type NativePublishMutationState = "not_committed" | "committed" | "unknown";
|
|
2
2
|
export type NativePublishDurabilityState = "not_attempted" | "proven" | "not_provable";
|
|
3
|
-
export type NativePublishReason = "none" | "destination_exists" | "atomic_unavailable" | "cross_device" | "permission_denied" | "io_failure" | "interrupted" | "invalid_request" | "identity_violation" | "durability_not_provable" | "unknown";
|
|
3
|
+
export type NativePublishReason = "none" | "destination_exists" | "atomic_unavailable" | "cross_device" | "permission_denied" | "access_denied" | "io_failure" | "interrupted" | "invalid_request" | "identity_violation" | "durability_not_provable" | "unknown";
|
|
4
4
|
export type NativePublishOperation = "direct_rename" | "retained_file" | "retained_tree";
|
|
5
5
|
export type NativePublishPrimitive = "renameat2_noreplace" | "linkat_noreplace" | "mkdirat_renameat_noreplace" | "renameatx_np_excl" | "windows_rename_noreplace" | "unsupported" | "unknown";
|
|
6
6
|
export type NativePublishPhase = "preflight" | "file_sync" | "rename" | "source_unlink" | "source_parent_sync" | "destination_parent_sync" | "terminal_identity" | "complete" | "unknown";
|
|
@@ -72,8 +72,12 @@ export declare const PRE_ADMISSION_ARTIFACT_SPILL_TAIL_BYTES = 4096;
|
|
|
72
72
|
* Build the deterministic inline receipt for a tool result saved before the
|
|
73
73
|
* next provider context is constructed. Byte boundaries never split UTF-8
|
|
74
74
|
* code points, so head/tail recovery remains readable for emoji and CJK text.
|
|
75
|
+
*
|
|
76
|
+
* `redact` runs on the complete text before the cut. The digest stays the
|
|
77
|
+
* caller's hash of the stored artifact; the omitted count is the redacted
|
|
78
|
+
* preview's omitted bytes.
|
|
75
79
|
*/
|
|
76
|
-
export declare function createPreAdmissionArtifactSpillPreview(fullText: string, artifactId: string, digest: string): string;
|
|
80
|
+
export declare function createPreAdmissionArtifactSpillPreview(fullText: string, artifactId: string, digest: string, redact?: (text: string) => string): string;
|
|
77
81
|
/**
|
|
78
82
|
* Message type for bash executions via the ! command.
|
|
79
83
|
*/
|
|
@@ -41,6 +41,17 @@ export interface PreparedNewSession {
|
|
|
41
41
|
readonly artifactsDir: string | null;
|
|
42
42
|
readonly managedLegacyLocalMigrationSource: ManagedLegacyLocalMigrationSource | null;
|
|
43
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* Resident text is a second plaintext copy of assistant and tool output.
|
|
46
|
+
* A cache root inside a Git worktree can be staged by a later `git add`, so
|
|
47
|
+
* that root stays in memory. Both the lexical directory and the canonical
|
|
48
|
+
* directory are classified: a symlink outside the worktree must not hide a
|
|
49
|
+
* target inside it, and a lexical worktree path stays refused when its
|
|
50
|
+
* canonical target is outside. A missing or non-directory root still reaches
|
|
51
|
+
* the resident-cache trust check when both views are outside a worktree.
|
|
52
|
+
* No existing directory within 64 ancestors, or a resolver error, stays in memory.
|
|
53
|
+
*/
|
|
54
|
+
export declare function residentTextCacheRootAllowsDisk(cacheRoot: string): boolean;
|
|
44
55
|
export interface SessionEntryBase {
|
|
45
56
|
type: string;
|
|
46
57
|
id: string;
|
|
@@ -1092,6 +1103,11 @@ export interface ResolvedSessionMatch {
|
|
|
1092
1103
|
session: SessionInfo;
|
|
1093
1104
|
scope: "local" | "global";
|
|
1094
1105
|
}
|
|
1106
|
+
/**
|
|
1107
|
+
* Equal session id first, the same `id ===` check managed resume already uses.
|
|
1108
|
+
* Prefix matching stays for every other argument, in list order.
|
|
1109
|
+
*/
|
|
1110
|
+
export declare function pickResumableSession(sessions: readonly SessionInfo[], sessionArg: string): SessionInfo | undefined;
|
|
1095
1111
|
export declare function resolveResumableSession(sessionArg: string, cwd: string, sessionDir?: string, storage?: SessionStorage, managedAgentDir?: string): Promise<ResolvedSessionMatch | undefined>;
|
|
1096
1112
|
interface SessionManagerStateSnapshot {
|
|
1097
1113
|
sessionId: string;
|
|
@@ -1152,14 +1168,14 @@ export declare const SessionManagerTestHooks: {
|
|
|
1152
1168
|
/**
|
|
1153
1169
|
* Freshness snapshot captured with every async whole-session persistence
|
|
1154
1170
|
* preparation. Immediately before the synchronous persistence transaction, the
|
|
1155
|
-
* live values are compared: a
|
|
1156
|
-
*
|
|
1171
|
+
* live values are compared: a logical lifecycle change aborts; a verified storage
|
|
1172
|
+
* relocation or revision change discards prepared bytes and re-prepares (bounded),
|
|
1157
1173
|
* so a stale snapshot is never published.
|
|
1158
1174
|
*/
|
|
1159
1175
|
export interface PersistenceInputToken {
|
|
1160
1176
|
/** Canonical session file path the prepared bytes target. */
|
|
1161
1177
|
sessionFile: string;
|
|
1162
|
-
/**
|
|
1178
|
+
/** Logical lifecycle identity; storage-only relocation preserves its verified origin. */
|
|
1163
1179
|
lifecycleId: string;
|
|
1164
1180
|
/** Revision of #fileEntries affecting persisted bytes. */
|
|
1165
1181
|
entryRevision: number;
|
|
@@ -1377,6 +1393,16 @@ export declare class SessionManager {
|
|
|
1377
1393
|
}): Promise<void>;
|
|
1378
1394
|
/** Ownership loss remains observable even when an agent event listener aborts the turn. */
|
|
1379
1395
|
getAppendIdentityMismatch(): ManagedAppendIdentityMismatchError | undefined;
|
|
1396
|
+
/**
|
|
1397
|
+
* Register the same-owner task capability used to follow a parent's managed
|
|
1398
|
+
* artifact root after its session move. The synchronous resolver must return
|
|
1399
|
+
* only the current ArtifactManager for the same parent ID and parent transcript
|
|
1400
|
+
* basename; it retains the last verified manager on a logical successor.
|
|
1401
|
+
* Registration captures the exact original manager identity. Unchanged identity
|
|
1402
|
+
* keeps using the child's retained store; a changed identity triggers strict
|
|
1403
|
+
* destination transcript verification before re-rooting.
|
|
1404
|
+
*/
|
|
1405
|
+
registerManagedTranscriptRelocationResolver(resolver: () => ArtifactManager): () => void;
|
|
1380
1406
|
isPersisted(): boolean;
|
|
1381
1407
|
stageDefaultModelSelection(model: string, thinkingLevel: string | undefined, options?: {
|
|
1382
1408
|
readonly appendThinkingLevel: boolean;
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* performed. Environment values are trusted credential sources and take
|
|
7
7
|
* precedence over global config values.
|
|
8
8
|
*/
|
|
9
|
-
import type { AuthCredentialSelector, CredentialRankingMode } from "@gajae-code/ai/core";
|
|
9
|
+
import type { AuthCredentialSelector, ConfiguredCredentialPreference, CredentialRankingMode } from "@gajae-code/ai/core";
|
|
10
10
|
export interface AuthBrokerClientConfig {
|
|
11
11
|
url: string;
|
|
12
12
|
token: string;
|
|
@@ -19,8 +19,10 @@ export interface StartupAuthConfigSnapshot {
|
|
|
19
19
|
credentialPinStoreIdentity?: string;
|
|
20
20
|
credentialRankingMode: CredentialRankingMode;
|
|
21
21
|
credentialPins: Readonly<Record<string, string>>;
|
|
22
|
+
/** Ordered soft per-provider preferences; only portable email/`account:` selectors are accepted. */
|
|
23
|
+
credentialPreferences: Readonly<Record<string, readonly ConfiguredCredentialPreference[]>>;
|
|
22
24
|
}
|
|
23
|
-
export type StartupAuthConfigErrorKind = "unreadable" | "invalid-yaml" | "non-mapping-root" | "invalid-auth" | "invalid-broker" | "invalid-gateway" | "invalid-ranking-mode" | "invalid-credential-pins";
|
|
25
|
+
export type StartupAuthConfigErrorKind = "unreadable" | "invalid-yaml" | "non-mapping-root" | "invalid-auth" | "invalid-broker" | "invalid-gateway" | "invalid-ranking-mode" | "invalid-credential-pins" | "invalid-credential-preferences";
|
|
24
26
|
/** A malformed startup-auth config aborts resolution rather than downgrading to local authority. */
|
|
25
27
|
export declare class StartupAuthConfigError extends Error {
|
|
26
28
|
readonly kind: StartupAuthConfigErrorKind;
|
|
@@ -31,11 +33,31 @@ export declare class StartupAuthConfigError extends Error {
|
|
|
31
33
|
}
|
|
32
34
|
/** JSON-schema pattern shared with the runtime persisted-selector grammar. */
|
|
33
35
|
export declare const PERSISTED_CREDENTIAL_SELECTOR_PATTERN = "^(id:[1-9][0-9]*|email:[^@\\s]+@[^@\\s]+|account:\\S+)$";
|
|
36
|
+
export declare function startupAuthConfigError(agentDir: string, kind: StartupAuthConfigErrorKind): StartupAuthConfigError;
|
|
34
37
|
/** Path to the local bearer token file. Created on the broker host by `gjc auth-broker token`. */
|
|
35
38
|
export declare function getAuthBrokerTokenFilePath(): string;
|
|
36
39
|
/** Validate the persisted selector grammar used by `auth.credentialPins`. */
|
|
37
40
|
export declare function parsePersistedCredentialSelector(value: string): AuthCredentialSelector | undefined;
|
|
38
41
|
export declare function isValidPersistedCredentialSelector(value: string): boolean;
|
|
42
|
+
/** JSON-schema pattern for a preference account; shared with {@link parsePreferenceAccount}. */
|
|
43
|
+
export declare const PREFERENCE_ACCOUNT_PATTERN = "^(email:[^@\\s]+@[^@\\s]+|account:\\S+|[^@\\s:]+@[^@\\s]+)$";
|
|
44
|
+
/**
|
|
45
|
+
* Parse one `auth.credentialPreferences` account: a bare email, `email:<address>`, or `account:<id>`. Numeric row ids
|
|
46
|
+
* are excluded: they are bound to one credential store, and a preference has no store-identity binding to detect a
|
|
47
|
+
* retargeted row.
|
|
48
|
+
*/
|
|
49
|
+
export declare function parsePreferenceAccount(value: string): AuthCredentialSelector | undefined;
|
|
50
|
+
/** A preference cap accepts (0, 100]; 100 moves past the account only once it is blocked. */
|
|
51
|
+
export declare function isValidCredentialPreferenceCap(value: unknown): value is number;
|
|
52
|
+
/** Canonical config text for one preference entry: the account, or a one-key `{ account: cap }` mapping. */
|
|
53
|
+
export type CredentialPreferenceEntryValue = string | Readonly<Record<string, number>>;
|
|
54
|
+
/**
|
|
55
|
+
* Parse one provider's `auth.credentialPreferences` value: a single account, or a non-empty ordered list whose
|
|
56
|
+
* entries are an account (`me@example.com`) or an account with a usage cap in percent (`me@example.com: 75`).
|
|
57
|
+
* Returns undefined for any invalid value, including an account listed twice, so a typo fails closed instead of
|
|
58
|
+
* silently changing the order.
|
|
59
|
+
*/
|
|
60
|
+
export declare function parseCredentialPreferenceList(value: unknown): ConfiguredCredentialPreference[] | undefined;
|
|
39
61
|
/**
|
|
40
62
|
* Resolve one typed startup-auth snapshot from trusted env and global config.
|
|
41
63
|
* Project settings are intentionally not read here, so project-scoped pins
|
|
@@ -3,6 +3,8 @@ export declare const DEFAULT_MAX_LINES = 3000;
|
|
|
3
3
|
export declare const DEFAULT_MAX_BYTES: number;
|
|
4
4
|
export declare const DEFAULT_MAX_COLUMN = 1024;
|
|
5
5
|
export declare const DEFAULT_ARTIFACT_MAX_BYTES: number;
|
|
6
|
+
/** Run `fn` while column caps can see these plain secrets. */
|
|
7
|
+
export declare function runWithOutputRedaction<T>(plainSecrets: readonly string[], fn: () => T): T;
|
|
6
8
|
/**
|
|
7
9
|
* Terminal publisher used when managed artifact storage exposes an ID but no
|
|
8
10
|
* writable pathname. The sink supplies raw content retained up to its artifact
|
|
@@ -167,6 +169,15 @@ export declare function truncateLine(line: string, maxChars?: number): {
|
|
|
167
169
|
text: string;
|
|
168
170
|
wasTruncated: boolean;
|
|
169
171
|
};
|
|
172
|
+
/**
|
|
173
|
+
* Truncate each line to max characters without leaving a configured plain-secret
|
|
174
|
+
* prefix in the retained text. Prior uncapped lines remain in scope because a
|
|
175
|
+
* later line's cut can split a multiline secret.
|
|
176
|
+
*/
|
|
177
|
+
export declare function truncateTextWithSecretAwareness(text: string, maxChars?: number, secrets?: readonly string[]): {
|
|
178
|
+
text: string;
|
|
179
|
+
wasTruncated: boolean;
|
|
180
|
+
};
|
|
170
181
|
/** Shared helper to build a no-truncation result. */
|
|
171
182
|
export declare function noTruncResult(content: string, totalLines?: number, totalBytes?: number): TruncationResult;
|
|
172
183
|
/**
|
|
@@ -114,6 +114,8 @@ export declare function registerOwnedRegistration(key: TurnRegistrationKey, opti
|
|
|
114
114
|
* scope:"owned" abort of that exact attempt must fail closed to uncertainty
|
|
115
115
|
* (review thread P2). */
|
|
116
116
|
export declare function isOwnedAttemptRegistrationIncomplete(lineageIdHash: string, attemptEpoch: number): boolean;
|
|
117
|
+
/** Move fail-closed saturation authority with all ownership state during endpoint rekey. */
|
|
118
|
+
export declare function migrateOwnedAttemptSaturationsForEndpoint(predecessorEndpointId: string, successorEndpointId: string): void;
|
|
117
119
|
/** Exact (jobId, jobGeneration) lookup for completion-origin classification. */
|
|
118
120
|
export declare function lookupOwnedRegistration(jobId: string, jobGeneration: string, endpointId?: string): TurnRegistrationKey | undefined;
|
|
119
121
|
export declare function unregisterOwnedRegistration(key: TurnRegistrationKey): void;
|
|
@@ -231,7 +233,7 @@ export declare function registerOwnedIfLineaged(manager: {
|
|
|
231
233
|
generation?: string;
|
|
232
234
|
status?: string;
|
|
233
235
|
} | undefined;
|
|
234
|
-
}, toolCallId: string | undefined, jobId: string, endpointId?: string): void;
|
|
236
|
+
}, toolCallId: string | undefined, jobId: string, endpointId?: string, ownedRegistrationEndpointId?: string): void;
|
|
235
237
|
/** Retire the exact (endpoint, jobId, jobGeneration) owned registration when
|
|
236
238
|
* its completion delivery is dead-lettered by the manager (delivery-queue
|
|
237
239
|
* overflow or retry exhaustion): no message is injected and no later
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CodexImportError } from "./codex";
|
|
2
|
-
export type SessionImportErrorCode = CodexImportError["code"] | "invalid_request" | "binding_invalid" | "content_too_large" | "destination_conflict" | "publish_uncertain" | "atomic_unavailable" | "durability_not_provable" | "durability_failed" | "identity_mismatch" | "validation_failed" | "io_failed" | "internal_failed";
|
|
2
|
+
export type SessionImportErrorCode = CodexImportError["code"] | "invalid_request" | "binding_invalid" | "content_too_large" | "destination_conflict" | "publish_uncertain" | "atomic_unavailable" | "permission_denied" | "durability_not_provable" | "durability_failed" | "identity_mismatch" | "validation_failed" | "io_failed" | "internal_failed";
|
|
3
3
|
export interface SessionImportFailure {
|
|
4
4
|
status: "failed";
|
|
5
5
|
provider: "codex";
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import type { AgentTool } from "@gajae-code/agent-core";
|
|
2
|
-
import { readVisibleSkillActiveState } from "./active-state";
|
|
2
|
+
import { readVisibleSkillActiveState, type SkillActiveEntry } from "./active-state";
|
|
3
3
|
export declare const DEEP_INTERVIEW_MUTATION_BLOCK_MESSAGE = "Deep-interview phase boundary: continue gathering context/questions/risks and emit a handoff/spec before code edits. Mutation tools and patch execution are blocked while deep-interview is active; finalize specs through `gjc deep-interview --write --stage final` or hand off to an execution phase.";
|
|
4
4
|
export declare const WORKFLOW_STATE_MUTATION_BLOCK_MESSAGE = ".gjc workflow state and artifacts are runtime-owned. Agent mutation tools cannot edit `.gjc/**`; use the sanctioned `gjc` CLI instead.";
|
|
5
5
|
export declare const RALPLAN_MUTATION_BLOCK_MESSAGE = "Ralplan planning phase boundary: keep refining the consensus plan and persist plan artifacts through `gjc ralplan --write` (stage scratch files under a temp dir if needed). Product-code mutation tools and patch execution are blocked while ralplan is active; mutate only after the plan is approved and execution begins.";
|
|
6
6
|
export declare const ULTRAGOAL_GOAL_PLANNING_MUTATION_BLOCK_MESSAGE = "Ultragoal goal-planning phase boundary: finish goal planning and record goals through `gjc ultragoal` before editing code. Product-code mutation tools and patch execution are blocked until goal planning completes and execution begins.";
|
|
7
|
-
export declare const AUTORESEARCH_MUTATION_BLOCK_MESSAGE = "Autoresearch research-only boundary: this workflow produces findings, evidence, and a verdict \u2014 never product code. Product-code mutation tools and patch execution are blocked everywhere, on every branch.
|
|
8
|
-
/**
|
|
9
|
-
|
|
7
|
+
export declare const AUTORESEARCH_MUTATION_BLOCK_MESSAGE = "Autoresearch research-only boundary: this workflow produces findings, evidence, and a verdict \u2014 never product code. Product-code mutation tools and patch execution are blocked everywhere, on every branch. Write the root `autoresearch.sh` only with direct file tools; mission state stays writable through the sanctioned `gjc autoresearch` CLI. Run experiments through the `python` tool, or finish the mission and hand off to an approved implementation workflow.";
|
|
8
|
+
/**
|
|
9
|
+
* Tools whose execute path can mutate product state. `github` is included so
|
|
10
|
+
* side-effect ops share this guard. `eval` and `python` run code that can write
|
|
11
|
+
* files without going through edit, write, or bash.
|
|
12
|
+
*/
|
|
13
|
+
export declare const WORKFLOW_MUTATION_TOOL_NAMES: readonly ["edit", "write", "ast_edit", "bash", "github", "eval", "python"];
|
|
10
14
|
export declare function isWorkflowMutationTool(name: string): boolean;
|
|
11
15
|
type ToolWithEditMode = AgentTool & {
|
|
12
16
|
mode?: unknown;
|
|
@@ -45,6 +49,18 @@ export declare function readWorkflowGuardContext(cwd: string, options?: {
|
|
|
45
49
|
sessionId?: string;
|
|
46
50
|
threadId?: string;
|
|
47
51
|
}): Promise<WorkflowGuardContext>;
|
|
52
|
+
/**
|
|
53
|
+
* Pick the single CURRENT workflow entry among active entries.
|
|
54
|
+
*
|
|
55
|
+
* Steady state has exactly one active workflow skill (handoff demotes the prior
|
|
56
|
+
* to `active:false`, which `listActiveSkills` already filters out). If several
|
|
57
|
+
* are momentarily active, prefer the most-recently-updated entry so a stale
|
|
58
|
+
* planning row (e.g. a still-active ralplan `final`) can never be selected over a
|
|
59
|
+
* newer executor (ultragoal/autoresearch), and a planning *return* (newer `updated_at`)
|
|
60
|
+
* reliably wins. Ties fall back to the resolved top-level `skill`, then to the
|
|
61
|
+
* first entry, matching how the HUD/chain guard pick `activeSkills[0]`.
|
|
62
|
+
*/
|
|
63
|
+
export declare function resolveCurrentWorkflowEntry(entries: SkillActiveEntry[], topLevelSkill: string): SkillActiveEntry;
|
|
48
64
|
export declare function assertWorkflowMutationRawPathsAllowed(input: {
|
|
49
65
|
cwd: string;
|
|
50
66
|
sessionId?: string;
|
|
@@ -1,3 +1,8 @@
|
|
|
1
1
|
import type { ParsedSlashCommand, SlashCommandResult, SlashCommandRuntime } from "../types";
|
|
2
|
+
/**
|
|
3
|
+
* One terminal row for an untrusted MCP server or tool name.
|
|
4
|
+
* Ordinary names are unchanged. Controls, OSC, and line breaks are not.
|
|
5
|
+
*/
|
|
6
|
+
export declare function mcpTerminalLabel(value: string): string;
|
|
2
7
|
/** ACP/text-mode `/mcp` handler. Shared by both dispatchers via the spec. */
|
|
3
8
|
export declare function handleMcpAcp(command: ParsedSlashCommand, runtime: SlashCommandRuntime): Promise<SlashCommandResult>;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ModelRegistry } from "../../config/model-registry";
|
|
2
|
+
import type { AgentSession } from "../../session/agent-session";
|
|
3
|
+
type ProviderAuthStatusSession = Pick<AgentSession, "credentialSessionId"> & {
|
|
4
|
+
modelRegistry: Pick<ModelRegistry, "authStorage" | "getAll" | "getAvailable" | "getConfiguredProviderIds" | "getAuthStorageOwner" | "getProviderConfigApiKeySources" | "getProviderRuntimeApiKeyEnvName" | "hasRuntimeProviderApiKey">;
|
|
5
|
+
};
|
|
6
|
+
/** Format credential provenance for `/provider status` without returning credential values. */
|
|
7
|
+
export declare function buildProviderAuthStatusText(session: ProviderAuthStatusSession): Promise<string>;
|
|
8
|
+
export {};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Settings } from "../config/settings";
|
|
2
|
+
import { type TerminalArtifactPublisher } from "../session/streaming-output";
|
|
2
3
|
import { type SSHConnectionTarget } from "./connection-manager";
|
|
3
4
|
export interface SSHExecutorOptions {
|
|
4
5
|
/** Session settings used for output policy. */
|
|
@@ -16,6 +17,8 @@ export interface SSHExecutorOptions {
|
|
|
16
17
|
/** Artifact path/id for full output storage */
|
|
17
18
|
artifactPath?: string;
|
|
18
19
|
artifactId?: string;
|
|
20
|
+
/** Session-owned publisher for managed sessions without a writable artifact path. */
|
|
21
|
+
artifactPublisher?: TerminalArtifactPublisher;
|
|
19
22
|
}
|
|
20
23
|
export interface SSHResult {
|
|
21
24
|
/** Combined stdout + stderr output (sanitized, possibly truncated) */
|
|
@@ -34,7 +37,11 @@ export interface SSHResult {
|
|
|
34
37
|
outputLines: number;
|
|
35
38
|
/** Number of bytes included in the output text */
|
|
36
39
|
outputBytes: number;
|
|
37
|
-
/** Artifact ID if
|
|
40
|
+
/** Artifact ID if output was saved to artifact storage. */
|
|
38
41
|
artifactId?: string;
|
|
42
|
+
/** Bytes omitted from artifact storage after its hard cap was reached. */
|
|
43
|
+
artifactTruncatedBytes?: number;
|
|
44
|
+
/** Bounded diagnostic when artifact storage failed. */
|
|
45
|
+
artifactFailureDiagnostic?: string;
|
|
39
46
|
}
|
|
40
47
|
export declare function executeSSH(host: SSHConnectionTarget, command: string, options?: SSHExecutorOptions): Promise<SSHResult>;
|
|
@@ -59,8 +59,9 @@ export declare function loadProjectContextFiles(options?: LoadContextFilesOption
|
|
|
59
59
|
depth?: number;
|
|
60
60
|
}>>;
|
|
61
61
|
/**
|
|
62
|
-
* Load the
|
|
63
|
-
*
|
|
62
|
+
* Load the user system prompt customization from SYSTEM.md.
|
|
63
|
+
* A repository SYSTEM.md is untrusted project text. It must not replace the
|
|
64
|
+
* user file or become the customization block.
|
|
64
65
|
*/
|
|
65
66
|
export declare function loadSystemPromptFiles(options?: LoadContextFilesOptions): Promise<string | null>;
|
|
66
67
|
export interface SystemPromptToolMetadata {
|