convex-vapi 0.0.1

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 (52) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +437 -0
  3. package/dist/client/_generated/_ignore.d.ts +1 -0
  4. package/dist/client/_generated/_ignore.d.ts.map +1 -0
  5. package/dist/client/_generated/_ignore.js +3 -0
  6. package/dist/client/_generated/_ignore.js.map +1 -0
  7. package/dist/client/index.d.ts +115 -0
  8. package/dist/client/index.d.ts.map +1 -0
  9. package/dist/client/index.js +172 -0
  10. package/dist/client/index.js.map +1 -0
  11. package/dist/component/_generated/api.d.ts +34 -0
  12. package/dist/component/_generated/api.d.ts.map +1 -0
  13. package/dist/component/_generated/api.js +31 -0
  14. package/dist/component/_generated/api.js.map +1 -0
  15. package/dist/component/_generated/component.d.ts +125 -0
  16. package/dist/component/_generated/component.d.ts.map +1 -0
  17. package/dist/component/_generated/component.js +11 -0
  18. package/dist/component/_generated/component.js.map +1 -0
  19. package/dist/component/_generated/dataModel.d.ts +46 -0
  20. package/dist/component/_generated/dataModel.d.ts.map +1 -0
  21. package/dist/component/_generated/dataModel.js +11 -0
  22. package/dist/component/_generated/dataModel.js.map +1 -0
  23. package/dist/component/_generated/server.d.ts +133 -0
  24. package/dist/component/_generated/server.d.ts.map +1 -0
  25. package/dist/component/_generated/server.js +80 -0
  26. package/dist/component/_generated/server.js.map +1 -0
  27. package/dist/component/convex.config.d.ts +3 -0
  28. package/dist/component/convex.config.d.ts.map +1 -0
  29. package/dist/component/convex.config.js +4 -0
  30. package/dist/component/convex.config.js.map +1 -0
  31. package/dist/component/lib.d.ts +101 -0
  32. package/dist/component/lib.d.ts.map +1 -0
  33. package/dist/component/lib.js +177 -0
  34. package/dist/component/lib.js.map +1 -0
  35. package/dist/component/schema.d.ts +53 -0
  36. package/dist/component/schema.d.ts.map +1 -0
  37. package/dist/component/schema.js +30 -0
  38. package/dist/component/schema.js.map +1 -0
  39. package/package.json +105 -0
  40. package/src/client/_generated/_ignore.ts +1 -0
  41. package/src/client/index.ts +250 -0
  42. package/src/client/setup.test.ts +26 -0
  43. package/src/component/_generated/api.ts +50 -0
  44. package/src/component/_generated/component.ts +159 -0
  45. package/src/component/_generated/dataModel.ts +60 -0
  46. package/src/component/_generated/server.ts +169 -0
  47. package/src/component/convex.config.ts +5 -0
  48. package/src/component/lib.test.ts +167 -0
  49. package/src/component/lib.ts +193 -0
  50. package/src/component/schema.ts +31 -0
  51. package/src/component/setup.test.ts +11 -0
  52. package/src/test.ts +18 -0
@@ -0,0 +1,115 @@
1
+ import { httpActionGeneric } from "convex/server";
2
+ import type { GenericActionCtx, GenericDataModel } from "convex/server";
3
+ import type { ComponentApi } from "../component/_generated/component.js";
4
+ export type VapiOptions = {
5
+ /** A private API key from the Vapi dashboard. */
6
+ apiKey: string;
7
+ /**
8
+ * The shared secret configured in the assistant's `server.secret` field.
9
+ * Sent back by Vapi on every webhook request in the `X-Vapi-Secret` header.
10
+ */
11
+ webhookSecret: string;
12
+ };
13
+ export type CreateCallArgs = {
14
+ assistantId: string;
15
+ phoneNumberId: string;
16
+ customerNumber: string;
17
+ };
18
+ export declare class Vapi {
19
+ private component;
20
+ private options;
21
+ webhookHandler: ReturnType<typeof httpActionGeneric>;
22
+ constructor(component: ComponentApi, options: VapiOptions);
23
+ private headers;
24
+ createCall(ctx: GenericActionCtx<GenericDataModel>, args: CreateCallArgs): Promise<{
25
+ callId: string;
26
+ status: string;
27
+ }>;
28
+ /** Fetches the latest call state directly from the Vapi API and re-records it. */
29
+ refreshCall(ctx: GenericActionCtx<GenericDataModel>, args: {
30
+ callId: string;
31
+ }): Promise<void>;
32
+ getCall(ctx: RunQueryCtx, args: {
33
+ callId: string;
34
+ }): Promise<{
35
+ _creationTime: number;
36
+ _id: string;
37
+ assistantId?: string;
38
+ callId: string;
39
+ cost?: number;
40
+ createdAt: number;
41
+ customerNumber?: string;
42
+ endedAt?: number;
43
+ endedReason?: string;
44
+ phoneNumberId?: string;
45
+ recordingUrl?: string;
46
+ startedAt?: number;
47
+ status: string;
48
+ summary?: string;
49
+ transcript?: string;
50
+ updatedAt: number;
51
+ } | null>;
52
+ listCallsByAssistant(ctx: RunQueryCtx, args: {
53
+ assistantId: string;
54
+ limit?: number;
55
+ }): Promise<{
56
+ _creationTime: number;
57
+ _id: string;
58
+ assistantId?: string;
59
+ callId: string;
60
+ cost?: number;
61
+ createdAt: number;
62
+ customerNumber?: string;
63
+ endedAt?: number;
64
+ endedReason?: string;
65
+ phoneNumberId?: string;
66
+ recordingUrl?: string;
67
+ startedAt?: number;
68
+ status: string;
69
+ summary?: string;
70
+ transcript?: string;
71
+ updatedAt: number;
72
+ }[]>;
73
+ getStats(ctx: RunQueryCtx): Promise<{
74
+ callCount: number;
75
+ endedCount: number;
76
+ liveCount: number;
77
+ webhookEventCount: number;
78
+ }>;
79
+ listRecentCalls(ctx: RunQueryCtx, args?: {
80
+ limit?: number;
81
+ }): Promise<{
82
+ _creationTime: number;
83
+ _id: string;
84
+ assistantId?: string;
85
+ callId: string;
86
+ cost?: number;
87
+ createdAt: number;
88
+ customerNumber?: string;
89
+ endedAt?: number;
90
+ endedReason?: string;
91
+ phoneNumberId?: string;
92
+ recordingUrl?: string;
93
+ startedAt?: number;
94
+ status: string;
95
+ summary?: string;
96
+ transcript?: string;
97
+ updatedAt: number;
98
+ }[]>;
99
+ listRecentWebhookEvents(ctx: RunQueryCtx, args?: {
100
+ limit?: number;
101
+ }): Promise<{
102
+ _creationTime: number;
103
+ _id: string;
104
+ callId?: string;
105
+ eventId: string;
106
+ eventType: string;
107
+ payload: string;
108
+ receivedAt: number;
109
+ }[]>;
110
+ }
111
+ type RunQueryCtx = {
112
+ runQuery: GenericActionCtx<GenericDataModel>["runQuery"];
113
+ };
114
+ export {};
115
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAIzE,MAAM,MAAM,WAAW,GAAG;IACxB,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAsCF,qBAAa,IAAI;IAIb,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,OAAO;IAJjB,cAAc,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;gBAG3C,SAAS,EAAE,YAAY,EACvB,OAAO,EAAE,WAAW;IA8F9B,OAAO,CAAC,OAAO;IAOT,UAAU,CACd,GAAG,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,EACvC,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IA4B9C,kFAAkF;IAC5E,WAAW,CACf,GAAG,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,EACvC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GACvB,OAAO,CAAC,IAAI,CAAC;IAqBV,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE;;;;;;;;;;;;;;;;;;IAIlD,oBAAoB,CACxB,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;;;;;;;;;;;;;;;;;;IAKzC,QAAQ,CAAC,GAAG,EAAE,WAAW;;;;;;IAIzB,eAAe,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO;;;;;;;;;;;;;;;;;;IAI/D,uBAAuB,CAC3B,GAAG,EAAE,WAAW,EAChB,IAAI,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO;;;;;;;;;CAIhC;AAED,KAAK,WAAW,GAAG;IACjB,QAAQ,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,UAAU,CAAC,CAAC;CAC1D,CAAC"}
@@ -0,0 +1,172 @@
1
+ import { httpActionGeneric } from "convex/server";
2
+ const VAPI_API_BASE = "https://api.vapi.ai";
3
+ function timingSafeEqual(a, b) {
4
+ if (a.length !== b.length)
5
+ return false;
6
+ let mismatch = 0;
7
+ for (let i = 0; i < a.length; i++) {
8
+ mismatch |= a.charCodeAt(i) ^ b.charCodeAt(i);
9
+ }
10
+ return mismatch === 0;
11
+ }
12
+ async function sha256Hex(payload) {
13
+ const enc = new TextEncoder();
14
+ const digest = await crypto.subtle.digest("SHA-256", enc.encode(payload));
15
+ return Array.from(new Uint8Array(digest))
16
+ .map((b) => b.toString(16).padStart(2, "0"))
17
+ .join("");
18
+ }
19
+ function callRecordFromApiObject(call) {
20
+ const customer = call.customer;
21
+ return {
22
+ callId: String(call.id),
23
+ assistantId: call.assistantId ?? undefined,
24
+ phoneNumberId: call.phoneNumberId ?? undefined,
25
+ customerNumber: customer?.number ?? undefined,
26
+ status: call.status ?? "unknown",
27
+ endedReason: call.endedReason ?? undefined,
28
+ startedAt: call.startedAt
29
+ ? new Date(call.startedAt).getTime()
30
+ : undefined,
31
+ endedAt: call.endedAt
32
+ ? new Date(call.endedAt).getTime()
33
+ : undefined,
34
+ cost: call.cost ?? undefined,
35
+ };
36
+ }
37
+ export class Vapi {
38
+ component;
39
+ options;
40
+ webhookHandler;
41
+ constructor(component, options) {
42
+ this.component = component;
43
+ this.options = options;
44
+ const component_ = component;
45
+ const webhookSecret = options.webhookSecret;
46
+ this.webhookHandler = httpActionGeneric(async (ctx, request) => {
47
+ const rawBody = await request.text();
48
+ const secretHeader = request.headers.get("x-vapi-secret");
49
+ if (!secretHeader) {
50
+ return new Response(JSON.stringify({ error: "Missing X-Vapi-Secret header" }), {
51
+ status: 400,
52
+ headers: { "Content-Type": "application/json" },
53
+ });
54
+ }
55
+ if (!timingSafeEqual(secretHeader, webhookSecret)) {
56
+ console.error("convex-vapi: webhook secret mismatch");
57
+ return new Response(JSON.stringify({ error: "Invalid secret" }), {
58
+ status: 401,
59
+ headers: { "Content-Type": "application/json" },
60
+ });
61
+ }
62
+ // Vapi does not send a per-delivery id header, so duplicates are
63
+ // detected by hashing the raw payload itself.
64
+ const eventId = await sha256Hex(rawBody);
65
+ const payload = JSON.parse(rawBody);
66
+ const message = payload.message ?? {};
67
+ const eventType = message.type ?? "unknown";
68
+ const call = message.call;
69
+ const callId = call?.id ? String(call.id) : undefined;
70
+ const { alreadyProcessed } = await ctx.runMutation(component_.lib.checkAndRecordEvent, {
71
+ eventId,
72
+ eventType,
73
+ callId,
74
+ payload: rawBody,
75
+ });
76
+ if (alreadyProcessed) {
77
+ return new Response(JSON.stringify({ success: true, duplicate: true }), {
78
+ status: 200,
79
+ headers: { "Content-Type": "application/json" },
80
+ });
81
+ }
82
+ if (eventType === "status-update" && call) {
83
+ await ctx.runMutation(component_.lib.recordCall, {
84
+ ...callRecordFromApiObject(call),
85
+ status: message.status ?? call.status ?? "unknown",
86
+ });
87
+ }
88
+ else if (eventType === "end-of-call-report" && call) {
89
+ const artifact = message.artifact;
90
+ await ctx.runMutation(component_.lib.recordCall, {
91
+ ...callRecordFromApiObject(call),
92
+ status: "ended",
93
+ endedReason: message.endedReason ?? undefined,
94
+ transcript: artifact?.transcript ?? undefined,
95
+ summary: artifact?.summary ?? undefined,
96
+ recordingUrl: artifact?.recordingUrl ??
97
+ artifact?.recording
98
+ ?.stereoUrl ??
99
+ undefined,
100
+ });
101
+ }
102
+ // Other event types (transcript, conversation-update, speech-update,
103
+ // tool-calls, etc.) are accepted and recorded in webhookEvents for
104
+ // idempotency/auditing, but do not update the calls table — see the
105
+ // README's Limitations section.
106
+ return new Response(JSON.stringify({ success: true }), {
107
+ status: 200,
108
+ headers: { "Content-Type": "application/json" },
109
+ });
110
+ });
111
+ }
112
+ headers() {
113
+ return {
114
+ Authorization: `Bearer ${this.options.apiKey}`,
115
+ "Content-Type": "application/json",
116
+ };
117
+ }
118
+ async createCall(ctx, args) {
119
+ const res = await fetch(`${VAPI_API_BASE}/call`, {
120
+ method: "POST",
121
+ headers: this.headers(),
122
+ body: JSON.stringify({
123
+ assistantId: args.assistantId,
124
+ phoneNumberId: args.phoneNumberId,
125
+ customer: { number: args.customerNumber },
126
+ }),
127
+ });
128
+ if (!res.ok) {
129
+ throw new Error(`Failed to create Vapi call: ${res.status} ${await res.text()}`);
130
+ }
131
+ const json = (await res.json());
132
+ await ctx.runMutation(this.component.lib.recordCall, callRecordFromApiObject(json));
133
+ return {
134
+ callId: String(json.id),
135
+ status: json.status ?? "queued",
136
+ };
137
+ }
138
+ /** Fetches the latest call state directly from the Vapi API and re-records it. */
139
+ async refreshCall(ctx, args) {
140
+ const res = await fetch(`${VAPI_API_BASE}/call/${args.callId}`, {
141
+ method: "GET",
142
+ headers: this.headers(),
143
+ });
144
+ if (!res.ok) {
145
+ throw new Error(`Failed to fetch Vapi call: ${res.status} ${await res.text()}`);
146
+ }
147
+ const json = (await res.json());
148
+ const artifact = json.artifact;
149
+ await ctx.runMutation(this.component.lib.recordCall, {
150
+ ...callRecordFromApiObject(json),
151
+ transcript: artifact?.transcript ?? undefined,
152
+ summary: artifact?.summary ?? undefined,
153
+ recordingUrl: artifact?.recordingUrl ?? undefined,
154
+ });
155
+ }
156
+ async getCall(ctx, args) {
157
+ return await ctx.runQuery(this.component.lib.getCall, args);
158
+ }
159
+ async listCallsByAssistant(ctx, args) {
160
+ return await ctx.runQuery(this.component.lib.listCallsByAssistant, args);
161
+ }
162
+ async getStats(ctx) {
163
+ return await ctx.runQuery(this.component.lib.getStats, {});
164
+ }
165
+ async listRecentCalls(ctx, args = {}) {
166
+ return await ctx.runQuery(this.component.lib.listRecentCalls, args);
167
+ }
168
+ async listRecentWebhookEvents(ctx, args = {}) {
169
+ return await ctx.runQuery(this.component.lib.listRecentWebhookEvents, args);
170
+ }
171
+ }
172
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Generated `api` utility.
3
+ *
4
+ * THIS CODE IS AUTOMATICALLY GENERATED.
5
+ *
6
+ * To regenerate, run `npx convex dev`.
7
+ * @module
8
+ */
9
+ import type * as lib from "../lib.js";
10
+ import type { ApiFromModules, FilterApi, FunctionReference } from "convex/server";
11
+ declare const fullApi: ApiFromModules<{
12
+ lib: typeof lib;
13
+ }>;
14
+ /**
15
+ * A utility for referencing Convex functions in your app's public API.
16
+ *
17
+ * Usage:
18
+ * ```js
19
+ * const myFunctionReference = api.myModule.myFunction;
20
+ * ```
21
+ */
22
+ export declare const api: FilterApi<typeof fullApi, FunctionReference<any, "public">>;
23
+ /**
24
+ * A utility for referencing Convex functions in your app's internal API.
25
+ *
26
+ * Usage:
27
+ * ```js
28
+ * const myFunctionReference = internal.myModule.myFunction;
29
+ * ```
30
+ */
31
+ export declare const internal: FilterApi<typeof fullApi, FunctionReference<any, "internal">>;
32
+ export declare const components: {};
33
+ export {};
34
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/component/_generated/api.ts"],"names":[],"mappings":"AACA;;;;;;;GAOG;AAEH,OAAO,KAAK,KAAK,GAAG,MAAM,WAAW,CAAC;AAEtC,OAAO,KAAK,EACV,cAAc,EACd,SAAS,EACT,iBAAiB,EAClB,MAAM,eAAe,CAAC;AAGvB,QAAA,MAAM,OAAO,EAAE,cAAc,CAAC;IAC5B,GAAG,EAAE,OAAO,GAAG,CAAC;CACjB,CAAiB,CAAC;AAEnB;;;;;;;GAOG;AACH,eAAO,MAAM,GAAG,EAAE,SAAS,CACzB,OAAO,OAAO,EACd,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC,CACjB,CAAC;AAElB;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ,EAAE,SAAS,CAC9B,OAAO,OAAO,EACd,iBAAiB,CAAC,GAAG,EAAE,UAAU,CAAC,CACnB,CAAC;AAElB,eAAO,MAAM,UAAU,EAAqC,EAAE,CAAC"}
@@ -0,0 +1,31 @@
1
+ /* eslint-disable */
2
+ /**
3
+ * Generated `api` utility.
4
+ *
5
+ * THIS CODE IS AUTOMATICALLY GENERATED.
6
+ *
7
+ * To regenerate, run `npx convex dev`.
8
+ * @module
9
+ */
10
+ import { anyApi, componentsGeneric } from "convex/server";
11
+ const fullApi = anyApi;
12
+ /**
13
+ * A utility for referencing Convex functions in your app's public API.
14
+ *
15
+ * Usage:
16
+ * ```js
17
+ * const myFunctionReference = api.myModule.myFunction;
18
+ * ```
19
+ */
20
+ export const api = anyApi;
21
+ /**
22
+ * A utility for referencing Convex functions in your app's internal API.
23
+ *
24
+ * Usage:
25
+ * ```js
26
+ * const myFunctionReference = internal.myModule.myFunction;
27
+ * ```
28
+ */
29
+ export const internal = anyApi;
30
+ export const components = componentsGeneric();
31
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/component/_generated/api.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB;;;;;;;GAOG;AASH,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAE1D,MAAM,OAAO,GAER,MAAa,CAAC;AAEnB;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,GAAG,GAGZ,MAAa,CAAC;AAElB;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,QAAQ,GAGjB,MAAa,CAAC;AAElB,MAAM,CAAC,MAAM,UAAU,GAAG,iBAAiB,EAAmB,CAAC"}
@@ -0,0 +1,125 @@
1
+ /**
2
+ * Generated `ComponentApi` utility.
3
+ *
4
+ * THIS CODE IS AUTOMATICALLY GENERATED.
5
+ *
6
+ * To regenerate, run `npx convex dev`.
7
+ * @module
8
+ */
9
+ import type { FunctionReference } from "convex/server";
10
+ /**
11
+ * A utility for referencing a Convex component's exposed API.
12
+ *
13
+ * Useful when expecting a parameter like `components.myComponent`.
14
+ * Usage:
15
+ * ```ts
16
+ * async function myFunction(ctx: QueryCtx, component: ComponentApi) {
17
+ * return ctx.runQuery(component.someFile.someQuery, { ...args });
18
+ * }
19
+ * ```
20
+ */
21
+ export type ComponentApi<Name extends string | undefined = string | undefined> = {
22
+ lib: {
23
+ checkAndRecordEvent: FunctionReference<"mutation", "internal", {
24
+ callId?: string;
25
+ eventId: string;
26
+ eventType: string;
27
+ payload: string;
28
+ }, {
29
+ alreadyProcessed: boolean;
30
+ }, Name>;
31
+ getCall: FunctionReference<"query", "internal", {
32
+ callId: string;
33
+ }, null | {
34
+ _creationTime: number;
35
+ _id: string;
36
+ assistantId?: string;
37
+ callId: string;
38
+ cost?: number;
39
+ createdAt: number;
40
+ customerNumber?: string;
41
+ endedAt?: number;
42
+ endedReason?: string;
43
+ phoneNumberId?: string;
44
+ recordingUrl?: string;
45
+ startedAt?: number;
46
+ status: string;
47
+ summary?: string;
48
+ transcript?: string;
49
+ updatedAt: number;
50
+ }, Name>;
51
+ getStats: FunctionReference<"query", "internal", {}, {
52
+ callCount: number;
53
+ endedCount: number;
54
+ liveCount: number;
55
+ webhookEventCount: number;
56
+ }, Name>;
57
+ listCallsByAssistant: FunctionReference<"query", "internal", {
58
+ assistantId: string;
59
+ limit?: number;
60
+ }, Array<{
61
+ _creationTime: number;
62
+ _id: string;
63
+ assistantId?: string;
64
+ callId: string;
65
+ cost?: number;
66
+ createdAt: number;
67
+ customerNumber?: string;
68
+ endedAt?: number;
69
+ endedReason?: string;
70
+ phoneNumberId?: string;
71
+ recordingUrl?: string;
72
+ startedAt?: number;
73
+ status: string;
74
+ summary?: string;
75
+ transcript?: string;
76
+ updatedAt: number;
77
+ }>, Name>;
78
+ listRecentCalls: FunctionReference<"query", "internal", {
79
+ limit?: number;
80
+ }, Array<{
81
+ _creationTime: number;
82
+ _id: string;
83
+ assistantId?: string;
84
+ callId: string;
85
+ cost?: number;
86
+ createdAt: number;
87
+ customerNumber?: string;
88
+ endedAt?: number;
89
+ endedReason?: string;
90
+ phoneNumberId?: string;
91
+ recordingUrl?: string;
92
+ startedAt?: number;
93
+ status: string;
94
+ summary?: string;
95
+ transcript?: string;
96
+ updatedAt: number;
97
+ }>, Name>;
98
+ listRecentWebhookEvents: FunctionReference<"query", "internal", {
99
+ limit?: number;
100
+ }, Array<{
101
+ _creationTime: number;
102
+ _id: string;
103
+ callId?: string;
104
+ eventId: string;
105
+ eventType: string;
106
+ payload: string;
107
+ receivedAt: number;
108
+ }>, Name>;
109
+ recordCall: FunctionReference<"mutation", "internal", {
110
+ assistantId?: string;
111
+ callId: string;
112
+ cost?: number;
113
+ customerNumber?: string;
114
+ endedAt?: number;
115
+ endedReason?: string;
116
+ phoneNumberId?: string;
117
+ recordingUrl?: string;
118
+ startedAt?: number;
119
+ status: string;
120
+ summary?: string;
121
+ transcript?: string;
122
+ }, string, Name>;
123
+ };
124
+ };
125
+ //# sourceMappingURL=component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/component/_generated/component.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /* eslint-disable */
2
+ /**
3
+ * Generated `ComponentApi` utility.
4
+ *
5
+ * THIS CODE IS AUTOMATICALLY GENERATED.
6
+ *
7
+ * To regenerate, run `npx convex dev`.
8
+ * @module
9
+ */
10
+ export {};
11
+ //# sourceMappingURL=component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component.js","sourceRoot":"","sources":["../../../src/component/_generated/component.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB;;;;;;;GAOG"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Generated data model types.
3
+ *
4
+ * THIS CODE IS AUTOMATICALLY GENERATED.
5
+ *
6
+ * To regenerate, run `npx convex dev`.
7
+ * @module
8
+ */
9
+ import type { DataModelFromSchemaDefinition, DocumentByName, TableNamesInDataModel, SystemTableNames } from "convex/server";
10
+ import type { GenericId } from "convex/values";
11
+ import schema from "../schema.js";
12
+ /**
13
+ * The names of all of your Convex tables.
14
+ */
15
+ export type TableNames = TableNamesInDataModel<DataModel>;
16
+ /**
17
+ * The type of a document stored in Convex.
18
+ *
19
+ * @typeParam TableName - A string literal type of the table name (like "users").
20
+ */
21
+ export type Doc<TableName extends TableNames> = DocumentByName<DataModel, TableName>;
22
+ /**
23
+ * An identifier for a document in Convex.
24
+ *
25
+ * Convex documents are uniquely identified by their `Id`, which is accessible
26
+ * on the `_id` field. To learn more, see [Document IDs](https://docs.convex.dev/using/document-ids).
27
+ *
28
+ * Documents can be loaded using `db.get(tableName, id)` in query and mutation functions.
29
+ *
30
+ * IDs are just strings at runtime, but this type can be used to distinguish them from other
31
+ * strings when type checking.
32
+ *
33
+ * @typeParam TableName - A string literal type of the table name (like "users").
34
+ */
35
+ export type Id<TableName extends TableNames | SystemTableNames> = GenericId<TableName>;
36
+ /**
37
+ * A type describing your Convex data model.
38
+ *
39
+ * This type includes information about what tables you have, the type of
40
+ * documents stored in those tables, and the indexes defined on them.
41
+ *
42
+ * This type is used to parameterize methods like `queryGeneric` and
43
+ * `mutationGeneric` to make them type-safe.
44
+ */
45
+ export type DataModel = DataModelFromSchemaDefinition<typeof schema>;
46
+ //# sourceMappingURL=dataModel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataModel.d.ts","sourceRoot":"","sources":["../../../src/component/_generated/dataModel.ts"],"names":[],"mappings":"AACA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,6BAA6B,EAC7B,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EACjB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,MAAM,MAAM,cAAc,CAAC;AAElC;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;AAE1D;;;;GAIG;AACH,MAAM,MAAM,GAAG,CAAC,SAAS,SAAS,UAAU,IAAI,cAAc,CAC5D,SAAS,EACT,SAAS,CACV,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,EAAE,CAAC,SAAS,SAAS,UAAU,GAAG,gBAAgB,IAC5D,SAAS,CAAC,SAAS,CAAC,CAAC;AAEvB;;;;;;;;GAQG;AACH,MAAM,MAAM,SAAS,GAAG,6BAA6B,CAAC,OAAO,MAAM,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ /* eslint-disable */
2
+ /**
3
+ * Generated data model types.
4
+ *
5
+ * THIS CODE IS AUTOMATICALLY GENERATED.
6
+ *
7
+ * To regenerate, run `npx convex dev`.
8
+ * @module
9
+ */
10
+ import schema from "../schema.js";
11
+ //# sourceMappingURL=dataModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataModel.js","sourceRoot":"","sources":["../../../src/component/_generated/dataModel.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB;;;;;;;GAOG;AASH,OAAO,MAAM,MAAM,cAAc,CAAC"}