@sashabogi/foundation 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.
Files changed (43) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +341 -0
  3. package/dist/cli.d.ts +12 -0
  4. package/dist/cli.d.ts.map +1 -0
  5. package/dist/cli.js +308 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/index.d.ts +32 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +78 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/services/config.service.d.ts +92 -0
  12. package/dist/services/config.service.d.ts.map +1 -0
  13. package/dist/services/config.service.js +284 -0
  14. package/dist/services/config.service.js.map +1 -0
  15. package/dist/services/git.service.d.ts +175 -0
  16. package/dist/services/git.service.d.ts.map +1 -0
  17. package/dist/services/git.service.js +395 -0
  18. package/dist/services/git.service.js.map +1 -0
  19. package/dist/services/provider.service.d.ts +74 -0
  20. package/dist/services/provider.service.d.ts.map +1 -0
  21. package/dist/services/provider.service.js +182 -0
  22. package/dist/services/provider.service.js.map +1 -0
  23. package/dist/services/storage.service.d.ts +84 -0
  24. package/dist/services/storage.service.d.ts.map +1 -0
  25. package/dist/services/storage.service.js +320 -0
  26. package/dist/services/storage.service.js.map +1 -0
  27. package/dist/tools/demerzel/index.d.ts +21 -0
  28. package/dist/tools/demerzel/index.d.ts.map +1 -0
  29. package/dist/tools/demerzel/index.js +166 -0
  30. package/dist/tools/demerzel/index.js.map +1 -0
  31. package/dist/tools/gaia/index.d.ts +27 -0
  32. package/dist/tools/gaia/index.d.ts.map +1 -0
  33. package/dist/tools/gaia/index.js +466 -0
  34. package/dist/tools/gaia/index.js.map +1 -0
  35. package/dist/tools/seldon/index.d.ts +43 -0
  36. package/dist/tools/seldon/index.d.ts.map +1 -0
  37. package/dist/tools/seldon/index.js +886 -0
  38. package/dist/tools/seldon/index.js.map +1 -0
  39. package/dist/types/index.d.ts +392 -0
  40. package/dist/types/index.d.ts.map +1 -0
  41. package/dist/types/index.js +10 -0
  42. package/dist/types/index.js.map +1 -0
  43. package/package.json +85 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Foundation MCP Server
4
+ *
5
+ * Unified MCP server combining three pillars from Asimov's Foundation:
6
+ *
7
+ * - Demerzel: Codebase intelligence (R. Daneel Olivaw - 20,000 years of perfect memory)
8
+ * - Seldon: Multi-agent orchestration (Hari Seldon - the Seldon Plan guides the future)
9
+ * - Gaia: Workflow patterns (The collective consciousness - "We are all one")
10
+ *
11
+ * Usage:
12
+ * npx @sashabogi/foundation
13
+ *
14
+ * Or add to ~/.claude.json:
15
+ * {
16
+ * "mcpServers": {
17
+ * "foundation": {
18
+ * "command": "npx",
19
+ * "args": ["@sashabogi/foundation"]
20
+ * }
21
+ * }
22
+ * }
23
+ */
24
+ declare const SERVER_NAME = "foundation";
25
+ declare const SERVER_VERSION = "0.1.0";
26
+ /**
27
+ * Start the Foundation MCP server
28
+ * Can be called from CLI or run directly
29
+ */
30
+ export declare function startServer(): Promise<void>;
31
+ export { SERVER_NAME, SERVER_VERSION };
32
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAgBH,QAAA,MAAM,WAAW,eAAe,CAAC;AACjC,QAAA,MAAM,cAAc,UAAU,CAAC;AAE/B;;;GAGG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAiCjD;AAGD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,78 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Foundation MCP Server
4
+ *
5
+ * Unified MCP server combining three pillars from Asimov's Foundation:
6
+ *
7
+ * - Demerzel: Codebase intelligence (R. Daneel Olivaw - 20,000 years of perfect memory)
8
+ * - Seldon: Multi-agent orchestration (Hari Seldon - the Seldon Plan guides the future)
9
+ * - Gaia: Workflow patterns (The collective consciousness - "We are all one")
10
+ *
11
+ * Usage:
12
+ * npx @sashabogi/foundation
13
+ *
14
+ * Or add to ~/.claude.json:
15
+ * {
16
+ * "mcpServers": {
17
+ * "foundation": {
18
+ * "command": "npx",
19
+ * "args": ["@sashabogi/foundation"]
20
+ * }
21
+ * }
22
+ * }
23
+ */
24
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
25
+ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
26
+ // Services
27
+ import { ConfigService } from "./services/config.service.js";
28
+ import { StorageService } from "./services/storage.service.js";
29
+ import { GitService } from "./services/git.service.js";
30
+ import { ProviderService } from "./services/provider.service.js";
31
+ // Tool registrations
32
+ import { registerDemerzelTools } from "./tools/demerzel/index.js";
33
+ import { registerSeldonTools } from "./tools/seldon/index.js";
34
+ import { registerGaiaTools } from "./tools/gaia/index.js";
35
+ const SERVER_NAME = "foundation";
36
+ const SERVER_VERSION = "0.1.0";
37
+ /**
38
+ * Start the Foundation MCP server
39
+ * Can be called from CLI or run directly
40
+ */
41
+ export async function startServer() {
42
+ // Initialize services in order (config first, then storage, then others)
43
+ const config = ConfigService.getInstance();
44
+ await config.init();
45
+ const storage = StorageService.getInstance();
46
+ await storage.init();
47
+ const _git = GitService.getInstance();
48
+ // Git service doesn't need init - it's stateless
49
+ const providers = ProviderService.getInstance();
50
+ await providers.init(config.getConfig());
51
+ // Create MCP server
52
+ const server = new McpServer({
53
+ name: SERVER_NAME,
54
+ version: SERVER_VERSION,
55
+ });
56
+ // Register all tools from each module
57
+ // Each module prefixes its tools: demerzel_*, seldon_*, gaia_*
58
+ registerDemerzelTools(server);
59
+ registerSeldonTools(server);
60
+ registerGaiaTools(server);
61
+ // Create stdio transport and connect
62
+ const transport = new StdioServerTransport();
63
+ await server.connect(transport);
64
+ // Log startup to stderr (stdout is for MCP protocol)
65
+ console.error(`🏛️ ${SERVER_NAME} v${SERVER_VERSION} started`);
66
+ console.error(` Modules: Demerzel (codebase) | Seldon (agents) | Gaia (workflow)`);
67
+ }
68
+ // Export for CLI usage
69
+ export { SERVER_NAME, SERVER_VERSION };
70
+ // If run directly (not imported), start the server
71
+ const isMainModule = import.meta.url === `file://${process.argv[1]}`;
72
+ if (isMainModule) {
73
+ startServer().catch((error) => {
74
+ console.error("Fatal error:", error);
75
+ process.exit(1);
76
+ });
77
+ }
78
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,WAAW;AACX,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEjE,qBAAqB;AACrB,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,WAAW,GAAG,YAAY,CAAC;AACjC,MAAM,cAAc,GAAG,OAAO,CAAC;AAE/B;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,yEAAyE;IACzE,MAAM,MAAM,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;IAC3C,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;IAEpB,MAAM,OAAO,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC;IAC7C,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;IAErB,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;IACtC,iDAAiD;IAEjD,MAAM,SAAS,GAAG,eAAe,CAAC,WAAW,EAAE,CAAC;IAChD,MAAM,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IAEzC,oBAAoB;IACpB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,cAAc;KACxB,CAAC,CAAC;IAEH,sCAAsC;IACtC,+DAA+D;IAC/D,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC9B,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC5B,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAE1B,qCAAqC;IACrC,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,qDAAqD;IACrD,OAAO,CAAC,KAAK,CAAC,QAAQ,WAAW,KAAK,cAAc,UAAU,CAAC,CAAC;IAChE,OAAO,CAAC,KAAK,CAAC,qEAAqE,CAAC,CAAC;AACvF,CAAC;AAED,uBAAuB;AACvB,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC;AAEvC,mDAAmD;AACnD,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,UAAU,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AACrE,IAAI,YAAY,EAAE,CAAC;IACjB,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QAC5B,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * ConfigService - Unified configuration management
3
+ *
4
+ * Loads configuration from:
5
+ * 1. ~/.foundation/config.yaml (global)
6
+ * 2. .foundation/config.yaml (project-level overrides)
7
+ * 3. Environment variables
8
+ *
9
+ * Environment variable interpolation: ${VAR_NAME} in YAML values
10
+ */
11
+ import type { FoundationConfig, DefaultsConfig, ProvidersConfig, RoleConfig, ArgusConfig, WorktreeConfig, LearningConfig } from '../types/index.js';
12
+ export declare class ConfigService {
13
+ private static instance;
14
+ private config;
15
+ private globalConfigPath;
16
+ private initialized;
17
+ private constructor();
18
+ static getInstance(): ConfigService;
19
+ /**
20
+ * Initialize configuration by loading from files
21
+ */
22
+ init(): Promise<void>;
23
+ /**
24
+ * Get the full configuration
25
+ */
26
+ getConfig(): FoundationConfig;
27
+ /**
28
+ * Get defaults configuration
29
+ */
30
+ getDefaults(): DefaultsConfig;
31
+ /**
32
+ * Get providers configuration
33
+ */
34
+ getProviders(): ProvidersConfig;
35
+ /**
36
+ * Get a specific role configuration
37
+ */
38
+ getRole(role: string): RoleConfig | undefined;
39
+ /**
40
+ * Get all roles
41
+ */
42
+ getRoles(): Record<string, RoleConfig>;
43
+ /**
44
+ * Get Argus configuration
45
+ */
46
+ getArgusConfig(): ArgusConfig;
47
+ /**
48
+ * Get worktree configuration
49
+ */
50
+ getWorktreeConfig(): WorktreeConfig;
51
+ /**
52
+ * Get learning configuration
53
+ */
54
+ getLearningConfig(): LearningConfig;
55
+ /**
56
+ * Get the global config directory path
57
+ */
58
+ getGlobalConfigDir(): string;
59
+ /**
60
+ * Get the project config directory path
61
+ */
62
+ getProjectConfigDir(): string;
63
+ /**
64
+ * Ensure global config directory exists
65
+ */
66
+ ensureGlobalConfigDir(): void;
67
+ /**
68
+ * Ensure project config directory exists
69
+ */
70
+ ensureProjectConfigDir(): void;
71
+ /**
72
+ * Save current config to global config file
73
+ */
74
+ saveGlobalConfig(): void;
75
+ /**
76
+ * Create default config file if it doesn't exist
77
+ */
78
+ createDefaultConfig(): void;
79
+ /**
80
+ * Load and parse a YAML file
81
+ */
82
+ private loadYamlFile;
83
+ /**
84
+ * Deep merge two configs, with source overriding target
85
+ */
86
+ private mergeConfig;
87
+ /**
88
+ * Recursively interpolate ${VAR_NAME} patterns with environment variables
89
+ */
90
+ private interpolateEnvVars;
91
+ }
92
+ //# sourceMappingURL=config.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.service.d.ts","sourceRoot":"","sources":["../../src/services/config.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,UAAU,EACV,WAAW,EACX,cAAc,EACd,cAAc,EACf,MAAM,mBAAmB,CAAC;AAgE3B,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAgB;IACvC,OAAO,CAAC,MAAM,CAAoC;IAClD,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,WAAW,CAAS;IAE5B,OAAO;IAIP,MAAM,CAAC,WAAW,IAAI,aAAa;IAOnC;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAyB3B;;OAEG;IACH,SAAS,IAAI,gBAAgB;IAI7B;;OAEG;IACH,WAAW,IAAI,cAAc;IAI7B;;OAEG;IACH,YAAY,IAAI,eAAe;IAI/B;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAI7C;;OAEG;IACH,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC;IAItC;;OAEG;IACH,cAAc,IAAI,WAAW;IAI7B;;OAEG;IACH,iBAAiB,IAAI,cAAc;IAInC;;OAEG;IACH,iBAAiB,IAAI,cAAc;IAInC;;OAEG;IACH,kBAAkB,IAAI,MAAM;IAI5B;;OAEG;IACH,mBAAmB,IAAI,MAAM;IAI7B;;OAEG;IACH,qBAAqB,IAAI,IAAI;IAO7B;;OAEG;IACH,sBAAsB,IAAI,IAAI;IAO9B;;OAEG;IACH,gBAAgB,IAAI,IAAI;IAMxB;;OAEG;IACH,mBAAmB,IAAI,IAAI;IAQ3B;;OAEG;IACH,OAAO,CAAC,YAAY;IAUpB;;OAEG;IACH,OAAO,CAAC,WAAW;IAgDnB;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAqB3B"}
@@ -0,0 +1,284 @@
1
+ /**
2
+ * ConfigService - Unified configuration management
3
+ *
4
+ * Loads configuration from:
5
+ * 1. ~/.foundation/config.yaml (global)
6
+ * 2. .foundation/config.yaml (project-level overrides)
7
+ * 3. Environment variables
8
+ *
9
+ * Environment variable interpolation: ${VAR_NAME} in YAML values
10
+ */
11
+ import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'fs';
12
+ import { join } from 'path';
13
+ import { homedir } from 'os';
14
+ import { parse as parseYaml, stringify as stringifyYaml } from 'yaml';
15
+ // Default configuration
16
+ const DEFAULT_CONFIG = {
17
+ version: '1.0',
18
+ defaults: {
19
+ temperature: 0.7,
20
+ max_tokens: 4096,
21
+ timeout_ms: 60000,
22
+ },
23
+ providers: {},
24
+ roles: {
25
+ orchestrator: {
26
+ provider: 'anthropic',
27
+ model: 'claude-sonnet-4-20250514',
28
+ },
29
+ coder: {
30
+ provider: 'deepseek',
31
+ model: 'deepseek-reasoner',
32
+ needs_worktree: true,
33
+ },
34
+ critic: {
35
+ provider: 'deepseek',
36
+ model: 'deepseek-reasoner',
37
+ temperature: 0.3,
38
+ },
39
+ reviewer: {
40
+ provider: 'openai',
41
+ model: 'gpt-4o',
42
+ },
43
+ designer: {
44
+ provider: 'google',
45
+ model: 'gemini-2.5-pro',
46
+ },
47
+ researcher: {
48
+ provider: 'google',
49
+ model: 'gemini-2.5-pro',
50
+ },
51
+ },
52
+ argus: {
53
+ provider: 'ollama',
54
+ model: 'qwen2.5-coder:7b',
55
+ snapshot_max_age_hours: 24,
56
+ auto_refresh: true,
57
+ },
58
+ worktrees: {
59
+ base_dir: '.foundation/worktrees',
60
+ max_count: 10,
61
+ auto_cleanup: true,
62
+ stale_after_hours: 24,
63
+ },
64
+ learning: {
65
+ auto_apply: false,
66
+ categories: [
67
+ 'code_style',
68
+ 'architecture',
69
+ 'testing',
70
+ 'performance',
71
+ 'security',
72
+ 'documentation',
73
+ ],
74
+ },
75
+ };
76
+ export class ConfigService {
77
+ static instance;
78
+ config = DEFAULT_CONFIG;
79
+ globalConfigPath;
80
+ initialized = false;
81
+ constructor() {
82
+ this.globalConfigPath = join(homedir(), '.foundation', 'config.yaml');
83
+ }
84
+ static getInstance() {
85
+ if (!ConfigService.instance) {
86
+ ConfigService.instance = new ConfigService();
87
+ }
88
+ return ConfigService.instance;
89
+ }
90
+ /**
91
+ * Initialize configuration by loading from files
92
+ */
93
+ async init() {
94
+ if (this.initialized)
95
+ return;
96
+ // Start with defaults
97
+ this.config = { ...DEFAULT_CONFIG };
98
+ // Load global config if exists
99
+ if (existsSync(this.globalConfigPath)) {
100
+ const globalConfig = this.loadYamlFile(this.globalConfigPath);
101
+ this.config = this.mergeConfig(this.config, globalConfig);
102
+ }
103
+ // Load project config if exists (cwd)
104
+ const projectConfigPath = join(process.cwd(), '.foundation', 'config.yaml');
105
+ if (existsSync(projectConfigPath)) {
106
+ const projectConfig = this.loadYamlFile(projectConfigPath);
107
+ this.config = this.mergeConfig(this.config, projectConfig);
108
+ }
109
+ // Interpolate environment variables
110
+ this.config = this.interpolateEnvVars(this.config);
111
+ this.initialized = true;
112
+ }
113
+ /**
114
+ * Get the full configuration
115
+ */
116
+ getConfig() {
117
+ return this.config;
118
+ }
119
+ /**
120
+ * Get defaults configuration
121
+ */
122
+ getDefaults() {
123
+ return this.config.defaults;
124
+ }
125
+ /**
126
+ * Get providers configuration
127
+ */
128
+ getProviders() {
129
+ return this.config.providers;
130
+ }
131
+ /**
132
+ * Get a specific role configuration
133
+ */
134
+ getRole(role) {
135
+ return this.config.roles[role];
136
+ }
137
+ /**
138
+ * Get all roles
139
+ */
140
+ getRoles() {
141
+ return this.config.roles;
142
+ }
143
+ /**
144
+ * Get Argus configuration
145
+ */
146
+ getArgusConfig() {
147
+ return this.config.argus;
148
+ }
149
+ /**
150
+ * Get worktree configuration
151
+ */
152
+ getWorktreeConfig() {
153
+ return this.config.worktrees;
154
+ }
155
+ /**
156
+ * Get learning configuration
157
+ */
158
+ getLearningConfig() {
159
+ return this.config.learning;
160
+ }
161
+ /**
162
+ * Get the global config directory path
163
+ */
164
+ getGlobalConfigDir() {
165
+ return join(homedir(), '.foundation');
166
+ }
167
+ /**
168
+ * Get the project config directory path
169
+ */
170
+ getProjectConfigDir() {
171
+ return join(process.cwd(), '.foundation');
172
+ }
173
+ /**
174
+ * Ensure global config directory exists
175
+ */
176
+ ensureGlobalConfigDir() {
177
+ const dir = this.getGlobalConfigDir();
178
+ if (!existsSync(dir)) {
179
+ mkdirSync(dir, { recursive: true });
180
+ }
181
+ }
182
+ /**
183
+ * Ensure project config directory exists
184
+ */
185
+ ensureProjectConfigDir() {
186
+ const dir = this.getProjectConfigDir();
187
+ if (!existsSync(dir)) {
188
+ mkdirSync(dir, { recursive: true });
189
+ }
190
+ }
191
+ /**
192
+ * Save current config to global config file
193
+ */
194
+ saveGlobalConfig() {
195
+ this.ensureGlobalConfigDir();
196
+ const yaml = stringifyYaml(this.config);
197
+ writeFileSync(this.globalConfigPath, yaml, 'utf-8');
198
+ }
199
+ /**
200
+ * Create default config file if it doesn't exist
201
+ */
202
+ createDefaultConfig() {
203
+ if (!existsSync(this.globalConfigPath)) {
204
+ this.ensureGlobalConfigDir();
205
+ const yaml = stringifyYaml(DEFAULT_CONFIG);
206
+ writeFileSync(this.globalConfigPath, yaml, 'utf-8');
207
+ }
208
+ }
209
+ /**
210
+ * Load and parse a YAML file
211
+ */
212
+ loadYamlFile(path) {
213
+ try {
214
+ const content = readFileSync(path, 'utf-8');
215
+ return parseYaml(content);
216
+ }
217
+ catch (error) {
218
+ console.error(`Warning: Failed to load config from ${path}:`, error);
219
+ return {};
220
+ }
221
+ }
222
+ /**
223
+ * Deep merge two configs, with source overriding target
224
+ */
225
+ mergeConfig(target, source) {
226
+ const result = { ...target };
227
+ if (source.version)
228
+ result.version = source.version;
229
+ if (source.defaults) {
230
+ result.defaults = { ...target.defaults, ...source.defaults };
231
+ }
232
+ if (source.providers) {
233
+ result.providers = { ...target.providers };
234
+ for (const [key, value] of Object.entries(source.providers)) {
235
+ if (value) {
236
+ result.providers[key] = {
237
+ ...result.providers[key],
238
+ ...value,
239
+ };
240
+ }
241
+ }
242
+ }
243
+ if (source.roles) {
244
+ result.roles = { ...target.roles };
245
+ for (const [key, value] of Object.entries(source.roles)) {
246
+ if (value) {
247
+ result.roles[key] = { ...result.roles[key], ...value };
248
+ }
249
+ }
250
+ }
251
+ if (source.argus) {
252
+ result.argus = { ...target.argus, ...source.argus };
253
+ }
254
+ if (source.worktrees) {
255
+ result.worktrees = { ...target.worktrees, ...source.worktrees };
256
+ }
257
+ if (source.learning) {
258
+ result.learning = { ...target.learning, ...source.learning };
259
+ }
260
+ return result;
261
+ }
262
+ /**
263
+ * Recursively interpolate ${VAR_NAME} patterns with environment variables
264
+ */
265
+ interpolateEnvVars(obj) {
266
+ if (typeof obj === 'string') {
267
+ return obj.replace(/\$\{([^}]+)\}/g, (_, varName) => {
268
+ return process.env[varName] || '';
269
+ });
270
+ }
271
+ if (Array.isArray(obj)) {
272
+ return obj.map((item) => this.interpolateEnvVars(item));
273
+ }
274
+ if (obj && typeof obj === 'object') {
275
+ const result = {};
276
+ for (const [key, value] of Object.entries(obj)) {
277
+ result[key] = this.interpolateEnvVars(value);
278
+ }
279
+ return result;
280
+ }
281
+ return obj;
282
+ }
283
+ }
284
+ //# sourceMappingURL=config.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.service.js","sourceRoot":"","sources":["../../src/services/config.service.ts"],"names":[],"mappings":"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"}