@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
|
@@ -6,121 +6,269 @@
|
|
|
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
|
-
|
|
72
|
-
|
|
73
|
-
if (result.categoryStats.history.action === 'summarized') {
|
|
74
|
-
actions.push('history → summary');
|
|
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++;
|
|
75
113
|
}
|
|
76
|
-
|
|
77
|
-
|
|
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))}`);
|
|
123
251
|
lines.push(` Turns: ${pc.cyan(String(stats.turnCount))}`);
|
|
252
|
+
// Observation masking + input compaction stats
|
|
253
|
+
const maskStats = ctx.agent?.getObservationMaskStats();
|
|
254
|
+
if (maskStats && (maskStats.maskedCount > 0 || maskStats.inputsCompacted > 0 || maskStats.activeStamps > 0)) {
|
|
255
|
+
const parts = [];
|
|
256
|
+
if (maskStats.maskedCount > 0)
|
|
257
|
+
parts.push(`${String(maskStats.maskedCount)} observations`);
|
|
258
|
+
if (maskStats.inputsCompacted > 0)
|
|
259
|
+
parts.push(`${String(maskStats.inputsCompacted)} inputs`);
|
|
260
|
+
lines.push(` Masked: ${pc.cyan(parts.join(' + '))} (${pc.green('~' + maskStats.tokensSaved.toLocaleString() + ' tokens saved')})`);
|
|
261
|
+
}
|
|
262
|
+
// Dead message pruning stats
|
|
263
|
+
const pruneStats = ctx.agent?.getDeadMessagePruneStats();
|
|
264
|
+
if (pruneStats && pruneStats.prunedCount > 0) {
|
|
265
|
+
const details = [];
|
|
266
|
+
if (pruneStats.errorsPruned > 0)
|
|
267
|
+
details.push(`${String(pruneStats.errorsPruned)} errors`);
|
|
268
|
+
if (pruneStats.permissionsPruned > 0)
|
|
269
|
+
details.push(`${String(pruneStats.permissionsPruned)} permissions`);
|
|
270
|
+
lines.push(` Pruned: ${pc.cyan(String(pruneStats.prunedCount))} dead messages [${details.join(', ')}] (${pc.green('~' + pruneStats.tokensSaved.toLocaleString() + ' tokens saved')})`);
|
|
271
|
+
}
|
|
124
272
|
}
|
|
125
273
|
else {
|
|
126
274
|
// Fallback to session tracking
|
|
@@ -130,13 +278,38 @@ export const contextCommand = {
|
|
|
130
278
|
const maxTokens = 200000;
|
|
131
279
|
const utilization = total / maxTokens;
|
|
132
280
|
const pct = (utilization * 100).toFixed(1);
|
|
133
|
-
const bar = renderProgressBar(utilization, 20);
|
|
281
|
+
const bar = renderProgressBar(utilization, 20, s);
|
|
134
282
|
lines.push(` Usage: ${bar} ${pct}%`);
|
|
135
283
|
lines.push(` Tokens: ${pc.cyan(total.toLocaleString())} / ${pc.dim(maxTokens.toLocaleString())}`);
|
|
136
284
|
lines.push(` Input: ${pc.cyan(inputTokens.toLocaleString())}`);
|
|
137
285
|
lines.push(` Output: ${pc.cyan(outputTokens.toLocaleString())}`);
|
|
138
286
|
lines.push(` Messages: ${pc.cyan(String(history.length))}`);
|
|
139
287
|
}
|
|
288
|
+
// Show breakdown by agent if team has multiple agents
|
|
289
|
+
if (team && team.size > 1) {
|
|
290
|
+
lines.push('');
|
|
291
|
+
lines.push(pc.bold('By Agent'));
|
|
292
|
+
lines.push(pc.dim('─'.repeat(40)));
|
|
293
|
+
const agents = team.getAll();
|
|
294
|
+
const provider = (ctx.provider ?? 'claude');
|
|
295
|
+
let totalTokens = 0;
|
|
296
|
+
for (const agent of agents) {
|
|
297
|
+
const stats = agent.getContextStats(provider);
|
|
298
|
+
const isActive = agent.id === team.activeAgentId;
|
|
299
|
+
const prefix = isActive ? pc.green('●') : pc.dim('○');
|
|
300
|
+
const label = `${agent.mascot} $${agent.id}`;
|
|
301
|
+
// Use per-agent maxTokens from model-specific context window
|
|
302
|
+
const utilization = stats.maxTokens > 0 ? stats.estimatedTokens / stats.maxTokens : 0;
|
|
303
|
+
const bar = renderProgressBar(utilization, 10, s);
|
|
304
|
+
const pct = (utilization * 100).toFixed(1);
|
|
305
|
+
const maxDisplay = formatTokens(stats.maxTokens);
|
|
306
|
+
lines.push(` ${prefix} ${label.padEnd(18)} ${bar} ${pct.padStart(5)}% ${pc.dim(maxDisplay)} (${String(stats.messageCount)} msgs)`);
|
|
307
|
+
totalTokens += stats.estimatedTokens;
|
|
308
|
+
}
|
|
309
|
+
// Total row
|
|
310
|
+
lines.push(pc.dim(' ' + '─'.repeat(38)));
|
|
311
|
+
lines.push(` Total: ${pc.cyan(totalTokens.toLocaleString())} tokens across ${pc.cyan(String(agents.length))} agents`);
|
|
312
|
+
}
|
|
140
313
|
lines.push('');
|
|
141
314
|
ctx.ui.print({ type: 'raw-lines', lines });
|
|
142
315
|
return Promise.resolve(true);
|
|
@@ -148,6 +321,8 @@ export const contextCommand = {
|
|
|
148
321
|
export const tokensCommand = {
|
|
149
322
|
name: 'tokens',
|
|
150
323
|
description: 'Show token usage',
|
|
324
|
+
details: 'Displays token usage statistics for the current session including input/output tokens. Shows breakdown by agent when team has multiple agents.',
|
|
325
|
+
examples: [{ code: '/tokens' }],
|
|
151
326
|
execute(_args, ctx) {
|
|
152
327
|
const lines = [];
|
|
153
328
|
lines.push('');
|
|
@@ -160,6 +335,26 @@ export const tokensCommand = {
|
|
|
160
335
|
lines.push(` Output: ${pc.cyan(outputTokens.toLocaleString())} tokens`);
|
|
161
336
|
lines.push(pc.dim(' ─'.repeat(20)));
|
|
162
337
|
lines.push(` Total: ${pc.bold(pc.cyan(total.toLocaleString()))} tokens`);
|
|
338
|
+
// Show breakdown by agent if team has multiple agents
|
|
339
|
+
const team = ctx.team;
|
|
340
|
+
if (team && team.size > 1) {
|
|
341
|
+
lines.push('');
|
|
342
|
+
lines.push(pc.bold('By Agent'));
|
|
343
|
+
lines.push(pc.dim('─'.repeat(40)));
|
|
344
|
+
const agents = team.getAll();
|
|
345
|
+
for (const agent of agents) {
|
|
346
|
+
const usage = agent.tokenUsage;
|
|
347
|
+
const agentTotal = usage.input + usage.output;
|
|
348
|
+
const isActive = agent.id === team.activeAgentId;
|
|
349
|
+
const prefix = isActive ? pc.green('●') : pc.dim('○');
|
|
350
|
+
const label = `${agent.mascot} $${agent.id}`;
|
|
351
|
+
// Show all agents, display 0 for unused ones
|
|
352
|
+
const tokenDisplay = agentTotal > 0
|
|
353
|
+
? pc.cyan(agentTotal.toLocaleString().padStart(10))
|
|
354
|
+
: pc.dim('0'.padStart(10));
|
|
355
|
+
lines.push(` ${prefix} ${label.padEnd(20)} ${tokenDisplay} tokens`);
|
|
356
|
+
}
|
|
357
|
+
}
|
|
163
358
|
lines.push('');
|
|
164
359
|
ctx.ui.print({ type: 'raw-lines', lines });
|
|
165
360
|
return Promise.resolve(true);
|
|
@@ -171,6 +366,8 @@ export const tokensCommand = {
|
|
|
171
366
|
export const statusCommand = {
|
|
172
367
|
name: 'status',
|
|
173
368
|
description: 'Show session status',
|
|
369
|
+
details: 'Displays current session status including CLI version, active model, mode, and context usage.',
|
|
370
|
+
examples: [{ code: '/status' }],
|
|
174
371
|
execute(_args, ctx) {
|
|
175
372
|
const lines = [];
|
|
176
373
|
lines.push('');
|
|
@@ -179,12 +376,13 @@ export const statusCommand = {
|
|
|
179
376
|
lines.push(` Version: ${pc.cyan(ctx.version)}`);
|
|
180
377
|
lines.push(` Model: ${pc.cyan(ctx.model ?? 'not set')}`);
|
|
181
378
|
lines.push(` Provider: ${pc.cyan(ctx.provider ?? 'not set')}`);
|
|
379
|
+
const s = getStyles();
|
|
182
380
|
const contextManager = ctx.getContextManager?.();
|
|
183
381
|
const history = ctx.getHistory?.() ?? [];
|
|
184
382
|
if (contextManager) {
|
|
185
383
|
const stats = contextManager.getStats(history.length);
|
|
186
384
|
const pct = (stats.utilization * 100).toFixed(1);
|
|
187
|
-
const bar = renderProgressBar(stats.utilization, 20);
|
|
385
|
+
const bar = renderProgressBar(stats.utilization, 20, s);
|
|
188
386
|
lines.push(` Context: ${bar} ${pct}%`);
|
|
189
387
|
lines.push(` Messages: ${pc.cyan(String(stats.messageCount))}`);
|
|
190
388
|
}
|
|
@@ -207,6 +405,8 @@ export const statusCommand = {
|
|
|
207
405
|
export const todosCommand = {
|
|
208
406
|
name: 'todos',
|
|
209
407
|
description: 'Show current todo list',
|
|
408
|
+
details: 'Shows the current todo list that the agent uses to track work in progress.',
|
|
409
|
+
examples: [{ code: '/todos' }],
|
|
210
410
|
execute(_args, ctx) {
|
|
211
411
|
const todos = ctx.ui.getTodos();
|
|
212
412
|
const lines = [];
|
|
@@ -248,6 +448,11 @@ export const todosCommand = {
|
|
|
248
448
|
export const exportCommand = {
|
|
249
449
|
name: 'export',
|
|
250
450
|
description: 'Export conversation to file',
|
|
451
|
+
details: 'Export the current conversation to a markdown file for later reference. Optionally specify a filename.',
|
|
452
|
+
examples: [
|
|
453
|
+
{ code: '/export', description: 'Auto-generated filename' },
|
|
454
|
+
{ code: '/export notes.md', description: 'Custom filename' },
|
|
455
|
+
],
|
|
251
456
|
execute(args, ctx) {
|
|
252
457
|
const history = ctx.getHistory?.() ?? [];
|
|
253
458
|
if (history.length === 0) {
|
|
@@ -319,7 +524,7 @@ function formatConversationAsMarkdown(history, model) {
|
|
|
319
524
|
lines.push(`**Tool Result:**`);
|
|
320
525
|
if (typeof b.content === 'string') {
|
|
321
526
|
lines.push('```');
|
|
322
|
-
lines.push(b.content
|
|
527
|
+
lines.push(truncate(b.content, 500));
|
|
323
528
|
lines.push('```');
|
|
324
529
|
}
|
|
325
530
|
}
|
|
@@ -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[];
|