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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-orchestration.js","sourceRoot":"","sources":["../src/tool-orchestration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Type Guards for AI Functions
3
+ *
4
+ * Shared type guard utilities used across AI packages.
5
+ *
6
+ * @packageDocumentation
7
+ */
8
+ import type { ZodTypeAny } from 'zod';
9
+ /**
10
+ * Check if value is a Zod schema
11
+ *
12
+ * Uses duck-typing to detect Zod schemas by checking for the
13
+ * `_def` property (internal Zod schema definition) and `parse` method.
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * import { isZodSchema } from 'ai-functions'
18
+ * import { z } from 'zod'
19
+ *
20
+ * const schema = z.object({ name: z.string() })
21
+ * if (isZodSchema(schema)) {
22
+ * // TypeScript knows schema is ZodTypeAny
23
+ * schema.parse({ name: 'test' })
24
+ * }
25
+ * ```
26
+ */
27
+ export declare function isZodSchema(value: unknown): value is ZodTypeAny;
28
+ //# sourceMappingURL=type-guards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-guards.d.ts","sourceRoot":"","sources":["../src/type-guards.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AAErC;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAE/D"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Type Guards for AI Functions
3
+ *
4
+ * Shared type guard utilities used across AI packages.
5
+ *
6
+ * @packageDocumentation
7
+ */
8
+ /**
9
+ * Check if value is a Zod schema
10
+ *
11
+ * Uses duck-typing to detect Zod schemas by checking for the
12
+ * `_def` property (internal Zod schema definition) and `parse` method.
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * import { isZodSchema } from 'ai-functions'
17
+ * import { z } from 'zod'
18
+ *
19
+ * const schema = z.object({ name: z.string() })
20
+ * if (isZodSchema(schema)) {
21
+ * // TypeScript knows schema is ZodTypeAny
22
+ * schema.parse({ name: 'test' })
23
+ * }
24
+ * ```
25
+ */
26
+ export function isZodSchema(value) {
27
+ return value !== null && typeof value === 'object' && '_def' in value && 'parse' in value;
28
+ }
29
+ //# sourceMappingURL=type-guards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-guards.js","sourceRoot":"","sources":["../src/type-guards.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK,IAAI,OAAO,IAAI,KAAK,CAAA;AAC3F,CAAC"}
package/dist/types.d.ts CHANGED
@@ -1,6 +1,77 @@
1
1
  /**
2
2
  * Core types for AI functions
3
3
  */
4
+ /**
5
+ * Symbol used to identify pending human function results
6
+ */
7
+ export declare const PENDING_HUMAN_RESULT_SYMBOL: unique symbol;
8
+ /**
9
+ * Human interaction channels
10
+ *
11
+ * - chat: Real-time messaging (WebSocket, in-app)
12
+ * - email: Async email communication
13
+ * - phone: Voice calls
14
+ * - sms: SMS text messages
15
+ * - workspace: Team collaboration platforms (Slack, Teams, Discord)
16
+ * - web: Web-based interface (browser, web app)
17
+ */
18
+ export type HumanChannel = 'chat' | 'email' | 'phone' | 'sms' | 'workspace' | 'web';
19
+ /**
20
+ * Pending human function result returned when human input is not yet available.
21
+ *
22
+ * This is returned by human functions that need actual human input but are running
23
+ * in a placeholder mode (e.g., during testing or when channel integrations are not configured).
24
+ *
25
+ * Use `isPendingHumanResult()` to check if a result is pending before using it.
26
+ *
27
+ * @example
28
+ * ```ts
29
+ * const result = await approveRefund({ amount: 500, reason: 'Duplicate charge' })
30
+ *
31
+ * if (isPendingHumanResult(result)) {
32
+ * console.log('Waiting for human approval via:', result.channel)
33
+ * // Handle pending state - queue for later, show UI, etc.
34
+ * } else {
35
+ * // result is the actual TOutput type
36
+ * console.log('Approved:', result.approved)
37
+ * }
38
+ * ```
39
+ */
40
+ export interface HumanFunctionPending<TExpected = unknown> {
41
+ /** Symbol marker for type identification */
42
+ readonly [PENDING_HUMAN_RESULT_SYMBOL]: true;
43
+ /** Indicates this is a pending placeholder, not actual human response */
44
+ readonly _pending: true;
45
+ /** The channel where human input was requested */
46
+ readonly channel: HumanChannel;
47
+ /** Generated UI/content artifacts for the channel */
48
+ readonly artifacts: unknown;
49
+ /** The expected response type schema */
50
+ readonly expectedResponseType: TExpected;
51
+ }
52
+ /**
53
+ * Type guard to check if a result is a pending human function result.
54
+ *
55
+ * Use this to safely handle cases where human input is not yet available.
56
+ *
57
+ * @param value - The value to check
58
+ * @returns True if the value is a HumanFunctionPending object
59
+ *
60
+ * @example
61
+ * ```ts
62
+ * const result = await reviewDocument({ docId: '123' })
63
+ *
64
+ * if (isPendingHumanResult(result)) {
65
+ * // result is HumanFunctionPending - human input needed
66
+ * console.warn('Human review pending:', result.channel)
67
+ * return { status: 'pending', channel: result.channel }
68
+ * }
69
+ *
70
+ * // result is ReviewResult - actual human response
71
+ * return { status: 'reviewed', approved: result.approved }
72
+ * ```
73
+ */
74
+ export declare function isPendingHumanResult<T>(value: T | HumanFunctionPending): value is HumanFunctionPending;
4
75
  /**
5
76
  * A function definition that can be called by AI
6
77
  *
@@ -172,17 +243,6 @@ export type CodeLanguage = 'typescript' | 'javascript' | 'python' | 'go' | 'rust
172
243
  * Output types for generative functions
173
244
  */
174
245
  export type GenerativeOutputType = 'string' | 'object' | 'image' | 'video';
175
- /**
176
- * Human interaction channels
177
- *
178
- * - chat: Real-time messaging (WebSocket, in-app)
179
- * - email: Async email communication
180
- * - phone: Voice calls
181
- * - sms: SMS text messages
182
- * - workspace: Team collaboration platforms (Slack, Teams, Discord)
183
- * - web: Web-based interface (browser, web app)
184
- */
185
- export type HumanChannel = 'chat' | 'email' | 'phone' | 'sms' | 'workspace' | 'web';
186
246
  /**
187
247
  * Legacy channel type for backwards compatibility
188
248
  * @deprecated Use HumanChannel instead
@@ -231,12 +291,24 @@ export interface BaseFunctionDefinition<TOutput = unknown, TInput = unknown> {
231
291
  returnType?: TOutput;
232
292
  }
233
293
  /**
234
- * Code function - generates actual executable code
294
+ * Code function - a **deterministic** handler.
295
+ *
296
+ * `Code` is the deterministic kind: a fetch/transform/rule handler that runs
297
+ * the **same logic every time** with no model in the execution path. When
298
+ * called, it invokes the supplied {@link CodeFunctionDefinition.handler}
299
+ * (or evaluates the inline {@link CodeFunctionDefinition.code} body) and
300
+ * returns the result directly — no LLM is consulted at call time.
235
301
  *
236
- * When called, this generates:
237
- * - Implementation code with JSDoc comments
238
- * - Vitest test cases
239
- * - Example usage scripts
302
+ * This is the contract consumers bind to (e.g. ADR-0033's
303
+ * "Code = deterministic"). If you want a model to *author* code, that is a
304
+ * generation task: use {@link generateCode} / the `generate('code', …)`
305
+ * primitive, or define a `Generative` function whose output is source text.
306
+ * See the migration note in the package README.
307
+ *
308
+ * Exactly one of `handler` or `code` should be supplied. `handler` is the
309
+ * canonical form (a native function reference); `code` is an inline source
310
+ * body, deterministically compiled by the consumer's runtime — never sent to
311
+ * a model.
240
312
  *
241
313
  * @example
242
314
  * ```ts
@@ -248,7 +320,7 @@ export interface BaseFunctionDefinition<TOutput = unknown, TInput = unknown> {
248
320
  * rate: 'Tax rate as decimal (number)',
249
321
  * },
250
322
  * returnType: 'The calculated tax amount (number)',
251
- * language: 'typescript',
323
+ * handler: ({ amount, rate }) => amount * rate,
252
324
  * })
253
325
  * ```
254
326
  *
@@ -257,6 +329,50 @@ export interface BaseFunctionDefinition<TOutput = unknown, TInput = unknown> {
257
329
  */
258
330
  export interface CodeFunctionDefinition<TOutput = unknown, TInput = unknown> extends BaseFunctionDefinition<TOutput, TInput> {
259
331
  type: 'code';
332
+ /**
333
+ * The deterministic handler invoked on every call. Receives the parsed
334
+ * `args` and returns (or resolves to) the result. No LLM is involved.
335
+ *
336
+ * Either `handler` or {@link CodeFunctionDefinition.code} must be provided;
337
+ * `handler` takes precedence when both are present.
338
+ */
339
+ handler?: (input: TInput) => TOutput | Promise<TOutput>;
340
+ /**
341
+ * Inline source body for the handler, as a string. Deterministically
342
+ * compiled by the consumer's runtime (it is **not** generated by a model).
343
+ * Used when a handler cannot be passed by reference (e.g. a definition
344
+ * loaded from storage). The body receives the `args` in scope and should
345
+ * `return` the result.
346
+ *
347
+ * Either `code` or {@link CodeFunctionDefinition.handler} must be provided.
348
+ */
349
+ code?: string;
350
+ /** Target programming language of `code` (default: `'typescript'`). Metadata only. */
351
+ language?: CodeLanguage;
352
+ /** Optional human-readable note about what the handler does. Metadata only. */
353
+ instructions?: string;
354
+ }
355
+ /**
356
+ * Definition for a code-**authoring** request — the explicit, opt-in path for
357
+ * having a model *write* code. This is the behavior `type: 'code'` used to
358
+ * have implicitly; it has been split out so that `Code` can mean
359
+ * "deterministic handler" without a silent change of meaning.
360
+ *
361
+ * This is **not** part of the {@link FunctionDefinition} union and never
362
+ * executes deterministically — calling it consults a model. Drive it via
363
+ * {@link generateCode}.
364
+ *
365
+ * @typeParam TInput - The arguments schema describing the code to author
366
+ */
367
+ export interface CodeGenerationDefinition<TInput = unknown> {
368
+ /** Name of the function/query to author */
369
+ name: string;
370
+ /** Human-readable description of what the code should do */
371
+ description?: string;
372
+ /** Arguments/spec schema describing the code to generate */
373
+ args: TInput;
374
+ /** Return type schema the authored code should produce (optional) */
375
+ returnType?: unknown;
260
376
  /** Target programming language */
261
377
  language?: CodeLanguage;
262
378
  /** Additional context or requirements for code generation */
@@ -265,6 +381,8 @@ export interface CodeFunctionDefinition<TOutput = unknown, TInput = unknown> ext
265
381
  includeTests?: boolean;
266
382
  /** Whether to include example usage (default: true) */
267
383
  includeExamples?: boolean;
384
+ /** Model to use for authoring (defaults to 'sonnet') */
385
+ model?: string;
268
386
  }
269
387
  /**
270
388
  * Code function result with generated artifacts
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js CHANGED
@@ -1,5 +1,40 @@
1
1
  /**
2
2
  * Core types for AI functions
3
3
  */
4
- export {};
4
+ // ============================================================================
5
+ // Human Function Pending Types
6
+ // ============================================================================
7
+ /**
8
+ * Symbol used to identify pending human function results
9
+ */
10
+ export const PENDING_HUMAN_RESULT_SYMBOL = Symbol.for('HumanFunctionPending');
11
+ /**
12
+ * Type guard to check if a result is a pending human function result.
13
+ *
14
+ * Use this to safely handle cases where human input is not yet available.
15
+ *
16
+ * @param value - The value to check
17
+ * @returns True if the value is a HumanFunctionPending object
18
+ *
19
+ * @example
20
+ * ```ts
21
+ * const result = await reviewDocument({ docId: '123' })
22
+ *
23
+ * if (isPendingHumanResult(result)) {
24
+ * // result is HumanFunctionPending - human input needed
25
+ * console.warn('Human review pending:', result.channel)
26
+ * return { status: 'pending', channel: result.channel }
27
+ * }
28
+ *
29
+ * // result is ReviewResult - actual human response
30
+ * return { status: 'reviewed', approved: result.approved }
31
+ * ```
32
+ */
33
+ export function isPendingHumanResult(value) {
34
+ return (value !== null &&
35
+ typeof value === 'object' &&
36
+ '_pending' in value &&
37
+ value._pending === true &&
38
+ PENDING_HUMAN_RESULT_SYMBOL in value);
39
+ }
5
40
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,+EAA+E;AAC/E,+BAA+B;AAC/B,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAA;AAgD7E;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,oBAAoB,CAClC,KAA+B;IAE/B,OAAO,CACL,KAAK,KAAK,IAAI;QACd,OAAO,KAAK,KAAK,QAAQ;QACzB,UAAU,IAAI,KAAK;QACnB,KAAK,CAAC,QAAQ,KAAK,IAAI;QACvB,2BAA2B,IAAI,KAAK,CACrC,CAAA;AACH,CAAC"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * wrapForV3 — convenience composer for the v3 cascade-walker / evaluator-panel
3
+ * use case.
4
+ *
5
+ * Composes `cacheMiddleware`, `budgetMiddleware`, and `traceMiddleware` in a
6
+ * single `wrapLanguageModel` call so callers in services-as-software (round
7
+ * 15+ swap) can replace their existing post-hoc duck-typing in
8
+ * `cost-estimate.ts` with a single wrap call:
9
+ *
10
+ * ```ts
11
+ * import { wrapForV3, BudgetTracker, getEvalLogStore } from 'ai-functions'
12
+ *
13
+ * const tracker = new BudgetTracker({ maxCost: 1.0 })
14
+ * const store = getEvalLogStore()
15
+ *
16
+ * const wrapped = wrapForV3(openai('gpt-4o'), {
17
+ * cache: { store: 'disk', ttlMs: 86_400_000 },
18
+ * budget: { tracker },
19
+ * trace: { emit: (e) => store.record({ ...e, costUsd: e.costUsd ?? 0 }) },
20
+ * })
21
+ * ```
22
+ *
23
+ * **Composition order:**
24
+ * 1. **cache** — first so cache hits skip budget+trace network cost. The
25
+ * cached payload's usage still flows downstream so budget records the
26
+ * cost on hits AND misses.
27
+ * 2. **budget** — second so it sees the wrapped result regardless of
28
+ * cache hit/miss; tracker.recordUsage fires either way.
29
+ * 3. **trace** — last so the event sees the final outcome (post-cache,
30
+ * post-budget). Errors from `emit` are swallowed.
31
+ *
32
+ * AI SDK 6 ordering semantics (per the wrapLanguageModel JSDoc): "the first
33
+ * middleware will transform the input first, and the last middleware will
34
+ * be wrapped directly around the model." So when we hand the array
35
+ * `[cache, budget, trace]`, the runtime call order is
36
+ * `cache → budget → trace → model` on the way in, and the reverse on the
37
+ * way out. Cache sees the call first; if it has a hit, downstream layers
38
+ * never run their `wrapGenerate` body for that call. Budget and trace each
39
+ * get their own post-completion hook on the result the layer below them
40
+ * returned — so on a cache hit, neither budget nor trace runs (because
41
+ * cache short-circuits via `return cached`). To get budget + trace on
42
+ * cache hits, the budgetMiddleware/traceMiddleware would need to wrap the
43
+ * cache middleware (i.e. install AFTER it in the chain). Per the spec
44
+ * above, "later in the array = closer to the model" → install order
45
+ * matters: callers who want cache-hit cost recording should pass
46
+ * `[budget, trace, cache]`. We use `[cache, budget, trace]` as the default
47
+ * because the eval-fixture use case wants the 5x verify-time win and is
48
+ * happy to skip the cost record on the hit path (the original miss already
49
+ * recorded it).
50
+ *
51
+ * @packageDocumentation
52
+ */
53
+ import { type LanguageModel } from 'ai';
54
+ import { type CacheMiddlewareOptions } from './middleware/cache.js';
55
+ import { type BudgetMiddlewareOptions } from './middleware/budget.js';
56
+ import { type TraceMiddlewareOptions } from './middleware/trace.js';
57
+ /**
58
+ * Options for {@link wrapForV3}. All three middleware sections are
59
+ * optional — pass only what you need.
60
+ */
61
+ export interface WrapForV3Options {
62
+ /** Cache config (see {@link CacheMiddlewareOptions}). */
63
+ cache?: CacheMiddlewareOptions;
64
+ /** Budget tracking config (see {@link BudgetMiddlewareOptions}). */
65
+ budget?: BudgetMiddlewareOptions;
66
+ /** Trace emission config (see {@link TraceMiddlewareOptions}). */
67
+ trace?: TraceMiddlewareOptions;
68
+ }
69
+ /**
70
+ * Wrap a {@link LanguageModel} with the v3-cascade middleware stack
71
+ * (cache → budget → trace, in install order).
72
+ *
73
+ * Returns the wrapped model with the same shape as the input; downstream
74
+ * `generateText` / `generateObject` / `streamText` calls treat it as a
75
+ * regular model.
76
+ *
77
+ * @see WrapForV3Options for partial-config behaviour
78
+ */
79
+ export declare function wrapForV3(model: LanguageModel, opts?: WrapForV3Options): LanguageModel;
80
+ //# sourceMappingURL=wrap-for-v3.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrap-for-v3.d.ts","sourceRoot":"","sources":["../src/wrap-for-v3.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAEH,OAAO,EAAqB,KAAK,aAAa,EAAE,MAAM,IAAI,CAAA;AAE1D,OAAO,EAAmB,KAAK,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AACpF,OAAO,EAAoB,KAAK,uBAAuB,EAAE,MAAM,wBAAwB,CAAA;AACvF,OAAO,EAAmB,KAAK,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAMpF;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,yDAAyD;IACzD,KAAK,CAAC,EAAE,sBAAsB,CAAA;IAC9B,oEAAoE;IACpE,MAAM,CAAC,EAAE,uBAAuB,CAAA;IAChC,kEAAkE;IAClE,KAAK,CAAC,EAAE,sBAAsB,CAAA;CAC/B;AAMD;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,GAAE,gBAAqB,GAAG,aAAa,CAc1F"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * wrapForV3 — convenience composer for the v3 cascade-walker / evaluator-panel
3
+ * use case.
4
+ *
5
+ * Composes `cacheMiddleware`, `budgetMiddleware`, and `traceMiddleware` in a
6
+ * single `wrapLanguageModel` call so callers in services-as-software (round
7
+ * 15+ swap) can replace their existing post-hoc duck-typing in
8
+ * `cost-estimate.ts` with a single wrap call:
9
+ *
10
+ * ```ts
11
+ * import { wrapForV3, BudgetTracker, getEvalLogStore } from 'ai-functions'
12
+ *
13
+ * const tracker = new BudgetTracker({ maxCost: 1.0 })
14
+ * const store = getEvalLogStore()
15
+ *
16
+ * const wrapped = wrapForV3(openai('gpt-4o'), {
17
+ * cache: { store: 'disk', ttlMs: 86_400_000 },
18
+ * budget: { tracker },
19
+ * trace: { emit: (e) => store.record({ ...e, costUsd: e.costUsd ?? 0 }) },
20
+ * })
21
+ * ```
22
+ *
23
+ * **Composition order:**
24
+ * 1. **cache** — first so cache hits skip budget+trace network cost. The
25
+ * cached payload's usage still flows downstream so budget records the
26
+ * cost on hits AND misses.
27
+ * 2. **budget** — second so it sees the wrapped result regardless of
28
+ * cache hit/miss; tracker.recordUsage fires either way.
29
+ * 3. **trace** — last so the event sees the final outcome (post-cache,
30
+ * post-budget). Errors from `emit` are swallowed.
31
+ *
32
+ * AI SDK 6 ordering semantics (per the wrapLanguageModel JSDoc): "the first
33
+ * middleware will transform the input first, and the last middleware will
34
+ * be wrapped directly around the model." So when we hand the array
35
+ * `[cache, budget, trace]`, the runtime call order is
36
+ * `cache → budget → trace → model` on the way in, and the reverse on the
37
+ * way out. Cache sees the call first; if it has a hit, downstream layers
38
+ * never run their `wrapGenerate` body for that call. Budget and trace each
39
+ * get their own post-completion hook on the result the layer below them
40
+ * returned — so on a cache hit, neither budget nor trace runs (because
41
+ * cache short-circuits via `return cached`). To get budget + trace on
42
+ * cache hits, the budgetMiddleware/traceMiddleware would need to wrap the
43
+ * cache middleware (i.e. install AFTER it in the chain). Per the spec
44
+ * above, "later in the array = closer to the model" → install order
45
+ * matters: callers who want cache-hit cost recording should pass
46
+ * `[budget, trace, cache]`. We use `[cache, budget, trace]` as the default
47
+ * because the eval-fixture use case wants the 5x verify-time win and is
48
+ * happy to skip the cost record on the hit path (the original miss already
49
+ * recorded it).
50
+ *
51
+ * @packageDocumentation
52
+ */
53
+ import { wrapLanguageModel } from 'ai';
54
+ import { cacheMiddleware } from './middleware/cache.js';
55
+ import { budgetMiddleware } from './middleware/budget.js';
56
+ import { traceMiddleware } from './middleware/trace.js';
57
+ // ============================================================================
58
+ // Composer
59
+ // ============================================================================
60
+ /**
61
+ * Wrap a {@link LanguageModel} with the v3-cascade middleware stack
62
+ * (cache → budget → trace, in install order).
63
+ *
64
+ * Returns the wrapped model with the same shape as the input; downstream
65
+ * `generateText` / `generateObject` / `streamText` calls treat it as a
66
+ * regular model.
67
+ *
68
+ * @see WrapForV3Options for partial-config behaviour
69
+ */
70
+ export function wrapForV3(model, opts = {}) {
71
+ const middleware = [];
72
+ if (opts.cache)
73
+ middleware.push(cacheMiddleware(opts.cache));
74
+ if (opts.budget)
75
+ middleware.push(budgetMiddleware(opts.budget));
76
+ if (opts.trace)
77
+ middleware.push(traceMiddleware(opts.trace));
78
+ if (middleware.length === 0)
79
+ return model;
80
+ // wrapLanguageModel currently accepts LanguageModelV3 — at the AI SDK 6
81
+ // surface, `LanguageModel` is the wider union. The runtime is V3
82
+ // everywhere in the published providers; the cast is the same one the
83
+ // wrapLanguageModel cookbook uses.
84
+ return wrapLanguageModel({
85
+ model: model,
86
+ middleware,
87
+ });
88
+ }
89
+ //# sourceMappingURL=wrap-for-v3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrap-for-v3.js","sourceRoot":"","sources":["../src/wrap-for-v3.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAEH,OAAO,EAAE,iBAAiB,EAAsB,MAAM,IAAI,CAAA;AAE1D,OAAO,EAAE,eAAe,EAA+B,MAAM,uBAAuB,CAAA;AACpF,OAAO,EAAE,gBAAgB,EAAgC,MAAM,wBAAwB,CAAA;AACvF,OAAO,EAAE,eAAe,EAA+B,MAAM,uBAAuB,CAAA;AAmBpF,+EAA+E;AAC/E,WAAW;AACX,+EAA+E;AAE/E;;;;;;;;;GASG;AACH,MAAM,UAAU,SAAS,CAAC,KAAoB,EAAE,OAAyB,EAAE;IACzE,MAAM,UAAU,GAAgC,EAAE,CAAA;IAClD,IAAI,IAAI,CAAC,KAAK;QAAE,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IAC5D,IAAI,IAAI,CAAC,MAAM;QAAE,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;IAC/D,IAAI,IAAI,CAAC,KAAK;QAAE,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IAC5D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IACzC,wEAAwE;IACxE,iEAAiE;IACjE,sEAAsE;IACtE,mCAAmC;IACnC,OAAO,iBAAiB,CAAC;QACvB,KAAK,EAAE,KAAwB;QAC/B,UAAU;KACX,CAAkB,CAAA;AACrB,CAAC"}