@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.
Files changed (274) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/assembly/art.yml +6 -0
  3. package/assembly/base.yml +72 -0
  4. package/assembly/cli.yml +4 -0
  5. package/assembly/console.yml +4 -0
  6. package/assembly/daemon.yml +4 -0
  7. package/dist/commands/agentCommand.d.ts +22 -1
  8. package/dist/commands/agentCommand.d.ts.map +1 -1
  9. package/dist/commands/agentCommand.js +14 -15
  10. package/dist/commands/agentCommand.js.map +1 -1
  11. package/dist/commands/cardAdd.d.ts +14 -1
  12. package/dist/commands/cardAdd.d.ts.map +1 -1
  13. package/dist/commands/cardAdd.js +5 -13
  14. package/dist/commands/cardAdd.js.map +1 -1
  15. package/dist/commands/cardInsert.d.ts +19 -1
  16. package/dist/commands/cardInsert.d.ts.map +1 -1
  17. package/dist/commands/cardInsert.js +5 -18
  18. package/dist/commands/cardInsert.js.map +1 -1
  19. package/dist/commands/consoleCommand.d.ts +20 -1
  20. package/dist/commands/consoleCommand.d.ts.map +1 -1
  21. package/dist/commands/consoleCommand.js +5 -2
  22. package/dist/commands/consoleCommand.js.map +1 -1
  23. package/dist/commands/imCommand.d.ts +9 -1
  24. package/dist/commands/imCommand.d.ts.map +1 -1
  25. package/dist/commands/imCommand.js +2 -9
  26. package/dist/commands/imCommand.js.map +1 -1
  27. package/dist/commands/memoryCommand.d.ts +11 -1
  28. package/dist/commands/memoryCommand.d.ts.map +1 -1
  29. package/dist/commands/memoryCommand.js +12 -18
  30. package/dist/commands/memoryCommand.js.map +1 -1
  31. package/dist/commands/monitorTick.d.ts +24 -1
  32. package/dist/commands/monitorTick.d.ts.map +1 -1
  33. package/dist/commands/monitorTick.js +8 -4
  34. package/dist/commands/monitorTick.js.map +1 -1
  35. package/dist/commands/openaiAgent.d.ts +2 -1
  36. package/dist/commands/openaiAgent.d.ts.map +1 -1
  37. package/dist/commands/openaiAgent.js +7 -3
  38. package/dist/commands/openaiAgent.js.map +1 -1
  39. package/dist/commands/pipelineTick.d.ts +4 -1
  40. package/dist/commands/pipelineTick.d.ts.map +1 -1
  41. package/dist/commands/pipelineTick.js +11 -7
  42. package/dist/commands/pipelineTick.js.map +1 -1
  43. package/dist/commands/pluginCommand.d.ts +2 -0
  44. package/dist/commands/pluginCommand.d.ts.map +1 -0
  45. package/dist/commands/pluginCommand.js +160 -0
  46. package/dist/commands/pluginCommand.js.map +1 -0
  47. package/dist/commands/qaTick.d.ts +4 -1
  48. package/dist/commands/qaTick.d.ts.map +1 -1
  49. package/dist/commands/qaTick.js +11 -7
  50. package/dist/commands/qaTick.js.map +1 -1
  51. package/dist/commands/schedulerTick.d.ts +24 -1
  52. package/dist/commands/schedulerTick.d.ts.map +1 -1
  53. package/dist/commands/schedulerTick.js +5 -23
  54. package/dist/commands/schedulerTick.js.map +1 -1
  55. package/dist/commands/tick.d.ts +25 -2
  56. package/dist/commands/tick.d.ts.map +1 -1
  57. package/dist/commands/tick.js +39 -16
  58. package/dist/commands/tick.js.map +1 -1
  59. package/dist/commands/workerLaunch.d.ts +4 -1
  60. package/dist/commands/workerLaunch.d.ts.map +1 -1
  61. package/dist/commands/workerLaunch.js +11 -7
  62. package/dist/commands/workerLaunch.js.map +1 -1
  63. package/dist/console/index.d.ts +21 -0
  64. package/dist/console/index.d.ts.map +1 -1
  65. package/dist/console/index.js +8 -4
  66. package/dist/console/index.js.map +1 -1
  67. package/dist/console/routes/capabilities.d.ts +3 -0
  68. package/dist/console/routes/capabilities.d.ts.map +1 -1
  69. package/dist/console/routes/capabilities.js +2 -21
  70. package/dist/console/routes/capabilities.js.map +1 -1
  71. package/dist/console/routes/cards.d.ts +19 -0
  72. package/dist/console/routes/cards.d.ts.map +1 -1
  73. package/dist/console/routes/cards.js +1 -1
  74. package/dist/console/routes/cards.js.map +1 -1
  75. package/dist/console/routes/mcpTools.d.ts +2 -1
  76. package/dist/console/routes/mcpTools.d.ts.map +1 -1
  77. package/dist/console/routes/mcpTools.js +3 -8
  78. package/dist/console/routes/mcpTools.js.map +1 -1
  79. package/dist/console/routes/plugins.d.ts +20 -0
  80. package/dist/console/routes/plugins.d.ts.map +1 -0
  81. package/dist/console/routes/plugins.js +185 -0
  82. package/dist/console/routes/plugins.js.map +1 -0
  83. package/dist/console/routes/tts.d.ts +2 -1
  84. package/dist/console/routes/tts.d.ts.map +1 -1
  85. package/dist/console/routes/tts.js +2 -3
  86. package/dist/console/routes/tts.js.map +1 -1
  87. package/dist/console-assets/assets/{ShowcasePage-C8tqVK7m.js → ShowcasePage-3ekOTV_g.js} +1 -1
  88. package/dist/console-assets/assets/{index-DCKXZKta.css → index-Dd7MTFgX.css} +1 -1
  89. package/dist/console-assets/assets/{index-DAvJ1-Qg.js → index-o3svZ9mC.js} +223 -213
  90. package/dist/console-assets/index.html +2 -2
  91. package/dist/core/agents/resolveBackend.d.ts +0 -5
  92. package/dist/core/agents/resolveBackend.d.ts.map +1 -1
  93. package/dist/core/agents/resolveBackend.js +6 -52
  94. package/dist/core/agents/resolveBackend.js.map +1 -1
  95. package/dist/core/art/artRunService.d.ts +13 -1
  96. package/dist/core/art/artRunService.d.ts.map +1 -1
  97. package/dist/core/art/artRunService.js +1 -0
  98. package/dist/core/art/artRunService.js.map +1 -1
  99. package/dist/core/mcpToolCatalog.d.ts +14 -1
  100. package/dist/core/mcpToolCatalog.d.ts.map +1 -1
  101. package/dist/core/mcpToolCatalog.js +7 -11
  102. package/dist/core/mcpToolCatalog.js.map +1 -1
  103. package/dist/core/tools/ToolCardExecutor.d.ts +12 -2
  104. package/dist/core/tools/ToolCardExecutor.d.ts.map +1 -1
  105. package/dist/core/tools/ToolCardExecutor.js.map +1 -1
  106. package/dist/daemon/daemonClient.d.ts +8 -2
  107. package/dist/daemon/daemonClient.d.ts.map +1 -1
  108. package/dist/daemon/daemonClient.js +9 -0
  109. package/dist/daemon/daemonClient.js.map +1 -1
  110. package/dist/daemon/sessionDaemon.d.ts +7 -2
  111. package/dist/daemon/sessionDaemon.d.ts.map +1 -1
  112. package/dist/daemon/sessionDaemon.js +49 -10
  113. package/dist/daemon/sessionDaemon.js.map +1 -1
  114. package/dist/engines/StageEngine.d.ts +6 -1
  115. package/dist/engines/StageEngine.d.ts.map +1 -1
  116. package/dist/engines/StageEngine.js +10 -7
  117. package/dist/engines/StageEngine.js.map +1 -1
  118. package/dist/im/IMGatewayManager.d.ts +12 -0
  119. package/dist/im/IMGatewayManager.d.ts.map +1 -1
  120. package/dist/im/IMGatewayManager.js +10 -18
  121. package/dist/im/IMGatewayManager.js.map +1 -1
  122. package/dist/main.js +67 -21
  123. package/dist/main.js.map +1 -1
  124. package/dist/manager/makeBackendFactory.d.ts +12 -0
  125. package/dist/manager/makeBackendFactory.d.ts.map +1 -1
  126. package/dist/manager/makeBackendFactory.js +3 -2
  127. package/dist/manager/makeBackendFactory.js.map +1 -1
  128. package/dist/manager/worker-manager-impl.d.ts +19 -0
  129. package/dist/manager/worker-manager-impl.d.ts.map +1 -1
  130. package/dist/manager/worker-manager-impl.js +15 -15
  131. package/dist/manager/worker-manager-impl.js.map +1 -1
  132. package/dist/openai-agent/memory/v2Bridge.d.ts +28 -2
  133. package/dist/openai-agent/memory/v2Bridge.d.ts.map +1 -1
  134. package/dist/openai-agent/memory/v2Bridge.js +4 -20
  135. package/dist/openai-agent/memory/v2Bridge.js.map +1 -1
  136. package/dist/openai-agent/runWorker.d.ts +8 -6
  137. package/dist/openai-agent/runWorker.d.ts.map +1 -1
  138. package/dist/openai-agent/runWorker.js +5 -4
  139. package/dist/openai-agent/runWorker.js.map +1 -1
  140. package/dist/openai-agent/sandbox/execution.d.ts +10 -2
  141. package/dist/openai-agent/sandbox/execution.d.ts.map +1 -1
  142. package/dist/openai-agent/sandbox/execution.js +9 -6
  143. package/dist/openai-agent/sandbox/execution.js.map +1 -1
  144. package/dist/plugin/assembly.d.ts +37 -0
  145. package/dist/plugin/assembly.d.ts.map +1 -0
  146. package/dist/plugin/assembly.js +95 -0
  147. package/dist/plugin/assembly.js.map +1 -0
  148. package/dist/plugin/context.d.ts +101 -0
  149. package/dist/plugin/context.d.ts.map +1 -0
  150. package/dist/plugin/context.js +187 -0
  151. package/dist/plugin/context.js.map +1 -0
  152. package/dist/plugin/hot.d.ts +34 -0
  153. package/dist/plugin/hot.d.ts.map +1 -0
  154. package/dist/plugin/hot.js +62 -0
  155. package/dist/plugin/hot.js.map +1 -0
  156. package/dist/plugin/layers.d.ts +40 -0
  157. package/dist/plugin/layers.d.ts.map +1 -0
  158. package/dist/plugin/layers.js +101 -0
  159. package/dist/plugin/layers.js.map +1 -0
  160. package/dist/plugin/manager.d.ts +80 -0
  161. package/dist/plugin/manager.d.ts.map +1 -0
  162. package/dist/plugin/manager.js +202 -0
  163. package/dist/plugin/manager.js.map +1 -0
  164. package/dist/plugin/run.d.ts +53 -0
  165. package/dist/plugin/run.d.ts.map +1 -0
  166. package/dist/plugin/run.js +72 -0
  167. package/dist/plugin/run.js.map +1 -0
  168. package/dist/providers/art/artGen.d.ts +18 -3
  169. package/dist/providers/art/artGen.d.ts.map +1 -1
  170. package/dist/providers/art/artGen.js +15 -15
  171. package/dist/providers/art/artGen.js.map +1 -1
  172. package/dist/providers/art/artRunChild.d.ts +2 -1
  173. package/dist/providers/art/artRunChild.d.ts.map +1 -1
  174. package/dist/providers/art/artRunChild.js +15 -8
  175. package/dist/providers/art/artRunChild.js.map +1 -1
  176. package/dist/providers/llm/chatTools.d.ts +10 -1
  177. package/dist/providers/llm/chatTools.d.ts.map +1 -1
  178. package/dist/providers/llm/chatTools.js +4 -4
  179. package/dist/providers/llm/chatTools.js.map +1 -1
  180. package/dist/providers/mcp/spsMcpServer.d.ts +3 -0
  181. package/dist/providers/mcp/spsMcpServer.d.ts.map +1 -1
  182. package/dist/providers/mcp/spsMcpServer.js +25 -31
  183. package/dist/providers/mcp/spsMcpServer.js.map +1 -1
  184. package/dist/providers/mcp/spsMcpStdio.js +12 -1
  185. package/dist/providers/mcp/spsMcpStdio.js.map +1 -1
  186. package/dist/providers/media/generateAsset.d.ts +11 -0
  187. package/dist/providers/media/generateAsset.d.ts.map +1 -1
  188. package/dist/providers/media/generateAsset.js +2 -3
  189. package/dist/providers/media/generateAsset.js.map +1 -1
  190. package/dist/providers/registry.d.ts +0 -4
  191. package/dist/providers/registry.d.ts.map +1 -1
  192. package/dist/providers/registry.js +1 -14
  193. package/dist/providers/registry.js.map +1 -1
  194. package/dist/seams/agents/index.d.ts +49 -0
  195. package/dist/seams/agents/index.d.ts.map +1 -0
  196. package/dist/seams/agents/index.js +54 -0
  197. package/dist/seams/agents/index.js.map +1 -0
  198. package/dist/seams/agents-builtin/index.d.ts +19 -0
  199. package/dist/seams/agents-builtin/index.d.ts.map +1 -0
  200. package/dist/seams/agents-builtin/index.js +69 -0
  201. package/dist/seams/agents-builtin/index.js.map +1 -0
  202. package/dist/seams/capabilities/index.d.ts +39 -0
  203. package/dist/seams/capabilities/index.d.ts.map +1 -0
  204. package/dist/seams/capabilities/index.js +47 -0
  205. package/dist/seams/capabilities/index.js.map +1 -0
  206. package/dist/seams/capabilities-art/index.d.ts +14 -0
  207. package/dist/seams/capabilities-art/index.d.ts.map +1 -0
  208. package/dist/seams/capabilities-art/index.js +9 -0
  209. package/dist/seams/capabilities-art/index.js.map +1 -0
  210. package/dist/seams/im/index.d.ts +28 -0
  211. package/dist/seams/im/index.d.ts.map +1 -0
  212. package/dist/seams/im/index.js +36 -0
  213. package/dist/seams/im/index.js.map +1 -0
  214. package/dist/seams/im-builtin/index.d.ts +13 -0
  215. package/dist/seams/im-builtin/index.d.ts.map +1 -0
  216. package/dist/seams/im-builtin/index.js +25 -0
  217. package/dist/seams/im-builtin/index.js.map +1 -0
  218. package/dist/seams/media/index.d.ts +30 -0
  219. package/dist/seams/media/index.d.ts.map +1 -0
  220. package/dist/seams/media/index.js +38 -0
  221. package/dist/seams/media/index.js.map +1 -0
  222. package/dist/seams/media-builtin/index.d.ts +13 -0
  223. package/dist/seams/media-builtin/index.d.ts.map +1 -0
  224. package/dist/seams/media-builtin/index.js +10 -0
  225. package/dist/seams/media-builtin/index.js.map +1 -0
  226. package/dist/seams/memory/index.d.ts +58 -0
  227. package/dist/seams/memory/index.d.ts.map +1 -0
  228. package/dist/seams/memory/index.js +28 -0
  229. package/dist/seams/memory/index.js.map +1 -0
  230. package/dist/seams/memory-local/index.d.ts +31 -0
  231. package/dist/seams/memory-local/index.d.ts.map +1 -0
  232. package/dist/seams/memory-local/index.js +55 -0
  233. package/dist/seams/memory-local/index.js.map +1 -0
  234. package/dist/seams/notifier/index.d.ts +37 -0
  235. package/dist/seams/notifier/index.d.ts.map +1 -0
  236. package/dist/seams/notifier/index.js +30 -0
  237. package/dist/seams/notifier/index.js.map +1 -0
  238. package/dist/seams/notifier-matrix/index.d.ts +17 -0
  239. package/dist/seams/notifier-matrix/index.d.ts.map +1 -0
  240. package/dist/seams/notifier-matrix/index.js +8 -0
  241. package/dist/seams/notifier-matrix/index.js.map +1 -0
  242. package/dist/seams/notifier-none/index.d.ts +18 -0
  243. package/dist/seams/notifier-none/index.d.ts.map +1 -0
  244. package/dist/seams/notifier-none/index.js +14 -0
  245. package/dist/seams/notifier-none/index.js.map +1 -0
  246. package/dist/seams/repo/index.d.ts +38 -0
  247. package/dist/seams/repo/index.d.ts.map +1 -0
  248. package/dist/seams/repo/index.js +43 -0
  249. package/dist/seams/repo/index.js.map +1 -0
  250. package/dist/seams/repo-builtin/index.d.ts +14 -0
  251. package/dist/seams/repo-builtin/index.d.ts.map +1 -0
  252. package/dist/seams/repo-builtin/index.js +14 -0
  253. package/dist/seams/repo-builtin/index.js.map +1 -0
  254. package/dist/seams/tools/index.d.ts +83 -0
  255. package/dist/seams/tools/index.d.ts.map +1 -0
  256. package/dist/seams/tools/index.js +67 -0
  257. package/dist/seams/tools/index.js.map +1 -0
  258. package/dist/services/MemoryService.d.ts +12 -0
  259. package/dist/services/MemoryService.d.ts.map +1 -1
  260. package/dist/services/MemoryService.js +14 -18
  261. package/dist/services/MemoryService.js.map +1 -1
  262. package/dist/services/container.d.ts +20 -1
  263. package/dist/services/container.d.ts.map +1 -1
  264. package/dist/services/container.js +10 -3
  265. package/dist/services/container.js.map +1 -1
  266. package/dist/services/executors.d.ts +4 -0
  267. package/dist/services/executors.d.ts.map +1 -1
  268. package/dist/services/executors.js +27 -5
  269. package/dist/services/executors.js.map +1 -1
  270. package/dist/services/promptPreview.d.ts +14 -1
  271. package/dist/services/promptPreview.d.ts.map +1 -1
  272. package/dist/services/promptPreview.js +4 -3
  273. package/dist/services/promptPreview.js.map +1 -1
  274. package/package.json +16 -3
@@ -1 +1 @@
1
- {"version":3,"file":"execution.js","sourceRoot":"","sources":["../../../src/openai-agent/sandbox/execution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"execution.js","sourceRoot":"","sources":["../../../src/openai-agent/sandbox/execution.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import type { Context } from '@deepseek-ai/cordis';
2
+ import { type AssemblyRow } from './layers.js';
3
+ export type AssemblyName = 'cli' | 'console' | 'daemon' | 'art';
4
+ /** 装配档目录。**不接受外部传入** —— 装配档是包的一部分,不是用户随便指的路径。 */
5
+ export declare function assemblyDir(): string;
6
+ export declare function assemblyPath(name: AssemblyName | 'base'): string;
7
+ /**
8
+ * 造一个挂载函数:先挂 base,再挂该进程的装配档。
9
+ *
10
+ * 配合 `withContext` / `startContext` 用:
11
+ * ```ts
12
+ * await withContext(mountAssembly('cli'), async (ctx) => { … });
13
+ * ```
14
+ *
15
+ * 🔴 **文件缺失要立刻抛**,不能"当作空的继续" —— 装配档缺失意味着包装坏了,
16
+ * 而带着空装配跑起来的表现是"所有功能都不见了",归因会跑到十万八千里。
17
+ */
18
+ export declare function mountAssembly(name: AssemblyName): (ctx: Context) => Promise<void>;
19
+ /**
20
+ * 用户层装了哪些行(按 id)。给就绪闸的 `tolerate` 用 ——
21
+ * **用户装的插件起不来只警告,内建起不来必须抛**。
22
+ */
23
+ export declare function userRowIds(name: AssemblyName): Set<string>;
24
+ /**
25
+ * 四层合并成一份生效清单:出厂 base → 出厂 <进程> → 用户 base → 用户 <进程>。
26
+ *
27
+ * 出厂档缺失立刻抛(包不完整);用户档缺失是常态。
28
+ * console 的插件页也用这个函数算"现在到底生效的是什么" —— **和真正挂载的
29
+ * 是同一条路**,两份实现必漂,而这里漂了就是"页面显示的和跑着的不是一回事"。
30
+ */
31
+ export declare function effectiveAssembly(name: AssemblyName): AssemblyRow[];
32
+ /**
33
+ * 按给定的行挂载。**测试、smoke 与 `mountAssembly` 共用这一条路** ——
34
+ * 两份实现必漂,而这里漂了就是"测试里能起、线上起不来"。
35
+ */
36
+ export declare function mountRows(ctx: Context, rows: AssemblyRow[], tolerable?: (row: AssemblyRow) => boolean): Promise<void>;
37
+ //# sourceMappingURL=assembly.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assembly.d.ts","sourceRoot":"","sources":["../../src/plugin/assembly.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EACL,KAAK,WAAW,EAKjB,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,SAAS,GAAG,QAAQ,GAAG,KAAK,CAAC;AAOhE,iDAAiD;AACjD,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,GAAG,MAAM,CAEhE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,YAAY,GAAG,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAKjF;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,CAM1D;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,WAAW,EAAE,CAOnE;AAED;;;GAGG;AACH,wBAAsB,SAAS,CAC7B,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,WAAW,EAAE,EACnB,SAAS,GAAE,CAAC,GAAG,EAAE,WAAW,KAAK,OAAqB,GACrD,OAAO,CAAC,IAAI,CAAC,CAwCf"}
@@ -0,0 +1,95 @@
1
+ import { dirname, resolve } from 'node:path';
2
+ import { fileURLToPath, pathToFileURL } from 'node:url';
3
+ import { rememberEntry } from './hot.js';
4
+ import { mergeAssembly, readAssemblyFile, rowKey, userAssemblyPath, } from './layers.js';
5
+ /** 包根:`dist/plugin/assembly.js` → 上溯两层。dev 树是 `src/plugin/` → 同样上溯两层。 */
6
+ function packageRoot() {
7
+ return resolve(dirname(fileURLToPath(import.meta.url)), '..', '..');
8
+ }
9
+ /** 装配档目录。**不接受外部传入** —— 装配档是包的一部分,不是用户随便指的路径。 */
10
+ export function assemblyDir() {
11
+ return resolve(packageRoot(), 'assembly');
12
+ }
13
+ export function assemblyPath(name) {
14
+ return resolve(assemblyDir(), `${name}.yml`);
15
+ }
16
+ /**
17
+ * 造一个挂载函数:先挂 base,再挂该进程的装配档。
18
+ *
19
+ * 配合 `withContext` / `startContext` 用:
20
+ * ```ts
21
+ * await withContext(mountAssembly('cli'), async (ctx) => { … });
22
+ * ```
23
+ *
24
+ * 🔴 **文件缺失要立刻抛**,不能"当作空的继续" —— 装配档缺失意味着包装坏了,
25
+ * 而带着空装配跑起来的表现是"所有功能都不见了",归因会跑到十万八千里。
26
+ */
27
+ export function mountAssembly(name) {
28
+ const fromUser = userRowIds(name);
29
+ return async (ctx) => {
30
+ await mountRows(ctx, effectiveAssembly(name), (row) => fromUser.has(rowKey(row)));
31
+ };
32
+ }
33
+ /**
34
+ * 用户层装了哪些行(按 id)。给就绪闸的 `tolerate` 用 ——
35
+ * **用户装的插件起不来只警告,内建起不来必须抛**。
36
+ */
37
+ export function userRowIds(name) {
38
+ const rows = mergeAssembly(readAssemblyFile(userAssemblyPath('base'), false), readAssemblyFile(userAssemblyPath(name), false));
39
+ return new Set(rows.map((r) => r.id ?? r.name));
40
+ }
41
+ /**
42
+ * 四层合并成一份生效清单:出厂 base → 出厂 <进程> → 用户 base → 用户 <进程>。
43
+ *
44
+ * 出厂档缺失立刻抛(包不完整);用户档缺失是常态。
45
+ * console 的插件页也用这个函数算"现在到底生效的是什么" —— **和真正挂载的
46
+ * 是同一条路**,两份实现必漂,而这里漂了就是"页面显示的和跑着的不是一回事"。
47
+ */
48
+ export function effectiveAssembly(name) {
49
+ return mergeAssembly(readAssemblyFile(assemblyPath('base'), true), readAssemblyFile(assemblyPath(name), true), readAssemblyFile(userAssemblyPath('base'), false), readAssemblyFile(userAssemblyPath(name), false));
50
+ }
51
+ /**
52
+ * 按给定的行挂载。**测试、smoke 与 `mountAssembly` 共用这一条路** ——
53
+ * 两份实现必漂,而这里漂了就是"测试里能起、线上起不来"。
54
+ */
55
+ export async function mountRows(ctx, rows, tolerable = () => false) {
56
+ const c = ctx;
57
+ // baseUrl 决定装配档里相对路径怎么解析 —— 必须在挂 Loader 之前设。
58
+ // 🔴 **只能设在根 context 上**:子 context 拒绝设未 provide 的属性
59
+ // (`cannot set property "baseUrl" without provide`)。
60
+ // spike 里是在 `new Context()` 上直接设的,所以没暴露;真接进 withContext
61
+ // (它把插件挂在子 context 里)第一条命令就炸了。
62
+ // ⇒ 又一次:**spike 的形态不等于真实调用路径的形态**。
63
+ (c.root ?? c).baseUrl = `${pathToFileURL(assemblyDir()).href}/`;
64
+ const { default: Loader } = await import('@deepseek-ai/cordis-plugin-loader');
65
+ await c.plugin(Loader);
66
+ // 🔴 用 `ctx.get()` 而不是 `ctx.loader`:从插件 context 直接取服务,cordis 会拒绝
67
+ // (`cannot get property "loader" without inject`)—— 那是它保证"依赖被声明过"的机制。
68
+ // `get()` 是官方给的**免声明探测**通道,用在这里正合适:Loader 是我们刚挂上去的,
69
+ // 不是别人提供的依赖。
70
+ // ⚠️ Loader 挂在**子 context** 上(不是 root)—— 这样 withContext 收拾时它跟着走;
71
+ // 挂 root 上会让 dispose 收不干净。
72
+ const loader = c.get('loader');
73
+ if (!loader)
74
+ throw new Error('装配失败:loader 服务没起来');
75
+ for (const row of rows) {
76
+ if (row.disabled)
77
+ continue;
78
+ try {
79
+ // 记下 entry id —— 热卸载(console 插件页停用/卸载)要靠它。
80
+ rememberEntry(ctx, rowKey(row), await loader.create(row));
81
+ }
82
+ catch (e) {
83
+ // 🔴 **两种失败时刻,两处都要拦。**
84
+ // 这里是"挂载那一刻就抛"(模块找不到 / apply 同步抛 / 服务重名);
85
+ // 另一种是挂上了但异步没起来 —— 那个由就绪闸的 tolerate 兜。
86
+ // 第一版只写了就绪闸那一处,实测坏插件照样把进程带走:
87
+ // `loader.create` 直接 reject,压根走不到闸前。
88
+ if (!tolerable(row))
89
+ throw e;
90
+ const why = e instanceof Error ? e.message : String(e);
91
+ console.error(`⚠️ 插件 ${rowKey(row)} 没能启动,已跳过(其余功能照常):${why}`);
92
+ }
93
+ }
94
+ }
95
+ //# sourceMappingURL=assembly.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assembly.js","sourceRoot":"","sources":["../../src/plugin/assembly.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * @module plugin/context
3
+ * @description sps 的 root context 与**装配就绪屏障** —— 插件化的第一块地基。
4
+ *
5
+ * @layer plugin
6
+ *
7
+ * 🔴 **为什么需要自己实现"就绪"**(全部由实测决定,不是设计出来的):
8
+ * ```
9
+ * await fiber 60 个依赖链插件 → 只有 3 个 ACTIVE
10
+ * fiber.await()(官方 API) 同上 → 只有 3 个 ACTIVE
11
+ * 只 await 根 fiber(真实形态) 同上 → 只有 2 个 ACTIVE ← 最差
12
+ * 反复 await 到静默 → 60/60,用了 18 轮
13
+ * ```
14
+ * ⇒ 挂载是**跨多个事件循环轮次**收敛的。不等到静默就用服务,拿到的是 undefined,
15
+ * 而且它跟机器负载相关 —— 偶发、难查。
16
+ *
17
+ * 🔴 **为什么用 `internal/plugin` 而不是 `internal/status` 收集 fiber**:
18
+ * 状态事件只在**迁移**时发。一个插件若因为缺依赖而**生来 PENDING 且从不迁移**,
19
+ * 状态事件里**一次都不会出现** —— 而那正是要抓的场景(profile 里漏装了提供方)。
20
+ * 实测:两个缺依赖的插件在 status 通道上完全隐身,在 plugin 通道上都抓到了。
21
+ *
22
+ * ⚠️ **它依赖真实定时器**:`settle()` 用 setImmediate/setTimeout 等收敛。
23
+ * 在 `vi.useFakeTimers()` 之下会**永远等不到**(实测挂满超时)。
24
+ * ⇒ 测试里要么**先建 context 再开假时钟**,要么在建之前 `vi.useRealTimers()`。
25
+ *
26
+ * 🔴 **watcher 必须先于任何挂载安装**,否则漏掉先挂的那些。
27
+ * ⇒ 不导出裸的 watcher,只导出 `createSpsContext()` —— **让人没法用错顺序**。
28
+ * (同一条判据:靠"记得先装 watcher"不是护栏。)
29
+ */
30
+ import { Context } from '@deepseek-ai/cordis';
31
+ /**
32
+ * 一个没能就绪的插件。
33
+ *
34
+ * 🔴 **PENDING 和 FAILED 是两件事,不能共用一句解释**:
35
+ * PENDING = 缺提供方(装配档漏装),FAILED = 插件自己抛了。
36
+ * 合成一句"多半是漏装了提供方",会让一个抛异常的插件把人引到配置文件上去查。
37
+ * (第一版就是这么写的,自己的夹具抛错时立刻误导了我。)
38
+ */
39
+ export interface NotReady {
40
+ /** 插件显示名(继承自最近的具名祖先)。 */
41
+ name: string;
42
+ /**
43
+ * 装配档里那一行的 id(该 fiber 由装配档创建时才有)。
44
+ * 有了它才分得清"坏的是内建还是用户装的"—— 两者的处置完全不同。
45
+ */
46
+ entryId?: string;
47
+ /** 'pending' = 缺提供方 · 'failed' = 启动时抛了 · 'other' = 其它非活跃态。 */
48
+ kind: 'pending' | 'failed' | 'other';
49
+ /** fiber 状态码,原样带出便于对照 cordis 的 FiberState。 */
50
+ state: number;
51
+ /** PENDING 时:它 inject 了但没拿到的服务名。**通常直接指出装配档漏装了什么。** */
52
+ waitingFor: string[];
53
+ /** FAILED 时:插件抛出的真实错误。 */
54
+ error?: unknown;
55
+ }
56
+ export interface SettleOptions {
57
+ /** 连续多少轮没有任何动静算静默。默认 3。 */
58
+ quietTurns?: number;
59
+ /**
60
+ * 判定某个没起来的插件**能不能容忍**(容忍 = 警告并继续,不抛)。
61
+ *
62
+ * 🔴 **一个坏的用户插件不该让整个进程起不来。**
63
+ * 理由不是"宽容一点",是**修它的地方就在里面**:console 正是用来卸掉
64
+ * 那个坏插件的;它被坏插件搞挂,插件管理就等于白做。
65
+ * 内建(出厂档)的插件起不来仍然必须抛 —— 那意味着包坏了,继续跑
66
+ * 的表现是"所有功能都不见了",归因会跑到十万八千里外。
67
+ *
68
+ * 不传 = 一个都不容忍(旧行为)。
69
+ */
70
+ tolerate?: (bad: NotReady) => boolean;
71
+ /**
72
+ * 最多等多久(毫秒),防止有环/永远 PENDING 时死等。默认 30000。
73
+ *
74
+ * 🔴 **必须是墙钟,不能是轮数。** 第一版用"最多 2000 轮",而 2000 个 setImmediate
75
+ * 只要几毫秒 —— 一个 await 60ms 的插件还没跑完,循环就到顶退出了,
76
+ * 于是把 LOADING 报成"未就绪"。**以轮数为界的等待,在真实时间上可能只等了几毫秒。**
77
+ */
78
+ maxWaitMs?: number;
79
+ }
80
+ export interface SpsContext {
81
+ ctx: Context;
82
+ /** 等到装配静默,返回**仍未就绪**的插件清单(空数组 = 全部就绪)。 */
83
+ settle(opts?: SettleOptions): Promise<NotReady[]>;
84
+ /**
85
+ * 等到静默;若有未就绪的插件则**抛错并指名**。
86
+ *
87
+ * 🔴 缺提供方是**配置错误**,不是"降级运行" —— 带着半个系统跑,
88
+ * 表现是"某个功能莫名其妙不工作",而真因在 profile 里。
89
+ */
90
+ requireReady(opts?: SettleOptions): Promise<void>;
91
+ }
92
+ /**
93
+ * 建一个 sps 的 root context,并**在任何挂载之前**装好装配观察者。
94
+ *
95
+ * @example
96
+ * const { ctx, requireReady } = createSpsContext();
97
+ * mountProfile(ctx, profile);
98
+ * await requireReady(); // 到这里才能安全地用 ctx['sps.xxx']
99
+ */
100
+ export declare function createSpsContext(): SpsContext;
101
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/plugin/context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAW9C;;;;;;;GAOG;AACH,MAAM,WAAW,QAAQ;IACvB,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8DAA8D;IAC9D,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;IACrC,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,0BAA0B;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,2BAA2B;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,KAAK,OAAO,CAAC;IACtC;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,OAAO,CAAC;IACb,0CAA0C;IAC1C,MAAM,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAClD;;;;;OAKG;IACH,YAAY,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnD;AAsDD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,IAAI,UAAU,CA8F7C"}
@@ -0,0 +1,187 @@
1
+ /**
2
+ * @module plugin/context
3
+ * @description sps 的 root context 与**装配就绪屏障** —— 插件化的第一块地基。
4
+ *
5
+ * @layer plugin
6
+ *
7
+ * 🔴 **为什么需要自己实现"就绪"**(全部由实测决定,不是设计出来的):
8
+ * ```
9
+ * await fiber 60 个依赖链插件 → 只有 3 个 ACTIVE
10
+ * fiber.await()(官方 API) 同上 → 只有 3 个 ACTIVE
11
+ * 只 await 根 fiber(真实形态) 同上 → 只有 2 个 ACTIVE ← 最差
12
+ * 反复 await 到静默 → 60/60,用了 18 轮
13
+ * ```
14
+ * ⇒ 挂载是**跨多个事件循环轮次**收敛的。不等到静默就用服务,拿到的是 undefined,
15
+ * 而且它跟机器负载相关 —— 偶发、难查。
16
+ *
17
+ * 🔴 **为什么用 `internal/plugin` 而不是 `internal/status` 收集 fiber**:
18
+ * 状态事件只在**迁移**时发。一个插件若因为缺依赖而**生来 PENDING 且从不迁移**,
19
+ * 状态事件里**一次都不会出现** —— 而那正是要抓的场景(profile 里漏装了提供方)。
20
+ * 实测:两个缺依赖的插件在 status 通道上完全隐身,在 plugin 通道上都抓到了。
21
+ *
22
+ * ⚠️ **它依赖真实定时器**:`settle()` 用 setImmediate/setTimeout 等收敛。
23
+ * 在 `vi.useFakeTimers()` 之下会**永远等不到**(实测挂满超时)。
24
+ * ⇒ 测试里要么**先建 context 再开假时钟**,要么在建之前 `vi.useRealTimers()`。
25
+ *
26
+ * 🔴 **watcher 必须先于任何挂载安装**,否则漏掉先挂的那些。
27
+ * ⇒ 不导出裸的 watcher,只导出 `createSpsContext()` —— **让人没法用错顺序**。
28
+ * (同一条判据:靠"记得先装 watcher"不是护栏。)
29
+ */
30
+ import { Context } from '@deepseek-ai/cordis';
31
+ /**
32
+ * ACTIVE 的枚举值。
33
+ *
34
+ * ⚠️ cordis 把 `FiberState` 声明成 `const enum`,在 ESM/isolatedModules 下取不到运行时值,
35
+ * 所以这里写字面量。**它由用例钉住**:`context.test.ts` 里有一条"最简插件必须到达 ACTIVE",
36
+ * 枚举值若变,那条会红 —— 而不是这里静默失配。
37
+ */
38
+ const ACTIVE = 2;
39
+ const PENDING = 0;
40
+ /** 瞬态:插件回调正在跑 / disposer 正在跑。**只要还有这两种,就不算静默。** */
41
+ const LOADING = 1;
42
+ const UNLOADING = 4;
43
+ const FAILED = 3;
44
+ async function snapshot(born) {
45
+ const out = [];
46
+ for (const f of born) {
47
+ if (f.uid === null)
48
+ continue; // 已卸载
49
+ if (f.state === ACTIVE)
50
+ continue;
51
+ const kind = f.state === PENDING ? 'pending' : f.state === FAILED ? 'failed' : 'other';
52
+ // FAILED 时把真实错误捞出来:fiber.await() 会重抛启动错误。
53
+ // 没有它,人看到的只有一个状态码,而真因(插件里那行代码)一个字都看不到。
54
+ let error;
55
+ if (kind === 'failed') {
56
+ try {
57
+ await f.await?.();
58
+ }
59
+ catch (e) {
60
+ error = e;
61
+ }
62
+ }
63
+ out.push({
64
+ name: f.name ?? '(anonymous)',
65
+ // 装配档里那一行的 id。loader 会把 entry 挂到 fiber 上(`fiber.entry`),
66
+ // 有了它才分得清"坏的是内建还是用户装的"——两者的处置完全不同。
67
+ ...(f.entry?.id ? { entryId: f.entry.id } : {}),
68
+ kind,
69
+ state: f.state,
70
+ waitingFor: kind === 'pending'
71
+ ? Object.entries(f.inject ?? {})
72
+ .filter(([, impl]) => impl === null || impl === undefined)
73
+ .map(([name]) => name)
74
+ : [],
75
+ ...(error !== undefined ? { error } : {}),
76
+ });
77
+ }
78
+ return out;
79
+ }
80
+ /**
81
+ * 建一个 sps 的 root context,并**在任何挂载之前**装好装配观察者。
82
+ *
83
+ * @example
84
+ * const { ctx, requireReady } = createSpsContext();
85
+ * mountProfile(ctx, profile);
86
+ * await requireReady(); // 到这里才能安全地用 ctx['sps.xxx']
87
+ */
88
+ export function createSpsContext() {
89
+ const ctx = new Context();
90
+ const born = new Set();
91
+ let churn = 0;
92
+ // 顺序要害:这两行必须早于任何 ctx.plugin(...)。所以本函数不接受"已有的 ctx"。
93
+ ctx.on('internal/plugin', (fiber) => {
94
+ born.add(fiber);
95
+ churn += 1;
96
+ });
97
+ ctx.on('internal/status', () => {
98
+ churn += 1;
99
+ });
100
+ const settle = async (opts = {}) => {
101
+ const quietTurns = opts.quietTurns ?? 3;
102
+ const deadline = Date.now() + (opts.maxWaitMs ?? 30_000);
103
+ // 🔴 只看"有没有事件"是**不够**的:插件在 apply 里做异步工作(动态 import、读文件)
104
+ // 期间**一个 cordis 事件都不发** ⇒ 事件静默 ≠ 装配完成。
105
+ // 第一版就是这么写的,接进真实 CLI 的第一条命令就停在 LOADING 上。
106
+ // ⇒ 判据 = 事件静默 **且** 没有任何 fiber 处于瞬态(LOADING / UNLOADING)。
107
+ //
108
+ // ⚠️ 这条与"墙钟为界"两条修法**互为冗余**:变异掉任一条,用例都不红
109
+ // (有了 sleep,轮数上限也够;有了瞬态判断,setImmediate 也能等到)。
110
+ // 所以用例钉住的是「异步插件必须等到」这件事,不是某一条实现细节 ——
111
+ // 改这里时别以为"测试会拦住我"。
112
+ const moving = () => {
113
+ for (const f of born) {
114
+ if (f.uid === null)
115
+ continue;
116
+ if (f.state === LOADING || f.state === UNLOADING)
117
+ return true;
118
+ }
119
+ return false;
120
+ };
121
+ let quiet = 0;
122
+ let last = -1;
123
+ for (;;) {
124
+ const stillMoving = moving();
125
+ if (quiet >= quietTurns && !stillMoving)
126
+ break;
127
+ if (Date.now() >= deadline)
128
+ break;
129
+ // 还在动 ⇒ 让**真实时间**过去(插件可能在等定时器/IO);
130
+ // 不动了 ⇒ 用 setImmediate 快速确认静默,别白等。
131
+ await (stillMoving
132
+ ? new Promise((r) => setTimeout(r, 1))
133
+ : new Promise((r) => setImmediate(r)));
134
+ if (churn === last)
135
+ quiet += 1;
136
+ else {
137
+ quiet = 0;
138
+ last = churn;
139
+ }
140
+ }
141
+ return await snapshot(born);
142
+ };
143
+ return {
144
+ ctx,
145
+ settle,
146
+ async requireReady(opts) {
147
+ const all = await settle(opts);
148
+ if (all.length === 0)
149
+ return;
150
+ const tolerated = opts?.tolerate ? all.filter(opts.tolerate) : [];
151
+ const bad = opts?.tolerate ? all.filter((b) => !opts.tolerate?.(b)) : all;
152
+ if (tolerated.length > 0) {
153
+ // 🔴 容忍**不等于沉默**:静默跳过会把"装了个坏插件"变成
154
+ // "某个功能不见了而没人知道为什么"。
155
+ for (const b of tolerated) {
156
+ // PENDING 和 FAILED 的"原因"不是一种东西:前者是"在等谁",后者是"抛了什么"。
157
+ // 合成一句 `state=0` 等于没说 —— 人拿着它无从下手。
158
+ const msg = b.kind === 'pending'
159
+ ? `缺提供方,在等:${b.waitingFor.join('、') || '(未声明 inject,可能是它依赖的插件自己没起来)'}`
160
+ : b.error instanceof Error
161
+ ? b.error.message
162
+ : String(b.error ?? `state=${b.state}`);
163
+ console.error(`⚠️ 插件 ${b.name} 没能启动,已跳过(其余功能照常):${msg}`);
164
+ }
165
+ }
166
+ if (bad.length === 0)
167
+ return;
168
+ const pending = bad.filter((b) => b.kind === 'pending');
169
+ const failed = bad.filter((b) => b.kind !== 'pending');
170
+ const parts = [`装配未就绪:${bad.length} 个插件没能启动。`];
171
+ if (pending.length > 0) {
172
+ parts.push('缺提供方(多半是装配档漏装了):');
173
+ for (const b of pending)
174
+ parts.push(` · ${b.name} 等: ${b.waitingFor.join(', ') || '(未知)'}`);
175
+ }
176
+ if (failed.length > 0) {
177
+ parts.push('启动时抛错(是插件自己的问题,不是装配档):');
178
+ for (const b of failed) {
179
+ const msg = b.error instanceof Error ? b.error.message : String(b.error ?? `state=${b.state}`);
180
+ parts.push(` · ${b.name}: ${msg}`);
181
+ }
182
+ }
183
+ throw new Error(parts.join('\n'));
184
+ },
185
+ };
186
+ }
187
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/plugin/context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * @module plugin/hot
3
+ * @description **热挂载**:在活着的进程里装上/撤掉一个插件,不重启。
4
+ *
5
+ * @layer plugin
6
+ *
7
+ * 实测结论(2026-08-20):
8
+ * ```
9
+ * loader.create(row) → 插件当场跑起来,注册的服务/工具立刻可见
10
+ * loader.remove(id) → 撤得干净,ctx.effect 注册的东西一并回收
11
+ * ```
12
+ * 🔴 **但 loader 不写回文件**:基类的 `write()` 是空实现,运行时 create 的行
13
+ * 不会进装配档 ⇒ 重启后就没了。所以持久化必须由我们自己做
14
+ * (`manager.writeUserRows`),两件事在同一次操作里都要做。
15
+ *
16
+ * ⚠️ **回收干净只验到了一种形状** —— `ctx.effect` 注册的东西。
17
+ * 开着连接、spawn 了进程、注册了定时器的插件能不能同样干净地收回,没验过。
18
+ * 卸载后仍有残留是**插件自己的问题**,但表现会算在 sps 头上,所以这里
19
+ * 如实写下来,而不是假装"热卸载 = 干净"。
20
+ */
21
+ import type { Context } from '@deepseek-ai/cordis';
22
+ import type { AssemblyRow } from './layers.js';
23
+ /** 记下挂载时 loader 给的 entry id(挂载路径调一次,热卸载才有得撤)。 */
24
+ export declare function rememberEntry(app: object, key: string, entryId: string): void;
25
+ export declare function liveEntryId(app: object, key: string): string | undefined;
26
+ /**
27
+ * 当场挂上一行。返回 loader 的 entry id。
28
+ *
29
+ * 失败按原因分类抛 —— 服务重名和"插件自己抛了"的处置完全不同。
30
+ */
31
+ export declare function hotMount(app: Context, key: string, row: AssemblyRow): Promise<string>;
32
+ /** 当场撤掉一行。没挂过 ⇒ 不算错(重启后的进程里它本来就不在)。 */
33
+ export declare function hotUnmount(app: Context, key: string): Promise<boolean>;
34
+ //# sourceMappingURL=hot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hot.d.ts","sourceRoot":"","sources":["../../src/plugin/hot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAsC/C,iDAAiD;AACjD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAE7E;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAExE;AAED;;;;GAIG;AACH,wBAAsB,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAU3F;AAED,uCAAuC;AACvC,wBAAsB,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAM5E"}
@@ -0,0 +1,62 @@
1
+ import { PluginError } from './manager.js';
2
+ function loaderOf(app) {
3
+ const loader = app.get('loader');
4
+ if (!loader) {
5
+ // 修复类命令不挂装配档 ⇒ 没有 loader。那条路上不该走到热挂。
6
+ throw new PluginError('unknown', '当前进程没有装配上下文,无法热挂载');
7
+ }
8
+ return loader;
9
+ }
10
+ /**
11
+ * 装配档行的 key → loader 的 entry id。热卸载要靠它。
12
+ *
13
+ * 🔴 **按 context 分表,不是模块级全局。** 全局的话:
14
+ * ① 同一进程里两个 context(测试)会互相看见对方的 entry;
15
+ * ② entry id 只在它自己那个 loader 里有意义,拿去别处 remove 是错的。
16
+ */
17
+ const liveEntries = new WeakMap();
18
+ function tableOf(app) {
19
+ // 🔴 按**根** context 归一:挂载走的是子 context(withContext 把插件挂在子上),
20
+ // 而路由拿到的是根。不归一的话两边各记各的表,`mounted` 永远是 false。
21
+ const root = app.root ?? app;
22
+ let t = liveEntries.get(root);
23
+ if (!t) {
24
+ t = new Map();
25
+ liveEntries.set(root, t);
26
+ }
27
+ return t;
28
+ }
29
+ /** 记下挂载时 loader 给的 entry id(挂载路径调一次,热卸载才有得撤)。 */
30
+ export function rememberEntry(app, key, entryId) {
31
+ tableOf(app).set(key, entryId);
32
+ }
33
+ export function liveEntryId(app, key) {
34
+ return tableOf(app).get(key);
35
+ }
36
+ /**
37
+ * 当场挂上一行。返回 loader 的 entry id。
38
+ *
39
+ * 失败按原因分类抛 —— 服务重名和"插件自己抛了"的处置完全不同。
40
+ */
41
+ export async function hotMount(app, key, row) {
42
+ try {
43
+ const id = await loaderOf(app).create(row);
44
+ tableOf(app).set(key, id);
45
+ return id;
46
+ }
47
+ catch (e) {
48
+ const msg = e instanceof Error ? e.message : String(e);
49
+ const kind = /has been (registered|provided)|already/i.test(msg) ? 'conflict' : 'apply';
50
+ throw new PluginError(kind, `挂载 ${key} 失败`, msg);
51
+ }
52
+ }
53
+ /** 当场撤掉一行。没挂过 ⇒ 不算错(重启后的进程里它本来就不在)。 */
54
+ export async function hotUnmount(app, key) {
55
+ const id = tableOf(app).get(key);
56
+ if (!id)
57
+ return false;
58
+ await loaderOf(app).remove(id);
59
+ tableOf(app).delete(key);
60
+ return true;
61
+ }
62
+ //# sourceMappingURL=hot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hot.js","sourceRoot":"","sources":["../../src/plugin/hot.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAO3C,SAAS,QAAQ,CAAC,GAAY;IAC5B,MAAM,MAAM,GAAI,GAAiE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAChG,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,qCAAqC;QACrC,MAAM,IAAI,WAAW,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,GAAG,IAAI,OAAO,EAA+B,CAAC;AAE/D,SAAS,OAAO,CAAC,GAAW;IAC1B,4DAA4D;IAC5D,gDAAgD;IAChD,MAAM,IAAI,GAAI,GAAyB,CAAC,IAAI,IAAI,GAAG,CAAC;IACpD,IAAI,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;QACd,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,aAAa,CAAC,GAAW,EAAE,GAAW,EAAE,OAAe;IACrE,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,GAAW,EAAE,GAAW;IAClD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC/B,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,GAAY,EAAE,GAAW,EAAE,GAAgB;IACxE,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC1B,OAAO,EAAE,CAAC;IACZ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACvD,MAAM,IAAI,GAAG,yCAAyC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC;QACxF,MAAM,IAAI,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,EAAE,GAAG,CAAC,CAAC;IACnD,CAAC;AACH,CAAC;AAED,uCAAuC;AACvC,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAY,EAAE,GAAW;IACxD,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE;QAAE,OAAO,KAAK,CAAC;IACtB,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC/B,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACzB,OAAO,IAAI,CAAC;AACd,CAAC"}