@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/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,62 @@ All notable changes to GoodVibes TUI.
|
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
## [0.18.12] — 2026-04-15
|
|
8
|
+
|
|
9
|
+
### SDK `0.18.28` Session-Persistence Boundary Fix
|
|
10
|
+
|
|
11
|
+
- Updated `goodvibes-tui` to consume the published canonical SDK line at `@pellux/goodvibes-sdk@0.18.28`
|
|
12
|
+
- Pulled in the SDK fix that threads `surfaceRoot` through the last-session pointer and crash-recovery helpers instead of silently falling back to the shared `.goodvibes/...` tree
|
|
13
|
+
- This closes the remaining TUI session-storage boundary leak that could still split a TUI-owned session across `.goodvibes/tui/...` and the unscoped shared root even after the broader SDK cutover
|
|
14
|
+
|
|
15
|
+
### TUI Validation Tail Cleanup
|
|
16
|
+
|
|
17
|
+
- Moved the remaining session, template, picker, plugin, bootstrap-service, and related test temp roots onto the repo-local `.test-tmp/...` path instead of `os.tmpdir()`, removing the local quota failures that were still breaking the TUI validation pass
|
|
18
|
+
- Updated the shell-control cutover gate to assert against the current TUI production surfaces and the intentional removal of old local platform files instead of reading deleted pre-cutover paths
|
|
19
|
+
- Removed the stale typed-emission allowlist entry for `src/runtime/health/effect-handlers.ts` after that file was deleted during the SDK cutover, so the enforcement gate now reflects the live tree again
|
|
20
|
+
|
|
21
|
+
### Verification
|
|
22
|
+
|
|
23
|
+
- Full typecheck passes: `bun x tsc --noEmit --pretty false`
|
|
24
|
+
- Full test runner passes: `bun run test` (`437` files passed / `0` failed)
|
|
25
|
+
- Architecture gate passes: `bun run architecture:check`
|
|
26
|
+
- Build passes: `bun run build`
|
|
27
|
+
- Targeted cutover regression band passes against the published SDK `0.18.28`
|
|
28
|
+
|
|
29
|
+
## [0.18.11] — 2026-04-15
|
|
30
|
+
|
|
31
|
+
### Version Boundary Cleanup
|
|
32
|
+
|
|
33
|
+
- Fixed the TUI foundation artifact export path so `docs/foundation-artifacts/operator-contract.json` is now built through the TUI contract wrapper instead of the raw SDK builder
|
|
34
|
+
- That keeps the checked-in operator artifact on the TUI product version instead of leaking the SDK package version into TUI-owned release artifacts
|
|
35
|
+
- Updated the release gate to enforce the same boundary, so future foundation artifact checks compare against the TUI contract surface instead of silently accepting SDK-version drift
|
|
36
|
+
- Moved the TUI version-surface sync and foundation-artifact generation behind a shared workspace lock so `prebuild`, artifact export, and package staging cannot race each other over release-owned files
|
|
37
|
+
- Made `publish:package` resync those surfaces before staging, so tarballs are built from the current TUI product version and current foundation artifacts instead of whatever happened to be on disk first
|
|
38
|
+
- Updated the release build job to run the same surface sync before compiling binaries, so fresh CI checkouts cannot embed stale contract/version files into release assets
|
|
39
|
+
|
|
40
|
+
### SDK `0.18.26` Update
|
|
41
|
+
|
|
42
|
+
- Updated `goodvibes-tui` to consume `@pellux/goodvibes-sdk@0.18.26`
|
|
43
|
+
- Pulled in the SDK fix that syncs the baked runtime version fallback from the package version and adds a workspace lock around build and staging so concurrent validate/release flows stop racing over `dist`
|
|
44
|
+
- This removes the stale embedded `0.18.14` SDK fallback string from rebuilt downstream binaries and closes the recurring pack/release race that was still showing up during SDK release validation
|
|
45
|
+
- Rebuilt the TUI against that SDK patch and confirmed the startup header now shows `v0.18.11` while the stale `0.18.14` leak is gone from the compiled binary
|
|
46
|
+
|
|
47
|
+
### Verification
|
|
48
|
+
|
|
49
|
+
- Foundation artifacts export passes: `bun run foundation:artifacts`
|
|
50
|
+
- Foundation artifact release gate passes
|
|
51
|
+
- Full typecheck passes: `bun x tsc --noEmit --pretty false`
|
|
52
|
+
- Full test runner passes: `bun run test`
|
|
53
|
+
- Architecture gate passes: `bun run architecture:check`
|
|
54
|
+
- Performance gate passes: `bun run perf:check`
|
|
55
|
+
- Eval gate passes: `bun run eval:gate`
|
|
56
|
+
- Build passes: `bun run build`
|
|
57
|
+
- Compiled binary startup passes: `./dist/goodvibes`
|
|
58
|
+
- Publish packaging check passes: `bun run publish:check`
|
|
59
|
+
- Staged npm package rehearsal passes: `bun run publish:dry-run`
|
|
60
|
+
- Staged GitHub Packages rehearsal passes: `bun run publish:dry-run:github`
|
|
61
|
+
- Diff hygiene passes: `git diff --check`
|
|
62
|
+
|
|
7
63
|
## [0.18.10] — 2026-04-15
|
|
8
64
|
|
|
9
65
|
### SDK `0.18.25` Startup Crash Fix
|
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://github.com/mgd34msu/goodvibes-tui/actions/workflows/ci.yml)
|
|
4
4
|
[](https://opensource.org/licenses/MIT)
|
|
5
|
-
[](https://github.com/mgd34msu/goodvibes-tui)
|
|
6
6
|
|
|
7
7
|
A terminal-native AI coding, operations, automation, knowledge, and integration console with a typed runtime, omnichannel surfaces, structured memory/knowledge, and a raw ANSI renderer.
|
|
8
8
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pellux/goodvibes-tui",
|
|
3
|
-
"version": "0.18.
|
|
3
|
+
"version": "0.18.12",
|
|
4
4
|
"description": "Terminal-native GoodVibes product for coding, operations, automation, knowledge, channels, and daemon-backed control-plane workflows.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "src/main.ts",
|
|
@@ -88,7 +88,7 @@
|
|
|
88
88
|
"@anthropic-ai/vertex-sdk": "^0.16.0",
|
|
89
89
|
"@ast-grep/napi": "^0.42.0",
|
|
90
90
|
"@aws/bedrock-token-generator": "^1.1.0",
|
|
91
|
-
"@pellux/goodvibes-sdk": "0.18.
|
|
91
|
+
"@pellux/goodvibes-sdk": "0.18.28",
|
|
92
92
|
"bash-language-server": "^5.6.0",
|
|
93
93
|
"fuse.js": "^7.1.0",
|
|
94
94
|
"graphql": "^16.13.2",
|
|
@@ -11,8 +11,8 @@ import type { ConfigManager } from '@pellux/goodvibes-sdk/platform/config/manage
|
|
|
11
11
|
import { renderConversationCollapsedFragment, renderConversationEventLine } from '../renderer/conversation-surface.ts';
|
|
12
12
|
import { GLYPHS } from '../renderer/ui-primitives.ts';
|
|
13
13
|
import type { BlockMeta, ConversationMessageSnapshot } from './conversation';
|
|
14
|
-
import { parseDiffForApply } from '
|
|
15
|
-
import { extractUserDisplayText } from '
|
|
14
|
+
import { parseDiffForApply } from '@pellux/goodvibes-sdk/platform/core/conversation-diff';
|
|
15
|
+
import { extractUserDisplayText } from '@pellux/goodvibes-sdk/platform/core/conversation-utils';
|
|
16
16
|
|
|
17
17
|
type Message = ConversationMessageSnapshot;
|
|
18
18
|
|
package/src/core/conversation.ts
CHANGED
|
@@ -9,7 +9,7 @@ import type { SessionMemoryStore } from '@pellux/goodvibes-sdk/platform/core/ses
|
|
|
9
9
|
import { SessionLineageTracker } from '@pellux/goodvibes-sdk/platform/core/session-lineage';
|
|
10
10
|
import { buildTranscriptEventIndex } from '@pellux/goodvibes-sdk/platform/core/transcript-events/index';
|
|
11
11
|
import type { TranscriptEventKind } from '@pellux/goodvibes-sdk/platform/core/transcript-events/index';
|
|
12
|
-
import { compactConversation } from '
|
|
12
|
+
import { compactConversation } from '@pellux/goodvibes-sdk/platform/core/conversation-compaction';
|
|
13
13
|
import {
|
|
14
14
|
addConversationSplashScreen,
|
|
15
15
|
appendConversationMessages,
|
|
@@ -27,8 +27,8 @@ import {
|
|
|
27
27
|
deriveConversationTitle,
|
|
28
28
|
messagesToInternal,
|
|
29
29
|
restoreBranchMap,
|
|
30
|
-
} from '
|
|
31
|
-
import { applyDiffContent, parseDiffForApply } from '
|
|
30
|
+
} from '@pellux/goodvibes-sdk/platform/core/conversation-utils';
|
|
31
|
+
import { applyDiffContent, parseDiffForApply } from '@pellux/goodvibes-sdk/platform/core/conversation-diff';
|
|
32
32
|
|
|
33
33
|
/**
|
|
34
34
|
* ConversationManager - Owns conversation messages and the rendered history buffer.
|
|
@@ -662,7 +662,7 @@ export class ConversationManager {
|
|
|
662
662
|
modelId: string,
|
|
663
663
|
trigger: 'auto' | 'manual' = 'manual',
|
|
664
664
|
provider?: string,
|
|
665
|
-
context?: import('
|
|
665
|
+
context?: import('@pellux/goodvibes-sdk/platform/core/context-compaction').CompactionContext,
|
|
666
666
|
): Promise<void> {
|
|
667
667
|
return compactConversation(this, registry, modelId, trigger, provider, context);
|
|
668
668
|
}
|
|
@@ -772,4 +772,4 @@ export class ConversationManager {
|
|
|
772
772
|
this.dirty = true;
|
|
773
773
|
}
|
|
774
774
|
}
|
|
775
|
-
export { parseDiffForApply, applyDiffContent } from '
|
|
775
|
+
export { parseDiffForApply, applyDiffContent } from '@pellux/goodvibes-sdk/platform/core/conversation-diff';
|
package/src/core/orchestrator.ts
CHANGED
|
@@ -20,7 +20,7 @@ import { EventReplayQueue } from '@pellux/goodvibes-sdk/platform/core/event-repl
|
|
|
20
20
|
import {
|
|
21
21
|
type ConversationFollowUpItem,
|
|
22
22
|
} from '@pellux/goodvibes-sdk/platform/core/conversation-follow-ups';
|
|
23
|
-
import { OrchestratorFollowUpRuntime } from '
|
|
23
|
+
import { OrchestratorFollowUpRuntime } from '@pellux/goodvibes-sdk/platform/core/orchestrator-follow-up-runtime';
|
|
24
24
|
import type { SystemMessageRouter } from './system-message-router.ts';
|
|
25
25
|
import { AgentManager } from '@pellux/goodvibes-sdk/platform/tools/agent/index';
|
|
26
26
|
import { WrfcController } from '@pellux/goodvibes-sdk/platform/agents/wrfc-controller';
|
|
@@ -42,12 +42,12 @@ import {
|
|
|
42
42
|
autoSpawnPendingItems,
|
|
43
43
|
executeToolCalls,
|
|
44
44
|
reconcileUnresolvedToolCalls,
|
|
45
|
-
} from '
|
|
45
|
+
} from '@pellux/goodvibes-sdk/platform/core/orchestrator-tool-runtime';
|
|
46
46
|
import {
|
|
47
47
|
checkContextWindowPreflight,
|
|
48
48
|
emitContextOverflowError,
|
|
49
49
|
handlePostTurnContextMaintenance,
|
|
50
|
-
} from '
|
|
50
|
+
} from '@pellux/goodvibes-sdk/platform/core/orchestrator-context-runtime';
|
|
51
51
|
import {
|
|
52
52
|
createEmitterContext,
|
|
53
53
|
estimateFreshTurnInputTokens,
|
|
@@ -58,13 +58,14 @@ import {
|
|
|
58
58
|
requireConfigManager,
|
|
59
59
|
requireProviderRegistry,
|
|
60
60
|
type OrchestratorCoreServices,
|
|
61
|
-
} from '
|
|
61
|
+
} from '@pellux/goodvibes-sdk/platform/core/orchestrator-runtime';
|
|
62
62
|
import {
|
|
63
63
|
type ChatResponseWithReasoning,
|
|
64
64
|
maybeEmitAdaptivePlannerDecision,
|
|
65
65
|
prepareConversationForTurn,
|
|
66
|
-
} from '
|
|
67
|
-
import { executeOrchestratorTurnLoop } from '
|
|
66
|
+
} from '@pellux/goodvibes-sdk/platform/core/orchestrator-turn-helpers';
|
|
67
|
+
import { executeOrchestratorTurnLoop } from '@pellux/goodvibes-sdk/platform/core/orchestrator-turn-loop';
|
|
68
|
+
import type { ConversationManager as SdkConversationManager } from '@pellux/goodvibes-sdk/platform/core/conversation';
|
|
68
69
|
|
|
69
70
|
/** Minimal interface for hook dispatch — allows any compatible implementation */
|
|
70
71
|
interface HookDispatcherLike {
|
|
@@ -180,6 +181,7 @@ export class Orchestrator {
|
|
|
180
181
|
readonly wrfcController: Pick<WrfcController, 'listChains'>;
|
|
181
182
|
},
|
|
182
183
|
) {
|
|
184
|
+
const sdkConversation = this.conversation as unknown as SdkConversationManager;
|
|
183
185
|
this.replayQueue = new EventReplayQueue();
|
|
184
186
|
this.detachReplay = runtimeBus
|
|
185
187
|
? EventReplayQueue.attachToRuntimeBus(runtimeBus, this.replayQueue)
|
|
@@ -190,7 +192,7 @@ export class Orchestrator {
|
|
|
190
192
|
this.agentManager = services.agentManager;
|
|
191
193
|
this.wrfcController = services.wrfcController;
|
|
192
194
|
this.followUpRuntime = new OrchestratorFollowUpRuntime({
|
|
193
|
-
conversation:
|
|
195
|
+
conversation: sdkConversation,
|
|
194
196
|
getViewportHeight: () => this.getViewportHeight(),
|
|
195
197
|
scrollToEnd: (height) => this.scrollToEnd(height),
|
|
196
198
|
getSystemPrompt: () => this.getSystemPrompt(),
|
|
@@ -449,7 +451,7 @@ export class Orchestrator {
|
|
|
449
451
|
// Pre-turn plan injection: if an active plan exists, inject its current state into
|
|
450
452
|
// the conversation so the LLM can refer to it and update item statuses.
|
|
451
453
|
const preTurnPlan = prepareConversationForTurn(
|
|
452
|
-
this.conversation,
|
|
454
|
+
this.conversation as unknown as SdkConversationManager,
|
|
453
455
|
providerRegistry,
|
|
454
456
|
text,
|
|
455
457
|
content,
|
|
@@ -465,7 +467,7 @@ export class Orchestrator {
|
|
|
465
467
|
|
|
466
468
|
try {
|
|
467
469
|
await executeOrchestratorTurnLoop({
|
|
468
|
-
conversation: this.conversation,
|
|
470
|
+
conversation: this.conversation as unknown as SdkConversationManager,
|
|
469
471
|
toolRegistry: this.toolRegistry,
|
|
470
472
|
getSystemPrompt: this.getSystemPrompt,
|
|
471
473
|
getAbortSignal: () => this.abortController?.signal,
|
|
@@ -504,7 +506,7 @@ export class Orchestrator {
|
|
|
504
506
|
});
|
|
505
507
|
|
|
506
508
|
await handlePostTurnContextMaintenance({
|
|
507
|
-
conversation: this.conversation,
|
|
509
|
+
conversation: this.conversation as unknown as SdkConversationManager,
|
|
508
510
|
agentManager: this.agentManager,
|
|
509
511
|
wrfcController: this.wrfcController,
|
|
510
512
|
planManager: this.coreServices.planManager ?? null,
|
|
@@ -639,7 +641,7 @@ export class Orchestrator {
|
|
|
639
641
|
const configManager = requireConfigManager(this.coreServices);
|
|
640
642
|
const providerRegistry = requireProviderRegistry(this.coreServices);
|
|
641
643
|
return checkContextWindowPreflight({
|
|
642
|
-
conversation: this.conversation,
|
|
644
|
+
conversation: this.conversation as unknown as SdkConversationManager,
|
|
643
645
|
requestRender: this.requestRender,
|
|
644
646
|
hookDispatcher: this.hookDispatcher,
|
|
645
647
|
configManager,
|
|
@@ -25,10 +25,10 @@ import { type DistributedPeerAuth } from '@pellux/goodvibes-sdk/platform/runtime
|
|
|
25
25
|
import { KnowledgeGraphqlService, KnowledgeService } from '@pellux/goodvibes-sdk/platform/knowledge/index';
|
|
26
26
|
import type { IntegrationHelperService } from '@pellux/goodvibes-sdk/platform/runtime/integration/helpers';
|
|
27
27
|
import { DaemonControlPlaneHelper } from '@pellux/goodvibes-sdk/platform/daemon/control-plane';
|
|
28
|
-
import { DaemonSurfaceDeliveryHelper } from '
|
|
29
|
-
import { DaemonSurfaceActionHelper } from '
|
|
28
|
+
import { DaemonSurfaceDeliveryHelper } from '@pellux/goodvibes-sdk/platform/daemon/surface-delivery';
|
|
29
|
+
import { DaemonSurfaceActionHelper } from '@pellux/goodvibes-sdk/platform/daemon/surface-actions';
|
|
30
30
|
import { DaemonTransportEventsHelper } from '@pellux/goodvibes-sdk/platform/daemon/transport-events';
|
|
31
|
-
import { DaemonHttpRouter } from '
|
|
31
|
+
import { DaemonHttpRouter } from '@pellux/goodvibes-sdk/platform/daemon/http/router';
|
|
32
32
|
import { createRuntimeServices, type RuntimeServices } from '../runtime/services.ts';
|
|
33
33
|
import type { DaemonConfig, PendingSurfaceReply } from './types.ts';
|
|
34
34
|
import type { ResolvedInboundTlsContext } from '@pellux/goodvibes-sdk/platform/runtime/network/index';
|
|
@@ -104,7 +104,7 @@ export function resolveDaemonFacadeRuntime(
|
|
|
104
104
|
enabled: false,
|
|
105
105
|
host: config.host ?? String(resolvedConfigManager.get('controlPlane.host') ?? '127.0.0.1'),
|
|
106
106
|
port: config.port ?? Number(resolvedConfigManager.get('controlPlane.port') ?? 3421),
|
|
107
|
-
streamingMode: (resolvedConfigManager.get('controlPlane.streamMode') as import('
|
|
107
|
+
streamingMode: (resolvedConfigManager.get('controlPlane.streamMode') as import('@pellux/goodvibes-sdk/platform/control-plane/index').ControlPlaneStreamingMode | undefined) ?? 'sse',
|
|
108
108
|
},
|
|
109
109
|
});
|
|
110
110
|
|
|
@@ -189,7 +189,7 @@ export interface CreateDaemonFacadeCollaboratorsOptions {
|
|
|
189
189
|
readonly dispatchApiRoutes: (req: Request) => Promise<Response | null>;
|
|
190
190
|
readonly parseJsonBody: (req: Request) => Promise<JsonBody | Response>;
|
|
191
191
|
readonly requireAuthenticatedSession: (req: Request) => { username: string; roles: readonly string[] } | null;
|
|
192
|
-
readonly trySpawnAgent: (input: Parameters<AgentManager['spawn']>[0], logLabel?: string, sessionId?: string) => import('
|
|
192
|
+
readonly trySpawnAgent: (input: Parameters<AgentManager['spawn']>[0], logLabel?: string, sessionId?: string) => import('@pellux/goodvibes-sdk/platform/tools/agent/index').AgentRecord | Response;
|
|
193
193
|
readonly checkAuth: (req: Request) => boolean;
|
|
194
194
|
readonly extractAuthToken: (req: Request) => string;
|
|
195
195
|
readonly requireAdmin: (req: Request) => Response | null;
|
|
@@ -213,8 +213,8 @@ export interface CreateDaemonFacadeCollaboratorsOptions {
|
|
|
213
213
|
readonly clientKind?: string;
|
|
214
214
|
};
|
|
215
215
|
}) => Promise<{ status: number; ok: boolean; body: unknown }>;
|
|
216
|
-
readonly syncSpawnedAgentTask: (record: import('
|
|
217
|
-
readonly syncFinishedAgentTask: (record: import('
|
|
216
|
+
readonly syncSpawnedAgentTask: (record: import('@pellux/goodvibes-sdk/platform/tools/agent/index').AgentRecord, sessionId?: string) => void;
|
|
217
|
+
readonly syncFinishedAgentTask: (record: import('@pellux/goodvibes-sdk/platform/tools/agent/index').AgentRecord) => void;
|
|
218
218
|
readonly surfaceDeliveryEnabled: (surface: 'slack' | 'discord' | 'ntfy' | 'webhook' | 'telegram' | 'google-chat' | 'signal' | 'whatsapp' | 'imessage' | 'msteams' | 'bluebubbles' | 'mattermost' | 'matrix') => boolean;
|
|
219
219
|
readonly signWebhookPayload: (body: string, secret: string) => string;
|
|
220
220
|
readonly handleApprovalAction: (approvalId: string, action: 'claim' | 'approve' | 'deny' | 'cancel', req: Request) => Promise<Response>;
|
|
@@ -369,7 +369,7 @@ export function createDaemonFacadeCollaborators(
|
|
|
369
369
|
|
|
370
370
|
export function configureDaemonSessionContinuation(options: {
|
|
371
371
|
readonly sessionBroker: SharedSessionBroker;
|
|
372
|
-
readonly trySpawnAgent: (input: Parameters<AgentManager['spawn']>[0], logLabel?: string, sessionId?: string) => import('
|
|
372
|
+
readonly trySpawnAgent: (input: Parameters<AgentManager['spawn']>[0], logLabel?: string, sessionId?: string) => import('@pellux/goodvibes-sdk/platform/tools/agent/index').AgentRecord | Response;
|
|
373
373
|
readonly queueSurfaceReplyFromBinding: (binding: import('@pellux/goodvibes-sdk/platform/automation/routes').AutomationRouteBinding | undefined, input: {
|
|
374
374
|
readonly agentId: string;
|
|
375
375
|
readonly task: string;
|
package/src/daemon/facade.ts
CHANGED
|
@@ -29,10 +29,10 @@ import { type DistributedPeerAuth } from '@pellux/goodvibes-sdk/platform/runtime
|
|
|
29
29
|
import type { KnowledgeGraphqlService, KnowledgeService } from '@pellux/goodvibes-sdk/platform/knowledge/index';
|
|
30
30
|
import type { IntegrationHelperService } from '@pellux/goodvibes-sdk/platform/runtime/integration/helpers';
|
|
31
31
|
import type { DaemonControlPlaneHelper, ControlPlaneWebSocketData } from '@pellux/goodvibes-sdk/platform/daemon/control-plane';
|
|
32
|
-
import type { DaemonSurfaceDeliveryHelper } from '
|
|
33
|
-
import type { DaemonSurfaceActionHelper } from '
|
|
32
|
+
import type { DaemonSurfaceDeliveryHelper } from '@pellux/goodvibes-sdk/platform/daemon/surface-delivery';
|
|
33
|
+
import type { DaemonSurfaceActionHelper } from '@pellux/goodvibes-sdk/platform/daemon/surface-actions';
|
|
34
34
|
import type { DaemonTransportEventsHelper } from '@pellux/goodvibes-sdk/platform/daemon/transport-events';
|
|
35
|
-
import type { DaemonHttpRouter } from '
|
|
35
|
+
import type { DaemonHttpRouter } from '@pellux/goodvibes-sdk/platform/daemon/http/router';
|
|
36
36
|
import { isSurfaceDeliveryEnabled } from './surface-policy.ts';
|
|
37
37
|
import {
|
|
38
38
|
configureDaemonSessionContinuation,
|
|
@@ -205,7 +205,7 @@ export class DaemonServer {
|
|
|
205
205
|
});
|
|
206
206
|
}
|
|
207
207
|
|
|
208
|
-
listRecentControlPlaneEvents(limit = 100): readonly import('
|
|
208
|
+
listRecentControlPlaneEvents(limit = 100): readonly import('@pellux/goodvibes-sdk/platform/control-plane/gateway').ControlPlaneRecentEvent[] {
|
|
209
209
|
return this.controlPlaneGateway.listRecentEvents(limit);
|
|
210
210
|
}
|
|
211
211
|
|
|
@@ -429,7 +429,7 @@ export class DaemonServer {
|
|
|
429
429
|
}
|
|
430
430
|
|
|
431
431
|
private validateGatewayInvocation(
|
|
432
|
-
descriptor: import('
|
|
432
|
+
descriptor: import('@pellux/goodvibes-sdk/platform/control-plane/index').GatewayMethodDescriptor,
|
|
433
433
|
context?: {
|
|
434
434
|
readonly principalKind?: 'user' | 'bot' | 'service' | 'token' | 'remote-peer';
|
|
435
435
|
readonly scopes?: readonly string[];
|
|
@@ -447,7 +447,7 @@ export class DaemonServer {
|
|
|
447
447
|
}
|
|
448
448
|
|
|
449
449
|
private handleControlPlaneWebSocketOpen(ws: {
|
|
450
|
-
data: import('
|
|
450
|
+
data: import('@pellux/goodvibes-sdk/platform/daemon/control-plane').ControlPlaneWebSocketData;
|
|
451
451
|
send(message: string): void;
|
|
452
452
|
}): void {
|
|
453
453
|
this.controlPlaneHelper.handleControlPlaneWebSocketOpen(ws);
|
|
@@ -455,7 +455,7 @@ export class DaemonServer {
|
|
|
455
455
|
|
|
456
456
|
private async handleControlPlaneWebSocketMessage(
|
|
457
457
|
ws: {
|
|
458
|
-
data: import('
|
|
458
|
+
data: import('@pellux/goodvibes-sdk/platform/daemon/control-plane').ControlPlaneWebSocketData;
|
|
459
459
|
send(message: string): void;
|
|
460
460
|
},
|
|
461
461
|
message: string | Buffer | ArrayBuffer | Uint8Array,
|
|
@@ -464,7 +464,7 @@ export class DaemonServer {
|
|
|
464
464
|
}
|
|
465
465
|
|
|
466
466
|
private handleControlPlaneWebSocketClose(ws: {
|
|
467
|
-
data: import('
|
|
467
|
+
data: import('@pellux/goodvibes-sdk/platform/daemon/control-plane').ControlPlaneWebSocketData;
|
|
468
468
|
}): void {
|
|
469
469
|
this.controlPlaneHelper.handleControlPlaneWebSocketClose(ws);
|
|
470
470
|
}
|
package/src/daemon/types.ts
CHANGED
|
@@ -161,9 +161,9 @@ export interface DaemonRouteContext {
|
|
|
161
161
|
readonly parseSurfaceControlCommand: (text: string) => { readonly action: 'status' | 'cancel' | 'retry'; readonly id: string } | null;
|
|
162
162
|
readonly performSurfaceControlCommand: (command: { readonly action: 'status' | 'cancel' | 'retry'; readonly id: string }) => Promise<string>;
|
|
163
163
|
readonly performInteractiveSurfaceAction: (actionId: string, surface: 'slack' | 'discord', req: Request) => Promise<string>;
|
|
164
|
-
readonly trySpawnAgent: (input: { mode: 'spawn'; task: string; model?: string; tools?: readonly string[]; provider?: string; context?: string }, logLabel: string, sessionId?: string) => import('
|
|
165
|
-
readonly syncSpawnedAgentTask: (record: import('
|
|
166
|
-
readonly syncFinishedAgentTask: (record: import('
|
|
164
|
+
readonly trySpawnAgent: (input: { mode: 'spawn'; task: string; model?: string; tools?: readonly string[]; provider?: string; context?: string }, logLabel: string, sessionId?: string) => import('@pellux/goodvibes-sdk/platform/tools/agent/index').AgentRecord | Response;
|
|
165
|
+
readonly syncSpawnedAgentTask: (record: import('@pellux/goodvibes-sdk/platform/tools/agent/index').AgentRecord, sessionId?: string) => void;
|
|
166
|
+
readonly syncFinishedAgentTask: (record: import('@pellux/goodvibes-sdk/platform/tools/agent/index').AgentRecord) => void;
|
|
167
167
|
readonly findSchedule: (id: string) => AutomationJob | undefined;
|
|
168
168
|
readonly surfaceDeliveryEnabled: (surface: 'slack' | 'discord' | 'ntfy' | 'webhook' | 'telegram' | 'google-chat' | 'signal' | 'whatsapp' | 'imessage' | 'msteams' | 'bluebubbles' | 'mattermost' | 'matrix') => boolean;
|
|
169
169
|
readonly pollPendingSurfaceReplies: () => Promise<void>;
|
|
@@ -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';
|
|
@@ -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
|
|
|
@@ -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
|
|
|
@@ -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,
|
|
@@ -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,
|
|
@@ -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,7 +14,7 @@ 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';
|
|
@@ -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. */
|
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
// ContextVisualizerPanel — stacked bar showing context window composition.
|
|
3
3
|
// ---------------------------------------------------------------------------
|
|
4
4
|
|
|
5
|
+
import type { ConfigManager } from '@pellux/goodvibes-sdk/platform/config/manager';
|
|
5
6
|
import type { Line } from '@pellux/goodvibes-sdk/platform/types/grid';
|
|
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
10
|
import type { UiEventFeed } from '@pellux/goodvibes-sdk/platform/runtime/ui-events';
|
|
10
11
|
import type { UiReadModel, UiSessionSnapshot } from '../runtime/ui-read-models.ts';
|
|
@@ -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,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { ConfigManager } from '@pellux/goodvibes-sdk/platform/config/manager';
|
|
2
|
+
import { evaluateSessionMaintenance } from '@pellux/goodvibes-sdk/platform/runtime/session-maintenance';
|
|
2
3
|
import type {
|
|
3
4
|
UiContinuitySnapshot,
|
|
4
5
|
UiIntelligenceSnapshot,
|
|
@@ -20,6 +21,7 @@ export interface HealthDomainSummary {
|
|
|
20
21
|
}
|
|
21
22
|
|
|
22
23
|
export interface ProviderHealthDomainInputs {
|
|
24
|
+
readonly configManager: Pick<ConfigManager, 'get'>;
|
|
23
25
|
readonly auth: UiLocalAuthSnapshot;
|
|
24
26
|
readonly settings: UiSettingsSnapshot;
|
|
25
27
|
readonly remote: UiRemoteSnapshot;
|
|
@@ -35,6 +37,7 @@ export function buildProviderHealthDomainSummaries(
|
|
|
35
37
|
): HealthDomainSummary[] {
|
|
36
38
|
const summaries: HealthDomainSummary[] = [];
|
|
37
39
|
const {
|
|
40
|
+
configManager,
|
|
38
41
|
auth,
|
|
39
42
|
settings,
|
|
40
43
|
remote,
|
|
@@ -153,6 +156,7 @@ export function buildProviderHealthDomainSummaries(
|
|
|
153
156
|
});
|
|
154
157
|
|
|
155
158
|
const maintenance = evaluateSessionMaintenance({
|
|
159
|
+
configManager,
|
|
156
160
|
currentTokens: session.estimatedContextTokens,
|
|
157
161
|
contextWindow: session.contextWindow,
|
|
158
162
|
messageCount: session.messageCount,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ConfigManager } from '@pellux/goodvibes-sdk/platform/config/manager';
|
|
1
2
|
import { BasePanel } from './base-panel.ts';
|
|
2
3
|
import { createEmptyLine, createStyledCell, type Line } from '@pellux/goodvibes-sdk/platform/types/grid';
|
|
3
4
|
import type { ProviderAuthRouteDescriptor } from '@pellux/goodvibes-sdk/platform/providers/interface';
|
|
@@ -23,7 +24,7 @@ import type {
|
|
|
23
24
|
UiSettingsSnapshot,
|
|
24
25
|
UiWorktreeSnapshot,
|
|
25
26
|
} from '../runtime/ui-read-models.ts';
|
|
26
|
-
import { evaluateSessionMaintenance } from '
|
|
27
|
+
import { evaluateSessionMaintenance } from '@pellux/goodvibes-sdk/platform/runtime/session-maintenance';
|
|
27
28
|
import {
|
|
28
29
|
buildBodyText,
|
|
29
30
|
buildDetailBlock,
|
|
@@ -44,6 +45,7 @@ import {
|
|
|
44
45
|
// ---------------------------------------------------------------------------
|
|
45
46
|
|
|
46
47
|
export interface ProviderHealthPanelDeps {
|
|
48
|
+
readonly configManager: Pick<ConfigManager, 'get'>;
|
|
47
49
|
readonly turnEvents: UiEventFeed<TurnEvent>;
|
|
48
50
|
readonly providerEvents: UiEventFeed<ProviderEvent>;
|
|
49
51
|
readonly providers: UiReadModel<UiProvidersSnapshot>;
|
|
@@ -589,6 +591,7 @@ export class ProviderHealthPanel extends BasePanel {
|
|
|
589
591
|
|
|
590
592
|
const domainLines: Line[] = [];
|
|
591
593
|
for (const domain of buildProviderHealthDomainSummaries({
|
|
594
|
+
configManager: this.deps.configManager,
|
|
592
595
|
auth: this.deps.localAuth.getSnapshot(),
|
|
593
596
|
settings: this.deps.settings.getSnapshot(),
|
|
594
597
|
remote: this.deps.remote.getSnapshot(),
|
|
@@ -620,6 +623,7 @@ export class ProviderHealthPanel extends BasePanel {
|
|
|
620
623
|
const maintenanceLines: Line[] = [];
|
|
621
624
|
const session = this.deps.session.getSnapshot();
|
|
622
625
|
const maintenance = evaluateSessionMaintenance({
|
|
626
|
+
configManager: this.deps.configManager,
|
|
623
627
|
currentTokens: session.estimatedContextTokens,
|
|
624
628
|
contextWindow: session.contextWindow,
|
|
625
629
|
messageCount: session.messageCount,
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
import type { Line } from '@pellux/goodvibes-sdk/platform/types/grid';
|
|
6
6
|
import { BasePanel } from './base-panel.ts';
|
|
7
|
-
import type { SessionInfo } from '
|
|
7
|
+
import type { SessionInfo } from '@pellux/goodvibes-sdk/platform/sessions/manager';
|
|
8
8
|
import { logger } from '@pellux/goodvibes-sdk/platform/utils/logger';
|
|
9
9
|
import type { SessionBrowserQuery } from '../runtime/ui-service-queries.ts';
|
|
10
10
|
import {
|