ai-functions 2.1.1 → 2.3.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 (286) hide show
  1. package/.turbo/turbo-build.log +1 -4
  2. package/CHANGELOG.md +68 -1
  3. package/README.md +397 -157
  4. package/dist/ai-promise.d.ts +50 -3
  5. package/dist/ai-promise.d.ts.map +1 -1
  6. package/dist/ai-promise.js +410 -51
  7. package/dist/ai-promise.js.map +1 -1
  8. package/dist/ai-schemas.d.ts +56 -0
  9. package/dist/ai-schemas.d.ts.map +1 -0
  10. package/dist/ai-schemas.js +53 -0
  11. package/dist/ai-schemas.js.map +1 -0
  12. package/dist/ai.d.ts +16 -242
  13. package/dist/ai.d.ts.map +1 -1
  14. package/dist/ai.js +54 -837
  15. package/dist/ai.js.map +1 -1
  16. package/dist/batch/anthropic.d.ts +6 -4
  17. package/dist/batch/anthropic.d.ts.map +1 -1
  18. package/dist/batch/anthropic.js +83 -145
  19. package/dist/batch/anthropic.js.map +1 -1
  20. package/dist/batch/bedrock.d.ts +8 -30
  21. package/dist/batch/bedrock.d.ts.map +1 -1
  22. package/dist/batch/bedrock.js +155 -338
  23. package/dist/batch/bedrock.js.map +1 -1
  24. package/dist/batch/cloudflare.d.ts +8 -20
  25. package/dist/batch/cloudflare.d.ts.map +1 -1
  26. package/dist/batch/cloudflare.js +68 -189
  27. package/dist/batch/cloudflare.js.map +1 -1
  28. package/dist/batch/google.d.ts +6 -20
  29. package/dist/batch/google.d.ts.map +1 -1
  30. package/dist/batch/google.js +70 -238
  31. package/dist/batch/google.js.map +1 -1
  32. package/dist/batch/index.d.ts +4 -1
  33. package/dist/batch/index.d.ts.map +1 -1
  34. package/dist/batch/index.js +4 -1
  35. package/dist/batch/index.js.map +1 -1
  36. package/dist/batch/memory.d.ts +1 -1
  37. package/dist/batch/memory.d.ts.map +1 -1
  38. package/dist/batch/memory.js +14 -10
  39. package/dist/batch/memory.js.map +1 -1
  40. package/dist/batch/openai.d.ts +11 -14
  41. package/dist/batch/openai.d.ts.map +1 -1
  42. package/dist/batch/openai.js +52 -156
  43. package/dist/batch/openai.js.map +1 -1
  44. package/dist/batch/provider.d.ts +111 -0
  45. package/dist/batch/provider.d.ts.map +1 -0
  46. package/dist/batch/provider.js +233 -0
  47. package/dist/batch/provider.js.map +1 -0
  48. package/dist/batch-map.d.ts.map +1 -1
  49. package/dist/batch-map.js +23 -17
  50. package/dist/batch-map.js.map +1 -1
  51. package/dist/batch-queue.d.ts +65 -0
  52. package/dist/batch-queue.d.ts.map +1 -1
  53. package/dist/batch-queue.js +169 -14
  54. package/dist/batch-queue.js.map +1 -1
  55. package/dist/budget.d.ts +272 -0
  56. package/dist/budget.d.ts.map +1 -0
  57. package/dist/budget.js +513 -0
  58. package/dist/budget.js.map +1 -0
  59. package/dist/cache.d.ts +295 -0
  60. package/dist/cache.d.ts.map +1 -0
  61. package/dist/cache.js +433 -0
  62. package/dist/cache.js.map +1 -0
  63. package/dist/context.d.ts +42 -8
  64. package/dist/context.d.ts.map +1 -1
  65. package/dist/context.js +64 -62
  66. package/dist/context.js.map +1 -1
  67. package/dist/digital-objects-registry.d.ts +229 -0
  68. package/dist/digital-objects-registry.d.ts.map +1 -0
  69. package/dist/digital-objects-registry.js +617 -0
  70. package/dist/digital-objects-registry.js.map +1 -0
  71. package/dist/embeddings.d.ts +2 -2
  72. package/dist/embeddings.d.ts.map +1 -1
  73. package/dist/errors.d.ts +22 -0
  74. package/dist/errors.d.ts.map +1 -0
  75. package/dist/errors.js +35 -0
  76. package/dist/errors.js.map +1 -0
  77. package/dist/eval/runner.d.ts +10 -1
  78. package/dist/eval/runner.d.ts.map +1 -1
  79. package/dist/eval/runner.js +41 -35
  80. package/dist/eval/runner.js.map +1 -1
  81. package/dist/eval-log/in-memory.d.ts +34 -0
  82. package/dist/eval-log/in-memory.d.ts.map +1 -0
  83. package/dist/eval-log/in-memory.js +84 -0
  84. package/dist/eval-log/in-memory.js.map +1 -0
  85. package/dist/eval-log/index.d.ts +29 -0
  86. package/dist/eval-log/index.d.ts.map +1 -0
  87. package/dist/eval-log/index.js +39 -0
  88. package/dist/eval-log/index.js.map +1 -0
  89. package/dist/eval-log/types.d.ts +101 -0
  90. package/dist/eval-log/types.d.ts.map +1 -0
  91. package/dist/eval-log/types.js +16 -0
  92. package/dist/eval-log/types.js.map +1 -0
  93. package/dist/function-registry.d.ts +116 -0
  94. package/dist/function-registry.d.ts.map +1 -0
  95. package/dist/function-registry.js +546 -0
  96. package/dist/function-registry.js.map +1 -0
  97. package/dist/generate.d.ts +9 -3
  98. package/dist/generate.d.ts.map +1 -1
  99. package/dist/generate.js +18 -22
  100. package/dist/generate.js.map +1 -1
  101. package/dist/index.d.ts +35 -20
  102. package/dist/index.d.ts.map +1 -1
  103. package/dist/index.js +89 -42
  104. package/dist/index.js.map +1 -1
  105. package/dist/logger.d.ts +118 -0
  106. package/dist/logger.d.ts.map +1 -0
  107. package/dist/logger.js +187 -0
  108. package/dist/logger.js.map +1 -0
  109. package/dist/middleware/budget.d.ts +84 -0
  110. package/dist/middleware/budget.d.ts.map +1 -0
  111. package/dist/middleware/budget.js +110 -0
  112. package/dist/middleware/budget.js.map +1 -0
  113. package/dist/middleware/cache.d.ts +103 -0
  114. package/dist/middleware/cache.d.ts.map +1 -0
  115. package/dist/middleware/cache.js +228 -0
  116. package/dist/middleware/cache.js.map +1 -0
  117. package/dist/middleware/embed-cache.d.ts +99 -0
  118. package/dist/middleware/embed-cache.d.ts.map +1 -0
  119. package/dist/middleware/embed-cache.js +128 -0
  120. package/dist/middleware/embed-cache.js.map +1 -0
  121. package/dist/middleware/index.d.ts +11 -0
  122. package/dist/middleware/index.d.ts.map +1 -0
  123. package/dist/middleware/index.js +11 -0
  124. package/dist/middleware/index.js.map +1 -0
  125. package/dist/middleware/trace.d.ts +103 -0
  126. package/dist/middleware/trace.d.ts.map +1 -0
  127. package/dist/middleware/trace.js +176 -0
  128. package/dist/middleware/trace.js.map +1 -0
  129. package/dist/primitives.d.ts +120 -1
  130. package/dist/primitives.d.ts.map +1 -1
  131. package/dist/primitives.js +398 -26
  132. package/dist/primitives.js.map +1 -1
  133. package/dist/retry.d.ts +368 -0
  134. package/dist/retry.d.ts.map +1 -0
  135. package/dist/retry.js +646 -0
  136. package/dist/retry.js.map +1 -0
  137. package/dist/schema.d.ts.map +1 -1
  138. package/dist/schema.js +2 -10
  139. package/dist/schema.js.map +1 -1
  140. package/dist/telemetry.d.ts +128 -0
  141. package/dist/telemetry.d.ts.map +1 -0
  142. package/dist/telemetry.js +285 -0
  143. package/dist/telemetry.js.map +1 -0
  144. package/dist/template.d.ts.map +1 -1
  145. package/dist/template.js +6 -1
  146. package/dist/template.js.map +1 -1
  147. package/dist/tool-orchestration.d.ts +453 -0
  148. package/dist/tool-orchestration.d.ts.map +1 -0
  149. package/dist/tool-orchestration.js +763 -0
  150. package/dist/tool-orchestration.js.map +1 -0
  151. package/dist/type-guards.d.ts +28 -0
  152. package/dist/type-guards.d.ts.map +1 -0
  153. package/dist/type-guards.js +29 -0
  154. package/dist/type-guards.js.map +1 -0
  155. package/dist/types.d.ts +135 -17
  156. package/dist/types.d.ts.map +1 -1
  157. package/dist/types.js +36 -1
  158. package/dist/types.js.map +1 -1
  159. package/dist/wrap-for-v3.d.ts +80 -0
  160. package/dist/wrap-for-v3.d.ts.map +1 -0
  161. package/dist/wrap-for-v3.js +89 -0
  162. package/dist/wrap-for-v3.js.map +1 -0
  163. package/examples/00-quickstart.ts +232 -0
  164. package/examples/01-rag-chatbot.ts +212 -0
  165. package/examples/02-multi-agent-research.ts +290 -0
  166. package/examples/03-email-classification.ts +379 -0
  167. package/examples/04-content-moderation.ts +400 -0
  168. package/examples/05-document-extraction.ts +455 -0
  169. package/examples/06-streaming-chat-nextjs.ts +437 -0
  170. package/examples/07-cloudflare-worker.ts +483 -0
  171. package/examples/08-batch-processing.ts +491 -0
  172. package/examples/09-budget-constrained.ts +527 -0
  173. package/examples/10-tool-orchestration.ts +565 -0
  174. package/examples/11-retry-resilience.ts +403 -0
  175. package/examples/12-caching-strategies.ts +422 -0
  176. package/examples/README.md +145 -0
  177. package/package.json +10 -6
  178. package/src/ai-promise.ts +528 -99
  179. package/src/ai-schemas.ts +122 -0
  180. package/src/ai.ts +69 -1153
  181. package/src/batch/anthropic.ts +96 -161
  182. package/src/batch/bedrock.ts +203 -454
  183. package/src/batch/cloudflare.ts +99 -282
  184. package/src/batch/google.ts +91 -297
  185. package/src/batch/index.ts +4 -1
  186. package/src/batch/memory.ts +15 -10
  187. package/src/batch/openai.ts +65 -193
  188. package/src/batch/provider.ts +336 -0
  189. package/src/batch-map.ts +29 -24
  190. package/src/batch-queue.ts +200 -11
  191. package/src/budget.ts +740 -0
  192. package/src/cache.ts +681 -0
  193. package/src/context.ts +122 -76
  194. package/src/digital-objects-registry.ts +750 -0
  195. package/src/errors.ts +37 -0
  196. package/src/eval/runner.ts +63 -38
  197. package/src/eval-log/in-memory.ts +90 -0
  198. package/src/eval-log/index.ts +46 -0
  199. package/src/eval-log/types.ts +110 -0
  200. package/src/function-registry.ts +671 -0
  201. package/src/generate.ts +33 -33
  202. package/src/index.ts +325 -49
  203. package/src/logger.ts +232 -0
  204. package/src/middleware/budget.ts +171 -0
  205. package/src/middleware/cache.ts +299 -0
  206. package/src/middleware/embed-cache.ts +195 -0
  207. package/src/middleware/index.ts +23 -0
  208. package/src/middleware/trace.ts +248 -0
  209. package/src/primitives.ts +589 -62
  210. package/src/retry.ts +902 -0
  211. package/src/schema.ts +8 -17
  212. package/src/telemetry.ts +403 -0
  213. package/src/template.ts +8 -4
  214. package/src/tool-orchestration.ts +1173 -0
  215. package/src/type-guards.ts +31 -0
  216. package/src/types.ts +164 -25
  217. package/src/wrap-for-v3.ts +105 -0
  218. package/test/ai-promise.test.ts +1080 -0
  219. package/test/ai-proxy.test.ts +1 -1
  220. package/test/backward-compat.test.ts +147 -0
  221. package/test/batch-autosubmit-errors.test.ts +610 -0
  222. package/test/batch-blog-posts.test.ts +87 -129
  223. package/test/budget-tracking.test.ts +800 -0
  224. package/test/cache.test.ts +712 -0
  225. package/test/context-isolation.test.ts +687 -0
  226. package/test/core-functions.test.ts +183 -579
  227. package/test/decide.test.ts +154 -322
  228. package/test/define.test.ts +211 -8
  229. package/test/digital-objects-registry.test.ts +760 -0
  230. package/test/embedding-cache-middleware.test.ts +140 -0
  231. package/test/evals/deterministic.eval.test.ts +376 -0
  232. package/test/generate-core.test.ts +140 -229
  233. package/test/implicit-batch.test.ts +22 -65
  234. package/test/json-parse-error-handling.test.ts +463 -0
  235. package/test/retry-policy-integration.test.ts +117 -0
  236. package/test/retry.test.ts +1016 -0
  237. package/test/schema.test.ts +55 -19
  238. package/test/streaming.test.ts +316 -0
  239. package/test/template.test.ts +1164 -0
  240. package/test/tool-orchestration.test.ts +1040 -0
  241. package/test/wrap-for-v3.test.ts +612 -0
  242. package/vitest.config.js +6 -0
  243. package/vitest.config.ts +20 -0
  244. package/dist/rpc/auth.d.ts +0 -69
  245. package/dist/rpc/auth.d.ts.map +0 -1
  246. package/dist/rpc/auth.js +0 -136
  247. package/dist/rpc/auth.js.map +0 -1
  248. package/dist/rpc/client.d.ts +0 -62
  249. package/dist/rpc/client.d.ts.map +0 -1
  250. package/dist/rpc/client.js +0 -103
  251. package/dist/rpc/client.js.map +0 -1
  252. package/dist/rpc/deferred.d.ts +0 -60
  253. package/dist/rpc/deferred.d.ts.map +0 -1
  254. package/dist/rpc/deferred.js +0 -96
  255. package/dist/rpc/deferred.js.map +0 -1
  256. package/dist/rpc/index.d.ts +0 -22
  257. package/dist/rpc/index.d.ts.map +0 -1
  258. package/dist/rpc/index.js +0 -38
  259. package/dist/rpc/index.js.map +0 -1
  260. package/dist/rpc/local.d.ts +0 -42
  261. package/dist/rpc/local.d.ts.map +0 -1
  262. package/dist/rpc/local.js +0 -50
  263. package/dist/rpc/local.js.map +0 -1
  264. package/dist/rpc/server.d.ts +0 -165
  265. package/dist/rpc/server.d.ts.map +0 -1
  266. package/dist/rpc/server.js +0 -405
  267. package/dist/rpc/server.js.map +0 -1
  268. package/dist/rpc/session.d.ts +0 -32
  269. package/dist/rpc/session.d.ts.map +0 -1
  270. package/dist/rpc/session.js +0 -43
  271. package/dist/rpc/session.js.map +0 -1
  272. package/dist/rpc/transport.d.ts +0 -306
  273. package/dist/rpc/transport.d.ts.map +0 -1
  274. package/dist/rpc/transport.js +0 -731
  275. package/dist/rpc/transport.js.map +0 -1
  276. package/src/batch/anthropic.js +0 -256
  277. package/src/batch/bedrock.js +0 -584
  278. package/src/batch/cloudflare.js +0 -287
  279. package/src/batch/google.js +0 -359
  280. package/src/batch/index.js +0 -30
  281. package/src/batch/memory.js +0 -187
  282. package/src/batch/openai.js +0 -402
  283. package/src/eval/index.js +0 -7
  284. package/src/eval/models.js +0 -119
  285. package/src/eval/runner.js +0 -147
  286. package/test/schema.test.js +0 -96
@@ -32,6 +32,7 @@
32
32
  */
33
33
  import { AIPromise, createAITemplateFunction, parseTemplateWithDependencies, isAIPromise, } from './ai-promise.js';
34
34
  import { generateObject, generateText } from './generate.js';
35
+ import { createDefinedFunction, defineFunction, functions, generateCode, } from './function-registry.js';
35
36
  // ============================================================================
36
37
  // Core generate() primitive
37
38
  // ============================================================================
@@ -70,12 +71,25 @@ export async function generate(type, prompt, options) {
70
71
  }
71
72
  // Helper functions
72
73
  async function generateTextContent(prompt, model, options) {
73
- const result = await generateText({ model, prompt, system: options.system, temperature: options.temperature, maxTokens: options.maxTokens });
74
+ const result = await generateText({
75
+ model,
76
+ prompt,
77
+ ...(options.system !== undefined && { system: options.system }),
78
+ ...(options.temperature !== undefined && { temperature: options.temperature }),
79
+ ...(options.maxTokens !== undefined && { maxTokens: options.maxTokens }),
80
+ });
74
81
  return result.text;
75
82
  }
76
83
  async function generateJsonContent(prompt, model, schema, options) {
77
84
  const effectiveSchema = schema || { result: 'The generated result' };
78
- const result = await generateObject({ model, schema: effectiveSchema, prompt, system: options.system, temperature: options.temperature, maxTokens: options.maxTokens });
85
+ const result = await generateObject({
86
+ model,
87
+ schema: effectiveSchema,
88
+ prompt,
89
+ ...(options.system !== undefined && { system: options.system }),
90
+ ...(options.temperature !== undefined && { temperature: options.temperature }),
91
+ ...(options.maxTokens !== undefined && { maxTokens: options.maxTokens }),
92
+ });
79
93
  return result.object;
80
94
  }
81
95
  async function generateCodeContent(prompt, model, language, options) {
@@ -84,8 +98,8 @@ async function generateCodeContent(prompt, model, language, options) {
84
98
  schema: { code: `The ${language} implementation code` },
85
99
  prompt: `Generate ${language} code for: ${prompt}`,
86
100
  system: `You are an expert ${language} developer. Generate clean, well-documented code.`,
87
- temperature: options.temperature,
88
- maxTokens: options.maxTokens,
101
+ ...(options.temperature !== undefined && { temperature: options.temperature }),
102
+ ...(options.maxTokens !== undefined && { maxTokens: options.maxTokens }),
89
103
  });
90
104
  return result.object.code;
91
105
  }
@@ -95,8 +109,8 @@ async function generateListContent(prompt, model, options) {
95
109
  schema: { items: ['List items'] },
96
110
  prompt,
97
111
  system: options.system || 'Generate a list of items based on the prompt.',
98
- temperature: options.temperature,
99
- maxTokens: options.maxTokens,
112
+ ...(options.temperature !== undefined && { temperature: options.temperature }),
113
+ ...(options.maxTokens !== undefined && { maxTokens: options.maxTokens }),
100
114
  });
101
115
  return result.object.items;
102
116
  }
@@ -108,9 +122,10 @@ async function generateListsContent(prompt, model, options) {
108
122
  data: 'JSON string containing the categorized lists',
109
123
  },
110
124
  prompt: `Generate categorized lists for: ${prompt}\n\nFirst identify appropriate category names, then provide the lists as a JSON object.`,
111
- system: options.system || 'Generate multiple categorized lists. Determine appropriate categories based on the prompt.',
112
- temperature: options.temperature,
113
- maxTokens: options.maxTokens,
125
+ system: options.system ||
126
+ 'Generate multiple categorized lists. Determine appropriate categories based on the prompt.',
127
+ ...(options.temperature !== undefined && { temperature: options.temperature }),
128
+ ...(options.maxTokens !== undefined && { maxTokens: options.maxTokens }),
114
129
  });
115
130
  const obj = result.object;
116
131
  try {
@@ -131,7 +146,7 @@ async function generateBooleanContent(prompt, model, options) {
131
146
  prompt,
132
147
  system: options.system || 'Answer the question with true or false.',
133
148
  temperature: options.temperature ?? 0,
134
- maxTokens: options.maxTokens,
149
+ ...(options.maxTokens !== undefined && { maxTokens: options.maxTokens }),
135
150
  });
136
151
  return result.object.answer === 'true';
137
152
  }
@@ -141,24 +156,31 @@ async function generateSummaryContent(prompt, model, options) {
141
156
  schema: { summary: 'A concise summary of the content' },
142
157
  prompt: `Summarize the following:\n\n${prompt}`,
143
158
  system: options.system || 'Create a clear, concise summary.',
144
- temperature: options.temperature,
145
- maxTokens: options.maxTokens,
159
+ ...(options.temperature !== undefined && { temperature: options.temperature }),
160
+ ...(options.maxTokens !== undefined && { maxTokens: options.maxTokens }),
146
161
  });
147
162
  return result.object.summary;
148
163
  }
149
164
  async function generateExtractContent(prompt, model, schema, options) {
150
- const effectiveSchema = schema || { items: ['Extracted items'] };
165
+ const effectiveSchema = schema || {
166
+ items: ['Array of extracted items as strings - extract ALL matching items from the text'],
167
+ };
151
168
  const result = await generateObject({
152
169
  model,
153
170
  schema: effectiveSchema,
154
- prompt: `Extract from the following:\n\n${prompt}`,
155
- system: options.system || 'Extract the requested information.',
156
- temperature: options.temperature,
157
- maxTokens: options.maxTokens,
171
+ prompt: `Extract the following from the text below. Return ALL matching items in the items array.
172
+
173
+ Task: ${prompt}
174
+
175
+ IMPORTANT: Return the extracted items as an array. If the task asks for email addresses, return all email addresses found. If it asks for names, return all names found. Do not return an empty array if there are items to extract.`,
176
+ system: options.system ||
177
+ 'You are a precise data extraction assistant. Extract exactly what is requested and return it as an array of items. Be thorough - find ALL matching items in the text.',
178
+ temperature: options.temperature ?? 0, // Use low temperature for extraction tasks
179
+ ...(options.maxTokens !== undefined && { maxTokens: options.maxTokens }),
158
180
  });
159
181
  const obj = result.object;
160
- if ('items' in obj && Array.isArray(obj.items)) {
161
- return obj.items;
182
+ if ('items' in obj && Array.isArray(obj['items'])) {
183
+ return obj['items'];
162
184
  }
163
185
  return Object.values(obj).flat();
164
186
  }
@@ -168,8 +190,8 @@ async function generateYamlContent(prompt, model, options) {
168
190
  schema: { yaml: 'The YAML content' },
169
191
  prompt: `Generate YAML for: ${prompt}`,
170
192
  system: options.system || 'Generate valid YAML content.',
171
- temperature: options.temperature,
172
- maxTokens: options.maxTokens,
193
+ ...(options.temperature !== undefined && { temperature: options.temperature }),
194
+ ...(options.maxTokens !== undefined && { maxTokens: options.maxTokens }),
173
195
  });
174
196
  return result.object.yaml;
175
197
  }
@@ -179,8 +201,8 @@ async function generateDiagramContent(prompt, model, format, options) {
179
201
  schema: { diagram: `The ${format} diagram code` },
180
202
  prompt: `Generate a ${format} diagram for: ${prompt}`,
181
203
  system: options.system || `Generate ${format} diagram syntax.`,
182
- temperature: options.temperature,
183
- maxTokens: options.maxTokens,
204
+ ...(options.temperature !== undefined && { temperature: options.temperature }),
205
+ ...(options.maxTokens !== undefined && { maxTokens: options.maxTokens }),
184
206
  });
185
207
  return result.object.diagram;
186
208
  }
@@ -190,8 +212,8 @@ async function generateSlidesContent(prompt, model, slideCount, options) {
190
212
  schema: { slides: `Slidev/Marp markdown with ${slideCount} slides` },
191
213
  prompt: `Generate a ${slideCount}-slide presentation about: ${prompt}`,
192
214
  system: options.system || 'Generate markdown slides in Slidev/Marp format.',
193
- temperature: options.temperature,
194
- maxTokens: options.maxTokens,
215
+ ...(options.temperature !== undefined && { temperature: options.temperature }),
216
+ ...(options.maxTokens !== undefined && { maxTokens: options.maxTokens }),
195
217
  });
196
218
  return result.object.slides;
197
219
  }
@@ -459,7 +481,7 @@ export function decide(criteriaOrStrings, ...templateArgs) {
459
481
  // Override resolve to return the actual option
460
482
  const originalResolve = promise.resolve.bind(promise);
461
483
  promise.resolve = async () => {
462
- const result = await originalResolve();
484
+ const result = (await originalResolve());
463
485
  const index = typeof result.chosenIndex === 'string'
464
486
  ? parseInt(result.chosenIndex, 10)
465
487
  : result.chosenIndex;
@@ -486,4 +508,354 @@ export const approve = createAITemplateFunction('object', {
486
508
  export const review = createAITemplateFunction('object', {
487
509
  system: 'Generate a review request.',
488
510
  });
511
+ // ============================================================================
512
+ // Auto-Define Functions
513
+ //
514
+ // Inlined from former ai-proxy.ts. These helpers provide the auto-define
515
+ // convenience layer (analyze a name + example args, infer a function type and
516
+ // schema, register it). Property-access tracking lives entirely in
517
+ // ai-promise.ts; this section is a shallow dispatch over define() and
518
+ // generateObject().
519
+ // ============================================================================
520
+ /**
521
+ * Analyze a function call and determine what type of function it should be
522
+ */
523
+ async function analyzeFunction(name, args) {
524
+ // Convert camelCase/snake_case to readable name
525
+ const readableName = name
526
+ .replace(/([A-Z])/g, ' $1')
527
+ .replace(/_/g, ' ')
528
+ .toLowerCase()
529
+ .trim();
530
+ const argDescriptions = Object.entries(args)
531
+ .map(([key, value]) => {
532
+ const type = Array.isArray(value) ? 'array' : typeof value;
533
+ return ` - ${key}: ${type} (example: ${JSON.stringify(value).slice(0, 50)})`;
534
+ })
535
+ .join('\n');
536
+ const result = await generateObject({
537
+ model: 'sonnet',
538
+ schema: {
539
+ type: 'code | generative | agentic | human',
540
+ reasoning: 'Why this function type is appropriate (1-2 sentences)',
541
+ description: 'What this function does',
542
+ output: 'string | object | image | video | audio',
543
+ returnType: 'Schema for the return type as a SimpleSchema object',
544
+ system: 'System prompt for the AI (if generative/agentic)',
545
+ promptTemplate: 'Prompt template with {{arg}} placeholders',
546
+ instructions: 'Instructions for agentic/human functions',
547
+ needsTools: 'true | false',
548
+ suggestedTools: ['Names of tools that might be needed'],
549
+ channel: 'slack | email | web | sms | custom',
550
+ },
551
+ system: `You are an expert at designing AI functions. Analyze the function name and arguments to determine the best function type.
552
+
553
+ Function Types:
554
+ - "code": A DETERMINISTIC algorithm with no model at run time — a pure calculation, data transformation, or rule that always produces the same output for the same input (e.g. tax math, parsing, formatting). A self-contained TypeScript body can be written for it once.
555
+ - "generative": For generating content (text, summaries, translations, creative writing, structured data) — needs a model on every call
556
+ - "agentic": For complex tasks requiring multiple steps, research, or tool use (research, planning, multi-step workflows)
557
+ - "human": For tasks requiring human judgment, approval, or input (approvals, reviews, decisions)
558
+
559
+ Guidelines:
560
+ - Most functions should be "generative" - they generate content or structured data
561
+ - Use "code" ONLY when the task is a deterministic algorithm expressible as a self-contained function body (no model, no external state). If it needs a model at run time, it is "generative", not "code".
562
+ - Use "agentic" when the task requires research, multiple steps, or external tool use
563
+ - Use "human" when human judgment/approval is essential`,
564
+ prompt: `Analyze this function call and determine how to define it:
565
+
566
+ Function Name: ${name}
567
+ Readable Name: ${readableName}
568
+ Arguments:
569
+ ${argDescriptions || ' (no arguments)'}
570
+
571
+ Determine:
572
+ 1. What type of function this should be
573
+ 2. What it should return
574
+ 3. How it should be implemented`,
575
+ });
576
+ const analysis = result.object;
577
+ // Build the function definition based on the analysis
578
+ let definition;
579
+ const baseDefinition = {
580
+ name,
581
+ description: analysis.description,
582
+ args: inferArgsSchema(args),
583
+ returnType: analysis.returnType,
584
+ };
585
+ switch (analysis.type) {
586
+ case 'code': {
587
+ // `Code` is deterministic — it cannot be a call-time model invocation.
588
+ // Author a self-contained TS body ONCE here (at define time), then carry
589
+ // it as an inline `code` body so every subsequent call is deterministic.
590
+ const authored = await generateCode({
591
+ name,
592
+ description: analysis.description,
593
+ args: baseDefinition.args,
594
+ returnType: baseDefinition.returnType,
595
+ language: 'typescript',
596
+ instructions: `${analysis.instructions ?? ''}\n\nWrite the body of a single function that receives a parameter named \`args\` (an object with the keys above) and \`return\`s the result. Do not include the function signature, imports, or surrounding declarations — only the statements that go inside the function body.`.trim(),
597
+ }, args);
598
+ definition = {
599
+ ...baseDefinition,
600
+ type: 'code',
601
+ language: 'typescript',
602
+ instructions: analysis.instructions,
603
+ code: authored,
604
+ };
605
+ break;
606
+ }
607
+ case 'agentic':
608
+ definition = {
609
+ ...baseDefinition,
610
+ type: 'agentic',
611
+ instructions: analysis.instructions || `Complete the ${readableName} task`,
612
+ promptTemplate: analysis.promptTemplate,
613
+ tools: [], // Tools would need to be provided separately
614
+ maxIterations: 10,
615
+ };
616
+ break;
617
+ case 'human':
618
+ definition = {
619
+ ...baseDefinition,
620
+ type: 'human',
621
+ channel: (analysis.channel || 'web'),
622
+ instructions: analysis.instructions || `Please review and respond to this ${readableName} request`,
623
+ promptTemplate: analysis.promptTemplate,
624
+ };
625
+ break;
626
+ case 'generative':
627
+ default:
628
+ definition = {
629
+ ...baseDefinition,
630
+ type: 'generative',
631
+ output: (analysis.output || 'object'),
632
+ system: analysis.system,
633
+ promptTemplate: analysis.promptTemplate || `{{${Object.keys(args)[0] || 'input'}}}`,
634
+ };
635
+ break;
636
+ }
637
+ return {
638
+ type: analysis.type,
639
+ reasoning: analysis.reasoning,
640
+ definition,
641
+ };
642
+ }
643
+ /**
644
+ * Infer a schema from example arguments
645
+ */
646
+ function inferArgsSchema(args) {
647
+ const schema = {};
648
+ for (const [key, value] of Object.entries(args)) {
649
+ if (typeof value === 'string') {
650
+ schema[key] = `The ${key.replace(/([A-Z])/g, ' $1').toLowerCase()}`;
651
+ }
652
+ else if (typeof value === 'number') {
653
+ schema[key] = `The ${key.replace(/([A-Z])/g, ' $1').toLowerCase()} (number)`;
654
+ }
655
+ else if (typeof value === 'boolean') {
656
+ schema[key] = `Whether ${key.replace(/([A-Z])/g, ' $1').toLowerCase()} (boolean)`;
657
+ }
658
+ else if (Array.isArray(value)) {
659
+ if (value.length > 0 && typeof value[0] === 'string') {
660
+ schema[key] = [`List of ${key.replace(/([A-Z])/g, ' $1').toLowerCase()}`];
661
+ }
662
+ else {
663
+ schema[key] = [`Items for ${key.replace(/([A-Z])/g, ' $1').toLowerCase()}`];
664
+ }
665
+ }
666
+ else if (typeof value === 'object' && value !== null) {
667
+ schema[key] = inferArgsSchema(value);
668
+ }
669
+ else {
670
+ schema[key] = `The ${key.replace(/([A-Z])/g, ' $1').toLowerCase()}`;
671
+ }
672
+ }
673
+ return schema;
674
+ }
675
+ /**
676
+ * Auto-define a function based on its name and arguments, or define with explicit definition
677
+ *
678
+ * When called with (name, args), uses AI to analyze and determine:
679
+ * - What type of function it should be (code, generative, agentic, human)
680
+ * - What it should return
681
+ * - How it should be implemented
682
+ *
683
+ * When called with a FunctionDefinition, creates the function directly.
684
+ *
685
+ * @example
686
+ * ```ts
687
+ * // Auto-define from name and example args
688
+ * const planTrip = await define('planTrip', { destination: 'Tokyo', travelers: 2 })
689
+ *
690
+ * // Or define explicitly
691
+ * const summarize = define.generative({
692
+ * name: 'summarize',
693
+ * args: { text: 'Text to summarize' },
694
+ * output: 'string',
695
+ * })
696
+ *
697
+ * // Or with full definition
698
+ * const fn = defineFunction({
699
+ * type: 'generative',
700
+ * name: 'translate',
701
+ * args: { text: 'Text', lang: 'Target language' },
702
+ * output: 'string',
703
+ * })
704
+ * ```
705
+ */
706
+ async function autoDefineImpl(name, args) {
707
+ // Check if already defined
708
+ const existing = functions.get(name);
709
+ if (existing) {
710
+ return existing;
711
+ }
712
+ // Analyze and define the function
713
+ const { definition } = await analyzeFunction(name, args);
714
+ // Create the defined function
715
+ const definedFn = createDefinedFunction(definition);
716
+ // Store in registry
717
+ functions.set(name, definedFn);
718
+ return definedFn;
719
+ }
720
+ /**
721
+ * Define functions - auto-define or use typed helpers
722
+ */
723
+ export const define = Object.assign(autoDefineImpl, {
724
+ /**
725
+ * Define a **deterministic** code function (a handler — no LLM at call time).
726
+ *
727
+ * Supply a `handler` (canonical) or an inline `code` body. To have a model
728
+ * *author* code instead, use {@link generateCode} or `define.generative`.
729
+ */
730
+ code: (definition) => {
731
+ const fn = defineFunction({ type: 'code', ...definition });
732
+ functions.set(definition.name, fn);
733
+ return fn;
734
+ },
735
+ /**
736
+ * Define a generative function
737
+ */
738
+ generative: (definition) => {
739
+ const fn = defineFunction({ type: 'generative', ...definition });
740
+ functions.set(definition.name, fn);
741
+ return fn;
742
+ },
743
+ /**
744
+ * Define an agentic function
745
+ */
746
+ agentic: (definition) => {
747
+ const fn = defineFunction({ type: 'agentic', ...definition });
748
+ functions.set(definition.name, fn);
749
+ return fn;
750
+ },
751
+ /**
752
+ * Define a human-in-the-loop function
753
+ */
754
+ human: (definition) => {
755
+ const fn = defineFunction({ type: 'human', ...definition });
756
+ functions.set(definition.name, fn);
757
+ return fn;
758
+ },
759
+ });
760
+ // ============================================================================
761
+ // AI Proxy - Smart AI Client with Auto-Definition
762
+ // ============================================================================
763
+ /** Known built-in method names that should not be auto-defined */
764
+ const BUILTIN_METHODS = new Set([
765
+ 'do',
766
+ 'is',
767
+ 'code',
768
+ 'decide',
769
+ 'diagram',
770
+ 'generate',
771
+ 'image',
772
+ 'video',
773
+ 'write',
774
+ 'list',
775
+ 'lists',
776
+ 'functions',
777
+ 'define',
778
+ 'defineFunction',
779
+ 'then',
780
+ 'catch',
781
+ 'finally',
782
+ ]);
783
+ /**
784
+ * Create a smart AI client that auto-defines functions on first call
785
+ *
786
+ * @example
787
+ * ```ts
788
+ * const ai = createSmartAI()
789
+ *
790
+ * // First call - auto-defines the function
791
+ * const trip = await ai.planTrip({
792
+ * destination: 'Tokyo',
793
+ * dates: { start: '2024-03-01', end: '2024-03-10' },
794
+ * travelers: 2,
795
+ * })
796
+ *
797
+ * // Second call - uses cached definition (in-memory)
798
+ * const trip2 = await ai.planTrip({
799
+ * destination: 'Paris',
800
+ * dates: { start: '2024-06-01', end: '2024-06-07' },
801
+ * travelers: 4,
802
+ * })
803
+ *
804
+ * // Access registry and define
805
+ * console.log(ai.functions.list()) // ['planTrip']
806
+ * ai.define.generative({ name: 'summarize', ... })
807
+ * ```
808
+ */
809
+ export function createSmartAI() {
810
+ const base = {
811
+ functions,
812
+ define,
813
+ defineFunction,
814
+ };
815
+ return new Proxy(base, {
816
+ get(target, prop) {
817
+ // Return built-in properties
818
+ if (prop in target) {
819
+ return target[prop];
820
+ }
821
+ // Skip internal properties
822
+ if (typeof prop === 'symbol' || prop.startsWith('_') || BUILTIN_METHODS.has(prop)) {
823
+ return undefined;
824
+ }
825
+ // Return a function that auto-defines and calls
826
+ return async (args = {}) => {
827
+ // Check if function is already defined
828
+ let fn = functions.get(prop);
829
+ if (!fn) {
830
+ // Auto-define the function
831
+ fn = await define(prop, args);
832
+ }
833
+ // Call the function
834
+ return fn.call(args);
835
+ };
836
+ },
837
+ });
838
+ }
839
+ /**
840
+ * Default AI proxy instance with auto-define capability.
841
+ *
842
+ * This is the smart proxy `aiProxy` (re-exported from index.ts as `aiProxy`).
843
+ * It is intentionally distinct from the `ai` template-tag primitive above —
844
+ * see `ai` (line ~354) for the template function used like `ai\`...\``.
845
+ *
846
+ * @example
847
+ * ```ts
848
+ * import { aiProxy } from 'ai-functions'
849
+ *
850
+ * // Auto-define and call
851
+ * const result = await aiProxy.summarize({ text: 'Long article...' })
852
+ *
853
+ * // Access functions registry
854
+ * aiProxy.functions.list()
855
+ *
856
+ * // Define explicitly
857
+ * aiProxy.define.generative({ name: 'translate', ... })
858
+ * ```
859
+ */
860
+ export const aiProxy = createSmartAI();
489
861
  //# sourceMappingURL=primitives.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"primitives.js","sourceRoot":"","sources":["../src/primitives.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"primitives.js","sourceRoot":"","sources":["../src/primitives.ts"],"names":[],"mappings":"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"}