aws-runtime-bridge 1.0.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 (462) hide show
  1. package/README.md +56 -0
  2. package/dist/adapter/AdapterRegistry.d.ts +53 -0
  3. package/dist/adapter/AdapterRegistry.d.ts.map +1 -0
  4. package/dist/adapter/AdapterRegistry.js +100 -0
  5. package/dist/adapter/AdapterRegistry.test.d.ts +5 -0
  6. package/dist/adapter/AdapterRegistry.test.d.ts.map +1 -0
  7. package/dist/adapter/AdapterRegistry.test.js +109 -0
  8. package/dist/adapter/ClaudeSdkAdapter.d.ts +120 -0
  9. package/dist/adapter/ClaudeSdkAdapter.d.ts.map +1 -0
  10. package/dist/adapter/ClaudeSdkAdapter.js +1140 -0
  11. package/dist/adapter/ClaudeSdkAdapter.test.d.ts +2 -0
  12. package/dist/adapter/ClaudeSdkAdapter.test.d.ts.map +1 -0
  13. package/dist/adapter/ClaudeSdkAdapter.test.js +95 -0
  14. package/dist/adapter/CodexSdkAdapter.d.ts +48 -0
  15. package/dist/adapter/CodexSdkAdapter.d.ts.map +1 -0
  16. package/dist/adapter/CodexSdkAdapter.js +750 -0
  17. package/dist/adapter/CodexSdkAdapter.test.d.ts +2 -0
  18. package/dist/adapter/CodexSdkAdapter.test.d.ts.map +1 -0
  19. package/dist/adapter/CodexSdkAdapter.test.js +245 -0
  20. package/dist/adapter/OpencodeSdkAdapter.d.ts +45 -0
  21. package/dist/adapter/OpencodeSdkAdapter.d.ts.map +1 -0
  22. package/dist/adapter/OpencodeSdkAdapter.js +622 -0
  23. package/dist/adapter/OpencodeSdkAdapter.test.d.ts +2 -0
  24. package/dist/adapter/OpencodeSdkAdapter.test.d.ts.map +1 -0
  25. package/dist/adapter/OpencodeSdkAdapter.test.js +14 -0
  26. package/dist/adapter/SdkProviderSpi.d.ts +15 -0
  27. package/dist/adapter/SdkProviderSpi.d.ts.map +1 -0
  28. package/dist/adapter/SdkProviderSpi.js +46 -0
  29. package/dist/adapter/adapter.test.d.ts +5 -0
  30. package/dist/adapter/adapter.test.d.ts.map +1 -0
  31. package/dist/adapter/adapter.test.js +180 -0
  32. package/dist/adapter/index.d.ts +11 -0
  33. package/dist/adapter/index.d.ts.map +1 -0
  34. package/dist/adapter/index.js +10 -0
  35. package/dist/adapter/types.d.ts +278 -0
  36. package/dist/adapter/types.d.ts.map +1 -0
  37. package/dist/adapter/types.js +278 -0
  38. package/dist/adapter/types.test.d.ts +2 -0
  39. package/dist/adapter/types.test.d.ts.map +1 -0
  40. package/dist/adapter/types.test.js +59 -0
  41. package/dist/adapters/cc-switch/common.d.ts +52 -0
  42. package/dist/adapters/cc-switch/common.d.ts.map +1 -0
  43. package/dist/adapters/cc-switch/common.js +61 -0
  44. package/dist/adapters/cc-switch/index.d.ts +25 -0
  45. package/dist/adapters/cc-switch/index.d.ts.map +1 -0
  46. package/dist/adapters/cc-switch/index.js +51 -0
  47. package/dist/adapters/cc-switch/mcp-claude.d.ts +15 -0
  48. package/dist/adapters/cc-switch/mcp-claude.d.ts.map +1 -0
  49. package/dist/adapters/cc-switch/mcp-claude.js +88 -0
  50. package/dist/adapters/cc-switch/mcp-claudecode.d.ts +15 -0
  51. package/dist/adapters/cc-switch/mcp-claudecode.d.ts.map +1 -0
  52. package/dist/adapters/cc-switch/mcp-claudecode.js +77 -0
  53. package/dist/adapters/cc-switch/mcp-codex.d.ts +17 -0
  54. package/dist/adapters/cc-switch/mcp-codex.d.ts.map +1 -0
  55. package/dist/adapters/cc-switch/mcp-codex.js +248 -0
  56. package/dist/adapters/cc-switch/mcp-codex.test.d.ts +2 -0
  57. package/dist/adapters/cc-switch/mcp-codex.test.d.ts.map +1 -0
  58. package/dist/adapters/cc-switch/mcp-codex.test.js +125 -0
  59. package/dist/adapters/cc-switch/mcp-opencode.d.ts +23 -0
  60. package/dist/adapters/cc-switch/mcp-opencode.d.ts.map +1 -0
  61. package/dist/adapters/cc-switch/mcp-opencode.js +100 -0
  62. package/dist/adapters/cc-switch/mcp-placeholder.d.ts +14 -0
  63. package/dist/adapters/cc-switch/mcp-placeholder.d.ts.map +1 -0
  64. package/dist/adapters/cc-switch/mcp-placeholder.js +19 -0
  65. package/dist/adapters/cc-switch/skill-claude.d.ts +15 -0
  66. package/dist/adapters/cc-switch/skill-claude.d.ts.map +1 -0
  67. package/dist/adapters/cc-switch/skill-claude.js +91 -0
  68. package/dist/adapters/cc-switch/skill-claudecode.d.ts +15 -0
  69. package/dist/adapters/cc-switch/skill-claudecode.d.ts.map +1 -0
  70. package/dist/adapters/cc-switch/skill-claudecode.js +91 -0
  71. package/dist/adapters/cc-switch/skill-opencode.d.ts +15 -0
  72. package/dist/adapters/cc-switch/skill-opencode.d.ts.map +1 -0
  73. package/dist/adapters/cc-switch/skill-opencode.js +95 -0
  74. package/dist/adapters/cc-switch/skill-placeholder.d.ts +14 -0
  75. package/dist/adapters/cc-switch/skill-placeholder.d.ts.map +1 -0
  76. package/dist/adapters/cc-switch/skill-placeholder.js +19 -0
  77. package/dist/config.d.ts +76 -0
  78. package/dist/config.d.ts.map +1 -0
  79. package/dist/config.js +109 -0
  80. package/dist/index.d.ts +8 -0
  81. package/dist/index.d.ts.map +1 -0
  82. package/dist/index.js +503 -0
  83. package/dist/middleware/auth.d.ts +12 -0
  84. package/dist/middleware/auth.d.ts.map +1 -0
  85. package/dist/middleware/auth.js +18 -0
  86. package/dist/routes/ai-sources.d.ts +2 -0
  87. package/dist/routes/ai-sources.d.ts.map +1 -0
  88. package/dist/routes/ai-sources.js +136 -0
  89. package/dist/routes/ai-sources.test.d.ts +2 -0
  90. package/dist/routes/ai-sources.test.d.ts.map +1 -0
  91. package/dist/routes/ai-sources.test.js +148 -0
  92. package/dist/routes/aws-mcp.d.ts +10 -0
  93. package/dist/routes/aws-mcp.d.ts.map +1 -0
  94. package/dist/routes/aws-mcp.js +74 -0
  95. package/dist/routes/aws-mcp.test.d.ts +2 -0
  96. package/dist/routes/aws-mcp.test.d.ts.map +1 -0
  97. package/dist/routes/aws-mcp.test.js +42 -0
  98. package/dist/routes/file-browser.d.ts +7 -0
  99. package/dist/routes/file-browser.d.ts.map +1 -0
  100. package/dist/routes/file-browser.js +227 -0
  101. package/dist/routes/file-browser.test.d.ts +5 -0
  102. package/dist/routes/file-browser.test.d.ts.map +1 -0
  103. package/dist/routes/file-browser.test.js +88 -0
  104. package/dist/routes/git.d.ts +7 -0
  105. package/dist/routes/git.d.ts.map +1 -0
  106. package/dist/routes/git.js +470 -0
  107. package/dist/routes/git.test.d.ts +5 -0
  108. package/dist/routes/git.test.d.ts.map +1 -0
  109. package/dist/routes/git.test.js +87 -0
  110. package/dist/routes/instance.d.ts +3 -0
  111. package/dist/routes/instance.d.ts.map +1 -0
  112. package/dist/routes/instance.js +170 -0
  113. package/dist/routes/instance.test.d.ts +5 -0
  114. package/dist/routes/instance.test.d.ts.map +1 -0
  115. package/dist/routes/instance.test.js +64 -0
  116. package/dist/routes/mcp.d.ts +2 -0
  117. package/dist/routes/mcp.d.ts.map +1 -0
  118. package/dist/routes/mcp.js +171 -0
  119. package/dist/routes/mcp.test.d.ts +5 -0
  120. package/dist/routes/mcp.test.d.ts.map +1 -0
  121. package/dist/routes/mcp.test.js +84 -0
  122. package/dist/routes/memory.d.ts +13 -0
  123. package/dist/routes/memory.d.ts.map +1 -0
  124. package/dist/routes/memory.js +429 -0
  125. package/dist/routes/processes.d.ts +7 -0
  126. package/dist/routes/processes.d.ts.map +1 -0
  127. package/dist/routes/processes.js +245 -0
  128. package/dist/routes/properties.d.ts +7 -0
  129. package/dist/routes/properties.d.ts.map +1 -0
  130. package/dist/routes/properties.js +72 -0
  131. package/dist/routes/properties.test.d.ts +5 -0
  132. package/dist/routes/properties.test.d.ts.map +1 -0
  133. package/dist/routes/properties.test.js +72 -0
  134. package/dist/routes/sessions.d.ts +7 -0
  135. package/dist/routes/sessions.d.ts.map +1 -0
  136. package/dist/routes/sessions.js +808 -0
  137. package/dist/routes/sessions.test.d.ts +5 -0
  138. package/dist/routes/sessions.test.d.ts.map +1 -0
  139. package/dist/routes/sessions.test.js +70 -0
  140. package/dist/routes/skills.d.ts +2 -0
  141. package/dist/routes/skills.d.ts.map +1 -0
  142. package/dist/routes/skills.js +162 -0
  143. package/dist/routes/skills.test.d.ts +5 -0
  144. package/dist/routes/skills.test.d.ts.map +1 -0
  145. package/dist/routes/skills.test.js +42 -0
  146. package/dist/routes/terminal.d.ts +18 -0
  147. package/dist/routes/terminal.d.ts.map +1 -0
  148. package/dist/routes/terminal.js +663 -0
  149. package/dist/routes/terminal.test.d.ts +2 -0
  150. package/dist/routes/terminal.test.d.ts.map +1 -0
  151. package/dist/routes/terminal.test.js +91 -0
  152. package/dist/routes/yml.d.ts +7 -0
  153. package/dist/routes/yml.d.ts.map +1 -0
  154. package/dist/routes/yml.js +223 -0
  155. package/dist/routes/yml.test.d.ts +5 -0
  156. package/dist/routes/yml.test.d.ts.map +1 -0
  157. package/dist/routes/yml.test.js +58 -0
  158. package/dist/services/agent-process-manager.d.ts +241 -0
  159. package/dist/services/agent-process-manager.d.ts.map +1 -0
  160. package/dist/services/agent-process-manager.js +762 -0
  161. package/dist/services/auto-register.d.ts +94 -0
  162. package/dist/services/auto-register.d.ts.map +1 -0
  163. package/dist/services/auto-register.js +510 -0
  164. package/dist/services/aws-client-agent-mcp.d.ts +26 -0
  165. package/dist/services/aws-client-agent-mcp.d.ts.map +1 -0
  166. package/dist/services/aws-client-agent-mcp.js +142 -0
  167. package/dist/services/aws-client-agent-mcp.test.d.ts +2 -0
  168. package/dist/services/aws-client-agent-mcp.test.d.ts.map +1 -0
  169. package/dist/services/aws-client-agent-mcp.test.js +89 -0
  170. package/dist/services/aws-mcp-http.d.ts +11 -0
  171. package/dist/services/aws-mcp-http.d.ts.map +1 -0
  172. package/dist/services/aws-mcp-http.js +225 -0
  173. package/dist/services/aws-mcp-http.test.d.ts +2 -0
  174. package/dist/services/aws-mcp-http.test.d.ts.map +1 -0
  175. package/dist/services/aws-mcp-http.test.js +27 -0
  176. package/dist/services/cc-switch-sdk.d.ts +18 -0
  177. package/dist/services/cc-switch-sdk.d.ts.map +1 -0
  178. package/dist/services/cc-switch-sdk.js +117 -0
  179. package/dist/services/easytier-manager.d.ts +106 -0
  180. package/dist/services/easytier-manager.d.ts.map +1 -0
  181. package/dist/services/easytier-manager.js +331 -0
  182. package/dist/services/easytier-manager.test.d.ts +5 -0
  183. package/dist/services/easytier-manager.test.d.ts.map +1 -0
  184. package/dist/services/easytier-manager.test.js +98 -0
  185. package/dist/services/instance-init-service.d.ts +35 -0
  186. package/dist/services/instance-init-service.d.ts.map +1 -0
  187. package/dist/services/instance-init-service.js +190 -0
  188. package/dist/services/instance-service.d.ts +88 -0
  189. package/dist/services/instance-service.d.ts.map +1 -0
  190. package/dist/services/instance-service.js +236 -0
  191. package/dist/services/instance-state.d.ts +36 -0
  192. package/dist/services/instance-state.d.ts.map +1 -0
  193. package/dist/services/instance-state.js +79 -0
  194. package/dist/services/instance-state.test.d.ts +2 -0
  195. package/dist/services/instance-state.test.d.ts.map +1 -0
  196. package/dist/services/instance-state.test.js +213 -0
  197. package/dist/services/memory-service.d.ts +195 -0
  198. package/dist/services/memory-service.d.ts.map +1 -0
  199. package/dist/services/memory-service.js +650 -0
  200. package/dist/services/orphan-monitor.d.ts +94 -0
  201. package/dist/services/orphan-monitor.d.ts.map +1 -0
  202. package/dist/services/orphan-monitor.js +321 -0
  203. package/dist/services/process-detector.d.ts +175 -0
  204. package/dist/services/process-detector.d.ts.map +1 -0
  205. package/dist/services/process-detector.js +992 -0
  206. package/dist/services/process-registry.d.ts +208 -0
  207. package/dist/services/process-registry.d.ts.map +1 -0
  208. package/dist/services/process-registry.js +354 -0
  209. package/dist/services/session-lookup.d.ts +20 -0
  210. package/dist/services/session-lookup.d.ts.map +1 -0
  211. package/dist/services/session-lookup.js +43 -0
  212. package/dist/services/session-output.d.ts +56 -0
  213. package/dist/services/session-output.d.ts.map +1 -0
  214. package/dist/services/session-output.js +122 -0
  215. package/dist/services/session-output.test.d.ts +5 -0
  216. package/dist/services/session-output.test.d.ts.map +1 -0
  217. package/dist/services/session-output.test.js +68 -0
  218. package/dist/services/terminal-persistence.d.ts +51 -0
  219. package/dist/services/terminal-persistence.d.ts.map +1 -0
  220. package/dist/services/terminal-persistence.js +125 -0
  221. package/dist/services/terminal-persistence.test.d.ts +5 -0
  222. package/dist/services/terminal-persistence.test.d.ts.map +1 -0
  223. package/dist/services/terminal-persistence.test.js +88 -0
  224. package/dist/services/tool-installer.d.ts +15 -0
  225. package/dist/services/tool-installer.d.ts.map +1 -0
  226. package/dist/services/tool-installer.js +297 -0
  227. package/dist/services/tool-installer.test.d.ts +2 -0
  228. package/dist/services/tool-installer.test.d.ts.map +1 -0
  229. package/dist/services/tool-installer.test.js +102 -0
  230. package/dist/services/user-api-key-service.d.ts +28 -0
  231. package/dist/services/user-api-key-service.d.ts.map +1 -0
  232. package/dist/services/user-api-key-service.js +75 -0
  233. package/dist/services/workspace-files.d.ts +85 -0
  234. package/dist/services/workspace-files.d.ts.map +1 -0
  235. package/dist/services/workspace-files.js +224 -0
  236. package/dist/services/workspace-files.test.d.ts +2 -0
  237. package/dist/services/workspace-files.test.d.ts.map +1 -0
  238. package/dist/services/workspace-files.test.js +117 -0
  239. package/dist/types.d.ts +233 -0
  240. package/dist/types.d.ts.map +1 -0
  241. package/dist/types.js +1 -0
  242. package/dist/utils/file-utils.d.ts +13 -0
  243. package/dist/utils/file-utils.d.ts.map +1 -0
  244. package/dist/utils/file-utils.js +140 -0
  245. package/dist/utils/file-utils.test.d.ts +2 -0
  246. package/dist/utils/file-utils.test.d.ts.map +1 -0
  247. package/dist/utils/file-utils.test.js +201 -0
  248. package/dist/utils/logger.d.ts +39 -0
  249. package/dist/utils/logger.d.ts.map +1 -0
  250. package/dist/utils/logger.js +110 -0
  251. package/dist/utils/logger.test.d.ts +2 -0
  252. package/dist/utils/logger.test.d.ts.map +1 -0
  253. package/dist/utils/logger.test.js +93 -0
  254. package/dist/utils/mcp-utils.d.ts +73 -0
  255. package/dist/utils/mcp-utils.d.ts.map +1 -0
  256. package/dist/utils/mcp-utils.js +165 -0
  257. package/dist/utils/path-utils.d.ts +24 -0
  258. package/dist/utils/path-utils.d.ts.map +1 -0
  259. package/dist/utils/path-utils.js +44 -0
  260. package/dist/utils/validation.d.ts +23 -0
  261. package/dist/utils/validation.d.ts.map +1 -0
  262. package/dist/utils/validation.js +53 -0
  263. package/dist/utils/validation.test.d.ts +2 -0
  264. package/dist/utils/validation.test.d.ts.map +1 -0
  265. package/dist/utils/validation.test.js +88 -0
  266. package/dist/utils/yaml-utils.d.ts +73 -0
  267. package/dist/utils/yaml-utils.d.ts.map +1 -0
  268. package/dist/utils/yaml-utils.js +309 -0
  269. package/dist/utils/yaml-utils.test.d.ts +2 -0
  270. package/dist/utils/yaml-utils.test.d.ts.map +1 -0
  271. package/dist/utils/yaml-utils.test.js +363 -0
  272. package/package/aws-client-agent-mcp/README.md +288 -0
  273. package/package/aws-client-agent-mcp/dist/activity-reporter.d.ts +150 -0
  274. package/package/aws-client-agent-mcp/dist/activity-reporter.d.ts.map +1 -0
  275. package/package/aws-client-agent-mcp/dist/activity-reporter.js +353 -0
  276. package/package/aws-client-agent-mcp/dist/activity-reporter.js.map +1 -0
  277. package/package/aws-client-agent-mcp/dist/activity-reporter.test.d.ts +2 -0
  278. package/package/aws-client-agent-mcp/dist/activity-reporter.test.d.ts.map +1 -0
  279. package/package/aws-client-agent-mcp/dist/activity-reporter.test.js +75 -0
  280. package/package/aws-client-agent-mcp/dist/activity-reporter.test.js.map +1 -0
  281. package/package/aws-client-agent-mcp/dist/activity-types.d.ts +96 -0
  282. package/package/aws-client-agent-mcp/dist/activity-types.d.ts.map +1 -0
  283. package/package/aws-client-agent-mcp/dist/activity-types.js +141 -0
  284. package/package/aws-client-agent-mcp/dist/activity-types.js.map +1 -0
  285. package/package/aws-client-agent-mcp/dist/agent-client.d.ts +165 -0
  286. package/package/aws-client-agent-mcp/dist/agent-client.d.ts.map +1 -0
  287. package/package/aws-client-agent-mcp/dist/agent-client.js +588 -0
  288. package/package/aws-client-agent-mcp/dist/agent-client.js.map +1 -0
  289. package/package/aws-client-agent-mcp/dist/agent-client.test.d.ts +2 -0
  290. package/package/aws-client-agent-mcp/dist/agent-client.test.d.ts.map +1 -0
  291. package/package/aws-client-agent-mcp/dist/agent-client.test.js +534 -0
  292. package/package/aws-client-agent-mcp/dist/agent-client.test.js.map +1 -0
  293. package/package/aws-client-agent-mcp/dist/config.d.ts +21 -0
  294. package/package/aws-client-agent-mcp/dist/config.d.ts.map +1 -0
  295. package/package/aws-client-agent-mcp/dist/config.js +67 -0
  296. package/package/aws-client-agent-mcp/dist/config.js.map +1 -0
  297. package/package/aws-client-agent-mcp/dist/config.test.d.ts +2 -0
  298. package/package/aws-client-agent-mcp/dist/config.test.d.ts.map +1 -0
  299. package/package/aws-client-agent-mcp/dist/config.test.js +139 -0
  300. package/package/aws-client-agent-mcp/dist/config.test.js.map +1 -0
  301. package/package/aws-client-agent-mcp/dist/constants.d.ts +15 -0
  302. package/package/aws-client-agent-mcp/dist/constants.d.ts.map +1 -0
  303. package/package/aws-client-agent-mcp/dist/constants.js +19 -0
  304. package/package/aws-client-agent-mcp/dist/constants.js.map +1 -0
  305. package/package/aws-client-agent-mcp/dist/http-client.d.ts +27 -0
  306. package/package/aws-client-agent-mcp/dist/http-client.d.ts.map +1 -0
  307. package/package/aws-client-agent-mcp/dist/http-client.js +65 -0
  308. package/package/aws-client-agent-mcp/dist/http-client.js.map +1 -0
  309. package/package/aws-client-agent-mcp/dist/http-client.test.d.ts +2 -0
  310. package/package/aws-client-agent-mcp/dist/http-client.test.d.ts.map +1 -0
  311. package/package/aws-client-agent-mcp/dist/http-client.test.js +228 -0
  312. package/package/aws-client-agent-mcp/dist/http-client.test.js.map +1 -0
  313. package/package/aws-client-agent-mcp/dist/index.d.ts +14 -0
  314. package/package/aws-client-agent-mcp/dist/index.d.ts.map +1 -0
  315. package/package/aws-client-agent-mcp/dist/index.js +30 -0
  316. package/package/aws-client-agent-mcp/dist/index.js.map +1 -0
  317. package/package/aws-client-agent-mcp/dist/logger.d.ts +7 -0
  318. package/package/aws-client-agent-mcp/dist/logger.d.ts.map +1 -0
  319. package/package/aws-client-agent-mcp/dist/logger.js +19 -0
  320. package/package/aws-client-agent-mcp/dist/logger.js.map +1 -0
  321. package/package/aws-client-agent-mcp/dist/mcp-server.d.ts +77 -0
  322. package/package/aws-client-agent-mcp/dist/mcp-server.d.ts.map +1 -0
  323. package/package/aws-client-agent-mcp/dist/mcp-server.js +427 -0
  324. package/package/aws-client-agent-mcp/dist/mcp-server.js.map +1 -0
  325. package/package/aws-client-agent-mcp/dist/mcp-server.test.d.ts +2 -0
  326. package/package/aws-client-agent-mcp/dist/mcp-server.test.d.ts.map +1 -0
  327. package/package/aws-client-agent-mcp/dist/mcp-server.test.js +624 -0
  328. package/package/aws-client-agent-mcp/dist/mcp-server.test.js.map +1 -0
  329. package/package/aws-client-agent-mcp/dist/mcp-tools.d.ts +78 -0
  330. package/package/aws-client-agent-mcp/dist/mcp-tools.d.ts.map +1 -0
  331. package/package/aws-client-agent-mcp/dist/mcp-tools.js +420 -0
  332. package/package/aws-client-agent-mcp/dist/mcp-tools.js.map +1 -0
  333. package/package/aws-client-agent-mcp/dist/memory-store.d.ts +61 -0
  334. package/package/aws-client-agent-mcp/dist/memory-store.d.ts.map +1 -0
  335. package/package/aws-client-agent-mcp/dist/memory-store.js +268 -0
  336. package/package/aws-client-agent-mcp/dist/memory-store.js.map +1 -0
  337. package/package/aws-client-agent-mcp/dist/memory-store.test.d.ts +2 -0
  338. package/package/aws-client-agent-mcp/dist/memory-store.test.d.ts.map +1 -0
  339. package/package/aws-client-agent-mcp/dist/memory-store.test.js +164 -0
  340. package/package/aws-client-agent-mcp/dist/memory-store.test.js.map +1 -0
  341. package/package/aws-client-agent-mcp/dist/message-buffer.d.ts +74 -0
  342. package/package/aws-client-agent-mcp/dist/message-buffer.d.ts.map +1 -0
  343. package/package/aws-client-agent-mcp/dist/message-buffer.js +159 -0
  344. package/package/aws-client-agent-mcp/dist/message-buffer.js.map +1 -0
  345. package/package/aws-client-agent-mcp/dist/message-buffer.test.d.ts +2 -0
  346. package/package/aws-client-agent-mcp/dist/message-buffer.test.d.ts.map +1 -0
  347. package/package/aws-client-agent-mcp/dist/message-buffer.test.js +44 -0
  348. package/package/aws-client-agent-mcp/dist/message-buffer.test.js.map +1 -0
  349. package/package/aws-client-agent-mcp/dist/messageContent.d.ts +53 -0
  350. package/package/aws-client-agent-mcp/dist/messageContent.d.ts.map +1 -0
  351. package/package/aws-client-agent-mcp/dist/messageContent.js +125 -0
  352. package/package/aws-client-agent-mcp/dist/messageContent.js.map +1 -0
  353. package/package/aws-client-agent-mcp/dist/orchestration-tools.d.ts +19 -0
  354. package/package/aws-client-agent-mcp/dist/orchestration-tools.d.ts.map +1 -0
  355. package/package/aws-client-agent-mcp/dist/orchestration-tools.js +317 -0
  356. package/package/aws-client-agent-mcp/dist/orchestration-tools.js.map +1 -0
  357. package/package/aws-client-agent-mcp/dist/status-reporter.d.ts +66 -0
  358. package/package/aws-client-agent-mcp/dist/status-reporter.d.ts.map +1 -0
  359. package/package/aws-client-agent-mcp/dist/status-reporter.js +220 -0
  360. package/package/aws-client-agent-mcp/dist/status-reporter.js.map +1 -0
  361. package/package/aws-client-agent-mcp/dist/status-reporter.test.d.ts +2 -0
  362. package/package/aws-client-agent-mcp/dist/status-reporter.test.d.ts.map +1 -0
  363. package/package/aws-client-agent-mcp/dist/status-reporter.test.js +45 -0
  364. package/package/aws-client-agent-mcp/dist/status-reporter.test.js.map +1 -0
  365. package/package/aws-client-agent-mcp/dist/types.d.ts +286 -0
  366. package/package/aws-client-agent-mcp/dist/types.d.ts.map +1 -0
  367. package/package/aws-client-agent-mcp/dist/types.js +9 -0
  368. package/package/aws-client-agent-mcp/dist/types.js.map +1 -0
  369. package/package/aws-client-agent-mcp/dist/user-config-reader.d.ts +63 -0
  370. package/package/aws-client-agent-mcp/dist/user-config-reader.d.ts.map +1 -0
  371. package/package/aws-client-agent-mcp/dist/user-config-reader.js +161 -0
  372. package/package/aws-client-agent-mcp/dist/user-config-reader.js.map +1 -0
  373. package/package/aws-client-agent-mcp/dist/websocket-client.d.ts +94 -0
  374. package/package/aws-client-agent-mcp/dist/websocket-client.d.ts.map +1 -0
  375. package/package/aws-client-agent-mcp/dist/websocket-client.js +316 -0
  376. package/package/aws-client-agent-mcp/dist/websocket-client.js.map +1 -0
  377. package/package/aws-client-agent-mcp/dist/websocket-client.test.d.ts +2 -0
  378. package/package/aws-client-agent-mcp/dist/websocket-client.test.d.ts.map +1 -0
  379. package/package/aws-client-agent-mcp/dist/websocket-client.test.js +191 -0
  380. package/package/aws-client-agent-mcp/dist/websocket-client.test.js.map +1 -0
  381. package/package/aws-client-agent-mcp/package.json +51 -0
  382. package/package/cc-switch-sdk/README.md +541 -0
  383. package/package/cc-switch-sdk/dist/adapters/common.d.ts +38 -0
  384. package/package/cc-switch-sdk/dist/adapters/common.d.ts.map +1 -0
  385. package/package/cc-switch-sdk/dist/adapters/common.js +47 -0
  386. package/package/cc-switch-sdk/dist/adapters/index.d.ts +5 -0
  387. package/package/cc-switch-sdk/dist/adapters/index.d.ts.map +1 -0
  388. package/package/cc-switch-sdk/dist/adapters/index.js +28 -0
  389. package/package/cc-switch-sdk/dist/adapters/mcp-claude.d.ts +10 -0
  390. package/package/cc-switch-sdk/dist/adapters/mcp-claude.d.ts.map +1 -0
  391. package/package/cc-switch-sdk/dist/adapters/mcp-claude.js +39 -0
  392. package/package/cc-switch-sdk/dist/adapters/mcp-claudecode.d.ts +10 -0
  393. package/package/cc-switch-sdk/dist/adapters/mcp-claudecode.d.ts.map +1 -0
  394. package/package/cc-switch-sdk/dist/adapters/mcp-claudecode.js +40 -0
  395. package/package/cc-switch-sdk/dist/adapters/mcp-opencode.d.ts +18 -0
  396. package/package/cc-switch-sdk/dist/adapters/mcp-opencode.d.ts.map +1 -0
  397. package/package/cc-switch-sdk/dist/adapters/mcp-opencode.js +63 -0
  398. package/package/cc-switch-sdk/dist/adapters/mcp-opencode.test.d.ts +2 -0
  399. package/package/cc-switch-sdk/dist/adapters/mcp-opencode.test.d.ts.map +1 -0
  400. package/package/cc-switch-sdk/dist/adapters/mcp-opencode.test.js +86 -0
  401. package/package/cc-switch-sdk/dist/adapters/mcp-placeholder.d.ts +9 -0
  402. package/package/cc-switch-sdk/dist/adapters/mcp-placeholder.d.ts.map +1 -0
  403. package/package/cc-switch-sdk/dist/adapters/mcp-placeholder.js +14 -0
  404. package/package/cc-switch-sdk/dist/adapters/skill-claude.d.ts +10 -0
  405. package/package/cc-switch-sdk/dist/adapters/skill-claude.d.ts.map +1 -0
  406. package/package/cc-switch-sdk/dist/adapters/skill-claude.js +51 -0
  407. package/package/cc-switch-sdk/dist/adapters/skill-claudecode.d.ts +10 -0
  408. package/package/cc-switch-sdk/dist/adapters/skill-claudecode.d.ts.map +1 -0
  409. package/package/cc-switch-sdk/dist/adapters/skill-claudecode.js +51 -0
  410. package/package/cc-switch-sdk/dist/adapters/skill-opencode.d.ts +10 -0
  411. package/package/cc-switch-sdk/dist/adapters/skill-opencode.d.ts.map +1 -0
  412. package/package/cc-switch-sdk/dist/adapters/skill-opencode.js +51 -0
  413. package/package/cc-switch-sdk/dist/adapters/skill-placeholder.d.ts +9 -0
  414. package/package/cc-switch-sdk/dist/adapters/skill-placeholder.d.ts.map +1 -0
  415. package/package/cc-switch-sdk/dist/adapters/skill-placeholder.js +14 -0
  416. package/package/cc-switch-sdk/dist/constants.d.ts +9 -0
  417. package/package/cc-switch-sdk/dist/constants.d.ts.map +1 -0
  418. package/package/cc-switch-sdk/dist/constants.js +54 -0
  419. package/package/cc-switch-sdk/dist/errors.d.ts +6 -0
  420. package/package/cc-switch-sdk/dist/errors.d.ts.map +1 -0
  421. package/package/cc-switch-sdk/dist/errors.js +8 -0
  422. package/package/cc-switch-sdk/dist/index.d.ts +11 -0
  423. package/package/cc-switch-sdk/dist/index.d.ts.map +1 -0
  424. package/package/cc-switch-sdk/dist/index.js +9 -0
  425. package/package/cc-switch-sdk/dist/schemas.d.ts +8 -0
  426. package/package/cc-switch-sdk/dist/schemas.d.ts.map +1 -0
  427. package/package/cc-switch-sdk/dist/schemas.js +37 -0
  428. package/package/cc-switch-sdk/dist/sdk.d.ts +91 -0
  429. package/package/cc-switch-sdk/dist/sdk.d.ts.map +1 -0
  430. package/package/cc-switch-sdk/dist/sdk.js +427 -0
  431. package/package/cc-switch-sdk/dist/services/ai-config-service.d.ts +75 -0
  432. package/package/cc-switch-sdk/dist/services/ai-config-service.d.ts.map +1 -0
  433. package/package/cc-switch-sdk/dist/services/ai-config-service.js +280 -0
  434. package/package/cc-switch-sdk/dist/services/instance-service.d.ts +78 -0
  435. package/package/cc-switch-sdk/dist/services/instance-service.d.ts.map +1 -0
  436. package/package/cc-switch-sdk/dist/services/instance-service.js +180 -0
  437. package/package/cc-switch-sdk/dist/services/mcp-model.d.ts +17 -0
  438. package/package/cc-switch-sdk/dist/services/mcp-model.d.ts.map +1 -0
  439. package/package/cc-switch-sdk/dist/services/mcp-model.js +34 -0
  440. package/package/cc-switch-sdk/dist/services/mcp-service.d.ts +18 -0
  441. package/package/cc-switch-sdk/dist/services/mcp-service.d.ts.map +1 -0
  442. package/package/cc-switch-sdk/dist/services/mcp-service.js +9 -0
  443. package/package/cc-switch-sdk/dist/services/skill-model.d.ts +17 -0
  444. package/package/cc-switch-sdk/dist/services/skill-model.d.ts.map +1 -0
  445. package/package/cc-switch-sdk/dist/services/skill-model.js +38 -0
  446. package/package/cc-switch-sdk/dist/services/skill-service.d.ts +17 -0
  447. package/package/cc-switch-sdk/dist/services/skill-service.d.ts.map +1 -0
  448. package/package/cc-switch-sdk/dist/services/skill-service.js +9 -0
  449. package/package/cc-switch-sdk/dist/state.d.ts +4 -0
  450. package/package/cc-switch-sdk/dist/state.d.ts.map +1 -0
  451. package/package/cc-switch-sdk/dist/state.js +19 -0
  452. package/package/cc-switch-sdk/dist/types.d.ts +75 -0
  453. package/package/cc-switch-sdk/dist/types.d.ts.map +1 -0
  454. package/package/cc-switch-sdk/dist/types.js +1 -0
  455. package/package/cc-switch-sdk/dist/utils/fs.d.ts +10 -0
  456. package/package/cc-switch-sdk/dist/utils/fs.d.ts.map +1 -0
  457. package/package/cc-switch-sdk/dist/utils/fs.js +91 -0
  458. package/package/cc-switch-sdk/dist/utils/id.d.ts +4 -0
  459. package/package/cc-switch-sdk/dist/utils/id.d.ts.map +1 -0
  460. package/package/cc-switch-sdk/dist/utils/id.js +12 -0
  461. package/package/cc-switch-sdk/package.json +31 -0
  462. package/package.json +73 -0
@@ -0,0 +1,106 @@
1
+ /**
2
+ * EasyTier 网络管理服务
3
+ *
4
+ * 管理 EasyTier 组网流程,支持:
5
+ * 1. 启动 EasyTier 节点(DHCP 模式自动获取虚拟 IP)
6
+ * 2. 监控网络状态
7
+ * 3. 获取分配的虚拟 IP
8
+ */
9
+ /**
10
+ * EasyTier 配置
11
+ */
12
+ export interface EasyTierConfig {
13
+ /** 是否启用 EasyTier 组网 */
14
+ enabled: boolean;
15
+ /** 网络名称 */
16
+ networkName: string;
17
+ /** 网络密钥 */
18
+ networkSecret: string;
19
+ /** 初始连接节点 (格式: tcp://ip:port 或 udp://ip:port) */
20
+ peers: string[];
21
+ /** 公共共享节点 */
22
+ externalNodes: string[];
23
+ /** EasyTier 可执行文件路径 */
24
+ executablePath?: string;
25
+ /** RPC 端口 (用于查询状态) */
26
+ rpcPort: number;
27
+ /** 监听端口 */
28
+ listenPort: number;
29
+ /** 等待网络就绪超时 (毫秒) */
30
+ readyTimeout: number;
31
+ /** 网络就绪检查间隔 (毫秒) */
32
+ readyCheckInterval: number;
33
+ }
34
+ /**
35
+ * 网络状态
36
+ */
37
+ export interface NetworkStatus {
38
+ /** 是否已连接 */
39
+ connected: boolean;
40
+ /** 本地虚拟 IPv4 地址 */
41
+ ipv4?: string;
42
+ /** 本地虚拟 IPv6 地址 */
43
+ ipv6?: string;
44
+ /** 节点 ID */
45
+ nodeId?: string;
46
+ /** 已连接的 peer 数量 */
47
+ peerCount: number;
48
+ /** peer 列表 */
49
+ peers: PeerInfo[];
50
+ }
51
+ /**
52
+ * Peer 信息
53
+ */
54
+ export interface PeerInfo {
55
+ /** peer ID */
56
+ peerId: string;
57
+ /** 虚拟 IP */
58
+ ipv4: string;
59
+ /** 主机名 */
60
+ hostname: string;
61
+ /** 延迟 (ms) */
62
+ latencyMs?: number;
63
+ /** 连接协议 */
64
+ tunnelProto?: string;
65
+ }
66
+ /**
67
+ * 初始化配置
68
+ */
69
+ export declare function initEasyTierConfig(customConfig?: Partial<EasyTierConfig>): EasyTierConfig;
70
+ /**
71
+ * 获取当前配置
72
+ */
73
+ export declare function getEasyTierConfig(): EasyTierConfig;
74
+ /**
75
+ * 启动 EasyTier 节点
76
+ *
77
+ * 使用 DHCP 模式自动获取虚拟 IP
78
+ */
79
+ export declare function startEasyTier(): Promise<boolean>;
80
+ /**
81
+ * 停止 EasyTier 节点
82
+ */
83
+ export declare function stopEasyTier(): Promise<void>;
84
+ /**
85
+ * 查询网络状态 (通过 RPC)
86
+ */
87
+ export declare function queryNetworkStatus(): Promise<NetworkStatus>;
88
+ /**
89
+ * 等待网络就绪
90
+ *
91
+ * 返回分配的虚拟 IP
92
+ */
93
+ export declare function waitForNetworkReady(): Promise<string | null>;
94
+ /**
95
+ * 获取当前网络状态
96
+ */
97
+ export declare function getNetworkStatus(): NetworkStatus;
98
+ /**
99
+ * 获取虚拟 IP
100
+ */
101
+ export declare function getVirtualIp(): string | undefined;
102
+ /**
103
+ * 检查 EasyTier 是否可用
104
+ */
105
+ export declare function isEasyTierAvailable(): boolean;
106
+ //# sourceMappingURL=easytier-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"easytier-manager.d.ts","sourceRoot":"","sources":["../../src/services/easytier-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,uBAAuB;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,iDAAiD;IACjD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,aAAa;IACb,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,uBAAuB;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sBAAsB;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB;IACpB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,YAAY;IACZ,SAAS,EAAE,OAAO,CAAC;IACnB,mBAAmB;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mBAAmB;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mBAAmB;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc;IACd,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,cAAc;IACd,MAAM,EAAE,MAAM,CAAC;IACf,YAAY;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,UAAU;IACV,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAyID;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc,CAezF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,cAAc,CAKlD;AAED;;;;GAIG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC,CAkFtD;AAED;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CA8BlD;AAED;;GAEG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,aAAa,CAAC,CA4CjE;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAkClE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,CAEhD;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,GAAG,SAAS,CAEjD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAG7C"}
@@ -0,0 +1,331 @@
1
+ /**
2
+ * EasyTier 网络管理服务
3
+ *
4
+ * 管理 EasyTier 组网流程,支持:
5
+ * 1. 启动 EasyTier 节点(DHCP 模式自动获取虚拟 IP)
6
+ * 2. 监控网络状态
7
+ * 3. 获取分配的虚拟 IP
8
+ */
9
+ import fs from 'node:fs';
10
+ import os from 'node:os';
11
+ import path from 'node:path';
12
+ import { spawn, execSync } from 'node:child_process';
13
+ import axios from 'axios';
14
+ import { logger } from '../utils/logger.js';
15
+ // 默认配置
16
+ const DEFAULT_CONFIG = {
17
+ enabled: false,
18
+ networkName: 'aws-bridge-network',
19
+ networkSecret: 'aws-bridge-secret',
20
+ peers: [],
21
+ externalNodes: ['tcp://public.easytier.top:11010'],
22
+ rpcPort: 15888,
23
+ listenPort: 11010,
24
+ readyTimeout: 60000, // 60 秒
25
+ readyCheckInterval: 2000, // 2 秒
26
+ };
27
+ let config;
28
+ let easytierProcess = null;
29
+ let networkStatus = { connected: false, peerCount: 0, peers: [] };
30
+ /**
31
+ * 从环境变量加载配置
32
+ */
33
+ function loadConfigFromEnv() {
34
+ const envConfig = {};
35
+ if (process.env.AWS_EASYTIER_ENABLED === 'true') {
36
+ envConfig.enabled = true;
37
+ }
38
+ if (process.env.AWS_EASYTIER_NETWORK_NAME) {
39
+ envConfig.networkName = process.env.AWS_EASYTIER_NETWORK_NAME;
40
+ }
41
+ if (process.env.AWS_EASYTIER_NETWORK_SECRET) {
42
+ envConfig.networkSecret = process.env.AWS_EASYTIER_NETWORK_SECRET;
43
+ }
44
+ if (process.env.AWS_EASYTIER_PEERS) {
45
+ envConfig.peers = process.env.AWS_EASYTIER_PEERS.split(',').map(p => p.trim()).filter(Boolean);
46
+ }
47
+ if (process.env.AWS_EASYTIER_EXTERNAL_NODES) {
48
+ envConfig.externalNodes = process.env.AWS_EASYTIER_EXTERNAL_NODES.split(',').map(p => p.trim()).filter(Boolean);
49
+ }
50
+ if (process.env.AWS_EASYTIER_EXECUTABLE_PATH) {
51
+ envConfig.executablePath = process.env.AWS_EASYTIER_EXECUTABLE_PATH;
52
+ }
53
+ if (process.env.AWS_EASYTIER_RPC_PORT) {
54
+ envConfig.rpcPort = parseInt(process.env.AWS_EASYTIER_RPC_PORT, 10);
55
+ }
56
+ if (process.env.AWS_EASYTIER_LISTEN_PORT) {
57
+ envConfig.listenPort = parseInt(process.env.AWS_EASYTIER_LISTEN_PORT, 10);
58
+ }
59
+ if (process.env.AWS_EASYTIER_READY_TIMEOUT) {
60
+ envConfig.readyTimeout = parseInt(process.env.AWS_EASYTIER_READY_TIMEOUT, 10);
61
+ }
62
+ return envConfig;
63
+ }
64
+ /**
65
+ * 查找 EasyTier 可执行文件
66
+ */
67
+ function findEasyTierExecutable() {
68
+ // 1. 检查环境变量指定的路径
69
+ if (process.env.AWS_EASYTIER_EXECUTABLE_PATH) {
70
+ if (fs.existsSync(process.env.AWS_EASYTIER_EXECUTABLE_PATH)) {
71
+ return process.env.AWS_EASYTIER_EXECUTABLE_PATH;
72
+ }
73
+ }
74
+ // 2. 检查常见位置
75
+ const possiblePaths = [];
76
+ if (process.platform === 'win32') {
77
+ // Windows
78
+ possiblePaths.push(path.join(os.homedir(), 'easytier', 'easytier-core.exe'), path.join('C:', 'Program Files', 'easytier', 'easytier-core.exe'), 'easytier-core.exe' // PATH
79
+ );
80
+ }
81
+ else {
82
+ // Linux/macOS
83
+ possiblePaths.push('/usr/local/bin/easytier-core', '/usr/bin/easytier-core', path.join(os.homedir(), '.local', 'bin', 'easytier-core'), path.join(os.homedir(), 'easytier', 'easytier-core'), 'easytier-core' // PATH
84
+ );
85
+ }
86
+ for (const p of possiblePaths) {
87
+ try {
88
+ if (fs.existsSync(p)) {
89
+ return p;
90
+ }
91
+ }
92
+ catch {
93
+ // 忽略错误,继续尝试下一个
94
+ }
95
+ }
96
+ // 3. 尝试从 PATH 查找
97
+ try {
98
+ const result = execSync(process.platform === 'win32' ? 'where easytier-core' : 'which easytier-core', {
99
+ encoding: 'utf8',
100
+ timeout: 5000
101
+ });
102
+ const found = result.trim().split('\n')[0];
103
+ if (found && fs.existsSync(found)) {
104
+ return found;
105
+ }
106
+ }
107
+ catch {
108
+ // 未找到
109
+ }
110
+ return null;
111
+ }
112
+ /**
113
+ * 初始化配置
114
+ */
115
+ export function initEasyTierConfig(customConfig) {
116
+ const envConfig = loadConfigFromEnv();
117
+ config = {
118
+ ...DEFAULT_CONFIG,
119
+ ...envConfig,
120
+ ...customConfig,
121
+ };
122
+ // 自动查找可执行文件
123
+ if (!config.executablePath) {
124
+ config.executablePath = findEasyTierExecutable() || undefined;
125
+ }
126
+ return config;
127
+ }
128
+ /**
129
+ * 获取当前配置
130
+ */
131
+ export function getEasyTierConfig() {
132
+ if (!config) {
133
+ initEasyTierConfig();
134
+ }
135
+ return config;
136
+ }
137
+ /**
138
+ * 启动 EasyTier 节点
139
+ *
140
+ * 使用 DHCP 模式自动获取虚拟 IP
141
+ */
142
+ export async function startEasyTier() {
143
+ if (!config) {
144
+ initEasyTierConfig();
145
+ }
146
+ if (!config.enabled) {
147
+ logger.info('[EasyTier] EasyTier 组网未启用');
148
+ return false;
149
+ }
150
+ if (easytierProcess) {
151
+ logger.warn('[EasyTier] EasyTier 已在运行中');
152
+ return true;
153
+ }
154
+ // 检查可执行文件
155
+ const executable = config.executablePath || findEasyTierExecutable();
156
+ if (!executable) {
157
+ logger.error('[EasyTier] 未找到 easytier-core 可执行文件');
158
+ logger.error('[EasyTier] 请安装 EasyTier 或设置 AWS_EASYTIER_EXECUTABLE_PATH 环境变量');
159
+ return false;
160
+ }
161
+ logger.info(`[EasyTier] 使用可执行文件: ${executable}`);
162
+ // 构建命令参数
163
+ const args = [];
164
+ // DHCP 模式 (自动获取虚拟 IP)
165
+ args.push('-d');
166
+ // 网络名称和密钥
167
+ args.push('--network-name', config.networkName);
168
+ args.push('--network-secret', config.networkSecret);
169
+ // RPC 端口 (用于状态查询)
170
+ args.push('--rpc-portal', `127.0.0.1:${config.rpcPort}`);
171
+ // 监听端口
172
+ args.push('-l', `tcp://0.0.0.0:${config.listenPort}`);
173
+ // 初始连接节点
174
+ for (const peer of config.peers) {
175
+ args.push('-p', peer);
176
+ }
177
+ // 公共共享节点
178
+ for (const external of config.externalNodes) {
179
+ args.push('-e', external);
180
+ }
181
+ // 后台运行
182
+ args.push('--daemon');
183
+ logger.info(`[EasyTier] 启动参数: ${args.join(' ')}`);
184
+ try {
185
+ easytierProcess = spawn(executable, args, {
186
+ stdio: 'ignore',
187
+ detached: true,
188
+ });
189
+ easytierProcess.on('error', (err) => {
190
+ logger.error(`[EasyTier] 进程错误: ${err.message}`);
191
+ easytierProcess = null;
192
+ });
193
+ easytierProcess.on('exit', (code, signal) => {
194
+ logger.info(`[EasyTier] 进程退出: code=${code}, signal=${signal}`);
195
+ easytierProcess = null;
196
+ });
197
+ // 等待进程启动
198
+ await new Promise(resolve => setTimeout(resolve, 2000));
199
+ logger.info('[EasyTier] EasyTier 已启动');
200
+ return true;
201
+ }
202
+ catch (error) {
203
+ const err = error;
204
+ logger.error(`[EasyTier] 启动失败: ${err.message}`);
205
+ return false;
206
+ }
207
+ }
208
+ /**
209
+ * 停止 EasyTier 节点
210
+ */
211
+ export async function stopEasyTier() {
212
+ if (!easytierProcess) {
213
+ return;
214
+ }
215
+ try {
216
+ // 尝试优雅关闭
217
+ easytierProcess.kill('SIGTERM');
218
+ // 等待进程退出
219
+ await new Promise((resolve) => {
220
+ const timeout = setTimeout(() => {
221
+ if (easytierProcess) {
222
+ easytierProcess.kill('SIGKILL');
223
+ }
224
+ resolve();
225
+ }, 5000);
226
+ easytierProcess?.on('exit', () => {
227
+ clearTimeout(timeout);
228
+ resolve();
229
+ });
230
+ });
231
+ easytierProcess = null;
232
+ logger.info('[EasyTier] EasyTier 已停止');
233
+ }
234
+ catch (error) {
235
+ const err = error;
236
+ logger.error(`[EasyTier] 停止失败: ${err.message}`);
237
+ }
238
+ }
239
+ /**
240
+ * 查询网络状态 (通过 RPC)
241
+ */
242
+ export async function queryNetworkStatus() {
243
+ if (!config) {
244
+ initEasyTierConfig();
245
+ }
246
+ const rpcUrl = `http://127.0.0.1:${config.rpcPort}`;
247
+ try {
248
+ // 查询节点信息
249
+ const nodeResponse = await axios.get(`${rpcUrl}/api/v1/node`, {
250
+ timeout: 5000,
251
+ });
252
+ // 查询 peer 列表
253
+ const peerResponse = await axios.get(`${rpcUrl}/api/v1/peer`, {
254
+ timeout: 5000,
255
+ });
256
+ const nodeData = nodeResponse.data;
257
+ const peerData = peerResponse.data;
258
+ const peers = (peerData.peers || []).map((p) => ({
259
+ peerId: p.peer_id || p.peerId || '',
260
+ ipv4: p.ipv4 || '',
261
+ hostname: p.hostname || '',
262
+ latencyMs: p.lat_ms || p.latencyMs,
263
+ tunnelProto: p.tunnel_proto || p.tunnelProto,
264
+ }));
265
+ networkStatus = {
266
+ connected: true,
267
+ ipv4: nodeData?.ipv4,
268
+ ipv6: nodeData?.ipv6,
269
+ nodeId: nodeData?.node_id || nodeData?.nodeId,
270
+ peerCount: peers.length,
271
+ peers,
272
+ };
273
+ return networkStatus;
274
+ }
275
+ catch {
276
+ // 网络未就绪或 RPC 不可用
277
+ networkStatus = { connected: false, peerCount: 0, peers: [] };
278
+ return networkStatus;
279
+ }
280
+ }
281
+ /**
282
+ * 等待网络就绪
283
+ *
284
+ * 返回分配的虚拟 IP
285
+ */
286
+ export async function waitForNetworkReady() {
287
+ if (!config) {
288
+ initEasyTierConfig();
289
+ }
290
+ if (!config.enabled) {
291
+ logger.info('[EasyTier] EasyTier 未启用,跳过网络就绪等待');
292
+ return null;
293
+ }
294
+ const startTime = Date.now();
295
+ const timeout = config.readyTimeout;
296
+ const interval = config.readyCheckInterval;
297
+ logger.info(`[EasyTier] 等待网络就绪 (超时: ${timeout / 1000}s)...`);
298
+ while (Date.now() - startTime < timeout) {
299
+ const status = await queryNetworkStatus();
300
+ if (status.connected && status.ipv4) {
301
+ logger.info(`[EasyTier] ✓ 网络已就绪`);
302
+ logger.info(`[EasyTier] 虚拟 IP: ${status.ipv4}`);
303
+ logger.info(`[EasyTier] 节点 ID: ${status.nodeId}`);
304
+ logger.info(`[EasyTier] 已连接 Peer 数量: ${status.peerCount}`);
305
+ return status.ipv4;
306
+ }
307
+ // 等待后重试
308
+ await new Promise(resolve => setTimeout(resolve, interval));
309
+ }
310
+ logger.error(`[EasyTier] ✗ 等待网络就绪超时 (${timeout / 1000}s)`);
311
+ return null;
312
+ }
313
+ /**
314
+ * 获取当前网络状态
315
+ */
316
+ export function getNetworkStatus() {
317
+ return { ...networkStatus };
318
+ }
319
+ /**
320
+ * 获取虚拟 IP
321
+ */
322
+ export function getVirtualIp() {
323
+ return networkStatus.ipv4;
324
+ }
325
+ /**
326
+ * 检查 EasyTier 是否可用
327
+ */
328
+ export function isEasyTierAvailable() {
329
+ const executable = findEasyTierExecutable();
330
+ return executable !== null;
331
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * EasyTier Manager 测试
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=easytier-manager.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"easytier-manager.test.d.ts","sourceRoot":"","sources":["../../src/services/easytier-manager.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * EasyTier Manager 测试
3
+ */
4
+ import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
5
+ import { initEasyTierConfig, getEasyTierConfig, isEasyTierAvailable, } from './easytier-manager.js';
6
+ // Mock child_process
7
+ vi.mock('node:child_process', () => ({
8
+ spawn: vi.fn(() => ({
9
+ on: vi.fn(),
10
+ kill: vi.fn(),
11
+ })),
12
+ execSync: vi.fn((cmd) => {
13
+ if (cmd.includes('which') || cmd.includes('where')) {
14
+ return '/usr/bin/easytier-core';
15
+ }
16
+ return '';
17
+ }),
18
+ }));
19
+ // Mock fs
20
+ vi.mock('node:fs', () => {
21
+ const existsSync = vi.fn((path) => {
22
+ if (path.includes('easytier-core')) {
23
+ return true;
24
+ }
25
+ return false;
26
+ });
27
+ return {
28
+ default: { existsSync },
29
+ existsSync,
30
+ };
31
+ });
32
+ describe('EasyTier Manager', () => {
33
+ beforeEach(() => {
34
+ // 重置环境变量
35
+ delete process.env.AWS_EASYTIER_ENABLED;
36
+ delete process.env.AWS_EASYTIER_NETWORK_NAME;
37
+ delete process.env.AWS_EASYTIER_NETWORK_SECRET;
38
+ delete process.env.AWS_EASYTIER_PEERS;
39
+ delete process.env.AWS_EASYTIER_RPC_PORT;
40
+ delete process.env.AWS_EASYTIER_EXECUTABLE_PATH;
41
+ });
42
+ afterEach(() => {
43
+ vi.clearAllMocks();
44
+ });
45
+ describe('initEasyTierConfig', () => {
46
+ it('should return default config when no env vars set', () => {
47
+ const config = initEasyTierConfig();
48
+ expect(config.enabled).toBe(false);
49
+ expect(config.networkName).toBe('aws-bridge-network');
50
+ expect(config.networkSecret).toBe('aws-bridge-secret');
51
+ expect(config.rpcPort).toBe(15888);
52
+ expect(config.listenPort).toBe(11010);
53
+ });
54
+ it('should load config from environment variables', () => {
55
+ process.env.AWS_EASYTIER_ENABLED = 'true';
56
+ process.env.AWS_EASYTIER_NETWORK_NAME = 'test-network';
57
+ process.env.AWS_EASYTIER_NETWORK_SECRET = 'test-secret';
58
+ process.env.AWS_EASYTIER_RPC_PORT = '12345';
59
+ const config = initEasyTierConfig();
60
+ expect(config.enabled).toBe(true);
61
+ expect(config.networkName).toBe('test-network');
62
+ expect(config.networkSecret).toBe('test-secret');
63
+ expect(config.rpcPort).toBe(12345);
64
+ });
65
+ it('should parse peers from environment', () => {
66
+ process.env.AWS_EASYTIER_PEERS = 'tcp://1.2.3.4:11010, udp://5.6.7.8:11010';
67
+ const config = initEasyTierConfig();
68
+ expect(config.peers).toHaveLength(2);
69
+ expect(config.peers).toContain('tcp://1.2.3.4:11010');
70
+ expect(config.peers).toContain('udp://5.6.7.8:11010');
71
+ });
72
+ it('should merge custom config', () => {
73
+ const config = initEasyTierConfig({
74
+ enabled: true,
75
+ networkName: 'custom-network',
76
+ readyTimeout: 120000,
77
+ });
78
+ expect(config.enabled).toBe(true);
79
+ expect(config.networkName).toBe('custom-network');
80
+ expect(config.readyTimeout).toBe(120000);
81
+ });
82
+ });
83
+ describe('getEasyTierConfig', () => {
84
+ it('should return initialized config', () => {
85
+ initEasyTierConfig({ enabled: true });
86
+ const config = getEasyTierConfig();
87
+ expect(config.enabled).toBe(true);
88
+ });
89
+ });
90
+ describe('isEasyTierAvailable', () => {
91
+ it('should return true when executable is found', () => {
92
+ process.env.AWS_EASYTIER_EXECUTABLE_PATH = '/usr/bin/easytier-core';
93
+ const available = isEasyTierAvailable();
94
+ // 显式路径存在时,应判定为可用
95
+ expect(available).toBe(true);
96
+ });
97
+ });
98
+ });
@@ -0,0 +1,35 @@
1
+ import { CcSwitchSdk } from '@cc-switch/sdk';
2
+ import type { AdapterResult, InitLogEntry, LegacyMcpStateItem, LegacySkillStateItem, McpPayload, SkillPackage, SyncStateResult } from '../types.js';
3
+ export declare function syncLegacyStateFromSdk(agentId: string, sdk: CcSwitchSdk): Promise<SyncStateResult>;
4
+ export declare function initInstance(agentId: string, workspacePath: string, options: {
5
+ skillEnabled?: boolean;
6
+ mcpEnabled?: boolean;
7
+ ccSwitchEnabledTools?: string[];
8
+ skillPackage?: SkillPackage;
9
+ skillPackages?: SkillPackage[];
10
+ mcpServers?: McpPayload[];
11
+ }): Promise<{
12
+ ok: boolean;
13
+ agentId: string;
14
+ workspacePath: string;
15
+ initRoot: string;
16
+ enabledTools: string[];
17
+ logs?: InitLogEntry[];
18
+ skill: {
19
+ enabled: boolean;
20
+ packagePresent: boolean;
21
+ installedCount?: number;
22
+ installed?: LegacySkillStateItem[];
23
+ };
24
+ mcp: {
25
+ enabled: boolean;
26
+ configPath: string | null;
27
+ installedCount?: number;
28
+ };
29
+ adapterResult?: AdapterResult;
30
+ installed?: {
31
+ skills: LegacySkillStateItem[];
32
+ mcpServers: LegacyMcpStateItem[];
33
+ };
34
+ }>;
35
+ //# sourceMappingURL=instance-init-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instance-init-service.d.ts","sourceRoot":"","sources":["../../src/services/instance-init-service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAK7C,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,UAAU,EAAS,YAAY,EAAE,eAAe,EAAqB,MAAM,aAAa,CAAC;AAK9K,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,WAAW,GACf,OAAO,CAAC,eAAe,CAAC,CAyB1B;AAED,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE;IACP,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;IAC/B,UAAU,CAAC,EAAE,UAAU,EAAE,CAAC;CAC3B,GACA,OAAO,CAAC;IACT,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,IAAI,CAAC,EAAE,YAAY,EAAE,CAAC;IACtB,KAAK,EAAE;QACL,OAAO,EAAE,OAAO,CAAC;QACjB,cAAc,EAAE,OAAO,CAAC;QACxB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,SAAS,CAAC,EAAE,oBAAoB,EAAE,CAAC;KACpC,CAAC;IACF,GAAG,EAAE;QACH,OAAO,EAAE,OAAO,CAAC;QACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,SAAS,CAAC,EAAE;QACV,MAAM,EAAE,oBAAoB,EAAE,CAAC;QAC/B,UAAU,EAAE,kBAAkB,EAAE,CAAC;KAClC,CAAC;CACH,CAAC,CA+MD"}