@auto-engineer/model-factory 1.57.0 → 1.59.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.
@@ -1,5 +1,5 @@
1
1
 
2
- > @auto-engineer/model-factory@1.57.0 build /home/runner/work/auto-engineer/auto-engineer/packages/model-factory
2
+ > @auto-engineer/model-factory@1.59.0 build /home/runner/work/auto-engineer/auto-engineer/packages/model-factory
3
3
  > tsc && tsx ../../scripts/fix-esm-imports.ts
4
4
 
5
5
  Fixed ESM imports in dist/
@@ -1,14 +1,14 @@
1
1
 
2
- > @auto-engineer/model-factory@1.56.0 test /home/runner/work/auto-engineer/auto-engineer/packages/model-factory
2
+ > @auto-engineer/model-factory@1.58.0 test /home/runner/work/auto-engineer/auto-engineer/packages/model-factory
3
3
  > vitest run --reporter=dot
4
4
 
5
5
 
6
6
   RUN  v3.2.4 /home/runner/work/auto-engineer/auto-engineer/packages/model-factory
7
7
 
8
- ·············
8
+ ·····
9
9
 
10
10
   Test Files  1 passed (1)
11
-  Tests  13 passed (13)
12
-  Start at  07:55:17
13
-  Duration  2.44s (transform 595ms, setup 0ms, collect 496ms, tests 267ms, environment 0ms, prepare 697ms)
11
+  Tests  5 passed (5)
12
+  Start at  15:17:09
13
+  Duration  2.11s (transform 381ms, setup 0ms, collect 281ms, tests 157ms, environment 0ms, prepare 610ms)
14
14
 
@@ -1,4 +1,4 @@
1
1
 
2
- > @auto-engineer/model-factory@1.56.0 type-check /home/runner/work/auto-engineer/auto-engineer/packages/model-factory
2
+ > @auto-engineer/model-factory@1.58.0 type-check /home/runner/work/auto-engineer/auto-engineer/packages/model-factory
3
3
  > tsc --noEmit
4
4
 
package/CHANGELOG.md CHANGED
@@ -1,5 +1,47 @@
1
1
  # @auto-engineer/model-factory
2
2
 
3
+ ## 1.59.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`dc97333`](https://github.com/BeOnAuto/auto-engineer/commit/dc973338ed6a5c7dcd204123a2935ed44ccf61e4) Thanks [@github-actions[bot]](https://github.com/github-actions%5Bbot%5D)! - - **server-generator-apollo-emmett**: sanitize malformed map types in field definitions
8
+ - **server-generator-apollo-emmett**: add sanitizeFieldType helper
9
+ - **server-generator-apollo-emmett**: emit SliceGenerationFailed for skipped fields
10
+ - **server-generator-apollo-emmett**: sanitize messages and track SkippedFieldInfo
11
+ - **server-generator-apollo-emmett**: add isValidTsIdentifier and filter inline fields
12
+
13
+ - [`c031dbe`](https://github.com/BeOnAuto/auto-engineer/commit/c031dbeb471ddeb9713f5c872352e5a405dab244) Thanks [@osamanar](https://github.com/osamanar)! - - Fixed issues with app implementation in the React component implementer
14
+
15
+ ## 1.58.0
16
+
17
+ ### Minor Changes
18
+
19
+ - [`5c0ce7e`](https://github.com/BeOnAuto/auto-engineer/commit/5c0ce7e26f36b7809095cb16a7940ff9fc05314e) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **server-generator-apollo-emmett**: add isValidTsIdentifier and filter inline fields
20
+
21
+ - [`a90a25a`](https://github.com/BeOnAuto/auto-engineer/commit/a90a25a23c52783fd46dbde73cb9efa692e3b56a) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **server-generator-apollo-emmett**: add sanitizeFieldType helper
22
+
23
+ - [`007bbbe`](https://github.com/BeOnAuto/auto-engineer/commit/007bbbe1fb3db946529e361500c32ba47053b3ee) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **server-generator-apollo-emmett**: emit SliceGenerationFailed for skipped fields
24
+
25
+ - [`301560d`](https://github.com/BeOnAuto/auto-engineer/commit/301560db8ce3dd13284439f86c12f9d51e29038e) Thanks [@github-actions[bot]](https://github.com/github-actions%5Bbot%5D)! - - **typical**: update .env and package.json for bug report testing
26
+ - **submit-bug-report**: add pipeline command handler for bug reports
27
+ - **cli**: set process.env.SERVICE_TOKEN from configure endpoint
28
+ - **global**: version packages
29
+ - **typical**: add worker-to-server env vars to .env files
30
+
31
+ - [`1776bea`](https://github.com/BeOnAuto/auto-engineer/commit/1776beacf27511f883e3218a8436741451acfa4e) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **server-generator-apollo-emmett**: sanitize messages and track SkippedFieldInfo
32
+
33
+ - [`ba39eef`](https://github.com/BeOnAuto/auto-engineer/commit/ba39eefefa76d2e6f75a4f98d3677a314deabafc) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **server-generator-apollo-emmett**: sanitize malformed map types in field definitions
34
+
35
+ ### Patch Changes
36
+
37
+ - [`5caa270`](https://github.com/BeOnAuto/auto-engineer/commit/5caa2705f4d6e1d958be91faa8de6dad2f449206) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **server-generator-apollo-emmett**: add ketchup plan for malformed map type fix
38
+
39
+ - [`af365c0`](https://github.com/BeOnAuto/auto-engineer/commit/af365c050e347faf574d5561b5ee92b93cbc0899) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **server-generator-apollo-emmett**: add ketchup plan for invalid TS identifier fix
40
+
41
+ - [`1c58459`](https://github.com/BeOnAuto/auto-engineer/commit/1c5845991c59cfeebc0a5596b054bfd3f56a36fc) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **server-generator-apollo-emmett**: update ketchup plan — all bursts done
42
+
43
+ - [`da36c91`](https://github.com/BeOnAuto/auto-engineer/commit/da36c9111af0b15963f87b0ac75f81849f8b6c9f) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **server-generator-apollo-emmett**: rename SkippedFieldInfo to FieldIssue
44
+
3
45
  ## 1.57.0
4
46
 
5
47
  ### Minor Changes
@@ -1,10 +1,3 @@
1
1
  import type { LanguageModel } from 'ai';
2
- export type Provider = 'openai' | 'anthropic' | 'google' | 'xai' | 'custom';
3
- export declare const DEFAULT_MODELS: Record<Provider, string>;
4
- interface CreateModelOptions {
5
- provider?: Provider;
6
- model?: string;
7
- }
8
- export declare function createModelFromEnv(options?: CreateModelOptions): LanguageModel;
9
- export {};
2
+ export declare function createModelFromEnv(): LanguageModel;
10
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAExC,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ,CAAC;AAE5E,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAMnD,CAAC;AAEF,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,aAAa,CA0B9E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAUxC,wBAAgB,kBAAkB,IAAI,aAAa,CAOlD"}
package/dist/src/index.js CHANGED
@@ -1,36 +1,16 @@
1
- import { createAnthropic } from '@ai-sdk/anthropic';
2
- import { createGoogleGenerativeAI } from '@ai-sdk/google';
3
- import { createOpenAI } from '@ai-sdk/openai';
4
1
  import { createOpenAICompatible } from '@ai-sdk/openai-compatible';
5
- import { createXai } from '@ai-sdk/xai';
6
- export const DEFAULT_MODELS = {
7
- openai: 'gpt-4o',
8
- anthropic: 'claude-sonnet-4-20250514',
9
- google: 'gemini-2.0-flash',
10
- xai: 'grok-3',
11
- custom: 'claude-sonnet-4-20250514',
12
- };
13
- export function createModelFromEnv(options) {
14
- const provider = options?.provider ?? process.env.DEFAULT_AI_PROVIDER ?? 'custom';
15
- const modelName = options?.model ?? process.env.DEFAULT_AI_MODEL ?? DEFAULT_MODELS[provider];
16
- if (provider === 'custom') {
17
- const name = process.env.CUSTOM_PROVIDER_NAME ?? 'custom';
18
- const baseURL = process.env.CUSTOM_PROVIDER_BASE_URL;
19
- const apiKey = process.env.CUSTOM_PROVIDER_API_KEY ?? '';
20
- if (!baseURL) {
21
- throw new Error('CUSTOM_PROVIDER_BASE_URL is required when using the custom provider');
22
- }
23
- return createOpenAICompatible({ name, baseURL, apiKey }).chatModel(modelName);
24
- }
25
- switch (provider) {
26
- case 'openai':
27
- return createOpenAI()(modelName);
28
- case 'anthropic':
29
- return createAnthropic()(modelName);
30
- case 'google':
31
- return createGoogleGenerativeAI()(modelName);
32
- case 'xai':
33
- return createXai()(modelName);
2
+ function requireEnv(name) {
3
+ const value = process.env[name];
4
+ if (!value) {
5
+ throw new Error(`Missing required environment variable: ${name}`);
34
6
  }
7
+ return value;
8
+ }
9
+ export function createModelFromEnv() {
10
+ const name = requireEnv('CUSTOM_PROVIDER_NAME');
11
+ const baseURL = requireEnv('CUSTOM_PROVIDER_BASE_URL');
12
+ const apiKey = requireEnv('CUSTOM_PROVIDER_API_KEY');
13
+ const model = requireEnv('CUSTOM_PROVIDER_DEFAULT_MODEL');
14
+ return createOpenAICompatible({ name, baseURL, apiKey }).chatModel(model);
35
15
  }
36
16
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAKxC,MAAM,CAAC,MAAM,cAAc,GAA6B;IACtD,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,0BAA0B;IACrC,MAAM,EAAE,kBAAkB;IAC1B,GAAG,EAAE,QAAQ;IACb,MAAM,EAAE,0BAA0B;CACnC,CAAC;AAOF,MAAM,UAAU,kBAAkB,CAAC,OAA4B;IAC7D,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAK,OAAO,CAAC,GAAG,CAAC,mBAA4C,IAAI,QAAQ,CAAC;IAC5G,MAAM,SAAS,GAAG,OAAO,EAAE,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC;IAE7F,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,QAAQ,CAAC;QAC1D,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC;QACrD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,EAAE,CAAC;QAEzD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;QACzF,CAAC;QAED,OAAO,sBAAsB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,SAAS,CAA6B,CAAC;IAC5G,CAAC;IAED,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,QAAQ;YACX,OAAO,YAAY,EAAE,CAAC,SAAS,CAA6B,CAAC;QAC/D,KAAK,WAAW;YACd,OAAO,eAAe,EAAE,CAAC,SAAS,CAA6B,CAAC;QAClE,KAAK,QAAQ;YACX,OAAO,wBAAwB,EAAE,CAAC,SAAS,CAA6B,CAAC;QAC3E,KAAK,KAAK;YACR,OAAO,SAAS,EAAE,CAAC,SAAS,CAA6B,CAAC;IAC9D,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAGnE,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,0CAA0C,IAAI,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,MAAM,IAAI,GAAG,UAAU,CAAC,sBAAsB,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,UAAU,CAAC,0BAA0B,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,UAAU,CAAC,yBAAyB,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,UAAU,CAAC,+BAA+B,CAAC,CAAC;IAE1D,OAAO,sBAAsB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,KAAK,CAA6B,CAAC;AACxG,CAAC"}
@@ -1,9 +1,4 @@
1
1
  import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
2
- const stubModel = (provider) => (model) => ({
3
- specificationVersion: 'v3',
4
- modelId: model,
5
- provider,
6
- });
7
2
  vi.mock('@ai-sdk/openai-compatible', () => ({
8
3
  createOpenAICompatible: ({ name, baseURL, apiKey }) => ({
9
4
  chatModel: (model) => ({
@@ -13,10 +8,6 @@ vi.mock('@ai-sdk/openai-compatible', () => ({
13
8
  }),
14
9
  }),
15
10
  }));
16
- vi.mock('@ai-sdk/openai', () => ({ createOpenAI: () => stubModel('openai') }));
17
- vi.mock('@ai-sdk/anthropic', () => ({ createAnthropic: () => stubModel('anthropic') }));
18
- vi.mock('@ai-sdk/google', () => ({ createGoogleGenerativeAI: () => stubModel('google') }));
19
- vi.mock('@ai-sdk/xai', () => ({ createXai: () => stubModel('xai') }));
20
11
  const savedEnv = { ...process.env };
21
12
  beforeEach(() => {
22
13
  vi.resetModules();
@@ -24,135 +15,52 @@ beforeEach(() => {
24
15
  afterEach(() => {
25
16
  process.env = { ...savedEnv };
26
17
  });
18
+ function setRequiredEnv(overrides) {
19
+ process.env.CUSTOM_PROVIDER_NAME = 'litellm';
20
+ process.env.CUSTOM_PROVIDER_BASE_URL = 'https://gateway.example.com/v1';
21
+ process.env.CUSTOM_PROVIDER_API_KEY = 'sk-test';
22
+ process.env.CUSTOM_PROVIDER_DEFAULT_MODEL = 'xai/grok-code-fast-1';
23
+ if (overrides) {
24
+ for (const [key, value] of Object.entries(overrides)) {
25
+ if (value === undefined) {
26
+ delete process.env[key];
27
+ }
28
+ else {
29
+ process.env[key] = value;
30
+ }
31
+ }
32
+ }
33
+ }
27
34
  describe('createModelFromEnv', () => {
28
- describe('custom provider', () => {
29
- it('creates model using CUSTOM_PROVIDER env vars with default model', async () => {
30
- process.env.CUSTOM_PROVIDER_NAME = 'litellm';
31
- process.env.CUSTOM_PROVIDER_BASE_URL = 'https://gateway.example.com/v1';
32
- process.env.CUSTOM_PROVIDER_API_KEY = 'sk-test';
33
- process.env.DEFAULT_AI_PROVIDER = 'custom';
34
- const { createModelFromEnv, DEFAULT_MODELS } = await import('./index.js');
35
- const model = createModelFromEnv();
36
- expect(model).toEqual({
37
- specificationVersion: 'v3',
38
- modelId: DEFAULT_MODELS.custom,
39
- provider: 'litellm:https://gateway.example.com/v1:sk-test',
40
- });
41
- });
42
- it('uses options.model override', async () => {
43
- process.env.CUSTOM_PROVIDER_BASE_URL = 'https://gw.example.com/v1';
44
- const { createModelFromEnv } = await import('./index.js');
45
- const model = createModelFromEnv({ model: 'my-custom-model' });
46
- expect(model).toEqual({
47
- specificationVersion: 'v3',
48
- modelId: 'my-custom-model',
49
- provider: 'custom:https://gw.example.com/v1:',
50
- });
51
- });
52
- it('uses DEFAULT_AI_MODEL env var when options.model is unset', async () => {
53
- process.env.CUSTOM_PROVIDER_BASE_URL = 'https://gw.example.com/v1';
54
- process.env.DEFAULT_AI_MODEL = 'env-override-model';
55
- const { createModelFromEnv } = await import('./index.js');
56
- const model = createModelFromEnv();
57
- expect(model).toEqual({
58
- specificationVersion: 'v3',
59
- modelId: 'env-override-model',
60
- provider: 'custom:https://gw.example.com/v1:',
61
- });
62
- });
63
- it('defaults to custom provider when DEFAULT_AI_PROVIDER is unset', async () => {
64
- process.env.CUSTOM_PROVIDER_BASE_URL = 'https://gw.example.com/v1';
65
- delete process.env.DEFAULT_AI_PROVIDER;
66
- const { createModelFromEnv } = await import('./index.js');
67
- const model = createModelFromEnv();
68
- expect(model).toEqual(expect.objectContaining({
69
- specificationVersion: 'v3',
70
- provider: 'custom:https://gw.example.com/v1:',
71
- }));
72
- });
73
- it('throws when CUSTOM_PROVIDER_BASE_URL is missing', async () => {
74
- process.env.DEFAULT_AI_PROVIDER = 'custom';
75
- delete process.env.CUSTOM_PROVIDER_BASE_URL;
76
- const { createModelFromEnv } = await import('./index.js');
77
- expect(() => createModelFromEnv()).toThrow('CUSTOM_PROVIDER_BASE_URL is required when using the custom provider');
35
+ it('creates model from all 4 env vars', async () => {
36
+ setRequiredEnv();
37
+ const { createModelFromEnv } = await import('./index.js');
38
+ const model = createModelFromEnv();
39
+ expect(model).toEqual({
40
+ specificationVersion: 'v3',
41
+ modelId: 'xai/grok-code-fast-1',
42
+ provider: 'litellm:https://gateway.example.com/v1:sk-test',
78
43
  });
79
44
  });
80
- describe('direct providers', () => {
81
- it('creates openai model with default model name', async () => {
82
- const { createModelFromEnv, DEFAULT_MODELS } = await import('./index.js');
83
- const model = createModelFromEnv({ provider: 'openai' });
84
- expect(model).toEqual({
85
- specificationVersion: 'v3',
86
- modelId: DEFAULT_MODELS.openai,
87
- provider: 'openai',
88
- });
89
- });
90
- it('creates anthropic model with default model name', async () => {
91
- const { createModelFromEnv, DEFAULT_MODELS } = await import('./index.js');
92
- const model = createModelFromEnv({ provider: 'anthropic' });
93
- expect(model).toEqual({
94
- specificationVersion: 'v3',
95
- modelId: DEFAULT_MODELS.anthropic,
96
- provider: 'anthropic',
97
- });
98
- });
99
- it('creates google model with default model name', async () => {
100
- const { createModelFromEnv, DEFAULT_MODELS } = await import('./index.js');
101
- const model = createModelFromEnv({ provider: 'google' });
102
- expect(model).toEqual({
103
- specificationVersion: 'v3',
104
- modelId: DEFAULT_MODELS.google,
105
- provider: 'google',
106
- });
107
- });
108
- it('creates xai model with default model name', async () => {
109
- const { createModelFromEnv, DEFAULT_MODELS } = await import('./index.js');
110
- const model = createModelFromEnv({ provider: 'xai' });
111
- expect(model).toEqual({
112
- specificationVersion: 'v3',
113
- modelId: DEFAULT_MODELS.xai,
114
- provider: 'xai',
115
- });
116
- });
117
- it('reads provider from DEFAULT_AI_PROVIDER env var', async () => {
118
- process.env.DEFAULT_AI_PROVIDER = 'anthropic';
119
- const { createModelFromEnv, DEFAULT_MODELS } = await import('./index.js');
120
- const model = createModelFromEnv();
121
- expect(model).toEqual({
122
- specificationVersion: 'v3',
123
- modelId: DEFAULT_MODELS.anthropic,
124
- provider: 'anthropic',
125
- });
126
- });
127
- it('options.provider overrides DEFAULT_AI_PROVIDER env var', async () => {
128
- process.env.DEFAULT_AI_PROVIDER = 'openai';
129
- const { createModelFromEnv, DEFAULT_MODELS } = await import('./index.js');
130
- const model = createModelFromEnv({ provider: 'xai' });
131
- expect(model).toEqual({
132
- specificationVersion: 'v3',
133
- modelId: DEFAULT_MODELS.xai,
134
- provider: 'xai',
135
- });
136
- });
137
- it('uses options.model for direct provider', async () => {
138
- const { createModelFromEnv } = await import('./index.js');
139
- const model = createModelFromEnv({ provider: 'openai', model: 'gpt-4-turbo' });
140
- expect(model).toEqual({
141
- specificationVersion: 'v3',
142
- modelId: 'gpt-4-turbo',
143
- provider: 'openai',
144
- });
145
- });
146
- it('uses DEFAULT_AI_MODEL env var for direct provider', async () => {
147
- process.env.DEFAULT_AI_MODEL = 'custom-model-name';
148
- const { createModelFromEnv } = await import('./index.js');
149
- const model = createModelFromEnv({ provider: 'openai' });
150
- expect(model).toEqual({
151
- specificationVersion: 'v3',
152
- modelId: 'custom-model-name',
153
- provider: 'openai',
154
- });
155
- });
45
+ it('throws when CUSTOM_PROVIDER_NAME is missing', async () => {
46
+ setRequiredEnv({ CUSTOM_PROVIDER_NAME: undefined });
47
+ const { createModelFromEnv } = await import('./index.js');
48
+ expect(() => createModelFromEnv()).toThrow('Missing required environment variable: CUSTOM_PROVIDER_NAME');
49
+ });
50
+ it('throws when CUSTOM_PROVIDER_BASE_URL is missing', async () => {
51
+ setRequiredEnv({ CUSTOM_PROVIDER_BASE_URL: undefined });
52
+ const { createModelFromEnv } = await import('./index.js');
53
+ expect(() => createModelFromEnv()).toThrow('Missing required environment variable: CUSTOM_PROVIDER_BASE_URL');
54
+ });
55
+ it('throws when CUSTOM_PROVIDER_API_KEY is missing', async () => {
56
+ setRequiredEnv({ CUSTOM_PROVIDER_API_KEY: undefined });
57
+ const { createModelFromEnv } = await import('./index.js');
58
+ expect(() => createModelFromEnv()).toThrow('Missing required environment variable: CUSTOM_PROVIDER_API_KEY');
59
+ });
60
+ it('throws when CUSTOM_PROVIDER_DEFAULT_MODEL is missing', async () => {
61
+ setRequiredEnv({ CUSTOM_PROVIDER_DEFAULT_MODEL: undefined });
62
+ const { createModelFromEnv } = await import('./index.js');
63
+ expect(() => createModelFromEnv()).toThrow('Missing required environment variable: CUSTOM_PROVIDER_DEFAULT_MODEL');
156
64
  });
157
65
  });
158
66
  //# sourceMappingURL=index.specs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.specs.js","sourceRoot":"","sources":["../../src/index.specs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.specs.js","sourceRoot":"","sources":["../../src/index.specs.ts"],"names":[],"mappings":"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"}