From c3825efd0c5da4b31fa2be004672e208117f9091 Mon Sep 17 00:00:00 2001 From: Nikas Belogolov Date: Sun, 1 Feb 2026 15:28:31 +0200 Subject: [PATCH 1/4] Added telemetry field to events --- .../ai/src/activities/chat/index.ts | 21 +++++--- .../ai/src/activities/generateImage/index.ts | 49 +++++++++++-------- .../ai/src/activities/generateSpeech/index.ts | 15 ++++-- .../activities/generateTranscription/index.ts | 20 +++++--- .../ai/src/activities/generateVideo/index.ts | 38 ++++++++------ .../ai/src/activities/summarize/index.ts | 30 +++++++----- packages/typescript/ai/src/event-client.ts | 3 +- packages/typescript/ai/src/types.ts | 31 ++++++++++++ 8 files changed, 141 insertions(+), 66 deletions(-) diff --git a/packages/typescript/ai/src/activities/chat/index.ts b/packages/typescript/ai/src/activities/chat/index.ts index feb5ef99..6cd57ce2 100644 --- a/packages/typescript/ai/src/activities/chat/index.ts +++ b/packages/typescript/ai/src/activities/chat/index.ts @@ -28,6 +28,7 @@ import type { RunFinishedEvent, SchemaInput, StreamChunk, + Telemetry, TextMessageContentEvent, TextOptions, Tool, @@ -130,6 +131,10 @@ export interface TextActivityOptions< * ``` */ stream?: TStream + /** + * Telemetry data for tracking and monitoring. + */ + telemetry?: TextOptions['telemetry'] } // =========================== @@ -175,8 +180,8 @@ export type TextActivityResult< > = TSchema extends SchemaInput ? Promise> : TStream extends false - ? Promise - : AsyncIterable + ? Promise + : AsyncIterable // =========================== // ChatEngine Implementation @@ -209,6 +214,7 @@ class TextEngine< private readonly streamId: string private readonly effectiveRequest?: Request | RequestInit private readonly effectiveSignal?: AbortSignal + private readonly telemetry?: Telemetry private messages: Array private iterationCount = 0 @@ -241,6 +247,7 @@ class TextEngine< ? { signal: config.params.abortController.signal } : undefined this.effectiveSignal = config.params.abortController?.signal + this.telemetry = config.params.telemetry } /** Get the accumulated content after the chat loop completes */ @@ -942,6 +949,7 @@ class TextEngine< messageCount: number hasTools: boolean streaming: boolean + telemetry?: Telemetry } { return { requestId: this.requestId, @@ -960,6 +968,7 @@ class TextEngine< messageCount: this.initialMessageCount, hasTools: this.tools.length > 0, streaming: true, + telemetry: this.telemetry, } } @@ -1194,10 +1203,10 @@ async function runAgenticStructuredOutput( } // Re-export adapter types +export { BaseTextAdapter } from './adapter' export type { - TextAdapter, - TextAdapterConfig, StructuredOutputOptions, - StructuredOutputResult, + StructuredOutputResult, TextAdapter, + TextAdapterConfig } from './adapter' -export { BaseTextAdapter } from './adapter' + diff --git a/packages/typescript/ai/src/activities/generateImage/index.ts b/packages/typescript/ai/src/activities/generateImage/index.ts index d573b32f..441bf820 100644 --- a/packages/typescript/ai/src/activities/generateImage/index.ts +++ b/packages/typescript/ai/src/activities/generateImage/index.ts @@ -6,8 +6,8 @@ */ import { aiEventClient } from '../../event-client.js' +import type { ImageGenerationOptions, ImageGenerationResult } from '../../types' import type { ImageAdapter } from './adapter' -import type { ImageGenerationResult } from '../../types' // =========================== // Activity Kind @@ -27,14 +27,14 @@ export const kind = 'image' as const */ export type ImageProviderOptionsForModel = TAdapter extends ImageAdapter - ? string extends keyof ModelOptions - ? // ModelOptions is Record or has index signature - use BaseOptions - BaseOptions - : // ModelOptions has explicit keys - check if TModel is one of them - TModel extends keyof ModelOptions - ? ModelOptions[TModel] - : BaseOptions - : object + ? string extends keyof ModelOptions + ? // ModelOptions is Record or has index signature - use BaseOptions + BaseOptions + : // ModelOptions has explicit keys - check if TModel is one of them + TModel extends keyof ModelOptions + ? ModelOptions[TModel] + : BaseOptions + : object /** * Extract model-specific size options from an ImageAdapter via ~types. @@ -42,14 +42,14 @@ export type ImageProviderOptionsForModel = */ export type ImageSizeForModel = TAdapter extends ImageAdapter - ? string extends keyof SizeByName - ? // SizeByName has index signature - fall back to string - string - : // SizeByName has explicit keys - check if TModel is one of them - TModel extends keyof SizeByName - ? SizeByName[TModel] - : string - : string + ? string extends keyof SizeByName + ? // SizeByName has index signature - fall back to string + string + : // SizeByName has explicit keys - check if TModel is one of them + TModel extends keyof SizeByName + ? SizeByName[TModel] + : string + : string // =========================== // Activity Options Type @@ -74,6 +74,10 @@ export interface ImageActivityOptions< size?: ImageSizeForModel /** Provider-specific options for image generation */ modelOptions?: ImageProviderOptionsForModel + /** + * Telemetry data for tracking and monitoring. + */ + telemetry?: ImageGenerationOptions['telemetry'] } // =========================== @@ -152,6 +156,7 @@ export async function generateImage< numberOfImages: rest.numberOfImages, size: rest.size as string | undefined, modelOptions: rest.modelOptions as Record | undefined, + telemetry: rest.telemetry, timestamp: startTime, }) @@ -168,6 +173,7 @@ export async function generateImage< })), duration, modelOptions: rest.modelOptions as Record | undefined, + telemetry: rest.telemetry, timestamp: Date.now(), }) @@ -177,6 +183,7 @@ export async function generateImage< model, usage: result.usage, modelOptions: rest.modelOptions as Record | undefined, + telemetry: rest.telemetry, timestamp: Date.now(), }) } @@ -199,9 +206,9 @@ export function createImageOptions< } // Re-export adapter types +export { BaseImageAdapter } from './adapter' export type { - ImageAdapter, - ImageAdapterConfig, - AnyImageAdapter, + AnyImageAdapter, ImageAdapter, + ImageAdapterConfig } from './adapter' -export { BaseImageAdapter } from './adapter' + diff --git a/packages/typescript/ai/src/activities/generateSpeech/index.ts b/packages/typescript/ai/src/activities/generateSpeech/index.ts index 39645eba..190009cd 100644 --- a/packages/typescript/ai/src/activities/generateSpeech/index.ts +++ b/packages/typescript/ai/src/activities/generateSpeech/index.ts @@ -6,8 +6,8 @@ */ import { aiEventClient } from '../../event-client.js' +import type { TTSOptions, TTSResult } from '../../types' import type { TTSAdapter } from './adapter' -import type { TTSResult } from '../../types' // =========================== // Activity Kind @@ -25,8 +25,8 @@ export const kind = 'tts' as const */ export type TTSProviderOptions = TAdapter extends TTSAdapter - ? TAdapter['~types']['providerOptions'] - : object + ? TAdapter['~types']['providerOptions'] + : object // =========================== // Activity Options Type @@ -53,6 +53,10 @@ export interface TTSActivityOptions< speed?: number /** Provider-specific options for TTS generation */ modelOptions?: TTSProviderOptions + /** + * Telemetry data for tracking and monitoring. + */ + telemetry?: TTSOptions['telemetry'] } // =========================== @@ -117,6 +121,7 @@ export async function generateSpeech< format: rest.format, speed: rest.speed, modelOptions: rest.modelOptions as Record | undefined, + telemetry: rest.telemetry, timestamp: startTime, }) @@ -133,6 +138,7 @@ export async function generateSpeech< contentType: result.contentType, duration, modelOptions: rest.modelOptions as Record | undefined, + telemetry: rest.telemetry, timestamp: Date.now(), }) @@ -154,5 +160,6 @@ export function createSpeechOptions< } // Re-export adapter types -export type { TTSAdapter, TTSAdapterConfig, AnyTTSAdapter } from './adapter' export { BaseTTSAdapter } from './adapter' +export type { AnyTTSAdapter, TTSAdapter, TTSAdapterConfig } from './adapter' + diff --git a/packages/typescript/ai/src/activities/generateTranscription/index.ts b/packages/typescript/ai/src/activities/generateTranscription/index.ts index dff9a477..d022668b 100644 --- a/packages/typescript/ai/src/activities/generateTranscription/index.ts +++ b/packages/typescript/ai/src/activities/generateTranscription/index.ts @@ -6,8 +6,8 @@ */ import { aiEventClient } from '../../event-client.js' +import type { TranscriptionOptions, TranscriptionResult } from '../../types' import type { TranscriptionAdapter } from './adapter' -import type { TranscriptionResult } from '../../types' // =========================== // Activity Kind @@ -25,8 +25,8 @@ export const kind = 'transcription' as const */ export type TranscriptionProviderOptions = TAdapter extends TranscriptionAdapter - ? TAdapter['~types']['providerOptions'] - : object + ? TAdapter['~types']['providerOptions'] + : object // =========================== // Activity Options Type @@ -53,6 +53,10 @@ export interface TranscriptionActivityOptions< responseFormat?: 'json' | 'text' | 'srt' | 'verbose_json' | 'vtt' /** Provider-specific options for transcription */ modelOptions?: TranscriptionProviderOptions + /** + * Telemetry data for tracking and monitoring. + */ + telemetry?: TranscriptionOptions['telemetry'] } // =========================== @@ -120,6 +124,7 @@ export async function generateTranscription< prompt: rest.prompt, responseFormat: rest.responseFormat, modelOptions: rest.modelOptions as Record | undefined, + telemetry: rest.telemetry, timestamp: startTime, }) @@ -134,6 +139,7 @@ export async function generateTranscription< language: result.language, duration, modelOptions: rest.modelOptions as Record | undefined, + telemetry: rest.telemetry, timestamp: Date.now(), }) @@ -156,9 +162,9 @@ export function createTranscriptionOptions< } // Re-export adapter types +export { BaseTranscriptionAdapter } from './adapter' export type { - TranscriptionAdapter, - TranscriptionAdapterConfig, - AnyTranscriptionAdapter, + AnyTranscriptionAdapter, TranscriptionAdapter, + TranscriptionAdapterConfig } from './adapter' -export { BaseTranscriptionAdapter } from './adapter' + diff --git a/packages/typescript/ai/src/activities/generateVideo/index.ts b/packages/typescript/ai/src/activities/generateVideo/index.ts index 9a7a46aa..07365605 100644 --- a/packages/typescript/ai/src/activities/generateVideo/index.ts +++ b/packages/typescript/ai/src/activities/generateVideo/index.ts @@ -8,12 +8,13 @@ */ import { aiEventClient } from '../../event-client.js' -import type { VideoAdapter } from './adapter' import type { + VideoGenerationOptions, VideoJobResult, VideoStatusResult, VideoUrlResult, } from '../../types' +import type { VideoAdapter } from './adapter' // =========================== // Activity Kind @@ -31,8 +32,8 @@ export const kind = 'video' as const */ export type VideoProviderOptions = TAdapter extends VideoAdapter - ? TAdapter['~types']['providerOptions'] - : object + ? TAdapter['~types']['providerOptions'] + : object // =========================== // Activity Options Types @@ -51,6 +52,10 @@ interface VideoActivityBaseOptions< > { /** The video adapter to use (must be created with a model) */ adapter: TAdapter & { kind: typeof kind } + /** + * Telemetry data for tracking and monitoring. + */ + telemetry?: VideoGenerationOptions['telemetry'] } /** @@ -114,8 +119,8 @@ export type VideoActivityOptions< > = TRequest extends 'status' ? VideoStatusOptions : TRequest extends 'url' - ? VideoUrlOptions - : VideoCreateOptions + ? VideoUrlOptions + : VideoCreateOptions // =========================== // Activity Result Types @@ -131,8 +136,8 @@ export type VideoActivityResult< > = TRequest extends 'status' ? Promise : TRequest extends 'url' - ? Promise - : Promise + ? Promise + : Promise // =========================== // Activity Implementation @@ -202,16 +207,13 @@ export async function generateVideo< */ export async function getVideoJobStatus< TAdapter extends VideoAdapter, ->(options: { - adapter: TAdapter & { kind: typeof kind } - jobId: string -}): Promise<{ +>(options: VideoStatusOptions): Promise<{ status: 'pending' | 'processing' | 'completed' | 'failed' progress?: number url?: string error?: string }> { - const { adapter, jobId } = options + const { adapter, jobId, ...rest } = options const requestId = createId('video-status') const startTime = Date.now() @@ -221,6 +223,7 @@ export async function getVideoJobStatus< model: adapter.model, requestType: 'status', jobId, + telemetry: rest.telemetry, timestamp: startTime, }) @@ -241,6 +244,7 @@ export async function getVideoJobStatus< progress: statusResult.progress, url: urlResult.url, duration: Date.now() - startTime, + telemetry: rest.telemetry, timestamp: Date.now(), }) return { @@ -260,6 +264,7 @@ export async function getVideoJobStatus< error: error instanceof Error ? error.message : 'Failed to get video URL', duration: Date.now() - startTime, + telemetry: rest.telemetry, timestamp: Date.now(), }) // If URL fetch fails, still return status @@ -282,6 +287,7 @@ export async function getVideoJobStatus< progress: statusResult.progress, error: statusResult.error, duration: Date.now() - startTime, + telemetry: rest.telemetry, timestamp: Date.now(), }) @@ -307,9 +313,9 @@ export function createVideoOptions< } // Re-export adapter types +export { BaseVideoAdapter } from './adapter' export type { - VideoAdapter, - VideoAdapterConfig, - AnyVideoAdapter, + AnyVideoAdapter, VideoAdapter, + VideoAdapterConfig } from './adapter' -export { BaseVideoAdapter } from './adapter' + diff --git a/packages/typescript/ai/src/activities/summarize/index.ts b/packages/typescript/ai/src/activities/summarize/index.ts index ddee4280..0e6b30d5 100644 --- a/packages/typescript/ai/src/activities/summarize/index.ts +++ b/packages/typescript/ai/src/activities/summarize/index.ts @@ -6,12 +6,12 @@ */ import { aiEventClient } from '../../event-client.js' -import type { SummarizeAdapter } from './adapter' import type { StreamChunk, SummarizationOptions, - SummarizationResult, + SummarizationResult } from '../../types' +import type { SummarizeAdapter } from './adapter' // =========================== // Activity Kind @@ -27,8 +27,8 @@ export const kind = 'summarize' as const /** Extract provider options from a SummarizeAdapter via ~types */ export type SummarizeProviderOptions = TAdapter extends SummarizeAdapter - ? TAdapter['~types']['providerOptions'] - : object + ? TAdapter['~types']['providerOptions'] + : object // =========================== // Activity Options Type @@ -65,6 +65,10 @@ export interface SummarizeActivityOptions< * @default false */ stream?: TStream + /** + * Telemetry data for tracking and monitoring. + */ + telemetry?: SummarizationOptions['telemetry'] } // =========================== @@ -78,8 +82,8 @@ export interface SummarizeActivityOptions< */ export type SummarizeActivityResult = TStream extends true - ? AsyncIterable - : Promise + ? AsyncIterable + : Promise // =========================== // Helper Functions @@ -174,7 +178,7 @@ export function summarize< async function runSummarize( options: SummarizeActivityOptions, false>, ): Promise { - const { adapter, text, maxLength, style, focus } = options + const { adapter, text, maxLength, style, focus, telemetry } = options const model = adapter.model const requestId = createId('summarize') const inputLength = text.length @@ -185,6 +189,7 @@ async function runSummarize( provider: adapter.name, model, inputLength, + telemetry, timestamp: startTime, }) @@ -194,6 +199,7 @@ async function runSummarize( maxLength, style, focus, + telemetry, } const result = await adapter.summarize(summarizeOptions) @@ -208,6 +214,7 @@ async function runSummarize( inputLength, outputLength, duration, + telemetry, timestamp: Date.now(), }) @@ -231,6 +238,7 @@ async function* runStreamingSummarize( maxLength, style, focus, + telemetry: options.telemetry, } // Use real streaming if the adapter supports it @@ -280,9 +288,9 @@ export function createSummarizeOptions< } // Re-export adapter types +export { BaseSummarizeAdapter } from './adapter' export type { - SummarizeAdapter, - SummarizeAdapterConfig, - AnySummarizeAdapter, + AnySummarizeAdapter, SummarizeAdapter, + SummarizeAdapterConfig } from './adapter' -export { BaseSummarizeAdapter } from './adapter' + diff --git a/packages/typescript/ai/src/event-client.ts b/packages/typescript/ai/src/event-client.ts index b76d6705..a8bee27c 100644 --- a/packages/typescript/ai/src/event-client.ts +++ b/packages/typescript/ai/src/event-client.ts @@ -1,5 +1,5 @@ import { EventClient } from '@tanstack/devtools-event-client' -import type { MessagePart, ToolCall } from './types' +import type { MessagePart, Telemetry, ToolCall } from './types' /** * Tool call states - track the lifecycle of a tool call @@ -44,6 +44,7 @@ interface BaseEventContext { model?: string systemPrompts?: Array options?: Record + telemetry?: Telemetry modelOptions?: Record toolNames?: Array messageCount?: number diff --git a/packages/typescript/ai/src/types.ts b/packages/typescript/ai/src/types.ts index 7bd3c52d..9d6126c6 100644 --- a/packages/typescript/ai/src/types.ts +++ b/packages/typescript/ai/src/types.ts @@ -1,5 +1,12 @@ import type { StandardJSONSchemaV1 } from '@standard-schema/spec' +/** + * Telemetry data for tracking and debugging. + */ +export interface Telemetry { + metadata: Record +} + /** * Tool call states - track the lifecycle of a tool call */ @@ -617,6 +624,10 @@ export interface TextOptions< * - Gemini: Not directly available in TextProviderOptions */ metadata?: Record + /** + * Telemetry data for tracking and monitoring. + */ + telemetry?: Telemetry modelOptions?: TProviderOptionsForModel request?: Request | RequestInit @@ -912,6 +923,10 @@ export interface SummarizationOptions { maxLength?: number style?: 'bullet-points' | 'paragraph' | 'concise' focus?: Array + /** + * Telemetry data for tracking and monitoring. + */ + telemetry?: Telemetry } export interface SummarizationResult { @@ -946,6 +961,10 @@ export interface ImageGenerationOptions< size?: string /** Model-specific options for image generation */ modelOptions?: TProviderOptions + /** + * Telemetry data for tracking and monitoring. + */ + telemetry?: Telemetry } /** @@ -1001,6 +1020,10 @@ export interface VideoGenerationOptions< duration?: number /** Model-specific options for video generation */ modelOptions?: TProviderOptions + /** + * Telemetry data for tracking and monitoring. + */ + telemetry?: Telemetry } /** @@ -1066,6 +1089,10 @@ export interface TTSOptions { speed?: number /** Model-specific options for TTS generation */ modelOptions?: TProviderOptions + /** + * Telemetry data for tracking and monitoring. + */ + telemetry?: Telemetry } /** @@ -1109,6 +1136,10 @@ export interface TranscriptionOptions< responseFormat?: 'json' | 'text' | 'srt' | 'verbose_json' | 'vtt' /** Model-specific options for transcription */ modelOptions?: TProviderOptions + /** + * Telemetry data for tracking and monitoring. + */ + telemetry?: Telemetry } /** From 47a8d0e61bddfd7cdc5135316971ebdad8f63125 Mon Sep 17 00:00:00 2001 From: Nikas Belogolov Date: Sun, 1 Feb 2026 15:31:05 +0200 Subject: [PATCH 2/4] Added changeset --- .changeset/beige-colts-design.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/beige-colts-design.md diff --git a/.changeset/beige-colts-design.md b/.changeset/beige-colts-design.md new file mode 100644 index 00000000..499e591a --- /dev/null +++ b/.changeset/beige-colts-design.md @@ -0,0 +1,5 @@ +--- +'@tanstack/ai': minor +--- + +Added telemetry field to activities and events From b953ca6daaa52a30e27c2c79e7305054656dbfba Mon Sep 17 00:00:00 2001 From: Nikas Belogolov Date: Mon, 2 Feb 2026 17:07:29 +0200 Subject: [PATCH 3/4] added JSDoc, added functionId, renamed types --- .../ai/src/activities/chat/index.ts | 6 +-- packages/typescript/ai/src/event-client.ts | 4 +- packages/typescript/ai/src/types.ts | 38 +++++++++++++++---- 3 files changed, 35 insertions(+), 13 deletions(-) diff --git a/packages/typescript/ai/src/activities/chat/index.ts b/packages/typescript/ai/src/activities/chat/index.ts index 6cd57ce2..ec414fc2 100644 --- a/packages/typescript/ai/src/activities/chat/index.ts +++ b/packages/typescript/ai/src/activities/chat/index.ts @@ -28,7 +28,7 @@ import type { RunFinishedEvent, SchemaInput, StreamChunk, - Telemetry, + TelemetrySettings, TextMessageContentEvent, TextOptions, Tool, @@ -214,7 +214,7 @@ class TextEngine< private readonly streamId: string private readonly effectiveRequest?: Request | RequestInit private readonly effectiveSignal?: AbortSignal - private readonly telemetry?: Telemetry + private readonly telemetry?: TelemetrySettings private messages: Array private iterationCount = 0 @@ -949,7 +949,7 @@ class TextEngine< messageCount: number hasTools: boolean streaming: boolean - telemetry?: Telemetry + telemetry?: TelemetrySettings } { return { requestId: this.requestId, diff --git a/packages/typescript/ai/src/event-client.ts b/packages/typescript/ai/src/event-client.ts index a8bee27c..b3567b2d 100644 --- a/packages/typescript/ai/src/event-client.ts +++ b/packages/typescript/ai/src/event-client.ts @@ -1,5 +1,5 @@ import { EventClient } from '@tanstack/devtools-event-client' -import type { MessagePart, Telemetry, ToolCall } from './types' +import type { MessagePart, TelemetrySettings, ToolCall } from './types' /** * Tool call states - track the lifecycle of a tool call @@ -44,7 +44,7 @@ interface BaseEventContext { model?: string systemPrompts?: Array options?: Record - telemetry?: Telemetry + telemetry?: TelemetrySettings modelOptions?: Record toolNames?: Array messageCount?: number diff --git a/packages/typescript/ai/src/types.ts b/packages/typescript/ai/src/types.ts index 9d6126c6..001b5f54 100644 --- a/packages/typescript/ai/src/types.ts +++ b/packages/typescript/ai/src/types.ts @@ -1,10 +1,32 @@ import type { StandardJSONSchemaV1 } from '@standard-schema/spec' +/** + * Type for telemetry metadata values. + * + * This type is intended to be replaced by OpenTelemetry AttributeType in the future. + */ +export type TelemetryMetadataValue = + | string + | number + | boolean + | Array + | Array + | Array; + /** * Telemetry data for tracking and debugging. */ -export interface Telemetry { - metadata: Record +export type TelemetrySettings = { + /** + * Identifier for the specific function or operation being tracked. + */ + functionId?: string + + /** + * Arbitrary key-value pairs for tracking context. + * Common keys: userId, sessionId, billingAccount, environment, etc. + */ + metadata?: Record } /** @@ -627,7 +649,7 @@ export interface TextOptions< /** * Telemetry data for tracking and monitoring. */ - telemetry?: Telemetry + telemetry?: TelemetrySettings modelOptions?: TProviderOptionsForModel request?: Request | RequestInit @@ -926,7 +948,7 @@ export interface SummarizationOptions { /** * Telemetry data for tracking and monitoring. */ - telemetry?: Telemetry + telemetry?: TelemetrySettings } export interface SummarizationResult { @@ -964,7 +986,7 @@ export interface ImageGenerationOptions< /** * Telemetry data for tracking and monitoring. */ - telemetry?: Telemetry + telemetry?: TelemetrySettings } /** @@ -1023,7 +1045,7 @@ export interface VideoGenerationOptions< /** * Telemetry data for tracking and monitoring. */ - telemetry?: Telemetry + telemetry?: TelemetrySettings } /** @@ -1092,7 +1114,7 @@ export interface TTSOptions { /** * Telemetry data for tracking and monitoring. */ - telemetry?: Telemetry + telemetry?: TelemetrySettings } /** @@ -1139,7 +1161,7 @@ export interface TranscriptionOptions< /** * Telemetry data for tracking and monitoring. */ - telemetry?: Telemetry + telemetry?: TelemetrySettings } /** From 08d1fefe6589acf5a483d054fbc163379a75b052 Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Mon, 2 Feb 2026 15:08:45 +0000 Subject: [PATCH 4/4] ci: apply automated fixes --- .../ai/src/activities/chat/index.ts | 10 ++--- .../ai/src/activities/generateImage/index.ts | 38 +++++++++---------- .../ai/src/activities/generateSpeech/index.ts | 5 +-- .../activities/generateTranscription/index.ts | 10 ++--- .../ai/src/activities/generateVideo/index.ts | 22 ++++++----- .../ai/src/activities/summarize/index.ts | 16 ++++---- packages/typescript/ai/src/types.ts | 2 +- 7 files changed, 52 insertions(+), 51 deletions(-) diff --git a/packages/typescript/ai/src/activities/chat/index.ts b/packages/typescript/ai/src/activities/chat/index.ts index ec414fc2..ed307b59 100644 --- a/packages/typescript/ai/src/activities/chat/index.ts +++ b/packages/typescript/ai/src/activities/chat/index.ts @@ -180,8 +180,8 @@ export type TextActivityResult< > = TSchema extends SchemaInput ? Promise> : TStream extends false - ? Promise - : AsyncIterable + ? Promise + : AsyncIterable // =========================== // ChatEngine Implementation @@ -1206,7 +1206,7 @@ async function runAgenticStructuredOutput( export { BaseTextAdapter } from './adapter' export type { StructuredOutputOptions, - StructuredOutputResult, TextAdapter, - TextAdapterConfig + StructuredOutputResult, + TextAdapter, + TextAdapterConfig, } from './adapter' - diff --git a/packages/typescript/ai/src/activities/generateImage/index.ts b/packages/typescript/ai/src/activities/generateImage/index.ts index 441bf820..0caaa96a 100644 --- a/packages/typescript/ai/src/activities/generateImage/index.ts +++ b/packages/typescript/ai/src/activities/generateImage/index.ts @@ -27,14 +27,14 @@ export const kind = 'image' as const */ export type ImageProviderOptionsForModel = TAdapter extends ImageAdapter - ? string extends keyof ModelOptions - ? // ModelOptions is Record or has index signature - use BaseOptions - BaseOptions - : // ModelOptions has explicit keys - check if TModel is one of them - TModel extends keyof ModelOptions - ? ModelOptions[TModel] - : BaseOptions - : object + ? string extends keyof ModelOptions + ? // ModelOptions is Record or has index signature - use BaseOptions + BaseOptions + : // ModelOptions has explicit keys - check if TModel is one of them + TModel extends keyof ModelOptions + ? ModelOptions[TModel] + : BaseOptions + : object /** * Extract model-specific size options from an ImageAdapter via ~types. @@ -42,14 +42,14 @@ export type ImageProviderOptionsForModel = */ export type ImageSizeForModel = TAdapter extends ImageAdapter - ? string extends keyof SizeByName - ? // SizeByName has index signature - fall back to string - string - : // SizeByName has explicit keys - check if TModel is one of them - TModel extends keyof SizeByName - ? SizeByName[TModel] - : string - : string + ? string extends keyof SizeByName + ? // SizeByName has index signature - fall back to string + string + : // SizeByName has explicit keys - check if TModel is one of them + TModel extends keyof SizeByName + ? SizeByName[TModel] + : string + : string // =========================== // Activity Options Type @@ -208,7 +208,7 @@ export function createImageOptions< // Re-export adapter types export { BaseImageAdapter } from './adapter' export type { - AnyImageAdapter, ImageAdapter, - ImageAdapterConfig + AnyImageAdapter, + ImageAdapter, + ImageAdapterConfig, } from './adapter' - diff --git a/packages/typescript/ai/src/activities/generateSpeech/index.ts b/packages/typescript/ai/src/activities/generateSpeech/index.ts index 190009cd..2c002457 100644 --- a/packages/typescript/ai/src/activities/generateSpeech/index.ts +++ b/packages/typescript/ai/src/activities/generateSpeech/index.ts @@ -25,8 +25,8 @@ export const kind = 'tts' as const */ export type TTSProviderOptions = TAdapter extends TTSAdapter - ? TAdapter['~types']['providerOptions'] - : object + ? TAdapter['~types']['providerOptions'] + : object // =========================== // Activity Options Type @@ -162,4 +162,3 @@ export function createSpeechOptions< // Re-export adapter types export { BaseTTSAdapter } from './adapter' export type { AnyTTSAdapter, TTSAdapter, TTSAdapterConfig } from './adapter' - diff --git a/packages/typescript/ai/src/activities/generateTranscription/index.ts b/packages/typescript/ai/src/activities/generateTranscription/index.ts index d022668b..292bca5d 100644 --- a/packages/typescript/ai/src/activities/generateTranscription/index.ts +++ b/packages/typescript/ai/src/activities/generateTranscription/index.ts @@ -25,8 +25,8 @@ export const kind = 'transcription' as const */ export type TranscriptionProviderOptions = TAdapter extends TranscriptionAdapter - ? TAdapter['~types']['providerOptions'] - : object + ? TAdapter['~types']['providerOptions'] + : object // =========================== // Activity Options Type @@ -164,7 +164,7 @@ export function createTranscriptionOptions< // Re-export adapter types export { BaseTranscriptionAdapter } from './adapter' export type { - AnyTranscriptionAdapter, TranscriptionAdapter, - TranscriptionAdapterConfig + AnyTranscriptionAdapter, + TranscriptionAdapter, + TranscriptionAdapterConfig, } from './adapter' - diff --git a/packages/typescript/ai/src/activities/generateVideo/index.ts b/packages/typescript/ai/src/activities/generateVideo/index.ts index 07365605..da9aae44 100644 --- a/packages/typescript/ai/src/activities/generateVideo/index.ts +++ b/packages/typescript/ai/src/activities/generateVideo/index.ts @@ -32,8 +32,8 @@ export const kind = 'video' as const */ export type VideoProviderOptions = TAdapter extends VideoAdapter - ? TAdapter['~types']['providerOptions'] - : object + ? TAdapter['~types']['providerOptions'] + : object // =========================== // Activity Options Types @@ -119,8 +119,8 @@ export type VideoActivityOptions< > = TRequest extends 'status' ? VideoStatusOptions : TRequest extends 'url' - ? VideoUrlOptions - : VideoCreateOptions + ? VideoUrlOptions + : VideoCreateOptions // =========================== // Activity Result Types @@ -136,8 +136,8 @@ export type VideoActivityResult< > = TRequest extends 'status' ? Promise : TRequest extends 'url' - ? Promise - : Promise + ? Promise + : Promise // =========================== // Activity Implementation @@ -207,7 +207,9 @@ export async function generateVideo< */ export async function getVideoJobStatus< TAdapter extends VideoAdapter, ->(options: VideoStatusOptions): Promise<{ +>( + options: VideoStatusOptions, +): Promise<{ status: 'pending' | 'processing' | 'completed' | 'failed' progress?: number url?: string @@ -315,7 +317,7 @@ export function createVideoOptions< // Re-export adapter types export { BaseVideoAdapter } from './adapter' export type { - AnyVideoAdapter, VideoAdapter, - VideoAdapterConfig + AnyVideoAdapter, + VideoAdapter, + VideoAdapterConfig, } from './adapter' - diff --git a/packages/typescript/ai/src/activities/summarize/index.ts b/packages/typescript/ai/src/activities/summarize/index.ts index 0e6b30d5..f2851032 100644 --- a/packages/typescript/ai/src/activities/summarize/index.ts +++ b/packages/typescript/ai/src/activities/summarize/index.ts @@ -9,7 +9,7 @@ import { aiEventClient } from '../../event-client.js' import type { StreamChunk, SummarizationOptions, - SummarizationResult + SummarizationResult, } from '../../types' import type { SummarizeAdapter } from './adapter' @@ -27,8 +27,8 @@ export const kind = 'summarize' as const /** Extract provider options from a SummarizeAdapter via ~types */ export type SummarizeProviderOptions = TAdapter extends SummarizeAdapter - ? TAdapter['~types']['providerOptions'] - : object + ? TAdapter['~types']['providerOptions'] + : object // =========================== // Activity Options Type @@ -82,8 +82,8 @@ export interface SummarizeActivityOptions< */ export type SummarizeActivityResult = TStream extends true - ? AsyncIterable - : Promise + ? AsyncIterable + : Promise // =========================== // Helper Functions @@ -290,7 +290,7 @@ export function createSummarizeOptions< // Re-export adapter types export { BaseSummarizeAdapter } from './adapter' export type { - AnySummarizeAdapter, SummarizeAdapter, - SummarizeAdapterConfig + AnySummarizeAdapter, + SummarizeAdapter, + SummarizeAdapterConfig, } from './adapter' - diff --git a/packages/typescript/ai/src/types.ts b/packages/typescript/ai/src/types.ts index 001b5f54..e27f0707 100644 --- a/packages/typescript/ai/src/types.ts +++ b/packages/typescript/ai/src/types.ts @@ -11,7 +11,7 @@ export type TelemetryMetadataValue = | boolean | Array | Array - | Array; + | Array /** * Telemetry data for tracking and debugging.