@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
|
@@ -27,8 +27,10 @@ import { type WorkflowGateEmitter, type WorkflowGateTerminalProof } from "../../
|
|
|
27
27
|
import type { AgentSessionEvent } from "../../session/agent-session";
|
|
28
28
|
import { type SessionWorkLease, type SessionWorkLeaseHandle } from "../../session/session-work-lease";
|
|
29
29
|
import type { AskAnswerSource, AskAnswerSourceResult, AskRemoteControl } from "../../tools";
|
|
30
|
+
import type { AwaitingInputKind } from "../../tools/awaiting-input";
|
|
30
31
|
import { type SessionHostRuntimePublication } from "../broker/lifecycle";
|
|
31
32
|
import { type SessionSdkHost } from "../host";
|
|
33
|
+
import { PromptImageUploadStore } from "../host/prompt-image-upload";
|
|
32
34
|
import { CursorRegistry, RevisionStore } from "../host/query";
|
|
33
35
|
import type { SdkFrame } from "../host/types";
|
|
34
36
|
import { type SdkPromptTerminalOutcome } from "../prompt-status";
|
|
@@ -266,6 +268,13 @@ export declare class PresentationArbiter {
|
|
|
266
268
|
interface SessionRuntime {
|
|
267
269
|
server: NotificationServer;
|
|
268
270
|
host: SessionSdkHost;
|
|
271
|
+
imageUploads: PromptImageUploadStore | undefined;
|
|
272
|
+
releaseAcceptedImage: (correlation: {
|
|
273
|
+
commandId: string;
|
|
274
|
+
turnId: string;
|
|
275
|
+
}) => void;
|
|
276
|
+
releaseAcceptedImagesForRun: (owner: AgentTerminalOwnerContext) => void;
|
|
277
|
+
releaseAcceptedImages: () => void;
|
|
269
278
|
getJoinedPromptCorrelations: (owner: AgentTerminalOwnerContext) => Array<{
|
|
270
279
|
commandId: string;
|
|
271
280
|
turnId: string;
|
|
@@ -490,6 +499,16 @@ interface SessionRuntime {
|
|
|
490
499
|
args?: unknown;
|
|
491
500
|
pendingPhase?: "completed" | "failed" | "cancelled";
|
|
492
501
|
}>;
|
|
502
|
+
/**
|
|
503
|
+
* Running tool calls that reported an awaiting-input signal, keyed by tool call
|
|
504
|
+
* id. An entry stays undelivered while notifications are inactive or policy is
|
|
505
|
+
* provisional, and is dropped when the call ends; one notification per call.
|
|
506
|
+
*/
|
|
507
|
+
awaitingInput: Map<string, {
|
|
508
|
+
toolName: string;
|
|
509
|
+
kind: AwaitingInputKind;
|
|
510
|
+
delivered: boolean;
|
|
511
|
+
}>;
|
|
493
512
|
/** Cancels the postmortem cleanup that emits `session_closed` on process teardown. */
|
|
494
513
|
cancelPostmortemCleanup: () => void;
|
|
495
514
|
/** Disposes side-turn resources when their owning logical session becomes unavailable. */
|
|
@@ -612,6 +631,29 @@ export declare function shouldAwaitNotificationStartup(event: {
|
|
|
612
631
|
};
|
|
613
632
|
}): boolean;
|
|
614
633
|
export declare function boundedCorrelatedAgentEndFrame(frame: Record<string, unknown>): Record<string, unknown>;
|
|
634
|
+
/** Connection-scoped identity of a queued prompt submission an abort may address. */
|
|
635
|
+
export interface TerminalAbortSubmissionScope {
|
|
636
|
+
connectionId?: string;
|
|
637
|
+
terminal: boolean;
|
|
638
|
+
}
|
|
639
|
+
/**
|
|
640
|
+
* Whether a terminal abort addresses this prompt submission.
|
|
641
|
+
*
|
|
642
|
+
* An ordinary abort is scoped to the requesting connection's own prompt: `connectionId`
|
|
643
|
+
* identifies the connection that submitted it, and a submission that already reached a
|
|
644
|
+
* terminal state is never addressed. Broker-authorized operator authority
|
|
645
|
+
* (`TerminalAbortInput.operator`, granted only through the broker control route) is the
|
|
646
|
+
* documented exception — "operator authority changes only connection ownership, never
|
|
647
|
+
* those settlement proofs" — so it addresses the session's submission even when another
|
|
648
|
+
* connection submitted it. Without that override every operator abort issued over a
|
|
649
|
+
* second connection (the SDK client case, where each request is its own connection)
|
|
650
|
+
* reported no_active_turn while the turn was still running.
|
|
651
|
+
*/
|
|
652
|
+
export declare function terminalAbortAddressesSubmission(input: {
|
|
653
|
+
connectionId: string | undefined;
|
|
654
|
+
operatorAuthorized: boolean;
|
|
655
|
+
submission: TerminalAbortSubmissionScope;
|
|
656
|
+
}): boolean;
|
|
615
657
|
export declare function createNotificationsExtension(api: ExtensionAPI, options?: {
|
|
616
658
|
settings?: Settings;
|
|
617
659
|
ensureTelegramDaemon?: (input: {
|
|
@@ -649,6 +691,8 @@ export declare function createNotificationsExtension(api: ExtensionAPI, options?
|
|
|
649
691
|
* preflight outside the durable admission path (review thread P2).
|
|
650
692
|
*/
|
|
651
693
|
terminalAbortSeams?: {
|
|
694
|
+
/** Definitive event-driven observation; never mutates the owning run. */
|
|
695
|
+
waitForRunSettlement?: (handle: string) => Promise<RunSettlementProof>;
|
|
652
696
|
getTerminalRunOwnerForEvent?: (event: object) => AgentTerminalOwnerContext | undefined;
|
|
653
697
|
getRunOwnerDomain?: (handle: string) => RunCancellationDomain | undefined;
|
|
654
698
|
getTerminalTurnEpoch: () => number | undefined;
|
|
@@ -182,9 +182,19 @@ export interface ReconciliationStore {
|
|
|
182
182
|
snapshotTerminalScopes(): DurableTerminalScopeRecord[];
|
|
183
183
|
delete(): Promise<void>;
|
|
184
184
|
}
|
|
185
|
+
export interface ReconciliationStoreInstrumentationEvent {
|
|
186
|
+
at: number;
|
|
187
|
+
phase: "enqueued" | "started" | "completed" | "failed";
|
|
188
|
+
operation?: string;
|
|
189
|
+
substep?: string;
|
|
190
|
+
error?: string;
|
|
191
|
+
/** Detailed information about lock acquisition, promise identity, db state, etc. */
|
|
192
|
+
detail?: string;
|
|
193
|
+
}
|
|
185
194
|
export declare function createReconciliationStore(options: {
|
|
186
195
|
sessionFile: string | null | undefined;
|
|
187
196
|
sessionId: string;
|
|
188
197
|
fs?: ReconciliationStoreFs;
|
|
189
198
|
now?: () => number;
|
|
199
|
+
onInstrumentationForTests?: (event: ReconciliationStoreInstrumentationEvent) => void;
|
|
190
200
|
}): ReconciliationStore;
|
|
@@ -296,8 +296,16 @@ export declare const SDK_LIFECYCLE_ROUTER_PROTOCOL_VERSION = 1;
|
|
|
296
296
|
* Generation 202 joins queued-removal terminal publication before ordinary
|
|
297
297
|
* abort acknowledgement, replacing owners that still acknowledge cancellation
|
|
298
298
|
* before its terminal record is durable.
|
|
299
|
+
* Generation 203 replaces owners that still treat a project `.gjc` file as an
|
|
300
|
+
* explicit deadline-autosave opt-in for a primary checkout.
|
|
301
|
+
* Generation 205 replaces owners whose process descendant walk can adopt
|
|
302
|
+
* children of a recycled PID. Generation 206 verifies macOS descendant
|
|
303
|
+
* identities and parentage before retaining PTY termination authority, and
|
|
304
|
+
* reaps adopted Linux PTY descendants when GJC is a child reaper.
|
|
305
|
+
* Generation 209 installs connection-owned private SDK image staging with
|
|
306
|
+
* execution-owned reservations, replacing hosts without that lifecycle contract.
|
|
299
307
|
*/
|
|
300
|
-
export declare const DAEMON_GENERATION =
|
|
308
|
+
export declare const DAEMON_GENERATION = 209;
|
|
301
309
|
/**
|
|
302
310
|
* Serving-compatibility boundary for daemon lifecycle requests. Epoch 7
|
|
303
311
|
* requires durable publication receipts and acknowledged attachment dispatch,
|
|
@@ -135,6 +135,8 @@ export declare const ASK_SELECTED_ACK_CAPABILITY = "ask_selected_ack_v1";
|
|
|
135
135
|
export declare const ASK_CONTROLS_CAPABILITY = "ask_controls_v1";
|
|
136
136
|
/** Capability for the closed tool phase set: started, completed, failed, and cancelled. */
|
|
137
137
|
export declare const TOOL_ACTIVITY_CAPABILITY = "tool_activity_v2";
|
|
138
|
+
/** Receive content-free notifications when a running command needs host-side authentication. */
|
|
139
|
+
export declare const AWAITING_INPUT_CAPABILITY = "awaiting_input_v1";
|
|
138
140
|
/** Receive-only compatibility capability for pre-v2 hosts. */
|
|
139
141
|
export declare const LEGACY_TOOL_ACTIVITY_CAPABILITY = "tool_activity_v1";
|
|
140
142
|
/** Public `sdk/bus/telegram-daemon` path for the canonical `sdk/host` capability token. */
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Pure rendering of threaded-session frames into Telegram send specs.
|
|
3
3
|
*
|
|
4
4
|
* The daemon receives the additive `ServerMessage` frames (identity_header,
|
|
5
|
-
* context_update, turn_stream, image_attachment, config_update) over the session
|
|
5
|
+
* context_update, turn_stream, image_attachment, config_update, awaiting_input) over the session
|
|
6
6
|
* WS and must turn each into a Bot API call scoped to the session's forum topic
|
|
7
7
|
* (`message_thread_id`), throttled through the shared rate-limit pool. This
|
|
8
8
|
* module is the pure frame→send mapping (including the priority lane and live-
|
|
@@ -71,6 +71,7 @@ interface ThreadedFrame {
|
|
|
71
71
|
turnRef?: unknown;
|
|
72
72
|
toolCallId?: unknown;
|
|
73
73
|
toolName?: unknown;
|
|
74
|
+
kind?: unknown;
|
|
74
75
|
argsSummary?: unknown;
|
|
75
76
|
resultSummary?: unknown;
|
|
76
77
|
isError?: unknown;
|
|
@@ -45,7 +45,6 @@ export interface RetainedTranscriptTailReader {
|
|
|
45
45
|
export declare const SDK_JSON_INPUT_FILE_MAX_BYTES: number;
|
|
46
46
|
/** Translate only SDK-owned codes and explicitly allowlisted reconciliation fields. */
|
|
47
47
|
export declare function sdkPublicFailure(code: string, details?: unknown, proof?: PublicEffectProof): PublicCommandFailure;
|
|
48
|
-
/** Lifecycle terminality/retryability is not, by itself, proof of an effect outcome. */
|
|
49
48
|
export declare function lifecyclePublicFailure(outcome: Extract<SessionLifecycleResult, {
|
|
50
49
|
ok: false;
|
|
51
50
|
}>): PublicCommandFailure;
|
|
@@ -19,7 +19,11 @@ export type ControlInput = Record<string, unknown>;
|
|
|
19
19
|
* AgentSession and its controllers without exposing those concrete types here.
|
|
20
20
|
*/
|
|
21
21
|
export interface ControlSurface {
|
|
22
|
-
prompt(text: string, images?: ControlValue, clientRef?: string): Promise<ControlValue> | ControlValue;
|
|
22
|
+
prompt(text: string, images?: ControlValue, clientRef?: string, stagedImages?: ControlValue): Promise<ControlValue> | ControlValue;
|
|
23
|
+
imageBegin?(input: ControlValue): Promise<ControlValue> | ControlValue;
|
|
24
|
+
imageAppend?(input: ControlValue): Promise<ControlValue> | ControlValue;
|
|
25
|
+
imageFinish?(input: ControlValue): Promise<ControlValue> | ControlValue;
|
|
26
|
+
imageDiscard?(input: ControlValue): Promise<ControlValue> | ControlValue;
|
|
23
27
|
steer(text: string, clientRef?: string, expectedSdkRunToken?: string): Promise<ControlValue> | ControlValue;
|
|
24
28
|
followUp(text: string): Promise<ControlValue> | ControlValue;
|
|
25
29
|
abort(): Promise<ControlValue> | ControlValue;
|
|
@@ -20,6 +20,8 @@ export interface EventReplay {
|
|
|
20
20
|
events: EventFrame[];
|
|
21
21
|
gap?: EventReplayGap;
|
|
22
22
|
}
|
|
23
|
+
/** Notification policy refresh records the live redaction bit for one session ring. */
|
|
24
|
+
export declare function setSessionOutboundRedact(sessionId: string, enabled: boolean): void;
|
|
23
25
|
export declare class SessionEventStream {
|
|
24
26
|
#private;
|
|
25
27
|
constructor(options?: {
|
|
@@ -30,6 +32,8 @@ export declare class SessionEventStream {
|
|
|
30
32
|
});
|
|
31
33
|
get generation(): number;
|
|
32
34
|
get sequence(): number;
|
|
35
|
+
/** Follow the session redaction bit. Replay then drops kinds emit sites already suppress. */
|
|
36
|
+
setOutboundRedact(enabled: boolean): void;
|
|
33
37
|
restart(): number;
|
|
34
38
|
emit(frame: SdkFrame): EventFrame;
|
|
35
39
|
/** Replays retained current-generation events and reports any required resynchronization. */
|
|
@@ -81,6 +81,7 @@ export interface SessionSdkHostOptions extends HostEndpointAdapters {
|
|
|
81
81
|
* must see the same capability-gated event kinds on both legs, or live and
|
|
82
82
|
* replay delivery diverge for the same subscriber. */
|
|
83
83
|
export declare const TOOL_ACTIVITY_CAPABILITY = "tool_activity_v2";
|
|
84
|
+
export declare const AWAITING_INPUT_CAPABILITY = "awaiting_input_v1";
|
|
84
85
|
/** Capability for non-replayable streamed turn content. */
|
|
85
86
|
export declare const TURN_STREAM_CAPABILITY = "turn_stream";
|
|
86
87
|
/** Capability used by notification adapters that observe a host without owning its work. */
|
|
@@ -91,7 +92,7 @@ export declare const SESSION_HOST_OBSERVER_CAPABILITY = "session_host_observer_v
|
|
|
91
92
|
* of every frame its positioned envelope already reached.
|
|
92
93
|
*/
|
|
93
94
|
export declare const POSITIONED_NOTIFICATION_EFFECTS_CAPABILITY = "positioned_notification_effects_v1";
|
|
94
|
-
export declare const CAP_GATED_FRAME_KINDS:
|
|
95
|
+
export declare const CAP_GATED_FRAME_KINDS: ReadonlyMap<string, string>;
|
|
95
96
|
/** Keep live delivery and replay on one capability gate. */
|
|
96
97
|
export declare function canDeliverSdkEvent(kind: string, capabilities: ReadonlySet<string> | undefined): boolean;
|
|
97
98
|
/** SDK hosting is independent of notification configuration. Only root sessions host an endpoint. */
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { RunSettlementProof } from "@gajae-code/agent-core";
|
|
2
|
+
import type { ImageContent } from "@gajae-code/ai/core";
|
|
3
|
+
/** One definitive event-driven wait; teardown and elapsed time are not settlement proof. */
|
|
4
|
+
export declare function retirePromptImageReservation(handle: string, waitForRunSettlement: (handle: string) => Promise<RunSettlementProof>, isCurrent: () => boolean, release: () => void): void;
|
|
5
|
+
export interface PromptImageProcessBudgetSnapshot {
|
|
6
|
+
/** Retained upload and accepted source bytes, including accepted base64 copies. */
|
|
7
|
+
readonly sourceBytes: number;
|
|
8
|
+
readonly transientBytes: number;
|
|
9
|
+
readonly concurrentFinishes: number;
|
|
10
|
+
}
|
|
11
|
+
/** Internal process diagnostics only; not an SDK operation or a release capability. */
|
|
12
|
+
export declare function getPromptImageProcessBudgetSnapshot(): PromptImageProcessBudgetSnapshot;
|
|
13
|
+
/** Session-scoped, connection-owned image leases; no client-supplied path or identity is trusted. */
|
|
14
|
+
export declare class PromptImageUploadStore {
|
|
15
|
+
#private;
|
|
16
|
+
/** The host supplies live socket membership; standalone callers must choose an explicit policy. */
|
|
17
|
+
constructor(isConnectionOpen: (connectionId: string) => boolean);
|
|
18
|
+
begin(connectionId: string | undefined, value: unknown): {
|
|
19
|
+
id: string;
|
|
20
|
+
nextSequence: 0;
|
|
21
|
+
};
|
|
22
|
+
append(connectionId: string | undefined, value: unknown): {
|
|
23
|
+
id: string;
|
|
24
|
+
nextSequence: number;
|
|
25
|
+
receivedBytes: number;
|
|
26
|
+
};
|
|
27
|
+
finish(connectionId: string | undefined, value: unknown): Promise<{
|
|
28
|
+
id: string;
|
|
29
|
+
byteLength: number;
|
|
30
|
+
sha256: string;
|
|
31
|
+
mimeType: string;
|
|
32
|
+
}>;
|
|
33
|
+
discard(connectionId: string | undefined, value: unknown): {
|
|
34
|
+
discarded: true;
|
|
35
|
+
};
|
|
36
|
+
/** Synchronous reserve–validate–copy–consume transaction, called before prompt admission. */
|
|
37
|
+
redeem(connectionId: string | undefined, value: unknown): {
|
|
38
|
+
images: ImageContent[];
|
|
39
|
+
release: () => void;
|
|
40
|
+
};
|
|
41
|
+
disconnect(connectionId: string): void;
|
|
42
|
+
close(): void;
|
|
43
|
+
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type RunSettlementProof } from "@gajae-code/agent-core";
|
|
1
2
|
import type { ProviderDiagnostic } from "@gajae-code/ai/core";
|
|
2
3
|
import { type Settings } from "../../config/settings";
|
|
3
4
|
import type { ExtensionAPI, ExtensionContext } from "../../extensibility/extensions";
|
|
@@ -74,9 +75,12 @@ export interface SessionSdkTransport {
|
|
|
74
75
|
stop(): Promise<void>;
|
|
75
76
|
broadcastFrame?(frame: SdkFrame): void;
|
|
76
77
|
onConnectionClose?(handler: (connectionId: string) => void): undefined | (() => void);
|
|
78
|
+
/** Authoritative live socket membership, not a cache of previously observed frames. */
|
|
79
|
+
isConnectionOpen?(connectionId: string): boolean;
|
|
77
80
|
onNegotiatedCapabilities?(handler: (connectionId: string, capabilities: readonly string[]) => void): undefined | (() => void);
|
|
78
81
|
}
|
|
79
82
|
export interface SessionSdkRuntimeOptions extends Omit<SessionSdkHostOptions, "sessionId" | "stateRoot" | "token" | "sendFrame" | "onFrame"> {
|
|
83
|
+
onDisconnected?: (connectionId: string) => void;
|
|
80
84
|
transport: SessionSdkTransport;
|
|
81
85
|
/** Session settings; enables `config.patch` application on this runtime. */
|
|
82
86
|
settings?: Settings;
|
|
@@ -154,9 +158,13 @@ export interface SdkOnlyReconciliationStore {
|
|
|
154
158
|
}): Promise<void>;
|
|
155
159
|
}
|
|
156
160
|
export interface SdkOnlyTerminalAbortSeams {
|
|
161
|
+
/** Definitive event-driven observation: never abort, seal or quarantine a run to reclaim images. */
|
|
162
|
+
waitForRunSettlement?: (handle: string) => Promise<RunSettlementProof>;
|
|
157
163
|
getReconciliationStore?: () => SdkOnlyReconciliationStore | undefined;
|
|
158
164
|
getTerminalTurnEpoch: () => number | undefined;
|
|
159
165
|
getActivePromptHandle: () => string | undefined;
|
|
166
|
+
onDeadlineRecoveryCheckpointForTests?: (checkpoint: SdkOnlyDeadlineRecoveryCheckpoint) => void;
|
|
167
|
+
onPersistenceInstrumentationForTests?: (event: PersistenceInstrumentationEvent) => void;
|
|
160
168
|
/** Re-read the active prompt's owning SDK connection for the owner-mismatch
|
|
161
169
|
* recheck; falls back to the runtime-tracked owner when absent (review
|
|
162
170
|
* thread P1). */
|
|
@@ -196,14 +204,23 @@ export interface SdkOnlyTerminalAbortSeams {
|
|
|
196
204
|
/** Test override for the maximum durable terminal reservation rows. */
|
|
197
205
|
maxDurableTerminalReservationsForTests?: number;
|
|
198
206
|
}
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
+
export interface SdkOnlyDeadlineRecoveryCheckpoint {
|
|
208
|
+
at: number;
|
|
209
|
+
stage: "terminalization-start" | "terminalization-result" | "publication-start" | "publication-result" | "note-transition-start" | "note-transition-awaiting-finalization" | "note-transition-finalization-ready" | "note-transition-before-persist" | "note-transition-persisted" | "note-transition-persist-failed" | "deadline-recovery-retired";
|
|
210
|
+
correlation: InvocationCorrelation;
|
|
211
|
+
result?: "settled" | "uncertain" | "published" | "not-published" | "rejected";
|
|
212
|
+
reason?: string;
|
|
213
|
+
recordStatus?: string;
|
|
214
|
+
recordRevision?: number;
|
|
215
|
+
recordTerminalAt?: number;
|
|
216
|
+
pendingFinalization?: boolean;
|
|
217
|
+
eventCaptured?: boolean;
|
|
218
|
+
eventPrepared?: boolean;
|
|
219
|
+
terminalCommitted?: boolean;
|
|
220
|
+
leaseCurrent?: boolean;
|
|
221
|
+
pendingToolCount?: number;
|
|
222
|
+
errorCode?: string;
|
|
223
|
+
}
|
|
207
224
|
export declare class SessionSdkSessionRuntime {
|
|
208
225
|
#private;
|
|
209
226
|
readonly host: SessionSdkHost;
|
|
@@ -354,10 +371,23 @@ export interface InvocationReconciliation {
|
|
|
354
371
|
}): Promise<void>;
|
|
355
372
|
markUncertain(kind: InvocationKind, correlation: InvocationCorrelation, isCurrent?: () => boolean, deadlineMaxAt?: number): Promise<void>;
|
|
356
373
|
}
|
|
374
|
+
export interface PersistenceInstrumentationEvent {
|
|
375
|
+
at: number;
|
|
376
|
+
phase: "enqueued" | "started" | "completed" | "failed";
|
|
377
|
+
operation?: string;
|
|
378
|
+
substep?: string;
|
|
379
|
+
error?: string;
|
|
380
|
+
/** Detailed information about lock acquisition, promise identity, db state, etc. */
|
|
381
|
+
detail?: string;
|
|
382
|
+
/** Time spent waiting (ms) before the operation started. */
|
|
383
|
+
waitMs?: number;
|
|
384
|
+
}
|
|
357
385
|
export declare function createInvocationReconciliation(options?: {
|
|
358
386
|
stateRoot?: string;
|
|
359
387
|
sessionId?: string;
|
|
360
388
|
store?: SdkOnlyReconciliationStore;
|
|
389
|
+
onDeadlineRecoveryCheckpointForTests?: (checkpoint: SdkOnlyDeadlineRecoveryCheckpoint) => void;
|
|
390
|
+
onPersistenceInstrumentationForTests?: (event: PersistenceInstrumentationEvent) => void;
|
|
361
391
|
}): InvocationReconciliation;
|
|
362
392
|
export interface SdkSurfaceFactoryOptions {
|
|
363
393
|
ctx: ExtensionContext;
|
|
@@ -365,6 +395,8 @@ export interface SdkSurfaceFactoryOptions {
|
|
|
365
395
|
api: ExtensionAPI;
|
|
366
396
|
/** Startup surface that owns host-level permission and lifecycle authority. */
|
|
367
397
|
primaryControlSurface?: "cli" | "sdk";
|
|
398
|
+
/** Private staging controls are advertised only with authoritative transport liveness. */
|
|
399
|
+
imageUploadsAvailable?: boolean;
|
|
368
400
|
policy?: SdkSurfacePolicy;
|
|
369
401
|
getInstalledDefinitions?: (capability: string) => unknown | undefined;
|
|
370
402
|
getLiveState?: () => {
|
|
@@ -7,6 +7,7 @@ export interface SdkSurfacePolicy {
|
|
|
7
7
|
export interface SdkSurfacePolicyOptions {
|
|
8
8
|
bindings: Iterable<string>;
|
|
9
9
|
workflowGateAvailable: boolean;
|
|
10
|
+
imageUploadsAvailable?: boolean;
|
|
10
11
|
isBindingInstalled?: (binding: string) => boolean;
|
|
11
12
|
}
|
|
12
13
|
/** Shared operation advertisement policy for every SDK transport. */
|
|
@@ -20,4 +21,4 @@ export interface SdkCapabilities {
|
|
|
20
21
|
}
|
|
21
22
|
export declare function createSdkCapabilities(policy: SdkSurfacePolicy, hostTools?: boolean, primaryControlSurface?: SdkCapabilities["primaryControlSurface"]): SdkCapabilities;
|
|
22
23
|
/** Derive the shared policy from an extension context without importing adapters. */
|
|
23
|
-
export declare function createSdkSurfacePolicyForContext(ctx: ExtensionContext, workflowGateAvailable?: boolean): SdkSurfacePolicy;
|
|
24
|
+
export declare function createSdkSurfacePolicyForContext(ctx: ExtensionContext, workflowGateAvailable?: boolean, imageUploadsAvailable?: boolean): SdkSurfacePolicy;
|
|
@@ -57,6 +57,10 @@ export type SessionCreateTarget = SessionLifecycleCoordinatorTarget & {
|
|
|
57
57
|
readonly body?: string;
|
|
58
58
|
readonly modelPreset?: string;
|
|
59
59
|
readonly mcpServers?: readonly Record<string, unknown>[];
|
|
60
|
+
/** Per-session environment for the hosted session; `GJC_*` names are reserved (#6735). */
|
|
61
|
+
readonly env?: Readonly<Record<string, string>>;
|
|
62
|
+
/** Inherited broker environment names removed from the hosted session (#6735). */
|
|
63
|
+
readonly unsetEnv?: readonly string[];
|
|
60
64
|
readonly worktree?: SessionLifecycleWorktreeTarget;
|
|
61
65
|
readonly readiness?: "immediate" | "deferred";
|
|
62
66
|
readonly readinessTimeoutMs?: number;
|
|
@@ -70,6 +74,10 @@ export type SessionForkTarget = SessionLifecycleCoordinatorTarget & {
|
|
|
70
74
|
readonly body?: string;
|
|
71
75
|
readonly modelPreset?: string;
|
|
72
76
|
readonly mcpServers?: readonly Record<string, unknown>[];
|
|
77
|
+
/** Per-session environment for the hosted session; `GJC_*` names are reserved (#6735). */
|
|
78
|
+
readonly env?: Readonly<Record<string, string>>;
|
|
79
|
+
/** Inherited broker environment names removed from the hosted session (#6735). */
|
|
80
|
+
readonly unsetEnv?: readonly string[];
|
|
73
81
|
readonly worktree?: SessionLifecycleWorktreeTarget;
|
|
74
82
|
readonly readinessTimeoutMs?: number;
|
|
75
83
|
};
|
|
@@ -82,6 +90,10 @@ export type SessionResumeTarget = SessionLifecycleCoordinatorTarget & {
|
|
|
82
90
|
readonly body?: string;
|
|
83
91
|
readonly modelPreset?: string;
|
|
84
92
|
readonly mcpServers?: readonly Record<string, unknown>[];
|
|
93
|
+
/** Per-session environment for the hosted session; `GJC_*` names are reserved (#6735). */
|
|
94
|
+
readonly env?: Readonly<Record<string, string>>;
|
|
95
|
+
/** Inherited broker environment names removed from the hosted session (#6735). */
|
|
96
|
+
readonly unsetEnv?: readonly string[];
|
|
85
97
|
readonly worktree?: SessionLifecycleWorktreeTarget;
|
|
86
98
|
readonly readinessTimeoutMs?: number;
|
|
87
99
|
};
|
|
@@ -44,7 +44,8 @@
|
|
|
44
44
|
* WHERE it runs. `sdk.flushWorktreeOnDeadline` still defaults to on, but the
|
|
45
45
|
* implicit default applies only in a LINKED worktree (`gitDir !== commonDir`) —
|
|
46
46
|
* what agent/paseo sessions run in, and the #5583 field report. In the user's
|
|
47
|
-
* primary checkout an autosave needs an explicit opt-in
|
|
47
|
+
* primary checkout an autosave needs an explicit opt-in from the user/global
|
|
48
|
+
* config or a runtime override. A project `.gjc` file is not that opt-in.
|
|
48
49
|
*/
|
|
49
50
|
export interface PromptDeadlineFlushResult {
|
|
50
51
|
/** Branch the WIP commit landed on, or `undefined` on a detached HEAD. */
|
|
@@ -58,9 +59,10 @@ export interface PromptDeadlineFlushOptions {
|
|
|
58
59
|
/** Active session's agent directory, used to keep volatile broker state out of the WIP commit. */
|
|
59
60
|
readonly agentDir?: string;
|
|
60
61
|
/**
|
|
61
|
-
* Whether the caller resolved `sdk.flushWorktreeOnDeadline` to `true` from
|
|
62
|
-
*
|
|
63
|
-
*
|
|
62
|
+
* Whether the caller resolved `sdk.flushWorktreeOnDeadline` to `true` from the
|
|
63
|
+
* user/global config or a runtime override, rather than from the schema
|
|
64
|
+
* default or a project `.gjc` file. Only that opt-in may autosave outside a
|
|
65
|
+
* linked worktree.
|
|
64
66
|
*/
|
|
65
67
|
readonly explicitOptIn?: boolean;
|
|
66
68
|
/**
|
|
@@ -71,6 +73,41 @@ export interface PromptDeadlineFlushOptions {
|
|
|
71
73
|
readonly isCurrent?: () => boolean;
|
|
72
74
|
readonly signal?: AbortSignal;
|
|
73
75
|
}
|
|
76
|
+
declare const DEADLINE_FLUSH_SETTING = "sdk.flushWorktreeOnDeadline";
|
|
77
|
+
/**
|
|
78
|
+
* The settings view both deadline hosts already hold. `get` is the merged value
|
|
79
|
+
* (global, then project, then runtime override, otherwise the schema default).
|
|
80
|
+
* `getGlobal` and `getOverride` are the layers a project file cannot write.
|
|
81
|
+
*/
|
|
82
|
+
export interface DeadlineFlushSettings {
|
|
83
|
+
get(path: typeof DEADLINE_FLUSH_SETTING): unknown;
|
|
84
|
+
getAgentDir?(): string | undefined;
|
|
85
|
+
getGlobal?(path: typeof DEADLINE_FLUSH_SETTING): unknown;
|
|
86
|
+
getOverride?(path: typeof DEADLINE_FLUSH_SETTING): unknown;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* True only when the user wrote `sdk.flushWorktreeOnDeadline: true` in a runtime
|
|
90
|
+
* override or the global config. The schema default and a project `.gjc` file
|
|
91
|
+
* do not count: `Settings.has()` sees the merged view, so a repo-shipped `true`
|
|
92
|
+
* would otherwise open the primary-checkout gate.
|
|
93
|
+
*/
|
|
94
|
+
export declare function explicitDeadlineFlushOptIn(settings: DeadlineFlushSettings | undefined): boolean;
|
|
95
|
+
/**
|
|
96
|
+
* Whether this deadline must not autosave.
|
|
97
|
+
*
|
|
98
|
+
* A runtime override wins, then the user/global value. A project file cannot
|
|
99
|
+
* cancel either one. A project `false` still opts out when the user has not
|
|
100
|
+
* written the key.
|
|
101
|
+
*/
|
|
102
|
+
export declare function deadlineFlushSuppressed(settings: DeadlineFlushSettings | undefined): boolean;
|
|
103
|
+
/**
|
|
104
|
+
* Deadline-host entry for the worktree autosave. Both the session runtime and
|
|
105
|
+
* the notification bus call this so the opt-in decision cannot drift.
|
|
106
|
+
*/
|
|
107
|
+
export declare function autosaveWorktreeOnPromptDeadline(cwd: string, settings: DeadlineFlushSettings | undefined, options?: {
|
|
108
|
+
readonly isCurrent?: () => boolean;
|
|
109
|
+
readonly signal?: AbortSignal;
|
|
110
|
+
}): Promise<PromptDeadlineFlushResult | undefined>;
|
|
74
111
|
/**
|
|
75
112
|
* Commit any uncommitted work in the worktree owning `cwd`.
|
|
76
113
|
*
|
|
@@ -83,3 +120,4 @@ export interface PromptDeadlineFlushOptions {
|
|
|
83
120
|
* bound, so a caller that passes nothing still cannot hang here.
|
|
84
121
|
*/
|
|
85
122
|
export declare function flushWorktreeOnPromptDeadline(cwd: string, options?: AbortSignal | PromptDeadlineFlushOptions): Promise<PromptDeadlineFlushResult | undefined>;
|
|
123
|
+
export {};
|
|
@@ -70,6 +70,8 @@ export declare class PromptDeadlineManager {
|
|
|
70
70
|
*/
|
|
71
71
|
deadlineFlushTimeoutMs?: number;
|
|
72
72
|
});
|
|
73
|
+
/** Notify about termination check results to adjust retry strategy. */
|
|
74
|
+
notifyTerminationResult(correlation: InvocationCorrelation, _result: PromptDeadlineTerminalization, reason: string): void;
|
|
73
75
|
onAccepted(correlation: InvocationCorrelation): void;
|
|
74
76
|
/** A new exact agent_start retires an uncertainty-only fence, never captured terminal intent. */
|
|
75
77
|
onRunStarted(correlation: InvocationCorrelation): void;
|
|
@@ -37,12 +37,19 @@ export interface TurnPromptImageInput {
|
|
|
37
37
|
data: string;
|
|
38
38
|
mimeType?: string;
|
|
39
39
|
}
|
|
40
|
-
/** Public input contract for ordered `turn.prompt
|
|
41
|
-
export
|
|
40
|
+
/** Public input contract for ordered `turn.prompt`; direct and staged images cannot be mixed. */
|
|
41
|
+
export type TurnPromptInput = {
|
|
42
42
|
text: string;
|
|
43
|
-
images?: TurnPromptImageInput[];
|
|
44
43
|
clientRef?: string;
|
|
45
|
-
}
|
|
44
|
+
} & ({
|
|
45
|
+
images?: TurnPromptImageInput[];
|
|
46
|
+
stagedImages?: never;
|
|
47
|
+
} | {
|
|
48
|
+
images?: never;
|
|
49
|
+
stagedImages: Array<{
|
|
50
|
+
id: string;
|
|
51
|
+
}>;
|
|
52
|
+
});
|
|
46
53
|
/**
|
|
47
54
|
* Terminal outcome is preserved exactly; active records never age into terminal. An
|
|
48
55
|
* ordinary prompt active at process restart is finalized from its durable pending
|
|
@@ -3,14 +3,20 @@ type SecretInputError = {
|
|
|
3
3
|
code: "secret_field_forbidden";
|
|
4
4
|
message: string;
|
|
5
5
|
};
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
type UltrafastRestrictionError = {
|
|
7
|
+
code: "ultrafast_tier_forbidden";
|
|
8
|
+
message: string;
|
|
9
|
+
};
|
|
10
|
+
/** Rejects secret-bearing and ultrafast-tier config patches from model-facing adapter inputs. */
|
|
11
|
+
export declare function validateAdapterSecretFields(operation: string, input: Input): SecretInputError | UltrafastRestrictionError | undefined;
|
|
8
12
|
export type AdapterValidationError = {
|
|
9
13
|
code: "invalid_reload_component" | "invalid_input";
|
|
10
14
|
message: string;
|
|
11
15
|
};
|
|
12
16
|
/** Rejects instruction-bearing controls before correlation or provider work. */
|
|
13
17
|
export declare function validateRequiredPromptText(operation: string, input: Input): AdapterValidationError | undefined;
|
|
14
|
-
/** Validates controls
|
|
15
|
-
export declare function validateAdapterControl(operation: string, input: Input
|
|
18
|
+
/** Validates controls before forwarding them; adapters reject ultrafast unless explicitly trusted. */
|
|
19
|
+
export declare function validateAdapterControl(operation: string, input: Input, options?: {
|
|
20
|
+
allowUltrafastTier?: boolean;
|
|
21
|
+
}): AdapterValidationError | undefined;
|
|
16
22
|
export {};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { createKindAwareReconciliation, type KindAwareReconciliation, type ReconciliationKind, type SteerReconciliationResult, } from "./bus/kind-aware-reconciliation";
|
|
2
|
-
export { createReconciliationStore, type DurableExecutionReconciliationRecord, type DurableReconciliationRecord, type DurableSteerReconciliationRecord, type ReconciliationStore, resolveReconciliationSessionFile, } from "./bus/reconciliation-store";
|
|
2
|
+
export { createReconciliationStore, type DurableExecutionReconciliationRecord, type DurableReconciliationRecord, type DurableSteerReconciliationRecord, type ReconciliationStore, type ReconciliationStoreInstrumentationEvent, resolveReconciliationSessionFile, } from "./bus/reconciliation-store";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export type SessionListPageRecord = Record<string, unknown>;
|
|
2
2
|
export type SessionListSavedSessionOmissionReason = "scope_unavailable" | "candidate_scan_failed" | "candidate_not_found" | "candidate_ambiguous" | "candidate_invalid" | "identity_incomplete";
|
|
3
|
-
export declare const SESSION_LIST_SAVED_SESSION_OMISSION_DETAIL_CODES: readonly ["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", "scan_failed", "unsafe_root", "invalid_candidate", "invalid_header", "unreadable_candidate", "source_changed", "cwd_not_found", "cwd_not_utf8", "cwd_network_unsupported", "cwd_identity_unavailable", "cwd_io_error"];
|
|
3
|
+
export declare const SESSION_LIST_SAVED_SESSION_OMISSION_DETAIL_CODES: readonly ["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", "scan_failed", "unsafe_root", "invalid_candidate", "invalid_header", "unreadable_candidate", "source_changed", "cwd_not_found", "cwd_not_utf8", "cwd_network_unsupported", "cwd_identity_unavailable", "cwd_io_error"];
|
|
4
4
|
export type SessionListSavedSessionOmissionDetailCode = (typeof SESSION_LIST_SAVED_SESSION_OMISSION_DETAIL_CODES)[number];
|
|
5
5
|
/** Path-free diagnostic for a requested managed transcript that could not be selected safely. */
|
|
6
6
|
export interface SessionListSavedSessionOmission {
|