@pellux/goodvibes-tui 0.18.11 → 0.18.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +72 -0
- package/README.md +1 -1
- package/docs/foundation-artifacts/operator-contract.json +1 -1
- package/package.json +2 -2
- package/src/config/index.ts +1 -138
- package/src/config/subscription-providers.ts +1 -127
- package/src/core/conversation-rendering.ts +5 -5
- package/src/core/conversation.ts +177 -424
- package/src/core/history.ts +45 -0
- package/src/core/orchestrator.ts +3 -733
- package/src/core/system-message-router.ts +19 -58
- package/src/input/command-registry.ts +3 -3
- package/src/input/commands/session-content.ts +2 -2
- package/src/input/commands/session-workflow.ts +1 -1
- package/src/input/handler-content-actions.ts +2 -2
- package/src/input/handler-feed.ts +2 -2
- package/src/input/handler-modal-token-routes.ts +1 -1
- package/src/input/handler-ui-state.ts +1 -1
- package/src/input/handler.ts +1 -1
- package/src/input/search.ts +1 -1
- package/src/input/selection.ts +2 -2
- package/src/input/session-picker-modal.ts +1 -1
- package/src/main.ts +1 -1
- package/src/panels/agent-inspector-panel.ts +3 -3
- package/src/panels/agent-logs-panel.ts +3 -3
- package/src/panels/approval-panel.ts +2 -2
- package/src/panels/automation-control-panel.ts +3 -3
- package/src/panels/base-panel.ts +14 -14
- package/src/panels/builtin/agent.ts +1 -0
- package/src/panels/builtin/operations.ts +2 -1
- package/src/panels/builtin/session.ts +2 -2
- package/src/panels/builtin/shared.ts +5 -5
- package/src/panels/cockpit-panel.ts +2 -2
- package/src/panels/communication-panel.ts +3 -3
- package/src/panels/context-visualizer-panel.ts +6 -3
- package/src/panels/control-plane-panel.ts +3 -3
- package/src/panels/cost-tracker-panel.ts +3 -3
- package/src/panels/debug-panel.ts +2 -2
- package/src/panels/diff-panel.ts +2 -2
- package/src/panels/docs-panel.ts +1 -1
- package/src/panels/eval-panel.ts +2 -2
- package/src/panels/file-explorer-panel.ts +3 -3
- package/src/panels/file-preview-panel.ts +3 -3
- package/src/panels/forensics-panel.ts +2 -2
- package/src/panels/git-panel.ts +1 -1
- package/src/panels/hooks-panel.ts +3 -3
- package/src/panels/incident-review-panel.ts +1 -1
- package/src/panels/intelligence-panel.ts +2 -2
- package/src/panels/knowledge-panel.ts +1 -1
- package/src/panels/local-auth-panel.ts +2 -2
- package/src/panels/marketplace-panel.ts +1 -1
- package/src/panels/mcp-panel.ts +3 -3
- package/src/panels/memory-panel.ts +1 -1
- package/src/panels/ops-control-panel.ts +3 -3
- package/src/panels/ops-strategy-panel.ts +2 -2
- package/src/panels/orchestration-panel.ts +2 -2
- package/src/panels/panel-list-panel.ts +6 -6
- package/src/panels/plan-dashboard-panel.ts +1 -1
- package/src/panels/plugins-panel.ts +2 -2
- package/src/panels/policy-panel.ts +2 -2
- package/src/panels/polish.ts +3 -3
- package/src/panels/provider-accounts-panel.ts +2 -2
- package/src/panels/provider-health-domains.ts +5 -1
- package/src/panels/provider-health-panel.ts +7 -3
- package/src/panels/provider-stats-panel.ts +3 -3
- package/src/panels/remote-panel.ts +3 -3
- package/src/panels/routes-panel.ts +3 -3
- package/src/panels/sandbox-panel.ts +2 -2
- package/src/panels/schedule-panel.ts +1 -1
- package/src/panels/security-panel.ts +2 -2
- package/src/panels/services-panel.ts +2 -2
- package/src/panels/session-browser-panel.ts +3 -3
- package/src/panels/settings-sync-panel.ts +2 -2
- package/src/panels/skills-panel.ts +6 -6
- package/src/panels/subscription-panel.ts +2 -2
- package/src/panels/symbol-outline-panel.ts +3 -3
- package/src/panels/system-messages-panel.ts +4 -4
- package/src/panels/tasks-panel.ts +2 -2
- package/src/panels/thinking-panel.ts +3 -3
- package/src/panels/token-budget-panel.ts +7 -3
- package/src/panels/tool-inspector-panel.ts +3 -3
- package/src/panels/types.ts +5 -5
- package/src/panels/watchers-panel.ts +3 -3
- package/src/panels/welcome-panel.ts +1 -1
- package/src/panels/worktree-panel.ts +2 -2
- package/src/panels/wrfc-panel.ts +3 -3
- package/src/permissions/prompt.ts +3 -22
- package/src/plugins/loader.ts +15 -304
- package/src/renderer/agent-detail-modal.ts +1 -1
- package/src/renderer/autocomplete-overlay.ts +2 -2
- package/src/renderer/bookmark-modal.ts +1 -1
- package/src/renderer/bottom-bar.ts +2 -2
- package/src/renderer/buffer.ts +1 -1
- package/src/renderer/code-block.ts +2 -2
- package/src/renderer/compositor.ts +2 -2
- package/src/renderer/context-inspector.ts +1 -1
- package/src/renderer/conversation-layout.ts +2 -2
- package/src/renderer/conversation-overlays.ts +1 -1
- package/src/renderer/conversation-surface.ts +2 -2
- package/src/renderer/diff-view.ts +2 -2
- package/src/renderer/diff.ts +1 -1
- package/src/renderer/file-picker-overlay.ts +2 -2
- package/src/renderer/file-tree.ts +2 -2
- package/src/renderer/help-overlay.ts +1 -1
- package/src/renderer/history-search-overlay.ts +2 -2
- package/src/renderer/live-tail-modal.ts +1 -1
- package/src/renderer/markdown.ts +2 -2
- package/src/renderer/modal-factory.ts +3 -3
- package/src/renderer/model-picker-overlay.ts +2 -2
- package/src/renderer/overlay-box.ts +2 -2
- package/src/renderer/panel-composite.ts +1 -1
- package/src/renderer/panel-picker-overlay.ts +2 -2
- package/src/renderer/panel-tab-bar.ts +1 -1
- package/src/renderer/panel-workspace-bar.ts +1 -1
- package/src/renderer/process-indicator.ts +2 -2
- package/src/renderer/process-modal.ts +1 -1
- package/src/renderer/profile-picker-modal.ts +2 -2
- package/src/renderer/progress.ts +2 -2
- package/src/renderer/search-overlay.ts +2 -2
- package/src/renderer/selection-modal-overlay.ts +2 -2
- package/src/renderer/session-picker-modal.ts +2 -2
- package/src/renderer/settings-modal.ts +2 -2
- package/src/renderer/shell-surface.ts +1 -1
- package/src/renderer/system-message.ts +1 -1
- package/src/renderer/tab-strip.ts +2 -2
- package/src/renderer/text-layout.ts +1 -1
- package/src/renderer/thinking.ts +1 -1
- package/src/renderer/tool-call.ts +2 -2
- package/src/renderer/ui-factory.ts +2 -2
- package/src/runtime/bootstrap-command-context.ts +7 -8
- package/src/runtime/bootstrap-command-parts.ts +4 -6
- package/src/runtime/bootstrap-core.ts +5 -4
- package/src/runtime/bootstrap-hook-bridge.ts +16 -175
- package/src/runtime/bootstrap-shell.ts +5 -5
- package/src/runtime/bootstrap.ts +6 -5
- package/src/runtime/context.ts +4 -20
- package/src/runtime/diagnostics/panels/index.ts +1 -1
- package/src/runtime/diagnostics/panels/ops.ts +1 -1
- package/src/runtime/diagnostics/panels/panel-resources.ts +118 -0
- package/src/runtime/perf/panel-contracts.ts +32 -0
- package/src/runtime/perf/panel-health-monitor.ts +18 -0
- package/src/runtime/services.ts +6 -6
- package/src/runtime/store/domains/conversation.ts +1 -181
- package/src/runtime/store/domains/permissions.ts +1 -143
- package/src/runtime/store/helpers/reducers/conversation.ts +1 -228
- package/src/runtime/store/helpers/reducers/lifecycle.ts +1 -440
- package/src/runtime/store/selectors/index.ts +11 -6
- package/src/runtime/store/state.ts +12 -4
- package/src/runtime/ui-read-models-observability-security.ts +2 -2
- package/src/runtime/ui-read-models-observability-system.ts +1 -1
- package/src/runtime/ui-service-queries.ts +1 -1
- package/src/runtime/ui-services.ts +1 -1
- package/src/shell/ui-openers.ts +1 -1
- package/src/tools/index.ts +1 -186
- package/src/types/grid.ts +48 -0
- package/src/utils/clipboard.ts +21 -0
- package/src/utils/splash-lines.ts +1 -1
- package/src/utils/terminal-width.ts +185 -0
- package/src/version.ts +1 -1
- package/src/acp/connection.ts +0 -447
- package/src/acp/index.ts +0 -7
- package/src/acp/manager.ts +0 -1
- package/src/adapters/bluebubbles/index.ts +0 -127
- package/src/adapters/discord/index.ts +0 -297
- package/src/adapters/github/index.ts +0 -73
- package/src/adapters/google-chat/index.ts +0 -119
- package/src/adapters/imessage/index.ts +0 -92
- package/src/adapters/index.ts +0 -15
- package/src/adapters/matrix/index.ts +0 -116
- package/src/adapters/mattermost/index.ts +0 -151
- package/src/adapters/msteams/index.ts +0 -180
- package/src/adapters/ntfy/index.ts +0 -118
- package/src/adapters/signal/index.ts +0 -92
- package/src/adapters/slack/index.ts +0 -323
- package/src/adapters/telegram/index.ts +0 -160
- package/src/adapters/types.ts +0 -97
- package/src/adapters/webhook/index.ts +0 -178
- package/src/adapters/whatsapp/index.ts +0 -135
- package/src/agents/message-bus-core.ts +0 -312
- package/src/agents/message-bus.ts +0 -2
- package/src/agents/orchestrator-prompts.ts +0 -351
- package/src/agents/orchestrator-runner.ts +0 -668
- package/src/agents/orchestrator.ts +0 -438
- package/src/agents/session.ts +0 -108
- package/src/agents/worktree.ts +0 -153
- package/src/agents/wrfc-config.ts +0 -47
- package/src/agents/wrfc-controller.ts +0 -747
- package/src/agents/wrfc-gate-runtime.ts +0 -75
- package/src/agents/wrfc-reporting.ts +0 -284
- package/src/agents/wrfc-runtime-events.ts +0 -150
- package/src/agents/wrfc-types.ts +0 -67
- package/src/automation/delivery-manager.ts +0 -368
- package/src/automation/index.ts +0 -72
- package/src/automation/manager-runtime-delivery.ts +0 -139
- package/src/automation/manager-runtime-events.ts +0 -131
- package/src/automation/manager-runtime-execution.ts +0 -511
- package/src/automation/manager-runtime-helpers.ts +0 -433
- package/src/automation/manager-runtime-job-mutations.ts +0 -175
- package/src/automation/manager-runtime-reconcile.ts +0 -148
- package/src/automation/manager-runtime-scheduling.ts +0 -189
- package/src/automation/manager-runtime-sync.ts +0 -54
- package/src/automation/manager-runtime.ts +0 -721
- package/src/automation/manager.ts +0 -10
- package/src/automation/service.ts +0 -242
- package/src/channels/builtin/account-actions.ts +0 -490
- package/src/channels/builtin/accounts.ts +0 -433
- package/src/channels/builtin/contracts.ts +0 -405
- package/src/channels/builtin/plugins.ts +0 -308
- package/src/channels/builtin/rendering.ts +0 -174
- package/src/channels/builtin/setup-schema.ts +0 -504
- package/src/channels/builtin/shared.ts +0 -96
- package/src/channels/builtin/surfaces.ts +0 -57
- package/src/channels/builtin/targets.ts +0 -693
- package/src/channels/builtin-runtime.ts +0 -443
- package/src/channels/delivery/shared.ts +0 -199
- package/src/channels/delivery/strategies-bridge.ts +0 -246
- package/src/channels/delivery/strategies-core.ts +0 -299
- package/src/channels/delivery/strategies-enterprise.ts +0 -178
- package/src/channels/delivery/types.ts +0 -59
- package/src/channels/delivery-router.ts +0 -127
- package/src/channels/index.ts +0 -77
- package/src/channels/plugin-registry.ts +0 -551
- package/src/channels/provider-runtime.ts +0 -330
- package/src/channels/reply-pipeline.ts +0 -522
- package/src/channels/route-manager.ts +0 -340
- package/src/channels/surface-registry.ts +0 -186
- package/src/config/helper-model.ts +0 -1
- package/src/config/manager.ts +0 -8
- package/src/config/subscription-auth.ts +0 -31
- package/src/config/tool-llm.ts +0 -110
- package/src/control-plane/approval-broker.ts +0 -351
- package/src/control-plane/gateway.ts +0 -1
- package/src/control-plane/index.ts +0 -54
- package/src/control-plane/media-contract-schemas.ts +0 -1
- package/src/control-plane/method-catalog-admin.ts +0 -1
- package/src/control-plane/method-catalog-channels.ts +0 -1
- package/src/control-plane/method-catalog-control-automation.ts +0 -1
- package/src/control-plane/method-catalog-control-core.ts +0 -1
- package/src/control-plane/method-catalog-control.ts +0 -1
- package/src/control-plane/method-catalog-events.ts +0 -1
- package/src/control-plane/method-catalog-knowledge.ts +0 -1
- package/src/control-plane/method-catalog-media.ts +0 -1
- package/src/control-plane/method-catalog-runtime.ts +0 -1
- package/src/control-plane/method-catalog-shared.ts +0 -1
- package/src/control-plane/method-catalog.ts +0 -1
- package/src/control-plane/operator-contract-schemas-admin.ts +0 -1
- package/src/control-plane/operator-contract-schemas-channels.ts +0 -1
- package/src/control-plane/operator-contract-schemas-control.ts +0 -1
- package/src/control-plane/operator-contract-schemas-domains.ts +0 -1
- package/src/control-plane/operator-contract-schemas-knowledge.ts +0 -1
- package/src/control-plane/operator-contract-schemas-media.ts +0 -1
- package/src/control-plane/operator-contract-schemas-permissions.ts +0 -1
- package/src/control-plane/operator-contract-schemas-remote.ts +0 -1
- package/src/control-plane/operator-contract-schemas-runtime.ts +0 -1
- package/src/control-plane/operator-contract-schemas-shared.ts +0 -1
- package/src/control-plane/operator-contract-schemas-telemetry.ts +0 -1
- package/src/control-plane/operator-contract-schemas.ts +0 -1
- package/src/control-plane/operator-contract.ts +0 -165
- package/src/control-plane/session-broker.ts +0 -780
- package/src/core/compaction-sections.ts +0 -492
- package/src/core/compaction-types.ts +0 -147
- package/src/core/context-compaction.ts +0 -542
- package/src/core/conversation-compaction.ts +0 -68
- package/src/core/conversation-diff.ts +0 -55
- package/src/core/conversation-utils.ts +0 -72
- package/src/core/event-replay.ts +0 -287
- package/src/core/orchestrator-context-runtime.ts +0 -407
- package/src/core/orchestrator-follow-up-runtime.ts +0 -134
- package/src/core/orchestrator-runtime.ts +0 -132
- package/src/core/orchestrator-tool-runtime.ts +0 -468
- package/src/core/orchestrator-turn-helpers.ts +0 -355
- package/src/core/orchestrator-turn-loop.ts +0 -443
- package/src/core/plan-command-handler.ts +0 -169
- package/src/core/transcript-events/classify.ts +0 -95
- package/src/core/transcript-events/index.ts +0 -15
- package/src/daemon/control-plane.ts +0 -522
- package/src/daemon/facade-composition.ts +0 -398
- package/src/daemon/facade.ts +0 -638
- package/src/daemon/helpers.ts +0 -74
- package/src/daemon/http/router-route-contexts.ts +0 -370
- package/src/daemon/http/router.ts +0 -531
- package/src/daemon/http-listener.ts +0 -301
- package/src/daemon/index.ts +0 -1
- package/src/daemon/server.ts +0 -1
- package/src/daemon/service-manager.ts +0 -413
- package/src/daemon/surface-actions.ts +0 -183
- package/src/daemon/surface-delivery.ts +0 -530
- package/src/daemon/surface-policy.ts +0 -60
- package/src/daemon/transport-events.ts +0 -110
- package/src/daemon/types.ts +0 -191
- package/src/export/markdown.ts +0 -213
- package/src/export/session-export.ts +0 -1
- package/src/git/index.ts +0 -1
- package/src/git/service.ts +0 -414
- package/src/hooks/chain-engine.ts +0 -414
- package/src/hooks/dispatcher.ts +0 -414
- package/src/hooks/hook-api.ts +0 -170
- package/src/hooks/index.ts +0 -48
- package/src/hooks/runners/agent.ts +0 -93
- package/src/hooks/runners/prompt.ts +0 -69
- package/src/hooks/workbench.ts +0 -360
- package/src/integrations/index.ts +0 -42
- package/src/integrations/notifier.ts +0 -206
- package/src/integrations/webhooks.ts +0 -1
- package/src/knowledge/consolidation.ts +0 -346
- package/src/knowledge/graphql.ts +0 -324
- package/src/knowledge/index.ts +0 -60
- package/src/knowledge/ingest-compile.ts +0 -386
- package/src/knowledge/ingest-context.ts +0 -18
- package/src/knowledge/ingest-inputs.ts +0 -387
- package/src/knowledge/ingest.ts +0 -1
- package/src/knowledge/internal.ts +0 -257
- package/src/knowledge/knowledge-api.ts +0 -432
- package/src/knowledge/lint.ts +0 -121
- package/src/knowledge/memory-sync.ts +0 -62
- package/src/knowledge/packet.ts +0 -370
- package/src/knowledge/scheduling.ts +0 -283
- package/src/knowledge/service.ts +0 -715
- package/src/mcp/client.ts +0 -383
- package/src/mcp/index.ts +0 -12
- package/src/mcp/mcp-api.ts +0 -90
- package/src/mcp/registry.ts +0 -1
- package/src/media/builtin-image-understanding.ts +0 -303
- package/src/media/builtin-providers.ts +0 -26
- package/src/media/index.ts +0 -18
- package/src/multimodal/index.ts +0 -13
- package/src/multimodal/service.ts +0 -492
- package/src/permissions/briefs/build.ts +0 -88
- package/src/permissions/manager.ts +0 -1
- package/src/plugins/api.ts +0 -383
- package/src/plugins/manager.ts +0 -481
- package/src/profiles/shape.ts +0 -58
- package/src/providers/amazon-bedrock-mantle.ts +0 -50
- package/src/providers/amazon-bedrock.ts +0 -61
- package/src/providers/anthropic-compat.ts +0 -373
- package/src/providers/anthropic-sdk-provider.ts +0 -230
- package/src/providers/anthropic-vertex.ts +0 -59
- package/src/providers/anthropic.ts +0 -469
- package/src/providers/auto-register.ts +0 -417
- package/src/providers/builtin-catalog.ts +0 -326
- package/src/providers/builtin-registry.ts +0 -575
- package/src/providers/cache-planner.ts +0 -258
- package/src/providers/capabilities.ts +0 -1
- package/src/providers/custom-loader.ts +0 -425
- package/src/providers/discovered-compat.ts +0 -7
- package/src/providers/discovered-factory.ts +0 -61
- package/src/providers/discovered-traits.ts +0 -138
- package/src/providers/gemini.ts +0 -462
- package/src/providers/github-copilot.ts +0 -254
- package/src/providers/index.ts +0 -1
- package/src/providers/interface.ts +0 -185
- package/src/providers/llama-cpp.ts +0 -402
- package/src/providers/lm-studio-helpers.ts +0 -367
- package/src/providers/lm-studio.ts +0 -484
- package/src/providers/model-catalog-cache.ts +0 -221
- package/src/providers/model-catalog-notifications.ts +0 -97
- package/src/providers/model-catalog-synthetic.ts +0 -202
- package/src/providers/model-catalog.ts +0 -211
- package/src/providers/model-limits.ts +0 -1
- package/src/providers/ollama.ts +0 -469
- package/src/providers/openai-codex.ts +0 -472
- package/src/providers/openai-compat.ts +0 -615
- package/src/providers/openai.ts +0 -231
- package/src/providers/optimizer.ts +0 -1
- package/src/providers/provider-api.ts +0 -1
- package/src/providers/registry-helpers.ts +0 -34
- package/src/providers/registry-models.ts +0 -77
- package/src/providers/registry-types.ts +0 -67
- package/src/providers/registry.ts +0 -1
- package/src/providers/runtime-metadata.ts +0 -149
- package/src/providers/runtime-snapshot.ts +0 -130
- package/src/providers/synthetic.ts +0 -561
- package/src/providers/tier-prompts.ts +0 -84
- package/src/providers/tool-formats.ts +0 -414
- package/src/runtime/auth/inspection.ts +0 -125
- package/src/runtime/bootstrap-background.ts +0 -157
- package/src/runtime/bootstrap-helpers.ts +0 -88
- package/src/runtime/bootstrap-runtime-events.ts +0 -254
- package/src/runtime/bootstrap-services.ts +0 -197
- package/src/runtime/compaction/index.ts +0 -1
- package/src/runtime/compaction/lifecycle.ts +0 -1
- package/src/runtime/compaction/manager.ts +0 -474
- package/src/runtime/compaction/quality-score.ts +0 -1
- package/src/runtime/compaction/resume-repair.ts +0 -1
- package/src/runtime/compaction/strategies/autocompact.ts +0 -1
- package/src/runtime/compaction/strategies/boundary-commit.ts +0 -1
- package/src/runtime/compaction/strategies/collapse.ts +0 -1
- package/src/runtime/compaction/strategies/index.ts +0 -1
- package/src/runtime/compaction/strategies/microcompact.ts +0 -1
- package/src/runtime/compaction/strategies/reactive.ts +0 -1
- package/src/runtime/compaction/types.ts +0 -1
- package/src/runtime/ecosystem/recommendations.ts +0 -117
- package/src/runtime/emitters/agents.ts +0 -96
- package/src/runtime/emitters/automation.ts +0 -112
- package/src/runtime/emitters/communication.ts +0 -53
- package/src/runtime/emitters/compaction.ts +0 -161
- package/src/runtime/emitters/control-plane.ts +0 -65
- package/src/runtime/emitters/deliveries.ts +0 -65
- package/src/runtime/emitters/forensics.ts +0 -17
- package/src/runtime/emitters/index.ts +0 -59
- package/src/runtime/emitters/knowledge.ts +0 -129
- package/src/runtime/emitters/mcp.ts +0 -95
- package/src/runtime/emitters/ops.ts +0 -163
- package/src/runtime/emitters/orchestration.ts +0 -87
- package/src/runtime/emitters/permissions.ts +0 -98
- package/src/runtime/emitters/planner.ts +0 -23
- package/src/runtime/emitters/plugins.ts +0 -78
- package/src/runtime/emitters/providers.ts +0 -30
- package/src/runtime/emitters/routes.ts +0 -57
- package/src/runtime/emitters/security.ts +0 -53
- package/src/runtime/emitters/session.ts +0 -93
- package/src/runtime/emitters/surfaces.ts +0 -57
- package/src/runtime/emitters/tasks.ts +0 -69
- package/src/runtime/emitters/tools.ts +0 -140
- package/src/runtime/emitters/transport.ts +0 -78
- package/src/runtime/emitters/turn.ts +0 -155
- package/src/runtime/emitters/ui.ts +0 -57
- package/src/runtime/emitters/watchers.ts +0 -57
- package/src/runtime/emitters/workflows.ts +0 -79
- package/src/runtime/eval/index.ts +0 -48
- package/src/runtime/eval/runner.ts +0 -163
- package/src/runtime/eval/suites.ts +0 -264
- package/src/runtime/events/domain-map.ts +0 -148
- package/src/runtime/events/index.ts +0 -1
- package/src/runtime/events/turn.ts +0 -1
- package/src/runtime/events/workflows.ts +0 -1
- package/src/runtime/forensics/collector.ts +0 -693
- package/src/runtime/forensics/index.ts +0 -23
- package/src/runtime/foundation-clients.ts +0 -78
- package/src/runtime/foundation-services.ts +0 -96
- package/src/runtime/guidance.ts +0 -183
- package/src/runtime/health/effect-handlers.ts +0 -189
- package/src/runtime/health/index.ts +0 -70
- package/src/runtime/health/wiring.ts +0 -115
- package/src/runtime/integration/helpers.ts +0 -640
- package/src/runtime/lifecycle.ts +0 -107
- package/src/runtime/mcp/index.ts +0 -68
- package/src/runtime/mcp/manager.ts +0 -513
- package/src/runtime/network/inbound.ts +0 -131
- package/src/runtime/network/index.ts +0 -30
- package/src/runtime/network/outbound.ts +0 -292
- package/src/runtime/network/shared.ts +0 -82
- package/src/runtime/operator-client.ts +0 -235
- package/src/runtime/ops/control-plane.ts +0 -363
- package/src/runtime/ops/index.ts +0 -122
- package/src/runtime/ops/playbooks/index.ts +0 -10
- package/src/runtime/ops/playbooks/session-unrecoverable.ts +0 -196
- package/src/runtime/ops/playbooks/stuck-turn.ts +0 -197
- package/src/runtime/ops/runtime-context.ts +0 -100
- package/src/runtime/ops-api.ts +0 -27
- package/src/runtime/orchestration/spawn-policy.ts +0 -83
- package/src/runtime/peer-client.ts +0 -404
- package/src/runtime/perf/index.ts +0 -57
- package/src/runtime/perf/slo-collector.ts +0 -375
- package/src/runtime/permissions/index.ts +0 -190
- package/src/runtime/permissions/policy-runtime.ts +0 -1
- package/src/runtime/permissions/preflight.ts +0 -101
- package/src/runtime/permissions/rule-suggestions.ts +0 -36
- package/src/runtime/plugins/hot-reload.ts +0 -221
- package/src/runtime/plugins/index.ts +0 -84
- package/src/runtime/plugins/lifecycle.ts +0 -95
- package/src/runtime/plugins/manager.ts +0 -474
- package/src/runtime/plugins/manifest.ts +0 -167
- package/src/runtime/plugins/quarantine.ts +0 -202
- package/src/runtime/plugins/trust.ts +0 -291
- package/src/runtime/plugins/types.ts +0 -205
- package/src/runtime/provider-accounts/registry.ts +0 -326
- package/src/runtime/remote/distributed-runtime-contract-schemas.ts +0 -386
- package/src/runtime/remote/index.ts +0 -488
- package/src/runtime/remote/runner-registry.ts +0 -438
- package/src/runtime/remote/supervisor.ts +0 -70
- package/src/runtime/runtime-hook-api.ts +0 -5
- package/src/runtime/runtime-knowledge-api.ts +0 -14
- package/src/runtime/runtime-mcp-api.ts +0 -5
- package/src/runtime/runtime-ops-api.ts +0 -86
- package/src/runtime/runtime-provider-api.ts +0 -18
- package/src/runtime/session-maintenance.ts +0 -188
- package/src/runtime/session-persistence.ts +0 -288
- package/src/runtime/session-return-context.ts +0 -195
- package/src/runtime/settings/control-plane-store.ts +0 -258
- package/src/runtime/settings/control-plane.ts +0 -599
- package/src/runtime/shell-command-extensions.ts +0 -54
- package/src/runtime/shell-command-ops.ts +0 -207
- package/src/runtime/shell-command-platform.ts +0 -47
- package/src/runtime/shell-command-services.ts +0 -143
- package/src/runtime/shell-command-workspace.ts +0 -31
- package/src/runtime/tasks/adapters/acp-adapter.ts +0 -211
- package/src/runtime/tasks/adapters/agent-adapter.ts +0 -208
- package/src/runtime/tasks/adapters/index.ts +0 -16
- package/src/runtime/tasks/adapters/process-adapter.ts +0 -214
- package/src/runtime/tasks/adapters/scheduler-adapter.ts +0 -193
- package/src/runtime/tasks/index.ts +0 -68
- package/src/runtime/tasks/manager.ts +0 -415
- package/src/runtime/telemetry/api-helpers.ts +0 -517
- package/src/runtime/telemetry/api.ts +0 -768
- package/src/runtime/telemetry/index.ts +0 -178
- package/src/runtime/telemetry/instrumentation/domain-bridge-agent-session.ts +0 -440
- package/src/runtime/telemetry/instrumentation/domain-bridge-plugin-mcp.ts +0 -200
- package/src/runtime/telemetry/instrumentation/domain-bridge-shared.ts +0 -18
- package/src/runtime/telemetry/instrumentation/domain-bridge-transport-task.ts +0 -204
- package/src/runtime/telemetry/instrumentation/domain-bridge.ts +0 -125
- package/src/runtime/telemetry/instrumentation/index.ts +0 -67
- package/src/runtime/tools/context.ts +0 -114
- package/src/runtime/tools/index.ts +0 -46
- package/src/runtime/tools/phased-executor.ts +0 -448
- package/src/runtime/tools/phases/budget.ts +0 -130
- package/src/runtime/tools/phases/execute.ts +0 -69
- package/src/runtime/tools/phases/index.ts +0 -13
- package/src/runtime/tools/phases/map-output.ts +0 -98
- package/src/runtime/tools/phases/permission.ts +0 -133
- package/src/runtime/tools/phases/posthook.ts +0 -57
- package/src/runtime/tools/phases/prehook.ts +0 -68
- package/src/runtime/tools/phases/validate.ts +0 -53
- package/src/runtime/transports/direct.ts +0 -73
- package/src/runtime/transports/http-helpers.ts +0 -218
- package/src/runtime/transports/http-types.ts +0 -364
- package/src/runtime/transports/http.ts +0 -629
- package/src/runtime/transports/realtime.ts +0 -50
- package/src/runtime/transports/remote-events.ts +0 -16
- package/src/runtime/transports/shared.ts +0 -39
- package/src/runtime/transports/ui-runtime-events.ts +0 -35
- package/src/runtime/ui-read-models-core.ts +0 -95
- package/src/runtime/ui-read-models-operations.ts +0 -203
- package/src/runtime/worktree/registry.ts +0 -252
- package/src/sessions/manager.ts +0 -14
- package/src/state/file-watcher.ts +0 -294
- package/src/state/index.ts +0 -56
- package/src/state/knowledge-injection.ts +0 -214
- package/src/state/memory-embedding-http.ts +0 -642
- package/src/state/memory-embeddings.ts +0 -312
- package/src/state/memory-ingest.ts +0 -132
- package/src/state/memory-registry.ts +0 -111
- package/src/state/memory-store-helpers.ts +0 -160
- package/src/state/memory-store.ts +0 -728
- package/src/state/memory-vector-store.ts +0 -418
- package/src/templates/manager.ts +0 -187
- package/src/tools/agent/index.ts +0 -610
- package/src/tools/agent/manager.ts +0 -476
- package/src/tools/analyze/git-modes.ts +0 -380
- package/src/tools/analyze/index.ts +0 -128
- package/src/tools/channel/agent-tools.ts +0 -16
- package/src/tools/channel/index.ts +0 -268
- package/src/tools/control/index.ts +0 -90
- package/src/tools/edit/core.ts +0 -619
- package/src/tools/edit/index.ts +0 -4
- package/src/tools/edit/phased.ts +0 -33
- package/src/tools/fetch/index.ts +0 -3
- package/src/tools/fetch/phased.ts +0 -34
- package/src/tools/fetch/runtime.ts +0 -499
- package/src/tools/mcp/index.ts +0 -190
- package/src/tools/remote-trigger/index.ts +0 -130
- package/src/tools/shared/auto-heal.ts +0 -282
- package/src/tools/state/index.ts +0 -688
- package/src/tools/web-search/index.ts +0 -38
- package/src/tools/write/index.ts +0 -604
- package/src/tools/write/phased.ts +0 -41
- package/src/types/generated/foundation-client-types.ts +0 -22
- package/src/watchers/index.ts +0 -11
- package/src/watchers/registry.ts +0 -517
- package/src/web-search/index.ts +0 -26
- package/src/web-search/provider-registry.ts +0 -64
- package/src/web-search/providers/brave.ts +0 -100
- package/src/web-search/providers/duckduckgo.ts +0 -270
- package/src/web-search/providers/exa.ts +0 -77
- package/src/web-search/providers/firecrawl.ts +0 -90
- package/src/web-search/providers/perplexity.ts +0 -86
- package/src/web-search/providers/searxng.ts +0 -88
- package/src/web-search/providers/shared.ts +0 -249
- package/src/web-search/providers/tavily.ts +0 -90
- package/src/web-search/service.ts +0 -142
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
export type {
|
|
2
|
-
DomainEventConnector,
|
|
3
|
-
DomainEvents as RemoteDomainEvents,
|
|
4
|
-
SerializedEventEnvelope as SerializedRuntimeEnvelope,
|
|
5
|
-
RemoteRuntimeEvents,
|
|
6
|
-
RuntimeEventConnectorOptions,
|
|
7
|
-
} from '@pellux/goodvibes-sdk/transport-realtime';
|
|
8
|
-
export {
|
|
9
|
-
buildEventSourceUrl,
|
|
10
|
-
buildWebSocketUrl,
|
|
11
|
-
createEventSourceConnector,
|
|
12
|
-
createRemoteDomainEvents,
|
|
13
|
-
createRemoteRuntimeEvents,
|
|
14
|
-
createWebSocketConnector,
|
|
15
|
-
} from '@pellux/goodvibes-sdk/transport-realtime';
|
|
16
|
-
export { createRemoteUiRuntimeEvents } from '@pellux/goodvibes-sdk/platform/runtime/transports/ui-runtime-events';
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
export type { DomainEventConnector, SerializedRuntimeEnvelope } from '@pellux/goodvibes-sdk/platform/runtime/transports/remote-events';
|
|
2
|
-
export {
|
|
3
|
-
buildEventSourceUrl,
|
|
4
|
-
buildWebSocketUrl,
|
|
5
|
-
createEventSourceConnector,
|
|
6
|
-
createRemoteRuntimeEvents,
|
|
7
|
-
createRemoteUiRuntimeEvents,
|
|
8
|
-
createWebSocketConnector,
|
|
9
|
-
} from '@pellux/goodvibes-sdk/platform/runtime/transports/remote-events';
|
|
10
|
-
export type { TransportPaths } from '@pellux/goodvibes-sdk/platform/runtime/transports/transport-paths';
|
|
11
|
-
export { buildUrl, createTransportPaths, normalizeBaseUrl } from '@pellux/goodvibes-sdk/platform/runtime/transports/transport-paths';
|
|
12
|
-
export type { BackoffPolicy, ResolvedBackoffPolicy } from '@pellux/goodvibes-sdk/platform/runtime/transports/backoff';
|
|
13
|
-
export { computeBackoffDelay, normalizeBackoffPolicy, sleepWithSignal } from '@pellux/goodvibes-sdk/platform/runtime/transports/backoff';
|
|
14
|
-
export type { AuthTokenResolver, HeaderResolver, MaybePromise } from '@pellux/goodvibes-sdk/platform/runtime/transports/http-auth';
|
|
15
|
-
export { mergeHeaders, resolveAuthToken, resolveHeaders } from '@pellux/goodvibes-sdk/platform/runtime/transports/http-auth';
|
|
16
|
-
export type {
|
|
17
|
-
HttpJsonRequestOptions,
|
|
18
|
-
HttpRetryPolicy,
|
|
19
|
-
HttpJsonTransport,
|
|
20
|
-
HttpJsonTransportOptions,
|
|
21
|
-
JsonObject,
|
|
22
|
-
JsonValue,
|
|
23
|
-
ResolvedContractRequest,
|
|
24
|
-
TransportJsonError,
|
|
25
|
-
} from '@pellux/goodvibes-sdk/platform/runtime/transports/http-json-transport';
|
|
26
|
-
export {
|
|
27
|
-
createFetch,
|
|
28
|
-
createHttpJsonTransport,
|
|
29
|
-
createJsonInit,
|
|
30
|
-
createJsonRequestInit,
|
|
31
|
-
readJsonBody,
|
|
32
|
-
requestJson,
|
|
33
|
-
} from '@pellux/goodvibes-sdk/platform/runtime/transports/http-json-transport';
|
|
34
|
-
export type { ResolvedHttpRetryPolicy } from '@pellux/goodvibes-sdk/platform/runtime/transports/http-retry';
|
|
35
|
-
export { DEFAULT_HTTP_RETRY_POLICY, getHttpRetryDelay, isRetryableHttpStatus, isRetryableNetworkError, normalizeHttpRetryPolicy, resolveHttpRetryPolicy } from '@pellux/goodvibes-sdk/platform/runtime/transports/http-retry';
|
|
36
|
-
export type { ServerSentEventHandlers, ServerSentEventOptions } from '@pellux/goodvibes-sdk/platform/runtime/transports/sse-stream';
|
|
37
|
-
export { isAbortError, openServerSentEventStream } from '@pellux/goodvibes-sdk/platform/runtime/transports/sse-stream';
|
|
38
|
-
export type { StreamReconnectPolicy, ResolvedStreamReconnectPolicy } from '@pellux/goodvibes-sdk/platform/runtime/transports/stream-reconnect';
|
|
39
|
-
export { DEFAULT_STREAM_RECONNECT_POLICY, getStreamReconnectDelay, normalizeStreamReconnectPolicy } from '@pellux/goodvibes-sdk/platform/runtime/transports/stream-reconnect';
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
AgentEvent,
|
|
3
|
-
OpsEvent,
|
|
4
|
-
PlannerEvent,
|
|
5
|
-
ProviderEvent,
|
|
6
|
-
RuntimeEventDomain,
|
|
7
|
-
SessionEvent,
|
|
8
|
-
ToolEvent,
|
|
9
|
-
TurnEvent,
|
|
10
|
-
WorkflowEvent,
|
|
11
|
-
} from '@pellux/goodvibes-sdk/platform/runtime/events/index';
|
|
12
|
-
import type { UiEventFeed, UiRuntimeEvents } from '@pellux/goodvibes-sdk/platform/runtime/ui-events';
|
|
13
|
-
import type { DomainEventConnector } from '@pellux/goodvibes-sdk/platform/runtime/transports/domain-events';
|
|
14
|
-
import { createRemoteRuntimeEvents, type RemoteRuntimeEvents } from '@pellux/goodvibes-sdk/platform/runtime/transports/runtime-events-client';
|
|
15
|
-
|
|
16
|
-
type RuntimeEventRecord = { readonly type: string };
|
|
17
|
-
|
|
18
|
-
function asUiEvents(runtimeEvents: RemoteRuntimeEvents<RuntimeEventRecord>): UiRuntimeEvents {
|
|
19
|
-
return {
|
|
20
|
-
sessions: runtimeEvents.session as UiEventFeed<SessionEvent>,
|
|
21
|
-
turns: runtimeEvents.turn as UiEventFeed<TurnEvent>,
|
|
22
|
-
tools: runtimeEvents.tools as UiEventFeed<ToolEvent>,
|
|
23
|
-
providers: runtimeEvents.providers as UiEventFeed<ProviderEvent>,
|
|
24
|
-
agents: runtimeEvents.agents as UiEventFeed<AgentEvent>,
|
|
25
|
-
workflows: runtimeEvents.workflows as UiEventFeed<WorkflowEvent>,
|
|
26
|
-
planner: runtimeEvents.planner as UiEventFeed<PlannerEvent>,
|
|
27
|
-
ops: runtimeEvents.ops as UiEventFeed<OpsEvent>,
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
export function createRemoteUiRuntimeEvents(
|
|
32
|
-
connect: DomainEventConnector<RuntimeEventDomain, RuntimeEventRecord>,
|
|
33
|
-
): UiRuntimeEvents {
|
|
34
|
-
return asUiEvents(createRemoteRuntimeEvents(connect));
|
|
35
|
-
}
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
import type { RuntimeServices } from './services.ts';
|
|
2
|
-
import type { RuntimeTask } from '@pellux/goodvibes-sdk/platform/runtime/store/domains/tasks';
|
|
3
|
-
import type { RuntimeAgent } from '@pellux/goodvibes-sdk/platform/runtime/store/domains/agents';
|
|
4
|
-
import type { SessionDomainState } from '@pellux/goodvibes-sdk/platform/runtime/store/domains/session';
|
|
5
|
-
import type { TurnState } from '@pellux/goodvibes-sdk/platform/runtime/store/domains/conversation';
|
|
6
|
-
import { createStoreBackedReadModel, listProviderIds } from '@pellux/goodvibes-sdk/platform/runtime/ui-read-model-helpers';
|
|
7
|
-
import type { UiReadModel } from '@pellux/goodvibes-sdk/platform/runtime/ui-read-models-base';
|
|
8
|
-
|
|
9
|
-
export interface UiProvidersSnapshot {
|
|
10
|
-
readonly providerIds: readonly string[];
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export interface UiSessionSnapshot {
|
|
14
|
-
readonly session: SessionDomainState;
|
|
15
|
-
readonly totalTurns: number;
|
|
16
|
-
readonly messageCount: number;
|
|
17
|
-
readonly estimatedContextTokens: number;
|
|
18
|
-
readonly contextWindow: number;
|
|
19
|
-
readonly turnState: TurnState;
|
|
20
|
-
readonly streamToolPreview?: string;
|
|
21
|
-
readonly contextWarningActive: boolean;
|
|
22
|
-
readonly pendingApproval: boolean;
|
|
23
|
-
readonly denialCount: number;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
export interface UiAgentsSnapshot {
|
|
27
|
-
readonly active: readonly RuntimeAgent[];
|
|
28
|
-
readonly totalSpawned: number;
|
|
29
|
-
readonly totalCompleted: number;
|
|
30
|
-
readonly totalFailed: number;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
export interface UiTasksSnapshot {
|
|
34
|
-
readonly tasks: readonly RuntimeTask[];
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
export interface UiCoreReadModels {
|
|
38
|
-
readonly providers: UiReadModel<UiProvidersSnapshot>;
|
|
39
|
-
readonly session: UiReadModel<UiSessionSnapshot>;
|
|
40
|
-
readonly agents: UiReadModel<UiAgentsSnapshot>;
|
|
41
|
-
readonly tasks: UiReadModel<UiTasksSnapshot>;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
export function createCoreReadModels(runtimeServices: RuntimeServices): UiCoreReadModels {
|
|
45
|
-
const { runtimeStore } = runtimeServices;
|
|
46
|
-
|
|
47
|
-
return {
|
|
48
|
-
providers: {
|
|
49
|
-
getSnapshot() {
|
|
50
|
-
return {
|
|
51
|
-
providerIds: listProviderIds(runtimeServices),
|
|
52
|
-
};
|
|
53
|
-
},
|
|
54
|
-
subscribe(listener) {
|
|
55
|
-
return runtimeServices.runtimeBus.on('PROVIDERS_CHANGED', listener);
|
|
56
|
-
},
|
|
57
|
-
},
|
|
58
|
-
session: createStoreBackedReadModel(runtimeServices, () => {
|
|
59
|
-
const state = runtimeStore.getState();
|
|
60
|
-
return {
|
|
61
|
-
session: state.session,
|
|
62
|
-
totalTurns: state.conversation.totalTurns,
|
|
63
|
-
messageCount: state.conversation.messageCount,
|
|
64
|
-
estimatedContextTokens: state.conversation.estimatedContextTokens,
|
|
65
|
-
contextWindow: state.model.tokenLimits.contextWindow,
|
|
66
|
-
turnState: state.conversation.turnState,
|
|
67
|
-
streamToolPreview: state.conversation.stream.partialToolPreview,
|
|
68
|
-
contextWarningActive: state.conversation.contextWarningActive,
|
|
69
|
-
pendingApproval: state.permissions.awaitingDecision,
|
|
70
|
-
denialCount: state.permissions.denialCount,
|
|
71
|
-
};
|
|
72
|
-
}),
|
|
73
|
-
agents: createStoreBackedReadModel(runtimeServices, () => {
|
|
74
|
-
const state = runtimeStore.getState().agents;
|
|
75
|
-
const active = state.activeAgentIds
|
|
76
|
-
.map((id) => state.agents.get(id))
|
|
77
|
-
.filter((agent): agent is RuntimeAgent => agent !== undefined);
|
|
78
|
-
return {
|
|
79
|
-
active,
|
|
80
|
-
totalSpawned: state.totalSpawned,
|
|
81
|
-
totalCompleted: state.totalCompleted,
|
|
82
|
-
totalFailed: state.totalFailed,
|
|
83
|
-
};
|
|
84
|
-
}),
|
|
85
|
-
tasks: createStoreBackedReadModel(runtimeServices, () => {
|
|
86
|
-
const tasksState = runtimeStore.getState().tasks;
|
|
87
|
-
const tasks = [...tasksState.tasks.values()].sort((a, b) => {
|
|
88
|
-
const aTime = a.startedAt ?? a.queuedAt;
|
|
89
|
-
const bTime = b.startedAt ?? b.queuedAt;
|
|
90
|
-
return bTime - aTime || a.title.localeCompare(b.title);
|
|
91
|
-
});
|
|
92
|
-
return { tasks };
|
|
93
|
-
}),
|
|
94
|
-
};
|
|
95
|
-
}
|
|
@@ -1,203 +0,0 @@
|
|
|
1
|
-
import type { ControlPlaneRecentEvent, SharedApprovalRecord, SharedSessionRecord } from '@pellux/goodvibes-sdk/platform/control-plane/index';
|
|
2
|
-
import type { RuntimeServices } from './services.ts';
|
|
3
|
-
import type { AutomationJob } from '@pellux/goodvibes-sdk/platform/automation/jobs';
|
|
4
|
-
import type { AutomationRun } from '@pellux/goodvibes-sdk/platform/automation/runs';
|
|
5
|
-
import type { AutomationRouteBinding } from '@pellux/goodvibes-sdk/platform/automation/routes';
|
|
6
|
-
import type { WatcherRecord } from '@pellux/goodvibes-sdk/platform/runtime/store/domains/watchers';
|
|
7
|
-
import type { OrchestrationGraphRecord } from '@pellux/goodvibes-sdk/platform/runtime/store/domains/orchestration';
|
|
8
|
-
import type { RuntimeCommunicationRecord } from '@pellux/goodvibes-sdk/platform/runtime/store/domains/communication';
|
|
9
|
-
import type { ControlPlaneClientRecord } from '@pellux/goodvibes-sdk/platform/runtime/store/domains/control-plane';
|
|
10
|
-
import type { AcpConnection } from '@pellux/goodvibes-sdk/platform/runtime/store/domains/acp';
|
|
11
|
-
import { combineSubscriptions, createStoreBackedReadModel } from '@pellux/goodvibes-sdk/platform/runtime/ui-read-model-helpers';
|
|
12
|
-
import type { UiReadModel } from '@pellux/goodvibes-sdk/platform/runtime/ui-read-models-base';
|
|
13
|
-
|
|
14
|
-
export interface UiAutomationSnapshot {
|
|
15
|
-
readonly jobs: readonly AutomationJob[];
|
|
16
|
-
readonly runs: readonly AutomationRun[];
|
|
17
|
-
readonly totalJobs: number;
|
|
18
|
-
readonly totalRuns: number;
|
|
19
|
-
readonly activeRunIds: readonly string[];
|
|
20
|
-
readonly totalFailed: number;
|
|
21
|
-
readonly sourceCount: number;
|
|
22
|
-
readonly deliveryTotals: {
|
|
23
|
-
readonly succeeded: number;
|
|
24
|
-
readonly failed: number;
|
|
25
|
-
readonly deadLettered: number;
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
export interface UiRoutesSnapshot {
|
|
30
|
-
readonly bindings: readonly AutomationRouteBinding[];
|
|
31
|
-
readonly bindingIdsBySurface: Readonly<Record<string, readonly string[]>>;
|
|
32
|
-
readonly totalBindings: number;
|
|
33
|
-
readonly activeBindingIds: readonly string[];
|
|
34
|
-
readonly totalResolved: number;
|
|
35
|
-
readonly totalFailures: number;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
export interface UiWatchersSnapshot {
|
|
39
|
-
readonly watchers: readonly WatcherRecord[];
|
|
40
|
-
readonly totalWatchers: number;
|
|
41
|
-
readonly activeWatcherIds: readonly string[];
|
|
42
|
-
readonly totalDegraded: number;
|
|
43
|
-
readonly totalLagged: number;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
export interface UiOrchestrationSnapshot {
|
|
47
|
-
readonly graphs: readonly OrchestrationGraphRecord[];
|
|
48
|
-
readonly totalGraphs: number;
|
|
49
|
-
readonly activeGraphIds: readonly string[];
|
|
50
|
-
readonly totalCompletedGraphs: number;
|
|
51
|
-
readonly totalFailedGraphs: number;
|
|
52
|
-
readonly recursionGuardTrips: number;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
export interface UiCommunicationSnapshot {
|
|
56
|
-
readonly records: readonly RuntimeCommunicationRecord[];
|
|
57
|
-
readonly totalSent: number;
|
|
58
|
-
readonly totalDelivered: number;
|
|
59
|
-
readonly totalBlocked: number;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
export interface UiControlPlaneSnapshot {
|
|
63
|
-
readonly connectionState: string;
|
|
64
|
-
readonly activeClientIds: readonly string[];
|
|
65
|
-
readonly requestCount: number;
|
|
66
|
-
readonly errorCount: number;
|
|
67
|
-
readonly host: string;
|
|
68
|
-
readonly port: number;
|
|
69
|
-
readonly clients: readonly ControlPlaneClientRecord[];
|
|
70
|
-
readonly approvals: readonly SharedApprovalRecord[];
|
|
71
|
-
readonly sessions: readonly SharedSessionRecord[];
|
|
72
|
-
readonly recentEvents: readonly ControlPlaneRecentEvent[];
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
export interface UiOperationsReadModels {
|
|
76
|
-
readonly automation: UiReadModel<UiAutomationSnapshot>;
|
|
77
|
-
readonly routes: UiReadModel<UiRoutesSnapshot>;
|
|
78
|
-
readonly watchers: UiReadModel<UiWatchersSnapshot>;
|
|
79
|
-
readonly orchestration: UiReadModel<UiOrchestrationSnapshot>;
|
|
80
|
-
readonly communication: UiReadModel<UiCommunicationSnapshot>;
|
|
81
|
-
readonly controlPlane: UiReadModel<UiControlPlaneSnapshot>;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
export interface UiOperationsReadModelOptions {
|
|
85
|
-
readonly getControlPlaneRecentEvents?: (limit: number) => readonly ControlPlaneRecentEvent[];
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
export function createOperationsReadModels(
|
|
89
|
-
runtimeServices: RuntimeServices,
|
|
90
|
-
options: UiOperationsReadModelOptions = {},
|
|
91
|
-
): UiOperationsReadModels {
|
|
92
|
-
const { runtimeStore } = runtimeServices;
|
|
93
|
-
|
|
94
|
-
return {
|
|
95
|
-
automation: createStoreBackedReadModel(runtimeServices, () => {
|
|
96
|
-
const state = runtimeStore.getState();
|
|
97
|
-
const jobs = state.automation.jobIds
|
|
98
|
-
.map((id) => state.automation.jobs.get(id))
|
|
99
|
-
.filter((job): job is AutomationJob => job !== undefined)
|
|
100
|
-
.sort((a, b) => (b.nextRunAt ?? 0) - (a.nextRunAt ?? 0) || a.name.localeCompare(b.name));
|
|
101
|
-
const runs = state.automation.runIds
|
|
102
|
-
.map((id) => state.automation.runs.get(id))
|
|
103
|
-
.filter((run): run is AutomationRun => run !== undefined)
|
|
104
|
-
.sort((a, b) => b.queuedAt - a.queuedAt || a.id.localeCompare(b.id));
|
|
105
|
-
return {
|
|
106
|
-
jobs,
|
|
107
|
-
runs,
|
|
108
|
-
totalJobs: state.automation.totalJobs,
|
|
109
|
-
totalRuns: state.automation.totalRuns,
|
|
110
|
-
activeRunIds: state.automation.activeRunIds,
|
|
111
|
-
totalFailed: state.automation.totalFailed,
|
|
112
|
-
sourceCount: state.automation.sourceIds.length,
|
|
113
|
-
deliveryTotals: {
|
|
114
|
-
succeeded: state.deliveries.totalSucceeded,
|
|
115
|
-
failed: state.deliveries.totalFailed,
|
|
116
|
-
deadLettered: state.deliveries.totalDeadLettered,
|
|
117
|
-
},
|
|
118
|
-
};
|
|
119
|
-
}),
|
|
120
|
-
routes: createStoreBackedReadModel(runtimeServices, () => {
|
|
121
|
-
const state = runtimeStore.getState().routes;
|
|
122
|
-
const bindings = state.bindingIds
|
|
123
|
-
.map((id) => state.bindings.get(id))
|
|
124
|
-
.filter((binding): binding is AutomationRouteBinding => binding !== undefined)
|
|
125
|
-
.sort((a, b) => b.lastSeenAt - a.lastSeenAt || a.id.localeCompare(b.id));
|
|
126
|
-
return {
|
|
127
|
-
bindings,
|
|
128
|
-
bindingIdsBySurface: state.bindingIdsBySurface,
|
|
129
|
-
totalBindings: state.totalBindings,
|
|
130
|
-
activeBindingIds: state.activeBindingIds,
|
|
131
|
-
totalResolved: state.totalResolved,
|
|
132
|
-
totalFailures: state.totalFailures,
|
|
133
|
-
};
|
|
134
|
-
}),
|
|
135
|
-
watchers: createStoreBackedReadModel(runtimeServices, () => {
|
|
136
|
-
const state = runtimeStore.getState().watchers;
|
|
137
|
-
const watchers = state.watcherIds
|
|
138
|
-
.map((id) => state.watchers.get(id))
|
|
139
|
-
.filter((watcher): watcher is WatcherRecord => watcher !== undefined)
|
|
140
|
-
.sort((a, b) => (b.lastHeartbeatAt ?? 0) - (a.lastHeartbeatAt ?? 0) || a.id.localeCompare(b.id));
|
|
141
|
-
return {
|
|
142
|
-
watchers,
|
|
143
|
-
totalWatchers: state.watcherIds.length,
|
|
144
|
-
activeWatcherIds: state.activeWatcherIds,
|
|
145
|
-
totalDegraded: state.totalDegraded,
|
|
146
|
-
totalLagged: state.totalLagged,
|
|
147
|
-
};
|
|
148
|
-
}),
|
|
149
|
-
orchestration: createStoreBackedReadModel(runtimeServices, () => {
|
|
150
|
-
const state = runtimeStore.getState().orchestration;
|
|
151
|
-
const graphs = [...state.graphs.values()].sort((a, b) => b.createdAt - a.createdAt);
|
|
152
|
-
return {
|
|
153
|
-
graphs,
|
|
154
|
-
totalGraphs: state.totalGraphs,
|
|
155
|
-
activeGraphIds: state.activeGraphIds,
|
|
156
|
-
totalCompletedGraphs: state.totalCompletedGraphs,
|
|
157
|
-
totalFailedGraphs: state.totalFailedGraphs,
|
|
158
|
-
recursionGuardTrips: state.recursionGuardTrips,
|
|
159
|
-
};
|
|
160
|
-
}),
|
|
161
|
-
communication: createStoreBackedReadModel(runtimeServices, () => {
|
|
162
|
-
const state = runtimeStore.getState().communication;
|
|
163
|
-
const records = state.recentRecordIds
|
|
164
|
-
.map((id) => state.records.get(id))
|
|
165
|
-
.filter((record): record is RuntimeCommunicationRecord => record !== undefined)
|
|
166
|
-
.sort((a, b) => b.timestamp - a.timestamp);
|
|
167
|
-
return {
|
|
168
|
-
records,
|
|
169
|
-
totalSent: state.totalSent,
|
|
170
|
-
totalDelivered: state.totalDelivered,
|
|
171
|
-
totalBlocked: state.totalBlocked,
|
|
172
|
-
};
|
|
173
|
-
}),
|
|
174
|
-
controlPlane: {
|
|
175
|
-
getSnapshot() {
|
|
176
|
-
const state = runtimeStore.getState().controlPlane;
|
|
177
|
-
const clients = state.clientIds
|
|
178
|
-
.map((id) => state.clients.get(id))
|
|
179
|
-
.filter((client): client is ControlPlaneClientRecord => client !== undefined)
|
|
180
|
-
.sort((a, b) => (b.lastSeenAt ?? 0) - (a.lastSeenAt ?? 0) || a.id.localeCompare(b.id));
|
|
181
|
-
return {
|
|
182
|
-
connectionState: state.connectionState,
|
|
183
|
-
activeClientIds: state.activeClientIds,
|
|
184
|
-
requestCount: state.requestCount,
|
|
185
|
-
errorCount: state.errorCount,
|
|
186
|
-
host: state.host,
|
|
187
|
-
port: state.port,
|
|
188
|
-
clients,
|
|
189
|
-
approvals: runtimeServices.approvalBroker.listApprovals(6),
|
|
190
|
-
sessions: runtimeServices.sessionBroker.listSessions(6),
|
|
191
|
-
recentEvents: options.getControlPlaneRecentEvents?.(6) ?? [],
|
|
192
|
-
};
|
|
193
|
-
},
|
|
194
|
-
subscribe(listener) {
|
|
195
|
-
const unsubs = [
|
|
196
|
-
runtimeStore.subscribe(listener),
|
|
197
|
-
runtimeServices.approvalBroker.subscribe(listener),
|
|
198
|
-
];
|
|
199
|
-
return combineSubscriptions(...unsubs);
|
|
200
|
-
},
|
|
201
|
-
},
|
|
202
|
-
};
|
|
203
|
-
}
|
|
@@ -1,252 +0,0 @@
|
|
|
1
|
-
import { mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
2
|
-
import { dirname, isAbsolute, join, resolve } from 'node:path';
|
|
3
|
-
import { GitService } from '@pellux/goodvibes-sdk/platform/git/service';
|
|
4
|
-
|
|
5
|
-
export type ManagedWorktreeState = 'active' | 'paused' | 'kept' | 'discard' | 'cleanup-pending';
|
|
6
|
-
export type ManagedWorktreeKind = 'agent' | 'orchestrator' | 'manual';
|
|
7
|
-
|
|
8
|
-
export interface ManagedWorktreeMeta {
|
|
9
|
-
readonly path: string;
|
|
10
|
-
readonly kind: ManagedWorktreeKind;
|
|
11
|
-
readonly state: ManagedWorktreeState;
|
|
12
|
-
readonly ownerId?: string;
|
|
13
|
-
readonly sessionId?: string;
|
|
14
|
-
readonly taskId?: string;
|
|
15
|
-
readonly updatedAt: number;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
interface WorktreeStore {
|
|
19
|
-
readonly version: 1;
|
|
20
|
-
readonly records: Record<string, ManagedWorktreeMeta>;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export interface WorktreeStatusRecord extends ManagedWorktreeMeta {
|
|
24
|
-
readonly branch: string;
|
|
25
|
-
readonly head: string;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export interface WorktreeOwnershipSummary {
|
|
29
|
-
readonly total: number;
|
|
30
|
-
readonly active: number;
|
|
31
|
-
readonly paused: number;
|
|
32
|
-
readonly kept: number;
|
|
33
|
-
readonly discard: number;
|
|
34
|
-
readonly cleanupPending: number;
|
|
35
|
-
readonly sessionAttached: number;
|
|
36
|
-
readonly taskAttached: number;
|
|
37
|
-
readonly agentOwned: number;
|
|
38
|
-
readonly orchestratorOwned: number;
|
|
39
|
-
readonly manualOwned: number;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
export interface WorktreeAttachmentReview {
|
|
43
|
-
readonly targetKind: 'session' | 'task';
|
|
44
|
-
readonly targetId: string;
|
|
45
|
-
readonly total: number;
|
|
46
|
-
readonly active: number;
|
|
47
|
-
readonly paused: number;
|
|
48
|
-
readonly kept: number;
|
|
49
|
-
readonly discard: number;
|
|
50
|
-
readonly cleanupPending: number;
|
|
51
|
-
readonly records: readonly ManagedWorktreeMeta[];
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
export interface WorktreeRegistryPaths {
|
|
55
|
-
readonly workingDirectory: string;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
function getStorePath(workingDirectory: string): string {
|
|
59
|
-
return join(workingDirectory, '.goodvibes', 'tui', 'worktrees.json');
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
function defaultStore(): WorktreeStore {
|
|
63
|
-
return { version: 1, records: {} };
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
function normalizePath(path: string, workingDirectory: string): string {
|
|
67
|
-
return resolve(workingDirectory, path);
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
function readStore(workingDirectory: string): WorktreeStore {
|
|
71
|
-
try {
|
|
72
|
-
return JSON.parse(readFileSync(getStorePath(workingDirectory), 'utf-8')) as WorktreeStore;
|
|
73
|
-
} catch {
|
|
74
|
-
return defaultStore();
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
export function listPersistedWorktreeMeta(options: WorktreeRegistryPaths): ManagedWorktreeMeta[] {
|
|
79
|
-
return Object.values(readStore(options.workingDirectory).records).sort((a, b) => a.path.localeCompare(b.path));
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
export function getPersistedWorktreeMeta(path: string, options: WorktreeRegistryPaths): ManagedWorktreeMeta | null {
|
|
83
|
-
const normalized = normalizePath(path, options.workingDirectory);
|
|
84
|
-
return readStore(options.workingDirectory).records[normalized] ?? null;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
export function reviewWorktreeAttachments(
|
|
88
|
-
targetKind: 'session' | 'task',
|
|
89
|
-
targetId: string,
|
|
90
|
-
options: WorktreeRegistryPaths,
|
|
91
|
-
): WorktreeAttachmentReview {
|
|
92
|
-
const records = listPersistedWorktreeMeta(options).filter((record) => (
|
|
93
|
-
targetKind === 'session' ? record.sessionId === targetId : record.taskId === targetId
|
|
94
|
-
));
|
|
95
|
-
return records.reduce<WorktreeAttachmentReview>((summary, record) => ({
|
|
96
|
-
...summary,
|
|
97
|
-
total: summary.total + 1,
|
|
98
|
-
active: summary.active + (record.state === 'active' ? 1 : 0),
|
|
99
|
-
paused: summary.paused + (record.state === 'paused' ? 1 : 0),
|
|
100
|
-
kept: summary.kept + (record.state === 'kept' ? 1 : 0),
|
|
101
|
-
discard: summary.discard + (record.state === 'discard' ? 1 : 0),
|
|
102
|
-
cleanupPending: summary.cleanupPending + (record.state === 'cleanup-pending' ? 1 : 0),
|
|
103
|
-
records: [...summary.records, record],
|
|
104
|
-
}), {
|
|
105
|
-
targetKind,
|
|
106
|
-
targetId,
|
|
107
|
-
total: 0,
|
|
108
|
-
active: 0,
|
|
109
|
-
paused: 0,
|
|
110
|
-
kept: 0,
|
|
111
|
-
discard: 0,
|
|
112
|
-
cleanupPending: 0,
|
|
113
|
-
records: [],
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
export function summarizeWorktreeOwnership(records: readonly ManagedWorktreeMeta[]): WorktreeOwnershipSummary {
|
|
118
|
-
return records.reduce<WorktreeOwnershipSummary>((summary, record) => ({
|
|
119
|
-
total: summary.total + 1,
|
|
120
|
-
active: summary.active + (record.state === 'active' ? 1 : 0),
|
|
121
|
-
paused: summary.paused + (record.state === 'paused' ? 1 : 0),
|
|
122
|
-
kept: summary.kept + (record.state === 'kept' ? 1 : 0),
|
|
123
|
-
discard: summary.discard + (record.state === 'discard' ? 1 : 0),
|
|
124
|
-
cleanupPending: summary.cleanupPending + (record.state === 'cleanup-pending' ? 1 : 0),
|
|
125
|
-
sessionAttached: summary.sessionAttached + (record.sessionId ? 1 : 0),
|
|
126
|
-
taskAttached: summary.taskAttached + (record.taskId ? 1 : 0),
|
|
127
|
-
agentOwned: summary.agentOwned + (record.kind === 'agent' ? 1 : 0),
|
|
128
|
-
orchestratorOwned: summary.orchestratorOwned + (record.kind === 'orchestrator' ? 1 : 0),
|
|
129
|
-
manualOwned: summary.manualOwned + (record.kind === 'manual' ? 1 : 0),
|
|
130
|
-
}), {
|
|
131
|
-
total: 0,
|
|
132
|
-
active: 0,
|
|
133
|
-
paused: 0,
|
|
134
|
-
kept: 0,
|
|
135
|
-
discard: 0,
|
|
136
|
-
cleanupPending: 0,
|
|
137
|
-
sessionAttached: 0,
|
|
138
|
-
taskAttached: 0,
|
|
139
|
-
agentOwned: 0,
|
|
140
|
-
orchestratorOwned: 0,
|
|
141
|
-
manualOwned: 0,
|
|
142
|
-
});
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
function writeStore(store: WorktreeStore, workingDirectory: string): void {
|
|
146
|
-
const storePath = getStorePath(workingDirectory);
|
|
147
|
-
mkdirSync(dirname(storePath), { recursive: true });
|
|
148
|
-
writeFileSync(storePath, `${JSON.stringify(store, null, 2)}\n`, 'utf-8');
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
function classifyWorktreePath(path: string, workingDirectory: string): Pick<ManagedWorktreeMeta, 'kind' | 'ownerId'> {
|
|
152
|
-
const normalized = normalizePath(path, workingDirectory);
|
|
153
|
-
const agentMatch = normalized.match(/[/\\]\.goodvibes[/\\]\.worktrees[/\\]agent-([^/\\]+)$/);
|
|
154
|
-
if (agentMatch) {
|
|
155
|
-
return { kind: 'agent', ownerId: agentMatch[1] };
|
|
156
|
-
}
|
|
157
|
-
if (normalized.includes(`${join('.goodvibes', '.worktrees')}`)) {
|
|
158
|
-
return { kind: 'orchestrator' };
|
|
159
|
-
}
|
|
160
|
-
return { kind: 'manual' };
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
export class WorktreeRegistry {
|
|
164
|
-
private readonly git: GitService;
|
|
165
|
-
private readonly workingDirectory: string;
|
|
166
|
-
|
|
167
|
-
public constructor(workingDirectory: string) {
|
|
168
|
-
this.workingDirectory = workingDirectory;
|
|
169
|
-
this.git = new GitService(workingDirectory);
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
public async list(): Promise<WorktreeStatusRecord[]> {
|
|
173
|
-
const store = readStore(this.workingDirectory);
|
|
174
|
-
const listed = await this.git.worktreeList();
|
|
175
|
-
const present = new Set(listed.map((entry) => normalizePath(entry.path, this.workingDirectory)));
|
|
176
|
-
const records: WorktreeStatusRecord[] = listed.map((entry) => {
|
|
177
|
-
const path = normalizePath(entry.path, this.workingDirectory);
|
|
178
|
-
const meta = store.records[path];
|
|
179
|
-
const classified = classifyWorktreePath(path, this.workingDirectory);
|
|
180
|
-
return {
|
|
181
|
-
path,
|
|
182
|
-
branch: entry.branch,
|
|
183
|
-
head: entry.head,
|
|
184
|
-
kind: meta?.kind ?? classified.kind,
|
|
185
|
-
state: meta?.state ?? 'active',
|
|
186
|
-
...(meta?.ownerId ?? classified.ownerId ? { ownerId: meta?.ownerId ?? classified.ownerId } : {}),
|
|
187
|
-
...(meta?.sessionId ? { sessionId: meta.sessionId } : {}),
|
|
188
|
-
...(meta?.taskId ? { taskId: meta.taskId } : {}),
|
|
189
|
-
updatedAt: meta?.updatedAt ?? Date.now(),
|
|
190
|
-
};
|
|
191
|
-
});
|
|
192
|
-
const nextRecords: Record<string, ManagedWorktreeMeta> = {};
|
|
193
|
-
for (const record of records) {
|
|
194
|
-
nextRecords[record.path] = {
|
|
195
|
-
path: record.path,
|
|
196
|
-
kind: record.kind,
|
|
197
|
-
state: record.state,
|
|
198
|
-
...(record.ownerId ? { ownerId: record.ownerId } : {}),
|
|
199
|
-
...(record.sessionId ? { sessionId: record.sessionId } : {}),
|
|
200
|
-
...(record.taskId ? { taskId: record.taskId } : {}),
|
|
201
|
-
updatedAt: record.updatedAt,
|
|
202
|
-
};
|
|
203
|
-
}
|
|
204
|
-
for (const [path, meta] of Object.entries(store.records)) {
|
|
205
|
-
if (!present.has(path) && meta.state === 'kept') nextRecords[path] = meta;
|
|
206
|
-
}
|
|
207
|
-
writeStore({ version: 1, records: nextRecords }, this.workingDirectory);
|
|
208
|
-
return records.sort((a, b) => a.path.localeCompare(b.path));
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
public attach(path: string, target: { sessionId?: string; taskId?: string }): void {
|
|
212
|
-
const store = readStore(this.workingDirectory);
|
|
213
|
-
const normalized = normalizePath(path, this.workingDirectory);
|
|
214
|
-
const existing = store.records[normalized];
|
|
215
|
-
const classified = classifyWorktreePath(normalized, this.workingDirectory);
|
|
216
|
-
store.records[normalized] = {
|
|
217
|
-
path: normalized,
|
|
218
|
-
kind: existing?.kind ?? classified.kind,
|
|
219
|
-
state: existing?.state ?? 'active',
|
|
220
|
-
...(existing?.ownerId ?? classified.ownerId ? { ownerId: existing?.ownerId ?? classified.ownerId } : {}),
|
|
221
|
-
...(target.sessionId ? { sessionId: target.sessionId } : {}),
|
|
222
|
-
...(target.taskId ? { taskId: target.taskId } : {}),
|
|
223
|
-
updatedAt: Date.now(),
|
|
224
|
-
};
|
|
225
|
-
writeStore(store, this.workingDirectory);
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
public setState(path: string, state: ManagedWorktreeState): void {
|
|
229
|
-
const store = readStore(this.workingDirectory);
|
|
230
|
-
const normalized = normalizePath(path, this.workingDirectory);
|
|
231
|
-
const existing = store.records[normalized];
|
|
232
|
-
const classified = classifyWorktreePath(normalized, this.workingDirectory);
|
|
233
|
-
store.records[normalized] = {
|
|
234
|
-
path: normalized,
|
|
235
|
-
kind: existing?.kind ?? classified.kind,
|
|
236
|
-
state,
|
|
237
|
-
...(existing?.ownerId ?? classified.ownerId ? { ownerId: existing?.ownerId ?? classified.ownerId } : {}),
|
|
238
|
-
...(existing?.sessionId ? { sessionId: existing.sessionId } : {}),
|
|
239
|
-
...(existing?.taskId ? { taskId: existing.taskId } : {}),
|
|
240
|
-
updatedAt: Date.now(),
|
|
241
|
-
};
|
|
242
|
-
writeStore(store, this.workingDirectory);
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
public async cleanup(path: string): Promise<void> {
|
|
246
|
-
const normalized = isAbsolute(path) ? path : normalizePath(path, this.workingDirectory);
|
|
247
|
-
await this.git.worktreeRemove(normalized);
|
|
248
|
-
const store = readStore(this.workingDirectory);
|
|
249
|
-
delete store.records[normalized];
|
|
250
|
-
writeStore(store, this.workingDirectory);
|
|
251
|
-
}
|
|
252
|
-
}
|
package/src/sessions/manager.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export type {
|
|
2
|
-
SessionInfo,
|
|
3
|
-
SessionMeta,
|
|
4
|
-
} from '@pellux/goodvibes-sdk/platform/sessions/manager';
|
|
5
|
-
|
|
6
|
-
import { SessionManager as SdkSessionManager } from '@pellux/goodvibes-sdk/platform/sessions/manager';
|
|
7
|
-
|
|
8
|
-
export class SessionManager extends SdkSessionManager {
|
|
9
|
-
constructor(baseDir: string) {
|
|
10
|
-
super(baseDir, {
|
|
11
|
-
surfaceRoot: 'tui',
|
|
12
|
-
});
|
|
13
|
-
}
|
|
14
|
-
}
|