@compilr-dev/cli 0.4.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 +254 -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 +134 -4
- package/dist/agent.js +345 -166
- package/dist/anchors/index.d.ts +9 -0
- package/dist/anchors/index.js +9 -0
- package/dist/anchors/project-anchors.d.ts +79 -0
- package/dist/anchors/project-anchors.js +202 -0
- 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/index.d.ts +2 -1
- 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.d.ts +13 -0
- package/dist/commands-v2/handlers/context.js +533 -0
- package/dist/commands-v2/handlers/core.d.ts +14 -0
- package/dist/commands-v2/handlers/core.js +290 -0
- package/dist/commands-v2/handlers/debug.d.ts +11 -0
- package/dist/commands-v2/handlers/debug.js +177 -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 +25 -0
- package/dist/commands-v2/handlers/index.js +63 -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.d.ts +22 -0
- package/dist/commands-v2/handlers/project.js +1035 -0
- 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 +17 -0
- package/dist/commands-v2/handlers/settings.js +417 -0
- 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 +14 -0
- package/dist/commands-v2/index.js +18 -0
- package/dist/commands-v2/registry.d.ts +52 -0
- package/dist/commands-v2/registry.js +114 -0
- package/dist/commands-v2/types.d.ts +153 -0
- package/dist/commands-v2/types.js +7 -0
- package/dist/commands.js +123 -7
- 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 +615 -179
- package/dist/input-handlers/index.d.ts +7 -0
- package/dist/input-handlers/index.js +7 -0
- package/dist/input-handlers/memory-handler.d.ts +26 -0
- package/dist/input-handlers/memory-handler.js +69 -0
- 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.d.ts +63 -0
- package/dist/repl-helpers.js +319 -0
- package/dist/repl-v2.d.ts +554 -0
- package/dist/repl-v2.js +3286 -0
- 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 +156 -13
- package/dist/settings/index.js +377 -24
- package/dist/settings/mcp-config.d.ts +76 -0
- package/dist/settings/mcp-config.js +143 -0
- package/dist/settings/paths.d.ts +114 -0
- package/dist/settings/paths.js +270 -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 -58
- package/dist/templates/config-json.d.ts +1 -25
- package/dist/templates/index.d.ts +2 -0
- package/dist/templates/index.js +35 -75
- package/dist/themes/colors.js +3 -1
- package/dist/themes/registry.d.ts +5 -36
- package/dist/themes/registry.js +11 -95
- package/dist/themes/types.d.ts +3 -38
- package/dist/themes/types.js +2 -2
- package/dist/tool-names.d.ts +108 -0
- package/dist/tool-names.js +227 -0
- package/dist/tools/anchor-tools.d.ts +31 -0
- package/dist/tools/anchor-tools.js +255 -0
- 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 +56 -0
- package/dist/tools/backlog-wrappers.js +353 -0
- package/dist/tools/backlog.d.ts +2 -2
- package/dist/tools/backlog.js +2 -2
- package/dist/tools/db-tools.d.ts +12 -0
- package/dist/tools/db-tools.js +14 -0
- 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 +43 -0
- package/dist/tools/document-db.js +220 -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/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 +34 -0
- package/dist/tools/project-db.js +39 -0
- 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 +135 -0
- package/dist/tools/workitem-db.js +730 -0
- package/dist/tools.d.ts +67 -2
- package/dist/tools.js +238 -38
- package/dist/ui/ask-user-overlay.d.ts +2 -2
- package/dist/ui/ask-user-overlay.js +443 -535
- package/dist/ui/ask-user-simple-overlay.d.ts +2 -2
- package/dist/ui/ask-user-simple-overlay.js +182 -209
- package/dist/ui/autocomplete-controller.d.ts +42 -0
- package/dist/ui/autocomplete-controller.js +384 -0
- package/dist/ui/base/index.d.ts +26 -0
- package/dist/ui/base/index.js +33 -0
- package/dist/ui/base/inline-overlay-utils.d.ts +217 -0
- package/dist/ui/base/inline-overlay-utils.js +320 -0
- package/dist/ui/base/inline-overlay.d.ts +159 -0
- package/dist/ui/base/inline-overlay.js +257 -0
- package/dist/ui/base/key-utils.d.ts +15 -0
- package/dist/ui/base/key-utils.js +30 -0
- package/dist/ui/base/overlay-base-v2.d.ts +203 -0
- package/dist/ui/base/overlay-base-v2.js +260 -0
- package/dist/ui/base/overlay-base.d.ts +156 -0
- package/dist/ui/base/overlay-base.js +238 -0
- package/dist/ui/base/overlay-lifecycle.d.ts +65 -0
- package/dist/ui/base/overlay-lifecycle.js +159 -0
- package/dist/ui/base/overlay-types.d.ts +185 -0
- package/dist/ui/base/overlay-types.js +7 -0
- package/dist/ui/base/render-utils.d.ts +27 -0
- package/dist/ui/base/render-utils.js +36 -0
- package/dist/ui/base/screen-stack.d.ts +148 -0
- package/dist/ui/base/screen-stack.js +184 -0
- package/dist/ui/base/tabbed-list-overlay-v2.d.ts +118 -0
- package/dist/ui/base/tabbed-list-overlay-v2.js +335 -0
- package/dist/ui/base/tabbed-list-overlay.d.ts +153 -0
- package/dist/ui/base/tabbed-list-overlay.js +369 -0
- 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.d.ts +75 -4
- package/dist/ui/conversation.js +376 -165
- package/dist/ui/diff.d.ts +7 -1
- package/dist/ui/diff.js +85 -48
- package/dist/ui/ephemeral.d.ts +1 -1
- package/dist/ui/ephemeral.js +4 -10
- package/dist/ui/features/index.d.ts +34 -0
- package/dist/ui/features/index.js +34 -0
- package/dist/ui/features/input-feature.d.ts +85 -0
- package/dist/ui/features/input-feature.js +238 -0
- package/dist/ui/features/list-feature.d.ts +155 -0
- package/dist/ui/features/list-feature.js +244 -0
- package/dist/ui/features/pagination-feature.d.ts +154 -0
- package/dist/ui/features/pagination-feature.js +238 -0
- package/dist/ui/features/search-feature.d.ts +148 -0
- package/dist/ui/features/search-feature.js +185 -0
- package/dist/ui/features/tab-feature.d.ts +194 -0
- package/dist/ui/features/tab-feature.js +307 -0
- 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 +181 -7
- package/dist/ui/footer.js +523 -74
- package/dist/ui/guardrail-overlay.d.ts +29 -0
- package/dist/ui/guardrail-overlay.js +145 -0
- package/dist/ui/index.d.ts +1 -1
- package/dist/ui/index.js +1 -3
- package/dist/ui/input-controller.d.ts +51 -0
- package/dist/ui/input-controller.js +176 -0
- package/dist/ui/input-prompt.d.ts +135 -33
- package/dist/ui/input-prompt.js +728 -337
- package/dist/ui/iteration-limit-overlay.d.ts +2 -2
- package/dist/ui/iteration-limit-overlay.js +92 -128
- package/dist/ui/keyboard-handler.d.ts +57 -0
- package/dist/ui/keyboard-handler.js +557 -0
- package/dist/ui/keys-overlay.d.ts +1 -0
- package/dist/ui/keys-overlay.js +203 -141
- package/dist/ui/line-utils.d.ts +88 -0
- package/dist/ui/line-utils.js +150 -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 +157 -0
- package/dist/ui/live-region.js +379 -0
- package/dist/ui/mascot/expressions.d.ts +32 -0
- package/dist/ui/mascot/expressions.js +213 -0
- package/dist/ui/mascot/index.d.ts +8 -0
- package/dist/ui/mascot/index.js +8 -0
- package/dist/ui/mascot/renderer.d.ts +19 -0
- package/dist/ui/mascot/renderer.js +132 -0
- 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.d.ts +45 -0
- package/dist/ui/overlay/impl/agents-overlay-v2.js +814 -0
- package/dist/ui/overlay/impl/anchors-overlay-v2.d.ts +47 -0
- package/dist/ui/overlay/impl/anchors-overlay-v2.js +749 -0
- package/dist/ui/overlay/impl/arch-type-overlay-v2.d.ts +37 -0
- package/dist/ui/overlay/impl/arch-type-overlay-v2.js +240 -0
- 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.d.ts +72 -0
- package/dist/ui/overlay/impl/ask-user-overlay-v2.js +581 -0
- package/dist/ui/overlay/impl/ask-user-simple-overlay-v2.d.ts +46 -0
- package/dist/ui/overlay/impl/ask-user-simple-overlay-v2.js +204 -0
- 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 +52 -0
- package/dist/ui/overlay/impl/backlog-overlay-v2.js +681 -0
- 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.d.ts +33 -0
- package/dist/ui/overlay/impl/commands-overlay-v2.js +439 -0
- package/dist/ui/overlay/impl/config-overlay-v2.d.ts +111 -0
- package/dist/ui/overlay/impl/config-overlay-v2.js +718 -0
- 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 +57 -0
- package/dist/ui/overlay/impl/dashboard-overlay-v2.js +382 -0
- 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.d.ts +45 -0
- package/dist/ui/overlay/impl/docs-overlay-v2.js +117 -0
- package/dist/ui/overlay/impl/document-detail-overlay-v2.d.ts +84 -0
- package/dist/ui/overlay/impl/document-detail-overlay-v2.js +1112 -0
- 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/guardrail-overlay-v2.d.ts +43 -0
- package/dist/ui/overlay/impl/guardrail-overlay-v2.js +114 -0
- package/dist/ui/overlay/impl/help-overlay-v2.d.ts +57 -0
- package/dist/ui/overlay/impl/help-overlay-v2.js +287 -0
- package/dist/ui/overlay/impl/init-setup-overlay-v2.d.ts +25 -0
- package/dist/ui/overlay/impl/init-setup-overlay-v2.js +97 -0
- package/dist/ui/overlay/impl/iteration-limit-overlay-v2.d.ts +35 -0
- package/dist/ui/overlay/impl/iteration-limit-overlay-v2.js +105 -0
- package/dist/ui/overlay/impl/keys-overlay-v2.d.ts +41 -0
- package/dist/ui/overlay/impl/keys-overlay-v2.js +248 -0
- 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/mascot-overlay-v2.d.ts +41 -0
- package/dist/ui/overlay/impl/mascot-overlay-v2.js +138 -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 +93 -0
- package/dist/ui/overlay/impl/model-overlay-v2.js +1143 -0
- package/dist/ui/overlay/impl/model-warning-overlay-v2.d.ts +46 -0
- package/dist/ui/overlay/impl/model-warning-overlay-v2.js +132 -0
- package/dist/ui/overlay/impl/new-overlay-v2.d.ts +108 -0
- package/dist/ui/overlay/impl/new-overlay-v2.js +1243 -0
- 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.d.ts +36 -0
- package/dist/ui/overlay/impl/permission-overlay-v2.js +380 -0
- 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 +37 -0
- package/dist/ui/overlay/impl/projects-overlay-v2.js +733 -0
- 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/theme-overlay-v2.d.ts +42 -0
- package/dist/ui/overlay/impl/theme-overlay-v2.js +135 -0
- package/dist/ui/overlay/impl/tools-overlay-v2.d.ts +47 -0
- package/dist/ui/overlay/impl/tools-overlay-v2.js +214 -0
- package/dist/ui/overlay/impl/tutorial-overlay-v2.d.ts +45 -0
- package/dist/ui/overlay/impl/tutorial-overlay-v2.js +212 -0
- package/dist/ui/overlay/impl/workflow-overlay-v2.d.ts +80 -0
- package/dist/ui/overlay/impl/workflow-overlay-v2.js +641 -0
- package/dist/ui/overlay/index.d.ts +52 -0
- package/dist/ui/overlay/index.js +54 -0
- package/dist/ui/overlay/key-utils.d.ts +6 -0
- package/dist/ui/overlay/key-utils.js +6 -0
- package/dist/ui/overlay/types.d.ts +140 -0
- package/dist/ui/overlay/types.js +22 -0
- package/dist/ui/overlay-manager.d.ts +43 -0
- package/dist/ui/overlay-manager.js +238 -0
- package/dist/ui/overlays.d.ts +0 -4
- package/dist/ui/overlays.js +4 -460
- package/dist/ui/permission-overlay.d.ts +1 -1
- package/dist/ui/permission-overlay.js +189 -300
- package/dist/ui/providers/types.d.ts +178 -0
- package/dist/ui/providers/types.js +9 -0
- package/dist/ui/render-modes.d.ts +36 -0
- package/dist/ui/render-modes.js +44 -0
- package/dist/ui/startup-menu.d.ts +36 -0
- package/dist/ui/startup-menu.js +236 -0
- package/dist/ui/status-bar-controller.d.ts +33 -0
- package/dist/ui/status-bar-controller.js +99 -0
- package/dist/ui/subagent-renderer.d.ts +117 -0
- package/dist/ui/subagent-renderer.js +318 -0
- package/dist/ui/terminal-autocomplete-utils.d.ts +23 -0
- package/dist/ui/terminal-autocomplete-utils.js +83 -0
- package/dist/ui/terminal-codes.d.ts +94 -0
- package/dist/ui/terminal-codes.js +124 -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 +220 -0
- package/dist/ui/terminal-renderer.js +750 -0
- package/dist/ui/terminal-types.d.ts +179 -0
- package/dist/ui/terminal-types.js +34 -0
- package/dist/ui/terminal-ui.d.ts +331 -0
- package/dist/ui/terminal-ui.js +819 -0
- package/dist/ui/terminal.d.ts +20 -0
- package/dist/ui/terminal.js +72 -0
- package/dist/ui/todo-zone.d.ts +19 -1
- package/dist/ui/todo-zone.js +124 -38
- package/dist/ui/tool-formatters.d.ts +16 -0
- package/dist/ui/tool-formatters.js +1027 -0
- 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/debug-log.d.ts +28 -0
- package/dist/utils/debug-log.js +57 -0
- 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 +39 -17
- package/dist/utils/open-browser.d.ts +5 -0
- package/dist/utils/open-browser.js +32 -0
- package/dist/utils/path-safety.d.ts +56 -0
- package/dist/utils/path-safety.js +240 -0
- 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/dist/workflow/guided-mode-injector.d.ts +42 -0
- package/dist/workflow/guided-mode-injector.js +191 -0
- package/dist/workflow/index.d.ts +8 -0
- package/dist/workflow/index.js +8 -0
- package/dist/workflow/step-criteria.d.ts +62 -0
- package/dist/workflow/step-criteria.js +150 -0
- package/dist/workflow/step-tracker.d.ts +92 -0
- package/dist/workflow/step-tracker.js +141 -0
- package/package.json +32 -12
- package/dist/index.old.d.ts +0 -7
- package/dist/index.old.js +0 -1014
- package/dist/repl.d.ts +0 -121
- package/dist/repl.js +0 -1878
- 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.d.ts +0 -12
- package/dist/ui/agents-overlay.js +0 -501
- package/dist/ui/arch-type-overlay.d.ts +0 -20
- package/dist/ui/arch-type-overlay.js +0 -229
- package/dist/ui/backlog-overlay.d.ts +0 -17
- package/dist/ui/backlog-overlay.js +0 -786
- package/dist/ui/commands-overlay.d.ts +0 -11
- package/dist/ui/commands-overlay.js +0 -410
- package/dist/ui/config-overlay.d.ts +0 -34
- package/dist/ui/config-overlay.js +0 -977
- package/dist/ui/init-overlay.d.ts +0 -24
- package/dist/ui/init-overlay.js +0 -525
- package/dist/ui/input-prompt-v2.d.ts +0 -179
- package/dist/ui/input-prompt-v2.js +0 -991
- package/dist/ui/model-warning-overlay.d.ts +0 -30
- package/dist/ui/model-warning-overlay.js +0 -171
- package/dist/ui/tools-overlay.d.ts +0 -26
- package/dist/ui/tools-overlay.js +0 -278
- package/dist/ui/tutorial-overlay.d.ts +0 -10
- package/dist/ui/tutorial-overlay.js +0 -936
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Subagent Renderer
|
|
3
|
+
*
|
|
4
|
+
* Renders subagent status in Claude Code style:
|
|
5
|
+
* - Single agent: bullet with status and last action
|
|
6
|
+
* - Multiple agents: tree structure with all agents listed
|
|
7
|
+
* - Live updates as tools execute
|
|
8
|
+
*
|
|
9
|
+
* Visual style:
|
|
10
|
+
* ● Explore(Find CLI entry points)
|
|
11
|
+
* ⎿ Read 67 lines
|
|
12
|
+
* Found 100 files
|
|
13
|
+
* +3 more tool uses (ctrl+o to expand)
|
|
14
|
+
*
|
|
15
|
+
* ● Running 3 Explore agents... (ctrl+o to expand)
|
|
16
|
+
* ├─ Find state management · 3 tool uses · 20.7k tokens
|
|
17
|
+
* │ ⎿ Bash: List TypeScript files
|
|
18
|
+
* └─ Find utility functions · 5 tool uses · 18.9k tokens
|
|
19
|
+
* ⎿ Read: src/utils/project-memory.ts
|
|
20
|
+
*/
|
|
21
|
+
export interface SubagentState {
|
|
22
|
+
id: string;
|
|
23
|
+
type: string;
|
|
24
|
+
description: string;
|
|
25
|
+
status: 'running' | 'done' | 'error';
|
|
26
|
+
toolCount: number;
|
|
27
|
+
tokenCount: number;
|
|
28
|
+
lastAction: string;
|
|
29
|
+
lastActionDetails: string[];
|
|
30
|
+
startTime: number;
|
|
31
|
+
endTime?: number;
|
|
32
|
+
error?: string;
|
|
33
|
+
}
|
|
34
|
+
export interface SubagentRendererOptions {
|
|
35
|
+
/** Max detail lines to show per agent in compact mode (default: 1) */
|
|
36
|
+
maxDetailLines?: number;
|
|
37
|
+
/** Show token counts (default: true) */
|
|
38
|
+
showTokens?: boolean;
|
|
39
|
+
}
|
|
40
|
+
export declare class SubagentRenderer {
|
|
41
|
+
private readonly agents;
|
|
42
|
+
private isExpanded;
|
|
43
|
+
private readonly maxDetailLines;
|
|
44
|
+
private readonly showTokens;
|
|
45
|
+
private onUpdate;
|
|
46
|
+
constructor(options?: SubagentRendererOptions);
|
|
47
|
+
/**
|
|
48
|
+
* Called when a subagent starts
|
|
49
|
+
*/
|
|
50
|
+
onSubagentStart(id: string, type: string, description: string): void;
|
|
51
|
+
/**
|
|
52
|
+
* Called when a subagent uses a tool
|
|
53
|
+
*/
|
|
54
|
+
onToolUse(agentId: string, toolName: string, summary?: string): void;
|
|
55
|
+
/**
|
|
56
|
+
* Called when a subagent completes
|
|
57
|
+
*/
|
|
58
|
+
onSubagentEnd(id: string, success: boolean, tokenCount: number, error?: string): void;
|
|
59
|
+
/**
|
|
60
|
+
* Toggle expanded/collapsed view (Ctrl+O)
|
|
61
|
+
*/
|
|
62
|
+
toggleExpand(): void;
|
|
63
|
+
/**
|
|
64
|
+
* Check if there are any active subagents
|
|
65
|
+
*/
|
|
66
|
+
hasActiveSubagents(): boolean;
|
|
67
|
+
/**
|
|
68
|
+
* Check if there are any subagents to display
|
|
69
|
+
*/
|
|
70
|
+
hasSubagents(): boolean;
|
|
71
|
+
/**
|
|
72
|
+
* Get count of agents by status
|
|
73
|
+
*/
|
|
74
|
+
getCounts(): {
|
|
75
|
+
running: number;
|
|
76
|
+
done: number;
|
|
77
|
+
error: number;
|
|
78
|
+
total: number;
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* Get the last agent's stats (for persisting to scrolling zone)
|
|
82
|
+
* Returns null if no agents tracked
|
|
83
|
+
*/
|
|
84
|
+
getLastAgentStats(): {
|
|
85
|
+
type: string;
|
|
86
|
+
description: string;
|
|
87
|
+
toolCount: number;
|
|
88
|
+
tokenCount: number;
|
|
89
|
+
durationMs: number;
|
|
90
|
+
} | null;
|
|
91
|
+
/**
|
|
92
|
+
* Clear all agents (after rendering final output to scrolling zone)
|
|
93
|
+
*/
|
|
94
|
+
clear(): void;
|
|
95
|
+
/**
|
|
96
|
+
* Set callback for state updates
|
|
97
|
+
*/
|
|
98
|
+
setUpdateCallback(callback: (() => void) | null): void;
|
|
99
|
+
/**
|
|
100
|
+
* Render the subagent zone - returns array of lines
|
|
101
|
+
* Only renders running agents - completed agents are shown via printSubagentResponse
|
|
102
|
+
*/
|
|
103
|
+
render(): string[];
|
|
104
|
+
private triggerUpdate;
|
|
105
|
+
/**
|
|
106
|
+
* Render single agent display
|
|
107
|
+
*/
|
|
108
|
+
private renderSingleAgent;
|
|
109
|
+
/**
|
|
110
|
+
* Render multiple agents in tree display
|
|
111
|
+
*/
|
|
112
|
+
private renderMultipleAgents;
|
|
113
|
+
/**
|
|
114
|
+
* Get common type label if all agents are same type, otherwise "mixed"
|
|
115
|
+
*/
|
|
116
|
+
private getCommonTypeLabel;
|
|
117
|
+
}
|
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Subagent Renderer
|
|
3
|
+
*
|
|
4
|
+
* Renders subagent status in Claude Code style:
|
|
5
|
+
* - Single agent: bullet with status and last action
|
|
6
|
+
* - Multiple agents: tree structure with all agents listed
|
|
7
|
+
* - Live updates as tools execute
|
|
8
|
+
*
|
|
9
|
+
* Visual style:
|
|
10
|
+
* ● Explore(Find CLI entry points)
|
|
11
|
+
* ⎿ Read 67 lines
|
|
12
|
+
* Found 100 files
|
|
13
|
+
* +3 more tool uses (ctrl+o to expand)
|
|
14
|
+
*
|
|
15
|
+
* ● Running 3 Explore agents... (ctrl+o to expand)
|
|
16
|
+
* ├─ Find state management · 3 tool uses · 20.7k tokens
|
|
17
|
+
* │ ⎿ Bash: List TypeScript files
|
|
18
|
+
* └─ Find utility functions · 5 tool uses · 18.9k tokens
|
|
19
|
+
* ⎿ Read: src/utils/project-memory.ts
|
|
20
|
+
*/
|
|
21
|
+
import { getStyles } from '../themes/index.js';
|
|
22
|
+
import { debugRender } from '../utils/debug-log.js';
|
|
23
|
+
import { formatTokens, truncate } from './base/index.js';
|
|
24
|
+
// =============================================================================
|
|
25
|
+
// Formatting Helpers
|
|
26
|
+
// =============================================================================
|
|
27
|
+
/**
|
|
28
|
+
* Format duration in human-readable format (e.g., "1m 23s", "45s", "19.2s")
|
|
29
|
+
*/
|
|
30
|
+
function formatDuration(ms) {
|
|
31
|
+
const seconds = ms / 1000;
|
|
32
|
+
if (seconds < 60) {
|
|
33
|
+
return seconds < 10 ? `${seconds.toFixed(1)}s` : `${String(Math.floor(seconds))}s`;
|
|
34
|
+
}
|
|
35
|
+
const minutes = Math.floor(seconds / 60);
|
|
36
|
+
const remainingSeconds = Math.floor(seconds % 60);
|
|
37
|
+
return `${String(minutes)}m ${String(remainingSeconds)}s`;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Capitalize first letter
|
|
41
|
+
*/
|
|
42
|
+
function capitalize(str) {
|
|
43
|
+
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
44
|
+
}
|
|
45
|
+
// =============================================================================
|
|
46
|
+
// Tree Characters (Unicode box drawing)
|
|
47
|
+
// =============================================================================
|
|
48
|
+
const TREE = {
|
|
49
|
+
branch: '├─', // Non-last item
|
|
50
|
+
end: '└─', // Last item
|
|
51
|
+
vertical: '│', // Vertical continuation
|
|
52
|
+
result: '⎿', // Result/action marker
|
|
53
|
+
bullet: '●', // Header bullet
|
|
54
|
+
};
|
|
55
|
+
// =============================================================================
|
|
56
|
+
// Subagent Renderer Class
|
|
57
|
+
// =============================================================================
|
|
58
|
+
export class SubagentRenderer {
|
|
59
|
+
agents = new Map();
|
|
60
|
+
isExpanded = false;
|
|
61
|
+
maxDetailLines;
|
|
62
|
+
showTokens;
|
|
63
|
+
// Callback for when state changes (trigger re-render)
|
|
64
|
+
onUpdate = null;
|
|
65
|
+
constructor(options = {}) {
|
|
66
|
+
this.maxDetailLines = options.maxDetailLines ?? 1;
|
|
67
|
+
this.showTokens = options.showTokens ?? true;
|
|
68
|
+
}
|
|
69
|
+
// ===========================================================================
|
|
70
|
+
// Public API
|
|
71
|
+
// ===========================================================================
|
|
72
|
+
/**
|
|
73
|
+
* Called when a subagent starts
|
|
74
|
+
*/
|
|
75
|
+
onSubagentStart(id, type, description) {
|
|
76
|
+
this.agents.set(id, {
|
|
77
|
+
id,
|
|
78
|
+
type,
|
|
79
|
+
description: truncate(description, 50),
|
|
80
|
+
status: 'running',
|
|
81
|
+
toolCount: 0,
|
|
82
|
+
tokenCount: 0,
|
|
83
|
+
lastAction: '',
|
|
84
|
+
lastActionDetails: [],
|
|
85
|
+
startTime: Date.now(),
|
|
86
|
+
});
|
|
87
|
+
this.triggerUpdate();
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Called when a subagent uses a tool
|
|
91
|
+
*/
|
|
92
|
+
onToolUse(agentId, toolName, summary) {
|
|
93
|
+
const agent = this.agents.get(agentId);
|
|
94
|
+
if (!agent)
|
|
95
|
+
return;
|
|
96
|
+
agent.toolCount++;
|
|
97
|
+
agent.lastAction = summary
|
|
98
|
+
? `${capitalize(toolName)}: ${truncate(summary, 40)}`
|
|
99
|
+
: capitalize(toolName);
|
|
100
|
+
this.triggerUpdate();
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Called when a subagent completes
|
|
104
|
+
*/
|
|
105
|
+
onSubagentEnd(id, success, tokenCount, error) {
|
|
106
|
+
const agent = this.agents.get(id);
|
|
107
|
+
if (!agent)
|
|
108
|
+
return;
|
|
109
|
+
agent.status = success ? 'done' : 'error';
|
|
110
|
+
agent.tokenCount = tokenCount;
|
|
111
|
+
agent.endTime = Date.now();
|
|
112
|
+
agent.error = error;
|
|
113
|
+
agent.lastAction = success ? 'Done' : `Error: ${error || 'Unknown'}`;
|
|
114
|
+
this.triggerUpdate();
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Toggle expanded/collapsed view (Ctrl+O)
|
|
118
|
+
*/
|
|
119
|
+
toggleExpand() {
|
|
120
|
+
this.isExpanded = !this.isExpanded;
|
|
121
|
+
this.triggerUpdate();
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Check if there are any active subagents
|
|
125
|
+
*/
|
|
126
|
+
hasActiveSubagents() {
|
|
127
|
+
return Array.from(this.agents.values()).some(a => a.status === 'running');
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Check if there are any subagents to display
|
|
131
|
+
*/
|
|
132
|
+
hasSubagents() {
|
|
133
|
+
return this.agents.size > 0;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Get count of agents by status
|
|
137
|
+
*/
|
|
138
|
+
getCounts() {
|
|
139
|
+
let running = 0, done = 0, error = 0;
|
|
140
|
+
for (const agent of this.agents.values()) {
|
|
141
|
+
if (agent.status === 'running')
|
|
142
|
+
running++;
|
|
143
|
+
else if (agent.status === 'done')
|
|
144
|
+
done++;
|
|
145
|
+
else
|
|
146
|
+
error++;
|
|
147
|
+
}
|
|
148
|
+
return { running, done, error, total: this.agents.size };
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Get the last agent's stats (for persisting to scrolling zone)
|
|
152
|
+
* Returns null if no agents tracked
|
|
153
|
+
*/
|
|
154
|
+
getLastAgentStats() {
|
|
155
|
+
const agents = Array.from(this.agents.values());
|
|
156
|
+
if (agents.length === 0)
|
|
157
|
+
return null;
|
|
158
|
+
// Get the most recently added agent
|
|
159
|
+
const agent = agents[agents.length - 1];
|
|
160
|
+
const endTime = agent.endTime ?? Date.now();
|
|
161
|
+
const durationMs = endTime - agent.startTime;
|
|
162
|
+
return {
|
|
163
|
+
type: agent.type,
|
|
164
|
+
description: agent.description,
|
|
165
|
+
toolCount: agent.toolCount,
|
|
166
|
+
tokenCount: agent.tokenCount,
|
|
167
|
+
durationMs,
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Clear all agents (after rendering final output to scrolling zone)
|
|
172
|
+
*/
|
|
173
|
+
clear() {
|
|
174
|
+
this.agents.clear();
|
|
175
|
+
this.isExpanded = false;
|
|
176
|
+
this.triggerUpdate();
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Set callback for state updates
|
|
180
|
+
*/
|
|
181
|
+
setUpdateCallback(callback) {
|
|
182
|
+
this.onUpdate = callback;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Render the subagent zone - returns array of lines
|
|
186
|
+
* Only renders running agents - completed agents are shown via printSubagentResponse
|
|
187
|
+
*/
|
|
188
|
+
render() {
|
|
189
|
+
if (this.agents.size === 0) {
|
|
190
|
+
debugRender('Subagent:render', 'no agents, returning []');
|
|
191
|
+
return [];
|
|
192
|
+
}
|
|
193
|
+
// Filter to only running agents - completed agents are shown via printSubagentResponse
|
|
194
|
+
const runningAgents = Array.from(this.agents.values()).filter(a => a.status === 'running');
|
|
195
|
+
const allStatuses = Array.from(this.agents.values()).map(a => `${a.id}:${a.status}`);
|
|
196
|
+
debugRender('Subagent:render', `total=${String(this.agents.size)} running=${String(runningAgents.length)} statuses=[${allStatuses.join(',')}]`);
|
|
197
|
+
if (runningAgents.length === 0) {
|
|
198
|
+
return [];
|
|
199
|
+
}
|
|
200
|
+
const s = getStyles();
|
|
201
|
+
// Single agent - simpler display
|
|
202
|
+
if (runningAgents.length === 1) {
|
|
203
|
+
const lines = this.renderSingleAgent(runningAgents[0], s);
|
|
204
|
+
debugRender('Subagent:render', `single agent, returning ${String(lines.length)} lines`);
|
|
205
|
+
return lines;
|
|
206
|
+
}
|
|
207
|
+
// Multiple agents - tree display
|
|
208
|
+
const counts = this.getCounts();
|
|
209
|
+
const lines = this.renderMultipleAgents(runningAgents, counts, s);
|
|
210
|
+
debugRender('Subagent:render', `multiple agents, returning ${String(lines.length)} lines`);
|
|
211
|
+
return lines;
|
|
212
|
+
}
|
|
213
|
+
// ===========================================================================
|
|
214
|
+
// Private Methods
|
|
215
|
+
// ===========================================================================
|
|
216
|
+
triggerUpdate() {
|
|
217
|
+
if (this.onUpdate) {
|
|
218
|
+
this.onUpdate();
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Render single agent display
|
|
223
|
+
*/
|
|
224
|
+
renderSingleAgent(agent, s) {
|
|
225
|
+
const lines = [];
|
|
226
|
+
const typeLabel = capitalize(agent.type);
|
|
227
|
+
// Header line: ● Explore(Find CLI entry points)
|
|
228
|
+
const header = `${TREE.bullet} ${typeLabel}(${agent.description})`;
|
|
229
|
+
if (agent.status === 'done') {
|
|
230
|
+
// Completed: show stats
|
|
231
|
+
const duration = formatDuration((agent.endTime ?? Date.now()) - agent.startTime);
|
|
232
|
+
const stats = this.showTokens
|
|
233
|
+
? `${String(agent.toolCount)} tool uses · ${formatTokens(agent.tokenCount)} tokens · ${duration}`
|
|
234
|
+
: `${String(agent.toolCount)} tool uses · ${duration}`;
|
|
235
|
+
lines.push(s.primary(header));
|
|
236
|
+
lines.push(s.muted(` ${TREE.result} Done (${stats})`));
|
|
237
|
+
}
|
|
238
|
+
else if (agent.status === 'error') {
|
|
239
|
+
lines.push(s.error(header));
|
|
240
|
+
lines.push(s.error(` ${TREE.result} ${agent.lastAction}`));
|
|
241
|
+
}
|
|
242
|
+
else {
|
|
243
|
+
// Running: show last action
|
|
244
|
+
lines.push(s.primary(header));
|
|
245
|
+
if (agent.lastAction) {
|
|
246
|
+
lines.push(s.muted(` ${TREE.result} ${agent.lastAction}`));
|
|
247
|
+
}
|
|
248
|
+
if (agent.toolCount > 1) {
|
|
249
|
+
lines.push(s.muted(` +${String(agent.toolCount - 1)} more tool uses (ctrl+o to expand)`));
|
|
250
|
+
}
|
|
251
|
+
// ctrl+b background: coming soon
|
|
252
|
+
}
|
|
253
|
+
return lines;
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Render multiple agents in tree display
|
|
257
|
+
*/
|
|
258
|
+
renderMultipleAgents(agents, counts, s) {
|
|
259
|
+
const lines = [];
|
|
260
|
+
// Header line
|
|
261
|
+
let headerText;
|
|
262
|
+
if (counts.running > 0 && counts.done > 0) {
|
|
263
|
+
// Mixed states
|
|
264
|
+
headerText = `${TREE.bullet} ${String(counts.total)} agents (${String(counts.running)} running, ${String(counts.done)} done)`;
|
|
265
|
+
}
|
|
266
|
+
else if (counts.running > 0) {
|
|
267
|
+
// All running
|
|
268
|
+
const typeLabel = this.getCommonTypeLabel(agents);
|
|
269
|
+
headerText = `${TREE.bullet} Running ${String(counts.total)} ${typeLabel} agents… (ctrl+o to expand)`;
|
|
270
|
+
}
|
|
271
|
+
else {
|
|
272
|
+
// All done
|
|
273
|
+
const typeLabel = this.getCommonTypeLabel(agents);
|
|
274
|
+
headerText = `${TREE.bullet} ${String(counts.total)} ${typeLabel} agents finished (ctrl+o to expand)`;
|
|
275
|
+
}
|
|
276
|
+
lines.push(s.primary(headerText));
|
|
277
|
+
// Render each agent in tree
|
|
278
|
+
for (let i = 0; i < agents.length; i++) {
|
|
279
|
+
const agent = agents[i];
|
|
280
|
+
const isLast = i === agents.length - 1;
|
|
281
|
+
const branch = isLast ? TREE.end : TREE.branch;
|
|
282
|
+
const continuation = isLast ? ' ' : `${TREE.vertical} `;
|
|
283
|
+
// Agent line: ├─ Find state management · 3 tool uses · 20.7k tokens
|
|
284
|
+
const toolCountStr = String(agent.toolCount);
|
|
285
|
+
const stats = this.showTokens
|
|
286
|
+
? `${toolCountStr} tool ${agent.toolCount === 1 ? 'use' : 'uses'} · ${formatTokens(agent.tokenCount)} tokens`
|
|
287
|
+
: `${toolCountStr} tool ${agent.toolCount === 1 ? 'use' : 'uses'}`;
|
|
288
|
+
const agentLine = ` ${branch} ${agent.description} · ${stats}`;
|
|
289
|
+
if (agent.status === 'error') {
|
|
290
|
+
lines.push(s.error(agentLine));
|
|
291
|
+
}
|
|
292
|
+
else if (agent.status === 'done') {
|
|
293
|
+
lines.push(s.muted(agentLine));
|
|
294
|
+
}
|
|
295
|
+
else {
|
|
296
|
+
lines.push(agentLine);
|
|
297
|
+
}
|
|
298
|
+
// Last action line: │ ⎿ Read: src/auth.ts
|
|
299
|
+
const actionLine = ` ${continuation}${TREE.result} ${agent.lastAction || (agent.status === 'done' ? 'Done' : 'Starting...')}`;
|
|
300
|
+
lines.push(s.muted(actionLine));
|
|
301
|
+
}
|
|
302
|
+
// Footer hint for running agents
|
|
303
|
+
if (counts.running > 0) {
|
|
304
|
+
// ctrl+b background: coming soon
|
|
305
|
+
}
|
|
306
|
+
return lines;
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Get common type label if all agents are same type, otherwise "mixed"
|
|
310
|
+
*/
|
|
311
|
+
getCommonTypeLabel(agents) {
|
|
312
|
+
if (agents.length === 0)
|
|
313
|
+
return '';
|
|
314
|
+
const firstType = agents[0].type;
|
|
315
|
+
const allSame = agents.every(a => a.type === firstType);
|
|
316
|
+
return allSame ? capitalize(firstType) : '';
|
|
317
|
+
}
|
|
318
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Standalone utility functions for input text formatting and autocomplete.
|
|
3
|
+
*
|
|
4
|
+
* Extracted from terminal-ui.ts for modularity.
|
|
5
|
+
* These are pure functions with no class dependencies.
|
|
6
|
+
*/
|
|
7
|
+
import type { CommandOption } from './types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Format input text with syntax highlighting for special prefixes.
|
|
10
|
+
* - $agent references: bold + secondary color
|
|
11
|
+
* - @path references: secondary color
|
|
12
|
+
* - /commands: primary color
|
|
13
|
+
*/
|
|
14
|
+
export declare function formatInputText(text: string): string;
|
|
15
|
+
/**
|
|
16
|
+
* Calculate fuzzy match score for a query against a target string.
|
|
17
|
+
* Higher score = better match. Returns -1 if no match.
|
|
18
|
+
*/
|
|
19
|
+
export declare function fuzzyMatchScore(query: string, target: string): number;
|
|
20
|
+
/**
|
|
21
|
+
* Filter and rank commands matching input using fuzzy matching
|
|
22
|
+
*/
|
|
23
|
+
export declare function filterCommands(input: string, commands: CommandOption[]): CommandOption[];
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Standalone utility functions for input text formatting and autocomplete.
|
|
3
|
+
*
|
|
4
|
+
* Extracted from terminal-ui.ts for modularity.
|
|
5
|
+
* These are pure functions with no class dependencies.
|
|
6
|
+
*/
|
|
7
|
+
import { Chalk } from 'chalk';
|
|
8
|
+
import { getStyles } from '../themes/index.js';
|
|
9
|
+
// Force color output (level 3 = 24-bit true color)
|
|
10
|
+
const chalk = new Chalk({ level: 3 });
|
|
11
|
+
// =============================================================================
|
|
12
|
+
// Input Text Formatting
|
|
13
|
+
// =============================================================================
|
|
14
|
+
/**
|
|
15
|
+
* Format input text with syntax highlighting for special prefixes.
|
|
16
|
+
* - $agent references: bold + secondary color
|
|
17
|
+
* - @path references: secondary color
|
|
18
|
+
* - /commands: primary color
|
|
19
|
+
*/
|
|
20
|
+
export function formatInputText(text) {
|
|
21
|
+
const s = getStyles();
|
|
22
|
+
let result = text;
|
|
23
|
+
// Format $agent references - bold + secondary
|
|
24
|
+
// Match $word at word boundaries (not inside other text)
|
|
25
|
+
result = result.replace(/(?<![$\w])\$([a-zA-Z_][a-zA-Z0-9_]*)\b/g, (_match, agentId) => chalk.bold(s.secondary(`$${agentId}`)));
|
|
26
|
+
// Format @path references - secondary (not bold, paths can be long)
|
|
27
|
+
// Match @word or @path/to/file patterns
|
|
28
|
+
result = result.replace(/(?<![@\w])@([\w./-]+)/g, (_match, path) => s.secondary(`@${path}`));
|
|
29
|
+
// Format /commands at start of input - primary color
|
|
30
|
+
// Only match at start of line (after optional whitespace)
|
|
31
|
+
result = result.replace(/^(\s*)(\/[a-zA-Z][a-zA-Z0-9_-]*)/g, (_match, space, cmd) => space + s.primary(cmd));
|
|
32
|
+
return result;
|
|
33
|
+
}
|
|
34
|
+
// =============================================================================
|
|
35
|
+
// Fuzzy Matching
|
|
36
|
+
// =============================================================================
|
|
37
|
+
/**
|
|
38
|
+
* Calculate fuzzy match score for a query against a target string.
|
|
39
|
+
* Higher score = better match. Returns -1 if no match.
|
|
40
|
+
*/
|
|
41
|
+
export function fuzzyMatchScore(query, target) {
|
|
42
|
+
const queryLower = query.toLowerCase();
|
|
43
|
+
const targetLower = target.toLowerCase();
|
|
44
|
+
// Exact prefix match - highest priority (score 1000+)
|
|
45
|
+
if (targetLower.startsWith(queryLower)) {
|
|
46
|
+
return 1000 + (100 - target.length); // Shorter commands rank higher
|
|
47
|
+
}
|
|
48
|
+
// Contiguous substring match - high priority (score 500+)
|
|
49
|
+
if (targetLower.includes(queryLower)) {
|
|
50
|
+
const index = targetLower.indexOf(queryLower);
|
|
51
|
+
return 500 + (100 - index); // Earlier matches rank higher
|
|
52
|
+
}
|
|
53
|
+
// Fuzzy match - characters appear in order (score 100+)
|
|
54
|
+
let queryIdx = 0;
|
|
55
|
+
let consecutiveBonus = 0;
|
|
56
|
+
let lastMatchIdx = -1;
|
|
57
|
+
for (let i = 0; i < targetLower.length && queryIdx < queryLower.length; i++) {
|
|
58
|
+
if (targetLower[i] === queryLower[queryIdx]) {
|
|
59
|
+
if (lastMatchIdx === i - 1) {
|
|
60
|
+
consecutiveBonus += 10;
|
|
61
|
+
}
|
|
62
|
+
lastMatchIdx = i;
|
|
63
|
+
queryIdx++;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
if (queryIdx === queryLower.length) {
|
|
67
|
+
return 100 + consecutiveBonus + (100 - target.length);
|
|
68
|
+
}
|
|
69
|
+
return -1;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Filter and rank commands matching input using fuzzy matching
|
|
73
|
+
*/
|
|
74
|
+
export function filterCommands(input, commands) {
|
|
75
|
+
const scored = commands
|
|
76
|
+
.map((cmd) => ({
|
|
77
|
+
cmd,
|
|
78
|
+
score: fuzzyMatchScore(input, cmd.command),
|
|
79
|
+
}))
|
|
80
|
+
.filter((item) => item.score >= 0);
|
|
81
|
+
scored.sort((a, b) => b.score - a.score);
|
|
82
|
+
return scored.map((item) => item.cmd);
|
|
83
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Terminal ANSI Escape Codes
|
|
3
|
+
*
|
|
4
|
+
* Constants and helper functions for ANSI escape sequences.
|
|
5
|
+
* Used by TerminalRenderer for cursor movement, scroll regions, clearing, etc.
|
|
6
|
+
*
|
|
7
|
+
* Reference: https://en.wikipedia.org/wiki/ANSI_escape_code
|
|
8
|
+
*/
|
|
9
|
+
/** Control Sequence Introducer */
|
|
10
|
+
export declare const CSI = "\u001B[";
|
|
11
|
+
/** Operating System Command (for title, etc.) */
|
|
12
|
+
export declare const OSC = "\u001B]";
|
|
13
|
+
/** String Terminator */
|
|
14
|
+
export declare const ST = "\u0007";
|
|
15
|
+
/** Move cursor up N lines */
|
|
16
|
+
export declare const cursorUp: (n: number) => string;
|
|
17
|
+
/** Move cursor down N lines */
|
|
18
|
+
export declare const cursorDown: (n: number) => string;
|
|
19
|
+
/** Move cursor forward (right) N columns */
|
|
20
|
+
export declare const cursorForward: (n: number) => string;
|
|
21
|
+
/** Move cursor back (left) N columns */
|
|
22
|
+
export declare const cursorBack: (n: number) => string;
|
|
23
|
+
/** Move cursor to specific row and column (1-indexed) */
|
|
24
|
+
export declare const cursorTo: (row: number, col: number) => string;
|
|
25
|
+
/** Move cursor to beginning of line */
|
|
26
|
+
export declare const cursorToLineStart = "\r";
|
|
27
|
+
/** Move cursor to specific column (1-indexed) */
|
|
28
|
+
export declare const cursorToColumn: (col: number) => string;
|
|
29
|
+
/** Save cursor position */
|
|
30
|
+
export declare const saveCursor = "\u001B[s";
|
|
31
|
+
/** Restore cursor position */
|
|
32
|
+
export declare const restoreCursor = "\u001B[u";
|
|
33
|
+
/** Hide cursor */
|
|
34
|
+
export declare const hideCursor = "\u001B[?25l";
|
|
35
|
+
/** Show cursor */
|
|
36
|
+
export declare const showCursor = "\u001B[?25h";
|
|
37
|
+
/**
|
|
38
|
+
* Set scroll region (DECSTBM - DEC Set Top and Bottom Margins)
|
|
39
|
+
*
|
|
40
|
+
* @param top - Top row of scroll region (1-indexed, inclusive)
|
|
41
|
+
* @param bottom - Bottom row of scroll region (1-indexed, inclusive)
|
|
42
|
+
*
|
|
43
|
+
* When set, scrolling only affects rows within this region.
|
|
44
|
+
* Text printed in the scroll region that would overflow scrolls the region.
|
|
45
|
+
* Content outside the region is not affected.
|
|
46
|
+
*/
|
|
47
|
+
export declare const setScrollRegion: (top: number, bottom: number) => string;
|
|
48
|
+
/**
|
|
49
|
+
* Reset scroll region to full screen
|
|
50
|
+
*
|
|
51
|
+
* Removes any scroll region restrictions.
|
|
52
|
+
* Scrolling affects the entire terminal again.
|
|
53
|
+
*/
|
|
54
|
+
export declare const resetScrollRegion = "\u001B[r";
|
|
55
|
+
/** Clear from cursor to end of line */
|
|
56
|
+
export declare const clearToEndOfLine = "\u001B[K";
|
|
57
|
+
/** Clear from cursor to start of line */
|
|
58
|
+
export declare const clearToStartOfLine = "\u001B[1K";
|
|
59
|
+
/** Clear entire line */
|
|
60
|
+
export declare const clearLine = "\u001B[2K";
|
|
61
|
+
/** Clear from cursor to end of screen */
|
|
62
|
+
export declare const clearToEndOfScreen = "\u001B[J";
|
|
63
|
+
/** Clear from cursor to start of screen */
|
|
64
|
+
export declare const clearToStartOfScreen = "\u001B[1J";
|
|
65
|
+
/** Clear entire screen (cursor position unchanged) */
|
|
66
|
+
export declare const clearScreen = "\u001B[2J";
|
|
67
|
+
/** Clear entire screen and move cursor to top-left */
|
|
68
|
+
export declare const clearScreenAndHome = "\u001B[2J\u001B[H";
|
|
69
|
+
/**
|
|
70
|
+
* Enter alternate screen buffer.
|
|
71
|
+
* Content shown here doesn't go to main scrollback.
|
|
72
|
+
* Used for modal UIs like menus, editors.
|
|
73
|
+
*/
|
|
74
|
+
export declare const enterAlternateScreen = "\u001B[?1049h";
|
|
75
|
+
/**
|
|
76
|
+
* Leave alternate screen buffer.
|
|
77
|
+
* Returns to main screen (previous content restored).
|
|
78
|
+
*/
|
|
79
|
+
export declare const leaveAlternateScreen = "\u001B[?1049l";
|
|
80
|
+
/** Disable all mouse tracking modes */
|
|
81
|
+
export declare const disableMouseTracking = "\u001B[?1000l\u001B[?1002l\u001B[?1003l";
|
|
82
|
+
/** Set terminal window title */
|
|
83
|
+
export declare const setTitle: (title: string) => string;
|
|
84
|
+
/** Ring terminal bell */
|
|
85
|
+
export declare const bell = "\u0007";
|
|
86
|
+
/**
|
|
87
|
+
* Position cursor at a specific location and clear to end of screen
|
|
88
|
+
* Useful for redrawing from a known position
|
|
89
|
+
*/
|
|
90
|
+
export declare const positionAndClear: (row: number, col: number) => string;
|
|
91
|
+
/**
|
|
92
|
+
* Move to row 1, column 1 (home position)
|
|
93
|
+
*/
|
|
94
|
+
export declare const cursorHome = "\u001B[H";
|