@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,193 @@
1
+ import type { IAgentRuntime } from "@elizaos/core";
2
+ import { logger } from "@elizaos/core";
3
+ import { DEFAULT_ELIZA_CLOUD_TEXT_MODEL } from "@elizaos/core";
4
+
5
+ export const DEFAULT_ELIZA_CLOUD_LARGE_MODEL = "zai-glm-4.7";
6
+
7
+ function getEnvValue(key: string): string | undefined {
8
+ if (typeof process === "undefined") {
9
+ return undefined;
10
+ }
11
+ const value = process.env[key];
12
+ return value === undefined ? undefined : String(value);
13
+ }
14
+
15
+ export function getSetting(
16
+ runtime: IAgentRuntime,
17
+ key: string,
18
+ defaultValue?: string
19
+ ): string | undefined {
20
+ const value = runtime.getSetting(key);
21
+ if (value !== undefined && value !== null) {
22
+ return String(value);
23
+ }
24
+ return getEnvValue(key) ?? defaultValue;
25
+ }
26
+
27
+ export function isBrowser(): boolean {
28
+ return (
29
+ typeof globalThis !== "undefined" &&
30
+ typeof (globalThis as { document?: Document }).document !== "undefined"
31
+ );
32
+ }
33
+
34
+ export function isProxyMode(runtime: IAgentRuntime): boolean {
35
+ return isBrowser() && !!getSetting(runtime, "ELIZAOS_CLOUD_BROWSER_BASE_URL");
36
+ }
37
+
38
+ export function getBaseURL(runtime: IAgentRuntime): string {
39
+ const browserURL = getSetting(runtime, "ELIZAOS_CLOUD_BROWSER_BASE_URL");
40
+ const baseURL = (
41
+ isBrowser() && browserURL
42
+ ? browserURL
43
+ : getSetting(runtime, "ELIZAOS_CLOUD_BASE_URL", "https://www.elizacloud.ai/api/v1")
44
+ ) as string;
45
+ return baseURL;
46
+ }
47
+
48
+ export function getEmbeddingBaseURL(runtime: IAgentRuntime): string {
49
+ const embeddingURL = isBrowser()
50
+ ? getSetting(runtime, "ELIZAOS_CLOUD_BROWSER_EMBEDDING_URL") ||
51
+ getSetting(runtime, "ELIZAOS_CLOUD_BROWSER_BASE_URL")
52
+ : getSetting(runtime, "ELIZAOS_CLOUD_EMBEDDING_URL");
53
+ if (embeddingURL) {
54
+ logger.debug(`[ELIZAOS_CLOUD] Using specific embedding base URL: ${embeddingURL}`);
55
+ return embeddingURL;
56
+ }
57
+ logger.debug("[ELIZAOS_CLOUD] Falling back to general base URL for embeddings.");
58
+ return getBaseURL(runtime);
59
+ }
60
+
61
+ export function getApiKey(runtime: IAgentRuntime): string | undefined {
62
+ return getSetting(runtime, "ELIZAOS_CLOUD_API_KEY");
63
+ }
64
+
65
+ export function getEmbeddingApiKey(runtime: IAgentRuntime): string | undefined {
66
+ const embeddingApiKey = getSetting(runtime, "ELIZAOS_CLOUD_EMBEDDING_API_KEY");
67
+ if (embeddingApiKey) {
68
+ logger.debug("[ELIZAOS_CLOUD] Using specific embedding API key (present)");
69
+ return embeddingApiKey;
70
+ }
71
+ logger.debug("[ELIZAOS_CLOUD] Falling back to general API key for embeddings.");
72
+ return getApiKey(runtime);
73
+ }
74
+
75
+ export function getSmallModel(runtime: IAgentRuntime): string {
76
+ return (
77
+ getSetting(runtime, "ELIZAOS_CLOUD_SMALL_MODEL") ??
78
+ (getSetting(runtime, "SMALL_MODEL", DEFAULT_ELIZA_CLOUD_TEXT_MODEL) as string)
79
+ );
80
+ }
81
+
82
+ export function getNanoModel(runtime: IAgentRuntime): string {
83
+ return (
84
+ getSetting(runtime, "ELIZAOS_CLOUD_NANO_MODEL") ??
85
+ getSetting(runtime, "NANO_MODEL") ??
86
+ getSmallModel(runtime)
87
+ );
88
+ }
89
+
90
+ export function getMediumModel(runtime: IAgentRuntime): string {
91
+ return (
92
+ getSetting(runtime, "ELIZAOS_CLOUD_MEDIUM_MODEL") ??
93
+ getSetting(runtime, "MEDIUM_MODEL") ??
94
+ getSmallModel(runtime)
95
+ );
96
+ }
97
+
98
+ export function getLargeModel(runtime: IAgentRuntime): string {
99
+ return (
100
+ getSetting(runtime, "ELIZAOS_CLOUD_LARGE_MODEL") ??
101
+ (getSetting(runtime, "LARGE_MODEL", DEFAULT_ELIZA_CLOUD_LARGE_MODEL) as string)
102
+ );
103
+ }
104
+
105
+ export function getMegaModel(runtime: IAgentRuntime): string {
106
+ return (
107
+ getSetting(runtime, "ELIZAOS_CLOUD_MEGA_MODEL") ??
108
+ getSetting(runtime, "MEGA_MODEL") ??
109
+ getLargeModel(runtime)
110
+ );
111
+ }
112
+
113
+ export function getResponseHandlerModel(runtime: IAgentRuntime): string {
114
+ return (
115
+ getSetting(runtime, "ELIZAOS_CLOUD_RESPONSE_HANDLER_MODEL") ??
116
+ getSetting(runtime, "ELIZAOS_CLOUD_SHOULD_RESPOND_MODEL") ??
117
+ getSetting(runtime, "RESPONSE_HANDLER_MODEL") ??
118
+ getSetting(runtime, "SHOULD_RESPOND_MODEL") ??
119
+ getSmallModel(runtime)
120
+ );
121
+ }
122
+
123
+ export function getActionPlannerModel(runtime: IAgentRuntime): string {
124
+ return (
125
+ getSetting(runtime, "ELIZAOS_CLOUD_ACTION_PLANNER_MODEL") ??
126
+ getSetting(runtime, "ELIZAOS_CLOUD_PLANNER_MODEL") ??
127
+ getSetting(runtime, "ACTION_PLANNER_MODEL") ??
128
+ getSetting(runtime, "PLANNER_MODEL") ??
129
+ getLargeModel(runtime)
130
+ );
131
+ }
132
+
133
+ export function getResponseModel(runtime: IAgentRuntime): string {
134
+ return (
135
+ getSetting(runtime, "ELIZAOS_CLOUD_RESPONSE_MODEL") ??
136
+ getSetting(runtime, "RESPONSE_MODEL") ??
137
+ getLargeModel(runtime)
138
+ );
139
+ }
140
+
141
+ export function getImageDescriptionModel(runtime: IAgentRuntime): string {
142
+ return getSetting(runtime, "ELIZAOS_CLOUD_IMAGE_DESCRIPTION_MODEL", "gpt-5.4-mini") as string;
143
+ }
144
+
145
+ export function getImageGenerationModel(runtime: IAgentRuntime): string {
146
+ return (
147
+ getSetting(runtime, "ELIZAOS_CLOUD_IMAGE_GENERATION_MODEL", "google/gemini-2.5-flash-image") ??
148
+ "google/gemini-2.5-flash-image"
149
+ );
150
+ }
151
+
152
+ export function getResearchModel(runtime: IAgentRuntime): string {
153
+ return (
154
+ getSetting(runtime, "ELIZAOS_CLOUD_RESEARCH_MODEL") ??
155
+ (getSetting(runtime, "RESEARCH_MODEL", "o3-deep-research") as string)
156
+ );
157
+ }
158
+
159
+ export function getTTSModel(runtime: IAgentRuntime): string {
160
+ return getSetting(runtime, "ELIZAOS_CLOUD_TTS_MODEL", "gpt-5-mini-tts") as string;
161
+ }
162
+
163
+ export function getTranscriptionModel(runtime: IAgentRuntime): string {
164
+ return getSetting(
165
+ runtime,
166
+ "ELIZAOS_CLOUD_TRANSCRIPTION_MODEL",
167
+ "gpt-5-mini-transcribe"
168
+ ) as string;
169
+ }
170
+
171
+ export function getExperimentalTelemetry(runtime: IAgentRuntime): boolean {
172
+ const setting = getSetting(runtime, "ELIZAOS_CLOUD_EXPERIMENTAL_TELEMETRY", "false");
173
+ return String(setting).toLowerCase() === "true";
174
+ }
175
+
176
+ /**
177
+ * Resolve a client-side timeout (ms) for a cloud model round-trip from `envKey`,
178
+ * falling back to `defaultMs`. `0`/negative/non-numeric → undefined (opt out).
179
+ *
180
+ * cloud-sdk applies NO default timeout (a fetch with no signal hangs until the
181
+ * platform default), so turn-blocking calls (TTS/STT in a voice turn, deep
182
+ * research) need an explicit ceiling or a stalled gateway hangs the turn.
183
+ */
184
+ export function resolveCloudTimeoutMs(
185
+ envKey: string,
186
+ defaultMs: number
187
+ ): number | undefined {
188
+ const raw = typeof process !== "undefined" ? process.env[envKey] : undefined;
189
+ if (raw === undefined || raw.trim() === "") return defaultMs;
190
+ const parsed = Number.parseInt(raw, 10);
191
+ if (!Number.isFinite(parsed)) return defaultMs;
192
+ return parsed <= 0 ? undefined : parsed;
193
+ }
@@ -0,0 +1,65 @@
1
+ import {
2
+ EventType,
3
+ type IAgentRuntime,
4
+ type ModelEventPayload,
5
+ type ModelTypeName,
6
+ } from "@elizaos/core";
7
+ import type { LanguageModelUsage } from "ai";
8
+
9
+ /**
10
+ * Extra metadata that rides along with a {@link ModelEventPayload} so that
11
+ * downstream consumers (e.g. the waifu metering bridge) can attribute spend
12
+ * to a concrete model id and, when the cloud surfaces it, the authoritative
13
+ * post-markup USD cost it just debited from the org's credit balance.
14
+ *
15
+ * These are additive fields layered onto the standard payload — the core
16
+ * {@link ModelEventPayload} shape is unchanged for every other listener.
17
+ */
18
+ export interface ModelUsageEventMeta {
19
+ /** Resolved provider model id, e.g. "anthropic/claude-opus-4.7". */
20
+ modelName?: string;
21
+ /**
22
+ * Authoritative USD cost the metered gateway charged for this call, when
23
+ * available (e.g. from a `usage.cost_usd` field or `X-Eliza-Cost-Usd`
24
+ * response header). Undefined when the cloud does not surface it; consumers
25
+ * then fall back to a token-based estimate.
26
+ */
27
+ costUsd?: number;
28
+ }
29
+
30
+ export type ModelUsageEventPayload = ModelEventPayload & ModelUsageEventMeta;
31
+
32
+ export function emitModelUsageEvent(
33
+ runtime: IAgentRuntime,
34
+ type: ModelTypeName,
35
+ _prompt: string,
36
+ usage: Partial<LanguageModelUsage> & {
37
+ inputTokens?: number;
38
+ outputTokens?: number;
39
+ totalTokens?: number;
40
+ },
41
+ meta: ModelUsageEventMeta = {}
42
+ ) {
43
+ const inputTokens = Number(usage.inputTokens || 0);
44
+ const outputTokens = Number(usage.outputTokens || 0);
45
+ const totalTokens = Number(
46
+ usage.totalTokens != null ? usage.totalTokens : inputTokens + outputTokens
47
+ );
48
+
49
+ const payload: ModelUsageEventPayload = {
50
+ runtime,
51
+ source: "elizacloud",
52
+ type,
53
+ tokens: {
54
+ prompt: inputTokens,
55
+ completion: outputTokens,
56
+ total: totalTokens,
57
+ },
58
+ ...(meta.modelName ? { modelName: meta.modelName } : {}),
59
+ ...(typeof meta.costUsd === "number" && Number.isFinite(meta.costUsd)
60
+ ? { costUsd: meta.costUsd }
61
+ : {}),
62
+ };
63
+
64
+ runtime.emitEvent(EventType.MODEL_USED, payload);
65
+ }
@@ -0,0 +1,107 @@
1
+ import { logger } from "@elizaos/core";
2
+ import { JSONParseError } from "ai";
3
+ import type { ImageDescriptionResult } from "../types";
4
+
5
+ export function getJsonRepairFunction(): (params: {
6
+ text: string;
7
+ error: unknown;
8
+ }) => Promise<string | null> {
9
+ return async ({ text, error }: { text: string; error: unknown }) => {
10
+ try {
11
+ if (error instanceof JSONParseError) {
12
+ const cleanedText = text.replace(/```json\n|\n```|```/g, "");
13
+ JSON.parse(cleanedText);
14
+ return cleanedText;
15
+ }
16
+ return null;
17
+ } catch (jsonError) {
18
+ const message = jsonError instanceof Error ? jsonError.message : String(jsonError);
19
+ logger.warn(`Failed to repair JSON text: ${message}`);
20
+ return null;
21
+ }
22
+ };
23
+ }
24
+
25
+ export function detectAudioMimeType(buffer: Buffer): string {
26
+ if (buffer.length < 12) {
27
+ return "application/octet-stream";
28
+ }
29
+
30
+ if (
31
+ buffer[0] === 0x52 &&
32
+ buffer[1] === 0x49 &&
33
+ buffer[2] === 0x46 &&
34
+ buffer[3] === 0x46 &&
35
+ buffer[8] === 0x57 &&
36
+ buffer[9] === 0x41 &&
37
+ buffer[10] === 0x56 &&
38
+ buffer[11] === 0x45
39
+ ) {
40
+ return "audio/wav";
41
+ }
42
+
43
+ if (
44
+ (buffer[0] === 0x49 && buffer[1] === 0x44 && buffer[2] === 0x33) || // ID3
45
+ (buffer[0] === 0xff && (buffer[1] & 0xe0) === 0xe0) // MPEG sync
46
+ ) {
47
+ return "audio/mpeg";
48
+ }
49
+
50
+ if (buffer[0] === 0x4f && buffer[1] === 0x67 && buffer[2] === 0x67 && buffer[3] === 0x53) {
51
+ return "audio/ogg";
52
+ }
53
+
54
+ if (buffer[0] === 0x66 && buffer[1] === 0x4c && buffer[2] === 0x61 && buffer[3] === 0x43) {
55
+ return "audio/flac";
56
+ }
57
+
58
+ if (buffer[4] === 0x66 && buffer[5] === 0x74 && buffer[6] === 0x79 && buffer[7] === 0x70) {
59
+ return "audio/mp4";
60
+ }
61
+
62
+ if (buffer[0] === 0x1a && buffer[1] === 0x45 && buffer[2] === 0xdf && buffer[3] === 0xa3) {
63
+ return "audio/webm";
64
+ }
65
+
66
+ logger.warn("Could not detect audio format from buffer, using generic binary type");
67
+ return "application/octet-stream";
68
+ }
69
+
70
+ export async function webStreamToNodeStream(webStream: ReadableStream<Uint8Array>) {
71
+ try {
72
+ const { Readable } = await import("node:stream");
73
+ const reader = webStream.getReader();
74
+
75
+ return new Readable({
76
+ async read() {
77
+ try {
78
+ const { done, value } = await reader.read();
79
+ if (done) {
80
+ this.push(null);
81
+ } else {
82
+ this.push(value);
83
+ }
84
+ } catch (error) {
85
+ this.destroy(error as Error);
86
+ }
87
+ },
88
+ destroy(error, callback) {
89
+ reader.cancel().finally(() => callback(error));
90
+ },
91
+ });
92
+ } catch (error) {
93
+ const message = error instanceof Error ? error.message : String(error);
94
+ logger.error(`Failed to load node:stream module: ${message}`);
95
+ throw new Error(
96
+ `Cannot convert stream: node:stream module unavailable. This feature requires a Node.js environment.`
97
+ );
98
+ }
99
+ }
100
+
101
+ export function parseImageDescriptionResponse(responseText: string): ImageDescriptionResult {
102
+ const titleMatch = responseText.match(/title[:\s]+(.+?)(?:\n|$)/i);
103
+ const title = titleMatch?.[1]?.trim() || "Image Analysis";
104
+ const description = responseText.replace(/title[:\s]+(.+?)(?:\n|$)/i, "").trim();
105
+
106
+ return { title, description };
107
+ }
@@ -0,0 +1,115 @@
1
+ type JsonRecord = Record<string, unknown>;
2
+
3
+ function asRecord(value: unknown): JsonRecord | null {
4
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
5
+ return null;
6
+ }
7
+ return value as JsonRecord;
8
+ }
9
+
10
+ function normalizeContentItems(value: unknown): unknown[] {
11
+ if (Array.isArray(value)) return value;
12
+ if (typeof value === "string") return [{ type: "text", text: value }];
13
+ return value && typeof value === "object" ? [value] : [];
14
+ }
15
+
16
+ function extractTextFromContentItem(value: unknown): string[] {
17
+ if (typeof value === "string") {
18
+ return [value];
19
+ }
20
+
21
+ const record = asRecord(value);
22
+ if (!record) return [];
23
+
24
+ const text =
25
+ typeof record.text === "string"
26
+ ? record.text
27
+ : typeof record.output_text === "string"
28
+ ? record.output_text
29
+ : typeof record.content === "string"
30
+ ? record.content
31
+ : "";
32
+ const type = typeof record.type === "string" ? record.type : undefined;
33
+
34
+ if (text && (!type || type === "output_text" || type === "text")) {
35
+ return [text];
36
+ }
37
+
38
+ return [];
39
+ }
40
+
41
+ function extractTextFromOutputItem(value: unknown): string[] {
42
+ const record = asRecord(value);
43
+ if (!record) return [];
44
+
45
+ const directContent = normalizeContentItems(record.content);
46
+ if (directContent.length > 0) {
47
+ return directContent.flatMap(extractTextFromContentItem);
48
+ }
49
+
50
+ const nestedMessage = asRecord(record.message);
51
+ if (nestedMessage) {
52
+ return normalizeContentItems(nestedMessage.content).flatMap(extractTextFromContentItem);
53
+ }
54
+
55
+ const type = typeof record.type === "string" ? record.type : undefined;
56
+ const text =
57
+ typeof record.text === "string"
58
+ ? record.text
59
+ : typeof record.output_text === "string"
60
+ ? record.output_text
61
+ : "";
62
+ if (text && (type === "output_text" || type === "text")) {
63
+ return [text];
64
+ }
65
+
66
+ return [];
67
+ }
68
+
69
+ function extractTextFromChoice(value: unknown): string[] {
70
+ const record = asRecord(value);
71
+ if (!record) return [];
72
+
73
+ if (typeof record.text === "string" && record.text) {
74
+ return [record.text];
75
+ }
76
+
77
+ const message = asRecord(record.message);
78
+ if (!message) {
79
+ return [];
80
+ }
81
+
82
+ return normalizeContentItems(message.content).flatMap(extractTextFromContentItem);
83
+ }
84
+
85
+ /**
86
+ * Recover text from Responses-style payloads, tolerating both the documented
87
+ * `output_text` field and the common structured `output` item variants.
88
+ *
89
+ * Cloud responses sometimes carry the same body in BOTH `output_text` AND
90
+ * `output[]`/`choices[]`. Joining segments in that case duplicates the model
91
+ * output downstream (caller sees `…json{…}\n``````json{…}…`), which then
92
+ * trips JSON.parse with "Unrecognized token '`'" because of the run of
93
+ * backticks where the two copies meet. Prefer the first non-empty source
94
+ * instead of joining.
95
+ */
96
+ export function extractResponsesOutputText(data: unknown): string {
97
+ const record = asRecord(data);
98
+ if (!record) return "";
99
+
100
+ if (typeof record.output_text === "string" && record.output_text.trim()) {
101
+ return record.output_text;
102
+ }
103
+
104
+ if (Array.isArray(record.output)) {
105
+ const fromOutput = record.output.flatMap(extractTextFromOutputItem).join("");
106
+ if (fromOutput.trim()) return fromOutput;
107
+ }
108
+
109
+ if (Array.isArray(record.choices)) {
110
+ const fromChoices = record.choices.flatMap(extractTextFromChoice).join("");
111
+ if (fromChoices.trim()) return fromChoices;
112
+ }
113
+
114
+ return "";
115
+ }
@@ -0,0 +1,41 @@
1
+ import { CloudApiClient, ElizaCloudClient } from "@elizaos/cloud-sdk";
2
+ import type { IAgentRuntime } from "@elizaos/core";
3
+ import {
4
+ getApiKey,
5
+ getBaseURL,
6
+ getEmbeddingApiKey,
7
+ getEmbeddingBaseURL,
8
+ isBrowser,
9
+ } from "./config";
10
+
11
+ function trimTrailingSlash(value: string): string {
12
+ return value.replace(/\/+$/, "");
13
+ }
14
+
15
+ function apiBaseToSiteBaseUrl(apiBaseUrl: string): string {
16
+ const trimmed = trimTrailingSlash(apiBaseUrl);
17
+ return trimmed.endsWith("/api/v1") ? trimmed.slice(0, -"/api/v1".length) : trimmed;
18
+ }
19
+
20
+ function apiKeyForRuntime(runtime: IAgentRuntime, embedding = false): string | undefined {
21
+ if (isBrowser()) return undefined;
22
+ return embedding ? getEmbeddingApiKey(runtime) : getApiKey(runtime);
23
+ }
24
+
25
+ export function createCloudApiClient(runtime: IAgentRuntime, embedding = false): CloudApiClient {
26
+ const baseUrl = embedding ? getEmbeddingBaseURL(runtime) : getBaseURL(runtime);
27
+ return new ElizaCloudClient({
28
+ apiBaseUrl: trimTrailingSlash(baseUrl),
29
+ baseUrl: apiBaseToSiteBaseUrl(baseUrl),
30
+ apiKey: apiKeyForRuntime(runtime, embedding),
31
+ }).v1;
32
+ }
33
+
34
+ export function createElizaCloudClient(runtime: IAgentRuntime): ElizaCloudClient {
35
+ const apiBaseUrl = trimTrailingSlash(getBaseURL(runtime));
36
+ return new ElizaCloudClient({
37
+ apiBaseUrl,
38
+ baseUrl: apiBaseToSiteBaseUrl(apiBaseUrl),
39
+ apiKey: apiKeyForRuntime(runtime),
40
+ });
41
+ }