@tanstack/ai 0.39.1 → 0.41.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.d.ts +2 -2
- package/dist/esm/activities/chat/index.js +20 -3
- package/dist/esm/activities/chat/index.js.map +1 -1
- package/dist/esm/activities/chat/messages.js +7 -0
- package/dist/esm/activities/chat/messages.js.map +1 -1
- package/dist/esm/activities/chat/middleware/compose.d.ts +2 -2
- package/dist/esm/activities/chat/middleware/compose.js.map +1 -1
- package/dist/esm/activities/chat/middleware/index.d.ts +1 -1
- package/dist/esm/activities/chat/middleware/sandbox-runtime.d.ts +7 -2
- package/dist/esm/activities/chat/middleware/sandbox-runtime.js.map +1 -1
- package/dist/esm/activities/chat/middleware/types.d.ts +16 -4
- package/dist/esm/activities/chat/stream/message-updaters.d.ts +2 -0
- package/dist/esm/activities/chat/stream/message-updaters.js +3 -1
- package/dist/esm/activities/chat/stream/message-updaters.js.map +1 -1
- package/dist/esm/activities/chat/stream/processor.js +18 -1
- package/dist/esm/activities/chat/stream/processor.js.map +1 -1
- package/dist/esm/activities/chat/tools/tool-definition.d.ts +14 -11
- package/dist/esm/activities/chat/tools/tool-definition.js.map +1 -1
- package/dist/esm/activities/generateAudio/index.d.ts +1 -1
- package/dist/esm/activities/generateAudio/index.js.map +1 -1
- package/dist/esm/activities/generateImage/index.d.ts +1 -1
- package/dist/esm/activities/generateImage/index.js +1 -1
- package/dist/esm/activities/generateImage/index.js.map +1 -1
- package/dist/esm/activities/generateSpeech/index.d.ts +1 -1
- package/dist/esm/activities/generateSpeech/index.js.map +1 -1
- package/dist/esm/activities/generateTranscription/index.d.ts +3 -3
- package/dist/esm/activities/generateTranscription/index.js.map +1 -1
- package/dist/esm/activities/generateVideo/index.d.ts +12 -12
- package/dist/esm/activities/generateVideo/index.js.map +1 -1
- package/dist/esm/index.d.ts +3 -3
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/realtime/event-emitter.d.ts +5 -0
- package/dist/esm/realtime/event-emitter.js +27 -0
- package/dist/esm/realtime/event-emitter.js.map +1 -0
- package/dist/esm/realtime/index.d.ts +1 -0
- package/dist/esm/realtime/index.js.map +1 -1
- package/dist/esm/realtime/types.d.ts +9 -1
- package/dist/esm/types.d.ts +124 -1
- package/package.json +1 -1
- package/skills/ai-core/adapter-configuration/SKILL.md +10 -0
- package/skills/ai-core/ag-ui-protocol/SKILL.md +59 -0
- package/skills/ai-core/media-generation/SKILL.md +50 -5
- package/skills/ai-core/middleware/SKILL.md +106 -0
- package/skills/ai-core/tool-calling/SKILL.md +13 -1
- package/src/activities/chat/index.ts +26 -6
- package/src/activities/chat/messages.ts +9 -0
- package/src/activities/chat/middleware/compose.ts +2 -2
- package/src/activities/chat/middleware/index.ts +1 -0
- package/src/activities/chat/middleware/sandbox-runtime.ts +4 -2
- package/src/activities/chat/middleware/types.ts +17 -4
- package/src/activities/chat/stream/message-updaters.ts +7 -1
- package/src/activities/chat/stream/processor.ts +30 -2
- package/src/activities/chat/tools/tool-definition.ts +33 -11
- package/src/activities/generateAudio/index.ts +2 -2
- package/src/activities/generateImage/index.ts +2 -2
- package/src/activities/generateSpeech/index.ts +2 -2
- package/src/activities/generateTranscription/index.ts +8 -4
- package/src/activities/generateVideo/index.ts +29 -15
- package/src/index.ts +3 -1
- package/src/realtime/event-emitter.ts +46 -0
- package/src/realtime/index.ts +2 -0
- package/src/realtime/types.ts +9 -0
- package/src/types.ts +116 -1
package/src/realtime/types.ts
CHANGED
|
@@ -4,6 +4,8 @@ import type { AnyClientTool } from '../activities/chat/tools/tool-definition'
|
|
|
4
4
|
// Token Types
|
|
5
5
|
// ============================================================================
|
|
6
6
|
|
|
7
|
+
import type { UsageInfo } from '../activities/chat/middleware/types'
|
|
8
|
+
|
|
7
9
|
/**
|
|
8
10
|
* Voice activity detection configuration
|
|
9
11
|
*/
|
|
@@ -24,6 +26,7 @@ export interface RealtimeToolConfig {
|
|
|
24
26
|
name: string
|
|
25
27
|
description: string
|
|
26
28
|
inputSchema?: Record<string, any>
|
|
29
|
+
outputSchema?: Record<string, any>
|
|
27
30
|
}
|
|
28
31
|
|
|
29
32
|
/**
|
|
@@ -246,6 +249,8 @@ export type RealtimeEvent =
|
|
|
246
249
|
| 'message_complete'
|
|
247
250
|
| 'interrupted'
|
|
248
251
|
| 'error'
|
|
252
|
+
| 'go_away' // Event that signals that the current connection will soon be terminated
|
|
253
|
+
| 'usage'
|
|
249
254
|
|
|
250
255
|
/**
|
|
251
256
|
* Event payloads for realtime events
|
|
@@ -263,6 +268,8 @@ export interface RealtimeEventPayloads {
|
|
|
263
268
|
message_complete: { message: RealtimeMessage }
|
|
264
269
|
interrupted: { messageId?: string }
|
|
265
270
|
error: { error: Error }
|
|
271
|
+
go_away: { timeLeft?: string }
|
|
272
|
+
usage: UsageInfo
|
|
266
273
|
}
|
|
267
274
|
|
|
268
275
|
/**
|
|
@@ -355,6 +362,8 @@ export interface RealtimeConnection {
|
|
|
355
362
|
// Session management
|
|
356
363
|
/** Update session configuration */
|
|
357
364
|
updateSession: (config: Partial<RealtimeSessionConfig>) => void
|
|
365
|
+
/** Update the ephemeral token (e.g. on refresh); provider may reconnect */
|
|
366
|
+
updateToken?: (token: RealtimeToken) => void
|
|
358
367
|
/** Interrupt the current response */
|
|
359
368
|
interrupt: () => void
|
|
360
369
|
|
package/src/types.ts
CHANGED
|
@@ -372,6 +372,15 @@ export interface ToolCallPart<TMetadata = unknown> {
|
|
|
372
372
|
id: string
|
|
373
373
|
name: string
|
|
374
374
|
arguments: string // JSON string (may be incomplete)
|
|
375
|
+
/**
|
|
376
|
+
* Parsed tool input. Set from the parsed arguments once they are complete
|
|
377
|
+
* (`state: 'input-complete'` and later). `undefined` while the raw
|
|
378
|
+
* `arguments` string is still streaming, and may stay `undefined` for a call
|
|
379
|
+
* that terminates in an error state — the raw `arguments` string is always
|
|
380
|
+
* available as a fallback. Typed per-tool on the client `ToolCallPart` (see
|
|
381
|
+
* `@tanstack/ai-client`); `unknown` on this base type.
|
|
382
|
+
*/
|
|
383
|
+
input?: unknown
|
|
375
384
|
state: ToolCallState
|
|
376
385
|
/** Approval metadata if tool requires user approval */
|
|
377
386
|
approval?: {
|
|
@@ -1381,6 +1390,105 @@ export interface UIResourceEvent extends CustomEvent {
|
|
|
1381
1390
|
}
|
|
1382
1391
|
}
|
|
1383
1392
|
|
|
1393
|
+
// ── Sandbox events ──────────────────────────────────────────────────────────
|
|
1394
|
+
export interface SandboxFileCustomEvent extends CustomEvent {
|
|
1395
|
+
name: 'sandbox.file'
|
|
1396
|
+
value: {
|
|
1397
|
+
type: 'create' | 'change' | 'delete'
|
|
1398
|
+
path: string
|
|
1399
|
+
timestamp: number
|
|
1400
|
+
}
|
|
1401
|
+
}
|
|
1402
|
+
export interface SandboxFileDiffEvent extends CustomEvent {
|
|
1403
|
+
name: 'sandbox.file.diff'
|
|
1404
|
+
value: { path: string; diff: string }
|
|
1405
|
+
}
|
|
1406
|
+
|
|
1407
|
+
// ── Harness events ──────────────────────────────────────────────────────────
|
|
1408
|
+
export interface FileChangedEvent extends CustomEvent {
|
|
1409
|
+
name: 'file.changed'
|
|
1410
|
+
value: { path: string; diff: string }
|
|
1411
|
+
}
|
|
1412
|
+
export interface SessionIdEvent extends CustomEvent {
|
|
1413
|
+
name: `${string}.session-id`
|
|
1414
|
+
value: { sessionId: string }
|
|
1415
|
+
}
|
|
1416
|
+
|
|
1417
|
+
// ── Code-mode events ────────────────────────────────────────────────────────
|
|
1418
|
+
export interface CodeModeExecutionStartedEvent extends CustomEvent {
|
|
1419
|
+
name: 'code_mode:execution_started'
|
|
1420
|
+
value: { timestamp: number; codeLength: number }
|
|
1421
|
+
}
|
|
1422
|
+
export interface CodeModeConsoleEvent extends CustomEvent {
|
|
1423
|
+
name: 'code_mode:console'
|
|
1424
|
+
value: {
|
|
1425
|
+
level: 'log' | 'warn' | 'error' | 'info'
|
|
1426
|
+
message: string
|
|
1427
|
+
timestamp: number
|
|
1428
|
+
}
|
|
1429
|
+
}
|
|
1430
|
+
export interface CodeModeExternalCallEvent extends CustomEvent {
|
|
1431
|
+
name: 'code_mode:external_call'
|
|
1432
|
+
value: { function: string; args: unknown; timestamp: number }
|
|
1433
|
+
}
|
|
1434
|
+
export interface CodeModeExternalResultEvent extends CustomEvent {
|
|
1435
|
+
name: 'code_mode:external_result'
|
|
1436
|
+
value: { function: string; result: unknown; duration: number }
|
|
1437
|
+
}
|
|
1438
|
+
export interface CodeModeExternalErrorEvent extends CustomEvent {
|
|
1439
|
+
name: 'code_mode:external_error'
|
|
1440
|
+
value: { function: string; error: string; duration: number }
|
|
1441
|
+
}
|
|
1442
|
+
export interface CodeModeSkillCallEvent extends CustomEvent {
|
|
1443
|
+
name: 'code_mode:skill_call'
|
|
1444
|
+
value: { skill: string; input: unknown; timestamp: number }
|
|
1445
|
+
}
|
|
1446
|
+
export interface CodeModeSkillResultEvent extends CustomEvent {
|
|
1447
|
+
name: 'code_mode:skill_result'
|
|
1448
|
+
value: { skill: string; result: unknown; duration: number; timestamp: number }
|
|
1449
|
+
}
|
|
1450
|
+
export interface CodeModeSkillErrorEvent extends CustomEvent {
|
|
1451
|
+
name: 'code_mode:skill_error'
|
|
1452
|
+
value: { skill: string; error: string; duration: number; timestamp: number }
|
|
1453
|
+
}
|
|
1454
|
+
export interface SkillRegisteredEvent extends CustomEvent {
|
|
1455
|
+
name: 'skill:registered'
|
|
1456
|
+
value: { id: string; name: string; description: string; timestamp: number }
|
|
1457
|
+
}
|
|
1458
|
+
|
|
1459
|
+
/**
|
|
1460
|
+
* Every CUSTOM event TanStack AI itself emits, as a discriminated union on
|
|
1461
|
+
* `name`. User-emitted custom events (via `emitCustomEvent` with a custom name)
|
|
1462
|
+
* are intentionally absent — they still flow at runtime.
|
|
1463
|
+
*/
|
|
1464
|
+
export type KnownCustomEvent =
|
|
1465
|
+
| SandboxFileCustomEvent
|
|
1466
|
+
| SandboxFileDiffEvent
|
|
1467
|
+
| FileChangedEvent
|
|
1468
|
+
| SessionIdEvent
|
|
1469
|
+
| CodeModeExecutionStartedEvent
|
|
1470
|
+
| CodeModeConsoleEvent
|
|
1471
|
+
| CodeModeExternalCallEvent
|
|
1472
|
+
| CodeModeExternalResultEvent
|
|
1473
|
+
| CodeModeExternalErrorEvent
|
|
1474
|
+
| CodeModeSkillCallEvent
|
|
1475
|
+
| CodeModeSkillResultEvent
|
|
1476
|
+
| CodeModeSkillErrorEvent
|
|
1477
|
+
| SkillRegisteredEvent
|
|
1478
|
+
| StructuredOutputStartEvent
|
|
1479
|
+
| StructuredOutputCompleteEvent
|
|
1480
|
+
| ApprovalRequestedEvent
|
|
1481
|
+
| ToolInputAvailableEvent
|
|
1482
|
+
| UIResourceEvent
|
|
1483
|
+
|
|
1484
|
+
/** The default chat streaming result: standard chunks plus every typed
|
|
1485
|
+
* framework CUSTOM event, with the `value: any` catch-all excluded so
|
|
1486
|
+
* literal-`name` narrowing types `value`. User-emitted custom names are typed
|
|
1487
|
+
* out (still flow at runtime — branch outside the name narrows or cast). */
|
|
1488
|
+
export type ChatStream = AsyncIterable<
|
|
1489
|
+
Exclude<StreamChunk, CustomEvent> | KnownCustomEvent
|
|
1490
|
+
>
|
|
1491
|
+
|
|
1384
1492
|
/**
|
|
1385
1493
|
* Public type for streams returned by `chat({ outputSchema, stream: true })`.
|
|
1386
1494
|
*
|
|
@@ -1930,6 +2038,13 @@ export interface TTSResult {
|
|
|
1930
2038
|
* Options for audio transcription.
|
|
1931
2039
|
* These are the common options supported across providers.
|
|
1932
2040
|
*/
|
|
2041
|
+
export type TranscriptionResponseFormat =
|
|
2042
|
+
| 'json'
|
|
2043
|
+
| 'text'
|
|
2044
|
+
| 'srt'
|
|
2045
|
+
| 'verbose_json'
|
|
2046
|
+
| 'vtt'
|
|
2047
|
+
|
|
1933
2048
|
export interface TranscriptionOptions<
|
|
1934
2049
|
TProviderOptions extends object = object,
|
|
1935
2050
|
> {
|
|
@@ -1942,7 +2057,7 @@ export interface TranscriptionOptions<
|
|
|
1942
2057
|
/** An optional prompt to guide the transcription */
|
|
1943
2058
|
prompt?: string
|
|
1944
2059
|
/** The format of the transcription output */
|
|
1945
|
-
responseFormat?:
|
|
2060
|
+
responseFormat?: TranscriptionResponseFormat
|
|
1946
2061
|
/** Model-specific options for transcription */
|
|
1947
2062
|
modelOptions?: TProviderOptions
|
|
1948
2063
|
/**
|