funolio-agent 0.5.13 → 0.10.2
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/auto-organizer.d.ts +16 -0
- package/dist/auto-organizer.d.ts.map +1 -0
- package/dist/auto-organizer.js +235 -0
- package/dist/auto-organizer.js.map +1 -0
- package/dist/clerk-model.d.ts +101 -0
- package/dist/clerk-model.d.ts.map +1 -0
- package/dist/clerk-model.js +396 -0
- package/dist/clerk-model.js.map +1 -0
- package/dist/cli.js +7 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +38 -0
- package/dist/commands/start.js.map +1 -1
- package/dist/local-data.d.ts +528 -0
- package/dist/local-data.d.ts.map +1 -0
- package/dist/local-data.js +918 -0
- package/dist/local-data.js.map +1 -0
- package/dist/local-db.d.ts +26 -0
- package/dist/local-db.d.ts.map +1 -0
- package/dist/local-db.js +517 -0
- package/dist/local-db.js.map +1 -0
- package/dist/local-funnel.d.ts +20 -0
- package/dist/local-funnel.d.ts.map +1 -0
- package/dist/local-funnel.js +297 -0
- package/dist/local-funnel.js.map +1 -0
- package/dist/local-import-worker.d.ts +6 -0
- package/dist/local-import-worker.d.ts.map +1 -0
- package/dist/local-import-worker.js +370 -0
- package/dist/local-import-worker.js.map +1 -0
- package/dist/local-server.d.ts +7 -0
- package/dist/local-server.d.ts.map +1 -0
- package/dist/local-server.js +1340 -0
- package/dist/local-server.js.map +1 -0
- package/dist/mcp/index.d.ts +1 -0
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +3 -1
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/local-memory-server.d.ts +22 -0
- package/dist/mcp/local-memory-server.d.ts.map +1 -0
- package/dist/mcp/local-memory-server.js +284 -0
- package/dist/mcp/local-memory-server.js.map +1 -0
- package/dist/mcp/registry.d.ts.map +1 -1
- package/dist/mcp/registry.js +9 -0
- package/dist/mcp/registry.js.map +1 -1
- package/dist/message-loop.d.ts +10 -0
- package/dist/message-loop.d.ts.map +1 -1
- package/dist/message-loop.js +181 -30
- package/dist/message-loop.js.map +1 -1
- package/dist/mqtt-client.d.ts.map +1 -1
- package/dist/mqtt-client.js +40 -13
- package/dist/mqtt-client.js.map +1 -1
- package/dist/orchestration/guided-actions.d.ts +34 -0
- package/dist/orchestration/guided-actions.d.ts.map +1 -0
- package/dist/orchestration/guided-actions.js +115 -0
- package/dist/orchestration/guided-actions.js.map +1 -0
- package/dist/orchestration/status-parser.d.ts +27 -0
- package/dist/orchestration/status-parser.d.ts.map +1 -0
- package/dist/orchestration/status-parser.js +50 -0
- package/dist/orchestration/status-parser.js.map +1 -0
- package/dist/providers/claude-cli.d.ts.map +1 -1
- package/dist/providers/claude-cli.js +49 -23
- package/dist/providers/claude-cli.js.map +1 -1
- package/dist/providers/codex-cli.d.ts +13 -0
- package/dist/providers/codex-cli.d.ts.map +1 -0
- package/dist/providers/codex-cli.js +130 -0
- package/dist/providers/codex-cli.js.map +1 -0
- package/dist/providers/index.d.ts +2 -0
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +6 -2
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js +24 -3
- package/dist/providers/openai.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +3 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/search-local-memory.d.ts +9 -0
- package/dist/tools/search-local-memory.d.ts.map +1 -0
- package/dist/tools/search-local-memory.js +103 -0
- package/dist/tools/search-local-memory.js.map +1 -0
- package/dist/workflow-engine.d.ts +91 -0
- package/dist/workflow-engine.d.ts.map +1 -0
- package/dist/workflow-engine.js +429 -0
- package/dist/workflow-engine.js.map +1 -0
- package/package.json +9 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guided-actions.js","sourceRoot":"","sources":["../../src/orchestration/guided-actions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* STATUS parser for structured output contract.
|
|
3
|
+
*
|
|
4
|
+
* Extracts STATUS from assistant message footer.
|
|
5
|
+
* Expected format (last occurrence wins):
|
|
6
|
+
*
|
|
7
|
+
* STATUS:
|
|
8
|
+
* PASS | FAIL | COMPLETE
|
|
9
|
+
*
|
|
10
|
+
* If missing or invalid → UNKNOWN.
|
|
11
|
+
*/
|
|
12
|
+
export type ParsedStatus = 'PASS' | 'FAIL' | 'COMPLETE' | 'UNKNOWN';
|
|
13
|
+
/**
|
|
14
|
+
* Parse the STATUS from a message body.
|
|
15
|
+
* Finds the LAST valid STATUS: line in the message.
|
|
16
|
+
*/
|
|
17
|
+
export declare function parseStatus(messageContent: string): ParsedStatus;
|
|
18
|
+
/**
|
|
19
|
+
* Extract the full structured footer (RESULT, SUMMARY, STATUS) if present.
|
|
20
|
+
*/
|
|
21
|
+
export interface StructuredFooter {
|
|
22
|
+
result: string | null;
|
|
23
|
+
summary: string | null;
|
|
24
|
+
status: ParsedStatus;
|
|
25
|
+
}
|
|
26
|
+
export declare function parseStructuredFooter(messageContent: string): StructuredFooter;
|
|
27
|
+
//# sourceMappingURL=status-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status-parser.d.ts","sourceRoot":"","sources":["../../src/orchestration/status-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;AAIpE;;;GAGG;AACH,wBAAgB,WAAW,CAAC,cAAc,EAAE,MAAM,GAAG,YAAY,CAgBhE;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,YAAY,CAAC;CACtB;AAED,wBAAgB,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,gBAAgB,CAe9E"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* STATUS parser for structured output contract.
|
|
4
|
+
*
|
|
5
|
+
* Extracts STATUS from assistant message footer.
|
|
6
|
+
* Expected format (last occurrence wins):
|
|
7
|
+
*
|
|
8
|
+
* STATUS:
|
|
9
|
+
* PASS | FAIL | COMPLETE
|
|
10
|
+
*
|
|
11
|
+
* If missing or invalid → UNKNOWN.
|
|
12
|
+
*/
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.parseStatus = parseStatus;
|
|
15
|
+
exports.parseStructuredFooter = parseStructuredFooter;
|
|
16
|
+
const VALID_STATUSES = new Set(['PASS', 'FAIL', 'COMPLETE']);
|
|
17
|
+
/**
|
|
18
|
+
* Parse the STATUS from a message body.
|
|
19
|
+
* Finds the LAST valid STATUS: line in the message.
|
|
20
|
+
*/
|
|
21
|
+
function parseStatus(messageContent) {
|
|
22
|
+
if (!messageContent)
|
|
23
|
+
return 'UNKNOWN';
|
|
24
|
+
// Match STATUS: followed by a value on the same or next line
|
|
25
|
+
const regex = /STATUS:\s*\n?\s*(PASS|FAIL|COMPLETE)\b/gi;
|
|
26
|
+
let lastMatch = 'UNKNOWN';
|
|
27
|
+
let match;
|
|
28
|
+
while ((match = regex.exec(messageContent)) !== null) {
|
|
29
|
+
const val = match[1].toUpperCase();
|
|
30
|
+
if (VALID_STATUSES.has(val)) {
|
|
31
|
+
lastMatch = val;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return lastMatch;
|
|
35
|
+
}
|
|
36
|
+
function parseStructuredFooter(messageContent) {
|
|
37
|
+
const status = parseStatus(messageContent);
|
|
38
|
+
let result = null;
|
|
39
|
+
let summary = null;
|
|
40
|
+
// Extract RESULT: block
|
|
41
|
+
const resultMatch = messageContent.match(/RESULT:\s*\n([\s\S]*?)(?=\nSUMMARY:|\nSTATUS:|\n---|\s*$)/i);
|
|
42
|
+
if (resultMatch)
|
|
43
|
+
result = resultMatch[1].trim() || null;
|
|
44
|
+
// Extract SUMMARY: block
|
|
45
|
+
const summaryMatch = messageContent.match(/SUMMARY:\s*\n([\s\S]*?)(?=\nSTATUS:|\n---|\s*$)/i);
|
|
46
|
+
if (summaryMatch)
|
|
47
|
+
summary = summaryMatch[1].trim() || null;
|
|
48
|
+
return { result, summary, status };
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=status-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status-parser.js","sourceRoot":"","sources":["../../src/orchestration/status-parser.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;AAUH,kCAgBC;AAWD,sDAeC;AAhDD,MAAM,cAAc,GAAG,IAAI,GAAG,CAAe,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;AAE3E;;;GAGG;AACH,SAAgB,WAAW,CAAC,cAAsB;IAChD,IAAI,CAAC,cAAc;QAAE,OAAO,SAAS,CAAC;IAEtC,6DAA6D;IAC7D,MAAM,KAAK,GAAG,0CAA0C,CAAC;IACzD,IAAI,SAAS,GAAiB,SAAS,CAAC;IAExC,IAAI,KAA6B,CAAC;IAClC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACrD,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAkB,CAAC;QACnD,IAAI,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,SAAS,GAAG,GAAG,CAAC;QAClB,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAWD,SAAgB,qBAAqB,CAAC,cAAsB;IAC1D,MAAM,MAAM,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC;IAE3C,IAAI,MAAM,GAAkB,IAAI,CAAC;IACjC,IAAI,OAAO,GAAkB,IAAI,CAAC;IAElC,wBAAwB;IACxB,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;IACvG,IAAI,WAAW;QAAE,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC;IAExD,yBAAyB;IACzB,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;IAC9F,IAAI,YAAY;QAAE,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC;IAE3D,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AACrC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-cli.d.ts","sourceRoot":"","sources":["../../src/providers/claude-cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,cAAc,EAAE,WAAW,EAAe,MAAM,SAAS,CAAC;AAQnG;;;;GAIG;AACH,qBAAa,iBAAkB,YAAW,WAAW;IACnD,OAAO,CAAC,MAAM,CAAoB;gBAEtB,MAAM,EAAE,iBAAiB;IAI/B,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"claude-cli.d.ts","sourceRoot":"","sources":["../../src/providers/claude-cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,cAAc,EAAE,WAAW,EAAe,MAAM,SAAS,CAAC;AAQnG;;;;GAIG;AACH,qBAAa,iBAAkB,YAAW,WAAW;IACnD,OAAO,CAAC,MAAM,CAAoB;gBAEtB,MAAM,EAAE,iBAAiB;IAI/B,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC;IAsCzD,OAAO,CAAC,WAAW;IAgQnB,qEAAqE;IACrE,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAGlC"}
|
|
@@ -5,7 +5,7 @@ const child_process_1 = require("child_process");
|
|
|
5
5
|
// Windows STATUS_DLL_INIT_FAILED — benign crash during process cleanup
|
|
6
6
|
const WIN_DLL_INIT_FAILED = 3221225794; // 0xC0000142
|
|
7
7
|
const MAX_RETRIES = 2;
|
|
8
|
-
const INITIAL_TIMEOUT_MS =
|
|
8
|
+
const INITIAL_TIMEOUT_MS = 90_000;
|
|
9
9
|
/**
|
|
10
10
|
* Claude CLI provider — delegates to the locally-installed `claude` CLI binary.
|
|
11
11
|
* Uses `--output-format stream-json` for real-time streaming and tool call support.
|
|
@@ -19,7 +19,13 @@ class ClaudeCliProvider {
|
|
|
19
19
|
async chat(options) {
|
|
20
20
|
const lastUserMsg = [...options.messages].reverse().find(m => m.role === 'user');
|
|
21
21
|
const prompt = lastUserMsg?.content || '';
|
|
22
|
-
|
|
22
|
+
// Send prompt via stdin to avoid shell-quoting issues on Windows.
|
|
23
|
+
// Also inline system instructions here so we don't pass user-controlled
|
|
24
|
+
// text as command arguments when shell fallback is used.
|
|
25
|
+
let fullPrompt = prompt;
|
|
26
|
+
if (options.system) {
|
|
27
|
+
fullPrompt = `[System Instructions]\n${options.system}\n\n[User Request]\n${prompt}`;
|
|
28
|
+
}
|
|
23
29
|
// NOTE: --include-partial-messages was removed because it causes the CLI
|
|
24
30
|
// to re-emit full assistant message snapshots on every delta, leading to
|
|
25
31
|
// duplicate/garbled output when we're already accumulating from deltas.
|
|
@@ -27,21 +33,12 @@ class ClaudeCliProvider {
|
|
|
27
33
|
'--print',
|
|
28
34
|
'--output-format', 'stream-json',
|
|
29
35
|
'--verbose',
|
|
30
|
-
...systemArg,
|
|
31
|
-
prompt,
|
|
32
36
|
];
|
|
33
|
-
// Build a single shell command string with properly quoted arguments.
|
|
34
|
-
const shellCmd = ['claude', ...args].map(a => {
|
|
35
|
-
if (/[\s"&|<>^()]/.test(a)) {
|
|
36
|
-
return `"${a.replace(/"/g, '\\"')}"`;
|
|
37
|
-
}
|
|
38
|
-
return a;
|
|
39
|
-
}).join(' ');
|
|
40
37
|
// Retry loop for Windows DLL init failures (0xC0000142)
|
|
41
38
|
let lastError = null;
|
|
42
39
|
for (let attempt = 1; attempt <= MAX_RETRIES; attempt++) {
|
|
43
40
|
try {
|
|
44
|
-
return await this.spawnClaude(
|
|
41
|
+
return await this.spawnClaude(args, fullPrompt, options);
|
|
45
42
|
}
|
|
46
43
|
catch (err) {
|
|
47
44
|
lastError = err;
|
|
@@ -54,14 +51,20 @@ class ClaudeCliProvider {
|
|
|
54
51
|
}
|
|
55
52
|
throw lastError;
|
|
56
53
|
}
|
|
57
|
-
spawnClaude(
|
|
54
|
+
spawnClaude(args, prompt, options) {
|
|
58
55
|
return new Promise((resolve, reject) => {
|
|
59
|
-
|
|
56
|
+
const useShell = process.platform === 'win32';
|
|
57
|
+
const claudeBin = 'claude';
|
|
58
|
+
console.log(`[claude-cli] spawning (stream-json): ${claudeBin} ${args.slice(0, 8).join(' ')}... (${prompt.length} char prompt)`);
|
|
60
59
|
const cleanEnv = { ...process.env };
|
|
60
|
+
// Strip ALL Claude Code env vars so `claude --print` doesn't think
|
|
61
|
+
// it's a nested session and refuse to start
|
|
61
62
|
delete cleanEnv.CLAUDECODE;
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
63
|
+
delete cleanEnv.CLAUDE_CODE_ENTRYPOINT;
|
|
64
|
+
delete cleanEnv.CLAUDE_CODE_SESSION_ID;
|
|
65
|
+
const proc = (0, child_process_1.spawn)(claudeBin, args, {
|
|
66
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
67
|
+
shell: useShell,
|
|
65
68
|
env: cleanEnv,
|
|
66
69
|
});
|
|
67
70
|
let content = '';
|
|
@@ -81,9 +84,9 @@ class ClaudeCliProvider {
|
|
|
81
84
|
const timer = setTimeout(() => {
|
|
82
85
|
if (!gotEvent && !settled) {
|
|
83
86
|
settled = true;
|
|
84
|
-
console.error(
|
|
87
|
+
console.error(`[claude-cli] no stream events after ${Math.floor(INITIAL_TIMEOUT_MS / 1000)}s — killing process`);
|
|
85
88
|
proc.kill();
|
|
86
|
-
reject(new Error(
|
|
89
|
+
reject(new Error(`claude CLI produced no output after ${Math.floor(INITIAL_TIMEOUT_MS / 1000)} seconds`));
|
|
87
90
|
}
|
|
88
91
|
}, INITIAL_TIMEOUT_MS);
|
|
89
92
|
proc.stdout.on('data', async (data) => {
|
|
@@ -170,12 +173,24 @@ class ClaudeCliProvider {
|
|
|
170
173
|
continue;
|
|
171
174
|
}
|
|
172
175
|
if (obj.type === 'assistant') {
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
if (!content && obj.message?.content) {
|
|
176
|
+
if (obj.message?.content) {
|
|
177
|
+
let assistantText = '';
|
|
176
178
|
for (const block of obj.message.content) {
|
|
177
179
|
if (block.type === 'text' && block.text) {
|
|
178
|
-
|
|
180
|
+
assistantText += block.text;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
if (assistantText) {
|
|
184
|
+
if (!content) {
|
|
185
|
+
content = assistantText;
|
|
186
|
+
if (options.onChunk)
|
|
187
|
+
await options.onChunk(assistantText);
|
|
188
|
+
}
|
|
189
|
+
else if (assistantText.length > content.length && assistantText.startsWith(content)) {
|
|
190
|
+
const delta = assistantText.slice(content.length);
|
|
191
|
+
content = assistantText;
|
|
192
|
+
if (options.onChunk)
|
|
193
|
+
await options.onChunk(delta);
|
|
179
194
|
}
|
|
180
195
|
}
|
|
181
196
|
}
|
|
@@ -199,6 +214,8 @@ class ClaudeCliProvider {
|
|
|
199
214
|
// Use result text as final fallback
|
|
200
215
|
if (!content && obj.result && typeof obj.result === 'string') {
|
|
201
216
|
content = obj.result;
|
|
217
|
+
if (options.onChunk)
|
|
218
|
+
await options.onChunk(obj.result);
|
|
202
219
|
}
|
|
203
220
|
continue;
|
|
204
221
|
}
|
|
@@ -209,6 +226,9 @@ class ClaudeCliProvider {
|
|
|
209
226
|
stderr += text;
|
|
210
227
|
console.error(`[claude-cli] stderr: ${text.trim()}`);
|
|
211
228
|
});
|
|
229
|
+
// Send prompt to stdin (portable across shells/platforms)
|
|
230
|
+
proc.stdin.write(prompt);
|
|
231
|
+
proc.stdin.end();
|
|
212
232
|
proc.on('close', (code) => {
|
|
213
233
|
clearTimeout(timer);
|
|
214
234
|
if (settled)
|
|
@@ -251,6 +271,12 @@ class ClaudeCliProvider {
|
|
|
251
271
|
reject(err);
|
|
252
272
|
return;
|
|
253
273
|
}
|
|
274
|
+
// Exit 0 but no parsed content is usually a parse/CLI output mismatch.
|
|
275
|
+
// Surface stderr instead of silently returning an empty assistant message.
|
|
276
|
+
if (stderr.trim()) {
|
|
277
|
+
reject(new Error(`claude CLI returned no content. stderr: ${stderr.trim()}`));
|
|
278
|
+
return;
|
|
279
|
+
}
|
|
254
280
|
console.log('[claude-cli] done (empty response)');
|
|
255
281
|
resolve({ content: '', finishReason: 'end_turn' });
|
|
256
282
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-cli.js","sourceRoot":"","sources":["../../src/providers/claude-cli.ts"],"names":[],"mappings":";;;AACA,iDAAsC;AAEtC,uEAAuE;AACvE,MAAM,mBAAmB,GAAG,UAAU,CAAC,CAAC,aAAa;AACrD,MAAM,WAAW,GAAG,CAAC,CAAC;AACtB,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAElC;;;;GAIG;AACH,MAAa,iBAAiB;IACpB,MAAM,CAAoB;IAElC,YAAY,MAAyB;QACnC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAuB;QAChC,MAAM,WAAW,GAAG,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QACjF,MAAM,MAAM,GAAG,WAAW,EAAE,OAAO,IAAI,EAAE,CAAC;QAE1C,MAAM,
|
|
1
|
+
{"version":3,"file":"claude-cli.js","sourceRoot":"","sources":["../../src/providers/claude-cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { LLMProvider, LLMProviderConfig, LLMChatOptions, LLMResponse } from './index';
|
|
2
|
+
/**
|
|
3
|
+
* Codex CLI provider — delegates to the locally-installed `codex` CLI binary.
|
|
4
|
+
* Uses `codex exec` for non-interactive output (pipes prompt via stdin).
|
|
5
|
+
* Does NOT require an API key (the CLI handles auth via its own session/OAuth).
|
|
6
|
+
*/
|
|
7
|
+
export declare class CodexCliProvider implements LLMProvider {
|
|
8
|
+
private config;
|
|
9
|
+
constructor(config: LLMProviderConfig);
|
|
10
|
+
chat(options: LLMChatOptions): Promise<LLMResponse>;
|
|
11
|
+
private spawnCodex;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=codex-cli.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex-cli.d.ts","sourceRoot":"","sources":["../../src/providers/codex-cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAQtF;;;;GAIG;AACH,qBAAa,gBAAiB,YAAW,WAAW;IAClD,OAAO,CAAC,MAAM,CAAoB;gBAEtB,MAAM,EAAE,iBAAiB;IAI/B,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC;IA6BzD,OAAO,CAAC,UAAU;CA4FnB"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CodexCliProvider = void 0;
|
|
4
|
+
const child_process_1 = require("child_process");
|
|
5
|
+
// Windows STATUS_DLL_INIT_FAILED — benign crash during process cleanup
|
|
6
|
+
const WIN_DLL_INIT_FAILED = 3221225794; // 0xC0000142
|
|
7
|
+
const MAX_RETRIES = 2;
|
|
8
|
+
const TIMEOUT_MS = 120_000; // 2 minutes — codex can be slow
|
|
9
|
+
/**
|
|
10
|
+
* Codex CLI provider — delegates to the locally-installed `codex` CLI binary.
|
|
11
|
+
* Uses `codex exec` for non-interactive output (pipes prompt via stdin).
|
|
12
|
+
* Does NOT require an API key (the CLI handles auth via its own session/OAuth).
|
|
13
|
+
*/
|
|
14
|
+
class CodexCliProvider {
|
|
15
|
+
config;
|
|
16
|
+
constructor(config) {
|
|
17
|
+
this.config = config;
|
|
18
|
+
}
|
|
19
|
+
async chat(options) {
|
|
20
|
+
const lastUserMsg = [...options.messages].reverse().find(m => m.role === 'user');
|
|
21
|
+
const prompt = lastUserMsg?.content || '';
|
|
22
|
+
// Use `codex exec` for non-interactive mode
|
|
23
|
+
// System prompt is prepended to the user prompt since codex exec doesn't have
|
|
24
|
+
// a separate system prompt flag
|
|
25
|
+
let fullPrompt = prompt;
|
|
26
|
+
if (options.system) {
|
|
27
|
+
fullPrompt = `[System Instructions]\n${options.system}\n\n[User Request]\n${prompt}`;
|
|
28
|
+
}
|
|
29
|
+
// Retry loop for Windows DLL init failures
|
|
30
|
+
let lastError = null;
|
|
31
|
+
for (let attempt = 1; attempt <= MAX_RETRIES; attempt++) {
|
|
32
|
+
try {
|
|
33
|
+
return await this.spawnCodex(fullPrompt, options);
|
|
34
|
+
}
|
|
35
|
+
catch (err) {
|
|
36
|
+
lastError = err;
|
|
37
|
+
if (err._exitCode === WIN_DLL_INIT_FAILED && attempt < MAX_RETRIES) {
|
|
38
|
+
console.warn(`[codex-cli] Windows DLL init failure (attempt ${attempt}/${MAX_RETRIES}) — retrying...`);
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
throw err;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
throw lastError;
|
|
45
|
+
}
|
|
46
|
+
spawnCodex(prompt, options) {
|
|
47
|
+
return new Promise((resolve, reject) => {
|
|
48
|
+
// Use direct argv spawning (no shell quoting/pipes).
|
|
49
|
+
// The `-` argument tells codex exec to read prompt from stdin.
|
|
50
|
+
// --skip-git-repo-check is required because sidecar cwd may not be a git repo.
|
|
51
|
+
const args = ['exec', '--skip-git-repo-check', '-'];
|
|
52
|
+
const useShell = process.platform === 'win32';
|
|
53
|
+
const codexBin = 'codex';
|
|
54
|
+
console.log(`[codex-cli] spawning: ${codexBin} ${args.join(' ')} (${prompt.length} char prompt)`);
|
|
55
|
+
const proc = (0, child_process_1.spawn)(codexBin, args, {
|
|
56
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
57
|
+
shell: useShell,
|
|
58
|
+
env: { ...process.env },
|
|
59
|
+
});
|
|
60
|
+
let content = '';
|
|
61
|
+
let stderr = '';
|
|
62
|
+
let settled = false;
|
|
63
|
+
let gotOutput = false;
|
|
64
|
+
const timer = setTimeout(() => {
|
|
65
|
+
if (!settled) {
|
|
66
|
+
settled = true;
|
|
67
|
+
console.error('[codex-cli] timed out — killing process');
|
|
68
|
+
proc.kill();
|
|
69
|
+
reject(new Error('codex CLI timed out'));
|
|
70
|
+
}
|
|
71
|
+
}, TIMEOUT_MS);
|
|
72
|
+
proc.stdout.on('data', async (data) => {
|
|
73
|
+
const text = data.toString();
|
|
74
|
+
if (!gotOutput) {
|
|
75
|
+
gotOutput = true;
|
|
76
|
+
console.log('[codex-cli] first output received');
|
|
77
|
+
}
|
|
78
|
+
content += text;
|
|
79
|
+
if (options.onChunk) {
|
|
80
|
+
await options.onChunk(text);
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
proc.stderr.on('data', (data) => {
|
|
84
|
+
const text = data.toString();
|
|
85
|
+
stderr += text;
|
|
86
|
+
// Only log non-progress stderr (progress bars, etc.)
|
|
87
|
+
if (text.trim() && !text.includes('%')) {
|
|
88
|
+
console.error(`[codex-cli] stderr: ${text.trim()}`);
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
// Send prompt to stdin for `codex exec -`
|
|
92
|
+
proc.stdin.write(prompt);
|
|
93
|
+
proc.stdin.end();
|
|
94
|
+
proc.on('close', (code) => {
|
|
95
|
+
clearTimeout(timer);
|
|
96
|
+
if (settled)
|
|
97
|
+
return;
|
|
98
|
+
settled = true;
|
|
99
|
+
// If we got content, treat as success regardless of exit code
|
|
100
|
+
if (content.trim()) {
|
|
101
|
+
if (code !== 0) {
|
|
102
|
+
console.warn(`[codex-cli] exited with code ${code} but had output — treating as success`);
|
|
103
|
+
}
|
|
104
|
+
console.log(`[codex-cli] done (${content.length} chars)`);
|
|
105
|
+
resolve({ content: content.trim(), finishReason: 'end_turn' });
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
if (code !== 0) {
|
|
109
|
+
console.error(`[codex-cli] exited with code ${code}`);
|
|
110
|
+
const err = new Error(`codex CLI exited with code ${code}: ${stderr}`);
|
|
111
|
+
err._exitCode = code;
|
|
112
|
+
reject(err);
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
console.log('[codex-cli] done (empty response)');
|
|
116
|
+
resolve({ content: '', finishReason: 'end_turn' });
|
|
117
|
+
});
|
|
118
|
+
proc.on('error', (err) => {
|
|
119
|
+
clearTimeout(timer);
|
|
120
|
+
if (settled)
|
|
121
|
+
return;
|
|
122
|
+
settled = true;
|
|
123
|
+
console.error(`[codex-cli] spawn error: ${err.message}`);
|
|
124
|
+
reject(new Error(`Failed to spawn codex CLI: ${err.message}. Is codex installed? Run: npm install -g @openai/codex`));
|
|
125
|
+
});
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
exports.CodexCliProvider = CodexCliProvider;
|
|
130
|
+
//# sourceMappingURL=codex-cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex-cli.js","sourceRoot":"","sources":["../../src/providers/codex-cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,6 +43,8 @@ export interface LLMProviderConfig {
|
|
|
43
43
|
export interface LLMProvider {
|
|
44
44
|
chat(options: LLMChatOptions): Promise<LLMResponse>;
|
|
45
45
|
}
|
|
46
|
+
/** Providers that use a local CLI binary (no API key needed) */
|
|
47
|
+
export declare const CLI_PROVIDERS: Set<string>;
|
|
46
48
|
/** Providers fully implemented in runtime */
|
|
47
49
|
export declare const SUPPORTED_PROVIDERS: Set<string>;
|
|
48
50
|
export declare function createProvider(providerName: string, config: LLMProviderConfig): LLMProvider;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC;IAC1B,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE;QACN,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CACrD;AAED,gEAAgE;AAChE,eAAO,MAAM,aAAa,aAAuC,CAAC;AAElE,6CAA6C;AAC7C,eAAO,MAAM,mBAAmB,aAa9B,CAAC;AAaH,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,WAAW,CA6B3F"}
|
package/dist/providers/index.js
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SUPPORTED_PROVIDERS = void 0;
|
|
3
|
+
exports.SUPPORTED_PROVIDERS = exports.CLI_PROVIDERS = void 0;
|
|
4
4
|
exports.createProvider = createProvider;
|
|
5
5
|
const anthropic_1 = require("./anthropic");
|
|
6
6
|
const openai_1 = require("./openai");
|
|
7
7
|
const google_1 = require("./google");
|
|
8
8
|
const claude_cli_1 = require("./claude-cli");
|
|
9
|
+
const codex_cli_1 = require("./codex-cli");
|
|
10
|
+
/** Providers that use a local CLI binary (no API key needed) */
|
|
11
|
+
exports.CLI_PROVIDERS = new Set(['claude-cli', 'codex-cli']);
|
|
9
12
|
/** Providers fully implemented in runtime */
|
|
10
13
|
exports.SUPPORTED_PROVIDERS = new Set([
|
|
11
14
|
'anthropic',
|
|
@@ -23,7 +26,6 @@ exports.SUPPORTED_PROVIDERS = new Set([
|
|
|
23
26
|
]);
|
|
24
27
|
/** Map of OpenAI-compatible providers to their base URLs */
|
|
25
28
|
const OPENAI_COMPATIBLE_BASE_URLS = {
|
|
26
|
-
'codex-cli': 'https://api.openai.com/v1',
|
|
27
29
|
'mistral': 'https://api.mistral.ai/v1',
|
|
28
30
|
'cohere': 'https://api.cohere.com/compatibility/v1',
|
|
29
31
|
'deepseek': 'https://api.deepseek.com/v1',
|
|
@@ -47,6 +49,8 @@ function createProvider(providerName, config) {
|
|
|
47
49
|
return new google_1.GoogleProvider(config);
|
|
48
50
|
case 'claude-cli':
|
|
49
51
|
return new claude_cli_1.ClaudeCliProvider(config);
|
|
52
|
+
case 'codex-cli':
|
|
53
|
+
return new codex_cli_1.CodexCliProvider(config);
|
|
50
54
|
default: {
|
|
51
55
|
// All other providers use OpenAI-compatible API with custom baseUrl
|
|
52
56
|
const baseUrl = OPENAI_COMPATIBLE_BASE_URLS[providerName];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":";;;AAwFA,wCA6BC;AArHD,2CAAgD;AAChD,qCAA0C;AAC1C,qCAA0C;AAC1C,6CAAiD;AACjD,2CAA+C;AAsD/C,gEAAgE;AACnD,QAAA,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC;AAElE,6CAA6C;AAChC,QAAA,mBAAmB,GAAG,IAAI,GAAG,CAAC;IACzC,WAAW;IACX,QAAQ;IACR,QAAQ;IACR,YAAY;IACZ,WAAW,EAAI,4BAA4B;IAC3C,SAAS,EAAM,wBAAwB;IACvC,QAAQ,EAAO,wBAAwB;IACvC,UAAU,EAAK,wBAAwB;IACvC,MAAM,EAAS,wBAAwB;IACvC,UAAU,EAAK,wBAAwB;IACvC,YAAY,EAAG,wBAAwB;IACvC,KAAK,EAAU,wBAAwB;CACxC,CAAC,CAAC;AAEH,4DAA4D;AAC5D,MAAM,2BAA2B,GAA2B;IAC1D,SAAS,EAAK,2BAA2B;IACzC,QAAQ,EAAM,yCAAyC;IACvD,UAAU,EAAI,6BAA6B;IAC3C,MAAM,EAAQ,gCAAgC;IAC9C,UAAU,EAAI,6BAA6B;IAC3C,YAAY,EAAE,2BAA2B;IACzC,KAAK,EAAS,qBAAqB;CACpC,CAAC;AAEF,SAAgB,cAAc,CAAC,YAAoB,EAAE,MAAyB;IAC5E,iCAAiC;IACjC,IAAI,CAAC,2BAAmB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC,qBAAqB,YAAY,8BAA8B,CAAC,CAAC;QAC9E,OAAO,IAAI,6BAAiB,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,QAAQ,YAAY,EAAE,CAAC;QACrB,KAAK,WAAW;YACd,OAAO,IAAI,6BAAiB,CAAC,MAAM,CAAC,CAAC;QACvC,KAAK,QAAQ;YACX,OAAO,IAAI,uBAAc,CAAC,MAAM,CAAC,CAAC;QACpC,KAAK,QAAQ;YACX,OAAO,IAAI,uBAAc,CAAC,MAAM,CAAC,CAAC;QACpC,KAAK,YAAY;YACf,OAAO,IAAI,8BAAiB,CAAC,MAAM,CAAC,CAAC;QACvC,KAAK,WAAW;YACd,OAAO,IAAI,4BAAgB,CAAC,MAAM,CAAC,CAAC;QACtC,OAAO,CAAC,CAAC,CAAC;YACR,oEAAoE;YACpE,MAAM,OAAO,GAAG,2BAA2B,CAAC,YAAY,CAAC,CAAC;YAC1D,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,IAAI,uBAAc,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;YACpD,CAAC;YACD,4EAA4E;YAC5E,OAAO,CAAC,IAAI,CAAC,6BAA6B,YAAY,8BAA8B,CAAC,CAAC;YACtF,OAAO,IAAI,6BAAiB,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,cAAc,EAAE,WAAW,EAAe,MAAM,SAAS,CAAC;AAGnG,qBAAa,cAAe,YAAW,WAAW;IAChD,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE,iBAAiB,GAAG;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE;IAKtD,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,cAAc,EAAE,WAAW,EAAe,MAAM,SAAS,CAAC;AAGnG,qBAAa,cAAe,YAAW,WAAW;IAChD,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE,iBAAiB,GAAG;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE;IAKtD,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC;YA0F3C,UAAU;IAkGxB,OAAO,CAAC,aAAa;CAyBtB"}
|
package/dist/providers/openai.js
CHANGED
|
@@ -45,8 +45,17 @@ class OpenAIProvider {
|
|
|
45
45
|
const body = {
|
|
46
46
|
model: this.config.model,
|
|
47
47
|
messages,
|
|
48
|
-
max_tokens: 4096,
|
|
49
48
|
};
|
|
49
|
+
// Newer OpenAI models (gpt-4.1+, gpt-5+, o-series) use max_completion_tokens
|
|
50
|
+
// Older models use max_tokens. Use both for maximum compatibility.
|
|
51
|
+
const model = this.config.model || '';
|
|
52
|
+
const isNewModel = /^(gpt-[4-9]\.[1-9]|gpt-[5-9]|o[1-9]|o\d+-)/i.test(model);
|
|
53
|
+
if (isNewModel) {
|
|
54
|
+
body.max_completion_tokens = 4096;
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
body.max_tokens = 4096;
|
|
58
|
+
}
|
|
50
59
|
// Pass tool definitions if provided
|
|
51
60
|
if (options.tools?.length) {
|
|
52
61
|
body.tools = options.tools.map(t => ({
|
|
@@ -70,7 +79,13 @@ class OpenAIProvider {
|
|
|
70
79
|
body: JSON.stringify(body),
|
|
71
80
|
});
|
|
72
81
|
if (!response.ok) {
|
|
73
|
-
|
|
82
|
+
let detail = '';
|
|
83
|
+
try {
|
|
84
|
+
const errBody = await response.json();
|
|
85
|
+
detail = errBody?.error?.message || JSON.stringify(errBody?.error || errBody);
|
|
86
|
+
}
|
|
87
|
+
catch { /* body not readable */ }
|
|
88
|
+
const error = new Error(`OpenAI API error ${response.status}: ${detail || response.statusText}`);
|
|
74
89
|
error.status = response.status;
|
|
75
90
|
throw error;
|
|
76
91
|
}
|
|
@@ -89,7 +104,13 @@ class OpenAIProvider {
|
|
|
89
104
|
body: JSON.stringify(body),
|
|
90
105
|
});
|
|
91
106
|
if (!response.ok) {
|
|
92
|
-
|
|
107
|
+
let detail = '';
|
|
108
|
+
try {
|
|
109
|
+
const errBody = await response.json();
|
|
110
|
+
detail = errBody?.error?.message || JSON.stringify(errBody?.error || errBody);
|
|
111
|
+
}
|
|
112
|
+
catch { /* body not readable */ }
|
|
113
|
+
const error = new Error(`OpenAI API error ${response.status}: ${detail || response.statusText}`);
|
|
93
114
|
error.status = response.status;
|
|
94
115
|
throw error;
|
|
95
116
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":";;;AACA,mCAAoC;AAEpC,MAAa,cAAc;IACjB,MAAM,CAAoB;IAC1B,OAAO,CAAS;IAExB,YAAY,MAAgD;QAC1D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,2BAA2B,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAuB;QAChC,OAAO,IAAA,iBAAS,EAAC,KAAK,IAAI,EAAE;YAC1B,MAAM,QAAQ,GAAU,EAAE,CAAC;YAE3B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YAC7D,CAAC;YAED,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACjC,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBACtB,4CAA4C;oBAC5C,QAAQ,CAAC,IAAI,CAAC;wBACZ,IAAI,EAAE,MAAM;wBACZ,YAAY,EAAE,CAAC,CAAC,UAAU;wBAC1B,OAAO,EAAE,CAAC,CAAC,OAAO;qBACnB,CAAC,CAAC;gBACL,CAAC;qBAAM,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;oBACzD,QAAQ,CAAC,IAAI,CAAC;wBACZ,IAAI,EAAE,WAAW;wBACjB,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI;wBAC1B,UAAU,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;4BACjC,EAAE,EAAE,EAAE,CAAC,EAAE;4BACT,IAAI,EAAE,UAAU;4BAChB,QAAQ,EAAE;gCACR,IAAI,EAAE,EAAE,CAAC,IAAI;gCACb,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC;6BACxC;yBACF,CAAC,CAAC;qBACJ,CAAC,CAAC;gBACL,CAAC;qBAAM,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC/B,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;gBACtD,CAAC;YACH,CAAC;YAED,MAAM,IAAI,GAAwB;gBAChC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;gBACxB,QAAQ;
|
|
1
|
+
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAQ7E,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAG5C,QAAA,MAAM,aAAa,EAAE,cAAc,EAUlC,CAAC;AAEF,4BAA4B;AAC5B,QAAA,MAAM,SAAS,EAAE,cAAc,EAAkB,CAAC;AAElD,QAAA,MAAM,OAAO,6BAEZ,CAAC;AAEF;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC,CAMtH;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAiBvF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,WAAW,CAQnG;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,CAAC,EAAE,UAAU,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC,CAgBhJ;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,QAAQ,EACd,GAAG,EAAE,WAAW,EAChB,UAAU,CAAC,EAAE,UAAU,GACtB,OAAO,CAAC,UAAU,CAAC,CA6BrB;AAED,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC"}
|