@kenkaiiii/ggcoder 5.83.0 → 5.83.2

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.
@@ -12,13 +12,25 @@ export type GenerateImageAuth = {
12
12
  accountId?: string;
13
13
  }>;
14
14
  };
15
+ /** Timing seams for the retry policy, so tests can check the exact waits. */
16
+ export type ImageRetryDeps = {
17
+ /** Wait `ms`, rejecting early when `signal` aborts. */
18
+ sleep: (ms: number, signal: AbortSignal) => Promise<void>;
19
+ /** Uniform in [0, 1): the jitter source. */
20
+ random: () => number;
21
+ /** Wall-clock ms, for an HTTP-date `Retry-After`. */
22
+ now: () => number;
23
+ };
24
+ /**
25
+ * Wait before retry number `retry` (1-based), as Codex computes it: the
26
+ * server's `Retry-After` (whole seconds or an HTTP date) when present,
27
+ * otherwise exponential backoff from 200ms with ±10% jitter.
28
+ */
29
+ export declare function retryDelayMs(retry: number, retryAfter: string | null, deps: Pick<ImageRetryDeps, "random" | "now">): number;
15
30
  declare const GenerateImageParams: z.ZodObject<{
16
31
  prompt: z.ZodString;
17
- model: z.ZodOptional<z.ZodEnum<{
18
- "gpt-image-2.5-flare": "gpt-image-2.5-flare";
19
- "gpt-image-2.5-sunburst": "gpt-image-2.5-sunburst";
20
- }>>;
21
32
  image: z.ZodOptional<z.ZodString>;
33
+ images: z.ZodOptional<z.ZodArray<z.ZodString>>;
22
34
  size: z.ZodOptional<z.ZodString>;
23
35
  quality: z.ZodOptional<z.ZodEnum<{
24
36
  low: "low";
@@ -34,10 +46,21 @@ declare const GenerateImageParams: z.ZodObject<{
34
46
  webp: "webp";
35
47
  }>>;
36
48
  background: z.ZodOptional<z.ZodEnum<{
37
- auto: "auto";
38
49
  opaque: "opaque";
39
50
  transparent: "transparent";
40
51
  }>>;
41
52
  }, z.core.$strip>;
42
- export declare function createGenerateImageTool(cwd: string, auth: GenerateImageAuth): AgentTool<typeof GenerateImageParams>;
53
+ export declare function createGenerateImageTool(cwd: string, auth: GenerateImageAuth, retryDeps?: Partial<ImageRetryDeps>): AgentTool<typeof GenerateImageParams>;
54
+ type Dimensions = {
55
+ width: number;
56
+ height: number;
57
+ } | null;
58
+ /**
59
+ * Requested versus delivered size, for the agent to relay. The ChatGPT image
60
+ * backend can return a different size than asked (a user asked for 2048x2048
61
+ * and got 1254x1254), so a mismatch is reported plainly instead of the call
62
+ * reading as a clean success. Nothing is resized and nothing is re-requested:
63
+ * each request spends the user's image quota.
64
+ */
65
+ export declare function sizeReport(requested: string | undefined, paths: readonly string[], dimensions: readonly Dimensions[], reportedSizes: ReadonlyArray<string | undefined>): string;
43
66
  export {};
@@ -1,37 +1,107 @@
1
+ import { randomUUID } from "node:crypto";
2
+ import os from "node:os";
1
3
  import path from "node:path";
2
4
  import { mkdir, writeFile, readFile } from "node:fs/promises";
3
5
  import { z } from "zod";
6
+ import { CODEX_CLIENT_VERSION } from "@kenkaiiii/gg-ai";
4
7
  import { resolvePath } from "./path-utils.js";
5
- import { downscaleForPreview, shrinkToFit } from "../utils/image.js";
8
+ import { IMAGE_MEDIA_TYPES, convertImageFormat, downscaleForPreview, imageDimensions, shrinkToFit, } from "../utils/image.js";
6
9
  /**
7
- * The Codex backend endpoint — the SAME endpoint our OpenAI Codex streaming
8
- * provider uses for chat. ChatGPT OAuth tokens (from auth.openai.com PKCE flow)
9
- * are rejected by api.openai.com/v1/images/* (missing `api.model.images.request`
10
- * scope), but they work here. Image generation is done via the Responses API's
11
- * built-in `image_generation` tool, with the image model selected on that tool.
10
+ * Codex's own image endpoints, called the way the Codex CLI's image extension
11
+ * calls them (openai/codex `ext/image-generation/src/tool.rs` +
12
+ * `codex-api/src/endpoint/images.rs`, checked 2026-10-17 at 592964c0): a plain
13
+ * JSON POST to `images/generations` or `images/edits` under the ChatGPT Codex
14
+ * backend with `{ prompt, background, model, quality, size }` (edits add
15
+ * `images: [{ image_url }]`), answered with `data[].b64_json` PNG. ChatGPT OAuth tokens (auth.openai.com PKCE)
16
+ * are rejected by api.openai.com/v1/images/* (missing the
17
+ * `api.model.images.request` scope), but they work here.
18
+ *
19
+ * This used to go through `codex/responses` with a chat model driving the
20
+ * hosted `image_generation` tool. That broke twice over: the driving model
21
+ * (`gpt-5.5`) was retired, and the current Codex models are code-mode only,
22
+ * so they ignore the hosted tool and answer in text.
23
+ */
24
+ const CODEX_IMAGES_BASE = "https://chatgpt.com/backend-api/codex/images";
25
+ /** The endpoint always answers in PNG; other formats are re-encoded locally. */
26
+ const RESPONSE_FORMAT = "png";
27
+ /**
28
+ * Codex's `IMAGE_MODEL`. Codex sends this fixed id on every request; the
29
+ * backend picks the generator, so there is no model choice to offer.
30
+ */
31
+ const IMAGE_MODEL = "gpt-image-2";
32
+ /** Codex's `MAX_EDIT_IMAGES`: an edit takes one to five reference images. */
33
+ const MAX_EDIT_IMAGES = 5;
34
+ /**
35
+ * Codex's retry policy for image requests (codex-client `retry.rs`
36
+ * `run_with_retry`, with the provider's `DEFAULT_REQUEST_MAX_RETRIES` = 4 and a
37
+ * 200ms base delay): up to 4 retries (5 attempts) on a 5xx or a failed
38
+ * connection, never on a 4xx such as 429. The wait honours `Retry-After`;
39
+ * otherwise it doubles from 200ms with ±10% jitter (200, 400, 800, 1600ms).
40
+ */
41
+ const MAX_RETRIES = 4;
42
+ const RETRY_BASE_DELAY_MS = 200;
43
+ function abortableSleep(ms, signal) {
44
+ return new Promise((resolve, reject) => {
45
+ if (signal.aborted) {
46
+ reject(signal.reason);
47
+ return;
48
+ }
49
+ const onAbort = () => {
50
+ clearTimeout(timer);
51
+ reject(signal.reason);
52
+ };
53
+ const timer = setTimeout(() => {
54
+ signal.removeEventListener("abort", onAbort);
55
+ resolve();
56
+ }, ms);
57
+ signal.addEventListener("abort", onAbort, { once: true });
58
+ });
59
+ }
60
+ const DEFAULT_RETRY_DEPS = {
61
+ sleep: abortableSleep,
62
+ random: Math.random,
63
+ now: Date.now,
64
+ };
65
+ /**
66
+ * Wait before retry number `retry` (1-based), as Codex computes it: the
67
+ * server's `Retry-After` (whole seconds or an HTTP date) when present,
68
+ * otherwise exponential backoff from 200ms with ±10% jitter.
12
69
  */
13
- const CODEX_ENDPOINT = "https://chatgpt.com/backend-api/codex/responses";
14
- /** Model that supports the image_generation Responses API tool. */
15
- const IMAGE_GEN_MODEL = "gpt-5.5";
70
+ export function retryDelayMs(retry, retryAfter, deps) {
71
+ const value = retryAfter?.trim();
72
+ if (value) {
73
+ if (/^\d+$/.test(value))
74
+ return Number(value) * 1000;
75
+ const date = Date.parse(value);
76
+ if (Number.isFinite(date))
77
+ return Math.max(0, date - deps.now());
78
+ }
79
+ const jitter = 0.9 + deps.random() * 0.2;
80
+ return Math.floor(RETRY_BASE_DELAY_MS * 2 ** (retry - 1) * jitter);
81
+ }
16
82
  const GenerateImageParams = z.object({
17
83
  prompt: z.string().describe("Text description of the image to generate or the edit to apply"),
18
- model: z
19
- .enum(["gpt-image-2.5-flare", "gpt-image-2.5-sunburst"])
20
- .optional()
21
- .describe("Image model. Default: gpt-image-2.5-flare for fast, high-quality generation. " +
22
- "Use gpt-image-2.5-sunburst when editing precision matters most."),
23
84
  image: z
24
85
  .string()
25
86
  .optional()
26
87
  .describe("Path to an existing image file to edit (use the path returned by a previous " +
27
88
  "generate_image call, or a user-attached image path). When omitted, a new " +
28
- "image is generated from scratch."),
89
+ "image is generated from scratch. Use `images` instead for several references."),
90
+ images: z
91
+ .array(z.string())
92
+ .min(1)
93
+ .max(MAX_EDIT_IMAGES)
94
+ .optional()
95
+ .describe(`Up to ${MAX_EDIT_IMAGES} image paths to edit from or combine (for example a subject ` +
96
+ "and a style reference). Do not pass both `image` and `images`."),
29
97
  size: z
30
98
  .string()
31
99
  .optional()
32
- .describe("Output resolution. GPT Image 2.5 accepts any size where both edges are multiples " +
33
- "of 16px, max edge ≤3840px, long:short ratio ≤3:1, total pixels 655,360–8,294,400. " +
34
- "Popular: 1024x1024, 1536x1024, 1024x1536, 2048x2048. Default: auto."),
100
+ .describe("Output resolution: `auto` (default) or WIDTHxHEIGHT with both edges multiples of " +
101
+ "16px, max edge 3840px, long:short ratio at most 3:1, and 655,360 to 8,294,400 " +
102
+ "total pixels. Common: 1024x1024, 1536x1024, 1024x1536. The ChatGPT image backend " +
103
+ "does not guarantee the requested size and may return a smaller image; the result " +
104
+ "always reports the size actually delivered."),
35
105
  quality: z
36
106
  .enum(["low", "medium", "high", "auto"])
37
107
  .optional()
@@ -53,11 +123,11 @@ const GenerateImageParams = z.object({
53
123
  .optional()
54
124
  .describe("Output file format (default png)"),
55
125
  background: z
56
- .enum(["opaque", "auto", "transparent"])
126
+ .enum(["opaque", "transparent"])
57
127
  .optional()
58
- .describe("Background type (default auto). Use auto or opaque. Transparent is currently " +
59
- "unsupported by the connected ChatGPT/Codex backend for both models and will " +
60
- "be rejected locally. Do not retry transparent requests or switch models to bypass this."),
128
+ .describe("Use 'transparent' when the request calls for a transparent background, including " +
129
+ "background removal or a cutout (png or webp output). Default: opaque. For edits, " +
130
+ "keep existing transparency unless the user asks to change it."),
61
131
  });
62
132
  function defaultOutPath(cwd, format) {
63
133
  const stamp = new Date().toISOString().replace(/[:.]/g, "-");
@@ -72,27 +142,29 @@ function mediaTypeFor(format) {
72
142
  return "image/webp";
73
143
  return "image/png";
74
144
  }
75
- export function createGenerateImageTool(cwd, auth) {
145
+ export function createGenerateImageTool(cwd, auth, retryDeps = {}) {
146
+ const retry = { ...DEFAULT_RETRY_DEPS, ...retryDeps };
76
147
  return {
77
148
  name: "generate_image",
78
- description: "Generate or edit images using OpenAI's GPT Image 2.5 models: Flare (default, fast) " +
79
- "or Sunburst (precise editing). Transparent backgrounds are currently unsupported " +
80
- "through this tool. Works even when a different " +
81
- "chat provider is active — only requires OpenAI to be connected. Only use this tool when " +
82
- "the user explicitly asks to create, generate, or edit an image. Pass `image` with a " +
83
- "file path to edit an existing image (e.g. a previously generated one or a user attachment). " +
84
- "Use `out_path` to save to a specific location (defaults to .gg/generated/).",
149
+ description: "Generate or edit images with OpenAI's image generation, the same service Codex uses " +
150
+ "with a ChatGPT login. Works even when a different chat provider is active; only " +
151
+ "requires OpenAI to be connected. Only use this tool when the user explicitly asks to " +
152
+ "create, generate, or edit an image. Pass `image` (or up to five `images`) to edit " +
153
+ "existing files, such as a previous result or a user attachment. Set `background` to " +
154
+ "'transparent' for cutouts and transparent artwork. Generation can take a minute or " +
155
+ "more. Use `out_path` to save to a specific location (defaults to .gg/generated/).",
85
156
  parameters: GenerateImageParams,
86
157
  async execute(args, context) {
87
158
  if (context.signal.aborted)
88
159
  return "Image generation aborted before start.";
89
- // Keep the legacy parameter value parseable so cached/repeated calls get
90
- // actionable guidance instead of another backend 400 or schema retry.
91
- if (args.background === "transparent") {
92
- return ("Transparent backgrounds are currently unsupported by the connected ChatGPT/Codex " +
93
- "image backend for both Flare and Sunburst, including PNG and WebP output. " +
94
- "No request was sent. Do not retry with another model or format. " +
95
- "Explain this limitation to the user; do not silently substitute an opaque background.");
160
+ // JPEG has no alpha channel: a transparent result saved as JPEG would
161
+ // silently come back opaque, after spending the user's image quota.
162
+ if (args.background === "transparent" && args.output_format === "jpeg") {
163
+ return ("Transparent backgrounds need png or webp output; JPEG cannot store transparency. " +
164
+ "No request was sent. Use output_format png or webp.");
165
+ }
166
+ if (args.image && args.images) {
167
+ return "Pass either `image` or `images`, not both. No request was sent.";
96
168
  }
97
169
  // Resolve OpenAI credentials at execution time (lazy — token refresh
98
170
  // happens on use, not at registration).
@@ -113,58 +185,58 @@ export function createGenerateImageTool(cwd, auth) {
113
185
  ? resolvePath(cwd, args.out_path)
114
186
  : defaultOutPath(cwd, outputFormat);
115
187
  try {
116
- // Build the image_generation tool definition with the requested params.
117
- const imageTool = {
118
- type: "image_generation",
119
- model: args.model ?? "gpt-image-2.5-flare",
120
- output_format: outputFormat,
188
+ // Every field Codex sends, always: it pins quality and size to "auto"
189
+ // and background to opaque unless transparency is asked for.
190
+ const request = {
191
+ prompt: args.prompt,
192
+ background: args.background ?? "opaque",
193
+ model: IMAGE_MODEL,
194
+ quality: args.quality ?? "auto",
195
+ size: args.size ?? "auto",
121
196
  };
122
- if (args.size)
123
- imageTool.size = args.size;
124
- if (args.quality)
125
- imageTool.quality = args.quality;
126
- if (args.background)
127
- imageTool.background = args.background;
128
- // Build the input content — prompt text, optionally with a reference image.
129
- const inputContent = [
130
- { type: "input_text", text: args.prompt },
131
- ];
132
- if (args.image) {
133
- // Edit mode: read the reference image and include it as input_image.
134
- const imagePath = resolvePath(cwd, args.image);
135
- let fileBuffer;
136
- try {
137
- fileBuffer = await readFile(imagePath);
138
- }
139
- catch {
140
- return `Could not read the image at ${args.image}. Check the path is correct.`;
197
+ const referencePaths = args.images ?? (args.image ? [args.image] : []);
198
+ if (referencePaths.length > 0) {
199
+ // Edit mode: each reference travels inline as a data URL of the
200
+ // original bytes, as Codex sends them (PromptImageMode::Original).
201
+ const references = [];
202
+ for (const reference of referencePaths) {
203
+ const imagePath = resolvePath(cwd, reference);
204
+ const refMediaType = IMAGE_MEDIA_TYPES[path.extname(imagePath).toLowerCase()];
205
+ if (!refMediaType) {
206
+ return `Cannot edit ${reference}: only PNG, JPEG, GIF, WebP and BMP images are supported.`;
207
+ }
208
+ let fileBuffer;
209
+ try {
210
+ fileBuffer = await readFile(imagePath);
211
+ }
212
+ catch {
213
+ return `Could not read the image at ${reference}. Check the path is correct.`;
214
+ }
215
+ references.push({
216
+ image_url: `data:${refMediaType};base64,${fileBuffer.toString("base64")}`,
217
+ });
141
218
  }
142
- // The Responses API accepts images as data URLs.
143
- const refMediaType = imagePath.toLowerCase().endsWith(".jpg") || imagePath.toLowerCase().endsWith(".jpeg")
144
- ? "image/jpeg"
145
- : imagePath.toLowerCase().endsWith(".webp")
146
- ? "image/webp"
147
- : "image/png";
148
- inputContent.push({
149
- type: "input_image",
150
- image_url: `data:${refMediaType};base64,${fileBuffer.toString("base64")}`,
151
- });
152
- imageTool.action = "edit";
153
- }
154
- else {
155
- imageTool.action = "generate";
219
+ request.images = references;
156
220
  }
157
- // Call the Codex responses endpoint (same one our Codex streaming
158
- // provider uses) with the image_generation built-in tool. ChatGPT OAuth
159
- // tokens work here, unlike api.openai.com/v1/images/*.
160
- // The Responses image tool does not accept an `n` property. Generate
161
- // multiple images with separate requests and merge the results instead.
221
+ const endpoint = `${CODEX_IMAGES_BASE}/${request.images ? "edits" : "generations"}`;
222
+ // One id for the whole tool call, like Codex's per-turn
223
+ // `x-codex-image-turn-id`, so every image of an `n` batch is grouped.
224
+ const turnId = randomUUID();
225
+ // One request per image, like the Codex CLI: each output is its own
226
+ // generation, and a later failure keeps the earlier ones.
162
227
  const requestedCount = args.n ?? 1;
163
228
  const imageBuffers = [];
229
+ // The size OpenAI's response says it produced, per image (when given).
230
+ const reportedSizes = [];
164
231
  for (let index = 0; index < requestedCount && imageBuffers.length < requestedCount; index++) {
165
- const generated = await callImageGeneration(inputContent, imageTool, token, accountId, context.signal);
166
- imageBuffers.push(...generated.slice(0, requestedCount - imageBuffers.length));
167
- if (generated.length === 0)
232
+ const generated = await callImageEndpoint(endpoint, request, { token, accountId, turnId }, context.signal, retry);
233
+ for (const png of generated.images.slice(0, requestedCount - imageBuffers.length)) {
234
+ // PNG output is saved byte for byte as OpenAI sent it (alpha and
235
+ // all); only another format is re-encoded. Never resized.
236
+ imageBuffers.push(outputFormat === RESPONSE_FORMAT ? png : await convertImageFormat(png, outputFormat));
237
+ reportedSizes.push(generated.reportedSize);
238
+ }
239
+ if (generated.images.length === 0)
168
240
  break;
169
241
  }
170
242
  if (imageBuffers.length === 0) {
@@ -209,8 +281,13 @@ export function createGenerateImageTool(cwd, auth) {
209
281
  const summary = savedPaths.length === 1
210
282
  ? `Generated image → ${primaryPath}`
211
283
  : `Generated ${savedPaths.length} images → ${savedPaths.join(", ")}`;
284
+ const dimensions = await Promise.all(imageBuffers.map((buf) => imageDimensions(buf)));
285
+ const sizeText = sizeReport(args.size, savedPaths, dimensions, reportedSizes);
286
+ // The summary stays the FIRST text block, on its own: restored history
287
+ // reads the image paths from exactly that line (extractToolImagePaths).
212
288
  const allContent = [
213
289
  { type: "text", text: summary },
290
+ { type: "text", text: sizeText },
214
291
  {
215
292
  type: "image",
216
293
  mediaType: detectedType,
@@ -225,54 +302,172 @@ export function createGenerateImageTool(cwd, auth) {
225
302
  catch (err) {
226
303
  if (context.signal.aborted)
227
304
  return "Image generation aborted.";
305
+ if (err instanceof ImageAccessError)
306
+ return imageAccessMessage(token);
307
+ if (err instanceof ImageLimitError)
308
+ return imageLimitMessage(err.resetsAt);
228
309
  const reason = err instanceof Error ? err.message : String(err);
229
310
  return `Image generation failed: ${reason}`;
230
311
  }
231
312
  },
232
313
  };
233
314
  }
315
+ const formatDimensions = (d) => `${d.width}x${d.height}`;
316
+ /**
317
+ * Requested versus delivered size, for the agent to relay. The ChatGPT image
318
+ * backend can return a different size than asked (a user asked for 2048x2048
319
+ * and got 1254x1254), so a mismatch is reported plainly instead of the call
320
+ * reading as a clean success. Nothing is resized and nothing is re-requested:
321
+ * each request spends the user's image quota.
322
+ */
323
+ export function sizeReport(requested, paths, dimensions, reportedSizes) {
324
+ const explicit = requested && requested !== "auto" ? requested : undefined;
325
+ const actual = dimensions.map((d) => (d ? formatDimensions(d) : undefined));
326
+ // What OpenAI's response claimed, when it disagrees with the pixels.
327
+ const claims = actual
328
+ .map((size, i) => {
329
+ const reported = reportedSizes[i];
330
+ return reported && size && reported !== size ? reported : undefined;
331
+ })
332
+ .filter((claim) => claim !== undefined);
333
+ const claimNote = claims.length > 0 ? ` OpenAI's response reported ${[...new Set(claims)].join(", ")}.` : "";
334
+ if (actual.some((size) => size === undefined)) {
335
+ return explicit
336
+ ? `Requested ${explicit}, but the saved image could not be measured to confirm its size.`
337
+ : "The saved image could not be measured to report its size.";
338
+ }
339
+ const unique = [...new Set(actual)];
340
+ const delivered = unique.length === 1
341
+ ? (unique[0] ?? "")
342
+ : actual.map((size, i) => `${paths[i] ?? `image ${i + 1}`}: ${size}`).join(", ");
343
+ if (!explicit)
344
+ return `Size: ${delivered} (size auto, chosen by OpenAI).${claimNote}`;
345
+ if (unique.length === 1 && unique[0] === explicit) {
346
+ return `Size: ${explicit}, as requested.${claimNote}`;
347
+ }
348
+ return (`Size mismatch: requested ${explicit}, but OpenAI returned ${delivered}.${claimNote} ` +
349
+ "The file was saved at its native size with no resizing. Tell the user. The ChatGPT " +
350
+ "image backend does not always honour the requested size, so asking again is unlikely " +
351
+ "to change it and would spend more of their image quota.");
352
+ }
234
353
  /** Insert a numeric index before the extension for multi-image output. */
235
354
  function insertIndex(filePath, index) {
236
355
  const ext = path.extname(filePath);
237
356
  const base = filePath.slice(0, filePath.length - ext.length);
238
357
  return `${base}_${index}${ext}`;
239
358
  }
359
+ /** OpenAI refused the image request outright (HTTP 403): the account has no access. */
360
+ class ImageAccessError extends Error {
361
+ }
362
+ /** The account's image quota is used up (HTTP 429 `usage_limit_reached`). */
363
+ class ImageLimitError extends Error {
364
+ resetsAt;
365
+ constructor(message,
366
+ /** Unix seconds when the limit resets, when OpenAI says. */
367
+ resetsAt) {
368
+ super(message);
369
+ this.resetsAt = resetsAt;
370
+ }
371
+ }
372
+ /** What to tell the agent when the image quota is used up. */
373
+ function imageLimitMessage(resetsAt) {
374
+ const when = resetsAt !== undefined && Number.isFinite(resetsAt)
375
+ ? ` It resets at ${new Date(resetsAt * 1000).toISOString()}.`
376
+ : "";
377
+ return (`This ChatGPT account has reached its image generation limit.${when} ` +
378
+ "Tell the user; retrying before then will not help.");
379
+ }
240
380
  /**
241
- * Call the Codex responses endpoint with the `image_generation` built-in tool.
242
- * Reads the SSE stream and extracts base64 image data from
243
- * `response.output_item.done` events where `item.type === "image_generation_call"`.
244
- *
245
- * The Codex backend requires `stream: true` and the ChatGPT OAuth token (which
246
- * our auth.openai.com PKCE flow produces). The top-level model orchestrates the
247
- * request; imageTool.model selects the GPT Image model separately.
381
+ * The ChatGPT plan from the access token's auth claim (`chatgpt_plan_type`), or
382
+ * undefined when the token is not a readable JWT. Only the plan name is read;
383
+ * nothing from the token is logged or returned.
248
384
  */
249
- async function callImageGeneration(inputContent, imageTool, token, accountId, signal) {
250
- const body = {
251
- model: IMAGE_GEN_MODEL,
252
- store: false,
253
- stream: true,
254
- instructions: "Generate the image the user requested.",
255
- input: [{ role: "user", content: inputContent }],
256
- tools: [imageTool],
257
- tool_choice: "auto",
258
- reasoning: { effort: "low" },
259
- };
260
- const response = await fetch(CODEX_ENDPOINT, {
261
- method: "POST",
262
- headers: {
263
- "Content-Type": "application/json",
264
- Authorization: `Bearer ${token}`,
265
- ...(accountId ? { "chatgpt-account-id": accountId } : {}),
266
- originator: "ggcoder",
267
- },
268
- body: JSON.stringify(body),
269
- signal,
270
- });
385
+ function chatgptPlan(token) {
386
+ const payload = token.split(".")[1];
387
+ if (!payload)
388
+ return undefined;
389
+ try {
390
+ const claims = JSON.parse(Buffer.from(payload, "base64url").toString("utf8"));
391
+ const auth = claims["https://api.openai.com/auth"];
392
+ if (auth && typeof auth === "object" && "chatgpt_plan_type" in auth) {
393
+ const plan = auth.chatgpt_plan_type;
394
+ return typeof plan === "string" ? plan : undefined;
395
+ }
396
+ }
397
+ catch {
398
+ // Not a JWT we can read; fall through to the generic message.
399
+ }
400
+ return undefined;
401
+ }
402
+ /**
403
+ * What to tell the agent when OpenAI refuses image generation for the account.
404
+ * A free ChatGPT plan gets a bare 403 "Forbidden" for every image request, so
405
+ * say that plainly instead of passing the opaque status through.
406
+ */
407
+ function imageAccessMessage(token) {
408
+ const lead = chatgptPlan(token) === "free"
409
+ ? "Image generation is not included with a free ChatGPT plan, so OpenAI refused the request (403 Forbidden)."
410
+ : "OpenAI refused the image request (403 Forbidden). This ChatGPT account does not appear to include image generation in Codex.";
411
+ return (`${lead} It needs a ChatGPT login on a paid plan that includes Codex image generation. ` +
412
+ "Tell the user; retrying, or changing size, quality or format, will not help.");
413
+ }
414
+ /**
415
+ * POST one request to a Codex image endpoint and return the decoded images.
416
+ * Headers carry the same Codex client identity as chat (originator, user agent
417
+ * and `version`), since the ChatGPT backend gates features on that version.
418
+ */
419
+ async function callImageEndpoint(url, request, auth, signal, retry) {
420
+ const body = JSON.stringify(request);
421
+ for (let attempt = 0;; attempt++) {
422
+ let response;
423
+ let text;
424
+ try {
425
+ response = await fetch(url, {
426
+ method: "POST",
427
+ headers: {
428
+ Accept: "application/json",
429
+ "Content-Type": "application/json",
430
+ Authorization: `Bearer ${auth.token}`,
431
+ ...(auth.accountId ? { "chatgpt-account-id": auth.accountId } : {}),
432
+ originator: "codex_cli_rs",
433
+ "User-Agent": `codex_cli_rs/${CODEX_CLIENT_VERSION} (${os.type()} ${os.release()}; ${os.arch()})`,
434
+ version: CODEX_CLIENT_VERSION,
435
+ "x-codex-image-turn-id": auth.turnId,
436
+ },
437
+ body,
438
+ signal,
439
+ });
440
+ text = await response.text();
441
+ }
442
+ catch (err) {
443
+ // A failed connection or a body cut off mid-read. An abort is the
444
+ // user stopping the run, never something to retry.
445
+ if (signal.aborted || attempt >= MAX_RETRIES)
446
+ throw err;
447
+ await retry.sleep(retryDelayMs(attempt + 1, null, retry), signal);
448
+ continue;
449
+ }
450
+ if (response.status >= 500 && attempt < MAX_RETRIES) {
451
+ const wait = retryDelayMs(attempt + 1, response.headers.get("retry-after"), retry);
452
+ await retry.sleep(wait, signal);
453
+ continue;
454
+ }
455
+ return parseImageResponse(response.status, text, attempt + 1);
456
+ }
457
+ }
458
+ /** Turn one image endpoint reply into images, or the error it describes. */
459
+ function parseImageResponse(status, text, attempts) {
460
+ const response = { status, ok: status >= 200 && status < 300 };
461
+ if (response.status === 403)
462
+ throw new ImageAccessError(text);
271
463
  if (!response.ok) {
272
- const text = await response.text();
273
464
  let detail = text;
465
+ let errorType;
466
+ let resetsAt;
274
467
  try {
275
468
  const parsed = JSON.parse(text);
469
+ errorType = parsed.error?.type;
470
+ resetsAt = typeof parsed.error?.resets_at === "number" ? parsed.error.resets_at : undefined;
276
471
  if (parsed.detail)
277
472
  detail = parsed.detail;
278
473
  else if (parsed.error?.message)
@@ -281,46 +476,25 @@ async function callImageGeneration(inputContent, imageTool, token, accountId, si
281
476
  catch {
282
477
  // Keep raw text
283
478
  }
284
- throw new Error(`OpenAI Image API (${response.status}): ${detail}`);
479
+ if (response.status === 429 && errorType === "usage_limit_reached") {
480
+ throw new ImageLimitError(detail, resetsAt);
481
+ }
482
+ const tries = attempts > 1 ? ` after ${attempts} attempts` : "";
483
+ throw new Error(`OpenAI Image API (${response.status})${tries}: ${detail}`);
285
484
  }
286
- if (!response.body) {
287
- throw new Error("OpenAI Image API returned no response body.");
485
+ let parsed;
486
+ try {
487
+ parsed = JSON.parse(text);
288
488
  }
289
- // Read the SSE stream and extract image_generation_call output items.
290
- const reader = response.body.getReader();
291
- const decoder = new TextDecoder();
292
- let buffer = "";
293
- const imageBuffers = [];
294
- while (true) {
295
- const { done, value } = await reader.read();
296
- if (done)
297
- break;
298
- buffer += decoder.decode(value, { stream: true });
299
- const lines = buffer.split("\n");
300
- buffer = lines.pop() ?? "";
301
- for (const line of lines) {
302
- if (!line.startsWith("data: "))
303
- continue;
304
- const data = line.slice(6);
305
- if (data === "[DONE]")
306
- continue;
307
- try {
308
- const evt = JSON.parse(data);
309
- // The final image data arrives in `response.output_item.done` where
310
- // item.type is "image_generation_call" and item.status is "completed"
311
- // (or "generating" — both carry the result). We capture from either,
312
- // preferring the last one with actual result data.
313
- if (evt.type === "response.output_item.done" &&
314
- evt.item?.type === "image_generation_call" &&
315
- evt.item.result) {
316
- imageBuffers.push(Buffer.from(evt.item.result, "base64"));
317
- }
318
- }
319
- catch {
320
- // Partial JSON — skip, the next chunk will complete it.
321
- }
322
- }
489
+ catch {
490
+ throw new Error("OpenAI Image API returned a response that is not JSON.");
323
491
  }
324
- return imageBuffers;
492
+ const images = (parsed.data ?? [])
493
+ .map((item) => item.b64_json)
494
+ .filter((b64) => typeof b64 === "string" && b64.length > 0)
495
+ .map((b64) => Buffer.from(b64, "base64"));
496
+ // Codex's ImageResponse carries the size the backend says it produced.
497
+ const reportedSize = typeof parsed.size === "string" ? parsed.size : undefined;
498
+ return { images, ...(reportedSize ? { reportedSize } : {}) };
325
499
  }
326
500
  //# sourceMappingURL=generate-image.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate-image.js","sourceRoot":"","sources":["../../src/tools/generate-image.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-image.js","sourceRoot":"","sources":["../../src/tools/generate-image.ts"],"names":[],"mappings":"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"}
@@ -113,6 +113,20 @@ export declare function shrinkToFit(buffer: Buffer, mediaType: string): Promise<
113
113
  * cosmetic and must never break the turn.
114
114
  */
115
115
  export declare function downscaleForPreview(buffer: Buffer): Promise<Buffer>;
116
+ /**
117
+ * Pixel dimensions from the image header, or null when it cannot be read.
118
+ * Header only: no pixel decode, so it is cheap on large images.
119
+ */
120
+ export declare function imageDimensions(buffer: Buffer): Promise<{
121
+ width: number;
122
+ height: number;
123
+ } | null>;
124
+ /**
125
+ * Re-encode an image as `format`. Unlike the preview helpers this is the saved
126
+ * file itself, so a failure propagates rather than silently keeping the
127
+ * original bytes under a mismatched extension.
128
+ */
129
+ export declare function convertImageFormat(buffer: Buffer, format: "png" | "jpeg" | "webp"): Promise<Buffer>;
116
130
  /**
117
131
  * Inline previews (`details.imagePreviews`) for image blocks a tool returns
118
132
  * without a file of its own (MCP servers). The chat only
@@ -464,6 +464,29 @@ export async function downscaleForPreview(buffer) {
464
464
  return buffer;
465
465
  }
466
466
  }
467
+ /**
468
+ * Pixel dimensions from the image header, or null when it cannot be read.
469
+ * Header only: no pixel decode, so it is cheap on large images.
470
+ */
471
+ export async function imageDimensions(buffer) {
472
+ try {
473
+ const sharp = await loadSharp();
474
+ const { width, height } = await sharp(buffer).metadata();
475
+ return width && height ? { width, height } : null;
476
+ }
477
+ catch {
478
+ return null;
479
+ }
480
+ }
481
+ /**
482
+ * Re-encode an image as `format`. Unlike the preview helpers this is the saved
483
+ * file itself, so a failure propagates rather than silently keeping the
484
+ * original bytes under a mismatched extension.
485
+ */
486
+ export async function convertImageFormat(buffer, format) {
487
+ const sharp = await loadSharp();
488
+ return sharp(buffer).toFormat(format).toBuffer();
489
+ }
467
490
  /**
468
491
  * Inline previews (`details.imagePreviews`) for image blocks a tool returns
469
492
  * without a file of its own (MCP servers). The chat only
@@ -1 +1 @@
1
- {"version":3,"file":"image.js","sourceRoot":"","sources":["../../src/utils/image.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAItC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAe1C,IAAI,OAAO,GAAmB,IAAI,CAAC;AACnC,KAAK,UAAU,SAAS;IACtB,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC;IAC5B,uEAAuE;IACvE,6EAA6E;IAC7E,yEAAyE;IACzE,mCAAmC;IACnC,MAAM,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,CAA+C,CAAC;IAClF,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC;IAC7B,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,sDAAsD;AACtD,MAAM,eAAe,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AACxC,sFAAsF;AACtF,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAC9B;;;;;;;;;;GAUG;AACH,MAAM,eAAe,GAAG,EAAE,CAAC;AAC3B,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAChC,MAAM,eAAe,GAAG,IAAI,CAAC;AAE7B;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa,EAAE,MAAc;IAC5D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IACtE,IAAI,KAAK,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3C,IAAI,KAAK,GAAG,eAAe,IAAI,MAAM,GAAG,eAAe;QAAE,OAAO,KAAK,CAAC;IACtE,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,GAAG,eAAe,CAAC,IAAI,kBAAkB,CAAC;AACtF,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa,EAAE,MAAc;IACvD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACnF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAC3B,CAAC;IACD,IAAI,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAE9D,MAAM,SAAS,GAAG,KAAK,IAAI,MAAM,CAAC;IAClC,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5C,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;IAC7C,MAAM,KAAK,GAAG,SAAS,GAAG,QAAQ,CAAC;IACnC,MAAM,OAAO,GAAG,CAAC,IAAY,EAAqC,EAAE;QAClE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC;QACpD,OAAO,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACrF,CAAC,CAAC;IAEF,IAAI,EAAE,GAAG,CAAC,CAAC;IACX,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC;IACzD,IAAI,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACtB,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;QAChB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACtC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,gBAAgB,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YACxD,IAAI,GAAG,SAAS,CAAC;YACjB,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;QACf,CAAC;aAAM,CAAC;YACN,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AAC5F,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AACnF,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AACjD,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC;IACpC,GAAG,gBAAgB;IACnB,GAAG,gBAAgB;IACnB,GAAG,eAAe;CACnB,CAAC,CAAC;AAEH;;;+EAG+E;AAC/E,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAEhD,6EAA6E;AAE7E;gDACgD;AAChD,MAAM,qBAAqB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAC/C,MAAM,kBAAkB,GAAG,IAAI,CAAC,CAAC,gDAAgD;AACjF,MAAM,YAAY,GAAG,CAAC,CAAC,CAAC,sDAAsD;AAC9E,MAAM,mBAAmB,GAAG,EAAE,CAAC,CAAC,2BAA2B;AAC3D,MAAM,uBAAuB,GAAG,GAAG,CAAC,CAAC,0CAA0C;AAM/E,SAAS,eAAe,CAAC,GAAY;IACnC,OAAQ,GAA6B,EAAE,IAAI,KAAK,QAAQ,CAAC;AAC3D,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,SAAiB,EACjB,cAAsB,qBAAqB,EAC3C,MAAoB;IAEpB,qDAAqD;IACrD,IAAI,WAAmB,CAAC;IACxB,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CACpC,SAAS,EACT,CAAC,IAAI,EAAE,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,KAAK,EAAE,mBAAmB,EAAE,SAAS,CAAC,EAC1F,EAAE,MAAM,EAAE,CACX,CAAC;QACF,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,eAAe,CAAC,GAAG,CAAC;gBAC1B,CAAC,CAAC,iCAAiC;gBACnC,CAAC,CAAC,0BAA0B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;SACjF,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;QACtD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,oCAAoC,EAAE,CAAC;IACrE,CAAC;IAED,0EAA0E;IAC1E,oEAAoE;IACpE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,WAAW,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;IAC7E,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE,SAAS,GAAG,mBAAmB,CAAC,CAAC;IACrF,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,sBAAsB,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAE/E,IAAI,CAAC;QACH,MAAM,aAAa,CACjB,QAAQ,EACR;YACE,IAAI;YACJ,UAAU;YACV,WAAW;YACX,OAAO;YACP,IAAI;YACJ,SAAS;YACT,KAAK;YACL,cAAc,kBAAkB,gBAAgB,YAAY,EAAE;YAC9D,MAAM;YACN,SAAS;YACT,MAAM;YACN,GAAG,SAAS,GAAG;YACf,UAAU;YACV,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC,GAAG;YACjC,UAAU;YACV,GAAG,SAAS,GAAG;YACf,SAAS;YACT,UAAU;YACV,MAAM;YACN,KAAK;YACL,MAAM;YACN,GAAG,mBAAmB,GAAG;YACzB,OAAO;SACR,EACD,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,CACxC,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACzC,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,eAAe,CAAC,GAAG,CAAC;gBAC1B,CAAC,CAAC,yBAAyB;gBAC3B,CAAC,CAAC,8BAA8B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;SACrF,CAAC;IACJ,CAAC;IAED,IAAI,eAAuB,CAAC;IAC5B,IAAI,aAAqB,CAAC;IAC1B,IAAI,CAAC;QACH,eAAe,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QAChD,aAAa,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACzC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,uCAAuC,EAAE,CAAC;IACxE,CAAC;IACD,IAAI,eAAe,GAAG,WAAW,EAAE,CAAC;QAClC,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACzC,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,6BAA6B,CAAC,eAAe,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;SACvF,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC;AACrE,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAA2B;IACvD,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,WAAW;CACpB,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAA2B;IACvD,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,iBAAiB;IACzB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,iBAAiB;IACzB,MAAM,EAAE,kBAAkB;CAC3B,CAAC;AAEF,gDAAgD;AAChD,MAAM,WAAW,GAAG,iBAAiB,CAAC;AAUtC,kEAAkE;AAClE,MAAM,UAAU,WAAW,CAAC,QAAgB;IAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IACjD,OAAO,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACnC,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,WAAW,CAAC,QAAgB;IAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IACjD,OAAO,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACnC,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,gBAAgB,CAAC,QAAgB;IAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IACjD,OAAO,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,WAAW,CAAC,QAAgB,EAAE,GAAW;IAChD,IAAI,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/B,2BAA2B;IAC3B,IACE,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACpD,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EACpD,CAAC;QACD,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC;IACD,uBAAuB;IACvB,IAAI,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACnC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IACD,0DAA0D;IAC1D,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC5C,mBAAmB;IACnB,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACnE,CAAC;SAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa,CAAC,KAAa;IAClC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IACnD,OAAO,CACL,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;QACtB,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;QACvB,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC;QACxB,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAC/B,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,IAAY,EACZ,GAAW;IAEX,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,6EAA6E;IAC7E,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACzC,IAAI,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YACjE,OAAO,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;QACpD,CAAC;IACH,CAAC;IAED,yFAAyF;IACzF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;IACrD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACzC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;gBAC/D,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC1B,SAAS;YACX,CAAC;QACH,CAAC;QACD,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AACzD,CAAC;AAED;sFACsF;AACtF,MAAM,CAAC,MAAM,iBAAiB,GAAG,iBAAiB,CAAC;AAEnD,KAAK,UAAU,UAAU,CAAC,QAAgB;IACxC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,gFAAgF;AAChF,MAAM,qBAAqB,GAA2B;IACpD,GAAG,EAAE,WAAW;IAChB,IAAI,EAAE,YAAY;IAClB,GAAG,EAAE,YAAY;IACjB,GAAG,EAAE,WAAW;IAChB,IAAI,EAAE,YAAY;CACnB,CAAC;AAEF;;uDAEuD;AACvD,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;AAE3F;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,MAAc;IACtD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,SAAS,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/E,IAAI,CAAC,SAAS,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,OAAO,IAAI,CAAC;QAClE,8EAA8E;QAC9E,8EAA8E;QAC9E,MAAM,KAAK,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;aACrC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC;aAC7D,GAAG,EAAE;aACL,QAAQ,EAAE,CAAC;QACd,OAAO,SAAS,CAAC;IACnB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAc,EACd,SAAiB;IAEjB,MAAM,KAAK,GAAG,MAAM,SAAS,EAAE,CAAC;IAChC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC;IACjC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;IAClC,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,KAAK,KAAK,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC;IAEvE,2EAA2E;IAC3E,sEAAsE;IACtE,6CAA6C;IAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9E,IAAI,QAAQ,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QACvC,SAAS,GAAG,QAAQ,CAAC;IACvB,CAAC;IAED,oDAAoD;IACpD,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM,IAAI,eAAe,EAAE,CAAC;QACpD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAC/B,CAAC;IAED,yCAAyC;IACzC,MAAM,SAAS,GAAqC;QAClD,WAAW,EAAE,KAAK;QAClB,YAAY,EAAE,MAAM;QACpB,WAAW,EAAE,KAAK;QAClB,YAAY,EAAE,MAAM;QACpB,WAAW,EAAE,KAAK,EAAE,gDAAgD;KACrE,CAAC;IACF,IAAI,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC;IAC9C,IAAI,YAAY,GAAG,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;IAEvE,wEAAwE;IACxE,0EAA0E;IAC1E,sCAAsC;IACtC,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC1B,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAE5B,uEAAuE;IACvE,kCAAkC;IAClC,CAAC;QACC,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC;aAC9B,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC;aAClE,QAAQ,CAAC,SAAS,CAAC;aACnB,QAAQ,EAAE,CAAC;QACd,IAAI,KAAK,CAAC,MAAM,IAAI,eAAe,EAAE,CAAC;YACpC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;QACpD,CAAC;IACH,CAAC;IAED,0DAA0D;IAC1D,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC;QAC9C,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;QAC9C,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;QAChD,IAAI,KAAK,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC;YAAE,MAAM;QAEnC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC;aAC/B,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC;aAClE,QAAQ,CAAC,SAAS,CAAC;aACnB,QAAQ,EAAE,CAAC;QAEd,IAAI,MAAM,CAAC,MAAM,IAAI,eAAe,EAAE,CAAC;YACrC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;QACrD,CAAC;QAED,kFAAkF;QAClF,IAAI,OAAO,KAAK,CAAC,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;YACzC,SAAS,GAAG,MAAM,CAAC;YACnB,YAAY,GAAG,YAAY,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,yDAAyD;IACzD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC;SAC/B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE;QACzD,GAAG,EAAE,QAAQ;QACb,kBAAkB,EAAE,IAAI;KACzB,CAAC;SACD,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;SACrB,QAAQ,EAAE,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;AACrD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,MAAc;IACtD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,SAAS,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;QAC9B,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,iBAAiB;YAAE,OAAO,MAAM,CAAC;QAC3D,OAAO,MAAM,KAAK,CAAC,MAAM,CAAC;aACvB,MAAM,CAAC,iBAAiB,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC;aACjF,QAAQ,EAAE,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC;IAChB,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,MAAsE;IAEtE,MAAM,QAAQ,GAA4C,EAAE,CAAC;IAC7D,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,IAAI;YAAE,SAAS;QACxE,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC7E,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;IACpF,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,QAAgB;IAClD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAEzC,IAAI,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,iBAAiB,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC;YACxD,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACrC,0EAA0E;YAC1E,sEAAsE;YACtE,wEAAwE;YACxE,0EAA0E;YAC1E,wEAAwE;YACxE,mCAAmC;YACnC,MAAM,IAAI,GACR,IAAI,CAAC,IAAI,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACvF,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QAChE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAChE,OAAO;gBACL,IAAI,EAAE,MAAM;gBACZ,QAAQ;gBACR,QAAQ;gBACR,SAAS,EAAE,YAAY;gBACvB,IAAI,EAAE,UAAU,QAAQ,yBAAyB,MAAM,GAAG;aAC3D,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACrD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QACtF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAChE,OAAO;gBACL,IAAI,EAAE,MAAM;gBACZ,QAAQ;gBACR,QAAQ;gBACR,SAAS,EAAE,YAAY;gBACvB,IAAI,EAAE,SAAS,QAAQ,uBAAuB,MAAM,GAAG;aACxD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC;QAClD,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC3D,+EAA+E;QAC/E,2EAA2E;QAC3E,4EAA4E;QAC5E,2EAA2E;QAC3E,4EAA4E;QAC5E,qEAAqE;QACrE,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACxD,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO;gBACL,IAAI,EAAE,MAAM;gBACZ,QAAQ;gBACR,QAAQ;gBACR,SAAS,EAAE,YAAY;gBACvB,IAAI,EAAE,UAAU,QAAQ,6EAA6E,QAAQ,0CAA0C;aACxJ,CAAC;QACJ,CAAC;QACD,OAAO;YACL,IAAI,EAAE,OAAO;YACb,QAAQ;YACR,QAAQ;YACR,SAAS,EAAE,aAAa;YACxB,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;SAChC,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAChE,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,QAAQ;YACR,QAAQ;YACR,SAAS,EAAE,YAAY;YACvB,IAAI,EAAE,UAAU,QAAQ,yBAAyB,MAAM,GAAG;SAC3D,CAAC;IACJ,CAAC;AACH,CAAC;AAED;yBACyB;AACzB,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAC;AAE3C;;;GAGG;AACH,MAAM,UAAU,iBAAiB;IAC/B,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,oCAAoC;QACpC,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;YAC9D,IAAI,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;gBAClE,OAAO,CAAC,IAAI,CAAC,CAAC;gBACd,OAAO;YACT,CAAC;YAED,gCAAgC;YAChC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACtC,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;YAC1C,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;YACnC,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC;YAErD,0DAA0D;YAC1D,MAAM,OAAO,GAAG,0BAA0B,IAAI,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,CAAC;YAC9D,MAAM,WAAW,GAAG;gBAClB,0CAA0C,SAAS,GAAG;gBACtD,+BAA+B,OAAO,GAAG;gBACzC,+DAA+D;gBAC/D,0BAA0B;gBAC1B,sBAAsB;aACvB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEb,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;gBAC5D,IAAI,QAAQ,EAAE,CAAC;oBACb,OAAO,CAAC,IAAI,CAAC,CAAC;oBACd,OAAO;gBACT,CAAC;gBACD,IAAI,CAAC;oBACH,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;oBAC7C,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;oBACzC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,MAAM,WAAW,CAC1E,SAAS,EACT,SAAS,CACV,CAAC;oBACF,OAAO,CAAC;wBACN,IAAI,EAAE,OAAO;wBACb,QAAQ,EAAE,aAAa,GAAG,EAAE;wBAC5B,QAAQ,EAAE,OAAO;wBACjB,SAAS,EAAE,cAAc;wBACzB,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC;qBACrC,CAAC,CAAC;gBACL,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,CAAC,IAAI,CAAC,CAAC;gBAChB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"image.js","sourceRoot":"","sources":["../../src/utils/image.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kenkaiiii/ggcoder",
3
- "version": "5.83.0",
3
+ "version": "5.83.2",
4
4
  "type": "module",
5
5
  "description": "Lean CLI coding agent for 12 LLM providers and local models, with OAuth for Anthropic, OpenAI and Gemini",
6
6
  "license": "MIT",
@@ -115,9 +115,9 @@
115
115
  "typescript-language-server": "^5.3.0",
116
116
  "wrap-ansi": "^10.0.0",
117
117
  "zod": "^4.4.3",
118
- "@kenkaiiii/gg-agent": "5.83.0",
119
- "@kenkaiiii/gg-ai": "5.83.0",
120
- "@kenkaiiii/gg-core": "5.83.0"
118
+ "@kenkaiiii/gg-agent": "5.83.2",
119
+ "@kenkaiiii/gg-ai": "5.83.2",
120
+ "@kenkaiiii/gg-core": "5.83.2"
121
121
  },
122
122
  "optionalDependencies": {
123
123
  "@huggingface/transformers": "4.2.0",