@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
package/dist/core/state.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { WorkerSessionRecord } from './runtimeTypes.js';
|
|
2
2
|
import type { CardState } from '../shared/types.js';
|
|
3
3
|
export interface WorkerSlotState {
|
|
4
4
|
status: 'idle' | 'active' | 'merging' | 'resolving' | 'releasing';
|
|
@@ -7,17 +7,18 @@ export interface WorkerSlotState {
|
|
|
7
7
|
worktree: string | null;
|
|
8
8
|
claimedAt: string | null;
|
|
9
9
|
lastHeartbeat: string | null;
|
|
10
|
-
/** Worker execution mode —
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
transport
|
|
14
|
-
|
|
15
|
-
|
|
10
|
+
/** Worker execution mode — 'daemon'=共享 daemon(claude/openai 都走此);'print'=legacy;null=旧文件。
|
|
11
|
+
* 旧值 'acp'/'acp-sdk' 已退役(真 ACP 早删),加载时归一到 'daemon'。 */
|
|
12
|
+
mode?: 'print' | 'daemon' | null;
|
|
13
|
+
/** Underlying worker transport — 'daemon'=共享 daemon(唯一在用);旧 'acp-sdk' 加载时归一到此。 */
|
|
14
|
+
transport?: 'daemon' | null;
|
|
15
|
+
/** Worker tool currently bound to the slot(区分 claude / openai worker) */
|
|
16
|
+
agent?: 'claude' | 'openai' | null;
|
|
16
17
|
/** Claude session ID for resume chains (print mode, legacy) */
|
|
17
18
|
sessionId?: string | null;
|
|
18
|
-
/**
|
|
19
|
+
/** 活动 run 的 id */
|
|
19
20
|
runId?: string | null;
|
|
20
|
-
/**
|
|
21
|
+
/** 会话生命周期状态 */
|
|
21
22
|
sessionState?: 'booting' | 'ready' | 'busy' | 'needs_confirmation' | 'draining' | 'offline' | null;
|
|
22
23
|
/** ACP run lifecycle status */
|
|
23
24
|
remoteStatus?: 'submitted' | 'running' | 'waiting_input' | 'needs_confirmation' | 'stalled_submit' | 'completed' | 'failed' | 'cancelled' | 'lost' | null;
|
|
@@ -94,8 +95,8 @@ export interface IntegrationQueueEntry {
|
|
|
94
95
|
cwd: string;
|
|
95
96
|
branch: string;
|
|
96
97
|
targetBranch: string;
|
|
97
|
-
tool: 'claude';
|
|
98
|
-
transport: '
|
|
98
|
+
tool: 'claude' | 'openai';
|
|
99
|
+
transport: 'daemon';
|
|
99
100
|
outputFile: string;
|
|
100
101
|
enqueuedAt: string;
|
|
101
102
|
}
|
|
@@ -114,7 +115,7 @@ export interface RuntimeState {
|
|
|
114
115
|
worktreeEvidence: Record<string, WorktreeEvidence>;
|
|
115
116
|
worktreeCleanup: WorktreeCleanupEntry[];
|
|
116
117
|
/** ACP session records — merged from former acp-state.json */
|
|
117
|
-
sessions: Record<string,
|
|
118
|
+
sessions: Record<string, WorkerSessionRecord>;
|
|
118
119
|
/** Per-project:targetBranch integration serialisation queues */
|
|
119
120
|
integrationQueues: Record<string, IntegrationQueueState>;
|
|
120
121
|
/** PM operations that failed and need retry on next tick cycle */
|
package/dist/core/state.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/core/state.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/core/state.ts"],"names":[],"mappings":"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"}
|
package/dist/core/state.js
CHANGED
|
@@ -58,8 +58,16 @@ function defaultState(maxWorkers) {
|
|
|
58
58
|
pendingPMActions: [],
|
|
59
59
|
};
|
|
60
60
|
}
|
|
61
|
+
/** 退役 acp-sdk:旧 state.json 里 mode/transport 的 'acp'/'acp-sdk' 归一到 'daemon'(真 ACP 早删)。 */
|
|
62
|
+
function migrateLegacyAcp(slot) {
|
|
63
|
+
const m = slot.mode;
|
|
64
|
+
const t = slot.transport;
|
|
65
|
+
const mode = m === 'acp' || m === 'acp-sdk' ? 'daemon' : slot.mode;
|
|
66
|
+
const transport = t === 'acp-sdk' || t === 'acp' ? 'daemon' : slot.transport;
|
|
67
|
+
return mode === slot.mode && transport === slot.transport ? slot : { ...slot, mode, transport };
|
|
68
|
+
}
|
|
61
69
|
function reconcileState(raw, maxWorkers) {
|
|
62
|
-
const workers =
|
|
70
|
+
const workers = Object.fromEntries(Object.entries(raw.workers || {}).map(([k, v]) => [k, migrateLegacyAcp(v)]));
|
|
63
71
|
const activeCards = Object.fromEntries(Object.entries(raw.activeCards || {}).map(([seq, card]) => [
|
|
64
72
|
seq,
|
|
65
73
|
{
|
package/dist/core/state.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/core/state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACzF,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/core/state.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* @layer core
|
|
14
14
|
* @boundedContext worker
|
|
15
15
|
*/
|
|
16
|
-
import { hasPersistedActiveRun,
|
|
16
|
+
import { hasPersistedActiveRun, isDaemonBackedSlot, isProcessAlive } from './sessionLiveness.js';
|
|
17
17
|
function isLiveProcWorker(slot) {
|
|
18
18
|
const pid = slot.pid ?? null;
|
|
19
19
|
return !!(pid && isProcessAlive(pid));
|
|
@@ -25,7 +25,7 @@ export function summarizeWorkerRuntime(state) {
|
|
|
25
25
|
let stale = 0;
|
|
26
26
|
for (const [slotName, slot] of slots) {
|
|
27
27
|
if (slot.status === 'active') {
|
|
28
|
-
if (
|
|
28
|
+
if (isDaemonBackedSlot(slot)) {
|
|
29
29
|
const session = state.sessions[slotName];
|
|
30
30
|
if (hasPersistedActiveRun(slot, session))
|
|
31
31
|
active++;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workerRuntimeSummary.js","sourceRoot":"","sources":["../../src/core/workerRuntimeSummary.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,qBAAqB,EAAE,
|
|
1
|
+
{"version":3,"file":"workerRuntimeSummary.js","sourceRoot":"","sources":["../../src/core/workerRuntimeSummary.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAYjG,SAAS,gBAAgB,CAAC,IAAqB;IAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC;IAC7B,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAmB;IACxD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC5C,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,KAAK,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC7B,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBACzC,IAAI,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC;oBAAE,MAAM,EAAE,CAAC;;oBAC9C,KAAK,EAAE,CAAC;YACf,CAAC;iBAAM,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClC,MAAM,EAAE,CAAC;YACX,CAAC;iBAAM,CAAC;gBACN,KAAK,EAAE,CAAC;YACV,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAC7D,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;IACvE,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,MAAM;QACnB,IAAI;QACJ,MAAM;QACN,OAAO;QACP,KAAK;QACL,OAAO,EAAE,MAAM,GAAG,OAAO;KAC1B,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/** sps-cli 自身(无用户/无平台)的保留 namespace。 */
|
|
2
|
+
export declare const DEFAULT_NAMESPACE = "local";
|
|
3
|
+
/**
|
|
4
|
+
* 校验调用方传入的 namespace:安全的相对路径串。
|
|
5
|
+
* 允许多段(如 `u123/gameforge`),段内 `[A-Za-z0-9._-]`;禁绝对路径 / `.` / `..` / 空 / 非法字符。
|
|
6
|
+
* 返回规范化串(去空段);非法则抛。
|
|
7
|
+
*/
|
|
8
|
+
export declare function validateNamespace(ns: string): string;
|
|
9
|
+
/**
|
|
10
|
+
* 单段名(project / 会话 id)安全校验:禁 `/` `\` `.` `..` 空 / 非法字符。返回原串;非法则抛。
|
|
11
|
+
*/
|
|
12
|
+
export declare function validateSegment(name: string): string;
|
|
13
|
+
/**
|
|
14
|
+
* 代码工作区根。解析链(高→低):
|
|
15
|
+
* 1. `process.env.SPS_WORKSPACES_ROOT`(显式覆盖)
|
|
16
|
+
* 2. `~/.coral/env` 持久值(setup 首次钉住)
|
|
17
|
+
* 3. 默认 `~/coral-workspaces`(搬出 dotdir、非隐藏、可发现)
|
|
18
|
+
*/
|
|
19
|
+
export declare function workspacesRoot(): string;
|
|
20
|
+
/** `<WORKSPACES_ROOT>/<namespace>/<project>` —— 一个项目/会话的代码工作区(cwd)。 */
|
|
21
|
+
export declare function workspaceDir(namespace: string, project: string): string;
|
|
22
|
+
//# sourceMappingURL=workspacePaths.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspacePaths.d.ts","sourceRoot":"","sources":["../../src/core/workspacePaths.ts"],"names":[],"mappings":"AAcA,wCAAwC;AACxC,eAAO,MAAM,iBAAiB,UAAU,CAAC;AAEzC;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAWpD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKpD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAUvC;AAED,uEAAuE;AACvE,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEvE"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module core/workspacePaths
|
|
3
|
+
* @description 工作区/租户 namespace 统一的路径解析(设计见 docs/design/workspace-tenant-unification.md)。
|
|
4
|
+
* 代码工作区搬出 ~/.coral(dotdir 只留配置/状态),落**可配置根** WORKSPACES_ROOT。
|
|
5
|
+
* namespace 由**调用方传、对 sps 不透明**;'local' 为保留值(sps-cli 自身,无用户/无平台)。
|
|
6
|
+
* 与 shared/runtimePaths 的分工:元数据/状态路径在 runtimePaths(纯 node:path);
|
|
7
|
+
* 本模块因需读配置链(loadGlobalEnv)而落 core 层。
|
|
8
|
+
* @layer core
|
|
9
|
+
* @boundedContext project
|
|
10
|
+
*/
|
|
11
|
+
import { isAbsolute, resolve } from 'node:path';
|
|
12
|
+
import { home } from '../shared/runtimePaths.js';
|
|
13
|
+
import { loadGlobalEnv } from './config.js';
|
|
14
|
+
/** sps-cli 自身(无用户/无平台)的保留 namespace。 */
|
|
15
|
+
export const DEFAULT_NAMESPACE = 'local';
|
|
16
|
+
/**
|
|
17
|
+
* 校验调用方传入的 namespace:安全的相对路径串。
|
|
18
|
+
* 允许多段(如 `u123/gameforge`),段内 `[A-Za-z0-9._-]`;禁绝对路径 / `.` / `..` / 空 / 非法字符。
|
|
19
|
+
* 返回规范化串(去空段);非法则抛。
|
|
20
|
+
*/
|
|
21
|
+
export function validateNamespace(ns) {
|
|
22
|
+
const raw = (ns ?? '').trim();
|
|
23
|
+
if (!raw)
|
|
24
|
+
throw new Error('namespace 不能为空');
|
|
25
|
+
if (isAbsolute(raw))
|
|
26
|
+
throw new Error(`namespace 不能是绝对路径: ${ns}`);
|
|
27
|
+
const segs = raw.split(/[/\\]/).filter((s) => s.length > 0);
|
|
28
|
+
if (segs.length === 0)
|
|
29
|
+
throw new Error(`namespace 无有效段: ${ns}`);
|
|
30
|
+
for (const s of segs) {
|
|
31
|
+
if (s === '.' || s === '..')
|
|
32
|
+
throw new Error(`namespace 段非法(禁 . / ..): ${ns}`);
|
|
33
|
+
if (!/^[A-Za-z0-9._-]+$/.test(s))
|
|
34
|
+
throw new Error(`namespace 段含非法字符: ${s}`);
|
|
35
|
+
}
|
|
36
|
+
return segs.join('/');
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* 单段名(project / 会话 id)安全校验:禁 `/` `\` `.` `..` 空 / 非法字符。返回原串;非法则抛。
|
|
40
|
+
*/
|
|
41
|
+
export function validateSegment(name) {
|
|
42
|
+
const raw = (name ?? '').trim();
|
|
43
|
+
if (!raw || raw === '.' || raw === '..')
|
|
44
|
+
throw new Error(`名字非法(禁空 / . / ..): ${name}`);
|
|
45
|
+
if (!/^[A-Za-z0-9._-]+$/.test(raw))
|
|
46
|
+
throw new Error(`名字含非法字符(禁 / \\ 等): ${name}`);
|
|
47
|
+
return raw;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* 代码工作区根。解析链(高→低):
|
|
51
|
+
* 1. `process.env.SPS_WORKSPACES_ROOT`(显式覆盖)
|
|
52
|
+
* 2. `~/.coral/env` 持久值(setup 首次钉住)
|
|
53
|
+
* 3. 默认 `~/coral-workspaces`(搬出 dotdir、非隐藏、可发现)
|
|
54
|
+
*/
|
|
55
|
+
export function workspacesRoot() {
|
|
56
|
+
const fromEnv = process.env.SPS_WORKSPACES_ROOT?.trim();
|
|
57
|
+
if (fromEnv)
|
|
58
|
+
return resolve(fromEnv);
|
|
59
|
+
try {
|
|
60
|
+
const persisted = loadGlobalEnv().SPS_WORKSPACES_ROOT?.trim();
|
|
61
|
+
if (persisted)
|
|
62
|
+
return resolve(persisted);
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
/* env 文件缺失/不可读 → 落默认 */
|
|
66
|
+
}
|
|
67
|
+
return resolve(home(), 'coral-workspaces');
|
|
68
|
+
}
|
|
69
|
+
/** `<WORKSPACES_ROOT>/<namespace>/<project>` —— 一个项目/会话的代码工作区(cwd)。 */
|
|
70
|
+
export function workspaceDir(namespace, project) {
|
|
71
|
+
return resolve(workspacesRoot(), validateNamespace(namespace), validateSegment(project));
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=workspacePaths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspacePaths.js","sourceRoot":"","sources":["../../src/core/workspacePaths.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,wCAAwC;AACxC,MAAM,CAAC,MAAM,iBAAiB,GAAG,OAAO,CAAC;AAEzC;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAAU;IAC1C,MAAM,GAAG,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAC5C,IAAI,UAAU,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;IACjE,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC5D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;IAChE,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,EAAE,EAAE,CAAC,CAAC;QAC/E,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,MAAM,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAChC,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC;IACvF,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC;IAClF,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc;IAC5B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,EAAE,CAAC;IACxD,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC;IACrC,IAAI,CAAC;QACH,MAAM,SAAS,GAAI,aAAa,EAAyC,CAAC,mBAAmB,EAAE,IAAI,EAAE,CAAC;QACtG,IAAI,SAAS;YAAE,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,wBAAwB;IAC1B,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,EAAE,EAAE,kBAAkB,CAAC,CAAC;AAC7C,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,YAAY,CAAC,SAAiB,EAAE,OAAe;IAC7D,OAAO,OAAO,CAAC,cAAc,EAAE,EAAE,iBAAiB,CAAC,SAAS,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;AAC3F,CAAC"}
|
|
@@ -13,25 +13,10 @@
|
|
|
13
13
|
* @layer daemon
|
|
14
14
|
* @boundedContext session-management
|
|
15
15
|
*/
|
|
16
|
-
import type {
|
|
17
|
-
import type {
|
|
16
|
+
import type { EnsureAgentSessionOpts } from '../core/runtimeTypes.js';
|
|
17
|
+
import type { WorkerSessionRecord, WorkerRuntimeState, AgentTool } from '../core/runtimeTypes.js';
|
|
18
18
|
import type { DaemonEvent } from './sessionDaemon.js';
|
|
19
|
-
export interface EnsureSessionOpts {
|
|
20
|
-
mcpServers?: McpServerConfig[];
|
|
21
|
-
extraEnv?: Record<string, string>;
|
|
22
|
-
/**
|
|
23
|
-
* v0.56:durable resume —— 设了就让底层适配器 `loadSession(<sessionId>)` 重载完整 transcript。
|
|
24
|
-
* 仅当目标 slot 没有存活的 ACP 子进程时生效(存活会话直接复用,忽略此参数);
|
|
25
|
-
* 失败(transcript 丢/loadSession 报错)抛 `SESSION_LOST:...`,由调用方兜底。
|
|
26
|
-
*/
|
|
27
|
-
resumeSessionId?: string;
|
|
28
|
-
/**
|
|
29
|
-
* skills 上下文白名单(按名):只把这些 skill 的元数据注入 system prompt,隐藏其余 —— 省 token。
|
|
30
|
-
* 省略/undefined = 全量(CLI 默认);仅冷启动 newSession 生效。透传给 ACPWorkerRuntime.ensureSession。
|
|
31
|
-
*/
|
|
32
|
-
skills?: string[];
|
|
33
|
-
/** per-agent 人设(Output Style 名);透传给 daemon → runtime.ensureSession(chat/worker 都用)。 */
|
|
34
|
-
outputStyle?: string;
|
|
19
|
+
export interface EnsureSessionOpts extends EnsureAgentSessionOpts {
|
|
35
20
|
}
|
|
36
21
|
export interface StartRunOpts {
|
|
37
22
|
extraEnv?: Record<string, string>;
|
|
@@ -41,10 +26,11 @@ export declare class DaemonClient {
|
|
|
41
26
|
constructor(socketPath?: string);
|
|
42
27
|
/** Check if daemon is reachable. */
|
|
43
28
|
isRunning(): Promise<boolean>;
|
|
44
|
-
ensureSession(slot: string, tool?:
|
|
45
|
-
startRun(slot: string, prompt: string, tool?:
|
|
46
|
-
inspect(slot?: string): Promise<
|
|
29
|
+
ensureSession(slot: string, tool?: AgentTool, cwd?: string, opts?: EnsureSessionOpts): Promise<WorkerSessionRecord>;
|
|
30
|
+
startRun(slot: string, prompt: string, tool?: AgentTool, cwd?: string, opts?: StartRunOpts): Promise<WorkerSessionRecord>;
|
|
31
|
+
inspect(slot?: string): Promise<WorkerRuntimeState>;
|
|
47
32
|
stopSession(slot: string): Promise<void>;
|
|
33
|
+
deleteSession(slot: string, sessionId?: string): Promise<void>;
|
|
48
34
|
clearRun(slot: string): Promise<void>;
|
|
49
35
|
/** Cancel the in-flight run (prompt). Session stays alive for reuse. */
|
|
50
36
|
cancelRun(slot: string): Promise<void>;
|
|
@@ -60,9 +46,20 @@ export declare class DaemonClient {
|
|
|
60
46
|
* if (evt.event === 'complete') break;
|
|
61
47
|
* }
|
|
62
48
|
*/
|
|
63
|
-
subscribeRun(slot: string): AsyncIterable<DaemonEvent> & {
|
|
49
|
+
subscribeRun(slot: string, afterSequence?: number): AsyncIterable<DaemonEvent> & {
|
|
50
|
+
cancel: () => void;
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Cursor-aware subscription for daemon consumers that must survive a socket
|
|
54
|
+
* restart. OpenAI process events carry a durable sequence; reconnecting asks
|
|
55
|
+
* the daemon to replay only events after the last delivered sequence.
|
|
56
|
+
* Claude's legacy events have no sequence and keep their previous behavior.
|
|
57
|
+
*/
|
|
58
|
+
subscribeRunResilient(slot: string, afterSequence?: number): AsyncIterable<DaemonEvent> & {
|
|
64
59
|
cancel: () => void;
|
|
65
60
|
};
|
|
61
|
+
submitInteraction(slot: string, interactionId: string, answer: unknown, expectedRevision: number): Promise<void>;
|
|
62
|
+
cancelInteraction(slot: string, interactionId: string, expectedRevision: number): Promise<void>;
|
|
66
63
|
/** Send a single NDJSON request, wait for response. */
|
|
67
64
|
private request;
|
|
68
65
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemonClient.d.ts","sourceRoot":"","sources":["../../src/daemon/daemonClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"daemonClient.d.ts","sourceRoot":"","sources":["../../src/daemon/daemonClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,OAAO,KAAK,EACV,sBAAsB,EACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAClG,OAAO,KAAK,EAAE,WAAW,EAAiC,MAAM,oBAAoB,CAAC;AAErF,MAAM,WAAW,iBAAkB,SAAQ,sBAAsB;CAWhE;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAID,qBAAa,YAAY;IACX,OAAO,CAAC,UAAU;gBAAV,UAAU,SAAiB;IAE/C,oCAAoC;IAC9B,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAU7B,aAAa,CACjB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,SAAS,EAChB,GAAG,CAAC,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,iBAAiB,GACvB,OAAO,CAAC,mBAAmB,CAAC;IAIzB,QAAQ,CACZ,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,SAAS,EAChB,GAAG,CAAC,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,YAAY,GAClB,OAAO,CAAC,mBAAmB,CAAC;IAIzB,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAInD,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9D,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3C,wEAAwE;IAClE,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAItC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B;;;;;;;;;;OAUG;IACH,YAAY,CACV,IAAI,EAAE,MAAM,EACZ,aAAa,CAAC,EAAE,MAAM,GACrB,aAAa,CAAC,WAAW,CAAC,GAAG;QAAE,MAAM,EAAE,MAAM,IAAI,CAAA;KAAE;IAoFtD;;;;;OAKG;IACH,qBAAqB,CACnB,IAAI,EAAE,MAAM,EACZ,aAAa,SAAI,GAChB,aAAa,CAAC,WAAW,CAAC,GAAG;QAAE,MAAM,EAAE,MAAM,IAAI,CAAA;KAAE;IAkDhD,iBAAiB,CACrB,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,OAAO,EACf,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,IAAI,CAAC;IASV,iBAAiB,CACrB,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,EACrB,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,IAAI,CAAC;IAQhB,uDAAuD;IACvD,OAAO,CAAC,OAAO;CA6ChB;AAED,0CAA0C;AAC1C,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C"}
|
|
@@ -46,6 +46,9 @@ export class DaemonClient {
|
|
|
46
46
|
async stopSession(slot) {
|
|
47
47
|
await this.request('stopSession', { slot });
|
|
48
48
|
}
|
|
49
|
+
async deleteSession(slot, sessionId) {
|
|
50
|
+
await this.request('deleteSession', { slot, sessionId });
|
|
51
|
+
}
|
|
49
52
|
async clearRun(slot) {
|
|
50
53
|
await this.request('clearRun', { slot });
|
|
51
54
|
}
|
|
@@ -70,7 +73,7 @@ export class DaemonClient {
|
|
|
70
73
|
* if (evt.event === 'complete') break;
|
|
71
74
|
* }
|
|
72
75
|
*/
|
|
73
|
-
subscribeRun(slot) {
|
|
76
|
+
subscribeRun(slot, afterSequence) {
|
|
74
77
|
const socket = createConnection(this.socketPath);
|
|
75
78
|
const queue = [];
|
|
76
79
|
const waiters = [];
|
|
@@ -91,7 +94,13 @@ export class DaemonClient {
|
|
|
91
94
|
}
|
|
92
95
|
};
|
|
93
96
|
socket.on('connect', () => {
|
|
94
|
-
const req = {
|
|
97
|
+
const req = {
|
|
98
|
+
method: 'subscribeRun',
|
|
99
|
+
params: {
|
|
100
|
+
slot,
|
|
101
|
+
...(afterSequence === undefined ? {} : { afterSequence }),
|
|
102
|
+
},
|
|
103
|
+
};
|
|
95
104
|
socket.write(JSON.stringify(req) + '\n');
|
|
96
105
|
});
|
|
97
106
|
socket.on('data', (chunk) => {
|
|
@@ -150,6 +159,77 @@ export class DaemonClient {
|
|
|
150
159
|
cancel: close,
|
|
151
160
|
};
|
|
152
161
|
}
|
|
162
|
+
/**
|
|
163
|
+
* Cursor-aware subscription for daemon consumers that must survive a socket
|
|
164
|
+
* restart. OpenAI process events carry a durable sequence; reconnecting asks
|
|
165
|
+
* the daemon to replay only events after the last delivered sequence.
|
|
166
|
+
* Claude's legacy events have no sequence and keep their previous behavior.
|
|
167
|
+
*/
|
|
168
|
+
subscribeRunResilient(slot, afterSequence = 0) {
|
|
169
|
+
let cancelled = false;
|
|
170
|
+
let active = null;
|
|
171
|
+
const self = this;
|
|
172
|
+
const iterable = {
|
|
173
|
+
async *[Symbol.asyncIterator]() {
|
|
174
|
+
let cursor = afterSequence;
|
|
175
|
+
while (!cancelled) {
|
|
176
|
+
active = self.subscribeRun(slot, cursor);
|
|
177
|
+
let terminal = false;
|
|
178
|
+
try {
|
|
179
|
+
for await (const event of active) {
|
|
180
|
+
if (cancelled)
|
|
181
|
+
return;
|
|
182
|
+
if (typeof event.sequence === 'number' &&
|
|
183
|
+
event.sequence <= cursor) {
|
|
184
|
+
continue;
|
|
185
|
+
}
|
|
186
|
+
if (typeof event.sequence === 'number') {
|
|
187
|
+
cursor = event.sequence;
|
|
188
|
+
}
|
|
189
|
+
terminal = event.event === 'complete';
|
|
190
|
+
yield event;
|
|
191
|
+
if (terminal)
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
catch {
|
|
196
|
+
// A daemon/socket restart is recoverable. The next subscription
|
|
197
|
+
// resumes from the durable sequence cursor.
|
|
198
|
+
}
|
|
199
|
+
finally {
|
|
200
|
+
active?.cancel();
|
|
201
|
+
active = null;
|
|
202
|
+
}
|
|
203
|
+
if (cancelled || terminal)
|
|
204
|
+
return;
|
|
205
|
+
await new Promise((resolveDelay) => {
|
|
206
|
+
const timer = setTimeout(resolveDelay, 75);
|
|
207
|
+
timer.unref?.();
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
},
|
|
211
|
+
cancel: () => {
|
|
212
|
+
cancelled = true;
|
|
213
|
+
active?.cancel();
|
|
214
|
+
},
|
|
215
|
+
};
|
|
216
|
+
return iterable;
|
|
217
|
+
}
|
|
218
|
+
async submitInteraction(slot, interactionId, answer, expectedRevision) {
|
|
219
|
+
await this.request('submitInteraction', {
|
|
220
|
+
slot,
|
|
221
|
+
interactionId,
|
|
222
|
+
answer,
|
|
223
|
+
expectedRevision,
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
async cancelInteraction(slot, interactionId, expectedRevision) {
|
|
227
|
+
await this.request('cancelInteraction', {
|
|
228
|
+
slot,
|
|
229
|
+
interactionId,
|
|
230
|
+
expectedRevision,
|
|
231
|
+
});
|
|
232
|
+
}
|
|
153
233
|
/** Send a single NDJSON request, wait for response. */
|
|
154
234
|
request(method, params) {
|
|
155
235
|
return new Promise((resolve, reject) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemonClient.js","sourceRoot":"","sources":["../../src/daemon/daemonClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"daemonClient.js","sourceRoot":"","sources":["../../src/daemon/daemonClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
*/
|
|
16
16
|
export interface DaemonRequest {
|
|
17
17
|
id?: number;
|
|
18
|
-
method: 'ensureSession' | 'startRun' | 'inspect' | 'stopSession' | 'clearRun' | 'cancelRun' | 'shutdown' | 'subscribeRun';
|
|
18
|
+
method: 'ensureSession' | 'startRun' | 'inspect' | 'stopSession' | 'deleteSession' | 'clearRun' | 'cancelRun' | 'submitInteraction' | 'cancelInteraction' | 'shutdown' | 'subscribeRun';
|
|
19
19
|
params: Record<string, unknown>;
|
|
20
20
|
}
|
|
21
21
|
export interface DaemonResponse {
|
|
@@ -28,7 +28,15 @@ export interface DaemonResponse {
|
|
|
28
28
|
* Event frame sent on a subscribeRun socket. NDJSON stream until the run
|
|
29
29
|
* settles (complete/error) then daemon closes the socket.
|
|
30
30
|
*/
|
|
31
|
-
|
|
31
|
+
interface DaemonEventMetadata {
|
|
32
|
+
protocolVersion?: number;
|
|
33
|
+
eventId?: string;
|
|
34
|
+
runId?: string;
|
|
35
|
+
turnId?: string;
|
|
36
|
+
sequence?: number;
|
|
37
|
+
backend?: unknown;
|
|
38
|
+
}
|
|
39
|
+
type DaemonEventBody = {
|
|
32
40
|
event: 'session';
|
|
33
41
|
sessionId: string;
|
|
34
42
|
} | {
|
|
@@ -42,23 +50,63 @@ export type DaemonEvent = {
|
|
|
42
50
|
status: string;
|
|
43
51
|
input?: unknown;
|
|
44
52
|
locations?: unknown;
|
|
53
|
+
providerCallId?: string;
|
|
54
|
+
itemId?: string;
|
|
45
55
|
} | {
|
|
46
56
|
event: 'tool_update';
|
|
47
57
|
id: string;
|
|
48
58
|
status: string;
|
|
49
59
|
input?: unknown;
|
|
50
60
|
locations?: unknown;
|
|
61
|
+
output?: unknown;
|
|
62
|
+
error?: unknown;
|
|
51
63
|
} | {
|
|
52
64
|
event: 'usage';
|
|
53
65
|
used: number;
|
|
54
66
|
size: number;
|
|
67
|
+
inputTokens?: number;
|
|
68
|
+
outputTokens?: number;
|
|
69
|
+
reasoningTokens?: number;
|
|
70
|
+
cachedInputTokens?: number;
|
|
71
|
+
costUsd?: number;
|
|
72
|
+
final?: boolean;
|
|
73
|
+
} | {
|
|
74
|
+
event: 'capabilities';
|
|
75
|
+
tools: string[];
|
|
76
|
+
mcpServers: string[];
|
|
77
|
+
features: string[];
|
|
78
|
+
sandboxProvider: string;
|
|
79
|
+
} | {
|
|
80
|
+
event: 'interaction';
|
|
81
|
+
interactionId: string;
|
|
82
|
+
kind: string;
|
|
83
|
+
title: string;
|
|
84
|
+
schema: unknown;
|
|
85
|
+
toolCallId?: string;
|
|
86
|
+
revision?: number;
|
|
87
|
+
} | {
|
|
88
|
+
event: 'warning';
|
|
89
|
+
code: string;
|
|
90
|
+
message: string;
|
|
91
|
+
recoverable: boolean;
|
|
92
|
+
} | {
|
|
93
|
+
event: 'compaction';
|
|
94
|
+
strategy: string;
|
|
95
|
+
beforeItems?: number;
|
|
96
|
+
afterItems?: number;
|
|
97
|
+
} | {
|
|
98
|
+
event: 'agent_changed';
|
|
99
|
+
agentName: string;
|
|
100
|
+
previousAgentName?: string;
|
|
55
101
|
} | {
|
|
56
102
|
event: 'complete';
|
|
57
103
|
stopReason: string;
|
|
104
|
+
error?: string;
|
|
58
105
|
} | {
|
|
59
106
|
event: 'error';
|
|
60
107
|
error: string;
|
|
61
108
|
};
|
|
109
|
+
export type DaemonEvent = DaemonEventBody & DaemonEventMetadata;
|
|
62
110
|
export declare class SessionDaemon {
|
|
63
111
|
private socketPath;
|
|
64
112
|
private pidFile;
|
|
@@ -85,11 +133,7 @@ export declare class SessionDaemon {
|
|
|
85
133
|
*/
|
|
86
134
|
private handleSubscribeRun;
|
|
87
135
|
private dispatch;
|
|
88
|
-
/**
|
|
89
|
-
* chat 会话的 currentRun 是否"假活":claude transcript(jsonl)距今静默超 STUCK_RUN_MS。
|
|
90
|
-
* claude 按消息增量写 jsonl,一轮真在跑时 mtime 会持续更新;长时间不动 = 完成信号丢了/卡死。
|
|
91
|
-
* 无 cwd/sessionId/jsonl 或 stat 失败 → 保守返 false(不杀,宁可漏收别误杀)。
|
|
92
|
-
*/
|
|
136
|
+
/** Backend-neutral liveness: normalized output timestamps are authoritative. */
|
|
93
137
|
private isChatRunStale;
|
|
94
138
|
/** 删 state.json 里超期的死记录(offline+无run+超 SESSION_GC_MS),让登记表收敛。best-effort。 */
|
|
95
139
|
private gcDeadSessions;
|
|
@@ -100,4 +144,5 @@ export declare class SessionDaemon {
|
|
|
100
144
|
private send;
|
|
101
145
|
private log;
|
|
102
146
|
}
|
|
147
|
+
export {};
|
|
103
148
|
//# sourceMappingURL=sessionDaemon.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessionDaemon.d.ts","sourceRoot":"","sources":["../../src/daemon/sessionDaemon.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"sessionDaemon.d.ts","sourceRoot":"","sources":["../../src/daemon/sessionDaemon.ts"],"names":[],"mappings":"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"}
|