@assistant-ui/react 0.9.2 → 0.9.3

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.
Files changed (42) hide show
  1. package/dist/model-context/ModelContextTypes.d.ts +1 -26
  2. package/dist/model-context/ModelContextTypes.d.ts.map +1 -1
  3. package/dist/model-context/ModelContextTypes.js.map +1 -1
  4. package/dist/model-context/ModelContextTypes.mjs.map +1 -1
  5. package/dist/model-context/index.d.ts +2 -1
  6. package/dist/model-context/index.d.ts.map +1 -1
  7. package/dist/model-context/index.js.map +1 -1
  8. package/dist/model-context/index.mjs.map +1 -1
  9. package/dist/model-context/tool.d.ts +1 -1
  10. package/dist/model-context/tool.d.ts.map +1 -1
  11. package/dist/model-context/tool.js.map +1 -1
  12. package/dist/model-context/tool.mjs.map +1 -1
  13. package/dist/model-context/useAssistantTool.d.ts +1 -1
  14. package/dist/model-context/useAssistantTool.d.ts.map +1 -1
  15. package/dist/model-context/useAssistantTool.js.map +1 -1
  16. package/dist/model-context/useAssistantTool.mjs.map +1 -1
  17. package/dist/runtimes/index.d.ts +0 -1
  18. package/dist/runtimes/index.d.ts.map +1 -1
  19. package/dist/runtimes/index.js +1 -6
  20. package/dist/runtimes/index.js.map +1 -1
  21. package/dist/runtimes/index.mjs +1 -7
  22. package/dist/runtimes/index.mjs.map +1 -1
  23. package/package.json +4 -4
  24. package/src/model-context/ModelContextTypes.ts +1 -52
  25. package/src/model-context/index.ts +2 -1
  26. package/src/model-context/tool.ts +1 -1
  27. package/src/model-context/useAssistantTool.tsx +1 -1
  28. package/src/runtimes/index.ts +0 -4
  29. package/dist/model-context/type-path-utils.d.ts +0 -19
  30. package/dist/model-context/type-path-utils.d.ts.map +0 -1
  31. package/dist/model-context/type-path-utils.js +0 -19
  32. package/dist/model-context/type-path-utils.js.map +0 -1
  33. package/dist/model-context/type-path-utils.mjs +0 -1
  34. package/dist/model-context/type-path-utils.mjs.map +0 -1
  35. package/dist/runtimes/streams/toolResultStream.d.ts +0 -5
  36. package/dist/runtimes/streams/toolResultStream.d.ts.map +0 -1
  37. package/dist/runtimes/streams/toolResultStream.js +0 -94
  38. package/dist/runtimes/streams/toolResultStream.js.map +0 -1
  39. package/dist/runtimes/streams/toolResultStream.mjs +0 -68
  40. package/dist/runtimes/streams/toolResultStream.mjs.map +0 -1
  41. package/src/model-context/type-path-utils.ts +0 -32
  42. package/src/runtimes/streams/toolResultStream.ts +0 -88
@@ -1,7 +1,6 @@
1
1
  import { z } from "zod";
2
- import type { JSONSchema7 } from "json-schema";
3
2
  import { Unsubscribe } from "../types/Unsubscribe";
4
- import { TypePath, TypeAtPath, DeepPartial } from "./type-path-utils";
3
+ import { Tool } from "assistant-stream";
5
4
  export declare const LanguageModelV1CallSettingsSchema: z.ZodObject<{
6
5
  maxTokens: z.ZodOptional<z.ZodNumber>;
7
6
  temperature: z.ZodOptional<z.ZodNumber>;
@@ -42,29 +41,6 @@ export declare const LanguageModelConfigSchema: z.ZodObject<{
42
41
  modelName?: string | undefined;
43
42
  }>;
44
43
  export type LanguageModelConfig = z.infer<typeof LanguageModelConfigSchema>;
45
- type ToolExecutionContext = {
46
- toolCallId: string;
47
- abortSignal: AbortSignal;
48
- };
49
- type ReadableStreamIterator<T> = ReadableStream<T> & AsyncGenerator<T, void, unknown>;
50
- interface ToolCallReader<TArgs> {
51
- get<PathT extends TypePath<TArgs>>(...fieldPath: PathT): Promise<TypeAtPath<TArgs, PathT>>;
52
- stream<PathT extends TypePath<TArgs>>(...fieldPath: PathT): ReadableStreamIterator<DeepPartial<TypeAtPath<TArgs, PathT>>>;
53
- forEach<PathT extends TypePath<TArgs>>(...fieldPath: PathT): TypeAtPath<TArgs, PathT> extends Array<infer U> ? ReadableStreamIterator<U> : never;
54
- }
55
- export type ToolExecuteFunction<TArgs, TResult> = (args: TArgs, context: ToolExecutionContext) => TResult | Promise<TResult>;
56
- export type ToolStreamCallFunction<TArgs, TResult> = (controller: ToolCallReader<TArgs>, context: ToolExecutionContext) => TResult | Promise<TResult>;
57
- type OnSchemaValidationErrorFunction<TResult> = ToolExecuteFunction<unknown, TResult>;
58
- export type Tool<TArgs = unknown, TResult = unknown> = {
59
- description?: string | undefined;
60
- parameters: z.ZodSchema<TArgs> | JSONSchema7;
61
- execute?: ToolExecuteFunction<TArgs, TResult>;
62
- /**
63
- * @deprecated TODO not yet implemented
64
- */
65
- experimental_streamCall?: ToolStreamCallFunction<TArgs, TResult>;
66
- experimental_onSchemaValidationError?: OnSchemaValidationErrorFunction<TResult>;
67
- };
68
44
  export type ModelContext = {
69
45
  priority?: number | undefined;
70
46
  system?: string | undefined;
@@ -77,5 +53,4 @@ export type ModelContextProvider = {
77
53
  subscribe?: (callback: () => void) => Unsubscribe;
78
54
  };
79
55
  export declare const mergeModelContexts: (configSet: Set<ModelContextProvider>) => ModelContext;
80
- export {};
81
56
  //# sourceMappingURL=ModelContextTypes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModelContextTypes.d.ts","sourceRoot":"","sources":["../../src/model-context/ModelContextTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEtE,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;EAQ5C,CAAC;AAEH,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAC/C,OAAO,iCAAiC,CACzC,CAAC;AAEF,eAAO,MAAM,yBAAyB;;;;;;;;;;;;EAIpC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,KAAK,oBAAoB,GAAG;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,WAAW,CAAC;CAC1B,CAAC;AAEF,KAAK,sBAAsB,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,GAChD,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AAEnC,UAAU,cAAc,CAAC,KAAK;IAC5B,GAAG,CAAC,KAAK,SAAS,QAAQ,CAAC,KAAK,CAAC,EAC/B,GAAG,SAAS,EAAE,KAAK,GAClB,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAErC,MAAM,CAAC,KAAK,SAAS,QAAQ,CAAC,KAAK,CAAC,EAClC,GAAG,SAAS,EAAE,KAAK,GAClB,sBAAsB,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAEjE,OAAO,CAAC,KAAK,SAAS,QAAQ,CAAC,KAAK,CAAC,EACnC,GAAG,SAAS,EAAE,KAAK,GAClB,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GAC9C,sBAAsB,CAAC,CAAC,CAAC,GACzB,KAAK,CAAC;CACX;AAED,MAAM,MAAM,mBAAmB,CAAC,KAAK,EAAE,OAAO,IAAI,CAChD,IAAI,EAAE,KAAK,EACX,OAAO,EAAE,oBAAoB,KAC1B,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAEhC,MAAM,MAAM,sBAAsB,CAAC,KAAK,EAAE,OAAO,IAAI,CACnD,UAAU,EAAE,cAAc,CAAC,KAAK,CAAC,EACjC,OAAO,EAAE,oBAAoB,KAC1B,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAEhC,KAAK,+BAA+B,CAAC,OAAO,IAAI,mBAAmB,CACjE,OAAO,EACP,OAAO,CACR,CAAC;AAEF,MAAM,MAAM,IAAI,CAAC,KAAK,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI;IACrD,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,UAAU,EAAE,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC;IAC7C,OAAO,CAAC,EAAE,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9C;;OAEG;IACH,uBAAuB,CAAC,EAAE,sBAAsB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACjE,oCAAoC,CAAC,EAAE,+BAA+B,CAAC,OAAO,CAAC,CAAC;CACjF,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;IACnD,YAAY,CAAC,EAAE,2BAA2B,GAAG,SAAS,CAAC;IACvD,MAAM,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,eAAe,EAAE,MAAM,YAAY,CAAC;IACpC,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,WAAW,CAAC;CACnD,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,WAAW,GAAG,CAAC,oBAAoB,CAAC,KACnC,YAyCF,CAAC"}
1
+ {"version":3,"file":"ModelContextTypes.d.ts","sourceRoot":"","sources":["../../src/model-context/ModelContextTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;EAQ5C,CAAC;AAEH,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAC/C,OAAO,iCAAiC,CACzC,CAAC;AAEF,eAAO,MAAM,yBAAyB;;;;;;;;;;;;EAIpC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;IACnD,YAAY,CAAC,EAAE,2BAA2B,GAAG,SAAS,CAAC;IACvD,MAAM,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,eAAe,EAAE,MAAM,YAAY,CAAC;IACpC,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,WAAW,CAAC;CACnD,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,WAAW,GAAG,CAAC,oBAAoB,CAAC,KACnC,YAyCF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/model-context/ModelContextTypes.ts"],"sourcesContent":["import { z } from \"zod\";\nimport type { JSONSchema7 } from \"json-schema\";\nimport { Unsubscribe } from \"../types/Unsubscribe\";\nimport { TypePath, TypeAtPath, DeepPartial } from \"./type-path-utils\";\n\nexport const LanguageModelV1CallSettingsSchema = z.object({\n maxTokens: z.number().int().positive().optional(),\n temperature: z.number().optional(),\n topP: z.number().optional(),\n presencePenalty: z.number().optional(),\n frequencyPenalty: z.number().optional(),\n seed: z.number().int().optional(),\n headers: z.record(z.string().optional()).optional(),\n});\n\nexport type LanguageModelV1CallSettings = z.infer<\n typeof LanguageModelV1CallSettingsSchema\n>;\n\nexport const LanguageModelConfigSchema = z.object({\n apiKey: z.string().optional(),\n baseUrl: z.string().optional(),\n modelName: z.string().optional(),\n});\n\nexport type LanguageModelConfig = z.infer<typeof LanguageModelConfigSchema>;\n\ntype ToolExecutionContext = {\n toolCallId: string;\n abortSignal: AbortSignal;\n};\n\ntype ReadableStreamIterator<T> = ReadableStream<T> &\n AsyncGenerator<T, void, unknown>;\n\ninterface ToolCallReader<TArgs> {\n get<PathT extends TypePath<TArgs>>(\n ...fieldPath: PathT\n ): Promise<TypeAtPath<TArgs, PathT>>;\n\n stream<PathT extends TypePath<TArgs>>(\n ...fieldPath: PathT\n ): ReadableStreamIterator<DeepPartial<TypeAtPath<TArgs, PathT>>>;\n\n forEach<PathT extends TypePath<TArgs>>(\n ...fieldPath: PathT\n ): TypeAtPath<TArgs, PathT> extends Array<infer U>\n ? ReadableStreamIterator<U>\n : never;\n}\n\nexport type ToolExecuteFunction<TArgs, TResult> = (\n args: TArgs,\n context: ToolExecutionContext,\n) => TResult | Promise<TResult>;\n\nexport type ToolStreamCallFunction<TArgs, TResult> = (\n controller: ToolCallReader<TArgs>,\n context: ToolExecutionContext,\n) => TResult | Promise<TResult>;\n\ntype OnSchemaValidationErrorFunction<TResult> = ToolExecuteFunction<\n unknown,\n TResult\n>;\n\nexport type Tool<TArgs = unknown, TResult = unknown> = {\n description?: string | undefined;\n parameters: z.ZodSchema<TArgs> | JSONSchema7;\n execute?: ToolExecuteFunction<TArgs, TResult>;\n /**\n * @deprecated TODO not yet implemented\n */\n experimental_streamCall?: ToolStreamCallFunction<TArgs, TResult>;\n experimental_onSchemaValidationError?: OnSchemaValidationErrorFunction<TResult>;\n};\n\nexport type ModelContext = {\n priority?: number | undefined;\n system?: string | undefined;\n tools?: Record<string, Tool<any, any>> | undefined;\n callSettings?: LanguageModelV1CallSettings | undefined;\n config?: LanguageModelConfig | undefined;\n};\n\nexport type ModelContextProvider = {\n getModelContext: () => ModelContext;\n subscribe?: (callback: () => void) => Unsubscribe;\n};\n\nexport const mergeModelContexts = (\n configSet: Set<ModelContextProvider>,\n): ModelContext => {\n const configs = Array.from(configSet)\n .map((c) => c.getModelContext())\n .sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0));\n\n return configs.reduce((acc, config) => {\n if (config.system) {\n if (acc.system) {\n // TODO should the separator be configurable?\n acc.system += `\\n\\n${config.system}`;\n } else {\n acc.system = config.system;\n }\n }\n if (config.tools) {\n for (const [name, tool] of Object.entries(config.tools)) {\n const existing = acc.tools?.[name];\n if (existing && existing !== tool) {\n throw new Error(\n `You tried to define a tool with the name ${name}, but it already exists.`,\n );\n }\n\n if (!acc.tools) acc.tools = {};\n acc.tools[name] = tool;\n }\n }\n if (config.config) {\n acc.config = {\n ...acc.config,\n ...config.config,\n };\n }\n if (config.callSettings) {\n acc.callSettings = {\n ...acc.callSettings,\n ...config.callSettings,\n };\n }\n return acc;\n }, {} as ModelContext);\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAkB;AAKX,IAAM,oCAAoC,aAAE,OAAO;AAAA,EACxD,WAAW,aAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,EAChD,aAAa,aAAE,OAAO,EAAE,SAAS;AAAA,EACjC,MAAM,aAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,iBAAiB,aAAE,OAAO,EAAE,SAAS;AAAA,EACrC,kBAAkB,aAAE,OAAO,EAAE,SAAS;AAAA,EACtC,MAAM,aAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,EAChC,SAAS,aAAE,OAAO,aAAE,OAAO,EAAE,SAAS,CAAC,EAAE,SAAS;AACpD,CAAC;AAMM,IAAM,4BAA4B,aAAE,OAAO;AAAA,EAChD,QAAQ,aAAE,OAAO,EAAE,SAAS;AAAA,EAC5B,SAAS,aAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,WAAW,aAAE,OAAO,EAAE,SAAS;AACjC,CAAC;AAmEM,IAAM,qBAAqB,CAChC,cACiB;AACjB,QAAM,UAAU,MAAM,KAAK,SAAS,EACjC,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAC9B,KAAK,CAAC,GAAG,OAAO,EAAE,YAAY,MAAM,EAAE,YAAY,EAAE;AAEvD,SAAO,QAAQ,OAAO,CAAC,KAAK,WAAW;AACrC,QAAI,OAAO,QAAQ;AACjB,UAAI,IAAI,QAAQ;AAEd,YAAI,UAAU;AAAA;AAAA,EAAO,OAAO,MAAM;AAAA,MACpC,OAAO;AACL,YAAI,SAAS,OAAO;AAAA,MACtB;AAAA,IACF;AACA,QAAI,OAAO,OAAO;AAChB,iBAAW,CAAC,MAAM,IAAI,KAAK,OAAO,QAAQ,OAAO,KAAK,GAAG;AACvD,cAAM,WAAW,IAAI,QAAQ,IAAI;AACjC,YAAI,YAAY,aAAa,MAAM;AACjC,gBAAM,IAAI;AAAA,YACR,4CAA4C,IAAI;AAAA,UAClD;AAAA,QACF;AAEA,YAAI,CAAC,IAAI,MAAO,KAAI,QAAQ,CAAC;AAC7B,YAAI,MAAM,IAAI,IAAI;AAAA,MACpB;AAAA,IACF;AACA,QAAI,OAAO,QAAQ;AACjB,UAAI,SAAS;AAAA,QACX,GAAG,IAAI;AAAA,QACP,GAAG,OAAO;AAAA,MACZ;AAAA,IACF;AACA,QAAI,OAAO,cAAc;AACvB,UAAI,eAAe;AAAA,QACjB,GAAG,IAAI;AAAA,QACP,GAAG,OAAO;AAAA,MACZ;AAAA,IACF;AACA,WAAO;AAAA,EACT,GAAG,CAAC,CAAiB;AACvB;","names":[]}
1
+ {"version":3,"sources":["../../src/model-context/ModelContextTypes.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { Unsubscribe } from \"../types/Unsubscribe\";\nimport { Tool } from \"assistant-stream\";\n\nexport const LanguageModelV1CallSettingsSchema = z.object({\n maxTokens: z.number().int().positive().optional(),\n temperature: z.number().optional(),\n topP: z.number().optional(),\n presencePenalty: z.number().optional(),\n frequencyPenalty: z.number().optional(),\n seed: z.number().int().optional(),\n headers: z.record(z.string().optional()).optional(),\n});\n\nexport type LanguageModelV1CallSettings = z.infer<\n typeof LanguageModelV1CallSettingsSchema\n>;\n\nexport const LanguageModelConfigSchema = z.object({\n apiKey: z.string().optional(),\n baseUrl: z.string().optional(),\n modelName: z.string().optional(),\n});\n\nexport type LanguageModelConfig = z.infer<typeof LanguageModelConfigSchema>;\n\nexport type ModelContext = {\n priority?: number | undefined;\n system?: string | undefined;\n tools?: Record<string, Tool<any, any>> | undefined;\n callSettings?: LanguageModelV1CallSettings | undefined;\n config?: LanguageModelConfig | undefined;\n};\n\nexport type ModelContextProvider = {\n getModelContext: () => ModelContext;\n subscribe?: (callback: () => void) => Unsubscribe;\n};\n\nexport const mergeModelContexts = (\n configSet: Set<ModelContextProvider>,\n): ModelContext => {\n const configs = Array.from(configSet)\n .map((c) => c.getModelContext())\n .sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0));\n\n return configs.reduce((acc, config) => {\n if (config.system) {\n if (acc.system) {\n // TODO should the separator be configurable?\n acc.system += `\\n\\n${config.system}`;\n } else {\n acc.system = config.system;\n }\n }\n if (config.tools) {\n for (const [name, tool] of Object.entries(config.tools)) {\n const existing = acc.tools?.[name];\n if (existing && existing !== tool) {\n throw new Error(\n `You tried to define a tool with the name ${name}, but it already exists.`,\n );\n }\n\n if (!acc.tools) acc.tools = {};\n acc.tools[name] = tool;\n }\n }\n if (config.config) {\n acc.config = {\n ...acc.config,\n ...config.config,\n };\n }\n if (config.callSettings) {\n acc.callSettings = {\n ...acc.callSettings,\n ...config.callSettings,\n };\n }\n return acc;\n }, {} as ModelContext);\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAkB;AAIX,IAAM,oCAAoC,aAAE,OAAO;AAAA,EACxD,WAAW,aAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,EAChD,aAAa,aAAE,OAAO,EAAE,SAAS;AAAA,EACjC,MAAM,aAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,iBAAiB,aAAE,OAAO,EAAE,SAAS;AAAA,EACrC,kBAAkB,aAAE,OAAO,EAAE,SAAS;AAAA,EACtC,MAAM,aAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,EAChC,SAAS,aAAE,OAAO,aAAE,OAAO,EAAE,SAAS,CAAC,EAAE,SAAS;AACpD,CAAC;AAMM,IAAM,4BAA4B,aAAE,OAAO;AAAA,EAChD,QAAQ,aAAE,OAAO,EAAE,SAAS;AAAA,EAC5B,SAAS,aAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,WAAW,aAAE,OAAO,EAAE,SAAS;AACjC,CAAC;AAiBM,IAAM,qBAAqB,CAChC,cACiB;AACjB,QAAM,UAAU,MAAM,KAAK,SAAS,EACjC,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAC9B,KAAK,CAAC,GAAG,OAAO,EAAE,YAAY,MAAM,EAAE,YAAY,EAAE;AAEvD,SAAO,QAAQ,OAAO,CAAC,KAAK,WAAW;AACrC,QAAI,OAAO,QAAQ;AACjB,UAAI,IAAI,QAAQ;AAEd,YAAI,UAAU;AAAA;AAAA,EAAO,OAAO,MAAM;AAAA,MACpC,OAAO;AACL,YAAI,SAAS,OAAO;AAAA,MACtB;AAAA,IACF;AACA,QAAI,OAAO,OAAO;AAChB,iBAAW,CAAC,MAAM,IAAI,KAAK,OAAO,QAAQ,OAAO,KAAK,GAAG;AACvD,cAAM,WAAW,IAAI,QAAQ,IAAI;AACjC,YAAI,YAAY,aAAa,MAAM;AACjC,gBAAM,IAAI;AAAA,YACR,4CAA4C,IAAI;AAAA,UAClD;AAAA,QACF;AAEA,YAAI,CAAC,IAAI,MAAO,KAAI,QAAQ,CAAC;AAC7B,YAAI,MAAM,IAAI,IAAI;AAAA,MACpB;AAAA,IACF;AACA,QAAI,OAAO,QAAQ;AACjB,UAAI,SAAS;AAAA,QACX,GAAG,IAAI;AAAA,QACP,GAAG,OAAO;AAAA,MACZ;AAAA,IACF;AACA,QAAI,OAAO,cAAc;AACvB,UAAI,eAAe;AAAA,QACjB,GAAG,IAAI;AAAA,QACP,GAAG,OAAO;AAAA,MACZ;AAAA,IACF;AACA,WAAO;AAAA,EACT,GAAG,CAAC,CAAiB;AACvB;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/model-context/ModelContextTypes.ts"],"sourcesContent":["import { z } from \"zod\";\nimport type { JSONSchema7 } from \"json-schema\";\nimport { Unsubscribe } from \"../types/Unsubscribe\";\nimport { TypePath, TypeAtPath, DeepPartial } from \"./type-path-utils\";\n\nexport const LanguageModelV1CallSettingsSchema = z.object({\n maxTokens: z.number().int().positive().optional(),\n temperature: z.number().optional(),\n topP: z.number().optional(),\n presencePenalty: z.number().optional(),\n frequencyPenalty: z.number().optional(),\n seed: z.number().int().optional(),\n headers: z.record(z.string().optional()).optional(),\n});\n\nexport type LanguageModelV1CallSettings = z.infer<\n typeof LanguageModelV1CallSettingsSchema\n>;\n\nexport const LanguageModelConfigSchema = z.object({\n apiKey: z.string().optional(),\n baseUrl: z.string().optional(),\n modelName: z.string().optional(),\n});\n\nexport type LanguageModelConfig = z.infer<typeof LanguageModelConfigSchema>;\n\ntype ToolExecutionContext = {\n toolCallId: string;\n abortSignal: AbortSignal;\n};\n\ntype ReadableStreamIterator<T> = ReadableStream<T> &\n AsyncGenerator<T, void, unknown>;\n\ninterface ToolCallReader<TArgs> {\n get<PathT extends TypePath<TArgs>>(\n ...fieldPath: PathT\n ): Promise<TypeAtPath<TArgs, PathT>>;\n\n stream<PathT extends TypePath<TArgs>>(\n ...fieldPath: PathT\n ): ReadableStreamIterator<DeepPartial<TypeAtPath<TArgs, PathT>>>;\n\n forEach<PathT extends TypePath<TArgs>>(\n ...fieldPath: PathT\n ): TypeAtPath<TArgs, PathT> extends Array<infer U>\n ? ReadableStreamIterator<U>\n : never;\n}\n\nexport type ToolExecuteFunction<TArgs, TResult> = (\n args: TArgs,\n context: ToolExecutionContext,\n) => TResult | Promise<TResult>;\n\nexport type ToolStreamCallFunction<TArgs, TResult> = (\n controller: ToolCallReader<TArgs>,\n context: ToolExecutionContext,\n) => TResult | Promise<TResult>;\n\ntype OnSchemaValidationErrorFunction<TResult> = ToolExecuteFunction<\n unknown,\n TResult\n>;\n\nexport type Tool<TArgs = unknown, TResult = unknown> = {\n description?: string | undefined;\n parameters: z.ZodSchema<TArgs> | JSONSchema7;\n execute?: ToolExecuteFunction<TArgs, TResult>;\n /**\n * @deprecated TODO not yet implemented\n */\n experimental_streamCall?: ToolStreamCallFunction<TArgs, TResult>;\n experimental_onSchemaValidationError?: OnSchemaValidationErrorFunction<TResult>;\n};\n\nexport type ModelContext = {\n priority?: number | undefined;\n system?: string | undefined;\n tools?: Record<string, Tool<any, any>> | undefined;\n callSettings?: LanguageModelV1CallSettings | undefined;\n config?: LanguageModelConfig | undefined;\n};\n\nexport type ModelContextProvider = {\n getModelContext: () => ModelContext;\n subscribe?: (callback: () => void) => Unsubscribe;\n};\n\nexport const mergeModelContexts = (\n configSet: Set<ModelContextProvider>,\n): ModelContext => {\n const configs = Array.from(configSet)\n .map((c) => c.getModelContext())\n .sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0));\n\n return configs.reduce((acc, config) => {\n if (config.system) {\n if (acc.system) {\n // TODO should the separator be configurable?\n acc.system += `\\n\\n${config.system}`;\n } else {\n acc.system = config.system;\n }\n }\n if (config.tools) {\n for (const [name, tool] of Object.entries(config.tools)) {\n const existing = acc.tools?.[name];\n if (existing && existing !== tool) {\n throw new Error(\n `You tried to define a tool with the name ${name}, but it already exists.`,\n );\n }\n\n if (!acc.tools) acc.tools = {};\n acc.tools[name] = tool;\n }\n }\n if (config.config) {\n acc.config = {\n ...acc.config,\n ...config.config,\n };\n }\n if (config.callSettings) {\n acc.callSettings = {\n ...acc.callSettings,\n ...config.callSettings,\n };\n }\n return acc;\n }, {} as ModelContext);\n};\n"],"mappings":";AAAA,SAAS,SAAS;AAKX,IAAM,oCAAoC,EAAE,OAAO;AAAA,EACxD,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,EAChD,aAAa,EAAE,OAAO,EAAE,SAAS;AAAA,EACjC,MAAM,EAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,iBAAiB,EAAE,OAAO,EAAE,SAAS;AAAA,EACrC,kBAAkB,EAAE,OAAO,EAAE,SAAS;AAAA,EACtC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,EAChC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,SAAS;AACpD,CAAC;AAMM,IAAM,4BAA4B,EAAE,OAAO;AAAA,EAChD,QAAQ,EAAE,OAAO,EAAE,SAAS;AAAA,EAC5B,SAAS,EAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,WAAW,EAAE,OAAO,EAAE,SAAS;AACjC,CAAC;AAmEM,IAAM,qBAAqB,CAChC,cACiB;AACjB,QAAM,UAAU,MAAM,KAAK,SAAS,EACjC,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAC9B,KAAK,CAAC,GAAG,OAAO,EAAE,YAAY,MAAM,EAAE,YAAY,EAAE;AAEvD,SAAO,QAAQ,OAAO,CAAC,KAAK,WAAW;AACrC,QAAI,OAAO,QAAQ;AACjB,UAAI,IAAI,QAAQ;AAEd,YAAI,UAAU;AAAA;AAAA,EAAO,OAAO,MAAM;AAAA,MACpC,OAAO;AACL,YAAI,SAAS,OAAO;AAAA,MACtB;AAAA,IACF;AACA,QAAI,OAAO,OAAO;AAChB,iBAAW,CAAC,MAAM,IAAI,KAAK,OAAO,QAAQ,OAAO,KAAK,GAAG;AACvD,cAAM,WAAW,IAAI,QAAQ,IAAI;AACjC,YAAI,YAAY,aAAa,MAAM;AACjC,gBAAM,IAAI;AAAA,YACR,4CAA4C,IAAI;AAAA,UAClD;AAAA,QACF;AAEA,YAAI,CAAC,IAAI,MAAO,KAAI,QAAQ,CAAC;AAC7B,YAAI,MAAM,IAAI,IAAI;AAAA,MACpB;AAAA,IACF;AACA,QAAI,OAAO,QAAQ;AACjB,UAAI,SAAS;AAAA,QACX,GAAG,IAAI;AAAA,QACP,GAAG,OAAO;AAAA,MACZ;AAAA,IACF;AACA,QAAI,OAAO,cAAc;AACvB,UAAI,eAAe;AAAA,QACjB,GAAG,IAAI;AAAA,QACP,GAAG,OAAO;AAAA,MACZ;AAAA,IACF;AACA,WAAO;AAAA,EACT,GAAG,CAAC,CAAiB;AACvB;","names":[]}
1
+ {"version":3,"sources":["../../src/model-context/ModelContextTypes.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { Unsubscribe } from \"../types/Unsubscribe\";\nimport { Tool } from \"assistant-stream\";\n\nexport const LanguageModelV1CallSettingsSchema = z.object({\n maxTokens: z.number().int().positive().optional(),\n temperature: z.number().optional(),\n topP: z.number().optional(),\n presencePenalty: z.number().optional(),\n frequencyPenalty: z.number().optional(),\n seed: z.number().int().optional(),\n headers: z.record(z.string().optional()).optional(),\n});\n\nexport type LanguageModelV1CallSettings = z.infer<\n typeof LanguageModelV1CallSettingsSchema\n>;\n\nexport const LanguageModelConfigSchema = z.object({\n apiKey: z.string().optional(),\n baseUrl: z.string().optional(),\n modelName: z.string().optional(),\n});\n\nexport type LanguageModelConfig = z.infer<typeof LanguageModelConfigSchema>;\n\nexport type ModelContext = {\n priority?: number | undefined;\n system?: string | undefined;\n tools?: Record<string, Tool<any, any>> | undefined;\n callSettings?: LanguageModelV1CallSettings | undefined;\n config?: LanguageModelConfig | undefined;\n};\n\nexport type ModelContextProvider = {\n getModelContext: () => ModelContext;\n subscribe?: (callback: () => void) => Unsubscribe;\n};\n\nexport const mergeModelContexts = (\n configSet: Set<ModelContextProvider>,\n): ModelContext => {\n const configs = Array.from(configSet)\n .map((c) => c.getModelContext())\n .sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0));\n\n return configs.reduce((acc, config) => {\n if (config.system) {\n if (acc.system) {\n // TODO should the separator be configurable?\n acc.system += `\\n\\n${config.system}`;\n } else {\n acc.system = config.system;\n }\n }\n if (config.tools) {\n for (const [name, tool] of Object.entries(config.tools)) {\n const existing = acc.tools?.[name];\n if (existing && existing !== tool) {\n throw new Error(\n `You tried to define a tool with the name ${name}, but it already exists.`,\n );\n }\n\n if (!acc.tools) acc.tools = {};\n acc.tools[name] = tool;\n }\n }\n if (config.config) {\n acc.config = {\n ...acc.config,\n ...config.config,\n };\n }\n if (config.callSettings) {\n acc.callSettings = {\n ...acc.callSettings,\n ...config.callSettings,\n };\n }\n return acc;\n }, {} as ModelContext);\n};\n"],"mappings":";AAAA,SAAS,SAAS;AAIX,IAAM,oCAAoC,EAAE,OAAO;AAAA,EACxD,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,EAChD,aAAa,EAAE,OAAO,EAAE,SAAS;AAAA,EACjC,MAAM,EAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,iBAAiB,EAAE,OAAO,EAAE,SAAS;AAAA,EACrC,kBAAkB,EAAE,OAAO,EAAE,SAAS;AAAA,EACtC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,EAChC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,SAAS;AACpD,CAAC;AAMM,IAAM,4BAA4B,EAAE,OAAO;AAAA,EAChD,QAAQ,EAAE,OAAO,EAAE,SAAS;AAAA,EAC5B,SAAS,EAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,WAAW,EAAE,OAAO,EAAE,SAAS;AACjC,CAAC;AAiBM,IAAM,qBAAqB,CAChC,cACiB;AACjB,QAAM,UAAU,MAAM,KAAK,SAAS,EACjC,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAC9B,KAAK,CAAC,GAAG,OAAO,EAAE,YAAY,MAAM,EAAE,YAAY,EAAE;AAEvD,SAAO,QAAQ,OAAO,CAAC,KAAK,WAAW;AACrC,QAAI,OAAO,QAAQ;AACjB,UAAI,IAAI,QAAQ;AAEd,YAAI,UAAU;AAAA;AAAA,EAAO,OAAO,MAAM;AAAA,MACpC,OAAO;AACL,YAAI,SAAS,OAAO;AAAA,MACtB;AAAA,IACF;AACA,QAAI,OAAO,OAAO;AAChB,iBAAW,CAAC,MAAM,IAAI,KAAK,OAAO,QAAQ,OAAO,KAAK,GAAG;AACvD,cAAM,WAAW,IAAI,QAAQ,IAAI;AACjC,YAAI,YAAY,aAAa,MAAM;AACjC,gBAAM,IAAI;AAAA,YACR,4CAA4C,IAAI;AAAA,UAClD;AAAA,QACF;AAEA,YAAI,CAAC,IAAI,MAAO,KAAI,QAAQ,CAAC;AAC7B,YAAI,MAAM,IAAI,IAAI;AAAA,MACpB;AAAA,IACF;AACA,QAAI,OAAO,QAAQ;AACjB,UAAI,SAAS;AAAA,QACX,GAAG,IAAI;AAAA,QACP,GAAG,OAAO;AAAA,MACZ;AAAA,IACF;AACA,QAAI,OAAO,cAAc;AACvB,UAAI,eAAe;AAAA,QACjB,GAAG,IAAI;AAAA,QACP,GAAG,OAAO;AAAA,MACZ;AAAA,IACF;AACA,WAAO;AAAA,EACT,GAAG,CAAC,CAAiB;AACvB;","names":[]}
@@ -12,7 +12,8 @@ ModelContext as AssistantConfig,
12
12
  /**
13
13
  * @deprecated This type was renamed to `ModelContextProvider`.
14
14
  */
15
- ModelContextProvider as AssistantConfigProvider, ModelContext, ModelContextProvider, Tool, } from "./ModelContextTypes";
15
+ ModelContextProvider as AssistantConfigProvider, ModelContext, ModelContextProvider, } from "./ModelContextTypes";
16
+ export type { Tool } from "assistant-stream";
16
17
  export { tool } from "./tool";
17
18
  /**
18
19
  * @deprecated This function was renamed to `makeAssistantVisible`.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/model-context/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EACL,KAAK,eAAe,EACpB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EACL,kBAAkB,EAClB,KAAK,oBAAoB,GAC1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,YAAY;AACV;;GAEG;AACH,YAAY,IAAI,eAAe;AAC/B;;GAEG;AACH,oBAAoB,IAAI,uBAAuB,EAC/C,YAAY,EACZ,oBAAoB,EACpB,IAAI,GACL,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B;;GAEG;AACH,OAAO,EAAE,oBAAoB,IAAI,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/model-context/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EACL,KAAK,eAAe,EACpB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EACL,kBAAkB,EAClB,KAAK,oBAAoB,GAC1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,YAAY;AACV;;GAEG;AACH,YAAY,IAAI,eAAe;AAC/B;;GAEG;AACH,oBAAoB,IAAI,uBAAuB,EAC/C,YAAY,EACZ,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B;;GAEG;AACH,OAAO,EAAE,oBAAoB,IAAI,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/model-context/index.ts"],"sourcesContent":["export { makeAssistantTool, type AssistantTool } from \"./makeAssistantTool\";\nexport {\n type AssistantToolUI,\n makeAssistantToolUI,\n} from \"./makeAssistantToolUI\";\nexport { useAssistantInstructions } from \"./useAssistantInstructions\";\nexport { useAssistantTool, type AssistantToolProps } from \"./useAssistantTool\";\nexport {\n useAssistantToolUI,\n type AssistantToolUIProps,\n} from \"./useAssistantToolUI\";\nexport { useInlineRender } from \"./useInlineRender\";\n\nexport type {\n /**\n * @deprecated This type was renamed to `ModelContext`.\n */\n ModelContext as AssistantConfig,\n /**\n * @deprecated This type was renamed to `ModelContextProvider`.\n */\n ModelContextProvider as AssistantConfigProvider,\n ModelContext,\n ModelContextProvider,\n Tool,\n} from \"./ModelContextTypes\";\n\nexport { tool } from \"./tool\";\n\n/**\n * @deprecated This function was renamed to `makeAssistantVisible`.\n */\nexport { makeAssistantVisible as makeAssistantReadable } from \"./makeAssistantVisible\";\nexport { makeAssistantVisible } from \"./makeAssistantVisible\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,+BAAsD;AACtD,iCAGO;AACP,sCAAyC;AACzC,8BAA0D;AAC1D,gCAGO;AACP,6BAAgC;AAgBhC,kBAAqB;AAKrB,kCAA8D;AAC9D,IAAAA,+BAAqC;","names":["import_makeAssistantVisible"]}
1
+ {"version":3,"sources":["../../src/model-context/index.ts"],"sourcesContent":["export { makeAssistantTool, type AssistantTool } from \"./makeAssistantTool\";\nexport {\n type AssistantToolUI,\n makeAssistantToolUI,\n} from \"./makeAssistantToolUI\";\nexport { useAssistantInstructions } from \"./useAssistantInstructions\";\nexport { useAssistantTool, type AssistantToolProps } from \"./useAssistantTool\";\nexport {\n useAssistantToolUI,\n type AssistantToolUIProps,\n} from \"./useAssistantToolUI\";\nexport { useInlineRender } from \"./useInlineRender\";\n\nexport type {\n /**\n * @deprecated This type was renamed to `ModelContext`.\n */\n ModelContext as AssistantConfig,\n /**\n * @deprecated This type was renamed to `ModelContextProvider`.\n */\n ModelContextProvider as AssistantConfigProvider,\n ModelContext,\n ModelContextProvider,\n} from \"./ModelContextTypes\";\n\nexport type { Tool } from \"assistant-stream\";\n\nexport { tool } from \"./tool\";\n\n/**\n * @deprecated This function was renamed to `makeAssistantVisible`.\n */\nexport { makeAssistantVisible as makeAssistantReadable } from \"./makeAssistantVisible\";\nexport { makeAssistantVisible } from \"./makeAssistantVisible\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,+BAAsD;AACtD,iCAGO;AACP,sCAAyC;AACzC,8BAA0D;AAC1D,gCAGO;AACP,6BAAgC;AAiBhC,kBAAqB;AAKrB,kCAA8D;AAC9D,IAAAA,+BAAqC;","names":["import_makeAssistantVisible"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/model-context/index.ts"],"sourcesContent":["export { makeAssistantTool, type AssistantTool } from \"./makeAssistantTool\";\nexport {\n type AssistantToolUI,\n makeAssistantToolUI,\n} from \"./makeAssistantToolUI\";\nexport { useAssistantInstructions } from \"./useAssistantInstructions\";\nexport { useAssistantTool, type AssistantToolProps } from \"./useAssistantTool\";\nexport {\n useAssistantToolUI,\n type AssistantToolUIProps,\n} from \"./useAssistantToolUI\";\nexport { useInlineRender } from \"./useInlineRender\";\n\nexport type {\n /**\n * @deprecated This type was renamed to `ModelContext`.\n */\n ModelContext as AssistantConfig,\n /**\n * @deprecated This type was renamed to `ModelContextProvider`.\n */\n ModelContextProvider as AssistantConfigProvider,\n ModelContext,\n ModelContextProvider,\n Tool,\n} from \"./ModelContextTypes\";\n\nexport { tool } from \"./tool\";\n\n/**\n * @deprecated This function was renamed to `makeAssistantVisible`.\n */\nexport { makeAssistantVisible as makeAssistantReadable } from \"./makeAssistantVisible\";\nexport { makeAssistantVisible } from \"./makeAssistantVisible\";\n"],"mappings":";AAAA,SAAS,yBAA6C;AACtD;AAAA,EAEE;AAAA,OACK;AACP,SAAS,gCAAgC;AACzC,SAAS,wBAAiD;AAC1D;AAAA,EACE;AAAA,OAEK;AACP,SAAS,uBAAuB;AAgBhC,SAAS,YAAY;AAKrB,SAAiC,4BAA6B;AAC9D,SAAS,wBAAAA,6BAA4B;","names":["makeAssistantVisible"]}
1
+ {"version":3,"sources":["../../src/model-context/index.ts"],"sourcesContent":["export { makeAssistantTool, type AssistantTool } from \"./makeAssistantTool\";\nexport {\n type AssistantToolUI,\n makeAssistantToolUI,\n} from \"./makeAssistantToolUI\";\nexport { useAssistantInstructions } from \"./useAssistantInstructions\";\nexport { useAssistantTool, type AssistantToolProps } from \"./useAssistantTool\";\nexport {\n useAssistantToolUI,\n type AssistantToolUIProps,\n} from \"./useAssistantToolUI\";\nexport { useInlineRender } from \"./useInlineRender\";\n\nexport type {\n /**\n * @deprecated This type was renamed to `ModelContext`.\n */\n ModelContext as AssistantConfig,\n /**\n * @deprecated This type was renamed to `ModelContextProvider`.\n */\n ModelContextProvider as AssistantConfigProvider,\n ModelContext,\n ModelContextProvider,\n} from \"./ModelContextTypes\";\n\nexport type { Tool } from \"assistant-stream\";\n\nexport { tool } from \"./tool\";\n\n/**\n * @deprecated This function was renamed to `makeAssistantVisible`.\n */\nexport { makeAssistantVisible as makeAssistantReadable } from \"./makeAssistantVisible\";\nexport { makeAssistantVisible } from \"./makeAssistantVisible\";\n"],"mappings":";AAAA,SAAS,yBAA6C;AACtD;AAAA,EAEE;AAAA,OACK;AACP,SAAS,gCAAgC;AACzC,SAAS,wBAAiD;AAC1D;AAAA,EACE;AAAA,OAEK;AACP,SAAS,uBAAuB;AAiBhC,SAAS,YAAY;AAKrB,SAAiC,4BAA6B;AAC9D,SAAS,wBAAAA,6BAA4B;","names":["makeAssistantVisible"]}
@@ -1,5 +1,5 @@
1
1
  import { Schema, z } from "zod";
2
- import { Tool } from "./ModelContextTypes";
2
+ import { Tool } from "assistant-stream";
3
3
  export type inferParameters<PARAMETERS extends Tool<any, any>["parameters"]> = PARAMETERS extends Schema<any> ? PARAMETERS["_type"] : PARAMETERS extends z.ZodTypeAny ? z.infer<PARAMETERS> : never;
4
4
  export declare function tool<TArgs extends Tool<any, any>["parameters"], TResult = any>(tool: {
5
5
  description?: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../src/model-context/tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAE3C,MAAM,MAAM,eAAe,CAAC,UAAU,SAAS,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,YAAY,CAAC,IACzE,UAAU,SAAS,MAAM,CAAC,GAAG,CAAC,GAC1B,UAAU,CAAC,OAAO,CAAC,GACnB,UAAU,SAAS,CAAC,CAAC,UAAU,GAC7B,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,GACnB,KAAK,CAAC;AAEd,wBAAgB,IAAI,CAClB,KAAK,SAAS,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,YAAY,CAAC,EAC1C,OAAO,GAAG,GAAG,EACb,IAAI,EAAE;IACN,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,UAAU,EAAE,KAAK,CAAC;IAClB,OAAO,CAAC,EAAE,CACR,IAAI,EAAE,eAAe,CAAC,KAAK,CAAC,EAC5B,OAAO,EAAE;QACP,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,WAAW,CAAC;KAC1B,KACE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACjC,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAExC"}
1
+ {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../src/model-context/tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,MAAM,MAAM,eAAe,CAAC,UAAU,SAAS,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,YAAY,CAAC,IACzE,UAAU,SAAS,MAAM,CAAC,GAAG,CAAC,GAC1B,UAAU,CAAC,OAAO,CAAC,GACnB,UAAU,SAAS,CAAC,CAAC,UAAU,GAC7B,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,GACnB,KAAK,CAAC;AAEd,wBAAgB,IAAI,CAClB,KAAK,SAAS,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,YAAY,CAAC,EAC1C,OAAO,GAAG,GAAG,EACb,IAAI,EAAE;IACN,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,UAAU,EAAE,KAAK,CAAC;IAClB,OAAO,CAAC,EAAE,CACR,IAAI,EAAE,eAAe,CAAC,KAAK,CAAC,EAC5B,OAAO,EAAE;QACP,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,WAAW,CAAC;KAC1B,KACE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACjC,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAExC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/model-context/tool.ts"],"sourcesContent":["import { Schema, z } from \"zod\";\nimport { Tool } from \"./ModelContextTypes\";\n\nexport type inferParameters<PARAMETERS extends Tool<any, any>[\"parameters\"]> =\n PARAMETERS extends Schema<any>\n ? PARAMETERS[\"_type\"]\n : PARAMETERS extends z.ZodTypeAny\n ? z.infer<PARAMETERS>\n : never;\n\nexport function tool<\n TArgs extends Tool<any, any>[\"parameters\"],\n TResult = any,\n>(tool: {\n description?: string | undefined;\n parameters: TArgs;\n execute?: (\n args: inferParameters<TArgs>,\n context: {\n toolCallId: string;\n abortSignal: AbortSignal;\n },\n ) => TResult | Promise<TResult>;\n}): Tool<inferParameters<TArgs>, TResult> {\n return tool;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAUO,SAAS,KAGdA,OAUwC;AACxC,SAAOA;AACT;","names":["tool"]}
1
+ {"version":3,"sources":["../../src/model-context/tool.ts"],"sourcesContent":["import { Schema, z } from \"zod\";\nimport { Tool } from \"assistant-stream\";\n\nexport type inferParameters<PARAMETERS extends Tool<any, any>[\"parameters\"]> =\n PARAMETERS extends Schema<any>\n ? PARAMETERS[\"_type\"]\n : PARAMETERS extends z.ZodTypeAny\n ? z.infer<PARAMETERS>\n : never;\n\nexport function tool<\n TArgs extends Tool<any, any>[\"parameters\"],\n TResult = any,\n>(tool: {\n description?: string | undefined;\n parameters: TArgs;\n execute?: (\n args: inferParameters<TArgs>,\n context: {\n toolCallId: string;\n abortSignal: AbortSignal;\n },\n ) => TResult | Promise<TResult>;\n}): Tool<inferParameters<TArgs>, TResult> {\n return tool;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAUO,SAAS,KAGdA,OAUwC;AACxC,SAAOA;AACT;","names":["tool"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/model-context/tool.ts"],"sourcesContent":["import { Schema, z } from \"zod\";\nimport { Tool } from \"./ModelContextTypes\";\n\nexport type inferParameters<PARAMETERS extends Tool<any, any>[\"parameters\"]> =\n PARAMETERS extends Schema<any>\n ? PARAMETERS[\"_type\"]\n : PARAMETERS extends z.ZodTypeAny\n ? z.infer<PARAMETERS>\n : never;\n\nexport function tool<\n TArgs extends Tool<any, any>[\"parameters\"],\n TResult = any,\n>(tool: {\n description?: string | undefined;\n parameters: TArgs;\n execute?: (\n args: inferParameters<TArgs>,\n context: {\n toolCallId: string;\n abortSignal: AbortSignal;\n },\n ) => TResult | Promise<TResult>;\n}): Tool<inferParameters<TArgs>, TResult> {\n return tool;\n}\n"],"mappings":";AAUO,SAAS,KAGdA,OAUwC;AACxC,SAAOA;AACT;","names":["tool"]}
1
+ {"version":3,"sources":["../../src/model-context/tool.ts"],"sourcesContent":["import { Schema, z } from \"zod\";\nimport { Tool } from \"assistant-stream\";\n\nexport type inferParameters<PARAMETERS extends Tool<any, any>[\"parameters\"]> =\n PARAMETERS extends Schema<any>\n ? PARAMETERS[\"_type\"]\n : PARAMETERS extends z.ZodTypeAny\n ? z.infer<PARAMETERS>\n : never;\n\nexport function tool<\n TArgs extends Tool<any, any>[\"parameters\"],\n TResult = any,\n>(tool: {\n description?: string | undefined;\n parameters: TArgs;\n execute?: (\n args: inferParameters<TArgs>,\n context: {\n toolCallId: string;\n abortSignal: AbortSignal;\n },\n ) => TResult | Promise<TResult>;\n}): Tool<inferParameters<TArgs>, TResult> {\n return tool;\n}\n"],"mappings":";AAUO,SAAS,KAGdA,OAUwC;AACxC,SAAOA;AACT;","names":["tool"]}
@@ -1,5 +1,5 @@
1
1
  import type { ToolCallContentPartComponent } from "../types/ContentPartComponentTypes";
2
- import type { Tool } from "./ModelContextTypes";
2
+ import type { Tool } from "assistant-stream";
3
3
  export type AssistantToolProps<TArgs, TResult> = Tool<TArgs, TResult> & {
4
4
  toolName: string;
5
5
  render?: ToolCallContentPartComponent<TArgs, TResult> | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"useAssistantTool.d.ts","sourceRoot":"","sources":["../../src/model-context/useAssistantTool.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,oCAAoC,CAAC;AACvF,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAEhD,MAAM,MAAM,kBAAkB,CAAC,KAAK,EAAE,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG;IACtE,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,4BAA4B,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAClE,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAChC,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,KAAK,EAAE,OAAO,EAC7C,MAAM,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,SAwBzC,CAAC"}
1
+ {"version":3,"file":"useAssistantTool.d.ts","sourceRoot":"","sources":["../../src/model-context/useAssistantTool.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,oCAAoC,CAAC;AACvF,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE7C,MAAM,MAAM,kBAAkB,CAAC,KAAK,EAAE,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG;IACtE,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,4BAA4B,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAClE,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAChC,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,KAAK,EAAE,OAAO,EAC7C,MAAM,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,SAwBzC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/model-context/useAssistantTool.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect } from \"react\";\nimport {\n useAssistantRuntime,\n useToolUIsStore,\n} from \"../context/react/AssistantContext\";\nimport type { ToolCallContentPartComponent } from \"../types/ContentPartComponentTypes\";\nimport type { Tool } from \"./ModelContextTypes\";\n\nexport type AssistantToolProps<TArgs, TResult> = Tool<TArgs, TResult> & {\n toolName: string;\n render?: ToolCallContentPartComponent<TArgs, TResult> | undefined;\n disabled?: boolean | undefined;\n};\n\nexport const useAssistantTool = <TArgs, TResult>(\n tool: AssistantToolProps<TArgs, TResult>,\n) => {\n const assistantRuntime = useAssistantRuntime();\n const toolUIsStore = useToolUIsStore();\n\n useEffect(() => {\n return tool.render\n ? toolUIsStore.getState().setToolUI(tool.toolName, tool.render)\n : undefined;\n }, [toolUIsStore, tool.toolName, tool.render]);\n\n useEffect(() => {\n const { toolName, render, disabled, ...rest } = tool;\n if (disabled) return;\n\n const context = {\n tools: {\n [toolName]: rest,\n },\n };\n return assistantRuntime.registerModelContextProvider({\n getModelContext: () => context,\n });\n }, [assistantRuntime, tool]);\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAA0B;AAC1B,8BAGO;AAUA,IAAM,mBAAmB,CAC9B,SACG;AACH,QAAM,uBAAmB,6CAAoB;AAC7C,QAAM,mBAAe,yCAAgB;AAErC,8BAAU,MAAM;AACd,WAAO,KAAK,SACR,aAAa,SAAS,EAAE,UAAU,KAAK,UAAU,KAAK,MAAM,IAC5D;AAAA,EACN,GAAG,CAAC,cAAc,KAAK,UAAU,KAAK,MAAM,CAAC;AAE7C,8BAAU,MAAM;AACd,UAAM,EAAE,UAAU,QAAQ,UAAU,GAAG,KAAK,IAAI;AAChD,QAAI,SAAU;AAEd,UAAM,UAAU;AAAA,MACd,OAAO;AAAA,QACL,CAAC,QAAQ,GAAG;AAAA,MACd;AAAA,IACF;AACA,WAAO,iBAAiB,6BAA6B;AAAA,MACnD,iBAAiB,MAAM;AAAA,IACzB,CAAC;AAAA,EACH,GAAG,CAAC,kBAAkB,IAAI,CAAC;AAC7B;","names":[]}
1
+ {"version":3,"sources":["../../src/model-context/useAssistantTool.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect } from \"react\";\nimport {\n useAssistantRuntime,\n useToolUIsStore,\n} from \"../context/react/AssistantContext\";\nimport type { ToolCallContentPartComponent } from \"../types/ContentPartComponentTypes\";\nimport type { Tool } from \"assistant-stream\";\n\nexport type AssistantToolProps<TArgs, TResult> = Tool<TArgs, TResult> & {\n toolName: string;\n render?: ToolCallContentPartComponent<TArgs, TResult> | undefined;\n disabled?: boolean | undefined;\n};\n\nexport const useAssistantTool = <TArgs, TResult>(\n tool: AssistantToolProps<TArgs, TResult>,\n) => {\n const assistantRuntime = useAssistantRuntime();\n const toolUIsStore = useToolUIsStore();\n\n useEffect(() => {\n return tool.render\n ? toolUIsStore.getState().setToolUI(tool.toolName, tool.render)\n : undefined;\n }, [toolUIsStore, tool.toolName, tool.render]);\n\n useEffect(() => {\n const { toolName, render, disabled, ...rest } = tool;\n if (disabled) return;\n\n const context = {\n tools: {\n [toolName]: rest,\n },\n };\n return assistantRuntime.registerModelContextProvider({\n getModelContext: () => context,\n });\n }, [assistantRuntime, tool]);\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAA0B;AAC1B,8BAGO;AAUA,IAAM,mBAAmB,CAC9B,SACG;AACH,QAAM,uBAAmB,6CAAoB;AAC7C,QAAM,mBAAe,yCAAgB;AAErC,8BAAU,MAAM;AACd,WAAO,KAAK,SACR,aAAa,SAAS,EAAE,UAAU,KAAK,UAAU,KAAK,MAAM,IAC5D;AAAA,EACN,GAAG,CAAC,cAAc,KAAK,UAAU,KAAK,MAAM,CAAC;AAE7C,8BAAU,MAAM;AACd,UAAM,EAAE,UAAU,QAAQ,UAAU,GAAG,KAAK,IAAI;AAChD,QAAI,SAAU;AAEd,UAAM,UAAU;AAAA,MACd,OAAO;AAAA,QACL,CAAC,QAAQ,GAAG;AAAA,MACd;AAAA,IACF;AACA,WAAO,iBAAiB,6BAA6B;AAAA,MACnD,iBAAiB,MAAM;AAAA,IACzB,CAAC;AAAA,EACH,GAAG,CAAC,kBAAkB,IAAI,CAAC;AAC7B;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/model-context/useAssistantTool.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect } from \"react\";\nimport {\n useAssistantRuntime,\n useToolUIsStore,\n} from \"../context/react/AssistantContext\";\nimport type { ToolCallContentPartComponent } from \"../types/ContentPartComponentTypes\";\nimport type { Tool } from \"./ModelContextTypes\";\n\nexport type AssistantToolProps<TArgs, TResult> = Tool<TArgs, TResult> & {\n toolName: string;\n render?: ToolCallContentPartComponent<TArgs, TResult> | undefined;\n disabled?: boolean | undefined;\n};\n\nexport const useAssistantTool = <TArgs, TResult>(\n tool: AssistantToolProps<TArgs, TResult>,\n) => {\n const assistantRuntime = useAssistantRuntime();\n const toolUIsStore = useToolUIsStore();\n\n useEffect(() => {\n return tool.render\n ? toolUIsStore.getState().setToolUI(tool.toolName, tool.render)\n : undefined;\n }, [toolUIsStore, tool.toolName, tool.render]);\n\n useEffect(() => {\n const { toolName, render, disabled, ...rest } = tool;\n if (disabled) return;\n\n const context = {\n tools: {\n [toolName]: rest,\n },\n };\n return assistantRuntime.registerModelContextProvider({\n getModelContext: () => context,\n });\n }, [assistantRuntime, tool]);\n};\n"],"mappings":";;;AAEA,SAAS,iBAAiB;AAC1B;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAUA,IAAM,mBAAmB,CAC9B,SACG;AACH,QAAM,mBAAmB,oBAAoB;AAC7C,QAAM,eAAe,gBAAgB;AAErC,YAAU,MAAM;AACd,WAAO,KAAK,SACR,aAAa,SAAS,EAAE,UAAU,KAAK,UAAU,KAAK,MAAM,IAC5D;AAAA,EACN,GAAG,CAAC,cAAc,KAAK,UAAU,KAAK,MAAM,CAAC;AAE7C,YAAU,MAAM;AACd,UAAM,EAAE,UAAU,QAAQ,UAAU,GAAG,KAAK,IAAI;AAChD,QAAI,SAAU;AAEd,UAAM,UAAU;AAAA,MACd,OAAO;AAAA,QACL,CAAC,QAAQ,GAAG;AAAA,MACd;AAAA,IACF;AACA,WAAO,iBAAiB,6BAA6B;AAAA,MACnD,iBAAiB,MAAM;AAAA,IACzB,CAAC;AAAA,EACH,GAAG,CAAC,kBAAkB,IAAI,CAAC;AAC7B;","names":[]}
1
+ {"version":3,"sources":["../../src/model-context/useAssistantTool.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect } from \"react\";\nimport {\n useAssistantRuntime,\n useToolUIsStore,\n} from \"../context/react/AssistantContext\";\nimport type { ToolCallContentPartComponent } from \"../types/ContentPartComponentTypes\";\nimport type { Tool } from \"assistant-stream\";\n\nexport type AssistantToolProps<TArgs, TResult> = Tool<TArgs, TResult> & {\n toolName: string;\n render?: ToolCallContentPartComponent<TArgs, TResult> | undefined;\n disabled?: boolean | undefined;\n};\n\nexport const useAssistantTool = <TArgs, TResult>(\n tool: AssistantToolProps<TArgs, TResult>,\n) => {\n const assistantRuntime = useAssistantRuntime();\n const toolUIsStore = useToolUIsStore();\n\n useEffect(() => {\n return tool.render\n ? toolUIsStore.getState().setToolUI(tool.toolName, tool.render)\n : undefined;\n }, [toolUIsStore, tool.toolName, tool.render]);\n\n useEffect(() => {\n const { toolName, render, disabled, ...rest } = tool;\n if (disabled) return;\n\n const context = {\n tools: {\n [toolName]: rest,\n },\n };\n return assistantRuntime.registerModelContextProvider({\n getModelContext: () => context,\n });\n }, [assistantRuntime, tool]);\n};\n"],"mappings":";;;AAEA,SAAS,iBAAiB;AAC1B;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAUA,IAAM,mBAAmB,CAC9B,SACG;AACH,QAAM,mBAAmB,oBAAoB;AAC7C,QAAM,eAAe,gBAAgB;AAErC,YAAU,MAAM;AACd,WAAO,KAAK,SACR,aAAa,SAAS,EAAE,UAAU,KAAK,UAAU,KAAK,MAAM,IAC5D;AAAA,EACN,GAAG,CAAC,cAAc,KAAK,UAAU,KAAK,MAAM,CAAC;AAE7C,YAAU,MAAM;AACd,UAAM,EAAE,UAAU,QAAQ,UAAU,GAAG,KAAK,IAAI;AAChD,QAAI,SAAU;AAEd,UAAM,UAAU;AAAA,MACd,OAAO;AAAA,QACL,CAAC,QAAQ,GAAG;AAAA,MACd;AAAA,IACF;AACA,WAAO,iBAAiB,6BAA6B;AAAA,MACnD,iBAAiB,MAAM;AAAA,IACzB,CAAC;AAAA,EACH,GAAG,CAAC,kBAAkB,IAAI,CAAC;AAC7B;","names":[]}
@@ -3,6 +3,5 @@ export * from "./core";
3
3
  export * from "./external-store";
4
4
  export * from "./local";
5
5
  export * from "./remote-thread-list";
6
- export { toolResultStream as unstable_toolResultStream, unstable_runPendingTools, } from "./streams/toolResultStream";
7
6
  export { ExportedMessageRepository } from "./utils/MessageRepository";
8
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtimes/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC;AACxB,cAAc,sBAAsB,CAAC;AAErC,OAAO,EACL,gBAAgB,IAAI,yBAAyB,EAC7C,wBAAwB,GACzB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtimes/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC;AACxB,cAAc,sBAAsB,CAAC;AAErC,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -21,9 +21,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
21
21
  // src/runtimes/index.ts
22
22
  var runtimes_exports = {};
23
23
  __export(runtimes_exports, {
24
- ExportedMessageRepository: () => import_MessageRepository.ExportedMessageRepository,
25
- unstable_runPendingTools: () => import_toolResultStream.unstable_runPendingTools,
26
- unstable_toolResultStream: () => import_toolResultStream.toolResultStream
24
+ ExportedMessageRepository: () => import_MessageRepository.ExportedMessageRepository
27
25
  });
28
26
  module.exports = __toCommonJS(runtimes_exports);
29
27
  __reExport(runtimes_exports, require("./adapters/index.js"), module.exports);
@@ -31,13 +29,10 @@ __reExport(runtimes_exports, require("./core/index.js"), module.exports);
31
29
  __reExport(runtimes_exports, require("./external-store/index.js"), module.exports);
32
30
  __reExport(runtimes_exports, require("./local/index.js"), module.exports);
33
31
  __reExport(runtimes_exports, require("./remote-thread-list/index.js"), module.exports);
34
- var import_toolResultStream = require("./streams/toolResultStream.js");
35
32
  var import_MessageRepository = require("./utils/MessageRepository.js");
36
33
  // Annotate the CommonJS export names for ESM import in node:
37
34
  0 && (module.exports = {
38
35
  ExportedMessageRepository,
39
- unstable_runPendingTools,
40
- unstable_toolResultStream,
41
36
  ...require("./adapters/index.js"),
42
37
  ...require("./core/index.js"),
43
38
  ...require("./external-store/index.js"),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/runtimes/index.ts"],"sourcesContent":["export * from \"./adapters\";\nexport * from \"./core\";\nexport * from \"./external-store\";\nexport * from \"./local\";\nexport * from \"./remote-thread-list\";\n\nexport {\n toolResultStream as unstable_toolResultStream,\n unstable_runPendingTools,\n} from \"./streams/toolResultStream\";\nexport { ExportedMessageRepository } from \"./utils/MessageRepository\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,6BAAc,gCAAd;AACA,6BAAc,4BADd;AAEA,6BAAc,sCAFd;AAGA,6BAAc,6BAHd;AAIA,6BAAc,0CAJd;AAMA,8BAGO;AACP,+BAA0C;","names":[]}
1
+ {"version":3,"sources":["../../src/runtimes/index.ts"],"sourcesContent":["export * from \"./adapters\";\nexport * from \"./core\";\nexport * from \"./external-store\";\nexport * from \"./local\";\nexport * from \"./remote-thread-list\";\n\nexport { ExportedMessageRepository } from \"./utils/MessageRepository\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,6BAAc,gCAAd;AACA,6BAAc,4BADd;AAEA,6BAAc,sCAFd;AAGA,6BAAc,6BAHd;AAIA,6BAAc,0CAJd;AAMA,+BAA0C;","names":[]}
@@ -4,14 +4,8 @@ export * from "./core/index.mjs";
4
4
  export * from "./external-store/index.mjs";
5
5
  export * from "./local/index.mjs";
6
6
  export * from "./remote-thread-list/index.mjs";
7
- import {
8
- toolResultStream,
9
- unstable_runPendingTools
10
- } from "./streams/toolResultStream.mjs";
11
7
  import { ExportedMessageRepository } from "./utils/MessageRepository.mjs";
12
8
  export {
13
- ExportedMessageRepository,
14
- unstable_runPendingTools,
15
- toolResultStream as unstable_toolResultStream
9
+ ExportedMessageRepository
16
10
  };
17
11
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/runtimes/index.ts"],"sourcesContent":["export * from \"./adapters\";\nexport * from \"./core\";\nexport * from \"./external-store\";\nexport * from \"./local\";\nexport * from \"./remote-thread-list\";\n\nexport {\n toolResultStream as unstable_toolResultStream,\n unstable_runPendingTools,\n} from \"./streams/toolResultStream\";\nexport { ExportedMessageRepository } from \"./utils/MessageRepository\";\n"],"mappings":";AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AAEd;AAAA,EACsB;AAAA,EACpB;AAAA,OACK;AACP,SAAS,iCAAiC;","names":[]}
1
+ {"version":3,"sources":["../../src/runtimes/index.ts"],"sourcesContent":["export * from \"./adapters\";\nexport * from \"./core\";\nexport * from \"./external-store\";\nexport * from \"./local\";\nexport * from \"./remote-thread-list\";\n\nexport { ExportedMessageRepository } from \"./utils/MessageRepository\";\n"],"mappings":";AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AAEd,SAAS,iCAAiC;","names":[]}
package/package.json CHANGED
@@ -28,7 +28,7 @@
28
28
  "conversational-ui",
29
29
  "conversational-ai"
30
30
  ],
31
- "version": "0.9.2",
31
+ "version": "0.9.3",
32
32
  "license": "MIT",
33
33
  "exports": {
34
34
  ".": {
@@ -62,10 +62,10 @@
62
62
  "@radix-ui/react-slot": "^1.2.0",
63
63
  "@radix-ui/react-use-callback-ref": "^1.1.1",
64
64
  "@radix-ui/react-use-escape-keydown": "^1.1.1",
65
- "assistant-stream": "^0.1.2",
65
+ "assistant-stream": "^0.1.3",
66
66
  "nanoid": "5.1.5",
67
67
  "react-textarea-autosize": "^8.5.9",
68
- "zod": "^3.24.2",
68
+ "zod": "^3.24.3",
69
69
  "zustand": "^5.0.3"
70
70
  },
71
71
  "peerDependencies": {
@@ -88,7 +88,7 @@
88
88
  "@types/json-schema": "^7.0.15",
89
89
  "@types/node": "^22.14.1",
90
90
  "eslint": "^9",
91
- "eslint-config-next": "15.3.0",
91
+ "eslint-config-next": "15.3.1",
92
92
  "tsx": "^4.19.3",
93
93
  "vitest": "^3.1.1",
94
94
  "@assistant-ui/tsbuildutils": "0.0.1",
@@ -1,7 +1,6 @@
1
1
  import { z } from "zod";
2
- import type { JSONSchema7 } from "json-schema";
3
2
  import { Unsubscribe } from "../types/Unsubscribe";
4
- import { TypePath, TypeAtPath, DeepPartial } from "./type-path-utils";
3
+ import { Tool } from "assistant-stream";
5
4
 
6
5
  export const LanguageModelV1CallSettingsSchema = z.object({
7
6
  maxTokens: z.number().int().positive().optional(),
@@ -25,56 +24,6 @@ export const LanguageModelConfigSchema = z.object({
25
24
 
26
25
  export type LanguageModelConfig = z.infer<typeof LanguageModelConfigSchema>;
27
26
 
28
- type ToolExecutionContext = {
29
- toolCallId: string;
30
- abortSignal: AbortSignal;
31
- };
32
-
33
- type ReadableStreamIterator<T> = ReadableStream<T> &
34
- AsyncGenerator<T, void, unknown>;
35
-
36
- interface ToolCallReader<TArgs> {
37
- get<PathT extends TypePath<TArgs>>(
38
- ...fieldPath: PathT
39
- ): Promise<TypeAtPath<TArgs, PathT>>;
40
-
41
- stream<PathT extends TypePath<TArgs>>(
42
- ...fieldPath: PathT
43
- ): ReadableStreamIterator<DeepPartial<TypeAtPath<TArgs, PathT>>>;
44
-
45
- forEach<PathT extends TypePath<TArgs>>(
46
- ...fieldPath: PathT
47
- ): TypeAtPath<TArgs, PathT> extends Array<infer U>
48
- ? ReadableStreamIterator<U>
49
- : never;
50
- }
51
-
52
- export type ToolExecuteFunction<TArgs, TResult> = (
53
- args: TArgs,
54
- context: ToolExecutionContext,
55
- ) => TResult | Promise<TResult>;
56
-
57
- export type ToolStreamCallFunction<TArgs, TResult> = (
58
- controller: ToolCallReader<TArgs>,
59
- context: ToolExecutionContext,
60
- ) => TResult | Promise<TResult>;
61
-
62
- type OnSchemaValidationErrorFunction<TResult> = ToolExecuteFunction<
63
- unknown,
64
- TResult
65
- >;
66
-
67
- export type Tool<TArgs = unknown, TResult = unknown> = {
68
- description?: string | undefined;
69
- parameters: z.ZodSchema<TArgs> | JSONSchema7;
70
- execute?: ToolExecuteFunction<TArgs, TResult>;
71
- /**
72
- * @deprecated TODO not yet implemented
73
- */
74
- experimental_streamCall?: ToolStreamCallFunction<TArgs, TResult>;
75
- experimental_onSchemaValidationError?: OnSchemaValidationErrorFunction<TResult>;
76
- };
77
-
78
27
  export type ModelContext = {
79
28
  priority?: number | undefined;
80
29
  system?: string | undefined;
@@ -22,9 +22,10 @@ export type {
22
22
  ModelContextProvider as AssistantConfigProvider,
23
23
  ModelContext,
24
24
  ModelContextProvider,
25
- Tool,
26
25
  } from "./ModelContextTypes";
27
26
 
27
+ export type { Tool } from "assistant-stream";
28
+
28
29
  export { tool } from "./tool";
29
30
 
30
31
  /**
@@ -1,5 +1,5 @@
1
1
  import { Schema, z } from "zod";
2
- import { Tool } from "./ModelContextTypes";
2
+ import { Tool } from "assistant-stream";
3
3
 
4
4
  export type inferParameters<PARAMETERS extends Tool<any, any>["parameters"]> =
5
5
  PARAMETERS extends Schema<any>
@@ -6,7 +6,7 @@ import {
6
6
  useToolUIsStore,
7
7
  } from "../context/react/AssistantContext";
8
8
  import type { ToolCallContentPartComponent } from "../types/ContentPartComponentTypes";
9
- import type { Tool } from "./ModelContextTypes";
9
+ import type { Tool } from "assistant-stream";
10
10
 
11
11
  export type AssistantToolProps<TArgs, TResult> = Tool<TArgs, TResult> & {
12
12
  toolName: string;
@@ -4,8 +4,4 @@ export * from "./external-store";
4
4
  export * from "./local";
5
5
  export * from "./remote-thread-list";
6
6
 
7
- export {
8
- toolResultStream as unstable_toolResultStream,
9
- unstable_runPendingTools,
10
- } from "./streams/toolResultStream";
11
7
  export { ExportedMessageRepository } from "./utils/MessageRepository";
@@ -1,19 +0,0 @@
1
- type AsNumber<K> = K extends `${infer N extends number}` ? N | K : K;
2
- type TupleIndex<T extends readonly any[]> = Exclude<keyof T, keyof any[]>;
3
- type IsTuple<T extends readonly any[]> = number extends T["length"] ? false : true;
4
- export type TypePath<T> = [] | (T extends object ? T extends readonly any[] ? IsTuple<T> extends true ? {
5
- [K in TupleIndex<T>]: [AsNumber<K>, ...TypePath<T[K]>];
6
- }[TupleIndex<T>] : [number, ...TypePath<T[number]>] : {
7
- [K in keyof T]: [K, ...TypePath<T[K]>];
8
- }[keyof T] : []);
9
- export type TypeAtPath<T, P extends readonly any[]> = P extends [
10
- infer Head,
11
- ...infer Rest
12
- ] ? Head extends keyof T ? TypeAtPath<T[Head], Rest> : never : T;
13
- export type DeepPartial<T> = T extends readonly any[] ? readonly DeepPartial<T[number]>[] : T extends {
14
- [key: string]: any;
15
- } ? {
16
- readonly [K in keyof T]?: DeepPartial<T[K]>;
17
- } : T;
18
- export {};
19
- //# sourceMappingURL=type-path-utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"type-path-utils.d.ts","sourceRoot":"","sources":["../../src/model-context/type-path-utils.ts"],"names":[],"mappings":"AAAA,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACrE,KAAK,UAAU,CAAC,CAAC,SAAS,SAAS,GAAG,EAAE,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC;AAC1E,KAAK,OAAO,CAAC,CAAC,SAAS,SAAS,GAAG,EAAE,IAAI,MAAM,SAAS,CAAC,CAAC,QAAQ,CAAC,GAC/D,KAAK,GACL,IAAI,CAAC;AAET,MAAM,MAAM,QAAQ,CAAC,CAAC,IAClB,EAAE,GACF,CAAC,CAAC,SAAS,MAAM,GACb,CAAC,SAAS,SAAS,GAAG,EAAE,GACtB,OAAO,CAAC,CAAC,CAAC,SAAS,IAAI,GACrB;KACG,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACvD,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAChB,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAClC;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC,MAAM,CAAC,CAAC,GACrD,EAAE,CAAC,CAAC;AAEZ,MAAM,MAAM,UAAU,CAAC,CAAC,EAAE,CAAC,SAAS,SAAS,GAAG,EAAE,IAAI,CAAC,SAAS;IAC9D,MAAM,IAAI;IACV,GAAG,MAAM,IAAI;CACd,GACG,IAAI,SAAS,MAAM,CAAC,GAClB,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,GACzB,KAAK,GACP,CAAC,CAAC;AAEN,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,EAAE,GACjD,SAAS,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,GACjC,CAAC,SAAS;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,GAC9B;IAAE,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GAC/C,CAAC,CAAC"}
@@ -1,19 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __copyProps = (to, from, except, desc) => {
7
- if (from && typeof from === "object" || typeof from === "function") {
8
- for (let key of __getOwnPropNames(from))
9
- if (!__hasOwnProp.call(to, key) && key !== except)
10
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
- }
12
- return to;
13
- };
14
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
-
16
- // src/model-context/type-path-utils.ts
17
- var type_path_utils_exports = {};
18
- module.exports = __toCommonJS(type_path_utils_exports);
19
- //# sourceMappingURL=type-path-utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/model-context/type-path-utils.ts"],"sourcesContent":["type AsNumber<K> = K extends `${infer N extends number}` ? N | K : K;\ntype TupleIndex<T extends readonly any[]> = Exclude<keyof T, keyof any[]>;\ntype IsTuple<T extends readonly any[]> = number extends T[\"length\"]\n ? false\n : true;\n\nexport type TypePath<T> =\n | []\n | (T extends object\n ? T extends readonly any[]\n ? IsTuple<T> extends true\n ? {\n [K in TupleIndex<T>]: [AsNumber<K>, ...TypePath<T[K]>];\n }[TupleIndex<T>]\n : [number, ...TypePath<T[number]>]\n : { [K in keyof T]: [K, ...TypePath<T[K]>] }[keyof T]\n : []);\n\nexport type TypeAtPath<T, P extends readonly any[]> = P extends [\n infer Head,\n ...infer Rest,\n]\n ? Head extends keyof T\n ? TypeAtPath<T[Head], Rest>\n : never\n : T;\n\nexport type DeepPartial<T> = T extends readonly any[]\n ? readonly DeepPartial<T[number]>[]\n : T extends { [key: string]: any }\n ? { readonly [K in keyof T]?: DeepPartial<T[K]> }\n : T;\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
@@ -1 +0,0 @@
1
- //# sourceMappingURL=type-path-utils.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,5 +0,0 @@
1
- import { Tool } from "../../model-context/ModelContextTypes";
2
- import { AssistantMessage, ToolExecutionStream } from "assistant-stream";
3
- export declare function unstable_runPendingTools(message: AssistantMessage, tools: Record<string, Tool<any, any>> | undefined, abortSignal: AbortSignal): Promise<AssistantMessage>;
4
- export declare function toolResultStream(tools: Record<string, Tool<any, any>> | undefined, abortSignal: AbortSignal): ToolExecutionStream;
5
- //# sourceMappingURL=toolResultStream.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"toolResultStream.d.ts","sourceRoot":"","sources":["../../../src/runtimes/streams/toolResultStream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,uCAAuC,CAAC;AAE7D,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AA4CzE,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,SAAS,EACjD,WAAW,EAAE,WAAW,6BA6BzB;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,SAAS,EACjD,WAAW,EAAE,WAAW,uBAKzB"}
@@ -1,94 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/runtimes/streams/toolResultStream.ts
21
- var toolResultStream_exports = {};
22
- __export(toolResultStream_exports, {
23
- toolResultStream: () => toolResultStream,
24
- unstable_runPendingTools: () => unstable_runPendingTools
25
- });
26
- module.exports = __toCommonJS(toolResultStream_exports);
27
- var import_zod = require("zod");
28
- var import_assistant_stream = require("assistant-stream");
29
- var import_assistant_stream2 = require("assistant-stream");
30
- function getToolResponse(tools, abortSignal, toolCall) {
31
- const tool = tools?.[toolCall.toolName];
32
- if (!tool || !tool.execute) return void 0;
33
- let executeFn = tool.execute;
34
- if (tool.parameters instanceof import_zod.z.ZodType) {
35
- const result = tool.parameters.safeParse(toolCall.args);
36
- if (!result.success) {
37
- executeFn = tool.experimental_onSchemaValidationError ?? (() => {
38
- throw new Error(
39
- `Function parameter validation failed. ${JSON.stringify(result.error.issues)}`
40
- );
41
- });
42
- }
43
- }
44
- const getResult = async () => {
45
- const result = await executeFn(toolCall.args, {
46
- toolCallId: toolCall.toolCallId,
47
- abortSignal
48
- });
49
- if (result instanceof import_assistant_stream2.ToolResponse) return result;
50
- return new import_assistant_stream2.ToolResponse({
51
- result: result === void 0 ? "<no result>" : result
52
- });
53
- };
54
- return getResult();
55
- }
56
- async function unstable_runPendingTools(message, tools, abortSignal) {
57
- for (const part of message.parts) {
58
- if (part.type === "tool-call") {
59
- const promiseOrUndefined = getToolResponse(tools, abortSignal, part);
60
- if (promiseOrUndefined) {
61
- const result = await promiseOrUndefined;
62
- const updatedParts = message.parts.map((p) => {
63
- if (p.type === "tool-call" && p.toolCallId === part.toolCallId) {
64
- return {
65
- ...p,
66
- state: "result",
67
- artifact: result.artifact,
68
- result: result.result,
69
- isError: result.isError
70
- };
71
- }
72
- return p;
73
- });
74
- message = {
75
- ...message,
76
- parts: updatedParts,
77
- content: updatedParts
78
- };
79
- }
80
- }
81
- }
82
- return message;
83
- }
84
- function toolResultStream(tools, abortSignal) {
85
- return new import_assistant_stream.ToolExecutionStream(
86
- (toolCall) => getToolResponse(tools, abortSignal, toolCall)
87
- );
88
- }
89
- // Annotate the CommonJS export names for ESM import in node:
90
- 0 && (module.exports = {
91
- toolResultStream,
92
- unstable_runPendingTools
93
- });
94
- //# sourceMappingURL=toolResultStream.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/runtimes/streams/toolResultStream.ts"],"sourcesContent":["import { Tool } from \"../../model-context/ModelContextTypes\";\nimport { z } from \"zod\";\nimport { AssistantMessage, ToolExecutionStream } from \"assistant-stream\";\nimport { ToolResponse } from \"assistant-stream\";\n\nfunction getToolResponse(\n tools: Record<string, Tool<any, any>> | undefined,\n abortSignal: AbortSignal,\n toolCall: {\n toolCallId: string;\n toolName: string;\n args: unknown;\n },\n) {\n const tool = tools?.[toolCall.toolName];\n if (!tool || !tool.execute) return undefined;\n\n let executeFn = tool.execute;\n\n if (tool.parameters instanceof z.ZodType) {\n const result = tool.parameters.safeParse(toolCall.args);\n if (!result.success) {\n executeFn =\n tool.experimental_onSchemaValidationError ??\n (() => {\n throw new Error(\n `Function parameter validation failed. ${JSON.stringify(result.error.issues)}`,\n );\n });\n }\n }\n\n const getResult = async () => {\n const result = await executeFn(toolCall.args, {\n toolCallId: toolCall.toolCallId,\n abortSignal,\n });\n if (result instanceof ToolResponse) return result;\n return new ToolResponse({\n result: result === undefined ? \"<no result>\" : result,\n });\n };\n\n return getResult();\n}\n\nexport async function unstable_runPendingTools(\n message: AssistantMessage,\n tools: Record<string, Tool<any, any>> | undefined,\n abortSignal: AbortSignal,\n) {\n // TODO parallel tool calling\n for (const part of message.parts) {\n if (part.type === \"tool-call\") {\n const promiseOrUndefined = getToolResponse(tools, abortSignal, part);\n if (promiseOrUndefined) {\n const result = await promiseOrUndefined;\n const updatedParts = message.parts.map((p) => {\n if (p.type === \"tool-call\" && p.toolCallId === part.toolCallId) {\n return {\n ...p,\n state: \"result\" as const,\n artifact: result.artifact,\n result: result.result,\n isError: result.isError,\n };\n }\n return p;\n });\n message = {\n ...message,\n parts: updatedParts,\n content: updatedParts,\n };\n }\n }\n }\n return message;\n}\n\nexport function toolResultStream(\n tools: Record<string, Tool<any, any>> | undefined,\n abortSignal: AbortSignal,\n) {\n return new ToolExecutionStream((toolCall) =>\n getToolResponse(tools, abortSignal, toolCall),\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,iBAAkB;AAClB,8BAAsD;AACtD,IAAAA,2BAA6B;AAE7B,SAAS,gBACP,OACA,aACA,UAKA;AACA,QAAM,OAAO,QAAQ,SAAS,QAAQ;AACtC,MAAI,CAAC,QAAQ,CAAC,KAAK,QAAS,QAAO;AAEnC,MAAI,YAAY,KAAK;AAErB,MAAI,KAAK,sBAAsB,aAAE,SAAS;AACxC,UAAM,SAAS,KAAK,WAAW,UAAU,SAAS,IAAI;AACtD,QAAI,CAAC,OAAO,SAAS;AACnB,kBACE,KAAK,yCACJ,MAAM;AACL,cAAM,IAAI;AAAA,UACR,yCAAyC,KAAK,UAAU,OAAO,MAAM,MAAM,CAAC;AAAA,QAC9E;AAAA,MACF;AAAA,IACJ;AAAA,EACF;AAEA,QAAM,YAAY,YAAY;AAC5B,UAAM,SAAS,MAAM,UAAU,SAAS,MAAM;AAAA,MAC5C,YAAY,SAAS;AAAA,MACrB;AAAA,IACF,CAAC;AACD,QAAI,kBAAkB,sCAAc,QAAO;AAC3C,WAAO,IAAI,sCAAa;AAAA,MACtB,QAAQ,WAAW,SAAY,gBAAgB;AAAA,IACjD,CAAC;AAAA,EACH;AAEA,SAAO,UAAU;AACnB;AAEA,eAAsB,yBACpB,SACA,OACA,aACA;AAEA,aAAW,QAAQ,QAAQ,OAAO;AAChC,QAAI,KAAK,SAAS,aAAa;AAC7B,YAAM,qBAAqB,gBAAgB,OAAO,aAAa,IAAI;AACnE,UAAI,oBAAoB;AACtB,cAAM,SAAS,MAAM;AACrB,cAAM,eAAe,QAAQ,MAAM,IAAI,CAAC,MAAM;AAC5C,cAAI,EAAE,SAAS,eAAe,EAAE,eAAe,KAAK,YAAY;AAC9D,mBAAO;AAAA,cACL,GAAG;AAAA,cACH,OAAO;AAAA,cACP,UAAU,OAAO;AAAA,cACjB,QAAQ,OAAO;AAAA,cACf,SAAS,OAAO;AAAA,YAClB;AAAA,UACF;AACA,iBAAO;AAAA,QACT,CAAC;AACD,kBAAU;AAAA,UACR,GAAG;AAAA,UACH,OAAO;AAAA,UACP,SAAS;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;AAEO,SAAS,iBACd,OACA,aACA;AACA,SAAO,IAAI;AAAA,IAAoB,CAAC,aAC9B,gBAAgB,OAAO,aAAa,QAAQ;AAAA,EAC9C;AACF;","names":["import_assistant_stream"]}
@@ -1,68 +0,0 @@
1
- // src/runtimes/streams/toolResultStream.ts
2
- import { z } from "zod";
3
- import { ToolExecutionStream } from "assistant-stream";
4
- import { ToolResponse } from "assistant-stream";
5
- function getToolResponse(tools, abortSignal, toolCall) {
6
- const tool = tools?.[toolCall.toolName];
7
- if (!tool || !tool.execute) return void 0;
8
- let executeFn = tool.execute;
9
- if (tool.parameters instanceof z.ZodType) {
10
- const result = tool.parameters.safeParse(toolCall.args);
11
- if (!result.success) {
12
- executeFn = tool.experimental_onSchemaValidationError ?? (() => {
13
- throw new Error(
14
- `Function parameter validation failed. ${JSON.stringify(result.error.issues)}`
15
- );
16
- });
17
- }
18
- }
19
- const getResult = async () => {
20
- const result = await executeFn(toolCall.args, {
21
- toolCallId: toolCall.toolCallId,
22
- abortSignal
23
- });
24
- if (result instanceof ToolResponse) return result;
25
- return new ToolResponse({
26
- result: result === void 0 ? "<no result>" : result
27
- });
28
- };
29
- return getResult();
30
- }
31
- async function unstable_runPendingTools(message, tools, abortSignal) {
32
- for (const part of message.parts) {
33
- if (part.type === "tool-call") {
34
- const promiseOrUndefined = getToolResponse(tools, abortSignal, part);
35
- if (promiseOrUndefined) {
36
- const result = await promiseOrUndefined;
37
- const updatedParts = message.parts.map((p) => {
38
- if (p.type === "tool-call" && p.toolCallId === part.toolCallId) {
39
- return {
40
- ...p,
41
- state: "result",
42
- artifact: result.artifact,
43
- result: result.result,
44
- isError: result.isError
45
- };
46
- }
47
- return p;
48
- });
49
- message = {
50
- ...message,
51
- parts: updatedParts,
52
- content: updatedParts
53
- };
54
- }
55
- }
56
- }
57
- return message;
58
- }
59
- function toolResultStream(tools, abortSignal) {
60
- return new ToolExecutionStream(
61
- (toolCall) => getToolResponse(tools, abortSignal, toolCall)
62
- );
63
- }
64
- export {
65
- toolResultStream,
66
- unstable_runPendingTools
67
- };
68
- //# sourceMappingURL=toolResultStream.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/runtimes/streams/toolResultStream.ts"],"sourcesContent":["import { Tool } from \"../../model-context/ModelContextTypes\";\nimport { z } from \"zod\";\nimport { AssistantMessage, ToolExecutionStream } from \"assistant-stream\";\nimport { ToolResponse } from \"assistant-stream\";\n\nfunction getToolResponse(\n tools: Record<string, Tool<any, any>> | undefined,\n abortSignal: AbortSignal,\n toolCall: {\n toolCallId: string;\n toolName: string;\n args: unknown;\n },\n) {\n const tool = tools?.[toolCall.toolName];\n if (!tool || !tool.execute) return undefined;\n\n let executeFn = tool.execute;\n\n if (tool.parameters instanceof z.ZodType) {\n const result = tool.parameters.safeParse(toolCall.args);\n if (!result.success) {\n executeFn =\n tool.experimental_onSchemaValidationError ??\n (() => {\n throw new Error(\n `Function parameter validation failed. ${JSON.stringify(result.error.issues)}`,\n );\n });\n }\n }\n\n const getResult = async () => {\n const result = await executeFn(toolCall.args, {\n toolCallId: toolCall.toolCallId,\n abortSignal,\n });\n if (result instanceof ToolResponse) return result;\n return new ToolResponse({\n result: result === undefined ? \"<no result>\" : result,\n });\n };\n\n return getResult();\n}\n\nexport async function unstable_runPendingTools(\n message: AssistantMessage,\n tools: Record<string, Tool<any, any>> | undefined,\n abortSignal: AbortSignal,\n) {\n // TODO parallel tool calling\n for (const part of message.parts) {\n if (part.type === \"tool-call\") {\n const promiseOrUndefined = getToolResponse(tools, abortSignal, part);\n if (promiseOrUndefined) {\n const result = await promiseOrUndefined;\n const updatedParts = message.parts.map((p) => {\n if (p.type === \"tool-call\" && p.toolCallId === part.toolCallId) {\n return {\n ...p,\n state: \"result\" as const,\n artifact: result.artifact,\n result: result.result,\n isError: result.isError,\n };\n }\n return p;\n });\n message = {\n ...message,\n parts: updatedParts,\n content: updatedParts,\n };\n }\n }\n }\n return message;\n}\n\nexport function toolResultStream(\n tools: Record<string, Tool<any, any>> | undefined,\n abortSignal: AbortSignal,\n) {\n return new ToolExecutionStream((toolCall) =>\n getToolResponse(tools, abortSignal, toolCall),\n );\n}\n"],"mappings":";AACA,SAAS,SAAS;AAClB,SAA2B,2BAA2B;AACtD,SAAS,oBAAoB;AAE7B,SAAS,gBACP,OACA,aACA,UAKA;AACA,QAAM,OAAO,QAAQ,SAAS,QAAQ;AACtC,MAAI,CAAC,QAAQ,CAAC,KAAK,QAAS,QAAO;AAEnC,MAAI,YAAY,KAAK;AAErB,MAAI,KAAK,sBAAsB,EAAE,SAAS;AACxC,UAAM,SAAS,KAAK,WAAW,UAAU,SAAS,IAAI;AACtD,QAAI,CAAC,OAAO,SAAS;AACnB,kBACE,KAAK,yCACJ,MAAM;AACL,cAAM,IAAI;AAAA,UACR,yCAAyC,KAAK,UAAU,OAAO,MAAM,MAAM,CAAC;AAAA,QAC9E;AAAA,MACF;AAAA,IACJ;AAAA,EACF;AAEA,QAAM,YAAY,YAAY;AAC5B,UAAM,SAAS,MAAM,UAAU,SAAS,MAAM;AAAA,MAC5C,YAAY,SAAS;AAAA,MACrB;AAAA,IACF,CAAC;AACD,QAAI,kBAAkB,aAAc,QAAO;AAC3C,WAAO,IAAI,aAAa;AAAA,MACtB,QAAQ,WAAW,SAAY,gBAAgB;AAAA,IACjD,CAAC;AAAA,EACH;AAEA,SAAO,UAAU;AACnB;AAEA,eAAsB,yBACpB,SACA,OACA,aACA;AAEA,aAAW,QAAQ,QAAQ,OAAO;AAChC,QAAI,KAAK,SAAS,aAAa;AAC7B,YAAM,qBAAqB,gBAAgB,OAAO,aAAa,IAAI;AACnE,UAAI,oBAAoB;AACtB,cAAM,SAAS,MAAM;AACrB,cAAM,eAAe,QAAQ,MAAM,IAAI,CAAC,MAAM;AAC5C,cAAI,EAAE,SAAS,eAAe,EAAE,eAAe,KAAK,YAAY;AAC9D,mBAAO;AAAA,cACL,GAAG;AAAA,cACH,OAAO;AAAA,cACP,UAAU,OAAO;AAAA,cACjB,QAAQ,OAAO;AAAA,cACf,SAAS,OAAO;AAAA,YAClB;AAAA,UACF;AACA,iBAAO;AAAA,QACT,CAAC;AACD,kBAAU;AAAA,UACR,GAAG;AAAA,UACH,OAAO;AAAA,UACP,SAAS;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;AAEO,SAAS,iBACd,OACA,aACA;AACA,SAAO,IAAI;AAAA,IAAoB,CAAC,aAC9B,gBAAgB,OAAO,aAAa,QAAQ;AAAA,EAC9C;AACF;","names":[]}
@@ -1,32 +0,0 @@
1
- type AsNumber<K> = K extends `${infer N extends number}` ? N | K : K;
2
- type TupleIndex<T extends readonly any[]> = Exclude<keyof T, keyof any[]>;
3
- type IsTuple<T extends readonly any[]> = number extends T["length"]
4
- ? false
5
- : true;
6
-
7
- export type TypePath<T> =
8
- | []
9
- | (T extends object
10
- ? T extends readonly any[]
11
- ? IsTuple<T> extends true
12
- ? {
13
- [K in TupleIndex<T>]: [AsNumber<K>, ...TypePath<T[K]>];
14
- }[TupleIndex<T>]
15
- : [number, ...TypePath<T[number]>]
16
- : { [K in keyof T]: [K, ...TypePath<T[K]>] }[keyof T]
17
- : []);
18
-
19
- export type TypeAtPath<T, P extends readonly any[]> = P extends [
20
- infer Head,
21
- ...infer Rest,
22
- ]
23
- ? Head extends keyof T
24
- ? TypeAtPath<T[Head], Rest>
25
- : never
26
- : T;
27
-
28
- export type DeepPartial<T> = T extends readonly any[]
29
- ? readonly DeepPartial<T[number]>[]
30
- : T extends { [key: string]: any }
31
- ? { readonly [K in keyof T]?: DeepPartial<T[K]> }
32
- : T;
@@ -1,88 +0,0 @@
1
- import { Tool } from "../../model-context/ModelContextTypes";
2
- import { z } from "zod";
3
- import { AssistantMessage, ToolExecutionStream } from "assistant-stream";
4
- import { ToolResponse } from "assistant-stream";
5
-
6
- function getToolResponse(
7
- tools: Record<string, Tool<any, any>> | undefined,
8
- abortSignal: AbortSignal,
9
- toolCall: {
10
- toolCallId: string;
11
- toolName: string;
12
- args: unknown;
13
- },
14
- ) {
15
- const tool = tools?.[toolCall.toolName];
16
- if (!tool || !tool.execute) return undefined;
17
-
18
- let executeFn = tool.execute;
19
-
20
- if (tool.parameters instanceof z.ZodType) {
21
- const result = tool.parameters.safeParse(toolCall.args);
22
- if (!result.success) {
23
- executeFn =
24
- tool.experimental_onSchemaValidationError ??
25
- (() => {
26
- throw new Error(
27
- `Function parameter validation failed. ${JSON.stringify(result.error.issues)}`,
28
- );
29
- });
30
- }
31
- }
32
-
33
- const getResult = async () => {
34
- const result = await executeFn(toolCall.args, {
35
- toolCallId: toolCall.toolCallId,
36
- abortSignal,
37
- });
38
- if (result instanceof ToolResponse) return result;
39
- return new ToolResponse({
40
- result: result === undefined ? "<no result>" : result,
41
- });
42
- };
43
-
44
- return getResult();
45
- }
46
-
47
- export async function unstable_runPendingTools(
48
- message: AssistantMessage,
49
- tools: Record<string, Tool<any, any>> | undefined,
50
- abortSignal: AbortSignal,
51
- ) {
52
- // TODO parallel tool calling
53
- for (const part of message.parts) {
54
- if (part.type === "tool-call") {
55
- const promiseOrUndefined = getToolResponse(tools, abortSignal, part);
56
- if (promiseOrUndefined) {
57
- const result = await promiseOrUndefined;
58
- const updatedParts = message.parts.map((p) => {
59
- if (p.type === "tool-call" && p.toolCallId === part.toolCallId) {
60
- return {
61
- ...p,
62
- state: "result" as const,
63
- artifact: result.artifact,
64
- result: result.result,
65
- isError: result.isError,
66
- };
67
- }
68
- return p;
69
- });
70
- message = {
71
- ...message,
72
- parts: updatedParts,
73
- content: updatedParts,
74
- };
75
- }
76
- }
77
- }
78
- return message;
79
- }
80
-
81
- export function toolResultStream(
82
- tools: Record<string, Tool<any, any>> | undefined,
83
- abortSignal: AbortSignal,
84
- ) {
85
- return new ToolExecutionStream((toolCall) =>
86
- getToolResponse(tools, abortSignal, toolCall),
87
- );
88
- }