klaus-agent 0.2.0 → 0.2.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/llm/provider.ts"],"names":[],"mappings":"AAAA,wBAAwB;AAExB,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAGhE,MAAM,SAAS,GAAG,IAAI,GAAG,EAA8B,CAAC;AAExD,qBAAqB;AACrB,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAC9E,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACxE,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACxE,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAC1E,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACpE,SAAS,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAEhF,wFAAwF;AACxF,SAAS,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACnF,SAAS,CAAC,GAAG,CAAC,sBAAsB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACzF,SAAS,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAEnF,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,OAA2B;IACxE,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAA+D;IAC7F,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,yBAAyB,MAAM,CAAC,QAAQ,wCAAwC,CAAC,CAAC;IACpG,CAAC;IACD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/llm/provider.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  export { AnthropicProvider } from "./anthropic.js";
2
2
  export { OpenAIProvider } from "./openai.js";
3
+ export { OpenAICodexProvider } from "./openai-codex.js";
3
4
  export { GeminiProvider } from "./google.js";
4
5
  export { MiniMaxProvider } from "./minimax.js";
5
6
  export { KimiProvider } from "./kimi.js";
@@ -1,5 +1,6 @@
1
1
  export { AnthropicProvider } from "./anthropic.js";
2
2
  export { OpenAIProvider } from "./openai.js";
3
+ export { OpenAICodexProvider } from "./openai-codex.js";
3
4
  export { GeminiProvider } from "./google.js";
4
5
  export { MiniMaxProvider } from "./minimax.js";
5
6
  export { KimiProvider } from "./kimi.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { LLMProvider, LLMRequestOptions, AssistantMessageEvent } from "../llm/types.js";
2
+ export declare class OpenAICodexProvider implements LLMProvider {
3
+ private apiKey;
4
+ private baseUrl;
5
+ constructor(apiKey?: string, baseUrl?: string);
6
+ stream(options: LLMRequestOptions): AsyncIterable<AssistantMessageEvent>;
7
+ private _streamOnce;
8
+ }
@@ -0,0 +1,404 @@
1
+ // OpenAI Codex LLM provider
2
+ // Connects to ChatGPT's Codex backend via Responses API format.
3
+ // Requires a ChatGPT OAuth JWT token as apiKey.
4
+ import { platform, release, arch } from "node:os";
5
+ // --- Configuration ---
6
+ const DEFAULT_BASE_URL = "https://chatgpt.com/backend-api";
7
+ const JWT_CLAIM_PATH = "https://api.openai.com/auth";
8
+ const MAX_RETRIES = 3;
9
+ const BASE_DELAY_MS = 1000;
10
+ // --- Provider ---
11
+ export class OpenAICodexProvider {
12
+ apiKey;
13
+ baseUrl;
14
+ constructor(apiKey, baseUrl) {
15
+ this.apiKey = apiKey || process.env.OPENAI_CODEX_TOKEN || "";
16
+ this.baseUrl = baseUrl || DEFAULT_BASE_URL;
17
+ }
18
+ async *stream(options) {
19
+ yield* this._streamOnce(options);
20
+ }
21
+ async *_streamOnce(options) {
22
+ const { model, systemPrompt, messages, tools, thinkingLevel, signal } = options;
23
+ if (!this.apiKey) {
24
+ throw new Error("No API key for openai-codex provider. Set OPENAI_CODEX_TOKEN or pass apiKey.");
25
+ }
26
+ const accountId = extractAccountId(this.apiKey);
27
+ const body = buildRequestBody(model, systemPrompt, messages, tools, thinkingLevel);
28
+ const headers = buildHeaders(accountId, this.apiKey);
29
+ const url = resolveCodexUrl(this.baseUrl);
30
+ // Fetch with retry for rate limits / transient errors
31
+ let response;
32
+ let lastError;
33
+ for (let attempt = 0; attempt <= MAX_RETRIES; attempt++) {
34
+ if (signal?.aborted)
35
+ throw new Error("Request was aborted");
36
+ try {
37
+ response = await fetch(url, {
38
+ method: "POST",
39
+ headers,
40
+ body: JSON.stringify(body),
41
+ signal,
42
+ });
43
+ if (response.ok)
44
+ break;
45
+ const errorText = await response.text();
46
+ if (attempt < MAX_RETRIES && isRetryableStatus(response.status, errorText)) {
47
+ await sleep(BASE_DELAY_MS * 2 ** attempt, signal);
48
+ continue;
49
+ }
50
+ throw new Error(parseErrorMessage(response.status, errorText));
51
+ }
52
+ catch (err) {
53
+ if (err instanceof Error && (err.name === "AbortError" || err.message === "Request was aborted")) {
54
+ throw err;
55
+ }
56
+ lastError = err instanceof Error ? err : new Error(String(err));
57
+ if (attempt < MAX_RETRIES && !lastError.message.includes("usage limit")) {
58
+ await sleep(BASE_DELAY_MS * 2 ** attempt, signal);
59
+ continue;
60
+ }
61
+ throw lastError;
62
+ }
63
+ }
64
+ if (!response?.ok)
65
+ throw lastError ?? new Error("Failed after retries");
66
+ if (!response.body)
67
+ throw new Error("No response body");
68
+ // Parse SSE stream and map to AssistantMessageEvent
69
+ const contentBlocks = [];
70
+ const toolCalls = new Map();
71
+ let usage = { inputTokens: 0, outputTokens: 0, totalTokens: 0 };
72
+ for await (const event of mapCodexEvents(parseSSE(response))) {
73
+ const type = event.type;
74
+ // Text delta
75
+ if (type === "response.output_text.delta") {
76
+ const delta = event.delta;
77
+ if (delta) {
78
+ if (contentBlocks.length === 0 || contentBlocks[contentBlocks.length - 1].type !== "text") {
79
+ contentBlocks.push({ type: "text", text: "" });
80
+ }
81
+ const block = contentBlocks[contentBlocks.length - 1];
82
+ if (block.type === "text")
83
+ block.text += delta;
84
+ yield { type: "text", text: delta };
85
+ }
86
+ }
87
+ // Reasoning/thinking summary delta
88
+ if (type === "response.reasoning_summary_text.delta") {
89
+ const delta = event.delta;
90
+ if (delta) {
91
+ if (contentBlocks.length === 0 || contentBlocks[contentBlocks.length - 1].type !== "thinking") {
92
+ contentBlocks.push({ type: "thinking", thinking: "" });
93
+ }
94
+ const block = contentBlocks[contentBlocks.length - 1];
95
+ if (block.type === "thinking")
96
+ block.thinking += delta;
97
+ yield { type: "thinking", thinking: delta };
98
+ }
99
+ }
100
+ // New output item (function call start)
101
+ if (type === "response.output_item.added") {
102
+ const item = event.item;
103
+ if (item?.type === "function_call") {
104
+ const id = item.id || item.call_id || `call_${toolCalls.size}`;
105
+ const callId = item.call_id || id;
106
+ const name = item.name || "";
107
+ toolCalls.set(id, { id, name, args: "", callId });
108
+ contentBlocks.push({ type: "tool_call", id: callId, name, input: {} });
109
+ yield { type: "tool_call_start", id: callId, name };
110
+ }
111
+ }
112
+ // Function call arguments delta
113
+ if (type === "response.function_call_arguments.delta") {
114
+ const itemId = event.item_id;
115
+ const delta = event.delta;
116
+ if (itemId && delta) {
117
+ const entry = toolCalls.get(itemId);
118
+ if (entry) {
119
+ entry.args += delta;
120
+ yield { type: "tool_call_delta", id: entry.callId, input: delta };
121
+ }
122
+ }
123
+ }
124
+ // Response completed — extract usage
125
+ if (type === "response.completed") {
126
+ const resp = event.response;
127
+ if (resp?.usage) {
128
+ usage = {
129
+ inputTokens: resp.usage.input_tokens ?? 0,
130
+ outputTokens: resp.usage.output_tokens ?? 0,
131
+ totalTokens: (resp.usage.input_tokens ?? 0) + (resp.usage.output_tokens ?? 0),
132
+ cacheReadTokens: resp.usage.input_tokens_details?.cached_tokens,
133
+ };
134
+ }
135
+ }
136
+ }
137
+ // Finalize tool call inputs
138
+ for (const [, entry] of toolCalls) {
139
+ const block = contentBlocks.find((b) => b.type === "tool_call" && b.id === entry.callId);
140
+ if (block && block.type === "tool_call") {
141
+ try {
142
+ block.input = JSON.parse(entry.args || "{}");
143
+ }
144
+ catch {
145
+ block.input = {};
146
+ }
147
+ }
148
+ }
149
+ const message = { role: "assistant", content: contentBlocks };
150
+ yield { type: "done", message, usage };
151
+ }
152
+ }
153
+ // --- JWT ---
154
+ function extractAccountId(token) {
155
+ try {
156
+ const parts = token.split(".");
157
+ if (parts.length !== 3)
158
+ throw new Error("Invalid JWT");
159
+ // JWT uses base64url encoding; convert to standard base64 for atob
160
+ const b64 = parts[1].replace(/-/g, "+").replace(/_/g, "/");
161
+ const payload = JSON.parse(atob(b64));
162
+ const accountId = payload?.[JWT_CLAIM_PATH]?.chatgpt_account_id;
163
+ if (!accountId)
164
+ throw new Error("No chatgpt_account_id in token");
165
+ return accountId;
166
+ }
167
+ catch {
168
+ throw new Error("Failed to extract accountId from Codex JWT token");
169
+ }
170
+ }
171
+ // --- Request building ---
172
+ function resolveCodexUrl(baseUrl) {
173
+ const normalized = baseUrl.replace(/\/+$/, "");
174
+ if (normalized.endsWith("/codex/responses"))
175
+ return normalized;
176
+ if (normalized.endsWith("/codex"))
177
+ return `${normalized}/responses`;
178
+ return `${normalized}/codex/responses`;
179
+ }
180
+ function buildHeaders(accountId, token) {
181
+ const userAgent = `klaus-agent (${platform()} ${release()}; ${arch()})`;
182
+ return {
183
+ "Authorization": `Bearer ${token}`,
184
+ "Content-Type": "application/json",
185
+ "Accept": "text/event-stream",
186
+ "chatgpt-account-id": accountId,
187
+ "originator": "klaus",
188
+ "OpenAI-Beta": "responses=experimental",
189
+ "User-Agent": userAgent,
190
+ };
191
+ }
192
+ function buildRequestBody(model, systemPrompt, messages, tools, thinkingLevel) {
193
+ const body = {
194
+ model,
195
+ store: false,
196
+ stream: true,
197
+ instructions: systemPrompt,
198
+ input: mapMessages(messages),
199
+ text: { verbosity: "medium" },
200
+ include: ["reasoning.encrypted_content"],
201
+ tool_choice: "auto",
202
+ parallel_tool_calls: true,
203
+ };
204
+ if (tools?.length) {
205
+ body.tools = mapTools(tools);
206
+ }
207
+ const effort = mapReasoningEffort(model, thinkingLevel);
208
+ if (effort) {
209
+ body.reasoning = { effort, summary: "auto" };
210
+ }
211
+ return body;
212
+ }
213
+ function mapMessages(messages) {
214
+ const input = [];
215
+ for (const m of messages) {
216
+ if (m.role === "user") {
217
+ const content = [];
218
+ if (typeof m.content === "string") {
219
+ content.push({ type: "input_text", text: m.content });
220
+ }
221
+ else {
222
+ for (const block of m.content) {
223
+ if (block.type === "text") {
224
+ content.push({ type: "input_text", text: block.text });
225
+ }
226
+ else if (block.type === "image") {
227
+ const url = block.source.type === "url"
228
+ ? block.source.url
229
+ : `data:${block.source.mediaType};base64,${block.source.data}`;
230
+ content.push({ type: "input_image", image_url: url });
231
+ }
232
+ }
233
+ }
234
+ input.push({ type: "message", role: "user", content });
235
+ }
236
+ else if (m.role === "assistant") {
237
+ const content = [];
238
+ for (const block of m.content) {
239
+ if (block.type === "text") {
240
+ content.push({ type: "output_text", text: block.text });
241
+ }
242
+ else if (block.type === "tool_call") {
243
+ // Flush accumulated text before the tool call
244
+ if (content.length > 0) {
245
+ input.push({ type: "message", role: "assistant", content: [...content] });
246
+ content.length = 0;
247
+ }
248
+ input.push({
249
+ type: "function_call",
250
+ id: block.id,
251
+ call_id: block.id,
252
+ name: block.name,
253
+ arguments: JSON.stringify(block.input),
254
+ });
255
+ }
256
+ }
257
+ // Remaining text content
258
+ if (content.length > 0) {
259
+ input.push({ type: "message", role: "assistant", content });
260
+ }
261
+ }
262
+ else if (m.role === "tool_result") {
263
+ const output = typeof m.content === "string"
264
+ ? m.content
265
+ : m.content.map((b) => b.type === "text" ? b.text : JSON.stringify(b)).join("\n");
266
+ input.push({
267
+ type: "function_call_output",
268
+ call_id: m.toolCallId,
269
+ output,
270
+ });
271
+ }
272
+ }
273
+ return input;
274
+ }
275
+ function mapTools(tools) {
276
+ return tools.map((t) => ({
277
+ type: "function",
278
+ name: t.name,
279
+ description: t.description,
280
+ parameters: t.inputSchema,
281
+ strict: null,
282
+ }));
283
+ }
284
+ function mapReasoningEffort(modelId, level) {
285
+ if (!level || level === "off")
286
+ return undefined;
287
+ let effort = level;
288
+ // Clamp per model, following pi-mono's logic
289
+ const id = modelId.includes("/") ? modelId.split("/").pop() : modelId;
290
+ if ((id.startsWith("gpt-5.2") || id.startsWith("gpt-5.3") || id.startsWith("gpt-5.4")) && effort === "minimal") {
291
+ effort = "low";
292
+ }
293
+ if (id === "gpt-5.1" && effort === "xhigh")
294
+ effort = "high";
295
+ if (id === "gpt-5.1-codex-mini") {
296
+ effort = effort === "high" || effort === "xhigh" ? "high" : "medium";
297
+ }
298
+ return effort;
299
+ }
300
+ // --- SSE parsing ---
301
+ async function* parseSSE(response) {
302
+ if (!response.body)
303
+ return;
304
+ const reader = response.body.getReader();
305
+ const decoder = new TextDecoder();
306
+ let buffer = "";
307
+ try {
308
+ while (true) {
309
+ const { done, value } = await reader.read();
310
+ if (done)
311
+ break;
312
+ buffer += decoder.decode(value, { stream: true });
313
+ let idx = buffer.indexOf("\n\n");
314
+ while (idx !== -1) {
315
+ const chunk = buffer.slice(0, idx);
316
+ buffer = buffer.slice(idx + 2);
317
+ const dataLines = chunk
318
+ .split("\n")
319
+ .filter((l) => l.startsWith("data:"))
320
+ .map((l) => l.slice(5).trim());
321
+ if (dataLines.length > 0) {
322
+ const data = dataLines.join("\n").trim();
323
+ if (data && data !== "[DONE]") {
324
+ try {
325
+ yield JSON.parse(data);
326
+ }
327
+ catch { /* skip malformed JSON */ }
328
+ }
329
+ }
330
+ idx = buffer.indexOf("\n\n");
331
+ }
332
+ }
333
+ }
334
+ finally {
335
+ try {
336
+ await reader.cancel();
337
+ }
338
+ catch { /* ignore */ }
339
+ try {
340
+ reader.releaseLock();
341
+ }
342
+ catch { /* ignore */ }
343
+ }
344
+ }
345
+ // --- Event mapping ---
346
+ async function* mapCodexEvents(events) {
347
+ for await (const event of events) {
348
+ const type = typeof event.type === "string" ? event.type : undefined;
349
+ if (!type)
350
+ continue;
351
+ if (type === "error") {
352
+ const code = event.code || "";
353
+ const message = event.message || "";
354
+ throw new Error(`Codex error: ${message || code || JSON.stringify(event)}`);
355
+ }
356
+ if (type === "response.failed") {
357
+ const msg = event.response?.error?.message;
358
+ throw new Error(msg || "Codex response failed");
359
+ }
360
+ // Normalize completion events
361
+ if (type === "response.done" || type === "response.completed" || type === "response.incomplete") {
362
+ yield { ...event, type: "response.completed" };
363
+ return;
364
+ }
365
+ yield event;
366
+ }
367
+ }
368
+ // --- Error handling ---
369
+ function isRetryableStatus(status, errorText) {
370
+ if (status === 429 || status === 500 || status === 502 || status === 503 || status === 504)
371
+ return true;
372
+ return /rate.?limit|overloaded|service.?unavailable|upstream.?connect|connection.?refused/i.test(errorText);
373
+ }
374
+ function parseErrorMessage(status, raw) {
375
+ try {
376
+ const parsed = JSON.parse(raw);
377
+ const err = parsed?.error;
378
+ if (err) {
379
+ if (/usage_limit_reached|usage_not_included|rate_limit_exceeded/i.test(err.code || err.type || "")) {
380
+ const plan = err.plan_type ? ` (${err.plan_type.toLowerCase()} plan)` : "";
381
+ const mins = err.resets_at
382
+ ? Math.max(0, Math.round((err.resets_at * 1000 - Date.now()) / 60000))
383
+ : undefined;
384
+ const when = mins !== undefined ? ` Try again in ~${mins} min.` : "";
385
+ return `ChatGPT usage limit reached${plan}.${when}`.trim();
386
+ }
387
+ return err.message || raw;
388
+ }
389
+ }
390
+ catch { /* not JSON */ }
391
+ return `Codex request failed (${status}): ${raw.slice(0, 200)}`;
392
+ }
393
+ function sleep(ms, signal) {
394
+ return new Promise((resolve, reject) => {
395
+ if (signal?.aborted) {
396
+ reject(new Error("Request was aborted"));
397
+ return;
398
+ }
399
+ const onAbort = () => { clearTimeout(timeout); reject(new Error("Request was aborted")); };
400
+ const timeout = setTimeout(() => { signal?.removeEventListener("abort", onAbort); resolve(); }, ms);
401
+ signal?.addEventListener("abort", onAbort);
402
+ });
403
+ }
404
+ //# sourceMappingURL=openai-codex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai-codex.js","sourceRoot":"","sources":["../../src/providers/openai-codex.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ export const RETRYABLE_PATTERNS = {
5
5
  anthropic: [...COMMON_RETRYABLE, "rate_limit", "overloaded", "529"],
6
6
  openai: [...COMMON_RETRYABLE, "rate_limit"],
7
7
  google: [...COMMON_RETRYABLE],
8
+ codex: [...COMMON_RETRYABLE, "rate_limit", "usage_limit", "overloaded"],
8
9
  };
9
10
  export function isRetryableError(error, patterns) {
10
11
  return patterns.some((p) => error.message.includes(p));
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/providers/shared.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAI/C,mDAAmD;AACnD,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;AAE7D,MAAM,CAAC,MAAM,kBAAkB,GAA6B;IAC1D,SAAS,EAAE,CAAC,GAAG,gBAAgB,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,CAAC;IACnE,MAAM,EAAE,CAAC,GAAG,gBAAgB,EAAE,YAAY,CAAC;IAC3C,MAAM,EAAE,CAAC,GAAG,gBAAgB,CAAC;CAC9B,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,KAAY,EAAE,QAAkB;IAC/D,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACzD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,SAAS,CAC9B,UAAsD,EACtD,iBAA2B,EAC3B,UAAU,GAAG,CAAC;IAEd,IAAI,SAAS,GAAiB,IAAI,CAAC;IAEnC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;QACvD,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAC9D,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,CAAC;YACH,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,SAAS,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAEhE,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,iBAAiB,CAAC,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;gBAC9E,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;gBAC1C,OAAO;YACT,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,iBAAiB,CAAC,KAAqB;IACrD,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,KAAK;QAAE,OAAO,SAAS,CAAC;IAChD,MAAM,OAAO,GAA2B;QACtC,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,IAAI;QACT,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,KAAK;KACb,CAAC;IACF,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/providers/shared.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAI/C,mDAAmD;AACnD,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;AAE7D,MAAM,CAAC,MAAM,kBAAkB,GAA6B;IAC1D,SAAS,EAAE,CAAC,GAAG,gBAAgB,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,CAAC;IACnE,MAAM,EAAE,CAAC,GAAG,gBAAgB,EAAE,YAAY,CAAC;IAC3C,MAAM,EAAE,CAAC,GAAG,gBAAgB,CAAC;IAC7B,KAAK,EAAE,CAAC,GAAG,gBAAgB,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,CAAC;CACxE,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,KAAY,EAAE,QAAkB;IAC/D,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACzD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,SAAS,CAC9B,UAAsD,EACtD,iBAA2B,EAC3B,UAAU,GAAG,CAAC;IAEd,IAAI,SAAS,GAAiB,IAAI,CAAC;IAEnC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;QACvD,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAC9D,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,CAAC;YACH,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,SAAS,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAEhE,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,iBAAiB,CAAC,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;gBAC9E,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;gBAC1C,OAAO;YACT,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,iBAAiB,CAAC,KAAqB;IACrD,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,KAAK;QAAE,OAAO,SAAS,CAAC;IAChD,MAAM,OAAO,GAA2B;QACtC,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,IAAI;QACT,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,KAAK;KACb,CAAC;IACF,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;AACxB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "klaus-agent",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "Universal agent framework",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -2,6 +2,7 @@
2
2
 
3
3
  import { AnthropicProvider } from "../providers/anthropic.js";
4
4
  import { OpenAIProvider } from "../providers/openai.js";
5
+ import { OpenAICodexProvider } from "../providers/openai-codex.js";
5
6
  import { GeminiProvider } from "../providers/google.js";
6
7
  import { MiniMaxProvider } from "../providers/minimax.js";
7
8
  import { KimiProvider } from "../providers/kimi.js";
@@ -13,6 +14,7 @@ const providers = new Map<string, LLMProviderFactory>();
13
14
  // Built-in providers
14
15
  providers.set("anthropic", (c) => new AnthropicProvider(c.apiKey, c.baseUrl));
15
16
  providers.set("openai", (c) => new OpenAIProvider(c.apiKey, c.baseUrl));
17
+ providers.set("openai-codex", (c) => new OpenAICodexProvider(c.apiKey, c.baseUrl));
16
18
  providers.set("google", (c) => new GeminiProvider(c.apiKey, c.baseUrl));
17
19
  providers.set("minimax", (c) => new MiniMaxProvider(c.apiKey, c.baseUrl));
18
20
  providers.set("kimi", (c) => new KimiProvider(c.apiKey, c.baseUrl));
@@ -1,5 +1,6 @@
1
1
  export { AnthropicProvider } from "./anthropic.js";
2
2
  export { OpenAIProvider } from "./openai.js";
3
+ export { OpenAICodexProvider } from "./openai-codex.js";
3
4
  export { GeminiProvider } from "./google.js";
4
5
  export { MiniMaxProvider } from "./minimax.js";
5
6
  export { KimiProvider } from "./kimi.js";