@getpaseo/server 0.1.69 → 0.1.71
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/dist/server/client/daemon-client-runtime-metrics.js.map +1 -1
- package/dist/server/client/daemon-client-websocket-transport.js.map +1 -1
- package/dist/server/client/daemon-client.d.ts +57 -4
- package/dist/server/client/daemon-client.d.ts.map +1 -1
- package/dist/server/client/daemon-client.js +78 -3
- package/dist/server/client/daemon-client.js.map +1 -1
- package/dist/server/server/agent/agent-manager.d.ts +25 -4
- package/dist/server/server/agent/agent-manager.d.ts.map +1 -1
- package/dist/server/server/agent/agent-manager.js +231 -26
- package/dist/server/server/agent/agent-manager.js.map +1 -1
- package/dist/server/server/agent/agent-metadata-generator.d.ts +2 -0
- package/dist/server/server/agent/agent-metadata-generator.d.ts.map +1 -1
- package/dist/server/server/agent/agent-metadata-generator.js +16 -7
- package/dist/server/server/agent/agent-metadata-generator.js.map +1 -1
- package/dist/server/server/agent/agent-projections.d.ts +6 -2
- package/dist/server/server/agent/agent-projections.d.ts.map +1 -1
- package/dist/server/server/agent/agent-projections.js +32 -0
- package/dist/server/server/agent/agent-projections.js.map +1 -1
- package/dist/server/server/agent/agent-prompt.d.ts +72 -0
- package/dist/server/server/agent/agent-prompt.d.ts.map +1 -0
- package/dist/server/server/agent/agent-prompt.js +169 -0
- package/dist/server/server/agent/agent-prompt.js.map +1 -0
- package/dist/server/server/agent/agent-response-loop.js.map +1 -1
- package/dist/server/server/agent/agent-sdk-types.d.ts +27 -2
- package/dist/server/server/agent/agent-sdk-types.d.ts.map +1 -1
- package/dist/server/server/agent/agent-stream-coalescer.d.ts +1 -1
- package/dist/server/server/agent/agent-stream-coalescer.d.ts.map +1 -1
- package/dist/server/server/agent/agent-timeline-store.js +1 -1
- package/dist/server/server/agent/agent-timeline-store.js.map +1 -1
- package/dist/server/server/agent/create-agent-mode.d.ts +16 -0
- package/dist/server/server/agent/create-agent-mode.d.ts.map +1 -0
- package/dist/server/server/agent/create-agent-mode.js +26 -0
- package/dist/server/server/agent/create-agent-mode.js.map +1 -0
- package/dist/server/server/agent/import-sessions.d.ts +33 -0
- package/dist/server/server/agent/import-sessions.d.ts.map +1 -0
- package/dist/server/server/agent/import-sessions.js +107 -0
- package/dist/server/server/agent/import-sessions.js.map +1 -0
- package/dist/server/server/agent/mcp-server.d.ts +1 -1
- package/dist/server/server/agent/mcp-server.d.ts.map +1 -1
- package/dist/server/server/agent/mcp-server.js +61 -14
- package/dist/server/server/agent/mcp-server.js.map +1 -1
- package/dist/server/server/agent/mcp-shared.d.ts +1 -43
- package/dist/server/server/agent/mcp-shared.d.ts.map +1 -1
- package/dist/server/server/agent/mcp-shared.js +0 -138
- package/dist/server/server/agent/mcp-shared.js.map +1 -1
- package/dist/server/server/agent/pcm16-resampler.js.map +1 -1
- package/dist/server/server/agent/prompt-attachments.d.ts.map +1 -1
- package/dist/server/server/agent/prompt-attachments.js +2 -0
- package/dist/server/server/agent/prompt-attachments.js.map +1 -1
- package/dist/server/server/agent/provider-launch-config.js.map +1 -1
- package/dist/server/server/agent/provider-manifest.d.ts +4 -1
- package/dist/server/server/agent/provider-manifest.d.ts.map +1 -1
- package/dist/server/server/agent/provider-manifest.js +11 -0
- package/dist/server/server/agent/provider-manifest.js.map +1 -1
- package/dist/server/server/agent/provider-registry.d.ts +7 -0
- package/dist/server/server/agent/provider-registry.d.ts.map +1 -1
- package/dist/server/server/agent/provider-registry.js +13 -3
- package/dist/server/server/agent/provider-registry.js.map +1 -1
- package/dist/server/server/agent/provider-snapshot-manager.js.map +1 -1
- package/dist/server/server/agent/providers/acp-agent.d.ts +2 -1
- package/dist/server/server/agent/providers/acp-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/acp-agent.js +35 -17
- package/dist/server/server/agent/providers/acp-agent.js.map +1 -1
- package/dist/server/server/agent/providers/{claude-agent.d.ts → claude/agent.d.ts} +9 -6
- package/dist/server/server/agent/providers/claude/agent.d.ts.map +1 -0
- package/dist/server/server/agent/providers/{claude-agent.js → claude/agent.js} +185 -152
- package/dist/server/server/agent/providers/claude/agent.js.map +1 -0
- package/dist/server/server/agent/providers/claude/{claude-models.d.ts → models.d.ts} +1 -1
- package/dist/server/server/agent/providers/claude/models.d.ts.map +1 -0
- package/dist/server/server/agent/providers/claude/{claude-models.js → models.js} +8 -1
- package/dist/server/server/agent/providers/claude/models.js.map +1 -0
- package/dist/server/server/agent/providers/claude/query.d.ts +14 -0
- package/dist/server/server/agent/providers/claude/query.d.ts.map +1 -0
- package/dist/server/server/agent/providers/claude/query.js +84 -0
- package/dist/server/server/agent/providers/claude/query.js.map +1 -0
- package/dist/server/server/agent/providers/claude/tool-call-mapper.js.map +1 -1
- package/dist/server/server/agent/providers/codex-app-server-agent.d.ts +19 -3
- package/dist/server/server/agent/providers/codex-app-server-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/codex-app-server-agent.js +447 -93
- package/dist/server/server/agent/providers/codex-app-server-agent.js.map +1 -1
- package/dist/server/server/agent/providers/diagnostic-utils.d.ts.map +1 -1
- package/dist/server/server/agent/providers/diagnostic-utils.js +4 -0
- package/dist/server/server/agent/providers/diagnostic-utils.js.map +1 -1
- package/dist/server/server/agent/providers/generic-acp-agent.d.ts +1 -1
- package/dist/server/server/agent/providers/generic-acp-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/generic-acp-agent.js +0 -3
- package/dist/server/server/agent/providers/generic-acp-agent.js.map +1 -1
- package/dist/server/server/agent/providers/mock-load-test-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/mock-load-test-agent.js +6 -2
- package/dist/server/server/agent/providers/mock-load-test-agent.js.map +1 -1
- package/dist/server/server/agent/providers/opencode-agent.d.ts +3 -2
- package/dist/server/server/agent/providers/opencode-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/opencode-agent.js +204 -31
- package/dist/server/server/agent/providers/opencode-agent.js.map +1 -1
- package/dist/server/server/agent/providers/provider-image-output.d.ts +20 -0
- package/dist/server/server/agent/providers/provider-image-output.d.ts.map +1 -0
- package/dist/server/server/agent/providers/provider-image-output.js +51 -0
- package/dist/server/server/agent/providers/provider-image-output.js.map +1 -0
- package/dist/server/server/agent/providers/provider-runner.d.ts +3 -3
- package/dist/server/server/agent/providers/provider-runner.d.ts.map +1 -1
- package/dist/server/server/agent/providers/test-utils/session-stream-adapter.js.map +1 -1
- package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts +7 -7
- package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts.map +1 -1
- package/dist/server/server/agent/providers/tool-call-detail-primitives.js +12 -18
- package/dist/server/server/agent/providers/tool-call-detail-primitives.js.map +1 -1
- package/dist/server/server/agent/stt-manager.d.ts +1 -0
- package/dist/server/server/agent/stt-manager.d.ts.map +1 -1
- package/dist/server/server/agent/stt-manager.js +3 -0
- package/dist/server/server/agent/stt-manager.js.map +1 -1
- package/dist/server/server/agent/tool-name-normalization.js.map +1 -1
- package/dist/server/server/agent/tts-manager.js.map +1 -1
- package/dist/server/server/bootstrap.d.ts +1 -0
- package/dist/server/server/bootstrap.d.ts.map +1 -1
- package/dist/server/server/bootstrap.js +3 -1
- package/dist/server/server/bootstrap.js.map +1 -1
- package/dist/server/server/chat/chat-mentions.d.ts +24 -8
- package/dist/server/server/chat/chat-mentions.d.ts.map +1 -1
- package/dist/server/server/chat/chat-mentions.js +77 -35
- package/dist/server/server/chat/chat-mentions.js.map +1 -1
- package/dist/server/server/chat/chat-service.d.ts +4 -0
- package/dist/server/server/chat/chat-service.d.ts.map +1 -1
- package/dist/server/server/chat/chat-service.js +9 -0
- package/dist/server/server/chat/chat-service.js.map +1 -1
- package/dist/server/server/config.d.ts +1 -0
- package/dist/server/server/config.d.ts.map +1 -1
- package/dist/server/server/config.js +7 -1
- package/dist/server/server/config.js.map +1 -1
- package/dist/server/server/connection-offer.d.ts +1 -0
- package/dist/server/server/connection-offer.d.ts.map +1 -1
- package/dist/server/server/daemon-config-store.d.ts.map +1 -1
- package/dist/server/server/daemon-config-store.js +2 -6
- package/dist/server/server/daemon-config-store.js.map +1 -1
- package/dist/server/server/daemon-keypair.d.ts.map +1 -1
- package/dist/server/server/daemon-keypair.js +4 -2
- package/dist/server/server/daemon-keypair.js.map +1 -1
- package/dist/server/server/daemon-worker.js +3 -0
- package/dist/server/server/daemon-worker.js.map +1 -1
- package/dist/server/server/editor-targets.js.map +1 -1
- package/dist/server/server/exports.d.ts +1 -0
- package/dist/server/server/exports.d.ts.map +1 -1
- package/dist/server/server/exports.js +1 -0
- package/dist/server/server/exports.js.map +1 -1
- package/dist/server/server/json-utils.js.map +1 -1
- package/dist/server/server/logger.js.map +1 -1
- package/dist/server/server/loop/rpc-schemas.d.ts +68 -0
- package/dist/server/server/loop/rpc-schemas.d.ts.map +1 -1
- package/dist/server/server/loop/rpc-schemas.js +4 -0
- package/dist/server/server/loop/rpc-schemas.js.map +1 -1
- package/dist/server/server/loop-service.d.ts +8 -0
- package/dist/server/server/loop-service.d.ts.map +1 -1
- package/dist/server/server/loop-service.js +11 -2
- package/dist/server/server/loop-service.js.map +1 -1
- package/dist/server/server/package-version.d.ts +12 -0
- package/dist/server/server/package-version.d.ts.map +1 -1
- package/dist/server/server/package-version.js +13 -1
- package/dist/server/server/package-version.js.map +1 -1
- package/dist/server/server/pairing-offer.d.ts +1 -0
- package/dist/server/server/pairing-offer.d.ts.map +1 -1
- package/dist/server/server/pairing-offer.js +2 -1
- package/dist/server/server/pairing-offer.js.map +1 -1
- package/dist/server/server/pairing-qr.js +1 -1
- package/dist/server/server/pairing-qr.js.map +1 -1
- package/dist/server/server/paseo-env.d.ts +7 -3
- package/dist/server/server/paseo-env.d.ts.map +1 -1
- package/dist/server/server/paseo-env.js +16 -33
- package/dist/server/server/paseo-env.js.map +1 -1
- package/dist/server/server/paseo-home.js +2 -2
- package/dist/server/server/paseo-home.js.map +1 -1
- package/dist/server/server/persisted-config.d.ts +9 -0
- package/dist/server/server/persisted-config.d.ts.map +1 -1
- package/dist/server/server/persisted-config.js +6 -4
- package/dist/server/server/persisted-config.js.map +1 -1
- package/dist/server/server/persistence-hooks.js.map +1 -1
- package/dist/server/server/pid-lock.d.ts +21 -4
- package/dist/server/server/pid-lock.d.ts.map +1 -1
- package/dist/server/server/pid-lock.js +30 -8
- package/dist/server/server/pid-lock.js.map +1 -1
- package/dist/server/server/private-files.d.ts +7 -0
- package/dist/server/server/private-files.d.ts.map +1 -0
- package/dist/server/server/private-files.js +42 -0
- package/dist/server/server/private-files.js.map +1 -0
- package/dist/server/server/push/token-store.d.ts.map +1 -1
- package/dist/server/server/push/token-store.js +4 -6
- package/dist/server/server/push/token-store.js.map +1 -1
- package/dist/server/server/relay-transport.d.ts +2 -1
- package/dist/server/server/relay-transport.d.ts.map +1 -1
- package/dist/server/server/relay-transport.js +8 -5
- package/dist/server/server/relay-transport.js.map +1 -1
- package/dist/server/server/schedule/rpc-schemas.d.ts +1136 -0
- package/dist/server/server/schedule/rpc-schemas.d.ts.map +1 -1
- package/dist/server/server/schedule/rpc-schemas.js +39 -0
- package/dist/server/server/schedule/rpc-schemas.js.map +1 -1
- package/dist/server/server/schedule/service.d.ts +4 -2
- package/dist/server/server/schedule/service.d.ts.map +1 -1
- package/dist/server/server/schedule/service.js +106 -16
- package/dist/server/server/schedule/service.js.map +1 -1
- package/dist/server/server/schedule/types.d.ts +16 -0
- package/dist/server/server/schedule/types.d.ts.map +1 -1
- package/dist/server/server/script-health-monitor.js.map +1 -1
- package/dist/server/server/server-id.d.ts.map +1 -1
- package/dist/server/server/server-id.js +8 -3
- package/dist/server/server/server-id.js.map +1 -1
- package/dist/server/server/session.d.ts +5 -4
- package/dist/server/server/session.d.ts.map +1 -1
- package/dist/server/server/session.js +318 -149
- package/dist/server/server/session.js.map +1 -1
- package/dist/server/server/speech/audio.js.map +1 -1
- package/dist/server/server/speech/providers/local/pocket/pocket-tts-onnx.d.ts.map +1 -1
- package/dist/server/server/speech/providers/local/pocket/pocket-tts-onnx.js +52 -52
- package/dist/server/server/speech/providers/local/pocket/pocket-tts-onnx.js.map +1 -1
- package/dist/server/server/speech/providers/local/sherpa/model-catalog.d.ts.map +1 -1
- package/dist/server/server/speech/providers/local/sherpa/model-catalog.js +9 -3
- package/dist/server/server/speech/providers/local/sherpa/model-catalog.js.map +1 -1
- package/dist/server/server/speech/providers/local/sherpa/model-downloader.d.ts.map +1 -1
- package/dist/server/server/speech/providers/local/sherpa/model-downloader.js +12 -10
- package/dist/server/server/speech/providers/local/sherpa/model-downloader.js.map +1 -1
- package/dist/server/server/speech/providers/local/sherpa/sherpa-realtime-session.js +2 -2
- package/dist/server/server/speech/providers/local/sherpa/sherpa-realtime-session.js.map +1 -1
- package/dist/server/server/speech/providers/local/sherpa/sherpa-stt.js +1 -1
- package/dist/server/server/speech/providers/local/sherpa/sherpa-stt.js.map +1 -1
- package/dist/server/server/speech/providers/local/sherpa/sherpa-tts.js.map +1 -1
- package/dist/server/server/voice/voice-turn-controller.d.ts +16 -13
- package/dist/server/server/voice/voice-turn-controller.d.ts.map +1 -1
- package/dist/server/server/voice/voice-turn-controller.js +303 -71
- package/dist/server/server/voice/voice-turn-controller.js.map +1 -1
- package/dist/server/server/voice-config.js +1 -1
- package/dist/server/server/voice-config.js.map +1 -1
- package/dist/server/server/websocket-server.js.map +1 -1
- package/dist/server/server/workspace-directory.d.ts.map +1 -1
- package/dist/server/server/workspace-directory.js +4 -2
- package/dist/server/server/workspace-directory.js.map +1 -1
- package/dist/server/server/workspace-git-metadata.d.ts.map +1 -1
- package/dist/server/server/workspace-git-metadata.js +12 -5
- package/dist/server/server/workspace-git-metadata.js.map +1 -1
- package/dist/server/server/workspace-git-service.d.ts +4 -1
- package/dist/server/server/workspace-git-service.d.ts.map +1 -1
- package/dist/server/server/workspace-git-service.js +50 -2
- package/dist/server/server/workspace-git-service.js.map +1 -1
- package/dist/server/server/workspace-registry-model.d.ts.map +1 -1
- package/dist/server/server/workspace-registry-model.js +10 -3
- package/dist/server/server/workspace-registry-model.js.map +1 -1
- package/dist/server/server/worktree-branch-name-generator.d.ts +2 -0
- package/dist/server/server/worktree-branch-name-generator.d.ts.map +1 -1
- package/dist/server/server/worktree-branch-name-generator.js +18 -11
- package/dist/server/server/worktree-branch-name-generator.js.map +1 -1
- package/dist/server/server/worktree-session.js +1 -1
- package/dist/server/server/worktree-session.js.map +1 -1
- package/dist/server/services/github-service.d.ts +13 -0
- package/dist/server/services/github-service.d.ts.map +1 -1
- package/dist/server/services/github-service.js +21 -4
- package/dist/server/services/github-service.js.map +1 -1
- package/dist/server/shared/agent-labels.d.ts +2 -0
- package/dist/server/shared/agent-labels.d.ts.map +1 -0
- package/dist/server/shared/agent-labels.js +2 -0
- package/dist/server/shared/agent-labels.js.map +1 -0
- package/dist/server/shared/connection-offer.d.ts +10 -0
- package/dist/server/shared/connection-offer.d.ts.map +1 -1
- package/dist/server/shared/connection-offer.js +1 -0
- package/dist/server/shared/connection-offer.js.map +1 -1
- package/dist/server/shared/daemon-endpoints.d.ts +4 -0
- package/dist/server/shared/daemon-endpoints.d.ts.map +1 -1
- package/dist/server/shared/daemon-endpoints.js +6 -1
- package/dist/server/shared/daemon-endpoints.js.map +1 -1
- package/dist/server/shared/error-utils.d.ts +11 -0
- package/dist/server/shared/error-utils.d.ts.map +1 -0
- package/dist/server/shared/error-utils.js +27 -0
- package/dist/server/shared/error-utils.js.map +1 -0
- package/dist/server/shared/importable-providers.d.ts +7 -0
- package/dist/server/shared/importable-providers.d.ts.map +1 -0
- package/dist/server/shared/importable-providers.js +7 -0
- package/dist/server/shared/importable-providers.js.map +1 -0
- package/dist/server/shared/messages.d.ts +12753 -2085
- package/dist/server/shared/messages.d.ts.map +1 -1
- package/dist/server/shared/messages.js +61 -5
- package/dist/server/shared/messages.js.map +1 -1
- package/dist/server/shared/tool-call-display.d.ts.map +1 -1
- package/dist/server/shared/tool-call-display.js +2 -0
- package/dist/server/shared/tool-call-display.js.map +1 -1
- package/dist/server/terminal/terminal-manager.d.ts +2 -1
- package/dist/server/terminal/terminal-manager.d.ts.map +1 -1
- package/dist/server/terminal/terminal-manager.js +2 -1
- package/dist/server/terminal/terminal-manager.js.map +1 -1
- package/dist/server/terminal/terminal-output-coalescer.js.map +1 -1
- package/dist/server/terminal/terminal-session-controller.d.ts.map +1 -1
- package/dist/server/terminal/terminal-session-controller.js +2 -0
- package/dist/server/terminal/terminal-session-controller.js.map +1 -1
- package/dist/server/terminal/terminal.d.ts +1 -1
- package/dist/server/terminal/terminal.d.ts.map +1 -1
- package/dist/server/terminal/terminal.js +53 -8
- package/dist/server/terminal/terminal.js.map +1 -1
- package/dist/server/terminal/worker-terminal-manager.js.map +1 -1
- package/dist/server/utils/build-metadata-prompt.d.ts +14 -0
- package/dist/server/utils/build-metadata-prompt.d.ts.map +1 -0
- package/dist/server/utils/build-metadata-prompt.js +28 -0
- package/dist/server/utils/build-metadata-prompt.js.map +1 -0
- package/dist/server/utils/checkout-git.d.ts +2 -1
- package/dist/server/utils/checkout-git.d.ts.map +1 -1
- package/dist/server/utils/checkout-git.js +67 -11
- package/dist/server/utils/checkout-git.js.map +1 -1
- package/dist/server/utils/directory-suggestions.js.map +1 -1
- package/dist/server/utils/executable.d.ts +2 -1
- package/dist/server/utils/executable.d.ts.map +1 -1
- package/dist/server/utils/executable.js +50 -51
- package/dist/server/utils/executable.js.map +1 -1
- package/dist/server/utils/paseo-config-file.d.ts +1 -1
- package/dist/server/utils/paseo-config-file.d.ts.map +1 -1
- package/dist/server/utils/paseo-config-schema.d.ts +625 -0
- package/dist/server/utils/paseo-config-schema.d.ts.map +1 -1
- package/dist/server/utils/paseo-config-schema.js +17 -0
- package/dist/server/utils/paseo-config-schema.js.map +1 -1
- package/dist/server/utils/spawn.d.ts +2 -0
- package/dist/server/utils/spawn.d.ts.map +1 -1
- package/dist/server/utils/spawn.js +2 -1
- package/dist/server/utils/spawn.js.map +1 -1
- package/dist/server/utils/tree-kill.d.ts +18 -0
- package/dist/server/utils/tree-kill.d.ts.map +1 -0
- package/dist/server/utils/{process-tree.js → tree-kill.js} +14 -33
- package/dist/server/utils/tree-kill.js.map +1 -0
- package/dist/server/utils/worktree.js.map +1 -1
- package/dist/server/utils/wrap-user-instructions.d.ts +2 -0
- package/dist/server/utils/wrap-user-instructions.d.ts.map +1 -0
- package/dist/server/utils/wrap-user-instructions.js +13 -0
- package/dist/server/utils/wrap-user-instructions.js.map +1 -0
- package/dist/src/server/agent/provider-launch-config.js.map +1 -1
- package/dist/src/server/agent/provider-manifest.js +11 -0
- package/dist/src/server/agent/provider-manifest.js.map +1 -1
- package/dist/src/server/loop/rpc-schemas.js +4 -0
- package/dist/src/server/loop/rpc-schemas.js.map +1 -1
- package/dist/src/server/paseo-env.js +16 -33
- package/dist/src/server/paseo-env.js.map +1 -1
- package/dist/src/server/paseo-home.js +2 -2
- package/dist/src/server/paseo-home.js.map +1 -1
- package/dist/src/server/persisted-config.js +6 -4
- package/dist/src/server/persisted-config.js.map +1 -1
- package/dist/src/server/pid-lock.js +30 -8
- package/dist/src/server/pid-lock.js.map +1 -1
- package/dist/src/server/private-files.js +42 -0
- package/dist/src/server/private-files.js.map +1 -0
- package/dist/src/server/schedule/rpc-schemas.js +39 -0
- package/dist/src/server/schedule/rpc-schemas.js.map +1 -1
- package/dist/src/shared/messages.js +61 -5
- package/dist/src/shared/messages.js.map +1 -1
- package/dist/src/utils/executable.js +50 -51
- package/dist/src/utils/executable.js.map +1 -1
- package/dist/src/utils/paseo-config-schema.js +17 -0
- package/dist/src/utils/paseo-config-schema.js.map +1 -1
- package/dist/src/utils/spawn.js +2 -1
- package/dist/src/utils/spawn.js.map +1 -1
- package/package.json +5 -4
- package/dist/server/server/agent/providers/claude/claude-models.d.ts.map +0 -1
- package/dist/server/server/agent/providers/claude/claude-models.js.map +0 -1
- package/dist/server/server/agent/providers/claude-agent.d.ts.map +0 -1
- package/dist/server/server/agent/providers/claude-agent.js.map +0 -1
- package/dist/server/server/voice/fixed-duration-pcm-ring-buffer.d.ts +0 -16
- package/dist/server/server/voice/fixed-duration-pcm-ring-buffer.d.ts.map +0 -1
- package/dist/server/server/voice/fixed-duration-pcm-ring-buffer.js +0 -35
- package/dist/server/server/voice/fixed-duration-pcm-ring-buffer.js.map +0 -1
- package/dist/server/utils/process-tree.d.ts +0 -25
- package/dist/server/utils/process-tree.d.ts.map +0 -1
- package/dist/server/utils/process-tree.js.map +0 -1
|
@@ -2,16 +2,55 @@ import { randomUUID } from "node:crypto";
|
|
|
2
2
|
import { resolve } from "node:path";
|
|
3
3
|
import { stat } from "node:fs/promises";
|
|
4
4
|
import { AGENT_LIFECYCLE_STATUSES, } from "../../shared/agent-lifecycle.js";
|
|
5
|
+
import { PARENT_AGENT_ID_LABEL } from "../../shared/agent-labels.js";
|
|
5
6
|
import { z } from "zod";
|
|
6
7
|
import { InMemoryAgentTimelineStore, } from "./agent-timeline-store.js";
|
|
7
8
|
import { AGENT_STREAM_COALESCE_DEFAULT_WINDOW_MS, AgentStreamCoalescer, } from "./agent-stream-coalescer.js";
|
|
8
9
|
import { ForegroundRunState } from "./foreground-run-state.js";
|
|
9
10
|
import { getAgentProviderDefinition } from "./provider-manifest.js";
|
|
11
|
+
import { IMPORTABLE_PROVIDERS } from "./provider-registry.js";
|
|
10
12
|
const RELOAD_SESSION_CLOSE_TIMEOUT_MS = 3000;
|
|
11
13
|
const INTERRUPT_SESSION_TIMEOUT_MS = 2000;
|
|
14
|
+
const STORED_AGENT_CAPABILITIES = {
|
|
15
|
+
supportsStreaming: false,
|
|
16
|
+
supportsSessionPersistence: true,
|
|
17
|
+
supportsDynamicModes: false,
|
|
18
|
+
supportsMcpServers: false,
|
|
19
|
+
supportsReasoningStream: false,
|
|
20
|
+
supportsToolInvocations: true,
|
|
21
|
+
};
|
|
12
22
|
function formatProviderList(providers) {
|
|
13
23
|
return providers.length > 0 ? providers.join(", ") : "none";
|
|
14
24
|
}
|
|
25
|
+
function buildStoredAgentConfig(record) {
|
|
26
|
+
const config = {
|
|
27
|
+
provider: record.provider,
|
|
28
|
+
cwd: record.cwd,
|
|
29
|
+
};
|
|
30
|
+
if (!record.config) {
|
|
31
|
+
return config;
|
|
32
|
+
}
|
|
33
|
+
if (record.config.title != null)
|
|
34
|
+
config.title = record.config.title;
|
|
35
|
+
if (record.config.modeId != null)
|
|
36
|
+
config.modeId = record.config.modeId;
|
|
37
|
+
if (record.config.model != null)
|
|
38
|
+
config.model = record.config.model;
|
|
39
|
+
if (record.config.thinkingOptionId != null) {
|
|
40
|
+
config.thinkingOptionId = record.config.thinkingOptionId;
|
|
41
|
+
}
|
|
42
|
+
if (record.config.featureValues != null) {
|
|
43
|
+
config.featureValues = record.config.featureValues;
|
|
44
|
+
}
|
|
45
|
+
if (record.config.extra != null)
|
|
46
|
+
config.extra = record.config.extra;
|
|
47
|
+
if (record.config.systemPrompt != null) {
|
|
48
|
+
config.systemPrompt = record.config.systemPrompt;
|
|
49
|
+
}
|
|
50
|
+
if (record.config.mcpServers != null)
|
|
51
|
+
config.mcpServers = record.config.mcpServers;
|
|
52
|
+
return config;
|
|
53
|
+
}
|
|
15
54
|
export { AGENT_LIFECYCLE_STATUSES };
|
|
16
55
|
function resolveInitialAttention(input) {
|
|
17
56
|
if (input == null || !input.requiresAttention) {
|
|
@@ -99,6 +138,7 @@ export class AgentManager {
|
|
|
99
138
|
constructor(options) {
|
|
100
139
|
this.clients = new Map();
|
|
101
140
|
this.providerEnabled = new Map();
|
|
141
|
+
this.providerDerivedFromId = new Map();
|
|
102
142
|
this.agents = new Map();
|
|
103
143
|
this.timelineStore = new InMemoryAgentTimelineStore();
|
|
104
144
|
this.agentsAwaitingInitialSnapshotPersist = new Set();
|
|
@@ -137,6 +177,7 @@ export class AgentManager {
|
|
|
137
177
|
for (const [provider, definition] of Object.entries(input.providerDefinitions)) {
|
|
138
178
|
if (definition) {
|
|
139
179
|
this.providerEnabled.set(provider, definition.enabled);
|
|
180
|
+
this.providerDerivedFromId.set(provider, definition.derivedFromProviderId ?? null);
|
|
140
181
|
}
|
|
141
182
|
}
|
|
142
183
|
for (const [provider, client] of Object.entries(input.clients)) {
|
|
@@ -239,18 +280,15 @@ export class AgentManager {
|
|
|
239
280
|
.filter((agent) => !agent.internal)
|
|
240
281
|
.map((agent) => Object.assign({}, agent));
|
|
241
282
|
}
|
|
242
|
-
async
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
if (!client.listPersistedAgents) {
|
|
246
|
-
return [];
|
|
247
|
-
}
|
|
248
|
-
return client.listPersistedAgents({ limit: options.limit });
|
|
249
|
-
}
|
|
250
|
-
const providerEntries = Array.from(this.clients.entries()).filter(([, client]) => !!client.listPersistedAgents);
|
|
283
|
+
async listImportablePersistedAgents(options) {
|
|
284
|
+
const providerEntries = Array.from(this.clients.entries()).filter(([provider, client]) => !!client.listPersistedAgents &&
|
|
285
|
+
this.isProviderImportable(provider, options?.providerFilter));
|
|
251
286
|
const descriptorLists = await Promise.all(providerEntries.map(async ([provider, client]) => {
|
|
252
287
|
try {
|
|
253
|
-
return await client.listPersistedAgents({
|
|
288
|
+
return await client.listPersistedAgents({
|
|
289
|
+
limit: options?.limit,
|
|
290
|
+
cwd: options?.cwd,
|
|
291
|
+
});
|
|
254
292
|
}
|
|
255
293
|
catch (error) {
|
|
256
294
|
this.logger.warn({ err: error, provider }, "Failed to list persisted agents for provider");
|
|
@@ -263,6 +301,21 @@ export class AgentManager {
|
|
|
263
301
|
.sort((a, b) => b.lastActivityAt.getTime() - a.lastActivityAt.getTime())
|
|
264
302
|
.slice(0, limit);
|
|
265
303
|
}
|
|
304
|
+
isProviderImportable(provider, providerFilter) {
|
|
305
|
+
if (!IMPORTABLE_PROVIDERS.includes(provider)) {
|
|
306
|
+
return false;
|
|
307
|
+
}
|
|
308
|
+
if (this.providerEnabled.get(provider) === false) {
|
|
309
|
+
return false;
|
|
310
|
+
}
|
|
311
|
+
if (this.providerDerivedFromId.get(provider) != null) {
|
|
312
|
+
return false;
|
|
313
|
+
}
|
|
314
|
+
if (providerFilter && !providerFilter.has(provider)) {
|
|
315
|
+
return false;
|
|
316
|
+
}
|
|
317
|
+
return true;
|
|
318
|
+
}
|
|
266
319
|
async findPersistedAgent(provider, sessionId) {
|
|
267
320
|
const client = this.requireClient(provider);
|
|
268
321
|
if (!client.listPersistedAgents) {
|
|
@@ -408,26 +461,38 @@ export class AgentManager {
|
|
|
408
461
|
provider: handle.provider,
|
|
409
462
|
};
|
|
410
463
|
const normalizedConfig = await this.normalizeConfig(mergedConfig);
|
|
411
|
-
const resumeOverrides =
|
|
412
|
-
|
|
413
|
-
|
|
464
|
+
const resumeOverrides = { ...overrides };
|
|
465
|
+
let hasResumeOverrides = overrides !== undefined;
|
|
466
|
+
if (normalizedConfig.model !== mergedConfig.model) {
|
|
467
|
+
resumeOverrides.model = normalizedConfig.model;
|
|
468
|
+
hasResumeOverrides = true;
|
|
469
|
+
}
|
|
470
|
+
if (normalizedConfig.modeId !== mergedConfig.modeId) {
|
|
471
|
+
resumeOverrides.modeId = normalizedConfig.modeId;
|
|
472
|
+
hasResumeOverrides = true;
|
|
473
|
+
}
|
|
414
474
|
const launchContext = this.buildLaunchContext(resolvedAgentId);
|
|
415
475
|
const client = this.requireClient(handle.provider);
|
|
416
476
|
const available = await client.isAvailable();
|
|
417
477
|
if (!available) {
|
|
418
478
|
throw new Error(`Provider '${handle.provider}' is not available. Please ensure the CLI is installed.`);
|
|
419
479
|
}
|
|
420
|
-
const session = await client.resumeSession(handle, resumeOverrides, launchContext);
|
|
480
|
+
const session = await client.resumeSession(handle, hasResumeOverrides ? resumeOverrides : undefined, launchContext);
|
|
421
481
|
return this.registerSession(session, normalizedConfig, resolvedAgentId, options);
|
|
422
482
|
}
|
|
423
|
-
// Hot-reload an active agent session with config overrides
|
|
424
|
-
// in-memory timeline
|
|
425
|
-
|
|
483
|
+
// Hot-reload an active agent session with config overrides. By default the
|
|
484
|
+
// in-memory timeline is preserved (used for voice-mode toggles and similar
|
|
485
|
+
// config swaps). When `rehydrateFromDisk` is set, the timeline is wiped so a
|
|
486
|
+
// new epoch is minted and provider history is re-streamed — this is what the
|
|
487
|
+
// user-facing "Reload agent" action wants when the on-disk session was
|
|
488
|
+
// mutated outside Paseo.
|
|
489
|
+
async reloadAgentSession(agentId, overrides, options) {
|
|
426
490
|
let existing = this.requireSessionAgent(agentId);
|
|
427
491
|
if (this.hasInFlightRun(agentId)) {
|
|
428
492
|
await this.cancelAgentRun(agentId);
|
|
429
493
|
existing = this.requireSessionAgent(agentId);
|
|
430
494
|
}
|
|
495
|
+
const rehydrateFromDisk = options?.rehydrateFromDisk ?? false;
|
|
431
496
|
const preservedHistoryPrimed = existing.historyPrimed;
|
|
432
497
|
const preservedLastUsage = existing.lastUsage;
|
|
433
498
|
const preservedLastError = existing.lastError;
|
|
@@ -454,13 +519,20 @@ export class AgentManager {
|
|
|
454
519
|
}
|
|
455
520
|
this.foregroundRuns.clearAgent(agentId, existing);
|
|
456
521
|
await this.closeReloadedSession(existing.session, agentId);
|
|
522
|
+
if (rehydrateFromDisk) {
|
|
523
|
+
// Wipe both durable and in-memory timeline so registerSession mints a
|
|
524
|
+
// new epoch and hydrateTimelineFromProvider re-streams the freshly read
|
|
525
|
+
// provider history into an empty timeline.
|
|
526
|
+
await this.deleteCommittedTimeline(agentId);
|
|
527
|
+
this.timelineStore.delete(agentId);
|
|
528
|
+
}
|
|
457
529
|
// Preserve existing labels and timeline during reload.
|
|
458
530
|
return this.registerSession(session, normalizedConfig, agentId, {
|
|
459
531
|
labels: existing.labels,
|
|
460
532
|
createdAt: existing.createdAt,
|
|
461
533
|
updatedAt: existing.updatedAt,
|
|
462
534
|
lastUserMessageAt: existing.lastUserMessageAt,
|
|
463
|
-
historyPrimed: preservedHistoryPrimed,
|
|
535
|
+
historyPrimed: rehydrateFromDisk ? false : preservedHistoryPrimed,
|
|
464
536
|
lastUsage: preservedLastUsage,
|
|
465
537
|
lastError: preservedLastError,
|
|
466
538
|
attention: preservedAttention,
|
|
@@ -539,22 +611,99 @@ export class AgentManager {
|
|
|
539
611
|
if (!stored) {
|
|
540
612
|
throw new Error(`Agent ${agentId} not found in storage after snapshot`);
|
|
541
613
|
}
|
|
614
|
+
const { archivedAt } = await this.markRecordArchived(stored);
|
|
615
|
+
await this.closeAgent(agentId);
|
|
616
|
+
await this.cascadeArchiveChildren(agentId);
|
|
617
|
+
return { archivedAt };
|
|
618
|
+
}
|
|
619
|
+
// Children created via the MCP `create_agent` tool carry the parent-agent-id
|
|
620
|
+
// label pointing back at the caller. Archiving the parent cascades to those
|
|
621
|
+
// children so subagent fleets don't outlive their orchestrator. Handoff agents
|
|
622
|
+
// launched the same way are caught by this cascade — see docs/agent-lifecycle.md
|
|
623
|
+
// for the accepted limitation.
|
|
624
|
+
async cascadeArchiveChildren(parentAgentId) {
|
|
625
|
+
const registry = this.registry;
|
|
626
|
+
if (!registry) {
|
|
627
|
+
return;
|
|
628
|
+
}
|
|
629
|
+
const records = await registry.list();
|
|
630
|
+
for (const record of records) {
|
|
631
|
+
if (record.archivedAt) {
|
|
632
|
+
continue;
|
|
633
|
+
}
|
|
634
|
+
if (record.labels?.[PARENT_AGENT_ID_LABEL] !== parentAgentId) {
|
|
635
|
+
continue;
|
|
636
|
+
}
|
|
637
|
+
if (this.agents.has(record.id)) {
|
|
638
|
+
await this.archiveAgent(record.id);
|
|
639
|
+
}
|
|
640
|
+
else {
|
|
641
|
+
await this.markRecordArchived(record);
|
|
642
|
+
await this.cascadeArchiveChildren(record.id);
|
|
643
|
+
}
|
|
644
|
+
}
|
|
645
|
+
}
|
|
646
|
+
async markRecordArchived(record) {
|
|
647
|
+
const registry = this.requireRegistry();
|
|
542
648
|
const archivedAt = new Date().toISOString();
|
|
543
|
-
const normalizedStatus =
|
|
649
|
+
const normalizedStatus = record.lastStatus === "running" || record.lastStatus === "initializing"
|
|
544
650
|
? "idle"
|
|
545
|
-
:
|
|
546
|
-
|
|
547
|
-
...
|
|
651
|
+
: record.lastStatus;
|
|
652
|
+
const archivedRecord = {
|
|
653
|
+
...record,
|
|
548
654
|
archivedAt,
|
|
549
655
|
updatedAt: archivedAt,
|
|
550
656
|
lastStatus: normalizedStatus,
|
|
551
657
|
requiresAttention: false,
|
|
552
658
|
attentionReason: null,
|
|
553
659
|
attentionTimestamp: null,
|
|
660
|
+
};
|
|
661
|
+
await registry.upsert(archivedRecord);
|
|
662
|
+
await this.archiveNativeSessionBestEffort(record.provider, record.persistence);
|
|
663
|
+
if (this.agents.has(record.id)) {
|
|
664
|
+
this.notifyAgentState(record.id);
|
|
665
|
+
}
|
|
666
|
+
else if (!archivedRecord.internal) {
|
|
667
|
+
this.dispatchArchivedStoredAgent(archivedRecord);
|
|
668
|
+
}
|
|
669
|
+
return archivedRecord;
|
|
670
|
+
}
|
|
671
|
+
dispatchArchivedStoredAgent(record) {
|
|
672
|
+
const updatedAt = new Date(record.updatedAt);
|
|
673
|
+
this.dispatch({
|
|
674
|
+
type: "agent_state",
|
|
675
|
+
agent: {
|
|
676
|
+
id: record.id,
|
|
677
|
+
provider: record.provider,
|
|
678
|
+
cwd: record.cwd,
|
|
679
|
+
session: null,
|
|
680
|
+
capabilities: STORED_AGENT_CAPABILITIES,
|
|
681
|
+
config: buildStoredAgentConfig(record),
|
|
682
|
+
runtimeInfo: undefined,
|
|
683
|
+
lifecycle: "closed",
|
|
684
|
+
createdAt: new Date(record.createdAt),
|
|
685
|
+
updatedAt,
|
|
686
|
+
availableModes: [],
|
|
687
|
+
features: record.features,
|
|
688
|
+
currentModeId: record.lastModeId ?? null,
|
|
689
|
+
pendingPermissions: new Map(),
|
|
690
|
+
bufferedPermissionResolutions: new Map(),
|
|
691
|
+
inFlightPermissionResponses: new Set(),
|
|
692
|
+
pendingReplacement: false,
|
|
693
|
+
activeForegroundTurnId: null,
|
|
694
|
+
foregroundTurnWaiters: new Set(),
|
|
695
|
+
finalizedForegroundTurnIds: new Set(),
|
|
696
|
+
unsubscribeSession: null,
|
|
697
|
+
persistence: record.persistence ?? null,
|
|
698
|
+
historyPrimed: true,
|
|
699
|
+
lastUserMessageAt: record.lastUserMessageAt ? new Date(record.lastUserMessageAt) : null,
|
|
700
|
+
lastUsage: undefined,
|
|
701
|
+
lastError: record.lastError ?? undefined,
|
|
702
|
+
attention: { requiresAttention: false },
|
|
703
|
+
internal: record.internal,
|
|
704
|
+
labels: record.labels,
|
|
705
|
+
},
|
|
554
706
|
});
|
|
555
|
-
this.notifyAgentState(agentId);
|
|
556
|
-
await this.closeAgent(agentId);
|
|
557
|
-
return { archivedAt };
|
|
558
707
|
}
|
|
559
708
|
async setAgentMode(agentId, modeId) {
|
|
560
709
|
const agent = this.requireSessionAgent(agentId);
|
|
@@ -671,6 +820,7 @@ export class AgentManager {
|
|
|
671
820
|
attentionTimestamp: null,
|
|
672
821
|
};
|
|
673
822
|
await registry.upsert(nextRecord);
|
|
823
|
+
await this.archiveNativeSessionBestEffort(record.provider, record.persistence);
|
|
674
824
|
return nextRecord;
|
|
675
825
|
}
|
|
676
826
|
async unarchiveSnapshot(agentId) {
|
|
@@ -754,6 +904,48 @@ export class AgentManager {
|
|
|
754
904
|
canceled,
|
|
755
905
|
};
|
|
756
906
|
}
|
|
907
|
+
/**
|
|
908
|
+
* Try to run a prompt out-of-band — i.e. without allocating a foreground turn
|
|
909
|
+
* and without canceling any active turn. Returns true when the session
|
|
910
|
+
* accepted the prompt as a side-effect command (e.g. /goal pause). Events
|
|
911
|
+
* emitted by the handler flow through dispatchStream so they persist and
|
|
912
|
+
* broadcast like normal timeline events.
|
|
913
|
+
*/
|
|
914
|
+
tryRunOutOfBand(agentId, prompt) {
|
|
915
|
+
const agent = this.requireSessionAgent(agentId);
|
|
916
|
+
const handler = agent.session.tryHandleOutOfBand?.(prompt);
|
|
917
|
+
if (!handler) {
|
|
918
|
+
return false;
|
|
919
|
+
}
|
|
920
|
+
const dispatch = (event) => {
|
|
921
|
+
// Persist timeline items so they show up in fetchAgentTimeline; broadcast
|
|
922
|
+
// for live subscribers. Other event types are broadcast only.
|
|
923
|
+
if (event.type === "timeline") {
|
|
924
|
+
this.touchUpdatedAt(agent);
|
|
925
|
+
const row = this.recordTimeline(agent.id, event.item);
|
|
926
|
+
this.dispatchStream(agent.id, event, {
|
|
927
|
+
seq: row.seq,
|
|
928
|
+
epoch: this.timelineStore.getEpoch(agent.id),
|
|
929
|
+
});
|
|
930
|
+
return;
|
|
931
|
+
}
|
|
932
|
+
this.dispatchStream(agent.id, event);
|
|
933
|
+
};
|
|
934
|
+
void (async () => {
|
|
935
|
+
try {
|
|
936
|
+
await handler.run({ emit: dispatch });
|
|
937
|
+
}
|
|
938
|
+
catch (error) {
|
|
939
|
+
const text = error instanceof Error ? error.message : "Out-of-band command failed";
|
|
940
|
+
dispatch({
|
|
941
|
+
type: "timeline",
|
|
942
|
+
provider: agent.provider,
|
|
943
|
+
item: { type: "assistant_message", text: `[Error] ${text}` },
|
|
944
|
+
});
|
|
945
|
+
}
|
|
946
|
+
})();
|
|
947
|
+
return true;
|
|
948
|
+
}
|
|
757
949
|
recordUserMessage(agentId, text, options) {
|
|
758
950
|
const agent = this.requireAgent(agentId);
|
|
759
951
|
const normalizedMessageId = normalizeMessageId(options?.messageId);
|
|
@@ -1104,7 +1296,7 @@ export class AgentManager {
|
|
|
1104
1296
|
// activeForegroundTurnId, settles waiters, and unblocks the streamForwarder.
|
|
1105
1297
|
if (foregroundTurnId && agent.activeForegroundTurnId === foregroundTurnId) {
|
|
1106
1298
|
this.logger.warn({ agentId, foregroundTurnId }, "cancelAgentRun: foreground turn still active after timeout, force-canceling");
|
|
1107
|
-
this.dispatchSessionEvent(agent, {
|
|
1299
|
+
void this.dispatchSessionEvent(agent, {
|
|
1108
1300
|
type: "turn_canceled",
|
|
1109
1301
|
provider: agent.provider,
|
|
1110
1302
|
reason: "interrupted",
|
|
@@ -2198,6 +2390,19 @@ export class AgentManager {
|
|
|
2198
2390
|
}
|
|
2199
2391
|
return client;
|
|
2200
2392
|
}
|
|
2393
|
+
async archiveNativeSessionBestEffort(provider, persistence) {
|
|
2394
|
+
if (!persistence)
|
|
2395
|
+
return;
|
|
2396
|
+
const client = this.clients.get(provider);
|
|
2397
|
+
if (!client?.archiveNativeSession)
|
|
2398
|
+
return;
|
|
2399
|
+
try {
|
|
2400
|
+
await client.archiveNativeSession(persistence);
|
|
2401
|
+
}
|
|
2402
|
+
catch (error) {
|
|
2403
|
+
this.logger.warn({ error, provider, sessionId: persistence.sessionId }, "Failed to archive native session (best-effort)");
|
|
2404
|
+
}
|
|
2405
|
+
}
|
|
2201
2406
|
requireAgent(id) {
|
|
2202
2407
|
const normalizedId = validateAgentId(id, "requireAgent");
|
|
2203
2408
|
const agent = this.agents.get(normalizedId);
|