pi-clawbay 0.0.26 → 0.0.28

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 CHANGED
@@ -8,7 +8,7 @@ A provider extension for [Pi Coding Agent](https://github.com/earendil-works/pi)
8
8
  - **Gemini Models** - Dynamically discovered `gemini-*` models use Pi's native Google transport against TheClawBay's `/v1beta` route, including Pi-compatible thinking support by default
9
9
  - **Single Provider** - Only `theclawbay` is registered; routing is selected per model
10
10
  - **GPT-5.4 Split Options** - `gpt-5.4` and `gpt-5.4[1m]` for clearer cost/context choice
11
- - **GPT Image 2** - Generate PNG images through TheClawBay's hosted Codex Responses `image_generation` tool
11
+ - **GPT Image 2** - Generate PNG images through TheClawBay's direct OpenAI-compatible Images API
12
12
  - **High Usage Headroom** - More capacity than standard subscriptions
13
13
  - **Simple Setup** - Single API key
14
14
 
@@ -71,10 +71,10 @@ The extension keeps one Pi provider, `theclawbay`, and routes by model family:
71
71
  - `baseUrl: "https://api.theclawbay.com/v1beta"`
72
72
  - `reasoning: true` for the Gemini IDs that Pi's official Google provider marks as thinking-capable (`gemini-2.5-*`, `gemini-live-2.5-*`, `gemini-flash-latest`, `gemini-flash-lite-latest`, `gemini-3*-flash*`, and `gemini-3*-pro*`)
73
73
  - Pi then uses its native Google SDK transport (`/v1beta/models/{model}:streamGenerateContent?alt=sse`) instead of the Codex transport. This is required because sending Gemini models to `https://api.theclawbay.com/backend-api/codex/responses` returns `404 upstream returned HTTP 404`.
74
- - **Image generation** (`gpt-image-2`) uses TheClawBay's Codex Responses route with the hosted `image_generation` tool:
75
- - `https://api.theclawbay.com/backend-api/codex/responses`
74
+ - **Image generation** (`gpt-image-2`) uses TheClawBay's direct OpenAI-compatible Images route:
75
+ - `https://api.theclawbay.com/v1/images/generations`
76
76
 
77
- For GPT/Codex and hosted image requests, the extension keeps the native Codex semantics that are needed for existing behavior:
77
+ For GPT/Codex text requests, the extension keeps the native Codex semantics that are needed for existing behavior:
78
78
 
79
79
  - `Authorization: Bearer $THECLAWBAY_API_KEY`
80
80
  - `chatgpt-account-id: theclawbay`
@@ -85,11 +85,12 @@ For GPT/Codex and hosted image requests, the extension keeps the native Codex se
85
85
  - `include: ["reasoning.encrypted_content"]`
86
86
  - `store: false`
87
87
 
88
- For `gpt-image-2`, the request also includes:
88
+ For `gpt-image-2`, the request follows the current TheClawBay docs and sends a direct Images API payload:
89
89
 
90
- - `tools: [{ type: "image_generation", model: "gpt-image-2", output_format: "png", size: "1024x1024", partial_images: 2 }]`
91
-
92
- 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.
90
+ - `model: "gpt-image-2"`
91
+ - `prompt: <latest user prompt>`
92
+ - `size: "1024x1024"`
93
+ - `n: 1`
93
94
 
94
95
  ### Gemini Thinking
95
96
 
@@ -138,7 +139,7 @@ Why split it?
138
139
  - `gpt-5.4[1m]` is configured with a `1,050,000` token context window.
139
140
  - Current non-5.4 GPT-5/Codex variants default to `272,000` context and `128,000` max output tokens.
140
141
  - Gemini variants discovered from `/v1/models` use Pi's Google transport with `1,048,576` context and `65,536` max output tokens.
141
- - `gpt-image-2` uses the hosted Responses image-generation path with `1024x1024` PNG output, `272,000` context metadata, and `65,536` max output metadata.
142
+ - `gpt-image-2` uses the direct `/v1/images/generations` path with `1024x1024` PNG output, `272,000` context metadata, and `65,536` max output metadata.
142
143
 
143
144
  ### Example Model List
144
145
 
@@ -157,7 +158,7 @@ Current fallback list in this package, used only when live discovery and cache a
157
158
 
158
159
  Live discovery may add newer GPT/Codex and Gemini models such as `gemini-2.5-pro`, `gemini-2.5-flash`, `gemini-3.1-pro-preview`, or `gemini-3-flash-preview` when TheClawBay exposes them for your account.
159
160
 
160
- `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.
161
+ `gpt-image-2` is exposed because TheClawBay's latest docs list it as the direct image-generation model for `POST /v1/images/generations`. 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.
161
162
 
162
163
  ## Usage
163
164
 
@@ -173,7 +174,7 @@ Use `/model` command in pi:
173
174
  /model theclawbay/gpt-image-2
174
175
  ```
175
176
 
176
- Gemini model IDs appear only when TheClawBay returns them from live discovery or the local discovery cache. 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. Transient hosted image failures are retried up to 5 times by default. Partial images are not reported as success unless `PI_CLAWBAY_IMAGE_ALLOW_PARTIAL=1` is set.
177
+ Gemini model IDs appear only when TheClawBay returns them from live discovery or the local discovery cache. 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. Transient direct image failures are retried up to 5 times by default.
177
178
 
178
179
  ### Commands
179
180
 
@@ -214,11 +215,11 @@ export default function (pi: ExtensionAPI) {
214
215
  |--------------|------------------|----------|
215
216
  | `theclawbay/gpt-*`, `theclawbay/*codex*` | `https://api.theclawbay.com/backend-api/codex` | Custom Codex Responses transport (`theclawbay-codex-responses`) |
216
217
  | `theclawbay/gemini-*` | `https://api.theclawbay.com/v1beta` | Pi `google-generative-ai` transport |
217
- | `theclawbay/gpt-image-2` | `https://api.theclawbay.com/backend-api/codex/responses` | Hosted Responses `image_generation` |
218
+ | `theclawbay/gpt-image-2` | `https://api.theclawbay.com/v1/images/generations` | Direct OpenAI-compatible Images API |
218
219
 
219
220
  ### Authentication
220
221
 
221
- All model families use the same `THECLAWBAY_API_KEY` value. GPT/Codex and hosted image requests use Bearer token authentication:
222
+ All model families use the same `THECLAWBAY_API_KEY` value. GPT/Codex and direct image requests use Bearer token authentication:
222
223
 
223
224
  ```text
224
225
  Authorization: Bearer THECLAWBAY_API_KEY
@@ -1 +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;AAwC/B,wBAAgB,iBAAiB,IAAI,MAAM,CAQ1C;AAiXD,wBAAgB,qCAAqC,CACpD,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EACjB,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,mBAAmB,GAC3B,2BAA2B,CAkC7B"}
1
+ {"version":3,"file":"image-generation.d.ts","sourceRoot":"","sources":["../src/image-generation.ts"],"names":[],"mappings":"AAKA,OAAO,EAEN,KAAK,GAAG,EAER,KAAK,2BAA2B,EAChC,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,mBAAmB,EACxB,MAAM,uBAAuB,CAAC;AAqB/B,wBAAgB,iBAAiB,IAAI,MAAM,CAQ1C;AAiOD,wBAAgB,qCAAqC,CACpD,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EACjB,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,mBAAmB,GAC3B,2BAA2B,CAkC7B"}
@@ -1,23 +1,13 @@
1
1
  import { randomUUID } from "node:crypto";
2
2
  import { mkdirSync, writeFileSync } from "node:fs";
3
3
  import { homedir } from "node:os";
4
- import { join } from "node:path";
4
+ import { basename, join } from "node:path";
5
+ import { pathToFileURL } from "node:url";
5
6
  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
- const DEFAULT_HOSTED_IMAGE_MAX_RETRIES = 5;
10
- const ALLOW_PARTIAL_ENV = "PI_CLAWBAY_IMAGE_ALLOW_PARTIAL";
11
- class HostedImageGenerationStreamError extends Error {
12
- partial;
13
- retryable;
14
- constructor(message, options) {
15
- super(message);
16
- this.name = "HostedImageGenerationStreamError";
17
- this.partial = options?.partial;
18
- this.retryable = options?.retryable ?? false;
19
- }
20
- }
7
+ import { THECLAWBAY_IMAGES_GENERATIONS_URL } from "./constants.js";
8
+ const DEFAULT_DIRECT_IMAGE_MAX_RETRIES = 5;
9
+ const DIRECT_IMAGE_SIZE = "1024x1024";
10
+ const RETRY_PROGRESS_MESSAGE = "⚠️ Image service was temporarily busy. Retrying…\n";
21
11
  export function getImageOutputDir() {
22
12
  const overrideDir = process.env.PI_CLAWBAY_IMAGE_DIR?.trim();
23
13
  if (overrideDir) {
@@ -72,11 +62,13 @@ function saveGeneratedPng(base64) {
72
62
  writeFileSync(path, image, "binary");
73
63
  return { path, bytes: image.byteLength };
74
64
  }
75
- function formatSuccessMessage(path, bytes, revisedPrompt, usedPartial = false) {
76
- const lines = [`Generated image saved to \`${path}\` (${bytes.toLocaleString()} bytes).`];
77
- if (usedPartial) {
78
- lines.push("Saved latest partial image because the final image was unavailable.");
79
- }
65
+ function formatSuccessMessage(path, bytes, revisedPrompt) {
66
+ const fileName = basename(path);
67
+ const fileUrl = pathToFileURL(path).href;
68
+ const lines = [
69
+ `Generated image saved: [${fileName}](${fileUrl}) (${bytes.toLocaleString()} bytes).`,
70
+ `Path: \`${path}\``,
71
+ ];
80
72
  if (revisedPrompt) {
81
73
  lines.push(`Revised prompt: ${revisedPrompt}`);
82
74
  }
@@ -88,263 +80,120 @@ async function requestImageGeneration(model, context, options, onProgress) {
88
80
  throw new Error("No API key for provider: theclawbay");
89
81
  }
90
82
  onProgress?.("🎨 Preparing image request…\n");
91
- const body = await buildHostedImageRequestBody(model, context, options);
92
- const payload = await fetchHostedImageGeneration(model, apiKey, body, options, onProgress);
83
+ const body = await buildDirectImageRequestBody(model, context, options);
84
+ const payload = await fetchDirectImageGeneration(model, apiKey, body, options, onProgress);
93
85
  onProgress?.("💾 Saving final image…\n");
94
86
  const saved = saveGeneratedPng(payload.base64);
95
- return { ...saved, revisedPrompt: payload.revisedPrompt, usedPartial: payload.usedPartial };
87
+ return { ...saved, revisedPrompt: payload.revisedPrompt };
96
88
  }
97
- async function buildHostedImageRequestBody(model, context, options) {
89
+ async function buildDirectImageRequestBody(model, context, options) {
98
90
  const prompt = extractPrompt(context);
99
91
  if (!prompt) {
100
92
  throw new Error("gpt-image-2 requires a non-empty user prompt");
101
93
  }
102
94
  const body = {
103
- model: getImageResponsesModelId(),
104
- store: false,
105
- stream: true,
106
- instructions: context.systemPrompt,
107
- input: [{ role: "user", content: [{ type: "input_text", text: prompt }] }],
108
- tools: [
109
- {
110
- type: "image_generation",
111
- model: model.id,
112
- output_format: "png",
113
- size: "1024x1024",
114
- partial_images: HOSTED_IMAGE_PARTIAL_COUNT,
115
- },
116
- ],
117
- tool_choice: "auto",
118
- parallel_tool_calls: true,
119
- text: { verbosity: "low" },
120
- include: ["reasoning.encrypted_content"],
121
- ...(options?.sessionId ? { prompt_cache_key: options.sessionId } : {}),
95
+ model: model.id,
96
+ prompt,
97
+ size: DIRECT_IMAGE_SIZE,
98
+ n: 1,
122
99
  };
123
100
  return (await options?.onPayload?.(body, model)) ?? body;
124
101
  }
125
- function buildHostedRequestHeaders(apiKey, options) {
102
+ function buildDirectRequestHeaders(apiKey, options) {
126
103
  return {
127
104
  ...(options?.headers ?? {}),
128
105
  Authorization: `Bearer ${apiKey}`,
129
106
  "Content-Type": "application/json",
130
- "chatgpt-account-id": THECLAWBAY_CHATGPT_ACCOUNT_ID,
131
- originator: "pi",
132
- "OpenAI-Beta": "responses=experimental",
133
- ...(options?.sessionId ? { session_id: options.sessionId } : {}),
134
107
  };
135
108
  }
136
- function createHostedRequestModel(model) {
137
- const requestModelId = getImageResponsesModelId();
138
- return {
139
- ...model,
140
- id: requestModelId,
141
- name: requestModelId,
142
- reasoning: true,
143
- input: [...MODEL_INPUTS],
144
- cost: OPENAI_KNOWN_COSTS[requestModelId] ?? model.cost,
145
- thinkingLevelMap: { ...OPENAI_CODEX_THINKING_LEVEL_MAP },
146
- };
147
- }
148
- function getImageResponsesModelId() {
149
- return process.env.PI_CLAWBAY_IMAGE_RESPONSES_MODEL?.trim() || DEFAULT_IMAGE_RESPONSES_MODEL_ID;
150
- }
151
- async function fetchHostedImageGeneration(model, apiKey, body, options, onProgress) {
152
- let latestPartial;
109
+ async function fetchDirectImageGeneration(model, apiKey, body, options, onProgress) {
153
110
  let lastError;
154
- const maxRetries = getHostedImageMaxRetries();
111
+ const maxRetries = getDirectImageMaxRetries();
155
112
  for (let attempt = 0; attempt <= maxRetries; attempt++) {
156
113
  onProgress?.("🖌️ Generating image…\n");
157
- const response = await fetch(THECLAWBAY_CODEX_RESPONSES_URL, {
158
- method: "POST",
159
- headers: buildHostedRequestHeaders(apiKey, options),
160
- body: JSON.stringify(body),
161
- signal: options?.signal,
162
- });
163
- await options?.onResponse?.({ status: response.status, headers: headersToRecord(response.headers) }, createHostedRequestModel(model));
164
- if (!response.ok) {
165
- const message = await response.text();
166
- if (attempt < maxRetries && isRetryableHttpStatus(response.status)) {
167
- lastError = new Error(message);
168
- onProgress?.("⚠️ Image service was temporarily busy. Retrying…\n");
169
- continue;
170
- }
171
- throw new Error(message);
172
- }
173
- try {
174
- return await readHostedImageGenerationStream(response, onProgress);
175
- }
176
- catch (error) {
177
- lastError = error;
178
- if (error instanceof HostedImageGenerationStreamError && error.partial) {
179
- latestPartial = error.partial;
114
+ const response = await trySendDirectImageRequest(apiKey, body, options);
115
+ if (response instanceof Error) {
116
+ lastError = response;
117
+ if (!shouldRetryDirectImageRequest(attempt, maxRetries, undefined, options)) {
118
+ throw response;
180
119
  }
181
- if (error instanceof HostedImageGenerationStreamError && error.retryable && attempt < maxRetries && !options?.signal?.aborted) {
182
- onProgress?.("⚠️ Image service was temporarily busy. Retrying…\n");
183
- continue;
184
- }
185
- break;
186
- }
187
- }
188
- if (latestPartial && isPartialImageFallbackEnabled()) {
189
- return { ...latestPartial, usedPartial: true };
190
- }
191
- throw lastError instanceof Error ? lastError : new Error("TheClawBay hosted image generation failed");
192
- }
193
- async function readHostedImageGenerationStream(response, onProgress) {
194
- let finalImage;
195
- let latestPartial;
196
- let completed = false;
197
- for await (const event of parseTheClawBaySse(response)) {
198
- const eventType = typeof event.type === "string" ? event.type : undefined;
199
- if (eventType === "response.image_generation_call.partial_image" && typeof event.partial_image_b64 === "string") {
200
- latestPartial = {
201
- base64: event.partial_image_b64,
202
- partialIndex: typeof event.partial_image_index === "number" ? event.partial_image_index : undefined,
203
- };
204
- onProgress?.("✨ Refining image…\n");
120
+ onProgress?.(RETRY_PROGRESS_MESSAGE);
205
121
  continue;
206
122
  }
207
- if (eventType === "response.output_item.done" && isRecord(event.item) && event.item.type === "image_generation_call") {
208
- if (typeof event.item.result === "string" && event.item.result.length > 0) {
209
- finalImage = {
210
- base64: event.item.result,
211
- revisedPrompt: typeof event.item.revised_prompt === "string" ? event.item.revised_prompt : undefined,
212
- };
213
- }
214
- continue;
215
- }
216
- if (eventType === "response.completed") {
217
- if (isRecord(event.response)) {
218
- const completedImage = extractFinalImageFromResponse(event.response);
219
- if (completedImage) {
220
- finalImage = completedImage;
221
- }
222
- }
223
- completed = true;
224
- continue;
123
+ await options?.onResponse?.({ status: response.status, headers: headersToRecord(response.headers) }, model);
124
+ if (response.ok) {
125
+ return readDirectImageGenerationResponse(await response.json());
225
126
  }
226
- if (eventType === "response.failed") {
227
- throw new HostedImageGenerationStreamError(readResponseFailureMessage(event, "TheClawBay hosted image generation failed"), {
228
- partial: latestPartial,
229
- retryable: isRetryableResponseFailure(event),
230
- });
127
+ lastError = new Error(await readImageErrorMessage(response));
128
+ if (!shouldRetryDirectImageRequest(attempt, maxRetries, response.status, options)) {
129
+ throw lastError;
231
130
  }
232
- if (eventType === "error") {
233
- throw new HostedImageGenerationStreamError(readResponseFailureMessage(event, "TheClawBay hosted image generation stream error"), {
234
- partial: latestPartial,
235
- retryable: true,
236
- });
237
- }
238
- }
239
- if (finalImage) {
240
- return { ...finalImage, usedPartial: false };
131
+ onProgress?.(RETRY_PROGRESS_MESSAGE);
241
132
  }
242
- if (latestPartial) {
243
- throw new HostedImageGenerationStreamError("TheClawBay hosted image generation completed without a final image", {
244
- partial: latestPartial,
245
- retryable: true,
133
+ throw lastError instanceof Error ? lastError : new Error("TheClawBay direct image generation failed");
134
+ }
135
+ async function trySendDirectImageRequest(apiKey, body, options) {
136
+ try {
137
+ return await fetch(THECLAWBAY_IMAGES_GENERATIONS_URL, {
138
+ method: "POST",
139
+ headers: buildDirectRequestHeaders(apiKey, options),
140
+ body: JSON.stringify(body),
141
+ signal: options?.signal,
246
142
  });
247
143
  }
248
- if (!completed) {
249
- throw new Error("TheClawBay hosted image generation stream ended before completion");
144
+ catch (error) {
145
+ return error instanceof Error ? error : new Error(String(error));
250
146
  }
251
- throw new Error("TheClawBay hosted image generation response did not include an image");
252
147
  }
253
- function extractFinalImageFromResponse(response) {
254
- const output = Array.isArray(response.output) ? response.output : [];
255
- for (const item of output) {
256
- if (!isRecord(item) || item.type !== "image_generation_call" || typeof item.result !== "string" || item.result.length === 0) {
148
+ function readDirectImageGenerationResponse(response) {
149
+ if (!isRecord(response) || !Array.isArray(response.data)) {
150
+ throw new Error("TheClawBay direct image generation response did not include an image");
151
+ }
152
+ for (const item of response.data) {
153
+ if (!isRecord(item) || typeof item.b64_json !== "string" || item.b64_json.length === 0) {
257
154
  continue;
258
155
  }
259
156
  return {
260
- base64: item.result,
157
+ base64: item.b64_json,
261
158
  revisedPrompt: typeof item.revised_prompt === "string" ? item.revised_prompt : undefined,
262
159
  };
263
160
  }
264
- return undefined;
161
+ throw new Error("TheClawBay direct image generation response did not include an image");
265
162
  }
266
- function getHostedImageMaxRetries() {
163
+ async function readImageErrorMessage(response) {
164
+ const text = await response.text();
165
+ try {
166
+ const parsed = JSON.parse(text);
167
+ const error = isRecord(parsed) && isRecord(parsed.error) ? parsed.error : undefined;
168
+ if (typeof error?.message === "string" && error.message.trim()) {
169
+ return error.message;
170
+ }
171
+ }
172
+ catch {
173
+ // Fall through to raw response text.
174
+ }
175
+ return text.trim() || `TheClawBay image generation failed with HTTP ${response.status}`;
176
+ }
177
+ function getDirectImageMaxRetries() {
267
178
  const value = process.env.PI_CLAWBAY_IMAGE_MAX_RETRIES?.trim();
268
179
  if (!value) {
269
- return DEFAULT_HOSTED_IMAGE_MAX_RETRIES;
180
+ return DEFAULT_DIRECT_IMAGE_MAX_RETRIES;
270
181
  }
271
182
  const parsed = Number.parseInt(value, 10);
272
- return Number.isFinite(parsed) ? Math.max(0, Math.min(parsed, 5)) : DEFAULT_HOSTED_IMAGE_MAX_RETRIES;
183
+ return Number.isFinite(parsed) ? Math.max(0, Math.min(parsed, 5)) : DEFAULT_DIRECT_IMAGE_MAX_RETRIES;
273
184
  }
274
- function isPartialImageFallbackEnabled() {
275
- const value = process.env[ALLOW_PARTIAL_ENV]?.trim().toLowerCase();
276
- return value === "1" || value === "true" || value === "yes" || value === "on";
185
+ function shouldRetryDirectImageRequest(attempt, maxRetries, status, options) {
186
+ if (attempt >= maxRetries || options?.signal?.aborted) {
187
+ return false;
188
+ }
189
+ return status === undefined || isRetryableHttpStatus(status);
277
190
  }
278
191
  function isRetryableHttpStatus(status) {
279
192
  return status === 408 || status === 409 || status === 429 || status >= 500;
280
193
  }
281
- function isRetryableResponseFailure(event) {
282
- const response = isRecord(event.response) ? event.response : undefined;
283
- const error = isRecord(response?.error) ? response.error : undefined;
284
- const code = typeof error?.code === "string" ? error.code : "";
285
- const type = typeof error?.type === "string" ? error.type : "";
286
- return code === "service_unavailable" || code === "proxy_request_failed" || type === "server_error";
287
- }
288
- async function* parseTheClawBaySse(response) {
289
- if (!response.body) {
290
- return;
291
- }
292
- const reader = response.body.getReader();
293
- const decoder = new TextDecoder();
294
- let buffer = "";
295
- try {
296
- while (true) {
297
- const { done, value } = await reader.read();
298
- if (done) {
299
- break;
300
- }
301
- buffer += decoder.decode(value, { stream: true });
302
- let index = buffer.indexOf("\n\n");
303
- while (index !== -1) {
304
- const chunk = buffer.slice(0, index);
305
- buffer = buffer.slice(index + 2);
306
- const data = chunk
307
- .split("\n")
308
- .filter((line) => line.startsWith("data:"))
309
- .map((line) => line.slice(5).trim())
310
- .join("\n")
311
- .trim();
312
- if (data && data !== "[DONE]") {
313
- yield JSON.parse(data);
314
- }
315
- index = buffer.indexOf("\n\n");
316
- }
317
- }
318
- }
319
- finally {
320
- try {
321
- await reader.cancel();
322
- }
323
- catch {
324
- // Ignore stream cleanup errors.
325
- }
326
- try {
327
- reader.releaseLock();
328
- }
329
- catch {
330
- // Ignore stream cleanup errors.
331
- }
332
- }
333
- }
334
194
  function isRecord(value) {
335
195
  return Boolean(value && typeof value === "object" && !Array.isArray(value));
336
196
  }
337
- function readResponseFailureMessage(event, fallback) {
338
- const response = isRecord(event.response) ? event.response : undefined;
339
- const error = isRecord(response?.error) ? response.error : undefined;
340
- if (typeof error?.message === "string" && error.message.trim()) {
341
- return error.message;
342
- }
343
- if (typeof event.message === "string" && event.message.trim()) {
344
- return event.message;
345
- }
346
- return fallback;
347
- }
348
197
  export function streamSimpleTheClawBayImageGeneration(model, context, options) {
349
198
  const stream = createAssistantMessageEventStream();
350
199
  void (async () => {
@@ -362,7 +211,7 @@ export function streamSimpleTheClawBayImageGeneration(model, context, options) {
362
211
  stream.push({ type: "start", partial: output });
363
212
  stream.push({ type: "text_start", contentIndex: 0, partial: output });
364
213
  const result = await requestImageGeneration(model, context, options, appendTextDelta);
365
- const text = formatSuccessMessage(result.path, result.bytes, result.revisedPrompt, result.usedPartial);
214
+ const text = formatSuccessMessage(result.path, result.bytes, result.revisedPrompt);
366
215
  appendTextDelta(text);
367
216
  const block = output.content[0];
368
217
  const content = block?.type === "text" ? block.text : text;
@@ -1 +1 @@
1
- {"version":3,"file":"image-generation.js","sourceRoot":"","sources":["../src/image-generation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"image-generation.js","sourceRoot":"","sources":["../src/image-generation.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -5,7 +5,7 @@
5
5
  * Uses a single `theclawbay` provider with per-model routing:
6
6
  * - GPT/Codex: custom native Codex transport for prompt-cache hits
7
7
  * - Gemini: Pi's native google-generative-ai transport against TheClawBay /v1beta
8
- * - gpt-image-2: hosted Codex Responses image_generation tool
8
+ * - gpt-image-2: direct OpenAI-compatible Images API
9
9
  *
10
10
  * Features:
11
11
  * - /quota command to check detailed usage
package/dist/index.js CHANGED
@@ -5,7 +5,7 @@
5
5
  * Uses a single `theclawbay` provider with per-model routing:
6
6
  * - GPT/Codex: custom native Codex transport for prompt-cache hits
7
7
  * - Gemini: Pi's native google-generative-ai transport against TheClawBay /v1beta
8
- * - gpt-image-2: hosted Codex Responses image_generation tool
8
+ * - gpt-image-2: direct OpenAI-compatible Images API
9
9
  *
10
10
  * Features:
11
11
  * - /quota command to check detailed usage
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-clawbay",
3
- "version": "0.0.26",
3
+ "version": "0.0.28",
4
4
  "description": "TheClawBay provider extension for Pi Coding Agent - access GPT-5 and Codex models",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",