@opengsd/gsd-pi 1.2.0-dev.0b870afa → 1.2.0-dev.23d85b63
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/dist/cli-model-override.d.ts +15 -0
- package/dist/cli-model-override.js +21 -0
- package/dist/cli.js +14 -19
- package/dist/headless-events.d.ts +16 -1
- package/dist/headless-events.js +19 -2
- package/dist/headless.js +8 -1
- package/dist/loader.js +6 -4
- package/dist/onboarding.js +9 -4
- package/dist/provider-migrations.d.ts +23 -0
- package/dist/provider-migrations.js +41 -0
- package/dist/register-agent-bundles.d.ts +11 -2
- package/dist/register-agent-bundles.js +18 -4
- package/dist/resource-loader.d.ts +10 -5
- package/dist/resource-loader.js +121 -6
- package/dist/resources/.managed-resources-content-hash +1 -1
- package/dist/resources/extensions/ask-user-questions.js +3 -2
- package/dist/resources/extensions/claude-code-cli/stream-adapter.js +447 -215
- package/dist/resources/extensions/claude-code-cli/turn-assembler.js +33 -1
- package/dist/resources/extensions/google-cli/stream-adapter.js +16 -1
- package/dist/resources/extensions/gsd/auto/closeout.js +215 -0
- package/dist/resources/extensions/gsd/auto/dispatch-history.js +21 -6
- package/dist/resources/extensions/gsd/auto/dispatch.js +365 -0
- package/dist/resources/extensions/gsd/auto/finalize.js +347 -0
- package/dist/resources/extensions/gsd/auto/loop.js +4 -1
- package/dist/resources/extensions/gsd/auto/milestone-lease-reclaim.js +56 -0
- package/dist/resources/extensions/gsd/auto/orchestrator.js +119 -18
- package/dist/resources/extensions/gsd/auto/phase-helpers.js +146 -0
- package/dist/resources/extensions/gsd/auto/phases.js +17 -2372
- package/dist/resources/extensions/gsd/auto/pre-dispatch.js +542 -0
- package/dist/resources/extensions/gsd/auto/unit-phase.js +694 -0
- package/dist/resources/extensions/gsd/auto/workflow-unit-dispatch.js +1 -1
- package/dist/resources/extensions/gsd/auto/worktree-safety-phase.js +125 -0
- package/dist/resources/extensions/gsd/auto-closeout-messaging.js +90 -0
- package/dist/resources/extensions/gsd/auto-dashboard.js +255 -431
- package/dist/resources/extensions/gsd/auto-direct-dispatch.js +15 -3
- package/dist/resources/extensions/gsd/auto-dispatch.js +19 -1
- package/dist/resources/extensions/gsd/auto-model-selection.js +9 -6
- package/dist/resources/extensions/gsd/auto-post-unit.js +12 -8
- package/dist/resources/extensions/gsd/auto-prompts.js +5 -1
- package/dist/resources/extensions/gsd/auto-recovery.js +52 -6
- package/dist/resources/extensions/gsd/auto-start.js +28 -7
- package/dist/resources/extensions/gsd/auto-worktree.js +48 -3
- package/dist/resources/extensions/gsd/auto.js +83 -19
- package/dist/resources/extensions/gsd/bootstrap/agent-end-recovery.js +4 -2
- package/dist/resources/extensions/gsd/bootstrap/dynamic-tools.js +37 -7
- package/dist/resources/extensions/gsd/bootstrap/register-extension.js +3 -1
- package/dist/resources/extensions/gsd/bootstrap/register-hooks.js +32 -3
- package/dist/resources/extensions/gsd/bootstrap/write-gate.js +56 -16
- package/dist/resources/extensions/gsd/closeout-wizard.js +8 -3
- package/dist/resources/extensions/gsd/commands/handlers/core.js +22 -8
- package/dist/resources/extensions/gsd/commands/handlers/ops.js +2 -2
- package/dist/resources/extensions/gsd/commands-mcp-status.js +2 -2
- package/dist/resources/extensions/gsd/commands-prefs-wizard.js +8 -0
- package/dist/resources/extensions/gsd/commands-workflow-templates.js +9 -2
- package/dist/resources/extensions/gsd/config-overlay.js +11 -8
- package/dist/resources/extensions/gsd/db/engine.js +24 -6
- package/dist/resources/extensions/gsd/db/queries.js +30 -0
- package/dist/resources/extensions/gsd/db/writers/reconcile.js +19 -1
- package/dist/resources/extensions/gsd/db-migration-backup.js +51 -8
- package/dist/resources/extensions/gsd/db-transaction.js +27 -23
- package/dist/resources/extensions/gsd/db-writer.js +8 -17
- package/dist/resources/extensions/gsd/doctor-environment.js +256 -125
- package/dist/resources/extensions/gsd/doctor-git-checks.js +5 -1
- package/dist/resources/extensions/gsd/doctor-providers.js +1 -1
- package/dist/resources/extensions/gsd/doctor-runtime-checks.js +11 -9
- package/dist/resources/extensions/gsd/gsd-db.js +15 -20
- package/dist/resources/extensions/gsd/guided-flow.js +88 -2
- package/dist/resources/extensions/gsd/health-widget.js +87 -28
- package/dist/resources/extensions/gsd/mcp-bridge.js +10 -0
- package/dist/resources/extensions/gsd/memory-relations.js +1 -1
- package/dist/resources/extensions/gsd/milestone-settlement.js +2 -2
- package/dist/resources/extensions/gsd/notifications.js +12 -7
- package/dist/resources/extensions/gsd/preferences-models.js +17 -9
- package/dist/resources/extensions/gsd/preferences.js +91 -5
- package/dist/resources/extensions/gsd/prompts/complete-milestone.md +8 -2
- package/dist/resources/extensions/gsd/prompts/complete-slice.md +6 -2
- package/dist/resources/extensions/gsd/prompts/execute-task.md +7 -2
- package/dist/resources/extensions/gsd/prompts/quick-task.md +1 -1
- package/dist/resources/extensions/gsd/prompts/reactive-execute.md +2 -2
- package/dist/resources/extensions/gsd/prompts/run-uat.md +7 -1
- package/dist/resources/extensions/gsd/prompts/triage-captures.md +1 -1
- package/dist/resources/extensions/gsd/prompts/workflow-start.md +2 -1
- package/dist/resources/extensions/gsd/provider-error-guidance.js +24 -0
- package/dist/resources/extensions/gsd/session-lock.js +4 -3
- package/dist/resources/extensions/gsd/skill-activation.js +3 -6
- package/dist/resources/extensions/gsd/state-reconciliation/drift/artifact-db.js +13 -6
- package/dist/resources/extensions/gsd/state.js +6 -2
- package/dist/resources/extensions/gsd/tool-surface-readiness.js +83 -31
- package/dist/resources/extensions/gsd/tools/complete-task.js +62 -0
- package/dist/resources/extensions/gsd/tools/exec-tool.js +2 -109
- package/dist/resources/extensions/gsd/tui/render-kit.js +38 -13
- package/dist/resources/extensions/gsd/unit-context-composer.js +1 -1
- package/dist/resources/extensions/gsd/unit-registry.js +34 -4
- package/dist/resources/extensions/gsd/workflow-logger.js +4 -0
- package/dist/resources/extensions/gsd/workflow-mcp-auto-prep.js +2 -0
- package/dist/resources/extensions/gsd/workflow-mcp-readiness-cache.js +105 -0
- package/dist/resources/extensions/gsd/worktree-manager.js +101 -2
- package/dist/resources/extensions/gsd/worktree-safety.js +28 -26
- package/dist/resources/extensions/gsd/worktree-shell-guard.js +113 -0
- package/dist/resources/extensions/gsd/worktree.js +8 -1
- package/dist/resources/extensions/mcp-client/manager.js +6 -1
- package/dist/resources/extensions/search-the-web/index.js +41 -9
- package/dist/resources/extensions/search-the-web/native-search.js +18 -4
- package/dist/resources/extensions/shared/gsd-browser-cli.js +40 -2
- package/dist/resources/extensions/subagent/index.js +20 -15
- package/dist/resources/extensions/subagent/worktree-cwd.js +31 -0
- package/dist/resources/skills/create-skill/SKILL.md +3 -0
- package/dist/resources/skills/create-skill/references/skill-structure.md +1 -0
- package/dist/runtime-checks.d.ts +10 -0
- package/dist/runtime-checks.js +27 -0
- package/dist/tsconfig.extensions.tsbuildinfo +1 -1
- package/dist/web/standalone/.next/BUILD_ID +1 -1
- package/dist/web/standalone/.next/app-path-routes-manifest.json +10 -10
- package/dist/web/standalone/.next/build-manifest.json +2 -2
- package/dist/web/standalone/.next/prerender-manifest.json +3 -3
- package/dist/web/standalone/.next/server/app/_global-error.html +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.html +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/api/boot/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/captures/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/cleanup/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/doctor/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/export-data/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/files/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/forensics/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/git/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/history/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/hooks/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/inspect/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/knowledge/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/live-state/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/mcp-connections/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/notifications/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/onboarding/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/recovery/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/session/browser/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/session/command/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/session/events/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/session/manage/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/settings-data/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/shutdown/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/skill-health/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/steer/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/switch-root/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/terminal/sessions/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/terminal/stream/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/undo/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/api/visualizer/route.js.nft.json +1 -1
- package/dist/web/standalone/.next/server/app/index.html +1 -1
- package/dist/web/standalone/.next/server/app/index.rsc +1 -1
- package/dist/web/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/index.segments/_full.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/index.segments/_index.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/dist/web/standalone/.next/server/app-paths-manifest.json +10 -10
- package/dist/web/standalone/.next/server/chunks/{5942.js → 1128.js} +1 -1
- package/dist/web/standalone/.next/server/chunks/8357.js +1 -1
- package/dist/web/standalone/.next/server/middleware-build-manifest.js +1 -1
- package/dist/web/standalone/.next/server/pages/404.html +1 -1
- package/dist/web/standalone/.next/server/pages/500.html +1 -1
- package/dist/web/standalone/.next/server/server-reference-manifest.json +1 -1
- package/dist/web/standalone/node_modules/node-pty/build/Makefile +1 -1
- package/package.json +4 -4
- package/packages/cloud-mcp-gateway/package.json +2 -2
- package/packages/contracts/package.json +1 -1
- package/packages/daemon/package.json +4 -4
- package/packages/gsd-agent-core/dist/sdk.d.ts.map +1 -1
- package/packages/gsd-agent-core/dist/sdk.js +12 -6
- package/packages/gsd-agent-core/dist/sdk.js.map +1 -1
- package/packages/gsd-agent-core/package.json +5 -5
- package/packages/gsd-agent-modes/dist/modes/interactive/components/assistant-message.d.ts +5 -5
- package/packages/gsd-agent-modes/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/components/assistant-message.js +12 -24
- package/packages/gsd-agent-modes/dist/modes/interactive/components/assistant-message.js.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/components/bash-execution.js +5 -5
- package/packages/gsd-agent-modes/dist/modes/interactive/components/bash-execution.js.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/components/branch-summary-message.d.ts +3 -3
- package/packages/gsd-agent-modes/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/components/branch-summary-message.js +20 -11
- package/packages/gsd-agent-modes/dist/modes/interactive/components/branch-summary-message.js.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/components/chat-turn-connect.d.ts +4 -3
- package/packages/gsd-agent-modes/dist/modes/interactive/components/chat-turn-connect.d.ts.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/components/chat-turn-connect.js +5 -54
- package/packages/gsd-agent-modes/dist/modes/interactive/components/chat-turn-connect.js.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/components/compaction-summary-message.d.ts +2 -4
- package/packages/gsd-agent-modes/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/components/compaction-summary-message.js +2 -4
- package/packages/gsd-agent-modes/dist/modes/interactive/components/compaction-summary-message.js.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/components/custom-editor.d.ts +2 -0
- package/packages/gsd-agent-modes/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/components/custom-editor.js +4 -0
- package/packages/gsd-agent-modes/dist/modes/interactive/components/custom-editor.js.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/components/footer.d.ts +9 -12
- package/packages/gsd-agent-modes/dist/modes/interactive/components/footer.d.ts.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/components/footer.js +100 -166
- package/packages/gsd-agent-modes/dist/modes/interactive/components/footer.js.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/components/gsd-progress-state.d.ts +2 -0
- package/packages/gsd-agent-modes/dist/modes/interactive/components/gsd-progress-state.d.ts.map +1 -0
- package/packages/gsd-agent-modes/dist/modes/interactive/components/gsd-progress-state.js +4 -0
- package/packages/gsd-agent-modes/dist/modes/interactive/components/gsd-progress-state.js.map +1 -0
- package/packages/gsd-agent-modes/dist/modes/interactive/components/gsd-status-widget.d.ts +23 -0
- package/packages/gsd-agent-modes/dist/modes/interactive/components/gsd-status-widget.d.ts.map +1 -0
- package/packages/gsd-agent-modes/dist/modes/interactive/components/gsd-status-widget.js +178 -0
- package/packages/gsd-agent-modes/dist/modes/interactive/components/gsd-status-widget.js.map +1 -0
- package/packages/gsd-agent-modes/dist/modes/interactive/components/login-dialog.d.ts +8 -0
- package/packages/gsd-agent-modes/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/components/login-dialog.js +21 -9
- package/packages/gsd-agent-modes/dist/modes/interactive/components/login-dialog.js.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/components/settings-selector.d.ts +2 -0
- package/packages/gsd-agent-modes/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/components/settings-selector.js +10 -0
- package/packages/gsd-agent-modes/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/components/skill-invocation-message.d.ts +2 -3
- package/packages/gsd-agent-modes/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/components/skill-invocation-message.js +2 -3
- package/packages/gsd-agent-modes/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/components/tool-execution.d.ts +11 -0
- package/packages/gsd-agent-modes/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/components/tool-execution.js +85 -19
- package/packages/gsd-agent-modes/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/components/transcript-design.d.ts +71 -3
- package/packages/gsd-agent-modes/dist/modes/interactive/components/transcript-design.d.ts.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/components/transcript-design.js +257 -37
- package/packages/gsd-agent-modes/dist/modes/interactive/components/transcript-design.js.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/components/user-message.d.ts +3 -3
- package/packages/gsd-agent-modes/dist/modes/interactive/components/user-message.d.ts.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/components/user-message.js +19 -19
- package/packages/gsd-agent-modes/dist/modes/interactive/components/user-message.js.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/controllers/chat-controller.d.ts +3 -0
- package/packages/gsd-agent-modes/dist/modes/interactive/controllers/chat-controller.d.ts.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/controllers/chat-controller.js +26 -10
- package/packages/gsd-agent-modes/dist/modes/interactive/controllers/chat-controller.js.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/controllers/extension-ui-controller.d.ts.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/controllers/extension-ui-controller.js +12 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/controllers/extension-ui-controller.js.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/controllers/input-controller.d.ts.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/controllers/input-controller.js +5 -0
- package/packages/gsd-agent-modes/dist/modes/interactive/controllers/input-controller.js.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/interactive-autocomplete.d.ts.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/interactive-autocomplete.js +3 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/interactive-autocomplete.js.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/interactive-chat-render.d.ts.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/interactive-chat-render.js +3 -5
- package/packages/gsd-agent-modes/dist/modes/interactive/interactive-chat-render.js.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/interactive-extension-dialogs.js +2 -2
- package/packages/gsd-agent-modes/dist/modes/interactive/interactive-extension-dialogs.js.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/interactive-extension-widgets.d.ts +1 -0
- package/packages/gsd-agent-modes/dist/modes/interactive/interactive-extension-widgets.d.ts.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/interactive-extension-widgets.js +25 -0
- package/packages/gsd-agent-modes/dist/modes/interactive/interactive-extension-widgets.js.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/interactive-key-handlers.d.ts.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/interactive-key-handlers.js +1 -0
- package/packages/gsd-agent-modes/dist/modes/interactive/interactive-key-handlers.js.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/interactive-mode-init.d.ts +1 -0
- package/packages/gsd-agent-modes/dist/modes/interactive/interactive-mode-init.d.ts.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/interactive-mode-init.js +20 -49
- package/packages/gsd-agent-modes/dist/modes/interactive/interactive-mode-init.js.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/interactive-mode-state.d.ts +4 -0
- package/packages/gsd-agent-modes/dist/modes/interactive/interactive-mode-state.d.ts.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/interactive-mode-state.js.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/interactive-mode.d.ts +10 -2
- package/packages/gsd-agent-modes/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/interactive-mode.js +48 -6
- package/packages/gsd-agent-modes/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/interactive-selectors-settings.d.ts.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/interactive-selectors-settings.js +4 -0
- package/packages/gsd-agent-modes/dist/modes/interactive/interactive-selectors-settings.js.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/interactive-ui-messaging.d.ts.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/interactive-ui-messaging.js +0 -1
- package/packages/gsd-agent-modes/dist/modes/interactive/interactive-ui-messaging.js.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/packages/gsd-agent-modes/dist/modes/rpc/rpc-mode.js +3 -0
- package/packages/gsd-agent-modes/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/packages/gsd-agent-modes/package.json +7 -7
- package/packages/mcp-server/README.md +12 -3
- package/packages/mcp-server/dist/cli-runner.d.ts +40 -0
- package/packages/mcp-server/dist/cli-runner.d.ts.map +1 -0
- package/packages/mcp-server/dist/cli-runner.js +137 -0
- package/packages/mcp-server/dist/cli-runner.js.map +1 -0
- package/packages/mcp-server/dist/cli.js +2 -58
- package/packages/mcp-server/dist/cli.js.map +1 -1
- package/packages/mcp-server/dist/pid-registry.d.ts +46 -0
- package/packages/mcp-server/dist/pid-registry.d.ts.map +1 -0
- package/packages/mcp-server/dist/pid-registry.js +459 -0
- package/packages/mcp-server/dist/pid-registry.js.map +1 -0
- package/packages/mcp-server/dist/probe-mode.d.ts +4 -0
- package/packages/mcp-server/dist/probe-mode.d.ts.map +1 -0
- package/packages/mcp-server/dist/probe-mode.js +10 -0
- package/packages/mcp-server/dist/probe-mode.js.map +1 -0
- package/packages/mcp-server/dist/stdio-watchdog.d.ts +8 -0
- package/packages/mcp-server/dist/stdio-watchdog.d.ts.map +1 -0
- package/packages/mcp-server/dist/stdio-watchdog.js +40 -0
- package/packages/mcp-server/dist/stdio-watchdog.js.map +1 -0
- package/packages/mcp-server/dist/workflow-tools.d.ts.map +1 -1
- package/packages/mcp-server/dist/workflow-tools.js +62 -43
- package/packages/mcp-server/dist/workflow-tools.js.map +1 -1
- package/packages/mcp-server/package.json +5 -5
- package/packages/native/package.json +1 -1
- package/packages/pi-agent-core/dist/agent-loop.js +52 -2
- package/packages/pi-agent-core/dist/agent-loop.js.map +1 -1
- package/packages/pi-agent-core/package.json +1 -1
- package/packages/pi-ai/package.json +1 -1
- package/packages/pi-coding-agent/dist/core/extensions/extension-upstream-types.d.ts +28 -2
- package/packages/pi-coding-agent/dist/core/extensions/extension-upstream-types.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/extensions/extension-upstream-types.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/extensions/index.d.ts +1 -1
- package/packages/pi-coding-agent/dist/core/extensions/index.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/extensions/index.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/extensions/runner.d.ts +5 -1
- package/packages/pi-coding-agent/dist/core/extensions/runner.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/extensions/runner.js +3 -1
- package/packages/pi-coding-agent/dist/core/extensions/runner.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/settings-manager.d.ts +3 -0
- package/packages/pi-coding-agent/dist/core/settings-manager.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/settings-manager.js +11 -0
- package/packages/pi-coding-agent/dist/core/settings-manager.js.map +1 -1
- package/packages/pi-coding-agent/dist/index.d.ts +1 -1
- package/packages/pi-coding-agent/dist/index.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/index.js.map +1 -1
- package/packages/pi-coding-agent/dist/theme/theme.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/theme/theme.js +45 -17
- package/packages/pi-coding-agent/dist/theme/theme.js.map +1 -1
- package/packages/pi-coding-agent/package.json +8 -8
- package/packages/pi-tui/README.md +15 -0
- package/packages/pi-tui/dist/autocomplete.d.ts.map +1 -1
- package/packages/pi-tui/dist/autocomplete.js +6 -1
- package/packages/pi-tui/dist/autocomplete.js.map +1 -1
- package/packages/pi-tui/dist/components/input.js +1 -1
- package/packages/pi-tui/dist/components/input.js.map +1 -1
- package/packages/pi-tui/dist/components/loader.d.ts.map +1 -1
- package/packages/pi-tui/dist/components/loader.js +1 -0
- package/packages/pi-tui/dist/components/loader.js.map +1 -1
- package/packages/pi-tui/dist/components/select-list.d.ts.map +1 -1
- package/packages/pi-tui/dist/components/select-list.js +8 -2
- package/packages/pi-tui/dist/components/select-list.js.map +1 -1
- package/packages/pi-tui/dist/index.d.ts +2 -2
- package/packages/pi-tui/dist/index.d.ts.map +1 -1
- package/packages/pi-tui/dist/index.js +2 -2
- package/packages/pi-tui/dist/index.js.map +1 -1
- package/packages/pi-tui/dist/terminal-image.d.ts +33 -0
- package/packages/pi-tui/dist/terminal-image.d.ts.map +1 -1
- package/packages/pi-tui/dist/terminal-image.js +54 -2
- package/packages/pi-tui/dist/terminal-image.js.map +1 -1
- package/packages/pi-tui/dist/terminal.d.ts +12 -0
- package/packages/pi-tui/dist/terminal.d.ts.map +1 -1
- package/packages/pi-tui/dist/terminal.js +70 -25
- package/packages/pi-tui/dist/terminal.js.map +1 -1
- package/packages/pi-tui/dist/tui.d.ts +15 -0
- package/packages/pi-tui/dist/tui.d.ts.map +1 -1
- package/packages/pi-tui/dist/tui.js +106 -21
- package/packages/pi-tui/dist/tui.js.map +1 -1
- package/packages/pi-tui/dist/utils.d.ts.map +1 -1
- package/packages/pi-tui/dist/utils.js +110 -36
- package/packages/pi-tui/dist/utils.js.map +1 -1
- package/packages/pi-tui/package.json +2 -2
- package/packages/rpc-client/package.json +2 -2
- package/pkg/dist/theme/theme.d.ts.map +1 -1
- package/pkg/dist/theme/theme.js +45 -17
- package/pkg/dist/theme/theme.js.map +1 -1
- package/pkg/package.json +1 -1
- package/src/resources/extensions/ask-user-questions.ts +7 -2
- package/src/resources/extensions/browser-tools/tests/gsd-browser-launch-config.test.mjs +80 -0
- package/src/resources/extensions/claude-code-cli/stream-adapter.ts +531 -226
- package/src/resources/extensions/claude-code-cli/tests/stream-adapter.test.ts +672 -7
- package/src/resources/extensions/claude-code-cli/turn-assembler.ts +38 -1
- package/src/resources/extensions/google-cli/stream-adapter.ts +22 -1
- package/src/resources/extensions/gsd/auto/closeout.ts +309 -0
- package/src/resources/extensions/gsd/auto/dispatch-history.ts +22 -6
- package/src/resources/extensions/gsd/auto/dispatch.ts +449 -0
- package/src/resources/extensions/gsd/auto/finalize.ts +445 -0
- package/src/resources/extensions/gsd/auto/loop.ts +4 -1
- package/src/resources/extensions/gsd/auto/milestone-lease-reclaim.ts +74 -0
- package/src/resources/extensions/gsd/auto/orchestrator.ts +140 -18
- package/src/resources/extensions/gsd/auto/phase-helpers.ts +199 -0
- package/src/resources/extensions/gsd/auto/phases.ts +58 -3061
- package/src/resources/extensions/gsd/auto/pre-dispatch.ts +716 -0
- package/src/resources/extensions/gsd/auto/unit-phase.ts +910 -0
- package/src/resources/extensions/gsd/auto/workflow-unit-dispatch.ts +1 -1
- package/src/resources/extensions/gsd/auto/worktree-safety-phase.ts +149 -0
- package/src/resources/extensions/gsd/auto-closeout-messaging.ts +90 -0
- package/src/resources/extensions/gsd/auto-dashboard.ts +310 -454
- package/src/resources/extensions/gsd/auto-direct-dispatch.ts +15 -2
- package/src/resources/extensions/gsd/auto-dispatch.ts +24 -2
- package/src/resources/extensions/gsd/auto-model-selection.ts +20 -5
- package/src/resources/extensions/gsd/auto-post-unit.ts +16 -9
- package/src/resources/extensions/gsd/auto-prompts.ts +5 -1
- package/src/resources/extensions/gsd/auto-recovery.ts +62 -8
- package/src/resources/extensions/gsd/auto-start.ts +44 -7
- package/src/resources/extensions/gsd/auto-worktree.ts +51 -3
- package/src/resources/extensions/gsd/auto.ts +118 -18
- package/src/resources/extensions/gsd/bootstrap/agent-end-recovery.ts +6 -2
- package/src/resources/extensions/gsd/bootstrap/dynamic-tools.ts +56 -6
- package/src/resources/extensions/gsd/bootstrap/register-extension.ts +2 -1
- package/src/resources/extensions/gsd/bootstrap/register-hooks.ts +36 -3
- package/src/resources/extensions/gsd/bootstrap/write-gate.ts +69 -16
- package/src/resources/extensions/gsd/closeout-wizard.ts +11 -2
- package/src/resources/extensions/gsd/commands/handlers/core.ts +27 -8
- package/src/resources/extensions/gsd/commands/handlers/ops.ts +5 -2
- package/src/resources/extensions/gsd/commands-mcp-status.ts +2 -2
- package/src/resources/extensions/gsd/commands-prefs-wizard.ts +7 -0
- package/src/resources/extensions/gsd/commands-workflow-templates.ts +11 -4
- package/src/resources/extensions/gsd/config-overlay.ts +22 -9
- package/src/resources/extensions/gsd/db/engine.ts +26 -6
- package/src/resources/extensions/gsd/db/queries.ts +29 -0
- package/src/resources/extensions/gsd/db/writers/reconcile.ts +24 -1
- package/src/resources/extensions/gsd/db-migration-backup.ts +56 -7
- package/src/resources/extensions/gsd/db-transaction.ts +37 -20
- package/src/resources/extensions/gsd/db-writer.ts +11 -19
- package/src/resources/extensions/gsd/doctor-environment.ts +267 -142
- package/src/resources/extensions/gsd/doctor-git-checks.ts +4 -1
- package/src/resources/extensions/gsd/doctor-providers.ts +1 -1
- package/src/resources/extensions/gsd/doctor-runtime-checks.ts +10 -10
- package/src/resources/extensions/gsd/gsd-db.ts +15 -19
- package/src/resources/extensions/gsd/guided-flow.ts +128 -2
- package/src/resources/extensions/gsd/health-widget.ts +91 -27
- package/src/resources/extensions/gsd/mcp-bridge.ts +39 -0
- package/src/resources/extensions/gsd/memory-relations.ts +1 -1
- package/src/resources/extensions/gsd/milestone-settlement.ts +2 -2
- package/src/resources/extensions/gsd/notifications.ts +13 -6
- package/src/resources/extensions/gsd/preferences-models.ts +26 -8
- package/src/resources/extensions/gsd/preferences.ts +111 -5
- package/src/resources/extensions/gsd/prompts/complete-milestone.md +8 -2
- package/src/resources/extensions/gsd/prompts/complete-slice.md +6 -2
- package/src/resources/extensions/gsd/prompts/execute-task.md +7 -2
- package/src/resources/extensions/gsd/prompts/quick-task.md +1 -1
- package/src/resources/extensions/gsd/prompts/reactive-execute.md +2 -2
- package/src/resources/extensions/gsd/prompts/run-uat.md +7 -1
- package/src/resources/extensions/gsd/prompts/triage-captures.md +1 -1
- package/src/resources/extensions/gsd/prompts/workflow-start.md +2 -1
- package/src/resources/extensions/gsd/provider-error-guidance.ts +32 -0
- package/src/resources/extensions/gsd/session-lock.ts +8 -7
- package/src/resources/extensions/gsd/skill-activation.ts +3 -6
- package/src/resources/extensions/gsd/state-reconciliation/drift/artifact-db.ts +23 -10
- package/src/resources/extensions/gsd/state.ts +7 -1
- package/src/resources/extensions/gsd/tests/auto-abort-pause-regression.test.ts +1 -1
- package/src/resources/extensions/gsd/tests/auto-blocked-remediation-message.test.ts +1 -1
- package/src/resources/extensions/gsd/tests/auto-closeout-messaging.test.ts +71 -0
- package/src/resources/extensions/gsd/tests/auto-dashboard.test.ts +68 -116
- package/src/resources/extensions/gsd/tests/auto-direct-dispatch-parse.test.ts +33 -0
- package/src/resources/extensions/gsd/tests/auto-loop.test.ts +206 -22
- package/src/resources/extensions/gsd/tests/auto-model-selection-tool-poisoning.test.ts +7 -2
- package/src/resources/extensions/gsd/tests/auto-model-selection.test.ts +16 -1
- package/src/resources/extensions/gsd/tests/auto-orchestrator.test.ts +89 -22
- package/src/resources/extensions/gsd/tests/auto-pause-double-entry-guard.test.ts +1 -1
- package/src/resources/extensions/gsd/tests/auto-paused-ui-cleanup.test.ts +97 -4
- package/src/resources/extensions/gsd/tests/auto-phases-lifecycle.test.ts +2 -1
- package/src/resources/extensions/gsd/tests/auto-start-orphan-bootstrap.test.ts +236 -0
- package/src/resources/extensions/gsd/tests/auto-unit-closeout.test.ts +169 -1
- package/src/resources/extensions/gsd/tests/auto-verification.test.ts +36 -0
- package/src/resources/extensions/gsd/tests/blocker-placeholder-logs.test.ts +218 -0
- package/src/resources/extensions/gsd/tests/complete-milestone-prompt-rendering.test.ts +6 -2
- package/src/resources/extensions/gsd/tests/complete-task.test.ts +141 -5
- package/src/resources/extensions/gsd/tests/core-overlay-fallback.test.ts +1 -0
- package/src/resources/extensions/gsd/tests/db-engine-logs.test.ts +207 -0
- package/src/resources/extensions/gsd/tests/db-migration-backup.test.ts +68 -19
- package/src/resources/extensions/gsd/tests/db-transaction.test.ts +59 -0
- package/src/resources/extensions/gsd/tests/db-writer.test.ts +15 -4
- package/src/resources/extensions/gsd/tests/deep-project-auto-loop.test.ts +2 -1
- package/src/resources/extensions/gsd/tests/derive-state-helpers.test.ts +62 -0
- package/src/resources/extensions/gsd/tests/discuss-routing-fixes.test.ts +12 -2
- package/src/resources/extensions/gsd/tests/dispatch-db-degradation-logs.test.ts +98 -0
- package/src/resources/extensions/gsd/tests/dispatch-history.test.ts +55 -0
- package/src/resources/extensions/gsd/tests/dispatch-logs.test.ts +103 -0
- package/src/resources/extensions/gsd/tests/dispatch-reactive-logs.test.ts +98 -0
- package/src/resources/extensions/gsd/tests/dist-redirect.mjs +8 -0
- package/src/resources/extensions/gsd/tests/doctor-providers.test.ts +6 -4
- package/src/resources/extensions/gsd/tests/engine-interfaces-contract.test.ts +117 -91
- package/src/resources/extensions/gsd/tests/ensure-db-open.test.ts +113 -0
- package/src/resources/extensions/gsd/tests/flat-rate-routing-guard.test.ts +2 -1
- package/src/resources/extensions/gsd/tests/gsd-command-home.test.ts +40 -7
- package/src/resources/extensions/gsd/tests/gsd-db.test.ts +19 -0
- package/src/resources/extensions/gsd/tests/guided-dispatch-root.test.ts +16 -0
- package/src/resources/extensions/gsd/tests/integration/auto-worktree-milestone-merge.test.ts +75 -0
- package/src/resources/extensions/gsd/tests/integration/auto-worktree.test.ts +15 -0
- package/src/resources/extensions/gsd/tests/integration/doctor-environment-async.test.ts +104 -0
- package/src/resources/extensions/gsd/tests/integration/run-uat.test.ts +18 -0
- package/src/resources/extensions/gsd/tests/interactive-routing-bypass.test.ts +1 -0
- package/src/resources/extensions/gsd/tests/journal-integration.test.ts +47 -16
- package/src/resources/extensions/gsd/tests/loop.test.ts +60 -0
- package/src/resources/extensions/gsd/tests/mcp-readiness-preflight.test.ts +205 -0
- package/src/resources/extensions/gsd/tests/mcp-status.test.ts +6 -5
- package/src/resources/extensions/gsd/tests/milestone-merge-stash-restore.test.ts +1 -1
- package/src/resources/extensions/gsd/tests/milestone-report-path.test.ts +1 -1
- package/src/resources/extensions/gsd/tests/milestone-settlement.test.ts +92 -0
- package/src/resources/extensions/gsd/tests/milestone-transition-state-rebuild.test.ts +1 -1
- package/src/resources/extensions/gsd/tests/model-router.test.ts +139 -0
- package/src/resources/extensions/gsd/tests/notifications.test.ts +64 -9
- package/src/resources/extensions/gsd/tests/oauth-api-model-routing.test.ts +13 -1
- package/src/resources/extensions/gsd/tests/orchestrator-legacy-parity.test.ts +1 -1
- package/src/resources/extensions/gsd/tests/orchestrator-logs.test.ts +335 -0
- package/src/resources/extensions/gsd/tests/parallel-skill-prompt-integration.test.ts +2 -2
- package/src/resources/extensions/gsd/tests/parsers-legacy-importers.test.ts +5 -0
- package/src/resources/extensions/gsd/tests/phases-merge-error-stops-auto.test.ts +1 -1
- package/src/resources/extensions/gsd/tests/phases-terminal-complete-idempotent.test.ts +1 -1
- package/src/resources/extensions/gsd/tests/plan-gate-failed-doctor-heal-hint.test.ts +3 -3
- package/src/resources/extensions/gsd/tests/prefs-missing-models-crash.test.ts +35 -4
- package/src/resources/extensions/gsd/tests/progress-strip-test-helpers.ts +79 -0
- package/src/resources/extensions/gsd/tests/prompt-budget-enforcement.test.ts +2 -0
- package/src/resources/extensions/gsd/tests/prompt-contracts.test.ts +11 -2
- package/src/resources/extensions/gsd/tests/provider-error-guidance.test.ts +15 -0
- package/src/resources/extensions/gsd/tests/provider-errors.test.ts +2 -4
- package/src/resources/extensions/gsd/tests/reconcile-logs.test.ts +244 -0
- package/src/resources/extensions/gsd/tests/recovery-finalize-logs.test.ts +119 -0
- package/src/resources/extensions/gsd/tests/recovery-verify-logs.test.ts +428 -0
- package/src/resources/extensions/gsd/tests/register-extension-guard.test.ts +25 -0
- package/src/resources/extensions/gsd/tests/remote-notification-from-desktop.test.ts +31 -81
- package/src/resources/extensions/gsd/tests/resume-missing-worktree-warning.test.ts +5 -5
- package/src/resources/extensions/gsd/tests/runtime-invariant-modules.test.ts +7 -1
- package/src/resources/extensions/gsd/tests/session-start-footer.test.ts +68 -0
- package/src/resources/extensions/gsd/tests/show-config-command.test.ts +3 -0
- package/src/resources/extensions/gsd/tests/single-writer-invariant.test.ts +170 -48
- package/src/resources/extensions/gsd/tests/skill-activation.test.ts +20 -17
- package/src/resources/extensions/gsd/tests/start-auto-detached.test.ts +7 -3
- package/src/resources/extensions/gsd/tests/state-reconciliation-drift.test.ts +17 -1
- package/src/resources/extensions/gsd/tests/stop-auto-race-null-unit.test.ts +1 -1
- package/src/resources/extensions/gsd/tests/teardown-chdir-failure-clears-registry.test.ts +17 -0
- package/src/resources/extensions/gsd/tests/thinking-level-resolution.test.ts +1 -1
- package/src/resources/extensions/gsd/tests/token-tool-gating.test.ts +4 -2
- package/src/resources/extensions/gsd/tests/tool-surface-readiness.test.ts +184 -10
- package/src/resources/extensions/gsd/tests/tui-header-lifecycle.test.ts +40 -86
- package/src/resources/extensions/gsd/tests/tui-render-kit.test.ts +44 -6
- package/src/resources/extensions/gsd/tests/uok-audit.test.ts +194 -0
- package/src/resources/extensions/gsd/tests/uok-plan-v2-wiring.test.ts +1 -1
- package/src/resources/extensions/gsd/tests/workflow-mcp-readiness-cache.test.ts +119 -0
- package/src/resources/extensions/gsd/tests/workflow-mcp.test.ts +65 -2
- package/src/resources/extensions/gsd/tests/workflow-phase-contract-matrix.test.ts +332 -0
- package/src/resources/extensions/gsd/tests/workflow-templates.test.ts +92 -0
- package/src/resources/extensions/gsd/tests/worktree-health-dispatch.test.ts +1 -1
- package/src/resources/extensions/gsd/tests/worktree-manager.test.ts +36 -0
- package/src/resources/extensions/gsd/tests/worktree-project-root-degrade.test.ts +1 -1
- package/src/resources/extensions/gsd/tests/worktree-safety-phase.test.ts +100 -0
- package/src/resources/extensions/gsd/tests/worktree-safety.test.ts +72 -0
- package/src/resources/extensions/gsd/tests/worktree-teardown-safety.test.ts +22 -0
- package/src/resources/extensions/gsd/tests/worktree-write-gate.test.ts +75 -3
- package/src/resources/extensions/gsd/tests/worktree.test.ts +18 -0
- package/src/resources/extensions/gsd/tool-surface-readiness.ts +126 -19
- package/src/resources/extensions/gsd/tools/complete-task.ts +87 -0
- package/src/resources/extensions/gsd/tools/exec-tool.ts +2 -118
- package/src/resources/extensions/gsd/tui/render-kit.ts +56 -13
- package/src/resources/extensions/gsd/unit-context-composer.ts +1 -1
- package/src/resources/extensions/gsd/unit-registry.ts +34 -4
- package/src/resources/extensions/gsd/workflow-logger.ts +5 -0
- package/src/resources/extensions/gsd/workflow-mcp-auto-prep.ts +2 -0
- package/src/resources/extensions/gsd/workflow-mcp-readiness-cache.ts +150 -0
- package/src/resources/extensions/gsd/worktree-manager.ts +97 -2
- package/src/resources/extensions/gsd/worktree-safety.ts +41 -39
- package/src/resources/extensions/gsd/worktree-shell-guard.ts +123 -0
- package/src/resources/extensions/gsd/worktree.ts +7 -1
- package/src/resources/extensions/mcp-client/manager.ts +7 -1
- package/src/resources/extensions/search-the-web/index.ts +45 -9
- package/src/resources/extensions/search-the-web/native-search.ts +16 -4
- package/src/resources/extensions/shared/gsd-browser-cli.ts +41 -2
- package/src/resources/extensions/subagent/index.ts +20 -15
- package/src/resources/extensions/subagent/tests/worktree-cwd.test.ts +57 -0
- package/src/resources/extensions/subagent/worktree-cwd.ts +35 -0
- package/src/resources/skills/create-skill/SKILL.md +3 -0
- package/src/resources/skills/create-skill/references/skill-structure.md +1 -0
- package/dist/resources/skills/gsd-browser/SKILL.md +0 -41
- package/src/resources/skills/gsd-browser/SKILL.md +0 -41
- /package/dist/web/standalone/.next/static/{T-LTxEw5wir5Lm5T3qEVd → Wn9u2NYq0cyUigB_3Z0_N}/_buildManifest.js +0 -0
- /package/dist/web/standalone/.next/static/{T-LTxEw5wir5Lm5T3qEVd → Wn9u2NYq0cyUigB_3Z0_N}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactive-mode.d.ts","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-mode.ts"],"names":[],"mappings":"AAGA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAmB,aAAa,EAAgB,MAAM,aAAa,CAAC;AAChF,OAAO,EAKN,KAAK,QAAQ,IAAI,WAAW,EAE5B,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,KAAK,YAAY,EAA0B,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"interactive-mode.d.ts","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-mode.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,9 +10,11 @@ import { VERSION } from "@gsd/pi-coding-agent/config.js";
|
|
|
10
10
|
import { FooterDataProvider } from "@gsd/pi-coding-agent/core/footer-data-provider.js";
|
|
11
11
|
import { KeybindingsManager } from "@gsd/agent-core";
|
|
12
12
|
import { ensureTool } from "@gsd/pi-coding-agent/utils/tools-manager.js";
|
|
13
|
-
import {
|
|
13
|
+
import { GsdStatusWidget } from "./components/gsd-status-widget.js";
|
|
14
14
|
import { CustomEditor } from "./components/custom-editor.js";
|
|
15
15
|
import { FooterComponent } from "./components/footer.js";
|
|
16
|
+
import { ToolExecutionComponent } from "./components/tool-execution.js";
|
|
17
|
+
import { setRailAnimationEnabled } from "./components/transcript-design.js";
|
|
16
18
|
import { ContextualTips } from "@gsd/agent-core";
|
|
17
19
|
import { handleAgentEvent } from "./controllers/chat-controller.js";
|
|
18
20
|
import { setupEditorSubmitHandler as setupEditorSubmitHandlerController } from "./controllers/input-controller.js";
|
|
@@ -41,14 +43,17 @@ export class InteractiveMode {
|
|
|
41
43
|
}
|
|
42
44
|
constructor(session, options = {}) {
|
|
43
45
|
this.options = options;
|
|
46
|
+
this.gsdStatusExpanded = undefined;
|
|
44
47
|
this.isInitialized = false;
|
|
45
48
|
this.loadingAnimation = undefined;
|
|
49
|
+
this.activityLoader = undefined;
|
|
46
50
|
this.pendingWorkingMessage = undefined;
|
|
47
51
|
this.defaultWorkingMessage = "Working...";
|
|
48
52
|
this.lastBlockingError = undefined;
|
|
49
53
|
this.lastSigintTime = 0;
|
|
50
54
|
this.lastEscapeTime = 0;
|
|
51
55
|
this.changelogMarkdown = undefined;
|
|
56
|
+
this.startupHeaderDismissed = false;
|
|
52
57
|
this.lastStatusSpacer = undefined;
|
|
53
58
|
this.lastStatusText = undefined;
|
|
54
59
|
this.streamingComponent = undefined;
|
|
@@ -81,16 +86,20 @@ export class InteractiveMode {
|
|
|
81
86
|
this.version = VERSION;
|
|
82
87
|
this.ui = new TUI(options.terminal ?? new ProcessTerminal(), this.settingsManager.getShowHardwareCursor());
|
|
83
88
|
this.ui.setClearOnShrink(this.settingsManager.getClearOnShrink());
|
|
89
|
+
setRailAnimationEnabled(this.settingsManager.getToolRailAnimation());
|
|
84
90
|
this.headerContainer = new Container();
|
|
85
91
|
this.chatContainer = new Container();
|
|
86
92
|
this.pendingMessagesContainer = new Container();
|
|
87
|
-
this.
|
|
93
|
+
this.gsdStatusWidget = new GsdStatusWidget(() => ({
|
|
88
94
|
override: this.settingsManager.getAdaptiveMode(),
|
|
89
95
|
activeToolCount: this.pendingTools.size,
|
|
90
|
-
gsdPhase: this.pendingWorkingMessage ?? undefined,
|
|
96
|
+
gsdPhase: this.gsdProgressState?.phase ?? this.pendingWorkingMessage ?? undefined,
|
|
91
97
|
lastError: this.lastBlockingError,
|
|
92
98
|
sessionName: this.sessionManager.getSessionName(),
|
|
93
|
-
cwd: process.cwd(),
|
|
99
|
+
cwd: this.gsdProgressState?.path ?? process.cwd(),
|
|
100
|
+
manuallyExpanded: this.gsdStatusExpanded,
|
|
101
|
+
gsdProgress: this.gsdProgressState,
|
|
102
|
+
isStreaming: this.session.isStreaming,
|
|
94
103
|
}));
|
|
95
104
|
this.statusContainer = new Container();
|
|
96
105
|
this.pinnedMessageContainer = new Container();
|
|
@@ -108,7 +117,15 @@ export class InteractiveMode {
|
|
|
108
117
|
this.editorContainer = new Container();
|
|
109
118
|
this.editorContainer.addChild(this.editor);
|
|
110
119
|
this.footerDataProvider = new FooterDataProvider(process.cwd());
|
|
111
|
-
this.footer = new FooterComponent(session, this.footerDataProvider)
|
|
120
|
+
this.footer = new FooterComponent(session, this.footerDataProvider, () => ({
|
|
121
|
+
override: this.settingsManager.getAdaptiveMode(),
|
|
122
|
+
activeToolCount: this.pendingTools.size,
|
|
123
|
+
gsdPhase: this.gsdProgressState?.phase ?? this.pendingWorkingMessage ?? undefined,
|
|
124
|
+
lastError: this.lastBlockingError,
|
|
125
|
+
cwd: this.gsdProgressState?.path ?? process.cwd(),
|
|
126
|
+
manuallyExpanded: this.gsdStatusExpanded,
|
|
127
|
+
gsdProgress: this.gsdProgressState,
|
|
128
|
+
}));
|
|
112
129
|
this.footer.setAutoCompactEnabled(session.autoCompactionEnabled);
|
|
113
130
|
this.toolOutputExpanded = this.settingsManager.getToolsExpanded();
|
|
114
131
|
this.hideThinkingBlock = this.settingsManager.getHideThinkingBlock();
|
|
@@ -128,7 +145,6 @@ export class InteractiveMode {
|
|
|
128
145
|
await ensureTool("rg");
|
|
129
146
|
this.ui.addChild(this.headerContainer);
|
|
130
147
|
modeInit.mountStartupHeader(this);
|
|
131
|
-
this.ui.addChild(this.adaptiveLayout);
|
|
132
148
|
this.ui.addChild(this.chatContainer);
|
|
133
149
|
this.ui.addChild(this.pendingMessagesContainer);
|
|
134
150
|
this.ui.addChild(this.statusContainer);
|
|
@@ -145,6 +161,11 @@ export class InteractiveMode {
|
|
|
145
161
|
await this.initExtensions();
|
|
146
162
|
this.renderInitialMessages();
|
|
147
163
|
this.ui.start();
|
|
164
|
+
this.ui.onOutputClosed = () => {
|
|
165
|
+
if (this.isShuttingDown)
|
|
166
|
+
return;
|
|
167
|
+
void keyHandlers.shutdown(this);
|
|
168
|
+
};
|
|
148
169
|
this.installStdinErrorRecovery();
|
|
149
170
|
this.isInitialized = true;
|
|
150
171
|
modeInit.updateTerminalTitle(this);
|
|
@@ -317,6 +338,7 @@ export class InteractiveMode {
|
|
|
317
338
|
formatWebSearchResult(content) { return extensionSystem.formatWebSearchResult(this, content); }
|
|
318
339
|
setupExtensionShortcuts(extensionRunner) { extensionSystem.setupExtensionShortcuts(this, extensionRunner); }
|
|
319
340
|
setExtensionStatus(key, text) { extensionSystem.setExtensionStatus(this, key, text); }
|
|
341
|
+
setGsdProgress(state, dispose) { extensionSystem.setGsdProgress(this, state, dispose); }
|
|
320
342
|
setExtensionWidget(key, content, options) { extensionSystem.setExtensionWidget(this, key, content, options); }
|
|
321
343
|
clearExtensionWidgets() { extensionSystem.clearExtensionWidgets(this); }
|
|
322
344
|
resetExtensionUI() { extensionSystem.resetExtensionUI(this); }
|
|
@@ -370,6 +392,26 @@ export class InteractiveMode {
|
|
|
370
392
|
async cycleModel(direction) { return keyHandlers.cycleModel(this, direction); }
|
|
371
393
|
toggleToolOutputExpansion() { keyHandlers.toggleToolOutputExpansion(this); }
|
|
372
394
|
setToolsExpanded(expanded) { keyHandlers.setToolsExpanded(this, expanded); }
|
|
395
|
+
toggleGsdStatusWidget() {
|
|
396
|
+
// Compute the effective expansion so the toggle always visually flips:
|
|
397
|
+
// undefined = use widgetMode default, otherwise use the explicit value.
|
|
398
|
+
const progress = this.gsdProgressState;
|
|
399
|
+
const defaultExpanded = progress !== undefined && progress.widgetMode !== "min";
|
|
400
|
+
const currentlyExpanded = this.gsdStatusExpanded !== undefined ? this.gsdStatusExpanded : defaultExpanded;
|
|
401
|
+
this.gsdStatusExpanded = !currentlyExpanded;
|
|
402
|
+
this.gsdStatusWidget.invalidate();
|
|
403
|
+
this.footer.invalidate();
|
|
404
|
+
this.ui.requestRender();
|
|
405
|
+
}
|
|
406
|
+
setToolRailAnimation(enabled) {
|
|
407
|
+
this.settingsManager.setToolRailAnimation(enabled);
|
|
408
|
+
setRailAnimationEnabled(enabled);
|
|
409
|
+
for (const child of this.chatContainer.children) {
|
|
410
|
+
if (child instanceof ToolExecutionComponent)
|
|
411
|
+
child.refreshRailAnimation();
|
|
412
|
+
}
|
|
413
|
+
this.ui.requestRender();
|
|
414
|
+
}
|
|
373
415
|
toggleThinkingBlockVisibility() { keyHandlers.toggleThinkingBlockVisibility(this); }
|
|
374
416
|
openExternalEditor() { keyHandlers.openExternalEditor(this); }
|
|
375
417
|
showSelector(create) { selectors.showSelector(this, create); }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactive-mode.js","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-mode.ts"],"names":[],"mappings":"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","sourcesContent":["// Project/App: gsd-pi\n// File Purpose: Interactive TUI mode and session UI rendering.\n// gsd-pi - Interactive TUI mode for coding-agent sessions.\n/**\n * Interactive mode for the coding agent.\n * Handles TUI rendering and user interaction, delegating business logic to AgentSession.\n */\n\nimport type { ImageContent } from \"@gsd/pi-ai\";\nimport type { EditorComponent, MarkdownTheme, Spacer, Text } from \"@gsd/pi-tui\";\nimport {\n\tCombinedAutocompleteProvider,\n\tContainer,\n\tLoader,\n\tProcessTerminal,\n\ttype Terminal as TuiTerminal,\n\tTUI,\n} from \"@gsd/pi-tui\";\nimport { VERSION } from \"@gsd/pi-coding-agent/config.js\";\nimport { type AgentSession, type AgentSessionEvent } from \"@gsd/agent-core\";\nimport type { ExtensionRunner } from \"@gsd/pi-coding-agent/core/extensions/index.js\";\nimport { FooterDataProvider } from \"@gsd/pi-coding-agent/core/footer-data-provider.js\";\nimport { KeybindingsManager } from \"@gsd/agent-core\";\nimport { ensureTool } from \"@gsd/pi-coding-agent/utils/tools-manager.js\";\nimport { AdaptiveLayoutComponent } from \"./components/adaptive-layout.js\";\nimport { AssistantMessageComponent } from \"./components/assistant-message.js\";\nimport { BashExecutionComponent } from \"./components/bash-execution.js\";\nimport { CustomEditor } from \"./components/custom-editor.js\";\nimport { ExtensionEditorComponent } from \"./components/extension-editor.js\";\nimport { ExtensionInputComponent } from \"./components/extension-input.js\";\nimport { ExtensionSelectorComponent } from \"./components/extension-selector.js\";\nimport { FooterComponent } from \"./components/footer.js\";\nimport { ToolExecutionComponent } from \"./components/tool-execution.js\";\nimport { ContextualTips } from \"@gsd/agent-core\";\nimport { handleAgentEvent } from \"./controllers/chat-controller.js\";\nimport { setupEditorSubmitHandler as setupEditorSubmitHandlerController } from \"./controllers/input-controller.js\";\nimport {\n\tgetEditorTheme,\n\tinitTheme,\n\tonThemeChange,\n\tsetRegisteredThemes,\n\tstopThemeWatcher,\n} from \"@gsd/pi-coding-agent/theme/theme.js\";\nimport * as chatRender from \"./interactive-chat-render.js\";\nimport * as commandHandlers from \"./interactive-command-handlers.js\";\nimport * as extensionSystem from \"./interactive-extension-system.js\";\nimport * as inputRouter from \"./interactive-input-router.js\";\nimport * as keyHandlers from \"./interactive-key-handlers.js\";\nimport * as modeInit from \"./interactive-mode-init.js\";\nimport type { CompactionQueuedMessage } from \"./interactive-notify-render.js\";\nimport * as resourceDisplay from \"./interactive-resource-display.js\";\nimport * as selectors from \"./interactive-selectors.js\";\nimport { clearMarkdownThemeCache, getMarkdownThemeWithSettings as getMarkdownThemeWithSettingsModule } from \"./interactive-theme-cache.js\";\nimport * as uiMessaging from \"./interactive-ui-messaging.js\";\nimport { DEFAULT_TOOL_OUTPUT_EXPANDED } from \"./interactive-mode-class-constants.js\";\n\nexport type {\n\tAssistantReplaySegment,\n\tExtensionNotifyType,\n\tExtensionNotifyRenderResult,\n\tCompactionQueuedMessage,\n} from \"./interactive-notify-render.js\";\nexport {\n\tbuildAssistantReplaySegments,\n\tgetToolExpansionStartupHint,\n\tshouldRenderExtensionNotifyInChat,\n\trenderExtensionNotifyInChat,\n\trenderBlockingErrorBanner,\n} from \"./interactive-notify-render.js\";\n\nexport interface InteractiveModeOptions {\n\t/** Providers that were migrated to auth.json (shows warning) */\n\tmigratedProviders?: string[];\n\t/** Warning message if session model couldn't be restored */\n\tmodelFallbackMessage?: string;\n\t/** Initial message to send on startup (can include @file content) */\n\tinitialMessage?: string;\n\t/** Images to attach to the initial message */\n\tinitialImages?: ImageContent[];\n\t/** Additional messages to send after the initial message */\n\tinitialMessages?: string[];\n\t/** Force verbose startup (overrides quietStartup setting) */\n\tverbose?: boolean;\n\t/** Override the terminal implementation used by the TUI. */\n\tterminal?: TuiTerminal;\n\t/** When false, reuse the session's existing extension bindings instead of rebinding them for TUI mode. */\n\tbindExtensions?: boolean;\n\t/** Submit editor prompts directly to AgentSession instead of using the interactive prompt loop. */\n\tsubmitPromptsDirectly?: boolean;\n\t/** Control what happens when the user requests shutdown from the TUI. */\n\tshutdownBehavior?: \"exit_process\" | \"stop_ui\" | \"ignore\";\n}\n\nexport class InteractiveMode {\n\tprivate session: AgentSession;\n\tprivate ui: TUI;\n\tprivate chatContainer: Container;\n\tprivate pendingMessagesContainer: Container;\n\tprivate adaptiveLayout: AdaptiveLayoutComponent;\n\tprivate statusContainer: Container;\n\tprivate pinnedMessageContainer: Container;\n\tprivate blockingErrorContainer: Container;\n\tprivate defaultEditor: CustomEditor;\n\tprivate editor: EditorComponent;\n\tprivate autocompleteProvider: CombinedAutocompleteProvider | undefined;\n\tprivate editorContainer: Container;\n\tprivate footer: FooterComponent;\n\tprivate footerDataProvider: FooterDataProvider;\n\tprivate keybindings: KeybindingsManager;\n\tprivate version: string;\n\tprivate isInitialized = false;\n\tprivate onInputCallback?: (text: string) => void;\n\tprivate loadingAnimation: Loader | undefined = undefined;\n\tprivate pendingWorkingMessage: string | null | undefined = undefined;\n\tprivate readonly defaultWorkingMessage = \"Working...\";\n\tprivate lastBlockingError: string | undefined = undefined;\n\n\tprivate lastSigintTime = 0;\n\tprivate lastEscapeTime = 0;\n\tprivate changelogMarkdown: string | undefined = undefined;\n\n\tprivate lastStatusSpacer: Spacer | undefined = undefined;\n\tprivate lastStatusText: Text | undefined = undefined;\n\n\tprivate streamingComponent: AssistantMessageComponent | undefined = undefined;\n\tprivate streamingMessage: import(\"@gsd/pi-ai\").AssistantMessage | undefined = undefined;\n\n\tprivate pendingTools = new Map<string, ToolExecutionComponent>();\n\tprivate toolOutputExpanded = DEFAULT_TOOL_OUTPUT_EXPANDED;\n\tprivate pendingImages: ImageContent[] = [];\n\tprivate hideThinkingBlock = false;\n\tprivate skillCommands = new Map<string, string>();\n\tprivate unsubscribe?: () => void;\n\tprivate _branchChangeUnsub?: () => void;\n\tprivate _themeChangeUnsub?: () => void;\n\tprivate markdownThemeCache?: MarkdownTheme;\n\tprivate markdownThemeCacheIndent?: string;\n\tprivate isBashMode = false;\n\tprivate contextualTips = new ContextualTips();\n\tprivate bashComponent: BashExecutionComponent | undefined = undefined;\n\tprivate pendingBashComponents: BashExecutionComponent[] = [];\n\tprivate autoCompactionLoader: Loader | undefined = undefined;\n\tprivate autoCompactionEscapeHandler?: () => void;\n\tprivate retryLoader: Loader | undefined = undefined;\n\tprivate retryEscapeHandler?: () => void;\n\tprivate compactionQueuedMessages: CompactionQueuedMessage[] = [];\n\tprivate shutdownRequested = false;\n\tprivate extensionSelector: ExtensionSelectorComponent | undefined = undefined;\n\tprivate extensionInput: ExtensionInputComponent | undefined = undefined;\n\tprivate extensionEditor: ExtensionEditorComponent | undefined = undefined;\n\tprivate extensionTerminalInputUnsubscribers = new Set<() => void>();\n\tprivate stdinErrorHandler: ((err: Error) => void) | undefined = undefined;\n\tprivate extensionWidgetsAbove = new Map<string, import(\"@gsd/pi-tui\").Component & { dispose?(): void }>();\n\tprivate extensionWidgetsBelow = new Map<string, import(\"@gsd/pi-tui\").Component & { dispose?(): void }>();\n\tprivate widgetContainerAbove!: Container;\n\tprivate widgetContainerBelow!: Container;\n\tprivate customFooter: (import(\"@gsd/pi-tui\").Component & { dispose?(): void }) | undefined = undefined;\n\tprivate headerContainer: Container;\n\tprivate builtInHeader: import(\"@gsd/pi-tui\").Component | undefined = undefined;\n\tprivate customHeader: (import(\"@gsd/pi-tui\").Component & { dispose?(): void }) | undefined = undefined;\n\n\tprivate get agent() {\n\t\treturn this.session.agent;\n\t}\n\tprivate get sessionManager() {\n\t\treturn this.session.sessionManager;\n\t}\n\tprivate get settingsManager() {\n\t\treturn this.session.settingsManager;\n\t}\n\n\tconstructor(\n\t\tsession: AgentSession,\n\t\tprivate options: InteractiveModeOptions = {},\n\t) {\n\t\tthis.session = session;\n\t\tthis.version = VERSION;\n\t\tthis.ui = new TUI(options.terminal ?? new ProcessTerminal(), this.settingsManager.getShowHardwareCursor());\n\t\tthis.ui.setClearOnShrink(this.settingsManager.getClearOnShrink());\n\t\tthis.headerContainer = new Container();\n\t\tthis.chatContainer = new Container();\n\t\tthis.pendingMessagesContainer = new Container();\n\t\tthis.adaptiveLayout = new AdaptiveLayoutComponent(() => ({\n\t\t\toverride: this.settingsManager.getAdaptiveMode(),\n\t\t\tactiveToolCount: this.pendingTools.size,\n\t\t\tgsdPhase: this.pendingWorkingMessage ?? undefined,\n\t\t\tlastError: this.lastBlockingError,\n\t\t\tsessionName: this.sessionManager.getSessionName(),\n\t\t\tcwd: process.cwd(),\n\t\t}));\n\t\tthis.statusContainer = new Container();\n\t\tthis.pinnedMessageContainer = new Container();\n\t\tthis.blockingErrorContainer = new Container();\n\t\tthis.widgetContainerAbove = new Container();\n\t\tthis.widgetContainerBelow = new Container();\n\t\tthis.keybindings = KeybindingsManager.create();\n\t\tconst editorPaddingX = this.settingsManager.getEditorPaddingX();\n\t\tconst autocompleteMaxVisible = this.settingsManager.getAutocompleteMaxVisible();\n\t\tthis.defaultEditor = new CustomEditor(this.ui, getEditorTheme(), this.keybindings, {\n\t\t\tpaddingX: editorPaddingX,\n\t\t\tautocompleteMaxVisible,\n\t\t});\n\t\tthis.editor = this.defaultEditor;\n\t\tthis.editorContainer = new Container();\n\t\tthis.editorContainer.addChild(this.editor as import(\"@gsd/pi-tui\").Component);\n\t\tthis.footerDataProvider = new FooterDataProvider(process.cwd());\n\t\tthis.footer = new FooterComponent(session, this.footerDataProvider);\n\t\tthis.footer.setAutoCompactEnabled(session.autoCompactionEnabled);\n\t\tthis.toolOutputExpanded = this.settingsManager.getToolsExpanded();\n\t\tthis.hideThinkingBlock = this.settingsManager.getHideThinkingBlock();\n\t\tsetRegisteredThemes(this.session.resourceLoader.getThemes().themes);\n\t\tinitTheme(this.settingsManager.getTheme(), true);\n\t}\n\n\tprivate setupAutocomplete(): void {\n\t\tinputRouter.setupAutocomplete(this);\n\t}\n\n\tprivate installStdinErrorRecovery(): void {\n\t\tmodeInit.installStdinErrorRecovery(this);\n\t}\n\n\tasync init(): Promise<void> {\n\t\tif (this.isInitialized) return;\n\n\t\tthis.changelogMarkdown = modeInit.getChangelogForDisplay(this);\n\t\tawait ensureTool(\"rg\");\n\n\t\tthis.ui.addChild(this.headerContainer);\n\t\tmodeInit.mountStartupHeader(this);\n\n\t\tthis.ui.addChild(this.adaptiveLayout);\n\t\tthis.ui.addChild(this.chatContainer);\n\t\tthis.ui.addChild(this.pendingMessagesContainer);\n\t\tthis.ui.addChild(this.statusContainer);\n\t\tthis.ui.addChild(this.pinnedMessageContainer);\n\t\tthis.ui.addChild(this.blockingErrorContainer);\n\t\tthis.renderWidgets();\n\t\tthis.ui.addChild(this.widgetContainerAbove);\n\t\tthis.ui.addChild(this.editorContainer);\n\t\tthis.ui.addChild(this.widgetContainerBelow);\n\t\tthis.ui.addChild(this.footer);\n\t\tthis.ui.setFocus(this.editor);\n\n\t\tthis.setupKeyHandlers();\n\t\tthis.setupEditorSubmitHandler();\n\t\tawait this.initExtensions();\n\t\tthis.renderInitialMessages();\n\n\t\tthis.ui.start();\n\t\tthis.installStdinErrorRecovery();\n\t\tthis.isInitialized = true;\n\n\t\tmodeInit.updateTerminalTitle(this);\n\t\tthis.subscribeToAgent();\n\n\t\tthis._themeChangeUnsub = onThemeChange(() => {\n\t\t\tthis.clearMarkdownThemeCache();\n\t\t\tthis.ui.invalidate();\n\t\t\tthis.updateEditorBorderColor();\n\t\t\tthis.ui.requestRender();\n\t\t});\n\n\t\tthis._branchChangeUnsub = this.footerDataProvider.onBranchChange(() => {\n\t\t\tthis.ui.requestRender();\n\t\t});\n\n\t\tawait this.updateAvailableProviderCount();\n\t}\n\n\tasync run(): Promise<void> {\n\t\tawait this.init();\n\n\t\tmodeInit.checkForNewVersion(this).then((newVersion) => {\n\t\t\tif (newVersion) {\n\t\t\t\tmodeInit.showNewVersionNotification(this, newVersion);\n\t\t\t}\n\t\t});\n\n\t\tmodeInit.checkTmuxKeyboardSetup().then((warning) => {\n\t\t\tif (warning) {\n\t\t\t\tthis.showWarning(warning);\n\t\t\t}\n\t\t});\n\n\t\tconst { migratedProviders, modelFallbackMessage, initialMessage, initialImages, initialMessages } = this.options;\n\n\t\tif (migratedProviders && migratedProviders.length > 0) {\n\t\t\tthis.showWarning(`Migrated credentials to auth.json: ${migratedProviders.join(\", \")}`);\n\t\t}\n\n\t\tconst modelsJsonError = this.session.modelRegistry.getError();\n\t\tif (modelsJsonError) {\n\t\t\tthis.showError(`models.json error: ${modelsJsonError}`);\n\t\t}\n\n\t\tif (modelFallbackMessage) {\n\t\t\tthis.showWarning(modelFallbackMessage);\n\t\t}\n\n\t\tif (initialMessage) {\n\t\t\ttry {\n\t\t\t\tawait this.session.prompt(initialMessage, { images: initialImages });\n\t\t\t} catch (error: unknown) {\n\t\t\t\tconst errorMessage = error instanceof Error ? error.message : \"Unknown error occurred\";\n\t\t\t\tthis.showError(errorMessage);\n\t\t\t}\n\t\t}\n\n\t\tif (initialMessages) {\n\t\t\tfor (const message of initialMessages) {\n\t\t\t\ttry {\n\t\t\t\t\tawait this.session.prompt(message);\n\t\t\t\t} catch (error: unknown) {\n\t\t\t\t\tconst errorMessage = error instanceof Error ? error.message : \"Unknown error occurred\";\n\t\t\t\t\tthis.showError(errorMessage);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\twhile (true) {\n\t\t\tconst userInput = await this.getUserInput();\n\t\t\tconst images = this.pendingImages.length > 0 ? [...this.pendingImages] : undefined;\n\t\t\tthis.pendingImages.length = 0;\n\t\t\ttry {\n\t\t\t\tawait this.session.prompt(userInput, { images });\n\t\t\t} catch (error: unknown) {\n\t\t\t\tconst errorMessage = error instanceof Error ? error.message : \"Unknown error occurred\";\n\t\t\t\tthis.showError(errorMessage);\n\t\t\t}\n\t\t}\n\t}\n\n\tgetMarkdownThemeWithSettings(): MarkdownTheme {\n\t\treturn getMarkdownThemeWithSettingsModule(this);\n\t}\n\n\tprivate clearMarkdownThemeCache(): void {\n\t\tclearMarkdownThemeCache(this);\n\t}\n\n\tprivate setupEditorSubmitHandler(): void {\n\t\tsetupEditorSubmitHandlerController(this as any);\n\t}\n\n\tprivate subscribeToAgent(): void {\n\t\tlet eventQueue: Promise<void> = Promise.resolve();\n\t\tthis.unsubscribe = this.session.subscribe((event) => {\n\t\t\teventQueue = eventQueue.then(() => this.handleEvent(event)).catch(() => {});\n\t\t});\n\t}\n\n\tprivate async handleEvent(event: AgentSessionEvent): Promise<void> {\n\t\tawait handleAgentEvent(this as any, event);\n\t}\n\n\tclearEditor(): void {\n\t\tuiMessaging.clearEditor(this);\n\t}\n\n\tshowError(errorMessage: string): void {\n\t\tuiMessaging.showError(this, errorMessage);\n\t}\n\n\tclearBlockingError(): void {\n\t\tuiMessaging.clearBlockingError(this);\n\t}\n\n\tshowWarning(warningMessage: string): void {\n\t\tuiMessaging.showWarning(this, warningMessage);\n\t}\n\n\tshowSuccess(successMessage: string): void {\n\t\tuiMessaging.showSuccess(this, successMessage);\n\t}\n\n\tshowTip(message: string): void {\n\t\tuiMessaging.showTip(this, message);\n\t}\n\n\tgetContextPercent(): number | undefined {\n\t\treturn this.session.getContextUsage()?.percent ?? undefined;\n\t}\n\n\trenderInitialMessages(): void {\n\t\tchatRender.renderInitialMessages(this);\n\t}\n\n\tasync getUserInput(): Promise<string> {\n\t\treturn chatRender.getUserInput(this);\n\t}\n\n\tgetExtensionUIContext() {\n\t\treturn extensionSystem.createExtensionUIContext(this);\n\t}\n\n\trequestRender(force = false): void {\n\t\tif (!this.isInitialized) return;\n\t\tthis.ui.requestRender(force);\n\t}\n\n\tstop(): void {\n\t\tif (this.loadingAnimation) {\n\t\t\tthis.loadingAnimation.stop();\n\t\t\tthis.loadingAnimation = undefined;\n\t\t}\n\t\tthis.clearExtensionTerminalInputListeners();\n\t\tthis._branchChangeUnsub?.();\n\t\tthis._branchChangeUnsub = undefined;\n\t\tthis._themeChangeUnsub?.();\n\t\tthis._themeChangeUnsub = undefined;\n\t\tstopThemeWatcher();\n\n\t\tif (this.onInputCallback) {\n\t\t\tthis.onInputCallback(\"\");\n\t\t\tthis.onInputCallback = undefined;\n\t\t}\n\n\t\tthis.clearExtensionWidgets();\n\t\tif (this.customFooter?.dispose) {\n\t\t\tthis.customFooter.dispose();\n\t\t}\n\t\tthis.customFooter = undefined;\n\t\tif (this.customHeader?.dispose) {\n\t\t\tthis.customHeader.dispose();\n\t\t}\n\t\tthis.customHeader = undefined;\n\t\tthis.autocompleteProvider = undefined;\n\n\t\tthis.footer.dispose();\n\t\tthis.footerDataProvider.dispose();\n\t\tif (this.unsubscribe) {\n\t\t\tthis.unsubscribe();\n\t\t}\n\t\tif (this.stdinErrorHandler) {\n\t\t\tprocess.stdin.removeListener(\"error\", this.stdinErrorHandler);\n\t\t\tthis.stdinErrorHandler = undefined;\n\t\t}\n\t\tif (this.isInitialized) {\n\t\t\tthis.ui.stop();\n\t\t\tthis.isInitialized = false;\n\t\t}\n\t}\n\n\t// Delegates (Phase E2 extracted modules)\n\tprivate formatDisplayPath(p: string): string { return resourceDisplay.formatDisplayPath(this, p); }\n\tprivate getShortPath(fullPath: string, source: string): string { return resourceDisplay.getShortPath(this, fullPath, source); }\n\tprivate showLoadedResources(options?: Parameters<typeof resourceDisplay.showLoadedResources>[1]): void { resourceDisplay.showLoadedResources(this, options); }\n\n\tprivate async initExtensions(): Promise<void> { return extensionSystem.initExtensions(this); }\n\tprivate getRegisteredToolDefinition(toolName: string) { return extensionSystem.getRegisteredToolDefinition(this, toolName); }\n\tprivate formatWebSearchResult(content: unknown): string { return extensionSystem.formatWebSearchResult(this, content); }\n\tprivate setupExtensionShortcuts(extensionRunner: ExtensionRunner): void { extensionSystem.setupExtensionShortcuts(this, extensionRunner); }\n\tprivate setExtensionStatus(key: string, text: string | undefined): void { extensionSystem.setExtensionStatus(this, key, text); }\n\tprivate setExtensionWidget(key: string, content: Parameters<typeof extensionSystem.setExtensionWidget>[2], options?: Parameters<typeof extensionSystem.setExtensionWidget>[3]): void { extensionSystem.setExtensionWidget(this, key, content, options); }\n\tprivate clearExtensionWidgets(): void { extensionSystem.clearExtensionWidgets(this); }\n\tprivate resetExtensionUI(): void { extensionSystem.resetExtensionUI(this); }\n\tprivate renderWidgets(): void { extensionSystem.renderWidgets(this); }\n\tprivate setExtensionFooter(factory: Parameters<typeof extensionSystem.setExtensionFooter>[1]): void { extensionSystem.setExtensionFooter(this, factory); }\n\tprivate setExtensionHeader(factory: Parameters<typeof extensionSystem.setExtensionHeader>[1]): void { extensionSystem.setExtensionHeader(this, factory); }\n\tprivate addExtensionTerminalInputListener(handler: Parameters<typeof extensionSystem.addExtensionTerminalInputListener>[1]): () => void { return extensionSystem.addExtensionTerminalInputListener(this, handler); }\n\tprivate clearExtensionTerminalInputListeners(): void { extensionSystem.clearExtensionTerminalInputListeners(this); }\n\tprivate createExtensionUIContext() { return extensionSystem.createExtensionUIContext(this); }\n\tprivate showExtensionSelector(title: string, options: string[], opts?: import(\"@gsd/pi-coding-agent/core/extensions/index.js\").ExtensionUIDialogOptions): Promise<string | undefined> { return extensionSystem.showExtensionSelector(this, title, options, opts); }\n\tprivate hideExtensionSelector(): void { extensionSystem.hideExtensionSelector(this); }\n\tprivate showExtensionConfirm(title: string, message: string, opts?: import(\"@gsd/pi-coding-agent/core/extensions/index.js\").ExtensionUIDialogOptions): Promise<boolean> { return extensionSystem.showExtensionConfirm(this, title, message, opts); }\n\tprivate showExtensionInput(title: string, placeholder?: string, opts?: import(\"@gsd/pi-coding-agent/core/extensions/index.js\").ExtensionUIDialogOptions): Promise<string | undefined> { return extensionSystem.showExtensionInput(this, title, placeholder, opts); }\n\tprivate hideExtensionInput(): void { extensionSystem.hideExtensionInput(this); }\n\tprivate showExtensionEditor(title: string, prefill?: string): Promise<string | undefined> { return extensionSystem.showExtensionEditor(this, title, prefill); }\n\tprivate hideExtensionEditor(): void { extensionSystem.hideExtensionEditor(this); }\n\tprivate setCustomEditorComponent(factory: Parameters<typeof extensionSystem.setCustomEditorComponent>[1]): void { extensionSystem.setCustomEditorComponent(this, factory); }\n\tprivate showExtensionNotify(message: string, type?: import(\"./interactive-notify-render.js\").ExtensionNotifyType): void { extensionSystem.showExtensionNotify(this, message, type); }\n\tprivate showExtensionCustom<T>(factory: Parameters<typeof extensionSystem.showExtensionCustom<T>>[1], options?: Parameters<typeof extensionSystem.showExtensionCustom<T>>[2]): Promise<T> { return extensionSystem.showExtensionCustom(this, factory, options); }\n\tprivate showExtensionError(extensionPath: string, error: string, stack?: string): void { extensionSystem.showExtensionError(this, extensionPath, error, stack); }\n\n\tprivate setupKeyHandlers(): void { keyHandlers.setupKeyHandlers(this); }\n\tprivate handleClipboardImagePaste(): Promise<void> { return keyHandlers.handleClipboardImagePaste(this); }\n\tprivate handlePastedImagePath(filePath: string): void { keyHandlers.handlePastedImagePath(this, filePath); }\n\tprivate getSlashCommandContext() { return inputRouter.getSlashCommandContext(this); }\n\tprivate getAllQueuedMessages() { return inputRouter.getAllQueuedMessages(this); }\n\tprivate clearAllQueues() { return inputRouter.clearAllQueues(this); }\n\tprivate updatePendingMessagesDisplay(): void { inputRouter.updatePendingMessagesDisplay(this); }\n\tprivate restoreQueuedMessagesToEditor(options?: Parameters<typeof inputRouter.restoreQueuedMessagesToEditor>[1]): number { return inputRouter.restoreQueuedMessagesToEditor(this, options); }\n\tprivate queueCompactionMessage(text: string, mode: \"steer\" | \"followUp\"): void { inputRouter.queueCompactionMessage(this, text, mode); }\n\tprivate isExtensionCommand(text: string): boolean { return inputRouter.isExtensionCommand(this, text); }\n\tprivate isKnownSlashCommand(text: string): boolean { return inputRouter.isKnownSlashCommand(this, text); }\n\tprivate async flushCompactionQueue(options?: Parameters<typeof inputRouter.flushCompactionQueue>[1]): Promise<void> { return inputRouter.flushCompactionQueue(this, options); }\n\tprivate flushPendingBashComponents(): void { inputRouter.flushPendingBashComponents(this); }\n\tprivate updateTerminalTitle(): void { modeInit.updateTerminalTitle(this); }\n\n\tprivate getUserMessageText(message: import(\"@gsd/pi-ai\").Message): string { return chatRender.getUserMessageText(this, message); }\n\tprivate showStatus(message: string, options?: { append?: boolean }): void { chatRender.showStatus(this, message, options); }\n\tprivate addMessageToChat(message: import(\"@gsd/pi-agent-core\").AgentMessage, options?: { populateHistory?: boolean }): void { chatRender.addMessageToChat(this, message, options); }\n\tprivate trimChatHistory(): void { chatRender.trimChatHistory(this); }\n\tprivate renderSessionContext(sessionContext: import(\"@gsd/pi-coding-agent/core/session-manager.js\").SessionContext, options?: Parameters<typeof chatRender.renderSessionContext>[2]): void { chatRender.renderSessionContext(this, sessionContext, options); }\n\tprivate rebuildChatFromMessages(): void { chatRender.rebuildChatFromMessages(this); }\n\tprivate populatePinnedFromMessages(messages: import(\"@gsd/pi-agent-core\").AgentMessage[]): void { chatRender.populatePinnedFromMessages(this, messages); }\n\n\tprivate handleCtrlC(): void { keyHandlers.handleCtrlC(this); }\n\tprivate handleCtrlD(): void { keyHandlers.handleCtrlD(this); }\n\tprivate isShuttingDown = false;\n\tprivate async shutdown(): Promise<void> { return keyHandlers.shutdown(this); }\n\tprivate async checkShutdownRequested(): Promise<void> { return keyHandlers.checkShutdownRequested(this); }\n\tprivate handleCtrlZ(): void { keyHandlers.handleCtrlZ(this); }\n\tprivate async handleFollowUp(): Promise<void> { return keyHandlers.handleFollowUp(this); }\n\tprivate handleDequeue(): void { keyHandlers.handleDequeue(this); }\n\tprivate updateEditorBorderColor(): void { keyHandlers.updateEditorBorderColor(this); }\n\tprivate cycleThinkingLevel(): void { keyHandlers.cycleThinkingLevel(this); }\n\tprivate async cycleModel(direction: \"forward\" | \"backward\"): Promise<void> { return keyHandlers.cycleModel(this, direction); }\n\tprivate toggleToolOutputExpansion(): void { keyHandlers.toggleToolOutputExpansion(this); }\n\tprivate setToolsExpanded(expanded: boolean): void { keyHandlers.setToolsExpanded(this, expanded); }\n\tprivate toggleThinkingBlockVisibility(): void { keyHandlers.toggleThinkingBlockVisibility(this); }\n\tprivate openExternalEditor(): void { keyHandlers.openExternalEditor(this); }\n\n\tprivate showSelector(create: Parameters<typeof selectors.showSelector>[1]): void { selectors.showSelector(this, create); }\n\tprivate showSettingsSelector(): void { selectors.showSettingsSelector(this); }\n\tprivate async handleModelCommand(searchTerm?: string): Promise<void> { return selectors.handleModelCommand(this, searchTerm); }\n\tprivate async findExactModelMatch(searchTerm: string) { return selectors.findExactModelMatch(this, searchTerm); }\n\tprivate async getModelCandidates() { return selectors.getModelCandidates(this); }\n\tprivate async updateAvailableProviderCount(): Promise<void> { return selectors.updateAvailableProviderCount(this); }\n\tprivate showModelSelector(initialSearchInput?: string): void { selectors.showModelSelector(this, initialSearchInput); }\n\tprivate async showModelsSelector(): Promise<void> { return selectors.showModelsSelector(this); }\n\tprivate showUserMessageSelector(): void { selectors.showUserMessageSelector(this); }\n\tprivate showTreeSelector(initialSelectedId?: string): void { selectors.showTreeSelector(this, initialSelectedId); }\n\tprivate showSessionSelector(): void { selectors.showSessionSelector(this); }\n\tprivate async handleResumeSession(sessionPath: string): Promise<void> { return selectors.handleResumeSession(this, sessionPath); }\n\tprivate showProviderManager(): void { selectors.showProviderManager(this); }\n\tprivate async showOAuthSelector(mode: \"login\" | \"logout\"): Promise<void> { return selectors.showOAuthSelector(this, mode); }\n\tprivate async showLoginDialog(providerId: string): Promise<void> { return selectors.showLoginDialog(this, providerId); }\n\n\tprivate async handleReloadCommand(): Promise<void> { return commandHandlers.handleReloadCommand(this); }\n\tprivate async handleClearCommand(): Promise<void> { return commandHandlers.handleClearCommand(this); }\n\tprivate handleDebugCommand(): void { commandHandlers.handleDebugCommand(this); }\n\tprivate handleDaxnuts(): void { commandHandlers.handleDaxnuts(this); }\n\tprivate checkDaxnutsEasterEgg(model: { provider: string; id: string }): void { commandHandlers.checkDaxnutsEasterEgg(this, model); }\n\tprivate async handleBashCommand(command: string, excludeFromContext?: boolean, displayCommand?: string, loginShell?: boolean): Promise<void> { return commandHandlers.handleBashCommand(this, command, excludeFromContext, displayCommand, loginShell); }\n\tprivate async executeCompaction(customInstructions?: string, isAuto?: boolean) { return commandHandlers.executeCompaction(this, customInstructions, isAuto); }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"interactive-mode.js","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-mode.ts"],"names":[],"mappings":"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","sourcesContent":["// Project/App: gsd-pi\n// File Purpose: Interactive TUI mode and session UI rendering.\n// gsd-pi - Interactive TUI mode for coding-agent sessions.\n/**\n * Interactive mode for the coding agent.\n * Handles TUI rendering and user interaction, delegating business logic to AgentSession.\n */\n\nimport type { ImageContent } from \"@gsd/pi-ai\";\nimport type { EditorComponent, MarkdownTheme, Spacer, Text } from \"@gsd/pi-tui\";\nimport {\n\tCombinedAutocompleteProvider,\n\tContainer,\n\tLoader,\n\tProcessTerminal,\n\ttype Terminal as TuiTerminal,\n\tTUI,\n} from \"@gsd/pi-tui\";\nimport { VERSION } from \"@gsd/pi-coding-agent/config.js\";\nimport { type AgentSession, type AgentSessionEvent } from \"@gsd/agent-core\";\nimport type { ExtensionRunner } from \"@gsd/pi-coding-agent/core/extensions/index.js\";\nimport { FooterDataProvider } from \"@gsd/pi-coding-agent/core/footer-data-provider.js\";\nimport { KeybindingsManager } from \"@gsd/agent-core\";\nimport { ensureTool } from \"@gsd/pi-coding-agent/utils/tools-manager.js\";\nimport { GsdStatusWidget } from \"./components/gsd-status-widget.js\";\nimport { AssistantMessageComponent } from \"./components/assistant-message.js\";\nimport { BashExecutionComponent } from \"./components/bash-execution.js\";\nimport { CustomEditor } from \"./components/custom-editor.js\";\nimport { ExtensionEditorComponent } from \"./components/extension-editor.js\";\nimport { ExtensionInputComponent } from \"./components/extension-input.js\";\nimport { ExtensionSelectorComponent } from \"./components/extension-selector.js\";\nimport { FooterComponent } from \"./components/footer.js\";\nimport { ToolExecutionComponent } from \"./components/tool-execution.js\";\nimport { setRailAnimationEnabled } from \"./components/transcript-design.js\";\nimport { ContextualTips } from \"@gsd/agent-core\";\nimport { handleAgentEvent } from \"./controllers/chat-controller.js\";\nimport { setupEditorSubmitHandler as setupEditorSubmitHandlerController } from \"./controllers/input-controller.js\";\nimport {\n\tgetEditorTheme,\n\tinitTheme,\n\tonThemeChange,\n\tsetRegisteredThemes,\n\tstopThemeWatcher,\n} from \"@gsd/pi-coding-agent/theme/theme.js\";\nimport * as chatRender from \"./interactive-chat-render.js\";\nimport * as commandHandlers from \"./interactive-command-handlers.js\";\nimport * as extensionSystem from \"./interactive-extension-system.js\";\nimport * as inputRouter from \"./interactive-input-router.js\";\nimport * as keyHandlers from \"./interactive-key-handlers.js\";\nimport * as modeInit from \"./interactive-mode-init.js\";\nimport type { CompactionQueuedMessage } from \"./interactive-notify-render.js\";\nimport * as resourceDisplay from \"./interactive-resource-display.js\";\nimport * as selectors from \"./interactive-selectors.js\";\nimport { clearMarkdownThemeCache, getMarkdownThemeWithSettings as getMarkdownThemeWithSettingsModule } from \"./interactive-theme-cache.js\";\nimport * as uiMessaging from \"./interactive-ui-messaging.js\";\nimport { DEFAULT_TOOL_OUTPUT_EXPANDED } from \"./interactive-mode-class-constants.js\";\n\nexport type {\n\tAssistantReplaySegment,\n\tExtensionNotifyType,\n\tExtensionNotifyRenderResult,\n\tCompactionQueuedMessage,\n} from \"./interactive-notify-render.js\";\nexport {\n\tbuildAssistantReplaySegments,\n\tgetToolExpansionStartupHint,\n\tshouldRenderExtensionNotifyInChat,\n\trenderExtensionNotifyInChat,\n\trenderBlockingErrorBanner,\n} from \"./interactive-notify-render.js\";\n\nexport interface InteractiveModeOptions {\n\t/** Providers that were migrated to auth.json (shows warning) */\n\tmigratedProviders?: string[];\n\t/** Warning message if session model couldn't be restored */\n\tmodelFallbackMessage?: string;\n\t/** Initial message to send on startup (can include @file content) */\n\tinitialMessage?: string;\n\t/** Images to attach to the initial message */\n\tinitialImages?: ImageContent[];\n\t/** Additional messages to send after the initial message */\n\tinitialMessages?: string[];\n\t/** Force verbose startup (overrides quietStartup setting) */\n\tverbose?: boolean;\n\t/** Override the terminal implementation used by the TUI. */\n\tterminal?: TuiTerminal;\n\t/** When false, reuse the session's existing extension bindings instead of rebinding them for TUI mode. */\n\tbindExtensions?: boolean;\n\t/** Submit editor prompts directly to AgentSession instead of using the interactive prompt loop. */\n\tsubmitPromptsDirectly?: boolean;\n\t/** Control what happens when the user requests shutdown from the TUI. */\n\tshutdownBehavior?: \"exit_process\" | \"stop_ui\" | \"ignore\";\n}\n\nexport class InteractiveMode {\n\tprivate session: AgentSession;\n\tprivate ui: TUI;\n\tprivate chatContainer: Container;\n\tprivate pendingMessagesContainer: Container;\n\tprivate gsdStatusWidget: GsdStatusWidget;\n\tprivate gsdStatusExpanded: boolean | undefined = undefined;\n\tprivate gsdProgressState: import(\"@gsd/pi-coding-agent/core/extensions/extension-upstream-types.js\").GsdProgressState | undefined;\n\tprivate gsdProgressDispose?: () => void;\n\tprivate statusContainer: Container;\n\tprivate pinnedMessageContainer: Container;\n\tprivate blockingErrorContainer: Container;\n\tprivate defaultEditor: CustomEditor;\n\tprivate editor: EditorComponent;\n\tprivate autocompleteProvider: CombinedAutocompleteProvider | undefined;\n\tprivate editorContainer: Container;\n\tprivate footer: FooterComponent;\n\tprivate footerDataProvider: FooterDataProvider;\n\tprivate keybindings: KeybindingsManager;\n\tprivate version: string;\n\tprivate isInitialized = false;\n\tprivate onInputCallback?: (text: string) => void;\n\tprivate loadingAnimation: Loader | undefined = undefined;\n\tprivate activityLoader: Loader | undefined = undefined;\n\tprivate pendingWorkingMessage: string | null | undefined = undefined;\n\tprivate readonly defaultWorkingMessage = \"Working...\";\n\tprivate lastBlockingError: string | undefined = undefined;\n\n\tprivate lastSigintTime = 0;\n\tprivate lastEscapeTime = 0;\n\tprivate changelogMarkdown: string | undefined = undefined;\n\tprivate startupHeaderDismissed = false;\n\n\tprivate lastStatusSpacer: Spacer | undefined = undefined;\n\tprivate lastStatusText: Text | undefined = undefined;\n\n\tprivate streamingComponent: AssistantMessageComponent | undefined = undefined;\n\tprivate streamingMessage: import(\"@gsd/pi-ai\").AssistantMessage | undefined = undefined;\n\n\tprivate pendingTools = new Map<string, ToolExecutionComponent>();\n\tprivate toolOutputExpanded = DEFAULT_TOOL_OUTPUT_EXPANDED;\n\tprivate pendingImages: ImageContent[] = [];\n\tprivate hideThinkingBlock = false;\n\tprivate skillCommands = new Map<string, string>();\n\tprivate unsubscribe?: () => void;\n\tprivate _branchChangeUnsub?: () => void;\n\tprivate _themeChangeUnsub?: () => void;\n\tprivate markdownThemeCache?: MarkdownTheme;\n\tprivate markdownThemeCacheIndent?: string;\n\tprivate isBashMode = false;\n\tprivate contextualTips = new ContextualTips();\n\tprivate bashComponent: BashExecutionComponent | undefined = undefined;\n\tprivate pendingBashComponents: BashExecutionComponent[] = [];\n\tprivate autoCompactionLoader: Loader | undefined = undefined;\n\tprivate autoCompactionEscapeHandler?: () => void;\n\tprivate retryLoader: Loader | undefined = undefined;\n\tprivate retryEscapeHandler?: () => void;\n\tprivate compactionQueuedMessages: CompactionQueuedMessage[] = [];\n\tprivate shutdownRequested = false;\n\tprivate extensionSelector: ExtensionSelectorComponent | undefined = undefined;\n\tprivate extensionInput: ExtensionInputComponent | undefined = undefined;\n\tprivate extensionEditor: ExtensionEditorComponent | undefined = undefined;\n\tprivate extensionTerminalInputUnsubscribers = new Set<() => void>();\n\tprivate stdinErrorHandler: ((err: Error) => void) | undefined = undefined;\n\tprivate extensionWidgetsAbove = new Map<string, import(\"@gsd/pi-tui\").Component & { dispose?(): void }>();\n\tprivate extensionWidgetsBelow = new Map<string, import(\"@gsd/pi-tui\").Component & { dispose?(): void }>();\n\tprivate widgetContainerAbove!: Container;\n\tprivate widgetContainerBelow!: Container;\n\tprivate customFooter: (import(\"@gsd/pi-tui\").Component & { dispose?(): void }) | undefined = undefined;\n\tprivate headerContainer: Container;\n\tprivate builtInHeader: import(\"@gsd/pi-tui\").Component | undefined = undefined;\n\tprivate customHeader: (import(\"@gsd/pi-tui\").Component & { dispose?(): void }) | undefined = undefined;\n\n\tprivate get agent() {\n\t\treturn this.session.agent;\n\t}\n\tprivate get sessionManager() {\n\t\treturn this.session.sessionManager;\n\t}\n\tprivate get settingsManager() {\n\t\treturn this.session.settingsManager;\n\t}\n\n\tconstructor(\n\t\tsession: AgentSession,\n\t\tprivate options: InteractiveModeOptions = {},\n\t) {\n\t\tthis.session = session;\n\t\tthis.version = VERSION;\n\t\tthis.ui = new TUI(options.terminal ?? new ProcessTerminal(), this.settingsManager.getShowHardwareCursor());\n\t\tthis.ui.setClearOnShrink(this.settingsManager.getClearOnShrink());\n\t\tsetRailAnimationEnabled(this.settingsManager.getToolRailAnimation());\n\t\tthis.headerContainer = new Container();\n\t\tthis.chatContainer = new Container();\n\t\tthis.pendingMessagesContainer = new Container();\n\t\tthis.gsdStatusWidget = new GsdStatusWidget(() => ({\n\t\t\toverride: this.settingsManager.getAdaptiveMode(),\n\t\t\tactiveToolCount: this.pendingTools.size,\n\t\t\tgsdPhase: this.gsdProgressState?.phase ?? this.pendingWorkingMessage ?? undefined,\n\t\t\tlastError: this.lastBlockingError,\n\t\t\tsessionName: this.sessionManager.getSessionName(),\n\t\t\tcwd: this.gsdProgressState?.path ?? process.cwd(),\n\t\t\tmanuallyExpanded: this.gsdStatusExpanded,\n\t\t\tgsdProgress: this.gsdProgressState,\n\t\t\tisStreaming: this.session.isStreaming,\n\t\t}));\n\t\tthis.statusContainer = new Container();\n\t\tthis.pinnedMessageContainer = new Container();\n\t\tthis.blockingErrorContainer = new Container();\n\t\tthis.widgetContainerAbove = new Container();\n\t\tthis.widgetContainerBelow = new Container();\n\t\tthis.keybindings = KeybindingsManager.create();\n\t\tconst editorPaddingX = this.settingsManager.getEditorPaddingX();\n\t\tconst autocompleteMaxVisible = this.settingsManager.getAutocompleteMaxVisible();\n\t\tthis.defaultEditor = new CustomEditor(this.ui, getEditorTheme(), this.keybindings, {\n\t\t\tpaddingX: editorPaddingX,\n\t\t\tautocompleteMaxVisible,\n\t\t});\n\t\tthis.editor = this.defaultEditor;\n\t\tthis.editorContainer = new Container();\n\t\tthis.editorContainer.addChild(this.editor as import(\"@gsd/pi-tui\").Component);\n\t\tthis.footerDataProvider = new FooterDataProvider(process.cwd());\n\t\tthis.footer = new FooterComponent(session, this.footerDataProvider, () => ({\n\t\t\toverride: this.settingsManager.getAdaptiveMode(),\n\t\t\tactiveToolCount: this.pendingTools.size,\n\t\t\tgsdPhase: this.gsdProgressState?.phase ?? this.pendingWorkingMessage ?? undefined,\n\t\t\tlastError: this.lastBlockingError,\n\t\t\tcwd: this.gsdProgressState?.path ?? process.cwd(),\n\t\t\tmanuallyExpanded: this.gsdStatusExpanded,\n\t\t\tgsdProgress: this.gsdProgressState,\n\t\t}));\n\t\tthis.footer.setAutoCompactEnabled(session.autoCompactionEnabled);\n\t\tthis.toolOutputExpanded = this.settingsManager.getToolsExpanded();\n\t\tthis.hideThinkingBlock = this.settingsManager.getHideThinkingBlock();\n\t\tsetRegisteredThemes(this.session.resourceLoader.getThemes().themes);\n\t\tinitTheme(this.settingsManager.getTheme(), true);\n\t}\n\n\tprivate setupAutocomplete(): void {\n\t\tinputRouter.setupAutocomplete(this);\n\t}\n\n\tprivate installStdinErrorRecovery(): void {\n\t\tmodeInit.installStdinErrorRecovery(this);\n\t}\n\n\tasync init(): Promise<void> {\n\t\tif (this.isInitialized) return;\n\n\t\tthis.changelogMarkdown = modeInit.getChangelogForDisplay(this);\n\t\tawait ensureTool(\"rg\");\n\n\t\tthis.ui.addChild(this.headerContainer);\n\t\tmodeInit.mountStartupHeader(this);\n\n\t\tthis.ui.addChild(this.chatContainer);\n\t\tthis.ui.addChild(this.pendingMessagesContainer);\n\t\tthis.ui.addChild(this.statusContainer);\n\t\tthis.ui.addChild(this.pinnedMessageContainer);\n\t\tthis.ui.addChild(this.blockingErrorContainer);\n\t\tthis.renderWidgets();\n\t\tthis.ui.addChild(this.widgetContainerAbove);\n\t\tthis.ui.addChild(this.editorContainer);\n\t\tthis.ui.addChild(this.widgetContainerBelow);\n\t\tthis.ui.addChild(this.footer);\n\t\tthis.ui.setFocus(this.editor);\n\n\t\tthis.setupKeyHandlers();\n\t\tthis.setupEditorSubmitHandler();\n\t\tawait this.initExtensions();\n\t\tthis.renderInitialMessages();\n\n\t\tthis.ui.start();\n\t\tthis.ui.onOutputClosed = () => {\n\t\t\tif (this.isShuttingDown) return;\n\t\t\tvoid keyHandlers.shutdown(this);\n\t\t};\n\t\tthis.installStdinErrorRecovery();\n\t\tthis.isInitialized = true;\n\n\t\tmodeInit.updateTerminalTitle(this);\n\t\tthis.subscribeToAgent();\n\n\t\tthis._themeChangeUnsub = onThemeChange(() => {\n\t\t\tthis.clearMarkdownThemeCache();\n\t\t\tthis.ui.invalidate();\n\t\t\tthis.updateEditorBorderColor();\n\t\t\tthis.ui.requestRender();\n\t\t});\n\n\t\tthis._branchChangeUnsub = this.footerDataProvider.onBranchChange(() => {\n\t\t\tthis.ui.requestRender();\n\t\t});\n\n\t\tawait this.updateAvailableProviderCount();\n\t}\n\n\tasync run(): Promise<void> {\n\t\tawait this.init();\n\n\t\tmodeInit.checkForNewVersion(this).then((newVersion) => {\n\t\t\tif (newVersion) {\n\t\t\t\tmodeInit.showNewVersionNotification(this, newVersion);\n\t\t\t}\n\t\t});\n\n\t\tmodeInit.checkTmuxKeyboardSetup().then((warning) => {\n\t\t\tif (warning) {\n\t\t\t\tthis.showWarning(warning);\n\t\t\t}\n\t\t});\n\n\t\tconst { migratedProviders, modelFallbackMessage, initialMessage, initialImages, initialMessages } = this.options;\n\n\t\tif (migratedProviders && migratedProviders.length > 0) {\n\t\t\tthis.showWarning(`Migrated credentials to auth.json: ${migratedProviders.join(\", \")}`);\n\t\t}\n\n\t\tconst modelsJsonError = this.session.modelRegistry.getError();\n\t\tif (modelsJsonError) {\n\t\t\tthis.showError(`models.json error: ${modelsJsonError}`);\n\t\t}\n\n\t\tif (modelFallbackMessage) {\n\t\t\tthis.showWarning(modelFallbackMessage);\n\t\t}\n\n\t\tif (initialMessage) {\n\t\t\ttry {\n\t\t\t\tawait this.session.prompt(initialMessage, { images: initialImages });\n\t\t\t} catch (error: unknown) {\n\t\t\t\tconst errorMessage = error instanceof Error ? error.message : \"Unknown error occurred\";\n\t\t\t\tthis.showError(errorMessage);\n\t\t\t}\n\t\t}\n\n\t\tif (initialMessages) {\n\t\t\tfor (const message of initialMessages) {\n\t\t\t\ttry {\n\t\t\t\t\tawait this.session.prompt(message);\n\t\t\t\t} catch (error: unknown) {\n\t\t\t\t\tconst errorMessage = error instanceof Error ? error.message : \"Unknown error occurred\";\n\t\t\t\t\tthis.showError(errorMessage);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\twhile (true) {\n\t\t\tconst userInput = await this.getUserInput();\n\t\t\tconst images = this.pendingImages.length > 0 ? [...this.pendingImages] : undefined;\n\t\t\tthis.pendingImages.length = 0;\n\t\t\ttry {\n\t\t\t\tawait this.session.prompt(userInput, { images });\n\t\t\t} catch (error: unknown) {\n\t\t\t\tconst errorMessage = error instanceof Error ? error.message : \"Unknown error occurred\";\n\t\t\t\tthis.showError(errorMessage);\n\t\t\t}\n\t\t}\n\t}\n\n\tgetMarkdownThemeWithSettings(): MarkdownTheme {\n\t\treturn getMarkdownThemeWithSettingsModule(this);\n\t}\n\n\tprivate clearMarkdownThemeCache(): void {\n\t\tclearMarkdownThemeCache(this);\n\t}\n\n\tprivate setupEditorSubmitHandler(): void {\n\t\tsetupEditorSubmitHandlerController(this as any);\n\t}\n\n\tprivate subscribeToAgent(): void {\n\t\tlet eventQueue: Promise<void> = Promise.resolve();\n\t\tthis.unsubscribe = this.session.subscribe((event) => {\n\t\t\teventQueue = eventQueue.then(() => this.handleEvent(event)).catch(() => {});\n\t\t});\n\t}\n\n\tprivate async handleEvent(event: AgentSessionEvent): Promise<void> {\n\t\tawait handleAgentEvent(this as any, event);\n\t}\n\n\tclearEditor(): void {\n\t\tuiMessaging.clearEditor(this);\n\t}\n\n\tshowError(errorMessage: string): void {\n\t\tuiMessaging.showError(this, errorMessage);\n\t}\n\n\tclearBlockingError(): void {\n\t\tuiMessaging.clearBlockingError(this);\n\t}\n\n\tshowWarning(warningMessage: string): void {\n\t\tuiMessaging.showWarning(this, warningMessage);\n\t}\n\n\tshowSuccess(successMessage: string): void {\n\t\tuiMessaging.showSuccess(this, successMessage);\n\t}\n\n\tshowTip(message: string): void {\n\t\tuiMessaging.showTip(this, message);\n\t}\n\n\tgetContextPercent(): number | undefined {\n\t\treturn this.session.getContextUsage()?.percent ?? undefined;\n\t}\n\n\trenderInitialMessages(): void {\n\t\tchatRender.renderInitialMessages(this);\n\t}\n\n\tasync getUserInput(): Promise<string> {\n\t\treturn chatRender.getUserInput(this);\n\t}\n\n\tgetExtensionUIContext() {\n\t\treturn extensionSystem.createExtensionUIContext(this);\n\t}\n\n\trequestRender(force = false): void {\n\t\tif (!this.isInitialized) return;\n\t\tthis.ui.requestRender(force);\n\t}\n\n\tstop(): void {\n\t\tif (this.loadingAnimation) {\n\t\t\tthis.loadingAnimation.stop();\n\t\t\tthis.loadingAnimation = undefined;\n\t\t}\n\t\tthis.clearExtensionTerminalInputListeners();\n\t\tthis._branchChangeUnsub?.();\n\t\tthis._branchChangeUnsub = undefined;\n\t\tthis._themeChangeUnsub?.();\n\t\tthis._themeChangeUnsub = undefined;\n\t\tstopThemeWatcher();\n\n\t\tif (this.onInputCallback) {\n\t\t\tthis.onInputCallback(\"\");\n\t\t\tthis.onInputCallback = undefined;\n\t\t}\n\n\t\tthis.clearExtensionWidgets();\n\t\tif (this.customFooter?.dispose) {\n\t\t\tthis.customFooter.dispose();\n\t\t}\n\t\tthis.customFooter = undefined;\n\t\tif (this.customHeader?.dispose) {\n\t\t\tthis.customHeader.dispose();\n\t\t}\n\t\tthis.customHeader = undefined;\n\t\tthis.autocompleteProvider = undefined;\n\n\t\tthis.footer.dispose();\n\t\tthis.footerDataProvider.dispose();\n\t\tif (this.unsubscribe) {\n\t\t\tthis.unsubscribe();\n\t\t}\n\t\tif (this.stdinErrorHandler) {\n\t\t\tprocess.stdin.removeListener(\"error\", this.stdinErrorHandler);\n\t\t\tthis.stdinErrorHandler = undefined;\n\t\t}\n\t\tif (this.isInitialized) {\n\t\t\tthis.ui.stop();\n\t\t\tthis.isInitialized = false;\n\t\t}\n\t}\n\n\t// Delegates (Phase E2 extracted modules)\n\tprivate formatDisplayPath(p: string): string { return resourceDisplay.formatDisplayPath(this, p); }\n\tprivate getShortPath(fullPath: string, source: string): string { return resourceDisplay.getShortPath(this, fullPath, source); }\n\tprivate showLoadedResources(options?: Parameters<typeof resourceDisplay.showLoadedResources>[1]): void { resourceDisplay.showLoadedResources(this, options); }\n\n\tprivate async initExtensions(): Promise<void> { return extensionSystem.initExtensions(this); }\n\tprivate getRegisteredToolDefinition(toolName: string) { return extensionSystem.getRegisteredToolDefinition(this, toolName); }\n\tprivate formatWebSearchResult(content: unknown): string { return extensionSystem.formatWebSearchResult(this, content); }\n\tprivate setupExtensionShortcuts(extensionRunner: ExtensionRunner): void { extensionSystem.setupExtensionShortcuts(this, extensionRunner); }\n\tprivate setExtensionStatus(key: string, text: string | undefined): void { extensionSystem.setExtensionStatus(this, key, text); }\n\tprivate setGsdProgress(state: Parameters<typeof extensionSystem.setGsdProgress>[1], dispose?: () => void): void { extensionSystem.setGsdProgress(this, state, dispose); }\n\tprivate setExtensionWidget(key: string, content: Parameters<typeof extensionSystem.setExtensionWidget>[2], options?: Parameters<typeof extensionSystem.setExtensionWidget>[3]): void { extensionSystem.setExtensionWidget(this, key, content, options); }\n\tprivate clearExtensionWidgets(): void { extensionSystem.clearExtensionWidgets(this); }\n\tprivate resetExtensionUI(): void { extensionSystem.resetExtensionUI(this); }\n\tprivate renderWidgets(): void { extensionSystem.renderWidgets(this); }\n\tprivate setExtensionFooter(factory: Parameters<typeof extensionSystem.setExtensionFooter>[1]): void { extensionSystem.setExtensionFooter(this, factory); }\n\tprivate setExtensionHeader(factory: Parameters<typeof extensionSystem.setExtensionHeader>[1]): void { extensionSystem.setExtensionHeader(this, factory); }\n\tprivate addExtensionTerminalInputListener(handler: Parameters<typeof extensionSystem.addExtensionTerminalInputListener>[1]): () => void { return extensionSystem.addExtensionTerminalInputListener(this, handler); }\n\tprivate clearExtensionTerminalInputListeners(): void { extensionSystem.clearExtensionTerminalInputListeners(this); }\n\tprivate createExtensionUIContext() { return extensionSystem.createExtensionUIContext(this); }\n\tprivate showExtensionSelector(title: string, options: string[], opts?: import(\"@gsd/pi-coding-agent/core/extensions/index.js\").ExtensionUIDialogOptions): Promise<string | undefined> { return extensionSystem.showExtensionSelector(this, title, options, opts); }\n\tprivate hideExtensionSelector(): void { extensionSystem.hideExtensionSelector(this); }\n\tprivate showExtensionConfirm(title: string, message: string, opts?: import(\"@gsd/pi-coding-agent/core/extensions/index.js\").ExtensionUIDialogOptions): Promise<boolean> { return extensionSystem.showExtensionConfirm(this, title, message, opts); }\n\tprivate showExtensionInput(title: string, placeholder?: string, opts?: import(\"@gsd/pi-coding-agent/core/extensions/index.js\").ExtensionUIDialogOptions): Promise<string | undefined> { return extensionSystem.showExtensionInput(this, title, placeholder, opts); }\n\tprivate hideExtensionInput(): void { extensionSystem.hideExtensionInput(this); }\n\tprivate showExtensionEditor(title: string, prefill?: string): Promise<string | undefined> { return extensionSystem.showExtensionEditor(this, title, prefill); }\n\tprivate hideExtensionEditor(): void { extensionSystem.hideExtensionEditor(this); }\n\tprivate setCustomEditorComponent(factory: Parameters<typeof extensionSystem.setCustomEditorComponent>[1]): void { extensionSystem.setCustomEditorComponent(this, factory); }\n\tprivate showExtensionNotify(message: string, type?: import(\"./interactive-notify-render.js\").ExtensionNotifyType): void { extensionSystem.showExtensionNotify(this, message, type); }\n\tprivate showExtensionCustom<T>(factory: Parameters<typeof extensionSystem.showExtensionCustom<T>>[1], options?: Parameters<typeof extensionSystem.showExtensionCustom<T>>[2]): Promise<T> { return extensionSystem.showExtensionCustom(this, factory, options); }\n\tprivate showExtensionError(extensionPath: string, error: string, stack?: string): void { extensionSystem.showExtensionError(this, extensionPath, error, stack); }\n\n\tprivate setupKeyHandlers(): void { keyHandlers.setupKeyHandlers(this); }\n\tprivate handleClipboardImagePaste(): Promise<void> { return keyHandlers.handleClipboardImagePaste(this); }\n\tprivate handlePastedImagePath(filePath: string): void { keyHandlers.handlePastedImagePath(this, filePath); }\n\tprivate getSlashCommandContext() { return inputRouter.getSlashCommandContext(this); }\n\tprivate getAllQueuedMessages() { return inputRouter.getAllQueuedMessages(this); }\n\tprivate clearAllQueues() { return inputRouter.clearAllQueues(this); }\n\tprivate updatePendingMessagesDisplay(): void { inputRouter.updatePendingMessagesDisplay(this); }\n\tprivate restoreQueuedMessagesToEditor(options?: Parameters<typeof inputRouter.restoreQueuedMessagesToEditor>[1]): number { return inputRouter.restoreQueuedMessagesToEditor(this, options); }\n\tprivate queueCompactionMessage(text: string, mode: \"steer\" | \"followUp\"): void { inputRouter.queueCompactionMessage(this, text, mode); }\n\tprivate isExtensionCommand(text: string): boolean { return inputRouter.isExtensionCommand(this, text); }\n\tprivate isKnownSlashCommand(text: string): boolean { return inputRouter.isKnownSlashCommand(this, text); }\n\tprivate async flushCompactionQueue(options?: Parameters<typeof inputRouter.flushCompactionQueue>[1]): Promise<void> { return inputRouter.flushCompactionQueue(this, options); }\n\tprivate flushPendingBashComponents(): void { inputRouter.flushPendingBashComponents(this); }\n\tprivate updateTerminalTitle(): void { modeInit.updateTerminalTitle(this); }\n\n\tprivate getUserMessageText(message: import(\"@gsd/pi-ai\").Message): string { return chatRender.getUserMessageText(this, message); }\n\tprivate showStatus(message: string, options?: { append?: boolean }): void { chatRender.showStatus(this, message, options); }\n\tprivate addMessageToChat(message: import(\"@gsd/pi-agent-core\").AgentMessage, options?: { populateHistory?: boolean }): void { chatRender.addMessageToChat(this, message, options); }\n\tprivate trimChatHistory(): void { chatRender.trimChatHistory(this); }\n\tprivate renderSessionContext(sessionContext: import(\"@gsd/pi-coding-agent/core/session-manager.js\").SessionContext, options?: Parameters<typeof chatRender.renderSessionContext>[2]): void { chatRender.renderSessionContext(this, sessionContext, options); }\n\tprivate rebuildChatFromMessages(): void { chatRender.rebuildChatFromMessages(this); }\n\tprivate populatePinnedFromMessages(messages: import(\"@gsd/pi-agent-core\").AgentMessage[]): void { chatRender.populatePinnedFromMessages(this, messages); }\n\n\tprivate handleCtrlC(): void { keyHandlers.handleCtrlC(this); }\n\tprivate handleCtrlD(): void { keyHandlers.handleCtrlD(this); }\n\tprivate isShuttingDown = false;\n\tprivate async shutdown(): Promise<void> { return keyHandlers.shutdown(this); }\n\tprivate async checkShutdownRequested(): Promise<void> { return keyHandlers.checkShutdownRequested(this); }\n\tprivate handleCtrlZ(): void { keyHandlers.handleCtrlZ(this); }\n\tprivate async handleFollowUp(): Promise<void> { return keyHandlers.handleFollowUp(this); }\n\tprivate handleDequeue(): void { keyHandlers.handleDequeue(this); }\n\tprivate updateEditorBorderColor(): void { keyHandlers.updateEditorBorderColor(this); }\n\tprivate cycleThinkingLevel(): void { keyHandlers.cycleThinkingLevel(this); }\n\tprivate async cycleModel(direction: \"forward\" | \"backward\"): Promise<void> { return keyHandlers.cycleModel(this, direction); }\n\tprivate toggleToolOutputExpansion(): void { keyHandlers.toggleToolOutputExpansion(this); }\n\tprivate setToolsExpanded(expanded: boolean): void { keyHandlers.setToolsExpanded(this, expanded); }\n\ttoggleGsdStatusWidget(): void {\n\t\t// Compute the effective expansion so the toggle always visually flips:\n\t\t// undefined = use widgetMode default, otherwise use the explicit value.\n\t\tconst progress = this.gsdProgressState;\n\t\tconst defaultExpanded = progress !== undefined && progress.widgetMode !== \"min\";\n\t\tconst currentlyExpanded = this.gsdStatusExpanded !== undefined ? this.gsdStatusExpanded : defaultExpanded;\n\t\tthis.gsdStatusExpanded = !currentlyExpanded;\n\t\tthis.gsdStatusWidget.invalidate();\n\t\tthis.footer.invalidate();\n\t\tthis.ui.requestRender();\n\t}\n\tprivate setToolRailAnimation(enabled: boolean): void {\n\t\tthis.settingsManager.setToolRailAnimation(enabled);\n\t\tsetRailAnimationEnabled(enabled);\n\t\tfor (const child of this.chatContainer.children) {\n\t\t\tif (child instanceof ToolExecutionComponent) child.refreshRailAnimation();\n\t\t}\n\t\tthis.ui.requestRender();\n\t}\n\tprivate toggleThinkingBlockVisibility(): void { keyHandlers.toggleThinkingBlockVisibility(this); }\n\tprivate openExternalEditor(): void { keyHandlers.openExternalEditor(this); }\n\n\tprivate showSelector(create: Parameters<typeof selectors.showSelector>[1]): void { selectors.showSelector(this, create); }\n\tprivate showSettingsSelector(): void { selectors.showSettingsSelector(this); }\n\tprivate async handleModelCommand(searchTerm?: string): Promise<void> { return selectors.handleModelCommand(this, searchTerm); }\n\tprivate async findExactModelMatch(searchTerm: string) { return selectors.findExactModelMatch(this, searchTerm); }\n\tprivate async getModelCandidates() { return selectors.getModelCandidates(this); }\n\tprivate async updateAvailableProviderCount(): Promise<void> { return selectors.updateAvailableProviderCount(this); }\n\tprivate showModelSelector(initialSearchInput?: string): void { selectors.showModelSelector(this, initialSearchInput); }\n\tprivate async showModelsSelector(): Promise<void> { return selectors.showModelsSelector(this); }\n\tprivate showUserMessageSelector(): void { selectors.showUserMessageSelector(this); }\n\tprivate showTreeSelector(initialSelectedId?: string): void { selectors.showTreeSelector(this, initialSelectedId); }\n\tprivate showSessionSelector(): void { selectors.showSessionSelector(this); }\n\tprivate async handleResumeSession(sessionPath: string): Promise<void> { return selectors.handleResumeSession(this, sessionPath); }\n\tprivate showProviderManager(): void { selectors.showProviderManager(this); }\n\tprivate async showOAuthSelector(mode: \"login\" | \"logout\"): Promise<void> { return selectors.showOAuthSelector(this, mode); }\n\tprivate async showLoginDialog(providerId: string): Promise<void> { return selectors.showLoginDialog(this, providerId); }\n\n\tprivate async handleReloadCommand(): Promise<void> { return commandHandlers.handleReloadCommand(this); }\n\tprivate async handleClearCommand(): Promise<void> { return commandHandlers.handleClearCommand(this); }\n\tprivate handleDebugCommand(): void { commandHandlers.handleDebugCommand(this); }\n\tprivate handleDaxnuts(): void { commandHandlers.handleDaxnuts(this); }\n\tprivate checkDaxnutsEasterEgg(model: { provider: string; id: string }): void { commandHandlers.checkDaxnutsEasterEgg(this, model); }\n\tprivate async handleBashCommand(command: string, excludeFromContext?: boolean, displayCommand?: string, loginShell?: boolean): Promise<void> { return commandHandlers.handleBashCommand(this, command, excludeFromContext, displayCommand, loginShell); }\n\tprivate async executeCompaction(customInstructions?: string, isAuto?: boolean) { return commandHandlers.executeCompaction(this, customInstructions, isAuto); }\n}\n"]}
|
package/packages/gsd-agent-modes/dist/modes/interactive/interactive-selectors-settings.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactive-selectors-settings.d.ts","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-selectors-settings.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,KAAK,EAAmB,MAAM,YAAY,CAAC;AAuBzD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AA8BvF,wBAAgB,YAAY,CAAC,IAAI,EAAE,2BAA2B,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,IAAI,KAAK;IAAE,SAAS,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,GAAG,IAAI,CAW7I;AAEF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,2BAA2B,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"interactive-selectors-settings.d.ts","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-selectors-settings.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,KAAK,EAAmB,MAAM,YAAY,CAAC;AAuBzD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AA8BvF,wBAAgB,YAAY,CAAC,IAAI,EAAE,2BAA2B,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,IAAI,KAAK;IAAE,SAAS,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,GAAG,IAAI,CAW7I;AAEF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,2BAA2B,GAAG,IAAI,CA6J3E;AAEF,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,2BAA2B,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE7G;AAEF,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,2BAA2B,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAE/H;AAEF,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,2BAA2B,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAEhG;AAED,iFAAiF;AAClF,wBAAsB,4BAA4B,CAAC,IAAI,EAAE,2BAA2B,GAAG,OAAO,CAAC,IAAI,CAAC,CAElG;AAEF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,2BAA2B,EAAE,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CA6BrG;AAEF,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,2BAA2B,GAAG,OAAO,CAAC,IAAI,CAAC,CAoHxF"}
|
|
@@ -38,6 +38,7 @@ export function showSettingsSelector(host) {
|
|
|
38
38
|
availableThemes: getAvailableThemes(),
|
|
39
39
|
hideThinkingBlock: host.hideThinkingBlock,
|
|
40
40
|
toolsExpanded: host.toolOutputExpanded,
|
|
41
|
+
toolRailAnimation: host.settingsManager.getToolRailAnimation(),
|
|
41
42
|
collapseChangelog: host.settingsManager.getCollapseChangelog(),
|
|
42
43
|
doubleEscapeAction: host.settingsManager.getDoubleEscapeAction(),
|
|
43
44
|
treeFilterMode: host.settingsManager.getTreeFilterMode(),
|
|
@@ -119,6 +120,9 @@ export function showSettingsSelector(host) {
|
|
|
119
120
|
host.settingsManager.setToolsExpanded(expanded);
|
|
120
121
|
host.setToolsExpanded(expanded);
|
|
121
122
|
},
|
|
123
|
+
onToolRailAnimationChange: (enabled) => {
|
|
124
|
+
host.setToolRailAnimation(enabled);
|
|
125
|
+
},
|
|
122
126
|
onCollapseChangelogChange: (collapsed) => {
|
|
123
127
|
host.settingsManager.setCollapseChangelog(collapsed);
|
|
124
128
|
},
|
package/packages/gsd-agent-modes/dist/modes/interactive/interactive-selectors-settings.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactive-selectors-settings.js","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-selectors-settings.ts"],"names":[],"mappings":"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","sourcesContent":["// Project/App: gsd-pi\n// File Purpose: Extracted from interactive-mode.ts (Phase E2 seam remediation).\n// @ts-nocheck\n\nimport { Loader, Spacer } from \"@gsd/pi-tui\";\nimport type { Component } from \"@gsd/pi-tui\";\nimport type { Model, OAuthProviderId } from \"@gsd/pi-ai\";\nimport { getAuthPath } from \"@gsd/pi-coding-agent/config.js\";\nimport { resolveModelScope } from \"@gsd/pi-coding-agent/core/model-resolver.js\";\nimport { SessionManager } from \"@gsd/pi-coding-agent/core/session-manager.js\";\nimport { getAvailableThemes, setRegisteredThemes, setTheme, theme } from \"@gsd/pi-coding-agent/theme/theme.js\";\nimport { appKey } from \"./components/keybinding-hints.js\";\nimport { LoginDialogComponent } from \"./components/login-dialog.js\";\nimport { ModelSelectorComponent } from \"./components/model-selector.js\";\nimport { OAuthSelectorComponent } from \"./components/oauth-selector.js\";\nimport { ProviderManagerComponent } from \"./components/provider-manager.js\";\nimport { ScopedModelsSelectorComponent } from \"./components/scoped-models-selector.js\";\nimport { SessionSelectorComponent } from \"./components/session-selector.js\";\nimport { SettingsSelectorComponent } from \"./components/settings-selector.js\";\nimport { ToolExecutionComponent } from \"./components/tool-execution.js\";\nimport { TreeSelectorComponent } from \"./components/tree-selector.js\";\nimport { UserMessageSelectorComponent } from \"./components/user-message-selector.js\";\nimport { AssistantMessageComponent } from \"./components/assistant-message.js\";\nimport {\n findExactModelMatch as findExactModelMatchController,\n getModelCandidates as getModelCandidatesController,\n handleModelCommand as handleModelCommandController,\n updateAvailableProviderCount as updateAvailableProviderCountController,\n} from \"./controllers/model-controller.js\";\nimport type { InteractiveModeDelegateHost } from \"./interactive-mode-delegate-host.js\";\n\n\nimport { Loader, Spacer } from \"@gsd/pi-tui\";\nimport type { Component } from \"@gsd/pi-tui\";\nimport type { Model, OAuthProviderId } from \"@gsd/pi-ai\";\nimport { getAuthPath } from \"@gsd/pi-coding-agent/config.js\";\nimport { resolveModelScope } from \"@gsd/pi-coding-agent/core/model-resolver.js\";\nimport { SessionManager } from \"@gsd/pi-coding-agent/core/session-manager.js\";\nimport { getAvailableThemes, setRegisteredThemes, setTheme, theme } from \"@gsd/pi-coding-agent/theme/theme.js\";\nimport { appKey } from \"./components/keybinding-hints.js\";\nimport { LoginDialogComponent } from \"./components/login-dialog.js\";\nimport { ModelSelectorComponent } from \"./components/model-selector.js\";\nimport { OAuthSelectorComponent } from \"./components/oauth-selector.js\";\nimport { ProviderManagerComponent } from \"./components/provider-manager.js\";\nimport { ScopedModelsSelectorComponent } from \"./components/scoped-models-selector.js\";\nimport { SessionSelectorComponent } from \"./components/session-selector.js\";\nimport { SettingsSelectorComponent } from \"./components/settings-selector.js\";\nimport { ToolExecutionComponent } from \"./components/tool-execution.js\";\nimport { TreeSelectorComponent } from \"./components/tree-selector.js\";\nimport { UserMessageSelectorComponent } from \"./components/user-message-selector.js\";\nimport { AssistantMessageComponent } from \"./components/assistant-message.js\";\nimport {\n\tfindExactModelMatch as findExactModelMatchController,\n\tgetModelCandidates as getModelCandidatesController,\n\thandleModelCommand as handleModelCommandController,\n\tupdateAvailableProviderCount as updateAvailableProviderCountController,\n} from \"./controllers/model-controller.js\";\nimport type { InteractiveModeDelegateHost } from \"./interactive-mode-delegate-host.js\";\n\nexport function showSelector(host: InteractiveModeDelegateHost, create: (done: () => void) => { component: Component; focus: Component }): void {\n\t\tconst done = () => {\n\t\t\thost.editorContainer.clear();\n\t\t\thost.editorContainer.addChild(host.editor);\n\t\t\thost.ui.setFocus(host.editor);\n\t\t};\n\t\tconst { component, focus } = create(done);\n\t\thost.editorContainer.clear();\n\t\thost.editorContainer.addChild(component);\n\t\thost.ui.setFocus(focus);\n\t\thost.ui.requestRender();\n\t}\n\nexport function showSettingsSelector(host: InteractiveModeDelegateHost): void {\n\t\thost.showSelector((done) => {\n\t\t\tconst selector = new SettingsSelectorComponent(\n\t\t\t\t{\n\t\t\t\t\tautoCompact: host.session.autoCompactionEnabled,\n\t\t\t\t\tshowImages: host.settingsManager.getShowImages(),\n\t\t\t\t\tautoResizeImages: host.settingsManager.getImageAutoResize(),\n\t\t\t\t\tblockImages: host.settingsManager.getBlockImages(),\n\t\t\t\t\tenableSkillCommands: host.settingsManager.getEnableSkillCommands(),\n\t\t\t\t\tsteeringMode: host.session.steeringMode,\n\t\t\t\t\tfollowUpMode: host.session.followUpMode,\n\t\t\t\t\ttransport: host.settingsManager.getTransport(),\n\t\t\t\t\tthinkingLevel: host.session.thinkingLevel,\n\t\t\t\t\tavailableThinkingLevels: host.session.getAvailableThinkingLevels(),\n\t\t\t\t\tcurrentTheme: host.settingsManager.getTheme() || \"dark\",\n\t\t\t\t\tavailableThemes: getAvailableThemes(),\n\t\t\t\t\thideThinkingBlock: host.hideThinkingBlock,\n\t\t\t\t\ttoolsExpanded: host.toolOutputExpanded,\n\t\t\t\t\tcollapseChangelog: host.settingsManager.getCollapseChangelog(),\n\t\t\t\t\tdoubleEscapeAction: host.settingsManager.getDoubleEscapeAction(),\n\t\t\t\t\ttreeFilterMode: host.settingsManager.getTreeFilterMode(),\n\t\t\t\t\tshowHardwareCursor: host.settingsManager.getShowHardwareCursor(),\n\t\t\t\t\teditorPaddingX: host.settingsManager.getEditorPaddingX(),\n\t\t\t\t\tautocompleteMaxVisible: host.settingsManager.getAutocompleteMaxVisible(),\n\t\t\t\t\trespectGitignoreInPicker: host.settingsManager.getRespectGitignoreInPicker(),\n\t\t\t\t\tquietStartup: host.settingsManager.getQuietStartup(),\n\t\t\t\t\tclearOnShrink: host.settingsManager.getClearOnShrink(),\n\t\t\t\t\ttimestampFormat: host.settingsManager.getTimestampFormat(),\n\t\t\t\t\tadaptiveMode: host.settingsManager.getAdaptiveMode(),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tonAutoCompactChange: (enabled) => {\n\t\t\t\t\t\thost.session.setAutoCompactionEnabled(enabled);\n\t\t\t\t\t\thost.footer.setAutoCompactEnabled(enabled);\n\t\t\t\t\t},\n\t\t\t\t\tonShowImagesChange: (enabled) => {\n\t\t\t\t\t\thost.settingsManager.setShowImages(enabled);\n\t\t\t\t\t\tfor (const child of host.chatContainer.children) {\n\t\t\t\t\t\t\tif (child instanceof ToolExecutionComponent) {\n\t\t\t\t\t\t\t\tchild.setShowImages(enabled);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tonAutoResizeImagesChange: (enabled) => {\n\t\t\t\t\t\thost.settingsManager.setImageAutoResize(enabled);\n\t\t\t\t\t},\n\t\t\t\t\tonBlockImagesChange: (blocked) => {\n\t\t\t\t\t\thost.settingsManager.setBlockImages(blocked);\n\t\t\t\t\t},\n\t\t\t\t\tonEnableSkillCommandsChange: (enabled) => {\n\t\t\t\t\t\thost.settingsManager.setEnableSkillCommands(enabled);\n\t\t\t\t\t\thost.setupAutocomplete();\n\t\t\t\t\t},\n\t\t\t\t\tonSteeringModeChange: (mode) => {\n\t\t\t\t\t\thost.session.setSteeringMode(mode);\n\t\t\t\t\t},\n\t\t\t\t\tonFollowUpModeChange: (mode) => {\n\t\t\t\t\t\thost.session.setFollowUpMode(mode);\n\t\t\t\t\t},\n\t\t\t\t\tonTransportChange: (transport) => {\n\t\t\t\t\t\thost.settingsManager.setTransport(transport);\n\t\t\t\t\t\thost.session.agent.transport = transport;\n\t\t\t\t\t},\n\t\t\t\t\tonThinkingLevelChange: (level) => {\n\t\t\t\t\t\thost.session.setThinkingLevel(level);\n\t\t\t\t\t\thost.footer.invalidate();\n\t\t\t\t\t\thost.updateEditorBorderColor();\n\t\t\t\t\t},\n\t\t\t\t\tonThemeChange: (themeName) => {\n\t\t\t\t\t\tconst result = setTheme(themeName, true);\n\t\t\t\t\t\thost.settingsManager.setTheme(themeName);\n\t\t\t\t\t\thost.clearMarkdownThemeCache();\n\t\t\t\t\t\thost.ui.invalidate();\n\t\t\t\t\t\tif (!result.success) {\n\t\t\t\t\t\t\thost.showError(`Failed to load theme \"${themeName}\": ${result.error}\\nFell back to dark theme.`);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tonThemePreview: (themeName) => {\n\t\t\t\t\t\tconst result = setTheme(themeName, true);\n\t\t\t\t\t\tif (result.success) {\n\t\t\t\t\t\t\thost.clearMarkdownThemeCache();\n\t\t\t\t\t\t\thost.ui.invalidate();\n\t\t\t\t\t\t\thost.ui.requestRender();\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tonHideThinkingBlockChange: (hidden) => {\n\t\t\t\t\t\thost.hideThinkingBlock = hidden;\n\t\t\t\t\t\thost.settingsManager.setHideThinkingBlock(hidden);\n\t\t\t\t\t\tfor (const child of host.chatContainer.children) {\n\t\t\t\t\t\t\tif (child instanceof AssistantMessageComponent) {\n\t\t\t\t\t\t\t\tchild.setHideThinkingBlock(hidden);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\thost.chatContainer.clear();\n\t\t\t\t\t\thost.rebuildChatFromMessages();\n\t\t\t\t\t},\n\t\t\t\t\tonToolsExpandedChange: (expanded) => {\n\t\t\t\t\t\thost.settingsManager.setToolsExpanded(expanded);\n\t\t\t\t\t\thost.setToolsExpanded(expanded);\n\t\t\t\t\t},\n\t\t\t\t\tonCollapseChangelogChange: (collapsed) => {\n\t\t\t\t\t\thost.settingsManager.setCollapseChangelog(collapsed);\n\t\t\t\t\t},\n\t\t\t\t\tonQuietStartupChange: (enabled) => {\n\t\t\t\t\t\thost.settingsManager.setQuietStartup(enabled);\n\t\t\t\t\t},\n\t\t\t\t\tonDoubleEscapeActionChange: (action) => {\n\t\t\t\t\t\thost.settingsManager.setDoubleEscapeAction(action);\n\t\t\t\t\t},\n\t\t\t\t\tonTreeFilterModeChange: (mode) => {\n\t\t\t\t\t\thost.settingsManager.setTreeFilterMode(mode);\n\t\t\t\t\t},\n\t\t\t\t\tonShowHardwareCursorChange: (enabled) => {\n\t\t\t\t\t\thost.settingsManager.setShowHardwareCursor(enabled);\n\t\t\t\t\t\thost.ui.setShowHardwareCursor(enabled);\n\t\t\t\t\t},\n\t\t\t\t\tonEditorPaddingXChange: (padding) => {\n\t\t\t\t\t\thost.settingsManager.setEditorPaddingX(padding);\n\t\t\t\t\t\thost.defaultEditor.setPaddingX(padding);\n\t\t\t\t\t\tif (host.editor !== host.defaultEditor && host.editor.setPaddingX !== undefined) {\n\t\t\t\t\t\t\thost.editor.setPaddingX(padding);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tonAutocompleteMaxVisibleChange: (maxVisible) => {\n\t\t\t\t\t\thost.settingsManager.setAutocompleteMaxVisible(maxVisible);\n\t\t\t\t\t\thost.defaultEditor.setAutocompleteMaxVisible(maxVisible);\n\t\t\t\t\t\tif (host.editor !== host.defaultEditor && host.editor.setAutocompleteMaxVisible !== undefined) {\n\t\t\t\t\t\t\thost.editor.setAutocompleteMaxVisible(maxVisible);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tonClearOnShrinkChange: (enabled) => {\n\t\t\t\t\t\thost.settingsManager.setClearOnShrink(enabled);\n\t\t\t\t\t\thost.ui.setClearOnShrink(enabled);\n\t\t\t\t\t},\n\t\t\t\t\tonRespectGitignoreInPickerChange: (enabled) => {\n\t\t\t\t\t\thost.settingsManager.setRespectGitignoreInPicker(enabled);\n\t\t\t\t\t\thost.autocompleteProvider?.setRespectGitignore(enabled);\n\t\t\t\t\t},\n\t\t\t\t\tonTimestampFormatChange: (format) => {\n\t\t\t\t\t\thost.settingsManager.setTimestampFormat(format);\n\t\t\t\t\t},\n\t\t\t\t\tonAdaptiveModeChange: (mode) => {\n\t\t\t\t\t\thost.settingsManager.setAdaptiveMode(mode);\n\t\t\t\t\t\thost.ui.requestRender();\n\t\t\t\t\t},\n\t\t\t\t\tonCancel: () => {\n\t\t\t\t\t\tdone();\n\t\t\t\t\t\thost.ui.requestRender();\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\t\t\treturn { component: selector, focus: selector.getSettingsList() };\n\t\t});\n\t}\n\nexport async function handleModelCommand(host: InteractiveModeDelegateHost, searchTerm?: string): Promise<void> {\n\t\tawait handleModelCommandController(host, searchTerm);\n\t}\n\nexport async function findExactModelMatch(host: InteractiveModeDelegateHost, searchTerm: string): Promise<Model<any> | undefined> {\n\t\treturn findExactModelMatchController(host, searchTerm);\n\t}\n\nexport async function getModelCandidates(host: InteractiveModeDelegateHost): Promise<Model<any>[]> {\n\t\treturn getModelCandidatesController(host);\n\t}\n\n\t/** Update the footer's available provider count from current model candidates */\nexport async function updateAvailableProviderCount(host: InteractiveModeDelegateHost): Promise<void> {\n\t\tawait updateAvailableProviderCountController(host);\n\t}\n\nexport function showModelSelector(host: InteractiveModeDelegateHost, initialSearchInput?: string): void {\n\t\thost.showSelector((done) => {\n\t\t\tconst selector = new ModelSelectorComponent(\n\t\t\t\thost.ui,\n\t\t\t\thost.session.model,\n\t\t\t\thost.settingsManager,\n\t\t\t\thost.session.modelRegistry,\n\t\t\t\thost.session.scopedModels,\n\t\t\t\tasync (model) => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait host.session.setModel(model);\n\t\t\t\t\t\thost.footer.invalidate();\n\t\t\t\t\t\thost.updateEditorBorderColor();\n\t\t\t\t\t\tdone();\n\t\t\t\t\t\thost.showStatus(`Model: ${model.id}`);\n\t\t\t\t\t\thost.checkDaxnutsEasterEgg(model);\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tdone();\n\t\t\t\t\t\thost.showError(error instanceof Error ? error.message : String(error));\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t() => {\n\t\t\t\t\tdone();\n\t\t\t\t\thost.ui.requestRender();\n\t\t\t\t},\n\t\t\t\tinitialSearchInput,\n\t\t\t);\n\t\t\treturn { component: selector, focus: selector };\n\t\t});\n\t}\n\nexport async function showModelsSelector(host: InteractiveModeDelegateHost): Promise<void> {\n\t\t// Get all available models\n\t\thost.session.modelRegistry.refresh();\n\t\tconst allModels = host.session.modelRegistry.getAvailable();\n\n\t\tif (allModels.length === 0) {\n\t\t\thost.showStatus(\"No models available\");\n\t\t\treturn;\n\t\t}\n\n\t\t// Check if session has scoped models (from previous session-only changes or CLI --models)\n\t\tconst sessionScopedModels = host.session.scopedModels;\n\t\tconst hasSessionScope = sessionScopedModels.length > 0;\n\n\t\t// Build enabled model IDs from session state or settings\n\t\tconst enabledModelIds = new Set<string>();\n\t\tlet hasFilter = false;\n\n\t\tif (hasSessionScope) {\n\t\t\t// Use current session's scoped models\n\t\t\tfor (const sm of sessionScopedModels) {\n\t\t\t\tenabledModelIds.add(`${sm.model.provider}/${sm.model.id}`);\n\t\t\t}\n\t\t\thasFilter = true;\n\t\t} else {\n\t\t\t// Fall back to settings\n\t\t\tconst patterns = host.settingsManager.getEnabledModels();\n\t\t\tif (patterns !== undefined && patterns.length > 0) {\n\t\t\t\thasFilter = true;\n\t\t\t\tconst scopedModels = await resolveModelScope(patterns, host.session.modelRegistry);\n\t\t\t\tfor (const sm of scopedModels) {\n\t\t\t\t\tenabledModelIds.add(`${sm.model.provider}/${sm.model.id}`);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Track current enabled state (session-only until persisted)\n\t\tconst currentEnabledIds = new Set(enabledModelIds);\n\t\tlet currentHasFilter = hasFilter;\n\n\t\t// Helper to update session's scoped models (session-only, no persist)\n\t\tconst updateSessionModels = async (enabledIds: Set<string>) => {\n\t\t\tif (enabledIds.size > 0 && enabledIds.size < allModels.length) {\n\t\t\t\tconst newScopedModels = await resolveModelScope(Array.from(enabledIds), host.session.modelRegistry);\n\t\t\t\thost.session.setScopedModels(\n\t\t\t\t\tnewScopedModels.map((sm) => ({\n\t\t\t\t\t\tmodel: sm.model,\n\t\t\t\t\t\tthinkingLevel: sm.thinkingLevel,\n\t\t\t\t\t})),\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\t// All enabled or none enabled = no filter\n\t\t\t\thost.session.setScopedModels([]);\n\t\t\t}\n\t\t\tawait host.updateAvailableProviderCount();\n\t\t\thost.ui.requestRender();\n\t\t};\n\n\t\thost.showSelector((done) => {\n\t\t\tconst selector = new ScopedModelsSelectorComponent(\n\t\t\t\t{\n\t\t\t\t\tallModels,\n\t\t\t\t\tenabledModelIds: currentEnabledIds,\n\t\t\t\t\thasEnabledModelsFilter: currentHasFilter,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tonModelToggle: async (modelId, enabled) => {\n\t\t\t\t\t\tif (enabled) {\n\t\t\t\t\t\t\tcurrentEnabledIds.add(modelId);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcurrentEnabledIds.delete(modelId);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcurrentHasFilter = true;\n\t\t\t\t\t\tawait updateSessionModels(currentEnabledIds);\n\t\t\t\t\t},\n\t\t\t\t\tonEnableAll: async (allModelIds) => {\n\t\t\t\t\t\tcurrentEnabledIds.clear();\n\t\t\t\t\t\tfor (const id of allModelIds) {\n\t\t\t\t\t\t\tcurrentEnabledIds.add(id);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcurrentHasFilter = false;\n\t\t\t\t\t\tawait updateSessionModels(currentEnabledIds);\n\t\t\t\t\t},\n\t\t\t\t\tonClearAll: async () => {\n\t\t\t\t\t\tcurrentEnabledIds.clear();\n\t\t\t\t\t\tcurrentHasFilter = true;\n\t\t\t\t\t\tawait updateSessionModels(currentEnabledIds);\n\t\t\t\t\t},\n\t\t\t\t\tonToggleProvider: async (_provider, modelIds, enabled) => {\n\t\t\t\t\t\tfor (const id of modelIds) {\n\t\t\t\t\t\t\tif (enabled) {\n\t\t\t\t\t\t\t\tcurrentEnabledIds.add(id);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcurrentEnabledIds.delete(id);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcurrentHasFilter = true;\n\t\t\t\t\t\tawait updateSessionModels(currentEnabledIds);\n\t\t\t\t\t},\n\t\t\t\t\tonPersist: (enabledIds) => {\n\t\t\t\t\t\t// Persist to settings\n\t\t\t\t\t\tconst newPatterns =\n\t\t\t\t\t\t\tenabledIds.length === allModels.length\n\t\t\t\t\t\t\t\t? undefined // All enabled = clear filter\n\t\t\t\t\t\t\t\t: enabledIds;\n\t\t\t\t\t\thost.settingsManager.setEnabledModels(newPatterns);\n\t\t\t\t\t\thost.showStatus(\"Model selection saved to settings\");\n\t\t\t\t\t},\n\t\t\t\t\tonCancel: () => {\n\t\t\t\t\t\tdone();\n\t\t\t\t\t\thost.ui.requestRender();\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\t\t\treturn { component: selector, focus: selector };\n\t\t});\n\t}\n"]}
|
|
1
|
+
{"version":3,"file":"interactive-selectors-settings.js","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-selectors-settings.ts"],"names":[],"mappings":"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","sourcesContent":["// Project/App: gsd-pi\n// File Purpose: Extracted from interactive-mode.ts (Phase E2 seam remediation).\n// @ts-nocheck\n\nimport { Loader, Spacer } from \"@gsd/pi-tui\";\nimport type { Component } from \"@gsd/pi-tui\";\nimport type { Model, OAuthProviderId } from \"@gsd/pi-ai\";\nimport { getAuthPath } from \"@gsd/pi-coding-agent/config.js\";\nimport { resolveModelScope } from \"@gsd/pi-coding-agent/core/model-resolver.js\";\nimport { SessionManager } from \"@gsd/pi-coding-agent/core/session-manager.js\";\nimport { getAvailableThemes, setRegisteredThemes, setTheme, theme } from \"@gsd/pi-coding-agent/theme/theme.js\";\nimport { appKey } from \"./components/keybinding-hints.js\";\nimport { LoginDialogComponent } from \"./components/login-dialog.js\";\nimport { ModelSelectorComponent } from \"./components/model-selector.js\";\nimport { OAuthSelectorComponent } from \"./components/oauth-selector.js\";\nimport { ProviderManagerComponent } from \"./components/provider-manager.js\";\nimport { ScopedModelsSelectorComponent } from \"./components/scoped-models-selector.js\";\nimport { SessionSelectorComponent } from \"./components/session-selector.js\";\nimport { SettingsSelectorComponent } from \"./components/settings-selector.js\";\nimport { ToolExecutionComponent } from \"./components/tool-execution.js\";\nimport { TreeSelectorComponent } from \"./components/tree-selector.js\";\nimport { UserMessageSelectorComponent } from \"./components/user-message-selector.js\";\nimport { AssistantMessageComponent } from \"./components/assistant-message.js\";\nimport {\n findExactModelMatch as findExactModelMatchController,\n getModelCandidates as getModelCandidatesController,\n handleModelCommand as handleModelCommandController,\n updateAvailableProviderCount as updateAvailableProviderCountController,\n} from \"./controllers/model-controller.js\";\nimport type { InteractiveModeDelegateHost } from \"./interactive-mode-delegate-host.js\";\n\n\nimport { Loader, Spacer } from \"@gsd/pi-tui\";\nimport type { Component } from \"@gsd/pi-tui\";\nimport type { Model, OAuthProviderId } from \"@gsd/pi-ai\";\nimport { getAuthPath } from \"@gsd/pi-coding-agent/config.js\";\nimport { resolveModelScope } from \"@gsd/pi-coding-agent/core/model-resolver.js\";\nimport { SessionManager } from \"@gsd/pi-coding-agent/core/session-manager.js\";\nimport { getAvailableThemes, setRegisteredThemes, setTheme, theme } from \"@gsd/pi-coding-agent/theme/theme.js\";\nimport { appKey } from \"./components/keybinding-hints.js\";\nimport { LoginDialogComponent } from \"./components/login-dialog.js\";\nimport { ModelSelectorComponent } from \"./components/model-selector.js\";\nimport { OAuthSelectorComponent } from \"./components/oauth-selector.js\";\nimport { ProviderManagerComponent } from \"./components/provider-manager.js\";\nimport { ScopedModelsSelectorComponent } from \"./components/scoped-models-selector.js\";\nimport { SessionSelectorComponent } from \"./components/session-selector.js\";\nimport { SettingsSelectorComponent } from \"./components/settings-selector.js\";\nimport { ToolExecutionComponent } from \"./components/tool-execution.js\";\nimport { TreeSelectorComponent } from \"./components/tree-selector.js\";\nimport { UserMessageSelectorComponent } from \"./components/user-message-selector.js\";\nimport { AssistantMessageComponent } from \"./components/assistant-message.js\";\nimport {\n\tfindExactModelMatch as findExactModelMatchController,\n\tgetModelCandidates as getModelCandidatesController,\n\thandleModelCommand as handleModelCommandController,\n\tupdateAvailableProviderCount as updateAvailableProviderCountController,\n} from \"./controllers/model-controller.js\";\nimport type { InteractiveModeDelegateHost } from \"./interactive-mode-delegate-host.js\";\n\nexport function showSelector(host: InteractiveModeDelegateHost, create: (done: () => void) => { component: Component; focus: Component }): void {\n\t\tconst done = () => {\n\t\t\thost.editorContainer.clear();\n\t\t\thost.editorContainer.addChild(host.editor);\n\t\t\thost.ui.setFocus(host.editor);\n\t\t};\n\t\tconst { component, focus } = create(done);\n\t\thost.editorContainer.clear();\n\t\thost.editorContainer.addChild(component);\n\t\thost.ui.setFocus(focus);\n\t\thost.ui.requestRender();\n\t}\n\nexport function showSettingsSelector(host: InteractiveModeDelegateHost): void {\n\t\thost.showSelector((done) => {\n\t\t\tconst selector = new SettingsSelectorComponent(\n\t\t\t\t{\n\t\t\t\t\tautoCompact: host.session.autoCompactionEnabled,\n\t\t\t\t\tshowImages: host.settingsManager.getShowImages(),\n\t\t\t\t\tautoResizeImages: host.settingsManager.getImageAutoResize(),\n\t\t\t\t\tblockImages: host.settingsManager.getBlockImages(),\n\t\t\t\t\tenableSkillCommands: host.settingsManager.getEnableSkillCommands(),\n\t\t\t\t\tsteeringMode: host.session.steeringMode,\n\t\t\t\t\tfollowUpMode: host.session.followUpMode,\n\t\t\t\t\ttransport: host.settingsManager.getTransport(),\n\t\t\t\t\tthinkingLevel: host.session.thinkingLevel,\n\t\t\t\t\tavailableThinkingLevels: host.session.getAvailableThinkingLevels(),\n\t\t\t\t\tcurrentTheme: host.settingsManager.getTheme() || \"dark\",\n\t\t\t\t\tavailableThemes: getAvailableThemes(),\n\t\t\t\t\thideThinkingBlock: host.hideThinkingBlock,\n\t\t\t\t\ttoolsExpanded: host.toolOutputExpanded,\n\t\t\t\t\ttoolRailAnimation: host.settingsManager.getToolRailAnimation(),\n\t\t\t\t\tcollapseChangelog: host.settingsManager.getCollapseChangelog(),\n\t\t\t\t\tdoubleEscapeAction: host.settingsManager.getDoubleEscapeAction(),\n\t\t\t\t\ttreeFilterMode: host.settingsManager.getTreeFilterMode(),\n\t\t\t\t\tshowHardwareCursor: host.settingsManager.getShowHardwareCursor(),\n\t\t\t\t\teditorPaddingX: host.settingsManager.getEditorPaddingX(),\n\t\t\t\t\tautocompleteMaxVisible: host.settingsManager.getAutocompleteMaxVisible(),\n\t\t\t\t\trespectGitignoreInPicker: host.settingsManager.getRespectGitignoreInPicker(),\n\t\t\t\t\tquietStartup: host.settingsManager.getQuietStartup(),\n\t\t\t\t\tclearOnShrink: host.settingsManager.getClearOnShrink(),\n\t\t\t\t\ttimestampFormat: host.settingsManager.getTimestampFormat(),\n\t\t\t\t\tadaptiveMode: host.settingsManager.getAdaptiveMode(),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tonAutoCompactChange: (enabled) => {\n\t\t\t\t\t\thost.session.setAutoCompactionEnabled(enabled);\n\t\t\t\t\t\thost.footer.setAutoCompactEnabled(enabled);\n\t\t\t\t\t},\n\t\t\t\t\tonShowImagesChange: (enabled) => {\n\t\t\t\t\t\thost.settingsManager.setShowImages(enabled);\n\t\t\t\t\t\tfor (const child of host.chatContainer.children) {\n\t\t\t\t\t\t\tif (child instanceof ToolExecutionComponent) {\n\t\t\t\t\t\t\t\tchild.setShowImages(enabled);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tonAutoResizeImagesChange: (enabled) => {\n\t\t\t\t\t\thost.settingsManager.setImageAutoResize(enabled);\n\t\t\t\t\t},\n\t\t\t\t\tonBlockImagesChange: (blocked) => {\n\t\t\t\t\t\thost.settingsManager.setBlockImages(blocked);\n\t\t\t\t\t},\n\t\t\t\t\tonEnableSkillCommandsChange: (enabled) => {\n\t\t\t\t\t\thost.settingsManager.setEnableSkillCommands(enabled);\n\t\t\t\t\t\thost.setupAutocomplete();\n\t\t\t\t\t},\n\t\t\t\t\tonSteeringModeChange: (mode) => {\n\t\t\t\t\t\thost.session.setSteeringMode(mode);\n\t\t\t\t\t},\n\t\t\t\t\tonFollowUpModeChange: (mode) => {\n\t\t\t\t\t\thost.session.setFollowUpMode(mode);\n\t\t\t\t\t},\n\t\t\t\t\tonTransportChange: (transport) => {\n\t\t\t\t\t\thost.settingsManager.setTransport(transport);\n\t\t\t\t\t\thost.session.agent.transport = transport;\n\t\t\t\t\t},\n\t\t\t\t\tonThinkingLevelChange: (level) => {\n\t\t\t\t\t\thost.session.setThinkingLevel(level);\n\t\t\t\t\t\thost.footer.invalidate();\n\t\t\t\t\t\thost.updateEditorBorderColor();\n\t\t\t\t\t},\n\t\t\t\t\tonThemeChange: (themeName) => {\n\t\t\t\t\t\tconst result = setTheme(themeName, true);\n\t\t\t\t\t\thost.settingsManager.setTheme(themeName);\n\t\t\t\t\t\thost.clearMarkdownThemeCache();\n\t\t\t\t\t\thost.ui.invalidate();\n\t\t\t\t\t\tif (!result.success) {\n\t\t\t\t\t\t\thost.showError(`Failed to load theme \"${themeName}\": ${result.error}\\nFell back to dark theme.`);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tonThemePreview: (themeName) => {\n\t\t\t\t\t\tconst result = setTheme(themeName, true);\n\t\t\t\t\t\tif (result.success) {\n\t\t\t\t\t\t\thost.clearMarkdownThemeCache();\n\t\t\t\t\t\t\thost.ui.invalidate();\n\t\t\t\t\t\t\thost.ui.requestRender();\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tonHideThinkingBlockChange: (hidden) => {\n\t\t\t\t\t\thost.hideThinkingBlock = hidden;\n\t\t\t\t\t\thost.settingsManager.setHideThinkingBlock(hidden);\n\t\t\t\t\t\tfor (const child of host.chatContainer.children) {\n\t\t\t\t\t\t\tif (child instanceof AssistantMessageComponent) {\n\t\t\t\t\t\t\t\tchild.setHideThinkingBlock(hidden);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\thost.chatContainer.clear();\n\t\t\t\t\t\thost.rebuildChatFromMessages();\n\t\t\t\t\t},\n\t\t\t\t\tonToolsExpandedChange: (expanded) => {\n\t\t\t\t\t\thost.settingsManager.setToolsExpanded(expanded);\n\t\t\t\t\t\thost.setToolsExpanded(expanded);\n\t\t\t\t\t},\n\t\t\t\t\tonToolRailAnimationChange: (enabled) => {\n\t\t\t\t\t\thost.setToolRailAnimation(enabled);\n\t\t\t\t\t},\n\t\t\t\t\tonCollapseChangelogChange: (collapsed) => {\n\t\t\t\t\t\thost.settingsManager.setCollapseChangelog(collapsed);\n\t\t\t\t\t},\n\t\t\t\t\tonQuietStartupChange: (enabled) => {\n\t\t\t\t\t\thost.settingsManager.setQuietStartup(enabled);\n\t\t\t\t\t},\n\t\t\t\t\tonDoubleEscapeActionChange: (action) => {\n\t\t\t\t\t\thost.settingsManager.setDoubleEscapeAction(action);\n\t\t\t\t\t},\n\t\t\t\t\tonTreeFilterModeChange: (mode) => {\n\t\t\t\t\t\thost.settingsManager.setTreeFilterMode(mode);\n\t\t\t\t\t},\n\t\t\t\t\tonShowHardwareCursorChange: (enabled) => {\n\t\t\t\t\t\thost.settingsManager.setShowHardwareCursor(enabled);\n\t\t\t\t\t\thost.ui.setShowHardwareCursor(enabled);\n\t\t\t\t\t},\n\t\t\t\t\tonEditorPaddingXChange: (padding) => {\n\t\t\t\t\t\thost.settingsManager.setEditorPaddingX(padding);\n\t\t\t\t\t\thost.defaultEditor.setPaddingX(padding);\n\t\t\t\t\t\tif (host.editor !== host.defaultEditor && host.editor.setPaddingX !== undefined) {\n\t\t\t\t\t\t\thost.editor.setPaddingX(padding);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tonAutocompleteMaxVisibleChange: (maxVisible) => {\n\t\t\t\t\t\thost.settingsManager.setAutocompleteMaxVisible(maxVisible);\n\t\t\t\t\t\thost.defaultEditor.setAutocompleteMaxVisible(maxVisible);\n\t\t\t\t\t\tif (host.editor !== host.defaultEditor && host.editor.setAutocompleteMaxVisible !== undefined) {\n\t\t\t\t\t\t\thost.editor.setAutocompleteMaxVisible(maxVisible);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tonClearOnShrinkChange: (enabled) => {\n\t\t\t\t\t\thost.settingsManager.setClearOnShrink(enabled);\n\t\t\t\t\t\thost.ui.setClearOnShrink(enabled);\n\t\t\t\t\t},\n\t\t\t\t\tonRespectGitignoreInPickerChange: (enabled) => {\n\t\t\t\t\t\thost.settingsManager.setRespectGitignoreInPicker(enabled);\n\t\t\t\t\t\thost.autocompleteProvider?.setRespectGitignore(enabled);\n\t\t\t\t\t},\n\t\t\t\t\tonTimestampFormatChange: (format) => {\n\t\t\t\t\t\thost.settingsManager.setTimestampFormat(format);\n\t\t\t\t\t},\n\t\t\t\t\tonAdaptiveModeChange: (mode) => {\n\t\t\t\t\t\thost.settingsManager.setAdaptiveMode(mode);\n\t\t\t\t\t\thost.ui.requestRender();\n\t\t\t\t\t},\n\t\t\t\t\tonCancel: () => {\n\t\t\t\t\t\tdone();\n\t\t\t\t\t\thost.ui.requestRender();\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\t\t\treturn { component: selector, focus: selector.getSettingsList() };\n\t\t});\n\t}\n\nexport async function handleModelCommand(host: InteractiveModeDelegateHost, searchTerm?: string): Promise<void> {\n\t\tawait handleModelCommandController(host, searchTerm);\n\t}\n\nexport async function findExactModelMatch(host: InteractiveModeDelegateHost, searchTerm: string): Promise<Model<any> | undefined> {\n\t\treturn findExactModelMatchController(host, searchTerm);\n\t}\n\nexport async function getModelCandidates(host: InteractiveModeDelegateHost): Promise<Model<any>[]> {\n\t\treturn getModelCandidatesController(host);\n\t}\n\n\t/** Update the footer's available provider count from current model candidates */\nexport async function updateAvailableProviderCount(host: InteractiveModeDelegateHost): Promise<void> {\n\t\tawait updateAvailableProviderCountController(host);\n\t}\n\nexport function showModelSelector(host: InteractiveModeDelegateHost, initialSearchInput?: string): void {\n\t\thost.showSelector((done) => {\n\t\t\tconst selector = new ModelSelectorComponent(\n\t\t\t\thost.ui,\n\t\t\t\thost.session.model,\n\t\t\t\thost.settingsManager,\n\t\t\t\thost.session.modelRegistry,\n\t\t\t\thost.session.scopedModels,\n\t\t\t\tasync (model) => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait host.session.setModel(model);\n\t\t\t\t\t\thost.footer.invalidate();\n\t\t\t\t\t\thost.updateEditorBorderColor();\n\t\t\t\t\t\tdone();\n\t\t\t\t\t\thost.showStatus(`Model: ${model.id}`);\n\t\t\t\t\t\thost.checkDaxnutsEasterEgg(model);\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tdone();\n\t\t\t\t\t\thost.showError(error instanceof Error ? error.message : String(error));\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t() => {\n\t\t\t\t\tdone();\n\t\t\t\t\thost.ui.requestRender();\n\t\t\t\t},\n\t\t\t\tinitialSearchInput,\n\t\t\t);\n\t\t\treturn { component: selector, focus: selector };\n\t\t});\n\t}\n\nexport async function showModelsSelector(host: InteractiveModeDelegateHost): Promise<void> {\n\t\t// Get all available models\n\t\thost.session.modelRegistry.refresh();\n\t\tconst allModels = host.session.modelRegistry.getAvailable();\n\n\t\tif (allModels.length === 0) {\n\t\t\thost.showStatus(\"No models available\");\n\t\t\treturn;\n\t\t}\n\n\t\t// Check if session has scoped models (from previous session-only changes or CLI --models)\n\t\tconst sessionScopedModels = host.session.scopedModels;\n\t\tconst hasSessionScope = sessionScopedModels.length > 0;\n\n\t\t// Build enabled model IDs from session state or settings\n\t\tconst enabledModelIds = new Set<string>();\n\t\tlet hasFilter = false;\n\n\t\tif (hasSessionScope) {\n\t\t\t// Use current session's scoped models\n\t\t\tfor (const sm of sessionScopedModels) {\n\t\t\t\tenabledModelIds.add(`${sm.model.provider}/${sm.model.id}`);\n\t\t\t}\n\t\t\thasFilter = true;\n\t\t} else {\n\t\t\t// Fall back to settings\n\t\t\tconst patterns = host.settingsManager.getEnabledModels();\n\t\t\tif (patterns !== undefined && patterns.length > 0) {\n\t\t\t\thasFilter = true;\n\t\t\t\tconst scopedModels = await resolveModelScope(patterns, host.session.modelRegistry);\n\t\t\t\tfor (const sm of scopedModels) {\n\t\t\t\t\tenabledModelIds.add(`${sm.model.provider}/${sm.model.id}`);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Track current enabled state (session-only until persisted)\n\t\tconst currentEnabledIds = new Set(enabledModelIds);\n\t\tlet currentHasFilter = hasFilter;\n\n\t\t// Helper to update session's scoped models (session-only, no persist)\n\t\tconst updateSessionModels = async (enabledIds: Set<string>) => {\n\t\t\tif (enabledIds.size > 0 && enabledIds.size < allModels.length) {\n\t\t\t\tconst newScopedModels = await resolveModelScope(Array.from(enabledIds), host.session.modelRegistry);\n\t\t\t\thost.session.setScopedModels(\n\t\t\t\t\tnewScopedModels.map((sm) => ({\n\t\t\t\t\t\tmodel: sm.model,\n\t\t\t\t\t\tthinkingLevel: sm.thinkingLevel,\n\t\t\t\t\t})),\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\t// All enabled or none enabled = no filter\n\t\t\t\thost.session.setScopedModels([]);\n\t\t\t}\n\t\t\tawait host.updateAvailableProviderCount();\n\t\t\thost.ui.requestRender();\n\t\t};\n\n\t\thost.showSelector((done) => {\n\t\t\tconst selector = new ScopedModelsSelectorComponent(\n\t\t\t\t{\n\t\t\t\t\tallModels,\n\t\t\t\t\tenabledModelIds: currentEnabledIds,\n\t\t\t\t\thasEnabledModelsFilter: currentHasFilter,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tonModelToggle: async (modelId, enabled) => {\n\t\t\t\t\t\tif (enabled) {\n\t\t\t\t\t\t\tcurrentEnabledIds.add(modelId);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcurrentEnabledIds.delete(modelId);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcurrentHasFilter = true;\n\t\t\t\t\t\tawait updateSessionModels(currentEnabledIds);\n\t\t\t\t\t},\n\t\t\t\t\tonEnableAll: async (allModelIds) => {\n\t\t\t\t\t\tcurrentEnabledIds.clear();\n\t\t\t\t\t\tfor (const id of allModelIds) {\n\t\t\t\t\t\t\tcurrentEnabledIds.add(id);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcurrentHasFilter = false;\n\t\t\t\t\t\tawait updateSessionModels(currentEnabledIds);\n\t\t\t\t\t},\n\t\t\t\t\tonClearAll: async () => {\n\t\t\t\t\t\tcurrentEnabledIds.clear();\n\t\t\t\t\t\tcurrentHasFilter = true;\n\t\t\t\t\t\tawait updateSessionModels(currentEnabledIds);\n\t\t\t\t\t},\n\t\t\t\t\tonToggleProvider: async (_provider, modelIds, enabled) => {\n\t\t\t\t\t\tfor (const id of modelIds) {\n\t\t\t\t\t\t\tif (enabled) {\n\t\t\t\t\t\t\t\tcurrentEnabledIds.add(id);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcurrentEnabledIds.delete(id);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcurrentHasFilter = true;\n\t\t\t\t\t\tawait updateSessionModels(currentEnabledIds);\n\t\t\t\t\t},\n\t\t\t\t\tonPersist: (enabledIds) => {\n\t\t\t\t\t\t// Persist to settings\n\t\t\t\t\t\tconst newPatterns =\n\t\t\t\t\t\t\tenabledIds.length === allModels.length\n\t\t\t\t\t\t\t\t? undefined // All enabled = clear filter\n\t\t\t\t\t\t\t\t: enabledIds;\n\t\t\t\t\t\thost.settingsManager.setEnabledModels(newPatterns);\n\t\t\t\t\t\thost.showStatus(\"Model selection saved to settings\");\n\t\t\t\t\t},\n\t\t\t\t\tonCancel: () => {\n\t\t\t\t\t\tdone();\n\t\t\t\t\t\thost.ui.requestRender();\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\t\t\treturn { component: selector, focus: selector };\n\t\t});\n\t}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactive-ui-messaging.d.ts","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-ui-messaging.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAEvF,wBAAgB,WAAW,CAAC,IAAI,EAAE,2BAA2B,GAAG,IAAI,CAGnE;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,2BAA2B,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"interactive-ui-messaging.d.ts","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-ui-messaging.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAEvF,wBAAgB,WAAW,CAAC,IAAI,EAAE,2BAA2B,GAAG,IAAI,CAGnE;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,2BAA2B,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAKvF;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,2BAA2B,GAAG,IAAI,CAI1E;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,2BAA2B,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI,CAI3F;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,2BAA2B,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI,CAO3F;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,2BAA2B,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAIhF;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,2BAA2B,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAoBtG"}
|
|
@@ -11,7 +11,6 @@ export function clearEditor(host) {
|
|
|
11
11
|
}
|
|
12
12
|
export function showError(host, errorMessage) {
|
|
13
13
|
host.lastBlockingError = errorMessage;
|
|
14
|
-
renderBlockingErrorBanner(host.blockingErrorContainer, host.lastBlockingError);
|
|
15
14
|
host.chatContainer.addChild(new Spacer(1));
|
|
16
15
|
host.chatContainer.addChild(new Text(theme.fg("error", `Error: ${errorMessage}`), 1, 0));
|
|
17
16
|
host.ui.requestRender();
|