retell-sdk 5.22.0 → 5.23.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 (102) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/client.d.mts +10 -10
  3. package/client.d.mts.map +1 -1
  4. package/client.d.ts +10 -10
  5. package/client.d.ts.map +1 -1
  6. package/client.js.map +1 -1
  7. package/client.mjs.map +1 -1
  8. package/package.json +1 -1
  9. package/resources/agent.d.mts +14 -1
  10. package/resources/agent.d.mts.map +1 -1
  11. package/resources/agent.d.ts +14 -1
  12. package/resources/agent.d.ts.map +1 -1
  13. package/resources/agent.js +15 -0
  14. package/resources/agent.js.map +1 -1
  15. package/resources/agent.mjs +15 -0
  16. package/resources/agent.mjs.map +1 -1
  17. package/resources/call.d.mts +559 -74
  18. package/resources/call.d.mts.map +1 -1
  19. package/resources/call.d.ts +559 -74
  20. package/resources/call.d.ts.map +1 -1
  21. package/resources/call.js +7 -4
  22. package/resources/call.js.map +1 -1
  23. package/resources/call.mjs +7 -4
  24. package/resources/call.mjs.map +1 -1
  25. package/resources/chat-agent.d.mts +16 -1
  26. package/resources/chat-agent.d.mts.map +1 -1
  27. package/resources/chat-agent.d.ts +16 -1
  28. package/resources/chat-agent.d.ts.map +1 -1
  29. package/resources/chat-agent.js +17 -0
  30. package/resources/chat-agent.js.map +1 -1
  31. package/resources/chat-agent.mjs +17 -0
  32. package/resources/chat-agent.mjs.map +1 -1
  33. package/resources/chat.d.mts +38 -12
  34. package/resources/chat.d.mts.map +1 -1
  35. package/resources/chat.d.ts +38 -12
  36. package/resources/chat.d.ts.map +1 -1
  37. package/resources/chat.js +8 -5
  38. package/resources/chat.js.map +1 -1
  39. package/resources/chat.mjs +8 -5
  40. package/resources/chat.mjs.map +1 -1
  41. package/resources/conversation-flow-component.d.mts +33 -5
  42. package/resources/conversation-flow-component.d.mts.map +1 -1
  43. package/resources/conversation-flow-component.d.ts +33 -5
  44. package/resources/conversation-flow-component.d.ts.map +1 -1
  45. package/resources/conversation-flow-component.js +8 -4
  46. package/resources/conversation-flow-component.js.map +1 -1
  47. package/resources/conversation-flow-component.mjs +8 -4
  48. package/resources/conversation-flow-component.mjs.map +1 -1
  49. package/resources/conversation-flow.d.mts +21 -14
  50. package/resources/conversation-flow.d.mts.map +1 -1
  51. package/resources/conversation-flow.d.ts +21 -14
  52. package/resources/conversation-flow.d.ts.map +1 -1
  53. package/resources/conversation-flow.js +7 -3
  54. package/resources/conversation-flow.js.map +1 -1
  55. package/resources/conversation-flow.mjs +7 -3
  56. package/resources/conversation-flow.mjs.map +1 -1
  57. package/resources/index.d.mts +5 -5
  58. package/resources/index.d.mts.map +1 -1
  59. package/resources/index.d.ts +5 -5
  60. package/resources/index.d.ts.map +1 -1
  61. package/resources/index.js.map +1 -1
  62. package/resources/index.mjs.map +1 -1
  63. package/resources/llm.d.mts +20 -12
  64. package/resources/llm.d.mts.map +1 -1
  65. package/resources/llm.d.ts +20 -12
  66. package/resources/llm.d.ts.map +1 -1
  67. package/resources/llm.js +6 -3
  68. package/resources/llm.js.map +1 -1
  69. package/resources/llm.mjs +6 -3
  70. package/resources/llm.mjs.map +1 -1
  71. package/resources/phone-number.d.mts +32 -5
  72. package/resources/phone-number.d.mts.map +1 -1
  73. package/resources/phone-number.d.ts +32 -5
  74. package/resources/phone-number.d.ts.map +1 -1
  75. package/resources/phone-number.js +7 -4
  76. package/resources/phone-number.js.map +1 -1
  77. package/resources/phone-number.mjs +7 -4
  78. package/resources/phone-number.mjs.map +1 -1
  79. package/resources/tests.d.mts +64 -14
  80. package/resources/tests.d.mts.map +1 -1
  81. package/resources/tests.d.ts +64 -14
  82. package/resources/tests.d.ts.map +1 -1
  83. package/resources/tests.js +7 -13
  84. package/resources/tests.js.map +1 -1
  85. package/resources/tests.mjs +7 -13
  86. package/resources/tests.mjs.map +1 -1
  87. package/src/client.ts +10 -0
  88. package/src/resources/agent.ts +23 -0
  89. package/src/resources/call.ts +766 -104
  90. package/src/resources/chat-agent.ts +25 -0
  91. package/src/resources/chat.ts +42 -17
  92. package/src/resources/conversation-flow-component.ts +42 -5
  93. package/src/resources/conversation-flow.ts +24 -15
  94. package/src/resources/index.ts +5 -0
  95. package/src/resources/llm.ts +23 -13
  96. package/src/resources/phone-number.ts +41 -5
  97. package/src/resources/tests.ts +83 -16
  98. package/src/version.ts +1 -1
  99. package/version.d.mts +1 -1
  100. package/version.d.ts +1 -1
  101. package/version.js +1 -1
  102. package/version.mjs +1 -1
@@ -1,6 +1,7 @@
1
1
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  import { APIResource } from '../core/resource';
4
+ import * as CallAPI from './call';
4
5
  import { APIPromise } from '../core/api-promise';
5
6
  import { buildHeaders } from '../internal/headers';
6
7
  import { RequestOptions } from '../internal/request-options';
@@ -43,12 +44,15 @@ export class Call extends APIResource {
43
44
  }
44
45
 
45
46
  /**
46
- * Retrieve call details
47
+ * List calls with unified cursor pagination response.
47
48
  *
48
- * @deprecated
49
+ * @example
50
+ * ```ts
51
+ * const calls = await client.call.list();
52
+ * ```
49
53
  */
50
- list(body: CallListParams, options?: RequestOptions): APIPromise<CallListResponse> {
51
- return this._client.post('/v2/list-calls', {
54
+ list(body: CallListParams | null | undefined = {}, options?: RequestOptions): APIPromise<CallListResponse> {
55
+ return this._client.post('/v3/list-calls', {
52
56
  body,
53
57
  timeout: (this._client as any)._options.timeout ?? 300000,
54
58
  ...options,
@@ -2281,7 +2285,31 @@ export namespace WebCallResponse {
2281
2285
  }
2282
2286
  }
2283
2287
 
2284
- export type CallListResponse = Array<CallResponse>;
2288
+ export interface CallListResponse {
2289
+ /**
2290
+ * Whether more results are available.
2291
+ */
2292
+ has_more?: boolean;
2293
+
2294
+ items?: Array<CallListResponse.CallWebCallResponse | CallListResponse.CallPhoneCallResponse>;
2295
+
2296
+ /**
2297
+ * Pagination key for the next page.
2298
+ */
2299
+ pagination_key?: string;
2300
+ }
2301
+
2302
+ export namespace CallListResponse {
2303
+ /**
2304
+ * V3 list calls response. Transcript fields are intentionally omitted.
2305
+ */
2306
+ export interface CallWebCallResponse extends CallAPI.WebCallResponse {}
2307
+
2308
+ /**
2309
+ * V3 list calls response. Transcript fields are intentionally omitted.
2310
+ */
2311
+ export interface CallPhoneCallResponse extends CallAPI.PhoneCallResponse {}
2312
+ }
2285
2313
 
2286
2314
  export interface CallUpdateParams {
2287
2315
  /**
@@ -2316,196 +2344,830 @@ export interface CallUpdateParams {
2316
2344
 
2317
2345
  export interface CallListParams {
2318
2346
  /**
2319
- * Filter criteria for the calls to retrieve.
2347
+ * Filter criteria for calls. All conditions are implicitly connected with AND.
2320
2348
  */
2321
2349
  filter_criteria?: CallListParams.FilterCriteria;
2322
2350
 
2323
2351
  /**
2324
- * Limit the number of calls returned. Default 50, Max 1000. To retrieve more than
2325
- * 1000, use pagination_key to continue fetching the next page.
2352
+ * Maximum number of calls to return.
2326
2353
  */
2327
2354
  limit?: number;
2328
2355
 
2329
2356
  /**
2330
- * The pagination key to continue fetching the next page of calls. Pagination key
2331
- * is represented by a call id here, and it's exclusive (not included in the
2332
- * fetched calls). The last call id from the list calls is usually used as
2333
- * pagination key here. If not set, will start from the beginning.
2357
+ * Opaque pagination cursor from a previous response.
2334
2358
  */
2335
2359
  pagination_key?: string;
2336
2360
 
2337
2361
  /**
2338
- * The calls will be sorted by `start_timestamp`, whether to return the calls in
2339
- * ascending or descending order.
2362
+ * Number of records to skip for pagination.
2363
+ */
2364
+ skip?: number;
2365
+
2366
+ /**
2367
+ * Sort calls by `start_timestamp` in ascending or descending order.
2340
2368
  */
2341
2369
  sort_order?: 'ascending' | 'descending';
2342
2370
  }
2343
2371
 
2344
2372
  export namespace CallListParams {
2345
2373
  /**
2346
- * Filter criteria for the calls to retrieve.
2374
+ * Filter criteria for calls. All conditions are implicitly connected with AND.
2347
2375
  */
2348
2376
  export interface FilterCriteria {
2349
2377
  /**
2350
- * Only retrieve calls that are made with specific agent(s).
2378
+ * Filter by agent(s). Agent filters are connected by OR.
2351
2379
  */
2352
- agent_id?: Array<string>;
2380
+ agent?: Array<FilterCriteria.Agent>;
2353
2381
 
2354
2382
  /**
2355
- * Only retrieve calls with specific batch call id(s).
2383
+ * Filter by batch call ID.
2356
2384
  */
2357
- batch_call_id?: Array<string>;
2385
+ batch_call_id?: FilterCriteria.BatchCallID;
2358
2386
 
2359
2387
  /**
2360
- * Only retrieve calls with specific call id(s).
2388
+ * Filter by call ID.
2361
2389
  */
2362
- call_id?: Array<string>;
2390
+ call_id?: FilterCriteria.CallID;
2363
2391
 
2364
- /**
2365
- * Only retrieve calls with specific call status(es).
2366
- */
2367
- call_status?: Array<'not_connected' | 'ongoing' | 'ended' | 'error'>;
2392
+ call_status?: FilterCriteria.CallStatus;
2368
2393
 
2369
2394
  /**
2370
- * Only retrieve calls with specific call successful(s).
2395
+ * Filter by whether the call was successful.
2371
2396
  */
2372
- call_successful?: Array<boolean>;
2397
+ call_successful?: FilterCriteria.CallSuccessful;
2398
+
2399
+ call_type?: FilterCriteria.CallType;
2373
2400
 
2374
2401
  /**
2375
- * Only retrieve calls with specific call type(s).
2402
+ * Filter by combined cost of the call.
2376
2403
  */
2377
- call_type?: Array<'web_call' | 'phone_call'>;
2404
+ combined_cost?: FilterCriteria.NumberFilter | FilterCriteria.RangeFilter;
2378
2405
 
2379
2406
  /**
2380
- * Only retrieve calls with specific direction(s).
2407
+ * Filter by custom analysis data fields.
2381
2408
  */
2382
- direction?: Array<'inbound' | 'outbound'>;
2409
+ custom_analysis_data?: Array<
2410
+ | FilterCriteria.StringFilter
2411
+ | FilterCriteria.NumberFilter
2412
+ | FilterCriteria.BooleanFilter
2413
+ | FilterCriteria.RangeFilter
2414
+ | FilterCriteria.EnumFilter
2415
+ | FilterCriteria.PresentFilter
2416
+ >;
2383
2417
 
2384
2418
  /**
2385
- * Only retrieve calls with specific disconnection reason(s).
2419
+ * Filter by custom attributes fields.
2386
2420
  */
2387
- disconnection_reason?: Array<
2388
- | 'user_hangup'
2389
- | 'agent_hangup'
2390
- | 'call_transfer'
2391
- | 'voicemail_reached'
2392
- | 'ivr_reached'
2393
- | 'inactivity'
2394
- | 'max_duration_reached'
2395
- | 'concurrency_limit_reached'
2396
- | 'no_valid_payment'
2397
- | 'scam_detected'
2398
- | 'dial_busy'
2399
- | 'dial_failed'
2400
- | 'dial_no_answer'
2401
- | 'invalid_destination'
2402
- | 'telephony_provider_permission_denied'
2403
- | 'telephony_provider_unavailable'
2404
- | 'sip_routing_error'
2405
- | 'marked_as_spam'
2406
- | 'user_declined'
2407
- | 'error_llm_websocket_open'
2408
- | 'error_llm_websocket_lost_connection'
2409
- | 'error_llm_websocket_runtime'
2410
- | 'error_llm_websocket_corrupt_payload'
2411
- | 'error_no_audio_received'
2412
- | 'error_asr'
2413
- | 'error_retell'
2414
- | 'error_unknown'
2415
- | 'error_user_not_joined'
2416
- | 'registered_call_timeout'
2417
- | 'transfer_bridged'
2418
- | 'transfer_cancelled'
2419
- | 'manual_stopped'
2421
+ custom_attributes?: Array<
2422
+ | FilterCriteria.StringFilter
2423
+ | FilterCriteria.NumberFilter
2424
+ | FilterCriteria.BooleanFilter
2425
+ | FilterCriteria.RangeFilter
2426
+ | FilterCriteria.EnumFilter
2427
+ | FilterCriteria.PresentFilter
2420
2428
  >;
2421
2429
 
2430
+ data_storage_setting?: FilterCriteria.DataStorageSetting;
2431
+
2432
+ direction?: FilterCriteria.Direction;
2433
+
2434
+ disconnection_reason?: FilterCriteria.DisconnectionReason;
2435
+
2422
2436
  /**
2423
- * Only retrieve calls with specific range of duration(s).
2437
+ * Filter by call duration in milliseconds.
2424
2438
  */
2425
- duration_ms?: FilterCriteria.DurationMs;
2439
+ duration_ms?: FilterCriteria.NumberFilter | FilterCriteria.RangeFilter;
2426
2440
 
2427
2441
  /**
2428
- * Filter by dynamic variables using dot notation (e.g., `dynamic_variables.name`).
2429
- * Values are matched exactly as strings.
2442
+ * Filter by dynamic variables.
2430
2443
  */
2431
- dynamic_variables?: { [key: string]: Array<string> };
2432
-
2433
- e2e_latency_p50?: FilterCriteria.E2ELatencyP50;
2444
+ dynamic_variables?: Array<FilterCriteria.DynamicVariable>;
2434
2445
 
2435
2446
  /**
2436
- * Only retrieve calls with specific range of end timestamp(s).
2447
+ * Filter by end-to-end latency p50.
2437
2448
  */
2438
- end_timestamp?: FilterCriteria.EndTimestamp;
2449
+ e2e_latency_p50?: FilterCriteria.NumberFilter | FilterCriteria.RangeFilter;
2439
2450
 
2440
2451
  /**
2441
- * Only retrieve calls with specific from number(s).
2452
+ * Filter by call end timestamp (epoch ms).
2442
2453
  */
2443
- from_number?: Array<string>;
2454
+ end_timestamp?: FilterCriteria.NumberFilter | FilterCriteria.RangeFilter;
2444
2455
 
2445
2456
  /**
2446
- * Only retrieve calls that are in voicemail or not in voicemail.
2457
+ * Filter by from number.
2447
2458
  */
2448
- in_voicemail?: Array<boolean>;
2459
+ from_number?: FilterCriteria.FromNumber;
2449
2460
 
2450
2461
  /**
2451
- * Filter by metadata fields using dot notation (e.g., `metadata.customer_id`).
2452
- * Values are matched exactly as strings.
2462
+ * Filter by whether the call is in voicemail.
2453
2463
  */
2454
- metadata?: { [key: string]: Array<string> };
2464
+ in_voicemail?: FilterCriteria.InVoicemail;
2455
2465
 
2456
2466
  /**
2457
- * Only retrieve calls with specific range of start timestamp(s).
2467
+ * Filter by metadata fields.
2458
2468
  */
2459
- start_timestamp?: FilterCriteria.StartTimestamp;
2469
+ metadata?: Array<
2470
+ | FilterCriteria.StringFilter
2471
+ | FilterCriteria.NumberFilter
2472
+ | FilterCriteria.BooleanFilter
2473
+ | FilterCriteria.RangeFilter
2474
+ | FilterCriteria.EnumFilter
2475
+ | FilterCriteria.PresentFilter
2476
+ >;
2460
2477
 
2461
2478
  /**
2462
- * Only retrieve calls with specific to number(s).
2479
+ * Filter by call start timestamp (epoch ms).
2463
2480
  */
2464
- to_number?: Array<string>;
2481
+ start_timestamp?: FilterCriteria.NumberFilter | FilterCriteria.RangeFilter;
2465
2482
 
2466
2483
  /**
2467
- * Only retrieve calls with specific user sentiment(s).
2484
+ * Filter by to number.
2468
2485
  */
2469
- user_sentiment?: Array<'Negative' | 'Positive' | 'Neutral' | 'Unknown'>;
2486
+ to_number?: FilterCriteria.ToNumber;
2470
2487
 
2471
2488
  /**
2472
- * The version of the agent to use for the call.
2489
+ * Filter by tool call criteria. Tool call filters are connected by AND.
2473
2490
  */
2474
- version?: Array<number>;
2491
+ tool_calls?: Array<FilterCriteria.ToolCall>;
2492
+
2493
+ user_sentiment?: FilterCriteria.UserSentiment;
2475
2494
  }
2476
2495
 
2477
2496
  export namespace FilterCriteria {
2497
+ export interface Agent {
2498
+ /**
2499
+ * The agent ID to filter on.
2500
+ */
2501
+ agent_id: string;
2502
+
2503
+ /**
2504
+ * Specific versions to filter on. If not provided, all versions are included.
2505
+ */
2506
+ version?: Array<number>;
2507
+ }
2508
+
2509
+ /**
2510
+ * Filter by batch call ID.
2511
+ */
2512
+ export interface BatchCallID {
2513
+ /**
2514
+ * eq: equal, ne: not equal, sw: starts with, ew: ends with, co: contains
2515
+ */
2516
+ op: 'eq' | 'ne' | 'sw' | 'ew' | 'co';
2517
+
2518
+ type: 'string';
2519
+
2520
+ value: string;
2521
+ }
2522
+
2478
2523
  /**
2479
- * Only retrieve calls with specific range of duration(s).
2524
+ * Filter by call ID.
2480
2525
  */
2481
- export interface DurationMs {
2482
- lower_threshold?: number;
2526
+ export interface CallID {
2527
+ /**
2528
+ * eq: equal, ne: not equal, sw: starts with, ew: ends with, co: contains
2529
+ */
2530
+ op: 'eq' | 'ne' | 'sw' | 'ew' | 'co';
2531
+
2532
+ type: 'string';
2533
+
2534
+ value: string;
2535
+ }
2536
+
2537
+ export interface CallStatus {
2538
+ /**
2539
+ * in: value is one of the listed values
2540
+ */
2541
+ op: 'in';
2542
+
2543
+ type: 'enum';
2544
+
2545
+ value: Array<'not_connected' | 'ongoing' | 'ended' | 'error'>;
2546
+ }
2547
+
2548
+ /**
2549
+ * Filter by whether the call was successful.
2550
+ */
2551
+ export interface CallSuccessful {
2552
+ op: 'eq';
2553
+
2554
+ type: 'boolean';
2555
+
2556
+ value: boolean;
2557
+ }
2558
+
2559
+ export interface CallType {
2560
+ /**
2561
+ * in: value is one of the listed values
2562
+ */
2563
+ op: 'in';
2564
+
2565
+ type: 'enum';
2566
+
2567
+ value: Array<'web_call' | 'phone_call'>;
2568
+ }
2569
+
2570
+ export interface NumberFilter {
2571
+ /**
2572
+ * eq: equal, ne: not equal, gt: greater than, ge: greater than or equal, lt: less
2573
+ * than, le: less than or equal
2574
+ */
2575
+ op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le';
2576
+
2577
+ type: 'number';
2578
+
2579
+ value: number;
2580
+ }
2581
+
2582
+ export interface RangeFilter {
2583
+ /**
2584
+ * bt: between
2585
+ */
2586
+ op: 'bt';
2587
+
2588
+ type: 'range';
2589
+
2590
+ /**
2591
+ * [lower_bound, upper_bound]
2592
+ */
2593
+ value: Array<number>;
2594
+ }
2595
+
2596
+ export interface StringFilter {
2597
+ /**
2598
+ * eq: equal, ne: not equal, sw: starts with, ew: ends with, co: contains
2599
+ */
2600
+ op: 'eq' | 'ne' | 'sw' | 'ew' | 'co';
2601
+
2602
+ type: 'string';
2603
+
2604
+ value: string;
2605
+
2606
+ /**
2607
+ * The field name to filter on.
2608
+ */
2609
+ key?: string;
2610
+ }
2611
+
2612
+ export interface NumberFilter {
2613
+ /**
2614
+ * eq: equal, ne: not equal, gt: greater than, ge: greater than or equal, lt: less
2615
+ * than, le: less than or equal
2616
+ */
2617
+ op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le';
2618
+
2619
+ type: 'number';
2620
+
2621
+ value: number;
2622
+
2623
+ /**
2624
+ * The field name to filter on.
2625
+ */
2626
+ key?: string;
2627
+ }
2628
+
2629
+ export interface BooleanFilter {
2630
+ op: 'eq';
2631
+
2632
+ type: 'boolean';
2633
+
2634
+ value: boolean;
2635
+
2636
+ /**
2637
+ * The field name to filter on.
2638
+ */
2639
+ key?: string;
2640
+ }
2641
+
2642
+ export interface RangeFilter {
2643
+ /**
2644
+ * bt: between
2645
+ */
2646
+ op: 'bt';
2647
+
2648
+ type: 'range';
2649
+
2650
+ /**
2651
+ * [lower_bound, upper_bound]
2652
+ */
2653
+ value: Array<number>;
2654
+
2655
+ /**
2656
+ * The field name to filter on.
2657
+ */
2658
+ key?: string;
2659
+ }
2660
+
2661
+ export interface EnumFilter {
2662
+ /**
2663
+ * in: value is one of the listed values
2664
+ */
2665
+ op: 'in';
2666
+
2667
+ type: 'enum';
2668
+
2669
+ value: Array<string>;
2670
+
2671
+ /**
2672
+ * The field name to filter on.
2673
+ */
2674
+ key?: string;
2675
+ }
2676
+
2677
+ export interface PresentFilter {
2678
+ /**
2679
+ * pr: present (has value), np: not present
2680
+ */
2681
+ op: 'pr' | 'np';
2682
+
2683
+ type: 'present';
2684
+
2685
+ /**
2686
+ * The field name to filter on.
2687
+ */
2688
+ key?: string;
2689
+ }
2690
+
2691
+ export interface StringFilter {
2692
+ /**
2693
+ * eq: equal, ne: not equal, sw: starts with, ew: ends with, co: contains
2694
+ */
2695
+ op: 'eq' | 'ne' | 'sw' | 'ew' | 'co';
2696
+
2697
+ type: 'string';
2698
+
2699
+ value: string;
2700
+
2701
+ /**
2702
+ * The field name to filter on.
2703
+ */
2704
+ key?: string;
2705
+ }
2706
+
2707
+ export interface NumberFilter {
2708
+ /**
2709
+ * eq: equal, ne: not equal, gt: greater than, ge: greater than or equal, lt: less
2710
+ * than, le: less than or equal
2711
+ */
2712
+ op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le';
2713
+
2714
+ type: 'number';
2715
+
2716
+ value: number;
2717
+
2718
+ /**
2719
+ * The field name to filter on.
2720
+ */
2721
+ key?: string;
2722
+ }
2723
+
2724
+ export interface BooleanFilter {
2725
+ op: 'eq';
2726
+
2727
+ type: 'boolean';
2728
+
2729
+ value: boolean;
2730
+
2731
+ /**
2732
+ * The field name to filter on.
2733
+ */
2734
+ key?: string;
2735
+ }
2736
+
2737
+ export interface RangeFilter {
2738
+ /**
2739
+ * bt: between
2740
+ */
2741
+ op: 'bt';
2742
+
2743
+ type: 'range';
2744
+
2745
+ /**
2746
+ * [lower_bound, upper_bound]
2747
+ */
2748
+ value: Array<number>;
2749
+
2750
+ /**
2751
+ * The field name to filter on.
2752
+ */
2753
+ key?: string;
2754
+ }
2755
+
2756
+ export interface EnumFilter {
2757
+ /**
2758
+ * in: value is one of the listed values
2759
+ */
2760
+ op: 'in';
2761
+
2762
+ type: 'enum';
2763
+
2764
+ value: Array<string>;
2765
+
2766
+ /**
2767
+ * The field name to filter on.
2768
+ */
2769
+ key?: string;
2770
+ }
2771
+
2772
+ export interface PresentFilter {
2773
+ /**
2774
+ * pr: present (has value), np: not present
2775
+ */
2776
+ op: 'pr' | 'np';
2483
2777
 
2484
- upper_threshold?: number;
2778
+ type: 'present';
2779
+
2780
+ /**
2781
+ * The field name to filter on.
2782
+ */
2783
+ key?: string;
2784
+ }
2785
+
2786
+ export interface DataStorageSetting {
2787
+ /**
2788
+ * in: value is one of the listed values
2789
+ */
2790
+ op: 'in';
2791
+
2792
+ type: 'enum';
2793
+
2794
+ value: Array<'everything' | 'everything_except_pii' | 'basic_attributes_only'>;
2795
+ }
2796
+
2797
+ export interface Direction {
2798
+ /**
2799
+ * in: value is one of the listed values
2800
+ */
2801
+ op: 'in';
2802
+
2803
+ type: 'enum';
2804
+
2805
+ value: Array<'inbound' | 'outbound'>;
2806
+ }
2807
+
2808
+ export interface DisconnectionReason {
2809
+ /**
2810
+ * in: value is one of the listed values
2811
+ */
2812
+ op: 'in';
2813
+
2814
+ type: 'enum';
2815
+
2816
+ value: Array<
2817
+ | 'user_hangup'
2818
+ | 'agent_hangup'
2819
+ | 'call_transfer'
2820
+ | 'voicemail_reached'
2821
+ | 'ivr_reached'
2822
+ | 'inactivity'
2823
+ | 'max_duration_reached'
2824
+ | 'concurrency_limit_reached'
2825
+ | 'no_valid_payment'
2826
+ | 'scam_detected'
2827
+ | 'dial_busy'
2828
+ | 'dial_failed'
2829
+ | 'dial_no_answer'
2830
+ | 'invalid_destination'
2831
+ | 'telephony_provider_permission_denied'
2832
+ | 'telephony_provider_unavailable'
2833
+ | 'sip_routing_error'
2834
+ | 'marked_as_spam'
2835
+ | 'user_declined'
2836
+ | 'error_llm_websocket_open'
2837
+ | 'error_llm_websocket_lost_connection'
2838
+ | 'error_llm_websocket_runtime'
2839
+ | 'error_llm_websocket_corrupt_payload'
2840
+ | 'error_no_audio_received'
2841
+ | 'error_asr'
2842
+ | 'error_retell'
2843
+ | 'error_unknown'
2844
+ | 'error_user_not_joined'
2845
+ | 'registered_call_timeout'
2846
+ | 'transfer_bridged'
2847
+ | 'transfer_cancelled'
2848
+ | 'manual_stopped'
2849
+ >;
2485
2850
  }
2486
2851
 
2487
- export interface E2ELatencyP50 {
2488
- lower_threshold?: number;
2852
+ export interface NumberFilter {
2853
+ /**
2854
+ * eq: equal, ne: not equal, gt: greater than, ge: greater than or equal, lt: less
2855
+ * than, le: less than or equal
2856
+ */
2857
+ op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le';
2858
+
2859
+ type: 'number';
2489
2860
 
2490
- upper_threshold?: number;
2861
+ value: number;
2862
+ }
2863
+
2864
+ export interface RangeFilter {
2865
+ /**
2866
+ * bt: between
2867
+ */
2868
+ op: 'bt';
2869
+
2870
+ type: 'range';
2871
+
2872
+ /**
2873
+ * [lower_bound, upper_bound]
2874
+ */
2875
+ value: Array<number>;
2876
+ }
2877
+
2878
+ export interface DynamicVariable {
2879
+ /**
2880
+ * The dynamic variable name to filter on.
2881
+ */
2882
+ key: string;
2883
+
2884
+ /**
2885
+ * eq: equal, ne: not equal, sw: starts with, ew: ends with, co: contains
2886
+ */
2887
+ op: 'eq' | 'ne' | 'sw' | 'ew' | 'co';
2888
+
2889
+ type: 'string';
2890
+
2891
+ value: string;
2892
+ }
2893
+
2894
+ export interface NumberFilter {
2895
+ /**
2896
+ * eq: equal, ne: not equal, gt: greater than, ge: greater than or equal, lt: less
2897
+ * than, le: less than or equal
2898
+ */
2899
+ op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le';
2900
+
2901
+ type: 'number';
2902
+
2903
+ value: number;
2904
+ }
2905
+
2906
+ export interface RangeFilter {
2907
+ /**
2908
+ * bt: between
2909
+ */
2910
+ op: 'bt';
2911
+
2912
+ type: 'range';
2913
+
2914
+ /**
2915
+ * [lower_bound, upper_bound]
2916
+ */
2917
+ value: Array<number>;
2918
+ }
2919
+
2920
+ export interface NumberFilter {
2921
+ /**
2922
+ * eq: equal, ne: not equal, gt: greater than, ge: greater than or equal, lt: less
2923
+ * than, le: less than or equal
2924
+ */
2925
+ op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le';
2926
+
2927
+ type: 'number';
2928
+
2929
+ value: number;
2930
+ }
2931
+
2932
+ export interface RangeFilter {
2933
+ /**
2934
+ * bt: between
2935
+ */
2936
+ op: 'bt';
2937
+
2938
+ type: 'range';
2939
+
2940
+ /**
2941
+ * [lower_bound, upper_bound]
2942
+ */
2943
+ value: Array<number>;
2491
2944
  }
2492
2945
 
2493
2946
  /**
2494
- * Only retrieve calls with specific range of end timestamp(s).
2947
+ * Filter by from number.
2495
2948
  */
2496
- export interface EndTimestamp {
2497
- lower_threshold?: number;
2949
+ export interface FromNumber {
2950
+ /**
2951
+ * eq: equal, ne: not equal, sw: starts with, ew: ends with, co: contains
2952
+ */
2953
+ op: 'eq' | 'ne' | 'sw' | 'ew' | 'co';
2954
+
2955
+ type: 'string';
2498
2956
 
2499
- upper_threshold?: number;
2957
+ value: string;
2500
2958
  }
2501
2959
 
2502
2960
  /**
2503
- * Only retrieve calls with specific range of start timestamp(s).
2961
+ * Filter by whether the call is in voicemail.
2504
2962
  */
2505
- export interface StartTimestamp {
2506
- lower_threshold?: number;
2963
+ export interface InVoicemail {
2964
+ op: 'eq';
2965
+
2966
+ type: 'boolean';
2967
+
2968
+ value: boolean;
2969
+ }
2970
+
2971
+ export interface StringFilter {
2972
+ /**
2973
+ * eq: equal, ne: not equal, sw: starts with, ew: ends with, co: contains
2974
+ */
2975
+ op: 'eq' | 'ne' | 'sw' | 'ew' | 'co';
2976
+
2977
+ type: 'string';
2978
+
2979
+ value: string;
2980
+
2981
+ /**
2982
+ * The field name to filter on.
2983
+ */
2984
+ key?: string;
2985
+ }
2986
+
2987
+ export interface NumberFilter {
2988
+ /**
2989
+ * eq: equal, ne: not equal, gt: greater than, ge: greater than or equal, lt: less
2990
+ * than, le: less than or equal
2991
+ */
2992
+ op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le';
2993
+
2994
+ type: 'number';
2995
+
2996
+ value: number;
2997
+
2998
+ /**
2999
+ * The field name to filter on.
3000
+ */
3001
+ key?: string;
3002
+ }
3003
+
3004
+ export interface BooleanFilter {
3005
+ op: 'eq';
3006
+
3007
+ type: 'boolean';
3008
+
3009
+ value: boolean;
3010
+
3011
+ /**
3012
+ * The field name to filter on.
3013
+ */
3014
+ key?: string;
3015
+ }
3016
+
3017
+ export interface RangeFilter {
3018
+ /**
3019
+ * bt: between
3020
+ */
3021
+ op: 'bt';
3022
+
3023
+ type: 'range';
3024
+
3025
+ /**
3026
+ * [lower_bound, upper_bound]
3027
+ */
3028
+ value: Array<number>;
3029
+
3030
+ /**
3031
+ * The field name to filter on.
3032
+ */
3033
+ key?: string;
3034
+ }
3035
+
3036
+ export interface EnumFilter {
3037
+ /**
3038
+ * in: value is one of the listed values
3039
+ */
3040
+ op: 'in';
3041
+
3042
+ type: 'enum';
3043
+
3044
+ value: Array<string>;
3045
+
3046
+ /**
3047
+ * The field name to filter on.
3048
+ */
3049
+ key?: string;
3050
+ }
3051
+
3052
+ export interface PresentFilter {
3053
+ /**
3054
+ * pr: present (has value), np: not present
3055
+ */
3056
+ op: 'pr' | 'np';
3057
+
3058
+ type: 'present';
3059
+
3060
+ /**
3061
+ * The field name to filter on.
3062
+ */
3063
+ key?: string;
3064
+ }
3065
+
3066
+ export interface NumberFilter {
3067
+ /**
3068
+ * eq: equal, ne: not equal, gt: greater than, ge: greater than or equal, lt: less
3069
+ * than, le: less than or equal
3070
+ */
3071
+ op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le';
3072
+
3073
+ type: 'number';
3074
+
3075
+ value: number;
3076
+ }
3077
+
3078
+ export interface RangeFilter {
3079
+ /**
3080
+ * bt: between
3081
+ */
3082
+ op: 'bt';
3083
+
3084
+ type: 'range';
3085
+
3086
+ /**
3087
+ * [lower_bound, upper_bound]
3088
+ */
3089
+ value: Array<number>;
3090
+ }
3091
+
3092
+ /**
3093
+ * Filter by to number.
3094
+ */
3095
+ export interface ToNumber {
3096
+ /**
3097
+ * eq: equal, ne: not equal, sw: starts with, ew: ends with, co: contains
3098
+ */
3099
+ op: 'eq' | 'ne' | 'sw' | 'ew' | 'co';
3100
+
3101
+ type: 'string';
3102
+
3103
+ value: string;
3104
+ }
3105
+
3106
+ export interface ToolCall {
3107
+ /**
3108
+ * The tool call name to filter on.
3109
+ */
3110
+ name: string;
3111
+
3112
+ /**
3113
+ * Filter by tool call latency in milliseconds.
3114
+ */
3115
+ latency_ms?: ToolCall.NumberFilter | ToolCall.RangeFilter;
3116
+
3117
+ /**
3118
+ * Filter by tool call success status.
3119
+ */
3120
+ success?: ToolCall.Success;
3121
+ }
3122
+
3123
+ export namespace ToolCall {
3124
+ export interface NumberFilter {
3125
+ /**
3126
+ * eq: equal, ne: not equal, gt: greater than, ge: greater than or equal, lt: less
3127
+ * than, le: less than or equal
3128
+ */
3129
+ op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le';
3130
+
3131
+ type: 'number';
3132
+
3133
+ value: number;
3134
+ }
3135
+
3136
+ export interface RangeFilter {
3137
+ /**
3138
+ * bt: between
3139
+ */
3140
+ op: 'bt';
3141
+
3142
+ type: 'range';
3143
+
3144
+ /**
3145
+ * [lower_bound, upper_bound]
3146
+ */
3147
+ value: Array<number>;
3148
+ }
3149
+
3150
+ /**
3151
+ * Filter by tool call success status.
3152
+ */
3153
+ export interface Success {
3154
+ op: 'eq';
3155
+
3156
+ type: 'boolean';
3157
+
3158
+ value: boolean;
3159
+ }
3160
+ }
3161
+
3162
+ export interface UserSentiment {
3163
+ /**
3164
+ * in: value is one of the listed values
3165
+ */
3166
+ op: 'in';
3167
+
3168
+ type: 'enum';
2507
3169
 
2508
- upper_threshold?: number;
3170
+ value: Array<'Negative' | 'Positive' | 'Neutral' | 'Unknown'>;
2509
3171
  }
2510
3172
  }
2511
3173
  }