aws-runtime-bridge 1.9.79 → 1.9.81

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 (596) hide show
  1. package/dist/adapter/AcodeSdkAdapter.d.ts +0 -1
  2. package/dist/adapter/AcodeSdkAdapter.js +11 -1986
  3. package/dist/adapter/AdapterRegistry.d.ts +0 -1
  4. package/dist/adapter/AdapterRegistry.js +2 -100
  5. package/dist/adapter/ClaudeSdkAdapter.d.ts +0 -1
  6. package/dist/adapter/ClaudeSdkAdapter.js +4 -1300
  7. package/dist/adapter/CodexSdkAdapter.d.ts +0 -1
  8. package/dist/adapter/CodexSdkAdapter.js +4 -836
  9. package/dist/adapter/OpencodeSdkAdapter.d.ts +0 -1
  10. package/dist/adapter/OpencodeSdkAdapter.js +4 -879
  11. package/dist/adapter/SdkProviderSpi.d.ts +0 -1
  12. package/dist/adapter/SdkProviderSpi.js +2 -55
  13. package/dist/adapter/acode-tool-names.d.ts +0 -1
  14. package/dist/adapter/acode-tool-names.js +2 -37
  15. package/dist/adapter/idle-poll-loop.d.ts +0 -1
  16. package/dist/adapter/idle-poll-loop.js +2 -59
  17. package/dist/adapter/index.d.ts +0 -1
  18. package/dist/adapter/index.js +2 -11
  19. package/dist/adapter/instance-ai-config-resolver.d.ts +0 -1
  20. package/dist/adapter/instance-ai-config-resolver.js +2 -46
  21. package/dist/adapter/types.d.ts +0 -1
  22. package/dist/adapter/types.js +2 -443
  23. package/dist/adapters/cc-switch/common.d.ts +0 -1
  24. package/dist/adapters/cc-switch/common.js +2 -61
  25. package/dist/adapters/cc-switch/index.d.ts +0 -1
  26. package/dist/adapters/cc-switch/index.js +2 -57
  27. package/dist/adapters/cc-switch/mcp-acode.d.ts +0 -1
  28. package/dist/adapters/cc-switch/mcp-acode.js +2 -71
  29. package/dist/adapters/cc-switch/mcp-claude.d.ts +0 -1
  30. package/dist/adapters/cc-switch/mcp-claude.js +2 -89
  31. package/dist/adapters/cc-switch/mcp-claudecode.d.ts +0 -1
  32. package/dist/adapters/cc-switch/mcp-claudecode.js +2 -77
  33. package/dist/adapters/cc-switch/mcp-codex.d.ts +0 -1
  34. package/dist/adapters/cc-switch/mcp-codex.js +11 -249
  35. package/dist/adapters/cc-switch/mcp-opencode.d.ts +0 -1
  36. package/dist/adapters/cc-switch/mcp-opencode.js +2 -97
  37. package/dist/adapters/cc-switch/mcp-placeholder.d.ts +0 -1
  38. package/dist/adapters/cc-switch/mcp-placeholder.js +2 -19
  39. package/dist/adapters/cc-switch/skill-acode.d.ts +0 -1
  40. package/dist/adapters/cc-switch/skill-acode.js +2 -12
  41. package/dist/adapters/cc-switch/skill-claude.d.ts +0 -1
  42. package/dist/adapters/cc-switch/skill-claude.js +2 -11
  43. package/dist/adapters/cc-switch/skill-claudecode.d.ts +0 -1
  44. package/dist/adapters/cc-switch/skill-claudecode.js +2 -11
  45. package/dist/adapters/cc-switch/skill-codex.d.ts +0 -1
  46. package/dist/adapters/cc-switch/skill-codex.js +2 -6
  47. package/dist/adapters/cc-switch/skill-directory.d.ts +0 -1
  48. package/dist/adapters/cc-switch/skill-directory.js +3 -137
  49. package/dist/adapters/cc-switch/skill-opencode.d.ts +0 -1
  50. package/dist/adapters/cc-switch/skill-opencode.js +2 -11
  51. package/dist/adapters/cc-switch/skill-placeholder.d.ts +0 -1
  52. package/dist/adapters/cc-switch/skill-placeholder.js +2 -19
  53. package/dist/config.d.ts +0 -1
  54. package/dist/config.js +2 -290
  55. package/dist/index.d.ts +0 -1
  56. package/dist/index.js +2 -573
  57. package/dist/middleware/auth.d.ts +0 -1
  58. package/dist/middleware/auth.js +2 -98
  59. package/dist/routes/acode-todos.d.ts +0 -1
  60. package/dist/routes/acode-todos.js +2 -75
  61. package/dist/routes/ai-sources.d.ts +0 -1
  62. package/dist/routes/ai-sources.js +2 -132
  63. package/dist/routes/dashboard.d.ts +0 -1
  64. package/dist/routes/dashboard.js +182 -649
  65. package/dist/routes/events.d.ts +0 -1
  66. package/dist/routes/events.js +2 -22
  67. package/dist/routes/file-browser.d.ts +0 -1
  68. package/dist/routes/file-browser.js +2 -781
  69. package/dist/routes/file-diff-rollback.d.ts +0 -1
  70. package/dist/routes/file-diff-rollback.js +2 -301
  71. package/dist/routes/file-snapshot.d.ts +0 -1
  72. package/dist/routes/file-snapshot.js +2 -156
  73. package/dist/routes/git.d.ts +0 -1
  74. package/dist/routes/git.js +28 -1900
  75. package/dist/routes/instance.d.ts +0 -1
  76. package/dist/routes/instance.js +3 -748
  77. package/dist/routes/mcp.d.ts +0 -1
  78. package/dist/routes/mcp.js +2 -196
  79. package/dist/routes/processes.d.ts +0 -1
  80. package/dist/routes/processes.js +2 -252
  81. package/dist/routes/properties.d.ts +0 -1
  82. package/dist/routes/properties.js +2 -72
  83. package/dist/routes/pty.d.ts +0 -1
  84. package/dist/routes/pty.js +6 -560
  85. package/dist/routes/runtime-binding.d.ts +0 -1
  86. package/dist/routes/runtime-binding.js +2 -263
  87. package/dist/routes/sessions.d.ts +0 -1
  88. package/dist/routes/sessions.js +2 -758
  89. package/dist/routes/skills.d.ts +0 -1
  90. package/dist/routes/skills.js +2 -187
  91. package/dist/routes/sub-agents.d.ts +0 -1
  92. package/dist/routes/sub-agents.js +20 -279
  93. package/dist/routes/system-metrics.d.ts +0 -1
  94. package/dist/routes/system-metrics.js +2 -20
  95. package/dist/routes/task-context.d.ts +0 -1
  96. package/dist/routes/task-context.js +2 -78
  97. package/dist/routes/terminal.d.ts +0 -1
  98. package/dist/routes/terminal.js +54 -2882
  99. package/dist/routes/yml.d.ts +0 -1
  100. package/dist/routes/yml.js +2 -223
  101. package/dist/services/acode-package.d.ts +0 -1
  102. package/dist/services/acode-package.js +2 -111
  103. package/dist/services/agent-event-store.d.ts +0 -1
  104. package/dist/services/agent-event-store.js +2 -81
  105. package/dist/services/agent-process-manager.d.ts +0 -1
  106. package/dist/services/agent-process-manager.js +2 -796
  107. package/dist/services/ai-source-apply.d.ts +0 -1
  108. package/dist/services/ai-source-apply.js +2 -83
  109. package/dist/services/auto-register.d.ts +5 -1
  110. package/dist/services/auto-register.js +2 -1053
  111. package/dist/services/aws-client-agent-mcp.d.ts +0 -1
  112. package/dist/services/aws-client-agent-mcp.js +3 -337
  113. package/dist/services/bridge-package-publish-hooks.d.ts +0 -1
  114. package/dist/services/bridge-package-publish-hooks.js +2 -115
  115. package/dist/services/cc-switch-sdk.d.ts +0 -1
  116. package/dist/services/cc-switch-sdk.js +2 -135
  117. package/dist/services/cli-commands.d.ts +6 -1
  118. package/dist/services/cli-commands.js +6 -645
  119. package/dist/services/event-delta-pusher.d.ts +0 -1
  120. package/dist/services/event-delta-pusher.js +2 -95
  121. package/dist/services/fileSnapshotStore.d.ts +0 -1
  122. package/dist/services/fileSnapshotStore.js +2 -500
  123. package/dist/services/instance-ai-config-service.d.ts +0 -1
  124. package/dist/services/instance-ai-config-service.js +2 -174
  125. package/dist/services/instance-init-service.d.ts +0 -1
  126. package/dist/services/instance-init-service.js +2 -193
  127. package/dist/services/instance-service.d.ts +0 -1
  128. package/dist/services/instance-service.js +2 -237
  129. package/dist/services/instance-state.d.ts +0 -1
  130. package/dist/services/instance-state.js +2 -94
  131. package/dist/services/legacy-path-migration.d.ts +0 -1
  132. package/dist/services/legacy-path-migration.js +2 -66
  133. package/dist/services/lifecycle-state.d.ts +0 -1
  134. package/dist/services/lifecycle-state.js +3 -110
  135. package/dist/services/mcp-launch-binding-queue.d.ts +0 -1
  136. package/dist/services/mcp-launch-binding-queue.js +2 -175
  137. package/dist/services/orphan-monitor.d.ts +0 -1
  138. package/dist/services/orphan-monitor.js +2 -382
  139. package/dist/services/panel-auth.d.ts +0 -1
  140. package/dist/services/panel-auth.js +2 -168
  141. package/dist/services/process-detector.d.ts +0 -1
  142. package/dist/services/process-detector.js +18 -1019
  143. package/dist/services/process-registry.d.ts +0 -1
  144. package/dist/services/process-registry.js +2 -375
  145. package/dist/services/ring-buffer.d.ts +0 -1
  146. package/dist/services/ring-buffer.js +2 -103
  147. package/dist/services/runtime-binding.d.ts +0 -1
  148. package/dist/services/runtime-binding.js +6 -363
  149. package/dist/services/runtime-lifecycle-policy.d.ts +0 -1
  150. package/dist/services/runtime-lifecycle-policy.js +2 -35
  151. package/dist/services/session-output.d.ts +0 -1
  152. package/dist/services/session-output.js +5 -539
  153. package/dist/services/startup-config-wizard.d.ts +0 -1
  154. package/dist/services/startup-config-wizard.js +14 -258
  155. package/dist/services/sub-agent-manager-instance.d.ts +0 -1
  156. package/dist/services/sub-agent-manager-instance.js +2 -12
  157. package/dist/services/system-metrics.d.ts +0 -1
  158. package/dist/services/system-metrics.js +2 -252
  159. package/dist/services/terminal-persistence.d.ts +0 -1
  160. package/dist/services/terminal-persistence.js +2 -176
  161. package/dist/services/tool-installer.d.ts +0 -1
  162. package/dist/services/tool-installer.js +5 -751
  163. package/dist/services/tunnel-client.d.ts +0 -1
  164. package/dist/services/tunnel-client.js +2 -402
  165. package/dist/services/windows-service-manager.d.ts +3 -3
  166. package/dist/services/windows-service-manager.js +2 -59
  167. package/dist/services/workspace-files.d.ts +0 -1
  168. package/dist/services/workspace-files.js +2 -1275
  169. package/dist/services/workspace-watch.d.ts +0 -1
  170. package/dist/services/workspace-watch.js +2 -123
  171. package/dist/services/workspaceTaskChangeWatcher.d.ts +0 -1
  172. package/dist/services/workspaceTaskChangeWatcher.js +2 -483
  173. package/dist/types.d.ts +0 -1
  174. package/dist/types.js +1 -1
  175. package/dist/utils/file-utils.d.ts +0 -1
  176. package/dist/utils/file-utils.js +3 -208
  177. package/dist/utils/instance-ai-config-debug-logger.d.ts +0 -1
  178. package/dist/utils/instance-ai-config-debug-logger.js +4 -63
  179. package/dist/utils/logger.d.ts +0 -1
  180. package/dist/utils/logger.js +2 -154
  181. package/dist/utils/mcp-utils.d.ts +0 -1
  182. package/dist/utils/mcp-utils.js +2 -187
  183. package/dist/utils/path-utils.d.ts +0 -1
  184. package/dist/utils/path-utils.js +2 -44
  185. package/dist/utils/sdk-package-loader.d.ts +0 -1
  186. package/dist/utils/sdk-package-loader.js +2 -78
  187. package/dist/utils/validation.d.ts +0 -1
  188. package/dist/utils/validation.js +2 -53
  189. package/dist/utils/yaml-utils.d.ts +0 -1
  190. package/dist/utils/yaml-utils.js +2 -312
  191. package/node_modules/@cc-switch/sdk/dist/constants.d.ts +0 -1
  192. package/node_modules/@cc-switch/sdk/dist/constants.js +2 -63
  193. package/node_modules/@cc-switch/sdk/dist/errors.d.ts +0 -1
  194. package/node_modules/@cc-switch/sdk/dist/errors.js +2 -8
  195. package/node_modules/@cc-switch/sdk/dist/index.d.ts +0 -1
  196. package/node_modules/@cc-switch/sdk/dist/index.js +2 -9
  197. package/node_modules/@cc-switch/sdk/dist/schemas.d.ts +0 -1
  198. package/node_modules/@cc-switch/sdk/dist/schemas.js +2 -38
  199. package/node_modules/@cc-switch/sdk/dist/sdk.d.ts +0 -1
  200. package/node_modules/@cc-switch/sdk/dist/sdk.js +2 -470
  201. package/node_modules/@cc-switch/sdk/dist/services/ai-config-service.d.ts +0 -1
  202. package/node_modules/@cc-switch/sdk/dist/services/ai-config-service.js +4 -307
  203. package/node_modules/@cc-switch/sdk/dist/services/mcp-model.d.ts +0 -1
  204. package/node_modules/@cc-switch/sdk/dist/services/mcp-model.js +2 -37
  205. package/node_modules/@cc-switch/sdk/dist/services/mcp-service.d.ts +0 -1
  206. package/node_modules/@cc-switch/sdk/dist/services/mcp-service.js +2 -9
  207. package/node_modules/@cc-switch/sdk/dist/services/skill-model.d.ts +0 -1
  208. package/node_modules/@cc-switch/sdk/dist/services/skill-model.js +2 -41
  209. package/node_modules/@cc-switch/sdk/dist/services/skill-service.d.ts +0 -1
  210. package/node_modules/@cc-switch/sdk/dist/services/skill-service.js +2 -9
  211. package/node_modules/@cc-switch/sdk/dist/state.d.ts +0 -1
  212. package/node_modules/@cc-switch/sdk/dist/state.js +2 -19
  213. package/node_modules/@cc-switch/sdk/dist/types.d.ts +0 -1
  214. package/node_modules/@cc-switch/sdk/dist/types.js +1 -1
  215. package/node_modules/@cc-switch/sdk/dist/utils/fs.d.ts +0 -1
  216. package/node_modules/@cc-switch/sdk/dist/utils/fs.js +3 -114
  217. package/node_modules/@cc-switch/sdk/dist/utils/id.d.ts +0 -1
  218. package/node_modules/@cc-switch/sdk/dist/utils/id.js +2 -12
  219. package/node_modules/@cc-switch/sdk/package.json +1 -1
  220. package/package/acode/dist/ask-user-question-tool.d.ts +0 -1
  221. package/package/acode/dist/ask-user-question-tool.js +4 -233
  222. package/package/acode/dist/built-in-file-tools.d.ts +0 -1
  223. package/package/acode/dist/built-in-file-tools.js +4 -966
  224. package/package/acode/dist/built-in-symbols-tool.d.ts +0 -1
  225. package/package/acode/dist/built-in-symbols-tool.js +2 -117
  226. package/package/acode/dist/builtins/commandArtifacts.d.ts +0 -1
  227. package/package/acode/dist/builtins/commandArtifacts.js +9 -97
  228. package/package/acode/dist/builtins/commandOutputEvents.d.ts +0 -1
  229. package/package/acode/dist/builtins/commandOutputEvents.js +2 -56
  230. package/package/acode/dist/builtins/shellCommandPreparation.d.ts +0 -1
  231. package/package/acode/dist/builtins/shellCommandPreparation.js +5 -44
  232. package/package/acode/dist/builtins/shellCommandResult.d.ts +0 -1
  233. package/package/acode/dist/builtins/shellCommandResult.js +2 -71
  234. package/package/acode/dist/builtins/shellCommandRunner.d.ts +0 -1
  235. package/package/acode/dist/builtins/shellCommandRunner.js +2 -115
  236. package/package/acode/dist/builtins/shellOutputDecoder.d.ts +0 -1
  237. package/package/acode/dist/builtins/shellOutputDecoder.js +2 -94
  238. package/package/acode/dist/cli.d.ts +0 -1
  239. package/package/acode/dist/cli.js +4 -38
  240. package/package/acode/dist/commands/commandLoader.d.ts +0 -1
  241. package/package/acode/dist/commands/commandLoader.js +2 -33
  242. package/package/acode/dist/commands/commandParser.d.ts +0 -1
  243. package/package/acode/dist/commands/commandParser.js +3 -77
  244. package/package/acode/dist/commands/commandRegistry.d.ts +0 -1
  245. package/package/acode/dist/commands/commandRegistry.js +2 -30
  246. package/package/acode/dist/compaction.d.ts +0 -1
  247. package/package/acode/dist/compaction.js +7 -919
  248. package/package/acode/dist/config.d.ts +0 -1
  249. package/package/acode/dist/config.js +5 -105
  250. package/package/acode/dist/fs-utils.d.ts +0 -1
  251. package/package/acode/dist/fs-utils.js +2 -79
  252. package/package/acode/dist/hooks/hookBus.d.ts +0 -1
  253. package/package/acode/dist/hooks/hookBus.js +2 -40
  254. package/package/acode/dist/index.d.ts +0 -1
  255. package/package/acode/dist/index.js +2 -19
  256. package/package/acode/dist/mcpToolNames.d.ts +0 -1
  257. package/package/acode/dist/mcpToolNames.js +2 -17
  258. package/package/acode/dist/parsers/ast-cache.d.ts +0 -1
  259. package/package/acode/dist/parsers/ast-cache.js +2 -76
  260. package/package/acode/dist/parsers/language-detector.d.ts +0 -1
  261. package/package/acode/dist/parsers/language-detector.js +2 -44
  262. package/package/acode/dist/parsers/language-queries.d.ts +0 -1
  263. package/package/acode/dist/parsers/language-queries.js +12 -602
  264. package/package/acode/dist/parsers/symbol-extractor.d.ts +0 -1
  265. package/package/acode/dist/parsers/symbol-extractor.js +3 -164
  266. package/package/acode/dist/parsers/tree-sitter-loader.d.ts +0 -1
  267. package/package/acode/dist/parsers/tree-sitter-loader.js +2 -64
  268. package/package/acode/dist/parsers/types.d.ts +0 -1
  269. package/package/acode/dist/parsers/types.js +1 -7
  270. package/package/acode/dist/runtime.d.ts +0 -1
  271. package/package/acode/dist/runtime.js +86 -3771
  272. package/package/acode/dist/skill-tool.d.ts +0 -1
  273. package/package/acode/dist/skill-tool.js +5 -174
  274. package/package/acode/dist/sub-agent-manager.d.ts +0 -1
  275. package/package/acode/dist/sub-agent-manager.js +2 -1159
  276. package/package/acode/dist/sub-agent-store.d.ts +0 -1
  277. package/package/acode/dist/sub-agent-store.js +4 -236
  278. package/package/acode/dist/sub-agent-tools.d.ts +0 -1
  279. package/package/acode/dist/sub-agent-tools.js +15 -369
  280. package/package/acode/dist/sub-agent-types.d.ts +0 -1
  281. package/package/acode/dist/sub-agent-types.js +1 -8
  282. package/package/acode/dist/todo-store.d.ts +0 -1
  283. package/package/acode/dist/todo-store.js +2 -73
  284. package/package/acode/dist/todo-tool.d.ts +0 -1
  285. package/package/acode/dist/todo-tool.js +5 -121
  286. package/package/acode/dist/types.d.ts +0 -1
  287. package/package/acode/dist/types.js +1 -1
  288. package/package/acode/package.json +2 -2
  289. package/package/aws-client-agent-mcp/dist/agent-client.d.ts +0 -1
  290. package/package/aws-client-agent-mcp/dist/agent-client.js +2 -890
  291. package/package/aws-client-agent-mcp/dist/agent-client.test.d.ts +0 -1
  292. package/package/aws-client-agent-mcp/dist/agent-client.test.js +0 -1
  293. package/package/aws-client-agent-mcp/dist/config.d.ts +0 -1
  294. package/package/aws-client-agent-mcp/dist/config.js +2 -243
  295. package/package/aws-client-agent-mcp/dist/config.test.d.ts +0 -1
  296. package/package/aws-client-agent-mcp/dist/config.test.js +0 -1
  297. package/package/aws-client-agent-mcp/dist/constants.d.ts +0 -1
  298. package/package/aws-client-agent-mcp/dist/constants.js +2 -24
  299. package/package/aws-client-agent-mcp/dist/context-manager.d.ts +0 -1
  300. package/package/aws-client-agent-mcp/dist/context-manager.js +2 -477
  301. package/package/aws-client-agent-mcp/dist/context-manager.test.d.ts +0 -1
  302. package/package/aws-client-agent-mcp/dist/context-manager.test.js +0 -1
  303. package/package/aws-client-agent-mcp/dist/http-client.d.ts +0 -1
  304. package/package/aws-client-agent-mcp/dist/http-client.js +2 -446
  305. package/package/aws-client-agent-mcp/dist/http-client.test.d.ts +0 -1
  306. package/package/aws-client-agent-mcp/dist/http-client.test.js +0 -1
  307. package/package/aws-client-agent-mcp/dist/index.d.ts +0 -1
  308. package/package/aws-client-agent-mcp/dist/index.js +2 -34
  309. package/package/aws-client-agent-mcp/dist/logger.d.ts +0 -1
  310. package/package/aws-client-agent-mcp/dist/logger.js +3 -178
  311. package/package/aws-client-agent-mcp/dist/logger.test.d.ts +0 -1
  312. package/package/aws-client-agent-mcp/dist/logger.test.js +0 -1
  313. package/package/aws-client-agent-mcp/dist/mcp-server.d.ts +0 -1
  314. package/package/aws-client-agent-mcp/dist/mcp-server.js +38 -2709
  315. package/package/aws-client-agent-mcp/dist/mcp-server.test.d.ts +0 -1
  316. package/package/aws-client-agent-mcp/dist/mcp-server.test.js +0 -1
  317. package/package/aws-client-agent-mcp/dist/mcp-tools.d.ts +0 -1
  318. package/package/aws-client-agent-mcp/dist/mcp-tools.js +22 -562
  319. package/package/aws-client-agent-mcp/dist/mcp-tools.test.d.ts +0 -1
  320. package/package/aws-client-agent-mcp/dist/mcp-tools.test.js +0 -1
  321. package/package/aws-client-agent-mcp/dist/memory-store.d.ts +0 -1
  322. package/package/aws-client-agent-mcp/dist/memory-store.js +4 -826
  323. package/package/aws-client-agent-mcp/dist/memory-store.test.d.ts +0 -1
  324. package/package/aws-client-agent-mcp/dist/memory-store.test.js +0 -1
  325. package/package/aws-client-agent-mcp/dist/memory-tools.d.ts +0 -1
  326. package/package/aws-client-agent-mcp/dist/memory-tools.js +31 -294
  327. package/package/aws-client-agent-mcp/dist/message-buffer.d.ts +0 -1
  328. package/package/aws-client-agent-mcp/dist/message-buffer.js +2 -288
  329. package/package/aws-client-agent-mcp/dist/message-buffer.test.d.ts +0 -1
  330. package/package/aws-client-agent-mcp/dist/message-buffer.test.js +0 -1
  331. package/package/aws-client-agent-mcp/dist/messageContent.d.ts +0 -1
  332. package/package/aws-client-agent-mcp/dist/messageContent.js +2 -125
  333. package/package/aws-client-agent-mcp/dist/runtime-launch-binding.d.ts +0 -1
  334. package/package/aws-client-agent-mcp/dist/runtime-launch-binding.js +2 -103
  335. package/package/aws-client-agent-mcp/dist/runtime-launch-binding.test.d.ts +0 -1
  336. package/package/aws-client-agent-mcp/dist/runtime-launch-binding.test.js +0 -1
  337. package/package/aws-client-agent-mcp/dist/server-memory-store.d.ts +0 -1
  338. package/package/aws-client-agent-mcp/dist/server-memory-store.js +2 -96
  339. package/package/aws-client-agent-mcp/dist/status-reporter.d.ts +0 -1
  340. package/package/aws-client-agent-mcp/dist/status-reporter.js +3 -327
  341. package/package/aws-client-agent-mcp/dist/status-reporter.test.d.ts +0 -1
  342. package/package/aws-client-agent-mcp/dist/status-reporter.test.js +0 -1
  343. package/package/aws-client-agent-mcp/dist/types.d.ts +0 -1
  344. package/package/aws-client-agent-mcp/dist/types.js +2 -9
  345. package/package/aws-client-agent-mcp/dist/websocket-client.d.ts +0 -1
  346. package/package/aws-client-agent-mcp/dist/websocket-client.js +2 -677
  347. package/package/aws-client-agent-mcp/dist/websocket-client.test.d.ts +0 -1
  348. package/package/aws-client-agent-mcp/dist/websocket-client.test.js +0 -1
  349. package/package/aws-client-agent-mcp/package.json +1 -1
  350. package/package/cc-switch-sdk/dist/constants.d.ts +0 -1
  351. package/package/cc-switch-sdk/dist/constants.js +2 -63
  352. package/package/cc-switch-sdk/dist/errors.d.ts +0 -1
  353. package/package/cc-switch-sdk/dist/errors.js +2 -8
  354. package/package/cc-switch-sdk/dist/index.d.ts +0 -1
  355. package/package/cc-switch-sdk/dist/index.js +2 -9
  356. package/package/cc-switch-sdk/dist/schemas.d.ts +0 -1
  357. package/package/cc-switch-sdk/dist/schemas.js +2 -38
  358. package/package/cc-switch-sdk/dist/sdk.d.ts +0 -1
  359. package/package/cc-switch-sdk/dist/sdk.js +2 -470
  360. package/package/cc-switch-sdk/dist/services/ai-config-service.d.ts +0 -1
  361. package/package/cc-switch-sdk/dist/services/ai-config-service.js +4 -307
  362. package/package/cc-switch-sdk/dist/services/mcp-model.d.ts +0 -1
  363. package/package/cc-switch-sdk/dist/services/mcp-model.js +2 -37
  364. package/package/cc-switch-sdk/dist/services/mcp-service.d.ts +0 -1
  365. package/package/cc-switch-sdk/dist/services/mcp-service.js +2 -9
  366. package/package/cc-switch-sdk/dist/services/skill-model.d.ts +0 -1
  367. package/package/cc-switch-sdk/dist/services/skill-model.js +2 -41
  368. package/package/cc-switch-sdk/dist/services/skill-service.d.ts +0 -1
  369. package/package/cc-switch-sdk/dist/services/skill-service.js +2 -9
  370. package/package/cc-switch-sdk/dist/state.d.ts +0 -1
  371. package/package/cc-switch-sdk/dist/state.js +2 -19
  372. package/package/cc-switch-sdk/dist/types.d.ts +0 -1
  373. package/package/cc-switch-sdk/dist/types.js +1 -1
  374. package/package/cc-switch-sdk/dist/utils/fs.d.ts +0 -1
  375. package/package/cc-switch-sdk/dist/utils/fs.js +3 -114
  376. package/package/cc-switch-sdk/dist/utils/id.d.ts +0 -1
  377. package/package/cc-switch-sdk/dist/utils/id.js +2 -12
  378. package/package/cc-switch-sdk/package.json +1 -1
  379. package/package.json +4 -2
  380. package/dist/adapter/AcodeSdkAdapter.d.ts.map +0 -1
  381. package/dist/adapter/AdapterRegistry.d.ts.map +0 -1
  382. package/dist/adapter/ClaudeSdkAdapter.d.ts.map +0 -1
  383. package/dist/adapter/CodexSdkAdapter.d.ts.map +0 -1
  384. package/dist/adapter/OpencodeSdkAdapter.d.ts.map +0 -1
  385. package/dist/adapter/SdkProviderSpi.d.ts.map +0 -1
  386. package/dist/adapter/acode-tool-names.d.ts.map +0 -1
  387. package/dist/adapter/idle-poll-loop.d.ts.map +0 -1
  388. package/dist/adapter/index.d.ts.map +0 -1
  389. package/dist/adapter/instance-ai-config-resolver.d.ts.map +0 -1
  390. package/dist/adapter/types.d.ts.map +0 -1
  391. package/dist/adapters/cc-switch/common.d.ts.map +0 -1
  392. package/dist/adapters/cc-switch/index.d.ts.map +0 -1
  393. package/dist/adapters/cc-switch/mcp-acode.d.ts.map +0 -1
  394. package/dist/adapters/cc-switch/mcp-claude.d.ts.map +0 -1
  395. package/dist/adapters/cc-switch/mcp-claudecode.d.ts.map +0 -1
  396. package/dist/adapters/cc-switch/mcp-codex.d.ts.map +0 -1
  397. package/dist/adapters/cc-switch/mcp-opencode.d.ts.map +0 -1
  398. package/dist/adapters/cc-switch/mcp-placeholder.d.ts.map +0 -1
  399. package/dist/adapters/cc-switch/skill-acode.d.ts.map +0 -1
  400. package/dist/adapters/cc-switch/skill-claude.d.ts.map +0 -1
  401. package/dist/adapters/cc-switch/skill-claudecode.d.ts.map +0 -1
  402. package/dist/adapters/cc-switch/skill-codex.d.ts.map +0 -1
  403. package/dist/adapters/cc-switch/skill-directory.d.ts.map +0 -1
  404. package/dist/adapters/cc-switch/skill-opencode.d.ts.map +0 -1
  405. package/dist/adapters/cc-switch/skill-placeholder.d.ts.map +0 -1
  406. package/dist/config.d.ts.map +0 -1
  407. package/dist/index.d.ts.map +0 -1
  408. package/dist/middleware/auth.d.ts.map +0 -1
  409. package/dist/routes/acode-todos.d.ts.map +0 -1
  410. package/dist/routes/ai-sources.d.ts.map +0 -1
  411. package/dist/routes/dashboard.d.ts.map +0 -1
  412. package/dist/routes/events.d.ts.map +0 -1
  413. package/dist/routes/file-browser.d.ts.map +0 -1
  414. package/dist/routes/file-diff-rollback.d.ts.map +0 -1
  415. package/dist/routes/file-snapshot.d.ts.map +0 -1
  416. package/dist/routes/git.d.ts.map +0 -1
  417. package/dist/routes/instance.d.ts.map +0 -1
  418. package/dist/routes/mcp.d.ts.map +0 -1
  419. package/dist/routes/processes.d.ts.map +0 -1
  420. package/dist/routes/properties.d.ts.map +0 -1
  421. package/dist/routes/pty.d.ts.map +0 -1
  422. package/dist/routes/runtime-binding.d.ts.map +0 -1
  423. package/dist/routes/sessions.d.ts.map +0 -1
  424. package/dist/routes/skills.d.ts.map +0 -1
  425. package/dist/routes/sub-agents.d.ts.map +0 -1
  426. package/dist/routes/system-metrics.d.ts.map +0 -1
  427. package/dist/routes/task-context.d.ts.map +0 -1
  428. package/dist/routes/terminal.d.ts.map +0 -1
  429. package/dist/routes/yml.d.ts.map +0 -1
  430. package/dist/services/acode-package.d.ts.map +0 -1
  431. package/dist/services/agent-event-store.d.ts.map +0 -1
  432. package/dist/services/agent-process-manager.d.ts.map +0 -1
  433. package/dist/services/ai-source-apply.d.ts.map +0 -1
  434. package/dist/services/auto-register.d.ts.map +0 -1
  435. package/dist/services/aws-client-agent-mcp.d.ts.map +0 -1
  436. package/dist/services/bridge-package-publish-hooks.d.ts.map +0 -1
  437. package/dist/services/cc-switch-sdk.d.ts.map +0 -1
  438. package/dist/services/cli-commands.d.ts.map +0 -1
  439. package/dist/services/event-delta-pusher.d.ts.map +0 -1
  440. package/dist/services/fileSnapshotStore.d.ts.map +0 -1
  441. package/dist/services/instance-ai-config-service.d.ts.map +0 -1
  442. package/dist/services/instance-init-service.d.ts.map +0 -1
  443. package/dist/services/instance-service.d.ts.map +0 -1
  444. package/dist/services/instance-state.d.ts.map +0 -1
  445. package/dist/services/legacy-path-migration.d.ts.map +0 -1
  446. package/dist/services/lifecycle-state.d.ts.map +0 -1
  447. package/dist/services/mcp-launch-binding-queue.d.ts.map +0 -1
  448. package/dist/services/orphan-monitor.d.ts.map +0 -1
  449. package/dist/services/panel-auth.d.ts.map +0 -1
  450. package/dist/services/process-detector.d.ts.map +0 -1
  451. package/dist/services/process-registry.d.ts.map +0 -1
  452. package/dist/services/ring-buffer.d.ts.map +0 -1
  453. package/dist/services/runtime-binding.d.ts.map +0 -1
  454. package/dist/services/runtime-lifecycle-policy.d.ts.map +0 -1
  455. package/dist/services/session-output.d.ts.map +0 -1
  456. package/dist/services/startup-config-wizard.d.ts.map +0 -1
  457. package/dist/services/sub-agent-manager-instance.d.ts.map +0 -1
  458. package/dist/services/system-metrics.d.ts.map +0 -1
  459. package/dist/services/terminal-persistence.d.ts.map +0 -1
  460. package/dist/services/tool-installer.d.ts.map +0 -1
  461. package/dist/services/tunnel-client.d.ts.map +0 -1
  462. package/dist/services/windows-service-manager.d.ts.map +0 -1
  463. package/dist/services/workspace-files.d.ts.map +0 -1
  464. package/dist/services/workspace-watch.d.ts.map +0 -1
  465. package/dist/services/workspaceTaskChangeWatcher.d.ts.map +0 -1
  466. package/dist/types.d.ts.map +0 -1
  467. package/dist/utils/file-utils.d.ts.map +0 -1
  468. package/dist/utils/instance-ai-config-debug-logger.d.ts.map +0 -1
  469. package/dist/utils/logger.d.ts.map +0 -1
  470. package/dist/utils/mcp-utils.d.ts.map +0 -1
  471. package/dist/utils/path-utils.d.ts.map +0 -1
  472. package/dist/utils/sdk-package-loader.d.ts.map +0 -1
  473. package/dist/utils/validation.d.ts.map +0 -1
  474. package/dist/utils/yaml-utils.d.ts.map +0 -1
  475. package/node_modules/@cc-switch/sdk/dist/constants.d.ts.map +0 -1
  476. package/node_modules/@cc-switch/sdk/dist/errors.d.ts.map +0 -1
  477. package/node_modules/@cc-switch/sdk/dist/index.d.ts.map +0 -1
  478. package/node_modules/@cc-switch/sdk/dist/schemas.d.ts.map +0 -1
  479. package/node_modules/@cc-switch/sdk/dist/sdk.d.ts.map +0 -1
  480. package/node_modules/@cc-switch/sdk/dist/services/ai-config-service.d.ts.map +0 -1
  481. package/node_modules/@cc-switch/sdk/dist/services/mcp-model.d.ts.map +0 -1
  482. package/node_modules/@cc-switch/sdk/dist/services/mcp-service.d.ts.map +0 -1
  483. package/node_modules/@cc-switch/sdk/dist/services/skill-model.d.ts.map +0 -1
  484. package/node_modules/@cc-switch/sdk/dist/services/skill-service.d.ts.map +0 -1
  485. package/node_modules/@cc-switch/sdk/dist/state.d.ts.map +0 -1
  486. package/node_modules/@cc-switch/sdk/dist/types.d.ts.map +0 -1
  487. package/node_modules/@cc-switch/sdk/dist/utils/fs.d.ts.map +0 -1
  488. package/node_modules/@cc-switch/sdk/dist/utils/id.d.ts.map +0 -1
  489. package/package/acode/dist/ask-user-question-tool.d.ts.map +0 -1
  490. package/package/acode/dist/built-in-file-tools.d.ts.map +0 -1
  491. package/package/acode/dist/built-in-symbols-tool.d.ts.map +0 -1
  492. package/package/acode/dist/builtins/commandArtifacts.d.ts.map +0 -1
  493. package/package/acode/dist/builtins/commandOutputEvents.d.ts.map +0 -1
  494. package/package/acode/dist/builtins/shellCommandPreparation.d.ts.map +0 -1
  495. package/package/acode/dist/builtins/shellCommandResult.d.ts.map +0 -1
  496. package/package/acode/dist/builtins/shellCommandRunner.d.ts.map +0 -1
  497. package/package/acode/dist/builtins/shellOutputDecoder.d.ts.map +0 -1
  498. package/package/acode/dist/cli.d.ts.map +0 -1
  499. package/package/acode/dist/commands/commandLoader.d.ts.map +0 -1
  500. package/package/acode/dist/commands/commandParser.d.ts.map +0 -1
  501. package/package/acode/dist/commands/commandRegistry.d.ts.map +0 -1
  502. package/package/acode/dist/compaction.d.ts.map +0 -1
  503. package/package/acode/dist/config.d.ts.map +0 -1
  504. package/package/acode/dist/fs-utils.d.ts.map +0 -1
  505. package/package/acode/dist/hooks/hookBus.d.ts.map +0 -1
  506. package/package/acode/dist/index.d.ts.map +0 -1
  507. package/package/acode/dist/mcpToolNames.d.ts.map +0 -1
  508. package/package/acode/dist/parsers/ast-cache.d.ts.map +0 -1
  509. package/package/acode/dist/parsers/language-detector.d.ts.map +0 -1
  510. package/package/acode/dist/parsers/language-queries.d.ts.map +0 -1
  511. package/package/acode/dist/parsers/symbol-extractor.d.ts.map +0 -1
  512. package/package/acode/dist/parsers/tree-sitter-loader.d.ts.map +0 -1
  513. package/package/acode/dist/parsers/types.d.ts.map +0 -1
  514. package/package/acode/dist/runtime.d.ts.map +0 -1
  515. package/package/acode/dist/skill-tool.d.ts.map +0 -1
  516. package/package/acode/dist/sub-agent-manager.d.ts.map +0 -1
  517. package/package/acode/dist/sub-agent-store.d.ts.map +0 -1
  518. package/package/acode/dist/sub-agent-tools.d.ts.map +0 -1
  519. package/package/acode/dist/sub-agent-types.d.ts.map +0 -1
  520. package/package/acode/dist/todo-store.d.ts.map +0 -1
  521. package/package/acode/dist/todo-tool.d.ts.map +0 -1
  522. package/package/acode/dist/types.d.ts.map +0 -1
  523. package/package/aws-client-agent-mcp/dist/agent-client.d.ts.map +0 -1
  524. package/package/aws-client-agent-mcp/dist/agent-client.js.map +0 -1
  525. package/package/aws-client-agent-mcp/dist/agent-client.test.d.ts.map +0 -1
  526. package/package/aws-client-agent-mcp/dist/agent-client.test.js.map +0 -1
  527. package/package/aws-client-agent-mcp/dist/config.d.ts.map +0 -1
  528. package/package/aws-client-agent-mcp/dist/config.js.map +0 -1
  529. package/package/aws-client-agent-mcp/dist/config.test.d.ts.map +0 -1
  530. package/package/aws-client-agent-mcp/dist/config.test.js.map +0 -1
  531. package/package/aws-client-agent-mcp/dist/constants.d.ts.map +0 -1
  532. package/package/aws-client-agent-mcp/dist/constants.js.map +0 -1
  533. package/package/aws-client-agent-mcp/dist/context-manager.d.ts.map +0 -1
  534. package/package/aws-client-agent-mcp/dist/context-manager.js.map +0 -1
  535. package/package/aws-client-agent-mcp/dist/context-manager.test.d.ts.map +0 -1
  536. package/package/aws-client-agent-mcp/dist/context-manager.test.js.map +0 -1
  537. package/package/aws-client-agent-mcp/dist/http-client.d.ts.map +0 -1
  538. package/package/aws-client-agent-mcp/dist/http-client.js.map +0 -1
  539. package/package/aws-client-agent-mcp/dist/http-client.test.d.ts.map +0 -1
  540. package/package/aws-client-agent-mcp/dist/http-client.test.js.map +0 -1
  541. package/package/aws-client-agent-mcp/dist/index.d.ts.map +0 -1
  542. package/package/aws-client-agent-mcp/dist/index.js.map +0 -1
  543. package/package/aws-client-agent-mcp/dist/logger.d.ts.map +0 -1
  544. package/package/aws-client-agent-mcp/dist/logger.js.map +0 -1
  545. package/package/aws-client-agent-mcp/dist/logger.test.d.ts.map +0 -1
  546. package/package/aws-client-agent-mcp/dist/logger.test.js.map +0 -1
  547. package/package/aws-client-agent-mcp/dist/mcp-server.d.ts.map +0 -1
  548. package/package/aws-client-agent-mcp/dist/mcp-server.js.map +0 -1
  549. package/package/aws-client-agent-mcp/dist/mcp-server.test.d.ts.map +0 -1
  550. package/package/aws-client-agent-mcp/dist/mcp-server.test.js.map +0 -1
  551. package/package/aws-client-agent-mcp/dist/mcp-tools.d.ts.map +0 -1
  552. package/package/aws-client-agent-mcp/dist/mcp-tools.js.map +0 -1
  553. package/package/aws-client-agent-mcp/dist/mcp-tools.test.d.ts.map +0 -1
  554. package/package/aws-client-agent-mcp/dist/mcp-tools.test.js.map +0 -1
  555. package/package/aws-client-agent-mcp/dist/memory-store.d.ts.map +0 -1
  556. package/package/aws-client-agent-mcp/dist/memory-store.js.map +0 -1
  557. package/package/aws-client-agent-mcp/dist/memory-store.test.d.ts.map +0 -1
  558. package/package/aws-client-agent-mcp/dist/memory-store.test.js.map +0 -1
  559. package/package/aws-client-agent-mcp/dist/memory-tools.d.ts.map +0 -1
  560. package/package/aws-client-agent-mcp/dist/memory-tools.js.map +0 -1
  561. package/package/aws-client-agent-mcp/dist/message-buffer.d.ts.map +0 -1
  562. package/package/aws-client-agent-mcp/dist/message-buffer.js.map +0 -1
  563. package/package/aws-client-agent-mcp/dist/message-buffer.test.d.ts.map +0 -1
  564. package/package/aws-client-agent-mcp/dist/message-buffer.test.js.map +0 -1
  565. package/package/aws-client-agent-mcp/dist/messageContent.d.ts.map +0 -1
  566. package/package/aws-client-agent-mcp/dist/messageContent.js.map +0 -1
  567. package/package/aws-client-agent-mcp/dist/runtime-launch-binding.d.ts.map +0 -1
  568. package/package/aws-client-agent-mcp/dist/runtime-launch-binding.js.map +0 -1
  569. package/package/aws-client-agent-mcp/dist/runtime-launch-binding.test.d.ts.map +0 -1
  570. package/package/aws-client-agent-mcp/dist/runtime-launch-binding.test.js.map +0 -1
  571. package/package/aws-client-agent-mcp/dist/server-memory-store.d.ts.map +0 -1
  572. package/package/aws-client-agent-mcp/dist/server-memory-store.js.map +0 -1
  573. package/package/aws-client-agent-mcp/dist/status-reporter.d.ts.map +0 -1
  574. package/package/aws-client-agent-mcp/dist/status-reporter.js.map +0 -1
  575. package/package/aws-client-agent-mcp/dist/status-reporter.test.d.ts.map +0 -1
  576. package/package/aws-client-agent-mcp/dist/status-reporter.test.js.map +0 -1
  577. package/package/aws-client-agent-mcp/dist/types.d.ts.map +0 -1
  578. package/package/aws-client-agent-mcp/dist/types.js.map +0 -1
  579. package/package/aws-client-agent-mcp/dist/websocket-client.d.ts.map +0 -1
  580. package/package/aws-client-agent-mcp/dist/websocket-client.js.map +0 -1
  581. package/package/aws-client-agent-mcp/dist/websocket-client.test.d.ts.map +0 -1
  582. package/package/aws-client-agent-mcp/dist/websocket-client.test.js.map +0 -1
  583. package/package/cc-switch-sdk/dist/constants.d.ts.map +0 -1
  584. package/package/cc-switch-sdk/dist/errors.d.ts.map +0 -1
  585. package/package/cc-switch-sdk/dist/index.d.ts.map +0 -1
  586. package/package/cc-switch-sdk/dist/schemas.d.ts.map +0 -1
  587. package/package/cc-switch-sdk/dist/sdk.d.ts.map +0 -1
  588. package/package/cc-switch-sdk/dist/services/ai-config-service.d.ts.map +0 -1
  589. package/package/cc-switch-sdk/dist/services/mcp-model.d.ts.map +0 -1
  590. package/package/cc-switch-sdk/dist/services/mcp-service.d.ts.map +0 -1
  591. package/package/cc-switch-sdk/dist/services/skill-model.d.ts.map +0 -1
  592. package/package/cc-switch-sdk/dist/services/skill-service.d.ts.map +0 -1
  593. package/package/cc-switch-sdk/dist/state.d.ts.map +0 -1
  594. package/package/cc-switch-sdk/dist/types.d.ts.map +0 -1
  595. package/package/cc-switch-sdk/dist/utils/fs.d.ts.map +0 -1
  596. package/package/cc-switch-sdk/dist/utils/id.d.ts.map +0 -1
@@ -1,174 +1,2 @@
1
- /**
2
- * AI 配置服务
3
- *
4
- * 管理 ACode 实例的 AI provider 配置(model/baseURL/apiKey)。
5
- * 支持三层来源(api > env > file)仲裁,deep-merge 后写入
6
- * per-instance acode.json 供 ACode runtime 加载。
7
- */
8
- import fs from "node:fs/promises";
9
- import path from "node:path";
10
- import { getAcodeConfigFile, getRuntimeHomeDir } from "../config.js";
11
- import { getInstanceAiConfigDebugLogger } from "../utils/instance-ai-config-debug-logger.js";
12
- // ── 敏感信息脱敏 ─────────────────────────────────────────
13
- const SENSITIVE_KEYS = new Set([
14
- "apiKey", "api_key", "apikey",
15
- "key", "secret", "token", "password",
16
- ]);
17
- /**
18
- * 脱敏日志中的敏感字段(apiKey / secret / token / password)。
19
- * 返回新对象,不修改原对象。
20
- */
21
- export function redactForLog(obj) {
22
- const result = { ...obj };
23
- for (const key of Object.keys(result)) {
24
- if (SENSITIVE_KEYS.has(key)) {
25
- const val = result[key];
26
- if (typeof val === "string" && val.length > 0) {
27
- result[key] = val.length > 8
28
- ? `${val.slice(0, 4)}...${val.slice(-4)}`
29
- : "***";
30
- }
31
- }
32
- else if (typeof result[key] === "object" && result[key] !== null) {
33
- result[key] = redactForLog(result[key]);
34
- }
35
- }
36
- return result;
37
- }
38
- // ── 配置准备 ─────────────────────────────────────────────
39
- function loadEnvLayer() {
40
- return {
41
- ...(process.env.ACODE_MODEL ? { model: process.env.ACODE_MODEL } : {}),
42
- ...(process.env.ACODE_BASE_URL ? { baseURL: process.env.ACODE_BASE_URL } : {}),
43
- ...(process.env.ACODE_API_KEY ? { apiKey: process.env.ACODE_API_KEY } : {}),
44
- ...(process.env.ACODE_EFFORT ? { effort: process.env.ACODE_EFFORT } : {}),
45
- };
46
- }
47
- async function loadFileLayer(acodeConfigPath) {
48
- try {
49
- const raw = await fs.readFile(acodeConfigPath, "utf-8");
50
- const parsed = JSON.parse(raw);
51
- const provider = parsed.provider;
52
- const def = provider?.default;
53
- const opts = def?.options;
54
- return {
55
- ...(def?.model ? { model: def.model } : {}),
56
- ...(opts?.baseURL || opts?.baseUrl ? { baseURL: opts.baseURL || opts.baseUrl } : {}),
57
- ...(opts?.apiKey ? { apiKey: opts.apiKey } : {}),
58
- };
59
- }
60
- catch {
61
- return {};
62
- }
63
- }
64
- /**
65
- * 仲裁来源标签。优先级:api > env > file > default
66
- */
67
- function resolveSourceLabel(key, apiVal, envVal, fileVal) {
68
- if (apiVal !== undefined)
69
- return "api";
70
- if (envVal !== undefined)
71
- return "env";
72
- if (fileVal !== undefined)
73
- return "file";
74
- return "default";
75
- }
76
- /**
77
- * 准备 ACode 实例配置。
78
- *
79
- * 主流程:
80
- * 1. 从 apiOverrides(请求体)、env(环境变量)、file(acode.json)三层收集配置
81
- * 2. 按 api > env > file 优先级仲裁每个字段
82
- * 3. 将仲裁结果 deep-merge 写入 per-instance acode.json
83
- * 4. 返回合并后的 config 和 per-instance 文件路径
84
- */
85
- export async function prepareAcodeInstanceConfig(options) {
86
- const runtimeHome = getRuntimeHomeDir();
87
- const globalConfigPath = getAcodeConfigFile(runtimeHome);
88
- const perInstanceDir = path.join(runtimeHome, ".aws-bridge", "instances", options.agentId);
89
- const perInstanceConfigPath = path.join(perInstanceDir, "acode.json");
90
- // 收集三层配置
91
- const apiLayer = options.apiOverrides ?? {};
92
- const envLayer = loadEnvLayer();
93
- const fileLayer = await loadFileLayer(globalConfigPath);
94
- // 逐字段仲裁(api > env > file)
95
- const model = apiLayer.model ?? envLayer.model ?? fileLayer.model;
96
- const baseURL = apiLayer.baseURL ?? envLayer.baseURL ?? fileLayer.baseURL;
97
- const apiKey = apiLayer.apiKey ?? envLayer.apiKey ?? fileLayer.apiKey;
98
- const effort = apiLayer.effort ?? envLayer.effort;
99
- const resolvedConfig = {};
100
- if (model)
101
- resolvedConfig.model = model;
102
- if (baseURL)
103
- resolvedConfig.baseURL = baseURL;
104
- if (apiKey)
105
- resolvedConfig.apiKey = apiKey;
106
- if (effort)
107
- resolvedConfig.effort = effort;
108
- const source = {
109
- model: resolveSourceLabel("model", apiLayer.model, envLayer.model, fileLayer.model),
110
- baseURL: resolveSourceLabel("baseURL", apiLayer.baseURL, envLayer.baseURL, fileLayer.baseURL),
111
- apiKey: resolveSourceLabel("apiKey", apiLayer.apiKey, envLayer.apiKey, fileLayer.apiKey),
112
- effort: resolveSourceLabel("effort", apiLayer.effort, envLayer.effort, undefined),
113
- };
114
- // 写入 per-instance acode.json(deep-merge 全局配置 + 仲裁结果)
115
- const dbg = getInstanceAiConfigDebugLogger();
116
- try {
117
- await fs.mkdir(perInstanceDir, { recursive: true });
118
- // 读取全局 acode.json 作为 base
119
- let baseConfig = {};
120
- try {
121
- const globalRaw = await fs.readFile(globalConfigPath, "utf-8");
122
- baseConfig = JSON.parse(globalRaw);
123
- }
124
- catch {
125
- // 全局文件不存在则用空对象
126
- }
127
- // deep-merge provider.default.options
128
- const mergedConfig = JSON.parse(JSON.stringify(baseConfig));
129
- const provider = (mergedConfig.provider ?? {});
130
- const def = (provider.default ?? {});
131
- const options_ = (def.options ?? {});
132
- if (model)
133
- options_.model = model;
134
- if (baseURL)
135
- options_.baseURL = baseURL;
136
- if (apiKey)
137
- options_.apiKey = apiKey;
138
- if (effort)
139
- options_.effort = effort;
140
- def.options = options_;
141
- provider.default = def;
142
- mergedConfig.provider = provider;
143
- await fs.writeFile(perInstanceConfigPath, JSON.stringify(mergedConfig, null, 2), "utf-8");
144
- void dbg.log({
145
- level: "info",
146
- category: "apply",
147
- message: "per-instance acode.json 已写入",
148
- source: "bridge",
149
- agentId: options.agentId,
150
- sessionId: options.sessionId,
151
- details: {
152
- perInstanceConfigPath,
153
- source,
154
- },
155
- });
156
- }
157
- catch (error) {
158
- const message = error instanceof Error ? error.message : String(error);
159
- void dbg.log({
160
- level: "error",
161
- category: "apply",
162
- message: `per-instance acode.json 写入失败: ${message}`,
163
- source: "bridge",
164
- agentId: options.agentId,
165
- });
166
- }
167
- return {
168
- instanceConfig: {
169
- config: resolvedConfig,
170
- source,
171
- },
172
- perInstanceConfigPath,
173
- };
174
- }
1
+ import m from"node:fs/promises";import K from"node:path";import{getAcodeConfigFile as U,getRuntimeHomeDir as C}from"../config.js";import{getInstanceAiConfigDebugLogger as A}from"../utils/instance-ai-config-debug-logger.js";const I=new Set(["apiKey","api_key","apikey","key","secret","token","password"]);function _(t){const e={...t};for(const r of Object.keys(e))if(I.has(r)){const n=e[r];typeof n=="string"&&n.length>0&&(e[r]=n.length>8?`${n.slice(0,4)}...${n.slice(-4)}`:"***")}else typeof e[r]=="object"&&e[r]!==null&&(e[r]=_(e[r]));return e}function D(){return{...process.env.ACODE_MODEL?{model:process.env.ACODE_MODEL}:{},...process.env.ACODE_BASE_URL?{baseURL:process.env.ACODE_BASE_URL}:{},...process.env.ACODE_API_KEY?{apiKey:process.env.ACODE_API_KEY}:{},...process.env.ACODE_EFFORT?{effort:process.env.ACODE_EFFORT}:{}}}async function S(t){try{const e=await m.readFile(t,"utf-8"),a=JSON.parse(e).provider?.default,o=a?.options;return{...a?.model?{model:a.model}:{},...o?.baseURL||o?.baseUrl?{baseURL:o.baseURL||o.baseUrl}:{},...o?.apiKey?{apiKey:o.apiKey}:{}}}catch{return{}}}function b(t,e,r,n){return e!==void 0?"api":r!==void 0?"env":n!==void 0?"file":"default"}async function j(t){const e=C(),r=U(e),n=K.join(e,".aws-bridge","instances",t.agentId),a=K.join(n,"acode.json"),o=t.apiOverrides??{},s=D(),i=await S(r),l=o.model??s.model??i.model,g=o.baseURL??s.baseURL??i.baseURL,y=o.apiKey??s.apiKey??i.apiKey,u=o.effort??s.effort,f={};l&&(f.model=l),g&&(f.baseURL=g),y&&(f.apiKey=y),u&&(f.effort=u);const E={model:b("model",o.model,s.model,i.model),baseURL:b("baseURL",o.baseURL,s.baseURL,i.baseURL),apiKey:b("apiKey",o.apiKey,s.apiKey,i.apiKey),effort:b("effort",o.effort,s.effort,void 0)},R=A();try{await m.mkdir(n,{recursive:!0});let c={};try{const O=await m.readFile(r,"utf-8");c=JSON.parse(O)}catch{}const d=JSON.parse(JSON.stringify(c)),L=d.provider??{},v=L.default??{},p=v.options??{};l&&(p.model=l),g&&(p.baseURL=g),y&&(p.apiKey=y),u&&(p.effort=u),v.options=p,L.default=v,d.provider=L,await m.writeFile(a,JSON.stringify(d,null,2),"utf-8"),R.log({level:"info",category:"apply",message:"per-instance acode.json \u5DF2\u5199\u5165",source:"bridge",agentId:t.agentId,sessionId:t.sessionId,details:{perInstanceConfigPath:a,source:E}})}catch(c){const d=c instanceof Error?c.message:String(c);R.log({level:"error",category:"apply",message:`per-instance acode.json \u5199\u5165\u5931\u8D25: ${d}`,source:"bridge",agentId:t.agentId})}return{instanceConfig:{config:f,source:E},perInstanceConfigPath:a}}export{j as prepareAcodeInstanceConfig,_ as redactForLog};
2
+
@@ -32,4 +32,3 @@ export declare function initInstance(agentId: string, workspacePath: string, opt
32
32
  mcpServers: LegacyMcpStateItem[];
33
33
  };
34
34
  }>;
35
- //# sourceMappingURL=instance-init-service.d.ts.map
@@ -1,193 +1,2 @@
1
- import { promises as fs } from 'node:fs';
2
- import path from 'node:path';
3
- import { ensureDir, installSkillPackageToSdk } from '../utils/file-utils.js';
4
- import { buildMcpConfigContent, normalizeSdkMcpServerSpec, toLegacyMcpStateItem, toLegacySkillStateItem } from '../utils/mcp-utils.js';
5
- import { normalizeMcpPayload } from '../utils/mcp-utils.js';
6
- import { ensureEnabledTools, parseBoolean } from '../utils/validation.js';
7
- import { loadCcSwitchSdk, runCcSwitchAdapter, toSdkAppsFromEnabledTools } from './cc-switch-sdk.js';
8
- import { getAgentInitRoot, loadInstanceState, saveInstanceState } from './instance-state.js';
9
- import { detectToolStatuses } from './tool-installer.js';
10
- function pickInstalledTools(requestedTools, toolStatus) {
11
- const installed = new Set(Object.values(toolStatus)
12
- .filter((item) => item.installed)
13
- .map((item) => item.tool));
14
- return requestedTools.filter((tool) => installed.has(tool));
15
- }
16
- export async function syncLegacyStateFromSdk(agentId, sdk) {
17
- const state = await loadInstanceState(agentId);
18
- const mcpServers = sdk.getAllMcpServers().map((item) => toLegacyMcpStateItem(item));
19
- const skills = sdk.getAllSkills().map((item) => toLegacySkillStateItem(item));
20
- state.mcpServers = mcpServers;
21
- state.skills = skills;
22
- const initRoot = getAgentInitRoot(agentId);
23
- const mcpDir = await ensureDir(path.join(initRoot, 'mcp'));
24
- const mcpConfigPath = path.join(mcpDir, 'mcp-servers.json');
25
- await fs.writeFile(mcpConfigPath, buildMcpConfigContent(mcpServers), 'utf-8');
26
- const saved = await saveInstanceState(agentId, state);
27
- return {
28
- state: saved,
29
- configPath: mcpConfigPath,
30
- skills,
31
- mcpServers,
32
- };
33
- }
34
- export async function initInstance(agentId, workspacePath, options) {
35
- const normalizedWorkspace = path.resolve(workspacePath);
36
- const initRoot = getAgentInitRoot(agentId);
37
- const logs = [];
38
- function pushLog(step, status, message, details) {
39
- logs.push({
40
- step,
41
- status,
42
- message,
43
- timestamp: new Date().toISOString(),
44
- details,
45
- });
46
- }
47
- pushLog('prepare', 'running', '开始初始化实例', {
48
- agentId: String(agentId),
49
- workspacePath: normalizedWorkspace,
50
- });
51
- await ensureDir(initRoot);
52
- pushLog('prepare', 'success', '初始化目录已就绪', { initRoot });
53
- const tools = ensureEnabledTools(options.ccSwitchEnabledTools);
54
- pushLog('detect-tools', 'running', '开始检测工具安装状态', { tools });
55
- const detectedToolStatus = await detectToolStatuses(tools);
56
- pushLog('detect-tools', 'success', '工具安装状态检测完成', {
57
- installedTools: Object.values(detectedToolStatus).filter((item) => item.installed).map((item) => item.tool),
58
- missingTools: Object.values(detectedToolStatus).filter((item) => !item.installed).map((item) => item.tool),
59
- });
60
- const installedTools = pickInstalledTools(tools, detectedToolStatus);
61
- const missingTools = Object.values(detectedToolStatus).filter((item) => !item.installed);
62
- const initResult = {
63
- ok: true,
64
- agentId: String(agentId),
65
- workspacePath: normalizedWorkspace,
66
- initRoot,
67
- enabledTools: tools,
68
- toolStatus: detectedToolStatus,
69
- logs,
70
- skill: {
71
- enabled: parseBoolean(options.skillEnabled, true),
72
- packagePresent: false,
73
- },
74
- mcp: {
75
- enabled: parseBoolean(options.mcpEnabled, true),
76
- configPath: null,
77
- },
78
- };
79
- const state = await loadInstanceState(agentId);
80
- if (missingTools.length > 0) {
81
- pushLog('skip-uninstalled-tools', 'skipped', '已跳过未安装工具', {
82
- skippedTools: missingTools.map((item) => ({ tool: item.tool, error: item.error })),
83
- });
84
- }
85
- pushLog('select-installed-tools', 'success', '已选择可初始化工具', {
86
- enabledTools: tools,
87
- installedTools,
88
- });
89
- pushLog('load-sdk', 'running', '开始加载 CC Switch SDK');
90
- const sdk = await loadCcSwitchSdk(agentId);
91
- const sdkApps = toSdkAppsFromEnabledTools(installedTools);
92
- pushLog('load-sdk', 'success', 'CC Switch SDK 加载完成', { sdkApps });
93
- if (initResult.skill.enabled) {
94
- pushLog('install-skills', 'running', '开始安装技能包', {
95
- count: Array.isArray(options.skillPackages) ? options.skillPackages.length : (options.skillPackage ? 1 : 0),
96
- });
97
- const skillDir = await ensureDir(path.join(initRoot, 'skills'));
98
- const skillCandidates = Array.isArray(options.skillPackages) && options.skillPackages.length > 0
99
- ? options.skillPackages
100
- : (options.skillPackage ? [options.skillPackage] : []);
101
- const installedSkills = [];
102
- for (const candidate of skillCandidates) {
103
- const installed = await installSkillPackageToSdk(sdk, candidate, skillDir, sdkApps);
104
- if (!installed) {
105
- continue;
106
- }
107
- installedSkills.push(toLegacySkillStateItem(installed));
108
- }
109
- if (installedSkills.length > 0) {
110
- initResult.skill.packagePresent = true;
111
- initResult.skill.installedCount = installedSkills.length;
112
- initResult.skill.installed = installedSkills;
113
- pushLog('install-skills', 'success', '技能包安装完成', {
114
- installedCount: installedSkills.length,
115
- skills: installedSkills.map((item) => item.name),
116
- });
117
- }
118
- else {
119
- pushLog('install-skills', 'skipped', '没有可安装的技能包');
120
- }
121
- }
122
- else {
123
- pushLog('install-skills', 'skipped', '已跳过技能包安装(skillEnabled=false)');
124
- }
125
- if (initResult.mcp.enabled) {
126
- pushLog('install-mcp', 'running', '开始写入 MCP 配置', {
127
- count: Array.isArray(options.mcpServers) ? options.mcpServers.length : 0,
128
- });
129
- const normalizedMcpServers = (Array.isArray(options.mcpServers) ? options.mcpServers : [])
130
- .map((item) => normalizeMcpPayload(item))
131
- .filter((item) => item !== null);
132
- const appliedMcp = [];
133
- for (const item of normalizedMcpServers) {
134
- const allMcps = sdk.getAllMcpServers();
135
- const existing = allMcps.find((server) => String(server?.name || '').trim() === item.name);
136
- const mcpInput = {
137
- name: item.name,
138
- server: normalizeSdkMcpServerSpec(item),
139
- apps: sdkApps,
140
- };
141
- const existingId = String(existing?.id || '').trim();
142
- const upserted = existingId
143
- ? await sdk.updateMcpServer(existingId, mcpInput)
144
- : await sdk.createMcpServer(mcpInput);
145
- appliedMcp.push(toLegacyMcpStateItem(upserted));
146
- }
147
- initResult.mcp.installedCount = appliedMcp.length;
148
- pushLog('install-mcp', 'success', 'MCP 配置写入完成', {
149
- installedCount: appliedMcp.length,
150
- mcpServers: appliedMcp.map((item) => item.name),
151
- });
152
- }
153
- else {
154
- pushLog('install-mcp', 'skipped', '已跳过 MCP 配置(mcpEnabled=false)');
155
- }
156
- pushLog('persist-state', 'running', '开始保存实例状态');
157
- state.initialized = true;
158
- state.enabledTools = tools;
159
- state.toolStatus = detectedToolStatus;
160
- state.skillEnabled = initResult.skill.enabled;
161
- state.mcpEnabled = initResult.mcp.enabled;
162
- await saveInstanceState(agentId, state);
163
- pushLog('persist-state', 'success', '实例状态保存完成');
164
- pushLog('sync-state', 'running', '开始同步 CC Switch 状态快照');
165
- const synced = await syncLegacyStateFromSdk(agentId, sdk);
166
- const savedState = synced.state;
167
- initResult.mcp.configPath = synced.configPath;
168
- pushLog('sync-state', 'success', 'CC Switch 状态同步完成', {
169
- skillCount: savedState.skills.length,
170
- mcpCount: savedState.mcpServers.length,
171
- configPath: synced.configPath,
172
- });
173
- pushLog('adapter', 'running', '开始执行适配器回写');
174
- const adapterResult = await runCcSwitchAdapter('init-instance', agentId, {
175
- enabledTools: savedState.enabledTools,
176
- skillEnabled: savedState.skillEnabled,
177
- mcpEnabled: savedState.mcpEnabled,
178
- skillCount: savedState.skills.length,
179
- mcpCount: savedState.mcpServers.length,
180
- }, sdk);
181
- pushLog('adapter', 'success', '适配器回写完成', {
182
- snapshot: adapterResult.snapshot,
183
- });
184
- pushLog('complete', 'success', missingTools.length > 0 ? '实例初始化完成,未安装工具已跳过' : '实例初始化完成');
185
- return {
186
- ...initResult,
187
- adapterResult,
188
- installed: {
189
- skills: savedState.skills,
190
- mcpServers: savedState.mcpServers,
191
- },
192
- };
193
- }
1
+ import{promises as L}from"node:fs";import b from"node:path";import{ensureDir as P,installSkillPackageToSdk as F}from"../utils/file-utils.js";import{buildMcpConfigContent as I,normalizeSdkMcpServerSpec as K,toLegacyMcpStateItem as M,toLegacySkillStateItem as E}from"../utils/mcp-utils.js";import{normalizeMcpPayload as B}from"../utils/mcp-utils.js";import{ensureEnabledTools as W,parseBoolean as j}from"../utils/validation.js";import{loadCcSwitchSdk as q,runCcSwitchAdapter as G,toSdkAppsFromEnabledTools as H}from"./cc-switch-sdk.js";import{getAgentInitRoot as D,loadInstanceState as z,saveInstanceState as O}from"./instance-state.js";import{detectToolStatuses as J}from"./tool-installer.js";function N(a,m){const s=new Set(Object.values(m).filter(n=>n.installed).map(n=>n.tool));return a.filter(n=>s.has(n))}async function Q(a,m){const s=await z(a),n=m.getAllMcpServers().map(k=>M(k)),p=m.getAllSkills().map(k=>E(k));s.mcpServers=n,s.skills=p;const f=D(a),e=await P(b.join(f,"mcp")),c=b.join(e,"mcp-servers.json");return await L.writeFile(c,I(n),"utf-8"),{state:await O(a,s),configPath:c,skills:p,mcpServers:n}}async function te(a,m,s){const n=b.resolve(m),p=D(a),f=[];function e(t,r,l,S){f.push({step:t,status:r,message:l,timestamp:new Date().toISOString(),details:S})}e("prepare","running","\u5F00\u59CB\u521D\u59CB\u5316\u5B9E\u4F8B",{agentId:String(a),workspacePath:n}),await P(p),e("prepare","success","\u521D\u59CB\u5316\u76EE\u5F55\u5DF2\u5C31\u7EEA",{initRoot:p});const c=W(s.ccSwitchEnabledTools);e("detect-tools","running","\u5F00\u59CB\u68C0\u6D4B\u5DE5\u5177\u5B89\u88C5\u72B6\u6001",{tools:c});const d=await J(c);e("detect-tools","success","\u5DE5\u5177\u5B89\u88C5\u72B6\u6001\u68C0\u6D4B\u5B8C\u6210",{installedTools:Object.values(d).filter(t=>t.installed).map(t=>t.tool),missingTools:Object.values(d).filter(t=>!t.installed).map(t=>t.tool)});const k=N(c,d),v=Object.values(d).filter(t=>!t.installed),i={ok:!0,agentId:String(a),workspacePath:n,initRoot:p,enabledTools:c,toolStatus:d,logs:f,skill:{enabled:j(s.skillEnabled,!0),packagePresent:!1},mcp:{enabled:j(s.mcpEnabled,!0),configPath:null}},u=await z(a);v.length>0&&e("skip-uninstalled-tools","skipped","\u5DF2\u8DF3\u8FC7\u672A\u5B89\u88C5\u5DE5\u5177",{skippedTools:v.map(t=>({tool:t.tool,error:t.error}))}),e("select-installed-tools","success","\u5DF2\u9009\u62E9\u53EF\u521D\u59CB\u5316\u5DE5\u5177",{enabledTools:c,installedTools:k}),e("load-sdk","running","\u5F00\u59CB\u52A0\u8F7D CC Switch SDK");const g=await q(a),w=H(k);if(e("load-sdk","success","CC Switch SDK \u52A0\u8F7D\u5B8C\u6210",{sdkApps:w}),i.skill.enabled){e("install-skills","running","\u5F00\u59CB\u5B89\u88C5\u6280\u80FD\u5305",{count:Array.isArray(s.skillPackages)?s.skillPackages.length:s.skillPackage?1:0});const t=await P(b.join(p,"skills")),r=Array.isArray(s.skillPackages)&&s.skillPackages.length>0?s.skillPackages:s.skillPackage?[s.skillPackage]:[],l=[];for(const S of r){const h=await F(g,S,t,w);h&&l.push(E(h))}l.length>0?(i.skill.packagePresent=!0,i.skill.installedCount=l.length,i.skill.installed=l,e("install-skills","success","\u6280\u80FD\u5305\u5B89\u88C5\u5B8C\u6210",{installedCount:l.length,skills:l.map(S=>S.name)})):e("install-skills","skipped","\u6CA1\u6709\u53EF\u5B89\u88C5\u7684\u6280\u80FD\u5305")}else e("install-skills","skipped","\u5DF2\u8DF3\u8FC7\u6280\u80FD\u5305\u5B89\u88C5\uFF08skillEnabled=false\uFF09");if(i.mcp.enabled){e("install-mcp","running","\u5F00\u59CB\u5199\u5165 MCP \u914D\u7F6E",{count:Array.isArray(s.mcpServers)?s.mcpServers.length:0});const t=(Array.isArray(s.mcpServers)?s.mcpServers:[]).map(l=>B(l)).filter(l=>l!==null),r=[];for(const l of t){const h=g.getAllMcpServers().find(x=>String(x?.name||"").trim()===l.name),T={name:l.name,server:K(l),apps:w},A=String(h?.id||"").trim(),R=A?await g.updateMcpServer(A,T):await g.createMcpServer(T);r.push(M(R))}i.mcp.installedCount=r.length,e("install-mcp","success","MCP \u914D\u7F6E\u5199\u5165\u5B8C\u6210",{installedCount:r.length,mcpServers:r.map(l=>l.name)})}else e("install-mcp","skipped","\u5DF2\u8DF3\u8FC7 MCP \u914D\u7F6E\uFF08mcpEnabled=false\uFF09");e("persist-state","running","\u5F00\u59CB\u4FDD\u5B58\u5B9E\u4F8B\u72B6\u6001"),u.initialized=!0,u.enabledTools=c,u.toolStatus=d,u.skillEnabled=i.skill.enabled,u.mcpEnabled=i.mcp.enabled,await O(a,u),e("persist-state","success","\u5B9E\u4F8B\u72B6\u6001\u4FDD\u5B58\u5B8C\u6210"),e("sync-state","running","\u5F00\u59CB\u540C\u6B65 CC Switch \u72B6\u6001\u5FEB\u7167");const C=await Q(a,g),o=C.state;i.mcp.configPath=C.configPath,e("sync-state","success","CC Switch \u72B6\u6001\u540C\u6B65\u5B8C\u6210",{skillCount:o.skills.length,mcpCount:o.mcpServers.length,configPath:C.configPath}),e("adapter","running","\u5F00\u59CB\u6267\u884C\u9002\u914D\u5668\u56DE\u5199");const y=await G("init-instance",a,{enabledTools:o.enabledTools,skillEnabled:o.skillEnabled,mcpEnabled:o.mcpEnabled,skillCount:o.skills.length,mcpCount:o.mcpServers.length},g);return e("adapter","success","\u9002\u914D\u5668\u56DE\u5199\u5B8C\u6210",{snapshot:y.snapshot}),e("complete","success",v.length>0?"\u5B9E\u4F8B\u521D\u59CB\u5316\u5B8C\u6210\uFF0C\u672A\u5B89\u88C5\u5DE5\u5177\u5DF2\u8DF3\u8FC7":"\u5B9E\u4F8B\u521D\u59CB\u5316\u5B8C\u6210"),{...i,adapterResult:y,installed:{skills:o.skills,mcpServers:o.mcpServers}}}export{te as initInstance,Q as syncLegacyStateFromSdk};
2
+
@@ -85,4 +85,3 @@ export declare class InstanceService {
85
85
  updateState(partial: Partial<InstanceState>): Promise<InstanceState>;
86
86
  reset(): Promise<void>;
87
87
  }
88
- //# sourceMappingURL=instance-service.d.ts.map
@@ -1,237 +1,2 @@
1
- /**
2
- * InstanceService - Agent 实例初始化服务
3
- *
4
- * 负责 Agent 实例的生命周期管理:
5
- * - 实例根目录、workspace 路径管理
6
- * - 实例状态持久化
7
- * - Skill/MCP 包安装流程
8
- *
9
- * 注意:此服务属于 Agent 运行时层,不属于 cc-switch-sdk 配置管理层
10
- */
11
- import path from "node:path";
12
- import { promises as fs } from "node:fs";
13
- /**
14
- * 生成唯一 ID
15
- */
16
- function generateId(prefix = "inst") {
17
- const timestamp = Date.now().toString(36);
18
- const random = Math.random().toString(36).slice(2, 8);
19
- return `${prefix}_${timestamp}_${random}`;
20
- }
21
- /**
22
- * 检查路径是否存在
23
- */
24
- async function pathExists(target) {
25
- try {
26
- await fs.access(target);
27
- return true;
28
- }
29
- catch {
30
- return false;
31
- }
32
- }
33
- /**
34
- * 递归复制目录
35
- */
36
- async function copyDir(source, target) {
37
- await fs.mkdir(target, { recursive: true });
38
- const entries = await fs.readdir(source, { withFileTypes: true });
39
- for (const entry of entries) {
40
- const srcPath = path.join(source, entry.name);
41
- const tgtPath = path.join(target, entry.name);
42
- if (entry.isDirectory()) {
43
- await copyDir(srcPath, tgtPath);
44
- }
45
- else {
46
- await fs.copyFile(srcPath, tgtPath);
47
- }
48
- }
49
- }
50
- /**
51
- * 删除路径(如果存在)
52
- */
53
- async function removeIfExists(target) {
54
- try {
55
- await fs.rm(target, { recursive: true, force: true });
56
- }
57
- catch {
58
- // ignore
59
- }
60
- }
61
- export class InstanceService {
62
- constructor(sdk, instanceRoot, workspacePath) {
63
- this.sdk = sdk;
64
- this.instanceRoot = instanceRoot;
65
- this.workspacePath = workspacePath;
66
- }
67
- getPaths() {
68
- return {
69
- instanceRoot: this.instanceRoot,
70
- stateFile: path.join(this.instanceRoot, "instance-state.json"),
71
- skillsDir: path.join(this.instanceRoot, "skills"),
72
- mcpDir: path.join(this.instanceRoot, "mcp"),
73
- };
74
- }
75
- async loadState() {
76
- const paths = this.getPaths();
77
- try {
78
- const raw = await fs.readFile(paths.stateFile, "utf-8");
79
- const parsed = JSON.parse(raw);
80
- return parsed;
81
- }
82
- catch {
83
- return {
84
- initialized: false,
85
- skills: [],
86
- mcpServers: [],
87
- enabledApps: [],
88
- skillEnabled: true,
89
- mcpEnabled: true,
90
- updatedAt: null,
91
- };
92
- }
93
- }
94
- async saveState(state) {
95
- const paths = this.getPaths();
96
- state.updatedAt = new Date().toISOString();
97
- await fs.mkdir(path.dirname(paths.stateFile), { recursive: true });
98
- await fs.writeFile(paths.stateFile, JSON.stringify(state, null, 2), "utf-8");
99
- return state;
100
- }
101
- async ensureInstanceRoot() {
102
- await fs.mkdir(this.instanceRoot, { recursive: true });
103
- }
104
- toAppFlags(appIds) {
105
- return {
106
- acode: appIds.includes("acode"),
107
- claude: appIds.includes("claude"),
108
- claudecode: appIds.includes("claudecode"),
109
- codex: appIds.includes("codex"),
110
- gemini: appIds.includes("gemini"),
111
- opencode: appIds.includes("opencode"),
112
- openclaw: appIds.includes("openclaw"),
113
- };
114
- }
115
- async initialize(options = {}) {
116
- await this.ensureInstanceRoot();
117
- const paths = this.getPaths();
118
- const enabledApps = options.enabledApps ?? ["claudecode", "opencode"];
119
- const appFlags = this.toAppFlags(enabledApps);
120
- const result = {
121
- ok: true,
122
- instanceId: generateId(),
123
- workspacePath: this.workspacePath,
124
- instanceRoot: this.instanceRoot,
125
- enabledApps,
126
- skill: {
127
- enabled: options.skillEnabled ?? true,
128
- packagePresent: false,
129
- },
130
- mcp: {
131
- enabled: options.mcpEnabled ?? true,
132
- },
133
- };
134
- const state = await this.loadState();
135
- state.initialized = true;
136
- state.enabledApps = enabledApps;
137
- state.skillEnabled = result.skill.enabled;
138
- state.mcpEnabled = result.mcp.enabled;
139
- if (result.skill.enabled) {
140
- await fs.mkdir(paths.skillsDir, { recursive: true });
141
- const skillCandidates = Array.isArray(options.skillPackages) && options.skillPackages.length > 0
142
- ? options.skillPackages
143
- : options.skillPackage
144
- ? [options.skillPackage]
145
- : [];
146
- const installedSkills = [];
147
- for (const candidate of skillCandidates) {
148
- const installed = await this.installSkillPackage(candidate, paths.skillsDir, appFlags);
149
- if (installed) {
150
- installedSkills.push(installed);
151
- }
152
- }
153
- if (installedSkills.length > 0) {
154
- result.skill.packagePresent = true;
155
- result.skill.installedCount = installedSkills.length;
156
- result.skill.installed = installedSkills;
157
- state.skills = installedSkills;
158
- }
159
- }
160
- if (result.mcp.enabled) {
161
- const mcpServers = Array.isArray(options.mcpServers)
162
- ? options.mcpServers
163
- : [];
164
- const installedMcps = [];
165
- for (const input of mcpServers) {
166
- const server = await this.upsertMcpServer(input, appFlags);
167
- if (server) {
168
- installedMcps.push(server);
169
- }
170
- }
171
- if (installedMcps.length > 0) {
172
- result.mcp.installedCount = installedMcps.length;
173
- result.mcp.installed = installedMcps;
174
- state.mcpServers = installedMcps;
175
- }
176
- }
177
- await this.saveState(state);
178
- return result;
179
- }
180
- async installSkillPackage(pkg, targetDir, apps) {
181
- const sourceDir = pkg.localPath;
182
- if (!sourceDir || !(await pathExists(sourceDir))) {
183
- return null;
184
- }
185
- const skillName = pkg.skillName || path.basename(sourceDir).replace(/\.skill$/, "");
186
- const skillId = generateId("skill");
187
- const targetSkillDir = path.join(targetDir, skillName);
188
- await copyDir(sourceDir, targetSkillDir);
189
- const installed = await this.sdk.installSkill({
190
- sourceDir: targetSkillDir,
191
- name: skillName,
192
- apps,
193
- });
194
- return installed;
195
- }
196
- async upsertMcpServer(input, apps) {
197
- const name = String(input.name || "").trim();
198
- if (!name) {
199
- return null;
200
- }
201
- const existingMcps = this.sdk.getAllMcpServers();
202
- const existing = existingMcps.find((s) => s.name === name);
203
- const serverSpec = {
204
- type: input.transport || "stdio",
205
- command: input.command,
206
- url: input.url,
207
- args: input.args,
208
- env: input.env,
209
- };
210
- if (existing) {
211
- return this.sdk.updateMcpServer(existing.id, {
212
- name,
213
- server: serverSpec,
214
- apps,
215
- });
216
- }
217
- return this.sdk.createMcpServer({
218
- name,
219
- server: serverSpec,
220
- apps,
221
- });
222
- }
223
- async getState() {
224
- return this.loadState();
225
- }
226
- async updateState(partial) {
227
- const state = await this.loadState();
228
- Object.assign(state, partial);
229
- return this.saveState(state);
230
- }
231
- async reset() {
232
- const paths = this.getPaths();
233
- await removeIfExists(paths.stateFile);
234
- await removeIfExists(paths.skillsDir);
235
- await removeIfExists(paths.mcpDir);
236
- }
237
- }
1
+ import d from"node:path";import{promises as l}from"node:fs";function p(c="inst"){const e=Date.now().toString(36),t=Math.random().toString(36).slice(2,8);return`${c}_${e}_${t}`}async function g(c){try{return await l.access(c),!0}catch{return!1}}async function m(c,e){await l.mkdir(e,{recursive:!0});const t=await l.readdir(c,{withFileTypes:!0});for(const a of t){const n=d.join(c,a.name),s=d.join(e,a.name);a.isDirectory()?await m(n,s):await l.copyFile(n,s)}}async function k(c){try{await l.rm(c,{recursive:!0,force:!0})}catch{}}class f{constructor(e,t,a){this.sdk=e,this.instanceRoot=t,this.workspacePath=a}getPaths(){return{instanceRoot:this.instanceRoot,stateFile:d.join(this.instanceRoot,"instance-state.json"),skillsDir:d.join(this.instanceRoot,"skills"),mcpDir:d.join(this.instanceRoot,"mcp")}}async loadState(){const e=this.getPaths();try{const t=await l.readFile(e.stateFile,"utf-8");return JSON.parse(t)}catch{return{initialized:!1,skills:[],mcpServers:[],enabledApps:[],skillEnabled:!0,mcpEnabled:!0,updatedAt:null}}}async saveState(e){const t=this.getPaths();return e.updatedAt=new Date().toISOString(),await l.mkdir(d.dirname(t.stateFile),{recursive:!0}),await l.writeFile(t.stateFile,JSON.stringify(e,null,2),"utf-8"),e}async ensureInstanceRoot(){await l.mkdir(this.instanceRoot,{recursive:!0})}toAppFlags(e){return{acode:e.includes("acode"),claude:e.includes("claude"),claudecode:e.includes("claudecode"),codex:e.includes("codex"),gemini:e.includes("gemini"),opencode:e.includes("opencode"),openclaw:e.includes("openclaw")}}async initialize(e={}){await this.ensureInstanceRoot();const t=this.getPaths(),a=e.enabledApps??["claudecode","opencode"],n=this.toAppFlags(a),s={ok:!0,instanceId:p(),workspacePath:this.workspacePath,instanceRoot:this.instanceRoot,enabledApps:a,skill:{enabled:e.skillEnabled??!0,packagePresent:!1},mcp:{enabled:e.mcpEnabled??!0}},r=await this.loadState();if(r.initialized=!0,r.enabledApps=a,r.skillEnabled=s.skill.enabled,r.mcpEnabled=s.mcp.enabled,s.skill.enabled){await l.mkdir(t.skillsDir,{recursive:!0});const o=Array.isArray(e.skillPackages)&&e.skillPackages.length>0?e.skillPackages:e.skillPackage?[e.skillPackage]:[],i=[];for(const h of o){const u=await this.installSkillPackage(h,t.skillsDir,n);u&&i.push(u)}i.length>0&&(s.skill.packagePresent=!0,s.skill.installedCount=i.length,s.skill.installed=i,r.skills=i)}if(s.mcp.enabled){const o=Array.isArray(e.mcpServers)?e.mcpServers:[],i=[];for(const h of o){const u=await this.upsertMcpServer(h,n);u&&i.push(u)}i.length>0&&(s.mcp.installedCount=i.length,s.mcp.installed=i,r.mcpServers=i)}return await this.saveState(r),s}async installSkillPackage(e,t,a){const n=e.localPath;if(!n||!await g(n))return null;const s=e.skillName||d.basename(n).replace(/\.skill$/,""),r=p("skill"),o=d.join(t,s);return await m(n,o),await this.sdk.installSkill({sourceDir:o,name:s,apps:a})}async upsertMcpServer(e,t){const a=String(e.name||"").trim();if(!a)return null;const s=this.sdk.getAllMcpServers().find(o=>o.name===a),r={type:e.transport||"stdio",command:e.command,url:e.url,args:e.args,env:e.env};return s?this.sdk.updateMcpServer(s.id,{name:a,server:r,apps:t}):this.sdk.createMcpServer({name:a,server:r,apps:t})}async getState(){return this.loadState()}async updateState(e){const t=await this.loadState();return Object.assign(t,e),this.saveState(t)}async reset(){const e=this.getPaths();await k(e.stateFile),await k(e.skillsDir),await k(e.mcpDir)}}export{f as InstanceService};
2
+
@@ -33,4 +33,3 @@ export declare function saveInstanceState(agentId: string, state: Partial<Instan
33
33
  * @returns 初始化根目录路径
34
34
  */
35
35
  export declare function getAgentInitRoot(agentId: string): string;
36
- //# sourceMappingURL=instance-state.d.ts.map