ai-functions 0.3.0 → 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.
- package/.turbo/turbo-build.log +5 -0
- package/.turbo/turbo-test.log +105 -0
- package/README.md +190 -86
- package/TODO.md +138 -0
- package/dist/ai-promise.d.ts +219 -0
- package/dist/ai-promise.d.ts.map +1 -0
- package/dist/ai-promise.js +610 -0
- package/dist/ai-promise.js.map +1 -0
- package/dist/ai.d.ts +285 -0
- package/dist/ai.d.ts.map +1 -0
- package/dist/ai.js +842 -0
- package/dist/ai.js.map +1 -0
- package/dist/batch/anthropic.d.ts +23 -0
- package/dist/batch/anthropic.d.ts.map +1 -0
- package/dist/batch/anthropic.js +257 -0
- package/dist/batch/anthropic.js.map +1 -0
- package/dist/batch/bedrock.d.ts +64 -0
- package/dist/batch/bedrock.d.ts.map +1 -0
- package/dist/batch/bedrock.js +586 -0
- package/dist/batch/bedrock.js.map +1 -0
- package/dist/batch/cloudflare.d.ts +37 -0
- package/dist/batch/cloudflare.d.ts.map +1 -0
- package/dist/batch/cloudflare.js +289 -0
- package/dist/batch/cloudflare.js.map +1 -0
- package/dist/batch/google.d.ts +41 -0
- package/dist/batch/google.d.ts.map +1 -0
- package/dist/batch/google.js +360 -0
- package/dist/batch/google.js.map +1 -0
- package/dist/batch/index.d.ts +31 -0
- package/dist/batch/index.d.ts.map +1 -0
- package/dist/batch/index.js +31 -0
- package/dist/batch/index.js.map +1 -0
- package/dist/batch/memory.d.ts +44 -0
- package/dist/batch/memory.d.ts.map +1 -0
- package/dist/batch/memory.js +188 -0
- package/dist/batch/memory.js.map +1 -0
- package/dist/batch/openai.d.ts +37 -0
- package/dist/batch/openai.d.ts.map +1 -0
- package/dist/batch/openai.js +403 -0
- package/dist/batch/openai.js.map +1 -0
- package/dist/batch-map.d.ts +125 -0
- package/dist/batch-map.d.ts.map +1 -0
- package/dist/batch-map.js +406 -0
- package/dist/batch-map.js.map +1 -0
- package/dist/batch-queue.d.ts +273 -0
- package/dist/batch-queue.d.ts.map +1 -0
- package/dist/batch-queue.js +271 -0
- package/dist/batch-queue.js.map +1 -0
- package/dist/context.d.ts +133 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +267 -0
- package/dist/context.js.map +1 -0
- package/dist/embeddings.d.ts +123 -0
- package/dist/embeddings.d.ts.map +1 -0
- package/dist/embeddings.js +170 -0
- package/dist/embeddings.js.map +1 -0
- package/dist/eval/index.d.ts +8 -0
- package/dist/eval/index.d.ts.map +1 -0
- package/dist/eval/index.js +8 -0
- package/dist/eval/index.js.map +1 -0
- package/dist/eval/models.d.ts +66 -0
- package/dist/eval/models.d.ts.map +1 -0
- package/dist/eval/models.js +120 -0
- package/dist/eval/models.js.map +1 -0
- package/dist/eval/runner.d.ts +64 -0
- package/dist/eval/runner.d.ts.map +1 -0
- package/dist/eval/runner.js +148 -0
- package/dist/eval/runner.js.map +1 -0
- package/dist/generate.d.ts +168 -0
- package/dist/generate.d.ts.map +1 -0
- package/dist/generate.js +174 -0
- package/dist/generate.js.map +1 -0
- package/dist/index.d.ts +29 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +53 -52
- package/dist/index.js.map +1 -1
- package/dist/primitives.d.ts +292 -0
- package/dist/primitives.d.ts.map +1 -0
- package/dist/primitives.js +471 -0
- package/dist/primitives.js.map +1 -0
- package/dist/providers/cloudflare.d.ts +9 -0
- package/dist/providers/cloudflare.d.ts.map +1 -0
- package/dist/providers/cloudflare.js +9 -0
- package/dist/providers/cloudflare.js.map +1 -0
- package/dist/providers/index.d.ts +9 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +9 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/schema.d.ts +54 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +109 -0
- package/dist/schema.js.map +1 -0
- package/dist/template.d.ts +73 -0
- package/dist/template.d.ts.map +1 -0
- package/dist/template.js +129 -0
- package/dist/template.js.map +1 -0
- package/dist/types.d.ts +474 -106
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +4 -8
- package/dist/types.js.map +1 -1
- package/evalite.config.ts +19 -0
- package/evals/README.md +212 -0
- package/evals/classification.eval.ts +108 -0
- package/evals/marketing.eval.ts +370 -0
- package/evals/math.eval.ts +94 -0
- package/evals/run-evals.ts +166 -0
- package/evals/structured-output.eval.ts +143 -0
- package/evals/writing.eval.ts +117 -0
- package/examples/batch-blog-posts.ts +160 -0
- package/package.json +57 -57
- package/src/ai-promise.ts +784 -0
- package/src/ai.ts +1183 -0
- package/src/batch/anthropic.ts +375 -0
- package/src/batch/bedrock.ts +801 -0
- package/src/batch/cloudflare.ts +421 -0
- package/src/batch/google.ts +491 -0
- package/src/batch/index.ts +31 -0
- package/src/batch/memory.ts +253 -0
- package/src/batch/openai.ts +557 -0
- package/src/batch-map.ts +534 -0
- package/src/batch-queue.ts +493 -0
- package/src/context.ts +332 -0
- package/src/embeddings.ts +244 -0
- package/src/eval/index.ts +8 -0
- package/src/eval/models.ts +158 -0
- package/src/eval/runner.ts +217 -0
- package/src/generate.ts +245 -0
- package/src/index.ts +154 -0
- package/src/primitives.ts +612 -0
- package/src/providers/cloudflare.ts +15 -0
- package/src/providers/index.ts +14 -0
- package/src/schema.ts +147 -0
- package/src/template.ts +209 -0
- package/src/types.ts +540 -0
- package/test/README.md +105 -0
- package/test/ai-proxy.test.ts +192 -0
- package/test/async-iterators.test.ts +327 -0
- package/test/batch-background.test.ts +482 -0
- package/test/batch-blog-posts.test.ts +387 -0
- package/test/blog-generation.test.ts +510 -0
- package/test/browse-read.test.ts +611 -0
- package/test/core-functions.test.ts +694 -0
- package/test/decide.test.ts +393 -0
- package/test/define.test.ts +274 -0
- package/test/e2e-bedrock-manual.ts +163 -0
- package/test/e2e-bedrock.test.ts +191 -0
- package/test/e2e-flex-gateway.ts +157 -0
- package/test/e2e-flex-manual.ts +183 -0
- package/test/e2e-flex.test.ts +209 -0
- package/test/e2e-google-manual.ts +178 -0
- package/test/e2e-google.test.ts +216 -0
- package/test/embeddings.test.ts +284 -0
- package/test/evals/define-function.eval.test.ts +379 -0
- package/test/evals/primitives.eval.test.ts +384 -0
- package/test/function-types.test.ts +492 -0
- package/test/generate-core.test.ts +319 -0
- package/test/generate.test.ts +163 -0
- package/test/implicit-batch.test.ts +422 -0
- package/test/schema.test.ts +109 -0
- package/test/tagged-templates.test.ts +302 -0
- package/tsconfig.json +10 -0
- package/vitest.config.ts +42 -0
- package/LICENSE +0 -21
- package/bin/cli.js +0 -5
- package/dist/cli/index.d.ts +0 -10
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/cli/index.js +0 -38
- package/dist/cli/index.js.map +0 -1
- package/dist/cli/index.test.d.ts +0 -2
- package/dist/cli/index.test.d.ts.map +0 -1
- package/dist/cli/index.test.js +0 -35
- package/dist/cli/index.test.js.map +0 -1
- package/dist/constants/models.d.ts +0 -10
- package/dist/constants/models.d.ts.map +0 -1
- package/dist/constants/models.js +0 -12
- package/dist/constants/models.js.map +0 -1
- package/dist/converters/index.d.ts +0 -3
- package/dist/converters/index.d.ts.map +0 -1
- package/dist/converters/index.js +0 -3
- package/dist/converters/index.js.map +0 -1
- package/dist/converters/model.d.ts +0 -4
- package/dist/converters/model.d.ts.map +0 -1
- package/dist/converters/model.js +0 -19
- package/dist/converters/model.js.map +0 -1
- package/dist/converters/schema.d.ts +0 -4
- package/dist/converters/schema.d.ts.map +0 -1
- package/dist/converters/schema.js +0 -25
- package/dist/converters/schema.js.map +0 -1
- package/dist/core/responses.d.ts +0 -5
- package/dist/core/responses.d.ts.map +0 -1
- package/dist/core/responses.js +0 -16
- package/dist/core/responses.js.map +0 -1
- package/dist/core/responses.test.d.ts +0 -2
- package/dist/core/responses.test.d.ts.map +0 -1
- package/dist/core/responses.test.js +0 -31
- package/dist/core/responses.test.js.map +0 -1
- package/dist/errors.d.ts +0 -6
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js +0 -9
- package/dist/errors.js.map +0 -1
- package/dist/examples/streaming.test.d.ts +0 -2
- package/dist/examples/streaming.test.d.ts.map +0 -1
- package/dist/examples/streaming.test.js +0 -176
- package/dist/examples/streaming.test.js.map +0 -1
- package/dist/factory/__tests__/index.test.d.ts +0 -2
- package/dist/factory/__tests__/index.test.d.ts.map +0 -1
- package/dist/factory/__tests__/index.test.js +0 -430
- package/dist/factory/__tests__/index.test.js.map +0 -1
- package/dist/factory/__tests__/list.test.d.ts +0 -2
- package/dist/factory/__tests__/list.test.d.ts.map +0 -1
- package/dist/factory/__tests__/list.test.js +0 -92
- package/dist/factory/__tests__/list.test.js.map +0 -1
- package/dist/factory/index.d.ts +0 -20
- package/dist/factory/index.d.ts.map +0 -1
- package/dist/factory/index.js +0 -287
- package/dist/factory/index.js.map +0 -1
- package/dist/factory/index.test.d.ts +0 -2
- package/dist/factory/index.test.d.ts.map +0 -1
- package/dist/factory/index.test.js +0 -287
- package/dist/factory/index.test.js.map +0 -1
- package/dist/factory/list.d.ts +0 -3
- package/dist/factory/list.d.ts.map +0 -1
- package/dist/factory/list.js +0 -221
- package/dist/factory/list.js.map +0 -1
- package/dist/factory/list.test.d.ts +0 -2
- package/dist/factory/list.test.d.ts.map +0 -1
- package/dist/factory/list.test.js +0 -84
- package/dist/factory/list.test.js.map +0 -1
- package/dist/generate/index.d.ts +0 -5
- package/dist/generate/index.d.ts.map +0 -1
- package/dist/generate/index.js +0 -17
- package/dist/generate/index.js.map +0 -1
- package/dist/index.test.d.ts +0 -2
- package/dist/index.test.d.ts.map +0 -1
- package/dist/index.test.js +0 -59
- package/dist/index.test.js.map +0 -1
- package/dist/list/await.d.ts +0 -3
- package/dist/list/await.d.ts.map +0 -1
- package/dist/list/await.js +0 -28
- package/dist/list/await.js.map +0 -1
- package/dist/list/constants.d.ts +0 -4
- package/dist/list/constants.d.ts.map +0 -1
- package/dist/list/constants.js +0 -5
- package/dist/list/constants.js.map +0 -1
- package/dist/list/create-function.d.ts +0 -3
- package/dist/list/create-function.d.ts.map +0 -1
- package/dist/list/create-function.js +0 -11
- package/dist/list/create-function.js.map +0 -1
- package/dist/list/index.d.ts +0 -4
- package/dist/list/index.d.ts.map +0 -1
- package/dist/list/index.js +0 -5
- package/dist/list/index.js.map +0 -1
- package/dist/list/prompt.d.ts +0 -3
- package/dist/list/prompt.d.ts.map +0 -1
- package/dist/list/prompt.js +0 -6
- package/dist/list/prompt.js.map +0 -1
- package/dist/list/schemas.d.ts +0 -4
- package/dist/list/schemas.d.ts.map +0 -1
- package/dist/list/schemas.js +0 -8
- package/dist/list/schemas.js.map +0 -1
- package/dist/list/stream.d.ts +0 -3
- package/dist/list/stream.d.ts.map +0 -1
- package/dist/list/stream.js +0 -33
- package/dist/list/stream.js.map +0 -1
- package/dist/list/types.d.ts +0 -11
- package/dist/list/types.d.ts.map +0 -1
- package/dist/list/types.js +0 -2
- package/dist/list/types.js.map +0 -1
- package/dist/list/validation.d.ts +0 -3
- package/dist/list/validation.d.ts.map +0 -1
- package/dist/list/validation.js +0 -12
- package/dist/list/validation.js.map +0 -1
- package/dist/providers/config.d.ts +0 -4
- package/dist/providers/config.d.ts.map +0 -1
- package/dist/providers/config.js +0 -21
- package/dist/providers/config.js.map +0 -1
- package/dist/providers/config.test.d.ts +0 -2
- package/dist/providers/config.test.d.ts.map +0 -1
- package/dist/providers/config.test.js +0 -37
- package/dist/providers/config.test.js.map +0 -1
- package/dist/proxy/constants.d.ts +0 -4
- package/dist/proxy/constants.d.ts.map +0 -1
- package/dist/proxy/constants.js +0 -5
- package/dist/proxy/constants.js.map +0 -1
- package/dist/proxy/create-function.d.ts +0 -4
- package/dist/proxy/create-function.d.ts.map +0 -1
- package/dist/proxy/create-function.js +0 -24
- package/dist/proxy/create-function.js.map +0 -1
- package/dist/proxy/create-proxy.d.ts +0 -2
- package/dist/proxy/create-proxy.d.ts.map +0 -1
- package/dist/proxy/create-proxy.js +0 -11
- package/dist/proxy/create-proxy.js.map +0 -1
- package/dist/proxy/function-generator.d.ts +0 -9
- package/dist/proxy/function-generator.d.ts.map +0 -1
- package/dist/proxy/function-generator.js +0 -29
- package/dist/proxy/function-generator.js.map +0 -1
- package/dist/proxy/index.d.ts +0 -4
- package/dist/proxy/index.d.ts.map +0 -1
- package/dist/proxy/index.js +0 -4
- package/dist/proxy/index.js.map +0 -1
- package/dist/proxy/prompt.d.ts +0 -2
- package/dist/proxy/prompt.d.ts.map +0 -1
- package/dist/proxy/prompt.js +0 -6
- package/dist/proxy/prompt.js.map +0 -1
- package/dist/proxy/types.d.ts +0 -7
- package/dist/proxy/types.d.ts.map +0 -1
- package/dist/proxy/types.js +0 -2
- package/dist/proxy/types.js.map +0 -1
- package/dist/queue/manager.d.ts +0 -5
- package/dist/queue/manager.d.ts.map +0 -1
- package/dist/queue/manager.js +0 -37
- package/dist/queue/manager.js.map +0 -1
- package/dist/queue/manager.test.d.ts +0 -2
- package/dist/queue/manager.test.d.ts.map +0 -1
- package/dist/queue/manager.test.js +0 -52
- package/dist/queue/manager.test.js.map +0 -1
- package/dist/schema-converter.d.ts +0 -4
- package/dist/schema-converter.d.ts.map +0 -1
- package/dist/schema-converter.js +0 -30
- package/dist/schema-converter.js.map +0 -1
- package/dist/stream/index.d.ts +0 -7
- package/dist/stream/index.d.ts.map +0 -1
- package/dist/stream/index.js +0 -23
- package/dist/stream/index.js.map +0 -1
- package/dist/streaming/utils.d.ts +0 -4
- package/dist/streaming/utils.d.ts.map +0 -1
- package/dist/streaming/utils.js +0 -131
- package/dist/streaming/utils.js.map +0 -1
- package/dist/streaming/utils.test.d.ts +0 -2
- package/dist/streaming/utils.test.d.ts.map +0 -1
- package/dist/streaming/utils.test.js +0 -84
- package/dist/streaming/utils.test.js.map +0 -1
- package/dist/templates/result.d.ts +0 -7
- package/dist/templates/result.d.ts.map +0 -1
- package/dist/templates/result.js +0 -40
- package/dist/templates/result.js.map +0 -1
- package/dist/templates/result.test.d.ts +0 -2
- package/dist/templates/result.test.d.ts.map +0 -1
- package/dist/templates/result.test.js +0 -75
- package/dist/templates/result.test.js.map +0 -1
- package/dist/test/setup.d.ts +0 -2
- package/dist/test/setup.d.ts.map +0 -1
- package/dist/test/setup.js +0 -21
- package/dist/test/setup.js.map +0 -1
- package/dist/test-types.d.ts +0 -13
- package/dist/test-types.d.ts.map +0 -1
- package/dist/test-types.js +0 -55
- package/dist/test-types.js.map +0 -1
- package/dist/types/index.d.ts +0 -4
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -4
- package/dist/types/index.js.map +0 -1
- package/dist/types/list.d.ts +0 -10
- package/dist/types/list.d.ts.map +0 -1
- package/dist/types/list.js +0 -2
- package/dist/types/list.js.map +0 -1
- package/dist/types/model.d.ts +0 -7
- package/dist/types/model.d.ts.map +0 -1
- package/dist/types/model.js +0 -2
- package/dist/types/model.js.map +0 -1
- package/dist/types/options.d.ts +0 -25
- package/dist/types/options.d.ts.map +0 -1
- package/dist/types/options.js +0 -2
- package/dist/types/options.js.map +0 -1
- package/dist/types/schema.d.ts +0 -5
- package/dist/types/schema.d.ts.map +0 -1
- package/dist/types/schema.js +0 -2
- package/dist/types/schema.js.map +0 -1
- package/dist/utils/__tests__/request-handler.test.d.ts +0 -2
- package/dist/utils/__tests__/request-handler.test.d.ts.map +0 -1
- package/dist/utils/__tests__/request-handler.test.js +0 -134
- package/dist/utils/__tests__/request-handler.test.js.map +0 -1
- package/dist/utils/__tests__/schema.test.d.ts +0 -2
- package/dist/utils/__tests__/schema.test.d.ts.map +0 -1
- package/dist/utils/__tests__/schema.test.js +0 -49
- package/dist/utils/__tests__/schema.test.js.map +0 -1
- package/dist/utils/__tests__/stream-progress.test.d.ts +0 -2
- package/dist/utils/__tests__/stream-progress.test.d.ts.map +0 -1
- package/dist/utils/__tests__/stream-progress.test.js +0 -85
- package/dist/utils/__tests__/stream-progress.test.js.map +0 -1
- package/dist/utils/index.d.ts +0 -2
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/index.js +0 -2
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/request-handler.d.ts +0 -17
- package/dist/utils/request-handler.d.ts.map +0 -1
- package/dist/utils/request-handler.js +0 -105
- package/dist/utils/request-handler.js.map +0 -1
- package/dist/utils/schema.d.ts +0 -11
- package/dist/utils/schema.d.ts.map +0 -1
- package/dist/utils/schema.js +0 -51
- package/dist/utils/schema.js.map +0 -1
- package/dist/utils/stream-progress.d.ts +0 -17
- package/dist/utils/stream-progress.d.ts.map +0 -1
- package/dist/utils/stream-progress.js +0 -86
- package/dist/utils/stream-progress.js.map +0 -1
- package/dist/utils/validation.d.ts +0 -3
- package/dist/utils/validation.d.ts.map +0 -1
- package/dist/utils/validation.js +0 -30
- package/dist/utils/validation.js.map +0 -1
|
@@ -0,0 +1,471 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AI Function Primitives with Promise Pipelining
|
|
3
|
+
*
|
|
4
|
+
* All functions return AIPromise for:
|
|
5
|
+
* - Dynamic schema inference from destructuring
|
|
6
|
+
* - Promise pipelining without await
|
|
7
|
+
* - Magical .map() for batch processing
|
|
8
|
+
* - Dependency graph resolution
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* // No await needed until the end!
|
|
13
|
+
* const { summary, keyPoints, conclusion } = ai`write about ${topic}`
|
|
14
|
+
* const isValid = is`${conclusion} is solid given ${keyPoints}`
|
|
15
|
+
* const improved = ai`improve ${conclusion} using ${keyPoints}`
|
|
16
|
+
*
|
|
17
|
+
* // Batch processing with map
|
|
18
|
+
* const ideas = list`startup ideas`
|
|
19
|
+
* const evaluated = await ideas.map(idea => ({
|
|
20
|
+
* idea,
|
|
21
|
+
* viable: is`${idea} is viable`,
|
|
22
|
+
* market: ai`market size for ${idea}`,
|
|
23
|
+
* }))
|
|
24
|
+
*
|
|
25
|
+
* // Only await at the end
|
|
26
|
+
* if (await isValid) {
|
|
27
|
+
* console.log(await improved)
|
|
28
|
+
* }
|
|
29
|
+
* ```
|
|
30
|
+
*
|
|
31
|
+
* @packageDocumentation
|
|
32
|
+
*/
|
|
33
|
+
import { AIPromise, createAITemplateFunction, parseTemplateWithDependencies, isAIPromise, } from './ai-promise.js';
|
|
34
|
+
import { generateObject, generateText } from './generate.js';
|
|
35
|
+
// ============================================================================
|
|
36
|
+
// Core generate() primitive
|
|
37
|
+
// ============================================================================
|
|
38
|
+
/**
|
|
39
|
+
* Core generate primitive - all other functions use this under the hood
|
|
40
|
+
*/
|
|
41
|
+
export async function generate(type, prompt, options) {
|
|
42
|
+
const { model = 'sonnet', schema, language, format, slides: slideCount, ...rest } = options || {};
|
|
43
|
+
switch (type) {
|
|
44
|
+
case 'text':
|
|
45
|
+
case 'markdown':
|
|
46
|
+
return generateTextContent(prompt, model, rest);
|
|
47
|
+
case 'json':
|
|
48
|
+
return generateJsonContent(prompt, model, schema, rest);
|
|
49
|
+
case 'code':
|
|
50
|
+
return generateCodeContent(prompt, model, language || 'typescript', rest);
|
|
51
|
+
case 'list':
|
|
52
|
+
return generateListContent(prompt, model, rest);
|
|
53
|
+
case 'lists':
|
|
54
|
+
return generateListsContent(prompt, model, rest);
|
|
55
|
+
case 'boolean':
|
|
56
|
+
return generateBooleanContent(prompt, model, rest);
|
|
57
|
+
case 'summary':
|
|
58
|
+
return generateSummaryContent(prompt, model, rest);
|
|
59
|
+
case 'extract':
|
|
60
|
+
return generateExtractContent(prompt, model, schema, rest);
|
|
61
|
+
case 'yaml':
|
|
62
|
+
return generateYamlContent(prompt, model, rest);
|
|
63
|
+
case 'diagram':
|
|
64
|
+
return generateDiagramContent(prompt, model, format || 'mermaid', rest);
|
|
65
|
+
case 'slides':
|
|
66
|
+
return generateSlidesContent(prompt, model, slideCount || 10, rest);
|
|
67
|
+
default:
|
|
68
|
+
throw new Error(`Unknown generate type: ${type}`);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
// Helper functions
|
|
72
|
+
async function generateTextContent(prompt, model, options) {
|
|
73
|
+
const result = await generateText({ model, prompt, system: options.system, temperature: options.temperature, maxTokens: options.maxTokens });
|
|
74
|
+
return result.text;
|
|
75
|
+
}
|
|
76
|
+
async function generateJsonContent(prompt, model, schema, options) {
|
|
77
|
+
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 });
|
|
79
|
+
return result.object;
|
|
80
|
+
}
|
|
81
|
+
async function generateCodeContent(prompt, model, language, options) {
|
|
82
|
+
const result = await generateObject({
|
|
83
|
+
model,
|
|
84
|
+
schema: { code: `The ${language} implementation code` },
|
|
85
|
+
prompt: `Generate ${language} code for: ${prompt}`,
|
|
86
|
+
system: `You are an expert ${language} developer. Generate clean, well-documented code.`,
|
|
87
|
+
temperature: options.temperature,
|
|
88
|
+
maxTokens: options.maxTokens,
|
|
89
|
+
});
|
|
90
|
+
return result.object.code;
|
|
91
|
+
}
|
|
92
|
+
async function generateListContent(prompt, model, options) {
|
|
93
|
+
const result = await generateObject({
|
|
94
|
+
model,
|
|
95
|
+
schema: { items: ['List items'] },
|
|
96
|
+
prompt,
|
|
97
|
+
system: options.system || 'Generate a list of items based on the prompt.',
|
|
98
|
+
temperature: options.temperature,
|
|
99
|
+
maxTokens: options.maxTokens,
|
|
100
|
+
});
|
|
101
|
+
return result.object.items;
|
|
102
|
+
}
|
|
103
|
+
async function generateListsContent(prompt, model, options) {
|
|
104
|
+
const result = await generateObject({
|
|
105
|
+
model,
|
|
106
|
+
schema: {
|
|
107
|
+
categories: ['Category names as strings'],
|
|
108
|
+
data: 'JSON string containing the categorized lists',
|
|
109
|
+
},
|
|
110
|
+
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,
|
|
114
|
+
});
|
|
115
|
+
const obj = result.object;
|
|
116
|
+
try {
|
|
117
|
+
return JSON.parse(obj.data);
|
|
118
|
+
}
|
|
119
|
+
catch {
|
|
120
|
+
const lists = {};
|
|
121
|
+
for (const cat of obj.categories || []) {
|
|
122
|
+
lists[cat] = [];
|
|
123
|
+
}
|
|
124
|
+
return lists;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
async function generateBooleanContent(prompt, model, options) {
|
|
128
|
+
const result = await generateObject({
|
|
129
|
+
model,
|
|
130
|
+
schema: { answer: 'true | false' },
|
|
131
|
+
prompt,
|
|
132
|
+
system: options.system || 'Answer the question with true or false.',
|
|
133
|
+
temperature: options.temperature ?? 0,
|
|
134
|
+
maxTokens: options.maxTokens,
|
|
135
|
+
});
|
|
136
|
+
return result.object.answer === 'true';
|
|
137
|
+
}
|
|
138
|
+
async function generateSummaryContent(prompt, model, options) {
|
|
139
|
+
const result = await generateObject({
|
|
140
|
+
model,
|
|
141
|
+
schema: { summary: 'A concise summary of the content' },
|
|
142
|
+
prompt: `Summarize the following:\n\n${prompt}`,
|
|
143
|
+
system: options.system || 'Create a clear, concise summary.',
|
|
144
|
+
temperature: options.temperature,
|
|
145
|
+
maxTokens: options.maxTokens,
|
|
146
|
+
});
|
|
147
|
+
return result.object.summary;
|
|
148
|
+
}
|
|
149
|
+
async function generateExtractContent(prompt, model, schema, options) {
|
|
150
|
+
const effectiveSchema = schema || { items: ['Extracted items'] };
|
|
151
|
+
const result = await generateObject({
|
|
152
|
+
model,
|
|
153
|
+
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,
|
|
158
|
+
});
|
|
159
|
+
const obj = result.object;
|
|
160
|
+
if ('items' in obj && Array.isArray(obj.items)) {
|
|
161
|
+
return obj.items;
|
|
162
|
+
}
|
|
163
|
+
return Object.values(obj).flat();
|
|
164
|
+
}
|
|
165
|
+
async function generateYamlContent(prompt, model, options) {
|
|
166
|
+
const result = await generateObject({
|
|
167
|
+
model,
|
|
168
|
+
schema: { yaml: 'The YAML content' },
|
|
169
|
+
prompt: `Generate YAML for: ${prompt}`,
|
|
170
|
+
system: options.system || 'Generate valid YAML content.',
|
|
171
|
+
temperature: options.temperature,
|
|
172
|
+
maxTokens: options.maxTokens,
|
|
173
|
+
});
|
|
174
|
+
return result.object.yaml;
|
|
175
|
+
}
|
|
176
|
+
async function generateDiagramContent(prompt, model, format, options) {
|
|
177
|
+
const result = await generateObject({
|
|
178
|
+
model,
|
|
179
|
+
schema: { diagram: `The ${format} diagram code` },
|
|
180
|
+
prompt: `Generate a ${format} diagram for: ${prompt}`,
|
|
181
|
+
system: options.system || `Generate ${format} diagram syntax.`,
|
|
182
|
+
temperature: options.temperature,
|
|
183
|
+
maxTokens: options.maxTokens,
|
|
184
|
+
});
|
|
185
|
+
return result.object.diagram;
|
|
186
|
+
}
|
|
187
|
+
async function generateSlidesContent(prompt, model, slideCount, options) {
|
|
188
|
+
const result = await generateObject({
|
|
189
|
+
model,
|
|
190
|
+
schema: { slides: `Slidev/Marp markdown with ${slideCount} slides` },
|
|
191
|
+
prompt: `Generate a ${slideCount}-slide presentation about: ${prompt}`,
|
|
192
|
+
system: options.system || 'Generate markdown slides in Slidev/Marp format.',
|
|
193
|
+
temperature: options.temperature,
|
|
194
|
+
maxTokens: options.maxTokens,
|
|
195
|
+
});
|
|
196
|
+
return result.object.slides;
|
|
197
|
+
}
|
|
198
|
+
// ============================================================================
|
|
199
|
+
// AIPromise-based Functions
|
|
200
|
+
// ============================================================================
|
|
201
|
+
/**
|
|
202
|
+
* General-purpose AI function with dynamic schema inference
|
|
203
|
+
*
|
|
204
|
+
* @example
|
|
205
|
+
* ```ts
|
|
206
|
+
* // Simple text generation
|
|
207
|
+
* const text = await ai`write a poem about ${topic}`
|
|
208
|
+
*
|
|
209
|
+
* // Dynamic schema from destructuring - no await needed!
|
|
210
|
+
* const { summary, keyPoints, conclusion } = ai`write about ${topic}`
|
|
211
|
+
* console.log(await summary)
|
|
212
|
+
*
|
|
213
|
+
* // Chain with other functions
|
|
214
|
+
* const isValid = is`${conclusion} is solid`
|
|
215
|
+
* const improved = ai`improve ${conclusion}`
|
|
216
|
+
* ```
|
|
217
|
+
*/
|
|
218
|
+
export const ai = createAITemplateFunction('object');
|
|
219
|
+
/**
|
|
220
|
+
* Generate text content
|
|
221
|
+
*
|
|
222
|
+
* @example
|
|
223
|
+
* ```ts
|
|
224
|
+
* const post = await write`blog post about ${topic}`
|
|
225
|
+
* ```
|
|
226
|
+
*/
|
|
227
|
+
export const write = createAITemplateFunction('text');
|
|
228
|
+
/**
|
|
229
|
+
* Generate code
|
|
230
|
+
*
|
|
231
|
+
* @example
|
|
232
|
+
* ```ts
|
|
233
|
+
* const code = await code`email validation function`
|
|
234
|
+
* ```
|
|
235
|
+
*/
|
|
236
|
+
export const code = createAITemplateFunction('text', {
|
|
237
|
+
system: 'You are an expert programmer. Generate clean, well-documented code.',
|
|
238
|
+
});
|
|
239
|
+
/**
|
|
240
|
+
* Generate a list of items with .map() support
|
|
241
|
+
*
|
|
242
|
+
* @example
|
|
243
|
+
* ```ts
|
|
244
|
+
* // Simple list
|
|
245
|
+
* const ideas = await list`startup ideas`
|
|
246
|
+
*
|
|
247
|
+
* // With map - batch processes in ONE call!
|
|
248
|
+
* const evaluated = await list`startup ideas`.map(idea => ({
|
|
249
|
+
* idea,
|
|
250
|
+
* viable: is`${idea} is viable`,
|
|
251
|
+
* market: ai`market size for ${idea}`,
|
|
252
|
+
* }))
|
|
253
|
+
*
|
|
254
|
+
* // Async iteration
|
|
255
|
+
* for await (const idea of list`startup ideas`) {
|
|
256
|
+
* console.log(idea)
|
|
257
|
+
* }
|
|
258
|
+
* ```
|
|
259
|
+
*/
|
|
260
|
+
export const list = createAITemplateFunction('list');
|
|
261
|
+
/**
|
|
262
|
+
* Generate multiple named lists with dynamic schema
|
|
263
|
+
*
|
|
264
|
+
* @example
|
|
265
|
+
* ```ts
|
|
266
|
+
* // Destructuring infers the schema!
|
|
267
|
+
* const { pros, cons } = await lists`pros and cons of ${topic}`
|
|
268
|
+
*
|
|
269
|
+
* // No await - pipeline with other functions
|
|
270
|
+
* const { benefits, risks, costs } = lists`analysis of ${project}`
|
|
271
|
+
* const summary = ai`summarize: benefits=${benefits}, risks=${risks}`
|
|
272
|
+
* console.log(await summary)
|
|
273
|
+
* ```
|
|
274
|
+
*/
|
|
275
|
+
export const lists = createAITemplateFunction('lists');
|
|
276
|
+
/**
|
|
277
|
+
* Extract structured data with dynamic schema
|
|
278
|
+
*
|
|
279
|
+
* @example
|
|
280
|
+
* ```ts
|
|
281
|
+
* // Dynamic schema from destructuring
|
|
282
|
+
* const { name, email, phone } = await extract`contact info from ${document}`
|
|
283
|
+
*
|
|
284
|
+
* // As array
|
|
285
|
+
* const emails = await extract`email addresses from ${text}`
|
|
286
|
+
* ```
|
|
287
|
+
*/
|
|
288
|
+
export const extract = createAITemplateFunction('extract');
|
|
289
|
+
/**
|
|
290
|
+
* Summarize text
|
|
291
|
+
*
|
|
292
|
+
* @example
|
|
293
|
+
* ```ts
|
|
294
|
+
* const summary = await summarize`${longArticle}`
|
|
295
|
+
* ```
|
|
296
|
+
*/
|
|
297
|
+
export const summarize = createAITemplateFunction('text', {
|
|
298
|
+
system: 'Create a clear, concise summary.',
|
|
299
|
+
});
|
|
300
|
+
/**
|
|
301
|
+
* Check if something is true/false
|
|
302
|
+
*
|
|
303
|
+
* @example
|
|
304
|
+
* ```ts
|
|
305
|
+
* // Simple check
|
|
306
|
+
* const isColor = await is`${topic} a color`
|
|
307
|
+
*
|
|
308
|
+
* // Pipeline - no await needed!
|
|
309
|
+
* const { conclusion } = ai`write about ${topic}`
|
|
310
|
+
* const isValid = is`${conclusion} is well-argued`
|
|
311
|
+
* if (await isValid) { ... }
|
|
312
|
+
* ```
|
|
313
|
+
*/
|
|
314
|
+
export const is = createAITemplateFunction('boolean');
|
|
315
|
+
/**
|
|
316
|
+
* Generate a diagram
|
|
317
|
+
*
|
|
318
|
+
* @example
|
|
319
|
+
* ```ts
|
|
320
|
+
* const diagram = await diagram`user authentication flow`
|
|
321
|
+
* ```
|
|
322
|
+
*/
|
|
323
|
+
export const diagram = createAITemplateFunction('text', {
|
|
324
|
+
system: 'Generate a Mermaid diagram.',
|
|
325
|
+
});
|
|
326
|
+
/**
|
|
327
|
+
* Generate presentation slides
|
|
328
|
+
*
|
|
329
|
+
* @example
|
|
330
|
+
* ```ts
|
|
331
|
+
* const slides = await slides`quarterly review`
|
|
332
|
+
* ```
|
|
333
|
+
*/
|
|
334
|
+
export const slides = createAITemplateFunction('text', {
|
|
335
|
+
system: 'Generate markdown slides in Slidev/Marp format.',
|
|
336
|
+
});
|
|
337
|
+
/**
|
|
338
|
+
* Generate an image
|
|
339
|
+
*/
|
|
340
|
+
export const image = createAITemplateFunction('text');
|
|
341
|
+
/**
|
|
342
|
+
* Generate a video
|
|
343
|
+
*/
|
|
344
|
+
export const video = createAITemplateFunction('text');
|
|
345
|
+
// ============================================================================
|
|
346
|
+
// Agentic Functions
|
|
347
|
+
// ============================================================================
|
|
348
|
+
/**
|
|
349
|
+
* Execute a task
|
|
350
|
+
*
|
|
351
|
+
* @example
|
|
352
|
+
* ```ts
|
|
353
|
+
* const { summary, actions } = await do`send welcome email to ${user}`
|
|
354
|
+
* ```
|
|
355
|
+
*/
|
|
356
|
+
function doImpl(promptOrStrings, ...args) {
|
|
357
|
+
let prompt;
|
|
358
|
+
let dependencies = [];
|
|
359
|
+
if (Array.isArray(promptOrStrings) && 'raw' in promptOrStrings) {
|
|
360
|
+
const parsed = parseTemplateWithDependencies(promptOrStrings, ...args);
|
|
361
|
+
prompt = parsed.prompt;
|
|
362
|
+
dependencies = parsed.dependencies;
|
|
363
|
+
}
|
|
364
|
+
else {
|
|
365
|
+
prompt = promptOrStrings;
|
|
366
|
+
}
|
|
367
|
+
const promise = new AIPromise(prompt, {
|
|
368
|
+
type: 'object',
|
|
369
|
+
baseSchema: {
|
|
370
|
+
summary: 'Summary of what was done',
|
|
371
|
+
actions: ['List of actions taken'],
|
|
372
|
+
},
|
|
373
|
+
system: 'You are a task executor. Describe what actions you would take.',
|
|
374
|
+
});
|
|
375
|
+
for (const dep of dependencies) {
|
|
376
|
+
promise.addDependency(dep.promise, dep.path);
|
|
377
|
+
}
|
|
378
|
+
return promise;
|
|
379
|
+
}
|
|
380
|
+
export { doImpl as do };
|
|
381
|
+
/**
|
|
382
|
+
* Conduct research on a topic
|
|
383
|
+
*
|
|
384
|
+
* @example
|
|
385
|
+
* ```ts
|
|
386
|
+
* const { summary, findings, sources } = await research`${competitor} vs our product`
|
|
387
|
+
* ```
|
|
388
|
+
*/
|
|
389
|
+
export const research = createAITemplateFunction('object', {
|
|
390
|
+
system: 'You are a research analyst. Provide thorough research.',
|
|
391
|
+
});
|
|
392
|
+
// ============================================================================
|
|
393
|
+
// Web Functions
|
|
394
|
+
// ============================================================================
|
|
395
|
+
/**
|
|
396
|
+
* Read a URL and convert to markdown
|
|
397
|
+
*/
|
|
398
|
+
export const read = createAITemplateFunction('text');
|
|
399
|
+
/**
|
|
400
|
+
* Browse a URL with browser automation
|
|
401
|
+
*/
|
|
402
|
+
export async function browse(urlOrStrings, ...args) {
|
|
403
|
+
// Placeholder - actual implementation would use Stagehand or Playwright
|
|
404
|
+
return {
|
|
405
|
+
do: async () => { },
|
|
406
|
+
extract: async () => ({}),
|
|
407
|
+
screenshot: async () => Buffer.from('screenshot'),
|
|
408
|
+
close: async () => { },
|
|
409
|
+
};
|
|
410
|
+
}
|
|
411
|
+
// ============================================================================
|
|
412
|
+
// Decision Functions
|
|
413
|
+
// ============================================================================
|
|
414
|
+
/**
|
|
415
|
+
* LLM as judge - compare options and pick the best
|
|
416
|
+
*
|
|
417
|
+
* @example
|
|
418
|
+
* ```ts
|
|
419
|
+
* const winner = await decide`higher click-through rate`(headlineA, headlineB)
|
|
420
|
+
* ```
|
|
421
|
+
*/
|
|
422
|
+
export function decide(criteriaOrStrings, ...templateArgs) {
|
|
423
|
+
let criteria;
|
|
424
|
+
if (Array.isArray(criteriaOrStrings) && 'raw' in criteriaOrStrings) {
|
|
425
|
+
criteria = criteriaOrStrings.reduce((acc, str, i) => acc + str + (templateArgs[i] ?? ''), '');
|
|
426
|
+
}
|
|
427
|
+
else {
|
|
428
|
+
criteria = criteriaOrStrings;
|
|
429
|
+
}
|
|
430
|
+
return (...options) => {
|
|
431
|
+
const optionDescriptions = options
|
|
432
|
+
.map((opt, i) => `Option ${i + 1}: ${JSON.stringify(opt)}`)
|
|
433
|
+
.join('\n');
|
|
434
|
+
const promise = new AIPromise(`Given these options:\n${optionDescriptions}\n\nChoose the best option based on: ${criteria}`, {
|
|
435
|
+
type: 'object',
|
|
436
|
+
baseSchema: {
|
|
437
|
+
chosenIndex: 'The index (1-based) of the best option as a number',
|
|
438
|
+
reasoning: 'Brief explanation of why this option is best',
|
|
439
|
+
},
|
|
440
|
+
});
|
|
441
|
+
// Override resolve to return the actual option
|
|
442
|
+
const originalResolve = promise.resolve.bind(promise);
|
|
443
|
+
promise.resolve = async () => {
|
|
444
|
+
const result = await originalResolve();
|
|
445
|
+
const index = typeof result.chosenIndex === 'string'
|
|
446
|
+
? parseInt(result.chosenIndex, 10)
|
|
447
|
+
: result.chosenIndex;
|
|
448
|
+
return options[index - 1];
|
|
449
|
+
};
|
|
450
|
+
return promise;
|
|
451
|
+
};
|
|
452
|
+
}
|
|
453
|
+
/**
|
|
454
|
+
* Ask a human for input
|
|
455
|
+
*/
|
|
456
|
+
export const ask = createAITemplateFunction('object', {
|
|
457
|
+
system: 'Generate content for human interaction.',
|
|
458
|
+
});
|
|
459
|
+
/**
|
|
460
|
+
* Request human approval
|
|
461
|
+
*/
|
|
462
|
+
export const approve = createAITemplateFunction('object', {
|
|
463
|
+
system: 'Generate an approval request.',
|
|
464
|
+
});
|
|
465
|
+
/**
|
|
466
|
+
* Request human review
|
|
467
|
+
*/
|
|
468
|
+
export const review = createAITemplateFunction('object', {
|
|
469
|
+
system: 'Generate a review request.',
|
|
470
|
+
});
|
|
471
|
+
//# sourceMappingURL=primitives.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"primitives.js","sourceRoot":"","sources":["../src/primitives.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cloudflare Workers AI Provider
|
|
3
|
+
*
|
|
4
|
+
* Re-exports from ai-providers/cloudflare for backwards compatibility.
|
|
5
|
+
*
|
|
6
|
+
* @packageDocumentation
|
|
7
|
+
*/
|
|
8
|
+
export { cloudflare, cloudflareEmbedding, DEFAULT_CF_EMBEDDING_MODEL, type CloudflareConfig, type CloudflareEmbeddingModel } from 'ai-providers/cloudflare';
|
|
9
|
+
//# sourceMappingURL=cloudflare.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudflare.d.ts","sourceRoot":"","sources":["../../src/providers/cloudflare.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,UAAU,EACV,mBAAmB,EACnB,0BAA0B,EAC1B,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,EAC9B,MAAM,yBAAyB,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cloudflare Workers AI Provider
|
|
3
|
+
*
|
|
4
|
+
* Re-exports from ai-providers/cloudflare for backwards compatibility.
|
|
5
|
+
*
|
|
6
|
+
* @packageDocumentation
|
|
7
|
+
*/
|
|
8
|
+
export { cloudflare, cloudflareEmbedding, DEFAULT_CF_EMBEDDING_MODEL } from 'ai-providers/cloudflare';
|
|
9
|
+
//# sourceMappingURL=cloudflare.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudflare.js","sourceRoot":"","sources":["../../src/providers/cloudflare.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,UAAU,EACV,mBAAmB,EACnB,0BAA0B,EAG3B,MAAM,yBAAyB,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AI Providers
|
|
3
|
+
*
|
|
4
|
+
* Re-exports model providers from ai-providers package.
|
|
5
|
+
*
|
|
6
|
+
* @packageDocumentation
|
|
7
|
+
*/
|
|
8
|
+
export { cloudflare, cloudflareEmbedding, DEFAULT_CF_EMBEDDING_MODEL, type CloudflareConfig } from 'ai-providers/cloudflare';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,UAAU,EACV,mBAAmB,EACnB,0BAA0B,EAC1B,KAAK,gBAAgB,EACtB,MAAM,yBAAyB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,UAAU,EACV,mBAAmB,EACnB,0BAA0B,EAE3B,MAAM,yBAAyB,CAAA"}
|
package/dist/schema.d.ts
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simplified schema syntax for AI generation
|
|
3
|
+
*
|
|
4
|
+
* Converts human-readable schema definitions to Zod schemas:
|
|
5
|
+
* - 'description' → z.string().describe('description')
|
|
6
|
+
* - 'description (number)' → z.number().describe('description')
|
|
7
|
+
* - 'description (boolean)' → z.boolean().describe('description')
|
|
8
|
+
* - 'description (integer)' → z.number().int().describe('description')
|
|
9
|
+
* - 'description (date)' → z.string().datetime().describe('description')
|
|
10
|
+
* - 'opt1 | opt2 | opt3' → z.enum(['opt1', 'opt2', 'opt3'])
|
|
11
|
+
* - ['description'] → z.array(z.string()).describe('description')
|
|
12
|
+
* - { nested } → z.object() recursively
|
|
13
|
+
*
|
|
14
|
+
* @packageDocumentation
|
|
15
|
+
*/
|
|
16
|
+
import { type ZodTypeAny } from 'zod';
|
|
17
|
+
/**
|
|
18
|
+
* Simplified schema types
|
|
19
|
+
*/
|
|
20
|
+
export type SimpleSchema = string | [string] | [number] | [SimpleSchema] | {
|
|
21
|
+
[key: string]: SimpleSchema;
|
|
22
|
+
} | ZodTypeAny;
|
|
23
|
+
/**
|
|
24
|
+
* Convert a simplified schema to a Zod schema
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```ts
|
|
28
|
+
* import { schema } from 'ai-functions'
|
|
29
|
+
* import { z } from 'zod'
|
|
30
|
+
*
|
|
31
|
+
* // These are equivalent:
|
|
32
|
+
* const simple = schema({
|
|
33
|
+
* name: 'What is the recipe name?',
|
|
34
|
+
* ingredients: ['List all ingredients'],
|
|
35
|
+
* steps: ['List all cooking steps'],
|
|
36
|
+
* })
|
|
37
|
+
*
|
|
38
|
+
* const zod = z.object({
|
|
39
|
+
* name: z.string().describe('What is the recipe name?'),
|
|
40
|
+
* ingredients: z.array(z.string()).describe('List all ingredients'),
|
|
41
|
+
* steps: z.array(z.string()).describe('List all cooking steps'),
|
|
42
|
+
* })
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export declare function schema<T extends SimpleSchema>(input: T): ZodTypeAny;
|
|
46
|
+
/**
|
|
47
|
+
* Type helper to infer the output type from a simple schema
|
|
48
|
+
*/
|
|
49
|
+
export type InferSimpleSchema<T> = T extends string ? string : T extends [string] ? string[] : T extends [number] ? number[] : T extends {
|
|
50
|
+
[K in keyof T]: SimpleSchema;
|
|
51
|
+
} ? {
|
|
52
|
+
[K in keyof T]: InferSimpleSchema<T[K]>;
|
|
53
|
+
} : unknown;
|
|
54
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAK,KAAK,UAAU,EAAE,MAAM,KAAK,CAAA;AAExC;;GAEG;AACH,MAAM,MAAM,YAAY,GACpB,MAAM,GACN,CAAC,MAAM,CAAC,GACR,CAAC,MAAM,CAAC,GACR,CAAC,YAAY,CAAC,GACd;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAAA;CAAE,GAC/B,UAAU,CAAA;AAYd;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,YAAY,EAAE,KAAK,EAAE,CAAC,GAAG,UAAU,CAEnE;AAwED;;GAEG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAC/C,MAAM,GACN,CAAC,SAAS,CAAC,MAAM,CAAC,GAClB,MAAM,EAAE,GACR,CAAC,SAAS,CAAC,MAAM,CAAC,GAClB,MAAM,EAAE,GACR,CAAC,SAAS;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,YAAY;CAAE,GAC1C;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GAC3C,OAAO,CAAA"}
|