@coralai/sps-cli 0.65.63 → 0.65.65
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/dist/commands/memoryCommand.js +1 -1
- package/dist/commands/memoryCommand.js.map +1 -1
- package/dist/core/agents/configureProjectAgent.d.ts.map +1 -1
- package/dist/core/agents/configureProjectAgent.js +4 -2
- package/dist/core/agents/configureProjectAgent.js.map +1 -1
- package/dist/core/agents/modelSettingsFile.d.ts.map +1 -1
- package/dist/core/agents/modelSettingsFile.js +4 -2
- package/dist/core/agents/modelSettingsFile.js.map +1 -1
- package/dist/core/memory2/gc.d.ts +1 -1
- package/dist/core/memory2/gc.d.ts.map +1 -1
- package/dist/core/memory2/gc.js +1 -1
- package/dist/core/memory2/gc.js.map +1 -1
- package/dist/core/memory2/lock.d.ts +8 -3
- package/dist/core/memory2/lock.d.ts.map +1 -1
- package/dist/core/memory2/lock.js +10 -8
- package/dist/core/memory2/lock.js.map +1 -1
- package/dist/core/pipelineSession.d.ts.map +1 -1
- package/dist/core/pipelineSession.js +43 -18
- package/dist/core/pipelineSession.js.map +1 -1
- package/dist/infra/pathBoundary.d.ts +13 -0
- package/dist/infra/pathBoundary.d.ts.map +1 -0
- package/dist/infra/pathBoundary.js +49 -0
- package/dist/infra/pathBoundary.js.map +1 -0
- package/dist/infra/secretFile.d.ts +15 -0
- package/dist/infra/secretFile.d.ts.map +1 -0
- package/dist/infra/secretFile.js +50 -0
- package/dist/infra/secretFile.js.map +1 -0
- package/dist/manager/supervisor.d.ts +7 -2
- package/dist/manager/supervisor.d.ts.map +1 -1
- package/dist/manager/supervisor.js +15 -11
- package/dist/manager/supervisor.js.map +1 -1
- package/dist/providers/MarkdownTaskBackend.d.ts.map +1 -1
- package/dist/providers/MarkdownTaskBackend.js +37 -2
- package/dist/providers/MarkdownTaskBackend.js.map +1 -1
- package/dist/providers/llm/providers.d.ts.map +1 -1
- package/dist/providers/llm/providers.js +5 -5
- package/dist/providers/llm/providers.js.map +1 -1
- package/dist/providers/mcp/spsMcpServer.d.ts +1 -1
- package/dist/providers/mcp/spsMcpServer.d.ts.map +1 -1
- package/dist/providers/mcp/spsMcpServer.js +60 -22
- package/dist/providers/mcp/spsMcpServer.js.map +1 -1
- package/dist/providers/mcp/spsMcpStdio.js +3 -1
- package/dist/providers/mcp/spsMcpStdio.js.map +1 -1
- package/dist/providers/media/generateAsset.d.ts.map +1 -1
- package/dist/providers/media/generateAsset.js +11 -5
- package/dist/providers/media/generateAsset.js.map +1 -1
- package/dist/providers/media/mediaProviders.d.ts +24 -6
- package/dist/providers/media/mediaProviders.d.ts.map +1 -1
- package/dist/providers/media/mediaProviders.js +66 -23
- package/dist/providers/media/mediaProviders.js.map +1 -1
- package/dist/providers/outputParser.d.ts +17 -0
- package/dist/providers/outputParser.d.ts.map +1 -1
- package/dist/providers/outputParser.js +35 -0
- package/dist/providers/outputParser.js.map +1 -1
- package/dist/runtime/service/AgentRuntime.d.ts.map +1 -1
- package/dist/runtime/service/AgentRuntime.js +44 -10
- package/dist/runtime/service/AgentRuntime.js.map +1 -1
- package/dist/services/MemoryService.js +3 -3
- package/dist/services/MemoryService.js.map +1 -1
- package/package.json +1 -1
|
@@ -219,7 +219,7 @@ export async function executeMemoryCommand(subcommand, project, positionals, fla
|
|
|
219
219
|
case 'gc': {
|
|
220
220
|
const { gcScope } = await import('../core/memory2/gc.js');
|
|
221
221
|
const targets = flags.all ? listAllScopes() : (project ? [{ scope: 'project', project }, { scope: 'global' }] : [{ scope: 'global' }]);
|
|
222
|
-
const results = targets.map((r) => ({ scope: r, stats: gcScope(r) }));
|
|
222
|
+
const results = await Promise.all(targets.map(async (r) => ({ scope: r, stats: await gcScope(r) })));
|
|
223
223
|
if (json) {
|
|
224
224
|
console.log(JSON.stringify({ results: results.map((r) => ({ scope: r.scope.scope, project: r.scope.project, ...r.stats })) }, null, 2));
|
|
225
225
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memoryCommand.js","sourceRoot":"","sources":["../../src/commands/memoryCommand.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"memoryCommand.js","sourceRoot":"","sources":["../../src/commands/memoryCommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configureProjectAgent.d.ts","sourceRoot":"","sources":["../../../src/core/agents/configureProjectAgent.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"configureProjectAgent.d.ts","sourceRoot":"","sources":["../../../src/core/agents/configureProjectAgent.ts"],"names":[],"mappings":"AAyBA,sCAAsC;AACtC,MAAM,WAAW,oBAAoB;IACnC,0CAA0C;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,kBAAkB,GAAG,WAAW,CAAC;IAC7C,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,yBAAyB;IACxC,sDAAsD;IACtD,OAAO,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC7B,mDAAmD;IACnD,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;;;;;;;;;OAUG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC;AAED,gDAAgD;AAChD,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,GAAG,qBAAqB,GAAG,MAAM,CAAC;AAIpF;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,yBAAyB,GAC9B;IAAE,KAAK,EAAE,kBAAkB,CAAA;CAAE,CA8C/B"}
|
|
@@ -17,7 +17,8 @@
|
|
|
17
17
|
* @layer core
|
|
18
18
|
* @boundedContext agents
|
|
19
19
|
*/
|
|
20
|
-
import { appendFileSync, existsSync, mkdirSync, readFileSync
|
|
20
|
+
import { appendFileSync, existsSync, mkdirSync, readFileSync } from 'node:fs';
|
|
21
|
+
import { writeSecretFile } from '../../infra/secretFile.js';
|
|
21
22
|
import { resolve } from 'node:path';
|
|
22
23
|
import { writeModelSettingsFileFor } from './modelSettingsFile.js';
|
|
23
24
|
const AGENT_PROVIDERS_REL = '.sps/agent-providers.json';
|
|
@@ -62,7 +63,8 @@ export function configureProjectAgent(projectDir, opts) {
|
|
|
62
63
|
list[idx] = { ...list[idx], ...entry };
|
|
63
64
|
else
|
|
64
65
|
list.push(entry);
|
|
65
|
-
|
|
66
|
+
// 🔴 含 apiKey 且随业务 repo 分发 → 0600(审计 A9);.gitignore 见下方 ensureIgnored。
|
|
67
|
+
writeSecretFile(path, `${JSON.stringify(list, null, 2)}\n`);
|
|
66
68
|
// 🔴 该文件含 apiKey,而业务 repo 会被分发/下载 → 必须挡在版本库外。
|
|
67
69
|
// (claude 面的 settings.local.json 由 projectInit 建项目时已加进 .gitignore。)
|
|
68
70
|
ensureIgnored(projectDir, AGENT_PROVIDERS_REL);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configureProjectAgent.js","sourceRoot":"","sources":["../../../src/core/agents/configureProjectAgent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"configureProjectAgent.js","sourceRoot":"","sources":["../../../src/core/agents/configureProjectAgent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modelSettingsFile.d.ts","sourceRoot":"","sources":["../../../src/core/agents/modelSettingsFile.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"modelSettingsFile.d.ts","sourceRoot":"","sources":["../../../src/core/agents/modelSettingsFile.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,KAAK,oBAAoB,EAA4C,MAAM,qBAAqB,CAAC;AAE1G,uEAAuE;AACvE,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAWrE;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,UAAU,EAAE,MAAM,GAAG,SAAS,GAC7B,OAAO,CAET;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,QAAQ,EAAE,oBAAoB,GAAG,SAAS,EAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,OAAO,CAET"}
|
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
* @layer core
|
|
9
9
|
* @boundedContext worker-lifecycle
|
|
10
10
|
*/
|
|
11
|
-
import { existsSync, mkdirSync, readFileSync
|
|
11
|
+
import { existsSync, mkdirSync, readFileSync } from 'node:fs';
|
|
12
|
+
import { writeSecretFile } from '../../infra/secretFile.js';
|
|
12
13
|
import { resolve } from 'node:path';
|
|
13
14
|
import { resolveWorkerModelEnv, workerModelEnvFor } from './workerModelEnv.js';
|
|
14
15
|
/** 读取 cwd 的 settings.local.json 中显式指定的模型。其它配置(如 permissions)不算模型配置。 */
|
|
@@ -88,7 +89,8 @@ function mergeModelSettings(dir, model, env) {
|
|
|
88
89
|
merged.env = nextEnv;
|
|
89
90
|
else
|
|
90
91
|
delete merged.env;
|
|
91
|
-
|
|
92
|
+
// 🔴 env 里带 ANTHROPIC_AUTH_TOKEN → 0600(审计 A9)。
|
|
93
|
+
writeSecretFile(settingsPath, JSON.stringify(merged, null, 2) + '\n');
|
|
92
94
|
return true;
|
|
93
95
|
}
|
|
94
96
|
//# sourceMappingURL=modelSettingsFile.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modelSettingsFile.js","sourceRoot":"","sources":["../../../src/core/agents/modelSettingsFile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"modelSettingsFile.js","sourceRoot":"","sources":["../../../src/core/agents/modelSettingsFile.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gc.d.ts","sourceRoot":"","sources":["../../../src/core/memory2/gc.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAe,QAAQ,EAAE,MAAM,YAAY,CAAC;AAExD,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAUD,0BAA0B;AAC1B,
|
|
1
|
+
{"version":3,"file":"gc.d.ts","sourceRoot":"","sources":["../../../src/core/memory2/gc.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAe,QAAQ,EAAE,MAAM,YAAY,CAAC;AAExD,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAUD,0BAA0B;AAC1B,wBAAsB,OAAO,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAwB7D"}
|
package/dist/core/memory2/gc.js
CHANGED
|
@@ -16,7 +16,7 @@ function pickBest(group) {
|
|
|
16
16
|
return group.slice().sort((a, b) => b.salience - a.salience || b.updated.localeCompare(a.updated) || rank(b.source) - rank(a.source))[0];
|
|
17
17
|
}
|
|
18
18
|
/** 对单作用域做 gc(持锁)。返回统计。 */
|
|
19
|
-
export function gcScope(ref) {
|
|
19
|
+
export async function gcScope(ref) {
|
|
20
20
|
return withScopeLock(ref, () => {
|
|
21
21
|
const purged = purgeTombstones(ref);
|
|
22
22
|
const entries = listEntries(ref);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gc.js","sourceRoot":"","sources":["../../../src/core/memory2/gc.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AASvE,iEAAiE;AACjE,SAAS,QAAQ,CAAC,KAAoB;IACpC,MAAM,IAAI,GAAG,CAAC,CAAwB,EAAU,EAAE,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/F,OAAO,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACjC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CACjG,CAAC,CAAC,CAAE,CAAC;AACR,CAAC;AAED,0BAA0B;AAC1B,MAAM,UAAU,OAAO,CAAC,GAAa;
|
|
1
|
+
{"version":3,"file":"gc.js","sourceRoot":"","sources":["../../../src/core/memory2/gc.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AASvE,iEAAiE;AACjE,SAAS,QAAQ,CAAC,KAAoB;IACpC,MAAM,IAAI,GAAG,CAAC,CAAwB,EAAU,EAAE,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/F,OAAO,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACjC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CACjG,CAAC,CAAC,CAAE,CAAC;AACR,CAAC;AAED,0BAA0B;AAC1B,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,GAAa;IACzC,OAAO,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE;QAC7B,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;QAEpC,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAyB,CAAC;QAChD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,MAAM,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACpC,IAAI,CAAC,CAAC;gBAAE,SAAS,CAAC,WAAW;YAC7B,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACpC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,SAAS;YAC/B,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC7B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACtB,IAAI,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,IAAI,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;oBAAE,OAAO,EAAE,CAAC;YAC5D,CAAC;QACH,CAAC;QAED,IAAI,OAAO,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC;YAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACrD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;IAC5D,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import type { ScopeRef } from './types.js';
|
|
2
2
|
/**
|
|
3
|
-
* 持作用域锁跑 fn
|
|
4
|
-
*
|
|
3
|
+
* 持作用域锁跑 fn。**等锁是 await,不是忙等**;fn 本身仍是同步的(临界区就是几个同步文件操作)。
|
|
4
|
+
* 拿不到锁则重试至 timeoutMs;超时抛错。fn 结束(含抛错)必释放锁。陈旧锁自动回收。
|
|
5
|
+
*
|
|
6
|
+
* 🔴 曾经是 `while (Date.now() < end) {}`,注释写着"避免引入 async 传染" ——
|
|
7
|
+
* 代价是**最坏单核跑满 5 秒且事件循环完全停摆**(审计 E11)。
|
|
8
|
+
* 实测生产调用方只有 `gcScope` 一个,而它的两个上游本来就在 async 里,
|
|
9
|
+
* 所谓的"传染"只有两处 `.map` 要改成 `Promise.all` —— 远比烧掉一个核便宜。
|
|
5
10
|
*/
|
|
6
|
-
export declare function withScopeLock<T>(ref: ScopeRef, fn: () => T, timeoutMs?: number): T
|
|
11
|
+
export declare function withScopeLock<T>(ref: ScopeRef, fn: () => T, timeoutMs?: number): Promise<T>;
|
|
7
12
|
//# sourceMappingURL=lock.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../../../src/core/memory2/lock.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../../../src/core/memory2/lock.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAO3C;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,SAAS,SAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CA8BhG"}
|
|
@@ -11,15 +11,17 @@ import { join } from 'node:path';
|
|
|
11
11
|
import { scopeDir } from './store.js';
|
|
12
12
|
const STALE_MS = 60_000; // 超 60s 的锁视为陈旧(持锁进程已死),强制回收
|
|
13
13
|
const RETRY_MS = 50;
|
|
14
|
-
|
|
15
|
-
const end = Date.now() + ms;
|
|
16
|
-
while (Date.now() < end) { /* 忙等:锁竞争窗口极短,避免引入 async 传染 */ }
|
|
17
|
-
}
|
|
14
|
+
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
|
|
18
15
|
/**
|
|
19
|
-
* 持作用域锁跑 fn
|
|
20
|
-
*
|
|
16
|
+
* 持作用域锁跑 fn。**等锁是 await,不是忙等**;fn 本身仍是同步的(临界区就是几个同步文件操作)。
|
|
17
|
+
* 拿不到锁则重试至 timeoutMs;超时抛错。fn 结束(含抛错)必释放锁。陈旧锁自动回收。
|
|
18
|
+
*
|
|
19
|
+
* 🔴 曾经是 `while (Date.now() < end) {}`,注释写着"避免引入 async 传染" ——
|
|
20
|
+
* 代价是**最坏单核跑满 5 秒且事件循环完全停摆**(审计 E11)。
|
|
21
|
+
* 实测生产调用方只有 `gcScope` 一个,而它的两个上游本来就在 async 里,
|
|
22
|
+
* 所谓的"传染"只有两处 `.map` 要改成 `Promise.all` —— 远比烧掉一个核便宜。
|
|
21
23
|
*/
|
|
22
|
-
export function withScopeLock(ref, fn, timeoutMs = 5_000) {
|
|
24
|
+
export async function withScopeLock(ref, fn, timeoutMs = 5_000) {
|
|
23
25
|
const dir = scopeDir(ref);
|
|
24
26
|
mkdirSync(dir, { recursive: true });
|
|
25
27
|
const lockDir = join(dir, '.lock');
|
|
@@ -42,7 +44,7 @@ export function withScopeLock(ref, fn, timeoutMs = 5_000) {
|
|
|
42
44
|
}
|
|
43
45
|
if (Date.now() > deadline)
|
|
44
46
|
throw new Error(`memory scope lock timeout: ${dir}`);
|
|
45
|
-
|
|
47
|
+
await sleep(RETRY_MS);
|
|
46
48
|
}
|
|
47
49
|
}
|
|
48
50
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lock.js","sourceRoot":"","sources":["../../../src/core/memory2/lock.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACrE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,4BAA4B;AACrD,MAAM,QAAQ,GAAG,EAAE,CAAC;AAEpB,
|
|
1
|
+
{"version":3,"file":"lock.js","sourceRoot":"","sources":["../../../src/core/memory2/lock.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACrE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,4BAA4B;AACrD,MAAM,QAAQ,GAAG,EAAE,CAAC;AAEpB,MAAM,KAAK,GAAG,CAAC,EAAU,EAAiB,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAEnF;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAI,GAAa,EAAE,EAAW,EAAE,SAAS,GAAG,KAAK;IAClF,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC1B,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IAExC,SAAS,CAAC;QACR,IAAI,CAAC;YACH,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB;YACtC,MAAM;QACR,CAAC;QAAC,MAAM,CAAC;YACP,iBAAiB;YACjB,IAAI,CAAC;gBACH,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,GAAG,QAAQ,EAAE,CAAC;oBACtD,SAAS,CAAC,OAAO,CAAC,CAAC;oBACnB,SAAS;gBACX,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS,CAAC,gBAAgB;YAC5B,CAAC;YACD,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,EAAE,CAAC,CAAC;YAChF,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,OAAO,EAAE,EAAE,CAAC;IACd,CAAC;YAAS,CAAC;QACT,IAAI,CAAC;YAAC,IAAI,UAAU,CAAC,OAAO,CAAC;gBAAE,SAAS,CAAC,OAAO,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAClF,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipelineSession.d.ts","sourceRoot":"","sources":["../../src/core/pipelineSession.ts"],"names":[],"mappings":"AAYA,UAAU,qBAAqB;IAC7B,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,GAAG,EAAE,MAAM,CAAC;IACZ;mDAC+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,OAAO,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;CACnB;
|
|
1
|
+
{"version":3,"file":"pipelineSession.d.ts","sourceRoot":"","sources":["../../src/core/pipelineSession.ts"],"names":[],"mappings":"AAYA,UAAU,qBAAqB;IAC7B,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,GAAG,EAAE,MAAM,CAAC;IACZ;mDAC+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,OAAO,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;CACnB;AAgCD,oCAAoC;AACpC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,qBAAqB,GAAG,IAAI,CAMhF;AAED,8DAA8D;AAC9D,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,GAAE,QAAQ,GAAG,QAAmB,GACtC,IAAI,CAWN;AAED,oCAAoC;AACpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAU1D"}
|
|
@@ -6,46 +6,71 @@
|
|
|
6
6
|
* 存于 ~/.coral/sessions/pipeline-sessions.json,与 daemon state.json 同目录、互不干扰。
|
|
7
7
|
* @layer core
|
|
8
8
|
*/
|
|
9
|
-
import { mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
10
|
-
import { resolve } from 'node:path';
|
|
9
|
+
import { mkdirSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
|
|
10
|
+
import { dirname, resolve } from 'node:path';
|
|
11
11
|
import { sessionsDir } from '../shared/runtimePaths.js';
|
|
12
|
-
|
|
12
|
+
/**
|
|
13
|
+
* 🔴 一项目一文件(审计 E6)。
|
|
14
|
+
*
|
|
15
|
+
* 曾经是**一个 map 文件全量读改写**:两个项目并行 tick,后写的把先写的 sessionId 整个抹掉 →
|
|
16
|
+
* durable resume 失效,worker 下次全新开始(等于白跑一轮上下文)。
|
|
17
|
+
* 拆成 per-project 文件后**根本没有共享结构可争**,不需要锁。
|
|
18
|
+
*
|
|
19
|
+
* 旧的单文件 map 仍会被读取(懒迁移:读得到就用,下次写时落到新位),与 providers.ts 同一套路。
|
|
20
|
+
*/
|
|
21
|
+
function legacyFile() {
|
|
13
22
|
return resolve(sessionsDir(), 'pipeline-sessions.json');
|
|
14
23
|
}
|
|
15
|
-
function
|
|
24
|
+
function projectFile(project) {
|
|
25
|
+
// 项目名进路径:限成安全字符,避免 ../ 之类把文件写到别处
|
|
26
|
+
return resolve(sessionsDir(), 'pipeline-sessions', `${project.replace(/[^\w.-]/g, '_')}.json`);
|
|
27
|
+
}
|
|
28
|
+
/** 只在没有 per-project 文件时才回落读旧 map。 */
|
|
29
|
+
function readLegacy(project) {
|
|
16
30
|
try {
|
|
17
|
-
|
|
31
|
+
const store = JSON.parse(readFileSync(legacyFile(), 'utf-8'));
|
|
32
|
+
return store[project] ?? null;
|
|
18
33
|
}
|
|
19
34
|
catch {
|
|
20
|
-
return
|
|
35
|
+
return null;
|
|
21
36
|
}
|
|
22
37
|
}
|
|
23
|
-
function write(store) {
|
|
24
|
-
mkdirSync(sessionsDir(), { recursive: true });
|
|
25
|
-
writeFileSync(file(), JSON.stringify(store, null, 2));
|
|
26
|
-
}
|
|
27
38
|
/** 取项目上次持久的 claude 会话记录;无则 null。 */
|
|
28
39
|
export function getPipelineSession(project) {
|
|
29
|
-
|
|
40
|
+
try {
|
|
41
|
+
return JSON.parse(readFileSync(projectFile(project), 'utf-8'));
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
return readLegacy(project); // 懒迁移:老数据仍可读
|
|
45
|
+
}
|
|
30
46
|
}
|
|
31
47
|
/** 记下项目当前的 claude 会话(每次派活成功后写回;loadSession 可能轮换 id,故每次覆盖)。 */
|
|
32
48
|
export function setPipelineSession(project, sessionId, cwd, model, backend = 'claude') {
|
|
33
|
-
const
|
|
34
|
-
store[project] = {
|
|
49
|
+
const rec = {
|
|
35
50
|
sessionId,
|
|
36
51
|
cwd,
|
|
37
52
|
model,
|
|
38
53
|
backend,
|
|
39
54
|
updatedAt: new Date().toISOString(),
|
|
40
55
|
};
|
|
41
|
-
|
|
56
|
+
const p = projectFile(project);
|
|
57
|
+
mkdirSync(dirname(p), { recursive: true });
|
|
58
|
+
writeFileSync(p, `${JSON.stringify(rec, null, 2)}\n`);
|
|
42
59
|
}
|
|
43
60
|
/** 清掉项目的会话锚(会话确已失效时用,下次派活将全新开始)。 */
|
|
44
61
|
export function clearPipelineSession(project) {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
62
|
+
try {
|
|
63
|
+
rmSync(projectFile(project), { force: true });
|
|
64
|
+
}
|
|
65
|
+
catch { /* 本就不存在 */ }
|
|
66
|
+
// 旧 map 里的残留也要清,否则 get 会从那儿把死会话读回来
|
|
67
|
+
try {
|
|
68
|
+
const store = JSON.parse(readFileSync(legacyFile(), 'utf-8'));
|
|
69
|
+
if (store[project]) {
|
|
70
|
+
delete store[project];
|
|
71
|
+
writeFileSync(legacyFile(), JSON.stringify(store, null, 2));
|
|
72
|
+
}
|
|
49
73
|
}
|
|
74
|
+
catch { /* 没有旧 map */ }
|
|
50
75
|
}
|
|
51
76
|
//# sourceMappingURL=pipelineSession.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipelineSession.js","sourceRoot":"","sources":["../../src/core/pipelineSession.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"pipelineSession.js","sourceRoot":"","sources":["../../src/core/pipelineSession.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAiBxD;;;;;;;;GAQG;AACH,SAAS,UAAU;IACjB,OAAO,OAAO,CAAC,WAAW,EAAE,EAAE,wBAAwB,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,WAAW,CAAC,OAAe;IAClC,iCAAiC;IACjC,OAAO,OAAO,CAAC,WAAW,EAAE,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;AACjG,CAAC;AAED,qCAAqC;AACrC,SAAS,UAAU,CAAC,OAAe;IACjC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,OAAO,CAAC,CAAU,CAAC;QACvE,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,oCAAoC;AACpC,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAA0B,CAAC;IAC1F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa;IAC3C,CAAC;AACH,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,kBAAkB,CAChC,OAAe,EACf,SAAiB,EACjB,GAAW,EACX,KAAc,EACd,UAA+B,QAAQ;IAEvC,MAAM,GAAG,GAA0B;QACjC,SAAS;QACT,GAAG;QACH,KAAK;QACL,OAAO;QACP,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC;IACF,MAAM,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAC/B,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,aAAa,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACxD,CAAC;AAED,oCAAoC;AACpC,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAClD,IAAI,CAAC;QAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC;IAC5E,mCAAmC;IACnC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,OAAO,CAAC,CAAU,CAAC;QACvE,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YACnB,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;YACtB,aAAa,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC;AAC3B,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 把调用方给的路径解析成绝对路径,并断言它落在 `cwd` 之内。
|
|
3
|
+
*
|
|
4
|
+
* @param cwd 本会话被授予的工作目录(MCP 的 `--cwd`)
|
|
5
|
+
* @param input 调用方给的路径:相对则相对 `cwd`,绝对则原样校验
|
|
6
|
+
* @param label 出错信息里的字段名(如 `outPath` / `dir`),让模型知道是哪个参数错了
|
|
7
|
+
* @throws 越界时抛 —— **大声失败**。静默改写成"合法路径"更糟:调用方以为写成功了,
|
|
8
|
+
* 产物却在别处,几周后才有人发现。
|
|
9
|
+
*/
|
|
10
|
+
export declare function resolveWithinCwd(cwd: string, input: string, label: string): string;
|
|
11
|
+
/** 只判不抛的版本 —— 给"先告警观察、暂不拒绝"的过渡期用。 */
|
|
12
|
+
export declare function isWithinCwd(cwd: string, input: string): boolean;
|
|
13
|
+
//# sourceMappingURL=pathBoundary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pathBoundary.d.ts","sourceRoot":"","sources":["../../src/infra/pathBoundary.ts"],"names":[],"mappings":"AAqBA;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAUlF;AAED,qCAAqC;AACrC,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAO/D"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module infra/pathBoundary
|
|
3
|
+
* @description 会话工作目录的路径边界 —— 叶子模块,无项目内依赖。
|
|
4
|
+
*
|
|
5
|
+
* 🔴 边界是**调用方给的**,不是这里写死的:MCP server 启动时就带着
|
|
6
|
+
* `--cwd <dir> --project <name>`(见 `spsMcpStdio.ts`),这里只负责"不许越出它"。
|
|
7
|
+
* 所以对 gameforge / 实验室 / 第三个产品一视同仁,**新增产品零改动** ——
|
|
8
|
+
* 这正是「机制在引擎,根由平台指定」(见 docs/design/multitenant-readiness-audit.md §范围修正)。
|
|
9
|
+
*
|
|
10
|
+
* 适用于**不可信调用方**:会话里的模型经 MCP 工具传进来的路径。
|
|
11
|
+
* **不适用于平台侧**:平台直接调库时,落点是它自己的策略(既有红线,别在那儿加这个)。
|
|
12
|
+
*
|
|
13
|
+
* 来源:审计 A5(`generate_asset.outPath` 收绝对路径与 `..`)、A6(`create_project.dir` 收任意绝对路径)。
|
|
14
|
+
*
|
|
15
|
+
* ⚠️ 已知限制:只做词法解析(`resolve` 消 `..`),**不跟随符号链接**。
|
|
16
|
+
* 软链逃逸是另一项(审计 A20 `assertNoEscapingSymlinks` 跳过 `.claude` 子树),不在这里解决。
|
|
17
|
+
*
|
|
18
|
+
* @layer infra
|
|
19
|
+
*/
|
|
20
|
+
import { isAbsolute, resolve, sep } from 'node:path';
|
|
21
|
+
/**
|
|
22
|
+
* 把调用方给的路径解析成绝对路径,并断言它落在 `cwd` 之内。
|
|
23
|
+
*
|
|
24
|
+
* @param cwd 本会话被授予的工作目录(MCP 的 `--cwd`)
|
|
25
|
+
* @param input 调用方给的路径:相对则相对 `cwd`,绝对则原样校验
|
|
26
|
+
* @param label 出错信息里的字段名(如 `outPath` / `dir`),让模型知道是哪个参数错了
|
|
27
|
+
* @throws 越界时抛 —— **大声失败**。静默改写成"合法路径"更糟:调用方以为写成功了,
|
|
28
|
+
* 产物却在别处,几周后才有人发现。
|
|
29
|
+
*/
|
|
30
|
+
export function resolveWithinCwd(cwd, input, label) {
|
|
31
|
+
const root = resolve(cwd);
|
|
32
|
+
const abs = isAbsolute(input) ? resolve(input) : resolve(root, input);
|
|
33
|
+
if (abs !== root && !abs.startsWith(root + sep)) {
|
|
34
|
+
throw new Error(`${label} 越出了本会话的工作目录:${input} → ${abs};允许范围:${root} 之内。` +
|
|
35
|
+
'(把它改成相对本项目的路径即可)');
|
|
36
|
+
}
|
|
37
|
+
return abs;
|
|
38
|
+
}
|
|
39
|
+
/** 只判不抛的版本 —— 给"先告警观察、暂不拒绝"的过渡期用。 */
|
|
40
|
+
export function isWithinCwd(cwd, input) {
|
|
41
|
+
try {
|
|
42
|
+
resolveWithinCwd(cwd, input, 'path');
|
|
43
|
+
return true;
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=pathBoundary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pathBoundary.js","sourceRoot":"","sources":["../../src/infra/pathBoundary.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAErD;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAW,EAAE,KAAa,EAAE,KAAa;IACxE,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1B,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACtE,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CACb,GAAG,KAAK,gBAAgB,KAAK,MAAM,GAAG,SAAS,IAAI,MAAM;YACvD,kBAAkB,CACrB,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,qCAAqC;AACrC,MAAM,UAAU,WAAW,CAAC,GAAW,EAAE,KAAa;IACpD,IAAI,CAAC;QACH,gBAAgB,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** 含密文件的目标权限:仅属主可读写。 */
|
|
2
|
+
export declare const SECRET_MODE = 384;
|
|
3
|
+
/**
|
|
4
|
+
* 写一个含密文件:建目录 → 写入 → **收权限**。
|
|
5
|
+
* chmod 是必须的第三步(mode 参数对已存在的文件无效)。
|
|
6
|
+
*/
|
|
7
|
+
export declare function writeSecretFile(path: string, data: string): void;
|
|
8
|
+
/**
|
|
9
|
+
* 把一个既有文件的权限收到 0600(幂等;不存在或已达标则什么都不做)。
|
|
10
|
+
*
|
|
11
|
+
* 读取路径上调用它 = **存量文件不需要迁移脚本**:任何一次读或写都会顺手修好。
|
|
12
|
+
* 失败只吞不抛 —— 权限修不了(只读挂载/异属主)不该让功能挂掉,但也别静默到毫无痕迹。
|
|
13
|
+
*/
|
|
14
|
+
export declare function hardenSecretFile(path: string): void;
|
|
15
|
+
//# sourceMappingURL=secretFile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secretFile.d.ts","sourceRoot":"","sources":["../../src/infra/secretFile.ts"],"names":[],"mappings":"AAoBA,wBAAwB;AACxB,eAAO,MAAM,WAAW,MAAQ,CAAC;AAEjC;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAIhE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CASnD"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module infra/secretFile
|
|
3
|
+
* @description 含密文件的写入与权限收敛(0600)—— 叶子模块,无项目内依赖。
|
|
4
|
+
*
|
|
5
|
+
* 🔴 为什么要单独一个助手:`writeFileSync(p, data, { mode })` 的 mode **只在文件被创建时生效**,
|
|
6
|
+
* 已存在的文件权限原样不动。所以"写的时候带上 mode"是不够的 —— 存量文件会永远停在 644。
|
|
7
|
+
* 必须写完再 `chmod`。这个坑写一次就够了,别在五个调用点各写一遍。
|
|
8
|
+
*
|
|
9
|
+
* 覆盖的文件(都明文含 apiKey / token):
|
|
10
|
+
* ~/.coral/providers.json · agent-providers.json · media-providers.json
|
|
11
|
+
* <项目>/.sps/agent-providers.json · <项目>/.claude/settings.local.json
|
|
12
|
+
*
|
|
13
|
+
* 来源:多租户就绪审计 A9(致命·P0)—— 实测这些文件落 644/664,
|
|
14
|
+
* 同机任何用户可读。读写方(平台/daemon/worker)同为一个 uid,收到 0600 零影响。
|
|
15
|
+
*
|
|
16
|
+
* @layer infra
|
|
17
|
+
*/
|
|
18
|
+
import { chmodSync, existsSync, mkdirSync, statSync, writeFileSync } from 'node:fs';
|
|
19
|
+
import { dirname } from 'node:path';
|
|
20
|
+
/** 含密文件的目标权限:仅属主可读写。 */
|
|
21
|
+
export const SECRET_MODE = 0o600;
|
|
22
|
+
/**
|
|
23
|
+
* 写一个含密文件:建目录 → 写入 → **收权限**。
|
|
24
|
+
* chmod 是必须的第三步(mode 参数对已存在的文件无效)。
|
|
25
|
+
*/
|
|
26
|
+
export function writeSecretFile(path, data) {
|
|
27
|
+
mkdirSync(dirname(path), { recursive: true });
|
|
28
|
+
writeFileSync(path, data, { mode: SECRET_MODE });
|
|
29
|
+
hardenSecretFile(path);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* 把一个既有文件的权限收到 0600(幂等;不存在或已达标则什么都不做)。
|
|
33
|
+
*
|
|
34
|
+
* 读取路径上调用它 = **存量文件不需要迁移脚本**:任何一次读或写都会顺手修好。
|
|
35
|
+
* 失败只吞不抛 —— 权限修不了(只读挂载/异属主)不该让功能挂掉,但也别静默到毫无痕迹。
|
|
36
|
+
*/
|
|
37
|
+
export function hardenSecretFile(path) {
|
|
38
|
+
try {
|
|
39
|
+
if (!existsSync(path))
|
|
40
|
+
return;
|
|
41
|
+
const mode = statSync(path).mode & 0o777;
|
|
42
|
+
if ((mode & 0o077) === 0)
|
|
43
|
+
return; // 组/其它位已清零
|
|
44
|
+
chmodSync(path, SECRET_MODE);
|
|
45
|
+
}
|
|
46
|
+
catch (e) {
|
|
47
|
+
console.warn(`[secretFile] 无法把 ${path} 收到 0600:${e instanceof Error ? e.message : String(e)}`);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=secretFile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secretFile.js","sourceRoot":"","sources":["../../src/infra/secretFile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACpF,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,wBAAwB;AACxB,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,CAAC;AAEjC;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,IAAY;IACxD,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;IACjD,gBAAgB,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,IAAI,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,OAAO;QAC9B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,WAAW;QAC7C,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,IAAI,CAAC,oBAAoB,IAAI,YAAY,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACjG,CAAC;AACH,CAAC"}
|
|
@@ -88,8 +88,13 @@ export declare class ProcessSupervisor {
|
|
|
88
88
|
*/
|
|
89
89
|
monitorOrphanPid(id: string, pid: number, handle: Omit<WorkerHandle, 'child'>, onDead: (exitCode: number) => Promise<void> | void): void;
|
|
90
90
|
/**
|
|
91
|
-
*
|
|
92
|
-
*
|
|
91
|
+
* 推断 orphan worker 的退出码 —— **只认输出文件里的终态事件,不猜正文**。
|
|
92
|
+
*
|
|
93
|
+
* 🔴 曾经是 `/\b(done|完成|已推送)\b|🎉/` 匹配最后一段助手正文就判成功(审计 B14):
|
|
94
|
+
* 一句"还没完成"含"完成"→ 失败被记成成功。那不是"查不到原因",是**审计数据是假的**。
|
|
95
|
+
*
|
|
96
|
+
* 现在:有终态事件 → 按 `is_error` 给 0/1;**没有终态事件 → 按未完成(1)处理并明确记日志** ——
|
|
97
|
+
* 那种情况是"不知道",真正的判定交下游按证据(CompletionJudge 看 git),不在这儿猜。
|
|
93
98
|
*/
|
|
94
99
|
private inferExitCode;
|
|
95
100
|
private loadGlobalEnv;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supervisor.d.ts","sourceRoot":"","sources":["../../src/manager/supervisor.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"supervisor.d.ts","sourceRoot":"","sources":["../../src/manager/supervisor.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { existsSync } from 'node:fs';
|
|
|
2
2
|
import { homedir } from 'node:os';
|
|
3
3
|
import { resolve } from 'node:path';
|
|
4
4
|
import { parseShellConf, } from '../core/shellEnv.js';
|
|
5
|
-
import {
|
|
5
|
+
import { isProcessAlive, killProcessGroup, parseClaudeSessionId, readTerminalResult } from '../providers/outputParser.js';
|
|
6
6
|
// ─── Supervisor ─────────────────────────────────────────────────
|
|
7
7
|
export class ProcessSupervisor {
|
|
8
8
|
/** Global env: process.env + ~/.coral/env (Layer 1+2) */
|
|
@@ -118,21 +118,25 @@ export class ProcessSupervisor {
|
|
|
118
118
|
this.log(`Monitoring orphan PID ${pid} for ${id} (5s poll)`);
|
|
119
119
|
}
|
|
120
120
|
/**
|
|
121
|
-
*
|
|
122
|
-
*
|
|
121
|
+
* 推断 orphan worker 的退出码 —— **只认输出文件里的终态事件,不猜正文**。
|
|
122
|
+
*
|
|
123
|
+
* 🔴 曾经是 `/\b(done|完成|已推送)\b|🎉/` 匹配最后一段助手正文就判成功(审计 B14):
|
|
124
|
+
* 一句"还没完成"含"完成"→ 失败被记成成功。那不是"查不到原因",是**审计数据是假的**。
|
|
125
|
+
*
|
|
126
|
+
* 现在:有终态事件 → 按 `is_error` 给 0/1;**没有终态事件 → 按未完成(1)处理并明确记日志** ——
|
|
127
|
+
* 那种情况是"不知道",真正的判定交下游按证据(CompletionJudge 看 git),不在这儿猜。
|
|
123
128
|
*/
|
|
124
129
|
inferExitCode(handle) {
|
|
125
130
|
if (!handle.outputFile)
|
|
126
131
|
return 1;
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
return 0;
|
|
132
|
-
}
|
|
132
|
+
const term = readTerminalResult(handle.outputFile);
|
|
133
|
+
if (!term) {
|
|
134
|
+
this.log(`No terminal result event in ${handle.outputFile} —— 终态未知,按未完成处理,交下游按证据判定`);
|
|
135
|
+
return 1;
|
|
133
136
|
}
|
|
134
|
-
|
|
135
|
-
|
|
137
|
+
if (term.isError)
|
|
138
|
+
this.log(`Terminal result says error${term.subtype ? ` (${term.subtype})` : ''}`);
|
|
139
|
+
return term.isError ? 1 : 0;
|
|
136
140
|
}
|
|
137
141
|
// ─── Environment Loading ────────────────────────────────────
|
|
138
142
|
loadGlobalEnv() {
|