ai-functions 0.2.19 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (227) hide show
  1. package/.turbo/turbo-build.log +5 -0
  2. package/.turbo/turbo-test.log +105 -0
  3. package/README.md +232 -37
  4. package/TODO.md +138 -0
  5. package/dist/ai-promise.d.ts +219 -0
  6. package/dist/ai-promise.d.ts.map +1 -0
  7. package/dist/ai-promise.js +610 -0
  8. package/dist/ai-promise.js.map +1 -0
  9. package/dist/ai.d.ts +285 -0
  10. package/dist/ai.d.ts.map +1 -0
  11. package/dist/ai.js +842 -0
  12. package/dist/ai.js.map +1 -0
  13. package/dist/batch/anthropic.d.ts +23 -0
  14. package/dist/batch/anthropic.d.ts.map +1 -0
  15. package/dist/batch/anthropic.js +257 -0
  16. package/dist/batch/anthropic.js.map +1 -0
  17. package/dist/batch/bedrock.d.ts +64 -0
  18. package/dist/batch/bedrock.d.ts.map +1 -0
  19. package/dist/batch/bedrock.js +586 -0
  20. package/dist/batch/bedrock.js.map +1 -0
  21. package/dist/batch/cloudflare.d.ts +37 -0
  22. package/dist/batch/cloudflare.d.ts.map +1 -0
  23. package/dist/batch/cloudflare.js +289 -0
  24. package/dist/batch/cloudflare.js.map +1 -0
  25. package/dist/batch/google.d.ts +41 -0
  26. package/dist/batch/google.d.ts.map +1 -0
  27. package/dist/batch/google.js +360 -0
  28. package/dist/batch/google.js.map +1 -0
  29. package/dist/batch/index.d.ts +31 -0
  30. package/dist/batch/index.d.ts.map +1 -0
  31. package/dist/batch/index.js +31 -0
  32. package/dist/batch/index.js.map +1 -0
  33. package/dist/batch/memory.d.ts +44 -0
  34. package/dist/batch/memory.d.ts.map +1 -0
  35. package/dist/batch/memory.js +188 -0
  36. package/dist/batch/memory.js.map +1 -0
  37. package/dist/batch/openai.d.ts +37 -0
  38. package/dist/batch/openai.d.ts.map +1 -0
  39. package/dist/batch/openai.js +403 -0
  40. package/dist/batch/openai.js.map +1 -0
  41. package/dist/batch-map.d.ts +125 -0
  42. package/dist/batch-map.d.ts.map +1 -0
  43. package/dist/batch-map.js +406 -0
  44. package/dist/batch-map.js.map +1 -0
  45. package/dist/batch-queue.d.ts +273 -0
  46. package/dist/batch-queue.d.ts.map +1 -0
  47. package/dist/batch-queue.js +271 -0
  48. package/dist/batch-queue.js.map +1 -0
  49. package/dist/context.d.ts +133 -0
  50. package/dist/context.d.ts.map +1 -0
  51. package/dist/context.js +267 -0
  52. package/dist/context.js.map +1 -0
  53. package/dist/embeddings.d.ts +123 -0
  54. package/dist/embeddings.d.ts.map +1 -0
  55. package/dist/embeddings.js +170 -0
  56. package/dist/embeddings.js.map +1 -0
  57. package/dist/eval/index.d.ts +8 -0
  58. package/dist/eval/index.d.ts.map +1 -0
  59. package/dist/eval/index.js +8 -0
  60. package/dist/eval/index.js.map +1 -0
  61. package/dist/eval/models.d.ts +66 -0
  62. package/dist/eval/models.d.ts.map +1 -0
  63. package/dist/eval/models.js +120 -0
  64. package/dist/eval/models.js.map +1 -0
  65. package/dist/eval/runner.d.ts +64 -0
  66. package/dist/eval/runner.d.ts.map +1 -0
  67. package/dist/eval/runner.js +148 -0
  68. package/dist/eval/runner.js.map +1 -0
  69. package/dist/generate.d.ts +168 -0
  70. package/dist/generate.d.ts.map +1 -0
  71. package/dist/generate.js +174 -0
  72. package/dist/generate.js.map +1 -0
  73. package/dist/index.d.ts +30 -0
  74. package/dist/index.d.ts.map +1 -0
  75. package/dist/index.js +54 -0
  76. package/dist/index.js.map +1 -0
  77. package/dist/primitives.d.ts +292 -0
  78. package/dist/primitives.d.ts.map +1 -0
  79. package/dist/primitives.js +471 -0
  80. package/dist/primitives.js.map +1 -0
  81. package/dist/providers/cloudflare.d.ts +9 -0
  82. package/dist/providers/cloudflare.d.ts.map +1 -0
  83. package/dist/providers/cloudflare.js +9 -0
  84. package/dist/providers/cloudflare.js.map +1 -0
  85. package/dist/providers/index.d.ts +9 -0
  86. package/dist/providers/index.d.ts.map +1 -0
  87. package/dist/providers/index.js +9 -0
  88. package/dist/providers/index.js.map +1 -0
  89. package/dist/schema.d.ts +54 -0
  90. package/dist/schema.d.ts.map +1 -0
  91. package/dist/schema.js +109 -0
  92. package/dist/schema.js.map +1 -0
  93. package/dist/template.d.ts +73 -0
  94. package/dist/template.d.ts.map +1 -0
  95. package/dist/template.js +129 -0
  96. package/dist/template.js.map +1 -0
  97. package/dist/types.d.ts +481 -0
  98. package/dist/types.d.ts.map +1 -0
  99. package/dist/types.js +5 -0
  100. package/dist/types.js.map +1 -0
  101. package/evalite.config.ts +19 -0
  102. package/evals/README.md +212 -0
  103. package/evals/classification.eval.ts +108 -0
  104. package/evals/marketing.eval.ts +370 -0
  105. package/evals/math.eval.ts +94 -0
  106. package/evals/run-evals.ts +166 -0
  107. package/evals/structured-output.eval.ts +143 -0
  108. package/evals/writing.eval.ts +117 -0
  109. package/examples/batch-blog-posts.ts +160 -0
  110. package/package.json +59 -43
  111. package/src/ai-promise.ts +784 -0
  112. package/src/ai.ts +1183 -0
  113. package/src/batch/anthropic.ts +375 -0
  114. package/src/batch/bedrock.ts +801 -0
  115. package/src/batch/cloudflare.ts +421 -0
  116. package/src/batch/google.ts +491 -0
  117. package/src/batch/index.ts +31 -0
  118. package/src/batch/memory.ts +253 -0
  119. package/src/batch/openai.ts +557 -0
  120. package/src/batch-map.ts +534 -0
  121. package/src/batch-queue.ts +493 -0
  122. package/src/context.ts +332 -0
  123. package/src/embeddings.ts +244 -0
  124. package/src/eval/index.ts +8 -0
  125. package/src/eval/models.ts +158 -0
  126. package/src/eval/runner.ts +217 -0
  127. package/src/generate.ts +245 -0
  128. package/src/index.ts +154 -0
  129. package/src/primitives.ts +612 -0
  130. package/src/providers/cloudflare.ts +15 -0
  131. package/src/providers/index.ts +14 -0
  132. package/src/schema.ts +147 -0
  133. package/src/template.ts +209 -0
  134. package/src/types.ts +540 -0
  135. package/test/README.md +105 -0
  136. package/test/ai-proxy.test.ts +192 -0
  137. package/test/async-iterators.test.ts +327 -0
  138. package/test/batch-background.test.ts +482 -0
  139. package/test/batch-blog-posts.test.ts +387 -0
  140. package/test/blog-generation.test.ts +510 -0
  141. package/test/browse-read.test.ts +611 -0
  142. package/test/core-functions.test.ts +694 -0
  143. package/test/decide.test.ts +393 -0
  144. package/test/define.test.ts +274 -0
  145. package/test/e2e-bedrock-manual.ts +163 -0
  146. package/test/e2e-bedrock.test.ts +191 -0
  147. package/test/e2e-flex-gateway.ts +157 -0
  148. package/test/e2e-flex-manual.ts +183 -0
  149. package/test/e2e-flex.test.ts +209 -0
  150. package/test/e2e-google-manual.ts +178 -0
  151. package/test/e2e-google.test.ts +216 -0
  152. package/test/embeddings.test.ts +284 -0
  153. package/test/evals/define-function.eval.test.ts +379 -0
  154. package/test/evals/primitives.eval.test.ts +384 -0
  155. package/test/function-types.test.ts +492 -0
  156. package/test/generate-core.test.ts +319 -0
  157. package/test/generate.test.ts +163 -0
  158. package/test/implicit-batch.test.ts +422 -0
  159. package/test/schema.test.ts +109 -0
  160. package/test/tagged-templates.test.ts +302 -0
  161. package/tsconfig.json +8 -6
  162. package/vitest.config.ts +42 -0
  163. package/LICENSE +0 -21
  164. package/db/cache.ts +0 -6
  165. package/db/mongo.ts +0 -75
  166. package/dist/mjs/db/cache.d.ts +0 -1
  167. package/dist/mjs/db/cache.js +0 -5
  168. package/dist/mjs/db/mongo.d.ts +0 -31
  169. package/dist/mjs/db/mongo.js +0 -48
  170. package/dist/mjs/examples/data.d.ts +0 -1105
  171. package/dist/mjs/examples/data.js +0 -1105
  172. package/dist/mjs/functions/ai.d.ts +0 -20
  173. package/dist/mjs/functions/ai.js +0 -83
  174. package/dist/mjs/functions/ai.test.d.ts +0 -1
  175. package/dist/mjs/functions/ai.test.js +0 -29
  176. package/dist/mjs/functions/gpt.d.ts +0 -4
  177. package/dist/mjs/functions/gpt.js +0 -10
  178. package/dist/mjs/functions/list.d.ts +0 -7
  179. package/dist/mjs/functions/list.js +0 -72
  180. package/dist/mjs/index.d.ts +0 -3
  181. package/dist/mjs/index.js +0 -3
  182. package/dist/mjs/queue/kafka.d.ts +0 -0
  183. package/dist/mjs/queue/kafka.js +0 -1
  184. package/dist/mjs/queue/memory.d.ts +0 -0
  185. package/dist/mjs/queue/memory.js +0 -1
  186. package/dist/mjs/queue/mongo.d.ts +0 -30
  187. package/dist/mjs/queue/mongo.js +0 -42
  188. package/dist/mjs/streams/kafka.d.ts +0 -0
  189. package/dist/mjs/streams/kafka.js +0 -1
  190. package/dist/mjs/streams/memory.d.ts +0 -0
  191. package/dist/mjs/streams/memory.js +0 -1
  192. package/dist/mjs/streams/mongo.d.ts +0 -0
  193. package/dist/mjs/streams/mongo.js +0 -1
  194. package/dist/mjs/streams/types.d.ts +0 -0
  195. package/dist/mjs/streams/types.js +0 -1
  196. package/dist/mjs/types.d.ts +0 -11
  197. package/dist/mjs/types.js +0 -1
  198. package/dist/mjs/utils/completion.d.ts +0 -9
  199. package/dist/mjs/utils/completion.js +0 -20
  200. package/dist/mjs/utils/schema.d.ts +0 -10
  201. package/dist/mjs/utils/schema.js +0 -72
  202. package/dist/mjs/utils/schema.test.d.ts +0 -1
  203. package/dist/mjs/utils/schema.test.js +0 -60
  204. package/dist/mjs/utils/state.d.ts +0 -1
  205. package/dist/mjs/utils/state.js +0 -19
  206. package/examples/data.ts +0 -1105
  207. package/fixup +0 -11
  208. package/functions/ai.test.ts +0 -41
  209. package/functions/ai.ts +0 -115
  210. package/functions/gpt.ts +0 -12
  211. package/functions/list.ts +0 -84
  212. package/index.ts +0 -3
  213. package/queue/kafka.ts +0 -0
  214. package/queue/memory.ts +0 -0
  215. package/queue/mongo.ts +0 -88
  216. package/streams/kafka.ts +0 -0
  217. package/streams/memory.ts +0 -0
  218. package/streams/mongo.ts +0 -0
  219. package/streams/types.ts +0 -0
  220. package/tsconfig-backup.json +0 -105
  221. package/tsconfig-base.json +0 -26
  222. package/tsconfig-cjs.json +0 -8
  223. package/types.ts +0 -12
  224. package/utils/completion.ts +0 -28
  225. package/utils/schema.test.ts +0 -69
  226. package/utils/schema.ts +0 -74
  227. package/utils/state.ts +0 -23
@@ -0,0 +1,481 @@
1
+ /**
2
+ * Core types for AI functions
3
+ */
4
+ type RpcPromise<T> = Promise<T>;
5
+ /**
6
+ * A function definition that can be called by AI
7
+ */
8
+ export interface AIFunctionDefinition<TInput = unknown, TOutput = unknown> {
9
+ /** Unique name for the function */
10
+ name: string;
11
+ /** Human-readable description for the AI */
12
+ description: string;
13
+ /** JSON Schema for the input parameters */
14
+ parameters: JSONSchema;
15
+ /** The implementation */
16
+ handler: (input: TInput) => TOutput | Promise<TOutput>;
17
+ }
18
+ /**
19
+ * JSON Schema type (simplified)
20
+ */
21
+ export interface JSONSchema {
22
+ type?: string;
23
+ properties?: Record<string, JSONSchema>;
24
+ items?: JSONSchema;
25
+ required?: string[];
26
+ description?: string;
27
+ enum?: unknown[];
28
+ default?: unknown;
29
+ [key: string]: unknown;
30
+ }
31
+ /**
32
+ * Options for AI generation
33
+ */
34
+ export interface AIGenerateOptions {
35
+ /** The prompt or input */
36
+ prompt?: string;
37
+ /** System message */
38
+ system?: string;
39
+ /** Model to use */
40
+ model?: string;
41
+ /** Temperature (0-1) */
42
+ temperature?: number;
43
+ /** Maximum tokens to generate */
44
+ maxTokens?: number;
45
+ /** Stop sequences */
46
+ stop?: string[];
47
+ /** Structured output schema */
48
+ schema?: JSONSchema;
49
+ /** Available functions */
50
+ functions?: AIFunctionDefinition[];
51
+ }
52
+ /**
53
+ * Result of AI generation
54
+ */
55
+ export interface AIGenerateResult {
56
+ /** Generated text */
57
+ text: string;
58
+ /** Structured output (if schema was provided) */
59
+ object?: unknown;
60
+ /** Function calls (if functions were provided) */
61
+ functionCalls?: AIFunctionCall[];
62
+ /** Token usage */
63
+ usage?: {
64
+ promptTokens: number;
65
+ completionTokens: number;
66
+ totalTokens: number;
67
+ };
68
+ }
69
+ /**
70
+ * A function call made by the AI
71
+ */
72
+ export interface AIFunctionCall {
73
+ /** Name of the function to call */
74
+ name: string;
75
+ /** Arguments as JSON */
76
+ arguments: unknown;
77
+ }
78
+ /**
79
+ * AI client interface - all methods return RpcPromise for pipelining
80
+ */
81
+ export interface AIClient {
82
+ /** Generate text or structured output */
83
+ generate(options: AIGenerateOptions): RpcPromise<AIGenerateResult>;
84
+ /** Execute an action */
85
+ do(action: string, context?: unknown): RpcPromise<unknown>;
86
+ /** Type checking / validation */
87
+ is(value: unknown, type: string | JSONSchema): RpcPromise<boolean>;
88
+ /** Generate code */
89
+ code(prompt: string, language?: string): RpcPromise<string>;
90
+ /** Make a decision */
91
+ decide<T extends string>(options: T[], context?: string): RpcPromise<T>;
92
+ /** Generate a diagram */
93
+ diagram(description: string, format?: 'mermaid' | 'svg' | 'ascii'): RpcPromise<string>;
94
+ /** Generate an image */
95
+ image(prompt: string, options?: ImageOptions): RpcPromise<ImageResult>;
96
+ /** Generate a video */
97
+ video(prompt: string, options?: VideoOptions): RpcPromise<VideoResult>;
98
+ /** Write/generate text content */
99
+ write(prompt: string, options?: WriteOptions): RpcPromise<string>;
100
+ /** Generate a list of items with names and descriptions */
101
+ list(prompt: string): RpcPromise<ListResult>;
102
+ /** Generate multiple named lists of items */
103
+ lists(prompt: string): RpcPromise<ListsResult>;
104
+ }
105
+ export interface ImageOptions {
106
+ width?: number;
107
+ height?: number;
108
+ style?: string;
109
+ model?: string;
110
+ }
111
+ export interface ImageResult {
112
+ url: string;
113
+ base64?: string;
114
+ width: number;
115
+ height: number;
116
+ }
117
+ export interface VideoOptions {
118
+ duration?: number;
119
+ width?: number;
120
+ height?: number;
121
+ fps?: number;
122
+ model?: string;
123
+ }
124
+ export interface VideoResult {
125
+ url: string;
126
+ duration: number;
127
+ width: number;
128
+ height: number;
129
+ }
130
+ export interface WriteOptions {
131
+ tone?: string;
132
+ length?: 'short' | 'medium' | 'long';
133
+ format?: 'text' | 'markdown' | 'html';
134
+ }
135
+ /**
136
+ * Type for functions that support both regular calls and tagged template literals
137
+ */
138
+ export type TemplateFunction<TArgs extends unknown[], TReturn> = ((prompt: string, ...args: TArgs) => TReturn) & ((strings: TemplateStringsArray, ...values: unknown[]) => TReturn);
139
+ /**
140
+ * A single item in a list
141
+ */
142
+ export interface ListItem {
143
+ name: string;
144
+ description: string;
145
+ }
146
+ /**
147
+ * Result of the list() function
148
+ */
149
+ export interface ListResult {
150
+ items: ListItem[];
151
+ }
152
+ /**
153
+ * A named list containing items
154
+ */
155
+ export interface NamedList {
156
+ name: string;
157
+ items: ListItem[];
158
+ }
159
+ /**
160
+ * Result of the lists() function
161
+ */
162
+ export interface ListsResult {
163
+ lists: NamedList[];
164
+ }
165
+ /**
166
+ * Supported programming languages for code generation
167
+ */
168
+ export type CodeLanguage = 'typescript' | 'javascript' | 'python' | 'go' | 'rust';
169
+ /**
170
+ * Output types for generative functions
171
+ */
172
+ export type GenerativeOutputType = 'string' | 'object' | 'image' | 'video' | 'audio';
173
+ /**
174
+ * Human interaction channels
175
+ *
176
+ * - chat: Real-time messaging (WebSocket, in-app)
177
+ * - email: Async email communication
178
+ * - phone: Voice calls
179
+ * - sms: SMS text messages
180
+ * - workspace: Team collaboration platforms (Slack, Teams, Discord)
181
+ * - web: Web-based interface (browser, web app)
182
+ */
183
+ export type HumanChannel = 'chat' | 'email' | 'phone' | 'sms' | 'workspace' | 'web';
184
+ /**
185
+ * Legacy channel type for backwards compatibility
186
+ * @deprecated Use HumanChannel instead
187
+ */
188
+ export type LegacyHumanChannel = 'slack' | 'email' | 'web' | 'sms' | 'custom';
189
+ /**
190
+ * Schema limitations that apply across providers
191
+ * These constraints ensure compatibility with OpenAI, Anthropic, and Google
192
+ */
193
+ export interface SchemaLimitations {
194
+ /** OpenAI requires additionalProperties: false on all objects */
195
+ noAdditionalProperties: true;
196
+ /** OpenAI requires all properties in 'required' - no optional keys */
197
+ allPropertiesRequired: true;
198
+ /** OpenAI doesn't support default values */
199
+ noDefaultValues: true;
200
+ /** No recursive schema definitions (all providers) */
201
+ noRecursiveSchemas: true;
202
+ /** No external $ref URLs (all providers) */
203
+ noExternalRefs: true;
204
+ /** Anthropic doesn't support min/max on numbers */
205
+ noNumericBounds: true;
206
+ /** Anthropic doesn't support minLength/maxLength on strings */
207
+ noStringLengthBounds: true;
208
+ /** Anthropic only supports minItems of 0 or 1 */
209
+ limitedArrayMinItems: true;
210
+ /** Anthropic doesn't support complex types in enums */
211
+ simpleEnumsOnly: true;
212
+ /** Anthropic doesn't support lookahead/lookbehind in regex */
213
+ simpleRegexOnly: true;
214
+ }
215
+ /**
216
+ * Base definition shared by all function types
217
+ */
218
+ export interface BaseFunctionDefinition<TArgs = unknown, TReturn = unknown> {
219
+ /** Function name (used as the callable identifier) */
220
+ name: string;
221
+ /** Human-readable description of what this function does */
222
+ description?: string;
223
+ /** Arguments schema - SimpleSchema or Zod schema */
224
+ args: TArgs;
225
+ /** Return type schema - SimpleSchema or Zod schema (optional) */
226
+ returnType?: TReturn;
227
+ }
228
+ /**
229
+ * Code function - generates actual executable code
230
+ *
231
+ * When called, this generates:
232
+ * - Implementation code with JSDoc comments
233
+ * - Vitest test cases
234
+ * - Example usage scripts
235
+ *
236
+ * @example
237
+ * ```ts
238
+ * defineFunction({
239
+ * type: 'code',
240
+ * name: 'calculateTax',
241
+ * args: {
242
+ * amount: 'The amount to calculate tax on (number)',
243
+ * rate: 'Tax rate as decimal (number)',
244
+ * },
245
+ * returnType: 'The calculated tax amount (number)',
246
+ * language: 'typescript',
247
+ * })
248
+ * ```
249
+ */
250
+ export interface CodeFunctionDefinition<TArgs = unknown, TReturn = unknown> extends BaseFunctionDefinition<TArgs, TReturn> {
251
+ type: 'code';
252
+ /** Target programming language */
253
+ language?: CodeLanguage;
254
+ /** Additional context or requirements for code generation */
255
+ instructions?: string;
256
+ /** Whether to include vitest tests (default: true) */
257
+ includeTests?: boolean;
258
+ /** Whether to include example usage (default: true) */
259
+ includeExamples?: boolean;
260
+ }
261
+ /**
262
+ * Code function result with generated artifacts
263
+ */
264
+ export interface CodeFunctionResult {
265
+ /** The generated implementation code */
266
+ code: string;
267
+ /** Generated vitest test code */
268
+ tests?: string;
269
+ /** Generated example usage code */
270
+ examples?: string;
271
+ /** The language the code was generated in */
272
+ language: CodeLanguage;
273
+ /** JSDoc or equivalent documentation */
274
+ documentation: string;
275
+ }
276
+ /**
277
+ * Generative function - uses AI to generate text, objects, or media
278
+ *
279
+ * @example
280
+ * ```ts
281
+ * defineFunction({
282
+ * type: 'generative',
283
+ * name: 'summarize',
284
+ * args: { text: 'The text to summarize' },
285
+ * output: 'string',
286
+ * system: 'You are an expert summarizer.',
287
+ * promptTemplate: 'Summarize the following text:\n\n{{text}}',
288
+ * })
289
+ * ```
290
+ */
291
+ export interface GenerativeFunctionDefinition<TArgs = unknown, TReturn = unknown> extends BaseFunctionDefinition<TArgs, TReturn> {
292
+ type: 'generative';
293
+ /** What type of output this function produces */
294
+ output: GenerativeOutputType;
295
+ /** System prompt for the AI */
296
+ system?: string;
297
+ /** Prompt template with {{arg}} placeholders */
298
+ promptTemplate?: string;
299
+ /** Model to use (defaults to 'sonnet') */
300
+ model?: string;
301
+ /** Temperature for generation (0-2) */
302
+ temperature?: number;
303
+ }
304
+ /**
305
+ * Generative function result
306
+ */
307
+ export interface GenerativeFunctionResult<T = unknown> {
308
+ /** Generated text (if output is 'string') */
309
+ text?: string;
310
+ /** Generated object (if output is 'object') */
311
+ object?: T;
312
+ /** Generated image (if output is 'image') */
313
+ image?: ImageResult;
314
+ /** Generated video (if output is 'video') */
315
+ video?: VideoResult;
316
+ /** Generated audio URL (if output is 'audio') */
317
+ audio?: {
318
+ url: string;
319
+ duration: number;
320
+ };
321
+ }
322
+ /**
323
+ * Agentic function - runs in a loop with tools until completion
324
+ *
325
+ * @example
326
+ * ```ts
327
+ * defineFunction({
328
+ * type: 'agentic',
329
+ * name: 'researchTopic',
330
+ * args: { topic: 'The topic to research' },
331
+ * returnType: {
332
+ * summary: 'Research summary',
333
+ * sources: ['List of sources'],
334
+ * },
335
+ * instructions: 'Research the topic thoroughly using available tools.',
336
+ * tools: [searchTool, fetchTool],
337
+ * maxIterations: 10,
338
+ * })
339
+ * ```
340
+ */
341
+ export interface AgenticFunctionDefinition<TArgs = unknown, TReturn = unknown> extends BaseFunctionDefinition<TArgs, TReturn> {
342
+ type: 'agentic';
343
+ /** Instructions for the agent on how to accomplish the task */
344
+ instructions: string;
345
+ /** Prompt template with {{arg}} placeholders */
346
+ promptTemplate?: string;
347
+ /** Tools available to the agent */
348
+ tools?: AIFunctionDefinition[];
349
+ /** Maximum number of iterations before stopping (default: 10) */
350
+ maxIterations?: number;
351
+ /** Model to use for the agent (defaults to 'sonnet') */
352
+ model?: string;
353
+ /** Whether to stream intermediate results */
354
+ stream?: boolean;
355
+ }
356
+ /**
357
+ * Agentic function execution state
358
+ */
359
+ export interface AgenticExecutionState {
360
+ /** Current iteration number */
361
+ iteration: number;
362
+ /** Tool calls made so far */
363
+ toolCalls: AIFunctionCall[];
364
+ /** Intermediate results */
365
+ intermediateResults: unknown[];
366
+ /** Whether the agent has completed */
367
+ completed: boolean;
368
+ /** Final result (if completed) */
369
+ result?: unknown;
370
+ }
371
+ /**
372
+ * Human function - requires human input/approval
373
+ *
374
+ * Generates appropriate UI/interaction for the specified channel:
375
+ * - slack: Generates Slack BlockKit JSON
376
+ * - email: Generates email template
377
+ * - web: Generates form/UI component
378
+ * - sms: Generates SMS-friendly text
379
+ * - custom: Provides structured data for custom implementation
380
+ *
381
+ * @example
382
+ * ```ts
383
+ * defineFunction({
384
+ * type: 'human',
385
+ * name: 'approveExpense',
386
+ * args: {
387
+ * amount: 'Expense amount (number)',
388
+ * description: 'What the expense is for',
389
+ * submitter: 'Who submitted the expense',
390
+ * },
391
+ * returnType: {
392
+ * approved: 'Whether the expense was approved (boolean)',
393
+ * notes: 'Any notes from the approver',
394
+ * },
395
+ * channel: 'workspace',
396
+ * instructions: 'Review the expense request and approve or reject it.',
397
+ * })
398
+ * ```
399
+ */
400
+ export interface HumanFunctionDefinition<TArgs = unknown, TReturn = unknown> extends BaseFunctionDefinition<TArgs, TReturn> {
401
+ type: 'human';
402
+ /** How to interact with the human */
403
+ channel: HumanChannel;
404
+ /** Instructions shown to the human */
405
+ instructions: string;
406
+ /** Prompt template with {{arg}} placeholders for the request */
407
+ promptTemplate?: string;
408
+ /** Timeout in milliseconds (default: none - wait indefinitely) */
409
+ timeout?: number;
410
+ /** Who should handle this (e.g., user ID, email, channel ID) */
411
+ assignee?: string;
412
+ }
413
+ /**
414
+ * Human function result with channel-specific artifacts
415
+ */
416
+ export interface HumanFunctionResult<T = unknown> {
417
+ /** The human's response */
418
+ response: T;
419
+ /** Who responded */
420
+ respondedBy?: string;
421
+ /** When they responded */
422
+ respondedAt?: Date;
423
+ /** Channel-specific artifacts */
424
+ artifacts?: {
425
+ /** Slack BlockKit JSON */
426
+ slackBlocks?: unknown[];
427
+ /** Email HTML template */
428
+ emailHtml?: string;
429
+ /** Web form component */
430
+ webComponent?: string;
431
+ /** SMS message text */
432
+ smsText?: string;
433
+ };
434
+ }
435
+ /**
436
+ * Union of all function definition types
437
+ */
438
+ export type FunctionDefinition<TArgs = unknown, TReturn = unknown> = CodeFunctionDefinition<TArgs, TReturn> | GenerativeFunctionDefinition<TArgs, TReturn> | AgenticFunctionDefinition<TArgs, TReturn> | HumanFunctionDefinition<TArgs, TReturn>;
439
+ /**
440
+ * Result of defineFunction - a callable with metadata
441
+ */
442
+ export interface DefinedFunction<TArgs = unknown, TReturn = unknown> {
443
+ /** The original definition */
444
+ definition: FunctionDefinition<TArgs, TReturn>;
445
+ /** Call the function */
446
+ call: (args: TArgs) => Promise<TReturn>;
447
+ /** Get the function as a tool definition for AI */
448
+ asTool: () => AIFunctionDefinition<TArgs, TReturn>;
449
+ }
450
+ /**
451
+ * Function registry for storing and retrieving defined functions
452
+ *
453
+ * Note: This is in-memory only. For persistence, use mdxai or mdxdb packages.
454
+ */
455
+ export interface FunctionRegistry {
456
+ /** Get a function by name */
457
+ get(name: string): DefinedFunction | undefined;
458
+ /** Set/store a function */
459
+ set(name: string, fn: DefinedFunction): void;
460
+ /** Check if a function exists */
461
+ has(name: string): boolean;
462
+ /** List all function names */
463
+ list(): string[];
464
+ /** Delete a function */
465
+ delete(name: string): boolean;
466
+ /** Clear all functions */
467
+ clear(): void;
468
+ }
469
+ /**
470
+ * Result of auto-defining a function
471
+ */
472
+ export interface AutoDefineResult {
473
+ /** The determined function type */
474
+ type: 'code' | 'generative' | 'agentic' | 'human';
475
+ /** Reasoning for why this type was chosen */
476
+ reasoning: string;
477
+ /** The complete function definition */
478
+ definition: FunctionDefinition;
479
+ }
480
+ export {};
481
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Core types for AI functions
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,19 @@
1
+ import { defineConfig } from 'evalite/config'
2
+
3
+ export default defineConfig({
4
+ // Single trial by default (override per-eval for LLM-as-judge)
5
+ trialCount: 1,
6
+
7
+ // Allow longer timeouts for API calls
8
+ testTimeout: 60_000,
9
+
10
+ // Run up to 5 evals in parallel (be nice to rate limits)
11
+ maxConcurrency: 5,
12
+
13
+ // Fail CI if average score drops below 70%
14
+ scoreThreshold: 70,
15
+
16
+ server: {
17
+ port: 3006,
18
+ },
19
+ })