@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,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plan Mode System Prompt Addition
|
|
3
|
+
*
|
|
4
|
+
* Appended to the system prompt when Plan Mode is active.
|
|
5
|
+
* Instructs the agent to explore, create plans, and wait for approval.
|
|
6
|
+
*/
|
|
7
|
+
export const PLAN_MODE_PROMPT = `## PLAN MODE ACTIVE
|
|
8
|
+
|
|
9
|
+
You are currently in **Plan Mode**. In this mode, you must:
|
|
10
|
+
|
|
11
|
+
1. **Gather Context from Database FIRST**:
|
|
12
|
+
- Use \`project_document_get\` to read PRD and architecture docs
|
|
13
|
+
- Use \`workitem_query\` to read backlog items
|
|
14
|
+
- Use \`plan_list\` to see existing plans
|
|
15
|
+
- Only read actual source files when you need specific implementation details
|
|
16
|
+
|
|
17
|
+
2. **Ask Questions**: Use \`ask_user\` to clarify requirements, constraints, and preferences. Don't assume.
|
|
18
|
+
|
|
19
|
+
3. **Create a Plan**: Use \`plan_create\` to document your approach before implementing:
|
|
20
|
+
- Name: kebab-case, descriptive (e.g., "auth-jwt-migration")
|
|
21
|
+
- Content: Follow the standard plan format (Context, Goals, Steps, Verification)
|
|
22
|
+
- Link to work item if one was mentioned
|
|
23
|
+
|
|
24
|
+
4. **Request Approval**: After creating the plan, summarize it and ask for approval:
|
|
25
|
+
- List 3-5 key points
|
|
26
|
+
- Mention files that will be modified
|
|
27
|
+
- End with: "Ready for your review. [PLAN_READY:plan_id:plan_name]"
|
|
28
|
+
|
|
29
|
+
5. **Wait for Approval**: Do NOT implement until the user approves the plan.
|
|
30
|
+
|
|
31
|
+
6. **Track Status**: After approval, update the plan status:
|
|
32
|
+
- Use \`plan_update\` with status: 'approved' when user approves
|
|
33
|
+
- Use \`plan_update\` with status: 'in_progress' when you start implementing
|
|
34
|
+
- Use \`plan_update\` with status: 'completed' when all steps are done
|
|
35
|
+
|
|
36
|
+
### Plan Format
|
|
37
|
+
|
|
38
|
+
Use this structure when creating plans:
|
|
39
|
+
|
|
40
|
+
\`\`\`markdown
|
|
41
|
+
# Plan: [Name]
|
|
42
|
+
|
|
43
|
+
## Context
|
|
44
|
+
[Why this plan exists, what problem it solves]
|
|
45
|
+
[Link to work item if applicable]
|
|
46
|
+
|
|
47
|
+
## Goals
|
|
48
|
+
- [ ] Primary goal 1
|
|
49
|
+
- [ ] Primary goal 2
|
|
50
|
+
|
|
51
|
+
## Approach
|
|
52
|
+
[High-level description of the implementation approach]
|
|
53
|
+
|
|
54
|
+
## Steps
|
|
55
|
+
1. **Step 1 Title**
|
|
56
|
+
- Details about step 1
|
|
57
|
+
- Files to modify: \`src/foo.ts\`
|
|
58
|
+
|
|
59
|
+
2. **Step 2 Title**
|
|
60
|
+
- Details about step 2
|
|
61
|
+
|
|
62
|
+
## Verification
|
|
63
|
+
- [ ] How to verify completion
|
|
64
|
+
- [ ] Tests pass
|
|
65
|
+
\`\`\`
|
|
66
|
+
|
|
67
|
+
### DO NOT in Plan Mode:
|
|
68
|
+
- Skip planning for non-trivial tasks
|
|
69
|
+
- Make code changes without an approved plan
|
|
70
|
+
- Assume requirements without asking
|
|
71
|
+
- Read files in .compilr/requirements/ (use project_document_get instead)
|
|
72
|
+
- Scan the filesystem before checking database for project docs
|
|
73
|
+
|
|
74
|
+
### Available Plan Tools:
|
|
75
|
+
- \`plan_create\` - Create a new plan (starts as 'draft')
|
|
76
|
+
- \`plan_update\` - Update plan content or status
|
|
77
|
+
- \`plan_get\` - Get plan details by ID or name
|
|
78
|
+
- \`plan_list\` - List plans for the project
|
|
79
|
+
- \`plan_delete\` - Delete a plan
|
|
80
|
+
`;
|
|
81
|
+
/**
|
|
82
|
+
* Get the plan mode prompt for a specific active plan (if any)
|
|
83
|
+
*/
|
|
84
|
+
export function getPlanModePrompt(activePlanId, activePlanName) {
|
|
85
|
+
let prompt = PLAN_MODE_PROMPT;
|
|
86
|
+
if (activePlanId && activePlanName) {
|
|
87
|
+
prompt += `\n### Current Active Plan
|
|
88
|
+
|
|
89
|
+
You are continuing work on plan **"${activePlanName}"** (ID: ${String(activePlanId)}).
|
|
90
|
+
|
|
91
|
+
Use \`plan_get\` with plan_id: ${String(activePlanId)} to load the plan details and continue from where you left off.
|
|
92
|
+
`;
|
|
93
|
+
}
|
|
94
|
+
return prompt;
|
|
95
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* REPL Helper Functions
|
|
3
|
+
*
|
|
4
|
+
* Standalone utility functions extracted from repl.ts to reduce file size
|
|
5
|
+
* and improve maintainability. These functions support the REPL but don't
|
|
6
|
+
* depend on REPL instance state.
|
|
7
|
+
*/
|
|
8
|
+
import type { BacklogItem } from './tools/backlog.js';
|
|
9
|
+
/**
|
|
10
|
+
* Keyword patterns for tool selection based on user input.
|
|
11
|
+
* Maps tool names to keywords that suggest the tool should be used.
|
|
12
|
+
*/
|
|
13
|
+
export declare const TOOL_KEYWORDS: Record<string, string[]>;
|
|
14
|
+
/**
|
|
15
|
+
* Select relevant tool names based on user input intent.
|
|
16
|
+
* Returns all tools if input is short or a question.
|
|
17
|
+
*/
|
|
18
|
+
export declare function selectToolNamesByIntent(input: string, allToolNames: string[]): string[];
|
|
19
|
+
/**
|
|
20
|
+
* Priority order for sorting backlog items (most important first).
|
|
21
|
+
*/
|
|
22
|
+
export declare const PRIORITY_ORDER: string[];
|
|
23
|
+
/**
|
|
24
|
+
* Result of detecting a compilr project structure.
|
|
25
|
+
*/
|
|
26
|
+
export interface CompilrProjectInfo {
|
|
27
|
+
found: boolean;
|
|
28
|
+
backlogPath: string | null;
|
|
29
|
+
projectPath: string | null;
|
|
30
|
+
docsPath: string | null;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Detect if we're in a compilr project (has .compilr folder or -docs sibling).
|
|
34
|
+
* Returns project path from config.json if available.
|
|
35
|
+
*/
|
|
36
|
+
export declare function detectCompilrProject(): CompilrProjectInfo;
|
|
37
|
+
/**
|
|
38
|
+
* Check if backlog has any items using the shared parser.
|
|
39
|
+
*/
|
|
40
|
+
export declare function hasBacklogItems(backlogPath: string | null): boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Get skill prompt by name from builtinSkills or codingSkills.
|
|
43
|
+
*/
|
|
44
|
+
export declare function getSkillPrompt(name: string): string | null;
|
|
45
|
+
/**
|
|
46
|
+
* Select the best backlog item to build.
|
|
47
|
+
* If requestedId is provided, finds that specific item.
|
|
48
|
+
* Otherwise, auto-picks the highest priority 📋 item.
|
|
49
|
+
*/
|
|
50
|
+
export declare function selectBuildItem(items: BacklogItem[], requestedId?: string): BacklogItem | null;
|
|
51
|
+
/**
|
|
52
|
+
* Find dependency IDs mentioned in item title/description.
|
|
53
|
+
* Looks for patterns like "depends on REQ-001", "blocked by BUG-002", etc.
|
|
54
|
+
*/
|
|
55
|
+
export declare function findDependencies(item: BacklogItem): string[];
|
|
56
|
+
/**
|
|
57
|
+
* Get list of dependencies that are not yet completed.
|
|
58
|
+
*/
|
|
59
|
+
export declare function getUnmetDependencies(item: BacklogItem, allItems: BacklogItem[]): BacklogItem[];
|
|
60
|
+
/**
|
|
61
|
+
* Check if the project has a code foundation (src/, package.json, etc.)
|
|
62
|
+
*/
|
|
63
|
+
export declare function hasProjectFoundation(): boolean;
|
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* REPL Helper Functions
|
|
3
|
+
*
|
|
4
|
+
* Standalone utility functions extracted from repl.ts to reduce file size
|
|
5
|
+
* and improve maintainability. These functions support the REPL but don't
|
|
6
|
+
* depend on REPL instance state.
|
|
7
|
+
*/
|
|
8
|
+
import { builtinSkills, platformSkills } from '@compilr-dev/sdk';
|
|
9
|
+
import { codingSkills } from '@compilr-dev/agents-coding';
|
|
10
|
+
import * as fs from 'fs';
|
|
11
|
+
import * as path from 'path';
|
|
12
|
+
import { findBacklogPath, parseBacklogItems } from './tools/backlog.js';
|
|
13
|
+
import { loadCompilrConfig } from './utils/project-status.js';
|
|
14
|
+
// =============================================================================
|
|
15
|
+
// Tool Intent Detection
|
|
16
|
+
// =============================================================================
|
|
17
|
+
/**
|
|
18
|
+
* Keyword patterns for tool selection based on user input.
|
|
19
|
+
* Maps tool names to keywords that suggest the tool should be used.
|
|
20
|
+
*/
|
|
21
|
+
export const TOOL_KEYWORDS = {
|
|
22
|
+
read_file: ['read', 'show', 'display', 'look at', 'view', 'what is in', 'content of'],
|
|
23
|
+
write_file: ['write', 'create', 'save', 'make a file'],
|
|
24
|
+
edit: ['edit', 'modify', 'change', 'update', 'fix', 'replace'],
|
|
25
|
+
bash: ['run', 'execute', 'command', 'shell', 'npm', 'git', 'pip', 'ls', 'pwd', 'mkdir', 'build', 'install'],
|
|
26
|
+
grep: ['search', 'find', 'grep', 'look for', 'where is', 'occurrences'],
|
|
27
|
+
glob: ['list files', 'find files', 'what files', 'show files', 'directory', 'pattern'],
|
|
28
|
+
todo_write: ['todo', 'task list', 'plan', 'steps'],
|
|
29
|
+
todo_read: ['todo', 'task list', 'plan', 'steps'],
|
|
30
|
+
// Database-backed workitem tools replace file-based backlog tools
|
|
31
|
+
workitem_query: ['backlog', 'requirements', 'features', 'bugs', 'items', 'work items'],
|
|
32
|
+
workitem_add: ['backlog', 'requirements', 'features', 'bugs', 'add item', 'add feature', 'add work item'],
|
|
33
|
+
workitem_update: ['update item', 'change status', 'complete item'],
|
|
34
|
+
git_status: ['git status', 'changes', 'modified', 'staged'],
|
|
35
|
+
git_diff: ['git diff', 'differences', 'what changed'],
|
|
36
|
+
git_log: ['git log', 'history', 'commits'],
|
|
37
|
+
git_commit: ['commit', 'save changes'],
|
|
38
|
+
git_branch: ['branch', 'branches'],
|
|
39
|
+
detect_project: ['project type', 'what kind of project', 'framework'],
|
|
40
|
+
find_project_root: ['project root', 'root directory'],
|
|
41
|
+
run_tests: ['test', 'tests', 'run tests', 'check tests'],
|
|
42
|
+
run_lint: ['lint', 'linting', 'check code', 'style'],
|
|
43
|
+
// Task tool for sub-agent delegation
|
|
44
|
+
task: [
|
|
45
|
+
'explore', 'investigate', 'analyze', 'review code', 'code review',
|
|
46
|
+
'security audit', 'refactor', 'help me find', 'search the codebase',
|
|
47
|
+
'look through', 'scan for', 'debug', 'figure out', 'understand',
|
|
48
|
+
'complex', 'multi-step', 'delegate', 'sub-agent', 'agent',
|
|
49
|
+
],
|
|
50
|
+
// User interaction tools
|
|
51
|
+
ask_user: ['ask', 'question', 'choice', 'select', 'options'],
|
|
52
|
+
ask_user_simple: ['confirm', 'yes or no', 'simple question'],
|
|
53
|
+
suggest: ['suggest', 'recommendation', 'next step'],
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Select relevant tool names based on user input intent.
|
|
57
|
+
* Returns all tools if input is short or a question.
|
|
58
|
+
*/
|
|
59
|
+
export function selectToolNamesByIntent(input, allToolNames) {
|
|
60
|
+
const lower = input.toLowerCase();
|
|
61
|
+
// If input is very short or a question, use all tools
|
|
62
|
+
if (input.length < 10 || input.includes('?')) {
|
|
63
|
+
return allToolNames;
|
|
64
|
+
}
|
|
65
|
+
const selected = new Set();
|
|
66
|
+
// Add tools based on keyword matches
|
|
67
|
+
for (const [tool, keywords] of Object.entries(TOOL_KEYWORDS)) {
|
|
68
|
+
if (keywords.some((kw) => lower.includes(kw)) && allToolNames.includes(tool)) {
|
|
69
|
+
selected.add(tool);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
// If nothing matched from keywords, use all tools
|
|
73
|
+
// (Check BEFORE adding always-included tools)
|
|
74
|
+
if (selected.size === 0) {
|
|
75
|
+
return allToolNames;
|
|
76
|
+
}
|
|
77
|
+
// Always include todo tools (they're used implicitly for task tracking)
|
|
78
|
+
if (allToolNames.includes('todo_write'))
|
|
79
|
+
selected.add('todo_write');
|
|
80
|
+
if (allToolNames.includes('todo_read'))
|
|
81
|
+
selected.add('todo_read');
|
|
82
|
+
// Always include suggest tool (for next action suggestions)
|
|
83
|
+
if (allToolNames.includes('suggest'))
|
|
84
|
+
selected.add('suggest');
|
|
85
|
+
return Array.from(selected);
|
|
86
|
+
}
|
|
87
|
+
// =============================================================================
|
|
88
|
+
// Build Command Types and Constants
|
|
89
|
+
// =============================================================================
|
|
90
|
+
/**
|
|
91
|
+
* Priority order for sorting backlog items (most important first).
|
|
92
|
+
*/
|
|
93
|
+
export const PRIORITY_ORDER = ['critical', 'high', 'medium', 'low'];
|
|
94
|
+
/**
|
|
95
|
+
* Detect if we're in a compilr project (has .compilr folder or -docs sibling).
|
|
96
|
+
* Returns project path from config.json if available.
|
|
97
|
+
*/
|
|
98
|
+
export function detectCompilrProject() {
|
|
99
|
+
const cwd = process.cwd();
|
|
100
|
+
// First try to load config and get paths from there
|
|
101
|
+
const config = loadCompilrConfig(cwd);
|
|
102
|
+
if (config) {
|
|
103
|
+
return {
|
|
104
|
+
found: true,
|
|
105
|
+
backlogPath: findBacklogPath(cwd),
|
|
106
|
+
projectPath: config.paths.project || null,
|
|
107
|
+
docsPath: config.paths.docs,
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
// Check for .compilr folder in current directory
|
|
111
|
+
const compilrDir = path.join(cwd, '.compilr');
|
|
112
|
+
if (fs.existsSync(compilrDir)) {
|
|
113
|
+
const backlogPath = path.join(compilrDir, 'backlog.md');
|
|
114
|
+
return {
|
|
115
|
+
found: true,
|
|
116
|
+
backlogPath: fs.existsSync(backlogPath) ? backlogPath : null,
|
|
117
|
+
projectPath: cwd,
|
|
118
|
+
docsPath: null,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
// Check for -docs sibling folder (two-repo pattern)
|
|
122
|
+
const parentDir = path.dirname(cwd);
|
|
123
|
+
const projectName = path.basename(cwd);
|
|
124
|
+
const docsDir = path.join(parentDir, `${projectName}-docs`);
|
|
125
|
+
const docsBacklogPath = path.join(docsDir, '01-planning', 'backlog.md');
|
|
126
|
+
if (fs.existsSync(docsBacklogPath)) {
|
|
127
|
+
return {
|
|
128
|
+
found: true,
|
|
129
|
+
backlogPath: docsBacklogPath,
|
|
130
|
+
projectPath: cwd,
|
|
131
|
+
docsPath: docsDir,
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
// Check if we're in the docs repo itself
|
|
135
|
+
const inDocsBacklog = path.join(cwd, '01-planning', 'backlog.md');
|
|
136
|
+
if (fs.existsSync(inDocsBacklog)) {
|
|
137
|
+
// We're in -docs folder, try to find sibling code folder
|
|
138
|
+
const baseName = projectName.replace(/-docs$/, '');
|
|
139
|
+
const codeDir = path.join(parentDir, baseName);
|
|
140
|
+
return {
|
|
141
|
+
found: true,
|
|
142
|
+
backlogPath: inDocsBacklog,
|
|
143
|
+
projectPath: fs.existsSync(codeDir) ? codeDir : null,
|
|
144
|
+
docsPath: cwd,
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
// Check for project subfolders (running from parent folder after /new)
|
|
148
|
+
try {
|
|
149
|
+
const entries = fs.readdirSync(cwd, { withFileTypes: true });
|
|
150
|
+
for (const entry of entries) {
|
|
151
|
+
if (!entry.isDirectory())
|
|
152
|
+
continue;
|
|
153
|
+
// Check for .compilr in subfolder (single-repo pattern)
|
|
154
|
+
const subCompilrDir = path.join(cwd, entry.name, '.compilr');
|
|
155
|
+
if (fs.existsSync(subCompilrDir)) {
|
|
156
|
+
const backlogPath = path.join(subCompilrDir, 'backlog.md');
|
|
157
|
+
return {
|
|
158
|
+
found: true,
|
|
159
|
+
backlogPath: fs.existsSync(backlogPath) ? backlogPath : null,
|
|
160
|
+
projectPath: path.join(cwd, entry.name),
|
|
161
|
+
docsPath: null,
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
// Check for -docs subfolder (two-repo pattern)
|
|
165
|
+
if (entry.name.endsWith('-docs')) {
|
|
166
|
+
const docsBacklog = path.join(cwd, entry.name, '01-planning', 'backlog.md');
|
|
167
|
+
if (fs.existsSync(docsBacklog)) {
|
|
168
|
+
const baseName = entry.name.replace(/-docs$/, '');
|
|
169
|
+
const codeDir = path.join(cwd, baseName);
|
|
170
|
+
return {
|
|
171
|
+
found: true,
|
|
172
|
+
backlogPath: docsBacklog,
|
|
173
|
+
projectPath: fs.existsSync(codeDir) ? codeDir : null,
|
|
174
|
+
docsPath: path.join(cwd, entry.name),
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
catch {
|
|
181
|
+
// Ignore read errors
|
|
182
|
+
}
|
|
183
|
+
return { found: false, backlogPath: null, projectPath: null, docsPath: null };
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Check if backlog has any items using the shared parser.
|
|
187
|
+
*/
|
|
188
|
+
export function hasBacklogItems(backlogPath) {
|
|
189
|
+
if (!backlogPath || !fs.existsSync(backlogPath)) {
|
|
190
|
+
return false;
|
|
191
|
+
}
|
|
192
|
+
try {
|
|
193
|
+
const content = fs.readFileSync(backlogPath, 'utf-8');
|
|
194
|
+
const items = parseBacklogItems(content);
|
|
195
|
+
return items.length > 0;
|
|
196
|
+
}
|
|
197
|
+
catch {
|
|
198
|
+
return false;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Get skill prompt by name from builtinSkills or codingSkills.
|
|
203
|
+
*/
|
|
204
|
+
export function getSkillPrompt(name) {
|
|
205
|
+
const skill = platformSkills.find((s) => s.name === name)
|
|
206
|
+
?? builtinSkills.find((s) => s.name === name)
|
|
207
|
+
?? codingSkills.find((s) => s.name === name);
|
|
208
|
+
return skill?.prompt ?? null;
|
|
209
|
+
}
|
|
210
|
+
// =============================================================================
|
|
211
|
+
// Build Command Helpers
|
|
212
|
+
// =============================================================================
|
|
213
|
+
/**
|
|
214
|
+
* Select the best backlog item to build.
|
|
215
|
+
* If requestedId is provided, finds that specific item.
|
|
216
|
+
* Otherwise, auto-picks the highest priority 📋 item.
|
|
217
|
+
*/
|
|
218
|
+
export function selectBuildItem(items, requestedId) {
|
|
219
|
+
// If specific ID requested, find it
|
|
220
|
+
if (requestedId && requestedId.toLowerCase() !== 'scaffold') {
|
|
221
|
+
const searchId = requestedId.toUpperCase();
|
|
222
|
+
const item = items.find(i => i.id === searchId);
|
|
223
|
+
if (!item)
|
|
224
|
+
return null;
|
|
225
|
+
if (item.status !== '📋') {
|
|
226
|
+
// Item exists but not in planned status
|
|
227
|
+
return null; // Handler will show appropriate message
|
|
228
|
+
}
|
|
229
|
+
return item;
|
|
230
|
+
}
|
|
231
|
+
// Filter to only 📋 (planned) items
|
|
232
|
+
const planned = items.filter(i => i.status === '📋');
|
|
233
|
+
if (planned.length === 0)
|
|
234
|
+
return null;
|
|
235
|
+
// Sort by priority, then by ID
|
|
236
|
+
planned.sort((a, b) => {
|
|
237
|
+
const prioA = PRIORITY_ORDER.indexOf(a.priority.toLowerCase());
|
|
238
|
+
const prioB = PRIORITY_ORDER.indexOf(b.priority.toLowerCase());
|
|
239
|
+
if (prioA !== prioB)
|
|
240
|
+
return prioA - prioB;
|
|
241
|
+
return a.id.localeCompare(b.id); // REQ-001 before REQ-002
|
|
242
|
+
});
|
|
243
|
+
return planned[0];
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Find dependency IDs mentioned in item title/description.
|
|
247
|
+
* Looks for patterns like "depends on REQ-001", "blocked by BUG-002", etc.
|
|
248
|
+
*/
|
|
249
|
+
export function findDependencies(item) {
|
|
250
|
+
const text = `${item.title} ${item.description}`;
|
|
251
|
+
const patterns = [
|
|
252
|
+
/depends\s+on\s+([A-Z]+-\d+)/gi,
|
|
253
|
+
/blocked\s+by\s+([A-Z]+-\d+)/gi,
|
|
254
|
+
/requires\s+([A-Z]+-\d+)/gi,
|
|
255
|
+
/after\s+([A-Z]+-\d+)/gi,
|
|
256
|
+
/needs\s+([A-Z]+-\d+)/gi,
|
|
257
|
+
];
|
|
258
|
+
const deps = [];
|
|
259
|
+
for (const pattern of patterns) {
|
|
260
|
+
const matches = text.matchAll(pattern);
|
|
261
|
+
for (const match of matches) {
|
|
262
|
+
deps.push(match[1].toUpperCase());
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
return [...new Set(deps)];
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Get list of dependencies that are not yet completed.
|
|
269
|
+
*/
|
|
270
|
+
export function getUnmetDependencies(item, allItems) {
|
|
271
|
+
const depIds = findDependencies(item);
|
|
272
|
+
return allItems.filter(i => depIds.includes(i.id) && i.status !== '✅');
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Check if the project has a code foundation (src/, package.json, etc.)
|
|
276
|
+
*/
|
|
277
|
+
export function hasProjectFoundation() {
|
|
278
|
+
const cwd = process.cwd();
|
|
279
|
+
const indicators = [
|
|
280
|
+
'src',
|
|
281
|
+
'lib',
|
|
282
|
+
'app',
|
|
283
|
+
'package.json',
|
|
284
|
+
'requirements.txt',
|
|
285
|
+
'Cargo.toml',
|
|
286
|
+
'go.mod',
|
|
287
|
+
'pom.xml',
|
|
288
|
+
'build.gradle',
|
|
289
|
+
'setup.py',
|
|
290
|
+
'pyproject.toml',
|
|
291
|
+
];
|
|
292
|
+
for (const indicator of indicators) {
|
|
293
|
+
const fullPath = path.join(cwd, indicator);
|
|
294
|
+
if (fs.existsSync(fullPath)) {
|
|
295
|
+
return true;
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
// Also check in project subfolders (for two-repo pattern)
|
|
299
|
+
try {
|
|
300
|
+
const entries = fs.readdirSync(cwd, { withFileTypes: true });
|
|
301
|
+
for (const entry of entries) {
|
|
302
|
+
if (!entry.isDirectory())
|
|
303
|
+
continue;
|
|
304
|
+
// Skip docs folder and hidden folders
|
|
305
|
+
if (entry.name.endsWith('-docs') || entry.name.startsWith('.'))
|
|
306
|
+
continue;
|
|
307
|
+
for (const indicator of indicators) {
|
|
308
|
+
const subPath = path.join(cwd, entry.name, indicator);
|
|
309
|
+
if (fs.existsSync(subPath)) {
|
|
310
|
+
return true;
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
catch {
|
|
316
|
+
// Ignore read errors
|
|
317
|
+
}
|
|
318
|
+
return false;
|
|
319
|
+
}
|