steroids-cli 0.11.0 → 0.12.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/dist/commands/ai.js +5 -5
- package/dist/commands/ai.js.map +1 -1
- package/dist/commands/config.js +8 -10
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/status.d.ts +6 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +255 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/web-config.d.ts +9 -0
- package/dist/commands/web-config.d.ts.map +1 -0
- package/dist/commands/web-config.js +97 -0
- package/dist/commands/web-config.js.map +1 -0
- package/dist/config/ai-setup.d.ts +1 -2
- package/dist/config/ai-setup.d.ts.map +1 -1
- package/dist/config/ai-setup.js +1 -1
- package/dist/config/ai-setup.js.map +1 -1
- package/dist/config/loader.d.ts +2 -1
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +3 -1
- package/dist/config/loader.js.map +1 -1
- package/dist/config/provider-names.d.ts +9 -0
- package/dist/config/provider-names.d.ts.map +1 -0
- package/dist/config/provider-names.js +11 -0
- package/dist/config/provider-names.js.map +1 -0
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +4 -3
- package/dist/config/schema.js.map +1 -1
- package/dist/huggingface/hub-client.js +1 -1
- package/dist/huggingface/hub-client.js.map +1 -1
- package/dist/providers/api-models.d.ts +7 -19
- package/dist/providers/api-models.d.ts.map +1 -1
- package/dist/providers/api-models.js +6 -162
- package/dist/providers/api-models.js.map +1 -1
- package/dist/providers/index.d.ts +2 -3
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +5 -10
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/interface.d.ts +1 -1
- package/dist/providers/interface.d.ts.map +1 -1
- package/dist/providers/opencode.d.ts +34 -0
- package/dist/providers/opencode.d.ts.map +1 -0
- package/dist/providers/opencode.js +365 -0
- package/dist/providers/opencode.js.map +1 -0
- package/dist/providers/registry.d.ts.map +1 -1
- package/dist/providers/registry.js +2 -8
- package/dist/providers/registry.js.map +1 -1
- package/package.json +1 -1
- package/dist/providers/huggingface.d.ts +0 -40
- package/dist/providers/huggingface.d.ts.map +0 -1
- package/dist/providers/huggingface.js +0 -391
- package/dist/providers/huggingface.js.map +0 -1
- package/dist/providers/minimax.d.ts +0 -50
- package/dist/providers/minimax.d.ts.map +0 -1
- package/dist/providers/minimax.js +0 -248
- package/dist/providers/minimax.js.map +0 -1
- package/dist/providers/ollama-error-utils.d.ts +0 -12
- package/dist/providers/ollama-error-utils.d.ts.map +0 -1
- package/dist/providers/ollama-error-utils.js +0 -60
- package/dist/providers/ollama-error-utils.js.map +0 -1
- package/dist/providers/ollama-utils.d.ts +0 -17
- package/dist/providers/ollama-utils.d.ts.map +0 -1
- package/dist/providers/ollama-utils.js +0 -115
- package/dist/providers/ollama-utils.js.map +0 -1
- package/dist/providers/ollama.d.ts +0 -31
- package/dist/providers/ollama.d.ts.map +0 -1
- package/dist/providers/ollama.js +0 -418
- package/dist/providers/ollama.js.map +0 -1
- package/dist/providers/openai.d.ts +0 -53
- package/dist/providers/openai.d.ts.map +0 -1
- package/dist/providers/openai.js +0 -236
- package/dist/providers/openai.js.map +0 -1
package/dist/providers/openai.js
DELETED
|
@@ -1,236 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* OpenAI Provider
|
|
4
|
-
* Implementation for OpenAI CLI
|
|
5
|
-
*/
|
|
6
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.OpenAIProvider = void 0;
|
|
8
|
-
exports.createOpenAIProvider = createOpenAIProvider;
|
|
9
|
-
const node_child_process_1 = require("node:child_process");
|
|
10
|
-
const node_fs_1 = require("node:fs");
|
|
11
|
-
const node_os_1 = require("node:os");
|
|
12
|
-
const node_path_1 = require("node:path");
|
|
13
|
-
const interface_js_1 = require("./interface.js");
|
|
14
|
-
/**
|
|
15
|
-
* Available OpenAI models
|
|
16
|
-
*/
|
|
17
|
-
const OPENAI_MODELS = [
|
|
18
|
-
{
|
|
19
|
-
id: 'gpt-4',
|
|
20
|
-
name: 'GPT-4',
|
|
21
|
-
recommendedFor: ['orchestrator', 'reviewer'],
|
|
22
|
-
supportsStreaming: true,
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
id: 'gpt-4-turbo',
|
|
26
|
-
name: 'GPT-4 Turbo',
|
|
27
|
-
recommendedFor: ['coder'],
|
|
28
|
-
supportsStreaming: true,
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
id: 'gpt-4o',
|
|
32
|
-
name: 'GPT-4o',
|
|
33
|
-
recommendedFor: ['coder'],
|
|
34
|
-
supportsStreaming: true,
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
id: 'gpt-3.5-turbo',
|
|
38
|
-
name: 'GPT-3.5 Turbo',
|
|
39
|
-
recommendedFor: [],
|
|
40
|
-
supportsStreaming: true,
|
|
41
|
-
},
|
|
42
|
-
];
|
|
43
|
-
/**
|
|
44
|
-
* Default models per role
|
|
45
|
-
*/
|
|
46
|
-
const DEFAULT_MODELS = {
|
|
47
|
-
orchestrator: 'gpt-4',
|
|
48
|
-
coder: 'gpt-4-turbo',
|
|
49
|
-
reviewer: 'gpt-4',
|
|
50
|
-
};
|
|
51
|
-
/**
|
|
52
|
-
* Default timeout in milliseconds (15 minutes)
|
|
53
|
-
*/
|
|
54
|
-
const DEFAULT_TIMEOUT = 900_000;
|
|
55
|
-
/**
|
|
56
|
-
* Default invocation template for OpenAI CLI
|
|
57
|
-
* Uses api chat.completions.create with message from file
|
|
58
|
-
*/
|
|
59
|
-
const DEFAULT_INVOCATION_TEMPLATE = '{cli} api chat.completions.create --model {model} --message "$(cat {prompt_file})"';
|
|
60
|
-
/**
|
|
61
|
-
* OpenAI Provider implementation
|
|
62
|
-
*/
|
|
63
|
-
class OpenAIProvider extends interface_js_1.BaseAIProvider {
|
|
64
|
-
name = 'openai';
|
|
65
|
-
displayName = 'OpenAI (codex)';
|
|
66
|
-
/**
|
|
67
|
-
* Write prompt to a temporary file
|
|
68
|
-
*/
|
|
69
|
-
writePromptFile(prompt) {
|
|
70
|
-
const tempPath = (0, node_path_1.join)((0, node_os_1.tmpdir)(), `steroids-openai-${Date.now()}.txt`);
|
|
71
|
-
(0, node_fs_1.writeFileSync)(tempPath, prompt, { mode: 0o600 });
|
|
72
|
-
return tempPath;
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Clean up temporary prompt file
|
|
76
|
-
*/
|
|
77
|
-
cleanupPromptFile(path) {
|
|
78
|
-
try {
|
|
79
|
-
if ((0, node_fs_1.existsSync)(path)) {
|
|
80
|
-
(0, node_fs_1.unlinkSync)(path);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
catch {
|
|
84
|
-
// Ignore cleanup errors
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Get the default invocation template
|
|
89
|
-
*/
|
|
90
|
-
getDefaultInvocationTemplate() {
|
|
91
|
-
return DEFAULT_INVOCATION_TEMPLATE;
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Invoke OpenAI CLI with a prompt
|
|
95
|
-
*/
|
|
96
|
-
async invoke(prompt, options) {
|
|
97
|
-
const timeout = options.timeout ?? DEFAULT_TIMEOUT;
|
|
98
|
-
const cwd = options.cwd ?? process.cwd();
|
|
99
|
-
const streamOutput = options.streamOutput ?? true;
|
|
100
|
-
const onActivity = options.onActivity;
|
|
101
|
-
// Apply custom invocation template if provided in options
|
|
102
|
-
if (options.invocationTemplate) {
|
|
103
|
-
this.setInvocationTemplate(options.invocationTemplate);
|
|
104
|
-
}
|
|
105
|
-
// Write prompt to temp file
|
|
106
|
-
const promptFile = options.promptFile ?? this.writePromptFile(prompt);
|
|
107
|
-
const createdTempFile = !options.promptFile;
|
|
108
|
-
try {
|
|
109
|
-
return await this.invokeWithFile(promptFile, options.model, timeout, cwd, streamOutput, onActivity);
|
|
110
|
-
}
|
|
111
|
-
finally {
|
|
112
|
-
if (createdTempFile) {
|
|
113
|
-
this.cleanupPromptFile(promptFile);
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Invoke OpenAI CLI with a prompt file using the invocation template
|
|
119
|
-
*/
|
|
120
|
-
invokeWithFile(promptFile, model, timeout, cwd, streamOutput, onActivity) {
|
|
121
|
-
return new Promise((resolve) => {
|
|
122
|
-
const startTime = Date.now();
|
|
123
|
-
let stdout = '';
|
|
124
|
-
let stderr = '';
|
|
125
|
-
let timedOut = false;
|
|
126
|
-
// Build command from invocation template
|
|
127
|
-
const command = this.buildCommand(promptFile, model);
|
|
128
|
-
// Spawn using shell to handle the command template
|
|
129
|
-
const child = (0, node_child_process_1.spawn)(command, {
|
|
130
|
-
shell: true,
|
|
131
|
-
cwd,
|
|
132
|
-
env: this.getSanitizedCliEnv(),
|
|
133
|
-
stdio: ['pipe', 'pipe', 'pipe'],
|
|
134
|
-
});
|
|
135
|
-
const timeoutHandle = setTimeout(() => {
|
|
136
|
-
timedOut = true;
|
|
137
|
-
child.kill('SIGTERM');
|
|
138
|
-
// Force kill after 5 seconds if still running
|
|
139
|
-
setTimeout(() => {
|
|
140
|
-
if (!child.killed) {
|
|
141
|
-
child.kill('SIGKILL');
|
|
142
|
-
}
|
|
143
|
-
}, 5000);
|
|
144
|
-
}, timeout);
|
|
145
|
-
child.stdout?.on('data', (data) => {
|
|
146
|
-
const text = data.toString();
|
|
147
|
-
stdout += text;
|
|
148
|
-
onActivity?.({ type: 'output', stream: 'stdout', msg: text });
|
|
149
|
-
if (streamOutput) {
|
|
150
|
-
process.stdout.write(text);
|
|
151
|
-
}
|
|
152
|
-
});
|
|
153
|
-
child.stderr?.on('data', (data) => {
|
|
154
|
-
const text = data.toString();
|
|
155
|
-
stderr += text;
|
|
156
|
-
onActivity?.({ type: 'output', stream: 'stderr', msg: text });
|
|
157
|
-
if (streamOutput) {
|
|
158
|
-
process.stderr.write(text);
|
|
159
|
-
}
|
|
160
|
-
});
|
|
161
|
-
child.on('close', (code) => {
|
|
162
|
-
clearTimeout(timeoutHandle);
|
|
163
|
-
const duration = Date.now() - startTime;
|
|
164
|
-
resolve({
|
|
165
|
-
success: code === 0 && !timedOut,
|
|
166
|
-
exitCode: code ?? 1,
|
|
167
|
-
stdout,
|
|
168
|
-
stderr,
|
|
169
|
-
duration,
|
|
170
|
-
timedOut,
|
|
171
|
-
});
|
|
172
|
-
});
|
|
173
|
-
child.on('error', (error) => {
|
|
174
|
-
clearTimeout(timeoutHandle);
|
|
175
|
-
const duration = Date.now() - startTime;
|
|
176
|
-
resolve({
|
|
177
|
-
success: false,
|
|
178
|
-
exitCode: 1,
|
|
179
|
-
stdout,
|
|
180
|
-
stderr: error.message,
|
|
181
|
-
duration,
|
|
182
|
-
timedOut: false,
|
|
183
|
-
});
|
|
184
|
-
});
|
|
185
|
-
});
|
|
186
|
-
}
|
|
187
|
-
/**
|
|
188
|
-
* Check if OpenAI CLI is available
|
|
189
|
-
*/
|
|
190
|
-
async isAvailable() {
|
|
191
|
-
return new Promise((resolve) => {
|
|
192
|
-
const cli = this.cliPath ?? 'openai';
|
|
193
|
-
const child = (0, node_child_process_1.spawn)('which', [cli], {
|
|
194
|
-
shell: true,
|
|
195
|
-
stdio: ['pipe', 'pipe', 'pipe'],
|
|
196
|
-
});
|
|
197
|
-
child.on('close', (code) => {
|
|
198
|
-
resolve(code === 0);
|
|
199
|
-
});
|
|
200
|
-
child.on('error', () => {
|
|
201
|
-
resolve(false);
|
|
202
|
-
});
|
|
203
|
-
// Timeout after 5 seconds
|
|
204
|
-
setTimeout(() => {
|
|
205
|
-
child.kill();
|
|
206
|
-
resolve(false);
|
|
207
|
-
}, 5000);
|
|
208
|
-
});
|
|
209
|
-
}
|
|
210
|
-
/**
|
|
211
|
-
* List available model IDs
|
|
212
|
-
*/
|
|
213
|
-
listModels() {
|
|
214
|
-
return OPENAI_MODELS.map((m) => m.id);
|
|
215
|
-
}
|
|
216
|
-
/**
|
|
217
|
-
* Get detailed model information
|
|
218
|
-
*/
|
|
219
|
-
getModelInfo() {
|
|
220
|
-
return [...OPENAI_MODELS];
|
|
221
|
-
}
|
|
222
|
-
/**
|
|
223
|
-
* Get the default model for a role
|
|
224
|
-
*/
|
|
225
|
-
getDefaultModel(role) {
|
|
226
|
-
return DEFAULT_MODELS[role];
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
exports.OpenAIProvider = OpenAIProvider;
|
|
230
|
-
/**
|
|
231
|
-
* Create an OpenAI provider instance
|
|
232
|
-
*/
|
|
233
|
-
function createOpenAIProvider() {
|
|
234
|
-
return new OpenAIProvider();
|
|
235
|
-
}
|
|
236
|
-
//# sourceMappingURL=openai.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"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"}
|