@compilr-dev/cli 0.5.0 → 0.5.1
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/README.md +236 -68
- package/dist/.tsbuildinfo.app +1 -0
- package/dist/.tsbuildinfo.data +1 -0
- package/dist/.tsbuildinfo.domain +1 -0
- package/dist/.tsbuildinfo.foundation +1 -0
- package/dist/agent.d.ts +61 -4
- package/dist/agent.js +241 -245
- package/dist/anchors/index.d.ts +1 -1
- package/dist/anchors/index.js +1 -1
- package/dist/anchors/project-anchors.d.ts +2 -2
- package/dist/anchors/project-anchors.js +1 -1
- package/dist/auth/api-client.d.ts +124 -0
- package/dist/auth/api-client.js +261 -0
- package/dist/auth/index.d.ts +172 -0
- package/dist/auth/index.js +545 -0
- package/dist/auth/storage.d.ts +52 -0
- package/dist/auth/storage.js +118 -0
- package/dist/changelog/index.d.ts +16 -0
- package/dist/changelog/index.js +24 -0
- package/dist/changelog/releases.d.ts +17 -0
- package/dist/changelog/releases.js +63 -0
- package/dist/commands-v2/handlers/auth.d.ts +10 -0
- package/dist/commands-v2/handlers/auth.js +118 -0
- package/dist/commands-v2/handlers/background.d.ts +14 -0
- package/dist/commands-v2/handlers/background.js +276 -0
- package/dist/commands-v2/handlers/context.js +266 -81
- package/dist/commands-v2/handlers/core.d.ts +1 -0
- package/dist/commands-v2/handlers/core.js +133 -8
- package/dist/commands-v2/handlers/debug.js +18 -0
- package/dist/commands-v2/handlers/delegations.d.ts +8 -0
- package/dist/commands-v2/handlers/delegations.js +29 -0
- package/dist/commands-v2/handlers/files.d.ts +8 -0
- package/dist/commands-v2/handlers/files.js +162 -0
- package/dist/commands-v2/handlers/filter.d.ts +9 -0
- package/dist/commands-v2/handlers/filter.js +130 -0
- package/dist/commands-v2/handlers/games.d.ts +7 -0
- package/dist/commands-v2/handlers/games.js +57 -0
- package/dist/commands-v2/handlers/index.d.ts +13 -0
- package/dist/commands-v2/handlers/index.js +39 -0
- package/dist/commands-v2/handlers/mcp.d.ts +8 -0
- package/dist/commands-v2/handlers/mcp.js +39 -0
- package/dist/commands-v2/handlers/notifications.d.ts +9 -0
- package/dist/commands-v2/handlers/notifications.js +34 -0
- package/dist/commands-v2/handlers/project.js +244 -23
- package/dist/commands-v2/handlers/reset.d.ts +11 -0
- package/dist/commands-v2/handlers/reset.js +118 -0
- package/dist/commands-v2/handlers/session.d.ts +161 -0
- package/dist/commands-v2/handlers/session.js +805 -0
- package/dist/commands-v2/handlers/settings.d.ts +2 -0
- package/dist/commands-v2/handlers/settings.js +217 -35
- package/dist/commands-v2/handlers/tasks.d.ts +5 -0
- package/dist/commands-v2/handlers/tasks.js +36 -0
- package/dist/commands-v2/handlers/team.d.ts +9 -0
- package/dist/commands-v2/handlers/team.js +549 -0
- package/dist/commands-v2/handlers/terminals.d.ts +9 -0
- package/dist/commands-v2/handlers/terminals.js +34 -0
- package/dist/commands-v2/index.d.ts +3 -2
- package/dist/commands-v2/index.js +4 -1
- package/dist/commands-v2/registry.d.ts +15 -0
- package/dist/commands-v2/registry.js +34 -0
- package/dist/commands-v2/types.d.ts +81 -3
- package/dist/commands.js +13 -0
- package/dist/compilr-diff-companion.vsix +0 -0
- package/dist/db/index.js +98 -4
- package/dist/db/repositories/document-repository.d.ts +2 -0
- package/dist/db/repositories/document-repository.js +5 -1
- package/dist/db/repositories/index.d.ts +2 -0
- package/dist/db/repositories/index.js +1 -0
- package/dist/db/repositories/plan-repository.d.ts +101 -0
- package/dist/db/repositories/plan-repository.js +275 -0
- package/dist/db/repositories/project-repository.d.ts +6 -0
- package/dist/db/repositories/project-repository.js +41 -0
- package/dist/db/repositories/work-item-repository.d.ts +15 -0
- package/dist/db/repositories/work-item-repository.js +69 -4
- package/dist/db/schema.d.ts +40 -3
- package/dist/db/schema.js +66 -3
- package/dist/episodes/index.d.ts +20 -0
- package/dist/episodes/index.js +27 -0
- package/dist/episodes/recorder.d.ts +51 -0
- package/dist/episodes/recorder.js +195 -0
- package/dist/episodes/significant-work.d.ts +21 -0
- package/dist/episodes/significant-work.js +56 -0
- package/dist/episodes/store.d.ts +38 -0
- package/dist/episodes/store.js +199 -0
- package/dist/episodes/types.d.ts +35 -0
- package/dist/episodes/types.js +6 -0
- package/dist/episodes/work-at-risk.d.ts +12 -0
- package/dist/episodes/work-at-risk.js +38 -0
- package/dist/episodes/work-summary-anchor.d.ts +23 -0
- package/dist/episodes/work-summary-anchor.js +73 -0
- package/dist/games/coins.d.ts +66 -0
- package/dist/games/coins.js +165 -0
- package/dist/games/game-base.d.ts +84 -0
- package/dist/games/game-base.js +204 -0
- package/dist/games/index.d.ts +16 -0
- package/dist/games/index.js +49 -0
- package/dist/games/scores.d.ts +69 -0
- package/dist/games/scores.js +191 -0
- package/dist/games/tetris/board.d.ts +59 -0
- package/dist/games/tetris/board.js +170 -0
- package/dist/games/tetris/index.d.ts +109 -0
- package/dist/games/tetris/index.js +610 -0
- package/dist/games/tetris/pieces.d.ts +44 -0
- package/dist/games/tetris/pieces.js +271 -0
- package/dist/games/tetris/renderer.d.ts +26 -0
- package/dist/games/tetris/renderer.js +77 -0
- package/dist/guide/guide-content.d.ts +23 -0
- package/dist/guide/guide-content.js +196 -0
- package/dist/guide/index.d.ts +8 -0
- package/dist/guide/index.js +7 -0
- package/dist/guide/shared-content.d.ts +37 -0
- package/dist/guide/shared-content.js +1272 -0
- package/dist/guide/tutorial-helpers.d.ts +57 -0
- package/dist/guide/tutorial-helpers.js +147 -0
- package/dist/handlers/ask-user-handlers.d.ts +32 -0
- package/dist/handlers/ask-user-handlers.js +104 -0
- package/dist/handlers/delegation-handlers.d.ts +34 -0
- package/dist/handlers/delegation-handlers.js +291 -0
- package/dist/handlers/permission-handler.d.ts +30 -0
- package/dist/handlers/permission-handler.js +205 -0
- package/dist/index.d.ts +11 -1
- package/dist/index.js +448 -271
- package/dist/input-handlers/memory-handler.d.ts +1 -1
- package/dist/input-handlers/memory-handler.js +2 -1
- package/dist/models/index.d.ts +10 -0
- package/dist/models/index.js +12 -0
- package/dist/models/model-registry.d.ts +38 -0
- package/dist/models/model-registry.js +69 -0
- package/dist/models/model-tiers.d.ts +28 -0
- package/dist/models/model-tiers.js +71 -0
- package/dist/models/model-validation.d.ts +25 -0
- package/dist/models/model-validation.js +291 -0
- package/dist/models/ollama-models.d.ts +73 -0
- package/dist/models/ollama-models.js +178 -0
- package/dist/models/provider-types.d.ts +6 -0
- package/dist/models/provider-types.js +1 -0
- package/dist/models/providers.d.ts +35 -0
- package/dist/models/providers.js +58 -0
- package/dist/models/types.d.ts +4 -0
- package/dist/models/types.js +4 -0
- package/dist/multi-agent/activity.d.ts +21 -0
- package/dist/multi-agent/activity.js +34 -0
- package/dist/multi-agent/agent-selection.d.ts +55 -0
- package/dist/multi-agent/agent-selection.js +90 -0
- package/dist/multi-agent/artifacts.d.ts +197 -0
- package/dist/multi-agent/artifacts.js +379 -0
- package/dist/multi-agent/checkpointer.d.ts +138 -0
- package/dist/multi-agent/checkpointer.js +471 -0
- package/dist/multi-agent/collision-utils.d.ts +16 -0
- package/dist/multi-agent/collision-utils.js +28 -0
- package/dist/multi-agent/context-resolver.d.ts +97 -0
- package/dist/multi-agent/context-resolver.js +316 -0
- package/dist/multi-agent/custom-agents.d.ts +83 -0
- package/dist/multi-agent/custom-agents.js +227 -0
- package/dist/multi-agent/delegation-tracker.d.ts +157 -0
- package/dist/multi-agent/delegation-tracker.js +243 -0
- package/dist/multi-agent/file-lock-hook.d.ts +29 -0
- package/dist/multi-agent/file-lock-hook.js +97 -0
- package/dist/multi-agent/file-locks.d.ts +58 -0
- package/dist/multi-agent/file-locks.js +194 -0
- package/dist/multi-agent/index.d.ts +24 -0
- package/dist/multi-agent/index.js +30 -0
- package/dist/multi-agent/mention-parser.d.ts +64 -0
- package/dist/multi-agent/mention-parser.js +146 -0
- package/dist/multi-agent/notification-manager.d.ts +84 -0
- package/dist/multi-agent/notification-manager.js +224 -0
- package/dist/multi-agent/pending-requests.d.ts +122 -0
- package/dist/multi-agent/pending-requests.js +155 -0
- package/dist/multi-agent/session-registry.d.ts +139 -0
- package/dist/multi-agent/session-registry.js +514 -0
- package/dist/multi-agent/shared-context.d.ts +293 -0
- package/dist/multi-agent/shared-context.js +671 -0
- package/dist/multi-agent/skill-requirements.d.ts +66 -0
- package/dist/multi-agent/skill-requirements.js +178 -0
- package/dist/multi-agent/task-assignment.d.ts +69 -0
- package/dist/multi-agent/task-assignment.js +123 -0
- package/dist/multi-agent/task-suggestion.d.ts +31 -0
- package/dist/multi-agent/task-suggestion.js +72 -0
- package/dist/multi-agent/team-agent.d.ts +201 -0
- package/dist/multi-agent/team-agent.js +488 -0
- package/dist/multi-agent/team.d.ts +286 -0
- package/dist/multi-agent/team.js +610 -0
- package/dist/multi-agent/tool-config.d.ts +110 -0
- package/dist/multi-agent/tool-config.js +661 -0
- package/dist/multi-agent/types.d.ts +211 -0
- package/dist/multi-agent/types.js +617 -0
- package/dist/prompts/plan-mode-prompt.d.ts +11 -0
- package/dist/prompts/plan-mode-prompt.js +95 -0
- package/dist/repl-helpers.js +3 -2
- package/dist/repl-v2.d.ts +401 -2
- package/dist/repl-v2.js +2577 -65
- package/dist/session/index.d.ts +6 -0
- package/dist/session/index.js +6 -0
- package/dist/session/project-session-manager.d.ts +158 -0
- package/dist/session/project-session-manager.js +650 -0
- package/dist/settings/index.d.ts +133 -13
- package/dist/settings/index.js +329 -24
- package/dist/settings/mcp-config.d.ts +76 -0
- package/dist/settings/mcp-config.js +143 -0
- package/dist/settings/paths.d.ts +4 -0
- package/dist/settings/paths.js +6 -0
- package/dist/shared-handlers.d.ts +62 -0
- package/dist/shared-handlers.js +48 -0
- package/dist/system-prompt/builder.d.ts +5 -0
- package/dist/system-prompt/builder.js +4 -0
- package/dist/system-prompt/index.d.ts +18 -0
- package/dist/system-prompt/index.js +18 -0
- package/dist/system-prompt/modules.d.ts +5 -0
- package/dist/system-prompt/modules.js +4 -0
- package/dist/tabbed-menu.js +2 -1
- package/dist/templates/compilr-md-import.d.ts +16 -0
- package/dist/templates/compilr-md-import.js +241 -0
- package/dist/templates/compilr-md.js +10 -61
- package/dist/templates/config-json.d.ts +1 -25
- package/dist/templates/index.d.ts +2 -0
- package/dist/templates/index.js +34 -73
- package/dist/tool-names.d.ts +108 -0
- package/dist/tool-names.js +227 -0
- package/dist/tools/anchor-tools.d.ts +4 -4
- package/dist/tools/anchor-tools.js +1 -1
- package/dist/tools/artifact-tools.d.ts +42 -0
- package/dist/tools/artifact-tools.js +328 -0
- package/dist/tools/ask-user-simple.d.ts +1 -1
- package/dist/tools/ask-user-simple.js +2 -1
- package/dist/tools/ask-user.d.ts +1 -1
- package/dist/tools/ask-user.js +2 -1
- package/dist/tools/backlog-wrappers.d.ts +5 -3
- package/dist/tools/backlog-wrappers.js +16 -1
- package/dist/tools/backlog.d.ts +2 -2
- package/dist/tools/backlog.js +1 -1
- package/dist/tools/db-tools.d.ts +8 -61
- package/dist/tools/db-tools.js +8 -13
- package/dist/tools/delegate-background.d.ts +27 -0
- package/dist/tools/delegate-background.js +115 -0
- package/dist/tools/delegate.d.ts +22 -0
- package/dist/tools/delegate.js +97 -0
- package/dist/tools/delegation-status.d.ts +16 -0
- package/dist/tools/delegation-status.js +128 -0
- package/dist/tools/document-db.d.ts +5 -5
- package/dist/tools/document-db.js +1 -1
- package/dist/tools/guide-tool.d.ts +12 -0
- package/dist/tools/guide-tool.js +59 -0
- package/dist/tools/handoff.d.ts +25 -0
- package/dist/tools/handoff.js +99 -0
- package/dist/tools/meta-tools.d.ts +26 -0
- package/dist/tools/meta-tools.js +47 -0
- package/dist/tools/plan-tools.d.ts +54 -0
- package/dist/tools/plan-tools.js +338 -0
- package/dist/tools/platform-adapter.d.ts +29 -0
- package/dist/tools/platform-adapter.js +394 -0
- package/dist/tools/project-db.d.ts +5 -73
- package/dist/tools/project-db.js +5 -336
- package/dist/tools/recall-work-tool.d.ts +18 -0
- package/dist/tools/recall-work-tool.js +82 -0
- package/dist/tools/workitem-db.d.ts +43 -11
- package/dist/tools/workitem-db.js +186 -5
- package/dist/tools.d.ts +67 -2
- package/dist/tools.js +237 -47
- package/dist/ui/autocomplete-controller.d.ts +42 -0
- package/dist/ui/autocomplete-controller.js +384 -0
- package/dist/ui/base/index.d.ts +1 -1
- package/dist/ui/base/index.js +1 -1
- package/dist/ui/base/overlay-base-v2.d.ts +10 -0
- package/dist/ui/base/overlay-base-v2.js +14 -0
- package/dist/ui/base/render-utils.d.ts +19 -0
- package/dist/ui/base/render-utils.js +25 -0
- package/dist/ui/base/tabbed-list-overlay-v2.d.ts +16 -1
- package/dist/ui/base/tabbed-list-overlay-v2.js +19 -1
- package/dist/ui/constants/labels.d.ts +14 -0
- package/dist/ui/constants/labels.js +51 -0
- package/dist/ui/conversation-store.d.ts +55 -0
- package/dist/ui/conversation-store.js +107 -0
- package/dist/ui/conversation.js +11 -13
- package/dist/ui/diff.d.ts +7 -1
- package/dist/ui/diff.js +85 -48
- package/dist/ui/ephemeral.js +3 -9
- package/dist/ui/file-autocomplete.d.ts +24 -0
- package/dist/ui/file-autocomplete.js +56 -0
- package/dist/ui/footer-renderer.d.ts +69 -0
- package/dist/ui/footer-renderer.js +431 -0
- package/dist/ui/footer.d.ts +74 -7
- package/dist/ui/footer.js +173 -16
- package/dist/ui/input-controller.d.ts +51 -0
- package/dist/ui/input-controller.js +176 -0
- package/dist/ui/input-prompt.d.ts +19 -0
- package/dist/ui/input-prompt.js +206 -14
- package/dist/ui/keyboard-handler.d.ts +57 -0
- package/dist/ui/keyboard-handler.js +557 -0
- package/dist/ui/live-region-facade.d.ts +42 -0
- package/dist/ui/live-region-facade.js +205 -0
- package/dist/ui/live-region.d.ts +0 -4
- package/dist/ui/live-region.js +6 -14
- package/dist/ui/mascot/renderer.d.ts +1 -1
- package/dist/ui/mascot/renderer.js +37 -2
- package/dist/ui/overlay/data/tutorial-content.d.ts +9 -0
- package/dist/ui/overlay/data/tutorial-content.js +9 -0
- package/dist/ui/overlay/data/tutorial-registry.d.ts +12 -0
- package/dist/ui/overlay/data/tutorial-registry.js +116 -0
- package/dist/ui/overlay/data/tutorial-types.d.ts +35 -0
- package/dist/ui/overlay/data/tutorial-types.js +6 -0
- package/dist/ui/overlay/data/tutorials/basics/first-conversation.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/basics/first-conversation.js +220 -0
- package/dist/ui/overlay/data/tutorials/basics/first-project.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/basics/first-project.js +284 -0
- package/dist/ui/overlay/data/tutorials/basics/navigation.d.ts +8 -0
- package/dist/ui/overlay/data/tutorials/basics/navigation.js +22 -0
- package/dist/ui/overlay/data/tutorials/basics/welcome.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/basics/welcome.js +174 -0
- package/dist/ui/overlay/data/tutorials/config/context-management.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/config/context-management.js +158 -0
- package/dist/ui/overlay/data/tutorials/config/mcp-servers.d.ts +8 -0
- package/dist/ui/overlay/data/tutorials/config/mcp-servers.js +155 -0
- package/dist/ui/overlay/data/tutorials/config/model-selection.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/config/model-selection.js +162 -0
- package/dist/ui/overlay/data/tutorials/config/permissions-safety.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/config/permissions-safety.js +163 -0
- package/dist/ui/overlay/data/tutorials/config/settings-config.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/config/settings-config.js +166 -0
- package/dist/ui/overlay/data/tutorials/planning/arch.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/planning/arch.js +168 -0
- package/dist/ui/overlay/data/tutorials/planning/backlog.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/planning/backlog.js +103 -0
- package/dist/ui/overlay/data/tutorials/planning/build.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/planning/build.js +173 -0
- package/dist/ui/overlay/data/tutorials/planning/design.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/planning/design.js +205 -0
- package/dist/ui/overlay/data/tutorials/planning/docs.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/planning/docs.js +143 -0
- package/dist/ui/overlay/data/tutorials/planning/prd.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/planning/prd.js +173 -0
- package/dist/ui/overlay/data/tutorials/planning/scaffold.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/planning/scaffold.js +164 -0
- package/dist/ui/overlay/data/tutorials/planning/sketch.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/planning/sketch.js +58 -0
- package/dist/ui/overlay/data/tutorials/projects/anchors.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/projects/anchors.js +248 -0
- package/dist/ui/overlay/data/tutorials/projects/import-project.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/projects/import-project.js +172 -0
- package/dist/ui/overlay/data/tutorials/projects/managing-projects.d.ts +8 -0
- package/dist/ui/overlay/data/tutorials/projects/managing-projects.js +212 -0
- package/dist/ui/overlay/data/tutorials/projects/new-project.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/projects/new-project.js +251 -0
- package/dist/ui/overlay/data/tutorials/projects/session-management.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/projects/session-management.js +169 -0
- package/dist/ui/overlay/data/tutorials/teams/background-execution.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/teams/background-execution.js +171 -0
- package/dist/ui/overlay/data/tutorials/teams/multi-terminal.d.ts +8 -0
- package/dist/ui/overlay/data/tutorials/teams/multi-terminal.js +147 -0
- package/dist/ui/overlay/data/tutorials/teams/task-assignment.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/teams/task-assignment.js +204 -0
- package/dist/ui/overlay/data/tutorials/teams/team-overview.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/teams/team-overview.js +165 -0
- package/dist/ui/overlay/data/tutorials/teams/working-with-agents.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/teams/working-with-agents.js +172 -0
- package/dist/ui/overlay/impl/agents-overlay-v2.js +6 -17
- package/dist/ui/overlay/impl/anchors-overlay-v2.js +30 -64
- package/dist/ui/overlay/impl/artifact-detail-overlay-v2.d.ts +43 -0
- package/dist/ui/overlay/impl/artifact-detail-overlay-v2.js +232 -0
- package/dist/ui/overlay/impl/artifact-overlay-v2.d.ts +40 -0
- package/dist/ui/overlay/impl/artifact-overlay-v2.js +115 -0
- package/dist/ui/overlay/impl/ask-user-overlay-v2.js +2 -5
- package/dist/ui/overlay/impl/background-overlay-v2.d.ts +40 -0
- package/dist/ui/overlay/impl/background-overlay-v2.js +147 -0
- package/dist/ui/overlay/impl/backlog-overlay-v2.d.ts +4 -1
- package/dist/ui/overlay/impl/backlog-overlay-v2.js +55 -16
- package/dist/ui/overlay/impl/changelog-overlay-v2.d.ts +44 -0
- package/dist/ui/overlay/impl/changelog-overlay-v2.js +165 -0
- package/dist/ui/overlay/impl/commands-overlay-v2.js +4 -6
- package/dist/ui/overlay/impl/config-overlay-v2.d.ts +12 -1
- package/dist/ui/overlay/impl/config-overlay-v2.js +164 -100
- package/dist/ui/overlay/impl/custom-agent-form-overlay-v2.d.ts +83 -0
- package/dist/ui/overlay/impl/custom-agent-form-overlay-v2.js +711 -0
- package/dist/ui/overlay/impl/dashboard-overlay-v2.d.ts +2 -0
- package/dist/ui/overlay/impl/dashboard-overlay-v2.js +26 -3
- package/dist/ui/overlay/impl/delegations-overlay-v2.d.ts +28 -0
- package/dist/ui/overlay/impl/delegations-overlay-v2.js +279 -0
- package/dist/ui/overlay/impl/docs-overlay-v2.js +12 -9
- package/dist/ui/overlay/impl/document-detail-overlay-v2.d.ts +7 -0
- package/dist/ui/overlay/impl/document-detail-overlay-v2.js +119 -78
- package/dist/ui/overlay/impl/filter-overlay-v2.d.ts +41 -0
- package/dist/ui/overlay/impl/filter-overlay-v2.js +110 -0
- package/dist/ui/overlay/impl/games-overlay-v2.d.ts +31 -0
- package/dist/ui/overlay/impl/games-overlay-v2.js +135 -0
- package/dist/ui/overlay/impl/help-overlay-v2.d.ts +26 -3
- package/dist/ui/overlay/impl/help-overlay-v2.js +20 -42
- package/dist/ui/overlay/impl/login-overlay-v2.d.ts +49 -0
- package/dist/ui/overlay/impl/login-overlay-v2.js +277 -0
- package/dist/ui/overlay/impl/mcp-overlay-v2.d.ts +63 -0
- package/dist/ui/overlay/impl/mcp-overlay-v2.js +907 -0
- package/dist/ui/overlay/impl/model-overlay-v2.d.ts +57 -13
- package/dist/ui/overlay/impl/model-overlay-v2.js +1086 -61
- package/dist/ui/overlay/impl/new-overlay-v2.d.ts +37 -6
- package/dist/ui/overlay/impl/new-overlay-v2.js +715 -65
- package/dist/ui/overlay/impl/notifications-overlay-v2.d.ts +20 -0
- package/dist/ui/overlay/impl/notifications-overlay-v2.js +116 -0
- package/dist/ui/overlay/impl/onboarding-wizard-overlay-v2.d.ts +76 -0
- package/dist/ui/overlay/impl/onboarding-wizard-overlay-v2.js +728 -0
- package/dist/ui/overlay/impl/pending-overlay-v2.d.ts +51 -0
- package/dist/ui/overlay/impl/pending-overlay-v2.js +445 -0
- package/dist/ui/overlay/impl/permission-overlay-v2.js +5 -5
- package/dist/ui/overlay/impl/permissions-overlay-v2.d.ts +85 -0
- package/dist/ui/overlay/impl/permissions-overlay-v2.js +820 -0
- package/dist/ui/overlay/impl/plan-approval-overlay-v2.d.ts +35 -0
- package/dist/ui/overlay/impl/plan-approval-overlay-v2.js +181 -0
- package/dist/ui/overlay/impl/project-edit-overlay-v2.d.ts +36 -0
- package/dist/ui/overlay/impl/project-edit-overlay-v2.js +195 -0
- package/dist/ui/overlay/impl/projects-overlay-v2.d.ts +1 -0
- package/dist/ui/overlay/impl/projects-overlay-v2.js +278 -44
- package/dist/ui/overlay/impl/reset-overlay-v2.d.ts +39 -0
- package/dist/ui/overlay/impl/reset-overlay-v2.js +107 -0
- package/dist/ui/overlay/impl/resume-overlay-v2.d.ts +60 -0
- package/dist/ui/overlay/impl/resume-overlay-v2.js +414 -0
- package/dist/ui/overlay/impl/session-mode-overlay-v2.d.ts +43 -0
- package/dist/ui/overlay/impl/session-mode-overlay-v2.js +124 -0
- package/dist/ui/overlay/impl/tasks-overlay-v2.d.ts +28 -0
- package/dist/ui/overlay/impl/tasks-overlay-v2.js +283 -0
- package/dist/ui/overlay/impl/team-overlay-v2.d.ts +86 -0
- package/dist/ui/overlay/impl/team-overlay-v2.js +692 -0
- package/dist/ui/overlay/impl/terminals-overlay-v2.d.ts +26 -0
- package/dist/ui/overlay/impl/terminals-overlay-v2.js +217 -0
- package/dist/ui/overlay/impl/tools-overlay-v2.js +3 -7
- package/dist/ui/overlay/impl/tutorial-overlay-v2.d.ts +30 -16
- package/dist/ui/overlay/impl/tutorial-overlay-v2.js +133 -956
- package/dist/ui/overlay/impl/workflow-overlay-v2.js +5 -1
- package/dist/ui/overlay/index.d.ts +20 -1
- package/dist/ui/overlay/index.js +19 -0
- package/dist/ui/overlay/types.d.ts +5 -0
- package/dist/ui/overlay-manager.d.ts +43 -0
- package/dist/ui/overlay-manager.js +238 -0
- package/dist/ui/overlays.js +4 -16
- package/dist/ui/permission-overlay.js +6 -5
- package/dist/ui/status-bar-controller.d.ts +33 -0
- package/dist/ui/status-bar-controller.js +99 -0
- package/dist/ui/subagent-renderer.js +3 -19
- package/dist/ui/terminal-autocomplete-utils.d.ts +23 -0
- package/dist/ui/terminal-autocomplete-utils.js +83 -0
- package/dist/ui/terminal-line-builders.d.ts +17 -0
- package/dist/ui/terminal-line-builders.js +42 -0
- package/dist/ui/terminal-render-item.d.ts +16 -0
- package/dist/ui/terminal-render-item.js +267 -0
- package/dist/ui/terminal-renderer.d.ts +7 -8
- package/dist/ui/terminal-renderer.js +7 -8
- package/dist/ui/terminal-types.d.ts +179 -0
- package/dist/ui/terminal-types.js +34 -0
- package/dist/ui/terminal-ui.d.ts +144 -276
- package/dist/ui/terminal-ui.js +384 -1861
- package/dist/ui/todo-zone.d.ts +19 -1
- package/dist/ui/todo-zone.js +71 -13
- package/dist/ui/tool-formatters.js +512 -1
- package/dist/ui/turn-metrics.d.ts +56 -0
- package/dist/ui/turn-metrics.js +75 -0
- package/dist/ui/types.d.ts +28 -0
- package/dist/ui/types.js +1 -0
- package/dist/ui/vscode-diff-ipc.d.ts +102 -0
- package/dist/ui/vscode-diff-ipc.js +385 -0
- package/dist/utils/credentials.d.ts +24 -5
- package/dist/utils/credentials.js +123 -9
- package/dist/utils/format-tokens.d.ts +13 -0
- package/dist/utils/format-tokens.js +18 -0
- package/dist/utils/git-config.d.ts +26 -0
- package/dist/utils/git-config.js +54 -0
- package/dist/utils/message-utils.d.ts +61 -0
- package/dist/utils/message-utils.js +72 -0
- package/dist/utils/model-tiers.d.ts +8 -1
- package/dist/utils/model-tiers.js +38 -16
- package/dist/utils/open-browser.d.ts +5 -0
- package/dist/utils/open-browser.js +32 -0
- package/dist/utils/path-safety.js +3 -2
- package/dist/utils/project-detection.d.ts +58 -0
- package/dist/utils/project-detection.js +424 -0
- package/dist/utils/project-memory.js +2 -1
- package/dist/utils/project-status.d.ts +2 -2
- package/dist/utils/startup-perf.d.ts +18 -0
- package/dist/utils/startup-perf.js +60 -0
- package/dist/utils/token-tracker.d.ts +62 -0
- package/dist/utils/token-tracker.js +150 -0
- package/dist/utils/token-types.d.ts +23 -0
- package/dist/utils/token-types.js +18 -0
- package/dist/utils/types/config-types.d.ts +32 -0
- package/dist/utils/types/config-types.js +8 -0
- package/dist/utils/update-checker.d.ts +28 -0
- package/dist/utils/update-checker.js +106 -0
- package/dist/utils/version.d.ts +7 -0
- package/dist/utils/version.js +10 -0
- package/dist/utils/vscode-detect.d.ts +39 -0
- package/dist/utils/vscode-detect.js +137 -0
- package/package.json +25 -12
- package/dist/commands/handler-types.d.ts +0 -68
- package/dist/commands/handler-types.js +0 -8
- package/dist/commands/handlers/agent-commands.d.ts +0 -13
- package/dist/commands/handlers/agent-commands.js +0 -305
- package/dist/commands/handlers/design-commands.d.ts +0 -15
- package/dist/commands/handlers/design-commands.js +0 -334
- package/dist/commands/handlers/index.d.ts +0 -20
- package/dist/commands/handlers/index.js +0 -43
- package/dist/commands/handlers/overlay-commands.d.ts +0 -21
- package/dist/commands/handlers/overlay-commands.js +0 -287
- package/dist/commands/handlers/project-commands.d.ts +0 -11
- package/dist/commands/handlers/project-commands.js +0 -167
- package/dist/commands/handlers/simple-commands.d.ts +0 -19
- package/dist/commands/handlers/simple-commands.js +0 -144
- package/dist/commands/registry.d.ts +0 -50
- package/dist/commands/registry.js +0 -75
- package/dist/index.old.d.ts +0 -7
- package/dist/index.old.js +0 -1014
- package/dist/repl.d.ts +0 -149
- package/dist/repl.js +0 -1151
- package/dist/templates/claude-md.d.ts +0 -7
- package/dist/templates/claude-md.js +0 -189
- package/dist/test-autocomplete.d.ts +0 -7
- package/dist/test-autocomplete.js +0 -85
- package/dist/test-tabbed-menu.d.ts +0 -7
- package/dist/test-tabbed-menu.js +0 -25
- package/dist/tool-selector.d.ts +0 -71
- package/dist/tool-selector.js +0 -184
- package/dist/ui/agents-overlay-v2.d.ts +0 -43
- package/dist/ui/agents-overlay-v2.js +0 -809
- package/dist/ui/agents-overlay.d.ts +0 -12
- package/dist/ui/agents-overlay.js +0 -863
- package/dist/ui/anchors-overlay.d.ts +0 -12
- package/dist/ui/anchors-overlay.js +0 -775
- package/dist/ui/arch-type-overlay.d.ts +0 -15
- package/dist/ui/arch-type-overlay.js +0 -201
- package/dist/ui/ask-user-overlay-v2.d.ts +0 -26
- package/dist/ui/ask-user-overlay-v2.js +0 -555
- package/dist/ui/ask-user-simple-overlay-v2.d.ts +0 -25
- package/dist/ui/ask-user-simple-overlay-v2.js +0 -215
- package/dist/ui/backlog-overlay.d.ts +0 -32
- package/dist/ui/backlog-overlay.js +0 -652
- package/dist/ui/commands-overlay-v2.d.ts +0 -33
- package/dist/ui/commands-overlay-v2.js +0 -441
- package/dist/ui/commands-overlay.d.ts +0 -16
- package/dist/ui/commands-overlay.js +0 -439
- package/dist/ui/config-overlay.d.ts +0 -35
- package/dist/ui/config-overlay.js +0 -707
- package/dist/ui/docs-overlay.d.ts +0 -17
- package/dist/ui/docs-overlay.js +0 -303
- package/dist/ui/footer-v2.d.ts +0 -222
- package/dist/ui/footer-v2.js +0 -1349
- package/dist/ui/help-overlay-v2.d.ts +0 -34
- package/dist/ui/help-overlay-v2.js +0 -309
- package/dist/ui/help-overlay.d.ts +0 -16
- package/dist/ui/help-overlay.js +0 -316
- package/dist/ui/init-overlay-v2.d.ts +0 -34
- package/dist/ui/init-overlay-v2.js +0 -600
- package/dist/ui/init-overlay.d.ts +0 -34
- package/dist/ui/init-overlay.js +0 -604
- package/dist/ui/input-prompt-v2.d.ts +0 -180
- package/dist/ui/input-prompt-v2.js +0 -999
- package/dist/ui/iteration-limit-overlay-v2.d.ts +0 -21
- package/dist/ui/iteration-limit-overlay-v2.js +0 -114
- package/dist/ui/keys-overlay-v2.d.ts +0 -41
- package/dist/ui/keys-overlay-v2.js +0 -248
- package/dist/ui/mascot-overlay-v2.d.ts +0 -41
- package/dist/ui/mascot-overlay-v2.js +0 -138
- package/dist/ui/mascot-overlay.d.ts +0 -21
- package/dist/ui/mascot-overlay.js +0 -146
- package/dist/ui/model-overlay-v2.d.ts +0 -49
- package/dist/ui/model-overlay-v2.js +0 -118
- package/dist/ui/model-overlay.d.ts +0 -27
- package/dist/ui/model-overlay.js +0 -221
- package/dist/ui/model-warning-overlay.d.ts +0 -30
- package/dist/ui/model-warning-overlay.js +0 -169
- package/dist/ui/new-overlay.d.ts +0 -34
- package/dist/ui/new-overlay.js +0 -604
- package/dist/ui/overlay/impl/init-overlay-v2.d.ts +0 -77
- package/dist/ui/overlay/impl/init-overlay-v2.js +0 -593
- package/dist/ui/overlay/overlay-types.d.ts +0 -128
- package/dist/ui/overlay/overlay-types.js +0 -22
- package/dist/ui/overlays/help-overlay-v2.d.ts +0 -28
- package/dist/ui/overlays/help-overlay-v2.js +0 -198
- package/dist/ui/overlays/index.d.ts +0 -11
- package/dist/ui/overlays/index.js +0 -11
- package/dist/ui/permission-overlay-v2.d.ts +0 -36
- package/dist/ui/permission-overlay-v2.js +0 -380
- package/dist/ui/projects-overlay.d.ts +0 -19
- package/dist/ui/projects-overlay.js +0 -484
- package/dist/ui/theme-overlay-v2.d.ts +0 -42
- package/dist/ui/theme-overlay-v2.js +0 -135
- package/dist/ui/theme-overlay.d.ts +0 -24
- package/dist/ui/theme-overlay.js +0 -127
- package/dist/ui/tools-overlay-v2.d.ts +0 -47
- package/dist/ui/tools-overlay-v2.js +0 -218
- package/dist/ui/tools-overlay.d.ts +0 -34
- package/dist/ui/tools-overlay.js +0 -230
- package/dist/ui/tutorial-overlay-v2.d.ts +0 -31
- package/dist/ui/tutorial-overlay-v2.js +0 -1035
- package/dist/ui/tutorial-overlay.d.ts +0 -11
- package/dist/ui/tutorial-overlay.js +0 -1034
- package/dist/ui/workflow-overlay.d.ts +0 -22
- package/dist/ui/workflow-overlay.js +0 -636
|
@@ -20,6 +20,7 @@ import { projectRepository, workItemRepository, documentRepository } from '../..
|
|
|
20
20
|
import { BacklogOverlayV2 } from './backlog-overlay-v2.js';
|
|
21
21
|
import { DocsOverlayV2 } from './docs-overlay-v2.js';
|
|
22
22
|
import { AnchorsOverlayV2 } from './anchors-overlay-v2.js';
|
|
23
|
+
import { ProjectEditOverlayV2 } from './project-edit-overlay-v2.js';
|
|
23
24
|
// =============================================================================
|
|
24
25
|
// Constants
|
|
25
26
|
// =============================================================================
|
|
@@ -550,7 +551,8 @@ export class WorkflowOverlayV2 extends BaseOverlayV2 {
|
|
|
550
551
|
const projectId = this.state.project?.id;
|
|
551
552
|
switch (command) {
|
|
552
553
|
case '/backlog':
|
|
553
|
-
|
|
554
|
+
// Note: teamAgentIds not available here, owner cycling disabled
|
|
555
|
+
return new BacklogOverlayV2(projectId, []);
|
|
554
556
|
case '/docs':
|
|
555
557
|
return new DocsOverlayV2(projectId);
|
|
556
558
|
case '/anchors':
|
|
@@ -615,6 +617,8 @@ export class WorkflowOverlayV2 extends BaseOverlayV2 {
|
|
|
615
617
|
this.refreshProject();
|
|
616
618
|
return this.rerender();
|
|
617
619
|
case 'edit':
|
|
620
|
+
// Push the edit overlay
|
|
621
|
+
return this.push(new ProjectEditOverlayV2(this.state.project));
|
|
618
622
|
case 'delete':
|
|
619
623
|
return this.close({
|
|
620
624
|
command: null,
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
export type { Overlay, RenderContext, OverlayContent, OverlayAction, KeyEvent, OverlayResolver, OverlayRenderState, } from './types.js';
|
|
7
7
|
export { isCloseWithResult, isCloseCancelled } from './types.js';
|
|
8
8
|
export { parseKeyEvent, matchesKey } from './key-utils.js';
|
|
9
|
-
export { HelpOverlayV2 } from './impl/help-overlay-v2.js';
|
|
9
|
+
export { HelpOverlayV2, type HelpOverlayV2Options } from './impl/help-overlay-v2.js';
|
|
10
10
|
export { ThemeOverlayV2, type ThemeOverlayOptions, type ThemeOverlayResult } from './impl/theme-overlay-v2.js';
|
|
11
11
|
export { ModelOverlayV2, type ModelOverlayV2Options, type ModelOverlayV2Result } from './impl/model-overlay-v2.js';
|
|
12
12
|
export { ToolsOverlayV2, type ToolsOverlayV2Options, type ToolsOverlayV2Result, type ToolInfo, type ToolParameter, type ToolPermissionInfo } from './impl/tools-overlay-v2.js';
|
|
@@ -21,6 +21,7 @@ export { DocsOverlayV2, type DocsOverlayV2Result } from './impl/docs-overlay-v2.
|
|
|
21
21
|
export { DocumentDetailOverlayV2, type DocumentDetailResult } from './impl/document-detail-overlay-v2.js';
|
|
22
22
|
export { AnchorsOverlayV2, type AnchorsOverlayV2Result } from './impl/anchors-overlay-v2.js';
|
|
23
23
|
export { ProjectsOverlayV2, type ProjectsOverlayV2Result } from './impl/projects-overlay-v2.js';
|
|
24
|
+
export { ProjectEditOverlayV2, type ProjectEditResult } from './impl/project-edit-overlay-v2.js';
|
|
24
25
|
export { ConfigOverlayV2, type ConfigOverlayV2Options, type ConfigOverlayV2Result } from './impl/config-overlay-v2.js';
|
|
25
26
|
export { AskUserSimpleOverlayV2, type AskUserSimpleOptionsV2, type AskUserSimpleResultV2 } from './impl/ask-user-simple-overlay-v2.js';
|
|
26
27
|
export { GuardrailOverlayV2, type GuardrailConfirmOptionsV2, type GuardrailConfirmResultV2 } from './impl/guardrail-overlay-v2.js';
|
|
@@ -31,3 +32,21 @@ export { NewProjectOverlayV2, type NewProjectResultV2 } from './impl/new-overlay
|
|
|
31
32
|
export { InitSetupOverlayV2, type InitSetupResultV2 } from './impl/init-setup-overlay-v2.js';
|
|
32
33
|
export { ArchTypeOverlayV2, type ArchTypeChoiceV2, type ArchDocType } from './impl/arch-type-overlay-v2.js';
|
|
33
34
|
export { DashboardOverlayV2, type DashboardOverlayV2Result } from './impl/dashboard-overlay-v2.js';
|
|
35
|
+
export { OnboardingWizardOverlayV2, type OnboardingWizardResult } from './impl/onboarding-wizard-overlay-v2.js';
|
|
36
|
+
export { ResumeOverlayV2, type ResumeOverlayV2Options, type ResumeOverlayV2Result, type SessionItem } from './impl/resume-overlay-v2.js';
|
|
37
|
+
export { PlanApprovalOverlayV2, type PlanApprovalOverlayOptions, type PlanApprovalResult, type PlanApprovalAction } from './impl/plan-approval-overlay-v2.js';
|
|
38
|
+
export { PermissionsOverlayV2, type PermissionsOverlayV2Options, type PermissionsOverlayV2Result } from './impl/permissions-overlay-v2.js';
|
|
39
|
+
export { ResetOverlayV2, type ResetOverlayV2Options, type ResetOverlayV2Result, type ResetOption } from './impl/reset-overlay-v2.js';
|
|
40
|
+
export { SessionModeOverlayV2, type SessionModeOverlayV2Options, type SessionModeOverlayV2Result, type SessionModeOption } from './impl/session-mode-overlay-v2.js';
|
|
41
|
+
export { TeamOverlayV2, type TeamOverlayV2Result } from './impl/team-overlay-v2.js';
|
|
42
|
+
export { CustomAgentFormOverlayV2, type CustomAgentFormOptions, type CustomAgentFormResult } from './impl/custom-agent-form-overlay-v2.js';
|
|
43
|
+
export { ArtifactOverlayV2, type ArtifactOverlayV2Result } from './impl/artifact-overlay-v2.js';
|
|
44
|
+
export { ArtifactDetailOverlayV2, type ArtifactDetailOverlayV2Result } from './impl/artifact-detail-overlay-v2.js';
|
|
45
|
+
export { GamesOverlayV2, type GamesOverlayV2Result, type GamesOverlayV2Options } from './impl/games-overlay-v2.js';
|
|
46
|
+
export { PendingOverlayV2, type PendingOverlayResult } from './impl/pending-overlay-v2.js';
|
|
47
|
+
export { BackgroundOverlayV2, type BackgroundOverlayResult, type BackgroundOverlayOptions } from './impl/background-overlay-v2.js';
|
|
48
|
+
export { FilterOverlayV2, type FilterOverlayV2Result, type FilterOverlayV2Config } from './impl/filter-overlay-v2.js';
|
|
49
|
+
export { ChangelogOverlayV2, type ChangelogOverlayV2Result } from './impl/changelog-overlay-v2.js';
|
|
50
|
+
export { NotificationsOverlayV2 } from './impl/notifications-overlay-v2.js';
|
|
51
|
+
export { MCPOverlayV2, type MCPOverlayV2Result } from './impl/mcp-overlay-v2.js';
|
|
52
|
+
export { DelegationsOverlayV2 } from './impl/delegations-overlay-v2.js';
|
package/dist/ui/overlay/index.js
CHANGED
|
@@ -23,6 +23,7 @@ export { DocsOverlayV2 } from './impl/docs-overlay-v2.js';
|
|
|
23
23
|
export { DocumentDetailOverlayV2 } from './impl/document-detail-overlay-v2.js';
|
|
24
24
|
export { AnchorsOverlayV2 } from './impl/anchors-overlay-v2.js';
|
|
25
25
|
export { ProjectsOverlayV2 } from './impl/projects-overlay-v2.js';
|
|
26
|
+
export { ProjectEditOverlayV2 } from './impl/project-edit-overlay-v2.js';
|
|
26
27
|
export { ConfigOverlayV2 } from './impl/config-overlay-v2.js';
|
|
27
28
|
export { AskUserSimpleOverlayV2 } from './impl/ask-user-simple-overlay-v2.js';
|
|
28
29
|
export { GuardrailOverlayV2 } from './impl/guardrail-overlay-v2.js';
|
|
@@ -33,3 +34,21 @@ export { NewProjectOverlayV2 } from './impl/new-overlay-v2.js';
|
|
|
33
34
|
export { InitSetupOverlayV2 } from './impl/init-setup-overlay-v2.js';
|
|
34
35
|
export { ArchTypeOverlayV2 } from './impl/arch-type-overlay-v2.js';
|
|
35
36
|
export { DashboardOverlayV2 } from './impl/dashboard-overlay-v2.js';
|
|
37
|
+
export { OnboardingWizardOverlayV2 } from './impl/onboarding-wizard-overlay-v2.js';
|
|
38
|
+
export { ResumeOverlayV2 } from './impl/resume-overlay-v2.js';
|
|
39
|
+
export { PlanApprovalOverlayV2 } from './impl/plan-approval-overlay-v2.js';
|
|
40
|
+
export { PermissionsOverlayV2 } from './impl/permissions-overlay-v2.js';
|
|
41
|
+
export { ResetOverlayV2 } from './impl/reset-overlay-v2.js';
|
|
42
|
+
export { SessionModeOverlayV2 } from './impl/session-mode-overlay-v2.js';
|
|
43
|
+
export { TeamOverlayV2 } from './impl/team-overlay-v2.js';
|
|
44
|
+
export { CustomAgentFormOverlayV2 } from './impl/custom-agent-form-overlay-v2.js';
|
|
45
|
+
export { ArtifactOverlayV2 } from './impl/artifact-overlay-v2.js';
|
|
46
|
+
export { ArtifactDetailOverlayV2 } from './impl/artifact-detail-overlay-v2.js';
|
|
47
|
+
export { GamesOverlayV2 } from './impl/games-overlay-v2.js';
|
|
48
|
+
export { PendingOverlayV2 } from './impl/pending-overlay-v2.js';
|
|
49
|
+
export { BackgroundOverlayV2 } from './impl/background-overlay-v2.js';
|
|
50
|
+
export { FilterOverlayV2 } from './impl/filter-overlay-v2.js';
|
|
51
|
+
export { ChangelogOverlayV2 } from './impl/changelog-overlay-v2.js';
|
|
52
|
+
export { NotificationsOverlayV2 } from './impl/notifications-overlay-v2.js';
|
|
53
|
+
export { MCPOverlayV2 } from './impl/mcp-overlay-v2.js';
|
|
54
|
+
export { DelegationsOverlayV2 } from './impl/delegations-overlay-v2.js';
|
|
@@ -26,6 +26,11 @@ export interface Overlay<TState = unknown, TResult = unknown> {
|
|
|
26
26
|
onMount?(): void | Promise<void>;
|
|
27
27
|
/** Called when overlay is unmounted. Cleanup. */
|
|
28
28
|
onUnmount?(): void;
|
|
29
|
+
/**
|
|
30
|
+
* Set callback for requesting re-render from async operations.
|
|
31
|
+
* Called by TerminalUI when mounting the overlay.
|
|
32
|
+
*/
|
|
33
|
+
setRenderCallback?(callback: () => void): void;
|
|
29
34
|
/** Get current state (for TerminalUI to access if needed) */
|
|
30
35
|
getState(): TState;
|
|
31
36
|
/**
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Overlay lifecycle manager.
|
|
3
|
+
*
|
|
4
|
+
* Extracted from TerminalUI — owns the overlay stack, resolvers,
|
|
5
|
+
* render state, and print buffer. Uses host interface for footer
|
|
6
|
+
* clear/render and console output.
|
|
7
|
+
*/
|
|
8
|
+
import type { PrintableItem } from './terminal-types.js';
|
|
9
|
+
import type { Overlay } from './overlay/index.js';
|
|
10
|
+
export interface OverlayManagerHost {
|
|
11
|
+
clearFooter(): void;
|
|
12
|
+
renderFooter(): void;
|
|
13
|
+
print(item: PrintableItem): void;
|
|
14
|
+
renderItemToConsole(item: PrintableItem): void;
|
|
15
|
+
}
|
|
16
|
+
export declare class OverlayManager {
|
|
17
|
+
private readonly stack;
|
|
18
|
+
private readonly resolvers;
|
|
19
|
+
private renderState;
|
|
20
|
+
private printBuffer;
|
|
21
|
+
private readonly host;
|
|
22
|
+
constructor(host: OverlayManagerHost);
|
|
23
|
+
hasActiveOverlay(): boolean;
|
|
24
|
+
getActiveOverlay(): Overlay | null;
|
|
25
|
+
showOverlay<TResult>(overlay: Overlay<unknown, TResult>): Promise<TResult | null>;
|
|
26
|
+
closeCurrentOverlay(result: unknown, cancelled: boolean): void;
|
|
27
|
+
private enterFullscreenOverlayMode;
|
|
28
|
+
private enterInlineOverlayMode;
|
|
29
|
+
private exitOverlayMode;
|
|
30
|
+
bufferItem(item: PrintableItem): void;
|
|
31
|
+
private flushPrintBuffer;
|
|
32
|
+
requestOverlayRender(): void;
|
|
33
|
+
private clearOverlayRender;
|
|
34
|
+
private renderOverlay;
|
|
35
|
+
private renderFullscreenOverlay;
|
|
36
|
+
private renderInlineOverlay;
|
|
37
|
+
processOverlayAction(action: {
|
|
38
|
+
type: 'none' | 'render' | 'close' | 'push' | 'pop';
|
|
39
|
+
result?: unknown;
|
|
40
|
+
cancelled?: boolean;
|
|
41
|
+
overlay?: Overlay;
|
|
42
|
+
}): void;
|
|
43
|
+
}
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Overlay lifecycle manager.
|
|
3
|
+
*
|
|
4
|
+
* Extracted from TerminalUI — owns the overlay stack, resolvers,
|
|
5
|
+
* render state, and print buffer. Uses host interface for footer
|
|
6
|
+
* clear/render and console output.
|
|
7
|
+
*/
|
|
8
|
+
import * as terminal from './terminal.js';
|
|
9
|
+
import { getVisibleLength } from './line-utils.js';
|
|
10
|
+
import { getStyles } from '../themes/index.js';
|
|
11
|
+
export class OverlayManager {
|
|
12
|
+
stack = [];
|
|
13
|
+
resolvers = new Map();
|
|
14
|
+
renderState = { lineCount: 0, maxLineCount: 0 };
|
|
15
|
+
printBuffer = [];
|
|
16
|
+
host;
|
|
17
|
+
constructor(host) {
|
|
18
|
+
this.host = host;
|
|
19
|
+
}
|
|
20
|
+
// ===========================================================================
|
|
21
|
+
// Queries
|
|
22
|
+
// ===========================================================================
|
|
23
|
+
hasActiveOverlay() {
|
|
24
|
+
return this.stack.length > 0;
|
|
25
|
+
}
|
|
26
|
+
getActiveOverlay() {
|
|
27
|
+
return this.stack.length > 0
|
|
28
|
+
? this.stack[this.stack.length - 1]
|
|
29
|
+
: null;
|
|
30
|
+
}
|
|
31
|
+
// ===========================================================================
|
|
32
|
+
// Show / Close
|
|
33
|
+
// ===========================================================================
|
|
34
|
+
async showOverlay(overlay) {
|
|
35
|
+
const isPushingOntoExisting = this.stack.length > 0;
|
|
36
|
+
if (isPushingOntoExisting) {
|
|
37
|
+
this.clearOverlayRender();
|
|
38
|
+
}
|
|
39
|
+
this.stack.push(overlay);
|
|
40
|
+
overlay.setRenderCallback?.(() => { this.requestOverlayRender(); });
|
|
41
|
+
await overlay.onMount?.();
|
|
42
|
+
if (!overlay.usesAlternateScreen) {
|
|
43
|
+
if (overlay.type === 'fullscreen') {
|
|
44
|
+
this.enterFullscreenOverlayMode();
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
this.enterInlineOverlayMode();
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
this.renderOverlay();
|
|
51
|
+
return new Promise((resolve) => {
|
|
52
|
+
this.resolvers.set(overlay.id, resolve);
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
closeCurrentOverlay(result, cancelled) {
|
|
56
|
+
const overlay = this.stack.pop();
|
|
57
|
+
if (!overlay)
|
|
58
|
+
return;
|
|
59
|
+
const usesAlternateScreen = overlay.usesAlternateScreen === true;
|
|
60
|
+
overlay.onUnmount?.();
|
|
61
|
+
const summary = (!cancelled && result !== null)
|
|
62
|
+
? overlay.getCloseSummary?.(result)
|
|
63
|
+
: null;
|
|
64
|
+
if (this.stack.length === 0) {
|
|
65
|
+
if (usesAlternateScreen) {
|
|
66
|
+
this.renderState = { lineCount: 0, maxLineCount: 0 };
|
|
67
|
+
this.flushPrintBuffer();
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
this.exitOverlayMode();
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
if (!usesAlternateScreen) {
|
|
75
|
+
this.clearOverlayRender();
|
|
76
|
+
}
|
|
77
|
+
this.renderState = { lineCount: 0, maxLineCount: 0 };
|
|
78
|
+
this.renderOverlay();
|
|
79
|
+
}
|
|
80
|
+
if (summary) {
|
|
81
|
+
this.host.print({ type: 'info', message: summary });
|
|
82
|
+
}
|
|
83
|
+
const resolver = this.resolvers.get(overlay.id);
|
|
84
|
+
resolver?.(result);
|
|
85
|
+
this.resolvers.delete(overlay.id);
|
|
86
|
+
}
|
|
87
|
+
// ===========================================================================
|
|
88
|
+
// Overlay mode transitions
|
|
89
|
+
// ===========================================================================
|
|
90
|
+
enterFullscreenOverlayMode() {
|
|
91
|
+
this.host.clearFooter();
|
|
92
|
+
process.stdout.write('\x1b[2J\x1b[H');
|
|
93
|
+
this.renderState = { lineCount: 0, maxLineCount: 0 };
|
|
94
|
+
}
|
|
95
|
+
enterInlineOverlayMode() {
|
|
96
|
+
this.host.clearFooter();
|
|
97
|
+
this.renderState = { lineCount: 0, maxLineCount: 0 };
|
|
98
|
+
}
|
|
99
|
+
exitOverlayMode() {
|
|
100
|
+
this.clearOverlayRender();
|
|
101
|
+
this.renderState = { lineCount: 0, maxLineCount: 0 };
|
|
102
|
+
this.flushPrintBuffer();
|
|
103
|
+
this.host.renderFooter();
|
|
104
|
+
}
|
|
105
|
+
// ===========================================================================
|
|
106
|
+
// Print buffer (items queued while overlay is active)
|
|
107
|
+
// ===========================================================================
|
|
108
|
+
bufferItem(item) {
|
|
109
|
+
this.printBuffer.push(item);
|
|
110
|
+
}
|
|
111
|
+
flushPrintBuffer() {
|
|
112
|
+
if (this.printBuffer.length === 0)
|
|
113
|
+
return;
|
|
114
|
+
for (const item of this.printBuffer) {
|
|
115
|
+
this.host.renderItemToConsole(item);
|
|
116
|
+
}
|
|
117
|
+
this.printBuffer = [];
|
|
118
|
+
}
|
|
119
|
+
// ===========================================================================
|
|
120
|
+
// Render
|
|
121
|
+
// ===========================================================================
|
|
122
|
+
requestOverlayRender() {
|
|
123
|
+
if (this.getActiveOverlay()) {
|
|
124
|
+
this.renderOverlay();
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
clearOverlayRender() {
|
|
128
|
+
const linesToClear = this.renderState.maxLineCount;
|
|
129
|
+
if (linesToClear > 0) {
|
|
130
|
+
process.stdout.write(`\x1b[${String(linesToClear)}A`);
|
|
131
|
+
process.stdout.write('\r');
|
|
132
|
+
process.stdout.write('\x1b[J');
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
renderOverlay() {
|
|
136
|
+
const overlay = this.getActiveOverlay();
|
|
137
|
+
if (!overlay)
|
|
138
|
+
return;
|
|
139
|
+
const termWidth = terminal.getTerminalWidth();
|
|
140
|
+
const termHeight = terminal.getTerminalHeight();
|
|
141
|
+
const s = getStyles();
|
|
142
|
+
const context = {
|
|
143
|
+
width: termWidth,
|
|
144
|
+
height: termHeight,
|
|
145
|
+
styles: s,
|
|
146
|
+
};
|
|
147
|
+
const content = overlay.render(context);
|
|
148
|
+
if (overlay.type === 'fullscreen') {
|
|
149
|
+
this.renderFullscreenOverlay(content, termWidth);
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
this.renderInlineOverlay(content, termWidth);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
renderFullscreenOverlay(content, termWidth) {
|
|
156
|
+
this.clearOverlayRender();
|
|
157
|
+
let physicalLines = 0;
|
|
158
|
+
for (const line of content.lines) {
|
|
159
|
+
const visibleLen = getVisibleLength(line);
|
|
160
|
+
physicalLines += Math.max(1, Math.ceil(visibleLen / termWidth));
|
|
161
|
+
}
|
|
162
|
+
const contentMinHeight = content.minHeight ?? 0;
|
|
163
|
+
const naturalHeight = Math.max(physicalLines, contentMinHeight);
|
|
164
|
+
this.renderState.maxLineCount = Math.max(this.renderState.maxLineCount, naturalHeight);
|
|
165
|
+
const targetHeight = this.renderState.maxLineCount;
|
|
166
|
+
const paddedLines = [...content.lines];
|
|
167
|
+
while (physicalLines < targetHeight) {
|
|
168
|
+
paddedLines.push('');
|
|
169
|
+
physicalLines++;
|
|
170
|
+
}
|
|
171
|
+
this.renderState.lineCount = physicalLines;
|
|
172
|
+
for (let i = 0; i < paddedLines.length; i++) {
|
|
173
|
+
process.stdout.write(paddedLines[i]);
|
|
174
|
+
if (i < paddedLines.length - 1) {
|
|
175
|
+
process.stdout.write('\n');
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
if (content.cursorPosition) {
|
|
179
|
+
const { line, column } = content.cursorPosition;
|
|
180
|
+
const linesFromEnd = paddedLines.length - 1 - line;
|
|
181
|
+
if (linesFromEnd > 0) {
|
|
182
|
+
process.stdout.write(`\x1b[${String(linesFromEnd)}A`);
|
|
183
|
+
}
|
|
184
|
+
process.stdout.write(`\x1b[${String(column)}G`);
|
|
185
|
+
}
|
|
186
|
+
terminal.showCursor();
|
|
187
|
+
}
|
|
188
|
+
renderInlineOverlay(content, termWidth) {
|
|
189
|
+
this.clearOverlayRender();
|
|
190
|
+
let physicalLines = 0;
|
|
191
|
+
for (const line of content.lines) {
|
|
192
|
+
const visibleLen = getVisibleLength(line);
|
|
193
|
+
physicalLines += Math.max(1, Math.ceil(visibleLen / termWidth));
|
|
194
|
+
}
|
|
195
|
+
const contentMinHeight = content.minHeight ?? 0;
|
|
196
|
+
const naturalHeight = Math.max(physicalLines, contentMinHeight);
|
|
197
|
+
this.renderState.maxLineCount = Math.max(this.renderState.maxLineCount, naturalHeight);
|
|
198
|
+
const targetHeight = this.renderState.maxLineCount;
|
|
199
|
+
const paddedLines = [...content.lines];
|
|
200
|
+
while (physicalLines < targetHeight) {
|
|
201
|
+
paddedLines.push('');
|
|
202
|
+
physicalLines++;
|
|
203
|
+
}
|
|
204
|
+
this.renderState.lineCount = physicalLines;
|
|
205
|
+
for (const line of paddedLines) {
|
|
206
|
+
process.stdout.write(line + '\n');
|
|
207
|
+
}
|
|
208
|
+
terminal.showCursor();
|
|
209
|
+
}
|
|
210
|
+
// ===========================================================================
|
|
211
|
+
// Action processing
|
|
212
|
+
// ===========================================================================
|
|
213
|
+
processOverlayAction(action) {
|
|
214
|
+
switch (action.type) {
|
|
215
|
+
case 'none':
|
|
216
|
+
break;
|
|
217
|
+
case 'render':
|
|
218
|
+
this.renderOverlay();
|
|
219
|
+
break;
|
|
220
|
+
case 'close':
|
|
221
|
+
if (action.cancelled) {
|
|
222
|
+
this.closeCurrentOverlay(null, true);
|
|
223
|
+
}
|
|
224
|
+
else {
|
|
225
|
+
this.closeCurrentOverlay(action.result ?? null, false);
|
|
226
|
+
}
|
|
227
|
+
break;
|
|
228
|
+
case 'push':
|
|
229
|
+
if (action.overlay) {
|
|
230
|
+
void this.showOverlay(action.overlay);
|
|
231
|
+
}
|
|
232
|
+
break;
|
|
233
|
+
case 'pop':
|
|
234
|
+
this.closeCurrentOverlay(null, true);
|
|
235
|
+
break;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
}
|
package/dist/ui/overlays.js
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
import chalk from 'chalk';
|
|
11
11
|
import * as terminal from './terminal.js';
|
|
12
12
|
import { getStyles } from '../themes/index.js';
|
|
13
|
+
import { renderProgressBar, truncate } from './base/index.js';
|
|
13
14
|
/**
|
|
14
15
|
* Show a confirmation dialog
|
|
15
16
|
*/
|
|
@@ -59,7 +60,7 @@ export function showPermissionPrompt(tool, args) {
|
|
|
59
60
|
terminal.writeLine('');
|
|
60
61
|
terminal.writeLine(' Tool: ' + s.primary(tool));
|
|
61
62
|
if (args) {
|
|
62
|
-
terminal.writeLine(' Args: ' + s.muted(args
|
|
63
|
+
terminal.writeLine(' Args: ' + s.muted(truncate(args, 60)));
|
|
63
64
|
}
|
|
64
65
|
terminal.writeLine('');
|
|
65
66
|
terminal.write(s.muted(' [') +
|
|
@@ -119,8 +120,9 @@ export function showPermissionPrompt(tool, args) {
|
|
|
119
120
|
* Show context window usage stats
|
|
120
121
|
*/
|
|
121
122
|
export function showContextStats(stats) {
|
|
123
|
+
const s = getStyles();
|
|
122
124
|
const pct = (stats.utilization * 100).toFixed(1);
|
|
123
|
-
const bar = renderProgressBar(stats.utilization, 30);
|
|
125
|
+
const bar = renderProgressBar(stats.utilization, 30, s);
|
|
124
126
|
terminal.writeLine('');
|
|
125
127
|
terminal.writeLine(chalk.bold('Context Usage'));
|
|
126
128
|
terminal.writeLine('');
|
|
@@ -130,20 +132,6 @@ export function showContextStats(stats) {
|
|
|
130
132
|
terminal.writeLine(` Turns: ${String(stats.turns)}`);
|
|
131
133
|
terminal.writeLine('');
|
|
132
134
|
}
|
|
133
|
-
/**
|
|
134
|
-
* Render a progress bar
|
|
135
|
-
*/
|
|
136
|
-
function renderProgressBar(value, width) {
|
|
137
|
-
const s = getStyles();
|
|
138
|
-
const filled = Math.round(value * width);
|
|
139
|
-
const empty = width - filled;
|
|
140
|
-
let color = s.success;
|
|
141
|
-
if (value > 0.8)
|
|
142
|
-
color = s.error;
|
|
143
|
-
else if (value > 0.6)
|
|
144
|
-
color = s.warning;
|
|
145
|
-
return color('█'.repeat(filled)) + s.muted('░'.repeat(empty));
|
|
146
|
-
}
|
|
147
135
|
/**
|
|
148
136
|
* Show session token usage
|
|
149
137
|
*/
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
import chalk from 'chalk';
|
|
8
8
|
import { getStyles } from '../themes/index.js';
|
|
9
9
|
import { InlineOverlay } from './base/inline-overlay.js';
|
|
10
|
+
import { truncate } from './base/index.js';
|
|
10
11
|
// =============================================================================
|
|
11
12
|
// Helpers (unchanged from original)
|
|
12
13
|
// =============================================================================
|
|
@@ -17,7 +18,7 @@ import { InlineOverlay } from './base/inline-overlay.js';
|
|
|
17
18
|
function formatValue(value, maxLen) {
|
|
18
19
|
if (typeof value === 'string') {
|
|
19
20
|
const singleLine = value.replace(/\r?\n|\r/g, '↵');
|
|
20
|
-
return singleLine
|
|
21
|
+
return truncate(singleLine, maxLen);
|
|
21
22
|
}
|
|
22
23
|
if (typeof value === 'boolean' || typeof value === 'number') {
|
|
23
24
|
return String(value);
|
|
@@ -75,7 +76,7 @@ function formatArgs(toolName, args, maxWidth) {
|
|
|
75
76
|
else {
|
|
76
77
|
lines.push(prefix);
|
|
77
78
|
const maxCmdLength = availableWidth * 3;
|
|
78
|
-
const truncatedCmd = cmd
|
|
79
|
+
const truncatedCmd = truncate(cmd, maxCmdLength);
|
|
79
80
|
lines.push(' ' + truncatedCmd);
|
|
80
81
|
}
|
|
81
82
|
return lines;
|
|
@@ -128,7 +129,7 @@ function formatArgs(toolName, args, maxWidth) {
|
|
|
128
129
|
const valueStr = formatValue(value, maxWidth - key.length - 6);
|
|
129
130
|
const line = `${key}: ${valueStr}`;
|
|
130
131
|
if (line.length > maxWidth - 4) {
|
|
131
|
-
lines.push(line
|
|
132
|
+
lines.push(truncate(line, maxWidth - 4));
|
|
132
133
|
}
|
|
133
134
|
else {
|
|
134
135
|
lines.push(line);
|
|
@@ -234,7 +235,7 @@ class PermissionOverlayImpl extends InlineOverlay {
|
|
|
234
235
|
const maxArgWidth = cols - 6;
|
|
235
236
|
const argLines = formatArgs(this.options.toolName, this.options.args, maxArgWidth);
|
|
236
237
|
for (const argLine of argLines) {
|
|
237
|
-
const safeArg = argLine
|
|
238
|
+
const safeArg = truncate(argLine, maxArgWidth);
|
|
238
239
|
lines.push(' ' + s.muted(safeArg));
|
|
239
240
|
}
|
|
240
241
|
lines.push('');
|
|
@@ -274,7 +275,7 @@ class PermissionOverlayImpl extends InlineOverlay {
|
|
|
274
275
|
const endLine = Math.min(this.state.detailScrollOffset + visibleLines, contentLines.length);
|
|
275
276
|
for (let i = this.state.detailScrollOffset; i < endLine; i++) {
|
|
276
277
|
const line = contentLines[i];
|
|
277
|
-
const safeLine = line
|
|
278
|
+
const safeLine = truncate(line, cols - 4);
|
|
278
279
|
lines.push(' ' + safeLine);
|
|
279
280
|
}
|
|
280
281
|
// Pad to fixed height
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Status bar navigation controller.
|
|
3
|
+
*
|
|
4
|
+
* Extracted from TerminalUI — manages the navigable status bar indicators
|
|
5
|
+
* (pending requests, background agents, terminals, notifications).
|
|
6
|
+
*/
|
|
7
|
+
import type { KeypressKey } from './terminal-types.js';
|
|
8
|
+
export interface StatusBarItem {
|
|
9
|
+
id: 'pending' | 'bg-agents' | 'terminals' | 'notifications' | 'mcp';
|
|
10
|
+
action: string;
|
|
11
|
+
}
|
|
12
|
+
export interface StatusBarHost {
|
|
13
|
+
requestRender(): void;
|
|
14
|
+
emit(event: string, ...args: unknown[]): void;
|
|
15
|
+
}
|
|
16
|
+
export declare class StatusBarController {
|
|
17
|
+
navActive: boolean;
|
|
18
|
+
selectedIndex: number;
|
|
19
|
+
backgroundAgentCount: number;
|
|
20
|
+
mcpLoading: boolean;
|
|
21
|
+
mcpToolCount: number;
|
|
22
|
+
private readonly host;
|
|
23
|
+
constructor(host: StatusBarHost);
|
|
24
|
+
/** Set background agent count (called by REPL to keep UI in sync). */
|
|
25
|
+
setBackgroundAgentCount(count: number): void;
|
|
26
|
+
/** Set MCP loading state (shown while MCP servers connect in background). */
|
|
27
|
+
setMCPLoading(loading: boolean, toolCount?: number): void;
|
|
28
|
+
/** Returns navigable status bar indicators based on current state. */
|
|
29
|
+
getItems(): StatusBarItem[];
|
|
30
|
+
/** Handle keys while in status bar navigation mode. */
|
|
31
|
+
handleKey(_str: string, key: KeypressKey): void;
|
|
32
|
+
exitNav(): void;
|
|
33
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Status bar navigation controller.
|
|
3
|
+
*
|
|
4
|
+
* Extracted from TerminalUI — manages the navigable status bar indicators
|
|
5
|
+
* (pending requests, background agents, terminals, notifications).
|
|
6
|
+
*/
|
|
7
|
+
import { getPendingRequestsManager } from '../multi-agent/index.js';
|
|
8
|
+
import { getSessionRegistry } from '../multi-agent/session-registry.js';
|
|
9
|
+
import { getNotificationManager } from '../multi-agent/notification-manager.js';
|
|
10
|
+
export class StatusBarController {
|
|
11
|
+
navActive = false;
|
|
12
|
+
selectedIndex = 0;
|
|
13
|
+
backgroundAgentCount = 0;
|
|
14
|
+
mcpLoading = false;
|
|
15
|
+
mcpToolCount = 0;
|
|
16
|
+
host;
|
|
17
|
+
constructor(host) {
|
|
18
|
+
this.host = host;
|
|
19
|
+
}
|
|
20
|
+
/** Set background agent count (called by REPL to keep UI in sync). */
|
|
21
|
+
setBackgroundAgentCount(count) {
|
|
22
|
+
this.backgroundAgentCount = count;
|
|
23
|
+
this.host.requestRender();
|
|
24
|
+
}
|
|
25
|
+
/** Set MCP loading state (shown while MCP servers connect in background). */
|
|
26
|
+
setMCPLoading(loading, toolCount) {
|
|
27
|
+
this.mcpLoading = loading;
|
|
28
|
+
if (toolCount !== undefined)
|
|
29
|
+
this.mcpToolCount = toolCount;
|
|
30
|
+
this.host.requestRender();
|
|
31
|
+
}
|
|
32
|
+
/** Returns navigable status bar indicators based on current state. */
|
|
33
|
+
getItems() {
|
|
34
|
+
const items = [];
|
|
35
|
+
const notifManager = getNotificationManager();
|
|
36
|
+
if (notifManager && notifManager.getUnreadCount() > 0) {
|
|
37
|
+
items.push({ id: 'notifications', action: 'notifications' });
|
|
38
|
+
}
|
|
39
|
+
if (getPendingRequestsManager().getCount() > 0) {
|
|
40
|
+
items.push({ id: 'pending', action: 'pending' });
|
|
41
|
+
}
|
|
42
|
+
if (this.backgroundAgentCount > 0) {
|
|
43
|
+
items.push({ id: 'bg-agents', action: 'bg' });
|
|
44
|
+
}
|
|
45
|
+
const registry = getSessionRegistry();
|
|
46
|
+
if (registry && registry.getProjectScopedSessionCount() > 1) {
|
|
47
|
+
items.push({ id: 'terminals', action: 'terminals' });
|
|
48
|
+
}
|
|
49
|
+
if (this.mcpLoading) {
|
|
50
|
+
items.push({ id: 'mcp', action: 'mcp' });
|
|
51
|
+
}
|
|
52
|
+
return items;
|
|
53
|
+
}
|
|
54
|
+
/** Handle keys while in status bar navigation mode. */
|
|
55
|
+
handleKey(_str, key) {
|
|
56
|
+
const items = this.getItems();
|
|
57
|
+
if (items.length === 0) {
|
|
58
|
+
this.exitNav();
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
if (key.name === 'right' || key.name === 'down') {
|
|
62
|
+
if (this.selectedIndex < items.length - 1) {
|
|
63
|
+
this.selectedIndex++;
|
|
64
|
+
this.host.requestRender();
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
else if (key.name === 'left') {
|
|
68
|
+
if (this.selectedIndex > 0) {
|
|
69
|
+
this.selectedIndex--;
|
|
70
|
+
this.host.requestRender();
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
else if (key.name === 'up') {
|
|
74
|
+
if (this.selectedIndex > 0) {
|
|
75
|
+
this.selectedIndex--;
|
|
76
|
+
this.host.requestRender();
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
this.exitNav();
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
else if (key.name === 'return') {
|
|
83
|
+
const item = items[this.selectedIndex];
|
|
84
|
+
this.exitNav();
|
|
85
|
+
this.host.emit('command', item.action, '');
|
|
86
|
+
}
|
|
87
|
+
else if (key.name === 'escape') {
|
|
88
|
+
this.exitNav();
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
this.exitNav();
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
exitNav() {
|
|
95
|
+
this.navActive = false;
|
|
96
|
+
this.selectedIndex = 0;
|
|
97
|
+
this.host.requestRender();
|
|
98
|
+
}
|
|
99
|
+
}
|