@tanstack/ai 0.13.0 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/activities/chat/index.js +61 -9
- package/dist/esm/activities/chat/index.js.map +1 -1
- package/dist/esm/activities/chat/messages.js +22 -1
- package/dist/esm/activities/chat/messages.js.map +1 -1
- package/dist/esm/activities/chat/stream/message-updaters.d.ts +3 -2
- package/dist/esm/activities/chat/stream/message-updaters.js +7 -3
- package/dist/esm/activities/chat/stream/message-updaters.js.map +1 -1
- package/dist/esm/activities/chat/stream/processor.d.ts +21 -5
- package/dist/esm/activities/chat/stream/processor.js +107 -15
- package/dist/esm/activities/chat/stream/processor.js.map +1 -1
- package/dist/esm/activities/chat/stream/types.d.ts +4 -1
- package/dist/esm/activities/chat/tools/tool-calls.js +2 -1
- package/dist/esm/activities/chat/tools/tool-calls.js.map +1 -1
- package/dist/esm/activities/error-payload.d.ts +12 -0
- package/dist/esm/activities/error-payload.js +25 -0
- package/dist/esm/activities/error-payload.js.map +1 -0
- package/dist/esm/activities/generateAudio/adapter.d.ts +62 -0
- package/dist/esm/activities/generateAudio/adapter.js +14 -0
- package/dist/esm/activities/generateAudio/adapter.js.map +1 -0
- package/dist/esm/activities/generateAudio/index.d.ts +74 -0
- package/dist/esm/activities/generateAudio/index.js +80 -0
- package/dist/esm/activities/generateAudio/index.js.map +1 -0
- package/dist/esm/activities/generateImage/adapter.d.ts +1 -1
- package/dist/esm/activities/generateImage/adapter.js +1 -1
- package/dist/esm/activities/generateImage/adapter.js.map +1 -1
- package/dist/esm/activities/generateSpeech/adapter.d.ts +1 -1
- package/dist/esm/activities/generateSpeech/adapter.js +1 -1
- package/dist/esm/activities/generateSpeech/adapter.js.map +1 -1
- package/dist/esm/activities/generateSpeech/index.d.ts +3 -3
- package/dist/esm/activities/generateSpeech/index.js +11 -0
- package/dist/esm/activities/generateSpeech/index.js.map +1 -1
- package/dist/esm/activities/generateTranscription/adapter.d.ts +1 -1
- package/dist/esm/activities/generateTranscription/adapter.js +1 -1
- package/dist/esm/activities/generateTranscription/adapter.js.map +1 -1
- package/dist/esm/activities/generateTranscription/index.d.ts +3 -3
- package/dist/esm/activities/generateTranscription/index.js +11 -0
- package/dist/esm/activities/generateTranscription/index.js.map +1 -1
- package/dist/esm/activities/generateVideo/index.js +7 -7
- package/dist/esm/activities/generateVideo/index.js.map +1 -1
- package/dist/esm/activities/index.d.ts +5 -2
- package/dist/esm/activities/index.js +11 -6
- package/dist/esm/activities/index.js.map +1 -1
- package/dist/esm/activities/stream-generation-result.js +5 -6
- package/dist/esm/activities/stream-generation-result.js.map +1 -1
- package/dist/esm/adapter-internals.d.ts +1 -0
- package/dist/esm/adapter-internals.js +3 -1
- package/dist/esm/adapter-internals.js.map +1 -1
- package/dist/esm/index.d.ts +3 -2
- package/dist/esm/index.js +3 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/middlewares/otel.d.ts +75 -0
- package/dist/esm/middlewares/otel.js +624 -0
- package/dist/esm/middlewares/otel.js.map +1 -0
- package/dist/esm/stream-to-response.js +3 -8
- package/dist/esm/stream-to-response.js.map +1 -1
- package/dist/esm/types.d.ts +71 -6
- package/package.json +15 -2
- package/skills/ai-core/media-generation/SKILL.md +154 -10
- package/src/activities/chat/index.ts +74 -11
- package/src/activities/chat/messages.ts +23 -1
- package/src/activities/chat/stream/message-updaters.ts +10 -3
- package/src/activities/chat/stream/processor.ts +140 -17
- package/src/activities/chat/stream/types.ts +4 -1
- package/src/activities/chat/tools/tool-calls.ts +3 -1
- package/src/activities/error-payload.ts +35 -0
- package/src/activities/generateAudio/adapter.ts +89 -0
- package/src/activities/generateAudio/index.ts +224 -0
- package/src/activities/generateImage/adapter.ts +1 -1
- package/src/activities/generateSpeech/adapter.ts +1 -1
- package/src/activities/generateSpeech/index.ts +17 -7
- package/src/activities/generateTranscription/adapter.ts +1 -1
- package/src/activities/generateTranscription/index.ts +27 -4
- package/src/activities/generateVideo/index.ts +8 -8
- package/src/activities/index.ts +22 -0
- package/src/activities/stream-generation-result.ts +6 -7
- package/src/adapter-internals.ts +1 -0
- package/src/index.ts +4 -0
- package/src/middlewares/index.ts +5 -0
- package/src/middlewares/otel.ts +861 -0
- package/src/stream-to-response.ts +5 -10
- package/src/types.ts +79 -5
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { toRunErrorPayload } from './activities/error-payload'
|
|
1
2
|
import type { StreamChunk } from './types'
|
|
2
3
|
|
|
3
4
|
/**
|
|
@@ -68,7 +69,7 @@ export function toServerSentEventsStream(
|
|
|
68
69
|
}
|
|
69
70
|
|
|
70
71
|
controller.close()
|
|
71
|
-
} catch (error:
|
|
72
|
+
} catch (error: unknown) {
|
|
72
73
|
// Don't send error if aborted
|
|
73
74
|
if (abortController?.signal.aborted) {
|
|
74
75
|
controller.close()
|
|
@@ -81,10 +82,7 @@ export function toServerSentEventsStream(
|
|
|
81
82
|
`data: ${JSON.stringify({
|
|
82
83
|
type: 'RUN_ERROR',
|
|
83
84
|
timestamp: Date.now(),
|
|
84
|
-
error:
|
|
85
|
-
message: error.message || 'Unknown error occurred',
|
|
86
|
-
code: error.code,
|
|
87
|
-
},
|
|
85
|
+
error: toRunErrorPayload(error),
|
|
88
86
|
})}\n\n`,
|
|
89
87
|
),
|
|
90
88
|
)
|
|
@@ -190,7 +188,7 @@ export function toHttpStream(
|
|
|
190
188
|
}
|
|
191
189
|
|
|
192
190
|
controller.close()
|
|
193
|
-
} catch (error:
|
|
191
|
+
} catch (error: unknown) {
|
|
194
192
|
// Don't send error if aborted
|
|
195
193
|
if (abortController?.signal.aborted) {
|
|
196
194
|
controller.close()
|
|
@@ -203,10 +201,7 @@ export function toHttpStream(
|
|
|
203
201
|
`${JSON.stringify({
|
|
204
202
|
type: 'RUN_ERROR',
|
|
205
203
|
timestamp: Date.now(),
|
|
206
|
-
error:
|
|
207
|
-
message: error.message || 'Unknown error occurred',
|
|
208
|
-
code: error.code,
|
|
209
|
-
},
|
|
204
|
+
error: toRunErrorPayload(error),
|
|
210
205
|
})}\n`,
|
|
211
206
|
),
|
|
212
207
|
)
|
package/src/types.ts
CHANGED
|
@@ -297,6 +297,7 @@ export interface ModelMessage<
|
|
|
297
297
|
name?: string
|
|
298
298
|
toolCalls?: Array<ToolCall>
|
|
299
299
|
toolCallId?: string
|
|
300
|
+
thinking?: Array<{ content: string; signature?: string }>
|
|
300
301
|
}
|
|
301
302
|
|
|
302
303
|
/**
|
|
@@ -335,6 +336,8 @@ export interface ToolResultPart {
|
|
|
335
336
|
export interface ThinkingPart {
|
|
336
337
|
type: 'thinking'
|
|
337
338
|
content: string
|
|
339
|
+
stepId?: string
|
|
340
|
+
signature?: string
|
|
338
341
|
}
|
|
339
342
|
|
|
340
343
|
export type MessagePart =
|
|
@@ -987,6 +990,8 @@ export interface StepFinishedEvent extends AGUIStepFinishedEvent {
|
|
|
987
990
|
delta?: string
|
|
988
991
|
/** Full accumulated thinking content (TanStack AI internal) */
|
|
989
992
|
content?: string
|
|
993
|
+
/** Provider signature for the thinking block */
|
|
994
|
+
signature?: string
|
|
990
995
|
}
|
|
991
996
|
|
|
992
997
|
/**
|
|
@@ -1219,14 +1224,28 @@ export interface ImageGenerationOptions<
|
|
|
1219
1224
|
logger: InternalLogger
|
|
1220
1225
|
}
|
|
1221
1226
|
|
|
1227
|
+
/**
|
|
1228
|
+
* Source of a generated media asset. Exactly one of `url` or `b64Json` is
|
|
1229
|
+
* present; the other is absent. Modeled as a mutually-exclusive union so the
|
|
1230
|
+
* type rejects `{}` and `{ url, b64Json }` together at compile time while
|
|
1231
|
+
* preserving the flat `.url` / `.b64Json` access patterns.
|
|
1232
|
+
*/
|
|
1233
|
+
export type GeneratedMediaSource =
|
|
1234
|
+
| {
|
|
1235
|
+
/** URL to the generated asset (may be temporary) */
|
|
1236
|
+
url: string
|
|
1237
|
+
b64Json?: never
|
|
1238
|
+
}
|
|
1239
|
+
| {
|
|
1240
|
+
/** Base64-encoded asset data */
|
|
1241
|
+
b64Json: string
|
|
1242
|
+
url?: never
|
|
1243
|
+
}
|
|
1244
|
+
|
|
1222
1245
|
/**
|
|
1223
1246
|
* A single generated image
|
|
1224
1247
|
*/
|
|
1225
|
-
export
|
|
1226
|
-
/** Base64-encoded image data */
|
|
1227
|
-
b64Json?: string
|
|
1228
|
-
/** URL to the generated image (may be temporary) */
|
|
1229
|
-
url?: string
|
|
1248
|
+
export type GeneratedImage = GeneratedMediaSource & {
|
|
1230
1249
|
/** Revised prompt used by the model (if applicable) */
|
|
1231
1250
|
revisedPrompt?: string
|
|
1232
1251
|
}
|
|
@@ -1249,6 +1268,61 @@ export interface ImageGenerationResult {
|
|
|
1249
1268
|
}
|
|
1250
1269
|
}
|
|
1251
1270
|
|
|
1271
|
+
// ============================================================================
|
|
1272
|
+
// Audio Generation Types
|
|
1273
|
+
// ============================================================================
|
|
1274
|
+
|
|
1275
|
+
/**
|
|
1276
|
+
* Options for audio generation (music, sound effects, etc.).
|
|
1277
|
+
* These are the common options supported across providers.
|
|
1278
|
+
*/
|
|
1279
|
+
export interface AudioGenerationOptions<
|
|
1280
|
+
TProviderOptions extends object = object,
|
|
1281
|
+
> {
|
|
1282
|
+
/** The model to use for audio generation */
|
|
1283
|
+
model: string
|
|
1284
|
+
/** Text description of the desired audio */
|
|
1285
|
+
prompt: string
|
|
1286
|
+
/** Desired duration in seconds */
|
|
1287
|
+
duration?: number
|
|
1288
|
+
/** Model-specific options for audio generation */
|
|
1289
|
+
modelOptions?: TProviderOptions
|
|
1290
|
+
/**
|
|
1291
|
+
* Internal logger threaded from the generateAudio() entry point. Adapters
|
|
1292
|
+
* must call logger.request() before the SDK call and logger.errors() in
|
|
1293
|
+
* catch blocks.
|
|
1294
|
+
*/
|
|
1295
|
+
logger: InternalLogger
|
|
1296
|
+
}
|
|
1297
|
+
|
|
1298
|
+
/**
|
|
1299
|
+
* A single generated audio output
|
|
1300
|
+
*/
|
|
1301
|
+
export type GeneratedAudio = GeneratedMediaSource & {
|
|
1302
|
+
/** Content type of the audio (e.g., 'audio/wav', 'audio/mp3') */
|
|
1303
|
+
contentType?: string
|
|
1304
|
+
/** Duration of the generated audio in seconds */
|
|
1305
|
+
duration?: number
|
|
1306
|
+
}
|
|
1307
|
+
|
|
1308
|
+
/**
|
|
1309
|
+
* Result of audio generation
|
|
1310
|
+
*/
|
|
1311
|
+
export interface AudioGenerationResult {
|
|
1312
|
+
/** Unique identifier for the generation */
|
|
1313
|
+
id: string
|
|
1314
|
+
/** Model used for generation */
|
|
1315
|
+
model: string
|
|
1316
|
+
/** The generated audio */
|
|
1317
|
+
audio: GeneratedAudio
|
|
1318
|
+
/** Token usage information (if available) */
|
|
1319
|
+
usage?: {
|
|
1320
|
+
inputTokens?: number
|
|
1321
|
+
outputTokens?: number
|
|
1322
|
+
totalTokens?: number
|
|
1323
|
+
}
|
|
1324
|
+
}
|
|
1325
|
+
|
|
1252
1326
|
// ============================================================================
|
|
1253
1327
|
// Video Generation Types (Experimental)
|
|
1254
1328
|
// ============================================================================
|