@dual-os/elevenlabs-api 0.0.0-stage → 3.0.3
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/LICENSE +4 -0
- package/README.md +24 -2
- package/Runner.js +5771 -0
- package/Runner.js.map +63 -0
- package/bundle-inventory.json +1 -0
- package/dist/_virtual/_rolldown/runtime.js +10 -0
- package/dist/_virtual/_rolldown/runtime.js.map +9 -0
- package/dist/auth.d.ts +21 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +17 -0
- package/dist/auth.js.map +9 -0
- package/dist/generated/http.d.ts +81 -0
- package/dist/generated/http.d.ts.map +1 -0
- package/dist/generated/http.js +64 -0
- package/dist/generated/http.js.map +9 -0
- package/dist/generated/operations.d.ts +13961 -0
- package/dist/generated/operations.d.ts.map +1 -0
- package/dist/generated/operations.js +3602 -0
- package/dist/generated/operations.js.map +9 -0
- package/dist/generated/plugin.d.ts +1723 -0
- package/dist/generated/plugin.d.ts.map +1 -0
- package/dist/generated/plugin.js +2683 -0
- package/dist/generated/plugin.js.map +10 -0
- package/dist/triggers.d.ts +124 -0
- package/dist/triggers.d.ts.map +1 -0
- package/dist/triggers.js +17 -0
- package/dist/triggers.js.map +9 -0
- package/dual-plugin.json +1 -0
- package/licenses/@dual-os_sdk@0.8.1/LICENSE +4 -0
- package/licenses/@effect_platform-node-shared@4.1.2/LICENSE +21 -0
- package/licenses/@effect_platform-node@4.1.2/LICENSE +21 -0
- package/licenses/effect@4.1.2/LICENSE +21 -0
- package/package.json +1 -6
- package/plugin-290fg2vn.js +1294 -0
- package/plugin-290fg2vn.js.map +18 -0
- package/plugin-2jdfj02n.js +18 -0
- package/plugin-2jdfj02n.js.map +10 -0
- package/plugin-5caab821.js +226 -0
- package/plugin-5caab821.js.map +10 -0
- package/plugin-edkff71p.js +19196 -0
- package/plugin-edkff71p.js.map +159 -0
- package/plugin-mvbtpq7t.js +16763 -0
- package/plugin-mvbtpq7t.js.map +10 -0
- package/plugin-s7a2zrhc.js +62 -0
- package/plugin-s7a2zrhc.js.map +10 -0
- package/plugin.json +47 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../bundle-input/dist/triggers.js"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"import { ConversationSummaryResponseModel, WorkspaceWebhookEventType, agentsPlatform_getConversationHistoriesRoute, workspace_createWorkspaceWebhookRoute, workspace_deleteWorkspaceWebhookRoute, workspace_editWorkspaceWebhookRoute } from \"./generated/operations.js\";\nimport { Array, Clock, Duration, Effect, HashSet, Number, Option, Predicate, Schema, Stream, String, pipe } from \"effect\";\nimport { Action, Trigger } from \"@dual-os/sdk\";\n//#region src/triggers.ts\nconst tolerance = Duration.minutes(30);\nconst webhookName = \"Dual\";\nconst Event = Schema.StructWithRest(Schema.Struct({\n\tdata: Schema.optionalKey(Schema.Record(Schema.String, Schema.Unknown)),\n\tevent_timestamp: Schema.optionalKey(Schema.Union([Schema.Finite, Schema.String])),\n\ttype: Schema.String\n}), [Schema.Record(Schema.String, Schema.Unknown)]);\nconst SignedDelivery = Schema.Struct({\n\theaders: Schema.Struct({ \"elevenlabs-signature\": Schema.String }),\n\trawBody: Schema.Union([Schema.Uint8Array, Schema.String])\n});\nconst triggers = [Trigger.webhook(\"event\", {\n\tdescription: \"Creates a signed ElevenLabs workspace webhook, subscribes it to the selected workspace events and deletes it on deactivation. Select the webhook, named Dual, as the post-call webhook of an agent to also receive post_call_transcription, post_call_audio and call_initiation_failure. Only workspace administrators can manage webhooks.\",\n\tname: \"ElevenLabs event\",\n\tconfig: Schema.Struct({\n\t\tevents: Schema.Array(WorkspaceWebhookEventType).annotate({ description: \"Workspace events to subscribe to: speech_to_text for asynchronous transcriptions requested with webhook enabled, voice_library_removal_notice, agent_qa, and flows for image, video and template run results requested with a webhook\" }),\n\t\ttypes: Schema.optionalKey(Schema.Array(Schema.NonEmptyString).annotate({ description: \"Only report deliveries of these types, such as post_call_transcription or speech_to_text_transcription; leave empty to report every delivery\" }))\n\t}),\n\toutput: Event,\n\tstate: Schema.Struct({\n\t\tsecret: Schema.String,\n\t\twebhookId: Schema.String\n\t})\n}), Trigger.polling(\"conversation-ended\", {\n\tdescription: \"Polls Agents Platform conversations and reports each one that is done or failed after a silent first check. Only conversations that started within the lookback window are read, so a conversation that ends later than that is not reported.\",\n\tname: \"Conversation ended\",\n\tconfig: Schema.Struct({\n\t\tagentId: Schema.optionalKey(Schema.NonEmptyString.annotate({ description: \"Only report conversations of this agent; leave empty for every agent\" })),\n\t\tlookbackHours: Schema.optionalKey(Schema.Int.check(Schema.isBetween({\n\t\t\tmaximum: 72,\n\t\t\tminimum: 1\n\t\t})).annotate({ description: \"How many hours after its start a conversation is still watched, 2 by default\" }))\n\t}),\n\toutput: ConversationSummaryResponseModel,\n\tstate: Schema.Struct({ seen: Schema.Array(Schema.String) })\n})];\nconst handlers = {\n\t\"conversation-ended\": { poll: Effect.fn(\"ElevenLabs.conversationEnded.poll\")(function* (input, context) {\n\t\tconst now = yield* Clock.currentTimeMillis;\n\t\tconst ended = yield* pipe(Stream.paginate({ cursor: Option.none() }, (page) => Effect.map(agentsPlatform_getConversationHistoriesRoute.run({\n\t\t\t...Option.match(Option.fromUndefinedOr(input.config.agentId), {\n\t\t\t\tonNone: () => ({}),\n\t\t\t\tonSome: (agent_id) => ({ agent_id })\n\t\t\t}),\n\t\t\tcall_start_after_unix: Math.floor((now - Duration.toMillis(Duration.hours(input.config.lookbackHours ?? 2))) / 1e3),\n\t\t\t...Option.match(page.cursor, {\n\t\t\t\tonNone: () => ({}),\n\t\t\t\tonSome: (cursor) => ({ cursor })\n\t\t\t}),\n\t\t\texclude_statuses: [\n\t\t\t\t\"initiated\",\n\t\t\t\t\"in-progress\",\n\t\t\t\t\"processing\"\n\t\t\t],\n\t\t\tpage_size: 100,\n\t\t\tsummary_mode: \"include\"\n\t\t}, context), (found) => [found.conversations, pipe(Option.fromNullishOr(found.next_cursor), Option.filter(() => found.has_more), Option.map((cursor) => ({ cursor: Option.some(cursor) })))])), Stream.runCollect);\n\t\treturn {\n\t\t\tevents: Option.match(Option.fromUndefinedOr(input.state), {\n\t\t\t\tonNone: () => [],\n\t\t\t\tonSome: (previous) => pipe(ended, Array.filter((conversation) => !HashSet.has(HashSet.fromIterable(previous.seen), conversation.conversation_id)), Array.map((conversation) => ({\n\t\t\t\t\tkey: `conversation:${conversation.conversation_id}`,\n\t\t\t\t\tpayload: conversation\n\t\t\t\t})))\n\t\t\t}),\n\t\t\tstate: { seen: Array.dedupe(Array.map(ended, (conversation) => conversation.conversation_id)) }\n\t\t};\n\t}) },\n\tevent: {\n\t\tactivate: Effect.fn(\"ElevenLabs.event.activate\")(function* (input, context) {\n\t\t\tconst created = yield* workspace_createWorkspaceWebhookRoute.run({ payload: { settings: {\n\t\t\t\tauth_type: \"hmac\",\n\t\t\t\tname: webhookName,\n\t\t\t\twebhook_url: input.webhookUrl\n\t\t\t} } }, context);\n\t\t\tconst remove = workspace_deleteWorkspaceWebhookRoute.run({ webhook_id: created.webhook_id }, context);\n\t\t\tconst secret = created.webhook_secret;\n\t\t\tif (Predicate.isNullish(secret)) {\n\t\t\t\tyield* remove;\n\t\t\t\treturn yield* Action.ActionHandlerError.make({ message: \"ElevenLabs did not return the signing secret of the new webhook\" });\n\t\t\t}\n\t\t\tyield* pipe(workspace_editWorkspaceWebhookRoute.run({\n\t\t\t\tpayload: {\n\t\t\t\t\tevents: input.config.events,\n\t\t\t\t\tis_disabled: false,\n\t\t\t\t\tname: webhookName,\n\t\t\t\t\tretry_enabled: true\n\t\t\t\t},\n\t\t\t\twebhook_id: created.webhook_id\n\t\t\t}, context), Effect.tapError(() => remove));\n\t\t\treturn { state: {\n\t\t\t\tsecret,\n\t\t\t\twebhookId: created.webhook_id\n\t\t\t} };\n\t\t}),\n\t\tdeactivate: Effect.fn(\"ElevenLabs.event.deactivate\")(function* (input, context) {\n\t\t\tif (input.state === void 0) return;\n\t\t\tconst webhookId = input.state.webhookId;\n\t\t\tyield* pipe(workspace_deleteWorkspaceWebhookRoute.run({ webhook_id: webhookId }, context), Effect.catchTag(\"ActionHandlerError\", () => workspace_editWorkspaceWebhookRoute.run({\n\t\t\t\tpayload: {\n\t\t\t\t\tevents: [],\n\t\t\t\t\tis_disabled: true,\n\t\t\t\t\tname: webhookName\n\t\t\t\t},\n\t\t\t\twebhook_id: webhookId\n\t\t\t}, context)));\n\t\t}),\n\t\tparse: Effect.fn(\"ElevenLabs.event.parse\")(function* (input) {\n\t\t\tconst payload = yield* Schema.decodeUnknownEffect(Event)(input.request.body);\n\t\t\tconst types = input.config.types ?? [];\n\t\t\tif (!Array.isReadonlyArrayEmpty(types) && !Array.contains(types, payload.type)) return {\n\t\t\t\tevents: [],\n\t\t\t\tstate: input.state\n\t\t\t};\n\t\t\tconst digest = yield* Trigger.bodyDigest(input.request.rawBody ?? (yield* Schema.encodeUnknownEffect(Schema.fromJsonString(Schema.Unknown))(input.request.body)));\n\t\t\treturn {\n\t\t\t\tevents: [{\n\t\t\t\t\tkey: `${payload.type}:${digest}`,\n\t\t\t\t\tpayload\n\t\t\t\t}],\n\t\t\t\tstate: input.state\n\t\t\t};\n\t\t}),\n\t\tverify: Effect.fn(\"ElevenLabs.event.verify\")(function* (input) {\n\t\t\tconst forged = Action.ActionHandlerError.make({\n\t\t\t\tmessage: \"Invalid ElevenLabs webhook signature\",\n\t\t\t\tstatus: 401\n\t\t\t});\n\t\t\tif (input.state === void 0) return yield* forged;\n\t\t\tconst delivery = yield* Effect.mapError(Schema.decodeUnknownEffect(SignedDelivery)({\n\t\t\t\t...input.request,\n\t\t\t\theaders: input.request.headers ?? {}\n\t\t\t}), () => forged);\n\t\t\tconst pairs = pipe(delivery.headers[\"elevenlabs-signature\"], String.split(\",\"), Array.map(String.split(\"=\")));\n\t\t\tfunction field(name) {\n\t\t\t\treturn pipe(pairs, Array.findFirst((pair) => pair[0] === name && pair.length === 2), Option.flatMap((pair) => Array.get(pair, 1)));\n\t\t\t}\n\t\t\tconst now = yield* Clock.currentTimeMillis;\n\t\t\tconst timestamp = yield* pipe(field(\"t\"), Option.filter((seconds) => Option.exists(Number.parse(seconds), (parsed) => Number.between(parsed * 1e3, {\n\t\t\t\tmaximum: now + Duration.toMillis(tolerance),\n\t\t\t\tminimum: now - Duration.toMillis(tolerance)\n\t\t\t}))), Effect.fromOption, Effect.mapError(() => forged));\n\t\t\tif (!(yield* Trigger.verifyHmac({\n\t\t\t\talgorithm: \"sha256\",\n\t\t\t\tencoding: \"hex\",\n\t\t\t\tmessage: [`${timestamp}.`, delivery.rawBody],\n\t\t\t\tsecret: input.state.secret,\n\t\t\t\tsignature: yield* Effect.mapError(Effect.fromOption(field(\"v0\")), () => forged)\n\t\t\t}))) return yield* forged;\n\t\t})\n\t}\n};\n//#endregion\nexport { handlers, triggers };\n\n//# sourceMappingURL=triggers.js.map"
|
|
6
|
+
],
|
|
7
|
+
"mappings": "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",
|
|
8
|
+
"debugId": "87F177307E290C4264756E2164756E21",
|
|
9
|
+
"names": []
|
|
10
|
+
}
|