pi-clawbay 0.0.21 → 0.0.23

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
@@ -61,9 +61,9 @@ Requests for `theclawbay/*` text and coding models are sent through TheClawBay's
61
61
 
62
62
  - `https://api.theclawbay.com/backend-api/codex`
63
63
 
64
- Requests for `theclawbay/gpt-image-2` are sent through TheClawBay's OpenAI-compatible Images route:
64
+ Requests for `theclawbay/gpt-image-2` are sent through TheClawBay's Codex Responses route with the hosted `image_generation` tool:
65
65
 
66
- - `https://api.theclawbay.com/v1/images/generations`
66
+ - `https://api.theclawbay.com/backend-api/codex/responses`
67
67
 
68
68
  This extension uses a custom Responses transport for that route. It sends:
69
69
 
@@ -71,6 +71,7 @@ This extension uses a custom Responses transport for that route. It sends:
71
71
  - `chatgpt-account-id: theclawbay`
72
72
  - `session_id` when Pi provides a session id
73
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 }]`
74
75
 
75
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.
76
77
 
@@ -103,7 +104,7 @@ Why split it?
103
104
  - `gpt-5.4` is configured with a `272,000` token context window.
104
105
  - `gpt-5.4[1m]` is configured with a `1,050,000` token context window.
105
106
  - Current non-5.4 GPT-5/Codex variants default to `272,000` context and `128,000` max output tokens.
106
- - `gpt-image-2` uses the Images API path with `1024x1024` PNG output, `272,000` context metadata, and `65,536` max output metadata.
107
+ - `gpt-image-2` uses the hosted Responses image-generation path with `1024x1024` PNG output, `272,000` context metadata, and `65,536` max output metadata.
107
108
 
108
109
  ### Example Model List
109
110
 
@@ -120,7 +121,7 @@ Current fallback list in this package:
120
121
  - `gpt-5.1-codex-max`
121
122
  - `gpt-5.1-codex-mini`
122
123
 
123
- `gpt-image-2` is exposed because TheClawBay's latest npm setup marks it as an OpenAI-compatible image generation endpoint backed by `codex-lb`. 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.
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.
124
125
 
125
126
  ## Usage
126
127
 
@@ -135,7 +136,7 @@ Use `/model` command in pi:
135
136
  /model theclawbay/gpt-image-2
136
137
  ```
137
138
 
138
- 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.
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. 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.
139
140
 
140
141
  ### Commands
141
142
 
@@ -174,7 +175,7 @@ export default function (pi: ExtensionAPI) {
174
175
  | Provider | Base URL | API Type |
175
176
  |----------|----------|----------|
176
177
  | `theclawbay` | `https://api.theclawbay.com/backend-api/codex` | OpenAI Codex Responses |
177
- | `theclawbay/gpt-image-2` | `https://api.theclawbay.com/v1/images/generations` | OpenAI Images Generations |
178
+ | `theclawbay/gpt-image-2` | `https://api.theclawbay.com/backend-api/codex/responses` | Hosted Responses `image_generation` |
178
179
 
179
180
  ### Authentication
180
181
 
@@ -1,6 +1,7 @@
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";
6
7
  export declare const THECLAWBAY_IMAGES_GENERATIONS_URL = "https://api.theclawbay.com/v1/images/generations";
@@ -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,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"}
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,5 +1,6 @@
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`;
5
6
  export const THECLAWBAY_IMAGES_GENERATIONS_URL = `${THECLAWBAY_OPENAI_DISCOVERY_BASE_URL}/images/generations`;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
@@ -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;AAiB/B,wBAAgB,iBAAiB,IAAI,MAAM,CAQ1C;AA4ID,wBAAgB,qCAAqC,CACpD,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EACjB,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,mBAAmB,GAC3B,2BAA2B,CAsB7B"}
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;AAsC/B,wBAAgB,iBAAiB,IAAI,MAAM,CAQ1C;AAsWD,wBAAgB,qCAAqC,CACpD,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EACjB,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,mBAAmB,GAC3B,2BAA2B,CAsB7B"}
@@ -3,9 +3,21 @@ import { mkdirSync, writeFileSync } from "node:fs";
3
3
  import { homedir } from "node:os";
4
4
  import { join } from "node:path";
5
5
  import { createAssistantMessageEventStream, } from "@earendil-works/pi-ai";
6
- import { THECLAWBAY_IMAGES_GENERATIONS_URL } from "./constants.js";
7
- const IMAGE_GENERATION_MAX_RETRIES = 3;
8
- const IMAGE_GENERATION_RETRY_DELAY_MS = 1000;
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
+ }
9
21
  export function getImageOutputDir() {
10
22
  const overrideDir = process.env.PI_CLAWBAY_IMAGE_DIR?.trim();
11
23
  if (overrideDir) {
@@ -60,8 +72,11 @@ function saveGeneratedPng(base64) {
60
72
  writeFileSync(path, image, "binary");
61
73
  return { path, bytes: image.byteLength };
62
74
  }
63
- function formatSuccessMessage(path, bytes, revisedPrompt) {
75
+ function formatSuccessMessage(path, bytes, revisedPrompt, usedPartial = false) {
64
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
80
  if (revisedPrompt) {
66
81
  lines.push(`Revised prompt: ${revisedPrompt}`);
67
82
  }
@@ -72,60 +87,257 @@ async function requestImageGeneration(model, context, options) {
72
87
  if (!apiKey) {
73
88
  throw new Error("No API key for provider: theclawbay");
74
89
  }
75
- const body = await buildImageRequestBody(model, context, options);
76
- const payload = await fetchImageGenerationPayload(model, apiKey, body, options);
77
- const first = payload.data?.[0];
78
- if (!first?.b64_json) {
79
- throw new Error("Image generation response did not include b64_json");
90
+ const body = await buildHostedImageRequestBody(model, context, options);
91
+ const payload = await fetchHostedImageGeneration(model, apiKey, body, options);
92
+ const saved = saveGeneratedPng(payload.base64);
93
+ return { ...saved, revisedPrompt: payload.revisedPrompt, usedPartial: payload.usedPartial };
94
+ }
95
+ async function buildHostedImageRequestBody(model, context, options) {
96
+ const prompt = extractPrompt(context);
97
+ if (!prompt) {
98
+ throw new Error("gpt-image-2 requires a non-empty user prompt");
80
99
  }
81
- return { ...saveGeneratedPng(first.b64_json), revisedPrompt: first.revised_prompt };
100
+ const body = {
101
+ model: getImageResponsesModelId(),
102
+ store: false,
103
+ stream: true,
104
+ instructions: context.systemPrompt,
105
+ input: [{ role: "user", content: [{ type: "input_text", text: prompt }] }],
106
+ tools: [
107
+ {
108
+ type: "image_generation",
109
+ model: model.id,
110
+ output_format: "png",
111
+ size: "1024x1024",
112
+ partial_images: HOSTED_IMAGE_PARTIAL_COUNT,
113
+ },
114
+ ],
115
+ tool_choice: "auto",
116
+ parallel_tool_calls: true,
117
+ text: { verbosity: "low" },
118
+ include: ["reasoning.encrypted_content"],
119
+ ...(options?.sessionId ? { prompt_cache_key: options.sessionId } : {}),
120
+ };
121
+ return (await options?.onPayload?.(body, model)) ?? body;
122
+ }
123
+ function buildHostedRequestHeaders(apiKey, options) {
124
+ return {
125
+ ...(options?.headers ?? {}),
126
+ Authorization: `Bearer ${apiKey}`,
127
+ "Content-Type": "application/json",
128
+ "chatgpt-account-id": THECLAWBAY_CHATGPT_ACCOUNT_ID,
129
+ originator: "pi",
130
+ "OpenAI-Beta": "responses=experimental",
131
+ ...(options?.sessionId ? { session_id: options.sessionId } : {}),
132
+ };
133
+ }
134
+ function createHostedRequestModel(model) {
135
+ const requestModelId = getImageResponsesModelId();
136
+ return {
137
+ ...model,
138
+ id: requestModelId,
139
+ name: requestModelId,
140
+ reasoning: true,
141
+ input: [...MODEL_INPUTS],
142
+ cost: OPENAI_KNOWN_COSTS[requestModelId] ?? model.cost,
143
+ thinkingLevelMap: { ...OPENAI_CODEX_THINKING_LEVEL_MAP },
144
+ };
82
145
  }
83
- function isRetryableImageError(status, payload) {
84
- const code = payload.error?.code ?? "";
85
- return status === 429 || status >= 500 || code === "service_unavailable" || code === "proxy_request_failed";
146
+ function getImageResponsesModelId() {
147
+ return process.env.PI_CLAWBAY_IMAGE_RESPONSES_MODEL?.trim() || DEFAULT_IMAGE_RESPONSES_MODEL_ID;
86
148
  }
87
- function sleep(ms, signal) {
88
- return new Promise((resolve, reject) => {
89
- const timeout = setTimeout(resolve, ms);
90
- signal?.addEventListener("abort", () => {
91
- clearTimeout(timeout);
92
- reject(new Error("Request was aborted"));
149
+ async function fetchHostedImageGeneration(model, apiKey, body, options) {
150
+ let latestPartial;
151
+ let lastError;
152
+ const maxRetries = getHostedImageMaxRetries();
153
+ for (let attempt = 0; attempt <= maxRetries; attempt++) {
154
+ const response = await fetch(THECLAWBAY_CODEX_RESPONSES_URL, {
155
+ method: "POST",
156
+ headers: buildHostedRequestHeaders(apiKey, options),
157
+ body: JSON.stringify(body),
158
+ signal: options?.signal,
159
+ });
160
+ await options?.onResponse?.({ status: response.status, headers: headersToRecord(response.headers) }, createHostedRequestModel(model));
161
+ if (!response.ok) {
162
+ const message = await response.text();
163
+ if (attempt < maxRetries && isRetryableHttpStatus(response.status)) {
164
+ lastError = new Error(message);
165
+ continue;
166
+ }
167
+ throw new Error(message);
168
+ }
169
+ try {
170
+ return await readHostedImageGenerationStream(response);
171
+ }
172
+ catch (error) {
173
+ lastError = error;
174
+ if (error instanceof HostedImageGenerationStreamError && error.partial) {
175
+ latestPartial = error.partial;
176
+ }
177
+ if (error instanceof HostedImageGenerationStreamError && error.retryable && attempt < maxRetries && !options?.signal?.aborted) {
178
+ continue;
179
+ }
180
+ break;
181
+ }
182
+ }
183
+ if (latestPartial && isPartialImageFallbackEnabled()) {
184
+ return { ...latestPartial, usedPartial: true };
185
+ }
186
+ throw lastError instanceof Error ? lastError : new Error("TheClawBay hosted image generation failed");
187
+ }
188
+ async function readHostedImageGenerationStream(response) {
189
+ let finalImage;
190
+ let latestPartial;
191
+ let completed = false;
192
+ for await (const event of parseTheClawBaySse(response)) {
193
+ const eventType = typeof event.type === "string" ? event.type : undefined;
194
+ if (eventType === "response.image_generation_call.partial_image" && typeof event.partial_image_b64 === "string") {
195
+ latestPartial = {
196
+ base64: event.partial_image_b64,
197
+ partialIndex: typeof event.partial_image_index === "number" ? event.partial_image_index : undefined,
198
+ };
199
+ continue;
200
+ }
201
+ if (eventType === "response.output_item.done" && isRecord(event.item) && event.item.type === "image_generation_call") {
202
+ if (typeof event.item.result === "string" && event.item.result.length > 0) {
203
+ finalImage = {
204
+ base64: event.item.result,
205
+ revisedPrompt: typeof event.item.revised_prompt === "string" ? event.item.revised_prompt : undefined,
206
+ };
207
+ }
208
+ continue;
209
+ }
210
+ if (eventType === "response.completed") {
211
+ if (isRecord(event.response)) {
212
+ const completedImage = extractFinalImageFromResponse(event.response);
213
+ if (completedImage) {
214
+ finalImage = completedImage;
215
+ }
216
+ }
217
+ completed = true;
218
+ continue;
219
+ }
220
+ if (eventType === "response.failed") {
221
+ throw new HostedImageGenerationStreamError(readResponseFailureMessage(event, "TheClawBay hosted image generation failed"), {
222
+ partial: latestPartial,
223
+ retryable: isRetryableResponseFailure(event),
224
+ });
225
+ }
226
+ if (eventType === "error") {
227
+ throw new HostedImageGenerationStreamError(readResponseFailureMessage(event, "TheClawBay hosted image generation stream error"), {
228
+ partial: latestPartial,
229
+ retryable: true,
230
+ });
231
+ }
232
+ }
233
+ if (finalImage) {
234
+ return { ...finalImage, usedPartial: false };
235
+ }
236
+ if (latestPartial) {
237
+ throw new HostedImageGenerationStreamError("TheClawBay hosted image generation completed without a final image", {
238
+ partial: latestPartial,
239
+ retryable: true,
93
240
  });
94
- });
95
- }
96
- async function fetchImageGenerationPayload(model, apiKey, body, options) {
97
- let lastError = new Error("Image generation failed");
98
- for (let attempt = 0; attempt <= IMAGE_GENERATION_MAX_RETRIES; attempt++) {
99
- const response = await fetchImageGenerationResponse(apiKey, body, options);
100
- await options?.onResponse?.({ status: response.status, headers: headersToRecord(response.headers) }, model);
101
- const payload = (await response.json());
102
- if (response.ok && !payload.error) {
103
- return payload;
104
- }
105
- lastError = new Error(payload.error?.message ?? `Image generation failed with HTTP ${response.status}`);
106
- if (attempt < IMAGE_GENERATION_MAX_RETRIES && isRetryableImageError(response.status, payload)) {
107
- await sleep(IMAGE_GENERATION_RETRY_DELAY_MS * 2 ** attempt, options?.signal);
241
+ }
242
+ if (!completed) {
243
+ throw new Error("TheClawBay hosted image generation stream ended before completion");
244
+ }
245
+ throw new Error("TheClawBay hosted image generation response did not include an image");
246
+ }
247
+ function extractFinalImageFromResponse(response) {
248
+ const output = Array.isArray(response.output) ? response.output : [];
249
+ for (const item of output) {
250
+ if (!isRecord(item) || item.type !== "image_generation_call" || typeof item.result !== "string" || item.result.length === 0) {
108
251
  continue;
109
252
  }
110
- break;
253
+ return {
254
+ base64: item.result,
255
+ revisedPrompt: typeof item.revised_prompt === "string" ? item.revised_prompt : undefined,
256
+ };
111
257
  }
112
- throw lastError;
258
+ return undefined;
113
259
  }
114
- function fetchImageGenerationResponse(apiKey, body, options) {
115
- return fetch(THECLAWBAY_IMAGES_GENERATIONS_URL, {
116
- method: "POST",
117
- headers: { Authorization: `Bearer ${apiKey}`, "Content-Type": "application/json" },
118
- body: JSON.stringify(body),
119
- signal: options?.signal,
120
- });
260
+ function getHostedImageMaxRetries() {
261
+ const value = process.env.PI_CLAWBAY_IMAGE_MAX_RETRIES?.trim();
262
+ if (!value) {
263
+ return DEFAULT_HOSTED_IMAGE_MAX_RETRIES;
264
+ }
265
+ const parsed = Number.parseInt(value, 10);
266
+ return Number.isFinite(parsed) ? Math.max(0, Math.min(parsed, 5)) : DEFAULT_HOSTED_IMAGE_MAX_RETRIES;
121
267
  }
122
- async function buildImageRequestBody(model, context, options) {
123
- const prompt = extractPrompt(context);
124
- if (!prompt) {
125
- throw new Error("gpt-image-2 requires a non-empty user prompt");
268
+ function isPartialImageFallbackEnabled() {
269
+ const value = process.env[ALLOW_PARTIAL_ENV]?.trim().toLowerCase();
270
+ return value === "1" || value === "true" || value === "yes" || value === "on";
271
+ }
272
+ function isRetryableHttpStatus(status) {
273
+ return status === 408 || status === 409 || status === 429 || status >= 500;
274
+ }
275
+ function isRetryableResponseFailure(event) {
276
+ const response = isRecord(event.response) ? event.response : undefined;
277
+ const error = isRecord(response?.error) ? response.error : undefined;
278
+ const code = typeof error?.code === "string" ? error.code : "";
279
+ const type = typeof error?.type === "string" ? error.type : "";
280
+ return code === "service_unavailable" || code === "proxy_request_failed" || type === "server_error";
281
+ }
282
+ async function* parseTheClawBaySse(response) {
283
+ if (!response.body) {
284
+ return;
126
285
  }
127
- const body = { model: model.id, prompt, n: 1, size: "1024x1024" };
128
- return (await options?.onPayload?.(body, model)) ?? body;
286
+ const reader = response.body.getReader();
287
+ const decoder = new TextDecoder();
288
+ let buffer = "";
289
+ try {
290
+ while (true) {
291
+ const { done, value } = await reader.read();
292
+ if (done) {
293
+ break;
294
+ }
295
+ buffer += decoder.decode(value, { stream: true });
296
+ let index = buffer.indexOf("\n\n");
297
+ while (index !== -1) {
298
+ const chunk = buffer.slice(0, index);
299
+ buffer = buffer.slice(index + 2);
300
+ const data = chunk
301
+ .split("\n")
302
+ .filter((line) => line.startsWith("data:"))
303
+ .map((line) => line.slice(5).trim())
304
+ .join("\n")
305
+ .trim();
306
+ if (data && data !== "[DONE]") {
307
+ yield JSON.parse(data);
308
+ }
309
+ index = buffer.indexOf("\n\n");
310
+ }
311
+ }
312
+ }
313
+ finally {
314
+ try {
315
+ await reader.cancel();
316
+ }
317
+ catch {
318
+ // Ignore stream cleanup errors.
319
+ }
320
+ try {
321
+ reader.releaseLock();
322
+ }
323
+ catch {
324
+ // Ignore stream cleanup errors.
325
+ }
326
+ }
327
+ }
328
+ function isRecord(value) {
329
+ return Boolean(value && typeof value === "object" && !Array.isArray(value));
330
+ }
331
+ function readResponseFailureMessage(event, fallback) {
332
+ const response = isRecord(event.response) ? event.response : undefined;
333
+ const error = isRecord(response?.error) ? response.error : undefined;
334
+ if (typeof error?.message === "string" && error.message.trim()) {
335
+ return error.message;
336
+ }
337
+ if (typeof event.message === "string" && event.message.trim()) {
338
+ return event.message;
339
+ }
340
+ return fallback;
129
341
  }
130
342
  export function streamSimpleTheClawBayImageGeneration(model, context, options) {
131
343
  const stream = createAssistantMessageEventStream();
@@ -133,7 +345,7 @@ export function streamSimpleTheClawBayImageGeneration(model, context, options) {
133
345
  const output = createEmptyAssistantMessage(model);
134
346
  try {
135
347
  const result = await requestImageGeneration(model, context, options);
136
- const text = formatSuccessMessage(result.path, result.bytes, result.revisedPrompt);
348
+ const text = formatSuccessMessage(result.path, result.bytes, result.revisedPrompt, result.usedPartial);
137
349
  output.content.push({ type: "text", text });
138
350
  stream.push({ type: "start", partial: output });
139
351
  stream.push({ type: "text_start", contentIndex: 0, partial: output });
@@ -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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-clawbay",
3
- "version": "0.0.21",
3
+ "version": "0.0.23",
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",