@dotdo/do 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (486) hide show
  1. package/README.md +400 -0
  2. package/dist/ai/embeddings.d.ts +129 -0
  3. package/dist/ai/embeddings.d.ts.map +1 -0
  4. package/dist/ai/embeddings.js +217 -0
  5. package/dist/ai/embeddings.js.map +1 -0
  6. package/dist/ai/gateway.d.ts +139 -0
  7. package/dist/ai/gateway.d.ts.map +1 -0
  8. package/dist/ai/gateway.js +179 -0
  9. package/dist/ai/gateway.js.map +1 -0
  10. package/dist/ai/image.d.ts +140 -0
  11. package/dist/ai/image.d.ts.map +1 -0
  12. package/dist/ai/image.js +199 -0
  13. package/dist/ai/image.js.map +1 -0
  14. package/dist/ai/index.d.ts +98 -0
  15. package/dist/ai/index.d.ts.map +1 -0
  16. package/dist/ai/index.js +223 -0
  17. package/dist/ai/index.js.map +1 -0
  18. package/dist/ai/models.d.ts +81 -0
  19. package/dist/ai/models.d.ts.map +1 -0
  20. package/dist/ai/models.js +537 -0
  21. package/dist/ai/models.js.map +1 -0
  22. package/dist/ai/text.d.ts +176 -0
  23. package/dist/ai/text.d.ts.map +1 -0
  24. package/dist/ai/text.js +253 -0
  25. package/dist/ai/text.js.map +1 -0
  26. package/dist/ai/voice/agents.d.ts +224 -0
  27. package/dist/ai/voice/agents.d.ts.map +1 -0
  28. package/dist/ai/voice/agents.js +375 -0
  29. package/dist/ai/voice/agents.js.map +1 -0
  30. package/dist/ai/voice/campaigns.d.ts +307 -0
  31. package/dist/ai/voice/campaigns.d.ts.map +1 -0
  32. package/dist/ai/voice/campaigns.js +739 -0
  33. package/dist/ai/voice/campaigns.js.map +1 -0
  34. package/dist/ai/voice/index.d.ts +21 -0
  35. package/dist/ai/voice/index.d.ts.map +1 -0
  36. package/dist/ai/voice/index.js +42 -0
  37. package/dist/ai/voice/index.js.map +1 -0
  38. package/dist/ai/voice/providers.d.ts +283 -0
  39. package/dist/ai/voice/providers.d.ts.map +1 -0
  40. package/dist/ai/voice/providers.js +286 -0
  41. package/dist/ai/voice/providers.js.map +1 -0
  42. package/dist/ai/voice/sessions.d.ts +294 -0
  43. package/dist/ai/voice/sessions.d.ts.map +1 -0
  44. package/dist/ai/voice/sessions.js +531 -0
  45. package/dist/ai/voice/sessions.js.map +1 -0
  46. package/dist/ai/voice/tools.d.ts +242 -0
  47. package/dist/ai/voice/tools.d.ts.map +1 -0
  48. package/dist/ai/voice/tools.js +370 -0
  49. package/dist/ai/voice/tools.js.map +1 -0
  50. package/dist/ai/voice/tts.d.ts +173 -0
  51. package/dist/ai/voice/tts.d.ts.map +1 -0
  52. package/dist/ai/voice/tts.js +252 -0
  53. package/dist/ai/voice/tts.js.map +1 -0
  54. package/dist/ai/voice/webrtc.d.ts +228 -0
  55. package/dist/ai/voice/webrtc.d.ts.map +1 -0
  56. package/dist/ai/voice/webrtc.js +372 -0
  57. package/dist/ai/voice/webrtc.js.map +1 -0
  58. package/dist/api/index.d.ts +103 -0
  59. package/dist/api/index.d.ts.map +1 -0
  60. package/dist/api/index.js +191 -0
  61. package/dist/api/index.js.map +1 -0
  62. package/dist/api/mcp/handlers.d.ts +25 -0
  63. package/dist/api/mcp/handlers.d.ts.map +1 -0
  64. package/dist/api/mcp/handlers.js +422 -0
  65. package/dist/api/mcp/handlers.js.map +1 -0
  66. package/dist/api/mcp/index.d.ts +113 -0
  67. package/dist/api/mcp/index.d.ts.map +1 -0
  68. package/dist/api/mcp/index.js +141 -0
  69. package/dist/api/mcp/index.js.map +1 -0
  70. package/dist/api/middleware/auth.d.ts +65 -0
  71. package/dist/api/middleware/auth.d.ts.map +1 -0
  72. package/dist/api/middleware/auth.js +271 -0
  73. package/dist/api/middleware/auth.js.map +1 -0
  74. package/dist/api/middleware/cors.d.ts +62 -0
  75. package/dist/api/middleware/cors.d.ts.map +1 -0
  76. package/dist/api/middleware/cors.js +225 -0
  77. package/dist/api/middleware/cors.js.map +1 -0
  78. package/dist/api/middleware/index.d.ts +60 -0
  79. package/dist/api/middleware/index.d.ts.map +1 -0
  80. package/dist/api/middleware/index.js +175 -0
  81. package/dist/api/middleware/index.js.map +1 -0
  82. package/dist/api/middleware/rateLimit.d.ts +84 -0
  83. package/dist/api/middleware/rateLimit.d.ts.map +1 -0
  84. package/dist/api/middleware/rateLimit.js +321 -0
  85. package/dist/api/middleware/rateLimit.js.map +1 -0
  86. package/dist/api/routes/ai.d.ts +17 -0
  87. package/dist/api/routes/ai.d.ts.map +1 -0
  88. package/dist/api/routes/ai.js +430 -0
  89. package/dist/api/routes/ai.js.map +1 -0
  90. package/dist/api/routes/do.d.ts +17 -0
  91. package/dist/api/routes/do.d.ts.map +1 -0
  92. package/dist/api/routes/do.js +458 -0
  93. package/dist/api/routes/do.js.map +1 -0
  94. package/dist/api/routes/functions.d.ts +111 -0
  95. package/dist/api/routes/functions.d.ts.map +1 -0
  96. package/dist/api/routes/functions.js +548 -0
  97. package/dist/api/routes/functions.js.map +1 -0
  98. package/dist/api/routes/health.d.ts +16 -0
  99. package/dist/api/routes/health.d.ts.map +1 -0
  100. package/dist/api/routes/health.js +163 -0
  101. package/dist/api/routes/health.js.map +1 -0
  102. package/dist/api/routes/index.d.ts +41 -0
  103. package/dist/api/routes/index.d.ts.map +1 -0
  104. package/dist/api/routes/index.js +275 -0
  105. package/dist/api/routes/index.js.map +1 -0
  106. package/dist/api/routes/nouns.d.ts +26 -0
  107. package/dist/api/routes/nouns.d.ts.map +1 -0
  108. package/dist/api/routes/nouns.js +456 -0
  109. package/dist/api/routes/nouns.js.map +1 -0
  110. package/dist/api/routes/orgs.d.ts +17 -0
  111. package/dist/api/routes/orgs.d.ts.map +1 -0
  112. package/dist/api/routes/orgs.js +560 -0
  113. package/dist/api/routes/orgs.js.map +1 -0
  114. package/dist/api/routes/relationships.d.ts +30 -0
  115. package/dist/api/routes/relationships.d.ts.map +1 -0
  116. package/dist/api/routes/relationships.js +360 -0
  117. package/dist/api/routes/relationships.js.map +1 -0
  118. package/dist/api/routes/roles.d.ts +17 -0
  119. package/dist/api/routes/roles.d.ts.map +1 -0
  120. package/dist/api/routes/roles.js +721 -0
  121. package/dist/api/routes/roles.js.map +1 -0
  122. package/dist/api/routes/things.d.ts +27 -0
  123. package/dist/api/routes/things.d.ts.map +1 -0
  124. package/dist/api/routes/things.js +568 -0
  125. package/dist/api/routes/things.js.map +1 -0
  126. package/dist/api/routes/users.d.ts +17 -0
  127. package/dist/api/routes/users.d.ts.map +1 -0
  128. package/dist/api/routes/users.js +401 -0
  129. package/dist/api/routes/users.js.map +1 -0
  130. package/dist/api/routes/verbs.d.ts +31 -0
  131. package/dist/api/routes/verbs.d.ts.map +1 -0
  132. package/dist/api/routes/verbs.js +505 -0
  133. package/dist/api/routes/verbs.js.map +1 -0
  134. package/dist/api/routes/workflows.d.ts +44 -0
  135. package/dist/api/routes/workflows.d.ts.map +1 -0
  136. package/dist/api/routes/workflows.js +521 -0
  137. package/dist/api/routes/workflows.js.map +1 -0
  138. package/dist/api/types.d.ts +370 -0
  139. package/dist/api/types.d.ts.map +1 -0
  140. package/dist/api/types.js +11 -0
  141. package/dist/api/types.js.map +1 -0
  142. package/dist/db/cdc/events.d.ts +201 -0
  143. package/dist/db/cdc/events.d.ts.map +1 -0
  144. package/dist/db/cdc/events.js +271 -0
  145. package/dist/db/cdc/events.js.map +1 -0
  146. package/dist/db/cdc/index.d.ts +13 -0
  147. package/dist/db/cdc/index.d.ts.map +1 -0
  148. package/dist/db/cdc/index.js +16 -0
  149. package/dist/db/cdc/index.js.map +1 -0
  150. package/dist/db/cdc/replay.d.ts +388 -0
  151. package/dist/db/cdc/replay.d.ts.map +1 -0
  152. package/dist/db/cdc/replay.js +469 -0
  153. package/dist/db/cdc/replay.js.map +1 -0
  154. package/dist/db/cdc/storage.d.ts +567 -0
  155. package/dist/db/cdc/storage.d.ts.map +1 -0
  156. package/dist/db/cdc/storage.js +856 -0
  157. package/dist/db/cdc/storage.js.map +1 -0
  158. package/dist/db/cdc/streaming.d.ts +459 -0
  159. package/dist/db/cdc/streaming.d.ts.map +1 -0
  160. package/dist/db/cdc/streaming.js +636 -0
  161. package/dist/db/cdc/streaming.js.map +1 -0
  162. package/dist/db/collections/actions.d.ts +440 -0
  163. package/dist/db/collections/actions.d.ts.map +1 -0
  164. package/dist/db/collections/actions.js +631 -0
  165. package/dist/db/collections/actions.js.map +1 -0
  166. package/dist/db/collections/base.d.ts +342 -0
  167. package/dist/db/collections/base.d.ts.map +1 -0
  168. package/dist/db/collections/base.js +510 -0
  169. package/dist/db/collections/base.js.map +1 -0
  170. package/dist/db/collections/index.d.ts +50 -0
  171. package/dist/db/collections/index.d.ts.map +1 -0
  172. package/dist/db/collections/index.js +48 -0
  173. package/dist/db/collections/index.js.map +1 -0
  174. package/dist/db/collections/nouns.d.ts +260 -0
  175. package/dist/db/collections/nouns.d.ts.map +1 -0
  176. package/dist/db/collections/nouns.js +273 -0
  177. package/dist/db/collections/nouns.js.map +1 -0
  178. package/dist/db/collections/relationships.d.ts +484 -0
  179. package/dist/db/collections/relationships.d.ts.map +1 -0
  180. package/dist/db/collections/relationships.js +815 -0
  181. package/dist/db/collections/relationships.js.map +1 -0
  182. package/dist/db/collections/things.d.ts +439 -0
  183. package/dist/db/collections/things.d.ts.map +1 -0
  184. package/dist/db/collections/things.js +603 -0
  185. package/dist/db/collections/things.js.map +1 -0
  186. package/dist/db/collections/verbs.d.ts +308 -0
  187. package/dist/db/collections/verbs.d.ts.map +1 -0
  188. package/dist/db/collections/verbs.js +480 -0
  189. package/dist/db/collections/verbs.js.map +1 -0
  190. package/dist/db/index.d.ts +14 -0
  191. package/dist/db/index.d.ts.map +1 -0
  192. package/dist/db/index.js +23 -0
  193. package/dist/db/index.js.map +1 -0
  194. package/dist/db/storage/cold.d.ts +313 -0
  195. package/dist/db/storage/cold.d.ts.map +1 -0
  196. package/dist/db/storage/cold.js +319 -0
  197. package/dist/db/storage/cold.js.map +1 -0
  198. package/dist/db/storage/hot.d.ts +340 -0
  199. package/dist/db/storage/hot.d.ts.map +1 -0
  200. package/dist/db/storage/hot.js +333 -0
  201. package/dist/db/storage/hot.js.map +1 -0
  202. package/dist/db/storage/index.d.ts +242 -0
  203. package/dist/db/storage/index.d.ts.map +1 -0
  204. package/dist/db/storage/index.js +109 -0
  205. package/dist/db/storage/index.js.map +1 -0
  206. package/dist/db/storage/snapshots.d.ts +342 -0
  207. package/dist/db/storage/snapshots.d.ts.map +1 -0
  208. package/dist/db/storage/snapshots.js +298 -0
  209. package/dist/db/storage/snapshots.js.map +1 -0
  210. package/dist/db/storage/vortex.d.ts +324 -0
  211. package/dist/db/storage/vortex.d.ts.map +1 -0
  212. package/dist/db/storage/vortex.js +365 -0
  213. package/dist/db/storage/vortex.js.map +1 -0
  214. package/dist/db/storage/warm.d.ts +306 -0
  215. package/dist/db/storage/warm.d.ts.map +1 -0
  216. package/dist/db/storage/warm.js +339 -0
  217. package/dist/db/storage/warm.js.map +1 -0
  218. package/dist/do/DigitalObject.d.ts +595 -0
  219. package/dist/do/DigitalObject.d.ts.map +1 -0
  220. package/dist/do/DigitalObject.js +971 -0
  221. package/dist/do/DigitalObject.js.map +1 -0
  222. package/dist/do/business/financial/accounting.d.ts +436 -0
  223. package/dist/do/business/financial/accounting.d.ts.map +1 -0
  224. package/dist/do/business/financial/accounting.js +476 -0
  225. package/dist/do/business/financial/accounting.js.map +1 -0
  226. package/dist/do/business/financial/index.d.ts +15 -0
  227. package/dist/do/business/financial/index.d.ts.map +1 -0
  228. package/dist/do/business/financial/index.js +20 -0
  229. package/dist/do/business/financial/index.js.map +1 -0
  230. package/dist/do/business/financial/metrics.d.ts +370 -0
  231. package/dist/do/business/financial/metrics.d.ts.map +1 -0
  232. package/dist/do/business/financial/metrics.js +376 -0
  233. package/dist/do/business/financial/metrics.js.map +1 -0
  234. package/dist/do/business/financial/payments.d.ts +397 -0
  235. package/dist/do/business/financial/payments.d.ts.map +1 -0
  236. package/dist/do/business/financial/payments.js +395 -0
  237. package/dist/do/business/financial/payments.js.map +1 -0
  238. package/dist/do/business/financial/reports.d.ts +284 -0
  239. package/dist/do/business/financial/reports.d.ts.map +1 -0
  240. package/dist/do/business/financial/reports.js +347 -0
  241. package/dist/do/business/financial/reports.js.map +1 -0
  242. package/dist/do/business/financial/stripe.d.ts +254 -0
  243. package/dist/do/business/financial/stripe.d.ts.map +1 -0
  244. package/dist/do/business/financial/stripe.js +261 -0
  245. package/dist/do/business/financial/stripe.js.map +1 -0
  246. package/dist/do/business/financial/subscriptions.d.ts +402 -0
  247. package/dist/do/business/financial/subscriptions.d.ts.map +1 -0
  248. package/dist/do/business/financial/subscriptions.js +349 -0
  249. package/dist/do/business/financial/subscriptions.js.map +1 -0
  250. package/dist/do/business/index.d.ts +9 -0
  251. package/dist/do/business/index.d.ts.map +1 -0
  252. package/dist/do/business/index.js +10 -0
  253. package/dist/do/business/index.js.map +1 -0
  254. package/dist/do/colo/followers.d.ts +194 -0
  255. package/dist/do/colo/followers.d.ts.map +1 -0
  256. package/dist/do/colo/followers.js +224 -0
  257. package/dist/do/colo/followers.js.map +1 -0
  258. package/dist/do/colo/fork.d.ts +103 -0
  259. package/dist/do/colo/fork.d.ts.map +1 -0
  260. package/dist/do/colo/fork.js +143 -0
  261. package/dist/do/colo/fork.js.map +1 -0
  262. package/dist/do/colo/index.d.ts +181 -0
  263. package/dist/do/colo/index.d.ts.map +1 -0
  264. package/dist/do/colo/index.js +145 -0
  265. package/dist/do/colo/index.js.map +1 -0
  266. package/dist/do/colo/info.d.ts +106 -0
  267. package/dist/do/colo/info.d.ts.map +1 -0
  268. package/dist/do/colo/info.js +196 -0
  269. package/dist/do/colo/info.js.map +1 -0
  270. package/dist/do/colo/migrate.d.ts +161 -0
  271. package/dist/do/colo/migrate.d.ts.map +1 -0
  272. package/dist/do/colo/migrate.js +190 -0
  273. package/dist/do/colo/migrate.js.map +1 -0
  274. package/dist/do/colo/routing.d.ts +182 -0
  275. package/dist/do/colo/routing.d.ts.map +1 -0
  276. package/dist/do/colo/routing.js +254 -0
  277. package/dist/do/colo/routing.js.map +1 -0
  278. package/dist/do/domains/dns.d.ts +269 -0
  279. package/dist/do/domains/dns.d.ts.map +1 -0
  280. package/dist/do/domains/dns.js +215 -0
  281. package/dist/do/domains/dns.js.map +1 -0
  282. package/dist/do/domains/index.d.ts +40 -0
  283. package/dist/do/domains/index.d.ts.map +1 -0
  284. package/dist/do/domains/index.js +61 -0
  285. package/dist/do/domains/index.js.map +1 -0
  286. package/dist/do/domains/routing.d.ts +263 -0
  287. package/dist/do/domains/routing.d.ts.map +1 -0
  288. package/dist/do/domains/routing.js +362 -0
  289. package/dist/do/domains/routing.js.map +1 -0
  290. package/dist/do/domains/ssl.d.ts +217 -0
  291. package/dist/do/domains/ssl.d.ts.map +1 -0
  292. package/dist/do/domains/ssl.js +231 -0
  293. package/dist/do/domains/ssl.js.map +1 -0
  294. package/dist/do/domains/subdomains.d.ts +207 -0
  295. package/dist/do/domains/subdomains.d.ts.map +1 -0
  296. package/dist/do/domains/subdomains.js +223 -0
  297. package/dist/do/domains/subdomains.js.map +1 -0
  298. package/dist/do/domains/tlds.d.ts +175 -0
  299. package/dist/do/domains/tlds.d.ts.map +1 -0
  300. package/dist/do/domains/tlds.js +188 -0
  301. package/dist/do/domains/tlds.js.map +1 -0
  302. package/dist/do/domains/validation.d.ts +164 -0
  303. package/dist/do/domains/validation.d.ts.map +1 -0
  304. package/dist/do/domains/validation.js +290 -0
  305. package/dist/do/domains/validation.js.map +1 -0
  306. package/dist/do/hibernation.d.ts +385 -0
  307. package/dist/do/hibernation.d.ts.map +1 -0
  308. package/dist/do/hibernation.js +518 -0
  309. package/dist/do/hibernation.js.map +1 -0
  310. package/dist/do/index.d.ts +19 -0
  311. package/dist/do/index.d.ts.map +1 -0
  312. package/dist/do/index.js +23 -0
  313. package/dist/do/index.js.map +1 -0
  314. package/dist/do/state.d.ts +336 -0
  315. package/dist/do/state.d.ts.map +1 -0
  316. package/dist/do/state.js +290 -0
  317. package/dist/do/state.js.map +1 -0
  318. package/dist/index.d.ts +44 -0
  319. package/dist/index.d.ts.map +1 -0
  320. package/dist/index.js +89 -0
  321. package/dist/index.js.map +1 -0
  322. package/dist/rpc/client.d.ts +426 -0
  323. package/dist/rpc/client.d.ts.map +1 -0
  324. package/dist/rpc/client.js +826 -0
  325. package/dist/rpc/client.js.map +1 -0
  326. package/dist/rpc/index.d.ts +19 -0
  327. package/dist/rpc/index.d.ts.map +1 -0
  328. package/dist/rpc/index.js +23 -0
  329. package/dist/rpc/index.js.map +1 -0
  330. package/dist/rpc/methods.d.ts +364 -0
  331. package/dist/rpc/methods.d.ts.map +1 -0
  332. package/dist/rpc/methods.js +557 -0
  333. package/dist/rpc/methods.js.map +1 -0
  334. package/dist/rpc/protocol.d.ts +310 -0
  335. package/dist/rpc/protocol.d.ts.map +1 -0
  336. package/dist/rpc/protocol.js +672 -0
  337. package/dist/rpc/protocol.js.map +1 -0
  338. package/dist/rpc/routes.d.ts +332 -0
  339. package/dist/rpc/routes.d.ts.map +1 -0
  340. package/dist/rpc/routes.js +633 -0
  341. package/dist/rpc/routes.js.map +1 -0
  342. package/dist/rpc/server.d.ts +380 -0
  343. package/dist/rpc/server.d.ts.map +1 -0
  344. package/dist/rpc/server.js +850 -0
  345. package/dist/rpc/server.js.map +1 -0
  346. package/dist/sdk/auth.d.ts +201 -0
  347. package/dist/sdk/auth.d.ts.map +1 -0
  348. package/dist/sdk/auth.js +343 -0
  349. package/dist/sdk/auth.js.map +1 -0
  350. package/dist/sdk/client.d.ts +123 -0
  351. package/dist/sdk/client.d.ts.map +1 -0
  352. package/dist/sdk/client.js +403 -0
  353. package/dist/sdk/client.js.map +1 -0
  354. package/dist/sdk/index.d.ts +123 -0
  355. package/dist/sdk/index.d.ts.map +1 -0
  356. package/dist/sdk/index.js +230 -0
  357. package/dist/sdk/index.js.map +1 -0
  358. package/dist/sdk/rpc.d.ts +275 -0
  359. package/dist/sdk/rpc.d.ts.map +1 -0
  360. package/dist/sdk/rpc.js +249 -0
  361. package/dist/sdk/rpc.js.map +1 -0
  362. package/dist/sdk/transport.d.ts +283 -0
  363. package/dist/sdk/transport.d.ts.map +1 -0
  364. package/dist/sdk/transport.js +661 -0
  365. package/dist/sdk/transport.js.map +1 -0
  366. package/dist/sdk/types.d.ts +265 -0
  367. package/dist/sdk/types.d.ts.map +1 -0
  368. package/dist/sdk/types.js +27 -0
  369. package/dist/sdk/types.js.map +1 -0
  370. package/dist/types/ai.d.ts +533 -0
  371. package/dist/types/ai.d.ts.map +1 -0
  372. package/dist/types/ai.js +18 -0
  373. package/dist/types/ai.js.map +1 -0
  374. package/dist/types/app.d.ts +371 -0
  375. package/dist/types/app.d.ts.map +1 -0
  376. package/dist/types/app.js +151 -0
  377. package/dist/types/app.js.map +1 -0
  378. package/dist/types/business.d.ts +482 -0
  379. package/dist/types/business.d.ts.map +1 -0
  380. package/dist/types/business.js +60 -0
  381. package/dist/types/business.js.map +1 -0
  382. package/dist/types/cascade.d.ts +323 -0
  383. package/dist/types/cascade.d.ts.map +1 -0
  384. package/dist/types/cascade.js +82 -0
  385. package/dist/types/cascade.js.map +1 -0
  386. package/dist/types/collections.d.ts +704 -0
  387. package/dist/types/collections.d.ts.map +1 -0
  388. package/dist/types/collections.js +23 -0
  389. package/dist/types/collections.js.map +1 -0
  390. package/dist/types/colo.d.ts +171 -0
  391. package/dist/types/colo.d.ts.map +1 -0
  392. package/dist/types/colo.js +63 -0
  393. package/dist/types/colo.js.map +1 -0
  394. package/dist/types/communication.d.ts +595 -0
  395. package/dist/types/communication.d.ts.map +1 -0
  396. package/dist/types/communication.js +16 -0
  397. package/dist/types/communication.js.map +1 -0
  398. package/dist/types/content.d.ts +286 -0
  399. package/dist/types/content.d.ts.map +1 -0
  400. package/dist/types/content.js +8 -0
  401. package/dist/types/content.js.map +1 -0
  402. package/dist/types/context.d.ts +407 -0
  403. package/dist/types/context.d.ts.map +1 -0
  404. package/dist/types/context.js +36 -0
  405. package/dist/types/context.js.map +1 -0
  406. package/dist/types/databases.d.ts +377 -0
  407. package/dist/types/databases.d.ts.map +1 -0
  408. package/dist/types/databases.js +14 -0
  409. package/dist/types/databases.js.map +1 -0
  410. package/dist/types/domains.d.ts +132 -0
  411. package/dist/types/domains.d.ts.map +1 -0
  412. package/dist/types/domains.js +107 -0
  413. package/dist/types/domains.js.map +1 -0
  414. package/dist/types/execution.d.ts +381 -0
  415. package/dist/types/execution.d.ts.map +1 -0
  416. package/dist/types/execution.js +40 -0
  417. package/dist/types/execution.js.map +1 -0
  418. package/dist/types/financial.d.ts +608 -0
  419. package/dist/types/financial.d.ts.map +1 -0
  420. package/dist/types/financial.js +12 -0
  421. package/dist/types/financial.js.map +1 -0
  422. package/dist/types/functions.d.ts +215 -0
  423. package/dist/types/functions.d.ts.map +1 -0
  424. package/dist/types/functions.js +15 -0
  425. package/dist/types/functions.js.map +1 -0
  426. package/dist/types/git.d.ts +299 -0
  427. package/dist/types/git.d.ts.map +1 -0
  428. package/dist/types/git.js +17 -0
  429. package/dist/types/git.js.map +1 -0
  430. package/dist/types/identity.d.ts +141 -0
  431. package/dist/types/identity.d.ts.map +1 -0
  432. package/dist/types/identity.js +54 -0
  433. package/dist/types/identity.js.map +1 -0
  434. package/dist/types/index.d.ts +40 -0
  435. package/dist/types/index.d.ts.map +1 -0
  436. package/dist/types/index.js +65 -0
  437. package/dist/types/index.js.map +1 -0
  438. package/dist/types/integrations.d.ts +356 -0
  439. package/dist/types/integrations.d.ts.map +1 -0
  440. package/dist/types/integrations.js +19 -0
  441. package/dist/types/integrations.js.map +1 -0
  442. package/dist/types/mdxui.d.ts +1955 -0
  443. package/dist/types/mdxui.d.ts.map +1 -0
  444. package/dist/types/mdxui.js +751 -0
  445. package/dist/types/mdxui.js.map +1 -0
  446. package/dist/types/observability.d.ts +315 -0
  447. package/dist/types/observability.d.ts.map +1 -0
  448. package/dist/types/observability.js +13 -0
  449. package/dist/types/observability.js.map +1 -0
  450. package/dist/types/rpc.d.ts +339 -0
  451. package/dist/types/rpc.d.ts.map +1 -0
  452. package/dist/types/rpc.js +24 -0
  453. package/dist/types/rpc.js.map +1 -0
  454. package/dist/types/saas.d.ts +678 -0
  455. package/dist/types/saas.d.ts.map +1 -0
  456. package/dist/types/saas.js +59 -0
  457. package/dist/types/saas.js.map +1 -0
  458. package/dist/types/service.d.ts +676 -0
  459. package/dist/types/service.d.ts.map +1 -0
  460. package/dist/types/service.js +69 -0
  461. package/dist/types/service.js.map +1 -0
  462. package/dist/types/site.d.ts +317 -0
  463. package/dist/types/site.d.ts.map +1 -0
  464. package/dist/types/site.js +203 -0
  465. package/dist/types/site.js.map +1 -0
  466. package/dist/types/startup.d.ts +576 -0
  467. package/dist/types/startup.d.ts.map +1 -0
  468. package/dist/types/startup.js +59 -0
  469. package/dist/types/startup.js.map +1 -0
  470. package/dist/types/storage.d.ts +276 -0
  471. package/dist/types/storage.d.ts.map +1 -0
  472. package/dist/types/storage.js +35 -0
  473. package/dist/types/storage.js.map +1 -0
  474. package/dist/types/telephony.d.ts +458 -0
  475. package/dist/types/telephony.d.ts.map +1 -0
  476. package/dist/types/telephony.js +19 -0
  477. package/dist/types/telephony.js.map +1 -0
  478. package/dist/types/tenant.d.ts +708 -0
  479. package/dist/types/tenant.d.ts.map +1 -0
  480. package/dist/types/tenant.js +103 -0
  481. package/dist/types/tenant.js.map +1 -0
  482. package/dist/types/voice-ai.d.ts +459 -0
  483. package/dist/types/voice-ai.d.ts.map +1 -0
  484. package/dist/types/voice-ai.js +32 -0
  485. package/dist/types/voice-ai.js.map +1 -0
  486. package/package.json +143 -0
package/README.md ADDED
@@ -0,0 +1,400 @@
1
+ # [DO](https://objects.do)
2
+
3
+ > Every Thing IS a Digital Object IN a Durable Object.
4
+
5
+ ```typescript
6
+ import { DO } from '@dotdo/do'
7
+
8
+ const $ = DO('https://mystartup.ai')
9
+
10
+ const idea = await $.ai`what should we build next?`
11
+ const spec = await $.db.Product.create({ name: idea, status: 'planning' })
12
+
13
+ await $.slack`#product New idea: ${idea}`
14
+ await $.email.to(founder)`Your next product: ${spec.name}`
15
+ ```
16
+
17
+ That's a product ideation workflow. Running on the edge. With a database, AI, Slack, and email.
18
+
19
+ ## You're Building a Business
20
+
21
+ Maybe it's a SaaS app. Maybe it's a startup studio generating thousands of companies. Maybe it's an AI agent platform.
22
+
23
+ Whatever it is, you need:
24
+ - A database
25
+ - AI capabilities
26
+ - Payments
27
+ - Email, Slack, SMS
28
+ - Phone calls and voice agents
29
+ - Custom domains
30
+ - User authentication
31
+
32
+ Traditionally, that's a dozen services, a maze of API keys, and weeks of integration work.
33
+
34
+ **With DO, it's one line.**
35
+
36
+ ```typescript
37
+ import { DO } from '@dotdo/do'
38
+
39
+ const $ = DO('https://mystartup.ai')
40
+ ```
41
+
42
+ ## Just Say What You Want
43
+
44
+ ```typescript
45
+ import { DO } from '@dotdo/do'
46
+
47
+ const $ = DO('https://mystartup.ai')
48
+
49
+ // AI that understands you
50
+ const summary = await $.ai`summarize ${document}`
51
+ const ideas = await $.ai.list`10 features for ${product}`
52
+ const viable = await $.ai.is`${idea} is technically feasible`
53
+
54
+ // Database that speaks English
55
+ const stuck = await $.db.Order`what's stuck in processing?`
56
+ const vips = await $.db.Customer`high value this quarter`
57
+
58
+ // Communication that flows
59
+ await $.email.to(user)`Your order ${order.id} shipped!`
60
+ await $.slack`#alerts New VIP signup: ${customer.name}`
61
+ await $.sms`${contact.phone} Your appointment is tomorrow`
62
+
63
+ // Payments that just work
64
+ await $.pay`charge ${customer} $${amount}`
65
+ const mrr = await $.pay.mrr()
66
+ ```
67
+
68
+ No method names to memorize. No parameters to look up. Just say what you want.
69
+
70
+ ## Everything Reacts
71
+
72
+ ```typescript
73
+ import { DO } from '@dotdo/do'
74
+
75
+ const $ = DO('https://mystartup.ai')
76
+
77
+ // When a customer signs up
78
+ $.on.Customer.created(async customer => {
79
+ await $.email`welcome ${customer.name} to ${customer.email}`
80
+ await $.slack`#sales New signup: ${customer.name}`
81
+ await $.pay.createCustomer(customer)
82
+ })
83
+
84
+ // When an order is placed
85
+ $.on.Order.placed(async order => {
86
+ await $.pay.charge(order.customerId, order.total)
87
+ await $.email.to(order.email)`Order ${order.id} confirmed!`
88
+ })
89
+
90
+ // Every Monday at 9am
91
+ $.every.Monday.at9am(async () => {
92
+ const report = await $.ai`generate weekly metrics`
93
+ await $.slack`#metrics ${report}`
94
+ })
95
+ ```
96
+
97
+ Event-driven. Time-driven. Automatic.
98
+
99
+ ## Your Business, Hierarchical
100
+
101
+ ```
102
+ startups.studio (Your Business)
103
+ └─ headless.ly (A Startup You Generated)
104
+ └─ crm.headless.ly (Its SaaS Product)
105
+ └─ crm.headless.ly/acme (A Customer Tenant)
106
+ ```
107
+
108
+ Each level is a full DO. Each has its own database, AI, payments, domains.
109
+
110
+ Each operates independently. Changes flow up automatically.
111
+
112
+ ```typescript
113
+ // headless.ly knows it came from startups.studio
114
+ const startup = {
115
+ $id: 'https://headless.ly',
116
+ $type: 'https://startups.studio/Startup', // Type URL (relative to $context)
117
+ $context: 'https://startups.studio', // Parent reference
118
+ }
119
+
120
+ // Or use an external schema
121
+ const agent = {
122
+ $id: 'https://agents.do/sales',
123
+ $type: 'https://schema.org.ai/Agent', // External schema type
124
+ $context: 'https://agents.do',
125
+ }
126
+
127
+ // Events bubble up the chain
128
+ // crm/acme → crm → headless.ly → startups.studio → analytics
129
+ ```
130
+
131
+ ## Voice AI That Calls
132
+
133
+ ```typescript
134
+ import { DO } from '@dotdo/do'
135
+
136
+ const $ = DO('https://mystartup.ai')
137
+
138
+ // Create a voice agent
139
+ const agent = await $.voice.agent`sales assistant for ${product}`
140
+
141
+ // Make it call someone
142
+ await $.call(lead.phone)`schedule a demo for ${product}`
143
+
144
+ // Or run a campaign
145
+ await $.voice.campaign(contacts, agentId)
146
+ ```
147
+
148
+ Real phone calls. Real conversations. Real results.
149
+
150
+ ## Payments That Flow
151
+
152
+ ```typescript
153
+ import { DO } from '@dotdo/do'
154
+
155
+ const $ = DO('https://mystartup.ai')
156
+
157
+ // Charge customers
158
+ await $.pay.charge(customerId, 1000, 'usd')
159
+
160
+ // Pay out to vendors
161
+ await $.pay.transfer(vendorAccount, 900)
162
+
163
+ // Full accounting
164
+ await $.pay.journal({
165
+ debit: [{ account: 'revenue', amount: 1000 }],
166
+ credit: [{ account: 'cash', amount: 1000 }]
167
+ })
168
+
169
+ // Real-time metrics
170
+ const { mrr, arr, growth } = await $.pay.mrr()
171
+ ```
172
+
173
+ Stripe Connect. Double-entry accounting. P&L reports. Built in.
174
+
175
+ ## Domains Included
176
+
177
+ ```typescript
178
+ import { DO } from '@dotdo/do'
179
+
180
+ const $ = DO('https://mystartup.ai')
181
+
182
+ // Grab a subdomain on 50+ platform TLDs
183
+ await $.domain`acme.saas.group`
184
+ await $.domain`myapp.hq.com.ai`
185
+ await $.domain`startup.io.sb`
186
+ ```
187
+
188
+ Free subdomains. Automatic SSL. Instant DNS.
189
+
190
+ ## The $context Pattern
191
+
192
+ Every DO knows where it came from:
193
+
194
+ ```typescript
195
+ // A tenant inside a SaaS app
196
+ const tenant = {
197
+ $id: 'https://crm.headless.ly/acme',
198
+ $type: 'https://crm.headless.ly/Tenant', // Type URL from parent
199
+ $context: 'https://crm.headless.ly', // Points to parent
200
+ }
201
+
202
+ // Changes flow up the chain automatically
203
+ // tenant → app → startup → studio → R2/Iceberg
204
+ ```
205
+
206
+ This enables:
207
+ - **CDC Streaming** - Every change flows to parent
208
+ - **Analytics** - Aggregate data at any level
209
+ - **Billing** - Roll up costs hierarchically
210
+ - **Permissions** - Inherit from parent context
211
+
212
+ ## Why Not Traditional Architecture?
213
+
214
+ | Traditional | DO |
215
+ |-------------|-----|
216
+ | Startups as database rows | Startups as autonomous units |
217
+ | Central coordination | Independent operation |
218
+ | Shared state conflicts | Isolated state per entity |
219
+ | One database for everything | Database per entity |
220
+ | Single point of failure | Distributed by default |
221
+
222
+ We tried the traditional way. 35 packages. 81 workers. Collapsed under its own weight.
223
+
224
+ DO is simple: **1 package, 1 worker, 1 Durable Object**.
225
+
226
+ ## Get Started
227
+
228
+ ```bash
229
+ npm install @dotdo/do
230
+ ```
231
+
232
+ ```typescript
233
+ import { DO } from '@dotdo/do'
234
+
235
+ // Connect to any Digital Object
236
+ const $ = DO('https://mystartup.ai')
237
+
238
+ // Use it
239
+ const answer = await $.ai`what should we build?`
240
+ const products = await $.db.Product.list()
241
+ await $.slack`#updates ${answer}`
242
+ ```
243
+
244
+ That's a full business platform. Running on the edge. Done.
245
+
246
+ ## Development
247
+
248
+ ### Prerequisites
249
+
250
+ - [Node.js](https://nodejs.org/) 18+
251
+ - [pnpm](https://pnpm.io/) 9+
252
+ - [Wrangler CLI](https://developers.cloudflare.com/workers/wrangler/)
253
+
254
+ ### Install Dependencies
255
+
256
+ ```bash
257
+ pnpm install
258
+ ```
259
+
260
+ ### Run Locally
261
+
262
+ Start the development server with local Durable Objects and bindings:
263
+
264
+ ```bash
265
+ # Default development mode
266
+ wrangler dev
267
+
268
+ # With local persistence (data survives restarts)
269
+ wrangler dev --persist-to .wrangler/state
270
+
271
+ # Using development config
272
+ wrangler dev --config wrangler.dev.toml
273
+
274
+ # With remote resources (connect to actual Cloudflare services)
275
+ wrangler dev --remote
276
+ ```
277
+
278
+ The server runs at `http://localhost:8787` by default.
279
+
280
+ ### Local Secrets
281
+
282
+ Create a `.dev.vars` file in the project root for local secrets:
283
+
284
+ ```bash
285
+ STRIPE_SECRET_KEY=sk_test_...
286
+ WORKOS_API_KEY=sk_test_...
287
+ OPENAI_API_KEY=sk-...
288
+ ANTHROPIC_API_KEY=sk-ant-...
289
+ ```
290
+
291
+ ### Deploy
292
+
293
+ Deploy to Cloudflare Workers:
294
+
295
+ ```bash
296
+ # Deploy to development (default)
297
+ wrangler deploy
298
+
299
+ # Deploy to staging
300
+ wrangler deploy --env staging
301
+
302
+ # Deploy to production
303
+ wrangler deploy --env production
304
+ ```
305
+
306
+ ### Set Production Secrets
307
+
308
+ ```bash
309
+ # Set secrets for production
310
+ wrangler secret put STRIPE_SECRET_KEY --env production
311
+ wrangler secret put WORKOS_API_KEY --env production
312
+ wrangler secret put OPENAI_API_KEY --env production
313
+ wrangler secret put ANTHROPIC_API_KEY --env production
314
+ ```
315
+
316
+ ### Tail Logs
317
+
318
+ View real-time logs from deployed workers:
319
+
320
+ ```bash
321
+ # Tail the main worker
322
+ wrangler tail
323
+
324
+ # Tail with filters
325
+ wrangler tail --format pretty
326
+
327
+ # Tail specific environment
328
+ wrangler tail --env production
329
+
330
+ # Tail the observability worker
331
+ wrangler tail do-tail
332
+ ```
333
+
334
+ ### Useful Commands
335
+
336
+ ```bash
337
+ # Type check
338
+ pnpm check
339
+
340
+ # Run tests
341
+ pnpm test
342
+
343
+ # Build
344
+ pnpm build
345
+
346
+ # List all deployed workers
347
+ wrangler deployments list
348
+
349
+ # View worker metrics
350
+ wrangler metrics
351
+ ```
352
+
353
+ ---
354
+
355
+ ## Platform Services
356
+
357
+ Everything you need, integrated:
358
+
359
+ | What | How |
360
+ |------|-----|
361
+ | **Database** | `$.db.User.list()`, `$.db.Order\`stuck in processing?\`` |
362
+ | **AI** | `$.ai\`summarize this\``, `$.ai.list\`10 ideas\``, `$.ai.is\`feasible?\`` |
363
+ | **Payments** | `$.pay.charge()`, `$.pay.transfer()`, `$.pay.mrr()` |
364
+ | **Email** | `$.email\`welcome ${name}\``, `$.email.to(addr)\`message\`` |
365
+ | **Slack** | `$.slack\`#channel message\`` |
366
+ | **SMS** | `$.sms\`${phone} reminder\`` |
367
+ | **Voice** | `$.voice.agent\`sales assistant\``, `$.call(phone)\`book demo\`` |
368
+ | **Domains** | `$.domain\`app.saas.group\`` |
369
+ | **Events** | `$.on.Customer.created()`, `$.on.Order.placed()` |
370
+ | **Schedules** | `$.every.Monday.at9am()`, `$.every.hour()` |
371
+
372
+ ## Deep Integrations
373
+
374
+ | Integration | What It Does |
375
+ |-------------|--------------|
376
+ | **Stripe Connect** | Payments, transfers, accounting, P&L |
377
+ | **WorkOS** | Auth, SSO, directory sync, RBAC |
378
+ | **GitHub** | Git sync, repos, PRs, issues |
379
+ | **Cloudflare** | Domains, DNS, SSL, edge compute |
380
+
381
+ ## Foundational Projects
382
+
383
+ | Project | Purpose |
384
+ |---------|---------|
385
+ | [workers.do](https://workers.do) | Tagged template AI agents |
386
+ | [db4.ai](https://db4.ai) | 4-paradigm edge database |
387
+ | [schema.org.ai](https://schema.org.ai) | AI-native schema extensions |
388
+ | [id.org.ai](https://id.org.ai) | Unified identity for humans + AI |
389
+
390
+ ---
391
+
392
+ **Solo founders** — Build with AI, not infrastructure.
393
+
394
+ **Small teams** — Focus on product, not plumbing.
395
+
396
+ **Enterprises** — Scale to millions of autonomous entities.
397
+
398
+ ---
399
+
400
+ [.do](https://platform) | [workers.do](https://workers.do) | [agents.do](https://agents.do) | [db4.ai](https://db4.ai)
@@ -0,0 +1,129 @@
1
+ /**
2
+ * Embeddings - Vector Representations
3
+ *
4
+ * Generate vector embeddings for semantic search and similarity.
5
+ *
6
+ * Features:
7
+ * - Single and batch embedding generation
8
+ * - Multiple provider support
9
+ * - Configurable dimensions
10
+ * - Caching for repeated texts
11
+ *
12
+ * @module ai/embeddings
13
+ */
14
+ import type { EmbeddingOptions, EmbeddingResult, BatchEmbeddingResult, EmbeddingProvider } from '../types/ai';
15
+ /**
16
+ * Generate embedding for a single text
17
+ *
18
+ * @param text - The text to embed
19
+ * @param options - Embedding options
20
+ * @returns Embedding result with vector
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * // Simple embedding
25
+ * const result = await embed('Hello world')
26
+ * console.log(result.embedding) // number[]
27
+ * console.log(result.dimensions) // e.g., 1536
28
+ *
29
+ * // With options
30
+ * const result = await embed('Hello', {
31
+ * provider: 'openai',
32
+ * model: 'text-embedding-3-large',
33
+ * dimensions: 1024
34
+ * })
35
+ * ```
36
+ */
37
+ export declare function embed(text: string, options?: EmbeddingOptions): Promise<EmbeddingResult>;
38
+ /**
39
+ * Generate embeddings for multiple texts
40
+ *
41
+ * Automatically handles batching based on provider limits.
42
+ *
43
+ * @param texts - Array of texts to embed
44
+ * @param options - Embedding options
45
+ * @returns Batch embedding result
46
+ *
47
+ * @example
48
+ * ```typescript
49
+ * const results = await embedBatch([
50
+ * 'First document',
51
+ * 'Second document',
52
+ * 'Third document'
53
+ * ])
54
+ *
55
+ * results.embeddings.forEach((e, i) => {
56
+ * console.log(`Document ${i}: ${e.dimensions} dimensions`)
57
+ * })
58
+ * ```
59
+ */
60
+ export declare function embedBatch(texts: string[], options?: EmbeddingOptions): Promise<BatchEmbeddingResult>;
61
+ /**
62
+ * Compute cosine similarity between two embeddings
63
+ *
64
+ * @param a - First embedding vector
65
+ * @param b - Second embedding vector
66
+ * @returns Similarity score between -1 and 1
67
+ *
68
+ * @example
69
+ * ```typescript
70
+ * const e1 = await embed('Hello')
71
+ * const e2 = await embed('Hi there')
72
+ * const similarity = cosineSimilarity(e1.embedding, e2.embedding)
73
+ * // => 0.85 (high similarity)
74
+ * ```
75
+ */
76
+ export declare function cosineSimilarity(a: number[], b: number[]): number;
77
+ /**
78
+ * Compute Euclidean distance between two embeddings
79
+ *
80
+ * @param a - First embedding vector
81
+ * @param b - Second embedding vector
82
+ * @returns Distance (0 = identical)
83
+ */
84
+ export declare function euclideanDistance(a: number[], b: number[]): number;
85
+ /**
86
+ * Find the most similar embeddings from a set
87
+ *
88
+ * @param query - Query embedding
89
+ * @param candidates - Array of candidate embeddings
90
+ * @param topK - Number of results to return
91
+ * @returns Indices and scores of most similar candidates
92
+ *
93
+ * @example
94
+ * ```typescript
95
+ * const queryEmbed = await embed('programming languages')
96
+ * const docEmbeds = await embedBatch(['Python', 'JavaScript', 'Cooking', 'Music'])
97
+ *
98
+ * const results = findSimilar(
99
+ * queryEmbed.embedding,
100
+ * docEmbeds.embeddings.map(e => e.embedding),
101
+ * 2
102
+ * )
103
+ * // => [{ index: 0, score: 0.9 }, { index: 1, score: 0.88 }]
104
+ * ```
105
+ */
106
+ export declare function findSimilar(query: number[], candidates: number[][], topK?: number): Array<{
107
+ index: number;
108
+ score: number;
109
+ }>;
110
+ /**
111
+ * Normalize embedding to unit length
112
+ *
113
+ * @param embedding - Embedding vector
114
+ * @returns Normalized vector
115
+ */
116
+ export declare function normalizeEmbedding(embedding: number[]): number[];
117
+ /**
118
+ * Get the default model for a provider
119
+ *
120
+ * @internal
121
+ */
122
+ export declare function getDefaultModel(provider: EmbeddingProvider): string;
123
+ /**
124
+ * Get the max batch size for a provider
125
+ *
126
+ * @internal
127
+ */
128
+ export declare function getMaxBatchSize(provider: EmbeddingProvider): number;
129
+ //# sourceMappingURL=embeddings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embeddings.d.ts","sourceRoot":"","sources":["../../ai/embeddings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,aAAa,CAAA;AA4BpB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,KAAK,CACzB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,eAAe,CAAC,CAO1B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,UAAU,CAC9B,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,oBAAoB,CAAC,CAQ/B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAgBjE;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAYlE;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,MAAM,EAAE,EACf,UAAU,EAAE,MAAM,EAAE,EAAE,EACtB,IAAI,GAAE,MAAU,GACf,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CASzC;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAGhE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,CAEnE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,CAEnE"}