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

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 (378) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +220 -0
  3. package/auto-enable.ts +17 -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 +12165 -2277
  8. package/dist/cjs/index.node.js.map +135 -28
  9. package/dist/cloud/auth.d.ts +19 -0
  10. package/dist/cloud/auth.d.ts.map +1 -0
  11. package/dist/cloud/auth.js +330 -0
  12. package/dist/cloud/auth.js.map +12 -0
  13. package/dist/cloud/backup.d.ts +18 -0
  14. package/dist/cloud/backup.d.ts.map +1 -0
  15. package/dist/cloud/backup.js +63 -0
  16. package/dist/cloud/backup.js.map +10 -0
  17. package/dist/cloud/base-url.d.ts +3 -0
  18. package/dist/cloud/base-url.d.ts.map +1 -0
  19. package/dist/cloud/base-url.js +77 -0
  20. package/dist/cloud/base-url.js.map +10 -0
  21. package/dist/cloud/bridge-client.d.ts +126 -0
  22. package/dist/cloud/bridge-client.d.ts.map +1 -0
  23. package/dist/cloud/bridge-client.js +432 -0
  24. package/dist/cloud/bridge-client.js.map +11 -0
  25. package/dist/cloud/cloud-api-key.d.ts +26 -0
  26. package/dist/cloud/cloud-api-key.d.ts.map +1 -0
  27. package/dist/cloud/cloud-api-key.js +60 -0
  28. package/dist/cloud/cloud-api-key.js.map +10 -0
  29. package/dist/cloud/cloud-manager.d.ts +33 -0
  30. package/dist/cloud/cloud-manager.d.ts.map +1 -0
  31. package/dist/cloud/cloud-manager.js +853 -0
  32. package/dist/cloud/cloud-manager.js.map +16 -0
  33. package/dist/cloud/cloud-proxy.d.ts +20 -0
  34. package/dist/cloud/cloud-proxy.d.ts.map +1 -0
  35. package/dist/cloud/cloud-proxy.js +54 -0
  36. package/dist/cloud/cloud-proxy.js.map +10 -0
  37. package/dist/cloud/cloud-wallet.d.ts +94 -0
  38. package/dist/cloud/cloud-wallet.d.ts.map +1 -0
  39. package/dist/cloud/cloud-wallet.js +5195 -0
  40. package/dist/cloud/cloud-wallet.js.map +92 -0
  41. package/dist/cloud/index.d.ts +9 -0
  42. package/dist/cloud/index.d.ts.map +1 -0
  43. package/dist/cloud/index.js +30 -0
  44. package/dist/cloud/index.js.map +9 -0
  45. package/dist/cloud/reconnect.d.ts +26 -0
  46. package/dist/cloud/reconnect.d.ts.map +1 -0
  47. package/dist/cloud/reconnect.js +104 -0
  48. package/dist/cloud/reconnect.js.map +10 -0
  49. package/dist/cloud/validate-url.d.ts +2 -0
  50. package/dist/cloud/validate-url.d.ts.map +1 -0
  51. package/dist/cloud/validate-url.js +174 -0
  52. package/dist/cloud/validate-url.js.map +10 -0
  53. package/dist/cloud-providers/cloud-status.d.ts.map +1 -1
  54. package/dist/cloud-providers/cloud-status.js +78 -0
  55. package/dist/cloud-providers/cloud-status.js.map +10 -0
  56. package/dist/cloud-providers/container-health.d.ts.map +1 -1
  57. package/dist/cloud-providers/container-health.js +74 -0
  58. package/dist/cloud-providers/container-health.js.map +10 -0
  59. package/dist/cloud-providers/credit-balance.d.ts.map +1 -1
  60. package/dist/cloud-providers/credit-balance.js +85 -0
  61. package/dist/cloud-providers/credit-balance.js.map +10 -0
  62. package/dist/cloud-providers/index.d.ts.map +1 -1
  63. package/dist/cloud-providers/index.js +24 -0
  64. package/dist/cloud-providers/index.js.map +9 -0
  65. package/dist/cloud-providers/model-registry.d.ts.map +1 -1
  66. package/dist/cloud-providers/model-registry.js +71 -0
  67. package/dist/cloud-providers/model-registry.js.map +10 -0
  68. package/dist/index.browser.d.ts +4 -3
  69. package/dist/index.browser.d.ts.map +1 -1
  70. package/dist/index.d.ts +18 -0
  71. package/dist/index.d.ts.map +1 -1
  72. package/dist/index.js +12851 -0
  73. package/dist/index.js.map +145 -0
  74. package/dist/index.node.d.ts +14 -2
  75. package/dist/index.node.d.ts.map +1 -1
  76. package/dist/init.d.ts.map +1 -1
  77. package/dist/init.js +169 -0
  78. package/dist/init.js.map +12 -0
  79. package/dist/lib/cloud-connection.d.ts +78 -0
  80. package/dist/lib/cloud-connection.d.ts.map +1 -0
  81. package/dist/lib/cloud-connection.js +731 -0
  82. package/dist/lib/cloud-connection.js.map +14 -0
  83. package/dist/lib/cloud-secrets.d.ts +23 -0
  84. package/dist/lib/cloud-secrets.d.ts.map +1 -0
  85. package/dist/lib/cloud-secrets.js +64 -0
  86. package/dist/lib/cloud-secrets.js.map +10 -0
  87. package/dist/lib/config-env.d.ts +5 -0
  88. package/dist/lib/config-env.d.ts.map +1 -0
  89. package/dist/lib/config-env.js +191 -0
  90. package/dist/lib/config-env.js.map +11 -0
  91. package/dist/lib/config-like.d.ts +40 -0
  92. package/dist/lib/config-like.d.ts.map +1 -0
  93. package/dist/lib/config-like.js +103 -0
  94. package/dist/lib/config-like.js.map +10 -0
  95. package/dist/lib/credential-type-map.d.ts +53 -0
  96. package/dist/lib/credential-type-map.d.ts.map +1 -0
  97. package/dist/lib/credential-type-map.js +88 -0
  98. package/dist/lib/credential-type-map.js.map +10 -0
  99. package/dist/lib/feature-flags.d.ts +2 -0
  100. package/dist/lib/feature-flags.d.ts.map +1 -0
  101. package/dist/lib/feature-flags.js +40 -0
  102. package/dist/lib/feature-flags.js.map +10 -0
  103. package/dist/lib/http.d.ts +22 -0
  104. package/dist/lib/http.d.ts.map +1 -0
  105. package/dist/lib/http.js +107 -0
  106. package/dist/lib/http.js.map +10 -0
  107. package/dist/lib/server-cloud-tts.d.ts +34 -0
  108. package/dist/lib/server-cloud-tts.d.ts.map +1 -0
  109. package/dist/lib/server-cloud-tts.js +549 -0
  110. package/dist/lib/server-cloud-tts.js.map +13 -0
  111. package/dist/lib/state-paths.d.ts +4 -0
  112. package/dist/lib/state-paths.d.ts.map +1 -0
  113. package/dist/lib/state-paths.js +52 -0
  114. package/dist/lib/state-paths.js.map +10 -0
  115. package/dist/lib/tts-debug.d.ts +4 -0
  116. package/dist/lib/tts-debug.d.ts.map +1 -0
  117. package/dist/lib/tts-debug.js +57 -0
  118. package/dist/lib/tts-debug.js.map +10 -0
  119. package/dist/models/embeddings.d.ts.map +1 -1
  120. package/dist/models/embeddings.js +319 -0
  121. package/dist/models/embeddings.js.map +13 -0
  122. package/dist/models/image.d.ts.map +1 -1
  123. package/dist/models/image.js +374 -0
  124. package/dist/models/image.js.map +14 -0
  125. package/dist/models/index.d.ts +1 -2
  126. package/dist/models/index.d.ts.map +1 -1
  127. package/dist/models/index.js +1386 -0
  128. package/dist/models/index.js.map +20 -0
  129. package/dist/models/research.d.ts.map +1 -1
  130. package/dist/models/research.js +324 -0
  131. package/dist/models/research.js.map +13 -0
  132. package/dist/models/speech.d.ts.map +1 -1
  133. package/dist/models/speech.js +273 -0
  134. package/dist/models/speech.js.map +13 -0
  135. package/dist/models/text.d.ts +5 -2
  136. package/dist/models/text.d.ts.map +1 -1
  137. package/dist/models/text.js +803 -0
  138. package/dist/models/text.js.map +15 -0
  139. package/dist/models/tokenization.d.ts.map +1 -1
  140. package/dist/models/tokenization.js +65 -0
  141. package/dist/models/tokenization.js.map +10 -0
  142. package/dist/models/transcription.d.ts.map +1 -1
  143. package/dist/models/transcription.js +283 -0
  144. package/dist/models/transcription.js.map +13 -0
  145. package/dist/node/index.d.ts +2 -2
  146. package/dist/node/index.node.js +12170 -2266
  147. package/dist/node/index.node.js.map +135 -28
  148. package/dist/onboarding.d.ts +35 -0
  149. package/dist/onboarding.d.ts.map +1 -0
  150. package/dist/onboarding.js +883 -0
  151. package/dist/onboarding.js.map +14 -0
  152. package/dist/plugin.d.ts +20 -0
  153. package/dist/plugin.d.ts.map +1 -0
  154. package/dist/plugin.js +7611 -0
  155. package/dist/plugin.js.map +104 -0
  156. package/dist/providers/openai.d.ts.map +1 -1
  157. package/dist/providers/openai.js +127 -0
  158. package/dist/providers/openai.js.map +11 -0
  159. package/dist/register-routes.d.ts +2 -0
  160. package/dist/register-routes.d.ts.map +1 -0
  161. package/dist/register-routes.js +7612 -0
  162. package/dist/register-routes.js.map +105 -0
  163. package/dist/routes/cloud-billing-routes.d.ts +9 -0
  164. package/dist/routes/cloud-billing-routes.d.ts.map +1 -0
  165. package/dist/routes/cloud-billing-routes.js +807 -0
  166. package/dist/routes/cloud-billing-routes.js.map +14 -0
  167. package/dist/routes/cloud-compat-routes.d.ts +10 -0
  168. package/dist/routes/cloud-compat-routes.d.ts.map +1 -0
  169. package/dist/routes/cloud-compat-routes.js +538 -0
  170. package/dist/routes/cloud-compat-routes.js.map +14 -0
  171. package/dist/routes/cloud-features-routes.d.ts +9 -0
  172. package/dist/routes/cloud-features-routes.d.ts.map +1 -0
  173. package/dist/routes/cloud-features-routes.js +124 -0
  174. package/dist/routes/cloud-features-routes.js.map +11 -0
  175. package/dist/routes/cloud-provisioning.d.ts +14 -0
  176. package/dist/routes/cloud-provisioning.d.ts.map +1 -0
  177. package/dist/routes/cloud-provisioning.js +37 -0
  178. package/dist/routes/cloud-provisioning.js.map +10 -0
  179. package/dist/routes/cloud-relay-routes.d.ts +22 -0
  180. package/dist/routes/cloud-relay-routes.d.ts.map +1 -0
  181. package/dist/routes/cloud-relay-routes.js +60 -0
  182. package/dist/routes/cloud-relay-routes.js.map +10 -0
  183. package/dist/routes/cloud-routes-autonomous.d.ts +83 -0
  184. package/dist/routes/cloud-routes-autonomous.d.ts.map +1 -0
  185. package/dist/routes/cloud-routes-autonomous.js +6134 -0
  186. package/dist/routes/cloud-routes-autonomous.js.map +97 -0
  187. package/dist/routes/cloud-routes.d.ts +35 -0
  188. package/dist/routes/cloud-routes.d.ts.map +1 -0
  189. package/dist/routes/cloud-routes.js +6888 -0
  190. package/dist/routes/cloud-routes.js.map +100 -0
  191. package/dist/routes/cloud-status-routes-autonomous.d.ts +15 -0
  192. package/dist/routes/cloud-status-routes-autonomous.d.ts.map +1 -0
  193. package/dist/routes/cloud-status-routes-autonomous.js +396 -0
  194. package/dist/routes/cloud-status-routes-autonomous.js.map +13 -0
  195. package/dist/routes/cloud-status-routes.d.ts +4 -0
  196. package/dist/routes/cloud-status-routes.d.ts.map +1 -0
  197. package/dist/routes/cloud-status-routes.js +771 -0
  198. package/dist/routes/cloud-status-routes.js.map +15 -0
  199. package/dist/services/cloud-auth.d.ts +140 -5
  200. package/dist/services/cloud-auth.d.ts.map +1 -1
  201. package/dist/services/cloud-auth.js +363 -0
  202. package/dist/services/cloud-auth.js.map +12 -0
  203. package/dist/services/cloud-backup.d.ts.map +1 -1
  204. package/dist/services/cloud-backup.js +176 -0
  205. package/dist/services/cloud-backup.js.map +11 -0
  206. package/dist/services/cloud-bootstrap.d.ts +38 -0
  207. package/dist/services/cloud-bootstrap.d.ts.map +1 -0
  208. package/dist/services/cloud-bootstrap.js +84 -0
  209. package/dist/services/cloud-bootstrap.js.map +10 -0
  210. package/dist/services/cloud-bridge.d.ts +1 -1
  211. package/dist/services/cloud-bridge.d.ts.map +1 -1
  212. package/dist/services/cloud-bridge.js +308 -0
  213. package/dist/services/cloud-bridge.js.map +11 -0
  214. package/dist/services/cloud-container.d.ts.map +1 -1
  215. package/dist/services/cloud-container.js +241 -0
  216. package/dist/services/cloud-container.js.map +11 -0
  217. package/dist/services/cloud-credential-provider.d.ts +55 -0
  218. package/dist/services/cloud-credential-provider.d.ts.map +1 -0
  219. package/dist/services/cloud-credential-provider.js +190 -0
  220. package/dist/services/cloud-credential-provider.js.map +11 -0
  221. package/dist/services/cloud-managed-gateway-relay.d.ts +38 -0
  222. package/dist/services/cloud-managed-gateway-relay.d.ts.map +1 -0
  223. package/dist/services/cloud-managed-gateway-relay.js +479 -0
  224. package/dist/services/cloud-managed-gateway-relay.js.map +10 -0
  225. package/dist/services/cloud-model-registry.d.ts.map +1 -1
  226. package/dist/services/cloud-model-registry.js +175 -0
  227. package/dist/services/cloud-model-registry.js.map +10 -0
  228. package/dist/services/index.d.ts +3 -1
  229. package/dist/services/index.d.ts.map +1 -1
  230. package/dist/services/index.js +29 -0
  231. package/dist/services/index.js.map +9 -0
  232. package/dist/types/cloud.d.ts +41 -19
  233. package/dist/types/cloud.d.ts.map +1 -1
  234. package/dist/types/cloud.js +52 -0
  235. package/dist/types/cloud.js.map +10 -0
  236. package/dist/types/index.d.ts +1 -1
  237. package/dist/types/index.d.ts.map +1 -1
  238. package/dist/types/index.js +24 -0
  239. package/dist/types/index.js.map +9 -0
  240. package/dist/utils/cloud-api.d.ts +2 -27
  241. package/dist/utils/cloud-api.d.ts.map +1 -1
  242. package/dist/utils/cloud-api.js +33 -0
  243. package/dist/utils/cloud-api.js.map +10 -0
  244. package/dist/utils/cloud-sdk/client.d.ts +133 -0
  245. package/dist/utils/cloud-sdk/client.d.ts.map +1 -0
  246. package/dist/utils/cloud-sdk/client.js +3561 -0
  247. package/dist/utils/cloud-sdk/client.js.map +13 -0
  248. package/dist/utils/cloud-sdk/http.d.ts +37 -0
  249. package/dist/utils/cloud-sdk/http.d.ts.map +1 -0
  250. package/dist/utils/cloud-sdk/http.js +237 -0
  251. package/dist/utils/cloud-sdk/http.js.map +11 -0
  252. package/dist/utils/cloud-sdk/index.d.ts +6 -0
  253. package/dist/utils/cloud-sdk/index.d.ts.map +1 -0
  254. package/dist/utils/cloud-sdk/index.js +29 -0
  255. package/dist/utils/cloud-sdk/index.js.map +9 -0
  256. package/dist/utils/cloud-sdk/public-routes.d.ts +5377 -0
  257. package/dist/utils/cloud-sdk/public-routes.d.ts.map +1 -0
  258. package/dist/utils/cloud-sdk/public-routes.js +2950 -0
  259. package/dist/utils/cloud-sdk/public-routes.js.map +10 -0
  260. package/dist/utils/cloud-sdk/types.cloud-api.d.ts +101 -0
  261. package/dist/utils/cloud-sdk/types.cloud-api.d.ts.map +1 -0
  262. package/dist/utils/cloud-sdk/types.cloud-api.js +2 -0
  263. package/dist/utils/cloud-sdk/types.cloud-api.js.map +9 -0
  264. package/dist/utils/cloud-sdk/types.d.ts +655 -0
  265. package/dist/utils/cloud-sdk/types.d.ts.map +1 -0
  266. package/dist/utils/cloud-sdk/types.js +29 -0
  267. package/dist/utils/cloud-sdk/types.js.map +10 -0
  268. package/dist/utils/config.d.ts +7 -3
  269. package/dist/utils/config.d.ts.map +1 -1
  270. package/dist/utils/config.js +137 -0
  271. package/dist/utils/config.js.map +10 -0
  272. package/dist/utils/events.d.ts.map +1 -1
  273. package/dist/utils/events.js +43 -0
  274. package/dist/utils/events.js.map +10 -0
  275. package/dist/utils/helpers.d.ts.map +1 -1
  276. package/dist/utils/helpers.js +103 -0
  277. package/dist/utils/helpers.js.map +10 -0
  278. package/dist/utils/responses-output.d.ts +13 -0
  279. package/dist/utils/responses-output.d.ts.map +1 -0
  280. package/dist/utils/responses-output.js +102 -0
  281. package/dist/utils/responses-output.js.map +10 -0
  282. package/dist/utils/sdk-client.d.ts +5 -0
  283. package/dist/utils/sdk-client.d.ts.map +1 -0
  284. package/dist/utils/sdk-client.js +144 -0
  285. package/dist/utils/sdk-client.js.map +11 -0
  286. package/package.json +108 -19
  287. package/src/cloud/auth.ts +175 -0
  288. package/src/cloud/backup.ts +46 -0
  289. package/src/cloud/base-url.ts +62 -0
  290. package/src/cloud/bridge-client.ts +602 -0
  291. package/src/cloud/cloud-api-key.ts +80 -0
  292. package/src/cloud/cloud-manager.ts +163 -0
  293. package/src/cloud/cloud-proxy.ts +52 -0
  294. package/src/cloud/cloud-wallet.ts +341 -0
  295. package/src/cloud/index.ts +28 -0
  296. package/src/cloud/reconnect.ts +111 -0
  297. package/src/cloud/validate-url.ts +181 -0
  298. package/src/cloud-providers/cloud-status.ts +75 -0
  299. package/src/cloud-providers/container-health.ts +68 -0
  300. package/src/cloud-providers/credit-balance.ts +70 -0
  301. package/src/cloud-providers/index.ts +3 -0
  302. package/src/cloud-providers/model-registry.ts +74 -0
  303. package/src/index.browser.ts +10 -0
  304. package/src/index.node.ts +39 -0
  305. package/src/index.ts +347 -0
  306. package/src/init.ts +39 -0
  307. package/src/lib/cloud-connection.ts +663 -0
  308. package/src/lib/cloud-secrets.ts +58 -0
  309. package/src/lib/config-env.ts +168 -0
  310. package/src/lib/config-like.ts +149 -0
  311. package/src/lib/credential-type-map.ts +130 -0
  312. package/src/lib/feature-flags.ts +26 -0
  313. package/src/lib/http.ts +139 -0
  314. package/src/lib/server-cloud-tts.ts +609 -0
  315. package/src/lib/state-paths.ts +28 -0
  316. package/src/lib/tts-debug.ts +34 -0
  317. package/src/models/embeddings.ts +234 -0
  318. package/src/models/image.ts +219 -0
  319. package/src/models/index.ts +16 -0
  320. package/src/models/research.ts +265 -0
  321. package/src/models/speech.ts +78 -0
  322. package/src/models/text.ts +899 -0
  323. package/src/models/tokenization.ts +67 -0
  324. package/src/models/transcription.ts +97 -0
  325. package/src/onboarding.ts +396 -0
  326. package/src/plugin.ts +243 -0
  327. package/src/providers/openai.ts +16 -0
  328. package/src/register-routes.ts +6 -0
  329. package/src/routes/cloud-billing-routes.ts +754 -0
  330. package/src/routes/cloud-compat-routes.ts +314 -0
  331. package/src/routes/cloud-features-routes.ts +57 -0
  332. package/src/routes/cloud-provisioning.ts +37 -0
  333. package/src/routes/cloud-relay-routes.ts +89 -0
  334. package/src/routes/cloud-routes-autonomous.ts +996 -0
  335. package/src/routes/cloud-routes.ts +576 -0
  336. package/src/routes/cloud-status-routes-autonomous.ts +234 -0
  337. package/src/routes/cloud-status-routes.ts +73 -0
  338. package/src/services/cloud-auth.ts +567 -0
  339. package/src/services/cloud-backup.ts +208 -0
  340. package/src/services/cloud-bootstrap.ts +108 -0
  341. package/src/services/cloud-bridge.ts +386 -0
  342. package/src/services/cloud-container.ts +297 -0
  343. package/src/services/cloud-credential-provider.ts +210 -0
  344. package/src/services/cloud-managed-gateway-relay.ts +663 -0
  345. package/src/services/cloud-model-registry.ts +202 -0
  346. package/src/services/index.ts +17 -0
  347. package/{types → src/types}/cloud.ts +52 -29
  348. package/{types → src/types}/index.ts +6 -0
  349. package/src/utils/cloud-api.ts +10 -0
  350. package/src/utils/cloud-sdk/client.ts +735 -0
  351. package/src/utils/cloud-sdk/http.ts +291 -0
  352. package/src/utils/cloud-sdk/index.ts +23 -0
  353. package/src/utils/cloud-sdk/public-routes.ts +5070 -0
  354. package/src/utils/cloud-sdk/types.cloud-api.ts +120 -0
  355. package/src/utils/cloud-sdk/types.ts +762 -0
  356. package/src/utils/config.ts +174 -0
  357. package/src/utils/events.ts +37 -0
  358. package/src/utils/helpers.ts +107 -0
  359. package/src/utils/responses-output.ts +115 -0
  360. package/src/utils/sdk-client.ts +37 -0
  361. package/dist/actions/check-credits.d.ts +0 -6
  362. package/dist/actions/check-credits.d.ts.map +0 -1
  363. package/dist/actions/freeze-agent.d.ts +0 -9
  364. package/dist/actions/freeze-agent.d.ts.map +0 -1
  365. package/dist/actions/index.d.ts +0 -5
  366. package/dist/actions/index.d.ts.map +0 -1
  367. package/dist/actions/provision-agent.d.ts +0 -8
  368. package/dist/actions/provision-agent.d.ts.map +0 -1
  369. package/dist/actions/resume-agent.d.ts +0 -9
  370. package/dist/actions/resume-agent.d.ts.map +0 -1
  371. package/dist/build.d.ts +0 -3
  372. package/dist/build.d.ts.map +0 -1
  373. package/dist/generated/specs/specs.d.ts +0 -55
  374. package/dist/generated/specs/specs.d.ts.map +0 -1
  375. package/dist/models/object.d.ts +0 -4
  376. package/dist/models/object.d.ts.map +0 -1
  377. package/dist/utils/forwarded-settings.d.ts +0 -8
  378. package/dist/utils/forwarded-settings.d.ts.map +0 -1
@@ -0,0 +1,731 @@
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/cloud/base-url.ts
20
+ function isLoopbackHost(hostname) {
21
+ const normalized = hostname.toLowerCase();
22
+ return normalized === "localhost" || normalized === "::1" || normalized === "0:0:0:0:0:0:0:1" || normalized.startsWith("127.");
23
+ }
24
+ function trimApiPath(pathname) {
25
+ const normalized = pathname.trim().replace(/\/+$/, "");
26
+ if (!normalized)
27
+ return "";
28
+ if (normalized === "/api/v1")
29
+ return "";
30
+ if (normalized.endsWith("/api/v1")) {
31
+ return normalized.slice(0, -"/api/v1".length);
32
+ }
33
+ return normalized;
34
+ }
35
+ function normalizeCloudSiteUrl(rawUrl) {
36
+ const envOverride = process.env.ELIZAOS_CLOUD_BASE_URL?.trim();
37
+ const candidate = envOverride || rawUrl?.trim() || DEFAULT_CLOUD_SITE_URL;
38
+ try {
39
+ const parsed = new URL(candidate);
40
+ const pathname = trimApiPath(parsed.pathname);
41
+ const host = parsed.hostname.toLowerCase();
42
+ const preserveLocalOrigin = isLoopbackHost(host);
43
+ parsed.hash = "";
44
+ parsed.search = "";
45
+ if (!preserveLocalOrigin) {
46
+ parsed.protocol = "https:";
47
+ parsed.port = "";
48
+ }
49
+ parsed.pathname = pathname;
50
+ if (LEGACY_CLOUD_HOST_ALIASES.has(host)) {
51
+ parsed.hostname = "www.elizacloud.ai";
52
+ parsed.pathname = "";
53
+ }
54
+ return parsed.toString().replace(/\/{1,1024}$/, "");
55
+ } catch {
56
+ const safeCandidate = candidate.length > 8192 ? candidate.slice(0, 8192) : candidate;
57
+ return safeCandidate.replace(/\/{1,1024}$/, "");
58
+ }
59
+ }
60
+ function resolveCloudApiBaseUrl(rawUrl) {
61
+ return `${normalizeCloudSiteUrl(rawUrl)}/api/v1`;
62
+ }
63
+ var DEFAULT_CLOUD_SITE_URL = "https://www.elizacloud.ai", LEGACY_CLOUD_HOST_ALIASES;
64
+ var init_base_url = __esm(() => {
65
+ LEGACY_CLOUD_HOST_ALIASES = new Set([
66
+ "elizacloud.ai",
67
+ "www.elizacloud.ai"
68
+ ]);
69
+ });
70
+
71
+ // src/cloud/validate-url.ts
72
+ import dns from "node:dns";
73
+ import net from "node:net";
74
+ import { promisify } from "node:util";
75
+ function normalizeHostLike(value) {
76
+ return value.trim().toLowerCase().replace(/^\[|\]$/g, "");
77
+ }
78
+ function decodeIpv6MappedHex(mapped) {
79
+ const parts = mapped.split(":");
80
+ if (parts.length < 1 || parts.length > 2)
81
+ return null;
82
+ const parsed = parts.map((part) => {
83
+ if (!/^[0-9a-f]{1,4}$/i.test(part))
84
+ return Number.NaN;
85
+ return Number.parseInt(part, 16);
86
+ });
87
+ if (parsed.some((value) => !Number.isFinite(value)))
88
+ return null;
89
+ const [hi, lo] = parsed.length === 1 ? [0, parsed[0]] : parsed;
90
+ const octets = [hi >> 8, hi & 255, lo >> 8, lo & 255];
91
+ return octets.join(".");
92
+ }
93
+ function canonicalizeIpv6(ip) {
94
+ try {
95
+ return new URL(`http://[${ip}]/`).hostname.replace(/^\[|\]$/g, "");
96
+ } catch {
97
+ return null;
98
+ }
99
+ }
100
+ function normalizeIpForPolicy(ip) {
101
+ const base = normalizeHostLike(ip).split("%")[0];
102
+ if (!base)
103
+ return base;
104
+ let normalized = base;
105
+ if (net.isIP(normalized) === 6) {
106
+ normalized = canonicalizeIpv6(normalized) ?? normalized;
107
+ }
108
+ let mapped = null;
109
+ if (normalized.startsWith("::ffff:")) {
110
+ mapped = normalized.slice("::ffff:".length);
111
+ } else if (normalized.startsWith("0:0:0:0:0:ffff:")) {
112
+ mapped = normalized.slice("0:0:0:0:0:ffff:".length);
113
+ }
114
+ if (!mapped)
115
+ return normalized;
116
+ if (net.isIP(mapped) === 4)
117
+ return mapped;
118
+ return decodeIpv6MappedHex(mapped) ?? normalized;
119
+ }
120
+ function cidrV4(base, prefix) {
121
+ const parsed = parseIpv4ToInt(base);
122
+ if (parsed === null) {
123
+ throw new Error(`Invalid CIDR base IPv4 address: ${base}`);
124
+ }
125
+ const shift = 32 - prefix;
126
+ const mask = shift === 32 ? 0 : 4294967295 << shift >>> 0;
127
+ return { base: parsed & mask, mask };
128
+ }
129
+ function parseIpv4ToInt(ip) {
130
+ const parts = ip.split(".");
131
+ if (parts.length !== 4)
132
+ return null;
133
+ let value = 0;
134
+ for (const part of parts) {
135
+ if (!/^\d{1,3}$/.test(part))
136
+ return null;
137
+ const octet = Number.parseInt(part, 10);
138
+ if (!Number.isInteger(octet) || octet < 0 || octet > 255)
139
+ return null;
140
+ value = value << 8 | octet;
141
+ }
142
+ return value >>> 0;
143
+ }
144
+ function isBlockedIpv4(ip) {
145
+ const asInt = parseIpv4ToInt(ip);
146
+ if (asInt === null)
147
+ return true;
148
+ return BLOCKED_IPV4_CIDRS.some((cidr) => (asInt & cidr.mask) === cidr.base);
149
+ }
150
+ function isBlockedIpv6(ip) {
151
+ const normalized = ip.toLowerCase();
152
+ return normalized === "::" || normalized === "::1" || /^fe[89ab][0-9a-f]:/.test(normalized) || /^f[cd][0-9a-f]{2}:/i.test(normalized) || normalized.startsWith("ff");
153
+ }
154
+ function isBlockedIp(ip) {
155
+ const normalized = normalizeIpForPolicy(ip);
156
+ const family = net.isIP(normalized);
157
+ if (family === 4)
158
+ return isBlockedIpv4(normalized);
159
+ if (family === 6)
160
+ return isBlockedIpv6(normalized);
161
+ return false;
162
+ }
163
+ async function validateCloudBaseUrl(rawUrl) {
164
+ let parsed;
165
+ try {
166
+ parsed = new URL(rawUrl);
167
+ } catch {
168
+ return `Invalid cloud base URL: "${rawUrl}"`;
169
+ }
170
+ if (parsed.protocol !== "https:") {
171
+ return `Cloud base URL must use HTTPS, got "${parsed.protocol}" in "${rawUrl}"`;
172
+ }
173
+ const hostname = normalizeHostLike(parsed.hostname);
174
+ if (!hostname) {
175
+ return `Invalid cloud base URL: "${rawUrl}"`;
176
+ }
177
+ if (hostname === "localhost" || hostname.endsWith(".localhost") || hostname.endsWith(".local")) {
178
+ return `Cloud base URL "${rawUrl}" points to a blocked local hostname.`;
179
+ }
180
+ if (true) {
181
+ return null;
182
+ }
183
+ if (isBlockedIp(hostname)) {
184
+ return `Cloud base URL "${rawUrl}" points to a blocked address.`;
185
+ }
186
+ try {
187
+ const results = await dnsLookupAll(hostname, { all: true });
188
+ const addresses = Array.isArray(results) ? results : [results];
189
+ for (const entry of addresses) {
190
+ const ip = typeof entry === "string" ? entry : entry.address;
191
+ if (isBlockedIp(ip)) {
192
+ return `Cloud base URL "${rawUrl}" resolves to ${ip}, ` + "which is a blocked internal/metadata address.";
193
+ }
194
+ }
195
+ } catch {
196
+ return `Cloud base URL "${rawUrl}" could not be resolved via DNS.`;
197
+ }
198
+ return null;
199
+ }
200
+ var dnsLookupAll, BLOCKED_IPV4_CIDRS;
201
+ var init_validate_url = __esm(() => {
202
+ dnsLookupAll = promisify(dns.lookup);
203
+ BLOCKED_IPV4_CIDRS = [
204
+ cidrV4("0.0.0.0", 8),
205
+ cidrV4("10.0.0.0", 8),
206
+ cidrV4("172.16.0.0", 12),
207
+ cidrV4("192.168.0.0", 16),
208
+ cidrV4("100.64.0.0", 10),
209
+ cidrV4("127.0.0.0", 8),
210
+ cidrV4("169.254.0.0", 16),
211
+ cidrV4("192.0.0.0", 24),
212
+ cidrV4("198.18.0.0", 15),
213
+ cidrV4("192.0.2.0", 24),
214
+ cidrV4("198.51.100.0", 24),
215
+ cidrV4("203.0.113.0", 24),
216
+ cidrV4("224.0.0.0", 4),
217
+ cidrV4("240.0.0.0", 4)
218
+ ];
219
+ });
220
+
221
+ // src/lib/config-like.ts
222
+ function ensureLinkedAccounts(config) {
223
+ config.linkedAccounts ??= {};
224
+ return config.linkedAccounts;
225
+ }
226
+ function ensureServiceRouting(config) {
227
+ config.serviceRouting ??= {};
228
+ return config.serviceRouting;
229
+ }
230
+ function persistDeploymentTarget(config, deploymentTarget) {
231
+ if (!deploymentTarget) {
232
+ delete config.deploymentTarget;
233
+ return;
234
+ }
235
+ config.deploymentTarget = { ...deploymentTarget };
236
+ }
237
+ function persistLinkedAccounts(config, linkedAccounts) {
238
+ if (!linkedAccounts)
239
+ return;
240
+ const existing = ensureLinkedAccounts(config);
241
+ for (const [accountId, account] of Object.entries(linkedAccounts)) {
242
+ if (!account || Object.keys(account).length === 0) {
243
+ delete existing[accountId];
244
+ continue;
245
+ }
246
+ existing[accountId] = {
247
+ ...existing[accountId],
248
+ ...account
249
+ };
250
+ }
251
+ if (Object.keys(existing).length === 0) {
252
+ delete config.linkedAccounts;
253
+ }
254
+ }
255
+ function persistServiceRouting(config, serviceRouting, clearRoutes = []) {
256
+ const existing = ensureServiceRouting(config);
257
+ for (const capability of clearRoutes) {
258
+ delete existing[capability];
259
+ }
260
+ if (serviceRouting) {
261
+ for (const [capability, route] of Object.entries(serviceRouting)) {
262
+ const serviceKey = capability;
263
+ if (!route || Object.keys(route).length === 0) {
264
+ delete existing[serviceKey];
265
+ continue;
266
+ }
267
+ existing[serviceKey] = { ...route };
268
+ }
269
+ }
270
+ if (Object.keys(existing).length === 0) {
271
+ delete config.serviceRouting;
272
+ }
273
+ }
274
+ function applyCanonicalOnboardingConfig(config, args) {
275
+ if (args.deploymentTarget !== undefined) {
276
+ persistDeploymentTarget(config, args.deploymentTarget);
277
+ }
278
+ if (args.linkedAccounts !== undefined) {
279
+ persistLinkedAccounts(config, args.linkedAccounts);
280
+ }
281
+ if (args.serviceRouting !== undefined || args.clearRoutes?.length) {
282
+ persistServiceRouting(config, args.serviceRouting, args.clearRoutes);
283
+ }
284
+ }
285
+ function normalizeEnvValue(value) {
286
+ if (typeof value !== "string")
287
+ return;
288
+ const trimmed = value.trim();
289
+ return trimmed || undefined;
290
+ }
291
+ function isTimeoutError(error) {
292
+ if (!(error instanceof Error))
293
+ return false;
294
+ if (error.name === "TimeoutError" || error.name === "AbortError")
295
+ return true;
296
+ const message = error.message.toLowerCase();
297
+ return message.includes("timed out") || message.includes("timeout");
298
+ }
299
+
300
+ // src/lib/cloud-secrets.ts
301
+ function getCloudSecret(key) {
302
+ return _cloudSecrets[key] ?? process.env[key];
303
+ }
304
+ function scrubCloudSecretsFromEnv() {
305
+ for (const key of [
306
+ "ELIZAOS_CLOUD_API_KEY",
307
+ "ELIZAOS_CLOUD_ENABLED"
308
+ ]) {
309
+ if (process.env[key] !== undefined) {
310
+ _cloudSecrets[key] = process.env[key];
311
+ delete process.env[key];
312
+ }
313
+ }
314
+ }
315
+ function clearCloudSecrets() {
316
+ for (const key of [
317
+ "ELIZAOS_CLOUD_API_KEY",
318
+ "ELIZAOS_CLOUD_ENABLED"
319
+ ]) {
320
+ delete _cloudSecrets[key];
321
+ }
322
+ }
323
+ function _resetCloudSecretsForTesting() {
324
+ for (const key of Object.keys(_cloudSecrets)) {
325
+ delete _cloudSecrets[key];
326
+ }
327
+ }
328
+ var _cloudSecrets;
329
+ var init_cloud_secrets = __esm(() => {
330
+ _cloudSecrets = Object.create(null);
331
+ Object.defineProperty(_cloudSecrets, Symbol.toStringTag, {
332
+ value: "CloudSecrets",
333
+ enumerable: false
334
+ });
335
+ });
336
+
337
+ // src/lib/cloud-connection.ts
338
+ import {
339
+ isCloudInferenceSelectedInConfig,
340
+ isElizaSettingsDebugEnabled,
341
+ migrateLegacyRuntimeConfig,
342
+ settingsDebugCloudSummary
343
+ } from "@elizaos/core";
344
+ import { logger } from "@elizaos/core";
345
+ function cloudCreditsHttpErrorMessage(status, creditResponse) {
346
+ const err = creditResponse.error;
347
+ if (typeof err === "string" && err.trim()) {
348
+ return err.trim();
349
+ }
350
+ if (err && typeof err === "object" && "message" in err) {
351
+ const msg = err.message;
352
+ if (typeof msg === "string" && msg.trim()) {
353
+ return msg.trim();
354
+ }
355
+ }
356
+ return `HTTP ${status}`;
357
+ }
358
+ function asRuntimeCloud(runtime) {
359
+ return runtime;
360
+ }
361
+ function getCloudAuth(runtime) {
362
+ const runtimeWithServices = asRuntimeCloud(runtime);
363
+ if (typeof runtimeWithServices?.getService !== "function") {
364
+ return null;
365
+ }
366
+ const service = runtimeWithServices.getService("CLOUD_AUTH");
367
+ return service && typeof service === "object" ? service : null;
368
+ }
369
+ function resolvePersistedCloudIdentity(runtime) {
370
+ const runtimeWithCloud = asRuntimeCloud(runtime);
371
+ return {
372
+ organizationId: normalizeEnvValue(runtimeWithCloud?.getSetting?.("ELIZA_CLOUD_ORGANIZATION_ID")) ?? normalizeEnvValue(runtimeWithCloud?.character?.secrets?.ELIZA_CLOUD_ORGANIZATION_ID),
373
+ userId: normalizeEnvValue(runtimeWithCloud?.getSetting?.("ELIZA_CLOUD_USER_ID")) ?? normalizeEnvValue(runtimeWithCloud?.character?.secrets?.ELIZA_CLOUD_USER_ID)
374
+ };
375
+ }
376
+ function resolveCloudApiBaseUrl2(rawBaseUrl) {
377
+ return resolveCloudApiBaseUrl(rawBaseUrl ?? DEFAULT_CLOUD_API_BASE_URL) ?? DEFAULT_CLOUD_API_BASE_URL;
378
+ }
379
+ function resolveCloudApiKey(config, runtime) {
380
+ migrateLegacyRuntimeConfig(config);
381
+ const configApiKey = normalizeEnvValue(config.cloud?.apiKey);
382
+ if (configApiKey)
383
+ return configApiKey;
384
+ if (!isCloudInferenceSelectedInConfig(config)) {
385
+ return;
386
+ }
387
+ const sealedKey = normalizeEnvValue(getCloudSecret("ELIZAOS_CLOUD_API_KEY"));
388
+ if (sealedKey)
389
+ return sealedKey;
390
+ const envKey = normalizeEnvValue(process.env.ELIZAOS_CLOUD_API_KEY);
391
+ if (envKey)
392
+ return envKey;
393
+ const runtimeSettingKey = normalizeEnvValue(runtime?.getSetting?.("ELIZAOS_CLOUD_API_KEY"));
394
+ if (runtimeSettingKey)
395
+ return runtimeSettingKey;
396
+ const runtimeKey = normalizeEnvValue(runtime?.character?.secrets?.ELIZAOS_CLOUD_API_KEY);
397
+ if (runtimeKey)
398
+ return runtimeKey;
399
+ return;
400
+ }
401
+ function resolveCloudConnectionSnapshot(config, runtime) {
402
+ migrateLegacyRuntimeConfig(config);
403
+ const _cloudRecord = config.cloud && typeof config.cloud === "object" ? config.cloud : undefined;
404
+ const enabled = isCloudInferenceSelectedInConfig(config);
405
+ const apiKey = resolveCloudApiKey(config, runtime);
406
+ const cloudAuth = getCloudAuth(runtime);
407
+ const authConnected = Boolean(cloudAuth?.isAuthenticated?.());
408
+ const hasApiKey = Boolean(apiKey);
409
+ const persistedIdentity = resolvePersistedCloudIdentity(runtime);
410
+ const shouldExposeIdentity = authConnected || hasApiKey;
411
+ return {
412
+ apiKey,
413
+ authConnected,
414
+ cloudAuth,
415
+ connected: authConnected || hasApiKey,
416
+ enabled,
417
+ hasApiKey,
418
+ organizationId: shouldExposeIdentity ? normalizeEnvValue(cloudAuth?.getOrganizationId?.()) ?? persistedIdentity.organizationId : undefined,
419
+ userId: shouldExposeIdentity ? normalizeEnvValue(cloudAuth?.getUserId?.()) ?? persistedIdentity.userId : undefined
420
+ };
421
+ }
422
+ function coerceCloudBalance(value) {
423
+ if (typeof value === "number" && Number.isFinite(value)) {
424
+ return value;
425
+ }
426
+ if (typeof value === "string") {
427
+ const trimmed = value.trim();
428
+ if (!trimmed)
429
+ return null;
430
+ const parsed = Number.parseFloat(trimmed);
431
+ return Number.isFinite(parsed) ? parsed : null;
432
+ }
433
+ return null;
434
+ }
435
+ async function fetchCloudCreditsByApiKey(baseUrl, apiKey) {
436
+ const response = await fetch(`${baseUrl}/credits/balance`, {
437
+ headers: {
438
+ Accept: "application/json",
439
+ Authorization: `Bearer ${apiKey}`
440
+ },
441
+ redirect: "manual",
442
+ signal: AbortSignal.timeout(1e4)
443
+ });
444
+ if (response.status >= 300 && response.status < 400) {
445
+ throw new Error("Cloud credits request was redirected; redirects are not allowed");
446
+ }
447
+ const creditResponse = await response.json().catch((err) => {
448
+ console.warn("[cloud-connection] Failed to parse credit balance response JSON:", err);
449
+ return {};
450
+ });
451
+ if (response.status === 401) {
452
+ throw new CloudCreditsAuthRejectedError(cloudCreditsHttpErrorMessage(401, creditResponse));
453
+ }
454
+ if (!response.ok) {
455
+ throw new Error(cloudCreditsHttpErrorMessage(response.status, creditResponse));
456
+ }
457
+ const balance = coerceCloudBalance(creditResponse.balance) ?? coerceCloudBalance(creditResponse.data?.balance);
458
+ return balance;
459
+ }
460
+ function withCreditFlags(balance) {
461
+ return {
462
+ connected: true,
463
+ balance,
464
+ low: balance < CREDIT_LOW_THRESHOLD,
465
+ critical: balance < CREDIT_CRITICAL_THRESHOLD,
466
+ topUpUrl: CLOUD_BILLING_URL
467
+ };
468
+ }
469
+ async function fetchCloudCredits(config, runtime) {
470
+ const snapshot = resolveCloudConnectionSnapshot(config, runtime);
471
+ let authenticatedFailure = null;
472
+ let authenticatedUnexpectedResponse = false;
473
+ if (!snapshot.connected) {
474
+ return { balance: null, connected: false };
475
+ }
476
+ const cloudClient = snapshot.cloudAuth?.getClient?.();
477
+ if (snapshot.authConnected && typeof cloudClient?.get === "function") {
478
+ try {
479
+ const creditResponse = await cloudClient.get("/credits/balance");
480
+ const rawBalance = coerceCloudBalance(creditResponse?.balance) ?? coerceCloudBalance(creditResponse?.data?.balance);
481
+ if (typeof rawBalance === "number") {
482
+ return withCreditFlags(rawBalance);
483
+ }
484
+ authenticatedUnexpectedResponse = true;
485
+ logger.debug(`[cloud/credits] Unexpected authenticated response shape: ${JSON.stringify(creditResponse)}`);
486
+ } catch (err) {
487
+ const msg = err instanceof Error ? err.message : "cloud API unreachable";
488
+ authenticatedFailure = msg;
489
+ logger.debug(`[cloud/credits] Authenticated balance fetch failed: ${msg}`);
490
+ }
491
+ }
492
+ if (!snapshot.apiKey) {
493
+ return {
494
+ balance: null,
495
+ connected: snapshot.connected,
496
+ error: authenticatedFailure ?? (authenticatedUnexpectedResponse ? "unexpected response" : "missing cloud api key")
497
+ };
498
+ }
499
+ const resolvedBaseUrl = resolveCloudApiBaseUrl2(config.cloud?.baseUrl);
500
+ const baseUrlRejection = await validateCloudBaseUrl(resolvedBaseUrl);
501
+ if (baseUrlRejection) {
502
+ return {
503
+ balance: null,
504
+ connected: true,
505
+ error: baseUrlRejection
506
+ };
507
+ }
508
+ try {
509
+ const balance = await fetchCloudCreditsByApiKey(resolvedBaseUrl, snapshot.apiKey);
510
+ if (typeof balance !== "number") {
511
+ return {
512
+ balance: null,
513
+ connected: true,
514
+ error: "unexpected response"
515
+ };
516
+ }
517
+ return withCreditFlags(balance);
518
+ } catch (err) {
519
+ if (err instanceof CloudCreditsAuthRejectedError) {
520
+ logger.debug(`[cloud/credits] API key rejected: ${err.message}`);
521
+ return {
522
+ balance: null,
523
+ connected: true,
524
+ authRejected: true,
525
+ error: err.message,
526
+ topUpUrl: CLOUD_BILLING_URL
527
+ };
528
+ }
529
+ const msg = err instanceof Error ? err.message : "cloud API unreachable";
530
+ logger.debug(`[cloud/credits] Failed to fetch balance via API key: ${msg}`);
531
+ return {
532
+ balance: null,
533
+ connected: true,
534
+ error: msg
535
+ };
536
+ }
537
+ }
538
+ async function clearCloudAuthService(cloudAuth) {
539
+ if (!cloudAuth) {
540
+ return;
541
+ }
542
+ const seen = new Set;
543
+ for (const methodName of CLOUD_AUTH_CLEAR_METHODS) {
544
+ const method = cloudAuth[methodName];
545
+ if (typeof method !== "function" || seen.has(method)) {
546
+ continue;
547
+ }
548
+ seen.add(method);
549
+ try {
550
+ await method.call(cloudAuth);
551
+ break;
552
+ } catch (err) {
553
+ logger.warn(`[cloud/disconnect] Failed to invoke CLOUD_AUTH.${methodName}: ${err instanceof Error ? err.message : String(err)}`);
554
+ }
555
+ }
556
+ }
557
+ function clearCloudEnv() {
558
+ for (const key of CLOUD_ENV_KEYS) {
559
+ delete process.env[key];
560
+ }
561
+ clearCloudSecrets();
562
+ scrubCloudSecretsFromEnv();
563
+ }
564
+ async function clearRuntimeCloudState(runtime) {
565
+ const runtimeWithCloud = asRuntimeCloud(runtime);
566
+ if (!runtimeWithCloud) {
567
+ return;
568
+ }
569
+ const existingSecrets = runtimeWithCloud.character.secrets ?? {};
570
+ const nextSecrets = { ...existingSecrets };
571
+ for (const key of CLOUD_RUNTIME_SECRET_KEYS) {
572
+ delete nextSecrets[key];
573
+ }
574
+ runtimeWithCloud.character.secrets = nextSecrets;
575
+ if (runtimeWithCloud.character.settings && typeof runtimeWithCloud.character.settings === "object") {
576
+ for (const key of CLOUD_RUNTIME_SETTING_KEYS) {
577
+ delete runtimeWithCloud.character.settings[key];
578
+ }
579
+ }
580
+ if (typeof runtimeWithCloud.setSetting === "function") {
581
+ for (const key of CLOUD_RUNTIME_SETTING_KEYS) {
582
+ try {
583
+ runtimeWithCloud.setSetting(key, null);
584
+ } catch (err) {
585
+ logger.warn(`[cloud/disconnect] Failed to clear runtime setting ${key}: ${err instanceof Error ? err.message : String(err)}`);
586
+ }
587
+ }
588
+ }
589
+ if (typeof runtimeWithCloud.updateAgent === "function") {
590
+ try {
591
+ await runtimeWithCloud.updateAgent(runtimeWithCloud.agentId, {
592
+ secrets: { ...nextSecrets }
593
+ });
594
+ } catch (err) {
595
+ logger.warn(`[cloud/disconnect] Failed to clear cloud secrets from agent DB: ${err instanceof Error ? err.message : String(err)}`);
596
+ }
597
+ }
598
+ }
599
+ async function disconnectCloudConnection(args) {
600
+ const { cloudManager = null, config, runtime, saveConfig } = args;
601
+ if (isElizaSettingsDebugEnabled()) {
602
+ const c = config.cloud;
603
+ logger.debug(`[eliza][settings][cloud] disconnectCloudConnection start cloud=${JSON.stringify(settingsDebugCloudSummary(c))}`);
604
+ }
605
+ if (typeof cloudManager?.disconnect === "function") {
606
+ try {
607
+ await cloudManager.disconnect();
608
+ } catch (err) {
609
+ logger.warn(`[cloud/disconnect] Failed to disconnect cloud manager: ${err instanceof Error ? err.message : String(err)}`);
610
+ }
611
+ }
612
+ await clearCloudAuthService(getCloudAuth(runtime));
613
+ const nextCloud = { ...config.cloud ?? {} };
614
+ delete nextCloud.apiKey;
615
+ config.cloud = nextCloud;
616
+ applyCanonicalOnboardingConfig(config, {
617
+ deploymentTarget: { runtime: "local" },
618
+ linkedAccounts: {
619
+ elizacloud: {
620
+ status: "unlinked",
621
+ source: "api-key"
622
+ }
623
+ },
624
+ clearRoutes: ["llmText", "tts", "media", "embeddings", "rpc"]
625
+ });
626
+ migrateLegacyRuntimeConfig(config);
627
+ try {
628
+ saveConfig?.(config);
629
+ if (isElizaSettingsDebugEnabled()) {
630
+ const c = config.cloud;
631
+ logger.debug(`[eliza][settings][cloud] disconnectCloudConnection saveConfig OK cloud=${JSON.stringify(settingsDebugCloudSummary(c))}`);
632
+ }
633
+ } catch (err) {
634
+ logger.warn(`[cloud/disconnect] Failed to save cloud disconnect state: ${err instanceof Error ? err.message : String(err)}`);
635
+ }
636
+ clearCloudEnv();
637
+ await clearRuntimeCloudState(runtime);
638
+ if (isElizaSettingsDebugEnabled()) {
639
+ logger.debug("[eliza][settings][cloud] disconnectCloudConnection done (env cleared + runtime cloud state cleared)");
640
+ }
641
+ }
642
+ function isCloudStatusReasonApiKeyOnly(reason) {
643
+ return typeof reason === "string" && CLOUD_STATUS_API_KEY_ONLY_REASONS.has(reason);
644
+ }
645
+ var DEFAULT_CLOUD_API_BASE_URL = "https://www.elizacloud.ai/api/v1", CLOUD_BILLING_URL = "https://www.elizacloud.ai/dashboard/settings?tab=billing", CLOUD_ENV_KEYS, CLOUD_RUNTIME_SECRET_KEYS, CLOUD_RUNTIME_SETTING_KEYS, CLOUD_AUTH_CLEAR_METHODS, CloudCreditsAuthRejectedError, CREDIT_LOW_THRESHOLD, CREDIT_CRITICAL_THRESHOLD, disconnectUnifiedCloudConnection, CLOUD_STATUS_API_KEY_ONLY_REASONS;
646
+ var init_cloud_connection = __esm(() => {
647
+ init_base_url();
648
+ init_validate_url();
649
+ init_cloud_secrets();
650
+ CLOUD_ENV_KEYS = [
651
+ "ELIZAOS_CLOUD_API_KEY",
652
+ "ELIZAOS_CLOUD_ENABLED",
653
+ "ELIZAOS_CLOUD_BASE_URL",
654
+ "ELIZAOS_CLOUD_NANO_MODEL",
655
+ "ELIZAOS_CLOUD_MEDIUM_MODEL",
656
+ "ELIZAOS_CLOUD_SMALL_MODEL",
657
+ "ELIZAOS_CLOUD_LARGE_MODEL",
658
+ "ELIZAOS_CLOUD_MEGA_MODEL",
659
+ "ELIZAOS_CLOUD_RESPONSE_HANDLER_MODEL",
660
+ "ELIZAOS_CLOUD_SHOULD_RESPOND_MODEL",
661
+ "ELIZAOS_CLOUD_ACTION_PLANNER_MODEL",
662
+ "ELIZAOS_CLOUD_PLANNER_MODEL",
663
+ "ELIZAOS_CLOUD_USE_INFERENCE",
664
+ "ELIZAOS_CLOUD_USE_TTS",
665
+ "ELIZAOS_CLOUD_USE_MEDIA",
666
+ "ELIZAOS_CLOUD_USE_EMBEDDINGS",
667
+ "ELIZAOS_CLOUD_USE_RPC"
668
+ ];
669
+ CLOUD_RUNTIME_SECRET_KEYS = [
670
+ "ELIZAOS_CLOUD_API_KEY",
671
+ "ELIZAOS_CLOUD_ENABLED",
672
+ "ELIZAOS_CLOUD_BASE_URL",
673
+ "ELIZAOS_CLOUD_NANO_MODEL",
674
+ "ELIZAOS_CLOUD_MEDIUM_MODEL",
675
+ "ELIZAOS_CLOUD_SMALL_MODEL",
676
+ "ELIZAOS_CLOUD_LARGE_MODEL",
677
+ "ELIZAOS_CLOUD_MEGA_MODEL",
678
+ "ELIZAOS_CLOUD_RESPONSE_HANDLER_MODEL",
679
+ "ELIZAOS_CLOUD_SHOULD_RESPOND_MODEL",
680
+ "ELIZAOS_CLOUD_ACTION_PLANNER_MODEL",
681
+ "ELIZAOS_CLOUD_PLANNER_MODEL",
682
+ "ELIZA_CLOUD_AUTH_TOKEN",
683
+ "ELIZA_CLOUD_USER_ID",
684
+ "ELIZA_CLOUD_ORGANIZATION_ID"
685
+ ];
686
+ CLOUD_RUNTIME_SETTING_KEYS = [
687
+ "ELIZA_CLOUD_AUTH_TOKEN",
688
+ "ELIZA_CLOUD_USER_ID",
689
+ "ELIZA_CLOUD_ORGANIZATION_ID"
690
+ ];
691
+ CLOUD_AUTH_CLEAR_METHODS = [
692
+ "disconnect",
693
+ "logout",
694
+ "signOut",
695
+ "signout",
696
+ "clearSession",
697
+ "clearAuth",
698
+ "resetAuth",
699
+ "reset"
700
+ ];
701
+ CloudCreditsAuthRejectedError = class CloudCreditsAuthRejectedError extends Error {
702
+ name = "CloudCreditsAuthRejectedError";
703
+ constructor(message = "Eliza Cloud API key was rejected") {
704
+ super(message);
705
+ }
706
+ };
707
+ CREDIT_LOW_THRESHOLD = Number(process.env.ELIZA_CREDIT_LOW_THRESHOLD ?? "2.0");
708
+ CREDIT_CRITICAL_THRESHOLD = Number(process.env.ELIZA_CREDIT_CRITICAL_THRESHOLD ?? "0.5");
709
+ disconnectUnifiedCloudConnection = disconnectCloudConnection;
710
+ CLOUD_STATUS_API_KEY_ONLY_REASONS = new Set([
711
+ "api_key_present_not_authenticated",
712
+ "api_key_present_runtime_not_started"
713
+ ]);
714
+ });
715
+ init_cloud_connection();
716
+
717
+ export {
718
+ resolveCloudConnectionSnapshot,
719
+ resolveCloudApiKey,
720
+ resolveCloudApiBaseUrl2 as resolveCloudApiBaseUrl,
721
+ isCloudStatusReasonApiKeyOnly,
722
+ getCloudAuth,
723
+ fetchCloudCredits,
724
+ disconnectUnifiedCloudConnection,
725
+ disconnectCloudConnection,
726
+ clearCloudAuthService,
727
+ CloudCreditsAuthRejectedError,
728
+ CLOUD_BILLING_URL
729
+ };
730
+
731
+ //# debugId=FCA5F142E27D190C64756E2164756E21