@tanstack/ai 0.29.0 → 0.32.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/adapter.d.ts +10 -0
- package/dist/esm/activities/chat/adapter.js +1 -0
- package/dist/esm/activities/chat/adapter.js.map +1 -1
- package/dist/esm/activities/chat/index.d.ts +3 -2
- package/dist/esm/activities/chat/index.js +13 -1
- package/dist/esm/activities/chat/index.js.map +1 -1
- package/dist/esm/activities/chat/middleware/builder.d.ts +46 -0
- package/dist/esm/activities/chat/middleware/builder.js +17 -0
- package/dist/esm/activities/chat/middleware/builder.js.map +1 -0
- package/dist/esm/activities/chat/middleware/capabilities.d.ts +93 -0
- package/dist/esm/activities/chat/middleware/capabilities.js +45 -0
- package/dist/esm/activities/chat/middleware/capabilities.js.map +1 -0
- package/dist/esm/activities/chat/middleware/compose.d.ts +10 -0
- package/dist/esm/activities/chat/middleware/compose.js +47 -0
- package/dist/esm/activities/chat/middleware/compose.js.map +1 -1
- package/dist/esm/activities/chat/middleware/define.d.ts +20 -0
- package/dist/esm/activities/chat/middleware/define.js +7 -0
- package/dist/esm/activities/chat/middleware/define.js.map +1 -0
- package/dist/esm/activities/chat/middleware/index.d.ts +8 -0
- package/dist/esm/activities/chat/middleware/types.d.ts +51 -0
- package/dist/esm/activities/chat/middleware/validate.d.ts +19 -0
- package/dist/esm/activities/chat/middleware/validate.js +30 -0
- package/dist/esm/activities/chat/middleware/validate.js.map +1 -0
- package/dist/esm/activities/generateImage/adapter.d.ts +8 -4
- package/dist/esm/activities/generateImage/adapter.js.map +1 -1
- package/dist/esm/activities/generateImage/index.d.ts +19 -3
- package/dist/esm/activities/generateImage/index.js +12 -1
- package/dist/esm/activities/generateImage/index.js.map +1 -1
- package/dist/esm/activities/generateVideo/adapter.d.ts +65 -6
- package/dist/esm/activities/generateVideo/adapter.js +14 -0
- package/dist/esm/activities/generateVideo/adapter.js.map +1 -1
- package/dist/esm/activities/generateVideo/index.d.ts +31 -5
- package/dist/esm/activities/generateVideo/index.js.map +1 -1
- package/dist/esm/activities/generateVideo/snap.d.ts +14 -0
- package/dist/esm/activities/generateVideo/snap.js +54 -0
- package/dist/esm/activities/generateVideo/snap.js.map +1 -0
- package/dist/esm/activities/index.d.ts +3 -2
- package/dist/esm/activities/index.js +2 -0
- package/dist/esm/activities/index.js.map +1 -1
- package/dist/esm/client.d.ts +1 -1
- package/dist/esm/client.js.map +1 -1
- package/dist/esm/index.d.ts +4 -0
- package/dist/esm/index.js +8 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/middlewares/otel.js +40 -12
- package/dist/esm/middlewares/otel.js.map +1 -1
- package/dist/esm/types.d.ts +96 -7
- package/dist/esm/utilities/media-prompt.d.ts +35 -0
- package/dist/esm/utilities/media-prompt.js +43 -0
- package/dist/esm/utilities/media-prompt.js.map +1 -0
- package/package.json +10 -2
- package/skills/ai-core/media-generation/SKILL.md +173 -3
- package/src/activities/chat/adapter.ts +11 -0
- package/src/activities/chat/index.ts +20 -1
- package/src/activities/chat/middleware/builder.ts +109 -0
- package/src/activities/chat/middleware/capabilities.ts +162 -0
- package/src/activities/chat/middleware/compose.ts +51 -0
- package/src/activities/chat/middleware/define.ts +34 -0
- package/src/activities/chat/middleware/index.ts +20 -0
- package/src/activities/chat/middleware/types.ts +60 -0
- package/src/activities/chat/middleware/validate.ts +55 -0
- package/src/activities/generateImage/adapter.ts +16 -3
- package/src/activities/generateImage/index.ts +48 -4
- package/src/activities/generateVideo/adapter.ts +80 -4
- package/src/activities/generateVideo/index.ts +53 -4
- package/src/activities/generateVideo/snap.ts +100 -0
- package/src/activities/index.ts +4 -0
- package/src/client.ts +4 -0
- package/src/index.ts +18 -0
- package/src/middlewares/otel.ts +57 -12
- package/src/types.ts +119 -6
- package/src/utilities/media-prompt.ts +86 -0
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
AudioPart,
|
|
3
|
+
ImagePart,
|
|
4
|
+
MediaInputMetadata,
|
|
5
|
+
MediaPrompt,
|
|
6
|
+
MediaPromptPart,
|
|
7
|
+
TextPart,
|
|
8
|
+
VideoPart,
|
|
9
|
+
} from '../types'
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* A {@link MediaPrompt} decomposed into the views adapters consume.
|
|
13
|
+
*
|
|
14
|
+
* Adapters with native multimodal prompts (Gemini `contents`, OpenRouter
|
|
15
|
+
* chat content parts) consume `parts` to preserve interleaving; named-field
|
|
16
|
+
* providers (fal, OpenAI) consume `text` plus the typed media buckets.
|
|
17
|
+
*
|
|
18
|
+
* Prompt text is **never rewritten**: text parts are concatenated verbatim.
|
|
19
|
+
* Providers that support referencing inputs from the prompt (e.g. fal's
|
|
20
|
+
* `@Image1`, OpenAI's "image 1" prose) expect the user to write that syntax
|
|
21
|
+
* themselves — the SDK does not inject or substitute markers.
|
|
22
|
+
*/
|
|
23
|
+
export interface ResolvedMediaPrompt {
|
|
24
|
+
/**
|
|
25
|
+
* Text parts concatenated verbatim (paragraph-separated). Empty string
|
|
26
|
+
* for media-only prompts.
|
|
27
|
+
*/
|
|
28
|
+
text: string
|
|
29
|
+
/** The prompt as ordered parts; a string prompt becomes one text part. */
|
|
30
|
+
parts: Array<MediaPromptPart>
|
|
31
|
+
/** Image parts in prompt order. */
|
|
32
|
+
images: Array<ImagePart<MediaInputMetadata>>
|
|
33
|
+
/** Video parts in prompt order. */
|
|
34
|
+
videos: Array<VideoPart<MediaInputMetadata>>
|
|
35
|
+
/** Audio parts in prompt order. */
|
|
36
|
+
audios: Array<AudioPart<MediaInputMetadata>>
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Decompose a {@link MediaPrompt} into flattened text and per-modality part
|
|
41
|
+
* buckets, preserving prompt order everywhere. This is the single downrev
|
|
42
|
+
* point from the canonical interleaved prompt shape to the named-field
|
|
43
|
+
* request shapes most providers expose.
|
|
44
|
+
*/
|
|
45
|
+
export function resolveMediaPrompt(prompt: MediaPrompt): ResolvedMediaPrompt {
|
|
46
|
+
if (typeof prompt === 'string') {
|
|
47
|
+
const textPart: TextPart = { type: 'text', content: prompt }
|
|
48
|
+
return {
|
|
49
|
+
text: prompt,
|
|
50
|
+
parts: [textPart],
|
|
51
|
+
images: [],
|
|
52
|
+
videos: [],
|
|
53
|
+
audios: [],
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
const images: Array<ImagePart<MediaInputMetadata>> = []
|
|
58
|
+
const videos: Array<VideoPart<MediaInputMetadata>> = []
|
|
59
|
+
const audios: Array<AudioPart<MediaInputMetadata>> = []
|
|
60
|
+
const textSegments: Array<string> = []
|
|
61
|
+
|
|
62
|
+
for (const part of prompt) {
|
|
63
|
+
switch (part.type) {
|
|
64
|
+
case 'text':
|
|
65
|
+
if (part.content) textSegments.push(part.content)
|
|
66
|
+
break
|
|
67
|
+
case 'image':
|
|
68
|
+
images.push(part)
|
|
69
|
+
break
|
|
70
|
+
case 'video':
|
|
71
|
+
videos.push(part)
|
|
72
|
+
break
|
|
73
|
+
case 'audio':
|
|
74
|
+
audios.push(part)
|
|
75
|
+
break
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
return {
|
|
80
|
+
text: textSegments.join('\n\n'),
|
|
81
|
+
parts: prompt,
|
|
82
|
+
images,
|
|
83
|
+
videos,
|
|
84
|
+
audios,
|
|
85
|
+
}
|
|
86
|
+
}
|