@cogitator-ai/config 0.3.8 → 0.3.10

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cogitator-ai/config",
3
- "version": "0.3.8",
3
+ "version": "0.3.10",
4
4
  "description": "Configuration loading for Cogitator (YAML, env)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -18,7 +18,7 @@
18
18
  "@types/node": "^25.0.0",
19
19
  "yaml": "^2.3.4",
20
20
  "zod": "^3.22.4",
21
- "@cogitator-ai/types": "0.16.0"
21
+ "@cogitator-ai/types": "0.18.0"
22
22
  },
23
23
  "devDependencies": {
24
24
  "typescript": "^5.3.0",
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=env.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"env.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/env.test.ts"],"names":[],"mappings":""}
@@ -1,68 +0,0 @@
1
- import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest';
2
- import { loadEnvConfig } from '../loaders/env.js';
3
- describe('loadEnvConfig()', () => {
4
- const originalEnv = process.env;
5
- beforeEach(() => {
6
- vi.resetModules();
7
- process.env = { ...originalEnv };
8
- });
9
- afterEach(() => {
10
- process.env = originalEnv;
11
- });
12
- it('returns empty config when no env vars set', () => {
13
- const keysToDelete = Object.keys(process.env).filter((key) => key.startsWith('COGITATOR_') ||
14
- ['OPENAI_API_KEY', 'ANTHROPIC_API_KEY', 'OLLAMA_HOST'].includes(key));
15
- for (const key of keysToDelete) {
16
- process.env[key] = undefined;
17
- }
18
- const config = loadEnvConfig();
19
- expect(config.llm).toBeUndefined();
20
- expect(config.limits).toBeUndefined();
21
- });
22
- it('loads LLM default provider from env', () => {
23
- process.env.COGITATOR_LLM_DEFAULT_PROVIDER = 'openai';
24
- process.env.COGITATOR_LLM_DEFAULT_MODEL = 'gpt-4';
25
- const config = loadEnvConfig();
26
- expect(config.llm?.defaultProvider).toBe('openai');
27
- expect(config.llm?.defaultModel).toBe('gpt-4');
28
- });
29
- it('loads Ollama config from COGITATOR_ prefix', () => {
30
- process.env.COGITATOR_OLLAMA_BASE_URL = 'http://localhost:11434';
31
- const config = loadEnvConfig();
32
- expect(config.llm?.providers?.ollama?.baseUrl).toBe('http://localhost:11434');
33
- });
34
- it('loads Ollama config from standard OLLAMA_HOST', () => {
35
- delete process.env.COGITATOR_OLLAMA_BASE_URL;
36
- process.env.OLLAMA_HOST = 'http://192.168.1.100:11434';
37
- const config = loadEnvConfig();
38
- expect(config.llm?.providers?.ollama?.baseUrl).toBe('http://192.168.1.100:11434');
39
- });
40
- it('loads OpenAI config from standard OPENAI_API_KEY', () => {
41
- delete process.env.COGITATOR_OPENAI_API_KEY;
42
- process.env.OPENAI_API_KEY = 'sk-test-key';
43
- const config = loadEnvConfig();
44
- expect(config.llm?.providers?.openai?.apiKey).toBe('sk-test-key');
45
- });
46
- it('loads Anthropic config from standard ANTHROPIC_API_KEY', () => {
47
- delete process.env.COGITATOR_ANTHROPIC_API_KEY;
48
- process.env.ANTHROPIC_API_KEY = 'sk-ant-test-key';
49
- const config = loadEnvConfig();
50
- expect(config.llm?.providers?.anthropic?.apiKey).toBe('sk-ant-test-key');
51
- });
52
- it('loads limits from env', () => {
53
- process.env.COGITATOR_LIMITS_MAX_CONCURRENT_RUNS = '5';
54
- process.env.COGITATOR_LIMITS_DEFAULT_TIMEOUT = '30000';
55
- process.env.COGITATOR_LIMITS_MAX_TOKENS_PER_RUN = '100000';
56
- const config = loadEnvConfig();
57
- expect(config.limits?.maxConcurrentRuns).toBe(5);
58
- expect(config.limits?.defaultTimeout).toBe(30000);
59
- expect(config.limits?.maxTokensPerRun).toBe(100000);
60
- });
61
- it('COGITATOR_ prefix takes precedence over standard env vars', () => {
62
- process.env.OPENAI_API_KEY = 'standard-key';
63
- process.env.COGITATOR_OPENAI_API_KEY = 'cogitator-key';
64
- const config = loadEnvConfig();
65
- expect(config.llm?.providers?.openai?.apiKey).toBe('cogitator-key');
66
- });
67
- });
68
- //# sourceMappingURL=env.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"env.test.js","sourceRoot":"","sources":["../../src/__tests__/env.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=schema.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/schema.test.ts"],"names":[],"mappings":""}
@@ -1,71 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { CogitatorConfigSchema, LLMProviderSchema } from '../schema.js';
3
- describe('LLMProviderSchema', () => {
4
- it('accepts valid providers', () => {
5
- expect(LLMProviderSchema.parse('ollama')).toBe('ollama');
6
- expect(LLMProviderSchema.parse('openai')).toBe('openai');
7
- expect(LLMProviderSchema.parse('anthropic')).toBe('anthropic');
8
- expect(LLMProviderSchema.parse('google')).toBe('google');
9
- expect(LLMProviderSchema.parse('vllm')).toBe('vllm');
10
- });
11
- it('rejects invalid providers', () => {
12
- expect(() => LLMProviderSchema.parse('invalid')).toThrow();
13
- expect(() => LLMProviderSchema.parse('')).toThrow();
14
- });
15
- });
16
- describe('CogitatorConfigSchema', () => {
17
- it('accepts empty config', () => {
18
- const result = CogitatorConfigSchema.parse({});
19
- expect(result).toEqual({});
20
- });
21
- it('accepts full config', () => {
22
- const config = {
23
- llm: {
24
- defaultProvider: 'ollama',
25
- defaultModel: 'llama3.1:8b',
26
- providers: {
27
- ollama: { baseUrl: 'http://localhost:11434' },
28
- openai: { apiKey: 'sk-xxx', baseUrl: 'https://api.openai.com/v1' },
29
- anthropic: { apiKey: 'sk-ant-xxx' },
30
- },
31
- },
32
- limits: {
33
- maxConcurrentRuns: 10,
34
- defaultTimeout: 30000,
35
- maxTokensPerRun: 100000,
36
- },
37
- };
38
- const result = CogitatorConfigSchema.parse(config);
39
- expect(result.llm?.defaultProvider).toBe('ollama');
40
- expect(result.llm?.providers?.ollama?.baseUrl).toBe('http://localhost:11434');
41
- expect(result.limits?.maxConcurrentRuns).toBe(10);
42
- });
43
- it('accepts partial config', () => {
44
- const config = {
45
- llm: {
46
- defaultProvider: 'openai',
47
- },
48
- };
49
- const result = CogitatorConfigSchema.parse(config);
50
- expect(result.llm?.defaultProvider).toBe('openai');
51
- expect(result.llm?.providers).toBeUndefined();
52
- expect(result.limits).toBeUndefined();
53
- });
54
- it('rejects invalid provider', () => {
55
- const config = {
56
- llm: {
57
- defaultProvider: 'invalid-provider',
58
- },
59
- };
60
- expect(() => CogitatorConfigSchema.parse(config)).toThrow();
61
- });
62
- it('rejects negative limits', () => {
63
- const config = {
64
- limits: {
65
- maxConcurrentRuns: -1,
66
- },
67
- };
68
- expect(() => CogitatorConfigSchema.parse(config)).toThrow();
69
- });
70
- });
71
- //# sourceMappingURL=schema.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.test.js","sourceRoot":"","sources":["../../src/__tests__/schema.test.ts"],"names":[],"mappings":"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"}