@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
@@ -0,0 +1,631 @@
1
+ /**
2
+ * Actions Collection - Durable action execution for Digital Objects
3
+ *
4
+ * @module collections/actions
5
+ *
6
+ * @description
7
+ * Manages durable Actions (instances of Verbs) within a Digital Object.
8
+ * Actions track the full lifecycle of operations from creation through completion,
9
+ * including retry handling, error tracking, and actor attribution.
10
+ *
11
+ * Action lifecycle:
12
+ * ```
13
+ * pending -> running -> completed
14
+ * -> failed -> retrying -> completed
15
+ * -> cancelled
16
+ * -> blocked (waiting on dependency)
17
+ * ```
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * const actions = new ActionCollection(storage, verbs)
22
+ *
23
+ * // Create an action
24
+ * const action = await actions.create({
25
+ * verb: 'subscribe',
26
+ * object: 'customer_123',
27
+ * input: { plan: 'pro' },
28
+ * actor: { type: 'User', id: 'user_456' }
29
+ * })
30
+ *
31
+ * // Start execution
32
+ * await actions.start(action.$id)
33
+ *
34
+ * // Complete with output
35
+ * await actions.complete(action.$id, { subscriptionId: 'sub_789' })
36
+ * ```
37
+ */
38
+ import { BaseCollection, NotFoundError, ValidationError } from './base';
39
+ /**
40
+ * Default retry policy
41
+ */
42
+ export const DEFAULT_RETRY_POLICY = {
43
+ maxAttempts: 3,
44
+ initialDelay: 1000,
45
+ maxDelay: 30000,
46
+ backoffMultiplier: 2,
47
+ };
48
+ /**
49
+ * Actions collection for durable action execution
50
+ *
51
+ * @description
52
+ * The ActionCollection manages the lifecycle of durable actions within a DO.
53
+ * Every action is an instance of a Verb and tracks:
54
+ *
55
+ * - Who initiated it (Actor: User, Agent, Service, System)
56
+ * - What it operates on (subject, object)
57
+ * - Its current status and history
58
+ * - Input, config, and output data
59
+ * - Errors and retry information
60
+ *
61
+ * Actions are durable - they survive DO hibernation and can be resumed.
62
+ * This enables long-running operations, workflows, and reliable execution.
63
+ *
64
+ * @example
65
+ * ```typescript
66
+ * const actions = new ActionCollection(storage, verbs)
67
+ *
68
+ * // Create and execute an action
69
+ * const action = await actions.create({
70
+ * verb: 'process',
71
+ * object: 'order_123',
72
+ * input: { priority: 'high' },
73
+ * actor: { type: 'Service', id: 'payment-service' }
74
+ * })
75
+ *
76
+ * try {
77
+ * await actions.start(action.$id)
78
+ * const result = await processOrder(action.input)
79
+ * await actions.complete(action.$id, result)
80
+ * } catch (error) {
81
+ * await actions.fail(action.$id, {
82
+ * code: 'PROCESS_ERROR',
83
+ * message: error.message,
84
+ * retryable: true
85
+ * })
86
+ * }
87
+ *
88
+ * // Query actions
89
+ * const pending = await actions.findByStatus('pending')
90
+ * const userActions = await actions.findByActor('User', 'user_123')
91
+ * ```
92
+ */
93
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
94
+ export class ActionCollection extends BaseCollection {
95
+ /**
96
+ * Reference to verb collection for type validation
97
+ */
98
+ verbs;
99
+ /**
100
+ * Default retry policy
101
+ */
102
+ retryPolicy;
103
+ /**
104
+ * Create a new ActionCollection instance
105
+ *
106
+ * @param storage - DO storage interface
107
+ * @param verbs - Verb collection for type validation
108
+ * @param retryPolicy - Optional custom retry policy
109
+ */
110
+ constructor(storage, verbs, retryPolicy = DEFAULT_RETRY_POLICY) {
111
+ super(storage, {
112
+ name: 'actions',
113
+ idPrefix: 'action',
114
+ });
115
+ this.verbs = verbs;
116
+ this.retryPolicy = retryPolicy;
117
+ }
118
+ /**
119
+ * Initialize the actions table in SQLite
120
+ *
121
+ * @internal
122
+ */
123
+ async initializeTable() {
124
+ // Using KV storage via BaseCollection, no SQL table needed
125
+ }
126
+ /**
127
+ * Create a new action
128
+ *
129
+ * @param data - Action creation options
130
+ * @returns Created action with generated ID and pending status
131
+ *
132
+ * @throws {ValidationError} If verb is not registered
133
+ *
134
+ * @example
135
+ * ```typescript
136
+ * const action = await actions.create({
137
+ * verb: 'approve',
138
+ * object: 'request_123',
139
+ * actor: { type: 'User', id: 'user_456', name: 'John' }
140
+ * })
141
+ * console.log(action.status) // 'pending'
142
+ * ```
143
+ */
144
+ async create(data) {
145
+ if (!data.verb) {
146
+ throw new ValidationError('Verb is required', 'verb');
147
+ }
148
+ if (!data.actor) {
149
+ throw new ValidationError('Actor is required', 'actor');
150
+ }
151
+ const $id = this.generateId();
152
+ const now = this.now();
153
+ const action = {
154
+ $id,
155
+ verb: data.verb,
156
+ subject: data.subject,
157
+ object: data.object,
158
+ input: data.input,
159
+ config: data.config,
160
+ status: 'pending',
161
+ actor: data.actor,
162
+ request: data.request,
163
+ createdAt: now,
164
+ updatedAt: now,
165
+ metadata: data.metadata,
166
+ };
167
+ const key = `${this.config.name}:${$id}`;
168
+ await this.storage.put(key, action);
169
+ return action;
170
+ }
171
+ /**
172
+ * Start action execution
173
+ *
174
+ * @param id - Action ID
175
+ * @returns Updated action with 'running' status
176
+ *
177
+ * @throws {NotFoundError} If action not found
178
+ * @throws {ValidationError} If action is not in 'pending' or 'retrying' status
179
+ *
180
+ * @example
181
+ * ```typescript
182
+ * const action = await actions.start('action_123')
183
+ * console.log(action.status) // 'running'
184
+ * console.log(action.startedAt) // timestamp
185
+ * ```
186
+ */
187
+ async start(id) {
188
+ const action = await this.get(id);
189
+ if (!action) {
190
+ throw new NotFoundError('actions', id);
191
+ }
192
+ const status = String(action.status).toLowerCase();
193
+ if (status !== 'pending' && status !== 'retrying') {
194
+ throw new ValidationError(`Cannot start action in '${action.status}' status. Must be 'pending' or 'retrying'.`);
195
+ }
196
+ const now = this.now();
197
+ const updated = {
198
+ ...action,
199
+ status: 'running',
200
+ startedAt: action.startedAt ?? now,
201
+ updatedAt: now,
202
+ };
203
+ const key = `${this.config.name}:${id}`;
204
+ await this.storage.put(key, updated);
205
+ return updated;
206
+ }
207
+ /**
208
+ * Complete action successfully
209
+ *
210
+ * @param id - Action ID
211
+ * @param output - Output data from action execution
212
+ * @returns Updated action with 'completed' status
213
+ *
214
+ * @throws {NotFoundError} If action not found
215
+ * @throws {ValidationError} If action is not in 'running' status
216
+ *
217
+ * @example
218
+ * ```typescript
219
+ * const action = await actions.complete('action_123', {
220
+ * subscriptionId: 'sub_789',
221
+ * activatedAt: Date.now()
222
+ * })
223
+ * console.log(action.status) // 'completed'
224
+ * ```
225
+ */
226
+ async complete(id, output) {
227
+ const action = await this.get(id);
228
+ if (!action) {
229
+ throw new NotFoundError('actions', id);
230
+ }
231
+ const status = String(action.status).toLowerCase();
232
+ if (status !== 'running') {
233
+ throw new ValidationError(`Cannot complete action in '${action.status}' status. Must be 'running'.`);
234
+ }
235
+ const now = this.now();
236
+ const updated = {
237
+ ...action,
238
+ status: 'completed',
239
+ output,
240
+ completedAt: now,
241
+ updatedAt: now,
242
+ };
243
+ const key = `${this.config.name}:${id}`;
244
+ await this.storage.put(key, updated);
245
+ return updated;
246
+ }
247
+ /**
248
+ * Fail action with error
249
+ *
250
+ * @param id - Action ID
251
+ * @param error - Error details
252
+ * @returns Updated action with 'failed' or 'retrying' status
253
+ *
254
+ * @throws {NotFoundError} If action not found
255
+ * @throws {ValidationError} If action is not in 'running' status
256
+ *
257
+ * @description
258
+ * If the error is retryable and retry attempts remain, status becomes 'retrying'.
259
+ * Otherwise, status becomes 'failed'.
260
+ *
261
+ * @example
262
+ * ```typescript
263
+ * const action = await actions.fail('action_123', {
264
+ * code: 'PAYMENT_DECLINED',
265
+ * message: 'Card declined',
266
+ * retryable: true
267
+ * })
268
+ * console.log(action.status) // 'retrying' or 'failed'
269
+ * ```
270
+ */
271
+ async fail(id, error) {
272
+ const action = await this.get(id);
273
+ if (!action) {
274
+ throw new NotFoundError('actions', id);
275
+ }
276
+ const status = String(action.status).toLowerCase();
277
+ if (status !== 'running') {
278
+ throw new ValidationError(`Cannot fail action in '${action.status}' status. Must be 'running'.`);
279
+ }
280
+ const retryCount = (action.error?.retryCount ?? 0) + 1;
281
+ const actionError = {
282
+ code: error.code,
283
+ message: error.message,
284
+ stack: error.stack,
285
+ retryCount,
286
+ retryable: error.retryable ?? false,
287
+ };
288
+ // Determine if we should retry
289
+ const canRetry = error.retryable && retryCount <= this.retryPolicy.maxAttempts;
290
+ const newStatus = canRetry ? 'retrying' : 'failed';
291
+ const now = this.now();
292
+ const updated = {
293
+ ...action,
294
+ status: newStatus,
295
+ error: actionError,
296
+ updatedAt: now,
297
+ };
298
+ const key = `${this.config.name}:${id}`;
299
+ await this.storage.put(key, updated);
300
+ return updated;
301
+ }
302
+ /**
303
+ * Cancel an action
304
+ *
305
+ * @param id - Action ID
306
+ * @param reason - Optional cancellation reason
307
+ * @returns Updated action with 'cancelled' status
308
+ *
309
+ * @throws {NotFoundError} If action not found
310
+ * @throws {ValidationError} If action is already completed or failed
311
+ *
312
+ * @example
313
+ * ```typescript
314
+ * await actions.cancel('action_123', 'User requested cancellation')
315
+ * ```
316
+ */
317
+ async cancel(id, reason) {
318
+ const action = await this.get(id);
319
+ if (!action) {
320
+ throw new NotFoundError('actions', id);
321
+ }
322
+ const status = String(action.status).toLowerCase();
323
+ if (status === 'completed' || status === 'failed' || status === 'cancelled') {
324
+ throw new ValidationError(`Cannot cancel action in '${action.status}' status.`);
325
+ }
326
+ const now = this.now();
327
+ const metadata = { ...(action.metadata ?? {}), ...(reason ? { cancellationReason: reason } : {}) };
328
+ const updated = {
329
+ ...action,
330
+ status: 'cancelled',
331
+ metadata,
332
+ updatedAt: now,
333
+ };
334
+ const key = `${this.config.name}:${id}`;
335
+ await this.storage.put(key, updated);
336
+ return updated;
337
+ }
338
+ /**
339
+ * Block an action (waiting on dependency)
340
+ *
341
+ * @param id - Action ID
342
+ * @param dependency - ID of the blocking action or resource
343
+ * @returns Updated action with 'blocked' status
344
+ *
345
+ * @throws {NotFoundError} If action not found
346
+ *
347
+ * @example
348
+ * ```typescript
349
+ * // Block action until payment is processed
350
+ * await actions.block('action_123', 'action_payment_456')
351
+ * ```
352
+ */
353
+ async block(id, dependency) {
354
+ const action = await this.get(id);
355
+ if (!action) {
356
+ throw new NotFoundError('actions', id);
357
+ }
358
+ const now = this.now();
359
+ const metadata = { ...(action.metadata ?? {}), dependency };
360
+ const updated = {
361
+ ...action,
362
+ status: 'blocked',
363
+ metadata,
364
+ updatedAt: now,
365
+ };
366
+ const key = `${this.config.name}:${id}`;
367
+ await this.storage.put(key, updated);
368
+ return updated;
369
+ }
370
+ /**
371
+ * Unblock an action
372
+ *
373
+ * @param id - Action ID
374
+ * @returns Updated action with 'pending' status
375
+ *
376
+ * @throws {NotFoundError} If action not found
377
+ * @throws {ValidationError} If action is not blocked
378
+ */
379
+ async unblock(id) {
380
+ const action = await this.get(id);
381
+ if (!action) {
382
+ throw new NotFoundError('actions', id);
383
+ }
384
+ const status = String(action.status).toLowerCase();
385
+ if (status !== 'blocked') {
386
+ throw new ValidationError(`Cannot unblock action in '${action.status}' status. Must be 'blocked'.`);
387
+ }
388
+ const now = this.now();
389
+ const updated = {
390
+ ...action,
391
+ status: 'pending',
392
+ updatedAt: now,
393
+ };
394
+ const key = `${this.config.name}:${id}`;
395
+ await this.storage.put(key, updated);
396
+ return updated;
397
+ }
398
+ /**
399
+ * Get action by ID
400
+ *
401
+ * @param id - Action ID
402
+ * @returns Action or null if not found
403
+ */
404
+ async get(id) {
405
+ if (!id)
406
+ return null;
407
+ const key = `${this.config.name}:${id}`;
408
+ const action = await this.storage.get(key);
409
+ return action ?? null;
410
+ }
411
+ /**
412
+ * Find actions by status
413
+ *
414
+ * @param status - Action status to filter by
415
+ * @returns Array of matching actions
416
+ *
417
+ * @example
418
+ * ```typescript
419
+ * const pending = await actions.findByStatus('pending')
420
+ * const running = await actions.findByStatus('running')
421
+ * ```
422
+ */
423
+ async findByStatus(status) {
424
+ const prefix = `${this.config.name}:`;
425
+ const allItems = await this.storage.list({ prefix });
426
+ const statusLower = String(status).toLowerCase();
427
+ const results = [];
428
+ for (const item of allItems.values()) {
429
+ if (String(item.status).toLowerCase() === statusLower) {
430
+ results.push(item);
431
+ }
432
+ }
433
+ return results;
434
+ }
435
+ /**
436
+ * Find actions by verb
437
+ *
438
+ * @param verb - Verb action form
439
+ * @returns Array of matching actions
440
+ *
441
+ * @example
442
+ * ```typescript
443
+ * const approvals = await actions.findByVerb('approve')
444
+ * ```
445
+ */
446
+ async findByVerb(verb) {
447
+ const prefix = `${this.config.name}:`;
448
+ const allItems = await this.storage.list({ prefix });
449
+ const results = [];
450
+ for (const item of allItems.values()) {
451
+ if (item.verb === verb) {
452
+ results.push(item);
453
+ }
454
+ }
455
+ return results;
456
+ }
457
+ /**
458
+ * Find actions by actor
459
+ *
460
+ * @param actorType - Actor type (User, Agent, Service, System)
461
+ * @param actorId - Actor ID
462
+ * @returns Array of matching actions
463
+ *
464
+ * @example
465
+ * ```typescript
466
+ * const userActions = await actions.findByActor('User', 'user_123')
467
+ * const serviceActions = await actions.findByActor('Service', 'payment-service')
468
+ * ```
469
+ */
470
+ async findByActor(actorType, actorId) {
471
+ const prefix = `${this.config.name}:`;
472
+ const allItems = await this.storage.list({ prefix });
473
+ const results = [];
474
+ for (const item of allItems.values()) {
475
+ if (item.actor?.type === actorType && item.actor?.id === actorId) {
476
+ results.push(item);
477
+ }
478
+ }
479
+ return results;
480
+ }
481
+ /**
482
+ * Find actions by object
483
+ *
484
+ * @param object - Object ID
485
+ * @returns Array of actions on the object
486
+ *
487
+ * @example
488
+ * ```typescript
489
+ * const orderActions = await actions.findByObject('order_123')
490
+ * ```
491
+ */
492
+ async findByObject(object) {
493
+ const prefix = `${this.config.name}:`;
494
+ const allItems = await this.storage.list({ prefix });
495
+ const results = [];
496
+ for (const item of allItems.values()) {
497
+ if (item.object === object) {
498
+ results.push(item);
499
+ }
500
+ }
501
+ return results;
502
+ }
503
+ /**
504
+ * Find retryable actions that are ready for retry
505
+ *
506
+ * @returns Actions in 'retrying' status ready for next attempt
507
+ *
508
+ * @description
509
+ * Calculates next retry time based on retry policy and returns
510
+ * actions that are past their retry delay.
511
+ */
512
+ async findRetryable() {
513
+ const prefix = `${this.config.name}:`;
514
+ const allItems = await this.storage.list({ prefix });
515
+ const now = this.now();
516
+ const results = [];
517
+ for (const item of allItems.values()) {
518
+ if (String(item.status).toLowerCase() === 'retrying') {
519
+ const retryCount = item.error?.retryCount ?? 0;
520
+ const delay = this.calculateRetryDelay(retryCount - 1);
521
+ const lastFailedAt = item.updatedAt ?? item.createdAt;
522
+ if (now - lastFailedAt >= delay) {
523
+ results.push(item);
524
+ }
525
+ }
526
+ }
527
+ return results;
528
+ }
529
+ /**
530
+ * Get pending actions count
531
+ *
532
+ * @returns Number of pending actions
533
+ */
534
+ async getPendingCount() {
535
+ return this.count({ field: 'status', op: 'eq', value: 'pending' });
536
+ }
537
+ /**
538
+ * Get running actions count
539
+ *
540
+ * @returns Number of running actions
541
+ */
542
+ async getRunningCount() {
543
+ return this.count({ field: 'status', op: 'eq', value: 'running' });
544
+ }
545
+ /**
546
+ * Calculate next retry delay
547
+ *
548
+ * @param retryCount - Current retry count
549
+ * @returns Delay in milliseconds
550
+ *
551
+ * @internal
552
+ */
553
+ calculateRetryDelay(retryCount) {
554
+ const delay = this.retryPolicy.initialDelay * Math.pow(this.retryPolicy.backoffMultiplier, retryCount);
555
+ return Math.min(delay, this.retryPolicy.maxDelay);
556
+ }
557
+ /**
558
+ * Check if action can be retried
559
+ *
560
+ * @param action - Action to check
561
+ * @returns True if retry is possible
562
+ *
563
+ * @internal
564
+ */
565
+ canRetry(action) {
566
+ if (!action.error?.retryable)
567
+ return false;
568
+ const retryCount = action.error.retryCount ?? 0;
569
+ return retryCount < this.retryPolicy.maxAttempts;
570
+ }
571
+ /**
572
+ * Get action statistics
573
+ *
574
+ * @returns Count of actions by status
575
+ *
576
+ * @example
577
+ * ```typescript
578
+ * const stats = await actions.getStats()
579
+ * // { pending: 5, running: 2, completed: 100, failed: 3 }
580
+ * ```
581
+ */
582
+ async getStats() {
583
+ const prefix = `${this.config.name}:`;
584
+ const allItems = await this.storage.list({ prefix });
585
+ const stats = {
586
+ Pending: 0,
587
+ Running: 0,
588
+ Completed: 0,
589
+ Failed: 0,
590
+ Cancelled: 0,
591
+ Retrying: 0,
592
+ Blocked: 0,
593
+ };
594
+ for (const item of allItems.values()) {
595
+ const statusLower = String(item.status).toLowerCase();
596
+ // Map to PascalCase keys
597
+ const key = statusLower.charAt(0).toUpperCase() + statusLower.slice(1);
598
+ if (key in stats) {
599
+ stats[key]++;
600
+ }
601
+ }
602
+ return stats;
603
+ }
604
+ /**
605
+ * Clean up old completed/failed actions
606
+ *
607
+ * @param olderThan - Delete actions older than this timestamp
608
+ * @returns Number of deleted actions
609
+ *
610
+ * @example
611
+ * ```typescript
612
+ * // Delete completed actions older than 30 days
613
+ * const deleted = await actions.cleanup(Date.now() - 30 * 24 * 60 * 60 * 1000)
614
+ * ```
615
+ */
616
+ async cleanup(olderThan) {
617
+ const prefix = `${this.config.name}:`;
618
+ const allItems = await this.storage.list({ prefix });
619
+ let deleted = 0;
620
+ for (const [key, item] of allItems.entries()) {
621
+ const status = String(item.status).toLowerCase();
622
+ if ((status === 'completed' || status === 'failed' || status === 'cancelled') && item.createdAt < olderThan) {
623
+ await this.storage.delete(key);
624
+ deleted++;
625
+ }
626
+ }
627
+ return deleted;
628
+ }
629
+ }
630
+ export default ActionCollection;
631
+ //# sourceMappingURL=actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.js","sourceRoot":"","sources":["../../../db/collections/actions.ts"],"names":[],"mappings":"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"}