@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,199 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module contract/AgentBackend
|
|
3
|
+
* 核心适配接口 —— 消费者(上层编排)只对它编程,不认具体 SDK。
|
|
4
|
+
* 提炼自 sps-cli 现有 AgentBackend,补齐 resume/cancel/subscribe + 中立会话配置。
|
|
5
|
+
*/
|
|
6
|
+
import type { BackendKind, RunState, StopReason } from './lifecycle.js';
|
|
7
|
+
import type { WorkerOutputEvent, WorkerOutputListener } from './events.js';
|
|
8
|
+
import type { AgentProcessMcpServerV1, AgentProcessStartOptionsV1, AgentProviderRefV1, ConversationOwnerV1, SandboxPolicyRefV1 } from './processProtocol.js';
|
|
9
|
+
export type ResumeFailureReason = 'session_lost' | 'not_found' | 'corrupt' | 'unsupported_version' | 'incompatible_agent_graph' | 'missing_tool' | 'workspace_unavailable' | 'provider_state_unavailable';
|
|
10
|
+
/** Additive, provider-neutral process health snapshot for daemon inspection. */
|
|
11
|
+
export interface AgentLivenessMetrics {
|
|
12
|
+
dispatchRequestedAt?: string;
|
|
13
|
+
spawnedAt?: string;
|
|
14
|
+
firstEventAt?: string;
|
|
15
|
+
completedAt?: string;
|
|
16
|
+
spawnLatencyMs?: number;
|
|
17
|
+
timeToFirstEventMs?: number;
|
|
18
|
+
runDurationMs?: number;
|
|
19
|
+
cancelRequestedAt?: string;
|
|
20
|
+
cancelLatencyMs?: number;
|
|
21
|
+
exitCode?: number | null;
|
|
22
|
+
exitSignal?: string | null;
|
|
23
|
+
replayGap?: number;
|
|
24
|
+
resumeOutcome?: 'fresh' | 'resumed' | 'not_found' | 'recovered';
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Trusted supervisor configuration for a short-lived external worker.
|
|
28
|
+
* Executable, args, and environment policy are rebound from live config on
|
|
29
|
+
* every dispatch and must never be restored from worker-owned state.
|
|
30
|
+
*/
|
|
31
|
+
export interface ExternalProcessSpec {
|
|
32
|
+
executable: string;
|
|
33
|
+
args?: string[];
|
|
34
|
+
protocolVersion?: number;
|
|
35
|
+
envAllowlist?: string[];
|
|
36
|
+
cancelGraceMs?: number;
|
|
37
|
+
killGraceMs?: number;
|
|
38
|
+
sessionRoot: string;
|
|
39
|
+
provider: AgentProviderRefV1;
|
|
40
|
+
conversationOwner?: ConversationOwnerV1;
|
|
41
|
+
agentBundleVersion: string;
|
|
42
|
+
sandbox: SandboxPolicyRefV1;
|
|
43
|
+
mcp?: {
|
|
44
|
+
servers: AgentProcessMcpServerV1[];
|
|
45
|
+
};
|
|
46
|
+
options?: AgentProcessStartOptionsV1;
|
|
47
|
+
/** Optional deterministic ID source for tests/embedding. */
|
|
48
|
+
idFactory?: (kind: 'session' | 'run' | 'turn') => string;
|
|
49
|
+
/** stderr is diagnostic-only and never enters the protocol parser. */
|
|
50
|
+
onStderr?: (data: string) => void;
|
|
51
|
+
}
|
|
52
|
+
/** 权限策略:替代 ACP 的 fs handler,由本层强制(不靠 agent 自觉)。 */
|
|
53
|
+
export interface PermissionPolicy {
|
|
54
|
+
/** 预批准的工具名(claude allowedTools;openai 工具白名单)。 */
|
|
55
|
+
allowTools?: string[];
|
|
56
|
+
/** 'default' | 'acceptEdits' | 'bypassPermissions' | 'plan'(claude permissionMode 的中立映射)。 */
|
|
57
|
+
mode?: 'default' | 'acceptEdits' | 'bypass' | 'plan';
|
|
58
|
+
/**
|
|
59
|
+
* 编程式逐工具裁决(claude canUseTool / openai tool guardrail 的归一)。
|
|
60
|
+
* 返回 allow/deny;用于 cwd 越界拦截等多租户边界。
|
|
61
|
+
*/
|
|
62
|
+
decide?: (toolName: string, input: unknown) => Promise<{
|
|
63
|
+
allow: boolean;
|
|
64
|
+
reason?: string;
|
|
65
|
+
}>;
|
|
66
|
+
}
|
|
67
|
+
/** 外部 / 进程内 MCP 服务声明(两 SDK 都支持 stdio/http;claude 还支持 createSdkMcpServer 进程内实例)。 */
|
|
68
|
+
export interface McpSpec {
|
|
69
|
+
name: string;
|
|
70
|
+
/** 'stdio' | 'http' | 'sse' | 'inproc'。inproc 仅 claude(SDK MCP server 实例)。 */
|
|
71
|
+
transport: 'stdio' | 'http' | 'sse' | 'inproc';
|
|
72
|
+
command?: string;
|
|
73
|
+
args?: string[];
|
|
74
|
+
url?: string;
|
|
75
|
+
/** transport='inproc' 时的工具实例(由消费者构造,本层透传)。 */
|
|
76
|
+
instance?: unknown;
|
|
77
|
+
}
|
|
78
|
+
/** 建会话配置(中立;映射到各 SDK 的 Options)。 */
|
|
79
|
+
export interface SessionConfig {
|
|
80
|
+
backend: BackendKind;
|
|
81
|
+
/** 模型串(claude 别名/全 id;openai 模型名或 codexModel)。空=后端默认。 */
|
|
82
|
+
model?: string;
|
|
83
|
+
/** 工作目录(多租户隔离锚;两 SDK 都按 cwd spawn/解析)。 */
|
|
84
|
+
cwd: string;
|
|
85
|
+
/** 额外可访问目录白名单(claude additionalDirectories)。 */
|
|
86
|
+
additionalDirectories?: string[];
|
|
87
|
+
/** 配置来源(claude settingSources:让 .claude/settings.local.json 生效 → gameforge 零改动)。 */
|
|
88
|
+
settingSources?: Array<'user' | 'project' | 'local'>;
|
|
89
|
+
permission?: PermissionPolicy;
|
|
90
|
+
mcpServers?: McpSpec[];
|
|
91
|
+
/** durable resume:有则重载该会话完整 transcript(claude resume / openai 会话存储)。 */
|
|
92
|
+
resumeSessionId?: string;
|
|
93
|
+
/** 注入到该会话进程的 env(如第三方端点 ANTHROPIC_BASE_URL/AUTH_TOKEN)。 */
|
|
94
|
+
env?: Record<string, string>;
|
|
95
|
+
/** 细粒度:思考预算 / 轮上限 / 部分消息流 / 兜底模型 等(透传到对应 SDK Option)。 */
|
|
96
|
+
tuning?: {
|
|
97
|
+
maxThinkingTokens?: number;
|
|
98
|
+
maxTurns?: number;
|
|
99
|
+
includePartialMessages?: boolean;
|
|
100
|
+
fallbackModel?: string;
|
|
101
|
+
effort?: 'low' | 'medium' | 'high';
|
|
102
|
+
};
|
|
103
|
+
/**
|
|
104
|
+
* 后端专属扩展(charter「差异不抹平」:共性归一,专属能力按需暴露,仅对应后端读取)。
|
|
105
|
+
* claude 专属:ACP 给不了、直连 SDK 才有的能力。
|
|
106
|
+
*/
|
|
107
|
+
claude?: {
|
|
108
|
+
/**
|
|
109
|
+
* 保活(流式会话)模式:用 `query({prompt: AsyncIterable})` 让**一个 claude 子进程跨多轮常驻**
|
|
110
|
+
* (等价 sps-cli ACP 的保活体验:免每轮重启、内存里续上下文,代价 ~进程常驻内存)。
|
|
111
|
+
* 默认 false = 一次性(每次 dispatch 起进程、turn 完即退、空闲零内存)。**仅 claude 支持保活。**
|
|
112
|
+
*/
|
|
113
|
+
persistent?: boolean;
|
|
114
|
+
/** 进程内程序化 hooks(PreToolUse/PostToolUse/Stop/SessionStart/...);透传 SDK `options.hooks`。 */
|
|
115
|
+
hooks?: unknown;
|
|
116
|
+
/** 子代理定义(`options.agents`:name→{description,prompt,tools})。 */
|
|
117
|
+
agents?: Record<string, unknown>;
|
|
118
|
+
/** 自定义 claude 可执行路径(根治平台二进制解析问题,如 0.2.132 musl-on-glibc)。 */
|
|
119
|
+
pathToClaudeCodeExecutable?: string;
|
|
120
|
+
/** stderr 诊断回调。 */
|
|
121
|
+
stderr?: (data: string) => void;
|
|
122
|
+
/** 逃生舱:原样并入 query options 的额外字段(覆盖于归一字段之上)。 */
|
|
123
|
+
extraOptions?: Record<string, unknown>;
|
|
124
|
+
};
|
|
125
|
+
/**
|
|
126
|
+
* codex 专属扩展(@openai/codex-sdk)。MCP 走中立 `mcpServers`(本层映射进 codex config.mcp_servers);
|
|
127
|
+
* 这里放 codex 特有的:原始 config 覆盖(→ `codex exec --config k=v`)、skills 目录、审批策略。
|
|
128
|
+
*/
|
|
129
|
+
codex?: {
|
|
130
|
+
/** 原样并入 codex `config`(会被 SDK flatten 成 `--config key=value`)。如 `{ mcp_servers: {...} }`。 */
|
|
131
|
+
config?: Record<string, unknown>;
|
|
132
|
+
/** CODEX_HOME:指向含 `skills/`、`config.toml` 的目录(控制 skills / MCP / 本地存储位置)。 */
|
|
133
|
+
codexHome?: string;
|
|
134
|
+
/** 审批策略覆盖('never'/'on-request'/'on-failure'/'untrusted')。 */
|
|
135
|
+
approvalPolicy?: string;
|
|
136
|
+
};
|
|
137
|
+
/**
|
|
138
|
+
* Opt-in external worker substrate. Currently used by the OpenAI daemon
|
|
139
|
+
* path; absence preserves the released in-process backend behavior.
|
|
140
|
+
*/
|
|
141
|
+
externalProcess?: ExternalProcessSpec;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* 单个 agent 会话的适配接口。一个实例 = 一个保活会话(可跨多轮复用)。
|
|
145
|
+
* 实现由各后端适配器提供(claude → claude-agent-sdk query/SDKSession;openai → @openai/agents run/Session)。
|
|
146
|
+
*/
|
|
147
|
+
export interface AgentBackend {
|
|
148
|
+
readonly kind: string;
|
|
149
|
+
/** 有外部 worker 时为当前 pid;纯进程内或空闲时为 null/undefined。 */
|
|
150
|
+
readonly pid?: number | null;
|
|
151
|
+
/** Optional live health metrics exposed to supervisors and dashboards. */
|
|
152
|
+
readonly liveness?: AgentLivenessMetrics;
|
|
153
|
+
/**
|
|
154
|
+
* 建立/保活底层会话(claude:spawn+初始化或 resume;openai:就绪)。返回底层 sessionId(持久用)。
|
|
155
|
+
*
|
|
156
|
+
* R1(类型化 resume 失败,sps-cli 评审必纳入):有 `resumeSessionId` 时,`resumed` 表明是否
|
|
157
|
+
* 真的重载了既有 transcript;若底层会话已不可用,以 `resumeFailed` **判别式**告知原因
|
|
158
|
+
* ('session_lost'=会话已被回收 / 'not_found'=查无此 id),消费者据此**确定性**决定是否重放历史,
|
|
159
|
+
* **不靠错误串匹配**(sps-cli durable resume 旧实现 `String(e).includes('SESSION_LOST')` 迁过来不可行)。
|
|
160
|
+
* 失败时 `sessionId` 回落为新建会话的 id(已 resume 失败 → 起新会话)。
|
|
161
|
+
* R3:openai 后端的 `sessionId` 是 RuntimeSession 存储文件 id(非 claude 子进程 session)。
|
|
162
|
+
*/
|
|
163
|
+
ensure(): Promise<{
|
|
164
|
+
sessionId: string;
|
|
165
|
+
resumed: boolean;
|
|
166
|
+
resumeFailed?: ResumeFailureReason;
|
|
167
|
+
}>;
|
|
168
|
+
/** 派一轮 prompt(非阻塞);输出经 subscribe 流出,完成发 result 事件。 */
|
|
169
|
+
dispatch(prompt: string): Promise<void>;
|
|
170
|
+
/**
|
|
171
|
+
* Resume the same logical run after a durable waiting-for-input terminal.
|
|
172
|
+
* Backends without interruption support leave this method undefined.
|
|
173
|
+
*/
|
|
174
|
+
resumeInteraction?(interactionId: string, answer: import('./processProtocol.js').JsonValue): Promise<void>;
|
|
175
|
+
/** Rehydrate a durable waiting run after the supervisor process restarts. */
|
|
176
|
+
restoreInterruptedRun?(state: {
|
|
177
|
+
sessionId: string;
|
|
178
|
+
runId: string;
|
|
179
|
+
turnId: string;
|
|
180
|
+
lastSequence: number;
|
|
181
|
+
}): void;
|
|
182
|
+
/** Restart a lost external worker from a worker-owned safe checkpoint. */
|
|
183
|
+
recoverRun?(state: {
|
|
184
|
+
sessionId: string;
|
|
185
|
+
runId: string;
|
|
186
|
+
turnId: string;
|
|
187
|
+
lastSequence: number;
|
|
188
|
+
}): Promise<void>;
|
|
189
|
+
/** 查询当前轮状态(完成判定/超时用)。 */
|
|
190
|
+
runState(): Promise<RunState>;
|
|
191
|
+
/** 中断进行中的一轮(claude Query.interrupt / openai 中断),会话保活以便续。 */
|
|
192
|
+
cancel(): Promise<void>;
|
|
193
|
+
/** 停止会话(收尾)。 */
|
|
194
|
+
stop(reason?: StopReason): Promise<void>;
|
|
195
|
+
/** 订阅统一输出事件;返回退订函数。 */
|
|
196
|
+
subscribe(listener: WorkerOutputListener): () => void;
|
|
197
|
+
}
|
|
198
|
+
export type { WorkerOutputEvent };
|
|
199
|
+
//# sourceMappingURL=AgentBackend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentBackend.d.ts","sourceRoot":"","sources":["../../../src/runtime/contract/AgentBackend.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentBackend.js","sourceRoot":"","sources":["../../../src/runtime/contract/AgentBackend.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module contract/events
|
|
3
|
+
* 统一输出事件流。两个 SDK 的消息/流式事件归一成同一组 WorkerOutputEvent,
|
|
4
|
+
* 让消费者(sps-cli chat/worker)只订阅一套事件,不认 SDK 差异。
|
|
5
|
+
*
|
|
6
|
+
* 映射来源:
|
|
7
|
+
* - claude-agent-sdk:system(init)/assistant/user/result/stream_event
|
|
8
|
+
* - openai-agents:RunItemStreamEvent / RunRawModelStreamEvent / RunResult(usage)
|
|
9
|
+
*/
|
|
10
|
+
import type { AgentProcessEventV1 } from './processProtocol.js';
|
|
11
|
+
import type { RunState } from './lifecycle.js';
|
|
12
|
+
/** token / 成本用量(turn_complete 携带)。两 SDK 都给 usage;claude 还给 total_cost_usd。 */
|
|
13
|
+
export interface Usage {
|
|
14
|
+
inputTokens?: number;
|
|
15
|
+
outputTokens?: number;
|
|
16
|
+
/** 思考/推理 token(claude maxThinkingTokens / openai reasoning)。 */
|
|
17
|
+
reasoningTokens?: number;
|
|
18
|
+
/** 仅 claude result 提供;openai 需自行按模型价估。 */
|
|
19
|
+
costUsd?: number;
|
|
20
|
+
/** 按模型名分账(claude modelUsage)。 */
|
|
21
|
+
byModel?: Record<string, {
|
|
22
|
+
inputTokens?: number;
|
|
23
|
+
outputTokens?: number;
|
|
24
|
+
}>;
|
|
25
|
+
}
|
|
26
|
+
export type WorkerOutputEvent =
|
|
27
|
+
/** 会话建立,拿到底层 sessionId(claude:system.init.session_id;openai:会话存储 id)。durable resume 的锚。 */
|
|
28
|
+
{
|
|
29
|
+
kind: 'session';
|
|
30
|
+
sessionId: string;
|
|
31
|
+
}
|
|
32
|
+
/** 助手文本增量。 */
|
|
33
|
+
| {
|
|
34
|
+
kind: 'text';
|
|
35
|
+
text: string;
|
|
36
|
+
}
|
|
37
|
+
/** 思考/推理增量(可选,claude includePartialMessages / openai ReasoningItem)。 */
|
|
38
|
+
| {
|
|
39
|
+
kind: 'thinking';
|
|
40
|
+
text: string;
|
|
41
|
+
}
|
|
42
|
+
/** 工具调用开始。 */
|
|
43
|
+
| {
|
|
44
|
+
kind: 'tool_use';
|
|
45
|
+
id: string;
|
|
46
|
+
title: string;
|
|
47
|
+
toolName: string;
|
|
48
|
+
input?: unknown;
|
|
49
|
+
}
|
|
50
|
+
/** 工具调用状态/结果更新。 */
|
|
51
|
+
| {
|
|
52
|
+
kind: 'tool_update';
|
|
53
|
+
id: string;
|
|
54
|
+
status: 'running' | 'completed' | 'failed';
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* 一轮结束(完成判定的主信号)。
|
|
58
|
+
* R4(sps-cli 评审):`stopReason` 含 `'cancelled'`,让 chat 能把"用户中断"与"失败"区分开。
|
|
59
|
+
* 已知值列出但保持开放(`& {}` 容纳模型原生 stop reason),不丢 SDK 原值。
|
|
60
|
+
*/
|
|
61
|
+
| {
|
|
62
|
+
kind: 'result';
|
|
63
|
+
status: 'completed' | 'failed';
|
|
64
|
+
text?: string;
|
|
65
|
+
usage?: Usage;
|
|
66
|
+
stopReason?: 'end_turn' | 'max_tokens' | 'stop_sequence' | 'tool_use' | 'cancelled' | 'error' | (string & {});
|
|
67
|
+
}
|
|
68
|
+
/** 运行期错误。 */
|
|
69
|
+
| {
|
|
70
|
+
kind: 'error';
|
|
71
|
+
message: string;
|
|
72
|
+
recoverable?: boolean;
|
|
73
|
+
}
|
|
74
|
+
/** 后端主动上报的 run 生命周期,供异步进程监管同步服务记录。 */
|
|
75
|
+
| {
|
|
76
|
+
kind: 'run_state';
|
|
77
|
+
state: RunState;
|
|
78
|
+
runId?: string;
|
|
79
|
+
}
|
|
80
|
+
/** 外部 worker 的完整 versioned 事件;薄事件仍并行提供给既有消费者。 */
|
|
81
|
+
| {
|
|
82
|
+
kind: 'process';
|
|
83
|
+
event: AgentProcessEventV1;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* 无损逃生舱:未被归一映射的原生 SDK 消息/事件原样透出(backend 标明来源)。
|
|
87
|
+
* 保证"对照官方文档全部接入"—— SDK 出新消息类型时消费者仍拿得到,无需改 agent-runtime。
|
|
88
|
+
*/
|
|
89
|
+
| {
|
|
90
|
+
kind: 'raw';
|
|
91
|
+
backend: string;
|
|
92
|
+
type?: string;
|
|
93
|
+
message: unknown;
|
|
94
|
+
};
|
|
95
|
+
export type WorkerOutputListener = (ev: WorkerOutputEvent) => void;
|
|
96
|
+
//# sourceMappingURL=events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/runtime/contract/events.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,8EAA8E;AAC9E,MAAM,WAAW,KAAK;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gEAAgE;IAChE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC3E;AAED,MAAM,MAAM,iBAAiB;AAC3B,2FAA2F;AACzF;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE;AACxC,cAAc;GACZ;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AAChC,wEAAwE;GACtE;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AACpC,cAAc;GACZ;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE;AACpF,mBAAmB;GACjB;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAA;CAAE;AACjF;;;;GAIG;GACD;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,WAAW,GAAG,QAAQ,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,UAAU,CAAC,EAAE,UAAU,GAAG,YAAY,GAAG,eAAe,GAAG,UAAU,GAAG,WAAW,GAAG,OAAO,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;CAC/G;AACH,aAAa;GACX;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE;AAC3D,sCAAsC;GACpC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,QAAQ,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE;AACxD,iDAAiD;GAC/C;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,mBAAmB,CAAA;CAAE;AACjD;;;GAGG;GACD;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AAEtE,MAAM,MAAM,oBAAoB,GAAG,CAAC,EAAE,EAAE,iBAAiB,KAAK,IAAI,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/runtime/contract/events.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module contract
|
|
3
|
+
* runtime 的公开契约(契约即代码)。消费者只 import 这里。
|
|
4
|
+
* 实现(适配器 + 服务 + 版本管理)待 spec 评审后再铺;当前为契约先行阶段。
|
|
5
|
+
*/
|
|
6
|
+
export type { BackendKind, SessionState, RunState, StopReason } from './lifecycle.js';
|
|
7
|
+
export type { Usage, WorkerOutputEvent, WorkerOutputListener } from './events.js';
|
|
8
|
+
export type { AgentBackend, AgentLivenessMetrics, ExternalProcessSpec, SessionConfig, PermissionPolicy, McpSpec, ResumeFailureReason, } from './AgentBackend.js';
|
|
9
|
+
export type { AgentService, SessionRecord, CapacityPolicy, } from './service.js';
|
|
10
|
+
export type { RuntimePackage, InstalledEntry, InstalledManifest, CompatMatrix, VersionManager, } from './versioning.js';
|
|
11
|
+
export { AGENT_PROCESS_PROTOCOL_VERSION, AgentProcessCommandDecoder, AgentProcessCommandStreamValidator, AgentProcessEventDecoder, AgentProcessEventStreamValidator, AgentProcessProtocolError, isTerminalAgentProcessEventType, parseAgentProcessCommandV1, parseAgentProcessEventV1, } from './processProtocol.js';
|
|
12
|
+
export type { AgentProcessBackendMetadataV1, AgentProcessCancelCommandV1, AgentProcessCommandV1, AgentProcessErrorCodeV1, AgentProcessErrorV1, AgentProcessEventPayloadsV1, AgentProcessEventTypeV1, AgentProcessEventV1, AgentProcessMcpServerV1, AgentProcessProtocolErrorCode, AgentProcessStartCommandV1, AgentProcessStartOptionsV1, AgentProcessTerminalEventTypeV1, AgentProcessUsageV1, AgentProviderRefV1, ConversationOwnerV1, JsonObject, JsonPrimitive, JsonValue, SandboxPolicyRefV1, } from './processProtocol.js';
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/contract/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACtF,YAAY,EAAE,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAClF,YAAY,EACV,YAAY,EACZ,oBAAoB,EACpB,mBAAmB,EACnB,aAAa,EACb,gBAAgB,EAChB,OAAO,EACP,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,YAAY,EACZ,aAAa,EACb,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,cAAc,GACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,8BAA8B,EAC9B,0BAA0B,EAC1B,kCAAkC,EAClC,wBAAwB,EACxB,gCAAgC,EAChC,yBAAyB,EACzB,+BAA+B,EAC/B,0BAA0B,EAC1B,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,6BAA6B,EAC7B,2BAA2B,EAC3B,qBAAqB,EACrB,uBAAuB,EACvB,mBAAmB,EACnB,2BAA2B,EAC3B,uBAAuB,EACvB,mBAAmB,EACnB,uBAAuB,EACvB,6BAA6B,EAC7B,0BAA0B,EAC1B,0BAA0B,EAC1B,+BAA+B,EAC/B,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,UAAU,EACV,aAAa,EACb,SAAS,EACT,kBAAkB,GACnB,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { AGENT_PROCESS_PROTOCOL_VERSION, AgentProcessCommandDecoder, AgentProcessCommandStreamValidator, AgentProcessEventDecoder, AgentProcessEventStreamValidator, AgentProcessProtocolError, isTerminalAgentProcessEventType, parseAgentProcessCommandV1, parseAgentProcessEventV1, } from './processProtocol.js';
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime/contract/index.ts"],"names":[],"mappings":"AA4BA,OAAO,EACL,8BAA8B,EAC9B,0BAA0B,EAC1B,kCAAkC,EAClC,wBAAwB,EACxB,gCAAgC,EAChC,yBAAyB,EACzB,+BAA+B,EAC/B,0BAA0B,EAC1B,wBAAwB,GACzB,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module contract/lifecycle
|
|
3
|
+
* 会话生命周期状态机。两个 SDK 归一后的中立状态(不暴露 claude/openai 细节)。
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* 后端家族。都"直连官方 SDK":
|
|
7
|
+
* - claude → @anthropic-ai/claude-agent-sdk(spawn claude 二进制)
|
|
8
|
+
* - openai → @openai/agents(纯 HTTP 聊天智能体;codexModel 走订阅)
|
|
9
|
+
* - codex → @openai/codex-sdk(本地编码智能体:spawn codex app-server + 订阅 + sandbox + 本地存储)
|
|
10
|
+
*/
|
|
11
|
+
export type BackendKind = 'claude' | 'openai' | 'codex';
|
|
12
|
+
/**
|
|
13
|
+
* 会话(session)的生命周期状态。
|
|
14
|
+
* - launching: 正在建立(claude:spawn 子进程并初始化;openai:就绪即用)
|
|
15
|
+
* - idle: 已就绪,空闲,可接收 dispatch
|
|
16
|
+
* - running: 正在执行一轮(turn)
|
|
17
|
+
* - paused: 被中断(interrupt)等待人审/输入
|
|
18
|
+
* - stopping: 正在收尾
|
|
19
|
+
* - dead: 进程/会话已终止(可能可经 resume 重建)
|
|
20
|
+
*/
|
|
21
|
+
export type SessionState = 'launching' | 'idle' | 'running' | 'paused' | 'stopping' | 'dead';
|
|
22
|
+
/** 单轮(turn)运行态,供消费者做完成判定/超时。 */
|
|
23
|
+
export type RunState = 'idle' | 'starting' | 'running' | 'awaiting_input' | 'completed' | 'failed' | 'cancelled' | 'lost';
|
|
24
|
+
/** 终止原因。 */
|
|
25
|
+
export type StopReason = 'completed' | 'failed' | 'cancelled' | 'timeout' | 'killed';
|
|
26
|
+
//# sourceMappingURL=lifecycle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../../src/runtime/contract/lifecycle.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;AAExD;;;;;;;;GAQG;AACH,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;AAE7F,gCAAgC;AAChC,MAAM,MAAM,QAAQ,GAChB,MAAM,GACN,UAAU,GACV,SAAS,GACT,gBAAgB,GAChB,WAAW,GACX,QAAQ,GACR,WAAW,GACX,MAAM,CAAC;AAEX,YAAY;AACZ,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../../src/runtime/contract/lifecycle.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Versioned NDJSON contract between an agent supervisor and a short-lived
|
|
3
|
+
* external agent worker. This protocol is independent from the agentd socket
|
|
4
|
+
* protocol: stdin carries commands, stdout carries events, and stderr is
|
|
5
|
+
* reserved for diagnostics.
|
|
6
|
+
*/
|
|
7
|
+
export declare const AGENT_PROCESS_PROTOCOL_VERSION: 1;
|
|
8
|
+
export type JsonPrimitive = string | number | boolean | null;
|
|
9
|
+
export type JsonValue = JsonPrimitive | JsonValue[] | {
|
|
10
|
+
[key: string]: JsonValue;
|
|
11
|
+
};
|
|
12
|
+
export type JsonObject = {
|
|
13
|
+
[key: string]: JsonValue;
|
|
14
|
+
};
|
|
15
|
+
export type ConversationOwnerV1 = {
|
|
16
|
+
kind: 'local_session';
|
|
17
|
+
} | {
|
|
18
|
+
kind: 'openai_conversation';
|
|
19
|
+
conversationId?: string;
|
|
20
|
+
} | {
|
|
21
|
+
kind: 'previous_response';
|
|
22
|
+
previousResponseId?: string;
|
|
23
|
+
};
|
|
24
|
+
export interface AgentProviderRefV1 {
|
|
25
|
+
providerId: string;
|
|
26
|
+
model: string;
|
|
27
|
+
transport: 'responses' | 'chat_completions' | 'codex';
|
|
28
|
+
baseUrl?: string;
|
|
29
|
+
}
|
|
30
|
+
export interface SandboxPolicyRefV1 {
|
|
31
|
+
profile: string;
|
|
32
|
+
provider: 'none' | 'unix_local' | 'docker' | 'hosted';
|
|
33
|
+
workspaceId?: string;
|
|
34
|
+
}
|
|
35
|
+
export interface AgentProcessMcpServerV1 {
|
|
36
|
+
name: string;
|
|
37
|
+
transport: 'stdio' | 'sse' | 'streamable_http';
|
|
38
|
+
commandRef?: string;
|
|
39
|
+
url?: string;
|
|
40
|
+
authRef?: string;
|
|
41
|
+
allowedTools?: string[];
|
|
42
|
+
}
|
|
43
|
+
export interface AgentProcessStartOptionsV1 {
|
|
44
|
+
maxTurns?: number;
|
|
45
|
+
trace?: boolean;
|
|
46
|
+
outputTypeRef?: string;
|
|
47
|
+
interactionAnswers?: Record<string, JsonValue>;
|
|
48
|
+
resumeFromCheckpoint?: boolean;
|
|
49
|
+
replayAfterSequence?: number;
|
|
50
|
+
}
|
|
51
|
+
export interface AgentProcessStartCommandV1 {
|
|
52
|
+
command: 'start';
|
|
53
|
+
protocolVersion: typeof AGENT_PROCESS_PROTOCOL_VERSION;
|
|
54
|
+
sessionId: string;
|
|
55
|
+
runId: string;
|
|
56
|
+
turnId: string;
|
|
57
|
+
prompt: string;
|
|
58
|
+
cwd: string;
|
|
59
|
+
provider: AgentProviderRefV1;
|
|
60
|
+
conversationOwner: ConversationOwnerV1;
|
|
61
|
+
sessionRoot: string;
|
|
62
|
+
agentBundleVersion: string;
|
|
63
|
+
sandbox: SandboxPolicyRefV1;
|
|
64
|
+
mcp: {
|
|
65
|
+
servers: AgentProcessMcpServerV1[];
|
|
66
|
+
};
|
|
67
|
+
options: AgentProcessStartOptionsV1;
|
|
68
|
+
}
|
|
69
|
+
export interface AgentProcessCancelCommandV1 {
|
|
70
|
+
command: 'cancel';
|
|
71
|
+
protocolVersion: typeof AGENT_PROCESS_PROTOCOL_VERSION;
|
|
72
|
+
sessionId: string;
|
|
73
|
+
runId: string;
|
|
74
|
+
reason?: string;
|
|
75
|
+
}
|
|
76
|
+
export type AgentProcessCommandV1 = AgentProcessStartCommandV1 | AgentProcessCancelCommandV1;
|
|
77
|
+
export interface AgentProcessUsageV1 {
|
|
78
|
+
inputTokens?: number;
|
|
79
|
+
outputTokens?: number;
|
|
80
|
+
reasoningTokens?: number;
|
|
81
|
+
cachedInputTokens?: number;
|
|
82
|
+
totalTokens?: number;
|
|
83
|
+
costUsd?: number;
|
|
84
|
+
}
|
|
85
|
+
export type AgentProcessErrorCodeV1 = 'not_found' | 'corrupt' | 'unsupported_version' | 'incompatible_agent_graph' | 'missing_tool' | 'workspace_unavailable' | 'provider_state_unavailable' | 'operator_reconciliation' | 'provider_error' | 'tool_error' | 'guardrail_error' | 'protocol_error' | 'persistence_error' | 'internal_error';
|
|
86
|
+
export interface AgentProcessErrorV1 {
|
|
87
|
+
code: AgentProcessErrorCodeV1;
|
|
88
|
+
message: string;
|
|
89
|
+
recoverable: boolean;
|
|
90
|
+
details?: JsonObject;
|
|
91
|
+
}
|
|
92
|
+
export interface AgentProcessEventPayloadsV1 {
|
|
93
|
+
'session.started': {
|
|
94
|
+
resumed: boolean;
|
|
95
|
+
conversationOwner: ConversationOwnerV1;
|
|
96
|
+
};
|
|
97
|
+
capabilities: {
|
|
98
|
+
tools: string[];
|
|
99
|
+
mcpServers: string[];
|
|
100
|
+
features: string[];
|
|
101
|
+
sandboxProvider: SandboxPolicyRefV1['provider'];
|
|
102
|
+
};
|
|
103
|
+
'assistant.delta': {
|
|
104
|
+
delta: string;
|
|
105
|
+
};
|
|
106
|
+
'assistant.message': {
|
|
107
|
+
text: string;
|
|
108
|
+
itemId?: string;
|
|
109
|
+
};
|
|
110
|
+
'tool.call': {
|
|
111
|
+
toolCallId: string;
|
|
112
|
+
toolName: string;
|
|
113
|
+
input: JsonValue;
|
|
114
|
+
providerCallId?: string;
|
|
115
|
+
itemId?: string;
|
|
116
|
+
};
|
|
117
|
+
'tool.progress': {
|
|
118
|
+
toolCallId: string;
|
|
119
|
+
status: 'running' | 'completed' | 'failed';
|
|
120
|
+
detail?: string;
|
|
121
|
+
};
|
|
122
|
+
'tool.result': {
|
|
123
|
+
toolCallId: string;
|
|
124
|
+
status: 'completed' | 'failed';
|
|
125
|
+
output: JsonValue;
|
|
126
|
+
error?: AgentProcessErrorV1;
|
|
127
|
+
};
|
|
128
|
+
'agent.changed': {
|
|
129
|
+
agentName: string;
|
|
130
|
+
previousAgentName?: string;
|
|
131
|
+
};
|
|
132
|
+
'interaction.required': {
|
|
133
|
+
interactionId: string;
|
|
134
|
+
kind: 'approval' | 'choices' | 'form' | 'operator_reconciliation';
|
|
135
|
+
title: string;
|
|
136
|
+
schema: JsonValue;
|
|
137
|
+
toolCallId?: string;
|
|
138
|
+
revision?: number;
|
|
139
|
+
};
|
|
140
|
+
'context.compacted': {
|
|
141
|
+
strategy: string;
|
|
142
|
+
beforeItems?: number;
|
|
143
|
+
afterItems?: number;
|
|
144
|
+
};
|
|
145
|
+
'usage.updated': {
|
|
146
|
+
usage: AgentProcessUsageV1;
|
|
147
|
+
final: boolean;
|
|
148
|
+
};
|
|
149
|
+
'system.warning': {
|
|
150
|
+
code: string;
|
|
151
|
+
message: string;
|
|
152
|
+
recoverable: boolean;
|
|
153
|
+
};
|
|
154
|
+
'run.waiting_for_input': {
|
|
155
|
+
interactionId: string;
|
|
156
|
+
checkpointRevision: number;
|
|
157
|
+
};
|
|
158
|
+
'run.completed': {
|
|
159
|
+
output?: JsonValue;
|
|
160
|
+
usage?: AgentProcessUsageV1;
|
|
161
|
+
};
|
|
162
|
+
'run.failed': {
|
|
163
|
+
error: AgentProcessErrorV1;
|
|
164
|
+
usage?: AgentProcessUsageV1;
|
|
165
|
+
};
|
|
166
|
+
'run.cancelled': {
|
|
167
|
+
reason: string;
|
|
168
|
+
checkpointRevision?: number;
|
|
169
|
+
usage?: AgentProcessUsageV1;
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
export type AgentProcessEventTypeV1 = keyof AgentProcessEventPayloadsV1;
|
|
173
|
+
export type AgentProcessTerminalEventTypeV1 = 'run.waiting_for_input' | 'run.completed' | 'run.failed' | 'run.cancelled';
|
|
174
|
+
export interface AgentProcessBackendMetadataV1 {
|
|
175
|
+
name: 'openai' | 'claude';
|
|
176
|
+
provider: string;
|
|
177
|
+
model?: string;
|
|
178
|
+
requestId?: string;
|
|
179
|
+
responseId?: string;
|
|
180
|
+
rawType?: string;
|
|
181
|
+
metadata?: JsonObject;
|
|
182
|
+
}
|
|
183
|
+
type AgentProcessEventVariantV1<T extends AgentProcessEventTypeV1> = {
|
|
184
|
+
protocolVersion: typeof AGENT_PROCESS_PROTOCOL_VERSION;
|
|
185
|
+
eventId: string;
|
|
186
|
+
sessionId: string;
|
|
187
|
+
runId: string;
|
|
188
|
+
turnId: string;
|
|
189
|
+
sequence: number;
|
|
190
|
+
timestamp: string;
|
|
191
|
+
type: T;
|
|
192
|
+
payload: AgentProcessEventPayloadsV1[T];
|
|
193
|
+
backend: AgentProcessBackendMetadataV1;
|
|
194
|
+
};
|
|
195
|
+
export type AgentProcessEventV1 = {
|
|
196
|
+
[T in AgentProcessEventTypeV1]: AgentProcessEventVariantV1<T>;
|
|
197
|
+
}[AgentProcessEventTypeV1];
|
|
198
|
+
export type AgentProcessProtocolErrorCode = 'invalid_json' | 'invalid_shape' | 'unsupported_version' | 'unexpected_command' | 'identity_mismatch' | 'out_of_order' | 'duplicate_event_id' | 'after_terminal' | 'stdout_pollution' | 'incomplete_frame';
|
|
199
|
+
export declare class AgentProcessProtocolError extends Error {
|
|
200
|
+
readonly code: AgentProcessProtocolErrorCode;
|
|
201
|
+
readonly line?: string | undefined;
|
|
202
|
+
constructor(code: AgentProcessProtocolErrorCode, message: string, line?: string | undefined);
|
|
203
|
+
}
|
|
204
|
+
export declare function isTerminalAgentProcessEventType(type: AgentProcessEventTypeV1): type is AgentProcessTerminalEventTypeV1;
|
|
205
|
+
export declare function parseAgentProcessCommandV1(value: unknown): AgentProcessCommandV1;
|
|
206
|
+
export declare function parseAgentProcessEventV1(value: unknown): AgentProcessEventV1;
|
|
207
|
+
/**
|
|
208
|
+
* Stateful validation for a single run. It rejects identity changes,
|
|
209
|
+
* duplicate IDs, non-contiguous sequence numbers, and output after terminal.
|
|
210
|
+
*/
|
|
211
|
+
export declare class AgentProcessEventStreamValidator {
|
|
212
|
+
private readonly expected?;
|
|
213
|
+
private readonly options;
|
|
214
|
+
private readonly eventIds;
|
|
215
|
+
private nextSequence;
|
|
216
|
+
private terminal;
|
|
217
|
+
constructor(expected?: {
|
|
218
|
+
sessionId?: string;
|
|
219
|
+
runId?: string;
|
|
220
|
+
turnId?: string;
|
|
221
|
+
} | undefined, options?: {
|
|
222
|
+
initialSequence?: number;
|
|
223
|
+
allowResumeAfterWaiting?: boolean;
|
|
224
|
+
});
|
|
225
|
+
accept(value: unknown): AgentProcessEventV1;
|
|
226
|
+
get lastSequence(): number;
|
|
227
|
+
get hasTerminal(): boolean;
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Stateful validation for worker stdin. Exactly one start command must be the
|
|
231
|
+
* first frame; subsequent frames may only cancel that same run.
|
|
232
|
+
*/
|
|
233
|
+
export declare class AgentProcessCommandStreamValidator {
|
|
234
|
+
private activeStart;
|
|
235
|
+
accept(value: unknown): AgentProcessCommandV1;
|
|
236
|
+
get startCommand(): AgentProcessStartCommandV1 | null;
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Incremental UTF-8 NDJSON decoder. It is safe for arbitrarily split or
|
|
240
|
+
* coalesced chunks and validates every non-empty stdout line.
|
|
241
|
+
*/
|
|
242
|
+
export declare class AgentProcessEventDecoder {
|
|
243
|
+
private readonly validator;
|
|
244
|
+
private readonly decoder;
|
|
245
|
+
private buffer;
|
|
246
|
+
constructor(validator?: AgentProcessEventStreamValidator);
|
|
247
|
+
push(chunk: string | Uint8Array): AgentProcessEventV1[];
|
|
248
|
+
finish(): AgentProcessEventV1[];
|
|
249
|
+
private drain;
|
|
250
|
+
private parseLine;
|
|
251
|
+
}
|
|
252
|
+
/** Incremental NDJSON decoder for worker stdin commands. */
|
|
253
|
+
export declare class AgentProcessCommandDecoder {
|
|
254
|
+
private readonly decoder;
|
|
255
|
+
private readonly validator;
|
|
256
|
+
private buffer;
|
|
257
|
+
push(chunk: string | Uint8Array): AgentProcessCommandV1[];
|
|
258
|
+
finish(): AgentProcessCommandV1[];
|
|
259
|
+
private drain;
|
|
260
|
+
private parseLine;
|
|
261
|
+
}
|
|
262
|
+
export {};
|
|
263
|
+
//# sourceMappingURL=processProtocol.d.ts.map
|