@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,375 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Voice Agent Management
|
|
3
|
+
*
|
|
4
|
+
* Voice agents are Agents with voice modality enabled.
|
|
5
|
+
* This module provides CRUD operations for voice-specific configuration
|
|
6
|
+
* that links to core Agent entities.
|
|
7
|
+
*
|
|
8
|
+
* @module ai/voice/agents
|
|
9
|
+
*/
|
|
10
|
+
import { VoiceProviderFactory } from './providers';
|
|
11
|
+
// =============================================================================
|
|
12
|
+
// Voice Agent Manager
|
|
13
|
+
// =============================================================================
|
|
14
|
+
/**
|
|
15
|
+
* Voice agent manager
|
|
16
|
+
*
|
|
17
|
+
* Provides CRUD operations for voice agents. Voice agents link to core Agent
|
|
18
|
+
* entities and add voice-specific configuration (voice settings, conversation
|
|
19
|
+
* config, phone integration).
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```typescript
|
|
23
|
+
* const manager = new VoiceAgentManager(storage)
|
|
24
|
+
*
|
|
25
|
+
* // Create a voice agent
|
|
26
|
+
* const agent = await manager.create({
|
|
27
|
+
* name: 'Sales Assistant',
|
|
28
|
+
* provider: 'vapi',
|
|
29
|
+
* voice: { provider: 'elevenlabs', voiceId: 'voice_rachel' },
|
|
30
|
+
* conversation: { systemPrompt: '...', model: 'gpt-4o', modelProvider: 'openai' },
|
|
31
|
+
* ownerRef: { $id: 'do_123', $type: 'Organization' },
|
|
32
|
+
* })
|
|
33
|
+
*
|
|
34
|
+
* // Update voice settings
|
|
35
|
+
* await manager.update(agent.id, { voice: { speed: 1.1 } })
|
|
36
|
+
*
|
|
37
|
+
* // List all agents
|
|
38
|
+
* const agents = await manager.list({ status: 'active' })
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export class VoiceAgentManager {
|
|
42
|
+
storage;
|
|
43
|
+
/**
|
|
44
|
+
* Create a new voice agent manager
|
|
45
|
+
*
|
|
46
|
+
* @param storage - DO storage interface
|
|
47
|
+
*/
|
|
48
|
+
constructor(storage) {
|
|
49
|
+
this.storage = storage;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Create a new voice agent
|
|
53
|
+
*
|
|
54
|
+
* Creates the agent in both the local DO storage and the provider's system.
|
|
55
|
+
*
|
|
56
|
+
* @param options - Agent configuration
|
|
57
|
+
* @returns Created voice agent
|
|
58
|
+
*/
|
|
59
|
+
async create(options) {
|
|
60
|
+
const id = `vagent_${generateId()}`;
|
|
61
|
+
const now = Date.now();
|
|
62
|
+
// Create agent in provider's system
|
|
63
|
+
const adapter = VoiceProviderFactory.get(options.provider);
|
|
64
|
+
const providerConfig = {
|
|
65
|
+
voice: options.voice,
|
|
66
|
+
conversation: options.conversation,
|
|
67
|
+
phone: options.phone ? {
|
|
68
|
+
inboundNumber: options.phone.inboundNumber,
|
|
69
|
+
outboundCallerId: options.phone.outboundCallerId,
|
|
70
|
+
} : undefined,
|
|
71
|
+
webhooks: options.webhooks ? {
|
|
72
|
+
onCallStart: options.webhooks.onCallStart,
|
|
73
|
+
onCallEnd: options.webhooks.onCallEnd,
|
|
74
|
+
onTranscript: options.webhooks.onTranscript,
|
|
75
|
+
onToolCall: options.webhooks.onToolCall,
|
|
76
|
+
} : undefined,
|
|
77
|
+
};
|
|
78
|
+
const providerResult = await adapter.createAgent(providerConfig);
|
|
79
|
+
// Create local agent record
|
|
80
|
+
const agent = {
|
|
81
|
+
id,
|
|
82
|
+
name: options.name,
|
|
83
|
+
provider: options.provider,
|
|
84
|
+
voice: options.voice,
|
|
85
|
+
conversation: options.conversation,
|
|
86
|
+
phone: options.phone,
|
|
87
|
+
webhooks: options.webhooks,
|
|
88
|
+
ownerRef: options.ownerRef,
|
|
89
|
+
status: 'Active',
|
|
90
|
+
createdAt: now,
|
|
91
|
+
updatedAt: now,
|
|
92
|
+
};
|
|
93
|
+
// Store with provider agent ID
|
|
94
|
+
await this.storage.put(`voice_agent:${id}`, {
|
|
95
|
+
...agent,
|
|
96
|
+
providerAgentId: providerResult.providerAgentId,
|
|
97
|
+
providerMetadata: providerResult.metadata,
|
|
98
|
+
});
|
|
99
|
+
// Index by provider agent ID for webhook lookup
|
|
100
|
+
await this.storage.put(`voice_agent_provider:${providerResult.providerAgentId}`, id);
|
|
101
|
+
return agent;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Get a voice agent by ID
|
|
105
|
+
*
|
|
106
|
+
* @param id - Voice agent ID
|
|
107
|
+
* @returns Voice agent or null if not found
|
|
108
|
+
*/
|
|
109
|
+
async get(id) {
|
|
110
|
+
const data = await this.storage.get(`voice_agent:${id}`);
|
|
111
|
+
if (!data)
|
|
112
|
+
return null;
|
|
113
|
+
// Remove internal fields
|
|
114
|
+
const { providerAgentId, providerMetadata, ...agent } = data;
|
|
115
|
+
return agent;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Get a voice agent by provider agent ID
|
|
119
|
+
*
|
|
120
|
+
* Useful for webhook processing where only the provider's ID is known.
|
|
121
|
+
*
|
|
122
|
+
* @param providerAgentId - Provider's agent ID
|
|
123
|
+
* @returns Voice agent or null if not found
|
|
124
|
+
*/
|
|
125
|
+
async getByProviderAgentId(providerAgentId) {
|
|
126
|
+
const id = await this.storage.get(`voice_agent_provider:${providerAgentId}`);
|
|
127
|
+
if (!id)
|
|
128
|
+
return null;
|
|
129
|
+
return this.get(id);
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Update a voice agent
|
|
133
|
+
*
|
|
134
|
+
* Updates both local storage and provider's system.
|
|
135
|
+
*
|
|
136
|
+
* @param id - Voice agent ID
|
|
137
|
+
* @param options - Fields to update
|
|
138
|
+
* @returns Updated voice agent
|
|
139
|
+
* @throws Error if agent not found
|
|
140
|
+
*/
|
|
141
|
+
async update(id, options) {
|
|
142
|
+
const existing = await this.storage.get(`voice_agent:${id}`);
|
|
143
|
+
if (!existing) {
|
|
144
|
+
throw new Error(`Voice agent not found: ${id}`);
|
|
145
|
+
}
|
|
146
|
+
// Update provider if voice/conversation config changed
|
|
147
|
+
if (options.voice || options.conversation || options.phone || options.webhooks) {
|
|
148
|
+
const adapter = VoiceProviderFactory.get(existing.provider);
|
|
149
|
+
const providerConfig = {};
|
|
150
|
+
if (options.voice) {
|
|
151
|
+
providerConfig.voice = { ...existing.voice, ...options.voice };
|
|
152
|
+
}
|
|
153
|
+
if (options.conversation) {
|
|
154
|
+
providerConfig.conversation = { ...existing.conversation, ...options.conversation };
|
|
155
|
+
}
|
|
156
|
+
if (options.phone) {
|
|
157
|
+
providerConfig.phone = {
|
|
158
|
+
inboundNumber: options.phone.inboundNumber ?? existing.phone?.inboundNumber,
|
|
159
|
+
outboundCallerId: options.phone.outboundCallerId ?? existing.phone?.outboundCallerId,
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
if (options.webhooks) {
|
|
163
|
+
providerConfig.webhooks = {
|
|
164
|
+
onCallStart: options.webhooks.onCallStart ?? existing.webhooks?.onCallStart,
|
|
165
|
+
onCallEnd: options.webhooks.onCallEnd ?? existing.webhooks?.onCallEnd,
|
|
166
|
+
onTranscript: options.webhooks.onTranscript ?? existing.webhooks?.onTranscript,
|
|
167
|
+
onToolCall: options.webhooks.onToolCall ?? existing.webhooks?.onToolCall,
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
await adapter.updateAgent(existing.providerAgentId, providerConfig);
|
|
171
|
+
}
|
|
172
|
+
// Update local storage
|
|
173
|
+
const updated = {
|
|
174
|
+
...existing,
|
|
175
|
+
name: options.name ?? existing.name,
|
|
176
|
+
voice: options.voice ? { ...existing.voice, ...options.voice } : existing.voice,
|
|
177
|
+
conversation: options.conversation ? { ...existing.conversation, ...options.conversation } : existing.conversation,
|
|
178
|
+
phone: options.phone ? { enabled: existing.phone?.enabled ?? false, ...existing.phone, ...options.phone } : existing.phone,
|
|
179
|
+
webhooks: options.webhooks ? { ...existing.webhooks, ...options.webhooks } : existing.webhooks,
|
|
180
|
+
status: options.status ? (options.status === 'active' ? 'Active' : 'Inactive') : existing.status,
|
|
181
|
+
updatedAt: Date.now(),
|
|
182
|
+
};
|
|
183
|
+
await this.storage.put(`voice_agent:${id}`, updated);
|
|
184
|
+
const { providerAgentId, providerMetadata, ...agent } = updated;
|
|
185
|
+
return agent;
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Delete a voice agent
|
|
189
|
+
*
|
|
190
|
+
* Removes from both local storage and provider's system.
|
|
191
|
+
*
|
|
192
|
+
* @param id - Voice agent ID
|
|
193
|
+
* @returns True if deleted, false if not found
|
|
194
|
+
*/
|
|
195
|
+
async delete(id) {
|
|
196
|
+
const existing = await this.storage.get(`voice_agent:${id}`);
|
|
197
|
+
if (!existing) {
|
|
198
|
+
return false;
|
|
199
|
+
}
|
|
200
|
+
// Delete from provider
|
|
201
|
+
const adapter = VoiceProviderFactory.get(existing.provider);
|
|
202
|
+
await adapter.deleteAgent(existing.providerAgentId);
|
|
203
|
+
// Delete from local storage
|
|
204
|
+
await this.storage.delete(`voice_agent:${id}`);
|
|
205
|
+
await this.storage.delete(`voice_agent_provider:${existing.providerAgentId}`);
|
|
206
|
+
return true;
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* List voice agents
|
|
210
|
+
*
|
|
211
|
+
* @param options - Filter and pagination options
|
|
212
|
+
* @returns List of voice agents
|
|
213
|
+
*/
|
|
214
|
+
async list(options = {}) {
|
|
215
|
+
const { status, provider, ownerRef, limit = 50, offset = 0 } = options;
|
|
216
|
+
// Get all agents (in production, use SQL with proper filtering)
|
|
217
|
+
const allAgents = await this.storage.list({ prefix: 'voice_agent:' });
|
|
218
|
+
let items = [];
|
|
219
|
+
for (const [, agent] of allAgents) {
|
|
220
|
+
// Apply filters
|
|
221
|
+
const statusMatch = status ? (status === 'active' ? 'Active' : status === 'inactive' ? 'Inactive' : 'Error') : null;
|
|
222
|
+
if (statusMatch && agent.status !== statusMatch)
|
|
223
|
+
continue;
|
|
224
|
+
if (provider && agent.provider !== provider)
|
|
225
|
+
continue;
|
|
226
|
+
if (ownerRef && agent.ownerRef !== ownerRef)
|
|
227
|
+
continue;
|
|
228
|
+
// Remove internal fields
|
|
229
|
+
const { providerAgentId, providerMetadata, ...cleanAgent } = agent;
|
|
230
|
+
items.push(cleanAgent);
|
|
231
|
+
}
|
|
232
|
+
// Sort by createdAt descending
|
|
233
|
+
items.sort((a, b) => b.createdAt - a.createdAt);
|
|
234
|
+
const total = items.length;
|
|
235
|
+
items = items.slice(offset, offset + limit);
|
|
236
|
+
return {
|
|
237
|
+
items,
|
|
238
|
+
total,
|
|
239
|
+
hasMore: offset + items.length < total,
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Add a tool to a voice agent
|
|
244
|
+
*
|
|
245
|
+
* @param id - Voice agent ID
|
|
246
|
+
* @param tool - Tool to add
|
|
247
|
+
* @returns Updated voice agent
|
|
248
|
+
*/
|
|
249
|
+
async addTool(id, tool) {
|
|
250
|
+
const existing = await this.storage.get(`voice_agent:${id}`);
|
|
251
|
+
if (!existing) {
|
|
252
|
+
throw new Error(`Voice agent not found: ${id}`);
|
|
253
|
+
}
|
|
254
|
+
const tools = existing.conversation.tools || [];
|
|
255
|
+
if (tools.some((t) => t.name === tool.name)) {
|
|
256
|
+
throw new Error(`Tool already exists: ${tool.name}`);
|
|
257
|
+
}
|
|
258
|
+
return this.update(id, {
|
|
259
|
+
conversation: {
|
|
260
|
+
tools: [...tools, tool],
|
|
261
|
+
},
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Remove a tool from a voice agent
|
|
266
|
+
*
|
|
267
|
+
* @param id - Voice agent ID
|
|
268
|
+
* @param toolName - Name of tool to remove
|
|
269
|
+
* @returns Updated voice agent
|
|
270
|
+
*/
|
|
271
|
+
async removeTool(id, toolName) {
|
|
272
|
+
const existing = await this.storage.get(`voice_agent:${id}`);
|
|
273
|
+
if (!existing) {
|
|
274
|
+
throw new Error(`Voice agent not found: ${id}`);
|
|
275
|
+
}
|
|
276
|
+
const tools = existing.conversation.tools || [];
|
|
277
|
+
const filtered = tools.filter((t) => t.name !== toolName);
|
|
278
|
+
if (filtered.length === tools.length) {
|
|
279
|
+
throw new Error(`Tool not found: ${toolName}`);
|
|
280
|
+
}
|
|
281
|
+
return this.update(id, {
|
|
282
|
+
conversation: {
|
|
283
|
+
tools: filtered,
|
|
284
|
+
},
|
|
285
|
+
});
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Set agent status
|
|
289
|
+
*
|
|
290
|
+
* @param id - Voice agent ID
|
|
291
|
+
* @param status - New status
|
|
292
|
+
* @returns Updated voice agent
|
|
293
|
+
*/
|
|
294
|
+
async setStatus(id, status) {
|
|
295
|
+
return this.update(id, { status });
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
// =============================================================================
|
|
299
|
+
// Helper Functions
|
|
300
|
+
// =============================================================================
|
|
301
|
+
/**
|
|
302
|
+
* Generate a random ID
|
|
303
|
+
* @returns Random ID string
|
|
304
|
+
*/
|
|
305
|
+
function generateId() {
|
|
306
|
+
// TODO: Use nanoid
|
|
307
|
+
return Math.random().toString(36).substring(2, 15);
|
|
308
|
+
}
|
|
309
|
+
// =============================================================================
|
|
310
|
+
// Singleton Access (for convenience)
|
|
311
|
+
// =============================================================================
|
|
312
|
+
let defaultManager = null;
|
|
313
|
+
/**
|
|
314
|
+
* Voice agents singleton access
|
|
315
|
+
*
|
|
316
|
+
* @example
|
|
317
|
+
* ```typescript
|
|
318
|
+
* import { VoiceAgents } from 'do/ai/voice'
|
|
319
|
+
*
|
|
320
|
+
* const agent = await VoiceAgents.create({ ... })
|
|
321
|
+
* ```
|
|
322
|
+
*/
|
|
323
|
+
export const VoiceAgents = {
|
|
324
|
+
/**
|
|
325
|
+
* Initialize with storage
|
|
326
|
+
*/
|
|
327
|
+
init(storage) {
|
|
328
|
+
defaultManager = new VoiceAgentManager(storage);
|
|
329
|
+
},
|
|
330
|
+
/**
|
|
331
|
+
* Create a voice agent
|
|
332
|
+
*/
|
|
333
|
+
async create(options) {
|
|
334
|
+
if (!defaultManager)
|
|
335
|
+
throw new Error('VoiceAgents not initialized');
|
|
336
|
+
return defaultManager.create(options);
|
|
337
|
+
},
|
|
338
|
+
/**
|
|
339
|
+
* Get a voice agent
|
|
340
|
+
*/
|
|
341
|
+
async get(id) {
|
|
342
|
+
if (!defaultManager)
|
|
343
|
+
throw new Error('VoiceAgents not initialized');
|
|
344
|
+
return defaultManager.get(id);
|
|
345
|
+
},
|
|
346
|
+
/**
|
|
347
|
+
* Update a voice agent
|
|
348
|
+
*/
|
|
349
|
+
async update(id, options) {
|
|
350
|
+
if (!defaultManager)
|
|
351
|
+
throw new Error('VoiceAgents not initialized');
|
|
352
|
+
return defaultManager.update(id, options);
|
|
353
|
+
},
|
|
354
|
+
/**
|
|
355
|
+
* Delete a voice agent
|
|
356
|
+
*/
|
|
357
|
+
async delete(id) {
|
|
358
|
+
if (!defaultManager)
|
|
359
|
+
throw new Error('VoiceAgents not initialized');
|
|
360
|
+
return defaultManager.delete(id);
|
|
361
|
+
},
|
|
362
|
+
/**
|
|
363
|
+
* List voice agents
|
|
364
|
+
*/
|
|
365
|
+
async list(options) {
|
|
366
|
+
if (!defaultManager)
|
|
367
|
+
throw new Error('VoiceAgents not initialized');
|
|
368
|
+
return defaultManager.list(options);
|
|
369
|
+
},
|
|
370
|
+
};
|
|
371
|
+
// =============================================================================
|
|
372
|
+
// Type Exports
|
|
373
|
+
// =============================================================================
|
|
374
|
+
// Note: DurableObjectStorage is a Cloudflare Workers type, imported at runtime
|
|
375
|
+
//# sourceMappingURL=agents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../../../ai/voice/agents.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Outbound Campaign Management
|
|
3
|
+
*
|
|
4
|
+
* Manages automated outbound calling campaigns with
|
|
5
|
+
* scheduling, contact management, and real-time statistics.
|
|
6
|
+
*
|
|
7
|
+
* @module ai/voice/campaigns
|
|
8
|
+
*/
|
|
9
|
+
import type { OutboundCampaign, CampaignContact, CampaignSchedule, CampaignSettings, CampaignStats } from '../../types/voice-ai';
|
|
10
|
+
import { VoiceSessionManager } from './sessions';
|
|
11
|
+
import { VoiceAgentManager } from './agents';
|
|
12
|
+
/**
|
|
13
|
+
* Options for creating a campaign
|
|
14
|
+
*/
|
|
15
|
+
export interface CreateCampaignOptions {
|
|
16
|
+
/** Campaign name */
|
|
17
|
+
name: string;
|
|
18
|
+
/** Voice agent ID to use for calls */
|
|
19
|
+
agentId: string;
|
|
20
|
+
/** Contacts to call */
|
|
21
|
+
contacts: Omit<CampaignContact, 'id' | 'status'>[];
|
|
22
|
+
/** Schedule configuration */
|
|
23
|
+
schedule?: CampaignSchedule;
|
|
24
|
+
/** Campaign settings */
|
|
25
|
+
settings: Omit<CampaignSettings, 'callerId'> & {
|
|
26
|
+
callerId: string;
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Options for updating a campaign
|
|
31
|
+
*/
|
|
32
|
+
export interface UpdateCampaignOptions {
|
|
33
|
+
/** Campaign name */
|
|
34
|
+
name?: string;
|
|
35
|
+
/** Schedule configuration */
|
|
36
|
+
schedule?: Partial<CampaignSchedule>;
|
|
37
|
+
/** Campaign settings */
|
|
38
|
+
settings?: Partial<CampaignSettings>;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Options for listing campaigns
|
|
42
|
+
*/
|
|
43
|
+
export interface ListCampaignsOptions {
|
|
44
|
+
/** Filter by status */
|
|
45
|
+
status?: OutboundCampaign['status'];
|
|
46
|
+
/** Filter by agent ID */
|
|
47
|
+
agentId?: string;
|
|
48
|
+
/** Limit results */
|
|
49
|
+
limit?: number;
|
|
50
|
+
/** Offset for pagination */
|
|
51
|
+
offset?: number;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Result of listing campaigns
|
|
55
|
+
*/
|
|
56
|
+
export interface ListCampaignsResult {
|
|
57
|
+
/** Campaigns */
|
|
58
|
+
items: OutboundCampaign[];
|
|
59
|
+
/** Total count */
|
|
60
|
+
total: number;
|
|
61
|
+
/** Has more results */
|
|
62
|
+
hasMore: boolean;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Campaign event types
|
|
66
|
+
*/
|
|
67
|
+
export type CampaignEventType = 'started' | 'paused' | 'resumed' | 'completed' | 'contact_called' | 'contact_completed' | 'contact_failed' | 'stats_updated';
|
|
68
|
+
/**
|
|
69
|
+
* Campaign event handler
|
|
70
|
+
*/
|
|
71
|
+
export type CampaignEventHandler<T = unknown> = (data: T) => void | Promise<void>;
|
|
72
|
+
/**
|
|
73
|
+
* Outbound campaign manager
|
|
74
|
+
*
|
|
75
|
+
* Manages automated outbound calling campaigns with scheduling,
|
|
76
|
+
* contact list management, retry logic, and statistics.
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* ```typescript
|
|
80
|
+
* const manager = new VoiceCampaignManager(storage, sessionManager, agentManager)
|
|
81
|
+
*
|
|
82
|
+
* // Create a campaign
|
|
83
|
+
* const campaign = await manager.create({
|
|
84
|
+
* name: 'Q4 Follow-up',
|
|
85
|
+
* agentId: 'vagent_sales',
|
|
86
|
+
* contacts: [
|
|
87
|
+
* { phone: '+1-555-0001', name: 'Alice' },
|
|
88
|
+
* { phone: '+1-555-0002', name: 'Bob' },
|
|
89
|
+
* ],
|
|
90
|
+
* schedule: {
|
|
91
|
+
* startDate: Date.now(),
|
|
92
|
+
* callingHours: { start: '09:00', end: '17:00' },
|
|
93
|
+
* daysOfWeek: [1, 2, 3, 4, 5],
|
|
94
|
+
* timezone: 'America/New_York',
|
|
95
|
+
* maxConcurrent: 5,
|
|
96
|
+
* },
|
|
97
|
+
* settings: {
|
|
98
|
+
* maxAttempts: 3,
|
|
99
|
+
* retryDelay: 60,
|
|
100
|
+
* voicemailDetection: true,
|
|
101
|
+
* callerId: '+1-555-0100',
|
|
102
|
+
* },
|
|
103
|
+
* })
|
|
104
|
+
*
|
|
105
|
+
* // Start the campaign
|
|
106
|
+
* await manager.start(campaign.id)
|
|
107
|
+
*
|
|
108
|
+
* // Monitor stats
|
|
109
|
+
* const stats = await manager.getStats(campaign.id)
|
|
110
|
+
* ```
|
|
111
|
+
*/
|
|
112
|
+
export declare class VoiceCampaignManager {
|
|
113
|
+
private storage;
|
|
114
|
+
private sessionManager;
|
|
115
|
+
private agentManager;
|
|
116
|
+
private eventHandlers;
|
|
117
|
+
/**
|
|
118
|
+
* Create a campaign manager
|
|
119
|
+
*
|
|
120
|
+
* @param storage - DO storage interface
|
|
121
|
+
* @param sessionManager - Voice session manager
|
|
122
|
+
* @param agentManager - Voice agent manager
|
|
123
|
+
*/
|
|
124
|
+
constructor(storage: DurableObjectStorage, sessionManager: VoiceSessionManager, agentManager: VoiceAgentManager);
|
|
125
|
+
/**
|
|
126
|
+
* Create a new campaign
|
|
127
|
+
*
|
|
128
|
+
* @param options - Campaign options
|
|
129
|
+
* @returns Created campaign
|
|
130
|
+
*/
|
|
131
|
+
create(options: CreateCampaignOptions): Promise<OutboundCampaign>;
|
|
132
|
+
/**
|
|
133
|
+
* Get a campaign by ID
|
|
134
|
+
*
|
|
135
|
+
* @param id - Campaign ID
|
|
136
|
+
* @returns Campaign or null if not found
|
|
137
|
+
*/
|
|
138
|
+
get(id: string): Promise<OutboundCampaign | null>;
|
|
139
|
+
/**
|
|
140
|
+
* Update a campaign
|
|
141
|
+
*
|
|
142
|
+
* Can only update draft or paused campaigns.
|
|
143
|
+
*
|
|
144
|
+
* @param id - Campaign ID
|
|
145
|
+
* @param options - Fields to update
|
|
146
|
+
* @returns Updated campaign
|
|
147
|
+
*/
|
|
148
|
+
update(id: string, options: UpdateCampaignOptions): Promise<OutboundCampaign>;
|
|
149
|
+
/**
|
|
150
|
+
* Add contacts to a campaign
|
|
151
|
+
*
|
|
152
|
+
* Can only add contacts to draft or paused campaigns.
|
|
153
|
+
*
|
|
154
|
+
* @param id - Campaign ID
|
|
155
|
+
* @param contacts - Contacts to add
|
|
156
|
+
* @returns Updated campaign
|
|
157
|
+
*/
|
|
158
|
+
addContacts(id: string, contacts: Omit<CampaignContact, 'id' | 'status'>[]): Promise<OutboundCampaign>;
|
|
159
|
+
/**
|
|
160
|
+
* Remove a contact from a campaign
|
|
161
|
+
*
|
|
162
|
+
* @param id - Campaign ID
|
|
163
|
+
* @param contactId - Contact ID
|
|
164
|
+
* @returns Updated campaign
|
|
165
|
+
*/
|
|
166
|
+
removeContact(id: string, contactId: string): Promise<OutboundCampaign>;
|
|
167
|
+
/**
|
|
168
|
+
* Start a campaign
|
|
169
|
+
*
|
|
170
|
+
* @param id - Campaign ID
|
|
171
|
+
* @returns Updated campaign
|
|
172
|
+
*/
|
|
173
|
+
start(id: string): Promise<OutboundCampaign>;
|
|
174
|
+
/**
|
|
175
|
+
* Pause a running campaign
|
|
176
|
+
*
|
|
177
|
+
* @param id - Campaign ID
|
|
178
|
+
* @returns Updated campaign
|
|
179
|
+
*/
|
|
180
|
+
pause(id: string): Promise<OutboundCampaign>;
|
|
181
|
+
/**
|
|
182
|
+
* Resume a paused campaign
|
|
183
|
+
*
|
|
184
|
+
* @param id - Campaign ID
|
|
185
|
+
* @returns Updated campaign
|
|
186
|
+
*/
|
|
187
|
+
resume(id: string): Promise<OutboundCampaign>;
|
|
188
|
+
/**
|
|
189
|
+
* Stop a campaign (mark as completed)
|
|
190
|
+
*
|
|
191
|
+
* @param id - Campaign ID
|
|
192
|
+
* @returns Updated campaign
|
|
193
|
+
*/
|
|
194
|
+
stop(id: string): Promise<OutboundCampaign>;
|
|
195
|
+
/**
|
|
196
|
+
* Delete a campaign
|
|
197
|
+
*
|
|
198
|
+
* @param id - Campaign ID
|
|
199
|
+
* @returns True if deleted
|
|
200
|
+
*/
|
|
201
|
+
delete(id: string): Promise<boolean>;
|
|
202
|
+
/**
|
|
203
|
+
* List campaigns
|
|
204
|
+
*
|
|
205
|
+
* @param options - Filter and pagination options
|
|
206
|
+
* @returns List of campaigns
|
|
207
|
+
*/
|
|
208
|
+
list(options?: ListCampaignsOptions): Promise<ListCampaignsResult>;
|
|
209
|
+
/**
|
|
210
|
+
* Get campaign statistics
|
|
211
|
+
*
|
|
212
|
+
* @param id - Campaign ID
|
|
213
|
+
* @returns Campaign statistics
|
|
214
|
+
*/
|
|
215
|
+
getStats(id: string): Promise<CampaignStats>;
|
|
216
|
+
/**
|
|
217
|
+
* Schedule the next batch of calls
|
|
218
|
+
*
|
|
219
|
+
* @param id - Campaign ID
|
|
220
|
+
*/
|
|
221
|
+
scheduleNextBatch(id: string): Promise<void>;
|
|
222
|
+
/**
|
|
223
|
+
* Start a call for a campaign contact
|
|
224
|
+
*
|
|
225
|
+
* @param campaignId - Campaign ID
|
|
226
|
+
* @param contact - Contact to call
|
|
227
|
+
*/
|
|
228
|
+
private startContactCall;
|
|
229
|
+
/**
|
|
230
|
+
* Update contact status
|
|
231
|
+
*/
|
|
232
|
+
private updateContactStatus;
|
|
233
|
+
/**
|
|
234
|
+
* Update contact with session ID
|
|
235
|
+
*/
|
|
236
|
+
private updateContactSession;
|
|
237
|
+
/**
|
|
238
|
+
* Handle session completion (called from webhook processor)
|
|
239
|
+
*
|
|
240
|
+
* @param campaignId - Campaign ID
|
|
241
|
+
* @param contactId - Contact ID
|
|
242
|
+
* @param outcome - Call outcome
|
|
243
|
+
*/
|
|
244
|
+
handleSessionComplete(campaignId: string, contactId: string, outcome: 'Completed' | 'Failed'): Promise<void>;
|
|
245
|
+
/**
|
|
246
|
+
* Subscribe to campaign events
|
|
247
|
+
*
|
|
248
|
+
* @param campaignId - Campaign ID
|
|
249
|
+
* @param event - Event type
|
|
250
|
+
* @param handler - Event handler
|
|
251
|
+
* @returns Unsubscribe function
|
|
252
|
+
*/
|
|
253
|
+
on(campaignId: string, event: CampaignEventType, handler: CampaignEventHandler): () => void;
|
|
254
|
+
/**
|
|
255
|
+
* Watch campaign stats (returns async iterator)
|
|
256
|
+
*
|
|
257
|
+
* @param campaignId - Campaign ID
|
|
258
|
+
* @returns Async iterator of stats updates
|
|
259
|
+
*/
|
|
260
|
+
watchStats(campaignId: string): AsyncGenerator<CampaignStats>;
|
|
261
|
+
/**
|
|
262
|
+
* Emit a campaign event
|
|
263
|
+
*/
|
|
264
|
+
private emit;
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Voice campaigns singleton access
|
|
268
|
+
*/
|
|
269
|
+
export declare const VoiceCampaigns: {
|
|
270
|
+
/**
|
|
271
|
+
* Initialize with dependencies
|
|
272
|
+
*/
|
|
273
|
+
init(storage: DurableObjectStorage, sessionManager: VoiceSessionManager, agentManager: VoiceAgentManager): void;
|
|
274
|
+
/**
|
|
275
|
+
* Create a campaign
|
|
276
|
+
*/
|
|
277
|
+
create(options: CreateCampaignOptions): Promise<OutboundCampaign>;
|
|
278
|
+
/**
|
|
279
|
+
* Get a campaign
|
|
280
|
+
*/
|
|
281
|
+
get(id: string): Promise<OutboundCampaign | null>;
|
|
282
|
+
/**
|
|
283
|
+
* Start a campaign
|
|
284
|
+
*/
|
|
285
|
+
start(id: string): Promise<OutboundCampaign>;
|
|
286
|
+
/**
|
|
287
|
+
* Pause a campaign
|
|
288
|
+
*/
|
|
289
|
+
pause(id: string): Promise<OutboundCampaign>;
|
|
290
|
+
/**
|
|
291
|
+
* Resume a campaign
|
|
292
|
+
*/
|
|
293
|
+
resume(id: string): Promise<OutboundCampaign>;
|
|
294
|
+
/**
|
|
295
|
+
* Get campaign stats
|
|
296
|
+
*/
|
|
297
|
+
getStats(id: string): Promise<CampaignStats>;
|
|
298
|
+
/**
|
|
299
|
+
* List campaigns
|
|
300
|
+
*/
|
|
301
|
+
list(options?: ListCampaignsOptions): Promise<ListCampaignsResult>;
|
|
302
|
+
/**
|
|
303
|
+
* Watch campaign stats
|
|
304
|
+
*/
|
|
305
|
+
watchStats(id: string): AsyncGenerator<CampaignStats>;
|
|
306
|
+
};
|
|
307
|
+
//# sourceMappingURL=campaigns.d.ts.map
|