@coralai/sps-cli 0.65.31 → 0.65.32

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.
Files changed (129) hide show
  1. package/README-CN.md +3 -3
  2. package/README.md +3 -3
  3. package/dist/commands/modelCommand.d.ts.map +1 -1
  4. package/dist/commands/modelCommand.js +5 -92
  5. package/dist/commands/modelCommand.js.map +1 -1
  6. package/dist/commands/pipelineTick.d.ts.map +1 -1
  7. package/dist/commands/pipelineTick.js +0 -9
  8. package/dist/commands/pipelineTick.js.map +1 -1
  9. package/dist/commands/projectInit.d.ts +1 -1
  10. package/dist/commands/setup.d.ts.map +1 -1
  11. package/dist/commands/setup.js +0 -3
  12. package/dist/commands/setup.js.map +1 -1
  13. package/dist/commands/tick.d.ts.map +1 -1
  14. package/dist/commands/tick.js +0 -12
  15. package/dist/commands/tick.js.map +1 -1
  16. package/dist/console/index.d.ts.map +1 -1
  17. package/dist/console/index.js +27 -4
  18. package/dist/console/index.js.map +1 -1
  19. package/dist/console/routes/audit.d.ts.map +1 -1
  20. package/dist/console/routes/audit.js +4 -1
  21. package/dist/console/routes/audit.js.map +1 -1
  22. package/dist/console/routes/chat.d.ts.map +1 -1
  23. package/dist/console/routes/chat.js +14 -21
  24. package/dist/console/routes/chat.js.map +1 -1
  25. package/dist/console/routes/health.d.ts +14 -0
  26. package/dist/console/routes/health.d.ts.map +1 -0
  27. package/dist/console/routes/health.js +60 -0
  28. package/dist/console/routes/health.js.map +1 -0
  29. package/dist/console/routes/projects.js +1 -1
  30. package/dist/console/routes/projects.js.map +1 -1
  31. package/dist/console/routes/providers.d.ts.map +1 -1
  32. package/dist/console/routes/providers.js +2 -6
  33. package/dist/console/routes/providers.js.map +1 -1
  34. package/dist/console-assets/assets/{ShowcasePage-GF_0kvZG.js → ShowcasePage-NmXybDqC.js} +1 -1
  35. package/dist/console-assets/assets/{index-lgFYFfCi.js → index-DCAnGMiQ.js} +207 -217
  36. package/dist/console-assets/index.html +1 -1
  37. package/dist/core/agents/workerModelEnv.d.ts +2 -3
  38. package/dist/core/agents/workerModelEnv.d.ts.map +1 -1
  39. package/dist/core/agents/workerModelEnv.js +4 -17
  40. package/dist/core/agents/workerModelEnv.js.map +1 -1
  41. package/dist/core/markerFile.d.ts.map +1 -1
  42. package/dist/core/markerFile.js +3 -2
  43. package/dist/core/markerFile.js.map +1 -1
  44. package/dist/core/memory2/config.d.ts +11 -2
  45. package/dist/core/memory2/config.d.ts.map +1 -1
  46. package/dist/core/memory2/config.js +28 -4
  47. package/dist/core/memory2/config.js.map +1 -1
  48. package/dist/core/memory2/distill.d.ts.map +1 -1
  49. package/dist/core/memory2/distill.js +7 -5
  50. package/dist/core/memory2/distill.js.map +1 -1
  51. package/dist/core/queue.d.ts.map +1 -1
  52. package/dist/core/queue.js +2 -1
  53. package/dist/core/queue.js.map +1 -1
  54. package/dist/core/reclaimConfig.d.ts.map +1 -1
  55. package/dist/core/reclaimConfig.js +14 -2
  56. package/dist/core/reclaimConfig.js.map +1 -1
  57. package/dist/core/skills/SkillsManager.d.ts +5 -1
  58. package/dist/core/skills/SkillsManager.d.ts.map +1 -1
  59. package/dist/core/skills/SkillsManager.js +41 -2
  60. package/dist/core/skills/SkillsManager.js.map +1 -1
  61. package/dist/daemon/daemonClient.d.ts.map +1 -1
  62. package/dist/daemon/daemonClient.js +15 -1
  63. package/dist/daemon/daemonClient.js.map +1 -1
  64. package/dist/daemon/orphanReclaim.d.ts +34 -0
  65. package/dist/daemon/orphanReclaim.d.ts.map +1 -0
  66. package/dist/daemon/orphanReclaim.js +64 -0
  67. package/dist/daemon/orphanReclaim.js.map +1 -0
  68. package/dist/daemon/runGovernor.d.ts +11 -0
  69. package/dist/daemon/runGovernor.d.ts.map +1 -1
  70. package/dist/daemon/runGovernor.js +28 -0
  71. package/dist/daemon/runGovernor.js.map +1 -1
  72. package/dist/daemon/sessionDaemon.d.ts +8 -0
  73. package/dist/daemon/sessionDaemon.d.ts.map +1 -1
  74. package/dist/daemon/sessionDaemon.js +129 -6
  75. package/dist/daemon/sessionDaemon.js.map +1 -1
  76. package/dist/engines/MonitorEngine.d.ts.map +1 -1
  77. package/dist/engines/MonitorEngine.js +27 -7
  78. package/dist/engines/MonitorEngine.js.map +1 -1
  79. package/dist/infra/filesystem.d.ts +5 -0
  80. package/dist/infra/filesystem.d.ts.map +1 -1
  81. package/dist/infra/filesystem.js +13 -1
  82. package/dist/infra/filesystem.js.map +1 -1
  83. package/dist/main.js +1 -6
  84. package/dist/main.js.map +1 -1
  85. package/dist/openai-agent/runWorker.d.ts.map +1 -1
  86. package/dist/openai-agent/runWorker.js +10 -6
  87. package/dist/openai-agent/runWorker.js.map +1 -1
  88. package/dist/openai-agent/storage/toolLedger.d.ts +9 -1
  89. package/dist/openai-agent/storage/toolLedger.d.ts.map +1 -1
  90. package/dist/openai-agent/storage/toolLedger.js +11 -2
  91. package/dist/openai-agent/storage/toolLedger.js.map +1 -1
  92. package/dist/providers/RuntimeSessionRuntime.d.ts.map +1 -1
  93. package/dist/providers/RuntimeSessionRuntime.js +14 -1
  94. package/dist/providers/RuntimeSessionRuntime.js.map +1 -1
  95. package/dist/providers/llm/workerTools.d.ts.map +1 -1
  96. package/dist/providers/llm/workerTools.js +9 -3
  97. package/dist/providers/llm/workerTools.js.map +1 -1
  98. package/dist/providers/mcp/spsMcpServer.d.ts +4 -0
  99. package/dist/providers/mcp/spsMcpServer.d.ts.map +1 -1
  100. package/dist/providers/mcp/spsMcpServer.js +7 -1
  101. package/dist/providers/mcp/spsMcpServer.js.map +1 -1
  102. package/dist/runtime/backends/process/ExternalProcessBackend.d.ts +4 -0
  103. package/dist/runtime/backends/process/ExternalProcessBackend.d.ts.map +1 -1
  104. package/dist/runtime/backends/process/ExternalProcessBackend.js +49 -5
  105. package/dist/runtime/backends/process/ExternalProcessBackend.js.map +1 -1
  106. package/dist/runtime/service/AgentRuntime.d.ts.map +1 -1
  107. package/dist/runtime/service/AgentRuntime.js +8 -4
  108. package/dist/runtime/service/AgentRuntime.js.map +1 -1
  109. package/dist/runtime/service/FileRecordStore.d.ts +13 -0
  110. package/dist/runtime/service/FileRecordStore.d.ts.map +1 -1
  111. package/dist/runtime/service/FileRecordStore.js +90 -3
  112. package/dist/runtime/service/FileRecordStore.js.map +1 -1
  113. package/dist/services/ChatService.d.ts +1 -1
  114. package/dist/services/ChatService.d.ts.map +1 -1
  115. package/dist/services/ProjectService.d.ts +1 -1
  116. package/dist/services/ProjectService.d.ts.map +1 -1
  117. package/package.json +1 -1
  118. package/dist/commands/codexProxyCommand.d.ts +0 -2
  119. package/dist/commands/codexProxyCommand.d.ts.map +0 -1
  120. package/dist/commands/codexProxyCommand.js +0 -81
  121. package/dist/commands/codexProxyCommand.js.map +0 -1
  122. package/dist/console/routes/codexProxy.d.ts +0 -11
  123. package/dist/console/routes/codexProxy.d.ts.map +0 -1
  124. package/dist/console/routes/codexProxy.js +0 -68
  125. package/dist/console/routes/codexProxy.js.map +0 -1
  126. package/dist/core/agents/sidecar/CodexProxyManager.d.ts +0 -79
  127. package/dist/core/agents/sidecar/CodexProxyManager.d.ts.map +0 -1
  128. package/dist/core/agents/sidecar/CodexProxyManager.js +0 -359
  129. package/dist/core/agents/sidecar/CodexProxyManager.js.map +0 -1
@@ -8,7 +8,7 @@
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-lgFYFfCi.js"></script>
11
+ <script type="module" crossorigin src="/assets/index-DCAnGMiQ.js"></script>
12
12
  <link rel="stylesheet" crossorigin href="/assets/index-cxN7rD-p.css">
13
13
  </head>
14
14
  <body>
@@ -1,10 +1,9 @@
1
1
  /**
2
2
  * 由 model + providerId 解析出 worker 该带的 env:
3
3
  * - `ANTHROPIC_MODEL = model`(有 model 才设)
4
- * - `providerId === 'codex-proxy'`BASE_URL 指本地 proxy + AUTH_TOKEN='sps-local'
5
- * - 第三方 anthropic 端点(既非 codex-proxy 也非 official/空)→ 从 providers.json 取 baseUrl/apiKey
4
+ * - 第三方 anthropic 端点(非 official/空) providers.json baseUrl/apiKey
6
5
  * - `providerId === 'official'` 或空 → 只设 ANTHROPIC_MODEL(用官方订阅端点)
7
- * - 任意第三方端点(codex-proxy / 三方)额外设 `CLAUDE_CODE_ATTRIBUTION_HEADER=0`(改善第三方缓存命中)
6
+ * - 第三方端点额外设 `CLAUDE_CODE_ATTRIBUTION_HEADER=0`(改善第三方缓存命中)
8
7
  *
9
8
  * 空对象 = 无需注入(既没 model 也没自定义端点)。
10
9
  */
@@ -1 +1 @@
1
- {"version":3,"file":"workerModelEnv.d.ts","sourceRoot":"","sources":["../../../src/core/agents/workerModelEnv.ts"],"names":[],"mappings":"AAaA;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,CAAC,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAiDxB"}
1
+ {"version":3,"file":"workerModelEnv.d.ts","sourceRoot":"","sources":["../../../src/core/agents/workerModelEnv.ts"],"names":[],"mappings":"AAWA;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,CAAC,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAwCxB"}
@@ -6,17 +6,14 @@
6
6
  * @layer core
7
7
  * @boundedContext worker-lifecycle
8
8
  *
9
- * 与已删的 workerAnthropicEnv 的区别:那个读全局 agents.worker、只认 codex-proxy;这个纯入参驱动。
10
9
  */
11
- import { CODEX_PROXY_ID, codexProxyBaseUrl } from './sidecar/CodexProxyManager.js';
12
10
  import { getProvider } from '../../providers/llm/providers.js';
13
11
  /**
14
12
  * 由 model + providerId 解析出 worker 该带的 env:
15
13
  * - `ANTHROPIC_MODEL = model`(有 model 才设)
16
- * - `providerId === 'codex-proxy'`BASE_URL 指本地 proxy + AUTH_TOKEN='sps-local'
17
- * - 第三方 anthropic 端点(既非 codex-proxy 也非 official/空)→ 从 providers.json 取 baseUrl/apiKey
14
+ * - 第三方 anthropic 端点(非 official/空) providers.json baseUrl/apiKey
18
15
  * - `providerId === 'official'` 或空 → 只设 ANTHROPIC_MODEL(用官方订阅端点)
19
- * - 任意第三方端点(codex-proxy / 三方)额外设 `CLAUDE_CODE_ATTRIBUTION_HEADER=0`(改善第三方缓存命中)
16
+ * - 第三方端点额外设 `CLAUDE_CODE_ATTRIBUTION_HEADER=0`(改善第三方缓存命中)
20
17
  *
21
18
  * 空对象 = 无需注入(既没 model 也没自定义端点)。
22
19
  */
@@ -26,17 +23,7 @@ export function resolveWorkerModelEnv(model, providerId) {
26
23
  if (m)
27
24
  env.ANTHROPIC_MODEL = m;
28
25
  const pid = providerId?.trim();
29
- if (pid === CODEX_PROXY_ID) {
30
- env.ANTHROPIC_BASE_URL = codexProxyBaseUrl();
31
- env.ANTHROPIC_AUTH_TOKEN = 'sps-local';
32
- // claude-code-proxy 要求(否则 Claude Code 启动/后台任务打空 proxy 未实现的端点 → worker 挂):
33
- // 小/快模型也走 proxy;禁非必要流量(warmup/telemetry 等)。
34
- // 🔴 SMALL_FAST 必须落在与主模型同一后端(proxy 按 model 路由):gpt-* → codex 的 mini;
35
- // kimi/cursor 等非 gpt 主模型 → 用主模型自身兜底(保证可路由、不误触发 codex 登录)。
36
- env.ANTHROPIC_SMALL_FAST_MODEL = m && !/^gpt-/i.test(m) ? m : 'gpt-5.4-mini';
37
- env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC = '1';
38
- }
39
- else if (pid && pid !== 'official') {
26
+ if (pid && pid !== 'official') {
40
27
  const provider = getProvider(pid);
41
28
  if (provider?.baseUrl)
42
29
  env.ANTHROPIC_BASE_URL = provider.baseUrl;
@@ -62,7 +49,7 @@ export function resolveWorkerModelEnv(model, providerId) {
62
49
  }
63
50
  }
64
51
  }
65
- // 第三方端点(codex-proxy / 三方 anthropic 兼容)→ 关掉逐请求变化的归因头。
52
+ // 第三方 anthropic 兼容端点 → 关掉逐请求变化的归因头。
66
53
  // Claude Code 2.1.x 把 `x-anthropic-billing-header`(含每请求都变的 cc_prev_req)作为一段
67
54
  // 系统提示词注入;第三方 API 会把它算进 prompt-cache key → 每次 key 不同 → 缓存命中率归零、
68
55
  // token 暴涨、变慢。设 CLAUDE_CODE_ATTRIBUTION_HEADER=0 让 Claude Code 不注入该段。
@@ -1 +1 @@
1
- {"version":3,"file":"workerModelEnv.js","sourceRoot":"","sources":["../../../src/core/agents/workerModelEnv.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAE/D;;;;;;;;;GASG;AACH,MAAM,UAAU,qBAAqB,CACnC,KAAc,EACd,UAAmB;IAEnB,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,MAAM,CAAC,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC;IACxB,IAAI,CAAC;QAAE,GAAG,CAAC,eAAe,GAAG,CAAC,CAAC;IAE/B,MAAM,GAAG,GAAG,UAAU,EAAE,IAAI,EAAE,CAAC;IAC/B,IAAI,GAAG,KAAK,cAAc,EAAE,CAAC;QAC3B,GAAG,CAAC,kBAAkB,GAAG,iBAAiB,EAAE,CAAC;QAC7C,GAAG,CAAC,oBAAoB,GAAG,WAAW,CAAC;QACvC,0EAA0E;QAC1E,4CAA4C;QAC5C,qEAAqE;QACrE,6DAA6D;QAC7D,GAAG,CAAC,0BAA0B,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;QAC7E,GAAG,CAAC,wCAAwC,GAAG,GAAG,CAAC;IACrD,CAAC;SAAM,IAAI,GAAG,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,QAAQ,EAAE,OAAO;YAAE,GAAG,CAAC,kBAAkB,GAAG,QAAQ,CAAC,OAAO,CAAC;QACjE,IAAI,QAAQ,EAAE,OAAO,EAAE,CAAC;YACtB,wDAAwD;YACxD,wDAAwD;YACxD,GAAG,CAAC,oBAAoB,GAAG,QAAQ,CAAC,MAAM,IAAI,WAAW,CAAC;QAC5D,CAAC;QACD,IAAI,CAAC,EAAE,CAAC;YACN,4DAA4D;YAC5D,GAAG,CAAC,6BAA6B,GAAG,CAAC,CAAC;YACtC,GAAG,CAAC,8BAA8B,GAAG,CAAC,CAAC;YACvC,GAAG,CAAC,4BAA4B,GAAG,CAAC,CAAC;YACrC,GAAG,CAAC,0BAA0B,GAAG,CAAC,CAAC;QACrC,CAAC;QACD,kEAAkE;QAClE,kEAAkE;QAClE,MAAM,KAAK,GAAI,QAA+C,EAAE,QAAQ,CAAC;QACzE,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,EAAE,CAAC;gBACtE,IAAI,OAAO,CAAC,KAAK,QAAQ;oBAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;IACH,CAAC;IAED,qDAAqD;IACrD,4EAA4E;IAC5E,gEAAgE;IAChE,sEAAsE;IACtE,mDAAmD;IACnD,IAAI,GAAG,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;QAC9B,GAAG,CAAC,8BAA8B,GAAG,GAAG,CAAC;IAC3C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"workerModelEnv.js","sourceRoot":"","sources":["../../../src/core/agents/workerModelEnv.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAE/D;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CACnC,KAAc,EACd,UAAmB;IAEnB,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,MAAM,CAAC,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC;IACxB,IAAI,CAAC;QAAE,GAAG,CAAC,eAAe,GAAG,CAAC,CAAC;IAE/B,MAAM,GAAG,GAAG,UAAU,EAAE,IAAI,EAAE,CAAC;IAC/B,IAAI,GAAG,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,QAAQ,EAAE,OAAO;YAAE,GAAG,CAAC,kBAAkB,GAAG,QAAQ,CAAC,OAAO,CAAC;QACjE,IAAI,QAAQ,EAAE,OAAO,EAAE,CAAC;YACtB,wDAAwD;YACxD,wDAAwD;YACxD,GAAG,CAAC,oBAAoB,GAAG,QAAQ,CAAC,MAAM,IAAI,WAAW,CAAC;QAC5D,CAAC;QACD,IAAI,CAAC,EAAE,CAAC;YACN,4DAA4D;YAC5D,GAAG,CAAC,6BAA6B,GAAG,CAAC,CAAC;YACtC,GAAG,CAAC,8BAA8B,GAAG,CAAC,CAAC;YACvC,GAAG,CAAC,4BAA4B,GAAG,CAAC,CAAC;YACrC,GAAG,CAAC,0BAA0B,GAAG,CAAC,CAAC;QACrC,CAAC;QACD,kEAAkE;QAClE,kEAAkE;QAClE,MAAM,KAAK,GAAI,QAA+C,EAAE,QAAQ,CAAC;QACzE,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,EAAE,CAAC;gBACtE,IAAI,OAAO,CAAC,KAAK,QAAQ;oBAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;IACH,CAAC;IAED,oCAAoC;IACpC,4EAA4E;IAC5E,gEAAgE;IAChE,sEAAsE;IACtE,mDAAmD;IACnD,IAAI,GAAG,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;QAC9B,GAAG,CAAC,8BAA8B,GAAG,GAAG,CAAC;IAC3C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"markerFile.d.ts","sourceRoot":"","sources":["../../src/core/markerFile.ts"],"names":[],"mappings":"AAuBA,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,gFAAgF;IAChF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sFAAsF;IACtF,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAGlF;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,EAChC,KAAK,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3C,IAAI,CAeN;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,EAC3C,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,GAC/B,IAAI,CAeN;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAiB7F"}
1
+ {"version":3,"file":"markerFile.d.ts","sourceRoot":"","sources":["../../src/core/markerFile.ts"],"names":[],"mappings":"AAwBA,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,gFAAgF;IAChF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sFAAsF;IACtF,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAGlF;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,EAChC,KAAK,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3C,IAAI,CAeN;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,EAC3C,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,GAC/B,IAAI,CAeN;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAiB7F"}
@@ -17,6 +17,7 @@
17
17
  * - 原因:claude 子进程 env 在 spawn 时冻结;多卡复用时 env 会 stale。hook
18
18
  * 脚本必须通过文件反查当前卡,不能信 env。
19
19
  */
20
+ import { uniqueTmpPath } from '../infra/filesystem.js';
20
21
  import { existsSync, readFileSync, renameSync, writeFileSync } from 'node:fs';
21
22
  import { dirname, resolve } from 'node:path';
22
23
  import { workerMarkerFile } from '../shared/runtimePaths.js';
@@ -44,7 +45,7 @@ export function getMarkerPathFromStateFile(stateFile, slot) {
44
45
  */
45
46
  export function writeCurrentCardFile(finalPath, cardId, stage, onError, extra) {
46
47
  try {
47
- const tmpPath = `${finalPath}.tmp`;
48
+ const tmpPath = uniqueTmpPath(finalPath); // 唯一名:见 filesystem.uniqueTmpPath
48
49
  const payload = {
49
50
  cardId,
50
51
  stage,
@@ -74,7 +75,7 @@ export function patchCurrentCardFile(finalPath, patch, onError) {
74
75
  ...(patch.sessionId ? { sessionId: patch.sessionId } : {}),
75
76
  ...(patch.pid !== undefined ? { pid: patch.pid } : {}),
76
77
  };
77
- const tmpPath = `${finalPath}.tmp`;
78
+ const tmpPath = uniqueTmpPath(finalPath); // 唯一名:见 filesystem.uniqueTmpPath
78
79
  writeFileSync(tmpPath, JSON.stringify(merged));
79
80
  renameSync(tmpPath, finalPath);
80
81
  }
@@ -1 +1 @@
1
- {"version":3,"file":"markerFile.js","sourceRoot":"","sources":["../../src/core/markerFile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"markerFile.js","sourceRoot":"","sources":["../../src/core/markerFile.ts"],"names":[],"mappings":"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"}
@@ -23,8 +23,17 @@ export declare function memoryMode(): MemoryMode;
23
23
  export declare function isMemoryOff(): boolean;
24
24
  /** 是否启用 LLM 蒸馏捕获(SPS_MEMORY_DISTILL=on)。关则走规则版(取末尾结论段)。 */
25
25
  export declare function distillEnabled(): boolean;
26
- /** 蒸馏用的 LLM 端点(Anthropic 兼容)。默认 claude-code-proxy(ChatGPT 订阅)。 */
26
+ /**
27
+ * 蒸馏用的 LLM 端点(Anthropic 兼容)。**无缺省**——必须显式配 SPS_MEMORY_DISTILL_URL,
28
+ * 未配则蒸馏不生效(回落规则版)。历史上缺省指向 claude-code-proxy,该 sidecar 已移除;
29
+ * 蒸馏是后台高频杂活,配一个便宜的第三方 key 端点即可,别占订阅配额。
30
+ */
27
31
  export declare function distillUrl(): string;
28
- /** 蒸馏模型名。默认便宜快的 claude-haiku-4-5。 */
32
+ /** 蒸馏模型名(随端点定,无缺省)。 */
29
33
  export declare function distillModel(): string;
34
+ /**
35
+ * 蒸馏端点的 API key:优先 SPS_MEMORY_DISTILL_KEY,否则从 LLM provider 注册表按 baseUrl
36
+ * 匹配取(密钥单一真源在注册表,不用手抄一份到 env)。取不到返空串。
37
+ */
38
+ export declare function distillApiKey(): string;
30
39
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/core/memory2/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,gBAAgB,GAAG,UAAU,GAAG,MAAM,CAAC;AAW1E,wDAAwD;AACxD,wBAAgB,mBAAmB,IAAI,IAAI,CAAqB;AAEhE,4DAA4D;AAC5D,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEzD;AAED,+BAA+B;AAC/B,wBAAgB,UAAU,IAAI,UAAU,CAIvC;AAED,wCAAwC;AACxC,wBAAgB,WAAW,IAAI,OAAO,CAErC;AAID,2DAA2D;AAC3D,wBAAgB,cAAc,IAAI,OAAO,CAExC;AACD,kEAAkE;AAClE,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AACD,qCAAqC;AACrC,wBAAgB,YAAY,IAAI,MAAM,CAErC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/core/memory2/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAKH,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,gBAAgB,GAAG,UAAU,GAAG,MAAM,CAAC;AAW1E,wDAAwD;AACxD,wBAAgB,mBAAmB,IAAI,IAAI,CAAqB;AAEhE,4DAA4D;AAC5D,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEzD;AAED,+BAA+B;AAC/B,wBAAgB,UAAU,IAAI,UAAU,CAIvC;AAED,wCAAwC;AACxC,wBAAgB,WAAW,IAAI,OAAO,CAErC;AAID,2DAA2D;AAC3D,wBAAgB,cAAc,IAAI,OAAO,CAExC;AACD;;;;GAIG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AACD,uBAAuB;AACvB,wBAAgB,YAAY,IAAI,MAAM,CAErC;AACD;;;GAGG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAWtC"}
@@ -13,6 +13,7 @@
13
13
  * @boundedContext memory
14
14
  */
15
15
  import { loadGlobalEnv } from '../config.js';
16
+ import { listProviders } from '../../providers/llm/providers.js';
16
17
  // ~/.coral/env 的缓存:console/daemon/CLI 启动不会把它注入 process.env,故 memory 配置需自己回落读它。
17
18
  // 但显式设了 SPS_MEMORY_ROOT(测试/隔离场景)则不回落全局 env,避免读到真实配置污染隔离环境。
18
19
  let _fileEnv = null;
@@ -51,12 +52,35 @@ export function isMemoryOff() {
51
52
  export function distillEnabled() {
52
53
  return (memoryEnv('SPS_MEMORY_DISTILL') ?? '').toLowerCase() === 'on';
53
54
  }
54
- /** 蒸馏用的 LLM 端点(Anthropic 兼容)。默认 claude-code-proxy(ChatGPT 订阅)。 */
55
+ /**
56
+ * 蒸馏用的 LLM 端点(Anthropic 兼容)。**无缺省**——必须显式配 SPS_MEMORY_DISTILL_URL,
57
+ * 未配则蒸馏不生效(回落规则版)。历史上缺省指向 claude-code-proxy,该 sidecar 已移除;
58
+ * 蒸馏是后台高频杂活,配一个便宜的第三方 key 端点即可,别占订阅配额。
59
+ */
55
60
  export function distillUrl() {
56
- return (memoryEnv('SPS_MEMORY_DISTILL_URL') ?? 'http://127.0.0.1:18765').replace(/\/+$/, '');
61
+ return (memoryEnv('SPS_MEMORY_DISTILL_URL') ?? '').replace(/\/+$/, '');
57
62
  }
58
- /** 蒸馏模型名。默认便宜快的 claude-haiku-4-5。 */
63
+ /** 蒸馏模型名(随端点定,无缺省)。 */
59
64
  export function distillModel() {
60
- return memoryEnv('SPS_MEMORY_DISTILL_MODEL') ?? 'claude-haiku-4-5';
65
+ return memoryEnv('SPS_MEMORY_DISTILL_MODEL') ?? '';
66
+ }
67
+ /**
68
+ * 蒸馏端点的 API key:优先 SPS_MEMORY_DISTILL_KEY,否则从 LLM provider 注册表按 baseUrl
69
+ * 匹配取(密钥单一真源在注册表,不用手抄一份到 env)。取不到返空串。
70
+ */
71
+ export function distillApiKey() {
72
+ const explicit = memoryEnv('SPS_MEMORY_DISTILL_KEY');
73
+ if (explicit)
74
+ return explicit;
75
+ const url = distillUrl();
76
+ if (!url)
77
+ return '';
78
+ try {
79
+ const hit = listProviders('anthropic').find((p) => (p.baseUrl ?? '').replace(/\/+$/, '') === url);
80
+ return hit?.apiKey ?? '';
81
+ }
82
+ catch {
83
+ return '';
84
+ }
61
85
  }
62
86
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/core/memory2/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAI7C,+EAA+E;AAC/E,2DAA2D;AAC3D,IAAI,QAAQ,GAAkC,IAAI,CAAC;AACnD,SAAS,OAAO;IACd,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe;QAAE,OAAO,EAAE,CAAC;IAC3C,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,IAAI,CAAC;QAAC,QAAQ,GAAG,aAAa,EAA4B,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,QAAQ,GAAG,EAAE,CAAC;IAAC,CAAC;IACtF,OAAO,QAAQ,CAAC;AAClB,CAAC;AACD,wDAAwD;AACxD,MAAM,UAAU,mBAAmB,KAAW,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC;AAEhE,4DAA4D;AAC5D,MAAM,UAAU,SAAS,CAAC,GAAW;IACnC,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;AAC5C,CAAC;AAED,+BAA+B;AAC/B,MAAM,UAAU,UAAU;IACxB,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC/D,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,gBAAgB;QAAE,OAAO,GAAG,CAAC;IACjF,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,wCAAwC;AACxC,MAAM,UAAU,WAAW;IACzB,OAAO,UAAU,EAAE,KAAK,MAAM,CAAC;AACjC,CAAC;AAED,iDAAiD;AAEjD,2DAA2D;AAC3D,MAAM,UAAU,cAAc;IAC5B,OAAO,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC;AACxE,CAAC;AACD,kEAAkE;AAClE,MAAM,UAAU,UAAU;IACxB,OAAO,CAAC,SAAS,CAAC,wBAAwB,CAAC,IAAI,wBAAwB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAC/F,CAAC;AACD,qCAAqC;AACrC,MAAM,UAAU,YAAY;IAC1B,OAAO,SAAS,CAAC,0BAA0B,CAAC,IAAI,kBAAkB,CAAC;AACrE,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/core/memory2/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAIjE,+EAA+E;AAC/E,2DAA2D;AAC3D,IAAI,QAAQ,GAAkC,IAAI,CAAC;AACnD,SAAS,OAAO;IACd,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe;QAAE,OAAO,EAAE,CAAC;IAC3C,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,IAAI,CAAC;QAAC,QAAQ,GAAG,aAAa,EAA4B,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,QAAQ,GAAG,EAAE,CAAC;IAAC,CAAC;IACtF,OAAO,QAAQ,CAAC;AAClB,CAAC;AACD,wDAAwD;AACxD,MAAM,UAAU,mBAAmB,KAAW,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC;AAEhE,4DAA4D;AAC5D,MAAM,UAAU,SAAS,CAAC,GAAW;IACnC,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;AAC5C,CAAC;AAED,+BAA+B;AAC/B,MAAM,UAAU,UAAU;IACxB,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC/D,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,gBAAgB;QAAE,OAAO,GAAG,CAAC;IACjF,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,wCAAwC;AACxC,MAAM,UAAU,WAAW;IACzB,OAAO,UAAU,EAAE,KAAK,MAAM,CAAC;AACjC,CAAC;AAED,iDAAiD;AAEjD,2DAA2D;AAC3D,MAAM,UAAU,cAAc;IAC5B,OAAO,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC;AACxE,CAAC;AACD;;;;GAIG;AACH,MAAM,UAAU,UAAU;IACxB,OAAO,CAAC,SAAS,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACzE,CAAC;AACD,uBAAuB;AACvB,MAAM,UAAU,YAAY;IAC1B,OAAO,SAAS,CAAC,0BAA0B,CAAC,IAAI,EAAE,CAAC;AACrD,CAAC;AACD;;;GAGG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,QAAQ,GAAG,SAAS,CAAC,wBAAwB,CAAC,CAAC;IACrD,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC;IACzB,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC;QAClG,OAAO,GAAG,EAAE,MAAM,IAAI,EAAE,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"distill.d.ts","sourceRoot":"","sources":["../../../src/core/memory2/distill.ts"],"names":[],"mappings":"AAUA,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAEpE,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,cAAc,CAAC;IACzB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAyCD;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,CAuB3F"}
1
+ {"version":3,"file":"distill.d.ts","sourceRoot":"","sources":["../../../src/core/memory2/distill.ts"],"names":[],"mappings":"AAWA,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAEpE,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,cAAc,CAAC;IACzB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAyCD;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,CAwB3F"}
@@ -2,12 +2,13 @@
2
2
  * @module core/memory2/distill
3
3
  * @description LLM 蒸馏(设计 §5,SPS_MEMORY_DISTILL=on):把一张卡/会话的**完整归一化叙述**交给便宜 LLM,
4
4
  * 提炼成 0–N 条**可复用、耐用**的原子记忆(决策/约定/坑/模式/架构),而非规则版只取末尾一段。
5
- * 走 Anthropic 兼容端点(默认 claude-code-proxy :18765 / claude-haiku-4-5,即用户 ChatGPT 订阅)。
5
+ * 走 **显式配置**的 Anthropic 兼容端点(SPS_MEMORY_DISTILL_URL/_MODEL,key provider
6
+ * 注册表按 baseUrl 取)。未配端点 = 蒸馏不生效,调用方回落规则版。
6
7
  * 红线:输入来自 subscribe 的归一化文本,不碰 jsonl。任何失败 → 返 null,调用方回退规则版。
7
8
  * @layer core
8
9
  * @boundedContext memory
9
10
  */
10
- import { distillModel, distillUrl } from './config.js';
11
+ import { distillApiKey, distillModel, distillUrl } from './config.js';
11
12
  import { MEMORY_CATEGORIES } from './types.js';
12
13
  const MAX_INPUT_CHARS = 20000; // 太长取末尾(结论/近期决策在后)
13
14
  const REQUEST_TIMEOUT_MS = 30000;
@@ -60,7 +61,8 @@ function parseMemories(text) {
60
61
  */
61
62
  export async function distillNarrative(narrative) {
62
63
  const url = distillUrl();
63
- if (!url || !narrative.trim())
64
+ const model = distillModel();
65
+ if (!url || !model || !narrative.trim())
64
66
  return null;
65
67
  const input = narrative.length > MAX_INPUT_CHARS ? narrative.slice(-MAX_INPUT_CHARS) : narrative;
66
68
  const ac = new AbortController();
@@ -68,8 +70,8 @@ export async function distillNarrative(narrative) {
68
70
  try {
69
71
  const r = await fetch(`${url}/v1/messages`, {
70
72
  method: 'POST',
71
- headers: { 'content-type': 'application/json', 'x-api-key': 'sps-memory-distill', 'anthropic-version': '2023-06-01' },
72
- body: JSON.stringify({ model: distillModel(), max_tokens: 1500, messages: [{ role: 'user', content: PROMPT(input) }] }),
73
+ headers: { 'content-type': 'application/json', 'x-api-key': distillApiKey(), 'anthropic-version': '2023-06-01' },
74
+ body: JSON.stringify({ model, max_tokens: 1500, messages: [{ role: 'user', content: PROMPT(input) }] }),
73
75
  signal: ac.signal,
74
76
  });
75
77
  if (!r.ok)
@@ -1 +1 @@
1
- {"version":3,"file":"distill.js","sourceRoot":"","sources":["../../../src/core/memory2/distill.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"distill.js","sourceRoot":"","sources":["../../../src/core/memory2/distill.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../src/core/queue.ts"],"names":[],"mappings":"AAiBA;;;GAGG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAUpD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAIlE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAMnE"}
1
+ {"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../src/core/queue.ts"],"names":[],"mappings":"AAkBA;;;GAGG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAUpD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAIlE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAMnE"}
@@ -13,6 +13,7 @@
13
13
  * @layer core
14
14
  * @boundedContext pipeline
15
15
  */
16
+ import { uniqueTmpPath } from '../infra/filesystem.js';
16
17
  import { existsSync, readFileSync, renameSync, writeFileSync } from 'node:fs';
17
18
  /**
18
19
  * Read pipeline_order.json — a pure array of seq numbers.
@@ -36,7 +37,7 @@ export function readQueue(filePath) {
36
37
  * Atomic write of pipeline_order.json.
37
38
  */
38
39
  export function writeQueue(filePath, queue) {
39
- const tmpFile = filePath + '.tmp';
40
+ const tmpFile = uniqueTmpPath(filePath); // 唯一名:固定 .tmp 在并发写下会撕裂
40
41
  writeFileSync(tmpFile, JSON.stringify(queue, null, 2) + '\n');
41
42
  renameSync(tmpFile, filePath);
42
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"queue.js","sourceRoot":"","sources":["../../src/core/queue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE9E;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,QAAgB;IACxC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO,EAAE,CAAC;QACtC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC;IAClE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,QAAgB,EAAE,KAAe;IAC1D,MAAM,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IAClC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC9D,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,QAAgB,EAAE,GAAW;IAC3D,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;IAC/C,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;QACpC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAChC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"queue.js","sourceRoot":"","sources":["../../src/core/queue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE9E;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,QAAgB;IACxC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO,EAAE,CAAC;QACtC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC;IAClE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,QAAgB,EAAE,KAAe;IAC1D,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,uBAAuB;IAChE,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC9D,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,QAAgB,EAAE,GAAW;IAC3D,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;IAC/C,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;QACpC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAChC,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"reclaimConfig.d.ts","sourceRoot":"","sources":["../../src/core/reclaimConfig.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAE1C,oBAAoB;AACpB,wBAAgB,iBAAiB,IAAI,MAAM,CAU1C;AAED,4BAA4B;AAC5B,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAGvD"}
1
+ {"version":3,"file":"reclaimConfig.d.ts","sourceRoot":"","sources":["../../src/core/reclaimConfig.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAQ1C,oBAAoB;AACpB,wBAAgB,iBAAiB,IAAI,MAAM,CAgB1C;AAED,4BAA4B;AAC5B,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAIvD"}
@@ -5,21 +5,32 @@
5
5
  * 空闲 = 距上次"真实活动"(建/派/订阅),不含存活探测;见 sessionDaemon.pollSessions。
6
6
  * @layer core
7
7
  */
8
- import { mkdirSync, readFileSync, writeFileSync } from 'node:fs';
8
+ import { mkdirSync, readFileSync, statSync, writeFileSync } from 'node:fs';
9
9
  import { homedir } from 'node:os';
10
10
  import { dirname, resolve } from 'node:path';
11
11
  const FILE = resolve(homedir(), '.coral', 'sessions', 'reclaim.json');
12
12
  export const DEFAULT_RECLAIM_MINUTES = 10;
13
+ /**
14
+ * mtime 缓存:daemon 的 pollSessions **每 2 秒**调一次本函数。裸读文件意味着每 2 秒
15
+ * 一次同步 I/O 卡在事件循环上(而这个值几乎从不变)。改为只 stat(便宜)、mtime 变了才读。
16
+ */
17
+ let cached = null;
13
18
  /** 当前生效的空闲回收分钟数。 */
14
19
  export function getReclaimMinutes() {
15
20
  try {
21
+ const mtimeMs = statSync(FILE).mtimeMs;
22
+ if (cached && cached.mtimeMs === mtimeMs)
23
+ return cached.minutes;
16
24
  const j = JSON.parse(readFileSync(FILE, 'utf-8'));
17
- if (typeof j.idleMinutes === 'number' && j.idleMinutes > 0)
25
+ if (typeof j.idleMinutes === 'number' && j.idleMinutes > 0) {
26
+ cached = { mtimeMs, minutes: j.idleMinutes };
18
27
  return j.idleMinutes;
28
+ }
19
29
  }
20
30
  catch {
21
31
  /* 无文件 → 走 env / 默认 */
22
32
  }
33
+ cached = null;
23
34
  const env = parseInt(process.env.SPS_SESSION_TTL_MINUTES || '', 10);
24
35
  if (Number.isFinite(env) && env > 0)
25
36
  return env;
@@ -29,5 +40,6 @@ export function getReclaimMinutes() {
29
40
  export function setReclaimMinutes(minutes) {
30
41
  mkdirSync(dirname(FILE), { recursive: true });
31
42
  writeFileSync(FILE, JSON.stringify({ idleMinutes: minutes }, null, 2));
43
+ cached = null; // 同进程内立即生效,不等 mtime 比对
32
44
  }
33
45
  //# sourceMappingURL=reclaimConfig.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reclaimConfig.js","sourceRoot":"","sources":["../../src/core/reclaimConfig.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE7C,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;AACtE,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAE1C,oBAAoB;AACpB,MAAM,UAAU,iBAAiB;IAC/B,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAA6B,CAAC;QAC9E,IAAI,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,IAAI,CAAC,CAAC,WAAW,GAAG,CAAC;YAAE,OAAO,CAAC,CAAC,WAAW,CAAC;IACnF,CAAC;IAAC,MAAM,CAAC;QACP,sBAAsB;IACxB,CAAC;IACD,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IACpE,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IAChD,OAAO,uBAAuB,CAAC;AACjC,CAAC;AAED,4BAA4B;AAC5B,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACzE,CAAC"}
1
+ {"version":3,"file":"reclaimConfig.js","sourceRoot":"","sources":["../../src/core/reclaimConfig.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE7C,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;AACtE,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAE1C;;;GAGG;AACH,IAAI,MAAM,GAAgD,IAAI,CAAC;AAE/D,oBAAoB;AACpB,MAAM,UAAU,iBAAiB;IAC/B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;QACvC,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO;YAAE,OAAO,MAAM,CAAC,OAAO,CAAC;QAChE,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAA6B,CAAC;QAC9E,IAAI,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,IAAI,CAAC,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;YAC3D,MAAM,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7C,OAAO,CAAC,CAAC,WAAW,CAAC;QACvB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,sBAAsB;IACxB,CAAC;IACD,MAAM,GAAG,IAAI,CAAC;IACd,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IACpE,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IAChD,OAAO,uBAAuB,CAAC;AACjC,CAAC;AAED,4BAA4B;AAC5B,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACvE,MAAM,GAAG,IAAI,CAAC,CAAC,uBAAuB;AACxC,CAAC"}
@@ -9,6 +9,8 @@ export interface SkillsManagerOpts {
9
9
  /** 随包内建 monitor-skills 目录(可选,最低优先级)。 */
10
10
  bundledMonitorSkillsDir?: string;
11
11
  }
12
+ /** 供测试/热重载清空进程级缓存。 */
13
+ export declare function clearSkillsDiscoverCache(): void;
12
14
  export declare class SkillsManager {
13
15
  private readonly cwd;
14
16
  private readonly home;
@@ -18,7 +20,9 @@ export declare class SkillsManager {
18
20
  constructor(opts: SkillsManagerOpts);
19
21
  /** 某命名空间的根目录,**高→低优先级**(项目 > 全局 > 内建)。 */
20
22
  private roots;
21
- /** 多源合并后的全部元数据(同名 project 胜)。结果缓存。 */
23
+ /** 根目录 mtime 指纹:增删 skill 会改变目录 mtime → 缓存立即失效。 */
24
+ private rootsStamp;
25
+ /** 多源合并后的全部元数据(同名 project 胜)。结果缓存(实例级 + 进程级)。 */
22
26
  discover(ns?: SkillNamespace): SkillMeta[];
23
27
  /** gating:把全集收窄成合格集(§4)。 */
24
28
  eligible(metas: SkillMeta[], opts?: GateOpts): SkillMeta[];
@@ -1 +1 @@
1
- {"version":3,"file":"SkillsManager.d.ts","sourceRoot":"","sources":["../../../src/core/skills/SkillsManager.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,QAAQ,EACR,SAAS,EACT,cAAc,EACd,WAAW,EACX,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAKpB,MAAM,WAAW,iBAAiB;IAChC,gFAAgF;IAChF,GAAG,EAAE,MAAM,CAAC;IACZ,sDAAsD;IACtD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,wCAAwC;IACxC,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAOD,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0C;IAClE,uCAAuC;IACvC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0C;gBAEpD,IAAI,EAAE,iBAAiB;IASnC,0CAA0C;IAC1C,OAAO,CAAC,KAAK;IAmBb,sCAAsC;IACtC,QAAQ,CAAC,EAAE,GAAE,cAAyB,GAAG,SAAS,EAAE;IAepD,4BAA4B;IAC5B,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,IAAI,GAAE,QAAa,GAAG,SAAS,EAAE;IAS9D;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,SAAI,GAAG,SAAS,EAAE;IAsCjE,6EAA6E;IAC7E,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM;IAevC,+DAA+D;IAC/D,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM;IAMnC,mCAAmC;IACnC,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE;IAMnC,8DAA8D;IAC9D,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAE,cAAyB,GAAG,MAAM,GAAG,IAAI;IAYhE,mDAAmD;IACnD,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAE,cAAyB,GAAG,gBAAgB;IASvE,2CAA2C;IAC3C,MAAM,IAAI,IAAI;CAGf;AA2BD;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,WAAW,GAClB,SAAS,GAAG,IAAI,CAqClB;AAKD,qEAAqE;AACrE,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,OAAO,CAE1E"}
1
+ {"version":3,"file":"SkillsManager.d.ts","sourceRoot":"","sources":["../../../src/core/skills/SkillsManager.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,QAAQ,EACR,SAAS,EACT,cAAc,EACd,WAAW,EACX,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAKpB,MAAM,WAAW,iBAAiB;IAChC,gFAAgF;IAChF,GAAG,EAAE,MAAM,CAAC;IACZ,sDAAsD;IACtD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,wCAAwC;IACxC,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAoBD,sBAAsB;AACtB,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0C;IAClE,uCAAuC;IACvC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0C;gBAEpD,IAAI,EAAE,iBAAiB;IASnC,0CAA0C;IAC1C,OAAO,CAAC,KAAK;IAmBb,kDAAkD;IAClD,OAAO,CAAC,UAAU;IAYlB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,GAAE,cAAyB,GAAG,SAAS,EAAE;IAwBpD,4BAA4B;IAC5B,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,IAAI,GAAE,QAAa,GAAG,SAAS,EAAE;IAS9D;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,SAAI,GAAG,SAAS,EAAE;IAsCjE,6EAA6E;IAC7E,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM;IAevC,+DAA+D;IAC/D,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM;IAMnC,mCAAmC;IACnC,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE;IAMnC,8DAA8D;IAC9D,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAE,cAAyB,GAAG,MAAM,GAAG,IAAI;IAYhE,mDAAmD;IACnD,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAE,cAAyB,GAAG,gBAAgB;IASvE,2CAA2C;IAC3C,MAAM,IAAI,IAAI;CAIf;AA2BD;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,WAAW,GAClB,SAAS,GAAG,IAAI,CAqClB;AAKD,qEAAqE;AACrE,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,OAAO,CAE1E"}
@@ -15,6 +15,22 @@ import { resolve } from 'node:path';
15
15
  import { parse as parseYaml } from 'yaml';
16
16
  /** 正文截断上限(与 spsMcpServer 一致),防超长 SKILL.md 撑爆上下文。 */
17
17
  const MAX_BODY = 12000;
18
+ /**
19
+ * 进程级发现缓存(审计 D4)。
20
+ *
21
+ * 🔴 此前缓存是**实例级**的,而热路径上的 `resolveEligibleSkillNames` 每条 chat 消息都
22
+ * `new SkillsManager(...)` —— 等于每发一条消息就把所有 skill 根目录全量重扫一遍
23
+ * (每个 skill 目录 readdir + 读 SKILL.md 解 frontmatter)。
24
+ *
25
+ * 失效策略:根目录 mtime 指纹(增删 skill 立刻失效)+ 30s TTL(兜住"就地改 frontmatter"
26
+ * 这种不改变目录 mtime 的编辑)。skill **正文**不走这里(load_skill 每次实时读,保持热更新)。
27
+ */
28
+ const DISCOVER_TTL_MS = 30_000;
29
+ const discoverCache = new Map();
30
+ /** 供测试/热重载清空进程级缓存。 */
31
+ export function clearSkillsDiscoverCache() {
32
+ discoverCache.clear();
33
+ }
18
34
  export class SkillsManager {
19
35
  cwd;
20
36
  home;
@@ -47,13 +63,34 @@ export class SkillsManager {
47
63
  return r;
48
64
  }
49
65
  // ── 发现(元数据,轻)──────────────────────────────────────────
50
- /** 多源合并后的全部元数据(同名 project 胜)。结果缓存。 */
66
+ /** 根目录 mtime 指纹:增删 skill 会改变目录 mtime → 缓存立即失效。 */
67
+ rootsStamp(roots) {
68
+ return roots
69
+ .map((r) => {
70
+ try {
71
+ return `${r.dir}:${statSync(r.dir).mtimeMs}`;
72
+ }
73
+ catch {
74
+ return `${r.dir}:-`;
75
+ }
76
+ })
77
+ .join('|');
78
+ }
79
+ /** 多源合并后的全部元数据(同名 project 胜)。结果缓存(实例级 + 进程级)。 */
51
80
  discover(ns = 'skills') {
52
81
  const cached = this.cache.get(ns);
53
82
  if (cached)
54
83
  return cached;
84
+ const roots = this.roots(ns);
85
+ const key = `${ns}\u0000${this.cwd}\u0000${this.home}`;
86
+ const stamp = this.rootsStamp(roots);
87
+ const hit = discoverCache.get(key);
88
+ if (hit && hit.stamp === stamp && Date.now() - hit.at < DISCOVER_TTL_MS) {
89
+ this.cache.set(ns, hit.list);
90
+ return hit.list;
91
+ }
55
92
  const byName = new Map();
56
- for (const root of this.roots(ns)) {
93
+ for (const root of roots) {
57
94
  // 高→低遍历,**先到先得 = 高优先级胜**(项目盖全局盖内建)。
58
95
  for (const meta of scanRoot(root)) {
59
96
  if (!byName.has(meta.name))
@@ -62,6 +99,7 @@ export class SkillsManager {
62
99
  }
63
100
  const list = [...byName.values()];
64
101
  this.cache.set(ns, list);
102
+ discoverCache.set(key, { stamp, at: Date.now(), list });
65
103
  return list;
66
104
  }
67
105
  /** gating:把全集收窄成合格集(§4)。 */
@@ -179,6 +217,7 @@ export class SkillsManager {
179
217
  /** 清缓存(热重载:目录/文件变更后调一次,下次 discover 重扫)。 */
180
218
  reload() {
181
219
  this.cache.clear();
220
+ discoverCache.clear();
182
221
  }
183
222
  }
184
223
  // ── 内部工具(纯函数)──────────────────────────────────────────
@@ -1 +1 @@
1
- {"version":3,"file":"SkillsManager.js","sourceRoot":"","sources":["../../../src/core/skills/SkillsManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SkillsManager.js","sourceRoot":"","sources":["../../../src/core/skills/SkillsManager.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
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;IAM/B,+DAA+D;IACzD,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;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;CAwDhB;AAED,0CAA0C;AAC1C,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C"}
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;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;IACzD,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"}
@@ -17,6 +17,8 @@ import { existsSync } from 'node:fs';
17
17
  import { createConnection } from 'node:net';
18
18
  import { resolve } from 'node:path';
19
19
  const DEFAULT_SOCKET = process.env.SPS_DAEMON_SOCKET || resolve(process.env.HOME || '/home/coral', '.coral', 'sessions', 'daemon.sock');
20
+ /** 重订阅最大尝试次数(超过则放弃并冒错,不再无限重试)。 */
21
+ const MAX_RESUBSCRIBE_ATTEMPTS = 12;
20
22
  export class DaemonClient {
21
23
  socketPath;
22
24
  constructor(socketPath = DEFAULT_SOCKET) {
@@ -173,6 +175,7 @@ export class DaemonClient {
173
175
  */
174
176
  subscribeRunResilient(slot, afterSequence = 0) {
175
177
  let cancelled = false;
178
+ let attempt = 0;
176
179
  let active = null;
177
180
  const self = this;
178
181
  const iterable = {
@@ -185,6 +188,9 @@ export class DaemonClient {
185
188
  for await (const event of active) {
186
189
  if (cancelled)
187
190
  return;
191
+ // 收到任何事件 = 这次订阅真的建起来了 → 退避计数清零,
192
+ // 否则长会话里累积的历史重连次数会把后面的正常重连误判成"该放弃了"。
193
+ attempt = 0;
188
194
  if (typeof event.sequence === 'number' &&
189
195
  event.sequence <= cursor) {
190
196
  continue;
@@ -208,8 +214,16 @@ export class DaemonClient {
208
214
  }
209
215
  if (cancelled || terminal)
210
216
  return;
217
+ // 指数退避(审计 B12):此前是固定 75ms 无退避、无上限 —— daemon 长期不可达时
218
+ // 变成 13Hz 忙循环空烧 CPU,而 consume 永远不返回。现在 75ms 起、每次翻倍、
219
+ // 封顶 5s;连续失败超过上限则放弃并把错误交给调用方,而不是无限重试。
220
+ attempt += 1;
221
+ if (attempt > MAX_RESUBSCRIBE_ATTEMPTS) {
222
+ throw new Error(`subscribeRun: daemon 连续 ${MAX_RESUBSCRIBE_ATTEMPTS} 次不可达,放弃重连(slot=${slot})`);
223
+ }
224
+ const delayMs = Math.min(5_000, 75 * 2 ** (attempt - 1));
211
225
  await new Promise((resolveDelay) => {
212
- const timer = setTimeout(resolveDelay, 75);
226
+ const timer = setTimeout(resolveDelay, delayMs);
213
227
  timer.unref?.();
214
228
  });
215
229
  }