@seawork/server 1.0.22-rc.3 → 2.0.2-rc.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/scripts/supervisor-entrypoint.js +48 -8
- package/dist/scripts/supervisor-entrypoint.js.map +1 -1
- package/dist/scripts/supervisor-native-classifier.js +77 -5
- package/dist/scripts/supervisor-native-classifier.js.map +1 -1
- package/dist/scripts/supervisor-stdio-tail.js +27 -0
- package/dist/scripts/supervisor-stdio-tail.js.map +1 -0
- package/dist/scripts/supervisor.js +12 -0
- package/dist/scripts/supervisor.js.map +1 -1
- package/dist/server/client/daemon-client.d.ts +142 -2
- package/dist/server/client/daemon-client.d.ts.map +1 -1
- package/dist/server/client/daemon-client.js +384 -3
- package/dist/server/client/daemon-client.js.map +1 -1
- package/dist/server/server/agent/agent-manager.d.ts +55 -3
- package/dist/server/server/agent/agent-manager.d.ts.map +1 -1
- package/dist/server/server/agent/agent-manager.js +324 -45
- package/dist/server/server/agent/agent-manager.js.map +1 -1
- package/dist/server/server/agent/agent-metadata-generator.d.ts +1 -0
- package/dist/server/server/agent/agent-metadata-generator.d.ts.map +1 -1
- package/dist/server/server/agent/agent-metadata-generator.js +8 -0
- package/dist/server/server/agent/agent-metadata-generator.js.map +1 -1
- package/dist/server/server/agent/agent-projections.js +7 -2
- package/dist/server/server/agent/agent-projections.js.map +1 -1
- package/dist/server/server/agent/agent-response-loop.d.ts +3 -1
- package/dist/server/server/agent/agent-response-loop.d.ts.map +1 -1
- package/dist/server/server/agent/agent-response-loop.js +33 -6
- package/dist/server/server/agent/agent-response-loop.js.map +1 -1
- package/dist/server/server/agent/agent-sdk-types.d.ts +43 -1
- package/dist/server/server/agent/agent-sdk-types.d.ts.map +1 -1
- package/dist/server/server/agent/claude-memory.d.ts +4 -0
- package/dist/server/server/agent/claude-memory.d.ts.map +1 -0
- package/dist/server/server/agent/claude-memory.js +97 -0
- package/dist/server/server/agent/claude-memory.js.map +1 -0
- package/dist/server/server/agent/mcp-server.d.ts.map +1 -1
- package/dist/server/server/agent/mcp-server.js +247 -0
- package/dist/server/server/agent/mcp-server.js.map +1 -1
- package/dist/server/server/agent/mcp-shared.d.ts +2 -0
- package/dist/server/server/agent/mcp-shared.d.ts.map +1 -1
- package/dist/server/server/agent/provider-launch-config.d.ts +6 -139
- package/dist/server/server/agent/provider-launch-config.d.ts.map +1 -1
- package/dist/server/server/agent/provider-launch-config.js +65 -33
- package/dist/server/server/agent/provider-launch-config.js.map +1 -1
- package/dist/server/server/agent/provider-manifest.d.ts +1 -0
- package/dist/server/server/agent/provider-manifest.d.ts.map +1 -1
- package/dist/server/server/agent/provider-manifest.js +36 -0
- package/dist/server/server/agent/provider-manifest.js.map +1 -1
- package/dist/server/server/agent/provider-registry.d.ts.map +1 -1
- package/dist/server/server/agent/provider-registry.js +4 -0
- package/dist/server/server/agent/provider-registry.js.map +1 -1
- package/dist/server/server/agent/provider-snapshot-manager.d.ts +3 -1
- package/dist/server/server/agent/provider-snapshot-manager.d.ts.map +1 -1
- package/dist/server/server/agent/provider-snapshot-manager.js +13 -0
- package/dist/server/server/agent/provider-snapshot-manager.js.map +1 -1
- package/dist/server/server/agent/providers/claude-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/claude-agent.js +141 -27
- package/dist/server/server/agent/providers/claude-agent.js.map +1 -1
- package/dist/server/server/agent/providers/codex/tool-call-mapper.d.ts.map +1 -1
- package/dist/server/server/agent/providers/codex/tool-call-mapper.js +14 -1
- package/dist/server/server/agent/providers/codex/tool-call-mapper.js.map +1 -1
- package/dist/server/server/agent/providers/codex-app-server-agent.d.ts +132 -4
- 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 +2233 -163
- package/dist/server/server/agent/providers/codex-app-server-agent.js.map +1 -1
- package/dist/server/server/agent/providers/codex-binary-resolver.d.ts +9 -0
- package/dist/server/server/agent/providers/codex-binary-resolver.d.ts.map +1 -1
- package/dist/server/server/agent/providers/codex-binary-resolver.js +35 -14
- package/dist/server/server/agent/providers/codex-binary-resolver.js.map +1 -1
- package/dist/server/server/agent/providers/codex-health-probe.js +1 -1
- package/dist/server/server/agent/providers/codex-health-probe.js.map +1 -1
- package/dist/server/server/agent/providers/deepseek/constants.d.ts +4 -0
- package/dist/server/server/agent/providers/deepseek/constants.d.ts.map +1 -0
- package/dist/server/server/agent/providers/deepseek/constants.js +11 -0
- package/dist/server/server/agent/providers/deepseek/constants.js.map +1 -0
- package/dist/server/server/agent/providers/deepseek/event-mapper.d.ts +21 -0
- package/dist/server/server/agent/providers/deepseek/event-mapper.d.ts.map +1 -0
- package/dist/server/server/agent/providers/deepseek/event-mapper.js +286 -0
- package/dist/server/server/agent/providers/deepseek/event-mapper.js.map +1 -0
- package/dist/server/server/agent/providers/deepseek/serve-client.d.ts +94 -0
- package/dist/server/server/agent/providers/deepseek/serve-client.d.ts.map +1 -0
- package/dist/server/server/agent/providers/deepseek/serve-client.js +142 -0
- package/dist/server/server/agent/providers/deepseek/serve-client.js.map +1 -0
- package/dist/server/server/agent/providers/deepseek/serve-process.d.ts +18 -0
- package/dist/server/server/agent/providers/deepseek/serve-process.d.ts.map +1 -0
- package/dist/server/server/agent/providers/deepseek/serve-process.js +93 -0
- package/dist/server/server/agent/providers/deepseek/serve-process.js.map +1 -0
- package/dist/server/server/agent/providers/deepseek-agent.d.ts +94 -0
- package/dist/server/server/agent/providers/deepseek-agent.d.ts.map +1 -0
- package/dist/server/server/agent/providers/deepseek-agent.js +811 -0
- package/dist/server/server/agent/providers/deepseek-agent.js.map +1 -0
- package/dist/server/server/agent/providers/gateway-telemetry.d.ts +9 -0
- package/dist/server/server/agent/providers/gateway-telemetry.d.ts.map +1 -0
- package/dist/server/server/agent/providers/gateway-telemetry.js +36 -0
- package/dist/server/server/agent/providers/gateway-telemetry.js.map +1 -0
- package/dist/server/server/agent/providers/seaagent/constants.d.ts +3 -0
- package/dist/server/server/agent/providers/seaagent/constants.d.ts.map +1 -0
- package/dist/server/server/agent/providers/seaagent/constants.js +3 -0
- package/dist/server/server/agent/providers/seaagent/constants.js.map +1 -0
- package/dist/server/server/agent/providers/seaagent/event-mapper.d.ts +3 -0
- package/dist/server/server/agent/providers/seaagent/event-mapper.d.ts.map +1 -0
- package/dist/server/server/agent/providers/seaagent/event-mapper.js +69 -0
- package/dist/server/server/agent/providers/seaagent/event-mapper.js.map +1 -0
- package/dist/server/server/agent/providers/seaagent/rpc-client.d.ts +23 -0
- package/dist/server/server/agent/providers/seaagent/rpc-client.d.ts.map +1 -0
- package/dist/server/server/agent/providers/seaagent/rpc-client.js +139 -0
- package/dist/server/server/agent/providers/seaagent/rpc-client.js.map +1 -0
- package/dist/server/server/agent/providers/seaagent/tool-call-mapper.d.ts +3 -0
- package/dist/server/server/agent/providers/seaagent/tool-call-mapper.d.ts.map +1 -0
- package/dist/server/server/agent/providers/seaagent/tool-call-mapper.js +38 -0
- package/dist/server/server/agent/providers/seaagent/tool-call-mapper.js.map +1 -0
- package/dist/server/server/agent/providers/seaagent-agent.d.ts +81 -0
- package/dist/server/server/agent/providers/seaagent-agent.d.ts.map +1 -0
- package/dist/server/server/agent/providers/seaagent-agent.js +502 -0
- package/dist/server/server/agent/providers/seaagent-agent.js.map +1 -0
- package/dist/server/server/agent/providers/seaagent-binary-resolver.d.ts +18 -0
- package/dist/server/server/agent/providers/seaagent-binary-resolver.d.ts.map +1 -0
- package/dist/server/server/agent/providers/seaagent-binary-resolver.js +46 -0
- package/dist/server/server/agent/providers/seaagent-binary-resolver.js.map +1 -0
- package/dist/server/server/agent/providers/seaagent-health-probe.d.ts +11 -0
- package/dist/server/server/agent/providers/seaagent-health-probe.d.ts.map +1 -0
- package/dist/server/server/agent/providers/seaagent-health-probe.js +49 -0
- package/dist/server/server/agent/providers/seaagent-health-probe.js.map +1 -0
- package/dist/server/server/agent/providers/seawork-models.d.ts +8 -0
- package/dist/server/server/agent/providers/seawork-models.d.ts.map +1 -1
- package/dist/server/server/agent/providers/seawork-models.js +118 -74
- package/dist/server/server/agent/providers/seawork-models.js.map +1 -1
- package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts +2 -2
- package/dist/server/server/agent/timeline-projection.d.ts +5 -1
- package/dist/server/server/agent/timeline-projection.d.ts.map +1 -1
- package/dist/server/server/agent/timeline-projection.js +20 -4
- package/dist/server/server/agent/timeline-projection.js.map +1 -1
- package/dist/server/server/agent-attention-policy.d.ts +1 -0
- package/dist/server/server/agent-attention-policy.d.ts.map +1 -1
- package/dist/server/server/agent-attention-policy.js +6 -0
- package/dist/server/server/agent-attention-policy.js.map +1 -1
- package/dist/server/server/allowed-hosts.d.ts +13 -0
- package/dist/server/server/allowed-hosts.d.ts.map +1 -1
- package/dist/server/server/allowed-hosts.js +33 -0
- package/dist/server/server/allowed-hosts.js.map +1 -1
- package/dist/server/server/bootstrap.d.ts +2 -0
- package/dist/server/server/bootstrap.d.ts.map +1 -1
- package/dist/server/server/bootstrap.js +200 -14
- package/dist/server/server/bootstrap.js.map +1 -1
- package/dist/server/server/browser-extension-token.d.ts +23 -0
- package/dist/server/server/browser-extension-token.d.ts.map +1 -0
- package/dist/server/server/browser-extension-token.js +114 -0
- package/dist/server/server/browser-extension-token.js.map +1 -0
- package/dist/server/server/bug-report-handler.d.ts +7 -1
- package/dist/server/server/bug-report-handler.d.ts.map +1 -1
- package/dist/server/server/bug-report-handler.js +73 -5
- package/dist/server/server/bug-report-handler.js.map +1 -1
- package/dist/server/server/bug-report-redact.d.ts +25 -1
- package/dist/server/server/bug-report-redact.d.ts.map +1 -1
- package/dist/server/server/bug-report-redact.js +42 -5
- package/dist/server/server/bug-report-redact.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 +51 -1
- package/dist/server/server/config.js.map +1 -1
- package/dist/server/server/crash-report.d.ts.map +1 -1
- package/dist/server/server/crash-report.js +18 -0
- package/dist/server/server/crash-report.js.map +1 -1
- package/dist/server/server/daemon-config-store.d.ts.map +1 -1
- package/dist/server/server/daemon-config-store.js +94 -3
- package/dist/server/server/daemon-config-store.js.map +1 -1
- package/dist/server/server/disk-full.d.ts +4 -0
- package/dist/server/server/disk-full.d.ts.map +1 -0
- package/dist/server/server/disk-full.js +46 -0
- package/dist/server/server/disk-full.js.map +1 -0
- package/dist/server/server/exports.d.ts +3 -2
- package/dist/server/server/exports.d.ts.map +1 -1
- package/dist/server/server/exports.js +2 -1
- package/dist/server/server/exports.js.map +1 -1
- package/dist/server/server/git-forge/github-client.d.ts +18 -0
- package/dist/server/server/git-forge/github-client.d.ts.map +1 -1
- package/dist/server/server/git-forge/github-client.js +88 -0
- package/dist/server/server/git-forge/github-client.js.map +1 -1
- package/dist/server/server/git-forge/parse-remote.d.ts +2 -0
- package/dist/server/server/git-forge/parse-remote.d.ts.map +1 -1
- package/dist/server/server/git-forge/parse-remote.js +71 -6
- package/dist/server/server/git-forge/parse-remote.js.map +1 -1
- package/dist/server/server/git-forge/service.d.ts +87 -0
- package/dist/server/server/git-forge/service.d.ts.map +1 -1
- package/dist/server/server/git-forge/service.js +198 -4
- package/dist/server/server/git-forge/service.js.map +1 -1
- package/dist/server/server/index.js +72 -0
- package/dist/server/server/index.js.map +1 -1
- package/dist/server/server/integrations/wecom-openclaw/bridge.d.ts +88 -0
- package/dist/server/server/integrations/wecom-openclaw/bridge.d.ts.map +1 -0
- package/dist/server/server/integrations/wecom-openclaw/bridge.js +1229 -0
- package/dist/server/server/integrations/wecom-openclaw/bridge.js.map +1 -0
- package/dist/server/server/integrations/wecom-openclaw/qr.d.ts +38 -0
- package/dist/server/server/integrations/wecom-openclaw/qr.d.ts.map +1 -0
- package/dist/server/server/integrations/wecom-openclaw/qr.js +101 -0
- package/dist/server/server/integrations/wecom-openclaw/qr.js.map +1 -0
- package/dist/server/server/integrations/wecom-openclaw/workspace.d.ts +5 -0
- package/dist/server/server/integrations/wecom-openclaw/workspace.d.ts.map +1 -0
- package/dist/server/server/integrations/wecom-openclaw/workspace.js +40 -0
- package/dist/server/server/integrations/wecom-openclaw/workspace.js.map +1 -0
- package/dist/server/server/latency-proxy.d.ts.map +1 -1
- package/dist/server/server/latency-proxy.js +45 -5
- package/dist/server/server/latency-proxy.js.map +1 -1
- package/dist/server/server/library/codex-skill-discovery.d.ts +9 -0
- package/dist/server/server/library/codex-skill-discovery.d.ts.map +1 -0
- package/dist/server/server/library/codex-skill-discovery.js +49 -0
- package/dist/server/server/library/codex-skill-discovery.js.map +1 -0
- package/dist/server/server/library/hub-install.d.ts +79 -0
- package/dist/server/server/library/hub-install.d.ts.map +1 -0
- package/dist/server/server/library/hub-install.js +263 -0
- package/dist/server/server/library/hub-install.js.map +1 -0
- package/dist/server/server/library/hub-test-run.d.ts +81 -0
- package/dist/server/server/library/hub-test-run.d.ts.map +1 -0
- package/dist/server/server/library/hub-test-run.js +237 -0
- package/dist/server/server/library/hub-test-run.js.map +1 -0
- package/dist/server/server/library/library-import.d.ts +27 -0
- package/dist/server/server/library/library-import.d.ts.map +1 -0
- package/dist/server/server/library/library-import.js +227 -0
- package/dist/server/server/library/library-import.js.map +1 -0
- package/dist/server/server/library/library-injection.d.ts +16 -0
- package/dist/server/server/library/library-injection.d.ts.map +1 -0
- package/dist/server/server/library/library-injection.js +49 -0
- package/dist/server/server/library/library-injection.js.map +1 -0
- package/dist/server/server/library/library-rpc.d.ts +73 -0
- package/dist/server/server/library/library-rpc.d.ts.map +1 -0
- package/dist/server/server/library/library-rpc.js +239 -0
- package/dist/server/server/library/library-rpc.js.map +1 -0
- package/dist/server/server/library/library-store.d.ts +35 -0
- package/dist/server/server/library/library-store.d.ts.map +1 -0
- package/dist/server/server/library/library-store.js +169 -0
- package/dist/server/server/library/library-store.js.map +1 -0
- package/dist/server/server/library/library-sync.d.ts +46 -0
- package/dist/server/server/library/library-sync.d.ts.map +1 -0
- package/dist/server/server/library/library-sync.js +235 -0
- package/dist/server/server/library/library-sync.js.map +1 -0
- package/dist/server/server/library/library-types.d.ts +756 -0
- package/dist/server/server/library/library-types.d.ts.map +1 -0
- package/dist/server/server/library/library-types.js +99 -0
- package/dist/server/server/library/library-types.js.map +1 -0
- package/dist/server/server/library/worktree-dev.d.ts +14 -0
- package/dist/server/server/library/worktree-dev.d.ts.map +1 -0
- package/dist/server/server/library/worktree-dev.js +24 -0
- package/dist/server/server/library/worktree-dev.js.map +1 -0
- package/dist/server/server/log-stream-error.d.ts +2 -0
- package/dist/server/server/log-stream-error.d.ts.map +1 -0
- package/dist/server/server/log-stream-error.js +33 -0
- package/dist/server/server/log-stream-error.js.map +1 -0
- package/dist/server/server/logger.d.ts +1 -0
- package/dist/server/server/logger.d.ts.map +1 -1
- package/dist/server/server/logger.js +32 -0
- package/dist/server/server/logger.js.map +1 -1
- package/dist/server/server/loop/rpc-schemas.d.ts +96 -96
- package/dist/server/server/loop-service.d.ts +18 -18
- package/dist/server/server/messages.d.ts +4 -1
- package/dist/server/server/messages.d.ts.map +1 -1
- package/dist/server/server/messages.js +40 -2
- package/dist/server/server/messages.js.map +1 -1
- package/dist/server/server/node-pty-error.d.ts +2 -0
- package/dist/server/server/node-pty-error.d.ts.map +1 -0
- package/dist/server/server/node-pty-error.js +19 -0
- package/dist/server/server/node-pty-error.js.map +1 -0
- package/dist/server/server/persisted-config.d.ts +219 -135
- package/dist/server/server/persisted-config.d.ts.map +1 -1
- package/dist/server/server/persisted-config.js +35 -1
- package/dist/server/server/persisted-config.js.map +1 -1
- package/dist/server/server/port-in-use.d.ts +4 -0
- package/dist/server/server/port-in-use.d.ts.map +1 -0
- package/dist/server/server/port-in-use.js +35 -0
- package/dist/server/server/port-in-use.js.map +1 -0
- package/dist/server/server/provider-runtime-settings-mask.d.ts +7 -0
- package/dist/server/server/provider-runtime-settings-mask.d.ts.map +1 -0
- package/dist/server/server/provider-runtime-settings-mask.js +65 -0
- package/dist/server/server/provider-runtime-settings-mask.js.map +1 -0
- package/dist/server/server/sac/auth.d.ts +12 -0
- package/dist/server/server/sac/auth.d.ts.map +1 -1
- package/dist/server/server/sac/auth.js +19 -1
- package/dist/server/server/sac/auth.js.map +1 -1
- package/dist/server/server/sac/index.d.ts +2 -2
- package/dist/server/server/sac/index.d.ts.map +1 -1
- package/dist/server/server/sac/index.js +2 -2
- package/dist/server/server/sac/index.js.map +1 -1
- package/dist/server/server/sac/poll.d.ts +2 -0
- package/dist/server/server/sac/poll.d.ts.map +1 -1
- package/dist/server/server/sac/poll.js +7 -2
- package/dist/server/server/sac/poll.js.map +1 -1
- package/dist/server/server/schedule/cron.d.ts.map +1 -1
- package/dist/server/server/schedule/cron.js +6 -6
- package/dist/server/server/schedule/cron.js.map +1 -1
- package/dist/server/server/schedule/rpc-schemas.d.ts +895 -0
- package/dist/server/server/schedule/rpc-schemas.d.ts.map +1 -1
- package/dist/server/server/schedule/rpc-schemas.js +34 -0
- package/dist/server/server/schedule/rpc-schemas.js.map +1 -1
- package/dist/server/server/schedule/service.d.ts +5 -1
- package/dist/server/server/schedule/service.d.ts.map +1 -1
- package/dist/server/server/schedule/service.js +97 -14
- package/dist/server/server/schedule/service.js.map +1 -1
- package/dist/server/server/schedule/types.d.ts +19 -0
- package/dist/server/server/schedule/types.d.ts.map +1 -1
- package/dist/server/server/schedule/types.js +1 -0
- package/dist/server/server/schedule/types.js.map +1 -1
- package/dist/server/server/session.d.ts +83 -2
- package/dist/server/server/session.d.ts.map +1 -1
- package/dist/server/server/session.js +895 -82
- package/dist/server/server/session.js.map +1 -1
- package/dist/server/server/speech/native-runtime-guard.d.ts +1 -0
- package/dist/server/server/speech/native-runtime-guard.d.ts.map +1 -1
- package/dist/server/server/speech/native-runtime-guard.js +10 -4
- package/dist/server/server/speech/native-runtime-guard.js.map +1 -1
- package/dist/server/server/websocket-server.d.ts +6 -1
- package/dist/server/server/websocket-server.d.ts.map +1 -1
- package/dist/server/server/websocket-server.js +79 -7
- package/dist/server/server/websocket-server.js.map +1 -1
- package/dist/server/server/workspace-git-service.d.ts +2 -1
- package/dist/server/server/workspace-git-service.d.ts.map +1 -1
- package/dist/server/server/workspace-git-service.js +7 -3
- package/dist/server/server/workspace-git-service.js.map +1 -1
- package/dist/server/server/workspace-registry-model.d.ts +1 -0
- package/dist/server/server/workspace-registry-model.d.ts.map +1 -1
- package/dist/server/server/workspace-registry-model.js +18 -0
- package/dist/server/server/workspace-registry-model.js.map +1 -1
- package/dist/server/server/worktree-session.d.ts +3 -3
- package/dist/server/server/worktree-session.d.ts.map +1 -1
- package/dist/server/server/worktree-session.js +1 -3
- package/dist/server/server/worktree-session.js.map +1 -1
- package/dist/server/shared/messages.d.ts +59658 -21927
- package/dist/server/shared/messages.d.ts.map +1 -1
- package/dist/server/shared/messages.js +531 -3
- package/dist/server/shared/messages.js.map +1 -1
- package/dist/server/shared/provider-runtime-settings.d.ts +87 -0
- package/dist/server/shared/provider-runtime-settings.d.ts.map +1 -0
- package/dist/server/shared/provider-runtime-settings.js +33 -0
- package/dist/server/shared/provider-runtime-settings.js.map +1 -0
- package/dist/server/terminal/terminal.d.ts +9 -0
- package/dist/server/terminal/terminal.d.ts.map +1 -1
- package/dist/server/terminal/terminal.js +100 -3
- package/dist/server/terminal/terminal.js.map +1 -1
- package/dist/server/utils/checkout-git.d.ts +23 -1
- package/dist/server/utils/checkout-git.d.ts.map +1 -1
- package/dist/server/utils/checkout-git.js +182 -21
- package/dist/server/utils/checkout-git.js.map +1 -1
- package/dist/server/utils/directory-suggestions.d.ts.map +1 -1
- package/dist/server/utils/directory-suggestions.js +57 -9
- package/dist/server/utils/directory-suggestions.js.map +1 -1
- package/dist/src/server/bug-report-redact.js +42 -5
- package/dist/src/server/bug-report-redact.js.map +1 -1
- package/dist/src/server/crash-report.js +18 -0
- package/dist/src/server/crash-report.js.map +1 -1
- package/dist/src/server/speech/native-runtime-guard.js +177 -0
- package/dist/src/server/speech/native-runtime-guard.js.map +1 -0
- package/dist/src/server/speech/speech-types.js +8 -0
- package/dist/src/server/speech/speech-types.js.map +1 -0
- package/package.json +16 -4
|
@@ -1,21 +1,43 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import { TOOL_CALL_ICON_NAMES } from "../server/agent/agent-sdk-types.js";
|
|
2
|
+
import { TOOL_CALL_ICON_NAMES, } from "../server/agent/agent-sdk-types.js";
|
|
3
3
|
import { MAX_EXPLICIT_AGENT_TITLE_CHARS } from "../server/agent/agent-title-limits.js";
|
|
4
4
|
import { AgentProviderSchema } from "../server/agent/provider-manifest.js";
|
|
5
5
|
import { ChatCreateRequestSchema, ChatCreateResponseSchema, ChatDeleteRequestSchema, ChatDeleteResponseSchema, ChatInspectRequestSchema, ChatInspectResponseSchema, ChatListRequestSchema, ChatListResponseSchema, ChatPostRequestSchema, ChatPostResponseSchema, ChatReadRequestSchema, ChatReadResponseSchema, ChatWaitRequestSchema, ChatWaitResponseSchema, } from "../server/chat/chat-rpc-schemas.js";
|
|
6
6
|
import { LoopInspectRequestSchema, LoopInspectResponseSchema, LoopListRequestSchema, LoopListResponseSchema, LoopLogsRequestSchema, LoopLogsResponseSchema, LoopRunRequestSchema, LoopRunResponseSchema, LoopStopRequestSchema, LoopStopResponseSchema, } from "../server/loop/rpc-schemas.js";
|
|
7
|
-
import { ScheduleCreateRequestSchema, ScheduleCreateResponseSchema, ScheduleDeleteRequestSchema, ScheduleDeleteResponseSchema, ScheduleInspectRequestSchema, ScheduleInspectResponseSchema, ScheduleListRequestSchema, ScheduleListResponseSchema, ScheduleLogsRequestSchema, ScheduleLogsResponseSchema, SchedulePauseRequestSchema, SchedulePauseResponseSchema, ScheduleResumeRequestSchema, ScheduleResumeResponseSchema, } from "../server/schedule/rpc-schemas.js";
|
|
7
|
+
import { ScheduleCreateRequestSchema, ScheduleCreateResponseSchema, ScheduleDeleteRequestSchema, ScheduleDeleteResponseSchema, ScheduleInspectRequestSchema, ScheduleInspectResponseSchema, ScheduleListRequestSchema, ScheduleListResponseSchema, ScheduleLogsRequestSchema, ScheduleLogsResponseSchema, SchedulePauseRequestSchema, SchedulePauseResponseSchema, ScheduleResumeRequestSchema, ScheduleResumeResponseSchema, ScheduleRunNowRequestSchema, ScheduleRunNowResponseSchema, ScheduleUpdateRequestSchema, ScheduleUpdateResponseSchema, } from "../server/schedule/rpc-schemas.js";
|
|
8
8
|
import { AGENT_LIFECYCLE_STATUSES } from "./agent-lifecycle.js";
|
|
9
|
+
import { AgentProviderRuntimeSettingsMapSchema } from "./provider-runtime-settings.js";
|
|
9
10
|
// ---------------------------------------------------------------------------
|
|
10
11
|
// Mutable daemon config schemas (shared between server store and client)
|
|
11
12
|
// ---------------------------------------------------------------------------
|
|
12
13
|
// Sentinel returned in place of stored tokens when broadcasting config to
|
|
13
14
|
// clients. The daemon never sends raw token strings over the wire.
|
|
14
15
|
export const GIT_FORGE_TOKEN_REDACTED = "<configured>";
|
|
16
|
+
export const PROVIDER_ENV_VALUE_REDACTED = "<configured>";
|
|
15
17
|
export const GitForgeTokenEntrySchema = z.object({
|
|
16
18
|
host: z.string().min(1),
|
|
17
19
|
token: z.string(),
|
|
18
20
|
});
|
|
21
|
+
export const WeComOpenClawAgentModeSchema = z.enum(["new", "existing"]);
|
|
22
|
+
export const WeComOpenClawConfigSchema = z
|
|
23
|
+
.object({
|
|
24
|
+
enabled: z.boolean().optional(),
|
|
25
|
+
botId: z.string().optional(),
|
|
26
|
+
secret: z.string().optional(),
|
|
27
|
+
websocketUrl: z.string().optional(),
|
|
28
|
+
cwd: z.string().optional(),
|
|
29
|
+
provider: AgentProviderSchema.optional(),
|
|
30
|
+
modeId: z.string().optional(),
|
|
31
|
+
model: z.string().optional(),
|
|
32
|
+
thinkingOptionId: z.string().optional(),
|
|
33
|
+
pluginVersion: z.string().optional(),
|
|
34
|
+
allowUsers: z.array(z.string()).optional(),
|
|
35
|
+
allowChats: z.array(z.string()).optional(),
|
|
36
|
+
pendingAllowFirstUser: z.boolean().optional(),
|
|
37
|
+
agentMode: WeComOpenClawAgentModeSchema.optional(),
|
|
38
|
+
agentId: z.string().nullable().optional(),
|
|
39
|
+
})
|
|
40
|
+
.passthrough();
|
|
19
41
|
export const MutableDaemonConfigSchema = z
|
|
20
42
|
.object({
|
|
21
43
|
mcp: z
|
|
@@ -23,6 +45,11 @@ export const MutableDaemonConfigSchema = z
|
|
|
23
45
|
injectIntoAgents: z.boolean(),
|
|
24
46
|
})
|
|
25
47
|
.passthrough(),
|
|
48
|
+
agents: z
|
|
49
|
+
.object({
|
|
50
|
+
providers: AgentProviderRuntimeSettingsMapSchema.optional(),
|
|
51
|
+
})
|
|
52
|
+
.optional(),
|
|
26
53
|
integrations: z
|
|
27
54
|
.object({
|
|
28
55
|
gitForge: z
|
|
@@ -30,6 +57,16 @@ export const MutableDaemonConfigSchema = z
|
|
|
30
57
|
tokens: z.array(GitForgeTokenEntrySchema).default([]),
|
|
31
58
|
})
|
|
32
59
|
.optional(),
|
|
60
|
+
wecomOpenClaw: WeComOpenClawConfigSchema.optional(),
|
|
61
|
+
})
|
|
62
|
+
.optional(),
|
|
63
|
+
promptInjection: z
|
|
64
|
+
.object({
|
|
65
|
+
system: z.string().max(32000).optional(),
|
|
66
|
+
projects: z
|
|
67
|
+
.array(z.object({ cwd: z.string().min(1), prompt: z.string().max(32000) }))
|
|
68
|
+
.max(100)
|
|
69
|
+
.optional(),
|
|
33
70
|
})
|
|
34
71
|
.optional(),
|
|
35
72
|
})
|
|
@@ -37,6 +74,11 @@ export const MutableDaemonConfigSchema = z
|
|
|
37
74
|
export const MutableDaemonConfigPatchSchema = z
|
|
38
75
|
.object({
|
|
39
76
|
mcp: MutableDaemonConfigSchema.shape.mcp.partial().optional(),
|
|
77
|
+
agents: z
|
|
78
|
+
.object({
|
|
79
|
+
providers: AgentProviderRuntimeSettingsMapSchema.optional(),
|
|
80
|
+
})
|
|
81
|
+
.optional(),
|
|
40
82
|
integrations: z
|
|
41
83
|
.object({
|
|
42
84
|
gitForge: z
|
|
@@ -44,6 +86,16 @@ export const MutableDaemonConfigPatchSchema = z
|
|
|
44
86
|
tokens: z.array(GitForgeTokenEntrySchema).optional(),
|
|
45
87
|
})
|
|
46
88
|
.optional(),
|
|
89
|
+
wecomOpenClaw: WeComOpenClawConfigSchema.partial().optional(),
|
|
90
|
+
})
|
|
91
|
+
.optional(),
|
|
92
|
+
promptInjection: z
|
|
93
|
+
.object({
|
|
94
|
+
system: z.string().max(32000).optional(),
|
|
95
|
+
projects: z
|
|
96
|
+
.array(z.object({ cwd: z.string().min(1), prompt: z.string().max(32000) }))
|
|
97
|
+
.max(100)
|
|
98
|
+
.optional(),
|
|
47
99
|
})
|
|
48
100
|
.optional(),
|
|
49
101
|
})
|
|
@@ -141,7 +193,7 @@ const McpSseServerConfigSchema = z.object({
|
|
|
141
193
|
url: z.string(),
|
|
142
194
|
headers: z.record(z.string()).optional(),
|
|
143
195
|
});
|
|
144
|
-
const McpServerConfigSchema = z.discriminatedUnion("type", [
|
|
196
|
+
export const McpServerConfigSchema = z.discriminatedUnion("type", [
|
|
145
197
|
McpStdioServerConfigSchema,
|
|
146
198
|
McpHttpServerConfigSchema,
|
|
147
199
|
McpSseServerConfigSchema,
|
|
@@ -167,6 +219,7 @@ const AgentSessionConfigSchema = z.object({
|
|
|
167
219
|
.optional(),
|
|
168
220
|
systemPrompt: z.string().optional(),
|
|
169
221
|
mcpServers: z.record(McpServerConfigSchema).optional(),
|
|
222
|
+
perAgentDisabled: z.array(z.string()).optional(),
|
|
170
223
|
});
|
|
171
224
|
const AgentPermissionUpdateSchema = z.record(z.unknown());
|
|
172
225
|
const AgentPermissionActionSchema = z.object({
|
|
@@ -352,6 +405,18 @@ export const AgentTimelineItemPayloadSchema = z.union([
|
|
|
352
405
|
type: z.literal("user_message"),
|
|
353
406
|
text: z.string(),
|
|
354
407
|
messageId: z.string().optional(),
|
|
408
|
+
images: z
|
|
409
|
+
.array(z.object({
|
|
410
|
+
id: z.string(),
|
|
411
|
+
mimeType: z.string(),
|
|
412
|
+
storageType: z.enum(["web-indexeddb", "desktop-file", "native-file"]),
|
|
413
|
+
storageKey: z.string(),
|
|
414
|
+
dataUrl: z.string().optional(),
|
|
415
|
+
fileName: z.string().nullable().optional(),
|
|
416
|
+
byteSize: z.number().nullable().optional(),
|
|
417
|
+
createdAt: z.number(),
|
|
418
|
+
}))
|
|
419
|
+
.optional(),
|
|
355
420
|
}),
|
|
356
421
|
z.object({
|
|
357
422
|
type: z.literal("assistant_message"),
|
|
@@ -379,6 +444,12 @@ export const AgentTimelineItemPayloadSchema = z.union([
|
|
|
379
444
|
trigger: z.enum(["auto", "manual"]).optional(),
|
|
380
445
|
preTokens: z.number().optional(),
|
|
381
446
|
}),
|
|
447
|
+
z.object({
|
|
448
|
+
type: z.literal("reconnecting"),
|
|
449
|
+
status: z.enum(["loading", "completed"]),
|
|
450
|
+
attempt: z.number().optional(),
|
|
451
|
+
maxAttempts: z.number().optional(),
|
|
452
|
+
}),
|
|
382
453
|
]);
|
|
383
454
|
/**
|
|
384
455
|
* Per-turn latency breakdown captured when the user has enabled latency debug
|
|
@@ -439,6 +510,7 @@ export const AgentStreamEventPayloadSchema = z.discriminatedUnion("type", [
|
|
|
439
510
|
type: z.literal("turn_canceled"),
|
|
440
511
|
provider: AgentProviderSchema,
|
|
441
512
|
reason: z.string(),
|
|
513
|
+
turnId: z.string().optional(),
|
|
442
514
|
}),
|
|
443
515
|
z.object({
|
|
444
516
|
type: z.literal("timeline"),
|
|
@@ -513,6 +585,8 @@ export const AgentSnapshotPayloadSchema = z.object({
|
|
|
513
585
|
lastUsage: AgentUsageSchema.optional(),
|
|
514
586
|
lastError: z.string().optional(),
|
|
515
587
|
title: z.string().nullable(),
|
|
588
|
+
activeForegroundTurnId: z.string().nullable().optional(),
|
|
589
|
+
activeForegroundTurnStartedAt: z.number().nullable().optional(),
|
|
516
590
|
labels: z.record(z.string()).default({}),
|
|
517
591
|
requiresAttention: z.boolean().optional(),
|
|
518
592
|
attentionReason: z.enum(["finished", "error", "permission"]).nullable().optional(),
|
|
@@ -616,6 +690,46 @@ export const SubmitBugReportRequestMessageSchema = z.object({
|
|
|
616
690
|
}))
|
|
617
691
|
.max(200)
|
|
618
692
|
.optional(),
|
|
693
|
+
// Independent agent-event channel: 30s ws_runtime_metrics heartbeats
|
|
694
|
+
// were swallowing real turn errors out of the 32KB daemon.log tail. The
|
|
695
|
+
// ring buffer in AgentManager captures the last N turn_started/completed/
|
|
696
|
+
// failed/canceled events directly, free of heartbeat noise.
|
|
697
|
+
recentTurnTraces: z
|
|
698
|
+
.array(z.object({
|
|
699
|
+
ts: z.number(),
|
|
700
|
+
agentId: z.string(),
|
|
701
|
+
provider: z.string(),
|
|
702
|
+
agentRole: z.enum(["user-foreground", "internal"]),
|
|
703
|
+
model: z.string().optional(),
|
|
704
|
+
turnId: z.string().optional(),
|
|
705
|
+
eventType: z.enum(["turn_started", "turn_completed", "turn_failed", "turn_canceled"]),
|
|
706
|
+
durationMs: z.number().optional(),
|
|
707
|
+
error: z.string().optional(),
|
|
708
|
+
code: z.string().optional(),
|
|
709
|
+
diagnostic: z.string().optional(),
|
|
710
|
+
}))
|
|
711
|
+
.max(50)
|
|
712
|
+
.optional(),
|
|
713
|
+
// Doctor session log freshness — clients fetch this from the desktop
|
|
714
|
+
// IPC and forward it so reviewers can spot stale logs at a glance
|
|
715
|
+
// (root cause of #484: bug-report attached a 3-week-old v0.1.0 log).
|
|
716
|
+
doctorMeta: z
|
|
717
|
+
.object({
|
|
718
|
+
version: z.string().optional(),
|
|
719
|
+
ranAt: z.number().optional(),
|
|
720
|
+
ageMs: z.number().optional(),
|
|
721
|
+
autoReran: z.boolean().optional(),
|
|
722
|
+
path: z.string().optional(),
|
|
723
|
+
})
|
|
724
|
+
.optional(),
|
|
725
|
+
// Structured user-context fields prompted in the report form. All
|
|
726
|
+
// optional for back-compat with old clients; we collect what users give
|
|
727
|
+
// us and avoid the friction of hard-required fields until the data
|
|
728
|
+
// proves it's worth enforcing (#483 #484 verdict).
|
|
729
|
+
userReproSteps: z.string().max(2000).optional(),
|
|
730
|
+
userPreviouslyWorked: z.enum(["never-worked", "worked-recently-broke", "unknown"]).optional(),
|
|
731
|
+
userFrequency: z.enum(["every-time", "sometimes", "once"]).optional(),
|
|
732
|
+
userWaitSeconds: z.number().int().min(0).max(3600).optional(),
|
|
619
733
|
});
|
|
620
734
|
export const SubmitBugReportResponseMessageSchema = z.object({
|
|
621
735
|
type: z.literal("submit_bug_report_response"),
|
|
@@ -858,6 +972,19 @@ const DocumentAttachmentSchema = z.object({
|
|
|
858
972
|
mimeType: z.string(),
|
|
859
973
|
fileName: z.string().nullable().optional(),
|
|
860
974
|
});
|
|
975
|
+
const UserMessageImageAttachmentSchema = z.object({
|
|
976
|
+
id: z.string(),
|
|
977
|
+
mimeType: z.string(),
|
|
978
|
+
storageType: z.enum(["web-indexeddb", "desktop-file", "native-file"]),
|
|
979
|
+
storageKey: z.string(),
|
|
980
|
+
dataUrl: z
|
|
981
|
+
.string()
|
|
982
|
+
.regex(/^data:[^;,]+;base64,[A-Za-z0-9+/]+=*$/)
|
|
983
|
+
.optional(),
|
|
984
|
+
fileName: z.string().nullable().optional(),
|
|
985
|
+
byteSize: z.number().nullable().optional(),
|
|
986
|
+
createdAt: z.number(),
|
|
987
|
+
});
|
|
861
988
|
export const SendAgentMessageRequestSchema = z.object({
|
|
862
989
|
type: z.literal("send_agent_message_request"),
|
|
863
990
|
requestId: z.string(),
|
|
@@ -871,6 +998,12 @@ export const SendAgentMessageRequestSchema = z.object({
|
|
|
871
998
|
mimeType: z.string(), // e.g., "image/jpeg", "image/png"
|
|
872
999
|
}))
|
|
873
1000
|
.optional(),
|
|
1001
|
+
/**
|
|
1002
|
+
* Attachment metadata for rendering/persisting user-message images in the
|
|
1003
|
+
* timeline. Separate from `images`, which carries base64 bytes for the model
|
|
1004
|
+
* input. Optional for backward compatibility with older clients.
|
|
1005
|
+
*/
|
|
1006
|
+
imageAttachments: z.array(UserMessageImageAttachmentSchema).optional(),
|
|
874
1007
|
/**
|
|
875
1008
|
* Document attachments carried as native file paths (desktop/mobile only).
|
|
876
1009
|
* Server reads these locally when composing the prompt. Always optional for
|
|
@@ -901,12 +1034,32 @@ export const SetDaemonConfigRequestMessageSchema = z.object({
|
|
|
901
1034
|
requestId: z.string(),
|
|
902
1035
|
config: MutableDaemonConfigPatchSchema,
|
|
903
1036
|
});
|
|
1037
|
+
export const WeComOpenClawQrRequestMessageSchema = z.object({
|
|
1038
|
+
type: z.literal("wecom_openclaw_qr_request"),
|
|
1039
|
+
requestId: z.string(),
|
|
1040
|
+
poll: z.boolean().optional(),
|
|
1041
|
+
});
|
|
904
1042
|
export const FetchGitForgeIssuesRequestMessageSchema = z.object({
|
|
905
1043
|
type: z.literal("fetch_git_forge_issues_request"),
|
|
906
1044
|
requestId: z.string(),
|
|
907
1045
|
workspaceId: z.string().optional(),
|
|
908
1046
|
cwd: z.string().optional(),
|
|
909
1047
|
});
|
|
1048
|
+
export const DiscoverGitForgeIssueWorkRequestMessageSchema = z.object({
|
|
1049
|
+
type: z.literal("discover_git_forge_issue_work_request"),
|
|
1050
|
+
requestId: z.string(),
|
|
1051
|
+
number: z.number().int().positive(),
|
|
1052
|
+
workspaceId: z.string().optional(),
|
|
1053
|
+
cwd: z.string().optional(),
|
|
1054
|
+
});
|
|
1055
|
+
export const TransitionGitForgeIssueWorkRequestMessageSchema = z.object({
|
|
1056
|
+
type: z.literal("transition_git_forge_issue_work_request"),
|
|
1057
|
+
requestId: z.string(),
|
|
1058
|
+
number: z.number().int().positive(),
|
|
1059
|
+
workspaceId: z.string().optional(),
|
|
1060
|
+
cwd: z.string().optional(),
|
|
1061
|
+
source: z.enum(["manual", "symphony-web"]).optional(),
|
|
1062
|
+
});
|
|
910
1063
|
// ============================================================================
|
|
911
1064
|
// Dictation Streaming (lossless, resumable)
|
|
912
1065
|
// ============================================================================
|
|
@@ -951,6 +1104,12 @@ export const CreateAgentRequestMessageSchema = z.object({
|
|
|
951
1104
|
mimeType: z.string(), // e.g., "image/jpeg", "image/png"
|
|
952
1105
|
}))
|
|
953
1106
|
.optional(),
|
|
1107
|
+
/**
|
|
1108
|
+
* Attachment metadata for rendering/persisting initial user-message images in
|
|
1109
|
+
* the timeline. Separate from `images`, which carries base64 bytes for model
|
|
1110
|
+
* input. Optional for backward compatibility with older clients.
|
|
1111
|
+
*/
|
|
1112
|
+
imageAttachments: z.array(UserMessageImageAttachmentSchema).optional(),
|
|
954
1113
|
/** Document attachments as native file paths. See SendAgentMessageRequestSchema. */
|
|
955
1114
|
documents: z.array(DocumentAttachmentSchema).optional(),
|
|
956
1115
|
git: GitSetupOptionsSchema.optional(),
|
|
@@ -1456,6 +1615,7 @@ export const ClientHeartbeatMessageSchema = z.object({
|
|
|
1456
1615
|
lastActivityAt: z.string(),
|
|
1457
1616
|
appVisible: z.boolean(),
|
|
1458
1617
|
appVisibilityChangedAt: z.string().optional(),
|
|
1618
|
+
desktopRuntime: z.boolean().optional(),
|
|
1459
1619
|
});
|
|
1460
1620
|
export const PingMessageSchema = z.object({
|
|
1461
1621
|
type: z.literal("ping"),
|
|
@@ -1545,6 +1705,228 @@ export const CaptureTerminalRequestSchema = z.object({
|
|
|
1545
1705
|
stripAnsi: z.boolean().default(true),
|
|
1546
1706
|
requestId: z.string(),
|
|
1547
1707
|
});
|
|
1708
|
+
// ============================================================================
|
|
1709
|
+
// Library RPCs (centrally-managed MCP + skills shared by Claude/Codex agents)
|
|
1710
|
+
// ============================================================================
|
|
1711
|
+
// Wire-level `source` is an OPEN string, not a narrowed enum. Pre-hub clients
|
|
1712
|
+
// (and the production daemon) shipped a 4-value enum without "hub"; adding a new
|
|
1713
|
+
// enum value to the wire would make their `.parse()` reject the whole
|
|
1714
|
+
// library_updated/library_list_response. Per CLAUDE.md's compat rule
|
|
1715
|
+
// ("never narrow string→enum on the wire"), keep this permissive so future
|
|
1716
|
+
// source values never break an old client. The daemon also downcasts unknown
|
|
1717
|
+
// new values (e.g. "hub") to undefined when serializing for old clients —
|
|
1718
|
+
// see buildSnapshot in library-rpc.ts. Hub-ness travels via the `hub` field.
|
|
1719
|
+
const LibrarySourceShape = z.string().optional();
|
|
1720
|
+
export const LibraryMcpEntryPayloadSchema = z.object({
|
|
1721
|
+
config: McpServerConfigSchema,
|
|
1722
|
+
enabledFor: z
|
|
1723
|
+
.object({
|
|
1724
|
+
claude: z.boolean().optional(),
|
|
1725
|
+
codex: z.boolean().optional(),
|
|
1726
|
+
})
|
|
1727
|
+
.optional(),
|
|
1728
|
+
autoAttach: z.boolean().optional(),
|
|
1729
|
+
source: LibrarySourceShape,
|
|
1730
|
+
updatedAt: z.string().optional(),
|
|
1731
|
+
});
|
|
1732
|
+
export const LibrarySkillEntryPayloadSchema = z.object({
|
|
1733
|
+
content: z.string(),
|
|
1734
|
+
providers: z.array(z.enum(["claude", "codex"])).optional(),
|
|
1735
|
+
autoAttach: z.boolean().optional(),
|
|
1736
|
+
source: LibrarySourceShape,
|
|
1737
|
+
updatedAt: z.string().optional(),
|
|
1738
|
+
contentCodex: z.string().optional(),
|
|
1739
|
+
hub: z
|
|
1740
|
+
.object({
|
|
1741
|
+
hubId: z.string(),
|
|
1742
|
+
version: z.string(),
|
|
1743
|
+
tarballSha256: z.string(),
|
|
1744
|
+
installedAt: z.string(),
|
|
1745
|
+
})
|
|
1746
|
+
.optional(),
|
|
1747
|
+
});
|
|
1748
|
+
export const LibrarySnapshotPayloadSchema = z.object({
|
|
1749
|
+
library: z.object({
|
|
1750
|
+
version: z.number().optional(),
|
|
1751
|
+
mcpServers: z.record(LibraryMcpEntryPayloadSchema).optional(),
|
|
1752
|
+
skills: z.record(LibrarySkillEntryPayloadSchema).optional(),
|
|
1753
|
+
}),
|
|
1754
|
+
conflicts: z
|
|
1755
|
+
.array(z.object({
|
|
1756
|
+
name: z.string(),
|
|
1757
|
+
ownerSeaworkHome: z.string(),
|
|
1758
|
+
}))
|
|
1759
|
+
.optional(),
|
|
1760
|
+
isWorktreeDev: z.boolean().optional(),
|
|
1761
|
+
neverImported: z.boolean().optional(),
|
|
1762
|
+
});
|
|
1763
|
+
export const LibraryListRequestMessageSchema = z.object({
|
|
1764
|
+
type: z.literal("library_list_request"),
|
|
1765
|
+
requestId: z.string(),
|
|
1766
|
+
});
|
|
1767
|
+
export const LibraryListResponseMessageSchema = z.object({
|
|
1768
|
+
type: z.literal("library_list_response"),
|
|
1769
|
+
requestId: z.string(),
|
|
1770
|
+
snapshot: LibrarySnapshotPayloadSchema.optional(),
|
|
1771
|
+
error: z.string().optional(),
|
|
1772
|
+
});
|
|
1773
|
+
export const LibraryUpsertMcpRequestMessageSchema = z.object({
|
|
1774
|
+
type: z.literal("library_upsert_mcp_request"),
|
|
1775
|
+
requestId: z.string(),
|
|
1776
|
+
name: z.string().min(1),
|
|
1777
|
+
entry: LibraryMcpEntryPayloadSchema,
|
|
1778
|
+
});
|
|
1779
|
+
export const LibraryUpsertMcpResponseMessageSchema = z.object({
|
|
1780
|
+
type: z.literal("library_upsert_mcp_response"),
|
|
1781
|
+
requestId: z.string(),
|
|
1782
|
+
ok: z.boolean(),
|
|
1783
|
+
error: z.string().optional(),
|
|
1784
|
+
});
|
|
1785
|
+
export const LibraryUpsertSkillRequestMessageSchema = z.object({
|
|
1786
|
+
type: z.literal("library_upsert_skill_request"),
|
|
1787
|
+
requestId: z.string(),
|
|
1788
|
+
name: z.string().min(1),
|
|
1789
|
+
entry: LibrarySkillEntryPayloadSchema,
|
|
1790
|
+
});
|
|
1791
|
+
export const LibraryUpsertSkillResponseMessageSchema = z.object({
|
|
1792
|
+
type: z.literal("library_upsert_skill_response"),
|
|
1793
|
+
requestId: z.string(),
|
|
1794
|
+
ok: z.boolean(),
|
|
1795
|
+
error: z.string().optional(),
|
|
1796
|
+
});
|
|
1797
|
+
export const LibraryDeleteRequestMessageSchema = z.object({
|
|
1798
|
+
type: z.literal("library_delete_request"),
|
|
1799
|
+
requestId: z.string(),
|
|
1800
|
+
kind: z.enum(["mcp", "skill"]),
|
|
1801
|
+
name: z.string().min(1),
|
|
1802
|
+
});
|
|
1803
|
+
export const LibraryDeleteResponseMessageSchema = z.object({
|
|
1804
|
+
type: z.literal("library_delete_response"),
|
|
1805
|
+
requestId: z.string(),
|
|
1806
|
+
ok: z.boolean(),
|
|
1807
|
+
error: z.string().optional(),
|
|
1808
|
+
});
|
|
1809
|
+
export const LibrarySetAutoAttachRequestMessageSchema = z.object({
|
|
1810
|
+
type: z.literal("library_set_autoattach_request"),
|
|
1811
|
+
requestId: z.string(),
|
|
1812
|
+
kind: z.enum(["mcp", "skill"]),
|
|
1813
|
+
name: z.string().min(1),
|
|
1814
|
+
value: z.boolean(),
|
|
1815
|
+
});
|
|
1816
|
+
export const LibrarySetAutoAttachResponseMessageSchema = z.object({
|
|
1817
|
+
type: z.literal("library_set_autoattach_response"),
|
|
1818
|
+
requestId: z.string(),
|
|
1819
|
+
ok: z.boolean(),
|
|
1820
|
+
error: z.string().optional(),
|
|
1821
|
+
});
|
|
1822
|
+
export const LibraryImportExistingRequestMessageSchema = z.object({
|
|
1823
|
+
type: z.literal("library_import_existing_request"),
|
|
1824
|
+
requestId: z.string(),
|
|
1825
|
+
});
|
|
1826
|
+
export const LibraryImportExistingResponseMessageSchema = z.object({
|
|
1827
|
+
type: z.literal("library_import_existing_response"),
|
|
1828
|
+
requestId: z.string(),
|
|
1829
|
+
importedMcp: z.number().int().nonnegative().optional(),
|
|
1830
|
+
importedSkills: z.number().int().nonnegative().optional(),
|
|
1831
|
+
skipped: z.array(z.string()).optional(),
|
|
1832
|
+
error: z.string().optional(),
|
|
1833
|
+
});
|
|
1834
|
+
/** Hub install: download a skill tarball from R2 and hand it to Library to write to disk. */
|
|
1835
|
+
export const LibraryInstallFromHubRequestMessageSchema = z.object({
|
|
1836
|
+
type: z.literal("library_install_from_hub_request"),
|
|
1837
|
+
requestId: z.string(),
|
|
1838
|
+
hubId: z.string().regex(/^[a-z0-9-]+\/[a-z0-9-]+$/),
|
|
1839
|
+
version: z.string().min(1),
|
|
1840
|
+
tarballUrl: z.string().url(),
|
|
1841
|
+
tarballSha256: z.string().regex(/^[a-f0-9]{64}$/i),
|
|
1842
|
+
claudeSkillPath: z.string().min(1),
|
|
1843
|
+
codexSkillPath: z.string().min(1),
|
|
1844
|
+
});
|
|
1845
|
+
export const LibraryInstallFromHubResponseMessageSchema = z.object({
|
|
1846
|
+
type: z.literal("library_install_from_hub_response"),
|
|
1847
|
+
requestId: z.string(),
|
|
1848
|
+
status: z.enum(["installed", "conflict", "error", "not-implemented"]),
|
|
1849
|
+
installedPaths: z
|
|
1850
|
+
.object({
|
|
1851
|
+
claude: z.string(),
|
|
1852
|
+
codex: z.string(),
|
|
1853
|
+
})
|
|
1854
|
+
.optional(),
|
|
1855
|
+
conflictingPath: z.string().optional(),
|
|
1856
|
+
reason: z.enum(["foreign-skill"]).optional(),
|
|
1857
|
+
code: z
|
|
1858
|
+
.enum([
|
|
1859
|
+
"download-failed",
|
|
1860
|
+
"checksum-failed",
|
|
1861
|
+
"extract-failed",
|
|
1862
|
+
"write-failed",
|
|
1863
|
+
"not-implemented",
|
|
1864
|
+
])
|
|
1865
|
+
.optional(),
|
|
1866
|
+
message: z.string().optional(),
|
|
1867
|
+
});
|
|
1868
|
+
export const LibraryUninstallFromHubRequestMessageSchema = z.object({
|
|
1869
|
+
type: z.literal("library_uninstall_from_hub_request"),
|
|
1870
|
+
requestId: z.string(),
|
|
1871
|
+
hubId: z.string().regex(/^[a-z0-9-]+\/[a-z0-9-]+$/),
|
|
1872
|
+
});
|
|
1873
|
+
export const LibraryUninstallFromHubResponseMessageSchema = z.object({
|
|
1874
|
+
type: z.literal("library_uninstall_from_hub_response"),
|
|
1875
|
+
requestId: z.string(),
|
|
1876
|
+
status: z.enum(["uninstalled", "not-installed", "error", "not-implemented"]),
|
|
1877
|
+
code: z.enum(["remove-failed", "not-implemented"]).optional(),
|
|
1878
|
+
message: z.string().optional(),
|
|
1879
|
+
});
|
|
1880
|
+
// ---- Hub "test run": spin up a throwaway sandboxed agent with the skill ----
|
|
1881
|
+
// loaded into a temp cwd, run one prompt, stream output back, then delete the
|
|
1882
|
+
// sandbox. Never touches ~/.codex or the user's installed skills.
|
|
1883
|
+
/** Start a test run. The client decides the prompt (examplePrompt or user input). */
|
|
1884
|
+
export const HubTestRunStartRequestMessageSchema = z.object({
|
|
1885
|
+
type: z.literal("hub_test_run_start_request"),
|
|
1886
|
+
requestId: z.string(),
|
|
1887
|
+
hubId: z.string().regex(/^[a-z0-9-]+\/[a-z0-9-]+$/),
|
|
1888
|
+
tarballUrl: z.string().url(),
|
|
1889
|
+
tarballSha256: z.string().regex(/^[a-f0-9]{64}$/i),
|
|
1890
|
+
prompt: z.string().min(1).max(4000),
|
|
1891
|
+
});
|
|
1892
|
+
/** Cancel an in-flight test run (matched by requestId). */
|
|
1893
|
+
export const HubTestRunCancelRequestMessageSchema = z.object({
|
|
1894
|
+
type: z.literal("hub_test_run_cancel_request"),
|
|
1895
|
+
requestId: z.string(),
|
|
1896
|
+
});
|
|
1897
|
+
/** Streamed output chunk during a test run (outbound push, keyed by requestId). */
|
|
1898
|
+
export const HubTestRunChunkMessageSchema = z.object({
|
|
1899
|
+
type: z.literal("hub_test_run_chunk"),
|
|
1900
|
+
requestId: z.string(),
|
|
1901
|
+
kind: z.enum(["assistant", "reasoning", "tool"]),
|
|
1902
|
+
text: z.string().optional(),
|
|
1903
|
+
toolName: z.string().optional(),
|
|
1904
|
+
toolSummary: z.string().optional(),
|
|
1905
|
+
});
|
|
1906
|
+
/** Terminal reply for a test run (resolves the start request). */
|
|
1907
|
+
export const HubTestRunDoneResponseMessageSchema = z.object({
|
|
1908
|
+
type: z.literal("hub_test_run_done_response"),
|
|
1909
|
+
requestId: z.string(),
|
|
1910
|
+
status: z.enum(["completed", "canceled", "error", "not-implemented"]),
|
|
1911
|
+
finalText: z.string().optional(),
|
|
1912
|
+
code: z
|
|
1913
|
+
.enum([
|
|
1914
|
+
"download-failed",
|
|
1915
|
+
"checksum-failed",
|
|
1916
|
+
"extract-failed",
|
|
1917
|
+
"spawn-failed",
|
|
1918
|
+
"timeout",
|
|
1919
|
+
"run-failed",
|
|
1920
|
+
"not-implemented",
|
|
1921
|
+
])
|
|
1922
|
+
.optional(),
|
|
1923
|
+
message: z.string().optional(),
|
|
1924
|
+
});
|
|
1925
|
+
/** Server-push when library mutates so other clients can refresh. */
|
|
1926
|
+
export const LibraryUpdatedMessageSchema = z.object({
|
|
1927
|
+
type: z.literal("library_updated"),
|
|
1928
|
+
snapshot: LibrarySnapshotPayloadSchema.optional(),
|
|
1929
|
+
});
|
|
1548
1930
|
export const SessionInboundMessageSchema = z.discriminatedUnion("type", [
|
|
1549
1931
|
VoiceAudioChunkMessageSchema,
|
|
1550
1932
|
AbortRequestMessageSchema,
|
|
@@ -1561,7 +1943,10 @@ export const SessionInboundMessageSchema = z.discriminatedUnion("type", [
|
|
|
1561
1943
|
WaitForFinishRequestSchema,
|
|
1562
1944
|
GetDaemonConfigRequestMessageSchema,
|
|
1563
1945
|
SetDaemonConfigRequestMessageSchema,
|
|
1946
|
+
WeComOpenClawQrRequestMessageSchema,
|
|
1564
1947
|
FetchGitForgeIssuesRequestMessageSchema,
|
|
1948
|
+
DiscoverGitForgeIssueWorkRequestMessageSchema,
|
|
1949
|
+
TransitionGitForgeIssueWorkRequestMessageSchema,
|
|
1565
1950
|
DictationStreamStartMessageSchema,
|
|
1566
1951
|
DictationStreamChunkMessageSchema,
|
|
1567
1952
|
DictationStreamFinishMessageSchema,
|
|
@@ -1648,6 +2033,8 @@ export const SessionInboundMessageSchema = z.discriminatedUnion("type", [
|
|
|
1648
2033
|
SchedulePauseRequestSchema,
|
|
1649
2034
|
ScheduleResumeRequestSchema,
|
|
1650
2035
|
ScheduleDeleteRequestSchema,
|
|
2036
|
+
ScheduleUpdateRequestSchema,
|
|
2037
|
+
ScheduleRunNowRequestSchema,
|
|
1651
2038
|
LoopRunRequestSchema,
|
|
1652
2039
|
LoopListRequestSchema,
|
|
1653
2040
|
LoopInspectRequestSchema,
|
|
@@ -1660,6 +2047,16 @@ export const SessionInboundMessageSchema = z.discriminatedUnion("type", [
|
|
|
1660
2047
|
ListIssueCommentsRequestMessageSchema,
|
|
1661
2048
|
PostIssueCommentRequestMessageSchema,
|
|
1662
2049
|
ToggleIssueReactionRequestMessageSchema,
|
|
2050
|
+
LibraryListRequestMessageSchema,
|
|
2051
|
+
LibraryUpsertMcpRequestMessageSchema,
|
|
2052
|
+
LibraryUpsertSkillRequestMessageSchema,
|
|
2053
|
+
LibraryDeleteRequestMessageSchema,
|
|
2054
|
+
LibrarySetAutoAttachRequestMessageSchema,
|
|
2055
|
+
LibraryImportExistingRequestMessageSchema,
|
|
2056
|
+
LibraryInstallFromHubRequestMessageSchema,
|
|
2057
|
+
LibraryUninstallFromHubRequestMessageSchema,
|
|
2058
|
+
HubTestRunStartRequestMessageSchema,
|
|
2059
|
+
HubTestRunCancelRequestMessageSchema,
|
|
1663
2060
|
]);
|
|
1664
2061
|
// ============================================================================
|
|
1665
2062
|
// Session Outbound Messages (Session emits these)
|
|
@@ -2243,6 +2640,20 @@ export const SetDaemonConfigResponseMessageSchema = z.object({
|
|
|
2243
2640
|
})
|
|
2244
2641
|
.passthrough(),
|
|
2245
2642
|
});
|
|
2643
|
+
export const WeComOpenClawQrResponseMessageSchema = z.object({
|
|
2644
|
+
type: z.literal("wecom_openclaw_qr_response"),
|
|
2645
|
+
payload: z
|
|
2646
|
+
.object({
|
|
2647
|
+
requestId: z.string(),
|
|
2648
|
+
status: z.enum(["pending", "success", "error"]),
|
|
2649
|
+
scode: z.string().nullable(),
|
|
2650
|
+
authUrl: z.string().nullable(),
|
|
2651
|
+
qrPageUrl: z.string().nullable(),
|
|
2652
|
+
config: MutableDaemonConfigSchema.nullable(),
|
|
2653
|
+
error: z.string().nullable(),
|
|
2654
|
+
})
|
|
2655
|
+
.passthrough(),
|
|
2656
|
+
});
|
|
2246
2657
|
export const GitForgeItemSchema = z.object({
|
|
2247
2658
|
id: z.string(),
|
|
2248
2659
|
kind: z.enum(["issue", "pull_request"]),
|
|
@@ -2281,6 +2692,101 @@ export const FetchGitForgeIssuesResponseMessageSchema = z.object({
|
|
|
2281
2692
|
]),
|
|
2282
2693
|
}),
|
|
2283
2694
|
});
|
|
2695
|
+
const GitForgeCheckoutSummarySchema = z.object({
|
|
2696
|
+
isGit: z.boolean(),
|
|
2697
|
+
repoRoot: z.string().nullable(),
|
|
2698
|
+
mainRepoRoot: z.string().nullable(),
|
|
2699
|
+
currentBranch: z.string().nullable(),
|
|
2700
|
+
isDirty: z.boolean().nullable(),
|
|
2701
|
+
baseRef: z.string().nullable(),
|
|
2702
|
+
aheadBehind: z
|
|
2703
|
+
.object({
|
|
2704
|
+
ahead: z.number(),
|
|
2705
|
+
behind: z.number(),
|
|
2706
|
+
})
|
|
2707
|
+
.nullable(),
|
|
2708
|
+
aheadOfOrigin: z.number().nullable(),
|
|
2709
|
+
behindOfOrigin: z.number().nullable(),
|
|
2710
|
+
hasRemote: z.boolean().nullable(),
|
|
2711
|
+
remoteUrl: z.string().nullable(),
|
|
2712
|
+
isSeaworkOwnedWorktree: z.boolean(),
|
|
2713
|
+
});
|
|
2714
|
+
const GitForgeDiscoveredWorktreeSchema = z.object({
|
|
2715
|
+
path: z.string(),
|
|
2716
|
+
createdAt: z.string(),
|
|
2717
|
+
branchName: z.string().optional(),
|
|
2718
|
+
head: z.string().optional(),
|
|
2719
|
+
checkout: GitForgeCheckoutSummarySchema.nullable(),
|
|
2720
|
+
error: z.string().optional(),
|
|
2721
|
+
});
|
|
2722
|
+
const GitForgeDiscoveredAgentSchema = z.object({
|
|
2723
|
+
id: z.string(),
|
|
2724
|
+
cwd: z.string(),
|
|
2725
|
+
lifecycle: z.string(),
|
|
2726
|
+
title: z.string().nullable(),
|
|
2727
|
+
labels: z.record(z.string()).default({}),
|
|
2728
|
+
worktreePath: z.string().nullable(),
|
|
2729
|
+
});
|
|
2730
|
+
const GitForgeGithubDiscoverySchema = z.discriminatedUnion("available", [
|
|
2731
|
+
z.object({
|
|
2732
|
+
available: z.literal(true),
|
|
2733
|
+
pullRequests: z.array(GitForgeItemSchema),
|
|
2734
|
+
fetchedAt: z.string(),
|
|
2735
|
+
}),
|
|
2736
|
+
z.object({
|
|
2737
|
+
available: z.literal(false),
|
|
2738
|
+
reason: z.enum(["no-token", "unsupported-host", "api-error"]),
|
|
2739
|
+
message: z.string().optional(),
|
|
2740
|
+
}),
|
|
2741
|
+
]);
|
|
2742
|
+
export const DiscoverGitForgeIssueWorkResponseMessageSchema = z.object({
|
|
2743
|
+
type: z.literal("discover_git_forge_issue_work_response"),
|
|
2744
|
+
payload: z.object({
|
|
2745
|
+
requestId: z.string(),
|
|
2746
|
+
result: z.discriminatedUnion("ok", [
|
|
2747
|
+
z.object({
|
|
2748
|
+
ok: z.literal(true),
|
|
2749
|
+
repo: GitForgeRepoInfoSchema,
|
|
2750
|
+
cwd: z.string(),
|
|
2751
|
+
checkout: GitForgeCheckoutSummarySchema,
|
|
2752
|
+
worktrees: z.array(GitForgeDiscoveredWorktreeSchema),
|
|
2753
|
+
branchSuggestions: z.array(z.string()),
|
|
2754
|
+
activeAgents: z.array(GitForgeDiscoveredAgentSchema),
|
|
2755
|
+
github: GitForgeGithubDiscoverySchema,
|
|
2756
|
+
discoveredAt: z.string(),
|
|
2757
|
+
}),
|
|
2758
|
+
z.object({
|
|
2759
|
+
ok: z.literal(false),
|
|
2760
|
+
reason: z.enum(["no-workspace", "no-remote", "unsupported-host"]),
|
|
2761
|
+
host: z.string().optional(),
|
|
2762
|
+
message: z.string().optional(),
|
|
2763
|
+
}),
|
|
2764
|
+
]),
|
|
2765
|
+
}),
|
|
2766
|
+
});
|
|
2767
|
+
export const TransitionGitForgeIssueWorkResponseMessageSchema = z.object({
|
|
2768
|
+
type: z.literal("transition_git_forge_issue_work_response"),
|
|
2769
|
+
payload: z.object({
|
|
2770
|
+
requestId: z.string(),
|
|
2771
|
+
result: z.discriminatedUnion("ok", [
|
|
2772
|
+
z.object({
|
|
2773
|
+
ok: z.literal(true),
|
|
2774
|
+
repo: GitForgeRepoInfoSchema,
|
|
2775
|
+
number: z.number().int().positive(),
|
|
2776
|
+
labels: z.array(z.string()),
|
|
2777
|
+
previousLabels: z.array(z.string()),
|
|
2778
|
+
transitionedAt: z.string(),
|
|
2779
|
+
source: z.enum(["manual", "symphony-web"]),
|
|
2780
|
+
}),
|
|
2781
|
+
z.object({
|
|
2782
|
+
ok: z.literal(false),
|
|
2783
|
+
reason: z.enum(["no-workspace", "no-remote", "no-token", "unsupported-host", "api-error"]),
|
|
2784
|
+
host: z.string().optional(),
|
|
2785
|
+
message: z.string().optional(),
|
|
2786
|
+
}),
|
|
2787
|
+
]),
|
|
2788
|
+
}),
|
|
2789
|
+
});
|
|
2284
2790
|
export const AgentPermissionRequestMessageSchema = z.object({
|
|
2285
2791
|
type: z.literal("agent_permission_request"),
|
|
2286
2792
|
payload: z.object({
|
|
@@ -2944,7 +3450,10 @@ export const SessionOutboundMessageSchema = z.discriminatedUnion("type", [
|
|
|
2944
3450
|
SetVoiceModeResponseMessageSchema,
|
|
2945
3451
|
GetDaemonConfigResponseMessageSchema,
|
|
2946
3452
|
SetDaemonConfigResponseMessageSchema,
|
|
3453
|
+
WeComOpenClawQrResponseMessageSchema,
|
|
2947
3454
|
FetchGitForgeIssuesResponseMessageSchema,
|
|
3455
|
+
DiscoverGitForgeIssueWorkResponseMessageSchema,
|
|
3456
|
+
TransitionGitForgeIssueWorkResponseMessageSchema,
|
|
2948
3457
|
SetAgentModeResponseMessageSchema,
|
|
2949
3458
|
SetAgentModelResponseMessageSchema,
|
|
2950
3459
|
SetAgentThinkingResponseMessageSchema,
|
|
@@ -3016,6 +3525,8 @@ export const SessionOutboundMessageSchema = z.discriminatedUnion("type", [
|
|
|
3016
3525
|
SchedulePauseResponseSchema,
|
|
3017
3526
|
ScheduleResumeResponseSchema,
|
|
3018
3527
|
ScheduleDeleteResponseSchema,
|
|
3528
|
+
ScheduleUpdateResponseSchema,
|
|
3529
|
+
ScheduleRunNowResponseSchema,
|
|
3019
3530
|
LoopRunResponseSchema,
|
|
3020
3531
|
LoopListResponseSchema,
|
|
3021
3532
|
LoopInspectResponseSchema,
|
|
@@ -3028,6 +3539,17 @@ export const SessionOutboundMessageSchema = z.discriminatedUnion("type", [
|
|
|
3028
3539
|
ListIssueCommentsResponseMessageSchema,
|
|
3029
3540
|
PostIssueCommentResponseMessageSchema,
|
|
3030
3541
|
ToggleIssueReactionResponseMessageSchema,
|
|
3542
|
+
LibraryListResponseMessageSchema,
|
|
3543
|
+
LibraryUpsertMcpResponseMessageSchema,
|
|
3544
|
+
LibraryUpsertSkillResponseMessageSchema,
|
|
3545
|
+
LibraryDeleteResponseMessageSchema,
|
|
3546
|
+
LibrarySetAutoAttachResponseMessageSchema,
|
|
3547
|
+
LibraryImportExistingResponseMessageSchema,
|
|
3548
|
+
LibraryInstallFromHubResponseMessageSchema,
|
|
3549
|
+
LibraryUninstallFromHubResponseMessageSchema,
|
|
3550
|
+
HubTestRunChunkMessageSchema,
|
|
3551
|
+
HubTestRunDoneResponseMessageSchema,
|
|
3552
|
+
LibraryUpdatedMessageSchema,
|
|
3031
3553
|
]);
|
|
3032
3554
|
// ============================================================================
|
|
3033
3555
|
// WebSocket Level Messages (wraps session messages)
|
|
@@ -3045,6 +3567,12 @@ export const WSHelloMessageSchema = z.object({
|
|
|
3045
3567
|
clientType: z.enum(["mobile", "browser", "cli", "mcp"]),
|
|
3046
3568
|
protocolVersion: z.number().int(),
|
|
3047
3569
|
appVersion: z.string().optional(),
|
|
3570
|
+
/**
|
|
3571
|
+
* Pairing token for the browser extension. Only checked for connections whose
|
|
3572
|
+
* Origin is the fixed chrome-extension:// origin; ignored for every other
|
|
3573
|
+
* client. Optional for backward compatibility with older clients.
|
|
3574
|
+
*/
|
|
3575
|
+
clientAuthToken: z.string().optional(),
|
|
3048
3576
|
capabilities: z
|
|
3049
3577
|
.object({
|
|
3050
3578
|
voice: z.boolean().optional(),
|