@compilr-dev/cli 0.5.0 → 0.5.2
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/LICENSE +108 -0
- package/README.md +237 -69
- 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 +286 -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 +295 -31
- 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 +6 -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 +5 -2
- package/dist/repl-v2.d.ts +401 -2
- package/dist/repl-v2.js +2588 -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 +113 -0
- package/dist/tool-names.js +239 -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.d.ts +2 -2
- package/dist/tools/backlog.js +1 -1
- package/dist/tools/db-tools.d.ts +13 -61
- package/dist/tools/db-tools.js +12 -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/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/platform-adapter.d.ts +35 -0
- package/dist/tools/platform-adapter.js +404 -0
- package/dist/tools/project-db.d.ts +5 -73
- package/dist/tools/project-db.js +5 -336
- package/dist/tools.d.ts +67 -2
- package/dist/tools.js +240 -48
- 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 +52 -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.d.ts +1 -0
- package/dist/ui/overlay/impl/workflow-overlay-v2.js +10 -4
- 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 +696 -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 +27 -13
- 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/tools/anchor-tools.d.ts +0 -31
- package/dist/tools/anchor-tools.js +0 -255
- package/dist/tools/backlog-wrappers.d.ts +0 -54
- package/dist/tools/backlog-wrappers.js +0 -338
- package/dist/tools/document-db.d.ts +0 -43
- package/dist/tools/document-db.js +0 -220
- package/dist/tools/workitem-db.d.ts +0 -103
- package/dist/tools/workitem-db.js +0 -549
- 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
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Iteration Limit Overlay (Refactored)
|
|
3
|
-
*
|
|
4
|
-
* Modal overlay shown when the agent reaches its iteration limit.
|
|
5
|
-
* Uses InlineOverlay base class for consistent lifecycle management.
|
|
6
|
-
*/
|
|
7
|
-
export type IterationLimitResult = {
|
|
8
|
-
continue: true;
|
|
9
|
-
additionalIterations: number;
|
|
10
|
-
} | {
|
|
11
|
-
continue: false;
|
|
12
|
-
};
|
|
13
|
-
export interface IterationLimitOverlayOptions {
|
|
14
|
-
iteration: number;
|
|
15
|
-
maxIterations: number;
|
|
16
|
-
toolCallCount: number;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Show the iteration limit overlay
|
|
20
|
-
*/
|
|
21
|
-
export declare function showIterationLimitOverlay(options: IterationLimitOverlayOptions): Promise<IterationLimitResult>;
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Iteration Limit Overlay (Refactored)
|
|
3
|
-
*
|
|
4
|
-
* Modal overlay shown when the agent reaches its iteration limit.
|
|
5
|
-
* Uses InlineOverlay base class for consistent lifecycle management.
|
|
6
|
-
*/
|
|
7
|
-
import chalk from 'chalk';
|
|
8
|
-
import { getStyles } from '../themes/index.js';
|
|
9
|
-
import { InlineOverlay } from './base/inline-overlay.js';
|
|
10
|
-
// =============================================================================
|
|
11
|
-
// Constants
|
|
12
|
-
// =============================================================================
|
|
13
|
-
const OPTIONS = [
|
|
14
|
-
{ label: 'Yes, continue (+10 iterations)', key: '1', result: { continue: true, additionalIterations: 10 } },
|
|
15
|
-
{ label: 'Yes, continue (+20 iterations)', key: '2', result: { continue: true, additionalIterations: 20 } },
|
|
16
|
-
{ label: 'No, stop here', key: 'n', result: { continue: false } },
|
|
17
|
-
];
|
|
18
|
-
// =============================================================================
|
|
19
|
-
// Overlay Implementation
|
|
20
|
-
// =============================================================================
|
|
21
|
-
class IterationLimitOverlayImpl extends InlineOverlay {
|
|
22
|
-
options;
|
|
23
|
-
constructor(options) {
|
|
24
|
-
super();
|
|
25
|
-
this.options = options;
|
|
26
|
-
}
|
|
27
|
-
getInitialState() {
|
|
28
|
-
return {
|
|
29
|
-
selectedIndex: 0, // Default to "Yes, continue (+10)"
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
render() {
|
|
33
|
-
const s = getStyles();
|
|
34
|
-
const lines = [];
|
|
35
|
-
const cols = this.getTerminalWidth();
|
|
36
|
-
const border = s.muted('─'.repeat(Math.max(1, cols - 1)));
|
|
37
|
-
// Header
|
|
38
|
-
lines.push(border);
|
|
39
|
-
lines.push(' ' + s.warning('⚠') + ' ' + chalk.bold('Iteration Limit Reached'));
|
|
40
|
-
lines.push('');
|
|
41
|
-
// Stats
|
|
42
|
-
lines.push(' Iterations: ' + s.primary(String(this.options.iteration)) + ' / ' + s.muted(String(this.options.maxIterations)));
|
|
43
|
-
lines.push(' Tool calls: ' + s.primary(String(this.options.toolCallCount)));
|
|
44
|
-
lines.push('');
|
|
45
|
-
lines.push(' ' + s.muted('The agent has reached its iteration limit.'));
|
|
46
|
-
lines.push(' ' + s.muted('Would you like to continue?'));
|
|
47
|
-
lines.push('');
|
|
48
|
-
// Options
|
|
49
|
-
for (let i = 0; i < OPTIONS.length; i++) {
|
|
50
|
-
const isCursor = this.state.selectedIndex === i;
|
|
51
|
-
const prefix = isCursor ? ' ❯ ' : ' ';
|
|
52
|
-
const key = `[${OPTIONS[i].key}] `;
|
|
53
|
-
if (isCursor) {
|
|
54
|
-
lines.push(s.primary(prefix + key + OPTIONS[i].label));
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
lines.push(s.muted(prefix + key + OPTIONS[i].label));
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
// Footer
|
|
61
|
-
lines.push('');
|
|
62
|
-
lines.push(s.muted(' ↑↓ Navigate · Enter Select · 1/2/n Quick select'));
|
|
63
|
-
// Bottom border
|
|
64
|
-
lines.push(border);
|
|
65
|
-
return lines;
|
|
66
|
-
}
|
|
67
|
-
handleKey(data) {
|
|
68
|
-
// Ctrl+C or Escape = stop
|
|
69
|
-
if (this.isCtrlCKey(data) || this.isEscapeKey(data)) {
|
|
70
|
-
return { type: 'close', result: { continue: false } };
|
|
71
|
-
}
|
|
72
|
-
// Quick keys
|
|
73
|
-
const key = data.toString();
|
|
74
|
-
if (key === '1') {
|
|
75
|
-
return { type: 'close', result: { continue: true, additionalIterations: 10 } };
|
|
76
|
-
}
|
|
77
|
-
if (key === '2') {
|
|
78
|
-
return { type: 'close', result: { continue: true, additionalIterations: 20 } };
|
|
79
|
-
}
|
|
80
|
-
if (key.toLowerCase() === 'n') {
|
|
81
|
-
return { type: 'close', result: { continue: false } };
|
|
82
|
-
}
|
|
83
|
-
// Arrow navigation
|
|
84
|
-
if (this.isUpArrowKey(data)) {
|
|
85
|
-
this.state.selectedIndex = Math.max(0, this.state.selectedIndex - 1);
|
|
86
|
-
return { type: 'continue' };
|
|
87
|
-
}
|
|
88
|
-
if (this.isDownArrowKey(data)) {
|
|
89
|
-
this.state.selectedIndex = Math.min(OPTIONS.length - 1, this.state.selectedIndex + 1);
|
|
90
|
-
return { type: 'continue' };
|
|
91
|
-
}
|
|
92
|
-
if (this.isEnterKey(data)) {
|
|
93
|
-
return { type: 'close', result: OPTIONS[this.state.selectedIndex].result };
|
|
94
|
-
}
|
|
95
|
-
return { type: 'continue' };
|
|
96
|
-
}
|
|
97
|
-
getCleanupSummary(result) {
|
|
98
|
-
const s = getStyles();
|
|
99
|
-
if (result.continue) {
|
|
100
|
-
return s.muted('Iteration limit: ') + s.success(`Continuing (+${String(result.additionalIterations)})`);
|
|
101
|
-
}
|
|
102
|
-
return s.muted('Iteration limit: ') + s.error('Stopped');
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
// =============================================================================
|
|
106
|
-
// Main Export
|
|
107
|
-
// =============================================================================
|
|
108
|
-
/**
|
|
109
|
-
* Show the iteration limit overlay
|
|
110
|
-
*/
|
|
111
|
-
export async function showIterationLimitOverlay(options) {
|
|
112
|
-
const overlay = new IterationLimitOverlayImpl(options);
|
|
113
|
-
return overlay.show();
|
|
114
|
-
}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Keys Overlay V2
|
|
3
|
-
*
|
|
4
|
-
* API key management overlay using the new Overlay interface.
|
|
5
|
-
* Shows status of all providers and allows setting/deleting keys.
|
|
6
|
-
*
|
|
7
|
-
* Features:
|
|
8
|
-
* - List all providers with key status
|
|
9
|
-
* - Set new API keys
|
|
10
|
-
* - Delete stored keys
|
|
11
|
-
* - Works with TerminalUI's overlay management
|
|
12
|
-
*/
|
|
13
|
-
import { BaseOverlayV2 } from './base/index.js';
|
|
14
|
-
import { getAllProviderStatuses } from '../utils/credentials.js';
|
|
15
|
-
import type { RenderContext, OverlayAction, KeyEvent } from './overlay/index.js';
|
|
16
|
-
export interface KeysOverlayV2Result {
|
|
17
|
-
/** Whether any keys were changed */
|
|
18
|
-
changed: boolean;
|
|
19
|
-
}
|
|
20
|
-
interface KeysState {
|
|
21
|
-
selectedIndex: number;
|
|
22
|
-
changed: boolean;
|
|
23
|
-
providers: ReturnType<typeof getAllProviderStatuses>;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Keys overlay using the new Overlay interface.
|
|
27
|
-
* Manages API keys for LLM providers.
|
|
28
|
-
*/
|
|
29
|
-
export declare class KeysOverlayV2 extends BaseOverlayV2<KeysState, KeysOverlayV2Result> {
|
|
30
|
-
readonly type: "inline";
|
|
31
|
-
readonly id = "keys-overlay-v2";
|
|
32
|
-
private readonly screenStack;
|
|
33
|
-
constructor();
|
|
34
|
-
protected renderContent(_context: RenderContext): string[];
|
|
35
|
-
render(context: RenderContext): {
|
|
36
|
-
lines: string[];
|
|
37
|
-
minHeight?: number;
|
|
38
|
-
};
|
|
39
|
-
handleKey(key: KeyEvent): OverlayAction<KeysOverlayV2Result>;
|
|
40
|
-
}
|
|
41
|
-
export {};
|
|
@@ -1,248 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Keys Overlay V2
|
|
3
|
-
*
|
|
4
|
-
* API key management overlay using the new Overlay interface.
|
|
5
|
-
* Shows status of all providers and allows setting/deleting keys.
|
|
6
|
-
*
|
|
7
|
-
* Features:
|
|
8
|
-
* - List all providers with key status
|
|
9
|
-
* - Set new API keys
|
|
10
|
-
* - Delete stored keys
|
|
11
|
-
* - Works with TerminalUI's overlay management
|
|
12
|
-
*/
|
|
13
|
-
import * as terminal from './terminal.js';
|
|
14
|
-
import { BaseOverlayV2, BaseScreen, ScreenStack, stay, pushScreen, popScreen, closeOverlay, isEscape, isEnter, isCtrlC, isClose, isNavigateUp, isNavigateDown, isD, renderBorder, } from './base/index.js';
|
|
15
|
-
import { InputFeature } from './features/index.js';
|
|
16
|
-
import { getAllProviderStatuses, setApiKey, deleteApiKey, } from '../utils/credentials.js';
|
|
17
|
-
// =============================================================================
|
|
18
|
-
// Screens
|
|
19
|
-
// =============================================================================
|
|
20
|
-
/**
|
|
21
|
-
* List screen - shows all providers with their key status
|
|
22
|
-
*/
|
|
23
|
-
class ListScreen extends BaseScreen {
|
|
24
|
-
state;
|
|
25
|
-
getStyles;
|
|
26
|
-
getWidth;
|
|
27
|
-
constructor(state, getStyles, getWidth) {
|
|
28
|
-
super();
|
|
29
|
-
this.state = state;
|
|
30
|
-
this.getStyles = getStyles;
|
|
31
|
-
this.getWidth = getWidth;
|
|
32
|
-
}
|
|
33
|
-
render() {
|
|
34
|
-
const s = this.getStyles();
|
|
35
|
-
const cols = this.getWidth();
|
|
36
|
-
const border = renderBorder(cols, s);
|
|
37
|
-
const lines = [];
|
|
38
|
-
// Header
|
|
39
|
-
lines.push(border);
|
|
40
|
-
lines.push(` ${s.primaryBold('API Keys')}`);
|
|
41
|
-
lines.push('');
|
|
42
|
-
// Provider list
|
|
43
|
-
for (let i = 0; i < this.state.providers.length; i++) {
|
|
44
|
-
const p = this.state.providers[i];
|
|
45
|
-
const isCursor = this.state.selectedIndex === i;
|
|
46
|
-
const prefix = isCursor ? s.primary(' > ') : ' ';
|
|
47
|
-
// Status indicator
|
|
48
|
-
let status;
|
|
49
|
-
if (p.provider === 'ollama') {
|
|
50
|
-
status = s.secondary('Local (no key needed)');
|
|
51
|
-
}
|
|
52
|
-
else if (p.hasKey) {
|
|
53
|
-
const source = p.fromEnv ? s.muted(' (env)') : '';
|
|
54
|
-
status = s.success(`● ${p.masked ?? '***'}`) + source;
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
status = s.warning('○ Not set');
|
|
58
|
-
}
|
|
59
|
-
// Provider name
|
|
60
|
-
const name = isCursor ? s.primary(p.name.padEnd(18)) : s.muted(p.name.padEnd(18));
|
|
61
|
-
lines.push(`${prefix}${name} ${status}`);
|
|
62
|
-
}
|
|
63
|
-
// Footer
|
|
64
|
-
lines.push('');
|
|
65
|
-
lines.push(border);
|
|
66
|
-
lines.push(` ${s.muted('up/down/jk Navigate . Enter Edit . d Delete . q/Esc Close')}`);
|
|
67
|
-
lines.push(border);
|
|
68
|
-
return lines;
|
|
69
|
-
}
|
|
70
|
-
handleKey(data) {
|
|
71
|
-
// Close keys
|
|
72
|
-
if (isCtrlC(data) || isClose(data)) {
|
|
73
|
-
return closeOverlay({ changed: this.state.changed });
|
|
74
|
-
}
|
|
75
|
-
// Navigation up
|
|
76
|
-
if (isNavigateUp(data)) {
|
|
77
|
-
if (this.state.selectedIndex > 0) {
|
|
78
|
-
this.state.selectedIndex--;
|
|
79
|
-
return stay();
|
|
80
|
-
}
|
|
81
|
-
return stay(false);
|
|
82
|
-
}
|
|
83
|
-
// Navigation down
|
|
84
|
-
if (isNavigateDown(data)) {
|
|
85
|
-
if (this.state.selectedIndex < this.state.providers.length - 1) {
|
|
86
|
-
this.state.selectedIndex++;
|
|
87
|
-
return stay();
|
|
88
|
-
}
|
|
89
|
-
return stay(false);
|
|
90
|
-
}
|
|
91
|
-
// Enter - edit selected provider
|
|
92
|
-
if (isEnter(data)) {
|
|
93
|
-
const selected = this.state.providers[this.state.selectedIndex];
|
|
94
|
-
if (selected.provider !== 'ollama') {
|
|
95
|
-
return pushScreen(new InputScreen(this.state, this.getStyles, this.getWidth, selected.provider));
|
|
96
|
-
}
|
|
97
|
-
return stay(false);
|
|
98
|
-
}
|
|
99
|
-
// Delete key
|
|
100
|
-
if (isD(data)) {
|
|
101
|
-
const selected = this.state.providers[this.state.selectedIndex];
|
|
102
|
-
if (selected.provider !== 'ollama' && selected.hasKey && !selected.fromEnv) {
|
|
103
|
-
deleteApiKey(selected.provider);
|
|
104
|
-
this.state.providers = getAllProviderStatuses();
|
|
105
|
-
this.state.changed = true;
|
|
106
|
-
return stay();
|
|
107
|
-
}
|
|
108
|
-
return stay(false);
|
|
109
|
-
}
|
|
110
|
-
return stay(false);
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* Input screen - text input for entering API key
|
|
115
|
-
*/
|
|
116
|
-
class InputScreen extends BaseScreen {
|
|
117
|
-
state;
|
|
118
|
-
getStyles;
|
|
119
|
-
getWidth;
|
|
120
|
-
provider;
|
|
121
|
-
input;
|
|
122
|
-
constructor(state, getStyles, getWidth, provider) {
|
|
123
|
-
super();
|
|
124
|
-
this.state = state;
|
|
125
|
-
this.getStyles = getStyles;
|
|
126
|
-
this.getWidth = getWidth;
|
|
127
|
-
this.provider = provider;
|
|
128
|
-
this.input = new InputFeature({ placeholder: 'Paste or type your API key...' });
|
|
129
|
-
}
|
|
130
|
-
onEnter() {
|
|
131
|
-
terminal.showCursor();
|
|
132
|
-
}
|
|
133
|
-
onExit() {
|
|
134
|
-
terminal.hideCursor();
|
|
135
|
-
}
|
|
136
|
-
render() {
|
|
137
|
-
const s = this.getStyles();
|
|
138
|
-
const cols = this.getWidth();
|
|
139
|
-
const border = renderBorder(cols, s);
|
|
140
|
-
const lines = [];
|
|
141
|
-
const providerInfo = this.state.providers.find(p => p.provider === this.provider);
|
|
142
|
-
// Header
|
|
143
|
-
lines.push(border);
|
|
144
|
-
lines.push(` ${s.primaryBold('API Keys')}`);
|
|
145
|
-
lines.push('');
|
|
146
|
-
// Input prompt
|
|
147
|
-
lines.push(` Set API key for ${s.primary(providerInfo?.name ?? this.provider)}:`);
|
|
148
|
-
lines.push('');
|
|
149
|
-
lines.push(' ' + this.input.render(s));
|
|
150
|
-
lines.push('');
|
|
151
|
-
// Help text
|
|
152
|
-
if (providerInfo?.keyUrl) {
|
|
153
|
-
lines.push(s.muted(` Get key: ${providerInfo.keyUrl}`));
|
|
154
|
-
lines.push('');
|
|
155
|
-
}
|
|
156
|
-
// Footer
|
|
157
|
-
lines.push(border);
|
|
158
|
-
lines.push(` ${s.muted('Enter Save . Esc Cancel')}`);
|
|
159
|
-
lines.push(border);
|
|
160
|
-
return lines;
|
|
161
|
-
}
|
|
162
|
-
handleKey(data) {
|
|
163
|
-
// Ctrl+C closes overlay
|
|
164
|
-
if (isCtrlC(data)) {
|
|
165
|
-
return closeOverlay({ changed: this.state.changed });
|
|
166
|
-
}
|
|
167
|
-
// Escape goes back to list
|
|
168
|
-
if (isEscape(data)) {
|
|
169
|
-
return popScreen();
|
|
170
|
-
}
|
|
171
|
-
// Enter saves the key
|
|
172
|
-
if (isEnter(data)) {
|
|
173
|
-
const value = this.input.trimmedValue;
|
|
174
|
-
if (value) {
|
|
175
|
-
setApiKey(this.provider, value);
|
|
176
|
-
this.state.providers = getAllProviderStatuses();
|
|
177
|
-
this.state.changed = true;
|
|
178
|
-
}
|
|
179
|
-
return popScreen();
|
|
180
|
-
}
|
|
181
|
-
// Let InputFeature handle the key
|
|
182
|
-
const result = this.input.handleKey(data);
|
|
183
|
-
if (result.handled) {
|
|
184
|
-
return stay(result.render);
|
|
185
|
-
}
|
|
186
|
-
return stay(false);
|
|
187
|
-
}
|
|
188
|
-
getMinHeight() {
|
|
189
|
-
return 12;
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
// =============================================================================
|
|
193
|
-
// Keys Overlay V2 Class
|
|
194
|
-
// =============================================================================
|
|
195
|
-
/**
|
|
196
|
-
* Keys overlay using the new Overlay interface.
|
|
197
|
-
* Manages API keys for LLM providers.
|
|
198
|
-
*/
|
|
199
|
-
export class KeysOverlayV2 extends BaseOverlayV2 {
|
|
200
|
-
type = 'inline';
|
|
201
|
-
id = 'keys-overlay-v2';
|
|
202
|
-
screenStack;
|
|
203
|
-
constructor() {
|
|
204
|
-
const providers = getAllProviderStatuses();
|
|
205
|
-
const initialState = {
|
|
206
|
-
selectedIndex: 0,
|
|
207
|
-
changed: false,
|
|
208
|
-
providers,
|
|
209
|
-
};
|
|
210
|
-
super(initialState);
|
|
211
|
-
this.minHeight = 14;
|
|
212
|
-
this.screenStack = new ScreenStack();
|
|
213
|
-
this.screenStack.push(new ListScreen(this.state, () => this.getStyles(), () => this.termWidth));
|
|
214
|
-
}
|
|
215
|
-
renderContent(_context) {
|
|
216
|
-
const screen = this.screenStack.current();
|
|
217
|
-
return screen?.render() ?? [];
|
|
218
|
-
}
|
|
219
|
-
render(context) {
|
|
220
|
-
this.styles = context.styles;
|
|
221
|
-
this.termWidth = context.width;
|
|
222
|
-
const lines = this.renderContent(context);
|
|
223
|
-
const screen = this.screenStack.current();
|
|
224
|
-
const screenMinHeight = screen?.getMinHeight?.() ?? 0;
|
|
225
|
-
const effectiveMinHeight = Math.max(this.minHeight, screenMinHeight);
|
|
226
|
-
return effectiveMinHeight > 0 ? { lines, minHeight: effectiveMinHeight } : { lines };
|
|
227
|
-
}
|
|
228
|
-
handleKey(key) {
|
|
229
|
-
const data = key.raw;
|
|
230
|
-
const screen = this.screenStack.current();
|
|
231
|
-
if (!screen) {
|
|
232
|
-
return this.close({ changed: this.state.changed });
|
|
233
|
-
}
|
|
234
|
-
const result = screen.handleKey(data);
|
|
235
|
-
switch (result.action) {
|
|
236
|
-
case 'stay':
|
|
237
|
-
return result.render ? this.rerender() : this.noAction();
|
|
238
|
-
case 'push':
|
|
239
|
-
this.screenStack.push(result.screen);
|
|
240
|
-
return this.rerender();
|
|
241
|
-
case 'pop':
|
|
242
|
-
this.screenStack.pop();
|
|
243
|
-
return this.rerender();
|
|
244
|
-
case 'close':
|
|
245
|
-
return this.close(result.result);
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Mascot Overlay V2
|
|
3
|
-
*
|
|
4
|
-
* Mascot selection overlay using the new Overlay interface.
|
|
5
|
-
* Shows all mascot expressions with live preview.
|
|
6
|
-
*
|
|
7
|
-
* Features:
|
|
8
|
-
* - All mascot expressions
|
|
9
|
-
* - Live preview
|
|
10
|
-
* - Persists selection to settings
|
|
11
|
-
* - Works with TerminalUI's overlay management
|
|
12
|
-
*/
|
|
13
|
-
import { BaseOverlayV2 } from './base/index.js';
|
|
14
|
-
import { type MascotSetting } from './mascot/index.js';
|
|
15
|
-
import type { RenderContext, OverlayAction, KeyEvent } from './overlay/index.js';
|
|
16
|
-
export interface MascotOverlayV2Options {
|
|
17
|
-
/** Current mascot setting (for highlighting current selection) */
|
|
18
|
-
currentMascot?: MascotSetting;
|
|
19
|
-
}
|
|
20
|
-
export interface MascotOverlayV2Result {
|
|
21
|
-
/** Selected mascot (if changed) */
|
|
22
|
-
mascotChanged?: MascotSetting;
|
|
23
|
-
}
|
|
24
|
-
interface MascotState {
|
|
25
|
-
/** Selected mascot index */
|
|
26
|
-
selectedIndex: number;
|
|
27
|
-
/** Current mascot for checkmark display */
|
|
28
|
-
currentMascot: MascotSetting;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Mascot overlay using the new Overlay interface.
|
|
32
|
-
* Displays mascot options with live preview.
|
|
33
|
-
*/
|
|
34
|
-
export declare class MascotOverlayV2 extends BaseOverlayV2<MascotState, MascotOverlayV2Result> {
|
|
35
|
-
readonly type: "inline";
|
|
36
|
-
readonly id = "mascot-overlay-v2";
|
|
37
|
-
constructor(options?: MascotOverlayV2Options);
|
|
38
|
-
protected renderContent(context: RenderContext): string[];
|
|
39
|
-
handleKey(key: KeyEvent): OverlayAction<MascotOverlayV2Result>;
|
|
40
|
-
}
|
|
41
|
-
export {};
|
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Mascot Overlay V2
|
|
3
|
-
*
|
|
4
|
-
* Mascot selection overlay using the new Overlay interface.
|
|
5
|
-
* Shows all mascot expressions with live preview.
|
|
6
|
-
*
|
|
7
|
-
* Features:
|
|
8
|
-
* - All mascot expressions
|
|
9
|
-
* - Live preview
|
|
10
|
-
* - Persists selection to settings
|
|
11
|
-
* - Works with TerminalUI's overlay management
|
|
12
|
-
*/
|
|
13
|
-
import { BaseOverlayV2, isEscape, isEnter, isSpace, isCtrlC, isNavigateUp, isNavigateDown, isClose, renderBorder, } from './base/index.js';
|
|
14
|
-
import { getSettings, setSetting } from '../settings/index.js';
|
|
15
|
-
import { MASCOT_OPTIONS, MASCOT_LABELS, EXPRESSIONS, } from './mascot/index.js';
|
|
16
|
-
// =============================================================================
|
|
17
|
-
// Mascot Overlay V2 Class
|
|
18
|
-
// =============================================================================
|
|
19
|
-
/**
|
|
20
|
-
* Mascot overlay using the new Overlay interface.
|
|
21
|
-
* Displays mascot options with live preview.
|
|
22
|
-
*/
|
|
23
|
-
export class MascotOverlayV2 extends BaseOverlayV2 {
|
|
24
|
-
type = 'inline';
|
|
25
|
-
id = 'mascot-overlay-v2';
|
|
26
|
-
constructor(options = {}) {
|
|
27
|
-
const currentMascot = options.currentMascot ?? getSettings().mascot;
|
|
28
|
-
// Find current mascot in options list
|
|
29
|
-
let selectedIndex = 0;
|
|
30
|
-
const mascotIndex = MASCOT_OPTIONS.findIndex(m => m === currentMascot);
|
|
31
|
-
if (mascotIndex >= 0) {
|
|
32
|
-
selectedIndex = mascotIndex;
|
|
33
|
-
}
|
|
34
|
-
const initialState = {
|
|
35
|
-
selectedIndex,
|
|
36
|
-
currentMascot,
|
|
37
|
-
};
|
|
38
|
-
super(initialState);
|
|
39
|
-
this.minHeight = 20;
|
|
40
|
-
}
|
|
41
|
-
renderContent(context) {
|
|
42
|
-
const s = context.styles;
|
|
43
|
-
const cols = context.width;
|
|
44
|
-
const border = renderBorder(cols, s);
|
|
45
|
-
const lines = [];
|
|
46
|
-
// Get preview lines for side-by-side layout
|
|
47
|
-
const selectedOption = MASCOT_OPTIONS[this.state.selectedIndex];
|
|
48
|
-
let previewLines = [];
|
|
49
|
-
let previewLabel = '';
|
|
50
|
-
if (selectedOption === 'none') {
|
|
51
|
-
previewLabel = '(No mascot)';
|
|
52
|
-
previewLines = ['', '', '', '', '', ''];
|
|
53
|
-
}
|
|
54
|
-
else if (selectedOption === 'random') {
|
|
55
|
-
previewLabel = '(Random on startup)';
|
|
56
|
-
previewLines = EXPRESSIONS.neutral;
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
previewLabel = MASCOT_LABELS[selectedOption];
|
|
60
|
-
previewLines = EXPRESSIONS[selectedOption];
|
|
61
|
-
}
|
|
62
|
-
// Header
|
|
63
|
-
lines.push(border);
|
|
64
|
-
lines.push(` ${s.primaryBold('Select Mascot')}`);
|
|
65
|
-
lines.push('');
|
|
66
|
-
// Column widths
|
|
67
|
-
const listColWidth = 28;
|
|
68
|
-
const gap = 4;
|
|
69
|
-
const previewColStart = listColWidth + gap;
|
|
70
|
-
// Build side-by-side layout
|
|
71
|
-
const optionCount = MASCOT_OPTIONS.length;
|
|
72
|
-
const previewHeight = previewLines.length;
|
|
73
|
-
const previewStartRow = Math.max(0, Math.floor((optionCount - previewHeight) / 2));
|
|
74
|
-
for (let i = 0; i < Math.max(optionCount, previewStartRow + previewHeight + 1); i++) {
|
|
75
|
-
let leftPart = '';
|
|
76
|
-
let rightPart = '';
|
|
77
|
-
// Left column: option list
|
|
78
|
-
if (i < optionCount) {
|
|
79
|
-
const option = MASCOT_OPTIONS[i];
|
|
80
|
-
const isSelected = i === this.state.selectedIndex;
|
|
81
|
-
const isCurrent = option === this.state.currentMascot;
|
|
82
|
-
const prefix = isSelected ? s.primary('> ') : ' ';
|
|
83
|
-
const num = `${String(i + 1).padStart(2)}. `;
|
|
84
|
-
const checkmark = isCurrent ? s.success(' (current)') : '';
|
|
85
|
-
const label = isSelected ? s.primary(MASCOT_LABELS[option]) : s.muted(MASCOT_LABELS[option]);
|
|
86
|
-
leftPart = ` ${prefix}${num}${label}${checkmark}`;
|
|
87
|
-
}
|
|
88
|
-
// Right column: preview
|
|
89
|
-
const previewRow = i - previewStartRow;
|
|
90
|
-
if (previewRow === -1) {
|
|
91
|
-
rightPart = s.muted(previewLabel);
|
|
92
|
-
}
|
|
93
|
-
else if (previewRow >= 0 && previewRow < previewHeight) {
|
|
94
|
-
rightPart = s.secondary(previewLines[previewRow]);
|
|
95
|
-
}
|
|
96
|
-
// Combine columns with proper spacing
|
|
97
|
-
// eslint-disable-next-line no-control-regex
|
|
98
|
-
const leftPlain = leftPart.replace(/\x1b\[[0-9;]*m/g, '');
|
|
99
|
-
const padding = ' '.repeat(Math.max(0, previewColStart - leftPlain.length));
|
|
100
|
-
lines.push(leftPart + padding + rightPart);
|
|
101
|
-
}
|
|
102
|
-
// Footer
|
|
103
|
-
lines.push('');
|
|
104
|
-
lines.push(border);
|
|
105
|
-
lines.push(` ${s.muted('up/down/jk Navigate . Enter/Space Select . q/Esc Close')}`);
|
|
106
|
-
lines.push(border);
|
|
107
|
-
return lines;
|
|
108
|
-
}
|
|
109
|
-
handleKey(key) {
|
|
110
|
-
const data = key.raw;
|
|
111
|
-
const maxIndex = MASCOT_OPTIONS.length - 1;
|
|
112
|
-
// Ctrl+C always closes
|
|
113
|
-
if (isCtrlC(data)) {
|
|
114
|
-
return this.cancel();
|
|
115
|
-
}
|
|
116
|
-
// q or Esc closes
|
|
117
|
-
if (isEscape(data) || isClose(data)) {
|
|
118
|
-
return this.cancel();
|
|
119
|
-
}
|
|
120
|
-
// Navigation up
|
|
121
|
-
if (isNavigateUp(data) && this.state.selectedIndex > 0) {
|
|
122
|
-
this.state.selectedIndex--;
|
|
123
|
-
return this.rerender();
|
|
124
|
-
}
|
|
125
|
-
// Navigation down
|
|
126
|
-
if (isNavigateDown(data) && this.state.selectedIndex < maxIndex) {
|
|
127
|
-
this.state.selectedIndex++;
|
|
128
|
-
return this.rerender();
|
|
129
|
-
}
|
|
130
|
-
// Enter/Space to select
|
|
131
|
-
if (isEnter(data) || isSpace(data)) {
|
|
132
|
-
const selectedMascot = MASCOT_OPTIONS[this.state.selectedIndex];
|
|
133
|
-
setSetting('mascot', selectedMascot);
|
|
134
|
-
return this.close({ mascotChanged: selectedMascot });
|
|
135
|
-
}
|
|
136
|
-
return this.noAction();
|
|
137
|
-
}
|
|
138
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Mascot Overlay
|
|
3
|
-
*
|
|
4
|
-
* Standalone mascot selection overlay.
|
|
5
|
-
* Accessible via /mascot command or from Config overlay.
|
|
6
|
-
*
|
|
7
|
-
* Features:
|
|
8
|
-
* - All mascot expressions
|
|
9
|
-
* - Live preview
|
|
10
|
-
* - Persists selection to settings
|
|
11
|
-
*/
|
|
12
|
-
import { type MascotSetting } from './mascot/index.js';
|
|
13
|
-
export interface MascotOverlayOptions {
|
|
14
|
-
/** Current mascot setting (for highlighting current selection) */
|
|
15
|
-
currentMascot?: MascotSetting;
|
|
16
|
-
}
|
|
17
|
-
export interface MascotOverlayResult {
|
|
18
|
-
/** Selected mascot (if changed) */
|
|
19
|
-
mascotChanged?: MascotSetting;
|
|
20
|
-
}
|
|
21
|
-
export declare function showMascotOverlay(options?: MascotOverlayOptions): Promise<MascotOverlayResult>;
|