@hyperdrive.bot/paseo-server 0.2.6
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/.env.example +31 -0
- package/README.md +111 -0
- package/dist/scripts/dev-runner.js +37 -0
- package/dist/scripts/mcp-stdio-socket-bridge-cli.mjs +62 -0
- package/dist/scripts/supervisor-entrypoint.js +141 -0
- package/dist/scripts/supervisor-log-config.js +31 -0
- package/dist/scripts/supervisor.js +252 -0
- package/dist/server/executable-resolution/executable-resolution.d.ts +10 -0
- package/dist/server/executable-resolution/executable-resolution.js +118 -0
- package/dist/server/executable-resolution/windows.d.ts +18 -0
- package/dist/server/executable-resolution/windows.js +65 -0
- package/dist/server/extensions/daemon-backend.d.ts +11 -0
- package/dist/server/extensions/daemon-backend.js +146 -0
- package/dist/server/extensions/extension-host-manager.d.ts +48 -0
- package/dist/server/extensions/extension-host-manager.js +141 -0
- package/dist/server/extensions/extension-loader.d.ts +11 -0
- package/dist/server/extensions/extension-loader.js +47 -0
- package/dist/server/extensions/extension-service.d.ts +17 -0
- package/dist/server/extensions/extension-service.js +76 -0
- package/dist/server/server/agent/activity-curator.d.ts +28 -0
- package/dist/server/server/agent/activity-curator.js +227 -0
- package/dist/server/server/agent/agent-archive.d.ts +11 -0
- package/dist/server/server/agent/agent-archive.js +16 -0
- package/dist/server/server/agent/agent-loading.d.ts +12 -0
- package/dist/server/server/agent/agent-loading.js +55 -0
- package/dist/server/server/agent/agent-manager.d.ts +462 -0
- package/dist/server/server/agent/agent-manager.js +2955 -0
- package/dist/server/server/agent/agent-projections.d.ts +26 -0
- package/dist/server/server/agent/agent-projections.js +404 -0
- package/dist/server/server/agent/agent-prompt.d.ts +76 -0
- package/dist/server/server/agent/agent-prompt.js +230 -0
- package/dist/server/server/agent/agent-response-loop.d.ts +67 -0
- package/dist/server/server/agent/agent-response-loop.js +326 -0
- package/dist/server/server/agent/agent-routes.d.ts +18 -0
- package/dist/server/server/agent/agent-routes.js +107 -0
- package/dist/server/server/agent/agent-sdk-types.d.ts +677 -0
- package/dist/server/server/agent/agent-sdk-types.js +22 -0
- package/dist/server/server/agent/agent-storage.d.ts +152 -0
- package/dist/server/server/agent/agent-storage.js +342 -0
- package/dist/server/server/agent/agent-stream-coalescer.d.ts +41 -0
- package/dist/server/server/agent/agent-stream-coalescer.js +166 -0
- package/dist/server/server/agent/agent-timeline-store-types.d.ts +50 -0
- package/dist/server/server/agent/agent-timeline-store-types.js +2 -0
- package/dist/server/server/agent/agent-timeline-store.d.ts +27 -0
- package/dist/server/server/agent/agent-timeline-store.js +230 -0
- package/dist/server/server/agent/audio-utils.d.ts +3 -0
- package/dist/server/server/agent/audio-utils.js +19 -0
- package/dist/server/server/agent/create-agent/create.d.ts +83 -0
- package/dist/server/server/agent/create-agent/create.js +289 -0
- package/dist/server/server/agent/create-agent-lifecycle-dispatch.d.ts +54 -0
- package/dist/server/server/agent/create-agent-lifecycle-dispatch.js +152 -0
- package/dist/server/server/agent/create-agent-mode.d.ts +13 -0
- package/dist/server/server/agent/create-agent-mode.js +62 -0
- package/dist/server/server/agent/create-agent-title.d.ts +10 -0
- package/dist/server/server/agent/create-agent-title.js +34 -0
- package/dist/server/server/agent/dictation-debug.d.ts +13 -0
- package/dist/server/server/agent/dictation-debug.js +50 -0
- package/dist/server/server/agent/foreground-run-state.d.ts +50 -0
- package/dist/server/server/agent/foreground-run-state.js +160 -0
- package/dist/server/server/agent/import-sessions.d.ts +47 -0
- package/dist/server/server/agent/import-sessions.js +145 -0
- package/dist/server/server/agent/lifecycle-command.d.ts +73 -0
- package/dist/server/server/agent/lifecycle-command.js +92 -0
- package/dist/server/server/agent/mcp-server.d.ts +22 -0
- package/dist/server/server/agent/mcp-server.js +544 -0
- package/dist/server/server/agent/mcp-shared.d.ts +193 -0
- package/dist/server/server/agent/mcp-shared.js +197 -0
- package/dist/server/server/agent/pcm16-resampler.d.ts +14 -0
- package/dist/server/server/agent/pcm16-resampler.js +63 -0
- package/dist/server/server/agent/permission-response.d.ts +15 -0
- package/dist/server/server/agent/permission-response.js +14 -0
- package/dist/server/server/agent/prompt-attachments.d.ts +7 -0
- package/dist/server/server/agent/prompt-attachments.js +90 -0
- package/dist/server/server/agent/provider-history-timestamps.d.ts +2 -0
- package/dist/server/server/agent/provider-history-timestamps.js +16 -0
- package/dist/server/server/agent/provider-launch-config.d.ts +51 -0
- package/dist/server/server/agent/provider-launch-config.js +183 -0
- package/dist/server/server/agent/provider-notices.d.ts +3 -0
- package/dist/server/server/agent/provider-notices.js +5 -0
- package/dist/server/server/agent/provider-registry.d.ts +49 -0
- package/dist/server/server/agent/provider-registry.js +578 -0
- package/dist/server/server/agent/provider-session-import.d.ts +10 -0
- package/dist/server/server/agent/provider-session-import.js +49 -0
- package/dist/server/server/agent/provider-snapshot-manager.d.ts +137 -0
- package/dist/server/server/agent/provider-snapshot-manager.js +694 -0
- package/dist/server/server/agent/providers/acp-agent.d.ts +354 -0
- package/dist/server/server/agent/providers/acp-agent.js +2438 -0
- package/dist/server/server/agent/providers/claude/agent.d.ts +341 -0
- package/dist/server/server/agent/providers/claude/agent.js +4606 -0
- package/dist/server/server/agent/providers/claude/background-shell-kill-keys.d.ts +32 -0
- package/dist/server/server/agent/providers/claude/background-shell-kill-keys.js +34 -0
- package/dist/server/server/agent/providers/claude/background-task-tracker.d.ts +49 -0
- package/dist/server/server/agent/providers/claude/background-task-tracker.js +119 -0
- package/dist/server/server/agent/providers/claude/feature-definitions.d.ts +8 -0
- package/dist/server/server/agent/providers/claude/feature-definitions.js +24 -0
- package/dist/server/server/agent/providers/claude/hook-handler.d.ts +37 -0
- package/dist/server/server/agent/providers/claude/hook-handler.js +193 -0
- package/dist/server/server/agent/providers/claude/hooks/event-translator.d.ts +49 -0
- package/dist/server/server/agent/providers/claude/hooks/event-translator.js +151 -0
- package/dist/server/server/agent/providers/claude/image-compression.d.ts +10 -0
- package/dist/server/server/agent/providers/claude/image-compression.js +32 -0
- package/dist/server/server/agent/providers/claude/model-manifest.d.ts +104 -0
- package/dist/server/server/agent/providers/claude/model-manifest.js +221 -0
- package/dist/server/server/agent/providers/claude/models.d.ts +11 -0
- package/dist/server/server/agent/providers/claude/models.js +97 -0
- package/dist/server/server/agent/providers/claude/partial-json.d.ts +5 -0
- package/dist/server/server/agent/providers/claude/partial-json.js +306 -0
- package/dist/server/server/agent/providers/claude/project-dir.d.ts +6 -0
- package/dist/server/server/agent/providers/claude/project-dir.js +57 -0
- package/dist/server/server/agent/providers/claude/pty-session-launcher.d.ts +41 -0
- package/dist/server/server/agent/providers/claude/pty-session-launcher.js +131 -0
- package/dist/server/server/agent/providers/claude/resume-source.d.ts +11 -0
- package/dist/server/server/agent/providers/claude/resume-source.js +37 -0
- package/dist/server/server/agent/providers/claude/rewind.d.ts +30 -0
- package/dist/server/server/agent/providers/claude/rewind.js +30 -0
- package/dist/server/server/agent/providers/claude/sidechain-tracker.d.ts +22 -0
- package/dist/server/server/agent/providers/claude/sidechain-tracker.js +232 -0
- package/dist/server/server/agent/providers/claude/spawn-config-writer.d.ts +70 -0
- package/dist/server/server/agent/providers/claude/spawn-config-writer.js +229 -0
- package/dist/server/server/agent/providers/claude/task-notification-tool-call.d.ts +47 -0
- package/dist/server/server/agent/providers/claude/task-notification-tool-call.js +292 -0
- package/dist/server/server/agent/providers/claude/test-rewind-claude-sdk.d.ts +24 -0
- package/dist/server/server/agent/providers/claude/test-rewind-claude-sdk.js +23 -0
- package/dist/server/server/agent/providers/claude/tool-call-detail-parser.d.ts +3 -0
- package/dist/server/server/agent/providers/claude/tool-call-detail-parser.js +130 -0
- package/dist/server/server/agent/providers/claude/tool-call-mapper.d.ts +16 -0
- package/dist/server/server/agent/providers/claude/tool-call-mapper.js +129 -0
- package/dist/server/server/agent/providers/claude/transport/claude-paths.d.ts +31 -0
- package/dist/server/server/agent/providers/claude/transport/claude-paths.js +63 -0
- package/dist/server/server/agent/providers/claude/transport/continue-flag.d.ts +31 -0
- package/dist/server/server/agent/providers/claude/transport/continue-flag.js +42 -0
- package/dist/server/server/agent/providers/claude/transport/pty-query.d.ts +62 -0
- package/dist/server/server/agent/providers/claude/transport/pty-query.js +265 -0
- package/dist/server/server/agent/providers/claude/transport/pty.d.ts +50 -0
- package/dist/server/server/agent/providers/claude/transport/pty.js +211 -0
- package/dist/server/server/agent/providers/claude/transport/redact.d.ts +2 -0
- package/dist/server/server/agent/providers/claude/transport/redact.js +5 -0
- package/dist/server/server/agent/providers/claude/transport/sdk.d.ts +63 -0
- package/dist/server/server/agent/providers/claude/transport/sdk.js +207 -0
- package/dist/server/server/agent/providers/claude/transport/transcript-sdk-reader.d.ts +27 -0
- package/dist/server/server/agent/providers/claude/transport/transcript-sdk-reader.js +162 -0
- package/dist/server/server/agent/providers/claude/transport/transcript-tailer.d.ts +28 -0
- package/dist/server/server/agent/providers/claude/transport/transcript-tailer.js +166 -0
- package/dist/server/server/agent/providers/claude/transport/truncate-session.d.ts +41 -0
- package/dist/server/server/agent/providers/claude/transport/truncate-session.js +86 -0
- package/dist/server/server/agent/providers/claude/transport/types.d.ts +47 -0
- package/dist/server/server/agent/providers/claude/transport/types.js +2 -0
- package/dist/server/server/agent/providers/codex/app-server-transport.d.ts +90 -0
- package/dist/server/server/agent/providers/codex/app-server-transport.js +262 -0
- package/dist/server/server/agent/providers/codex/rewind.d.ts +21 -0
- package/dist/server/server/agent/providers/codex/rewind.js +46 -0
- package/dist/server/server/agent/providers/codex/test-utils/fake-app-server.d.ts +36 -0
- package/dist/server/server/agent/providers/codex/test-utils/fake-app-server.js +217 -0
- package/dist/server/server/agent/providers/codex/tool-call-detail-parser.d.ts +12 -0
- package/dist/server/server/agent/providers/codex/tool-call-detail-parser.js +104 -0
- package/dist/server/server/agent/providers/codex/tool-call-mapper.d.ts +24 -0
- package/dist/server/server/agent/providers/codex/tool-call-mapper.js +830 -0
- package/dist/server/server/agent/providers/codex-app-server-agent.d.ts +308 -0
- package/dist/server/server/agent/providers/codex-app-server-agent.js +4514 -0
- package/dist/server/server/agent/providers/codex-feature-definitions.d.ts +11 -0
- package/dist/server/server/agent/providers/codex-feature-definitions.js +45 -0
- package/dist/server/server/agent/providers/copilot-acp-agent.d.ts +26 -0
- package/dist/server/server/agent/providers/copilot-acp-agent.js +187 -0
- package/dist/server/server/agent/providers/cursor-acp-agent.d.ts +15 -0
- package/dist/server/server/agent/providers/cursor-acp-agent.js +18 -0
- package/dist/server/server/agent/providers/diagnostic-utils.d.ts +36 -0
- package/dist/server/server/agent/providers/diagnostic-utils.js +355 -0
- package/dist/server/server/agent/providers/generic-acp-agent.d.ts +42 -0
- package/dist/server/server/agent/providers/generic-acp-agent.js +161 -0
- package/dist/server/server/agent/providers/kiro-acp-agent.d.ts +17 -0
- package/dist/server/server/agent/providers/kiro-acp-agent.js +78 -0
- package/dist/server/server/agent/providers/mock-load-test-agent.d.ts +85 -0
- package/dist/server/server/agent/providers/mock-load-test-agent.js +1010 -0
- package/dist/server/server/agent/providers/mock-slow-provider.d.ts +14 -0
- package/dist/server/server/agent/providers/mock-slow-provider.js +39 -0
- package/dist/server/server/agent/providers/opencode/paths.d.ts +2 -0
- package/dist/server/server/agent/providers/opencode/paths.js +7 -0
- package/dist/server/server/agent/providers/opencode/rewind.d.ts +18 -0
- package/dist/server/server/agent/providers/opencode/rewind.js +14 -0
- package/dist/server/server/agent/providers/opencode/server-manager.d.ts +91 -0
- package/dist/server/server/agent/providers/opencode/server-manager.js +425 -0
- package/dist/server/server/agent/providers/opencode/test-server-manager.d.ts +25 -0
- package/dist/server/server/agent/providers/opencode/test-server-manager.js +39 -0
- package/dist/server/server/agent/providers/opencode/test-utils/test-opencode-harness.d.ts +92 -0
- package/dist/server/server/agent/providers/opencode/test-utils/test-opencode-harness.js +268 -0
- package/dist/server/server/agent/providers/opencode/tool-call-detail-parser.d.ts +3 -0
- package/dist/server/server/agent/providers/opencode/tool-call-detail-parser.js +256 -0
- package/dist/server/server/agent/providers/opencode/tool-call-mapper.d.ts +13 -0
- package/dist/server/server/agent/providers/opencode/tool-call-mapper.js +53 -0
- package/dist/server/server/agent/providers/opencode-agent.d.ts +286 -0
- package/dist/server/server/agent/providers/opencode-agent.js +2857 -0
- package/dist/server/server/agent/providers/pi/agent.d.ts +137 -0
- package/dist/server/server/agent/providers/pi/agent.js +1650 -0
- package/dist/server/server/agent/providers/pi/cli-runtime.d.ts +21 -0
- package/dist/server/server/agent/providers/pi/cli-runtime.js +233 -0
- package/dist/server/server/agent/providers/pi/history-mapper.d.ts +9 -0
- package/dist/server/server/agent/providers/pi/history-mapper.js +140 -0
- package/dist/server/server/agent/providers/pi/rewind.d.ts +8 -0
- package/dist/server/server/agent/providers/pi/rewind.js +8 -0
- package/dist/server/server/agent/providers/pi/rpc-types.d.ts +208 -0
- package/dist/server/server/agent/providers/pi/rpc-types.js +2 -0
- package/dist/server/server/agent/providers/pi/runtime.d.ts +57 -0
- package/dist/server/server/agent/providers/pi/runtime.js +56 -0
- package/dist/server/server/agent/providers/pi/session-descriptor.d.ts +16 -0
- package/dist/server/server/agent/providers/pi/session-descriptor.js +346 -0
- package/dist/server/server/agent/providers/pi/test-utils/fake-pi.d.ts +83 -0
- package/dist/server/server/agent/providers/pi/test-utils/fake-pi.js +184 -0
- package/dist/server/server/agent/providers/pi/tool-call-mapper.d.ts +112 -0
- package/dist/server/server/agent/providers/pi/tool-call-mapper.js +284 -0
- package/dist/server/server/agent/providers/provider-image-output.d.ts +25 -0
- package/dist/server/server/agent/providers/provider-image-output.js +111 -0
- package/dist/server/server/agent/providers/provider-runner.d.ts +27 -0
- package/dist/server/server/agent/providers/provider-runner.js +81 -0
- package/dist/server/server/agent/providers/test-utils/session-stream-adapter.d.ts +3 -0
- package/dist/server/server/agent/providers/test-utils/session-stream-adapter.js +60 -0
- package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts +884 -0
- package/dist/server/server/agent/providers/tool-call-detail-primitives.js +778 -0
- package/dist/server/server/agent/providers/tool-call-mapper-utils.d.ts +25 -0
- package/dist/server/server/agent/providers/tool-call-mapper-utils.js +208 -0
- package/dist/server/server/agent/recordings-debug.d.ts +3 -0
- package/dist/server/server/agent/recordings-debug.js +19 -0
- package/dist/server/server/agent/render-file-attachment.d.ts +29 -0
- package/dist/server/server/agent/render-file-attachment.js +41 -0
- package/dist/server/server/agent/resolve-resume-cwd.d.ts +14 -0
- package/dist/server/server/agent/resolve-resume-cwd.js +49 -0
- package/dist/server/server/agent/rewind/rewind.d.ts +10 -0
- package/dist/server/server/agent/rewind/rewind.js +29 -0
- package/dist/server/server/agent/rewind/test-rewind-session.d.ts +48 -0
- package/dist/server/server/agent/rewind/test-rewind-session.js +88 -0
- package/dist/server/server/agent/runtime-mcp-config.d.ts +14 -0
- package/dist/server/server/agent/runtime-mcp-config.js +53 -0
- package/dist/server/server/agent/session-digest-generator.d.ts +37 -0
- package/dist/server/server/agent/session-digest-generator.js +115 -0
- package/dist/server/server/agent/session-digest.d.ts +35 -0
- package/dist/server/server/agent/session-digest.js +104 -0
- package/dist/server/server/agent/structured-generation-providers.d.ts +29 -0
- package/dist/server/server/agent/structured-generation-providers.js +236 -0
- package/dist/server/server/agent/stt-debug.d.ts +10 -0
- package/dist/server/server/agent/stt-debug.js +33 -0
- package/dist/server/server/agent/stt-manager.d.ts +38 -0
- package/dist/server/server/agent/stt-manager.js +246 -0
- package/dist/server/server/agent/system-prompt.d.ts +2 -0
- package/dist/server/server/agent/system-prompt.js +8 -0
- package/dist/server/server/agent/timeline-append.d.ts +10 -0
- package/dist/server/server/agent/timeline-append.js +27 -0
- package/dist/server/server/agent/timeline-projection.d.ts +71 -0
- package/dist/server/server/agent/timeline-projection.js +373 -0
- package/dist/server/server/agent/tools/paseo-tools.d.ts +54 -0
- package/dist/server/server/agent/tools/paseo-tools.js +2197 -0
- package/dist/server/server/agent/tools/types.d.ts +36 -0
- package/dist/server/server/agent/tools/types.js +2 -0
- package/dist/server/server/agent/tts-debug.d.ts +8 -0
- package/dist/server/server/agent/tts-debug.js +24 -0
- package/dist/server/server/agent/tts-manager.d.ts +41 -0
- package/dist/server/server/agent/tts-manager.js +375 -0
- package/dist/server/server/agent/wait-for-agent-tracker.d.ts +15 -0
- package/dist/server/server/agent/wait-for-agent-tracker.js +53 -0
- package/dist/server/server/agent-attention-policy.d.ts +29 -0
- package/dist/server/server/agent-attention-policy.js +36 -0
- package/dist/server/server/atomic-file.d.ts +3 -0
- package/dist/server/server/atomic-file.js +19 -0
- package/dist/server/server/auth.d.ts +38 -0
- package/dist/server/server/auth.js +143 -0
- package/dist/server/server/auto-archive-on-merge/archive-if-safe.d.ts +40 -0
- package/dist/server/server/auto-archive-on-merge/archive-if-safe.js +92 -0
- package/dist/server/server/auto-archive-on-merge/index.d.ts +8 -0
- package/dist/server/server/auto-archive-on-merge/index.js +15 -0
- package/dist/server/server/bootstrap.d.ts +126 -0
- package/dist/server/server/bootstrap.js +1193 -0
- package/dist/server/server/browser-tools/broker.d.ts +45 -0
- package/dist/server/server/browser-tools/broker.js +390 -0
- package/dist/server/server/browser-tools/errors.d.ts +22 -0
- package/dist/server/server/browser-tools/errors.js +27 -0
- package/dist/server/server/browser-tools/policy.d.ts +10 -0
- package/dist/server/server/browser-tools/policy.js +16 -0
- package/dist/server/server/browser-tools/tools.d.ts +16 -0
- package/dist/server/server/browser-tools/tools.js +845 -0
- package/dist/server/server/chat/chat-mentions.d.ts +47 -0
- package/dist/server/server/chat/chat-mentions.js +113 -0
- package/dist/server/server/chat/chat-service.d.ts +78 -0
- package/dist/server/server/chat/chat-service.js +337 -0
- package/dist/server/server/checkout/status-projection.d.ts +19 -0
- package/dist/server/server/checkout/status-projection.js +102 -0
- package/dist/server/server/checkout-diff-manager.d.ts +41 -0
- package/dist/server/server/checkout-diff-manager.js +189 -0
- package/dist/server/server/checkout-git-utils.d.ts +11 -0
- package/dist/server/server/checkout-git-utils.js +34 -0
- package/dist/server/server/client-message-id.d.ts +3 -0
- package/dist/server/server/client-message-id.js +12 -0
- package/dist/server/server/config.d.ts +17 -0
- package/dist/server/server/config.js +320 -0
- package/dist/server/server/connection-offer.d.ts +20 -0
- package/dist/server/server/connection-offer.js +59 -0
- package/dist/server/server/daemon-config-store.d.ts +25 -0
- package/dist/server/server/daemon-config-store.js +194 -0
- package/dist/server/server/daemon-keypair.d.ts +8 -0
- package/dist/server/server/daemon-keypair.js +42 -0
- package/dist/server/server/daemon-version.d.ts +5 -0
- package/dist/server/server/daemon-version.js +22 -0
- package/dist/server/server/daemon-worker.d.ts +2 -0
- package/dist/server/server/daemon-worker.js +251 -0
- package/dist/server/server/dictation/dictation-stream-manager.d.ts +87 -0
- package/dist/server/server/dictation/dictation-stream-manager.js +572 -0
- package/dist/server/server/editor-targets.d.ts +18 -0
- package/dist/server/server/editor-targets.js +109 -0
- package/dist/server/server/exports.d.ts +24 -0
- package/dist/server/server/exports.js +24 -0
- package/dist/server/server/file-download/token-store.d.ts +24 -0
- package/dist/server/server/file-download/token-store.js +40 -0
- package/dist/server/server/file-explorer/file-download-frames.d.ts +27 -0
- package/dist/server/server/file-explorer/file-download-frames.js +47 -0
- package/dist/server/server/file-explorer/service.d.ts +75 -0
- package/dist/server/server/file-explorer/service.js +308 -0
- package/dist/server/server/file-upload/index.d.ts +27 -0
- package/dist/server/server/file-upload/index.js +158 -0
- package/dist/server/server/hostnames.d.ts +13 -0
- package/dist/server/server/hostnames.js +94 -0
- package/dist/server/server/json-utils.d.ts +11 -0
- package/dist/server/server/json-utils.js +45 -0
- package/dist/server/server/lifecycle-reasons.d.ts +4 -0
- package/dist/server/server/lifecycle-reasons.js +6 -0
- package/dist/server/server/logger.d.ts +29 -0
- package/dist/server/server/logger.js +125 -0
- package/dist/server/server/loop-service.d.ts +234 -0
- package/dist/server/server/loop-service.js +769 -0
- package/dist/server/server/managed-processes/managed-processes.d.ts +76 -0
- package/dist/server/server/managed-processes/managed-processes.js +326 -0
- package/dist/server/server/meetings/capture-http.d.ts +3 -0
- package/dist/server/server/meetings/capture-http.js +71 -0
- package/dist/server/server/meetings/capture-orchestrator.d.ts +123 -0
- package/dist/server/server/meetings/capture-orchestrator.js +531 -0
- package/dist/server/server/meetings/capture-stream-ws.d.ts +42 -0
- package/dist/server/server/meetings/capture-stream-ws.js +68 -0
- package/dist/server/server/meetings/live-transcription.d.ts +57 -0
- package/dist/server/server/meetings/live-transcription.js +280 -0
- package/dist/server/server/meetings/meetings-http.d.ts +42 -0
- package/dist/server/server/meetings/meetings-http.js +266 -0
- package/dist/server/server/messages.d.ts +9 -0
- package/dist/server/server/messages.js +29 -0
- package/dist/server/server/migrations/backfill-workspace-id.migration.d.ts +9 -0
- package/dist/server/server/migrations/backfill-workspace-id.migration.js +64 -0
- package/dist/server/server/monitoring/telemetry.d.ts +13 -0
- package/dist/server/server/monitoring/telemetry.js +21 -0
- package/dist/server/server/package-version.d.ts +19 -0
- package/dist/server/server/package-version.js +60 -0
- package/dist/server/server/pagination/cursor.d.ts +16 -0
- package/dist/server/server/pagination/cursor.js +62 -0
- package/dist/server/server/pagination/sortable-pager.d.ts +24 -0
- package/dist/server/server/pagination/sortable-pager.js +68 -0
- package/dist/server/server/pairing-offer.d.ts +18 -0
- package/dist/server/server/pairing-offer.js +47 -0
- package/dist/server/server/pairing-qr.d.ts +7 -0
- package/dist/server/server/pairing-qr.js +45 -0
- package/dist/server/server/paseo-env.d.ts +13 -0
- package/dist/server/server/paseo-env.js +53 -0
- package/dist/server/server/paseo-home.d.ts +2 -0
- package/dist/server/server/paseo-home.js +19 -0
- package/dist/server/server/paseo-worktree-service.d.ts +52 -0
- package/dist/server/server/paseo-worktree-service.js +294 -0
- package/dist/server/server/path-utils.d.ts +5 -0
- package/dist/server/server/path-utils.js +34 -0
- package/dist/server/server/persisted-config.d.ts +333 -0
- package/dist/server/server/persisted-config.js +402 -0
- package/dist/server/server/persistence-hooks.d.ts +32 -0
- package/dist/server/server/persistence-hooks.js +97 -0
- package/dist/server/server/pid-lock.d.ts +32 -0
- package/dist/server/server/pid-lock.js +170 -0
- package/dist/server/server/private-files.d.ts +6 -0
- package/dist/server/server/private-files.js +37 -0
- package/dist/server/server/process-diagnostics.d.ts +17 -0
- package/dist/server/server/process-diagnostics.js +22 -0
- package/dist/server/server/push/categories.d.ts +35 -0
- package/dist/server/server/push/categories.js +40 -0
- package/dist/server/server/push/expo-worker.d.ts +51 -0
- package/dist/server/server/push/expo-worker.js +149 -0
- package/dist/server/server/push/index.d.ts +39 -0
- package/dist/server/server/push/index.js +45 -0
- package/dist/server/server/push/notifications.d.ts +9 -0
- package/dist/server/server/push/notifications.js +15 -0
- package/dist/server/server/push/push-service.d.ts +20 -0
- package/dist/server/server/push/push-service.js +66 -0
- package/dist/server/server/push/routes.d.ts +28 -0
- package/dist/server/server/push/routes.js +74 -0
- package/dist/server/server/push/subscriptions.d.ts +42 -0
- package/dist/server/server/push/subscriptions.js +112 -0
- package/dist/server/server/push/token-store.d.ts +29 -0
- package/dist/server/server/push/token-store.js +78 -0
- package/dist/server/server/push/triggers.d.ts +68 -0
- package/dist/server/server/push/triggers.js +103 -0
- package/dist/server/server/push/vapid-keys.d.ts +15 -0
- package/dist/server/server/push/vapid-keys.js +52 -0
- package/dist/server/server/push/web-worker.d.ts +44 -0
- package/dist/server/server/push/web-worker.js +99 -0
- package/dist/server/server/relay-transport.d.ts +31 -0
- package/dist/server/server/relay-transport.js +514 -0
- package/dist/server/server/resolve-workspace-id-for-path.d.ts +3 -0
- package/dist/server/server/resolve-workspace-id-for-path.js +41 -0
- package/dist/server/server/resolve-worktree-creation-intent.d.ts +32 -0
- package/dist/server/server/resolve-worktree-creation-intent.js +121 -0
- package/dist/server/server/schedule/cron.d.ts +4 -0
- package/dist/server/server/schedule/cron.js +81 -0
- package/dist/server/server/schedule/service.d.ts +52 -0
- package/dist/server/server/schedule/service.js +628 -0
- package/dist/server/server/schedule/store.d.ts +13 -0
- package/dist/server/server/schedule/store.js +57 -0
- package/dist/server/server/script-health-monitor.d.ts +39 -0
- package/dist/server/server/script-health-monitor.js +159 -0
- package/dist/server/server/script-proxy.d.ts +3 -0
- package/dist/server/server/script-proxy.js +2 -0
- package/dist/server/server/script-route-branch-handler.d.ts +10 -0
- package/dist/server/server/script-route-branch-handler.js +11 -0
- package/dist/server/server/script-status-projection.d.ts +36 -0
- package/dist/server/server/script-status-projection.js +200 -0
- package/dist/server/server/server-id.d.ts +17 -0
- package/dist/server/server/server-id.js +68 -0
- package/dist/server/server/service-proxy.d.ts +237 -0
- package/dist/server/server/service-proxy.js +714 -0
- package/dist/server/server/session/agent-config/agent-config-session.d.ts +50 -0
- package/dist/server/server/session/agent-config/agent-config-session.js +98 -0
- package/dist/server/server/session/agent-updates/agent-updates-service.d.ts +59 -0
- package/dist/server/server/session/agent-updates/agent-updates-service.js +220 -0
- package/dist/server/server/session/chat/chat-schedule-loop-session.d.ts +120 -0
- package/dist/server/server/session/chat/chat-schedule-loop-session.js +489 -0
- package/dist/server/server/session/checkout/checkout-session.d.ts +140 -0
- package/dist/server/server/session/checkout/checkout-session.js +927 -0
- package/dist/server/server/session/checkout/git-metadata-generator.d.ts +53 -0
- package/dist/server/server/session/checkout/git-metadata-generator.js +159 -0
- package/dist/server/server/session/daemon/daemon-self-update-session-controller.d.ts +32 -0
- package/dist/server/server/session/daemon/daemon-self-update-session-controller.js +88 -0
- package/dist/server/server/session/daemon/daemon-self-updater.d.ts +32 -0
- package/dist/server/server/session/daemon/daemon-self-updater.js +56 -0
- package/dist/server/server/session/daemon/daemon-session.d.ts +76 -0
- package/dist/server/server/session/daemon/daemon-session.js +148 -0
- package/dist/server/server/session/daemon/diagnostics.d.ts +41 -0
- package/dist/server/server/session/daemon/diagnostics.js +431 -0
- package/dist/server/server/session/daemon/install-origin.d.ts +7 -0
- package/dist/server/server/session/daemon/install-origin.js +64 -0
- package/dist/server/server/session/daemon/npm-global-cli.d.ts +29 -0
- package/dist/server/server/session/daemon/npm-global-cli.js +98 -0
- package/dist/server/server/session/files/workspace-files-session.d.ts +43 -0
- package/dist/server/server/session/files/workspace-files-session.js +218 -0
- package/dist/server/server/session/git-mutation/git-mutation-service.d.ts +34 -0
- package/dist/server/server/session/git-mutation/git-mutation-service.js +71 -0
- package/dist/server/server/session/project-config/project-config-session.d.ts +34 -0
- package/dist/server/server/session/project-config/project-config-session.js +125 -0
- package/dist/server/server/session/provider/provider-catalog-session.d.ts +74 -0
- package/dist/server/server/session/provider/provider-catalog-session.js +343 -0
- package/dist/server/server/session/session-rename-route.d.ts +4 -0
- package/dist/server/server/session/session-rename-route.js +71 -0
- package/dist/server/server/session/session-rename-service.d.ts +25 -0
- package/dist/server/server/session/session-rename-service.js +76 -0
- package/dist/server/server/session/voice/voice-session.d.ts +166 -0
- package/dist/server/server/session/voice/voice-session.js +893 -0
- package/dist/server/server/session/voice/voice-turn-controller.d.ts +38 -0
- package/dist/server/server/session/voice/voice-turn-controller.js +393 -0
- package/dist/server/server/session/workspace-git-observer/workspace-git-observer-service.d.ts +36 -0
- package/dist/server/server/session/workspace-git-observer/workspace-git-observer-service.js +134 -0
- package/dist/server/server/session/workspace-provisioning/workspace-provisioning-service.d.ts +34 -0
- package/dist/server/server/session/workspace-provisioning/workspace-provisioning-service.js +190 -0
- package/dist/server/server/session/workspace-scripts/workspace-scripts-service.d.ts +41 -0
- package/dist/server/server/session/workspace-scripts/workspace-scripts-service.js +100 -0
- package/dist/server/server/session.d.ts +562 -0
- package/dist/server/server/session.js +5787 -0
- package/dist/server/server/speech/audio.d.ts +10 -0
- package/dist/server/server/speech/audio.js +101 -0
- package/dist/server/server/speech/provider-resolver.d.ts +3 -0
- package/dist/server/server/speech/provider-resolver.js +7 -0
- package/dist/server/server/speech/providers/local/config.d.ts +30 -0
- package/dist/server/server/speech/providers/local/config.js +134 -0
- package/dist/server/server/speech/providers/local/models.d.ts +11 -0
- package/dist/server/server/speech/providers/local/models.js +17 -0
- package/dist/server/server/speech/providers/local/runtime.d.ts +31 -0
- package/dist/server/server/speech/providers/local/runtime.js +135 -0
- package/dist/server/server/speech/providers/local/sherpa/assets/silero_vad.onnx +0 -0
- package/dist/server/server/speech/providers/local/sherpa/model-catalog.d.ts +56 -0
- package/dist/server/server/speech/providers/local/sherpa/model-catalog.js +74 -0
- package/dist/server/server/speech/providers/local/sherpa/model-downloader.d.ts +15 -0
- package/dist/server/server/speech/providers/local/sherpa/model-downloader.js +142 -0
- package/dist/server/server/speech/providers/local/sherpa/sherpa-offline-recognizer.d.ts +49 -0
- package/dist/server/server/speech/providers/local/sherpa/sherpa-offline-recognizer.js +73 -0
- package/dist/server/server/speech/providers/local/sherpa/sherpa-onnx-node-loader.d.ts +9 -0
- package/dist/server/server/speech/providers/local/sherpa/sherpa-onnx-node-loader.js +107 -0
- package/dist/server/server/speech/providers/local/sherpa/sherpa-parakeet-realtime-session.d.ts +28 -0
- package/dist/server/server/speech/providers/local/sherpa/sherpa-parakeet-realtime-session.js +137 -0
- package/dist/server/server/speech/providers/local/sherpa/sherpa-parakeet-stt.d.ts +21 -0
- package/dist/server/server/speech/providers/local/sherpa/sherpa-parakeet-stt.js +133 -0
- package/dist/server/server/speech/providers/local/sherpa/sherpa-runtime-env.d.ts +18 -0
- package/dist/server/server/speech/providers/local/sherpa/sherpa-runtime-env.js +84 -0
- package/dist/server/server/speech/providers/local/sherpa/sherpa-tts.d.ts +21 -0
- package/dist/server/server/speech/providers/local/sherpa/sherpa-tts.js +101 -0
- package/dist/server/server/speech/providers/local/sherpa/silero-vad-provider.d.ts +19 -0
- package/dist/server/server/speech/providers/local/sherpa/silero-vad-provider.js +49 -0
- package/dist/server/server/speech/providers/local/sherpa/silero-vad-session.d.ts +38 -0
- package/dist/server/server/speech/providers/local/sherpa/silero-vad-session.js +176 -0
- package/dist/server/server/speech/providers/local/worker-bytes.d.ts +4 -0
- package/dist/server/server/speech/providers/local/worker-bytes.js +9 -0
- package/dist/server/server/speech/providers/local/worker-client.d.ts +93 -0
- package/dist/server/server/speech/providers/local/worker-client.js +611 -0
- package/dist/server/server/speech/providers/local/worker-process.d.ts +2 -0
- package/dist/server/server/speech/providers/local/worker-process.js +270 -0
- package/dist/server/server/speech/providers/local/worker-protocol.d.ts +95 -0
- package/dist/server/server/speech/providers/local/worker-protocol.js +2 -0
- package/dist/server/server/speech/providers/openai/config.d.ts +19 -0
- package/dist/server/server/speech/providers/openai/config.js +148 -0
- package/dist/server/server/speech/providers/openai/runtime.d.ts +29 -0
- package/dist/server/server/speech/providers/openai/runtime.js +102 -0
- package/dist/server/server/speech/providers/openai/stt.d.ts +23 -0
- package/dist/server/server/speech/providers/openai/stt.js +209 -0
- package/dist/server/server/speech/providers/openai/tts.d.ts +19 -0
- package/dist/server/server/speech/providers/openai/tts.js +48 -0
- package/dist/server/server/speech/speech-config-resolver.d.ts +11 -0
- package/dist/server/server/speech/speech-config-resolver.js +132 -0
- package/dist/server/server/speech/speech-provider.d.ts +59 -0
- package/dist/server/server/speech/speech-provider.js +2 -0
- package/dist/server/server/speech/speech-runtime.d.ts +45 -0
- package/dist/server/server/speech/speech-runtime.js +562 -0
- package/dist/server/server/speech/speech-types.d.ts +22 -0
- package/dist/server/server/speech/speech-types.js +8 -0
- package/dist/server/server/speech/turn-detection-provider.d.ts +23 -0
- package/dist/server/server/speech/turn-detection-provider.js +2 -0
- package/dist/server/server/uploads/file-attachment-validation.d.ts +61 -0
- package/dist/server/server/uploads/file-attachment-validation.js +56 -0
- package/dist/server/server/uploads/staging-service.d.ts +91 -0
- package/dist/server/server/uploads/staging-service.js +144 -0
- package/dist/server/server/utils/diff-highlighter.d.ts +57 -0
- package/dist/server/server/utils/diff-highlighter.js +279 -0
- package/dist/server/server/voice/voice-turn-controller.d.ts +38 -0
- package/dist/server/server/voice/voice-turn-controller.js +393 -0
- package/dist/server/server/voice-config.d.ts +15 -0
- package/dist/server/server/voice-config.js +54 -0
- package/dist/server/server/voice-permission-policy.d.ts +4 -0
- package/dist/server/server/voice-permission-policy.js +13 -0
- package/dist/server/server/voice-types.d.ts +12 -0
- package/dist/server/server/voice-types.js +2 -0
- package/dist/server/server/watch/composer-dictate.d.ts +42 -0
- package/dist/server/server/watch/composer-dictate.js +37 -0
- package/dist/server/server/watch/notification-action.d.ts +38 -0
- package/dist/server/server/watch/notification-action.js +54 -0
- package/dist/server/server/watch/notification-registry.d.ts +16 -0
- package/dist/server/server/watch/notification-registry.js +2 -0
- package/dist/server/server/web-ui.d.ts +10 -0
- package/dist/server/server/web-ui.js +205 -0
- package/dist/server/server/websocket/runtime-metrics.d.ts +94 -0
- package/dist/server/server/websocket/runtime-metrics.js +148 -0
- package/dist/server/server/websocket-server.d.ts +193 -0
- package/dist/server/server/websocket-server.js +1768 -0
- package/dist/server/server/workflow/workflow-feature.d.ts +2 -0
- package/dist/server/server/workflow/workflow-feature.js +8 -0
- package/dist/server/server/workflow/workflow-http-routes.d.ts +27 -0
- package/dist/server/server/workflow/workflow-http-routes.js +97 -0
- package/dist/server/server/workflow/workflow-manager.d.ts +228 -0
- package/dist/server/server/workflow/workflow-manager.js +444 -0
- package/dist/server/server/workflow/workflow-progress.d.ts +95 -0
- package/dist/server/server/workflow/workflow-progress.js +178 -0
- package/dist/server/server/workflow/workflow-storage.d.ts +36 -0
- package/dist/server/server/workflow/workflow-storage.js +143 -0
- package/dist/server/server/workspace/all-sessions-route.d.ts +32 -0
- package/dist/server/server/workspace/all-sessions-route.js +138 -0
- package/dist/server/server/workspace/session-openable.d.ts +16 -0
- package/dist/server/server/workspace/session-openable.js +48 -0
- package/dist/server/server/workspace/sessions-route.d.ts +15 -0
- package/dist/server/server/workspace/sessions-route.js +108 -0
- package/dist/server/server/workspace/sessions-search-route.d.ts +68 -0
- package/dist/server/server/workspace/sessions-search-route.js +203 -0
- package/dist/server/server/workspace-archive-service.d.ts +65 -0
- package/dist/server/server/workspace-archive-service.js +229 -0
- package/dist/server/server/workspace-auto-name.d.ts +55 -0
- package/dist/server/server/workspace-auto-name.js +128 -0
- package/dist/server/server/workspace-bootstrap-dedupe.d.ts +34 -0
- package/dist/server/server/workspace-bootstrap-dedupe.js +23 -0
- package/dist/server/server/workspace-directory.d.ts +93 -0
- package/dist/server/server/workspace-directory.js +422 -0
- package/dist/server/server/workspace-git-metadata.d.ts +24 -0
- package/dist/server/server/workspace-git-metadata.js +55 -0
- package/dist/server/server/workspace-git-service.d.ts +257 -0
- package/dist/server/server/workspace-git-service.js +1386 -0
- package/dist/server/server/workspace-reconciliation-service.d.ts +57 -0
- package/dist/server/server/workspace-reconciliation-service.js +278 -0
- package/dist/server/server/workspace-registry-bootstrap.d.ts +13 -0
- package/dist/server/server/workspace-registry-bootstrap.js +121 -0
- package/dist/server/server/workspace-registry-model.d.ts +55 -0
- package/dist/server/server/workspace-registry-model.js +190 -0
- package/dist/server/server/workspace-registry.d.ts +117 -0
- package/dist/server/server/workspace-registry.js +194 -0
- package/dist/server/server/workspace-script-runtime-store.d.ts +28 -0
- package/dist/server/server/workspace-script-runtime-store.js +78 -0
- package/dist/server/server/workspace-service-env.d.ts +18 -0
- package/dist/server/server/workspace-service-env.js +85 -0
- package/dist/server/server/workspace-service-port-registry.d.ts +19 -0
- package/dist/server/server/workspace-service-port-registry.js +59 -0
- package/dist/server/server/worktree/commands.d.ts +55 -0
- package/dist/server/server/worktree/commands.js +107 -0
- package/dist/server/server/worktree-bootstrap.d.ts +76 -0
- package/dist/server/server/worktree-bootstrap.js +720 -0
- package/dist/server/server/worktree-branch-name-generator.d.ts +35 -0
- package/dist/server/server/worktree-branch-name-generator.js +91 -0
- package/dist/server/server/worktree-core.d.ts +31 -0
- package/dist/server/server/worktree-core.js +105 -0
- package/dist/server/server/worktree-errors.d.ts +12 -0
- package/dist/server/server/worktree-errors.js +28 -0
- package/dist/server/server/worktree-session.d.ts +152 -0
- package/dist/server/server/worktree-session.js +466 -0
- package/dist/server/services/github-service.d.ts +337 -0
- package/dist/server/services/github-service.js +2101 -0
- package/dist/server/services/quota-fetcher/manifest.d.ts +4 -0
- package/dist/server/services/quota-fetcher/manifest.js +52 -0
- package/dist/server/services/quota-fetcher/provider.d.ts +17 -0
- package/dist/server/services/quota-fetcher/provider.js +2 -0
- package/dist/server/services/quota-fetcher/providers/claude.d.ts +26 -0
- package/dist/server/services/quota-fetcher/providers/claude.js +217 -0
- package/dist/server/services/quota-fetcher/providers/codex.d.ts +23 -0
- package/dist/server/services/quota-fetcher/providers/codex.js +211 -0
- package/dist/server/services/quota-fetcher/providers/copilot.d.ts +17 -0
- package/dist/server/services/quota-fetcher/providers/copilot.js +75 -0
- package/dist/server/services/quota-fetcher/providers/cursor.d.ts +17 -0
- package/dist/server/services/quota-fetcher/providers/cursor.js +123 -0
- package/dist/server/services/quota-fetcher/providers/grok.d.ts +18 -0
- package/dist/server/services/quota-fetcher/providers/grok.js +89 -0
- package/dist/server/services/quota-fetcher/providers/kimi.d.ts +20 -0
- package/dist/server/services/quota-fetcher/providers/kimi.js +89 -0
- package/dist/server/services/quota-fetcher/providers/minimax.d.ts +29 -0
- package/dist/server/services/quota-fetcher/providers/minimax.js +227 -0
- package/dist/server/services/quota-fetcher/providers/zai.d.ts +17 -0
- package/dist/server/services/quota-fetcher/providers/zai.js +58 -0
- package/dist/server/services/quota-fetcher/service.d.ts +28 -0
- package/dist/server/services/quota-fetcher/service.js +58 -0
- package/dist/server/services/quota-fetcher/usage.d.ts +22 -0
- package/dist/server/services/quota-fetcher/usage.js +49 -0
- package/dist/server/terminal/activity/terminal-activity-tracker.d.ts +20 -0
- package/dist/server/terminal/activity/terminal-activity-tracker.js +59 -0
- package/dist/server/terminal/agent-hooks/agent-hook-installer.d.ts +62 -0
- package/dist/server/terminal/agent-hooks/agent-hook-installer.js +117 -0
- package/dist/server/terminal/agent-hooks/claude/claude-settings.d.ts +7 -0
- package/dist/server/terminal/agent-hooks/claude/claude-settings.js +88 -0
- package/dist/server/terminal/agent-hooks/claude/claude.d.ts +4 -0
- package/dist/server/terminal/agent-hooks/claude/claude.js +47 -0
- package/dist/server/terminal/agent-hooks/codex/codex-settings.d.ts +7 -0
- package/dist/server/terminal/agent-hooks/codex/codex-settings.js +99 -0
- package/dist/server/terminal/agent-hooks/codex/codex.d.ts +4 -0
- package/dist/server/terminal/agent-hooks/codex/codex.js +30 -0
- package/dist/server/terminal/agent-hooks/opencode/opencode-plugin.d.ts +4 -0
- package/dist/server/terminal/agent-hooks/opencode/opencode-plugin.js +46 -0
- package/dist/server/terminal/agent-hooks/opencode/opencode.d.ts +3 -0
- package/dist/server/terminal/agent-hooks/opencode/opencode.js +23 -0
- package/dist/server/terminal/agent-hooks/provider-registry.d.ts +24 -0
- package/dist/server/terminal/agent-hooks/provider-registry.js +36 -0
- package/dist/server/terminal/agent-hooks/terminal-agent-hook-setting.d.ts +10 -0
- package/dist/server/terminal/agent-hooks/terminal-agent-hook-setting.js +26 -0
- package/dist/server/terminal/shell-integration/zsh/.zshenv +17 -0
- package/dist/server/terminal/shell-integration/zsh/paseo-integration.zsh +32 -0
- package/dist/server/terminal/terminal-capture.d.ts +12 -0
- package/dist/server/terminal/terminal-capture.js +43 -0
- package/dist/server/terminal/terminal-manager-factory.d.ts +6 -0
- package/dist/server/terminal/terminal-manager-factory.js +5 -0
- package/dist/server/terminal/terminal-manager.d.ts +78 -0
- package/dist/server/terminal/terminal-manager.js +319 -0
- package/dist/server/terminal/terminal-output-coalescer.d.ts +34 -0
- package/dist/server/terminal/terminal-output-coalescer.js +73 -0
- package/dist/server/terminal/terminal-restore.d.ts +18 -0
- package/dist/server/terminal/terminal-restore.js +52 -0
- package/dist/server/terminal/terminal-session-controller.d.ts +85 -0
- package/dist/server/terminal/terminal-session-controller.js +819 -0
- package/dist/server/terminal/terminal-ts-loader.mjs +20 -0
- package/dist/server/terminal/terminal-worker-process.d.ts +2 -0
- package/dist/server/terminal/terminal-worker-process.js +304 -0
- package/dist/server/terminal/terminal-worker-protocol.d.ts +119 -0
- package/dist/server/terminal/terminal-worker-protocol.js +2 -0
- package/dist/server/terminal/terminal.d.ts +151 -0
- package/dist/server/terminal/terminal.js +1161 -0
- package/dist/server/terminal/worker-terminal-manager.d.ts +20 -0
- package/dist/server/terminal/worker-terminal-manager.js +688 -0
- package/dist/server/utils/build-metadata-prompt.d.ts +19 -0
- package/dist/server/utils/build-metadata-prompt.js +29 -0
- package/dist/server/utils/checkout-git.d.ts +253 -0
- package/dist/server/utils/checkout-git.js +2238 -0
- package/dist/server/utils/directory-suggestions.d.ts +26 -0
- package/dist/server/utils/directory-suggestions.js +830 -0
- package/dist/server/utils/git-rev-parse-path.d.ts +3 -0
- package/dist/server/utils/git-rev-parse-path.js +21 -0
- package/dist/server/utils/github-remote.d.ts +9 -0
- package/dist/server/utils/github-remote.js +62 -0
- package/dist/server/utils/paseo-config-file.d.ts +30 -0
- package/dist/server/utils/paseo-config-file.js +90 -0
- package/dist/server/utils/path.d.ts +18 -0
- package/dist/server/utils/path.js +123 -0
- package/dist/server/utils/project-icon.d.ts +39 -0
- package/dist/server/utils/project-icon.js +364 -0
- package/dist/server/utils/promise-timeout.d.ts +9 -0
- package/dist/server/utils/promise-timeout.js +25 -0
- package/dist/server/utils/run-git-command.d.ts +37 -0
- package/dist/server/utils/run-git-command.js +232 -0
- package/dist/server/utils/spawn.d.ts +33 -0
- package/dist/server/utils/spawn.js +71 -0
- package/dist/server/utils/string-command-shell.d.ts +10 -0
- package/dist/server/utils/string-command-shell.js +21 -0
- package/dist/server/utils/tree-kill.d.ts +18 -0
- package/dist/server/utils/tree-kill.js +77 -0
- package/dist/server/utils/windows-command.d.ts +15 -0
- package/dist/server/utils/windows-command.js +41 -0
- package/dist/server/utils/worktree-metadata.d.ts +39 -0
- package/dist/server/utils/worktree-metadata.js +174 -0
- package/dist/server/utils/worktree.d.ts +205 -0
- package/dist/server/utils/worktree.js +1119 -0
- package/dist/server/web-ui/_expo/static/css/xterm-3bb1704bf6cb0876640973dc0244b4cb.css +1 -0
- package/dist/server/web-ui/_expo/static/css/xterm-3bb1704bf6cb0876640973dc0244b4cb.css.br +0 -0
- package/dist/server/web-ui/_expo/static/css/xterm-3bb1704bf6cb0876640973dc0244b4cb.css.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/desktop-attachment-bridge-127b8d280bb901a810b0c9fa094d4945.js +5 -0
- package/dist/server/web-ui/_expo/static/js/web/desktop-attachment-bridge-127b8d280bb901a810b0c9fa094d4945.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/desktop-attachment-bridge-127b8d280bb901a810b0c9fa094d4945.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/desktop-attachment-bridge-127b8d280bb901a810b0c9fa094d4945.js.map.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/desktop-attachment-bridge-127b8d280bb901a810b0c9fa094d4945.js.map.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/desktop-attachment-store-0e6ed782245f4dda6e0a73171a133d45.js +3 -0
- package/dist/server/web-ui/_expo/static/js/web/desktop-attachment-store-0e6ed782245f4dda6e0a73171a133d45.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/desktop-attachment-store-0e6ed782245f4dda6e0a73171a133d45.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/desktop-attachment-store-0e6ed782245f4dda6e0a73171a133d45.js.map.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/desktop-attachment-store-0e6ed782245f4dda6e0a73171a133d45.js.map.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/index-b31c4d6fb6383454381e43410736cb89.js +16533 -0
- package/dist/server/web-ui/_expo/static/js/web/index-b31c4d6fb6383454381e43410736cb89.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/index-b31c4d6fb6383454381e43410736cb89.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/index-b31c4d6fb6383454381e43410736cb89.js.map.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/index-b31c4d6fb6383454381e43410736cb89.js.map.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/indexeddb-attachment-store-0d03551c4ea3780f5b81db6a7aebb017.js +3 -0
- package/dist/server/web-ui/_expo/static/js/web/indexeddb-attachment-store-0d03551c4ea3780f5b81db6a7aebb017.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/indexeddb-attachment-store-0d03551c4ea3780f5b81db6a7aebb017.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/indexeddb-attachment-store-0d03551c4ea3780f5b81db6a7aebb017.js.map.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/indexeddb-attachment-store-0d03551c4ea3780f5b81db6a7aebb017.js.map.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/native-file-attachment-store-feda55adc8031781db083743ca73cbc3.js +5 -0
- package/dist/server/web-ui/_expo/static/js/web/native-file-attachment-store-feda55adc8031781db083743ca73cbc3.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/native-file-attachment-store-feda55adc8031781db083743ca73cbc3.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/native-file-attachment-store-feda55adc8031781db083743ca73cbc3.js.map.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/native-file-attachment-store-feda55adc8031781db083743ca73cbc3.js.map.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/profiler-593c9481537cb12f4b6c17ef48bcba1c.js +11 -0
- package/dist/server/web-ui/_expo/static/js/web/profiler-593c9481537cb12f4b6c17ef48bcba1c.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/profiler-593c9481537cb12f4b6c17ef48bcba1c.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/profiler-593c9481537cb12f4b6c17ef48bcba1c.js.map.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/profiler-593c9481537cb12f4b6c17ef48bcba1c.js.map.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/startRecording-533a4fe1acfc37460ac2912610062d3a.js +60 -0
- package/dist/server/web-ui/_expo/static/js/web/startRecording-533a4fe1acfc37460ac2912610062d3a.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/startRecording-533a4fe1acfc37460ac2912610062d3a.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/startRecording-533a4fe1acfc37460ac2912610062d3a.js.map.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/startRecording-533a4fe1acfc37460ac2912610062d3a.js.map.gz +0 -0
- package/dist/server/web-ui/apple-touch-icon.png +0 -0
- package/dist/server/web-ui/assets/__node_modules/@react-navigation/elements/lib/module/assets/back-icon-mask.0a328cd9c1afd0afe8e3b1ec5165b1b4.png +0 -0
- package/dist/server/web-ui/assets/__node_modules/@react-navigation/elements/lib/module/assets/back-icon.35ba0eaec5a4f5ed12ca16fabeae451d.png +0 -0
- package/dist/server/web-ui/assets/__node_modules/@react-navigation/elements/lib/module/assets/clear-icon.c94f6478e7ae0cdd9f15de1fcb9e5e55.png +0 -0
- package/dist/server/web-ui/assets/__node_modules/@react-navigation/elements/lib/module/assets/clear-icon.c94f6478e7ae0cdd9f15de1fcb9e5e55@2x.png +0 -0
- package/dist/server/web-ui/assets/__node_modules/@react-navigation/elements/lib/module/assets/clear-icon.c94f6478e7ae0cdd9f15de1fcb9e5e55@3x.png +0 -0
- package/dist/server/web-ui/assets/__node_modules/@react-navigation/elements/lib/module/assets/clear-icon.c94f6478e7ae0cdd9f15de1fcb9e5e55@4x.png +0 -0
- package/dist/server/web-ui/assets/__node_modules/@react-navigation/elements/lib/module/assets/close-icon.808e1b1b9b53114ec2838071a7e6daa7.png +0 -0
- package/dist/server/web-ui/assets/__node_modules/@react-navigation/elements/lib/module/assets/close-icon.808e1b1b9b53114ec2838071a7e6daa7@2x.png +0 -0
- package/dist/server/web-ui/assets/__node_modules/@react-navigation/elements/lib/module/assets/close-icon.808e1b1b9b53114ec2838071a7e6daa7@3x.png +0 -0
- package/dist/server/web-ui/assets/__node_modules/@react-navigation/elements/lib/module/assets/close-icon.808e1b1b9b53114ec2838071a7e6daa7@4x.png +0 -0
- package/dist/server/web-ui/assets/__node_modules/@react-navigation/elements/lib/module/assets/search-icon.286d67d3f74808a60a78d3ebf1a5fb57.png +0 -0
- package/dist/server/web-ui/assets/__node_modules/expo-router/assets/arrow_down.017bc6ba3fc25503e5eb5e53826d48a8.png +0 -0
- package/dist/server/web-ui/assets/__node_modules/expo-router/assets/error.d1ea1496f9057eb392d5bbf3732a61b7.png +0 -0
- package/dist/server/web-ui/assets/__node_modules/expo-router/assets/file.19eeb73b9593a38f8e9f418337fc7d10.png +0 -0
- package/dist/server/web-ui/assets/__node_modules/expo-router/assets/forward.d8b800c443b8972542883e0b9de2bdc6.png +0 -0
- package/dist/server/web-ui/assets/__node_modules/expo-router/assets/pkg.ab19f4cbc543357183a20571f68380a3.png +0 -0
- package/dist/server/web-ui/assets/__node_modules/expo-router/assets/sitemap.412dd9275b6b48ad28f5e3d81bb1f626.png +0 -0
- package/dist/server/web-ui/assets/__node_modules/expo-router/assets/unmatched.20e71bdf79e3a97bf55fd9e164041578.png +0 -0
- package/dist/server/web-ui/assets/assets/images/editor-apps/antigravity.6e91a685c33435e0b466a56db86cf141.png +0 -0
- package/dist/server/web-ui/assets/assets/images/editor-apps/cursor.c31d6bce4fe9aadc3fe59962f4c4fcf3.png +0 -0
- package/dist/server/web-ui/assets/assets/images/editor-apps/file-explorer.3e15e8f72c825c85ce336bcb0cdef776.png +0 -0
- package/dist/server/web-ui/assets/assets/images/editor-apps/finder.7f68fc2c475621a672e1be09309d5567.png +0 -0
- package/dist/server/web-ui/assets/assets/images/editor-apps/vscode.832bdb4c685d930f1c864c793703600b.png +0 -0
- package/dist/server/web-ui/assets/assets/images/editor-apps/webstorm.aa5dc2cd8c20cc0a155c4c5c5ab3c5f5.png +0 -0
- package/dist/server/web-ui/assets/assets/images/editor-apps/zed.f3a670b7f9aa226da4fe53fb86f1abbd.png +0 -0
- package/dist/server/web-ui/assets/assets/images/favicon-dark-attention.882b3a27dcb2073e9e31b334f9ed9728.png +0 -0
- package/dist/server/web-ui/assets/assets/images/favicon-dark-running.8112342ff0d39e047a7f8d4fad9402f3.png +0 -0
- package/dist/server/web-ui/assets/assets/images/favicon-dark.8005ed36ac07a5a7c60de25780897bd4.png +0 -0
- package/dist/server/web-ui/assets/assets/images/favicon-light-attention.882b3a27dcb2073e9e31b334f9ed9728.png +0 -0
- package/dist/server/web-ui/assets/assets/images/favicon-light-running.8112342ff0d39e047a7f8d4fad9402f3.png +0 -0
- package/dist/server/web-ui/assets/assets/images/favicon-light.8005ed36ac07a5a7c60de25780897bd4.png +0 -0
- package/dist/server/web-ui/assets/assets/images/notification-icon.3bf81d33ddbf380606bdd248ba83e158.png +0 -0
- package/dist/server/web-ui/favicon.ico +0 -0
- package/dist/server/web-ui/index.html +90 -0
- package/dist/server/web-ui/index.html.br +0 -0
- package/dist/server/web-ui/index.html.gz +0 -0
- package/dist/server/web-ui/manifest.json +27 -0
- package/dist/server/web-ui/manifest.json.br +0 -0
- package/dist/server/web-ui/manifest.json.gz +0 -0
- package/dist/server/web-ui/metadata.json +1 -0
- package/dist/server/web-ui/metadata.json.br +1 -0
- package/dist/server/web-ui/metadata.json.gz +0 -0
- package/dist/server/web-ui/pwa-icon-192.png +0 -0
- package/dist/server/web-ui/pwa-icon-512.png +0 -0
- package/dist/server/web-ui/robots.txt +2 -0
- package/dist/server/web-ui/service-worker.js +87 -0
- package/dist/server/web-ui/service-worker.js.br +0 -0
- package/dist/server/web-ui/service-worker.js.gz +0 -0
- package/dist/src/executable-resolution/executable-resolution.js +118 -0
- package/dist/src/executable-resolution/windows.js +65 -0
- package/dist/src/server/agent/provider-launch-config.js +183 -0
- package/dist/src/server/paseo-env.js +53 -0
- package/dist/src/server/paseo-home.js +19 -0
- package/dist/src/server/persisted-config.js +402 -0
- package/dist/src/server/pid-lock.js +170 -0
- package/dist/src/server/private-files.js +37 -0
- package/dist/src/server/speech/providers/local/sherpa/sherpa-runtime-env.js +84 -0
- package/dist/src/terminal/shell-integration/zsh/.zshenv +17 -0
- package/dist/src/terminal/shell-integration/zsh/paseo-integration.zsh +32 -0
- package/dist/src/utils/spawn.js +71 -0
- package/dist/src/utils/windows-command.js +41 -0
- package/package.json +143 -0
|
@@ -0,0 +1,444 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
import { PARENT_AGENT_ID_LABEL, WORKFLOW_ID_LABEL, WORKFLOW_TASK_ID_LABEL, } from "@hyperdrive.bot/paseo-protocol/agent-labels";
|
|
3
|
+
import { projectWorkflowPhases, projectWorkflowProgress, resolveExecutionLayers, } from "./workflow-progress.js";
|
|
4
|
+
// Re-exported for back-compat: this error used to be declared here before the
|
|
5
|
+
// execution-layer logic moved to `workflow-progress.ts` (Epic 3, Story 3.1).
|
|
6
|
+
export { WorkflowCycleError } from "./workflow-progress.js";
|
|
7
|
+
// Default settle window (ms) for coalescing a burst of child `agent_state` events
|
|
8
|
+
// into ONE projection emit. Mirrors AGENT_STREAM_COALESCE_DEFAULT_WINDOW_MS.
|
|
9
|
+
export const WORKFLOW_PROJECTION_COALESCE_WINDOW_MS = 60;
|
|
10
|
+
/** Thrown when a workflow id resolves to nothing in memory or storage. */
|
|
11
|
+
export class WorkflowNotFoundError extends Error {
|
|
12
|
+
constructor(workflowId) {
|
|
13
|
+
super(`Workflow ${workflowId} not found`);
|
|
14
|
+
this.workflowId = workflowId;
|
|
15
|
+
this.name = "WorkflowNotFoundError";
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
/** Thrown when cancel targets a workflow that has already reached a terminal state. */
|
|
19
|
+
export class WorkflowAlreadyTerminalError extends Error {
|
|
20
|
+
constructor(workflowId, status) {
|
|
21
|
+
super(`Workflow ${workflowId} is already ${status} and cannot be cancelled`);
|
|
22
|
+
this.workflowId = workflowId;
|
|
23
|
+
this.status = status;
|
|
24
|
+
this.name = "WorkflowAlreadyTerminalError";
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
export class WorkflowManager {
|
|
28
|
+
constructor(options) {
|
|
29
|
+
this.workflows = new Map();
|
|
30
|
+
this.subscribers = new Set();
|
|
31
|
+
this.projectionTimers = new Map();
|
|
32
|
+
this.agentManager = options.agentManager;
|
|
33
|
+
this.storage = options.storage;
|
|
34
|
+
this.coalesceWindowMs = options.coalesceWindowMs ?? WORKFLOW_PROJECTION_COALESCE_WINDOW_MS;
|
|
35
|
+
this.timers = options.timers ?? { setTimeout, clearTimeout };
|
|
36
|
+
// Subscribe to child lifecycle changes so progress is projected live. We only
|
|
37
|
+
// care about FUTURE state — `replayState: false` skips the synchronous replay of
|
|
38
|
+
// every existing agent at construction time.
|
|
39
|
+
this.unsubscribeAgents = this.agentManager.subscribe((event) => this.onAgentEvent(event), {
|
|
40
|
+
replayState: false,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Detach the AgentManager subscription and cancel any pending projection timers.
|
|
45
|
+
* Idempotent; safe to call on daemon shutdown.
|
|
46
|
+
*/
|
|
47
|
+
dispose() {
|
|
48
|
+
this.unsubscribeAgents();
|
|
49
|
+
for (const timer of this.projectionTimers.values()) {
|
|
50
|
+
this.timers.clearTimeout(timer);
|
|
51
|
+
}
|
|
52
|
+
this.projectionTimers.clear();
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Build a workflow snapshot from a task graph, persist it (Story 1.1 storage),
|
|
56
|
+
* register it in memory, emit to subscribers, and return the snapshot. No process
|
|
57
|
+
* is spawned here — that happens in {@link startWorkflow}/{@link spawnPhaseAgent}.
|
|
58
|
+
*/
|
|
59
|
+
async createWorkflow(input) {
|
|
60
|
+
const id = input.id ?? randomUUID();
|
|
61
|
+
const now = new Date().toISOString();
|
|
62
|
+
const layers = resolveExecutionLayers(input.graph);
|
|
63
|
+
const phases = layers.map((layer, index) => ({
|
|
64
|
+
id: `layer-${index + 1}`,
|
|
65
|
+
title: `Layer ${index + 1}`,
|
|
66
|
+
status: "pending",
|
|
67
|
+
storyCount: layer.length,
|
|
68
|
+
completedStoryCount: 0,
|
|
69
|
+
}));
|
|
70
|
+
const snapshot = {
|
|
71
|
+
id,
|
|
72
|
+
cwd: input.cwd,
|
|
73
|
+
status: "pending",
|
|
74
|
+
title: input.title ?? input.graph.goal,
|
|
75
|
+
labels: input.labels ?? {},
|
|
76
|
+
phases,
|
|
77
|
+
childAgentIds: [],
|
|
78
|
+
totalStoryCount: input.graph.tasks.length,
|
|
79
|
+
completedStoryCount: 0,
|
|
80
|
+
createdAt: now,
|
|
81
|
+
updatedAt: now,
|
|
82
|
+
};
|
|
83
|
+
await this.storage.saveWorkflow(snapshot);
|
|
84
|
+
this.workflows.set(id, {
|
|
85
|
+
snapshot,
|
|
86
|
+
graph: input.graph,
|
|
87
|
+
baseConfig: input.baseConfig,
|
|
88
|
+
parentAgentId: input.parentAgentId,
|
|
89
|
+
terminalOutcomes: new Map(),
|
|
90
|
+
});
|
|
91
|
+
this.emit(snapshot);
|
|
92
|
+
return snapshot;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* List every known workflow — storage records overlaid with in-memory snapshots.
|
|
96
|
+
* Live workflows are returned with progress PROJECTED from current child state
|
|
97
|
+
* (Story 3.1), so list surfaces show the same live counts as the detail/SSE views.
|
|
98
|
+
*/
|
|
99
|
+
async listWorkflows() {
|
|
100
|
+
const byId = new Map();
|
|
101
|
+
for (const record of await this.storage.listWorkflows()) {
|
|
102
|
+
byId.set(record.id, record);
|
|
103
|
+
}
|
|
104
|
+
for (const live of this.workflows.values()) {
|
|
105
|
+
byId.set(live.snapshot.id, this.projectSnapshot(live));
|
|
106
|
+
}
|
|
107
|
+
return Array.from(byId.values());
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Resolve a single workflow. A hard miss throws {@link WorkflowNotFoundError}.
|
|
111
|
+
* For a live workflow the returned snapshot carries progress PROJECTED from the
|
|
112
|
+
* current child-agent states — the persisted counter is never trusted as truth.
|
|
113
|
+
*/
|
|
114
|
+
async getWorkflow(id) {
|
|
115
|
+
const live = this.workflows.get(id);
|
|
116
|
+
if (live) {
|
|
117
|
+
return this.projectSnapshot(live);
|
|
118
|
+
}
|
|
119
|
+
const stored = await this.storage.loadWorkflow(id);
|
|
120
|
+
if (!stored) {
|
|
121
|
+
throw new WorkflowNotFoundError(id);
|
|
122
|
+
}
|
|
123
|
+
return stored;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Cancel a workflow: flip it to the terminal `cancelled` status, persist, and
|
|
127
|
+
* emit. Resolves a live OR storage-only workflow. Throws
|
|
128
|
+
* {@link WorkflowNotFoundError} for an unknown id and
|
|
129
|
+
* {@link WorkflowAlreadyTerminalError} when it has already finished. Child-agent
|
|
130
|
+
* teardown is the separate concern of {@link cascadeArchiveChildren}.
|
|
131
|
+
*/
|
|
132
|
+
async cancelWorkflow(workflowId) {
|
|
133
|
+
const live = this.workflows.get(workflowId);
|
|
134
|
+
const current = live?.snapshot ?? (await this.storage.loadWorkflow(workflowId));
|
|
135
|
+
if (!current) {
|
|
136
|
+
throw new WorkflowNotFoundError(workflowId);
|
|
137
|
+
}
|
|
138
|
+
if (isTerminalStatus(current.status)) {
|
|
139
|
+
throw new WorkflowAlreadyTerminalError(workflowId, current.status);
|
|
140
|
+
}
|
|
141
|
+
const now = new Date().toISOString();
|
|
142
|
+
const cancelled = {
|
|
143
|
+
...current,
|
|
144
|
+
status: "cancelled",
|
|
145
|
+
completedAt: now,
|
|
146
|
+
updatedAt: now,
|
|
147
|
+
};
|
|
148
|
+
if (live) {
|
|
149
|
+
live.snapshot = cancelled;
|
|
150
|
+
}
|
|
151
|
+
await this.storage.saveWorkflow(cancelled);
|
|
152
|
+
this.emit(cancelled);
|
|
153
|
+
return cancelled;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Return the workflow's recorded lifecycle events, derived deterministically
|
|
157
|
+
* from its snapshot's timestamps (created/started/completed/archived). A
|
|
158
|
+
* one-shot read — continuous event push is Epic 2. Throws
|
|
159
|
+
* {@link WorkflowNotFoundError} for an unknown id.
|
|
160
|
+
*/
|
|
161
|
+
async getWorkflowEvents(workflowId) {
|
|
162
|
+
const snapshot = await this.getWorkflow(workflowId);
|
|
163
|
+
return projectWorkflowEvents(snapshot);
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Drive a workflow to completion of its spawn phase: transition pending -> running,
|
|
167
|
+
* then walk `executionLayers` sequentially, spawning each layer's task agents (in
|
|
168
|
+
* task order). Returns the updated snapshot.
|
|
169
|
+
*/
|
|
170
|
+
async startWorkflow(workflowId) {
|
|
171
|
+
const live = this.requireLive(workflowId);
|
|
172
|
+
const startedAt = new Date().toISOString();
|
|
173
|
+
live.snapshot = {
|
|
174
|
+
...live.snapshot,
|
|
175
|
+
status: "running",
|
|
176
|
+
startedAt,
|
|
177
|
+
updatedAt: startedAt,
|
|
178
|
+
};
|
|
179
|
+
await this.persist(live);
|
|
180
|
+
this.emit(live.snapshot);
|
|
181
|
+
const layers = resolveExecutionLayers(live.graph);
|
|
182
|
+
for (const layer of layers) {
|
|
183
|
+
for (const taskId of layer) {
|
|
184
|
+
const node = live.graph.tasks.find((task) => task.id === taskId);
|
|
185
|
+
if (!node) {
|
|
186
|
+
throw new Error(`Task ${taskId} not found in workflow ${workflowId} graph`);
|
|
187
|
+
}
|
|
188
|
+
await this.spawnPhaseAgent({ workflowId, node, config: live.baseConfig });
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
return this.requireLive(workflowId).snapshot;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Spawn a single child agent for one task node via the public
|
|
195
|
+
* `agentManager.createAgent` surface, tagging it with WORKFLOW_ID_LABEL (and
|
|
196
|
+
* PARENT_AGENT_ID_LABEL when the workflow is owned by a parent agent). Records the
|
|
197
|
+
* child id on the snapshot and persists. Never spawns a process directly.
|
|
198
|
+
*/
|
|
199
|
+
async spawnPhaseAgent(args) {
|
|
200
|
+
const { workflowId, node, config } = args;
|
|
201
|
+
const live = this.requireLive(workflowId);
|
|
202
|
+
const labels = {
|
|
203
|
+
...live.snapshot.labels,
|
|
204
|
+
[WORKFLOW_ID_LABEL]: workflowId,
|
|
205
|
+
// Story 3.1 — map this child to its specific story node so the live progress
|
|
206
|
+
// projection can derive completion/phase/gate from real child lifecycle state.
|
|
207
|
+
[WORKFLOW_TASK_ID_LABEL]: node.id,
|
|
208
|
+
};
|
|
209
|
+
if (live.parentAgentId) {
|
|
210
|
+
labels[PARENT_AGENT_ID_LABEL] = live.parentAgentId;
|
|
211
|
+
}
|
|
212
|
+
const agent = await this.agentManager.createAgent(config, undefined, {
|
|
213
|
+
labels,
|
|
214
|
+
initialPrompt: node.prompt,
|
|
215
|
+
initialTitle: node.title,
|
|
216
|
+
});
|
|
217
|
+
live.snapshot = {
|
|
218
|
+
...live.snapshot,
|
|
219
|
+
childAgentIds: [...live.snapshot.childAgentIds, agent.id],
|
|
220
|
+
updatedAt: new Date().toISOString(),
|
|
221
|
+
};
|
|
222
|
+
await this.persist(live);
|
|
223
|
+
this.emit(live.snapshot);
|
|
224
|
+
return agent;
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Archive every child agent tagged to the workflow — no orphans — mirroring
|
|
228
|
+
* `AgentManager.cascadeArchiveChildren`, but keyed on WORKFLOW_ID_LABEL and using
|
|
229
|
+
* only the public archive surface (`listAgents` + `archiveAgent`). `archiveAgent`
|
|
230
|
+
* requires a live agent, so we iterate the live set exactly as the original guards
|
|
231
|
+
* on `agents.has(id)`. The workflow snapshot itself is marked archived.
|
|
232
|
+
*/
|
|
233
|
+
async cascadeArchiveChildren(workflowId) {
|
|
234
|
+
for (const agent of this.agentManager.listAgents()) {
|
|
235
|
+
if (agent.labels?.[WORKFLOW_ID_LABEL] !== workflowId) {
|
|
236
|
+
continue;
|
|
237
|
+
}
|
|
238
|
+
await this.agentManager.archiveAgent(agent.id);
|
|
239
|
+
}
|
|
240
|
+
const live = this.workflows.get(workflowId);
|
|
241
|
+
if (live) {
|
|
242
|
+
const archivedAt = new Date().toISOString();
|
|
243
|
+
const status = terminalStatusForArchive(live.snapshot.status);
|
|
244
|
+
live.snapshot = { ...live.snapshot, status, archivedAt, updatedAt: archivedAt };
|
|
245
|
+
await this.persist(live);
|
|
246
|
+
this.emit(live.snapshot);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Number of live snapshot subscribers. Read-only observability — used by the
|
|
251
|
+
* SSE route's leak-guard test (Story 2.1) to assert that a disconnected client
|
|
252
|
+
* unsubscribes back to baseline. Additive; does not affect emit behaviour.
|
|
253
|
+
*/
|
|
254
|
+
get subscriberCount() {
|
|
255
|
+
return this.subscribers.size;
|
|
256
|
+
}
|
|
257
|
+
/** Subscribe to workflow snapshot changes. Returns an unsubscribe function. */
|
|
258
|
+
subscribe(subscriber) {
|
|
259
|
+
this.subscribers.add(subscriber);
|
|
260
|
+
return () => {
|
|
261
|
+
this.subscribers.delete(subscriber);
|
|
262
|
+
};
|
|
263
|
+
}
|
|
264
|
+
emit(workflow) {
|
|
265
|
+
for (const subscriber of this.subscribers) {
|
|
266
|
+
try {
|
|
267
|
+
subscriber({ workflow });
|
|
268
|
+
}
|
|
269
|
+
catch {
|
|
270
|
+
// Subscriber error isolation — one bad listener never blocks the others.
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* AgentManager subscription handler (Story 3.1). Reacts only to child state
|
|
276
|
+
* changes for an agent tagged to a tracked, non-terminal workflow; schedules a
|
|
277
|
+
* coalesced projection emit for that workflow.
|
|
278
|
+
*/
|
|
279
|
+
onAgentEvent(event) {
|
|
280
|
+
if (event.type !== "agent_state") {
|
|
281
|
+
return;
|
|
282
|
+
}
|
|
283
|
+
const workflowId = event.agent.labels?.[WORKFLOW_ID_LABEL];
|
|
284
|
+
if (workflowId === undefined) {
|
|
285
|
+
return;
|
|
286
|
+
}
|
|
287
|
+
const live = this.workflows.get(workflowId);
|
|
288
|
+
if (!live || isTerminalStatus(live.snapshot.status)) {
|
|
289
|
+
return;
|
|
290
|
+
}
|
|
291
|
+
// A child that reaches a terminal lifecycle is DELETED from AgentManager's live map
|
|
292
|
+
// (prepareAgentForClosure), so the live projection would never witness its completion.
|
|
293
|
+
// Record the terminal outcome now -- keyed by task, while the event still carries the
|
|
294
|
+
// closed agent -- so projectSnapshot counts it even after the agent is gone.
|
|
295
|
+
const taskId = event.agent.labels?.[WORKFLOW_TASK_ID_LABEL];
|
|
296
|
+
if (taskId !== undefined) {
|
|
297
|
+
if (event.agent.lifecycle === "closed") {
|
|
298
|
+
live.terminalOutcomes.set(taskId, event.agent.lastError ? "failed" : "success");
|
|
299
|
+
}
|
|
300
|
+
else if (event.agent.lifecycle === "error") {
|
|
301
|
+
live.terminalOutcomes.set(taskId, "failed");
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
this.scheduleProjectionEmit(workflowId);
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* Coalesce a burst of child updates into ONE projection emit per settled window
|
|
308
|
+
* (the `agent-stream-coalescer.ts` discipline). The first event in a burst arms a
|
|
309
|
+
* timer; subsequent events within the window are absorbed. On fire, the current
|
|
310
|
+
* child states are projected and the updated snapshot is emitted through the
|
|
311
|
+
* existing `workflow.*` / HTTP / SSE channels — no new transport, no polling.
|
|
312
|
+
*/
|
|
313
|
+
scheduleProjectionEmit(workflowId) {
|
|
314
|
+
if (this.projectionTimers.has(workflowId)) {
|
|
315
|
+
return;
|
|
316
|
+
}
|
|
317
|
+
const timer = this.timers.setTimeout(() => {
|
|
318
|
+
this.projectionTimers.delete(workflowId);
|
|
319
|
+
const live = this.workflows.get(workflowId);
|
|
320
|
+
if (!live) {
|
|
321
|
+
return;
|
|
322
|
+
}
|
|
323
|
+
this.emit(this.projectSnapshot(live));
|
|
324
|
+
}, this.coalesceWindowMs);
|
|
325
|
+
timer.unref?.();
|
|
326
|
+
this.projectionTimers.set(workflowId, timer);
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* Overlay LIVE derived progress onto a workflow's base snapshot. Counts, per-phase
|
|
330
|
+
* gate status, and per-phase completion are recomputed from the current child-agent
|
|
331
|
+
* states — never read back from the persisted snapshot. Terminal workflows are
|
|
332
|
+
* returned unchanged (nothing left to project). The base snapshot's lifecycle
|
|
333
|
+
* fields (status, childAgentIds, timestamps, id/title) are preserved verbatim; only
|
|
334
|
+
* derived progress fields are overlaid, so this stays back-compat and additive.
|
|
335
|
+
*/
|
|
336
|
+
projectSnapshot(live) {
|
|
337
|
+
const base = live.snapshot;
|
|
338
|
+
if (isTerminalStatus(base.status)) {
|
|
339
|
+
return base;
|
|
340
|
+
}
|
|
341
|
+
const children = this.agentManager
|
|
342
|
+
.listAgents()
|
|
343
|
+
.filter((agent) => agent.labels?.[WORKFLOW_ID_LABEL] === base.id);
|
|
344
|
+
const projectedPhases = projectWorkflowPhases({
|
|
345
|
+
children,
|
|
346
|
+
taskGraph: live.graph,
|
|
347
|
+
terminalOutcomes: live.terminalOutcomes,
|
|
348
|
+
});
|
|
349
|
+
const progress = projectWorkflowProgress({
|
|
350
|
+
children,
|
|
351
|
+
taskGraph: live.graph,
|
|
352
|
+
terminalOutcomes: live.terminalOutcomes,
|
|
353
|
+
});
|
|
354
|
+
// Overlay by index — preserve each phase's persisted id/title, refresh its gate.
|
|
355
|
+
const phases = base.phases.map((phase, index) => {
|
|
356
|
+
const projected = projectedPhases[index];
|
|
357
|
+
if (!projected) {
|
|
358
|
+
return phase;
|
|
359
|
+
}
|
|
360
|
+
return {
|
|
361
|
+
...phase,
|
|
362
|
+
status: projected.status,
|
|
363
|
+
storyCount: projected.storyCount,
|
|
364
|
+
completedStoryCount: projected.completedStoryCount,
|
|
365
|
+
};
|
|
366
|
+
});
|
|
367
|
+
return {
|
|
368
|
+
...base,
|
|
369
|
+
phases,
|
|
370
|
+
totalStoryCount: progress.totalStoryCount,
|
|
371
|
+
completedStoryCount: progress.completedStoryCount,
|
|
372
|
+
};
|
|
373
|
+
}
|
|
374
|
+
requireLive(workflowId) {
|
|
375
|
+
const live = this.workflows.get(workflowId);
|
|
376
|
+
if (!live) {
|
|
377
|
+
throw new WorkflowNotFoundError(workflowId);
|
|
378
|
+
}
|
|
379
|
+
return live;
|
|
380
|
+
}
|
|
381
|
+
async persist(live) {
|
|
382
|
+
await this.storage.saveWorkflow(live.snapshot);
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
/** A workflow in a terminal state can no longer be cancelled. */
|
|
386
|
+
function isTerminalStatus(status) {
|
|
387
|
+
return status === "completed" || status === "failed" || status === "cancelled";
|
|
388
|
+
}
|
|
389
|
+
/** The lifecycle-event type that corresponds to a terminal status. */
|
|
390
|
+
function terminalEventType(status) {
|
|
391
|
+
switch (status) {
|
|
392
|
+
case "failed":
|
|
393
|
+
return "failed";
|
|
394
|
+
case "cancelled":
|
|
395
|
+
return "cancelled";
|
|
396
|
+
// `completedAt` is only ever stamped alongside a terminal status, so the
|
|
397
|
+
// remaining cases (completed / pending / running) all map to "completed".
|
|
398
|
+
default:
|
|
399
|
+
return "completed";
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
/**
|
|
403
|
+
* Derive the ordered lifecycle-event list from a snapshot's timestamps. Pure and
|
|
404
|
+
* deterministic — the same snapshot always yields the same events.
|
|
405
|
+
*/
|
|
406
|
+
function projectWorkflowEvents(snapshot) {
|
|
407
|
+
const events = [
|
|
408
|
+
{ workflowId: snapshot.id, type: "created", status: "pending", at: snapshot.createdAt },
|
|
409
|
+
];
|
|
410
|
+
if (snapshot.startedAt) {
|
|
411
|
+
events.push({
|
|
412
|
+
workflowId: snapshot.id,
|
|
413
|
+
type: "started",
|
|
414
|
+
status: "running",
|
|
415
|
+
at: snapshot.startedAt,
|
|
416
|
+
});
|
|
417
|
+
}
|
|
418
|
+
if (snapshot.completedAt) {
|
|
419
|
+
events.push({
|
|
420
|
+
workflowId: snapshot.id,
|
|
421
|
+
type: terminalEventType(snapshot.status),
|
|
422
|
+
status: snapshot.status,
|
|
423
|
+
at: snapshot.completedAt,
|
|
424
|
+
});
|
|
425
|
+
}
|
|
426
|
+
if (snapshot.archivedAt) {
|
|
427
|
+
events.push({
|
|
428
|
+
workflowId: snapshot.id,
|
|
429
|
+
type: "archived",
|
|
430
|
+
status: snapshot.status,
|
|
431
|
+
at: snapshot.archivedAt,
|
|
432
|
+
});
|
|
433
|
+
}
|
|
434
|
+
return events;
|
|
435
|
+
}
|
|
436
|
+
/** Map a workflow status to its terminal tag when the workflow is archived. */
|
|
437
|
+
function terminalStatusForArchive(status) {
|
|
438
|
+
if (status === "completed" || status === "failed") {
|
|
439
|
+
return status;
|
|
440
|
+
}
|
|
441
|
+
// pending / running / cancelled -> a workflow torn down before finishing is cancelled.
|
|
442
|
+
return "cancelled";
|
|
443
|
+
}
|
|
444
|
+
//# sourceMappingURL=workflow-manager.js.map
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import type { WorkflowSnapshot } from "@hyperdrive.bot/paseo-protocol/messages";
|
|
2
|
+
import type { ManagedAgent } from "../agent/agent-manager.js";
|
|
3
|
+
import type { TaskGraph } from "./workflow-manager.js";
|
|
4
|
+
/**
|
|
5
|
+
* workflow-progress — Epic 3, Story 3.1.
|
|
6
|
+
*
|
|
7
|
+
* Live workflow progress is DERIVED, never stored. This module owns the single pure
|
|
8
|
+
* computation that turns the *current set* of child-agent states + the workflow's
|
|
9
|
+
* task graph into `{ completedStoryCount, totalStoryCount, phase, gateStatus }`.
|
|
10
|
+
*
|
|
11
|
+
* Why a pure function of the current set (not a fold over per-event deltas):
|
|
12
|
+
* - **Order-independent.** Counting the present states means arrival order cannot
|
|
13
|
+
* change the result — feeding the same children shuffled yields a deeply-equal
|
|
14
|
+
* projection. This is what makes "derived, not stored" testable as an equality.
|
|
15
|
+
* - **Monotonic-correct.** `completedStoryCount` only moves up as more children reach
|
|
16
|
+
* terminal-success; it never flickers backwards under out-of-order arrival.
|
|
17
|
+
* - **Recompute-on-load safe.** After a daemon restart the projection is rebuilt from
|
|
18
|
+
* whatever child states exist now; no persisted counter is trusted as truth.
|
|
19
|
+
*
|
|
20
|
+
* Determinism rules (mirroring `docs/architecture.md` timeline discipline):
|
|
21
|
+
* - NEVER call `Date.now()` / `new Date()` here. Recency ordering uses the canonical
|
|
22
|
+
* daemon-owned `ManagedAgent.updatedAt`, with the agent id as a stable tiebreak so
|
|
23
|
+
* equal timestamps still resolve order-independently.
|
|
24
|
+
* - No I/O, no module-level mutable state, no snapshot reads.
|
|
25
|
+
*
|
|
26
|
+
* `WorkflowCycleError` + the execution-layer resolution live here (rather than in
|
|
27
|
+
* `workflow-manager.ts`) so the manager and the projection share ONE layer derivation
|
|
28
|
+
* — guaranteeing the phase order the manager persists matches the phases this module
|
|
29
|
+
* projects. The manager imports both back from here; the only edge in the other
|
|
30
|
+
* direction is the type-only `TaskGraph`/`TaskNode` import above (erased at runtime,
|
|
31
|
+
* so there is no runtime cycle).
|
|
32
|
+
*/
|
|
33
|
+
type WorkflowStatus = WorkflowSnapshot["status"];
|
|
34
|
+
/** The four derived progress values for a workflow, computed from child states. */
|
|
35
|
+
export interface WorkflowProgress {
|
|
36
|
+
/** Story nodes whose mapped child reached terminal-success. Never exceeds total. */
|
|
37
|
+
completedStoryCount: number;
|
|
38
|
+
/** Total number of story (task) nodes in the run. */
|
|
39
|
+
totalStoryCount: number;
|
|
40
|
+
/** Id of the current phase (earliest phase with a non-done story); null when all done. */
|
|
41
|
+
phase: string | null;
|
|
42
|
+
/** Gate status of the current phase, mapped onto WorkflowStatus; null for an empty graph. */
|
|
43
|
+
gateStatus: WorkflowStatus | null;
|
|
44
|
+
}
|
|
45
|
+
/** Per-phase projected state — used by the manager to overlay the wire `phases[]`. */
|
|
46
|
+
export interface ProjectedPhase {
|
|
47
|
+
/** Stable phase id, matching the manager's `layer-${index + 1}` convention. */
|
|
48
|
+
id: string;
|
|
49
|
+
/** Zero-based phase index (execution-layer order). */
|
|
50
|
+
index: number;
|
|
51
|
+
/** Task ids belonging to this phase, in graph order. */
|
|
52
|
+
taskIds: string[];
|
|
53
|
+
/** Number of story nodes in this phase. */
|
|
54
|
+
storyCount: number;
|
|
55
|
+
/** Story nodes in this phase whose child reached terminal-success. */
|
|
56
|
+
completedStoryCount: number;
|
|
57
|
+
/** Derived gate status for this phase. */
|
|
58
|
+
status: WorkflowStatus;
|
|
59
|
+
}
|
|
60
|
+
/** Per-task lifecycle classification, derived purely from a child's lifecycle. */
|
|
61
|
+
export type TaskOutcome = "pending" | "running" | "success" | "failed";
|
|
62
|
+
/**
|
|
63
|
+
* Project per-phase gate state from the current child states. Children MUST already
|
|
64
|
+
* be scoped to a single workflow (filtered by `WORKFLOW_ID_LABEL`) — task ids are
|
|
65
|
+
* only unique within one workflow's graph.
|
|
66
|
+
*/
|
|
67
|
+
export declare function projectWorkflowPhases(params: {
|
|
68
|
+
children: ManagedAgent[];
|
|
69
|
+
taskGraph: TaskGraph;
|
|
70
|
+
terminalOutcomes?: ReadonlyMap<string, TaskOutcome>;
|
|
71
|
+
}): ProjectedPhase[];
|
|
72
|
+
/**
|
|
73
|
+
* Project the workflow's live progress summary from the current child states.
|
|
74
|
+
*
|
|
75
|
+
* Pure function of `(children, taskGraph)` only — no I/O, no clock, no stored-count
|
|
76
|
+
* reads. Calling it twice with the same inputs (in any order) returns deeply-equal
|
|
77
|
+
* results. Children MUST already be scoped to the workflow via `WORKFLOW_ID_LABEL`.
|
|
78
|
+
*/
|
|
79
|
+
export declare function projectWorkflowProgress(params: {
|
|
80
|
+
children: ManagedAgent[];
|
|
81
|
+
taskGraph: TaskGraph;
|
|
82
|
+
terminalOutcomes?: ReadonlyMap<string, TaskOutcome>;
|
|
83
|
+
}): WorkflowProgress;
|
|
84
|
+
/** Thrown when a task graph's dependencies cannot be layered (cycle / dangling dep). */
|
|
85
|
+
export declare class WorkflowCycleError extends Error {
|
|
86
|
+
readonly unresolved: string[];
|
|
87
|
+
constructor(unresolved: string[]);
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Resolve the layered execution order for a graph. Prefer the graph's declared
|
|
91
|
+
* `metadata.executionLayers`; otherwise compute layers from task dependencies.
|
|
92
|
+
*/
|
|
93
|
+
export declare function resolveExecutionLayers(graph: TaskGraph): string[][];
|
|
94
|
+
export {};
|
|
95
|
+
//# sourceMappingURL=workflow-progress.d.ts.map
|