pi-clawbay 0.0.20 → 0.0.22
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/README.md +20 -3
- package/dist/constants.d.ts +5 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +7 -0
- package/dist/constants.js.map +1 -1
- package/dist/image-generation.d.ts +4 -0
- package/dist/image-generation.d.ts.map +1 -0
- package/dist/image-generation.js +284 -0
- package/dist/image-generation.js.map +1 -0
- package/dist/models.d.ts +1 -0
- package/dist/models.d.ts.map +1 -1
- package/dist/models.js +16 -6
- package/dist/models.js.map +1 -1
- package/dist/transport.d.ts.map +1 -1
- package/dist/transport.js +5 -1
- package/dist/transport.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -7,6 +7,7 @@ A provider extension for [Pi Coding Agent](https://github.com/earendil-works/pi)
|
|
|
7
7
|
- **GPT-5 & Codex Models** - Access via Codex Responses API with session-based prompt cache
|
|
8
8
|
- **Single Provider** - Only `theclawbay` is registered
|
|
9
9
|
- **GPT-5.4 Split Options** - `gpt-5.4` and `gpt-5.4[1m]` for clearer cost/context choice
|
|
10
|
+
- **GPT Image 2** - Generate PNG images through TheClawBay's OpenAI-compatible Images endpoint
|
|
10
11
|
- **High Usage Headroom** - More capacity than standard subscriptions
|
|
11
12
|
- **Simple Setup** - Single API key
|
|
12
13
|
|
|
@@ -56,16 +57,21 @@ Model IDs are discovered dynamically at extension load from:
|
|
|
56
57
|
|
|
57
58
|
If discovery fails or `THECLAWBAY_API_KEY` is not set yet, the extension falls back to the last successful discovery cache, even if it is stale, then to a bundled default list so `/model` still works on startup. Live discovery refreshes the cache in the background after the provider has been registered.
|
|
58
59
|
|
|
59
|
-
Requests for `theclawbay/*` models are sent through TheClawBay's native Codex route:
|
|
60
|
+
Requests for `theclawbay/*` text and coding models are sent through TheClawBay's native Codex route:
|
|
60
61
|
|
|
61
62
|
- `https://api.theclawbay.com/backend-api/codex`
|
|
62
63
|
|
|
64
|
+
Requests for `theclawbay/gpt-image-2` are sent through TheClawBay's Codex Responses route with the hosted `image_generation` tool:
|
|
65
|
+
|
|
66
|
+
- `https://api.theclawbay.com/backend-api/codex/responses`
|
|
67
|
+
|
|
63
68
|
This extension uses a custom Responses transport for that route. It sends:
|
|
64
69
|
|
|
65
70
|
- `Authorization: Bearer $THECLAWBAY_API_KEY`
|
|
66
71
|
- `chatgpt-account-id: theclawbay`
|
|
67
72
|
- `session_id` when Pi provides a session id
|
|
68
73
|
- `prompt_cache_key` in the request body
|
|
74
|
+
- `tools: [{ type: "image_generation", model: "gpt-image-2", output_format: "png", size: "1024x1024", partial_images: 2 }]`
|
|
69
75
|
|
|
70
76
|
This avoids Pi's built-in `openai-codex-responses` JWT parsing path, which expects a ChatGPT/Codex-style token and can fail with `Failed to extract accountId from token` when given a normal TheClawBay API key.
|
|
71
77
|
|
|
@@ -98,6 +104,7 @@ Why split it?
|
|
|
98
104
|
- `gpt-5.4` is configured with a `272,000` token context window.
|
|
99
105
|
- `gpt-5.4[1m]` is configured with a `1,050,000` token context window.
|
|
100
106
|
- Current non-5.4 GPT-5/Codex variants default to `272,000` context and `128,000` max output tokens.
|
|
107
|
+
- `gpt-image-2` uses the Images API path with `1024x1024` PNG output, `272,000` context metadata, and `65,536` max output metadata.
|
|
101
108
|
|
|
102
109
|
### Example Model List
|
|
103
110
|
|
|
@@ -107,13 +114,14 @@ Current fallback list in this package:
|
|
|
107
114
|
- `gpt-5.4`
|
|
108
115
|
- `gpt-5.4[1m]`
|
|
109
116
|
- `gpt-5.4-mini`
|
|
117
|
+
- `gpt-image-2`
|
|
110
118
|
- `gpt-5.3-codex`
|
|
111
119
|
- `gpt-5.2-codex`
|
|
112
120
|
- `gpt-5.2`
|
|
113
121
|
- `gpt-5.1-codex-max`
|
|
114
122
|
- `gpt-5.1-codex-mini`
|
|
115
123
|
|
|
116
|
-
|
|
124
|
+
`gpt-image-2` is exposed because TheClawBay's latest npm setup marks it as an image generation model backed by `codex-lb`. The extension uses the hosted Responses image tool instead of the synchronous Images API because realistic 1024x1024 prompts can exceed the Images route socket window and fail as `fetch failed`. Other native image-generation models returned by discovery, such as `gpt-image-1.5`, remain hidden until this extension has a dedicated, tested flow for them.
|
|
117
125
|
|
|
118
126
|
## Usage
|
|
119
127
|
|
|
@@ -125,8 +133,11 @@ Use `/model` command in pi:
|
|
|
125
133
|
/model theclawbay/gpt-5.5
|
|
126
134
|
/model theclawbay/gpt-5.4
|
|
127
135
|
/model theclawbay/gpt-5.4[1m]
|
|
136
|
+
/model theclawbay/gpt-image-2
|
|
128
137
|
```
|
|
129
138
|
|
|
139
|
+
When `gpt-image-2` is selected, Pi receives a normal assistant message event sequence and the generated PNG is saved locally. Set `PI_CLAWBAY_IMAGE_DIR` to override the output directory; otherwise images are saved under Pi's generated-files directory. If TheClawBay sends partial images and the final image is unavailable, the latest partial PNG is saved instead of returning a socket-level failure.
|
|
140
|
+
|
|
130
141
|
### Commands
|
|
131
142
|
|
|
132
143
|
This extension currently registers:
|
|
@@ -152,6 +163,7 @@ export default function (pi: ExtensionAPI) {
|
|
|
152
163
|
// - theclawbay/gpt-5.4
|
|
153
164
|
// - theclawbay/gpt-5.4[1m]
|
|
154
165
|
// - theclawbay/gpt-5.4-mini
|
|
166
|
+
// - theclawbay/gpt-image-2
|
|
155
167
|
// - theclawbay/gpt-5.3-codex
|
|
156
168
|
}
|
|
157
169
|
```
|
|
@@ -163,6 +175,7 @@ export default function (pi: ExtensionAPI) {
|
|
|
163
175
|
| Provider | Base URL | API Type |
|
|
164
176
|
|----------|----------|----------|
|
|
165
177
|
| `theclawbay` | `https://api.theclawbay.com/backend-api/codex` | OpenAI Codex Responses |
|
|
178
|
+
| `theclawbay/gpt-image-2` | `https://api.theclawbay.com/backend-api/codex/responses` | Hosted Responses `image_generation` |
|
|
166
179
|
|
|
167
180
|
### Authentication
|
|
168
181
|
|
|
@@ -211,6 +224,9 @@ PI_CLAWBAY_DEBUG=1 pi --no-extensions -e /path/to/pi-clawbay --model theclawbay/
|
|
|
211
224
|
|
|
212
225
|
# Tool-call path
|
|
213
226
|
PI_CLAWBAY_DEBUG=1 pi --no-extensions -e /path/to/pi-clawbay --model theclawbay/gpt-5.4 --thinking low --tools ls -p "Use the ls tool on the current directory, then summarize whether package.json exists."
|
|
227
|
+
|
|
228
|
+
# Image generation path
|
|
229
|
+
PI_CLAWBAY_IMAGE_DIR=/tmp/pi-clawbay-images pi --no-extensions -e /path/to/pi-clawbay --model theclawbay/gpt-image-2 -p "Generate a simple square icon of a red crab claw on a white background. No text."
|
|
214
230
|
```
|
|
215
231
|
|
|
216
232
|
## Troubleshooting
|
|
@@ -219,7 +235,8 @@ PI_CLAWBAY_DEBUG=1 pi --no-extensions -e /path/to/pi-clawbay --model theclawbay/
|
|
|
219
235
|
- `401` or `invalid_api_key`: verify the key in the TheClawBay dashboard and in your shell environment.
|
|
220
236
|
- `429`, `weekly_cost_limit_reached`, or `5h_cost_limit_reached`: run `/quota` or `/clawbay-quota` and wait for the reset window.
|
|
221
237
|
- Model missing from `/model`: run `/clawbay-refresh-models`; if discovery still omits it, TheClawBay may not expose it for your account.
|
|
222
|
-
- `gpt-image
|
|
238
|
+
- `gpt-image-2` missing: run `/clawbay-refresh-models`; if discovery still omits it, TheClawBay may not expose it for your account.
|
|
239
|
+
- `gpt-image-1.5` missing: native image output models are intentionally hidden until this extension has a dedicated tested image flow for them.
|
|
223
240
|
|
|
224
241
|
## Building
|
|
225
242
|
|
package/dist/constants.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import type { ProviderModelConfig } from "@earendil-works/pi-coding-agent";
|
|
2
2
|
export declare const THECLAWBAY_OPENAI_DISCOVERY_BASE_URL = "https://api.theclawbay.com/v1";
|
|
3
3
|
export declare const THECLAWBAY_CODEX_BASE_URL = "https://api.theclawbay.com/backend-api/codex";
|
|
4
|
+
export declare const THECLAWBAY_CODEX_RESPONSES_URL = "https://api.theclawbay.com/backend-api/codex/responses";
|
|
4
5
|
export declare const THECLAWBAY_QUOTA_URL = "https://theclawbay.com/api/codex-auth/v1/quota";
|
|
5
6
|
export declare const THECLAWBAY_OPENAI_MODELS_URL = "https://api.theclawbay.com/v1/models";
|
|
7
|
+
export declare const THECLAWBAY_IMAGES_GENERATIONS_URL = "https://api.theclawbay.com/v1/images/generations";
|
|
6
8
|
export declare const THECLAWBAY_CODEX_API = "theclawbay-codex-responses";
|
|
7
9
|
export declare const THECLAWBAY_CHATGPT_ACCOUNT_ID = "theclawbay";
|
|
8
10
|
export declare const MODEL_CACHE_VERSION = 1;
|
|
@@ -11,7 +13,9 @@ export declare const MODEL_DISCOVERY_TIMEOUT_MS = 10000;
|
|
|
11
13
|
export declare const GPT_54_UPSTREAM_MODEL_ID = "gpt-5.4";
|
|
12
14
|
export declare const GPT_54_DEFAULT_MODEL_ID = "gpt-5.4";
|
|
13
15
|
export declare const GPT_54_1M_MODEL_ID = "gpt-5.4[1m]";
|
|
16
|
+
export declare const GPT_IMAGE_2_MODEL_ID = "gpt-image-2";
|
|
14
17
|
export declare const MODEL_INPUTS: readonly ["text", "image"];
|
|
18
|
+
export declare const IMAGE_GENERATION_MODEL_INPUTS: readonly ["text"];
|
|
15
19
|
export declare const OPENAI_CODEX_THINKING_LEVEL_MAP: {
|
|
16
20
|
readonly xhigh: "xhigh";
|
|
17
21
|
readonly minimal: "low";
|
|
@@ -27,6 +31,7 @@ export declare const OPENAI_CODEX_CONTEXT_WINDOW = 272000;
|
|
|
27
31
|
export declare const OPENAI_DEFAULT_CONTEXT_WINDOW = 272000;
|
|
28
32
|
export declare const OPENAI_FRONTIER_CONTEXT_WINDOW = 1050000;
|
|
29
33
|
export declare const OPENAI_DEFAULT_MAX_TOKENS = 128000;
|
|
34
|
+
export declare const OPENAI_IMAGE_MAX_TOKENS = 65536;
|
|
30
35
|
export declare const HIDDEN_MODEL_ID_PREFIXES: readonly ["gpt-image-"];
|
|
31
36
|
export declare const PINNED_MODEL_IDS: string[];
|
|
32
37
|
export declare const FALLBACK_OPENAI_MODEL_IDS: string[];
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAE3E,eAAO,MAAM,oCAAoC,kCAAkC,CAAC;AACpF,eAAO,MAAM,yBAAyB,iDAAiD,CAAC;AACxF,eAAO,MAAM,oBAAoB,mDAAmD,CAAC;AACrF,eAAO,MAAM,4BAA4B,yCAAmD,CAAC;AAC7F,eAAO,MAAM,oBAAoB,+BAA+B,CAAC;AACjE,eAAO,MAAM,6BAA6B,eAAe,CAAC;AAE1D,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,kBAAkB,QAAqB,CAAC;AACrD,eAAO,MAAM,0BAA0B,QAAS,CAAC;AAEjD,eAAO,MAAM,wBAAwB,YAAY,CAAC;AAClD,eAAO,MAAM,uBAAuB,YAAY,CAAC;AACjD,eAAO,MAAM,kBAAkB,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAE3E,eAAO,MAAM,oCAAoC,kCAAkC,CAAC;AACpF,eAAO,MAAM,yBAAyB,iDAAiD,CAAC;AACxF,eAAO,MAAM,8BAA8B,2DAA2C,CAAC;AACvF,eAAO,MAAM,oBAAoB,mDAAmD,CAAC;AACrF,eAAO,MAAM,4BAA4B,yCAAmD,CAAC;AAC7F,eAAO,MAAM,iCAAiC,qDAA+D,CAAC;AAC9G,eAAO,MAAM,oBAAoB,+BAA+B,CAAC;AACjE,eAAO,MAAM,6BAA6B,eAAe,CAAC;AAE1D,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,kBAAkB,QAAqB,CAAC;AACrD,eAAO,MAAM,0BAA0B,QAAS,CAAC;AAEjD,eAAO,MAAM,wBAAwB,YAAY,CAAC;AAClD,eAAO,MAAM,uBAAuB,YAAY,CAAC;AACjD,eAAO,MAAM,kBAAkB,gBAAgB,CAAC;AAChD,eAAO,MAAM,oBAAoB,gBAAgB,CAAC;AAElD,eAAO,MAAM,YAAY,4BAA6B,CAAC;AACvD,eAAO,MAAM,6BAA6B,mBAAoB,CAAC;AAC/D,eAAO,MAAM,+BAA+B;;;CAA8C,CAAC;AAC3F,eAAO,MAAM,SAAS;;;;;CAAgE,CAAC;AACvF,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAW1E,CAAC;AACF,eAAO,MAAM,2BAA2B,SAAS,CAAC;AAClD,eAAO,MAAM,6BAA6B,SAA8B,CAAC;AACzE,eAAO,MAAM,8BAA8B,UAAU,CAAC;AACtD,eAAO,MAAM,yBAAyB,SAAS,CAAC;AAChD,eAAO,MAAM,uBAAuB,QAAQ,CAAC;AAE7C,eAAO,MAAM,wBAAwB,yBAA0B,CAAC;AAChE,eAAO,MAAM,gBAAgB,EAAE,MAAM,EAAO,CAAC;AAC7C,eAAO,MAAM,yBAAyB,UAWrC,CAAC"}
|
package/dist/constants.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
export const THECLAWBAY_OPENAI_DISCOVERY_BASE_URL = "https://api.theclawbay.com/v1";
|
|
2
2
|
export const THECLAWBAY_CODEX_BASE_URL = "https://api.theclawbay.com/backend-api/codex";
|
|
3
|
+
export const THECLAWBAY_CODEX_RESPONSES_URL = `${THECLAWBAY_CODEX_BASE_URL}/responses`;
|
|
3
4
|
export const THECLAWBAY_QUOTA_URL = "https://theclawbay.com/api/codex-auth/v1/quota";
|
|
4
5
|
export const THECLAWBAY_OPENAI_MODELS_URL = `${THECLAWBAY_OPENAI_DISCOVERY_BASE_URL}/models`;
|
|
6
|
+
export const THECLAWBAY_IMAGES_GENERATIONS_URL = `${THECLAWBAY_OPENAI_DISCOVERY_BASE_URL}/images/generations`;
|
|
5
7
|
export const THECLAWBAY_CODEX_API = "theclawbay-codex-responses";
|
|
6
8
|
export const THECLAWBAY_CHATGPT_ACCOUNT_ID = "theclawbay";
|
|
7
9
|
export const MODEL_CACHE_VERSION = 1;
|
|
@@ -10,7 +12,9 @@ export const MODEL_DISCOVERY_TIMEOUT_MS = 10_000;
|
|
|
10
12
|
export const GPT_54_UPSTREAM_MODEL_ID = "gpt-5.4";
|
|
11
13
|
export const GPT_54_DEFAULT_MODEL_ID = "gpt-5.4";
|
|
12
14
|
export const GPT_54_1M_MODEL_ID = "gpt-5.4[1m]";
|
|
15
|
+
export const GPT_IMAGE_2_MODEL_ID = "gpt-image-2";
|
|
13
16
|
export const MODEL_INPUTS = ["text", "image"];
|
|
17
|
+
export const IMAGE_GENERATION_MODEL_INPUTS = ["text"];
|
|
14
18
|
export const OPENAI_CODEX_THINKING_LEVEL_MAP = { xhigh: "xhigh", minimal: "low" };
|
|
15
19
|
export const ZERO_COST = { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 };
|
|
16
20
|
export const OPENAI_KNOWN_COSTS = {
|
|
@@ -18,6 +22,7 @@ export const OPENAI_KNOWN_COSTS = {
|
|
|
18
22
|
[GPT_54_DEFAULT_MODEL_ID]: { input: 2.5, output: 15.0, cacheRead: 0.25, cacheWrite: 2.5 },
|
|
19
23
|
[GPT_54_1M_MODEL_ID]: { input: 5.0, output: 22.5, cacheRead: 0.5, cacheWrite: 5.0 },
|
|
20
24
|
"gpt-5.4-mini": { input: 1.25, output: 10.0, cacheRead: 0.125, cacheWrite: 1.25 },
|
|
25
|
+
[GPT_IMAGE_2_MODEL_ID]: { input: 5.0, output: 30.0, cacheRead: 2.0, cacheWrite: 5.0 },
|
|
21
26
|
"gpt-5.3-codex": { input: 1.75, output: 14.0, cacheRead: 0.175, cacheWrite: 1.75 },
|
|
22
27
|
"gpt-5.2-codex": { input: 1.75, output: 14.0, cacheRead: 0.175, cacheWrite: 1.75 },
|
|
23
28
|
"gpt-5.2": { input: 1.75, output: 14.0, cacheRead: 0.175, cacheWrite: 1.75 },
|
|
@@ -28,6 +33,7 @@ export const OPENAI_CODEX_CONTEXT_WINDOW = 272000;
|
|
|
28
33
|
export const OPENAI_DEFAULT_CONTEXT_WINDOW = OPENAI_CODEX_CONTEXT_WINDOW;
|
|
29
34
|
export const OPENAI_FRONTIER_CONTEXT_WINDOW = 1050000;
|
|
30
35
|
export const OPENAI_DEFAULT_MAX_TOKENS = 128000;
|
|
36
|
+
export const OPENAI_IMAGE_MAX_TOKENS = 65536;
|
|
31
37
|
export const HIDDEN_MODEL_ID_PREFIXES = ["gpt-image-"];
|
|
32
38
|
export const PINNED_MODEL_IDS = [];
|
|
33
39
|
export const FALLBACK_OPENAI_MODEL_IDS = [
|
|
@@ -35,6 +41,7 @@ export const FALLBACK_OPENAI_MODEL_IDS = [
|
|
|
35
41
|
GPT_54_DEFAULT_MODEL_ID,
|
|
36
42
|
GPT_54_1M_MODEL_ID,
|
|
37
43
|
"gpt-5.4-mini",
|
|
44
|
+
GPT_IMAGE_2_MODEL_ID,
|
|
38
45
|
"gpt-5.3-codex",
|
|
39
46
|
"gpt-5.2-codex",
|
|
40
47
|
"gpt-5.2",
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,oCAAoC,GAAG,+BAA+B,CAAC;AACpF,MAAM,CAAC,MAAM,yBAAyB,GAAG,8CAA8C,CAAC;AACxF,MAAM,CAAC,MAAM,oBAAoB,GAAG,gDAAgD,CAAC;AACrF,MAAM,CAAC,MAAM,4BAA4B,GAAG,GAAG,oCAAoC,SAAS,CAAC;AAC7F,MAAM,CAAC,MAAM,oBAAoB,GAAG,4BAA4B,CAAC;AACjE,MAAM,CAAC,MAAM,6BAA6B,GAAG,YAAY,CAAC;AAE1D,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AACrC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AACrD,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAC;AAEjD,MAAM,CAAC,MAAM,wBAAwB,GAAG,SAAS,CAAC;AAClD,MAAM,CAAC,MAAM,uBAAuB,GAAG,SAAS,CAAC;AACjD,MAAM,CAAC,MAAM,kBAAkB,GAAG,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type Api, type AssistantMessageEventStream, type Context, type Model, type SimpleStreamOptions } from "@earendil-works/pi-ai";
|
|
2
|
+
export declare function getImageOutputDir(): string;
|
|
3
|
+
export declare function streamSimpleTheClawBayImageGeneration(model: Model<Api>, context: Context, options?: SimpleStreamOptions): AssistantMessageEventStream;
|
|
4
|
+
//# sourceMappingURL=image-generation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-generation.d.ts","sourceRoot":"","sources":["../src/image-generation.ts"],"names":[],"mappings":"AAIA,OAAO,EAEN,KAAK,GAAG,EAER,KAAK,2BAA2B,EAChC,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,mBAAmB,EACxB,MAAM,uBAAuB,CAAC;AAwB/B,wBAAgB,iBAAiB,IAAI,MAAM,CAQ1C;AAyRD,wBAAgB,qCAAqC,CACpD,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EACjB,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,mBAAmB,GAC3B,2BAA2B,CAsB7B"}
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
import { mkdirSync, writeFileSync } from "node:fs";
|
|
3
|
+
import { homedir } from "node:os";
|
|
4
|
+
import { join } from "node:path";
|
|
5
|
+
import { createAssistantMessageEventStream, } from "@earendil-works/pi-ai";
|
|
6
|
+
import { THECLAWBAY_CHATGPT_ACCOUNT_ID, THECLAWBAY_CODEX_RESPONSES_URL, MODEL_INPUTS, OPENAI_CODEX_THINKING_LEVEL_MAP, OPENAI_KNOWN_COSTS, } from "./constants.js";
|
|
7
|
+
const DEFAULT_IMAGE_RESPONSES_MODEL_ID = "gpt-5.5";
|
|
8
|
+
const HOSTED_IMAGE_PARTIAL_COUNT = 2;
|
|
9
|
+
export function getImageOutputDir() {
|
|
10
|
+
const overrideDir = process.env.PI_CLAWBAY_IMAGE_DIR?.trim();
|
|
11
|
+
if (overrideDir) {
|
|
12
|
+
return overrideDir;
|
|
13
|
+
}
|
|
14
|
+
const agentDir = process.env.PI_CODING_AGENT_DIR?.trim() || join(homedir(), ".pi", "agent");
|
|
15
|
+
return join(agentDir, "generated", "pi-clawbay");
|
|
16
|
+
}
|
|
17
|
+
function createEmptyAssistantMessage(model) {
|
|
18
|
+
return {
|
|
19
|
+
role: "assistant",
|
|
20
|
+
content: [],
|
|
21
|
+
api: model.api,
|
|
22
|
+
provider: model.provider,
|
|
23
|
+
model: model.id,
|
|
24
|
+
usage: {
|
|
25
|
+
input: 0,
|
|
26
|
+
output: 0,
|
|
27
|
+
cacheRead: 0,
|
|
28
|
+
cacheWrite: 0,
|
|
29
|
+
totalTokens: 0,
|
|
30
|
+
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 },
|
|
31
|
+
},
|
|
32
|
+
stopReason: "stop",
|
|
33
|
+
timestamp: Date.now(),
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
function extractPrompt(context) {
|
|
37
|
+
const userMessages = context.messages.filter((message) => message.role === "user");
|
|
38
|
+
const latest = userMessages.at(-1);
|
|
39
|
+
if (!latest) {
|
|
40
|
+
throw new Error("gpt-image-2 requires a user prompt");
|
|
41
|
+
}
|
|
42
|
+
if (typeof latest.content === "string") {
|
|
43
|
+
return latest.content.trim();
|
|
44
|
+
}
|
|
45
|
+
return latest.content
|
|
46
|
+
.filter((item) => item.type === "text")
|
|
47
|
+
.map((item) => item.text.trim())
|
|
48
|
+
.filter(Boolean)
|
|
49
|
+
.join("\n")
|
|
50
|
+
.trim();
|
|
51
|
+
}
|
|
52
|
+
function headersToRecord(headers) {
|
|
53
|
+
return Object.fromEntries(Array.from(headers.entries()));
|
|
54
|
+
}
|
|
55
|
+
function saveGeneratedPng(base64) {
|
|
56
|
+
const image = Buffer.from(base64, "base64");
|
|
57
|
+
const outputDir = getImageOutputDir();
|
|
58
|
+
mkdirSync(outputDir, { recursive: true });
|
|
59
|
+
const path = join(outputDir, `gpt-image-2-${Date.now()}-${randomUUID()}.png`);
|
|
60
|
+
writeFileSync(path, image, "binary");
|
|
61
|
+
return { path, bytes: image.byteLength };
|
|
62
|
+
}
|
|
63
|
+
function formatSuccessMessage(path, bytes, revisedPrompt, usedPartial = false) {
|
|
64
|
+
const lines = [`Generated image saved to \`${path}\` (${bytes.toLocaleString()} bytes).`];
|
|
65
|
+
if (usedPartial) {
|
|
66
|
+
lines.push("Saved latest partial image because the final image was unavailable.");
|
|
67
|
+
}
|
|
68
|
+
if (revisedPrompt) {
|
|
69
|
+
lines.push(`Revised prompt: ${revisedPrompt}`);
|
|
70
|
+
}
|
|
71
|
+
return lines.join("\n");
|
|
72
|
+
}
|
|
73
|
+
async function requestImageGeneration(model, context, options) {
|
|
74
|
+
const apiKey = options?.apiKey ?? process.env.THECLAWBAY_API_KEY;
|
|
75
|
+
if (!apiKey) {
|
|
76
|
+
throw new Error("No API key for provider: theclawbay");
|
|
77
|
+
}
|
|
78
|
+
const body = await buildHostedImageRequestBody(model, context, options);
|
|
79
|
+
const payload = await fetchHostedImageGeneration(model, apiKey, body, options);
|
|
80
|
+
const saved = saveGeneratedPng(payload.base64);
|
|
81
|
+
return { ...saved, revisedPrompt: payload.revisedPrompt, usedPartial: payload.usedPartial };
|
|
82
|
+
}
|
|
83
|
+
async function buildHostedImageRequestBody(model, context, options) {
|
|
84
|
+
const prompt = extractPrompt(context);
|
|
85
|
+
if (!prompt) {
|
|
86
|
+
throw new Error("gpt-image-2 requires a non-empty user prompt");
|
|
87
|
+
}
|
|
88
|
+
const body = {
|
|
89
|
+
model: getImageResponsesModelId(),
|
|
90
|
+
store: false,
|
|
91
|
+
stream: true,
|
|
92
|
+
instructions: context.systemPrompt,
|
|
93
|
+
input: [{ role: "user", content: [{ type: "input_text", text: prompt }] }],
|
|
94
|
+
tools: [
|
|
95
|
+
{
|
|
96
|
+
type: "image_generation",
|
|
97
|
+
model: model.id,
|
|
98
|
+
output_format: "png",
|
|
99
|
+
size: "1024x1024",
|
|
100
|
+
partial_images: HOSTED_IMAGE_PARTIAL_COUNT,
|
|
101
|
+
},
|
|
102
|
+
],
|
|
103
|
+
tool_choice: "auto",
|
|
104
|
+
parallel_tool_calls: true,
|
|
105
|
+
text: { verbosity: "low" },
|
|
106
|
+
include: ["reasoning.encrypted_content"],
|
|
107
|
+
...(options?.sessionId ? { prompt_cache_key: options.sessionId } : {}),
|
|
108
|
+
};
|
|
109
|
+
return (await options?.onPayload?.(body, model)) ?? body;
|
|
110
|
+
}
|
|
111
|
+
function buildHostedRequestHeaders(apiKey, options) {
|
|
112
|
+
return {
|
|
113
|
+
...(options?.headers ?? {}),
|
|
114
|
+
Authorization: `Bearer ${apiKey}`,
|
|
115
|
+
"Content-Type": "application/json",
|
|
116
|
+
"chatgpt-account-id": THECLAWBAY_CHATGPT_ACCOUNT_ID,
|
|
117
|
+
originator: "pi",
|
|
118
|
+
"OpenAI-Beta": "responses=experimental",
|
|
119
|
+
...(options?.sessionId ? { session_id: options.sessionId } : {}),
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
function createHostedRequestModel(model) {
|
|
123
|
+
const requestModelId = getImageResponsesModelId();
|
|
124
|
+
return {
|
|
125
|
+
...model,
|
|
126
|
+
id: requestModelId,
|
|
127
|
+
name: requestModelId,
|
|
128
|
+
reasoning: true,
|
|
129
|
+
input: [...MODEL_INPUTS],
|
|
130
|
+
cost: OPENAI_KNOWN_COSTS[requestModelId] ?? model.cost,
|
|
131
|
+
thinkingLevelMap: { ...OPENAI_CODEX_THINKING_LEVEL_MAP },
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
function getImageResponsesModelId() {
|
|
135
|
+
return process.env.PI_CLAWBAY_IMAGE_RESPONSES_MODEL?.trim() || DEFAULT_IMAGE_RESPONSES_MODEL_ID;
|
|
136
|
+
}
|
|
137
|
+
async function fetchHostedImageGeneration(model, apiKey, body, options) {
|
|
138
|
+
const response = await fetch(THECLAWBAY_CODEX_RESPONSES_URL, {
|
|
139
|
+
method: "POST",
|
|
140
|
+
headers: buildHostedRequestHeaders(apiKey, options),
|
|
141
|
+
body: JSON.stringify(body),
|
|
142
|
+
signal: options?.signal,
|
|
143
|
+
});
|
|
144
|
+
await options?.onResponse?.({ status: response.status, headers: headersToRecord(response.headers) }, createHostedRequestModel(model));
|
|
145
|
+
if (!response.ok) {
|
|
146
|
+
throw new Error(await response.text());
|
|
147
|
+
}
|
|
148
|
+
return readHostedImageGenerationStream(response);
|
|
149
|
+
}
|
|
150
|
+
async function readHostedImageGenerationStream(response) {
|
|
151
|
+
let finalImage;
|
|
152
|
+
let latestPartial;
|
|
153
|
+
let completed = false;
|
|
154
|
+
for await (const event of parseTheClawBaySse(response)) {
|
|
155
|
+
const eventType = typeof event.type === "string" ? event.type : undefined;
|
|
156
|
+
if (eventType === "response.image_generation_call.partial_image" && typeof event.partial_image_b64 === "string") {
|
|
157
|
+
latestPartial = {
|
|
158
|
+
base64: event.partial_image_b64,
|
|
159
|
+
partialIndex: typeof event.partial_image_index === "number" ? event.partial_image_index : undefined,
|
|
160
|
+
};
|
|
161
|
+
continue;
|
|
162
|
+
}
|
|
163
|
+
if (eventType === "response.output_item.done" && isRecord(event.item) && event.item.type === "image_generation_call") {
|
|
164
|
+
if (typeof event.item.result === "string" && event.item.result.length > 0) {
|
|
165
|
+
finalImage = {
|
|
166
|
+
base64: event.item.result,
|
|
167
|
+
revisedPrompt: typeof event.item.revised_prompt === "string" ? event.item.revised_prompt : undefined,
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
continue;
|
|
171
|
+
}
|
|
172
|
+
if (eventType === "response.completed") {
|
|
173
|
+
completed = true;
|
|
174
|
+
continue;
|
|
175
|
+
}
|
|
176
|
+
if (eventType === "response.failed") {
|
|
177
|
+
if (latestPartial) {
|
|
178
|
+
return { ...latestPartial, usedPartial: true };
|
|
179
|
+
}
|
|
180
|
+
throw new Error(readResponseFailureMessage(event, "TheClawBay hosted image generation failed"));
|
|
181
|
+
}
|
|
182
|
+
if (eventType === "error") {
|
|
183
|
+
if (latestPartial) {
|
|
184
|
+
return { ...latestPartial, usedPartial: true };
|
|
185
|
+
}
|
|
186
|
+
throw new Error(readResponseFailureMessage(event, "TheClawBay hosted image generation stream error"));
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
if (finalImage) {
|
|
190
|
+
return { ...finalImage, usedPartial: false };
|
|
191
|
+
}
|
|
192
|
+
if (latestPartial) {
|
|
193
|
+
return { ...latestPartial, usedPartial: true };
|
|
194
|
+
}
|
|
195
|
+
if (!completed) {
|
|
196
|
+
throw new Error("TheClawBay hosted image generation stream ended before completion");
|
|
197
|
+
}
|
|
198
|
+
throw new Error("TheClawBay hosted image generation response did not include an image");
|
|
199
|
+
}
|
|
200
|
+
async function* parseTheClawBaySse(response) {
|
|
201
|
+
if (!response.body) {
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
const reader = response.body.getReader();
|
|
205
|
+
const decoder = new TextDecoder();
|
|
206
|
+
let buffer = "";
|
|
207
|
+
try {
|
|
208
|
+
while (true) {
|
|
209
|
+
const { done, value } = await reader.read();
|
|
210
|
+
if (done) {
|
|
211
|
+
break;
|
|
212
|
+
}
|
|
213
|
+
buffer += decoder.decode(value, { stream: true });
|
|
214
|
+
let index = buffer.indexOf("\n\n");
|
|
215
|
+
while (index !== -1) {
|
|
216
|
+
const chunk = buffer.slice(0, index);
|
|
217
|
+
buffer = buffer.slice(index + 2);
|
|
218
|
+
const data = chunk
|
|
219
|
+
.split("\n")
|
|
220
|
+
.filter((line) => line.startsWith("data:"))
|
|
221
|
+
.map((line) => line.slice(5).trim())
|
|
222
|
+
.join("\n")
|
|
223
|
+
.trim();
|
|
224
|
+
if (data && data !== "[DONE]") {
|
|
225
|
+
yield JSON.parse(data);
|
|
226
|
+
}
|
|
227
|
+
index = buffer.indexOf("\n\n");
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
finally {
|
|
232
|
+
try {
|
|
233
|
+
await reader.cancel();
|
|
234
|
+
}
|
|
235
|
+
catch {
|
|
236
|
+
// Ignore stream cleanup errors.
|
|
237
|
+
}
|
|
238
|
+
try {
|
|
239
|
+
reader.releaseLock();
|
|
240
|
+
}
|
|
241
|
+
catch {
|
|
242
|
+
// Ignore stream cleanup errors.
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
function isRecord(value) {
|
|
247
|
+
return Boolean(value && typeof value === "object" && !Array.isArray(value));
|
|
248
|
+
}
|
|
249
|
+
function readResponseFailureMessage(event, fallback) {
|
|
250
|
+
const response = isRecord(event.response) ? event.response : undefined;
|
|
251
|
+
const error = isRecord(response?.error) ? response.error : undefined;
|
|
252
|
+
if (typeof error?.message === "string" && error.message.trim()) {
|
|
253
|
+
return error.message;
|
|
254
|
+
}
|
|
255
|
+
if (typeof event.message === "string" && event.message.trim()) {
|
|
256
|
+
return event.message;
|
|
257
|
+
}
|
|
258
|
+
return fallback;
|
|
259
|
+
}
|
|
260
|
+
export function streamSimpleTheClawBayImageGeneration(model, context, options) {
|
|
261
|
+
const stream = createAssistantMessageEventStream();
|
|
262
|
+
void (async () => {
|
|
263
|
+
const output = createEmptyAssistantMessage(model);
|
|
264
|
+
try {
|
|
265
|
+
const result = await requestImageGeneration(model, context, options);
|
|
266
|
+
const text = formatSuccessMessage(result.path, result.bytes, result.revisedPrompt, result.usedPartial);
|
|
267
|
+
output.content.push({ type: "text", text });
|
|
268
|
+
stream.push({ type: "start", partial: output });
|
|
269
|
+
stream.push({ type: "text_start", contentIndex: 0, partial: output });
|
|
270
|
+
stream.push({ type: "text_delta", contentIndex: 0, delta: text, partial: output });
|
|
271
|
+
stream.push({ type: "text_end", contentIndex: 0, content: text, partial: output });
|
|
272
|
+
stream.push({ type: "done", reason: "stop", message: output });
|
|
273
|
+
stream.end();
|
|
274
|
+
}
|
|
275
|
+
catch (error) {
|
|
276
|
+
output.stopReason = options?.signal?.aborted ? "aborted" : "error";
|
|
277
|
+
output.errorMessage = error instanceof Error ? error.message : String(error);
|
|
278
|
+
stream.push({ type: "error", reason: output.stopReason, error: output });
|
|
279
|
+
stream.end();
|
|
280
|
+
}
|
|
281
|
+
})();
|
|
282
|
+
return stream;
|
|
283
|
+
}
|
|
284
|
+
//# sourceMappingURL=image-generation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-generation.js","sourceRoot":"","sources":["../src/image-generation.ts"],"names":[],"mappings":"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"}
|
package/dist/models.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ProviderModelConfig } from "@earendil-works/pi-coding-agent";
|
|
2
2
|
export declare function dedupeIds(ids: string[]): string[];
|
|
3
|
+
export declare function isSupportedImageGenerationModel(id: string): boolean;
|
|
3
4
|
export declare function buildOpenAIModels(ids: string[]): ProviderModelConfig[];
|
|
4
5
|
export declare function buildFallbackOpenAIModels(): ProviderModelConfig[];
|
|
5
6
|
export declare function normalizeOpenAIModelIds(ids: string[], options?: {
|
package/dist/models.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAqB3E,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAYjD;AA2CD,wBAAgB,+BAA+B,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAEnE;AA8CD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,mBAAmB,EAAE,CAEtE;AAED,wBAAgB,yBAAyB,IAAI,mBAAmB,EAAE,CAEjE;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,EAAE,CAGtG;AAcD,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAMzD"}
|
package/dist/models.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FALLBACK_OPENAI_MODEL_IDS, HIDDEN_MODEL_ID_PREFIXES, GPT_54_1M_MODEL_ID, GPT_54_DEFAULT_MODEL_ID, GPT_54_UPSTREAM_MODEL_ID, MODEL_INPUTS, OPENAI_CODEX_CONTEXT_WINDOW, OPENAI_CODEX_THINKING_LEVEL_MAP, OPENAI_DEFAULT_CONTEXT_WINDOW, OPENAI_DEFAULT_MAX_TOKENS, OPENAI_FRONTIER_CONTEXT_WINDOW, OPENAI_KNOWN_COSTS, PINNED_MODEL_IDS, ZERO_COST, } from "./constants.js";
|
|
1
|
+
import { FALLBACK_OPENAI_MODEL_IDS, HIDDEN_MODEL_ID_PREFIXES, GPT_IMAGE_2_MODEL_ID, GPT_54_1M_MODEL_ID, GPT_54_DEFAULT_MODEL_ID, GPT_54_UPSTREAM_MODEL_ID, IMAGE_GENERATION_MODEL_INPUTS, MODEL_INPUTS, OPENAI_CODEX_CONTEXT_WINDOW, OPENAI_CODEX_THINKING_LEVEL_MAP, OPENAI_DEFAULT_CONTEXT_WINDOW, OPENAI_DEFAULT_MAX_TOKENS, OPENAI_FRONTIER_CONTEXT_WINDOW, OPENAI_IMAGE_MAX_TOKENS, OPENAI_KNOWN_COSTS, PINNED_MODEL_IDS, ZERO_COST, } from "./constants.js";
|
|
2
2
|
export function dedupeIds(ids) {
|
|
3
3
|
const seen = new Set();
|
|
4
4
|
const deduped = [];
|
|
@@ -17,6 +17,9 @@ function toTitleCase(value) {
|
|
|
17
17
|
return value.charAt(0).toUpperCase() + value.slice(1);
|
|
18
18
|
}
|
|
19
19
|
function formatOpenAIModelName(id) {
|
|
20
|
+
if (id === GPT_IMAGE_2_MODEL_ID) {
|
|
21
|
+
return "GPT Image 2";
|
|
22
|
+
}
|
|
20
23
|
if (id === GPT_54_DEFAULT_MODEL_ID) {
|
|
21
24
|
return "GPT-5.4";
|
|
22
25
|
}
|
|
@@ -38,17 +41,21 @@ function formatModelNamePart(part) {
|
|
|
38
41
|
function isGpt54Or55Model(id) {
|
|
39
42
|
return id.startsWith("gpt-5.4") || id.startsWith("gpt-5.5");
|
|
40
43
|
}
|
|
41
|
-
function
|
|
42
|
-
return
|
|
44
|
+
export function isSupportedImageGenerationModel(id) {
|
|
45
|
+
return id === GPT_IMAGE_2_MODEL_ID;
|
|
46
|
+
}
|
|
47
|
+
function isHiddenImageGenerationModel(id) {
|
|
48
|
+
return HIDDEN_MODEL_ID_PREFIXES.some((prefix) => id.startsWith(prefix)) && !isSupportedImageGenerationModel(id);
|
|
43
49
|
}
|
|
44
50
|
function createModelConfig(id, name, cost, contextWindow, maxTokens) {
|
|
45
|
-
const
|
|
51
|
+
const isImageModel = isSupportedImageGenerationModel(id);
|
|
52
|
+
const isReasoningModel = !isImageModel;
|
|
46
53
|
return {
|
|
47
54
|
id,
|
|
48
55
|
name,
|
|
49
56
|
reasoning: isReasoningModel,
|
|
50
57
|
...(isReasoningModel && isGpt54Or55Model(id) ? { thinkingLevelMap: { ...OPENAI_CODEX_THINKING_LEVEL_MAP } } : {}),
|
|
51
|
-
input: [...MODEL_INPUTS],
|
|
58
|
+
input: isImageModel ? [...IMAGE_GENERATION_MODEL_INPUTS] : [...MODEL_INPUTS],
|
|
52
59
|
cost: { ...cost },
|
|
53
60
|
contextWindow,
|
|
54
61
|
maxTokens,
|
|
@@ -62,6 +69,9 @@ function createOpenAIModel(id) {
|
|
|
62
69
|
if (id === GPT_54_1M_MODEL_ID) {
|
|
63
70
|
return createModelConfig(id, formatOpenAIModelName(id), cost, OPENAI_FRONTIER_CONTEXT_WINDOW, OPENAI_DEFAULT_MAX_TOKENS);
|
|
64
71
|
}
|
|
72
|
+
if (id === GPT_IMAGE_2_MODEL_ID) {
|
|
73
|
+
return createModelConfig(id, formatOpenAIModelName(id), cost, OPENAI_DEFAULT_CONTEXT_WINDOW, OPENAI_IMAGE_MAX_TOKENS);
|
|
74
|
+
}
|
|
65
75
|
return createModelConfig(id, formatOpenAIModelName(id), cost, OPENAI_DEFAULT_CONTEXT_WINDOW, OPENAI_DEFAULT_MAX_TOKENS);
|
|
66
76
|
}
|
|
67
77
|
export function buildOpenAIModels(ids) {
|
|
@@ -75,7 +85,7 @@ export function normalizeOpenAIModelIds(ids, options) {
|
|
|
75
85
|
return options?.includePinned ? dedupeIds([...normalized, ...PINNED_MODEL_IDS]) : normalized;
|
|
76
86
|
}
|
|
77
87
|
function normalizeOpenAIModelId(id) {
|
|
78
|
-
if (id.startsWith("claude-") || id === "gpt-5.4-pro" ||
|
|
88
|
+
if (id.startsWith("claude-") || id === "gpt-5.4-pro" || isHiddenImageGenerationModel(id)) {
|
|
79
89
|
return [];
|
|
80
90
|
}
|
|
81
91
|
if (id === GPT_54_UPSTREAM_MODEL_ID) {
|
package/dist/models.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.js","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AACA,OAAO,EACN,yBAAyB,EACzB,wBAAwB,EACxB,kBAAkB,EAClB,uBAAuB,EACvB,wBAAwB,EACxB,YAAY,EACZ,2BAA2B,EAC3B,+BAA+B,EAC/B,6BAA6B,EAC7B,yBAAyB,EACzB,8BAA8B,EAC9B,kBAAkB,EAClB,gBAAgB,EAChB,SAAS,GACT,MAAM,gBAAgB,CAAC;AAExB,MAAM,UAAU,SAAS,CAAC,GAAa;IACtC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;IACF,CAAC;IAED,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,qBAAqB,CAAC,EAAU;IACxC,IAAI,EAAE,KAAK,uBAAuB,EAAE,CAAC;QACpC,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,IAAI,EAAE,KAAK,kBAAkB,EAAE,CAAC;QAC/B,OAAO,cAAc,CAAC;IACvB,CAAC;IAED,OAAO,sBAAsB,CAAC,EAAE,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,sBAAsB,CAAC,EAAU;IACzC,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzE,OAAO,OAAO,MAAM,EAAE,CAAC;IACxB,CAAC;IAED,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY;IACxC,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,gBAAgB,CAAC,EAAU;IACnC,OAAO,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"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"}
|
package/dist/transport.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,KAAK,GAAG,EACR,KAAK,2BAA2B,EAChC,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,mBAAmB,EACxB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,KAAK,GAAG,EACR,KAAK,2BAA2B,EAChC,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,mBAAmB,EACxB,MAAM,uBAAuB,CAAC;AAK/B,wBAAgB,sBAAsB,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQ5F;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAgBlF;AAuBD,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,kBAAkB,CAAC,CAOxF;AAED,wBAAgB,6BAA6B,CAC5C,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,UAAU,CAAC,EAC1D,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,UAAU,CAAC,GACtD,OAAO,CAgBT;AAaD,wBAAgB,8BAA8B,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAUzH;AAeD,wBAAgB,oCAAoC,CACnD,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,OAAO,GACf,2BAA2B,CAuB7B"}
|
package/dist/transport.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { createAssistantMessageEventStream, streamSimpleOpenAIResponses, } from "@earendil-works/pi-ai";
|
|
2
2
|
import { THECLAWBAY_CHATGPT_ACCOUNT_ID } from "./constants.js";
|
|
3
|
-
import {
|
|
3
|
+
import { streamSimpleTheClawBayImageGeneration } from "./image-generation.js";
|
|
4
|
+
import { dedupeIds, isSupportedImageGenerationModel, resolveUpstreamModelId } from "./models.js";
|
|
4
5
|
export function buildTheClawBayHeaders(options) {
|
|
5
6
|
return {
|
|
6
7
|
...(options?.headers ?? {}),
|
|
@@ -99,6 +100,9 @@ export function streamSimpleTheClawBayCodexResponses(model, context, options) {
|
|
|
99
100
|
const typedModel = model;
|
|
100
101
|
const typedContext = context;
|
|
101
102
|
const typedOptions = options;
|
|
103
|
+
if (isSupportedImageGenerationModel(typedModel.id)) {
|
|
104
|
+
return streamSimpleTheClawBayImageGeneration(typedModel, typedContext, typedOptions);
|
|
105
|
+
}
|
|
102
106
|
const originalOnPayload = typedOptions?.onPayload;
|
|
103
107
|
const streamModel = createTheClawBayStreamModel(typedModel);
|
|
104
108
|
const streamOptions = {
|
package/dist/transport.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,iCAAiC,EACjC,2BAA2B,GAM3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"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"}
|