@99percentpeople/pi-codex-api 0.2.7 → 0.2.8

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../config.ts", "../image.ts", "../client.ts", "../render.ts", "../search.ts", "../search-display.ts", "../settings.ts", "../usage.ts", "../index.ts"],
3
+ "sources": ["../../extensions/codex-api/config.ts", "../../extensions/codex-api/image.ts", "../../extensions/codex-api/client.ts", "../../extensions/codex-api/render.ts", "../../extensions/codex-api/search.ts", "../../extensions/codex-api/search-display.ts", "../../extensions/codex-api/settings.ts", "../../extensions/codex-api/usage.ts", "../../extensions/codex-api/index.ts"],
4
4
  "sourcesContent": [
5
5
  "import {\n getSharedSettingsPath,\n readSettingsNamespace,\n writeSettingsNamespace,\n} from \"@99percentpeople/pi-shared-settings\";\n\nexport type CodexSearchMode = \"auto\" | \"cached\" | \"indexed\" | \"live\";\nexport type CodexSearchContextSize = \"low\" | \"medium\" | \"high\";\nexport type CodexImageQuality = \"auto\" | \"low\" | \"medium\" | \"high\";\n\nexport interface CodexApiConfig {\n fastMode: boolean;\n allowOtherProviders: boolean;\n searchMode: CodexSearchMode;\n searchContextSize: CodexSearchContextSize;\n imageQuality: CodexImageQuality;\n usageStatus: boolean;\n /** Minutes between background status refreshes; 0 disables polling. */\n usagePollInterval: number;\n}\n\nexport const CODEX_API_SETTINGS_NAMESPACE = \"codex-api\";\n\nexport const DEFAULT_CODEX_API_CONFIG: CodexApiConfig = {\n fastMode: false,\n allowOtherProviders: false,\n searchMode: \"auto\",\n searchContextSize: \"medium\",\n imageQuality: \"auto\",\n usageStatus: true,\n usagePollInterval: 5,\n};\n\nfunction oneOf<T extends string>(value: unknown, values: readonly T[], fallback: T): T {\n return typeof value === \"string\" && values.includes(value as T) ? value as T : fallback;\n}\n\nexport function normalizeCodexApiConfig(value: unknown): CodexApiConfig {\n if (!value || typeof value !== \"object\") return { ...DEFAULT_CODEX_API_CONFIG };\n const input = value as Record<string, unknown>;\n return {\n fastMode: typeof input.fastMode === \"boolean\"\n ? input.fastMode\n : DEFAULT_CODEX_API_CONFIG.fastMode,\n allowOtherProviders: typeof input.allowOtherProviders === \"boolean\"\n ? input.allowOtherProviders\n : DEFAULT_CODEX_API_CONFIG.allowOtherProviders,\n searchMode: oneOf(\n input.searchMode,\n [\"auto\", \"cached\", \"indexed\", \"live\"],\n DEFAULT_CODEX_API_CONFIG.searchMode,\n ),\n searchContextSize: oneOf(\n input.searchContextSize,\n [\"low\", \"medium\", \"high\"],\n DEFAULT_CODEX_API_CONFIG.searchContextSize,\n ),\n imageQuality: oneOf(\n input.imageQuality,\n [\"auto\", \"low\", \"medium\", \"high\"],\n DEFAULT_CODEX_API_CONFIG.imageQuality,\n ),\n usageStatus: typeof input.usageStatus === \"boolean\"\n ? input.usageStatus\n : DEFAULT_CODEX_API_CONFIG.usageStatus,\n usagePollInterval: typeof input.usagePollInterval === \"number\"\n && Number.isFinite(input.usagePollInterval)\n && input.usagePollInterval > 0\n ? Math.min(60, Math.round(input.usagePollInterval))\n : DEFAULT_CODEX_API_CONFIG.usagePollInterval,\n };\n}\n\nexport function getCodexApiConfigPath(): string {\n return getSharedSettingsPath();\n}\n\nexport function loadCodexApiConfig(path = getCodexApiConfigPath()): CodexApiConfig {\n return readSettingsNamespace(CODEX_API_SETTINGS_NAMESPACE, normalizeCodexApiConfig, path);\n}\n\nexport function saveCodexApiConfig(\n config: CodexApiConfig,\n path = getCodexApiConfigPath(),\n): void {\n writeSettingsNamespace(CODEX_API_SETTINGS_NAMESPACE, normalizeCodexApiConfig(config), path);\n}\n",
6
6
  "import type { ImageContent } from \"@earendil-works/pi-ai\";\nimport {\n collectWorkspaceFile,\n resolveWorkspaceFiles,\n type WorkspaceFileSystem,\n} from \"@99percentpeople/pi-workspace-files\";\nimport type { ExtensionAPI, ExtensionContext } from \"@earendil-works/pi-coding-agent\";\nimport { Type } from \"typebox\";\nimport { createCodexApiClient } from \"./client.ts\";\nimport {\n DEFAULT_CODEX_API_CONFIG,\n type CodexApiConfig,\n type CodexImageQuality,\n} from \"./config.ts\";\nimport {\n reusableText,\n streamingSuffix,\n textOutput,\n} from \"./render.ts\";\n\nconst IMAGE_MODEL = \"gpt-image-2\";\nconst MAX_REFERENCE_IMAGES = 5;\nconst MIN_IMAGE_PIXELS = 655_360;\nconst MAX_IMAGE_PIXELS = 8_294_400;\nconst MAX_IMAGE_EDGE = 3_840;\n\nconst ImageQualitySchema = Type.Union([\n Type.Literal(\"auto\"),\n Type.Literal(\"low\"),\n Type.Literal(\"medium\"),\n Type.Literal(\"high\"),\n], {\n description: \"Per-call quality override. Omit to use the /99settings default; override only when the user explicitly asks for a draft or quality level\",\n});\n\nconst IMAGE_MIME_TYPES: Record<string, string> = {\n \".gif\": \"image/gif\",\n \".jpeg\": \"image/jpeg\",\n \".jpg\": \"image/jpeg\",\n \".png\": \"image/png\",\n \".webp\": \"image/webp\",\n};\n\nexport type CodexImagePhase =\n | \"preparing\"\n | \"authenticating\"\n | \"reading-references\"\n | \"generating\"\n | \"saving\"\n | \"completed\";\n\nexport interface CodexImageDetails {\n phase: CodexImagePhase;\n savedPath?: string;\n}\n\ninterface ImageResponse {\n data?: Array<{ b64_json?: unknown }>;\n}\n\ninterface ImageReference {\n image_url: string;\n}\n\nfunction sanitizeFilePart(value: string): string {\n const sanitized = value.replace(/[^a-zA-Z0-9_-]/g, \"_\");\n return sanitized || \"generated_image\";\n}\n\nexport function normalizeCodexImageSize(value?: string): string {\n const normalized = value?.trim().toLowerCase() || \"auto\";\n if (normalized === \"auto\") return normalized;\n const match = /^([1-9]\\d*)x([1-9]\\d*)$/.exec(normalized);\n if (!match) {\n throw new Error(\"Image size must be auto or WIDTHxHEIGHT, for example 1536x1024\");\n }\n const width = Number(match[1]);\n const height = Number(match[2]);\n const pixels = width * height;\n if (width % 16 !== 0 || height % 16 !== 0) {\n throw new Error(\"GPT Image 2 width and height must both be divisible by 16\");\n }\n if (width > MAX_IMAGE_EDGE || height > MAX_IMAGE_EDGE) {\n throw new Error(`GPT Image 2 width and height must not exceed ${MAX_IMAGE_EDGE}px`);\n }\n if (Math.max(width, height) / Math.min(width, height) > 3) {\n throw new Error(\"GPT Image 2 aspect ratio must be between 1:3 and 3:1\");\n }\n if (pixels < MIN_IMAGE_PIXELS || pixels > MAX_IMAGE_PIXELS) {\n throw new Error(\n `GPT Image 2 size must contain between ${MIN_IMAGE_PIXELS.toLocaleString(\"en-US\")} and ${MAX_IMAGE_PIXELS.toLocaleString(\"en-US\")} pixels`,\n );\n }\n return `${width}x${height}`;\n}\n\nfunction outputPath(\n files: WorkspaceFileSystem,\n toolCallId: string,\n requested?: string,\n): string {\n const path = requested?.trim()\n ? requested.trim()\n : `output/codex-images/${sanitizeFilePart(toolCallId)}.png`;\n const absolute = files.resolvePath(path);\n return files.extname(absolute).toLowerCase() === \".png\" ? absolute : `${absolute}.png`;\n}\n\nasync function assertDoesNotExist(\n files: WorkspaceFileSystem,\n path: string,\n signal?: AbortSignal,\n): Promise<void> {\n if (await files.exists(path, { signal })) {\n throw new Error(`Refusing to overwrite existing image: ${path}`);\n }\n}\n\nasync function imageDataUrl(\n files: WorkspaceFileSystem,\n path: string,\n signal?: AbortSignal,\n): Promise<string> {\n const absolute = files.resolvePath(path);\n const mimeType = IMAGE_MIME_TYPES[files.extname(absolute).toLowerCase()];\n if (!mimeType) throw new Error(`Unsupported reference image type: ${path}`);\n const bytes = await collectWorkspaceFile(\n await files.readFile(absolute, { signal }),\n { signal },\n );\n return `data:${mimeType};base64,${bytes.toString(\"base64\")}`;\n}\n\nfunction conversationImageDataUrl(value: ImageContent): string | undefined {\n if (!value.data || !value.mimeType.toLowerCase().startsWith(\"image/\")) return undefined;\n if (value.data.startsWith(\"data:image/\")) return value.data;\n const mimeType = value.mimeType.toLowerCase() === \"image/jpg\" ? \"image/jpeg\" : value.mimeType;\n return `data:${mimeType};base64,${value.data}`;\n}\n\nfunction imagesFromContent(content: unknown): string[] {\n if (!Array.isArray(content)) return [];\n const images: string[] = [];\n for (const item of content) {\n if (!item || typeof item !== \"object\" || (item as { type?: unknown }).type !== \"image\") continue;\n const dataUrl = conversationImageDataUrl(item as ImageContent);\n if (dataUrl) images.push(dataUrl);\n }\n return images;\n}\n\nfunction recentConversationImages(ctx: ExtensionContext, count: number): ImageReference[] {\n const images: string[] = [];\n for (const entry of ctx.sessionManager.buildContextEntries()) {\n if (entry.type === \"message\" && \"content\" in entry.message) {\n images.push(...imagesFromContent(entry.message.content));\n } else if (entry.type === \"custom_message\") {\n images.push(...imagesFromContent(entry.content));\n }\n }\n const selected = images.slice(-count);\n if (selected.length !== count) {\n throw new Error(\n `Requested the last ${count} conversation image${count === 1 ? \"\" : \"s\"}, but only ${selected.length} were available`,\n );\n }\n return selected.map((image_url) => ({ image_url }));\n}\n\nfunction firstImage(response: ImageResponse): string {\n const value = response.data?.[0]?.b64_json;\n if (typeof value !== \"string\" || value.length === 0) {\n throw new Error(\"Codex image API returned no image data\");\n }\n return value;\n}\n\nfunction imagePhaseLabel(phase: CodexImagePhase): string {\n if (phase === \"preparing\") return \"Preparing image request…\";\n if (phase === \"authenticating\") return \"Authenticating with Codex…\";\n if (phase === \"reading-references\") return \"Reading reference images…\";\n if (phase === \"generating\") return \"Waiting for Codex image generation…\";\n if (phase === \"saving\") return \"Saving generated PNG…\";\n return \"Image completed\";\n}\n\nexport function registerCodexImageTool(\n pi: ExtensionAPI,\n getConfig: () => CodexApiConfig = () => DEFAULT_CODEX_API_CONFIG,\n): void {\n pi.registerTool({\n name: \"codex_image\",\n label: \"Codex Image\",\n description:\n \"Generate a PNG with the Codex subscription image API, or edit with up to five local or recent conversation images. Uses the active openai-codex OAuth subscription and gpt-image-2; no API key is required.\",\n promptSnippet: \"Generate or edit raster images through the active Codex subscription\",\n promptGuidelines: [\n \"Use codex_image for requested raster images, illustrations, mockups, textures, or edits when the active model uses openai-codex OAuth, or Other providers is enabled in /99settings and Codex OAuth is logged in.\",\n \"Load the gpt-image-prompts skill before generating or editing an image; it covers prompt structure, composition, aspect-ratio control, exact text, and edit patterns.\",\n \"For a new image, omit both reference fields. For an edit, use referenced_image_paths for local files or num_last_images_to_include for recent attached/generated conversation images; never provide both.\",\n \"Omit size and quality unless the user explicitly requests a draft or quality level; the size and aspect_ratio parameters may be ignored by the backend — control the aspect ratio with composition words in the prompt (see the skill).\",\n \"Use a new output_path and do not overwrite an existing asset; report the saved path after generation.\",\n ],\n parameters: Type.Object({\n prompt: Type.String({\n minLength: 1,\n description: \"Detailed image generation or editing prompt\",\n }),\n referenced_image_paths: Type.Optional(Type.Array(Type.String({ minLength: 1 }), {\n maxItems: MAX_REFERENCE_IMAGES,\n description: \"Local PNG, JPEG, WebP, or GIF paths used for an edit\",\n })),\n num_last_images_to_include: Type.Optional(Type.Integer({\n minimum: 1,\n maximum: MAX_REFERENCE_IMAGES,\n description: \"Use the smallest number of recent attached or generated conversation images needed for an edit; do not combine with referenced_image_paths\",\n })),\n size: Type.Optional(Type.String({\n minLength: 1,\n pattern: \"^(auto|[1-9][0-9]*x[1-9][0-9]*)$\",\n description: \"Exact GPT Image 2 output size as WIDTHxHEIGHT only when required. Edges must be divisible by 16 and at most 3840px, aspect ratio 1:3 to 3:1, total 655360 to 8294400 pixels. May be ignored by the backend; control the aspect ratio with composition words in the prompt (see the gpt-image-prompts skill).\",\n })),\n quality: Type.Optional(ImageQualitySchema),\n output_path: Type.Optional(Type.String({\n minLength: 1,\n description: \"Destination PNG path; defaults under output/codex-images\",\n })),\n }, { additionalProperties: false }),\n async execute(toolCallId, params, signal, onUpdate, ctx) {\n const references = params.referenced_image_paths ?? [];\n const recentImageCount = params.num_last_images_to_include;\n if (references.length > MAX_REFERENCE_IMAGES) {\n throw new Error(`referenced_image_paths accepts at most ${MAX_REFERENCE_IMAGES} images`);\n }\n if (references.length > 0 && recentImageCount !== undefined) {\n throw new Error(\"Provide only one of referenced_image_paths or num_last_images_to_include\");\n }\n const operation = references.length === 0 && recentImageCount === undefined ? \"generate\" : \"edit\";\n const files = resolveWorkspaceFiles(pi, ctx.cwd);\n const savedPath = outputPath(files, toolCallId, params.output_path);\n const config = getConfig();\n const quality: CodexImageQuality = params.quality ?? config.imageQuality ?? \"auto\";\n const size = normalizeCodexImageSize(params.size);\n const update = (phase: CodexImagePhase) => onUpdate?.({\n content: [{ type: \"text\", text: imagePhaseLabel(phase) }],\n details: {\n phase,\n savedPath,\n },\n });\n update(\"preparing\");\n await assertDoesNotExist(files, savedPath, signal);\n update(\"authenticating\");\n const client = await createCodexApiClient(ctx, {\n allowOtherProviders: config.allowOtherProviders,\n });\n let images: ImageReference[] | undefined;\n if (references.length > 0) {\n update(\"reading-references\");\n images = await Promise.all(\n references.map(async (path) => ({ image_url: await imageDataUrl(files, path, signal) })),\n );\n } else if (recentImageCount !== undefined) {\n update(\"reading-references\");\n images = recentConversationImages(ctx, recentImageCount);\n }\n const request = {\n prompt: params.prompt,\n background: \"auto\",\n model: IMAGE_MODEL,\n quality,\n size,\n };\n update(\"generating\");\n const response = images === undefined\n ? await client.post<ImageResponse>(\"images/generations\", request, signal)\n : await client.post<ImageResponse>(\"images/edits\", { ...request, images }, signal);\n const data = firstImage(response);\n update(\"saving\");\n await files.mkdir(files.dirname(savedPath), { signal });\n await files.writeFile(\n savedPath,\n Buffer.from(data, \"base64\"),\n { signal },\n );\n // Image generation does not consume the Codex rate-limit window, so no\n // usage refresh is needed here.\n\n return {\n content: [\n { type: \"text\", text: `${operation === \"edit\" ? \"Edited\" : \"Generated\"} image saved to ${savedPath}` },\n { type: \"image\", data, mimeType: \"image/png\" },\n ],\n details: {\n phase: \"completed\",\n savedPath,\n } satisfies CodexImageDetails,\n };\n },\n renderCall(args, theme, context) {\n const text = reusableText(context);\n const references = Array.isArray(args.referenced_image_paths)\n ? args.referenced_image_paths\n : [];\n const recentImageCount = typeof args.num_last_images_to_include === \"number\"\n ? args.num_last_images_to_include\n : undefined;\n const operation = references.length > 0 || recentImageCount !== undefined ? \"edit\" : \"generate\";\n const prompt = typeof args.prompt === \"string\" && args.prompt\n ? JSON.stringify(args.prompt)\n : \"\";\n const referencePaths = references.filter((path): path is string => typeof path === \"string\");\n const referenceParameter = referencePaths.length > 0\n ? `references=[${referencePaths.map((path) => JSON.stringify(path)).join(\", \")}]`\n : \"\";\n const recentParameter = recentImageCount !== undefined ? `recent=${recentImageCount}` : \"\";\n const sizeParameter = typeof args.size === \"string\" && args.size ? `size=${args.size}` : \"\";\n const qualityParameter = typeof args.quality === \"string\" && args.quality\n ? `quality=${args.quality}`\n : \"\";\n const outputParameter = typeof args.output_path === \"string\" && args.output_path\n ? `output=${JSON.stringify(args.output_path)}`\n : \"\";\n text.setText(\n theme.fg(\"toolTitle\", theme.bold(\"codex_image\"))\n + (operation ? ` ${theme.fg(\"accent\", operation)}` : \"\")\n + (prompt ? ` ${theme.fg(\"muted\", prompt)}` : \"\")\n + (referenceParameter ? ` ${theme.fg(\"dim\", referenceParameter)}` : \"\")\n + (recentParameter ? ` ${theme.fg(\"dim\", recentParameter)}` : \"\")\n + (sizeParameter ? ` ${theme.fg(\"dim\", sizeParameter)}` : \"\")\n + (qualityParameter ? ` ${theme.fg(\"dim\", qualityParameter)}` : \"\")\n + (outputParameter ? ` ${theme.fg(\"muted\", outputParameter)}` : \"\")\n + streamingSuffix(\n theme,\n context.argsComplete || context.executionStarted || !context.isPartial,\n ),\n );\n return text;\n },\n renderResult(result, { isPartial }, theme, context) {\n const text = reusableText(context);\n const details = result.details as CodexImageDetails | undefined;\n const output = textOutput(result.content);\n if (isPartial) {\n text.setText(theme.fg(\"warning\", imagePhaseLabel(details?.phase ?? \"preparing\")));\n return text;\n }\n if (context.isError || !details) {\n text.setText(output ? theme.fg(\"error\", output) : theme.fg(\"error\", \"Codex image request failed\"));\n return text;\n }\n text.setText(output ? theme.fg(\"toolOutput\", output) : \"\");\n return text;\n },\n });\n}\n",
@@ -12,7 +12,7 @@
12
12
  "import { watch, type FSWatcher } from \"node:fs\";\nimport { basename, dirname, join } from \"node:path\";\nimport {\n getAgentDir,\n type ExtensionAPI,\n type ExtensionContext,\n type ThemeColor,\n} from \"@earendil-works/pi-coding-agent\";\nimport {\n CodexApiError,\n CodexOAuthError,\n createCodexApiClient,\n type CodexApiClient,\n} from \"./client.ts\";\nimport type { CodexApiConfig } from \"./config.ts\";\n\nconst USAGE_PATH = \"../wham/usage\";\nconst REDEEM_CREDITS_PATH = \"../wham/rate-limit-reset-credits\";\nconst REDEEM_PATH = \"../wham/rate-limit-reset-credits/consume\";\nconst REDEEM_CONFIRM_WINDOW_MS = 10_000;\nconst REDEEM_DIALOG_TIMEOUT_MS = 30_000;\nconst REDEEM_RETRY_WINDOW_MS = 5 * 60_000;\nconst USAGE_REFRESH_INTERVAL_MS = 60_000;\nconst AUTH_WATCH_DEBOUNCE_MS = 100;\n/** Cap usage/redeem requests so a stalled backend cannot wedge the status pipeline. */\nconst USAGE_FETCH_TIMEOUT_MS = 15_000;\nconst AUTH_EXPIRED_STATUS = \"Codex auth expired\";\nconst USAGE_UNAVAILABLE_STATUS = \"Codex usage unavailable\";\n\nconst STATUS_KEY = \"codex-api-usage\";\n\nexport interface CodexRateLimitWindow {\n usedPercent: number;\n windowMinutes?: number;\n resetsAt?: number;\n}\n\nexport interface CodexCreditsSnapshot {\n hasCredits: boolean;\n unlimited: boolean;\n balance?: string;\n}\n\nexport interface CodexRateLimitSnapshot {\n limitId: string;\n limitName?: string;\n primary?: CodexRateLimitWindow;\n secondary?: CodexRateLimitWindow;\n credits?: CodexCreditsSnapshot;\n /** True when the server reports the account has hit its Codex usage limit. */\n limitReached?: boolean;\n}\n\nexport interface CodexAccountSnapshot {\n planType?: string;\n email?: string;\n}\n\nexport interface CodexRedeemCredit {\n id: string;\n title?: string;\n description?: string;\n status?: string;\n /** Epoch milliseconds, when provided by the backend. */\n grantedAt?: number;\n expiresAt?: number;\n}\n\nexport interface CodexRedeemCreditsSnapshot {\n availableCount: number;\n totalEarnedCount?: number;\n credits: CodexRedeemCredit[];\n}\n\nfunction object(value: unknown): Record<string, unknown> | undefined {\n return value && typeof value === \"object\" && !Array.isArray(value)\n ? value as Record<string, unknown>\n : undefined;\n}\n\nfunction property(value: Record<string, unknown>, snake: string, camel: string): unknown {\n return value[snake] ?? value[camel];\n}\n\nfunction payloadNumber(value: unknown): number | undefined {\n const number = typeof value === \"number\" ? value : typeof value === \"string\" ? Number(value) : NaN;\n return Number.isFinite(number) ? number : undefined;\n}\n\nfunction payloadDate(value: unknown): number | undefined {\n if (typeof value === \"number\") return Number.isFinite(value) ? value : undefined;\n if (typeof value === \"string\") {\n const ms = Date.parse(value);\n return Number.isFinite(ms) ? ms : undefined;\n }\n return undefined;\n}\n\nfunction payloadString(value: unknown): string | undefined {\n return typeof value === \"string\" && value.trim() ? value.trim() : undefined;\n}\n\nfunction payloadBool(value: unknown): boolean | undefined {\n if (typeof value === \"boolean\") return value;\n if (value === 1 || value === \"1\" || (typeof value === \"string\" && value.toLowerCase() === \"true\")) return true;\n if (value === 0 || value === \"0\" || (typeof value === \"string\" && value.toLowerCase() === \"false\")) return false;\n return undefined;\n}\n\nfunction payloadWindow(value: unknown): CodexRateLimitWindow | undefined {\n const input = object(value);\n if (!input) return undefined;\n const usedPercent = payloadNumber(property(input, \"used_percent\", \"usedPercent\"));\n if (usedPercent === undefined) return undefined;\n const seconds = payloadNumber(property(input, \"limit_window_seconds\", \"limitWindowSeconds\"));\n return {\n usedPercent,\n windowMinutes: seconds !== undefined && seconds > 0 ? Math.ceil(seconds / 60) : undefined,\n resetsAt: payloadNumber(property(input, \"reset_at\", \"resetAt\")),\n };\n}\n\nfunction payloadCredits(value: unknown): CodexCreditsSnapshot | undefined {\n const input = object(value);\n if (!input) return undefined;\n const hasCredits = payloadBool(property(input, \"has_credits\", \"hasCredits\"));\n const unlimited = payloadBool(input.unlimited);\n if (hasCredits === undefined || unlimited === undefined) return undefined;\n const balance = input.balance;\n return {\n hasCredits,\n unlimited,\n balance: typeof balance === \"string\" && balance ? balance : undefined,\n };\n}\n\nfunction payloadSnapshot(\n limitId: string,\n limitName: string | undefined,\n rateLimitValue: unknown,\n creditsValue?: unknown,\n limitReached?: boolean,\n): CodexRateLimitSnapshot {\n const rateLimit = object(rateLimitValue);\n return {\n limitId,\n limitName,\n primary: payloadWindow(rateLimit && property(rateLimit, \"primary_window\", \"primaryWindow\")),\n secondary: payloadWindow(rateLimit && property(rateLimit, \"secondary_window\", \"secondaryWindow\")),\n credits: payloadCredits(creditsValue),\n limitReached,\n };\n}\n\nexport function parseCodexAccountInfo(value: unknown): CodexAccountSnapshot | undefined {\n const input = object(value);\n if (!input) return undefined;\n const planType = payloadString(property(input, \"plan_type\", \"planType\"));\n const email = payloadString(property(input, \"email\", \"email\"));\n if (planType === undefined && email === undefined) return undefined;\n return { planType, email };\n}\n\nexport function maskCodexEmail(email: string): string {\n const [local, domain] = email.split(\"@\");\n if (!domain) return \"***\";\n const head = local.length > 3 ? local.slice(0, 3) : local.slice(0, 1);\n return `${head}***@${domain}`;\n}\n\nexport function parseCodexRedeemCredits(value: unknown): CodexRedeemCreditsSnapshot | undefined {\n const input = object(value);\n if (!input) return undefined;\n const availableCount = payloadNumber(property(input, \"available_count\", \"availableCount\"));\n if (availableCount === undefined) return undefined;\n const credits: CodexRedeemCredit[] = [];\n const list = property(input, \"credits\", \"credits\");\n if (Array.isArray(list)) {\n for (const item of list) {\n const credit = object(item);\n if (!credit) continue;\n const id = payloadString(property(credit, \"id\", \"id\"));\n if (!id) continue;\n credits.push({\n id,\n title: payloadString(property(credit, \"title\", \"title\")),\n description: payloadString(property(credit, \"description\", \"description\")),\n status: payloadString(property(credit, \"status\", \"status\")),\n grantedAt: payloadDate(property(credit, \"granted_at\", \"grantedAt\")),\n expiresAt: payloadDate(property(credit, \"expires_at\", \"expiresAt\")),\n });\n }\n }\n return {\n availableCount,\n totalEarnedCount: payloadNumber(property(input, \"total_earned_count\", \"totalEarnedCount\")),\n credits,\n };\n}\n\nexport function parseCodexUsagePayload(value: unknown): CodexRateLimitSnapshot[] {\n const input = object(value);\n if (!input) return [];\n const rateLimit = property(input, \"rate_limit\", \"rateLimit\");\n const rateLimitObject = object(rateLimit);\n const limitReached = payloadBool(rateLimitObject && property(rateLimitObject, \"limit_reached\", \"limitReached\"));\n const snapshots = rateLimit !== undefined || input.credits !== undefined\n ? [payloadSnapshot(\"codex\", undefined, rateLimit, input.credits, limitReached)]\n : [];\n const additional = property(input, \"additional_rate_limits\", \"additionalRateLimits\");\n if (Array.isArray(additional)) {\n for (const value of additional) {\n const item = object(value);\n if (!item) continue;\n const id = property(item, \"metered_feature\", \"meteredFeature\");\n if (typeof id !== \"string\" || !id.trim()) continue;\n const name = property(item, \"limit_name\", \"limitName\");\n snapshots.push(payloadSnapshot(\n id.trim().toLowerCase().replace(/-/g, \"_\"),\n typeof name === \"string\" && name.trim() ? name.trim() : undefined,\n property(item, \"rate_limit\", \"rateLimit\"),\n ));\n }\n }\n return snapshots;\n}\n\nfunction normalizedHeaders(headers: Record<string, string>): Record<string, string> {\n return Object.fromEntries(Object.entries(headers).map(([key, value]) => [key.toLowerCase(), value]));\n}\n\nfunction finiteNumber(value: string | undefined): number | undefined {\n if (value === undefined) return undefined;\n const number = Number(value);\n return Number.isFinite(number) ? number : undefined;\n}\n\nfunction bool(value: string | undefined): boolean | undefined {\n if (value === \"1\" || value?.toLowerCase() === \"true\") return true;\n if (value === \"0\" || value?.toLowerCase() === \"false\") return false;\n return undefined;\n}\n\nfunction windowFor(headers: Record<string, string>, prefix: string): CodexRateLimitWindow | undefined {\n const usedPercent = finiteNumber(headers[`${prefix}-used-percent`]);\n if (usedPercent === undefined) return undefined;\n return {\n usedPercent,\n windowMinutes: finiteNumber(headers[`${prefix}-window-minutes`]),\n resetsAt: finiteNumber(headers[`${prefix}-reset-at`]),\n };\n}\n\nexport function parseCodexRateLimits(input: Record<string, string>): CodexRateLimitSnapshot[] {\n const headers = normalizedHeaders(input);\n const prefixes = new Set<string>();\n for (const name of Object.keys(headers)) {\n const match = /^x-(.+)-primary-used-percent$/.exec(name);\n if (match) prefixes.add(`x-${match[1]}`);\n }\n if (Object.keys(headers).some((name) => name.startsWith(\"x-codex-\"))) prefixes.add(\"x-codex\");\n\n return [...prefixes].sort().flatMap((prefix) => {\n const primary = windowFor(headers, `${prefix}-primary`);\n const secondary = windowFor(headers, `${prefix}-secondary`);\n const hasCredits = bool(headers[\"x-codex-credits-has-credits\"]);\n const unlimited = bool(headers[\"x-codex-credits-unlimited\"]);\n const credits = prefix === \"x-codex\" && hasCredits !== undefined && unlimited !== undefined\n ? {\n hasCredits,\n unlimited,\n balance: headers[\"x-codex-credits-balance\"],\n }\n : undefined;\n // The backend includes this header only when the account is currently rate limited.\n const limitReached = prefix === \"x-codex\"\n ? headers[\"x-codex-rate-limit-reached-type\"] !== undefined\n : undefined;\n if (!primary && !secondary && !credits && !limitReached) return [];\n return [{\n limitId: prefix.slice(2).replace(/-/g, \"_\"),\n limitName: headers[`${prefix}-limit-name`],\n primary,\n secondary,\n credits,\n limitReached,\n }];\n });\n}\n\nfunction percent(value: number): string {\n return Number.isInteger(value) ? String(value) : value.toFixed(1);\n}\n\nfunction resetText(epochSeconds: number | undefined, now = Date.now()): string | undefined {\n if (epochSeconds === undefined) return undefined;\n const remainingMs = epochSeconds * 1000 - now;\n if (remainingMs <= 0) return undefined;\n const totalMinutes = Math.ceil(remainingMs / 60_000);\n if (totalMinutes < 60) return `${totalMinutes}m`;\n if (totalMinutes < 24 * 60) {\n const hours = Math.floor(totalMinutes / 60);\n const minutes = totalMinutes % 60;\n return minutes > 0 ? `${hours}h ${minutes}m` : `${hours}h`;\n }\n const days = Math.floor(totalMinutes / (24 * 60));\n const hours = Math.floor((totalMinutes % (24 * 60)) / 60);\n return hours > 0 ? `${days}d ${hours}h` : `${days}d`;\n}\n\nconst KNOWN_WINDOWS = [\n { minutes: 5 * 60, label: \"5h\" },\n { minutes: 24 * 60, label: \"daily\" },\n { minutes: 7 * 24 * 60, label: \"weekly\" },\n { minutes: 30 * 24 * 60, label: \"monthly\" },\n { minutes: 365 * 24 * 60, label: \"annual\" },\n] as const;\n\nfunction windowLabel(window: CodexRateLimitWindow, fallback: string): string {\n if (window.windowMinutes === undefined) return fallback;\n const known = KNOWN_WINDOWS.find(({ minutes }) =>\n window.windowMinutes! >= minutes * 0.95 && window.windowMinutes! <= minutes * 1.05\n );\n return known?.label ?? fallback;\n}\n\nfunction activeWindow(window: CodexRateLimitWindow | undefined, now: number): window is CodexRateLimitWindow {\n if (!window) return false;\n const resetIsStale = window.resetsAt !== undefined && window.resetsAt * 1000 <= now;\n if (window.usedPercent === 0 && resetIsStale) return false;\n return window.usedPercent > 0\n || (window.windowMinutes !== undefined && window.windowMinutes > 0)\n || (window.resetsAt !== undefined && window.resetsAt * 1000 > now);\n}\n\ninterface LabeledWindow {\n label: string;\n window: CodexRateLimitWindow;\n}\n\nfunction activeWindows(snapshot: CodexRateLimitSnapshot, now: number): LabeledWindow[] {\n return [\n activeWindow(snapshot.primary, now)\n ? { label: windowLabel(snapshot.primary, \"usage\"), window: snapshot.primary }\n : undefined,\n activeWindow(snapshot.secondary, now)\n ? { label: windowLabel(snapshot.secondary, \"secondary usage\"), window: snapshot.secondary }\n : undefined,\n ].filter((value): value is LabeledWindow => value !== undefined);\n}\n\nconst USAGE_BAR_WIDTH = 20;\n\nfunction remainingPercent(window: CodexRateLimitWindow): number {\n return Math.min(100, Math.max(0, 100 - window.usedPercent));\n}\n\nfunction usageBar(remaining: number): string {\n const filled = Math.round(remaining / 100 * USAGE_BAR_WIDTH);\n return `[${\"█\".repeat(filled)}${\"░\".repeat(USAGE_BAR_WIDTH - filled)}]`;\n}\n\nfunction windowText(item: LabeledWindow, labelWidth: number, now: number, limitReached: boolean): string {\n const reset = resetText(item.window.resetsAt, now);\n const remaining = remainingPercent(item.window);\n const state = limitReached ? \"limit reached\" : `${percent(remaining)}% left`;\n return `${item.label.padEnd(labelWidth)} ${usageBar(limitReached ? 0 : remaining)} ${state}${reset ? ` resets in ${reset}` : \"\"}`;\n}\n\nfunction creditsText(credits: CodexCreditsSnapshot): string {\n if (credits.unlimited) return \"unlimited additional credits\";\n if (credits.hasCredits) {\n return `additional credits available${credits.balance ? ` (${credits.balance})` : \"\"}`;\n }\n return \"no additional credits\";\n}\n\nexport interface CodexUsageExtras {\n account?: CodexAccountSnapshot;\n redeemCredits?: CodexRedeemCreditsSnapshot;\n}\n\nfunction planLabel(planType: string): string {\n return planType.charAt(0).toUpperCase() + planType.slice(1);\n}\n\nfunction formatDateTime(epochMs: number): string {\n // Render in the user's local timezone with an explicit UTC offset label, so\n // the expiry reads naturally while the boundary stays unambiguous.\n const date = new Date(epochMs);\n const pad = (value: number) => String(value).padStart(2, \"0\");\n const offsetMinutes = -new Date(epochMs).getTimezoneOffset();\n const sign = offsetMinutes >= 0 ? \"+\" : \"-\";\n const abs = Math.abs(offsetMinutes);\n const offset = abs % 60 === 0\n ? `UTC${sign}${abs / 60}`\n : `UTC${sign}${Math.floor(abs / 60)}:${pad(abs % 60)}`;\n return `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())} ${pad(date.getHours())}:${pad(date.getMinutes())} ${offset}`;\n}\n\n/** Renders redeem lines; returns an empty array when there is nothing to redeem. */\nexport function formatCodexRedeemCredits(\n redeemCredits: CodexRedeemCreditsSnapshot | undefined,\n now = Date.now(),\n): string[] {\n if (!redeemCredits || redeemCredits.availableCount <= 0) return [];\n const lines = [`rate limit redeem${redeemCredits.availableCount === 1 ? \"\" : ` ×${redeemCredits.availableCount}`}`];\n const available = redeemCredits.credits\n .filter((credit) => credit.status === undefined || credit.status === \"available\")\n // Earliest expiring first, so the most urgent card is visible at the top.\n .sort((left, right) => (left.expiresAt ?? Number.POSITIVE_INFINITY) - (right.expiresAt ?? Number.POSITIVE_INFINITY));\n for (const credit of available) {\n const details: string[] = [\"available\"];\n if (credit.expiresAt !== undefined) {\n details.push(credit.expiresAt > now ? `expires ${formatDateTime(credit.expiresAt)}` : \"expired\");\n }\n lines.push(` ${credit.title ?? \"reset credit\"} (${details.join(\", \")})`);\n }\n return lines.length > 1 ? lines : [];\n}\n\nexport function formatCodexUsage(\n snapshots: CodexRateLimitSnapshot[],\n now = Date.now(),\n extras: CodexUsageExtras = {},\n): string {\n if (snapshots.length === 0) {\n return \"No Codex usage data is available. Run /codex-usage with an active Codex subscription model to refresh it.\";\n }\n const lines = [\"Codex usage\"];\n if (extras.account) {\n const plan = extras.account.planType ? planLabel(extras.account.planType) : \"unknown plan\";\n lines.push(\"\", `account · ${plan}${extras.account.email ? ` (${maskCodexEmail(extras.account.email)})` : \"\"}`);\n }\n for (const snapshot of snapshots) {\n const name = snapshot.limitName ?? snapshot.limitId;\n const windows = activeWindows(snapshot, now);\n const labelWidth = Math.max(0, ...windows.map((window) => window.label.length));\n lines.push(\"\", name);\n if (windows.length === 0) lines.push(\" no active usage windows\");\n else lines.push(...windows.map((window) => ` ${windowText(window, labelWidth, now, snapshot.limitReached === true)}`));\n if (snapshot.credits) lines.push(` ${creditsText(snapshot.credits)}`);\n }\n const redeemLines = formatCodexRedeemCredits(extras.redeemCredits, now);\n if (redeemLines.length > 0) lines.push(\"\", ...redeemLines);\n return lines.join(\"\\n\");\n}\n\nexport function formatCodexStatus(\n snapshots: CodexRateLimitSnapshot[],\n fastMode: boolean,\n now = Date.now(),\n): string | undefined {\n const snapshot = snapshots.find((item) => item.limitId === \"codex\") ?? snapshots[0];\n if (!snapshot) return undefined;\n const shortest = activeWindows(snapshot, now)\n .sort((left, right) => {\n const leftWindow = left.window.windowMinutes ?? Number.POSITIVE_INFINITY;\n const rightWindow = right.window.windowMinutes ?? Number.POSITIVE_INFINITY;\n if (leftWindow !== rightWindow) return leftWindow - rightWindow;\n return (left.window.resetsAt ?? Number.POSITIVE_INFINITY) - (right.window.resetsAt ?? Number.POSITIVE_INFINITY);\n })[0];\n if (!shortest) return undefined;\n const remaining = remainingPercent(shortest.window);\n const reset = resetText(shortest.window.resetsAt, now);\n const usage = snapshot.limitReached === true ? \"limit reached\" : `${percent(remaining)}%`;\n return `Codex ${shortest.label} ${usage}${reset ? ` ${reset}` : \"\"}${fastMode ? \" Fast\" : \"\"}`;\n}\n\nexport function applyFastModePayload(payload: unknown, enabled: boolean): unknown {\n if (!enabled || !payload || typeof payload !== \"object\" || Array.isArray(payload)) return payload;\n return { ...(payload as Record<string, unknown>), service_tier: \"priority\" };\n}\n\ninterface UsageController {\n getConfig(): CodexApiConfig;\n updateConfig(config: CodexApiConfig, ctx: ExtensionContext): void;\n}\n\ninterface AccountUsageFetch {\n revision: number;\n promise: Promise<void>;\n}\n\ninterface ResolvedActiveClient {\n accountChanged: boolean;\n accountId: string;\n client: CodexApiClient;\n revision: number;\n}\n\ninterface PendingRedeem {\n redeemRequestId: string;\n creditId?: string;\n expiresAt: number;\n}\n\ninterface AccountUsageState {\n snapshots: CodexRateLimitSnapshot[];\n account?: CodexAccountSnapshot;\n redeemCredits?: CodexRedeemCreditsSnapshot;\n lastFetchAt: number;\n usageFetch?: AccountUsageFetch;\n}\n\nexport interface CodexUsageHandle {\n getSnapshots(): CodexRateLimitSnapshot[];\n refreshStatus(ctx: ExtensionContext): void;\n refreshUsage(ctx: ExtensionContext, force?: boolean): Promise<void>;\n}\n\nexport interface CodexUsageOptions {\n /** Internal/test override. Production watches Pi's agent-dir auth.json. */\n authPath?: string;\n /** Internal/test override for command-handler tests without a session lifecycle. */\n registerCommandsImmediately?: boolean;\n /** Internal/test override to keep timeout tests fast. */\n usageFetchTimeoutMs?: number;\n}\n\n/**\n * Whether a settings change should pull fresh usage data immediately:\n * toggling status visibility on, or changing cross-provider tool access,\n * both alter what the status area can show.\n */\nexport function usageRefreshNeeded(prev: CodexApiConfig, next: CodexApiConfig): boolean {\n return next.usageStatus\n && (prev.usageStatus !== next.usageStatus || prev.allowOtherProviders !== next.allowOtherProviders);\n}\n\nexport function registerCodexUsageAndFast(\n pi: ExtensionAPI,\n controller: UsageController,\n options: CodexUsageOptions = {},\n): CodexUsageHandle {\n const usageByAccount = new Map<string, AccountUsageState>();\n const pendingRedeemByAccount = new Map<string, PendingRedeem>();\n let activeAccountId: string | undefined;\n let credentialRevision = 0;\n let latestContext: ExtensionContext | undefined;\n let accountCheck: Promise<void> | undefined;\n let accountObserverActive = false;\n let authWatcher: FSWatcher | undefined;\n let authWatchDebounce: ReturnType<typeof setTimeout> | undefined;\n let pollDelay: ReturnType<typeof setTimeout> | undefined;\n\n const codexOAuthLoginAvailable = (ctx: ExtensionContext): boolean =>\n (ctx.model?.provider === \"openai-codex\" && ctx.modelRegistry.isUsingOAuth(ctx.model))\n || (ctx.modelRegistry.getAll?.() ?? []).some((candidate) =>\n candidate.provider === \"openai-codex\" && ctx.modelRegistry.isUsingOAuth(candidate)\n );\n\n const usageEnabled = (ctx: ExtensionContext): boolean => {\n const config = controller.getConfig();\n return config.usageStatus\n && (ctx.model?.provider === \"openai-codex\" || config.allowOtherProviders);\n };\n\n const usageFetchSignal = (): AbortSignal =>\n AbortSignal.timeout(options.usageFetchTimeoutMs ?? USAGE_FETCH_TIMEOUT_MS);\n\n const setStatus = (\n ctx: ExtensionContext,\n value: string | undefined,\n color: ThemeColor = \"muted\",\n ): void => {\n ctx.ui.setStatus(STATUS_KEY, value && ctx.ui.theme\n ? ctx.ui.theme.fg(color, value)\n : value);\n };\n\n const resetAccountState = (): void => {\n credentialRevision += 1;\n activeAccountId = undefined;\n usageByAccount.clear();\n pendingRedeemByAccount.clear();\n };\n\n /** Missing OAuth is an inactive state, not an expired-credential error. */\n const clearIfCodexOAuthUnavailable = (ctx: ExtensionContext): boolean => {\n if (codexOAuthLoginAvailable(ctx)) return false;\n if (\n activeAccountId !== undefined\n || usageByAccount.size > 0\n || pendingRedeemByAccount.size > 0\n || accountCheck !== undefined\n ) {\n resetAccountState();\n }\n setStatus(ctx, undefined);\n return true;\n };\n\n const currentState = (): AccountUsageState | undefined =>\n activeAccountId ? usageByAccount.get(activeAccountId) : undefined;\n\n const refreshStatus = (ctx: ExtensionContext) => {\n latestContext = ctx;\n if (clearIfCodexOAuthUnavailable(ctx)) return;\n if (!usageEnabled(ctx)) {\n setStatus(ctx, undefined);\n return;\n }\n setStatus(ctx, formatCodexStatus(currentState()?.snapshots ?? [], controller.getConfig().fastMode));\n };\n\n const showSyncingStatus = (ctx: ExtensionContext): void => {\n latestContext = ctx;\n if (clearIfCodexOAuthUnavailable(ctx)) return;\n setStatus(ctx, usageEnabled(ctx) ? \"Codex syncing…\" : undefined);\n };\n\n /**\n * Terminal status for a failed refresh: keep the last known usage during\n * transient failures, but surface an actionable error when the stored OAuth\n * token is rejected outright (the snapshot would be stale anyway).\n */\n const showErrorStatus = (ctx: ExtensionContext, error: unknown): void => {\n latestContext = ctx;\n if (clearIfCodexOAuthUnavailable(ctx)) return;\n if (!usageEnabled(ctx)) {\n setStatus(ctx, undefined);\n return;\n }\n const isAuthError = error instanceof CodexOAuthError\n || (error instanceof CodexApiError && (error.status === 401 || error.status === 403));\n const snapshots = currentState()?.snapshots;\n if (!isAuthError && snapshots && snapshots.length > 0) {\n setStatus(ctx, formatCodexStatus(snapshots, controller.getConfig().fastMode));\n return;\n }\n setStatus(\n ctx,\n isAuthError ? AUTH_EXPIRED_STATUS : USAGE_UNAVAILABLE_STATUS,\n isAuthError ? \"error\" : \"warning\",\n );\n };\n\n const invalidateAuthState = (ctx: ExtensionContext, action: \"set\" | \"remove\"): void => {\n resetAccountState();\n if (action === \"set\") showSyncingStatus(ctx);\n else setStatus(ctx, undefined);\n };\n\n const activateAccount = (accountId: string, ctx: ExtensionContext): boolean => {\n if (activeAccountId === accountId) return false;\n credentialRevision += 1;\n activeAccountId = accountId;\n usageByAccount.clear();\n pendingRedeemByAccount.clear();\n showSyncingStatus(ctx);\n return true;\n };\n\n const accountState = (accountId: string): AccountUsageState => {\n let state = usageByAccount.get(accountId);\n if (!state) {\n state = { snapshots: [], lastFetchAt: 0 };\n usageByAccount.set(accountId, state);\n }\n return state;\n };\n\n const resolveActiveClient = async (\n ctx: ExtensionContext,\n config: CodexApiConfig,\n ): Promise<ResolvedActiveClient> => {\n for (let attempt = 0; attempt < 2; attempt += 1) {\n const revision = credentialRevision;\n const client = await createCodexApiClient(ctx, {\n allowOtherProviders: config.allowOtherProviders,\n });\n if (revision !== credentialRevision) continue;\n const accountChanged = activateAccount(client.accountId, ctx);\n return {\n accountChanged,\n accountId: client.accountId,\n client,\n revision: credentialRevision,\n };\n }\n throw new Error(\"Codex account changed while resolving subscription usage; retry the refresh\");\n };\n\n const isCurrentResolution = (\n ctx: ExtensionContext,\n resolved: ResolvedActiveClient,\n ): boolean => latestContext === ctx\n && activeAccountId === resolved.accountId\n && credentialRevision === resolved.revision;\n\n const refreshResolvedUsage = async (\n ctx: ExtensionContext,\n resolved: ResolvedActiveClient,\n force = false,\n ): Promise<void> => {\n const state = accountState(resolved.accountId);\n const now = Date.now();\n if (\n !force\n && !resolved.accountChanged\n && state.snapshots.length > 0\n && now - state.lastFetchAt < USAGE_REFRESH_INTERVAL_MS\n ) {\n if (isCurrentResolution(ctx, resolved)) refreshStatus(ctx);\n return;\n }\n\n let usageFetch = state.usageFetch;\n if (!usageFetch || usageFetch.revision !== resolved.revision) {\n const operation = (async () => {\n // Timeout: a stalled request must settle so the transient syncing\n // state is always replaced by a terminal status.\n const payload = await resolved.client.get<unknown>(\n USAGE_PATH,\n usageFetchSignal(),\n );\n const parsed = parseCodexUsagePayload(payload);\n if (parsed.length === 0) throw new Error(\"Codex usage API returned no usage data\");\n state.snapshots = parsed;\n state.account = parseCodexAccountInfo(payload);\n state.lastFetchAt = Date.now();\n })();\n let nextFetch: AccountUsageFetch;\n const pending = operation.finally(() => {\n if (state.usageFetch === nextFetch) state.usageFetch = undefined;\n });\n nextFetch = { revision: resolved.revision, promise: pending };\n state.usageFetch = nextFetch;\n usageFetch = nextFetch;\n }\n\n await usageFetch.promise;\n if (isCurrentResolution(ctx, resolved)) refreshStatus(ctx);\n };\n\n const refreshUsage = async (ctx: ExtensionContext, force = false): Promise<void> => {\n latestContext = ctx;\n const invocationRevision = credentialRevision;\n const config = controller.getConfig();\n if (ctx.model?.provider !== \"openai-codex\" && !config.allowOtherProviders) {\n const error = new Error(\n \"An active openai-codex model is required to refresh subscription usage. \"\n + \"Enable Other providers in /99settings to use the logged-in Codex subscription from another model.\",\n );\n showErrorStatus(ctx, error);\n throw error;\n }\n\n let resolved: ResolvedActiveClient | undefined;\n try {\n resolved = await resolveActiveClient(ctx, config);\n await refreshResolvedUsage(ctx, resolved, force);\n } catch (error) {\n // Ignore stale completions from an old account/context/session. A current\n // failure always replaces syncing with a terminal status.\n const isCurrent = resolved\n ? isCurrentResolution(ctx, resolved)\n : latestContext === ctx && credentialRevision === invocationRevision;\n if (isCurrent) showErrorStatus(ctx, error);\n throw error;\n }\n };\n\n const refreshInBackground = (ctx: ExtensionContext, force = false) => {\n latestContext = ctx;\n // refreshUsage reports the terminal status itself on failure.\n void refreshUsage(ctx, force).catch(() => {});\n };\n\n const stopPolling = (): void => {\n if (pollDelay) {\n clearTimeout(pollDelay);\n pollDelay = undefined;\n }\n };\n\n /**\n * Chain a background poll with setTimeout (not setInterval) so the interval\n * is re-read from the latest config on every round: changing the setting\n * takes effect without restarting anything.\n */\n const scheduleNextPoll = (): void => {\n if (pollDelay) return;\n const intervalMinutes = Math.round(controller.getConfig().usagePollInterval);\n if (intervalMinutes <= 0) return;\n pollDelay = setTimeout(() => {\n pollDelay = undefined;\n const active = latestContext;\n if (active) {\n // Reconcile auth before polling so logout cannot revive an expired\n // status through a credential-resolution failure.\n const oauthAvailable = !clearIfCodexOAuthUnavailable(active);\n const state = currentState();\n if (oauthAvailable && usageEnabled(active)) {\n const intervalMs = intervalMinutes * 60_000;\n if (!state || state.snapshots.length === 0 || Date.now() - state.lastFetchAt >= intervalMs) {\n void refreshUsage(active).catch(() => {});\n }\n }\n }\n scheduleNextPoll();\n }, intervalMinutes * 60_000);\n pollDelay.unref?.();\n };\n\n const startPolling = (ctx: ExtensionContext): void => {\n latestContext = ctx;\n scheduleNextPoll();\n };\n\n const codexOAuthAvailable = (ctx: ExtensionContext, config: CodexApiConfig): boolean => {\n const model = ctx.model?.provider === \"openai-codex\"\n ? ctx.model\n : config.allowOtherProviders\n ? ctx.modelRegistry.getAll().find((candidate) =>\n candidate.provider === \"openai-codex\" && ctx.modelRegistry.isUsingOAuth(candidate)\n )\n : undefined;\n return !!model && ctx.modelRegistry.isUsingOAuth(model);\n };\n\n const checkCurrentAccount = (\n ctx: ExtensionContext,\n forceUsage = false,\n ): Promise<void> => {\n latestContext = ctx;\n if (accountCheck) return accountCheck;\n const operation = (async () => {\n const config = controller.getConfig();\n const usageAvailable = codexOAuthAvailable(ctx, config);\n if (!codexOAuthLoginAvailable(ctx)) {\n if (activeAccountId !== undefined) invalidateAuthState(ctx, \"remove\");\n else setStatus(ctx, undefined);\n return;\n }\n let client: CodexApiClient;\n try {\n // Command visibility follows login state, not the active model or the\n // cross-provider tool setting. The latter still controls execution.\n client = await createCodexApiClient(ctx, {\n allowOtherProviders: true,\n });\n } catch (error) {\n // Credential-resolution failures are terminal too. Suppress a stale\n // completion after a context switch or session shutdown.\n if (latestContext === ctx) showErrorStatus(ctx, error);\n return;\n }\n if (!accountObserverActive || latestContext !== ctx) return;\n registerCodexCommands(ctx);\n const accountChanged = activateAccount(client.accountId, ctx);\n const resolved: ResolvedActiveClient = {\n accountChanged,\n accountId: client.accountId,\n client,\n revision: credentialRevision,\n };\n if (\n usageAvailable\n && config.usageStatus\n && (forceUsage || accountChanged || (currentState()?.snapshots.length ?? 0) === 0)\n ) {\n try {\n // Reuse the client resolved above. Resolving OAuth a second time after\n // showing syncing would create an unbounded pre-fetch stall window.\n await refreshResolvedUsage(ctx, resolved, true);\n } catch (error) {\n if (isCurrentResolution(ctx, resolved)) showErrorStatus(ctx, error);\n }\n } else {\n refreshStatus(ctx);\n }\n })();\n const pending = operation.finally(() => {\n if (accountCheck === pending) accountCheck = undefined;\n });\n accountCheck = pending;\n return pending;\n };\n\n const startAccountObserver = (ctx: ExtensionContext): void => {\n latestContext = ctx;\n accountObserverActive = true;\n if (authWatcher) return;\n const authPath = options.authPath ?? join(getAgentDir(), \"auth.json\");\n const authFilename = basename(authPath);\n try {\n const watcher = watch(dirname(authPath), { persistent: false }, (_event, filename) => {\n if (filename !== null && filename.toString() !== authFilename) return;\n if (authWatchDebounce) clearTimeout(authWatchDebounce);\n authWatchDebounce = setTimeout(() => {\n authWatchDebounce = undefined;\n const activeContext = latestContext;\n if (!activeContext) return;\n void (async () => {\n await activeContext.modelRegistry.refresh();\n if (latestContext !== activeContext) return;\n await checkCurrentAccount(activeContext);\n })().catch(() => {});\n }, AUTH_WATCH_DEBOUNCE_MS);\n authWatchDebounce.unref?.();\n });\n watcher.on(\"error\", () => {\n watcher.close();\n if (authWatcher === watcher) authWatcher = undefined;\n });\n authWatcher = watcher;\n } catch {\n // The normal agent directory exists; natural usage events remain a fallback.\n }\n };\n\n const storeHeaderSnapshots = async (\n ctx: ExtensionContext,\n snapshots: CodexRateLimitSnapshot[],\n ): Promise<void> => {\n const resolved = await resolveActiveClient(ctx, controller.getConfig());\n const state = accountState(resolved.accountId);\n state.snapshots = snapshots;\n state.lastFetchAt = Date.now();\n if (activeAccountId === resolved.accountId && credentialRevision === resolved.revision) {\n refreshStatus(ctx);\n }\n };\n\n const codexUsageCommand: Parameters<ExtensionAPI[\"registerCommand\"]>[1] = {\n description: \"Refresh and show Codex subscription usage, plan, and rate limit redeems\",\n handler: async (_args, ctx) => {\n try {\n await refreshUsage(ctx, true);\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n const snapshots = currentState()?.snapshots ?? [];\n if (snapshots.length === 0) {\n ctx.ui.notify(`Failed to refresh Codex usage: ${message}`, \"error\");\n return;\n }\n ctx.ui.notify(`Failed to refresh Codex usage; showing the latest snapshot: ${message}`, \"warning\");\n }\n try {\n const resolved = await resolveActiveClient(ctx, controller.getConfig());\n const state = accountState(resolved.accountId);\n const payload = await resolved.client.get<unknown>(\n REDEEM_CREDITS_PATH,\n usageFetchSignal(),\n );\n state.redeemCredits = parseCodexRedeemCredits(payload);\n } catch {\n // Redeem details are best-effort; the base usage message still shows.\n }\n const state = currentState();\n const message = formatCodexUsage(state?.snapshots ?? [], Date.now(), {\n account: state?.account,\n redeemCredits: state?.redeemCredits,\n });\n // Notify renders in dim; wrap the message in muted so the usage block is\n // slightly more visible. The embedded ANSI codes survive the notify path.\n ctx.ui.notify(ctx.ui.theme ? ctx.ui.theme.fg(\"muted\", message) : message, \"info\");\n },\n };\n\n const codexRedeemCommand: Parameters<ExtensionAPI[\"registerCommand\"]>[1] = {\n description: \"Preview and redeem an earned Codex rate limit reset credit (confirmation required)\",\n handler: async (_args, ctx) => {\n const config = controller.getConfig();\n if (ctx.model?.provider !== \"openai-codex\" && !config.allowOtherProviders) {\n ctx.ui.notify(\n \"An active openai-codex model is required to redeem a rate limit reset. \"\n + \"Enable Other providers in /99settings to use the logged-in Codex subscription from another model.\",\n \"error\",\n );\n return;\n }\n let resolved: Awaited<ReturnType<typeof resolveActiveClient>>;\n try {\n resolved = await resolveActiveClient(ctx, config);\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n ctx.ui.notify(`Failed to resolve the Codex subscription: ${message}`, \"error\");\n return;\n }\n const state = accountState(resolved.accountId);\n try {\n const payload = await resolved.client.get<unknown>(\n REDEEM_CREDITS_PATH,\n usageFetchSignal(),\n );\n const redeemCredits = parseCodexRedeemCredits(payload);\n state.redeemCredits = redeemCredits;\n const now = Date.now();\n if (!redeemCredits || redeemCredits.availableCount <= 0) {\n pendingRedeemByAccount.delete(resolved.accountId);\n ctx.ui.notify(\"No Codex rate limit reset credits are available to redeem.\", \"info\");\n return;\n }\n const availableCredits = [...redeemCredits.credits]\n .filter((item) => item.status === undefined || item.status === \"available\")\n // Prefer the card that expires soonest, so near-expiry credits are used first.\n .sort((left, right) => (left.expiresAt ?? Number.POSITIVE_INFINITY) - (right.expiresAt ?? Number.POSITIVE_INFINITY));\n const credit = availableCredits[0] ?? redeemCredits.credits[0];\n const expiryOf = (item: CodexRedeemCredit | undefined): string =>\n item?.expiresAt !== undefined && item.expiresAt > now\n ? ` (expires ${formatDateTime(item.expiresAt)})`\n : \"\";\n let selected = credit;\n\n if (ctx.hasUI) {\n // 1) Pick a card when more than one is available.\n if (availableCredits.length > 1) {\n const options = availableCredits.map((item) => `${item.title ?? \"reset credit\"}${expiryOf(item)}`);\n const choice = await ctx.ui.select(\"Select a reset credit to redeem\", options, {\n timeout: REDEEM_DIALOG_TIMEOUT_MS,\n });\n if (choice === undefined) {\n pendingRedeemByAccount.delete(resolved.accountId);\n ctx.ui.notify(\"Redeem cancelled — no reset credit was consumed.\", \"info\");\n return;\n }\n const index = options.indexOf(choice);\n selected = availableCredits[index] ?? credit;\n }\n // 2) Confirm the selection before redeeming. \"No\" is listed first so\n // a stray Enter on the default-selected row cancels instead of redeeming.\n const confirmOptions = [\"No\", \"Yes\"];\n const choice = await ctx.ui.select(\n `Redeem ${selected?.title ?? \"Full reset\"}${expiryOf(selected)}?`,\n confirmOptions,\n { timeout: REDEEM_DIALOG_TIMEOUT_MS },\n );\n if (choice !== confirmOptions[1]) {\n pendingRedeemByAccount.delete(resolved.accountId);\n ctx.ui.notify(\"Redeem cancelled — no reset credit was consumed.\", \"info\");\n return;\n }\n }\n\n // Reuse an in-flight redeem_request_id while it is still valid, so a\n // retry after a network failure cannot consume a second credit.\n const targetId = selected?.id;\n const existing = pendingRedeemByAccount.get(resolved.accountId);\n const pending = existing && existing.expiresAt > now && existing.creditId === targetId\n ? existing\n : {\n redeemRequestId: crypto.randomUUID(),\n creditId: targetId,\n expiresAt: now + REDEEM_CONFIRM_WINDOW_MS,\n };\n pendingRedeemByAccount.set(resolved.accountId, pending);\n\n if (!ctx.hasUI && (!existing || existing.expiresAt <= now || existing.creditId !== targetId)) {\n // No dialog UI: preview now and require a second run within the window.\n ctx.ui.notify(\n `${redeemCredits.availableCount} rate limit reset redeem available: ${credit?.title ?? \"Full reset\"}${expiryOf(credit)}. `\n + `Run /codex-redeem again within ${REDEEM_CONFIRM_WINDOW_MS / 1000}s to confirm.`,\n \"warning\",\n );\n return;\n }\n\n try {\n await resolved.client.post<unknown>(REDEEM_PATH, {\n redeem_request_id: pending.redeemRequestId,\n credit_id: pending.creditId,\n }, usageFetchSignal());\n pendingRedeemByAccount.delete(resolved.accountId);\n try {\n await refreshUsage(ctx, true);\n } catch {\n // The redeem succeeded; usage refresh is best-effort.\n }\n const status = formatCodexStatus(currentState()?.snapshots ?? [], config.fastMode);\n ctx.ui.notify(\n `✓ Rate limit reset redeemed — usage reset.${status ? `\\n${status}` : \"\"}`,\n \"info\",\n );\n } catch (error) {\n // Keep the redeem_request_id so a retry stays idempotent.\n pending.expiresAt = Date.now() + REDEEM_RETRY_WINDOW_MS;\n pendingRedeemByAccount.set(resolved.accountId, pending);\n const message = error instanceof Error ? error.message : String(error);\n ctx.ui.notify(\n `Failed to redeem a rate limit reset: ${message}. `\n + \"Run /codex-redeem again to retry with the same request ID.\",\n \"error\",\n );\n }\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n ctx.ui.notify(`Failed to redeem a rate limit reset: ${message}`, \"error\");\n }\n },\n };\n\n let commandsRegistered = false;\n const registerCodexCommands = (ctx?: ExtensionContext): void => {\n if (commandsRegistered) return;\n commandsRegistered = true;\n pi.registerCommand(\"codex-usage\", codexUsageCommand);\n pi.registerCommand(\"codex-redeem\", codexRedeemCommand);\n\n // Refresh interactive autocomplete when login happens after startup.\n ctx?.ui.addAutocompleteProvider?.((current) => current);\n };\n\n if (options.registerCommandsImmediately) registerCodexCommands();\n\n pi.on(\"before_provider_request\", (event, ctx) => {\n if (ctx.model?.provider !== \"openai-codex\") return;\n refreshInBackground(ctx);\n return applyFastModePayload(event.payload, controller.getConfig().fastMode);\n });\n\n pi.on(\"after_provider_response\", (event, ctx) => {\n if (ctx.model?.provider !== \"openai-codex\") return;\n const parsed = parseCodexRateLimits(event.headers);\n if (parsed.length > 0) {\n void storeHeaderSnapshots(ctx, parsed).catch(() => refreshInBackground(ctx));\n return;\n }\n refreshInBackground(ctx);\n });\n\n pi.on(\"model_select\", async (_event, ctx) => {\n startAccountObserver(ctx);\n await checkCurrentAccount(ctx, true).catch(() => {});\n startPolling(ctx);\n });\n pi.on(\"session_start\", async (_event, ctx) => {\n startAccountObserver(ctx);\n await checkCurrentAccount(ctx, true).catch(() => {});\n startPolling(ctx);\n });\n pi.on(\"session_shutdown\", (_event, ctx) => {\n stopPolling();\n credentialRevision += 1;\n activeAccountId = undefined;\n usageByAccount.clear();\n pendingRedeemByAccount.clear();\n latestContext = undefined;\n accountObserverActive = false;\n if (authWatchDebounce) clearTimeout(authWatchDebounce);\n authWatchDebounce = undefined;\n authWatcher?.close();\n authWatcher = undefined;\n accountCheck = undefined;\n setStatus(ctx, undefined);\n });\n\n return {\n getSnapshots: () => structuredClone(currentState()?.snapshots ?? []),\n refreshStatus,\n refreshUsage,\n };\n}\n",
13
13
  "import type { ExtensionAPI } from \"@earendil-works/pi-coding-agent\";\nimport {\n loadCodexApiConfig,\n saveCodexApiConfig,\n type CodexApiConfig,\n} from \"./config.ts\";\nimport { registerCodexImageTool } from \"./image.ts\";\nimport { registerCodexSearchTool } from \"./search.ts\";\nimport { registerCodexApiSettings } from \"./settings.ts\";\nimport {\n registerCodexUsageAndFast,\n usageRefreshNeeded,\n type CodexUsageHandle,\n} from \"./usage.ts\";\n\nexport default function (pi: ExtensionAPI) {\n let config = loadCodexApiConfig();\n let usageHandle: CodexUsageHandle | undefined;\n\n const controller = {\n getConfig: () => config,\n updateConfig: (next: CodexApiConfig, ctx: Parameters<CodexUsageHandle[\"refreshStatus\"]>[0]) => {\n const prev = config;\n config = next;\n try {\n saveCodexApiConfig(config);\n } catch (error) {\n ctx.ui.notify(\n `Failed to save Codex API settings: ${error instanceof Error ? error.message : String(error)}`,\n \"error\",\n );\n }\n usageHandle?.refreshStatus(ctx);\n // Toggling visibility or cross-provider access changes what the status\n // area may show; pull fresh data immediately instead of waiting for the\n // next request event (which may never come under other providers).\n if (usageRefreshNeeded(prev, next)) {\n void usageHandle?.refreshUsage(ctx, true).catch(() => {});\n }\n },\n };\n\n usageHandle = registerCodexUsageAndFast(pi, controller);\n const refreshUsageInBackground = (ctx: Parameters<CodexUsageHandle[\"refreshUsage\"]>[0]) => {\n void usageHandle?.refreshUsage(ctx).catch(() => {});\n };\n registerCodexImageTool(pi, () => config);\n registerCodexSearchTool(pi, () => config, refreshUsageInBackground);\n registerCodexApiSettings(pi, controller);\n}\n\nexport {\n CodexApiClient,\n CodexApiError,\n CodexOAuthError,\n createCodexApiClient,\n extractCodexAccountId,\n resolveCodexApiRoot,\n type CodexApiClientContextOptions,\n type CodexApiClientOptions,\n type CodexFetch,\n} from \"./client.ts\";\nexport {\n CODEX_API_SETTINGS_NAMESPACE,\n DEFAULT_CODEX_API_CONFIG,\n getCodexApiConfigPath,\n loadCodexApiConfig,\n normalizeCodexApiConfig,\n saveCodexApiConfig,\n type CodexApiConfig,\n type CodexImageQuality,\n type CodexSearchContextSize,\n type CodexSearchMode,\n} from \"./config.ts\";\nexport {\n normalizeCodexImageSize,\n registerCodexImageTool,\n type CodexImageDetails,\n} from \"./image.ts\";\nexport {\n cleanCodexSearchOutput,\n createCodexSearchDisplay,\n formatCodexSearchDisplay,\n type CodexSearchDisplay,\n type CodexSearchDocument,\n type CodexSearchDisplayLine,\n type CodexSearchDisplayLineRole,\n type CodexSearchLookup,\n type CodexSearchLookupSection,\n type CodexSearchLookupType,\n type CodexSearchSource,\n} from \"./search-display.ts\";\nexport {\n registerCodexSearchTool,\n resolveSearchMode,\n SearchCommandsSchema,\n type CodexEffectiveSearchMode,\n type CodexSearchDetails,\n} from \"./search.ts\";\nexport {\n CONTEXT_SIZE_LABELS,\n IMAGE_QUALITY_LABELS,\n registerCodexApiSettings,\n SEARCH_MODE_LABELS,\n} from \"./settings.ts\";\nexport {\n applyFastModePayload,\n formatCodexStatus,\n formatCodexUsage,\n formatCodexRedeemCredits,\n maskCodexEmail,\n parseCodexAccountInfo,\n parseCodexRateLimits,\n parseCodexRedeemCredits,\n parseCodexUsagePayload,\n registerCodexUsageAndFast,\n usageRefreshNeeded,\n type CodexAccountSnapshot,\n type CodexCreditsSnapshot,\n type CodexRateLimitSnapshot,\n type CodexRateLimitWindow,\n type CodexRedeemCredit,\n type CodexRedeemCreditsSnapshot,\n type CodexUsageExtras,\n type CodexUsageHandle,\n type CodexUsageOptions,\n} from \"./usage.ts\";\n"
14
14
  ],
15
- "mappings": "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",
16
- "debugId": "46CC70438A7FBD6864756E2164756E21",
15
+ "mappings": "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",
16
+ "debugId": "1114476AF3632AD464756E2164756E21",
17
17
  "names": []
18
18
  }
package/package.json CHANGED
@@ -1,22 +1,11 @@
1
1
  {
2
2
  "name": "@99percentpeople/pi-codex-api",
3
- "version": "0.2.7",
3
+ "version": "0.2.8",
4
4
  "description": "Expose Codex subscription image, search, Fast, and usage APIs as native Pi tools and commands",
5
5
  "type": "module",
6
- "files": [
7
- "dist",
8
- "skills",
9
- "README.md",
10
- "LICENSE"
11
- ],
12
- "scripts": {
13
- "build": "bun run ../../scripts/build-package.ts",
14
- "prepack": "bun run build",
15
- "prepublishOnly": "bun run --cwd ../.. check"
16
- },
17
6
  "pi": {
18
7
  "extensions": [
19
- "./dist/index.ts"
8
+ "./index.min.js"
20
9
  ],
21
10
  "skills": [
22
11
  "./skills"
@@ -47,13 +36,20 @@
47
36
  "registry": "https://registry.npmjs.org/"
48
37
  },
49
38
  "dependencies": {
50
- "@99percentpeople/pi-shared-settings": "0.1.2",
51
- "@99percentpeople/pi-workspace-files": "0.1.0"
39
+ "@99percentpeople/pi-shared-settings": "0.1.3",
40
+ "@99percentpeople/pi-workspace-files": "0.1.1"
52
41
  },
53
42
  "peerDependencies": {
54
43
  "@earendil-works/pi-ai": "*",
55
44
  "@earendil-works/pi-coding-agent": "*",
56
45
  "@earendil-works/pi-tui": "*",
57
46
  "typebox": "*"
58
- }
47
+ },
48
+ "files": [
49
+ "LICENSE",
50
+ "README.md",
51
+ "index.min.js",
52
+ "index.min.js.map",
53
+ "skills/gpt-image-prompts/SKILL.md"
54
+ ]
59
55
  }