@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
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auth Storage Module
|
|
3
|
+
*
|
|
4
|
+
* Manages persistent storage of authentication credentials.
|
|
5
|
+
* File: ~/.compilr-dev/auth.json
|
|
6
|
+
*
|
|
7
|
+
* Security:
|
|
8
|
+
* - File permissions set to 0600 (owner read/write only)
|
|
9
|
+
* - Tokens are JWTs from Supabase Auth
|
|
10
|
+
*/
|
|
11
|
+
import * as fs from 'fs';
|
|
12
|
+
import * as path from 'path';
|
|
13
|
+
import * as os from 'os';
|
|
14
|
+
// =============================================================================
|
|
15
|
+
// Constants
|
|
16
|
+
// =============================================================================
|
|
17
|
+
const CONFIG_DIR = path.join(os.homedir(), '.compilr-dev');
|
|
18
|
+
const AUTH_FILE = path.join(CONFIG_DIR, 'auth.json');
|
|
19
|
+
// =============================================================================
|
|
20
|
+
// Storage Operations
|
|
21
|
+
// =============================================================================
|
|
22
|
+
/**
|
|
23
|
+
* Load auth data from disk.
|
|
24
|
+
* Returns null if file doesn't exist or is invalid.
|
|
25
|
+
*/
|
|
26
|
+
export function loadAuthData() {
|
|
27
|
+
try {
|
|
28
|
+
if (!fs.existsSync(AUTH_FILE)) {
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
const data = fs.readFileSync(AUTH_FILE, 'utf-8');
|
|
32
|
+
const parsed = JSON.parse(data);
|
|
33
|
+
// Validate required fields
|
|
34
|
+
if (typeof parsed.version !== 'number' ||
|
|
35
|
+
typeof parsed.user !== 'object' ||
|
|
36
|
+
!parsed.user ||
|
|
37
|
+
typeof parsed.session !== 'object' ||
|
|
38
|
+
!parsed.session) {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
return parsed;
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
// File doesn't exist or is corrupted
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Save auth data to disk with secure permissions.
|
|
50
|
+
*/
|
|
51
|
+
export function saveAuthData(data) {
|
|
52
|
+
// Ensure config directory exists
|
|
53
|
+
fs.mkdirSync(CONFIG_DIR, { recursive: true });
|
|
54
|
+
// Write with restrictive permissions
|
|
55
|
+
fs.writeFileSync(AUTH_FILE, JSON.stringify(data, null, 2), {
|
|
56
|
+
encoding: 'utf-8',
|
|
57
|
+
mode: 0o600, // Owner read/write only
|
|
58
|
+
});
|
|
59
|
+
// Verify permissions (fix if system ignored mode)
|
|
60
|
+
try {
|
|
61
|
+
fs.chmodSync(AUTH_FILE, 0o600);
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
// Ignore chmod errors (e.g., on Windows)
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Clear auth data (logout).
|
|
69
|
+
*/
|
|
70
|
+
export function clearAuthData() {
|
|
71
|
+
try {
|
|
72
|
+
if (fs.existsSync(AUTH_FILE)) {
|
|
73
|
+
fs.unlinkSync(AUTH_FILE);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
// Ignore errors during cleanup
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Update just the session tokens (after refresh).
|
|
82
|
+
*/
|
|
83
|
+
export function updateSession(session) {
|
|
84
|
+
const data = loadAuthData();
|
|
85
|
+
if (!data) {
|
|
86
|
+
return false;
|
|
87
|
+
}
|
|
88
|
+
data.session = session;
|
|
89
|
+
saveAuthData(data);
|
|
90
|
+
return true;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Check if auth data exists (quick check without loading).
|
|
94
|
+
*/
|
|
95
|
+
export function hasAuthData() {
|
|
96
|
+
return fs.existsSync(AUTH_FILE);
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Check if stored auth file has insecure permissions.
|
|
100
|
+
* Returns warning message if insecure, null if OK.
|
|
101
|
+
*/
|
|
102
|
+
export function checkAuthFilePermissions() {
|
|
103
|
+
try {
|
|
104
|
+
if (!fs.existsSync(AUTH_FILE)) {
|
|
105
|
+
return null;
|
|
106
|
+
}
|
|
107
|
+
const stats = fs.statSync(AUTH_FILE);
|
|
108
|
+
const mode = stats.mode & 0o777; // Get permission bits
|
|
109
|
+
// Check if group or others have any access
|
|
110
|
+
if (mode & 0o077) {
|
|
111
|
+
return `Warning: Auth file has insecure permissions (${mode.toString(8)}). Consider running: chmod 600 ${AUTH_FILE}`;
|
|
112
|
+
}
|
|
113
|
+
return null;
|
|
114
|
+
}
|
|
115
|
+
catch {
|
|
116
|
+
return null;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Changelog Module
|
|
3
|
+
*
|
|
4
|
+
* Exports release data and helper functions.
|
|
5
|
+
*/
|
|
6
|
+
import { type Release } from './releases.js';
|
|
7
|
+
export { RELEASES, type Release, type ReleaseChange } from './releases.js';
|
|
8
|
+
/**
|
|
9
|
+
* Get the latest release entry.
|
|
10
|
+
*/
|
|
11
|
+
export declare function getLatestRelease(): Release | undefined;
|
|
12
|
+
/**
|
|
13
|
+
* Get startup highlights for a given version.
|
|
14
|
+
* Returns the highlights array if the version matches a known release, or the latest release highlights.
|
|
15
|
+
*/
|
|
16
|
+
export declare function getStartupHighlights(version: string): string[];
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Changelog Module
|
|
3
|
+
*
|
|
4
|
+
* Exports release data and helper functions.
|
|
5
|
+
*/
|
|
6
|
+
import { RELEASES } from './releases.js';
|
|
7
|
+
export { RELEASES } from './releases.js';
|
|
8
|
+
/**
|
|
9
|
+
* Get the latest release entry.
|
|
10
|
+
*/
|
|
11
|
+
export function getLatestRelease() {
|
|
12
|
+
return RELEASES[0];
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Get startup highlights for a given version.
|
|
16
|
+
* Returns the highlights array if the version matches a known release, or the latest release highlights.
|
|
17
|
+
*/
|
|
18
|
+
export function getStartupHighlights(version) {
|
|
19
|
+
const match = RELEASES.find((r) => r.version === version);
|
|
20
|
+
if (match)
|
|
21
|
+
return match.highlights;
|
|
22
|
+
// Fallback to latest
|
|
23
|
+
return RELEASES[0]?.highlights ?? [];
|
|
24
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Release Data
|
|
3
|
+
*
|
|
4
|
+
* Single source of truth for all release notes.
|
|
5
|
+
* Newest releases first.
|
|
6
|
+
*/
|
|
7
|
+
export interface ReleaseChange {
|
|
8
|
+
category: 'added' | 'changed' | 'fixed';
|
|
9
|
+
text: string;
|
|
10
|
+
}
|
|
11
|
+
export interface Release {
|
|
12
|
+
version: string;
|
|
13
|
+
date: string;
|
|
14
|
+
highlights: string[];
|
|
15
|
+
changes: ReleaseChange[];
|
|
16
|
+
}
|
|
17
|
+
export declare const RELEASES: Release[];
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Release Data
|
|
3
|
+
*
|
|
4
|
+
* Single source of truth for all release notes.
|
|
5
|
+
* Newest releases first.
|
|
6
|
+
*/
|
|
7
|
+
// =============================================================================
|
|
8
|
+
// Release Data (newest first)
|
|
9
|
+
// =============================================================================
|
|
10
|
+
export const RELEASES = [
|
|
11
|
+
{
|
|
12
|
+
version: '0.5.0',
|
|
13
|
+
date: '2026-02-16',
|
|
14
|
+
highlights: [
|
|
15
|
+
'Status bar navigation',
|
|
16
|
+
'/changelog command',
|
|
17
|
+
'Release notes on startup',
|
|
18
|
+
],
|
|
19
|
+
changes: [
|
|
20
|
+
{ category: 'added', text: 'Status bar navigation (down arrow to footer)' },
|
|
21
|
+
{ category: 'added', text: '/changelog command with browsable overlay' },
|
|
22
|
+
{ category: 'added', text: 'Background agent count indicator' },
|
|
23
|
+
{ category: 'added', text: 'Release notes on startup screen' },
|
|
24
|
+
{ category: 'changed', text: 'Pending indicator hint updated to [↓]' },
|
|
25
|
+
{ category: 'changed', text: 'Background execution tutorial updated' },
|
|
26
|
+
],
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
version: '0.4.0',
|
|
30
|
+
date: '2026-01-20',
|
|
31
|
+
highlights: [
|
|
32
|
+
'Multi-agent teams',
|
|
33
|
+
'/filter command',
|
|
34
|
+
'Background execution',
|
|
35
|
+
],
|
|
36
|
+
changes: [
|
|
37
|
+
{ category: 'added', text: 'Multi-agent team support ($arch, $pm, $qa, etc.)' },
|
|
38
|
+
{ category: 'added', text: '/filter command for tool filtering' },
|
|
39
|
+
{ category: 'added', text: 'Background agent execution ($agent msg &)' },
|
|
40
|
+
{ category: 'added', text: 'Task ownership and handoff between agents' },
|
|
41
|
+
{ category: 'added', text: '/team dashboard with agent status' },
|
|
42
|
+
{ category: 'changed', text: 'Footer shows active team agent' },
|
|
43
|
+
{ category: 'fixed', text: 'Session restoration across project switches' },
|
|
44
|
+
],
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
version: '0.3.0',
|
|
48
|
+
date: '2025-12-15',
|
|
49
|
+
highlights: [
|
|
50
|
+
'Plan mode',
|
|
51
|
+
'Permission system',
|
|
52
|
+
'Onboarding wizard',
|
|
53
|
+
],
|
|
54
|
+
changes: [
|
|
55
|
+
{ category: 'added', text: 'Plan mode for structured AI responses' },
|
|
56
|
+
{ category: 'added', text: 'Permission system for tool execution' },
|
|
57
|
+
{ category: 'added', text: '/init onboarding wizard' },
|
|
58
|
+
{ category: 'added', text: 'Meta-tools for 62% token reduction' },
|
|
59
|
+
{ category: 'changed', text: 'Improved context management with ContextManager' },
|
|
60
|
+
{ category: 'fixed', text: 'Ghost lines in overlay rendering' },
|
|
61
|
+
],
|
|
62
|
+
},
|
|
63
|
+
];
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auth Command Handlers
|
|
3
|
+
*
|
|
4
|
+
* CLI authentication via device flow.
|
|
5
|
+
* Commands: /login, /logout, /whoami
|
|
6
|
+
*/
|
|
7
|
+
import type { CommandHandlerV2 } from '../types.js';
|
|
8
|
+
import { openBrowser } from '../../utils/open-browser.js';
|
|
9
|
+
export { openBrowser };
|
|
10
|
+
export declare const authCommands: CommandHandlerV2[];
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auth Command Handlers
|
|
3
|
+
*
|
|
4
|
+
* CLI authentication via device flow.
|
|
5
|
+
* Commands: /login, /logout, /whoami
|
|
6
|
+
*/
|
|
7
|
+
import { getAuthManager } from '../../auth/index.js';
|
|
8
|
+
import { LoginOverlayV2 } from '../../ui/overlay/impl/login-overlay-v2.js';
|
|
9
|
+
import { openBrowser } from '../../utils/open-browser.js';
|
|
10
|
+
// Re-export for any existing consumers
|
|
11
|
+
export { openBrowser };
|
|
12
|
+
// =============================================================================
|
|
13
|
+
// /login Command
|
|
14
|
+
// =============================================================================
|
|
15
|
+
const loginCommand = {
|
|
16
|
+
name: 'login',
|
|
17
|
+
aliases: ['signin'],
|
|
18
|
+
description: 'Log in to compilr.dev',
|
|
19
|
+
details: 'Authenticate via browser using the device flow. Opens compilr.dev where you can log in or create an account. The CLI receives your credentials automatically.',
|
|
20
|
+
examples: [
|
|
21
|
+
{ code: '/login', description: 'Start the login flow' },
|
|
22
|
+
],
|
|
23
|
+
async execute(_args, ctx) {
|
|
24
|
+
const auth = getAuthManager();
|
|
25
|
+
// Check if already logged in
|
|
26
|
+
if (await auth.isAuthenticated()) {
|
|
27
|
+
const user = await auth.getUser();
|
|
28
|
+
ctx.ui.print({ type: 'info', message: `Already logged in as ${user.email}` });
|
|
29
|
+
ctx.ui.print({ type: 'info', message: 'Use /logout to sign out first.' });
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
const loginOverlay = new LoginOverlayV2();
|
|
33
|
+
const result = await ctx.ui.showOverlay(loginOverlay);
|
|
34
|
+
if (result?.success) {
|
|
35
|
+
await auth.sendForcedHeartbeat();
|
|
36
|
+
await auth.startSession();
|
|
37
|
+
ctx.ui.print({ type: 'success', message: `Logged in as ${result.email ?? ''}` });
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
ctx.ui.print({ type: 'error', message: 'Login cancelled or failed.' });
|
|
41
|
+
}
|
|
42
|
+
return true;
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
// =============================================================================
|
|
46
|
+
// /logout Command
|
|
47
|
+
// =============================================================================
|
|
48
|
+
const logoutCommand = {
|
|
49
|
+
name: 'logout',
|
|
50
|
+
aliases: ['signout'],
|
|
51
|
+
description: 'Log out of compilr.dev',
|
|
52
|
+
details: 'Sign out and clear stored credentials.',
|
|
53
|
+
examples: [
|
|
54
|
+
{ code: '/logout', description: 'Sign out' },
|
|
55
|
+
],
|
|
56
|
+
execute(_args, ctx) {
|
|
57
|
+
const auth = getAuthManager();
|
|
58
|
+
if (!auth.hasStoredAuth()) {
|
|
59
|
+
ctx.ui.print({ type: 'info', message: 'Not logged in.' });
|
|
60
|
+
return Promise.resolve(true);
|
|
61
|
+
}
|
|
62
|
+
auth.logout();
|
|
63
|
+
ctx.ui.print({ type: 'success', message: 'Logged out successfully.' });
|
|
64
|
+
return Promise.resolve(true);
|
|
65
|
+
},
|
|
66
|
+
};
|
|
67
|
+
// =============================================================================
|
|
68
|
+
// /whoami Command
|
|
69
|
+
// =============================================================================
|
|
70
|
+
const whoamiCommand = {
|
|
71
|
+
name: 'whoami',
|
|
72
|
+
aliases: ['me', 'account'],
|
|
73
|
+
description: 'Show current user info',
|
|
74
|
+
details: 'Display the currently logged in user and account details.',
|
|
75
|
+
examples: [
|
|
76
|
+
{ code: '/whoami', description: 'Show account info' },
|
|
77
|
+
],
|
|
78
|
+
async execute(_args, ctx) {
|
|
79
|
+
const auth = getAuthManager();
|
|
80
|
+
if (!await auth.isAuthenticated()) {
|
|
81
|
+
ctx.ui.print({ type: 'info', message: 'Not logged in. Use /login to authenticate.' });
|
|
82
|
+
return true;
|
|
83
|
+
}
|
|
84
|
+
const user = await auth.getUser();
|
|
85
|
+
const profile = auth.getProfile();
|
|
86
|
+
const lines = [
|
|
87
|
+
'',
|
|
88
|
+
` Email: ${user.email}`,
|
|
89
|
+
` Account: ${user.accountType}`,
|
|
90
|
+
` Member since: ${user.createdAt.toLocaleDateString('en-US', { year: 'numeric', month: 'short', day: 'numeric' })}`,
|
|
91
|
+
` User ID: ${user.id.slice(0, 8)}...`,
|
|
92
|
+
];
|
|
93
|
+
if (profile) {
|
|
94
|
+
lines.push('');
|
|
95
|
+
lines.push(` Provider: ${profile.default_provider}`);
|
|
96
|
+
lines.push(` Model: ${profile.default_model}`);
|
|
97
|
+
lines.push(` Telemetry: ${profile.telemetry_enabled ? 'enabled' : 'disabled'}`);
|
|
98
|
+
if (profile.total_sessions > 0) {
|
|
99
|
+
lines.push('');
|
|
100
|
+
lines.push(` Sessions: ${String(profile.total_sessions)}`);
|
|
101
|
+
lines.push(` Messages: ${String(profile.total_messages)}`);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
lines.push('');
|
|
105
|
+
lines.push(' Profile: https://compilr.dev/profile');
|
|
106
|
+
lines.push('');
|
|
107
|
+
ctx.ui.print({ type: 'raw-lines', lines });
|
|
108
|
+
return true;
|
|
109
|
+
},
|
|
110
|
+
};
|
|
111
|
+
// =============================================================================
|
|
112
|
+
// Export
|
|
113
|
+
// =============================================================================
|
|
114
|
+
export const authCommands = [
|
|
115
|
+
loginCommand,
|
|
116
|
+
logoutCommand,
|
|
117
|
+
whoamiCommand,
|
|
118
|
+
];
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Background Agent Command Handlers
|
|
3
|
+
*
|
|
4
|
+
* Commands for managing background agents and pending requests.
|
|
5
|
+
*
|
|
6
|
+
* Phase 3b: Pending Requests System
|
|
7
|
+
* Phase 3c: Background Status & Control
|
|
8
|
+
*/
|
|
9
|
+
import type { CommandHandlerV2 } from '../types.js';
|
|
10
|
+
export declare const pendingCommand: CommandHandlerV2;
|
|
11
|
+
export declare const bgCommand: CommandHandlerV2;
|
|
12
|
+
export declare const fgCommand: CommandHandlerV2;
|
|
13
|
+
export declare const killCommand: CommandHandlerV2;
|
|
14
|
+
export declare const backgroundCommands: CommandHandlerV2[];
|
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Background Agent Command Handlers
|
|
3
|
+
*
|
|
4
|
+
* Commands for managing background agents and pending requests.
|
|
5
|
+
*
|
|
6
|
+
* Phase 3b: Pending Requests System
|
|
7
|
+
* Phase 3c: Background Status & Control
|
|
8
|
+
*/
|
|
9
|
+
import { getStyles } from '../../themes/index.js';
|
|
10
|
+
import { PendingOverlayV2, BackgroundOverlayV2 } from '../../ui/overlay/index.js';
|
|
11
|
+
import { AskUserSimpleOverlayV2 } from '../../ui/overlay/impl/ask-user-simple-overlay-v2.js';
|
|
12
|
+
import { AskUserOverlayV2 } from '../../ui/overlay/impl/ask-user-overlay-v2.js';
|
|
13
|
+
import { getPendingRequestsManager } from '../../multi-agent/index.js';
|
|
14
|
+
// =============================================================================
|
|
15
|
+
// Pending Command
|
|
16
|
+
// =============================================================================
|
|
17
|
+
export const pendingCommand = {
|
|
18
|
+
name: 'pending',
|
|
19
|
+
aliases: ['p'],
|
|
20
|
+
description: 'View and respond to pending requests from background agents',
|
|
21
|
+
details: 'Background agents may need your approval for permissions or answers to questions. This command shows all pending requests and lets you approve or deny them.',
|
|
22
|
+
examples: [
|
|
23
|
+
{ code: '/pending', description: 'Open the pending requests overlay' },
|
|
24
|
+
{ code: '/p', description: 'Shortcut alias' },
|
|
25
|
+
],
|
|
26
|
+
interactions: [
|
|
27
|
+
'↑/↓ to select a request',
|
|
28
|
+
'a to approve permission requests',
|
|
29
|
+
'r/Enter to respond to questions',
|
|
30
|
+
'd to deny/skip',
|
|
31
|
+
'Esc to close',
|
|
32
|
+
],
|
|
33
|
+
async execute(_args, ctx) {
|
|
34
|
+
const pendingManager = getPendingRequestsManager();
|
|
35
|
+
// Loop: re-open pending overlay after each question if more requests remain
|
|
36
|
+
let keepGoing = true;
|
|
37
|
+
while (keepGoing) {
|
|
38
|
+
const overlay = new PendingOverlayV2();
|
|
39
|
+
const result = await ctx.ui.showOverlay(overlay);
|
|
40
|
+
if (!result || result.type === 'closed') {
|
|
41
|
+
break;
|
|
42
|
+
}
|
|
43
|
+
// Handle 'respond' result - show the standard overlay for the question
|
|
44
|
+
const request = result.request;
|
|
45
|
+
const context = request.context;
|
|
46
|
+
const toolType = context?.toolType;
|
|
47
|
+
const originalInput = context?.originalInput;
|
|
48
|
+
if (toolType === 'ask_user_simple' && originalInput) {
|
|
49
|
+
const input = originalInput;
|
|
50
|
+
const questionOverlay = new AskUserSimpleOverlayV2({
|
|
51
|
+
question: input.question,
|
|
52
|
+
options: input.options,
|
|
53
|
+
allowCustom: input.allowCustom,
|
|
54
|
+
});
|
|
55
|
+
const questionResult = await ctx.ui.showOverlay(questionOverlay);
|
|
56
|
+
if (questionResult) {
|
|
57
|
+
pendingManager.respond(request.id, {
|
|
58
|
+
approved: !questionResult.skipped,
|
|
59
|
+
overlayResult: questionResult,
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
pendingManager.respond(request.id, {
|
|
64
|
+
approved: false,
|
|
65
|
+
overlayResult: { answer: '', skipped: true },
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
else if (toolType === 'ask_user' && originalInput) {
|
|
70
|
+
const input = originalInput;
|
|
71
|
+
const questionOverlay = new AskUserOverlayV2({
|
|
72
|
+
questions: input.questions,
|
|
73
|
+
context: input.context,
|
|
74
|
+
});
|
|
75
|
+
const questionResult = await ctx.ui.showOverlay(questionOverlay);
|
|
76
|
+
if (questionResult) {
|
|
77
|
+
pendingManager.respond(request.id, {
|
|
78
|
+
approved: true,
|
|
79
|
+
overlayResult: questionResult,
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
pendingManager.respond(request.id, {
|
|
84
|
+
approved: false,
|
|
85
|
+
overlayResult: {
|
|
86
|
+
answers: {},
|
|
87
|
+
skipped: input.questions.map((q) => q.id),
|
|
88
|
+
},
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
// Auto-close if no more requests, otherwise loop back to pending overlay
|
|
93
|
+
keepGoing = pendingManager.getCount() > 0;
|
|
94
|
+
}
|
|
95
|
+
return true;
|
|
96
|
+
},
|
|
97
|
+
};
|
|
98
|
+
// =============================================================================
|
|
99
|
+
// Background Status Command
|
|
100
|
+
// =============================================================================
|
|
101
|
+
export const bgCommand = {
|
|
102
|
+
name: 'bg',
|
|
103
|
+
aliases: ['background'],
|
|
104
|
+
description: 'View status of background agents',
|
|
105
|
+
details: 'Shows all running background agents and their status. You can bring an agent to the foreground or kill it from this view.',
|
|
106
|
+
examples: [
|
|
107
|
+
{ code: '/bg', description: 'Show background agents status' },
|
|
108
|
+
{ code: '/background', description: 'Full command name' },
|
|
109
|
+
],
|
|
110
|
+
interactions: [
|
|
111
|
+
'↑/↓ to select an agent',
|
|
112
|
+
'f to bring to foreground',
|
|
113
|
+
'k to kill the agent',
|
|
114
|
+
'Esc to close',
|
|
115
|
+
],
|
|
116
|
+
async execute(_args, ctx) {
|
|
117
|
+
const s = getStyles();
|
|
118
|
+
// If the foreground agent is busy (agent running), /bg sends it to background
|
|
119
|
+
if (ctx.ui.isAgentRunning() && ctx.sendForegroundToBackground) {
|
|
120
|
+
const demoted = ctx.sendForegroundToBackground();
|
|
121
|
+
if (demoted) {
|
|
122
|
+
ctx.ui.print({
|
|
123
|
+
type: 'info',
|
|
124
|
+
message: `$${demoted} sent to background (still running)`,
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
return true;
|
|
128
|
+
}
|
|
129
|
+
// Check if background session management is available
|
|
130
|
+
if (!ctx.getBackgroundSessions) {
|
|
131
|
+
ctx.ui.print({
|
|
132
|
+
type: 'warning',
|
|
133
|
+
message: 'Background agent management not available in this session.',
|
|
134
|
+
});
|
|
135
|
+
return true;
|
|
136
|
+
}
|
|
137
|
+
const overlay = new BackgroundOverlayV2({
|
|
138
|
+
getSessions: ctx.getBackgroundSessions,
|
|
139
|
+
});
|
|
140
|
+
const result = await ctx.ui.showOverlay(overlay);
|
|
141
|
+
// Handle foreground request
|
|
142
|
+
if (result && result.type === 'foreground') {
|
|
143
|
+
if (ctx.bringToForeground) {
|
|
144
|
+
const success = await ctx.bringToForeground(result.agentId);
|
|
145
|
+
if (success) {
|
|
146
|
+
ctx.ui.print({
|
|
147
|
+
type: 'info',
|
|
148
|
+
message: `Switched to $${result.agentId} in foreground`,
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
ctx.ui.print({
|
|
153
|
+
type: 'warning',
|
|
154
|
+
message: `Could not bring $${result.agentId} to foreground`,
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
// Handle kill request
|
|
160
|
+
if (result && result.type === 'kill') {
|
|
161
|
+
if (ctx.killBackgroundAgent) {
|
|
162
|
+
const success = ctx.killBackgroundAgent(result.agentId);
|
|
163
|
+
if (success) {
|
|
164
|
+
ctx.ui.print({
|
|
165
|
+
type: 'info',
|
|
166
|
+
message: s.warning(`Killed background agent $${result.agentId}`),
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
ctx.ui.print({
|
|
171
|
+
type: 'warning',
|
|
172
|
+
message: `Could not kill $${result.agentId} - agent not found`,
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
return true;
|
|
178
|
+
},
|
|
179
|
+
};
|
|
180
|
+
// =============================================================================
|
|
181
|
+
// Foreground Command
|
|
182
|
+
// =============================================================================
|
|
183
|
+
export const fgCommand = {
|
|
184
|
+
name: 'fg',
|
|
185
|
+
aliases: ['foreground'],
|
|
186
|
+
description: 'Bring a background agent to the foreground',
|
|
187
|
+
details: 'Switches focus to a background agent, making it the active foreground agent. The previously active agent continues running in the background.',
|
|
188
|
+
examples: [
|
|
189
|
+
{ code: '/fg arch', description: 'Bring $arch to the foreground' },
|
|
190
|
+
{ code: '/fg dev', description: 'Bring $dev to the foreground' },
|
|
191
|
+
],
|
|
192
|
+
async execute(args, ctx) {
|
|
193
|
+
const agentId = args.trim().replace(/^\$/, ''); // Remove $ prefix if present
|
|
194
|
+
if (!agentId) {
|
|
195
|
+
ctx.ui.print({
|
|
196
|
+
type: 'warning',
|
|
197
|
+
message: 'Usage: /fg <agent> - e.g., /fg arch or /fg $dev',
|
|
198
|
+
});
|
|
199
|
+
return true;
|
|
200
|
+
}
|
|
201
|
+
if (!ctx.bringToForeground) {
|
|
202
|
+
ctx.ui.print({
|
|
203
|
+
type: 'warning',
|
|
204
|
+
message: 'Background agent management not available in this session.',
|
|
205
|
+
});
|
|
206
|
+
return true;
|
|
207
|
+
}
|
|
208
|
+
const success = await ctx.bringToForeground(agentId);
|
|
209
|
+
if (success) {
|
|
210
|
+
ctx.ui.print({
|
|
211
|
+
type: 'info',
|
|
212
|
+
message: `Switched to $${agentId} in foreground`,
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
else {
|
|
216
|
+
ctx.ui.print({
|
|
217
|
+
type: 'warning',
|
|
218
|
+
message: `Could not bring $${agentId} to foreground - agent not found or not running in background`,
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
return true;
|
|
222
|
+
},
|
|
223
|
+
};
|
|
224
|
+
// =============================================================================
|
|
225
|
+
// Kill Command
|
|
226
|
+
// =============================================================================
|
|
227
|
+
export const killCommand = {
|
|
228
|
+
name: 'kill',
|
|
229
|
+
description: 'Kill a background agent',
|
|
230
|
+
details: 'Cancels a running background agent. Any pending requests from this agent will be rejected.',
|
|
231
|
+
examples: [
|
|
232
|
+
{ code: '/kill arch', description: 'Kill the $arch background agent' },
|
|
233
|
+
{ code: '/kill dev', description: 'Kill the $dev background agent' },
|
|
234
|
+
],
|
|
235
|
+
execute(args, ctx) {
|
|
236
|
+
const s = getStyles();
|
|
237
|
+
const agentId = args.trim().replace(/^\$/, ''); // Remove $ prefix if present
|
|
238
|
+
if (!agentId) {
|
|
239
|
+
ctx.ui.print({
|
|
240
|
+
type: 'warning',
|
|
241
|
+
message: 'Usage: /kill <agent> - e.g., /kill arch or /kill $dev',
|
|
242
|
+
});
|
|
243
|
+
return Promise.resolve(true);
|
|
244
|
+
}
|
|
245
|
+
if (!ctx.killBackgroundAgent) {
|
|
246
|
+
ctx.ui.print({
|
|
247
|
+
type: 'warning',
|
|
248
|
+
message: 'Background agent management not available in this session.',
|
|
249
|
+
});
|
|
250
|
+
return Promise.resolve(true);
|
|
251
|
+
}
|
|
252
|
+
const success = ctx.killBackgroundAgent(agentId);
|
|
253
|
+
if (success) {
|
|
254
|
+
ctx.ui.print({
|
|
255
|
+
type: 'info',
|
|
256
|
+
message: s.warning(`Killed background agent $${agentId}`),
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
else {
|
|
260
|
+
ctx.ui.print({
|
|
261
|
+
type: 'warning',
|
|
262
|
+
message: `Could not kill $${agentId} - agent not found or not running in background`,
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
return Promise.resolve(true);
|
|
266
|
+
},
|
|
267
|
+
};
|
|
268
|
+
// =============================================================================
|
|
269
|
+
// Export
|
|
270
|
+
// =============================================================================
|
|
271
|
+
export const backgroundCommands = [
|
|
272
|
+
pendingCommand,
|
|
273
|
+
bgCommand,
|
|
274
|
+
fgCommand,
|
|
275
|
+
killCommand,
|
|
276
|
+
];
|