@hyperdrive.bot/fleet-server 0.3.99
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 +156 -0
- package/dist/scripts/supervisor-log-config.js +31 -0
- package/dist/scripts/supervisor.js +345 -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-list-filter.d.ts +76 -0
- package/dist/server/server/agent/agent-list-filter.js +184 -0
- package/dist/server/server/agent/agent-loading.d.ts +12 -0
- package/dist/server/server/agent/agent-loading.js +76 -0
- package/dist/server/server/agent/agent-manager.d.ts +628 -0
- package/dist/server/server/agent/agent-manager.js +3370 -0
- package/dist/server/server/agent/agent-projections.d.ts +65 -0
- package/dist/server/server/agent/agent-projections.js +548 -0
- package/dist/server/server/agent/agent-prompt.d.ts +65 -0
- package/dist/server/server/agent/agent-prompt.js +271 -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 +809 -0
- package/dist/server/server/agent/agent-sdk-types.js +22 -0
- package/dist/server/server/agent/agent-storage.d.ts +209 -0
- package/dist/server/server/agent/agent-storage.js +365 -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 +277 -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/authorship-ledger.d.ts +139 -0
- package/dist/server/server/agent/authorship-ledger.js +207 -0
- package/dist/server/server/agent/authorship-markup.d.ts +198 -0
- package/dist/server/server/agent/authorship-markup.js +288 -0
- package/dist/server/server/agent/blocker-log.d.ts +81 -0
- package/dist/server/server/agent/blocker-log.js +113 -0
- package/dist/server/server/agent/card-move-log.d.ts +66 -0
- package/dist/server/server/agent/card-move-log.js +113 -0
- package/dist/server/server/agent/create-agent/create.d.ts +126 -0
- package/dist/server/server/agent/create-agent/create.js +378 -0
- package/dist/server/server/agent/create-agent/routine.d.ts +45 -0
- package/dist/server/server/agent/create-agent/routine.js +53 -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 +52 -0
- package/dist/server/server/agent/import-sessions.js +170 -0
- package/dist/server/server/agent/jarvis-judge.d.ts +157 -0
- package/dist/server/server/agent/jarvis-judge.js +289 -0
- package/dist/server/server/agent/judge-relay-gate.d.ts +70 -0
- package/dist/server/server/agent/judge-relay-gate.js +92 -0
- package/dist/server/server/agent/lifecycle-command.d.ts +75 -0
- package/dist/server/server/agent/lifecycle-command.js +97 -0
- package/dist/server/server/agent/mcp-server.d.ts +22 -0
- package/dist/server/server/agent/mcp-server.js +653 -0
- package/dist/server/server/agent/mcp-shared.d.ts +239 -0
- package/dist/server/server/agent/mcp-shared.js +200 -0
- package/dist/server/server/agent/output-language.d.ts +16 -0
- package/dist/server/server/agent/output-language.js +62 -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-config-reload.d.ts +27 -0
- package/dist/server/server/agent/provider-config-reload.js +65 -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-contract.d.ts +40 -0
- package/dist/server/server/agent/provider-registry-contract.js +28 -0
- package/dist/server/server/agent/provider-registry.d.ts +97 -0
- package/dist/server/server/agent/provider-registry.js +686 -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 +166 -0
- package/dist/server/server/agent/provider-snapshot-manager.js +760 -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 +491 -0
- package/dist/server/server/agent/providers/claude/agent.js +5128 -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 +217 -0
- package/dist/server/server/agent/providers/claude/background-task-tracker.js +511 -0
- package/dist/server/server/agent/providers/claude/background-work-kinds.d.ts +124 -0
- package/dist/server/server/agent/providers/claude/background-work-kinds.js +96 -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 +116 -0
- package/dist/server/server/agent/providers/claude/model-manifest.js +279 -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 +62 -0
- package/dist/server/server/agent/providers/claude/pty-session-launcher.js +175 -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-allowlist-guard.d.ts +41 -0
- package/dist/server/server/agent/providers/claude/tool-allowlist-guard.js +95 -0
- package/dist/server/server/agent/providers/claude/tool-allowlist.d.ts +68 -0
- package/dist/server/server/agent/providers/claude/tool-allowlist.js +133 -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 +493 -0
- package/dist/server/server/agent/providers/claude/transport/pty-query.js +2075 -0
- package/dist/server/server/agent/providers/claude/transport/pty.d.ts +153 -0
- package/dist/server/server/agent/providers/claude/transport/pty.js +367 -0
- package/dist/server/server/agent/providers/claude/transport/redact.d.ts +8 -0
- package/dist/server/server/agent/providers/claude/transport/redact.js +33 -0
- package/dist/server/server/agent/providers/claude/transport/sdk.d.ts +65 -0
- package/dist/server/server/agent/providers/claude/transport/sdk.js +219 -0
- package/dist/server/server/agent/providers/claude/transport/tmux.d.ts +141 -0
- package/dist/server/server/agent/providers/claude/transport/tmux.js +218 -0
- package/dist/server/server/agent/providers/claude/transport/transcript-sdk-reader.d.ts +53 -0
- package/dist/server/server/agent/providers/claude/transport/transcript-sdk-reader.js +243 -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 +50 -0
- package/dist/server/server/agent/providers/claude/transport/truncate-session.js +121 -0
- package/dist/server/server/agent/providers/claude/transport/turn-id-reconciler.d.ts +36 -0
- package/dist/server/server/agent/providers/claude/transport/turn-id-reconciler.js +75 -0
- package/dist/server/server/agent/providers/claude/transport/types.d.ts +61 -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 +4515 -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 +293 -0
- package/dist/server/server/agent/providers/opencode-agent.js +2908 -0
- package/dist/server/server/agent/providers/pi/agent.d.ts +137 -0
- package/dist/server/server/agent/providers/pi/agent.js +1651 -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 +64 -0
- package/dist/server/server/agent/session-digest-generator.js +306 -0
- package/dist/server/server/agent/session-digest.d.ts +81 -0
- package/dist/server/server/agent/session-digest.js +226 -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 +47 -0
- package/dist/server/server/agent/stt-manager.js +263 -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 +66 -0
- package/dist/server/server/agent/tools/paseo-tools.js +2616 -0
- package/dist/server/server/agent/tools/read-only-surface.d.ts +53 -0
- package/dist/server/server/agent/tools/read-only-surface.js +69 -0
- package/dist/server/server/agent/tools/types.d.ts +41 -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 +68 -0
- package/dist/server/server/auth.js +207 -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 +163 -0
- package/dist/server/server/bootstrap.js +1597 -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 +20 -0
- package/dist/server/server/config.js +427 -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 +78 -0
- package/dist/server/server/daemon-config-store.js +320 -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 +95 -0
- package/dist/server/server/dictation/dictation-stream-manager.js +581 -0
- package/dist/server/server/editor-targets.d.ts +18 -0
- package/dist/server/server/editor-targets.js +109 -0
- package/dist/server/server/ensure-workspace-for-create.d.ts +30 -0
- package/dist/server/server/ensure-workspace-for-create.js +20 -0
- package/dist/server/server/exports.d.ts +28 -0
- package/dist/server/server/exports.js +31 -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/mime-types.d.ts +58 -0
- package/dist/server/server/file-explorer/mime-types.js +212 -0
- package/dist/server/server/file-explorer/service.d.ts +97 -0
- package/dist/server/server/file-explorer/service.js +362 -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/fleet/decision-service.d.ts +47 -0
- package/dist/server/server/fleet/decision-service.js +156 -0
- package/dist/server/server/fleet/fleet-controls.d.ts +77 -0
- package/dist/server/server/fleet/fleet-controls.js +217 -0
- package/dist/server/server/fleet/fleet-reader.d.ts +106 -0
- package/dist/server/server/fleet/fleet-reader.js +470 -0
- package/dist/server/server/fleet/fleet-scaffold.d.ts +26 -0
- package/dist/server/server/fleet/fleet-scaffold.js +48 -0
- package/dist/server/server/fleet/fleet-scheduler.d.ts +75 -0
- package/dist/server/server/fleet/fleet-scheduler.js +186 -0
- package/dist/server/server/fleet/fleet-service.d.ts +75 -0
- package/dist/server/server/fleet/fleet-service.js +134 -0
- package/dist/server/server/hostnames.d.ts +13 -0
- package/dist/server/server/hostnames.js +94 -0
- package/dist/server/server/ingestion/adapters.d.ts +21 -0
- package/dist/server/server/ingestion/adapters.js +27 -0
- package/dist/server/server/ingestion/apply.d.ts +220 -0
- package/dist/server/server/ingestion/apply.js +345 -0
- package/dist/server/server/ingestion/backfill.d.ts +123 -0
- package/dist/server/server/ingestion/backfill.js +160 -0
- package/dist/server/server/ingestion/cap-limiter.d.ts +148 -0
- package/dist/server/server/ingestion/cap-limiter.js +264 -0
- package/dist/server/server/ingestion/cohort-recorder-memory.d.ts +25 -0
- package/dist/server/server/ingestion/cohort-recorder-memory.js +78 -0
- package/dist/server/server/ingestion/cohort-recorder-store.d.ts +12 -0
- package/dist/server/server/ingestion/cohort-recorder-store.js +99 -0
- package/dist/server/server/ingestion/cohort-resume.d.ts +22 -0
- package/dist/server/server/ingestion/cohort-resume.js +171 -0
- package/dist/server/server/ingestion/cohort-store.d.ts +227 -0
- package/dist/server/server/ingestion/cohort-store.js +462 -0
- package/dist/server/server/ingestion/composio/gateway.d.ts +8 -0
- package/dist/server/server/ingestion/composio/gateway.js +469 -0
- package/dist/server/server/ingestion/dry-run.d.ts +70 -0
- package/dist/server/server/ingestion/dry-run.js +142 -0
- package/dist/server/server/ingestion/errors.d.ts +48 -0
- package/dist/server/server/ingestion/errors.js +63 -0
- package/dist/server/server/ingestion/external-user-id.d.ts +24 -0
- package/dist/server/server/ingestion/external-user-id.js +35 -0
- package/dist/server/server/ingestion/filters/store.d.ts +28 -0
- package/dist/server/server/ingestion/filters/store.js +74 -0
- package/dist/server/server/ingestion/fingerprint.d.ts +13 -0
- package/dist/server/server/ingestion/fingerprint.js +31 -0
- package/dist/server/server/ingestion/grouping.d.ts +26 -0
- package/dist/server/server/ingestion/grouping.js +116 -0
- package/dist/server/server/ingestion/hard-failure.d.ts +73 -0
- package/dist/server/server/ingestion/hard-failure.js +125 -0
- package/dist/server/server/ingestion/health.d.ts +38 -0
- package/dist/server/server/ingestion/health.js +90 -0
- package/dist/server/server/ingestion/ledger-schema.d.ts +99 -0
- package/dist/server/server/ingestion/ledger-schema.js +359 -0
- package/dist/server/server/ingestion/ledger.d.ts +562 -0
- package/dist/server/server/ingestion/ledger.js +881 -0
- package/dist/server/server/ingestion/match.d.ts +57 -0
- package/dist/server/server/ingestion/match.js +102 -0
- package/dist/server/server/ingestion/pipedream/gateway.d.ts +8 -0
- package/dist/server/server/ingestion/pipedream/gateway.js +282 -0
- package/dist/server/server/ingestion/presets.d.ts +57 -0
- package/dist/server/server/ingestion/presets.js +57 -0
- package/dist/server/server/ingestion/reconcile/artifact-kind.d.ts +19 -0
- package/dist/server/server/ingestion/reconcile/artifact-kind.js +65 -0
- package/dist/server/server/ingestion/reconcile/calendar.d.ts +19 -0
- package/dist/server/server/ingestion/reconcile/calendar.js +110 -0
- package/dist/server/server/ingestion/reconcile/constants.d.ts +60 -0
- package/dist/server/server/ingestion/reconcile/constants.js +62 -0
- package/dist/server/server/ingestion/reconcile/github.d.ts +21 -0
- package/dist/server/server/ingestion/reconcile/github.js +83 -0
- package/dist/server/server/ingestion/reconcile/gitlab.d.ts +23 -0
- package/dist/server/server/ingestion/reconcile/gitlab.js +94 -0
- package/dist/server/server/ingestion/reconcile/gmail.d.ts +9 -0
- package/dist/server/server/ingestion/reconcile/gmail.js +141 -0
- package/dist/server/server/ingestion/reconcile/jira.d.ts +17 -0
- package/dist/server/server/ingestion/reconcile/jira.js +76 -0
- package/dist/server/server/ingestion/reconcile/kinds.d.ts +16 -0
- package/dist/server/server/ingestion/reconcile/kinds.js +59 -0
- package/dist/server/server/ingestion/reconcile/mcp-call.d.ts +18 -0
- package/dist/server/server/ingestion/reconcile/mcp-call.js +105 -0
- package/dist/server/server/ingestion/reconcile/payload.d.ts +38 -0
- package/dist/server/server/ingestion/reconcile/payload.js +82 -0
- package/dist/server/server/ingestion/reconcile/registry.d.ts +40 -0
- package/dist/server/server/ingestion/reconcile/registry.js +72 -0
- package/dist/server/server/ingestion/reconcile/runner.d.ts +43 -0
- package/dist/server/server/ingestion/reconcile/runner.js +91 -0
- package/dist/server/server/ingestion/reconcile/sentry.d.ts +20 -0
- package/dist/server/server/ingestion/reconcile/sentry.js +85 -0
- package/dist/server/server/ingestion/reconcile/service.d.ts +134 -0
- package/dist/server/server/ingestion/reconcile/service.js +409 -0
- package/dist/server/server/ingestion/reconcile/signature-guard.d.ts +30 -0
- package/dist/server/server/ingestion/reconcile/signature-guard.js +82 -0
- package/dist/server/server/ingestion/reconcile/testing/fake-mcp-server.d.ts +68 -0
- package/dist/server/server/ingestion/reconcile/testing/fake-mcp-server.js +158 -0
- package/dist/server/server/ingestion/reconcile/types.d.ts +65 -0
- package/dist/server/server/ingestion/reconcile/types.js +11 -0
- package/dist/server/server/ingestion/reconcile/verdict-mapping.d.ts +54 -0
- package/dist/server/server/ingestion/reconcile/verdict-mapping.js +82 -0
- package/dist/server/server/ingestion/resolve-items.d.ts +23 -0
- package/dist/server/server/ingestion/resolve-items.js +54 -0
- package/dist/server/server/ingestion/run-projection.d.ts +35 -0
- package/dist/server/server/ingestion/run-projection.js +76 -0
- package/dist/server/server/ingestion/service.d.ts +147 -0
- package/dist/server/server/ingestion/service.js +364 -0
- package/dist/server/server/ingestion/sources/store.d.ts +27 -0
- package/dist/server/server/ingestion/sources/store.js +71 -0
- package/dist/server/server/ingestion/testing/claim-and-hang.d.ts +2 -0
- package/dist/server/server/ingestion/testing/claim-and-hang.js +21 -0
- package/dist/server/server/ingestion/testing/cohort-crash.d.ts +2 -0
- package/dist/server/server/ingestion/testing/cohort-crash.js +89 -0
- package/dist/server/server/ingestion/types.d.ts +226 -0
- package/dist/server/server/ingestion/types.js +18 -0
- package/dist/server/server/ingestion/utc-day.d.ts +27 -0
- package/dist/server/server/ingestion/utc-day.js +44 -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 +390 -0
- package/dist/server/server/persisted-config.js +424 -0
- package/dist/server/server/persistence-hooks.d.ts +32 -0
- package/dist/server/server/persistence-hooks.js +99 -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 +188 -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/reference-enricher.d.ts +41 -0
- package/dist/server/server/reference-enricher.js +392 -0
- package/dist/server/server/relay-transport.d.ts +31 -0
- package/dist/server/server/relay-transport.js +545 -0
- package/dist/server/server/resolve-workspace-id-for-path.d.ts +4 -0
- package/dist/server/server/resolve-workspace-id-for-path.js +71 -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/restart-manifest.d.ts +83 -0
- package/dist/server/server/restart-manifest.js +122 -0
- package/dist/server/server/resume-after-restart.d.ts +50 -0
- package/dist/server/server/resume-after-restart.js +108 -0
- package/dist/server/server/schedule/create-cadence.d.ts +22 -0
- package/dist/server/server/schedule/create-cadence.js +70 -0
- package/dist/server/server/schedule/cron.d.ts +8 -0
- package/dist/server/server/schedule/cron.js +114 -0
- package/dist/server/server/schedule/service.d.ts +207 -0
- package/dist/server/server/schedule/service.js +867 -0
- package/dist/server/server/schedule/source-prompt.d.ts +42 -0
- package/dist/server/server/schedule/source-prompt.js +87 -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/search/extract.d.ts +53 -0
- package/dist/server/server/search/extract.js +222 -0
- package/dist/server/server/search/index-store.d.ts +83 -0
- package/dist/server/server/search/index-store.js +241 -0
- package/dist/server/server/search/indexer.d.ts +69 -0
- package/dist/server/server/search/indexer.js +362 -0
- package/dist/server/server/search/resolve-cwd.d.ts +40 -0
- package/dist/server/server/search/resolve-cwd.js +109 -0
- package/dist/server/server/search/session-search-service.d.ts +59 -0
- package/dist/server/server/search/session-search-service.js +171 -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-ingestion-session.d.ts +285 -0
- package/dist/server/server/session/chat/chat-ingestion-session.js +504 -0
- package/dist/server/server/session/chat/chat-schedule-loop-session.d.ts +175 -0
- package/dist/server/server/session/chat/chat-schedule-loop-session.js +720 -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 +89 -0
- package/dist/server/server/session/daemon/daemon-session.js +179 -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 +53 -0
- package/dist/server/server/session/files/workspace-files-session.js +245 -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/ingestion/source-session.d.ts +78 -0
- package/dist/server/server/session/ingestion/source-session.js +191 -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 +105 -0
- package/dist/server/server/session/provider/provider-catalog-session.js +364 -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 +899 -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 +46 -0
- package/dist/server/server/session/workspace-provisioning/workspace-provisioning-service.js +214 -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 +677 -0
- package/dist/server/server/session.js +6531 -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/tenant-token-verifier.d.ts +43 -0
- package/dist/server/server/tenant-token-verifier.js +79 -0
- package/dist/server/server/update/installer.d.ts +70 -0
- package/dist/server/server/update/installer.js +181 -0
- package/dist/server/server/update/registry.d.ts +47 -0
- package/dist/server/server/update/registry.js +95 -0
- package/dist/server/server/update/slots.d.ts +45 -0
- package/dist/server/server/update/slots.js +97 -0
- package/dist/server/server/update/state.d.ts +41 -0
- package/dist/server/server/update/state.js +65 -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 +247 -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 +231 -0
- package/dist/server/server/websocket-server.js +1853 -0
- package/dist/server/server/whatsapp-bridge.d.ts +74 -0
- package/dist/server/server/whatsapp-bridge.js +142 -0
- package/dist/server/server/workflow/workflow-agent-resolution.d.ts +82 -0
- package/dist/server/server/workflow/workflow-agent-resolution.js +105 -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 +363 -0
- package/dist/server/server/workflow/workflow-manager.js +852 -0
- package/dist/server/server/workflow/workflow-progress.d.ts +148 -0
- package/dist/server/server/workflow/workflow-progress.js +274 -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 +218 -0
- package/dist/server/server/workspace/recall-search-feature.d.ts +2 -0
- package/dist/server/server/workspace/recall-search-feature.js +31 -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 +40 -0
- package/dist/server/server/workspace/sessions-search-route.js +74 -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 +440 -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 +860 -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-67f19cbfce758da6aa23c38c2dbd6a33.js +5 -0
- package/dist/server/web-ui/_expo/static/js/web/desktop-attachment-bridge-67f19cbfce758da6aa23c38c2dbd6a33.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/desktop-attachment-bridge-67f19cbfce758da6aa23c38c2dbd6a33.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/desktop-attachment-bridge-67f19cbfce758da6aa23c38c2dbd6a33.js.map.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/desktop-attachment-bridge-67f19cbfce758da6aa23c38c2dbd6a33.js.map.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/desktop-attachment-store-6888615a6b700f975c1f78501ad8577c.js +3 -0
- package/dist/server/web-ui/_expo/static/js/web/desktop-attachment-store-6888615a6b700f975c1f78501ad8577c.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/desktop-attachment-store-6888615a6b700f975c1f78501ad8577c.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/desktop-attachment-store-6888615a6b700f975c1f78501ad8577c.js.map.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/desktop-attachment-store-6888615a6b700f975c1f78501ad8577c.js.map.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/index-dc1e81e7cbad84d30a01c48dcc9a5a3e.js +16683 -0
- package/dist/server/web-ui/_expo/static/js/web/index-dc1e81e7cbad84d30a01c48dcc9a5a3e.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/index-dc1e81e7cbad84d30a01c48dcc9a5a3e.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/index-dc1e81e7cbad84d30a01c48dcc9a5a3e.js.map.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/index-dc1e81e7cbad84d30a01c48dcc9a5a3e.js.map.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/indexeddb-attachment-store-991ae7fd00f9fed45084fbb39160e8b8.js +3 -0
- package/dist/server/web-ui/_expo/static/js/web/indexeddb-attachment-store-991ae7fd00f9fed45084fbb39160e8b8.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/indexeddb-attachment-store-991ae7fd00f9fed45084fbb39160e8b8.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/indexeddb-attachment-store-991ae7fd00f9fed45084fbb39160e8b8.js.map.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/indexeddb-attachment-store-991ae7fd00f9fed45084fbb39160e8b8.js.map.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/native-file-attachment-store-fdb4d787a259ce350f76280ca0e2bfa2.js +5 -0
- package/dist/server/web-ui/_expo/static/js/web/native-file-attachment-store-fdb4d787a259ce350f76280ca0e2bfa2.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/native-file-attachment-store-fdb4d787a259ce350f76280ca0e2bfa2.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/native-file-attachment-store-fdb4d787a259ce350f76280ca0e2bfa2.js.map.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/native-file-attachment-store-fdb4d787a259ce350f76280ca0e2bfa2.js.map.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/profiler-9502a8e721925a6353ec45f7613f537e.js +11 -0
- package/dist/server/web-ui/_expo/static/js/web/profiler-9502a8e721925a6353ec45f7613f537e.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/profiler-9502a8e721925a6353ec45f7613f537e.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/profiler-9502a8e721925a6353ec45f7613f537e.js.map.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/profiler-9502a8e721925a6353ec45f7613f537e.js.map.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/startRecording-4ed5094aa059a0fc724f5ae70dd2f693.js +60 -0
- package/dist/server/web-ui/_expo/static/js/web/startRecording-4ed5094aa059a0fc724f5ae70dd2f693.js.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/startRecording-4ed5094aa059a0fc724f5ae70dd2f693.js.gz +0 -0
- package/dist/server/web-ui/_expo/static/js/web/startRecording-4ed5094aa059a0fc724f5ae70dd2f693.js.map.br +0 -0
- package/dist/server/web-ui/_expo/static/js/web/startRecording-4ed5094aa059a0fc724f5ae70dd2f693.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 +196 -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 +424 -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/server/update/slots.js +97 -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 +146 -0
|
@@ -0,0 +1,867 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
import { stat } from "node:fs/promises";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
import { curateAgentActivity } from "../agent/activity-curator.js";
|
|
5
|
+
import { ensureAgentLoaded } from "../agent/agent-loading.js";
|
|
6
|
+
import { formatSystemNotificationPrompt } from "../agent/agent-prompt.js";
|
|
7
|
+
import { resolveCreateAgentTitles } from "../agent/create-agent-title.js";
|
|
8
|
+
import { ScheduleStore } from "./store.js";
|
|
9
|
+
import { computeNextRunAt, validateScheduleCadence } from "./cron.js";
|
|
10
|
+
import { buildSourceRunPrompt } from "./source-prompt.js";
|
|
11
|
+
import { FILTER_ID_LABEL, ITEM_GROUP_LABEL, ITEM_KEYS_LABEL, } from "@hyperdrive.bot/fleet-protocol/agent-labels";
|
|
12
|
+
import { groupMatchedItems } from "../ingestion/grouping.js";
|
|
13
|
+
const SCHEDULE_TICK_INTERVAL_MS = 1000;
|
|
14
|
+
// A run failed because its target no longer exists: the agent was deleted or
|
|
15
|
+
// archived, or a new-agent cwd was removed. These are permanent, so the schedule
|
|
16
|
+
// is completed instead of retried until it burns down to its expiry.
|
|
17
|
+
export class ScheduleTargetGoneError extends Error {
|
|
18
|
+
constructor(message) {
|
|
19
|
+
super(message);
|
|
20
|
+
this.name = "ScheduleTargetGoneError";
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
// Arming a source filter must never replay the history that already sits behind
|
|
24
|
+
// the source. An explicit runOnCreate: true is therefore refused rather than
|
|
25
|
+
// quietly downgraded, so the caller is pointed at backfill instead.
|
|
26
|
+
export class ScheduleRunOnCreateUnsupportedError extends Error {
|
|
27
|
+
constructor(message) {
|
|
28
|
+
super(message);
|
|
29
|
+
this.name = "ScheduleRunOnCreateUnsupportedError";
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
const RUN_ON_CREATE_UNSUPPORTED_MESSAGE = "Source cadences cannot run on create; arm the filter and use backfill to process history.";
|
|
33
|
+
function assertRunOnCreateSupported(input) {
|
|
34
|
+
if (input.cadence.type === "source" && input.runOnCreate === true) {
|
|
35
|
+
throw new ScheduleRunOnCreateUnsupportedError(RUN_ON_CREATE_UNSUPPORTED_MESSAGE);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
function trimOptionalName(value) {
|
|
39
|
+
if (typeof value !== "string") {
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
const trimmed = value.trim();
|
|
43
|
+
return trimmed.length > 0 ? trimmed : null;
|
|
44
|
+
}
|
|
45
|
+
function buildScheduleFireBody(schedule, runId) {
|
|
46
|
+
const heading = schedule.name
|
|
47
|
+
? `Schedule "${schedule.name}" fired (id=${schedule.id}, run=${runId}).`
|
|
48
|
+
: `Schedule fired (id=${schedule.id}, run=${runId}).`;
|
|
49
|
+
return `${heading}\n${schedule.prompt}`;
|
|
50
|
+
}
|
|
51
|
+
function normalizePrompt(prompt) {
|
|
52
|
+
const trimmed = prompt.trim();
|
|
53
|
+
if (!trimmed) {
|
|
54
|
+
throw new Error("Schedule prompt is required");
|
|
55
|
+
}
|
|
56
|
+
return trimmed;
|
|
57
|
+
}
|
|
58
|
+
function applyNewAgentConfig(target, patch) {
|
|
59
|
+
const config = { ...target.config };
|
|
60
|
+
if (patch.provider !== undefined) {
|
|
61
|
+
const trimmed = patch.provider.trim();
|
|
62
|
+
if (!trimmed) {
|
|
63
|
+
throw new Error("provider cannot be empty");
|
|
64
|
+
}
|
|
65
|
+
config.provider = trimmed;
|
|
66
|
+
}
|
|
67
|
+
if (patch.cwd !== undefined) {
|
|
68
|
+
const trimmed = patch.cwd.trim();
|
|
69
|
+
if (!trimmed) {
|
|
70
|
+
throw new Error("cwd cannot be empty");
|
|
71
|
+
}
|
|
72
|
+
config.cwd = trimmed;
|
|
73
|
+
}
|
|
74
|
+
if (patch.model !== undefined) {
|
|
75
|
+
const trimmed = patch.model?.trim();
|
|
76
|
+
if (trimmed) {
|
|
77
|
+
config.model = trimmed;
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
delete config.model;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
if (patch.modeId !== undefined) {
|
|
84
|
+
const trimmed = patch.modeId?.trim();
|
|
85
|
+
if (trimmed) {
|
|
86
|
+
config.modeId = trimmed;
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
delete config.modeId;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return { ...target, config };
|
|
93
|
+
}
|
|
94
|
+
function normalizeMaxRuns(value) {
|
|
95
|
+
if (value == null) {
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
if (!Number.isInteger(value) || value <= 0) {
|
|
99
|
+
throw new Error("maxRuns must be a positive integer");
|
|
100
|
+
}
|
|
101
|
+
return value;
|
|
102
|
+
}
|
|
103
|
+
function countCompletedRuns(schedule) {
|
|
104
|
+
return schedule.runs.filter((run) => run.status !== "running").length;
|
|
105
|
+
}
|
|
106
|
+
function shouldCompleteSchedule(schedule, now) {
|
|
107
|
+
if (schedule.expiresAt && new Date(schedule.expiresAt).getTime() <= now.getTime()) {
|
|
108
|
+
return true;
|
|
109
|
+
}
|
|
110
|
+
if (schedule.maxRuns == null) {
|
|
111
|
+
return false;
|
|
112
|
+
}
|
|
113
|
+
return countCompletedRuns(schedule) >= schedule.maxRuns;
|
|
114
|
+
}
|
|
115
|
+
// Sort object keys recursively so two structurally-equal configs serialize
|
|
116
|
+
// identically regardless of key order. Stored configs come back from disk in Zod
|
|
117
|
+
// schema order while incoming configs keep their construction order, so a plain
|
|
118
|
+
// JSON.stringify comparison would wrongly treat identical targets as different.
|
|
119
|
+
function canonicalize(value) {
|
|
120
|
+
if (Array.isArray(value)) {
|
|
121
|
+
return value.map(canonicalize);
|
|
122
|
+
}
|
|
123
|
+
if (value && typeof value === "object") {
|
|
124
|
+
const source = value;
|
|
125
|
+
return Object.fromEntries(Object.keys(source)
|
|
126
|
+
.sort()
|
|
127
|
+
.map((key) => [key, canonicalize(source[key])]));
|
|
128
|
+
}
|
|
129
|
+
return value;
|
|
130
|
+
}
|
|
131
|
+
function scheduleTargetsEqual(a, b) {
|
|
132
|
+
if (a.type === "agent" && b.type === "agent") {
|
|
133
|
+
return a.agentId === b.agentId;
|
|
134
|
+
}
|
|
135
|
+
if (a.type === "new-agent" && b.type === "new-agent") {
|
|
136
|
+
return JSON.stringify(canonicalize(a.config)) === JSON.stringify(canonicalize(b.config));
|
|
137
|
+
}
|
|
138
|
+
return false;
|
|
139
|
+
}
|
|
140
|
+
function completeSchedule(schedule, now) {
|
|
141
|
+
return {
|
|
142
|
+
...schedule,
|
|
143
|
+
status: "completed",
|
|
144
|
+
nextRunAt: null,
|
|
145
|
+
pausedAt: null,
|
|
146
|
+
updatedAt: now.toISOString(),
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
function buildRunOutput(params) {
|
|
150
|
+
if (params.output && params.output.trim().length > 0) {
|
|
151
|
+
return params.output;
|
|
152
|
+
}
|
|
153
|
+
if (params.finalText.trim().length > 0) {
|
|
154
|
+
return params.finalText.trim();
|
|
155
|
+
}
|
|
156
|
+
if (params.timelineText.trim().length > 0) {
|
|
157
|
+
return params.timelineText.trim();
|
|
158
|
+
}
|
|
159
|
+
return null;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Both schedule facts per TARGETED agent id, in ONE pass over the store listing.
|
|
163
|
+
*
|
|
164
|
+
* Only `target.type === "agent"` counts, for both facts. A `new-agent` schedule
|
|
165
|
+
* mints a throwaway agent per firing and archives it, so it targets no durable
|
|
166
|
+
* agent and must neither make one look scheduled nor make one look durable.
|
|
167
|
+
*
|
|
168
|
+
* `nextFireAtByAgent` takes ACTIVE schedules only: the value is "when does this
|
|
169
|
+
* next fire", and a paused schedule never does. `routineAgentIds` takes active
|
|
170
|
+
* AND paused: a paused routine is benched, not absent. `completed` is in neither,
|
|
171
|
+
* because a one-shot that already fired is finished rather than benched.
|
|
172
|
+
*/
|
|
173
|
+
function indexAgentScheduleFacts(schedules) {
|
|
174
|
+
const nextFireAtByAgent = new Map();
|
|
175
|
+
const routineAgentIds = new Set();
|
|
176
|
+
for (const schedule of schedules) {
|
|
177
|
+
if (schedule.target.type !== "agent")
|
|
178
|
+
continue;
|
|
179
|
+
if (schedule.status !== "active" && schedule.status !== "paused")
|
|
180
|
+
continue;
|
|
181
|
+
routineAgentIds.add(schedule.target.agentId);
|
|
182
|
+
if (schedule.status !== "active")
|
|
183
|
+
continue;
|
|
184
|
+
const nextRunAt = schedule.nextRunAt;
|
|
185
|
+
if (!nextRunAt)
|
|
186
|
+
continue;
|
|
187
|
+
const parsed = Date.parse(nextRunAt);
|
|
188
|
+
if (Number.isNaN(parsed))
|
|
189
|
+
continue;
|
|
190
|
+
const current = nextFireAtByAgent.get(schedule.target.agentId);
|
|
191
|
+
if (current === undefined || parsed < Date.parse(current)) {
|
|
192
|
+
nextFireAtByAgent.set(schedule.target.agentId, nextRunAt);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
return { nextFireAtByAgent, routineAgentIds };
|
|
196
|
+
}
|
|
197
|
+
export class ScheduleService {
|
|
198
|
+
constructor(options) {
|
|
199
|
+
this.runningScheduleIds = new Set();
|
|
200
|
+
this.tickTimer = null;
|
|
201
|
+
/**
|
|
202
|
+
* Last computed schedule facts per agent, refreshed on every tick (1s) and on
|
|
203
|
+
* demand. `null` until the first read, which is what lets `peekNextFireAt` and
|
|
204
|
+
* `peekHasRoutine` tell "no schedule targets this agent" apart from "nobody has
|
|
205
|
+
* looked yet" - the agent predicate treats those the same, but only one of them
|
|
206
|
+
* is a claim about the agent.
|
|
207
|
+
*
|
|
208
|
+
* ONE cache for BOTH facts on purpose: they are built in a single pass, so
|
|
209
|
+
* neither can be fresh while the other is stale.
|
|
210
|
+
*/
|
|
211
|
+
this.agentScheduleFacts = null;
|
|
212
|
+
this.store = new ScheduleStore(join(options.paseoHome, "schedules"));
|
|
213
|
+
this.logger = options.logger.child({ module: "schedule-service" });
|
|
214
|
+
this.agentManager = options.agentManager;
|
|
215
|
+
this.agentStorage = options.agentStorage;
|
|
216
|
+
this.createConfigResolver = options.providerSnapshotManager;
|
|
217
|
+
this.now = options.now ?? (() => new Date());
|
|
218
|
+
this.ledger = options.ledger;
|
|
219
|
+
this.capLimiter = options.capLimiter;
|
|
220
|
+
this.cohortResumer = options.cohortResumer;
|
|
221
|
+
this.runner = options.runner ?? ((schedule, runId) => this.executeSchedule(schedule, runId));
|
|
222
|
+
this.filterResolver =
|
|
223
|
+
options.filterResolver ??
|
|
224
|
+
(() => {
|
|
225
|
+
throw new Error("Source cadence requires a filterResolver");
|
|
226
|
+
});
|
|
227
|
+
this.matchedItems = options.matchedItems ?? (async () => []);
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* The daemon's one runs/day limiter, or undefined when the ledger is.
|
|
231
|
+
*
|
|
232
|
+
* The accessor exists so Epic 2's dispatch loop and Epic 5's confirmation
|
|
233
|
+
* screen reach the SAME instance through plumbing that already exists, instead
|
|
234
|
+
* of constructing their own.
|
|
235
|
+
*/
|
|
236
|
+
getCapLimiter() {
|
|
237
|
+
return this.capLimiter;
|
|
238
|
+
}
|
|
239
|
+
async start() {
|
|
240
|
+
await this.recoverInterruptedRuns();
|
|
241
|
+
// Ingestion ledger maintenance. Order matters: release first, so a claim stranded by a
|
|
242
|
+
// crash records its failure and refreshes last_fail_at, then prune, so a row released
|
|
243
|
+
// one line earlier is never dropped by the same boot. Best-effort on purpose: a ledger
|
|
244
|
+
// that cannot open must not stop clock schedules from ticking. Fail-loud for ingestion
|
|
245
|
+
// happens where a { type: "source" } cadence arms, not here (epic D1).
|
|
246
|
+
if (this.ledger) {
|
|
247
|
+
try {
|
|
248
|
+
const released = this.ledger.releaseStaleClaims();
|
|
249
|
+
const pruned = this.ledger.prune();
|
|
250
|
+
if (released > 0 || pruned > 0) {
|
|
251
|
+
this.logger.info({ released, pruned }, "Ingestion ledger maintenance complete");
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
catch (error) {
|
|
255
|
+
this.logger.warn({ err: error }, "Ingestion ledger maintenance failed; source-triggered filters will not arm");
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
// AFTER the ledger maintenance above, never before. A resumed group claims
|
|
259
|
+
// ledger rows, and a claim stranded by the crash is only released one block
|
|
260
|
+
// up - resuming first would find every item still claimed and dispatch a
|
|
261
|
+
// cohort that covers nothing.
|
|
262
|
+
//
|
|
263
|
+
// Best-effort for the same reason the maintenance above is: a cohort that
|
|
264
|
+
// cannot be resumed must not stop clock schedules from ticking.
|
|
265
|
+
if (this.cohortResumer) {
|
|
266
|
+
try {
|
|
267
|
+
await this.cohortResumer();
|
|
268
|
+
}
|
|
269
|
+
catch (error) {
|
|
270
|
+
this.logger.warn({ err: error }, "Cohort resume failed; pending cohort groups stay pending until the next boot");
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
await this.sweepOrphanedSchedules();
|
|
274
|
+
if (this.tickTimer) {
|
|
275
|
+
return;
|
|
276
|
+
}
|
|
277
|
+
const timer = setInterval(() => {
|
|
278
|
+
void this.tick().catch((error) => {
|
|
279
|
+
this.logger.error({ err: error }, "Failed to process schedule tick");
|
|
280
|
+
});
|
|
281
|
+
}, SCHEDULE_TICK_INTERVAL_MS);
|
|
282
|
+
timer.unref?.();
|
|
283
|
+
this.tickTimer = timer;
|
|
284
|
+
}
|
|
285
|
+
async stop() {
|
|
286
|
+
if (this.tickTimer) {
|
|
287
|
+
clearInterval(this.tickTimer);
|
|
288
|
+
this.tickTimer = null;
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
async create(input) {
|
|
292
|
+
const now = this.now();
|
|
293
|
+
const prompt = normalizePrompt(input.prompt);
|
|
294
|
+
validateScheduleCadence(input.cadence);
|
|
295
|
+
assertRunOnCreateSupported(input);
|
|
296
|
+
const runOnCreate = input.runOnCreate ?? input.cadence.type === "every";
|
|
297
|
+
const nextRunAt = runOnCreate ? now : computeNextRunAt(input.cadence, now);
|
|
298
|
+
const schedule = await this.store.create({
|
|
299
|
+
name: trimOptionalName(input.name),
|
|
300
|
+
prompt,
|
|
301
|
+
cadence: input.cadence,
|
|
302
|
+
target: input.target,
|
|
303
|
+
status: "active",
|
|
304
|
+
createdAt: now.toISOString(),
|
|
305
|
+
updatedAt: now.toISOString(),
|
|
306
|
+
nextRunAt: nextRunAt?.toISOString() ?? null,
|
|
307
|
+
lastRunAt: null,
|
|
308
|
+
pausedAt: null,
|
|
309
|
+
expiresAt: input.expiresAt ?? null,
|
|
310
|
+
maxRuns: normalizeMaxRuns(input.maxRuns),
|
|
311
|
+
runs: [],
|
|
312
|
+
});
|
|
313
|
+
return schedule;
|
|
314
|
+
}
|
|
315
|
+
// Idempotent create for the MCP write path: repeating a create with the same
|
|
316
|
+
// name and target (e.g. babysit-pr re-registering its heartbeat) refreshes the
|
|
317
|
+
// existing non-completed schedule in place instead of minting a duplicate.
|
|
318
|
+
async createOrReplace(input) {
|
|
319
|
+
const name = trimOptionalName(input.name);
|
|
320
|
+
if (name !== null) {
|
|
321
|
+
const existing = (await this.store.list()).find((schedule) => schedule.status !== "completed" &&
|
|
322
|
+
trimOptionalName(schedule.name) === name &&
|
|
323
|
+
scheduleTargetsEqual(schedule.target, input.target));
|
|
324
|
+
if (existing) {
|
|
325
|
+
const now = this.now();
|
|
326
|
+
const prompt = normalizePrompt(input.prompt);
|
|
327
|
+
validateScheduleCadence(input.cadence);
|
|
328
|
+
assertRunOnCreateSupported(input);
|
|
329
|
+
const runOnCreate = input.runOnCreate ?? input.cadence.type === "every";
|
|
330
|
+
const nextRunAt = runOnCreate ? now : computeNextRunAt(input.cadence, now);
|
|
331
|
+
const replaced = {
|
|
332
|
+
...existing,
|
|
333
|
+
name,
|
|
334
|
+
prompt,
|
|
335
|
+
cadence: input.cadence,
|
|
336
|
+
target: input.target,
|
|
337
|
+
status: "active",
|
|
338
|
+
pausedAt: null,
|
|
339
|
+
nextRunAt: nextRunAt?.toISOString() ?? null,
|
|
340
|
+
expiresAt: input.expiresAt ?? null,
|
|
341
|
+
maxRuns: normalizeMaxRuns(input.maxRuns),
|
|
342
|
+
updatedAt: now.toISOString(),
|
|
343
|
+
};
|
|
344
|
+
await this.store.put(replaced);
|
|
345
|
+
return replaced;
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
return this.create(input);
|
|
349
|
+
}
|
|
350
|
+
async list() {
|
|
351
|
+
return this.store.list();
|
|
352
|
+
}
|
|
353
|
+
/**
|
|
354
|
+
* Read the schedule store and return BOTH schedule facts per targeted agent id,
|
|
355
|
+
* refreshing the cache `peekNextFireAt` and `peekHasRoutine` serve.
|
|
356
|
+
*
|
|
357
|
+
* This is the seam the agent projections use for `nextFireAt` and `hasRoutine`.
|
|
358
|
+
* Those projections are pure and synchronous while this store is async and
|
|
359
|
+
* file-backed, so the caller that already awaits does the join ONCE per batch
|
|
360
|
+
* and passes each agent its own answer down. Both facts come off the same
|
|
361
|
+
* listing, so a caller can never get one refreshed and the other stale.
|
|
362
|
+
*/
|
|
363
|
+
async listAgentScheduleFacts() {
|
|
364
|
+
const facts = indexAgentScheduleFacts(await this.store.list());
|
|
365
|
+
this.agentScheduleFacts = facts;
|
|
366
|
+
return facts;
|
|
367
|
+
}
|
|
368
|
+
/**
|
|
369
|
+
* Synchronous read of the cached next-fire index, for the projection paths that
|
|
370
|
+
* are not async and cannot await a store read.
|
|
371
|
+
*
|
|
372
|
+
* Returns `undefined` when the index has never been built (no tick yet, no
|
|
373
|
+
* explicit refresh), which the wire schema defines as "not computed". Returns
|
|
374
|
+
* `null` only when the index HAS been built and holds no active schedule for
|
|
375
|
+
* this agent. Staleness is bounded by the tick interval once `start()` has run.
|
|
376
|
+
*/
|
|
377
|
+
peekNextFireAt(agentId) {
|
|
378
|
+
if (this.agentScheduleFacts === null) {
|
|
379
|
+
return undefined;
|
|
380
|
+
}
|
|
381
|
+
return this.agentScheduleFacts.nextFireAtByAgent.get(agentId) ?? null;
|
|
382
|
+
}
|
|
383
|
+
/**
|
|
384
|
+
* Synchronous read of the cached routine set: does any active OR paused
|
|
385
|
+
* schedule target this agent.
|
|
386
|
+
*
|
|
387
|
+
* Same `undefined` = "never computed" contract as `peekNextFireAt`, and served
|
|
388
|
+
* off the same cache entry so the two answers always describe the same listing.
|
|
389
|
+
*/
|
|
390
|
+
peekHasRoutine(agentId) {
|
|
391
|
+
if (this.agentScheduleFacts === null) {
|
|
392
|
+
return undefined;
|
|
393
|
+
}
|
|
394
|
+
return this.agentScheduleFacts.routineAgentIds.has(agentId);
|
|
395
|
+
}
|
|
396
|
+
async inspect(id) {
|
|
397
|
+
const schedule = await this.store.get(id);
|
|
398
|
+
if (!schedule) {
|
|
399
|
+
throw new Error(`Schedule not found: ${id}`);
|
|
400
|
+
}
|
|
401
|
+
return schedule;
|
|
402
|
+
}
|
|
403
|
+
async logs(id) {
|
|
404
|
+
const schedule = await this.inspect(id);
|
|
405
|
+
return [...schedule.runs].sort((left, right) => left.startedAt.localeCompare(right.startedAt));
|
|
406
|
+
}
|
|
407
|
+
async pause(id) {
|
|
408
|
+
const schedule = await this.inspect(id);
|
|
409
|
+
if (schedule.status === "completed") {
|
|
410
|
+
throw new Error(`Schedule ${id} is already completed`);
|
|
411
|
+
}
|
|
412
|
+
if (schedule.status === "paused") {
|
|
413
|
+
return schedule;
|
|
414
|
+
}
|
|
415
|
+
const now = this.now();
|
|
416
|
+
const paused = {
|
|
417
|
+
...schedule,
|
|
418
|
+
status: "paused",
|
|
419
|
+
nextRunAt: null,
|
|
420
|
+
pausedAt: now.toISOString(),
|
|
421
|
+
updatedAt: now.toISOString(),
|
|
422
|
+
};
|
|
423
|
+
await this.store.put(paused);
|
|
424
|
+
return paused;
|
|
425
|
+
}
|
|
426
|
+
async resume(id) {
|
|
427
|
+
const schedule = await this.inspect(id);
|
|
428
|
+
if (schedule.status === "completed") {
|
|
429
|
+
throw new Error(`Schedule ${id} is already completed`);
|
|
430
|
+
}
|
|
431
|
+
if (schedule.status === "active") {
|
|
432
|
+
return schedule;
|
|
433
|
+
}
|
|
434
|
+
const now = this.now();
|
|
435
|
+
const resumed = {
|
|
436
|
+
...schedule,
|
|
437
|
+
status: "active",
|
|
438
|
+
pausedAt: null,
|
|
439
|
+
nextRunAt: computeNextRunAt(schedule.cadence, now)?.toISOString() ?? null,
|
|
440
|
+
updatedAt: now.toISOString(),
|
|
441
|
+
};
|
|
442
|
+
await this.store.put(resumed);
|
|
443
|
+
return resumed;
|
|
444
|
+
}
|
|
445
|
+
async update(input) {
|
|
446
|
+
const schedule = await this.inspect(input.id);
|
|
447
|
+
const now = this.now();
|
|
448
|
+
let updated = schedule;
|
|
449
|
+
if (input.prompt !== undefined) {
|
|
450
|
+
updated = { ...updated, prompt: normalizePrompt(input.prompt) };
|
|
451
|
+
}
|
|
452
|
+
if (input.name !== undefined) {
|
|
453
|
+
updated = { ...updated, name: trimOptionalName(input.name) };
|
|
454
|
+
}
|
|
455
|
+
if (input.cadence !== undefined) {
|
|
456
|
+
validateScheduleCadence(input.cadence);
|
|
457
|
+
const nextRunAt = updated.status === "active"
|
|
458
|
+
? (computeNextRunAt(input.cadence, now)?.toISOString() ?? null)
|
|
459
|
+
: null;
|
|
460
|
+
updated = { ...updated, cadence: input.cadence, nextRunAt };
|
|
461
|
+
}
|
|
462
|
+
if (input.newAgentConfig !== undefined) {
|
|
463
|
+
if (updated.target.type !== "new-agent") {
|
|
464
|
+
throw new Error("new-agent config updates are only valid for new-agent target schedules");
|
|
465
|
+
}
|
|
466
|
+
updated = { ...updated, target: applyNewAgentConfig(updated.target, input.newAgentConfig) };
|
|
467
|
+
}
|
|
468
|
+
if (input.maxRuns !== undefined) {
|
|
469
|
+
updated = { ...updated, maxRuns: normalizeMaxRuns(input.maxRuns) };
|
|
470
|
+
}
|
|
471
|
+
if (input.expiresAt !== undefined) {
|
|
472
|
+
updated = { ...updated, expiresAt: input.expiresAt };
|
|
473
|
+
}
|
|
474
|
+
updated = { ...updated, updatedAt: now.toISOString() };
|
|
475
|
+
await this.store.put(updated);
|
|
476
|
+
return updated;
|
|
477
|
+
}
|
|
478
|
+
async delete(id) {
|
|
479
|
+
await this.store.delete(id);
|
|
480
|
+
}
|
|
481
|
+
async completeForAgent(agentId) {
|
|
482
|
+
const now = this.now();
|
|
483
|
+
const schedules = await this.store.list();
|
|
484
|
+
const matches = schedules.filter((schedule) => schedule.target.type === "agent" &&
|
|
485
|
+
schedule.target.agentId === agentId &&
|
|
486
|
+
schedule.status !== "completed");
|
|
487
|
+
const results = await Promise.allSettled(matches.map((schedule) => this.store.put(completeSchedule(schedule, now))));
|
|
488
|
+
let completed = 0;
|
|
489
|
+
for (const [index, result] of results.entries()) {
|
|
490
|
+
if (result.status === "fulfilled") {
|
|
491
|
+
completed += 1;
|
|
492
|
+
}
|
|
493
|
+
else {
|
|
494
|
+
this.logger.warn({ err: result.reason, scheduleId: matches[index].id, agentId }, "Failed to complete schedule for archived agent; continuing");
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
return completed;
|
|
498
|
+
}
|
|
499
|
+
async runOnce(id) {
|
|
500
|
+
const schedule = await this.inspect(id);
|
|
501
|
+
if (schedule.status === "completed") {
|
|
502
|
+
throw new Error(`Schedule ${id} is already completed`);
|
|
503
|
+
}
|
|
504
|
+
if (this.runningScheduleIds.has(id)) {
|
|
505
|
+
throw new Error(`Schedule ${id} is already running`);
|
|
506
|
+
}
|
|
507
|
+
await this.runSchedule(schedule, this.now(), { manual: true });
|
|
508
|
+
return this.inspect(id);
|
|
509
|
+
}
|
|
510
|
+
async tick() {
|
|
511
|
+
const now = this.now();
|
|
512
|
+
const schedules = await this.store.list();
|
|
513
|
+
// The tick already paid for the store read, so keep the projection cache warm
|
|
514
|
+
// off the same list rather than re-reading disk on every agent-list build.
|
|
515
|
+
this.agentScheduleFacts = indexAgentScheduleFacts(schedules);
|
|
516
|
+
for (const schedule of schedules) {
|
|
517
|
+
if (schedule.status !== "active" || !schedule.nextRunAt) {
|
|
518
|
+
continue;
|
|
519
|
+
}
|
|
520
|
+
if (this.runningScheduleIds.has(schedule.id)) {
|
|
521
|
+
continue;
|
|
522
|
+
}
|
|
523
|
+
if (shouldCompleteSchedule(schedule, now)) {
|
|
524
|
+
await this.store.put(completeSchedule(schedule, now));
|
|
525
|
+
continue;
|
|
526
|
+
}
|
|
527
|
+
if (new Date(schedule.nextRunAt).getTime() > now.getTime()) {
|
|
528
|
+
continue;
|
|
529
|
+
}
|
|
530
|
+
await this.runSchedule(schedule, now);
|
|
531
|
+
}
|
|
532
|
+
}
|
|
533
|
+
async recoverInterruptedRuns() {
|
|
534
|
+
const schedules = await this.store.list();
|
|
535
|
+
const now = this.now();
|
|
536
|
+
await Promise.all(schedules.map(async (schedule) => {
|
|
537
|
+
let updated = { ...schedule };
|
|
538
|
+
let dirty = false;
|
|
539
|
+
// Mark any in-flight runs as failed
|
|
540
|
+
const runningIndex = updated.runs.findIndex((run) => run.status === "running");
|
|
541
|
+
if (runningIndex !== -1) {
|
|
542
|
+
const runs = [...updated.runs];
|
|
543
|
+
runs[runningIndex] = {
|
|
544
|
+
...runs[runningIndex],
|
|
545
|
+
status: "failed",
|
|
546
|
+
endedAt: now.toISOString(),
|
|
547
|
+
error: "Daemon restarted before the scheduled run completed",
|
|
548
|
+
};
|
|
549
|
+
updated = { ...updated, runs };
|
|
550
|
+
dirty = true;
|
|
551
|
+
}
|
|
552
|
+
// Advance stale nextRunAt for active schedules
|
|
553
|
+
if (updated.status === "active" &&
|
|
554
|
+
updated.nextRunAt &&
|
|
555
|
+
new Date(updated.nextRunAt).getTime() <= now.getTime()) {
|
|
556
|
+
let nextRunAt = computeNextRunAt(updated.cadence, new Date(updated.nextRunAt));
|
|
557
|
+
while (nextRunAt !== null && nextRunAt.getTime() <= now.getTime()) {
|
|
558
|
+
nextRunAt = computeNextRunAt(updated.cadence, nextRunAt);
|
|
559
|
+
}
|
|
560
|
+
updated = { ...updated, nextRunAt: nextRunAt?.toISOString() ?? null };
|
|
561
|
+
dirty = true;
|
|
562
|
+
}
|
|
563
|
+
if (dirty) {
|
|
564
|
+
updated = { ...updated, updatedAt: now.toISOString() };
|
|
565
|
+
await this.store.put(updated);
|
|
566
|
+
}
|
|
567
|
+
}));
|
|
568
|
+
}
|
|
569
|
+
// Orphaned agent-target schedules (agent deleted while the daemon was down, or
|
|
570
|
+
// archived before completeForAgent existed) can never fire successfully. Complete
|
|
571
|
+
// them on startup so they stop ticking and surface as ended in the UI.
|
|
572
|
+
async sweepOrphanedSchedules() {
|
|
573
|
+
const now = this.now();
|
|
574
|
+
const schedules = await this.store.list();
|
|
575
|
+
await Promise.all(schedules.map(async (schedule) => {
|
|
576
|
+
if (schedule.target.type !== "agent" || schedule.status === "completed") {
|
|
577
|
+
return;
|
|
578
|
+
}
|
|
579
|
+
const record = await this.agentStorage.get(schedule.target.agentId);
|
|
580
|
+
if (record && !record.archivedAt) {
|
|
581
|
+
return;
|
|
582
|
+
}
|
|
583
|
+
await this.store.put(completeSchedule(schedule, now));
|
|
584
|
+
}));
|
|
585
|
+
}
|
|
586
|
+
async runSchedule(schedule, now, options) {
|
|
587
|
+
const manual = options?.manual === true;
|
|
588
|
+
this.runningScheduleIds.add(schedule.id);
|
|
589
|
+
const runId = randomUUID();
|
|
590
|
+
const runningRun = {
|
|
591
|
+
id: runId,
|
|
592
|
+
scheduledFor: manual ? now.toISOString() : (schedule.nextRunAt ?? now.toISOString()),
|
|
593
|
+
startedAt: now.toISOString(),
|
|
594
|
+
endedAt: null,
|
|
595
|
+
status: "running",
|
|
596
|
+
agentId: null,
|
|
597
|
+
output: null,
|
|
598
|
+
error: null,
|
|
599
|
+
};
|
|
600
|
+
const scheduleWithRun = {
|
|
601
|
+
...schedule,
|
|
602
|
+
updatedAt: now.toISOString(),
|
|
603
|
+
runs: [...schedule.runs, runningRun],
|
|
604
|
+
};
|
|
605
|
+
await this.store.put(scheduleWithRun);
|
|
606
|
+
try {
|
|
607
|
+
const result = await this.runner(scheduleWithRun, runId);
|
|
608
|
+
await this.finishRun({
|
|
609
|
+
scheduleId: schedule.id,
|
|
610
|
+
runId,
|
|
611
|
+
status: "succeeded",
|
|
612
|
+
agentId: result.agentId,
|
|
613
|
+
output: result.output,
|
|
614
|
+
error: null,
|
|
615
|
+
targetGone: false,
|
|
616
|
+
manual,
|
|
617
|
+
});
|
|
618
|
+
}
|
|
619
|
+
catch (error) {
|
|
620
|
+
await this.finishRun({
|
|
621
|
+
scheduleId: schedule.id,
|
|
622
|
+
runId,
|
|
623
|
+
status: "failed",
|
|
624
|
+
agentId: null,
|
|
625
|
+
output: null,
|
|
626
|
+
error: error instanceof Error ? error.message : String(error),
|
|
627
|
+
targetGone: error instanceof ScheduleTargetGoneError,
|
|
628
|
+
manual,
|
|
629
|
+
});
|
|
630
|
+
}
|
|
631
|
+
finally {
|
|
632
|
+
this.runningScheduleIds.delete(schedule.id);
|
|
633
|
+
}
|
|
634
|
+
}
|
|
635
|
+
async finishRun(params) {
|
|
636
|
+
const schedule = await this.inspect(params.scheduleId);
|
|
637
|
+
const now = this.now();
|
|
638
|
+
const completedRuns = schedule.runs.map((run) => run.id === params.runId
|
|
639
|
+
? {
|
|
640
|
+
...run,
|
|
641
|
+
status: params.status,
|
|
642
|
+
endedAt: now.toISOString(),
|
|
643
|
+
agentId: params.agentId,
|
|
644
|
+
output: params.output,
|
|
645
|
+
error: params.error,
|
|
646
|
+
}
|
|
647
|
+
: run);
|
|
648
|
+
let updated = {
|
|
649
|
+
...schedule,
|
|
650
|
+
runs: completedRuns,
|
|
651
|
+
lastRunAt: now.toISOString(),
|
|
652
|
+
updatedAt: now.toISOString(),
|
|
653
|
+
};
|
|
654
|
+
if (params.targetGone) {
|
|
655
|
+
// The target is permanently gone; retrying only burns the schedule down to
|
|
656
|
+
// its expiry, so complete it now regardless of manual/scheduled origin.
|
|
657
|
+
updated = completeSchedule(updated, now);
|
|
658
|
+
}
|
|
659
|
+
else if (updated.status === "completed") {
|
|
660
|
+
// Completed concurrently (e.g. the target agent was archived mid-run);
|
|
661
|
+
// record the run outcome but leave the schedule terminal — don't advance.
|
|
662
|
+
}
|
|
663
|
+
else if (params.manual) {
|
|
664
|
+
// Manual one-shot runs do not advance the cadence or recompute completion.
|
|
665
|
+
}
|
|
666
|
+
else if (shouldCompleteSchedule(updated, now)) {
|
|
667
|
+
updated = completeSchedule(updated, now);
|
|
668
|
+
}
|
|
669
|
+
else if (updated.status === "paused") {
|
|
670
|
+
updated = {
|
|
671
|
+
...updated,
|
|
672
|
+
nextRunAt: null,
|
|
673
|
+
};
|
|
674
|
+
}
|
|
675
|
+
else {
|
|
676
|
+
const after = new Date(schedule.nextRunAt ?? now.toISOString());
|
|
677
|
+
let nextRunAt = computeNextRunAt(updated.cadence, after);
|
|
678
|
+
while (nextRunAt !== null && nextRunAt.getTime() <= now.getTime()) {
|
|
679
|
+
nextRunAt = computeNextRunAt(updated.cadence, nextRunAt);
|
|
680
|
+
}
|
|
681
|
+
updated = {
|
|
682
|
+
...updated,
|
|
683
|
+
nextRunAt: nextRunAt?.toISOString() ?? null,
|
|
684
|
+
};
|
|
685
|
+
}
|
|
686
|
+
await this.store.put(updated);
|
|
687
|
+
}
|
|
688
|
+
async executeSchedule(schedule, runId) {
|
|
689
|
+
if (schedule.target.type === "agent") {
|
|
690
|
+
const wrappedPrompt = formatSystemNotificationPrompt(buildScheduleFireBody(schedule, runId));
|
|
691
|
+
const record = await this.agentStorage.get(schedule.target.agentId);
|
|
692
|
+
if (!record) {
|
|
693
|
+
throw new ScheduleTargetGoneError(`Agent ${schedule.target.agentId} no longer exists`);
|
|
694
|
+
}
|
|
695
|
+
if (record.archivedAt) {
|
|
696
|
+
throw new ScheduleTargetGoneError(`Agent ${schedule.target.agentId} is archived`);
|
|
697
|
+
}
|
|
698
|
+
const agent = await ensureAgentLoaded(schedule.target.agentId, {
|
|
699
|
+
agentManager: this.agentManager,
|
|
700
|
+
agentStorage: this.agentStorage,
|
|
701
|
+
logger: this.logger,
|
|
702
|
+
});
|
|
703
|
+
if (this.agentManager.hasInFlightRun(agent.id)) {
|
|
704
|
+
throw new Error(`Agent ${agent.id} already has an active run`);
|
|
705
|
+
}
|
|
706
|
+
const result = await this.agentManager.runAgent(agent.id, wrappedPrompt);
|
|
707
|
+
const timelineText = curateAgentActivity(result.timeline);
|
|
708
|
+
return {
|
|
709
|
+
agentId: agent.id,
|
|
710
|
+
output: buildRunOutput({
|
|
711
|
+
output: null,
|
|
712
|
+
timelineText,
|
|
713
|
+
finalText: result.finalText,
|
|
714
|
+
}),
|
|
715
|
+
};
|
|
716
|
+
}
|
|
717
|
+
const targetConfig = schedule.target.config;
|
|
718
|
+
// The cwd guard fires BEFORE any filter resolution, and a test pins that
|
|
719
|
+
// ordering (`fires the missing-cwd guard ahead of any filter resolution`): a
|
|
720
|
+
// dead working directory is permanent, so polling a source and resolving a
|
|
721
|
+
// filter against it is outward work that can never pay off.
|
|
722
|
+
// `runUnattendedSession` runs the same guard again, because it is the entry
|
|
723
|
+
// point for the dry-run path too and must not depend on a caller remembering.
|
|
724
|
+
// `stat` is read-only and idempotent; the source path pays one extra syscall.
|
|
725
|
+
await this.assertTargetCwdExists(targetConfig.cwd);
|
|
726
|
+
const labels = {
|
|
727
|
+
"paseo.schedule-id": schedule.id,
|
|
728
|
+
"paseo.schedule-run": runId,
|
|
729
|
+
};
|
|
730
|
+
// Non-source cadences keep sending the stored prompt untouched. The source path
|
|
731
|
+
// ignores `schedule.prompt` entirely and briefs the session from the filter.
|
|
732
|
+
let runPrompt = schedule.prompt;
|
|
733
|
+
if (schedule.cadence.type === "source") {
|
|
734
|
+
const filter = await this.filterResolver(schedule.cadence.filterId);
|
|
735
|
+
if (!filter) {
|
|
736
|
+
// A deleted filter is the exact analogue of a deleted cwd: permanent, so it
|
|
737
|
+
// reuses the error that completes the schedule instead of retrying forever.
|
|
738
|
+
throw new ScheduleTargetGoneError(`Filter ${schedule.cadence.filterId} no longer exists`);
|
|
739
|
+
}
|
|
740
|
+
// Collapse INSIDE the run single-flight already admitted, never around it.
|
|
741
|
+
// The single-flight set stays keyed on the bare schedule id: the moment that key
|
|
742
|
+
// became a (schedule, group) pair, nine group keys would become nine concurrent
|
|
743
|
+
// sessions in one working directory, the exact thing a group key exists to stop.
|
|
744
|
+
// So this run dispatches the first group and the remainder waits for the next
|
|
745
|
+
// tick. The remainder is deliberately not queued or persisted; the provider is
|
|
746
|
+
// the memory in this epic, and Epic 3's ledger is the memory after it.
|
|
747
|
+
const groups = groupMatchedItems(await this.matchedItems(schedule, filter), filter.groupKey);
|
|
748
|
+
if (groups.length === 0) {
|
|
749
|
+
// Matching nothing is the common case for a poll, not a failure. Mint no
|
|
750
|
+
// session, brief no agent, and let the cadence advance normally.
|
|
751
|
+
return { agentId: null, output: null };
|
|
752
|
+
}
|
|
753
|
+
const group = groups[0];
|
|
754
|
+
runPrompt = buildSourceRunPrompt({ filter, items: group.items, runId });
|
|
755
|
+
labels[FILTER_ID_LABEL] = filter.id;
|
|
756
|
+
labels[ITEM_GROUP_LABEL] = group.key;
|
|
757
|
+
labels[ITEM_KEYS_LABEL] = group.items.map((item) => item.key).join(",");
|
|
758
|
+
}
|
|
759
|
+
// No `mcpServersOverride`: the tick path keeps `targetConfig.mcpServers`
|
|
760
|
+
// exactly as stored, so this branch is byte-identical to what it was before
|
|
761
|
+
// the extraction.
|
|
762
|
+
return this.runUnattendedSession({ targetConfig, prompt: runPrompt, labels });
|
|
763
|
+
}
|
|
764
|
+
/**
|
|
765
|
+
* A dead `cwd` is a permanently gone target, not a transient failure.
|
|
766
|
+
*
|
|
767
|
+
* Split out so `executeSchedule` can fire it ahead of source-filter resolution
|
|
768
|
+
* while `runUnattendedSession` still owns it for every other caller.
|
|
769
|
+
*/
|
|
770
|
+
async assertTargetCwdExists(cwd) {
|
|
771
|
+
try {
|
|
772
|
+
await stat(cwd);
|
|
773
|
+
}
|
|
774
|
+
catch (error) {
|
|
775
|
+
if (error.code === "ENOENT") {
|
|
776
|
+
throw new ScheduleTargetGoneError(`Working directory ${cwd} no longer exists`);
|
|
777
|
+
}
|
|
778
|
+
throw error;
|
|
779
|
+
}
|
|
780
|
+
}
|
|
781
|
+
/**
|
|
782
|
+
* Mint one unattended session against a `new-agent` target, run it, archive it,
|
|
783
|
+
* and hand back the curated output.
|
|
784
|
+
*
|
|
785
|
+
* This is the ONE new-agent minting path in the daemon. The overnight tick
|
|
786
|
+
* reaches it through `executeSchedule`; Epic 5's manual dry run reaches it
|
|
787
|
+
* directly as a `DryRunDispatcher`, which `ScheduleService` satisfies
|
|
788
|
+
* structurally with no adapter class. A second copy of this block is how the
|
|
789
|
+
* two paths would drift on `unattended`, on archival, or on title derivation.
|
|
790
|
+
*
|
|
791
|
+
* The caller owns the prompt and the labels. This method owns everything that
|
|
792
|
+
* touches the provider.
|
|
793
|
+
*/
|
|
794
|
+
async runUnattendedSession(input) {
|
|
795
|
+
const { targetConfig, prompt, labels } = input;
|
|
796
|
+
await this.assertTargetCwdExists(targetConfig.cwd);
|
|
797
|
+
const resolvedUnattendedConfig = targetConfig.modeId
|
|
798
|
+
? { modeId: targetConfig.modeId, featureValues: targetConfig.featureValues }
|
|
799
|
+
: await this.resolveProviderCreateConfig({
|
|
800
|
+
provider: targetConfig.provider,
|
|
801
|
+
cwd: targetConfig.cwd,
|
|
802
|
+
requestedMode: undefined,
|
|
803
|
+
featureValues: targetConfig.featureValues,
|
|
804
|
+
parent: null,
|
|
805
|
+
unattended: true,
|
|
806
|
+
});
|
|
807
|
+
const config = {
|
|
808
|
+
provider: targetConfig.provider,
|
|
809
|
+
cwd: targetConfig.cwd,
|
|
810
|
+
modeId: resolvedUnattendedConfig.modeId,
|
|
811
|
+
model: targetConfig.model,
|
|
812
|
+
thinkingOptionId: targetConfig.thinkingOptionId,
|
|
813
|
+
title: targetConfig.title,
|
|
814
|
+
approvalPolicy: targetConfig.approvalPolicy,
|
|
815
|
+
sandboxMode: targetConfig.sandboxMode,
|
|
816
|
+
networkAccess: targetConfig.networkAccess,
|
|
817
|
+
webSearch: targetConfig.webSearch,
|
|
818
|
+
featureValues: resolvedUnattendedConfig.featureValues,
|
|
819
|
+
extra: targetConfig.extra,
|
|
820
|
+
// An explicit `{}` is a DECISION ("this session gets zero MCP servers from
|
|
821
|
+
// paseo"), not an absence, and it must survive the trip. So the branch is on
|
|
822
|
+
// `!== undefined` rather than on truthiness or on `??`: an override of `{}`
|
|
823
|
+
// replaces the stored record entirely, while omitting the override leaves the
|
|
824
|
+
// tick path's behaviour exactly as it was.
|
|
825
|
+
systemPrompt: targetConfig.systemPrompt,
|
|
826
|
+
mcpServers: input.mcpServersOverride !== undefined
|
|
827
|
+
? input.mcpServersOverride
|
|
828
|
+
: targetConfig.mcpServers,
|
|
829
|
+
};
|
|
830
|
+
const { provisionalTitle } = resolveCreateAgentTitles({
|
|
831
|
+
configTitle: config.title,
|
|
832
|
+
initialPrompt: prompt,
|
|
833
|
+
});
|
|
834
|
+
const agent = await this.agentManager.createAgent(config, undefined, {
|
|
835
|
+
labels,
|
|
836
|
+
initialPrompt: prompt,
|
|
837
|
+
initialTitle: provisionalTitle,
|
|
838
|
+
});
|
|
839
|
+
let result;
|
|
840
|
+
try {
|
|
841
|
+
result = await this.agentManager.runAgent(agent.id, prompt);
|
|
842
|
+
}
|
|
843
|
+
catch (error) {
|
|
844
|
+
try {
|
|
845
|
+
await this.agentManager.archiveAgent(agent.id);
|
|
846
|
+
}
|
|
847
|
+
catch (archiveError) {
|
|
848
|
+
this.logger.warn({ err: archiveError, agentId: agent.id, labels }, "Failed to archive scheduled agent after failed run");
|
|
849
|
+
}
|
|
850
|
+
throw error;
|
|
851
|
+
}
|
|
852
|
+
await this.agentManager.archiveAgent(agent.id);
|
|
853
|
+
const timelineText = curateAgentActivity(result.timeline);
|
|
854
|
+
return {
|
|
855
|
+
agentId: agent.id,
|
|
856
|
+
output: buildRunOutput({
|
|
857
|
+
output: null,
|
|
858
|
+
timelineText,
|
|
859
|
+
finalText: result.finalText,
|
|
860
|
+
}),
|
|
861
|
+
};
|
|
862
|
+
}
|
|
863
|
+
async resolveProviderCreateConfig(input) {
|
|
864
|
+
return this.createConfigResolver.resolveCreateConfig(input);
|
|
865
|
+
}
|
|
866
|
+
}
|
|
867
|
+
//# sourceMappingURL=service.js.map
|