exa-js 1.8.27 → 1.9.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.
- package/dist/index.d.mts +1776 -454
- package/dist/index.d.ts +1776 -454
- package/dist/index.js +90 -120
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +87 -113
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -32,10 +32,6 @@ var index_exports = {};
|
|
|
32
32
|
__export(index_exports, {
|
|
33
33
|
CreateEnrichmentParametersFormat: () => CreateEnrichmentParametersFormat,
|
|
34
34
|
CreateImportParametersFormat: () => CreateImportParametersFormat,
|
|
35
|
-
CreateWebsetParametersImportSource: () => CreateWebsetParametersImportSource,
|
|
36
|
-
CreateWebsetParametersSearchExcludeSource: () => CreateWebsetParametersSearchExcludeSource,
|
|
37
|
-
CreateWebsetSearchParametersExcludeSource: () => CreateWebsetSearchParametersExcludeSource,
|
|
38
|
-
CreateWebsetSearchParametersScopeSource: () => CreateWebsetSearchParametersScopeSource,
|
|
39
35
|
EventType: () => EventType,
|
|
40
36
|
EventsClient: () => EventsClient,
|
|
41
37
|
Exa: () => Exa2,
|
|
@@ -51,20 +47,20 @@ __export(index_exports, {
|
|
|
51
47
|
MonitorRunStatus: () => MonitorRunStatus,
|
|
52
48
|
MonitorRunType: () => MonitorRunType,
|
|
53
49
|
MonitorStatus: () => MonitorStatus,
|
|
54
|
-
PreviewWebsetResponseEnrichmentsFormat: () => PreviewWebsetResponseEnrichmentsFormat,
|
|
55
|
-
ResearchClient: () => ResearchClient,
|
|
56
|
-
ScopeSourceType: () => ScopeSourceType,
|
|
57
50
|
UpdateMonitorStatus: () => UpdateMonitorStatus,
|
|
58
51
|
WebhookStatus: () => WebhookStatus,
|
|
59
52
|
WebsetEnrichmentFormat: () => WebsetEnrichmentFormat,
|
|
60
53
|
WebsetEnrichmentStatus: () => WebsetEnrichmentStatus,
|
|
61
54
|
WebsetEnrichmentsClient: () => WebsetEnrichmentsClient,
|
|
55
|
+
WebsetImportSource: () => WebsetImportSource,
|
|
62
56
|
WebsetItemEvaluationSatisfied: () => WebsetItemEvaluationSatisfied,
|
|
63
57
|
WebsetItemSource: () => WebsetItemSource,
|
|
64
58
|
WebsetItemsClient: () => WebsetItemsClient,
|
|
65
59
|
WebsetMonitorsClient: () => WebsetMonitorsClient,
|
|
66
60
|
WebsetSearchBehavior: () => WebsetSearchBehavior,
|
|
67
61
|
WebsetSearchCanceledReason: () => WebsetSearchCanceledReason,
|
|
62
|
+
WebsetSearchExcludeSource: () => WebsetSearchExcludeSource,
|
|
63
|
+
WebsetSearchScopeSource: () => WebsetSearchScopeSource,
|
|
68
64
|
WebsetSearchStatus: () => WebsetSearchStatus,
|
|
69
65
|
WebsetSearchesClient: () => WebsetSearchesClient,
|
|
70
66
|
WebsetStatus: () => WebsetStatus,
|
|
@@ -184,6 +180,20 @@ var WebsetEnrichmentsClient = class extends WebsetsBaseClient {
|
|
|
184
180
|
"DELETE"
|
|
185
181
|
);
|
|
186
182
|
}
|
|
183
|
+
/**
|
|
184
|
+
* Update an Enrichment
|
|
185
|
+
* @param websetId The ID of the Webset
|
|
186
|
+
* @param id The ID of the Enrichment
|
|
187
|
+
* @param params The enrichment update parameters
|
|
188
|
+
* @returns Promise that resolves when the update is complete
|
|
189
|
+
*/
|
|
190
|
+
async update(websetId, id, params) {
|
|
191
|
+
return this.request(
|
|
192
|
+
`/v0/websets/${websetId}/enrichments/${id}`,
|
|
193
|
+
"PATCH",
|
|
194
|
+
params
|
|
195
|
+
);
|
|
196
|
+
}
|
|
187
197
|
/**
|
|
188
198
|
* Cancel a running Enrichment
|
|
189
199
|
* @param websetId The ID of the Webset
|
|
@@ -243,37 +253,18 @@ var CreateEnrichmentParametersFormat = /* @__PURE__ */ ((CreateEnrichmentParamet
|
|
|
243
253
|
CreateEnrichmentParametersFormat2["options"] = "options";
|
|
244
254
|
CreateEnrichmentParametersFormat2["email"] = "email";
|
|
245
255
|
CreateEnrichmentParametersFormat2["phone"] = "phone";
|
|
256
|
+
CreateEnrichmentParametersFormat2["url"] = "url";
|
|
246
257
|
return CreateEnrichmentParametersFormat2;
|
|
247
258
|
})(CreateEnrichmentParametersFormat || {});
|
|
248
259
|
var CreateImportParametersFormat = /* @__PURE__ */ ((CreateImportParametersFormat2) => {
|
|
249
260
|
CreateImportParametersFormat2["csv"] = "csv";
|
|
250
261
|
return CreateImportParametersFormat2;
|
|
251
262
|
})(CreateImportParametersFormat || {});
|
|
252
|
-
var
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
return
|
|
256
|
-
})(
|
|
257
|
-
var CreateWebsetParametersSearchExcludeSource = /* @__PURE__ */ ((CreateWebsetParametersSearchExcludeSource2) => {
|
|
258
|
-
CreateWebsetParametersSearchExcludeSource2["import"] = "import";
|
|
259
|
-
CreateWebsetParametersSearchExcludeSource2["webset"] = "webset";
|
|
260
|
-
return CreateWebsetParametersSearchExcludeSource2;
|
|
261
|
-
})(CreateWebsetParametersSearchExcludeSource || {});
|
|
262
|
-
var ScopeSourceType = /* @__PURE__ */ ((ScopeSourceType2) => {
|
|
263
|
-
ScopeSourceType2["import"] = "import";
|
|
264
|
-
ScopeSourceType2["webset"] = "webset";
|
|
265
|
-
return ScopeSourceType2;
|
|
266
|
-
})(ScopeSourceType || {});
|
|
267
|
-
var CreateWebsetSearchParametersExcludeSource = /* @__PURE__ */ ((CreateWebsetSearchParametersExcludeSource2) => {
|
|
268
|
-
CreateWebsetSearchParametersExcludeSource2["import"] = "import";
|
|
269
|
-
CreateWebsetSearchParametersExcludeSource2["webset"] = "webset";
|
|
270
|
-
return CreateWebsetSearchParametersExcludeSource2;
|
|
271
|
-
})(CreateWebsetSearchParametersExcludeSource || {});
|
|
272
|
-
var CreateWebsetSearchParametersScopeSource = /* @__PURE__ */ ((CreateWebsetSearchParametersScopeSource2) => {
|
|
273
|
-
CreateWebsetSearchParametersScopeSource2["import"] = "import";
|
|
274
|
-
CreateWebsetSearchParametersScopeSource2["webset"] = "webset";
|
|
275
|
-
return CreateWebsetSearchParametersScopeSource2;
|
|
276
|
-
})(CreateWebsetSearchParametersScopeSource || {});
|
|
263
|
+
var WebsetImportSource = /* @__PURE__ */ ((WebsetImportSource2) => {
|
|
264
|
+
WebsetImportSource2["import"] = "import";
|
|
265
|
+
WebsetImportSource2["webset"] = "webset";
|
|
266
|
+
return WebsetImportSource2;
|
|
267
|
+
})(WebsetImportSource || {});
|
|
277
268
|
var EventType = /* @__PURE__ */ ((EventType2) => {
|
|
278
269
|
EventType2["webset_created"] = "webset.created";
|
|
279
270
|
EventType2["webset_deleted"] = "webset.deleted";
|
|
@@ -285,9 +276,13 @@ var EventType = /* @__PURE__ */ ((EventType2) => {
|
|
|
285
276
|
EventType2["webset_search_updated"] = "webset.search.updated";
|
|
286
277
|
EventType2["import_created"] = "import.created";
|
|
287
278
|
EventType2["import_completed"] = "import.completed";
|
|
288
|
-
EventType2["import_processing"] = "import.processing";
|
|
289
279
|
EventType2["webset_item_created"] = "webset.item.created";
|
|
290
280
|
EventType2["webset_item_enriched"] = "webset.item.enriched";
|
|
281
|
+
EventType2["monitor_created"] = "monitor.created";
|
|
282
|
+
EventType2["monitor_updated"] = "monitor.updated";
|
|
283
|
+
EventType2["monitor_deleted"] = "monitor.deleted";
|
|
284
|
+
EventType2["monitor_run_created"] = "monitor.run.created";
|
|
285
|
+
EventType2["monitor_run_completed"] = "monitor.run.completed";
|
|
291
286
|
EventType2["webset_export_created"] = "webset.export.created";
|
|
292
287
|
EventType2["webset_export_completed"] = "webset.export.completed";
|
|
293
288
|
return EventType2;
|
|
@@ -340,15 +335,6 @@ var MonitorRunType = /* @__PURE__ */ ((MonitorRunType2) => {
|
|
|
340
335
|
MonitorRunType2["refresh"] = "refresh";
|
|
341
336
|
return MonitorRunType2;
|
|
342
337
|
})(MonitorRunType || {});
|
|
343
|
-
var PreviewWebsetResponseEnrichmentsFormat = /* @__PURE__ */ ((PreviewWebsetResponseEnrichmentsFormat2) => {
|
|
344
|
-
PreviewWebsetResponseEnrichmentsFormat2["text"] = "text";
|
|
345
|
-
PreviewWebsetResponseEnrichmentsFormat2["date"] = "date";
|
|
346
|
-
PreviewWebsetResponseEnrichmentsFormat2["number"] = "number";
|
|
347
|
-
PreviewWebsetResponseEnrichmentsFormat2["options"] = "options";
|
|
348
|
-
PreviewWebsetResponseEnrichmentsFormat2["email"] = "email";
|
|
349
|
-
PreviewWebsetResponseEnrichmentsFormat2["phone"] = "phone";
|
|
350
|
-
return PreviewWebsetResponseEnrichmentsFormat2;
|
|
351
|
-
})(PreviewWebsetResponseEnrichmentsFormat || {});
|
|
352
338
|
var UpdateMonitorStatus = /* @__PURE__ */ ((UpdateMonitorStatus2) => {
|
|
353
339
|
UpdateMonitorStatus2["enabled"] = "enabled";
|
|
354
340
|
UpdateMonitorStatus2["disabled"] = "disabled";
|
|
@@ -379,6 +365,7 @@ var WebsetEnrichmentFormat = /* @__PURE__ */ ((WebsetEnrichmentFormat2) => {
|
|
|
379
365
|
WebsetEnrichmentFormat2["options"] = "options";
|
|
380
366
|
WebsetEnrichmentFormat2["email"] = "email";
|
|
381
367
|
WebsetEnrichmentFormat2["phone"] = "phone";
|
|
368
|
+
WebsetEnrichmentFormat2["url"] = "url";
|
|
382
369
|
return WebsetEnrichmentFormat2;
|
|
383
370
|
})(WebsetEnrichmentFormat || {});
|
|
384
371
|
var WebsetItemSource = /* @__PURE__ */ ((WebsetItemSource2) => {
|
|
@@ -392,6 +379,16 @@ var WebsetItemEvaluationSatisfied = /* @__PURE__ */ ((WebsetItemEvaluationSatisf
|
|
|
392
379
|
WebsetItemEvaluationSatisfied2["unclear"] = "unclear";
|
|
393
380
|
return WebsetItemEvaluationSatisfied2;
|
|
394
381
|
})(WebsetItemEvaluationSatisfied || {});
|
|
382
|
+
var WebsetSearchExcludeSource = /* @__PURE__ */ ((WebsetSearchExcludeSource2) => {
|
|
383
|
+
WebsetSearchExcludeSource2["import"] = "import";
|
|
384
|
+
WebsetSearchExcludeSource2["webset"] = "webset";
|
|
385
|
+
return WebsetSearchExcludeSource2;
|
|
386
|
+
})(WebsetSearchExcludeSource || {});
|
|
387
|
+
var WebsetSearchScopeSource = /* @__PURE__ */ ((WebsetSearchScopeSource2) => {
|
|
388
|
+
WebsetSearchScopeSource2["import"] = "import";
|
|
389
|
+
WebsetSearchScopeSource2["webset"] = "webset";
|
|
390
|
+
return WebsetSearchScopeSource2;
|
|
391
|
+
})(WebsetSearchScopeSource || {});
|
|
395
392
|
var WebsetSearchStatus = /* @__PURE__ */ ((WebsetSearchStatus2) => {
|
|
396
393
|
WebsetSearchStatus2["created"] = "created";
|
|
397
394
|
WebsetSearchStatus2["pending"] = "pending";
|
|
@@ -1093,50 +1090,25 @@ function zodToJsonSchema(schema) {
|
|
|
1093
1090
|
|
|
1094
1091
|
// src/research/base.ts
|
|
1095
1092
|
var ResearchBaseClient = class {
|
|
1096
|
-
/**
|
|
1097
|
-
* Initialize a new Research base client
|
|
1098
|
-
* @param client The Exa client instance
|
|
1099
|
-
*/
|
|
1100
1093
|
constructor(client) {
|
|
1101
1094
|
this.client = client;
|
|
1102
1095
|
}
|
|
1103
|
-
/**
|
|
1104
|
-
* Make a request to the Research API (prefixes all paths with `/research`).
|
|
1105
|
-
* @param endpoint The endpoint path, beginning with a slash (e.g. "/tasks").
|
|
1106
|
-
* @param method The HTTP method. Defaults to "POST".
|
|
1107
|
-
* @param data Optional request body
|
|
1108
|
-
* @param params Optional query parameters
|
|
1109
|
-
* @returns The parsed JSON response
|
|
1110
|
-
*/
|
|
1111
1096
|
async request(endpoint, method = "POST", data, params) {
|
|
1112
1097
|
return this.client.request(
|
|
1113
|
-
`/research/
|
|
1098
|
+
`/research/v1${endpoint}`,
|
|
1114
1099
|
method,
|
|
1115
1100
|
data,
|
|
1116
1101
|
params
|
|
1117
1102
|
);
|
|
1118
1103
|
}
|
|
1119
|
-
/**
|
|
1120
|
-
* Make a request to the Research API (prefixes all paths with `/research`).
|
|
1121
|
-
* @param endpoint The endpoint path, beginning with a slash (e.g. "/tasks").
|
|
1122
|
-
* @param method The HTTP method. Defaults to "POST".
|
|
1123
|
-
* @param data Optional request body
|
|
1124
|
-
* @param params Optional query parameters
|
|
1125
|
-
* @returns The parsed JSON response
|
|
1126
|
-
*/
|
|
1127
1104
|
async rawRequest(endpoint, method = "POST", data, params) {
|
|
1128
1105
|
return this.client.rawRequest(
|
|
1129
|
-
`/research/
|
|
1106
|
+
`/research/v1${endpoint}`,
|
|
1130
1107
|
method,
|
|
1131
1108
|
data,
|
|
1132
1109
|
params
|
|
1133
1110
|
);
|
|
1134
1111
|
}
|
|
1135
|
-
/**
|
|
1136
|
-
* Helper to build pagination parameters.
|
|
1137
|
-
* @param pagination The pagination parameters
|
|
1138
|
-
* @returns QueryParams object with pagination parameters
|
|
1139
|
-
*/
|
|
1140
1112
|
buildPaginationParams(pagination) {
|
|
1141
1113
|
const params = {};
|
|
1142
1114
|
if (!pagination) return params;
|
|
@@ -1151,26 +1123,34 @@ var ResearchClient = class extends ResearchBaseClient {
|
|
|
1151
1123
|
constructor(client) {
|
|
1152
1124
|
super(client);
|
|
1153
1125
|
}
|
|
1154
|
-
async
|
|
1155
|
-
const { instructions, model,
|
|
1156
|
-
let schema =
|
|
1126
|
+
async create(params) {
|
|
1127
|
+
const { instructions, model, outputSchema } = params;
|
|
1128
|
+
let schema = outputSchema;
|
|
1157
1129
|
if (schema && isZodSchema(schema)) {
|
|
1158
1130
|
schema = zodToJsonSchema(schema);
|
|
1159
1131
|
}
|
|
1160
1132
|
const payload = {
|
|
1161
1133
|
instructions,
|
|
1162
|
-
model: model ?? "exa-research"
|
|
1163
|
-
output: output ? {
|
|
1164
|
-
schema,
|
|
1165
|
-
inferSchema: output.inferSchema ?? true
|
|
1166
|
-
} : { inferSchema: true }
|
|
1134
|
+
model: model ?? "exa-research"
|
|
1167
1135
|
};
|
|
1168
|
-
|
|
1136
|
+
if (schema) {
|
|
1137
|
+
payload.outputSchema = schema;
|
|
1138
|
+
}
|
|
1139
|
+
return this.request("", "POST", payload);
|
|
1169
1140
|
}
|
|
1170
|
-
|
|
1141
|
+
get(researchId, options) {
|
|
1171
1142
|
if (options?.stream) {
|
|
1172
1143
|
const promise = async () => {
|
|
1173
|
-
const
|
|
1144
|
+
const params = { stream: "true" };
|
|
1145
|
+
if (options.events !== void 0) {
|
|
1146
|
+
params.events = options.events.toString();
|
|
1147
|
+
}
|
|
1148
|
+
const resp = await this.rawRequest(
|
|
1149
|
+
`/${researchId}`,
|
|
1150
|
+
"GET",
|
|
1151
|
+
void 0,
|
|
1152
|
+
params
|
|
1153
|
+
);
|
|
1174
1154
|
if (!resp.body) {
|
|
1175
1155
|
throw new Error("No response body for SSE stream");
|
|
1176
1156
|
}
|
|
@@ -1214,59 +1194,53 @@ var ResearchClient = class extends ResearchBaseClient {
|
|
|
1214
1194
|
};
|
|
1215
1195
|
return promise();
|
|
1216
1196
|
} else {
|
|
1217
|
-
|
|
1197
|
+
const params = { stream: "false" };
|
|
1198
|
+
if (options?.events !== void 0) {
|
|
1199
|
+
params.events = options.events.toString();
|
|
1200
|
+
}
|
|
1201
|
+
return this.request(
|
|
1202
|
+
`/${researchId}`,
|
|
1203
|
+
"GET",
|
|
1204
|
+
void 0,
|
|
1205
|
+
params
|
|
1206
|
+
);
|
|
1218
1207
|
}
|
|
1219
1208
|
}
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
const pollingInterval = 1e3;
|
|
1229
|
-
const maxPollingTime = 10 * 60 * 1e3;
|
|
1230
|
-
const maxConsecutiveFailures = 10;
|
|
1209
|
+
async list(options) {
|
|
1210
|
+
const params = this.buildPaginationParams(options);
|
|
1211
|
+
return this.request("", "GET", void 0, params);
|
|
1212
|
+
}
|
|
1213
|
+
async pollUntilFinished(researchId, options) {
|
|
1214
|
+
const pollInterval = options?.pollInterval ?? 1e3;
|
|
1215
|
+
const timeoutMs = options?.timeoutMs ?? 10 * 60 * 1e3;
|
|
1216
|
+
const maxConsecutiveFailures = 5;
|
|
1231
1217
|
const startTime = Date.now();
|
|
1232
1218
|
let consecutiveFailures = 0;
|
|
1233
1219
|
while (true) {
|
|
1234
1220
|
try {
|
|
1235
|
-
const
|
|
1221
|
+
const research = await this.get(researchId, {
|
|
1222
|
+
events: options?.events
|
|
1223
|
+
});
|
|
1236
1224
|
consecutiveFailures = 0;
|
|
1237
|
-
if (
|
|
1238
|
-
return
|
|
1225
|
+
if (research.status === "completed" || research.status === "failed" || research.status === "canceled") {
|
|
1226
|
+
return research;
|
|
1239
1227
|
}
|
|
1240
1228
|
} catch (err) {
|
|
1241
1229
|
consecutiveFailures += 1;
|
|
1242
1230
|
if (consecutiveFailures >= maxConsecutiveFailures) {
|
|
1243
1231
|
throw new Error(
|
|
1244
|
-
`Polling failed ${maxConsecutiveFailures} times in a row for
|
|
1232
|
+
`Polling failed ${maxConsecutiveFailures} times in a row for research ${researchId}: ${err}`
|
|
1245
1233
|
);
|
|
1246
1234
|
}
|
|
1247
1235
|
}
|
|
1248
|
-
if (Date.now() - startTime >
|
|
1236
|
+
if (Date.now() - startTime > timeoutMs) {
|
|
1249
1237
|
throw new Error(
|
|
1250
|
-
`Polling timeout:
|
|
1238
|
+
`Polling timeout: Research ${researchId} did not complete within ${timeoutMs}ms`
|
|
1251
1239
|
);
|
|
1252
1240
|
}
|
|
1253
|
-
await new Promise((resolve) => setTimeout(resolve,
|
|
1241
|
+
await new Promise((resolve) => setTimeout(resolve, pollInterval));
|
|
1254
1242
|
}
|
|
1255
1243
|
}
|
|
1256
|
-
/**
|
|
1257
|
-
* List research tasks
|
|
1258
|
-
* @param options Pagination options
|
|
1259
|
-
* @returns The paginated list of research tasks
|
|
1260
|
-
*/
|
|
1261
|
-
async listTasks(options) {
|
|
1262
|
-
const params = this.buildPaginationParams(options);
|
|
1263
|
-
return this.request(
|
|
1264
|
-
"/tasks",
|
|
1265
|
-
"GET",
|
|
1266
|
-
void 0,
|
|
1267
|
-
params
|
|
1268
|
-
);
|
|
1269
|
-
}
|
|
1270
1244
|
};
|
|
1271
1245
|
|
|
1272
1246
|
// src/index.ts
|
|
@@ -1697,10 +1671,6 @@ var index_default = Exa2;
|
|
|
1697
1671
|
0 && (module.exports = {
|
|
1698
1672
|
CreateEnrichmentParametersFormat,
|
|
1699
1673
|
CreateImportParametersFormat,
|
|
1700
|
-
CreateWebsetParametersImportSource,
|
|
1701
|
-
CreateWebsetParametersSearchExcludeSource,
|
|
1702
|
-
CreateWebsetSearchParametersExcludeSource,
|
|
1703
|
-
CreateWebsetSearchParametersScopeSource,
|
|
1704
1674
|
EventType,
|
|
1705
1675
|
EventsClient,
|
|
1706
1676
|
Exa,
|
|
@@ -1716,20 +1686,20 @@ var index_default = Exa2;
|
|
|
1716
1686
|
MonitorRunStatus,
|
|
1717
1687
|
MonitorRunType,
|
|
1718
1688
|
MonitorStatus,
|
|
1719
|
-
PreviewWebsetResponseEnrichmentsFormat,
|
|
1720
|
-
ResearchClient,
|
|
1721
|
-
ScopeSourceType,
|
|
1722
1689
|
UpdateMonitorStatus,
|
|
1723
1690
|
WebhookStatus,
|
|
1724
1691
|
WebsetEnrichmentFormat,
|
|
1725
1692
|
WebsetEnrichmentStatus,
|
|
1726
1693
|
WebsetEnrichmentsClient,
|
|
1694
|
+
WebsetImportSource,
|
|
1727
1695
|
WebsetItemEvaluationSatisfied,
|
|
1728
1696
|
WebsetItemSource,
|
|
1729
1697
|
WebsetItemsClient,
|
|
1730
1698
|
WebsetMonitorsClient,
|
|
1731
1699
|
WebsetSearchBehavior,
|
|
1732
1700
|
WebsetSearchCanceledReason,
|
|
1701
|
+
WebsetSearchExcludeSource,
|
|
1702
|
+
WebsetSearchScopeSource,
|
|
1733
1703
|
WebsetSearchStatus,
|
|
1734
1704
|
WebsetSearchesClient,
|
|
1735
1705
|
WebsetStatus,
|