@kenkaiiii/gg-ai 0.0.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.
Files changed (41) hide show
  1. package/dist/errors.d.ts +12 -0
  2. package/dist/errors.d.ts.map +1 -0
  3. package/dist/errors.js +17 -0
  4. package/dist/errors.js.map +1 -0
  5. package/dist/index.d.ts +5 -0
  6. package/dist/index.d.ts.map +1 -0
  7. package/dist/index.js +6 -0
  8. package/dist/index.js.map +1 -0
  9. package/dist/providers/anthropic.d.ts +4 -0
  10. package/dist/providers/anthropic.d.ts.map +1 -0
  11. package/dist/providers/anthropic.js +128 -0
  12. package/dist/providers/anthropic.js.map +1 -0
  13. package/dist/providers/openai-codex.d.ts +4 -0
  14. package/dist/providers/openai-codex.d.ts.map +1 -0
  15. package/dist/providers/openai-codex.js +325 -0
  16. package/dist/providers/openai-codex.js.map +1 -0
  17. package/dist/providers/openai.d.ts +4 -0
  18. package/dist/providers/openai.d.ts.map +1 -0
  19. package/dist/providers/openai.js +138 -0
  20. package/dist/providers/openai.js.map +1 -0
  21. package/dist/providers/transform.d.ts +20 -0
  22. package/dist/providers/transform.d.ts.map +1 -0
  23. package/dist/providers/transform.js +206 -0
  24. package/dist/providers/transform.js.map +1 -0
  25. package/dist/stream.d.ts +19 -0
  26. package/dist/stream.d.ts.map +1 -0
  27. package/dist/stream.js +34 -0
  28. package/dist/stream.js.map +1 -0
  29. package/dist/types.d.ts +111 -0
  30. package/dist/types.d.ts.map +1 -0
  31. package/dist/types.js +2 -0
  32. package/dist/types.js.map +1 -0
  33. package/dist/utils/event-stream.d.ts +37 -0
  34. package/dist/utils/event-stream.d.ts.map +1 -0
  35. package/dist/utils/event-stream.js +86 -0
  36. package/dist/utils/event-stream.js.map +1 -0
  37. package/dist/utils/zod-to-json-schema.d.ts +7 -0
  38. package/dist/utils/zod-to-json-schema.d.ts.map +1 -0
  39. package/dist/utils/zod-to-json-schema.js +12 -0
  40. package/dist/utils/zod-to-json-schema.js.map +1 -0
  41. package/package.json +37 -0
@@ -0,0 +1,12 @@
1
+ export declare class GGAIError extends Error {
2
+ constructor(message: string, options?: ErrorOptions);
3
+ }
4
+ export declare class ProviderError extends GGAIError {
5
+ readonly provider: string;
6
+ readonly statusCode?: number;
7
+ constructor(provider: string, message: string, options?: {
8
+ statusCode?: number;
9
+ cause?: unknown;
10
+ });
11
+ }
12
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,SAAU,SAAQ,KAAK;gBACtB,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;CAIpD;AAED,qBAAa,aAAc,SAAQ,SAAS;IAC1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;gBAG3B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAOrD"}
package/dist/errors.js ADDED
@@ -0,0 +1,17 @@
1
+ export class GGAIError extends Error {
2
+ constructor(message, options) {
3
+ super(message, options);
4
+ this.name = "GGAIError";
5
+ }
6
+ }
7
+ export class ProviderError extends GGAIError {
8
+ provider;
9
+ statusCode;
10
+ constructor(provider, message, options) {
11
+ super(`[${provider}] ${message}`, { cause: options?.cause });
12
+ this.name = "ProviderError";
13
+ this.provider = provider;
14
+ this.statusCode = options?.statusCode;
15
+ }
16
+ }
17
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,SAAU,SAAQ,KAAK;IAClC,YAAY,OAAe,EAAE,OAAsB;QACjD,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;IAC1B,CAAC;CACF;AAED,MAAM,OAAO,aAAc,SAAQ,SAAS;IACjC,QAAQ,CAAS;IACjB,UAAU,CAAU;IAE7B,YACE,QAAgB,EAChB,OAAe,EACf,OAAkD;QAElD,KAAK,CAAC,IAAI,QAAQ,KAAK,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,OAAO,EAAE,UAAU,CAAC;IACxC,CAAC;CACF"}
@@ -0,0 +1,5 @@
1
+ export { stream } from "./stream.js";
2
+ export type { Provider, ThinkingLevel, TextContent, ThinkingContent, ImageContent, ToolCall, ToolResult, ContentPart, SystemMessage, UserMessage, AssistantMessage, ToolResultMessage, Message, Tool, ToolChoice, TextDeltaEvent, ThinkingDeltaEvent, ToolCallDeltaEvent, ToolCallDoneEvent, DoneEvent, ErrorEvent, StreamEvent, StopReason, StreamResponse, Usage, StreamOptions, } from "./types.js";
3
+ export { StreamResult, EventStream } from "./utils/event-stream.js";
4
+ export { GGAIError, ProviderError } from "./errors.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,YAAY,EACV,QAAQ,EACR,aAAa,EACb,WAAW,EACX,eAAe,EACf,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,WAAW,EACX,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,OAAO,EACP,IAAI,EACJ,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,SAAS,EACT,UAAU,EACV,WAAW,EACX,UAAU,EACV,cAAc,EACd,KAAK,EACL,aAAa,GACd,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,6 @@
1
+ // Core entry point
2
+ export { stream } from "./stream.js";
3
+ // Classes
4
+ export { StreamResult, EventStream } from "./utils/event-stream.js";
5
+ export { GGAIError, ProviderError } from "./errors.js";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,mBAAmB;AACnB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAgCrC,UAAU;AACV,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { StreamOptions } from "../types.js";
2
+ import { StreamResult } from "../utils/event-stream.js";
3
+ export declare function streamAnthropic(options: StreamOptions): StreamResult;
4
+ //# sourceMappingURL=anthropic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAe,aAAa,EAA4B,MAAM,aAAa,CAAC;AAExF,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AASxD,wBAAgB,eAAe,CAAC,OAAO,EAAE,aAAa,GAAG,YAAY,CAIpE"}
@@ -0,0 +1,128 @@
1
+ import Anthropic from "@anthropic-ai/sdk";
2
+ import { ProviderError } from "../errors.js";
3
+ import { StreamResult } from "../utils/event-stream.js";
4
+ import { normalizeAnthropicStopReason, toAnthropicMessages, toAnthropicThinking, toAnthropicToolChoice, toAnthropicTools, } from "./transform.js";
5
+ export function streamAnthropic(options) {
6
+ const result = new StreamResult();
7
+ runStream(options, result).catch((err) => result.abort(toError(err)));
8
+ return result;
9
+ }
10
+ async function runStream(options, result) {
11
+ const isOAuth = options.apiKey?.startsWith("sk-ant-oat");
12
+ const client = new Anthropic({
13
+ ...(isOAuth
14
+ ? { apiKey: null, authToken: options.apiKey }
15
+ : { apiKey: options.apiKey }),
16
+ ...(options.baseUrl ? { baseURL: options.baseUrl } : {}),
17
+ ...(isOAuth ? { defaultHeaders: { "anthropic-beta": "oauth-2025-04-20" } } : {}),
18
+ });
19
+ const { system, messages } = toAnthropicMessages(options.messages);
20
+ let maxTokens = options.maxTokens ?? 4096;
21
+ let thinking;
22
+ if (options.thinking) {
23
+ const t = toAnthropicThinking(options.thinking, maxTokens);
24
+ thinking = t.thinking;
25
+ maxTokens = t.maxTokens;
26
+ }
27
+ const params = {
28
+ model: options.model,
29
+ max_tokens: maxTokens,
30
+ messages,
31
+ ...(system ? { system } : {}),
32
+ ...(thinking ? { thinking } : {}),
33
+ ...(options.temperature != null && !thinking ? { temperature: options.temperature } : {}),
34
+ ...(options.topP != null ? { top_p: options.topP } : {}),
35
+ ...(options.stop ? { stop_sequences: options.stop } : {}),
36
+ ...(options.tools?.length ? { tools: toAnthropicTools(options.tools) } : {}),
37
+ ...(options.toolChoice && options.tools?.length
38
+ ? { tool_choice: toAnthropicToolChoice(options.toolChoice) }
39
+ : {}),
40
+ stream: true,
41
+ };
42
+ const stream = client.messages.stream(params, {
43
+ signal: options.signal ?? undefined,
44
+ });
45
+ const contentParts = [];
46
+ // Track the current tool call being streamed (by content block index)
47
+ let currentToolId = "";
48
+ let currentToolName = "";
49
+ stream.on("text", (text) => {
50
+ result.push({ type: "text_delta", text });
51
+ });
52
+ stream.on("thinking", (thinkingDelta) => {
53
+ result.push({ type: "thinking_delta", text: thinkingDelta });
54
+ });
55
+ stream.on("streamEvent", (event) => {
56
+ // When a new tool_use content block starts, capture its id and name
57
+ if (event.type === "content_block_start" && event.content_block.type === "tool_use") {
58
+ currentToolId = event.content_block.id;
59
+ currentToolName = event.content_block.name;
60
+ }
61
+ });
62
+ stream.on("inputJson", (delta) => {
63
+ result.push({
64
+ type: "toolcall_delta",
65
+ id: currentToolId,
66
+ name: currentToolName,
67
+ argsJson: delta,
68
+ });
69
+ });
70
+ stream.on("contentBlock", (block) => {
71
+ if (block.type === "text") {
72
+ contentParts.push({ type: "text", text: block.text });
73
+ }
74
+ else if (block.type === "thinking") {
75
+ contentParts.push({ type: "thinking", text: block.thinking });
76
+ }
77
+ else if (block.type === "tool_use") {
78
+ const tc = {
79
+ type: "tool_call",
80
+ id: block.id,
81
+ name: block.name,
82
+ args: block.input,
83
+ };
84
+ contentParts.push(tc);
85
+ result.push({
86
+ type: "toolcall_done",
87
+ id: tc.id,
88
+ name: tc.name,
89
+ args: tc.args,
90
+ });
91
+ }
92
+ });
93
+ try {
94
+ const finalMessage = await stream.finalMessage();
95
+ const stopReason = normalizeAnthropicStopReason(finalMessage.stop_reason);
96
+ const response = {
97
+ message: {
98
+ role: "assistant",
99
+ content: contentParts.length > 0 ? contentParts : "",
100
+ },
101
+ stopReason,
102
+ usage: {
103
+ inputTokens: finalMessage.usage.input_tokens,
104
+ outputTokens: finalMessage.usage.output_tokens,
105
+ },
106
+ };
107
+ result.push({ type: "done", stopReason });
108
+ result.complete(response);
109
+ }
110
+ catch (err) {
111
+ const error = toError(err);
112
+ result.push({ type: "error", error });
113
+ result.abort(error);
114
+ }
115
+ }
116
+ function toError(err) {
117
+ if (err instanceof Anthropic.APIError) {
118
+ return new ProviderError("anthropic", err.message, {
119
+ statusCode: err.status,
120
+ cause: err,
121
+ });
122
+ }
123
+ if (err instanceof Error) {
124
+ return new ProviderError("anthropic", err.message, { cause: err });
125
+ }
126
+ return new ProviderError("anthropic", String(err));
127
+ }
128
+ //# sourceMappingURL=anthropic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EACL,4BAA4B,EAC5B,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AAExB,MAAM,UAAU,eAAe,CAAC,OAAsB;IACpD,MAAM,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;IAClC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACtE,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,OAAsB,EAAE,MAAoB;IACnE,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,GAAG,CAAC,OAAO;YACT,CAAC,CAAC,EAAE,MAAM,EAAE,IAAyB,EAAE,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE;YAClE,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QAC/B,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACjF,CAAC,CAAC;IAEH,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEnE,IAAI,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC;IAC1C,IAAI,QAAgE,CAAC;IAErE,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,mBAAmB,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAC3D,QAAQ,GAAG,CAAC,CAAC,QAAsD,CAAC;QACpE,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,MAAM,MAAM,GAAkC;QAC5C,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,UAAU,EAAE,SAAS;QACrB,QAAQ;QACR,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7B,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,GAAG,CAAC,OAAO,CAAC,WAAW,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzF,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,KAAK,EAAE,MAAM;YAC7C,CAAC,CAAC,EAAE,WAAW,EAAE,qBAAqB,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YAC5D,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,EAAE,IAAI;KACb,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE;QAC5C,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,SAAS;KACpC,CAAC,CAAC;IAEH,MAAM,YAAY,GAAkB,EAAE,CAAC;IACvC,sEAAsE;IACtE,IAAI,aAAa,GAAG,EAAE,CAAC;IACvB,IAAI,eAAe,GAAG,EAAE,CAAC;IAEzB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QACzB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,aAAa,EAAE,EAAE;QACtC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE;QACjC,oEAAoE;QACpE,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB,IAAI,KAAK,CAAC,aAAa,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACpF,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;YACvC,eAAe,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC;QAC7C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE;QAC/B,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,gBAAgB;YACtB,EAAE,EAAE,aAAa;YACjB,IAAI,EAAE,eAAe;YACrB,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,EAAE;QAClC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC1B,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACxD,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACrC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChE,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACrC,MAAM,EAAE,GAAa;gBACnB,IAAI,EAAE,WAAW;gBACjB,EAAE,EAAE,KAAK,CAAC,EAAE;gBACZ,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,IAAI,EAAE,KAAK,CAAC,KAAgC;aAC7C,CAAC;YACF,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,eAAe;gBACrB,EAAE,EAAE,EAAE,CAAC,EAAE;gBACT,IAAI,EAAE,EAAE,CAAC,IAAI;gBACb,IAAI,EAAE,EAAE,CAAC,IAAI;aACd,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,YAAY,EAAE,CAAC;QACjD,MAAM,UAAU,GAAG,4BAA4B,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QAE1E,MAAM,QAAQ,GAAmB;YAC/B,OAAO,EAAE;gBACP,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE;aACrD;YACD,UAAU;YACV,KAAK,EAAE;gBACL,WAAW,EAAE,YAAY,CAAC,KAAK,CAAC,YAAY;gBAC5C,YAAY,EAAE,YAAY,CAAC,KAAK,CAAC,aAAa;aAC/C;SACF,CAAC;QAEF,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;QAC1C,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC3B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QACtC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CAAC,GAAY;IAC3B,IAAI,GAAG,YAAY,SAAS,CAAC,QAAQ,EAAE,CAAC;QACtC,OAAO,IAAI,aAAa,CAAC,WAAW,EAAE,GAAG,CAAC,OAAO,EAAE;YACjD,UAAU,EAAE,GAAG,CAAC,MAAM;YACtB,KAAK,EAAE,GAAG;SACX,CAAC,CAAC;IACL,CAAC;IACD,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;QACzB,OAAO,IAAI,aAAa,CAAC,WAAW,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,IAAI,aAAa,CAAC,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AACrD,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { StreamOptions } from "../types.js";
2
+ import { StreamResult } from "../utils/event-stream.js";
3
+ export declare function streamOpenAICodex(options: StreamOptions): StreamResult;
4
+ //# sourceMappingURL=openai-codex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai-codex.d.ts","sourceRoot":"","sources":["../../src/providers/openai-codex.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAGV,aAAa,EAId,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAKxD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,aAAa,GAAG,YAAY,CAItE"}
@@ -0,0 +1,325 @@
1
+ import os from "node:os";
2
+ import { ProviderError } from "../errors.js";
3
+ import { StreamResult } from "../utils/event-stream.js";
4
+ import { zodToJsonSchema } from "../utils/zod-to-json-schema.js";
5
+ const DEFAULT_BASE_URL = "https://chatgpt.com/backend-api";
6
+ export function streamOpenAICodex(options) {
7
+ const result = new StreamResult();
8
+ runStream(options, result).catch((err) => result.abort(toError(err)));
9
+ return result;
10
+ }
11
+ async function runStream(options, result) {
12
+ const baseUrl = (options.baseUrl || DEFAULT_BASE_URL).replace(/\/+$/, "");
13
+ const url = `${baseUrl}/codex/responses`;
14
+ const { system, input } = toCodexInput(options.messages);
15
+ const body = {
16
+ model: options.model,
17
+ store: false,
18
+ stream: true,
19
+ instructions: system,
20
+ input,
21
+ tool_choice: "auto",
22
+ parallel_tool_calls: true,
23
+ include: ["reasoning.encrypted_content"],
24
+ };
25
+ if (options.tools?.length) {
26
+ body.tools = toCodexTools(options.tools);
27
+ }
28
+ if (options.temperature != null && !options.thinking) {
29
+ body.temperature = options.temperature;
30
+ }
31
+ if (options.thinking) {
32
+ body.reasoning = {
33
+ effort: options.thinking,
34
+ summary: "auto",
35
+ };
36
+ }
37
+ const headers = {
38
+ "Content-Type": "application/json",
39
+ Accept: "text/event-stream",
40
+ Authorization: `Bearer ${options.apiKey}`,
41
+ "OpenAI-Beta": "responses=experimental",
42
+ originator: "ggcoder",
43
+ "User-Agent": `ggcoder (${os.platform()} ${os.release()}; ${os.arch()})`,
44
+ };
45
+ if (options.accountId) {
46
+ headers["chatgpt-account-id"] = options.accountId;
47
+ }
48
+ const response = await fetch(url, {
49
+ method: "POST",
50
+ headers,
51
+ body: JSON.stringify(body),
52
+ signal: options.signal,
53
+ });
54
+ if (!response.ok) {
55
+ const text = await response.text().catch(() => "");
56
+ throw new ProviderError("openai", `Codex API error (${response.status}): ${text}`, {
57
+ statusCode: response.status,
58
+ });
59
+ }
60
+ if (!response.body) {
61
+ throw new ProviderError("openai", "No response body from Codex API");
62
+ }
63
+ const contentParts = [];
64
+ let textAccum = "";
65
+ const toolCalls = new Map();
66
+ let inputTokens = 0;
67
+ let outputTokens = 0;
68
+ for await (const event of parseSSE(response.body)) {
69
+ const type = event.type;
70
+ if (!type)
71
+ continue;
72
+ if (type === "error") {
73
+ const msg = event.message || JSON.stringify(event);
74
+ throw new ProviderError("openai", `Codex error: ${msg}`);
75
+ }
76
+ if (type === "response.failed") {
77
+ const msg = event.error?.message || "Codex response failed";
78
+ throw new ProviderError("openai", msg);
79
+ }
80
+ // Text delta
81
+ if (type === "response.output_text.delta") {
82
+ const delta = event.delta;
83
+ textAccum += delta;
84
+ result.push({ type: "text_delta", text: delta });
85
+ }
86
+ // Thinking delta
87
+ if (type === "response.reasoning_summary_text.delta") {
88
+ const delta = event.delta;
89
+ result.push({ type: "thinking_delta", text: delta });
90
+ }
91
+ // Tool call started
92
+ if (type === "response.output_item.added") {
93
+ const item = event.item;
94
+ if (item?.type === "function_call") {
95
+ const callId = item.call_id;
96
+ const itemId = item.id;
97
+ const id = `${callId}|${itemId}`;
98
+ const name = item.name;
99
+ toolCalls.set(id, { id, name, argsJson: item.arguments || "" });
100
+ }
101
+ }
102
+ // Tool call arguments delta
103
+ if (type === "response.function_call_arguments.delta") {
104
+ const delta = event.delta;
105
+ const itemId = event.item_id;
106
+ // Find the matching tool call
107
+ for (const [key, tc] of toolCalls) {
108
+ if (key.endsWith(`|${itemId}`)) {
109
+ tc.argsJson += delta;
110
+ result.push({
111
+ type: "toolcall_delta",
112
+ id: tc.id,
113
+ name: tc.name,
114
+ argsJson: delta,
115
+ });
116
+ break;
117
+ }
118
+ }
119
+ }
120
+ // Tool call arguments done
121
+ if (type === "response.function_call_arguments.done") {
122
+ const itemId = event.item_id;
123
+ const argsStr = event.arguments;
124
+ for (const [key, tc] of toolCalls) {
125
+ if (key.endsWith(`|${itemId}`)) {
126
+ tc.argsJson = argsStr;
127
+ break;
128
+ }
129
+ }
130
+ }
131
+ // Item done — finalize tool call
132
+ if (type === "response.output_item.done") {
133
+ const item = event.item;
134
+ if (item?.type === "function_call") {
135
+ const callId = item.call_id;
136
+ const itemId = item.id;
137
+ const id = `${callId}|${itemId}`;
138
+ const tc = toolCalls.get(id);
139
+ if (tc) {
140
+ let args = {};
141
+ try {
142
+ args = JSON.parse(tc.argsJson);
143
+ }
144
+ catch {
145
+ /* malformed JSON */
146
+ }
147
+ result.push({
148
+ type: "toolcall_done",
149
+ id: tc.id,
150
+ name: tc.name,
151
+ args,
152
+ });
153
+ }
154
+ }
155
+ }
156
+ // Response completed
157
+ if (type === "response.completed" || type === "response.done") {
158
+ const resp = event.response;
159
+ const usage = resp?.usage;
160
+ if (usage) {
161
+ inputTokens = usage.input_tokens ?? 0;
162
+ outputTokens = usage.output_tokens ?? 0;
163
+ }
164
+ }
165
+ }
166
+ // Finalize content parts
167
+ if (textAccum) {
168
+ contentParts.push({ type: "text", text: textAccum });
169
+ }
170
+ for (const [, tc] of toolCalls) {
171
+ let args = {};
172
+ try {
173
+ args = JSON.parse(tc.argsJson);
174
+ }
175
+ catch {
176
+ /* malformed JSON */
177
+ }
178
+ const toolCall = {
179
+ type: "tool_call",
180
+ id: tc.id,
181
+ name: tc.name,
182
+ args,
183
+ };
184
+ contentParts.push(toolCall);
185
+ }
186
+ const hasToolCalls = contentParts.some((p) => p.type === "tool_call");
187
+ const stopReason = hasToolCalls ? "tool_use" : "end_turn";
188
+ const streamResponse = {
189
+ message: {
190
+ role: "assistant",
191
+ content: contentParts.length > 0 ? contentParts : textAccum || "",
192
+ },
193
+ stopReason,
194
+ usage: { inputTokens, outputTokens },
195
+ };
196
+ result.push({ type: "done", stopReason });
197
+ result.complete(streamResponse);
198
+ }
199
+ // ── SSE Parser ─────────────────────────────────────────────
200
+ async function* parseSSE(body) {
201
+ const reader = body.getReader();
202
+ const decoder = new TextDecoder();
203
+ let buffer = "";
204
+ while (true) {
205
+ const { done, value } = await reader.read();
206
+ if (done)
207
+ break;
208
+ buffer += decoder.decode(value, { stream: true });
209
+ let idx = buffer.indexOf("\n\n");
210
+ while (idx !== -1) {
211
+ const chunk = buffer.slice(0, idx);
212
+ buffer = buffer.slice(idx + 2);
213
+ const dataLines = chunk
214
+ .split("\n")
215
+ .filter((l) => l.startsWith("data:"))
216
+ .map((l) => l.slice(5).trim());
217
+ if (dataLines.length > 0) {
218
+ const data = dataLines.join("\n").trim();
219
+ if (data && data !== "[DONE]") {
220
+ try {
221
+ yield JSON.parse(data);
222
+ }
223
+ catch {
224
+ // skip malformed JSON
225
+ }
226
+ }
227
+ }
228
+ idx = buffer.indexOf("\n\n");
229
+ }
230
+ }
231
+ }
232
+ // ── Message Conversion ─────────────────────────────────────
233
+ function toCodexInput(messages) {
234
+ let system;
235
+ const input = [];
236
+ for (const msg of messages) {
237
+ if (msg.role === "system") {
238
+ system = msg.content;
239
+ continue;
240
+ }
241
+ if (msg.role === "user") {
242
+ const content = typeof msg.content === "string"
243
+ ? [{ type: "input_text", text: msg.content }]
244
+ : msg.content.map((part) => {
245
+ if (part.type === "text")
246
+ return { type: "input_text", text: part.text };
247
+ return {
248
+ type: "input_image",
249
+ detail: "auto",
250
+ image_url: `data:${part.mediaType};base64,${part.data}`,
251
+ };
252
+ });
253
+ input.push({ role: "user", content });
254
+ continue;
255
+ }
256
+ if (msg.role === "assistant") {
257
+ if (typeof msg.content === "string") {
258
+ input.push({
259
+ type: "message",
260
+ role: "assistant",
261
+ content: [{ type: "output_text", text: msg.content, annotations: [] }],
262
+ status: "completed",
263
+ });
264
+ continue;
265
+ }
266
+ for (const part of msg.content) {
267
+ if (part.type === "text") {
268
+ input.push({
269
+ type: "message",
270
+ role: "assistant",
271
+ content: [{ type: "output_text", text: part.text, annotations: [] }],
272
+ status: "completed",
273
+ });
274
+ }
275
+ else if (part.type === "tool_call") {
276
+ const [callId, itemId] = part.id.includes("|")
277
+ ? part.id.split("|", 2)
278
+ : [part.id, part.id];
279
+ input.push({
280
+ type: "function_call",
281
+ id: itemId,
282
+ call_id: callId,
283
+ name: part.name,
284
+ arguments: JSON.stringify(part.args),
285
+ });
286
+ }
287
+ // thinking parts are skipped for codex input
288
+ }
289
+ continue;
290
+ }
291
+ if (msg.role === "tool") {
292
+ for (const result of msg.content) {
293
+ const [callId] = result.toolCallId.includes("|")
294
+ ? result.toolCallId.split("|", 2)
295
+ : [result.toolCallId];
296
+ input.push({
297
+ type: "function_call_output",
298
+ call_id: callId,
299
+ output: result.content,
300
+ });
301
+ }
302
+ }
303
+ }
304
+ return { system, input };
305
+ }
306
+ // ── Tool Conversion ────────────────────────────────────────
307
+ function toCodexTools(tools) {
308
+ return tools.map((tool) => ({
309
+ type: "function",
310
+ name: tool.name,
311
+ description: tool.description,
312
+ parameters: zodToJsonSchema(tool.parameters),
313
+ strict: null,
314
+ }));
315
+ }
316
+ // ── Error Handling ─────────────────────────────────────────
317
+ function toError(err) {
318
+ if (err instanceof ProviderError)
319
+ return err;
320
+ if (err instanceof Error) {
321
+ return new ProviderError("openai", err.message, { cause: err });
322
+ }
323
+ return new ProviderError("openai", String(err));
324
+ }
325
+ //# 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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"}
@@ -0,0 +1,4 @@
1
+ import type { StreamOptions } from "../types.js";
2
+ import { StreamResult } from "../utils/event-stream.js";
3
+ export declare function streamOpenAI(options: StreamOptions): StreamResult;
4
+ //# sourceMappingURL=openai.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAe,aAAa,EAA4B,MAAM,aAAa,CAAC;AAExF,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AASxD,wBAAgB,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,YAAY,CAIjE"}