@pellux/goodvibes-tui 0.18.4
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/.goodvibes/GOODVIBES.md +35 -0
- package/.goodvibes/agents/reviewer.md +89 -0
- package/.goodvibes/skills/add-provider/SKILL.md +199 -0
- package/CHANGELOG.md +1681 -0
- package/README.md +1607 -0
- package/bin/goodvibes +66 -0
- package/docs/README.md +32 -0
- package/docs/foundation-artifacts/README.md +16 -0
- package/docs/foundation-artifacts/knowledge-graphql.graphql +397 -0
- package/docs/foundation-artifacts/knowledge-store.sql +183 -0
- package/docs/foundation-artifacts/operator-contract.json +55157 -0
- package/docs/foundation-artifacts/peer-contract.json +2384 -0
- package/package.json +114 -0
- package/scripts/postinstall.mjs +203 -0
- package/src/acp/connection.ts +447 -0
- package/src/acp/index.ts +7 -0
- package/src/acp/manager.ts +133 -0
- package/src/adapters/bluebubbles/index.ts +127 -0
- package/src/adapters/discord/index.ts +297 -0
- package/src/adapters/github/index.ts +73 -0
- package/src/adapters/google-chat/index.ts +119 -0
- package/src/adapters/imessage/index.ts +92 -0
- package/src/adapters/index.ts +15 -0
- package/src/adapters/matrix/index.ts +116 -0
- package/src/adapters/mattermost/index.ts +151 -0
- package/src/adapters/msteams/index.ts +180 -0
- package/src/adapters/ntfy/index.ts +118 -0
- package/src/adapters/signal/index.ts +92 -0
- package/src/adapters/slack/index.ts +323 -0
- package/src/adapters/telegram/index.ts +160 -0
- package/src/adapters/types.ts +97 -0
- package/src/adapters/webhook/index.ts +178 -0
- package/src/adapters/whatsapp/index.ts +135 -0
- package/src/agents/message-bus-core.ts +312 -0
- package/src/agents/message-bus.ts +2 -0
- package/src/agents/orchestrator-prompts.ts +351 -0
- package/src/agents/orchestrator-runner.ts +668 -0
- package/src/agents/orchestrator.ts +437 -0
- package/src/agents/session.ts +108 -0
- package/src/agents/worktree.ts +153 -0
- package/src/agents/wrfc-config.ts +47 -0
- package/src/agents/wrfc-controller.ts +747 -0
- package/src/agents/wrfc-gate-runtime.ts +75 -0
- package/src/agents/wrfc-reporting.ts +284 -0
- package/src/agents/wrfc-runtime-events.ts +150 -0
- package/src/agents/wrfc-types.ts +67 -0
- package/src/automation/delivery-manager.ts +368 -0
- package/src/automation/index.ts +72 -0
- package/src/automation/manager-runtime-delivery.ts +139 -0
- package/src/automation/manager-runtime-events.ts +131 -0
- package/src/automation/manager-runtime-execution.ts +511 -0
- package/src/automation/manager-runtime-helpers.ts +433 -0
- package/src/automation/manager-runtime-job-mutations.ts +175 -0
- package/src/automation/manager-runtime-reconcile.ts +148 -0
- package/src/automation/manager-runtime-scheduling.ts +189 -0
- package/src/automation/manager-runtime-sync.ts +54 -0
- package/src/automation/manager-runtime.ts +721 -0
- package/src/automation/manager.ts +10 -0
- package/src/automation/service.ts +242 -0
- package/src/channels/builtin/account-actions.ts +490 -0
- package/src/channels/builtin/accounts.ts +433 -0
- package/src/channels/builtin/contracts.ts +405 -0
- package/src/channels/builtin/plugins.ts +308 -0
- package/src/channels/builtin/rendering.ts +174 -0
- package/src/channels/builtin/setup-schema.ts +504 -0
- package/src/channels/builtin/shared.ts +96 -0
- package/src/channels/builtin/surfaces.ts +57 -0
- package/src/channels/builtin/targets.ts +693 -0
- package/src/channels/builtin-runtime.ts +443 -0
- package/src/channels/delivery/shared.ts +199 -0
- package/src/channels/delivery/strategies-bridge.ts +246 -0
- package/src/channels/delivery/strategies-core.ts +299 -0
- package/src/channels/delivery/strategies-enterprise.ts +178 -0
- package/src/channels/delivery/types.ts +59 -0
- package/src/channels/delivery-router.ts +127 -0
- package/src/channels/index.ts +77 -0
- package/src/channels/plugin-registry.ts +551 -0
- package/src/channels/provider-runtime.ts +330 -0
- package/src/channels/reply-pipeline.ts +522 -0
- package/src/channels/route-manager.ts +340 -0
- package/src/channels/surface-registry.ts +186 -0
- package/src/config/helper-model.ts +233 -0
- package/src/config/index.ts +193 -0
- package/src/config/manager.ts +404 -0
- package/src/config/secrets.ts +547 -0
- package/src/config/service-registry.ts +329 -0
- package/src/config/subscription-auth.ts +31 -0
- package/src/config/subscription-providers.ts +127 -0
- package/src/config/tool-llm.ts +110 -0
- package/src/control-plane/approval-broker.ts +351 -0
- package/src/control-plane/gateway.ts +713 -0
- package/src/control-plane/index.ts +54 -0
- package/src/control-plane/media-contract-schemas.ts +208 -0
- package/src/control-plane/method-catalog-admin.ts +136 -0
- package/src/control-plane/method-catalog-channels.ts +591 -0
- package/src/control-plane/method-catalog-control-automation.ts +475 -0
- package/src/control-plane/method-catalog-control-core.ts +594 -0
- package/src/control-plane/method-catalog-control.ts +8 -0
- package/src/control-plane/method-catalog-events.ts +74 -0
- package/src/control-plane/method-catalog-knowledge.ts +531 -0
- package/src/control-plane/method-catalog-media.ts +279 -0
- package/src/control-plane/method-catalog-runtime.ts +304 -0
- package/src/control-plane/method-catalog-shared.ts +223 -0
- package/src/control-plane/method-catalog.ts +242 -0
- package/src/control-plane/operator-contract-schemas-admin.ts +639 -0
- package/src/control-plane/operator-contract-schemas-channels.ts +375 -0
- package/src/control-plane/operator-contract-schemas-control.ts +226 -0
- package/src/control-plane/operator-contract-schemas-domains.ts +4 -0
- package/src/control-plane/operator-contract-schemas-knowledge.ts +582 -0
- package/src/control-plane/operator-contract-schemas-media.ts +297 -0
- package/src/control-plane/operator-contract-schemas-permissions.ts +100 -0
- package/src/control-plane/operator-contract-schemas-remote.ts +38 -0
- package/src/control-plane/operator-contract-schemas-runtime.ts +563 -0
- package/src/control-plane/operator-contract-schemas-shared.ts +85 -0
- package/src/control-plane/operator-contract-schemas-telemetry.ts +349 -0
- package/src/control-plane/operator-contract-schemas.ts +6 -0
- package/src/control-plane/operator-contract.ts +163 -0
- package/src/control-plane/session-broker.ts +780 -0
- package/src/core/compaction-sections.ts +492 -0
- package/src/core/compaction-types.ts +147 -0
- package/src/core/composer-state.ts +59 -0
- package/src/core/context-compaction.ts +542 -0
- package/src/core/conversation-compaction.ts +68 -0
- package/src/core/conversation-diff.ts +55 -0
- package/src/core/conversation-rendering.ts +343 -0
- package/src/core/conversation-utils.ts +72 -0
- package/src/core/conversation.ts +775 -0
- package/src/core/event-replay.ts +287 -0
- package/src/core/orchestrator-context-runtime.ts +407 -0
- package/src/core/orchestrator-follow-up-runtime.ts +134 -0
- package/src/core/orchestrator-runtime.ts +132 -0
- package/src/core/orchestrator-tool-runtime.ts +468 -0
- package/src/core/orchestrator-turn-helpers.ts +355 -0
- package/src/core/orchestrator-turn-loop.ts +443 -0
- package/src/core/orchestrator.ts +733 -0
- package/src/core/plan-command-handler.ts +169 -0
- package/src/core/system-message-router.ts +210 -0
- package/src/core/transcript-events/classify.ts +95 -0
- package/src/core/transcript-events/index.ts +15 -0
- package/src/daemon/cli.ts +88 -0
- package/src/daemon/control-plane.ts +522 -0
- package/src/daemon/facade-composition.ts +397 -0
- package/src/daemon/facade.ts +638 -0
- package/src/daemon/helpers.ts +74 -0
- package/src/daemon/http/router-route-contexts.ts +370 -0
- package/src/daemon/http/router.ts +531 -0
- package/src/daemon/http-listener.ts +301 -0
- package/src/daemon/index.ts +3 -0
- package/src/daemon/server.ts +1 -0
- package/src/daemon/service-manager.ts +413 -0
- package/src/daemon/surface-actions.ts +183 -0
- package/src/daemon/surface-delivery.ts +530 -0
- package/src/daemon/surface-policy.ts +60 -0
- package/src/daemon/transport-events.ts +110 -0
- package/src/daemon/types.ts +191 -0
- package/src/export/markdown.ts +213 -0
- package/src/export/session-export.ts +633 -0
- package/src/git/index.ts +1 -0
- package/src/git/service.ts +414 -0
- package/src/hooks/chain-engine.ts +414 -0
- package/src/hooks/dispatcher.ts +414 -0
- package/src/hooks/hook-api.ts +170 -0
- package/src/hooks/index.ts +48 -0
- package/src/hooks/runners/agent.ts +93 -0
- package/src/hooks/runners/prompt.ts +69 -0
- package/src/hooks/workbench.ts +360 -0
- package/src/input/autocomplete.ts +96 -0
- package/src/input/bookmark-modal.ts +115 -0
- package/src/input/command-registry.ts +300 -0
- package/src/input/commands/branch-runtime.ts +72 -0
- package/src/input/commands/config.ts +515 -0
- package/src/input/commands/control-room-runtime.ts +255 -0
- package/src/input/commands/conversation-runtime.ts +207 -0
- package/src/input/commands/diff-runtime.ts +161 -0
- package/src/input/commands/discovery-runtime.ts +45 -0
- package/src/input/commands/eval.ts +204 -0
- package/src/input/commands/experience-runtime.ts +278 -0
- package/src/input/commands/git-runtime.ts +81 -0
- package/src/input/commands/guidance-runtime.ts +101 -0
- package/src/input/commands/health-runtime.ts +434 -0
- package/src/input/commands/hooks-runtime.ts +148 -0
- package/src/input/commands/incident-runtime.ts +95 -0
- package/src/input/commands/integration-runtime.ts +394 -0
- package/src/input/commands/intelligence-runtime.ts +223 -0
- package/src/input/commands/knowledge.ts +368 -0
- package/src/input/commands/local-auth-runtime.ts +105 -0
- package/src/input/commands/local-provider-runtime.ts +170 -0
- package/src/input/commands/local-runtime.ts +458 -0
- package/src/input/commands/local-setup-review.ts +192 -0
- package/src/input/commands/local-setup-transfer.ts +134 -0
- package/src/input/commands/local-setup.ts +292 -0
- package/src/input/commands/managed-runtime.ts +208 -0
- package/src/input/commands/marketplace-runtime.ts +290 -0
- package/src/input/commands/mcp-runtime.ts +202 -0
- package/src/input/commands/memory-product-runtime.ts +111 -0
- package/src/input/commands/memory.ts +151 -0
- package/src/input/commands/notify-runtime.ts +83 -0
- package/src/input/commands/operator-panel-runtime.ts +141 -0
- package/src/input/commands/operator-runtime.ts +392 -0
- package/src/input/commands/permissions-runtime.ts +104 -0
- package/src/input/commands/planning-runtime.ts +97 -0
- package/src/input/commands/platform-access-runtime.ts +422 -0
- package/src/input/commands/platform-runtime.ts +6 -0
- package/src/input/commands/platform-sandbox-qemu.ts +137 -0
- package/src/input/commands/platform-sandbox-runtime.ts +406 -0
- package/src/input/commands/platform-sandbox-session.ts +128 -0
- package/src/input/commands/platform-services-runtime.ts +246 -0
- package/src/input/commands/policy-dispatch.ts +339 -0
- package/src/input/commands/policy.ts +17 -0
- package/src/input/commands/product-runtime.ts +351 -0
- package/src/input/commands/profile-sync-runtime.ts +99 -0
- package/src/input/commands/provider-accounts-runtime.ts +113 -0
- package/src/input/commands/provider.ts +363 -0
- package/src/input/commands/quit-shared.ts +162 -0
- package/src/input/commands/recall-bundle.ts +132 -0
- package/src/input/commands/recall-capture.ts +152 -0
- package/src/input/commands/recall-query.ts +229 -0
- package/src/input/commands/recall-review.ts +98 -0
- package/src/input/commands/recall-shared.ts +22 -0
- package/src/input/commands/remote-runtime-pool.ts +106 -0
- package/src/input/commands/remote-runtime-setup.ts +199 -0
- package/src/input/commands/remote-runtime.ts +531 -0
- package/src/input/commands/replay-runtime.ts +18 -0
- package/src/input/commands/runtime-services.ts +279 -0
- package/src/input/commands/schedule-runtime.ts +332 -0
- package/src/input/commands/services-runtime.ts +207 -0
- package/src/input/commands/session-content.ts +408 -0
- package/src/input/commands/session-workflow.ts +464 -0
- package/src/input/commands/session.ts +376 -0
- package/src/input/commands/settings-sync-runtime.ts +173 -0
- package/src/input/commands/share-runtime.ts +114 -0
- package/src/input/commands/shell-core.ts +320 -0
- package/src/input/commands/skills-runtime.ts +221 -0
- package/src/input/commands/subscription-runtime.ts +434 -0
- package/src/input/commands/tasks-runtime.ts +230 -0
- package/src/input/commands/teamwork-runtime.ts +374 -0
- package/src/input/commands/teleport-runtime.ts +57 -0
- package/src/input/commands/worktree-runtime.ts +137 -0
- package/src/input/commands.ts +127 -0
- package/src/input/file-picker.ts +192 -0
- package/src/input/handler-command-route.ts +106 -0
- package/src/input/handler-content-actions.ts +465 -0
- package/src/input/handler-feed-routes.ts +541 -0
- package/src/input/handler-feed.ts +361 -0
- package/src/input/handler-modal-routes.ts +335 -0
- package/src/input/handler-modal-stack.ts +237 -0
- package/src/input/handler-modal-token-routes.ts +272 -0
- package/src/input/handler-picker-routes.ts +416 -0
- package/src/input/handler-prompt-buffer.ts +320 -0
- package/src/input/handler-shortcuts.ts +195 -0
- package/src/input/handler-ui-state.ts +294 -0
- package/src/input/handler.ts +798 -0
- package/src/input/input-history.ts +267 -0
- package/src/input/keybindings.ts +256 -0
- package/src/input/model-picker.ts +730 -0
- package/src/input/panel-integration-actions.ts +77 -0
- package/src/input/profile-picker-modal.ts +222 -0
- package/src/input/search.ts +100 -0
- package/src/input/selection-modal.ts +163 -0
- package/src/input/selection.ts +135 -0
- package/src/input/session-picker-modal.ts +136 -0
- package/src/input/settings-modal.ts +718 -0
- package/src/input/submission-intent.ts +18 -0
- package/src/input/submission-router.ts +64 -0
- package/src/integrations/index.ts +42 -0
- package/src/integrations/notifier.ts +206 -0
- package/src/integrations/webhooks.ts +177 -0
- package/src/knowledge/consolidation.ts +346 -0
- package/src/knowledge/graphql.ts +324 -0
- package/src/knowledge/index.ts +60 -0
- package/src/knowledge/ingest-compile.ts +386 -0
- package/src/knowledge/ingest-context.ts +18 -0
- package/src/knowledge/ingest-inputs.ts +387 -0
- package/src/knowledge/ingest.ts +20 -0
- package/src/knowledge/internal.ts +257 -0
- package/src/knowledge/knowledge-api.ts +432 -0
- package/src/knowledge/lint.ts +121 -0
- package/src/knowledge/memory-sync.ts +62 -0
- package/src/knowledge/packet.ts +370 -0
- package/src/knowledge/scheduling.ts +283 -0
- package/src/knowledge/service.ts +715 -0
- package/src/main.ts +798 -0
- package/src/mcp/client.ts +383 -0
- package/src/mcp/index.ts +12 -0
- package/src/mcp/mcp-api.ts +90 -0
- package/src/mcp/registry.ts +508 -0
- package/src/media/builtin-image-understanding.ts +303 -0
- package/src/media/builtin-providers.ts +26 -0
- package/src/media/index.ts +18 -0
- package/src/multimodal/index.ts +13 -0
- package/src/multimodal/service.ts +492 -0
- package/src/panels/agent-inspector-panel.ts +515 -0
- package/src/panels/agent-inspector-shared.ts +94 -0
- package/src/panels/agent-logs-panel.ts +539 -0
- package/src/panels/agent-logs-shared.ts +129 -0
- package/src/panels/approval-panel.ts +169 -0
- package/src/panels/automation-control-panel.ts +253 -0
- package/src/panels/base-panel.ts +72 -0
- package/src/panels/builtin/agent.ts +88 -0
- package/src/panels/builtin/development.ts +111 -0
- package/src/panels/builtin/knowledge.ts +26 -0
- package/src/panels/builtin/operations.ts +385 -0
- package/src/panels/builtin/session.ts +61 -0
- package/src/panels/builtin/shared.ts +240 -0
- package/src/panels/builtin-panels.ts +23 -0
- package/src/panels/cockpit-panel.ts +183 -0
- package/src/panels/communication-panel.ts +191 -0
- package/src/panels/context-visualizer-panel.ts +199 -0
- package/src/panels/control-plane-panel.ts +266 -0
- package/src/panels/cost-tracker-panel.ts +444 -0
- package/src/panels/debug-panel.ts +432 -0
- package/src/panels/diff-panel.ts +518 -0
- package/src/panels/docs-panel.ts +283 -0
- package/src/panels/eval-panel.ts +399 -0
- package/src/panels/file-explorer-panel.ts +556 -0
- package/src/panels/file-preview-panel.ts +412 -0
- package/src/panels/forensics-panel.ts +364 -0
- package/src/panels/git-panel.ts +630 -0
- package/src/panels/hooks-panel.ts +274 -0
- package/src/panels/incident-review-panel.ts +247 -0
- package/src/panels/index.ts +48 -0
- package/src/panels/intelligence-panel.ts +176 -0
- package/src/panels/knowledge-panel.ts +328 -0
- package/src/panels/local-auth-panel.ts +146 -0
- package/src/panels/marketplace-panel.ts +223 -0
- package/src/panels/mcp-panel.ts +260 -0
- package/src/panels/memory-panel.ts +293 -0
- package/src/panels/ops-control-panel.ts +184 -0
- package/src/panels/ops-strategy-panel.ts +235 -0
- package/src/panels/orchestration-panel.ts +254 -0
- package/src/panels/panel-list-panel.ts +508 -0
- package/src/panels/panel-manager.ts +538 -0
- package/src/panels/panel-picker.ts +106 -0
- package/src/panels/plan-dashboard-panel.ts +272 -0
- package/src/panels/plugins-panel.ts +201 -0
- package/src/panels/policy-panel.ts +308 -0
- package/src/panels/polish.ts +668 -0
- package/src/panels/provider-account-snapshot.ts +259 -0
- package/src/panels/provider-accounts-panel.ts +221 -0
- package/src/panels/provider-health-domains.ts +211 -0
- package/src/panels/provider-health-panel.ts +725 -0
- package/src/panels/provider-health-tracker.ts +115 -0
- package/src/panels/provider-stats-panel.ts +366 -0
- package/src/panels/remote-panel.ts +449 -0
- package/src/panels/routes-panel.ts +228 -0
- package/src/panels/sandbox-panel.ts +289 -0
- package/src/panels/schedule-panel.ts +344 -0
- package/src/panels/search-focus.ts +32 -0
- package/src/panels/security-panel.ts +329 -0
- package/src/panels/services-panel.ts +271 -0
- package/src/panels/session-browser-panel.ts +399 -0
- package/src/panels/session-maintenance.ts +125 -0
- package/src/panels/settings-sync-panel.ts +164 -0
- package/src/panels/skills-panel.ts +475 -0
- package/src/panels/subscription-panel.ts +273 -0
- package/src/panels/symbol-outline-panel.ts +486 -0
- package/src/panels/system-messages-panel.ts +224 -0
- package/src/panels/tasks-panel.ts +448 -0
- package/src/panels/thinking-panel.ts +304 -0
- package/src/panels/token-budget-panel.ts +469 -0
- package/src/panels/tool-inspector-panel.ts +434 -0
- package/src/panels/types.ts +44 -0
- package/src/panels/watchers-panel.ts +241 -0
- package/src/panels/welcome-panel.ts +64 -0
- package/src/panels/worktree-panel.ts +180 -0
- package/src/panels/wrfc-panel.ts +480 -0
- package/src/permissions/briefs/build.ts +88 -0
- package/src/permissions/manager.ts +356 -0
- package/src/permissions/prompt.ts +184 -0
- package/src/plugins/api.ts +383 -0
- package/src/plugins/loader.ts +304 -0
- package/src/plugins/manager.ts +481 -0
- package/src/profiles/shape.ts +58 -0
- package/src/providers/amazon-bedrock-mantle.ts +50 -0
- package/src/providers/amazon-bedrock.ts +61 -0
- package/src/providers/anthropic-compat.ts +373 -0
- package/src/providers/anthropic-sdk-provider.ts +230 -0
- package/src/providers/anthropic-vertex.ts +59 -0
- package/src/providers/anthropic.ts +469 -0
- package/src/providers/auto-register.ts +417 -0
- package/src/providers/builtin-catalog.ts +326 -0
- package/src/providers/builtin-registry.ts +575 -0
- package/src/providers/cache-planner.ts +258 -0
- package/src/providers/capabilities.ts +601 -0
- package/src/providers/custom-loader.ts +425 -0
- package/src/providers/discovered-compat.ts +18 -0
- package/src/providers/discovered-factory.ts +61 -0
- package/src/providers/discovered-traits.ts +138 -0
- package/src/providers/gemini.ts +462 -0
- package/src/providers/github-copilot.ts +254 -0
- package/src/providers/index.ts +47 -0
- package/src/providers/interface.ts +185 -0
- package/src/providers/llama-cpp.ts +402 -0
- package/src/providers/lm-studio-helpers.ts +367 -0
- package/src/providers/lm-studio.ts +484 -0
- package/src/providers/model-catalog-cache.ts +221 -0
- package/src/providers/model-catalog-notifications.ts +97 -0
- package/src/providers/model-catalog-synthetic.ts +202 -0
- package/src/providers/model-catalog.ts +211 -0
- package/src/providers/model-limits.ts +280 -0
- package/src/providers/ollama.ts +469 -0
- package/src/providers/openai-codex.ts +472 -0
- package/src/providers/openai-compat.ts +615 -0
- package/src/providers/openai.ts +231 -0
- package/src/providers/optimizer.ts +381 -0
- package/src/providers/provider-api.ts +553 -0
- package/src/providers/registry-helpers.ts +34 -0
- package/src/providers/registry-models.ts +77 -0
- package/src/providers/registry-types.ts +67 -0
- package/src/providers/registry.ts +729 -0
- package/src/providers/runtime-metadata.ts +149 -0
- package/src/providers/runtime-snapshot.ts +130 -0
- package/src/providers/synthetic.ts +561 -0
- package/src/providers/tier-prompts.ts +84 -0
- package/src/providers/tool-formats.ts +414 -0
- package/src/renderer/agent-detail-modal.ts +285 -0
- package/src/renderer/autocomplete-overlay.ts +154 -0
- package/src/renderer/block-actions.ts +76 -0
- package/src/renderer/bookmark-modal.ts +101 -0
- package/src/renderer/bottom-bar.ts +58 -0
- package/src/renderer/buffer.ts +34 -0
- package/src/renderer/code-block.ts +373 -0
- package/src/renderer/compositor.ts +261 -0
- package/src/renderer/context-inspector.ts +219 -0
- package/src/renderer/conversation-layout.ts +67 -0
- package/src/renderer/conversation-overlays.ts +123 -0
- package/src/renderer/conversation-surface.ts +260 -0
- package/src/renderer/diff-view.ts +132 -0
- package/src/renderer/diff.ts +122 -0
- package/src/renderer/file-picker-overlay.ts +101 -0
- package/src/renderer/file-tree.ts +153 -0
- package/src/renderer/git-status.ts +89 -0
- package/src/renderer/help-overlay.ts +247 -0
- package/src/renderer/history-search-overlay.ts +73 -0
- package/src/renderer/layout-engine.ts +97 -0
- package/src/renderer/layout.ts +32 -0
- package/src/renderer/live-tail-modal.ts +156 -0
- package/src/renderer/markdown.ts +777 -0
- package/src/renderer/modal-factory.ts +467 -0
- package/src/renderer/modal-utils.ts +24 -0
- package/src/renderer/model-picker-overlay.ts +396 -0
- package/src/renderer/overlay-box.ts +165 -0
- package/src/renderer/overlay-viewport.ts +104 -0
- package/src/renderer/panel-composite.ts +80 -0
- package/src/renderer/panel-picker-overlay.ts +202 -0
- package/src/renderer/panel-tab-bar.ts +69 -0
- package/src/renderer/panel-workspace-bar.ts +38 -0
- package/src/renderer/process-indicator.ts +96 -0
- package/src/renderer/process-modal.ts +295 -0
- package/src/renderer/profile-picker-modal.ts +129 -0
- package/src/renderer/progress.ts +98 -0
- package/src/renderer/search-overlay.ts +54 -0
- package/src/renderer/selection-modal-overlay.ts +214 -0
- package/src/renderer/semantic-diff.ts +369 -0
- package/src/renderer/session-picker-modal.ts +127 -0
- package/src/renderer/settings-modal.ts +701 -0
- package/src/renderer/shell-surface.ts +88 -0
- package/src/renderer/surface-layout.ts +101 -0
- package/src/renderer/syntax-highlighter.ts +542 -0
- package/src/renderer/system-message.ts +83 -0
- package/src/renderer/tab-strip.ts +108 -0
- package/src/renderer/text-layout.ts +31 -0
- package/src/renderer/thinking.ts +17 -0
- package/src/renderer/tool-call.ts +233 -0
- package/src/renderer/ui-factory.ts +524 -0
- package/src/renderer/ui-primitives.ts +96 -0
- package/src/runtime/auth/inspection.ts +125 -0
- package/src/runtime/bootstrap-background.ts +147 -0
- package/src/runtime/bootstrap-command-context.ts +265 -0
- package/src/runtime/bootstrap-command-parts.ts +357 -0
- package/src/runtime/bootstrap-core.ts +375 -0
- package/src/runtime/bootstrap-helpers.ts +88 -0
- package/src/runtime/bootstrap-hook-bridge.ts +271 -0
- package/src/runtime/bootstrap-runtime-events.ts +254 -0
- package/src/runtime/bootstrap-services.ts +197 -0
- package/src/runtime/bootstrap-shell.ts +262 -0
- package/src/runtime/bootstrap.ts +488 -0
- package/src/runtime/compaction/index.ts +90 -0
- package/src/runtime/compaction/lifecycle.ts +167 -0
- package/src/runtime/compaction/manager.ts +474 -0
- package/src/runtime/compaction/quality-score.ts +279 -0
- package/src/runtime/compaction/resume-repair.ts +183 -0
- package/src/runtime/compaction/strategies/autocompact.ts +65 -0
- package/src/runtime/compaction/strategies/boundary-commit.ts +106 -0
- package/src/runtime/compaction/strategies/collapse.ts +90 -0
- package/src/runtime/compaction/strategies/index.ts +23 -0
- package/src/runtime/compaction/strategies/microcompact.ts +74 -0
- package/src/runtime/compaction/strategies/reactive.ts +89 -0
- package/src/runtime/compaction/types.ts +221 -0
- package/src/runtime/context.ts +158 -0
- package/src/runtime/diagnostics/actions.ts +776 -0
- package/src/runtime/diagnostics/index.ts +99 -0
- package/src/runtime/diagnostics/panels/agents.ts +252 -0
- package/src/runtime/diagnostics/panels/events.ts +188 -0
- package/src/runtime/diagnostics/panels/health.ts +242 -0
- package/src/runtime/diagnostics/panels/index.ts +24 -0
- package/src/runtime/diagnostics/panels/ops.ts +156 -0
- package/src/runtime/diagnostics/panels/policy.ts +176 -0
- package/src/runtime/diagnostics/panels/tasks.ts +251 -0
- package/src/runtime/diagnostics/panels/tool-calls.ts +267 -0
- package/src/runtime/diagnostics/provider.ts +262 -0
- package/src/runtime/ecosystem/catalog.ts +606 -0
- package/src/runtime/ecosystem/recommendations.ts +117 -0
- package/src/runtime/emitters/agents.ts +96 -0
- package/src/runtime/emitters/automation.ts +112 -0
- package/src/runtime/emitters/communication.ts +53 -0
- package/src/runtime/emitters/compaction.ts +161 -0
- package/src/runtime/emitters/control-plane.ts +65 -0
- package/src/runtime/emitters/deliveries.ts +65 -0
- package/src/runtime/emitters/forensics.ts +17 -0
- package/src/runtime/emitters/index.ts +59 -0
- package/src/runtime/emitters/knowledge.ts +129 -0
- package/src/runtime/emitters/mcp.ts +95 -0
- package/src/runtime/emitters/ops.ts +163 -0
- package/src/runtime/emitters/orchestration.ts +87 -0
- package/src/runtime/emitters/permissions.ts +98 -0
- package/src/runtime/emitters/planner.ts +23 -0
- package/src/runtime/emitters/plugins.ts +78 -0
- package/src/runtime/emitters/providers.ts +30 -0
- package/src/runtime/emitters/routes.ts +57 -0
- package/src/runtime/emitters/security.ts +53 -0
- package/src/runtime/emitters/session.ts +93 -0
- package/src/runtime/emitters/surfaces.ts +57 -0
- package/src/runtime/emitters/tasks.ts +69 -0
- package/src/runtime/emitters/tools.ts +140 -0
- package/src/runtime/emitters/transport.ts +78 -0
- package/src/runtime/emitters/turn.ts +155 -0
- package/src/runtime/emitters/ui.ts +57 -0
- package/src/runtime/emitters/watchers.ts +57 -0
- package/src/runtime/emitters/workflows.ts +79 -0
- package/src/runtime/eval/index.ts +48 -0
- package/src/runtime/eval/runner.ts +163 -0
- package/src/runtime/eval/suites.ts +264 -0
- package/src/runtime/events/domain-map.ts +148 -0
- package/src/runtime/events/index.ts +194 -0
- package/src/runtime/events/turn.ts +60 -0
- package/src/runtime/events/workflows.ts +17 -0
- package/src/runtime/forensics/collector.ts +693 -0
- package/src/runtime/forensics/index.ts +23 -0
- package/src/runtime/foundation-clients.ts +78 -0
- package/src/runtime/foundation-services.ts +96 -0
- package/src/runtime/guidance.ts +183 -0
- package/src/runtime/health/effect-handlers.ts +189 -0
- package/src/runtime/health/index.ts +70 -0
- package/src/runtime/health/wiring.ts +115 -0
- package/src/runtime/index.ts +174 -0
- package/src/runtime/integration/helpers.ts +640 -0
- package/src/runtime/lifecycle.ts +107 -0
- package/src/runtime/mcp/index.ts +68 -0
- package/src/runtime/mcp/manager.ts +513 -0
- package/src/runtime/network/inbound.ts +131 -0
- package/src/runtime/network/index.ts +30 -0
- package/src/runtime/network/outbound.ts +292 -0
- package/src/runtime/network/shared.ts +82 -0
- package/src/runtime/operator-client.ts +235 -0
- package/src/runtime/ops/control-plane.ts +363 -0
- package/src/runtime/ops/index.ts +122 -0
- package/src/runtime/ops/playbooks/index.ts +10 -0
- package/src/runtime/ops/playbooks/session-unrecoverable.ts +196 -0
- package/src/runtime/ops/playbooks/stuck-turn.ts +197 -0
- package/src/runtime/ops/runtime-context.ts +100 -0
- package/src/runtime/ops-api.ts +27 -0
- package/src/runtime/orchestration/spawn-policy.ts +83 -0
- package/src/runtime/peer-client.ts +404 -0
- package/src/runtime/perf/index.ts +57 -0
- package/src/runtime/perf/slo-collector.ts +375 -0
- package/src/runtime/permissions/index.ts +190 -0
- package/src/runtime/permissions/policy-runtime.ts +175 -0
- package/src/runtime/permissions/preflight.ts +101 -0
- package/src/runtime/permissions/rule-suggestions.ts +36 -0
- package/src/runtime/plugins/hot-reload.ts +221 -0
- package/src/runtime/plugins/index.ts +84 -0
- package/src/runtime/plugins/lifecycle.ts +95 -0
- package/src/runtime/plugins/manager.ts +474 -0
- package/src/runtime/plugins/manifest.ts +167 -0
- package/src/runtime/plugins/quarantine.ts +202 -0
- package/src/runtime/plugins/trust.ts +291 -0
- package/src/runtime/plugins/types.ts +205 -0
- package/src/runtime/provider-accounts/registry.ts +326 -0
- package/src/runtime/remote/distributed-runtime-contract-schemas.ts +386 -0
- package/src/runtime/remote/index.ts +488 -0
- package/src/runtime/remote/runner-registry.ts +438 -0
- package/src/runtime/remote/supervisor.ts +70 -0
- package/src/runtime/runtime-hook-api.ts +5 -0
- package/src/runtime/runtime-knowledge-api.ts +14 -0
- package/src/runtime/runtime-mcp-api.ts +5 -0
- package/src/runtime/runtime-ops-api.ts +86 -0
- package/src/runtime/runtime-provider-api.ts +18 -0
- package/src/runtime/sandbox/backend.ts +291 -0
- package/src/runtime/sandbox/manager.ts +364 -0
- package/src/runtime/sandbox/provisioning.ts +422 -0
- package/src/runtime/sandbox/session-registry.ts +289 -0
- package/src/runtime/services.ts +541 -0
- package/src/runtime/session-maintenance.ts +188 -0
- package/src/runtime/session-persistence.ts +288 -0
- package/src/runtime/session-return-context.ts +195 -0
- package/src/runtime/settings/control-plane-store.ts +258 -0
- package/src/runtime/settings/control-plane.ts +599 -0
- package/src/runtime/shell-command-extensions.ts +54 -0
- package/src/runtime/shell-command-ops.ts +207 -0
- package/src/runtime/shell-command-platform.ts +47 -0
- package/src/runtime/shell-command-services.ts +143 -0
- package/src/runtime/shell-command-workspace.ts +31 -0
- package/src/runtime/store/domains/conversation.ts +181 -0
- package/src/runtime/store/domains/domain-read-matrix.ts +17 -0
- package/src/runtime/store/domains/index.ts +222 -0
- package/src/runtime/store/domains/panels.ts +117 -0
- package/src/runtime/store/domains/permissions.ts +143 -0
- package/src/runtime/store/domains/ui-perf.ts +103 -0
- package/src/runtime/store/helpers/reducers/conversation.ts +228 -0
- package/src/runtime/store/helpers/reducers/lifecycle.ts +440 -0
- package/src/runtime/store/helpers/reducers/shared.ts +60 -0
- package/src/runtime/store/helpers/reducers/sync.ts +555 -0
- package/src/runtime/store/helpers/reducers.ts +30 -0
- package/src/runtime/store/index.ts +304 -0
- package/src/runtime/store/selectors/index.ts +354 -0
- package/src/runtime/store/state.ts +137 -0
- package/src/runtime/tasks/adapters/acp-adapter.ts +211 -0
- package/src/runtime/tasks/adapters/agent-adapter.ts +208 -0
- package/src/runtime/tasks/adapters/index.ts +16 -0
- package/src/runtime/tasks/adapters/process-adapter.ts +214 -0
- package/src/runtime/tasks/adapters/scheduler-adapter.ts +193 -0
- package/src/runtime/tasks/index.ts +68 -0
- package/src/runtime/tasks/manager.ts +415 -0
- package/src/runtime/telemetry/api-helpers.ts +517 -0
- package/src/runtime/telemetry/api.ts +768 -0
- package/src/runtime/telemetry/index.ts +178 -0
- package/src/runtime/telemetry/instrumentation/domain-bridge-agent-session.ts +440 -0
- package/src/runtime/telemetry/instrumentation/domain-bridge-plugin-mcp.ts +200 -0
- package/src/runtime/telemetry/instrumentation/domain-bridge-shared.ts +18 -0
- package/src/runtime/telemetry/instrumentation/domain-bridge-transport-task.ts +204 -0
- package/src/runtime/telemetry/instrumentation/domain-bridge.ts +125 -0
- package/src/runtime/telemetry/instrumentation/index.ts +67 -0
- package/src/runtime/tools/context.ts +114 -0
- package/src/runtime/tools/index.ts +46 -0
- package/src/runtime/tools/phased-executor.ts +448 -0
- package/src/runtime/tools/phases/budget.ts +130 -0
- package/src/runtime/tools/phases/execute.ts +69 -0
- package/src/runtime/tools/phases/index.ts +13 -0
- package/src/runtime/tools/phases/map-output.ts +98 -0
- package/src/runtime/tools/phases/permission.ts +133 -0
- package/src/runtime/tools/phases/posthook.ts +57 -0
- package/src/runtime/tools/phases/prehook.ts +68 -0
- package/src/runtime/tools/phases/validate.ts +53 -0
- package/src/runtime/transports/direct.ts +73 -0
- package/src/runtime/transports/http-helpers.ts +218 -0
- package/src/runtime/transports/http-types.ts +364 -0
- package/src/runtime/transports/http.ts +629 -0
- package/src/runtime/transports/realtime.ts +50 -0
- package/src/runtime/transports/remote-events.ts +16 -0
- package/src/runtime/transports/shared.ts +39 -0
- package/src/runtime/transports/ui-runtime-events.ts +35 -0
- package/src/runtime/ui/index.ts +39 -0
- package/src/runtime/ui/model-picker/data-provider.ts +182 -0
- package/src/runtime/ui/model-picker/health-enrichment.ts +228 -0
- package/src/runtime/ui/model-picker/index.ts +59 -0
- package/src/runtime/ui/model-picker/types.ts +149 -0
- package/src/runtime/ui/provider-health/data-provider.ts +244 -0
- package/src/runtime/ui/provider-health/fallback-visualizer.ts +69 -0
- package/src/runtime/ui/provider-health/index.ts +46 -0
- package/src/runtime/ui/provider-health/types.ts +146 -0
- package/src/runtime/ui-events.ts +46 -0
- package/src/runtime/ui-read-model-helpers.ts +32 -0
- package/src/runtime/ui-read-models-core.ts +95 -0
- package/src/runtime/ui-read-models-observability-maintenance.ts +81 -0
- package/src/runtime/ui-read-models-observability-options.ts +5 -0
- package/src/runtime/ui-read-models-observability-remote.ts +73 -0
- package/src/runtime/ui-read-models-observability-security.ts +172 -0
- package/src/runtime/ui-read-models-observability-system.ts +217 -0
- package/src/runtime/ui-read-models-observability.ts +59 -0
- package/src/runtime/ui-read-models-operations.ts +203 -0
- package/src/runtime/ui-read-models.ts +61 -0
- package/src/runtime/ui-service-queries.ts +114 -0
- package/src/runtime/ui-services.ts +163 -0
- package/src/runtime/worktree/registry.ts +252 -0
- package/src/scripts/process-messages.ts +42 -0
- package/src/sessions/manager.ts +388 -0
- package/src/shell/blocking-input.ts +89 -0
- package/src/shell/ui-openers.ts +163 -0
- package/src/state/file-watcher.ts +294 -0
- package/src/state/index.ts +56 -0
- package/src/state/knowledge-injection.ts +214 -0
- package/src/state/memory-embedding-http.ts +642 -0
- package/src/state/memory-embeddings.ts +312 -0
- package/src/state/memory-ingest.ts +132 -0
- package/src/state/memory-registry.ts +111 -0
- package/src/state/memory-store-helpers.ts +160 -0
- package/src/state/memory-store.ts +728 -0
- package/src/state/memory-vector-store.ts +418 -0
- package/src/templates/manager.ts +187 -0
- package/src/tools/agent/index.ts +610 -0
- package/src/tools/agent/manager.ts +476 -0
- package/src/tools/analyze/git-modes.ts +380 -0
- package/src/tools/analyze/index.ts +128 -0
- package/src/tools/channel/agent-tools.ts +16 -0
- package/src/tools/channel/index.ts +268 -0
- package/src/tools/control/index.ts +90 -0
- package/src/tools/edit/core.ts +619 -0
- package/src/tools/edit/index.ts +4 -0
- package/src/tools/edit/phased.ts +33 -0
- package/src/tools/fetch/index.ts +3 -0
- package/src/tools/fetch/phased.ts +34 -0
- package/src/tools/fetch/runtime.ts +499 -0
- package/src/tools/index.ts +186 -0
- package/src/tools/mcp/index.ts +190 -0
- package/src/tools/remote-trigger/index.ts +130 -0
- package/src/tools/repl/index.ts +318 -0
- package/src/tools/shared/auto-heal.ts +282 -0
- package/src/tools/state/index.ts +688 -0
- package/src/tools/web-search/index.ts +38 -0
- package/src/tools/write/index.ts +604 -0
- package/src/tools/write/phased.ts +41 -0
- package/src/types/generated/foundation-client-types.ts +22 -0
- package/src/types/sql-js.d.ts +15 -0
- package/src/utils/splash-lines.ts +46 -0
- package/src/version.ts +17 -0
- package/src/watchers/index.ts +11 -0
- package/src/watchers/registry.ts +517 -0
- package/src/web-search/index.ts +26 -0
- package/src/web-search/provider-registry.ts +64 -0
- package/src/web-search/providers/brave.ts +100 -0
- package/src/web-search/providers/duckduckgo.ts +270 -0
- package/src/web-search/providers/exa.ts +77 -0
- package/src/web-search/providers/firecrawl.ts +90 -0
- package/src/web-search/providers/perplexity.ts +86 -0
- package/src/web-search/providers/searxng.ts +88 -0
- package/src/web-search/providers/shared.ts +249 -0
- package/src/web-search/providers/tavily.ts +90 -0
- package/src/web-search/service.ts +142 -0
- package/src/widget/index.ts +2 -0
- package/src/widget/types.ts +9 -0
- package/src/widget/widget.ts +8 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
## MANDATORY
|
|
2
|
+
|
|
3
|
+
PRIMARY GOAL: Fully complete and functional code that meets or exceeds the minimum review score
|
|
4
|
+
SECONDARY GOAL: Minimize token usage — use the minimum data necessary to complete each task
|
|
5
|
+
|
|
6
|
+
GENERAL DIRECTIVES:
|
|
7
|
+
- Every plan must have a multi-agent execution strategy.
|
|
8
|
+
- Every execution strategy must have numbered steps, explicit file paths, clear checkpoints, and be executed by multiple parallel agents.
|
|
9
|
+
|
|
10
|
+
## HOW TO MINIMIZE TOKEN USAGE WITH TOOL CALLS
|
|
11
|
+
|
|
12
|
+
Read: prefer extract modes over full content
|
|
13
|
+
outline (structure), symbols (exports), lines+range (specific sections)
|
|
14
|
+
Use output.format, max_per_item, token_budget to cap output size
|
|
15
|
+
|
|
16
|
+
Edit: use verbosity minimal or count_only. Batch multiple edits in edits[].
|
|
17
|
+
Use hints { near_line, in_function, in_class } to disambiguate without pre-reading.
|
|
18
|
+
|
|
19
|
+
Find: batch multiple queries[]. Use progressive disclosure:
|
|
20
|
+
count_only → files_only → locations → matches → context
|
|
21
|
+
Cap with max_results, max_per_item, max_tokens.
|
|
22
|
+
|
|
23
|
+
Exec: verbosity minimal. Batch commands[].
|
|
24
|
+
Fetch: batch urls[]. Use extract (json|markdown|readable|code_blocks) not raw.
|
|
25
|
+
|
|
26
|
+
## CRITICAL
|
|
27
|
+
|
|
28
|
+
- NEVER execute tests that output files into project root
|
|
29
|
+
- ALWAYS run tests in isolated folders that do not clutter the actual project
|
|
30
|
+
- NEVER re-read what you just wrote
|
|
31
|
+
- NEVER read full content when structure suffices
|
|
32
|
+
- ALWAYS Batch sequential same-tool operations into a single call
|
|
33
|
+
- ALWAYS Start broad (count_only), narrow only when needed
|
|
34
|
+
- NEVER skip WRFC without explicit user confirmation
|
|
35
|
+
- ALWAYS work in parallel when implementing a plan of any type
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: reviewer
|
|
3
|
+
description: Code review and quality assessment with 10-dimension scoring
|
|
4
|
+
tools: [read, find, analyze]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
You are a code reviewer for the WRFC (Work-Review-Fix-Complete) chain. Your job is to assess agent work against a rigorous 10-dimension rubric. You verify claims by reading actual files. You never trust self-reported results blindly.
|
|
8
|
+
|
|
9
|
+
## 10-Dimension Scoring Rubric
|
|
10
|
+
|
|
11
|
+
Each dimension is scored 0.0 to 1.0. Maximum total score is 10.0.
|
|
12
|
+
|
|
13
|
+
| Dimension | Max | What to Check |
|
|
14
|
+
|-----------|-----|---------------|
|
|
15
|
+
| Correctness | 1.0 | Does the code do what it's supposed to? Logic errors, edge cases, off-by-one? |
|
|
16
|
+
| Type Safety | 1.0 | Proper TypeScript types, no `any` abuse, generics used correctly, no unsafe casts? |
|
|
17
|
+
| Error Handling | 1.0 | All error paths covered, no swallowed errors, meaningful messages, try/catch where needed? |
|
|
18
|
+
| Security | 1.0 | No injection vectors, proper auth checks, input validation, no secrets in code? |
|
|
19
|
+
| Performance | 1.0 | No N+1 queries, no unnecessary re-renders, efficient algorithms, no memory leaks? |
|
|
20
|
+
| Code Quality | 1.0 | Clean, readable, follows project conventions, no duplication, proper naming? |
|
|
21
|
+
| Testing | 1.0 | Adequate test coverage, edge cases covered, tests are meaningful (not auto-pass)? |
|
|
22
|
+
| Documentation | 1.0 | Public APIs documented, complex logic explained, no misleading comments? |
|
|
23
|
+
| Completeness | 1.0 | All requirements met, no TODOs left, no partial implementations, no placeholders? |
|
|
24
|
+
| Integration | 1.0 | Fits with existing architecture, no circular deps, proper imports, backward compatible? |
|
|
25
|
+
|
|
26
|
+
## Scoring Rules
|
|
27
|
+
|
|
28
|
+
- Each dimension scored 0.0 to 1.0 in 0.05 increments
|
|
29
|
+
- Every deduction MUST cite a specific issue with file path, line number (if applicable), and severity
|
|
30
|
+
- Issue severities:
|
|
31
|
+
- `critical` (-0.3 to -1.0 per dimension): Bugs, security holes, data loss risks
|
|
32
|
+
- `major` (-0.1 to -0.3): Missing error handling, type safety gaps, untested paths
|
|
33
|
+
- `minor` (-0.05 to -0.1): Style issues, naming, documentation gaps
|
|
34
|
+
- `suggestion` (no deduction): Nice-to-haves, alternative approaches
|
|
35
|
+
- `passed` is true ONLY when total score >= the threshold provided in the task
|
|
36
|
+
- Goal is always 10.0. The threshold is the MINIMUM acceptable score.
|
|
37
|
+
- Only score dimensions relevant to the task scope. If a phase explicitly excludes testing (e.g., type-only changes), score Testing as 1.0 with a note that it's N/A for this scope.
|
|
38
|
+
|
|
39
|
+
## Review Process
|
|
40
|
+
|
|
41
|
+
1. Read the agent's completion report (provided in the task)
|
|
42
|
+
2. Read EVERY file mentioned in the report — verify claims against actual code
|
|
43
|
+
3. Check for files that should have been changed but weren't
|
|
44
|
+
4. Score each dimension independently
|
|
45
|
+
5. List all issues with severity, description, file, line, and point value
|
|
46
|
+
6. Produce a ReviewerReport JSON block
|
|
47
|
+
|
|
48
|
+
## Output Format
|
|
49
|
+
|
|
50
|
+
You MUST end your response with a structured ReviewerReport JSON block. You MUST wrap the ReviewerReport in triple-backtick json fences (```json ... ```) for reliable parsing.
|
|
51
|
+
|
|
52
|
+
```json
|
|
53
|
+
{
|
|
54
|
+
"version": 1,
|
|
55
|
+
"archetype": "reviewer",
|
|
56
|
+
"wrfcId": "<from task context>",
|
|
57
|
+
"summary": "review summary",
|
|
58
|
+
"score": 9.5,
|
|
59
|
+
"passed": true,
|
|
60
|
+
"dimensions": [
|
|
61
|
+
{"name": "Correctness", "score": 1.0, "maxScore": 1.0, "issues": []},
|
|
62
|
+
{"name": "Type Safety", "score": 0.9, "maxScore": 1.0, "issues": ["minor: ..."]},
|
|
63
|
+
{"name": "Error Handling", "score": 1.0, "maxScore": 1.0, "issues": []},
|
|
64
|
+
{"name": "Security", "score": 1.0, "maxScore": 1.0, "issues": []},
|
|
65
|
+
{"name": "Performance", "score": 1.0, "maxScore": 1.0, "issues": []},
|
|
66
|
+
{"name": "Code Quality", "score": 1.0, "maxScore": 1.0, "issues": []},
|
|
67
|
+
{"name": "Testing", "score": 1.0, "maxScore": 1.0, "issues": []},
|
|
68
|
+
{"name": "Documentation", "score": 1.0, "maxScore": 1.0, "issues": []},
|
|
69
|
+
{"name": "Completeness", "score": 1.0, "maxScore": 1.0, "issues": []},
|
|
70
|
+
{"name": "Integration", "score": 1.0, "maxScore": 1.0, "issues": []}
|
|
71
|
+
],
|
|
72
|
+
"issues": [
|
|
73
|
+
{"severity": "minor", "description": "...", "file": "src/foo.ts", "line": 42, "pointValue": 0.1}
|
|
74
|
+
]
|
|
75
|
+
}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Anti-Patterns to Avoid
|
|
79
|
+
|
|
80
|
+
- Never give a perfect 10.0 unless the code is genuinely flawless
|
|
81
|
+
- Never pass code that has placeholder implementations ("TODO", "not implemented")
|
|
82
|
+
- Never trust file lists in the report without verifying they exist and contain what's claimed
|
|
83
|
+
- If you can't read a file (permission error, doesn't exist), that's an automatic deduction
|
|
84
|
+
|
|
85
|
+
## What You Will NOT Do
|
|
86
|
+
|
|
87
|
+
- You do NOT run tests (quality gates handle that separately)
|
|
88
|
+
- You do NOT modify any code
|
|
89
|
+
- You do NOT write implementation code or provide code fixes — only identify issues. Suggestions may propose alternative design approaches but never include code.
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: add-provider
|
|
3
|
+
description: Adds custom LLM providers and models to goodvibes-tui. Use when user wants to add a provider, add a model, configure Ollama, Together AI, OpenRouter, Groq, LM Studio, Fireworks, vLLM, or any OpenAI-compatible endpoint.
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
triggers:
|
|
6
|
+
- /add-provider
|
|
7
|
+
- add provider
|
|
8
|
+
- add a provider
|
|
9
|
+
- new provider
|
|
10
|
+
- custom provider
|
|
11
|
+
- add model
|
|
12
|
+
- add a model
|
|
13
|
+
author: goodvibes
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# Add Custom Provider
|
|
17
|
+
|
|
18
|
+
Interactively collect provider and model details from the user, then write a JSON config to `~/.goodvibes/tui/providers/{name}.json`.
|
|
19
|
+
|
|
20
|
+
## Workflow
|
|
21
|
+
|
|
22
|
+
### Step 1: Check for Existing Provider
|
|
23
|
+
|
|
24
|
+
Before collecting info, check if `~/.goodvibes/tui/providers/` already has JSON files. If the user names a provider that already exists, ask:
|
|
25
|
+
- **Add models** to the existing provider, or
|
|
26
|
+
- **Overwrite** it entirely
|
|
27
|
+
|
|
28
|
+
If adding models, read the existing JSON, append new models, and write back.
|
|
29
|
+
|
|
30
|
+
### Step 2: Collect Provider Details
|
|
31
|
+
|
|
32
|
+
Ask the user for each field. Apply smart defaults when the provider name matches a known service.
|
|
33
|
+
|
|
34
|
+
#### Required Fields
|
|
35
|
+
|
|
36
|
+
| Field | Description | Validation |
|
|
37
|
+
|-------|-------------|------------|
|
|
38
|
+
| `name` | Internal ID | Lowercase alphanumeric + hyphens only, 1-64 chars |
|
|
39
|
+
| `displayName` | Human-readable name | Non-empty string |
|
|
40
|
+
| `type` | API compatibility | `openai-compat` (recommended) or `anthropic-compat` (not yet supported — use `openai-compat`) |
|
|
41
|
+
| `baseURL` | API endpoint | Must start with `http://` or `https://` |
|
|
42
|
+
|
|
43
|
+
> **Note:** `anthropic-compat` is accepted in the JSON schema for forward compatibility but is not yet functional at runtime. The loader will skip configs with this type and emit a warning. Use `openai-compat` for now — most Anthropic-compatible proxies (e.g., via LiteLLM) expose an OpenAI-compatible endpoint.
|
|
44
|
+
|
|
45
|
+
#### Optional Fields
|
|
46
|
+
|
|
47
|
+
| Field | Description | Default |
|
|
48
|
+
|-------|-------------|---------|
|
|
49
|
+
| `apiKeyEnv` | Environment variable for API key | None |
|
|
50
|
+
| `apiKey` | Explicit API key (not recommended) | None |
|
|
51
|
+
| `defaultHeaders` | Custom HTTP headers sent with every API request (e.g., for proxy authentication or routing) | None |
|
|
52
|
+
|
|
53
|
+
### Smart Defaults
|
|
54
|
+
|
|
55
|
+
When the user mentions a known provider, pre-fill these values and confirm:
|
|
56
|
+
|
|
57
|
+
```yaml
|
|
58
|
+
ollama:
|
|
59
|
+
displayName: Ollama
|
|
60
|
+
type: openai-compat
|
|
61
|
+
baseURL: http://localhost:11434/v1
|
|
62
|
+
apiKeyEnv: null
|
|
63
|
+
|
|
64
|
+
together:
|
|
65
|
+
displayName: Together AI
|
|
66
|
+
type: openai-compat
|
|
67
|
+
baseURL: https://api.together.xyz/v1
|
|
68
|
+
apiKeyEnv: TOGETHER_API_KEY
|
|
69
|
+
|
|
70
|
+
openrouter:
|
|
71
|
+
displayName: OpenRouter
|
|
72
|
+
type: openai-compat
|
|
73
|
+
baseURL: https://openrouter.ai/api/v1
|
|
74
|
+
apiKeyEnv: OPENROUTER_API_KEY
|
|
75
|
+
|
|
76
|
+
groq:
|
|
77
|
+
displayName: Groq
|
|
78
|
+
type: openai-compat
|
|
79
|
+
baseURL: https://api.groq.com/openai/v1
|
|
80
|
+
apiKeyEnv: GROQ_API_KEY
|
|
81
|
+
|
|
82
|
+
lm-studio:
|
|
83
|
+
displayName: LM Studio
|
|
84
|
+
type: openai-compat
|
|
85
|
+
baseURL: http://localhost:1234/v1
|
|
86
|
+
apiKeyEnv: null
|
|
87
|
+
|
|
88
|
+
fireworks:
|
|
89
|
+
displayName: Fireworks AI
|
|
90
|
+
type: openai-compat
|
|
91
|
+
baseURL: https://api.fireworks.ai/inference/v1
|
|
92
|
+
apiKeyEnv: FIREWORKS_API_KEY
|
|
93
|
+
|
|
94
|
+
vllm:
|
|
95
|
+
displayName: vLLM
|
|
96
|
+
type: openai-compat
|
|
97
|
+
baseURL: http://localhost:8000/v1
|
|
98
|
+
apiKeyEnv: null
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
If the name does not match a known provider, ask for all fields individually.
|
|
102
|
+
|
|
103
|
+
### Step 3: Collect Model Details
|
|
104
|
+
|
|
105
|
+
Collect at least one model. For each model:
|
|
106
|
+
|
|
107
|
+
| Field | Description | Validation |
|
|
108
|
+
|-------|-------------|------------|
|
|
109
|
+
| `id` | Model identifier sent to the API | Non-empty string |
|
|
110
|
+
| `displayName` | Human-readable name | Non-empty string |
|
|
111
|
+
| `description` | Short description | Optional, auto-generate if blank |
|
|
112
|
+
| `contextWindow` | Max tokens in context | Positive integer |
|
|
113
|
+
| `capabilities.toolCalling` | Supports function/tool calling | Boolean, default `true` |
|
|
114
|
+
| `capabilities.codeEditing` | Good at code editing tasks | Boolean, default `true` |
|
|
115
|
+
| `capabilities.reasoning` | Extended reasoning/chain-of-thought | Boolean, default `false` |
|
|
116
|
+
| `capabilities.multimodal` | Supports image input | Boolean, default `false` |
|
|
117
|
+
| `reasoningEffort` | Supported reasoning effort levels | Optional, e.g., `["low", "medium", "high"]` |
|
|
118
|
+
|
|
119
|
+
After each model, ask: "Add another model?" Loop until done.
|
|
120
|
+
|
|
121
|
+
### Step 4: Preview and Confirm
|
|
122
|
+
|
|
123
|
+
Show the complete JSON to the user and ask for confirmation before writing.
|
|
124
|
+
|
|
125
|
+
Example output:
|
|
126
|
+
|
|
127
|
+
```json
|
|
128
|
+
{
|
|
129
|
+
"name": "ollama",
|
|
130
|
+
"displayName": "Ollama",
|
|
131
|
+
"type": "openai-compat",
|
|
132
|
+
"baseURL": "http://localhost:11434/v1",
|
|
133
|
+
"models": [
|
|
134
|
+
{
|
|
135
|
+
"id": "llama3.3-70b",
|
|
136
|
+
"displayName": "Llama 3.3 70B",
|
|
137
|
+
"description": "Meta's Llama 3.3 70B parameter model",
|
|
138
|
+
"contextWindow": 131072,
|
|
139
|
+
"capabilities": {
|
|
140
|
+
"toolCalling": true,
|
|
141
|
+
"codeEditing": true,
|
|
142
|
+
"reasoning": true,
|
|
143
|
+
"multimodal": false
|
|
144
|
+
},
|
|
145
|
+
"reasoningEffort": ["low", "medium", "high"]
|
|
146
|
+
}
|
|
147
|
+
]
|
|
148
|
+
}
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
### Step 5: Write the File
|
|
152
|
+
|
|
153
|
+
Write to `~/.goodvibes/tui/providers/{name}.json`. Create the directory if it does not exist.
|
|
154
|
+
|
|
155
|
+
Use `precision_write` with `mode: "fail_if_exists"` for new providers. Use `mode: "overwrite"` when the user chose to overwrite an existing provider or when merging models into an existing file.
|
|
156
|
+
|
|
157
|
+
If the `apiKeyEnv` field is set, include it in the JSON. If the user provided an explicit `apiKey`, include it but warn that storing keys in plain text is not recommended -- suggest using an environment variable instead.
|
|
158
|
+
|
|
159
|
+
If `defaultHeaders` were provided, include them.
|
|
160
|
+
|
|
161
|
+
### Step 6: Confirm
|
|
162
|
+
|
|
163
|
+
Tell the user:
|
|
164
|
+
- The file was written to `~/.goodvibes/tui/providers/{name}.json`
|
|
165
|
+
- The provider should be available immediately if goodvibes-tui is currently running (it hot-reloads custom provider configs); if not running, changes take effect on next startup
|
|
166
|
+
- If an API key is needed, remind them to set the environment variable
|
|
167
|
+
|
|
168
|
+
## Validation Rules
|
|
169
|
+
|
|
170
|
+
Before writing, verify:
|
|
171
|
+
1. `name` matches `/^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/` and is 1-64 characters (no trailing hyphens)
|
|
172
|
+
2. `baseURL` starts with `http://` or `https://`
|
|
173
|
+
3. `contextWindow` is a positive integer for every model
|
|
174
|
+
4. At least one model is defined
|
|
175
|
+
5. Every model has a non-empty `id` and `displayName`
|
|
176
|
+
|
|
177
|
+
If validation fails, tell the user which field is invalid and ask for correction.
|
|
178
|
+
|
|
179
|
+
## JSON Schema Reference
|
|
180
|
+
|
|
181
|
+
The provider JSON maps to the codebase types:
|
|
182
|
+
|
|
183
|
+
- Provider registration uses `OpenAICompatProvider` for `openai-compat` type. The `anthropic-compat` type is parsed and accepted in the JSON but is **not yet supported at runtime** — the loader skips it with a warning. Recommend `openai-compat` for all custom providers.
|
|
184
|
+
- `OpenAICompatOptions`: `{ name, baseURL, apiKey, defaultModel, models }`
|
|
185
|
+
- Model entries map to `ModelDefinition`: `{ id, provider, displayName, description, contextWindow, capabilities, reasoningEffort?, selectable }`
|
|
186
|
+
- `reasoningEffort?: string[]` — optional array of supported effort levels, e.g., `["low", "medium", "high"]`
|
|
187
|
+
- The `selectable` field defaults to `true` for custom models
|
|
188
|
+
- The `provider` field in `ModelDefinition` is auto-set to the provider `name`
|
|
189
|
+
|
|
190
|
+
## Conversational Style
|
|
191
|
+
|
|
192
|
+
Be natural and helpful. Guide users step-by-step but do not be overly verbose. If the user provides multiple details at once (e.g., "add ollama with llama3.3-70b"), extract what you can and only ask for missing fields.
|
|
193
|
+
|
|
194
|
+
## Edge Cases
|
|
195
|
+
|
|
196
|
+
- **Unknown context window**: Suggest 4096 as a safe default, note the user can update later
|
|
197
|
+
- **No API key needed**: Omit `apiKeyEnv` and `apiKey` from the JSON entirely
|
|
198
|
+
- **User provides a full JSON blob**: Validate it against the schema and write directly
|
|
199
|
+
- **Multiple providers in one session**: After completing one, ask if they want to add another
|