@langchain/langgraph-sdk 1.10.2 → 1.10.3-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -23,6 +23,7 @@ var RunsClient = class extends require_base.BaseClient {
23
23
  interrupt_before: payload?.interruptBefore,
24
24
  interrupt_after: payload?.interruptAfter,
25
25
  checkpoint: payload?.checkpoint,
26
+ checkpoint_id: payload?.checkpointId,
26
27
  webhook: payload?.webhook,
27
28
  multitask_strategy: payload?.multitaskStrategy,
28
29
  on_completion: payload?.onCompletion,
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["BaseClient","getRunMetadataFromResponse"],"sources":["../../../src/client/runs/index.ts"],"sourcesContent":["import {\n CancelAction,\n DefaultValues,\n Run,\n RunSelectField,\n RunStatus,\n ThreadState,\n} from \"../../schema.js\";\nimport type {\n RunsCreatePayload,\n RunsStreamPayload,\n RunsWaitPayload,\n StreamEvent,\n} from \"../../types.js\";\nimport type { StreamMode, TypedAsyncGenerator } from \"../../types.stream.js\";\nimport type { IdleReconnectMode } from \"../../utils/stream.js\";\n\nimport { BaseClient, getRunMetadataFromResponse } from \"../base.js\";\n\nexport class RunsClient<\n TStateType = DefaultValues,\n TUpdateType = TStateType,\n TCustomEventType = unknown,\n> extends BaseClient {\n stream<\n TStreamMode extends StreamMode | StreamMode[] = StreamMode,\n TSubgraphs extends boolean = false,\n >(\n threadId: null,\n assistantId: string,\n payload?: Omit<\n RunsStreamPayload<TStreamMode, TSubgraphs>,\n \"multitaskStrategy\" | \"onCompletion\"\n >\n ): TypedAsyncGenerator<\n TStreamMode,\n TSubgraphs,\n TStateType,\n TUpdateType,\n TCustomEventType\n >;\n\n stream<\n TStreamMode extends StreamMode | StreamMode[] = StreamMode,\n TSubgraphs extends boolean = false,\n >(\n threadId: string,\n assistantId: string,\n payload?: RunsStreamPayload<TStreamMode, TSubgraphs>\n ): TypedAsyncGenerator<\n TStreamMode,\n TSubgraphs,\n TStateType,\n TUpdateType,\n TCustomEventType\n >;\n\n /**\n * Create a run and stream the results.\n *\n * @param threadId The ID of the thread.\n * @param assistantId Assistant ID to use for this run.\n * @param payload Payload for creating a run.\n */\n async *stream<\n TStreamMode extends StreamMode | StreamMode[] = StreamMode,\n TSubgraphs extends boolean = false,\n >(\n threadId: string | null,\n assistantId: string,\n payload?: RunsStreamPayload<TStreamMode, TSubgraphs>\n ): TypedAsyncGenerator<\n TStreamMode,\n TSubgraphs,\n TStateType,\n TUpdateType,\n TCustomEventType\n > {\n const json: Record<string, unknown> = {\n input: payload?.input,\n command: payload?.command,\n config: payload?.config,\n context: payload?.context,\n metadata: payload?.metadata,\n stream_mode: payload?.streamMode,\n stream_subgraphs: payload?.streamSubgraphs,\n stream_resumable: payload?.streamResumable,\n feedback_keys: payload?.feedbackKeys,\n assistant_id: assistantId,\n interrupt_before: payload?.interruptBefore,\n interrupt_after: payload?.interruptAfter,\n checkpoint: payload?.checkpoint,\n webhook: payload?.webhook,\n multitask_strategy: payload?.multitaskStrategy,\n on_completion: payload?.onCompletion,\n on_disconnect: payload?.onDisconnect,\n after_seconds: payload?.afterSeconds,\n if_not_exists: payload?.ifNotExists,\n checkpoint_during: payload?.checkpointDuring,\n durability: payload?.durability,\n };\n\n yield* this.streamWithRetry({\n endpoint:\n threadId == null ? `/runs/stream` : `/threads/${threadId}/runs/stream`,\n method: \"POST\",\n json,\n signal: payload?.signal,\n idleReconnect: payload?.streamIdleReconnect,\n onInitialResponse: (response) => {\n const runMetadata = getRunMetadataFromResponse(response);\n if (runMetadata) payload?.onRunCreated?.(runMetadata);\n },\n }) as TypedAsyncGenerator<\n TStreamMode,\n TSubgraphs,\n TStateType,\n TUpdateType,\n TCustomEventType\n >;\n }\n\n /**\n * Create a run.\n *\n * @param threadId The ID of the thread.\n * @param assistantId Assistant ID to use for this run.\n * @param payload Payload for creating a run.\n * @returns The created run.\n */\n async create(\n threadId: string | null,\n assistantId: string,\n payload?: RunsCreatePayload\n ): Promise<Run> {\n const json: Record<string, unknown> = {\n input: payload?.input,\n command: payload?.command,\n config: payload?.config,\n context: payload?.context,\n metadata: payload?.metadata,\n stream_mode: payload?.streamMode,\n stream_subgraphs: payload?.streamSubgraphs,\n stream_resumable: payload?.streamResumable,\n feedback_keys: payload?.feedbackKeys,\n assistant_id: assistantId,\n interrupt_before: payload?.interruptBefore,\n interrupt_after: payload?.interruptAfter,\n webhook: payload?.webhook,\n checkpoint: payload?.checkpoint,\n checkpoint_id: payload?.checkpointId,\n multitask_strategy: payload?.multitaskStrategy,\n after_seconds: payload?.afterSeconds,\n if_not_exists: payload?.ifNotExists,\n checkpoint_during: payload?.checkpointDuring,\n durability: payload?.durability,\n on_completion: payload?.onCompletion,\n langsmith_tracer: payload?._langsmithTracer\n ? {\n project_name: payload?._langsmithTracer?.projectName,\n example_id: payload?._langsmithTracer?.exampleId,\n }\n : undefined,\n };\n\n const endpoint = threadId === null ? \"/runs\" : `/threads/${threadId}/runs`;\n const [run, response] = await this.fetch<Run>(endpoint, {\n method: \"POST\",\n json,\n signal: payload?.signal,\n withResponse: true,\n });\n\n const runMetadata = getRunMetadataFromResponse(response);\n if (runMetadata) payload?.onRunCreated?.(runMetadata);\n\n return run;\n }\n\n /**\n * Create a batch of stateless background runs.\n *\n * @param payloads An array of payloads for creating runs.\n * @returns An array of created runs.\n */\n async createBatch(\n payloads: (Omit<RunsCreatePayload, \"signal\"> & { assistantId: string })[],\n options?: { signal?: AbortSignal }\n ): Promise<Run[]> {\n const filteredPayloads = payloads\n .map((payload) => ({ ...payload, assistant_id: payload.assistantId }))\n .map((payload) => {\n return Object.fromEntries(\n Object.entries(payload).filter(([_, v]) => v !== undefined)\n );\n });\n\n return this.fetch<Run[]>(\"/runs/batch\", {\n method: \"POST\",\n json: filteredPayloads,\n signal: options?.signal,\n });\n }\n\n async wait(\n threadId: null,\n assistantId: string,\n payload?: Omit<RunsWaitPayload, \"multitaskStrategy\" | \"onCompletion\">\n ): Promise<ThreadState[\"values\"]>;\n\n async wait(\n threadId: string,\n assistantId: string,\n payload?: RunsWaitPayload\n ): Promise<ThreadState[\"values\"]>;\n\n /**\n * Create a run and wait for it to complete.\n *\n * @param threadId The ID of the thread.\n * @param assistantId Assistant ID to use for this run.\n * @param payload Payload for creating a run.\n * @returns The last values chunk of the thread.\n */\n async wait(\n threadId: string | null,\n assistantId: string,\n payload?: RunsWaitPayload\n ): Promise<ThreadState[\"values\"]> {\n const json: Record<string, unknown> = {\n input: payload?.input,\n command: payload?.command,\n config: payload?.config,\n context: payload?.context,\n metadata: payload?.metadata,\n assistant_id: assistantId,\n interrupt_before: payload?.interruptBefore,\n interrupt_after: payload?.interruptAfter,\n checkpoint: payload?.checkpoint,\n checkpoint_id: payload?.checkpointId,\n webhook: payload?.webhook,\n multitask_strategy: payload?.multitaskStrategy,\n on_completion: payload?.onCompletion,\n on_disconnect: payload?.onDisconnect,\n after_seconds: payload?.afterSeconds,\n if_not_exists: payload?.ifNotExists,\n checkpoint_during: payload?.checkpointDuring,\n durability: payload?.durability,\n langsmith_tracer: payload?._langsmithTracer\n ? {\n project_name: payload?._langsmithTracer?.projectName,\n example_id: payload?._langsmithTracer?.exampleId,\n }\n : undefined,\n };\n const endpoint =\n threadId == null ? `/runs/wait` : `/threads/${threadId}/runs/wait`;\n const [run, response] = await this.fetch<ThreadState[\"values\"]>(endpoint, {\n method: \"POST\",\n json,\n timeoutMs: null,\n signal: payload?.signal,\n withResponse: true,\n });\n\n const runMetadata = getRunMetadataFromResponse(response);\n if (runMetadata) payload?.onRunCreated?.(runMetadata);\n\n const raiseError =\n payload?.raiseError !== undefined ? payload.raiseError : true;\n if (\n raiseError &&\n \"__error__\" in run &&\n typeof run.__error__ === \"object\" &&\n run.__error__ &&\n \"error\" in run.__error__ &&\n \"message\" in run.__error__\n ) {\n throw new Error(`${run.__error__?.error}: ${run.__error__?.message}`);\n }\n return run;\n }\n\n /**\n * List all runs for a thread.\n *\n * @param threadId The ID of the thread.\n * @param options Filtering and pagination options.\n * @returns List of runs.\n */\n async list(\n threadId: string,\n options?: {\n limit?: number;\n offset?: number;\n status?: RunStatus;\n select?: RunSelectField[];\n signal?: AbortSignal;\n }\n ): Promise<Run[]> {\n return this.fetch<Run[]>(`/threads/${threadId}/runs`, {\n params: {\n limit: options?.limit ?? 10,\n offset: options?.offset ?? 0,\n status: options?.status ?? undefined,\n select: options?.select ?? undefined,\n },\n signal: options?.signal,\n });\n }\n\n /**\n * Get a run by ID.\n *\n * @param threadId The ID of the thread.\n * @param runId The ID of the run.\n * @returns The run.\n */\n async get(\n threadId: string,\n runId: string,\n options?: { signal?: AbortSignal }\n ): Promise<Run> {\n return this.fetch<Run>(`/threads/${threadId}/runs/${runId}`, {\n signal: options?.signal,\n });\n }\n\n /**\n * Cancel a run.\n *\n * @param threadId The ID of the thread.\n * @param runId The ID of the run.\n * @param wait Whether to block when canceling\n * @param action Action to take when cancelling the run. Possible values are `interrupt` or `rollback`. Default is `interrupt`.\n * @returns\n */\n async cancel(\n threadId: string,\n runId: string,\n wait: boolean = false,\n action: CancelAction = \"interrupt\",\n options: { signal?: AbortSignal } = {}\n ): Promise<void> {\n return this.fetch<void>(`/threads/${threadId}/runs/${runId}/cancel`, {\n method: \"POST\",\n params: { wait: wait ? \"1\" : \"0\", action },\n signal: options?.signal,\n });\n }\n\n /**\n * Cancel one or more runs.\n *\n * @param options Options for cancelling runs.\n * @returns\n */\n async cancelMany(options: {\n threadId?: string;\n runIds?: string[];\n status?: \"pending\" | \"running\" | \"all\";\n action?: CancelAction;\n signal?: AbortSignal;\n }): Promise<void> {\n return this.fetch<void>(`/runs/cancel`, {\n method: \"POST\",\n json: {\n thread_id: options.threadId,\n run_ids: options.runIds,\n status: options.status,\n },\n params: { action: options.action },\n signal: options.signal,\n });\n }\n\n /**\n * Block until a run is done.\n *\n * @param threadId The ID of the thread.\n * @param runId The ID of the run.\n * @returns\n */\n async join(\n threadId: string,\n runId: string,\n options?: { cancelOnDisconnect?: boolean; signal?: AbortSignal }\n ): Promise<TStateType> {\n return this.fetch<TStateType>(`/threads/${threadId}/runs/${runId}/join`, {\n timeoutMs: null,\n params: { cancel_on_disconnect: options?.cancelOnDisconnect ? \"1\" : \"0\" },\n signal: options?.signal,\n });\n }\n\n /**\n * Stream output from a run in real-time, until the run is done.\n *\n * @param threadId The ID of the thread.\n * @param runId The ID of the run.\n * @param options Additional options for controlling the stream behavior.\n * @returns An async generator yielding stream parts.\n */\n async *joinStream(\n threadId: string | undefined | null,\n runId: string,\n options?:\n | {\n signal?: AbortSignal;\n cancelOnDisconnect?: boolean;\n lastEventId?: string;\n streamMode?: StreamMode | StreamMode[];\n /**\n * Idle-reconnect policy.\n *\n * Guards against half-open sockets that hang with no\n * error or close; on idle the read re-joins with the last seen\n * `Last-Event-ID`.\n *\n * - `\"auto\"` (default): arms only once the\n * server's keep-alive heartbeats are observed and sizes the window\n * from their cadence;\n * - a `number`: a fixed idle window in ms;\n * - `0`: disables it.\n */\n streamIdleReconnect?: IdleReconnectMode;\n }\n | AbortSignal\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): AsyncGenerator<{ id?: string; event: StreamEvent; data: any }> {\n const opts =\n typeof options === \"object\" &&\n options != null &&\n // eslint-disable-next-line no-instanceof/no-instanceof\n options instanceof AbortSignal\n ? { signal: options }\n : options;\n\n yield* this.streamWithRetry({\n endpoint:\n threadId != null\n ? `/threads/${threadId}/runs/${runId}/stream`\n : `/runs/${runId}/stream`,\n method: \"GET\",\n signal: opts?.signal,\n idleReconnect: opts?.streamIdleReconnect,\n headers: opts?.lastEventId\n ? { \"Last-Event-ID\": opts.lastEventId }\n : undefined,\n params: {\n cancel_on_disconnect: opts?.cancelOnDisconnect ? \"1\" : \"0\",\n stream_mode: opts?.streamMode,\n },\n });\n }\n\n /**\n * Delete a run.\n *\n * @param threadId The ID of the thread.\n * @param runId The ID of the run.\n * @returns\n */\n async delete(\n threadId: string,\n runId: string,\n options?: { signal?: AbortSignal }\n ): Promise<void> {\n return this.fetch<void>(`/threads/${threadId}/runs/${runId}`, {\n method: \"DELETE\",\n signal: options?.signal,\n });\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","names":["BaseClient","getRunMetadataFromResponse"],"sources":["../../../src/client/runs/index.ts"],"sourcesContent":["import {\n CancelAction,\n DefaultValues,\n Run,\n RunSelectField,\n RunStatus,\n ThreadState,\n} from \"../../schema.js\";\nimport type {\n RunsCreatePayload,\n RunsStreamPayload,\n RunsWaitPayload,\n StreamEvent,\n} from \"../../types.js\";\nimport type { StreamMode, TypedAsyncGenerator } from \"../../types.stream.js\";\nimport type { IdleReconnectMode } from \"../../utils/stream.js\";\n\nimport { BaseClient, getRunMetadataFromResponse } from \"../base.js\";\n\nexport class RunsClient<\n TStateType = DefaultValues,\n TUpdateType = TStateType,\n TCustomEventType = unknown,\n> extends BaseClient {\n stream<\n TStreamMode extends StreamMode | StreamMode[] = StreamMode,\n TSubgraphs extends boolean = false,\n >(\n threadId: null,\n assistantId: string,\n payload?: Omit<\n RunsStreamPayload<TStreamMode, TSubgraphs>,\n \"multitaskStrategy\" | \"onCompletion\"\n >\n ): TypedAsyncGenerator<\n TStreamMode,\n TSubgraphs,\n TStateType,\n TUpdateType,\n TCustomEventType\n >;\n\n stream<\n TStreamMode extends StreamMode | StreamMode[] = StreamMode,\n TSubgraphs extends boolean = false,\n >(\n threadId: string,\n assistantId: string,\n payload?: RunsStreamPayload<TStreamMode, TSubgraphs>\n ): TypedAsyncGenerator<\n TStreamMode,\n TSubgraphs,\n TStateType,\n TUpdateType,\n TCustomEventType\n >;\n\n /**\n * Create a run and stream the results.\n *\n * @param threadId The ID of the thread.\n * @param assistantId Assistant ID to use for this run.\n * @param payload Payload for creating a run.\n */\n async *stream<\n TStreamMode extends StreamMode | StreamMode[] = StreamMode,\n TSubgraphs extends boolean = false,\n >(\n threadId: string | null,\n assistantId: string,\n payload?: RunsStreamPayload<TStreamMode, TSubgraphs>\n ): TypedAsyncGenerator<\n TStreamMode,\n TSubgraphs,\n TStateType,\n TUpdateType,\n TCustomEventType\n > {\n const json: Record<string, unknown> = {\n input: payload?.input,\n command: payload?.command,\n config: payload?.config,\n context: payload?.context,\n metadata: payload?.metadata,\n stream_mode: payload?.streamMode,\n stream_subgraphs: payload?.streamSubgraphs,\n stream_resumable: payload?.streamResumable,\n feedback_keys: payload?.feedbackKeys,\n assistant_id: assistantId,\n interrupt_before: payload?.interruptBefore,\n interrupt_after: payload?.interruptAfter,\n checkpoint: payload?.checkpoint,\n checkpoint_id: payload?.checkpointId,\n webhook: payload?.webhook,\n multitask_strategy: payload?.multitaskStrategy,\n on_completion: payload?.onCompletion,\n on_disconnect: payload?.onDisconnect,\n after_seconds: payload?.afterSeconds,\n if_not_exists: payload?.ifNotExists,\n checkpoint_during: payload?.checkpointDuring,\n durability: payload?.durability,\n };\n\n yield* this.streamWithRetry({\n endpoint:\n threadId == null ? `/runs/stream` : `/threads/${threadId}/runs/stream`,\n method: \"POST\",\n json,\n signal: payload?.signal,\n idleReconnect: payload?.streamIdleReconnect,\n onInitialResponse: (response) => {\n const runMetadata = getRunMetadataFromResponse(response);\n if (runMetadata) payload?.onRunCreated?.(runMetadata);\n },\n }) as TypedAsyncGenerator<\n TStreamMode,\n TSubgraphs,\n TStateType,\n TUpdateType,\n TCustomEventType\n >;\n }\n\n /**\n * Create a run.\n *\n * @param threadId The ID of the thread.\n * @param assistantId Assistant ID to use for this run.\n * @param payload Payload for creating a run.\n * @returns The created run.\n */\n async create(\n threadId: string | null,\n assistantId: string,\n payload?: RunsCreatePayload\n ): Promise<Run> {\n const json: Record<string, unknown> = {\n input: payload?.input,\n command: payload?.command,\n config: payload?.config,\n context: payload?.context,\n metadata: payload?.metadata,\n stream_mode: payload?.streamMode,\n stream_subgraphs: payload?.streamSubgraphs,\n stream_resumable: payload?.streamResumable,\n feedback_keys: payload?.feedbackKeys,\n assistant_id: assistantId,\n interrupt_before: payload?.interruptBefore,\n interrupt_after: payload?.interruptAfter,\n webhook: payload?.webhook,\n checkpoint: payload?.checkpoint,\n checkpoint_id: payload?.checkpointId,\n multitask_strategy: payload?.multitaskStrategy,\n after_seconds: payload?.afterSeconds,\n if_not_exists: payload?.ifNotExists,\n checkpoint_during: payload?.checkpointDuring,\n durability: payload?.durability,\n on_completion: payload?.onCompletion,\n langsmith_tracer: payload?._langsmithTracer\n ? {\n project_name: payload?._langsmithTracer?.projectName,\n example_id: payload?._langsmithTracer?.exampleId,\n }\n : undefined,\n };\n\n const endpoint = threadId === null ? \"/runs\" : `/threads/${threadId}/runs`;\n const [run, response] = await this.fetch<Run>(endpoint, {\n method: \"POST\",\n json,\n signal: payload?.signal,\n withResponse: true,\n });\n\n const runMetadata = getRunMetadataFromResponse(response);\n if (runMetadata) payload?.onRunCreated?.(runMetadata);\n\n return run;\n }\n\n /**\n * Create a batch of stateless background runs.\n *\n * @param payloads An array of payloads for creating runs.\n * @returns An array of created runs.\n */\n async createBatch(\n payloads: (Omit<RunsCreatePayload, \"signal\"> & { assistantId: string })[],\n options?: { signal?: AbortSignal }\n ): Promise<Run[]> {\n const filteredPayloads = payloads\n .map((payload) => ({ ...payload, assistant_id: payload.assistantId }))\n .map((payload) => {\n return Object.fromEntries(\n Object.entries(payload).filter(([_, v]) => v !== undefined)\n );\n });\n\n return this.fetch<Run[]>(\"/runs/batch\", {\n method: \"POST\",\n json: filteredPayloads,\n signal: options?.signal,\n });\n }\n\n async wait(\n threadId: null,\n assistantId: string,\n payload?: Omit<RunsWaitPayload, \"multitaskStrategy\" | \"onCompletion\">\n ): Promise<ThreadState[\"values\"]>;\n\n async wait(\n threadId: string,\n assistantId: string,\n payload?: RunsWaitPayload\n ): Promise<ThreadState[\"values\"]>;\n\n /**\n * Create a run and wait for it to complete.\n *\n * @param threadId The ID of the thread.\n * @param assistantId Assistant ID to use for this run.\n * @param payload Payload for creating a run.\n * @returns The last values chunk of the thread.\n */\n async wait(\n threadId: string | null,\n assistantId: string,\n payload?: RunsWaitPayload\n ): Promise<ThreadState[\"values\"]> {\n const json: Record<string, unknown> = {\n input: payload?.input,\n command: payload?.command,\n config: payload?.config,\n context: payload?.context,\n metadata: payload?.metadata,\n assistant_id: assistantId,\n interrupt_before: payload?.interruptBefore,\n interrupt_after: payload?.interruptAfter,\n checkpoint: payload?.checkpoint,\n checkpoint_id: payload?.checkpointId,\n webhook: payload?.webhook,\n multitask_strategy: payload?.multitaskStrategy,\n on_completion: payload?.onCompletion,\n on_disconnect: payload?.onDisconnect,\n after_seconds: payload?.afterSeconds,\n if_not_exists: payload?.ifNotExists,\n checkpoint_during: payload?.checkpointDuring,\n durability: payload?.durability,\n langsmith_tracer: payload?._langsmithTracer\n ? {\n project_name: payload?._langsmithTracer?.projectName,\n example_id: payload?._langsmithTracer?.exampleId,\n }\n : undefined,\n };\n const endpoint =\n threadId == null ? `/runs/wait` : `/threads/${threadId}/runs/wait`;\n const [run, response] = await this.fetch<ThreadState[\"values\"]>(endpoint, {\n method: \"POST\",\n json,\n timeoutMs: null,\n signal: payload?.signal,\n withResponse: true,\n });\n\n const runMetadata = getRunMetadataFromResponse(response);\n if (runMetadata) payload?.onRunCreated?.(runMetadata);\n\n const raiseError =\n payload?.raiseError !== undefined ? payload.raiseError : true;\n if (\n raiseError &&\n \"__error__\" in run &&\n typeof run.__error__ === \"object\" &&\n run.__error__ &&\n \"error\" in run.__error__ &&\n \"message\" in run.__error__\n ) {\n throw new Error(`${run.__error__?.error}: ${run.__error__?.message}`);\n }\n return run;\n }\n\n /**\n * List all runs for a thread.\n *\n * @param threadId The ID of the thread.\n * @param options Filtering and pagination options.\n * @returns List of runs.\n */\n async list(\n threadId: string,\n options?: {\n limit?: number;\n offset?: number;\n status?: RunStatus;\n select?: RunSelectField[];\n signal?: AbortSignal;\n }\n ): Promise<Run[]> {\n return this.fetch<Run[]>(`/threads/${threadId}/runs`, {\n params: {\n limit: options?.limit ?? 10,\n offset: options?.offset ?? 0,\n status: options?.status ?? undefined,\n select: options?.select ?? undefined,\n },\n signal: options?.signal,\n });\n }\n\n /**\n * Get a run by ID.\n *\n * @param threadId The ID of the thread.\n * @param runId The ID of the run.\n * @returns The run.\n */\n async get(\n threadId: string,\n runId: string,\n options?: { signal?: AbortSignal }\n ): Promise<Run> {\n return this.fetch<Run>(`/threads/${threadId}/runs/${runId}`, {\n signal: options?.signal,\n });\n }\n\n /**\n * Cancel a run.\n *\n * @param threadId The ID of the thread.\n * @param runId The ID of the run.\n * @param wait Whether to block when canceling\n * @param action Action to take when cancelling the run. Possible values are `interrupt` or `rollback`. Default is `interrupt`.\n * @returns\n */\n async cancel(\n threadId: string,\n runId: string,\n wait: boolean = false,\n action: CancelAction = \"interrupt\",\n options: { signal?: AbortSignal } = {}\n ): Promise<void> {\n return this.fetch<void>(`/threads/${threadId}/runs/${runId}/cancel`, {\n method: \"POST\",\n params: { wait: wait ? \"1\" : \"0\", action },\n signal: options?.signal,\n });\n }\n\n /**\n * Cancel one or more runs.\n *\n * @param options Options for cancelling runs.\n * @returns\n */\n async cancelMany(options: {\n threadId?: string;\n runIds?: string[];\n status?: \"pending\" | \"running\" | \"all\";\n action?: CancelAction;\n signal?: AbortSignal;\n }): Promise<void> {\n return this.fetch<void>(`/runs/cancel`, {\n method: \"POST\",\n json: {\n thread_id: options.threadId,\n run_ids: options.runIds,\n status: options.status,\n },\n params: { action: options.action },\n signal: options.signal,\n });\n }\n\n /**\n * Block until a run is done.\n *\n * @param threadId The ID of the thread.\n * @param runId The ID of the run.\n * @returns\n */\n async join(\n threadId: string,\n runId: string,\n options?: { cancelOnDisconnect?: boolean; signal?: AbortSignal }\n ): Promise<TStateType> {\n return this.fetch<TStateType>(`/threads/${threadId}/runs/${runId}/join`, {\n timeoutMs: null,\n params: { cancel_on_disconnect: options?.cancelOnDisconnect ? \"1\" : \"0\" },\n signal: options?.signal,\n });\n }\n\n /**\n * Stream output from a run in real-time, until the run is done.\n *\n * @param threadId The ID of the thread.\n * @param runId The ID of the run.\n * @param options Additional options for controlling the stream behavior.\n * @returns An async generator yielding stream parts.\n */\n async *joinStream(\n threadId: string | undefined | null,\n runId: string,\n options?:\n | {\n signal?: AbortSignal;\n cancelOnDisconnect?: boolean;\n lastEventId?: string;\n streamMode?: StreamMode | StreamMode[];\n /**\n * Idle-reconnect policy.\n *\n * Guards against half-open sockets that hang with no\n * error or close; on idle the read re-joins with the last seen\n * `Last-Event-ID`.\n *\n * - `\"auto\"` (default): arms only once the\n * server's keep-alive heartbeats are observed and sizes the window\n * from their cadence;\n * - a `number`: a fixed idle window in ms;\n * - `0`: disables it.\n */\n streamIdleReconnect?: IdleReconnectMode;\n }\n | AbortSignal\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): AsyncGenerator<{ id?: string; event: StreamEvent; data: any }> {\n const opts =\n typeof options === \"object\" &&\n options != null &&\n // eslint-disable-next-line no-instanceof/no-instanceof\n options instanceof AbortSignal\n ? { signal: options }\n : options;\n\n yield* this.streamWithRetry({\n endpoint:\n threadId != null\n ? `/threads/${threadId}/runs/${runId}/stream`\n : `/runs/${runId}/stream`,\n method: \"GET\",\n signal: opts?.signal,\n idleReconnect: opts?.streamIdleReconnect,\n headers: opts?.lastEventId\n ? { \"Last-Event-ID\": opts.lastEventId }\n : undefined,\n params: {\n cancel_on_disconnect: opts?.cancelOnDisconnect ? \"1\" : \"0\",\n stream_mode: opts?.streamMode,\n },\n });\n }\n\n /**\n * Delete a run.\n *\n * @param threadId The ID of the thread.\n * @param runId The ID of the run.\n * @returns\n */\n async delete(\n threadId: string,\n runId: string,\n options?: { signal?: AbortSignal }\n ): Promise<void> {\n return this.fetch<void>(`/threads/${threadId}/runs/${runId}`, {\n method: \"DELETE\",\n signal: options?.signal,\n });\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../../../src/client/runs/index.ts"],"mappings":";;;;;;;cAmBa,UAAA,cACE,aAAA,gBACC,UAAA,sCAEN,UAAA;EACR,MAAA,qBACsB,UAAA,GAAa,UAAA,KAAe,UAAA,qCAAA,CAGhD,QAAA,QACA,WAAA,UACA,OAAA,GAAU,IAAA,CACR,iBAAA,CAAkB,WAAA,EAAa,UAAA,2CAGhC,mBAAA,CACD,WAAA,EACA,UAAA,EACA,UAAA,EACA,WAAA,EACA,gBAAA;EAGF,MAAA,qBACsB,UAAA,GAAa,UAAA,KAAe,UAAA,qCAAA,CAGhD,QAAA,UACA,WAAA,UACA,OAAA,GAAU,iBAAA,CAAkB,WAAA,EAAa,UAAA,IACxC,mBAAA,CACD,WAAA,EACA,UAAA,EACA,UAAA,EACA,WAAA,EACA,gBAAA;EAnCmB;;;;;;;;EA+Gf,MAAA,CACJ,QAAA,iBACA,WAAA,UACA,OAAA,GAAU,iBAAA,GACT,OAAA,CAAQ,GAAA;EAvGP;;;;;;EA0JE,WAAA,CACJ,QAAA,GAAW,IAAA,CAAK,iBAAA;IAAiC,WAAA;EAAA,MACjD,OAAA;IAAY,MAAA,GAAS,WAAA;EAAA,IACpB,OAAA,CAAQ,GAAA;EAgBL,IAAA,CACJ,QAAA,QACA,WAAA,UACA,OAAA,GAAU,IAAA,CAAK,eAAA,0CACd,OAAA,CAAQ,WAAA;EAEL,IAAA,CACJ,QAAA,UACA,WAAA,UACA,OAAA,GAAU,eAAA,GACT,OAAA,CAAQ,WAAA;EAtKC;;;;;;;EAkPN,IAAA,CACJ,QAAA,UACA,OAAA;IACE,KAAA;IACA,MAAA;IACA,MAAA,GAAS,SAAA;IACT,MAAA,GAAS,cAAA;IACT,MAAA,GAAS,WAAA;EAAA,IAEV,OAAA,CAAQ,GAAA;EA/GR;;;;;;;EAkIG,GAAA,CACJ,QAAA,UACA,KAAA,UACA,OAAA;IAAY,MAAA,GAAS,WAAA;EAAA,IACpB,OAAA,CAAQ,GAAA;EAzBE;;;;;;;;;EAwCP,MAAA,CACJ,QAAA,UACA,KAAA,UACA,IAAA,YACA,MAAA,GAAQ,YAAA,EACR,OAAA;IAAW,MAAA,GAAS,WAAA;EAAA,IACnB,OAAA;EA2CkD;;;;;;EA7B/C,UAAA,CAAW,OAAA;IACf,QAAA;IACA,MAAA;IACA,MAAA;IACA,MAAA,GAAS,YAAA;IACT,MAAA,GAAS,WAAA;EAAA,IACP,OAAA;EApVc;;;;;;;EAwWZ,IAAA,CACJ,QAAA,UACA,KAAA,UACA,OAAA;IAAY,kBAAA;IAA8B,MAAA,GAAS,WAAA;EAAA,IAClD,OAAA,CAAQ,UAAA;EA1WwB;;;;;;;;EA0X5B,UAAA,CACL,QAAA,6BACA,KAAA,UACA,OAAA;IAEM,MAAA,GAAS,WAAA;IACT,kBAAA;IACA,WAAA;IACA,UAAA,GAAa,UAAA,GAAa,UAAA;IAtXhC;;;;;;;;;;;;;IAoYM,mBAAA,GAAsB,iBAAA;EAAA,IAExB,WAAA,GAEH,cAAA;IAAiB,EAAA;IAAa,KAAA,EAAO,WAAA;IAAa,IAAA;EAAA;EAxXnD;;;;;;;EA0ZI,MAAA,CACJ,QAAA,UACA,KAAA,UACA,OAAA;IAAY,MAAA,GAAS,WAAA;EAAA,IACpB,OAAA;AAAA"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../../../src/client/runs/index.ts"],"mappings":";;;;;;;cAmBa,UAAA,cACE,aAAA,gBACC,UAAA,sCAEN,UAAA;EACR,MAAA,qBACsB,UAAA,GAAa,UAAA,KAAe,UAAA,qCAAA,CAGhD,QAAA,QACA,WAAA,UACA,OAAA,GAAU,IAAA,CACR,iBAAA,CAAkB,WAAA,EAAa,UAAA,2CAGhC,mBAAA,CACD,WAAA,EACA,UAAA,EACA,UAAA,EACA,WAAA,EACA,gBAAA;EAGF,MAAA,qBACsB,UAAA,GAAa,UAAA,KAAe,UAAA,qCAAA,CAGhD,QAAA,UACA,WAAA,UACA,OAAA,GAAU,iBAAA,CAAkB,WAAA,EAAa,UAAA,IACxC,mBAAA,CACD,WAAA,EACA,UAAA,EACA,UAAA,EACA,WAAA,EACA,gBAAA;EAnCmB;;;;;;;;EAgHf,MAAA,CACJ,QAAA,iBACA,WAAA,UACA,OAAA,GAAU,iBAAA,GACT,OAAA,CAAQ,GAAA;EAxGP;;;;;;EA2JE,WAAA,CACJ,QAAA,GAAW,IAAA,CAAK,iBAAA;IAAiC,WAAA;EAAA,MACjD,OAAA;IAAY,MAAA,GAAS,WAAA;EAAA,IACpB,OAAA,CAAQ,GAAA;EAgBL,IAAA,CACJ,QAAA,QACA,WAAA,UACA,OAAA,GAAU,IAAA,CAAK,eAAA,0CACd,OAAA,CAAQ,WAAA;EAEL,IAAA,CACJ,QAAA,UACA,WAAA,UACA,OAAA,GAAU,eAAA,GACT,OAAA,CAAQ,WAAA;EAvKC;;;;;;;EAmPN,IAAA,CACJ,QAAA,UACA,OAAA;IACE,KAAA;IACA,MAAA;IACA,MAAA,GAAS,SAAA;IACT,MAAA,GAAS,cAAA;IACT,MAAA,GAAS,WAAA;EAAA,IAEV,OAAA,CAAQ,GAAA;EA/GR;;;;;;;EAkIG,GAAA,CACJ,QAAA,UACA,KAAA,UACA,OAAA;IAAY,MAAA,GAAS,WAAA;EAAA,IACpB,OAAA,CAAQ,GAAA;EAzBE;;;;;;;;;EAwCP,MAAA,CACJ,QAAA,UACA,KAAA,UACA,IAAA,YACA,MAAA,GAAQ,YAAA,EACR,OAAA;IAAW,MAAA,GAAS,WAAA;EAAA,IACnB,OAAA;EA2CkD;;;;;;EA7B/C,UAAA,CAAW,OAAA;IACf,QAAA;IACA,MAAA;IACA,MAAA;IACA,MAAA,GAAS,YAAA;IACT,MAAA,GAAS,WAAA;EAAA,IACP,OAAA;EArVc;;;;;;;EAyWZ,IAAA,CACJ,QAAA,UACA,KAAA,UACA,OAAA;IAAY,kBAAA;IAA8B,MAAA,GAAS,WAAA;EAAA,IAClD,OAAA,CAAQ,UAAA;EA3WwB;;;;;;;;EA2X5B,UAAA,CACL,QAAA,6BACA,KAAA,UACA,OAAA;IAEM,MAAA,GAAS,WAAA;IACT,kBAAA;IACA,WAAA;IACA,UAAA,GAAa,UAAA,GAAa,UAAA;IAvXhC;;;;;;;;;;;;;IAqYM,mBAAA,GAAsB,iBAAA;EAAA,IAExB,WAAA,GAEH,cAAA;IAAiB,EAAA;IAAa,KAAA,EAAO,WAAA;IAAa,IAAA;EAAA;EAzXnD;;;;;;;EA2ZI,MAAA,CACJ,QAAA,UACA,KAAA,UACA,OAAA;IAAY,MAAA,GAAS,WAAA;EAAA,IACpB,OAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/client/runs/index.ts"],"mappings":";;;;;;;cAmBa,UAAA,cACE,aAAA,gBACC,UAAA,sCAEN,UAAA;EACR,MAAA,qBACsB,UAAA,GAAa,UAAA,KAAe,UAAA,qCAAA,CAGhD,QAAA,QACA,WAAA,UACA,OAAA,GAAU,IAAA,CACR,iBAAA,CAAkB,WAAA,EAAa,UAAA,2CAGhC,mBAAA,CACD,WAAA,EACA,UAAA,EACA,UAAA,EACA,WAAA,EACA,gBAAA;EAGF,MAAA,qBACsB,UAAA,GAAa,UAAA,KAAe,UAAA,qCAAA,CAGhD,QAAA,UACA,WAAA,UACA,OAAA,GAAU,iBAAA,CAAkB,WAAA,EAAa,UAAA,IACxC,mBAAA,CACD,WAAA,EACA,UAAA,EACA,UAAA,EACA,WAAA,EACA,gBAAA;EAnCmB;;;;;;;;EA+Gf,MAAA,CACJ,QAAA,iBACA,WAAA,UACA,OAAA,GAAU,iBAAA,GACT,OAAA,CAAQ,GAAA;EAvGP;;;;;;EA0JE,WAAA,CACJ,QAAA,GAAW,IAAA,CAAK,iBAAA;IAAiC,WAAA;EAAA,MACjD,OAAA;IAAY,MAAA,GAAS,WAAA;EAAA,IACpB,OAAA,CAAQ,GAAA;EAgBL,IAAA,CACJ,QAAA,QACA,WAAA,UACA,OAAA,GAAU,IAAA,CAAK,eAAA,0CACd,OAAA,CAAQ,WAAA;EAEL,IAAA,CACJ,QAAA,UACA,WAAA,UACA,OAAA,GAAU,eAAA,GACT,OAAA,CAAQ,WAAA;EAtKC;;;;;;;EAkPN,IAAA,CACJ,QAAA,UACA,OAAA;IACE,KAAA;IACA,MAAA;IACA,MAAA,GAAS,SAAA;IACT,MAAA,GAAS,cAAA;IACT,MAAA,GAAS,WAAA;EAAA,IAEV,OAAA,CAAQ,GAAA;EA/GR;;;;;;;EAkIG,GAAA,CACJ,QAAA,UACA,KAAA,UACA,OAAA;IAAY,MAAA,GAAS,WAAA;EAAA,IACpB,OAAA,CAAQ,GAAA;EAzBE;;;;;;;;;EAwCP,MAAA,CACJ,QAAA,UACA,KAAA,UACA,IAAA,YACA,MAAA,GAAQ,YAAA,EACR,OAAA;IAAW,MAAA,GAAS,WAAA;EAAA,IACnB,OAAA;EA2CkD;;;;;;EA7B/C,UAAA,CAAW,OAAA;IACf,QAAA;IACA,MAAA;IACA,MAAA;IACA,MAAA,GAAS,YAAA;IACT,MAAA,GAAS,WAAA;EAAA,IACP,OAAA;EApVc;;;;;;;EAwWZ,IAAA,CACJ,QAAA,UACA,KAAA,UACA,OAAA;IAAY,kBAAA;IAA8B,MAAA,GAAS,WAAA;EAAA,IAClD,OAAA,CAAQ,UAAA;EA1WwB;;;;;;;;EA0X5B,UAAA,CACL,QAAA,6BACA,KAAA,UACA,OAAA;IAEM,MAAA,GAAS,WAAA;IACT,kBAAA;IACA,WAAA;IACA,UAAA,GAAa,UAAA,GAAa,UAAA;IAtXhC;;;;;;;;;;;;;IAoYM,mBAAA,GAAsB,iBAAA;EAAA,IAExB,WAAA,GAEH,cAAA;IAAiB,EAAA;IAAa,KAAA,EAAO,WAAA;IAAa,IAAA;EAAA;EAxXnD;;;;;;;EA0ZI,MAAA,CACJ,QAAA,UACA,KAAA,UACA,OAAA;IAAY,MAAA,GAAS,WAAA;EAAA,IACpB,OAAA;AAAA"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/client/runs/index.ts"],"mappings":";;;;;;;cAmBa,UAAA,cACE,aAAA,gBACC,UAAA,sCAEN,UAAA;EACR,MAAA,qBACsB,UAAA,GAAa,UAAA,KAAe,UAAA,qCAAA,CAGhD,QAAA,QACA,WAAA,UACA,OAAA,GAAU,IAAA,CACR,iBAAA,CAAkB,WAAA,EAAa,UAAA,2CAGhC,mBAAA,CACD,WAAA,EACA,UAAA,EACA,UAAA,EACA,WAAA,EACA,gBAAA;EAGF,MAAA,qBACsB,UAAA,GAAa,UAAA,KAAe,UAAA,qCAAA,CAGhD,QAAA,UACA,WAAA,UACA,OAAA,GAAU,iBAAA,CAAkB,WAAA,EAAa,UAAA,IACxC,mBAAA,CACD,WAAA,EACA,UAAA,EACA,UAAA,EACA,WAAA,EACA,gBAAA;EAnCmB;;;;;;;;EAgHf,MAAA,CACJ,QAAA,iBACA,WAAA,UACA,OAAA,GAAU,iBAAA,GACT,OAAA,CAAQ,GAAA;EAxGP;;;;;;EA2JE,WAAA,CACJ,QAAA,GAAW,IAAA,CAAK,iBAAA;IAAiC,WAAA;EAAA,MACjD,OAAA;IAAY,MAAA,GAAS,WAAA;EAAA,IACpB,OAAA,CAAQ,GAAA;EAgBL,IAAA,CACJ,QAAA,QACA,WAAA,UACA,OAAA,GAAU,IAAA,CAAK,eAAA,0CACd,OAAA,CAAQ,WAAA;EAEL,IAAA,CACJ,QAAA,UACA,WAAA,UACA,OAAA,GAAU,eAAA,GACT,OAAA,CAAQ,WAAA;EAvKC;;;;;;;EAmPN,IAAA,CACJ,QAAA,UACA,OAAA;IACE,KAAA;IACA,MAAA;IACA,MAAA,GAAS,SAAA;IACT,MAAA,GAAS,cAAA;IACT,MAAA,GAAS,WAAA;EAAA,IAEV,OAAA,CAAQ,GAAA;EA/GR;;;;;;;EAkIG,GAAA,CACJ,QAAA,UACA,KAAA,UACA,OAAA;IAAY,MAAA,GAAS,WAAA;EAAA,IACpB,OAAA,CAAQ,GAAA;EAzBE;;;;;;;;;EAwCP,MAAA,CACJ,QAAA,UACA,KAAA,UACA,IAAA,YACA,MAAA,GAAQ,YAAA,EACR,OAAA;IAAW,MAAA,GAAS,WAAA;EAAA,IACnB,OAAA;EA2CkD;;;;;;EA7B/C,UAAA,CAAW,OAAA;IACf,QAAA;IACA,MAAA;IACA,MAAA;IACA,MAAA,GAAS,YAAA;IACT,MAAA,GAAS,WAAA;EAAA,IACP,OAAA;EArVc;;;;;;;EAyWZ,IAAA,CACJ,QAAA,UACA,KAAA,UACA,OAAA;IAAY,kBAAA;IAA8B,MAAA,GAAS,WAAA;EAAA,IAClD,OAAA,CAAQ,UAAA;EA3WwB;;;;;;;;EA2X5B,UAAA,CACL,QAAA,6BACA,KAAA,UACA,OAAA;IAEM,MAAA,GAAS,WAAA;IACT,kBAAA;IACA,WAAA;IACA,UAAA,GAAa,UAAA,GAAa,UAAA;IAvXhC;;;;;;;;;;;;;IAqYM,mBAAA,GAAsB,iBAAA;EAAA,IAExB,WAAA,GAEH,cAAA;IAAiB,EAAA;IAAa,KAAA,EAAO,WAAA;IAAa,IAAA;EAAA;EAzXnD;;;;;;;EA2ZI,MAAA,CACJ,QAAA,UACA,KAAA,UACA,OAAA;IAAY,MAAA,GAAS,WAAA;EAAA,IACpB,OAAA;AAAA"}
@@ -23,6 +23,7 @@ var RunsClient = class extends BaseClient {
23
23
  interrupt_before: payload?.interruptBefore,
24
24
  interrupt_after: payload?.interruptAfter,
25
25
  checkpoint: payload?.checkpoint,
26
+ checkpoint_id: payload?.checkpointId,
26
27
  webhook: payload?.webhook,
27
28
  multitask_strategy: payload?.multitaskStrategy,
28
29
  on_completion: payload?.onCompletion,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/client/runs/index.ts"],"sourcesContent":["import {\n CancelAction,\n DefaultValues,\n Run,\n RunSelectField,\n RunStatus,\n ThreadState,\n} from \"../../schema.js\";\nimport type {\n RunsCreatePayload,\n RunsStreamPayload,\n RunsWaitPayload,\n StreamEvent,\n} from \"../../types.js\";\nimport type { StreamMode, TypedAsyncGenerator } from \"../../types.stream.js\";\nimport type { IdleReconnectMode } from \"../../utils/stream.js\";\n\nimport { BaseClient, getRunMetadataFromResponse } from \"../base.js\";\n\nexport class RunsClient<\n TStateType = DefaultValues,\n TUpdateType = TStateType,\n TCustomEventType = unknown,\n> extends BaseClient {\n stream<\n TStreamMode extends StreamMode | StreamMode[] = StreamMode,\n TSubgraphs extends boolean = false,\n >(\n threadId: null,\n assistantId: string,\n payload?: Omit<\n RunsStreamPayload<TStreamMode, TSubgraphs>,\n \"multitaskStrategy\" | \"onCompletion\"\n >\n ): TypedAsyncGenerator<\n TStreamMode,\n TSubgraphs,\n TStateType,\n TUpdateType,\n TCustomEventType\n >;\n\n stream<\n TStreamMode extends StreamMode | StreamMode[] = StreamMode,\n TSubgraphs extends boolean = false,\n >(\n threadId: string,\n assistantId: string,\n payload?: RunsStreamPayload<TStreamMode, TSubgraphs>\n ): TypedAsyncGenerator<\n TStreamMode,\n TSubgraphs,\n TStateType,\n TUpdateType,\n TCustomEventType\n >;\n\n /**\n * Create a run and stream the results.\n *\n * @param threadId The ID of the thread.\n * @param assistantId Assistant ID to use for this run.\n * @param payload Payload for creating a run.\n */\n async *stream<\n TStreamMode extends StreamMode | StreamMode[] = StreamMode,\n TSubgraphs extends boolean = false,\n >(\n threadId: string | null,\n assistantId: string,\n payload?: RunsStreamPayload<TStreamMode, TSubgraphs>\n ): TypedAsyncGenerator<\n TStreamMode,\n TSubgraphs,\n TStateType,\n TUpdateType,\n TCustomEventType\n > {\n const json: Record<string, unknown> = {\n input: payload?.input,\n command: payload?.command,\n config: payload?.config,\n context: payload?.context,\n metadata: payload?.metadata,\n stream_mode: payload?.streamMode,\n stream_subgraphs: payload?.streamSubgraphs,\n stream_resumable: payload?.streamResumable,\n feedback_keys: payload?.feedbackKeys,\n assistant_id: assistantId,\n interrupt_before: payload?.interruptBefore,\n interrupt_after: payload?.interruptAfter,\n checkpoint: payload?.checkpoint,\n webhook: payload?.webhook,\n multitask_strategy: payload?.multitaskStrategy,\n on_completion: payload?.onCompletion,\n on_disconnect: payload?.onDisconnect,\n after_seconds: payload?.afterSeconds,\n if_not_exists: payload?.ifNotExists,\n checkpoint_during: payload?.checkpointDuring,\n durability: payload?.durability,\n };\n\n yield* this.streamWithRetry({\n endpoint:\n threadId == null ? `/runs/stream` : `/threads/${threadId}/runs/stream`,\n method: \"POST\",\n json,\n signal: payload?.signal,\n idleReconnect: payload?.streamIdleReconnect,\n onInitialResponse: (response) => {\n const runMetadata = getRunMetadataFromResponse(response);\n if (runMetadata) payload?.onRunCreated?.(runMetadata);\n },\n }) as TypedAsyncGenerator<\n TStreamMode,\n TSubgraphs,\n TStateType,\n TUpdateType,\n TCustomEventType\n >;\n }\n\n /**\n * Create a run.\n *\n * @param threadId The ID of the thread.\n * @param assistantId Assistant ID to use for this run.\n * @param payload Payload for creating a run.\n * @returns The created run.\n */\n async create(\n threadId: string | null,\n assistantId: string,\n payload?: RunsCreatePayload\n ): Promise<Run> {\n const json: Record<string, unknown> = {\n input: payload?.input,\n command: payload?.command,\n config: payload?.config,\n context: payload?.context,\n metadata: payload?.metadata,\n stream_mode: payload?.streamMode,\n stream_subgraphs: payload?.streamSubgraphs,\n stream_resumable: payload?.streamResumable,\n feedback_keys: payload?.feedbackKeys,\n assistant_id: assistantId,\n interrupt_before: payload?.interruptBefore,\n interrupt_after: payload?.interruptAfter,\n webhook: payload?.webhook,\n checkpoint: payload?.checkpoint,\n checkpoint_id: payload?.checkpointId,\n multitask_strategy: payload?.multitaskStrategy,\n after_seconds: payload?.afterSeconds,\n if_not_exists: payload?.ifNotExists,\n checkpoint_during: payload?.checkpointDuring,\n durability: payload?.durability,\n on_completion: payload?.onCompletion,\n langsmith_tracer: payload?._langsmithTracer\n ? {\n project_name: payload?._langsmithTracer?.projectName,\n example_id: payload?._langsmithTracer?.exampleId,\n }\n : undefined,\n };\n\n const endpoint = threadId === null ? \"/runs\" : `/threads/${threadId}/runs`;\n const [run, response] = await this.fetch<Run>(endpoint, {\n method: \"POST\",\n json,\n signal: payload?.signal,\n withResponse: true,\n });\n\n const runMetadata = getRunMetadataFromResponse(response);\n if (runMetadata) payload?.onRunCreated?.(runMetadata);\n\n return run;\n }\n\n /**\n * Create a batch of stateless background runs.\n *\n * @param payloads An array of payloads for creating runs.\n * @returns An array of created runs.\n */\n async createBatch(\n payloads: (Omit<RunsCreatePayload, \"signal\"> & { assistantId: string })[],\n options?: { signal?: AbortSignal }\n ): Promise<Run[]> {\n const filteredPayloads = payloads\n .map((payload) => ({ ...payload, assistant_id: payload.assistantId }))\n .map((payload) => {\n return Object.fromEntries(\n Object.entries(payload).filter(([_, v]) => v !== undefined)\n );\n });\n\n return this.fetch<Run[]>(\"/runs/batch\", {\n method: \"POST\",\n json: filteredPayloads,\n signal: options?.signal,\n });\n }\n\n async wait(\n threadId: null,\n assistantId: string,\n payload?: Omit<RunsWaitPayload, \"multitaskStrategy\" | \"onCompletion\">\n ): Promise<ThreadState[\"values\"]>;\n\n async wait(\n threadId: string,\n assistantId: string,\n payload?: RunsWaitPayload\n ): Promise<ThreadState[\"values\"]>;\n\n /**\n * Create a run and wait for it to complete.\n *\n * @param threadId The ID of the thread.\n * @param assistantId Assistant ID to use for this run.\n * @param payload Payload for creating a run.\n * @returns The last values chunk of the thread.\n */\n async wait(\n threadId: string | null,\n assistantId: string,\n payload?: RunsWaitPayload\n ): Promise<ThreadState[\"values\"]> {\n const json: Record<string, unknown> = {\n input: payload?.input,\n command: payload?.command,\n config: payload?.config,\n context: payload?.context,\n metadata: payload?.metadata,\n assistant_id: assistantId,\n interrupt_before: payload?.interruptBefore,\n interrupt_after: payload?.interruptAfter,\n checkpoint: payload?.checkpoint,\n checkpoint_id: payload?.checkpointId,\n webhook: payload?.webhook,\n multitask_strategy: payload?.multitaskStrategy,\n on_completion: payload?.onCompletion,\n on_disconnect: payload?.onDisconnect,\n after_seconds: payload?.afterSeconds,\n if_not_exists: payload?.ifNotExists,\n checkpoint_during: payload?.checkpointDuring,\n durability: payload?.durability,\n langsmith_tracer: payload?._langsmithTracer\n ? {\n project_name: payload?._langsmithTracer?.projectName,\n example_id: payload?._langsmithTracer?.exampleId,\n }\n : undefined,\n };\n const endpoint =\n threadId == null ? `/runs/wait` : `/threads/${threadId}/runs/wait`;\n const [run, response] = await this.fetch<ThreadState[\"values\"]>(endpoint, {\n method: \"POST\",\n json,\n timeoutMs: null,\n signal: payload?.signal,\n withResponse: true,\n });\n\n const runMetadata = getRunMetadataFromResponse(response);\n if (runMetadata) payload?.onRunCreated?.(runMetadata);\n\n const raiseError =\n payload?.raiseError !== undefined ? payload.raiseError : true;\n if (\n raiseError &&\n \"__error__\" in run &&\n typeof run.__error__ === \"object\" &&\n run.__error__ &&\n \"error\" in run.__error__ &&\n \"message\" in run.__error__\n ) {\n throw new Error(`${run.__error__?.error}: ${run.__error__?.message}`);\n }\n return run;\n }\n\n /**\n * List all runs for a thread.\n *\n * @param threadId The ID of the thread.\n * @param options Filtering and pagination options.\n * @returns List of runs.\n */\n async list(\n threadId: string,\n options?: {\n limit?: number;\n offset?: number;\n status?: RunStatus;\n select?: RunSelectField[];\n signal?: AbortSignal;\n }\n ): Promise<Run[]> {\n return this.fetch<Run[]>(`/threads/${threadId}/runs`, {\n params: {\n limit: options?.limit ?? 10,\n offset: options?.offset ?? 0,\n status: options?.status ?? undefined,\n select: options?.select ?? undefined,\n },\n signal: options?.signal,\n });\n }\n\n /**\n * Get a run by ID.\n *\n * @param threadId The ID of the thread.\n * @param runId The ID of the run.\n * @returns The run.\n */\n async get(\n threadId: string,\n runId: string,\n options?: { signal?: AbortSignal }\n ): Promise<Run> {\n return this.fetch<Run>(`/threads/${threadId}/runs/${runId}`, {\n signal: options?.signal,\n });\n }\n\n /**\n * Cancel a run.\n *\n * @param threadId The ID of the thread.\n * @param runId The ID of the run.\n * @param wait Whether to block when canceling\n * @param action Action to take when cancelling the run. Possible values are `interrupt` or `rollback`. Default is `interrupt`.\n * @returns\n */\n async cancel(\n threadId: string,\n runId: string,\n wait: boolean = false,\n action: CancelAction = \"interrupt\",\n options: { signal?: AbortSignal } = {}\n ): Promise<void> {\n return this.fetch<void>(`/threads/${threadId}/runs/${runId}/cancel`, {\n method: \"POST\",\n params: { wait: wait ? \"1\" : \"0\", action },\n signal: options?.signal,\n });\n }\n\n /**\n * Cancel one or more runs.\n *\n * @param options Options for cancelling runs.\n * @returns\n */\n async cancelMany(options: {\n threadId?: string;\n runIds?: string[];\n status?: \"pending\" | \"running\" | \"all\";\n action?: CancelAction;\n signal?: AbortSignal;\n }): Promise<void> {\n return this.fetch<void>(`/runs/cancel`, {\n method: \"POST\",\n json: {\n thread_id: options.threadId,\n run_ids: options.runIds,\n status: options.status,\n },\n params: { action: options.action },\n signal: options.signal,\n });\n }\n\n /**\n * Block until a run is done.\n *\n * @param threadId The ID of the thread.\n * @param runId The ID of the run.\n * @returns\n */\n async join(\n threadId: string,\n runId: string,\n options?: { cancelOnDisconnect?: boolean; signal?: AbortSignal }\n ): Promise<TStateType> {\n return this.fetch<TStateType>(`/threads/${threadId}/runs/${runId}/join`, {\n timeoutMs: null,\n params: { cancel_on_disconnect: options?.cancelOnDisconnect ? \"1\" : \"0\" },\n signal: options?.signal,\n });\n }\n\n /**\n * Stream output from a run in real-time, until the run is done.\n *\n * @param threadId The ID of the thread.\n * @param runId The ID of the run.\n * @param options Additional options for controlling the stream behavior.\n * @returns An async generator yielding stream parts.\n */\n async *joinStream(\n threadId: string | undefined | null,\n runId: string,\n options?:\n | {\n signal?: AbortSignal;\n cancelOnDisconnect?: boolean;\n lastEventId?: string;\n streamMode?: StreamMode | StreamMode[];\n /**\n * Idle-reconnect policy.\n *\n * Guards against half-open sockets that hang with no\n * error or close; on idle the read re-joins with the last seen\n * `Last-Event-ID`.\n *\n * - `\"auto\"` (default): arms only once the\n * server's keep-alive heartbeats are observed and sizes the window\n * from their cadence;\n * - a `number`: a fixed idle window in ms;\n * - `0`: disables it.\n */\n streamIdleReconnect?: IdleReconnectMode;\n }\n | AbortSignal\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): AsyncGenerator<{ id?: string; event: StreamEvent; data: any }> {\n const opts =\n typeof options === \"object\" &&\n options != null &&\n // eslint-disable-next-line no-instanceof/no-instanceof\n options instanceof AbortSignal\n ? { signal: options }\n : options;\n\n yield* this.streamWithRetry({\n endpoint:\n threadId != null\n ? `/threads/${threadId}/runs/${runId}/stream`\n : `/runs/${runId}/stream`,\n method: \"GET\",\n signal: opts?.signal,\n idleReconnect: opts?.streamIdleReconnect,\n headers: opts?.lastEventId\n ? { \"Last-Event-ID\": opts.lastEventId }\n : undefined,\n params: {\n cancel_on_disconnect: opts?.cancelOnDisconnect ? \"1\" : \"0\",\n stream_mode: opts?.streamMode,\n },\n });\n }\n\n /**\n * Delete a run.\n *\n * @param threadId The ID of the thread.\n * @param runId The ID of the run.\n * @returns\n */\n async delete(\n threadId: string,\n runId: string,\n options?: { signal?: AbortSignal }\n ): Promise<void> {\n return this.fetch<void>(`/threads/${threadId}/runs/${runId}`, {\n method: \"DELETE\",\n signal: options?.signal,\n });\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/client/runs/index.ts"],"sourcesContent":["import {\n CancelAction,\n DefaultValues,\n Run,\n RunSelectField,\n RunStatus,\n ThreadState,\n} from \"../../schema.js\";\nimport type {\n RunsCreatePayload,\n RunsStreamPayload,\n RunsWaitPayload,\n StreamEvent,\n} from \"../../types.js\";\nimport type { StreamMode, TypedAsyncGenerator } from \"../../types.stream.js\";\nimport type { IdleReconnectMode } from \"../../utils/stream.js\";\n\nimport { BaseClient, getRunMetadataFromResponse } from \"../base.js\";\n\nexport class RunsClient<\n TStateType = DefaultValues,\n TUpdateType = TStateType,\n TCustomEventType = unknown,\n> extends BaseClient {\n stream<\n TStreamMode extends StreamMode | StreamMode[] = StreamMode,\n TSubgraphs extends boolean = false,\n >(\n threadId: null,\n assistantId: string,\n payload?: Omit<\n RunsStreamPayload<TStreamMode, TSubgraphs>,\n \"multitaskStrategy\" | \"onCompletion\"\n >\n ): TypedAsyncGenerator<\n TStreamMode,\n TSubgraphs,\n TStateType,\n TUpdateType,\n TCustomEventType\n >;\n\n stream<\n TStreamMode extends StreamMode | StreamMode[] = StreamMode,\n TSubgraphs extends boolean = false,\n >(\n threadId: string,\n assistantId: string,\n payload?: RunsStreamPayload<TStreamMode, TSubgraphs>\n ): TypedAsyncGenerator<\n TStreamMode,\n TSubgraphs,\n TStateType,\n TUpdateType,\n TCustomEventType\n >;\n\n /**\n * Create a run and stream the results.\n *\n * @param threadId The ID of the thread.\n * @param assistantId Assistant ID to use for this run.\n * @param payload Payload for creating a run.\n */\n async *stream<\n TStreamMode extends StreamMode | StreamMode[] = StreamMode,\n TSubgraphs extends boolean = false,\n >(\n threadId: string | null,\n assistantId: string,\n payload?: RunsStreamPayload<TStreamMode, TSubgraphs>\n ): TypedAsyncGenerator<\n TStreamMode,\n TSubgraphs,\n TStateType,\n TUpdateType,\n TCustomEventType\n > {\n const json: Record<string, unknown> = {\n input: payload?.input,\n command: payload?.command,\n config: payload?.config,\n context: payload?.context,\n metadata: payload?.metadata,\n stream_mode: payload?.streamMode,\n stream_subgraphs: payload?.streamSubgraphs,\n stream_resumable: payload?.streamResumable,\n feedback_keys: payload?.feedbackKeys,\n assistant_id: assistantId,\n interrupt_before: payload?.interruptBefore,\n interrupt_after: payload?.interruptAfter,\n checkpoint: payload?.checkpoint,\n checkpoint_id: payload?.checkpointId,\n webhook: payload?.webhook,\n multitask_strategy: payload?.multitaskStrategy,\n on_completion: payload?.onCompletion,\n on_disconnect: payload?.onDisconnect,\n after_seconds: payload?.afterSeconds,\n if_not_exists: payload?.ifNotExists,\n checkpoint_during: payload?.checkpointDuring,\n durability: payload?.durability,\n };\n\n yield* this.streamWithRetry({\n endpoint:\n threadId == null ? `/runs/stream` : `/threads/${threadId}/runs/stream`,\n method: \"POST\",\n json,\n signal: payload?.signal,\n idleReconnect: payload?.streamIdleReconnect,\n onInitialResponse: (response) => {\n const runMetadata = getRunMetadataFromResponse(response);\n if (runMetadata) payload?.onRunCreated?.(runMetadata);\n },\n }) as TypedAsyncGenerator<\n TStreamMode,\n TSubgraphs,\n TStateType,\n TUpdateType,\n TCustomEventType\n >;\n }\n\n /**\n * Create a run.\n *\n * @param threadId The ID of the thread.\n * @param assistantId Assistant ID to use for this run.\n * @param payload Payload for creating a run.\n * @returns The created run.\n */\n async create(\n threadId: string | null,\n assistantId: string,\n payload?: RunsCreatePayload\n ): Promise<Run> {\n const json: Record<string, unknown> = {\n input: payload?.input,\n command: payload?.command,\n config: payload?.config,\n context: payload?.context,\n metadata: payload?.metadata,\n stream_mode: payload?.streamMode,\n stream_subgraphs: payload?.streamSubgraphs,\n stream_resumable: payload?.streamResumable,\n feedback_keys: payload?.feedbackKeys,\n assistant_id: assistantId,\n interrupt_before: payload?.interruptBefore,\n interrupt_after: payload?.interruptAfter,\n webhook: payload?.webhook,\n checkpoint: payload?.checkpoint,\n checkpoint_id: payload?.checkpointId,\n multitask_strategy: payload?.multitaskStrategy,\n after_seconds: payload?.afterSeconds,\n if_not_exists: payload?.ifNotExists,\n checkpoint_during: payload?.checkpointDuring,\n durability: payload?.durability,\n on_completion: payload?.onCompletion,\n langsmith_tracer: payload?._langsmithTracer\n ? {\n project_name: payload?._langsmithTracer?.projectName,\n example_id: payload?._langsmithTracer?.exampleId,\n }\n : undefined,\n };\n\n const endpoint = threadId === null ? \"/runs\" : `/threads/${threadId}/runs`;\n const [run, response] = await this.fetch<Run>(endpoint, {\n method: \"POST\",\n json,\n signal: payload?.signal,\n withResponse: true,\n });\n\n const runMetadata = getRunMetadataFromResponse(response);\n if (runMetadata) payload?.onRunCreated?.(runMetadata);\n\n return run;\n }\n\n /**\n * Create a batch of stateless background runs.\n *\n * @param payloads An array of payloads for creating runs.\n * @returns An array of created runs.\n */\n async createBatch(\n payloads: (Omit<RunsCreatePayload, \"signal\"> & { assistantId: string })[],\n options?: { signal?: AbortSignal }\n ): Promise<Run[]> {\n const filteredPayloads = payloads\n .map((payload) => ({ ...payload, assistant_id: payload.assistantId }))\n .map((payload) => {\n return Object.fromEntries(\n Object.entries(payload).filter(([_, v]) => v !== undefined)\n );\n });\n\n return this.fetch<Run[]>(\"/runs/batch\", {\n method: \"POST\",\n json: filteredPayloads,\n signal: options?.signal,\n });\n }\n\n async wait(\n threadId: null,\n assistantId: string,\n payload?: Omit<RunsWaitPayload, \"multitaskStrategy\" | \"onCompletion\">\n ): Promise<ThreadState[\"values\"]>;\n\n async wait(\n threadId: string,\n assistantId: string,\n payload?: RunsWaitPayload\n ): Promise<ThreadState[\"values\"]>;\n\n /**\n * Create a run and wait for it to complete.\n *\n * @param threadId The ID of the thread.\n * @param assistantId Assistant ID to use for this run.\n * @param payload Payload for creating a run.\n * @returns The last values chunk of the thread.\n */\n async wait(\n threadId: string | null,\n assistantId: string,\n payload?: RunsWaitPayload\n ): Promise<ThreadState[\"values\"]> {\n const json: Record<string, unknown> = {\n input: payload?.input,\n command: payload?.command,\n config: payload?.config,\n context: payload?.context,\n metadata: payload?.metadata,\n assistant_id: assistantId,\n interrupt_before: payload?.interruptBefore,\n interrupt_after: payload?.interruptAfter,\n checkpoint: payload?.checkpoint,\n checkpoint_id: payload?.checkpointId,\n webhook: payload?.webhook,\n multitask_strategy: payload?.multitaskStrategy,\n on_completion: payload?.onCompletion,\n on_disconnect: payload?.onDisconnect,\n after_seconds: payload?.afterSeconds,\n if_not_exists: payload?.ifNotExists,\n checkpoint_during: payload?.checkpointDuring,\n durability: payload?.durability,\n langsmith_tracer: payload?._langsmithTracer\n ? {\n project_name: payload?._langsmithTracer?.projectName,\n example_id: payload?._langsmithTracer?.exampleId,\n }\n : undefined,\n };\n const endpoint =\n threadId == null ? `/runs/wait` : `/threads/${threadId}/runs/wait`;\n const [run, response] = await this.fetch<ThreadState[\"values\"]>(endpoint, {\n method: \"POST\",\n json,\n timeoutMs: null,\n signal: payload?.signal,\n withResponse: true,\n });\n\n const runMetadata = getRunMetadataFromResponse(response);\n if (runMetadata) payload?.onRunCreated?.(runMetadata);\n\n const raiseError =\n payload?.raiseError !== undefined ? payload.raiseError : true;\n if (\n raiseError &&\n \"__error__\" in run &&\n typeof run.__error__ === \"object\" &&\n run.__error__ &&\n \"error\" in run.__error__ &&\n \"message\" in run.__error__\n ) {\n throw new Error(`${run.__error__?.error}: ${run.__error__?.message}`);\n }\n return run;\n }\n\n /**\n * List all runs for a thread.\n *\n * @param threadId The ID of the thread.\n * @param options Filtering and pagination options.\n * @returns List of runs.\n */\n async list(\n threadId: string,\n options?: {\n limit?: number;\n offset?: number;\n status?: RunStatus;\n select?: RunSelectField[];\n signal?: AbortSignal;\n }\n ): Promise<Run[]> {\n return this.fetch<Run[]>(`/threads/${threadId}/runs`, {\n params: {\n limit: options?.limit ?? 10,\n offset: options?.offset ?? 0,\n status: options?.status ?? undefined,\n select: options?.select ?? undefined,\n },\n signal: options?.signal,\n });\n }\n\n /**\n * Get a run by ID.\n *\n * @param threadId The ID of the thread.\n * @param runId The ID of the run.\n * @returns The run.\n */\n async get(\n threadId: string,\n runId: string,\n options?: { signal?: AbortSignal }\n ): Promise<Run> {\n return this.fetch<Run>(`/threads/${threadId}/runs/${runId}`, {\n signal: options?.signal,\n });\n }\n\n /**\n * Cancel a run.\n *\n * @param threadId The ID of the thread.\n * @param runId The ID of the run.\n * @param wait Whether to block when canceling\n * @param action Action to take when cancelling the run. Possible values are `interrupt` or `rollback`. Default is `interrupt`.\n * @returns\n */\n async cancel(\n threadId: string,\n runId: string,\n wait: boolean = false,\n action: CancelAction = \"interrupt\",\n options: { signal?: AbortSignal } = {}\n ): Promise<void> {\n return this.fetch<void>(`/threads/${threadId}/runs/${runId}/cancel`, {\n method: \"POST\",\n params: { wait: wait ? \"1\" : \"0\", action },\n signal: options?.signal,\n });\n }\n\n /**\n * Cancel one or more runs.\n *\n * @param options Options for cancelling runs.\n * @returns\n */\n async cancelMany(options: {\n threadId?: string;\n runIds?: string[];\n status?: \"pending\" | \"running\" | \"all\";\n action?: CancelAction;\n signal?: AbortSignal;\n }): Promise<void> {\n return this.fetch<void>(`/runs/cancel`, {\n method: \"POST\",\n json: {\n thread_id: options.threadId,\n run_ids: options.runIds,\n status: options.status,\n },\n params: { action: options.action },\n signal: options.signal,\n });\n }\n\n /**\n * Block until a run is done.\n *\n * @param threadId The ID of the thread.\n * @param runId The ID of the run.\n * @returns\n */\n async join(\n threadId: string,\n runId: string,\n options?: { cancelOnDisconnect?: boolean; signal?: AbortSignal }\n ): Promise<TStateType> {\n return this.fetch<TStateType>(`/threads/${threadId}/runs/${runId}/join`, {\n timeoutMs: null,\n params: { cancel_on_disconnect: options?.cancelOnDisconnect ? \"1\" : \"0\" },\n signal: options?.signal,\n });\n }\n\n /**\n * Stream output from a run in real-time, until the run is done.\n *\n * @param threadId The ID of the thread.\n * @param runId The ID of the run.\n * @param options Additional options for controlling the stream behavior.\n * @returns An async generator yielding stream parts.\n */\n async *joinStream(\n threadId: string | undefined | null,\n runId: string,\n options?:\n | {\n signal?: AbortSignal;\n cancelOnDisconnect?: boolean;\n lastEventId?: string;\n streamMode?: StreamMode | StreamMode[];\n /**\n * Idle-reconnect policy.\n *\n * Guards against half-open sockets that hang with no\n * error or close; on idle the read re-joins with the last seen\n * `Last-Event-ID`.\n *\n * - `\"auto\"` (default): arms only once the\n * server's keep-alive heartbeats are observed and sizes the window\n * from their cadence;\n * - a `number`: a fixed idle window in ms;\n * - `0`: disables it.\n */\n streamIdleReconnect?: IdleReconnectMode;\n }\n | AbortSignal\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): AsyncGenerator<{ id?: string; event: StreamEvent; data: any }> {\n const opts =\n typeof options === \"object\" &&\n options != null &&\n // eslint-disable-next-line no-instanceof/no-instanceof\n options instanceof AbortSignal\n ? { signal: options }\n : options;\n\n yield* this.streamWithRetry({\n endpoint:\n threadId != null\n ? `/threads/${threadId}/runs/${runId}/stream`\n : `/runs/${runId}/stream`,\n method: \"GET\",\n signal: opts?.signal,\n idleReconnect: opts?.streamIdleReconnect,\n headers: opts?.lastEventId\n ? { \"Last-Event-ID\": opts.lastEventId }\n : undefined,\n params: {\n cancel_on_disconnect: opts?.cancelOnDisconnect ? \"1\" : \"0\",\n stream_mode: opts?.streamMode,\n },\n });\n }\n\n /**\n * Delete a run.\n *\n * @param threadId The ID of the thread.\n * @param runId The ID of the run.\n * @returns\n */\n async delete(\n threadId: string,\n runId: string,\n options?: { signal?: AbortSignal }\n ): Promise<void> {\n return this.fetch<void>(`/threads/${threadId}/runs/${runId}`, {\n method: \"DELETE\",\n signal: options?.signal,\n });\n }\n}\n"],"mappings":"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"}
@@ -149,11 +149,9 @@ var StreamController = class {
149
149
  * Interrupt ids this controller has locally marked resolved via
150
150
  * {@link respond} / {@link respondAll}. Used only to suppress
151
151
  * *historical* SSE replay of those `input.requested` events (there
152
- * is no `input.responded` protocol event). Live events after the
153
- * resume barrier — or a post-resume reconcile against
154
- * `state.tasks[].interrupts` — clear an id from this set so a
155
- * still-pending server interrupt can reappear on
156
- * `rootStore.interrupts`.
152
+ * is no `input.responded` protocol event). A live event after the
153
+ * resume barrier clears an id from this set so an interrupt raised
154
+ * again by a later run can reappear on `rootStore.interrupts`.
157
155
  */
158
156
  #resolvedInterrupts = /* @__PURE__ */ new Set();
159
157
  /**
@@ -169,13 +167,17 @@ var StreamController = class {
169
167
  * than {@link #interruptReplayThroughSeq} bypass the allowlist.
170
168
  */
171
169
  #hydratedActiveInterruptIds = null;
170
+ /** Checkpoint whose replay establishes the hydrate-time interrupt cutoff. */
171
+ #hydratedInterruptCheckpointId;
172
172
  /**
173
- * Highest event sequence already applied when the latest run command
174
- * was accepted. Interrupts outside the hydrate-time allowlist remain
175
- * filtered through this sequence, while newer events are live output
176
- * from the newly-started run and must be accepted.
173
+ * Highest event sequence represented by hydration or already applied when
174
+ * the latest run command was accepted. Interrupts outside the hydrate-time
175
+ * allowlist remain filtered through this sequence, while newer events are
176
+ * live output and must be accepted.
177
177
  */
178
178
  #interruptReplayThroughSeq;
179
+ /** Unknown inputs waiting for replay to reach the hydrated checkpoint. */
180
+ #pendingHydrationInterruptEvents = [];
179
181
  /**
180
182
  * Unknown interrupt events received between local command dispatch and its
181
183
  * response. The response supplies the sequence barrier needed to classify
@@ -327,7 +329,9 @@ var StreamController = class {
327
329
  onSubmitStart: () => {
328
330
  this.#submitGeneration += 1;
329
331
  this.#interruptCommandPending = this.#hydratedActiveInterruptIds != null;
330
- this.#pendingInterruptEvents = [];
332
+ this.#pendingInterruptEvents = this.#pendingHydrationInterruptEvents;
333
+ this.#pendingHydrationInterruptEvents = [];
334
+ this.#hydratedInterruptCheckpointId = void 0;
331
335
  },
332
336
  onRunStart: () => this.#markLocalRunStart(),
333
337
  onRunCreated: (runId) => {
@@ -578,6 +582,7 @@ var StreamController = class {
578
582
  }));
579
583
  if (this.#submitGeneration === generationAtFetch) {
580
584
  this.#hydratedActiveInterruptIds = activeIds;
585
+ this.#hydratedInterruptCheckpointId = state.checkpoint?.checkpoint_id ?? void 0;
581
586
  this.#interruptReplayThroughSeq = void 0;
582
587
  }
583
588
  }
@@ -1309,7 +1314,9 @@ var StreamController = class {
1309
1314
  this.#localRunDepth = 0;
1310
1315
  this.#messageMetadata.reset();
1311
1316
  this.#hydratedActiveInterruptIds = null;
1317
+ this.#hydratedInterruptCheckpointId = void 0;
1312
1318
  this.#interruptReplayThroughSeq = void 0;
1319
+ this.#pendingHydrationInterruptEvents = [];
1313
1320
  this.#discardPendingInterruptEvents();
1314
1321
  this.queueStore.setState(() => require_submit_coordinator.EMPTY_QUEUE);
1315
1322
  try {
@@ -1485,6 +1492,7 @@ var StreamController = class {
1485
1492
  } catch {}
1486
1493
  this.#subgraphs.push(event);
1487
1494
  this.#lifecycleLoading.handle(event);
1495
+ this.#advanceInterruptReplayBarrierFromCheckpoint(event);
1488
1496
  /**
1489
1497
  * `input.requested` events (including HITL inside a subagent /
1490
1498
  * subgraph) are not always observable via the narrow content pump.
@@ -1734,6 +1742,10 @@ var StreamController = class {
1734
1742
  this.#pendingInterruptEvents.push(event);
1735
1743
  return;
1736
1744
  }
1745
+ if (isUnknownInterrupt && this.#interruptReplayThroughSeq == null && this.#hydratedInterruptCheckpointId != null) {
1746
+ this.#pendingHydrationInterruptEvents.push(event);
1747
+ return;
1748
+ }
1737
1749
  if (isUnknownInterrupt && (this.#interruptReplayThroughSeq == null || eventSeq != null && eventSeq <= this.#interruptReplayThroughSeq)) return;
1738
1750
  const namespace = Array.isArray(event.params.namespace) ? [...event.params.namespace] : [...ROOT_NAMESPACE];
1739
1751
  const interrupt = require_interrupts.normalizeInterruptForClient({
@@ -1751,6 +1763,16 @@ var StreamController = class {
1751
1763
  };
1752
1764
  });
1753
1765
  }
1766
+ /** Establish the hydration cutoff when ordered replay reaches its checkpoint. */
1767
+ #advanceInterruptReplayBarrierFromCheckpoint(event) {
1768
+ if (event.method !== "checkpoints" || this.#hydratedInterruptCheckpointId == null || !require_namespace.isRootNamespace(event.params.namespace)) return;
1769
+ if (event.params.data?.id !== this.#hydratedInterruptCheckpointId || typeof event.seq !== "number") return;
1770
+ this.#interruptReplayThroughSeq = event.seq;
1771
+ this.#hydratedInterruptCheckpointId = void 0;
1772
+ const pendingEvents = this.#pendingHydrationInterruptEvents.sort((a, b) => (a.seq ?? 0) - (b.seq ?? 0));
1773
+ this.#pendingHydrationInterruptEvents = [];
1774
+ for (const pendingEvent of pendingEvents) this.#recordInterrupt(pendingEvent);
1775
+ }
1754
1776
  /**
1755
1777
  * Convert the hydrate-time allowlist into a replay barrier after a command
1756
1778
  * is accepted. Built-in transports update `lastAppliedThroughSeq` from the
@@ -1796,8 +1818,7 @@ var StreamController = class {
1796
1818
  * mirror the removal into the root snapshot the framework hooks read.
1797
1819
  *
1798
1820
  * Tombstones are not permanent: a live `input.requested` after the
1799
- * resume barrier, or {@link #reconcilePendingInterruptsFromServer},
1800
- * clears the id when the server still reports it as pending.
1821
+ * resume barrier clears the id when the same interrupt is raised again.
1801
1822
  */
1802
1823
  #markInterruptResolvedInRootStore(interruptId) {
1803
1824
  this.#resolvedInterrupts.add(interruptId);
@@ -1816,10 +1837,11 @@ var StreamController = class {
1816
1837
  * `state.tasks[].interrupts` after a resumed run settles.
1817
1838
  *
1818
1839
  * Sequential `respond()` of parallel interrupts optimistically clears
1819
- * each id client-side. When the server still has siblings pending and
1820
- * does not re-emit `input.requested` for them (session map already
1821
- * holds the id), this restore keeps `stream.interrupts` truthful so
1822
- * callers do not free-text `submit()` into an ambiguous resume.
1840
+ * each targeted id client-side. The server checkpoint can continue to
1841
+ * list the original interrupt batch after accepting a partial response,
1842
+ * so locally-resolved ids remain filtered while untouched siblings are
1843
+ * restored. This keeps `stream.interrupts` truthful without re-exposing
1844
+ * an already-consumed interrupt.
1823
1845
  *
1824
1846
  * Uses the same transport-aware state fetch as {@link hydrate}, and
1825
1847
  * drops the result if the thread swapped or a new submit/respond
@@ -1834,11 +1856,11 @@ var StreamController = class {
1834
1856
  if (this.#disposed || this.#currentThreadId !== threadId || this.#submitGeneration !== generationAtFetch) return;
1835
1857
  if (!Array.isArray(state?.tasks)) return;
1836
1858
  const { activeInterrupts, activeIds } = collectActiveInterruptsFromTasks(state.tasks);
1837
- for (const id of activeIds) this.#resolvedInterrupts.delete(id);
1859
+ const pendingInterrupts = activeInterrupts.filter((interrupt) => interrupt.id == null || !this.#resolvedInterrupts.has(interrupt.id));
1838
1860
  this.rootStore.setState((s) => ({
1839
1861
  ...s,
1840
- interrupts: activeInterrupts,
1841
- interrupt: activeInterrupts[0]
1862
+ interrupts: pendingInterrupts,
1863
+ interrupt: pendingInterrupts[0]
1842
1864
  }));
1843
1865
  this.#hydratedActiveInterruptIds = activeIds;
1844
1866
  } catch {}