@coralai/sps-cli 0.63.6 → 0.65.0
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/CHANGELOG.md +9 -0
- package/README-CN.md +2 -0
- package/README.md +2 -0
- package/dist/commands/agentCommand.d.ts.map +1 -1
- package/dist/commands/agentCommand.js +4 -3
- package/dist/commands/agentCommand.js.map +1 -1
- package/dist/commands/agentRenderer.js +3 -3
- package/dist/commands/agentRenderer.js.map +1 -1
- package/dist/commands/cardDashboard.d.ts.map +1 -1
- package/dist/commands/cardDashboard.js +2 -2
- package/dist/commands/cardDashboard.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +0 -3
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/logs.d.ts.map +1 -1
- package/dist/commands/logs.js +15 -15
- package/dist/commands/logs.js.map +1 -1
- package/dist/commands/openaiAgent.d.ts +3 -0
- package/dist/commands/openaiAgent.d.ts.map +1 -0
- package/dist/commands/openaiAgent.js +81 -0
- package/dist/commands/openaiAgent.js.map +1 -0
- package/dist/commands/pipelineRunner.js.map +1 -1
- package/dist/commands/pipelineTick.js +1 -1
- package/dist/commands/pipelineTick.js.map +1 -1
- package/dist/commands/projectInit.d.ts +11 -1
- package/dist/commands/projectInit.d.ts.map +1 -1
- package/dist/commands/projectInit.js +38 -7
- package/dist/commands/projectInit.js.map +1 -1
- package/dist/commands/prune.d.ts +6 -0
- package/dist/commands/prune.d.ts.map +1 -0
- package/dist/commands/prune.js +87 -0
- package/dist/commands/prune.js.map +1 -0
- package/dist/commands/qaTick.js +1 -1
- package/dist/commands/qaTick.js.map +1 -1
- package/dist/commands/reset.d.ts.map +1 -1
- package/dist/commands/reset.js +3 -2
- package/dist/commands/reset.js.map +1 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +8 -1
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/skillCommand.d.ts.map +1 -1
- package/dist/commands/skillCommand.js +2 -3
- package/dist/commands/skillCommand.js.map +1 -1
- package/dist/commands/status.js +2 -2
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/stop.js +3 -3
- package/dist/commands/stop.js.map +1 -1
- package/dist/commands/tick.d.ts.map +1 -1
- package/dist/commands/tick.js +5 -2
- package/dist/commands/tick.js.map +1 -1
- package/dist/commands/workerDashboard.d.ts.map +1 -1
- package/dist/commands/workerDashboard.js +27 -26
- package/dist/commands/workerDashboard.js.map +1 -1
- package/dist/commands/workerLaunch.js +1 -1
- package/dist/commands/workerLaunch.js.map +1 -1
- package/dist/console/routes/chat.d.ts +18 -1
- package/dist/console/routes/chat.d.ts.map +1 -1
- package/dist/console/routes/chat.js +529 -40
- package/dist/console/routes/chat.js.map +1 -1
- package/dist/console/routes/fs.d.ts.map +1 -1
- package/dist/console/routes/fs.js +2 -1
- package/dist/console/routes/fs.js.map +1 -1
- package/dist/console/routes/logs.d.ts.map +1 -1
- package/dist/console/routes/logs.js +17 -5
- package/dist/console/routes/logs.js.map +1 -1
- package/dist/console/routes/projects.d.ts.map +1 -1
- package/dist/console/routes/projects.js +11 -2
- package/dist/console/routes/projects.js.map +1 -1
- package/dist/console/routes/workers.js +3 -3
- package/dist/console/routes/workers.js.map +1 -1
- package/dist/console-assets/assets/{ShowcasePage-BWHyDQhw.js → ShowcasePage-DFRO5bAO.js} +1 -1
- package/dist/console-assets/assets/{index-rQ_2k-G9.css → index-DZ28qAcd.css} +1 -1
- package/dist/console-assets/assets/{index-DH_TQHY4.js → index-De5GjRjY.js} +220 -215
- package/dist/console-assets/index.html +2 -2
- package/dist/core/agents/AgentBackend.d.ts +2 -2
- package/dist/core/agents/AgentBackend.d.ts.map +1 -1
- package/dist/core/agents/AgentBackend.js.map +1 -1
- package/dist/core/agents/DaemonBackend.d.ts +12 -2
- package/dist/core/agents/DaemonBackend.d.ts.map +1 -1
- package/dist/core/agents/DaemonBackend.js +59 -12
- package/dist/core/agents/DaemonBackend.js.map +1 -1
- package/dist/core/agents/resolveBackend.d.ts +4 -1
- package/dist/core/agents/resolveBackend.d.ts.map +1 -1
- package/dist/core/agents/resolveBackend.js +31 -1
- package/dist/core/agents/resolveBackend.js.map +1 -1
- package/dist/core/config.d.ts +5 -8
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +3 -9
- package/dist/core/config.js.map +1 -1
- package/dist/core/intel/agentsConfig.d.ts +9 -0
- package/dist/core/intel/agentsConfig.d.ts.map +1 -1
- package/dist/core/intel/agentsConfig.js +42 -0
- package/dist/core/intel/agentsConfig.js.map +1 -1
- package/dist/core/intel/types.d.ts +1 -0
- package/dist/core/intel/types.d.ts.map +1 -1
- package/dist/core/markerFile.d.ts.map +1 -1
- package/dist/core/markerFile.js +2 -2
- package/dist/core/markerFile.js.map +1 -1
- package/dist/core/openaiWorkerLog.d.ts +7 -0
- package/dist/core/openaiWorkerLog.d.ts.map +1 -0
- package/dist/core/openaiWorkerLog.js +98 -0
- package/dist/core/openaiWorkerLog.js.map +1 -0
- package/dist/core/paths.d.ts +1 -1
- package/dist/core/paths.d.ts.map +1 -1
- package/dist/core/paths.js +9 -7
- package/dist/core/paths.js.map +1 -1
- package/dist/core/pipelineConfig.js +7 -7
- package/dist/core/pipelineConfig.js.map +1 -1
- package/dist/core/pipelineSession.d.ts +3 -1
- package/dist/core/pipelineSession.d.ts.map +1 -1
- package/dist/core/pipelineSession.js +8 -2
- package/dist/core/pipelineSession.js.map +1 -1
- package/dist/core/processInspect.d.ts +5 -0
- package/dist/core/processInspect.d.ts.map +1 -1
- package/dist/core/processInspect.js +41 -11
- package/dist/core/processInspect.js.map +1 -1
- package/dist/core/projectPipelineAdapter.d.ts.map +1 -1
- package/dist/core/projectPipelineAdapter.js +4 -4
- package/dist/core/projectPipelineAdapter.js.map +1 -1
- package/dist/core/runtimeSnapshot.d.ts +2 -2
- package/dist/core/runtimeSnapshot.d.ts.map +1 -1
- package/dist/core/runtimeSnapshot.js +2 -2
- package/dist/core/runtimeSnapshot.js.map +1 -1
- package/dist/core/runtimeStore.d.ts +12 -12
- package/dist/core/runtimeStore.d.ts.map +1 -1
- package/dist/core/runtimeStore.js +16 -16
- package/dist/core/runtimeStore.js.map +1 -1
- package/dist/core/runtimeTypes.d.ts +109 -24
- package/dist/core/runtimeTypes.d.ts.map +1 -1
- package/dist/core/runtimeTypes.js +1 -1
- package/dist/core/sessionCleanup.d.ts +1 -1
- package/dist/core/sessionCleanup.d.ts.map +1 -1
- package/dist/core/sessionCleanup.js +2 -2
- package/dist/core/sessionCleanup.js.map +1 -1
- package/dist/core/sessionContext.d.ts +2 -2
- package/dist/core/sessionContext.d.ts.map +1 -1
- package/dist/core/sessionContext.js +1 -1
- package/dist/core/sessionContext.js.map +1 -1
- package/dist/core/sessionLiveness.d.ts +7 -6
- package/dist/core/sessionLiveness.d.ts.map +1 -1
- package/dist/core/sessionLiveness.js +3 -4
- package/dist/core/sessionLiveness.js.map +1 -1
- package/dist/core/state.d.ts +13 -12
- package/dist/core/state.d.ts.map +1 -1
- package/dist/core/state.js +9 -1
- package/dist/core/state.js.map +1 -1
- package/dist/core/workerRuntimeSummary.js +2 -2
- package/dist/core/workerRuntimeSummary.js.map +1 -1
- package/dist/core/workspacePaths.d.ts +22 -0
- package/dist/core/workspacePaths.d.ts.map +1 -0
- package/dist/core/workspacePaths.js +73 -0
- package/dist/core/workspacePaths.js.map +1 -0
- package/dist/daemon/daemonClient.d.ts +19 -22
- package/dist/daemon/daemonClient.d.ts.map +1 -1
- package/dist/daemon/daemonClient.js +82 -2
- package/dist/daemon/daemonClient.js.map +1 -1
- package/dist/daemon/sessionDaemon.d.ts +52 -7
- package/dist/daemon/sessionDaemon.d.ts.map +1 -1
- package/dist/daemon/sessionDaemon.js +40 -24
- package/dist/daemon/sessionDaemon.js.map +1 -1
- package/dist/engines/EventHandler.js +1 -1
- package/dist/engines/EventHandler.js.map +1 -1
- package/dist/engines/MonitorEngine.d.ts +2 -2
- package/dist/engines/MonitorEngine.d.ts.map +1 -1
- package/dist/engines/MonitorEngine.js +15 -17
- package/dist/engines/MonitorEngine.js.map +1 -1
- package/dist/engines/StageEngine.d.ts +5 -3
- package/dist/engines/StageEngine.d.ts.map +1 -1
- package/dist/engines/StageEngine.js +33 -18
- package/dist/engines/StageEngine.js.map +1 -1
- package/dist/main.js +21 -1
- package/dist/main.js.map +1 -1
- package/dist/manager/makeBackendFactory.d.ts +11 -4
- package/dist/manager/makeBackendFactory.d.ts.map +1 -1
- package/dist/manager/makeBackendFactory.js +28 -15
- package/dist/manager/makeBackendFactory.js.map +1 -1
- package/dist/manager/runtime-coordinator.js.map +1 -1
- package/dist/manager/supervisor.d.ts +7 -7
- package/dist/manager/supervisor.d.ts.map +1 -1
- package/dist/manager/supervisor.js +7 -7
- package/dist/manager/supervisor.js.map +1 -1
- package/dist/manager/worker-manager-impl.d.ts +4 -4
- package/dist/manager/worker-manager-impl.d.ts.map +1 -1
- package/dist/manager/worker-manager-impl.js +56 -24
- package/dist/manager/worker-manager-impl.js.map +1 -1
- package/dist/manager/worker-manager.d.ts +6 -6
- package/dist/manager/worker-manager.d.ts.map +1 -1
- package/dist/openai-agent/agentFactory.d.ts +10 -0
- package/dist/openai-agent/agentFactory.d.ts.map +1 -0
- package/dist/openai-agent/agentFactory.js +26 -0
- package/dist/openai-agent/agentFactory.js.map +1 -0
- package/dist/openai-agent/eventMap.d.ts +11 -0
- package/dist/openai-agent/eventMap.d.ts.map +1 -0
- package/dist/openai-agent/eventMap.js +191 -0
- package/dist/openai-agent/eventMap.js.map +1 -0
- package/dist/openai-agent/hooks.d.ts +13 -0
- package/dist/openai-agent/hooks.d.ts.map +1 -0
- package/dist/openai-agent/hooks.js +63 -0
- package/dist/openai-agent/hooks.js.map +1 -0
- package/dist/openai-agent/instructions.d.ts +3 -0
- package/dist/openai-agent/instructions.d.ts.map +1 -0
- package/dist/openai-agent/instructions.js +63 -0
- package/dist/openai-agent/instructions.js.map +1 -0
- package/dist/openai-agent/interactions/broker.d.ts +23 -0
- package/dist/openai-agent/interactions/broker.d.ts.map +1 -0
- package/dist/openai-agent/interactions/broker.js +316 -0
- package/dist/openai-agent/interactions/broker.js.map +1 -0
- package/dist/openai-agent/mcp/managedMcp.d.ts +31 -0
- package/dist/openai-agent/mcp/managedMcp.d.ts.map +1 -0
- package/dist/openai-agent/mcp/managedMcp.js +95 -0
- package/dist/openai-agent/mcp/managedMcp.js.map +1 -0
- package/dist/openai-agent/protocolWriter.d.ts +29 -0
- package/dist/openai-agent/protocolWriter.d.ts.map +1 -0
- package/dist/openai-agent/protocolWriter.js +74 -0
- package/dist/openai-agent/protocolWriter.js.map +1 -0
- package/dist/openai-agent/providerCapabilities.d.ts +31 -0
- package/dist/openai-agent/providerCapabilities.d.ts.map +1 -0
- package/dist/openai-agent/providerCapabilities.js +49 -0
- package/dist/openai-agent/providerCapabilities.js.map +1 -0
- package/dist/openai-agent/providerFactory.d.ts +18 -0
- package/dist/openai-agent/providerFactory.d.ts.map +1 -0
- package/dist/openai-agent/providerFactory.js +38 -0
- package/dist/openai-agent/providerFactory.js.map +1 -0
- package/dist/openai-agent/request.d.ts +22 -0
- package/dist/openai-agent/request.d.ts.map +1 -0
- package/dist/openai-agent/request.js +89 -0
- package/dist/openai-agent/request.js.map +1 -0
- package/dist/openai-agent/runWorker.d.ts +25 -0
- package/dist/openai-agent/runWorker.d.ts.map +1 -0
- package/dist/openai-agent/runWorker.js +635 -0
- package/dist/openai-agent/runWorker.js.map +1 -0
- package/dist/openai-agent/sandbox/execution.d.ts +36 -0
- package/dist/openai-agent/sandbox/execution.d.ts.map +1 -0
- package/dist/openai-agent/sandbox/execution.js +239 -0
- package/dist/openai-agent/sandbox/execution.js.map +1 -0
- package/dist/openai-agent/sandbox/productionDocker.d.ts +17 -0
- package/dist/openai-agent/sandbox/productionDocker.d.ts.map +1 -0
- package/dist/openai-agent/sandbox/productionDocker.js +76 -0
- package/dist/openai-agent/sandbox/productionDocker.js.map +1 -0
- package/dist/openai-agent/sdkContract.d.ts +18 -0
- package/dist/openai-agent/sdkContract.d.ts.map +1 -0
- package/dist/openai-agent/sdkContract.js +2 -0
- package/dist/openai-agent/sdkContract.js.map +1 -0
- package/dist/openai-agent/storage/atomic.d.ts +10 -0
- package/dist/openai-agent/storage/atomic.d.ts.map +1 -0
- package/dist/openai-agent/storage/atomic.js +112 -0
- package/dist/openai-agent/storage/atomic.js.map +1 -0
- package/dist/openai-agent/storage/checkpoint.d.ts +38 -0
- package/dist/openai-agent/storage/checkpoint.d.ts.map +1 -0
- package/dist/openai-agent/storage/checkpoint.js +141 -0
- package/dist/openai-agent/storage/checkpoint.js.map +1 -0
- package/dist/openai-agent/storage/errors.d.ts +8 -0
- package/dist/openai-agent/storage/errors.d.ts.map +1 -0
- package/dist/openai-agent/storage/errors.js +11 -0
- package/dist/openai-agent/storage/errors.js.map +1 -0
- package/dist/openai-agent/storage/index.d.ts +12 -0
- package/dist/openai-agent/storage/index.d.ts.map +1 -0
- package/dist/openai-agent/storage/index.js +12 -0
- package/dist/openai-agent/storage/index.js.map +1 -0
- package/dist/openai-agent/storage/interaction.d.ts +45 -0
- package/dist/openai-agent/storage/interaction.d.ts.map +1 -0
- package/dist/openai-agent/storage/interaction.js +372 -0
- package/dist/openai-agent/storage/interaction.js.map +1 -0
- package/dist/openai-agent/storage/lock.d.ts +13 -0
- package/dist/openai-agent/storage/lock.d.ts.map +1 -0
- package/dist/openai-agent/storage/lock.js +95 -0
- package/dist/openai-agent/storage/lock.js.map +1 -0
- package/dist/openai-agent/storage/metrics.d.ts +34 -0
- package/dist/openai-agent/storage/metrics.d.ts.map +1 -0
- package/dist/openai-agent/storage/metrics.js +74 -0
- package/dist/openai-agent/storage/metrics.js.map +1 -0
- package/dist/openai-agent/storage/output.d.ts +22 -0
- package/dist/openai-agent/storage/output.d.ts.map +1 -0
- package/dist/openai-agent/storage/output.js +175 -0
- package/dist/openai-agent/storage/output.js.map +1 -0
- package/dist/openai-agent/storage/session.d.ts +38 -0
- package/dist/openai-agent/storage/session.d.ts.map +1 -0
- package/dist/openai-agent/storage/session.js +216 -0
- package/dist/openai-agent/storage/session.js.map +1 -0
- package/dist/openai-agent/storage/toolLedger.d.ts +64 -0
- package/dist/openai-agent/storage/toolLedger.d.ts.map +1 -0
- package/dist/openai-agent/storage/toolLedger.js +281 -0
- package/dist/openai-agent/storage/toolLedger.js.map +1 -0
- package/dist/openai-agent/storage/workerStorage.d.ts +21 -0
- package/dist/openai-agent/storage/workerStorage.d.ts.map +1 -0
- package/dist/openai-agent/storage/workerStorage.js +38 -0
- package/dist/openai-agent/storage/workerStorage.js.map +1 -0
- package/dist/openai-agent/storage/workspace.d.ts +17 -0
- package/dist/openai-agent/storage/workspace.d.ts.map +1 -0
- package/dist/openai-agent/storage/workspace.js +67 -0
- package/dist/openai-agent/storage/workspace.js.map +1 -0
- package/dist/openai-agent/testHelpers.d.ts +9 -0
- package/dist/openai-agent/testHelpers.d.ts.map +1 -0
- package/dist/openai-agent/testHelpers.js +35 -0
- package/dist/openai-agent/testHelpers.js.map +1 -0
- package/dist/openai-agent/tools/ledgerTools.d.ts +12 -0
- package/dist/openai-agent/tools/ledgerTools.d.ts.map +1 -0
- package/dist/openai-agent/tools/ledgerTools.js +151 -0
- package/dist/openai-agent/tools/ledgerTools.js.map +1 -0
- package/dist/providers/MarkdownTaskBackend.d.ts.map +1 -1
- package/dist/providers/MarkdownTaskBackend.js +2 -2
- package/dist/providers/MarkdownTaskBackend.js.map +1 -1
- package/dist/providers/RuntimeSessionRuntime.d.ts +35 -15
- package/dist/providers/RuntimeSessionRuntime.d.ts.map +1 -1
- package/dist/providers/RuntimeSessionRuntime.js +239 -22
- package/dist/providers/RuntimeSessionRuntime.js.map +1 -1
- package/dist/providers/llm/chatTools.d.ts.map +1 -1
- package/dist/providers/llm/chatTools.js +3 -3
- package/dist/providers/llm/chatTools.js.map +1 -1
- package/dist/providers/llm/codexAuth.d.ts +6 -1
- package/dist/providers/llm/codexAuth.d.ts.map +1 -1
- package/dist/providers/llm/codexAuth.js +45 -9
- package/dist/providers/llm/codexAuth.js.map +1 -1
- package/dist/providers/llm/codexModel.d.ts +4 -1
- package/dist/providers/llm/codexModel.d.ts.map +1 -1
- package/dist/providers/llm/codexModel.js +13 -3
- package/dist/providers/llm/codexModel.js.map +1 -1
- package/dist/providers/llm/localSubscription.d.ts +1 -1
- package/dist/providers/llm/localSubscription.d.ts.map +1 -1
- package/dist/providers/llm/localSubscription.js +2 -2
- package/dist/providers/llm/localSubscription.js.map +1 -1
- package/dist/providers/runtimeEventMap.d.ts +54 -5
- package/dist/providers/runtimeEventMap.d.ts.map +1 -1
- package/dist/providers/runtimeEventMap.js +110 -11
- package/dist/providers/runtimeEventMap.js.map +1 -1
- package/dist/runtime/agentd/client.d.ts +29 -0
- package/dist/runtime/agentd/client.d.ts.map +1 -0
- package/dist/runtime/agentd/client.js +131 -0
- package/dist/runtime/agentd/client.js.map +1 -0
- package/dist/runtime/agentd/main.d.ts +10 -0
- package/dist/runtime/agentd/main.d.ts.map +1 -0
- package/dist/runtime/agentd/main.js +49 -0
- package/dist/runtime/agentd/main.js.map +1 -0
- package/dist/runtime/agentd/protocol.d.ts +74 -0
- package/dist/runtime/agentd/protocol.d.ts.map +1 -0
- package/dist/runtime/agentd/protocol.js +21 -0
- package/dist/runtime/agentd/protocol.js.map +1 -0
- package/dist/runtime/agentd/server.d.ts +15 -0
- package/dist/runtime/agentd/server.d.ts.map +1 -0
- package/dist/runtime/agentd/server.js +116 -0
- package/dist/runtime/agentd/server.js.map +1 -0
- package/dist/runtime/backends/claude/ClaudeBackend.d.ts +155 -0
- package/dist/runtime/backends/claude/ClaudeBackend.d.ts.map +1 -0
- package/dist/runtime/backends/claude/ClaudeBackend.js +398 -0
- package/dist/runtime/backends/claude/ClaudeBackend.js.map +1 -0
- package/dist/runtime/backends/claude/ClaudeSessions.d.ts +23 -0
- package/dist/runtime/backends/claude/ClaudeSessions.d.ts.map +1 -0
- package/dist/runtime/backends/claude/ClaudeSessions.js +45 -0
- package/dist/runtime/backends/claude/ClaudeSessions.js.map +1 -0
- package/dist/runtime/backends/claude/inprocTools.d.ts +17 -0
- package/dist/runtime/backends/claude/inprocTools.d.ts.map +1 -0
- package/dist/runtime/backends/claude/inprocTools.js +14 -0
- package/dist/runtime/backends/claude/inprocTools.js.map +1 -0
- package/dist/runtime/backends/process/ExternalProcessBackend.d.ts +83 -0
- package/dist/runtime/backends/process/ExternalProcessBackend.d.ts.map +1 -0
- package/dist/runtime/backends/process/ExternalProcessBackend.js +642 -0
- package/dist/runtime/backends/process/ExternalProcessBackend.js.map +1 -0
- package/dist/runtime/contract/AgentBackend.d.ts +199 -0
- package/dist/runtime/contract/AgentBackend.d.ts.map +1 -0
- package/dist/runtime/contract/AgentBackend.js +2 -0
- package/dist/runtime/contract/AgentBackend.js.map +1 -0
- package/dist/runtime/contract/events.d.ts +96 -0
- package/dist/runtime/contract/events.d.ts.map +1 -0
- package/dist/runtime/contract/events.js +2 -0
- package/dist/runtime/contract/events.js.map +1 -0
- package/dist/runtime/contract/index.d.ts +13 -0
- package/dist/runtime/contract/index.d.ts.map +1 -0
- package/dist/runtime/contract/index.js +2 -0
- package/dist/runtime/contract/index.js.map +1 -0
- package/dist/runtime/contract/lifecycle.d.ts +26 -0
- package/dist/runtime/contract/lifecycle.d.ts.map +1 -0
- package/dist/runtime/contract/lifecycle.js +6 -0
- package/dist/runtime/contract/lifecycle.js.map +1 -0
- package/dist/runtime/contract/processProtocol.d.ts +263 -0
- package/dist/runtime/contract/processProtocol.d.ts.map +1 -0
- package/dist/runtime/contract/processProtocol.js +779 -0
- package/dist/runtime/contract/processProtocol.js.map +1 -0
- package/dist/runtime/contract/service.d.ts +85 -0
- package/dist/runtime/contract/service.d.ts.map +1 -0
- package/dist/runtime/contract/service.js +2 -0
- package/dist/runtime/contract/service.js.map +1 -0
- package/dist/runtime/contract/versioning.d.ts +44 -0
- package/dist/runtime/contract/versioning.d.ts.map +1 -0
- package/dist/runtime/contract/versioning.js +10 -0
- package/dist/runtime/contract/versioning.js.map +1 -0
- package/dist/runtime/index.d.ts +21 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +26 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/runtime.d.ts +21 -0
- package/dist/runtime/runtime.d.ts.map +1 -0
- package/dist/runtime/runtime.js +34 -0
- package/dist/runtime/runtime.js.map +1 -0
- package/dist/runtime/service/AgentRuntime.d.ts +60 -0
- package/dist/runtime/service/AgentRuntime.d.ts.map +1 -0
- package/dist/runtime/service/AgentRuntime.js +396 -0
- package/dist/runtime/service/AgentRuntime.js.map +1 -0
- package/dist/runtime/service/FileRecordStore.d.ts +12 -0
- package/dist/runtime/service/FileRecordStore.d.ts.map +1 -0
- package/dist/runtime/service/FileRecordStore.js +48 -0
- package/dist/runtime/service/FileRecordStore.js.map +1 -0
- package/dist/runtime/service/backendFactory.d.ts +8 -0
- package/dist/runtime/service/backendFactory.d.ts.map +1 -0
- package/dist/runtime/service/backendFactory.js +20 -0
- package/dist/runtime/service/backendFactory.js.map +1 -0
- package/dist/runtime/stub/NoopBackend.d.ts +29 -0
- package/dist/runtime/stub/NoopBackend.d.ts.map +1 -0
- package/dist/runtime/stub/NoopBackend.js +56 -0
- package/dist/runtime/stub/NoopBackend.js.map +1 -0
- package/dist/runtime/stub/NoopService.d.ts +23 -0
- package/dist/runtime/stub/NoopService.d.ts.map +1 -0
- package/dist/runtime/stub/NoopService.js +136 -0
- package/dist/runtime/stub/NoopService.js.map +1 -0
- package/dist/runtime/stub/index.d.ts +8 -0
- package/dist/runtime/stub/index.d.ts.map +1 -0
- package/dist/runtime/stub/index.js +8 -0
- package/dist/runtime/stub/index.js.map +1 -0
- package/dist/runtime/versioning/VersionManager.d.ts +31 -0
- package/dist/runtime/versioning/VersionManager.d.ts.map +1 -0
- package/dist/runtime/versioning/VersionManager.js +142 -0
- package/dist/runtime/versioning/VersionManager.js.map +1 -0
- package/dist/services/ChatService.d.ts +11 -0
- package/dist/services/ChatService.d.ts.map +1 -1
- package/dist/services/ChatService.js +35 -5
- package/dist/services/ChatService.js.map +1 -1
- package/dist/services/LogService.d.ts +10 -4
- package/dist/services/LogService.d.ts.map +1 -1
- package/dist/services/LogService.js +26 -5
- package/dist/services/LogService.js.map +1 -1
- package/dist/services/ProjectService.d.ts +27 -0
- package/dist/services/ProjectService.d.ts.map +1 -1
- package/dist/services/ProjectService.js +74 -14
- package/dist/services/ProjectService.js.map +1 -1
- package/dist/services/WorkerService.d.ts +1 -0
- package/dist/services/WorkerService.d.ts.map +1 -1
- package/dist/services/WorkerService.js +72 -0
- package/dist/services/WorkerService.js.map +1 -1
- package/dist/services/executors.d.ts +1 -0
- package/dist/services/executors.d.ts.map +1 -1
- package/dist/services/executors.js +9 -1
- package/dist/services/executors.js.map +1 -1
- package/dist/services/promptPreview.d.ts.map +1 -1
- package/dist/services/promptPreview.js +4 -3
- package/dist/services/promptPreview.js.map +1 -1
- package/dist/shared/runtimePaths.d.ts +4 -0
- package/dist/shared/runtimePaths.d.ts.map +1 -1
- package/dist/shared/runtimePaths.js +8 -0
- package/dist/shared/runtimePaths.js.map +1 -1
- package/dist/shared/runtimeSchemas.d.ts +6 -2
- package/dist/shared/runtimeSchemas.d.ts.map +1 -1
- package/dist/shared/runtimeSchemas.js +3 -2
- package/dist/shared/runtimeSchemas.js.map +1 -1
- package/docs/openai-daemon-agent.md +144 -0
- package/package.json +15 -9
- package/project-template/.claude/hooks/openai/on-start.sh +6 -0
- package/project-template/.claude/hooks/openai/on-stop.sh +6 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module agentd/protocol
|
|
3
|
+
* P2:agentd 线协议。Unix domain socket(D4:socket 先行,HTTP 延后),
|
|
4
|
+
* 帧 = 一行 JSON(`\n` 分隔,NDJSON)。控制通道绑 socket 而非父进程 stdio,
|
|
5
|
+
* 故消费者(tick/console)重启后可重连仍存活的会话(P2 北极星)。
|
|
6
|
+
*
|
|
7
|
+
* 请求/响应按 `id` 配对;事件帧无 `id`、带 `sub`(订阅号)异步推送。
|
|
8
|
+
*/
|
|
9
|
+
import type { SessionConfig } from '../contract/AgentBackend.js';
|
|
10
|
+
import type { SessionRecord } from '../contract/service.js';
|
|
11
|
+
import type { StopReason } from '../contract/lifecycle.js';
|
|
12
|
+
import type { WorkerOutputEvent } from '../contract/events.js';
|
|
13
|
+
import type { JsonValue } from '../contract/processProtocol.js';
|
|
14
|
+
export declare const DEFAULT_SOCKET_PATH = "/tmp/coral-agentd.sock";
|
|
15
|
+
/** 客户端 → 服务:请求帧。 */
|
|
16
|
+
export type Req = {
|
|
17
|
+
id: number;
|
|
18
|
+
op: 'ensureSession';
|
|
19
|
+
slot: string;
|
|
20
|
+
config: SessionConfig;
|
|
21
|
+
} | {
|
|
22
|
+
id: number;
|
|
23
|
+
op: 'startRun';
|
|
24
|
+
slot: string;
|
|
25
|
+
prompt: string;
|
|
26
|
+
} | {
|
|
27
|
+
id: number;
|
|
28
|
+
op: 'submitInteraction';
|
|
29
|
+
slot: string;
|
|
30
|
+
interactionId: string;
|
|
31
|
+
answer: JsonValue;
|
|
32
|
+
} | {
|
|
33
|
+
id: number;
|
|
34
|
+
op: 'subscribe';
|
|
35
|
+
slot: string;
|
|
36
|
+
sub: number;
|
|
37
|
+
} | {
|
|
38
|
+
id: number;
|
|
39
|
+
op: 'unsubscribe';
|
|
40
|
+
sub: number;
|
|
41
|
+
} | {
|
|
42
|
+
id: number;
|
|
43
|
+
op: 'cancelRun';
|
|
44
|
+
slot: string;
|
|
45
|
+
} | {
|
|
46
|
+
id: number;
|
|
47
|
+
op: 'stopSession';
|
|
48
|
+
slot: string;
|
|
49
|
+
reason?: StopReason;
|
|
50
|
+
} | {
|
|
51
|
+
id: number;
|
|
52
|
+
op: 'inspect';
|
|
53
|
+
slot?: string;
|
|
54
|
+
};
|
|
55
|
+
/** 服务 → 客户端:响应帧(`ok`)/ 错误帧 / 事件帧。 */
|
|
56
|
+
export type Res = {
|
|
57
|
+
id: number;
|
|
58
|
+
ok: true;
|
|
59
|
+
result: SessionRecord | SessionRecord[] | null;
|
|
60
|
+
} | {
|
|
61
|
+
id: number;
|
|
62
|
+
ok: false;
|
|
63
|
+
error: string;
|
|
64
|
+
} | {
|
|
65
|
+
event: WorkerOutputEvent;
|
|
66
|
+
sub: number;
|
|
67
|
+
};
|
|
68
|
+
export declare function encode(frame: Req | Res): string;
|
|
69
|
+
/** 把 socket 上的字节流切成整行 JSON 帧(处理半包/粘包)。 */
|
|
70
|
+
export declare class FrameDecoder {
|
|
71
|
+
private buf;
|
|
72
|
+
push(chunk: string): Array<Req | Res>;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=protocol.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../src/runtime/agentd/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAEhE,eAAO,MAAM,mBAAmB,2BAA2B,CAAC;AAE5D,oBAAoB;AACpB,MAAM,MAAM,GAAG,GACX;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,eAAe,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,aAAa,CAAA;CAAE,GACxE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC5D;IACE,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,mBAAmB,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,SAAS,CAAC;CACnB,GACD;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAC1D;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,aAAa,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAC9C;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC7C;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,UAAU,CAAA;CAAE,GACpE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjD,qCAAqC;AACrC,MAAM,MAAM,GAAG,GACX;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,aAAa,GAAG,aAAa,EAAE,GAAG,IAAI,CAAA;CAAE,GACxE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACxC;IAAE,KAAK,EAAE,iBAAiB,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9C,wBAAgB,MAAM,CAAC,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,MAAM,CAE/C;AAED,0CAA0C;AAC1C,qBAAa,YAAY;IACvB,OAAO,CAAC,GAAG,CAAM;IACjB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;CAWtC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export const DEFAULT_SOCKET_PATH = '/tmp/coral-agentd.sock';
|
|
2
|
+
export function encode(frame) {
|
|
3
|
+
return JSON.stringify(frame) + '\n';
|
|
4
|
+
}
|
|
5
|
+
/** 把 socket 上的字节流切成整行 JSON 帧(处理半包/粘包)。 */
|
|
6
|
+
export class FrameDecoder {
|
|
7
|
+
buf = '';
|
|
8
|
+
push(chunk) {
|
|
9
|
+
this.buf += chunk;
|
|
10
|
+
const out = [];
|
|
11
|
+
let nl;
|
|
12
|
+
while ((nl = this.buf.indexOf('\n')) >= 0) {
|
|
13
|
+
const line = this.buf.slice(0, nl);
|
|
14
|
+
this.buf = this.buf.slice(nl + 1);
|
|
15
|
+
if (line.trim())
|
|
16
|
+
out.push(JSON.parse(line));
|
|
17
|
+
}
|
|
18
|
+
return out;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=protocol.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../src/runtime/agentd/protocol.ts"],"names":[],"mappings":"AAcA,MAAM,CAAC,MAAM,mBAAmB,GAAG,wBAAwB,CAAC;AAyB5D,MAAM,UAAU,MAAM,CAAC,KAAgB;IACrC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;AACtC,CAAC;AAED,0CAA0C;AAC1C,MAAM,OAAO,YAAY;IACf,GAAG,GAAG,EAAE,CAAC;IACjB,IAAI,CAAC,KAAa;QAChB,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC;QAClB,MAAM,GAAG,GAAqB,EAAE,CAAC;QACjC,IAAI,EAAU,CAAC;QACf,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACnC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAClC,IAAI,IAAI,CAAC,IAAI,EAAE;gBAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAc,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CACF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { AgentService } from '../contract/service.js';
|
|
2
|
+
export interface AgentdServerOpts {
|
|
3
|
+
service: AgentService;
|
|
4
|
+
socketPath: string;
|
|
5
|
+
}
|
|
6
|
+
export declare class AgentdServer {
|
|
7
|
+
private readonly opts;
|
|
8
|
+
private server?;
|
|
9
|
+
constructor(opts: AgentdServerOpts);
|
|
10
|
+
listen(): Promise<void>;
|
|
11
|
+
private onConn;
|
|
12
|
+
private handle;
|
|
13
|
+
close(): Promise<void>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/runtime/agentd/server.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAG3D,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,YAAY,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,YAAY;IAEX,OAAO,CAAC,QAAQ,CAAC,IAAI;IADjC,OAAO,CAAC,MAAM,CAAC,CAAS;gBACK,IAAI,EAAE,gBAAgB;IAE7C,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAa7B,OAAO,CAAC,MAAM;YA0BA,MAAM;IAwDd,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAK7B"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module agentd/server
|
|
3
|
+
* P2:agentd socket 外壳。把 {@link AgentRuntime} 内核暴露到 Unix domain socket。
|
|
4
|
+
* 多客户端可同时连;某客户端断开只清它的订阅,**会话仍在内核里存活** → 消费者重启可重连。
|
|
5
|
+
*/
|
|
6
|
+
import { createServer } from 'node:net';
|
|
7
|
+
import { existsSync, unlinkSync } from 'node:fs';
|
|
8
|
+
import { encode, FrameDecoder } from './protocol.js';
|
|
9
|
+
export class AgentdServer {
|
|
10
|
+
opts;
|
|
11
|
+
server;
|
|
12
|
+
constructor(opts) {
|
|
13
|
+
this.opts = opts;
|
|
14
|
+
}
|
|
15
|
+
async listen() {
|
|
16
|
+
const { socketPath } = this.opts;
|
|
17
|
+
if (existsSync(socketPath))
|
|
18
|
+
unlinkSync(socketPath); // 清残留 socket(上次未优雅退出)
|
|
19
|
+
this.server = createServer((sock) => this.onConn(sock));
|
|
20
|
+
await new Promise((resolve, reject) => {
|
|
21
|
+
this.server.once('error', reject);
|
|
22
|
+
this.server.listen(socketPath, () => {
|
|
23
|
+
this.server.off('error', reject);
|
|
24
|
+
resolve();
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
onConn(sock) {
|
|
29
|
+
sock.setEncoding('utf8');
|
|
30
|
+
const decoder = new FrameDecoder();
|
|
31
|
+
// 本连接的订阅:sub 号 → cancel 函数。连接断开时全部退订(但不停会话)。
|
|
32
|
+
const subs = new Map();
|
|
33
|
+
const send = (frame) => {
|
|
34
|
+
if (!sock.writableEnded)
|
|
35
|
+
sock.write(encode(frame));
|
|
36
|
+
};
|
|
37
|
+
sock.on('data', (chunk) => {
|
|
38
|
+
let frames;
|
|
39
|
+
try {
|
|
40
|
+
frames = decoder.push(chunk);
|
|
41
|
+
}
|
|
42
|
+
catch (e) {
|
|
43
|
+
send({ id: -1, ok: false, error: `bad frame: ${String(e)}` });
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
for (const f of frames)
|
|
47
|
+
void this.handle(f, send, subs);
|
|
48
|
+
});
|
|
49
|
+
sock.on('error', () => { });
|
|
50
|
+
sock.on('close', () => {
|
|
51
|
+
for (const cancel of subs.values())
|
|
52
|
+
cancel();
|
|
53
|
+
subs.clear();
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
async handle(req, send, subs) {
|
|
57
|
+
const svc = this.opts.service;
|
|
58
|
+
try {
|
|
59
|
+
switch (req.op) {
|
|
60
|
+
case 'ensureSession':
|
|
61
|
+
send({ id: req.id, ok: true, result: await svc.ensureSession(req.slot, req.config) });
|
|
62
|
+
break;
|
|
63
|
+
case 'startRun':
|
|
64
|
+
send({ id: req.id, ok: true, result: await svc.startRun(req.slot, req.prompt) });
|
|
65
|
+
break;
|
|
66
|
+
case 'submitInteraction':
|
|
67
|
+
if (!svc.submitInteraction) {
|
|
68
|
+
throw new Error('Runtime does not support interactions');
|
|
69
|
+
}
|
|
70
|
+
send({
|
|
71
|
+
id: req.id,
|
|
72
|
+
ok: true,
|
|
73
|
+
result: await svc.submitInteraction(req.slot, req.interactionId, req.answer),
|
|
74
|
+
});
|
|
75
|
+
break;
|
|
76
|
+
case 'cancelRun':
|
|
77
|
+
await svc.cancelRun(req.slot);
|
|
78
|
+
send({ id: req.id, ok: true, result: null });
|
|
79
|
+
break;
|
|
80
|
+
case 'stopSession':
|
|
81
|
+
await svc.stopSession(req.slot, req.reason);
|
|
82
|
+
send({ id: req.id, ok: true, result: null });
|
|
83
|
+
break;
|
|
84
|
+
case 'inspect':
|
|
85
|
+
send({ id: req.id, ok: true, result: await svc.inspect(req.slot) });
|
|
86
|
+
break;
|
|
87
|
+
case 'subscribe': {
|
|
88
|
+
const stream = svc.subscribe(req.slot);
|
|
89
|
+
subs.set(req.sub, () => stream.cancel());
|
|
90
|
+
send({ id: req.id, ok: true, result: null }); // ack
|
|
91
|
+
void (async () => {
|
|
92
|
+
for await (const event of stream)
|
|
93
|
+
send({ event, sub: req.sub });
|
|
94
|
+
})();
|
|
95
|
+
break;
|
|
96
|
+
}
|
|
97
|
+
case 'unsubscribe': {
|
|
98
|
+
subs.get(req.sub)?.();
|
|
99
|
+
subs.delete(req.sub);
|
|
100
|
+
send({ id: req.id, ok: true, result: null });
|
|
101
|
+
break;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
catch (e) {
|
|
106
|
+
send({ id: req.id, ok: false, error: e instanceof Error ? e.message : String(e) });
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
async close() {
|
|
110
|
+
const socketPath = this.opts.socketPath;
|
|
111
|
+
await new Promise((resolve) => this.server?.close(() => resolve()));
|
|
112
|
+
if (existsSync(socketPath))
|
|
113
|
+
unlinkSync(socketPath);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/runtime/agentd/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module backends/claude/ClaudeBackend
|
|
3
|
+
* P1 第一卡:`AgentBackend` 的 claude 适配器。进程内直调 `@anthropic-ai/claude-agent-sdk`
|
|
4
|
+
* 的 `query()`(逻辑平移自 sps-cli `ClaudeSdkBackend`,2026-06-29 验通的真件),
|
|
5
|
+
* 在其上补齐 agent-runtime 厚契约的字段(全量事件 / resume / 权限 / mcp / env / tuning)。
|
|
6
|
+
*
|
|
7
|
+
* 结构决策(已拍):SDK **不静态 import** —— `query`/`getSessionInfo` 由 {@link ClaudeSdkModule}
|
|
8
|
+
* **构造注入**(按结构类型收)。P1 测试塞 devDep 那份;P3 换 `VersionManager.load()` 那份,零改本文件。
|
|
9
|
+
*
|
|
10
|
+
* R1(类型化 resume 失败,实地敲定):实装 SDK 0.3.196 已**砍掉** 0.2.132 的 `unstable_v2_*` 会话 API,
|
|
11
|
+
* 只剩 `getSessionInfo(id) → info | undefined`(查无即 undefined)。故:
|
|
12
|
+
* - resume 路:`getSessionInfo` 命中 → `resumed:true`;`undefined` → `resumeFailed:'not_found'` 起新会话。
|
|
13
|
+
* - 运行期会话被回收 → `error` 事件(recoverable)+ 失败 result,对应 'session_lost'。
|
|
14
|
+
* - fresh 路:claude 无 id 直到首轮 → `ensure` 返回 `resumed:false`,真 id 经 `session` 事件在首轮交付。
|
|
15
|
+
*/
|
|
16
|
+
import type { AgentBackend, SessionConfig } from '../../contract/AgentBackend.js';
|
|
17
|
+
import type { WorkerOutputListener } from '../../contract/events.js';
|
|
18
|
+
import type { RunState, StopReason } from '../../contract/lifecycle.js';
|
|
19
|
+
/**
|
|
20
|
+
* 注入式 SDK 边界 —— 不锁 SDK 具体版本(P3 版本管理之锚)。
|
|
21
|
+
* Query 的**全部运行时控制方法**都列在此(对照官方 `Query` 接口);老版本缺的标 optional,调用即 no-op。
|
|
22
|
+
*/
|
|
23
|
+
export interface ClaudeQuery extends AsyncIterable<unknown> {
|
|
24
|
+
interrupt(): Promise<void>;
|
|
25
|
+
setModel?: (model?: string) => Promise<void>;
|
|
26
|
+
setMaxThinkingTokens?: (n: number | null, thinkingDisplay?: 'summarized' | 'omitted' | null) => Promise<void>;
|
|
27
|
+
setPermissionMode?: (mode: string) => Promise<void>;
|
|
28
|
+
applyFlagSettings?: (settings: unknown) => Promise<unknown>;
|
|
29
|
+
initializationResult?: () => Promise<unknown>;
|
|
30
|
+
supportedCommands?: () => Promise<unknown[]>;
|
|
31
|
+
supportedModels?: () => Promise<unknown[]>;
|
|
32
|
+
supportedAgents?: () => Promise<unknown[]>;
|
|
33
|
+
mcpServerStatus?: () => Promise<unknown>;
|
|
34
|
+
accountInfo?: () => Promise<unknown>;
|
|
35
|
+
reconnectMcpServer?: (serverName: string) => Promise<unknown>;
|
|
36
|
+
toggleMcpServer?: (serverName: string, enabled: boolean) => Promise<unknown>;
|
|
37
|
+
setMcpServers?: (servers: unknown) => Promise<unknown>;
|
|
38
|
+
rewindFiles?: (userMessageId: string, options?: unknown) => Promise<unknown>;
|
|
39
|
+
stopTask?: (taskId: string) => Promise<unknown>;
|
|
40
|
+
streamInput?: (stream: unknown) => Promise<unknown>;
|
|
41
|
+
close?: () => void;
|
|
42
|
+
setMcpPermissionModeOverride?: (serverName: string, mode: 'default' | 'auto' | null) => Promise<unknown>;
|
|
43
|
+
reinitialize?: () => Promise<unknown>;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* 完整 SDK 模块面(对照 claude-agent-sdk 顶层导出)。`query` 必有;其余按 SDK 版本 optional。
|
|
47
|
+
* 经 `VersionManager.load()` 拿到的整模块即可直接当它用(结构匹配)。
|
|
48
|
+
*/
|
|
49
|
+
export interface ClaudeSdkModule {
|
|
50
|
+
query(args: {
|
|
51
|
+
prompt: string | AsyncIterable<unknown>;
|
|
52
|
+
options?: Record<string, unknown>;
|
|
53
|
+
}): ClaudeQuery;
|
|
54
|
+
getSessionInfo?: (sessionId: string, options?: unknown) => Promise<unknown | undefined>;
|
|
55
|
+
getSessionMessages?: (sessionId: string, options?: unknown) => Promise<unknown[]>;
|
|
56
|
+
listSessions?: (options?: unknown) => Promise<unknown[]>;
|
|
57
|
+
forkSession?: (sessionId: string, options?: unknown) => Promise<unknown>;
|
|
58
|
+
deleteSession?: (sessionId: string, options?: unknown) => Promise<unknown>;
|
|
59
|
+
renameSession?: (sessionId: string, title: string, options?: unknown) => Promise<unknown>;
|
|
60
|
+
tagSession?: (...args: unknown[]) => Promise<unknown>;
|
|
61
|
+
foldSessionSummary?: (...args: unknown[]) => Promise<unknown>;
|
|
62
|
+
importSessionToStore?: (...args: unknown[]) => Promise<unknown>;
|
|
63
|
+
listSubagents?: (options?: unknown) => Promise<unknown[]>;
|
|
64
|
+
getSubagentMessages?: (...args: unknown[]) => Promise<unknown[]>;
|
|
65
|
+
resolveSettings?: (opts?: unknown) => Promise<unknown>;
|
|
66
|
+
createSdkMcpServer?: (cfg: {
|
|
67
|
+
name: string;
|
|
68
|
+
version?: string;
|
|
69
|
+
tools: unknown[];
|
|
70
|
+
}) => unknown;
|
|
71
|
+
tool?: (...args: unknown[]) => unknown;
|
|
72
|
+
/** 其余顶层导出(InMemorySessionStore 等)经原模块直达,见 ClaudeBackend.raw()。 */
|
|
73
|
+
[extra: string]: unknown;
|
|
74
|
+
}
|
|
75
|
+
export declare class ClaudeBackend implements AgentBackend {
|
|
76
|
+
private readonly cfg;
|
|
77
|
+
private readonly sdk;
|
|
78
|
+
readonly kind = "claude";
|
|
79
|
+
private sessionId?;
|
|
80
|
+
private current?;
|
|
81
|
+
private abort?;
|
|
82
|
+
private state;
|
|
83
|
+
private cancelled;
|
|
84
|
+
/** 最近一次 system.init(含 model/tools/mcp_servers/slash_commands/...);供无在飞 Query 时回退查询。 */
|
|
85
|
+
private lastInit?;
|
|
86
|
+
/** 保活模式:开着的输入流 + 是否已启动持续输出循环。 */
|
|
87
|
+
private input?;
|
|
88
|
+
private loopStarted;
|
|
89
|
+
private readonly listeners;
|
|
90
|
+
constructor(cfg: SessionConfig, sdk: ClaudeSdkModule);
|
|
91
|
+
subscribe(listener: WorkerOutputListener): () => void;
|
|
92
|
+
private emit;
|
|
93
|
+
ensure(): Promise<{
|
|
94
|
+
sessionId: string;
|
|
95
|
+
resumed: boolean;
|
|
96
|
+
resumeFailed?: 'session_lost' | 'not_found';
|
|
97
|
+
}>;
|
|
98
|
+
dispatch(prompt: string): Promise<void>;
|
|
99
|
+
/** 保活模式:首轮建一个流式 query(常驻子进程),后续 dispatch 把消息喂进同一个流。 */
|
|
100
|
+
private dispatchPersistent;
|
|
101
|
+
/** SDKMessage → 状态 + WorkerOutputEvent(全量映射)。 */
|
|
102
|
+
private translate;
|
|
103
|
+
private mapModelUsage;
|
|
104
|
+
/** SessionConfig → claude query options(全字段落地)。 */
|
|
105
|
+
private buildOptions;
|
|
106
|
+
/** 运行时切模型(下一个/当前轮生效,取决于 SDK)。 */
|
|
107
|
+
setModel(model?: string): Promise<void>;
|
|
108
|
+
/** 运行时改思考预算。 */
|
|
109
|
+
setMaxThinkingTokens(n: number | null): Promise<void>;
|
|
110
|
+
/** 运行时改权限模式(中立值映射到 SDK)。 */
|
|
111
|
+
setPermissionMode(mode: NonNullable<SessionConfig['permission']>['mode']): Promise<void>;
|
|
112
|
+
/** 单 MCP server 的权限模式覆盖。 */
|
|
113
|
+
setMcpPermissionModeOverride(serverName: string, mode: 'default' | 'auto' | null): Promise<unknown>;
|
|
114
|
+
/** 运行时套用 flag settings。 */
|
|
115
|
+
applyFlagSettings(settings: unknown): Promise<unknown>;
|
|
116
|
+
/** 初始化结果(模型/工具/MCP 状态等);无在飞 Query 时回退到最近一次 system.init。 */
|
|
117
|
+
initializationResult(): Promise<unknown>;
|
|
118
|
+
/** 重新初始化(重载配置)。 */
|
|
119
|
+
reinitialize(): Promise<unknown>;
|
|
120
|
+
/** 当前支持的斜杠命令;无在飞 Query 时回退到 init 里的 slash_commands。 */
|
|
121
|
+
supportedCommands(): Promise<unknown[]>;
|
|
122
|
+
/** 当前可用模型。 */
|
|
123
|
+
supportedModels(): Promise<unknown[]>;
|
|
124
|
+
/** 当前可用子代理(回退到 init 的 agents)。 */
|
|
125
|
+
supportedAgents(): Promise<unknown[]>;
|
|
126
|
+
/** MCP server 连接状态(回退到 init 的 mcp_servers)。 */
|
|
127
|
+
mcpServerStatus(): Promise<unknown>;
|
|
128
|
+
/** 账户信息。 */
|
|
129
|
+
accountInfo(): Promise<unknown>;
|
|
130
|
+
/** 重连指定 MCP server。 */
|
|
131
|
+
reconnectMcpServer(serverName: string): Promise<unknown>;
|
|
132
|
+
/** 启/停指定 MCP server。 */
|
|
133
|
+
toggleMcpServer(serverName: string, enabled: boolean): Promise<unknown>;
|
|
134
|
+
/** 运行时整体替换 MCP servers。 */
|
|
135
|
+
setMcpServers(servers: unknown): Promise<unknown>;
|
|
136
|
+
/** 回退文件到某条用户消息时的状态(checkpointing)。 */
|
|
137
|
+
rewindFiles(userMessageId: string, options?: unknown): Promise<unknown>;
|
|
138
|
+
/** 停止某个后台任务。 */
|
|
139
|
+
stopTask(taskId: string): Promise<unknown>;
|
|
140
|
+
/** 流式多轮输入(streaming input mode)。 */
|
|
141
|
+
streamInput(stream: unknown): Promise<unknown>;
|
|
142
|
+
/** 关闭并终止底层进程(等同更彻底的 stop)。 */
|
|
143
|
+
closeQuery(): void;
|
|
144
|
+
/** 当前在飞的 Query 句柄(无则 undefined)—— 触达任何未显式封装的方法。 */
|
|
145
|
+
query(): ClaudeQuery | undefined;
|
|
146
|
+
/** 注入的完整 SDK 模块 —— 触达会话管理(listSessions/forkSession/…)/ createSdkMcpServer / tool / 任何顶层导出。 */
|
|
147
|
+
raw(): ClaudeSdkModule;
|
|
148
|
+
private mapMcp;
|
|
149
|
+
runState(): Promise<RunState>;
|
|
150
|
+
/** 中断本轮、保活会话(可续)。 */
|
|
151
|
+
cancel(): Promise<void>;
|
|
152
|
+
/** 收尾:关输入流(保活模式→结束流→子进程退出)+ abort + 复位。 */
|
|
153
|
+
stop(_reason?: StopReason): Promise<void>;
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=ClaudeBackend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClaudeBackend.d.ts","sourceRoot":"","sources":["../../../../src/runtime/backends/claude/ClaudeBackend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,YAAY,EAAW,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC3F,OAAO,KAAK,EAA4B,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAC/F,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAExE;;;GAGG;AACH,MAAM,WAAW,WAAY,SAAQ,aAAa,CAAC,OAAO,CAAC;IACzD,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,oBAAoB,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,eAAe,CAAC,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9G,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5D,oBAAoB,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,iBAAiB,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAC7C,eAAe,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3C,eAAe,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3C,eAAe,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACrC,kBAAkB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9D,eAAe,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7E,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACvD,WAAW,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7E,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAChD,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACpD,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IAEnB,4BAA4B,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACzG,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CACvC;AACD;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,WAAW,CAAC;IACzG,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;IACxF,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAClF,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACzD,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACzE,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3E,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1F,UAAU,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACtD,kBAAkB,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9D,oBAAoB,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAChE,aAAa,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1D,mBAAmB,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACjE,eAAe,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACvD,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,EAAE,CAAA;KAAE,KAAK,OAAO,CAAC;IAC5F,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;IACvC,kEAAkE;IAClE,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAwED,qBAAa,aAAc,YAAW,YAAY;IAe9C,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAftB,QAAQ,CAAC,IAAI,YAAY;IACzB,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAC,CAAc;IAC9B,OAAO,CAAC,KAAK,CAAC,CAAkB;IAChC,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,SAAS,CAAS;IAC1B,uFAAuF;IACvF,OAAO,CAAC,QAAQ,CAAC,CAA0B;IAC3C,iCAAiC;IACjC,OAAO,CAAC,KAAK,CAAC,CAAkB;IAChC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmC;gBAG1C,GAAG,EAAE,aAAa,EAClB,GAAG,EAAE,eAAe;IAGvC,SAAS,CAAC,QAAQ,EAAE,oBAAoB,GAAG,MAAM,IAAI;IAMrD,OAAO,CAAC,IAAI;IAUN,MAAM,IAAI,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,cAAc,GAAG,WAAW,CAAA;KAAE,CAAC;IAkBvG,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuB7C,uDAAuD;IACvD,OAAO,CAAC,kBAAkB;IA4B1B,iDAAiD;IACjD,OAAO,CAAC,SAAS;IA4CjB,OAAO,CAAC,aAAa;IASrB,mDAAmD;IACnD,OAAO,CAAC,YAAY;IA+CpB,iCAAiC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAG7C,gBAAgB;IACV,oBAAoB,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAG3D,4BAA4B;IACtB,iBAAiB,CAAC,IAAI,EAAE,WAAW,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAG9F,4BAA4B;IACtB,4BAA4B,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;IAGzG,2BAA2B;IACrB,iBAAiB,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAG5D,2DAA2D;IACrD,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC;IAG9C,mBAAmB;IACb,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;IAGtC,uDAAuD;IACjD,iBAAiB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAM7C,cAAc;IACR,eAAe,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAG3C,kCAAkC;IAC5B,eAAe,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAM3C,+CAA+C;IACzC,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAGzC,YAAY;IACN,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAGrC,uBAAuB;IACjB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAG9D,wBAAwB;IAClB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAG7E,2BAA2B;IACrB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAGvD,sCAAsC;IAChC,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAG7E,gBAAgB;IACV,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAGhD,oCAAoC;IAC9B,WAAW,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAGpD,8BAA8B;IAC9B,UAAU,IAAI,IAAI;IAKlB,mDAAmD;IACnD,KAAK,IAAI,WAAW,GAAG,SAAS;IAGhC,8FAA8F;IAC9F,GAAG,IAAI,eAAe;IAItB,OAAO,CAAC,MAAM;IAUR,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC;IAInC,qBAAqB;IACf,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAM7B,2CAA2C;IACrC,IAAI,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAQhD"}
|