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.
- package/LICENSE +81 -0
- package/README.md +608 -0
- package/bin/cli.js +448 -0
- package/dist/agents/coding.d.ts +15 -0
- package/dist/agents/coding.d.ts.map +1 -0
- package/dist/agents/coding.js +189 -0
- package/dist/agents/coding.js.map +1 -0
- package/dist/agents/initializer.d.ts +15 -0
- package/dist/agents/initializer.d.ts.map +1 -0
- package/dist/agents/initializer.js +87 -0
- package/dist/agents/initializer.js.map +1 -0
- package/dist/agents/prompts/arbitrator.md +143 -0
- package/dist/agents/prompts/coding.md +247 -0
- package/dist/agents/prompts/initializer.md +98 -0
- package/dist/config/agent-config.d.ts +103 -0
- package/dist/config/agent-config.d.ts.map +1 -0
- package/dist/config/agent-config.js +138 -0
- package/dist/config/agent-config.js.map +1 -0
- package/dist/config/auth-config.d.ts +152 -0
- package/dist/config/auth-config.d.ts.map +1 -0
- package/dist/config/auth-config.js +139 -0
- package/dist/config/auth-config.js.map +1 -0
- package/dist/config/mcp-config.d.ts +109 -0
- package/dist/config/mcp-config.d.ts.map +1 -0
- package/dist/config/mcp-config.js +234 -0
- package/dist/config/mcp-config.js.map +1 -0
- package/dist/config/provider-config.d.ts +139 -0
- package/dist/config/provider-config.d.ts.map +1 -0
- package/dist/config/provider-config.js +344 -0
- package/dist/config/provider-config.js.map +1 -0
- package/dist/config/subagents-config.d.ts +85 -0
- package/dist/config/subagents-config.d.ts.map +1 -0
- package/dist/config/subagents-config.js +430 -0
- package/dist/config/subagents-config.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +385 -0
- package/dist/index.js.map +1 -0
- package/dist/orchestrator/arbitrator.d.ts +93 -0
- package/dist/orchestrator/arbitrator.d.ts.map +1 -0
- package/dist/orchestrator/arbitrator.js +330 -0
- package/dist/orchestrator/arbitrator.js.map +1 -0
- package/dist/orchestrator/index.d.ts +113 -0
- package/dist/orchestrator/index.d.ts.map +1 -0
- package/dist/orchestrator/index.js +217 -0
- package/dist/orchestrator/index.js.map +1 -0
- package/dist/orchestrator/review-coordinator.d.ts +143 -0
- package/dist/orchestrator/review-coordinator.d.ts.map +1 -0
- package/dist/orchestrator/review-coordinator.js +401 -0
- package/dist/orchestrator/review-coordinator.js.map +1 -0
- package/dist/orchestrator/task-classifier.d.ts +87 -0
- package/dist/orchestrator/task-classifier.d.ts.map +1 -0
- package/dist/orchestrator/task-classifier.js +250 -0
- package/dist/orchestrator/task-classifier.js.map +1 -0
- package/dist/providers/anthropic-provider.d.ts +64 -0
- package/dist/providers/anthropic-provider.d.ts.map +1 -0
- package/dist/providers/anthropic-provider.js +264 -0
- package/dist/providers/anthropic-provider.js.map +1 -0
- package/dist/providers/base-provider.d.ts +219 -0
- package/dist/providers/base-provider.d.ts.map +1 -0
- package/dist/providers/base-provider.js +143 -0
- package/dist/providers/base-provider.js.map +1 -0
- package/dist/providers/cursor-provider.d.ts +82 -0
- package/dist/providers/cursor-provider.d.ts.map +1 -0
- package/dist/providers/cursor-provider.js +321 -0
- package/dist/providers/cursor-provider.js.map +1 -0
- package/dist/providers/google-provider.d.ts +75 -0
- package/dist/providers/google-provider.d.ts.map +1 -0
- package/dist/providers/google-provider.js +274 -0
- package/dist/providers/google-provider.js.map +1 -0
- package/dist/providers/index.d.ts +92 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +233 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/openai-provider.d.ts +83 -0
- package/dist/providers/openai-provider.d.ts.map +1 -0
- package/dist/providers/openai-provider.js +295 -0
- package/dist/providers/openai-provider.js.map +1 -0
- package/dist/templates/feature_list.template.json +66 -0
- package/dist/templates/progress.template.txt +51 -0
- package/dist/utils/auth-manager.d.ts +121 -0
- package/dist/utils/auth-manager.d.ts.map +1 -0
- package/dist/utils/auth-manager.js +560 -0
- package/dist/utils/auth-manager.js.map +1 -0
- package/dist/utils/budget-enforcer.d.ts +181 -0
- package/dist/utils/budget-enforcer.d.ts.map +1 -0
- package/dist/utils/budget-enforcer.js +386 -0
- package/dist/utils/budget-enforcer.js.map +1 -0
- package/dist/utils/chatgpt-detector.d.ts +51 -0
- package/dist/utils/chatgpt-detector.d.ts.map +1 -0
- package/dist/utils/chatgpt-detector.js +274 -0
- package/dist/utils/chatgpt-detector.js.map +1 -0
- package/dist/utils/claude-code-detector.d.ts +39 -0
- package/dist/utils/claude-code-detector.d.ts.map +1 -0
- package/dist/utils/claude-code-detector.js +153 -0
- package/dist/utils/claude-code-detector.js.map +1 -0
- package/dist/utils/code-quality.d.ts +58 -0
- package/dist/utils/code-quality.d.ts.map +1 -0
- package/dist/utils/code-quality.js +258 -0
- package/dist/utils/code-quality.js.map +1 -0
- package/dist/utils/context-primer.d.ts +50 -0
- package/dist/utils/context-primer.d.ts.map +1 -0
- package/dist/utils/context-primer.js +429 -0
- package/dist/utils/context-primer.js.map +1 -0
- package/dist/utils/dependency-management.d.ts +40 -0
- package/dist/utils/dependency-management.d.ts.map +1 -0
- package/dist/utils/dependency-management.js +123 -0
- package/dist/utils/dependency-management.js.map +1 -0
- package/dist/utils/environment-validation.d.ts +33 -0
- package/dist/utils/environment-validation.d.ts.map +1 -0
- package/dist/utils/environment-validation.js +136 -0
- package/dist/utils/environment-validation.js.map +1 -0
- package/dist/utils/error-recovery.d.ts +60 -0
- package/dist/utils/error-recovery.d.ts.map +1 -0
- package/dist/utils/error-recovery.js +183 -0
- package/dist/utils/error-recovery.js.map +1 -0
- package/dist/utils/feature-list.d.ts +102 -0
- package/dist/utils/feature-list.d.ts.map +1 -0
- package/dist/utils/feature-list.js +191 -0
- package/dist/utils/feature-list.js.map +1 -0
- package/dist/utils/gemini-detector.d.ts +65 -0
- package/dist/utils/gemini-detector.d.ts.map +1 -0
- package/dist/utils/gemini-detector.js +340 -0
- package/dist/utils/gemini-detector.js.map +1 -0
- package/dist/utils/git-utils.d.ts +48 -0
- package/dist/utils/git-utils.d.ts.map +1 -0
- package/dist/utils/git-utils.js +110 -0
- package/dist/utils/git-utils.js.map +1 -0
- package/dist/utils/health-check.d.ts +32 -0
- package/dist/utils/health-check.d.ts.map +1 -0
- package/dist/utils/health-check.js +152 -0
- package/dist/utils/health-check.js.map +1 -0
- package/dist/utils/hooks-manager.d.ts +154 -0
- package/dist/utils/hooks-manager.d.ts.map +1 -0
- package/dist/utils/hooks-manager.js +359 -0
- package/dist/utils/hooks-manager.js.map +1 -0
- package/dist/utils/multi-auth-manager.d.ts +144 -0
- package/dist/utils/multi-auth-manager.d.ts.map +1 -0
- package/dist/utils/multi-auth-manager.js +588 -0
- package/dist/utils/multi-auth-manager.js.map +1 -0
- package/dist/utils/progress.d.ts +49 -0
- package/dist/utils/progress.d.ts.map +1 -0
- package/dist/utils/progress.js +209 -0
- package/dist/utils/progress.js.map +1 -0
- package/dist/utils/project-detection.d.ts +40 -0
- package/dist/utils/project-detection.d.ts.map +1 -0
- package/dist/utils/project-detection.js +230 -0
- package/dist/utils/project-detection.js.map +1 -0
- package/dist/utils/session-manager.d.ts +119 -0
- package/dist/utils/session-manager.d.ts.map +1 -0
- package/dist/utils/session-manager.js +389 -0
- package/dist/utils/session-manager.js.map +1 -0
- package/dist/utils/skills-manager.d.ts +113 -0
- package/dist/utils/skills-manager.d.ts.map +1 -0
- package/dist/utils/skills-manager.js +332 -0
- package/dist/utils/skills-manager.js.map +1 -0
- package/dist/utils/structured-output.d.ts +117 -0
- package/dist/utils/structured-output.d.ts.map +1 -0
- package/dist/utils/structured-output.js +191 -0
- package/dist/utils/structured-output.js.map +1 -0
- package/dist/utils/subagent-manager.d.ts +143 -0
- package/dist/utils/subagent-manager.d.ts.map +1 -0
- package/dist/utils/subagent-manager.js +326 -0
- package/dist/utils/subagent-manager.js.map +1 -0
- package/dist/utils/supabase-setup.d.ts +50 -0
- package/dist/utils/supabase-setup.d.ts.map +1 -0
- package/dist/utils/supabase-setup.js +151 -0
- package/dist/utils/supabase-setup.js.map +1 -0
- package/dist/utils/token-refresh.d.ts +21 -0
- package/dist/utils/token-refresh.d.ts.map +1 -0
- package/dist/utils/token-refresh.js +77 -0
- package/dist/utils/token-refresh.js.map +1 -0
- package/dist/utils/tos-warning.d.ts +115 -0
- package/dist/utils/tos-warning.d.ts.map +1 -0
- package/dist/utils/tos-warning.js +304 -0
- package/dist/utils/tos-warning.js.map +1 -0
- package/dist/utils/usage-monitor.d.ts +156 -0
- package/dist/utils/usage-monitor.d.ts.map +1 -0
- package/dist/utils/usage-monitor.js +296 -0
- package/dist/utils/usage-monitor.js.map +1 -0
- package/package.json +105 -0
- package/scripts/init.ps1 +73 -0
- package/scripts/init.sh +86 -0
- package/scripts/test-auth.sh +90 -0
- package/templates/feature_list.template.json +66 -0
- package/templates/progress.template.txt +51 -0
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenAI Provider (Codex SDK)
|
|
3
|
+
* Wrapper around OpenAI's Codex SDK for multi-provider orchestration.
|
|
4
|
+
* Supports thread-based conversations and code execution.
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) 2025 Dobeu Tech Solutions LLC
|
|
7
|
+
* Licensed under CC BY-NC 4.0
|
|
8
|
+
*/
|
|
9
|
+
import { BaseProvider, } from './base-provider.js';
|
|
10
|
+
import { PROVIDER_CONFIGS, } from '../config/provider-config.js';
|
|
11
|
+
/* eslint-enable @typescript-eslint/no-explicit-any */
|
|
12
|
+
/**
|
|
13
|
+
* OpenAI Provider Implementation
|
|
14
|
+
* Wraps the Codex SDK for use in multi-provider orchestration
|
|
15
|
+
*/
|
|
16
|
+
export class OpenAIProvider extends BaseProvider {
|
|
17
|
+
name = 'openai';
|
|
18
|
+
displayName = 'Codex (OpenAI)';
|
|
19
|
+
packageName = '@openai/codex-sdk';
|
|
20
|
+
config = PROVIDER_CONFIGS.openai;
|
|
21
|
+
apiKey = null;
|
|
22
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
23
|
+
codexClient = null;
|
|
24
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
25
|
+
currentThread = null;
|
|
26
|
+
currentThreadId = null;
|
|
27
|
+
constructor(apiKey) {
|
|
28
|
+
super();
|
|
29
|
+
this.apiKey = apiKey ?? process.env.OPENAI_API_KEY ?? null;
|
|
30
|
+
this.status.authenticated = !!this.apiKey;
|
|
31
|
+
this.status.available = false; // Will be set after SDK initialization
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Initialize the Codex SDK client
|
|
35
|
+
*/
|
|
36
|
+
async initializeClient() {
|
|
37
|
+
if (this.codexClient)
|
|
38
|
+
return true;
|
|
39
|
+
try {
|
|
40
|
+
// Dynamic import of Codex SDK (optional dependency)
|
|
41
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
42
|
+
let CodexModule;
|
|
43
|
+
try {
|
|
44
|
+
CodexModule = await import('@openai/codex-sdk');
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
console.error('Codex SDK not found. Install with: npm install @openai/codex-sdk');
|
|
48
|
+
this.status.available = false;
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
const Codex = CodexModule.default || CodexModule.Codex;
|
|
52
|
+
if (!Codex) {
|
|
53
|
+
console.error('Codex SDK not found. Install with: npm install @openai/codex-sdk');
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
this.codexClient = new Codex({
|
|
57
|
+
apiKey: this.apiKey,
|
|
58
|
+
});
|
|
59
|
+
this.status.available = true;
|
|
60
|
+
return true;
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
64
|
+
console.warn(`Could not initialize Codex SDK: ${message}`);
|
|
65
|
+
console.warn('Install with: npm install @openai/codex-sdk');
|
|
66
|
+
this.status.available = false;
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Execute a query using the Codex SDK
|
|
72
|
+
*/
|
|
73
|
+
async *query(prompt, options) {
|
|
74
|
+
const startTime = Date.now();
|
|
75
|
+
try {
|
|
76
|
+
// Initialize client if needed
|
|
77
|
+
if (!await this.initializeClient()) {
|
|
78
|
+
yield {
|
|
79
|
+
type: 'error',
|
|
80
|
+
content: [{
|
|
81
|
+
type: 'text',
|
|
82
|
+
text: 'Codex SDK not available. Install with: npm install @openai/codex-sdk',
|
|
83
|
+
}],
|
|
84
|
+
metadata: {
|
|
85
|
+
provider: this.name,
|
|
86
|
+
latency_ms: Date.now() - startTime,
|
|
87
|
+
},
|
|
88
|
+
};
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
// Start or resume thread
|
|
92
|
+
if (!this.currentThread) {
|
|
93
|
+
this.currentThread = this.codexClient.startThread();
|
|
94
|
+
this.currentThreadId = this.currentThread.id;
|
|
95
|
+
}
|
|
96
|
+
// Execute query
|
|
97
|
+
const result = await this.currentThread.run(prompt);
|
|
98
|
+
// Normalize and yield result
|
|
99
|
+
const message = this.normalizeMessage(result);
|
|
100
|
+
message.metadata = {
|
|
101
|
+
...message.metadata,
|
|
102
|
+
provider: this.name,
|
|
103
|
+
thread_id: this.currentThreadId ?? undefined,
|
|
104
|
+
latency_ms: Date.now() - startTime,
|
|
105
|
+
};
|
|
106
|
+
yield message;
|
|
107
|
+
// Yield final result message
|
|
108
|
+
yield {
|
|
109
|
+
type: 'result',
|
|
110
|
+
subtype: 'success',
|
|
111
|
+
content: [],
|
|
112
|
+
metadata: {
|
|
113
|
+
provider: this.name,
|
|
114
|
+
thread_id: this.currentThreadId ?? undefined,
|
|
115
|
+
latency_ms: Date.now() - startTime,
|
|
116
|
+
},
|
|
117
|
+
};
|
|
118
|
+
this.updateStatus(true);
|
|
119
|
+
}
|
|
120
|
+
catch (error) {
|
|
121
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
122
|
+
this.updateStatus(false, errorMessage);
|
|
123
|
+
yield {
|
|
124
|
+
type: 'error',
|
|
125
|
+
content: [{
|
|
126
|
+
type: 'text',
|
|
127
|
+
text: `OpenAI provider error: ${errorMessage}`,
|
|
128
|
+
}],
|
|
129
|
+
metadata: {
|
|
130
|
+
provider: this.name,
|
|
131
|
+
latency_ms: Date.now() - startTime,
|
|
132
|
+
},
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Validate OpenAI API credentials
|
|
138
|
+
*/
|
|
139
|
+
async validateCredentials() {
|
|
140
|
+
const key = this.apiKey ?? process.env.OPENAI_API_KEY;
|
|
141
|
+
if (!key) {
|
|
142
|
+
this.status.authenticated = false;
|
|
143
|
+
return false;
|
|
144
|
+
}
|
|
145
|
+
try {
|
|
146
|
+
// Make a minimal API request to validate the key
|
|
147
|
+
const response = await fetch('https://api.openai.com/v1/models', {
|
|
148
|
+
method: 'GET',
|
|
149
|
+
headers: {
|
|
150
|
+
'Authorization': `Bearer ${key}`,
|
|
151
|
+
},
|
|
152
|
+
});
|
|
153
|
+
const isValid = response.status === 200;
|
|
154
|
+
this.status.authenticated = isValid;
|
|
155
|
+
return isValid;
|
|
156
|
+
}
|
|
157
|
+
catch (error) {
|
|
158
|
+
console.warn('Could not validate OpenAI key online');
|
|
159
|
+
return true;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* List available OpenAI models
|
|
164
|
+
*/
|
|
165
|
+
async listModels() {
|
|
166
|
+
return this.config.models.map(model => ({
|
|
167
|
+
id: model.id,
|
|
168
|
+
name: model.name,
|
|
169
|
+
contextWindow: model.contextWindow,
|
|
170
|
+
costPerMToken: model.costPerMToken,
|
|
171
|
+
capabilities: model.capabilities,
|
|
172
|
+
}));
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Get OpenAI provider capabilities
|
|
176
|
+
*/
|
|
177
|
+
getCapabilities() {
|
|
178
|
+
return { ...this.config.capabilities };
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Get list of supported standard tools
|
|
182
|
+
*/
|
|
183
|
+
getSupportedTools() {
|
|
184
|
+
return Object.entries(this.config.toolMapping)
|
|
185
|
+
.filter(([_, mapped]) => mapped !== null)
|
|
186
|
+
.map(([standard]) => standard);
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Map standard tool name to OpenAI tool name
|
|
190
|
+
*/
|
|
191
|
+
mapToolName(standardTool) {
|
|
192
|
+
const mapped = this.config.toolMapping[standardTool];
|
|
193
|
+
return mapped ?? null;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Resume a previous thread
|
|
197
|
+
*/
|
|
198
|
+
async resumeThread(threadId) {
|
|
199
|
+
if (!await this.initializeClient()) {
|
|
200
|
+
return false;
|
|
201
|
+
}
|
|
202
|
+
try {
|
|
203
|
+
this.currentThread = this.codexClient.resumeThread(threadId);
|
|
204
|
+
this.currentThreadId = threadId;
|
|
205
|
+
return true;
|
|
206
|
+
}
|
|
207
|
+
catch (error) {
|
|
208
|
+
console.error('Failed to resume thread:', error);
|
|
209
|
+
return false;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Get current thread ID
|
|
214
|
+
*/
|
|
215
|
+
getCurrentThreadId() {
|
|
216
|
+
return this.currentThreadId;
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Clear current thread (start fresh on next query)
|
|
220
|
+
*/
|
|
221
|
+
clearThread() {
|
|
222
|
+
this.currentThread = null;
|
|
223
|
+
this.currentThreadId = null;
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Normalize Codex result to standard format
|
|
227
|
+
*/
|
|
228
|
+
normalizeMessage(rawMessage) {
|
|
229
|
+
const result = rawMessage;
|
|
230
|
+
const content = [];
|
|
231
|
+
// Add main content
|
|
232
|
+
if (result.content) {
|
|
233
|
+
content.push({
|
|
234
|
+
type: 'text',
|
|
235
|
+
text: result.content,
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
// Add tool calls if present
|
|
239
|
+
if (result.tool_calls) {
|
|
240
|
+
for (const toolCall of result.tool_calls) {
|
|
241
|
+
content.push({
|
|
242
|
+
type: 'tool_use',
|
|
243
|
+
id: `tool_${Date.now()}_${Math.random().toString(36).slice(2)}`,
|
|
244
|
+
name: toolCall.name,
|
|
245
|
+
input: toolCall.arguments,
|
|
246
|
+
});
|
|
247
|
+
if (toolCall.result) {
|
|
248
|
+
content.push({
|
|
249
|
+
type: 'tool_result',
|
|
250
|
+
tool_use_id: `tool_${Date.now()}`,
|
|
251
|
+
content: toolCall.result,
|
|
252
|
+
});
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
return {
|
|
257
|
+
type: 'assistant',
|
|
258
|
+
content,
|
|
259
|
+
metadata: {
|
|
260
|
+
provider: this.name,
|
|
261
|
+
usage: result.usage ? {
|
|
262
|
+
input_tokens: result.usage.prompt_tokens,
|
|
263
|
+
output_tokens: result.usage.completion_tokens,
|
|
264
|
+
} : undefined,
|
|
265
|
+
},
|
|
266
|
+
};
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Set API key at runtime
|
|
270
|
+
*/
|
|
271
|
+
setApiKey(key) {
|
|
272
|
+
this.apiKey = key;
|
|
273
|
+
this.status.authenticated = true;
|
|
274
|
+
// Reset client to use new key
|
|
275
|
+
this.codexClient = null;
|
|
276
|
+
this.currentThread = null;
|
|
277
|
+
this.currentThreadId = null;
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Get the current API key (masked for display)
|
|
281
|
+
*/
|
|
282
|
+
getApiKeyPreview() {
|
|
283
|
+
if (!this.apiKey)
|
|
284
|
+
return null;
|
|
285
|
+
return `${this.apiKey.slice(0, 8)}...${this.apiKey.slice(-4)}`;
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Create a new OpenAI provider instance
|
|
290
|
+
*/
|
|
291
|
+
export function createOpenAIProvider(apiKey) {
|
|
292
|
+
return new OpenAIProvider(apiKey);
|
|
293
|
+
}
|
|
294
|
+
export default OpenAIProvider;
|
|
295
|
+
//# sourceMappingURL=openai-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai-provider.js","sourceRoot":"","sources":["../../src/providers/openai-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
{
|
|
2
|
+
"project": {
|
|
3
|
+
"name": "",
|
|
4
|
+
"description": "",
|
|
5
|
+
"created_at": "",
|
|
6
|
+
"stack": "fullstack-web"
|
|
7
|
+
},
|
|
8
|
+
"features": [
|
|
9
|
+
{
|
|
10
|
+
"id": "feat-001",
|
|
11
|
+
"category": "functional",
|
|
12
|
+
"priority": 1,
|
|
13
|
+
"description": "Example: New chat button creates a fresh conversation",
|
|
14
|
+
"steps": [
|
|
15
|
+
"Navigate to main interface",
|
|
16
|
+
"Click the 'New Chat' button",
|
|
17
|
+
"Verify a new conversation is created",
|
|
18
|
+
"Check that chat area shows welcome state",
|
|
19
|
+
"Verify conversation appears in sidebar"
|
|
20
|
+
],
|
|
21
|
+
"passes": false,
|
|
22
|
+
"last_tested": null,
|
|
23
|
+
"tested_by": null,
|
|
24
|
+
"notes": ""
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"id": "feat-002",
|
|
28
|
+
"category": "ui",
|
|
29
|
+
"priority": 2,
|
|
30
|
+
"description": "Example: Page is responsive on mobile viewport",
|
|
31
|
+
"steps": [
|
|
32
|
+
"Set viewport to 375x667 (iPhone SE)",
|
|
33
|
+
"Navigate to main page",
|
|
34
|
+
"Verify all elements are visible",
|
|
35
|
+
"Verify no horizontal scroll",
|
|
36
|
+
"Verify touch targets are adequate size"
|
|
37
|
+
],
|
|
38
|
+
"passes": false,
|
|
39
|
+
"last_tested": null,
|
|
40
|
+
"tested_by": null,
|
|
41
|
+
"notes": ""
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"id": "feat-003",
|
|
45
|
+
"category": "integration",
|
|
46
|
+
"priority": 3,
|
|
47
|
+
"description": "Example: API returns valid response for GET request",
|
|
48
|
+
"steps": [
|
|
49
|
+
"Start the development server",
|
|
50
|
+
"Send GET request to /api/health",
|
|
51
|
+
"Verify response status is 200",
|
|
52
|
+
"Verify response contains expected fields",
|
|
53
|
+
"Verify response time is under 500ms"
|
|
54
|
+
],
|
|
55
|
+
"passes": false,
|
|
56
|
+
"last_tested": null,
|
|
57
|
+
"tested_by": null,
|
|
58
|
+
"notes": ""
|
|
59
|
+
}
|
|
60
|
+
],
|
|
61
|
+
"metadata": {
|
|
62
|
+
"total_features": 3,
|
|
63
|
+
"passing_features": 0,
|
|
64
|
+
"last_updated": ""
|
|
65
|
+
}
|
|
66
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
================================================================================
|
|
2
|
+
PROJECT: [Project Name]
|
|
3
|
+
CREATED: [Date]
|
|
4
|
+
LAST SESSION: [Date/Time]
|
|
5
|
+
================================================================================
|
|
6
|
+
|
|
7
|
+
## PROJECT OVERVIEW
|
|
8
|
+
[Brief description of the project and its goals. This section should provide
|
|
9
|
+
enough context for any agent to understand what is being built and why.]
|
|
10
|
+
|
|
11
|
+
## CURRENT STATE
|
|
12
|
+
- Total Features: X
|
|
13
|
+
- Completed: Y
|
|
14
|
+
- Remaining: Z
|
|
15
|
+
- Last Feature Worked On: [feature-id]
|
|
16
|
+
|
|
17
|
+
## SESSION LOG
|
|
18
|
+
### [Date/Time]
|
|
19
|
+
- Agent: [initializer/coding]
|
|
20
|
+
- Actions taken:
|
|
21
|
+
* [Action 1]
|
|
22
|
+
* [Action 2]
|
|
23
|
+
* [Action 3]
|
|
24
|
+
- Features completed: [feat-001, feat-002]
|
|
25
|
+
- Issues encountered: [list any problems]
|
|
26
|
+
- Next steps:
|
|
27
|
+
* [Recommended action 1]
|
|
28
|
+
* [Recommended action 2]
|
|
29
|
+
|
|
30
|
+
## KNOWN ISSUES
|
|
31
|
+
- [Issue 1: Description and any workarounds]
|
|
32
|
+
- [Issue 2: Description and any workarounds]
|
|
33
|
+
|
|
34
|
+
## NOTES FOR NEXT SESSION
|
|
35
|
+
- [Important context that the next agent should know]
|
|
36
|
+
- [Pending decisions that need to be made]
|
|
37
|
+
- [Dependencies or blockers to be aware of]
|
|
38
|
+
|
|
39
|
+
## ENVIRONMENT SETUP
|
|
40
|
+
- Dev server command: npm run dev
|
|
41
|
+
- Test command: npm test
|
|
42
|
+
- Build command: npm run build
|
|
43
|
+
- Default URL: http://localhost:3000
|
|
44
|
+
|
|
45
|
+
## DEPENDENCIES
|
|
46
|
+
- [List key dependencies and versions]
|
|
47
|
+
- [Note any special configuration required]
|
|
48
|
+
|
|
49
|
+
================================================================================
|
|
50
|
+
END OF PROGRESS FILE
|
|
51
|
+
================================================================================
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Authentication Manager
|
|
3
|
+
* Handles user authentication, credential storage, and subscription validation.
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) 2025 Dobeu Tech Solutions LLC
|
|
6
|
+
* Licensed under CC BY-NC 4.0
|
|
7
|
+
*/
|
|
8
|
+
import { type UserCredentials, type AuthMethod, type SubscriptionTier } from '../config/auth-config.js';
|
|
9
|
+
/**
|
|
10
|
+
* AuthManager - Singleton for managing authentication state
|
|
11
|
+
*/
|
|
12
|
+
export declare class AuthManager {
|
|
13
|
+
private static instance;
|
|
14
|
+
private session;
|
|
15
|
+
private constructor();
|
|
16
|
+
/**
|
|
17
|
+
* Get the singleton instance
|
|
18
|
+
*/
|
|
19
|
+
static getInstance(): AuthManager;
|
|
20
|
+
/**
|
|
21
|
+
* Ensure the config directory exists
|
|
22
|
+
*/
|
|
23
|
+
private ensureConfigDir;
|
|
24
|
+
/**
|
|
25
|
+
* Load credentials from file
|
|
26
|
+
*/
|
|
27
|
+
loadCredentials(): UserCredentials | null;
|
|
28
|
+
/**
|
|
29
|
+
* Save credentials to file
|
|
30
|
+
*/
|
|
31
|
+
saveCredentials(credentials: UserCredentials): void;
|
|
32
|
+
/**
|
|
33
|
+
* Clear stored credentials (logout)
|
|
34
|
+
*/
|
|
35
|
+
clearCredentials(): void;
|
|
36
|
+
/**
|
|
37
|
+
* Check if user is authenticated (from file or environment)
|
|
38
|
+
*/
|
|
39
|
+
isAuthenticated(): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Get the API key synchronously (without token refresh)
|
|
42
|
+
* Used for display and environment setting where refresh isn't needed
|
|
43
|
+
*/
|
|
44
|
+
getApiKeySync(): string | null;
|
|
45
|
+
/**
|
|
46
|
+
* Get the API key to use (from stored credentials or environment)
|
|
47
|
+
* Automatically attempts to refresh expired tokens
|
|
48
|
+
*/
|
|
49
|
+
getApiKey(): Promise<string | null>;
|
|
50
|
+
/**
|
|
51
|
+
* Get current auth method
|
|
52
|
+
*/
|
|
53
|
+
getAuthMethod(): AuthMethod | null;
|
|
54
|
+
/**
|
|
55
|
+
* Get user info for display
|
|
56
|
+
*/
|
|
57
|
+
getUserInfo(): {
|
|
58
|
+
authenticated: boolean;
|
|
59
|
+
method: AuthMethod | null;
|
|
60
|
+
email: string | null;
|
|
61
|
+
tier: SubscriptionTier | null;
|
|
62
|
+
keyPreview: string | null;
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* Attempt to auto-detect Claude Code subscription credentials
|
|
66
|
+
* Checks paths defined in authConfig.claudeCodePaths
|
|
67
|
+
*/
|
|
68
|
+
autoDetectClaudeCode(): Promise<boolean>;
|
|
69
|
+
/**
|
|
70
|
+
* Interactive login flow
|
|
71
|
+
* Supports:
|
|
72
|
+
* 1. Auto-detection of Claude Code subscription credentials
|
|
73
|
+
* 2. OAuth login via claude.ai (for Pro/Max/Team/Enterprise subscribers)
|
|
74
|
+
* 3. Manual Anthropic API key entry
|
|
75
|
+
*/
|
|
76
|
+
login(options?: {
|
|
77
|
+
method?: AuthMethod;
|
|
78
|
+
key?: string;
|
|
79
|
+
email?: string;
|
|
80
|
+
}): Promise<boolean>;
|
|
81
|
+
/**
|
|
82
|
+
* Validate an API key by making a test request
|
|
83
|
+
*/
|
|
84
|
+
validateKey(key: string): Promise<boolean>;
|
|
85
|
+
/**
|
|
86
|
+
* Logout - clear credentials
|
|
87
|
+
*/
|
|
88
|
+
logout(): void;
|
|
89
|
+
/**
|
|
90
|
+
* Display current auth status (whoami)
|
|
91
|
+
*/
|
|
92
|
+
whoami(): void;
|
|
93
|
+
/**
|
|
94
|
+
* Set environment variable for child processes
|
|
95
|
+
*/
|
|
96
|
+
setEnvForChildProcess(): void;
|
|
97
|
+
/**
|
|
98
|
+
* Check authentication and return status for CLI
|
|
99
|
+
*/
|
|
100
|
+
checkAuth(): {
|
|
101
|
+
authenticated: boolean;
|
|
102
|
+
message: string;
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
export declare const authManager: AuthManager;
|
|
106
|
+
export declare function isAuthenticated(): boolean;
|
|
107
|
+
export declare function getApiKey(): string | null;
|
|
108
|
+
export declare function login(options?: {
|
|
109
|
+
method?: AuthMethod;
|
|
110
|
+
key?: string;
|
|
111
|
+
email?: string;
|
|
112
|
+
}): Promise<boolean>;
|
|
113
|
+
export declare function logout(): void;
|
|
114
|
+
export declare function whoami(): void;
|
|
115
|
+
export declare function checkAuth(): {
|
|
116
|
+
authenticated: boolean;
|
|
117
|
+
message: string;
|
|
118
|
+
};
|
|
119
|
+
export declare function setEnvForChildProcess(): void;
|
|
120
|
+
export default authManager;
|
|
121
|
+
//# sourceMappingURL=auth-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-manager.d.ts","sourceRoot":"","sources":["../../src/utils/auth-manager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,EAGL,KAAK,eAAe,EAEpB,KAAK,UAAU,EACf,KAAK,gBAAgB,EAEtB,MAAM,0BAA0B,CAAC;AAIlC;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAc;IACrC,OAAO,CAAC,OAAO,CAAc;IAE7B,OAAO;IAQP;;OAEG;WACW,WAAW,IAAI,WAAW;IAOxC;;OAEG;IACH,OAAO,CAAC,eAAe;IAMvB;;OAEG;IACI,eAAe,IAAI,eAAe,GAAG,IAAI;IAYhD;;OAEG;IACI,eAAe,CAAC,WAAW,EAAE,eAAe,GAAG,IAAI;IAyB1D;;OAEG;IACI,gBAAgB,IAAI,IAAI;IAkB/B;;OAEG;IACI,eAAe,IAAI,OAAO;IAqBjC;;;OAGG;IACI,aAAa,IAAI,MAAM,GAAG,IAAI;IAmBrC;;;OAGG;IACU,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAyChD;;OAEG;IACI,aAAa,IAAI,UAAU,GAAG,IAAI;IAYzC;;OAEG;IACI,WAAW,IAAI;QACpB,aAAa,EAAE,OAAO,CAAC;QACvB,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;QAC1B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,IAAI,EAAE,gBAAgB,GAAG,IAAI,CAAC;QAC9B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;KAC3B;IAaD;;;OAGG;IACU,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC;IA8CrD;;;;;;OAMG;IACU,KAAK,CAAC,OAAO,CAAC,EAAE;QAC3B,MAAM,CAAC,EAAE,UAAU,CAAC;QACpB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,OAAO,CAAC;IA+KpB;;OAEG;IACU,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA0BvD;;OAEG;IACI,MAAM,IAAI,IAAI;IAYrB;;OAEG;IACI,MAAM,IAAI,IAAI;IA4CrB;;OAEG;IACI,qBAAqB,IAAI,IAAI;IAkBpC;;OAEG;IACI,SAAS,IAAI;QAClB,aAAa,EAAE,OAAO,CAAC;QACvB,OAAO,EAAE,MAAM,CAAC;KACjB;CAaF;AAGD,eAAO,MAAM,WAAW,aAA4B,CAAC;AAGrD,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED,wBAAgB,SAAS,IAAI,MAAM,GAAG,IAAI,CAEzC;AAED,wBAAgB,KAAK,CAAC,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,UAAU,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAEvG;AAED,wBAAgB,MAAM,IAAI,IAAI,CAE7B;AAED,wBAAgB,MAAM,IAAI,IAAI,CAE7B;AAED,wBAAgB,SAAS,IAAI;IAAE,aAAa,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAEvE;AAED,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAED,eAAe,WAAW,CAAC"}
|