@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,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ollama Model Auto-Detection
|
|
3
|
+
*
|
|
4
|
+
* Fetches available models from a running Ollama instance.
|
|
5
|
+
* Provides caching to avoid repeated API calls.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Information about an Ollama model as returned by the API.
|
|
9
|
+
*/
|
|
10
|
+
export interface OllamaModelInfo {
|
|
11
|
+
/** Model name (e.g., "llama3.2:8b", "deepseek-r1:14b") */
|
|
12
|
+
name: string;
|
|
13
|
+
/** Model size in bytes */
|
|
14
|
+
size: number;
|
|
15
|
+
/** When the model was modified/pulled */
|
|
16
|
+
modifiedAt: string;
|
|
17
|
+
/** Model digest (hash) */
|
|
18
|
+
digest: string;
|
|
19
|
+
/** Model details (family, parameter size, quantization) */
|
|
20
|
+
details?: {
|
|
21
|
+
family?: string;
|
|
22
|
+
parameterSize?: string;
|
|
23
|
+
quantizationLevel?: string;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Result of listing Ollama models.
|
|
28
|
+
*/
|
|
29
|
+
export interface OllamaModelsResult {
|
|
30
|
+
/** Whether the fetch was successful */
|
|
31
|
+
success: boolean;
|
|
32
|
+
/** Available models (empty if failed) */
|
|
33
|
+
models: OllamaModelInfo[];
|
|
34
|
+
/** Error message if failed */
|
|
35
|
+
error?: string;
|
|
36
|
+
/** Whether Ollama is running */
|
|
37
|
+
ollamaRunning: boolean;
|
|
38
|
+
/** Timestamp of the fetch (for cache management) */
|
|
39
|
+
fetchedAt: number;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Clear the cache (useful for testing or forcing refresh).
|
|
43
|
+
*/
|
|
44
|
+
export declare function clearOllamaModelsCache(): void;
|
|
45
|
+
/**
|
|
46
|
+
* List all locally available Ollama models.
|
|
47
|
+
*
|
|
48
|
+
* Features:
|
|
49
|
+
* - Caches results for 30 seconds to avoid repeated API calls
|
|
50
|
+
* - Returns gracefully with error info when Ollama is not running
|
|
51
|
+
* - Parses model metadata (size, family, quantization)
|
|
52
|
+
*
|
|
53
|
+
* @param forceRefresh - If true, bypasses the cache
|
|
54
|
+
*/
|
|
55
|
+
export declare function listOllamaModels(forceRefresh?: boolean): Promise<OllamaModelsResult>;
|
|
56
|
+
/**
|
|
57
|
+
* Check if a specific model is available locally.
|
|
58
|
+
* Uses the cached model list for efficiency.
|
|
59
|
+
*/
|
|
60
|
+
export declare function isOllamaModelAvailable(modelId: string): Promise<boolean>;
|
|
61
|
+
/**
|
|
62
|
+
* Format model size for display (e.g., "4.1 GB").
|
|
63
|
+
*/
|
|
64
|
+
export declare function formatModelSize(bytes: number): string;
|
|
65
|
+
/**
|
|
66
|
+
* Get a friendly display name for a model.
|
|
67
|
+
* Capitalizes the base name and formats the tag.
|
|
68
|
+
*/
|
|
69
|
+
export declare function getOllamaModelDisplayName(name: string): string;
|
|
70
|
+
/**
|
|
71
|
+
* Get a short description for a model based on its metadata.
|
|
72
|
+
*/
|
|
73
|
+
export declare function getOllamaModelDescription(model: OllamaModelInfo): string;
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ollama Model Auto-Detection
|
|
3
|
+
*
|
|
4
|
+
* Fetches available models from a running Ollama instance.
|
|
5
|
+
* Provides caching to avoid repeated API calls.
|
|
6
|
+
*/
|
|
7
|
+
import { getSetting } from '../settings/index.js';
|
|
8
|
+
// =============================================================================
|
|
9
|
+
// Cache
|
|
10
|
+
// =============================================================================
|
|
11
|
+
/** Cache duration in milliseconds (30 seconds) */
|
|
12
|
+
const CACHE_DURATION_MS = 30_000;
|
|
13
|
+
/** Cached result */
|
|
14
|
+
let cachedResult = null;
|
|
15
|
+
/**
|
|
16
|
+
* Clear the cache (useful for testing or forcing refresh).
|
|
17
|
+
*/
|
|
18
|
+
export function clearOllamaModelsCache() {
|
|
19
|
+
cachedResult = null;
|
|
20
|
+
}
|
|
21
|
+
// =============================================================================
|
|
22
|
+
// Main Function
|
|
23
|
+
// =============================================================================
|
|
24
|
+
/**
|
|
25
|
+
* Get the Ollama base URL from settings or environment.
|
|
26
|
+
*/
|
|
27
|
+
function getOllamaBaseUrl() {
|
|
28
|
+
const settingUrl = getSetting('ollamaBaseUrl');
|
|
29
|
+
return (typeof settingUrl === 'string' ? settingUrl : null)
|
|
30
|
+
?? process.env.OLLAMA_BASE_URL
|
|
31
|
+
?? process.env.OLLAMA_HOST
|
|
32
|
+
?? 'http://localhost:11434';
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* List all locally available Ollama models.
|
|
36
|
+
*
|
|
37
|
+
* Features:
|
|
38
|
+
* - Caches results for 30 seconds to avoid repeated API calls
|
|
39
|
+
* - Returns gracefully with error info when Ollama is not running
|
|
40
|
+
* - Parses model metadata (size, family, quantization)
|
|
41
|
+
*
|
|
42
|
+
* @param forceRefresh - If true, bypasses the cache
|
|
43
|
+
*/
|
|
44
|
+
export async function listOllamaModels(forceRefresh = false) {
|
|
45
|
+
// Check cache
|
|
46
|
+
if (!forceRefresh && cachedResult) {
|
|
47
|
+
const age = Date.now() - cachedResult.fetchedAt;
|
|
48
|
+
if (age < CACHE_DURATION_MS) {
|
|
49
|
+
return cachedResult;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
const ollamaHost = getOllamaBaseUrl();
|
|
53
|
+
try {
|
|
54
|
+
const response = await fetch(`${ollamaHost}/api/tags`, {
|
|
55
|
+
method: 'GET',
|
|
56
|
+
signal: AbortSignal.timeout(5000),
|
|
57
|
+
});
|
|
58
|
+
if (!response.ok) {
|
|
59
|
+
cachedResult = {
|
|
60
|
+
success: false,
|
|
61
|
+
models: [],
|
|
62
|
+
error: `Ollama returned status ${String(response.status)}`,
|
|
63
|
+
ollamaRunning: true, // Server responded, just with an error
|
|
64
|
+
fetchedAt: Date.now(),
|
|
65
|
+
};
|
|
66
|
+
return cachedResult;
|
|
67
|
+
}
|
|
68
|
+
const data = await response.json();
|
|
69
|
+
const models = (data.models ?? []).map(m => ({
|
|
70
|
+
name: m.name,
|
|
71
|
+
size: m.size,
|
|
72
|
+
modifiedAt: m.modified_at,
|
|
73
|
+
digest: m.digest,
|
|
74
|
+
details: m.details ? {
|
|
75
|
+
family: m.details.family,
|
|
76
|
+
parameterSize: m.details.parameter_size,
|
|
77
|
+
quantizationLevel: m.details.quantization_level,
|
|
78
|
+
} : undefined,
|
|
79
|
+
}));
|
|
80
|
+
// Sort by name for consistent display
|
|
81
|
+
models.sort((a, b) => a.name.localeCompare(b.name));
|
|
82
|
+
cachedResult = {
|
|
83
|
+
success: true,
|
|
84
|
+
models,
|
|
85
|
+
ollamaRunning: true,
|
|
86
|
+
fetchedAt: Date.now(),
|
|
87
|
+
};
|
|
88
|
+
return cachedResult;
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
let errorMsg = 'Unknown error';
|
|
92
|
+
let ollamaRunning = false;
|
|
93
|
+
if (error instanceof Error) {
|
|
94
|
+
if (error.name === 'AbortError' || error.message.includes('timeout')) {
|
|
95
|
+
errorMsg = 'Connection timed out';
|
|
96
|
+
ollamaRunning = false;
|
|
97
|
+
}
|
|
98
|
+
else if (error.message.includes('ECONNREFUSED') || error.message.includes('fetch failed')) {
|
|
99
|
+
errorMsg = 'Ollama is not running. Start it with: ollama serve';
|
|
100
|
+
ollamaRunning = false;
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
errorMsg = error.message;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
cachedResult = {
|
|
107
|
+
success: false,
|
|
108
|
+
models: [],
|
|
109
|
+
error: errorMsg,
|
|
110
|
+
ollamaRunning,
|
|
111
|
+
fetchedAt: Date.now(),
|
|
112
|
+
};
|
|
113
|
+
return cachedResult;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
// =============================================================================
|
|
117
|
+
// Helper Functions
|
|
118
|
+
// =============================================================================
|
|
119
|
+
/**
|
|
120
|
+
* Check if a specific model is available locally.
|
|
121
|
+
* Uses the cached model list for efficiency.
|
|
122
|
+
*/
|
|
123
|
+
export async function isOllamaModelAvailable(modelId) {
|
|
124
|
+
const result = await listOllamaModels();
|
|
125
|
+
if (!result.success) {
|
|
126
|
+
return false;
|
|
127
|
+
}
|
|
128
|
+
const normalizedModelId = modelId.toLowerCase();
|
|
129
|
+
return result.models.some(m => {
|
|
130
|
+
const name = m.name.toLowerCase();
|
|
131
|
+
// Exact match or model without tag matches
|
|
132
|
+
return name === normalizedModelId ||
|
|
133
|
+
name.startsWith(normalizedModelId + ':') ||
|
|
134
|
+
normalizedModelId.startsWith(name.split(':')[0]);
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Format model size for display (e.g., "4.1 GB").
|
|
139
|
+
*/
|
|
140
|
+
export function formatModelSize(bytes) {
|
|
141
|
+
if (bytes < 1024)
|
|
142
|
+
return `${String(bytes)} B`;
|
|
143
|
+
if (bytes < 1024 * 1024)
|
|
144
|
+
return `${(bytes / 1024).toFixed(1)} KB`;
|
|
145
|
+
if (bytes < 1024 * 1024 * 1024)
|
|
146
|
+
return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
|
|
147
|
+
return `${(bytes / (1024 * 1024 * 1024)).toFixed(1)} GB`;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Get a friendly display name for a model.
|
|
151
|
+
* Capitalizes the base name and formats the tag.
|
|
152
|
+
*/
|
|
153
|
+
export function getOllamaModelDisplayName(name) {
|
|
154
|
+
const [baseName, tag] = name.split(':');
|
|
155
|
+
// Capitalize first letter of each word
|
|
156
|
+
const formattedBase = baseName
|
|
157
|
+
.split(/[-_]/)
|
|
158
|
+
.map(word => word.charAt(0).toUpperCase() + word.slice(1))
|
|
159
|
+
.join(' ');
|
|
160
|
+
if (tag) {
|
|
161
|
+
return `${formattedBase} (${tag})`;
|
|
162
|
+
}
|
|
163
|
+
return formattedBase;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Get a short description for a model based on its metadata.
|
|
167
|
+
*/
|
|
168
|
+
export function getOllamaModelDescription(model) {
|
|
169
|
+
const parts = [];
|
|
170
|
+
if (model.details?.parameterSize) {
|
|
171
|
+
parts.push(model.details.parameterSize);
|
|
172
|
+
}
|
|
173
|
+
if (model.details?.quantizationLevel) {
|
|
174
|
+
parts.push(model.details.quantizationLevel);
|
|
175
|
+
}
|
|
176
|
+
parts.push(formatModelSize(model.size));
|
|
177
|
+
return parts.join(' · ');
|
|
178
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provider Metadata — CLI extension of SDK provider data
|
|
3
|
+
*
|
|
4
|
+
* Re-exports SDK types and data, extending ProviderMetadata with
|
|
5
|
+
* CLI-specific `credentialKey` for the encrypted credential store.
|
|
6
|
+
*/
|
|
7
|
+
import type { ProviderType } from './provider-types.js';
|
|
8
|
+
import type { ProviderKey } from '../utils/credentials.js';
|
|
9
|
+
import { type ProviderMetadata as SdkProviderMetadata } from '@compilr-dev/sdk';
|
|
10
|
+
export { type OthersProviderModel, TOGETHER_MODELS, GROQ_MODELS, FIREWORKS_MODELS, PERPLEXITY_MODELS, OPENROUTER_MODELS, getModelsForOthersProvider, } from '@compilr-dev/sdk';
|
|
11
|
+
/**
|
|
12
|
+
* CLI-extended provider metadata — adds credentialKey for encrypted storage.
|
|
13
|
+
*/
|
|
14
|
+
export interface ProviderMetadata extends SdkProviderMetadata {
|
|
15
|
+
/** Credential key for API key storage (CLI-specific) */
|
|
16
|
+
credentialKey: ProviderKey;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* CLI-extended provider metadata registry.
|
|
20
|
+
* Merges SDK metadata with CLI credential keys.
|
|
21
|
+
*/
|
|
22
|
+
export declare const PROVIDER_METADATA: Record<ProviderType, ProviderMetadata>;
|
|
23
|
+
/**
|
|
24
|
+
* Get provider metadata by type (CLI-extended with credentialKey).
|
|
25
|
+
*/
|
|
26
|
+
export declare function getProviderMetadata(provider: ProviderType): ProviderMetadata;
|
|
27
|
+
/**
|
|
28
|
+
* Get all "Others" providers (for UI listing).
|
|
29
|
+
* Returns CLI-extended metadata with credentialKey.
|
|
30
|
+
*/
|
|
31
|
+
export declare function getOthersProviders(): ProviderMetadata[];
|
|
32
|
+
/**
|
|
33
|
+
* Check if a provider is an "Others" provider.
|
|
34
|
+
*/
|
|
35
|
+
export declare function isOthersProvider(provider: ProviderType): boolean;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provider Metadata — CLI extension of SDK provider data
|
|
3
|
+
*
|
|
4
|
+
* Re-exports SDK types and data, extending ProviderMetadata with
|
|
5
|
+
* CLI-specific `credentialKey` for the encrypted credential store.
|
|
6
|
+
*/
|
|
7
|
+
import { PROVIDER_METADATA as SDK_PROVIDER_METADATA, } from '@compilr-dev/sdk';
|
|
8
|
+
// Re-export SDK types that don't need CLI extensions
|
|
9
|
+
export { TOGETHER_MODELS, GROQ_MODELS, FIREWORKS_MODELS, PERPLEXITY_MODELS, OPENROUTER_MODELS, getModelsForOthersProvider, } from '@compilr-dev/sdk';
|
|
10
|
+
/**
|
|
11
|
+
* Credential key mapping: ProviderType → ProviderKey
|
|
12
|
+
*/
|
|
13
|
+
const CREDENTIAL_KEYS = {
|
|
14
|
+
claude: 'anthropic',
|
|
15
|
+
openai: 'openai',
|
|
16
|
+
gemini: 'google',
|
|
17
|
+
ollama: 'ollama',
|
|
18
|
+
together: 'together',
|
|
19
|
+
groq: 'groq',
|
|
20
|
+
fireworks: 'fireworks',
|
|
21
|
+
perplexity: 'perplexity',
|
|
22
|
+
openrouter: 'openrouter',
|
|
23
|
+
custom: 'openai', // Custom uses openai-compatible format by default
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* CLI-extended provider metadata registry.
|
|
27
|
+
* Merges SDK metadata with CLI credential keys.
|
|
28
|
+
*/
|
|
29
|
+
export const PROVIDER_METADATA = (() => {
|
|
30
|
+
const result = {};
|
|
31
|
+
for (const [key, sdkMeta] of Object.entries(SDK_PROVIDER_METADATA)) {
|
|
32
|
+
const providerType = key;
|
|
33
|
+
result[providerType] = {
|
|
34
|
+
...sdkMeta,
|
|
35
|
+
credentialKey: CREDENTIAL_KEYS[providerType],
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
return result;
|
|
39
|
+
})();
|
|
40
|
+
/**
|
|
41
|
+
* Get provider metadata by type (CLI-extended with credentialKey).
|
|
42
|
+
*/
|
|
43
|
+
export function getProviderMetadata(provider) {
|
|
44
|
+
return PROVIDER_METADATA[provider];
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Get all "Others" providers (for UI listing).
|
|
48
|
+
* Returns CLI-extended metadata with credentialKey.
|
|
49
|
+
*/
|
|
50
|
+
export function getOthersProviders() {
|
|
51
|
+
return Object.values(PROVIDER_METADATA).filter(p => p.category === 'others' && p.type !== 'custom');
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Check if a provider is an "Others" provider.
|
|
55
|
+
*/
|
|
56
|
+
export function isOthersProvider(provider) {
|
|
57
|
+
return PROVIDER_METADATA[provider].category === 'others';
|
|
58
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Activity Recording Module
|
|
3
|
+
*
|
|
4
|
+
* Provides a global function for tools to record team activity.
|
|
5
|
+
* The SharedContextManager is set by the REPL when a team is active.
|
|
6
|
+
*/
|
|
7
|
+
import type { SharedContextManager, TeamActivityType } from './shared-context.js';
|
|
8
|
+
/**
|
|
9
|
+
* Set the active SharedContextManager for activity recording
|
|
10
|
+
* Called by the REPL when a team is initialized
|
|
11
|
+
*/
|
|
12
|
+
export declare function setActiveSharedContext(ctx: SharedContextManager | null): void;
|
|
13
|
+
/**
|
|
14
|
+
* Get the active SharedContextManager
|
|
15
|
+
*/
|
|
16
|
+
export declare function getActiveSharedContext(): SharedContextManager | null;
|
|
17
|
+
/**
|
|
18
|
+
* Record team activity
|
|
19
|
+
* Safe to call even if no team is active (will be a no-op)
|
|
20
|
+
*/
|
|
21
|
+
export declare function recordTeamActivity(agentId: string, action: TeamActivityType, summary: string): void;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Activity Recording Module
|
|
3
|
+
*
|
|
4
|
+
* Provides a global function for tools to record team activity.
|
|
5
|
+
* The SharedContextManager is set by the REPL when a team is active.
|
|
6
|
+
*/
|
|
7
|
+
// Module-level reference to the active SharedContextManager
|
|
8
|
+
let activeSharedContext = null;
|
|
9
|
+
/**
|
|
10
|
+
* Set the active SharedContextManager for activity recording
|
|
11
|
+
* Called by the REPL when a team is initialized
|
|
12
|
+
*/
|
|
13
|
+
export function setActiveSharedContext(ctx) {
|
|
14
|
+
activeSharedContext = ctx;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Get the active SharedContextManager
|
|
18
|
+
*/
|
|
19
|
+
export function getActiveSharedContext() {
|
|
20
|
+
return activeSharedContext;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Record team activity
|
|
24
|
+
* Safe to call even if no team is active (will be a no-op)
|
|
25
|
+
*/
|
|
26
|
+
export function recordTeamActivity(agentId, action, summary) {
|
|
27
|
+
if (activeSharedContext) {
|
|
28
|
+
activeSharedContext.recordActivity({
|
|
29
|
+
agentId,
|
|
30
|
+
action,
|
|
31
|
+
summary,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Selection Helpers
|
|
3
|
+
*
|
|
4
|
+
* Provides functions for selecting the best agent for a task:
|
|
5
|
+
* - findAgentForRole: Find an agent by role (LRU selection if multiple)
|
|
6
|
+
* - findAgentById: Find an agent by ID
|
|
7
|
+
* - getAvailableSpecialists: Get all non-default agents
|
|
8
|
+
*
|
|
9
|
+
* Uses Least Recently Used (LRU) selection when multiple agents have the same role.
|
|
10
|
+
* This spreads work across agents and prepares for future background execution
|
|
11
|
+
* where we'll prefer idle agents.
|
|
12
|
+
*/
|
|
13
|
+
import type { AgentTeam } from './team.js';
|
|
14
|
+
import type { TeamAgent } from './team-agent.js';
|
|
15
|
+
import type { AgentRole } from './types.js';
|
|
16
|
+
/**
|
|
17
|
+
* Find the best agent for a given role.
|
|
18
|
+
* If multiple agents have the same role, selects the least recently used.
|
|
19
|
+
*
|
|
20
|
+
* @param team - The agent team
|
|
21
|
+
* @param role - The role to find (e.g., 'arch', 'dev', 'qa')
|
|
22
|
+
* @returns The best matching agent, or null if none found
|
|
23
|
+
*/
|
|
24
|
+
export declare function findAgentForRole(team: AgentTeam, role: AgentRole): TeamAgent | null;
|
|
25
|
+
/**
|
|
26
|
+
* Find an agent by ID.
|
|
27
|
+
*
|
|
28
|
+
* @param team - The agent team
|
|
29
|
+
* @param id - The agent ID (e.g., 'arch', 'dev-1', 'my-custom-agent')
|
|
30
|
+
* @returns The agent, or null if not found
|
|
31
|
+
*/
|
|
32
|
+
export declare function findAgentById(team: AgentTeam, id: string): TeamAgent | null;
|
|
33
|
+
/**
|
|
34
|
+
* Get all specialist agents (non-default agents).
|
|
35
|
+
* Useful for listing available delegation targets.
|
|
36
|
+
*
|
|
37
|
+
* @param team - The agent team
|
|
38
|
+
* @returns Array of specialist agents
|
|
39
|
+
*/
|
|
40
|
+
export declare function getAvailableSpecialists(team: AgentTeam): TeamAgent[];
|
|
41
|
+
/**
|
|
42
|
+
* Get a summary of available specialists for the coordinator.
|
|
43
|
+
* Returns a formatted string listing specialists by role.
|
|
44
|
+
*
|
|
45
|
+
* @param team - The agent team
|
|
46
|
+
* @returns Formatted string of available specialists
|
|
47
|
+
*/
|
|
48
|
+
export declare function getSpecialistsSummary(team: AgentTeam): string;
|
|
49
|
+
/**
|
|
50
|
+
* Check if the team has any specialists available for delegation.
|
|
51
|
+
*
|
|
52
|
+
* @param team - The agent team
|
|
53
|
+
* @returns True if there are specialist agents
|
|
54
|
+
*/
|
|
55
|
+
export declare function hasSpecialists(team: AgentTeam): boolean;
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Selection Helpers
|
|
3
|
+
*
|
|
4
|
+
* Provides functions for selecting the best agent for a task:
|
|
5
|
+
* - findAgentForRole: Find an agent by role (LRU selection if multiple)
|
|
6
|
+
* - findAgentById: Find an agent by ID
|
|
7
|
+
* - getAvailableSpecialists: Get all non-default agents
|
|
8
|
+
*
|
|
9
|
+
* Uses Least Recently Used (LRU) selection when multiple agents have the same role.
|
|
10
|
+
* This spreads work across agents and prepares for future background execution
|
|
11
|
+
* where we'll prefer idle agents.
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Find the best agent for a given role.
|
|
15
|
+
* If multiple agents have the same role, selects the least recently used.
|
|
16
|
+
*
|
|
17
|
+
* @param team - The agent team
|
|
18
|
+
* @param role - The role to find (e.g., 'arch', 'dev', 'qa')
|
|
19
|
+
* @returns The best matching agent, or null if none found
|
|
20
|
+
*/
|
|
21
|
+
export function findAgentForRole(team, role) {
|
|
22
|
+
const agents = team.getAll();
|
|
23
|
+
// Filter to agents with matching role
|
|
24
|
+
const candidates = agents.filter((agent) => agent.role === role);
|
|
25
|
+
if (candidates.length === 0) {
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
if (candidates.length === 1) {
|
|
29
|
+
return candidates[0];
|
|
30
|
+
}
|
|
31
|
+
// Multiple candidates: select Least Recently Used (LRU)
|
|
32
|
+
// Sort by lastActivity ascending (oldest first)
|
|
33
|
+
candidates.sort((a, b) => a.lastActivity.getTime() - b.lastActivity.getTime());
|
|
34
|
+
return candidates[0];
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Find an agent by ID.
|
|
38
|
+
*
|
|
39
|
+
* @param team - The agent team
|
|
40
|
+
* @param id - The agent ID (e.g., 'arch', 'dev-1', 'my-custom-agent')
|
|
41
|
+
* @returns The agent, or null if not found
|
|
42
|
+
*/
|
|
43
|
+
export function findAgentById(team, id) {
|
|
44
|
+
return team.get(id) ?? null;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Get all specialist agents (non-default agents).
|
|
48
|
+
* Useful for listing available delegation targets.
|
|
49
|
+
*
|
|
50
|
+
* @param team - The agent team
|
|
51
|
+
* @returns Array of specialist agents
|
|
52
|
+
*/
|
|
53
|
+
export function getAvailableSpecialists(team) {
|
|
54
|
+
return team.getAll().filter((agent) => agent.id !== 'default');
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Get a summary of available specialists for the coordinator.
|
|
58
|
+
* Returns a formatted string listing specialists by role.
|
|
59
|
+
*
|
|
60
|
+
* @param team - The agent team
|
|
61
|
+
* @returns Formatted string of available specialists
|
|
62
|
+
*/
|
|
63
|
+
export function getSpecialistsSummary(team) {
|
|
64
|
+
const specialists = getAvailableSpecialists(team);
|
|
65
|
+
if (specialists.length === 0) {
|
|
66
|
+
return 'No specialist agents available. Add agents via /team.';
|
|
67
|
+
}
|
|
68
|
+
// Group by role
|
|
69
|
+
const byRole = new Map();
|
|
70
|
+
for (const agent of specialists) {
|
|
71
|
+
const list = byRole.get(agent.role) ?? [];
|
|
72
|
+
list.push(agent);
|
|
73
|
+
byRole.set(agent.role, list);
|
|
74
|
+
}
|
|
75
|
+
const lines = [];
|
|
76
|
+
for (const [role, agents] of byRole) {
|
|
77
|
+
const agentList = agents.map((a) => `$${a.id}`).join(', ');
|
|
78
|
+
lines.push(`- ${role}: ${agentList}`);
|
|
79
|
+
}
|
|
80
|
+
return lines.join('\n');
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Check if the team has any specialists available for delegation.
|
|
84
|
+
*
|
|
85
|
+
* @param team - The agent team
|
|
86
|
+
* @returns True if there are specialist agents
|
|
87
|
+
*/
|
|
88
|
+
export function hasSpecialists(team) {
|
|
89
|
+
return getAvailableSpecialists(team).length > 0;
|
|
90
|
+
}
|