@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
|
@@ -3,10 +3,12 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Essential commands: exit, clear, help
|
|
5
5
|
*/
|
|
6
|
-
import { HelpOverlayV2, TutorialOverlayV2, CommandsOverlayV2, DashboardOverlayV2, } from '../../ui/overlay/index.js';
|
|
7
|
-
import { executeCommand } from '../registry.js';
|
|
6
|
+
import { HelpOverlayV2, TutorialOverlayV2, CommandsOverlayV2, DashboardOverlayV2, ChangelogOverlayV2, } from '../../ui/overlay/index.js';
|
|
7
|
+
import { executeCommand, getHelpCommands, getCommand } from '../registry.js';
|
|
8
8
|
import { projectRepository } from '../../db/repositories/index.js';
|
|
9
9
|
import { setCurrentProject } from '../../tools/project-db.js';
|
|
10
|
+
import { getStyles } from '../../themes/index.js';
|
|
11
|
+
import { getCurrentProjectIdForTracking, handleProjectSwitch, convertMessagesToItems } from './session.js';
|
|
10
12
|
// =============================================================================
|
|
11
13
|
// Exit Command
|
|
12
14
|
// =============================================================================
|
|
@@ -14,6 +16,12 @@ export const exitCommand = {
|
|
|
14
16
|
name: 'exit',
|
|
15
17
|
aliases: ['quit', 'q'],
|
|
16
18
|
description: 'Exit the REPL',
|
|
19
|
+
details: 'Exits the CLI. Your conversation is not saved unless you export it first.',
|
|
20
|
+
examples: [
|
|
21
|
+
{ code: '/exit' },
|
|
22
|
+
{ code: '/quit', description: 'Alias' },
|
|
23
|
+
{ code: '/q', description: 'Short alias' },
|
|
24
|
+
],
|
|
17
25
|
execute(_args, ctx) {
|
|
18
26
|
ctx.ui.stop();
|
|
19
27
|
console.log('\nGoodbye!\n');
|
|
@@ -27,9 +35,15 @@ export const clearCommand = {
|
|
|
27
35
|
name: 'clear',
|
|
28
36
|
aliases: ['cls'],
|
|
29
37
|
description: 'Clear the screen',
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
38
|
+
details: 'Clears the terminal screen. Does not affect conversation history or context.',
|
|
39
|
+
examples: [{ code: '/clear' }],
|
|
40
|
+
async execute(_args, ctx) {
|
|
41
|
+
// Pause footer render loop so console.log() in printWelcome doesn't
|
|
42
|
+
// race with footer positioning (causes hints to land below the footer)
|
|
43
|
+
ctx.ui.pauseAnimation();
|
|
44
|
+
await ctx.printWelcome();
|
|
45
|
+
ctx.ui.resumeAnimation();
|
|
46
|
+
return true;
|
|
33
47
|
},
|
|
34
48
|
};
|
|
35
49
|
// =============================================================================
|
|
@@ -39,8 +53,19 @@ export const helpCommand = {
|
|
|
39
53
|
name: 'help',
|
|
40
54
|
aliases: ['h', '?'],
|
|
41
55
|
description: 'Show available commands',
|
|
56
|
+
details: 'Opens the help overlay with tabs for general info, commands list, and custom commands.',
|
|
57
|
+
examples: [
|
|
58
|
+
{ code: '/help' },
|
|
59
|
+
{ code: '/?', description: 'Short alias' },
|
|
60
|
+
],
|
|
61
|
+
interactions: [
|
|
62
|
+
'Tab cycles: All → Built-in → Custom',
|
|
63
|
+
'↑/↓ to navigate command list',
|
|
64
|
+
'Enter to view command details',
|
|
65
|
+
'Esc to go back or close',
|
|
66
|
+
],
|
|
42
67
|
async execute(_args, ctx) {
|
|
43
|
-
const helpOverlay = new HelpOverlayV2();
|
|
68
|
+
const helpOverlay = new HelpOverlayV2({ getHelpCommands, getCommand });
|
|
44
69
|
await ctx.ui.showOverlay(helpOverlay);
|
|
45
70
|
return true;
|
|
46
71
|
},
|
|
@@ -51,6 +76,15 @@ export const helpCommand = {
|
|
|
51
76
|
export const tutorialCommand = {
|
|
52
77
|
name: 'tutorial',
|
|
53
78
|
description: 'Interactive workflow tutorial',
|
|
79
|
+
details: 'Opens a comprehensive tutorial covering all CLI features. Browse by category (Basics, Projects, Planning, Teams, Config) and view detailed guides for each topic.',
|
|
80
|
+
examples: [{ code: '/tutorial' }],
|
|
81
|
+
interactions: [
|
|
82
|
+
'←/→ or Tab to switch between category tabs',
|
|
83
|
+
'↑/↓ or j/k to navigate topics',
|
|
84
|
+
'Enter to view topic details',
|
|
85
|
+
'/ to search tutorials',
|
|
86
|
+
'Esc to go back or close',
|
|
87
|
+
],
|
|
54
88
|
async execute(_args, ctx) {
|
|
55
89
|
const tutorialOverlay = new TutorialOverlayV2();
|
|
56
90
|
const result = await ctx.ui.showOverlay(tutorialOverlay);
|
|
@@ -61,11 +95,42 @@ export const tutorialCommand = {
|
|
|
61
95
|
},
|
|
62
96
|
};
|
|
63
97
|
// =============================================================================
|
|
98
|
+
// Changelog Command
|
|
99
|
+
// =============================================================================
|
|
100
|
+
export const changelogCommand = {
|
|
101
|
+
name: 'changelog',
|
|
102
|
+
aliases: ['changes', 'whatsnew'],
|
|
103
|
+
description: 'View release notes',
|
|
104
|
+
details: 'Opens a browsable overlay showing release notes for each version. View categorized changes (added, changed, fixed) for any release.',
|
|
105
|
+
examples: [
|
|
106
|
+
{ code: '/changelog' },
|
|
107
|
+
{ code: '/whatsnew', description: 'Alias' },
|
|
108
|
+
],
|
|
109
|
+
interactions: [
|
|
110
|
+
'↑/↓ or j/k to navigate releases',
|
|
111
|
+
'Enter to view release details',
|
|
112
|
+
'/ to search releases',
|
|
113
|
+
'Esc to go back or close',
|
|
114
|
+
],
|
|
115
|
+
async execute(_args, ctx) {
|
|
116
|
+
const overlay = new ChangelogOverlayV2();
|
|
117
|
+
await ctx.ui.showOverlay(overlay);
|
|
118
|
+
return true;
|
|
119
|
+
},
|
|
120
|
+
};
|
|
121
|
+
// =============================================================================
|
|
64
122
|
// Commands Command
|
|
65
123
|
// =============================================================================
|
|
66
124
|
export const commandsCommand = {
|
|
67
125
|
name: 'commands',
|
|
68
126
|
description: 'Manage custom commands',
|
|
127
|
+
details: 'Create, edit, or delete custom slash commands. Custom commands are markdown files that expand into prompts when invoked.',
|
|
128
|
+
examples: [{ code: '/commands' }],
|
|
129
|
+
interactions: [
|
|
130
|
+
'↑/↓ to navigate commands',
|
|
131
|
+
'Enter to select or create new',
|
|
132
|
+
'Esc to close',
|
|
133
|
+
],
|
|
69
134
|
async execute(_args, ctx) {
|
|
70
135
|
const commandsOverlay = new CommandsOverlayV2();
|
|
71
136
|
const result = await ctx.ui.showOverlay(commandsOverlay);
|
|
@@ -81,9 +146,31 @@ export const commandsCommand = {
|
|
|
81
146
|
export const menuCommand = {
|
|
82
147
|
name: 'menu',
|
|
83
148
|
description: 'Return to the Project Dashboard',
|
|
149
|
+
details: 'Opens the Project Dashboard where you can see current project info, switch projects, or start new work. From the dashboard you can create new projects, open existing ones, or start Quick Chat mode.',
|
|
150
|
+
examples: [{ code: '/menu' }],
|
|
151
|
+
interactions: [
|
|
152
|
+
'↑/↓ or j/k to navigate',
|
|
153
|
+
'←/→ or h/l to switch tabs (Dashboard ↔ More)',
|
|
154
|
+
'Enter to select, q/Esc to exit',
|
|
155
|
+
'n for /new, p for projects, c for chat, w for workflow',
|
|
156
|
+
],
|
|
84
157
|
async execute(_args, ctx) {
|
|
85
158
|
// Print logo to scrolling area (stays visible while overlays render below)
|
|
86
159
|
ctx.printLogo();
|
|
160
|
+
// Show session restoration info if available (startup only, one-shot)
|
|
161
|
+
const sessionInfo = ctx.consumeRestoredSessionInfo();
|
|
162
|
+
if (sessionInfo) {
|
|
163
|
+
const s = getStyles();
|
|
164
|
+
console.log(s.info(sessionInfo));
|
|
165
|
+
console.log('');
|
|
166
|
+
}
|
|
167
|
+
// Show update notification if available
|
|
168
|
+
if (ctx.updateAvailable) {
|
|
169
|
+
const s = getStyles();
|
|
170
|
+
console.log(s.warning(` ⬆ Update available: v${ctx.updateAvailable.current} → v${ctx.updateAvailable.latest}`));
|
|
171
|
+
console.log(s.muted(' Run: npm update -g @compilr-dev/cli'));
|
|
172
|
+
console.log('');
|
|
173
|
+
}
|
|
87
174
|
// Dashboard loop - returns to dashboard after sub-commands until user exits or continues
|
|
88
175
|
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
89
176
|
while (true) {
|
|
@@ -98,9 +185,10 @@ export const menuCommand = {
|
|
|
98
185
|
ctx.ui.stop();
|
|
99
186
|
console.log('\nGoodbye!\n');
|
|
100
187
|
return false;
|
|
101
|
-
case 'continue':
|
|
188
|
+
case 'continue': {
|
|
102
189
|
// Switch to selected project if different from current
|
|
103
190
|
if (result.projectId) {
|
|
191
|
+
const oldProjectId = getCurrentProjectIdForTracking();
|
|
104
192
|
const project = projectRepository.getById(result.projectId);
|
|
105
193
|
if (project) {
|
|
106
194
|
setCurrentProject({
|
|
@@ -111,15 +199,51 @@ export const menuCommand = {
|
|
|
111
199
|
});
|
|
112
200
|
ctx.ui.setProjectName(project.displayName);
|
|
113
201
|
ctx.ui.print({ type: 'success', message: `Switched to project: ${project.displayName}` });
|
|
202
|
+
// Handle project switch - saves old session/team and loads new project's team
|
|
203
|
+
const switchResult = await handleProjectSwitch(oldProjectId, ctx.agent ?? null, ctx.team && ctx.agentFactory ? {
|
|
204
|
+
team: ctx.team,
|
|
205
|
+
agentFactory: ctx.agentFactory,
|
|
206
|
+
} : undefined);
|
|
207
|
+
if (switchResult?.switched) {
|
|
208
|
+
// Update the team if a new one was created/loaded
|
|
209
|
+
if (switchResult.newTeam && ctx.setTeam) {
|
|
210
|
+
ctx.setTeam(switchResult.newTeam);
|
|
211
|
+
// Update footer with new active agent
|
|
212
|
+
const active = switchResult.newTeam.getActive();
|
|
213
|
+
ctx.ui.setActiveTeamAgent({
|
|
214
|
+
id: active.id,
|
|
215
|
+
displayName: active.displayName,
|
|
216
|
+
mascot: active.mascot,
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
if (switchResult.sessionRestored) {
|
|
220
|
+
ctx.ui.print({ type: 'info', message: `Session restored (${String(switchResult.messageCount)} messages).` });
|
|
221
|
+
ctx.ui.print({ type: 'info', message: 'Tip: Use Ctrl+R to view conversation history.' });
|
|
222
|
+
if (switchResult.restoredMessages) {
|
|
223
|
+
ctx.ui.setRestoredHistory(convertMessagesToItems(switchResult.restoredMessages));
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
}
|
|
114
227
|
}
|
|
115
228
|
}
|
|
116
229
|
return true; // Exit loop, return to REPL
|
|
117
|
-
|
|
230
|
+
}
|
|
231
|
+
case 'chat': {
|
|
232
|
+
// Track old project for team saving
|
|
233
|
+
const oldProjectId = getCurrentProjectIdForTracking();
|
|
234
|
+
// Save current team before clearing project (if in a project)
|
|
235
|
+
if (oldProjectId !== null && ctx.team && ctx.agentFactory) {
|
|
236
|
+
await handleProjectSwitch(oldProjectId, ctx.agent ?? null, {
|
|
237
|
+
team: ctx.team,
|
|
238
|
+
agentFactory: ctx.agentFactory,
|
|
239
|
+
});
|
|
240
|
+
}
|
|
118
241
|
// Clear current project for quick chat mode
|
|
119
242
|
setCurrentProject(null);
|
|
120
243
|
ctx.ui.setProjectName(null);
|
|
121
244
|
ctx.ui.print({ type: 'warning', message: 'Quick Chat mode - no project context. Use /menu to select a project.' });
|
|
122
245
|
return true; // Exit loop, return to REPL
|
|
246
|
+
}
|
|
123
247
|
case 'new':
|
|
124
248
|
await executeCommand('new', '', ctx);
|
|
125
249
|
// Loop back to dashboard after /new completes
|
|
@@ -160,6 +284,7 @@ export const coreCommands = [
|
|
|
160
284
|
clearCommand,
|
|
161
285
|
helpCommand,
|
|
162
286
|
tutorialCommand,
|
|
287
|
+
changelogCommand,
|
|
163
288
|
commandsCommand,
|
|
164
289
|
menuCommand,
|
|
165
290
|
];
|
|
@@ -10,6 +10,8 @@ import { spawn } from 'child_process';
|
|
|
10
10
|
export const sampleTodosCommand = {
|
|
11
11
|
name: 'sample-todos',
|
|
12
12
|
description: 'Add sample todos for testing (debug)',
|
|
13
|
+
details: 'Debug command that adds sample todo items to the footer for testing the todo display. Not for regular use.',
|
|
14
|
+
examples: [{ code: '/sample-todos' }],
|
|
13
15
|
execute(_args, ctx) {
|
|
14
16
|
ctx.ui.setTodos([
|
|
15
17
|
{ content: 'First task', status: 'completed' },
|
|
@@ -26,6 +28,11 @@ export const sampleTodosCommand = {
|
|
|
26
28
|
export const suggestCommand = {
|
|
27
29
|
name: 'suggest',
|
|
28
30
|
description: 'Set ghost text suggestion (debug)',
|
|
31
|
+
details: 'Debug command that sets a ghost text suggestion in the input prompt for testing the autocomplete display.',
|
|
32
|
+
examples: [
|
|
33
|
+
{ code: '/suggest', description: 'Default suggestion' },
|
|
34
|
+
{ code: '/suggest hello world', description: 'Custom suggestion' },
|
|
35
|
+
],
|
|
29
36
|
execute(args, ctx) {
|
|
30
37
|
if (args) {
|
|
31
38
|
ctx.ui.setSuggestion(args);
|
|
@@ -44,6 +51,11 @@ export const suggestCommand = {
|
|
|
44
51
|
export const bashCommand = {
|
|
45
52
|
name: 'bash',
|
|
46
53
|
description: 'Execute a real bash command in LiveRegion (debug)',
|
|
54
|
+
details: 'Debug command that executes a real bash command and streams output to the LiveRegion. Used for testing bash display rendering.',
|
|
55
|
+
examples: [
|
|
56
|
+
{ code: '/bash', description: 'Default hello command' },
|
|
57
|
+
{ code: '/bash ls -la', description: 'Run ls command' },
|
|
58
|
+
],
|
|
47
59
|
async execute(args, ctx) {
|
|
48
60
|
const command = args || 'echo "Hello from bash!" && sleep 1 && echo "Done!"';
|
|
49
61
|
const id = `bash-${String(Date.now())}`;
|
|
@@ -103,6 +115,12 @@ function sleep(ms) {
|
|
|
103
115
|
export const subagentCommand = {
|
|
104
116
|
name: 'subagent',
|
|
105
117
|
description: 'Simulate a subagent in LiveRegion (debug)',
|
|
118
|
+
details: 'Debug command that simulates subagent execution with tool calls and completion in the LiveRegion. Used for testing subagent display rendering.',
|
|
119
|
+
examples: [
|
|
120
|
+
{ code: '/subagent', description: 'Single subagent' },
|
|
121
|
+
{ code: '/subagent multi', description: 'Multiple subagents' },
|
|
122
|
+
{ code: '/subagent 5', description: 'Run 5 subagents' },
|
|
123
|
+
],
|
|
106
124
|
async execute(args, ctx) {
|
|
107
125
|
// Parse args: "single" or "multi" or number
|
|
108
126
|
const mode = args.trim().toLowerCase();
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Delegations Command Handler
|
|
3
|
+
*
|
|
4
|
+
* Opens the delegations overlay to view coordinator delegation status.
|
|
5
|
+
*/
|
|
6
|
+
import type { CommandHandlerV2 } from '../types.js';
|
|
7
|
+
export declare const delegationsCommand: CommandHandlerV2;
|
|
8
|
+
export declare const delegationsCommands: CommandHandlerV2[];
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Delegations Command Handler
|
|
3
|
+
*
|
|
4
|
+
* Opens the delegations overlay to view coordinator delegation status.
|
|
5
|
+
*/
|
|
6
|
+
import { DelegationsOverlayV2 } from '../../ui/overlay/index.js';
|
|
7
|
+
export const delegationsCommand = {
|
|
8
|
+
name: 'delegations',
|
|
9
|
+
aliases: ['del'],
|
|
10
|
+
description: 'View delegation status and history',
|
|
11
|
+
details: 'Shows delegations from the coordinator to background specialists. ' +
|
|
12
|
+
'Displays active, completed, and failed delegations with timing and results.',
|
|
13
|
+
examples: [
|
|
14
|
+
{ code: '/delegations', description: 'Open the delegations overlay' },
|
|
15
|
+
{ code: '/del', description: 'Short alias' },
|
|
16
|
+
],
|
|
17
|
+
interactions: [
|
|
18
|
+
'↑↓ to navigate',
|
|
19
|
+
'Enter to view details',
|
|
20
|
+
'c to clear completed',
|
|
21
|
+
'Esc to close',
|
|
22
|
+
],
|
|
23
|
+
async execute(_args, ctx) {
|
|
24
|
+
const overlay = new DelegationsOverlayV2();
|
|
25
|
+
await ctx.ui.showOverlay(overlay);
|
|
26
|
+
return true;
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
export const delegationsCommands = [delegationsCommand];
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Files Command for REPL V2
|
|
3
|
+
*
|
|
4
|
+
* Shows files tracked during the session (read, modified, referenced).
|
|
5
|
+
* Supports multi-agent teams: shows files per agent.
|
|
6
|
+
*/
|
|
7
|
+
import type { CommandHandlerV2 } from '../types.js';
|
|
8
|
+
export declare const filesCommands: CommandHandlerV2[];
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Files Command for REPL V2
|
|
3
|
+
*
|
|
4
|
+
* Shows files tracked during the session (read, modified, referenced).
|
|
5
|
+
* Supports multi-agent teams: shows files per agent.
|
|
6
|
+
*/
|
|
7
|
+
import pc from 'picocolors';
|
|
8
|
+
// =============================================================================
|
|
9
|
+
// Helpers
|
|
10
|
+
// =============================================================================
|
|
11
|
+
const TYPE_LABELS = {
|
|
12
|
+
read: pc.cyan('read'),
|
|
13
|
+
modified: pc.yellow('modified'),
|
|
14
|
+
referenced: pc.dim('referenced'),
|
|
15
|
+
};
|
|
16
|
+
const TYPE_ICONS = {
|
|
17
|
+
read: pc.cyan('R'),
|
|
18
|
+
modified: pc.yellow('M'),
|
|
19
|
+
referenced: pc.dim('~'),
|
|
20
|
+
};
|
|
21
|
+
function formatPath(filePath) {
|
|
22
|
+
const cwd = process.cwd();
|
|
23
|
+
if (filePath.startsWith(cwd + '/')) {
|
|
24
|
+
return filePath.slice(cwd.length + 1);
|
|
25
|
+
}
|
|
26
|
+
return filePath;
|
|
27
|
+
}
|
|
28
|
+
function formatFileEntry(access) {
|
|
29
|
+
const icon = TYPE_ICONS[access.type];
|
|
30
|
+
const displayPath = formatPath(access.path);
|
|
31
|
+
const parts = [` [${icon}] ${displayPath}`];
|
|
32
|
+
if (access.lineCount !== undefined) {
|
|
33
|
+
parts.push(pc.dim(` (${String(access.lineCount)} lines)`));
|
|
34
|
+
}
|
|
35
|
+
if ('content' in access && access.content !== undefined) {
|
|
36
|
+
parts.push(pc.dim(' [cached]'));
|
|
37
|
+
}
|
|
38
|
+
return parts.join('');
|
|
39
|
+
}
|
|
40
|
+
function printFilesForAgent(ctx, agent, label, typeFilter) {
|
|
41
|
+
const tracker = agent.getFileTracker();
|
|
42
|
+
if (!tracker || tracker.size === 0) {
|
|
43
|
+
ctx.ui.print({ type: 'info', message: `${label}: No tracked files` });
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
const filterOpts = typeFilter ? { type: typeFilter } : undefined;
|
|
47
|
+
const accesses = tracker.getAccesses(filterOpts);
|
|
48
|
+
if (accesses.length === 0) {
|
|
49
|
+
ctx.ui.print({
|
|
50
|
+
type: 'info',
|
|
51
|
+
message: `${label}: No ${typeFilter ?? ''} files`,
|
|
52
|
+
});
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
const stats = tracker.getStats();
|
|
56
|
+
const lines = [];
|
|
57
|
+
lines.push('');
|
|
58
|
+
lines.push(pc.bold(label));
|
|
59
|
+
lines.push(pc.dim(` ${String(stats.read)} read, ${String(stats.modified)} modified, ${String(stats.referenced)} referenced`));
|
|
60
|
+
lines.push('');
|
|
61
|
+
if (typeFilter) {
|
|
62
|
+
lines.push(` ${TYPE_LABELS[typeFilter]} files:`);
|
|
63
|
+
for (const access of accesses) {
|
|
64
|
+
lines.push(formatFileEntry(access));
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
// Group by type: modified first, then read, then referenced
|
|
69
|
+
const modified = accesses.filter((a) => a.type === 'modified');
|
|
70
|
+
const read = accesses.filter((a) => a.type === 'read');
|
|
71
|
+
const referenced = accesses.filter((a) => a.type === 'referenced');
|
|
72
|
+
if (modified.length > 0) {
|
|
73
|
+
lines.push(` ${TYPE_LABELS.modified} (${String(modified.length)}):`);
|
|
74
|
+
for (const access of modified) {
|
|
75
|
+
lines.push(formatFileEntry(access));
|
|
76
|
+
}
|
|
77
|
+
lines.push('');
|
|
78
|
+
}
|
|
79
|
+
if (read.length > 0) {
|
|
80
|
+
lines.push(` ${TYPE_LABELS.read} (${String(read.length)}):`);
|
|
81
|
+
for (const access of read) {
|
|
82
|
+
lines.push(formatFileEntry(access));
|
|
83
|
+
}
|
|
84
|
+
lines.push('');
|
|
85
|
+
}
|
|
86
|
+
if (referenced.length > 0) {
|
|
87
|
+
lines.push(` ${TYPE_LABELS.referenced} (${String(referenced.length)}):`);
|
|
88
|
+
for (const access of referenced) {
|
|
89
|
+
lines.push(formatFileEntry(access));
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
ctx.ui.print({ type: 'raw-lines', lines });
|
|
94
|
+
}
|
|
95
|
+
// =============================================================================
|
|
96
|
+
// /files Command
|
|
97
|
+
// =============================================================================
|
|
98
|
+
const filesCommand = {
|
|
99
|
+
name: 'files',
|
|
100
|
+
description: 'Show tracked file accesses',
|
|
101
|
+
details: 'Display files read, modified, or referenced during this session. ' +
|
|
102
|
+
'In multi-agent teams, shows files per agent.',
|
|
103
|
+
examples: [
|
|
104
|
+
{ code: '/files', description: 'Show all tracked files' },
|
|
105
|
+
{ code: '/files read', description: 'Show only files that were read' },
|
|
106
|
+
{ code: '/files modified', description: 'Show only modified files' },
|
|
107
|
+
{ code: '/files referenced', description: 'Show only referenced files' },
|
|
108
|
+
],
|
|
109
|
+
execute(args, ctx) {
|
|
110
|
+
// Parse optional type filter
|
|
111
|
+
const trimmed = args.trim().toLowerCase();
|
|
112
|
+
let typeFilter;
|
|
113
|
+
if (trimmed === 'read' || trimmed === 'modified' || trimmed === 'referenced') {
|
|
114
|
+
typeFilter = trimmed;
|
|
115
|
+
}
|
|
116
|
+
else if (trimmed && trimmed !== '') {
|
|
117
|
+
ctx.ui.print({
|
|
118
|
+
type: 'warning',
|
|
119
|
+
message: `Unknown filter: "${trimmed}". Use: read, modified, referenced`,
|
|
120
|
+
});
|
|
121
|
+
return Promise.resolve(true);
|
|
122
|
+
}
|
|
123
|
+
// Collect all unique Agent instances (dedup by object identity)
|
|
124
|
+
const agentEntries = [];
|
|
125
|
+
const seen = new Set();
|
|
126
|
+
// Multi-agent: iterate all team agents
|
|
127
|
+
if (ctx.team) {
|
|
128
|
+
for (const teamAgent of ctx.team.getAll()) {
|
|
129
|
+
if (!teamAgent.agent)
|
|
130
|
+
continue;
|
|
131
|
+
seen.add(teamAgent.agent);
|
|
132
|
+
const label = teamAgent.id === 'default'
|
|
133
|
+
? 'Lead Agent'
|
|
134
|
+
: `$${teamAgent.id} (${teamAgent.displayName})`;
|
|
135
|
+
agentEntries.push({ label, agent: teamAgent.agent });
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
// Always check ctx.agent too — it may differ from team entries
|
|
139
|
+
// (e.g., REPL's active agent reference diverged after reinitialization)
|
|
140
|
+
if (ctx.agent && !seen.has(ctx.agent)) {
|
|
141
|
+
const label = ctx.team ? 'Active Agent' : 'Tracked Files';
|
|
142
|
+
agentEntries.push({ label, agent: ctx.agent });
|
|
143
|
+
}
|
|
144
|
+
if (agentEntries.length === 0) {
|
|
145
|
+
ctx.ui.print({ type: 'warning', message: 'Agent not available' });
|
|
146
|
+
return Promise.resolve(true);
|
|
147
|
+
}
|
|
148
|
+
let anyTracked = false;
|
|
149
|
+
for (const entry of agentEntries) {
|
|
150
|
+
const tracker = entry.agent.getFileTracker();
|
|
151
|
+
if (!tracker || tracker.size === 0)
|
|
152
|
+
continue;
|
|
153
|
+
anyTracked = true;
|
|
154
|
+
printFilesForAgent(ctx, entry.agent, entry.label, typeFilter);
|
|
155
|
+
}
|
|
156
|
+
if (!anyTracked) {
|
|
157
|
+
ctx.ui.print({ type: 'info', message: 'No tracked files' });
|
|
158
|
+
}
|
|
159
|
+
return Promise.resolve(true);
|
|
160
|
+
},
|
|
161
|
+
};
|
|
162
|
+
export const filesCommands = [filesCommand];
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Conversation Filter Command Handler
|
|
3
|
+
*
|
|
4
|
+
* Filters the conversation display to show only specific agents.
|
|
5
|
+
* The filter is display-only - full history is preserved.
|
|
6
|
+
*/
|
|
7
|
+
import type { CommandHandlerV2 } from '../types.js';
|
|
8
|
+
export declare const filterCommand: CommandHandlerV2;
|
|
9
|
+
export declare const filterCommands: CommandHandlerV2[];
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Conversation Filter Command Handler
|
|
3
|
+
*
|
|
4
|
+
* Filters the conversation display to show only specific agents.
|
|
5
|
+
* The filter is display-only - full history is preserved.
|
|
6
|
+
*/
|
|
7
|
+
import { FilterOverlayV2 } from '../../ui/overlay/impl/filter-overlay-v2.js';
|
|
8
|
+
// =============================================================================
|
|
9
|
+
// Filter Command
|
|
10
|
+
// =============================================================================
|
|
11
|
+
export const filterCommand = {
|
|
12
|
+
name: 'filter',
|
|
13
|
+
aliases: ['f'],
|
|
14
|
+
description: 'Filter conversation to show only specific agents',
|
|
15
|
+
details: 'Shows only messages from selected agents. The filter is display-only - full history is preserved. Use /filter --clear or /f to show all messages again.',
|
|
16
|
+
examples: [
|
|
17
|
+
{ code: '/filter', description: 'Open filter overlay' },
|
|
18
|
+
{ code: '/f', description: 'Open filter overlay (alias)' },
|
|
19
|
+
{ code: '/filter $arch', description: 'Show only $arch messages' },
|
|
20
|
+
{ code: '/filter $arch $dev', description: 'Show $arch and $dev messages' },
|
|
21
|
+
{ code: '/filter --clear', description: 'Clear filter, show all messages' },
|
|
22
|
+
],
|
|
23
|
+
interactions: [
|
|
24
|
+
'Space to toggle agent selection',
|
|
25
|
+
'a to select all agents',
|
|
26
|
+
'n to deselect all agents',
|
|
27
|
+
'Enter to apply filter',
|
|
28
|
+
'Esc to cancel',
|
|
29
|
+
],
|
|
30
|
+
async execute(args, ctx) {
|
|
31
|
+
// Handle --clear flag
|
|
32
|
+
if (args.trim() === '--clear') {
|
|
33
|
+
ctx.ui.clearConversationFilter();
|
|
34
|
+
ctx.ui.print({
|
|
35
|
+
type: 'info',
|
|
36
|
+
message: 'Conversation filter cleared - showing all messages',
|
|
37
|
+
});
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
// Handle quick filter with agent names: /filter $arch $dev
|
|
41
|
+
const agentArgs = args.trim();
|
|
42
|
+
if (agentArgs) {
|
|
43
|
+
// Parse agent IDs from args (e.g., "$arch $dev" or "arch dev")
|
|
44
|
+
const agentIds = agentArgs
|
|
45
|
+
.split(/\s+/)
|
|
46
|
+
.map(arg => arg.replace(/^\$/, '').toLowerCase())
|
|
47
|
+
.filter(id => id.length > 0);
|
|
48
|
+
if (agentIds.length > 0) {
|
|
49
|
+
// Validate agent IDs exist in team
|
|
50
|
+
if (ctx.team) {
|
|
51
|
+
const validIds = agentIds.filter(id => ctx.team?.has(id));
|
|
52
|
+
const invalidIds = agentIds.filter(id => !ctx.team?.has(id));
|
|
53
|
+
if (invalidIds.length > 0) {
|
|
54
|
+
ctx.ui.print({
|
|
55
|
+
type: 'warning',
|
|
56
|
+
message: `Unknown agents: ${invalidIds.map(id => `$${id}`).join(', ')}`,
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
if (validIds.length > 0) {
|
|
60
|
+
ctx.ui.setConversationFilter(validIds);
|
|
61
|
+
ctx.ui.print({
|
|
62
|
+
type: 'info',
|
|
63
|
+
message: `Filtering to: ${validIds.map(id => `$${id}`).join(', ')}`,
|
|
64
|
+
});
|
|
65
|
+
return true;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
// No team, just apply filter
|
|
70
|
+
ctx.ui.setConversationFilter(agentIds);
|
|
71
|
+
ctx.ui.print({
|
|
72
|
+
type: 'info',
|
|
73
|
+
message: `Filtering to: ${agentIds.map(id => `$${id}`).join(', ')}`,
|
|
74
|
+
});
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
// No args - show overlay
|
|
80
|
+
if (!ctx.team) {
|
|
81
|
+
ctx.ui.print({
|
|
82
|
+
type: 'warning',
|
|
83
|
+
message: 'No team agents available. Use /filter $agent to filter manually.',
|
|
84
|
+
});
|
|
85
|
+
return true;
|
|
86
|
+
}
|
|
87
|
+
// Get current filter state
|
|
88
|
+
const currentFilter = ctx.ui.getConversationFilter();
|
|
89
|
+
// Get all agent IDs from team
|
|
90
|
+
const allAgents = ctx.team.getAgentIds().map(id => {
|
|
91
|
+
const agent = ctx.team?.get(id);
|
|
92
|
+
return {
|
|
93
|
+
id,
|
|
94
|
+
displayName: agent?.displayName ?? id,
|
|
95
|
+
mascot: agent?.mascot ?? '[•_•]',
|
|
96
|
+
selected: currentFilter.isActive ? currentFilter.agentIds.includes(id) : true,
|
|
97
|
+
};
|
|
98
|
+
});
|
|
99
|
+
// Show overlay
|
|
100
|
+
const overlay = new FilterOverlayV2({
|
|
101
|
+
agents: allAgents,
|
|
102
|
+
currentFilter: currentFilter.agentIds,
|
|
103
|
+
});
|
|
104
|
+
const result = await ctx.ui.showOverlay(overlay);
|
|
105
|
+
if (result && result.type === 'apply') {
|
|
106
|
+
if (result.agentIds.length === 0 || result.agentIds.length === allAgents.length) {
|
|
107
|
+
// All or none selected = clear filter
|
|
108
|
+
ctx.ui.clearConversationFilter();
|
|
109
|
+
ctx.ui.print({
|
|
110
|
+
type: 'info',
|
|
111
|
+
message: 'Conversation filter cleared - showing all messages',
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
ctx.ui.setConversationFilter(result.agentIds);
|
|
116
|
+
ctx.ui.print({
|
|
117
|
+
type: 'info',
|
|
118
|
+
message: `Filtering to: ${result.agentIds.map(id => `$${id}`).join(', ')}`,
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
return true;
|
|
123
|
+
},
|
|
124
|
+
};
|
|
125
|
+
// =============================================================================
|
|
126
|
+
// Export
|
|
127
|
+
// =============================================================================
|
|
128
|
+
export const filterCommands = [
|
|
129
|
+
filterCommand,
|
|
130
|
+
];
|