@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,20 @@
|
|
|
1
|
+
import type { Reconciler } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* `https://sentry.io/organizations/acme/issues/4567/` -> `4567`.
|
|
4
|
+
*
|
|
5
|
+
* Both the `/organizations/<org>/issues/<id>` and the newer
|
|
6
|
+
* `/issues/<id>` shapes carry the numeric id in the same position, so one
|
|
7
|
+
* pattern covers both. A short id (`ACME-1AB`) appearing in the URL instead is
|
|
8
|
+
* accepted too: it is what the API echoes back and what the signature prefers.
|
|
9
|
+
*/
|
|
10
|
+
export declare function parseSentryIssueId(url: string | null): string | null;
|
|
11
|
+
/**
|
|
12
|
+
* Signatures: `sentry:resolved:<shortId>`, `sentry:ignored:<shortId>`,
|
|
13
|
+
* `sentry:gone:<shortId>`.
|
|
14
|
+
*
|
|
15
|
+
* The short id is Sentry's own human-readable handle (`ACME-1AB`). The error
|
|
16
|
+
* message and the culprit stay out: a stack frame is a file path from somebody's
|
|
17
|
+
* machine.
|
|
18
|
+
*/
|
|
19
|
+
export declare const sentryReconciler: Reconciler;
|
|
20
|
+
//# sourceMappingURL=sentry.d.ts.map
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
// "Did somebody resolve or ignore this issue without paseo?"
|
|
2
|
+
//
|
|
3
|
+
// Sentry has a fourth state the other five apps do not: an issue can be MERGED
|
|
4
|
+
// into another issue, at which point its own id still resolves but its status is
|
|
5
|
+
// no longer about itself. That is `artifact-gone` rather than
|
|
6
|
+
// `handled-elsewhere`, because nobody handled this issue - it stopped existing
|
|
7
|
+
// as a separate obligation.
|
|
8
|
+
//
|
|
9
|
+
// `ignored` closes alongside `resolved`, and that is a deliberate product call
|
|
10
|
+
// rather than an oversight: an ignored issue is one a human looked at and
|
|
11
|
+
// decided not to act on, which is the same "this no longer needs you" that the
|
|
12
|
+
// Inbox exists to respect. `unresolved` is the only status that keeps the row.
|
|
13
|
+
import { callMcpTool } from "./mcp-call.js";
|
|
14
|
+
import { asBoolean, asRecord, asString, metaUrl, pickFirst } from "./payload.js";
|
|
15
|
+
/** ONE round-trip. The issue, its status and its short id. */
|
|
16
|
+
const SENTRY_ISSUE_TOOL = "SENTRY_GET_ISSUE";
|
|
17
|
+
/** Where the issue body might live, unwrapped path first. */
|
|
18
|
+
const ISSUE_PATHS = ["issue", "data.issue", "data", "response_data"];
|
|
19
|
+
/**
|
|
20
|
+
* `https://sentry.io/organizations/acme/issues/4567/` -> `4567`.
|
|
21
|
+
*
|
|
22
|
+
* Both the `/organizations/<org>/issues/<id>` and the newer
|
|
23
|
+
* `/issues/<id>` shapes carry the numeric id in the same position, so one
|
|
24
|
+
* pattern covers both. A short id (`ACME-1AB`) appearing in the URL instead is
|
|
25
|
+
* accepted too: it is what the API echoes back and what the signature prefers.
|
|
26
|
+
*/
|
|
27
|
+
export function parseSentryIssueId(url) {
|
|
28
|
+
if (url === null)
|
|
29
|
+
return null;
|
|
30
|
+
const match = /\/issues\/([A-Za-z0-9_-]+)/.exec(url);
|
|
31
|
+
return match?.[1] ?? null;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Signatures: `sentry:resolved:<shortId>`, `sentry:ignored:<shortId>`,
|
|
35
|
+
* `sentry:gone:<shortId>`.
|
|
36
|
+
*
|
|
37
|
+
* The short id is Sentry's own human-readable handle (`ACME-1AB`). The error
|
|
38
|
+
* message and the culprit stay out: a stack frame is a file path from somebody's
|
|
39
|
+
* machine.
|
|
40
|
+
*/
|
|
41
|
+
export const sentryReconciler = async (target, ref, signal) => {
|
|
42
|
+
try {
|
|
43
|
+
const issueId = parseSentryIssueId(metaUrl(ref.meta));
|
|
44
|
+
if (issueId === null)
|
|
45
|
+
return { verdict: "unreachable", signature: null };
|
|
46
|
+
const payload = await callMcpTool(target, SENTRY_ISSUE_TOOL, { issue_id: issueId }, signal);
|
|
47
|
+
if (payload === null)
|
|
48
|
+
return { verdict: "unreachable", signature: null };
|
|
49
|
+
// A DEFINITE 404 the server reported, not a read that failed to answer.
|
|
50
|
+
const notFound = asBoolean(pickFirst(payload, ["not_found", "data.not_found", "deleted"]));
|
|
51
|
+
if (notFound === true) {
|
|
52
|
+
return { verdict: "artifact-gone", signature: `sentry:gone:${issueId}` };
|
|
53
|
+
}
|
|
54
|
+
const issue = asRecord(pickFirst(payload, [...ISSUE_PATHS]));
|
|
55
|
+
if (!issue)
|
|
56
|
+
return { verdict: "unreachable", signature: null };
|
|
57
|
+
// Prefer the short id the API returns; fall back to the id off the URL so a
|
|
58
|
+
// payload without one still produces a citable signature.
|
|
59
|
+
const shortId = asString(pickFirst(issue, ["shortId", "short_id"])) ?? issueId;
|
|
60
|
+
// MERGED AWAY: the id resolves but the obligation moved. Checked before the
|
|
61
|
+
// status, because a merged issue inherits the parent's status and reading it
|
|
62
|
+
// would attribute the parent's resolution to this row.
|
|
63
|
+
const mergedInto = asString(pickFirst(issue, ["mergedInto", "merged_into", "parent_id"]));
|
|
64
|
+
if (mergedInto !== null) {
|
|
65
|
+
return { verdict: "artifact-gone", signature: `sentry:gone:${shortId}` };
|
|
66
|
+
}
|
|
67
|
+
const status = asString(pickFirst(issue, ["status", "state"]))?.toLowerCase() ?? null;
|
|
68
|
+
if (status === null)
|
|
69
|
+
return { verdict: "unreachable", signature: null };
|
|
70
|
+
if (status === "resolved") {
|
|
71
|
+
return { verdict: "handled-elsewhere", signature: `sentry:resolved:${shortId}` };
|
|
72
|
+
}
|
|
73
|
+
if (status === "ignored" || status === "muted" || status === "archived") {
|
|
74
|
+
return { verdict: "handled-elsewhere", signature: `sentry:ignored:${shortId}` };
|
|
75
|
+
}
|
|
76
|
+
if (status === "unresolved") {
|
|
77
|
+
return { verdict: "pending", signature: null };
|
|
78
|
+
}
|
|
79
|
+
return { verdict: "unreachable", signature: null };
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
return { verdict: "unreachable", signature: null };
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
//# sourceMappingURL=sentry.js.map
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import type pino from "pino";
|
|
2
|
+
import type { IngestionLedger } from "../ledger.js";
|
|
3
|
+
import { resolveReconciler as defaultResolveReconciler } from "./registry.js";
|
|
4
|
+
import type { ReconcileCandidate, ReconcileOutcome, ResolveMcpTarget } from "./types.js";
|
|
5
|
+
/** The subset of daemon config this service reads. Structural, so a test needs no store. */
|
|
6
|
+
export interface ReconcileConfigReader {
|
|
7
|
+
get(): {
|
|
8
|
+
ingestionReconcileEnabled?: boolean;
|
|
9
|
+
ingestionReconcileStaleMs?: number;
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export interface ReconciliationServiceOptions {
|
|
13
|
+
ledger: IngestionLedger;
|
|
14
|
+
resolveMcpTarget: ResolveMcpTarget;
|
|
15
|
+
daemonConfigStore: ReconcileConfigReader;
|
|
16
|
+
logger: pino.Logger;
|
|
17
|
+
/** Mirrors `ScheduleService.now` (`service.ts:213`) so no test reads the wall clock. */
|
|
18
|
+
now?: () => Date;
|
|
19
|
+
/** Injectable so a test registers a fake without mutating the module-level `RECONCILERS`. */
|
|
20
|
+
resolveReconciler?: typeof defaultResolveReconciler;
|
|
21
|
+
}
|
|
22
|
+
export interface ReadLatencySnapshot {
|
|
23
|
+
count: number;
|
|
24
|
+
p50: number;
|
|
25
|
+
p95: number;
|
|
26
|
+
max: number;
|
|
27
|
+
}
|
|
28
|
+
export declare class ReconciliationService {
|
|
29
|
+
private readonly ledger;
|
|
30
|
+
private readonly resolveMcpTarget;
|
|
31
|
+
private readonly daemonConfigStore;
|
|
32
|
+
private readonly logger;
|
|
33
|
+
private readonly now;
|
|
34
|
+
private readonly resolveReconciler;
|
|
35
|
+
/**
|
|
36
|
+
* In-flight reads, keyed `${filterId}:${itemKey}`.
|
|
37
|
+
*
|
|
38
|
+
* A `Map`, not a `Set`, and the difference is the whole point: the `Set` in
|
|
39
|
+
* `setupAutoArchiveOnMerge` can afford to SKIP a duplicate because its work
|
|
40
|
+
* has no return value, whereas a second caller here needs the first caller's
|
|
41
|
+
* verdict. Storing the promise lets the loser await the winner's outcome
|
|
42
|
+
* instead of getting a hole in its result map.
|
|
43
|
+
*/
|
|
44
|
+
private readonly inFlight;
|
|
45
|
+
/** Slugs already complained about, so an unknown app is loud once per process. */
|
|
46
|
+
private readonly warnedSlugs;
|
|
47
|
+
/** Per-slug read round-trips in ms, bounded at `LATENCY_RING_SIZE`. */
|
|
48
|
+
private readonly latency;
|
|
49
|
+
private lastTelemetryAt;
|
|
50
|
+
constructor(options: ReconciliationServiceOptions);
|
|
51
|
+
/**
|
|
52
|
+
* Verify every candidate whose stamp is stale, and return an outcome for
|
|
53
|
+
* EVERY candidate - including the ones that were skipped.
|
|
54
|
+
*
|
|
55
|
+
* The returned map is total over the input on purpose. A caller that got a
|
|
56
|
+
* partial map would have to decide what a missing key meant, and the two
|
|
57
|
+
* plausible readings ("not stale" and "the read blew up") are exactly the two
|
|
58
|
+
* this epic exists to keep apart.
|
|
59
|
+
*/
|
|
60
|
+
verifyIfStale(candidates: readonly ReconcileCandidate[]): Promise<Map<string, ReconcileOutcome>>;
|
|
61
|
+
/**
|
|
62
|
+
* Per-app read latency, for re-picking `RECONCILE_STALE_MS` and
|
|
63
|
+
* `RECONCILE_TIMEOUT_MS` off real data rather than off the guesses those
|
|
64
|
+
* constants currently hold.
|
|
65
|
+
*/
|
|
66
|
+
snapshotReadLatency(): Record<string, ReadLatencySnapshot>;
|
|
67
|
+
/**
|
|
68
|
+
* A misconfigured tunable falls back to the default rather than failing.
|
|
69
|
+
*
|
|
70
|
+
* The daemon must start even when reconciliation is misconfigured (epic
|
|
71
|
+
* Compatibility Requirement), and a zero or negative staleness window would
|
|
72
|
+
* make every candidate stale on every call - a read storm dressed as a
|
|
73
|
+
* config value.
|
|
74
|
+
*/
|
|
75
|
+
private resolveStaleMs;
|
|
76
|
+
/**
|
|
77
|
+
* Group by `sourceId`, then run ALL groups through ONE worker pool.
|
|
78
|
+
*
|
|
79
|
+
* The grouping is about isolation (NFR7): each group is awaited with
|
|
80
|
+
* `Promise.allSettled`, so a source that throws synchronously on every read
|
|
81
|
+
* cannot reject the settlement of a healthy source's group. The pool is about
|
|
82
|
+
* load: it is global to the call rather than per group, because four groups
|
|
83
|
+
* each capped at four would be sixteen concurrent reads against aggregators
|
|
84
|
+
* that rate-limit.
|
|
85
|
+
*/
|
|
86
|
+
private runGroupedBySource;
|
|
87
|
+
/**
|
|
88
|
+
* One candidate, through the single-flight map so a concurrent caller shares
|
|
89
|
+
* this exact promise rather than issuing a second read.
|
|
90
|
+
*/
|
|
91
|
+
private verifyOne;
|
|
92
|
+
private readAndRecord;
|
|
93
|
+
/**
|
|
94
|
+
* THE D4 BOUNDARY. Every path out of this function that is not a real answer
|
|
95
|
+
* from a reconciler returns `unreachable`.
|
|
96
|
+
*
|
|
97
|
+
* There are four such paths and all four are covered: `resolveMcpTarget`
|
|
98
|
+
* rejects, the reconciler throws synchronously, the reconciler rejects, the
|
|
99
|
+
* reconciler never settles. None of them can produce a closing verdict, which
|
|
100
|
+
* is why this story ships with a STRUCTURAL zero-false-close property rather
|
|
101
|
+
* than merely an untested one.
|
|
102
|
+
*/
|
|
103
|
+
private readOne;
|
|
104
|
+
/**
|
|
105
|
+
* A reconciler returned something the ledger must never store.
|
|
106
|
+
*
|
|
107
|
+
* The guard also lives at the ledger's write boundary, where it THROWS - that
|
|
108
|
+
* is the last line of defence for any caller. Here, one layer up, the throw is
|
|
109
|
+
* converted into `unreachable` for two reasons that both point the same way:
|
|
110
|
+
* the outcome map must stay total, and one carelessly written reconciler must
|
|
111
|
+
* not be able to blank the results of every healthy source in the same batch
|
|
112
|
+
* (NFR7).
|
|
113
|
+
*
|
|
114
|
+
* Logged at ERROR with its own message, not at `warn` alongside network
|
|
115
|
+
* failures. This is a DEFECT IN PASEO'S OWN CODE, not a source being
|
|
116
|
+
* unavailable, and burying it among transient read failures is how it would
|
|
117
|
+
* survive to the next release. The offending value is never logged.
|
|
118
|
+
*/
|
|
119
|
+
private guardSignature;
|
|
120
|
+
private recordLatency;
|
|
121
|
+
private maybeEmitTelemetry;
|
|
122
|
+
/**
|
|
123
|
+
* Loud ONCE per slug per process.
|
|
124
|
+
*
|
|
125
|
+
* "Enumerate what you silence" applied to the open-world edge of a closed
|
|
126
|
+
* registry: an unknown app slug is the one case this design cannot decide
|
|
127
|
+
* statically, so it is never dropped - but a filter with 400 items would
|
|
128
|
+
* otherwise emit 400 identical lines per pass and become its own noise floor.
|
|
129
|
+
*/
|
|
130
|
+
private warnUnknownSlugOnce;
|
|
131
|
+
private storedOutcome;
|
|
132
|
+
private outcomeFrom;
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=service.d.ts.map
|
|
@@ -0,0 +1,409 @@
|
|
|
1
|
+
// RE-READ THE SOURCE, and never let the re-read hurt anything.
|
|
2
|
+
//
|
|
3
|
+
// The whole design pressure on this file is one sentence from the epic: a row's
|
|
4
|
+
// pending-ness must be derived from the source payload, not from what the
|
|
5
|
+
// pipeline recorded about its own attempt. That means issuing real network reads
|
|
6
|
+
// from something an Inbox will eventually call - so every gate here exists to
|
|
7
|
+
// make that safe:
|
|
8
|
+
//
|
|
9
|
+
// kill switch -> the feature can be turned off without a deploy
|
|
10
|
+
// registry gate -> an unknown app is skipped, loudly, not marked failed
|
|
11
|
+
// backoff gate -> a source down three reads running is left alone for 15min
|
|
12
|
+
// staleness gate -> a fresh stamp costs zero reads
|
|
13
|
+
// single-flight -> two callers for one item issue one read and share it
|
|
14
|
+
// timeout race -> a reconciler that hangs cannot hang the pool
|
|
15
|
+
// concurrency -> at most four reads in flight per call, globally
|
|
16
|
+
// per-source -> one dead source cannot blank another's results
|
|
17
|
+
// failure sweep -> EVERY failure maps to `unreachable`, which can never close
|
|
18
|
+
//
|
|
19
|
+
// Story 6.1 built the gates and constructed nothing. Story 6.2 wires this into
|
|
20
|
+
// the Inbox read path - AFTER the emit, never before it, via a deliberate `void`
|
|
21
|
+
// in `ChatIngestionSession.handleIngestionRunsRequest` - and adds the backoff
|
|
22
|
+
// gate that reads the counter Story 6.1 could only increment.
|
|
23
|
+
import { RECONCILE_MAX_CONCURRENCY, RECONCILE_STALE_MS, RECONCILE_TELEMETRY_INTERVAL_MS, RECONCILE_TIMEOUT_MS, RECONCILE_UNREACHABLE_BACKOFF_MS, RECONCILE_UNREACHABLE_THRESHOLD, } from "./constants.js";
|
|
24
|
+
import { resolveReconciler as defaultResolveReconciler } from "./registry.js";
|
|
25
|
+
import { assertSafeSignature, UnsafeSignatureError } from "./signature-guard.js";
|
|
26
|
+
/** The failure verdict, shared so no call site can typo one into a closing verdict. */
|
|
27
|
+
const UNREACHABLE = { verdict: "unreachable", signature: null };
|
|
28
|
+
/** Samples kept per app slug. Bounded so a long-running daemon's telemetry cannot grow. */
|
|
29
|
+
const LATENCY_RING_SIZE = 200;
|
|
30
|
+
/** Neutral state for an item the ledger has never seen. */
|
|
31
|
+
const NEVER_VERIFIED = {
|
|
32
|
+
verifiedAt: null,
|
|
33
|
+
verdict: null,
|
|
34
|
+
verifiedSignature: null,
|
|
35
|
+
reconcileAttemptedAt: null,
|
|
36
|
+
reconcileFailCount: 0,
|
|
37
|
+
};
|
|
38
|
+
/** `${filterId}:${itemKey}` - the ledger's primary key, flattened. */
|
|
39
|
+
function keyOf(candidate) {
|
|
40
|
+
return `${candidate.filterId}:${candidate.itemKey}`;
|
|
41
|
+
}
|
|
42
|
+
/** Nearest-rank percentile over an already-sorted ascending array. */
|
|
43
|
+
function percentile(sorted, fraction) {
|
|
44
|
+
if (sorted.length === 0)
|
|
45
|
+
return 0;
|
|
46
|
+
const index = Math.min(sorted.length - 1, Math.max(0, Math.ceil(fraction * sorted.length) - 1));
|
|
47
|
+
return sorted[index] ?? 0;
|
|
48
|
+
}
|
|
49
|
+
export class ReconciliationService {
|
|
50
|
+
constructor(options) {
|
|
51
|
+
/**
|
|
52
|
+
* In-flight reads, keyed `${filterId}:${itemKey}`.
|
|
53
|
+
*
|
|
54
|
+
* A `Map`, not a `Set`, and the difference is the whole point: the `Set` in
|
|
55
|
+
* `setupAutoArchiveOnMerge` can afford to SKIP a duplicate because its work
|
|
56
|
+
* has no return value, whereas a second caller here needs the first caller's
|
|
57
|
+
* verdict. Storing the promise lets the loser await the winner's outcome
|
|
58
|
+
* instead of getting a hole in its result map.
|
|
59
|
+
*/
|
|
60
|
+
this.inFlight = new Map();
|
|
61
|
+
/** Slugs already complained about, so an unknown app is loud once per process. */
|
|
62
|
+
this.warnedSlugs = new Set();
|
|
63
|
+
/** Per-slug read round-trips in ms, bounded at `LATENCY_RING_SIZE`. */
|
|
64
|
+
this.latency = new Map();
|
|
65
|
+
this.lastTelemetryAt = 0;
|
|
66
|
+
this.ledger = options.ledger;
|
|
67
|
+
this.resolveMcpTarget = options.resolveMcpTarget;
|
|
68
|
+
this.daemonConfigStore = options.daemonConfigStore;
|
|
69
|
+
this.logger = options.logger;
|
|
70
|
+
this.now = options.now ?? (() => new Date());
|
|
71
|
+
this.resolveReconciler = options.resolveReconciler ?? defaultResolveReconciler;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Verify every candidate whose stamp is stale, and return an outcome for
|
|
75
|
+
* EVERY candidate - including the ones that were skipped.
|
|
76
|
+
*
|
|
77
|
+
* The returned map is total over the input on purpose. A caller that got a
|
|
78
|
+
* partial map would have to decide what a missing key meant, and the two
|
|
79
|
+
* plausible readings ("not stale" and "the read blew up") are exactly the two
|
|
80
|
+
* this epic exists to keep apart.
|
|
81
|
+
*/
|
|
82
|
+
async verifyIfStale(candidates) {
|
|
83
|
+
const outcomes = new Map();
|
|
84
|
+
if (candidates.length === 0)
|
|
85
|
+
return outcomes;
|
|
86
|
+
const config = this.daemonConfigStore.get();
|
|
87
|
+
// 1. KILL SWITCH. Zero reads, zero writes, stored verdicts for everybody.
|
|
88
|
+
// Shaped after `archive-if-safe.ts:65`: an explicit `=== false` rather than
|
|
89
|
+
// a falsy check, so an absent key means "on" (the default) and only a
|
|
90
|
+
// deliberate `false` turns it off.
|
|
91
|
+
if (config.ingestionReconcileEnabled === false) {
|
|
92
|
+
for (const candidate of candidates) {
|
|
93
|
+
outcomes.set(keyOf(candidate), this.storedOutcome(candidate, false));
|
|
94
|
+
}
|
|
95
|
+
return outcomes;
|
|
96
|
+
}
|
|
97
|
+
const staleMs = this.resolveStaleMs(config.ingestionReconcileStaleMs);
|
|
98
|
+
const now = this.now().getTime();
|
|
99
|
+
const stale = [];
|
|
100
|
+
for (const candidate of candidates) {
|
|
101
|
+
const key = keyOf(candidate);
|
|
102
|
+
// 2. REGISTRY GATE (D-6.1-B). No reconciler is PERMANENT, not transient:
|
|
103
|
+
// no read, no verdict, no counter, `verified_at` untouched. The row stands
|
|
104
|
+
// - the safe direction - and the gap is loud in the logs rather than
|
|
105
|
+
// invisible.
|
|
106
|
+
if (this.resolveReconciler(candidate.appSlug) === null) {
|
|
107
|
+
this.warnUnknownSlugOnce(candidate.appSlug);
|
|
108
|
+
outcomes.set(key, { ...this.storedOutcome(candidate, false), skippedNoReconciler: true });
|
|
109
|
+
continue;
|
|
110
|
+
}
|
|
111
|
+
const stored = this.ledger.getVerification(candidate.filterId, candidate.itemKey);
|
|
112
|
+
// 3. UNREACHABLE BACKOFF GATE, and it runs BEFORE the staleness gate on
|
|
113
|
+
// purpose. An item that has been unreachable three times running is stale
|
|
114
|
+
// by definition - `unreachable` never advances `verified_at` (epic D4) -
|
|
115
|
+
// so a staleness check would wave it through on every single call and this
|
|
116
|
+
// gate would never be reached. Ordering is the whole mechanism.
|
|
117
|
+
//
|
|
118
|
+
// What it pauses is RECONCILIATION, not dispatch: Epic 3's `fail_count`
|
|
119
|
+
// and its cooldown are untouched (epic D5), and the row keeps rendering.
|
|
120
|
+
// The only thing that stops is paseo asking a source that is not
|
|
121
|
+
// answering. A single `pending` read resets the counter to zero per the
|
|
122
|
+
// verdict table; either closing verdict ends the item's Inbox life.
|
|
123
|
+
if (stored &&
|
|
124
|
+
stored.reconcileFailCount >= RECONCILE_UNREACHABLE_THRESHOLD &&
|
|
125
|
+
stored.reconcileAttemptedAt !== null &&
|
|
126
|
+
now < stored.reconcileAttemptedAt + RECONCILE_UNREACHABLE_BACKOFF_MS) {
|
|
127
|
+
outcomes.set(key, this.outcomeFrom(candidate, stored, false));
|
|
128
|
+
continue;
|
|
129
|
+
}
|
|
130
|
+
// 4. STALENESS GATE. A stamp inside the window is trusted as-is.
|
|
131
|
+
if (stored && stored.verifiedAt !== null && now - stored.verifiedAt < staleMs) {
|
|
132
|
+
outcomes.set(key, this.outcomeFrom(candidate, stored, false));
|
|
133
|
+
continue;
|
|
134
|
+
}
|
|
135
|
+
// 5. SINGLE-FLIGHT. Reuse the in-flight read rather than issuing a second.
|
|
136
|
+
const existing = this.inFlight.get(key);
|
|
137
|
+
if (existing) {
|
|
138
|
+
outcomes.set(key, await existing);
|
|
139
|
+
continue;
|
|
140
|
+
}
|
|
141
|
+
stale.push(candidate);
|
|
142
|
+
}
|
|
143
|
+
if (stale.length > 0) {
|
|
144
|
+
await this.runGroupedBySource(stale, outcomes);
|
|
145
|
+
this.maybeEmitTelemetry();
|
|
146
|
+
}
|
|
147
|
+
return outcomes;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Per-app read latency, for re-picking `RECONCILE_STALE_MS` and
|
|
151
|
+
* `RECONCILE_TIMEOUT_MS` off real data rather than off the guesses those
|
|
152
|
+
* constants currently hold.
|
|
153
|
+
*/
|
|
154
|
+
snapshotReadLatency() {
|
|
155
|
+
const snapshot = {};
|
|
156
|
+
for (const [slug, samples] of this.latency) {
|
|
157
|
+
const sorted = [...samples].sort((a, b) => a - b);
|
|
158
|
+
snapshot[slug] = {
|
|
159
|
+
count: sorted.length,
|
|
160
|
+
p50: percentile(sorted, 0.5),
|
|
161
|
+
p95: percentile(sorted, 0.95),
|
|
162
|
+
max: sorted.length > 0 ? (sorted[sorted.length - 1] ?? 0) : 0,
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
return snapshot;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* A misconfigured tunable falls back to the default rather than failing.
|
|
169
|
+
*
|
|
170
|
+
* The daemon must start even when reconciliation is misconfigured (epic
|
|
171
|
+
* Compatibility Requirement), and a zero or negative staleness window would
|
|
172
|
+
* make every candidate stale on every call - a read storm dressed as a
|
|
173
|
+
* config value.
|
|
174
|
+
*/
|
|
175
|
+
resolveStaleMs(configured) {
|
|
176
|
+
if (typeof configured !== "number" || !Number.isInteger(configured) || configured <= 0) {
|
|
177
|
+
return RECONCILE_STALE_MS;
|
|
178
|
+
}
|
|
179
|
+
return configured;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Group by `sourceId`, then run ALL groups through ONE worker pool.
|
|
183
|
+
*
|
|
184
|
+
* The grouping is about isolation (NFR7): each group is awaited with
|
|
185
|
+
* `Promise.allSettled`, so a source that throws synchronously on every read
|
|
186
|
+
* cannot reject the settlement of a healthy source's group. The pool is about
|
|
187
|
+
* load: it is global to the call rather than per group, because four groups
|
|
188
|
+
* each capped at four would be sixteen concurrent reads against aggregators
|
|
189
|
+
* that rate-limit.
|
|
190
|
+
*/
|
|
191
|
+
async runGroupedBySource(stale, outcomes) {
|
|
192
|
+
const groups = new Map();
|
|
193
|
+
for (const candidate of stale) {
|
|
194
|
+
const group = groups.get(candidate.sourceId);
|
|
195
|
+
if (group)
|
|
196
|
+
group.push(candidate);
|
|
197
|
+
else
|
|
198
|
+
groups.set(candidate.sourceId, [candidate]);
|
|
199
|
+
}
|
|
200
|
+
// One shared index cursor across the flattened list. Workers pull the next
|
|
201
|
+
// candidate rather than owning a slice, so a group of slow reads cannot
|
|
202
|
+
// leave three workers idle.
|
|
203
|
+
const flat = [...groups.values()].flat();
|
|
204
|
+
let cursor = 0;
|
|
205
|
+
const results = new Map();
|
|
206
|
+
const worker = async () => {
|
|
207
|
+
for (;;) {
|
|
208
|
+
const index = cursor;
|
|
209
|
+
cursor += 1;
|
|
210
|
+
const candidate = flat[index];
|
|
211
|
+
if (!candidate)
|
|
212
|
+
return;
|
|
213
|
+
results.set(keyOf(candidate), await this.verifyOne(candidate));
|
|
214
|
+
}
|
|
215
|
+
};
|
|
216
|
+
const workerCount = Math.min(RECONCILE_MAX_CONCURRENCY, flat.length);
|
|
217
|
+
// `allSettled`, not `all`: `verifyOne` already maps every failure to
|
|
218
|
+
// `unreachable`, so a rejection here would be a defect in this file rather
|
|
219
|
+
// than a source failure - and taking the whole call down for it would blank
|
|
220
|
+
// the healthy sources too.
|
|
221
|
+
await Promise.allSettled(Array.from({ length: workerCount }, () => worker()));
|
|
222
|
+
for (const [key, outcome] of results)
|
|
223
|
+
outcomes.set(key, outcome);
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* One candidate, through the single-flight map so a concurrent caller shares
|
|
227
|
+
* this exact promise rather than issuing a second read.
|
|
228
|
+
*/
|
|
229
|
+
verifyOne(candidate) {
|
|
230
|
+
const key = keyOf(candidate);
|
|
231
|
+
const existing = this.inFlight.get(key);
|
|
232
|
+
if (existing)
|
|
233
|
+
return existing;
|
|
234
|
+
const pending = this.readAndRecord(candidate)
|
|
235
|
+
.catch((error) => {
|
|
236
|
+
// The map `verifyIfStale` returns is TOTAL over its input, and that is a
|
|
237
|
+
// contract rather than a convenience: a caller handed a partial map has
|
|
238
|
+
// to guess what a missing key meant, and the two plausible readings
|
|
239
|
+
// ("not stale" and "the read blew up") are exactly the two this epic
|
|
240
|
+
// exists to keep apart. So a residual throw here - a sqlite write
|
|
241
|
+
// failure, say - still produces an entry rather than a hole.
|
|
242
|
+
this.logger.error({
|
|
243
|
+
err: error,
|
|
244
|
+
appSlug: candidate.appSlug,
|
|
245
|
+
sourceId: candidate.sourceId,
|
|
246
|
+
itemKey: candidate.itemKey,
|
|
247
|
+
}, "Ingestion reconcile could not record a verdict");
|
|
248
|
+
return this.storedOutcome(candidate, false);
|
|
249
|
+
})
|
|
250
|
+
.finally(() => {
|
|
251
|
+
this.inFlight.delete(key);
|
|
252
|
+
});
|
|
253
|
+
this.inFlight.set(key, pending);
|
|
254
|
+
return pending;
|
|
255
|
+
}
|
|
256
|
+
async readAndRecord(candidate) {
|
|
257
|
+
const result = await this.readOne(candidate);
|
|
258
|
+
this.ledger.recordVerification(candidate.filterId, candidate.itemKey, result);
|
|
259
|
+
const stored = this.ledger.getVerification(candidate.filterId, candidate.itemKey);
|
|
260
|
+
return {
|
|
261
|
+
...this.outcomeFrom(candidate, stored ?? NEVER_VERIFIED, true),
|
|
262
|
+
// The verdict THIS read produced, which is not always what the row now
|
|
263
|
+
// holds: an `unreachable` read leaves `verified_verdict` at whatever the
|
|
264
|
+
// last successful read wrote, and a caller asking "what did we just
|
|
265
|
+
// learn?" must get `unreachable`, not the stale answer underneath it.
|
|
266
|
+
verdict: result.verdict,
|
|
267
|
+
signature: result.signature,
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* THE D4 BOUNDARY. Every path out of this function that is not a real answer
|
|
272
|
+
* from a reconciler returns `unreachable`.
|
|
273
|
+
*
|
|
274
|
+
* There are four such paths and all four are covered: `resolveMcpTarget`
|
|
275
|
+
* rejects, the reconciler throws synchronously, the reconciler rejects, the
|
|
276
|
+
* reconciler never settles. None of them can produce a closing verdict, which
|
|
277
|
+
* is why this story ships with a STRUCTURAL zero-false-close property rather
|
|
278
|
+
* than merely an untested one.
|
|
279
|
+
*/
|
|
280
|
+
async readOne(candidate) {
|
|
281
|
+
const reconciler = this.resolveReconciler(candidate.appSlug);
|
|
282
|
+
if (!reconciler)
|
|
283
|
+
return UNREACHABLE;
|
|
284
|
+
const startedAt = performance.now();
|
|
285
|
+
try {
|
|
286
|
+
// A LOCAL CONST. Never a field, never part of a returned object, never
|
|
287
|
+
// logged. This is the only place in the epic where a bearer token is in
|
|
288
|
+
// scope, and it leaves scope when this function returns.
|
|
289
|
+
const target = await this.resolveMcpTarget(candidate.sourceId, candidate.appSlug);
|
|
290
|
+
const controller = new AbortController();
|
|
291
|
+
const timer = setTimeout(() => controller.abort(), RECONCILE_TIMEOUT_MS);
|
|
292
|
+
try {
|
|
293
|
+
// RACE, DO NOT TRUST. The timeout resolves `unreachable` on its own
|
|
294
|
+
// rather than depending on the reconciler noticing its signal: a
|
|
295
|
+
// reconciler that ignores the signal must not be able to hang a pool
|
|
296
|
+
// worker forever, and "honours AbortSignal" is not a property this
|
|
297
|
+
// service can verify about code Story 6.2 has not written yet.
|
|
298
|
+
const result = await Promise.race([
|
|
299
|
+
reconciler(target, candidate.ref, controller.signal),
|
|
300
|
+
new Promise((resolve) => {
|
|
301
|
+
controller.signal.addEventListener("abort", () => resolve(UNREACHABLE), {
|
|
302
|
+
once: true,
|
|
303
|
+
});
|
|
304
|
+
}),
|
|
305
|
+
]);
|
|
306
|
+
return this.guardSignature(candidate, result);
|
|
307
|
+
}
|
|
308
|
+
finally {
|
|
309
|
+
clearTimeout(timer);
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
catch (error) {
|
|
313
|
+
// `{ appSlug, sourceId, itemKey }` and NEVER the target. The whole reason
|
|
314
|
+
// the target is a local const is undone by one careless log line.
|
|
315
|
+
this.logger.warn({
|
|
316
|
+
err: error,
|
|
317
|
+
appSlug: candidate.appSlug,
|
|
318
|
+
sourceId: candidate.sourceId,
|
|
319
|
+
itemKey: candidate.itemKey,
|
|
320
|
+
}, "Ingestion reconcile read failed; recording unreachable");
|
|
321
|
+
return UNREACHABLE;
|
|
322
|
+
}
|
|
323
|
+
finally {
|
|
324
|
+
this.recordLatency(candidate.appSlug, performance.now() - startedAt);
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* A reconciler returned something the ledger must never store.
|
|
329
|
+
*
|
|
330
|
+
* The guard also lives at the ledger's write boundary, where it THROWS - that
|
|
331
|
+
* is the last line of defence for any caller. Here, one layer up, the throw is
|
|
332
|
+
* converted into `unreachable` for two reasons that both point the same way:
|
|
333
|
+
* the outcome map must stay total, and one carelessly written reconciler must
|
|
334
|
+
* not be able to blank the results of every healthy source in the same batch
|
|
335
|
+
* (NFR7).
|
|
336
|
+
*
|
|
337
|
+
* Logged at ERROR with its own message, not at `warn` alongside network
|
|
338
|
+
* failures. This is a DEFECT IN PASEO'S OWN CODE, not a source being
|
|
339
|
+
* unavailable, and burying it among transient read failures is how it would
|
|
340
|
+
* survive to the next release. The offending value is never logged.
|
|
341
|
+
*/
|
|
342
|
+
guardSignature(candidate, result) {
|
|
343
|
+
try {
|
|
344
|
+
assertSafeSignature(result.signature);
|
|
345
|
+
return result;
|
|
346
|
+
}
|
|
347
|
+
catch (error) {
|
|
348
|
+
if (!(error instanceof UnsafeSignatureError))
|
|
349
|
+
throw error;
|
|
350
|
+
this.logger.error({
|
|
351
|
+
reason: error.reason,
|
|
352
|
+
appSlug: candidate.appSlug,
|
|
353
|
+
sourceId: candidate.sourceId,
|
|
354
|
+
itemKey: candidate.itemKey,
|
|
355
|
+
}, "Reconciler returned an unsafe signature; discarding the verdict");
|
|
356
|
+
// The whole verdict is discarded, not just the signature. A closing
|
|
357
|
+
// verdict whose evidence had to be thrown away is not evidence.
|
|
358
|
+
return UNREACHABLE;
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
recordLatency(appSlug, ms) {
|
|
362
|
+
let ring = this.latency.get(appSlug);
|
|
363
|
+
if (!ring) {
|
|
364
|
+
ring = [];
|
|
365
|
+
this.latency.set(appSlug, ring);
|
|
366
|
+
}
|
|
367
|
+
ring.push(ms);
|
|
368
|
+
if (ring.length > LATENCY_RING_SIZE)
|
|
369
|
+
ring.splice(0, ring.length - LATENCY_RING_SIZE);
|
|
370
|
+
}
|
|
371
|
+
maybeEmitTelemetry() {
|
|
372
|
+
const now = this.now().getTime();
|
|
373
|
+
if (now - this.lastTelemetryAt < RECONCILE_TELEMETRY_INTERVAL_MS)
|
|
374
|
+
return;
|
|
375
|
+
this.lastTelemetryAt = now;
|
|
376
|
+
this.logger.info({ readLatency: this.snapshotReadLatency() }, "Ingestion reconcile read latency");
|
|
377
|
+
}
|
|
378
|
+
/**
|
|
379
|
+
* Loud ONCE per slug per process.
|
|
380
|
+
*
|
|
381
|
+
* "Enumerate what you silence" applied to the open-world edge of a closed
|
|
382
|
+
* registry: an unknown app slug is the one case this design cannot decide
|
|
383
|
+
* statically, so it is never dropped - but a filter with 400 items would
|
|
384
|
+
* otherwise emit 400 identical lines per pass and become its own noise floor.
|
|
385
|
+
*/
|
|
386
|
+
warnUnknownSlugOnce(appSlug) {
|
|
387
|
+
if (this.warnedSlugs.has(appSlug))
|
|
388
|
+
return;
|
|
389
|
+
this.warnedSlugs.add(appSlug);
|
|
390
|
+
this.logger.warn({ appSlug }, `No ingestion reconciler for app slug "${appSlug}"; its items are left unverified.`);
|
|
391
|
+
}
|
|
392
|
+
storedOutcome(candidate, read) {
|
|
393
|
+
const stored = this.ledger.getVerification(candidate.filterId, candidate.itemKey);
|
|
394
|
+
return this.outcomeFrom(candidate, stored ?? NEVER_VERIFIED, read);
|
|
395
|
+
}
|
|
396
|
+
outcomeFrom(candidate, state, read) {
|
|
397
|
+
return {
|
|
398
|
+
filterId: candidate.filterId,
|
|
399
|
+
itemKey: candidate.itemKey,
|
|
400
|
+
verdict: state.verdict,
|
|
401
|
+
signature: state.verifiedSignature,
|
|
402
|
+
verifiedAt: state.verifiedAt,
|
|
403
|
+
reconcileFailCount: state.reconcileFailCount,
|
|
404
|
+
read,
|
|
405
|
+
skippedNoReconciler: false,
|
|
406
|
+
};
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
//# sourceMappingURL=service.js.map
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Longest signature this column will accept.
|
|
3
|
+
*
|
|
4
|
+
* A signature is meant to be a short human-readable fact - `mr:merged:abc123def`,
|
|
5
|
+
* `pr:closed:42`. Nothing legitimate is 200 characters, and a long one is the
|
|
6
|
+
* shape of a pasted blob: a JWT, a response body, a header dump. The cap is a
|
|
7
|
+
* blast-radius limit AND a smell detector, and it fires before the pattern
|
|
8
|
+
* checks so an enormous input is rejected without regexing it.
|
|
9
|
+
*/
|
|
10
|
+
export declare const MAX_SIGNATURE_LEN = 200;
|
|
11
|
+
/**
|
|
12
|
+
* A reconciler tried to persist something that looks like a credential.
|
|
13
|
+
*
|
|
14
|
+
* Deliberately carries NO copy of the offending value. Attaching it would move
|
|
15
|
+
* the leak from the database into the log file, which is the same leak with a
|
|
16
|
+
* different retention policy. The `reason` is a closed set this module wrote.
|
|
17
|
+
*/
|
|
18
|
+
export declare class UnsafeSignatureError extends Error {
|
|
19
|
+
/** `"too-long"` or `"credential-shaped"`. A closed set, safe to log. */
|
|
20
|
+
readonly reason: "too-long" | "credential-shaped";
|
|
21
|
+
constructor(reason: "too-long" | "credential-shaped");
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Throw unless `signature` is safe to write to a durable column.
|
|
25
|
+
*
|
|
26
|
+
* `null` is always safe and is the common case: every verdict except the two
|
|
27
|
+
* closing ones ships a null signature, and this story's stubs ship nothing else.
|
|
28
|
+
*/
|
|
29
|
+
export declare function assertSafeSignature(signature: string | null): void;
|
|
30
|
+
//# sourceMappingURL=signature-guard.d.ts.map
|