scoutline 0.14.6 → 0.14.7
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/providers/parallel/adapter.d.ts +27 -1
- package/dist/providers/parallel/adapter.d.ts.map +1 -1
- package/dist/providers/parallel/adapter.js +313 -36
- package/dist/providers/parallel/adapter.js.map +1 -1
- package/dist/providers/parallel/client.d.ts +72 -0
- package/dist/providers/parallel/client.d.ts.map +1 -1
- package/dist/providers/parallel/client.js +266 -0
- package/dist/providers/parallel/client.js.map +1 -1
- package/package.json +1 -1
|
@@ -15,6 +15,13 @@
|
|
|
15
15
|
* results[].url -> finalUrl
|
|
16
16
|
* Request: advanced_settings.full_content = true (8P.2)
|
|
17
17
|
*
|
|
18
|
+
* Research (Task / Deep Research API — 8P.1):
|
|
19
|
+
* POST /v1/tasks/runs → create async task run (pro/ultra processor)
|
|
20
|
+
* GET /v1/tasks/runs/{id}/result → long-poll until terminal
|
|
21
|
+
* output.content -> report (markdown report string)
|
|
22
|
+
* output.basis[].citations -> sources (flattened + deduplicated by URL)
|
|
23
|
+
* run.processor -> model (echoed)
|
|
24
|
+
*
|
|
18
25
|
* Control mapping (SearchControls → Parallel-native API params):
|
|
19
26
|
* topic -> appended to query string (Parallel has no native topic field)
|
|
20
27
|
* type -> REJECTED (UnsupportedOptionError)
|
|
@@ -22,15 +29,34 @@
|
|
|
22
29
|
* recency -> advanced_settings.source_policy.after_date (RFC 3339) (8P.3)
|
|
23
30
|
* location -> advanced_settings.location (8P.3; only "us" accepted)
|
|
24
31
|
* contentSize -> advanced_settings.excerpt_settings.max_chars_per_result (8P.3)
|
|
32
|
+
*
|
|
33
|
+
* Control mapping (ResearchRequest → Parallel Task API params):
|
|
34
|
+
* model -> processor (mini→pro-fast, pro→ultra, auto→pro)
|
|
35
|
+
* domain -> source_policy.include_domains
|
|
36
|
+
* outputLength -> task_spec.output_schema.description (length steering)
|
|
37
|
+
* citationFormat -> task_spec.output_schema.description (format steering)
|
|
25
38
|
*/
|
|
26
39
|
import type { ProviderAdapter, ProviderContext, ProviderDescriptor, ProviderId } from "../types.js";
|
|
27
40
|
import type { SearchCapability } from "../../capabilities/search.js";
|
|
28
41
|
import type { ResearchCapability } from "../../capabilities/research.js";
|
|
29
42
|
import type { ReaderCapability } from "../../capabilities/reader.js";
|
|
30
43
|
import type { DiagnosticsCapability } from "../../capabilities/diagnostics.js";
|
|
44
|
+
import type { AsyncJobStateFile } from "../../lib/async-job-state.js";
|
|
31
45
|
import { type ParallelTransportDeps } from "./client.js";
|
|
32
46
|
export interface ParallelAdapterDependencies {
|
|
33
47
|
readonly transport?: ParallelTransportDeps;
|
|
48
|
+
/**
|
|
49
|
+
* Optional Research state-file port (8P.1). Production defaults to the
|
|
50
|
+
* on-disk implementation under `~/.scoutline/research/`; tests inject
|
|
51
|
+
* in-memory doubles to exercise the lifecycle deterministically.
|
|
52
|
+
*/
|
|
53
|
+
readonly researchStateFile?: AsyncJobStateFile;
|
|
54
|
+
/**
|
|
55
|
+
* Disk dir for the research create-lock (Cubic P1); defaults to
|
|
56
|
+
* `asyncJobStateDir("research")`. When undefined (in-memory test
|
|
57
|
+
* mode), the lock is a no-op.
|
|
58
|
+
*/
|
|
59
|
+
readonly researchStateDir?: string;
|
|
34
60
|
}
|
|
35
61
|
export declare class ParallelAdapter implements ProviderAdapter {
|
|
36
62
|
private readonly context;
|
|
@@ -41,5 +67,5 @@ export declare class ParallelAdapter implements ProviderAdapter {
|
|
|
41
67
|
readonly diagnostics: DiagnosticsCapability;
|
|
42
68
|
constructor(context: ProviderContext, deps?: ParallelAdapterDependencies);
|
|
43
69
|
}
|
|
44
|
-
export declare function createParallelDescriptor(): ProviderDescriptor;
|
|
70
|
+
export declare function createParallelDescriptor(dependencies?: ParallelAdapterDependencies): ProviderDescriptor;
|
|
45
71
|
//# sourceMappingURL=adapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/providers/parallel/adapter.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/providers/parallel/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAKH,OAAO,KAAK,EACV,eAAe,EAEf,eAAe,EACf,kBAAkB,EAClB,UAAU,EACX,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAEV,gBAAgB,EAGjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EACV,kBAAkB,EAInB,MAAM,gCAAgC,CAAC;AAExC,OAAO,KAAK,EACV,gBAAgB,EAGjB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAmBtE,OAAO,EAQL,KAAK,qBAAqB,EAC3B,MAAM,aAAa,CAAC;AAmDrB,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAC3C;;;;OAIG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IAC/C;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC;AAySD,qBAAa,eAAgB,YAAW,eAAe;IAQnD,OAAO,CAAC,QAAQ,CAAC,OAAO;IAP1B,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAc;IACrC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,qBAAqB,CAAC;IAE5C,YACmB,OAAO,EAAE,eAAe,EACzC,IAAI,GAAE,2BAAgC,EA6TvC;CACF;AAwDD,wBAAgB,wBAAwB,CACtC,YAAY,CAAC,EAAE,2BAA2B,GACzC,kBAAkB,CAepB"}
|
|
@@ -15,6 +15,13 @@
|
|
|
15
15
|
* results[].url -> finalUrl
|
|
16
16
|
* Request: advanced_settings.full_content = true (8P.2)
|
|
17
17
|
*
|
|
18
|
+
* Research (Task / Deep Research API — 8P.1):
|
|
19
|
+
* POST /v1/tasks/runs → create async task run (pro/ultra processor)
|
|
20
|
+
* GET /v1/tasks/runs/{id}/result → long-poll until terminal
|
|
21
|
+
* output.content -> report (markdown report string)
|
|
22
|
+
* output.basis[].citations -> sources (flattened + deduplicated by URL)
|
|
23
|
+
* run.processor -> model (echoed)
|
|
24
|
+
*
|
|
18
25
|
* Control mapping (SearchControls → Parallel-native API params):
|
|
19
26
|
* topic -> appended to query string (Parallel has no native topic field)
|
|
20
27
|
* type -> REJECTED (UnsupportedOptionError)
|
|
@@ -22,15 +29,25 @@
|
|
|
22
29
|
* recency -> advanced_settings.source_policy.after_date (RFC 3339) (8P.3)
|
|
23
30
|
* location -> advanced_settings.location (8P.3; only "us" accepted)
|
|
24
31
|
* contentSize -> advanced_settings.excerpt_settings.max_chars_per_result (8P.3)
|
|
32
|
+
*
|
|
33
|
+
* Control mapping (ResearchRequest → Parallel Task API params):
|
|
34
|
+
* model -> processor (mini→pro-fast, pro→ultra, auto→pro)
|
|
35
|
+
* domain -> source_policy.include_domains
|
|
36
|
+
* outputLength -> task_spec.output_schema.description (length steering)
|
|
37
|
+
* citationFormat -> task_spec.output_schema.description (format steering)
|
|
25
38
|
*/
|
|
26
39
|
import crypto from "node:crypto";
|
|
40
|
+
import * as fs from "node:fs/promises";
|
|
41
|
+
import path from "node:path";
|
|
27
42
|
import { decodeResearchResult } from "../../capabilities/research.js";
|
|
28
43
|
import { decodeReaderFetchResult } from "../../capabilities/reader.js";
|
|
44
|
+
import { computeAsyncJobStateHash, createProductionAsyncJobStateFile, } from "../../lib/async-job-state.js";
|
|
45
|
+
import { asyncJobStateDir } from "../../lib/cache.js";
|
|
29
46
|
import { ApiError, AuthError, ConfigurationError, NetworkError, QuotaError, TimeoutError, UnsupportedOptionError, ValidationError, } from "../../lib/errors.js";
|
|
30
47
|
import { requireParallelApiKey, isParallelConfigured } from "./credentials.js";
|
|
31
48
|
import { applySearchTopic } from "../../lib/search-topic.js";
|
|
32
49
|
import { validateDomain } from "../../lib/domain-validation.js";
|
|
33
|
-
import { fetchParallelSearch, fetchParallelExtract, } from "./client.js";
|
|
50
|
+
import { fetchParallelSearch, fetchParallelExtract, createParallelTaskRun, retrieveParallelTaskRunResult, } from "./client.js";
|
|
34
51
|
import { createParallelDiagnosticsCapability } from "./diagnostics.js";
|
|
35
52
|
function credentialFingerprint(apiKey) {
|
|
36
53
|
return crypto.createHash("sha256").update(apiKey).digest("hex");
|
|
@@ -176,6 +193,165 @@ function mapSearchControlsToParams(controls, now = new Date()) {
|
|
|
176
193
|
...(Object.keys(advancedSettings).length > 0 ? { advanced_settings: advancedSettings } : {}),
|
|
177
194
|
};
|
|
178
195
|
}
|
|
196
|
+
// ---------------------------------------------------------------------------
|
|
197
|
+
// Research control mapping (ResearchRequest → Task API params) (8P.1)
|
|
198
|
+
// ---------------------------------------------------------------------------
|
|
199
|
+
/**
|
|
200
|
+
* Maximum input length for the Task API's `input` field. Parallel
|
|
201
|
+
* documents this as 15,000 characters for Deep Research.
|
|
202
|
+
*/
|
|
203
|
+
const PARALLEL_MAX_TASK_INPUT_LENGTH = 15000;
|
|
204
|
+
/**
|
|
205
|
+
* Map a provider-neutral research model to a Parallel processor tier.
|
|
206
|
+
*
|
|
207
|
+
* mini → pro-fast (cheapest/fastest deep research tier)
|
|
208
|
+
* pro → ultra (deepest, most capable — scoutline "pro" = deepest)
|
|
209
|
+
* auto → pro (standard deep research processor, the default)
|
|
210
|
+
*/
|
|
211
|
+
function modelToProcessor(model) {
|
|
212
|
+
switch (model) {
|
|
213
|
+
case "mini":
|
|
214
|
+
return "pro-fast";
|
|
215
|
+
case "pro":
|
|
216
|
+
return "ultra";
|
|
217
|
+
case "auto":
|
|
218
|
+
case undefined:
|
|
219
|
+
return "pro";
|
|
220
|
+
default:
|
|
221
|
+
return "pro";
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Map a provider-neutral `ResearchRequest` into Parallel-native Task API
|
|
226
|
+
* params (processor, source_policy, task_spec).
|
|
227
|
+
*
|
|
228
|
+
* model -> processor (via {@link modelToProcessor})
|
|
229
|
+
* domain -> source_policy.include_domains
|
|
230
|
+
* outputLength -> task_spec.output_schema.description (length steering)
|
|
231
|
+
* citationFormat -> task_spec.output_schema.description (format steering)
|
|
232
|
+
*
|
|
233
|
+
* The output_schema description is documented by Parallel as giving
|
|
234
|
+
* "control over the length or the content" of the report.
|
|
235
|
+
*/
|
|
236
|
+
function mapResearchControlsToTaskParams(request) {
|
|
237
|
+
const processor = modelToProcessor(request.model);
|
|
238
|
+
const params = {
|
|
239
|
+
processor,
|
|
240
|
+
task_spec: { output_schema: { type: "text" } },
|
|
241
|
+
};
|
|
242
|
+
if (request.domain) {
|
|
243
|
+
params.source_policy = { include_domains: [request.domain] };
|
|
244
|
+
}
|
|
245
|
+
// Fold outputLength and citationFormat into the output_schema
|
|
246
|
+
// description — Parallel documents this as the steering mechanism for
|
|
247
|
+
// report length and content.
|
|
248
|
+
const descParts = [];
|
|
249
|
+
if (request.outputLength === "short") {
|
|
250
|
+
descParts.push("Keep the report concise and brief.");
|
|
251
|
+
}
|
|
252
|
+
else if (request.outputLength === "long") {
|
|
253
|
+
descParts.push("Write a comprehensive, detailed report.");
|
|
254
|
+
}
|
|
255
|
+
if (request.citationFormat && request.citationFormat !== "numbered") {
|
|
256
|
+
descParts.push(`Use ${request.citationFormat.toUpperCase()} citation format.`);
|
|
257
|
+
}
|
|
258
|
+
if (descParts.length > 0) {
|
|
259
|
+
params.task_spec = {
|
|
260
|
+
output_schema: { type: "text", description: descParts.join(" ") },
|
|
261
|
+
};
|
|
262
|
+
}
|
|
263
|
+
return params;
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Normalize a completed Parallel Task run result into a provider-neutral
|
|
267
|
+
* `ResearchResult`.
|
|
268
|
+
*
|
|
269
|
+
* output.content → report
|
|
270
|
+
* output.basis[].citations → sources (flattened + deduplicated by URL)
|
|
271
|
+
* run.processor → model (echoed, falling back to the requested processor)
|
|
272
|
+
*/
|
|
273
|
+
function normalizeParallelResearchResult(result, request) {
|
|
274
|
+
// Deduplicate citations by URL, preserving first-seen order.
|
|
275
|
+
const seen = new Set();
|
|
276
|
+
const sources = [];
|
|
277
|
+
if (result.citations) {
|
|
278
|
+
for (const citation of result.citations) {
|
|
279
|
+
if (citation.url && !seen.has(citation.url)) {
|
|
280
|
+
seen.add(citation.url);
|
|
281
|
+
sources.push({
|
|
282
|
+
title: citation.title || "Untitled",
|
|
283
|
+
url: citation.url,
|
|
284
|
+
});
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
return {
|
|
289
|
+
schemaVersion: 1,
|
|
290
|
+
query: request.query,
|
|
291
|
+
model: result.processor ?? modelToProcessor(request.model),
|
|
292
|
+
report: result.content ?? "",
|
|
293
|
+
sources,
|
|
294
|
+
};
|
|
295
|
+
}
|
|
296
|
+
function isEexistError(err) {
|
|
297
|
+
return (typeof err === "object" &&
|
|
298
|
+
err !== null &&
|
|
299
|
+
"code" in err &&
|
|
300
|
+
err.code === "EEXIST");
|
|
301
|
+
}
|
|
302
|
+
// ---------------------------------------------------------------------------
|
|
303
|
+
// Concurrent-create lock (cost-safety — Cubic P1)
|
|
304
|
+
// ---------------------------------------------------------------------------
|
|
305
|
+
/** How long to wait for a contended research create-lock before giving up. */
|
|
306
|
+
const RESEARCH_LOCK_TIMEOUT_MS = 30000;
|
|
307
|
+
/** A lock older than this is treated as stale (holder died) and broken. */
|
|
308
|
+
const RESEARCH_LOCK_STALE_MS = 10 * 60 * 1000;
|
|
309
|
+
/**
|
|
310
|
+
* Serialize the create→persist critical section per request so two
|
|
311
|
+
* concurrent identical research invocations can't both POST (and charge)
|
|
312
|
+
* a task — the second waits, then re-reads the state file and finds the
|
|
313
|
+
* first's persisted `run_id` instead of re-POSTing. Uses an exclusive
|
|
314
|
+
* `wx`-create lockfile sibling to the state file; a stale lock (holder
|
|
315
|
+
* crashed) is broken after {@link RESEARCH_LOCK_STALE_MS}.
|
|
316
|
+
*
|
|
317
|
+
* Mirrors Firecrawl's `withCrawlLock` pattern. When `stateDir` is
|
|
318
|
+
* undefined (in-memory test mode), the lock is a no-op.
|
|
319
|
+
*/
|
|
320
|
+
async function withResearchLock(stateDir, identityHash, fn, deps) {
|
|
321
|
+
if (stateDir === undefined)
|
|
322
|
+
return fn();
|
|
323
|
+
const setT = deps?.setTimeout ?? setTimeout;
|
|
324
|
+
const sleep = (ms) => new Promise((r) => setT(() => r(), ms));
|
|
325
|
+
await fs.mkdir(stateDir, { recursive: true }).catch(() => { });
|
|
326
|
+
const lockPath = path.join(stateDir, `${identityHash}.lock`);
|
|
327
|
+
const deadline = Date.now() + RESEARCH_LOCK_TIMEOUT_MS;
|
|
328
|
+
for (;;) {
|
|
329
|
+
try {
|
|
330
|
+
const handle = await fs.open(lockPath, "wx");
|
|
331
|
+
try {
|
|
332
|
+
return await fn();
|
|
333
|
+
}
|
|
334
|
+
finally {
|
|
335
|
+
await handle.close().catch(() => { });
|
|
336
|
+
await fs.unlink(lockPath).catch(() => { });
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
catch (err) {
|
|
340
|
+
if (!isEexistError(err))
|
|
341
|
+
throw err;
|
|
342
|
+
if (Date.now() > deadline) {
|
|
343
|
+
throw new ApiError("Parallel AI research create-lock timed out", 500);
|
|
344
|
+
}
|
|
345
|
+
// Break a stale lock (the holder died without releasing).
|
|
346
|
+
const stat = await fs.stat(lockPath).catch(() => null);
|
|
347
|
+
if (stat && Date.now() - stat.mtimeMs > RESEARCH_LOCK_STALE_MS) {
|
|
348
|
+
await fs.unlink(lockPath).catch(() => { });
|
|
349
|
+
continue;
|
|
350
|
+
}
|
|
351
|
+
await sleep(500);
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
}
|
|
179
355
|
export class ParallelAdapter {
|
|
180
356
|
context;
|
|
181
357
|
id = "parallel";
|
|
@@ -187,6 +363,8 @@ export class ParallelAdapter {
|
|
|
187
363
|
this.context = context;
|
|
188
364
|
const transport = deps.transport;
|
|
189
365
|
const env = context.env;
|
|
366
|
+
const researchStateFile = deps.researchStateFile ?? createProductionAsyncJobStateFile(asyncJobStateDir("research"));
|
|
367
|
+
const researchStateDir = deps.researchStateDir ?? asyncJobStateDir("research");
|
|
190
368
|
this.search = {
|
|
191
369
|
validate(request) {
|
|
192
370
|
if (!request.query || request.query.trim().length === 0) {
|
|
@@ -257,17 +435,16 @@ export class ParallelAdapter {
|
|
|
257
435
|
if (!request.query || request.query.trim().length === 0) {
|
|
258
436
|
throw new ValidationError("Research query must not be empty");
|
|
259
437
|
}
|
|
260
|
-
//
|
|
261
|
-
//
|
|
262
|
-
//
|
|
263
|
-
const
|
|
264
|
-
if (exceedsCodePointLimit(
|
|
265
|
-
throw new ValidationError(`Parallel AI research
|
|
438
|
+
// The Task API's `input` field accepts up to 15,000 characters
|
|
439
|
+
// (documented). This replaces the old 200-char search-query
|
|
440
|
+
// limit that applied when research was a search alias (8P.1).
|
|
441
|
+
const researchInput = request.query.trim();
|
|
442
|
+
if (exceedsCodePointLimit(researchInput, PARALLEL_MAX_TASK_INPUT_LENGTH)) {
|
|
443
|
+
throw new ValidationError(`Parallel AI research input exceeds the ${PARALLEL_MAX_TASK_INPUT_LENGTH}-character limit`);
|
|
266
444
|
}
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
}
|
|
445
|
+
// Validate domain syntax (same as search).
|
|
446
|
+
if (request.domain !== undefined) {
|
|
447
|
+
validateDomain(request.domain);
|
|
271
448
|
}
|
|
272
449
|
},
|
|
273
450
|
cacheIdentity(request) {
|
|
@@ -286,30 +463,87 @@ export class ParallelAdapter {
|
|
|
286
463
|
if (signal?.aborted)
|
|
287
464
|
throw new TimeoutError(0, "Research aborted before start");
|
|
288
465
|
const apiKey = requireParallelApiKey(env);
|
|
289
|
-
const
|
|
466
|
+
const taskParams = mapResearchControlsToTaskParams(request);
|
|
467
|
+
const credFingerprint = credentialFingerprint(apiKey);
|
|
468
|
+
const identityHash = computeAsyncJobStateHash({
|
|
469
|
+
provider: "parallel",
|
|
470
|
+
capability: "research",
|
|
471
|
+
credentialFingerprint: credFingerprint,
|
|
472
|
+
request,
|
|
473
|
+
});
|
|
290
474
|
try {
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
//
|
|
294
|
-
//
|
|
295
|
-
const
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
475
|
+
// 1. Check for an in-flight task (resume after Ctrl-C / crash).
|
|
476
|
+
// A valid state file means a task was already created
|
|
477
|
+
// server-side — poll it instead of creating a second one
|
|
478
|
+
// (double-charge prevention).
|
|
479
|
+
const existingState = await researchStateFile.read(identityHash);
|
|
480
|
+
let runId;
|
|
481
|
+
if (existingState !== null) {
|
|
482
|
+
runId = existingState.requestId;
|
|
483
|
+
}
|
|
484
|
+
else {
|
|
485
|
+
// 2. No in-flight task: create under a lock so concurrent
|
|
486
|
+
// identical invocations serialize. The second caller
|
|
487
|
+
// waits, then re-reads the state file and finds the
|
|
488
|
+
// first's persisted run_id instead of creating (and
|
|
489
|
+
// billing) a second task (Cubic P1).
|
|
490
|
+
runId = await withResearchLock(researchStateDir, identityHash, async () => {
|
|
491
|
+
// Re-check under the lock — another caller may have
|
|
492
|
+
// created and persisted while we waited to acquire.
|
|
493
|
+
const state = await researchStateFile.read(identityHash);
|
|
494
|
+
if (state !== null) {
|
|
495
|
+
return state.requestId;
|
|
496
|
+
}
|
|
497
|
+
// No existing task: POST to create one. NO retry — a
|
|
498
|
+
// transient POST failure is terminal (the user re-runs);
|
|
499
|
+
// retrying risks a double-charge if the POST succeeded
|
|
500
|
+
// server-side but the response was lost.
|
|
501
|
+
return createParallelResearchTask(apiKey, request, taskParams, identityHash, researchStateFile, transport, signal);
|
|
502
|
+
}, transport);
|
|
503
|
+
}
|
|
504
|
+
// 3. Poll loop — the /result endpoint is a server-side
|
|
505
|
+
// long-poll (blocks up to 60s, then returns 408 if still
|
|
506
|
+
// active). No client-side sleep is needed between polls;
|
|
507
|
+
// the server IS the wait. A setImmediate yield between
|
|
508
|
+
// iterations lets signal handlers fire.
|
|
509
|
+
let recreatedAfterNotFound = false;
|
|
510
|
+
for (;;) {
|
|
511
|
+
if (signal?.aborted) {
|
|
512
|
+
throw new TimeoutError(0, "Research polling aborted");
|
|
513
|
+
}
|
|
514
|
+
const result = await retrieveParallelTaskRunResult(apiKey, runId, transport, signal);
|
|
515
|
+
if (result.status === "completed") {
|
|
516
|
+
// Best-effort cleanup — a filesystem error here must
|
|
517
|
+
// not discard a successfully completed paid report.
|
|
518
|
+
await researchStateFile.remove(identityHash).catch(() => { });
|
|
519
|
+
return normalizeParallelResearchResult(result, request);
|
|
520
|
+
}
|
|
521
|
+
if (result.status === "failed") {
|
|
522
|
+
await researchStateFile.remove(identityHash).catch(() => { });
|
|
523
|
+
// Note: normalizeParallelError sanitizes this to a constant
|
|
524
|
+
// message at the adapter boundary (NFR-006). The provider's
|
|
525
|
+
// raw error message never reaches the user by design.
|
|
526
|
+
throw new ApiError("Parallel AI research task failed", 500);
|
|
527
|
+
}
|
|
528
|
+
if (result.status === "not_found") {
|
|
529
|
+
// 404 — the server-side task expired/disappeared.
|
|
530
|
+
// Allow at most ONE recreation; a second 404 means the
|
|
531
|
+
// freshly created task also failed to register, so we
|
|
532
|
+
// terminate rather than risk unbounded paid creations.
|
|
533
|
+
if (recreatedAfterNotFound) {
|
|
534
|
+
await researchStateFile.remove(identityHash).catch(() => { });
|
|
535
|
+
throw new ApiError("Parallel AI research task not found after creation", 500);
|
|
536
|
+
}
|
|
537
|
+
recreatedAfterNotFound = true;
|
|
538
|
+
await researchStateFile.remove(identityHash).catch(() => { });
|
|
539
|
+
runId = await createParallelResearchTask(apiKey, request, taskParams, identityHash, researchStateFile, transport, signal);
|
|
540
|
+
continue;
|
|
541
|
+
}
|
|
542
|
+
// running (408 or non-terminal 200): yield to the event
|
|
543
|
+
// loop so signal handlers can fire, then re-poll. The
|
|
544
|
+
// server already waited RESULT_POLL_SERVER_TIMEOUT_S.
|
|
545
|
+
await new Promise((resolve) => setImmediate(resolve));
|
|
546
|
+
}
|
|
313
547
|
}
|
|
314
548
|
catch (error) {
|
|
315
549
|
throw normalizeParallelError(error);
|
|
@@ -386,7 +620,50 @@ export class ParallelAdapter {
|
|
|
386
620
|
this.diagnostics = createParallelDiagnosticsCapability({ env, transport });
|
|
387
621
|
}
|
|
388
622
|
}
|
|
389
|
-
|
|
623
|
+
/**
|
|
624
|
+
* POST /v1/tasks/runs to create a Deep Research task, then persist its
|
|
625
|
+
* runId in the state file atomically. On EEXIST (a concurrent invocation
|
|
626
|
+
* already created a task for this request), read the existing state file
|
|
627
|
+
* and return its runId instead — the concurrent task is polled, not
|
|
628
|
+
* duplicated. Mirrors Tavily's `createResearchTask` pattern.
|
|
629
|
+
*/
|
|
630
|
+
async function createParallelResearchTask(apiKey, request, taskParams, identityHash, stateFile, transport, signal) {
|
|
631
|
+
const created = await createParallelTaskRun(apiKey, request.query.trim(), taskParams, transport, signal);
|
|
632
|
+
const runId = created.runId;
|
|
633
|
+
const state = {
|
|
634
|
+
requestId: runId,
|
|
635
|
+
identityHash,
|
|
636
|
+
createdAt: new Date().toISOString(),
|
|
637
|
+
status: "pending",
|
|
638
|
+
};
|
|
639
|
+
try {
|
|
640
|
+
await stateFile.write(identityHash, state);
|
|
641
|
+
}
|
|
642
|
+
catch (err) {
|
|
643
|
+
if (isEexistError(err)) {
|
|
644
|
+
// Concurrent invocation won the race — poll its task instead.
|
|
645
|
+
const existing = await stateFile.read(identityHash);
|
|
646
|
+
if (existing !== null) {
|
|
647
|
+
return existing.requestId;
|
|
648
|
+
}
|
|
649
|
+
// The existing file was corrupt (read returned null after deleting
|
|
650
|
+
// it). Fall through and poll the task we just created — it is
|
|
651
|
+
// valid server-side even if we cannot persist it.
|
|
652
|
+
}
|
|
653
|
+
else {
|
|
654
|
+
// Non-EEXIST error (disk full, permissions). The task was created
|
|
655
|
+
// server-side — degrade to non-resumable mode rather than
|
|
656
|
+
// abandoning a paid task. The current invocation will still poll
|
|
657
|
+
// and retrieve the result; only resume-after-interrupt is lost.
|
|
658
|
+
// Intentionally swallow — the run_id is valid server-side.
|
|
659
|
+
}
|
|
660
|
+
}
|
|
661
|
+
return runId;
|
|
662
|
+
}
|
|
663
|
+
export function createParallelDescriptor(dependencies) {
|
|
664
|
+
const transport = dependencies?.transport;
|
|
665
|
+
const researchStateDir = dependencies?.researchStateDir ?? asyncJobStateDir("research");
|
|
666
|
+
const researchStateFile = dependencies?.researchStateFile ?? createProductionAsyncJobStateFile(researchStateDir);
|
|
390
667
|
return {
|
|
391
668
|
id: "parallel",
|
|
392
669
|
credentialEnvVars: ["PARALLEL_API_KEY"],
|
|
@@ -394,7 +671,7 @@ export function createParallelDescriptor() {
|
|
|
394
671
|
capabilities() {
|
|
395
672
|
return new Set(["search", "research", "reader", "diagnostics"]);
|
|
396
673
|
},
|
|
397
|
-
create: (context) => new ParallelAdapter(context),
|
|
674
|
+
create: (context) => new ParallelAdapter(context, { transport, researchStateFile, researchStateDir }),
|
|
398
675
|
};
|
|
399
676
|
}
|
|
400
677
|
//# sourceMappingURL=adapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/providers/parallel/adapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/providers/parallel/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -58,4 +58,76 @@ export interface ParallelExtractResponse {
|
|
|
58
58
|
readonly errors?: readonly ParallelExtractErrorEntry[];
|
|
59
59
|
}
|
|
60
60
|
export declare function fetchParallelExtract(apiKey: string, targetUrl: string, deps?: ParallelTransportDeps): Promise<ParallelExtractResponse>;
|
|
61
|
+
/**
|
|
62
|
+
* Provider-native Task API request fields (Parallel field names). The
|
|
63
|
+
* Adapter maps the provider-neutral `ResearchRequest` into these before
|
|
64
|
+
* calling {@link createParallelTaskRun}.
|
|
65
|
+
*/
|
|
66
|
+
export interface ParallelTaskParams {
|
|
67
|
+
/** Processor tier: pro, ultra, pro-fast, ultra-fast. */
|
|
68
|
+
readonly processor: string;
|
|
69
|
+
/** Restrict research to specific domains. */
|
|
70
|
+
readonly source_policy?: {
|
|
71
|
+
readonly include_domains?: readonly string[];
|
|
72
|
+
readonly exclude_domains?: readonly string[];
|
|
73
|
+
readonly after_date?: string;
|
|
74
|
+
};
|
|
75
|
+
/** Geo-targeted search results (ISO 3166-1 alpha-2). */
|
|
76
|
+
readonly advanced_settings?: {
|
|
77
|
+
readonly location?: string;
|
|
78
|
+
};
|
|
79
|
+
/** Output schema — text mode produces a markdown report. */
|
|
80
|
+
readonly task_spec?: {
|
|
81
|
+
readonly output_schema: {
|
|
82
|
+
readonly type: "text";
|
|
83
|
+
readonly description?: string;
|
|
84
|
+
};
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
/** Structured result of POST /v1/tasks/runs (HTTP 202). */
|
|
88
|
+
export interface ParallelTaskRunCreateResult {
|
|
89
|
+
readonly runId: string;
|
|
90
|
+
readonly status: string;
|
|
91
|
+
}
|
|
92
|
+
/** A single citation from the research basis. */
|
|
93
|
+
export interface ParallelTaskCitation {
|
|
94
|
+
readonly title?: string;
|
|
95
|
+
readonly url: string;
|
|
96
|
+
readonly excerpts?: readonly string[];
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Structured result of GET /v1/tasks/runs/{run_id}/result. `status:
|
|
100
|
+
* "running"` covers both the explicit 408 (server long-poll timed out)
|
|
101
|
+
* and a 200 whose `run.status` is not yet terminal. `status:
|
|
102
|
+
* "not_found"` covers HTTP 404 (run failed or run_id expired).
|
|
103
|
+
*/
|
|
104
|
+
export interface ParallelTaskRunResult {
|
|
105
|
+
readonly status: "completed" | "running" | "failed" | "not_found";
|
|
106
|
+
readonly content?: string;
|
|
107
|
+
readonly citations?: readonly ParallelTaskCitation[];
|
|
108
|
+
readonly processor?: string;
|
|
109
|
+
readonly errorMessage?: string;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Perform ONE POST against the Parallel /v1/tasks/runs endpoint to start
|
|
113
|
+
* a Deep Research task run. No retry — a transient POST failure is
|
|
114
|
+
* terminal (the user re-runs); retrying risks a double-charge if the
|
|
115
|
+
* POST succeeded server-side but the response was lost. Returns the
|
|
116
|
+
* structured create result `{ runId, status }`.
|
|
117
|
+
*/
|
|
118
|
+
export declare function createParallelTaskRun(apiKey: string, input: string, params: ParallelTaskParams, deps?: ParallelTransportDeps, externalSignal?: AbortSignal): Promise<ParallelTaskRunCreateResult>;
|
|
119
|
+
/**
|
|
120
|
+
* Perform ONE GET against the Parallel /v1/tasks/runs/{run_id}/result
|
|
121
|
+
* endpoint. This is a server-side long-poll: the server blocks up to
|
|
122
|
+
* `RESULT_POLL_SERVER_TIMEOUT_S` seconds, then returns 408 if the run is
|
|
123
|
+
* still active. On 200, the response includes `run.status` and (if
|
|
124
|
+
* completed) `output.content` + `output.basis`. On 404, the run failed
|
|
125
|
+
* or the run_id expired.
|
|
126
|
+
*
|
|
127
|
+
* The client-side AbortController timeout is set to
|
|
128
|
+
* `max(PARALLEL_TIMEOUT, (server_timeout + 30)s)` so the server's 408
|
|
129
|
+
* arrives before our timeout fires. The external signal (from the
|
|
130
|
+
* command handler's `--timeout`) can abort at any time.
|
|
131
|
+
*/
|
|
132
|
+
export declare function retrieveParallelTaskRunResult(apiKey: string, runId: string, deps?: ParallelTransportDeps, externalSignal?: AbortSignal): Promise<ParallelTaskRunResult>;
|
|
61
133
|
//# sourceMappingURL=client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/providers/parallel/client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAU9D,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,KAAK,CAAC,EAAE,CACf,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC1B,OAAO,CAAC,0BAA0B,CAAC,CAAC;IACzC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,UAAU,CAAC;IACxC,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,YAAY,CAAC;IAC5C,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CAClC;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE;QAC3B,QAAQ,CAAC,aAAa,CAAC,EAAE;YACvB,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;YAC7C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;SAC9B,CAAC;QACF,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,gBAAgB,CAAC,EAAE;YAC1B,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;SACxC,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvC;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,wBAAwB,EAAE,CAAC;IACvD,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IACpC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAmCD,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,MAAM,GAAE,oBAAyB,EACjC,IAAI,GAAE,qBAA0B,EAChC,cAAc,CAAC,EAAE,WAAW,GAC3B,OAAO,CAAC,sBAAsB,CAAC,CA4DjC;AAMD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,yBAAyB,EAAE,CAAC;IACxD,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,yBAAyB,EAAE,CAAC;CACxD;AAED,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE,qBAA0B,GAC/B,OAAO,CAAC,uBAAuB,CAAC,CAqDlC"}
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/providers/parallel/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -144,4 +144,270 @@ export async function fetchParallelExtract(apiKey, targetUrl, deps = {}) {
|
|
|
144
144
|
clearTimer(timer);
|
|
145
145
|
}
|
|
146
146
|
}
|
|
147
|
+
/**
|
|
148
|
+
* Server-side long-poll window (seconds) for GET /result. The server
|
|
149
|
+
* blocks up to this many seconds before returning 408 (still active).
|
|
150
|
+
* 60 seconds balances responsiveness (a completed run returns ASAP) with
|
|
151
|
+
* HTTP overhead (one request per minute while waiting, not per second).
|
|
152
|
+
*/
|
|
153
|
+
const RESULT_POLL_SERVER_TIMEOUT_S = 60;
|
|
154
|
+
function isRecord(value) {
|
|
155
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Perform ONE POST against the Parallel /v1/tasks/runs endpoint to start
|
|
159
|
+
* a Deep Research task run. No retry — a transient POST failure is
|
|
160
|
+
* terminal (the user re-runs); retrying risks a double-charge if the
|
|
161
|
+
* POST succeeded server-side but the response was lost. Returns the
|
|
162
|
+
* structured create result `{ runId, status }`.
|
|
163
|
+
*/
|
|
164
|
+
export async function createParallelTaskRun(apiKey, input, params, deps = {}, externalSignal) {
|
|
165
|
+
const fetchFn = deps.fetch || globalThis.fetch;
|
|
166
|
+
const setTimer = deps.setTimeout || globalThis.setTimeout;
|
|
167
|
+
const clearTimer = deps.clearTimeout || globalThis.clearTimeout;
|
|
168
|
+
const env = deps.env || process.env;
|
|
169
|
+
const timeoutMs = resolveTimeoutMs(env);
|
|
170
|
+
const url = `${BASE_URL}/v1/tasks/runs`;
|
|
171
|
+
const body = {
|
|
172
|
+
input,
|
|
173
|
+
processor: params.processor,
|
|
174
|
+
task_spec: params.task_spec ?? { output_schema: { type: "text" } },
|
|
175
|
+
};
|
|
176
|
+
if (params.source_policy) {
|
|
177
|
+
body.source_policy = params.source_policy;
|
|
178
|
+
}
|
|
179
|
+
if (params.advanced_settings) {
|
|
180
|
+
body.advanced_settings = params.advanced_settings;
|
|
181
|
+
}
|
|
182
|
+
const controller = new AbortController();
|
|
183
|
+
const onExternalAbort = () => controller.abort();
|
|
184
|
+
if (externalSignal?.aborted)
|
|
185
|
+
controller.abort();
|
|
186
|
+
externalSignal?.addEventListener("abort", onExternalAbort, { once: true });
|
|
187
|
+
const timer = setTimer(() => controller.abort(), timeoutMs);
|
|
188
|
+
try {
|
|
189
|
+
const response = await fetchFn(url, {
|
|
190
|
+
method: "POST",
|
|
191
|
+
headers: {
|
|
192
|
+
"Content-Type": "application/json",
|
|
193
|
+
"x-api-key": apiKey,
|
|
194
|
+
"User-Agent": USER_AGENT,
|
|
195
|
+
},
|
|
196
|
+
body: JSON.stringify(body),
|
|
197
|
+
signal: controller.signal,
|
|
198
|
+
});
|
|
199
|
+
if (!response.ok) {
|
|
200
|
+
throw mapStatusError(response.status, timeoutMs);
|
|
201
|
+
}
|
|
202
|
+
const text = await response.text();
|
|
203
|
+
const parsed = JSON.parse(text);
|
|
204
|
+
if (!isRecord(parsed)) {
|
|
205
|
+
throw new ApiError("Parallel AI task run creation returned a malformed response", 500);
|
|
206
|
+
}
|
|
207
|
+
const runId = parsed.run_id;
|
|
208
|
+
if (typeof runId !== "string" || runId.length === 0) {
|
|
209
|
+
throw new ApiError("Parallel AI task run creation returned a malformed response", 500);
|
|
210
|
+
}
|
|
211
|
+
return {
|
|
212
|
+
runId,
|
|
213
|
+
status: typeof parsed.status === "string" ? parsed.status : "queued",
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
catch (err) {
|
|
217
|
+
if (err instanceof AuthError ||
|
|
218
|
+
err instanceof ApiError ||
|
|
219
|
+
err instanceof QuotaError ||
|
|
220
|
+
err instanceof TimeoutError ||
|
|
221
|
+
err instanceof ValidationError) {
|
|
222
|
+
throw err;
|
|
223
|
+
}
|
|
224
|
+
if (err instanceof SyntaxError) {
|
|
225
|
+
throw new ApiError("Parallel AI returned a malformed JSON response", 500);
|
|
226
|
+
}
|
|
227
|
+
if (err instanceof Error && err.name === "AbortError") {
|
|
228
|
+
if (externalSignal?.aborted) {
|
|
229
|
+
throw new TimeoutError(0, "Research aborted");
|
|
230
|
+
}
|
|
231
|
+
throw new TimeoutError(timeoutMs, TIMEOUT_HELP_TEXT);
|
|
232
|
+
}
|
|
233
|
+
throw new NetworkError(`Parallel AI task run creation failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
234
|
+
}
|
|
235
|
+
finally {
|
|
236
|
+
externalSignal?.removeEventListener("abort", onExternalAbort);
|
|
237
|
+
clearTimer(timer);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Flatten `output.basis[].citations[]` into a single citation array.
|
|
242
|
+
* Handles both the standard FieldBasis shape (each item has a
|
|
243
|
+
* `citations` array) and a potential flat-citation shape (items are
|
|
244
|
+
* citations directly, as described for text-mode basis).
|
|
245
|
+
*/
|
|
246
|
+
function extractCitationsFromBasis(basis) {
|
|
247
|
+
if (!Array.isArray(basis))
|
|
248
|
+
return [];
|
|
249
|
+
const citations = [];
|
|
250
|
+
for (const item of basis) {
|
|
251
|
+
if (!isRecord(item))
|
|
252
|
+
continue;
|
|
253
|
+
const nested = item.citations;
|
|
254
|
+
if (Array.isArray(nested)) {
|
|
255
|
+
// FieldBasis shape: { field, citations: [...], reasoning, confidence }
|
|
256
|
+
for (const c of nested) {
|
|
257
|
+
if (isRecord(c) && typeof c.url === "string") {
|
|
258
|
+
citations.push({
|
|
259
|
+
...(typeof c.title === "string" ? { title: c.title } : {}),
|
|
260
|
+
url: c.url,
|
|
261
|
+
...(Array.isArray(c.excerpts) ? { excerpts: c.excerpts } : {}),
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
else if (typeof item.url === "string") {
|
|
267
|
+
// Flat citation shape (text-mode basis)
|
|
268
|
+
citations.push({
|
|
269
|
+
...(typeof item.title === "string" ? { title: item.title } : {}),
|
|
270
|
+
url: item.url,
|
|
271
|
+
});
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
return citations;
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Normalize a parsed /result response body into a
|
|
278
|
+
* {@link ParallelTaskRunResult}. Maps `run.status` to the lifecycle
|
|
279
|
+
* status, extracts `output.content` and flattens `output.basis`
|
|
280
|
+
* citations. Any malformed shape is a retryable `ApiError` 500.
|
|
281
|
+
*/
|
|
282
|
+
function normalizeTaskRunResult(parsed) {
|
|
283
|
+
if (!isRecord(parsed)) {
|
|
284
|
+
throw new ApiError("Parallel AI task result returned a malformed response", 500);
|
|
285
|
+
}
|
|
286
|
+
const run = parsed.run;
|
|
287
|
+
const output = parsed.output;
|
|
288
|
+
if (!isRecord(run)) {
|
|
289
|
+
throw new ApiError("Parallel AI task result returned a malformed response", 500);
|
|
290
|
+
}
|
|
291
|
+
const runStatus = run.status;
|
|
292
|
+
if (runStatus === "failed" || runStatus === "cancelled") {
|
|
293
|
+
// "failed" and "cancelled" are terminal non-success states. Map
|
|
294
|
+
// both to "failed" so the poll loop stops and cleans up.
|
|
295
|
+
const error = run.error;
|
|
296
|
+
const errorMessage = isRecord(error) && typeof error.message === "string" ? error.message : undefined;
|
|
297
|
+
return {
|
|
298
|
+
status: "failed",
|
|
299
|
+
...(errorMessage ? { errorMessage } : {}),
|
|
300
|
+
};
|
|
301
|
+
}
|
|
302
|
+
if (runStatus === "completed") {
|
|
303
|
+
// Completed — extract output.content and output.basis citations.
|
|
304
|
+
}
|
|
305
|
+
else if (runStatus === "queued" ||
|
|
306
|
+
runStatus === "running" ||
|
|
307
|
+
runStatus === "action_required" ||
|
|
308
|
+
runStatus === "cancelling") {
|
|
309
|
+
// Non-terminal — poll again.
|
|
310
|
+
return { status: "running" };
|
|
311
|
+
}
|
|
312
|
+
else {
|
|
313
|
+
// Unknown status — treat as malformed so the poll loop doesn't
|
|
314
|
+
// spin forever on an unrecognized terminal state.
|
|
315
|
+
throw new ApiError("Parallel AI task result returned a malformed response", 500);
|
|
316
|
+
}
|
|
317
|
+
// Completed — extract output.content and output.basis citations.
|
|
318
|
+
if (!isRecord(output)) {
|
|
319
|
+
throw new ApiError("Parallel AI task result returned a malformed response", 500);
|
|
320
|
+
}
|
|
321
|
+
const content = output.content;
|
|
322
|
+
if (typeof content !== "string") {
|
|
323
|
+
throw new ApiError("Parallel AI task result returned a malformed response", 500);
|
|
324
|
+
}
|
|
325
|
+
const citations = extractCitationsFromBasis(output.basis);
|
|
326
|
+
const processor = typeof run.processor === "string" ? run.processor : undefined;
|
|
327
|
+
return {
|
|
328
|
+
status: "completed",
|
|
329
|
+
content,
|
|
330
|
+
...(citations.length > 0 ? { citations } : {}),
|
|
331
|
+
...(processor ? { processor } : {}),
|
|
332
|
+
};
|
|
333
|
+
}
|
|
334
|
+
/**
|
|
335
|
+
* Perform ONE GET against the Parallel /v1/tasks/runs/{run_id}/result
|
|
336
|
+
* endpoint. This is a server-side long-poll: the server blocks up to
|
|
337
|
+
* `RESULT_POLL_SERVER_TIMEOUT_S` seconds, then returns 408 if the run is
|
|
338
|
+
* still active. On 200, the response includes `run.status` and (if
|
|
339
|
+
* completed) `output.content` + `output.basis`. On 404, the run failed
|
|
340
|
+
* or the run_id expired.
|
|
341
|
+
*
|
|
342
|
+
* The client-side AbortController timeout is set to
|
|
343
|
+
* `max(PARALLEL_TIMEOUT, (server_timeout + 30)s)` so the server's 408
|
|
344
|
+
* arrives before our timeout fires. The external signal (from the
|
|
345
|
+
* command handler's `--timeout`) can abort at any time.
|
|
346
|
+
*/
|
|
347
|
+
export async function retrieveParallelTaskRunResult(apiKey, runId, deps = {}, externalSignal) {
|
|
348
|
+
const fetchFn = deps.fetch || globalThis.fetch;
|
|
349
|
+
const setTimer = deps.setTimeout || globalThis.setTimeout;
|
|
350
|
+
const clearTimer = deps.clearTimeout || globalThis.clearTimeout;
|
|
351
|
+
const env = deps.env || process.env;
|
|
352
|
+
const transportTimeoutMs = resolveTimeoutMs(env);
|
|
353
|
+
// Client-side timeout MUST exceed the server long-poll window so the
|
|
354
|
+
// server's 408 arrives before our AbortController fires.
|
|
355
|
+
const clientTimeoutMs = Math.max(transportTimeoutMs, (RESULT_POLL_SERVER_TIMEOUT_S + 30) * 1000);
|
|
356
|
+
const url = `${BASE_URL}/v1/tasks/runs/${encodeURIComponent(runId)}/result?timeout=${RESULT_POLL_SERVER_TIMEOUT_S}`;
|
|
357
|
+
const controller = new AbortController();
|
|
358
|
+
const onExternalAbort = () => controller.abort();
|
|
359
|
+
if (externalSignal?.aborted)
|
|
360
|
+
controller.abort();
|
|
361
|
+
externalSignal?.addEventListener("abort", onExternalAbort, { once: true });
|
|
362
|
+
const timer = setTimer(() => controller.abort(), clientTimeoutMs);
|
|
363
|
+
try {
|
|
364
|
+
const response = await fetchFn(url, {
|
|
365
|
+
method: "GET",
|
|
366
|
+
headers: {
|
|
367
|
+
"x-api-key": apiKey,
|
|
368
|
+
"User-Agent": USER_AGENT,
|
|
369
|
+
},
|
|
370
|
+
signal: controller.signal,
|
|
371
|
+
});
|
|
372
|
+
// 408 — server long-poll timed out; the run is still active.
|
|
373
|
+
if (response.status === 408) {
|
|
374
|
+
await response.text().catch(() => { });
|
|
375
|
+
return { status: "running" };
|
|
376
|
+
}
|
|
377
|
+
// 404 — run failed or run_id not found (may have expired).
|
|
378
|
+
if (response.status === 404) {
|
|
379
|
+
await response.text().catch(() => { });
|
|
380
|
+
return { status: "not_found" };
|
|
381
|
+
}
|
|
382
|
+
if (!response.ok) {
|
|
383
|
+
throw mapStatusError(response.status, clientTimeoutMs);
|
|
384
|
+
}
|
|
385
|
+
const text = await response.text();
|
|
386
|
+
const parsed = JSON.parse(text);
|
|
387
|
+
return normalizeTaskRunResult(parsed);
|
|
388
|
+
}
|
|
389
|
+
catch (err) {
|
|
390
|
+
if (err instanceof AuthError ||
|
|
391
|
+
err instanceof ApiError ||
|
|
392
|
+
err instanceof QuotaError ||
|
|
393
|
+
err instanceof TimeoutError ||
|
|
394
|
+
err instanceof ValidationError) {
|
|
395
|
+
throw err;
|
|
396
|
+
}
|
|
397
|
+
if (err instanceof SyntaxError) {
|
|
398
|
+
throw new ApiError("Parallel AI returned a malformed JSON response", 500);
|
|
399
|
+
}
|
|
400
|
+
if (err instanceof Error && err.name === "AbortError") {
|
|
401
|
+
if (externalSignal?.aborted) {
|
|
402
|
+
throw new TimeoutError(0, "Research polling aborted");
|
|
403
|
+
}
|
|
404
|
+
throw new TimeoutError(clientTimeoutMs, TIMEOUT_HELP_TEXT);
|
|
405
|
+
}
|
|
406
|
+
throw new NetworkError(`Parallel AI task run retrieval failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
407
|
+
}
|
|
408
|
+
finally {
|
|
409
|
+
externalSignal?.removeEventListener("abort", onExternalAbort);
|
|
410
|
+
clearTimer(timer);
|
|
411
|
+
}
|
|
412
|
+
}
|
|
147
413
|
//# sourceMappingURL=client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/providers/parallel/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/providers/parallel/client.ts"],"names":[],"mappings":"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"}
|