@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/plugins/api.ts
DELETED
|
@@ -1,383 +0,0 @@
|
|
|
1
|
-
import type { CommandRegistry, SlashCommand } from '../input/command-registry.ts';
|
|
2
|
-
import type { ModelDefinition, ProviderRegistry, RuntimeProviderRegistration, TokenLimits, ModelTier } from '@pellux/goodvibes-sdk/platform/providers/registry';
|
|
3
|
-
import type { LLMProvider } from '@pellux/goodvibes-sdk/platform/providers/interface';
|
|
4
|
-
import type { ToolRegistry } from '@pellux/goodvibes-sdk/platform/tools/registry';
|
|
5
|
-
import type { ToolDefinition } from '@pellux/goodvibes-sdk/platform/types/tools';
|
|
6
|
-
import type { RuntimeEventBus, AnyRuntimeEvent, RuntimeEventPayload } from '@pellux/goodvibes-sdk/platform/runtime/events/index';
|
|
7
|
-
import type { GatewayMethodCatalog, GatewayMethodDescriptor, GatewayMethodHandler } from '@pellux/goodvibes-sdk/platform/control-plane/index';
|
|
8
|
-
import {
|
|
9
|
-
type ChannelDeliveryStrategy,
|
|
10
|
-
type ChannelPlugin,
|
|
11
|
-
} from '@pellux/goodvibes-sdk/platform/channels/index';
|
|
12
|
-
import type { ChannelDeliveryRouter, ChannelPluginRegistry } from '@pellux/goodvibes-sdk/platform/channels/index';
|
|
13
|
-
import type { MemoryEmbeddingProvider, MemoryEmbeddingProviderRegistry } from '@pellux/goodvibes-sdk/platform/state/index';
|
|
14
|
-
import type { VoiceProvider, VoiceProviderRegistry } from '@pellux/goodvibes-sdk/platform/voice/index';
|
|
15
|
-
import type { MediaProvider, MediaProviderRegistry } from '@pellux/goodvibes-sdk/platform/media/index';
|
|
16
|
-
import type { WebSearchProvider, WebSearchProviderRegistry } from '@pellux/goodvibes-sdk/platform/web-search/index';
|
|
17
|
-
import { logger } from '@pellux/goodvibes-sdk/platform/utils/logger';
|
|
18
|
-
import { summarizeError } from '@pellux/goodvibes-sdk/platform/utils/error-display';
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* PluginProviderConfig — minimal config for registering a custom LLM provider
|
|
22
|
-
* via an OpenAI-compatible endpoint.
|
|
23
|
-
*/
|
|
24
|
-
export interface PluginProviderConfig {
|
|
25
|
-
/** Base URL for an OpenAI-compatible endpoint (e.g. "http://localhost:8080/v1"). */
|
|
26
|
-
baseURL: string;
|
|
27
|
-
/** API key. May be empty string for local/unauthenticated servers. */
|
|
28
|
-
apiKey?: string;
|
|
29
|
-
/** Model IDs this provider exposes. */
|
|
30
|
-
models: string[];
|
|
31
|
-
/** Optional display label shown in the model picker. */
|
|
32
|
-
displayName?: string;
|
|
33
|
-
/** Optional embedding model exposed by the endpoint. */
|
|
34
|
-
embeddingModel?: string;
|
|
35
|
-
/** Optional reasoning-format override for compatible endpoints. */
|
|
36
|
-
reasoningFormat?: 'mercury' | 'openrouter' | 'llamacpp' | 'none';
|
|
37
|
-
/** Optional context-window metadata for runtime-registered model picker entries. */
|
|
38
|
-
contextWindow?: number;
|
|
39
|
-
/** Optional runtime capability hints for the registered model entries. */
|
|
40
|
-
capabilities?: Partial<ModelDefinition['capabilities']>;
|
|
41
|
-
/** Optional reasoning effort options surfaced in the picker. */
|
|
42
|
-
reasoningEffort?: string[];
|
|
43
|
-
/** Optional provider tier surfaced in the picker. */
|
|
44
|
-
tier?: ModelTier;
|
|
45
|
-
/** Optional token limits surfaced in the picker. */
|
|
46
|
-
tokenLimits?: TokenLimits;
|
|
47
|
-
/** Optional auth env vars for provider posture. */
|
|
48
|
-
authEnvVars?: readonly string[];
|
|
49
|
-
/** Optional service names that expose service-owned OAuth. */
|
|
50
|
-
serviceNames?: readonly string[];
|
|
51
|
-
/** Optional subscription-provider identity used for stored OAuth posture. */
|
|
52
|
-
subscriptionProviderId?: string;
|
|
53
|
-
/** Optional catalog suppressions for runtime clients. */
|
|
54
|
-
suppressCatalogModels?: readonly string[];
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
export interface PluginRuntimeProviderModel {
|
|
58
|
-
readonly id: string;
|
|
59
|
-
readonly displayName?: string;
|
|
60
|
-
readonly description?: string;
|
|
61
|
-
readonly contextWindow?: number;
|
|
62
|
-
readonly selectable?: boolean;
|
|
63
|
-
readonly capabilities?: Partial<ModelDefinition['capabilities']>;
|
|
64
|
-
readonly reasoningEffort?: string[];
|
|
65
|
-
readonly tier?: ModelTier;
|
|
66
|
-
readonly tokenLimits?: TokenLimits;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
export interface PluginProviderRegistration {
|
|
70
|
-
readonly provider: LLMProvider;
|
|
71
|
-
readonly models?: readonly PluginRuntimeProviderModel[];
|
|
72
|
-
readonly suppressCatalogModels?: readonly string[];
|
|
73
|
-
readonly replace?: boolean;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
* PluginToolSchema — JSON Schema for a tool parameter object.
|
|
78
|
-
*/
|
|
79
|
-
export type PluginToolSchema = Record<string, unknown>;
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
* PluginToolHandler — Called when the LLM invokes a plugin-registered tool.
|
|
83
|
-
*/
|
|
84
|
-
export type PluginToolHandler = (
|
|
85
|
-
args: Record<string, unknown>,
|
|
86
|
-
) => Promise<{ success: boolean; output?: string; error?: string }>;
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* PluginCommandHandler — Called when a user runs a plugin-registered slash command.
|
|
90
|
-
*/
|
|
91
|
-
export type PluginCommandHandler = (args: string[]) => void | Promise<void>;
|
|
92
|
-
|
|
93
|
-
/**
|
|
94
|
-
* PluginAPI — The constrained API surface exposed to plugins.
|
|
95
|
-
* Plugins receive an instance of this interface during init; they cannot
|
|
96
|
-
* access the wider application internals directly.
|
|
97
|
-
*/
|
|
98
|
-
export interface PluginAPI {
|
|
99
|
-
/** Register a custom slash command. */
|
|
100
|
-
registerCommand(
|
|
101
|
-
name: string,
|
|
102
|
-
description: string,
|
|
103
|
-
handler: PluginCommandHandler,
|
|
104
|
-
): void;
|
|
105
|
-
|
|
106
|
-
/** Register a custom LLM provider (OpenAI-compatible endpoint). */
|
|
107
|
-
registerProvider(name: string, config: PluginProviderConfig): Promise<void>;
|
|
108
|
-
|
|
109
|
-
/** Register a fully custom runtime provider instance with optional model entries. */
|
|
110
|
-
registerProviderInstance(registration: PluginProviderRegistration): void;
|
|
111
|
-
|
|
112
|
-
/** Register a custom tool available to the LLM. */
|
|
113
|
-
registerTool(
|
|
114
|
-
name: string,
|
|
115
|
-
schema: PluginToolSchema,
|
|
116
|
-
handler: PluginToolHandler,
|
|
117
|
-
): void;
|
|
118
|
-
|
|
119
|
-
/** Register a callable control-plane gateway method. */
|
|
120
|
-
registerGatewayMethod(
|
|
121
|
-
descriptor: Omit<GatewayMethodDescriptor, 'source' | 'pluginId'> & Partial<Pick<GatewayMethodDescriptor, 'source' | 'pluginId'>>,
|
|
122
|
-
handler: GatewayMethodHandler,
|
|
123
|
-
): void;
|
|
124
|
-
|
|
125
|
-
/** Register a channel plugin for a surface such as Slack, Discord, ntfy, or webhooks. */
|
|
126
|
-
registerChannelPlugin(plugin: ChannelPlugin): void;
|
|
127
|
-
|
|
128
|
-
/** Register an outbound channel delivery strategy. */
|
|
129
|
-
registerDeliveryStrategy(strategy: ChannelDeliveryStrategy, options?: { readonly replace?: boolean }): void;
|
|
130
|
-
|
|
131
|
-
/** Register a memory embedding provider. Sync providers can power sqlite-vec indexing immediately. */
|
|
132
|
-
registerMemoryEmbeddingProvider(provider: MemoryEmbeddingProvider, options?: { readonly replace?: boolean; readonly makeDefault?: boolean }): void;
|
|
133
|
-
|
|
134
|
-
/** Register a TS-only voice provider for TTS, STT, or realtime session negotiation. */
|
|
135
|
-
registerVoiceProvider(provider: VoiceProvider, options?: { readonly replace?: boolean }): void;
|
|
136
|
-
|
|
137
|
-
/** Register a TS-only media provider for analysis, transform, or generation. */
|
|
138
|
-
registerMediaProvider(provider: MediaProvider, options?: { readonly replace?: boolean }): void;
|
|
139
|
-
|
|
140
|
-
/** Register a provider-backed web search adapter. */
|
|
141
|
-
registerWebSearchProvider(provider: WebSearchProvider, options?: { readonly replace?: boolean }): void;
|
|
142
|
-
|
|
143
|
-
/** Subscribe to a typed runtime event. Returns an unsubscribe function. */
|
|
144
|
-
onEvent<K extends AnyRuntimeEvent['type']>(
|
|
145
|
-
eventName: K,
|
|
146
|
-
handler: (payload: RuntimeEventPayload<K>) => void,
|
|
147
|
-
): () => void;
|
|
148
|
-
|
|
149
|
-
/** Read a plugin-specific config value from the plugin's stored settings. */
|
|
150
|
-
getConfig(key: string): unknown;
|
|
151
|
-
|
|
152
|
-
/** Emit structured log output to the application logger. */
|
|
153
|
-
log(level: 'info' | 'warn' | 'error' | 'debug', message: string): void;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
/**
|
|
157
|
-
* PluginAPIContext — Internal dependencies passed when creating a PluginAPI instance.
|
|
158
|
-
* Not exposed to plugins.
|
|
159
|
-
*/
|
|
160
|
-
export interface PluginAPIContext {
|
|
161
|
-
pluginName: string;
|
|
162
|
-
runtimeBus: RuntimeEventBus;
|
|
163
|
-
commandRegistry: CommandRegistry;
|
|
164
|
-
providerRegistry: ProviderRegistry;
|
|
165
|
-
toolRegistry: ToolRegistry;
|
|
166
|
-
gatewayMethods: GatewayMethodCatalog;
|
|
167
|
-
channelRegistry: ChannelPluginRegistry;
|
|
168
|
-
channelDeliveryRouter: ChannelDeliveryRouter;
|
|
169
|
-
memoryEmbeddingRegistry: MemoryEmbeddingProviderRegistry;
|
|
170
|
-
voiceProviderRegistry: VoiceProviderRegistry;
|
|
171
|
-
mediaProviderRegistry: MediaProviderRegistry;
|
|
172
|
-
webSearchProviderRegistry: WebSearchProviderRegistry;
|
|
173
|
-
/** Plugin-specific config key-value pairs from plugins.json state. */
|
|
174
|
-
pluginConfig: Record<string, unknown>;
|
|
175
|
-
/** Collect cleanup callbacks so the manager can teardown on disable/reload. */
|
|
176
|
-
cleanup: Array<() => void>;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
/**
|
|
180
|
-
* createPluginAPI — Factory that creates a sandboxed PluginAPI for a single plugin.
|
|
181
|
-
* All registrations are tracked in `ctx.cleanup` so they can be undone on deactivation.
|
|
182
|
-
*/
|
|
183
|
-
export function createPluginAPI(ctx: PluginAPIContext): PluginAPI {
|
|
184
|
-
return {
|
|
185
|
-
registerCommand(name, description, handler) {
|
|
186
|
-
// Namespace commands to avoid collisions: "plugin-<pluginName>-<name>"
|
|
187
|
-
const cmdName = `plugin-${ctx.pluginName}-${name}`;
|
|
188
|
-
const cmd: SlashCommand = {
|
|
189
|
-
name: cmdName,
|
|
190
|
-
description: `[${ctx.pluginName}] ${description}`,
|
|
191
|
-
handler: async (args, _context) => {
|
|
192
|
-
try {
|
|
193
|
-
await handler(args);
|
|
194
|
-
} catch (err) {
|
|
195
|
-
logger.error(`[plugin:${ctx.pluginName}] Command '${name}' threw: ${summarizeError(err)}`);
|
|
196
|
-
}
|
|
197
|
-
},
|
|
198
|
-
};
|
|
199
|
-
ctx.commandRegistry.register(cmd);
|
|
200
|
-
ctx.cleanup.push(() => ctx.commandRegistry.unregister(cmdName));
|
|
201
|
-
},
|
|
202
|
-
|
|
203
|
-
async registerProvider(name, config) {
|
|
204
|
-
// Dynamically import to avoid circular dependency at module load time.
|
|
205
|
-
try {
|
|
206
|
-
const { OpenAICompatProvider } = await import('../providers/openai-compat.ts');
|
|
207
|
-
try {
|
|
208
|
-
const provider = new OpenAICompatProvider({
|
|
209
|
-
name,
|
|
210
|
-
baseURL: config.baseURL,
|
|
211
|
-
apiKey: config.apiKey ?? '',
|
|
212
|
-
defaultModel: config.models[0] ?? '',
|
|
213
|
-
models: config.models,
|
|
214
|
-
...(config.embeddingModel ? { embeddingModel: config.embeddingModel } : {}),
|
|
215
|
-
...(config.reasoningFormat ? { reasoningFormat: config.reasoningFormat } : {}),
|
|
216
|
-
...(config.authEnvVars ? { authEnvVars: config.authEnvVars } : {}),
|
|
217
|
-
...(config.serviceNames ? { serviceNames: config.serviceNames } : {}),
|
|
218
|
-
...(config.subscriptionProviderId ? { subscriptionProviderId: config.subscriptionProviderId } : {}),
|
|
219
|
-
...(config.suppressCatalogModels ? { suppressedModels: config.suppressCatalogModels } : {}),
|
|
220
|
-
});
|
|
221
|
-
const unregister = ctx.providerRegistry.registerRuntimeProvider({
|
|
222
|
-
provider,
|
|
223
|
-
models: config.models.map((modelId) => ({
|
|
224
|
-
id: modelId,
|
|
225
|
-
provider: name,
|
|
226
|
-
registryKey: `${name}:${modelId}`,
|
|
227
|
-
displayName: config.displayName ?? modelId,
|
|
228
|
-
description: `Plugin provider ${name}`,
|
|
229
|
-
contextWindow: config.contextWindow ?? 8192,
|
|
230
|
-
selectable: true,
|
|
231
|
-
capabilities: {
|
|
232
|
-
toolCalling: config.capabilities?.toolCalling ?? true,
|
|
233
|
-
codeEditing: config.capabilities?.codeEditing ?? true,
|
|
234
|
-
reasoning: config.capabilities?.reasoning ?? false,
|
|
235
|
-
multimodal: config.capabilities?.multimodal ?? false,
|
|
236
|
-
},
|
|
237
|
-
...(config.reasoningEffort ? { reasoningEffort: config.reasoningEffort } : {}),
|
|
238
|
-
...(config.tier ? { tier: config.tier } : {}),
|
|
239
|
-
...(config.tokenLimits ? { tokenLimits: config.tokenLimits } : {}),
|
|
240
|
-
})),
|
|
241
|
-
suppressCatalogModels: config.suppressCatalogModels,
|
|
242
|
-
});
|
|
243
|
-
ctx.cleanup.push(unregister);
|
|
244
|
-
logger.info(`[plugin:${ctx.pluginName}] Registered provider '${name}' with ${config.models.length} model(s)`);
|
|
245
|
-
} catch (err) {
|
|
246
|
-
logger.error(`[plugin:${ctx.pluginName}] registerProvider '${name}' failed: ${summarizeError(err)}`);
|
|
247
|
-
throw err;
|
|
248
|
-
}
|
|
249
|
-
} catch (err) {
|
|
250
|
-
logger.error(`[plugin:${ctx.pluginName}] Could not import OpenAICompatProvider: ${summarizeError(err)}`);
|
|
251
|
-
throw err;
|
|
252
|
-
}
|
|
253
|
-
},
|
|
254
|
-
|
|
255
|
-
registerProviderInstance(registration) {
|
|
256
|
-
const unregister = ctx.providerRegistry.registerRuntimeProvider({
|
|
257
|
-
provider: registration.provider,
|
|
258
|
-
models: (registration.models ?? []).map((model) => ({
|
|
259
|
-
id: model.id,
|
|
260
|
-
provider: registration.provider.name,
|
|
261
|
-
registryKey: `${registration.provider.name}:${model.id}`,
|
|
262
|
-
displayName: model.displayName ?? model.id,
|
|
263
|
-
description: model.description ?? `Plugin provider ${registration.provider.name}`,
|
|
264
|
-
contextWindow: model.contextWindow ?? 8192,
|
|
265
|
-
selectable: model.selectable ?? true,
|
|
266
|
-
capabilities: {
|
|
267
|
-
toolCalling: model.capabilities?.toolCalling ?? true,
|
|
268
|
-
codeEditing: model.capabilities?.codeEditing ?? true,
|
|
269
|
-
reasoning: model.capabilities?.reasoning ?? false,
|
|
270
|
-
multimodal: model.capabilities?.multimodal ?? false,
|
|
271
|
-
},
|
|
272
|
-
...(model.reasoningEffort ? { reasoningEffort: model.reasoningEffort } : {}),
|
|
273
|
-
...(model.tier ? { tier: model.tier } : {}),
|
|
274
|
-
...(model.tokenLimits ? { tokenLimits: model.tokenLimits } : {}),
|
|
275
|
-
})),
|
|
276
|
-
suppressCatalogModels: registration.suppressCatalogModels,
|
|
277
|
-
replace: registration.replace,
|
|
278
|
-
} satisfies RuntimeProviderRegistration);
|
|
279
|
-
ctx.cleanup.push(unregister);
|
|
280
|
-
logger.info(`[plugin:${ctx.pluginName}] Registered provider instance '${registration.provider.name}'`);
|
|
281
|
-
},
|
|
282
|
-
|
|
283
|
-
registerTool(name, schema, handler) {
|
|
284
|
-
const toolName = `plugin_${ctx.pluginName}_${name}`;
|
|
285
|
-
if (ctx.toolRegistry.has(toolName)) {
|
|
286
|
-
logger.warn(`[plugin:${ctx.pluginName}] Tool '${toolName}' already registered — skipping`);
|
|
287
|
-
return;
|
|
288
|
-
}
|
|
289
|
-
const definition: ToolDefinition = {
|
|
290
|
-
name: toolName,
|
|
291
|
-
description: (schema.description as string) ?? `Plugin tool: ${name}`,
|
|
292
|
-
parameters: schema,
|
|
293
|
-
};
|
|
294
|
-
ctx.toolRegistry.register({
|
|
295
|
-
definition,
|
|
296
|
-
execute: async (args) => {
|
|
297
|
-
try {
|
|
298
|
-
return await handler(args);
|
|
299
|
-
} catch (err) {
|
|
300
|
-
return { success: false, error: summarizeError(err) };
|
|
301
|
-
}
|
|
302
|
-
},
|
|
303
|
-
});
|
|
304
|
-
// ToolRegistry has no unregister method. Track for cleanup awareness.
|
|
305
|
-
ctx.cleanup.push(() => {
|
|
306
|
-
logger.warn(`[plugin:${ctx.pluginName}] Tool '${toolName}' cannot be unregistered on deactivate — it persists until process restart`);
|
|
307
|
-
});
|
|
308
|
-
},
|
|
309
|
-
|
|
310
|
-
registerGatewayMethod(descriptor, handler) {
|
|
311
|
-
const methodId = descriptor.id.startsWith(`plugin.${ctx.pluginName}.`)
|
|
312
|
-
? descriptor.id
|
|
313
|
-
: `plugin.${ctx.pluginName}.${descriptor.id}`;
|
|
314
|
-
const unregister = ctx.gatewayMethods.register({
|
|
315
|
-
...descriptor,
|
|
316
|
-
id: methodId,
|
|
317
|
-
source: 'plugin',
|
|
318
|
-
pluginId: ctx.pluginName,
|
|
319
|
-
}, handler);
|
|
320
|
-
ctx.cleanup.push(unregister);
|
|
321
|
-
logger.info(`[plugin:${ctx.pluginName}] Registered gateway method '${methodId}'`);
|
|
322
|
-
},
|
|
323
|
-
|
|
324
|
-
registerChannelPlugin(plugin) {
|
|
325
|
-
const registry = ctx.channelRegistry;
|
|
326
|
-
registry.register(plugin);
|
|
327
|
-
ctx.cleanup.push(() => {
|
|
328
|
-
if (registry.get(plugin.id) === plugin) registry.unregister(plugin.id);
|
|
329
|
-
});
|
|
330
|
-
logger.info(`[plugin:${ctx.pluginName}] Registered channel plugin '${plugin.id}'`);
|
|
331
|
-
},
|
|
332
|
-
|
|
333
|
-
registerDeliveryStrategy(strategy, options = {}) {
|
|
334
|
-
const router = ctx.channelDeliveryRouter;
|
|
335
|
-
router.registerStrategy(strategy, options);
|
|
336
|
-
ctx.cleanup.push(() => {
|
|
337
|
-
router.unregisterStrategy(strategy.id);
|
|
338
|
-
});
|
|
339
|
-
logger.info(`[plugin:${ctx.pluginName}] Registered delivery strategy '${strategy.id}'`);
|
|
340
|
-
},
|
|
341
|
-
|
|
342
|
-
registerMemoryEmbeddingProvider(provider, options = {}) {
|
|
343
|
-
const unregister = ctx.memoryEmbeddingRegistry.register(provider, options);
|
|
344
|
-
ctx.cleanup.push(unregister);
|
|
345
|
-
logger.info(`[plugin:${ctx.pluginName}] Registered memory embedding provider '${provider.id}'`);
|
|
346
|
-
},
|
|
347
|
-
|
|
348
|
-
registerVoiceProvider(provider, options = {}) {
|
|
349
|
-
const unregister = ctx.voiceProviderRegistry.register(provider, options);
|
|
350
|
-
ctx.cleanup.push(unregister);
|
|
351
|
-
logger.info(`[plugin:${ctx.pluginName}] Registered voice provider '${provider.id}'`);
|
|
352
|
-
},
|
|
353
|
-
|
|
354
|
-
registerMediaProvider(provider, options = {}) {
|
|
355
|
-
const unregister = ctx.mediaProviderRegistry.register(provider, options);
|
|
356
|
-
ctx.cleanup.push(unregister);
|
|
357
|
-
logger.info(`[plugin:${ctx.pluginName}] Registered media provider '${provider.id}'`);
|
|
358
|
-
},
|
|
359
|
-
|
|
360
|
-
registerWebSearchProvider(provider, options = {}) {
|
|
361
|
-
const unregister = ctx.webSearchProviderRegistry.register(provider, options);
|
|
362
|
-
ctx.cleanup.push(unregister);
|
|
363
|
-
logger.info(`[plugin:${ctx.pluginName}] Registered web search provider '${provider.id}'`);
|
|
364
|
-
},
|
|
365
|
-
|
|
366
|
-
onEvent(eventName, handler) {
|
|
367
|
-
const unsub = ctx.runtimeBus.on(
|
|
368
|
-
eventName,
|
|
369
|
-
(envelope) => handler(envelope.payload as RuntimeEventPayload<typeof eventName>),
|
|
370
|
-
);
|
|
371
|
-
ctx.cleanup.push(unsub);
|
|
372
|
-
return unsub;
|
|
373
|
-
},
|
|
374
|
-
|
|
375
|
-
getConfig(key) {
|
|
376
|
-
return ctx.pluginConfig[key];
|
|
377
|
-
},
|
|
378
|
-
|
|
379
|
-
log(level, message) {
|
|
380
|
-
logger[level](`[plugin:${ctx.pluginName}] ${message}`);
|
|
381
|
-
},
|
|
382
|
-
};
|
|
383
|
-
}
|