@elizaos/plugin-elizacloud 2.0.0-alpha.8 → 2.0.11-beta.7

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 (452) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +196 -0
  3. package/auto-enable.ts +22 -0
  4. package/dist/browser/index.browser.js +2 -21
  5. package/dist/browser/index.browser.js.map +5 -38
  6. package/dist/cjs/index.d.ts +2 -2
  7. package/dist/cjs/index.node.cjs +9112 -2265
  8. package/dist/cjs/index.node.js.map +68 -30
  9. package/dist/cloud/auth-service-types.d.ts +8 -0
  10. package/dist/cloud/auth-service-types.d.ts.map +1 -0
  11. package/dist/cloud/auth-service-types.js +36 -0
  12. package/dist/cloud/auth-service-types.js.map +10 -0
  13. package/dist/cloud/auth.d.ts +19 -0
  14. package/dist/cloud/auth.d.ts.map +1 -0
  15. package/dist/cloud/auth.js +283 -0
  16. package/dist/cloud/auth.js.map +12 -0
  17. package/dist/cloud/backup.d.ts +18 -0
  18. package/dist/cloud/backup.d.ts.map +1 -0
  19. package/dist/cloud/backup.js +63 -0
  20. package/dist/cloud/backup.js.map +10 -0
  21. package/dist/cloud/base-url.d.ts +7 -0
  22. package/dist/cloud/base-url.d.ts.map +1 -0
  23. package/dist/cloud/base-url.js +29 -0
  24. package/dist/cloud/base-url.js.map +10 -0
  25. package/dist/cloud/bridge-client.d.ts +126 -0
  26. package/dist/cloud/bridge-client.d.ts.map +1 -0
  27. package/dist/cloud/bridge-client.js +384 -0
  28. package/dist/cloud/bridge-client.js.map +11 -0
  29. package/dist/cloud/clack-observer.d.ts +35 -0
  30. package/dist/cloud/clack-observer.d.ts.map +1 -0
  31. package/dist/cloud/clack-observer.js +143 -0
  32. package/dist/cloud/clack-observer.js.map +10 -0
  33. package/dist/cloud/cloud-api-key.d.ts +26 -0
  34. package/dist/cloud/cloud-api-key.d.ts.map +1 -0
  35. package/dist/cloud/cloud-api-key.js +60 -0
  36. package/dist/cloud/cloud-api-key.js.map +10 -0
  37. package/dist/cloud/cloud-manager.d.ts +33 -0
  38. package/dist/cloud/cloud-manager.d.ts.map +1 -0
  39. package/dist/cloud/cloud-manager.js +806 -0
  40. package/dist/cloud/cloud-manager.js.map +16 -0
  41. package/dist/cloud/cloud-proxy.d.ts +20 -0
  42. package/dist/cloud/cloud-proxy.d.ts.map +1 -0
  43. package/dist/cloud/cloud-proxy.js +54 -0
  44. package/dist/cloud/cloud-proxy.js.map +10 -0
  45. package/dist/cloud/cloud-wallet.d.ts +94 -0
  46. package/dist/cloud/cloud-wallet.d.ts.map +1 -0
  47. package/dist/cloud/cloud-wallet.js +362 -0
  48. package/dist/cloud/cloud-wallet.js.map +13 -0
  49. package/dist/cloud/duffel-client.d.ts +181 -0
  50. package/dist/cloud/duffel-client.d.ts.map +1 -0
  51. package/dist/cloud/duffel-client.js +506 -0
  52. package/dist/cloud/duffel-client.js.map +11 -0
  53. package/dist/cloud/index.d.ts +15 -0
  54. package/dist/cloud/index.d.ts.map +1 -0
  55. package/dist/cloud/index.js +1811 -0
  56. package/dist/cloud/index.js.map +24 -0
  57. package/dist/cloud/lifeops-schedule-sync-client.d.ts +43 -0
  58. package/dist/cloud/lifeops-schedule-sync-client.d.ts.map +1 -0
  59. package/dist/cloud/lifeops-schedule-sync-client.js +180 -0
  60. package/dist/cloud/lifeops-schedule-sync-client.js.map +11 -0
  61. package/dist/cloud/lifeops-schedule-sync-contracts.d.ts +89 -0
  62. package/dist/cloud/lifeops-schedule-sync-contracts.d.ts.map +1 -0
  63. package/dist/cloud/lifeops-schedule-sync-contracts.js +39 -0
  64. package/dist/cloud/lifeops-schedule-sync-contracts.js.map +10 -0
  65. package/dist/cloud/managed-payment-clients.d.ts +166 -0
  66. package/dist/cloud/managed-payment-clients.d.ts.map +1 -0
  67. package/dist/cloud/managed-payment-clients.js +238 -0
  68. package/dist/cloud/managed-payment-clients.js.map +11 -0
  69. package/dist/cloud/null-observer.d.ts +35 -0
  70. package/dist/cloud/null-observer.d.ts.map +1 -0
  71. package/dist/cloud/null-observer.js +45 -0
  72. package/dist/cloud/null-observer.js.map +10 -0
  73. package/dist/cloud/reconnect.d.ts +26 -0
  74. package/dist/cloud/reconnect.d.ts.map +1 -0
  75. package/dist/cloud/reconnect.js +104 -0
  76. package/dist/cloud/reconnect.js.map +10 -0
  77. package/dist/cloud/setup-observer.d.ts +98 -0
  78. package/dist/cloud/setup-observer.d.ts.map +1 -0
  79. package/dist/cloud/setup-observer.js +2 -0
  80. package/dist/cloud/setup-observer.js.map +9 -0
  81. package/dist/cloud/validate-url.d.ts +2 -0
  82. package/dist/cloud/validate-url.d.ts.map +1 -0
  83. package/dist/cloud/validate-url.js +175 -0
  84. package/dist/cloud/validate-url.js.map +10 -0
  85. package/dist/cloud/x402-payment-handler.d.ts +85 -0
  86. package/dist/cloud/x402-payment-handler.d.ts.map +1 -0
  87. package/dist/cloud/x402-payment-handler.js +119 -0
  88. package/dist/cloud/x402-payment-handler.js.map +10 -0
  89. package/dist/cloud-providers/cloud-status.d.ts.map +1 -1
  90. package/dist/cloud-providers/cloud-status.js +78 -0
  91. package/dist/cloud-providers/cloud-status.js.map +10 -0
  92. package/dist/cloud-providers/container-health.d.ts.map +1 -1
  93. package/dist/cloud-providers/container-health.js +74 -0
  94. package/dist/cloud-providers/container-health.js.map +10 -0
  95. package/dist/cloud-providers/credit-balance.d.ts.map +1 -1
  96. package/dist/cloud-providers/credit-balance.js +85 -0
  97. package/dist/cloud-providers/credit-balance.js.map +10 -0
  98. package/dist/cloud-providers/index.d.ts.map +1 -1
  99. package/dist/cloud-providers/index.js +24 -0
  100. package/dist/cloud-providers/index.js.map +9 -0
  101. package/dist/cloud-providers/model-registry.d.ts.map +1 -1
  102. package/dist/cloud-providers/model-registry.js +71 -0
  103. package/dist/cloud-providers/model-registry.js.map +10 -0
  104. package/dist/cloud-setup.d.ts +36 -0
  105. package/dist/cloud-setup.d.ts.map +1 -0
  106. package/dist/cloud-setup.js +883 -0
  107. package/dist/cloud-setup.js.map +14 -0
  108. package/dist/cloud-voice-catalog.d.ts +65 -0
  109. package/dist/cloud-voice-catalog.d.ts.map +1 -0
  110. package/dist/cloud-voice-catalog.js +278 -0
  111. package/dist/cloud-voice-catalog.js.map +12 -0
  112. package/dist/index.browser.d.ts +15 -3
  113. package/dist/index.browser.d.ts.map +1 -1
  114. package/dist/index.d.ts +24 -0
  115. package/dist/index.d.ts.map +1 -1
  116. package/dist/index.js +9862 -0
  117. package/dist/index.js.map +77 -0
  118. package/dist/index.node.d.ts +21 -2
  119. package/dist/index.node.d.ts.map +1 -1
  120. package/dist/init.d.ts.map +1 -1
  121. package/dist/init.js +182 -0
  122. package/dist/init.js.map +12 -0
  123. package/dist/lib/cloud-connection.d.ts +77 -0
  124. package/dist/lib/cloud-connection.d.ts.map +1 -0
  125. package/dist/lib/cloud-connection.js +654 -0
  126. package/dist/lib/cloud-connection.js.map +14 -0
  127. package/dist/lib/cloud-secrets.d.ts +10 -0
  128. package/dist/lib/cloud-secrets.d.ts.map +1 -0
  129. package/dist/lib/cloud-secrets.js +36 -0
  130. package/dist/lib/cloud-secrets.js.map +10 -0
  131. package/dist/lib/config-env.d.ts +5 -0
  132. package/dist/lib/config-env.d.ts.map +1 -0
  133. package/dist/lib/config-env.js +191 -0
  134. package/dist/lib/config-env.js.map +11 -0
  135. package/dist/lib/config-like.d.ts +40 -0
  136. package/dist/lib/config-like.d.ts.map +1 -0
  137. package/dist/lib/config-like.js +103 -0
  138. package/dist/lib/config-like.js.map +10 -0
  139. package/dist/lib/credential-type-map.d.ts +53 -0
  140. package/dist/lib/credential-type-map.d.ts.map +1 -0
  141. package/dist/lib/credential-type-map.js +88 -0
  142. package/dist/lib/credential-type-map.js.map +10 -0
  143. package/dist/lib/feature-flags.d.ts +2 -0
  144. package/dist/lib/feature-flags.d.ts.map +1 -0
  145. package/dist/lib/feature-flags.js +40 -0
  146. package/dist/lib/feature-flags.js.map +10 -0
  147. package/dist/lib/http.d.ts +11 -0
  148. package/dist/lib/http.d.ts.map +1 -0
  149. package/dist/lib/http.js +107 -0
  150. package/dist/lib/http.js.map +10 -0
  151. package/dist/lib/server-cloud-tts.d.ts +21 -0
  152. package/dist/lib/server-cloud-tts.d.ts.map +1 -0
  153. package/dist/lib/server-cloud-tts.js +251 -0
  154. package/dist/lib/server-cloud-tts.js.map +10 -0
  155. package/dist/lib/state-paths.d.ts +4 -0
  156. package/dist/lib/state-paths.d.ts.map +1 -0
  157. package/dist/lib/state-paths.js +52 -0
  158. package/dist/lib/state-paths.js.map +10 -0
  159. package/dist/lib/tts-debug.d.ts +6 -0
  160. package/dist/lib/tts-debug.d.ts.map +1 -0
  161. package/dist/lib/tts-debug.js +24 -0
  162. package/dist/lib/tts-debug.js.map +9 -0
  163. package/dist/models/embeddings.d.ts.map +1 -1
  164. package/dist/models/embeddings.js +329 -0
  165. package/dist/models/embeddings.js.map +13 -0
  166. package/dist/models/image.d.ts.map +1 -1
  167. package/dist/models/image.js +401 -0
  168. package/dist/models/image.js.map +14 -0
  169. package/dist/models/index.d.ts +1 -2
  170. package/dist/models/index.d.ts.map +1 -1
  171. package/dist/models/index.js +1896 -0
  172. package/dist/models/index.js.map +19 -0
  173. package/dist/models/research.d.ts.map +1 -1
  174. package/dist/models/research.js +341 -0
  175. package/dist/models/research.js.map +13 -0
  176. package/dist/models/speech.d.ts +61 -3
  177. package/dist/models/speech.d.ts.map +1 -1
  178. package/dist/models/speech.js +429 -0
  179. package/dist/models/speech.js.map +13 -0
  180. package/dist/models/text.d.ts +111 -3
  181. package/dist/models/text.d.ts.map +1 -1
  182. package/dist/models/text.js +1173 -0
  183. package/dist/models/text.js.map +14 -0
  184. package/dist/models/tokenization.d.ts.map +1 -1
  185. package/dist/models/tokenization.js +65 -0
  186. package/dist/models/tokenization.js.map +10 -0
  187. package/dist/models/transcription.d.ts.map +1 -1
  188. package/dist/models/transcription.js +297 -0
  189. package/dist/models/transcription.js.map +13 -0
  190. package/dist/node/index.d.ts +2 -2
  191. package/dist/node/index.node.js +9189 -2295
  192. package/dist/node/index.node.js.map +68 -30
  193. package/dist/plugin.d.ts +20 -0
  194. package/dist/plugin.d.ts.map +1 -0
  195. package/dist/plugin.js +2937 -0
  196. package/dist/plugin.js.map +28 -0
  197. package/dist/providers/openai.d.ts.map +1 -1
  198. package/dist/providers/openai.js +136 -0
  199. package/dist/providers/openai.js.map +11 -0
  200. package/dist/register-routes.d.ts +2 -0
  201. package/dist/register-routes.d.ts.map +1 -0
  202. package/dist/register-routes.js +2938 -0
  203. package/dist/register-routes.js.map +29 -0
  204. package/dist/routes/cloud-billing-routes.d.ts +9 -0
  205. package/dist/routes/cloud-billing-routes.d.ts.map +1 -0
  206. package/dist/routes/cloud-billing-routes.js +764 -0
  207. package/dist/routes/cloud-billing-routes.js.map +15 -0
  208. package/dist/routes/cloud-coding-container-routes.d.ts +8 -0
  209. package/dist/routes/cloud-coding-container-routes.d.ts.map +1 -0
  210. package/dist/routes/cloud-coding-container-routes.js +214 -0
  211. package/dist/routes/cloud-coding-container-routes.js.map +11 -0
  212. package/dist/routes/cloud-compat-routes.d.ts +10 -0
  213. package/dist/routes/cloud-compat-routes.d.ts.map +1 -0
  214. package/dist/routes/cloud-compat-routes.js +495 -0
  215. package/dist/routes/cloud-compat-routes.js.map +15 -0
  216. package/dist/routes/cloud-features-routes.d.ts +9 -0
  217. package/dist/routes/cloud-features-routes.d.ts.map +1 -0
  218. package/dist/routes/cloud-features-routes.js +124 -0
  219. package/dist/routes/cloud-features-routes.js.map +11 -0
  220. package/dist/routes/cloud-provisioning.d.ts +14 -0
  221. package/dist/routes/cloud-provisioning.d.ts.map +1 -0
  222. package/dist/routes/cloud-provisioning.js +37 -0
  223. package/dist/routes/cloud-provisioning.js.map +10 -0
  224. package/dist/routes/cloud-relay-routes.d.ts +23 -0
  225. package/dist/routes/cloud-relay-routes.d.ts.map +1 -0
  226. package/dist/routes/cloud-relay-routes.js +142 -0
  227. package/dist/routes/cloud-relay-routes.js.map +11 -0
  228. package/dist/routes/cloud-routes-autonomous.d.ts +82 -0
  229. package/dist/routes/cloud-routes-autonomous.d.ts.map +1 -0
  230. package/dist/routes/cloud-routes-autonomous.js +1252 -0
  231. package/dist/routes/cloud-routes-autonomous.js.map +18 -0
  232. package/dist/routes/cloud-routes.d.ts +35 -0
  233. package/dist/routes/cloud-routes.d.ts.map +1 -0
  234. package/dist/routes/cloud-routes.js +2173 -0
  235. package/dist/routes/cloud-routes.js.map +23 -0
  236. package/dist/routes/cloud-status-routes-autonomous.d.ts +14 -0
  237. package/dist/routes/cloud-status-routes-autonomous.d.ts.map +1 -0
  238. package/dist/routes/cloud-status-routes-autonomous.js +349 -0
  239. package/dist/routes/cloud-status-routes-autonomous.js.map +13 -0
  240. package/dist/routes/cloud-status-routes.d.ts +4 -0
  241. package/dist/routes/cloud-status-routes.d.ts.map +1 -0
  242. package/dist/routes/cloud-status-routes.js +695 -0
  243. package/dist/routes/cloud-status-routes.js.map +15 -0
  244. package/dist/routes/home-remote-runner-access-url.d.ts +16 -0
  245. package/dist/routes/home-remote-runner-access-url.d.ts.map +1 -0
  246. package/dist/routes/home-remote-runner-access-url.js +91 -0
  247. package/dist/routes/home-remote-runner-access-url.js.map +10 -0
  248. package/dist/routes/travel-provider-relay-routes.d.ts +9 -0
  249. package/dist/routes/travel-provider-relay-routes.d.ts.map +1 -0
  250. package/dist/routes/travel-provider-relay-routes.js +358 -0
  251. package/dist/routes/travel-provider-relay-routes.js.map +14 -0
  252. package/dist/services/cloud-auth.d.ts +140 -5
  253. package/dist/services/cloud-auth.d.ts.map +1 -1
  254. package/dist/services/cloud-auth.js +368 -0
  255. package/dist/services/cloud-auth.js.map +12 -0
  256. package/dist/services/cloud-backup.d.ts.map +1 -1
  257. package/dist/services/cloud-backup.js +176 -0
  258. package/dist/services/cloud-backup.js.map +11 -0
  259. package/dist/services/cloud-bootstrap.d.ts +38 -0
  260. package/dist/services/cloud-bootstrap.d.ts.map +1 -0
  261. package/dist/services/cloud-bootstrap.js +84 -0
  262. package/dist/services/cloud-bootstrap.js.map +10 -0
  263. package/dist/services/cloud-bridge.d.ts +1 -1
  264. package/dist/services/cloud-bridge.d.ts.map +1 -1
  265. package/dist/services/cloud-bridge.js +308 -0
  266. package/dist/services/cloud-bridge.js.map +11 -0
  267. package/dist/services/cloud-container.d.ts +5 -1
  268. package/dist/services/cloud-container.d.ts.map +1 -1
  269. package/dist/services/cloud-container.js +292 -0
  270. package/dist/services/cloud-container.js.map +11 -0
  271. package/dist/services/cloud-credential-provider.d.ts +55 -0
  272. package/dist/services/cloud-credential-provider.d.ts.map +1 -0
  273. package/dist/services/cloud-credential-provider.js +190 -0
  274. package/dist/services/cloud-credential-provider.js.map +11 -0
  275. package/dist/services/cloud-managed-gateway-relay.d.ts +38 -0
  276. package/dist/services/cloud-managed-gateway-relay.d.ts.map +1 -0
  277. package/dist/services/cloud-managed-gateway-relay.js +479 -0
  278. package/dist/services/cloud-managed-gateway-relay.js.map +10 -0
  279. package/dist/services/cloud-model-registry.d.ts.map +1 -1
  280. package/dist/services/cloud-model-registry.js +175 -0
  281. package/dist/services/cloud-model-registry.js.map +10 -0
  282. package/dist/services/index.d.ts +3 -1
  283. package/dist/services/index.d.ts.map +1 -1
  284. package/dist/services/index.js +29 -0
  285. package/dist/services/index.js.map +9 -0
  286. package/dist/types/cloud.d.ts +42 -19
  287. package/dist/types/cloud.d.ts.map +1 -1
  288. package/dist/types/cloud.js +52 -0
  289. package/dist/types/cloud.js.map +10 -0
  290. package/dist/types/index.d.ts +1 -1
  291. package/dist/types/index.d.ts.map +1 -1
  292. package/dist/types/index.js +24 -0
  293. package/dist/types/index.js.map +9 -0
  294. package/dist/utils/cloud-api.d.ts +2 -27
  295. package/dist/utils/cloud-api.d.ts.map +1 -1
  296. package/dist/utils/cloud-api.js +33 -0
  297. package/dist/utils/cloud-api.js.map +10 -0
  298. package/dist/utils/cloud-sdk/client.d.ts +133 -0
  299. package/dist/utils/cloud-sdk/client.d.ts.map +1 -0
  300. package/dist/utils/cloud-sdk/client.js +3693 -0
  301. package/dist/utils/cloud-sdk/client.js.map +13 -0
  302. package/dist/utils/cloud-sdk/http.d.ts +37 -0
  303. package/dist/utils/cloud-sdk/http.d.ts.map +1 -0
  304. package/dist/utils/cloud-sdk/http.js +237 -0
  305. package/dist/utils/cloud-sdk/http.js.map +11 -0
  306. package/dist/utils/cloud-sdk/index.d.ts +6 -0
  307. package/dist/utils/cloud-sdk/index.d.ts.map +1 -0
  308. package/dist/utils/cloud-sdk/index.js +29 -0
  309. package/dist/utils/cloud-sdk/index.js.map +9 -0
  310. package/dist/utils/cloud-sdk/public-routes.d.ts +5563 -0
  311. package/dist/utils/cloud-sdk/public-routes.d.ts.map +1 -0
  312. package/dist/utils/cloud-sdk/public-routes.js +3048 -0
  313. package/dist/utils/cloud-sdk/public-routes.js.map +10 -0
  314. package/dist/utils/cloud-sdk/types.cloud-api.d.ts +101 -0
  315. package/dist/utils/cloud-sdk/types.cloud-api.d.ts.map +1 -0
  316. package/dist/utils/cloud-sdk/types.cloud-api.js +2 -0
  317. package/dist/utils/cloud-sdk/types.cloud-api.js.map +9 -0
  318. package/dist/utils/cloud-sdk/types.d.ts +653 -0
  319. package/dist/utils/cloud-sdk/types.d.ts.map +1 -0
  320. package/dist/utils/cloud-sdk/types.js +29 -0
  321. package/dist/utils/cloud-sdk/types.js.map +10 -0
  322. package/dist/utils/config.d.ts +16 -3
  323. package/dist/utils/config.d.ts.map +1 -1
  324. package/dist/utils/config.js +147 -0
  325. package/dist/utils/config.js.map +10 -0
  326. package/dist/utils/events.d.ts +23 -2
  327. package/dist/utils/events.d.ts.map +1 -1
  328. package/dist/utils/events.js +45 -0
  329. package/dist/utils/events.js.map +10 -0
  330. package/dist/utils/helpers.d.ts.map +1 -1
  331. package/dist/utils/helpers.js +103 -0
  332. package/dist/utils/helpers.js.map +10 -0
  333. package/dist/utils/responses-output.d.ts +13 -0
  334. package/dist/utils/responses-output.d.ts.map +1 -0
  335. package/dist/utils/responses-output.js +102 -0
  336. package/dist/utils/responses-output.js.map +10 -0
  337. package/dist/utils/sdk-client.d.ts +5 -0
  338. package/dist/utils/sdk-client.d.ts.map +1 -0
  339. package/dist/utils/sdk-client.js +157 -0
  340. package/dist/utils/sdk-client.js.map +11 -0
  341. package/dist/utils/waifu-metering.d.ts +108 -0
  342. package/dist/utils/waifu-metering.d.ts.map +1 -0
  343. package/dist/utils/waifu-metering.js +166 -0
  344. package/dist/utils/waifu-metering.js.map +10 -0
  345. package/package.json +139 -21
  346. package/src/cloud/auth-service-types.ts +24 -0
  347. package/src/cloud/auth.ts +175 -0
  348. package/src/cloud/backup.ts +46 -0
  349. package/src/cloud/base-url.ts +6 -0
  350. package/src/cloud/bridge-client.ts +602 -0
  351. package/src/cloud/clack-observer.ts +189 -0
  352. package/src/cloud/cloud-api-key.ts +80 -0
  353. package/src/cloud/cloud-manager.ts +163 -0
  354. package/src/cloud/cloud-proxy.ts +52 -0
  355. package/src/cloud/cloud-wallet.ts +341 -0
  356. package/src/cloud/duffel-client.ts +847 -0
  357. package/src/cloud/index.ts +38 -0
  358. package/src/cloud/lifeops-schedule-sync-client.ts +245 -0
  359. package/src/cloud/lifeops-schedule-sync-contracts.ts +124 -0
  360. package/src/cloud/managed-payment-clients.ts +374 -0
  361. package/src/cloud/null-observer.ts +45 -0
  362. package/src/cloud/reconnect.ts +111 -0
  363. package/src/cloud/setup-observer.ts +125 -0
  364. package/src/cloud/validate-url.ts +187 -0
  365. package/src/cloud/x402-payment-handler.ts +215 -0
  366. package/src/cloud-providers/cloud-status.ts +75 -0
  367. package/src/cloud-providers/container-health.ts +68 -0
  368. package/src/cloud-providers/credit-balance.ts +70 -0
  369. package/src/cloud-providers/index.ts +3 -0
  370. package/src/cloud-providers/model-registry.ts +74 -0
  371. package/src/cloud-setup.ts +531 -0
  372. package/src/cloud-voice-catalog.test.ts +254 -0
  373. package/src/cloud-voice-catalog.ts +246 -0
  374. package/src/index.browser.ts +39 -0
  375. package/src/index.node.ts +69 -0
  376. package/src/index.ts +419 -0
  377. package/src/init.ts +39 -0
  378. package/src/lib/cloud-connection.ts +661 -0
  379. package/src/lib/cloud-secrets.ts +14 -0
  380. package/src/lib/config-env.ts +168 -0
  381. package/src/lib/config-like.ts +149 -0
  382. package/src/lib/credential-type-map.ts +130 -0
  383. package/src/lib/feature-flags.ts +26 -0
  384. package/src/lib/http.ts +122 -0
  385. package/src/lib/server-cloud-tts.ts +301 -0
  386. package/src/lib/state-paths.ts +28 -0
  387. package/src/lib/tts-debug.ts +5 -0
  388. package/src/models/embeddings.ts +298 -0
  389. package/src/models/image.ts +234 -0
  390. package/src/models/index.ts +16 -0
  391. package/src/models/research.ts +275 -0
  392. package/src/models/speech.ts +324 -0
  393. package/src/models/text.ts +1493 -0
  394. package/src/models/tokenization.ts +67 -0
  395. package/src/models/transcription.ts +101 -0
  396. package/src/plugin.ts +281 -0
  397. package/src/providers/openai.ts +16 -0
  398. package/src/register-routes.ts +6 -0
  399. package/src/routes/cloud-billing-routes.ts +744 -0
  400. package/src/routes/cloud-coding-container-routes.ts +198 -0
  401. package/src/routes/cloud-compat-routes.ts +304 -0
  402. package/src/routes/cloud-features-routes.ts +57 -0
  403. package/src/routes/cloud-provisioning.ts +37 -0
  404. package/src/routes/cloud-relay-routes.ts +135 -0
  405. package/src/routes/cloud-routes-autonomous.ts +993 -0
  406. package/src/routes/cloud-routes.ts +637 -0
  407. package/src/routes/cloud-status-routes-autonomous.ts +238 -0
  408. package/src/routes/cloud-status-routes.ts +73 -0
  409. package/src/routes/home-remote-runner-access-url.ts +83 -0
  410. package/src/routes/travel-provider-relay-routes.ts +193 -0
  411. package/src/services/cloud-auth.ts +574 -0
  412. package/src/services/cloud-backup.ts +208 -0
  413. package/src/services/cloud-bootstrap.ts +106 -0
  414. package/src/services/cloud-bridge.ts +386 -0
  415. package/src/services/cloud-container.ts +390 -0
  416. package/src/services/cloud-credential-provider.ts +210 -0
  417. package/src/services/cloud-managed-gateway-relay.ts +663 -0
  418. package/src/services/cloud-model-registry.ts +202 -0
  419. package/src/services/index.ts +17 -0
  420. package/{types → src/types}/cloud.ts +74 -29
  421. package/{types → src/types}/index.ts +25 -0
  422. package/src/utils/cloud-api.ts +10 -0
  423. package/src/utils/cloud-sdk/client.ts +774 -0
  424. package/src/utils/cloud-sdk/http.ts +291 -0
  425. package/src/utils/cloud-sdk/index.ts +23 -0
  426. package/src/utils/cloud-sdk/public-routes.ts +5238 -0
  427. package/src/utils/cloud-sdk/types.cloud-api.ts +120 -0
  428. package/src/utils/cloud-sdk/types.ts +760 -0
  429. package/src/utils/config.ts +193 -0
  430. package/src/utils/events.ts +65 -0
  431. package/src/utils/helpers.ts +107 -0
  432. package/src/utils/responses-output.ts +115 -0
  433. package/src/utils/sdk-client.ts +41 -0
  434. package/src/utils/waifu-metering.ts +302 -0
  435. package/dist/actions/check-credits.d.ts +0 -6
  436. package/dist/actions/check-credits.d.ts.map +0 -1
  437. package/dist/actions/freeze-agent.d.ts +0 -9
  438. package/dist/actions/freeze-agent.d.ts.map +0 -1
  439. package/dist/actions/index.d.ts +0 -5
  440. package/dist/actions/index.d.ts.map +0 -1
  441. package/dist/actions/provision-agent.d.ts +0 -8
  442. package/dist/actions/provision-agent.d.ts.map +0 -1
  443. package/dist/actions/resume-agent.d.ts +0 -9
  444. package/dist/actions/resume-agent.d.ts.map +0 -1
  445. package/dist/build.d.ts +0 -3
  446. package/dist/build.d.ts.map +0 -1
  447. package/dist/generated/specs/specs.d.ts +0 -55
  448. package/dist/generated/specs/specs.d.ts.map +0 -1
  449. package/dist/models/object.d.ts +0 -4
  450. package/dist/models/object.d.ts.map +0 -1
  451. package/dist/utils/forwarded-settings.d.ts +0 -8
  452. package/dist/utils/forwarded-settings.d.ts.map +0 -1
@@ -0,0 +1,308 @@
1
+ import { createRequire } from "node:module";
2
+ var __defProp = Object.defineProperty;
3
+ var __returnValue = (v) => v;
4
+ function __exportSetter(name, newValue) {
5
+ this[name] = __returnValue.bind(null, newValue);
6
+ }
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, {
10
+ get: all[name],
11
+ enumerable: true,
12
+ configurable: true,
13
+ set: __exportSetter.bind(all, name)
14
+ });
15
+ };
16
+ var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
17
+ var __require = /* @__PURE__ */ createRequire(import.meta.url);
18
+
19
+ // src/types/cloud.ts
20
+ import {
21
+ CloudApiError,
22
+ InsufficientCreditsError
23
+ } from "@elizaos/cloud-sdk";
24
+ var DEFAULT_CLOUD_CONFIG = {
25
+ enabled: false,
26
+ baseUrl: "https://www.elizacloud.ai/api/v1",
27
+ inferenceMode: "cloud",
28
+ autoProvision: false,
29
+ bridge: {
30
+ reconnectIntervalMs: 3000,
31
+ maxReconnectAttempts: 20,
32
+ heartbeatIntervalMs: 30000
33
+ },
34
+ backup: {
35
+ autoBackupIntervalMs: 3600000,
36
+ maxSnapshots: 10
37
+ },
38
+ container: {
39
+ defaultImage: "elizaos/agent:latest",
40
+ defaultArchitecture: "arm64",
41
+ defaultCpu: 1792,
42
+ defaultMemory: 1792,
43
+ defaultPort: 3000
44
+ }
45
+ };
46
+
47
+ // src/services/cloud-bridge.ts
48
+ import { logger, Service } from "@elizaos/core";
49
+ import { WebSocket } from "undici";
50
+ function requireWebSocket(conn, containerId) {
51
+ if (!conn.ws) {
52
+ throw new Error(`WebSocket not connected for container ${containerId}`);
53
+ }
54
+ return conn.ws;
55
+ }
56
+
57
+ class CloudBridgeService extends Service {
58
+ static serviceType = "CLOUD_BRIDGE";
59
+ capabilityDescription = "WebSocket bridge to cloud-hosted ElizaOS agents";
60
+ authService;
61
+ bridgeConfig = DEFAULT_CLOUD_CONFIG.bridge;
62
+ connections = new Map;
63
+ static async start(runtime) {
64
+ const service = new CloudBridgeService(runtime);
65
+ await service.initialize();
66
+ return service;
67
+ }
68
+ async stop() {
69
+ for (const [containerId] of this.connections) {
70
+ await this.disconnect(containerId);
71
+ }
72
+ logger.info("[CloudBridge] Service stopped");
73
+ }
74
+ async initialize() {
75
+ const auth = this.runtime.getService("CLOUD_AUTH");
76
+ if (!auth) {
77
+ logger.debug("[CloudBridge] CloudAuthService not available");
78
+ return;
79
+ }
80
+ this.authService = auth;
81
+ logger.info("[CloudBridge] Service initialized");
82
+ }
83
+ async connect(containerId) {
84
+ const existing = this.connections.get(containerId);
85
+ if (existing) {
86
+ if (existing.state === "connected" || existing.state === "connecting") {
87
+ logger.debug(`[CloudBridge] Already connected/connecting to ${containerId}`);
88
+ return;
89
+ }
90
+ }
91
+ await this.establishConnection(containerId, 0);
92
+ }
93
+ async disconnect(containerId) {
94
+ const conn = this.connections.get(containerId);
95
+ if (!conn)
96
+ return;
97
+ if (conn.heartbeatTimer)
98
+ clearInterval(conn.heartbeatTimer);
99
+ if (conn.reconnectTimer)
100
+ clearTimeout(conn.reconnectTimer);
101
+ for (const [, pending] of conn.pendingRequests) {
102
+ clearTimeout(pending.timeout);
103
+ pending.reject(new Error("Bridge disconnected"));
104
+ }
105
+ conn.pendingRequests.clear();
106
+ const ws = conn.ws;
107
+ if (ws && (ws.readyState === WebSocket.OPEN || ws.readyState === WebSocket.CONNECTING)) {
108
+ ws.close(1000, "Client disconnect");
109
+ }
110
+ this.connections.delete(containerId);
111
+ logger.info(`[CloudBridge] Disconnected from ${containerId}`);
112
+ }
113
+ async establishConnection(containerId, reconnectAttempts) {
114
+ const client = this.authService.getClient();
115
+ const apiKey = this.authService.getApiKey();
116
+ const wsUrl = client.buildWsUrl(`/agent-bridge/${containerId}`);
117
+ const authUrl = apiKey ? `${wsUrl}?token=${encodeURIComponent(apiKey)}` : wsUrl;
118
+ const ws = new WebSocket(authUrl);
119
+ const conn = {
120
+ ws,
121
+ state: "connecting",
122
+ connectedAt: null,
123
+ lastHeartbeat: null,
124
+ reconnectAttempts,
125
+ heartbeatTimer: null,
126
+ reconnectTimer: null,
127
+ handlers: this.connections.get(containerId)?.handlers ?? new Set,
128
+ pendingRequests: new Map,
129
+ nextRequestId: 1
130
+ };
131
+ this.connections.set(containerId, conn);
132
+ ws.addEventListener("open", () => {
133
+ conn.state = "connected";
134
+ conn.connectedAt = Date.now();
135
+ conn.reconnectAttempts = 0;
136
+ logger.info(`[CloudBridge] Connected to agent ${containerId}`);
137
+ conn.heartbeatTimer = setInterval(() => {
138
+ this.sendHeartbeat(containerId);
139
+ }, this.bridgeConfig.heartbeatIntervalMs);
140
+ });
141
+ ws.addEventListener("message", (event) => {
142
+ const raw = event.data;
143
+ const data = typeof raw === "string" ? raw : raw instanceof Buffer ? raw.toString("utf-8") : String(raw);
144
+ const message = JSON.parse(data);
145
+ if (message.method === "heartbeat.ack") {
146
+ conn.lastHeartbeat = Date.now();
147
+ return;
148
+ }
149
+ if (message.id !== undefined && !message.method) {
150
+ const pending = conn.pendingRequests.get(message.id);
151
+ if (pending) {
152
+ clearTimeout(pending.timeout);
153
+ conn.pendingRequests.delete(message.id);
154
+ if (message.error) {
155
+ pending.reject(new Error(message.error.message));
156
+ } else {
157
+ pending.resolve(message.result);
158
+ }
159
+ return;
160
+ }
161
+ }
162
+ for (const handler of conn.handlers) {
163
+ handler(message);
164
+ }
165
+ });
166
+ ws.addEventListener("close", (event) => {
167
+ conn.state = "disconnected";
168
+ if (conn.heartbeatTimer)
169
+ clearInterval(conn.heartbeatTimer);
170
+ if (event.code === 1000) {
171
+ logger.info(`[CloudBridge] Clean disconnect from ${containerId}`);
172
+ return;
173
+ }
174
+ logger.warn(`[CloudBridge] Connection lost to ${containerId} (code=${event.code}, reason=${event.reason})`);
175
+ this.scheduleReconnect(containerId, conn.reconnectAttempts + 1);
176
+ });
177
+ ws.addEventListener("error", () => {
178
+ logger.error(`[CloudBridge] WebSocket error for ${containerId}`);
179
+ });
180
+ }
181
+ scheduleReconnect(containerId, attempt) {
182
+ if (attempt > this.bridgeConfig.maxReconnectAttempts) {
183
+ logger.error(`[CloudBridge] Max reconnect attempts (${this.bridgeConfig.maxReconnectAttempts}) reached for ${containerId}`);
184
+ this.connections.delete(containerId);
185
+ return;
186
+ }
187
+ const base = this.bridgeConfig.reconnectIntervalMs;
188
+ const delay = Math.min(base * 2 ** Math.min(attempt, 5), 120000);
189
+ const jitter = Math.floor(Math.random() * 1000);
190
+ logger.info(`[CloudBridge] Reconnecting to ${containerId} in ${Math.round((delay + jitter) / 1000)}s (attempt ${attempt})`);
191
+ const conn = this.connections.get(containerId);
192
+ if (conn) {
193
+ conn.state = "reconnecting";
194
+ conn.reconnectTimer = setTimeout(() => {
195
+ this.establishConnection(containerId, attempt);
196
+ }, delay + jitter);
197
+ }
198
+ }
199
+ sendHeartbeat(containerId) {
200
+ const conn = this.connections.get(containerId);
201
+ if (!conn || conn.state !== "connected")
202
+ return;
203
+ const message = {
204
+ jsonrpc: "2.0",
205
+ method: "heartbeat",
206
+ params: { timestamp: Date.now() }
207
+ };
208
+ requireWebSocket(conn, containerId).send(JSON.stringify(message));
209
+ }
210
+ async sendRequest(containerId, method, params, timeoutMs = 60000) {
211
+ const conn = this.connections.get(containerId);
212
+ if (!conn || conn.state !== "connected") {
213
+ throw new Error(`Not connected to container ${containerId}`);
214
+ }
215
+ const id = conn.nextRequestId++;
216
+ const message = {
217
+ jsonrpc: "2.0",
218
+ id,
219
+ method,
220
+ params
221
+ };
222
+ return new Promise((resolve, reject) => {
223
+ const timeout = setTimeout(() => {
224
+ conn.pendingRequests.delete(id);
225
+ reject(new Error(`Request ${method} timed out after ${timeoutMs}ms`));
226
+ }, timeoutMs);
227
+ conn.pendingRequests.set(id, { resolve, reject, timeout });
228
+ requireWebSocket(conn, containerId).send(JSON.stringify(message));
229
+ });
230
+ }
231
+ sendNotification(containerId, method, params) {
232
+ const conn = this.connections.get(containerId);
233
+ if (!conn || conn.state !== "connected") {
234
+ throw new Error(`Not connected to container ${containerId}`);
235
+ }
236
+ const message = {
237
+ jsonrpc: "2.0",
238
+ method,
239
+ params
240
+ };
241
+ requireWebSocket(conn, containerId).send(JSON.stringify(message));
242
+ }
243
+ async sendChatMessage(containerId, text, roomId, metadata) {
244
+ const result = await this.sendRequest(containerId, "message.send", {
245
+ text,
246
+ roomId,
247
+ metadata
248
+ });
249
+ return result;
250
+ }
251
+ async getAgentStatus(containerId) {
252
+ const result = await this.sendRequest(containerId, "status.get", {});
253
+ return result;
254
+ }
255
+ async updateAgentConfig(containerId, config) {
256
+ await this.sendRequest(containerId, "config.update", config);
257
+ }
258
+ onMessage(containerId, handler) {
259
+ let conn = this.connections.get(containerId);
260
+ if (!conn) {
261
+ conn = {
262
+ ws: null,
263
+ state: "disconnected",
264
+ connectedAt: null,
265
+ lastHeartbeat: null,
266
+ reconnectAttempts: 0,
267
+ heartbeatTimer: null,
268
+ reconnectTimer: null,
269
+ handlers: new Set,
270
+ pendingRequests: new Map,
271
+ nextRequestId: 1
272
+ };
273
+ this.connections.set(containerId, conn);
274
+ }
275
+ conn.handlers.add(handler);
276
+ return () => {
277
+ conn.handlers.delete(handler);
278
+ };
279
+ }
280
+ getConnectionState(containerId) {
281
+ return this.connections.get(containerId)?.state ?? "disconnected";
282
+ }
283
+ getConnectionInfo(containerId) {
284
+ const conn = this.connections.get(containerId);
285
+ if (!conn)
286
+ return null;
287
+ return {
288
+ containerId,
289
+ state: conn.state,
290
+ connectedAt: conn.connectedAt,
291
+ lastHeartbeat: conn.lastHeartbeat,
292
+ reconnectAttempts: conn.reconnectAttempts
293
+ };
294
+ }
295
+ getConnectedContainerIds() {
296
+ const ids = [];
297
+ for (const [id, conn] of this.connections) {
298
+ if (conn.state === "connected")
299
+ ids.push(id);
300
+ }
301
+ return ids;
302
+ }
303
+ }
304
+ export {
305
+ CloudBridgeService
306
+ };
307
+
308
+ //# debugId=0C81D369BEE5065864756E2164756E21
@@ -0,0 +1,11 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/types/cloud.ts", "../src/services/cloud-bridge.ts"],
4
+ "sourcesContent": [
5
+ "/**\n * Cloud-specific types for ElizaCloud integration.\n *\n * These types mirror the eliza-cloud-v2 database schemas and API contracts\n * for containers, auth, credits, bridge messaging, and agent state snapshots.\n */\n\nexport type {\n CloudCodingAgent,\n CloudCodingContainerSession,\n CloudCodingContainerStatus,\n CloudCodingPatch,\n CloudCodingPatchFormat,\n CloudCodingPromotion,\n CloudCodingSyncDirection,\n CloudCodingSyncResult,\n CloudVfsBundle,\n CloudVfsDeletedFile,\n CloudVfsFile,\n CloudVfsFileEncoding,\n CloudVfsSourceKind,\n PromoteVfsToCloudContainerRequest,\n PromoteVfsToCloudContainerResponse,\n RequestCodingAgentContainerRequest,\n RequestCodingAgentContainerResponse,\n SyncCloudCodingContainerRequest,\n SyncCloudCodingContainerResponse,\n} from \"@elizaos/shared\";\n\n// ─── Container Types ────────────────────────────────────────────────────────\n\nexport type ContainerStatus =\n | \"pending\"\n | \"building\"\n | \"deploying\"\n | \"running\"\n | \"stopped\"\n | \"failed\"\n | \"suspended\";\n\nexport type ContainerBillingStatus =\n | \"active\"\n | \"warning\"\n | \"suspended\"\n | \"shutdown_pending\"\n | \"archived\";\n\nexport type ContainerArchitecture = \"arm64\" | \"x86_64\";\n\nexport interface CloudContainer {\n id: string;\n name: string;\n project_name: string;\n description: string | null;\n organization_id: string;\n user_id: string;\n status: ContainerStatus;\n image_tag: string | null;\n port: number;\n desired_count: number;\n cpu: number;\n memory: number;\n architecture: ContainerArchitecture;\n environment_vars: Record<string, string>;\n health_check_path: string;\n load_balancer_url: string | null;\n ecr_repository_uri: string | null;\n ecr_image_tag: string | null;\n cloudformation_stack_name: string | null;\n billing_status: ContainerBillingStatus;\n total_billed: string;\n last_deployed_at: string | null;\n last_health_check: string | null;\n deployment_log: string | null;\n error_message: string | null;\n metadata: Record<string, unknown>;\n created_at: string;\n updated_at: string;\n}\n\nexport interface CreateContainerRequest {\n name: string;\n project_name: string;\n description?: string;\n port?: number;\n desired_count?: number;\n cpu?: number;\n memory?: number;\n environment_vars?: Record<string, string>;\n health_check_path?: string;\n ecr_image_uri: string;\n ecr_repository_uri?: string;\n image_tag?: string;\n architecture?: ContainerArchitecture;\n}\n\nexport interface CreateContainerResponse {\n success: boolean;\n data: CloudContainer;\n message: string;\n creditsDeducted: number;\n creditsRemaining: number;\n stackName: string;\n polling: {\n endpoint: string;\n intervalMs: number;\n expectedDurationMs: number;\n };\n}\n\nexport interface ContainerListResponse {\n success: boolean;\n data: CloudContainer[];\n}\n\nexport interface ContainerGetResponse {\n success: boolean;\n data: CloudContainer;\n}\n\nexport interface ContainerDeleteResponse {\n success: boolean;\n message?: string;\n}\n\nexport interface ContainerHealthResponse {\n success: boolean;\n data: {\n status: string;\n healthy: boolean;\n lastCheck: string | null;\n uptime: number | null;\n };\n}\n\n// ─── Auth Types ─────────────────────────────────────────────────────────────\n\nexport type DevicePlatform = \"ios\" | \"android\" | \"macos\" | \"windows\" | \"linux\" | \"web\";\n\nexport interface DeviceAuthRequest {\n deviceId: string;\n platform: DevicePlatform;\n appVersion: string;\n deviceName?: string;\n}\n\nexport interface DeviceAuthResponse {\n success: boolean;\n data: {\n apiKey: string;\n userId: string;\n organizationId: string;\n credits: number;\n isNew: boolean;\n };\n}\n\nexport interface CloudCredentials {\n apiKey: string;\n userId: string;\n organizationId: string;\n authenticatedAt: number;\n}\n\n// ─── Credits Types ──────────────────────────────────────────────────────────\n\nexport interface CreditBalanceResponse {\n success: boolean;\n data: {\n balance: number;\n currency: string;\n };\n}\n\nexport interface CreditSummaryResponse {\n success: boolean;\n data: {\n balance: number;\n totalSpent: number;\n totalAdded: number;\n recentTransactions: CreditTransaction[];\n };\n}\n\nexport interface CreditTransaction {\n id: string;\n amount: number;\n description: string;\n type: \"credit\" | \"debit\";\n created_at: string;\n}\n\n// ─── Bridge Types ───────────────────────────────────────────────────────────\n\nexport type BridgeConnectionState = \"disconnected\" | \"connecting\" | \"connected\" | \"reconnecting\";\n\nexport interface BridgeMessage {\n jsonrpc: \"2.0\";\n id?: string | number;\n method?: string;\n params?: Record<string, unknown>;\n result?: unknown;\n error?: BridgeError;\n}\n\nexport interface BridgeError {\n code: number;\n message: string;\n data?: unknown;\n}\n\nexport type BridgeMessageHandler = (message: BridgeMessage) => void;\n\nexport interface BridgeConnection {\n containerId: string;\n state: BridgeConnectionState;\n connectedAt: number | null;\n lastHeartbeat: number | null;\n reconnectAttempts: number;\n}\n\n// ─── Managed Gateway Relay Types ───────────────────────────────────────────\n\nexport interface GatewayRelaySession {\n id: string;\n organizationId: string;\n userId: string;\n runtimeAgentId: string;\n agentName: string | null;\n platform: \"local-runtime\";\n createdAt: string;\n lastSeenAt: string;\n}\n\nexport interface GatewayRelayRequest {\n jsonrpc: \"2.0\";\n id?: string | number;\n method: string;\n params?: Record<string, unknown>;\n}\n\nexport interface GatewayRelayResponse {\n jsonrpc: \"2.0\";\n id?: string | number;\n result?: Record<string, unknown>;\n error?: BridgeError;\n}\n\nexport interface GatewayRelayRequestEnvelope {\n requestId: string;\n rpc: GatewayRelayRequest;\n queuedAt: string;\n}\n\nexport interface RegisterGatewayRelaySessionResponse {\n success: boolean;\n data: {\n session: GatewayRelaySession;\n };\n}\n\nexport interface PollGatewayRelayResponse {\n success: boolean;\n data: {\n request: GatewayRelayRequestEnvelope | null;\n };\n}\n\n// ─── Snapshot / Backup Types ────────────────────────────────────────────────\n\nexport type SnapshotType = \"manual\" | \"auto\" | \"pre-eviction\";\n\nexport interface AgentSnapshot {\n id: string;\n containerId: string;\n organizationId: string;\n snapshotType: SnapshotType;\n storageUrl: string;\n sizeBytes: number;\n agentConfig: Record<string, unknown>;\n metadata: Record<string, unknown>;\n created_at: string;\n}\n\nexport interface CreateSnapshotRequest {\n snapshotType?: SnapshotType;\n metadata?: Record<string, unknown>;\n}\n\nexport interface CreateSnapshotResponse {\n success: boolean;\n data: AgentSnapshot;\n}\n\nexport interface SnapshotListResponse {\n success: boolean;\n data: AgentSnapshot[];\n}\n\nexport interface RestoreSnapshotRequest {\n snapshotId: string;\n}\n\nexport interface RestoreSnapshotResponse {\n success: boolean;\n message: string;\n}\n\n// ─── Cloud Config Types ─────────────────────────────────────────────────────\n\nexport type InferenceMode = \"cloud\" | \"byok\" | \"local\";\n\nexport interface CloudPluginConfig {\n /** Enable ElizaCloud integration. */\n enabled: boolean;\n /** ElizaCloud API base URL. */\n baseUrl: string;\n /** Stored API key for authenticated requests. */\n apiKey?: string;\n /** Device ID used for auto-signup authentication. */\n deviceId?: string;\n /** Platform identifier. */\n platform?: DevicePlatform;\n /** Inference mode: cloud (ElizaCloud proxied), byok (user keys), local (no cloud). */\n inferenceMode: InferenceMode;\n /** Auto-deploy agents to cloud on creation. */\n autoProvision: boolean;\n /** Bridge reconnection settings. */\n bridge: {\n reconnectIntervalMs: number;\n maxReconnectAttempts: number;\n heartbeatIntervalMs: number;\n };\n /** Auto-backup settings. */\n backup: {\n autoBackupIntervalMs: number;\n maxSnapshots: number;\n };\n /** Default container settings for new deployments. */\n container: {\n defaultImage: string;\n defaultArchitecture: ContainerArchitecture;\n defaultCpu: number;\n defaultMemory: number;\n defaultPort: number;\n };\n}\n\nexport const DEFAULT_CLOUD_CONFIG: CloudPluginConfig = {\n enabled: false,\n baseUrl: \"https://www.elizacloud.ai/api/v1\",\n inferenceMode: \"cloud\",\n autoProvision: false,\n bridge: {\n reconnectIntervalMs: 3000,\n maxReconnectAttempts: 20,\n heartbeatIntervalMs: 30_000,\n },\n backup: {\n autoBackupIntervalMs: 3_600_000, // 1 hour\n maxSnapshots: 10,\n },\n container: {\n defaultImage: \"elizaos/agent:latest\",\n defaultArchitecture: \"arm64\",\n defaultCpu: 1792,\n defaultMemory: 1792,\n defaultPort: 3000,\n },\n};\n\n// ─── API Error Types ────────────────────────────────────────────────────────\n\nexport type { CloudApiErrorBody } from \"@elizaos/cloud-sdk\";\nexport {\n CloudApiError,\n InsufficientCreditsError,\n} from \"@elizaos/cloud-sdk\";\n",
6
+ "/**\n * CloudBridgeService — WebSocket bridge to cloud-hosted agents.\n *\n * Establishes a JSON-RPC 2.0 WebSocket connection per container, allowing\n * the local eliza client to send messages to and receive events from\n * cloud-hosted ElizaOS agents. Handles reconnection with exponential\n * backoff and heartbeat keepalive.\n */\n\nimport { type IAgentRuntime, logger, Service } from \"@elizaos/core\";\nimport { WebSocket } from \"undici\";\nimport type {\n BridgeConnection,\n BridgeConnectionState,\n BridgeMessage,\n BridgeMessageHandler,\n} from \"../types/cloud\";\nimport { DEFAULT_CLOUD_CONFIG } from \"../types/cloud\";\nimport type { CloudAuthService } from \"./cloud-auth\";\n\ninterface ActiveConnection {\n ws: WebSocket | null;\n state: BridgeConnectionState;\n connectedAt: number | null;\n lastHeartbeat: number | null;\n reconnectAttempts: number;\n heartbeatTimer: ReturnType<typeof setInterval> | null;\n reconnectTimer: ReturnType<typeof setTimeout> | null;\n handlers: Set<BridgeMessageHandler>;\n pendingRequests: Map<\n string | number,\n {\n resolve: (value: unknown) => void;\n reject: (reason: Error) => void;\n timeout: ReturnType<typeof setTimeout>;\n }\n >;\n nextRequestId: number;\n}\n\nfunction requireWebSocket(conn: ActiveConnection, containerId: string): WebSocket {\n if (!conn.ws) {\n throw new Error(`WebSocket not connected for container ${containerId}`);\n }\n return conn.ws;\n}\n\nexport class CloudBridgeService extends Service {\n static serviceType = \"CLOUD_BRIDGE\";\n capabilityDescription = \"WebSocket bridge to cloud-hosted ElizaOS agents\";\n\n private authService!: CloudAuthService;\n private readonly bridgeConfig = DEFAULT_CLOUD_CONFIG.bridge;\n private connections: Map<string, ActiveConnection> = new Map();\n\n static async start(runtime: IAgentRuntime): Promise<Service> {\n const service = new CloudBridgeService(runtime);\n await service.initialize();\n return service;\n }\n\n async stop(): Promise<void> {\n for (const [containerId] of this.connections) {\n await this.disconnect(containerId);\n }\n logger.info(\"[CloudBridge] Service stopped\");\n }\n\n private async initialize(): Promise<void> {\n const auth = this.runtime.getService(\"CLOUD_AUTH\");\n if (!auth) {\n logger.debug(\"[CloudBridge] CloudAuthService not available\");\n return;\n }\n this.authService = auth as CloudAuthService;\n logger.info(\"[CloudBridge] Service initialized\");\n }\n\n // ─── Connection Management ─────────────────────────────────────────────\n\n async connect(containerId: string): Promise<void> {\n const existing = this.connections.get(containerId);\n if (existing) {\n if (existing.state === \"connected\" || existing.state === \"connecting\") {\n logger.debug(`[CloudBridge] Already connected/connecting to ${containerId}`);\n return;\n }\n }\n\n await this.establishConnection(containerId, 0);\n }\n\n async disconnect(containerId: string): Promise<void> {\n const conn = this.connections.get(containerId);\n if (!conn) return;\n\n if (conn.heartbeatTimer) clearInterval(conn.heartbeatTimer);\n if (conn.reconnectTimer) clearTimeout(conn.reconnectTimer);\n\n // Reject all pending requests\n for (const [, pending] of conn.pendingRequests) {\n clearTimeout(pending.timeout);\n pending.reject(new Error(\"Bridge disconnected\"));\n }\n conn.pendingRequests.clear();\n\n const ws = conn.ws;\n if (ws && (ws.readyState === WebSocket.OPEN || ws.readyState === WebSocket.CONNECTING)) {\n ws.close(1000, \"Client disconnect\");\n }\n\n this.connections.delete(containerId);\n logger.info(`[CloudBridge] Disconnected from ${containerId}`);\n }\n\n private async establishConnection(containerId: string, reconnectAttempts: number): Promise<void> {\n const client = this.authService.getClient();\n const apiKey = this.authService.getApiKey();\n const wsUrl = client.buildWsUrl(`/agent-bridge/${containerId}`);\n\n // Append API key as query parameter for WebSocket auth\n const authUrl = apiKey ? `${wsUrl}?token=${encodeURIComponent(apiKey)}` : wsUrl;\n const ws = new WebSocket(authUrl);\n\n const conn: ActiveConnection = {\n ws,\n state: \"connecting\",\n connectedAt: null,\n lastHeartbeat: null,\n reconnectAttempts,\n heartbeatTimer: null,\n reconnectTimer: null,\n handlers: this.connections.get(containerId)?.handlers ?? new Set(),\n pendingRequests: new Map(),\n nextRequestId: 1,\n };\n\n this.connections.set(containerId, conn);\n\n ws.addEventListener(\"open\", () => {\n conn.state = \"connected\";\n conn.connectedAt = Date.now();\n conn.reconnectAttempts = 0;\n logger.info(`[CloudBridge] Connected to agent ${containerId}`);\n\n // Start heartbeat\n conn.heartbeatTimer = setInterval(() => {\n this.sendHeartbeat(containerId);\n }, this.bridgeConfig.heartbeatIntervalMs);\n });\n\n ws.addEventListener(\"message\", (event) => {\n const raw = event.data;\n const data =\n typeof raw === \"string\" ? raw : raw instanceof Buffer ? raw.toString(\"utf-8\") : String(raw);\n const message = JSON.parse(data) as BridgeMessage;\n\n // Handle heartbeat responses\n if (message.method === \"heartbeat.ack\") {\n conn.lastHeartbeat = Date.now();\n return;\n }\n\n // Handle responses to pending requests\n if (message.id !== undefined && !message.method) {\n const pending = conn.pendingRequests.get(message.id);\n if (pending) {\n clearTimeout(pending.timeout);\n conn.pendingRequests.delete(message.id);\n if (message.error) {\n pending.reject(new Error(message.error.message));\n } else {\n pending.resolve(message.result);\n }\n return;\n }\n }\n\n // Dispatch to handlers\n for (const handler of conn.handlers) {\n handler(message);\n }\n });\n\n ws.addEventListener(\"close\", (event) => {\n conn.state = \"disconnected\";\n if (conn.heartbeatTimer) clearInterval(conn.heartbeatTimer);\n\n // Don't reconnect on clean close\n if (event.code === 1000) {\n logger.info(`[CloudBridge] Clean disconnect from ${containerId}`);\n return;\n }\n\n logger.warn(\n `[CloudBridge] Connection lost to ${containerId} (code=${event.code}, reason=${event.reason})`\n );\n this.scheduleReconnect(containerId, conn.reconnectAttempts + 1);\n });\n\n ws.addEventListener(\"error\", () => {\n logger.error(`[CloudBridge] WebSocket error for ${containerId}`);\n });\n }\n\n private scheduleReconnect(containerId: string, attempt: number): void {\n if (attempt > this.bridgeConfig.maxReconnectAttempts) {\n logger.error(\n `[CloudBridge] Max reconnect attempts (${this.bridgeConfig.maxReconnectAttempts}) reached for ${containerId}`\n );\n this.connections.delete(containerId);\n return;\n }\n\n // Exponential backoff with jitter: base * 2^attempt + random jitter\n const base = this.bridgeConfig.reconnectIntervalMs;\n const delay = Math.min(base * 2 ** Math.min(attempt, 5), 120_000);\n const jitter = Math.floor(Math.random() * 1000);\n\n logger.info(\n `[CloudBridge] Reconnecting to ${containerId} in ${Math.round((delay + jitter) / 1000)}s (attempt ${attempt})`\n );\n\n const conn = this.connections.get(containerId);\n if (conn) {\n conn.state = \"reconnecting\";\n conn.reconnectTimer = setTimeout(() => {\n this.establishConnection(containerId, attempt);\n }, delay + jitter);\n }\n }\n\n private sendHeartbeat(containerId: string): void {\n const conn = this.connections.get(containerId);\n if (!conn || conn.state !== \"connected\") return;\n\n const message: BridgeMessage = {\n jsonrpc: \"2.0\",\n method: \"heartbeat\",\n params: { timestamp: Date.now() },\n };\n\n requireWebSocket(conn, containerId).send(JSON.stringify(message));\n }\n\n // ─── Messaging ─────────────────────────────────────────────────────────\n\n /**\n * Send a JSON-RPC request and wait for a response.\n */\n async sendRequest(\n containerId: string,\n method: string,\n params: Record<string, unknown>,\n timeoutMs = 60_000\n ): Promise<unknown> {\n const conn = this.connections.get(containerId);\n if (!conn || conn.state !== \"connected\") {\n throw new Error(`Not connected to container ${containerId}`);\n }\n\n const id = conn.nextRequestId++;\n const message: BridgeMessage = {\n jsonrpc: \"2.0\",\n id,\n method,\n params,\n };\n\n return new Promise((resolve, reject) => {\n const timeout = setTimeout(() => {\n conn.pendingRequests.delete(id);\n reject(new Error(`Request ${method} timed out after ${timeoutMs}ms`));\n }, timeoutMs);\n\n conn.pendingRequests.set(id, { resolve, reject, timeout });\n requireWebSocket(conn, containerId).send(JSON.stringify(message));\n });\n }\n\n /**\n * Send a one-way notification (no response expected).\n */\n sendNotification(containerId: string, method: string, params: Record<string, unknown>): void {\n const conn = this.connections.get(containerId);\n if (!conn || conn.state !== \"connected\") {\n throw new Error(`Not connected to container ${containerId}`);\n }\n\n const message: BridgeMessage = {\n jsonrpc: \"2.0\",\n method,\n params,\n };\n\n requireWebSocket(conn, containerId).send(JSON.stringify(message));\n }\n\n /**\n * Send a chat message to the cloud agent and get the response.\n */\n async sendChatMessage(\n containerId: string,\n text: string,\n roomId?: string,\n metadata?: Record<string, unknown>\n ): Promise<{ text: string; metadata?: Record<string, unknown> }> {\n const result = await this.sendRequest(containerId, \"message.send\", {\n text,\n roomId,\n metadata,\n });\n return result as { text: string; metadata?: Record<string, unknown> };\n }\n\n /**\n * Request the cloud agent's current status.\n */\n async getAgentStatus(containerId: string): Promise<Record<string, unknown>> {\n const result = await this.sendRequest(containerId, \"status.get\", {});\n return result as Record<string, unknown>;\n }\n\n /**\n * Update the cloud agent's configuration.\n */\n async updateAgentConfig(containerId: string, config: Record<string, unknown>): Promise<void> {\n await this.sendRequest(containerId, \"config.update\", config);\n }\n\n // ─── Event Handlers ────────────────────────────────────────────────────\n\n onMessage(containerId: string, handler: BridgeMessageHandler): () => void {\n let conn = this.connections.get(containerId);\n if (!conn) {\n // Pre-register handler before connection is established\n conn = {\n ws: null,\n state: \"disconnected\",\n connectedAt: null,\n lastHeartbeat: null,\n reconnectAttempts: 0,\n heartbeatTimer: null,\n reconnectTimer: null,\n handlers: new Set(),\n pendingRequests: new Map(),\n nextRequestId: 1,\n };\n this.connections.set(containerId, conn);\n }\n\n conn.handlers.add(handler);\n\n // Return unsubscribe function\n return () => {\n conn.handlers.delete(handler);\n };\n }\n\n // ─── Accessors ─────────────────────────────────────────────────────────\n\n getConnectionState(containerId: string): BridgeConnectionState {\n return this.connections.get(containerId)?.state ?? \"disconnected\";\n }\n\n getConnectionInfo(containerId: string): BridgeConnection | null {\n const conn = this.connections.get(containerId);\n if (!conn) return null;\n\n return {\n containerId,\n state: conn.state,\n connectedAt: conn.connectedAt,\n lastHeartbeat: conn.lastHeartbeat,\n reconnectAttempts: conn.reconnectAttempts,\n };\n }\n\n getConnectedContainerIds(): string[] {\n const ids: string[] = [];\n for (const [id, conn] of this.connections) {\n if (conn.state === \"connected\") ids.push(id);\n }\n return ids;\n }\n}\n"
7
+ ],
8
+ "mappings": "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",
9
+ "debugId": "0C81D369BEE5065864756E2164756E21",
10
+ "names": []
11
+ }
@@ -6,7 +6,7 @@
6
6
  * minutes), so `waitForDeployment` polls with exponential backoff.
7
7
  */
8
8
  import { type IAgentRuntime, Service } from "@elizaos/core";
9
- import type { CloudContainer, ContainerHealthResponse, CreateContainerRequest, CreateContainerResponse } from "../types/cloud";
9
+ import type { CloudContainer, ContainerHealthResponse, CreateContainerRequest, CreateContainerResponse, PromoteVfsToCloudContainerRequest, PromoteVfsToCloudContainerResponse, RequestCodingAgentContainerRequest, RequestCodingAgentContainerResponse, SyncCloudCodingContainerRequest, SyncCloudCodingContainerResponse } from "../types/cloud";
10
10
  export declare class CloudContainerService extends Service {
11
11
  static serviceType: string;
12
12
  capabilityDescription: string;
@@ -33,9 +33,13 @@ export declare class CloudContainerService extends Service {
33
33
  waitForDeployment(containerId: string, timeoutMs?: number): Promise<CloudContainer>;
34
34
  private startHealthMonitoring;
35
35
  getContainerHealth(containerId: string): Promise<ContainerHealthResponse>;
36
+ promoteVfsToCloudContainer(request: PromoteVfsToCloudContainerRequest): Promise<PromoteVfsToCloudContainerResponse>;
37
+ requestCodingAgentContainer(request: RequestCodingAgentContainerRequest): Promise<RequestCodingAgentContainerResponse>;
38
+ syncCodingContainerChanges(containerId: string, request: SyncCloudCodingContainerRequest): Promise<SyncCloudCodingContainerResponse>;
36
39
  getTrackedContainers(): CloudContainer[];
37
40
  getTrackedContainer(containerId: string): CloudContainer | undefined;
38
41
  isContainerRunning(containerId: string): boolean;
39
42
  getContainerUrl(containerId: string): string | null;
43
+ private isAuthenticated;
40
44
  }
41
45
  //# sourceMappingURL=cloud-container.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cloud-container.d.ts","sourceRoot":"","sources":["../../services/cloud-container.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,aAAa,EAAU,OAAO,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,KAAK,EACV,cAAc,EAGd,uBAAuB,EAEvB,sBAAsB,EACtB,uBAAuB,EACxB,MAAM,gBAAgB,CAAC;AAYxB,qBAAa,qBAAsB,SAAQ,OAAO;IAChD,MAAM,CAAC,WAAW,SAAqB;IACvC,qBAAqB,SAAgE;IAErF,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAkC;IACpE,OAAO,CAAC,OAAO,CAA4C;WAE9C,KAAK,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAMtD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAQb,UAAU;IAuCxB,OAAO,CAAC,SAAS;IAMX,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAuClF,cAAc,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAM3C,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAa1D,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBzD;;;OAGG;IACH,OAAO,CAAC,YAAY;IA+CpB;;;OAGG;IACG,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,SAAU,GAAG,OAAO,CAAC,cAAc,CAAC;IA2B1F,OAAO,CAAC,qBAAqB;IAqBvB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAO/E,oBAAoB,IAAI,cAAc,EAAE;IAIxC,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAIpE,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAIhD,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;CAGpD"}
1
+ {"version":3,"file":"cloud-container.d.ts","sourceRoot":"","sources":["../../src/services/cloud-container.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,aAAa,EAAU,OAAO,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,KAAK,EACV,cAAc,EAGd,uBAAuB,EAEvB,sBAAsB,EACtB,uBAAuB,EACvB,iCAAiC,EACjC,kCAAkC,EAClC,kCAAkC,EAClC,mCAAmC,EACnC,+BAA+B,EAC/B,gCAAgC,EACjC,MAAM,gBAAgB,CAAC;AAYxB,qBAAa,qBAAsB,SAAQ,OAAO;IAChD,MAAM,CAAC,WAAW,SAAqB;IACvC,qBAAqB,SAAgE;IAErF,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAkC;IACpE,OAAO,CAAC,OAAO,CAA4C;WAE9C,KAAK,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAMtD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAQb,UAAU;IAuCxB,OAAO,CAAC,SAAS;IAMX,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAuClF,cAAc,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAM3C,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAa1D,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBzD;;;OAGG;IACH,OAAO,CAAC,YAAY;IA+CpB;;;OAGG;IACG,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,SAAU,GAAG,OAAO,CAAC,cAAc,CAAC;IA2B1F,OAAO,CAAC,qBAAqB;IAqBvB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAOzE,0BAA0B,CAC9B,OAAO,EAAE,iCAAiC,GACzC,OAAO,CAAC,kCAAkC,CAAC;IAoBxC,2BAA2B,CAC/B,OAAO,EAAE,kCAAkC,GAC1C,OAAO,CAAC,mCAAmC,CAAC;IAoBzC,0BAA0B,CAC9B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,+BAA+B,GACvC,OAAO,CAAC,gCAAgC,CAAC;IAsB5C,oBAAoB,IAAI,cAAc,EAAE;IAIxC,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAIpE,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAIhD,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAInD,OAAO,CAAC,eAAe;CAGxB"}