@coralai/sps-cli 0.63.6 → 0.65.1
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 +25 -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/auditLog.d.ts +1 -1
- package/dist/core/auditLog.d.ts.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 +41 -2
- 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 +56 -0
- package/dist/services/ProjectService.d.ts.map +1 -1
- package/dist/services/ProjectService.js +182 -15
- 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
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
import type { BackendFactory } from './worker-manager.js';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
* @param opts.
|
|
5
|
-
* @param opts.
|
|
6
|
-
* @param opts.
|
|
3
|
+
* worker 后端有效配置 = 全局 defaults.json < 项目 conf(WORKER_AGENT/MODE/PROVIDER/MODEL)< SPS_WORKER_* env。
|
|
4
|
+
* @param opts.project 项目名(锚定 / transcript 定位)。
|
|
5
|
+
* @param opts.workerModel 项目级 worker model 覆盖(conf WORKER_MODEL)。
|
|
6
|
+
* @param opts.workerAgent 项目级 worker 后端覆盖(conf WORKER_AGENT:claude|openai)。
|
|
7
|
+
* @param opts.workerMode 项目级 worker 模式(conf WORKER_MODE:sdk|daemon)。
|
|
8
|
+
* @param opts.workerProvider 项目级 worker provider(conf WORKER_PROVIDER:codex/…)。
|
|
9
|
+
* @param opts.logsDir worker 日志目录。
|
|
10
|
+
* @param opts.runtimeDir 运行时目录(openai per-slot sessionFile 落此)。
|
|
7
11
|
*/
|
|
8
12
|
export declare function makeBackendFactory(opts: {
|
|
9
13
|
project: string;
|
|
10
14
|
workerModel?: string;
|
|
15
|
+
workerAgent?: string;
|
|
16
|
+
workerMode?: string;
|
|
17
|
+
workerProvider?: string;
|
|
11
18
|
logsDir: string;
|
|
12
19
|
runtimeDir: string;
|
|
13
20
|
}): BackendFactory;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"makeBackendFactory.d.ts","sourceRoot":"","sources":["../../src/manager/makeBackendFactory.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"makeBackendFactory.d.ts","sourceRoot":"","sources":["../../src/manager/makeBackendFactory.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,cAAc,CA4BjB"}
|
|
@@ -8,32 +8,45 @@
|
|
|
8
8
|
* @boundedContext worker-lifecycle
|
|
9
9
|
*/
|
|
10
10
|
import { join } from 'node:path';
|
|
11
|
-
import {
|
|
11
|
+
import { resolveWorkerConfig } from '../core/intel/agentsConfig.js';
|
|
12
12
|
import { resolveBackend } from '../core/agents/resolveBackend.js';
|
|
13
13
|
import { createReviewerModel } from '../providers/llm/modelFactory.js';
|
|
14
|
+
import { getAgentProvider } from '../providers/llm/providers.js';
|
|
14
15
|
/**
|
|
15
|
-
*
|
|
16
|
-
* @param opts.
|
|
17
|
-
* @param opts.
|
|
18
|
-
* @param opts.
|
|
16
|
+
* worker 后端有效配置 = 全局 defaults.json < 项目 conf(WORKER_AGENT/MODE/PROVIDER/MODEL)< SPS_WORKER_* env。
|
|
17
|
+
* @param opts.project 项目名(锚定 / transcript 定位)。
|
|
18
|
+
* @param opts.workerModel 项目级 worker model 覆盖(conf WORKER_MODEL)。
|
|
19
|
+
* @param opts.workerAgent 项目级 worker 后端覆盖(conf WORKER_AGENT:claude|openai)。
|
|
20
|
+
* @param opts.workerMode 项目级 worker 模式(conf WORKER_MODE:sdk|daemon)。
|
|
21
|
+
* @param opts.workerProvider 项目级 worker provider(conf WORKER_PROVIDER:codex/…)。
|
|
22
|
+
* @param opts.logsDir worker 日志目录。
|
|
23
|
+
* @param opts.runtimeDir 运行时目录(openai per-slot sessionFile 落此)。
|
|
19
24
|
*/
|
|
20
25
|
export function makeBackendFactory(opts) {
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
26
|
+
const worker = resolveWorkerConfig({
|
|
27
|
+
agent: opts.workerAgent,
|
|
28
|
+
mode: opts.workerMode,
|
|
29
|
+
providerId: opts.workerProvider,
|
|
30
|
+
model: opts.workerModel,
|
|
31
|
+
});
|
|
32
|
+
const configuredProvider = worker.providerId
|
|
33
|
+
? getAgentProvider(worker.providerId)
|
|
34
|
+
: undefined;
|
|
35
|
+
return (slot, o) => resolveBackend(worker, {
|
|
25
36
|
cwd: o.cwd,
|
|
26
37
|
project: opts.project,
|
|
27
|
-
modelName:
|
|
28
|
-
// 与
|
|
29
|
-
// 让 acp 日志文件名 = sps-acp-<project>-worker-<N>-acp-<ts>.log,worker 面板才 tail 得到。
|
|
38
|
+
modelName: worker.model,
|
|
39
|
+
// 与 RuntimeSessionRuntime 的会话名同约定 `sps-acp-<project>-<slot>`(关联键)。
|
|
30
40
|
sessionName: `sps-acp-${opts.project}-${slot}`,
|
|
31
41
|
// 模型/端点全走项目 .claude/settings.local.json(Claude Code 原生读);sps-cli 不再对模型做全局 env 注入。
|
|
32
|
-
|
|
42
|
+
extraEnv: o.extraEnv,
|
|
33
43
|
logsDir: opts.logsDir,
|
|
34
44
|
resumeSessionId: o.resumeSessionId,
|
|
35
|
-
|
|
36
|
-
|
|
45
|
+
providerId: worker.providerId,
|
|
46
|
+
providerTransport: worker.transport,
|
|
47
|
+
providerBaseUrl: worker.baseUrl ?? configuredProvider?.baseUrl,
|
|
48
|
+
// 下面几项仅非-claude 后端用;惰性 makeModel 不会被 claude 路径调用。
|
|
49
|
+
makeModel: () => createReviewerModel({ providerId: worker.providerId ?? 'codex', model: worker.model }),
|
|
37
50
|
sessionFile: join(opts.runtimeDir, `worker-${slot}-session.json`),
|
|
38
51
|
});
|
|
39
52
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"makeBackendFactory.js","sourceRoot":"","sources":["../../src/manager/makeBackendFactory.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"makeBackendFactory.js","sourceRoot":"","sources":["../../src/manager/makeBackendFactory.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGjE;;;;;;;;;GASG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAQlC;IACC,MAAM,MAAM,GAAG,mBAAmB,CAAC;QACjC,KAAK,EAAE,IAAI,CAAC,WAAW;QACvB,IAAI,EAAE,IAAI,CAAC,UAAU;QACrB,UAAU,EAAE,IAAI,CAAC,cAAc;QAC/B,KAAK,EAAE,IAAI,CAAC,WAAW;KACxB,CAAC,CAAC;IACH,MAAM,kBAAkB,GAAG,MAAM,CAAC,UAAU;QAC1C,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC;QACrC,CAAC,CAAC,SAAS,CAAC;IACd,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CACjB,cAAc,CAAC,MAAM,EAAE;QACrB,GAAG,EAAE,CAAC,CAAC,GAAG;QACV,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,SAAS,EAAE,MAAM,CAAC,KAAK;QACvB,mEAAmE;QACnE,WAAW,EAAE,WAAW,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE;QAC9C,kFAAkF;QAClF,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,eAAe,EAAE,CAAC,CAAC,eAAe;QAClC,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,iBAAiB,EAAE,MAAM,CAAC,SAAS;QACnC,eAAe,EAAE,MAAM,CAAC,OAAO,IAAI,kBAAkB,EAAE,OAAO;QAC9D,kDAAkD;QAClD,SAAS,EAAE,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QACvG,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,IAAI,eAAe,CAAC;KAClE,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-coordinator.js","sourceRoot":"","sources":["../../src/manager/runtime-coordinator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EACL,uBAAuB,GACxB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,oBAAoB,GAGrB,MAAM,kBAAkB,CAAC;AAI1B,MAAM,qBAAqB,GAAG,IAAI,GAAG,
|
|
1
|
+
{"version":3,"file":"runtime-coordinator.js","sourceRoot":"","sources":["../../src/manager/runtime-coordinator.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,7 +24,7 @@ export interface SpawnOpts {
|
|
|
24
24
|
branch: string;
|
|
25
25
|
prompt: string;
|
|
26
26
|
outputFile: string;
|
|
27
|
-
tool: 'claude';
|
|
27
|
+
tool: 'claude' | 'openai';
|
|
28
28
|
resumeSessionId?: string;
|
|
29
29
|
/** Called when child process exits. Return value is tracked as pending PostAction. */
|
|
30
30
|
onExit: (exitCode: number) => Promise<void> | void;
|
|
@@ -37,7 +37,7 @@ export interface ExitEvent {
|
|
|
37
37
|
}
|
|
38
38
|
export interface WorkerHandle {
|
|
39
39
|
id: string;
|
|
40
|
-
transport: '
|
|
40
|
+
transport: 'daemon';
|
|
41
41
|
pid: number | null;
|
|
42
42
|
child: ChildProcess | null;
|
|
43
43
|
outputFile: string | null;
|
|
@@ -46,7 +46,7 @@ export interface WorkerHandle {
|
|
|
46
46
|
slot: string;
|
|
47
47
|
branch: string;
|
|
48
48
|
worktree: string;
|
|
49
|
-
tool: 'claude';
|
|
49
|
+
tool: 'claude' | 'openai';
|
|
50
50
|
exitCode: number | null;
|
|
51
51
|
sessionId: string | null;
|
|
52
52
|
runId: string | null;
|
|
@@ -72,11 +72,11 @@ export declare class ProcessSupervisor {
|
|
|
72
72
|
getAll(): WorkerHandle[];
|
|
73
73
|
remove(id: string): void;
|
|
74
74
|
get activeCount(): number;
|
|
75
|
-
|
|
75
|
+
registerDaemonHandle(handle: Omit<WorkerHandle, 'child' | 'transport'> & {
|
|
76
76
|
child?: ChildProcess | null;
|
|
77
|
-
transport?: '
|
|
77
|
+
transport?: 'daemon';
|
|
78
78
|
}): WorkerHandle;
|
|
79
|
-
|
|
79
|
+
updateDaemonHandle(id: string, patch: Partial<Pick<WorkerHandle, 'sessionId' | 'runId' | 'sessionState' | 'remoteStatus' | 'lastEventAt' | 'exitCode' | 'exitedAt' | 'outputFile'>>): WorkerHandle | undefined;
|
|
80
80
|
/**
|
|
81
81
|
* Wait for all pending PostAction promises to settle.
|
|
82
82
|
* Called by tick after each cycle to ensure exit callbacks complete.
|
|
@@ -96,7 +96,7 @@ export declare class ProcessSupervisor {
|
|
|
96
96
|
reloadGlobalEnv(): void;
|
|
97
97
|
private extractSessionId;
|
|
98
98
|
private log;
|
|
99
|
-
private
|
|
99
|
+
private normalizeDaemonHandle;
|
|
100
100
|
private upsertHandle;
|
|
101
101
|
}
|
|
102
102
|
//# sourceMappingURL=supervisor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supervisor.d.ts","sourceRoot":"","sources":["../../src/manager/supervisor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AASvD,MAAM,WAAW,SAAS;IACxB,oDAAoD;IACpD,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"supervisor.d.ts","sourceRoot":"","sources":["../../src/manager/supervisor.ts"],"names":[],"mappings":"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"}
|
|
@@ -47,14 +47,14 @@ export class ProcessSupervisor {
|
|
|
47
47
|
get activeCount() {
|
|
48
48
|
return this.workers.size;
|
|
49
49
|
}
|
|
50
|
-
|
|
51
|
-
return this.upsertHandle(this.
|
|
50
|
+
registerDaemonHandle(handle) {
|
|
51
|
+
return this.upsertHandle(this.normalizeDaemonHandle(handle));
|
|
52
52
|
}
|
|
53
|
-
|
|
53
|
+
updateDaemonHandle(id, patch) {
|
|
54
54
|
const current = this.workers.get(id);
|
|
55
55
|
if (!current)
|
|
56
56
|
return undefined;
|
|
57
|
-
return this.upsertHandle(this.
|
|
57
|
+
return this.upsertHandle(this.normalizeDaemonHandle({ ...current, ...patch }));
|
|
58
58
|
}
|
|
59
59
|
/**
|
|
60
60
|
* Wait for all pending PostAction promises to settle.
|
|
@@ -81,7 +81,7 @@ export class ProcessSupervisor {
|
|
|
81
81
|
// Store handle without child reference
|
|
82
82
|
const orphanHandle = {
|
|
83
83
|
...handle,
|
|
84
|
-
transport: '
|
|
84
|
+
transport: 'daemon',
|
|
85
85
|
child: null,
|
|
86
86
|
pid,
|
|
87
87
|
outputFile: handle.outputFile ?? null,
|
|
@@ -156,10 +156,10 @@ export class ProcessSupervisor {
|
|
|
156
156
|
log(msg) {
|
|
157
157
|
process.stderr.write(`[supervisor] ${msg}\n`);
|
|
158
158
|
}
|
|
159
|
-
|
|
159
|
+
normalizeDaemonHandle(handle) {
|
|
160
160
|
return {
|
|
161
161
|
...handle,
|
|
162
|
-
transport: '
|
|
162
|
+
transport: 'daemon',
|
|
163
163
|
pid: null,
|
|
164
164
|
child: handle.child ?? null,
|
|
165
165
|
outputFile: handle.outputFile ?? null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supervisor.js","sourceRoot":"","sources":["../../src/manager/supervisor.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,GAAG,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,cAAc,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAiDhI,mEAAmE;AAEnE,MAAM,OAAO,iBAAiB;IAC5B,yDAAyD;IACjD,SAAS,CAAyB;IAC1C,kCAAkC;IACjB,OAAO,GAAG,IAAI,GAAG,EAAwB,CAAC;IAC3D,4CAA4C;IAC3B,YAAY,GAAG,IAAI,GAAG,EAA0C,CAAC;IAClF,wDAAwD;IACvC,cAAc,GAAoB,EAAE,CAAC;IAEtD;QACE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;IACxC,CAAC;IAED,0EAA0E;IAE1E,+DAA+D;IAE/D,KAAK,CAAC,IAAI,CAAC,EAAU;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/D,MAAM,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrC,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC;IAED,GAAG,CAAC,EAAU;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,YAAY,CAAC,OAAe;QAC1B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM;QACJ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,CAAC,EAAU;QACf,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxC,IAAI,KAAK,EAAE,CAAC;YACV,aAAa,CAAC,KAAK,CAAC,CAAC;YACrB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3B,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"supervisor.js","sourceRoot":"","sources":["../../src/manager/supervisor.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,7 +19,7 @@ export declare class WorkerManagerImpl implements WorkerManager {
|
|
|
19
19
|
private readonly taskSlotMap;
|
|
20
20
|
private readonly timeouts;
|
|
21
21
|
/** Abort controllers for ACP completion monitors keyed by slot name. */
|
|
22
|
-
private readonly
|
|
22
|
+
private readonly workerMonitorAborts;
|
|
23
23
|
/** L3 P4-part2:per-slot AgentBackend(worker 执行唯一路径),跨卡暖复用。 */
|
|
24
24
|
private readonly backendFactory;
|
|
25
25
|
private readonly slotBackends;
|
|
@@ -40,9 +40,9 @@ export declare class WorkerManagerImpl implements WorkerManager {
|
|
|
40
40
|
private acquireAndSpawn;
|
|
41
41
|
private handleExit;
|
|
42
42
|
/**
|
|
43
|
-
* L3 P2:AgentBackend 版完成监控 —— 轮询 backend.runState() 直到终态,语义同
|
|
43
|
+
* L3 P2:AgentBackend 版完成监控 —— 轮询 backend.runState() 直到终态,语义同 monitorWorkerCompletion:
|
|
44
44
|
* completed → 直接信任,finalize 完成;failed/cancelled → finalize 失败;
|
|
45
|
-
* lost(
|
|
45
|
+
* lost(进程死且无 terminal)→ 权威失败,不能用 git diff 或完成文案伪造成功。
|
|
46
46
|
* 用轮询(非 subscribe)→ 天然绕开"reclaim/resume 后订阅需重挂"的坑;runState 在 P1 实测可靠返 completed。
|
|
47
47
|
*/
|
|
48
48
|
private monitorViaBackend;
|
|
@@ -50,7 +50,7 @@ export declare class WorkerManagerImpl implements WorkerManager {
|
|
|
50
50
|
* Finalize an ACP worker with a known status — emit event and release resources.
|
|
51
51
|
* Bypasses CompletionJudge since ACP protocol provides authoritative status.
|
|
52
52
|
*/
|
|
53
|
-
private
|
|
53
|
+
private finalizeWorker;
|
|
54
54
|
/**
|
|
55
55
|
* R1: Worker PID is still alive — re-attach orphan monitoring.
|
|
56
56
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-manager-impl.d.ts","sourceRoot":"","sources":["../../src/manager/worker-manager-impl.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAE,eAAe,EAAoB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"worker-manager-impl.d.ts","sourceRoot":"","sources":["../../src/manager/worker-manager-impl.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAE,eAAe,EAAoB,MAAM,uBAAuB,CAAC;AAE/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAC,cAAc,EAAE,YAAY,EACvC,eAAe,EAAE,cAAc,EAAC,iBAAiB,EAAC,kBAAkB,EACpE,gBAAgB,EAAE,iBAAiB,EAAE,cAAc,EAAE,eAAe,EAAc,kBAAkB,EACpG,aAAa,EACb,cAAc,EACf,MAAM,qBAAqB,CAAC;AAI7B,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,iBAAiB,CAAC;IAC9B,eAAe,EAAE,eAAe,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB;2DACuD;IACvD,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AA+BD,qBAAa,iBAAkB,YAAW,aAAa;IACrD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA4B;IAC1D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IACzD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqC;IAC9D,wEAAwE;IACxE,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAsC;IAC1E,8DAA8D;IAC9D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwB;IACvD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmC;gBAEpD,IAAI,EAAE,iBAAiB;IAQnC;uFACmF;IACnF,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI3C,gEAAgE;IAChE,OAAO,CAAC,cAAc;IAchB,GAAG,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAgBtD,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,eAAe,CAAC;IAc5D,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IA2DvD,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,cAAc,EAAE;IA2B9C,OAAO,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAMpC,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAKnD,OAAO,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAOnD,OAAO,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC;YAsErD,eAAe;YA2If,UAAU;IA0DxB;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IA6FzB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAgDtB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAgC1B;;;OAGG;IACH,OAAO,CAAC,eAAe;IAkDvB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAgBzB;;OAEG;IACH,OAAO,CAAC,UAAU;IAalB;;OAEG;IACH,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,EAAE;IAEV,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,SAAS;IAwBjB,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,YAAY;IA8BpB,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,SAAS;IAQjB,OAAO,IAAI,IAAI;IAoCf,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,GAAG;IAEX;;;OAGG;IACH,OAAO,CAAC,YAAY;IAoBpB;;;OAGG;IACH;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,mBAAmB;IAc3B;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAO5B;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;CAM7B"}
|
|
@@ -24,6 +24,7 @@ import { buildMemoryInjection } from '../core/memory2/inject.js';
|
|
|
24
24
|
import { captureBindUnsub, captureDiscard, captureFlush, captureNote, captureStart } from '../core/memory2/capture.js';
|
|
25
25
|
import { externalObserve } from '../core/memory2/external/agentMemory.js';
|
|
26
26
|
import { importSessionToExternal } from '../core/memory2/external/importTranscript.js';
|
|
27
|
+
import { loadAgentsConfig } from '../core/intel/agentsConfig.js';
|
|
27
28
|
// ─── Timeout Defaults ──────────────────────────────────────────
|
|
28
29
|
const DEFAULT_TIMEOUTS = {
|
|
29
30
|
startupSec: 60, // 60s for worker to start
|
|
@@ -41,7 +42,7 @@ export class WorkerManagerImpl {
|
|
|
41
42
|
taskSlotMap = new Map();
|
|
42
43
|
timeouts = new Map();
|
|
43
44
|
/** Abort controllers for ACP completion monitors keyed by slot name. */
|
|
44
|
-
|
|
45
|
+
workerMonitorAborts = new Map();
|
|
45
46
|
/** L3 P4-part2:per-slot AgentBackend(worker 执行唯一路径),跨卡暖复用。 */
|
|
46
47
|
backendFactory;
|
|
47
48
|
slotBackends = new Map();
|
|
@@ -111,8 +112,8 @@ export class WorkerManagerImpl {
|
|
|
111
112
|
const workerId = `${project}:${slot}:${taskId}`;
|
|
112
113
|
// Stop the ACP completion monitor first so it cannot race this cancel and
|
|
113
114
|
// emit a second, contradictory finalize for the same slot.
|
|
114
|
-
this.
|
|
115
|
-
this.
|
|
115
|
+
this.workerMonitorAborts.get(slot)?.abort();
|
|
116
|
+
this.workerMonitorAborts.delete(slot);
|
|
116
117
|
// 先看是否已完成(避免"完成+NEEDS-FIX"矛盾),否则 cancel 在途 run
|
|
117
118
|
// (会话保活,下次派卡暖复用;不 OS-kill——backend 无 pid 句柄)。
|
|
118
119
|
const backend = this.slotBackends.get(slot);
|
|
@@ -270,6 +271,7 @@ export class WorkerManagerImpl {
|
|
|
270
271
|
const workerId = `${project}:${slot}:${taskId}`;
|
|
271
272
|
let pid = null;
|
|
272
273
|
let sessionId;
|
|
274
|
+
let backend;
|
|
273
275
|
let resourceAcquired = true; // track whether resource was released by spawn-fail path
|
|
274
276
|
try {
|
|
275
277
|
if (!this.backendFactory) {
|
|
@@ -312,7 +314,7 @@ export class WorkerManagerImpl {
|
|
|
312
314
|
// 执行走 per-slot AgentBackend(北极星,agent 无关)。durable resume 下沉进
|
|
313
315
|
// backend.ensure(构造时 seed resumeSessionId → loadSession);skills 走 dispatch opts。
|
|
314
316
|
// pid 不由 backend 暴露,跨重启续跑靠 sessionId,不靠 pid orphan 监控(见 recover)。
|
|
315
|
-
|
|
317
|
+
backend = this.getSlotBackend(slot, { cwd, extraEnv, resumeSessionId });
|
|
316
318
|
// 读路注入(记忆 v2 §3):派活前把 project+global 记忆拼成 <memory> 块 prepend 进 prompt。
|
|
317
319
|
// agent 无关(只改 prompt 文本);记忆层任何异常都不该阻断派活,故整体兜底吞掉。
|
|
318
320
|
const dispatchPrompt = this.withMemoryInjection(project, prompt, cardTitle ?? '');
|
|
@@ -331,7 +333,7 @@ export class WorkerManagerImpl {
|
|
|
331
333
|
// 提前订阅会因"session 不存在"拿到 no-op(踩过)。dispatch 非阻塞(startRun 只发起 run),
|
|
332
334
|
// agent 输出随后几秒流式产生、结论段在末尾,故此刻订阅仍完整捕获。只吃归一化 WorkerOutputEvent
|
|
333
335
|
// (红线:不碰 jsonl);无 subscribe 的后端跳过(走 agent 主动 memory_save 兜底)。
|
|
334
|
-
// flush 落点:claude-acp 走
|
|
336
|
+
// flush 落点:claude-acp 走 finalizeWorker、其余走 handleExit;失败 discard。
|
|
335
337
|
this.startCapture(project, cardId, backend, cwd);
|
|
336
338
|
sessionId = backend.sessionId ?? undefined;
|
|
337
339
|
pid = null;
|
|
@@ -361,6 +363,9 @@ export class WorkerManagerImpl {
|
|
|
361
363
|
if (postState.workers[slot]) {
|
|
362
364
|
postState.workers[slot].pid = pid;
|
|
363
365
|
postState.workers[slot].sessionId = sessionId ?? null;
|
|
366
|
+
postState.workers[slot].agent = backend?.kind.startsWith('openai')
|
|
367
|
+
? 'openai'
|
|
368
|
+
: 'claude';
|
|
364
369
|
this.wr(postState, `${label}-pid`);
|
|
365
370
|
}
|
|
366
371
|
// v0.41.2: Patch marker file with sessionId + pid now that spawn succeeded.
|
|
@@ -420,17 +425,17 @@ export class WorkerManagerImpl {
|
|
|
420
425
|
}
|
|
421
426
|
}
|
|
422
427
|
/**
|
|
423
|
-
* L3 P2:AgentBackend 版完成监控 —— 轮询 backend.runState() 直到终态,语义同
|
|
428
|
+
* L3 P2:AgentBackend 版完成监控 —— 轮询 backend.runState() 直到终态,语义同 monitorWorkerCompletion:
|
|
424
429
|
* completed → 直接信任,finalize 完成;failed/cancelled → finalize 失败;
|
|
425
|
-
* lost(
|
|
430
|
+
* lost(进程死且无 terminal)→ 权威失败,不能用 git diff 或完成文案伪造成功。
|
|
426
431
|
* 用轮询(非 subscribe)→ 天然绕开"reclaim/resume 后订阅需重挂"的坑;runState 在 P1 实测可靠返 completed。
|
|
427
432
|
*/
|
|
428
433
|
monitorViaBackend(ctx, backend) {
|
|
429
434
|
const pollIntervalMs = 10_000; // 10s,与 ACP 监控一致
|
|
430
435
|
// 抢占同 slot 的旧监控(slot 复用时防幽灵轮询)。
|
|
431
|
-
this.
|
|
436
|
+
this.workerMonitorAborts.get(ctx.slot)?.abort();
|
|
432
437
|
const abortController = new AbortController();
|
|
433
|
-
this.
|
|
438
|
+
this.workerMonitorAborts.set(ctx.slot, abortController);
|
|
434
439
|
let pendingTimeout = null;
|
|
435
440
|
const poll = async () => {
|
|
436
441
|
if (abortController.signal.aborted)
|
|
@@ -441,26 +446,53 @@ export class WorkerManagerImpl {
|
|
|
441
446
|
return;
|
|
442
447
|
if (st === 'completed') {
|
|
443
448
|
this.log(`backend monitor: ${ctx.taskId} completed (authoritative)`);
|
|
444
|
-
this.
|
|
449
|
+
this.workerMonitorAborts.delete(ctx.slot);
|
|
445
450
|
// 方案 C(记忆 v2):完成时把该会话完整 transcript 导入 agentmemory(全 I/O 观测、按项目归类)。
|
|
446
451
|
// best-effort、异步、门控(external+SPS_MEMORY_IMPORT=on);sps 不解析 jsonl,交给 agentmemory 读。
|
|
447
452
|
importSessionToExternal(ctx.cwd, backend.sessionId);
|
|
448
|
-
this.
|
|
453
|
+
this.finalizeWorker(ctx, 'run.completed', 0, { status: 'completed', reason: 'backend_completed' });
|
|
449
454
|
return;
|
|
450
455
|
}
|
|
451
456
|
if (st === 'failed' || st === 'cancelled') {
|
|
452
457
|
this.log(`backend monitor: ${ctx.taskId} ${st} (authoritative)`);
|
|
453
|
-
this.
|
|
454
|
-
this.
|
|
458
|
+
this.workerMonitorAborts.delete(ctx.slot);
|
|
459
|
+
this.finalizeWorker(ctx, 'run.failed', 1, { status: 'failed', reason: `backend_${st}` });
|
|
455
460
|
return;
|
|
456
461
|
}
|
|
457
462
|
if (st === 'lost') {
|
|
458
|
-
this.log(`backend monitor: ${ctx.taskId} lost
|
|
459
|
-
this.
|
|
460
|
-
|
|
463
|
+
this.log(`backend monitor: ${ctx.taskId} lost (authoritative failure)`);
|
|
464
|
+
this.workerMonitorAborts.delete(ctx.slot);
|
|
465
|
+
this.finalizeWorker(ctx, 'run.failed', 1, {
|
|
466
|
+
status: 'failed',
|
|
467
|
+
reason: 'backend_lost',
|
|
468
|
+
});
|
|
461
469
|
return;
|
|
462
470
|
}
|
|
463
|
-
|
|
471
|
+
if (st === 'awaiting_input') {
|
|
472
|
+
const state = this.rd();
|
|
473
|
+
const worker = state.workers[ctx.slot];
|
|
474
|
+
if (worker &&
|
|
475
|
+
(worker.remoteStatus !== 'waiting_input' ||
|
|
476
|
+
worker.sessionState !== 'needs_confirmation')) {
|
|
477
|
+
worker.remoteStatus = 'waiting_input';
|
|
478
|
+
worker.sessionState = 'needs_confirmation';
|
|
479
|
+
worker.lastHeartbeat = new Date().toISOString();
|
|
480
|
+
this.wr(state, 'backend-awaiting-input');
|
|
481
|
+
}
|
|
482
|
+
}
|
|
483
|
+
else if (st === 'running') {
|
|
484
|
+
const state = this.rd();
|
|
485
|
+
const worker = state.workers[ctx.slot];
|
|
486
|
+
if (worker &&
|
|
487
|
+
(worker.remoteStatus === 'waiting_input' ||
|
|
488
|
+
worker.sessionState === 'needs_confirmation')) {
|
|
489
|
+
worker.remoteStatus = 'running';
|
|
490
|
+
worker.sessionState = 'busy';
|
|
491
|
+
worker.lastHeartbeat = new Date().toISOString();
|
|
492
|
+
this.wr(state, 'backend-resumed');
|
|
493
|
+
}
|
|
494
|
+
}
|
|
495
|
+
// running/awaiting_input/idle —— 继续轮询
|
|
464
496
|
pendingTimeout = setTimeout(poll, pollIntervalMs);
|
|
465
497
|
}
|
|
466
498
|
catch (err) {
|
|
@@ -480,7 +512,7 @@ export class WorkerManagerImpl {
|
|
|
480
512
|
* Finalize an ACP worker with a known status — emit event and release resources.
|
|
481
513
|
* Bypasses CompletionJudge since ACP protocol provides authoritative status.
|
|
482
514
|
*/
|
|
483
|
-
|
|
515
|
+
finalizeWorker(ctx, eventType, exitCode, completionResult) {
|
|
484
516
|
this.clearTimeoutForTask(ctx.taskId);
|
|
485
517
|
this.log(`ACP finalize ${ctx.workerId}: ${completionResult.status} (${completionResult.reason})`);
|
|
486
518
|
this.emitEvent({
|
|
@@ -525,10 +557,10 @@ export class WorkerManagerImpl {
|
|
|
525
557
|
? 'integration' : 'development';
|
|
526
558
|
/* resourceLimiter.tryAcquire() — single worker, no-op */ ;
|
|
527
559
|
this.supervisor.monitorOrphanPid(workerId, pid, {
|
|
528
|
-
id: workerId, transport: '
|
|
560
|
+
id: workerId, transport: 'daemon', pid,
|
|
529
561
|
outputFile: null, project: ctx.project, seq, slot,
|
|
530
562
|
branch: lease.branch ?? '', worktree: lease.worktree ?? '',
|
|
531
|
-
tool:
|
|
563
|
+
tool: loadAgentsConfig().worker.agent, exitCode: null, sessionId: lease.sessionId ?? null,
|
|
532
564
|
runId: lease.runId ?? null, sessionState: null, remoteStatus: null,
|
|
533
565
|
lastEventAt: null,
|
|
534
566
|
startedAt: lease.claimedAt ?? new Date().toISOString(),
|
|
@@ -537,7 +569,7 @@ export class WorkerManagerImpl {
|
|
|
537
569
|
workerId, taskId: seq, cardId: seq, project: ctx.project,
|
|
538
570
|
phase, slot, branch: lease.branch ?? '',
|
|
539
571
|
cwd: lease.worktree ?? '', targetBranch: ctx.baseBranch,
|
|
540
|
-
outputFile: '', tool:
|
|
572
|
+
outputFile: '', tool: loadAgentsConfig().worker.agent, transport: 'daemon',
|
|
541
573
|
exitCode, maxRetries: 0,
|
|
542
574
|
}));
|
|
543
575
|
this.taskSlotMap.set(seq, slot);
|
|
@@ -644,7 +676,7 @@ export class WorkerManagerImpl {
|
|
|
644
676
|
state.workers[slot] = {
|
|
645
677
|
...createIdleWorkerSlot(), status: 'active', seq: seqNum,
|
|
646
678
|
branch: ctx.branch, worktree: ctx.cwd, claimedAt: ctx.nowIso, lastHeartbeat: ctx.nowIso,
|
|
647
|
-
mode: '
|
|
679
|
+
mode: 'daemon', transport: 'daemon', agent: ctx.tool,
|
|
648
680
|
outputFile: null,
|
|
649
681
|
};
|
|
650
682
|
state.activeCards[ctx.seq] = {
|
|
@@ -741,10 +773,10 @@ export class WorkerManagerImpl {
|
|
|
741
773
|
}
|
|
742
774
|
this.timeouts.clear();
|
|
743
775
|
// Abort all ACP monitors
|
|
744
|
-
for (const [_slot, controller] of this.
|
|
776
|
+
for (const [_slot, controller] of this.workerMonitorAborts) {
|
|
745
777
|
controller.abort();
|
|
746
778
|
}
|
|
747
|
-
this.
|
|
779
|
+
this.workerMonitorAborts.clear();
|
|
748
780
|
// L3 P2:tick 退出时停掉所有 per-slot backend(杀 ACP 子进程释放内存)。
|
|
749
781
|
// sessionId 已由 pipeline 层持久化(pipeline-sessions.json),下次 tick seed resumeSessionId 续 → 停无损。
|
|
750
782
|
for (const [_slot, backend] of this.slotBackends) {
|