@omaikit/config 0.1.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/README.md ADDED
@@ -0,0 +1,23 @@
1
+ ## @omaikit/config
2
+
3
+ Configuration utilities for Omaikit. Handles loading and saving config from global or local scope.
4
+
5
+ ### Key Functions
6
+
7
+ - `loadConfig()`
8
+ - `saveConfig()`
9
+ - `getGlobalConfigPath()`
10
+ - `getLocalConfigPath()`
11
+
12
+ ### Example
13
+
14
+ ```ts
15
+ import { loadConfig } from '@omaikit/config';
16
+
17
+ const config = loadConfig();
18
+ ```
19
+
20
+ ### Notes
21
+
22
+ - Local config is stored under `.omaikit/config.json`.
23
+ - Global config is stored in the user profile directory.
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Configuration interface and types
3
+ */
4
+ export interface OmaikitConfig {
5
+ openaiApiKey?: string;
6
+ anthropicApiKey?: string;
7
+ provider?: string;
8
+ managerModel?: string;
9
+ plannerModel?: string;
10
+ coderModel?: string;
11
+ testerModel?: string;
12
+ reviewerModel?: string;
13
+ }
14
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,aAAa;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB"}
package/dist/config.js ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Configuration interface and types
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Configuration management for Omaikit
3
+ */
4
+ export type { OmaikitConfig } from './config.js';
5
+ export { loadConfig, saveConfig, getGlobalConfigPath, getLocalConfigPath } from './loader.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Configuration management for Omaikit
3
+ */
4
+ export { loadConfig, saveConfig, getGlobalConfigPath, getLocalConfigPath } from './loader.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Configuration loader utility
3
+ */
4
+ export interface OmaikitConfig {
5
+ openaiApiKey?: string;
6
+ anthropicApiKey?: string;
7
+ provider?: string;
8
+ managerModel?: string;
9
+ plannerModel?: string;
10
+ coderModel?: string;
11
+ testerModel?: string;
12
+ reviewerModel?: string;
13
+ }
14
+ export declare function getGlobalConfigPath(): string;
15
+ export declare function getLocalConfigPath(cwd?: string): string;
16
+ export declare function saveConfig(config: OmaikitConfig, scope?: 'global' | 'local', cwd?: string): string;
17
+ export declare function loadConfig(): OmaikitConfig;
18
+ //# sourceMappingURL=loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA;;GAEG;AA4BH,MAAM,WAAW,aAAa;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAcD,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED,wBAAgB,kBAAkB,CAAC,GAAG,GAAE,MAAsB,GAAG,MAAM,CAEtE;AAED,wBAAgB,UAAU,CACxB,MAAM,EAAE,aAAa,EACrB,KAAK,GAAE,QAAQ,GAAG,OAAkB,EACpC,GAAG,GAAE,MAAsB,GAC1B,MAAM,CAQR;AAED,wBAAgB,UAAU,IAAI,aAAa,CAoB1C"}
package/dist/loader.js ADDED
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Configuration loader utility
3
+ */
4
+ import * as fs from 'fs';
5
+ import * as path from 'path';
6
+ import * as os from 'os';
7
+ // Load .env file if it exists
8
+ function loadDotEnv() {
9
+ try {
10
+ const envPath = path.join(process.cwd(), '.env');
11
+ if (fs.existsSync(envPath)) {
12
+ const envContent = fs.readFileSync(envPath, 'utf-8');
13
+ const lines = envContent.split('\n');
14
+ for (const line of lines) {
15
+ const trimmed = line.trim();
16
+ if (!trimmed || trimmed.startsWith('#'))
17
+ continue;
18
+ const [key, ...valueParts] = trimmed.split('=');
19
+ const value = valueParts.join('=');
20
+ if (key && value) {
21
+ process.env[key] = value;
22
+ }
23
+ }
24
+ }
25
+ }
26
+ catch (_e) {
27
+ // Ignore errors loading .env
28
+ }
29
+ }
30
+ function readConfigFile(filePath) {
31
+ try {
32
+ if (fs.existsSync(filePath)) {
33
+ const raw = fs.readFileSync(filePath, 'utf-8');
34
+ return JSON.parse(raw);
35
+ }
36
+ }
37
+ catch (_e) {
38
+ // ignore
39
+ }
40
+ return {};
41
+ }
42
+ export function getGlobalConfigPath() {
43
+ return path.join(os.homedir(), '.omaikit', 'config.json');
44
+ }
45
+ export function getLocalConfigPath(cwd = process.cwd()) {
46
+ return path.join(cwd, '.omaikit', 'config.json');
47
+ }
48
+ export function saveConfig(config, scope = 'global', cwd = process.cwd()) {
49
+ const targetPath = scope === 'global' ? getGlobalConfigPath() : getLocalConfigPath(cwd);
50
+ const dirPath = path.dirname(targetPath);
51
+ if (!fs.existsSync(dirPath)) {
52
+ fs.mkdirSync(dirPath, { recursive: true });
53
+ }
54
+ fs.writeFileSync(targetPath, JSON.stringify(config, null, 2), 'utf-8');
55
+ return targetPath;
56
+ }
57
+ export function loadConfig() {
58
+ // Load .env file first
59
+ loadDotEnv();
60
+ const envCfg = {
61
+ managerModel: process.env.OMAIKIT_MANAGER_MODEL || 'gpt-5-mini',
62
+ plannerModel: process.env.OMAIKIT_PLANNER_MODEL || 'gpt-5-mini',
63
+ coderModel: process.env.OMAIKIT_CODER_MODEL || 'gpt-5.1',
64
+ testerModel: process.env.OMAIKIT_TESTER_MODEL || 'gpt-5-mini',
65
+ reviewerModel: process.env.OMAIKIT_REVIEWER_MODEL || 'gpt-5-mini',
66
+ };
67
+ if (process.env.OPENAI_API_KEY)
68
+ envCfg.openaiApiKey = process.env.OPENAI_API_KEY;
69
+ if (process.env.ANTHROPIC_API_KEY)
70
+ envCfg.anthropicApiKey = process.env.ANTHROPIC_API_KEY;
71
+ if (process.env.OMAIKIT_PROVIDER)
72
+ envCfg.provider = process.env.OMAIKIT_PROVIDER;
73
+ const globalCfg = readConfigFile(getGlobalConfigPath());
74
+ const localCfg = readConfigFile(getLocalConfigPath());
75
+ return { ...globalCfg, ...localCfg, ...envCfg };
76
+ }
77
+ //# sourceMappingURL=loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,30 @@
1
+ {
2
+ "type": "module",
3
+ "name": "@omaikit/config",
4
+ "version": "0.1.0",
5
+ "description": "Configuration management for Omaikit",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "files": [
9
+ "dist"
10
+ ],
11
+ "scripts": {
12
+ "build": "tsc && tsc-alias",
13
+ "dev": "tsc --watch",
14
+ "type-check": "tsc --noEmit",
15
+ "prepare": "tsc && tsc-alias"
16
+ },
17
+ "keywords": [
18
+ "omaikit",
19
+ "config",
20
+ "configuration"
21
+ ],
22
+ "author": "Omaikit",
23
+ "license": "MIT",
24
+ "dependencies": {
25
+ "@omaikit/models": "*"
26
+ },
27
+ "devDependencies": {
28
+ "typescript": "^5.3.3"
29
+ }
30
+ }