exa-js 1.7.2 → 1.7.4

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/dist/index.mjs CHANGED
@@ -242,10 +242,6 @@ var CreateEnrichmentParametersFormat = /* @__PURE__ */ ((CreateEnrichmentParamet
242
242
  CreateEnrichmentParametersFormat2["phone"] = "phone";
243
243
  return CreateEnrichmentParametersFormat2;
244
244
  })(CreateEnrichmentParametersFormat || {});
245
- var CreateWebsetSearchParametersBehaviour = /* @__PURE__ */ ((CreateWebsetSearchParametersBehaviour2) => {
246
- CreateWebsetSearchParametersBehaviour2["override"] = "override";
247
- return CreateWebsetSearchParametersBehaviour2;
248
- })(CreateWebsetSearchParametersBehaviour || {});
249
245
  var EventType = /* @__PURE__ */ ((EventType2) => {
250
246
  EventType2["webset_created"] = "webset.created";
251
247
  EventType2["webset_deleted"] = "webset.deleted";
@@ -261,6 +257,11 @@ var EventType = /* @__PURE__ */ ((EventType2) => {
261
257
  EventType2["webset_item_enriched"] = "webset.item.enriched";
262
258
  return EventType2;
263
259
  })(EventType || {});
260
+ var UpdateStreamStatus = /* @__PURE__ */ ((UpdateStreamStatus2) => {
261
+ UpdateStreamStatus2["open"] = "open";
262
+ UpdateStreamStatus2["closed"] = "closed";
263
+ return UpdateStreamStatus2;
264
+ })(UpdateStreamStatus || {});
264
265
  var WebhookStatus = /* @__PURE__ */ ((WebhookStatus2) => {
265
266
  WebhookStatus2["active"] = "active";
266
267
  WebhookStatus2["inactive"] = "inactive";
@@ -289,6 +290,7 @@ var WebsetEnrichmentFormat = /* @__PURE__ */ ((WebsetEnrichmentFormat2) => {
289
290
  })(WebsetEnrichmentFormat || {});
290
291
  var WebsetItemSource = /* @__PURE__ */ ((WebsetItemSource2) => {
291
292
  WebsetItemSource2["search"] = "search";
293
+ WebsetItemSource2["import"] = "import";
292
294
  return WebsetItemSource2;
293
295
  })(WebsetItemSource || {});
294
296
  var WebsetItemEvaluationSatisfied = /* @__PURE__ */ ((WebsetItemEvaluationSatisfied2) => {
@@ -297,11 +299,6 @@ var WebsetItemEvaluationSatisfied = /* @__PURE__ */ ((WebsetItemEvaluationSatisf
297
299
  WebsetItemEvaluationSatisfied2["unclear"] = "unclear";
298
300
  return WebsetItemEvaluationSatisfied2;
299
301
  })(WebsetItemEvaluationSatisfied || {});
300
- var WebsetSearchCanceledReason = /* @__PURE__ */ ((WebsetSearchCanceledReason2) => {
301
- WebsetSearchCanceledReason2["webset_deleted"] = "webset_deleted";
302
- WebsetSearchCanceledReason2["webset_canceled"] = "webset_canceled";
303
- return WebsetSearchCanceledReason2;
304
- })(WebsetSearchCanceledReason || {});
305
302
  var WebsetSearchStatus = /* @__PURE__ */ ((WebsetSearchStatus2) => {
306
303
  WebsetSearchStatus2["created"] = "created";
307
304
  WebsetSearchStatus2["running"] = "running";
@@ -309,6 +306,16 @@ var WebsetSearchStatus = /* @__PURE__ */ ((WebsetSearchStatus2) => {
309
306
  WebsetSearchStatus2["canceled"] = "canceled";
310
307
  return WebsetSearchStatus2;
311
308
  })(WebsetSearchStatus || {});
309
+ var WebsetSearchBehavior = /* @__PURE__ */ ((WebsetSearchBehavior2) => {
310
+ WebsetSearchBehavior2["override"] = "override";
311
+ WebsetSearchBehavior2["append"] = "append";
312
+ return WebsetSearchBehavior2;
313
+ })(WebsetSearchBehavior || {});
314
+ var WebsetSearchCanceledReason = /* @__PURE__ */ ((WebsetSearchCanceledReason2) => {
315
+ WebsetSearchCanceledReason2["webset_deleted"] = "webset_deleted";
316
+ WebsetSearchCanceledReason2["webset_canceled"] = "webset_canceled";
317
+ return WebsetSearchCanceledReason2;
318
+ })(WebsetSearchCanceledReason || {});
312
319
 
313
320
  // src/websets/searches.ts
314
321
  var WebsetSearchesClient = class extends WebsetsBaseClient {
@@ -351,6 +358,94 @@ var WebsetSearchesClient = class extends WebsetsBaseClient {
351
358
  }
352
359
  };
353
360
 
361
+ // src/websets/streams.ts
362
+ var WebsetStreamRunsClient = class extends WebsetsBaseClient {
363
+ /**
364
+ * List all runs for a Stream
365
+ * @param streamId The ID of the Stream
366
+ * @param options Pagination options
367
+ * @returns The list of Stream runs
368
+ */
369
+ async list(streamId, options) {
370
+ const params = this.buildPaginationParams(options);
371
+ return this.request(
372
+ `/v0/streams/${streamId}/runs`,
373
+ "GET",
374
+ void 0,
375
+ params
376
+ );
377
+ }
378
+ /**
379
+ * Get a specific Stream run
380
+ * @param streamId The ID of the Stream
381
+ * @param runId The ID of the Stream run
382
+ * @returns The Stream run
383
+ */
384
+ async get(streamId, runId) {
385
+ return this.request(
386
+ `/v0/streams/${streamId}/runs/${runId}`,
387
+ "GET"
388
+ );
389
+ }
390
+ };
391
+ var WebsetStreamsClient = class extends WebsetsBaseClient {
392
+ constructor(client) {
393
+ super(client);
394
+ this.runs = new WebsetStreamRunsClient(client);
395
+ }
396
+ /**
397
+ * Create a Stream
398
+ * @param params The stream parameters
399
+ * @returns The created Stream
400
+ */
401
+ async create(params) {
402
+ return this.request("/v0/streams", "POST", params);
403
+ }
404
+ /**
405
+ * Get a Stream by ID
406
+ * @param id The ID of the Stream
407
+ * @returns The Stream
408
+ */
409
+ async get(id) {
410
+ return this.request(`/v0/streams/${id}`, "GET");
411
+ }
412
+ /**
413
+ * List all Streams
414
+ * @param options Pagination and filtering options
415
+ * @returns The list of Streams
416
+ */
417
+ async list(options) {
418
+ const params = {
419
+ cursor: options?.cursor,
420
+ limit: options?.limit,
421
+ websetId: options?.websetId
422
+ };
423
+ return this.request(
424
+ "/v0/streams",
425
+ "GET",
426
+ void 0,
427
+ params
428
+ );
429
+ }
430
+ /**
431
+ * Update a Stream
432
+ * @param id The ID of the Stream
433
+ * @param params The stream update parameters (status, metadata)
434
+ * @returns The updated Stream
435
+ */
436
+ async update(id, params) {
437
+ return this.request(`/v0/streams/${id}`, "PATCH", params);
438
+ }
439
+ /**
440
+ * Delete a Stream
441
+ * @param id The ID of the Stream
442
+ * @returns The deleted Stream
443
+ */
444
+ async delete(id) {
445
+ return this.request(`/v0/streams/${id}`, "DELETE");
446
+ }
447
+ };
448
+
354
449
  // src/websets/webhooks.ts
355
450
  var WebsetWebhooksClient = class extends WebsetsBaseClient {
356
451
  /**
@@ -499,6 +594,7 @@ var WebsetsClient = class extends WebsetsBaseClient {
499
594
  this.items = new WebsetItemsClient(client);
500
595
  this.searches = new WebsetSearchesClient(client);
501
596
  this.enrichments = new WebsetEnrichmentsClient(client);
597
+ this.streams = new WebsetStreamsClient(client);
502
598
  this.webhooks = new WebsetWebhooksClient(client);
503
599
  }
504
600
  /**
@@ -654,7 +750,12 @@ var ResearchBaseClient = class {
654
750
  * @returns The parsed JSON response
655
751
  */
656
752
  async request(endpoint, method = "POST", data, params) {
657
- return this.client.request(`/research${endpoint}`, method, data, params);
753
+ return this.client.request(
754
+ `/v0/research${endpoint}`,
755
+ method,
756
+ data,
757
+ params
758
+ );
658
759
  }
659
760
  };
660
761
 
@@ -664,7 +765,7 @@ var ResearchClient = class extends ResearchBaseClient {
664
765
  super(client);
665
766
  }
666
767
  /**
667
- * Create and run a research task (blocking call).
768
+ * Create a research task.
668
769
  *
669
770
  * Both parameters are required and have fixed shapes:
670
771
  * 1. `input`
@@ -687,17 +788,36 @@ var ResearchClient = class extends ResearchBaseClient {
687
788
  }
688
789
  /**
689
790
  * Retrieve a research task by ID.
690
- *
691
- * Not yet implemented server-side. Calling this will throw until the API is
692
- * available.
693
791
  */
694
- async getTask() {
695
- throw new Error("getTask is not implemented yet.");
792
+ async getTask(id) {
793
+ return this.request(`/tasks/${id}`, "GET");
794
+ }
795
+ /**
796
+ * Poll a research task until completion or failure.
797
+ * Polls every 1 second with a maximum timeout of 10 minutes.
798
+ */
799
+ async pollTask(id) {
800
+ const pollingInterval = 1e3;
801
+ const maxPollingTime = 10 * 60 * 1e3;
802
+ const startTime = Date.now();
803
+ while (true) {
804
+ const task = await this.request(`/tasks/${id}`, "GET");
805
+ if (task.status === "completed" || task.status === "failed") {
806
+ return task;
807
+ }
808
+ if (Date.now() - startTime > maxPollingTime) {
809
+ throw new Error(
810
+ `Polling timeout: Task ${id} did not complete within 10 minutes`
811
+ );
812
+ }
813
+ await new Promise((resolve) => setTimeout(resolve, pollingInterval));
814
+ }
696
815
  }
697
816
  };
698
817
 
699
818
  // src/research/types.ts
700
819
  var ResearchStatus = /* @__PURE__ */ ((ResearchStatus2) => {
820
+ ResearchStatus2["in_progress"] = "in_progress";
701
821
  ResearchStatus2["completed"] = "completed";
702
822
  ResearchStatus2["failed"] = "failed";
703
823
  return ResearchStatus2;
@@ -1115,13 +1235,13 @@ var Exa2 = class {
1115
1235
  var index_default = Exa2;
1116
1236
  export {
1117
1237
  CreateEnrichmentParametersFormat,
1118
- CreateWebsetSearchParametersBehaviour,
1119
1238
  EventType,
1120
1239
  Exa2 as Exa,
1121
1240
  ExaError,
1122
1241
  HttpStatusCode,
1123
1242
  ResearchClient,
1124
1243
  ResearchStatus,
1244
+ UpdateStreamStatus,
1125
1245
  WebhookStatus,
1126
1246
  WebsetEnrichmentFormat,
1127
1247
  WebsetEnrichmentStatus,
@@ -1129,10 +1249,12 @@ export {
1129
1249
  WebsetItemEvaluationSatisfied,
1130
1250
  WebsetItemSource,
1131
1251
  WebsetItemsClient,
1252
+ WebsetSearchBehavior,
1132
1253
  WebsetSearchCanceledReason,
1133
1254
  WebsetSearchStatus,
1134
1255
  WebsetSearchesClient,
1135
1256
  WebsetStatus,
1257
+ WebsetStreamsClient,
1136
1258
  WebsetWebhooksClient,
1137
1259
  WebsetsClient,
1138
1260
  index_default as default