monty-autonomous-fullstack-dev-multillm 1.0.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 (186) hide show
  1. package/LICENSE +81 -0
  2. package/README.md +608 -0
  3. package/bin/cli.js +448 -0
  4. package/dist/agents/coding.d.ts +15 -0
  5. package/dist/agents/coding.d.ts.map +1 -0
  6. package/dist/agents/coding.js +189 -0
  7. package/dist/agents/coding.js.map +1 -0
  8. package/dist/agents/initializer.d.ts +15 -0
  9. package/dist/agents/initializer.d.ts.map +1 -0
  10. package/dist/agents/initializer.js +87 -0
  11. package/dist/agents/initializer.js.map +1 -0
  12. package/dist/agents/prompts/arbitrator.md +143 -0
  13. package/dist/agents/prompts/coding.md +247 -0
  14. package/dist/agents/prompts/initializer.md +98 -0
  15. package/dist/config/agent-config.d.ts +103 -0
  16. package/dist/config/agent-config.d.ts.map +1 -0
  17. package/dist/config/agent-config.js +138 -0
  18. package/dist/config/agent-config.js.map +1 -0
  19. package/dist/config/auth-config.d.ts +152 -0
  20. package/dist/config/auth-config.d.ts.map +1 -0
  21. package/dist/config/auth-config.js +139 -0
  22. package/dist/config/auth-config.js.map +1 -0
  23. package/dist/config/mcp-config.d.ts +109 -0
  24. package/dist/config/mcp-config.d.ts.map +1 -0
  25. package/dist/config/mcp-config.js +234 -0
  26. package/dist/config/mcp-config.js.map +1 -0
  27. package/dist/config/provider-config.d.ts +139 -0
  28. package/dist/config/provider-config.d.ts.map +1 -0
  29. package/dist/config/provider-config.js +344 -0
  30. package/dist/config/provider-config.js.map +1 -0
  31. package/dist/config/subagents-config.d.ts +85 -0
  32. package/dist/config/subagents-config.d.ts.map +1 -0
  33. package/dist/config/subagents-config.js +430 -0
  34. package/dist/config/subagents-config.js.map +1 -0
  35. package/dist/index.d.ts +14 -0
  36. package/dist/index.d.ts.map +1 -0
  37. package/dist/index.js +385 -0
  38. package/dist/index.js.map +1 -0
  39. package/dist/orchestrator/arbitrator.d.ts +93 -0
  40. package/dist/orchestrator/arbitrator.d.ts.map +1 -0
  41. package/dist/orchestrator/arbitrator.js +330 -0
  42. package/dist/orchestrator/arbitrator.js.map +1 -0
  43. package/dist/orchestrator/index.d.ts +113 -0
  44. package/dist/orchestrator/index.d.ts.map +1 -0
  45. package/dist/orchestrator/index.js +217 -0
  46. package/dist/orchestrator/index.js.map +1 -0
  47. package/dist/orchestrator/review-coordinator.d.ts +143 -0
  48. package/dist/orchestrator/review-coordinator.d.ts.map +1 -0
  49. package/dist/orchestrator/review-coordinator.js +401 -0
  50. package/dist/orchestrator/review-coordinator.js.map +1 -0
  51. package/dist/orchestrator/task-classifier.d.ts +87 -0
  52. package/dist/orchestrator/task-classifier.d.ts.map +1 -0
  53. package/dist/orchestrator/task-classifier.js +250 -0
  54. package/dist/orchestrator/task-classifier.js.map +1 -0
  55. package/dist/providers/anthropic-provider.d.ts +64 -0
  56. package/dist/providers/anthropic-provider.d.ts.map +1 -0
  57. package/dist/providers/anthropic-provider.js +264 -0
  58. package/dist/providers/anthropic-provider.js.map +1 -0
  59. package/dist/providers/base-provider.d.ts +219 -0
  60. package/dist/providers/base-provider.d.ts.map +1 -0
  61. package/dist/providers/base-provider.js +143 -0
  62. package/dist/providers/base-provider.js.map +1 -0
  63. package/dist/providers/cursor-provider.d.ts +82 -0
  64. package/dist/providers/cursor-provider.d.ts.map +1 -0
  65. package/dist/providers/cursor-provider.js +321 -0
  66. package/dist/providers/cursor-provider.js.map +1 -0
  67. package/dist/providers/google-provider.d.ts +75 -0
  68. package/dist/providers/google-provider.d.ts.map +1 -0
  69. package/dist/providers/google-provider.js +274 -0
  70. package/dist/providers/google-provider.js.map +1 -0
  71. package/dist/providers/index.d.ts +92 -0
  72. package/dist/providers/index.d.ts.map +1 -0
  73. package/dist/providers/index.js +233 -0
  74. package/dist/providers/index.js.map +1 -0
  75. package/dist/providers/openai-provider.d.ts +83 -0
  76. package/dist/providers/openai-provider.d.ts.map +1 -0
  77. package/dist/providers/openai-provider.js +295 -0
  78. package/dist/providers/openai-provider.js.map +1 -0
  79. package/dist/templates/feature_list.template.json +66 -0
  80. package/dist/templates/progress.template.txt +51 -0
  81. package/dist/utils/auth-manager.d.ts +121 -0
  82. package/dist/utils/auth-manager.d.ts.map +1 -0
  83. package/dist/utils/auth-manager.js +560 -0
  84. package/dist/utils/auth-manager.js.map +1 -0
  85. package/dist/utils/budget-enforcer.d.ts +181 -0
  86. package/dist/utils/budget-enforcer.d.ts.map +1 -0
  87. package/dist/utils/budget-enforcer.js +386 -0
  88. package/dist/utils/budget-enforcer.js.map +1 -0
  89. package/dist/utils/chatgpt-detector.d.ts +51 -0
  90. package/dist/utils/chatgpt-detector.d.ts.map +1 -0
  91. package/dist/utils/chatgpt-detector.js +274 -0
  92. package/dist/utils/chatgpt-detector.js.map +1 -0
  93. package/dist/utils/claude-code-detector.d.ts +39 -0
  94. package/dist/utils/claude-code-detector.d.ts.map +1 -0
  95. package/dist/utils/claude-code-detector.js +153 -0
  96. package/dist/utils/claude-code-detector.js.map +1 -0
  97. package/dist/utils/code-quality.d.ts +58 -0
  98. package/dist/utils/code-quality.d.ts.map +1 -0
  99. package/dist/utils/code-quality.js +258 -0
  100. package/dist/utils/code-quality.js.map +1 -0
  101. package/dist/utils/context-primer.d.ts +50 -0
  102. package/dist/utils/context-primer.d.ts.map +1 -0
  103. package/dist/utils/context-primer.js +429 -0
  104. package/dist/utils/context-primer.js.map +1 -0
  105. package/dist/utils/dependency-management.d.ts +40 -0
  106. package/dist/utils/dependency-management.d.ts.map +1 -0
  107. package/dist/utils/dependency-management.js +123 -0
  108. package/dist/utils/dependency-management.js.map +1 -0
  109. package/dist/utils/environment-validation.d.ts +33 -0
  110. package/dist/utils/environment-validation.d.ts.map +1 -0
  111. package/dist/utils/environment-validation.js +136 -0
  112. package/dist/utils/environment-validation.js.map +1 -0
  113. package/dist/utils/error-recovery.d.ts +60 -0
  114. package/dist/utils/error-recovery.d.ts.map +1 -0
  115. package/dist/utils/error-recovery.js +183 -0
  116. package/dist/utils/error-recovery.js.map +1 -0
  117. package/dist/utils/feature-list.d.ts +102 -0
  118. package/dist/utils/feature-list.d.ts.map +1 -0
  119. package/dist/utils/feature-list.js +191 -0
  120. package/dist/utils/feature-list.js.map +1 -0
  121. package/dist/utils/gemini-detector.d.ts +65 -0
  122. package/dist/utils/gemini-detector.d.ts.map +1 -0
  123. package/dist/utils/gemini-detector.js +340 -0
  124. package/dist/utils/gemini-detector.js.map +1 -0
  125. package/dist/utils/git-utils.d.ts +48 -0
  126. package/dist/utils/git-utils.d.ts.map +1 -0
  127. package/dist/utils/git-utils.js +110 -0
  128. package/dist/utils/git-utils.js.map +1 -0
  129. package/dist/utils/health-check.d.ts +32 -0
  130. package/dist/utils/health-check.d.ts.map +1 -0
  131. package/dist/utils/health-check.js +152 -0
  132. package/dist/utils/health-check.js.map +1 -0
  133. package/dist/utils/hooks-manager.d.ts +154 -0
  134. package/dist/utils/hooks-manager.d.ts.map +1 -0
  135. package/dist/utils/hooks-manager.js +359 -0
  136. package/dist/utils/hooks-manager.js.map +1 -0
  137. package/dist/utils/multi-auth-manager.d.ts +144 -0
  138. package/dist/utils/multi-auth-manager.d.ts.map +1 -0
  139. package/dist/utils/multi-auth-manager.js +588 -0
  140. package/dist/utils/multi-auth-manager.js.map +1 -0
  141. package/dist/utils/progress.d.ts +49 -0
  142. package/dist/utils/progress.d.ts.map +1 -0
  143. package/dist/utils/progress.js +209 -0
  144. package/dist/utils/progress.js.map +1 -0
  145. package/dist/utils/project-detection.d.ts +40 -0
  146. package/dist/utils/project-detection.d.ts.map +1 -0
  147. package/dist/utils/project-detection.js +230 -0
  148. package/dist/utils/project-detection.js.map +1 -0
  149. package/dist/utils/session-manager.d.ts +119 -0
  150. package/dist/utils/session-manager.d.ts.map +1 -0
  151. package/dist/utils/session-manager.js +389 -0
  152. package/dist/utils/session-manager.js.map +1 -0
  153. package/dist/utils/skills-manager.d.ts +113 -0
  154. package/dist/utils/skills-manager.d.ts.map +1 -0
  155. package/dist/utils/skills-manager.js +332 -0
  156. package/dist/utils/skills-manager.js.map +1 -0
  157. package/dist/utils/structured-output.d.ts +117 -0
  158. package/dist/utils/structured-output.d.ts.map +1 -0
  159. package/dist/utils/structured-output.js +191 -0
  160. package/dist/utils/structured-output.js.map +1 -0
  161. package/dist/utils/subagent-manager.d.ts +143 -0
  162. package/dist/utils/subagent-manager.d.ts.map +1 -0
  163. package/dist/utils/subagent-manager.js +326 -0
  164. package/dist/utils/subagent-manager.js.map +1 -0
  165. package/dist/utils/supabase-setup.d.ts +50 -0
  166. package/dist/utils/supabase-setup.d.ts.map +1 -0
  167. package/dist/utils/supabase-setup.js +151 -0
  168. package/dist/utils/supabase-setup.js.map +1 -0
  169. package/dist/utils/token-refresh.d.ts +21 -0
  170. package/dist/utils/token-refresh.d.ts.map +1 -0
  171. package/dist/utils/token-refresh.js +77 -0
  172. package/dist/utils/token-refresh.js.map +1 -0
  173. package/dist/utils/tos-warning.d.ts +115 -0
  174. package/dist/utils/tos-warning.d.ts.map +1 -0
  175. package/dist/utils/tos-warning.js +304 -0
  176. package/dist/utils/tos-warning.js.map +1 -0
  177. package/dist/utils/usage-monitor.d.ts +156 -0
  178. package/dist/utils/usage-monitor.d.ts.map +1 -0
  179. package/dist/utils/usage-monitor.js +296 -0
  180. package/dist/utils/usage-monitor.js.map +1 -0
  181. package/package.json +105 -0
  182. package/scripts/init.ps1 +73 -0
  183. package/scripts/init.sh +86 -0
  184. package/scripts/test-auth.sh +90 -0
  185. package/templates/feature_list.template.json +66 -0
  186. package/templates/progress.template.txt +51 -0
@@ -0,0 +1,234 @@
1
+ /**
2
+ * MCP (Model Context Protocol) Configuration (Feature A4)
3
+ * Settings for browser automation, GitHub, database, and other integrations
4
+ *
5
+ * Copyright (c) 2025 Dobeu Tech Solutions LLC
6
+ * Licensed under CC BY-NC 4.0
7
+ */
8
+ /**
9
+ * Playwright MCP Server - Browser automation
10
+ */
11
+ export const playwrightServer = {
12
+ name: 'playwright',
13
+ description: 'Browser automation for E2E testing with Playwright',
14
+ enabled: true,
15
+ type: 'stdio',
16
+ command: 'npx',
17
+ args: ['@anthropic-ai/mcp-server-playwright'],
18
+ };
19
+ /**
20
+ * GitHub MCP Server - Repository management
21
+ */
22
+ export const githubServer = {
23
+ name: 'github',
24
+ description: 'GitHub integration for PRs, issues, and CI/CD',
25
+ enabled: false, // Requires GITHUB_TOKEN
26
+ type: 'stdio',
27
+ command: 'npx',
28
+ args: ['@anthropic-ai/mcp-server-github'],
29
+ env: {
30
+ GITHUB_TOKEN: '${GITHUB_TOKEN}',
31
+ },
32
+ };
33
+ /**
34
+ * Filesystem MCP Server - Advanced file operations
35
+ */
36
+ export const filesystemServer = {
37
+ name: 'filesystem',
38
+ description: 'Advanced filesystem operations beyond basic Read/Write',
39
+ enabled: false,
40
+ type: 'stdio',
41
+ command: 'npx',
42
+ args: ['@anthropic-ai/mcp-server-filesystem'],
43
+ };
44
+ /**
45
+ * PostgreSQL MCP Server - Database operations
46
+ */
47
+ export const postgresServer = {
48
+ name: 'postgres',
49
+ description: 'PostgreSQL database operations and queries',
50
+ enabled: false, // Requires DATABASE_URL
51
+ type: 'stdio',
52
+ command: 'npx',
53
+ args: ['@anthropic-ai/mcp-server-postgres'],
54
+ env: {
55
+ DATABASE_URL: '${DATABASE_URL}',
56
+ },
57
+ };
58
+ /**
59
+ * Slack MCP Server - Notifications
60
+ */
61
+ export const slackServer = {
62
+ name: 'slack',
63
+ description: 'Slack notifications and messaging',
64
+ enabled: false, // Requires SLACK_TOKEN
65
+ type: 'sse',
66
+ url: 'https://mcp.slack.com/sse',
67
+ headers: {
68
+ Authorization: 'Bearer ${SLACK_TOKEN}',
69
+ },
70
+ };
71
+ /**
72
+ * Default MCP configuration
73
+ */
74
+ export const mcpConfig = {
75
+ browser: {
76
+ defaultTimeout: 30000,
77
+ headless: true,
78
+ viewport: {
79
+ width: 1280,
80
+ height: 720,
81
+ },
82
+ screenshotDir: '.agent/screenshots',
83
+ },
84
+ servers: {
85
+ playwright: playwrightServer,
86
+ github: githubServer,
87
+ filesystem: filesystemServer,
88
+ postgres: postgresServer,
89
+ slack: slackServer,
90
+ },
91
+ };
92
+ /**
93
+ * Get enabled MCP servers for SDK
94
+ */
95
+ export function getEnabledServersForSDK() {
96
+ const enabled = {};
97
+ for (const [name, server] of Object.entries(mcpConfig.servers)) {
98
+ if (!server.enabled)
99
+ continue;
100
+ if (server.type === 'stdio') {
101
+ const stdioServer = server;
102
+ // Replace environment variable placeholders
103
+ const env = {};
104
+ if (stdioServer.env) {
105
+ for (const [key, value] of Object.entries(stdioServer.env)) {
106
+ const match = value.match(/\$\{(\w+)\}/);
107
+ if (match?.[1]) {
108
+ const envVar = process.env[match[1]];
109
+ if (envVar) {
110
+ env[key] = envVar;
111
+ }
112
+ }
113
+ else {
114
+ env[key] = value;
115
+ }
116
+ }
117
+ }
118
+ enabled[name] = {
119
+ command: stdioServer.command,
120
+ args: stdioServer.args,
121
+ ...(Object.keys(env).length > 0 && { env }),
122
+ };
123
+ }
124
+ else if (server.type === 'sse') {
125
+ const sseServer = server;
126
+ // Replace header placeholders
127
+ const headers = {};
128
+ if (sseServer.headers) {
129
+ for (const [key, value] of Object.entries(sseServer.headers)) {
130
+ const match = value.match(/\$\{(\w+)\}/);
131
+ if (match?.[1]) {
132
+ const envVar = process.env[match[1]];
133
+ if (envVar) {
134
+ headers[key] = value.replace(`\${${match[1]}}`, envVar);
135
+ }
136
+ }
137
+ else {
138
+ headers[key] = value;
139
+ }
140
+ }
141
+ }
142
+ enabled[name] = {
143
+ type: 'sse',
144
+ url: sseServer.url,
145
+ ...(Object.keys(headers).length > 0 && { headers }),
146
+ };
147
+ }
148
+ }
149
+ return enabled;
150
+ }
151
+ /**
152
+ * Enable/disable MCP server
153
+ */
154
+ export function setServerEnabled(serverName, enabled) {
155
+ const server = mcpConfig.servers[serverName];
156
+ if (!server)
157
+ return false;
158
+ server.enabled = enabled;
159
+ return true;
160
+ }
161
+ /**
162
+ * Check if required environment variables are set for a server
163
+ */
164
+ export function checkServerRequirements(serverName) {
165
+ const server = mcpConfig.servers[serverName];
166
+ if (!server) {
167
+ return { ready: false, missing: ['Server not found'] };
168
+ }
169
+ const missing = [];
170
+ if (server.type === 'stdio') {
171
+ const stdioServer = server;
172
+ if (stdioServer.env) {
173
+ for (const value of Object.values(stdioServer.env)) {
174
+ const match = value.match(/\$\{(\w+)\}/);
175
+ if (match?.[1] && !process.env[match[1]]) {
176
+ missing.push(match[1]);
177
+ }
178
+ }
179
+ }
180
+ }
181
+ else if (server.type === 'sse') {
182
+ const sseServer = server;
183
+ if (sseServer.headers) {
184
+ for (const value of Object.values(sseServer.headers)) {
185
+ const match = value.match(/\$\{(\w+)\}/);
186
+ if (match?.[1] && !process.env[match[1]]) {
187
+ missing.push(match[1]);
188
+ }
189
+ }
190
+ }
191
+ }
192
+ return { ready: missing.length === 0, missing };
193
+ }
194
+ /**
195
+ * Get browser automation instructions for the agent prompt
196
+ */
197
+ export function getBrowserInstructions() {
198
+ return `
199
+ BROWSER AUTOMATION (via Playwright MCP):
200
+ - Use the mcp__playwright__* tools for browser interaction
201
+ - Navigate: mcp__playwright__navigate
202
+ - Click: mcp__playwright__click
203
+ - Type: mcp__playwright__fill
204
+ - Screenshot: mcp__playwright__screenshot
205
+ - Wait: mcp__playwright__wait_for_selector
206
+
207
+ TESTING WORKFLOW:
208
+ 1. Start dev server using init script
209
+ 2. Navigate to the application URL (http://localhost:3000 or 5173)
210
+ 3. Perform test steps as defined in feature_list.json
211
+ 4. Take screenshot for verification
212
+ 5. Only mark feature as passing if ALL steps succeed
213
+
214
+ SETTINGS:
215
+ - Default timeout: ${mcpConfig.browser.defaultTimeout}ms
216
+ - Viewport: ${mcpConfig.browser.viewport.width}x${mcpConfig.browser.viewport.height}
217
+ - Screenshots saved to: ${mcpConfig.browser.screenshotDir}
218
+ `.trim();
219
+ }
220
+ /**
221
+ * Get MCP servers summary for logging
222
+ */
223
+ export function getMCPSummary() {
224
+ const lines = ['MCP Servers:'];
225
+ for (const [name, server] of Object.entries(mcpConfig.servers)) {
226
+ const status = server.enabled ? '✓' : '✗';
227
+ const requirements = checkServerRequirements(name);
228
+ const ready = requirements.ready ? '' : ` (missing: ${requirements.missing.join(', ')})`;
229
+ lines.push(` ${status} ${name}: ${server.description}${ready}`);
230
+ }
231
+ return lines.join('\n');
232
+ }
233
+ export default mcpConfig;
234
+ //# sourceMappingURL=mcp-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-config.js","sourceRoot":"","sources":["../../src/config/mcp-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,139 @@
1
+ /**
2
+ * Provider Configuration
3
+ * Configuration for all supported AI providers (Anthropic, OpenAI, Google, Cursor).
4
+ * Defines capabilities, tool mappings, models, and rate limits per provider.
5
+ *
6
+ * Copyright (c) 2025 Dobeu Tech Solutions LLC
7
+ * Licensed under CC BY-NC 4.0
8
+ */
9
+ /**
10
+ * Supported provider names
11
+ */
12
+ export type ProviderName = 'anthropic' | 'openai' | 'google' | 'cursor';
13
+ /**
14
+ * Standard tool names used across providers
15
+ */
16
+ export type StandardTool = 'Read' | 'Write' | 'Edit' | 'Bash' | 'Glob' | 'Grep' | 'Browser' | 'Task' | 'WebFetch' | 'WebSearch';
17
+ /**
18
+ * Task types for orchestrator routing
19
+ */
20
+ export type TaskType = 'complex_reasoning' | 'architectural_decision' | 'ci_cd_automation' | 'test_execution' | 'research' | 'documentation' | 'ide_task' | 'rapid_prototyping' | 'code_review' | 'general';
21
+ /**
22
+ * Provider capabilities interface
23
+ */
24
+ export interface ProviderCapabilities {
25
+ streaming: boolean;
26
+ threads: boolean;
27
+ browserAutomation: boolean;
28
+ codeExecution: boolean;
29
+ multiAgent: boolean;
30
+ toolCalling: boolean;
31
+ vision: boolean;
32
+ }
33
+ /**
34
+ * Model pricing information
35
+ */
36
+ export interface ModelPricing {
37
+ input: number;
38
+ output: number;
39
+ }
40
+ /**
41
+ * Model configuration
42
+ */
43
+ export interface ModelConfig {
44
+ id: string;
45
+ name: string;
46
+ contextWindow: number;
47
+ costPerMToken: ModelPricing;
48
+ capabilities: string[];
49
+ }
50
+ /**
51
+ * Rate limit configuration
52
+ */
53
+ export interface RateLimitConfig {
54
+ requestsPerMinute: number;
55
+ tokensPerMinute: number;
56
+ tokensPerDay?: number;
57
+ }
58
+ /**
59
+ * Full provider configuration
60
+ */
61
+ export interface ProviderConfig {
62
+ name: ProviderName;
63
+ displayName: string;
64
+ packageName: string | null;
65
+ enabled: boolean;
66
+ capabilities: ProviderCapabilities;
67
+ toolMapping: Partial<Record<StandardTool, string | null>>;
68
+ models: ModelConfig[];
69
+ defaultModel: string;
70
+ rateLimits: RateLimitConfig;
71
+ apiEndpoint?: string;
72
+ authHeader?: string;
73
+ envVarName: string;
74
+ }
75
+ /**
76
+ * Provider configurations for all supported providers
77
+ */
78
+ export declare const PROVIDER_CONFIGS: Record<ProviderName, ProviderConfig>;
79
+ /**
80
+ * Task routing rules - maps task types to preferred providers (in order)
81
+ */
82
+ export declare const TASK_ROUTING_RULES: Record<TaskType, ProviderName[]>;
83
+ /**
84
+ * Get provider configuration by name
85
+ */
86
+ export declare function getProviderConfig(name: ProviderName): ProviderConfig;
87
+ /**
88
+ * Get all enabled providers
89
+ */
90
+ export declare function getEnabledProviders(): ProviderConfig[];
91
+ /**
92
+ * Get default provider configuration
93
+ */
94
+ export declare function getDefaultProvider(): ProviderConfig;
95
+ /**
96
+ * Check if a provider supports a specific tool
97
+ */
98
+ export declare function providerSupportsTool(provider: ProviderName, tool: StandardTool): boolean;
99
+ /**
100
+ * Get routing preference for a task type
101
+ */
102
+ export declare function getRoutingPreference(taskType: TaskType): ProviderName[];
103
+ /**
104
+ * Get model configuration by ID
105
+ */
106
+ export declare function getModelConfig(provider: ProviderName, modelId: string): ModelConfig | null;
107
+ /**
108
+ * Get cheapest model for a provider
109
+ */
110
+ export declare function getCheapestModel(provider: ProviderName): ModelConfig;
111
+ /**
112
+ * Calculate estimated cost for a query
113
+ */
114
+ export declare function calculateQueryCost(provider: ProviderName, modelId: string, inputTokens: number, outputTokens: number): number;
115
+ /**
116
+ * Feature flag for multi-provider support
117
+ */
118
+ export interface MultiProviderFeatureFlags {
119
+ /** Enable multi-provider orchestration */
120
+ orchestrationEnabled: boolean;
121
+ /** Enable multi-agent code review */
122
+ multiAgentReviewEnabled: boolean;
123
+ /** Enable automatic provider fallback */
124
+ fallbackEnabled: boolean;
125
+ /** Enable cost tracking across providers */
126
+ costTrackingEnabled: boolean;
127
+ /** Enable task-based routing */
128
+ taskRoutingEnabled: boolean;
129
+ }
130
+ /**
131
+ * Default feature flags (conservative defaults for gradual rollout)
132
+ */
133
+ export declare const DEFAULT_MULTI_PROVIDER_FLAGS: MultiProviderFeatureFlags;
134
+ /**
135
+ * Validate provider configuration at runtime
136
+ */
137
+ export declare function validateProviderConfig(config: ProviderConfig): string[];
138
+ export default PROVIDER_CONFIGS;
139
+ //# sourceMappingURL=provider-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-config.d.ts","sourceRoot":"","sources":["../../src/config/provider-config.ts"],"names":[],"mappings":"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"}