oc-codex-multi-auth 6.1.3 → 6.1.6

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.
@@ -0,0 +1,368 @@
1
+ import { createHash } from "node:crypto";
2
+ import { extractAccountId } from "./accounts.js";
3
+ import { getFetchTimeoutMs, loadPluginConfig } from "./config.js";
4
+ import { CODEX_BASE_URL, PLUGIN_NAME } from "./constants.js";
5
+ import { createUsageRequestTimeoutError } from "./error-sentinels.js";
6
+ import { logWarn } from "./logger.js";
7
+ import { queuedRefresh } from "./refresh-queue.js";
8
+ import { createCodexHeaders } from "./request/fetch-helpers.js";
9
+ import { withAccountStorageTransaction, } from "./storage.js";
10
+ const usageErrorBodyMaxChars = 4096;
11
+ export function getUsageLeftPercent(usedPercent) {
12
+ return typeof usedPercent === "number" && Number.isFinite(usedPercent)
13
+ ? Math.max(0, Math.min(100, Math.round(100 - usedPercent)))
14
+ : undefined;
15
+ }
16
+ export function formatUsageWindowLabel(windowMinutes) {
17
+ if (!windowMinutes ||
18
+ !Number.isFinite(windowMinutes) ||
19
+ windowMinutes <= 0) {
20
+ return "quota";
21
+ }
22
+ if (windowMinutes % 1440 === 0)
23
+ return `${windowMinutes / 1440}d`;
24
+ if (windowMinutes % 60 === 0)
25
+ return `${windowMinutes / 60}h`;
26
+ return `${windowMinutes}m`;
27
+ }
28
+ export function formatUsageReset(resetAtMs) {
29
+ if (!resetAtMs || !Number.isFinite(resetAtMs) || resetAtMs <= 0) {
30
+ return undefined;
31
+ }
32
+ const date = new Date(resetAtMs);
33
+ if (!Number.isFinite(date.getTime()))
34
+ return undefined;
35
+ const now = new Date();
36
+ const sameDay = now.getFullYear() === date.getFullYear() &&
37
+ now.getMonth() === date.getMonth() &&
38
+ now.getDate() === date.getDate();
39
+ const time = date.toLocaleTimeString(undefined, {
40
+ hour: "2-digit",
41
+ minute: "2-digit",
42
+ hour12: false,
43
+ });
44
+ if (sameDay)
45
+ return time;
46
+ const day = date.toLocaleDateString(undefined, {
47
+ month: "short",
48
+ day: "2-digit",
49
+ });
50
+ return `${time} on ${day}`;
51
+ }
52
+ export function mapUsageWindow(window) {
53
+ if (!window)
54
+ return {};
55
+ return {
56
+ usedPercent: typeof window.used_percent === "number" &&
57
+ Number.isFinite(window.used_percent)
58
+ ? window.used_percent
59
+ : undefined,
60
+ windowMinutes: typeof window.limit_window_seconds === "number" &&
61
+ Number.isFinite(window.limit_window_seconds)
62
+ ? Math.max(1, Math.ceil(window.limit_window_seconds / 60))
63
+ : undefined,
64
+ resetAtMs: typeof window.reset_at === "number" && window.reset_at > 0
65
+ ? window.reset_at * 1000
66
+ : typeof window.reset_after_seconds === "number" &&
67
+ window.reset_after_seconds > 0
68
+ ? Date.now() + window.reset_after_seconds * 1000
69
+ : undefined,
70
+ };
71
+ }
72
+ export function formatUsageLimitTitle(windowMinutes, fallback = "quota") {
73
+ if (windowMinutes === 300)
74
+ return "5h limit";
75
+ if (windowMinutes === 10080)
76
+ return "Weekly limit";
77
+ if (fallback !== "quota")
78
+ return fallback;
79
+ return `${formatUsageWindowLabel(windowMinutes)} limit`;
80
+ }
81
+ export function formatUsageLimitSummary(window) {
82
+ const left = getUsageLeftPercent(window.usedPercent);
83
+ const reset = formatUsageReset(window.resetAtMs);
84
+ if (left !== undefined && reset)
85
+ return `${left}% left (resets ${reset})`;
86
+ if (left !== undefined)
87
+ return `${left}% left`;
88
+ if (reset)
89
+ return `resets ${reset}`;
90
+ return "unavailable";
91
+ }
92
+ export function toUsageLimitPayload(name, window) {
93
+ return {
94
+ name,
95
+ windowMinutes: window.windowMinutes ?? null,
96
+ usedPercent: typeof window.usedPercent === "number" ? window.usedPercent : null,
97
+ leftPercent: getUsageLeftPercent(window.usedPercent) ?? null,
98
+ resetAtMs: window.resetAtMs ?? null,
99
+ summary: formatUsageLimitSummary(window),
100
+ };
101
+ }
102
+ export function formatUsageCredits(credits) {
103
+ if (!credits)
104
+ return undefined;
105
+ if (credits.unlimited)
106
+ return "unlimited";
107
+ if (typeof credits.balance === "string" && credits.balance.trim()) {
108
+ return credits.balance.trim();
109
+ }
110
+ if (credits.has_credits)
111
+ return "available";
112
+ return undefined;
113
+ }
114
+ export function formatAdditionalUsageLimitName(name) {
115
+ if (!name)
116
+ return "Additional limit";
117
+ if (name === "code_review_rate_limit")
118
+ return "Code review";
119
+ return name
120
+ .replace(/[_-]+/g, " ")
121
+ .replace(/\b\w/g, (match) => match.toUpperCase());
122
+ }
123
+ export function hasUsageWindow(window) {
124
+ return Boolean(window.windowMinutes ||
125
+ typeof window.usedPercent === "number" ||
126
+ window.resetAtMs);
127
+ }
128
+ export function parseCodexUsagePayload(payload) {
129
+ const primary = mapUsageWindow(payload.rate_limit?.primary_window ?? null);
130
+ const secondary = mapUsageWindow(payload.rate_limit?.secondary_window ?? null);
131
+ const codeReviewRateLimit = payload.code_review_rate_limit ??
132
+ payload.additional_rate_limits?.find((entry) => entry.limit_name === "code_review_rate_limit")?.rate_limit ??
133
+ null;
134
+ const codeReview = mapUsageWindow(codeReviewRateLimit?.primary_window ?? null);
135
+ const credits = formatUsageCredits(payload.credits ?? null);
136
+ const additionalLimits = (payload.additional_rate_limits ?? [])
137
+ .filter((entry) => entry.limit_name !== "code_review_rate_limit")
138
+ .map((entry) => ({
139
+ name: formatAdditionalUsageLimitName(entry.limit_name ?? entry.metered_feature),
140
+ window: mapUsageWindow(entry.rate_limit?.primary_window ?? null),
141
+ }));
142
+ const limits = [
143
+ toUsageLimitPayload(formatUsageLimitTitle(primary.windowMinutes), primary),
144
+ toUsageLimitPayload(formatUsageLimitTitle(secondary.windowMinutes), secondary),
145
+ ];
146
+ if (hasUsageWindow(codeReview)) {
147
+ limits.push(toUsageLimitPayload("Code review", codeReview));
148
+ }
149
+ for (const limit of additionalLimits) {
150
+ limits.push(toUsageLimitPayload(limit.name, limit.window));
151
+ }
152
+ return {
153
+ planType: payload.plan_type ?? null,
154
+ credits: credits ?? null,
155
+ primary,
156
+ secondary,
157
+ codeReview,
158
+ additionalLimits,
159
+ limits,
160
+ };
161
+ }
162
+ function sanitizeUsageErrorMessage(status, bodyText) {
163
+ const normalized = bodyText.replace(/\s+/g, " ").trim();
164
+ const redacted = normalized
165
+ .replace(/Bearer\s+\S+/gi, "Bearer [redacted]")
166
+ .replace(/eyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+/g, "[redacted-token]")
167
+ .replace(/\bsk-[A-Za-z0-9][A-Za-z0-9._:-]{19,}\b/gi, "[redacted-token]")
168
+ .replace(/\b[a-f0-9]{40,}\b/gi, "[redacted-token]");
169
+ return redacted ? `HTTP ${status}: ${redacted.slice(0, 200)}` : `HTTP ${status}`;
170
+ }
171
+ function isAbortError(error) {
172
+ return ((error instanceof Error && error.name === "AbortError") ||
173
+ (typeof DOMException !== "undefined" &&
174
+ error instanceof DOMException &&
175
+ error.name === "AbortError"));
176
+ }
177
+ export async function fetchCodexUsage(params) {
178
+ const headers = createCodexHeaders(undefined, params.accountId, params.accessToken, {
179
+ organizationId: params.organizationId,
180
+ });
181
+ headers.set("accept", "application/json");
182
+ const controller = new AbortController();
183
+ const timeout = setTimeout(() => controller.abort(), params.timeoutMs ?? getFetchTimeoutMs(loadPluginConfig()));
184
+ try {
185
+ const response = await fetch(`${CODEX_BASE_URL}/wham/usage`, {
186
+ method: "GET",
187
+ headers,
188
+ signal: controller.signal,
189
+ });
190
+ if (!response.ok) {
191
+ let bodyText = "";
192
+ try {
193
+ bodyText = (await response.text()).slice(0, usageErrorBodyMaxChars);
194
+ }
195
+ catch (error) {
196
+ if (isAbortError(error) || controller.signal.aborted) {
197
+ throw createUsageRequestTimeoutError();
198
+ }
199
+ throw error;
200
+ }
201
+ if (controller.signal.aborted) {
202
+ throw createUsageRequestTimeoutError();
203
+ }
204
+ throw new Error(sanitizeUsageErrorMessage(response.status, bodyText));
205
+ }
206
+ return (await response.json());
207
+ }
208
+ catch (error) {
209
+ if (isAbortError(error)) {
210
+ throw createUsageRequestTimeoutError();
211
+ }
212
+ throw error;
213
+ }
214
+ finally {
215
+ clearTimeout(timeout);
216
+ }
217
+ }
218
+ function applyRefreshedCredentials(target, result) {
219
+ target.refreshToken = result.refresh;
220
+ target.accessToken = result.access;
221
+ target.expiresAt = result.expires;
222
+ }
223
+ async function persistRefreshedCredentials(params) {
224
+ return await withAccountStorageTransaction(async (current, persist) => {
225
+ const latestStorage = current ??
226
+ {
227
+ version: 3,
228
+ accounts: [],
229
+ activeIndex: 0,
230
+ activeIndexByFamily: {},
231
+ };
232
+ const uniqueMatch = (matches) => matches.length === 1 ? matches[0] : undefined;
233
+ let updated = false;
234
+ if (params.previousRefreshToken) {
235
+ for (const storedAccount of latestStorage.accounts) {
236
+ if (storedAccount.refreshToken === params.previousRefreshToken) {
237
+ applyRefreshedCredentials(storedAccount, params.refreshResult);
238
+ updated = true;
239
+ }
240
+ }
241
+ }
242
+ if (!updated) {
243
+ const normalizedOrganizationId = params.organizationId?.trim() ?? "";
244
+ const normalizedEmail = params.email?.trim().toLowerCase();
245
+ const orgScopedMatches = params.accountId
246
+ ? latestStorage.accounts.filter((storedAccount) => storedAccount.accountId === params.accountId &&
247
+ (storedAccount.organizationId?.trim() ?? "") ===
248
+ normalizedOrganizationId)
249
+ : [];
250
+ const accountIdMatches = params.accountId
251
+ ? latestStorage.accounts.filter((storedAccount) => storedAccount.accountId === params.accountId)
252
+ : [];
253
+ const emailMatches = normalizedEmail && !params.accountId
254
+ ? latestStorage.accounts.filter((storedAccount) => storedAccount.email?.trim().toLowerCase() === normalizedEmail)
255
+ : [];
256
+ const fallbackTarget = uniqueMatch(orgScopedMatches) ??
257
+ uniqueMatch(accountIdMatches) ??
258
+ uniqueMatch(emailMatches);
259
+ if (fallbackTarget) {
260
+ applyRefreshedCredentials(fallbackTarget, params.refreshResult);
261
+ updated = true;
262
+ }
263
+ }
264
+ if (updated) {
265
+ await persist(latestStorage);
266
+ }
267
+ if (!updated) {
268
+ logWarn(`[${PLUGIN_NAME}] persistRefreshedCredentials could not find a matching stored account. Refreshed credentials remain in-memory for this invocation only.`, {
269
+ accountId: params.accountId,
270
+ organizationId: params.organizationId,
271
+ });
272
+ }
273
+ return updated;
274
+ });
275
+ }
276
+ export async function ensureCodexUsageAccessToken(params) {
277
+ let accessToken = params.account.accessToken;
278
+ if (typeof accessToken === "string" &&
279
+ accessToken &&
280
+ typeof params.account.expiresAt === "number" &&
281
+ params.account.expiresAt > Date.now() + 30_000) {
282
+ return { accessToken, refreshed: false, persisted: false };
283
+ }
284
+ const previousRefreshToken = params.account.refreshToken;
285
+ if (!previousRefreshToken) {
286
+ throw new Error("Cannot refresh: account has no refresh token");
287
+ }
288
+ const refreshResult = await queuedRefresh(previousRefreshToken);
289
+ if (refreshResult.type !== "success") {
290
+ throw new Error(refreshResult.message ?? refreshResult.reason);
291
+ }
292
+ let refreshedCount = 0;
293
+ for (const storedAccount of params.storage.accounts) {
294
+ if (storedAccount.refreshToken === previousRefreshToken) {
295
+ applyRefreshedCredentials(storedAccount, refreshResult);
296
+ refreshedCount += 1;
297
+ }
298
+ }
299
+ if (refreshedCount === 0) {
300
+ applyRefreshedCredentials(params.account, refreshResult);
301
+ }
302
+ const persisted = await persistRefreshedCredentials({
303
+ previousRefreshToken,
304
+ accountId: params.account.accountId,
305
+ organizationId: params.account.organizationId,
306
+ email: params.account.email,
307
+ refreshResult,
308
+ });
309
+ accessToken = refreshResult.access;
310
+ return { accessToken, refreshed: true, persisted };
311
+ }
312
+ export function deduplicateUsageAccountIndices(storage) {
313
+ const seenTokens = new Set();
314
+ const uniqueIndices = [];
315
+ for (let i = 0; i < storage.accounts.length; i += 1) {
316
+ const account = storage.accounts[i];
317
+ if (!account)
318
+ continue;
319
+ const refreshToken = typeof account.refreshToken === "string"
320
+ ? account.refreshToken.trim()
321
+ : "";
322
+ if (refreshToken && seenTokens.has(refreshToken))
323
+ continue;
324
+ if (refreshToken)
325
+ seenTokens.add(refreshToken);
326
+ uniqueIndices.push(i);
327
+ }
328
+ return uniqueIndices;
329
+ }
330
+ export function resolveCodexUsageActiveAccount(storage) {
331
+ if (storage.accounts.length === 0)
332
+ return null;
333
+ const rawIndex = storage.activeIndexByFamily?.codex ?? storage.activeIndex;
334
+ const numericIndex = typeof rawIndex === "number" && Number.isFinite(rawIndex) ? rawIndex : 0;
335
+ const index = Math.max(0, Math.min(storage.accounts.length - 1, Math.trunc(numericIndex)));
336
+ const activeAccount = storage.accounts[index];
337
+ if (!activeAccount)
338
+ return null;
339
+ const activeLastUsed = typeof activeAccount.lastUsed === "number" && Number.isFinite(activeAccount.lastUsed)
340
+ ? activeAccount.lastUsed
341
+ : 0;
342
+ let newestIndex = index;
343
+ let newestLastUsed = activeLastUsed;
344
+ for (let i = 0; i < storage.accounts.length; i += 1) {
345
+ const account = storage.accounts[i];
346
+ const lastUsed = typeof account?.lastUsed === "number" && Number.isFinite(account.lastUsed)
347
+ ? account.lastUsed
348
+ : 0;
349
+ if (account && lastUsed > newestLastUsed) {
350
+ newestIndex = i;
351
+ newestLastUsed = lastUsed;
352
+ }
353
+ }
354
+ const account = storage.accounts[newestIndex];
355
+ return account ? { index: newestIndex, account } : null;
356
+ }
357
+ export function resolveCodexUsageAccountId(params) {
358
+ return params.account.accountId ?? extractAccountId(params.accessToken);
359
+ }
360
+ export function createUsageAccountFingerprint(account) {
361
+ const fingerprintSource = [
362
+ account.accountId ?? "",
363
+ account.organizationId ?? "",
364
+ account.refreshToken ?? "",
365
+ ].join("\0");
366
+ return createHash("sha256").update(fingerprintSource).digest("hex").slice(0, 16);
367
+ }
368
+ //# sourceMappingURL=codex-usage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-usage.js","sourceRoot":"","sources":["../../lib/codex-usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EACN,6BAA6B,GAG7B,MAAM,cAAc,CAAC;AAyEtB,MAAM,sBAAsB,GAAG,IAAI,CAAC;AAEpC,MAAM,UAAU,mBAAmB,CAClC,WAA+B;IAE/B,OAAO,OAAO,WAAW,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC;QACrE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC;QAC3D,CAAC,CAAC,SAAS,CAAC;AACd,CAAC;AAED,MAAM,UAAU,sBAAsB,CACrC,aAAiC;IAEjC,IACC,CAAC,aAAa;QACd,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC/B,aAAa,IAAI,CAAC,EACjB,CAAC;QACF,OAAO,OAAO,CAAC;IAChB,CAAC;IACD,IAAI,aAAa,GAAG,IAAI,KAAK,CAAC;QAAE,OAAO,GAAG,aAAa,GAAG,IAAI,GAAG,CAAC;IAClE,IAAI,aAAa,GAAG,EAAE,KAAK,CAAC;QAAE,OAAO,GAAG,aAAa,GAAG,EAAE,GAAG,CAAC;IAC9D,OAAO,GAAG,aAAa,GAAG,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC/B,SAA6B;IAE7B,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACjE,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;IACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAAE,OAAO,SAAS,CAAC;IAEvD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,OAAO,GACZ,GAAG,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE;QACxC,GAAG,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,QAAQ,EAAE;QAClC,GAAG,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;IAClC,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE;QAC/C,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE,KAAK;KACb,CAAC,CAAC;IACH,IAAI,OAAO;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE;QAC9C,KAAK,EAAE,OAAO;QACd,GAAG,EAAE,SAAS;KACd,CAAC,CAAC;IACH,OAAO,GAAG,IAAI,OAAO,GAAG,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAmB;IACjD,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,OAAO;QACN,WAAW,EACV,OAAO,MAAM,CAAC,YAAY,KAAK,QAAQ;YACvC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC;YACnC,CAAC,CAAC,MAAM,CAAC,YAAY;YACrB,CAAC,CAAC,SAAS;QACb,aAAa,EACZ,OAAO,MAAM,CAAC,oBAAoB,KAAK,QAAQ;YAC/C,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,oBAAoB,CAAC;YAC3C,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB,GAAG,EAAE,CAAC,CAAC;YAC1D,CAAC,CAAC,SAAS;QACb,SAAS,EACR,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,GAAG,CAAC;YACzD,CAAC,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI;YACxB,CAAC,CAAC,OAAO,MAAM,CAAC,mBAAmB,KAAK,QAAQ;gBAC9C,MAAM,CAAC,mBAAmB,GAAG,CAAC;gBAC/B,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,mBAAmB,GAAG,IAAI;gBAChD,CAAC,CAAC,SAAS;KACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CACpC,aAAiC,EACjC,QAAQ,GAAG,OAAO;IAElB,IAAI,aAAa,KAAK,GAAG;QAAE,OAAO,UAAU,CAAC;IAC7C,IAAI,aAAa,KAAK,KAAK;QAAE,OAAO,cAAc,CAAC;IACnD,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,QAAQ,CAAC;IAC1C,OAAO,GAAG,sBAAsB,CAAC,aAAa,CAAC,QAAQ,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,MAAmB;IAC1D,MAAM,IAAI,GAAG,mBAAmB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACjD,IAAI,IAAI,KAAK,SAAS,IAAI,KAAK;QAAE,OAAO,GAAG,IAAI,kBAAkB,KAAK,GAAG,CAAC;IAC1E,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,GAAG,IAAI,QAAQ,CAAC;IAC/C,IAAI,KAAK;QAAE,OAAO,UAAU,KAAK,EAAE,CAAC;IACpC,OAAO,aAAa,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAClC,IAAY,EACZ,MAAmB;IAEnB,OAAO;QACN,IAAI;QACJ,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,IAAI;QAC3C,WAAW,EACV,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI;QACnE,WAAW,EAAE,mBAAmB,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,IAAI;QAC5D,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI;QACnC,OAAO,EAAE,uBAAuB,CAAC,MAAM,CAAC;KACxC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CACjC,OAAqB;IAErB,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,IAAI,OAAO,CAAC,SAAS;QAAE,OAAO,WAAW,CAAC;IAC1C,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QACnE,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IACD,IAAI,OAAO,CAAC,WAAW;QAAE,OAAO,WAAW,CAAC;IAC5C,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC7C,IAAwB;IAExB,IAAI,CAAC,IAAI;QAAE,OAAO,kBAAkB,CAAC;IACrC,IAAI,IAAI,KAAK,wBAAwB;QAAE,OAAO,aAAa,CAAC;IAC5D,OAAO,IAAI;SACT,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAmB;IACjD,OAAO,OAAO,CACb,MAAM,CAAC,aAAa;QACnB,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ;QACtC,MAAM,CAAC,SAAS,CACjB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,sBAAsB,CACrC,OAAqB;IAErB,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,UAAU,EAAE,cAAc,IAAI,IAAI,CAAC,CAAC;IAC3E,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,UAAU,EAAE,gBAAgB,IAAI,IAAI,CAAC,CAAC;IAC/E,MAAM,mBAAmB,GACxB,OAAO,CAAC,sBAAsB;QAC9B,OAAO,CAAC,sBAAsB,EAAE,IAAI,CACnC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,KAAK,wBAAwB,CACxD,EAAE,UAAU;QACb,IAAI,CAAC;IACN,MAAM,UAAU,GAAG,cAAc,CAAC,mBAAmB,EAAE,cAAc,IAAI,IAAI,CAAC,CAAC;IAC/E,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC;IAC5D,MAAM,gBAAgB,GAAG,CAAC,OAAO,CAAC,sBAAsB,IAAI,EAAE,CAAC;SAC7D,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,KAAK,wBAAwB,CAAC;SAChE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAChB,IAAI,EAAE,8BAA8B,CACnC,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,eAAe,CACzC;QACD,MAAM,EAAE,cAAc,CAAC,KAAK,CAAC,UAAU,EAAE,cAAc,IAAI,IAAI,CAAC;KAChE,CAAC,CAAC,CAAC;IACL,MAAM,MAAM,GAAG;QACd,mBAAmB,CAAC,qBAAqB,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;QAC1E,mBAAmB,CAAC,qBAAqB,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC;KAC9E,CAAC;IACF,IAAI,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC;IAC7D,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,gBAAgB,EAAE,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO;QACN,QAAQ,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;QACnC,OAAO,EAAE,OAAO,IAAI,IAAI;QACxB,OAAO;QACP,SAAS;QACT,UAAU;QACV,gBAAgB;QAChB,MAAM;KACN,CAAC;AACH,CAAC;AAED,SAAS,yBAAyB,CAAC,MAAc,EAAE,QAAgB;IAClE,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACxD,MAAM,QAAQ,GAAG,UAAU;SACzB,OAAO,CAAC,gBAAgB,EAAE,mBAAmB,CAAC;SAC9C,OAAO,CACP,oDAAoD,EACpD,kBAAkB,CAClB;SACA,OAAO,CAAC,0CAA0C,EAAE,kBAAkB,CAAC;SACvE,OAAO,CAAC,qBAAqB,EAAE,kBAAkB,CAAC,CAAC;IACrD,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,MAAM,KAAK,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,MAAM,EAAE,CAAC;AAClF,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IACnC,OAAO,CACN,CAAC,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC;QACvD,CAAC,OAAO,YAAY,KAAK,WAAW;YACnC,KAAK,YAAY,YAAY;YAC7B,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,CAC7B,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAKrC;IACA,MAAM,OAAO,GAAG,kBAAkB,CACjC,SAAS,EACT,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,WAAW,EAClB;QACC,cAAc,EAAE,MAAM,CAAC,cAAc;KACrC,CACD,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG,UAAU,CACzB,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EACxB,MAAM,CAAC,SAAS,IAAI,iBAAiB,CAAC,gBAAgB,EAAE,CAAC,CACzD,CAAC;IAEF,IAAI,CAAC;QACJ,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,cAAc,aAAa,EAAE;YAC5D,MAAM,EAAE,KAAK;YACb,OAAO;YACP,MAAM,EAAE,UAAU,CAAC,MAAM;SACzB,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YAClB,IAAI,QAAQ,GAAG,EAAE,CAAC;YAClB,IAAI,CAAC;gBACJ,QAAQ,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC;YACrE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,IAAI,YAAY,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACtD,MAAM,8BAA8B,EAAE,CAAC;gBACxC,CAAC;gBACD,MAAM,KAAK,CAAC;YACb,CAAC;YACD,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC/B,MAAM,8BAA8B,EAAE,CAAC;YACxC,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;QACvE,CAAC;QACD,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAiB,CAAC;IAChD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,8BAA8B,EAAE,CAAC;QACxC,CAAC;QACD,MAAM,KAAK,CAAC;IACb,CAAC;YAAS,CAAC;QACV,YAAY,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;AACF,CAAC;AAED,SAAS,yBAAyB,CACjC,MAIC,EACD,MAIC;IAED,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC;IACrC,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;IACnC,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC;AACnC,CAAC;AAED,KAAK,UAAU,2BAA2B,CAAC,MAU1C;IACA,OAAO,MAAM,6BAA6B,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;QACrE,MAAM,aAAa,GAClB,OAAO;YACN;gBACA,OAAO,EAAE,CAAC;gBACV,QAAQ,EAAE,EAAE;gBACZ,WAAW,EAAE,CAAC;gBACd,mBAAmB,EAAE,EAAE;aACK,CAAC;QAE/B,MAAM,WAAW,GAAG,CAAQ,OAAgB,EAAqB,EAAE,CAClE,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAE/C,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,MAAM,CAAC,oBAAoB,EAAE,CAAC;YACjC,KAAK,MAAM,aAAa,IAAI,aAAa,CAAC,QAAQ,EAAE,CAAC;gBACpD,IAAI,aAAa,CAAC,YAAY,KAAK,MAAM,CAAC,oBAAoB,EAAE,CAAC;oBAChE,yBAAyB,CAAC,aAAa,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;oBAC/D,OAAO,GAAG,IAAI,CAAC;gBAChB,CAAC;YACF,CAAC;QACF,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,MAAM,wBAAwB,GAAG,MAAM,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YACrE,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC3D,MAAM,gBAAgB,GAAG,MAAM,CAAC,SAAS;gBACxC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAC7B,CAAC,aAAa,EAAE,EAAE,CACjB,aAAa,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS;oBAC5C,CAAC,aAAa,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;wBAC3C,wBAAwB,CAC1B;gBACF,CAAC,CAAC,EAAE,CAAC;YACN,MAAM,gBAAgB,GAAG,MAAM,CAAC,SAAS;gBACxC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAC7B,CAAC,aAAa,EAAE,EAAE,CAAC,aAAa,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS,CAC/D;gBACF,CAAC,CAAC,EAAE,CAAC;YACN,MAAM,YAAY,GACjB,eAAe,IAAI,CAAC,MAAM,CAAC,SAAS;gBACnC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAC7B,CAAC,aAAa,EAAE,EAAE,CACjB,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,eAAe,CAC9D;gBACF,CAAC,CAAC,EAAE,CAAC;YAEP,MAAM,cAAc,GACnB,WAAW,CAAC,gBAAgB,CAAC;gBAC7B,WAAW,CAAC,gBAAgB,CAAC;gBAC7B,WAAW,CAAC,YAAY,CAAC,CAAC;YAE3B,IAAI,cAAc,EAAE,CAAC;gBACpB,yBAAyB,CAAC,cAAc,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;gBAChE,OAAO,GAAG,IAAI,CAAC;YAChB,CAAC;QACF,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACb,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;QAC9B,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,OAAO,CACN,IAAI,WAAW,0IAA0I,EACzJ;gBACC,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,cAAc,EAAE,MAAM,CAAC,cAAc;aACrC,CACD,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IAChB,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,MAGjD;IACA,IAAI,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;IAC7C,IACC,OAAO,WAAW,KAAK,QAAQ;QAC/B,WAAW;QACX,OAAO,MAAM,CAAC,OAAO,CAAC,SAAS,KAAK,QAAQ;QAC5C,MAAM,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,EAC7C,CAAC;QACF,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAC5D,CAAC;IAED,MAAM,oBAAoB,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;IACzD,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACjE,CAAC;IACD,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,oBAAoB,CAAC,CAAC;IAChE,IAAI,aAAa,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;IAChE,CAAC;IAED,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,KAAK,MAAM,aAAa,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrD,IAAI,aAAa,CAAC,YAAY,KAAK,oBAAoB,EAAE,CAAC;YACzD,yBAAyB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;YACxD,cAAc,IAAI,CAAC,CAAC;QACrB,CAAC;IACF,CAAC;IACD,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;QAC1B,yBAAyB,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,2BAA2B,CAAC;QACnD,oBAAoB;QACpB,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS;QACnC,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,cAAc;QAC7C,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK;QAC3B,aAAa;KACb,CAAC,CAAC;IAEH,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC;IACnC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,OAAyB;IACvE,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACrD,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,OAAO;YAAE,SAAS;QACvB,MAAM,YAAY,GACjB,OAAO,OAAO,CAAC,YAAY,KAAK,QAAQ;YACvC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE;YAC7B,CAAC,CAAC,EAAE,CAAC;QACP,IAAI,YAAY,IAAI,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC;YAAE,SAAS;QAC3D,IAAI,YAAY;YAAE,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC/C,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,aAAa,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC7C,OAAyB;IAEzB,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/C,MAAM,QAAQ,GAAG,OAAO,CAAC,mBAAmB,EAAE,KAAK,IAAI,OAAO,CAAC,WAAW,CAAC;IAC3E,MAAM,YAAY,GACjB,OAAO,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CACrB,CAAC,EACD,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAC/D,CAAC;IACF,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,IAAI,CAAC,aAAa;QAAE,OAAO,IAAI,CAAC;IAEhC,MAAM,cAAc,GACnB,OAAO,aAAa,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;QACpF,CAAC,CAAC,aAAa,CAAC,QAAQ;QACxB,CAAC,CAAC,CAAC,CAAC;IACN,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,cAAc,GAAG,cAAc,CAAC;IACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACrD,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,QAAQ,GACb,OAAO,OAAO,EAAE,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC;YACzE,CAAC,CAAC,OAAO,CAAC,QAAQ;YAClB,CAAC,CAAC,CAAC,CAAC;QACN,IAAI,OAAO,IAAI,QAAQ,GAAG,cAAc,EAAE,CAAC;YAC1C,WAAW,GAAG,CAAC,CAAC;YAChB,cAAc,GAAG,QAAQ,CAAC;QAC3B,CAAC;IACF,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC9C,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,MAG1C;IACA,OAAO,MAAM,CAAC,OAAO,CAAC,SAAS,IAAI,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC5C,OAA0B;IAE1B,MAAM,iBAAiB,GAAG;QACzB,OAAO,CAAC,SAAS,IAAI,EAAE;QACvB,OAAO,CAAC,cAAc,IAAI,EAAE;QAC5B,OAAO,CAAC,YAAY,IAAI,EAAE;KAC1B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAClF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"codex-limits.d.ts","sourceRoot":"","sources":["../../../lib/tools/codex-limits.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAoBrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,WAAW,GAAG,cAAc,CAwrBtE"}
1
+ {"version":3,"file":"codex-limits.d.ts","sourceRoot":"","sources":["../../../lib/tools/codex-limits.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAqBrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,WAAW,GAAG,cAAc,CA4OtE"}