ai-functions 0.2.19 → 0.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.
- package/LICENSE +1 -1
- package/README.md +112 -21
- package/bin/cli.js +5 -0
- package/dist/cli/index.d.ts +10 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +38 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/index.test.d.ts +2 -0
- package/dist/cli/index.test.d.ts.map +1 -0
- package/dist/cli/index.test.js +35 -0
- package/dist/cli/index.test.js.map +1 -0
- package/dist/constants/models.d.ts +10 -0
- package/dist/constants/models.d.ts.map +1 -0
- package/dist/constants/models.js +12 -0
- package/dist/constants/models.js.map +1 -0
- package/dist/converters/index.d.ts +3 -0
- package/dist/converters/index.d.ts.map +1 -0
- package/dist/converters/index.js +3 -0
- package/dist/converters/index.js.map +1 -0
- package/dist/converters/model.d.ts +4 -0
- package/dist/converters/model.d.ts.map +1 -0
- package/dist/converters/model.js +19 -0
- package/dist/converters/model.js.map +1 -0
- package/dist/converters/schema.d.ts +4 -0
- package/dist/converters/schema.d.ts.map +1 -0
- package/dist/converters/schema.js +25 -0
- package/dist/converters/schema.js.map +1 -0
- package/dist/core/responses.d.ts +5 -0
- package/dist/core/responses.d.ts.map +1 -0
- package/dist/core/responses.js +16 -0
- package/dist/core/responses.js.map +1 -0
- package/dist/core/responses.test.d.ts +2 -0
- package/dist/core/responses.test.d.ts.map +1 -0
- package/dist/core/responses.test.js +31 -0
- package/dist/core/responses.test.js.map +1 -0
- package/dist/errors.d.ts +6 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +9 -0
- package/dist/errors.js.map +1 -0
- package/dist/examples/streaming.test.d.ts +2 -0
- package/dist/examples/streaming.test.d.ts.map +1 -0
- package/dist/examples/streaming.test.js +176 -0
- package/dist/examples/streaming.test.js.map +1 -0
- package/dist/factory/__tests__/index.test.d.ts +2 -0
- package/dist/factory/__tests__/index.test.d.ts.map +1 -0
- package/dist/factory/__tests__/index.test.js +430 -0
- package/dist/factory/__tests__/index.test.js.map +1 -0
- package/dist/factory/__tests__/list.test.d.ts +2 -0
- package/dist/factory/__tests__/list.test.d.ts.map +1 -0
- package/dist/factory/__tests__/list.test.js +92 -0
- package/dist/factory/__tests__/list.test.js.map +1 -0
- package/dist/factory/index.d.ts +20 -0
- package/dist/factory/index.d.ts.map +1 -0
- package/dist/factory/index.js +287 -0
- package/dist/factory/index.js.map +1 -0
- package/dist/factory/index.test.d.ts +2 -0
- package/dist/factory/index.test.d.ts.map +1 -0
- package/dist/factory/index.test.js +287 -0
- package/dist/factory/index.test.js.map +1 -0
- package/dist/factory/list.d.ts +3 -0
- package/dist/factory/list.d.ts.map +1 -0
- package/dist/factory/list.js +221 -0
- package/dist/factory/list.js.map +1 -0
- package/dist/factory/list.test.d.ts +2 -0
- package/dist/factory/list.test.d.ts.map +1 -0
- package/dist/factory/list.test.js +84 -0
- package/dist/factory/list.test.js.map +1 -0
- package/dist/generate/index.d.ts +5 -0
- package/dist/generate/index.d.ts.map +1 -0
- package/dist/generate/index.js +17 -0
- package/dist/generate/index.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +53 -0
- package/dist/index.js.map +1 -0
- package/dist/index.test.d.ts +2 -0
- package/dist/index.test.d.ts.map +1 -0
- package/dist/index.test.js +59 -0
- package/dist/index.test.js.map +1 -0
- package/dist/list/await.d.ts +3 -0
- package/dist/list/await.d.ts.map +1 -0
- package/dist/list/await.js +28 -0
- package/dist/list/await.js.map +1 -0
- package/dist/list/constants.d.ts +4 -0
- package/dist/list/constants.d.ts.map +1 -0
- package/dist/list/constants.js +5 -0
- package/dist/list/constants.js.map +1 -0
- package/dist/list/create-function.d.ts +3 -0
- package/dist/list/create-function.d.ts.map +1 -0
- package/dist/list/create-function.js +11 -0
- package/dist/list/create-function.js.map +1 -0
- package/dist/list/index.d.ts +4 -0
- package/dist/list/index.d.ts.map +1 -0
- package/dist/list/index.js +5 -0
- package/dist/list/index.js.map +1 -0
- package/dist/list/prompt.d.ts +3 -0
- package/dist/list/prompt.d.ts.map +1 -0
- package/dist/list/prompt.js +6 -0
- package/dist/list/prompt.js.map +1 -0
- package/dist/list/schemas.d.ts +4 -0
- package/dist/list/schemas.d.ts.map +1 -0
- package/dist/list/schemas.js +8 -0
- package/dist/list/schemas.js.map +1 -0
- package/dist/list/stream.d.ts +3 -0
- package/dist/list/stream.d.ts.map +1 -0
- package/dist/list/stream.js +33 -0
- package/dist/list/stream.js.map +1 -0
- package/dist/list/types.d.ts +11 -0
- package/dist/list/types.d.ts.map +1 -0
- package/dist/list/types.js +2 -0
- package/dist/list/types.js.map +1 -0
- package/dist/list/validation.d.ts +3 -0
- package/dist/list/validation.d.ts.map +1 -0
- package/dist/list/validation.js +12 -0
- package/dist/list/validation.js.map +1 -0
- package/dist/providers/config.d.ts +4 -0
- package/dist/providers/config.d.ts.map +1 -0
- package/dist/providers/config.js +21 -0
- package/dist/providers/config.js.map +1 -0
- package/dist/providers/config.test.d.ts +2 -0
- package/dist/providers/config.test.d.ts.map +1 -0
- package/dist/providers/config.test.js +37 -0
- package/dist/providers/config.test.js.map +1 -0
- package/dist/proxy/constants.d.ts +4 -0
- package/dist/proxy/constants.d.ts.map +1 -0
- package/dist/proxy/constants.js +5 -0
- package/dist/proxy/constants.js.map +1 -0
- package/dist/proxy/create-function.d.ts +4 -0
- package/dist/proxy/create-function.d.ts.map +1 -0
- package/dist/proxy/create-function.js +24 -0
- package/dist/proxy/create-function.js.map +1 -0
- package/dist/proxy/create-proxy.d.ts +2 -0
- package/dist/proxy/create-proxy.d.ts.map +1 -0
- package/dist/proxy/create-proxy.js +11 -0
- package/dist/proxy/create-proxy.js.map +1 -0
- package/dist/proxy/function-generator.d.ts +9 -0
- package/dist/proxy/function-generator.d.ts.map +1 -0
- package/dist/proxy/function-generator.js +29 -0
- package/dist/proxy/function-generator.js.map +1 -0
- package/dist/proxy/index.d.ts +4 -0
- package/dist/proxy/index.d.ts.map +1 -0
- package/dist/proxy/index.js +4 -0
- package/dist/proxy/index.js.map +1 -0
- package/dist/proxy/prompt.d.ts +2 -0
- package/dist/proxy/prompt.d.ts.map +1 -0
- package/dist/proxy/prompt.js +6 -0
- package/dist/proxy/prompt.js.map +1 -0
- package/dist/proxy/types.d.ts +7 -0
- package/dist/proxy/types.d.ts.map +1 -0
- package/dist/proxy/types.js +2 -0
- package/dist/proxy/types.js.map +1 -0
- package/dist/queue/manager.d.ts +5 -0
- package/dist/queue/manager.d.ts.map +1 -0
- package/dist/queue/manager.js +37 -0
- package/dist/queue/manager.js.map +1 -0
- package/dist/queue/manager.test.d.ts +2 -0
- package/dist/queue/manager.test.d.ts.map +1 -0
- package/dist/queue/manager.test.js +52 -0
- package/dist/queue/manager.test.js.map +1 -0
- package/dist/schema-converter.d.ts +4 -0
- package/dist/schema-converter.d.ts.map +1 -0
- package/dist/schema-converter.js +30 -0
- package/dist/schema-converter.js.map +1 -0
- package/dist/stream/index.d.ts +7 -0
- package/dist/stream/index.d.ts.map +1 -0
- package/dist/stream/index.js +23 -0
- package/dist/stream/index.js.map +1 -0
- package/dist/streaming/utils.d.ts +4 -0
- package/dist/streaming/utils.d.ts.map +1 -0
- package/dist/streaming/utils.js +131 -0
- package/dist/streaming/utils.js.map +1 -0
- package/dist/streaming/utils.test.d.ts +2 -0
- package/dist/streaming/utils.test.d.ts.map +1 -0
- package/dist/streaming/utils.test.js +84 -0
- package/dist/streaming/utils.test.js.map +1 -0
- package/dist/templates/result.d.ts +7 -0
- package/dist/templates/result.d.ts.map +1 -0
- package/dist/templates/result.js +40 -0
- package/dist/templates/result.js.map +1 -0
- package/dist/templates/result.test.d.ts +2 -0
- package/dist/templates/result.test.d.ts.map +1 -0
- package/dist/templates/result.test.js +75 -0
- package/dist/templates/result.test.js.map +1 -0
- package/dist/test/setup.d.ts +2 -0
- package/dist/test/setup.d.ts.map +1 -0
- package/dist/test/setup.js +21 -0
- package/dist/test/setup.js.map +1 -0
- package/dist/test-types.d.ts +13 -0
- package/dist/test-types.d.ts.map +1 -0
- package/dist/test-types.js +55 -0
- package/dist/test-types.js.map +1 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +4 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/list.d.ts +10 -0
- package/dist/types/list.d.ts.map +1 -0
- package/dist/types/list.js +2 -0
- package/dist/types/list.js.map +1 -0
- package/dist/types/model.d.ts +7 -0
- package/dist/types/model.d.ts.map +1 -0
- package/dist/types/model.js +2 -0
- package/dist/types/model.js.map +1 -0
- package/dist/types/options.d.ts +25 -0
- package/dist/types/options.d.ts.map +1 -0
- package/dist/types/options.js +2 -0
- package/dist/types/options.js.map +1 -0
- package/dist/types/schema.d.ts +5 -0
- package/dist/types/schema.d.ts.map +1 -0
- package/dist/types/schema.js +2 -0
- package/dist/types/schema.js.map +1 -0
- package/dist/types.d.ts +113 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +9 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/__tests__/request-handler.test.d.ts +2 -0
- package/dist/utils/__tests__/request-handler.test.d.ts.map +1 -0
- package/dist/utils/__tests__/request-handler.test.js +134 -0
- package/dist/utils/__tests__/request-handler.test.js.map +1 -0
- package/dist/utils/__tests__/schema.test.d.ts +2 -0
- package/dist/utils/__tests__/schema.test.d.ts.map +1 -0
- package/dist/utils/__tests__/schema.test.js +49 -0
- package/dist/utils/__tests__/schema.test.js.map +1 -0
- package/dist/utils/__tests__/stream-progress.test.d.ts +2 -0
- package/dist/utils/__tests__/stream-progress.test.d.ts.map +1 -0
- package/dist/utils/__tests__/stream-progress.test.js +85 -0
- package/dist/utils/__tests__/stream-progress.test.js.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +2 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/request-handler.d.ts +17 -0
- package/dist/utils/request-handler.d.ts.map +1 -0
- package/dist/utils/request-handler.js +105 -0
- package/dist/utils/request-handler.js.map +1 -0
- package/dist/utils/schema.d.ts +11 -0
- package/dist/utils/schema.d.ts.map +1 -0
- package/dist/utils/schema.js +51 -0
- package/dist/utils/schema.js.map +1 -0
- package/dist/utils/stream-progress.d.ts +17 -0
- package/dist/utils/stream-progress.d.ts.map +1 -0
- package/dist/utils/stream-progress.js +86 -0
- package/dist/utils/stream-progress.js.map +1 -0
- package/dist/utils/validation.d.ts +3 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +30 -0
- package/dist/utils/validation.js.map +1 -0
- package/package.json +56 -40
- package/db/cache.ts +0 -6
- package/db/mongo.ts +0 -75
- package/dist/mjs/db/cache.d.ts +0 -1
- package/dist/mjs/db/cache.js +0 -5
- package/dist/mjs/db/mongo.d.ts +0 -31
- package/dist/mjs/db/mongo.js +0 -48
- package/dist/mjs/examples/data.d.ts +0 -1105
- package/dist/mjs/examples/data.js +0 -1105
- package/dist/mjs/functions/ai.d.ts +0 -20
- package/dist/mjs/functions/ai.js +0 -83
- package/dist/mjs/functions/ai.test.d.ts +0 -1
- package/dist/mjs/functions/ai.test.js +0 -29
- package/dist/mjs/functions/gpt.d.ts +0 -4
- package/dist/mjs/functions/gpt.js +0 -10
- package/dist/mjs/functions/list.d.ts +0 -7
- package/dist/mjs/functions/list.js +0 -72
- package/dist/mjs/index.d.ts +0 -3
- package/dist/mjs/index.js +0 -3
- package/dist/mjs/queue/kafka.d.ts +0 -0
- package/dist/mjs/queue/kafka.js +0 -1
- package/dist/mjs/queue/memory.d.ts +0 -0
- package/dist/mjs/queue/memory.js +0 -1
- package/dist/mjs/queue/mongo.d.ts +0 -30
- package/dist/mjs/queue/mongo.js +0 -42
- package/dist/mjs/streams/kafka.d.ts +0 -0
- package/dist/mjs/streams/kafka.js +0 -1
- package/dist/mjs/streams/memory.d.ts +0 -0
- package/dist/mjs/streams/memory.js +0 -1
- package/dist/mjs/streams/mongo.d.ts +0 -0
- package/dist/mjs/streams/mongo.js +0 -1
- package/dist/mjs/streams/types.d.ts +0 -0
- package/dist/mjs/streams/types.js +0 -1
- package/dist/mjs/types.d.ts +0 -11
- package/dist/mjs/types.js +0 -1
- package/dist/mjs/utils/completion.d.ts +0 -9
- package/dist/mjs/utils/completion.js +0 -20
- package/dist/mjs/utils/schema.d.ts +0 -10
- package/dist/mjs/utils/schema.js +0 -72
- package/dist/mjs/utils/schema.test.d.ts +0 -1
- package/dist/mjs/utils/schema.test.js +0 -60
- package/dist/mjs/utils/state.d.ts +0 -1
- package/dist/mjs/utils/state.js +0 -19
- package/examples/data.ts +0 -1105
- package/fixup +0 -11
- package/functions/ai.test.ts +0 -41
- package/functions/ai.ts +0 -115
- package/functions/gpt.ts +0 -12
- package/functions/list.ts +0 -84
- package/index.ts +0 -3
- package/queue/kafka.ts +0 -0
- package/queue/memory.ts +0 -0
- package/queue/mongo.ts +0 -88
- package/streams/kafka.ts +0 -0
- package/streams/memory.ts +0 -0
- package/streams/mongo.ts +0 -0
- package/streams/types.ts +0 -0
- package/tsconfig-backup.json +0 -105
- package/tsconfig-base.json +0 -26
- package/tsconfig-cjs.json +0 -8
- package/tsconfig.json +0 -8
- package/types.ts +0 -12
- package/utils/completion.ts +0 -28
- package/utils/schema.test.ts +0 -69
- package/utils/schema.ts +0 -74
- package/utils/state.ts +0 -23
package/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -1,20 +1,48 @@
|
|
|
1
|
-
#
|
|
1
|
+
# ai-functions
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[](https://www.npmjs.com/package/ai-functions)
|
|
4
|
+
[](https://opensource.org/licenses/MIT)
|
|
4
5
|
|
|
5
|
-
|
|
6
|
+
A powerful TypeScript library for building AI-powered applications with template literals and structured outputs. Uses `ai` SDK with OpenAI `gpt-4o` by default.
|
|
6
7
|
|
|
7
|
-
|
|
8
|
+
## Features
|
|
8
9
|
|
|
9
|
-
|
|
10
|
-
|
|
10
|
+
- 🚀 Template literal API for natural AI prompts
|
|
11
|
+
- 🔄 Async iterator support for streaming responses
|
|
12
|
+
- 📝 Structured output generation with Zod schemas
|
|
13
|
+
- 🎯 Type-safe API with full TypeScript support
|
|
14
|
+
- ⚡️ Built on `ai` SDK for streaming & object generation
|
|
15
|
+
- 🔍 Support for various output formats (objects, arrays, enums)
|
|
11
16
|
|
|
12
|
-
|
|
17
|
+
## Installation
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
pnpm add ai-functions
|
|
13
21
|
```
|
|
14
22
|
|
|
15
|
-
|
|
23
|
+
## Usage
|
|
24
|
+
|
|
25
|
+
### Basic Template Literals
|
|
26
|
+
|
|
27
|
+
```typescript
|
|
28
|
+
import { ai, list } from 'ai-functions'
|
|
29
|
+
|
|
30
|
+
// Simple text generation
|
|
31
|
+
const text = ai`write a blog post in markdown starting with '# ${title}'`
|
|
32
|
+
|
|
33
|
+
// Complex objects/arrays dumped to YAML
|
|
34
|
+
const summary = ai`Summarize the itinerary: ${itinerary}`
|
|
35
|
+
|
|
36
|
+
// Basic list generation
|
|
37
|
+
const things = await list`fun things to do in Miami`
|
|
38
|
+
console.log(things)
|
|
39
|
+
|
|
40
|
+
// Using async iterator
|
|
41
|
+
for await (const thing of list`fun things to do in Miami`) {
|
|
42
|
+
console.log(thing)
|
|
43
|
+
}
|
|
16
44
|
|
|
17
|
-
|
|
45
|
+
// Structured output
|
|
18
46
|
const categorizeProduct = ai.categorizeProduct({
|
|
19
47
|
productType: 'App | API | Marketplace | Platform | Packaged Service | Professional Service | Website',
|
|
20
48
|
customer: 'ideal customer profile in 3-5 words',
|
|
@@ -25,26 +53,37 @@ const categorizeProduct = ai.categorizeProduct({
|
|
|
25
53
|
const product = await categorizeProduct({ domain: name })
|
|
26
54
|
```
|
|
27
55
|
|
|
28
|
-
|
|
56
|
+
### Configuration
|
|
29
57
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
58
|
+
#### Specifying the model
|
|
59
|
+
|
|
60
|
+
By default `ai-functions` uses the `openai` provider from the `ai` SDK. You can specify any openai model name as a string.
|
|
61
|
+
|
|
62
|
+
```typescript
|
|
63
|
+
const text = ai`write a blog post in markdown starting with "# ${title}"`({ model: 'gpt-4o' })
|
|
33
64
|
```
|
|
34
65
|
|
|
35
|
-
|
|
66
|
+
Or you can pass in any other provider compatible with the `ai` SDK.
|
|
36
67
|
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
}
|
|
68
|
+
```typescript
|
|
69
|
+
import { anthropic } from '@ai-sdk/anthropic'
|
|
70
|
+
|
|
71
|
+
const text = ai`write a function in TypeScript called ${name}`({ model: anthropic('claude-3-5-sonnet-20241022') })
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
#### Specifying other options
|
|
75
|
+
|
|
76
|
+
You can pass in any other options supported by the `ai` SDK, like `system`, `temperature`, `maxTokens`, etc.
|
|
77
|
+
|
|
78
|
+
```typescript
|
|
79
|
+
const things = await list`fun things to do in ${city}`({ system: 'You are an expert tour guide', temperature: 0.2 })
|
|
41
80
|
```
|
|
42
81
|
|
|
43
|
-
|
|
82
|
+
### Composable Functions & Workflows
|
|
44
83
|
|
|
45
|
-
```
|
|
84
|
+
```typescript
|
|
46
85
|
const listBlogPosts = (count, topic) => list`${count} blog post titles about ${topic}`
|
|
47
|
-
const writeBlogPost = (title) =>
|
|
86
|
+
const writeBlogPost = (title) => ai`write a blog post in markdown starting with '# ${title}'`
|
|
48
87
|
|
|
49
88
|
async function* writeBlog(count, topic) {
|
|
50
89
|
for await (const title of listBlogPosts(count, topic)) {
|
|
@@ -57,3 +96,55 @@ for await (const post of writeBlog(25, 'future of car sales')) {
|
|
|
57
96
|
console.log({ post })
|
|
58
97
|
}
|
|
59
98
|
```
|
|
99
|
+
|
|
100
|
+
### Concurrency
|
|
101
|
+
|
|
102
|
+
you can specify the `concurrency` option to limit the number of concurrent requests.
|
|
103
|
+
|
|
104
|
+
```typescript
|
|
105
|
+
activities.map(async (activity) => {
|
|
106
|
+
const result = await ai`write a paragraph overview of ${activity}`({ concurrency: 5 })
|
|
107
|
+
})
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Development
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
# Install dependencies
|
|
114
|
+
pnpm install
|
|
115
|
+
|
|
116
|
+
# Run tests
|
|
117
|
+
pnpm test
|
|
118
|
+
|
|
119
|
+
# Run tests in watch mode
|
|
120
|
+
pnpm test:watch
|
|
121
|
+
|
|
122
|
+
# Build the package
|
|
123
|
+
pnpm build
|
|
124
|
+
|
|
125
|
+
# Lint the code
|
|
126
|
+
pnpm lint
|
|
127
|
+
|
|
128
|
+
# Format the code
|
|
129
|
+
pnpm format
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## Contributing
|
|
133
|
+
|
|
134
|
+
Please read our [Contributing Guide](./CONTRIBUTING.md) to learn about our development process and how to propose bugfixes and improvements.
|
|
135
|
+
|
|
136
|
+
## License
|
|
137
|
+
|
|
138
|
+
MIT © [Drivly](https://driv.ly)
|
|
139
|
+
|
|
140
|
+
## Dependencies
|
|
141
|
+
|
|
142
|
+
This package uses the following key dependencies:
|
|
143
|
+
|
|
144
|
+
- `ai` SDK for AI model integration
|
|
145
|
+
- Defaults to `@ai-sdk/openai` provider
|
|
146
|
+
- TypeScript for static typing
|
|
147
|
+
- Zod for schema validation
|
|
148
|
+
- Vitest for testing
|
|
149
|
+
- ESLint for linting
|
|
150
|
+
- Prettier for code formatting
|
package/bin/cli.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
interface CliOptions {
|
|
2
|
+
version?: boolean;
|
|
3
|
+
help?: boolean;
|
|
4
|
+
}
|
|
5
|
+
export declare function parseArgs(args: string[]): CliOptions;
|
|
6
|
+
export declare function showHelp(): void;
|
|
7
|
+
export declare function showVersion(): void;
|
|
8
|
+
export declare function cli(args?: string[]): void;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAEA,UAAU,UAAU;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CAYpD;AAED,wBAAgB,QAAQ,IAAI,IAAI,CAQ/B;AAED,wBAAgB,WAAW,IAAI,IAAI,CAElC;AAED,wBAAgB,GAAG,CAAC,IAAI,GAAE,MAAM,EAA0B,GAAG,IAAI,CAUhE"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { version } from '../../package.json';
|
|
2
|
+
export function parseArgs(args) {
|
|
3
|
+
const options = {};
|
|
4
|
+
for (const arg of args) {
|
|
5
|
+
if (arg === '-v' || arg === '--version') {
|
|
6
|
+
options.version = true;
|
|
7
|
+
}
|
|
8
|
+
else if (arg === '-h' || arg === '--help') {
|
|
9
|
+
options.help = true;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
return options;
|
|
13
|
+
}
|
|
14
|
+
export function showHelp() {
|
|
15
|
+
console.log(`
|
|
16
|
+
Usage: ai-functions [options]
|
|
17
|
+
|
|
18
|
+
Options:
|
|
19
|
+
-v, --version Show version number
|
|
20
|
+
-h, --help Show help
|
|
21
|
+
`);
|
|
22
|
+
}
|
|
23
|
+
export function showVersion() {
|
|
24
|
+
console.log(`v${version}`);
|
|
25
|
+
}
|
|
26
|
+
export function cli(args = process.argv.slice(2)) {
|
|
27
|
+
const options = parseArgs(args);
|
|
28
|
+
if (options.version) {
|
|
29
|
+
showVersion();
|
|
30
|
+
}
|
|
31
|
+
else if (options.help) {
|
|
32
|
+
showHelp();
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
showHelp();
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAO5C,MAAM,UAAU,SAAS,CAAC,IAAc;IACtC,MAAM,OAAO,GAAe,EAAE,CAAA;IAE9B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;YACxC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAA;QACxB,CAAC;aAAM,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5C,OAAO,CAAC,IAAI,GAAG,IAAI,CAAA;QACrB,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,OAAO,CAAC,GAAG,CAAC;;;;;;CAMb,CAAC,CAAA;AACF,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,CAAC,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC,CAAA;AAC5B,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,OAAiB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;IAE/B,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,WAAW,EAAE,CAAA;IACf,CAAC;SAAM,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACxB,QAAQ,EAAE,CAAA;IACZ,CAAC;SAAM,CAAC;QACN,QAAQ,EAAE,CAAA;IACZ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../src/cli/index.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { describe, it, expect, vi } from 'vitest';
|
|
2
|
+
import { parseArgs, showHelp, showVersion, cli } from './index';
|
|
3
|
+
describe('CLI', () => {
|
|
4
|
+
it('should parse version flag correctly', () => {
|
|
5
|
+
const options = parseArgs(['-v']);
|
|
6
|
+
expect(options.version).toBe(true);
|
|
7
|
+
const longOptions = parseArgs(['--version']);
|
|
8
|
+
expect(longOptions.version).toBe(true);
|
|
9
|
+
});
|
|
10
|
+
it('should parse help flag correctly', () => {
|
|
11
|
+
const options = parseArgs(['-h']);
|
|
12
|
+
expect(options.help).toBe(true);
|
|
13
|
+
const longOptions = parseArgs(['--help']);
|
|
14
|
+
expect(longOptions.help).toBe(true);
|
|
15
|
+
});
|
|
16
|
+
it('should show version number', () => {
|
|
17
|
+
const consoleSpy = vi.spyOn(console, 'log');
|
|
18
|
+
showVersion();
|
|
19
|
+
expect(consoleSpy).toHaveBeenCalled();
|
|
20
|
+
consoleSpy.mockRestore();
|
|
21
|
+
});
|
|
22
|
+
it('should show help message', () => {
|
|
23
|
+
const consoleSpy = vi.spyOn(console, 'log');
|
|
24
|
+
showHelp();
|
|
25
|
+
expect(consoleSpy).toHaveBeenCalled();
|
|
26
|
+
consoleSpy.mockRestore();
|
|
27
|
+
});
|
|
28
|
+
it('should default to help when no arguments provided', () => {
|
|
29
|
+
const consoleSpy = vi.spyOn(console, 'log');
|
|
30
|
+
cli([]);
|
|
31
|
+
expect(consoleSpy).toHaveBeenCalled();
|
|
32
|
+
consoleSpy.mockRestore();
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
//# sourceMappingURL=index.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/cli/index.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,SAAS,CAAA;AAE/D,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE;IACnB,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;QACjC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAElC,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,CAAA;QAC5C,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;QACjC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAE/B,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;QACzC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACrC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,UAAU,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QAC3C,WAAW,EAAE,CAAA;QACb,MAAM,CAAC,UAAU,CAAC,CAAC,gBAAgB,EAAE,CAAA;QACrC,UAAU,CAAC,WAAW,EAAE,CAAA;IAC1B,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAClC,MAAM,UAAU,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QAC3C,QAAQ,EAAE,CAAA;QACV,MAAM,CAAC,UAAU,CAAC,CAAC,gBAAgB,EAAE,CAAA;QACrC,UAAU,CAAC,WAAW,EAAE,CAAA;IAC1B,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,UAAU,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QAC3C,GAAG,CAAC,EAAE,CAAC,CAAA;QACP,MAAM,CAAC,UAAU,CAAC,CAAC,gBAAgB,EAAE,CAAA;QACrC,UAAU,CAAC,WAAW,EAAE,CAAA;IAC1B,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const MODEL_BEST = "gpt-4o";
|
|
2
|
+
export declare const MODEL_FAST = "gpt-4o-mini";
|
|
3
|
+
export declare const DEFAULT_MODEL = "gpt-4o";
|
|
4
|
+
export declare const FALLBACK_MODEL = "gpt-4o-mini";
|
|
5
|
+
export declare const MODELS: {
|
|
6
|
+
readonly BEST: "gpt-4o";
|
|
7
|
+
readonly FAST: "gpt-4o-mini";
|
|
8
|
+
};
|
|
9
|
+
export type ModelType = typeof MODELS[keyof typeof MODELS];
|
|
10
|
+
//# sourceMappingURL=models.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/constants/models.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,UAAU,WAAW,CAAA;AAClC,eAAO,MAAM,UAAU,gBAAgB,CAAA;AAGvC,eAAO,MAAM,aAAa,WAAa,CAAA;AACvC,eAAO,MAAM,cAAc,gBAAa,CAAA;AAGxC,eAAO,MAAM,MAAM;;;CAGT,CAAA;AAGV,MAAM,MAAM,SAAS,GAAG,OAAO,MAAM,CAAC,MAAM,OAAO,MAAM,CAAC,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// Model identifiers
|
|
2
|
+
export const MODEL_BEST = 'gpt-4o';
|
|
3
|
+
export const MODEL_FAST = 'gpt-4o-mini';
|
|
4
|
+
// Default model configuration
|
|
5
|
+
export const DEFAULT_MODEL = MODEL_BEST;
|
|
6
|
+
export const FALLBACK_MODEL = MODEL_FAST;
|
|
7
|
+
// Model constants for external use
|
|
8
|
+
export const MODELS = {
|
|
9
|
+
BEST: MODEL_BEST,
|
|
10
|
+
FAST: MODEL_FAST
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=models.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/constants/models.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,MAAM,CAAC,MAAM,UAAU,GAAG,QAAQ,CAAA;AAClC,MAAM,CAAC,MAAM,UAAU,GAAG,aAAa,CAAA;AAEvC,8BAA8B;AAC9B,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,CAAA;AACvC,MAAM,CAAC,MAAM,cAAc,GAAG,UAAU,CAAA;AAExC,mCAAmC;AACnC,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,UAAU;CACR,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/converters/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/converters/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/converters/model.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAKhC,wBAAgB,eAAe,4CAO9B;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,KAAK,OAMhD"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { createOpenAI } from '@ai-sdk/openai';
|
|
2
|
+
// Create a singleton OpenAI client
|
|
3
|
+
let clientInstance;
|
|
4
|
+
export function getOpenAIClient() {
|
|
5
|
+
if (!clientInstance) {
|
|
6
|
+
clientInstance = createOpenAI({
|
|
7
|
+
baseURL: process.env.AI_GATEWAY,
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
return clientInstance;
|
|
11
|
+
}
|
|
12
|
+
export function convertToOpenAIModel(model) {
|
|
13
|
+
if (typeof model === 'string') {
|
|
14
|
+
const client = getOpenAIClient();
|
|
15
|
+
return client(model);
|
|
16
|
+
}
|
|
17
|
+
return model;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/converters/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAG7C,mCAAmC;AACnC,IAAI,cAA+C,CAAA;AAEnD,MAAM,UAAU,eAAe;IAC7B,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,cAAc,GAAG,YAAY,CAAC;YAC5B,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU;SAChC,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,cAAc,CAAA;AACvB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAY;IAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;QAChC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;IACtB,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/converters/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,YAAY,EAAqB,MAAM,UAAU,CAAA;AAiB1D,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAQzE"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
function convertValue(value) {
|
|
3
|
+
if (Array.isArray(value)) {
|
|
4
|
+
return z.array(z.string().describe(value[0] || ''));
|
|
5
|
+
}
|
|
6
|
+
else if (typeof value === 'string') {
|
|
7
|
+
if (value.includes('|')) {
|
|
8
|
+
const enumValues = value.split('|').map(v => v.trim());
|
|
9
|
+
return z.enum(enumValues);
|
|
10
|
+
}
|
|
11
|
+
return z.string().describe(value);
|
|
12
|
+
}
|
|
13
|
+
else if (typeof value === 'object') {
|
|
14
|
+
return convertToZodSchema(value);
|
|
15
|
+
}
|
|
16
|
+
return z.string();
|
|
17
|
+
}
|
|
18
|
+
export function convertToZodSchema(schema) {
|
|
19
|
+
const zodSchema = {};
|
|
20
|
+
for (const [key, value] of Object.entries(schema)) {
|
|
21
|
+
zodSchema[key] = convertValue(value);
|
|
22
|
+
}
|
|
23
|
+
return z.object(zodSchema);
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/converters/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,SAAS,YAAY,CAAC,KAAwB;IAC5C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IACrD,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACrC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;YACtD,OAAO,CAAC,CAAC,IAAI,CAAC,UAAmC,CAAC,CAAA;QACpD,CAAC;QACD,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACnC,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACrC,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAA;IAClC,CAAC;IACD,OAAO,CAAC,CAAC,MAAM,EAAE,CAAA;AACnB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAoB;IACrD,MAAM,SAAS,GAAiC,EAAE,CAAA;IAElD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,SAAS,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;IACtC,CAAC;IAED,OAAO,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;AAC5B,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { GenerateTextResult, StreamingResult } from 'ai';
|
|
2
|
+
export declare function createJsonResponse(result: GenerateTextResult): Response;
|
|
3
|
+
export declare function createStreamResponse(result: StreamingResult): Response;
|
|
4
|
+
export declare function createTextResponse(result: GenerateTextResult): Response;
|
|
5
|
+
//# sourceMappingURL=responses.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"responses.d.ts","sourceRoot":"","sources":["../../src/core/responses.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAyB,eAAe,EAAE,MAAM,IAAI,CAAA;AAEpF,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,QAAQ,CAIvE;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,eAAe,GAAG,QAAQ,CAItE;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,QAAQ,CAIvE"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export function createJsonResponse(result) {
|
|
2
|
+
return new Response(JSON.stringify(result), {
|
|
3
|
+
headers: { 'Content-Type': 'application/json' }
|
|
4
|
+
});
|
|
5
|
+
}
|
|
6
|
+
export function createStreamResponse(result) {
|
|
7
|
+
return new Response(result.experimental_stream, {
|
|
8
|
+
headers: { 'Content-Type': 'text/event-stream' }
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
export function createTextResponse(result) {
|
|
12
|
+
return new Response(result.text, {
|
|
13
|
+
headers: { 'Content-Type': 'text/plain' },
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=responses.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"responses.js","sourceRoot":"","sources":["../../src/core/responses.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,kBAAkB,CAAC,MAA0B;IAC3D,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;QAC1C,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;KAChD,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAuB;IAC1D,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,mBAAgD,EAAE;QAC3E,OAAO,EAAE,EAAE,cAAc,EAAE,mBAAmB,EAAE;KACjD,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAA0B;IAC3D,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE;QAC/B,OAAO,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE;KAC1C,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"responses.test.d.ts","sourceRoot":"","sources":["../../src/core/responses.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { createJsonResponse, createStreamResponse, createTextResponse } from './responses';
|
|
3
|
+
describe('Response Creation', () => {
|
|
4
|
+
it('should create JSON response', () => {
|
|
5
|
+
const mockResult = {
|
|
6
|
+
text: 'test content',
|
|
7
|
+
response: { id: 'test', model: 'test-model', created: 123 }
|
|
8
|
+
};
|
|
9
|
+
const response = createJsonResponse(mockResult);
|
|
10
|
+
expect(response).toBeInstanceOf(Response);
|
|
11
|
+
expect(response.headers.get('Content-Type')).toBe('application/json');
|
|
12
|
+
});
|
|
13
|
+
it('should create stream response', () => {
|
|
14
|
+
const mockResult = {
|
|
15
|
+
experimental_stream: new ReadableStream()
|
|
16
|
+
};
|
|
17
|
+
const response = createStreamResponse(mockResult);
|
|
18
|
+
expect(response).toBeInstanceOf(Response);
|
|
19
|
+
expect(response.headers.get('Content-Type')).toBe('text/event-stream');
|
|
20
|
+
});
|
|
21
|
+
it('should create text response', () => {
|
|
22
|
+
const mockResult = {
|
|
23
|
+
text: 'test content',
|
|
24
|
+
response: { id: 'test', model: 'test-model', created: 123 }
|
|
25
|
+
};
|
|
26
|
+
const response = createTextResponse(mockResult);
|
|
27
|
+
expect(response).toBeInstanceOf(Response);
|
|
28
|
+
expect(response.headers.get('Content-Type')).toBe('text/plain');
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
//# sourceMappingURL=responses.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"responses.test.js","sourceRoot":"","sources":["../../src/core/responses.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAG1F,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,MAAM,UAAU,GAAG;YACjB,IAAI,EAAE,cAAc;YACpB,QAAQ,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,EAAE;SACtC,CAAA;QAEvB,MAAM,QAAQ,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAA;QAC/C,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;QACzC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;IACvE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,UAAU,GAAG;YACjB,mBAAmB,EAAE,IAAI,cAAc,EAAE;SACvB,CAAA;QAEpB,MAAM,QAAQ,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAA;QACjD,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;QACzC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;IACxE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,MAAM,UAAU,GAAG;YACjB,IAAI,EAAE,cAAc;YACpB,QAAQ,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,EAAE;SACtC,CAAA;QAEvB,MAAM,QAAQ,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAA;QAC/C,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;QACzC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IACjE,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,cAAe,SAAQ,KAAK;IAG9B,KAAK,CAAC,EAAE,OAAO;IACf,SAAS;gBAFhB,OAAO,EAAE,MAAM,EACR,KAAK,CAAC,EAAE,OAAO,YAAA,EACf,SAAS,UAAO;CAK1B"}
|
package/dist/errors.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,cAAe,SAAQ,KAAK;IACvC,YACE,OAAe,EACR,KAAe,EACf,YAAY,IAAI;QAEvB,KAAK,CAAC,OAAO,CAAC,CAAA;QAHP,UAAK,GAAL,KAAK,CAAU;QACf,cAAS,GAAT,SAAS,CAAO;QAGvB,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAA;IAC9B,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streaming.test.d.ts","sourceRoot":"","sources":["../../src/examples/streaming.test.ts"],"names":[],"mappings":""}
|