From 58c9f47cd642a29a3daf5e6efcf75462639376ac Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Wed, 26 Nov 2025 00:03:53 +0000
Subject: [PATCH 01/15] feat(api): Update excerpt settings
---
.stats.yml | 4 +-
api.md | 3 +-
src/resources/beta/beta.ts | 24 +-
src/resources/beta/findall.ts | 479 ++------------------------
src/resources/beta/index.ts | 1 -
src/resources/beta/task-group.ts | 6 +-
src/resources/beta/task-run.ts | 19 +-
src/resources/shared.ts | 2 +-
src/resources/task-run.ts | 6 +-
tests/api-resources/beta/beta.test.ts | 4 +-
10 files changed, 66 insertions(+), 482 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index 49c5eaf..8098562 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 22
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/parallel-web%2Fparallel-sdk-70ca78f3dbacd1f8145c633b64c2d9eec9f390db6110ce98705427248a22f19f.yml
-openapi_spec_hash: 877617cbe6e7a48410632dbb57ff5488
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/parallel-web%2Fparallel-sdk-e6afa27fc86492ffa6ee5f929f2d1eb8166750c3a9652a393aede2ca467c49ef.yml
+openapi_spec_hash: 12e9b47405451f5286c199d7ee26c3cc
config_hash: 6a16116c579cf9a3739083c24b10534d
diff --git a/api.md b/api.md
index c1d5f41..c49902a 100644
--- a/api.md
+++ b/api.md
@@ -99,14 +99,13 @@ Types:
- FindallSchema
- FindallSchemaUpdatedEvent
- IngestInput
-- FindallRetrieveResponse
- FindallCancelResponse
- FindallEventsResponse
Methods:
- client.beta.findall.create({ ...params }) -> FindallRun
-- client.beta.findall.retrieve(findallID, { ...params }) -> FindallRetrieveResponse
+- client.beta.findall.retrieve(findallID, { ...params }) -> FindallRun
- client.beta.findall.cancel(findallID, { ...params }) -> unknown
- client.beta.findall.enrich(findallID, { ...params }) -> FindallSchema
- client.beta.findall.events(findallID, { ...params }) -> FindallEventsResponse
diff --git a/src/resources/beta/beta.ts b/src/resources/beta/beta.ts
index a6e7f43..8160620 100644
--- a/src/resources/beta/beta.ts
+++ b/src/resources/beta/beta.ts
@@ -18,7 +18,6 @@ import {
FindallIngestParams,
FindallResultParams,
FindallRetrieveParams,
- FindallRetrieveResponse,
FindallRun,
FindallRunInput,
FindallRunResult,
@@ -108,9 +107,17 @@ export interface ExcerptSettings {
/**
* Optional upper bound on the total number of characters to include per url.
* Excerpts may contain fewer characters than this limit to maximize relevance and
- * token efficiency.
+ * token efficiency, but will never contain fewer than 1000 characters per result.
*/
max_chars_per_result?: number | null;
+
+ /**
+ * Optional upper bound on the total number of characters to include across all
+ * urls. Results may contain fewer characters than this limit to maximize relevance
+ * and token efficiency, but will never contain fewer than 1000 characters per
+ * result.This overall limit applies in addition to max_chars_per_result.
+ */
+ max_chars_total?: number | null;
}
/**
@@ -288,6 +295,11 @@ export interface BetaExtractParams {
*/
urls: Array;
+ /**
+ * Header param: Optional header to specify the beta version(s) to enable.
+ */
+ betas: Array;
+
/**
* Body param: Include excerpts from each URL relevant to the search objective and
* queries. Note that if neither objective nor search_queries is provided, excerpts
@@ -317,11 +329,6 @@ export interface BetaExtractParams {
* search queries.
*/
search_queries?: Array | null;
-
- /**
- * Header param: Optional header to specify the beta version(s) to enable.
- */
- betas?: Array;
}
export namespace BetaExtractParams {
@@ -340,7 +347,7 @@ export namespace BetaExtractParams {
export interface BetaSearchParams {
/**
- * Body param: Optional settings for returning relevant excerpts.
+ * Body param: Optional settings to configure excerpt generation.
*/
excerpts?: ExcerptSettings;
@@ -456,7 +463,6 @@ export declare namespace Beta {
type FindallSchema as FindallSchema,
type FindallSchemaUpdatedEvent as FindallSchemaUpdatedEvent,
type IngestInput as IngestInput,
- type FindallRetrieveResponse as FindallRetrieveResponse,
type FindallCancelResponse as FindallCancelResponse,
type FindallEventsResponse as FindallEventsResponse,
type FindallCreateParams as FindallCreateParams,
diff --git a/src/resources/beta/findall.ts b/src/resources/beta/findall.ts
index 2c606ce..2943a46 100644
--- a/src/resources/beta/findall.ts
+++ b/src/resources/beta/findall.ts
@@ -43,7 +43,7 @@ export class Findall extends APIResource {
findallID: string,
params: FindallRetrieveParams | null | undefined = {},
options?: RequestOptions,
- ): APIPromise {
+ ): APIPromise {
const { betas } = params ?? {};
return this._client.get(path`/v1beta/findall/runs/${findallID}`, {
...options,
@@ -197,10 +197,7 @@ export class Findall extends APIResource {
*/
export interface FindallCandidateMatchStatusEvent {
/**
- * Candidate for a find all run that may end up as a match.
- *
- * Contains all the candidate's metadata and the output of the match conditions. A
- * candidate is a match if all match conditions are satisfied.
+ * The candidate whose match status has been updated.
*/
data: FindallCandidateMatchStatusEvent.Data;
@@ -229,10 +226,7 @@ export interface FindallCandidateMatchStatusEvent {
export namespace FindallCandidateMatchStatusEvent {
/**
- * Candidate for a find all run that may end up as a match.
- *
- * Contains all the candidate's metadata and the output of the match conditions. A
- * candidate is a match if all match conditions are satisfied.
+ * The candidate whose match status has been updated.
*/
export interface Data {
/**
@@ -280,7 +274,7 @@ export namespace FindallCandidateMatchStatusEvent {
*/
export interface FindallEnrichInput {
/**
- * JSON schema for a task input or output.
+ * JSON schema for the enrichment output schema for the FindAll run.
*/
output_schema: TaskRunAPI.JsonSchema;
@@ -322,7 +316,7 @@ export interface FindallRun {
generator: 'base' | 'core' | 'pro' | 'preview';
/**
- * Status object for FindAll run.
+ * Status object for the FindAll run.
*/
status: FindallRun.Status;
@@ -345,7 +339,7 @@ export interface FindallRun {
export namespace FindallRun {
/**
- * Status object for FindAll run.
+ * Status object for the FindAll run.
*/
export interface Status {
/**
@@ -354,7 +348,7 @@ export namespace FindallRun {
is_active: boolean;
/**
- * Metrics object for FindAll run.
+ * Candidate metrics for the FindAll run.
*/
metrics: Status.Metrics;
@@ -366,12 +360,19 @@ export namespace FindallRun {
/**
* Reason for termination when FindAll run is in terminal status.
*/
- termination_reason?: string | null;
+ termination_reason?:
+ | 'low_match_rate'
+ | 'match_limit_met'
+ | 'candidates_exhausted'
+ | 'user_cancelled'
+ | 'error_occurred'
+ | 'timeout'
+ | null;
}
export namespace Status {
/**
- * Metrics object for FindAll run.
+ * Candidate metrics for the FindAll run.
*/
export interface Metrics {
/**
@@ -397,7 +398,7 @@ export interface FindallRunInput {
entity_type: string;
/**
- * Generator for the FindAll run.
+ * Generator for the FindAll run. One of base, core, pro, preview.
*/
generator: 'base' | 'core' | 'pro' | 'preview';
@@ -407,7 +408,8 @@ export interface FindallRunInput {
match_conditions: Array;
/**
- * Maximum number of matches to find for this FindAll run.
+ * Maximum number of matches to find for this FindAll run. Must be between 5 and
+ * 1000 (inclusive).
*/
match_limit: number;
@@ -480,7 +482,7 @@ export interface FindallRunResult {
candidates: Array;
/**
- * FindAll run object with status and metadata.
+ * FindAll run object.
*/
run: FindallRun;
@@ -544,7 +546,7 @@ export namespace FindallRunResult {
*/
export interface FindallRunStatusEvent {
/**
- * FindAll run object with status and metadata.
+ * Updated FindAll run information.
*/
data: FindallRun;
@@ -623,7 +625,7 @@ export namespace FindallSchema {
*/
export interface FindallSchemaUpdatedEvent {
/**
- * Response model for FindAll ingest.
+ * Updated FindAll schema.
*/
data: FindallSchema;
@@ -653,435 +655,6 @@ export interface IngestInput {
objective: string;
}
-/**
- * FindAll run object with status and metadata.
- */
-export type FindallRetrieveResponse = FindallRun | FindallRetrieveResponse.FindAllPollResponse;
-
-export namespace FindallRetrieveResponse {
- /**
- * Response format for polling a FindAll run status.
- */
- export interface FindAllPollResponse {
- /**
- * Billing metrics for the run.
- */
- billing_metrics: FindAllPollResponse.BillingMetrics;
-
- /**
- * List of candidates being processed
- */
- candidates: Array;
-
- /**
- * List of enrichments derived from the query
- */
- enrichments: Array;
-
- /**
- * List of filters derived from the query
- */
- filters: Array;
-
- /**
- * True if the run is still processing candidates
- */
- is_active: boolean;
-
- /**
- * Max results processed for the run
- */
- max_results: number;
-
- /**
- * Query for the run
- */
- query: string;
-
- /**
- * List of entities which are fully processed
- */
- results: Array;
-
- /**
- * View model for the run.
- */
- spec: FindAllPollResponse.Spec;
-
- /**
- * Derived overall status (e.g., 'running', 'completed', 'failed')
- */
- status: string;
-
- /**
- * List of processing steps undertaken with their status
- */
- steps: Array;
-
- /**
- * Title of the run
- */
- title: string;
-
- /**
- * True if enrichments are still being processed
- */
- are_enrichments_active?: boolean;
-
- /**
- * Timestamp of the request
- */
- created_at?: string | null;
-
- /**
- * List of recommended enrichments that could be added
- */
- enrichment_recommendations?: Array;
-
- /**
- * Timestamp of the last status update
- */
- modified_at?: string | null;
-
- /**
- * Number of web pages considered for this entity
- */
- pages_considered?: number | null;
-
- /**
- * Number of web pages read for this entity
- */
- pages_read?: number | null;
- }
-
- export namespace FindAllPollResponse {
- /**
- * Billing metrics for the run.
- */
- export interface BillingMetrics {
- /**
- * Number of enrichment cells processed
- */
- enrichment_cells: number;
-
- /**
- * Number of rows processed
- */
- rows_processed: number;
-
- cost_mode?: 'lite' | 'base' | 'pro' | 'preview';
- }
-
- /**
- * Simplified entity model for candidates.
- */
- export interface Candidate {
- /**
- * Unique entity identifier
- */
- entity_id: string;
-
- /**
- * Entity name
- */
- name: string;
- }
-
- /**
- * Column model for filters and enrichments.
- */
- export interface Enrichment {
- /**
- * Human-readable description of the column
- */
- description: string;
-
- /**
- * Column identifier
- */
- name: string;
-
- /**
- * Column type ('enrichment' or 'filter')
- */
- type: string;
-
- /**
- * Status of the column ('running', 'done', 'failed')
- */
- status?: string | null;
- }
-
- /**
- * Column model for filters and enrichments.
- */
- export interface Filter {
- /**
- * Human-readable description of the column
- */
- description: string;
-
- /**
- * Column identifier
- */
- name: string;
-
- /**
- * Column type ('enrichment' or 'filter')
- */
- type: string;
-
- /**
- * Status of the column ('running', 'done', 'failed')
- */
- status?: string | null;
- }
-
- /**
- * Entity model for results and candidates.
- */
- export interface Result {
- /**
- * Unique entity identifier
- */
- entity_id: string;
-
- /**
- * Entity name
- */
- name: string;
-
- /**
- * Entity description if available
- */
- description?: string | null;
-
- /**
- * List of enrichment results
- */
- enrichment_results?: Array;
-
- /**
- * List of filter results
- */
- filter_results?: Array;
-
- /**
- * Confidence score (positive real number)
- */
- score?: number | null;
-
- /**
- * Entity URL if available
- */
- url?: string | null;
- }
-
- export namespace Result {
- /**
- * Result model for filter and enrichment results.
- */
- export interface EnrichmentResult {
- /**
- * Name of column
- */
- key: string;
-
- /**
- * Result of column
- */
- value: string;
-
- /**
- * Space separated list of citation urls
- */
- citations?: string | null;
-
- /**
- * Confidence score (e.g. 'high', 'medium', 'low')
- */
- confidence?: string | null;
-
- /**
- * List of enhanced citations with title and excerpts
- */
- enhanced_citations?: Array;
-
- /**
- * Reasoning behind the value
- */
- reasoning?: string | null;
- }
-
- export namespace EnrichmentResult {
- /**
- * Enhanced citation model with title, excerpts, and URL for UI.
- */
- export interface EnhancedCitation {
- /**
- * Citation URL
- */
- url: string;
-
- /**
- * List of relevant excerpts from the cited page
- */
- excerpts?: Array;
-
- /**
- * Title of the cited page
- */
- title?: string | null;
- }
- }
-
- /**
- * Result model for filter and enrichment results.
- */
- export interface FilterResult {
- /**
- * Name of column
- */
- key: string;
-
- /**
- * Result of column
- */
- value: string;
-
- /**
- * Space separated list of citation urls
- */
- citations?: string | null;
-
- /**
- * Confidence score (e.g. 'high', 'medium', 'low')
- */
- confidence?: string | null;
-
- /**
- * List of enhanced citations with title and excerpts
- */
- enhanced_citations?: Array;
-
- /**
- * Reasoning behind the value
- */
- reasoning?: string | null;
- }
-
- export namespace FilterResult {
- /**
- * Enhanced citation model with title, excerpts, and URL for UI.
- */
- export interface EnhancedCitation {
- /**
- * Citation URL
- */
- url: string;
-
- /**
- * List of relevant excerpts from the cited page
- */
- excerpts?: Array;
-
- /**
- * Title of the cited page
- */
- title?: string | null;
- }
- }
- }
-
- /**
- * View model for the run.
- */
- export interface Spec {
- /**
- * List of columns in the view
- */
- columns: Array;
-
- /**
- * Name of the view
- */
- name: string;
- }
-
- export namespace Spec {
- /**
- * Column model for filters and enrichments.
- */
- export interface Column {
- /**
- * Human-readable description of the column
- */
- description: string;
-
- /**
- * Column identifier
- */
- name: string;
-
- /**
- * Column type ('enrichment' or 'filter')
- */
- type: string;
-
- /**
- * Status of the column ('running', 'done', 'failed')
- */
- status?: string | null;
- }
- }
-
- /**
- * Step model for tracking progress of FindAll operations.
- */
- export interface Step {
- /**
- * Human-readable description of the step
- */
- description: string;
-
- /**
- * Step identifier
- */
- name: string;
-
- /**
- * Current status of the step
- */
- status: string;
- }
-
- /**
- * Enrichment recommendation model.
- */
- export interface EnrichmentRecommendation {
- /**
- * Recommended column name
- */
- column_name: string;
-
- /**
- * Description of the recommended enrichment
- */
- description: string;
-
- /**
- * Run ID that generated this recommendation
- */
- recommendation_run_id: string;
-
- /**
- * Task ID that generated this recommendation
- */
- recommendation_task_id: string;
- }
- }
-}
-
export type FindallCancelResponse = unknown;
/**
@@ -1100,7 +673,7 @@ export interface FindallCreateParams {
entity_type: string;
/**
- * Body param: Generator for the FindAll run.
+ * Body param: Generator for the FindAll run. One of base, core, pro, preview.
*/
generator: 'base' | 'core' | 'pro' | 'preview';
@@ -1110,7 +683,8 @@ export interface FindallCreateParams {
match_conditions: Array;
/**
- * Body param: Maximum number of matches to find for this FindAll run.
+ * Body param: Maximum number of matches to find for this FindAll run. Must be
+ * between 5 and 1000 (inclusive).
*/
match_limit: number;
@@ -1190,7 +764,7 @@ export interface FindallCancelParams {
export interface FindallEnrichParams {
/**
- * Body param: JSON schema for a task input or output.
+ * Body param: JSON schema for the enrichment output schema for the FindAll run.
*/
output_schema: TaskRunAPI.JsonSchema;
@@ -1279,7 +853,6 @@ export declare namespace Findall {
type FindallSchema as FindallSchema,
type FindallSchemaUpdatedEvent as FindallSchemaUpdatedEvent,
type IngestInput as IngestInput,
- type FindallRetrieveResponse as FindallRetrieveResponse,
type FindallCancelResponse as FindallCancelResponse,
type FindallEventsResponse as FindallEventsResponse,
type FindallCreateParams as FindallCreateParams,
diff --git a/src/resources/beta/index.ts b/src/resources/beta/index.ts
index af91171..454fffc 100644
--- a/src/resources/beta/index.ts
+++ b/src/resources/beta/index.ts
@@ -13,7 +13,6 @@ export {
type FindallSchema,
type FindallSchemaUpdatedEvent,
type IngestInput,
- type FindallRetrieveResponse,
type FindallCancelResponse,
type FindallEventsResponse,
type FindallCreateParams,
diff --git a/src/resources/beta/task-group.ts b/src/resources/beta/task-group.ts
index 5139ac1..f732397 100644
--- a/src/resources/beta/task-group.ts
+++ b/src/resources/beta/task-group.ts
@@ -112,7 +112,7 @@ export interface TaskGroup {
created_at: string | null;
/**
- * Status of a task group.
+ * Status of the group.
*/
status: TaskGroupStatus;
@@ -151,7 +151,7 @@ export interface TaskGroupRunResponse {
run_ids: Array;
/**
- * Status of a task group.
+ * Status of the group.
*/
status: TaskGroupStatus;
}
@@ -206,7 +206,7 @@ export namespace TaskGroupEventsResponse {
event_id: string;
/**
- * Status of a task group.
+ * Task group status object.
*/
status: TaskGroupAPI.TaskGroupStatus;
diff --git a/src/resources/beta/task-run.ts b/src/resources/beta/task-run.ts
index 5999c73..a40fd85 100644
--- a/src/resources/beta/task-run.ts
+++ b/src/resources/beta/task-run.ts
@@ -142,7 +142,7 @@ export interface BetaTaskRunResult {
output: BetaTaskRunResult.BetaTaskRunTextOutput | BetaTaskRunResult.BetaTaskRunJsonOutput;
/**
- * Status of a task run.
+ * Beta task run object with status 'completed'.
*/
run: TaskRunAPI.TaskRun;
}
@@ -153,7 +153,9 @@ export namespace BetaTaskRunResult {
*/
export interface BetaTaskRunTextOutput {
/**
- * Basis for the output.
+ * Basis for the output. To include per-list-element basis entries, send the
+ * `parallel-beta` header with the value `field-basis-2025-11-25` when creating the
+ * run.
*/
basis: Array;
@@ -184,7 +186,9 @@ export namespace BetaTaskRunResult {
*/
export interface BetaTaskRunJsonOutput {
/**
- * Basis for the output.
+ * Basis for the output. To include per-list-element basis entries, send the
+ * `parallel-beta` header with the value `field-basis-2025-11-25` when creating the
+ * run.
*/
basis: Array;
@@ -223,7 +227,7 @@ export namespace BetaTaskRunResult {
*/
export interface ErrorEvent {
/**
- * An error message.
+ * Error.
*/
error: Shared.ErrorObject;
@@ -307,6 +311,7 @@ export type ParallelBeta =
| 'webhook-2025-08-12'
| 'findall-2025-09-15'
| 'search-extract-2025-10-10'
+ | 'field-basis-2025-11-25'
| (string & {});
/**
@@ -321,7 +326,7 @@ export interface TaskRunEvent {
event_id: string | null;
/**
- * Status of a task run.
+ * Task run object.
*/
run: TaskRunAPI.TaskRun;
@@ -377,7 +382,7 @@ export namespace TaskRunEventsResponse {
progress_meter: number;
/**
- * Source stats for a task run.
+ * Source stats describing progress so far.
*/
source_stats: TaskRunProgressStatsEvent.SourceStats;
@@ -389,7 +394,7 @@ export namespace TaskRunEventsResponse {
export namespace TaskRunProgressStatsEvent {
/**
- * Source stats for a task run.
+ * Source stats describing progress so far.
*/
export interface SourceStats {
/**
diff --git a/src/resources/shared.ts b/src/resources/shared.ts
index 2627a8e..36b4366 100644
--- a/src/resources/shared.ts
+++ b/src/resources/shared.ts
@@ -25,7 +25,7 @@ export interface ErrorObject {
*/
export interface ErrorResponse {
/**
- * An error message.
+ * Error.
*/
error: ErrorObject;
diff --git a/src/resources/task-run.ts b/src/resources/task-run.ts
index 3a9764a..4bd7045 100644
--- a/src/resources/task-run.ts
+++ b/src/resources/task-run.ts
@@ -210,7 +210,9 @@ export interface TaskRun {
*/
export interface TaskRunJsonOutput {
/**
- * Basis for each top-level field in the JSON output.
+ * Basis for each top-level field in the JSON output. Per-list-element basis
+ * entries are available only when the `parallel-beta: field-basis-2025-11-25`
+ * header is supplied.
*/
basis: Array;
@@ -257,7 +259,7 @@ export interface TaskRunResult {
output: TaskRunTextOutput | TaskRunJsonOutput;
/**
- * Status of a task run.
+ * Task run object with status 'completed'.
*/
run: TaskRun;
}
diff --git a/tests/api-resources/beta/beta.test.ts b/tests/api-resources/beta/beta.test.ts
index 3732630..cf3dc9e 100644
--- a/tests/api-resources/beta/beta.test.ts
+++ b/tests/api-resources/beta/beta.test.ts
@@ -9,7 +9,7 @@ const client = new Parallel({
describe('resource beta', () => {
test('extract: only required params', async () => {
- const responsePromise = client.beta.extract({ urls: ['string'] });
+ const responsePromise = client.beta.extract({ urls: ['string'], betas: ['mcp-server-2025-07-17'] });
const rawResponse = await responsePromise.asResponse();
expect(rawResponse).toBeInstanceOf(Response);
const response = await responsePromise;
@@ -22,12 +22,12 @@ describe('resource beta', () => {
test('extract: required and optional params', async () => {
const response = await client.beta.extract({
urls: ['string'],
+ betas: ['mcp-server-2025-07-17'],
excerpts: true,
fetch_policy: { disable_cache_fallback: true, max_age_seconds: 86400, timeout_seconds: 60 },
full_content: true,
objective: 'objective',
search_queries: ['string'],
- betas: ['mcp-server-2025-07-17'],
});
});
From 2d7f64b25314670de513eda5cb70d2c3b70300fd Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Tue, 2 Dec 2025 03:39:04 +0000
Subject: [PATCH 02/15] chore(client): fix logger property type
---
src/client.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/client.ts b/src/client.ts
index 4aa25c1..af02f8e 100644
--- a/src/client.ts
+++ b/src/client.ts
@@ -129,7 +129,7 @@ export class Parallel {
baseURL: string;
maxRetries: number;
timeout: number;
- logger: Logger | undefined;
+ logger: Logger;
logLevel: LogLevel | undefined;
fetchOptions: MergedRequestInit | undefined;
From e6780b01053f2ef5a09dd544b32223f1cfc2db9b Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Wed, 3 Dec 2025 03:35:37 +0000
Subject: [PATCH 03/15] chore(internal): upgrade eslint
---
package.json | 2 +-
yarn.lock | 150 ++++++++++++++++++++++++++++++---------------------
2 files changed, 89 insertions(+), 63 deletions(-)
diff --git a/package.json b/package.json
index 7ac9bf4..1ec0880 100644
--- a/package.json
+++ b/package.json
@@ -35,7 +35,7 @@
"@types/node": "^20.17.6",
"@typescript-eslint/eslint-plugin": "8.31.1",
"@typescript-eslint/parser": "8.31.1",
- "eslint": "^9.20.1",
+ "eslint": "^9.39.1",
"eslint-plugin-prettier": "^5.4.1",
"eslint-plugin-unused-imports": "^4.1.4",
"iconv-lite": "^0.6.3",
diff --git a/yarn.lock b/yarn.lock
index 8311caf..5f56a20 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -350,45 +350,52 @@
dependencies:
"@cspotcode/source-map-consumer" "0.8.0"
-"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0":
+"@eslint-community/eslint-utils@^4.4.0":
version "4.4.0"
resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59"
integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==
dependencies:
eslint-visitor-keys "^3.3.0"
+"@eslint-community/eslint-utils@^4.8.0":
+ version "4.9.0"
+ resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz#7308df158e064f0dd8b8fdb58aa14fa2a7f913b3"
+ integrity sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==
+ dependencies:
+ eslint-visitor-keys "^3.4.3"
+
"@eslint-community/regexpp@^4.10.0", "@eslint-community/regexpp@^4.12.1":
version "4.12.1"
resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz#cfc6cffe39df390a3841cde2abccf92eaa7ae0e0"
integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==
-"@eslint/config-array@^0.19.0":
- version "0.19.2"
- resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.19.2.tgz#3060b809e111abfc97adb0bb1172778b90cb46aa"
- integrity sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==
+"@eslint/config-array@^0.21.1":
+ version "0.21.1"
+ resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.21.1.tgz#7d1b0060fea407f8301e932492ba8c18aff29713"
+ integrity sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==
dependencies:
- "@eslint/object-schema" "^2.1.6"
+ "@eslint/object-schema" "^2.1.7"
debug "^4.3.1"
minimatch "^3.1.2"
-"@eslint/core@^0.10.0":
- version "0.10.0"
- resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.10.0.tgz#23727063c21b335f752dbb3a16450f6f9cbc9091"
- integrity sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==
+"@eslint/config-helpers@^0.4.2":
+ version "0.4.2"
+ resolved "https://registry.yarnpkg.com/@eslint/config-helpers/-/config-helpers-0.4.2.tgz#1bd006ceeb7e2e55b2b773ab318d300e1a66aeda"
+ integrity sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==
dependencies:
- "@types/json-schema" "^7.0.15"
+ "@eslint/core" "^0.17.0"
-"@eslint/core@^0.11.0":
- version "0.11.0"
- resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.11.0.tgz#7a9226e850922e42cbd2ba71361eacbe74352a12"
- integrity sha512-DWUB2pksgNEb6Bz2fggIy1wh6fGgZP4Xyy/Mt0QZPiloKKXerbqq9D3SBQTlCRYOrcRPu4vuz+CGjwdfqxnoWA==
+"@eslint/core@^0.17.0":
+ version "0.17.0"
+ resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.17.0.tgz#77225820413d9617509da9342190a2019e78761c"
+ integrity sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==
dependencies:
"@types/json-schema" "^7.0.15"
-"@eslint/eslintrc@^3.2.0":
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.2.0.tgz#57470ac4e2e283a6bf76044d63281196e370542c"
- integrity sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==
+"@eslint/eslintrc@^3.3.1":
+ version "3.3.3"
+ resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.3.3.tgz#26393a0806501b5e2b6a43aa588a4d8df67880ac"
+ integrity sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==
dependencies:
ajv "^6.12.4"
debug "^4.3.2"
@@ -396,26 +403,26 @@
globals "^14.0.0"
ignore "^5.2.0"
import-fresh "^3.2.1"
- js-yaml "^4.1.0"
+ js-yaml "^4.1.1"
minimatch "^3.1.2"
strip-json-comments "^3.1.1"
-"@eslint/js@9.20.0":
- version "9.20.0"
- resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.20.0.tgz#7421bcbe74889fcd65d1be59f00130c289856eb4"
- integrity sha512-iZA07H9io9Wn836aVTytRaNqh00Sad+EamwOVJT12GTLw1VGMFV/4JaME+JjLtr9fiGaoWgYnS54wrfWsSs4oQ==
+"@eslint/js@9.39.1":
+ version "9.39.1"
+ resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.39.1.tgz#0dd59c3a9f40e3f1882975c321470969243e0164"
+ integrity sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw==
-"@eslint/object-schema@^2.1.6":
- version "2.1.6"
- resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.6.tgz#58369ab5b5b3ca117880c0f6c0b0f32f6950f24f"
- integrity sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==
+"@eslint/object-schema@^2.1.7":
+ version "2.1.7"
+ resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.7.tgz#6e2126a1347e86a4dedf8706ec67ff8e107ebbad"
+ integrity sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==
-"@eslint/plugin-kit@^0.2.5":
- version "0.2.5"
- resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.2.5.tgz#ee07372035539e7847ef834e3f5e7b79f09e3a81"
- integrity sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==
+"@eslint/plugin-kit@^0.4.1":
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz#9779e3fd9b7ee33571a57435cf4335a1794a6cb2"
+ integrity sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==
dependencies:
- "@eslint/core" "^0.10.0"
+ "@eslint/core" "^0.17.0"
levn "^0.4.1"
"@humanfs/core@^0.19.1":
@@ -441,10 +448,10 @@
resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.3.1.tgz#c72a5c76a9fbaf3488e231b13dc52c0da7bab42a"
integrity sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==
-"@humanwhocodes/retry@^0.4.1":
- version "0.4.1"
- resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.4.1.tgz#9a96ce501bc62df46c4031fbd970e3cc6b10f07b"
- integrity sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==
+"@humanwhocodes/retry@^0.4.2":
+ version "0.4.3"
+ resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.4.3.tgz#c2b9d2e374ee62c586d3adbea87199b1d7a7a6ba"
+ integrity sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==
"@istanbuljs/load-nyc-config@^1.0.0":
version "1.1.0"
@@ -1057,6 +1064,11 @@ acorn@^8.14.0:
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0"
integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==
+acorn@^8.15.0:
+ version "8.15.0"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.15.0.tgz#a360898bc415edaac46c8241f6383975b930b816"
+ integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==
+
acorn@^8.4.1:
version "8.7.0"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf"
@@ -1560,15 +1572,15 @@ eslint-plugin-unused-imports@^4.1.4:
resolved "https://registry.yarnpkg.com/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-4.1.4.tgz#62ddc7446ccbf9aa7b6f1f0b00a980423cda2738"
integrity sha512-YptD6IzQjDardkl0POxnnRBhU1OEePMV0nd6siHaRBbd+lyh6NAhFEobiznKU7kTsSsDeSD62Pe7kAM1b7dAZQ==
-eslint-scope@^8.2.0:
- version "8.2.0"
- resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.2.0.tgz#377aa6f1cb5dc7592cfd0b7f892fd0cf352ce442"
- integrity sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==
+eslint-scope@^8.4.0:
+ version "8.4.0"
+ resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.4.0.tgz#88e646a207fad61436ffa39eb505147200655c82"
+ integrity sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==
dependencies:
esrecurse "^4.3.0"
estraverse "^5.2.0"
-eslint-visitor-keys@^3.3.0:
+eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.3:
version "3.4.3"
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800"
integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
@@ -1578,31 +1590,36 @@ eslint-visitor-keys@^4.2.0:
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz#687bacb2af884fcdda8a6e7d65c606f46a14cd45"
integrity sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==
-eslint@^9.20.1:
- version "9.20.1"
- resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.20.1.tgz#923924c078f5226832449bac86662dd7e53c91d6"
- integrity sha512-m1mM33o6dBUjxl2qb6wv6nGNwCAsns1eKtaQ4l/NPHeTvhiUPbtdfMyktxN4B3fgHIgsYh1VT3V9txblpQHq+g==
+eslint-visitor-keys@^4.2.1:
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz#4cfea60fe7dd0ad8e816e1ed026c1d5251b512c1"
+ integrity sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==
+
+eslint@^9.39.1:
+ version "9.39.1"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.39.1.tgz#be8bf7c6de77dcc4252b5a8dcb31c2efff74a6e5"
+ integrity sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==
dependencies:
- "@eslint-community/eslint-utils" "^4.2.0"
+ "@eslint-community/eslint-utils" "^4.8.0"
"@eslint-community/regexpp" "^4.12.1"
- "@eslint/config-array" "^0.19.0"
- "@eslint/core" "^0.11.0"
- "@eslint/eslintrc" "^3.2.0"
- "@eslint/js" "9.20.0"
- "@eslint/plugin-kit" "^0.2.5"
+ "@eslint/config-array" "^0.21.1"
+ "@eslint/config-helpers" "^0.4.2"
+ "@eslint/core" "^0.17.0"
+ "@eslint/eslintrc" "^3.3.1"
+ "@eslint/js" "9.39.1"
+ "@eslint/plugin-kit" "^0.4.1"
"@humanfs/node" "^0.16.6"
"@humanwhocodes/module-importer" "^1.0.1"
- "@humanwhocodes/retry" "^0.4.1"
+ "@humanwhocodes/retry" "^0.4.2"
"@types/estree" "^1.0.6"
- "@types/json-schema" "^7.0.15"
ajv "^6.12.4"
chalk "^4.0.0"
cross-spawn "^7.0.6"
debug "^4.3.2"
escape-string-regexp "^4.0.0"
- eslint-scope "^8.2.0"
- eslint-visitor-keys "^4.2.0"
- espree "^10.3.0"
+ eslint-scope "^8.4.0"
+ eslint-visitor-keys "^4.2.1"
+ espree "^10.4.0"
esquery "^1.5.0"
esutils "^2.0.2"
fast-deep-equal "^3.1.3"
@@ -1618,7 +1635,7 @@ eslint@^9.20.1:
natural-compare "^1.4.0"
optionator "^0.9.3"
-espree@^10.0.1, espree@^10.3.0:
+espree@^10.0.1:
version "10.3.0"
resolved "https://registry.yarnpkg.com/espree/-/espree-10.3.0.tgz#29267cf5b0cb98735b65e64ba07e0ed49d1eed8a"
integrity sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==
@@ -1627,6 +1644,15 @@ espree@^10.0.1, espree@^10.3.0:
acorn-jsx "^5.3.2"
eslint-visitor-keys "^4.2.0"
+espree@^10.4.0:
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/espree/-/espree-10.4.0.tgz#d54f4949d4629005a1fa168d937c3ff1f7e2a837"
+ integrity sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==
+ dependencies:
+ acorn "^8.15.0"
+ acorn-jsx "^5.3.2"
+ eslint-visitor-keys "^4.2.1"
+
esprima@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
@@ -2440,10 +2466,10 @@ js-yaml@^3.13.1:
argparse "^1.0.7"
esprima "^4.0.0"
-js-yaml@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
- integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
+js-yaml@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.1.tgz#854c292467705b699476e1a2decc0c8a3458806b"
+ integrity sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==
dependencies:
argparse "^2.0.1"
From d6854e660599668a38c679df3c60f311b1569a4a Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Sat, 6 Dec 2025 03:27:11 +0000
Subject: [PATCH 04/15] fix(mcp): return correct lines on typescript errors
---
.devcontainer/Dockerfile | 23 +++++++++++++++++++++++
.eslintrc.js | 10 ++++++++++
jest.setup.ts | 0
src/internal/polyfill/file.node.d.ts | 14 ++++++++++++++
src/internal/polyfill/file.node.mjs | 9 +++++++++
tests/responses.test.ts | 24 ++++++++++++++++++++++++
6 files changed, 80 insertions(+)
create mode 100644 .devcontainer/Dockerfile
create mode 100644 .eslintrc.js
create mode 100644 jest.setup.ts
create mode 100644 src/internal/polyfill/file.node.d.ts
create mode 100644 src/internal/polyfill/file.node.mjs
create mode 100644 tests/responses.test.ts
diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile
new file mode 100644
index 0000000..8ea34be
--- /dev/null
+++ b/.devcontainer/Dockerfile
@@ -0,0 +1,23 @@
+# syntax=docker/dockerfile:1
+FROM debian:bookworm-slim AS stainless
+
+RUN apt-get update && apt-get install -y \
+ nodejs \
+ npm \
+ yarnpkg \
+ && apt-get clean autoclean
+
+# Ensure UTF-8 encoding
+ENV LANG=C.UTF-8
+ENV LC_ALL=C.UTF-8
+
+# Yarn
+RUN ln -sf /usr/bin/yarnpkg /usr/bin/yarn
+
+WORKDIR /workspace
+
+COPY package.json yarn.lock /workspace/
+
+RUN yarn install
+
+COPY . /workspace
diff --git a/.eslintrc.js b/.eslintrc.js
new file mode 100644
index 0000000..60f0e7a
--- /dev/null
+++ b/.eslintrc.js
@@ -0,0 +1,10 @@
+module.exports = {
+ parser: '@typescript-eslint/parser',
+ plugins: ['@typescript-eslint', 'unused-imports', 'prettier'],
+ rules: {
+ 'no-unused-vars': 'off',
+ 'prettier/prettier': 'error',
+ 'unused-imports/no-unused-imports': 'error',
+ },
+ root: true,
+};
diff --git a/jest.setup.ts b/jest.setup.ts
new file mode 100644
index 0000000..e69de29
diff --git a/src/internal/polyfill/file.node.d.ts b/src/internal/polyfill/file.node.d.ts
new file mode 100644
index 0000000..c95276d
--- /dev/null
+++ b/src/internal/polyfill/file.node.d.ts
@@ -0,0 +1,14 @@
+/**
+ * This file polyfills the global `File` object for you if it's not already defined
+ * when running on Node.js
+ *
+ * This is only needed on Node.js v18 & v19. Newer versions already define `File`
+ * as a global.
+ */
+
+// @ts-ignore
+type nodeBuffer = typeof import('node:buffer');
+declare const File: typeof globalThis extends { File: unknown } ? (typeof globalThis)['File']
+: nodeBuffer extends { File: unknown } ? nodeBuffer['File']
+: any;
+export {};
diff --git a/src/internal/polyfill/file.node.mjs b/src/internal/polyfill/file.node.mjs
new file mode 100644
index 0000000..520dcb8
--- /dev/null
+++ b/src/internal/polyfill/file.node.mjs
@@ -0,0 +1,9 @@
+/**
+ * This file polyfills the global `File` object for you if it's not already defined
+ * when running on Node.js
+ *
+ * This is only needed on Node.js v18 & v19. Newer versions already define `File`
+ * as a global.
+ */
+
+import './file.node.js';
diff --git a/tests/responses.test.ts b/tests/responses.test.ts
new file mode 100644
index 0000000..3d7a426
--- /dev/null
+++ b/tests/responses.test.ts
@@ -0,0 +1,24 @@
+import { createResponseHeaders } from 'parallel-web/internal/headers';
+
+describe('response parsing', () => {
+ // TODO: test unicode characters
+ test('headers are case agnostic', async () => {
+ const headers = createResponseHeaders(new Headers({ 'Content-Type': 'foo', Accept: 'text/plain' }));
+ expect(headers['content-type']).toEqual('foo');
+ expect(headers['Content-type']).toEqual('foo');
+ expect(headers['Content-Type']).toEqual('foo');
+ expect(headers['accept']).toEqual('text/plain');
+ expect(headers['Accept']).toEqual('text/plain');
+ expect(headers['Hello-World']).toBeUndefined();
+ });
+
+ test('duplicate headers are concatenated', () => {
+ const headers = createResponseHeaders(
+ new Headers([
+ ['Content-Type', 'text/xml'],
+ ['Content-Type', 'application/json'],
+ ]),
+ );
+ expect(headers['content-type']).toBe('text/xml, application/json');
+ });
+});
From 5ae66ee9239566c97fe41dd591acf8f58a3252bb Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Sat, 6 Dec 2025 03:27:51 +0000
Subject: [PATCH 05/15] chore(internal): codegen related update
---
.devcontainer/Dockerfile | 23 -----------------------
.eslintrc.js | 10 ----------
jest.setup.ts | 0
src/internal/polyfill/file.node.d.ts | 14 --------------
src/internal/polyfill/file.node.mjs | 9 ---------
tests/responses.test.ts | 24 ------------------------
6 files changed, 80 deletions(-)
delete mode 100644 .devcontainer/Dockerfile
delete mode 100644 .eslintrc.js
delete mode 100644 jest.setup.ts
delete mode 100644 src/internal/polyfill/file.node.d.ts
delete mode 100644 src/internal/polyfill/file.node.mjs
delete mode 100644 tests/responses.test.ts
diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile
deleted file mode 100644
index 8ea34be..0000000
--- a/.devcontainer/Dockerfile
+++ /dev/null
@@ -1,23 +0,0 @@
-# syntax=docker/dockerfile:1
-FROM debian:bookworm-slim AS stainless
-
-RUN apt-get update && apt-get install -y \
- nodejs \
- npm \
- yarnpkg \
- && apt-get clean autoclean
-
-# Ensure UTF-8 encoding
-ENV LANG=C.UTF-8
-ENV LC_ALL=C.UTF-8
-
-# Yarn
-RUN ln -sf /usr/bin/yarnpkg /usr/bin/yarn
-
-WORKDIR /workspace
-
-COPY package.json yarn.lock /workspace/
-
-RUN yarn install
-
-COPY . /workspace
diff --git a/.eslintrc.js b/.eslintrc.js
deleted file mode 100644
index 60f0e7a..0000000
--- a/.eslintrc.js
+++ /dev/null
@@ -1,10 +0,0 @@
-module.exports = {
- parser: '@typescript-eslint/parser',
- plugins: ['@typescript-eslint', 'unused-imports', 'prettier'],
- rules: {
- 'no-unused-vars': 'off',
- 'prettier/prettier': 'error',
- 'unused-imports/no-unused-imports': 'error',
- },
- root: true,
-};
diff --git a/jest.setup.ts b/jest.setup.ts
deleted file mode 100644
index e69de29..0000000
diff --git a/src/internal/polyfill/file.node.d.ts b/src/internal/polyfill/file.node.d.ts
deleted file mode 100644
index c95276d..0000000
--- a/src/internal/polyfill/file.node.d.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-/**
- * This file polyfills the global `File` object for you if it's not already defined
- * when running on Node.js
- *
- * This is only needed on Node.js v18 & v19. Newer versions already define `File`
- * as a global.
- */
-
-// @ts-ignore
-type nodeBuffer = typeof import('node:buffer');
-declare const File: typeof globalThis extends { File: unknown } ? (typeof globalThis)['File']
-: nodeBuffer extends { File: unknown } ? nodeBuffer['File']
-: any;
-export {};
diff --git a/src/internal/polyfill/file.node.mjs b/src/internal/polyfill/file.node.mjs
deleted file mode 100644
index 520dcb8..0000000
--- a/src/internal/polyfill/file.node.mjs
+++ /dev/null
@@ -1,9 +0,0 @@
-/**
- * This file polyfills the global `File` object for you if it's not already defined
- * when running on Node.js
- *
- * This is only needed on Node.js v18 & v19. Newer versions already define `File`
- * as a global.
- */
-
-import './file.node.js';
diff --git a/tests/responses.test.ts b/tests/responses.test.ts
deleted file mode 100644
index 3d7a426..0000000
--- a/tests/responses.test.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-import { createResponseHeaders } from 'parallel-web/internal/headers';
-
-describe('response parsing', () => {
- // TODO: test unicode characters
- test('headers are case agnostic', async () => {
- const headers = createResponseHeaders(new Headers({ 'Content-Type': 'foo', Accept: 'text/plain' }));
- expect(headers['content-type']).toEqual('foo');
- expect(headers['Content-type']).toEqual('foo');
- expect(headers['Content-Type']).toEqual('foo');
- expect(headers['accept']).toEqual('text/plain');
- expect(headers['Accept']).toEqual('text/plain');
- expect(headers['Hello-World']).toBeUndefined();
- });
-
- test('duplicate headers are concatenated', () => {
- const headers = createResponseHeaders(
- new Headers([
- ['Content-Type', 'text/xml'],
- ['Content-Type', 'application/json'],
- ]),
- );
- expect(headers['content-type']).toBe('text/xml, application/json');
- });
-});
From e9a925cc5da68a7da81a78826df3a6b71d87e7b5 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Sat, 6 Dec 2025 03:28:33 +0000
Subject: [PATCH 06/15] fix(mcp): correct code tool API endpoint
---
.devcontainer/Dockerfile | 23 +++++++++++++++++++++++
.eslintrc.js | 10 ++++++++++
jest.setup.ts | 0
src/internal/polyfill/file.node.d.ts | 14 ++++++++++++++
src/internal/polyfill/file.node.mjs | 9 +++++++++
tests/responses.test.ts | 24 ++++++++++++++++++++++++
6 files changed, 80 insertions(+)
create mode 100644 .devcontainer/Dockerfile
create mode 100644 .eslintrc.js
create mode 100644 jest.setup.ts
create mode 100644 src/internal/polyfill/file.node.d.ts
create mode 100644 src/internal/polyfill/file.node.mjs
create mode 100644 tests/responses.test.ts
diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile
new file mode 100644
index 0000000..8ea34be
--- /dev/null
+++ b/.devcontainer/Dockerfile
@@ -0,0 +1,23 @@
+# syntax=docker/dockerfile:1
+FROM debian:bookworm-slim AS stainless
+
+RUN apt-get update && apt-get install -y \
+ nodejs \
+ npm \
+ yarnpkg \
+ && apt-get clean autoclean
+
+# Ensure UTF-8 encoding
+ENV LANG=C.UTF-8
+ENV LC_ALL=C.UTF-8
+
+# Yarn
+RUN ln -sf /usr/bin/yarnpkg /usr/bin/yarn
+
+WORKDIR /workspace
+
+COPY package.json yarn.lock /workspace/
+
+RUN yarn install
+
+COPY . /workspace
diff --git a/.eslintrc.js b/.eslintrc.js
new file mode 100644
index 0000000..60f0e7a
--- /dev/null
+++ b/.eslintrc.js
@@ -0,0 +1,10 @@
+module.exports = {
+ parser: '@typescript-eslint/parser',
+ plugins: ['@typescript-eslint', 'unused-imports', 'prettier'],
+ rules: {
+ 'no-unused-vars': 'off',
+ 'prettier/prettier': 'error',
+ 'unused-imports/no-unused-imports': 'error',
+ },
+ root: true,
+};
diff --git a/jest.setup.ts b/jest.setup.ts
new file mode 100644
index 0000000..e69de29
diff --git a/src/internal/polyfill/file.node.d.ts b/src/internal/polyfill/file.node.d.ts
new file mode 100644
index 0000000..c95276d
--- /dev/null
+++ b/src/internal/polyfill/file.node.d.ts
@@ -0,0 +1,14 @@
+/**
+ * This file polyfills the global `File` object for you if it's not already defined
+ * when running on Node.js
+ *
+ * This is only needed on Node.js v18 & v19. Newer versions already define `File`
+ * as a global.
+ */
+
+// @ts-ignore
+type nodeBuffer = typeof import('node:buffer');
+declare const File: typeof globalThis extends { File: unknown } ? (typeof globalThis)['File']
+: nodeBuffer extends { File: unknown } ? nodeBuffer['File']
+: any;
+export {};
diff --git a/src/internal/polyfill/file.node.mjs b/src/internal/polyfill/file.node.mjs
new file mode 100644
index 0000000..520dcb8
--- /dev/null
+++ b/src/internal/polyfill/file.node.mjs
@@ -0,0 +1,9 @@
+/**
+ * This file polyfills the global `File` object for you if it's not already defined
+ * when running on Node.js
+ *
+ * This is only needed on Node.js v18 & v19. Newer versions already define `File`
+ * as a global.
+ */
+
+import './file.node.js';
diff --git a/tests/responses.test.ts b/tests/responses.test.ts
new file mode 100644
index 0000000..3d7a426
--- /dev/null
+++ b/tests/responses.test.ts
@@ -0,0 +1,24 @@
+import { createResponseHeaders } from 'parallel-web/internal/headers';
+
+describe('response parsing', () => {
+ // TODO: test unicode characters
+ test('headers are case agnostic', async () => {
+ const headers = createResponseHeaders(new Headers({ 'Content-Type': 'foo', Accept: 'text/plain' }));
+ expect(headers['content-type']).toEqual('foo');
+ expect(headers['Content-type']).toEqual('foo');
+ expect(headers['Content-Type']).toEqual('foo');
+ expect(headers['accept']).toEqual('text/plain');
+ expect(headers['Accept']).toEqual('text/plain');
+ expect(headers['Hello-World']).toBeUndefined();
+ });
+
+ test('duplicate headers are concatenated', () => {
+ const headers = createResponseHeaders(
+ new Headers([
+ ['Content-Type', 'text/xml'],
+ ['Content-Type', 'application/json'],
+ ]),
+ );
+ expect(headers['content-type']).toBe('text/xml, application/json');
+ });
+});
From bc0b8b1167be0a5426a1d151e6bcefb7d884fe0c Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Sat, 6 Dec 2025 03:29:17 +0000
Subject: [PATCH 07/15] chore(internal): codegen related update
---
.devcontainer/Dockerfile | 23 -----------------------
.eslintrc.js | 10 ----------
jest.setup.ts | 0
src/internal/polyfill/file.node.d.ts | 14 --------------
src/internal/polyfill/file.node.mjs | 9 ---------
tests/responses.test.ts | 24 ------------------------
6 files changed, 80 deletions(-)
delete mode 100644 .devcontainer/Dockerfile
delete mode 100644 .eslintrc.js
delete mode 100644 jest.setup.ts
delete mode 100644 src/internal/polyfill/file.node.d.ts
delete mode 100644 src/internal/polyfill/file.node.mjs
delete mode 100644 tests/responses.test.ts
diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile
deleted file mode 100644
index 8ea34be..0000000
--- a/.devcontainer/Dockerfile
+++ /dev/null
@@ -1,23 +0,0 @@
-# syntax=docker/dockerfile:1
-FROM debian:bookworm-slim AS stainless
-
-RUN apt-get update && apt-get install -y \
- nodejs \
- npm \
- yarnpkg \
- && apt-get clean autoclean
-
-# Ensure UTF-8 encoding
-ENV LANG=C.UTF-8
-ENV LC_ALL=C.UTF-8
-
-# Yarn
-RUN ln -sf /usr/bin/yarnpkg /usr/bin/yarn
-
-WORKDIR /workspace
-
-COPY package.json yarn.lock /workspace/
-
-RUN yarn install
-
-COPY . /workspace
diff --git a/.eslintrc.js b/.eslintrc.js
deleted file mode 100644
index 60f0e7a..0000000
--- a/.eslintrc.js
+++ /dev/null
@@ -1,10 +0,0 @@
-module.exports = {
- parser: '@typescript-eslint/parser',
- plugins: ['@typescript-eslint', 'unused-imports', 'prettier'],
- rules: {
- 'no-unused-vars': 'off',
- 'prettier/prettier': 'error',
- 'unused-imports/no-unused-imports': 'error',
- },
- root: true,
-};
diff --git a/jest.setup.ts b/jest.setup.ts
deleted file mode 100644
index e69de29..0000000
diff --git a/src/internal/polyfill/file.node.d.ts b/src/internal/polyfill/file.node.d.ts
deleted file mode 100644
index c95276d..0000000
--- a/src/internal/polyfill/file.node.d.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-/**
- * This file polyfills the global `File` object for you if it's not already defined
- * when running on Node.js
- *
- * This is only needed on Node.js v18 & v19. Newer versions already define `File`
- * as a global.
- */
-
-// @ts-ignore
-type nodeBuffer = typeof import('node:buffer');
-declare const File: typeof globalThis extends { File: unknown } ? (typeof globalThis)['File']
-: nodeBuffer extends { File: unknown } ? nodeBuffer['File']
-: any;
-export {};
diff --git a/src/internal/polyfill/file.node.mjs b/src/internal/polyfill/file.node.mjs
deleted file mode 100644
index 520dcb8..0000000
--- a/src/internal/polyfill/file.node.mjs
+++ /dev/null
@@ -1,9 +0,0 @@
-/**
- * This file polyfills the global `File` object for you if it's not already defined
- * when running on Node.js
- *
- * This is only needed on Node.js v18 & v19. Newer versions already define `File`
- * as a global.
- */
-
-import './file.node.js';
diff --git a/tests/responses.test.ts b/tests/responses.test.ts
deleted file mode 100644
index 3d7a426..0000000
--- a/tests/responses.test.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-import { createResponseHeaders } from 'parallel-web/internal/headers';
-
-describe('response parsing', () => {
- // TODO: test unicode characters
- test('headers are case agnostic', async () => {
- const headers = createResponseHeaders(new Headers({ 'Content-Type': 'foo', Accept: 'text/plain' }));
- expect(headers['content-type']).toEqual('foo');
- expect(headers['Content-type']).toEqual('foo');
- expect(headers['Content-Type']).toEqual('foo');
- expect(headers['accept']).toEqual('text/plain');
- expect(headers['Accept']).toEqual('text/plain');
- expect(headers['Hello-World']).toBeUndefined();
- });
-
- test('duplicate headers are concatenated', () => {
- const headers = createResponseHeaders(
- new Headers([
- ['Content-Type', 'text/xml'],
- ['Content-Type', 'application/json'],
- ]),
- );
- expect(headers['content-type']).toBe('text/xml, application/json');
- });
-});
From d941a00eb40c9c3cd056da2fd6955d2aade94849 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Tue, 6 Jan 2026 03:17:56 +0000
Subject: [PATCH 08/15] chore(internal): codegen related update
---
LICENSE | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/LICENSE b/LICENSE
index 50d0ab1..5083166 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-Copyright 2025 Parallel
+Copyright 2026 Parallel
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
From 7cff646f03b344932da9b1f41a2194935c0ecca5 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Tue, 6 Jan 2026 03:23:51 +0000
Subject: [PATCH 09/15] feat(ci): add breaking change detection workflow
---
.github/workflows/detect-breaking-changes.yml | 36 +++++++++++++++++++
1 file changed, 36 insertions(+)
create mode 100644 .github/workflows/detect-breaking-changes.yml
diff --git a/.github/workflows/detect-breaking-changes.yml b/.github/workflows/detect-breaking-changes.yml
new file mode 100644
index 0000000..740eab4
--- /dev/null
+++ b/.github/workflows/detect-breaking-changes.yml
@@ -0,0 +1,36 @@
+name: CI
+on:
+ pull_request:
+ branches:
+ - main
+ - next
+
+jobs:
+ detect_breaking_changes:
+ runs-on: 'ubuntu-latest'
+ name: detect-breaking-changes
+ if: github.repository == 'parallel-web/parallel-sdk-typescript'
+ steps:
+ - name: Calculate fetch-depth
+ run: |
+ echo "FETCH_DEPTH=$(expr ${{ github.event.pull_request.commits }} + 1)" >> $GITHUB_ENV
+
+ - uses: actions/checkout@v4
+ with:
+ # Ensure we can check out the pull request base in the script below.
+ fetch-depth: ${{ env.FETCH_DEPTH }}
+
+ - name: Set up Node
+ uses: actions/setup-node@v3
+ with:
+ node-version: '20'
+ - name: Install dependencies
+ run: |
+ yarn install
+
+ - name: Detect breaking changes
+ run: |
+ # Try to check out previous versions of the breaking change detection script. This ensures that
+ # we still detect breaking changes when entire files and their tests are removed.
+ git checkout "${{ github.event.pull_request.base.sha }}" -- ./scripts/detect-breaking-changes 2>/dev/null || true
+ ./scripts/detect-breaking-changes ${{ github.event.pull_request.base.sha }}
From 148860cb2d1fe30406d81f7eee60c51203dfad68 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Wed, 7 Jan 2026 03:25:22 +0000
Subject: [PATCH 10/15] chore: break long lines in snippets into multiline
---
tests/api-resources/beta/beta.test.ts | 6 ++-
tests/api-resources/beta/findall.test.ts | 28 ++++++++--
tests/api-resources/beta/task-group.test.ts | 29 ++++++++--
tests/api-resources/beta/task-run.test.ts | 15 +++++-
tests/api-resources/task-run.test.ts | 7 ++-
tests/index.test.ts | 60 +++++++++++++++++----
6 files changed, 123 insertions(+), 22 deletions(-)
diff --git a/tests/api-resources/beta/beta.test.ts b/tests/api-resources/beta/beta.test.ts
index cf3dc9e..fd1e973 100644
--- a/tests/api-resources/beta/beta.test.ts
+++ b/tests/api-resources/beta/beta.test.ts
@@ -24,7 +24,11 @@ describe('resource beta', () => {
urls: ['string'],
betas: ['mcp-server-2025-07-17'],
excerpts: true,
- fetch_policy: { disable_cache_fallback: true, max_age_seconds: 86400, timeout_seconds: 60 },
+ fetch_policy: {
+ disable_cache_fallback: true,
+ max_age_seconds: 86400,
+ timeout_seconds: 60,
+ },
full_content: true,
objective: 'objective',
search_queries: ['string'],
diff --git a/tests/api-resources/beta/findall.test.ts b/tests/api-resources/beta/findall.test.ts
index 59457b4..75cec22 100644
--- a/tests/api-resources/beta/findall.test.ts
+++ b/tests/api-resources/beta/findall.test.ts
@@ -98,7 +98,12 @@ describe('resource findall', () => {
test('enrich: only required params', async () => {
const responsePromise = client.beta.findall.enrich('findall_id', {
output_schema: {
- json_schema: { additionalProperties: 'bar', properties: 'bar', required: 'bar', type: 'bar' },
+ json_schema: {
+ additionalProperties: 'bar',
+ properties: 'bar',
+ required: 'bar',
+ type: 'bar',
+ },
},
});
const rawResponse = await responsePromise.asResponse();
@@ -113,11 +118,22 @@ describe('resource findall', () => {
test('enrich: required and optional params', async () => {
const response = await client.beta.findall.enrich('findall_id', {
output_schema: {
- json_schema: { additionalProperties: 'bar', properties: 'bar', required: 'bar', type: 'bar' },
+ json_schema: {
+ additionalProperties: 'bar',
+ properties: 'bar',
+ required: 'bar',
+ type: 'bar',
+ },
type: 'json',
},
mcp_servers: [
- { name: 'name', url: 'url', allowed_tools: ['string'], headers: { foo: 'string' }, type: 'url' },
+ {
+ name: 'name',
+ url: 'url',
+ allowed_tools: ['string'],
+ headers: { foo: 'string' },
+ type: 'url',
+ },
],
processor: 'processor',
betas: ['mcp-server-2025-07-17'],
@@ -142,7 +158,11 @@ describe('resource findall', () => {
await expect(
client.beta.findall.events(
'findall_id',
- { last_event_id: 'last_event_id', timeout: 0, betas: ['mcp-server-2025-07-17'] },
+ {
+ last_event_id: 'last_event_id',
+ timeout: 0,
+ betas: ['mcp-server-2025-07-17'],
+ },
{ path: '/_stainless_unknown_path' },
),
).rejects.toThrow(Parallel.NotFoundError);
diff --git a/tests/api-resources/beta/task-group.test.ts b/tests/api-resources/beta/task-group.test.ts
index d564f92..ceeb72a 100644
--- a/tests/api-resources/beta/task-group.test.ts
+++ b/tests/api-resources/beta/task-group.test.ts
@@ -51,7 +51,13 @@ describe('resource taskGroup', () => {
processor: 'base',
enable_events: true,
mcp_servers: [
- { name: 'name', url: 'url', allowed_tools: ['string'], headers: { foo: 'string' }, type: 'url' },
+ {
+ name: 'name',
+ url: 'url',
+ allowed_tools: ['string'],
+ headers: { foo: 'string' },
+ type: 'url',
+ },
],
metadata: { foo: 'string' },
source_policy: {
@@ -60,7 +66,12 @@ describe('resource taskGroup', () => {
},
task_spec: {
output_schema: {
- json_schema: { additionalProperties: 'bar', properties: 'bar', required: 'bar', type: 'bar' },
+ json_schema: {
+ additionalProperties: 'bar',
+ properties: 'bar',
+ required: 'bar',
+ type: 'bar',
+ },
type: 'json',
},
input_schema: 'string',
@@ -70,7 +81,12 @@ describe('resource taskGroup', () => {
],
default_task_spec: {
output_schema: {
- json_schema: { additionalProperties: 'bar', properties: 'bar', required: 'bar', type: 'bar' },
+ json_schema: {
+ additionalProperties: 'bar',
+ properties: 'bar',
+ required: 'bar',
+ type: 'bar',
+ },
type: 'json',
},
input_schema: 'string',
@@ -121,7 +137,12 @@ describe('resource taskGroup', () => {
await expect(
client.beta.taskGroup.getRuns(
'taskgroup_id',
- { include_input: true, include_output: true, last_event_id: 'last_event_id', status: 'queued' },
+ {
+ include_input: true,
+ include_output: true,
+ last_event_id: 'last_event_id',
+ status: 'queued',
+ },
{ path: '/_stainless_unknown_path' },
),
).rejects.toThrow(Parallel.NotFoundError);
diff --git a/tests/api-resources/beta/task-run.test.ts b/tests/api-resources/beta/task-run.test.ts
index 5664a32..67b79dd 100644
--- a/tests/api-resources/beta/task-run.test.ts
+++ b/tests/api-resources/beta/task-run.test.ts
@@ -28,7 +28,13 @@ describe('resource taskRun', () => {
processor: 'base',
enable_events: true,
mcp_servers: [
- { name: 'name', url: 'url', allowed_tools: ['string'], headers: { foo: 'string' }, type: 'url' },
+ {
+ name: 'name',
+ url: 'url',
+ allowed_tools: ['string'],
+ headers: { foo: 'string' },
+ type: 'url',
+ },
],
metadata: { foo: 'string' },
source_policy: {
@@ -37,7 +43,12 @@ describe('resource taskRun', () => {
},
task_spec: {
output_schema: {
- json_schema: { additionalProperties: 'bar', properties: 'bar', required: 'bar', type: 'bar' },
+ json_schema: {
+ additionalProperties: 'bar',
+ properties: 'bar',
+ required: 'bar',
+ type: 'bar',
+ },
type: 'json',
},
input_schema: 'string',
diff --git a/tests/api-resources/task-run.test.ts b/tests/api-resources/task-run.test.ts
index 8e15b0d..1e1fcc5 100644
--- a/tests/api-resources/task-run.test.ts
+++ b/tests/api-resources/task-run.test.ts
@@ -33,7 +33,12 @@ describe('resource taskRun', () => {
},
task_spec: {
output_schema: {
- json_schema: { additionalProperties: 'bar', properties: 'bar', required: 'bar', type: 'bar' },
+ json_schema: {
+ additionalProperties: 'bar',
+ properties: 'bar',
+ required: 'bar',
+ type: 'bar',
+ },
type: 'json',
},
input_schema: 'string',
diff --git a/tests/index.test.ts b/tests/index.test.ts
index 1e8f7a1..59fc124 100644
--- a/tests/index.test.ts
+++ b/tests/index.test.ts
@@ -87,7 +87,11 @@ describe('instantiate client', () => {
error: jest.fn(),
};
- const client = new Parallel({ logger: logger, logLevel: 'debug', apiKey: 'My API Key' });
+ const client = new Parallel({
+ logger: logger,
+ logLevel: 'debug',
+ apiKey: 'My API Key',
+ });
await forceAPIResponseForClient(client);
expect(debugMock).toHaveBeenCalled();
@@ -107,7 +111,11 @@ describe('instantiate client', () => {
error: jest.fn(),
};
- const client = new Parallel({ logger: logger, logLevel: 'info', apiKey: 'My API Key' });
+ const client = new Parallel({
+ logger: logger,
+ logLevel: 'info',
+ apiKey: 'My API Key',
+ });
await forceAPIResponseForClient(client);
expect(debugMock).not.toHaveBeenCalled();
@@ -157,7 +165,11 @@ describe('instantiate client', () => {
};
process.env['PARALLEL_LOG'] = 'debug';
- const client = new Parallel({ logger: logger, logLevel: 'off', apiKey: 'My API Key' });
+ const client = new Parallel({
+ logger: logger,
+ logLevel: 'off',
+ apiKey: 'My API Key',
+ });
await forceAPIResponseForClient(client);
expect(debugMock).not.toHaveBeenCalled();
@@ -173,7 +185,11 @@ describe('instantiate client', () => {
};
process.env['PARALLEL_LOG'] = 'not a log level';
- const client = new Parallel({ logger: logger, logLevel: 'debug', apiKey: 'My API Key' });
+ const client = new Parallel({
+ logger: logger,
+ logLevel: 'debug',
+ apiKey: 'My API Key',
+ });
expect(client.logLevel).toBe('debug');
expect(warnMock).not.toHaveBeenCalled();
});
@@ -349,7 +365,11 @@ describe('instantiate client', () => {
describe('withOptions', () => {
test('creates a new client with overridden options', async () => {
- const client = new Parallel({ baseURL: 'http://localhost:5000/', maxRetries: 3, apiKey: 'My API Key' });
+ const client = new Parallel({
+ baseURL: 'http://localhost:5000/',
+ maxRetries: 3,
+ apiKey: 'My API Key',
+ });
const newClient = client.withOptions({
maxRetries: 5,
@@ -389,7 +409,11 @@ describe('instantiate client', () => {
});
test('respects runtime property changes when creating new client', () => {
- const client = new Parallel({ baseURL: 'http://localhost:5000/', timeout: 1000, apiKey: 'My API Key' });
+ const client = new Parallel({
+ baseURL: 'http://localhost:5000/',
+ timeout: 1000,
+ apiKey: 'My API Key',
+ });
// Modify the client properties directly after creation
client.baseURL = 'http://localhost:6000/';
@@ -535,7 +559,11 @@ describe('retries', () => {
return new Response(JSON.stringify({ a: 1 }), { headers: { 'Content-Type': 'application/json' } });
};
- const client = new Parallel({ apiKey: 'My API Key', timeout: 10, fetch: testFetch });
+ const client = new Parallel({
+ apiKey: 'My API Key',
+ timeout: 10,
+ fetch: testFetch,
+ });
expect(await client.request({ path: '/foo', method: 'get' })).toEqual({ a: 1 });
expect(count).toEqual(2);
@@ -565,7 +593,11 @@ describe('retries', () => {
return new Response(JSON.stringify({ a: 1 }), { headers: { 'Content-Type': 'application/json' } });
};
- const client = new Parallel({ apiKey: 'My API Key', fetch: testFetch, maxRetries: 4 });
+ const client = new Parallel({
+ apiKey: 'My API Key',
+ fetch: testFetch,
+ maxRetries: 4,
+ });
expect(await client.request({ path: '/foo', method: 'get' })).toEqual({ a: 1 });
@@ -589,7 +621,11 @@ describe('retries', () => {
capturedRequest = init;
return new Response(JSON.stringify({ a: 1 }), { headers: { 'Content-Type': 'application/json' } });
};
- const client = new Parallel({ apiKey: 'My API Key', fetch: testFetch, maxRetries: 4 });
+ const client = new Parallel({
+ apiKey: 'My API Key',
+ fetch: testFetch,
+ maxRetries: 4,
+ });
expect(
await client.request({
@@ -651,7 +687,11 @@ describe('retries', () => {
capturedRequest = init;
return new Response(JSON.stringify({ a: 1 }), { headers: { 'Content-Type': 'application/json' } });
};
- const client = new Parallel({ apiKey: 'My API Key', fetch: testFetch, maxRetries: 4 });
+ const client = new Parallel({
+ apiKey: 'My API Key',
+ fetch: testFetch,
+ maxRetries: 4,
+ });
expect(
await client.request({
From d32f54b4958d0f47135e3f6e612ebd92cd5a139f Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Tue, 13 Jan 2026 00:18:18 +0000
Subject: [PATCH 11/15] feat(api): add after_date, update findAll nomenclature
---
.stats.yml | 6 +-
api.md | 40 ++---
src/resources/beta/beta.ts | 90 +++++------
src/resources/beta/findall.ts | 158 ++++++++++----------
src/resources/beta/index.ts | 42 +++---
src/resources/shared.ts | 7 +
tests/api-resources/beta/task-group.test.ts | 1 +
tests/api-resources/beta/task-run.test.ts | 1 +
tests/api-resources/task-run.test.ts | 1 +
9 files changed, 178 insertions(+), 168 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index 8098562..9165ad9 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 22
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/parallel-web%2Fparallel-sdk-e6afa27fc86492ffa6ee5f929f2d1eb8166750c3a9652a393aede2ca467c49ef.yml
-openapi_spec_hash: 12e9b47405451f5286c199d7ee26c3cc
-config_hash: 6a16116c579cf9a3739083c24b10534d
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/parallel-web%2Fparallel-sdk-105d778ad64daf94bc1a8b074c609be5200c570c8a3e9fb646d418d572083dac.yml
+openapi_spec_hash: b5d7390ed05ec6f332a1a91266a74ac3
+config_hash: a377da139cf6858ba9350a5a88f5b228
diff --git a/api.md b/api.md
index c49902a..ed06cc8 100644
--- a/api.md
+++ b/api.md
@@ -85,31 +85,31 @@ Methods:
- client.beta.taskGroup.events(taskGroupID, { ...params }) -> TaskGroupEventsResponse
- client.beta.taskGroup.getRuns(taskGroupID, { ...params }) -> TaskGroupGetRunsResponse
-## Findall
+## FindAll
Types:
-- FindallCandidateMatchStatusEvent
-- FindallEnrichInput
-- FindallExtendInput
-- FindallRun
-- FindallRunInput
-- FindallRunResult
-- FindallRunStatusEvent
-- FindallSchema
-- FindallSchemaUpdatedEvent
+- FindAllCandidateMatchStatusEvent
+- FindAllEnrichInput
+- FindAllExtendInput
+- FindAllRun
+- FindAllRunInput
+- FindAllRunResult
+- FindAllRunStatusEvent
+- FindAllSchema
+- FindAllSchemaUpdatedEvent
- IngestInput
-- FindallCancelResponse
-- FindallEventsResponse
+- FindAllCancelResponse
+- FindAllEventsResponse
Methods:
-- client.beta.findall.create({ ...params }) -> FindallRun
-- client.beta.findall.retrieve(findallID, { ...params }) -> FindallRun
+- client.beta.findall.create({ ...params }) -> FindAllRun
+- client.beta.findall.retrieve(findallID, { ...params }) -> FindAllRun
- client.beta.findall.cancel(findallID, { ...params }) -> unknown
-- client.beta.findall.enrich(findallID, { ...params }) -> FindallSchema
-- client.beta.findall.events(findallID, { ...params }) -> FindallEventsResponse
-- client.beta.findall.extend(findallID, { ...params }) -> FindallSchema
-- client.beta.findall.ingest({ ...params }) -> FindallSchema
-- client.beta.findall.result(findallID, { ...params }) -> FindallRunResult
-- client.beta.findall.schema(findallID, { ...params }) -> FindallSchema
+- client.beta.findall.enrich(findallID, { ...params }) -> FindAllSchema
+- client.beta.findall.events(findallID, { ...params }) -> FindAllEventsResponse
+- client.beta.findall.extend(findallID, { ...params }) -> FindAllSchema
+- client.beta.findall.ingest({ ...params }) -> FindAllSchema
+- client.beta.findall.result(findallID, { ...params }) -> FindAllRunResult
+- client.beta.findall.schema(findallID, { ...params }) -> FindAllSchema
diff --git a/src/resources/beta/beta.ts b/src/resources/beta/beta.ts
index 8160620..c56ab2b 100644
--- a/src/resources/beta/beta.ts
+++ b/src/resources/beta/beta.ts
@@ -2,29 +2,29 @@
import { APIResource } from '../../core/resource';
import * as Shared from '../shared';
-import * as FindallAPI from './findall';
+import * as FindAllAPI from './findall';
import {
- Findall,
- FindallCancelParams,
- FindallCancelResponse,
- FindallCandidateMatchStatusEvent,
- FindallCreateParams,
- FindallEnrichInput,
- FindallEnrichParams,
- FindallEventsParams,
- FindallEventsResponse,
- FindallExtendInput,
- FindallExtendParams,
- FindallIngestParams,
- FindallResultParams,
- FindallRetrieveParams,
- FindallRun,
- FindallRunInput,
- FindallRunResult,
- FindallRunStatusEvent,
- FindallSchema,
- FindallSchemaParams,
- FindallSchemaUpdatedEvent,
+ FindAll,
+ FindAllCancelParams,
+ FindAllCancelResponse,
+ FindAllCandidateMatchStatusEvent,
+ FindAllCreateParams,
+ FindAllEnrichInput,
+ FindAllEnrichParams,
+ FindAllEventsParams,
+ FindAllEventsResponse,
+ FindAllExtendInput,
+ FindAllExtendParams,
+ FindAllIngestParams,
+ FindAllResultParams,
+ FindAllRetrieveParams,
+ FindAllRun,
+ FindAllRunInput,
+ FindAllRunResult,
+ FindAllRunStatusEvent,
+ FindAllSchema,
+ FindAllSchemaParams,
+ FindAllSchemaUpdatedEvent,
IngestInput,
} from './findall';
import * as TaskGroupAPI from './task-group';
@@ -61,7 +61,7 @@ import { RequestOptions } from '../../internal/request-options';
export class Beta extends APIResource {
taskRun: TaskRunAPI.TaskRun = new TaskRunAPI.TaskRun(this._client);
taskGroup: TaskGroupAPI.TaskGroup = new TaskGroupAPI.TaskGroup(this._client);
- findall: FindallAPI.Findall = new FindallAPI.Findall(this._client);
+ findall: FindAllAPI.FindAll = new FindAllAPI.FindAll(this._client);
/**
* Extracts relevant content from specific web URLs.
@@ -408,7 +408,7 @@ export interface BetaSearchParams {
}
Beta.TaskRun = TaskRun;
-Beta.Findall = Findall;
+Beta.FindAll = FindAll;
export declare namespace Beta {
export {
@@ -452,27 +452,27 @@ export declare namespace Beta {
};
export {
- Findall as Findall,
- type FindallCandidateMatchStatusEvent as FindallCandidateMatchStatusEvent,
- type FindallEnrichInput as FindallEnrichInput,
- type FindallExtendInput as FindallExtendInput,
- type FindallRun as FindallRun,
- type FindallRunInput as FindallRunInput,
- type FindallRunResult as FindallRunResult,
- type FindallRunStatusEvent as FindallRunStatusEvent,
- type FindallSchema as FindallSchema,
- type FindallSchemaUpdatedEvent as FindallSchemaUpdatedEvent,
+ FindAll as FindAll,
+ type FindAllCandidateMatchStatusEvent as FindAllCandidateMatchStatusEvent,
+ type FindAllEnrichInput as FindAllEnrichInput,
+ type FindAllExtendInput as FindAllExtendInput,
+ type FindAllRun as FindAllRun,
+ type FindAllRunInput as FindAllRunInput,
+ type FindAllRunResult as FindAllRunResult,
+ type FindAllRunStatusEvent as FindAllRunStatusEvent,
+ type FindAllSchema as FindAllSchema,
+ type FindAllSchemaUpdatedEvent as FindAllSchemaUpdatedEvent,
type IngestInput as IngestInput,
- type FindallCancelResponse as FindallCancelResponse,
- type FindallEventsResponse as FindallEventsResponse,
- type FindallCreateParams as FindallCreateParams,
- type FindallRetrieveParams as FindallRetrieveParams,
- type FindallCancelParams as FindallCancelParams,
- type FindallEnrichParams as FindallEnrichParams,
- type FindallEventsParams as FindallEventsParams,
- type FindallExtendParams as FindallExtendParams,
- type FindallIngestParams as FindallIngestParams,
- type FindallResultParams as FindallResultParams,
- type FindallSchemaParams as FindallSchemaParams,
+ type FindAllCancelResponse as FindAllCancelResponse,
+ type FindAllEventsResponse as FindAllEventsResponse,
+ type FindAllCreateParams as FindAllCreateParams,
+ type FindAllRetrieveParams as FindAllRetrieveParams,
+ type FindAllCancelParams as FindAllCancelParams,
+ type FindAllEnrichParams as FindAllEnrichParams,
+ type FindAllEventsParams as FindAllEventsParams,
+ type FindAllExtendParams as FindAllExtendParams,
+ type FindAllIngestParams as FindAllIngestParams,
+ type FindAllResultParams as FindAllResultParams,
+ type FindAllSchemaParams as FindAllSchemaParams,
};
}
diff --git a/src/resources/beta/findall.ts b/src/resources/beta/findall.ts
index 2943a46..1ec4c34 100644
--- a/src/resources/beta/findall.ts
+++ b/src/resources/beta/findall.ts
@@ -9,7 +9,7 @@ import { buildHeaders } from '../../internal/headers';
import { RequestOptions } from '../../internal/request-options';
import { path } from '../../internal/utils/path';
-export class Findall extends APIResource {
+export class FindAll extends APIResource {
/**
* Starts a FindAll run.
*
@@ -24,7 +24,7 @@ export class Findall extends APIResource {
* - Or specifying a webhook with relevant event types during run creation to
* receive notifications.
*/
- create(params: FindallCreateParams, options?: RequestOptions): APIPromise {
+ create(params: FindAllCreateParams, options?: RequestOptions): APIPromise {
const { betas, ...body } = params;
return this._client.post('/v1beta/findall/runs', {
body,
@@ -41,9 +41,9 @@ export class Findall extends APIResource {
*/
retrieve(
findallID: string,
- params: FindallRetrieveParams | null | undefined = {},
+ params: FindAllRetrieveParams | null | undefined = {},
options?: RequestOptions,
- ): APIPromise {
+ ): APIPromise {
const { betas } = params ?? {};
return this._client.get(path`/v1beta/findall/runs/${findallID}`, {
...options,
@@ -59,7 +59,7 @@ export class Findall extends APIResource {
*/
cancel(
findallID: string,
- params: FindallCancelParams | null | undefined = {},
+ params: FindAllCancelParams | null | undefined = {},
options?: RequestOptions,
): APIPromise {
const { betas } = params ?? {};
@@ -77,9 +77,9 @@ export class Findall extends APIResource {
*/
enrich(
findallID: string,
- params: FindallEnrichParams,
+ params: FindAllEnrichParams,
options?: RequestOptions,
- ): APIPromise {
+ ): APIPromise {
const { betas, ...body } = params;
return this._client.post(path`/v1beta/findall/runs/${findallID}/enrich`, {
body,
@@ -101,9 +101,9 @@ export class Findall extends APIResource {
*/
events(
findallID: string,
- params: FindallEventsParams | undefined = {},
+ params: FindAllEventsParams | undefined = {},
options?: RequestOptions,
- ): APIPromise> {
+ ): APIPromise> {
const { betas, ...query } = params ?? {};
return this._client.get(path`/v1beta/findall/runs/${findallID}/events`, {
query,
@@ -113,7 +113,7 @@ export class Findall extends APIResource {
options?.headers,
]),
stream: true,
- }) as APIPromise>;
+ }) as APIPromise>;
}
/**
@@ -121,9 +121,9 @@ export class Findall extends APIResource {
*/
extend(
findallID: string,
- params: FindallExtendParams,
+ params: FindAllExtendParams,
options?: RequestOptions,
- ): APIPromise {
+ ): APIPromise {
const { betas, ...body } = params;
return this._client.post(path`/v1beta/findall/runs/${findallID}/extend`, {
body,
@@ -143,7 +143,7 @@ export class Findall extends APIResource {
* The generated specification serves as a suggested starting point and can be
* further customized by the user.
*/
- ingest(params: FindallIngestParams, options?: RequestOptions): APIPromise {
+ ingest(params: FindAllIngestParams, options?: RequestOptions): APIPromise {
const { betas, ...body } = params;
return this._client.post('/v1beta/findall/ingest', {
body,
@@ -160,9 +160,9 @@ export class Findall extends APIResource {
*/
result(
findallID: string,
- params: FindallResultParams | null | undefined = {},
+ params: FindAllResultParams | null | undefined = {},
options?: RequestOptions,
- ): APIPromise {
+ ): APIPromise {
const { betas } = params ?? {};
return this._client.get(path`/v1beta/findall/runs/${findallID}/result`, {
...options,
@@ -178,9 +178,9 @@ export class Findall extends APIResource {
*/
schema(
findallID: string,
- params: FindallSchemaParams | null | undefined = {},
+ params: FindAllSchemaParams | null | undefined = {},
options?: RequestOptions,
- ): APIPromise {
+ ): APIPromise {
const { betas } = params ?? {};
return this._client.get(path`/v1beta/findall/runs/${findallID}/schema`, {
...options,
@@ -195,11 +195,11 @@ export class Findall extends APIResource {
/**
* Event containing a candidate whose match status has changed.
*/
-export interface FindallCandidateMatchStatusEvent {
+export interface FindAllCandidateMatchStatusEvent {
/**
* The candidate whose match status has been updated.
*/
- data: FindallCandidateMatchStatusEvent.Data;
+ data: FindAllCandidateMatchStatusEvent.Data;
/**
* Unique event identifier for the event.
@@ -224,7 +224,7 @@ export interface FindallCandidateMatchStatusEvent {
| 'findall.candidate.enriched';
}
-export namespace FindallCandidateMatchStatusEvent {
+export namespace FindAllCandidateMatchStatusEvent {
/**
* The candidate whose match status has been updated.
*/
@@ -272,7 +272,7 @@ export namespace FindallCandidateMatchStatusEvent {
/**
* Input model for FindAll enrich.
*/
-export interface FindallEnrichInput {
+export interface FindAllEnrichInput {
/**
* JSON schema for the enrichment output schema for the FindAll run.
*/
@@ -292,7 +292,7 @@ export interface FindallEnrichInput {
/**
* Input model for FindAll extend.
*/
-export interface FindallExtendInput {
+export interface FindAllExtendInput {
/**
* Additional number of matches to find for this FindAll run. This value will be
* added to the current match limit to determine the new total match limit. Must be
@@ -304,7 +304,7 @@ export interface FindallExtendInput {
/**
* FindAll run object with status and metadata.
*/
-export interface FindallRun {
+export interface FindAllRun {
/**
* ID of the FindAll run.
*/
@@ -318,7 +318,7 @@ export interface FindallRun {
/**
* Status object for the FindAll run.
*/
- status: FindallRun.Status;
+ status: FindAllRun.Status;
/**
* Timestamp of the creation of the run, in RFC 3339 format.
@@ -337,7 +337,7 @@ export interface FindallRun {
modified_at?: string | null;
}
-export namespace FindallRun {
+export namespace FindAllRun {
/**
* Status object for the FindAll run.
*/
@@ -391,7 +391,7 @@ export namespace FindallRun {
/**
* Input model for FindAll run.
*/
-export interface FindallRunInput {
+export interface FindAllRunInput {
/**
* Type of the entity for the FindAll run.
*/
@@ -405,7 +405,7 @@ export interface FindallRunInput {
/**
* List of match conditions for the FindAll run.
*/
- match_conditions: Array;
+ match_conditions: Array;
/**
* Maximum number of matches to find for this FindAll run. Must be between 5 and
@@ -421,7 +421,7 @@ export interface FindallRunInput {
/**
* List of entity names/IDs to exclude from results.
*/
- exclude_list?: Array | null;
+ exclude_list?: Array | null;
/**
* Metadata for the FindAll run.
@@ -434,7 +434,7 @@ export interface FindallRunInput {
webhook?: BetaTaskRunAPI.Webhook | null;
}
-export namespace FindallRunInput {
+export namespace FindAllRunInput {
/**
* Match condition model for FindAll ingest.
*/
@@ -475,16 +475,16 @@ export namespace FindallRunInput {
* candidate entities with their match status and details at the time the snapshot
* was taken.
*/
-export interface FindallRunResult {
+export interface FindAllRunResult {
/**
* All evaluated candidates at the time of the snapshot.
*/
- candidates: Array;
+ candidates: Array;
/**
* FindAll run object.
*/
- run: FindallRun;
+ run: FindAllRun;
/**
* ID of the last event of the run at the time of the request. This can be used to
@@ -493,7 +493,7 @@ export interface FindallRunResult {
last_event_id?: string | null;
}
-export namespace FindallRunResult {
+export namespace FindAllRunResult {
/**
* Candidate for a find all run that may end up as a match.
*
@@ -544,11 +544,11 @@ export namespace FindallRunResult {
/**
* Event containing status update for FindAll run.
*/
-export interface FindallRunStatusEvent {
+export interface FindAllRunStatusEvent {
/**
* Updated FindAll run information.
*/
- data: FindallRun;
+ data: FindAllRun;
/**
* Unique event identifier for the event.
@@ -569,7 +569,7 @@ export interface FindallRunStatusEvent {
/**
* Response model for FindAll ingest.
*/
-export interface FindallSchema {
+export interface FindAllSchema {
/**
* Type of the entity for the FindAll run.
*/
@@ -578,7 +578,7 @@ export interface FindallSchema {
/**
* List of match conditions for the FindAll run.
*/
- match_conditions: Array;
+ match_conditions: Array;
/**
* Natural language objective of the FindAll run.
@@ -588,7 +588,7 @@ export interface FindallSchema {
/**
* List of enrichment inputs for the FindAll run.
*/
- enrichments?: Array | null;
+ enrichments?: Array | null;
/**
* The generator of the FindAll run.
@@ -601,7 +601,7 @@ export interface FindallSchema {
match_limit?: number | null;
}
-export namespace FindallSchema {
+export namespace FindAllSchema {
/**
* Match condition model for FindAll ingest.
*/
@@ -623,11 +623,11 @@ export namespace FindallSchema {
/**
* Event containing full snapshot of FindAll run state.
*/
-export interface FindallSchemaUpdatedEvent {
+export interface FindAllSchemaUpdatedEvent {
/**
* Updated FindAll schema.
*/
- data: FindallSchema;
+ data: FindAllSchema;
/**
* Unique event identifier for the event.
@@ -655,18 +655,18 @@ export interface IngestInput {
objective: string;
}
-export type FindallCancelResponse = unknown;
+export type FindAllCancelResponse = unknown;
/**
* Event containing full snapshot of FindAll run state.
*/
-export type FindallEventsResponse =
- | FindallSchemaUpdatedEvent
- | FindallRunStatusEvent
- | FindallCandidateMatchStatusEvent
+export type FindAllEventsResponse =
+ | FindAllSchemaUpdatedEvent
+ | FindAllRunStatusEvent
+ | FindAllCandidateMatchStatusEvent
| BetaTaskRunAPI.ErrorEvent;
-export interface FindallCreateParams {
+export interface FindAllCreateParams {
/**
* Body param: Type of the entity for the FindAll run.
*/
@@ -680,7 +680,7 @@ export interface FindallCreateParams {
/**
* Body param: List of match conditions for the FindAll run.
*/
- match_conditions: Array;
+ match_conditions: Array;
/**
* Body param: Maximum number of matches to find for this FindAll run. Must be
@@ -696,7 +696,7 @@ export interface FindallCreateParams {
/**
* Body param: List of entity names/IDs to exclude from results.
*/
- exclude_list?: Array | null;
+ exclude_list?: Array | null;
/**
* Body param: Metadata for the FindAll run.
@@ -714,7 +714,7 @@ export interface FindallCreateParams {
betas?: Array;
}
-export namespace FindallCreateParams {
+export namespace FindAllCreateParams {
/**
* Match condition model for FindAll ingest.
*/
@@ -748,21 +748,21 @@ export namespace FindallCreateParams {
}
}
-export interface FindallRetrieveParams {
+export interface FindAllRetrieveParams {
/**
* Optional header to specify the beta version(s) to enable.
*/
betas?: Array;
}
-export interface FindallCancelParams {
+export interface FindAllCancelParams {
/**
* Optional header to specify the beta version(s) to enable.
*/
betas?: Array;
}
-export interface FindallEnrichParams {
+export interface FindAllEnrichParams {
/**
* Body param: JSON schema for the enrichment output schema for the FindAll run.
*/
@@ -784,7 +784,7 @@ export interface FindallEnrichParams {
betas?: Array;
}
-export interface FindallEventsParams {
+export interface FindAllEventsParams {
/**
* Query param:
*/
@@ -801,7 +801,7 @@ export interface FindallEventsParams {
betas?: Array;
}
-export interface FindallExtendParams {
+export interface FindAllExtendParams {
/**
* Body param: Additional number of matches to find for this FindAll run. This
* value will be added to the current match limit to determine the new total match
@@ -815,7 +815,7 @@ export interface FindallExtendParams {
betas?: Array;
}
-export interface FindallIngestParams {
+export interface FindAllIngestParams {
/**
* Body param: Natural language objective to create a FindAll run spec.
*/
@@ -827,42 +827,42 @@ export interface FindallIngestParams {
betas?: Array;
}
-export interface FindallResultParams {
+export interface FindAllResultParams {
/**
* Optional header to specify the beta version(s) to enable.
*/
betas?: Array;
}
-export interface FindallSchemaParams {
+export interface FindAllSchemaParams {
/**
* Optional header to specify the beta version(s) to enable.
*/
betas?: Array;
}
-export declare namespace Findall {
+export declare namespace FindAll {
export {
- type FindallCandidateMatchStatusEvent as FindallCandidateMatchStatusEvent,
- type FindallEnrichInput as FindallEnrichInput,
- type FindallExtendInput as FindallExtendInput,
- type FindallRun as FindallRun,
- type FindallRunInput as FindallRunInput,
- type FindallRunResult as FindallRunResult,
- type FindallRunStatusEvent as FindallRunStatusEvent,
- type FindallSchema as FindallSchema,
- type FindallSchemaUpdatedEvent as FindallSchemaUpdatedEvent,
+ type FindAllCandidateMatchStatusEvent as FindAllCandidateMatchStatusEvent,
+ type FindAllEnrichInput as FindAllEnrichInput,
+ type FindAllExtendInput as FindAllExtendInput,
+ type FindAllRun as FindAllRun,
+ type FindAllRunInput as FindAllRunInput,
+ type FindAllRunResult as FindAllRunResult,
+ type FindAllRunStatusEvent as FindAllRunStatusEvent,
+ type FindAllSchema as FindAllSchema,
+ type FindAllSchemaUpdatedEvent as FindAllSchemaUpdatedEvent,
type IngestInput as IngestInput,
- type FindallCancelResponse as FindallCancelResponse,
- type FindallEventsResponse as FindallEventsResponse,
- type FindallCreateParams as FindallCreateParams,
- type FindallRetrieveParams as FindallRetrieveParams,
- type FindallCancelParams as FindallCancelParams,
- type FindallEnrichParams as FindallEnrichParams,
- type FindallEventsParams as FindallEventsParams,
- type FindallExtendParams as FindallExtendParams,
- type FindallIngestParams as FindallIngestParams,
- type FindallResultParams as FindallResultParams,
- type FindallSchemaParams as FindallSchemaParams,
+ type FindAllCancelResponse as FindAllCancelResponse,
+ type FindAllEventsResponse as FindAllEventsResponse,
+ type FindAllCreateParams as FindAllCreateParams,
+ type FindAllRetrieveParams as FindAllRetrieveParams,
+ type FindAllCancelParams as FindAllCancelParams,
+ type FindAllEnrichParams as FindAllEnrichParams,
+ type FindAllEventsParams as FindAllEventsParams,
+ type FindAllExtendParams as FindAllExtendParams,
+ type FindAllIngestParams as FindAllIngestParams,
+ type FindAllResultParams as FindAllResultParams,
+ type FindAllSchemaParams as FindAllSchemaParams,
};
}
diff --git a/src/resources/beta/index.ts b/src/resources/beta/index.ts
index 454fffc..8b099ea 100644
--- a/src/resources/beta/index.ts
+++ b/src/resources/beta/index.ts
@@ -2,28 +2,28 @@
export { Beta } from './beta';
export {
- Findall,
- type FindallCandidateMatchStatusEvent,
- type FindallEnrichInput,
- type FindallExtendInput,
- type FindallRun,
- type FindallRunInput,
- type FindallRunResult,
- type FindallRunStatusEvent,
- type FindallSchema,
- type FindallSchemaUpdatedEvent,
+ FindAll,
+ type FindAllCandidateMatchStatusEvent,
+ type FindAllEnrichInput,
+ type FindAllExtendInput,
+ type FindAllRun,
+ type FindAllRunInput,
+ type FindAllRunResult,
+ type FindAllRunStatusEvent,
+ type FindAllSchema,
+ type FindAllSchemaUpdatedEvent,
type IngestInput,
- type FindallCancelResponse,
- type FindallEventsResponse,
- type FindallCreateParams,
- type FindallRetrieveParams,
- type FindallCancelParams,
- type FindallEnrichParams,
- type FindallEventsParams,
- type FindallExtendParams,
- type FindallIngestParams,
- type FindallResultParams,
- type FindallSchemaParams,
+ type FindAllCancelResponse,
+ type FindAllEventsResponse,
+ type FindAllCreateParams,
+ type FindAllRetrieveParams,
+ type FindAllCancelParams,
+ type FindAllEnrichParams,
+ type FindAllEventsParams,
+ type FindAllExtendParams,
+ type FindAllIngestParams,
+ type FindAllResultParams,
+ type FindAllSchemaParams,
} from './findall';
export {
TaskGroup,
diff --git a/src/resources/shared.ts b/src/resources/shared.ts
index 36b4366..477a52c 100644
--- a/src/resources/shared.ts
+++ b/src/resources/shared.ts
@@ -41,6 +41,13 @@ export interface ErrorResponse {
* This policy governs which sources are allowed/disallowed in results.
*/
export interface SourcePolicy {
+ /**
+ * Optional start date for filtering search results. Results will be limited to
+ * content published on or after this date. Provided as an RFC 3339 date string
+ * (YYYY-MM-DD).
+ */
+ after_date?: string | null;
+
/**
* List of domains to exclude from results. If specified, sources from these
* domains will be excluded. Accepts plain domains (e.g., example.com,
diff --git a/tests/api-resources/beta/task-group.test.ts b/tests/api-resources/beta/task-group.test.ts
index ceeb72a..f471735 100644
--- a/tests/api-resources/beta/task-group.test.ts
+++ b/tests/api-resources/beta/task-group.test.ts
@@ -61,6 +61,7 @@ describe('resource taskGroup', () => {
],
metadata: { foo: 'string' },
source_policy: {
+ after_date: '2024-01-01',
exclude_domains: ['reddit.com', 'x.com', '.ai'],
include_domains: ['wikipedia.org', 'usa.gov', '.edu'],
},
diff --git a/tests/api-resources/beta/task-run.test.ts b/tests/api-resources/beta/task-run.test.ts
index 67b79dd..b17f73a 100644
--- a/tests/api-resources/beta/task-run.test.ts
+++ b/tests/api-resources/beta/task-run.test.ts
@@ -38,6 +38,7 @@ describe('resource taskRun', () => {
],
metadata: { foo: 'string' },
source_policy: {
+ after_date: '2024-01-01',
exclude_domains: ['reddit.com', 'x.com', '.ai'],
include_domains: ['wikipedia.org', 'usa.gov', '.edu'],
},
diff --git a/tests/api-resources/task-run.test.ts b/tests/api-resources/task-run.test.ts
index 1e1fcc5..69774d7 100644
--- a/tests/api-resources/task-run.test.ts
+++ b/tests/api-resources/task-run.test.ts
@@ -28,6 +28,7 @@ describe('resource taskRun', () => {
processor: 'base',
metadata: { foo: 'string' },
source_policy: {
+ after_date: '2024-01-01',
exclude_domains: ['reddit.com', 'x.com', '.ai'],
include_domains: ['wikipedia.org', 'usa.gov', '.edu'],
},
From e7bcf210dcfcef9e444218abdf7f0d8d4dfc7d13 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Tue, 13 Jan 2026 01:16:14 +0000
Subject: [PATCH 12/15] chore(api): update default headers
---
.stats.yml | 2 +-
src/resources/beta/findall.ts | 18 +++++++++---------
2 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index 9165ad9..59e1516 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 22
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/parallel-web%2Fparallel-sdk-105d778ad64daf94bc1a8b074c609be5200c570c8a3e9fb646d418d572083dac.yml
openapi_spec_hash: b5d7390ed05ec6f332a1a91266a74ac3
-config_hash: a377da139cf6858ba9350a5a88f5b228
+config_hash: a398d153133d8884bed4e5256a0ae818
diff --git a/src/resources/beta/findall.ts b/src/resources/beta/findall.ts
index 1ec4c34..8150889 100644
--- a/src/resources/beta/findall.ts
+++ b/src/resources/beta/findall.ts
@@ -30,7 +30,7 @@ export class FindAll extends APIResource {
body,
...options,
headers: buildHeaders([
- { 'parallel-beta': [...(betas ?? []), 'findall-2025-02-01'].toString() },
+ { 'parallel-beta': [...(betas ?? []), 'findall-2025-09-15'].toString() },
options?.headers,
]),
});
@@ -48,7 +48,7 @@ export class FindAll extends APIResource {
return this._client.get(path`/v1beta/findall/runs/${findallID}`, {
...options,
headers: buildHeaders([
- { 'parallel-beta': [...(betas ?? []), 'findall-2025-02-01'].toString() },
+ { 'parallel-beta': [...(betas ?? []), 'findall-2025-09-15'].toString() },
options?.headers,
]),
});
@@ -66,7 +66,7 @@ export class FindAll extends APIResource {
return this._client.post(path`/v1beta/findall/runs/${findallID}/cancel`, {
...options,
headers: buildHeaders([
- { 'parallel-beta': [...(betas ?? []), 'findall-2025-02-01'].toString() },
+ { 'parallel-beta': [...(betas ?? []), 'findall-2025-09-15'].toString() },
options?.headers,
]),
});
@@ -85,7 +85,7 @@ export class FindAll extends APIResource {
body,
...options,
headers: buildHeaders([
- { 'parallel-beta': [...(betas ?? []), 'findall-2025-02-01'].toString() },
+ { 'parallel-beta': [...(betas ?? []), 'findall-2025-09-15'].toString() },
options?.headers,
]),
});
@@ -109,7 +109,7 @@ export class FindAll extends APIResource {
query,
...options,
headers: buildHeaders([
- { 'parallel-beta': [...(betas ?? []), 'findall-2025-02-01'].toString(), Accept: 'text/event-stream' },
+ { 'parallel-beta': [...(betas ?? []), 'findall-2025-09-15'].toString(), Accept: 'text/event-stream' },
options?.headers,
]),
stream: true,
@@ -129,7 +129,7 @@ export class FindAll extends APIResource {
body,
...options,
headers: buildHeaders([
- { 'parallel-beta': [...(betas ?? []), 'findall-2025-02-01'].toString() },
+ { 'parallel-beta': [...(betas ?? []), 'findall-2025-09-15'].toString() },
options?.headers,
]),
});
@@ -149,7 +149,7 @@ export class FindAll extends APIResource {
body,
...options,
headers: buildHeaders([
- { 'parallel-beta': [...(betas ?? []), 'findall-2025-02-01'].toString() },
+ { 'parallel-beta': [...(betas ?? []), 'findall-2025-09-15'].toString() },
options?.headers,
]),
});
@@ -167,7 +167,7 @@ export class FindAll extends APIResource {
return this._client.get(path`/v1beta/findall/runs/${findallID}/result`, {
...options,
headers: buildHeaders([
- { 'parallel-beta': [...(betas ?? []), 'findall-2025-02-01'].toString() },
+ { 'parallel-beta': [...(betas ?? []), 'findall-2025-09-15'].toString() },
options?.headers,
]),
});
@@ -185,7 +185,7 @@ export class FindAll extends APIResource {
return this._client.get(path`/v1beta/findall/runs/${findallID}/schema`, {
...options,
headers: buildHeaders([
- { 'parallel-beta': [...(betas ?? []), 'findall-2025-02-01'].toString() },
+ { 'parallel-beta': [...(betas ?? []), 'findall-2025-09-15'].toString() },
options?.headers,
]),
});
From d06ae9826af167dd35cf54a98ce5d80b00dbb833 Mon Sep 17 00:00:00 2001
From: Kumar Saunack
Date: Mon, 12 Jan 2026 17:33:02 -0800
Subject: [PATCH 13/15] fix(api): add aliases for old findAll types
---
src/resources/beta/findall.ts | 78 +++++++++++++++++++++++++++++++++++
src/resources/beta/index.ts | 22 ++++++++++
2 files changed, 100 insertions(+)
diff --git a/src/resources/beta/findall.ts b/src/resources/beta/findall.ts
index 8150889..80407d1 100644
--- a/src/resources/beta/findall.ts
+++ b/src/resources/beta/findall.ts
@@ -866,3 +866,81 @@ export declare namespace FindAll {
type FindAllSchemaParams as FindAllSchemaParams,
};
}
+
+
+/**
+ * Backwards-compatible aliases (deprecated).
+ *
+ * Historically these types/resources were exported as `Findall*` (lowercase "a").
+ * The canonical names are now `FindAll*`.
+ */
+export class Findall extends FindAll {}
+
+/** @deprecated Use `FindAllCandidateMatchStatusEvent` instead. */
+export type FindallCandidateMatchStatusEvent = FindAllCandidateMatchStatusEvent;
+/** @deprecated Use `FindAllEnrichInput` instead. */
+export type FindallEnrichInput = FindAllEnrichInput;
+/** @deprecated Use `FindAllExtendInput` instead. */
+export type FindallExtendInput = FindAllExtendInput;
+/** @deprecated Use `FindAllRun` instead. */
+export type FindallRun = FindAllRun;
+/** @deprecated Use `FindAllRunInput` instead. */
+export type FindallRunInput = FindAllRunInput;
+/** @deprecated Use `FindAllRunResult` instead. */
+export type FindallRunResult = FindAllRunResult;
+/** @deprecated Use `FindAllRunStatusEvent` instead. */
+export type FindallRunStatusEvent = FindAllRunStatusEvent;
+/** @deprecated Use `FindAllSchema` instead. */
+export type FindallSchema = FindAllSchema;
+/** @deprecated Use `FindAllSchemaUpdatedEvent` instead. */
+export type FindallSchemaUpdatedEvent = FindAllSchemaUpdatedEvent;
+/** @deprecated Use `IngestInput` instead. */
+export type FindallIngestInput = IngestInput;
+/** @deprecated Use `FindAllCancelResponse` instead. */
+export type FindallCancelResponse = FindAllCancelResponse;
+/** @deprecated Use `FindAllEventsResponse` instead. */
+export type FindallEventsResponse = FindAllEventsResponse;
+/** @deprecated Use `FindAllCreateParams` instead. */
+export type FindallCreateParams = FindAllCreateParams;
+/** @deprecated Use `FindAllRetrieveParams` instead. */
+export type FindallRetrieveParams = FindAllRetrieveParams;
+/** @deprecated Use `FindAllCancelParams` instead. */
+export type FindallCancelParams = FindAllCancelParams;
+/** @deprecated Use `FindAllEnrichParams` instead. */
+export type FindallEnrichParams = FindAllEnrichParams;
+/** @deprecated Use `FindAllEventsParams` instead. */
+export type FindallEventsParams = FindAllEventsParams;
+/** @deprecated Use `FindAllExtendParams` instead. */
+export type FindallExtendParams = FindAllExtendParams;
+/** @deprecated Use `FindAllIngestParams` instead. */
+export type FindallIngestParams = FindAllIngestParams;
+/** @deprecated Use `FindAllResultParams` instead. */
+export type FindallResultParams = FindAllResultParams;
+/** @deprecated Use `FindAllSchemaParams` instead. */
+export type FindallSchemaParams = FindAllSchemaParams;
+
+export declare namespace Findall {
+ export {
+ type FindallCandidateMatchStatusEvent as FindallCandidateMatchStatusEvent,
+ type FindallEnrichInput as FindallEnrichInput,
+ type FindallExtendInput as FindallExtendInput,
+ type FindallRun as FindallRun,
+ type FindallRunInput as FindallRunInput,
+ type FindallRunResult as FindallRunResult,
+ type FindallRunStatusEvent as FindallRunStatusEvent,
+ type FindallSchema as FindallSchema,
+ type FindallSchemaUpdatedEvent as FindallSchemaUpdatedEvent,
+ type FindallIngestInput as FindallIngestInput,
+ type FindallCancelResponse as FindallCancelResponse,
+ type FindallEventsResponse as FindallEventsResponse,
+ type FindallCreateParams as FindallCreateParams,
+ type FindallRetrieveParams as FindallRetrieveParams,
+ type FindallCancelParams as FindallCancelParams,
+ type FindallEnrichParams as FindallEnrichParams,
+ type FindallEventsParams as FindallEventsParams,
+ type FindallExtendParams as FindallExtendParams,
+ type FindallIngestParams as FindallIngestParams,
+ type FindallResultParams as FindallResultParams,
+ type FindallSchemaParams as FindallSchemaParams,
+ };
+}
diff --git a/src/resources/beta/index.ts b/src/resources/beta/index.ts
index 8b099ea..50d9d9f 100644
--- a/src/resources/beta/index.ts
+++ b/src/resources/beta/index.ts
@@ -3,6 +3,7 @@
export { Beta } from './beta';
export {
FindAll,
+ Findall,
type FindAllCandidateMatchStatusEvent,
type FindAllEnrichInput,
type FindAllExtendInput,
@@ -24,6 +25,27 @@ export {
type FindAllIngestParams,
type FindAllResultParams,
type FindAllSchemaParams,
+ type FindallCandidateMatchStatusEvent,
+ type FindallEnrichInput,
+ type FindallExtendInput,
+ type FindallRun,
+ type FindallRunInput,
+ type FindallRunResult,
+ type FindallRunStatusEvent,
+ type FindallSchema,
+ type FindallSchemaUpdatedEvent,
+ type FindallIngestInput,
+ type FindallCancelResponse,
+ type FindallEventsResponse,
+ type FindallCreateParams,
+ type FindallRetrieveParams,
+ type FindallCancelParams,
+ type FindallEnrichParams,
+ type FindallEventsParams,
+ type FindallExtendParams,
+ type FindallIngestParams,
+ type FindallResultParams,
+ type FindallSchemaParams,
} from './findall';
export {
TaskGroup,
From d8fff0aa2479182e4b51e58fc8757911d5c06c5a Mon Sep 17 00:00:00 2001
From: Kumar Saunack
Date: Mon, 12 Jan 2026 17:36:01 -0800
Subject: [PATCH 14/15] chore: fix lint
---
src/resources/beta/findall.ts | 1 -
1 file changed, 1 deletion(-)
diff --git a/src/resources/beta/findall.ts b/src/resources/beta/findall.ts
index 80407d1..488ab90 100644
--- a/src/resources/beta/findall.ts
+++ b/src/resources/beta/findall.ts
@@ -867,7 +867,6 @@ export declare namespace FindAll {
};
}
-
/**
* Backwards-compatible aliases (deprecated).
*
From 8aed871c39f1abb1104b233bf42e2a3db6fed1c3 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Tue, 13 Jan 2026 01:36:16 +0000
Subject: [PATCH 15/15] release: 0.3.0
---
.release-please-manifest.json | 2 +-
CHANGELOG.md | 29 +++++++++++++++++++++++++++++
package.json | 2 +-
src/version.ts | 2 +-
4 files changed, 32 insertions(+), 3 deletions(-)
diff --git a/.release-please-manifest.json b/.release-please-manifest.json
index 69535c6..0ee8c01 100644
--- a/.release-please-manifest.json
+++ b/.release-please-manifest.json
@@ -1,3 +1,3 @@
{
- ".": "0.2.4"
+ ".": "0.3.0"
}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index e0c0156..9b464f4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,34 @@
# Changelog
+## 0.3.0 (2026-01-13)
+
+Full Changelog: [v0.2.4...v0.3.0](https://github.com/parallel-web/parallel-sdk-typescript/compare/v0.2.4...v0.3.0)
+
+### Features
+
+* **api:** add after_date, update findAll nomenclature ([d32f54b](https://github.com/parallel-web/parallel-sdk-typescript/commit/d32f54b4958d0f47135e3f6e612ebd92cd5a139f))
+* **api:** Update excerpt settings ([58c9f47](https://github.com/parallel-web/parallel-sdk-typescript/commit/58c9f47cd642a29a3daf5e6efcf75462639376ac))
+* **ci:** add breaking change detection workflow ([7cff646](https://github.com/parallel-web/parallel-sdk-typescript/commit/7cff646f03b344932da9b1f41a2194935c0ecca5))
+
+
+### Bug Fixes
+
+* **api:** add aliases for old findAll types ([d06ae98](https://github.com/parallel-web/parallel-sdk-typescript/commit/d06ae9826af167dd35cf54a98ce5d80b00dbb833))
+* **mcp:** correct code tool API endpoint ([e9a925c](https://github.com/parallel-web/parallel-sdk-typescript/commit/e9a925cc5da68a7da81a78826df3a6b71d87e7b5))
+* **mcp:** return correct lines on typescript errors ([d6854e6](https://github.com/parallel-web/parallel-sdk-typescript/commit/d6854e660599668a38c679df3c60f311b1569a4a))
+
+
+### Chores
+
+* **api:** update default headers ([e7bcf21](https://github.com/parallel-web/parallel-sdk-typescript/commit/e7bcf210dcfcef9e444218abdf7f0d8d4dfc7d13))
+* break long lines in snippets into multiline ([148860c](https://github.com/parallel-web/parallel-sdk-typescript/commit/148860cb2d1fe30406d81f7eee60c51203dfad68))
+* **client:** fix logger property type ([2d7f64b](https://github.com/parallel-web/parallel-sdk-typescript/commit/2d7f64b25314670de513eda5cb70d2c3b70300fd))
+* fix lint ([d8fff0a](https://github.com/parallel-web/parallel-sdk-typescript/commit/d8fff0aa2479182e4b51e58fc8757911d5c06c5a))
+* **internal:** codegen related update ([d941a00](https://github.com/parallel-web/parallel-sdk-typescript/commit/d941a00eb40c9c3cd056da2fd6955d2aade94849))
+* **internal:** codegen related update ([bc0b8b1](https://github.com/parallel-web/parallel-sdk-typescript/commit/bc0b8b1167be0a5426a1d151e6bcefb7d884fe0c))
+* **internal:** codegen related update ([5ae66ee](https://github.com/parallel-web/parallel-sdk-typescript/commit/5ae66ee9239566c97fe41dd591acf8f58a3252bb))
+* **internal:** upgrade eslint ([e6780b0](https://github.com/parallel-web/parallel-sdk-typescript/commit/e6780b01053f2ef5a09dd544b32223f1cfc2db9b))
+
## 0.2.4 (2025-11-13)
Full Changelog: [v0.2.3...v0.2.4](https://github.com/parallel-web/parallel-sdk-typescript/compare/v0.2.3...v0.2.4)
diff --git a/package.json b/package.json
index 1ec0880..33b53b1 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "parallel-web",
- "version": "0.2.4",
+ "version": "0.3.0",
"description": "The official TypeScript library for the Parallel API",
"author": "Parallel ",
"types": "dist/index.d.ts",
diff --git a/src/version.ts b/src/version.ts
index ead4e22..88f4d40 100644
--- a/src/version.ts
+++ b/src/version.ts
@@ -1 +1 @@
-export const VERSION = '0.2.4'; // x-release-please-version
+export const VERSION = '0.3.0'; // x-release-please-version