@tanstack/ai 0.46.0 → 0.47.2
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 +36 -11
- package/dist/esm/activities/chat/index.js +440 -79
- package/dist/esm/activities/chat/index.js.map +1 -1
- package/dist/esm/activities/chat/messages.d.ts +1 -0
- package/dist/esm/activities/chat/messages.js +12 -7
- package/dist/esm/activities/chat/messages.js.map +1 -1
- package/dist/esm/activities/chat/middleware/builder.d.ts +7 -2
- package/dist/esm/activities/chat/middleware/builder.js.map +1 -1
- package/dist/esm/activities/chat/middleware/compose.d.ts +10 -3
- package/dist/esm/activities/chat/middleware/compose.js +55 -0
- package/dist/esm/activities/chat/middleware/compose.js.map +1 -1
- package/dist/esm/activities/chat/middleware/define.d.ts +6 -3
- package/dist/esm/activities/chat/middleware/define.js.map +1 -1
- package/dist/esm/activities/chat/middleware/generic-interrupts.d.ts +13 -0
- package/dist/esm/activities/chat/middleware/generic-interrupts.js +8 -0
- package/dist/esm/activities/chat/middleware/generic-interrupts.js.map +1 -0
- package/dist/esm/activities/chat/middleware/index.d.ts +4 -1
- package/dist/esm/activities/chat/middleware/types.d.ts +54 -3
- package/dist/esm/activities/chat/middleware/types.js +16 -0
- package/dist/esm/activities/chat/middleware/types.js.map +1 -0
- package/dist/esm/activities/chat/stream/processor.js +18 -5
- package/dist/esm/activities/chat/stream/processor.js.map +1 -1
- package/dist/esm/adapter-internals.d.ts +6 -0
- package/dist/esm/adapter-internals.js +4 -1
- package/dist/esm/client.d.ts +4 -0
- package/dist/esm/client.js +3 -1
- package/dist/esm/client.js.map +1 -1
- package/dist/esm/generic-interrupt-continuation.d.ts +45 -0
- package/dist/esm/generic-interrupt-continuation.js +80 -0
- package/dist/esm/generic-interrupt-continuation.js.map +1 -0
- package/dist/esm/index.d.ts +6 -1
- package/dist/esm/index.js +4 -1
- package/dist/esm/interrupt-definition.d.ts +113 -0
- package/dist/esm/interrupt-definition.js +169 -0
- package/dist/esm/interrupt-definition.js.map +1 -0
- package/dist/esm/interrupt-resume.d.ts +3 -0
- package/dist/esm/interrupt-resume.js +77 -16
- package/dist/esm/interrupt-resume.js.map +1 -1
- package/dist/esm/interrupts.d.ts +12 -3
- package/dist/esm/interrupts.js.map +1 -1
- package/dist/esm/types.d.ts +11 -3
- package/dist/esm/utilities/chat-params.js +10 -1
- package/dist/esm/utilities/chat-params.js.map +1 -1
- package/package.json +3 -3
- package/skills/ai-core/media-generation/SKILL.md +4 -1
- package/skills/ai-core/middleware/SKILL.md +53 -44
- package/skills/ai-core/structured-outputs/SKILL.md +59 -55
- package/skills/ai-core/tool-calling/SKILL.md +54 -1
- package/src/activities/chat/index.ts +1030 -211
- package/src/activities/chat/messages.ts +11 -3
- package/src/activities/chat/middleware/builder.ts +29 -4
- package/src/activities/chat/middleware/compose.ts +95 -5
- package/src/activities/chat/middleware/define.ts +13 -3
- package/src/activities/chat/middleware/generic-interrupts.ts +26 -0
- package/src/activities/chat/middleware/index.ts +15 -0
- package/src/activities/chat/middleware/types.ts +127 -2
- package/src/activities/chat/stream/processor.ts +21 -0
- package/src/adapter-internals.ts +20 -0
- package/src/client.ts +20 -0
- package/src/generic-interrupt-continuation.ts +162 -0
- package/src/index.ts +34 -0
- package/src/interrupt-definition.ts +581 -0
- package/src/interrupt-resume.ts +156 -25
- package/src/interrupts.ts +13 -3
- package/src/types.ts +11 -3
- package/src/utilities/chat-params.ts +16 -3
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { InterruptDefinition } from '../../interrupt-definition.js';
|
|
1
2
|
import { AnyTextAdapter } from './adapter.js';
|
|
2
3
|
import { AnyTool, ConstrainedModelMessage, InferSchemaType, LazyToolsConfig, ModelMessage, ProviderTool, SchemaInput, StructuredOutputStream, TextOptions, TypedStreamChunk, UIMessage } from '../../types.js';
|
|
3
4
|
import { AnyChatMiddleware, ChatMiddleware } from './middleware/types.js';
|
|
@@ -19,19 +20,36 @@ type ContextFromInputs<TTools, TMiddleware> = MergeContext<ContextFromArray<NonN
|
|
|
19
20
|
type InferredContext<TTools, TMiddleware> = [
|
|
20
21
|
ContextFromInputs<TTools, TMiddleware>
|
|
21
22
|
] extends [never] ? unknown : ContextFromInputs<TTools, TMiddleware>;
|
|
22
|
-
type
|
|
23
|
-
|
|
23
|
+
type RegistryInterrupt<TInterrupts extends ReadonlyArray<InterruptDefinition<any, any, any, any>>> = [TInterrupts[number]] extends [never] ? never : TInterrupts[number];
|
|
24
|
+
type DuplicateInterruptDefinitionId<TInterrupts extends ReadonlyArray<InterruptDefinition<any, any, any, any>>, TSeenIds extends string = never> = TInterrupts extends readonly [infer THead, ...infer TTail] ? THead extends InterruptDefinition<infer TId, any, any, any> ? string extends TId ? TTail extends ReadonlyArray<InterruptDefinition<any, any, any, any>> ? DuplicateInterruptDefinitionId<TTail, TSeenIds> : never : TId extends TSeenIds ? TId : TTail extends ReadonlyArray<InterruptDefinition<any, any, any, any>> ? DuplicateInterruptDefinitionId<TTail, TSeenIds | TId> : never : never : never;
|
|
25
|
+
type CheckUniqueInterruptDefinitions<TInterrupts extends ReadonlyArray<InterruptDefinition<any, any, any, any>>> = [DuplicateInterruptDefinitionId<TInterrupts>] extends [never] ? unknown : {
|
|
26
|
+
readonly '✖ Duplicate interrupt definition id in chat({ interrupts }).': never;
|
|
27
|
+
};
|
|
28
|
+
type InlineChatContext<TTools, TContext> = MergeContext<ContextFromArray<NonNullable<TTools>>, TContext>;
|
|
29
|
+
type RegistryChatMiddleware<TContext, TInterrupts extends ReadonlyArray<InterruptDefinition<any, any, any, any>>> = ChatMiddleware<TContext, RegistryInterrupt<TInterrupts>>;
|
|
30
|
+
type MiddlewareInterruptDefinitions<TMiddleware> = TMiddleware extends ReadonlyArray<infer TMiddlewareItem> ? TMiddlewareItem extends ChatMiddleware<any, infer TDefinitions> ? TDefinitions : never : never;
|
|
31
|
+
type IsAny<TValue> = 0 extends 1 & TValue ? true : false;
|
|
32
|
+
type CheckInterruptRegistry<TInterrupts extends ReadonlyArray<InterruptDefinition<any, any, any, any>>, TMiddleware> = IsAny<MiddlewareInterruptDefinitions<TMiddleware>> extends true ? unknown : [MiddlewareInterruptDefinitions<TMiddleware>] extends [never] ? unknown : [
|
|
33
|
+
Exclude<MiddlewareInterruptDefinitions<TMiddleware>, RegistryInterrupt<TInterrupts>>
|
|
34
|
+
] extends [never] ? unknown : {
|
|
35
|
+
readonly '✖ Middleware emits an interrupt definition that is not registered in chat({ interrupts }).': never;
|
|
36
|
+
};
|
|
37
|
+
type RuntimeContextOption<TTools, TMiddleware, TContext> = [
|
|
38
|
+
MergeContext<ContextFromInputs<TTools, TMiddleware>, TContext>
|
|
24
39
|
] extends [never] ? {
|
|
25
|
-
context?:
|
|
26
|
-
} : undefined extends ContextFromInputs<TTools, TMiddleware> ? {
|
|
27
|
-
context?: ContextFromInputs<TTools, TMiddleware>;
|
|
40
|
+
context?: TContext;
|
|
41
|
+
} : undefined extends MergeContext<ContextFromInputs<TTools, TMiddleware>, TContext> ? {
|
|
42
|
+
context?: MergeContext<ContextFromInputs<TTools, TMiddleware>, TContext>;
|
|
28
43
|
} : {
|
|
29
|
-
context: ContextFromInputs<TTools, TMiddleware>;
|
|
44
|
+
context: MergeContext<ContextFromInputs<TTools, TMiddleware>, TContext>;
|
|
30
45
|
};
|
|
31
|
-
type
|
|
46
|
+
type ExactMiddlewareOption<TTools, TContext, TInterrupts extends ReadonlyArray<InterruptDefinition<any, any, any, any>>, TMiddleware extends Array<unknown> | undefined> = [TMiddleware] extends [undefined] ? Array<RegistryChatMiddleware<InlineChatContext<TTools, TContext>, NoInfer<TInterrupts>>> : TMiddleware & (TMiddleware extends Array<RegistryChatMiddleware<InlineChatContext<TTools, NoInfer<TContext>>, NoInfer<TInterrupts>>> ? Array<RegistryChatMiddleware<InlineChatContext<TTools, TContext>, NoInfer<TInterrupts>>> : CheckInterruptRegistry<TInterrupts, TMiddleware>) & CheckCoverage<Extract<TMiddleware, ReadonlyArray<AnyChatMiddleware>>>;
|
|
47
|
+
type TextActivityOptionsWithContext<TAdapter extends AnyTextAdapter, TSchema extends SchemaInput | undefined, TStream extends boolean, TTools extends TextActivityOptions<TAdapter, TSchema, TStream, any>['tools'], TInterrupts extends ReadonlyArray<InterruptDefinition<any, any, any, any>> = [
|
|
48
|
+
], TContext = unknown, TMiddleware extends Array<unknown> | undefined = undefined> = Omit<TextActivityOptions<TAdapter, TSchema, TStream, any>, 'tools' | 'middleware' | 'context' | 'interrupts'> & {
|
|
32
49
|
tools?: TTools;
|
|
33
|
-
|
|
34
|
-
|
|
50
|
+
interrupts?: TInterrupts & CheckUniqueInterruptDefinitions<TInterrupts>;
|
|
51
|
+
middleware?: ExactMiddlewareOption<TTools, TContext, TInterrupts, TMiddleware>;
|
|
52
|
+
} & RuntimeContextOption<TTools, TMiddleware, TContext>;
|
|
35
53
|
/**
|
|
36
54
|
* Options for the text activity.
|
|
37
55
|
* Types are extracted directly from the adapter (which has pre-resolved generics).
|
|
@@ -168,6 +186,11 @@ export interface TextActivityOptions<TAdapter extends AnyTextAdapter, TSchema ex
|
|
|
168
186
|
* ```
|
|
169
187
|
*/
|
|
170
188
|
middleware?: Array<ChatMiddleware<TContext>>;
|
|
189
|
+
/**
|
|
190
|
+
* First-party generic interrupt definitions for this chat call.
|
|
191
|
+
* Register the same definitions on the client to type payloads and answers.
|
|
192
|
+
*/
|
|
193
|
+
interrupts?: ReadonlyArray<InterruptDefinition<any, any, any, any>>;
|
|
171
194
|
/**
|
|
172
195
|
* Runtime context value passed to middleware hooks and server tools.
|
|
173
196
|
*/
|
|
@@ -193,8 +216,10 @@ export interface TextActivityOptions<TAdapter extends AnyTextAdapter, TSchema ex
|
|
|
193
216
|
* const stream = chat({ ...chatOptions, messages })
|
|
194
217
|
* ```
|
|
195
218
|
*/
|
|
196
|
-
export declare function createChatOptions<TAdapter extends AnyTextAdapter, TSchema extends SchemaInput | undefined = undefined, TStream extends boolean = true, const TTools extends TextActivityOptions<TAdapter, TSchema, TStream, any>['tools'] = TextActivityOptions<TAdapter, TSchema, TStream, any>['tools'], const
|
|
219
|
+
export declare function createChatOptions<TAdapter extends AnyTextAdapter, TSchema extends SchemaInput | undefined = undefined, TStream extends boolean = true, const TTools extends TextActivityOptions<TAdapter, TSchema, TStream, any>['tools'] = TextActivityOptions<TAdapter, TSchema, TStream, any>['tools'], const TInterrupts extends ReadonlyArray<InterruptDefinition<any, any, any, any>> = [], TContext = unknown, const TMiddleware extends Array<unknown> | undefined = undefined>(options: TextActivityOptionsWithContext<TAdapter, TSchema, TStream, TTools, TInterrupts, TContext, TMiddleware>): Omit<TextActivityOptions<TAdapter, TSchema, TStream, InferredContext<TTools, TMiddleware>>, 'tools' | 'middleware' | 'interrupts'> & {
|
|
197
220
|
tools?: TTools;
|
|
221
|
+
interrupts?: TInterrupts;
|
|
222
|
+
middleware?: ExactMiddlewareOption<TTools, TContext, TInterrupts, TMiddleware>;
|
|
198
223
|
};
|
|
199
224
|
/**
|
|
200
225
|
* Result type for the text activity.
|
|
@@ -277,6 +302,6 @@ export type TextActivityResult<TSchema extends SchemaInput | undefined, TStream
|
|
|
277
302
|
* // result is { summary: string, keyPoints: string[] }
|
|
278
303
|
* ```
|
|
279
304
|
*/
|
|
280
|
-
export declare function chat<TAdapter extends AnyTextAdapter, TSchema extends SchemaInput | undefined = undefined, TStream extends boolean = boolean, const TTools extends TextActivityOptions<TAdapter, TSchema, TStream, any>['tools'] = TextActivityOptions<TAdapter, TSchema, TStream, any>['tools'], const
|
|
305
|
+
export declare function chat<TAdapter extends AnyTextAdapter, TSchema extends SchemaInput | undefined = undefined, TStream extends boolean = boolean, const TTools extends TextActivityOptions<TAdapter, TSchema, TStream, any>['tools'] = TextActivityOptions<TAdapter, TSchema, TStream, any>['tools'], const TInterrupts extends ReadonlyArray<InterruptDefinition<any, any, any, any>> = [], TContext = unknown, const TMiddleware extends Array<unknown> | undefined = undefined>(options: TextActivityOptionsWithContext<TAdapter, TSchema, TStream, TTools, TInterrupts, TContext, TMiddleware>): TextActivityResult<TSchema, TStream, TTools>;
|
|
281
306
|
export type { TextAdapter, TextAdapterConfig, StructuredOutputOptions, StructuredOutputResult, } from './adapter.js';
|
|
282
307
|
export { BaseTextAdapter } from './adapter.js';
|