@coralai/sps-cli 0.66.8 → 0.67.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 +35 -0
- package/assembly/art.yml +6 -0
- package/assembly/base.yml +72 -0
- package/assembly/cli.yml +4 -0
- package/assembly/console.yml +4 -0
- package/assembly/daemon.yml +4 -0
- package/dist/commands/agentCommand.d.ts +22 -1
- package/dist/commands/agentCommand.d.ts.map +1 -1
- package/dist/commands/agentCommand.js +14 -15
- package/dist/commands/agentCommand.js.map +1 -1
- package/dist/commands/cardAdd.d.ts +14 -1
- package/dist/commands/cardAdd.d.ts.map +1 -1
- package/dist/commands/cardAdd.js +5 -13
- package/dist/commands/cardAdd.js.map +1 -1
- package/dist/commands/cardInsert.d.ts +19 -1
- package/dist/commands/cardInsert.d.ts.map +1 -1
- package/dist/commands/cardInsert.js +5 -18
- package/dist/commands/cardInsert.js.map +1 -1
- package/dist/commands/consoleCommand.d.ts +20 -1
- package/dist/commands/consoleCommand.d.ts.map +1 -1
- package/dist/commands/consoleCommand.js +5 -2
- package/dist/commands/consoleCommand.js.map +1 -1
- package/dist/commands/imCommand.d.ts +9 -1
- package/dist/commands/imCommand.d.ts.map +1 -1
- package/dist/commands/imCommand.js +2 -9
- package/dist/commands/imCommand.js.map +1 -1
- package/dist/commands/memoryCommand.d.ts +11 -1
- package/dist/commands/memoryCommand.d.ts.map +1 -1
- package/dist/commands/memoryCommand.js +12 -18
- package/dist/commands/memoryCommand.js.map +1 -1
- package/dist/commands/monitorTick.d.ts +24 -1
- package/dist/commands/monitorTick.d.ts.map +1 -1
- package/dist/commands/monitorTick.js +8 -4
- package/dist/commands/monitorTick.js.map +1 -1
- package/dist/commands/openaiAgent.d.ts +2 -1
- package/dist/commands/openaiAgent.d.ts.map +1 -1
- package/dist/commands/openaiAgent.js +7 -3
- package/dist/commands/openaiAgent.js.map +1 -1
- package/dist/commands/pipelineTick.d.ts +4 -1
- package/dist/commands/pipelineTick.d.ts.map +1 -1
- package/dist/commands/pipelineTick.js +11 -7
- package/dist/commands/pipelineTick.js.map +1 -1
- package/dist/commands/pluginCommand.d.ts +2 -0
- package/dist/commands/pluginCommand.d.ts.map +1 -0
- package/dist/commands/pluginCommand.js +160 -0
- package/dist/commands/pluginCommand.js.map +1 -0
- package/dist/commands/qaTick.d.ts +4 -1
- package/dist/commands/qaTick.d.ts.map +1 -1
- package/dist/commands/qaTick.js +11 -7
- package/dist/commands/qaTick.js.map +1 -1
- package/dist/commands/schedulerTick.d.ts +24 -1
- package/dist/commands/schedulerTick.d.ts.map +1 -1
- package/dist/commands/schedulerTick.js +5 -23
- package/dist/commands/schedulerTick.js.map +1 -1
- package/dist/commands/tick.d.ts +25 -2
- package/dist/commands/tick.d.ts.map +1 -1
- package/dist/commands/tick.js +39 -16
- package/dist/commands/tick.js.map +1 -1
- package/dist/commands/workerLaunch.d.ts +4 -1
- package/dist/commands/workerLaunch.d.ts.map +1 -1
- package/dist/commands/workerLaunch.js +11 -7
- package/dist/commands/workerLaunch.js.map +1 -1
- package/dist/console/index.d.ts +21 -0
- package/dist/console/index.d.ts.map +1 -1
- package/dist/console/index.js +8 -4
- package/dist/console/index.js.map +1 -1
- package/dist/console/routes/capabilities.d.ts +3 -0
- package/dist/console/routes/capabilities.d.ts.map +1 -1
- package/dist/console/routes/capabilities.js +2 -21
- package/dist/console/routes/capabilities.js.map +1 -1
- package/dist/console/routes/cards.d.ts +19 -0
- package/dist/console/routes/cards.d.ts.map +1 -1
- package/dist/console/routes/cards.js +1 -1
- package/dist/console/routes/cards.js.map +1 -1
- package/dist/console/routes/mcpTools.d.ts +2 -1
- package/dist/console/routes/mcpTools.d.ts.map +1 -1
- package/dist/console/routes/mcpTools.js +3 -8
- package/dist/console/routes/mcpTools.js.map +1 -1
- package/dist/console/routes/plugins.d.ts +20 -0
- package/dist/console/routes/plugins.d.ts.map +1 -0
- package/dist/console/routes/plugins.js +185 -0
- package/dist/console/routes/plugins.js.map +1 -0
- package/dist/console/routes/tts.d.ts +2 -1
- package/dist/console/routes/tts.d.ts.map +1 -1
- package/dist/console/routes/tts.js +2 -3
- package/dist/console/routes/tts.js.map +1 -1
- package/dist/console-assets/assets/{ShowcasePage-C8tqVK7m.js → ShowcasePage-3ekOTV_g.js} +1 -1
- package/dist/console-assets/assets/{index-DCKXZKta.css → index-Dd7MTFgX.css} +1 -1
- package/dist/console-assets/assets/{index-DAvJ1-Qg.js → index-o3svZ9mC.js} +223 -213
- package/dist/console-assets/index.html +2 -2
- package/dist/core/agents/resolveBackend.d.ts +0 -5
- package/dist/core/agents/resolveBackend.d.ts.map +1 -1
- package/dist/core/agents/resolveBackend.js +6 -52
- package/dist/core/agents/resolveBackend.js.map +1 -1
- package/dist/core/art/artRunService.d.ts +13 -1
- package/dist/core/art/artRunService.d.ts.map +1 -1
- package/dist/core/art/artRunService.js +1 -0
- package/dist/core/art/artRunService.js.map +1 -1
- package/dist/core/mcpToolCatalog.d.ts +14 -1
- package/dist/core/mcpToolCatalog.d.ts.map +1 -1
- package/dist/core/mcpToolCatalog.js +7 -11
- package/dist/core/mcpToolCatalog.js.map +1 -1
- package/dist/core/tools/ToolCardExecutor.d.ts +12 -2
- package/dist/core/tools/ToolCardExecutor.d.ts.map +1 -1
- package/dist/core/tools/ToolCardExecutor.js.map +1 -1
- package/dist/daemon/daemonClient.d.ts +8 -2
- package/dist/daemon/daemonClient.d.ts.map +1 -1
- package/dist/daemon/daemonClient.js +9 -0
- package/dist/daemon/daemonClient.js.map +1 -1
- package/dist/daemon/sessionDaemon.d.ts +7 -2
- package/dist/daemon/sessionDaemon.d.ts.map +1 -1
- package/dist/daemon/sessionDaemon.js +49 -10
- package/dist/daemon/sessionDaemon.js.map +1 -1
- package/dist/engines/StageEngine.d.ts +6 -1
- package/dist/engines/StageEngine.d.ts.map +1 -1
- package/dist/engines/StageEngine.js +10 -7
- package/dist/engines/StageEngine.js.map +1 -1
- package/dist/im/IMGatewayManager.d.ts +12 -0
- package/dist/im/IMGatewayManager.d.ts.map +1 -1
- package/dist/im/IMGatewayManager.js +10 -18
- package/dist/im/IMGatewayManager.js.map +1 -1
- package/dist/main.js +67 -21
- package/dist/main.js.map +1 -1
- package/dist/manager/makeBackendFactory.d.ts +12 -0
- package/dist/manager/makeBackendFactory.d.ts.map +1 -1
- package/dist/manager/makeBackendFactory.js +3 -2
- package/dist/manager/makeBackendFactory.js.map +1 -1
- package/dist/manager/worker-manager-impl.d.ts +19 -0
- package/dist/manager/worker-manager-impl.d.ts.map +1 -1
- package/dist/manager/worker-manager-impl.js +15 -15
- package/dist/manager/worker-manager-impl.js.map +1 -1
- package/dist/openai-agent/memory/v2Bridge.d.ts +28 -2
- package/dist/openai-agent/memory/v2Bridge.d.ts.map +1 -1
- package/dist/openai-agent/memory/v2Bridge.js +4 -20
- package/dist/openai-agent/memory/v2Bridge.js.map +1 -1
- package/dist/openai-agent/runWorker.d.ts +8 -6
- package/dist/openai-agent/runWorker.d.ts.map +1 -1
- package/dist/openai-agent/runWorker.js +5 -4
- package/dist/openai-agent/runWorker.js.map +1 -1
- package/dist/openai-agent/sandbox/execution.d.ts +10 -2
- package/dist/openai-agent/sandbox/execution.d.ts.map +1 -1
- package/dist/openai-agent/sandbox/execution.js +9 -6
- package/dist/openai-agent/sandbox/execution.js.map +1 -1
- package/dist/plugin/assembly.d.ts +37 -0
- package/dist/plugin/assembly.d.ts.map +1 -0
- package/dist/plugin/assembly.js +95 -0
- package/dist/plugin/assembly.js.map +1 -0
- package/dist/plugin/context.d.ts +101 -0
- package/dist/plugin/context.d.ts.map +1 -0
- package/dist/plugin/context.js +187 -0
- package/dist/plugin/context.js.map +1 -0
- package/dist/plugin/hot.d.ts +34 -0
- package/dist/plugin/hot.d.ts.map +1 -0
- package/dist/plugin/hot.js +62 -0
- package/dist/plugin/hot.js.map +1 -0
- package/dist/plugin/layers.d.ts +40 -0
- package/dist/plugin/layers.d.ts.map +1 -0
- package/dist/plugin/layers.js +101 -0
- package/dist/plugin/layers.js.map +1 -0
- package/dist/plugin/manager.d.ts +80 -0
- package/dist/plugin/manager.d.ts.map +1 -0
- package/dist/plugin/manager.js +202 -0
- package/dist/plugin/manager.js.map +1 -0
- package/dist/plugin/run.d.ts +53 -0
- package/dist/plugin/run.d.ts.map +1 -0
- package/dist/plugin/run.js +72 -0
- package/dist/plugin/run.js.map +1 -0
- package/dist/providers/art/artGen.d.ts +18 -3
- package/dist/providers/art/artGen.d.ts.map +1 -1
- package/dist/providers/art/artGen.js +15 -15
- package/dist/providers/art/artGen.js.map +1 -1
- package/dist/providers/art/artRunChild.d.ts +2 -1
- package/dist/providers/art/artRunChild.d.ts.map +1 -1
- package/dist/providers/art/artRunChild.js +15 -8
- package/dist/providers/art/artRunChild.js.map +1 -1
- package/dist/providers/llm/chatTools.d.ts +10 -1
- package/dist/providers/llm/chatTools.d.ts.map +1 -1
- package/dist/providers/llm/chatTools.js +4 -4
- package/dist/providers/llm/chatTools.js.map +1 -1
- package/dist/providers/mcp/spsMcpServer.d.ts +3 -0
- package/dist/providers/mcp/spsMcpServer.d.ts.map +1 -1
- package/dist/providers/mcp/spsMcpServer.js +25 -31
- package/dist/providers/mcp/spsMcpServer.js.map +1 -1
- package/dist/providers/mcp/spsMcpStdio.js +12 -1
- package/dist/providers/mcp/spsMcpStdio.js.map +1 -1
- package/dist/providers/media/generateAsset.d.ts +11 -0
- package/dist/providers/media/generateAsset.d.ts.map +1 -1
- package/dist/providers/media/generateAsset.js +2 -3
- package/dist/providers/media/generateAsset.js.map +1 -1
- package/dist/providers/registry.d.ts +0 -4
- package/dist/providers/registry.d.ts.map +1 -1
- package/dist/providers/registry.js +1 -14
- package/dist/providers/registry.js.map +1 -1
- package/dist/seams/agents/index.d.ts +49 -0
- package/dist/seams/agents/index.d.ts.map +1 -0
- package/dist/seams/agents/index.js +54 -0
- package/dist/seams/agents/index.js.map +1 -0
- package/dist/seams/agents-builtin/index.d.ts +19 -0
- package/dist/seams/agents-builtin/index.d.ts.map +1 -0
- package/dist/seams/agents-builtin/index.js +69 -0
- package/dist/seams/agents-builtin/index.js.map +1 -0
- package/dist/seams/capabilities/index.d.ts +39 -0
- package/dist/seams/capabilities/index.d.ts.map +1 -0
- package/dist/seams/capabilities/index.js +47 -0
- package/dist/seams/capabilities/index.js.map +1 -0
- package/dist/seams/capabilities-art/index.d.ts +14 -0
- package/dist/seams/capabilities-art/index.d.ts.map +1 -0
- package/dist/seams/capabilities-art/index.js +9 -0
- package/dist/seams/capabilities-art/index.js.map +1 -0
- package/dist/seams/im/index.d.ts +28 -0
- package/dist/seams/im/index.d.ts.map +1 -0
- package/dist/seams/im/index.js +36 -0
- package/dist/seams/im/index.js.map +1 -0
- package/dist/seams/im-builtin/index.d.ts +13 -0
- package/dist/seams/im-builtin/index.d.ts.map +1 -0
- package/dist/seams/im-builtin/index.js +25 -0
- package/dist/seams/im-builtin/index.js.map +1 -0
- package/dist/seams/media/index.d.ts +30 -0
- package/dist/seams/media/index.d.ts.map +1 -0
- package/dist/seams/media/index.js +38 -0
- package/dist/seams/media/index.js.map +1 -0
- package/dist/seams/media-builtin/index.d.ts +13 -0
- package/dist/seams/media-builtin/index.d.ts.map +1 -0
- package/dist/seams/media-builtin/index.js +10 -0
- package/dist/seams/media-builtin/index.js.map +1 -0
- package/dist/seams/memory/index.d.ts +58 -0
- package/dist/seams/memory/index.d.ts.map +1 -0
- package/dist/seams/memory/index.js +28 -0
- package/dist/seams/memory/index.js.map +1 -0
- package/dist/seams/memory-local/index.d.ts +31 -0
- package/dist/seams/memory-local/index.d.ts.map +1 -0
- package/dist/seams/memory-local/index.js +55 -0
- package/dist/seams/memory-local/index.js.map +1 -0
- package/dist/seams/notifier/index.d.ts +37 -0
- package/dist/seams/notifier/index.d.ts.map +1 -0
- package/dist/seams/notifier/index.js +30 -0
- package/dist/seams/notifier/index.js.map +1 -0
- package/dist/seams/notifier-matrix/index.d.ts +17 -0
- package/dist/seams/notifier-matrix/index.d.ts.map +1 -0
- package/dist/seams/notifier-matrix/index.js +8 -0
- package/dist/seams/notifier-matrix/index.js.map +1 -0
- package/dist/seams/notifier-none/index.d.ts +18 -0
- package/dist/seams/notifier-none/index.d.ts.map +1 -0
- package/dist/seams/notifier-none/index.js +14 -0
- package/dist/seams/notifier-none/index.js.map +1 -0
- package/dist/seams/repo/index.d.ts +38 -0
- package/dist/seams/repo/index.d.ts.map +1 -0
- package/dist/seams/repo/index.js +43 -0
- package/dist/seams/repo/index.js.map +1 -0
- package/dist/seams/repo-builtin/index.d.ts +14 -0
- package/dist/seams/repo-builtin/index.d.ts.map +1 -0
- package/dist/seams/repo-builtin/index.js +14 -0
- package/dist/seams/repo-builtin/index.js.map +1 -0
- package/dist/seams/tools/index.d.ts +83 -0
- package/dist/seams/tools/index.d.ts.map +1 -0
- package/dist/seams/tools/index.js +67 -0
- package/dist/seams/tools/index.js.map +1 -0
- package/dist/services/MemoryService.d.ts +12 -0
- package/dist/services/MemoryService.d.ts.map +1 -1
- package/dist/services/MemoryService.js +14 -18
- package/dist/services/MemoryService.js.map +1 -1
- package/dist/services/container.d.ts +20 -1
- package/dist/services/container.d.ts.map +1 -1
- package/dist/services/container.js +10 -3
- package/dist/services/container.js.map +1 -1
- package/dist/services/executors.d.ts +4 -0
- package/dist/services/executors.d.ts.map +1 -1
- package/dist/services/executors.js +27 -5
- package/dist/services/executors.js.map +1 -1
- package/dist/services/promptPreview.d.ts +14 -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/package.json +16 -3
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
9
9
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
10
10
|
<link href="https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">
|
|
11
|
-
<script type="module" crossorigin src="/assets/index-
|
|
12
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
11
|
+
<script type="module" crossorigin src="/assets/index-o3svZ9mC.js"></script>
|
|
12
|
+
<link rel="stylesheet" crossorigin href="/assets/index-Dd7MTFgX.css">
|
|
13
13
|
</head>
|
|
14
14
|
<body>
|
|
15
15
|
<div id="root"></div>
|
|
@@ -7,7 +7,6 @@
|
|
|
7
7
|
* @boundedContext agents
|
|
8
8
|
*/
|
|
9
9
|
import type { Model } from '@openai/agents';
|
|
10
|
-
import type { AgentBackend } from './AgentBackend.js';
|
|
11
10
|
export interface BackendCtx {
|
|
12
11
|
cwd: string;
|
|
13
12
|
project: string;
|
|
@@ -23,8 +22,4 @@ export interface BackendCtx {
|
|
|
23
22
|
makeModel: () => Model;
|
|
24
23
|
sessionFile: string;
|
|
25
24
|
}
|
|
26
|
-
export declare function resolveBackend(cfg: {
|
|
27
|
-
agent: 'claude' | 'openai';
|
|
28
|
-
mode: 'sdk' | 'daemon';
|
|
29
|
-
}, ctx: BackendCtx): AgentBackend;
|
|
30
25
|
//# sourceMappingURL=resolveBackend.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveBackend.d.ts","sourceRoot":"","sources":["../../../src/core/agents/resolveBackend.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"resolveBackend.d.ts","sourceRoot":"","sources":["../../../src/core/agents/resolveBackend.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAM5C,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAElB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,WAAW,GAAG,kBAAkB,GAAG,OAAO,CAAC;IAC/D,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,SAAS,EAAE,MAAM,KAAK,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB"}
|
|
@@ -1,53 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
case 'claude-daemon':
|
|
8
|
-
// 人才市场:委托共享 daemon(与 chat 同宿主,统一并发/监控);daemon 引擎见 createSessionRuntime。
|
|
9
|
-
return new DaemonBackend({
|
|
10
|
-
backend: 'claude',
|
|
11
|
-
sessionName: ctx.sessionName,
|
|
12
|
-
cwd: ctx.cwd,
|
|
13
|
-
project: ctx.project,
|
|
14
|
-
resumeSessionId: ctx.resumeSessionId,
|
|
15
|
-
extraEnv: ctx.extraEnv,
|
|
16
|
-
});
|
|
17
|
-
case 'openai-daemon': {
|
|
18
|
-
const providerId = ctx.providerId ?? 'official';
|
|
19
|
-
const transport = ctx.providerTransport ??
|
|
20
|
-
(providerId === 'codex'
|
|
21
|
-
? 'codex'
|
|
22
|
-
: providerId === 'official'
|
|
23
|
-
? 'responses'
|
|
24
|
-
: 'chat_completions');
|
|
25
|
-
return new DaemonBackend({
|
|
26
|
-
backend: 'openai',
|
|
27
|
-
sessionName: ctx.sessionName,
|
|
28
|
-
cwd: ctx.cwd,
|
|
29
|
-
project: ctx.project,
|
|
30
|
-
resumeSessionId: ctx.resumeSessionId,
|
|
31
|
-
extraEnv: ctx.extraEnv,
|
|
32
|
-
provider: {
|
|
33
|
-
providerId,
|
|
34
|
-
model: ctx.modelName,
|
|
35
|
-
transport,
|
|
36
|
-
...(ctx.providerBaseUrl ? { baseUrl: ctx.providerBaseUrl } : {}),
|
|
37
|
-
},
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
case 'openai-sdk':
|
|
41
|
-
return new OpenAiAgentBackend({
|
|
42
|
-
model: ctx.makeModel(),
|
|
43
|
-
cwd: ctx.cwd,
|
|
44
|
-
project: ctx.project,
|
|
45
|
-
sessionFile: ctx.sessionFile,
|
|
46
|
-
});
|
|
47
|
-
case 'claude-sdk':
|
|
48
|
-
return new ClaudeSdkBackend({ model: ctx.modelName, cwd: ctx.cwd, project: ctx.project });
|
|
49
|
-
default:
|
|
50
|
-
throw new Error(`未支持的后端组合: ${key}`);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
1
|
+
export {};
|
|
2
|
+
// 🔴 `resolveBackend` 的 switch 已删(0.66.x 插件化):
|
|
3
|
+
// 后端选择移到 `sps.agents` 注册表,构造逻辑搬进 `seams/agents-builtin`。
|
|
4
|
+
// 留 switch 的问题不是写法,是**加一个后端必须改这个文件** ——
|
|
5
|
+
// 而"换 agent 后端上层不改"是仓库北极星那句话。
|
|
6
|
+
// 本文件现在只承载 `BackendCtx` 这个契约类型。
|
|
53
7
|
//# sourceMappingURL=resolveBackend.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveBackend.js","sourceRoot":"","sources":["../../../src/core/agents/resolveBackend.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resolveBackend.js","sourceRoot":"","sources":["../../../src/core/agents/resolveBackend.ts"],"names":[],"mappings":";AAgCA,+CAA+C;AAC/C,4DAA4D;AAC5D,2CAA2C;AAC3C,iCAAiC;AACjC,mCAAmC"}
|
|
@@ -76,7 +76,18 @@ export type StartResult = {
|
|
|
76
76
|
export type ArtRunLauncher = (task: ArtChildTask) => Promise<ArtChildResult>;
|
|
77
77
|
export interface ArtRunServiceOpts {
|
|
78
78
|
launch: ArtRunLauncher;
|
|
79
|
-
|
|
79
|
+
/**
|
|
80
|
+
* 覆盖并发上限(用于测试与特殊部署)。
|
|
81
|
+
*
|
|
82
|
+
* 🔴 **不能写成 `Partial<typeof ART_RUN_LIMITS>`**:那个常量是 `as const`,
|
|
83
|
+
* 字段类型是**字面量**(maxQueued 是 `8` 而不是 `number`),
|
|
84
|
+
* 于是"把上限改成 2"这件事在类型上根本写不出来 ——
|
|
85
|
+
* 一个**声称可覆盖、实际只允许填回原值**的选项,比没有这个选项更坏。
|
|
86
|
+
* (src 下的测试从不进类型检查,所以这个洞一直没暴露。)
|
|
87
|
+
*/
|
|
88
|
+
limits?: {
|
|
89
|
+
-readonly [K in keyof typeof ART_RUN_LIMITS]?: number;
|
|
90
|
+
};
|
|
80
91
|
now?: () => Date;
|
|
81
92
|
newRunId?: () => string;
|
|
82
93
|
}
|
|
@@ -84,6 +95,7 @@ export declare class ArtRunService {
|
|
|
84
95
|
private readonly runs;
|
|
85
96
|
private readonly queue;
|
|
86
97
|
private readonly launch;
|
|
98
|
+
/** 生效的上限。**不是 `typeof ART_RUN_LIMITS`** —— 那是字面量类型,覆盖后就装不回去了。 */
|
|
87
99
|
private readonly limits;
|
|
88
100
|
private readonly now;
|
|
89
101
|
private readonly newRunId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artRunService.d.ts","sourceRoot":"","sources":["../../../src/core/art/artRunService.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAEnE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,
|
|
1
|
+
{"version":3,"file":"artRunService.d.ts","sourceRoot":"","sources":["../../../src/core/art/artRunService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artRunService.js","sourceRoot":"","sources":["../../../src/core/art/artRunService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,
|
|
1
|
+
{"version":3,"file":"artRunService.js","sourceRoot":"","sources":["../../../src/core/art/artRunService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module core/mcpToolCatalog
|
|
3
|
+
* @description sps MCP 工具目录(控制台"插件/工具"页的数据源)。
|
|
4
|
+
*
|
|
5
|
+
* 🔴 零漂:不手抄清单 —— 起一个 in-memory MCP client 连上 createSpsMcpServer,按协议
|
|
6
|
+
* listTools 取真实注册结果(名字/描述/入参 schema)。新增工具自动出现在页面上。
|
|
7
|
+
* 分组只是展示用的归类表;新增工具若没归类会落到 'other',mcpToolCatalog.test 会失败提醒。
|
|
8
|
+
*/
|
|
9
|
+
import type { Context as PluginContext } from '@deepseek-ai/cordis';
|
|
1
10
|
export type McpToolGroup = 'skill' | 'asset' | 'project' | 'interaction' | 'memory' | 'agent' | 'other';
|
|
2
11
|
export interface McpToolParam {
|
|
3
12
|
name: string;
|
|
@@ -20,5 +29,9 @@ export interface McpToolInfo {
|
|
|
20
29
|
viaMcpOnOpenai: boolean;
|
|
21
30
|
}
|
|
22
31
|
/** 按 MCP 协议实际问 server 要工具清单(不读源码、不手抄)。 */
|
|
23
|
-
|
|
32
|
+
/**
|
|
33
|
+
* @param app 插件装配上下文。**必填** —— 本函数只枚举工具定义、从不执行它们,
|
|
34
|
+
* 但 MCP server 的构造需要它。塞个假的等于埋一个"只在执行时才炸"的雷。
|
|
35
|
+
*/
|
|
36
|
+
export declare function listSpsMcpTools(app: PluginContext, cwd?: string): Promise<McpToolInfo[]>;
|
|
24
37
|
//# sourceMappingURL=mcpToolCatalog.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcpToolCatalog.d.ts","sourceRoot":"","sources":["../../src/core/mcpToolCatalog.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mcpToolCatalog.d.ts","sourceRoot":"","sources":["../../src/core/mcpToolCatalog.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAMpE,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,aAAa,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC;AAExG,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB;;;OAGG;IACH,cAAc,EAAE,OAAO,CAAC;CACzB;AA8CD,0CAA0C;AAC1C;;;GAGG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,aAAa,EAClB,GAAG,GAAE,MAAsB,GAC1B,OAAO,CAAC,WAAW,EAAE,CAAC,CAsBxB"}
|
|
@@ -1,15 +1,7 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module core/mcpToolCatalog
|
|
3
|
-
* @description sps MCP 工具目录(控制台"插件/工具"页的数据源)。
|
|
4
|
-
*
|
|
5
|
-
* 🔴 零漂:不手抄清单 —— 起一个 in-memory MCP client 连上 createSpsMcpServer,按协议
|
|
6
|
-
* listTools 取真实注册结果(名字/描述/入参 schema)。新增工具自动出现在页面上。
|
|
7
|
-
* 分组只是展示用的归类表;新增工具若没归类会落到 'other',mcpToolCatalog.test 会失败提醒。
|
|
8
|
-
*/
|
|
9
1
|
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
|
|
10
2
|
import { InMemoryTransport } from '@modelcontextprotocol/sdk/inMemory.js';
|
|
11
|
-
import { createSpsMcpServer } from '../providers/mcp/spsMcpServer.js';
|
|
12
3
|
import { INTERACTION_TOOL_NAMES } from '../providers/mcp/interactionTools.js';
|
|
4
|
+
import { createSpsMcpServer } from '../providers/mcp/spsMcpServer.js';
|
|
13
5
|
const GROUPS = {
|
|
14
6
|
list_skills: 'skill',
|
|
15
7
|
search_skills: 'skill',
|
|
@@ -49,8 +41,12 @@ function readParams(schema) {
|
|
|
49
41
|
}));
|
|
50
42
|
}
|
|
51
43
|
/** 按 MCP 协议实际问 server 要工具清单(不读源码、不手抄)。 */
|
|
52
|
-
|
|
53
|
-
|
|
44
|
+
/**
|
|
45
|
+
* @param app 插件装配上下文。**必填** —— 本函数只枚举工具定义、从不执行它们,
|
|
46
|
+
* 但 MCP server 的构造需要它。塞个假的等于埋一个"只在执行时才炸"的雷。
|
|
47
|
+
*/
|
|
48
|
+
export async function listSpsMcpTools(app, cwd = process.cwd()) {
|
|
49
|
+
const server = createSpsMcpServer({ app, cwd });
|
|
54
50
|
const [clientTransport, serverTransport] = InMemoryTransport.createLinkedPair();
|
|
55
51
|
const client = new Client({ name: 'sps-console', version: '1' });
|
|
56
52
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcpToolCatalog.js","sourceRoot":"","sources":["../../src/core/mcpToolCatalog.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mcpToolCatalog.js","sourceRoot":"","sources":["../../src/core/mcpToolCatalog.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AA0BtE,MAAM,MAAM,GAAiC;IAC3C,WAAW,EAAE,OAAO;IACpB,aAAa,EAAE,OAAO;IACtB,WAAW,EAAE,OAAO;IACpB,YAAY,EAAE,OAAO;IACrB,UAAU,EAAE,OAAO;IACnB,YAAY,EAAE,OAAO;IACrB,cAAc,EAAE,OAAO;IACvB,QAAQ,EAAE,SAAS;IACnB,cAAc,EAAE,SAAS;IACzB,eAAe,EAAE,SAAS;IAC1B,cAAc,EAAE,SAAS;IACzB,eAAe,EAAE,aAAa;IAC9B,YAAY,EAAE,aAAa;IAC3B,YAAY,EAAE,aAAa;IAC3B,aAAa,EAAE,QAAQ;IACvB,WAAW,EAAE,QAAQ;IACrB,WAAW,EAAE,QAAQ;IACrB,aAAa,EAAE,QAAQ;IACvB,aAAa,EAAE,QAAQ;IACvB,cAAc,EAAE,QAAQ;IACxB,YAAY,EAAE,QAAQ;IACtB,gBAAgB,EAAE,QAAQ;IAC1B,eAAe,EAAE,QAAQ;CAC1B,CAAC;AAOF,SAAS,UAAU,CAAC,MAAe;IACjC,MAAM,CAAC,GAAG,MAAoC,CAAC;IAC/C,MAAM,KAAK,GAAG,CAAC,EAAE,UAAU,CAAC;IAC5B,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,QAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACrF,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;QACjD,IAAI;QACJ,IAAI,EAAE,OAAO,GAAG,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;QACtD,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;QAC5B,GAAG,CAAC,OAAO,GAAG,EAAE,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAClF,CAAC,CAAC,CAAC;AACN,CAAC;AAED,0CAA0C;AAC1C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,GAAkB,EAClB,MAAc,OAAO,CAAC,GAAG,EAAE;IAE3B,MAAM,MAAM,GAAG,kBAAkB,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAChD,MAAM,CAAC,eAAe,EAAE,eAAe,CAAC,GAAG,iBAAiB,CAAC,gBAAgB,EAAE,CAAC;IAChF,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;IACjE,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACtC,MAAM,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACtC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;QAC3C,OAAO,KAAK;aACT,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACd,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,aAAa,EAAE,aAAa,IAAI,CAAC,IAAI,EAAE;YACvC,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE;YACnC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO;YACnC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC;YACpC,cAAc,EAAE,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;SACvD,CAAC,CAAC;aACF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAClD,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACrC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACvC,CAAC;AACH,CAAC"}
|
|
@@ -15,7 +15,17 @@
|
|
|
15
15
|
* ⇒ 遇到 `mode:'async'` **响亮报错**,不静默按 sync 跑。
|
|
16
16
|
*/
|
|
17
17
|
import type { Card } from '../../shared/types.js';
|
|
18
|
-
import type {
|
|
18
|
+
import type { Capability, CapabilityContext } from './registry.js';
|
|
19
|
+
/**
|
|
20
|
+
* 本函数**只需要按 id 取一个能力**。
|
|
21
|
+
*
|
|
22
|
+
* 🔴 收窄到这一格是有意的:要求整个 `CapabilityRegistry` 会把"谁能提供能力"
|
|
23
|
+
* 绑死在那一个类上 —— 而插件化之后提供方是 `sps.capabilities` seam。
|
|
24
|
+
* **参数类型应当是"我需要什么",不是"现在恰好传进来的是什么"。**
|
|
25
|
+
*/
|
|
26
|
+
export interface CapabilityLookup {
|
|
27
|
+
get(id: string): Capability | undefined;
|
|
28
|
+
}
|
|
19
29
|
export type ToolCardOutcome = {
|
|
20
30
|
ok: true;
|
|
21
31
|
result: Record<string, unknown>;
|
|
@@ -24,5 +34,5 @@ export type ToolCardOutcome = {
|
|
|
24
34
|
code: string;
|
|
25
35
|
message: string;
|
|
26
36
|
};
|
|
27
|
-
export declare function executeToolCard(card: Card, registry:
|
|
37
|
+
export declare function executeToolCard(card: Card, registry: CapabilityLookup, ctx: CapabilityContext): Promise<ToolCardOutcome>;
|
|
28
38
|
//# sourceMappingURL=ToolCardExecutor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolCardExecutor.d.ts","sourceRoot":"","sources":["../../../src/core/tools/ToolCardExecutor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"ToolCardExecutor.d.ts","sourceRoot":"","sources":["../../../src/core/tools/ToolCardExecutor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEnE;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;CACzC;AAED,MAAM,MAAM,eAAe,GACvB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAC7C;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjD,wBAAsB,eAAe,CACnC,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,gBAAgB,EAC1B,GAAG,EAAE,iBAAiB,GACrB,OAAO,CAAC,eAAe,CAAC,CAmC1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolCardExecutor.js","sourceRoot":"","sources":["../../../src/core/tools/ToolCardExecutor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ToolCardExecutor.js","sourceRoot":"","sources":["../../../src/core/tools/ToolCardExecutor.ts"],"names":[],"mappings":"AAkCA,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAU,EACV,QAA0B,EAC1B,GAAsB;IAEtB,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACzB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,OAAO,IAAI,CAAC,GAAG,aAAa,IAAI,CAAC,IAAI,IAAI,QAAQ,EAAE,EAAE,CAAC;IAC9G,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,IAAI,CAAC,GAAG,aAAa,EAAE,CAAC;IACpF,CAAC;IACD,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,4CAA4C;QAC5C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,UAAU,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;IACrF,CAAC;IACD,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACzB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,uBAAuB;YAC7B,OAAO,EAAE,MAAM,GAAG,CAAC,EAAE,sDAAsD;SAC5E,CAAC;IACJ,CAAC;IAED,yCAAyC;IACzC,mCAAmC;IACnC,IAAI,KAAc,CAAC;IACnB,IAAI,CAAC;QACH,KAAK,GAAG,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IACnG,CAAC;IAED,IAAI,CAAC;QACH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;IACzD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,EAAE,GAAG,CAAwC,CAAC;QACpD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IACtH,CAAC;AACH,CAAC"}
|
|
@@ -13,8 +13,7 @@
|
|
|
13
13
|
* @layer daemon
|
|
14
14
|
* @boundedContext session-management
|
|
15
15
|
*/
|
|
16
|
-
import type { EnsureAgentSessionOpts } from '../core/runtimeTypes.js';
|
|
17
|
-
import type { WorkerSessionRecord, WorkerRuntimeState, AgentTool } from '../core/runtimeTypes.js';
|
|
16
|
+
import type { AgentTool, EnsureAgentSessionOpts, WorkerRuntimeState, WorkerSessionRecord } from '../core/runtimeTypes.js';
|
|
18
17
|
import type { DaemonEvent } from './sessionDaemon.js';
|
|
19
18
|
export interface EnsureSessionOpts extends EnsureAgentSessionOpts {
|
|
20
19
|
}
|
|
@@ -29,6 +28,13 @@ export declare class DaemonClient {
|
|
|
29
28
|
ensureSession(slot: string, tool?: AgentTool, cwd?: string, opts?: EnsureSessionOpts): Promise<WorkerSessionRecord>;
|
|
30
29
|
startRun(slot: string, prompt: string, tool?: AgentTool, cwd?: string, opts?: StartRunOpts): Promise<WorkerSessionRecord>;
|
|
31
30
|
/** daemon 并发总闸实时状态(running/max/queueDepth/byOrigin/quotas)。 */
|
|
31
|
+
/**
|
|
32
|
+
* 让 daemon 热挂/热卸一个插件。`row` 省略或 `disabled` ⇒ 只撤不挂。
|
|
33
|
+
*
|
|
34
|
+
* ⚠️ 调用方要**容忍失败**:daemon 没起来是常态(不是每台机器都跑 daemon),
|
|
35
|
+
* 那不该让 console 的插件操作失败 —— 装配档已经写了,daemon 下次启动会读到。
|
|
36
|
+
*/
|
|
37
|
+
reloadPlugin(key: string, row?: unknown): Promise<void>;
|
|
32
38
|
capacity(): Promise<{
|
|
33
39
|
running: number;
|
|
34
40
|
max: number;
|
|
@@ -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,EAAC,SAAS,EACpB,sBAAsB,EAAC,kBAAkB,EAAE,mBAAmB,EAC/D,MAAM,yBAAyB,CAAC;AACjC,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;AAOD,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;IAM/B,+DAA+D;IAC/D;;;;;OAKG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvD,QAAQ,IAAI,OAAO,CAAC;QACxB,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;QACZ,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAChC,CAAC;IAII,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;IAgEhD,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;CAwDhB;AAED,0CAA0C;AAC1C,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C"}
|
|
@@ -45,6 +45,15 @@ export class DaemonClient {
|
|
|
45
45
|
return this.request('startRun', { slot, prompt, tool, cwd, opts }, 630_000);
|
|
46
46
|
}
|
|
47
47
|
/** daemon 并发总闸实时状态(running/max/queueDepth/byOrigin/quotas)。 */
|
|
48
|
+
/**
|
|
49
|
+
* 让 daemon 热挂/热卸一个插件。`row` 省略或 `disabled` ⇒ 只撤不挂。
|
|
50
|
+
*
|
|
51
|
+
* ⚠️ 调用方要**容忍失败**:daemon 没起来是常态(不是每台机器都跑 daemon),
|
|
52
|
+
* 那不该让 console 的插件操作失败 —— 装配档已经写了,daemon 下次启动会读到。
|
|
53
|
+
*/
|
|
54
|
+
async reloadPlugin(key, row) {
|
|
55
|
+
await this.request('reloadPlugin', { key, row });
|
|
56
|
+
}
|
|
48
57
|
async capacity() {
|
|
49
58
|
return this.request('capacity', {});
|
|
50
59
|
}
|
|
@@ -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":"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;AAuBpC,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;AAExI,kCAAkC;AAClC,MAAM,wBAAwB,GAAG,EAAE,CAAC;AAEpC,MAAM,OAAO,YAAY;IACH;IAApB,YAAoB,aAAa,cAAc;QAA3B,eAAU,GAAV,UAAU,CAAiB;IAAG,CAAC;IAEnD,oCAAoC;IACpC,KAAK,CAAC,SAAS;QACb,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;YAAE,OAAO,KAAK,CAAC;QAC/C,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAClC,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,IAAY,EACZ,IAAgB,EAChB,GAAY,EACZ,IAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,IAAY,EACZ,MAAc,EACd,IAAgB,EAChB,GAAY,EACZ,IAAmB;QAEnB,qEAAqE;QACrE,8CAA8C;QAC9C,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;IAC9E,CAAC;IAED,+DAA+D;IAC/D;;;;;OAKG;IACH,KAAK,CAAC,YAAY,CAAC,GAAW,EAAE,GAAa;QAC3C,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,QAAQ;QAOZ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAa;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAY;QAC5B,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,IAAY,EAAE,SAAkB;QAClD,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAY;QACzB,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,wEAAwE;IACxE,KAAK,CAAC,SAAS,CAAC,IAAY;QAC1B,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC;YAAC,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;IAC1E,CAAC;IAED;;;;;;;;;;OAUG;IACH,YAAY,CACV,IAAY,EACZ,aAAsB;QAEtB,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACjD,MAAM,KAAK,GAAkB,EAAE,CAAC;QAChC,MAAM,OAAO,GAAoD,EAAE,CAAC;QACpE,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,IAAI,OAAO,GAAiB,IAAI,CAAC;QACjC,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,MAAM,KAAK,GAAG,GAAS,EAAE;YACvB,IAAI,IAAI;gBAAE,OAAO;YACjB,IAAI,GAAG,IAAI,CAAC;YACZ,IAAI,CAAC;gBAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC;YAC9C,gBAAgB;YAChB,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,OAAO,CAAC,KAAK,EAAG,CAAC,EAAE,KAAK,EAAE,SAAmC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/E,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YACxB,MAAM,GAAG,GAAkB;gBACzB,MAAM,EAAE,cAAc;gBACtB,MAAM,EAAE;oBACN,IAAI;oBACJ,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC;iBAC1D;aACF,CAAC;YACF,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YAC1B,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAClC,IAAI,GAAG,CAAC;YACR,OAAO,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;gBAClC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;gBAC/B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;oBAAE,SAAS;gBAC3B,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAChC,mFAAmF;oBACnF,IAAI,IAAI,IAAI,MAAM,IAAI,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC,EAAE,CAAC;wBAC3C,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;4BACf,OAAO,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,kBAAkB,CAAC,CAAC;4BACxD,KAAK,EAAE,CAAC;wBACV,CAAC;wBACD,SAAS;oBACX,CAAC;oBACD,MAAM,GAAG,GAAG,MAAqB,CAAC;oBAClC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACvB,OAAO,CAAC,KAAK,EAAG,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;oBAChD,CAAC;yBAAM,CAAC;wBACN,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAClB,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,oBAAoB;gBACtB,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACzB,OAAO,GAAG,GAAG,CAAC;YACd,KAAK,EAAE,CAAC;QACV,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;QAElC,MAAM,QAAQ,GAA+B;YAC3C,IAAI,EAAE,GAAG,EAAE,CACT,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC9B,IAAI,OAAO;oBAAE,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC;gBACpC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;oBAAE,OAAO,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC7E,IAAI,IAAI;oBAAE,OAAO,OAAO,CAAC,EAAE,KAAK,EAAE,SAAmC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBACrF,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC,CAAC;YACJ,MAAM,EAAE,GAAG,EAAE;gBACX,KAAK,EAAE,CAAC;gBACR,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAmC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACrF,CAAC;SACF,CAAC;QAEF,OAAO;YACL,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,CAAC,QAAQ;YACtC,MAAM,EAAE,KAAK;SACd,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,qBAAqB,CACnB,IAAY,EACZ,aAAa,GAAG,CAAC;QAEjB,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,MAAM,GACR,IAAI,CAAC;QACP,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,MAAM,QAAQ,GAAwD;YACpE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;gBAC3B,IAAI,MAAM,GAAG,aAAa,CAAC;gBAC3B,OAAO,CAAC,SAAS,EAAE,CAAC;oBAClB,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;oBACzC,IAAI,QAAQ,GAAG,KAAK,CAAC;oBACrB,IAAI,CAAC;wBACH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;4BACjC,IAAI,SAAS;gCAAE,OAAO;4BACtB,gCAAgC;4BAChC,qCAAqC;4BACrC,OAAO,GAAG,CAAC,CAAC;4BACZ,IACE,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ;gCAClC,KAAK,CAAC,QAAQ,IAAI,MAAM,EACxB,CAAC;gCACD,SAAS;4BACX,CAAC;4BACD,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gCACvC,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC;4BAC1B,CAAC;4BACD,QAAQ,GAAG,KAAK,CAAC,KAAK,KAAK,UAAU,CAAC;4BACtC,MAAM,KAAK,CAAC;4BACZ,IAAI,QAAQ;gCAAE,OAAO;wBACvB,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC;wBACP,gEAAgE;wBAChE,4CAA4C;oBAC9C,CAAC;4BAAS,CAAC;wBACT,MAAM,EAAE,MAAM,EAAE,CAAC;wBACjB,MAAM,GAAG,IAAI,CAAC;oBAChB,CAAC;oBACD,IAAI,SAAS,IAAI,QAAQ;wBAAE,OAAO;oBAClC,mDAAmD;oBACnD,oDAAoD;oBACpD,sCAAsC;oBACtC,OAAO,IAAI,CAAC,CAAC;oBACb,IAAI,OAAO,GAAG,wBAAwB,EAAE,CAAC;wBACvC,MAAM,IAAI,KAAK,CACb,2BAA2B,wBAAwB,mBAAmB,IAAI,GAAG,CAC9E,CAAC;oBACJ,CAAC;oBACD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;oBACzD,MAAM,IAAI,OAAO,CAAO,CAAC,YAAY,EAAE,EAAE;wBACvC,MAAM,KAAK,GAAG,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;wBAChD,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;oBAClB,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YACD,MAAM,EAAE,GAAG,EAAE;gBACX,SAAS,GAAG,IAAI,CAAC;gBACjB,MAAM,EAAE,MAAM,EAAE,CAAC;YACnB,CAAC;SACF,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,IAAY,EACZ,aAAqB,EACrB,MAAe,EACf,gBAAwB;QAExB,MAAM,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE;YACtC,IAAI;YACJ,aAAa;YACb,MAAM;YACN,gBAAgB;SACjB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,IAAY,EACZ,aAAqB,EACrB,gBAAwB;QAExB,MAAM,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE;YACtC,IAAI;YACJ,aAAa;YACb,gBAAgB;SACjB,CAAC,CAAC;IACL,CAAC;IAED,uDAAuD;IAC/C,OAAO,CAAI,MAAc,EAAE,MAA+B,EAAE,SAAS,GAAG,MAAM;QACpF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACjD,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,OAAO,GAAG,KAAK,CAAC;YAEpB,MAAM,MAAM,GAAG,CAAC,GAAW,EAAE,IAAQ,EAAE,EAAE;gBACvC,IAAI,OAAO;oBAAE,OAAO;gBACpB,OAAO,GAAG,IAAI,CAAC;gBACf,IAAI,cAAc;oBAAE,YAAY,CAAC,cAAc,CAAC,CAAC;gBACjD,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,GAAG;oBAAE,MAAM,CAAC,GAAG,CAAC,CAAC;;oBAChB,OAAO,CAAC,IAAS,CAAC,CAAC;YAC1B,CAAC,CAAC;YAEF,4DAA4D;YAC5D,MAAM,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE;gBACrC,MAAM,CAAC,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAC;YACtD,CAAC,EAAE,KAAK,CAAC,CAAC;YAEV,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;gBACxB,YAAY,CAAC,cAAc,CAAC,CAAC;gBAC7B,MAAM,GAAG,GAAkB,EAAE,MAAM,EAAE,MAAiC,EAAE,MAAM,EAAE,CAAC;gBACjF,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;YAC3C,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC1B,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAClC,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACjC,IAAI,GAAG,GAAG,CAAC;oBAAE,OAAO;gBAEpB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;gBAClC,IAAI,CAAC;oBACH,MAAM,GAAG,GAAmB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC7C,IAAI,GAAG,CAAC,EAAE;wBAAE,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,IAAS,CAAC,CAAC;yBACxC,CAAC;wBACJ,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,cAAc,CAAC,CAAC;wBACnD,oEAAoE;wBACpE,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;4BACb,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;gCACjB,IAAI,EAAE,GAAG,CAAC,IAAI;gCACd,GAAG,CAAC,GAAG,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gCACpE,GAAG,CAAC,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;6BAClE,CAAC,CAAC;wBACL,CAAC;wBACD,MAAM,CAAC,GAAG,CAAC,CAAC;oBACd,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,MAAM,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;gBAC/C,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YACzC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;QAClF,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAED,0CAA0C;AAC1C,MAAM,UAAU,mBAAmB;IACjC,OAAO,cAAc,CAAC;AACxB,CAAC"}
|
|
@@ -13,9 +13,10 @@
|
|
|
13
13
|
* @layer daemon
|
|
14
14
|
* @boundedContext session-management
|
|
15
15
|
*/
|
|
16
|
+
import type { Context as PluginContext } from '@deepseek-ai/cordis';
|
|
16
17
|
export interface DaemonRequest {
|
|
17
18
|
id?: number;
|
|
18
|
-
method: 'ensureSession' | 'startRun' | 'inspect' | 'stopSession' | 'deleteSession' | 'clearRun' | 'cancelRun' | 'submitInteraction' | 'cancelInteraction' | 'shutdown' | 'subscribeRun' | 'capacity' | 'relayPublish' | 'relaySubscribe';
|
|
19
|
+
method: 'reloadPlugin' | 'ensureSession' | 'startRun' | 'inspect' | 'stopSession' | 'deleteSession' | 'clearRun' | 'cancelRun' | 'submitInteraction' | 'cancelInteraction' | 'shutdown' | 'subscribeRun' | 'capacity' | 'relayPublish' | 'relaySubscribe';
|
|
19
20
|
params: Record<string, unknown>;
|
|
20
21
|
}
|
|
21
22
|
export interface DaemonResponse {
|
|
@@ -124,6 +125,8 @@ export type DaemonEvent = DaemonEventBody & DaemonEventMetadata;
|
|
|
124
125
|
export declare class SessionDaemon {
|
|
125
126
|
private socketPath;
|
|
126
127
|
private pidFile;
|
|
128
|
+
/** 装配上下文。测试里可以不给 —— 那条路上不会走到插件管理。 */
|
|
129
|
+
private app?;
|
|
127
130
|
private server;
|
|
128
131
|
private pollTimer;
|
|
129
132
|
private storageSync;
|
|
@@ -145,7 +148,9 @@ export declare class SessionDaemon {
|
|
|
145
148
|
private readonly slotOrigin;
|
|
146
149
|
/** 已挂结算监听的 slot(complete → governor.release,防重复订阅)。 */
|
|
147
150
|
private readonly settleWatch;
|
|
148
|
-
constructor(socketPath?: string, pidFile?: string
|
|
151
|
+
constructor(socketPath?: string, pidFile?: string,
|
|
152
|
+
/** 装配上下文。测试里可以不给 —— 那条路上不会走到插件管理。 */
|
|
153
|
+
app?: PluginContext | undefined);
|
|
149
154
|
start(): Promise<void>;
|
|
150
155
|
private handleClient;
|
|
151
156
|
private handleMessage;
|
|
@@ -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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"}
|
|
@@ -13,16 +13,16 @@
|
|
|
13
13
|
* @layer daemon
|
|
14
14
|
* @boundedContext session-management
|
|
15
15
|
*/
|
|
16
|
+
import { execFile } from 'node:child_process';
|
|
16
17
|
import { existsSync, mkdirSync, readFileSync, unlinkSync, writeFileSync } from 'node:fs';
|
|
17
18
|
import { createServer } from 'node:net';
|
|
18
19
|
import { dirname, resolve } from 'node:path';
|
|
20
|
+
import { promisify } from 'node:util';
|
|
19
21
|
import { appendAudit } from '../core/auditLog.js';
|
|
20
|
-
import { startStorageSyncLoop } from './storageSyncLoop.js';
|
|
21
22
|
import { getReclaimMinutes } from '../core/reclaimConfig.js';
|
|
22
|
-
import { reclaimOrphanSessions } from './orphanReclaim.js';
|
|
23
23
|
import { ChatRelayHub } from './chatRelay.js';
|
|
24
|
-
import {
|
|
25
|
-
import {
|
|
24
|
+
import { reclaimOrphanSessions } from './orphanReclaim.js';
|
|
25
|
+
import { startStorageSyncLoop } from './storageSyncLoop.js';
|
|
26
26
|
const execFileAsync = promisify(execFile);
|
|
27
27
|
/**
|
|
28
28
|
* 假 running 判定阈值:chat 会话的 currentRun 存在、但 transcript(claude jsonl)静默超过此时长,
|
|
@@ -62,15 +62,19 @@ const RUN_TOOL_IDLE_MS = (() => {
|
|
|
62
62
|
})();
|
|
63
63
|
const ACTIVE_TOOL_STATUSES = new Set(['pending', 'running', 'in_progress']);
|
|
64
64
|
import { createSessionContext } from '../core/sessionContext.js';
|
|
65
|
+
import { safeStderrWrite } from '../infra/safeStderr.js';
|
|
66
|
+
import { mountAssembly, userRowIds } from '../plugin/assembly.js';
|
|
67
|
+
import { hotMount, hotUnmount } from '../plugin/hot.js';
|
|
68
|
+
import { startContext } from '../plugin/run.js';
|
|
65
69
|
import { createSessionRuntime } from '../providers/registry.js';
|
|
66
|
-
import { CapacityError, loadRunGovernorConfig, RunGovernor } from './runGovernor.js';
|
|
67
70
|
import { applyPersistentDaemonEnv } from './daemonEnv.js';
|
|
68
|
-
import {
|
|
71
|
+
import { CapacityError, loadRunGovernorConfig, RunGovernor } from './runGovernor.js';
|
|
69
72
|
const DEFAULT_SOCKET = resolve(process.env.HOME || '/home/coral', '.coral', 'sessions', 'daemon.sock');
|
|
70
73
|
const DEFAULT_PID = resolve(process.env.HOME || '/home/coral', '.coral', 'sessions', 'daemon.pid');
|
|
71
74
|
export class SessionDaemon {
|
|
72
75
|
socketPath;
|
|
73
76
|
pidFile;
|
|
77
|
+
app;
|
|
74
78
|
server = null;
|
|
75
79
|
pollTimer = null;
|
|
76
80
|
storageSync = null;
|
|
@@ -92,9 +96,12 @@ export class SessionDaemon {
|
|
|
92
96
|
slotOrigin = new Map();
|
|
93
97
|
/** 已挂结算监听的 slot(complete → governor.release,防重复订阅)。 */
|
|
94
98
|
settleWatch = new Map();
|
|
95
|
-
constructor(socketPath = DEFAULT_SOCKET, pidFile = DEFAULT_PID
|
|
99
|
+
constructor(socketPath = DEFAULT_SOCKET, pidFile = DEFAULT_PID,
|
|
100
|
+
/** 装配上下文。测试里可以不给 —— 那条路上不会走到插件管理。 */
|
|
101
|
+
app) {
|
|
96
102
|
this.socketPath = socketPath;
|
|
97
103
|
this.pidFile = pidFile;
|
|
104
|
+
this.app = app;
|
|
98
105
|
// 先应用 ~/.coral/env 持久配置(权威键覆盖拉起方继承的 env,重生不回归)再读配置。
|
|
99
106
|
const overridden = applyPersistentDaemonEnv();
|
|
100
107
|
if (overridden.length) {
|
|
@@ -434,6 +441,26 @@ export class SessionDaemon {
|
|
|
434
441
|
throw err;
|
|
435
442
|
}
|
|
436
443
|
}
|
|
444
|
+
// 插件热挂/热卸。console 改完装配档后调它 —— daemon 是**另一个进程**,
|
|
445
|
+
// 它自己那份装配是启动时读的,不通知就只有重启才会变。
|
|
446
|
+
case 'reloadPlugin': {
|
|
447
|
+
if (!this.app)
|
|
448
|
+
return { ok: false, error: 'daemon 没有装配上下文' };
|
|
449
|
+
const key = p.key;
|
|
450
|
+
const row = p.row;
|
|
451
|
+
try {
|
|
452
|
+
await hotUnmount(this.app, key);
|
|
453
|
+
if (row && !row.disabled)
|
|
454
|
+
await hotMount(this.app, key, row);
|
|
455
|
+
return { ok: true, data: { key, mounted: !!row && !row.disabled } };
|
|
456
|
+
}
|
|
457
|
+
catch (e) {
|
|
458
|
+
// 🔴 daemon 挂不上不该让 console 那边的操作看起来成功了。
|
|
459
|
+
// 但也不能反过来把 console 的写回滚 —— 装配档是共享的真源,
|
|
460
|
+
// daemon 下次重启会重新读到它。所以:报出来,由调用方决定怎么说。
|
|
461
|
+
return { ok: false, error: e instanceof Error ? e.message : String(e) };
|
|
462
|
+
}
|
|
463
|
+
}
|
|
437
464
|
case 'capacity': {
|
|
438
465
|
return { ok: true, data: this.governor.stats() };
|
|
439
466
|
}
|
|
@@ -631,7 +658,7 @@ export class SessionDaemon {
|
|
|
631
658
|
}
|
|
632
659
|
continue;
|
|
633
660
|
}
|
|
634
|
-
|
|
661
|
+
const last = this.lastActivity.get(slot);
|
|
635
662
|
if (last === undefined) {
|
|
636
663
|
// 首次见到(daemon 重启前遗留的会话):给满一个 TTL 窗口,避免重启即杀。
|
|
637
664
|
this.lastActivity.set(slot, now);
|
|
@@ -746,8 +773,20 @@ if (isDirectRun) {
|
|
|
746
773
|
};
|
|
747
774
|
process.on('unhandledRejection', (reason) => logFatal('unhandledRejection', reason));
|
|
748
775
|
process.on('uncaughtException', (err) => logFatal('uncaughtException', err));
|
|
749
|
-
|
|
750
|
-
daemon.
|
|
776
|
+
// 🔴 **daemon 也要挂装配档。** 它是独立入口(不经 main.ts),所以此前
|
|
777
|
+
// `assembly/daemon.yml` 从建出来那天起就是死的 —— smoke 里那三行绿
|
|
778
|
+
// 验的是 smoke 自己挂的上下文,不是 daemon 真跑的形态。
|
|
779
|
+
// 没有装配 ⇒ 插件对 daemon 一律不生效,而症状是"装了没反应"。
|
|
780
|
+
// 用户层的坏插件同样只警告不致命:daemon 是单点,一崩全部会话中断。
|
|
781
|
+
const fromUser = userRowIds('daemon');
|
|
782
|
+
startContext(mountAssembly('daemon'), {
|
|
783
|
+
tolerate: (bad) => !!bad.entryId && fromUser.has(bad.entryId),
|
|
784
|
+
})
|
|
785
|
+
.then(({ ctx }) => {
|
|
786
|
+
const daemon = new SessionDaemon(undefined, undefined, ctx);
|
|
787
|
+
return daemon.start();
|
|
788
|
+
})
|
|
789
|
+
.catch((err) => {
|
|
751
790
|
safeStderrWrite(`Daemon failed: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
752
791
|
process.exit(1);
|
|
753
792
|
});
|