From 40d35bf8b82fc8a0c671b7926c0b3caf92a17e2b Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Thu, 7 May 2026 01:41:17 +0000
Subject: [PATCH 1/8] feat: update npm publish
---
.github/workflows/publish-npm.yml | 5 +++--
.github/workflows/release-doctor.yml | 2 --
.gitignore | 2 +-
.stats.yml | 4 ++--
bin/check-release-environment | 4 ----
bin/publish-npm | 13 +++++++++++--
6 files changed, 17 insertions(+), 13 deletions(-)
diff --git a/.github/workflows/publish-npm.yml b/.github/workflows/publish-npm.yml
index ec36d0a..5d6cf1b 100644
--- a/.github/workflows/publish-npm.yml
+++ b/.github/workflows/publish-npm.yml
@@ -12,6 +12,9 @@ jobs:
publish:
name: publish
runs-on: ubuntu-latest
+ permissions:
+ contents: read
+ id-token: write
steps:
- uses: actions/checkout@v6
@@ -28,5 +31,3 @@ jobs:
- name: Publish to NPM
run: |
bash ./bin/publish-npm
- env:
- NPM_TOKEN: ${{ secrets.PARALLEL_NPM_TOKEN || secrets.NPM_TOKEN }}
diff --git a/.github/workflows/release-doctor.yml b/.github/workflows/release-doctor.yml
index c38131b..fb5d3b9 100644
--- a/.github/workflows/release-doctor.yml
+++ b/.github/workflows/release-doctor.yml
@@ -17,5 +17,3 @@ jobs:
- name: Check release environment
run: |
bash ./bin/check-release-environment
- env:
- NPM_TOKEN: ${{ secrets.PARALLEL_NPM_TOKEN || secrets.NPM_TOKEN }}
diff --git a/.gitignore b/.gitignore
index c85fe68..9487e48 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,4 +9,4 @@ dist-deno
/*.tgz
.idea/
.eslintcache
-
+oidc
diff --git a/.stats.yml b/.stats.yml
index 9a8c935..b72ab98 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 38
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/parallel-web/parallel-sdk-b134f034fe11499d713c03d07778aba8a395d7e3cbbc3d8a4bd2891f0aa970ba.yml
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/parallel-web/parallel-sdk-51b579ce3bac65b907316a8f417ae2d247055e297644049a40ec5d419e5e4064.yml
openapi_spec_hash: c4fc5b0cb3bc48076f736a0ad2b2e75e
-config_hash: 27cd9354fb0ac3129cbf269737cece6c
+config_hash: 80eeac996567402cd8f03f477c2f4133
diff --git a/bin/check-release-environment b/bin/check-release-environment
index e4b6d58..6b43775 100644
--- a/bin/check-release-environment
+++ b/bin/check-release-environment
@@ -2,10 +2,6 @@
errors=()
-if [ -z "${NPM_TOKEN}" ]; then
- errors+=("The NPM_TOKEN secret has not been set. Please set it in either this repository's secrets or your organization secrets")
-fi
-
lenErrors=${#errors[@]}
if [[ lenErrors -gt 0 ]]; then
diff --git a/bin/publish-npm b/bin/publish-npm
index 45e8aa8..3d05c0b 100644
--- a/bin/publish-npm
+++ b/bin/publish-npm
@@ -2,7 +2,12 @@
set -eux
-npm config set '//registry.npmjs.org/:_authToken' "$NPM_TOKEN"
+if [[ ${NPM_TOKEN:-} ]]; then
+ npm config set '//registry.npmjs.org/:_authToken' "$NPM_TOKEN"
+elif [[ ! ${ACTIONS_ID_TOKEN_REQUEST_TOKEN:-} ]]; then
+ echo "ERROR: NPM_TOKEN must be set if not running in a Github Action with id-token permission"
+ exit 1
+fi
yarn build
cd dist
@@ -57,5 +62,9 @@ else
TAG="latest"
fi
+# Install OIDC compatible npm version
+npm install --prefix ../oidc/ npm@11.6.2
+
# Publish with the appropriate tag
-yarn publish --tag "$TAG"
+export npm_config_registry='https://registry.npmjs.org'
+../oidc/node_modules/.bin/npm publish --tag "$TAG"
From d729c39f0ecdc26706a2fa3631b7ba210ec7c053 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Fri, 8 May 2026 04:16:09 +0000
Subject: [PATCH 2/8] chore: redact api-key headers in debug logs
---
src/internal/utils/log.ts | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/internal/utils/log.ts b/src/internal/utils/log.ts
index a9b5d4f..59c0d06 100644
--- a/src/internal/utils/log.ts
+++ b/src/internal/utils/log.ts
@@ -106,8 +106,9 @@ export const formatRequestDetails = (details: {
([name, value]) => [
name,
(
- name.toLowerCase() === 'x-api-key' ||
name.toLowerCase() === 'authorization' ||
+ name.toLowerCase() === 'api-key' ||
+ name.toLowerCase() === 'x-api-key' ||
name.toLowerCase() === 'cookie' ||
name.toLowerCase() === 'set-cookie'
) ?
From 9431910d0d2dcdf33f22df07ee652dea31774ce8 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Tue, 12 May 2026 19:00:42 +0000
Subject: [PATCH 3/8] feat(api): Remove beta: tasks, task groups, search, and
extract from SDK
---
.stats.yml | 6 +-
scripts/detect-breaking-changes | 2 -
src/resources/beta/api.md | 55 ---
src/resources/beta/beta.ts | 398 --------------------
src/resources/beta/findall.ts | 91 ++++-
src/resources/beta/index.ts | 26 --
src/resources/beta/task-group.ts | 223 -----------
src/resources/beta/task-run.ts | 276 --------------
src/resources/task-group.ts | 11 +-
src/resources/task-run.ts | 21 +-
tests/api-resources/beta/beta.test.ts | 50 ---
tests/api-resources/beta/task-group.test.ts | 150 --------
tests/api-resources/beta/task-run.test.ts | 96 -----
13 files changed, 111 insertions(+), 1294 deletions(-)
delete mode 100644 src/resources/beta/task-group.ts
delete mode 100644 src/resources/beta/task-run.ts
delete mode 100644 tests/api-resources/beta/beta.test.ts
delete mode 100644 tests/api-resources/beta/task-group.test.ts
delete mode 100644 tests/api-resources/beta/task-run.test.ts
diff --git a/.stats.yml b/.stats.yml
index b72ab98..c994788 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
-configured_endpoints: 38
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/parallel-web/parallel-sdk-51b579ce3bac65b907316a8f417ae2d247055e297644049a40ec5d419e5e4064.yml
+configured_endpoints: 30
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/parallel-web/parallel-sdk-95bc4c3d92d853117110dbc74ef5f3dc142e288cdbdca89f1cc64f102922a839.yml
openapi_spec_hash: c4fc5b0cb3bc48076f736a0ad2b2e75e
-config_hash: 80eeac996567402cd8f03f477c2f4133
+config_hash: 7a6dacc64d87490958b733ecc4fa39d2
diff --git a/scripts/detect-breaking-changes b/scripts/detect-breaking-changes
index 0eb1c56..fd3bcc9 100755
--- a/scripts/detect-breaking-changes
+++ b/scripts/detect-breaking-changes
@@ -12,8 +12,6 @@ TEST_PATHS=(
tests/api-resources/task-group.test.ts
tests/api-resources/monitor.test.ts
tests/api-resources/beta/beta.test.ts
- tests/api-resources/beta/task-run.test.ts
- tests/api-resources/beta/task-group.test.ts
tests/api-resources/beta/findall.test.ts
tests/index.test.ts
)
diff --git a/src/resources/beta/api.md b/src/resources/beta/api.md
index 8831a07..7ef02d2 100644
--- a/src/resources/beta/api.md
+++ b/src/resources/beta/api.md
@@ -1,60 +1,5 @@
# Beta
-Types:
-
-- ExcerptSettings
-- ExtractResponse
-- ExtractResult
-- SearchResult
-- WebSearchResult
-- ExtractError
-- FetchPolicy
-- FullContentSettings
-- UsageItem
-
-Methods:
-
-- client.beta.extract({ ...params }) -> ExtractResponse
-- client.beta.search({ ...params }) -> SearchResult
-
-## TaskRun
-
-Types:
-
-- ParallelBeta
-- TaskRunEventsResponse
-- BetaRunInput
-- BetaTaskRunResult
-- Webhook
-- McpServer
-- McpToolCall
-- TaskRunEvent
-- ErrorEvent
-
-Methods:
-
-- client.beta.taskRun.create({ ...params }) -> TaskRun
-- client.beta.taskRun.events(runID) -> TaskRunEventsResponse
-- client.beta.taskRun.result(runID, { ...params }) -> TaskRunResult
-
-## TaskGroup
-
-Types:
-
-- TaskGroupEventsResponse
-- TaskGroupGetRunsResponse
-- TaskGroupStatus
-- TaskGroupStatusEvent
-- TaskGroupRunResponse
-
-Methods:
-
-- client.beta.taskGroup.create({ ...params }) -> TaskGroup
-- client.beta.taskGroup.retrieve(taskGroupID) -> TaskGroup
-- client.beta.taskGroup.addRuns(taskGroupID, { ...params }) -> TaskGroupRunResponse
-- client.beta.taskGroup.events(taskGroupID, { ...params }) -> TaskGroupEventsResponse
-- client.beta.taskGroup.getRuns(taskGroupID, { ...params }) -> TaskGroupGetRunsResponse
-
## FindAll
Types:
diff --git a/src/resources/beta/beta.ts b/src/resources/beta/beta.ts
index 7cb6dc4..7a95136 100644
--- a/src/resources/beta/beta.ts
+++ b/src/resources/beta/beta.ts
@@ -1,8 +1,6 @@
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
import { APIResource } from '../../core/resource';
-import * as Shared from '../shared';
-import * as TopLevelAPI from '../top-level';
import * as FindAllAPI from './findall';
import {
FindAll,
@@ -34,402 +32,14 @@ import {
IngestInput,
MatchCondition,
} from './findall';
-import * as TaskGroupAPI from './task-group';
-import {
- TaskGroup,
- TaskGroupAddRunsParams,
- TaskGroupCreateParams,
- TaskGroupEventsParams,
- TaskGroupEventsResponse,
- TaskGroupGetRunsParams,
- TaskGroupGetRunsResponse,
- TaskGroupRunResponse,
- TaskGroupStatus,
- TaskGroupStatusEvent,
-} from './task-group';
-import * as TaskRunAPI from './task-run';
-import {
- BetaRunInput,
- BetaTaskRunResult,
- ErrorEvent,
- McpServer,
- McpToolCall,
- ParallelBeta,
- TaskRun,
- TaskRunCreateParams,
- TaskRunEvent,
- TaskRunEventsResponse,
- TaskRunResultParams,
- Webhook,
-} from './task-run';
-import { APIPromise } from '../../core/api-promise';
-import { buildHeaders } from '../../internal/headers';
-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);
-
- /**
- * Extracts relevant content from specific web URLs.
- *
- * @deprecated Use client.extract instead. For more info, see https://docs.parallel.ai/extract/extract-migration-guide
- */
- extract(params: BetaExtractParams, options?: RequestOptions): APIPromise {
- const { betas, ...body } = params;
- return this._client.post('/v1beta/extract', {
- body,
- ...options,
- headers: buildHeaders([
- { 'parallel-beta': [...(betas ?? []), 'search-extract-2025-10-10'].toString() },
- options?.headers,
- ]),
- });
- }
-
- /**
- * Searches the web.
- *
- * @deprecated Use client.search instead. For more info, see https://docs.parallel.ai/search/search-migration-guide
- */
- search(params: BetaSearchParams, options?: RequestOptions): APIPromise {
- const { betas, ...body } = params;
- return this._client.post('/v1beta/search', {
- body,
- ...options,
- headers: buildHeaders([
- { 'parallel-beta': [...(betas ?? []), 'search-extract-2025-10-10'].toString() },
- options?.headers,
- ]),
- });
- }
-}
-
-/**
- * Optional settings for returning relevant excerpts.
- */
-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. Values below 1000 will be automatically set to 1000.
- */
- 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. Values below 1000 will be automatically set to 1000. This
- * overall limit applies in addition to max_chars_per_result.
- */
- max_chars_total?: number | null;
-}
-
-/**
- * Fetch result.
- */
-export interface ExtractResponse {
- /**
- * Extract errors: requested URLs not in the results.
- */
- errors: Array;
-
- /**
- * Extract request ID, e.g. `extract_cad0a6d2dec046bd95ae900527d880e7`
- */
- extract_id: string;
-
- /**
- * Successful extract results.
- */
- results: Array;
-
- /**
- * Usage metrics for the extract request.
- */
- usage?: Array | null;
-
- /**
- * Warnings for the extract request, if any.
- */
- warnings?: Array | null;
-}
-
-/**
- * Extract result for a single URL.
- */
-export interface ExtractResult {
- /**
- * URL associated with the search result.
- */
- url: string;
-
- /**
- * Relevant excerpted content from the URL, formatted as markdown.
- */
- excerpts?: Array | null;
-
- /**
- * Full content from the URL formatted as markdown, if requested.
- */
- full_content?: string | null;
-
- /**
- * Publish date of the webpage in YYYY-MM-DD format, if available.
- */
- publish_date?: string | null;
-
- /**
- * Title of the webpage, if available.
- */
- title?: string | null;
-}
-
-/**
- * Output for the Search API.
- */
-export interface SearchResult {
- /**
- * A list of WebSearchResult objects, ordered by decreasing relevance.
- */
- results: Array;
-
- /**
- * Search ID. Example: `search_cad0a6d2dec046bd95ae900527d880e7`
- */
- search_id: string;
-
- /**
- * Usage metrics for the search request.
- */
- usage?: Array | null;
-
- /**
- * Warnings for the search request, if any.
- */
- warnings?: Array | null;
-}
-
-/**
- * A single search result from the web search API.
- */
-export interface WebSearchResult {
- /**
- * URL associated with the search result.
- */
- url: string;
-
- /**
- * Relevant excerpted content from the URL, formatted as markdown.
- */
- excerpts?: Array | null;
-
- /**
- * Publish date of the webpage in YYYY-MM-DD format, if available.
- */
- publish_date?: string | null;
-
- /**
- * Title of the webpage, if available.
- */
- title?: string | null;
-}
-
-export type ExtractError = TopLevelAPI.ExtractError;
-
-export type FetchPolicy = TopLevelAPI.FetchPolicy;
-
-export type FullContentSettings = TopLevelAPI.FullContentSettings;
-
-export type UsageItem = TopLevelAPI.UsageItem;
-
-export interface BetaExtractParams {
- /**
- * Body param
- */
- urls: Array;
-
- /**
- * Body param: The model generating this request and consuming the results. Enables
- * optimizations and tailors default settings for the model's capabilities.
- */
- client_model?: string | null;
-
- /**
- * 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
- * are redundant with full content.
- */
- excerpts?: boolean | ExcerptSettings;
-
- /**
- * Body param: Policy for live fetching web results.
- */
- fetch_policy?: TopLevelAPI.FetchPolicy | null;
-
- /**
- * Body param: Include full content from each URL. Note that if neither objective
- * nor search_queries is provided, excerpts are redundant with full content.
- */
- full_content?: boolean | TopLevelAPI.FullContentSettings;
-
- /**
- * Body param: If provided, focuses extracted content on the specified search
- * objective.
- */
- objective?: string | null;
-
- /**
- * Body param: If provided, focuses extracted content on the specified keyword
- * search queries.
- */
- search_queries?: Array | null;
-
- /**
- * Body param: Session identifier to track calls across separate search and extract
- * calls, to be used as part of a larger task. Specifying it may give better
- * contextual results for subsequent API calls.
- */
- session_id?: string | null;
-
- /**
- * Header param: Optional header to specify the beta version(s) to enable.
- */
- betas?: Array;
-}
-
-export interface BetaSearchParams {
- /**
- * Body param: The model generating this request and consuming the results. Enables
- * optimizations and tailors default settings for the model's capabilities.
- */
- client_model?: string | null;
-
- /**
- * Body param: Optional settings to configure excerpt generation.
- */
- excerpts?: ExcerptSettings;
-
- /**
- * Body param: Policy for live fetching web results.
- */
- fetch_policy?: TopLevelAPI.FetchPolicy | null;
-
- /**
- * Body param: ISO 3166-1 alpha-2 country code for geo-targeted search results.
- */
- location?: string | null;
-
- /**
- * @deprecated Body param: DEPRECATED: Use `excerpts.max_chars_per_result` instead.
- */
- max_chars_per_result?: number | null;
-
- /**
- * Body param: Upper bound on the number of results to return. Defaults to 10 if
- * not provided.
- */
- max_results?: number | null;
-
- /**
- * Body param: Presets default values for parameters for different use cases.
- *
- * - `one-shot` returns more comprehensive results and longer excerpts to answer
- * questions from a single response
- * - `agentic` returns more concise, token-efficient results for use in an agentic
- * loop
- * - `fast` trades some quality for lower latency, with best results when used with
- * concise and high-quality objective and keyword queries
- */
- mode?: 'one-shot' | 'agentic' | 'fast' | null;
-
- /**
- * Body param: Natural-language description of what the web search is trying to
- * find. May include guidance about preferred sources or freshness. At least one of
- * objective or search_queries must be provided.
- */
- objective?: string | null;
-
- /**
- * @deprecated Body param: DEPRECATED: use `mode` instead.
- */
- processor?: 'base' | 'pro' | null;
-
- /**
- * Body param: Optional list of traditional keyword search queries to guide the
- * search. May contain search operators. At least one of objective or
- * search_queries must be provided.
- */
- search_queries?: Array | null;
-
- /**
- * Body param: Session identifier to track calls across separate search and extract
- * calls, to be used as part of a larger task. Specifying it may give better
- * contextual results for subsequent API calls.
- */
- session_id?: string | null;
-
- /**
- * Body param: Source policy for web search results.
- *
- * This policy governs which sources are allowed/disallowed in results.
- */
- source_policy?: Shared.SourcePolicy | null;
-
- /**
- * Header param: Optional header to specify the beta version(s) to enable.
- */
- betas?: Array;
}
-Beta.TaskRun = TaskRun;
-Beta.TaskGroup = TaskGroup;
Beta.FindAll = FindAll;
export declare namespace Beta {
- export {
- type ExcerptSettings as ExcerptSettings,
- type ExtractResponse as ExtractResponse,
- type ExtractResult as ExtractResult,
- type SearchResult as SearchResult,
- type WebSearchResult as WebSearchResult,
- type ExtractError as ExtractError,
- type FetchPolicy as FetchPolicy,
- type FullContentSettings as FullContentSettings,
- type UsageItem as UsageItem,
- type BetaExtractParams as BetaExtractParams,
- type BetaSearchParams as BetaSearchParams,
- };
-
- export {
- TaskRun as TaskRun,
- type ParallelBeta as ParallelBeta,
- type TaskRunEventsResponse as TaskRunEventsResponse,
- type BetaRunInput as BetaRunInput,
- type BetaTaskRunResult as BetaTaskRunResult,
- type Webhook as Webhook,
- type McpServer as McpServer,
- type McpToolCall as McpToolCall,
- type TaskRunEvent as TaskRunEvent,
- type ErrorEvent as ErrorEvent,
- type TaskRunCreateParams as TaskRunCreateParams,
- type TaskRunResultParams as TaskRunResultParams,
- };
-
- export {
- TaskGroup as TaskGroup,
- type TaskGroupEventsResponse as TaskGroupEventsResponse,
- type TaskGroupGetRunsResponse as TaskGroupGetRunsResponse,
- type TaskGroupStatus as TaskGroupStatus,
- type TaskGroupStatusEvent as TaskGroupStatusEvent,
- type TaskGroupRunResponse as TaskGroupRunResponse,
- type TaskGroupCreateParams as TaskGroupCreateParams,
- type TaskGroupAddRunsParams as TaskGroupAddRunsParams,
- type TaskGroupEventsParams as TaskGroupEventsParams,
- type TaskGroupGetRunsParams as TaskGroupGetRunsParams,
- };
-
export {
FindAll as FindAll,
type FindAllCandidate as FindAllCandidate,
@@ -461,11 +71,3 @@ export declare namespace Beta {
type FindAllSchemaParams as FindAllSchemaParams,
};
}
-
-// Backwards-compat namespace member (deprecated). `BetaExtractParams.FullContentSettings`
-// was previously a nested interface; the shape now lives as the top-level
-// `FullContentSettings` model.
-export namespace BetaExtractParams {
- /** @deprecated Use `Parallel.FullContentSettings` instead. */
- export type FullContentSettings = TopLevelAPI.FullContentSettings;
-}
diff --git a/src/resources/beta/findall.ts b/src/resources/beta/findall.ts
index 23aacbf..0620457 100644
--- a/src/resources/beta/findall.ts
+++ b/src/resources/beta/findall.ts
@@ -2,7 +2,6 @@
import { APIResource } from '../../core/resource';
import * as TaskRunAPI from '../task-run';
-import * as BetaTaskRunAPI from './task-run';
import { APIPromise } from '../../core/api-promise';
import { Stream } from '../../core/streaming';
import { buildHeaders } from '../../internal/headers';
@@ -800,7 +799,15 @@ export interface FindAllCreateParams {
/**
* Header param: Optional header to specify the beta version(s) to enable.
*/
- betas?: Array;
+ betas?: Array<
+ | 'mcp-server-2025-07-17'
+ | 'events-sse-2025-07-24'
+ | 'webhook-2025-08-12'
+ | 'findall-2025-09-15'
+ | 'search-extract-2025-10-10'
+ | 'field-basis-2025-11-25'
+ | (string & {})
+ >;
}
export namespace FindAllCreateParams {
@@ -824,14 +831,30 @@ export interface FindAllRetrieveParams {
/**
* Optional header to specify the beta version(s) to enable.
*/
- betas?: Array;
+ betas?: Array<
+ | 'mcp-server-2025-07-17'
+ | 'events-sse-2025-07-24'
+ | 'webhook-2025-08-12'
+ | 'findall-2025-09-15'
+ | 'search-extract-2025-10-10'
+ | 'field-basis-2025-11-25'
+ | (string & {})
+ >;
}
export interface FindAllCancelParams {
/**
* Optional header to specify the beta version(s) to enable.
*/
- betas?: Array;
+ betas?: Array<
+ | 'mcp-server-2025-07-17'
+ | 'events-sse-2025-07-24'
+ | 'webhook-2025-08-12'
+ | 'findall-2025-09-15'
+ | 'search-extract-2025-10-10'
+ | 'field-basis-2025-11-25'
+ | (string & {})
+ >;
}
export interface FindAllCandidatesParams {
@@ -871,7 +894,15 @@ export interface FindAllEnrichParams {
/**
* Header param: Optional header to specify the beta version(s) to enable.
*/
- betas?: Array;
+ betas?: Array<
+ | 'mcp-server-2025-07-17'
+ | 'events-sse-2025-07-24'
+ | 'webhook-2025-08-12'
+ | 'findall-2025-09-15'
+ | 'search-extract-2025-10-10'
+ | 'field-basis-2025-11-25'
+ | (string & {})
+ >;
}
export interface FindAllEventsParams {
@@ -888,7 +919,15 @@ export interface FindAllEventsParams {
/**
* Header param: Optional header to specify the beta version(s) to enable.
*/
- betas?: Array;
+ betas?: Array<
+ | 'mcp-server-2025-07-17'
+ | 'events-sse-2025-07-24'
+ | 'webhook-2025-08-12'
+ | 'findall-2025-09-15'
+ | 'search-extract-2025-10-10'
+ | 'field-basis-2025-11-25'
+ | (string & {})
+ >;
}
export interface FindAllExtendParams {
@@ -902,7 +941,15 @@ export interface FindAllExtendParams {
/**
* Header param: Optional header to specify the beta version(s) to enable.
*/
- betas?: Array;
+ betas?: Array<
+ | 'mcp-server-2025-07-17'
+ | 'events-sse-2025-07-24'
+ | 'webhook-2025-08-12'
+ | 'findall-2025-09-15'
+ | 'search-extract-2025-10-10'
+ | 'field-basis-2025-11-25'
+ | (string & {})
+ >;
}
export interface FindAllIngestParams {
@@ -914,21 +961,45 @@ export interface FindAllIngestParams {
/**
* Header param: Optional header to specify the beta version(s) to enable.
*/
- betas?: Array;
+ betas?: Array<
+ | 'mcp-server-2025-07-17'
+ | 'events-sse-2025-07-24'
+ | 'webhook-2025-08-12'
+ | 'findall-2025-09-15'
+ | 'search-extract-2025-10-10'
+ | 'field-basis-2025-11-25'
+ | (string & {})
+ >;
}
export interface FindAllResultParams {
/**
* Optional header to specify the beta version(s) to enable.
*/
- betas?: Array;
+ betas?: Array<
+ | 'mcp-server-2025-07-17'
+ | 'events-sse-2025-07-24'
+ | 'webhook-2025-08-12'
+ | 'findall-2025-09-15'
+ | 'search-extract-2025-10-10'
+ | 'field-basis-2025-11-25'
+ | (string & {})
+ >;
}
export interface FindAllSchemaParams {
/**
* Optional header to specify the beta version(s) to enable.
*/
- betas?: Array;
+ betas?: Array<
+ | 'mcp-server-2025-07-17'
+ | 'events-sse-2025-07-24'
+ | 'webhook-2025-08-12'
+ | 'findall-2025-09-15'
+ | 'search-extract-2025-10-10'
+ | 'field-basis-2025-11-25'
+ | (string & {})
+ >;
}
export declare namespace FindAll {
diff --git a/src/resources/beta/index.ts b/src/resources/beta/index.ts
index 5ab0a7f..dfd2046 100644
--- a/src/resources/beta/index.ts
+++ b/src/resources/beta/index.ts
@@ -52,29 +52,3 @@ export {
type FindallResultParams,
type FindallSchemaParams,
} from './findall';
-export {
- TaskGroup,
- type TaskGroupEventsResponse,
- type TaskGroupGetRunsResponse,
- type TaskGroupStatus,
- type TaskGroupStatusEvent,
- type TaskGroupRunResponse,
- type TaskGroupCreateParams,
- type TaskGroupAddRunsParams,
- type TaskGroupEventsParams,
- type TaskGroupGetRunsParams,
-} from './task-group';
-export {
- TaskRun,
- type ParallelBeta,
- type TaskRunEventsResponse,
- type BetaRunInput,
- type BetaTaskRunResult,
- type Webhook,
- type McpServer,
- type McpToolCall,
- type TaskRunEvent,
- type ErrorEvent,
- type TaskRunCreateParams,
- type TaskRunResultParams,
-} from './task-run';
diff --git a/src/resources/beta/task-group.ts b/src/resources/beta/task-group.ts
deleted file mode 100644
index bdb72a7..0000000
--- a/src/resources/beta/task-group.ts
+++ /dev/null
@@ -1,223 +0,0 @@
-// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-import { APIResource } from '../../core/resource';
-import * as TaskGroupAPI from '../task-group';
-import * as TaskRunAPI from '../task-run';
-import * as BetaTaskRunAPI from './task-run';
-import { APIPromise } from '../../core/api-promise';
-import { Stream } from '../../core/streaming';
-import { buildHeaders } from '../../internal/headers';
-import { RequestOptions } from '../../internal/request-options';
-import { path } from '../../internal/utils/path';
-
-/**
- * Tasks (Beta)
- *
- * @deprecated Use GA Task Group instead
- */
-export class TaskGroup extends APIResource {
- /**
- * Initiates a TaskGroup to group and track multiple runs.
- *
- * @deprecated Use GA Task Group instead
- */
- create(body: TaskGroupCreateParams, options?: RequestOptions): APIPromise {
- return this._client.post('/v1beta/tasks/groups', {
- body,
- ...options,
- headers: buildHeaders([{ 'parallel-beta': 'search-extract-2025-10-10' }, options?.headers]),
- });
- }
-
- /**
- * Retrieves aggregated status across runs in a TaskGroup.
- *
- * @deprecated Use GA Task Group instead
- */
- retrieve(taskGroupID: string, options?: RequestOptions): APIPromise {
- return this._client.get(path`/v1beta/tasks/groups/${taskGroupID}`, {
- ...options,
- headers: buildHeaders([{ 'parallel-beta': 'search-extract-2025-10-10' }, options?.headers]),
- });
- }
-
- /**
- * Initiates multiple task runs within a TaskGroup.
- *
- * @deprecated Use GA Task Group instead
- */
- addRuns(
- taskGroupID: string,
- params: TaskGroupAddRunsParams,
- options?: RequestOptions,
- ): APIPromise {
- const { refresh_status, betas, ...body } = params;
- return this._client.post(path`/v1beta/tasks/groups/${taskGroupID}/runs`, {
- query: { refresh_status },
- body,
- ...options,
- headers: buildHeaders([
- { 'parallel-beta': [...(betas ?? []), 'search-extract-2025-10-10'].toString() },
- options?.headers,
- ]),
- });
- }
-
- /**
- * Streams events from a TaskGroup: status updates and run completions.
- *
- * The connection will remain open for up to an hour as long as at least one run in
- * the group is still active.
- *
- * @deprecated Use GA Task Group instead
- */
- events(
- taskGroupID: string,
- query: TaskGroupEventsParams | undefined = {},
- options?: RequestOptions,
- ): APIPromise> {
- return this._client.get(path`/v1beta/tasks/groups/${taskGroupID}/events`, {
- query,
- ...options,
- headers: buildHeaders([
- { 'parallel-beta': 'search-extract-2025-10-10', Accept: 'text/event-stream' },
- options?.headers,
- ]),
- stream: true,
- }) as APIPromise>;
- }
-
- /**
- * Retrieves task runs in a TaskGroup and optionally their inputs and outputs.
- *
- * All runs within a TaskGroup are returned as a stream. To get the inputs and/or
- * outputs back in the stream, set the corresponding `include_input` and
- * `include_output` parameters to `true`.
- *
- * The stream is resumable using the `event_id` as the cursor. To resume a stream,
- * specify the `last_event_id` parameter with the `event_id` of the last event in
- * the stream. The stream will resume from the next event after the
- * `last_event_id`.
- *
- * @deprecated Use GA Task Group instead
- */
- getRuns(
- taskGroupID: string,
- query: TaskGroupGetRunsParams | undefined = {},
- options?: RequestOptions,
- ): APIPromise> {
- return this._client.get(path`/v1beta/tasks/groups/${taskGroupID}/runs`, {
- query,
- ...options,
- headers: buildHeaders([
- { 'parallel-beta': 'search-extract-2025-10-10', Accept: 'text/event-stream' },
- options?.headers,
- ]),
- stream: true,
- }) as APIPromise>;
- }
-}
-
-/**
- * Event indicating an update to group status.
- */
-export type TaskGroupEventsResponse =
- | TaskGroupAPI.TaskGroupStatusEvent
- | TaskRunAPI.TaskRunEvent
- | TaskRunAPI.ErrorEvent;
-
-/**
- * Event when a task run transitions to a non-active status.
- *
- * May indicate completion, cancellation, or failure.
- */
-export type TaskGroupGetRunsResponse = TaskRunAPI.TaskRunEvent | TaskRunAPI.ErrorEvent;
-
-export type TaskGroupStatus = TaskGroupAPI.TaskGroupStatus;
-
-export type TaskGroupStatusEvent = TaskGroupAPI.TaskGroupStatusEvent;
-
-export type TaskGroupRunResponse = TaskGroupAPI.TaskGroupRunResponse;
-
-export interface TaskGroupCreateParams {
- /**
- * User-provided metadata stored with the task group.
- */
- metadata?: { [key: string]: string | number | boolean } | null;
-}
-
-export interface TaskGroupAddRunsParams {
- /**
- * Body param: List of task runs to execute. Up to 1,000 runs can be specified per
- * request. If you'd like to add more runs, split them across multiple TaskGroup
- * POST requests.
- */
- inputs: Array;
-
- /**
- * Query param
- */
- refresh_status?: boolean;
-
- /**
- * Body param: Specification for a task.
- *
- * Auto output schemas can be specified by setting `output_schema={"type":"auto"}`.
- * Not specifying a TaskSpec is the same as setting an auto output schema.
- *
- * For convenience bare strings are also accepted as input or output schemas.
- */
- default_task_spec?: TaskRunAPI.TaskSpec | null;
-
- /**
- * Header param: Optional header to specify the beta version(s) to enable.
- */
- betas?: Array;
-}
-
-export interface TaskGroupEventsParams {
- last_event_id?: string | null;
-
- timeout?: number | null;
-}
-
-export interface TaskGroupGetRunsParams {
- include_input?: boolean;
-
- include_output?: boolean;
-
- last_event_id?: string | null;
-
- status?:
- | 'queued'
- | 'action_required'
- | 'running'
- | 'completed'
- | 'failed'
- | 'cancelling'
- | 'cancelled'
- | null;
-}
-
-export declare namespace TaskGroup {
- export {
- type TaskGroupEventsResponse as TaskGroupEventsResponse,
- type TaskGroupGetRunsResponse as TaskGroupGetRunsResponse,
- type TaskGroupStatus as TaskGroupStatus,
- type TaskGroupStatusEvent as TaskGroupStatusEvent,
- type TaskGroupRunResponse as TaskGroupRunResponse,
- type TaskGroupCreateParams as TaskGroupCreateParams,
- type TaskGroupAddRunsParams as TaskGroupAddRunsParams,
- type TaskGroupEventsParams as TaskGroupEventsParams,
- type TaskGroupGetRunsParams as TaskGroupGetRunsParams,
- };
-}
-
-// Backwards-compat namespace member (deprecated). `TaskGroupEventsResponse.TaskGroupStatusEvent`
-// was previously a nested interface; the type now lives at the file's top
-// level (re-exported from GA `TaskGroupAPI.TaskGroupStatusEvent`).
-type _TaskGroupStatusEvent = TaskGroupStatusEvent;
-export namespace TaskGroupEventsResponse {
- /** @deprecated Use `Beta.TaskGroupStatusEvent` instead. */
- export type TaskGroupStatusEvent = _TaskGroupStatusEvent;
-}
diff --git a/src/resources/beta/task-run.ts b/src/resources/beta/task-run.ts
deleted file mode 100644
index e711398..0000000
--- a/src/resources/beta/task-run.ts
+++ /dev/null
@@ -1,276 +0,0 @@
-// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-import { APIResource } from '../../core/resource';
-import * as Shared from '../shared';
-import * as TaskRunAPI from '../task-run';
-import { APIPromise } from '../../core/api-promise';
-import { Stream } from '../../core/streaming';
-import { buildHeaders } from '../../internal/headers';
-import { RequestOptions } from '../../internal/request-options';
-import { path } from '../../internal/utils/path';
-
-/**
- * The Task API executes web research and extraction tasks. Clients submit a natural-language objective with an optional input schema; the service plans retrieval, fetches relevant URLs, and returns outputs that conform to a provided or inferred JSON schema. Supports deep research style queries and can return rich structured JSON outputs. Processors trade-off between cost, latency, and quality. Each processor supports calibrated confidences.
- * - Output metadata: citations, excerpts, reasoning, and confidence per field
- *
- * Task Groups enable batch execution of many independent Task runs with group-level monitoring and failure handling.
- * - Submit hundreds or thousands of Tasks as a single group
- * - Observe group progress and receive results as they complete
- * - Real-time updates via Server-Sent Events (SSE)
- * - Add tasks to an existing group while it is running
- * - Group-level retry and error aggregation
- *
- * @deprecated Use GA Task Run instead
- */
-export class TaskRun extends APIResource {
- /**
- * Initiates a task run.
- *
- * Returns immediately with a run object in status 'queued'.
- *
- * Beta features can be enabled by setting the 'parallel-beta' header.
- *
- * @deprecated Use GA Task Run instead
- */
- create(params: TaskRunCreateParams, options?: RequestOptions): APIPromise {
- const { betas, ...body } = params;
- return this._client.post('/v1/tasks/runs', {
- body,
- ...options,
- headers: buildHeaders([
- { 'parallel-beta': [...(betas ?? []), 'search-extract-2025-10-10'].toString() },
- options?.headers,
- ]),
- });
- }
-
- /**
- * Streams events for a task run.
- *
- * Returns a stream of events showing progress updates and state changes for the
- * task run.
- *
- * For task runs that did not have enable_events set to true during creation, the
- * frequency of events will be reduced.
- *
- * @deprecated Use GA Task Run instead
- */
- events(runID: string, options?: RequestOptions): APIPromise> {
- return this._client.get(path`/v1beta/tasks/runs/${runID}/events`, {
- ...options,
- headers: buildHeaders([
- { 'parallel-beta': 'search-extract-2025-10-10', Accept: 'text/event-stream' },
- options?.headers,
- ]),
- stream: true,
- }) as APIPromise>;
- }
-
- /**
- * Retrieves a run result by run_id, blocking until the run is completed.
- *
- * @deprecated Use GA Task Run instead
- */
- result(
- runID: string,
- params: TaskRunResultParams | null | undefined = {},
- options?: RequestOptions,
- ): APIPromise {
- const { betas, ...query } = params ?? {};
- return this._client.get(path`/v1/tasks/runs/${runID}/result`, {
- query,
- ...options,
- headers: buildHeaders([
- { 'parallel-beta': [...(betas ?? []), 'search-extract-2025-10-10'].toString() },
- options?.headers,
- ]),
- });
- }
-}
-
-/**
- * Model for the parallel-beta header.
- */
-export type ParallelBeta =
- | 'mcp-server-2025-07-17'
- | 'events-sse-2025-07-24'
- | 'webhook-2025-08-12'
- | 'findall-2025-09-15'
- | 'search-extract-2025-10-10'
- | 'field-basis-2025-11-25'
- | (string & {});
-
-/**
- * A progress update for a task run.
- */
-export type TaskRunEventsResponse =
- | TaskRunAPI.TaskRunProgressStatsEvent
- | TaskRunAPI.TaskRunProgressMessageEvent
- | TaskRunAPI.TaskRunEvent
- | TaskRunAPI.ErrorEvent;
-
-/**
- * @deprecated Use parallel.types.task_run.TaskRunInput instead
- */
-export type BetaRunInput = TaskRunAPI.RunInput;
-
-/**
- * @deprecated Use parallel.types.task_run.TaskRunResult instead
- */
-export type BetaTaskRunResult = TaskRunAPI.TaskRunResult;
-
-/**
- * Backwards-compatible namespace for `BetaTaskRunResult`.
- * @deprecated Use `TaskRunJsonOutput` and `TaskRunTextOutput` from `task-run` instead.
- */
-export namespace BetaTaskRunResult {
- /** @deprecated Use `TaskRunAPI.TaskRunTextOutput` instead */
- export type BetaTaskRunTextOutput = TaskRunAPI.TaskRunTextOutput;
- /** @deprecated Use `TaskRunAPI.TaskRunJsonOutput` instead */
- export type BetaTaskRunJsonOutput = TaskRunAPI.TaskRunJsonOutput;
-}
-
-/**
- * @deprecated Use parallel.types.task_run.Webhook instead
- */
-export type Webhook = TaskRunAPI.Webhook;
-
-/**
- * @deprecated Use parallel.types.task_run.McpServer instead
- */
-export type McpServer = TaskRunAPI.McpServer;
-
-/**
- * @deprecated Use parallel.types.task_run.McpToolCall instead
- */
-export type McpToolCall = TaskRunAPI.McpToolCall;
-
-/**
- * @deprecated Use parallel.types.task_run.TaskRunEvent instead
- */
-export type TaskRunEvent = TaskRunAPI.TaskRunEvent;
-
-/**
- * @deprecated Use parallel.types.task_run.ErrorEvent instead
- */
-export type ErrorEvent = TaskRunAPI.ErrorEvent;
-
-export interface TaskRunCreateParams {
- /**
- * Body param: Input to the task, either text or a JSON object.
- */
- input: string | { [key: string]: unknown };
-
- /**
- * Body param: Processor to use for the task.
- */
- processor: string;
-
- /**
- * Body param: Advanced search configuration for a task run.
- */
- advanced_settings?: TaskRunAPI.TaskAdvancedSettings | null;
-
- /**
- * Body param: Controls tracking of task run execution progress. When set to true,
- * progress events are recorded and can be accessed via the
- * [Task Run events](https://docs.parallel.ai/api-reference) endpoint. When false,
- * no progress events are tracked. Note that progress tracking cannot be enabled
- * after a run has been created. The flag is set to true by default for premium
- * processors (pro and above).
- */
- enable_events?: boolean | null;
-
- /**
- * Body param: Optional list of MCP servers to use for the run.
- */
- mcp_servers?: Array | null;
-
- /**
- * Body param: User-provided metadata stored with the run. Keys and values must be
- * strings with a maximum length of 16 and 512 characters respectively.
- */
- metadata?: { [key: string]: string | number | boolean } | null;
-
- /**
- * Body param: Interaction ID to use as context for this request.
- */
- previous_interaction_id?: string | null;
-
- /**
- * Body param: Source policy for web search results.
- *
- * This policy governs which sources are allowed/disallowed in results.
- */
- source_policy?: Shared.SourcePolicy | null;
-
- /**
- * Body param: Specification for a task.
- *
- * Auto output schemas can be specified by setting `output_schema={"type":"auto"}`.
- * Not specifying a TaskSpec is the same as setting an auto output schema.
- *
- * For convenience bare strings are also accepted as input or output schemas.
- */
- task_spec?: TaskRunAPI.TaskSpec | null;
-
- /**
- * Body param: Webhooks for Task Runs.
- */
- webhook?: TaskRunAPI.Webhook | null;
-
- /**
- * Header param: Optional header to specify the beta version(s) to enable.
- */
- betas?: Array;
-}
-
-export interface TaskRunResultParams {
- /**
- * Query param
- */
- timeout?: number;
-
- /**
- * Header param: Optional header to specify the beta version(s) to enable.
- */
- betas?: Array;
-}
-
-export declare namespace TaskRun {
- export {
- type ParallelBeta as ParallelBeta,
- type TaskRunEventsResponse as TaskRunEventsResponse,
- type BetaRunInput as BetaRunInput,
- type BetaTaskRunResult as BetaTaskRunResult,
- type Webhook as Webhook,
- type McpServer as McpServer,
- type McpToolCall as McpToolCall,
- type TaskRunEvent as TaskRunEvent,
- type ErrorEvent as ErrorEvent,
- type TaskRunCreateParams as TaskRunCreateParams,
- type TaskRunResultParams as TaskRunResultParams,
- };
-}
-
-// Backwards-compat namespace members (deprecated). Previously these types
-// existed as nested interfaces under their parent's namespace; they've since
-// moved to top-level model types in the GA `task-run` module.
-type _TaskAdvancedSettings = TaskRunAPI.TaskAdvancedSettings;
-type _TaskRunProgressMessageEvent = TaskRunAPI.TaskRunProgressMessageEvent;
-type _TaskRunProgressStatsEvent = TaskRunAPI.TaskRunProgressStatsEvent;
-type _TaskRunSourceStats = TaskRunAPI.TaskRunSourceStats;
-export namespace TaskRunCreateParams {
- /** @deprecated Use `Parallel.TaskAdvancedSettings` instead. */
- export type AdvancedSettings = _TaskAdvancedSettings;
-}
-export namespace TaskRunEventsResponse {
- /** @deprecated Use `Parallel.TaskRunProgressMessageEvent` instead. */
- export type TaskRunProgressMessageEvent = _TaskRunProgressMessageEvent;
- /** @deprecated Use `Parallel.TaskRunProgressStatsEvent` instead. */
- export type TaskRunProgressStatsEvent = _TaskRunProgressStatsEvent;
- export namespace TaskRunProgressStatsEvent {
- /** @deprecated Use `Parallel.TaskRunSourceStats` instead. */
- export type SourceStats = _TaskRunSourceStats;
- }
-}
diff --git a/src/resources/task-group.ts b/src/resources/task-group.ts
index 5f80745..aa2630c 100644
--- a/src/resources/task-group.ts
+++ b/src/resources/task-group.ts
@@ -2,7 +2,6 @@
import { APIResource } from '../core/resource';
import * as TaskRunAPI from './task-run';
-import * as BetaTaskRunAPI from './beta/task-run';
import { APIPromise } from '../core/api-promise';
import { Stream } from '../core/streaming';
import { buildHeaders } from '../internal/headers';
@@ -267,7 +266,15 @@ export interface TaskGroupAddRunsParams {
/**
* Header param: Optional header to specify the beta version(s) to enable.
*/
- betas?: Array;
+ betas?: Array<
+ | 'mcp-server-2025-07-17'
+ | 'events-sse-2025-07-24'
+ | 'webhook-2025-08-12'
+ | 'findall-2025-09-15'
+ | 'search-extract-2025-10-10'
+ | 'field-basis-2025-11-25'
+ | (string & {})
+ >;
}
export interface TaskGroupEventsParams {
diff --git a/src/resources/task-run.ts b/src/resources/task-run.ts
index 450f728..13acae1 100644
--- a/src/resources/task-run.ts
+++ b/src/resources/task-run.ts
@@ -2,7 +2,6 @@
import { APIResource } from '../core/resource';
import * as Shared from './shared';
-import * as BetaTaskRunAPI from './beta/task-run';
import { APIPromise } from '../core/api-promise';
import { Stream } from '../core/streaming';
import { buildHeaders } from '../internal/headers';
@@ -731,7 +730,15 @@ export interface TaskRunCreateParams {
/**
* Header param: Optional header to specify the beta version(s) to enable.
*/
- betas?: Array;
+ betas?: Array<
+ | 'mcp-server-2025-07-17'
+ | 'events-sse-2025-07-24'
+ | 'webhook-2025-08-12'
+ | 'findall-2025-09-15'
+ | 'search-extract-2025-10-10'
+ | 'field-basis-2025-11-25'
+ | (string & {})
+ >;
}
export interface TaskRunResultParams {
@@ -743,7 +750,15 @@ export interface TaskRunResultParams {
/**
* Header param: Optional header to specify the beta version(s) to enable.
*/
- betas?: Array;
+ betas?: Array<
+ | 'mcp-server-2025-07-17'
+ | 'events-sse-2025-07-24'
+ | 'webhook-2025-08-12'
+ | 'findall-2025-09-15'
+ | 'search-extract-2025-10-10'
+ | 'field-basis-2025-11-25'
+ | (string & {})
+ >;
}
export declare namespace TaskRun {
diff --git a/tests/api-resources/beta/beta.test.ts b/tests/api-resources/beta/beta.test.ts
deleted file mode 100644
index 0e55b6c..0000000
--- a/tests/api-resources/beta/beta.test.ts
+++ /dev/null
@@ -1,50 +0,0 @@
-// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-import Parallel from 'parallel-web';
-
-const client = new Parallel({
- apiKey: 'My API Key',
- baseURL: process.env['TEST_API_BASE_URL'] ?? 'http://127.0.0.1:4010',
-});
-
-describe('resource beta', () => {
- test('extract: only required params', async () => {
- const responsePromise = client.beta.extract({ urls: ['string'] });
- const rawResponse = await responsePromise.asResponse();
- expect(rawResponse).toBeInstanceOf(Response);
- const response = await responsePromise;
- expect(response).not.toBeInstanceOf(Response);
- const dataAndResponse = await responsePromise.withResponse();
- expect(dataAndResponse.data).toBe(response);
- expect(dataAndResponse.response).toBe(rawResponse);
- });
-
- test('extract: required and optional params', async () => {
- const response = await client.beta.extract({
- urls: ['string'],
- client_model: 'claude-opus-4-7',
- excerpts: true,
- fetch_policy: {
- disable_cache_fallback: true,
- max_age_seconds: 86400,
- timeout_seconds: 60,
- },
- full_content: true,
- objective: 'objective',
- search_queries: ['string'],
- session_id: 'session_id',
- betas: ['mcp-server-2025-07-17'],
- });
- });
-
- test('search', async () => {
- const responsePromise = client.beta.search({});
- const rawResponse = await responsePromise.asResponse();
- expect(rawResponse).toBeInstanceOf(Response);
- const response = await responsePromise;
- expect(response).not.toBeInstanceOf(Response);
- const dataAndResponse = await responsePromise.withResponse();
- expect(dataAndResponse.data).toBe(response);
- expect(dataAndResponse.response).toBe(rawResponse);
- });
-});
diff --git a/tests/api-resources/beta/task-group.test.ts b/tests/api-resources/beta/task-group.test.ts
deleted file mode 100644
index 1587fe7..0000000
--- a/tests/api-resources/beta/task-group.test.ts
+++ /dev/null
@@ -1,150 +0,0 @@
-// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-import Parallel from 'parallel-web';
-
-const client = new Parallel({
- apiKey: 'My API Key',
- baseURL: process.env['TEST_API_BASE_URL'] ?? 'http://127.0.0.1:4010',
-});
-
-describe('resource taskGroup', () => {
- test('create', async () => {
- const responsePromise = client.beta.taskGroup.create({});
- const rawResponse = await responsePromise.asResponse();
- expect(rawResponse).toBeInstanceOf(Response);
- const response = await responsePromise;
- expect(response).not.toBeInstanceOf(Response);
- const dataAndResponse = await responsePromise.withResponse();
- expect(dataAndResponse.data).toBe(response);
- expect(dataAndResponse.response).toBe(rawResponse);
- });
-
- test('retrieve', async () => {
- const responsePromise = client.beta.taskGroup.retrieve('taskgroup_id');
- const rawResponse = await responsePromise.asResponse();
- expect(rawResponse).toBeInstanceOf(Response);
- const response = await responsePromise;
- expect(response).not.toBeInstanceOf(Response);
- const dataAndResponse = await responsePromise.withResponse();
- expect(dataAndResponse.data).toBe(response);
- expect(dataAndResponse.response).toBe(rawResponse);
- });
-
- test('addRuns: only required params', async () => {
- const responsePromise = client.beta.taskGroup.addRuns('taskgroup_id', {
- inputs: [{ input: 'What was the GDP of France in 2023?', processor: 'base' }],
- });
- const rawResponse = await responsePromise.asResponse();
- expect(rawResponse).toBeInstanceOf(Response);
- const response = await responsePromise;
- expect(response).not.toBeInstanceOf(Response);
- const dataAndResponse = await responsePromise.withResponse();
- expect(dataAndResponse.data).toBe(response);
- expect(dataAndResponse.response).toBe(rawResponse);
- });
-
- test('addRuns: required and optional params', async () => {
- const response = await client.beta.taskGroup.addRuns('taskgroup_id', {
- inputs: [
- {
- input: 'What was the GDP of France in 2023?',
- processor: 'base',
- advanced_settings: { location: 'us' },
- enable_events: true,
- mcp_servers: [
- {
- name: 'name',
- url: 'url',
- allowed_tools: ['string'],
- headers: { foo: 'string' },
- type: 'url',
- },
- ],
- metadata: { foo: 'string' },
- previous_interaction_id: 'previous_interaction_id',
- source_policy: {
- after_date: '2024-01-01',
- exclude_domains: ['reddit.com', 'x.com', '.ai'],
- include_domains: ['wikipedia.org', 'usa.gov', '.edu'],
- },
- task_spec: {
- output_schema: {
- json_schema: {
- additionalProperties: 'bar',
- properties: 'bar',
- required: 'bar',
- type: 'bar',
- },
- type: 'json',
- },
- input_schema: 'string',
- },
- webhook: { url: 'url', event_types: ['task_run.status'] },
- },
- ],
- refresh_status: true,
- default_task_spec: {
- output_schema: {
- json_schema: {
- additionalProperties: 'bar',
- properties: 'bar',
- required: 'bar',
- type: 'bar',
- },
- type: 'json',
- },
- input_schema: 'string',
- },
- betas: ['mcp-server-2025-07-17'],
- });
- });
-
- test('events', async () => {
- const responsePromise = client.beta.taskGroup.events('taskgroup_id');
- const rawResponse = await responsePromise.asResponse();
- expect(rawResponse).toBeInstanceOf(Response);
- const response = await responsePromise;
- expect(response).not.toBeInstanceOf(Response);
- const dataAndResponse = await responsePromise.withResponse();
- expect(dataAndResponse.data).toBe(response);
- expect(dataAndResponse.response).toBe(rawResponse);
- });
-
- test('events: request options and params are passed correctly', async () => {
- // ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error
- await expect(
- client.beta.taskGroup.events(
- 'taskgroup_id',
- { last_event_id: 'last_event_id', timeout: 0 },
- { path: '/_stainless_unknown_path' },
- ),
- ).rejects.toThrow(Parallel.NotFoundError);
- });
-
- test('getRuns', async () => {
- const responsePromise = client.beta.taskGroup.getRuns('taskgroup_id');
- const rawResponse = await responsePromise.asResponse();
- expect(rawResponse).toBeInstanceOf(Response);
- const response = await responsePromise;
- expect(response).not.toBeInstanceOf(Response);
- const dataAndResponse = await responsePromise.withResponse();
- expect(dataAndResponse.data).toBe(response);
- expect(dataAndResponse.response).toBe(rawResponse);
- });
-
- test('getRuns: request options and params are passed correctly', async () => {
- // ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error
- await expect(
- client.beta.taskGroup.getRuns(
- 'taskgroup_id',
- {
- 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
deleted file mode 100644
index bf203d6..0000000
--- a/tests/api-resources/beta/task-run.test.ts
+++ /dev/null
@@ -1,96 +0,0 @@
-// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-import Parallel from 'parallel-web';
-
-const client = new Parallel({
- apiKey: 'My API Key',
- baseURL: process.env['TEST_API_BASE_URL'] ?? 'http://127.0.0.1:4010',
-});
-
-describe('resource taskRun', () => {
- test('create: only required params', async () => {
- const responsePromise = client.beta.taskRun.create({
- input: 'What was the GDP of France in 2023?',
- processor: 'base',
- });
- const rawResponse = await responsePromise.asResponse();
- expect(rawResponse).toBeInstanceOf(Response);
- const response = await responsePromise;
- expect(response).not.toBeInstanceOf(Response);
- const dataAndResponse = await responsePromise.withResponse();
- expect(dataAndResponse.data).toBe(response);
- expect(dataAndResponse.response).toBe(rawResponse);
- });
-
- test('create: required and optional params', async () => {
- const response = await client.beta.taskRun.create({
- input: 'What was the GDP of France in 2023?',
- processor: 'base',
- advanced_settings: { location: 'us' },
- enable_events: true,
- mcp_servers: [
- {
- name: 'name',
- url: 'url',
- allowed_tools: ['string'],
- headers: { foo: 'string' },
- type: 'url',
- },
- ],
- metadata: { foo: 'string' },
- previous_interaction_id: 'previous_interaction_id',
- source_policy: {
- after_date: '2024-01-01',
- exclude_domains: ['reddit.com', 'x.com', '.ai'],
- include_domains: ['wikipedia.org', 'usa.gov', '.edu'],
- },
- task_spec: {
- output_schema: {
- json_schema: {
- additionalProperties: 'bar',
- properties: 'bar',
- required: 'bar',
- type: 'bar',
- },
- type: 'json',
- },
- input_schema: 'string',
- },
- webhook: { url: 'url', event_types: ['task_run.status'] },
- betas: ['mcp-server-2025-07-17'],
- });
- });
-
- test('events', async () => {
- const responsePromise = client.beta.taskRun.events('run_id');
- const rawResponse = await responsePromise.asResponse();
- expect(rawResponse).toBeInstanceOf(Response);
- const response = await responsePromise;
- expect(response).not.toBeInstanceOf(Response);
- const dataAndResponse = await responsePromise.withResponse();
- expect(dataAndResponse.data).toBe(response);
- expect(dataAndResponse.response).toBe(rawResponse);
- });
-
- test('result', async () => {
- const responsePromise = client.beta.taskRun.result('run_id');
- const rawResponse = await responsePromise.asResponse();
- expect(rawResponse).toBeInstanceOf(Response);
- const response = await responsePromise;
- expect(response).not.toBeInstanceOf(Response);
- const dataAndResponse = await responsePromise.withResponse();
- expect(dataAndResponse.data).toBe(response);
- expect(dataAndResponse.response).toBe(rawResponse);
- });
-
- test('result: request options and params are passed correctly', async () => {
- // ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error
- await expect(
- client.beta.taskRun.result(
- 'run_id',
- { timeout: 0, betas: ['mcp-server-2025-07-17'] },
- { path: '/_stainless_unknown_path' },
- ),
- ).rejects.toThrow(Parallel.NotFoundError);
- });
-});
From 5ff5f6a9732ad1037ee0f11c55034220151c5d83 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Tue, 12 May 2026 22:05:43 +0000
Subject: [PATCH 4/8] feat(api): Add parallel_beta typing back
---
.stats.yml | 4 +-
src/resources/beta/api.md | 1 +
src/resources/beta/beta.ts | 2 +
src/resources/beta/findall.ts | 103 ++++++++--------------------------
src/resources/beta/index.ts | 1 +
src/resources/task-group.ts | 11 +---
src/resources/task-run.ts | 21 +------
7 files changed, 33 insertions(+), 110 deletions(-)
diff --git a/.stats.yml b/.stats.yml
index c994788..2b1f5b5 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 30
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/parallel-web/parallel-sdk-95bc4c3d92d853117110dbc74ef5f3dc142e288cdbdca89f1cc64f102922a839.yml
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/parallel-web/parallel-sdk-74b1570d9fd4b863fed090a7a33510e2a3d46d93a05346761f9e1bbf8b93361d.yml
openapi_spec_hash: c4fc5b0cb3bc48076f736a0ad2b2e75e
-config_hash: 7a6dacc64d87490958b733ecc4fa39d2
+config_hash: a3dc5e363f6fdf4c7776c12c14ba5fd1
diff --git a/src/resources/beta/api.md b/src/resources/beta/api.md
index 7ef02d2..6b51817 100644
--- a/src/resources/beta/api.md
+++ b/src/resources/beta/api.md
@@ -20,6 +20,7 @@ Types:
- FindAllSchemaUpdatedEvent
- IngestInput
- MatchCondition
+- ParallelBeta
- FindAllEventsResponse
Methods:
diff --git a/src/resources/beta/beta.ts b/src/resources/beta/beta.ts
index 7a95136..4ea0c76 100644
--- a/src/resources/beta/beta.ts
+++ b/src/resources/beta/beta.ts
@@ -31,6 +31,7 @@ import {
FindAllSchemaUpdatedEvent,
IngestInput,
MatchCondition,
+ ParallelBeta,
} from './findall';
export class Beta extends APIResource {
@@ -58,6 +59,7 @@ export declare namespace Beta {
type FindAllSchemaUpdatedEvent as FindAllSchemaUpdatedEvent,
type IngestInput as IngestInput,
type MatchCondition as MatchCondition,
+ type ParallelBeta as ParallelBeta,
type FindAllEventsResponse as FindAllEventsResponse,
type FindAllCreateParams as FindAllCreateParams,
type FindAllRetrieveParams as FindAllRetrieveParams,
diff --git a/src/resources/beta/findall.ts b/src/resources/beta/findall.ts
index 0620457..6b16c7f 100644
--- a/src/resources/beta/findall.ts
+++ b/src/resources/beta/findall.ts
@@ -745,6 +745,18 @@ export interface MatchCondition {
name: string;
}
+/**
+ * Model for the parallel-beta header.
+ */
+export type ParallelBeta =
+ | 'mcp-server-2025-07-17'
+ | 'events-sse-2025-07-24'
+ | 'webhook-2025-08-12'
+ | 'findall-2025-09-15'
+ | 'search-extract-2025-10-10'
+ | 'field-basis-2025-11-25'
+ | (string & {});
+
/**
* Event containing full snapshot of FindAll run state.
*/
@@ -799,15 +811,7 @@ export interface FindAllCreateParams {
/**
* Header param: Optional header to specify the beta version(s) to enable.
*/
- betas?: Array<
- | 'mcp-server-2025-07-17'
- | 'events-sse-2025-07-24'
- | 'webhook-2025-08-12'
- | 'findall-2025-09-15'
- | 'search-extract-2025-10-10'
- | 'field-basis-2025-11-25'
- | (string & {})
- >;
+ betas?: Array;
}
export namespace FindAllCreateParams {
@@ -831,30 +835,14 @@ export interface FindAllRetrieveParams {
/**
* Optional header to specify the beta version(s) to enable.
*/
- betas?: Array<
- | 'mcp-server-2025-07-17'
- | 'events-sse-2025-07-24'
- | 'webhook-2025-08-12'
- | 'findall-2025-09-15'
- | 'search-extract-2025-10-10'
- | 'field-basis-2025-11-25'
- | (string & {})
- >;
+ betas?: Array;
}
export interface FindAllCancelParams {
/**
* Optional header to specify the beta version(s) to enable.
*/
- betas?: Array<
- | 'mcp-server-2025-07-17'
- | 'events-sse-2025-07-24'
- | 'webhook-2025-08-12'
- | 'findall-2025-09-15'
- | 'search-extract-2025-10-10'
- | 'field-basis-2025-11-25'
- | (string & {})
- >;
+ betas?: Array;
}
export interface FindAllCandidatesParams {
@@ -894,15 +882,7 @@ export interface FindAllEnrichParams {
/**
* Header param: Optional header to specify the beta version(s) to enable.
*/
- betas?: Array<
- | 'mcp-server-2025-07-17'
- | 'events-sse-2025-07-24'
- | 'webhook-2025-08-12'
- | 'findall-2025-09-15'
- | 'search-extract-2025-10-10'
- | 'field-basis-2025-11-25'
- | (string & {})
- >;
+ betas?: Array;
}
export interface FindAllEventsParams {
@@ -919,15 +899,7 @@ export interface FindAllEventsParams {
/**
* Header param: Optional header to specify the beta version(s) to enable.
*/
- betas?: Array<
- | 'mcp-server-2025-07-17'
- | 'events-sse-2025-07-24'
- | 'webhook-2025-08-12'
- | 'findall-2025-09-15'
- | 'search-extract-2025-10-10'
- | 'field-basis-2025-11-25'
- | (string & {})
- >;
+ betas?: Array;
}
export interface FindAllExtendParams {
@@ -941,15 +913,7 @@ export interface FindAllExtendParams {
/**
* Header param: Optional header to specify the beta version(s) to enable.
*/
- betas?: Array<
- | 'mcp-server-2025-07-17'
- | 'events-sse-2025-07-24'
- | 'webhook-2025-08-12'
- | 'findall-2025-09-15'
- | 'search-extract-2025-10-10'
- | 'field-basis-2025-11-25'
- | (string & {})
- >;
+ betas?: Array;
}
export interface FindAllIngestParams {
@@ -961,45 +925,21 @@ export interface FindAllIngestParams {
/**
* Header param: Optional header to specify the beta version(s) to enable.
*/
- betas?: Array<
- | 'mcp-server-2025-07-17'
- | 'events-sse-2025-07-24'
- | 'webhook-2025-08-12'
- | 'findall-2025-09-15'
- | 'search-extract-2025-10-10'
- | 'field-basis-2025-11-25'
- | (string & {})
- >;
+ betas?: Array;
}
export interface FindAllResultParams {
/**
* Optional header to specify the beta version(s) to enable.
*/
- betas?: Array<
- | 'mcp-server-2025-07-17'
- | 'events-sse-2025-07-24'
- | 'webhook-2025-08-12'
- | 'findall-2025-09-15'
- | 'search-extract-2025-10-10'
- | 'field-basis-2025-11-25'
- | (string & {})
- >;
+ betas?: Array;
}
export interface FindAllSchemaParams {
/**
* Optional header to specify the beta version(s) to enable.
*/
- betas?: Array<
- | 'mcp-server-2025-07-17'
- | 'events-sse-2025-07-24'
- | 'webhook-2025-08-12'
- | 'findall-2025-09-15'
- | 'search-extract-2025-10-10'
- | 'field-basis-2025-11-25'
- | (string & {})
- >;
+ betas?: Array;
}
export declare namespace FindAll {
@@ -1020,6 +960,7 @@ export declare namespace FindAll {
type FindAllSchemaUpdatedEvent as FindAllSchemaUpdatedEvent,
type IngestInput as IngestInput,
type MatchCondition as MatchCondition,
+ type ParallelBeta as ParallelBeta,
type FindAllEventsResponse as FindAllEventsResponse,
type FindAllCreateParams as FindAllCreateParams,
type FindAllRetrieveParams as FindAllRetrieveParams,
diff --git a/src/resources/beta/index.ts b/src/resources/beta/index.ts
index dfd2046..e651634 100644
--- a/src/resources/beta/index.ts
+++ b/src/resources/beta/index.ts
@@ -20,6 +20,7 @@ export {
type FindAllSchemaUpdatedEvent,
type IngestInput,
type MatchCondition,
+ type ParallelBeta,
type FindAllEventsResponse,
type FindAllCreateParams,
type FindAllRetrieveParams,
diff --git a/src/resources/task-group.ts b/src/resources/task-group.ts
index aa2630c..50d7203 100644
--- a/src/resources/task-group.ts
+++ b/src/resources/task-group.ts
@@ -2,6 +2,7 @@
import { APIResource } from '../core/resource';
import * as TaskRunAPI from './task-run';
+import * as FindAllAPI from './beta/findall';
import { APIPromise } from '../core/api-promise';
import { Stream } from '../core/streaming';
import { buildHeaders } from '../internal/headers';
@@ -266,15 +267,7 @@ export interface TaskGroupAddRunsParams {
/**
* Header param: Optional header to specify the beta version(s) to enable.
*/
- betas?: Array<
- | 'mcp-server-2025-07-17'
- | 'events-sse-2025-07-24'
- | 'webhook-2025-08-12'
- | 'findall-2025-09-15'
- | 'search-extract-2025-10-10'
- | 'field-basis-2025-11-25'
- | (string & {})
- >;
+ betas?: Array;
}
export interface TaskGroupEventsParams {
diff --git a/src/resources/task-run.ts b/src/resources/task-run.ts
index 13acae1..bd8f52e 100644
--- a/src/resources/task-run.ts
+++ b/src/resources/task-run.ts
@@ -2,6 +2,7 @@
import { APIResource } from '../core/resource';
import * as Shared from './shared';
+import * as FindAllAPI from './beta/findall';
import { APIPromise } from '../core/api-promise';
import { Stream } from '../core/streaming';
import { buildHeaders } from '../internal/headers';
@@ -730,15 +731,7 @@ export interface TaskRunCreateParams {
/**
* Header param: Optional header to specify the beta version(s) to enable.
*/
- betas?: Array<
- | 'mcp-server-2025-07-17'
- | 'events-sse-2025-07-24'
- | 'webhook-2025-08-12'
- | 'findall-2025-09-15'
- | 'search-extract-2025-10-10'
- | 'field-basis-2025-11-25'
- | (string & {})
- >;
+ betas?: Array;
}
export interface TaskRunResultParams {
@@ -750,15 +743,7 @@ export interface TaskRunResultParams {
/**
* Header param: Optional header to specify the beta version(s) to enable.
*/
- betas?: Array<
- | 'mcp-server-2025-07-17'
- | 'events-sse-2025-07-24'
- | 'webhook-2025-08-12'
- | 'findall-2025-09-15'
- | 'search-extract-2025-10-10'
- | 'field-basis-2025-11-25'
- | (string & {})
- >;
+ betas?: Array;
}
export declare namespace TaskRun {
From 18d8deb7d09db3433a2cc61fe32cb8396385d996 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Wed, 13 May 2026 02:50:29 +0000
Subject: [PATCH 5/8] ci: pin GitHub Actions to commit SHAs
Pin all GitHub Actions referenced in generated workflows (both
first-party `actions/*` and third-party) to immutable commit SHAs.
Updating pinned actions is now a deliberate codegen-side bump rather
than implicit on every workflow run.
---
.github/workflows/ci.yml | 14 +++++++-------
.github/workflows/detect-breaking-changes.yml | 4 ++--
.github/workflows/publish-npm.yml | 4 ++--
.github/workflows/release-doctor.yml | 2 +-
4 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 5b20c1d..e5153d7 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -21,10 +21,10 @@ jobs:
runs-on: ${{ github.repository == 'stainless-sdks/parallel-sdk-typescript' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
if: (github.event_name == 'push' || github.event.pull_request.head.repo.fork) && (github.event_name != 'push' || github.event.head_commit.message != 'codegen metadata')
steps:
- - uses: actions/checkout@v6
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Set up Node
- uses: actions/setup-node@v4
+ uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: '20'
@@ -43,10 +43,10 @@ jobs:
contents: read
id-token: write
steps:
- - uses: actions/checkout@v6
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Set up Node
- uses: actions/setup-node@v4
+ uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: '20'
@@ -61,7 +61,7 @@ jobs:
github.repository == 'stainless-sdks/parallel-sdk-typescript' &&
!startsWith(github.ref, 'refs/heads/stl/')
id: github-oidc
- uses: actions/github-script@v8
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
with:
script: core.setOutput('github_token', await core.getIDToken());
@@ -80,10 +80,10 @@ jobs:
runs-on: ${{ github.repository == 'stainless-sdks/parallel-sdk-typescript' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
if: github.event_name == 'push' || github.event.pull_request.head.repo.fork
steps:
- - uses: actions/checkout@v6
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Set up Node
- uses: actions/setup-node@v4
+ uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: '20'
diff --git a/.github/workflows/detect-breaking-changes.yml b/.github/workflows/detect-breaking-changes.yml
index c2c0ea6..733ec0f 100644
--- a/.github/workflows/detect-breaking-changes.yml
+++ b/.github/workflows/detect-breaking-changes.yml
@@ -15,13 +15,13 @@ jobs:
run: |
echo "FETCH_DEPTH=$(expr ${{ github.event.pull_request.commits }} + 1)" >> $GITHUB_ENV
- - uses: actions/checkout@v6
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
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
+ uses: actions/setup-node@3235b876344d2a9aa001b8d1453c930bba69e610 # v3.9.1
with:
node-version: '20'
- name: Install dependencies
diff --git a/.github/workflows/publish-npm.yml b/.github/workflows/publish-npm.yml
index 5d6cf1b..a30e70f 100644
--- a/.github/workflows/publish-npm.yml
+++ b/.github/workflows/publish-npm.yml
@@ -17,10 +17,10 @@ jobs:
id-token: write
steps:
- - uses: actions/checkout@v6
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Set up Node
- uses: actions/setup-node@v3
+ uses: actions/setup-node@3235b876344d2a9aa001b8d1453c930bba69e610 # v3.9.1
with:
node-version: '20'
diff --git a/.github/workflows/release-doctor.yml b/.github/workflows/release-doctor.yml
index fb5d3b9..6ae6d0b 100644
--- a/.github/workflows/release-doctor.yml
+++ b/.github/workflows/release-doctor.yml
@@ -12,7 +12,7 @@ jobs:
if: github.repository == 'parallel-web/parallel-sdk-typescript' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch' || startsWith(github.head_ref, 'release-please') || github.head_ref == 'next')
steps:
- - uses: actions/checkout@v6
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Check release environment
run: |
From 1c31062e33450b11449eb3067bdf5145d9546df6 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Tue, 19 May 2026 02:47:03 +0000
Subject: [PATCH 6/8] chore(tests): remove redundant File import
---
tests/uploads.test.ts | 1 -
1 file changed, 1 deletion(-)
diff --git a/tests/uploads.test.ts b/tests/uploads.test.ts
index 5480828..186d1b3 100644
--- a/tests/uploads.test.ts
+++ b/tests/uploads.test.ts
@@ -1,7 +1,6 @@
import fs from 'fs';
import type { ResponseLike } from 'parallel-web/internal/to-file';
import { toFile } from 'parallel-web/core/uploads';
-import { File } from 'node:buffer';
class MyClass {
name: string = 'foo';
From 1e5e4ecbc0fb6b3648c7b1477d6f9248b8725778 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Tue, 19 May 2026 02:47:36 +0000
Subject: [PATCH 7/8] fix(typescript): upgrade tsc-multi so that it works with
Node 26
---
package.json | 2 +-
yarn.lock | 6 +++---
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/package.json b/package.json
index 1df00af..d94ee7a 100644
--- a/package.json
+++ b/package.json
@@ -43,7 +43,7 @@
"publint": "^0.2.12",
"ts-jest": "^29.1.0",
"ts-node": "^10.5.0",
- "tsc-multi": "https://github.com/stainless-api/tsc-multi/releases/download/v1.1.9/tsc-multi.tgz",
+ "tsc-multi": "https://github.com/stainless-api/tsc-multi/releases/download/v1.1.11/tsc-multi.tgz",
"tsconfig-paths": "^4.0.0",
"tslib": "^2.8.1",
"typescript": "5.8.3",
diff --git a/yarn.lock b/yarn.lock
index 18e7cbd..00842e3 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3192,9 +3192,9 @@ ts-node@^10.5.0:
v8-compile-cache-lib "^3.0.0"
yn "3.1.1"
-"tsc-multi@https://github.com/stainless-api/tsc-multi/releases/download/v1.1.9/tsc-multi.tgz":
- version "1.1.9"
- resolved "https://github.com/stainless-api/tsc-multi/releases/download/v1.1.9/tsc-multi.tgz#777f6f5d9e26bf0e94e5170990dd3a841d6707cd"
+"tsc-multi@https://github.com/stainless-api/tsc-multi/releases/download/v1.1.11/tsc-multi.tgz":
+ version "1.1.11"
+ resolved "https://github.com/stainless-api/tsc-multi/releases/download/v1.1.11/tsc-multi.tgz#010247051be13b55abdc98f787c017285149f4f2"
dependencies:
debug "^4.3.7"
fast-glob "^3.3.2"
From 06a4f549142eb4dbf40b49e8c7e764170a7e540e Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Tue, 19 May 2026 02:58:32 +0000
Subject: [PATCH 8/8] release: 0.6.0
---
.release-please-manifest.json | 2 +-
CHANGELOG.md | 21 +++++++++++++++++++++
package.json | 2 +-
src/version.ts | 2 +-
4 files changed, 24 insertions(+), 3 deletions(-)
diff --git a/.release-please-manifest.json b/.release-please-manifest.json
index f1c1e58..bcd0522 100644
--- a/.release-please-manifest.json
+++ b/.release-please-manifest.json
@@ -1,3 +1,3 @@
{
- ".": "0.5.0"
+ ".": "0.6.0"
}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index bc69885..5d34d60 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,26 @@
# Changelog
+## 0.6.0 (2026-05-19)
+
+Full Changelog: [v0.5.0...v0.6.0](https://github.com/parallel-web/parallel-sdk-typescript/compare/v0.5.0...v0.6.0)
+
+### Features
+
+* **api:** Add parallel_beta typing back ([5ff5f6a](https://github.com/parallel-web/parallel-sdk-typescript/commit/5ff5f6a9732ad1037ee0f11c55034220151c5d83))
+* **api:** Remove beta: tasks, task groups, search, and extract from SDK ([9431910](https://github.com/parallel-web/parallel-sdk-typescript/commit/9431910d0d2dcdf33f22df07ee652dea31774ce8))
+* update npm publish ([40d35bf](https://github.com/parallel-web/parallel-sdk-typescript/commit/40d35bf8b82fc8a0c671b7926c0b3caf92a17e2b))
+
+
+### Bug Fixes
+
+* **typescript:** upgrade tsc-multi so that it works with Node 26 ([1e5e4ec](https://github.com/parallel-web/parallel-sdk-typescript/commit/1e5e4ecbc0fb6b3648c7b1477d6f9248b8725778))
+
+
+### Chores
+
+* redact api-key headers in debug logs ([d729c39](https://github.com/parallel-web/parallel-sdk-typescript/commit/d729c39f0ecdc26706a2fa3631b7ba210ec7c053))
+* **tests:** remove redundant File import ([1c31062](https://github.com/parallel-web/parallel-sdk-typescript/commit/1c31062e33450b11449eb3067bdf5145d9546df6))
+
## 0.5.0 (2026-05-06)
Full Changelog: [v0.4.1...v0.5.0](https://github.com/parallel-web/parallel-sdk-typescript/compare/v0.4.1...v0.5.0)
diff --git a/package.json b/package.json
index d94ee7a..a6d1bd2 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "parallel-web",
- "version": "0.5.0",
+ "version": "0.6.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 1f5d158..30c2817 100644
--- a/src/version.ts
+++ b/src/version.ts
@@ -1 +1 @@
-export const VERSION = '0.5.0'; // x-release-please-version
+export const VERSION = '0.6.0'; // x-release-please-version