@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
|
@@ -32,43 +32,19 @@ import { getConfigSnapshot } from '../config/index.ts';
|
|
|
32
32
|
import type { ConfigManager } from '@pellux/goodvibes-sdk/platform/config/manager';
|
|
33
33
|
import type { ConversationManager } from './conversation';
|
|
34
34
|
import type { SystemMessagesPanel, SystemMessagePriority } from '../panels/system-messages-panel.ts';
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
* Classify a message as high or low priority based on content.
|
|
49
|
-
* Used by routeAuto() when the caller doesn't specify priority.
|
|
50
|
-
*
|
|
51
|
-
* @internal
|
|
52
|
-
*/
|
|
53
|
-
function classifyPriority(message: string): SystemMessagePriority {
|
|
54
|
-
return HIGH_PRIORITY_RE.test(message) ? 'high' : 'low';
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
export type SystemMessageKind = 'system' | 'operational' | 'wrfc';
|
|
58
|
-
export type SystemMessageTarget = 'conversation' | 'panel' | 'both';
|
|
59
|
-
|
|
60
|
-
function defaultTargetForKind(kind: SystemMessageKind): SystemMessageTarget {
|
|
61
|
-
if (kind === 'wrfc') return 'both';
|
|
62
|
-
return 'panel';
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
function classifyKind(message: string): SystemMessageKind {
|
|
66
|
-
if (/^\[WRFC\]/i.test(message)) return 'wrfc';
|
|
67
|
-
if (/^\[(Scan|Local|Agents|MCP|Plugin|Hook|Tool|Exec|Remote|Bridge|Approval)\]/i.test(message)) {
|
|
68
|
-
return 'operational';
|
|
69
|
-
}
|
|
70
|
-
return 'system';
|
|
71
|
-
}
|
|
35
|
+
import {
|
|
36
|
+
classifySystemMessageKind,
|
|
37
|
+
classifySystemMessagePriority,
|
|
38
|
+
defaultSystemMessageTarget,
|
|
39
|
+
resolveSystemMessageDelivery,
|
|
40
|
+
type SystemMessageKind,
|
|
41
|
+
type SystemMessageTarget,
|
|
42
|
+
} from '@pellux/goodvibes-sdk/platform/runtime/system-message-policy';
|
|
43
|
+
|
|
44
|
+
export type {
|
|
45
|
+
SystemMessageKind,
|
|
46
|
+
SystemMessageTarget,
|
|
47
|
+
} from '@pellux/goodvibes-sdk/platform/runtime/system-message-policy';
|
|
72
48
|
|
|
73
49
|
function targetForKind(
|
|
74
50
|
configManager: Pick<ConfigManager, 'getRaw'>,
|
|
@@ -80,21 +56,6 @@ function targetForKind(
|
|
|
80
56
|
return ui.systemMessages;
|
|
81
57
|
}
|
|
82
58
|
|
|
83
|
-
function resolveDelivery(
|
|
84
|
-
target: SystemMessageTarget,
|
|
85
|
-
hasPanel: boolean,
|
|
86
|
-
): { readonly toPanel: boolean; readonly toConversation: boolean } {
|
|
87
|
-
if (target === 'both') {
|
|
88
|
-
return { toPanel: hasPanel, toConversation: true };
|
|
89
|
-
}
|
|
90
|
-
if (target === 'conversation') {
|
|
91
|
-
return { toPanel: false, toConversation: true };
|
|
92
|
-
}
|
|
93
|
-
return hasPanel
|
|
94
|
-
? { toPanel: true, toConversation: false }
|
|
95
|
-
: { toPanel: false, toConversation: true };
|
|
96
|
-
}
|
|
97
|
-
|
|
98
59
|
// ---------------------------------------------------------------------------
|
|
99
60
|
// SystemMessageRouter
|
|
100
61
|
// ---------------------------------------------------------------------------
|
|
@@ -107,7 +68,7 @@ export class SystemMessageRouter {
|
|
|
107
68
|
constructor(
|
|
108
69
|
private readonly conversation: ConversationManager,
|
|
109
70
|
private panel: SystemMessagesPanel | null,
|
|
110
|
-
private readonly getTargetForKind: (kind: SystemMessageKind) => SystemMessageTarget =
|
|
71
|
+
private readonly getTargetForKind: (kind: SystemMessageKind) => SystemMessageTarget = defaultSystemMessageTarget,
|
|
111
72
|
) {}
|
|
112
73
|
|
|
113
74
|
// ── Public API ────────────────────────────────────────────────────────────
|
|
@@ -127,7 +88,7 @@ export class SystemMessageRouter {
|
|
|
127
88
|
kind: SystemMessageKind,
|
|
128
89
|
): void {
|
|
129
90
|
const target = this.getTargetForKind(kind);
|
|
130
|
-
const delivery =
|
|
91
|
+
const delivery = resolveSystemMessageDelivery(target, this.panel !== null);
|
|
131
92
|
if (delivery.toPanel) {
|
|
132
93
|
this.panel?.push(message, priority);
|
|
133
94
|
}
|
|
@@ -137,7 +98,7 @@ export class SystemMessageRouter {
|
|
|
137
98
|
}
|
|
138
99
|
|
|
139
100
|
routeSystemMessage(message: string, priority: SystemMessagePriority): void {
|
|
140
|
-
this.routeTypedSystemMessage(message, priority,
|
|
101
|
+
this.routeTypedSystemMessage(message, priority, classifySystemMessageKind(message));
|
|
141
102
|
}
|
|
142
103
|
|
|
143
104
|
/**
|
|
@@ -149,8 +110,8 @@ export class SystemMessageRouter {
|
|
|
149
110
|
* @param message - Message text.
|
|
150
111
|
*/
|
|
151
112
|
routeAuto(message: string): void {
|
|
152
|
-
const priority =
|
|
153
|
-
this.routeTypedSystemMessage(message, priority,
|
|
113
|
+
const priority: SystemMessagePriority = classifySystemMessagePriority(message);
|
|
114
|
+
this.routeTypedSystemMessage(message, priority, classifySystemMessageKind(message));
|
|
154
115
|
}
|
|
155
116
|
|
|
156
117
|
/**
|
|
@@ -204,7 +165,7 @@ export class SystemMessageRouter {
|
|
|
204
165
|
export function createSystemMessageRouter(
|
|
205
166
|
conversation: ConversationManager,
|
|
206
167
|
panel: SystemMessagesPanel | null = null,
|
|
207
|
-
getTargetForKind: (kind: SystemMessageKind) => SystemMessageTarget =
|
|
168
|
+
getTargetForKind: (kind: SystemMessageKind) => SystemMessageTarget = defaultSystemMessageTarget,
|
|
208
169
|
): SystemMessageRouter {
|
|
209
170
|
return new SystemMessageRouter(conversation, panel, getTargetForKind);
|
|
210
171
|
}
|
|
@@ -55,7 +55,7 @@ export interface CommandUiActions {
|
|
|
55
55
|
renderRequest: () => void;
|
|
56
56
|
print: (text: string) => void;
|
|
57
57
|
exit: () => void;
|
|
58
|
-
submitInput?: (text: string, content?: import('
|
|
58
|
+
submitInput?: (text: string, content?: import('@pellux/goodvibes-sdk/platform/providers/interface').ContentPart[]) => void;
|
|
59
59
|
executeCommand?: (name: string, args: string[]) => Promise<boolean>;
|
|
60
60
|
cancelGeneration?: () => void;
|
|
61
61
|
completeModelSelection?: (selection: {
|
|
@@ -109,7 +109,7 @@ export interface CommandShellUiOpeners {
|
|
|
109
109
|
export interface CommandSessionServices {
|
|
110
110
|
readonly conversationManager: ConversationManager;
|
|
111
111
|
readonly runtime: CommandRuntimeState;
|
|
112
|
-
readonly sessionManager?: import('
|
|
112
|
+
readonly sessionManager?: import('@pellux/goodvibes-sdk/platform/sessions/manager').SessionManager;
|
|
113
113
|
readonly sessionMemoryStore?: import('@pellux/goodvibes-sdk/platform/core/session-memory').SessionMemoryStore;
|
|
114
114
|
readonly sessionLineageTracker?: import('@pellux/goodvibes-sdk/platform/core/session-lineage').SessionLineageTracker;
|
|
115
115
|
readonly changeTracker?: import('@pellux/goodvibes-sdk/platform/sessions/change-tracker').SessionChangeTracker;
|
|
@@ -117,7 +117,7 @@ export interface CommandSessionServices {
|
|
|
117
117
|
|
|
118
118
|
export interface CommandProviderServices {
|
|
119
119
|
readonly providerRegistry: ProviderRegistry;
|
|
120
|
-
readonly providerOptimizer?: import('
|
|
120
|
+
readonly providerOptimizer?: import('@pellux/goodvibes-sdk/platform/providers/optimizer').ProviderOptimizer;
|
|
121
121
|
readonly favoritesStore?: import('@pellux/goodvibes-sdk/platform/providers/favorites').FavoritesStore;
|
|
122
122
|
readonly benchmarkStore?: import('@pellux/goodvibes-sdk/platform/providers/model-benchmarks').BenchmarkStore;
|
|
123
123
|
}
|
|
@@ -4,7 +4,7 @@ import { writeFile } from 'node:fs/promises';
|
|
|
4
4
|
import type { CommandRegistry } from '../command-registry.ts';
|
|
5
5
|
import type { SelectionItem } from '../selection-modal.ts';
|
|
6
6
|
import { exportToMarkdown } from '@pellux/goodvibes-sdk/platform/export/markdown';
|
|
7
|
-
import { TemplateManager, parseTemplateArgs } from '
|
|
7
|
+
import { TemplateManager, parseTemplateArgs } from '@pellux/goodvibes-sdk/platform/templates/manager';
|
|
8
8
|
import { requireSessionManager, requireSessionMemoryStore, requireShellPaths } from './runtime-services.ts';
|
|
9
9
|
import { summarizeError } from '@pellux/goodvibes-sdk/platform/utils/error-display';
|
|
10
10
|
|
|
@@ -43,7 +43,7 @@ export function registerSessionContentCommands(registry: CommandRegistry): void
|
|
|
43
43
|
const exportMsgs = msgs.map(m => ({
|
|
44
44
|
role: String(m.role ?? 'user') as 'user' | 'assistant' | 'system' | 'tool',
|
|
45
45
|
content: Array.isArray(m.content)
|
|
46
|
-
? m.content as import('
|
|
46
|
+
? m.content as import('@pellux/goodvibes-sdk/platform/providers/interface').ContentPart[]
|
|
47
47
|
: String(m.content ?? ''),
|
|
48
48
|
toolCalls: m.toolCalls as import('@pellux/goodvibes-sdk/platform/types/tools').ToolCall[] | undefined,
|
|
49
49
|
callId: m.callId as string | undefined,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { randomBytes } from 'node:crypto';
|
|
2
2
|
|
|
3
3
|
import type { CommandContext, CommandRegistry } from '../command-registry.ts';
|
|
4
|
-
import { type SessionMeta } from '
|
|
4
|
+
import { type SessionMeta } from '@pellux/goodvibes-sdk/platform/sessions/manager';
|
|
5
5
|
import type { TranscriptEventKind } from '@pellux/goodvibes-sdk/platform/core/transcript-events/index';
|
|
6
6
|
import type { ConversationTitleSource } from '../../core/conversation';
|
|
7
7
|
import type { SessionReturnContextSummary } from '@pellux/goodvibes-sdk/platform/runtime/session-return-context';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { readFileSync, writeFileSync, existsSync } from 'node:fs';
|
|
2
|
-
import { copyToClipboard, pasteFromClipboard, pasteImageFromClipboard } from '
|
|
3
|
-
import type { InfiniteBuffer } from '
|
|
2
|
+
import { copyToClipboard, pasteFromClipboard, pasteImageFromClipboard } from '../utils/clipboard.ts';
|
|
3
|
+
import type { InfiniteBuffer } from '../core/history.ts';
|
|
4
4
|
import type { ConversationManager } from '../core/conversation';
|
|
5
5
|
import type { PermissionCategory } from '@pellux/goodvibes-sdk/platform/permissions/manager';
|
|
6
6
|
import type { ContentPart } from '@pellux/goodvibes-sdk/platform/providers/interface';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { InputToken } from '@pellux/goodvibes-sdk/platform/core/tokenizer';
|
|
2
|
-
import type { InfiniteBuffer } from '
|
|
2
|
+
import type { InfiniteBuffer } from '../core/history.ts';
|
|
3
3
|
import type { CommandContext, CommandRegistry } from './command-registry.ts';
|
|
4
4
|
import { AutocompleteEngine } from './autocomplete.ts';
|
|
5
5
|
import { FilePickerModal } from './file-picker.ts';
|
|
@@ -109,7 +109,7 @@ export interface InputFeedContext {
|
|
|
109
109
|
readonly handleBlockToggle: () => void;
|
|
110
110
|
readonly findMarkerAtPos: (pos: number) => { start: number; end: number } | null;
|
|
111
111
|
readonly cleanupMarkerRegistry: (text: string) => void;
|
|
112
|
-
readonly expandPrompt: (text: string) => string | import('
|
|
112
|
+
readonly expandPrompt: (text: string) => string | import('@pellux/goodvibes-sdk/platform/providers/interface').ContentPart[];
|
|
113
113
|
readonly exitApp: () => void;
|
|
114
114
|
}
|
|
115
115
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { InputToken } from '@pellux/goodvibes-sdk/platform/core/tokenizer';
|
|
2
|
-
import type { InfiniteBuffer } from '
|
|
2
|
+
import type { InfiniteBuffer } from '../core/history.ts';
|
|
3
3
|
import type { SelectionResult, SelectionModal } from './selection-modal.ts';
|
|
4
4
|
import type { BookmarkModal } from './bookmark-modal.ts';
|
|
5
5
|
import type { SettingsModal } from './settings-modal.ts';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { InputToken } from '@pellux/goodvibes-sdk/platform/core/tokenizer';
|
|
2
|
-
import type { InfiniteBuffer } from '
|
|
2
|
+
import type { InfiniteBuffer } from '../core/history.ts';
|
|
3
3
|
import type { SearchManager } from './search.ts';
|
|
4
4
|
import type { HistorySearch } from './input-history.ts';
|
|
5
5
|
|
package/src/input/handler.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { InputTokenizer } from '@pellux/goodvibes-sdk/platform/core/tokenizer';
|
|
2
2
|
import { SelectionManager } from './selection.ts';
|
|
3
|
-
import type { InfiniteBuffer } from '
|
|
3
|
+
import type { InfiniteBuffer } from '../core/history.ts';
|
|
4
4
|
import type { CommandRegistry, CommandContext } from './command-registry.ts';
|
|
5
5
|
import { AutocompleteEngine } from './autocomplete.ts';
|
|
6
6
|
import { FilePickerModal } from './file-picker.ts';
|
package/src/input/search.ts
CHANGED
package/src/input/selection.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { InfiniteBuffer } from '
|
|
2
|
-
import type { Cell } from '
|
|
1
|
+
import type { InfiniteBuffer } from '../core/history.ts';
|
|
2
|
+
import type { Cell } from '../types/grid.ts';
|
|
3
3
|
|
|
4
4
|
export interface SelectionPoint {
|
|
5
5
|
col: number;
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
import { unlinkSync } from 'node:fs';
|
|
9
|
-
import type { SessionInfo, SessionManager } from '
|
|
9
|
+
import type { SessionInfo, SessionManager } from '@pellux/goodvibes-sdk/platform/sessions/manager';
|
|
10
10
|
import type { ConversationManager } from '../core/conversation';
|
|
11
11
|
import { summarizeError } from '@pellux/goodvibes-sdk/platform/utils/error-display';
|
|
12
12
|
|
package/src/main.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
import { homedir } from 'node:os';
|
|
5
5
|
import { join } from 'node:path';
|
|
6
6
|
import { Compositor } from './renderer/compositor.ts';
|
|
7
|
-
import { type Line } from '
|
|
7
|
+
import { type Line } from './types/grid.ts';
|
|
8
8
|
import { UIFactory } from './renderer/ui-factory.ts';
|
|
9
9
|
import { Orchestrator } from './core/orchestrator';
|
|
10
10
|
import { InputHandler } from './input/handler.ts';
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
|
|
6
6
|
import { join } from 'node:path';
|
|
7
7
|
import { readFile } from 'node:fs/promises';
|
|
8
|
-
import type { Line } from '
|
|
9
|
-
import { createEmptyLine } from '
|
|
8
|
+
import type { Line } from '../types/grid.ts';
|
|
9
|
+
import { createEmptyLine } from '../types/grid.ts';
|
|
10
10
|
import { BasePanel } from './base-panel.ts';
|
|
11
11
|
import type { AgentManager, AgentRecord } from '@pellux/goodvibes-sdk/platform/tools/agent/index';
|
|
12
12
|
import type { AgentMessageBus } from '@pellux/goodvibes-sdk/platform/agents/message-bus';
|
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
resolveScrollablePanelSection,
|
|
22
22
|
DEFAULT_PANEL_PALETTE,
|
|
23
23
|
} from './polish.ts';
|
|
24
|
-
import { truncateDisplay } from '
|
|
24
|
+
import { truncateDisplay } from '../utils/terminal-width.ts';
|
|
25
25
|
import { summarizeError } from '@pellux/goodvibes-sdk/platform/utils/error-display';
|
|
26
26
|
import {
|
|
27
27
|
type AgentDisplayRow as DisplayRow,
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { readFileSync, existsSync, watch, type FSWatcher } from 'fs';
|
|
2
|
-
import type { Line } from '
|
|
3
|
-
import { createEmptyLine, createStyledCell } from '
|
|
2
|
+
import type { Line } from '../types/grid.ts';
|
|
3
|
+
import { createEmptyLine, createStyledCell } from '../types/grid.ts';
|
|
4
4
|
import { BasePanel } from './base-panel.ts';
|
|
5
5
|
import type { AgentManager, AgentRecord } from '@pellux/goodvibes-sdk/platform/tools/agent/index';
|
|
6
6
|
import type { AgentEvent } from '@pellux/goodvibes-sdk/platform/runtime/events/index';
|
|
7
|
-
import type { UiEventFeed } from '
|
|
7
|
+
import type { UiEventFeed } from '../runtime/ui-events.ts';
|
|
8
8
|
import {
|
|
9
9
|
buildEmptyState,
|
|
10
10
|
buildPanelLine,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { Line } from '
|
|
2
|
-
import { createEmptyLine } from '
|
|
1
|
+
import type { Line } from '../types/grid.ts';
|
|
2
|
+
import { createEmptyLine } from '../types/grid.ts';
|
|
3
3
|
import { BasePanel } from './base-panel.ts';
|
|
4
4
|
import {
|
|
5
5
|
buildGuidanceLine,
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { Line } from '
|
|
2
|
-
import { createEmptyLine } from '
|
|
1
|
+
import type { Line } from '../types/grid.ts';
|
|
2
|
+
import { createEmptyLine } from '../types/grid.ts';
|
|
3
3
|
import { BasePanel } from './base-panel.ts';
|
|
4
4
|
import type { UiAutomationSnapshot, UiReadModel } from '../runtime/ui-read-models.ts';
|
|
5
|
-
import { truncateDisplay } from '
|
|
5
|
+
import { truncateDisplay } from '../utils/terminal-width.ts';
|
|
6
6
|
import {
|
|
7
7
|
buildEmptyState,
|
|
8
8
|
buildGuidanceLine,
|
package/src/panels/base-panel.ts
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
import type { Line } from '
|
|
1
|
+
import type { Line } from '../types/grid.ts';
|
|
2
2
|
import type { Panel, PanelCategory } from './types.ts';
|
|
3
|
-
import type {
|
|
4
|
-
import type {
|
|
3
|
+
import type { ComponentResourceContract, ComponentHealthState } from '../runtime/perf/panel-contracts.ts';
|
|
4
|
+
import type { ComponentHealthMonitor } from '../runtime/perf/panel-health-monitor.ts';
|
|
5
5
|
|
|
6
6
|
export abstract class BasePanel implements Panel {
|
|
7
7
|
public needsRender = true;
|
|
8
8
|
public isTransient = false;
|
|
9
9
|
public isPinned = false;
|
|
10
|
-
protected readonly
|
|
10
|
+
protected readonly componentHealthMonitor?: ComponentHealthMonitor;
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Optional resource contract for this panel.
|
|
14
14
|
* Override in subclasses to declare a custom contract; leave undefined
|
|
15
|
-
* to use the category default enforced by
|
|
15
|
+
* to use the category default enforced by ComponentHealthMonitor.
|
|
16
16
|
*/
|
|
17
|
-
public resourceContract: Readonly<
|
|
17
|
+
public resourceContract: Readonly<ComponentResourceContract> | undefined = undefined;
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
|
-
* Live health state populated by
|
|
20
|
+
* Live health state populated by ComponentHealthMonitor.
|
|
21
21
|
* Read-only from outside the monitor.
|
|
22
22
|
*/
|
|
23
|
-
public get healthState(): Readonly<
|
|
24
|
-
return this.
|
|
23
|
+
public get healthState(): Readonly<ComponentHealthState> | undefined {
|
|
24
|
+
return this.componentHealthMonitor?.getHealth(this.id);
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
constructor(
|
|
@@ -29,9 +29,9 @@ export abstract class BasePanel implements Panel {
|
|
|
29
29
|
public readonly name: string,
|
|
30
30
|
public readonly icon: string,
|
|
31
31
|
public readonly category: PanelCategory,
|
|
32
|
-
|
|
32
|
+
componentHealthMonitor?: ComponentHealthMonitor,
|
|
33
33
|
) {
|
|
34
|
-
this.
|
|
34
|
+
this.componentHealthMonitor = componentHealthMonitor;
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
onActivate(): void { this.needsRender = true; }
|
|
@@ -45,7 +45,7 @@ export abstract class BasePanel implements Panel {
|
|
|
45
45
|
/**
|
|
46
46
|
* Check whether the panel is currently permitted to render.
|
|
47
47
|
*
|
|
48
|
-
* Consults the shared
|
|
48
|
+
* Consults the shared ComponentHealthMonitor. Returns true if not registered
|
|
49
49
|
* (unthrottled) or if the monitor permits a render at this moment.
|
|
50
50
|
*
|
|
51
51
|
* Call this inside render() or before invoking render() to skip
|
|
@@ -59,7 +59,7 @@ export abstract class BasePanel implements Panel {
|
|
|
59
59
|
* ```
|
|
60
60
|
*/
|
|
61
61
|
protected canRenderNow(now: number = Date.now()): boolean {
|
|
62
|
-
return this.
|
|
62
|
+
return this.componentHealthMonitor?.canRender(this.id, now) ?? true;
|
|
63
63
|
}
|
|
64
64
|
|
|
65
65
|
/**
|
|
@@ -67,6 +67,6 @@ export abstract class BasePanel implements Panel {
|
|
|
67
67
|
* Call this at the end of render() after measuring wall-clock cost.
|
|
68
68
|
*/
|
|
69
69
|
protected reportRenderDuration(durationMs: number, now: number = Date.now()): void {
|
|
70
|
-
this.
|
|
70
|
+
this.componentHealthMonitor?.recordRender(this.id, durationMs, now);
|
|
71
71
|
}
|
|
72
72
|
}
|
|
@@ -42,6 +42,7 @@ export function registerAgentPanels(manager: PanelManager, deps: ResolvedBuiltin
|
|
|
42
42
|
factory: () => new ContextVisualizerPanel(
|
|
43
43
|
requireUiServices(deps).events.turns,
|
|
44
44
|
deps.sessionMemoryStore,
|
|
45
|
+
deps.configManager,
|
|
45
46
|
deps.getOrchestratorUsage,
|
|
46
47
|
deps.contextWindow,
|
|
47
48
|
requireUiServices(deps).readModels.session,
|
|
@@ -97,7 +97,7 @@ export function registerOperationsPanels(manager: PanelManager, deps: ResolvedBu
|
|
|
97
97
|
category: 'monitoring',
|
|
98
98
|
description: 'Project-local and global skill discovery with origin and dependency details',
|
|
99
99
|
factory: () => new SkillsPanel({
|
|
100
|
-
|
|
100
|
+
componentHealthMonitor: deps.componentHealthMonitor,
|
|
101
101
|
shellPaths: ui.environment.shellPaths,
|
|
102
102
|
}),
|
|
103
103
|
});
|
|
@@ -315,6 +315,7 @@ export function registerOperationsPanels(manager: PanelManager, deps: ResolvedBu
|
|
|
315
315
|
factory: () => new ProviderHealthPanel(
|
|
316
316
|
providerRuntime,
|
|
317
317
|
{
|
|
318
|
+
configManager: deps.configManager,
|
|
318
319
|
turnEvents: ui.events.turns,
|
|
319
320
|
providerEvents: ui.events.providers,
|
|
320
321
|
providers: ui.readModels.providers,
|
|
@@ -31,7 +31,7 @@ export function registerSessionPanels(manager: PanelManager, deps: ResolvedBuilt
|
|
|
31
31
|
icon: 'L',
|
|
32
32
|
category: 'session',
|
|
33
33
|
description: 'Browse all registered panels grouped by category, with open/closed status and Enter-to-open',
|
|
34
|
-
factory: () => new PanelListPanel(manager, deps.
|
|
34
|
+
factory: () => new PanelListPanel(manager, deps.componentHealthMonitor),
|
|
35
35
|
});
|
|
36
36
|
|
|
37
37
|
manager.registerType({
|
|
@@ -51,7 +51,7 @@ export function registerSessionPanels(manager: PanelManager, deps: ResolvedBuilt
|
|
|
51
51
|
category: 'monitoring',
|
|
52
52
|
description: 'Token budget tracker: per-turn and cumulative usage with context window gauge',
|
|
53
53
|
factory: () => {
|
|
54
|
-
const panel = new TokenBudgetPanel(deps.sessionMemoryStore);
|
|
54
|
+
const panel = new TokenBudgetPanel(deps.sessionMemoryStore, deps.configManager);
|
|
55
55
|
if (deps.orchestrator && deps.getCtxWindow) {
|
|
56
56
|
panel.wire(deps.orchestrator, deps.getCtxWindow, requireUiServices(deps).readModels.session);
|
|
57
57
|
}
|
|
@@ -14,14 +14,14 @@ import type { HookDispatcher } from '@pellux/goodvibes-sdk/platform/hooks/dispat
|
|
|
14
14
|
import type { HookActivityTracker } from '@pellux/goodvibes-sdk/platform/hooks/activity';
|
|
15
15
|
import type { McpRegistry } from '@pellux/goodvibes-sdk/platform/mcp/registry';
|
|
16
16
|
import type { PolicyRuntimeState } from '@pellux/goodvibes-sdk/platform/runtime/permissions/policy-runtime';
|
|
17
|
-
import type { SessionManager } from '
|
|
17
|
+
import type { SessionManager } from '@pellux/goodvibes-sdk/platform/sessions/manager';
|
|
18
18
|
import type { SubscriptionManager } from '@pellux/goodvibes-sdk/platform/config/subscriptions';
|
|
19
19
|
import type { UserAuthManager } from '@pellux/goodvibes-sdk/platform/security/user-auth';
|
|
20
20
|
import type { SessionMemoryStore } from '@pellux/goodvibes-sdk/platform/core/session-memory';
|
|
21
21
|
import type { ExecutionPlanManager } from '@pellux/goodvibes-sdk/platform/core/execution-plan';
|
|
22
22
|
import type { AdaptivePlanner } from '@pellux/goodvibes-sdk/platform/core/adaptive-planner';
|
|
23
23
|
import type { ApiTokenAuditor } from '@pellux/goodvibes-sdk/platform/security/token-audit';
|
|
24
|
-
import type {
|
|
24
|
+
import type { ComponentHealthMonitor } from '../../runtime/perf/panel-health-monitor.ts';
|
|
25
25
|
import type { WorktreeRegistry } from '@pellux/goodvibes-sdk/platform/runtime/worktree/registry';
|
|
26
26
|
import type { SandboxSessionRegistry } from '@pellux/goodvibes-sdk/platform/runtime/sandbox/session-registry';
|
|
27
27
|
|
|
@@ -61,7 +61,7 @@ export interface BuiltinPanelDeps {
|
|
|
61
61
|
/** MemoryRegistry for the Memory panel. */
|
|
62
62
|
memoryRegistry?: MemoryRegistry;
|
|
63
63
|
/** Shared policy runtime state for governance/policy diagnostics. */
|
|
64
|
-
policyRuntimeState?: import('
|
|
64
|
+
policyRuntimeState?: import('@pellux/goodvibes-sdk/platform/runtime/permissions/policy-runtime').PolicyRuntimeState;
|
|
65
65
|
/** Approval broker for control-plane/operator panels. */
|
|
66
66
|
approvalBroker?: ApprovalBroker;
|
|
67
67
|
/** Shared session broker for control-plane/operator panels. */
|
|
@@ -72,8 +72,8 @@ export interface BuiltinPanelDeps {
|
|
|
72
72
|
getControlPlaneRecentEvents?: (limit: number) => readonly ControlPlaneRecentEvent[];
|
|
73
73
|
/** Token auditor for the security control-room panel. */
|
|
74
74
|
tokenAuditor: ApiTokenAuditor;
|
|
75
|
-
/** Shared
|
|
76
|
-
|
|
75
|
+
/** Shared component-health monitor for rate-limited panels and diagnostics. */
|
|
76
|
+
componentHealthMonitor: ComponentHealthMonitor;
|
|
77
77
|
/** Shared worktree registry for worktree surfaces. */
|
|
78
78
|
worktreeRegistry: WorktreeRegistry;
|
|
79
79
|
/** Shared sandbox session registry for sandbox surfaces and tools. */
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { Line } from '
|
|
2
|
-
import { createEmptyLine } from '
|
|
1
|
+
import type { Line } from '../types/grid.ts';
|
|
2
|
+
import { createEmptyLine } from '../types/grid.ts';
|
|
3
3
|
import { BasePanel } from './base-panel.ts';
|
|
4
4
|
import type { UiCockpitSnapshot, UiReadModel } from '../runtime/ui-read-models.ts';
|
|
5
5
|
import {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { Line } from '
|
|
2
|
-
import { createEmptyLine } from '
|
|
1
|
+
import type { Line } from '../types/grid.ts';
|
|
2
|
+
import { createEmptyLine } from '../types/grid.ts';
|
|
3
3
|
import { BasePanel } from './base-panel.ts';
|
|
4
4
|
import type { UiCommunicationSnapshot, UiReadModel } from '../runtime/ui-read-models.ts';
|
|
5
|
-
import { truncateDisplay } from '
|
|
5
|
+
import { truncateDisplay } from '../utils/terminal-width.ts';
|
|
6
6
|
import {
|
|
7
7
|
buildBodyText,
|
|
8
8
|
buildEmptyState,
|
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
// ContextVisualizerPanel — stacked bar showing context window composition.
|
|
3
3
|
// ---------------------------------------------------------------------------
|
|
4
4
|
|
|
5
|
-
import type {
|
|
5
|
+
import type { ConfigManager } from '@pellux/goodvibes-sdk/platform/config/manager';
|
|
6
|
+
import type { Line } from '../types/grid.ts';
|
|
6
7
|
import { BasePanel } from './base-panel.ts';
|
|
7
|
-
import { evaluateSessionMaintenance } from '
|
|
8
|
+
import { evaluateSessionMaintenance } from '@pellux/goodvibes-sdk/platform/runtime/session-maintenance';
|
|
8
9
|
import type { TurnEvent } from '@pellux/goodvibes-sdk/platform/runtime/events/index';
|
|
9
|
-
import type { UiEventFeed } from '
|
|
10
|
+
import type { UiEventFeed } from '../runtime/ui-events.ts';
|
|
10
11
|
import type { UiReadModel, UiSessionSnapshot } from '../runtime/ui-read-models.ts';
|
|
11
12
|
import type { SessionMemoryQuery } from '../runtime/ui-service-queries.ts';
|
|
12
13
|
import {
|
|
@@ -46,6 +47,7 @@ export class ContextVisualizerPanel extends BasePanel {
|
|
|
46
47
|
constructor(
|
|
47
48
|
private readonly turnEvents: UiEventFeed<TurnEvent>,
|
|
48
49
|
sessionMemoryStore: SessionMemoryQuery,
|
|
50
|
+
private readonly configManager: Pick<ConfigManager, 'get'>,
|
|
49
51
|
private getUsage?: () => { input: number; output: number; cacheRead: number; cacheWrite: number; model?: string },
|
|
50
52
|
private contextLimit?: number,
|
|
51
53
|
private sessionReadModel?: UiReadModel<UiSessionSnapshot>,
|
|
@@ -165,6 +167,7 @@ export class ContextVisualizerPanel extends BasePanel {
|
|
|
165
167
|
|
|
166
168
|
private _renderMaintenance(width: number): Line[] {
|
|
167
169
|
const status = evaluateSessionMaintenance({
|
|
170
|
+
configManager: this.configManager,
|
|
168
171
|
currentTokens: this.snapshot.input,
|
|
169
172
|
contextWindow: this.snapshot.limit,
|
|
170
173
|
sessionMemoryCount: this.sessionMemoryStore.list().length,
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { Line } from '
|
|
2
|
-
import { createEmptyLine } from '
|
|
1
|
+
import type { Line } from '../types/grid.ts';
|
|
2
|
+
import { createEmptyLine } from '../types/grid.ts';
|
|
3
3
|
import { BasePanel } from './base-panel.ts';
|
|
4
4
|
import type { UiControlPlaneSnapshot, UiReadModel } from '../runtime/ui-read-models.ts';
|
|
5
|
-
import { truncateDisplay } from '
|
|
5
|
+
import { truncateDisplay } from '../utils/terminal-width.ts';
|
|
6
6
|
import {
|
|
7
7
|
buildEmptyState,
|
|
8
8
|
buildGuidanceLine,
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
// CostTrackerPanel — per-session / per-agent / per-plan cost estimates
|
|
3
3
|
// ---------------------------------------------------------------------------
|
|
4
4
|
|
|
5
|
-
import type { Line } from '
|
|
6
|
-
import { createStyledCell, createEmptyLine } from '
|
|
5
|
+
import type { Line } from '../types/grid.ts';
|
|
6
|
+
import { createStyledCell, createEmptyLine } from '../types/grid.ts';
|
|
7
7
|
import { BasePanel } from './base-panel.ts';
|
|
8
8
|
import type { AgentEvent, TurnEvent } from '@pellux/goodvibes-sdk/platform/runtime/events/index';
|
|
9
|
-
import type { UiEventFeed } from '
|
|
9
|
+
import type { UiEventFeed } from '../runtime/ui-events.ts';
|
|
10
10
|
import {
|
|
11
11
|
buildEmptyState,
|
|
12
12
|
buildPanelLine,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BasePanel } from './base-panel.ts';
|
|
2
|
-
import { createEmptyLine, createStyledCell, type Line } from '
|
|
2
|
+
import { createEmptyLine, createStyledCell, type Line } from '../types/grid.ts';
|
|
3
3
|
import type { TurnEvent } from '@pellux/goodvibes-sdk/platform/runtime/events/index';
|
|
4
|
-
import type { UiEventFeed } from '
|
|
4
|
+
import type { UiEventFeed } from '../runtime/ui-events.ts';
|
|
5
5
|
import type { Orchestrator } from '../core/orchestrator';
|
|
6
6
|
import {
|
|
7
7
|
buildEmptyState,
|
package/src/panels/diff-panel.ts
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
// DiffPanel — unified diff view of agent file changes
|
|
3
3
|
// ---------------------------------------------------------------------------
|
|
4
4
|
|
|
5
|
-
import type { Line } from '
|
|
6
|
-
import { createStyledCell, createEmptyLine } from '
|
|
5
|
+
import type { Line } from '../types/grid.ts';
|
|
6
|
+
import { createStyledCell, createEmptyLine } from '../types/grid.ts';
|
|
7
7
|
import { BasePanel } from './base-panel.ts';
|
|
8
8
|
import {
|
|
9
9
|
buildBodyText,
|
package/src/panels/docs-panel.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// DocsPanel — tool list, model capabilities, and keyboard shortcut reference.
|
|
3
3
|
// ---------------------------------------------------------------------------
|
|
4
4
|
|
|
5
|
-
import type { Line } from '
|
|
5
|
+
import type { Line } from '../types/grid.ts';
|
|
6
6
|
import { BasePanel } from './base-panel.ts';
|
|
7
7
|
import { buildPanelLine, buildPanelWorkspace, buildSearchInputLine, resolveScrollablePanelSection, DEFAULT_PANEL_PALETTE } from './polish.ts';
|
|
8
8
|
import type { ProviderModelCatalogQuery, ToolCatalogQuery } from '../runtime/ui-service-queries.ts';
|
package/src/panels/eval-panel.ts
CHANGED
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
import { BasePanel } from './base-panel.ts';
|
|
9
|
-
import type { Line } from '
|
|
10
|
-
import { createEmptyLine } from '
|
|
9
|
+
import type { Line } from '../types/grid.ts';
|
|
10
|
+
import { createEmptyLine } from '../types/grid.ts';
|
|
11
11
|
import {
|
|
12
12
|
buildEmptyState,
|
|
13
13
|
buildPanelLine,
|