@compilr-dev/cli 0.5.0 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +236 -68
- package/dist/.tsbuildinfo.app +1 -0
- package/dist/.tsbuildinfo.data +1 -0
- package/dist/.tsbuildinfo.domain +1 -0
- package/dist/.tsbuildinfo.foundation +1 -0
- package/dist/agent.d.ts +61 -4
- package/dist/agent.js +241 -245
- package/dist/anchors/index.d.ts +1 -1
- package/dist/anchors/index.js +1 -1
- package/dist/anchors/project-anchors.d.ts +2 -2
- package/dist/anchors/project-anchors.js +1 -1
- package/dist/auth/api-client.d.ts +124 -0
- package/dist/auth/api-client.js +261 -0
- package/dist/auth/index.d.ts +172 -0
- package/dist/auth/index.js +545 -0
- package/dist/auth/storage.d.ts +52 -0
- package/dist/auth/storage.js +118 -0
- package/dist/changelog/index.d.ts +16 -0
- package/dist/changelog/index.js +24 -0
- package/dist/changelog/releases.d.ts +17 -0
- package/dist/changelog/releases.js +63 -0
- package/dist/commands-v2/handlers/auth.d.ts +10 -0
- package/dist/commands-v2/handlers/auth.js +118 -0
- package/dist/commands-v2/handlers/background.d.ts +14 -0
- package/dist/commands-v2/handlers/background.js +276 -0
- package/dist/commands-v2/handlers/context.js +266 -81
- package/dist/commands-v2/handlers/core.d.ts +1 -0
- package/dist/commands-v2/handlers/core.js +133 -8
- package/dist/commands-v2/handlers/debug.js +18 -0
- package/dist/commands-v2/handlers/delegations.d.ts +8 -0
- package/dist/commands-v2/handlers/delegations.js +29 -0
- package/dist/commands-v2/handlers/files.d.ts +8 -0
- package/dist/commands-v2/handlers/files.js +162 -0
- package/dist/commands-v2/handlers/filter.d.ts +9 -0
- package/dist/commands-v2/handlers/filter.js +130 -0
- package/dist/commands-v2/handlers/games.d.ts +7 -0
- package/dist/commands-v2/handlers/games.js +57 -0
- package/dist/commands-v2/handlers/index.d.ts +13 -0
- package/dist/commands-v2/handlers/index.js +39 -0
- package/dist/commands-v2/handlers/mcp.d.ts +8 -0
- package/dist/commands-v2/handlers/mcp.js +39 -0
- package/dist/commands-v2/handlers/notifications.d.ts +9 -0
- package/dist/commands-v2/handlers/notifications.js +34 -0
- package/dist/commands-v2/handlers/project.js +244 -23
- package/dist/commands-v2/handlers/reset.d.ts +11 -0
- package/dist/commands-v2/handlers/reset.js +118 -0
- package/dist/commands-v2/handlers/session.d.ts +161 -0
- package/dist/commands-v2/handlers/session.js +805 -0
- package/dist/commands-v2/handlers/settings.d.ts +2 -0
- package/dist/commands-v2/handlers/settings.js +217 -35
- package/dist/commands-v2/handlers/tasks.d.ts +5 -0
- package/dist/commands-v2/handlers/tasks.js +36 -0
- package/dist/commands-v2/handlers/team.d.ts +9 -0
- package/dist/commands-v2/handlers/team.js +549 -0
- package/dist/commands-v2/handlers/terminals.d.ts +9 -0
- package/dist/commands-v2/handlers/terminals.js +34 -0
- package/dist/commands-v2/index.d.ts +3 -2
- package/dist/commands-v2/index.js +4 -1
- package/dist/commands-v2/registry.d.ts +15 -0
- package/dist/commands-v2/registry.js +34 -0
- package/dist/commands-v2/types.d.ts +81 -3
- package/dist/commands.js +13 -0
- package/dist/compilr-diff-companion.vsix +0 -0
- package/dist/db/index.js +98 -4
- package/dist/db/repositories/document-repository.d.ts +2 -0
- package/dist/db/repositories/document-repository.js +5 -1
- package/dist/db/repositories/index.d.ts +2 -0
- package/dist/db/repositories/index.js +1 -0
- package/dist/db/repositories/plan-repository.d.ts +101 -0
- package/dist/db/repositories/plan-repository.js +275 -0
- package/dist/db/repositories/project-repository.d.ts +6 -0
- package/dist/db/repositories/project-repository.js +41 -0
- package/dist/db/repositories/work-item-repository.d.ts +15 -0
- package/dist/db/repositories/work-item-repository.js +69 -4
- package/dist/db/schema.d.ts +40 -3
- package/dist/db/schema.js +66 -3
- package/dist/episodes/index.d.ts +20 -0
- package/dist/episodes/index.js +27 -0
- package/dist/episodes/recorder.d.ts +51 -0
- package/dist/episodes/recorder.js +195 -0
- package/dist/episodes/significant-work.d.ts +21 -0
- package/dist/episodes/significant-work.js +56 -0
- package/dist/episodes/store.d.ts +38 -0
- package/dist/episodes/store.js +199 -0
- package/dist/episodes/types.d.ts +35 -0
- package/dist/episodes/types.js +6 -0
- package/dist/episodes/work-at-risk.d.ts +12 -0
- package/dist/episodes/work-at-risk.js +38 -0
- package/dist/episodes/work-summary-anchor.d.ts +23 -0
- package/dist/episodes/work-summary-anchor.js +73 -0
- package/dist/games/coins.d.ts +66 -0
- package/dist/games/coins.js +165 -0
- package/dist/games/game-base.d.ts +84 -0
- package/dist/games/game-base.js +204 -0
- package/dist/games/index.d.ts +16 -0
- package/dist/games/index.js +49 -0
- package/dist/games/scores.d.ts +69 -0
- package/dist/games/scores.js +191 -0
- package/dist/games/tetris/board.d.ts +59 -0
- package/dist/games/tetris/board.js +170 -0
- package/dist/games/tetris/index.d.ts +109 -0
- package/dist/games/tetris/index.js +610 -0
- package/dist/games/tetris/pieces.d.ts +44 -0
- package/dist/games/tetris/pieces.js +271 -0
- package/dist/games/tetris/renderer.d.ts +26 -0
- package/dist/games/tetris/renderer.js +77 -0
- package/dist/guide/guide-content.d.ts +23 -0
- package/dist/guide/guide-content.js +196 -0
- package/dist/guide/index.d.ts +8 -0
- package/dist/guide/index.js +7 -0
- package/dist/guide/shared-content.d.ts +37 -0
- package/dist/guide/shared-content.js +1272 -0
- package/dist/guide/tutorial-helpers.d.ts +57 -0
- package/dist/guide/tutorial-helpers.js +147 -0
- package/dist/handlers/ask-user-handlers.d.ts +32 -0
- package/dist/handlers/ask-user-handlers.js +104 -0
- package/dist/handlers/delegation-handlers.d.ts +34 -0
- package/dist/handlers/delegation-handlers.js +291 -0
- package/dist/handlers/permission-handler.d.ts +30 -0
- package/dist/handlers/permission-handler.js +205 -0
- package/dist/index.d.ts +11 -1
- package/dist/index.js +448 -271
- package/dist/input-handlers/memory-handler.d.ts +1 -1
- package/dist/input-handlers/memory-handler.js +2 -1
- package/dist/models/index.d.ts +10 -0
- package/dist/models/index.js +12 -0
- package/dist/models/model-registry.d.ts +38 -0
- package/dist/models/model-registry.js +69 -0
- package/dist/models/model-tiers.d.ts +28 -0
- package/dist/models/model-tiers.js +71 -0
- package/dist/models/model-validation.d.ts +25 -0
- package/dist/models/model-validation.js +291 -0
- package/dist/models/ollama-models.d.ts +73 -0
- package/dist/models/ollama-models.js +178 -0
- package/dist/models/provider-types.d.ts +6 -0
- package/dist/models/provider-types.js +1 -0
- package/dist/models/providers.d.ts +35 -0
- package/dist/models/providers.js +58 -0
- package/dist/models/types.d.ts +4 -0
- package/dist/models/types.js +4 -0
- package/dist/multi-agent/activity.d.ts +21 -0
- package/dist/multi-agent/activity.js +34 -0
- package/dist/multi-agent/agent-selection.d.ts +55 -0
- package/dist/multi-agent/agent-selection.js +90 -0
- package/dist/multi-agent/artifacts.d.ts +197 -0
- package/dist/multi-agent/artifacts.js +379 -0
- package/dist/multi-agent/checkpointer.d.ts +138 -0
- package/dist/multi-agent/checkpointer.js +471 -0
- package/dist/multi-agent/collision-utils.d.ts +16 -0
- package/dist/multi-agent/collision-utils.js +28 -0
- package/dist/multi-agent/context-resolver.d.ts +97 -0
- package/dist/multi-agent/context-resolver.js +316 -0
- package/dist/multi-agent/custom-agents.d.ts +83 -0
- package/dist/multi-agent/custom-agents.js +227 -0
- package/dist/multi-agent/delegation-tracker.d.ts +157 -0
- package/dist/multi-agent/delegation-tracker.js +243 -0
- package/dist/multi-agent/file-lock-hook.d.ts +29 -0
- package/dist/multi-agent/file-lock-hook.js +97 -0
- package/dist/multi-agent/file-locks.d.ts +58 -0
- package/dist/multi-agent/file-locks.js +194 -0
- package/dist/multi-agent/index.d.ts +24 -0
- package/dist/multi-agent/index.js +30 -0
- package/dist/multi-agent/mention-parser.d.ts +64 -0
- package/dist/multi-agent/mention-parser.js +146 -0
- package/dist/multi-agent/notification-manager.d.ts +84 -0
- package/dist/multi-agent/notification-manager.js +224 -0
- package/dist/multi-agent/pending-requests.d.ts +122 -0
- package/dist/multi-agent/pending-requests.js +155 -0
- package/dist/multi-agent/session-registry.d.ts +139 -0
- package/dist/multi-agent/session-registry.js +514 -0
- package/dist/multi-agent/shared-context.d.ts +293 -0
- package/dist/multi-agent/shared-context.js +671 -0
- package/dist/multi-agent/skill-requirements.d.ts +66 -0
- package/dist/multi-agent/skill-requirements.js +178 -0
- package/dist/multi-agent/task-assignment.d.ts +69 -0
- package/dist/multi-agent/task-assignment.js +123 -0
- package/dist/multi-agent/task-suggestion.d.ts +31 -0
- package/dist/multi-agent/task-suggestion.js +72 -0
- package/dist/multi-agent/team-agent.d.ts +201 -0
- package/dist/multi-agent/team-agent.js +488 -0
- package/dist/multi-agent/team.d.ts +286 -0
- package/dist/multi-agent/team.js +610 -0
- package/dist/multi-agent/tool-config.d.ts +110 -0
- package/dist/multi-agent/tool-config.js +661 -0
- package/dist/multi-agent/types.d.ts +211 -0
- package/dist/multi-agent/types.js +617 -0
- package/dist/prompts/plan-mode-prompt.d.ts +11 -0
- package/dist/prompts/plan-mode-prompt.js +95 -0
- package/dist/repl-helpers.js +3 -2
- package/dist/repl-v2.d.ts +401 -2
- package/dist/repl-v2.js +2577 -65
- package/dist/session/index.d.ts +6 -0
- package/dist/session/index.js +6 -0
- package/dist/session/project-session-manager.d.ts +158 -0
- package/dist/session/project-session-manager.js +650 -0
- package/dist/settings/index.d.ts +133 -13
- package/dist/settings/index.js +329 -24
- package/dist/settings/mcp-config.d.ts +76 -0
- package/dist/settings/mcp-config.js +143 -0
- package/dist/settings/paths.d.ts +4 -0
- package/dist/settings/paths.js +6 -0
- package/dist/shared-handlers.d.ts +62 -0
- package/dist/shared-handlers.js +48 -0
- package/dist/system-prompt/builder.d.ts +5 -0
- package/dist/system-prompt/builder.js +4 -0
- package/dist/system-prompt/index.d.ts +18 -0
- package/dist/system-prompt/index.js +18 -0
- package/dist/system-prompt/modules.d.ts +5 -0
- package/dist/system-prompt/modules.js +4 -0
- package/dist/tabbed-menu.js +2 -1
- package/dist/templates/compilr-md-import.d.ts +16 -0
- package/dist/templates/compilr-md-import.js +241 -0
- package/dist/templates/compilr-md.js +10 -61
- package/dist/templates/config-json.d.ts +1 -25
- package/dist/templates/index.d.ts +2 -0
- package/dist/templates/index.js +34 -73
- package/dist/tool-names.d.ts +108 -0
- package/dist/tool-names.js +227 -0
- package/dist/tools/anchor-tools.d.ts +4 -4
- package/dist/tools/anchor-tools.js +1 -1
- package/dist/tools/artifact-tools.d.ts +42 -0
- package/dist/tools/artifact-tools.js +328 -0
- package/dist/tools/ask-user-simple.d.ts +1 -1
- package/dist/tools/ask-user-simple.js +2 -1
- package/dist/tools/ask-user.d.ts +1 -1
- package/dist/tools/ask-user.js +2 -1
- package/dist/tools/backlog-wrappers.d.ts +5 -3
- package/dist/tools/backlog-wrappers.js +16 -1
- package/dist/tools/backlog.d.ts +2 -2
- package/dist/tools/backlog.js +1 -1
- package/dist/tools/db-tools.d.ts +8 -61
- package/dist/tools/db-tools.js +8 -13
- package/dist/tools/delegate-background.d.ts +27 -0
- package/dist/tools/delegate-background.js +115 -0
- package/dist/tools/delegate.d.ts +22 -0
- package/dist/tools/delegate.js +97 -0
- package/dist/tools/delegation-status.d.ts +16 -0
- package/dist/tools/delegation-status.js +128 -0
- package/dist/tools/document-db.d.ts +5 -5
- package/dist/tools/document-db.js +1 -1
- package/dist/tools/guide-tool.d.ts +12 -0
- package/dist/tools/guide-tool.js +59 -0
- package/dist/tools/handoff.d.ts +25 -0
- package/dist/tools/handoff.js +99 -0
- package/dist/tools/meta-tools.d.ts +26 -0
- package/dist/tools/meta-tools.js +47 -0
- package/dist/tools/plan-tools.d.ts +54 -0
- package/dist/tools/plan-tools.js +338 -0
- package/dist/tools/platform-adapter.d.ts +29 -0
- package/dist/tools/platform-adapter.js +394 -0
- package/dist/tools/project-db.d.ts +5 -73
- package/dist/tools/project-db.js +5 -336
- package/dist/tools/recall-work-tool.d.ts +18 -0
- package/dist/tools/recall-work-tool.js +82 -0
- package/dist/tools/workitem-db.d.ts +43 -11
- package/dist/tools/workitem-db.js +186 -5
- package/dist/tools.d.ts +67 -2
- package/dist/tools.js +237 -47
- package/dist/ui/autocomplete-controller.d.ts +42 -0
- package/dist/ui/autocomplete-controller.js +384 -0
- package/dist/ui/base/index.d.ts +1 -1
- package/dist/ui/base/index.js +1 -1
- package/dist/ui/base/overlay-base-v2.d.ts +10 -0
- package/dist/ui/base/overlay-base-v2.js +14 -0
- package/dist/ui/base/render-utils.d.ts +19 -0
- package/dist/ui/base/render-utils.js +25 -0
- package/dist/ui/base/tabbed-list-overlay-v2.d.ts +16 -1
- package/dist/ui/base/tabbed-list-overlay-v2.js +19 -1
- package/dist/ui/constants/labels.d.ts +14 -0
- package/dist/ui/constants/labels.js +51 -0
- package/dist/ui/conversation-store.d.ts +55 -0
- package/dist/ui/conversation-store.js +107 -0
- package/dist/ui/conversation.js +11 -13
- package/dist/ui/diff.d.ts +7 -1
- package/dist/ui/diff.js +85 -48
- package/dist/ui/ephemeral.js +3 -9
- package/dist/ui/file-autocomplete.d.ts +24 -0
- package/dist/ui/file-autocomplete.js +56 -0
- package/dist/ui/footer-renderer.d.ts +69 -0
- package/dist/ui/footer-renderer.js +431 -0
- package/dist/ui/footer.d.ts +74 -7
- package/dist/ui/footer.js +173 -16
- package/dist/ui/input-controller.d.ts +51 -0
- package/dist/ui/input-controller.js +176 -0
- package/dist/ui/input-prompt.d.ts +19 -0
- package/dist/ui/input-prompt.js +206 -14
- package/dist/ui/keyboard-handler.d.ts +57 -0
- package/dist/ui/keyboard-handler.js +557 -0
- package/dist/ui/live-region-facade.d.ts +42 -0
- package/dist/ui/live-region-facade.js +205 -0
- package/dist/ui/live-region.d.ts +0 -4
- package/dist/ui/live-region.js +6 -14
- package/dist/ui/mascot/renderer.d.ts +1 -1
- package/dist/ui/mascot/renderer.js +37 -2
- package/dist/ui/overlay/data/tutorial-content.d.ts +9 -0
- package/dist/ui/overlay/data/tutorial-content.js +9 -0
- package/dist/ui/overlay/data/tutorial-registry.d.ts +12 -0
- package/dist/ui/overlay/data/tutorial-registry.js +116 -0
- package/dist/ui/overlay/data/tutorial-types.d.ts +35 -0
- package/dist/ui/overlay/data/tutorial-types.js +6 -0
- package/dist/ui/overlay/data/tutorials/basics/first-conversation.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/basics/first-conversation.js +220 -0
- package/dist/ui/overlay/data/tutorials/basics/first-project.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/basics/first-project.js +284 -0
- package/dist/ui/overlay/data/tutorials/basics/navigation.d.ts +8 -0
- package/dist/ui/overlay/data/tutorials/basics/navigation.js +22 -0
- package/dist/ui/overlay/data/tutorials/basics/welcome.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/basics/welcome.js +174 -0
- package/dist/ui/overlay/data/tutorials/config/context-management.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/config/context-management.js +158 -0
- package/dist/ui/overlay/data/tutorials/config/mcp-servers.d.ts +8 -0
- package/dist/ui/overlay/data/tutorials/config/mcp-servers.js +155 -0
- package/dist/ui/overlay/data/tutorials/config/model-selection.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/config/model-selection.js +162 -0
- package/dist/ui/overlay/data/tutorials/config/permissions-safety.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/config/permissions-safety.js +163 -0
- package/dist/ui/overlay/data/tutorials/config/settings-config.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/config/settings-config.js +166 -0
- package/dist/ui/overlay/data/tutorials/planning/arch.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/planning/arch.js +168 -0
- package/dist/ui/overlay/data/tutorials/planning/backlog.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/planning/backlog.js +103 -0
- package/dist/ui/overlay/data/tutorials/planning/build.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/planning/build.js +173 -0
- package/dist/ui/overlay/data/tutorials/planning/design.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/planning/design.js +205 -0
- package/dist/ui/overlay/data/tutorials/planning/docs.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/planning/docs.js +143 -0
- package/dist/ui/overlay/data/tutorials/planning/prd.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/planning/prd.js +173 -0
- package/dist/ui/overlay/data/tutorials/planning/scaffold.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/planning/scaffold.js +164 -0
- package/dist/ui/overlay/data/tutorials/planning/sketch.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/planning/sketch.js +58 -0
- package/dist/ui/overlay/data/tutorials/projects/anchors.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/projects/anchors.js +248 -0
- package/dist/ui/overlay/data/tutorials/projects/import-project.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/projects/import-project.js +172 -0
- package/dist/ui/overlay/data/tutorials/projects/managing-projects.d.ts +8 -0
- package/dist/ui/overlay/data/tutorials/projects/managing-projects.js +212 -0
- package/dist/ui/overlay/data/tutorials/projects/new-project.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/projects/new-project.js +251 -0
- package/dist/ui/overlay/data/tutorials/projects/session-management.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/projects/session-management.js +169 -0
- package/dist/ui/overlay/data/tutorials/teams/background-execution.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/teams/background-execution.js +171 -0
- package/dist/ui/overlay/data/tutorials/teams/multi-terminal.d.ts +8 -0
- package/dist/ui/overlay/data/tutorials/teams/multi-terminal.js +147 -0
- package/dist/ui/overlay/data/tutorials/teams/task-assignment.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/teams/task-assignment.js +204 -0
- package/dist/ui/overlay/data/tutorials/teams/team-overview.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/teams/team-overview.js +165 -0
- package/dist/ui/overlay/data/tutorials/teams/working-with-agents.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/teams/working-with-agents.js +172 -0
- package/dist/ui/overlay/impl/agents-overlay-v2.js +6 -17
- package/dist/ui/overlay/impl/anchors-overlay-v2.js +30 -64
- package/dist/ui/overlay/impl/artifact-detail-overlay-v2.d.ts +43 -0
- package/dist/ui/overlay/impl/artifact-detail-overlay-v2.js +232 -0
- package/dist/ui/overlay/impl/artifact-overlay-v2.d.ts +40 -0
- package/dist/ui/overlay/impl/artifact-overlay-v2.js +115 -0
- package/dist/ui/overlay/impl/ask-user-overlay-v2.js +2 -5
- package/dist/ui/overlay/impl/background-overlay-v2.d.ts +40 -0
- package/dist/ui/overlay/impl/background-overlay-v2.js +147 -0
- package/dist/ui/overlay/impl/backlog-overlay-v2.d.ts +4 -1
- package/dist/ui/overlay/impl/backlog-overlay-v2.js +55 -16
- package/dist/ui/overlay/impl/changelog-overlay-v2.d.ts +44 -0
- package/dist/ui/overlay/impl/changelog-overlay-v2.js +165 -0
- package/dist/ui/overlay/impl/commands-overlay-v2.js +4 -6
- package/dist/ui/overlay/impl/config-overlay-v2.d.ts +12 -1
- package/dist/ui/overlay/impl/config-overlay-v2.js +164 -100
- package/dist/ui/overlay/impl/custom-agent-form-overlay-v2.d.ts +83 -0
- package/dist/ui/overlay/impl/custom-agent-form-overlay-v2.js +711 -0
- package/dist/ui/overlay/impl/dashboard-overlay-v2.d.ts +2 -0
- package/dist/ui/overlay/impl/dashboard-overlay-v2.js +26 -3
- package/dist/ui/overlay/impl/delegations-overlay-v2.d.ts +28 -0
- package/dist/ui/overlay/impl/delegations-overlay-v2.js +279 -0
- package/dist/ui/overlay/impl/docs-overlay-v2.js +12 -9
- package/dist/ui/overlay/impl/document-detail-overlay-v2.d.ts +7 -0
- package/dist/ui/overlay/impl/document-detail-overlay-v2.js +119 -78
- package/dist/ui/overlay/impl/filter-overlay-v2.d.ts +41 -0
- package/dist/ui/overlay/impl/filter-overlay-v2.js +110 -0
- package/dist/ui/overlay/impl/games-overlay-v2.d.ts +31 -0
- package/dist/ui/overlay/impl/games-overlay-v2.js +135 -0
- package/dist/ui/overlay/impl/help-overlay-v2.d.ts +26 -3
- package/dist/ui/overlay/impl/help-overlay-v2.js +20 -42
- package/dist/ui/overlay/impl/login-overlay-v2.d.ts +49 -0
- package/dist/ui/overlay/impl/login-overlay-v2.js +277 -0
- package/dist/ui/overlay/impl/mcp-overlay-v2.d.ts +63 -0
- package/dist/ui/overlay/impl/mcp-overlay-v2.js +907 -0
- package/dist/ui/overlay/impl/model-overlay-v2.d.ts +57 -13
- package/dist/ui/overlay/impl/model-overlay-v2.js +1086 -61
- package/dist/ui/overlay/impl/new-overlay-v2.d.ts +37 -6
- package/dist/ui/overlay/impl/new-overlay-v2.js +715 -65
- package/dist/ui/overlay/impl/notifications-overlay-v2.d.ts +20 -0
- package/dist/ui/overlay/impl/notifications-overlay-v2.js +116 -0
- package/dist/ui/overlay/impl/onboarding-wizard-overlay-v2.d.ts +76 -0
- package/dist/ui/overlay/impl/onboarding-wizard-overlay-v2.js +728 -0
- package/dist/ui/overlay/impl/pending-overlay-v2.d.ts +51 -0
- package/dist/ui/overlay/impl/pending-overlay-v2.js +445 -0
- package/dist/ui/overlay/impl/permission-overlay-v2.js +5 -5
- package/dist/ui/overlay/impl/permissions-overlay-v2.d.ts +85 -0
- package/dist/ui/overlay/impl/permissions-overlay-v2.js +820 -0
- package/dist/ui/overlay/impl/plan-approval-overlay-v2.d.ts +35 -0
- package/dist/ui/overlay/impl/plan-approval-overlay-v2.js +181 -0
- package/dist/ui/overlay/impl/project-edit-overlay-v2.d.ts +36 -0
- package/dist/ui/overlay/impl/project-edit-overlay-v2.js +195 -0
- package/dist/ui/overlay/impl/projects-overlay-v2.d.ts +1 -0
- package/dist/ui/overlay/impl/projects-overlay-v2.js +278 -44
- package/dist/ui/overlay/impl/reset-overlay-v2.d.ts +39 -0
- package/dist/ui/overlay/impl/reset-overlay-v2.js +107 -0
- package/dist/ui/overlay/impl/resume-overlay-v2.d.ts +60 -0
- package/dist/ui/overlay/impl/resume-overlay-v2.js +414 -0
- package/dist/ui/overlay/impl/session-mode-overlay-v2.d.ts +43 -0
- package/dist/ui/overlay/impl/session-mode-overlay-v2.js +124 -0
- package/dist/ui/overlay/impl/tasks-overlay-v2.d.ts +28 -0
- package/dist/ui/overlay/impl/tasks-overlay-v2.js +283 -0
- package/dist/ui/overlay/impl/team-overlay-v2.d.ts +86 -0
- package/dist/ui/overlay/impl/team-overlay-v2.js +692 -0
- package/dist/ui/overlay/impl/terminals-overlay-v2.d.ts +26 -0
- package/dist/ui/overlay/impl/terminals-overlay-v2.js +217 -0
- package/dist/ui/overlay/impl/tools-overlay-v2.js +3 -7
- package/dist/ui/overlay/impl/tutorial-overlay-v2.d.ts +30 -16
- package/dist/ui/overlay/impl/tutorial-overlay-v2.js +133 -956
- package/dist/ui/overlay/impl/workflow-overlay-v2.js +5 -1
- package/dist/ui/overlay/index.d.ts +20 -1
- package/dist/ui/overlay/index.js +19 -0
- package/dist/ui/overlay/types.d.ts +5 -0
- package/dist/ui/overlay-manager.d.ts +43 -0
- package/dist/ui/overlay-manager.js +238 -0
- package/dist/ui/overlays.js +4 -16
- package/dist/ui/permission-overlay.js +6 -5
- package/dist/ui/status-bar-controller.d.ts +33 -0
- package/dist/ui/status-bar-controller.js +99 -0
- package/dist/ui/subagent-renderer.js +3 -19
- package/dist/ui/terminal-autocomplete-utils.d.ts +23 -0
- package/dist/ui/terminal-autocomplete-utils.js +83 -0
- package/dist/ui/terminal-line-builders.d.ts +17 -0
- package/dist/ui/terminal-line-builders.js +42 -0
- package/dist/ui/terminal-render-item.d.ts +16 -0
- package/dist/ui/terminal-render-item.js +267 -0
- package/dist/ui/terminal-renderer.d.ts +7 -8
- package/dist/ui/terminal-renderer.js +7 -8
- package/dist/ui/terminal-types.d.ts +179 -0
- package/dist/ui/terminal-types.js +34 -0
- package/dist/ui/terminal-ui.d.ts +144 -276
- package/dist/ui/terminal-ui.js +384 -1861
- package/dist/ui/todo-zone.d.ts +19 -1
- package/dist/ui/todo-zone.js +71 -13
- package/dist/ui/tool-formatters.js +512 -1
- package/dist/ui/turn-metrics.d.ts +56 -0
- package/dist/ui/turn-metrics.js +75 -0
- package/dist/ui/types.d.ts +28 -0
- package/dist/ui/types.js +1 -0
- package/dist/ui/vscode-diff-ipc.d.ts +102 -0
- package/dist/ui/vscode-diff-ipc.js +385 -0
- package/dist/utils/credentials.d.ts +24 -5
- package/dist/utils/credentials.js +123 -9
- package/dist/utils/format-tokens.d.ts +13 -0
- package/dist/utils/format-tokens.js +18 -0
- package/dist/utils/git-config.d.ts +26 -0
- package/dist/utils/git-config.js +54 -0
- package/dist/utils/message-utils.d.ts +61 -0
- package/dist/utils/message-utils.js +72 -0
- package/dist/utils/model-tiers.d.ts +8 -1
- package/dist/utils/model-tiers.js +38 -16
- package/dist/utils/open-browser.d.ts +5 -0
- package/dist/utils/open-browser.js +32 -0
- package/dist/utils/path-safety.js +3 -2
- package/dist/utils/project-detection.d.ts +58 -0
- package/dist/utils/project-detection.js +424 -0
- package/dist/utils/project-memory.js +2 -1
- package/dist/utils/project-status.d.ts +2 -2
- package/dist/utils/startup-perf.d.ts +18 -0
- package/dist/utils/startup-perf.js +60 -0
- package/dist/utils/token-tracker.d.ts +62 -0
- package/dist/utils/token-tracker.js +150 -0
- package/dist/utils/token-types.d.ts +23 -0
- package/dist/utils/token-types.js +18 -0
- package/dist/utils/types/config-types.d.ts +32 -0
- package/dist/utils/types/config-types.js +8 -0
- package/dist/utils/update-checker.d.ts +28 -0
- package/dist/utils/update-checker.js +106 -0
- package/dist/utils/version.d.ts +7 -0
- package/dist/utils/version.js +10 -0
- package/dist/utils/vscode-detect.d.ts +39 -0
- package/dist/utils/vscode-detect.js +137 -0
- package/package.json +25 -12
- package/dist/commands/handler-types.d.ts +0 -68
- package/dist/commands/handler-types.js +0 -8
- package/dist/commands/handlers/agent-commands.d.ts +0 -13
- package/dist/commands/handlers/agent-commands.js +0 -305
- package/dist/commands/handlers/design-commands.d.ts +0 -15
- package/dist/commands/handlers/design-commands.js +0 -334
- package/dist/commands/handlers/index.d.ts +0 -20
- package/dist/commands/handlers/index.js +0 -43
- package/dist/commands/handlers/overlay-commands.d.ts +0 -21
- package/dist/commands/handlers/overlay-commands.js +0 -287
- package/dist/commands/handlers/project-commands.d.ts +0 -11
- package/dist/commands/handlers/project-commands.js +0 -167
- package/dist/commands/handlers/simple-commands.d.ts +0 -19
- package/dist/commands/handlers/simple-commands.js +0 -144
- package/dist/commands/registry.d.ts +0 -50
- package/dist/commands/registry.js +0 -75
- package/dist/index.old.d.ts +0 -7
- package/dist/index.old.js +0 -1014
- package/dist/repl.d.ts +0 -149
- package/dist/repl.js +0 -1151
- package/dist/templates/claude-md.d.ts +0 -7
- package/dist/templates/claude-md.js +0 -189
- package/dist/test-autocomplete.d.ts +0 -7
- package/dist/test-autocomplete.js +0 -85
- package/dist/test-tabbed-menu.d.ts +0 -7
- package/dist/test-tabbed-menu.js +0 -25
- package/dist/tool-selector.d.ts +0 -71
- package/dist/tool-selector.js +0 -184
- package/dist/ui/agents-overlay-v2.d.ts +0 -43
- package/dist/ui/agents-overlay-v2.js +0 -809
- package/dist/ui/agents-overlay.d.ts +0 -12
- package/dist/ui/agents-overlay.js +0 -863
- package/dist/ui/anchors-overlay.d.ts +0 -12
- package/dist/ui/anchors-overlay.js +0 -775
- package/dist/ui/arch-type-overlay.d.ts +0 -15
- package/dist/ui/arch-type-overlay.js +0 -201
- package/dist/ui/ask-user-overlay-v2.d.ts +0 -26
- package/dist/ui/ask-user-overlay-v2.js +0 -555
- package/dist/ui/ask-user-simple-overlay-v2.d.ts +0 -25
- package/dist/ui/ask-user-simple-overlay-v2.js +0 -215
- package/dist/ui/backlog-overlay.d.ts +0 -32
- package/dist/ui/backlog-overlay.js +0 -652
- package/dist/ui/commands-overlay-v2.d.ts +0 -33
- package/dist/ui/commands-overlay-v2.js +0 -441
- package/dist/ui/commands-overlay.d.ts +0 -16
- package/dist/ui/commands-overlay.js +0 -439
- package/dist/ui/config-overlay.d.ts +0 -35
- package/dist/ui/config-overlay.js +0 -707
- package/dist/ui/docs-overlay.d.ts +0 -17
- package/dist/ui/docs-overlay.js +0 -303
- package/dist/ui/footer-v2.d.ts +0 -222
- package/dist/ui/footer-v2.js +0 -1349
- package/dist/ui/help-overlay-v2.d.ts +0 -34
- package/dist/ui/help-overlay-v2.js +0 -309
- package/dist/ui/help-overlay.d.ts +0 -16
- package/dist/ui/help-overlay.js +0 -316
- package/dist/ui/init-overlay-v2.d.ts +0 -34
- package/dist/ui/init-overlay-v2.js +0 -600
- package/dist/ui/init-overlay.d.ts +0 -34
- package/dist/ui/init-overlay.js +0 -604
- package/dist/ui/input-prompt-v2.d.ts +0 -180
- package/dist/ui/input-prompt-v2.js +0 -999
- package/dist/ui/iteration-limit-overlay-v2.d.ts +0 -21
- package/dist/ui/iteration-limit-overlay-v2.js +0 -114
- package/dist/ui/keys-overlay-v2.d.ts +0 -41
- package/dist/ui/keys-overlay-v2.js +0 -248
- package/dist/ui/mascot-overlay-v2.d.ts +0 -41
- package/dist/ui/mascot-overlay-v2.js +0 -138
- package/dist/ui/mascot-overlay.d.ts +0 -21
- package/dist/ui/mascot-overlay.js +0 -146
- package/dist/ui/model-overlay-v2.d.ts +0 -49
- package/dist/ui/model-overlay-v2.js +0 -118
- package/dist/ui/model-overlay.d.ts +0 -27
- package/dist/ui/model-overlay.js +0 -221
- package/dist/ui/model-warning-overlay.d.ts +0 -30
- package/dist/ui/model-warning-overlay.js +0 -169
- package/dist/ui/new-overlay.d.ts +0 -34
- package/dist/ui/new-overlay.js +0 -604
- package/dist/ui/overlay/impl/init-overlay-v2.d.ts +0 -77
- package/dist/ui/overlay/impl/init-overlay-v2.js +0 -593
- package/dist/ui/overlay/overlay-types.d.ts +0 -128
- package/dist/ui/overlay/overlay-types.js +0 -22
- package/dist/ui/overlays/help-overlay-v2.d.ts +0 -28
- package/dist/ui/overlays/help-overlay-v2.js +0 -198
- package/dist/ui/overlays/index.d.ts +0 -11
- package/dist/ui/overlays/index.js +0 -11
- package/dist/ui/permission-overlay-v2.d.ts +0 -36
- package/dist/ui/permission-overlay-v2.js +0 -380
- package/dist/ui/projects-overlay.d.ts +0 -19
- package/dist/ui/projects-overlay.js +0 -484
- package/dist/ui/theme-overlay-v2.d.ts +0 -42
- package/dist/ui/theme-overlay-v2.js +0 -135
- package/dist/ui/theme-overlay.d.ts +0 -24
- package/dist/ui/theme-overlay.js +0 -127
- package/dist/ui/tools-overlay-v2.d.ts +0 -47
- package/dist/ui/tools-overlay-v2.js +0 -218
- package/dist/ui/tools-overlay.d.ts +0 -34
- package/dist/ui/tools-overlay.js +0 -230
- package/dist/ui/tutorial-overlay-v2.d.ts +0 -31
- package/dist/ui/tutorial-overlay-v2.js +0 -1035
- package/dist/ui/tutorial-overlay.d.ts +0 -11
- package/dist/ui/tutorial-overlay.js +0 -1034
- package/dist/ui/workflow-overlay.d.ts +0 -22
- package/dist/ui/workflow-overlay.js +0 -636
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Token Tracker
|
|
3
|
+
*
|
|
4
|
+
* Tracks token usage breakdown for debugging and optimization.
|
|
5
|
+
* Estimates are calculated when the agent is created and updated
|
|
6
|
+
* as context changes (messages added, etc.).
|
|
7
|
+
*/
|
|
8
|
+
import { getEncoding } from 'js-tiktoken';
|
|
9
|
+
import { formatTokens } from './format-tokens.js';
|
|
10
|
+
// Lazy-initialized tiktoken encoder
|
|
11
|
+
let encoder = null;
|
|
12
|
+
function getEncoder() {
|
|
13
|
+
if (!encoder) {
|
|
14
|
+
encoder = getEncoding('cl100k_base');
|
|
15
|
+
}
|
|
16
|
+
return encoder;
|
|
17
|
+
}
|
|
18
|
+
// =============================================================================
|
|
19
|
+
// Singleton State
|
|
20
|
+
// =============================================================================
|
|
21
|
+
let currentEstimates = {
|
|
22
|
+
system: 0,
|
|
23
|
+
role: 0,
|
|
24
|
+
tools: 0,
|
|
25
|
+
context: 0,
|
|
26
|
+
history: 0,
|
|
27
|
+
};
|
|
28
|
+
let lastCacheRead = 0;
|
|
29
|
+
let lastCacheCreation = 0;
|
|
30
|
+
// =============================================================================
|
|
31
|
+
// Estimation Helpers
|
|
32
|
+
// =============================================================================
|
|
33
|
+
/**
|
|
34
|
+
* Count tokens using tiktoken (cl100k_base encoding)
|
|
35
|
+
*/
|
|
36
|
+
export function estimateTokens(text) {
|
|
37
|
+
if (!text)
|
|
38
|
+
return 0;
|
|
39
|
+
return getEncoder().encode(text).length;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Count tokens for a JSON object (tool definition, etc.)
|
|
43
|
+
*/
|
|
44
|
+
export function estimateJsonTokens(obj) {
|
|
45
|
+
const json = JSON.stringify(obj);
|
|
46
|
+
return getEncoder().encode(json).length;
|
|
47
|
+
}
|
|
48
|
+
// =============================================================================
|
|
49
|
+
// Public API
|
|
50
|
+
// =============================================================================
|
|
51
|
+
/**
|
|
52
|
+
* Set static token estimates (called at agent creation)
|
|
53
|
+
*/
|
|
54
|
+
export function setStaticEstimates(estimates) {
|
|
55
|
+
currentEstimates = {
|
|
56
|
+
...currentEstimates,
|
|
57
|
+
...estimates,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Update history token estimate (called before each request)
|
|
62
|
+
*/
|
|
63
|
+
export function updateHistoryEstimate(historyTokens) {
|
|
64
|
+
currentEstimates.history = historyTokens;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Update cache info from API response
|
|
68
|
+
*/
|
|
69
|
+
export function updateCacheInfo(cacheRead, cacheCreation) {
|
|
70
|
+
lastCacheRead = cacheRead;
|
|
71
|
+
lastCacheCreation = cacheCreation;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Get current breakdown for display
|
|
75
|
+
*/
|
|
76
|
+
export function getTokenBreakdown() {
|
|
77
|
+
return {
|
|
78
|
+
system: currentEstimates.system,
|
|
79
|
+
role: currentEstimates.role,
|
|
80
|
+
tools: currentEstimates.tools,
|
|
81
|
+
context: currentEstimates.context,
|
|
82
|
+
history: currentEstimates.history,
|
|
83
|
+
cacheRead: lastCacheRead > 0 ? lastCacheRead : undefined,
|
|
84
|
+
cacheCreation: lastCacheCreation > 0 ? lastCacheCreation : undefined,
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Get total estimated tokens
|
|
89
|
+
*/
|
|
90
|
+
export function getTotalEstimate() {
|
|
91
|
+
return (currentEstimates.system +
|
|
92
|
+
currentEstimates.role +
|
|
93
|
+
currentEstimates.tools +
|
|
94
|
+
currentEstimates.context +
|
|
95
|
+
currentEstimates.history);
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Reset all estimates (for new agent/session)
|
|
99
|
+
*/
|
|
100
|
+
export function resetEstimates() {
|
|
101
|
+
currentEstimates = {
|
|
102
|
+
system: 0,
|
|
103
|
+
role: 0,
|
|
104
|
+
tools: 0,
|
|
105
|
+
context: 0,
|
|
106
|
+
history: 0,
|
|
107
|
+
};
|
|
108
|
+
lastCacheRead = 0;
|
|
109
|
+
lastCacheCreation = 0;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Format breakdown for display (compact form)
|
|
113
|
+
* Example: "sys:2k role:1k tools:12k ctx:0.4k hist:3k"
|
|
114
|
+
*/
|
|
115
|
+
export function formatBreakdownCompact() {
|
|
116
|
+
const parts = [];
|
|
117
|
+
if (currentEstimates.system > 0) {
|
|
118
|
+
parts.push(`sys:${formatTokens(currentEstimates.system)}`);
|
|
119
|
+
}
|
|
120
|
+
if (currentEstimates.role > 0) {
|
|
121
|
+
parts.push(`role:${formatTokens(currentEstimates.role)}`);
|
|
122
|
+
}
|
|
123
|
+
if (currentEstimates.tools > 0) {
|
|
124
|
+
parts.push(`tools:${formatTokens(currentEstimates.tools)}`);
|
|
125
|
+
}
|
|
126
|
+
if (currentEstimates.context > 0) {
|
|
127
|
+
parts.push(`ctx:${formatTokens(currentEstimates.context)}`);
|
|
128
|
+
}
|
|
129
|
+
if (currentEstimates.history > 0) {
|
|
130
|
+
parts.push(`hist:${formatTokens(currentEstimates.history)}`);
|
|
131
|
+
}
|
|
132
|
+
return parts.join(' ');
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Format cache info for display
|
|
136
|
+
* Example: "cached:18k new:5k"
|
|
137
|
+
*/
|
|
138
|
+
export function formatCacheInfo() {
|
|
139
|
+
if (lastCacheRead === 0 && lastCacheCreation === 0) {
|
|
140
|
+
return null;
|
|
141
|
+
}
|
|
142
|
+
const parts = [];
|
|
143
|
+
if (lastCacheRead > 0) {
|
|
144
|
+
parts.push(`cached:${formatTokens(lastCacheRead)}`);
|
|
145
|
+
}
|
|
146
|
+
if (lastCacheCreation > 0) {
|
|
147
|
+
parts.push(`new:${formatTokens(lastCacheCreation)}`);
|
|
148
|
+
}
|
|
149
|
+
return parts.join(' ');
|
|
150
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Token Breakdown Types
|
|
3
|
+
*
|
|
4
|
+
* Extracted from ui/types.ts so foundation-layer code (token-tracker)
|
|
5
|
+
* can reference it without importing from the domain layer.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Detailed breakdown of input token components.
|
|
9
|
+
* Helps debug and optimize token usage.
|
|
10
|
+
*/
|
|
11
|
+
export interface TokenBreakdown {
|
|
12
|
+
system: number;
|
|
13
|
+
role: number;
|
|
14
|
+
tools: number;
|
|
15
|
+
context: number;
|
|
16
|
+
history: number;
|
|
17
|
+
cacheRead?: number;
|
|
18
|
+
cacheCreation?: number;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Create an empty token breakdown
|
|
22
|
+
*/
|
|
23
|
+
export declare function emptyTokenBreakdown(): TokenBreakdown;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Token Breakdown Types
|
|
3
|
+
*
|
|
4
|
+
* Extracted from ui/types.ts so foundation-layer code (token-tracker)
|
|
5
|
+
* can reference it without importing from the domain layer.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Create an empty token breakdown
|
|
9
|
+
*/
|
|
10
|
+
export function emptyTokenBreakdown() {
|
|
11
|
+
return {
|
|
12
|
+
system: 0,
|
|
13
|
+
role: 0,
|
|
14
|
+
tools: 0,
|
|
15
|
+
context: 0,
|
|
16
|
+
history: 0,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compilr Config Types
|
|
3
|
+
*
|
|
4
|
+
* Extracted from templates/config-json.ts so foundation-layer code
|
|
5
|
+
* (utils/project-status) can reference it without importing from
|
|
6
|
+
* the data layer.
|
|
7
|
+
*/
|
|
8
|
+
export interface CompilrConfig {
|
|
9
|
+
version: string;
|
|
10
|
+
project: {
|
|
11
|
+
name: string;
|
|
12
|
+
description: string;
|
|
13
|
+
createdAt: string;
|
|
14
|
+
};
|
|
15
|
+
paths: {
|
|
16
|
+
/** Absolute path to the project/code repository */
|
|
17
|
+
project: string;
|
|
18
|
+
/** Absolute path to the docs repository (two-repo pattern only) */
|
|
19
|
+
docs: string | null;
|
|
20
|
+
/** Directory where .compilr/config.json lives (for reference) */
|
|
21
|
+
workflowRoot: string;
|
|
22
|
+
};
|
|
23
|
+
settings: {
|
|
24
|
+
repoPattern: 'single' | 'two-repo';
|
|
25
|
+
techStack: string;
|
|
26
|
+
codingStandards: string;
|
|
27
|
+
};
|
|
28
|
+
sessions: {
|
|
29
|
+
count: number;
|
|
30
|
+
lastSession: string | null;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Update checker utility
|
|
3
|
+
*
|
|
4
|
+
* Queries npm registry to check for new versions of @compilr-dev/cli
|
|
5
|
+
*/
|
|
6
|
+
export interface UpdateInfo {
|
|
7
|
+
currentVersion: string;
|
|
8
|
+
latestVersion: string;
|
|
9
|
+
updateAvailable: boolean;
|
|
10
|
+
releaseUrl: string;
|
|
11
|
+
npmUrl: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Check npm registry for the latest version
|
|
15
|
+
*/
|
|
16
|
+
export declare function checkForUpdates(): Promise<UpdateInfo>;
|
|
17
|
+
/**
|
|
18
|
+
* Format update notification message
|
|
19
|
+
*/
|
|
20
|
+
export declare function formatUpdateMessage(info: UpdateInfo): string;
|
|
21
|
+
/**
|
|
22
|
+
* Perform the update via npm
|
|
23
|
+
* Returns true if update was successful
|
|
24
|
+
*/
|
|
25
|
+
export declare function performUpdate(): Promise<{
|
|
26
|
+
success: boolean;
|
|
27
|
+
message: string;
|
|
28
|
+
}>;
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Update checker utility
|
|
3
|
+
*
|
|
4
|
+
* Queries npm registry to check for new versions of @compilr-dev/cli
|
|
5
|
+
*/
|
|
6
|
+
import { VERSION } from './version.js';
|
|
7
|
+
/**
|
|
8
|
+
* Check npm registry for the latest version
|
|
9
|
+
*/
|
|
10
|
+
export async function checkForUpdates() {
|
|
11
|
+
const packageName = '@compilr-dev/cli';
|
|
12
|
+
const registryUrl = `https://registry.npmjs.org/${packageName}/latest`;
|
|
13
|
+
try {
|
|
14
|
+
const response = await fetch(registryUrl, {
|
|
15
|
+
headers: {
|
|
16
|
+
Accept: 'application/json',
|
|
17
|
+
},
|
|
18
|
+
// Short timeout to not block startup
|
|
19
|
+
signal: AbortSignal.timeout(5000),
|
|
20
|
+
});
|
|
21
|
+
if (!response.ok) {
|
|
22
|
+
throw new Error(`Registry returned ${String(response.status)}`);
|
|
23
|
+
}
|
|
24
|
+
const data = (await response.json());
|
|
25
|
+
const latestVersion = data.version;
|
|
26
|
+
return {
|
|
27
|
+
currentVersion: VERSION,
|
|
28
|
+
latestVersion,
|
|
29
|
+
updateAvailable: isNewerVersion(latestVersion, VERSION),
|
|
30
|
+
releaseUrl: `https://github.com/compilr-dev/cli/releases/tag/v${latestVersion}`,
|
|
31
|
+
npmUrl: `https://www.npmjs.com/package/${packageName}`,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
// Network error or timeout - return no update available
|
|
36
|
+
return {
|
|
37
|
+
currentVersion: VERSION,
|
|
38
|
+
latestVersion: VERSION,
|
|
39
|
+
updateAvailable: false,
|
|
40
|
+
releaseUrl: '',
|
|
41
|
+
npmUrl: `https://www.npmjs.com/package/${packageName}`,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Compare semantic versions
|
|
47
|
+
* Returns true if version1 > version2
|
|
48
|
+
*/
|
|
49
|
+
function isNewerVersion(version1, version2) {
|
|
50
|
+
const v1Parts = version1.split('.').map(Number);
|
|
51
|
+
const v2Parts = version2.split('.').map(Number);
|
|
52
|
+
for (let i = 0; i < Math.max(v1Parts.length, v2Parts.length); i++) {
|
|
53
|
+
const v1 = v1Parts[i] || 0;
|
|
54
|
+
const v2 = v2Parts[i] || 0;
|
|
55
|
+
if (v1 > v2)
|
|
56
|
+
return true;
|
|
57
|
+
if (v1 < v2)
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Format update notification message
|
|
64
|
+
*/
|
|
65
|
+
export function formatUpdateMessage(info) {
|
|
66
|
+
if (!info.updateAvailable) {
|
|
67
|
+
return '';
|
|
68
|
+
}
|
|
69
|
+
return [
|
|
70
|
+
`Update available: v${info.currentVersion} → v${info.latestVersion}`,
|
|
71
|
+
`Run: npm update -g @compilr-dev/cli`,
|
|
72
|
+
].join('\n');
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Perform the update via npm
|
|
76
|
+
* Returns true if update was successful
|
|
77
|
+
*/
|
|
78
|
+
export async function performUpdate() {
|
|
79
|
+
const { spawn } = await import('child_process');
|
|
80
|
+
return new Promise((resolve) => {
|
|
81
|
+
const child = spawn('npm', ['update', '-g', '@compilr-dev/cli'], {
|
|
82
|
+
stdio: 'inherit',
|
|
83
|
+
shell: true,
|
|
84
|
+
});
|
|
85
|
+
child.on('close', (code) => {
|
|
86
|
+
if (code === 0) {
|
|
87
|
+
resolve({
|
|
88
|
+
success: true,
|
|
89
|
+
message: 'Update completed. Please restart the CLI.',
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
resolve({
|
|
94
|
+
success: false,
|
|
95
|
+
message: `Update failed with exit code ${String(code ?? 'unknown')}. Try running: npm update -g @compilr-dev/cli`,
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
child.on('error', (error) => {
|
|
100
|
+
resolve({
|
|
101
|
+
success: false,
|
|
102
|
+
message: `Update failed: ${error.message}. Try running: npm update -g @compilr-dev/cli`,
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Version Constant
|
|
3
|
+
*
|
|
4
|
+
* Reads the version from package.json so foundation-layer code
|
|
5
|
+
* (update-checker) doesn't need to import from the app-layer index.ts.
|
|
6
|
+
*/
|
|
7
|
+
import { createRequire } from 'module';
|
|
8
|
+
const require = createRequire(import.meta.url);
|
|
9
|
+
const pkg = require('../../package.json');
|
|
10
|
+
export const VERSION = pkg.version;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* VS Code Detection & Extension Auto-Install
|
|
3
|
+
*
|
|
4
|
+
* Detects whether the CLI is running inside VS Code's integrated terminal
|
|
5
|
+
* and manages installation of the compilr-diff-companion extension.
|
|
6
|
+
*
|
|
7
|
+
* Foundation layer — no imports from domain or app layers.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Check if the CLI is running inside VS Code's integrated terminal.
|
|
11
|
+
* Checks multiple env vars that VS Code sets.
|
|
12
|
+
*/
|
|
13
|
+
export declare function isInVSCode(): boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Check if the `code` CLI command is available on PATH.
|
|
16
|
+
* Cached after first call.
|
|
17
|
+
*/
|
|
18
|
+
export declare function isCodeCliAvailable(): boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Check if VS Code diff integration is available (in VS Code + code CLI works).
|
|
21
|
+
*/
|
|
22
|
+
export declare function isVSDiffAvailable(): boolean;
|
|
23
|
+
/** Result of ensureExtensionInstalled() */
|
|
24
|
+
export interface ExtensionInstallResult {
|
|
25
|
+
/** Whether the extension is installed and ready */
|
|
26
|
+
installed: boolean;
|
|
27
|
+
/** Whether a fresh install/upgrade just happened (reload needed to activate) */
|
|
28
|
+
needsReload: boolean;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Ensure the compilr-diff-companion extension is installed (and up to date).
|
|
32
|
+
*
|
|
33
|
+
* - If not installed: installs the bundled VSIX → needsReload = true
|
|
34
|
+
* - If installed but older version: upgrades → needsReload = true
|
|
35
|
+
* - If already current: no-op → needsReload = false
|
|
36
|
+
*
|
|
37
|
+
* Runs silently. Result is cached for the session — only runs once.
|
|
38
|
+
*/
|
|
39
|
+
export declare function ensureExtensionInstalled(): Promise<ExtensionInstallResult>;
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* VS Code Detection & Extension Auto-Install
|
|
3
|
+
*
|
|
4
|
+
* Detects whether the CLI is running inside VS Code's integrated terminal
|
|
5
|
+
* and manages installation of the compilr-diff-companion extension.
|
|
6
|
+
*
|
|
7
|
+
* Foundation layer — no imports from domain or app layers.
|
|
8
|
+
*/
|
|
9
|
+
import { execSync } from 'child_process';
|
|
10
|
+
import * as path from 'path';
|
|
11
|
+
import { fileURLToPath } from 'url';
|
|
12
|
+
// =============================================================================
|
|
13
|
+
// Detection (cached at module level — env vars don't change mid-session)
|
|
14
|
+
// =============================================================================
|
|
15
|
+
let _isInVSCode = null;
|
|
16
|
+
let _isCodeCliAvailable = null;
|
|
17
|
+
/**
|
|
18
|
+
* Check if the CLI is running inside VS Code's integrated terminal.
|
|
19
|
+
* Checks multiple env vars that VS Code sets.
|
|
20
|
+
*/
|
|
21
|
+
export function isInVSCode() {
|
|
22
|
+
if (_isInVSCode !== null)
|
|
23
|
+
return _isInVSCode;
|
|
24
|
+
_isInVSCode = Boolean(process.env.TERM_PROGRAM === 'vscode' ||
|
|
25
|
+
process.env.VSCODE_GIT_IPC_HANDLE ||
|
|
26
|
+
process.env.VSCODE_INJECTION);
|
|
27
|
+
return _isInVSCode;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Check if the `code` CLI command is available on PATH.
|
|
31
|
+
* Cached after first call.
|
|
32
|
+
*/
|
|
33
|
+
export function isCodeCliAvailable() {
|
|
34
|
+
if (_isCodeCliAvailable !== null)
|
|
35
|
+
return _isCodeCliAvailable;
|
|
36
|
+
try {
|
|
37
|
+
execSync('which code', { stdio: ['pipe', 'pipe', 'pipe'] });
|
|
38
|
+
_isCodeCliAvailable = true;
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
_isCodeCliAvailable = false;
|
|
42
|
+
}
|
|
43
|
+
return _isCodeCliAvailable;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Check if VS Code diff integration is available (in VS Code + code CLI works).
|
|
47
|
+
*/
|
|
48
|
+
export function isVSDiffAvailable() {
|
|
49
|
+
return isInVSCode() && isCodeCliAvailable();
|
|
50
|
+
}
|
|
51
|
+
// =============================================================================
|
|
52
|
+
// Extension Version
|
|
53
|
+
// =============================================================================
|
|
54
|
+
/** Version of the bundled extension (must match vscode-extension/package.json) */
|
|
55
|
+
const BUNDLED_EXTENSION_VERSION = '0.0.2';
|
|
56
|
+
/**
|
|
57
|
+
* Get the installed version of the compilr-diff-companion extension.
|
|
58
|
+
* Returns null if not installed.
|
|
59
|
+
*/
|
|
60
|
+
function getInstalledExtensionVersion() {
|
|
61
|
+
try {
|
|
62
|
+
const output = execSync('code --list-extensions --show-versions', {
|
|
63
|
+
encoding: 'utf-8',
|
|
64
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
65
|
+
timeout: 10_000,
|
|
66
|
+
});
|
|
67
|
+
for (const line of output.split('\n')) {
|
|
68
|
+
if (line.startsWith('compilr.compilr-diff-companion@')) {
|
|
69
|
+
return line.split('@')[1].trim();
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
// code CLI not available or failed
|
|
75
|
+
}
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
// =============================================================================
|
|
79
|
+
// Extension Install
|
|
80
|
+
// =============================================================================
|
|
81
|
+
let _extensionCheckDone = false;
|
|
82
|
+
/**
|
|
83
|
+
* Ensure the compilr-diff-companion extension is installed (and up to date).
|
|
84
|
+
*
|
|
85
|
+
* - If not installed: installs the bundled VSIX → needsReload = true
|
|
86
|
+
* - If installed but older version: upgrades → needsReload = true
|
|
87
|
+
* - If already current: no-op → needsReload = false
|
|
88
|
+
*
|
|
89
|
+
* Runs silently. Result is cached for the session — only runs once.
|
|
90
|
+
*/
|
|
91
|
+
export function ensureExtensionInstalled() {
|
|
92
|
+
if (_extensionCheckDone)
|
|
93
|
+
return Promise.resolve({ installed: true, needsReload: false });
|
|
94
|
+
try {
|
|
95
|
+
const installedVersion = getInstalledExtensionVersion();
|
|
96
|
+
// Skip if already at or above bundled version
|
|
97
|
+
if (installedVersion && compareVersions(installedVersion, BUNDLED_EXTENSION_VERSION) >= 0) {
|
|
98
|
+
_extensionCheckDone = true;
|
|
99
|
+
return Promise.resolve({ installed: true, needsReload: false });
|
|
100
|
+
}
|
|
101
|
+
// Resolve VSIX path relative to this module's compiled location
|
|
102
|
+
// In dist/: dist/utils/vscode-detect.js -> dist/compilr-diff-companion.vsix
|
|
103
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
104
|
+
const __dirname = path.dirname(__filename);
|
|
105
|
+
const vsixPath = path.resolve(__dirname, '..', 'compilr-diff-companion.vsix');
|
|
106
|
+
execSync(`code --install-extension "${vsixPath}" --force`, {
|
|
107
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
108
|
+
timeout: 30_000,
|
|
109
|
+
});
|
|
110
|
+
_extensionCheckDone = true;
|
|
111
|
+
// Extension was just installed/upgraded — needs VS Code reload to activate
|
|
112
|
+
return Promise.resolve({ installed: true, needsReload: true });
|
|
113
|
+
}
|
|
114
|
+
catch {
|
|
115
|
+
// Silent failure — VS Code diff is optional
|
|
116
|
+
return Promise.resolve({ installed: false, needsReload: false });
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Compare two semver strings. Returns:
|
|
121
|
+
* -1 if a < b
|
|
122
|
+
* 0 if a == b
|
|
123
|
+
* 1 if a > b
|
|
124
|
+
*/
|
|
125
|
+
function compareVersions(a, b) {
|
|
126
|
+
const pa = a.split('.').map(Number);
|
|
127
|
+
const pb = b.split('.').map(Number);
|
|
128
|
+
for (let i = 0; i < 3; i++) {
|
|
129
|
+
const va = pa[i] ?? 0;
|
|
130
|
+
const vb = pb[i] ?? 0;
|
|
131
|
+
if (va < vb)
|
|
132
|
+
return -1;
|
|
133
|
+
if (va > vb)
|
|
134
|
+
return 1;
|
|
135
|
+
}
|
|
136
|
+
return 0;
|
|
137
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@compilr-dev/cli",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.1",
|
|
4
4
|
"description": "AI-powered coding assistant CLI using @compilr-dev/agents",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -8,13 +8,17 @@
|
|
|
8
8
|
"compilr": "dist/index.js"
|
|
9
9
|
},
|
|
10
10
|
"scripts": {
|
|
11
|
-
"build": "tsc",
|
|
11
|
+
"build": "tsc -b && chmod +x dist/index.js",
|
|
12
12
|
"start": "node dist/index.js",
|
|
13
|
-
"dev": "tsc && node dist/index.js",
|
|
14
|
-
"clean": "rm -rf dist",
|
|
13
|
+
"dev": "tsc -b && node dist/index.js",
|
|
14
|
+
"clean": "tsc -b --clean && rm -rf dist",
|
|
15
15
|
"lint": "eslint src/",
|
|
16
16
|
"lint:fix": "eslint src/ --fix",
|
|
17
|
-
"
|
|
17
|
+
"build:vsix": "cd vscode-extension && npx @vscode/vsce package --out ../dist/compilr-diff-companion.vsix",
|
|
18
|
+
"prepublishOnly": "npm run lint && npm test && npm run build && npm run build:vsix",
|
|
19
|
+
"test": "vitest run",
|
|
20
|
+
"test:watch": "vitest",
|
|
21
|
+
"test:coverage": "vitest run --coverage",
|
|
18
22
|
"test:scroll": "npx tsx scripts/test-scroll-regions.ts",
|
|
19
23
|
"test:scroll-input": "npx tsx scripts/test-scroll-input.ts",
|
|
20
24
|
"test:repl-v2": "npx tsx scripts/test-repl-v2.ts",
|
|
@@ -46,28 +50,37 @@
|
|
|
46
50
|
"LICENSE"
|
|
47
51
|
],
|
|
48
52
|
"engines": {
|
|
49
|
-
"node": ">=
|
|
53
|
+
"node": ">=20.0.0"
|
|
50
54
|
},
|
|
51
55
|
"dependencies": {
|
|
52
|
-
"@anthropic-ai/sdk": "^0.
|
|
53
|
-
"@compilr-dev/agents": "^0.3.
|
|
56
|
+
"@anthropic-ai/sdk": "^0.74.0",
|
|
57
|
+
"@compilr-dev/agents": "^0.3.16",
|
|
54
58
|
"@compilr-dev/agents-coding": "^1.0.2",
|
|
55
|
-
"@compilr-dev/editor-core": "^0.0.
|
|
59
|
+
"@compilr-dev/editor-core": "^0.0.2",
|
|
60
|
+
"@compilr-dev/sdk": "^0.1.11",
|
|
56
61
|
"@compilr-dev/ui-core": "^0.0.1",
|
|
62
|
+
"@modelcontextprotocol/sdk": "^1.23.0",
|
|
57
63
|
"better-sqlite3": "^12.5.0",
|
|
58
64
|
"chalk": "^5.6.2",
|
|
65
|
+
"js-tiktoken": "^1.0.21",
|
|
59
66
|
"marked": "^15.0.12",
|
|
60
67
|
"marked-terminal": "^7.3.0",
|
|
61
68
|
"picocolors": "^1.1.1",
|
|
62
|
-
"
|
|
69
|
+
"uuid": "^13.0.0"
|
|
70
|
+
},
|
|
71
|
+
"overrides": {
|
|
72
|
+
"minimatch": ">=10.2.1"
|
|
63
73
|
},
|
|
64
74
|
"devDependencies": {
|
|
65
75
|
"@eslint/js": "^9.39.1",
|
|
66
76
|
"@types/better-sqlite3": "^7.6.13",
|
|
67
77
|
"@types/marked-terminal": "^6.1.1",
|
|
68
|
-
"@types/node": "^
|
|
78
|
+
"@types/node": "^25.2.3",
|
|
79
|
+
"@types/uuid": "^10.0.0",
|
|
80
|
+
"@vscode/vsce": "^3.2.0",
|
|
69
81
|
"eslint": "^9.39.1",
|
|
70
82
|
"typescript": "^5.3.0",
|
|
71
|
-
"typescript-eslint": "^8.48.0"
|
|
83
|
+
"typescript-eslint": "^8.48.0",
|
|
84
|
+
"vitest": "^4.0.18"
|
|
72
85
|
}
|
|
73
86
|
}
|