@pellux/goodvibes-tui 0.18.11 → 0.18.13
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/CHANGELOG.md +72 -0
- package/README.md +1 -1
- package/docs/foundation-artifacts/operator-contract.json +1 -1
- package/package.json +2 -2
- package/src/config/index.ts +1 -138
- package/src/config/subscription-providers.ts +1 -127
- package/src/core/conversation-rendering.ts +5 -5
- package/src/core/conversation.ts +177 -424
- package/src/core/history.ts +45 -0
- package/src/core/orchestrator.ts +3 -733
- package/src/core/system-message-router.ts +19 -58
- package/src/input/command-registry.ts +3 -3
- package/src/input/commands/session-content.ts +2 -2
- package/src/input/commands/session-workflow.ts +1 -1
- package/src/input/handler-content-actions.ts +2 -2
- package/src/input/handler-feed.ts +2 -2
- package/src/input/handler-modal-token-routes.ts +1 -1
- package/src/input/handler-ui-state.ts +1 -1
- package/src/input/handler.ts +1 -1
- package/src/input/search.ts +1 -1
- package/src/input/selection.ts +2 -2
- package/src/input/session-picker-modal.ts +1 -1
- package/src/main.ts +1 -1
- package/src/panels/agent-inspector-panel.ts +3 -3
- package/src/panels/agent-logs-panel.ts +3 -3
- package/src/panels/approval-panel.ts +2 -2
- package/src/panels/automation-control-panel.ts +3 -3
- package/src/panels/base-panel.ts +14 -14
- package/src/panels/builtin/agent.ts +1 -0
- package/src/panels/builtin/operations.ts +2 -1
- package/src/panels/builtin/session.ts +2 -2
- package/src/panels/builtin/shared.ts +5 -5
- package/src/panels/cockpit-panel.ts +2 -2
- package/src/panels/communication-panel.ts +3 -3
- package/src/panels/context-visualizer-panel.ts +6 -3
- package/src/panels/control-plane-panel.ts +3 -3
- package/src/panels/cost-tracker-panel.ts +3 -3
- package/src/panels/debug-panel.ts +2 -2
- package/src/panels/diff-panel.ts +2 -2
- package/src/panels/docs-panel.ts +1 -1
- package/src/panels/eval-panel.ts +2 -2
- package/src/panels/file-explorer-panel.ts +3 -3
- package/src/panels/file-preview-panel.ts +3 -3
- package/src/panels/forensics-panel.ts +2 -2
- package/src/panels/git-panel.ts +1 -1
- package/src/panels/hooks-panel.ts +3 -3
- package/src/panels/incident-review-panel.ts +1 -1
- package/src/panels/intelligence-panel.ts +2 -2
- package/src/panels/knowledge-panel.ts +1 -1
- package/src/panels/local-auth-panel.ts +2 -2
- package/src/panels/marketplace-panel.ts +1 -1
- package/src/panels/mcp-panel.ts +3 -3
- package/src/panels/memory-panel.ts +1 -1
- package/src/panels/ops-control-panel.ts +3 -3
- package/src/panels/ops-strategy-panel.ts +2 -2
- package/src/panels/orchestration-panel.ts +2 -2
- package/src/panels/panel-list-panel.ts +6 -6
- package/src/panels/plan-dashboard-panel.ts +1 -1
- package/src/panels/plugins-panel.ts +2 -2
- package/src/panels/policy-panel.ts +2 -2
- package/src/panels/polish.ts +3 -3
- package/src/panels/provider-accounts-panel.ts +2 -2
- package/src/panels/provider-health-domains.ts +5 -1
- package/src/panels/provider-health-panel.ts +7 -3
- package/src/panels/provider-stats-panel.ts +3 -3
- package/src/panels/remote-panel.ts +3 -3
- package/src/panels/routes-panel.ts +3 -3
- package/src/panels/sandbox-panel.ts +2 -2
- package/src/panels/schedule-panel.ts +1 -1
- package/src/panels/security-panel.ts +2 -2
- package/src/panels/services-panel.ts +2 -2
- package/src/panels/session-browser-panel.ts +3 -3
- package/src/panels/settings-sync-panel.ts +2 -2
- package/src/panels/skills-panel.ts +6 -6
- package/src/panels/subscription-panel.ts +2 -2
- package/src/panels/symbol-outline-panel.ts +3 -3
- package/src/panels/system-messages-panel.ts +4 -4
- package/src/panels/tasks-panel.ts +2 -2
- package/src/panels/thinking-panel.ts +3 -3
- package/src/panels/token-budget-panel.ts +7 -3
- package/src/panels/tool-inspector-panel.ts +3 -3
- package/src/panels/types.ts +5 -5
- package/src/panels/watchers-panel.ts +3 -3
- package/src/panels/welcome-panel.ts +1 -1
- package/src/panels/worktree-panel.ts +2 -2
- package/src/panels/wrfc-panel.ts +3 -3
- package/src/permissions/prompt.ts +3 -22
- package/src/plugins/loader.ts +15 -304
- package/src/renderer/agent-detail-modal.ts +1 -1
- package/src/renderer/autocomplete-overlay.ts +2 -2
- package/src/renderer/bookmark-modal.ts +1 -1
- package/src/renderer/bottom-bar.ts +2 -2
- package/src/renderer/buffer.ts +1 -1
- package/src/renderer/code-block.ts +2 -2
- package/src/renderer/compositor.ts +2 -2
- package/src/renderer/context-inspector.ts +1 -1
- package/src/renderer/conversation-layout.ts +2 -2
- package/src/renderer/conversation-overlays.ts +1 -1
- package/src/renderer/conversation-surface.ts +2 -2
- package/src/renderer/diff-view.ts +2 -2
- package/src/renderer/diff.ts +1 -1
- package/src/renderer/file-picker-overlay.ts +2 -2
- package/src/renderer/file-tree.ts +2 -2
- package/src/renderer/help-overlay.ts +1 -1
- package/src/renderer/history-search-overlay.ts +2 -2
- package/src/renderer/live-tail-modal.ts +1 -1
- package/src/renderer/markdown.ts +2 -2
- package/src/renderer/modal-factory.ts +3 -3
- package/src/renderer/model-picker-overlay.ts +2 -2
- package/src/renderer/overlay-box.ts +2 -2
- package/src/renderer/panel-composite.ts +1 -1
- package/src/renderer/panel-picker-overlay.ts +2 -2
- package/src/renderer/panel-tab-bar.ts +1 -1
- package/src/renderer/panel-workspace-bar.ts +1 -1
- package/src/renderer/process-indicator.ts +2 -2
- package/src/renderer/process-modal.ts +1 -1
- package/src/renderer/profile-picker-modal.ts +2 -2
- package/src/renderer/progress.ts +2 -2
- package/src/renderer/search-overlay.ts +2 -2
- package/src/renderer/selection-modal-overlay.ts +2 -2
- package/src/renderer/session-picker-modal.ts +2 -2
- package/src/renderer/settings-modal.ts +2 -2
- package/src/renderer/shell-surface.ts +1 -1
- package/src/renderer/system-message.ts +1 -1
- package/src/renderer/tab-strip.ts +2 -2
- package/src/renderer/text-layout.ts +1 -1
- package/src/renderer/thinking.ts +1 -1
- package/src/renderer/tool-call.ts +2 -2
- package/src/renderer/ui-factory.ts +2 -2
- package/src/runtime/bootstrap-command-context.ts +7 -8
- package/src/runtime/bootstrap-command-parts.ts +4 -6
- package/src/runtime/bootstrap-core.ts +5 -4
- package/src/runtime/bootstrap-hook-bridge.ts +16 -175
- package/src/runtime/bootstrap-shell.ts +5 -5
- package/src/runtime/bootstrap.ts +6 -5
- package/src/runtime/context.ts +4 -20
- package/src/runtime/diagnostics/panels/index.ts +1 -1
- package/src/runtime/diagnostics/panels/ops.ts +1 -1
- package/src/runtime/diagnostics/panels/panel-resources.ts +118 -0
- package/src/runtime/perf/panel-contracts.ts +32 -0
- package/src/runtime/perf/panel-health-monitor.ts +18 -0
- package/src/runtime/services.ts +6 -6
- package/src/runtime/store/domains/conversation.ts +1 -181
- package/src/runtime/store/domains/permissions.ts +1 -143
- package/src/runtime/store/helpers/reducers/conversation.ts +1 -228
- package/src/runtime/store/helpers/reducers/lifecycle.ts +1 -440
- package/src/runtime/store/selectors/index.ts +11 -6
- package/src/runtime/store/state.ts +12 -4
- package/src/runtime/ui-read-models-observability-security.ts +2 -2
- package/src/runtime/ui-read-models-observability-system.ts +1 -1
- package/src/runtime/ui-service-queries.ts +1 -1
- package/src/runtime/ui-services.ts +1 -1
- package/src/shell/ui-openers.ts +1 -1
- package/src/tools/index.ts +1 -186
- package/src/types/grid.ts +48 -0
- package/src/utils/clipboard.ts +21 -0
- package/src/utils/splash-lines.ts +1 -1
- package/src/utils/terminal-width.ts +185 -0
- package/src/version.ts +1 -1
- package/src/acp/connection.ts +0 -447
- package/src/acp/index.ts +0 -7
- package/src/acp/manager.ts +0 -1
- package/src/adapters/bluebubbles/index.ts +0 -127
- package/src/adapters/discord/index.ts +0 -297
- package/src/adapters/github/index.ts +0 -73
- package/src/adapters/google-chat/index.ts +0 -119
- package/src/adapters/imessage/index.ts +0 -92
- package/src/adapters/index.ts +0 -15
- package/src/adapters/matrix/index.ts +0 -116
- package/src/adapters/mattermost/index.ts +0 -151
- package/src/adapters/msteams/index.ts +0 -180
- package/src/adapters/ntfy/index.ts +0 -118
- package/src/adapters/signal/index.ts +0 -92
- package/src/adapters/slack/index.ts +0 -323
- package/src/adapters/telegram/index.ts +0 -160
- package/src/adapters/types.ts +0 -97
- package/src/adapters/webhook/index.ts +0 -178
- package/src/adapters/whatsapp/index.ts +0 -135
- package/src/agents/message-bus-core.ts +0 -312
- package/src/agents/message-bus.ts +0 -2
- package/src/agents/orchestrator-prompts.ts +0 -351
- package/src/agents/orchestrator-runner.ts +0 -668
- package/src/agents/orchestrator.ts +0 -438
- package/src/agents/session.ts +0 -108
- package/src/agents/worktree.ts +0 -153
- package/src/agents/wrfc-config.ts +0 -47
- package/src/agents/wrfc-controller.ts +0 -747
- package/src/agents/wrfc-gate-runtime.ts +0 -75
- package/src/agents/wrfc-reporting.ts +0 -284
- package/src/agents/wrfc-runtime-events.ts +0 -150
- package/src/agents/wrfc-types.ts +0 -67
- package/src/automation/delivery-manager.ts +0 -368
- package/src/automation/index.ts +0 -72
- package/src/automation/manager-runtime-delivery.ts +0 -139
- package/src/automation/manager-runtime-events.ts +0 -131
- package/src/automation/manager-runtime-execution.ts +0 -511
- package/src/automation/manager-runtime-helpers.ts +0 -433
- package/src/automation/manager-runtime-job-mutations.ts +0 -175
- package/src/automation/manager-runtime-reconcile.ts +0 -148
- package/src/automation/manager-runtime-scheduling.ts +0 -189
- package/src/automation/manager-runtime-sync.ts +0 -54
- package/src/automation/manager-runtime.ts +0 -721
- package/src/automation/manager.ts +0 -10
- package/src/automation/service.ts +0 -242
- package/src/channels/builtin/account-actions.ts +0 -490
- package/src/channels/builtin/accounts.ts +0 -433
- package/src/channels/builtin/contracts.ts +0 -405
- package/src/channels/builtin/plugins.ts +0 -308
- package/src/channels/builtin/rendering.ts +0 -174
- package/src/channels/builtin/setup-schema.ts +0 -504
- package/src/channels/builtin/shared.ts +0 -96
- package/src/channels/builtin/surfaces.ts +0 -57
- package/src/channels/builtin/targets.ts +0 -693
- package/src/channels/builtin-runtime.ts +0 -443
- package/src/channels/delivery/shared.ts +0 -199
- package/src/channels/delivery/strategies-bridge.ts +0 -246
- package/src/channels/delivery/strategies-core.ts +0 -299
- package/src/channels/delivery/strategies-enterprise.ts +0 -178
- package/src/channels/delivery/types.ts +0 -59
- package/src/channels/delivery-router.ts +0 -127
- package/src/channels/index.ts +0 -77
- package/src/channels/plugin-registry.ts +0 -551
- package/src/channels/provider-runtime.ts +0 -330
- package/src/channels/reply-pipeline.ts +0 -522
- package/src/channels/route-manager.ts +0 -340
- package/src/channels/surface-registry.ts +0 -186
- package/src/config/helper-model.ts +0 -1
- package/src/config/manager.ts +0 -8
- package/src/config/subscription-auth.ts +0 -31
- package/src/config/tool-llm.ts +0 -110
- package/src/control-plane/approval-broker.ts +0 -351
- package/src/control-plane/gateway.ts +0 -1
- package/src/control-plane/index.ts +0 -54
- package/src/control-plane/media-contract-schemas.ts +0 -1
- package/src/control-plane/method-catalog-admin.ts +0 -1
- package/src/control-plane/method-catalog-channels.ts +0 -1
- package/src/control-plane/method-catalog-control-automation.ts +0 -1
- package/src/control-plane/method-catalog-control-core.ts +0 -1
- package/src/control-plane/method-catalog-control.ts +0 -1
- package/src/control-plane/method-catalog-events.ts +0 -1
- package/src/control-plane/method-catalog-knowledge.ts +0 -1
- package/src/control-plane/method-catalog-media.ts +0 -1
- package/src/control-plane/method-catalog-runtime.ts +0 -1
- package/src/control-plane/method-catalog-shared.ts +0 -1
- package/src/control-plane/method-catalog.ts +0 -1
- package/src/control-plane/operator-contract-schemas-admin.ts +0 -1
- package/src/control-plane/operator-contract-schemas-channels.ts +0 -1
- package/src/control-plane/operator-contract-schemas-control.ts +0 -1
- package/src/control-plane/operator-contract-schemas-domains.ts +0 -1
- package/src/control-plane/operator-contract-schemas-knowledge.ts +0 -1
- package/src/control-plane/operator-contract-schemas-media.ts +0 -1
- package/src/control-plane/operator-contract-schemas-permissions.ts +0 -1
- package/src/control-plane/operator-contract-schemas-remote.ts +0 -1
- package/src/control-plane/operator-contract-schemas-runtime.ts +0 -1
- package/src/control-plane/operator-contract-schemas-shared.ts +0 -1
- package/src/control-plane/operator-contract-schemas-telemetry.ts +0 -1
- package/src/control-plane/operator-contract-schemas.ts +0 -1
- package/src/control-plane/operator-contract.ts +0 -165
- package/src/control-plane/session-broker.ts +0 -780
- package/src/core/compaction-sections.ts +0 -492
- package/src/core/compaction-types.ts +0 -147
- package/src/core/context-compaction.ts +0 -542
- package/src/core/conversation-compaction.ts +0 -68
- package/src/core/conversation-diff.ts +0 -55
- package/src/core/conversation-utils.ts +0 -72
- package/src/core/event-replay.ts +0 -287
- package/src/core/orchestrator-context-runtime.ts +0 -407
- package/src/core/orchestrator-follow-up-runtime.ts +0 -134
- package/src/core/orchestrator-runtime.ts +0 -132
- package/src/core/orchestrator-tool-runtime.ts +0 -468
- package/src/core/orchestrator-turn-helpers.ts +0 -355
- package/src/core/orchestrator-turn-loop.ts +0 -443
- package/src/core/plan-command-handler.ts +0 -169
- package/src/core/transcript-events/classify.ts +0 -95
- package/src/core/transcript-events/index.ts +0 -15
- package/src/daemon/control-plane.ts +0 -522
- package/src/daemon/facade-composition.ts +0 -398
- package/src/daemon/facade.ts +0 -638
- package/src/daemon/helpers.ts +0 -74
- package/src/daemon/http/router-route-contexts.ts +0 -370
- package/src/daemon/http/router.ts +0 -531
- package/src/daemon/http-listener.ts +0 -301
- package/src/daemon/index.ts +0 -1
- package/src/daemon/server.ts +0 -1
- package/src/daemon/service-manager.ts +0 -413
- package/src/daemon/surface-actions.ts +0 -183
- package/src/daemon/surface-delivery.ts +0 -530
- package/src/daemon/surface-policy.ts +0 -60
- package/src/daemon/transport-events.ts +0 -110
- package/src/daemon/types.ts +0 -191
- package/src/export/markdown.ts +0 -213
- package/src/export/session-export.ts +0 -1
- package/src/git/index.ts +0 -1
- package/src/git/service.ts +0 -414
- package/src/hooks/chain-engine.ts +0 -414
- package/src/hooks/dispatcher.ts +0 -414
- package/src/hooks/hook-api.ts +0 -170
- package/src/hooks/index.ts +0 -48
- package/src/hooks/runners/agent.ts +0 -93
- package/src/hooks/runners/prompt.ts +0 -69
- package/src/hooks/workbench.ts +0 -360
- package/src/integrations/index.ts +0 -42
- package/src/integrations/notifier.ts +0 -206
- package/src/integrations/webhooks.ts +0 -1
- package/src/knowledge/consolidation.ts +0 -346
- package/src/knowledge/graphql.ts +0 -324
- package/src/knowledge/index.ts +0 -60
- package/src/knowledge/ingest-compile.ts +0 -386
- package/src/knowledge/ingest-context.ts +0 -18
- package/src/knowledge/ingest-inputs.ts +0 -387
- package/src/knowledge/ingest.ts +0 -1
- package/src/knowledge/internal.ts +0 -257
- package/src/knowledge/knowledge-api.ts +0 -432
- package/src/knowledge/lint.ts +0 -121
- package/src/knowledge/memory-sync.ts +0 -62
- package/src/knowledge/packet.ts +0 -370
- package/src/knowledge/scheduling.ts +0 -283
- package/src/knowledge/service.ts +0 -715
- package/src/mcp/client.ts +0 -383
- package/src/mcp/index.ts +0 -12
- package/src/mcp/mcp-api.ts +0 -90
- package/src/mcp/registry.ts +0 -1
- package/src/media/builtin-image-understanding.ts +0 -303
- package/src/media/builtin-providers.ts +0 -26
- package/src/media/index.ts +0 -18
- package/src/multimodal/index.ts +0 -13
- package/src/multimodal/service.ts +0 -492
- package/src/permissions/briefs/build.ts +0 -88
- package/src/permissions/manager.ts +0 -1
- package/src/plugins/api.ts +0 -383
- package/src/plugins/manager.ts +0 -481
- package/src/profiles/shape.ts +0 -58
- package/src/providers/amazon-bedrock-mantle.ts +0 -50
- package/src/providers/amazon-bedrock.ts +0 -61
- package/src/providers/anthropic-compat.ts +0 -373
- package/src/providers/anthropic-sdk-provider.ts +0 -230
- package/src/providers/anthropic-vertex.ts +0 -59
- package/src/providers/anthropic.ts +0 -469
- package/src/providers/auto-register.ts +0 -417
- package/src/providers/builtin-catalog.ts +0 -326
- package/src/providers/builtin-registry.ts +0 -575
- package/src/providers/cache-planner.ts +0 -258
- package/src/providers/capabilities.ts +0 -1
- package/src/providers/custom-loader.ts +0 -425
- package/src/providers/discovered-compat.ts +0 -7
- package/src/providers/discovered-factory.ts +0 -61
- package/src/providers/discovered-traits.ts +0 -138
- package/src/providers/gemini.ts +0 -462
- package/src/providers/github-copilot.ts +0 -254
- package/src/providers/index.ts +0 -1
- package/src/providers/interface.ts +0 -185
- package/src/providers/llama-cpp.ts +0 -402
- package/src/providers/lm-studio-helpers.ts +0 -367
- package/src/providers/lm-studio.ts +0 -484
- package/src/providers/model-catalog-cache.ts +0 -221
- package/src/providers/model-catalog-notifications.ts +0 -97
- package/src/providers/model-catalog-synthetic.ts +0 -202
- package/src/providers/model-catalog.ts +0 -211
- package/src/providers/model-limits.ts +0 -1
- package/src/providers/ollama.ts +0 -469
- package/src/providers/openai-codex.ts +0 -472
- package/src/providers/openai-compat.ts +0 -615
- package/src/providers/openai.ts +0 -231
- package/src/providers/optimizer.ts +0 -1
- package/src/providers/provider-api.ts +0 -1
- package/src/providers/registry-helpers.ts +0 -34
- package/src/providers/registry-models.ts +0 -77
- package/src/providers/registry-types.ts +0 -67
- package/src/providers/registry.ts +0 -1
- package/src/providers/runtime-metadata.ts +0 -149
- package/src/providers/runtime-snapshot.ts +0 -130
- package/src/providers/synthetic.ts +0 -561
- package/src/providers/tier-prompts.ts +0 -84
- package/src/providers/tool-formats.ts +0 -414
- package/src/runtime/auth/inspection.ts +0 -125
- package/src/runtime/bootstrap-background.ts +0 -157
- package/src/runtime/bootstrap-helpers.ts +0 -88
- package/src/runtime/bootstrap-runtime-events.ts +0 -254
- package/src/runtime/bootstrap-services.ts +0 -197
- package/src/runtime/compaction/index.ts +0 -1
- package/src/runtime/compaction/lifecycle.ts +0 -1
- package/src/runtime/compaction/manager.ts +0 -474
- package/src/runtime/compaction/quality-score.ts +0 -1
- package/src/runtime/compaction/resume-repair.ts +0 -1
- package/src/runtime/compaction/strategies/autocompact.ts +0 -1
- package/src/runtime/compaction/strategies/boundary-commit.ts +0 -1
- package/src/runtime/compaction/strategies/collapse.ts +0 -1
- package/src/runtime/compaction/strategies/index.ts +0 -1
- package/src/runtime/compaction/strategies/microcompact.ts +0 -1
- package/src/runtime/compaction/strategies/reactive.ts +0 -1
- package/src/runtime/compaction/types.ts +0 -1
- package/src/runtime/ecosystem/recommendations.ts +0 -117
- package/src/runtime/emitters/agents.ts +0 -96
- package/src/runtime/emitters/automation.ts +0 -112
- package/src/runtime/emitters/communication.ts +0 -53
- package/src/runtime/emitters/compaction.ts +0 -161
- package/src/runtime/emitters/control-plane.ts +0 -65
- package/src/runtime/emitters/deliveries.ts +0 -65
- package/src/runtime/emitters/forensics.ts +0 -17
- package/src/runtime/emitters/index.ts +0 -59
- package/src/runtime/emitters/knowledge.ts +0 -129
- package/src/runtime/emitters/mcp.ts +0 -95
- package/src/runtime/emitters/ops.ts +0 -163
- package/src/runtime/emitters/orchestration.ts +0 -87
- package/src/runtime/emitters/permissions.ts +0 -98
- package/src/runtime/emitters/planner.ts +0 -23
- package/src/runtime/emitters/plugins.ts +0 -78
- package/src/runtime/emitters/providers.ts +0 -30
- package/src/runtime/emitters/routes.ts +0 -57
- package/src/runtime/emitters/security.ts +0 -53
- package/src/runtime/emitters/session.ts +0 -93
- package/src/runtime/emitters/surfaces.ts +0 -57
- package/src/runtime/emitters/tasks.ts +0 -69
- package/src/runtime/emitters/tools.ts +0 -140
- package/src/runtime/emitters/transport.ts +0 -78
- package/src/runtime/emitters/turn.ts +0 -155
- package/src/runtime/emitters/ui.ts +0 -57
- package/src/runtime/emitters/watchers.ts +0 -57
- package/src/runtime/emitters/workflows.ts +0 -79
- package/src/runtime/eval/index.ts +0 -48
- package/src/runtime/eval/runner.ts +0 -163
- package/src/runtime/eval/suites.ts +0 -264
- package/src/runtime/events/domain-map.ts +0 -148
- package/src/runtime/events/index.ts +0 -1
- package/src/runtime/events/turn.ts +0 -1
- package/src/runtime/events/workflows.ts +0 -1
- package/src/runtime/forensics/collector.ts +0 -693
- package/src/runtime/forensics/index.ts +0 -23
- package/src/runtime/foundation-clients.ts +0 -78
- package/src/runtime/foundation-services.ts +0 -96
- package/src/runtime/guidance.ts +0 -183
- package/src/runtime/health/effect-handlers.ts +0 -189
- package/src/runtime/health/index.ts +0 -70
- package/src/runtime/health/wiring.ts +0 -115
- package/src/runtime/integration/helpers.ts +0 -640
- package/src/runtime/lifecycle.ts +0 -107
- package/src/runtime/mcp/index.ts +0 -68
- package/src/runtime/mcp/manager.ts +0 -513
- package/src/runtime/network/inbound.ts +0 -131
- package/src/runtime/network/index.ts +0 -30
- package/src/runtime/network/outbound.ts +0 -292
- package/src/runtime/network/shared.ts +0 -82
- package/src/runtime/operator-client.ts +0 -235
- package/src/runtime/ops/control-plane.ts +0 -363
- package/src/runtime/ops/index.ts +0 -122
- package/src/runtime/ops/playbooks/index.ts +0 -10
- package/src/runtime/ops/playbooks/session-unrecoverable.ts +0 -196
- package/src/runtime/ops/playbooks/stuck-turn.ts +0 -197
- package/src/runtime/ops/runtime-context.ts +0 -100
- package/src/runtime/ops-api.ts +0 -27
- package/src/runtime/orchestration/spawn-policy.ts +0 -83
- package/src/runtime/peer-client.ts +0 -404
- package/src/runtime/perf/index.ts +0 -57
- package/src/runtime/perf/slo-collector.ts +0 -375
- package/src/runtime/permissions/index.ts +0 -190
- package/src/runtime/permissions/policy-runtime.ts +0 -1
- package/src/runtime/permissions/preflight.ts +0 -101
- package/src/runtime/permissions/rule-suggestions.ts +0 -36
- package/src/runtime/plugins/hot-reload.ts +0 -221
- package/src/runtime/plugins/index.ts +0 -84
- package/src/runtime/plugins/lifecycle.ts +0 -95
- package/src/runtime/plugins/manager.ts +0 -474
- package/src/runtime/plugins/manifest.ts +0 -167
- package/src/runtime/plugins/quarantine.ts +0 -202
- package/src/runtime/plugins/trust.ts +0 -291
- package/src/runtime/plugins/types.ts +0 -205
- package/src/runtime/provider-accounts/registry.ts +0 -326
- package/src/runtime/remote/distributed-runtime-contract-schemas.ts +0 -386
- package/src/runtime/remote/index.ts +0 -488
- package/src/runtime/remote/runner-registry.ts +0 -438
- package/src/runtime/remote/supervisor.ts +0 -70
- package/src/runtime/runtime-hook-api.ts +0 -5
- package/src/runtime/runtime-knowledge-api.ts +0 -14
- package/src/runtime/runtime-mcp-api.ts +0 -5
- package/src/runtime/runtime-ops-api.ts +0 -86
- package/src/runtime/runtime-provider-api.ts +0 -18
- package/src/runtime/session-maintenance.ts +0 -188
- package/src/runtime/session-persistence.ts +0 -288
- package/src/runtime/session-return-context.ts +0 -195
- package/src/runtime/settings/control-plane-store.ts +0 -258
- package/src/runtime/settings/control-plane.ts +0 -599
- package/src/runtime/shell-command-extensions.ts +0 -54
- package/src/runtime/shell-command-ops.ts +0 -207
- package/src/runtime/shell-command-platform.ts +0 -47
- package/src/runtime/shell-command-services.ts +0 -143
- package/src/runtime/shell-command-workspace.ts +0 -31
- package/src/runtime/tasks/adapters/acp-adapter.ts +0 -211
- package/src/runtime/tasks/adapters/agent-adapter.ts +0 -208
- package/src/runtime/tasks/adapters/index.ts +0 -16
- package/src/runtime/tasks/adapters/process-adapter.ts +0 -214
- package/src/runtime/tasks/adapters/scheduler-adapter.ts +0 -193
- package/src/runtime/tasks/index.ts +0 -68
- package/src/runtime/tasks/manager.ts +0 -415
- package/src/runtime/telemetry/api-helpers.ts +0 -517
- package/src/runtime/telemetry/api.ts +0 -768
- package/src/runtime/telemetry/index.ts +0 -178
- package/src/runtime/telemetry/instrumentation/domain-bridge-agent-session.ts +0 -440
- package/src/runtime/telemetry/instrumentation/domain-bridge-plugin-mcp.ts +0 -200
- package/src/runtime/telemetry/instrumentation/domain-bridge-shared.ts +0 -18
- package/src/runtime/telemetry/instrumentation/domain-bridge-transport-task.ts +0 -204
- package/src/runtime/telemetry/instrumentation/domain-bridge.ts +0 -125
- package/src/runtime/telemetry/instrumentation/index.ts +0 -67
- package/src/runtime/tools/context.ts +0 -114
- package/src/runtime/tools/index.ts +0 -46
- package/src/runtime/tools/phased-executor.ts +0 -448
- package/src/runtime/tools/phases/budget.ts +0 -130
- package/src/runtime/tools/phases/execute.ts +0 -69
- package/src/runtime/tools/phases/index.ts +0 -13
- package/src/runtime/tools/phases/map-output.ts +0 -98
- package/src/runtime/tools/phases/permission.ts +0 -133
- package/src/runtime/tools/phases/posthook.ts +0 -57
- package/src/runtime/tools/phases/prehook.ts +0 -68
- package/src/runtime/tools/phases/validate.ts +0 -53
- package/src/runtime/transports/direct.ts +0 -73
- package/src/runtime/transports/http-helpers.ts +0 -218
- package/src/runtime/transports/http-types.ts +0 -364
- package/src/runtime/transports/http.ts +0 -629
- package/src/runtime/transports/realtime.ts +0 -50
- package/src/runtime/transports/remote-events.ts +0 -16
- package/src/runtime/transports/shared.ts +0 -39
- package/src/runtime/transports/ui-runtime-events.ts +0 -35
- package/src/runtime/ui-read-models-core.ts +0 -95
- package/src/runtime/ui-read-models-operations.ts +0 -203
- package/src/runtime/worktree/registry.ts +0 -252
- package/src/sessions/manager.ts +0 -14
- package/src/state/file-watcher.ts +0 -294
- package/src/state/index.ts +0 -56
- package/src/state/knowledge-injection.ts +0 -214
- package/src/state/memory-embedding-http.ts +0 -642
- package/src/state/memory-embeddings.ts +0 -312
- package/src/state/memory-ingest.ts +0 -132
- package/src/state/memory-registry.ts +0 -111
- package/src/state/memory-store-helpers.ts +0 -160
- package/src/state/memory-store.ts +0 -728
- package/src/state/memory-vector-store.ts +0 -418
- package/src/templates/manager.ts +0 -187
- package/src/tools/agent/index.ts +0 -610
- package/src/tools/agent/manager.ts +0 -476
- package/src/tools/analyze/git-modes.ts +0 -380
- package/src/tools/analyze/index.ts +0 -128
- package/src/tools/channel/agent-tools.ts +0 -16
- package/src/tools/channel/index.ts +0 -268
- package/src/tools/control/index.ts +0 -90
- package/src/tools/edit/core.ts +0 -619
- package/src/tools/edit/index.ts +0 -4
- package/src/tools/edit/phased.ts +0 -33
- package/src/tools/fetch/index.ts +0 -3
- package/src/tools/fetch/phased.ts +0 -34
- package/src/tools/fetch/runtime.ts +0 -499
- package/src/tools/mcp/index.ts +0 -190
- package/src/tools/remote-trigger/index.ts +0 -130
- package/src/tools/shared/auto-heal.ts +0 -282
- package/src/tools/state/index.ts +0 -688
- package/src/tools/web-search/index.ts +0 -38
- package/src/tools/write/index.ts +0 -604
- package/src/tools/write/phased.ts +0 -41
- package/src/types/generated/foundation-client-types.ts +0 -22
- package/src/watchers/index.ts +0 -11
- package/src/watchers/registry.ts +0 -517
- package/src/web-search/index.ts +0 -26
- package/src/web-search/provider-registry.ts +0 -64
- package/src/web-search/providers/brave.ts +0 -100
- package/src/web-search/providers/duckduckgo.ts +0 -270
- package/src/web-search/providers/exa.ts +0 -77
- package/src/web-search/providers/firecrawl.ts +0 -90
- package/src/web-search/providers/perplexity.ts +0 -86
- package/src/web-search/providers/searxng.ts +0 -88
- package/src/web-search/providers/shared.ts +0 -249
- package/src/web-search/providers/tavily.ts +0 -90
- package/src/web-search/service.ts +0 -142
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,78 @@ All notable changes to GoodVibes TUI.
|
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
## [0.18.13] — 2026-04-16
|
|
8
|
+
|
|
9
|
+
### SDK/TUI Boundary Separation
|
|
10
|
+
|
|
11
|
+
Major cleanup of the SDK/TUI boundary. The TUI is now a thin rendering/input/wiring layer built on `@pellux/goodvibes-sdk@0.18.29`. Thousands of lines of duplicated, forked, and dead code have been removed and replaced with SDK imports.
|
|
12
|
+
|
|
13
|
+
#### Dead Code Removed
|
|
14
|
+
|
|
15
|
+
- Deleted 4 dead daemon files that nothing imported (`facade.ts`, `facade-composition.ts`, `surface-policy.ts`, `types.ts`) — 1,291 lines removed
|
|
16
|
+
- Deleted 2 dead UI read-model files (`ui-read-models-core.ts`, `ui-read-models-operations.ts`) — the barrel already delegates to SDK
|
|
17
|
+
|
|
18
|
+
#### Forks Replaced with SDK Imports
|
|
19
|
+
|
|
20
|
+
- Replaced `src/core/orchestrator.ts` (736 lines) with a 3-line re-export from SDK — the SDK's Orchestrator already includes `getSpinner()`
|
|
21
|
+
- Replaced `src/plugins/loader.ts` (305 lines) with re-exports from SDK — the SDK now supports `additionalDirectories` and `entryDefault` options
|
|
22
|
+
- Replaced `src/tools/index.ts` (187 lines) with re-export of SDK's `registerAllTools`
|
|
23
|
+
- Replaced `src/config/subscription-providers.ts` (128 lines) with `export *` from SDK
|
|
24
|
+
- Replaced `src/config/index.ts` API key functions with re-exports from SDK's new `config/api-keys.ts`
|
|
25
|
+
- Replaced `src/permissions/prompt.ts` type definitions with imports from SDK — kept `PermissionPromptUI` class (TUI-specific rendering)
|
|
26
|
+
- Replaced 4 store/runtime duplicate files with SDK re-exports (conversation domain, permissions domain, conversation reducers, lifecycle reducers)
|
|
27
|
+
|
|
28
|
+
#### ConversationManager Refactored
|
|
29
|
+
|
|
30
|
+
- Refactored `src/core/conversation.ts` from a 776-line standalone class to a ~450-line subclass extending SDK's `ConversationManager`
|
|
31
|
+
- Removed all duplicated message management methods (CRUD, branching, persistence, compaction, undo/redo) — now inherited from SDK
|
|
32
|
+
- Defined `TuiBlockMeta extends BlockMeta` with rendering fields (`blockIndex`, `startLine`, `lineCount`, `collapseKey`)
|
|
33
|
+
- Kept all TUI-specific rendering methods (history buffer, block registry, collapse state, display navigation)
|
|
34
|
+
|
|
35
|
+
#### Health Monitoring Renamed
|
|
36
|
+
|
|
37
|
+
- Renamed `panelHealthMonitor` to `componentHealthMonitor` throughout the TUI to align with SDK 0.18.29's generic naming
|
|
38
|
+
- Updated 20 files across runtime, panels, diagnostics, bootstrap, and tests
|
|
39
|
+
- Added deprecated `Panel*` type aliases for backward compatibility
|
|
40
|
+
|
|
41
|
+
#### RuntimeState Aligned with SDK
|
|
42
|
+
|
|
43
|
+
- Updated `store/state.ts` to use SDK's `surfacePerf: SurfacePerfDomainState` instead of `uiPerf: UiPerfDomainState`
|
|
44
|
+
- Updated `store/selectors/index.ts` to match SDK's selector shape
|
|
45
|
+
- Health monitoring perf files rewritten as SDK re-export shims
|
|
46
|
+
|
|
47
|
+
#### Clipboard Split
|
|
48
|
+
|
|
49
|
+
- Created `src/utils/clipboard.ts` with TUI-specific OSC 52 `copyToClipboard` function
|
|
50
|
+
- Platform clipboard paste functions remain in SDK
|
|
51
|
+
|
|
52
|
+
### Verification
|
|
53
|
+
|
|
54
|
+
- Full typecheck passes: `bun x tsc --noEmit` — 0 errors
|
|
55
|
+
- Updated to `@pellux/goodvibes-sdk@0.18.29`
|
|
56
|
+
|
|
57
|
+
## [0.18.12] — 2026-04-15
|
|
58
|
+
|
|
59
|
+
### SDK `0.18.28` Session-Persistence Boundary Fix
|
|
60
|
+
|
|
61
|
+
- Updated `goodvibes-tui` to consume the published canonical SDK line at `@pellux/goodvibes-sdk@0.18.28`
|
|
62
|
+
- Pulled in the SDK fix that threads `surfaceRoot` through the last-session pointer and crash-recovery helpers instead of silently falling back to the shared `.goodvibes/...` tree
|
|
63
|
+
- This closes the remaining TUI session-storage boundary leak that could still split a TUI-owned session across `.goodvibes/tui/...` and the unscoped shared root even after the broader SDK cutover
|
|
64
|
+
|
|
65
|
+
### TUI Validation Tail Cleanup
|
|
66
|
+
|
|
67
|
+
- Moved the remaining session, template, picker, plugin, bootstrap-service, and related test temp roots onto the repo-local `.test-tmp/...` path instead of `os.tmpdir()`, removing the local quota failures that were still breaking the TUI validation pass
|
|
68
|
+
- Updated the shell-control cutover gate to assert against the current TUI production surfaces and the intentional removal of old local platform files instead of reading deleted pre-cutover paths
|
|
69
|
+
- Removed the stale typed-emission allowlist entry for `src/runtime/health/effect-handlers.ts` after that file was deleted during the SDK cutover, so the enforcement gate now reflects the live tree again
|
|
70
|
+
|
|
71
|
+
### Verification
|
|
72
|
+
|
|
73
|
+
- Full typecheck passes: `bun x tsc --noEmit --pretty false`
|
|
74
|
+
- Full test runner passes: `bun run test` (`437` files passed / `0` failed)
|
|
75
|
+
- Architecture gate passes: `bun run architecture:check`
|
|
76
|
+
- Build passes: `bun run build`
|
|
77
|
+
- Targeted cutover regression band passes against the published SDK `0.18.28`
|
|
78
|
+
|
|
7
79
|
## [0.18.11] — 2026-04-15
|
|
8
80
|
|
|
9
81
|
### Version Boundary Cleanup
|
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://github.com/mgd34msu/goodvibes-tui/actions/workflows/ci.yml)
|
|
4
4
|
[](https://opensource.org/licenses/MIT)
|
|
5
|
-
[](https://github.com/mgd34msu/goodvibes-tui)
|
|
6
6
|
|
|
7
7
|
A terminal-native AI coding, operations, automation, knowledge, and integration console with a typed runtime, omnichannel surfaces, structured memory/knowledge, and a raw ANSI renderer.
|
|
8
8
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pellux/goodvibes-tui",
|
|
3
|
-
"version": "0.18.
|
|
3
|
+
"version": "0.18.13",
|
|
4
4
|
"description": "Terminal-native GoodVibes product for coding, operations, automation, knowledge, channels, and daemon-backed control-plane workflows.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "src/main.ts",
|
|
@@ -88,7 +88,7 @@
|
|
|
88
88
|
"@anthropic-ai/vertex-sdk": "^0.16.0",
|
|
89
89
|
"@ast-grep/napi": "^0.42.0",
|
|
90
90
|
"@aws/bedrock-token-generator": "^1.1.0",
|
|
91
|
-
"@pellux/goodvibes-sdk": "0.18.
|
|
91
|
+
"@pellux/goodvibes-sdk": "0.18.29",
|
|
92
92
|
"bash-language-server": "^5.6.0",
|
|
93
93
|
"fuse.js": "^7.1.0",
|
|
94
94
|
"graphql": "^16.13.2",
|
package/src/config/index.ts
CHANGED
|
@@ -15,7 +15,6 @@ export { ConfigError } from '@pellux/goodvibes-sdk/platform/types/errors';
|
|
|
15
15
|
import { readFileSync } from 'fs';
|
|
16
16
|
import { ConfigManager } from '@pellux/goodvibes-sdk/platform/config/manager';
|
|
17
17
|
import type { GoodVibesConfig } from '@pellux/goodvibes-sdk/platform/config/schema';
|
|
18
|
-
import { SecretsManager } from './secrets.ts';
|
|
19
18
|
import { logger } from '@pellux/goodvibes-sdk/platform/utils/logger';
|
|
20
19
|
import { summarizeError } from '@pellux/goodvibes-sdk/platform/utils/error-display';
|
|
21
20
|
|
|
@@ -54,140 +53,4 @@ export function getConfiguredSystemPrompt(configManager: Pick<ConfigManager, 'ge
|
|
|
54
53
|
}
|
|
55
54
|
}
|
|
56
55
|
|
|
57
|
-
export
|
|
58
|
-
return loadEnvApiKeys();
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
function loadEnvApiKeys(): Record<string, string> {
|
|
62
|
-
const keys: Record<string, string> = {};
|
|
63
|
-
const mapping: Record<string, string> = {
|
|
64
|
-
openai: 'OPENAI_API_KEY',
|
|
65
|
-
anthropic: 'ANTHROPIC_API_KEY',
|
|
66
|
-
gemini: 'GEMINI_API_KEY',
|
|
67
|
-
inceptionlabs: 'INCEPTION_API_KEY',
|
|
68
|
-
openrouter: 'OPENROUTER_API_KEY',
|
|
69
|
-
aihubmix: 'AIHUBMIX_API_KEY',
|
|
70
|
-
groq: 'GROQ_API_KEY',
|
|
71
|
-
cerebras: 'CEREBRAS_API_KEY',
|
|
72
|
-
mistral: 'MISTRAL_API_KEY',
|
|
73
|
-
'ollama-cloud': 'OLLAMA_CLOUD_API_KEY',
|
|
74
|
-
// Note: also checked as OLLAMA_API_KEY below
|
|
75
|
-
huggingface: 'HF_API_KEY',
|
|
76
|
-
nvidia: 'NVIDIA_API_KEY',
|
|
77
|
-
llm7: 'LLM7_API_KEY',
|
|
78
|
-
deepseek: 'DEEPSEEK_API_KEY',
|
|
79
|
-
fireworks: 'FIREWORKS_API_KEY',
|
|
80
|
-
'github-copilot': 'COPILOT_GITHUB_TOKEN',
|
|
81
|
-
'microsoft-foundry': 'AZURE_OPENAI_API_KEY',
|
|
82
|
-
minimax: 'MINIMAX_API_KEY',
|
|
83
|
-
moonshot: 'MOONSHOT_API_KEY',
|
|
84
|
-
qianfan: 'QIANFAN_API_KEY',
|
|
85
|
-
qwen: 'QWEN_API_KEY',
|
|
86
|
-
sglang: 'SGLANG_API_KEY',
|
|
87
|
-
stepfun: 'STEPFUN_API_KEY',
|
|
88
|
-
together: 'TOGETHER_API_KEY',
|
|
89
|
-
venice: 'VENICE_API_KEY',
|
|
90
|
-
volcengine: 'VOLCANO_ENGINE_API_KEY',
|
|
91
|
-
xai: 'XAI_API_KEY',
|
|
92
|
-
xiaomi: 'XIAOMI_API_KEY',
|
|
93
|
-
zai: 'ZAI_API_KEY',
|
|
94
|
-
'cloudflare-ai-gateway': 'CLOUDFLARE_AI_GATEWAY_API_KEY',
|
|
95
|
-
'vercel-ai-gateway': 'AI_GATEWAY_API_KEY',
|
|
96
|
-
litellm: 'LITELLM_API_KEY',
|
|
97
|
-
'copilot-proxy': 'COPILOT_PROXY_API_KEY',
|
|
98
|
-
};
|
|
99
|
-
for (const [prov, envVar] of Object.entries(mapping)) {
|
|
100
|
-
let value = process.env[envVar];
|
|
101
|
-
// Fallback env var names
|
|
102
|
-
if (!value && prov === 'gemini') value = process.env['GOOGLE_API_KEY'] ?? process.env['GOOGLE_GEMINI_API_KEY'];
|
|
103
|
-
if (!value && prov === 'openai') value = process.env['OPENAI_KEY'];
|
|
104
|
-
if (!value && prov === 'anthropic') value = process.env['CLAUDE_API_KEY'];
|
|
105
|
-
if (!value && prov === 'ollama-cloud') value = process.env['OLLAMA_API_KEY'];
|
|
106
|
-
if (!value && prov === 'huggingface') value = process.env['HUGGINGFACE_API_KEY'] ?? process.env['HF_TOKEN'];
|
|
107
|
-
if (!value && prov === 'github-copilot') value = process.env['GH_TOKEN'] ?? process.env['GITHUB_TOKEN'];
|
|
108
|
-
if (!value && prov === 'qwen') value = process.env['DASHSCOPE_API_KEY'] ?? process.env['MODELSTUDIO_API_KEY'];
|
|
109
|
-
if (!value && prov === 'zai') value = process.env['Z_AI_API_KEY'];
|
|
110
|
-
if (value) keys[prov] = value;
|
|
111
|
-
}
|
|
112
|
-
return keys;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
/**
|
|
116
|
-
* resolveApiKeys — three-tier async resolution for all provider API keys.
|
|
117
|
-
*
|
|
118
|
-
* Resolution order per key:
|
|
119
|
-
* 1. Environment variable (process.env)
|
|
120
|
-
* 2. SecretsManager hierarchy-aware stores (secure preferred, plaintext policy-aware)
|
|
121
|
-
* 3. Omitted from result (null → skip)
|
|
122
|
-
*
|
|
123
|
-
* Returns a map of provider → apiKey for all providers where a key is found.
|
|
124
|
-
*/
|
|
125
|
-
export async function resolveApiKeys(
|
|
126
|
-
secrets: Pick<SecretsManager, 'get'>,
|
|
127
|
-
): Promise<Record<string, string>> {
|
|
128
|
-
const mapping: Array<{ prov: string; envVars: string[] }> = [
|
|
129
|
-
{ prov: 'openai', envVars: ['OPENAI_API_KEY', 'OPENAI_KEY'] },
|
|
130
|
-
{ prov: 'anthropic', envVars: ['ANTHROPIC_API_KEY', 'CLAUDE_API_KEY'] },
|
|
131
|
-
{ prov: 'gemini', envVars: ['GEMINI_API_KEY', 'GOOGLE_API_KEY', 'GOOGLE_GEMINI_API_KEY'] },
|
|
132
|
-
{ prov: 'inceptionlabs', envVars: ['INCEPTION_API_KEY'] },
|
|
133
|
-
{ prov: 'openrouter', envVars: ['OPENROUTER_API_KEY'] },
|
|
134
|
-
{ prov: 'aihubmix', envVars: ['AIHUBMIX_API_KEY'] },
|
|
135
|
-
{ prov: 'groq', envVars: ['GROQ_API_KEY'] },
|
|
136
|
-
{ prov: 'cerebras', envVars: ['CEREBRAS_API_KEY'] },
|
|
137
|
-
{ prov: 'mistral', envVars: ['MISTRAL_API_KEY'] },
|
|
138
|
-
{ prov: 'ollama-cloud', envVars: ['OLLAMA_CLOUD_API_KEY', 'OLLAMA_API_KEY'] },
|
|
139
|
-
{ prov: 'huggingface', envVars: ['HF_API_KEY', 'HUGGINGFACE_API_KEY', 'HF_TOKEN'] },
|
|
140
|
-
{ prov: 'nvidia', envVars: ['NVIDIA_API_KEY'] },
|
|
141
|
-
{ prov: 'llm7', envVars: ['LLM7_API_KEY'] },
|
|
142
|
-
{ prov: 'deepseek', envVars: ['DEEPSEEK_API_KEY'] },
|
|
143
|
-
{ prov: 'fireworks', envVars: ['FIREWORKS_API_KEY'] },
|
|
144
|
-
{ prov: 'github-copilot', envVars: ['COPILOT_GITHUB_TOKEN', 'GH_TOKEN', 'GITHUB_TOKEN'] },
|
|
145
|
-
{ prov: 'microsoft-foundry', envVars: ['AZURE_OPENAI_API_KEY'] },
|
|
146
|
-
{ prov: 'minimax', envVars: ['MINIMAX_API_KEY'] },
|
|
147
|
-
{ prov: 'moonshot', envVars: ['MOONSHOT_API_KEY'] },
|
|
148
|
-
{ prov: 'qianfan', envVars: ['QIANFAN_API_KEY'] },
|
|
149
|
-
{ prov: 'qwen', envVars: ['QWEN_API_KEY', 'DASHSCOPE_API_KEY', 'MODELSTUDIO_API_KEY'] },
|
|
150
|
-
{ prov: 'sglang', envVars: ['SGLANG_API_KEY'] },
|
|
151
|
-
{ prov: 'stepfun', envVars: ['STEPFUN_API_KEY'] },
|
|
152
|
-
{ prov: 'together', envVars: ['TOGETHER_API_KEY'] },
|
|
153
|
-
{ prov: 'venice', envVars: ['VENICE_API_KEY'] },
|
|
154
|
-
{ prov: 'volcengine', envVars: ['VOLCANO_ENGINE_API_KEY'] },
|
|
155
|
-
{ prov: 'xai', envVars: ['XAI_API_KEY'] },
|
|
156
|
-
{ prov: 'xiaomi', envVars: ['XIAOMI_API_KEY'] },
|
|
157
|
-
{ prov: 'zai', envVars: ['ZAI_API_KEY', 'Z_AI_API_KEY'] },
|
|
158
|
-
{ prov: 'cloudflare-ai-gateway', envVars: ['CLOUDFLARE_AI_GATEWAY_API_KEY'] },
|
|
159
|
-
{ prov: 'vercel-ai-gateway', envVars: ['AI_GATEWAY_API_KEY'] },
|
|
160
|
-
{ prov: 'litellm', envVars: ['LITELLM_API_KEY'] },
|
|
161
|
-
{ prov: 'copilot-proxy', envVars: ['COPILOT_PROXY_API_KEY'] },
|
|
162
|
-
];
|
|
163
|
-
|
|
164
|
-
const result: Record<string, string> = {};
|
|
165
|
-
|
|
166
|
-
for (const { prov, envVars } of mapping) {
|
|
167
|
-
// Tier 1: environment variables
|
|
168
|
-
let value: string | null = null;
|
|
169
|
-
for (const envVar of envVars) {
|
|
170
|
-
if (process.env[envVar]) {
|
|
171
|
-
value = process.env[envVar]!;
|
|
172
|
-
break;
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
// Tier 2: SecretsManager hierarchy-aware secure/plaintext stores
|
|
177
|
-
if (value === null) {
|
|
178
|
-
for (const envVar of envVars) {
|
|
179
|
-
const stored = await secrets.get(envVar);
|
|
180
|
-
if (stored !== null) {
|
|
181
|
-
value = stored;
|
|
182
|
-
break;
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
if (value !== null) {
|
|
188
|
-
result[prov] = value;
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
return result;
|
|
193
|
-
}
|
|
56
|
+
export { getConfiguredApiKeys, resolveApiKeys } from '@pellux/goodvibes-sdk/platform/config/api-keys';
|
|
@@ -1,127 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import type { ServiceConfig } from './service-registry.ts';
|
|
3
|
-
|
|
4
|
-
export interface BuiltinSubscriptionProvider {
|
|
5
|
-
readonly provider: string;
|
|
6
|
-
readonly displayName: string;
|
|
7
|
-
readonly authType: 'oauth';
|
|
8
|
-
readonly tokenKey: string;
|
|
9
|
-
readonly providerId: string;
|
|
10
|
-
readonly oauth: OAuthProviderConfig;
|
|
11
|
-
readonly notes: readonly string[];
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export interface AvailableSubscriptionProvider {
|
|
15
|
-
readonly provider: string;
|
|
16
|
-
readonly displayName: string;
|
|
17
|
-
readonly source: 'builtin' | 'service';
|
|
18
|
-
readonly oauth: OAuthProviderConfig;
|
|
19
|
-
readonly tokenKey: string;
|
|
20
|
-
readonly providerId: string;
|
|
21
|
-
readonly notes: readonly string[];
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
const OPENAI_SUBSCRIPTION_PROVIDER: BuiltinSubscriptionProvider = {
|
|
25
|
-
provider: 'openai',
|
|
26
|
-
displayName: 'OpenAI Codex',
|
|
27
|
-
authType: 'oauth',
|
|
28
|
-
tokenKey: 'OPENAI_API_KEY',
|
|
29
|
-
providerId: 'openai',
|
|
30
|
-
oauth: {
|
|
31
|
-
authUrl: 'https://auth.openai.com/oauth/authorize',
|
|
32
|
-
tokenUrl: 'https://auth.openai.com/oauth/token',
|
|
33
|
-
clientId: 'app_EMoamEEZ73f0CkXaXp7hrann',
|
|
34
|
-
redirectUri: 'http://localhost:1455/auth/callback',
|
|
35
|
-
scopes: ['openid', 'profile', 'email', 'offline_access'],
|
|
36
|
-
usePkce: true,
|
|
37
|
-
tokenRequestEncoding: 'form',
|
|
38
|
-
refreshRequestEncoding: 'form',
|
|
39
|
-
overrideAmbientApiKeys: false,
|
|
40
|
-
authParams: {
|
|
41
|
-
id_token_add_organizations: 'true',
|
|
42
|
-
codex_cli_simplified_flow: 'true',
|
|
43
|
-
originator: 'pi',
|
|
44
|
-
},
|
|
45
|
-
localCallback: {
|
|
46
|
-
host: 'localhost',
|
|
47
|
-
port: 1455,
|
|
48
|
-
path: '/auth/callback',
|
|
49
|
-
autoComplete: true,
|
|
50
|
-
},
|
|
51
|
-
},
|
|
52
|
-
notes: [
|
|
53
|
-
'Built-in OpenAI Codex / ChatGPT subscription login path.',
|
|
54
|
-
'Uses the Codex/ChatGPT OAuth flow rather than the standard OpenAI API-key path.',
|
|
55
|
-
],
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
const BUILTIN_SUBSCRIPTION_PROVIDERS: Record<string, BuiltinSubscriptionProvider> = {
|
|
59
|
-
openai: OPENAI_SUBSCRIPTION_PROVIDER,
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
export function listBuiltinSubscriptionProviders(): BuiltinSubscriptionProvider[] {
|
|
63
|
-
return Object.values(BUILTIN_SUBSCRIPTION_PROVIDERS)
|
|
64
|
-
.slice()
|
|
65
|
-
.sort((a, b) => a.provider.localeCompare(b.provider));
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
export function getBuiltinSubscriptionProvider(provider: string): BuiltinSubscriptionProvider | null {
|
|
69
|
-
return BUILTIN_SUBSCRIPTION_PROVIDERS[provider] ?? null;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
export function getSubscriptionProviderConfig(
|
|
73
|
-
provider: string,
|
|
74
|
-
serviceConfig?: ServiceConfig | null,
|
|
75
|
-
): { oauth: OAuthProviderConfig; source: 'service' | 'builtin'; tokenKey: string; providerId: string } | null {
|
|
76
|
-
if (serviceConfig?.authType === 'oauth' && serviceConfig.oauth) {
|
|
77
|
-
return {
|
|
78
|
-
oauth: serviceConfig.oauth,
|
|
79
|
-
source: 'service',
|
|
80
|
-
tokenKey: serviceConfig.tokenKey,
|
|
81
|
-
providerId: serviceConfig.providerId ?? serviceConfig.name,
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
const builtin = getBuiltinSubscriptionProvider(provider);
|
|
86
|
-
if (!builtin) return null;
|
|
87
|
-
return {
|
|
88
|
-
oauth: builtin.oauth,
|
|
89
|
-
source: 'builtin',
|
|
90
|
-
tokenKey: builtin.tokenKey,
|
|
91
|
-
providerId: builtin.providerId,
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
export function listAvailableSubscriptionProviders(
|
|
96
|
-
services: Record<string, ServiceConfig>,
|
|
97
|
-
): AvailableSubscriptionProvider[] {
|
|
98
|
-
const providers = new Map<string, AvailableSubscriptionProvider>();
|
|
99
|
-
|
|
100
|
-
for (const builtin of listBuiltinSubscriptionProviders()) {
|
|
101
|
-
providers.set(builtin.provider, {
|
|
102
|
-
provider: builtin.provider,
|
|
103
|
-
displayName: builtin.displayName,
|
|
104
|
-
source: 'builtin',
|
|
105
|
-
oauth: builtin.oauth,
|
|
106
|
-
tokenKey: builtin.tokenKey,
|
|
107
|
-
providerId: builtin.providerId,
|
|
108
|
-
notes: builtin.notes,
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
for (const service of Object.values(services)) {
|
|
113
|
-
if (service.authType !== 'oauth' || !service.oauth) continue;
|
|
114
|
-
const provider = service.providerId ?? service.name;
|
|
115
|
-
providers.set(provider, {
|
|
116
|
-
provider,
|
|
117
|
-
displayName: service.name,
|
|
118
|
-
source: 'service',
|
|
119
|
-
oauth: service.oauth,
|
|
120
|
-
tokenKey: service.tokenKey,
|
|
121
|
-
providerId: provider,
|
|
122
|
-
notes: ['Configured through .goodvibes/tui/services.json'],
|
|
123
|
-
});
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
return [...providers.values()].sort((a, b) => a.provider.localeCompare(b.provider));
|
|
127
|
-
}
|
|
1
|
+
export * from '@pellux/goodvibes-sdk/platform/config/subscription-providers';
|
|
@@ -3,16 +3,16 @@ import { renderMarkdown, renderMarkdownTracked } from '../renderer/markdown.ts';
|
|
|
3
3
|
import { renderToolCallBlock } from '../renderer/tool-call.ts';
|
|
4
4
|
import { renderThinkingBlock } from '../renderer/thinking.ts';
|
|
5
5
|
import { renderSystemMessage } from '../renderer/system-message.ts';
|
|
6
|
-
import { createEmptyLine, type Line, type Cell } from '
|
|
7
|
-
import { getSplashLines, type SplashOptions } from '
|
|
8
|
-
import { interpolateColor, getDisplayWidth, wrapText } from '
|
|
6
|
+
import { createEmptyLine, type Line, type Cell } from '../types/grid.ts';
|
|
7
|
+
import { getSplashLines, type SplashOptions } from '../utils/splash-lines.ts';
|
|
8
|
+
import { interpolateColor, getDisplayWidth, wrapText } from '../utils/terminal-width.ts';
|
|
9
9
|
import { LAYOUT } from '../renderer/layout.ts';
|
|
10
10
|
import type { ConfigManager } from '@pellux/goodvibes-sdk/platform/config/manager';
|
|
11
11
|
import { renderConversationCollapsedFragment, renderConversationEventLine } from '../renderer/conversation-surface.ts';
|
|
12
12
|
import { GLYPHS } from '../renderer/ui-primitives.ts';
|
|
13
13
|
import type { BlockMeta, ConversationMessageSnapshot } from './conversation';
|
|
14
|
-
import { parseDiffForApply } from '
|
|
15
|
-
import { extractUserDisplayText } from '
|
|
14
|
+
import { parseDiffForApply } from '@pellux/goodvibes-sdk/platform/core/conversation-diff';
|
|
15
|
+
import { extractUserDisplayText } from '@pellux/goodvibes-sdk/platform/core/conversation-utils';
|
|
16
16
|
|
|
17
17
|
type Message = ConversationMessageSnapshot;
|
|
18
18
|
|