digital-tools 2.1.3 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (294) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +19 -0
  3. package/README.md +2 -0
  4. package/dist/client.d.ts +109 -0
  5. package/dist/client.d.ts.map +1 -0
  6. package/dist/client.js +69 -0
  7. package/dist/client.js.map +1 -0
  8. package/dist/define.d.ts +2 -2
  9. package/dist/define.d.ts.map +1 -1
  10. package/dist/define.js +21 -11
  11. package/dist/define.js.map +1 -1
  12. package/dist/function-ref.d.ts +229 -0
  13. package/dist/function-ref.d.ts.map +1 -0
  14. package/dist/function-ref.js +28 -0
  15. package/dist/function-ref.js.map +1 -0
  16. package/dist/function-sugar.d.ts +57 -0
  17. package/dist/function-sugar.d.ts.map +1 -0
  18. package/dist/function-sugar.js +79 -0
  19. package/dist/function-sugar.js.map +1 -0
  20. package/dist/index.d.ts +10 -3
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +24 -4
  23. package/dist/index.js.map +1 -1
  24. package/dist/providers/analytics/mixpanel.d.ts.map +1 -1
  25. package/dist/providers/analytics/mixpanel.js +21 -18
  26. package/dist/providers/analytics/mixpanel.js.map +1 -1
  27. package/dist/providers/calendar/cal-com.d.ts.map +1 -1
  28. package/dist/providers/calendar/cal-com.js +10 -10
  29. package/dist/providers/calendar/cal-com.js.map +1 -1
  30. package/dist/providers/calendar/google-calendar.d.ts.map +1 -1
  31. package/dist/providers/calendar/google-calendar.js +4 -4
  32. package/dist/providers/calendar/google-calendar.js.map +1 -1
  33. package/dist/providers/crm/hubspot.d.ts.map +1 -1
  34. package/dist/providers/crm/hubspot.js +107 -85
  35. package/dist/providers/crm/hubspot.js.map +1 -1
  36. package/dist/providers/development/github.d.ts.map +1 -1
  37. package/dist/providers/development/github.js +40 -43
  38. package/dist/providers/development/github.js.map +1 -1
  39. package/dist/providers/ecommerce/shopify.d.ts.map +1 -1
  40. package/dist/providers/ecommerce/shopify.js +79 -62
  41. package/dist/providers/ecommerce/shopify.js.map +1 -1
  42. package/dist/providers/email/resend.d.ts.map +1 -1
  43. package/dist/providers/email/resend.js +20 -16
  44. package/dist/providers/email/resend.js.map +1 -1
  45. package/dist/providers/email/sendgrid.d.ts.map +1 -1
  46. package/dist/providers/email/sendgrid.js +12 -9
  47. package/dist/providers/email/sendgrid.js.map +1 -1
  48. package/dist/providers/finance/stripe.d.ts.map +1 -1
  49. package/dist/providers/finance/stripe.js +44 -42
  50. package/dist/providers/finance/stripe.js.map +1 -1
  51. package/dist/providers/forms/typeform.d.ts.map +1 -1
  52. package/dist/providers/forms/typeform.js +68 -58
  53. package/dist/providers/forms/typeform.js.map +1 -1
  54. package/dist/providers/knowledge/notion.d.ts.map +1 -1
  55. package/dist/providers/knowledge/notion.js +75 -41
  56. package/dist/providers/knowledge/notion.js.map +1 -1
  57. package/dist/providers/marketing/mailchimp.d.ts.map +1 -1
  58. package/dist/providers/marketing/mailchimp.js +74 -61
  59. package/dist/providers/marketing/mailchimp.js.map +1 -1
  60. package/dist/providers/media/cloudinary.d.ts.map +1 -1
  61. package/dist/providers/media/cloudinary.js +30 -28
  62. package/dist/providers/media/cloudinary.js.map +1 -1
  63. package/dist/providers/messaging/slack.d.ts.map +1 -1
  64. package/dist/providers/messaging/slack.js +75 -58
  65. package/dist/providers/messaging/slack.js.map +1 -1
  66. package/dist/providers/messaging/twilio-sms.d.ts.map +1 -1
  67. package/dist/providers/messaging/twilio-sms.js +33 -15
  68. package/dist/providers/messaging/twilio-sms.js.map +1 -1
  69. package/dist/providers/project-management/linear.d.ts.map +1 -1
  70. package/dist/providers/project-management/linear.js +31 -27
  71. package/dist/providers/project-management/linear.js.map +1 -1
  72. package/dist/providers/spreadsheet/google-sheets.d.ts.map +1 -1
  73. package/dist/providers/spreadsheet/google-sheets.js +21 -18
  74. package/dist/providers/spreadsheet/google-sheets.js.map +1 -1
  75. package/dist/providers/spreadsheet/xlsx.d.ts.map +1 -1
  76. package/dist/providers/spreadsheet/xlsx.js +4 -4
  77. package/dist/providers/spreadsheet/xlsx.js.map +1 -1
  78. package/dist/providers/storage/index.js +1 -0
  79. package/dist/providers/storage/index.js.map +1 -1
  80. package/dist/providers/storage/s3.d.ts.map +1 -1
  81. package/dist/providers/storage/s3.js +36 -27
  82. package/dist/providers/storage/s3.js.map +1 -1
  83. package/dist/providers/support/zendesk.d.ts.map +1 -1
  84. package/dist/providers/support/zendesk.js +24 -25
  85. package/dist/providers/support/zendesk.js.map +1 -1
  86. package/dist/providers/tasks/todoist.d.ts.map +1 -1
  87. package/dist/providers/tasks/todoist.js +18 -18
  88. package/dist/providers/tasks/todoist.js.map +1 -1
  89. package/dist/providers/video-conferencing/google-meet.d.ts.map +1 -1
  90. package/dist/providers/video-conferencing/google-meet.js +11 -11
  91. package/dist/providers/video-conferencing/google-meet.js.map +1 -1
  92. package/dist/providers/video-conferencing/jitsi.js +14 -14
  93. package/dist/providers/video-conferencing/jitsi.js.map +1 -1
  94. package/dist/providers/video-conferencing/teams.d.ts.map +1 -1
  95. package/dist/providers/video-conferencing/teams.js +9 -7
  96. package/dist/providers/video-conferencing/teams.js.map +1 -1
  97. package/dist/providers/video-conferencing/zoom.d.ts.map +1 -1
  98. package/dist/providers/video-conferencing/zoom.js +26 -24
  99. package/dist/providers/video-conferencing/zoom.js.map +1 -1
  100. package/dist/tools/data.d.ts.map +1 -1
  101. package/dist/tools/data.js +5 -12
  102. package/dist/tools/data.js.map +1 -1
  103. package/dist/tools/index.d.ts +1 -0
  104. package/dist/tools/index.d.ts.map +1 -1
  105. package/dist/tools/index.js +1 -0
  106. package/dist/tools/index.js.map +1 -1
  107. package/dist/tools/system.d.ts +289 -0
  108. package/dist/tools/system.d.ts.map +1 -0
  109. package/dist/tools/system.js +752 -0
  110. package/dist/tools/system.js.map +1 -0
  111. package/dist/tools/web.d.ts.map +1 -1
  112. package/dist/tools/web.js +22 -10
  113. package/dist/tools/web.js.map +1 -1
  114. package/dist/track-record.d.ts +101 -0
  115. package/dist/track-record.d.ts.map +1 -0
  116. package/dist/track-record.js +17 -0
  117. package/dist/track-record.js.map +1 -0
  118. package/dist/types.d.ts +210 -9
  119. package/dist/types.d.ts.map +1 -1
  120. package/dist/verb-registration.d.ts +122 -0
  121. package/dist/verb-registration.d.ts.map +1 -0
  122. package/dist/verb-registration.js +176 -0
  123. package/dist/verb-registration.js.map +1 -0
  124. package/dist/worker.d.ts +93 -0
  125. package/dist/worker.d.ts.map +1 -0
  126. package/dist/worker.js +315 -0
  127. package/dist/worker.js.map +1 -0
  128. package/dist/wrap.d.ts +89 -0
  129. package/dist/wrap.d.ts.map +1 -0
  130. package/dist/wrap.js +225 -0
  131. package/dist/wrap.js.map +1 -0
  132. package/package.json +31 -14
  133. package/src/client.ts +136 -0
  134. package/src/define.ts +30 -24
  135. package/src/function-ref.ts +264 -0
  136. package/src/function-sugar.ts +134 -0
  137. package/src/index.ts +132 -10
  138. package/src/providers/analytics/mixpanel.ts +19 -18
  139. package/src/providers/calendar/cal-com.ts +29 -18
  140. package/src/providers/calendar/google-calendar.ts +20 -14
  141. package/src/providers/crm/hubspot.ts +225 -99
  142. package/src/providers/development/github.ts +206 -135
  143. package/src/providers/ecommerce/shopify.ts +250 -89
  144. package/src/providers/email/resend.ts +101 -28
  145. package/src/providers/email/sendgrid.ts +12 -9
  146. package/src/providers/finance/stripe.ts +128 -49
  147. package/src/providers/forms/typeform.ts +74 -58
  148. package/src/providers/knowledge/notion.ts +340 -88
  149. package/src/providers/marketing/mailchimp.ts +86 -70
  150. package/src/providers/media/cloudinary.ts +99 -41
  151. package/src/providers/messaging/slack.ts +283 -85
  152. package/src/providers/messaging/twilio-sms.ts +35 -15
  153. package/src/providers/project-management/linear.ts +143 -55
  154. package/src/providers/spreadsheet/google-sheets.ts +222 -56
  155. package/src/providers/spreadsheet/xlsx.ts +47 -16
  156. package/src/providers/storage/s3.ts +119 -47
  157. package/src/providers/support/zendesk.ts +196 -46
  158. package/src/providers/tasks/todoist.ts +20 -26
  159. package/src/providers/video-conferencing/google-meet.ts +17 -20
  160. package/src/providers/video-conferencing/jitsi.ts +14 -14
  161. package/src/providers/video-conferencing/teams.ts +14 -13
  162. package/src/providers/video-conferencing/zoom.ts +54 -49
  163. package/src/tools/data.ts +6 -16
  164. package/src/tools/index.ts +1 -0
  165. package/src/tools/system.ts +887 -0
  166. package/src/tools/web.ts +22 -10
  167. package/src/track-record.ts +106 -0
  168. package/src/types.ts +241 -13
  169. package/src/verb-registration.ts +197 -0
  170. package/src/worker.ts +370 -0
  171. package/src/wrap.ts +260 -0
  172. package/test/client.test.ts +146 -0
  173. package/test/communication-tools-extended.test.ts +734 -0
  174. package/test/data-tools-extended.test.ts +743 -0
  175. package/test/define-extended.test.ts +819 -0
  176. package/test/define.test.ts +150 -41
  177. package/test/entities.test.ts +623 -0
  178. package/test/extended-entities.test.ts +1228 -0
  179. package/test/provider-implementations.test.ts +725 -0
  180. package/test/provider-registry-extended.test.ts +583 -0
  181. package/test/providers/google-sheets.test.ts +851 -0
  182. package/test/providers/helpers.ts +554 -0
  183. package/test/providers/hubspot.test.ts +576 -0
  184. package/test/providers/slack.test.ts +932 -0
  185. package/test/providers/stripe.test.ts +701 -0
  186. package/test/providers.test.ts +578 -0
  187. package/test/system-tools-extended.test.ts +632 -0
  188. package/test/system.test.ts +673 -0
  189. package/test/tools.test.ts +15 -11
  190. package/test/types.test.ts +402 -0
  191. package/test/verb-registration.test.ts +395 -0
  192. package/test/web-tools.test.ts +553 -0
  193. package/test/worker-extended.test.ts +699 -0
  194. package/test/worker.test.ts +576 -0
  195. package/test/wrap.test.ts +366 -0
  196. package/tsconfig.json +3 -13
  197. package/vitest.config.ts +37 -0
  198. package/wrangler.jsonc +9 -0
  199. package/LICENSE +0 -21
  200. package/dist/providers/voice/vapi.d.ts +0 -27
  201. package/dist/providers/voice/vapi.d.ts.map +0 -1
  202. package/dist/providers/voice/vapi.js +0 -440
  203. package/dist/providers/voice/vapi.js.map +0 -1
  204. package/src/define.js +0 -259
  205. package/src/entities/advertising.js +0 -999
  206. package/src/entities/ai.js +0 -756
  207. package/src/entities/analytics.js +0 -1588
  208. package/src/entities/automation.js +0 -601
  209. package/src/entities/communication.js +0 -1150
  210. package/src/entities/crm.js +0 -1386
  211. package/src/entities/design.js +0 -546
  212. package/src/entities/development.js +0 -2212
  213. package/src/entities/document.js +0 -874
  214. package/src/entities/ecommerce.js +0 -1429
  215. package/src/entities/experiment.js +0 -1039
  216. package/src/entities/finance.js +0 -3478
  217. package/src/entities/forms.js +0 -1892
  218. package/src/entities/hr.js +0 -661
  219. package/src/entities/identity.js +0 -997
  220. package/src/entities/index.js +0 -282
  221. package/src/entities/infrastructure.js +0 -1153
  222. package/src/entities/knowledge.js +0 -1438
  223. package/src/entities/marketing.js +0 -1610
  224. package/src/entities/media.js +0 -1634
  225. package/src/entities/notification.js +0 -1199
  226. package/src/entities/presentation.js +0 -1274
  227. package/src/entities/productivity.js +0 -1317
  228. package/src/entities/project-management.js +0 -1136
  229. package/src/entities/recruiting.js +0 -736
  230. package/src/entities/shipping.js +0 -509
  231. package/src/entities/signature.js +0 -1102
  232. package/src/entities/site.js +0 -222
  233. package/src/entities/spreadsheet.js +0 -1341
  234. package/src/entities/storage.js +0 -1198
  235. package/src/entities/support.js +0 -1166
  236. package/src/entities/video-conferencing.js +0 -1750
  237. package/src/entities/video.js +0 -950
  238. package/src/entities.js +0 -1663
  239. package/src/index.js +0 -74
  240. package/src/providers/analytics/index.js +0 -17
  241. package/src/providers/analytics/mixpanel.js +0 -255
  242. package/src/providers/calendar/cal-com.js +0 -303
  243. package/src/providers/calendar/google-calendar.js +0 -335
  244. package/src/providers/calendar/index.js +0 -20
  245. package/src/providers/crm/hubspot.js +0 -566
  246. package/src/providers/crm/index.js +0 -17
  247. package/src/providers/development/github.js +0 -472
  248. package/src/providers/development/index.js +0 -17
  249. package/src/providers/ecommerce/index.js +0 -17
  250. package/src/providers/ecommerce/shopify.js +0 -378
  251. package/src/providers/email/index.js +0 -20
  252. package/src/providers/email/resend.js +0 -258
  253. package/src/providers/email/sendgrid.js +0 -161
  254. package/src/providers/finance/index.js +0 -17
  255. package/src/providers/finance/stripe.js +0 -549
  256. package/src/providers/forms/index.js +0 -17
  257. package/src/providers/forms/typeform.js +0 -500
  258. package/src/providers/index.js +0 -123
  259. package/src/providers/knowledge/index.js +0 -17
  260. package/src/providers/knowledge/notion.js +0 -389
  261. package/src/providers/marketing/index.js +0 -17
  262. package/src/providers/marketing/mailchimp.js +0 -443
  263. package/src/providers/media/cloudinary.js +0 -318
  264. package/src/providers/media/index.js +0 -17
  265. package/src/providers/messaging/index.js +0 -20
  266. package/src/providers/messaging/slack.js +0 -393
  267. package/src/providers/messaging/twilio-sms.js +0 -249
  268. package/src/providers/project-management/index.js +0 -17
  269. package/src/providers/project-management/linear.js +0 -575
  270. package/src/providers/registry.js +0 -86
  271. package/src/providers/spreadsheet/google-sheets.js +0 -375
  272. package/src/providers/spreadsheet/index.js +0 -20
  273. package/src/providers/spreadsheet/xlsx.js +0 -423
  274. package/src/providers/storage/index.js +0 -24
  275. package/src/providers/storage/s3.js +0 -419
  276. package/src/providers/support/index.js +0 -17
  277. package/src/providers/support/zendesk.js +0 -373
  278. package/src/providers/tasks/index.js +0 -17
  279. package/src/providers/tasks/todoist.js +0 -286
  280. package/src/providers/types.js +0 -9
  281. package/src/providers/video-conferencing/google-meet.js +0 -286
  282. package/src/providers/video-conferencing/index.js +0 -31
  283. package/src/providers/video-conferencing/jitsi.js +0 -254
  284. package/src/providers/video-conferencing/teams.js +0 -270
  285. package/src/providers/video-conferencing/zoom.js +0 -332
  286. package/src/registry.js +0 -128
  287. package/src/tools/communication.js +0 -184
  288. package/src/tools/data.js +0 -205
  289. package/src/tools/index.js +0 -11
  290. package/src/tools/web.js +0 -137
  291. package/src/types.js +0 -10
  292. package/test/define.test.js +0 -306
  293. package/test/registry.test.js +0 -357
  294. package/test/tools.test.js +0 -363
@@ -1,440 +0,0 @@
1
- /**
2
- * Vapi Voice AI Provider
3
- *
4
- * Concrete implementation of VoiceProvider using Vapi REST API.
5
- * Supports voice AI for phone calls, web calls, and chat interactions.
6
- *
7
- * @see https://docs.vapi.ai/
8
- * @packageDocumentation
9
- */
10
- import { defineProvider } from '../registry.js';
11
- const VAPI_API_URL = 'https://api.vapi.ai';
12
- /**
13
- * Vapi provider info
14
- */
15
- export const vapiInfo = {
16
- id: 'voice.vapi',
17
- name: 'Vapi',
18
- description: 'Voice AI platform for building voice agents and phone systems',
19
- category: 'voice',
20
- website: 'https://vapi.ai',
21
- docsUrl: 'https://docs.vapi.ai',
22
- requiredConfig: ['apiKey'],
23
- optionalConfig: ['defaultAssistantId', 'defaultPhoneNumberId'],
24
- };
25
- /**
26
- * Create Vapi voice provider
27
- */
28
- export function createVapiProvider(config) {
29
- let apiKey;
30
- let defaultAssistantId;
31
- let defaultPhoneNumberId;
32
- /**
33
- * Make authenticated request to Vapi API
34
- */
35
- async function vapiRequest(endpoint, options = {}) {
36
- const response = await fetch(`${VAPI_API_URL}${endpoint}`, {
37
- ...options,
38
- headers: {
39
- 'Content-Type': 'application/json',
40
- 'Authorization': `Bearer ${apiKey}`,
41
- ...options.headers,
42
- },
43
- });
44
- if (!response.ok) {
45
- const errorText = await response.text();
46
- throw new Error(`Vapi API error (${response.status}): ${errorText}`);
47
- }
48
- if (response.status === 204) {
49
- return undefined;
50
- }
51
- return response.json();
52
- }
53
- /**
54
- * Convert Vapi call to CallData
55
- */
56
- function toCallData(call) {
57
- return {
58
- id: call.id,
59
- type: call.type,
60
- status: call.status,
61
- assistantId: call.assistantId,
62
- phoneNumberId: call.phoneNumberId,
63
- customerNumber: call.customer?.number,
64
- customerName: call.customer?.name,
65
- startedAt: call.startedAt ? new Date(call.startedAt) : undefined,
66
- endedAt: call.endedAt ? new Date(call.endedAt) : undefined,
67
- durationSeconds: call.durationSeconds,
68
- cost: call.cost,
69
- transcript: call.transcript,
70
- recordingUrl: call.recordingUrl,
71
- summary: call.summary,
72
- analysis: call.analysis,
73
- messages: call.messages,
74
- createdAt: new Date(call.createdAt),
75
- updatedAt: new Date(call.updatedAt),
76
- };
77
- }
78
- /**
79
- * Convert Vapi assistant to AssistantData
80
- */
81
- function toAssistantData(assistant) {
82
- return {
83
- id: assistant.id,
84
- name: assistant.name,
85
- model: assistant.model,
86
- voice: assistant.voice,
87
- firstMessage: assistant.firstMessage,
88
- transcriber: assistant.transcriber,
89
- serverUrl: assistant.serverUrl,
90
- silenceTimeoutSeconds: assistant.silenceTimeoutSeconds,
91
- maxDurationSeconds: assistant.maxDurationSeconds,
92
- recordingEnabled: assistant.recordingEnabled,
93
- createdAt: new Date(assistant.createdAt),
94
- updatedAt: new Date(assistant.updatedAt),
95
- };
96
- }
97
- /**
98
- * Convert Vapi phone number to PhoneNumberData
99
- */
100
- function toPhoneNumberData(phoneNumber) {
101
- return {
102
- id: phoneNumber.id,
103
- provider: phoneNumber.provider,
104
- number: phoneNumber.number,
105
- name: phoneNumber.name,
106
- assistantId: phoneNumber.assistantId,
107
- status: phoneNumber.status,
108
- createdAt: new Date(phoneNumber.createdAt),
109
- updatedAt: new Date(phoneNumber.updatedAt),
110
- };
111
- }
112
- /**
113
- * Convert Vapi chat to ChatData
114
- */
115
- function toChatData(chat) {
116
- return {
117
- id: chat.id,
118
- assistantId: chat.assistantId,
119
- status: chat.status,
120
- messages: chat.messages?.map((m) => ({
121
- role: m.role,
122
- content: m.content,
123
- createdAt: m.createdAt ? new Date(m.createdAt) : undefined,
124
- })),
125
- createdAt: new Date(chat.createdAt),
126
- updatedAt: new Date(chat.updatedAt),
127
- };
128
- }
129
- return {
130
- info: vapiInfo,
131
- async initialize(cfg) {
132
- apiKey = cfg.apiKey;
133
- defaultAssistantId = cfg.defaultAssistantId;
134
- defaultPhoneNumberId = cfg.defaultPhoneNumberId;
135
- if (!apiKey) {
136
- throw new Error('Vapi API key is required');
137
- }
138
- },
139
- async healthCheck() {
140
- const start = Date.now();
141
- try {
142
- // Try to list calls to verify connectivity
143
- await vapiRequest('/call?limit=1');
144
- return {
145
- healthy: true,
146
- latencyMs: Date.now() - start,
147
- message: 'Connected',
148
- checkedAt: new Date(),
149
- };
150
- }
151
- catch (error) {
152
- return {
153
- healthy: false,
154
- latencyMs: Date.now() - start,
155
- message: error instanceof Error ? error.message : 'Unknown error',
156
- checkedAt: new Date(),
157
- };
158
- }
159
- },
160
- async dispose() {
161
- // No cleanup needed
162
- },
163
- // ==========================================================================
164
- // Call Operations
165
- // ==========================================================================
166
- async createCall(options) {
167
- const body = {
168
- assistantId: options.assistantId || defaultAssistantId,
169
- };
170
- if (options.type === 'outboundPhoneCall') {
171
- body.phoneNumberId = options.phoneNumberId || defaultPhoneNumberId;
172
- body.customer = {
173
- number: options.customerNumber,
174
- name: options.customerName,
175
- };
176
- }
177
- if (options.squadId) {
178
- body.squadId = options.squadId;
179
- delete body.assistantId;
180
- }
181
- if (options.metadata) {
182
- body.metadata = options.metadata;
183
- }
184
- const call = await vapiRequest('/call', {
185
- method: 'POST',
186
- body: JSON.stringify(body),
187
- });
188
- return toCallData(call);
189
- },
190
- async getCall(callId) {
191
- try {
192
- const call = await vapiRequest(`/call/${callId}`);
193
- return toCallData(call);
194
- }
195
- catch (error) {
196
- if (error instanceof Error && error.message.includes('404')) {
197
- return null;
198
- }
199
- throw error;
200
- }
201
- },
202
- async listCalls(options) {
203
- const params = new URLSearchParams();
204
- if (options?.assistantId) {
205
- params.append('assistantId', options.assistantId);
206
- }
207
- if (options?.phoneNumberId) {
208
- params.append('phoneNumberId', options.phoneNumberId);
209
- }
210
- if (options?.status) {
211
- params.append('status', options.status);
212
- }
213
- if (options?.limit) {
214
- params.append('limit', options.limit.toString());
215
- }
216
- if (options?.cursor) {
217
- params.append('cursor', options.cursor);
218
- }
219
- const queryString = params.toString();
220
- const endpoint = `/call${queryString ? `?${queryString}` : ''}`;
221
- const response = await vapiRequest(endpoint);
222
- return {
223
- items: response.results.map(toCallData),
224
- hasMore: !!response.cursor,
225
- nextCursor: response.cursor,
226
- };
227
- },
228
- async endCall(callId) {
229
- try {
230
- await vapiRequest(`/call/${callId}`, {
231
- method: 'DELETE',
232
- });
233
- return true;
234
- }
235
- catch (error) {
236
- return false;
237
- }
238
- },
239
- // ==========================================================================
240
- // Assistant Operations
241
- // ==========================================================================
242
- async createAssistant(options) {
243
- const body = {
244
- name: options.name,
245
- model: options.model,
246
- };
247
- if (options.voice) {
248
- body.voice = options.voice;
249
- }
250
- if (options.firstMessage) {
251
- body.firstMessage = options.firstMessage;
252
- }
253
- if (options.transcriber) {
254
- body.transcriber = options.transcriber;
255
- }
256
- if (options.serverUrl) {
257
- body.serverUrl = options.serverUrl;
258
- }
259
- if (options.silenceTimeoutSeconds !== undefined) {
260
- body.silenceTimeoutSeconds = options.silenceTimeoutSeconds;
261
- }
262
- if (options.maxDurationSeconds !== undefined) {
263
- body.maxDurationSeconds = options.maxDurationSeconds;
264
- }
265
- if (options.recordingEnabled !== undefined) {
266
- body.recordingEnabled = options.recordingEnabled;
267
- }
268
- const assistant = await vapiRequest('/assistant', {
269
- method: 'POST',
270
- body: JSON.stringify(body),
271
- });
272
- return toAssistantData(assistant);
273
- },
274
- async getAssistant(assistantId) {
275
- try {
276
- const assistant = await vapiRequest(`/assistant/${assistantId}`);
277
- return toAssistantData(assistant);
278
- }
279
- catch (error) {
280
- if (error instanceof Error && error.message.includes('404')) {
281
- return null;
282
- }
283
- throw error;
284
- }
285
- },
286
- async updateAssistant(assistantId, updates) {
287
- const assistant = await vapiRequest(`/assistant/${assistantId}`, {
288
- method: 'PATCH',
289
- body: JSON.stringify(updates),
290
- });
291
- return toAssistantData(assistant);
292
- },
293
- async deleteAssistant(assistantId) {
294
- try {
295
- await vapiRequest(`/assistant/${assistantId}`, {
296
- method: 'DELETE',
297
- });
298
- return true;
299
- }
300
- catch (error) {
301
- return false;
302
- }
303
- },
304
- async listAssistants(options) {
305
- const params = new URLSearchParams();
306
- if (options?.limit) {
307
- params.append('limit', options.limit.toString());
308
- }
309
- if (options?.cursor) {
310
- params.append('cursor', options.cursor);
311
- }
312
- const queryString = params.toString();
313
- const endpoint = `/assistant${queryString ? `?${queryString}` : ''}`;
314
- const response = await vapiRequest(endpoint);
315
- return {
316
- items: response.results.map(toAssistantData),
317
- hasMore: !!response.cursor,
318
- nextCursor: response.cursor,
319
- };
320
- },
321
- // ==========================================================================
322
- // Phone Number Operations
323
- // ==========================================================================
324
- async listPhoneNumbers(options) {
325
- const params = new URLSearchParams();
326
- if (options?.limit) {
327
- params.append('limit', options.limit.toString());
328
- }
329
- if (options?.cursor) {
330
- params.append('cursor', options.cursor);
331
- }
332
- const queryString = params.toString();
333
- const endpoint = `/phone-number${queryString ? `?${queryString}` : ''}`;
334
- const response = await vapiRequest(endpoint);
335
- return {
336
- items: response.results.map(toPhoneNumberData),
337
- hasMore: !!response.cursor,
338
- nextCursor: response.cursor,
339
- };
340
- },
341
- async getPhoneNumber(phoneNumberId) {
342
- try {
343
- const phoneNumber = await vapiRequest(`/phone-number/${phoneNumberId}`);
344
- return toPhoneNumberData(phoneNumber);
345
- }
346
- catch (error) {
347
- if (error instanceof Error && error.message.includes('404')) {
348
- return null;
349
- }
350
- throw error;
351
- }
352
- },
353
- async updatePhoneNumber(phoneNumberId, updates) {
354
- const phoneNumber = await vapiRequest(`/phone-number/${phoneNumberId}`, {
355
- method: 'PATCH',
356
- body: JSON.stringify(updates),
357
- });
358
- return toPhoneNumberData(phoneNumber);
359
- },
360
- // ==========================================================================
361
- // Chat Operations
362
- // ==========================================================================
363
- async createChat(options) {
364
- const body = {
365
- assistantId: options.assistantId || defaultAssistantId,
366
- };
367
- if (options.systemPrompt) {
368
- body.systemPrompt = options.systemPrompt;
369
- }
370
- if (options.metadata) {
371
- body.metadata = options.metadata;
372
- }
373
- const chat = await vapiRequest('/chat', {
374
- method: 'POST',
375
- body: JSON.stringify(body),
376
- });
377
- return toChatData(chat);
378
- },
379
- async getChat(chatId) {
380
- try {
381
- const chat = await vapiRequest(`/chat/${chatId}`);
382
- return toChatData(chat);
383
- }
384
- catch (error) {
385
- if (error instanceof Error && error.message.includes('404')) {
386
- return null;
387
- }
388
- throw error;
389
- }
390
- },
391
- async sendMessage(chatId, message) {
392
- const response = await vapiRequest(`/chat/${chatId}/completions`, {
393
- method: 'POST',
394
- body: JSON.stringify({
395
- messages: [{ role: 'user', content: message }],
396
- }),
397
- });
398
- return response;
399
- },
400
- async endChat(chatId) {
401
- try {
402
- await vapiRequest(`/chat/${chatId}`, {
403
- method: 'DELETE',
404
- });
405
- return true;
406
- }
407
- catch (error) {
408
- return false;
409
- }
410
- },
411
- async listChats(options) {
412
- const params = new URLSearchParams();
413
- if (options?.assistantId) {
414
- params.append('assistantId', options.assistantId);
415
- }
416
- if (options?.status) {
417
- params.append('status', options.status);
418
- }
419
- if (options?.limit) {
420
- params.append('limit', options.limit.toString());
421
- }
422
- if (options?.cursor) {
423
- params.append('cursor', options.cursor);
424
- }
425
- const queryString = params.toString();
426
- const endpoint = `/chat${queryString ? `?${queryString}` : ''}`;
427
- const response = await vapiRequest(endpoint);
428
- return {
429
- items: response.results.map(toChatData),
430
- hasMore: !!response.cursor,
431
- nextCursor: response.cursor,
432
- };
433
- },
434
- };
435
- }
436
- /**
437
- * Vapi provider definition
438
- */
439
- export const vapiProvider = defineProvider(vapiInfo, async (config) => createVapiProvider(config));
440
- //# sourceMappingURL=vapi.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vapi.js","sourceRoot":"","sources":["../../../src/providers/voice/vapi.ts"],"names":[],"mappings":"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"}