@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,124 @@
|
|
|
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
|
+
// =============================================================================
|
|
10
|
+
// Escape Sequence Base
|
|
11
|
+
// =============================================================================
|
|
12
|
+
/** Control Sequence Introducer */
|
|
13
|
+
export const CSI = '\x1b[';
|
|
14
|
+
/** Operating System Command (for title, etc.) */
|
|
15
|
+
export const OSC = '\x1b]';
|
|
16
|
+
/** String Terminator */
|
|
17
|
+
export const ST = '\x07';
|
|
18
|
+
// =============================================================================
|
|
19
|
+
// Cursor Movement
|
|
20
|
+
// =============================================================================
|
|
21
|
+
/** Move cursor up N lines */
|
|
22
|
+
export const cursorUp = (n) => (n > 0 ? `${CSI}${String(n)}A` : '');
|
|
23
|
+
/** Move cursor down N lines */
|
|
24
|
+
export const cursorDown = (n) => (n > 0 ? `${CSI}${String(n)}B` : '');
|
|
25
|
+
/** Move cursor forward (right) N columns */
|
|
26
|
+
export const cursorForward = (n) => (n > 0 ? `${CSI}${String(n)}C` : '');
|
|
27
|
+
/** Move cursor back (left) N columns */
|
|
28
|
+
export const cursorBack = (n) => (n > 0 ? `${CSI}${String(n)}D` : '');
|
|
29
|
+
/** Move cursor to specific row and column (1-indexed) */
|
|
30
|
+
export const cursorTo = (row, col) => `${CSI}${String(row)};${String(col)}H`;
|
|
31
|
+
/** Move cursor to beginning of line */
|
|
32
|
+
export const cursorToLineStart = '\r';
|
|
33
|
+
/** Move cursor to specific column (1-indexed) */
|
|
34
|
+
export const cursorToColumn = (col) => `${CSI}${String(col)}G`;
|
|
35
|
+
/** Save cursor position */
|
|
36
|
+
export const saveCursor = `${CSI}s`;
|
|
37
|
+
/** Restore cursor position */
|
|
38
|
+
export const restoreCursor = `${CSI}u`;
|
|
39
|
+
// =============================================================================
|
|
40
|
+
// Cursor Visibility
|
|
41
|
+
// =============================================================================
|
|
42
|
+
/** Hide cursor */
|
|
43
|
+
export const hideCursor = `${CSI}?25l`;
|
|
44
|
+
/** Show cursor */
|
|
45
|
+
export const showCursor = `${CSI}?25h`;
|
|
46
|
+
// =============================================================================
|
|
47
|
+
// Scroll Regions
|
|
48
|
+
// =============================================================================
|
|
49
|
+
/**
|
|
50
|
+
* Set scroll region (DECSTBM - DEC Set Top and Bottom Margins)
|
|
51
|
+
*
|
|
52
|
+
* @param top - Top row of scroll region (1-indexed, inclusive)
|
|
53
|
+
* @param bottom - Bottom row of scroll region (1-indexed, inclusive)
|
|
54
|
+
*
|
|
55
|
+
* When set, scrolling only affects rows within this region.
|
|
56
|
+
* Text printed in the scroll region that would overflow scrolls the region.
|
|
57
|
+
* Content outside the region is not affected.
|
|
58
|
+
*/
|
|
59
|
+
export const setScrollRegion = (top, bottom) => `${CSI}${String(top)};${String(bottom)}r`;
|
|
60
|
+
/**
|
|
61
|
+
* Reset scroll region to full screen
|
|
62
|
+
*
|
|
63
|
+
* Removes any scroll region restrictions.
|
|
64
|
+
* Scrolling affects the entire terminal again.
|
|
65
|
+
*/
|
|
66
|
+
export const resetScrollRegion = `${CSI}r`;
|
|
67
|
+
// =============================================================================
|
|
68
|
+
// Clearing
|
|
69
|
+
// =============================================================================
|
|
70
|
+
/** Clear from cursor to end of line */
|
|
71
|
+
export const clearToEndOfLine = `${CSI}K`;
|
|
72
|
+
/** Clear from cursor to start of line */
|
|
73
|
+
export const clearToStartOfLine = `${CSI}1K`;
|
|
74
|
+
/** Clear entire line */
|
|
75
|
+
export const clearLine = `${CSI}2K`;
|
|
76
|
+
/** Clear from cursor to end of screen */
|
|
77
|
+
export const clearToEndOfScreen = `${CSI}J`;
|
|
78
|
+
/** Clear from cursor to start of screen */
|
|
79
|
+
export const clearToStartOfScreen = `${CSI}1J`;
|
|
80
|
+
/** Clear entire screen (cursor position unchanged) */
|
|
81
|
+
export const clearScreen = `${CSI}2J`;
|
|
82
|
+
/** Clear entire screen and move cursor to top-left */
|
|
83
|
+
export const clearScreenAndHome = `${CSI}2J${CSI}H`;
|
|
84
|
+
// =============================================================================
|
|
85
|
+
// Alternate Screen Buffer
|
|
86
|
+
// =============================================================================
|
|
87
|
+
/**
|
|
88
|
+
* Enter alternate screen buffer.
|
|
89
|
+
* Content shown here doesn't go to main scrollback.
|
|
90
|
+
* Used for modal UIs like menus, editors.
|
|
91
|
+
*/
|
|
92
|
+
export const enterAlternateScreen = `${CSI}?1049h`;
|
|
93
|
+
/**
|
|
94
|
+
* Leave alternate screen buffer.
|
|
95
|
+
* Returns to main screen (previous content restored).
|
|
96
|
+
*/
|
|
97
|
+
export const leaveAlternateScreen = `${CSI}?1049l`;
|
|
98
|
+
// =============================================================================
|
|
99
|
+
// Mouse Tracking (disabled for CLI)
|
|
100
|
+
// =============================================================================
|
|
101
|
+
/** Disable all mouse tracking modes */
|
|
102
|
+
export const disableMouseTracking = `${CSI}?1000l${CSI}?1002l${CSI}?1003l`;
|
|
103
|
+
// =============================================================================
|
|
104
|
+
// Terminal Title
|
|
105
|
+
// =============================================================================
|
|
106
|
+
/** Set terminal window title */
|
|
107
|
+
export const setTitle = (title) => `${OSC}0;${title}${ST}`;
|
|
108
|
+
// =============================================================================
|
|
109
|
+
// Bell
|
|
110
|
+
// =============================================================================
|
|
111
|
+
/** Ring terminal bell */
|
|
112
|
+
export const bell = '\x07';
|
|
113
|
+
// =============================================================================
|
|
114
|
+
// Composite Helpers
|
|
115
|
+
// =============================================================================
|
|
116
|
+
/**
|
|
117
|
+
* Position cursor at a specific location and clear to end of screen
|
|
118
|
+
* Useful for redrawing from a known position
|
|
119
|
+
*/
|
|
120
|
+
export const positionAndClear = (row, col) => `${cursorTo(row, col)}${clearToEndOfScreen}`;
|
|
121
|
+
/**
|
|
122
|
+
* Move to row 1, column 1 (home position)
|
|
123
|
+
*/
|
|
124
|
+
export const cursorHome = `${CSI}H`;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure line-building utility functions for TerminalUI.
|
|
3
|
+
*
|
|
4
|
+
* Extracted from terminal-ui.ts for modularity.
|
|
5
|
+
* These are pure functions with no class dependencies.
|
|
6
|
+
*/
|
|
7
|
+
import type { TodoItem } from './types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Format a duration in milliseconds to a human-readable string.
|
|
10
|
+
* e.g. 5000 → "5s", 90000 → "1m 30s"
|
|
11
|
+
*/
|
|
12
|
+
export declare function formatDuration(ms: number): string;
|
|
13
|
+
/**
|
|
14
|
+
* Build a single todo line with task number prefix, icon, content,
|
|
15
|
+
* optional owner badge, and blocked-by suffix.
|
|
16
|
+
*/
|
|
17
|
+
export declare function buildTodoLine(todo: TodoItem, taskNumber?: number): string;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure line-building utility functions for TerminalUI.
|
|
3
|
+
*
|
|
4
|
+
* Extracted from terminal-ui.ts for modularity.
|
|
5
|
+
* These are pure functions with no class dependencies.
|
|
6
|
+
*/
|
|
7
|
+
import { getStyles } from '../themes/index.js';
|
|
8
|
+
/**
|
|
9
|
+
* Format a duration in milliseconds to a human-readable string.
|
|
10
|
+
* e.g. 5000 → "5s", 90000 → "1m 30s"
|
|
11
|
+
*/
|
|
12
|
+
export function formatDuration(ms) {
|
|
13
|
+
const seconds = Math.floor(ms / 1000);
|
|
14
|
+
if (seconds < 60) {
|
|
15
|
+
return `${String(seconds)}s`;
|
|
16
|
+
}
|
|
17
|
+
const minutes = Math.floor(seconds / 60);
|
|
18
|
+
const remainingSeconds = seconds % 60;
|
|
19
|
+
return `${String(minutes)}m ${String(remainingSeconds)}s`;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Build a single todo line with task number prefix, icon, content,
|
|
23
|
+
* optional owner badge, and blocked-by suffix.
|
|
24
|
+
*/
|
|
25
|
+
export function buildTodoLine(todo, taskNumber) {
|
|
26
|
+
const s = getStyles();
|
|
27
|
+
const icon = todo.status === 'completed' ? '✓' :
|
|
28
|
+
todo.status === 'in_progress' ? '→' : '☐';
|
|
29
|
+
const style = todo.status === 'completed' ? s.muted :
|
|
30
|
+
todo.status === 'in_progress' ? s.info : s.muted;
|
|
31
|
+
// Task number prefix (e.g., "#1 ")
|
|
32
|
+
const prefix = taskNumber != null ? `#${String(taskNumber)} ` : '';
|
|
33
|
+
// Owner badge (skip for completed items)
|
|
34
|
+
const ownerBadge = todo.owner && todo.status !== 'completed'
|
|
35
|
+
? s.muted(` @${todo.owner}`)
|
|
36
|
+
: '';
|
|
37
|
+
// Blocked-by suffix (skip for completed items)
|
|
38
|
+
const blockedSuffix = todo.blockedBy && todo.blockedBy.length > 0 && todo.status !== 'completed'
|
|
39
|
+
? s.muted(` › blocked by ${todo.blockedBy.map((n) => `#${String(n)}`).join(', ')}`)
|
|
40
|
+
: '';
|
|
41
|
+
return style(`${prefix}${icon} ${todo.content}`) + ownerBadge + blockedSuffix;
|
|
42
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Render a single PrintableItem to the console.
|
|
3
|
+
*
|
|
4
|
+
* Extracted from terminal-ui.ts for modularity.
|
|
5
|
+
* This is a nearly-pure function — the only side effect is console.log output.
|
|
6
|
+
* The 'interrupted' case returns a suggestion string instead of calling setSuggestion().
|
|
7
|
+
*/
|
|
8
|
+
import type { PrintableItem, TerminalUIConfig } from './terminal-types.js';
|
|
9
|
+
/**
|
|
10
|
+
* Render a single item to the console.
|
|
11
|
+
* Config-aware: respects verbose, showMascot settings.
|
|
12
|
+
*
|
|
13
|
+
* @returns suggestion string for 'interrupted' items, null otherwise.
|
|
14
|
+
* Caller should pass the suggestion to setSuggestion() if non-null.
|
|
15
|
+
*/
|
|
16
|
+
export declare function renderItem(item: PrintableItem, config: TerminalUIConfig): string | null;
|
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Render a single PrintableItem to the console.
|
|
3
|
+
*
|
|
4
|
+
* Extracted from terminal-ui.ts for modularity.
|
|
5
|
+
* This is a nearly-pure function — the only side effect is console.log output.
|
|
6
|
+
* The 'interrupted' case returns a suggestion string instead of calling setSuggestion().
|
|
7
|
+
*/
|
|
8
|
+
import * as terminal from './terminal.js';
|
|
9
|
+
import { getStyles } from '../themes/index.js';
|
|
10
|
+
import { renderMarkdown } from './conversation.js';
|
|
11
|
+
import { MASCOT } from './terminal-types.js';
|
|
12
|
+
/**
|
|
13
|
+
* Render a single item to the console.
|
|
14
|
+
* Config-aware: respects verbose, showMascot settings.
|
|
15
|
+
*
|
|
16
|
+
* @returns suggestion string for 'interrupted' items, null otherwise.
|
|
17
|
+
* Caller should pass the suggestion to setSuggestion() if non-null.
|
|
18
|
+
*/
|
|
19
|
+
export function renderItem(item, config) {
|
|
20
|
+
const s = getStyles();
|
|
21
|
+
switch (item.type) {
|
|
22
|
+
case 'user-message':
|
|
23
|
+
console.log('');
|
|
24
|
+
console.log(s.primaryBold('> ') + item.text);
|
|
25
|
+
console.log(''); // Trailing blank for separation
|
|
26
|
+
break;
|
|
27
|
+
case 'agent-text': {
|
|
28
|
+
// Render markdown for proper formatting (headers, lists, bold, code, etc.)
|
|
29
|
+
const rendered = renderMarkdown(item.text);
|
|
30
|
+
// Prefix agent messages with mascot expression (if enabled)
|
|
31
|
+
if (config.showMascot) {
|
|
32
|
+
// Expression can be a key ('success', 'neutral') or a direct mascot string ('[◈_◈]')
|
|
33
|
+
let expr;
|
|
34
|
+
if (!item.expression) {
|
|
35
|
+
expr = MASCOT.neutral;
|
|
36
|
+
}
|
|
37
|
+
else if (item.expression.startsWith('[')) {
|
|
38
|
+
// Direct mascot string from team agent
|
|
39
|
+
expr = item.expression;
|
|
40
|
+
}
|
|
41
|
+
else if (item.expression in MASCOT) {
|
|
42
|
+
// Key lookup in MASCOT object
|
|
43
|
+
expr = MASCOT[item.expression];
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
// Unknown expression key, use neutral
|
|
47
|
+
expr = MASCOT.neutral;
|
|
48
|
+
}
|
|
49
|
+
// Only prefix the first line with mascot
|
|
50
|
+
const lines = rendered.split('\n');
|
|
51
|
+
if (lines.length > 0) {
|
|
52
|
+
console.log(s.primary(expr) + s.muted(' > ') + lines[0]);
|
|
53
|
+
for (let i = 1; i < lines.length; i++) {
|
|
54
|
+
console.log(lines[i]);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
console.log(rendered);
|
|
60
|
+
}
|
|
61
|
+
console.log(''); // Trailing blank for separation
|
|
62
|
+
break;
|
|
63
|
+
}
|
|
64
|
+
case 'thinking':
|
|
65
|
+
// Only show thinking in verbose mode
|
|
66
|
+
if (config.verbose) {
|
|
67
|
+
console.log(s.muted(`∴ Thinking…`));
|
|
68
|
+
console.log('');
|
|
69
|
+
// Indent thinking text
|
|
70
|
+
const lines = item.text.split('\n');
|
|
71
|
+
for (const line of lines) {
|
|
72
|
+
console.log(s.muted(` ${line}`));
|
|
73
|
+
}
|
|
74
|
+
console.log('');
|
|
75
|
+
}
|
|
76
|
+
// If not verbose, skip entirely (but still stored in history)
|
|
77
|
+
break;
|
|
78
|
+
case 'tool-start': {
|
|
79
|
+
// Truncate long params (e.g., long bash commands)
|
|
80
|
+
const maxLen = Math.min(60, terminal.getTerminalWidth() - 15);
|
|
81
|
+
let params = item.params;
|
|
82
|
+
// Handle multi-line params
|
|
83
|
+
const nlIdx = params.indexOf('\n');
|
|
84
|
+
if (nlIdx !== -1) {
|
|
85
|
+
const first = params.slice(0, nlIdx).trim();
|
|
86
|
+
const count = params.split('\n').length;
|
|
87
|
+
params = first.length > 0 ? `${first}… (${String(count)} lines)` : `(${String(count)} line script)`;
|
|
88
|
+
}
|
|
89
|
+
// Truncate if still too long
|
|
90
|
+
if (params.length > maxLen) {
|
|
91
|
+
params = params.slice(0, maxLen) + '…';
|
|
92
|
+
}
|
|
93
|
+
console.log(s.info(`● ${item.name}`) + s.muted(`(${params})`));
|
|
94
|
+
break;
|
|
95
|
+
}
|
|
96
|
+
case 'tool-result': {
|
|
97
|
+
// Truncate long params (e.g., long bash commands)
|
|
98
|
+
const maxParamsLen = Math.min(60, terminal.getTerminalWidth() - 15);
|
|
99
|
+
let paramsDisplay = item.params;
|
|
100
|
+
// Handle multi-line params (show first line + count)
|
|
101
|
+
const newlineIdx = paramsDisplay.indexOf('\n');
|
|
102
|
+
if (newlineIdx !== -1) {
|
|
103
|
+
const firstLine = paramsDisplay.slice(0, newlineIdx).trim();
|
|
104
|
+
const lineCount = paramsDisplay.split('\n').length;
|
|
105
|
+
paramsDisplay = firstLine.length > 0
|
|
106
|
+
? `${firstLine}… (${String(lineCount)} lines)`
|
|
107
|
+
: `(${String(lineCount)} line script)`;
|
|
108
|
+
}
|
|
109
|
+
// Truncate if still too long
|
|
110
|
+
if (paramsDisplay.length > maxParamsLen) {
|
|
111
|
+
paramsDisplay = paramsDisplay.slice(0, maxParamsLen) + '…';
|
|
112
|
+
}
|
|
113
|
+
console.log(s.info(`● ${item.name}`) + s.muted(`(${paramsDisplay})`));
|
|
114
|
+
// Diff lines: render directly (already ANSI-formatted by diff.ts)
|
|
115
|
+
if (item.diffLines && item.diffLines.length > 0) {
|
|
116
|
+
const maxDiffPreview = 10;
|
|
117
|
+
if (config.verbose || item.diffLines.length <= maxDiffPreview) {
|
|
118
|
+
for (const line of item.diffLines) {
|
|
119
|
+
console.log(` ${line}`);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
for (let i = 0; i < maxDiffPreview; i++) {
|
|
124
|
+
console.log(` ${item.diffLines[i]}`);
|
|
125
|
+
}
|
|
126
|
+
const hidden = item.diffLines.length - maxDiffPreview;
|
|
127
|
+
console.log(s.muted(` … +${String(hidden)} lines (ctrl+o to expand)`));
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
else if (item.content) {
|
|
131
|
+
const contentLines = item.content.split('\n').filter((l) => l.length > 0);
|
|
132
|
+
const maxPreviewLines = 3;
|
|
133
|
+
if (config.verbose) {
|
|
134
|
+
// Verbose: show all lines
|
|
135
|
+
for (const line of contentLines) {
|
|
136
|
+
console.log(s.muted(` ⎿ ${line}`));
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
else if (contentLines.length > 0) {
|
|
140
|
+
// Compact: show first few lines + hidden count
|
|
141
|
+
const previewLines = contentLines.slice(0, maxPreviewLines);
|
|
142
|
+
const hiddenCount = contentLines.length - maxPreviewLines;
|
|
143
|
+
for (let i = 0; i < previewLines.length; i++) {
|
|
144
|
+
if (i === 0) {
|
|
145
|
+
console.log(s.muted(` ⎿ ${previewLines[i]}`));
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
console.log(s.muted(` ${previewLines[i]}`));
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
if (hiddenCount > 0) {
|
|
152
|
+
console.log(s.muted(` … +${String(hiddenCount)} lines`) + s.muted(' (ctrl+o to expand)'));
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
// No output lines
|
|
157
|
+
const expandHint = s.muted(' (ctrl+o to expand)');
|
|
158
|
+
if (item.success === false) {
|
|
159
|
+
console.log(s.error(` ⎿ ${item.summary}`) + expandHint);
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
console.log(s.muted(` ⎿ ${item.summary}`) + expandHint);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
// No content, just show summary
|
|
168
|
+
if (item.success === false) {
|
|
169
|
+
console.log(s.error(` ⎿ ${item.summary}`));
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
console.log(s.muted(` ⎿ ${item.summary}`));
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
console.log('');
|
|
176
|
+
break;
|
|
177
|
+
}
|
|
178
|
+
case 'tool-error': {
|
|
179
|
+
// Truncate long params
|
|
180
|
+
const maxErrLen = Math.min(60, terminal.getTerminalWidth() - 15);
|
|
181
|
+
let errParams = item.params;
|
|
182
|
+
const errNlIdx = errParams.indexOf('\n');
|
|
183
|
+
if (errNlIdx !== -1) {
|
|
184
|
+
const errFirst = errParams.slice(0, errNlIdx).trim();
|
|
185
|
+
const errCount = errParams.split('\n').length;
|
|
186
|
+
errParams = errFirst.length > 0 ? `${errFirst}… (${String(errCount)} lines)` : `(${String(errCount)} line script)`;
|
|
187
|
+
}
|
|
188
|
+
if (errParams.length > maxErrLen) {
|
|
189
|
+
errParams = errParams.slice(0, maxErrLen) + '…';
|
|
190
|
+
}
|
|
191
|
+
console.log(s.info(`● ${item.name}`) + s.muted(`(${errParams})`));
|
|
192
|
+
console.log(s.error(` ⎿ Error: ${item.error}`));
|
|
193
|
+
console.log('');
|
|
194
|
+
break;
|
|
195
|
+
}
|
|
196
|
+
case 'interrupted': {
|
|
197
|
+
// Show what was ongoing (if provided)
|
|
198
|
+
if (item.action) {
|
|
199
|
+
console.log(s.info(`● ${item.action}`));
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
// No action means interrupted right after user message.
|
|
203
|
+
// Move cursor up to consume the trailing blank from user-message.
|
|
204
|
+
//
|
|
205
|
+
// ⚠️ WARNING: This cursor manipulation is fragile!
|
|
206
|
+
// It assumes the previous item was user-message which adds a trailing blank.
|
|
207
|
+
// If we add items that don't add trailing blanks, or if the rendering
|
|
208
|
+
// order changes, this could cause visual artifacts (overwriting content).
|
|
209
|
+
// If issues arise, consider tracking the last printed item type instead.
|
|
210
|
+
process.stdout.write('\x1b[1A'); // Move up one line
|
|
211
|
+
}
|
|
212
|
+
// Show interrupted line with mascot
|
|
213
|
+
const suggestion = item.suggestion ?? 'What should I do instead?';
|
|
214
|
+
console.log(s.warning(` ⎿ ${MASCOT.confused} Interrupted - ${suggestion}`));
|
|
215
|
+
console.log('');
|
|
216
|
+
// Return suggestion so caller can set it as ghost text
|
|
217
|
+
return suggestion;
|
|
218
|
+
}
|
|
219
|
+
case 'error':
|
|
220
|
+
console.log(s.error(`${MASCOT.error} ${item.message}`));
|
|
221
|
+
console.log('');
|
|
222
|
+
break;
|
|
223
|
+
case 'success':
|
|
224
|
+
console.log(s.success(`${MASCOT.success} ${item.message}`));
|
|
225
|
+
console.log('');
|
|
226
|
+
break;
|
|
227
|
+
case 'info':
|
|
228
|
+
console.log(s.info(item.message));
|
|
229
|
+
console.log('');
|
|
230
|
+
break;
|
|
231
|
+
case 'warning':
|
|
232
|
+
console.log(s.warning(item.message));
|
|
233
|
+
console.log('');
|
|
234
|
+
break;
|
|
235
|
+
case 'turn-summary': {
|
|
236
|
+
// Compact summary line: ── 45s · ↓ 2.3k ↑ 1.1k · 5 tools ──
|
|
237
|
+
const line = s.muted(`── ${item.parts.join(' · ')} ──`);
|
|
238
|
+
console.log(line);
|
|
239
|
+
console.log('');
|
|
240
|
+
break;
|
|
241
|
+
}
|
|
242
|
+
case 'raw':
|
|
243
|
+
console.log(item.text);
|
|
244
|
+
break;
|
|
245
|
+
case 'raw-lines':
|
|
246
|
+
for (const line of item.lines) {
|
|
247
|
+
console.log(line);
|
|
248
|
+
}
|
|
249
|
+
break;
|
|
250
|
+
case 'background-agent': {
|
|
251
|
+
// Background agent output with mascot label
|
|
252
|
+
// Format: [◈_◈] $arch: text - mascot followed by agent reference
|
|
253
|
+
const bgLabel = s.muted(`${item.mascot} $${item.agentId}:`);
|
|
254
|
+
// Render markdown for proper formatting
|
|
255
|
+
const bgRendered = renderMarkdown(item.text);
|
|
256
|
+
const bgLines = bgRendered.split('\n');
|
|
257
|
+
if (bgLines.length > 0) {
|
|
258
|
+
console.log(`${bgLabel} ${bgLines[0]}`);
|
|
259
|
+
for (let i = 1; i < bgLines.length; i++) {
|
|
260
|
+
console.log(bgLines[i]);
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
break;
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
return null;
|
|
267
|
+
}
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @deprecated DEAD CODE — This class is never instantiated. Do NOT modify this file.
|
|
3
|
+
*
|
|
4
|
+
* The active render pipeline is in TerminalUI (src/ui/terminal-ui.ts).
|
|
5
|
+
* TerminalUI handles all rendering, keyboard input, overlays, and footer display.
|
|
6
|
+
* All UI changes should go there.
|
|
7
|
+
*
|
|
8
|
+
* --- Original description ---
|
|
9
|
+
* Terminal Renderer
|
|
10
|
+
*
|
|
11
|
+
* Single point of terminal output. All rendering goes through this class.
|
|
12
|
+
* Eliminates race conditions by ensuring only one writer.
|
|
13
|
+
*/
|
|
14
|
+
import { EventEmitter } from 'events';
|
|
15
|
+
import { RenderMode, type ModeTransition } from './render-modes.js';
|
|
16
|
+
import type { ProviderRegistry } from './providers/types.js';
|
|
17
|
+
import type { Footer } from './footer.js';
|
|
18
|
+
export { RenderMode } from './render-modes.js';
|
|
19
|
+
export interface TerminalRendererOptions {
|
|
20
|
+
/** Initial render mode (default: REPL) */
|
|
21
|
+
initialMode?: RenderMode;
|
|
22
|
+
/** Render debounce in milliseconds (default: 16 = ~60fps) */
|
|
23
|
+
renderDebounceMs?: number;
|
|
24
|
+
/** Enable debug logging */
|
|
25
|
+
debug?: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Use scroll regions for footer isolation (default: false)
|
|
28
|
+
* When false, uses console.log for scroll content (legacy mode)
|
|
29
|
+
* When true, uses ANSI scroll regions (requires footer integration)
|
|
30
|
+
*/
|
|
31
|
+
useScrollRegions?: boolean;
|
|
32
|
+
}
|
|
33
|
+
export interface TerminalRendererEvents {
|
|
34
|
+
'mode-change': (transition: ModeTransition) => void;
|
|
35
|
+
'resize': (cols: number, rows: number) => void;
|
|
36
|
+
'render': (mode: RenderMode) => void;
|
|
37
|
+
'error': (error: Error) => void;
|
|
38
|
+
}
|
|
39
|
+
export declare class TerminalRenderer extends EventEmitter {
|
|
40
|
+
private readonly renderDebounceMs;
|
|
41
|
+
private readonly debug;
|
|
42
|
+
private readonly useScrollRegions;
|
|
43
|
+
private mode;
|
|
44
|
+
private terminalRows;
|
|
45
|
+
private terminalCols;
|
|
46
|
+
private footerHeight;
|
|
47
|
+
private scrollRegionBottom;
|
|
48
|
+
private isRendering;
|
|
49
|
+
private renderPending;
|
|
50
|
+
private renderTimer;
|
|
51
|
+
private started;
|
|
52
|
+
private simpleMode;
|
|
53
|
+
private pendingScrollContent;
|
|
54
|
+
private scrollCursorRow;
|
|
55
|
+
private providers;
|
|
56
|
+
private footer;
|
|
57
|
+
private resizeHandler;
|
|
58
|
+
private renderLoopTimer;
|
|
59
|
+
private readonly renderLoopInterval;
|
|
60
|
+
constructor(options?: TerminalRendererOptions);
|
|
61
|
+
/**
|
|
62
|
+
* Start the renderer.
|
|
63
|
+
* Sets up terminal state and begins render loop.
|
|
64
|
+
*/
|
|
65
|
+
start(): void;
|
|
66
|
+
/**
|
|
67
|
+
* Start the render loop (for scroll region mode)
|
|
68
|
+
* Polls footer for changes and re-renders
|
|
69
|
+
*/
|
|
70
|
+
private startRenderLoop;
|
|
71
|
+
/**
|
|
72
|
+
* Stop the render loop
|
|
73
|
+
*/
|
|
74
|
+
private stopRenderLoop;
|
|
75
|
+
/**
|
|
76
|
+
* Stop the renderer.
|
|
77
|
+
* Cleans up terminal state and stops render loop.
|
|
78
|
+
*/
|
|
79
|
+
stop(): void;
|
|
80
|
+
/**
|
|
81
|
+
* Check if renderer is running
|
|
82
|
+
*/
|
|
83
|
+
isStarted(): boolean;
|
|
84
|
+
/**
|
|
85
|
+
* Get current render mode
|
|
86
|
+
*/
|
|
87
|
+
getMode(): RenderMode;
|
|
88
|
+
/**
|
|
89
|
+
* Switch to a different render mode
|
|
90
|
+
*/
|
|
91
|
+
setMode(newMode: RenderMode, reason?: string): void;
|
|
92
|
+
/**
|
|
93
|
+
* Set up terminal for a specific mode
|
|
94
|
+
*/
|
|
95
|
+
private setupMode;
|
|
96
|
+
/**
|
|
97
|
+
* Clean up terminal state when leaving a mode
|
|
98
|
+
*/
|
|
99
|
+
private cleanupMode;
|
|
100
|
+
/**
|
|
101
|
+
* Register content providers
|
|
102
|
+
*/
|
|
103
|
+
setProviders(providers: Partial<ProviderRegistry>): void;
|
|
104
|
+
/**
|
|
105
|
+
* Get a specific provider
|
|
106
|
+
*/
|
|
107
|
+
getProvider<K extends keyof ProviderRegistry>(key: K): ProviderRegistry[K] | undefined;
|
|
108
|
+
/**
|
|
109
|
+
* Set the Footer instance for scroll region rendering
|
|
110
|
+
* When useScrollRegions is true, TerminalRenderer uses footer.getFooterLines()
|
|
111
|
+
* and manages the scroll region. Footer's own render loop is disabled.
|
|
112
|
+
*/
|
|
113
|
+
setFooter(footer: Footer): void;
|
|
114
|
+
/**
|
|
115
|
+
* Get the connected Footer instance
|
|
116
|
+
*/
|
|
117
|
+
getFooter(): Footer | null;
|
|
118
|
+
/**
|
|
119
|
+
* Queue content for scroll zone (REPL mode only)
|
|
120
|
+
* Content will be written on next render
|
|
121
|
+
*
|
|
122
|
+
* In legacy mode (useScrollRegions=false), writes immediately via console.log
|
|
123
|
+
* In scroll region mode, queues for next render cycle
|
|
124
|
+
*/
|
|
125
|
+
appendToScrollZone(content: string | string[]): void;
|
|
126
|
+
/**
|
|
127
|
+
* Flush pending scroll content to terminal
|
|
128
|
+
*
|
|
129
|
+
* Uses tracked scroll position to append content naturally.
|
|
130
|
+
* When content would exceed scroll region, scrolling occurs automatically.
|
|
131
|
+
*/
|
|
132
|
+
private flushScrollContent;
|
|
133
|
+
/**
|
|
134
|
+
* Request a render (debounced)
|
|
135
|
+
*/
|
|
136
|
+
requestRender(): void;
|
|
137
|
+
/**
|
|
138
|
+
* Force immediate render (bypasses debounce)
|
|
139
|
+
*/
|
|
140
|
+
forceRender(): void;
|
|
141
|
+
/**
|
|
142
|
+
* Main render method
|
|
143
|
+
*/
|
|
144
|
+
private doRender;
|
|
145
|
+
/**
|
|
146
|
+
* Render in simple mode (non-TTY)
|
|
147
|
+
*/
|
|
148
|
+
private renderSimpleMode;
|
|
149
|
+
/**
|
|
150
|
+
* Render MENU mode
|
|
151
|
+
*/
|
|
152
|
+
private renderMenuMode;
|
|
153
|
+
/**
|
|
154
|
+
* Render REPL mode
|
|
155
|
+
*/
|
|
156
|
+
private renderReplMode;
|
|
157
|
+
/**
|
|
158
|
+
* Build footer lines from providers
|
|
159
|
+
*/
|
|
160
|
+
private buildFooterLines;
|
|
161
|
+
/**
|
|
162
|
+
* Calculate physical height of lines (accounting for wrapping)
|
|
163
|
+
*/
|
|
164
|
+
private calculatePhysicalHeight;
|
|
165
|
+
/**
|
|
166
|
+
* Adjust scroll region when footer height changes
|
|
167
|
+
*/
|
|
168
|
+
private adjustScrollRegion;
|
|
169
|
+
/**
|
|
170
|
+
* Render footer content
|
|
171
|
+
*/
|
|
172
|
+
private renderFooter;
|
|
173
|
+
/**
|
|
174
|
+
* Position cursor for input (provider-based)
|
|
175
|
+
*/
|
|
176
|
+
private positionCursor;
|
|
177
|
+
/**
|
|
178
|
+
* Position cursor for Footer integration (scroll region mode)
|
|
179
|
+
*/
|
|
180
|
+
private positionFooterCursor;
|
|
181
|
+
/**
|
|
182
|
+
* Render OVERLAY mode
|
|
183
|
+
*/
|
|
184
|
+
private renderOverlayMode;
|
|
185
|
+
/**
|
|
186
|
+
* Handle terminal resize
|
|
187
|
+
*/
|
|
188
|
+
handleResize(): void;
|
|
189
|
+
/**
|
|
190
|
+
* Update terminal dimensions from stdout
|
|
191
|
+
*/
|
|
192
|
+
private updateDimensions;
|
|
193
|
+
/**
|
|
194
|
+
* Get current terminal dimensions
|
|
195
|
+
*/
|
|
196
|
+
getDimensions(): {
|
|
197
|
+
rows: number;
|
|
198
|
+
cols: number;
|
|
199
|
+
};
|
|
200
|
+
/**
|
|
201
|
+
* Write to stdout (single output point)
|
|
202
|
+
*/
|
|
203
|
+
write(text: string): void;
|
|
204
|
+
/**
|
|
205
|
+
* Route keyboard input to appropriate handler
|
|
206
|
+
*/
|
|
207
|
+
handleKeyboard(key: Buffer): void;
|
|
208
|
+
/**
|
|
209
|
+
* Log debug message if debug mode enabled
|
|
210
|
+
*/
|
|
211
|
+
private log;
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Get or create the default renderer instance
|
|
215
|
+
*/
|
|
216
|
+
export declare function getRenderer(options?: TerminalRendererOptions): TerminalRenderer;
|
|
217
|
+
/**
|
|
218
|
+
* Reset the default renderer (for testing)
|
|
219
|
+
*/
|
|
220
|
+
export declare function resetRenderer(): void;
|