@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.
- package/README.md +400 -0
- package/dist/ai/embeddings.d.ts +129 -0
- package/dist/ai/embeddings.d.ts.map +1 -0
- package/dist/ai/embeddings.js +217 -0
- package/dist/ai/embeddings.js.map +1 -0
- package/dist/ai/gateway.d.ts +139 -0
- package/dist/ai/gateway.d.ts.map +1 -0
- package/dist/ai/gateway.js +179 -0
- package/dist/ai/gateway.js.map +1 -0
- package/dist/ai/image.d.ts +140 -0
- package/dist/ai/image.d.ts.map +1 -0
- package/dist/ai/image.js +199 -0
- package/dist/ai/image.js.map +1 -0
- package/dist/ai/index.d.ts +98 -0
- package/dist/ai/index.d.ts.map +1 -0
- package/dist/ai/index.js +223 -0
- package/dist/ai/index.js.map +1 -0
- package/dist/ai/models.d.ts +81 -0
- package/dist/ai/models.d.ts.map +1 -0
- package/dist/ai/models.js +537 -0
- package/dist/ai/models.js.map +1 -0
- package/dist/ai/text.d.ts +176 -0
- package/dist/ai/text.d.ts.map +1 -0
- package/dist/ai/text.js +253 -0
- package/dist/ai/text.js.map +1 -0
- package/dist/ai/voice/agents.d.ts +224 -0
- package/dist/ai/voice/agents.d.ts.map +1 -0
- package/dist/ai/voice/agents.js +375 -0
- package/dist/ai/voice/agents.js.map +1 -0
- package/dist/ai/voice/campaigns.d.ts +307 -0
- package/dist/ai/voice/campaigns.d.ts.map +1 -0
- package/dist/ai/voice/campaigns.js +739 -0
- package/dist/ai/voice/campaigns.js.map +1 -0
- package/dist/ai/voice/index.d.ts +21 -0
- package/dist/ai/voice/index.d.ts.map +1 -0
- package/dist/ai/voice/index.js +42 -0
- package/dist/ai/voice/index.js.map +1 -0
- package/dist/ai/voice/providers.d.ts +283 -0
- package/dist/ai/voice/providers.d.ts.map +1 -0
- package/dist/ai/voice/providers.js +286 -0
- package/dist/ai/voice/providers.js.map +1 -0
- package/dist/ai/voice/sessions.d.ts +294 -0
- package/dist/ai/voice/sessions.d.ts.map +1 -0
- package/dist/ai/voice/sessions.js +531 -0
- package/dist/ai/voice/sessions.js.map +1 -0
- package/dist/ai/voice/tools.d.ts +242 -0
- package/dist/ai/voice/tools.d.ts.map +1 -0
- package/dist/ai/voice/tools.js +370 -0
- package/dist/ai/voice/tools.js.map +1 -0
- package/dist/ai/voice/tts.d.ts +173 -0
- package/dist/ai/voice/tts.d.ts.map +1 -0
- package/dist/ai/voice/tts.js +252 -0
- package/dist/ai/voice/tts.js.map +1 -0
- package/dist/ai/voice/webrtc.d.ts +228 -0
- package/dist/ai/voice/webrtc.d.ts.map +1 -0
- package/dist/ai/voice/webrtc.js +372 -0
- package/dist/ai/voice/webrtc.js.map +1 -0
- package/dist/api/index.d.ts +103 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +191 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/mcp/handlers.d.ts +25 -0
- package/dist/api/mcp/handlers.d.ts.map +1 -0
- package/dist/api/mcp/handlers.js +422 -0
- package/dist/api/mcp/handlers.js.map +1 -0
- package/dist/api/mcp/index.d.ts +113 -0
- package/dist/api/mcp/index.d.ts.map +1 -0
- package/dist/api/mcp/index.js +141 -0
- package/dist/api/mcp/index.js.map +1 -0
- package/dist/api/middleware/auth.d.ts +65 -0
- package/dist/api/middleware/auth.d.ts.map +1 -0
- package/dist/api/middleware/auth.js +271 -0
- package/dist/api/middleware/auth.js.map +1 -0
- package/dist/api/middleware/cors.d.ts +62 -0
- package/dist/api/middleware/cors.d.ts.map +1 -0
- package/dist/api/middleware/cors.js +225 -0
- package/dist/api/middleware/cors.js.map +1 -0
- package/dist/api/middleware/index.d.ts +60 -0
- package/dist/api/middleware/index.d.ts.map +1 -0
- package/dist/api/middleware/index.js +175 -0
- package/dist/api/middleware/index.js.map +1 -0
- package/dist/api/middleware/rateLimit.d.ts +84 -0
- package/dist/api/middleware/rateLimit.d.ts.map +1 -0
- package/dist/api/middleware/rateLimit.js +321 -0
- package/dist/api/middleware/rateLimit.js.map +1 -0
- package/dist/api/routes/ai.d.ts +17 -0
- package/dist/api/routes/ai.d.ts.map +1 -0
- package/dist/api/routes/ai.js +430 -0
- package/dist/api/routes/ai.js.map +1 -0
- package/dist/api/routes/do.d.ts +17 -0
- package/dist/api/routes/do.d.ts.map +1 -0
- package/dist/api/routes/do.js +458 -0
- package/dist/api/routes/do.js.map +1 -0
- package/dist/api/routes/functions.d.ts +111 -0
- package/dist/api/routes/functions.d.ts.map +1 -0
- package/dist/api/routes/functions.js +548 -0
- package/dist/api/routes/functions.js.map +1 -0
- package/dist/api/routes/health.d.ts +16 -0
- package/dist/api/routes/health.d.ts.map +1 -0
- package/dist/api/routes/health.js +163 -0
- package/dist/api/routes/health.js.map +1 -0
- package/dist/api/routes/index.d.ts +41 -0
- package/dist/api/routes/index.d.ts.map +1 -0
- package/dist/api/routes/index.js +275 -0
- package/dist/api/routes/index.js.map +1 -0
- package/dist/api/routes/nouns.d.ts +26 -0
- package/dist/api/routes/nouns.d.ts.map +1 -0
- package/dist/api/routes/nouns.js +456 -0
- package/dist/api/routes/nouns.js.map +1 -0
- package/dist/api/routes/orgs.d.ts +17 -0
- package/dist/api/routes/orgs.d.ts.map +1 -0
- package/dist/api/routes/orgs.js +560 -0
- package/dist/api/routes/orgs.js.map +1 -0
- package/dist/api/routes/relationships.d.ts +30 -0
- package/dist/api/routes/relationships.d.ts.map +1 -0
- package/dist/api/routes/relationships.js +360 -0
- package/dist/api/routes/relationships.js.map +1 -0
- package/dist/api/routes/roles.d.ts +17 -0
- package/dist/api/routes/roles.d.ts.map +1 -0
- package/dist/api/routes/roles.js +721 -0
- package/dist/api/routes/roles.js.map +1 -0
- package/dist/api/routes/things.d.ts +27 -0
- package/dist/api/routes/things.d.ts.map +1 -0
- package/dist/api/routes/things.js +568 -0
- package/dist/api/routes/things.js.map +1 -0
- package/dist/api/routes/users.d.ts +17 -0
- package/dist/api/routes/users.d.ts.map +1 -0
- package/dist/api/routes/users.js +401 -0
- package/dist/api/routes/users.js.map +1 -0
- package/dist/api/routes/verbs.d.ts +31 -0
- package/dist/api/routes/verbs.d.ts.map +1 -0
- package/dist/api/routes/verbs.js +505 -0
- package/dist/api/routes/verbs.js.map +1 -0
- package/dist/api/routes/workflows.d.ts +44 -0
- package/dist/api/routes/workflows.d.ts.map +1 -0
- package/dist/api/routes/workflows.js +521 -0
- package/dist/api/routes/workflows.js.map +1 -0
- package/dist/api/types.d.ts +370 -0
- package/dist/api/types.d.ts.map +1 -0
- package/dist/api/types.js +11 -0
- package/dist/api/types.js.map +1 -0
- package/dist/db/cdc/events.d.ts +201 -0
- package/dist/db/cdc/events.d.ts.map +1 -0
- package/dist/db/cdc/events.js +271 -0
- package/dist/db/cdc/events.js.map +1 -0
- package/dist/db/cdc/index.d.ts +13 -0
- package/dist/db/cdc/index.d.ts.map +1 -0
- package/dist/db/cdc/index.js +16 -0
- package/dist/db/cdc/index.js.map +1 -0
- package/dist/db/cdc/replay.d.ts +388 -0
- package/dist/db/cdc/replay.d.ts.map +1 -0
- package/dist/db/cdc/replay.js +469 -0
- package/dist/db/cdc/replay.js.map +1 -0
- package/dist/db/cdc/storage.d.ts +567 -0
- package/dist/db/cdc/storage.d.ts.map +1 -0
- package/dist/db/cdc/storage.js +856 -0
- package/dist/db/cdc/storage.js.map +1 -0
- package/dist/db/cdc/streaming.d.ts +459 -0
- package/dist/db/cdc/streaming.d.ts.map +1 -0
- package/dist/db/cdc/streaming.js +636 -0
- package/dist/db/cdc/streaming.js.map +1 -0
- package/dist/db/collections/actions.d.ts +440 -0
- package/dist/db/collections/actions.d.ts.map +1 -0
- package/dist/db/collections/actions.js +631 -0
- package/dist/db/collections/actions.js.map +1 -0
- package/dist/db/collections/base.d.ts +342 -0
- package/dist/db/collections/base.d.ts.map +1 -0
- package/dist/db/collections/base.js +510 -0
- package/dist/db/collections/base.js.map +1 -0
- package/dist/db/collections/index.d.ts +50 -0
- package/dist/db/collections/index.d.ts.map +1 -0
- package/dist/db/collections/index.js +48 -0
- package/dist/db/collections/index.js.map +1 -0
- package/dist/db/collections/nouns.d.ts +260 -0
- package/dist/db/collections/nouns.d.ts.map +1 -0
- package/dist/db/collections/nouns.js +273 -0
- package/dist/db/collections/nouns.js.map +1 -0
- package/dist/db/collections/relationships.d.ts +484 -0
- package/dist/db/collections/relationships.d.ts.map +1 -0
- package/dist/db/collections/relationships.js +815 -0
- package/dist/db/collections/relationships.js.map +1 -0
- package/dist/db/collections/things.d.ts +439 -0
- package/dist/db/collections/things.d.ts.map +1 -0
- package/dist/db/collections/things.js +603 -0
- package/dist/db/collections/things.js.map +1 -0
- package/dist/db/collections/verbs.d.ts +308 -0
- package/dist/db/collections/verbs.d.ts.map +1 -0
- package/dist/db/collections/verbs.js +480 -0
- package/dist/db/collections/verbs.js.map +1 -0
- package/dist/db/index.d.ts +14 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +23 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/storage/cold.d.ts +313 -0
- package/dist/db/storage/cold.d.ts.map +1 -0
- package/dist/db/storage/cold.js +319 -0
- package/dist/db/storage/cold.js.map +1 -0
- package/dist/db/storage/hot.d.ts +340 -0
- package/dist/db/storage/hot.d.ts.map +1 -0
- package/dist/db/storage/hot.js +333 -0
- package/dist/db/storage/hot.js.map +1 -0
- package/dist/db/storage/index.d.ts +242 -0
- package/dist/db/storage/index.d.ts.map +1 -0
- package/dist/db/storage/index.js +109 -0
- package/dist/db/storage/index.js.map +1 -0
- package/dist/db/storage/snapshots.d.ts +342 -0
- package/dist/db/storage/snapshots.d.ts.map +1 -0
- package/dist/db/storage/snapshots.js +298 -0
- package/dist/db/storage/snapshots.js.map +1 -0
- package/dist/db/storage/vortex.d.ts +324 -0
- package/dist/db/storage/vortex.d.ts.map +1 -0
- package/dist/db/storage/vortex.js +365 -0
- package/dist/db/storage/vortex.js.map +1 -0
- package/dist/db/storage/warm.d.ts +306 -0
- package/dist/db/storage/warm.d.ts.map +1 -0
- package/dist/db/storage/warm.js +339 -0
- package/dist/db/storage/warm.js.map +1 -0
- package/dist/do/DigitalObject.d.ts +595 -0
- package/dist/do/DigitalObject.d.ts.map +1 -0
- package/dist/do/DigitalObject.js +971 -0
- package/dist/do/DigitalObject.js.map +1 -0
- package/dist/do/business/financial/accounting.d.ts +436 -0
- package/dist/do/business/financial/accounting.d.ts.map +1 -0
- package/dist/do/business/financial/accounting.js +476 -0
- package/dist/do/business/financial/accounting.js.map +1 -0
- package/dist/do/business/financial/index.d.ts +15 -0
- package/dist/do/business/financial/index.d.ts.map +1 -0
- package/dist/do/business/financial/index.js +20 -0
- package/dist/do/business/financial/index.js.map +1 -0
- package/dist/do/business/financial/metrics.d.ts +370 -0
- package/dist/do/business/financial/metrics.d.ts.map +1 -0
- package/dist/do/business/financial/metrics.js +376 -0
- package/dist/do/business/financial/metrics.js.map +1 -0
- package/dist/do/business/financial/payments.d.ts +397 -0
- package/dist/do/business/financial/payments.d.ts.map +1 -0
- package/dist/do/business/financial/payments.js +395 -0
- package/dist/do/business/financial/payments.js.map +1 -0
- package/dist/do/business/financial/reports.d.ts +284 -0
- package/dist/do/business/financial/reports.d.ts.map +1 -0
- package/dist/do/business/financial/reports.js +347 -0
- package/dist/do/business/financial/reports.js.map +1 -0
- package/dist/do/business/financial/stripe.d.ts +254 -0
- package/dist/do/business/financial/stripe.d.ts.map +1 -0
- package/dist/do/business/financial/stripe.js +261 -0
- package/dist/do/business/financial/stripe.js.map +1 -0
- package/dist/do/business/financial/subscriptions.d.ts +402 -0
- package/dist/do/business/financial/subscriptions.d.ts.map +1 -0
- package/dist/do/business/financial/subscriptions.js +349 -0
- package/dist/do/business/financial/subscriptions.js.map +1 -0
- package/dist/do/business/index.d.ts +9 -0
- package/dist/do/business/index.d.ts.map +1 -0
- package/dist/do/business/index.js +10 -0
- package/dist/do/business/index.js.map +1 -0
- package/dist/do/colo/followers.d.ts +194 -0
- package/dist/do/colo/followers.d.ts.map +1 -0
- package/dist/do/colo/followers.js +224 -0
- package/dist/do/colo/followers.js.map +1 -0
- package/dist/do/colo/fork.d.ts +103 -0
- package/dist/do/colo/fork.d.ts.map +1 -0
- package/dist/do/colo/fork.js +143 -0
- package/dist/do/colo/fork.js.map +1 -0
- package/dist/do/colo/index.d.ts +181 -0
- package/dist/do/colo/index.d.ts.map +1 -0
- package/dist/do/colo/index.js +145 -0
- package/dist/do/colo/index.js.map +1 -0
- package/dist/do/colo/info.d.ts +106 -0
- package/dist/do/colo/info.d.ts.map +1 -0
- package/dist/do/colo/info.js +196 -0
- package/dist/do/colo/info.js.map +1 -0
- package/dist/do/colo/migrate.d.ts +161 -0
- package/dist/do/colo/migrate.d.ts.map +1 -0
- package/dist/do/colo/migrate.js +190 -0
- package/dist/do/colo/migrate.js.map +1 -0
- package/dist/do/colo/routing.d.ts +182 -0
- package/dist/do/colo/routing.d.ts.map +1 -0
- package/dist/do/colo/routing.js +254 -0
- package/dist/do/colo/routing.js.map +1 -0
- package/dist/do/domains/dns.d.ts +269 -0
- package/dist/do/domains/dns.d.ts.map +1 -0
- package/dist/do/domains/dns.js +215 -0
- package/dist/do/domains/dns.js.map +1 -0
- package/dist/do/domains/index.d.ts +40 -0
- package/dist/do/domains/index.d.ts.map +1 -0
- package/dist/do/domains/index.js +61 -0
- package/dist/do/domains/index.js.map +1 -0
- package/dist/do/domains/routing.d.ts +263 -0
- package/dist/do/domains/routing.d.ts.map +1 -0
- package/dist/do/domains/routing.js +362 -0
- package/dist/do/domains/routing.js.map +1 -0
- package/dist/do/domains/ssl.d.ts +217 -0
- package/dist/do/domains/ssl.d.ts.map +1 -0
- package/dist/do/domains/ssl.js +231 -0
- package/dist/do/domains/ssl.js.map +1 -0
- package/dist/do/domains/subdomains.d.ts +207 -0
- package/dist/do/domains/subdomains.d.ts.map +1 -0
- package/dist/do/domains/subdomains.js +223 -0
- package/dist/do/domains/subdomains.js.map +1 -0
- package/dist/do/domains/tlds.d.ts +175 -0
- package/dist/do/domains/tlds.d.ts.map +1 -0
- package/dist/do/domains/tlds.js +188 -0
- package/dist/do/domains/tlds.js.map +1 -0
- package/dist/do/domains/validation.d.ts +164 -0
- package/dist/do/domains/validation.d.ts.map +1 -0
- package/dist/do/domains/validation.js +290 -0
- package/dist/do/domains/validation.js.map +1 -0
- package/dist/do/hibernation.d.ts +385 -0
- package/dist/do/hibernation.d.ts.map +1 -0
- package/dist/do/hibernation.js +518 -0
- package/dist/do/hibernation.js.map +1 -0
- package/dist/do/index.d.ts +19 -0
- package/dist/do/index.d.ts.map +1 -0
- package/dist/do/index.js +23 -0
- package/dist/do/index.js.map +1 -0
- package/dist/do/state.d.ts +336 -0
- package/dist/do/state.d.ts.map +1 -0
- package/dist/do/state.js +290 -0
- package/dist/do/state.js.map +1 -0
- package/dist/index.d.ts +44 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +89 -0
- package/dist/index.js.map +1 -0
- package/dist/rpc/client.d.ts +426 -0
- package/dist/rpc/client.d.ts.map +1 -0
- package/dist/rpc/client.js +826 -0
- package/dist/rpc/client.js.map +1 -0
- package/dist/rpc/index.d.ts +19 -0
- package/dist/rpc/index.d.ts.map +1 -0
- package/dist/rpc/index.js +23 -0
- package/dist/rpc/index.js.map +1 -0
- package/dist/rpc/methods.d.ts +364 -0
- package/dist/rpc/methods.d.ts.map +1 -0
- package/dist/rpc/methods.js +557 -0
- package/dist/rpc/methods.js.map +1 -0
- package/dist/rpc/protocol.d.ts +310 -0
- package/dist/rpc/protocol.d.ts.map +1 -0
- package/dist/rpc/protocol.js +672 -0
- package/dist/rpc/protocol.js.map +1 -0
- package/dist/rpc/routes.d.ts +332 -0
- package/dist/rpc/routes.d.ts.map +1 -0
- package/dist/rpc/routes.js +633 -0
- package/dist/rpc/routes.js.map +1 -0
- package/dist/rpc/server.d.ts +380 -0
- package/dist/rpc/server.d.ts.map +1 -0
- package/dist/rpc/server.js +850 -0
- package/dist/rpc/server.js.map +1 -0
- package/dist/sdk/auth.d.ts +201 -0
- package/dist/sdk/auth.d.ts.map +1 -0
- package/dist/sdk/auth.js +343 -0
- package/dist/sdk/auth.js.map +1 -0
- package/dist/sdk/client.d.ts +123 -0
- package/dist/sdk/client.d.ts.map +1 -0
- package/dist/sdk/client.js +403 -0
- package/dist/sdk/client.js.map +1 -0
- package/dist/sdk/index.d.ts +123 -0
- package/dist/sdk/index.d.ts.map +1 -0
- package/dist/sdk/index.js +230 -0
- package/dist/sdk/index.js.map +1 -0
- package/dist/sdk/rpc.d.ts +275 -0
- package/dist/sdk/rpc.d.ts.map +1 -0
- package/dist/sdk/rpc.js +249 -0
- package/dist/sdk/rpc.js.map +1 -0
- package/dist/sdk/transport.d.ts +283 -0
- package/dist/sdk/transport.d.ts.map +1 -0
- package/dist/sdk/transport.js +661 -0
- package/dist/sdk/transport.js.map +1 -0
- package/dist/sdk/types.d.ts +265 -0
- package/dist/sdk/types.d.ts.map +1 -0
- package/dist/sdk/types.js +27 -0
- package/dist/sdk/types.js.map +1 -0
- package/dist/types/ai.d.ts +533 -0
- package/dist/types/ai.d.ts.map +1 -0
- package/dist/types/ai.js +18 -0
- package/dist/types/ai.js.map +1 -0
- package/dist/types/app.d.ts +371 -0
- package/dist/types/app.d.ts.map +1 -0
- package/dist/types/app.js +151 -0
- package/dist/types/app.js.map +1 -0
- package/dist/types/business.d.ts +482 -0
- package/dist/types/business.d.ts.map +1 -0
- package/dist/types/business.js +60 -0
- package/dist/types/business.js.map +1 -0
- package/dist/types/cascade.d.ts +323 -0
- package/dist/types/cascade.d.ts.map +1 -0
- package/dist/types/cascade.js +82 -0
- package/dist/types/cascade.js.map +1 -0
- package/dist/types/collections.d.ts +704 -0
- package/dist/types/collections.d.ts.map +1 -0
- package/dist/types/collections.js +23 -0
- package/dist/types/collections.js.map +1 -0
- package/dist/types/colo.d.ts +171 -0
- package/dist/types/colo.d.ts.map +1 -0
- package/dist/types/colo.js +63 -0
- package/dist/types/colo.js.map +1 -0
- package/dist/types/communication.d.ts +595 -0
- package/dist/types/communication.d.ts.map +1 -0
- package/dist/types/communication.js +16 -0
- package/dist/types/communication.js.map +1 -0
- package/dist/types/content.d.ts +286 -0
- package/dist/types/content.d.ts.map +1 -0
- package/dist/types/content.js +8 -0
- package/dist/types/content.js.map +1 -0
- package/dist/types/context.d.ts +407 -0
- package/dist/types/context.d.ts.map +1 -0
- package/dist/types/context.js +36 -0
- package/dist/types/context.js.map +1 -0
- package/dist/types/databases.d.ts +377 -0
- package/dist/types/databases.d.ts.map +1 -0
- package/dist/types/databases.js +14 -0
- package/dist/types/databases.js.map +1 -0
- package/dist/types/domains.d.ts +132 -0
- package/dist/types/domains.d.ts.map +1 -0
- package/dist/types/domains.js +107 -0
- package/dist/types/domains.js.map +1 -0
- package/dist/types/execution.d.ts +381 -0
- package/dist/types/execution.d.ts.map +1 -0
- package/dist/types/execution.js +40 -0
- package/dist/types/execution.js.map +1 -0
- package/dist/types/financial.d.ts +608 -0
- package/dist/types/financial.d.ts.map +1 -0
- package/dist/types/financial.js +12 -0
- package/dist/types/financial.js.map +1 -0
- package/dist/types/functions.d.ts +215 -0
- package/dist/types/functions.d.ts.map +1 -0
- package/dist/types/functions.js +15 -0
- package/dist/types/functions.js.map +1 -0
- package/dist/types/git.d.ts +299 -0
- package/dist/types/git.d.ts.map +1 -0
- package/dist/types/git.js +17 -0
- package/dist/types/git.js.map +1 -0
- package/dist/types/identity.d.ts +141 -0
- package/dist/types/identity.d.ts.map +1 -0
- package/dist/types/identity.js +54 -0
- package/dist/types/identity.js.map +1 -0
- package/dist/types/index.d.ts +40 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +65 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/integrations.d.ts +356 -0
- package/dist/types/integrations.d.ts.map +1 -0
- package/dist/types/integrations.js +19 -0
- package/dist/types/integrations.js.map +1 -0
- package/dist/types/mdxui.d.ts +1955 -0
- package/dist/types/mdxui.d.ts.map +1 -0
- package/dist/types/mdxui.js +751 -0
- package/dist/types/mdxui.js.map +1 -0
- package/dist/types/observability.d.ts +315 -0
- package/dist/types/observability.d.ts.map +1 -0
- package/dist/types/observability.js +13 -0
- package/dist/types/observability.js.map +1 -0
- package/dist/types/rpc.d.ts +339 -0
- package/dist/types/rpc.d.ts.map +1 -0
- package/dist/types/rpc.js +24 -0
- package/dist/types/rpc.js.map +1 -0
- package/dist/types/saas.d.ts +678 -0
- package/dist/types/saas.d.ts.map +1 -0
- package/dist/types/saas.js +59 -0
- package/dist/types/saas.js.map +1 -0
- package/dist/types/service.d.ts +676 -0
- package/dist/types/service.d.ts.map +1 -0
- package/dist/types/service.js +69 -0
- package/dist/types/service.js.map +1 -0
- package/dist/types/site.d.ts +317 -0
- package/dist/types/site.d.ts.map +1 -0
- package/dist/types/site.js +203 -0
- package/dist/types/site.js.map +1 -0
- package/dist/types/startup.d.ts +576 -0
- package/dist/types/startup.d.ts.map +1 -0
- package/dist/types/startup.js +59 -0
- package/dist/types/startup.js.map +1 -0
- package/dist/types/storage.d.ts +276 -0
- package/dist/types/storage.d.ts.map +1 -0
- package/dist/types/storage.js +35 -0
- package/dist/types/storage.js.map +1 -0
- package/dist/types/telephony.d.ts +458 -0
- package/dist/types/telephony.d.ts.map +1 -0
- package/dist/types/telephony.js +19 -0
- package/dist/types/telephony.js.map +1 -0
- package/dist/types/tenant.d.ts +708 -0
- package/dist/types/tenant.d.ts.map +1 -0
- package/dist/types/tenant.js +103 -0
- package/dist/types/tenant.js.map +1 -0
- package/dist/types/voice-ai.d.ts +459 -0
- package/dist/types/voice-ai.d.ts.map +1 -0
- package/dist/types/voice-ai.js +32 -0
- package/dist/types/voice-ai.js.map +1 -0
- 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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"}
|