@compilr-dev/cli 0.5.0 → 0.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +108 -0
- package/README.md +237 -69
- package/dist/.tsbuildinfo.app +1 -0
- package/dist/.tsbuildinfo.data +1 -0
- package/dist/.tsbuildinfo.domain +1 -0
- package/dist/.tsbuildinfo.foundation +1 -0
- package/dist/agent.d.ts +61 -4
- package/dist/agent.js +241 -245
- package/dist/anchors/index.d.ts +1 -1
- package/dist/anchors/index.js +1 -1
- package/dist/anchors/project-anchors.d.ts +2 -2
- package/dist/anchors/project-anchors.js +1 -1
- package/dist/auth/api-client.d.ts +124 -0
- package/dist/auth/api-client.js +261 -0
- package/dist/auth/index.d.ts +172 -0
- package/dist/auth/index.js +545 -0
- package/dist/auth/storage.d.ts +52 -0
- package/dist/auth/storage.js +118 -0
- package/dist/changelog/index.d.ts +16 -0
- package/dist/changelog/index.js +24 -0
- package/dist/changelog/releases.d.ts +17 -0
- package/dist/changelog/releases.js +63 -0
- package/dist/commands-v2/handlers/auth.d.ts +10 -0
- package/dist/commands-v2/handlers/auth.js +118 -0
- package/dist/commands-v2/handlers/background.d.ts +14 -0
- package/dist/commands-v2/handlers/background.js +276 -0
- package/dist/commands-v2/handlers/context.js +286 -81
- package/dist/commands-v2/handlers/core.d.ts +1 -0
- package/dist/commands-v2/handlers/core.js +133 -8
- package/dist/commands-v2/handlers/debug.js +18 -0
- package/dist/commands-v2/handlers/delegations.d.ts +8 -0
- package/dist/commands-v2/handlers/delegations.js +29 -0
- package/dist/commands-v2/handlers/files.d.ts +8 -0
- package/dist/commands-v2/handlers/files.js +162 -0
- package/dist/commands-v2/handlers/filter.d.ts +9 -0
- package/dist/commands-v2/handlers/filter.js +130 -0
- package/dist/commands-v2/handlers/games.d.ts +7 -0
- package/dist/commands-v2/handlers/games.js +57 -0
- package/dist/commands-v2/handlers/index.d.ts +13 -0
- package/dist/commands-v2/handlers/index.js +39 -0
- package/dist/commands-v2/handlers/mcp.d.ts +8 -0
- package/dist/commands-v2/handlers/mcp.js +39 -0
- package/dist/commands-v2/handlers/notifications.d.ts +9 -0
- package/dist/commands-v2/handlers/notifications.js +34 -0
- package/dist/commands-v2/handlers/project.js +295 -31
- package/dist/commands-v2/handlers/reset.d.ts +11 -0
- package/dist/commands-v2/handlers/reset.js +118 -0
- package/dist/commands-v2/handlers/session.d.ts +161 -0
- package/dist/commands-v2/handlers/session.js +805 -0
- package/dist/commands-v2/handlers/settings.d.ts +2 -0
- package/dist/commands-v2/handlers/settings.js +217 -35
- package/dist/commands-v2/handlers/tasks.d.ts +5 -0
- package/dist/commands-v2/handlers/tasks.js +36 -0
- package/dist/commands-v2/handlers/team.d.ts +9 -0
- package/dist/commands-v2/handlers/team.js +549 -0
- package/dist/commands-v2/handlers/terminals.d.ts +9 -0
- package/dist/commands-v2/handlers/terminals.js +34 -0
- package/dist/commands-v2/index.d.ts +3 -2
- package/dist/commands-v2/index.js +4 -1
- package/dist/commands-v2/registry.d.ts +15 -0
- package/dist/commands-v2/registry.js +34 -0
- package/dist/commands-v2/types.d.ts +81 -3
- package/dist/commands.js +13 -0
- package/dist/compilr-diff-companion.vsix +0 -0
- package/dist/db/index.js +98 -4
- package/dist/db/repositories/document-repository.d.ts +2 -0
- package/dist/db/repositories/document-repository.js +6 -1
- package/dist/db/repositories/index.d.ts +2 -0
- package/dist/db/repositories/index.js +1 -0
- package/dist/db/repositories/plan-repository.d.ts +101 -0
- package/dist/db/repositories/plan-repository.js +275 -0
- package/dist/db/repositories/project-repository.d.ts +6 -0
- package/dist/db/repositories/project-repository.js +41 -0
- package/dist/db/repositories/work-item-repository.d.ts +15 -0
- package/dist/db/repositories/work-item-repository.js +69 -4
- package/dist/db/schema.d.ts +40 -3
- package/dist/db/schema.js +66 -3
- package/dist/episodes/index.d.ts +20 -0
- package/dist/episodes/index.js +27 -0
- package/dist/episodes/recorder.d.ts +51 -0
- package/dist/episodes/recorder.js +195 -0
- package/dist/episodes/significant-work.d.ts +21 -0
- package/dist/episodes/significant-work.js +56 -0
- package/dist/episodes/store.d.ts +38 -0
- package/dist/episodes/store.js +199 -0
- package/dist/episodes/types.d.ts +35 -0
- package/dist/episodes/types.js +6 -0
- package/dist/episodes/work-at-risk.d.ts +12 -0
- package/dist/episodes/work-at-risk.js +38 -0
- package/dist/episodes/work-summary-anchor.d.ts +23 -0
- package/dist/episodes/work-summary-anchor.js +73 -0
- package/dist/games/coins.d.ts +66 -0
- package/dist/games/coins.js +165 -0
- package/dist/games/game-base.d.ts +84 -0
- package/dist/games/game-base.js +204 -0
- package/dist/games/index.d.ts +16 -0
- package/dist/games/index.js +49 -0
- package/dist/games/scores.d.ts +69 -0
- package/dist/games/scores.js +191 -0
- package/dist/games/tetris/board.d.ts +59 -0
- package/dist/games/tetris/board.js +170 -0
- package/dist/games/tetris/index.d.ts +109 -0
- package/dist/games/tetris/index.js +610 -0
- package/dist/games/tetris/pieces.d.ts +44 -0
- package/dist/games/tetris/pieces.js +271 -0
- package/dist/games/tetris/renderer.d.ts +26 -0
- package/dist/games/tetris/renderer.js +77 -0
- package/dist/guide/guide-content.d.ts +23 -0
- package/dist/guide/guide-content.js +196 -0
- package/dist/guide/index.d.ts +8 -0
- package/dist/guide/index.js +7 -0
- package/dist/guide/shared-content.d.ts +37 -0
- package/dist/guide/shared-content.js +1272 -0
- package/dist/guide/tutorial-helpers.d.ts +57 -0
- package/dist/guide/tutorial-helpers.js +147 -0
- package/dist/handlers/ask-user-handlers.d.ts +32 -0
- package/dist/handlers/ask-user-handlers.js +104 -0
- package/dist/handlers/delegation-handlers.d.ts +34 -0
- package/dist/handlers/delegation-handlers.js +291 -0
- package/dist/handlers/permission-handler.d.ts +30 -0
- package/dist/handlers/permission-handler.js +205 -0
- package/dist/index.d.ts +11 -1
- package/dist/index.js +448 -271
- package/dist/input-handlers/memory-handler.d.ts +1 -1
- package/dist/input-handlers/memory-handler.js +2 -1
- package/dist/models/index.d.ts +10 -0
- package/dist/models/index.js +12 -0
- package/dist/models/model-registry.d.ts +38 -0
- package/dist/models/model-registry.js +69 -0
- package/dist/models/model-tiers.d.ts +28 -0
- package/dist/models/model-tiers.js +71 -0
- package/dist/models/model-validation.d.ts +25 -0
- package/dist/models/model-validation.js +291 -0
- package/dist/models/ollama-models.d.ts +73 -0
- package/dist/models/ollama-models.js +178 -0
- package/dist/models/provider-types.d.ts +6 -0
- package/dist/models/provider-types.js +1 -0
- package/dist/models/providers.d.ts +35 -0
- package/dist/models/providers.js +58 -0
- package/dist/models/types.d.ts +4 -0
- package/dist/models/types.js +4 -0
- package/dist/multi-agent/activity.d.ts +21 -0
- package/dist/multi-agent/activity.js +34 -0
- package/dist/multi-agent/agent-selection.d.ts +55 -0
- package/dist/multi-agent/agent-selection.js +90 -0
- package/dist/multi-agent/artifacts.d.ts +197 -0
- package/dist/multi-agent/artifacts.js +379 -0
- package/dist/multi-agent/checkpointer.d.ts +138 -0
- package/dist/multi-agent/checkpointer.js +471 -0
- package/dist/multi-agent/collision-utils.d.ts +16 -0
- package/dist/multi-agent/collision-utils.js +28 -0
- package/dist/multi-agent/context-resolver.d.ts +97 -0
- package/dist/multi-agent/context-resolver.js +316 -0
- package/dist/multi-agent/custom-agents.d.ts +83 -0
- package/dist/multi-agent/custom-agents.js +227 -0
- package/dist/multi-agent/delegation-tracker.d.ts +157 -0
- package/dist/multi-agent/delegation-tracker.js +243 -0
- package/dist/multi-agent/file-lock-hook.d.ts +29 -0
- package/dist/multi-agent/file-lock-hook.js +97 -0
- package/dist/multi-agent/file-locks.d.ts +58 -0
- package/dist/multi-agent/file-locks.js +194 -0
- package/dist/multi-agent/index.d.ts +24 -0
- package/dist/multi-agent/index.js +30 -0
- package/dist/multi-agent/mention-parser.d.ts +64 -0
- package/dist/multi-agent/mention-parser.js +146 -0
- package/dist/multi-agent/notification-manager.d.ts +84 -0
- package/dist/multi-agent/notification-manager.js +224 -0
- package/dist/multi-agent/pending-requests.d.ts +122 -0
- package/dist/multi-agent/pending-requests.js +155 -0
- package/dist/multi-agent/session-registry.d.ts +139 -0
- package/dist/multi-agent/session-registry.js +514 -0
- package/dist/multi-agent/shared-context.d.ts +293 -0
- package/dist/multi-agent/shared-context.js +671 -0
- package/dist/multi-agent/skill-requirements.d.ts +66 -0
- package/dist/multi-agent/skill-requirements.js +178 -0
- package/dist/multi-agent/task-assignment.d.ts +69 -0
- package/dist/multi-agent/task-assignment.js +123 -0
- package/dist/multi-agent/task-suggestion.d.ts +31 -0
- package/dist/multi-agent/task-suggestion.js +72 -0
- package/dist/multi-agent/team-agent.d.ts +201 -0
- package/dist/multi-agent/team-agent.js +488 -0
- package/dist/multi-agent/team.d.ts +286 -0
- package/dist/multi-agent/team.js +610 -0
- package/dist/multi-agent/tool-config.d.ts +110 -0
- package/dist/multi-agent/tool-config.js +661 -0
- package/dist/multi-agent/types.d.ts +211 -0
- package/dist/multi-agent/types.js +617 -0
- package/dist/prompts/plan-mode-prompt.d.ts +11 -0
- package/dist/prompts/plan-mode-prompt.js +95 -0
- package/dist/repl-helpers.js +5 -2
- package/dist/repl-v2.d.ts +401 -2
- package/dist/repl-v2.js +2588 -65
- package/dist/session/index.d.ts +6 -0
- package/dist/session/index.js +6 -0
- package/dist/session/project-session-manager.d.ts +158 -0
- package/dist/session/project-session-manager.js +650 -0
- package/dist/settings/index.d.ts +133 -13
- package/dist/settings/index.js +329 -24
- package/dist/settings/mcp-config.d.ts +76 -0
- package/dist/settings/mcp-config.js +143 -0
- package/dist/settings/paths.d.ts +4 -0
- package/dist/settings/paths.js +6 -0
- package/dist/shared-handlers.d.ts +62 -0
- package/dist/shared-handlers.js +48 -0
- package/dist/system-prompt/builder.d.ts +5 -0
- package/dist/system-prompt/builder.js +4 -0
- package/dist/system-prompt/index.d.ts +18 -0
- package/dist/system-prompt/index.js +18 -0
- package/dist/system-prompt/modules.d.ts +5 -0
- package/dist/system-prompt/modules.js +4 -0
- package/dist/tabbed-menu.js +2 -1
- package/dist/templates/compilr-md-import.d.ts +16 -0
- package/dist/templates/compilr-md-import.js +241 -0
- package/dist/templates/compilr-md.js +10 -61
- package/dist/templates/config-json.d.ts +1 -25
- package/dist/templates/index.d.ts +2 -0
- package/dist/templates/index.js +34 -73
- package/dist/tool-names.d.ts +113 -0
- package/dist/tool-names.js +239 -0
- package/dist/tools/ask-user-simple.d.ts +1 -1
- package/dist/tools/ask-user-simple.js +2 -1
- package/dist/tools/ask-user.d.ts +1 -1
- package/dist/tools/ask-user.js +2 -1
- package/dist/tools/backlog.d.ts +2 -2
- package/dist/tools/backlog.js +1 -1
- package/dist/tools/db-tools.d.ts +13 -61
- package/dist/tools/db-tools.js +12 -13
- package/dist/tools/delegate-background.d.ts +27 -0
- package/dist/tools/delegate-background.js +115 -0
- package/dist/tools/delegate.d.ts +22 -0
- package/dist/tools/delegate.js +97 -0
- package/dist/tools/delegation-status.d.ts +16 -0
- package/dist/tools/delegation-status.js +128 -0
- package/dist/tools/guide-tool.d.ts +12 -0
- package/dist/tools/guide-tool.js +59 -0
- package/dist/tools/handoff.d.ts +25 -0
- package/dist/tools/handoff.js +99 -0
- package/dist/tools/meta-tools.d.ts +26 -0
- package/dist/tools/meta-tools.js +47 -0
- package/dist/tools/platform-adapter.d.ts +35 -0
- package/dist/tools/platform-adapter.js +404 -0
- package/dist/tools/project-db.d.ts +5 -73
- package/dist/tools/project-db.js +5 -336
- package/dist/tools.d.ts +67 -2
- package/dist/tools.js +240 -48
- package/dist/ui/autocomplete-controller.d.ts +42 -0
- package/dist/ui/autocomplete-controller.js +384 -0
- package/dist/ui/base/index.d.ts +1 -1
- package/dist/ui/base/index.js +1 -1
- package/dist/ui/base/overlay-base-v2.d.ts +10 -0
- package/dist/ui/base/overlay-base-v2.js +14 -0
- package/dist/ui/base/render-utils.d.ts +19 -0
- package/dist/ui/base/render-utils.js +25 -0
- package/dist/ui/base/tabbed-list-overlay-v2.d.ts +16 -1
- package/dist/ui/base/tabbed-list-overlay-v2.js +19 -1
- package/dist/ui/constants/labels.d.ts +14 -0
- package/dist/ui/constants/labels.js +52 -0
- package/dist/ui/conversation-store.d.ts +55 -0
- package/dist/ui/conversation-store.js +107 -0
- package/dist/ui/conversation.js +11 -13
- package/dist/ui/diff.d.ts +7 -1
- package/dist/ui/diff.js +85 -48
- package/dist/ui/ephemeral.js +3 -9
- package/dist/ui/file-autocomplete.d.ts +24 -0
- package/dist/ui/file-autocomplete.js +56 -0
- package/dist/ui/footer-renderer.d.ts +69 -0
- package/dist/ui/footer-renderer.js +431 -0
- package/dist/ui/footer.d.ts +74 -7
- package/dist/ui/footer.js +173 -16
- package/dist/ui/input-controller.d.ts +51 -0
- package/dist/ui/input-controller.js +176 -0
- package/dist/ui/input-prompt.d.ts +19 -0
- package/dist/ui/input-prompt.js +206 -14
- package/dist/ui/keyboard-handler.d.ts +57 -0
- package/dist/ui/keyboard-handler.js +557 -0
- package/dist/ui/live-region-facade.d.ts +42 -0
- package/dist/ui/live-region-facade.js +205 -0
- package/dist/ui/live-region.d.ts +0 -4
- package/dist/ui/live-region.js +6 -14
- package/dist/ui/mascot/renderer.d.ts +1 -1
- package/dist/ui/mascot/renderer.js +37 -2
- package/dist/ui/overlay/data/tutorial-content.d.ts +9 -0
- package/dist/ui/overlay/data/tutorial-content.js +9 -0
- package/dist/ui/overlay/data/tutorial-registry.d.ts +12 -0
- package/dist/ui/overlay/data/tutorial-registry.js +116 -0
- package/dist/ui/overlay/data/tutorial-types.d.ts +35 -0
- package/dist/ui/overlay/data/tutorial-types.js +6 -0
- package/dist/ui/overlay/data/tutorials/basics/first-conversation.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/basics/first-conversation.js +220 -0
- package/dist/ui/overlay/data/tutorials/basics/first-project.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/basics/first-project.js +284 -0
- package/dist/ui/overlay/data/tutorials/basics/navigation.d.ts +8 -0
- package/dist/ui/overlay/data/tutorials/basics/navigation.js +22 -0
- package/dist/ui/overlay/data/tutorials/basics/welcome.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/basics/welcome.js +174 -0
- package/dist/ui/overlay/data/tutorials/config/context-management.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/config/context-management.js +158 -0
- package/dist/ui/overlay/data/tutorials/config/mcp-servers.d.ts +8 -0
- package/dist/ui/overlay/data/tutorials/config/mcp-servers.js +155 -0
- package/dist/ui/overlay/data/tutorials/config/model-selection.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/config/model-selection.js +162 -0
- package/dist/ui/overlay/data/tutorials/config/permissions-safety.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/config/permissions-safety.js +163 -0
- package/dist/ui/overlay/data/tutorials/config/settings-config.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/config/settings-config.js +166 -0
- package/dist/ui/overlay/data/tutorials/planning/arch.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/planning/arch.js +168 -0
- package/dist/ui/overlay/data/tutorials/planning/backlog.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/planning/backlog.js +103 -0
- package/dist/ui/overlay/data/tutorials/planning/build.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/planning/build.js +173 -0
- package/dist/ui/overlay/data/tutorials/planning/design.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/planning/design.js +205 -0
- package/dist/ui/overlay/data/tutorials/planning/docs.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/planning/docs.js +143 -0
- package/dist/ui/overlay/data/tutorials/planning/prd.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/planning/prd.js +173 -0
- package/dist/ui/overlay/data/tutorials/planning/scaffold.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/planning/scaffold.js +164 -0
- package/dist/ui/overlay/data/tutorials/planning/sketch.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/planning/sketch.js +58 -0
- package/dist/ui/overlay/data/tutorials/projects/anchors.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/projects/anchors.js +248 -0
- package/dist/ui/overlay/data/tutorials/projects/import-project.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/projects/import-project.js +172 -0
- package/dist/ui/overlay/data/tutorials/projects/managing-projects.d.ts +8 -0
- package/dist/ui/overlay/data/tutorials/projects/managing-projects.js +212 -0
- package/dist/ui/overlay/data/tutorials/projects/new-project.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/projects/new-project.js +251 -0
- package/dist/ui/overlay/data/tutorials/projects/session-management.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/projects/session-management.js +169 -0
- package/dist/ui/overlay/data/tutorials/teams/background-execution.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/teams/background-execution.js +171 -0
- package/dist/ui/overlay/data/tutorials/teams/multi-terminal.d.ts +8 -0
- package/dist/ui/overlay/data/tutorials/teams/multi-terminal.js +147 -0
- package/dist/ui/overlay/data/tutorials/teams/task-assignment.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/teams/task-assignment.js +204 -0
- package/dist/ui/overlay/data/tutorials/teams/team-overview.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/teams/team-overview.js +165 -0
- package/dist/ui/overlay/data/tutorials/teams/working-with-agents.d.ts +7 -0
- package/dist/ui/overlay/data/tutorials/teams/working-with-agents.js +172 -0
- package/dist/ui/overlay/impl/agents-overlay-v2.js +6 -17
- package/dist/ui/overlay/impl/anchors-overlay-v2.js +30 -64
- package/dist/ui/overlay/impl/artifact-detail-overlay-v2.d.ts +43 -0
- package/dist/ui/overlay/impl/artifact-detail-overlay-v2.js +232 -0
- package/dist/ui/overlay/impl/artifact-overlay-v2.d.ts +40 -0
- package/dist/ui/overlay/impl/artifact-overlay-v2.js +115 -0
- package/dist/ui/overlay/impl/ask-user-overlay-v2.js +2 -5
- package/dist/ui/overlay/impl/background-overlay-v2.d.ts +40 -0
- package/dist/ui/overlay/impl/background-overlay-v2.js +147 -0
- package/dist/ui/overlay/impl/backlog-overlay-v2.d.ts +4 -1
- package/dist/ui/overlay/impl/backlog-overlay-v2.js +55 -16
- package/dist/ui/overlay/impl/changelog-overlay-v2.d.ts +44 -0
- package/dist/ui/overlay/impl/changelog-overlay-v2.js +165 -0
- package/dist/ui/overlay/impl/commands-overlay-v2.js +4 -6
- package/dist/ui/overlay/impl/config-overlay-v2.d.ts +12 -1
- package/dist/ui/overlay/impl/config-overlay-v2.js +164 -100
- package/dist/ui/overlay/impl/custom-agent-form-overlay-v2.d.ts +83 -0
- package/dist/ui/overlay/impl/custom-agent-form-overlay-v2.js +711 -0
- package/dist/ui/overlay/impl/dashboard-overlay-v2.d.ts +2 -0
- package/dist/ui/overlay/impl/dashboard-overlay-v2.js +26 -3
- package/dist/ui/overlay/impl/delegations-overlay-v2.d.ts +28 -0
- package/dist/ui/overlay/impl/delegations-overlay-v2.js +279 -0
- package/dist/ui/overlay/impl/docs-overlay-v2.js +12 -9
- package/dist/ui/overlay/impl/document-detail-overlay-v2.d.ts +7 -0
- package/dist/ui/overlay/impl/document-detail-overlay-v2.js +119 -78
- package/dist/ui/overlay/impl/filter-overlay-v2.d.ts +41 -0
- package/dist/ui/overlay/impl/filter-overlay-v2.js +110 -0
- package/dist/ui/overlay/impl/games-overlay-v2.d.ts +31 -0
- package/dist/ui/overlay/impl/games-overlay-v2.js +135 -0
- package/dist/ui/overlay/impl/help-overlay-v2.d.ts +26 -3
- package/dist/ui/overlay/impl/help-overlay-v2.js +20 -42
- package/dist/ui/overlay/impl/login-overlay-v2.d.ts +49 -0
- package/dist/ui/overlay/impl/login-overlay-v2.js +277 -0
- package/dist/ui/overlay/impl/mcp-overlay-v2.d.ts +63 -0
- package/dist/ui/overlay/impl/mcp-overlay-v2.js +907 -0
- package/dist/ui/overlay/impl/model-overlay-v2.d.ts +57 -13
- package/dist/ui/overlay/impl/model-overlay-v2.js +1086 -61
- package/dist/ui/overlay/impl/new-overlay-v2.d.ts +37 -6
- package/dist/ui/overlay/impl/new-overlay-v2.js +715 -65
- package/dist/ui/overlay/impl/notifications-overlay-v2.d.ts +20 -0
- package/dist/ui/overlay/impl/notifications-overlay-v2.js +116 -0
- package/dist/ui/overlay/impl/onboarding-wizard-overlay-v2.d.ts +76 -0
- package/dist/ui/overlay/impl/onboarding-wizard-overlay-v2.js +728 -0
- package/dist/ui/overlay/impl/pending-overlay-v2.d.ts +51 -0
- package/dist/ui/overlay/impl/pending-overlay-v2.js +445 -0
- package/dist/ui/overlay/impl/permission-overlay-v2.js +5 -5
- package/dist/ui/overlay/impl/permissions-overlay-v2.d.ts +85 -0
- package/dist/ui/overlay/impl/permissions-overlay-v2.js +820 -0
- package/dist/ui/overlay/impl/plan-approval-overlay-v2.d.ts +35 -0
- package/dist/ui/overlay/impl/plan-approval-overlay-v2.js +181 -0
- package/dist/ui/overlay/impl/project-edit-overlay-v2.d.ts +36 -0
- package/dist/ui/overlay/impl/project-edit-overlay-v2.js +195 -0
- package/dist/ui/overlay/impl/projects-overlay-v2.d.ts +1 -0
- package/dist/ui/overlay/impl/projects-overlay-v2.js +278 -44
- package/dist/ui/overlay/impl/reset-overlay-v2.d.ts +39 -0
- package/dist/ui/overlay/impl/reset-overlay-v2.js +107 -0
- package/dist/ui/overlay/impl/resume-overlay-v2.d.ts +60 -0
- package/dist/ui/overlay/impl/resume-overlay-v2.js +414 -0
- package/dist/ui/overlay/impl/session-mode-overlay-v2.d.ts +43 -0
- package/dist/ui/overlay/impl/session-mode-overlay-v2.js +124 -0
- package/dist/ui/overlay/impl/tasks-overlay-v2.d.ts +28 -0
- package/dist/ui/overlay/impl/tasks-overlay-v2.js +283 -0
- package/dist/ui/overlay/impl/team-overlay-v2.d.ts +86 -0
- package/dist/ui/overlay/impl/team-overlay-v2.js +692 -0
- package/dist/ui/overlay/impl/terminals-overlay-v2.d.ts +26 -0
- package/dist/ui/overlay/impl/terminals-overlay-v2.js +217 -0
- package/dist/ui/overlay/impl/tools-overlay-v2.js +3 -7
- package/dist/ui/overlay/impl/tutorial-overlay-v2.d.ts +30 -16
- package/dist/ui/overlay/impl/tutorial-overlay-v2.js +133 -956
- package/dist/ui/overlay/impl/workflow-overlay-v2.d.ts +1 -0
- package/dist/ui/overlay/impl/workflow-overlay-v2.js +10 -4
- package/dist/ui/overlay/index.d.ts +20 -1
- package/dist/ui/overlay/index.js +19 -0
- package/dist/ui/overlay/types.d.ts +5 -0
- package/dist/ui/overlay-manager.d.ts +43 -0
- package/dist/ui/overlay-manager.js +238 -0
- package/dist/ui/overlays.js +4 -16
- package/dist/ui/permission-overlay.js +6 -5
- package/dist/ui/status-bar-controller.d.ts +33 -0
- package/dist/ui/status-bar-controller.js +99 -0
- package/dist/ui/subagent-renderer.js +3 -19
- package/dist/ui/terminal-autocomplete-utils.d.ts +23 -0
- package/dist/ui/terminal-autocomplete-utils.js +83 -0
- package/dist/ui/terminal-line-builders.d.ts +17 -0
- package/dist/ui/terminal-line-builders.js +42 -0
- package/dist/ui/terminal-render-item.d.ts +16 -0
- package/dist/ui/terminal-render-item.js +267 -0
- package/dist/ui/terminal-renderer.d.ts +7 -8
- package/dist/ui/terminal-renderer.js +7 -8
- package/dist/ui/terminal-types.d.ts +179 -0
- package/dist/ui/terminal-types.js +34 -0
- package/dist/ui/terminal-ui.d.ts +144 -276
- package/dist/ui/terminal-ui.js +384 -1861
- package/dist/ui/todo-zone.d.ts +19 -1
- package/dist/ui/todo-zone.js +71 -13
- package/dist/ui/tool-formatters.js +696 -1
- package/dist/ui/turn-metrics.d.ts +56 -0
- package/dist/ui/turn-metrics.js +75 -0
- package/dist/ui/types.d.ts +28 -0
- package/dist/ui/types.js +1 -0
- package/dist/ui/vscode-diff-ipc.d.ts +102 -0
- package/dist/ui/vscode-diff-ipc.js +385 -0
- package/dist/utils/credentials.d.ts +24 -5
- package/dist/utils/credentials.js +123 -9
- package/dist/utils/format-tokens.d.ts +13 -0
- package/dist/utils/format-tokens.js +18 -0
- package/dist/utils/git-config.d.ts +26 -0
- package/dist/utils/git-config.js +54 -0
- package/dist/utils/message-utils.d.ts +61 -0
- package/dist/utils/message-utils.js +72 -0
- package/dist/utils/model-tiers.d.ts +8 -1
- package/dist/utils/model-tiers.js +38 -16
- package/dist/utils/open-browser.d.ts +5 -0
- package/dist/utils/open-browser.js +32 -0
- package/dist/utils/path-safety.js +3 -2
- package/dist/utils/project-detection.d.ts +58 -0
- package/dist/utils/project-detection.js +424 -0
- package/dist/utils/project-memory.js +2 -1
- package/dist/utils/project-status.d.ts +2 -2
- package/dist/utils/startup-perf.d.ts +18 -0
- package/dist/utils/startup-perf.js +60 -0
- package/dist/utils/token-tracker.d.ts +62 -0
- package/dist/utils/token-tracker.js +150 -0
- package/dist/utils/token-types.d.ts +23 -0
- package/dist/utils/token-types.js +18 -0
- package/dist/utils/types/config-types.d.ts +32 -0
- package/dist/utils/types/config-types.js +8 -0
- package/dist/utils/update-checker.d.ts +28 -0
- package/dist/utils/update-checker.js +106 -0
- package/dist/utils/version.d.ts +7 -0
- package/dist/utils/version.js +10 -0
- package/dist/utils/vscode-detect.d.ts +39 -0
- package/dist/utils/vscode-detect.js +137 -0
- package/package.json +27 -13
- package/dist/commands/handler-types.d.ts +0 -68
- package/dist/commands/handler-types.js +0 -8
- package/dist/commands/handlers/agent-commands.d.ts +0 -13
- package/dist/commands/handlers/agent-commands.js +0 -305
- package/dist/commands/handlers/design-commands.d.ts +0 -15
- package/dist/commands/handlers/design-commands.js +0 -334
- package/dist/commands/handlers/index.d.ts +0 -20
- package/dist/commands/handlers/index.js +0 -43
- package/dist/commands/handlers/overlay-commands.d.ts +0 -21
- package/dist/commands/handlers/overlay-commands.js +0 -287
- package/dist/commands/handlers/project-commands.d.ts +0 -11
- package/dist/commands/handlers/project-commands.js +0 -167
- package/dist/commands/handlers/simple-commands.d.ts +0 -19
- package/dist/commands/handlers/simple-commands.js +0 -144
- package/dist/commands/registry.d.ts +0 -50
- package/dist/commands/registry.js +0 -75
- package/dist/index.old.d.ts +0 -7
- package/dist/index.old.js +0 -1014
- package/dist/repl.d.ts +0 -149
- package/dist/repl.js +0 -1151
- package/dist/templates/claude-md.d.ts +0 -7
- package/dist/templates/claude-md.js +0 -189
- package/dist/test-autocomplete.d.ts +0 -7
- package/dist/test-autocomplete.js +0 -85
- package/dist/test-tabbed-menu.d.ts +0 -7
- package/dist/test-tabbed-menu.js +0 -25
- package/dist/tool-selector.d.ts +0 -71
- package/dist/tool-selector.js +0 -184
- package/dist/tools/anchor-tools.d.ts +0 -31
- package/dist/tools/anchor-tools.js +0 -255
- package/dist/tools/backlog-wrappers.d.ts +0 -54
- package/dist/tools/backlog-wrappers.js +0 -338
- package/dist/tools/document-db.d.ts +0 -43
- package/dist/tools/document-db.js +0 -220
- package/dist/tools/workitem-db.d.ts +0 -103
- package/dist/tools/workitem-db.js +0 -549
- package/dist/ui/agents-overlay-v2.d.ts +0 -43
- package/dist/ui/agents-overlay-v2.js +0 -809
- package/dist/ui/agents-overlay.d.ts +0 -12
- package/dist/ui/agents-overlay.js +0 -863
- package/dist/ui/anchors-overlay.d.ts +0 -12
- package/dist/ui/anchors-overlay.js +0 -775
- package/dist/ui/arch-type-overlay.d.ts +0 -15
- package/dist/ui/arch-type-overlay.js +0 -201
- package/dist/ui/ask-user-overlay-v2.d.ts +0 -26
- package/dist/ui/ask-user-overlay-v2.js +0 -555
- package/dist/ui/ask-user-simple-overlay-v2.d.ts +0 -25
- package/dist/ui/ask-user-simple-overlay-v2.js +0 -215
- package/dist/ui/backlog-overlay.d.ts +0 -32
- package/dist/ui/backlog-overlay.js +0 -652
- package/dist/ui/commands-overlay-v2.d.ts +0 -33
- package/dist/ui/commands-overlay-v2.js +0 -441
- package/dist/ui/commands-overlay.d.ts +0 -16
- package/dist/ui/commands-overlay.js +0 -439
- package/dist/ui/config-overlay.d.ts +0 -35
- package/dist/ui/config-overlay.js +0 -707
- package/dist/ui/docs-overlay.d.ts +0 -17
- package/dist/ui/docs-overlay.js +0 -303
- package/dist/ui/footer-v2.d.ts +0 -222
- package/dist/ui/footer-v2.js +0 -1349
- package/dist/ui/help-overlay-v2.d.ts +0 -34
- package/dist/ui/help-overlay-v2.js +0 -309
- package/dist/ui/help-overlay.d.ts +0 -16
- package/dist/ui/help-overlay.js +0 -316
- package/dist/ui/init-overlay-v2.d.ts +0 -34
- package/dist/ui/init-overlay-v2.js +0 -600
- package/dist/ui/init-overlay.d.ts +0 -34
- package/dist/ui/init-overlay.js +0 -604
- package/dist/ui/input-prompt-v2.d.ts +0 -180
- package/dist/ui/input-prompt-v2.js +0 -999
- package/dist/ui/iteration-limit-overlay-v2.d.ts +0 -21
- package/dist/ui/iteration-limit-overlay-v2.js +0 -114
- package/dist/ui/keys-overlay-v2.d.ts +0 -41
- package/dist/ui/keys-overlay-v2.js +0 -248
- package/dist/ui/mascot-overlay-v2.d.ts +0 -41
- package/dist/ui/mascot-overlay-v2.js +0 -138
- package/dist/ui/mascot-overlay.d.ts +0 -21
- package/dist/ui/mascot-overlay.js +0 -146
- package/dist/ui/model-overlay-v2.d.ts +0 -49
- package/dist/ui/model-overlay-v2.js +0 -118
- package/dist/ui/model-overlay.d.ts +0 -27
- package/dist/ui/model-overlay.js +0 -221
- package/dist/ui/model-warning-overlay.d.ts +0 -30
- package/dist/ui/model-warning-overlay.js +0 -169
- package/dist/ui/new-overlay.d.ts +0 -34
- package/dist/ui/new-overlay.js +0 -604
- package/dist/ui/overlay/impl/init-overlay-v2.d.ts +0 -77
- package/dist/ui/overlay/impl/init-overlay-v2.js +0 -593
- package/dist/ui/overlay/overlay-types.d.ts +0 -128
- package/dist/ui/overlay/overlay-types.js +0 -22
- package/dist/ui/overlays/help-overlay-v2.d.ts +0 -28
- package/dist/ui/overlays/help-overlay-v2.js +0 -198
- package/dist/ui/overlays/index.d.ts +0 -11
- package/dist/ui/overlays/index.js +0 -11
- package/dist/ui/permission-overlay-v2.d.ts +0 -36
- package/dist/ui/permission-overlay-v2.js +0 -380
- package/dist/ui/projects-overlay.d.ts +0 -19
- package/dist/ui/projects-overlay.js +0 -484
- package/dist/ui/theme-overlay-v2.d.ts +0 -42
- package/dist/ui/theme-overlay-v2.js +0 -135
- package/dist/ui/theme-overlay.d.ts +0 -24
- package/dist/ui/theme-overlay.js +0 -127
- package/dist/ui/tools-overlay-v2.d.ts +0 -47
- package/dist/ui/tools-overlay-v2.js +0 -218
- package/dist/ui/tools-overlay.d.ts +0 -34
- package/dist/ui/tools-overlay.js +0 -230
- package/dist/ui/tutorial-overlay-v2.d.ts +0 -31
- package/dist/ui/tutorial-overlay-v2.js +0 -1035
- package/dist/ui/tutorial-overlay.d.ts +0 -11
- package/dist/ui/tutorial-overlay.js +0 -1034
- package/dist/ui/workflow-overlay.d.ts +0 -22
- package/dist/ui/workflow-overlay.js +0 -636
package/dist/agent.js
CHANGED
|
@@ -5,178 +5,17 @@
|
|
|
5
5
|
* ClaudeProvider, OllamaProvider, OpenAIProvider, or GeminiProvider
|
|
6
6
|
* and available tools.
|
|
7
7
|
*/
|
|
8
|
-
import { Agent,
|
|
9
|
-
import { isAutoCompactEnabled } from './settings/index.js';
|
|
8
|
+
import { Agent, ContextManager, DEFAULT_CONTEXT_CONFIG, createTaskTool, createSuggestTool, defaultAgentTypes, TOOL_SETS, BUILTIN_GUARDRAILS, createProviderFromType, } from '@compilr-dev/sdk';
|
|
9
|
+
import { isAutoCompactEnabled, isDelegationEnabled, getSetting } from './settings/index.js';
|
|
10
10
|
import { getApiKey } from './utils/credentials.js';
|
|
11
|
-
import { createToolRegistry, createMinimalToolRegistry } from './tools.js';
|
|
11
|
+
import { createToolRegistry, createMinimalToolRegistry, getDirectTools, getMetaTools, initializeMetaTools, getToolIndexForSystemPrompt, getToolStats, setMetaToolFilter, createToolFallback, } from './tools.js';
|
|
12
12
|
import { getAgentRegistry } from './agents/registry.js';
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
- Your output displays in a terminal. Keep responses short and concise.
|
|
20
|
-
- Use GitHub-flavored markdown for formatting.
|
|
21
|
-
- Only use emojis if the user explicitly requests them.
|
|
22
|
-
- Output text to communicate. Never use tools (like bash echo) to communicate.
|
|
23
|
-
- NEVER create files unless absolutely necessary. Always prefer editing existing files.
|
|
24
|
-
- When referencing code, include file path and line number: src/utils.ts:42
|
|
25
|
-
|
|
26
|
-
## Professional Objectivity
|
|
27
|
-
|
|
28
|
-
Prioritize technical accuracy over validating the user's beliefs. Provide direct, objective technical info without unnecessary praise or emotional validation. Disagree when necessary - objective guidance is more valuable than false agreement.
|
|
29
|
-
|
|
30
|
-
Avoid phrases like "You're absolutely right!" or "Great question!" - just answer directly.
|
|
31
|
-
|
|
32
|
-
## No Time Estimates
|
|
33
|
-
|
|
34
|
-
Never predict how long tasks will take. Avoid phrases like "this will take a few minutes" or "quick fix". Focus on what needs to be done, not duration.
|
|
35
|
-
|
|
36
|
-
---
|
|
37
|
-
|
|
38
|
-
## Doing Tasks
|
|
39
|
-
|
|
40
|
-
When the user requests software engineering work:
|
|
41
|
-
|
|
42
|
-
1. **Read before modifying**: NEVER propose changes to code you haven't read. Always read files first.
|
|
43
|
-
2. **Use todo_write for complex tasks**: Track progress on multi-step work (3+ steps).
|
|
44
|
-
3. **Avoid over-engineering**:
|
|
45
|
-
- Only make changes that are directly requested
|
|
46
|
-
- Don't add features beyond what was asked
|
|
47
|
-
- Don't add error handling for scenarios that can't happen
|
|
48
|
-
- Don't create abstractions for one-time operations
|
|
49
|
-
- Three similar lines is better than a premature abstraction
|
|
50
|
-
4. **Security awareness**: Don't introduce vulnerabilities (injection, XSS, SQL injection). If you notice insecure code, fix it immediately.
|
|
51
|
-
5. **Clean up completely**: If something is unused, delete it. No backwards-compatibility hacks.
|
|
52
|
-
|
|
53
|
-
## Task Management (todo_write)
|
|
54
|
-
|
|
55
|
-
Use todo_write to track progress on multi-step tasks.
|
|
56
|
-
|
|
57
|
-
When to use:
|
|
58
|
-
- Tasks with 3+ distinct steps
|
|
59
|
-
- User provides multiple tasks
|
|
60
|
-
- Complex work requiring planning
|
|
61
|
-
|
|
62
|
-
When NOT to use:
|
|
63
|
-
- Single, trivial tasks
|
|
64
|
-
- Purely informational questions
|
|
65
|
-
- Tasks completable in 1-2 steps
|
|
66
|
-
|
|
67
|
-
### Example: When to use todo_write
|
|
68
|
-
|
|
69
|
-
User: Fix the type errors and run the tests
|
|
70
|
-
Assistant: I'll track this multi-step task:
|
|
71
|
-
[Uses todo_write: "Fix type errors", "Run tests"]
|
|
72
|
-
[Marks "Fix type errors" as in_progress]
|
|
73
|
-
[Reads files, fixes errors]
|
|
74
|
-
[Marks "Fix type errors" complete, "Run tests" in_progress]
|
|
75
|
-
[Runs tests]
|
|
76
|
-
[Marks "Run tests" complete]
|
|
77
|
-
|
|
78
|
-
### Example: When NOT to use todo_write
|
|
79
|
-
|
|
80
|
-
User: What does this function do?
|
|
81
|
-
Assistant: [Reads the file and explains directly - no todo needed for a simple question]
|
|
82
|
-
|
|
83
|
-
---
|
|
84
|
-
|
|
85
|
-
## Tool Usage
|
|
86
|
-
|
|
87
|
-
IMPORTANT: Tool names are lowercase with underscores. Use them exactly as shown.
|
|
88
|
-
|
|
89
|
-
### File Operations
|
|
90
|
-
- read_file: Read file contents (parameter: path)
|
|
91
|
-
- write_file: Create or overwrite a file (parameters: path, content)
|
|
92
|
-
- edit: Replace text in a file (parameters: path, old_text, new_text)
|
|
93
|
-
- glob: Find files matching a pattern (parameters: pattern, path)
|
|
94
|
-
- grep: Search file contents with regex (parameters: pattern, path)
|
|
95
|
-
|
|
96
|
-
### Shell
|
|
97
|
-
- bash: Run shell commands (parameter: command)
|
|
98
|
-
For long-running commands (dev servers), use run_in_background=true
|
|
99
|
-
- bash_output: Get output from background shell (parameter: shell_id)
|
|
100
|
-
- kill_shell: Terminate background shell (parameter: shell_id)
|
|
101
|
-
|
|
102
|
-
### Git
|
|
103
|
-
- git_status: Show working tree status
|
|
104
|
-
- git_diff: Show file differences
|
|
105
|
-
- git_log: Show commit history
|
|
106
|
-
- git_commit: Create a commit (parameters: message, files)
|
|
107
|
-
- git_branch: List or manage branches
|
|
108
|
-
|
|
109
|
-
### Project Analysis
|
|
110
|
-
- detect_project: Detect project type and framework
|
|
111
|
-
- find_project_root: Find project root directory
|
|
112
|
-
- run_tests: Run test suite
|
|
113
|
-
- run_lint: Run linter
|
|
114
|
-
|
|
115
|
-
### Task Management
|
|
116
|
-
- todo_write: Add/update todo items
|
|
117
|
-
- todo_read: View current todo list
|
|
118
|
-
|
|
119
|
-
### User Interaction
|
|
120
|
-
- ask_user: Ask question with multiple choice options
|
|
121
|
-
- ask_user_simple: Ask simple yes/no or text input question
|
|
122
|
-
- suggest: Suggest next action (appears as ghost text - user presses Tab to accept)
|
|
123
|
-
|
|
124
|
-
### Sub-agents
|
|
125
|
-
- task: Spawn specialized sub-agent for complex tasks
|
|
126
|
-
Types: explore, code-review, plan, debug, test-runner, refactor, security-audit, general
|
|
127
|
-
|
|
128
|
-
---
|
|
129
|
-
|
|
130
|
-
## Git Safety Protocol
|
|
131
|
-
|
|
132
|
-
When working with git:
|
|
133
|
-
|
|
134
|
-
1. **Never update git config** without explicit user request
|
|
135
|
-
2. **Never force push** to main/master - warn if requested
|
|
136
|
-
3. **Never use --amend** unless:
|
|
137
|
-
- User explicitly requested it, AND
|
|
138
|
-
- Commit was created by you in this session, AND
|
|
139
|
-
- Commit has NOT been pushed to remote
|
|
140
|
-
4. **Check before destructive operations**:
|
|
141
|
-
- git reset --hard (loses uncommitted changes)
|
|
142
|
-
- git checkout -- file (discards local changes)
|
|
143
|
-
- git clean (deletes untracked files)
|
|
144
|
-
5. **Only commit when asked** - don't commit proactively
|
|
145
|
-
|
|
146
|
-
### Commit Workflow
|
|
147
|
-
1. Run git_status to see changes
|
|
148
|
-
2. Run git_diff to review what will be committed
|
|
149
|
-
3. Check recent git_log for commit message style
|
|
150
|
-
4. Create focused commit with clear message
|
|
151
|
-
5. Never commit files with secrets (.env, credentials.json)
|
|
152
|
-
|
|
153
|
-
---
|
|
154
|
-
|
|
155
|
-
## Next Action Suggestions
|
|
156
|
-
|
|
157
|
-
After completing a task, call the suggest tool to recommend the next action.
|
|
158
|
-
|
|
159
|
-
Good suggestions are short commands or actions:
|
|
160
|
-
- "run npm test"
|
|
161
|
-
- "commit the changes"
|
|
162
|
-
- "check the error log"
|
|
163
|
-
|
|
164
|
-
CALL the suggest tool - never write "suggest: ..." as text.
|
|
165
|
-
|
|
166
|
-
---
|
|
167
|
-
|
|
168
|
-
## IMPORTANT RULES (read carefully)
|
|
169
|
-
|
|
170
|
-
1. Tool names are lowercase with underscores - use exactly as shown
|
|
171
|
-
2. ALWAYS read files before proposing changes to them
|
|
172
|
-
3. After calling a tool, respond with the result - never end silently
|
|
173
|
-
4. Use todo_write for multi-step tasks (3+ steps)
|
|
174
|
-
5. Don't over-engineer - implement exactly what was asked
|
|
175
|
-
6. Check for security issues - fix insecure code immediately
|
|
176
|
-
7. Use the task tool to delegate complex work to sub-agents
|
|
177
|
-
8. Call suggest tool after completing tasks (don't write "suggest:" as text)
|
|
178
|
-
|
|
179
|
-
Current working directory: ${process.cwd()}`;
|
|
13
|
+
import { SystemPromptBuilder } from './system-prompt/index.js';
|
|
14
|
+
import { getDefaultModelForTier, getModelContextWindow } from './models/index.js';
|
|
15
|
+
import { PROVIDER_METADATA } from './models/providers.js';
|
|
16
|
+
import { setStaticEstimates, estimateTokens, estimateJsonTokens, } from './utils/token-tracker.js';
|
|
17
|
+
import { createFileLockCheckHook, createFileLockAcquireHook } from './multi-agent/file-lock-hook.js';
|
|
18
|
+
import { getActiveProject } from './tools/project-db.js';
|
|
180
19
|
/**
|
|
181
20
|
* Default permission rules for potentially dangerous operations
|
|
182
21
|
* Note: Tool names are lowercase (bash, write_file, edit, git_commit)
|
|
@@ -248,85 +87,57 @@ function getMergedAgentTypes() {
|
|
|
248
87
|
}
|
|
249
88
|
/**
|
|
250
89
|
* Creates the appropriate LLM provider based on configuration.
|
|
90
|
+
* Resolves CLI-specific concerns (credentials, settings) then delegates
|
|
91
|
+
* provider instantiation to the SDK's createProviderFromType().
|
|
251
92
|
*/
|
|
252
93
|
function createProvider(options) {
|
|
253
94
|
const providerType = options.provider ?? 'claude';
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
return provider;
|
|
263
|
-
}
|
|
264
|
-
case 'openai': {
|
|
265
|
-
const apiKey = getApiKey('openai');
|
|
266
|
-
if (!apiKey) {
|
|
267
|
-
throw new Error('OpenAI API key not found.\n' +
|
|
268
|
-
'Run /keys to set it, or: export OPENAI_API_KEY=sk-...');
|
|
269
|
-
}
|
|
270
|
-
const model = options.model ?? 'gpt-4o';
|
|
271
|
-
console.log(`Using OpenAI provider with model: ${model}`);
|
|
272
|
-
const provider = new OpenAIProvider({ apiKey, model });
|
|
273
|
-
return provider;
|
|
274
|
-
}
|
|
275
|
-
case 'gemini': {
|
|
276
|
-
const apiKey = getApiKey('google');
|
|
277
|
-
if (!apiKey) {
|
|
278
|
-
throw new Error('Google AI API key not found.\n' +
|
|
279
|
-
'Run /keys to set it, or: export GOOGLE_API_KEY=AI...');
|
|
280
|
-
}
|
|
281
|
-
const model = options.model ?? 'gemini-2.0-flash';
|
|
282
|
-
console.log(`Using Gemini provider with model: ${model}`);
|
|
283
|
-
const provider = new GeminiProvider({ apiKey, model });
|
|
284
|
-
return provider;
|
|
285
|
-
}
|
|
286
|
-
case 'claude':
|
|
287
|
-
default: {
|
|
288
|
-
const apiKey = getApiKey('anthropic');
|
|
289
|
-
if (!apiKey) {
|
|
290
|
-
throw new Error('Anthropic API key not found.\n' +
|
|
291
|
-
'Run /keys to set it, or: export ANTHROPIC_API_KEY=sk-ant-...\n' +
|
|
292
|
-
'Or use --provider ollama for local models.');
|
|
293
|
-
}
|
|
294
|
-
const model = options.model ?? 'claude-sonnet-4-20250514';
|
|
295
|
-
console.log(`Using Claude provider with model: ${model}`);
|
|
296
|
-
return new ClaudeProvider({ apiKey, model });
|
|
297
|
-
}
|
|
95
|
+
const quiet = options.quiet ?? false;
|
|
96
|
+
const meta = PROVIDER_METADATA[providerType];
|
|
97
|
+
// 1. Resolve API key from CLI credential store
|
|
98
|
+
const apiKey = meta.requiresKey ? getApiKey(meta.credentialKey) : undefined;
|
|
99
|
+
if (!apiKey && meta.requiresKey) {
|
|
100
|
+
throw new Error(`${meta.displayName} API key not found.\n` +
|
|
101
|
+
`Run /keys to set it, or: export ${meta.envVar}=...` +
|
|
102
|
+
(providerType === 'claude' ? '\nOr use --provider ollama for local models.' : ''));
|
|
298
103
|
}
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
return 200000;
|
|
104
|
+
// 2. Resolve model (from options or registry default for balanced tier)
|
|
105
|
+
const model = options.model ?? getDefaultModelForTier(providerType, 'balanced')?.id;
|
|
106
|
+
// 3. Resolve Ollama base URL from settings
|
|
107
|
+
const baseUrl = providerType === 'ollama'
|
|
108
|
+
? ((typeof getSetting('ollamaBaseUrl') === 'string'
|
|
109
|
+
? getSetting('ollamaBaseUrl')
|
|
110
|
+
: undefined) ??
|
|
111
|
+
process.env.OLLAMA_BASE_URL ??
|
|
112
|
+
'http://localhost:11434')
|
|
113
|
+
: undefined;
|
|
114
|
+
// 4. Log (unless quiet)
|
|
115
|
+
if (!quiet)
|
|
116
|
+
console.log(`Using ${meta.displayName} with model: ${model ?? 'default'}`);
|
|
117
|
+
if (!quiet && providerType === 'ollama' && baseUrl !== 'http://localhost:11434') {
|
|
118
|
+
console.log(` Ollama server: ${baseUrl ?? ''}`);
|
|
315
119
|
}
|
|
120
|
+
// 5. Delegate to SDK
|
|
121
|
+
return createProviderFromType(providerType, {
|
|
122
|
+
model,
|
|
123
|
+
apiKey: apiKey ?? undefined,
|
|
124
|
+
baseUrl,
|
|
125
|
+
siteName: providerType === 'openrouter' ? 'compilr-cli' : undefined,
|
|
126
|
+
});
|
|
316
127
|
}
|
|
317
128
|
/**
|
|
318
129
|
* Creates an Agent instance configured with all tools.
|
|
319
130
|
*/
|
|
320
131
|
export function createAgent(options = {}) {
|
|
321
132
|
const provider = createProvider(options);
|
|
322
|
-
// Create context manager with
|
|
133
|
+
// Create context manager with model-specific limits
|
|
323
134
|
// Uses library defaults: compact at 50%, summarize at 90%, emergency at 95%
|
|
324
135
|
// Auto-compact can be disabled via settings (requires restart)
|
|
325
136
|
const autoCompact = isAutoCompactEnabled();
|
|
326
137
|
const contextManager = new ContextManager({
|
|
327
138
|
provider,
|
|
328
139
|
config: {
|
|
329
|
-
maxContextTokens:
|
|
140
|
+
maxContextTokens: getModelContextWindow(options.model ?? '', options.provider),
|
|
330
141
|
// If auto-compact disabled, set threshold to 100% (never triggers)
|
|
331
142
|
compaction: autoCompact
|
|
332
143
|
? DEFAULT_CONTEXT_CONFIG.compaction
|
|
@@ -348,15 +159,63 @@ export function createAgent(options = {}) {
|
|
|
348
159
|
}
|
|
349
160
|
}
|
|
350
161
|
: undefined;
|
|
351
|
-
// Build system prompt
|
|
162
|
+
// Build modular system prompt based on current context
|
|
352
163
|
// Note: Anchors are NOT added here - they're handled by library's AnchorManager
|
|
353
164
|
// which re-injects them on every LLM call (survives compaction)
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
165
|
+
// Initialize meta-tools if enabled (needed for tool index)
|
|
166
|
+
let metaToolsIndex;
|
|
167
|
+
if (options.enableMetaTools && !options.minimal) {
|
|
168
|
+
initializeMetaTools();
|
|
169
|
+
metaToolsIndex = getToolIndexForSystemPrompt();
|
|
170
|
+
// Log tool stats (unless quiet mode)
|
|
171
|
+
if (!options.quiet) {
|
|
172
|
+
const stats = getToolStats();
|
|
173
|
+
console.log(`[Meta-tools] Direct: ${String(stats.directTools)}, ` +
|
|
174
|
+
`Meta: ${String(stats.metaRegistryTools)}, ` +
|
|
175
|
+
`Est. savings: ~${String(stats.tokenSavings)} tokens`);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
let systemPrompt;
|
|
179
|
+
// Check if we should use minimal system prompt (for testing role identity)
|
|
180
|
+
if (options.useMinimalSystemPrompt && options.systemPromptAddition) {
|
|
181
|
+
// Skip all modules - just use the role prompt directly
|
|
182
|
+
systemPrompt = options.systemPromptAddition;
|
|
357
183
|
}
|
|
358
|
-
|
|
359
|
-
|
|
184
|
+
else {
|
|
185
|
+
// Use modular system prompt builder
|
|
186
|
+
// When a role-specific identity is provided (systemPromptAddition), skip the default identity module
|
|
187
|
+
const promptBuilder = new SystemPromptBuilder({
|
|
188
|
+
enableMetaTools: options.enableMetaTools && !options.minimal,
|
|
189
|
+
projectName: options.projectName,
|
|
190
|
+
projectContext: options.projectContext,
|
|
191
|
+
guidedModeContext: options.guidedModeContext,
|
|
192
|
+
planModeContext: options.planModeContext,
|
|
193
|
+
metaToolsIndex,
|
|
194
|
+
hasRoleIdentity: !!options.systemPromptAddition, // Skip default identity when role is specified
|
|
195
|
+
// hasGit is auto-detected by builder
|
|
196
|
+
});
|
|
197
|
+
const buildResult = promptBuilder.build();
|
|
198
|
+
systemPrompt = buildResult.prompt;
|
|
199
|
+
// Prepend role-specific system prompt (for team agents)
|
|
200
|
+
// The default identity module is already excluded via hasRoleIdentity flag
|
|
201
|
+
if (options.systemPromptAddition) {
|
|
202
|
+
// Extract role name from the role prompt (format: "# ROLE: ROLE_NAME")
|
|
203
|
+
const roleMatch = options.systemPromptAddition.match(/^#\s*ROLE:\s*(.+)$/m);
|
|
204
|
+
const roleName = roleMatch ? roleMatch[1].trim() : 'specialized team member';
|
|
205
|
+
// Put FULL role prompt at the END (recency effect is stronger than primacy)
|
|
206
|
+
// LLMs weight the end of context more heavily
|
|
207
|
+
const roleEnding = `
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
## YOUR ASSIGNED ROLE: ${roleName}
|
|
212
|
+
|
|
213
|
+
${options.systemPromptAddition}
|
|
214
|
+
|
|
215
|
+
**CRITICAL**: When asked "what is your role?", "what are you?", or similar identity questions, your response should acknowledge your assigned role. For example: "In this team, I'm the ${roleName}" or "I'm operating as the ${roleName} in this session."`;
|
|
216
|
+
// Put role at BOTH beginning AND end, with full role prompt at the end
|
|
217
|
+
systemPrompt = options.systemPromptAddition + '\n\n' + systemPrompt + roleEnding;
|
|
218
|
+
}
|
|
360
219
|
}
|
|
361
220
|
const agent = new Agent({
|
|
362
221
|
provider,
|
|
@@ -400,6 +259,58 @@ export function createAgent(options = {}) {
|
|
|
400
259
|
onTriggered: options.onGuardrailTriggered,
|
|
401
260
|
}
|
|
402
261
|
: undefined,
|
|
262
|
+
// Tool result delegation — auto-summarize large results to conserve context
|
|
263
|
+
delegation: isDelegationEnabled()
|
|
264
|
+
? {
|
|
265
|
+
enabled: true,
|
|
266
|
+
delegationThreshold: 8000,
|
|
267
|
+
summaryMaxTokens: 800,
|
|
268
|
+
resultTTL: 600_000,
|
|
269
|
+
maxStoredResults: 50,
|
|
270
|
+
strategy: 'auto',
|
|
271
|
+
toolOverrides: {
|
|
272
|
+
// Custom thresholds
|
|
273
|
+
bash: { threshold: 12000 },
|
|
274
|
+
grep: { threshold: 4000 },
|
|
275
|
+
git_diff: { threshold: 6000 },
|
|
276
|
+
// Never summarize — agent needs verbatim results
|
|
277
|
+
get_tool_info: { enabled: false },
|
|
278
|
+
list_tools: { enabled: false },
|
|
279
|
+
ask_user: { enabled: false },
|
|
280
|
+
ask_user_simple: { enabled: false },
|
|
281
|
+
todo_read: { enabled: false },
|
|
282
|
+
},
|
|
283
|
+
}
|
|
284
|
+
: undefined,
|
|
285
|
+
// Hooks: context pressure, file lock check/acquire
|
|
286
|
+
hooks: {
|
|
287
|
+
beforeLLM: [
|
|
288
|
+
(ctx) => {
|
|
289
|
+
const utilization = contextManager.getUtilization();
|
|
290
|
+
if (utilization < 0.3)
|
|
291
|
+
return undefined;
|
|
292
|
+
const pct = Math.round(utilization * 100);
|
|
293
|
+
let hint;
|
|
294
|
+
if (utilization < 0.6) {
|
|
295
|
+
hint = `[Context: ${String(pct)}%] Consider task() for multi-file operations.`;
|
|
296
|
+
}
|
|
297
|
+
else if (utilization < 0.8) {
|
|
298
|
+
hint = `[Context: ${String(pct)}% - HIGH] Prefer task() sub-agents for file reads and code search.`;
|
|
299
|
+
}
|
|
300
|
+
else {
|
|
301
|
+
hint = `[Context: ${String(pct)}% - CRITICAL] Use task() for ALL exploration. Do not read files directly.`;
|
|
302
|
+
}
|
|
303
|
+
const messages = [...ctx.messages];
|
|
304
|
+
messages.splice(1, 0, { role: 'user', content: hint });
|
|
305
|
+
return { messages };
|
|
306
|
+
},
|
|
307
|
+
],
|
|
308
|
+
beforeTool: [createFileLockCheckHook(getActiveProject)],
|
|
309
|
+
afterTool: [
|
|
310
|
+
createFileLockAcquireHook(getActiveProject),
|
|
311
|
+
...(options.episodeRecorder ? [options.episodeRecorder.createHook()] : []),
|
|
312
|
+
],
|
|
313
|
+
},
|
|
403
314
|
});
|
|
404
315
|
// Load persisted anchors into the agent's AnchorManager
|
|
405
316
|
if (options.enableAnchors && options.persistedAnchors) {
|
|
@@ -414,14 +325,52 @@ export function createAgent(options = {}) {
|
|
|
414
325
|
});
|
|
415
326
|
}
|
|
416
327
|
}
|
|
417
|
-
// Register tools using registerTools method
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
328
|
+
// Register tools using registerTools method (skip if noTools is set)
|
|
329
|
+
if (!options.noTools) {
|
|
330
|
+
// When meta-tools is enabled, use direct tools + meta-tools instead of all tools
|
|
331
|
+
let tools;
|
|
332
|
+
if (options.minimal) {
|
|
333
|
+
tools = createMinimalToolRegistry();
|
|
334
|
+
}
|
|
335
|
+
else if (options.enableMetaTools) {
|
|
336
|
+
// Meta-tools mode: direct tools + get_tool_info (for schema introspection)
|
|
337
|
+
// Meta-registry tools are accessed transparently via fallback handler
|
|
338
|
+
tools = [...getDirectTools(), ...getMetaTools()];
|
|
339
|
+
}
|
|
340
|
+
else {
|
|
341
|
+
// Legacy mode: all tools declared directly
|
|
342
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated -- Intentional for backward compatibility
|
|
343
|
+
tools = createToolRegistry();
|
|
344
|
+
}
|
|
345
|
+
// Apply tool filter if specified (filter direct tools)
|
|
346
|
+
if (options.toolFilter && options.toolFilter.length > 0) {
|
|
347
|
+
const allowedTools = new Set(options.toolFilter);
|
|
348
|
+
// get_tool_info is always allowed for schema introspection
|
|
349
|
+
const alwaysAllowed = new Set(['get_tool_info']);
|
|
350
|
+
tools = tools.filter((tool) => allowedTools.has(tool.definition.name) || alwaysAllowed.has(tool.definition.name));
|
|
351
|
+
// Also set the meta-tool filter for use_tool/list_tools filtering
|
|
352
|
+
setMetaToolFilter(options.toolFilter);
|
|
353
|
+
}
|
|
354
|
+
else {
|
|
355
|
+
// No filter - clear any previous filter
|
|
356
|
+
setMetaToolFilter(null);
|
|
357
|
+
}
|
|
358
|
+
// Type assertion needed for tool registry compatibility
|
|
359
|
+
agent.registerTools(tools);
|
|
360
|
+
// Register MCP tools (from external MCP servers)
|
|
361
|
+
// These are registered as direct tools since their schemas are unknown at build time
|
|
362
|
+
if (options.mcpTools && options.mcpTools.length > 0) {
|
|
363
|
+
agent.registerTools(options.mcpTools);
|
|
364
|
+
}
|
|
365
|
+
// Set up transparent fallback to meta-registry
|
|
366
|
+
// When the agent calls a tool not in direct tools (e.g., workitem_add),
|
|
367
|
+
// the fallback handler checks the meta-registry and executes it.
|
|
368
|
+
if (options.enableMetaTools && !options.minimal) {
|
|
369
|
+
agent.getToolRegistry().setFallbackHandler(createToolFallback());
|
|
370
|
+
}
|
|
371
|
+
}
|
|
423
372
|
// Register Task tool for sub-agent spawning (only in full mode)
|
|
424
|
-
if (!options.minimal) {
|
|
373
|
+
if (!options.minimal && !options.noTools) {
|
|
425
374
|
// Track active subagents to correlate spawn/complete/events
|
|
426
375
|
// Track active subagents by toolUseId for token counting
|
|
427
376
|
const activeSubagents = new Map();
|
|
@@ -496,5 +445,52 @@ export function createAgent(options = {}) {
|
|
|
496
445
|
});
|
|
497
446
|
agent.registerTool(suggestTool);
|
|
498
447
|
}
|
|
448
|
+
// ==========================================================================
|
|
449
|
+
// Calculate and store token estimates for debugging
|
|
450
|
+
// ==========================================================================
|
|
451
|
+
if (!options.quiet) {
|
|
452
|
+
// Calculate tool tokens from the tools we registered
|
|
453
|
+
let toolTokens = 0;
|
|
454
|
+
// Get the tools array based on options
|
|
455
|
+
let toolsForEstimate = [];
|
|
456
|
+
if (!options.noTools) {
|
|
457
|
+
if (options.minimal) {
|
|
458
|
+
toolsForEstimate = createMinimalToolRegistry();
|
|
459
|
+
}
|
|
460
|
+
else if (options.enableMetaTools) {
|
|
461
|
+
toolsForEstimate = [...getDirectTools(), ...getMetaTools()];
|
|
462
|
+
}
|
|
463
|
+
else {
|
|
464
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
465
|
+
toolsForEstimate = createToolRegistry();
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
for (const tool of toolsForEstimate) {
|
|
469
|
+
const def = tool.definition;
|
|
470
|
+
toolTokens += estimateJsonTokens({
|
|
471
|
+
name: def.name,
|
|
472
|
+
description: def.description,
|
|
473
|
+
input_schema: def.inputSchema,
|
|
474
|
+
});
|
|
475
|
+
}
|
|
476
|
+
// Add task tool and suggest tool estimates (if registered)
|
|
477
|
+
if (!options.minimal && !options.noTools) {
|
|
478
|
+
// Task tool has a large description with all agent types
|
|
479
|
+
toolTokens += 700; // Approximate for task tool
|
|
480
|
+
toolTokens += 200; // Approximate for suggest tool
|
|
481
|
+
}
|
|
482
|
+
// Calculate estimates
|
|
483
|
+
const systemTokens = estimateTokens(systemPrompt);
|
|
484
|
+
const roleTokens = options.systemPromptAddition
|
|
485
|
+
? estimateTokens(options.systemPromptAddition) * 2 // Role appears at start and end
|
|
486
|
+
: 0;
|
|
487
|
+
const contextTokens = estimateTokens(options.projectContext);
|
|
488
|
+
setStaticEstimates({
|
|
489
|
+
system: systemTokens - roleTokens, // Subtract role since it's counted separately
|
|
490
|
+
role: roleTokens,
|
|
491
|
+
tools: toolTokens,
|
|
492
|
+
context: contextTokens,
|
|
493
|
+
});
|
|
494
|
+
}
|
|
499
495
|
return agent;
|
|
500
496
|
}
|
package/dist/anchors/index.d.ts
CHANGED
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
*/
|
|
7
7
|
export { getAnchorManager, getGlobalAnchorManager, clearProjectAnchors, getFormattedAnchors, addAnchor, getAllAnchors, getProjectsWithAnchors, getAnchorStats, clearManagerCache, } from './project-anchors.js';
|
|
8
8
|
export type { Anchor, AnchorInput, AnchorQueryOptions } from './project-anchors.js';
|
|
9
|
-
export { AnchorManager } from '@compilr-dev/
|
|
9
|
+
export { AnchorManager } from '@compilr-dev/sdk';
|
package/dist/anchors/index.js
CHANGED
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
*/
|
|
7
7
|
export { getAnchorManager, getGlobalAnchorManager, clearProjectAnchors, getFormattedAnchors, addAnchor, getAllAnchors, getProjectsWithAnchors, getAnchorStats, clearManagerCache, } from './project-anchors.js';
|
|
8
8
|
// Re-export the AnchorManager type from agents for consumers
|
|
9
|
-
export { AnchorManager } from '@compilr-dev/
|
|
9
|
+
export { AnchorManager } from '@compilr-dev/sdk';
|
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
* ├── global.json # Non-project anchors
|
|
10
10
|
* └── project-{id}.json # Per-project anchors
|
|
11
11
|
*/
|
|
12
|
-
import { AnchorManager } from '@compilr-dev/
|
|
13
|
-
import type { Anchor, AnchorInput, AnchorQueryOptions } from '@compilr-dev/
|
|
12
|
+
import { AnchorManager } from '@compilr-dev/sdk';
|
|
13
|
+
import type { Anchor, AnchorInput, AnchorQueryOptions } from '@compilr-dev/sdk';
|
|
14
14
|
export type { Anchor, AnchorInput, AnchorQueryOptions };
|
|
15
15
|
/**
|
|
16
16
|
* Get anchor manager for a project (or global if projectId is null)
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
*/
|
|
12
12
|
import * as fs from 'fs';
|
|
13
13
|
import * as path from 'path';
|
|
14
|
-
import { AnchorManager } from '@compilr-dev/
|
|
14
|
+
import { AnchorManager } from '@compilr-dev/sdk';
|
|
15
15
|
import { getDataPath } from '../settings/paths.js';
|
|
16
16
|
// =============================================================================
|
|
17
17
|
// State
|