@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
|
@@ -6,117 +6,245 @@
|
|
|
6
6
|
import * as fs from 'fs';
|
|
7
7
|
import * as path from 'path';
|
|
8
8
|
import pc from 'picocolors';
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
9
|
+
import { getCompactMode } from '../../settings/index.js';
|
|
10
|
+
import { renderProgressBar, formatTokens, truncate } from '../../ui/base/index.js';
|
|
11
|
+
import { getStyles } from '../../themes/index.js';
|
|
12
|
+
/**
|
|
13
|
+
* Print compaction results for a single agent
|
|
14
|
+
*/
|
|
15
|
+
function printCompactResult(ctx, result, beforeHistory, label) {
|
|
16
|
+
if (!result.success) {
|
|
17
|
+
const prefix = label ? `${label}: ` : '';
|
|
18
|
+
ctx.ui.print({ type: 'warning', message: `${prefix}Compaction not available` });
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
const prefix = label ? `${label}: ` : '';
|
|
22
|
+
const statusParts = [];
|
|
23
|
+
// Token reduction
|
|
24
|
+
const originalTokens = result.originalTokens ?? 0;
|
|
25
|
+
const summaryTokens = result.summaryTokens ?? 0;
|
|
26
|
+
const reduction = originalTokens > 0 ? Math.round((1 - summaryTokens / originalTokens) * 100) : 0;
|
|
27
|
+
statusParts.push(`${prefix}Compacted: ${originalTokens.toLocaleString()} → ${summaryTokens.toLocaleString()} tokens (-${String(reduction)}%)`);
|
|
28
|
+
// Category actions
|
|
29
|
+
if (result.categoryStats) {
|
|
30
|
+
const actions = [];
|
|
31
|
+
if (result.categoryStats.toolResults.action === 'compacted') {
|
|
32
|
+
actions.push('tool results → files');
|
|
33
|
+
}
|
|
34
|
+
if (result.categoryStats.history.action === 'summarized') {
|
|
35
|
+
actions.push('history → summary');
|
|
36
|
+
}
|
|
37
|
+
if (actions.length > 0) {
|
|
38
|
+
statusParts.push(`${prefix}Actions: ${actions.join(', ')}`);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
// Files created
|
|
42
|
+
if (result.filesCreated && result.filesCreated.length > 0) {
|
|
43
|
+
statusParts.push(`${prefix}Files created: ${String(result.filesCreated.length)}`);
|
|
44
|
+
}
|
|
45
|
+
// Restoration hints
|
|
46
|
+
if (result.restorationHintsInjected) {
|
|
47
|
+
statusParts.push(`${prefix}File tracking hints injected`);
|
|
48
|
+
}
|
|
49
|
+
// Tool results repaired
|
|
50
|
+
if (result.toolResultsRepaired && result.toolResultsRepaired > 0) {
|
|
51
|
+
statusParts.push(`${prefix}Orphaned tool results removed: ${String(result.toolResultsRepaired)}`);
|
|
52
|
+
}
|
|
53
|
+
for (const part of statusParts) {
|
|
54
|
+
ctx.ui.print({ type: 'success', message: part });
|
|
55
|
+
}
|
|
18
56
|
}
|
|
19
|
-
// =============================================================================
|
|
20
|
-
// Compact Command
|
|
21
|
-
// =============================================================================
|
|
22
57
|
export const compactCommand = {
|
|
23
58
|
name: 'compact',
|
|
24
59
|
description: 'Summarize old messages to free context',
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
60
|
+
details: 'When context is running low, use this to summarize older messages. Supports: /compact (default mode), /compact all, /compact auto, /compact $agentId',
|
|
61
|
+
examples: [
|
|
62
|
+
{ code: '/compact', description: 'Use default compact mode from settings' },
|
|
63
|
+
{ code: '/compact all', description: 'Compact all initialized agents' },
|
|
64
|
+
{ code: '/compact auto', description: 'Compact agents above 70% utilization' },
|
|
65
|
+
{ code: '/compact $pm', description: 'Compact a specific agent' },
|
|
66
|
+
],
|
|
67
|
+
async execute(args, ctx) {
|
|
68
|
+
const trimmed = args.trim();
|
|
69
|
+
if (!trimmed) {
|
|
70
|
+
// Use default from settings
|
|
71
|
+
const mode = getCompactMode();
|
|
72
|
+
return compactByMode(mode, ctx);
|
|
30
73
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
ctx.ui.print({ type: 'warning', message: 'Context manager not available' });
|
|
34
|
-
return true;
|
|
74
|
+
if (trimmed === 'all') {
|
|
75
|
+
return compactByMode('all', ctx);
|
|
35
76
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
ctx.ui.print({ type: 'info', message: 'No conversation history to compact' });
|
|
39
|
-
return true;
|
|
77
|
+
if (trimmed === 'auto') {
|
|
78
|
+
return compactByMode('auto', ctx);
|
|
40
79
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
80
|
+
if (trimmed.startsWith('$')) {
|
|
81
|
+
const agentId = trimmed.slice(1);
|
|
82
|
+
return compactSpecificAgent(agentId, ctx);
|
|
83
|
+
}
|
|
84
|
+
ctx.ui.print({ type: 'error', message: 'Usage: /compact [all|auto|$agentId]' });
|
|
85
|
+
return true;
|
|
86
|
+
},
|
|
87
|
+
};
|
|
88
|
+
async function compactByMode(mode, ctx) {
|
|
89
|
+
const team = ctx.team;
|
|
90
|
+
switch (mode) {
|
|
91
|
+
case 'active':
|
|
92
|
+
return compactActiveAgent(ctx);
|
|
93
|
+
case 'all': {
|
|
94
|
+
if (!team || team.size <= 1) {
|
|
95
|
+
return compactActiveAgent(ctx);
|
|
56
96
|
}
|
|
57
|
-
|
|
58
|
-
const
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
97
|
+
let compacted = 0;
|
|
98
|
+
for (const teamAgent of team.getAll()) {
|
|
99
|
+
if (!teamAgent.isInitialized)
|
|
100
|
+
continue;
|
|
101
|
+
const agent = teamAgent.agent;
|
|
102
|
+
if (!agent)
|
|
103
|
+
continue;
|
|
104
|
+
const state = agent.serialize();
|
|
105
|
+
if (state.messages.length === 0)
|
|
106
|
+
continue;
|
|
107
|
+
ctx.ui.print({ type: 'info', message: `Compacting $${teamAgent.id}...` });
|
|
108
|
+
try {
|
|
109
|
+
const result = (await agent.compact());
|
|
110
|
+
printCompactResult(ctx, result, state.messages, `$${teamAgent.id}`);
|
|
111
|
+
if (result.success)
|
|
112
|
+
compacted++;
|
|
72
113
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
}
|
|
76
|
-
if (actions.length > 0) {
|
|
77
|
-
statusParts.push(`Actions: ${actions.join(', ')}`);
|
|
114
|
+
catch (error) {
|
|
115
|
+
ctx.ui.print({ type: 'error', message: `$${teamAgent.id}: ${error.message}` });
|
|
78
116
|
}
|
|
79
117
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
statusParts.push(`Files created: ${String(result.filesCreated.length)}`);
|
|
118
|
+
if (compacted === 0) {
|
|
119
|
+
ctx.ui.print({ type: 'info', message: 'No agents needed compaction' });
|
|
83
120
|
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
121
|
+
return true;
|
|
122
|
+
}
|
|
123
|
+
case 'auto': {
|
|
124
|
+
if (!team || team.size <= 1) {
|
|
125
|
+
return compactActiveAgent(ctx);
|
|
87
126
|
}
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
127
|
+
const provider = (ctx.provider ?? 'claude');
|
|
128
|
+
let compacted = 0;
|
|
129
|
+
for (const teamAgent of team.getAll()) {
|
|
130
|
+
if (!teamAgent.isInitialized)
|
|
131
|
+
continue;
|
|
132
|
+
const agent = teamAgent.agent;
|
|
133
|
+
if (!agent)
|
|
134
|
+
continue;
|
|
135
|
+
const stats = teamAgent.getContextStats(provider);
|
|
136
|
+
const utilization = stats.maxTokens > 0 ? stats.estimatedTokens / stats.maxTokens : 0;
|
|
137
|
+
if (utilization <= 0.7)
|
|
138
|
+
continue;
|
|
139
|
+
const pct = (utilization * 100).toFixed(1);
|
|
140
|
+
ctx.ui.print({ type: 'info', message: `Compacting $${teamAgent.id} (${pct}% utilized)...` });
|
|
141
|
+
try {
|
|
142
|
+
const state = agent.serialize();
|
|
143
|
+
const result = (await agent.compact());
|
|
144
|
+
printCompactResult(ctx, result, state.messages, `$${teamAgent.id}`);
|
|
145
|
+
if (result.success)
|
|
146
|
+
compacted++;
|
|
147
|
+
}
|
|
148
|
+
catch (error) {
|
|
149
|
+
ctx.ui.print({ type: 'error', message: `$${teamAgent.id}: ${error.message}` });
|
|
150
|
+
}
|
|
91
151
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
ctx.ui.print({ type: 'success', message: part });
|
|
152
|
+
if (compacted === 0) {
|
|
153
|
+
ctx.ui.print({ type: 'info', message: 'No agents above 70% utilization' });
|
|
95
154
|
}
|
|
155
|
+
return true;
|
|
96
156
|
}
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
async function compactActiveAgent(ctx) {
|
|
160
|
+
if (!ctx.agent) {
|
|
161
|
+
ctx.ui.print({ type: 'warning', message: 'Agent not available for compaction' });
|
|
100
162
|
return true;
|
|
101
|
-
}
|
|
102
|
-
|
|
163
|
+
}
|
|
164
|
+
const contextManager = ctx.getContextManager?.();
|
|
165
|
+
if (!contextManager) {
|
|
166
|
+
ctx.ui.print({ type: 'warning', message: 'Context manager not available' });
|
|
167
|
+
return true;
|
|
168
|
+
}
|
|
169
|
+
const history = ctx.getHistory?.() ?? [];
|
|
170
|
+
if (history.length === 0) {
|
|
171
|
+
ctx.ui.print({ type: 'info', message: 'No conversation history to compact' });
|
|
172
|
+
return true;
|
|
173
|
+
}
|
|
174
|
+
// Show current stats
|
|
175
|
+
const stats = contextManager.getStats(history.length);
|
|
176
|
+
const pct = (stats.utilization * 100).toFixed(1);
|
|
177
|
+
ctx.ui.print({
|
|
178
|
+
type: 'info',
|
|
179
|
+
message: `Current: ${stats.currentTokens.toLocaleString()} tokens (${pct}%), ${String(history.length)} messages`,
|
|
180
|
+
});
|
|
181
|
+
ctx.ui.print({ type: 'info', message: 'Compacting context...' });
|
|
182
|
+
try {
|
|
183
|
+
const result = (await ctx.agent.compact());
|
|
184
|
+
printCompactResult(ctx, result, history);
|
|
185
|
+
}
|
|
186
|
+
catch (error) {
|
|
187
|
+
ctx.ui.print({ type: 'error', message: `Compaction failed: ${error.message}` });
|
|
188
|
+
}
|
|
189
|
+
return true;
|
|
190
|
+
}
|
|
191
|
+
async function compactSpecificAgent(agentId, ctx) {
|
|
192
|
+
const team = ctx.team;
|
|
193
|
+
if (!team) {
|
|
194
|
+
ctx.ui.print({ type: 'warning', message: 'No team available' });
|
|
195
|
+
return true;
|
|
196
|
+
}
|
|
197
|
+
const teamAgent = team.get(agentId);
|
|
198
|
+
if (!teamAgent) {
|
|
199
|
+
ctx.ui.print({ type: 'error', message: `Agent '$${agentId}' not found` });
|
|
200
|
+
return true;
|
|
201
|
+
}
|
|
202
|
+
if (!teamAgent.isInitialized || !teamAgent.agent) {
|
|
203
|
+
ctx.ui.print({ type: 'warning', message: `Agent '$${agentId}' is not initialized` });
|
|
204
|
+
return true;
|
|
205
|
+
}
|
|
206
|
+
const agent = teamAgent.agent;
|
|
207
|
+
const state = agent.serialize();
|
|
208
|
+
if (state.messages.length === 0) {
|
|
209
|
+
ctx.ui.print({ type: 'info', message: `Agent '$${agentId}' has no conversation history` });
|
|
210
|
+
return true;
|
|
211
|
+
}
|
|
212
|
+
ctx.ui.print({ type: 'info', message: `Compacting $${agentId}...` });
|
|
213
|
+
try {
|
|
214
|
+
const result = (await agent.compact());
|
|
215
|
+
printCompactResult(ctx, result, state.messages, `$${agentId}`);
|
|
216
|
+
}
|
|
217
|
+
catch (error) {
|
|
218
|
+
ctx.ui.print({ type: 'error', message: `$${agentId}: ${error.message}` });
|
|
219
|
+
}
|
|
220
|
+
return true;
|
|
221
|
+
}
|
|
103
222
|
// =============================================================================
|
|
104
223
|
// Context Command
|
|
105
224
|
// =============================================================================
|
|
106
225
|
export const contextCommand = {
|
|
107
226
|
name: 'context',
|
|
108
227
|
description: 'Show context window usage',
|
|
228
|
+
details: 'Displays current context window utilization including token count, percentage used, and number of messages. Shows breakdown by agent when team has multiple agents.',
|
|
229
|
+
examples: [{ code: '/context' }],
|
|
109
230
|
execute(_args, ctx) {
|
|
110
231
|
const lines = [];
|
|
111
232
|
lines.push('');
|
|
233
|
+
const s = getStyles();
|
|
112
234
|
lines.push(pc.bold('Context Usage'));
|
|
113
235
|
lines.push(pc.dim('─'.repeat(40)));
|
|
236
|
+
const team = ctx.team;
|
|
114
237
|
const contextManager = ctx.getContextManager?.();
|
|
115
238
|
const history = ctx.getHistory?.() ?? [];
|
|
116
239
|
if (contextManager) {
|
|
117
240
|
const stats = contextManager.getStats(history.length);
|
|
118
241
|
const pct = (stats.utilization * 100).toFixed(1);
|
|
119
|
-
const bar = renderProgressBar(stats.utilization, 20);
|
|
242
|
+
const bar = renderProgressBar(stats.utilization, 20, s);
|
|
243
|
+
// Show which agent this is for (when team is active)
|
|
244
|
+
if (team) {
|
|
245
|
+
const active = team.getActive();
|
|
246
|
+
lines.push(` Agent: ${pc.cyan(`${active.mascot} $${active.id}`)}`);
|
|
247
|
+
}
|
|
120
248
|
lines.push(` Usage: ${bar} ${pct}%`);
|
|
121
249
|
lines.push(` Tokens: ${pc.cyan(stats.currentTokens.toLocaleString())} / ${pc.dim(stats.maxTokens.toLocaleString())}`);
|
|
122
250
|
lines.push(` Messages: ${pc.cyan(String(stats.messageCount))}`);
|
|
@@ -130,13 +258,38 @@ export const contextCommand = {
|
|
|
130
258
|
const maxTokens = 200000;
|
|
131
259
|
const utilization = total / maxTokens;
|
|
132
260
|
const pct = (utilization * 100).toFixed(1);
|
|
133
|
-
const bar = renderProgressBar(utilization, 20);
|
|
261
|
+
const bar = renderProgressBar(utilization, 20, s);
|
|
134
262
|
lines.push(` Usage: ${bar} ${pct}%`);
|
|
135
263
|
lines.push(` Tokens: ${pc.cyan(total.toLocaleString())} / ${pc.dim(maxTokens.toLocaleString())}`);
|
|
136
264
|
lines.push(` Input: ${pc.cyan(inputTokens.toLocaleString())}`);
|
|
137
265
|
lines.push(` Output: ${pc.cyan(outputTokens.toLocaleString())}`);
|
|
138
266
|
lines.push(` Messages: ${pc.cyan(String(history.length))}`);
|
|
139
267
|
}
|
|
268
|
+
// Show breakdown by agent if team has multiple agents
|
|
269
|
+
if (team && team.size > 1) {
|
|
270
|
+
lines.push('');
|
|
271
|
+
lines.push(pc.bold('By Agent'));
|
|
272
|
+
lines.push(pc.dim('─'.repeat(40)));
|
|
273
|
+
const agents = team.getAll();
|
|
274
|
+
const provider = (ctx.provider ?? 'claude');
|
|
275
|
+
let totalTokens = 0;
|
|
276
|
+
for (const agent of agents) {
|
|
277
|
+
const stats = agent.getContextStats(provider);
|
|
278
|
+
const isActive = agent.id === team.activeAgentId;
|
|
279
|
+
const prefix = isActive ? pc.green('●') : pc.dim('○');
|
|
280
|
+
const label = `${agent.mascot} $${agent.id}`;
|
|
281
|
+
// Use per-agent maxTokens from model-specific context window
|
|
282
|
+
const utilization = stats.maxTokens > 0 ? stats.estimatedTokens / stats.maxTokens : 0;
|
|
283
|
+
const bar = renderProgressBar(utilization, 10, s);
|
|
284
|
+
const pct = (utilization * 100).toFixed(1);
|
|
285
|
+
const maxDisplay = formatTokens(stats.maxTokens);
|
|
286
|
+
lines.push(` ${prefix} ${label.padEnd(18)} ${bar} ${pct.padStart(5)}% ${pc.dim(maxDisplay)} (${String(stats.messageCount)} msgs)`);
|
|
287
|
+
totalTokens += stats.estimatedTokens;
|
|
288
|
+
}
|
|
289
|
+
// Total row
|
|
290
|
+
lines.push(pc.dim(' ' + '─'.repeat(38)));
|
|
291
|
+
lines.push(` Total: ${pc.cyan(totalTokens.toLocaleString())} tokens across ${pc.cyan(String(agents.length))} agents`);
|
|
292
|
+
}
|
|
140
293
|
lines.push('');
|
|
141
294
|
ctx.ui.print({ type: 'raw-lines', lines });
|
|
142
295
|
return Promise.resolve(true);
|
|
@@ -148,6 +301,8 @@ export const contextCommand = {
|
|
|
148
301
|
export const tokensCommand = {
|
|
149
302
|
name: 'tokens',
|
|
150
303
|
description: 'Show token usage',
|
|
304
|
+
details: 'Displays token usage statistics for the current session including input/output tokens. Shows breakdown by agent when team has multiple agents.',
|
|
305
|
+
examples: [{ code: '/tokens' }],
|
|
151
306
|
execute(_args, ctx) {
|
|
152
307
|
const lines = [];
|
|
153
308
|
lines.push('');
|
|
@@ -160,6 +315,26 @@ export const tokensCommand = {
|
|
|
160
315
|
lines.push(` Output: ${pc.cyan(outputTokens.toLocaleString())} tokens`);
|
|
161
316
|
lines.push(pc.dim(' ─'.repeat(20)));
|
|
162
317
|
lines.push(` Total: ${pc.bold(pc.cyan(total.toLocaleString()))} tokens`);
|
|
318
|
+
// Show breakdown by agent if team has multiple agents
|
|
319
|
+
const team = ctx.team;
|
|
320
|
+
if (team && team.size > 1) {
|
|
321
|
+
lines.push('');
|
|
322
|
+
lines.push(pc.bold('By Agent'));
|
|
323
|
+
lines.push(pc.dim('─'.repeat(40)));
|
|
324
|
+
const agents = team.getAll();
|
|
325
|
+
for (const agent of agents) {
|
|
326
|
+
const usage = agent.tokenUsage;
|
|
327
|
+
const agentTotal = usage.input + usage.output;
|
|
328
|
+
const isActive = agent.id === team.activeAgentId;
|
|
329
|
+
const prefix = isActive ? pc.green('●') : pc.dim('○');
|
|
330
|
+
const label = `${agent.mascot} $${agent.id}`;
|
|
331
|
+
// Show all agents, display 0 for unused ones
|
|
332
|
+
const tokenDisplay = agentTotal > 0
|
|
333
|
+
? pc.cyan(agentTotal.toLocaleString().padStart(10))
|
|
334
|
+
: pc.dim('0'.padStart(10));
|
|
335
|
+
lines.push(` ${prefix} ${label.padEnd(20)} ${tokenDisplay} tokens`);
|
|
336
|
+
}
|
|
337
|
+
}
|
|
163
338
|
lines.push('');
|
|
164
339
|
ctx.ui.print({ type: 'raw-lines', lines });
|
|
165
340
|
return Promise.resolve(true);
|
|
@@ -171,6 +346,8 @@ export const tokensCommand = {
|
|
|
171
346
|
export const statusCommand = {
|
|
172
347
|
name: 'status',
|
|
173
348
|
description: 'Show session status',
|
|
349
|
+
details: 'Displays current session status including CLI version, active model, mode, and context usage.',
|
|
350
|
+
examples: [{ code: '/status' }],
|
|
174
351
|
execute(_args, ctx) {
|
|
175
352
|
const lines = [];
|
|
176
353
|
lines.push('');
|
|
@@ -179,12 +356,13 @@ export const statusCommand = {
|
|
|
179
356
|
lines.push(` Version: ${pc.cyan(ctx.version)}`);
|
|
180
357
|
lines.push(` Model: ${pc.cyan(ctx.model ?? 'not set')}`);
|
|
181
358
|
lines.push(` Provider: ${pc.cyan(ctx.provider ?? 'not set')}`);
|
|
359
|
+
const s = getStyles();
|
|
182
360
|
const contextManager = ctx.getContextManager?.();
|
|
183
361
|
const history = ctx.getHistory?.() ?? [];
|
|
184
362
|
if (contextManager) {
|
|
185
363
|
const stats = contextManager.getStats(history.length);
|
|
186
364
|
const pct = (stats.utilization * 100).toFixed(1);
|
|
187
|
-
const bar = renderProgressBar(stats.utilization, 20);
|
|
365
|
+
const bar = renderProgressBar(stats.utilization, 20, s);
|
|
188
366
|
lines.push(` Context: ${bar} ${pct}%`);
|
|
189
367
|
lines.push(` Messages: ${pc.cyan(String(stats.messageCount))}`);
|
|
190
368
|
}
|
|
@@ -207,6 +385,8 @@ export const statusCommand = {
|
|
|
207
385
|
export const todosCommand = {
|
|
208
386
|
name: 'todos',
|
|
209
387
|
description: 'Show current todo list',
|
|
388
|
+
details: 'Shows the current todo list that the agent uses to track work in progress.',
|
|
389
|
+
examples: [{ code: '/todos' }],
|
|
210
390
|
execute(_args, ctx) {
|
|
211
391
|
const todos = ctx.ui.getTodos();
|
|
212
392
|
const lines = [];
|
|
@@ -248,6 +428,11 @@ export const todosCommand = {
|
|
|
248
428
|
export const exportCommand = {
|
|
249
429
|
name: 'export',
|
|
250
430
|
description: 'Export conversation to file',
|
|
431
|
+
details: 'Export the current conversation to a markdown file for later reference. Optionally specify a filename.',
|
|
432
|
+
examples: [
|
|
433
|
+
{ code: '/export', description: 'Auto-generated filename' },
|
|
434
|
+
{ code: '/export notes.md', description: 'Custom filename' },
|
|
435
|
+
],
|
|
251
436
|
execute(args, ctx) {
|
|
252
437
|
const history = ctx.getHistory?.() ?? [];
|
|
253
438
|
if (history.length === 0) {
|
|
@@ -319,7 +504,7 @@ function formatConversationAsMarkdown(history, model) {
|
|
|
319
504
|
lines.push(`**Tool Result:**`);
|
|
320
505
|
if (typeof b.content === 'string') {
|
|
321
506
|
lines.push('```');
|
|
322
|
-
lines.push(b.content
|
|
507
|
+
lines.push(truncate(b.content, 500));
|
|
323
508
|
lines.push('```');
|
|
324
509
|
}
|
|
325
510
|
}
|
|
@@ -8,6 +8,7 @@ export declare const exitCommand: CommandHandlerV2;
|
|
|
8
8
|
export declare const clearCommand: CommandHandlerV2;
|
|
9
9
|
export declare const helpCommand: CommandHandlerV2;
|
|
10
10
|
export declare const tutorialCommand: CommandHandlerV2;
|
|
11
|
+
export declare const changelogCommand: CommandHandlerV2;
|
|
11
12
|
export declare const commandsCommand: CommandHandlerV2;
|
|
12
13
|
export declare const menuCommand: CommandHandlerV2;
|
|
13
14
|
export declare const coreCommands: CommandHandlerV2[];
|