@pellux/goodvibes-tui 0.18.10 → 0.18.12
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 +56 -0
- package/README.md +1 -1
- package/docs/foundation-artifacts/operator-contract.json +1 -1
- package/package.json +2 -2
- package/src/core/conversation-rendering.ts +2 -2
- package/src/core/conversation.ts +5 -5
- package/src/core/orchestrator.ts +13 -11
- package/src/daemon/facade-composition.ts +8 -8
- package/src/daemon/facade.ts +8 -8
- package/src/daemon/types.ts +3 -3
- 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-feed.ts +1 -1
- package/src/input/session-picker-modal.ts +1 -1
- package/src/panels/builtin/agent.ts +1 -0
- package/src/panels/builtin/operations.ts +1 -0
- package/src/panels/builtin/session.ts +1 -1
- package/src/panels/builtin/shared.ts +2 -2
- package/src/panels/context-visualizer-panel.ts +4 -1
- package/src/panels/provider-health-domains.ts +5 -1
- package/src/panels/provider-health-panel.ts +5 -1
- package/src/panels/session-browser-panel.ts +1 -1
- package/src/panels/token-budget-panel.ts +6 -2
- package/src/plugins/loader.ts +2 -2
- package/src/runtime/bootstrap-command-context.ts +3 -3
- package/src/runtime/bootstrap-command-parts.ts +3 -3
- package/src/runtime/bootstrap-core.ts +2 -2
- package/src/runtime/bootstrap-hook-bridge.ts +1 -1
- package/src/runtime/bootstrap-shell.ts +1 -1
- package/src/runtime/bootstrap.ts +5 -4
- package/src/runtime/services.ts +2 -2
- 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/tools/index.ts +1 -1
- 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/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/transport-events.ts +0 -110
- 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-events.ts +0 -46
- 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/src/mcp/client.ts
DELETED
|
@@ -1,383 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* McpClient — connects to a single MCP server process via stdio JSON-RPC 2.0.
|
|
3
|
-
*
|
|
4
|
-
* Protocol: newline-delimited JSON (each message is one JSON line on stdout/stdin).
|
|
5
|
-
* Progressive loading: listTools() returns names + descriptions only.
|
|
6
|
-
* getToolSchema() fetches full inputSchema on demand and caches it.
|
|
7
|
-
*/
|
|
8
|
-
import { logger } from '@pellux/goodvibes-sdk/platform/utils/logger';
|
|
9
|
-
import { VERSION } from '../version.ts';
|
|
10
|
-
import type { McpServerConfig } from '@pellux/goodvibes-sdk/platform/mcp/config';
|
|
11
|
-
import { summarizeError } from '@pellux/goodvibes-sdk/platform/utils/error-display';
|
|
12
|
-
|
|
13
|
-
export interface McpProcessSpec {
|
|
14
|
-
command: string;
|
|
15
|
-
args?: string[];
|
|
16
|
-
env?: Record<string, string>;
|
|
17
|
-
cwd?: string;
|
|
18
|
-
summary?: string;
|
|
19
|
-
sandboxSessionId?: string;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export interface McpToolInfo {
|
|
23
|
-
name: string;
|
|
24
|
-
description: string;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export interface McpToolSchema extends McpToolInfo {
|
|
28
|
-
inputSchema: Record<string, unknown>;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
interface JsonRpcRequest {
|
|
32
|
-
jsonrpc: '2.0';
|
|
33
|
-
id: number;
|
|
34
|
-
method: string;
|
|
35
|
-
params?: unknown;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
interface JsonRpcResponse {
|
|
39
|
-
jsonrpc: '2.0';
|
|
40
|
-
id: number;
|
|
41
|
-
result?: unknown;
|
|
42
|
-
error?: { code: number; message: string; data?: unknown };
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
interface PendingRequest {
|
|
46
|
-
resolve: (value: unknown) => void;
|
|
47
|
-
reject: (reason: unknown) => void;
|
|
48
|
-
timer: ReturnType<typeof setTimeout>;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
const DEFAULT_TIMEOUT_MS = 30_000;
|
|
52
|
-
const PING_TIMEOUT_MS = 5_000;
|
|
53
|
-
const RESTART_DELAY_MS = 2_000;
|
|
54
|
-
const MAX_RESTART_ATTEMPTS = 3;
|
|
55
|
-
|
|
56
|
-
export class McpClient {
|
|
57
|
-
private proc: ReturnType<typeof Bun.spawn> | null = null;
|
|
58
|
-
private nextId = 1;
|
|
59
|
-
private pendingRequests = new Map<number, PendingRequest>();
|
|
60
|
-
private buffer = '';
|
|
61
|
-
private readLoopRunning = false;
|
|
62
|
-
private restartCount = 0;
|
|
63
|
-
private initialized = false;
|
|
64
|
-
|
|
65
|
-
/** Cache: tool name → full schema (populated lazily on first callTool) */
|
|
66
|
-
private schemaCache = new Map<string, McpToolSchema>();
|
|
67
|
-
|
|
68
|
-
/** Minimal tool info loaded at connect time (name + description only) */
|
|
69
|
-
private toolInfoCache: McpToolInfo[] | null = null;
|
|
70
|
-
|
|
71
|
-
constructor(
|
|
72
|
-
private config: McpServerConfig,
|
|
73
|
-
private options?: { timeout?: number; processSpec?: McpProcessSpec },
|
|
74
|
-
) {}
|
|
75
|
-
|
|
76
|
-
get name(): string {
|
|
77
|
-
return this.config.name;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
get isConnected(): boolean {
|
|
81
|
-
if (!this.proc) return false;
|
|
82
|
-
try {
|
|
83
|
-
return (this.proc as { exitCode: number | null }).exitCode === null;
|
|
84
|
-
} catch {
|
|
85
|
-
return false;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* connect — Start the server process and perform MCP handshake (initialize).
|
|
91
|
-
* After connect, listTools() is available.
|
|
92
|
-
*/
|
|
93
|
-
async connect(): Promise<void> {
|
|
94
|
-
if (this.proc && this.isConnected) return;
|
|
95
|
-
await this._startProcess();
|
|
96
|
-
await this._initialize();
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
/**
|
|
100
|
-
* listTools — Return tool names and descriptions (progressive loading).
|
|
101
|
-
* Full schemas are NOT fetched here; call getToolSchema() to get them.
|
|
102
|
-
*/
|
|
103
|
-
async listTools(): Promise<McpToolInfo[]> {
|
|
104
|
-
if (!this.isConnected) {
|
|
105
|
-
throw new Error(`McpClient(${this.config.name}): not connected`);
|
|
106
|
-
}
|
|
107
|
-
if (this.toolInfoCache) return this.toolInfoCache;
|
|
108
|
-
|
|
109
|
-
const result = await this._request<{ tools: Array<{ name: string; description?: string }> }>('tools/list');
|
|
110
|
-
this.toolInfoCache = (result.tools ?? []).map((t) => ({
|
|
111
|
-
name: t.name,
|
|
112
|
-
description: t.description ?? '',
|
|
113
|
-
}));
|
|
114
|
-
return this.toolInfoCache;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
/**
|
|
118
|
-
* getToolSchema — Fetch full JSON schema for a tool (lazy, cached).
|
|
119
|
-
* MCP protocol provides full schemas in tools/list; we cache them on first access.
|
|
120
|
-
*/
|
|
121
|
-
async getToolSchema(toolName: string): Promise<McpToolSchema | null> {
|
|
122
|
-
if (this.schemaCache.has(toolName)) {
|
|
123
|
-
return this.schemaCache.get(toolName)!;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
if (!this.isConnected) {
|
|
127
|
-
throw new Error(`McpClient(${this.config.name}): not connected`);
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
// Fetch all tools with full schemas and cache them all at once
|
|
131
|
-
const result = await this._request<{
|
|
132
|
-
tools: Array<{ name: string; description?: string; inputSchema?: Record<string, unknown> }>;
|
|
133
|
-
}>('tools/list');
|
|
134
|
-
|
|
135
|
-
for (const t of result.tools ?? []) {
|
|
136
|
-
this.schemaCache.set(t.name, {
|
|
137
|
-
name: t.name,
|
|
138
|
-
description: t.description ?? '',
|
|
139
|
-
inputSchema: t.inputSchema ?? { type: 'object', properties: {} },
|
|
140
|
-
});
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
return this.schemaCache.get(toolName) ?? null;
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
/**
|
|
147
|
-
* callTool — Execute a tool on the MCP server.
|
|
148
|
-
* Fetches full schema on first use (if not already cached).
|
|
149
|
-
*/
|
|
150
|
-
async callTool(toolName: string, args: Record<string, unknown>): Promise<unknown> {
|
|
151
|
-
if (!this.isConnected) {
|
|
152
|
-
throw new Error(`McpClient(${this.config.name}): not connected`);
|
|
153
|
-
}
|
|
154
|
-
// Ensure schema is cached on first use
|
|
155
|
-
if (!this.schemaCache.has(toolName)) {
|
|
156
|
-
await this.getToolSchema(toolName);
|
|
157
|
-
}
|
|
158
|
-
return this._request('tools/call', { name: toolName, arguments: args });
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
/**
|
|
162
|
-
* disconnect — Stop the server process and clean up.
|
|
163
|
-
*/
|
|
164
|
-
async disconnect(): Promise<void> {
|
|
165
|
-
if (!this.proc) return;
|
|
166
|
-
// Reject all pending requests
|
|
167
|
-
for (const [, pending] of this.pendingRequests) {
|
|
168
|
-
clearTimeout(pending.timer);
|
|
169
|
-
pending.reject(new Error(`McpClient(${this.config.name}): disconnected`));
|
|
170
|
-
}
|
|
171
|
-
this.pendingRequests.clear();
|
|
172
|
-
|
|
173
|
-
try {
|
|
174
|
-
(this.proc.stdin as import('bun').FileSink).end();
|
|
175
|
-
this.proc.kill();
|
|
176
|
-
await this.proc.exited;
|
|
177
|
-
} catch {
|
|
178
|
-
// Ignore shutdown errors
|
|
179
|
-
} finally {
|
|
180
|
-
this.proc = null;
|
|
181
|
-
this.buffer = '';
|
|
182
|
-
this.readLoopRunning = false;
|
|
183
|
-
this.initialized = false;
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
// ---------------------------------------------------------------------------
|
|
188
|
-
// Private helpers
|
|
189
|
-
// ---------------------------------------------------------------------------
|
|
190
|
-
|
|
191
|
-
private async _startProcess(): Promise<void> {
|
|
192
|
-
const processSpec = this.options?.processSpec;
|
|
193
|
-
const cmd = processSpec?.command ?? this.config.command;
|
|
194
|
-
const args = processSpec?.args ?? this.config.args ?? [];
|
|
195
|
-
const env = { ...process.env, ...(this.config.env ?? {}), ...(processSpec?.env ?? {}) };
|
|
196
|
-
const cwd = processSpec?.cwd;
|
|
197
|
-
|
|
198
|
-
try {
|
|
199
|
-
this.proc = Bun.spawn([cmd, ...args], {
|
|
200
|
-
stdin: 'pipe',
|
|
201
|
-
stdout: 'pipe',
|
|
202
|
-
stderr: 'pipe',
|
|
203
|
-
env,
|
|
204
|
-
...(cwd ? { cwd } : {}),
|
|
205
|
-
});
|
|
206
|
-
this.buffer = '';
|
|
207
|
-
this.restartCount = 0;
|
|
208
|
-
this._startReadLoop();
|
|
209
|
-
} catch (err) {
|
|
210
|
-
logger.error('McpClient: failed to start process', { server: this.config.name, err: summarizeError(err) });
|
|
211
|
-
this.proc = null;
|
|
212
|
-
throw new Error(`McpClient(${this.config.name}): failed to start: ${summarizeError(err)}`);
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
/** Perform MCP initialize handshake. */
|
|
217
|
-
private async _initialize(): Promise<void> {
|
|
218
|
-
if (this.initialized) return;
|
|
219
|
-
try {
|
|
220
|
-
await this._request('initialize', {
|
|
221
|
-
protocolVersion: '2024-11-05',
|
|
222
|
-
capabilities: {},
|
|
223
|
-
clientInfo: { name: 'goodvibes-tui', version: VERSION },
|
|
224
|
-
});
|
|
225
|
-
this._notify('notifications/initialized', {});
|
|
226
|
-
this.initialized = true;
|
|
227
|
-
} catch (err) {
|
|
228
|
-
logger.error('McpClient: initialize handshake failed', { server: this.config.name, err: summarizeError(err) });
|
|
229
|
-
throw err;
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
/** Send a JSON-RPC request; returns the result. */
|
|
234
|
-
private _request<T = unknown>(method: string, params?: unknown): Promise<T> {
|
|
235
|
-
if (!this.proc) {
|
|
236
|
-
return Promise.reject(new Error(`McpClient(${this.config.name}): not running`));
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
const id = this.nextId++;
|
|
240
|
-
const msg: JsonRpcRequest = { jsonrpc: '2.0', id, method, params };
|
|
241
|
-
const line = JSON.stringify(msg) + '\n';
|
|
242
|
-
const timeoutMs = this.options?.timeout ?? DEFAULT_TIMEOUT_MS;
|
|
243
|
-
|
|
244
|
-
return new Promise<T>((resolve, reject) => {
|
|
245
|
-
const timer = setTimeout(() => {
|
|
246
|
-
this.pendingRequests.delete(id);
|
|
247
|
-
reject(new Error(`McpClient(${this.config.name}): request '${method}' timed out after ${timeoutMs}ms`));
|
|
248
|
-
}, timeoutMs);
|
|
249
|
-
|
|
250
|
-
this.pendingRequests.set(id, {
|
|
251
|
-
resolve: resolve as (value: unknown) => void,
|
|
252
|
-
reject,
|
|
253
|
-
timer,
|
|
254
|
-
});
|
|
255
|
-
|
|
256
|
-
try {
|
|
257
|
-
(this.proc!.stdin as import('bun').FileSink).write(line);
|
|
258
|
-
} catch (err) {
|
|
259
|
-
clearTimeout(timer);
|
|
260
|
-
this.pendingRequests.delete(id);
|
|
261
|
-
reject(new Error(`McpClient(${this.config.name}): write failed: ${summarizeError(err)}`));
|
|
262
|
-
}
|
|
263
|
-
});
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
/** Send a JSON-RPC notification (no response expected). */
|
|
267
|
-
private _notify(method: string, params?: unknown): void {
|
|
268
|
-
if (!this.proc || !this.isConnected) return;
|
|
269
|
-
try {
|
|
270
|
-
const msg = { jsonrpc: '2.0', method, params };
|
|
271
|
-
(this.proc.stdin as import('bun').FileSink).write(JSON.stringify(msg) + '\n');
|
|
272
|
-
} catch (err) {
|
|
273
|
-
logger.debug('McpClient: failed to send notification', { method, err: summarizeError(err) });
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
private _startReadLoop(): void {
|
|
278
|
-
if (this.readLoopRunning || !this.proc) return;
|
|
279
|
-
this.readLoopRunning = true;
|
|
280
|
-
|
|
281
|
-
const proc = this.proc;
|
|
282
|
-
const decoder = new TextDecoder();
|
|
283
|
-
|
|
284
|
-
(async () => {
|
|
285
|
-
try {
|
|
286
|
-
const reader = (proc.stdout as ReadableStream<Uint8Array>).getReader();
|
|
287
|
-
while (true) {
|
|
288
|
-
const { done, value } = await reader.read();
|
|
289
|
-
if (done) break;
|
|
290
|
-
this.buffer += decoder.decode(value, { stream: true });
|
|
291
|
-
this._processBuffer();
|
|
292
|
-
}
|
|
293
|
-
} catch (err) {
|
|
294
|
-
logger.debug('McpClient: stdout read loop ended', { server: this.config.name, err: summarizeError(err) });
|
|
295
|
-
} finally {
|
|
296
|
-
this.readLoopRunning = false;
|
|
297
|
-
// Reject remaining pending requests
|
|
298
|
-
for (const [, pending] of this.pendingRequests) {
|
|
299
|
-
clearTimeout(pending.timer);
|
|
300
|
-
pending.reject(new Error(`McpClient(${this.config.name}): process exited unexpectedly`));
|
|
301
|
-
}
|
|
302
|
-
this.pendingRequests.clear();
|
|
303
|
-
|
|
304
|
-
// Auto-restart if process crashed and we haven't exceeded retry limit
|
|
305
|
-
if (this.restartCount < MAX_RESTART_ATTEMPTS) {
|
|
306
|
-
this._scheduleRestart();
|
|
307
|
-
} else {
|
|
308
|
-
logger.info('McpClient: exceeded max restart attempts', { server: this.config.name });
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
})();
|
|
312
|
-
}
|
|
313
|
-
|
|
314
|
-
private _processBuffer(): void {
|
|
315
|
-
let newlineIdx: number;
|
|
316
|
-
while ((newlineIdx = this.buffer.indexOf('\n')) !== -1) {
|
|
317
|
-
const line = this.buffer.slice(0, newlineIdx).trim();
|
|
318
|
-
this.buffer = this.buffer.slice(newlineIdx + 1);
|
|
319
|
-
if (!line) continue;
|
|
320
|
-
this._dispatchLine(line);
|
|
321
|
-
}
|
|
322
|
-
}
|
|
323
|
-
|
|
324
|
-
private _dispatchLine(line: string): void {
|
|
325
|
-
let msg: unknown;
|
|
326
|
-
try {
|
|
327
|
-
msg = JSON.parse(line);
|
|
328
|
-
} catch (err) {
|
|
329
|
-
logger.debug('McpClient: failed to parse JSON line', { server: this.config.name, err: summarizeError(err), line: line.slice(0, 200) });
|
|
330
|
-
return;
|
|
331
|
-
}
|
|
332
|
-
|
|
333
|
-
if (typeof msg !== 'object' || msg === null) return;
|
|
334
|
-
|
|
335
|
-
const response = msg as JsonRpcResponse;
|
|
336
|
-
if ('id' in response && typeof response.id === 'number') {
|
|
337
|
-
const pending = this.pendingRequests.get(response.id);
|
|
338
|
-
if (pending) {
|
|
339
|
-
clearTimeout(pending.timer);
|
|
340
|
-
this.pendingRequests.delete(response.id);
|
|
341
|
-
if (response.error) {
|
|
342
|
-
pending.reject(new Error(`McpClient(${this.config.name}) RPC error ${response.error.code}: ${response.error.message}`));
|
|
343
|
-
} else {
|
|
344
|
-
pending.resolve(response.result);
|
|
345
|
-
}
|
|
346
|
-
}
|
|
347
|
-
}
|
|
348
|
-
// Notifications (no id or id=null) are silently ignored
|
|
349
|
-
}
|
|
350
|
-
|
|
351
|
-
private _scheduleRestart(): void {
|
|
352
|
-
this.restartCount++;
|
|
353
|
-
const delay = RESTART_DELAY_MS * this.restartCount;
|
|
354
|
-
logger.info('McpClient: scheduling restart', { server: this.config.name, attempt: this.restartCount, delayMs: delay });
|
|
355
|
-
|
|
356
|
-
setTimeout(async () => {
|
|
357
|
-
if (this.proc && this.isConnected) return; // Already restarted by something else
|
|
358
|
-
try {
|
|
359
|
-
await this._startProcess();
|
|
360
|
-
await this._initialize();
|
|
361
|
-
// Invalidate tool cache so it's re-fetched after restart
|
|
362
|
-
this.toolInfoCache = null;
|
|
363
|
-
logger.info('McpClient: restart successful', { server: this.config.name });
|
|
364
|
-
} catch (err) {
|
|
365
|
-
logger.error('McpClient: restart failed', { server: this.config.name, err: summarizeError(err) });
|
|
366
|
-
}
|
|
367
|
-
}, delay);
|
|
368
|
-
}
|
|
369
|
-
|
|
370
|
-
/**
|
|
371
|
-
* ping — Send a ping to check if server is healthy.
|
|
372
|
-
* Returns true if server responds within PING_TIMEOUT_MS.
|
|
373
|
-
*/
|
|
374
|
-
async ping(): Promise<boolean> {
|
|
375
|
-
if (!this.isConnected) return false;
|
|
376
|
-
try {
|
|
377
|
-
await this._request('ping', {});
|
|
378
|
-
return true;
|
|
379
|
-
} catch {
|
|
380
|
-
return false;
|
|
381
|
-
}
|
|
382
|
-
}
|
|
383
|
-
}
|
package/src/mcp/index.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export { McpRegistry } from '@pellux/goodvibes-sdk/platform/mcp/registry';
|
|
2
|
-
export type { RegisteredTool } from '@pellux/goodvibes-sdk/platform/mcp/registry';
|
|
3
|
-
export { createMcpApi } from '@pellux/goodvibes-sdk/platform/mcp/mcp-api';
|
|
4
|
-
export type {
|
|
5
|
-
McpApi,
|
|
6
|
-
McpApiRegistry,
|
|
7
|
-
McpSandboxBindingRecord,
|
|
8
|
-
McpServerRecord,
|
|
9
|
-
McpServerSecurityRecord,
|
|
10
|
-
} from '@pellux/goodvibes-sdk/platform/mcp/mcp-api';
|
|
11
|
-
export { loadMcpConfig } from '@pellux/goodvibes-sdk/platform/mcp/config';
|
|
12
|
-
export type { McpConfig, McpConfigRoots, McpServerConfig } from '@pellux/goodvibes-sdk/platform/mcp/config';
|
package/src/mcp/mcp-api.ts
DELETED
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
import type { RegisteredTool } from '@pellux/goodvibes-sdk/platform/mcp/registry';
|
|
2
|
-
import type { McpDecisionRecord, McpServerRole, McpTrustMode, QuarantineReason, SchemaFreshness } from '@pellux/goodvibes-sdk/platform/runtime/mcp/types';
|
|
3
|
-
|
|
4
|
-
export interface McpServerRecord {
|
|
5
|
-
readonly name: string;
|
|
6
|
-
readonly connected: boolean;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export interface McpServerSecurityRecord {
|
|
10
|
-
readonly name: string;
|
|
11
|
-
readonly connected: boolean;
|
|
12
|
-
readonly role: McpServerRole;
|
|
13
|
-
readonly trustMode: McpTrustMode;
|
|
14
|
-
readonly allowedPaths: readonly string[];
|
|
15
|
-
readonly allowedHosts: readonly string[];
|
|
16
|
-
readonly schemaFreshness: SchemaFreshness;
|
|
17
|
-
readonly quarantineReason?: QuarantineReason;
|
|
18
|
-
readonly quarantineDetail?: string;
|
|
19
|
-
readonly quarantineApprovedBy?: string;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export interface McpSandboxBindingRecord {
|
|
23
|
-
readonly name: string;
|
|
24
|
-
readonly sessionId?: string;
|
|
25
|
-
readonly profileId?: 'mcp-shared' | 'mcp-per-server';
|
|
26
|
-
readonly state?: import('@pellux/goodvibes-sdk/platform/runtime/sandbox/types').SandboxSessionState;
|
|
27
|
-
readonly backend?: import('@pellux/goodvibes-sdk/platform/runtime/sandbox/types').SandboxResolvedBackend | import('@pellux/goodvibes-sdk/platform/runtime/sandbox/types').SandboxVmBackend;
|
|
28
|
-
readonly startupStatus?: 'verified' | 'planned' | 'failed';
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
export interface McpApi {
|
|
32
|
-
listServerNames(): readonly string[];
|
|
33
|
-
listServers(): readonly McpServerRecord[];
|
|
34
|
-
listServerSecurity(): readonly McpServerSecurityRecord[];
|
|
35
|
-
listSandboxBindings(): readonly McpSandboxBindingRecord[];
|
|
36
|
-
listRecentSecurityDecisions(limit?: number): readonly McpDecisionRecord[];
|
|
37
|
-
listAllTools(): Promise<readonly RegisteredTool[]>;
|
|
38
|
-
setServerTrustMode(serverName: string, mode: McpTrustMode): void;
|
|
39
|
-
setServerRole(serverName: string, role: McpServerRole): void;
|
|
40
|
-
quarantineSchema(serverName: string, reason: QuarantineReason, detail?: string): void;
|
|
41
|
-
approveSchemaQuarantine(serverName: string, operatorId: string): void;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
export interface McpApiRegistry {
|
|
45
|
-
readonly serverNames: readonly string[];
|
|
46
|
-
listServers(): readonly McpServerRecord[];
|
|
47
|
-
listServerSecurity(): readonly McpServerSecurityRecord[];
|
|
48
|
-
listServerSandboxBindings(): readonly McpSandboxBindingRecord[];
|
|
49
|
-
listRecentSecurityDecisions(limit?: number): readonly McpDecisionRecord[];
|
|
50
|
-
listAllTools(): Promise<readonly RegisteredTool[]>;
|
|
51
|
-
setServerTrustMode(serverName: string, mode: McpTrustMode): void;
|
|
52
|
-
setServerRole(serverName: string, role: McpServerRole): void;
|
|
53
|
-
quarantineSchema(serverName: string, reason: QuarantineReason, detail?: string): void;
|
|
54
|
-
approveSchemaQuarantine(serverName: string, operatorId: string): void;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
export function createMcpApi(registry: McpApiRegistry): McpApi {
|
|
58
|
-
return {
|
|
59
|
-
listServerNames(): readonly string[] {
|
|
60
|
-
return registry.serverNames;
|
|
61
|
-
},
|
|
62
|
-
listServers(): readonly McpServerRecord[] {
|
|
63
|
-
return registry.listServers();
|
|
64
|
-
},
|
|
65
|
-
listServerSecurity() {
|
|
66
|
-
return registry.listServerSecurity();
|
|
67
|
-
},
|
|
68
|
-
listSandboxBindings() {
|
|
69
|
-
return registry.listServerSandboxBindings();
|
|
70
|
-
},
|
|
71
|
-
listRecentSecurityDecisions(limit = 8) {
|
|
72
|
-
return registry.listRecentSecurityDecisions(limit);
|
|
73
|
-
},
|
|
74
|
-
listAllTools() {
|
|
75
|
-
return registry.listAllTools();
|
|
76
|
-
},
|
|
77
|
-
setServerTrustMode(serverName, mode) {
|
|
78
|
-
registry.setServerTrustMode(serverName, mode);
|
|
79
|
-
},
|
|
80
|
-
setServerRole(serverName, role) {
|
|
81
|
-
registry.setServerRole(serverName, role);
|
|
82
|
-
},
|
|
83
|
-
quarantineSchema(serverName, reason, detail) {
|
|
84
|
-
registry.quarantineSchema(serverName, reason, detail);
|
|
85
|
-
},
|
|
86
|
-
approveSchemaQuarantine(serverName, operatorId) {
|
|
87
|
-
registry.approveSchemaQuarantine(serverName, operatorId);
|
|
88
|
-
},
|
|
89
|
-
};
|
|
90
|
-
}
|
package/src/mcp/registry.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from '@pellux/goodvibes-sdk/platform/mcp/registry';
|