@openlimiter/connectors 2.0.3 → 2.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/codex.js CHANGED
@@ -1,75 +1,136 @@
1
1
  import { boundedNumber, connectorConnection, futureInstantFromEpochSeconds, instantAfter, plausibleResetHorizon, rawMeter, record, shortExpiry, windowSeconds } from "./shared.js";
2
- /**
3
- * The Codex usage reader.
4
- *
5
- * The shape below is the one a working reader observed against a real account
6
- * on 2026-08-07, recorded in `Product Idea/reference-implementation`. OpenAI
7
- * publishes nothing about it, so it is DESIGN evidence and not verification
8
- * evidence: it tells us what to parse, and it does not turn an internal
9
- * endpoint into an official API. The labels below stay as they are, and the
10
- * provider stays UNVERIFIED, until a sanitized capture lands in the fixture
11
- * slot and even then the interface is still internal.
12
- *
13
- * The reader used to parse `rate_limits` with an s, a shape carried over from
14
- * an early prototype and never seen on the wire. The real field is
15
- * `rate_limit`, singular. That one letter is the whole reason the drift
16
- * machinery exists: both shapes are well formed JSON, both would have arrived
17
- * with a 200, and the wrong one produces no reading at all rather than a wrong
18
- * one only because this parser refuses whatever it was not told to expect.
19
- */
20
2
  export const codexLabels = {
21
3
  credentialOrigin: "official-local-tool",
22
- dataInterfaceStatus: "internal-endpoint",
23
- automationRisk: "high",
24
- verification: "UNVERIFIED"
4
+ dataInterfaceStatus: "documented-api",
5
+ automationRisk: "low",
6
+ verification: "VERIFIED_FIXTURES"
25
7
  };
26
8
  export const codexInput = {
27
- kind: "provider_managed_payload",
28
- pathTemplate: "{providerState}/usage.json",
9
+ kind: "local_command",
10
+ command: "codex app-server",
29
11
  readMode: "read_only"
30
12
  };
31
- /** What this reader reads. JSON, because the endpoint answers JSON. */
13
+ /** What this reader reads. JSON, because the app server answers JSONL messages. */
32
14
  export const codexEncoding = "json";
33
- /**
34
- * The observed response, reduced to what may be believed.
35
- *
36
- * `used_percent` is a percentage and `reset_at` is Unix epoch SECONDS. The
37
- * encoding was not guessed: the reference reader passes `reset_at` through
38
- * untouched into a cache whose consumers format it with an epoch formatter,
39
- * while it explicitly converts the other two providers' RFC3339 stamps first.
40
- *
41
- * `limit_window_seconds` is the window's own length, stated by the provider. It
42
- * is optional, because the reference treats it as optional, and its absence
43
- * costs only the plausibility bound: a window whose length is unknown cannot be
44
- * called rolling, so it is reported as an unknown window rather than as a five
45
- * hour one this build made up.
46
- *
47
- * Every window carried in the rate limit object is parsed into its own meter,
48
- * identified by its own `limit_window_seconds`. Plans may carry a weekly
49
- * primary window, a secondary window, or model-specific buckets, and ignoring
50
- * any window would present a partial picture of the user's quota.
51
- */
52
- /**
53
- * The meter id for a window, from its length rather than its name.
54
- *
55
- * The two lengths that have names here are the two a reader elsewhere already
56
- * uses, so a five hour Codex window and a five hour Claude window are called the
57
- * same thing and the dashboard can group them. Anything else keeps its own key,
58
- * uppercased, which is enough to keep two windows apart without inventing a
59
- * vocabulary for buckets we have not seen yet.
60
- */
61
- /**
62
- * A reset stated as a countdown rather than as an instant.
63
- *
64
- * Some responses carry `reset_after_seconds` where others carry `reset_at`, and
65
- * a reader that knows only the second reports no countdown at all against the
66
- * first. The countdown is turned into an instant against the supplied clock and
67
- * held to the same plausibility bound the instant form is held to, so a window
68
- * cannot claim to reset years after the window it belongs to has ended.
69
- *
70
- * Zero and negative are refused rather than read as now: a window that reset in
71
- * the past says nothing about the window running now.
72
- */
15
+ const legacyCodexLabels = {
16
+ credentialOrigin: "official-local-tool",
17
+ dataInterfaceStatus: "internal-endpoint",
18
+ automationRisk: "high",
19
+ verification: "UNVERIFIED"
20
+ };
21
+ function meterIdForMinutes(minutes, slot) {
22
+ if (minutes === null)
23
+ return slot.toUpperCase();
24
+ if (minutes === 300)
25
+ return "FIVE_HOUR";
26
+ if (minutes === 10_080)
27
+ return "SEVEN_DAY";
28
+ return slot.toUpperCase();
29
+ }
30
+ function readableLimitId(value) {
31
+ const readable = value
32
+ .trim()
33
+ .replace(/([a-z0-9])([A-Z])/gu, "$1_$2")
34
+ .replace(/[^A-Za-z0-9]+/gu, "_")
35
+ .replace(/^_+|_+$/gu, "")
36
+ .toUpperCase();
37
+ return readable.length > 0 ? readable : null;
38
+ }
39
+ function prefixedMeter(limitId, duration) {
40
+ if (limitId === "CODEX")
41
+ return duration;
42
+ const prefixLength = Math.max(1, 31 - duration.length);
43
+ return `${limitId.slice(0, prefixLength).replace(/_+$/u, "")}_${duration}`;
44
+ }
45
+ function suffixedMeter(meter, slot) {
46
+ const suffix = `_${slot.toUpperCase()}`;
47
+ return `${meter.slice(0, 32 - suffix.length).replace(/_+$/u, "")}${suffix}`;
48
+ }
49
+ function decimal(value) {
50
+ if (typeof value !== "string" || !/^(?:0|[1-9]\d*)(?:\.\d+)?$/u.test(value))
51
+ return null;
52
+ const parsed = Number(value);
53
+ return Number.isFinite(parsed) ? parsed : null;
54
+ }
55
+ function windowsFrom(snapshot, limitId, now, expiresAt) {
56
+ const windows = ["primary", "secondary"];
57
+ const parsed = [];
58
+ for (const slot of windows) {
59
+ const window = record(snapshot[slot]);
60
+ if (window === null)
61
+ continue;
62
+ const percent = boundedNumber(window["usedPercent"]);
63
+ const minutes = window["windowDurationMins"];
64
+ if (percent === null)
65
+ continue;
66
+ if (minutes !== null && (typeof minutes !== "number" ||
67
+ !Number.isSafeInteger(minutes) ||
68
+ minutes <= 0 ||
69
+ minutes > 525_600))
70
+ continue;
71
+ const resetValue = window["resetsAt"];
72
+ const resetAt = resetValue === undefined || resetValue === null
73
+ ? null
74
+ : futureInstantFromEpochSeconds(resetValue, now);
75
+ if (resetValue !== undefined && resetValue !== null && resetAt === null)
76
+ continue;
77
+ const durationMeter = meterIdForMinutes(minutes, slot);
78
+ parsed.push({
79
+ slot,
80
+ meter: rawMeter({
81
+ provider: "CODEX",
82
+ meter: prefixedMeter(limitId, durationMeter),
83
+ value: percent,
84
+ window: minutes === null
85
+ ? { kind: "unknown" }
86
+ : { kind: "rolling", durationSeconds: minutes * 60 },
87
+ resetAt,
88
+ source: "documented_api",
89
+ precision: "exact",
90
+ observedAt: now,
91
+ expiresAt,
92
+ labels: codexLabels
93
+ })
94
+ });
95
+ }
96
+ const counts = new Map();
97
+ for (const { meter } of parsed) {
98
+ const meterId = meter.meter;
99
+ counts.set(meterId, (counts.get(meterId) ?? 0) + 1);
100
+ }
101
+ return parsed.map(({ slot, meter }) => (counts.get(meter.meter) ?? 0) > 1
102
+ ? { ...meter, meter: suffixedMeter(meter.meter, slot) }
103
+ : meter);
104
+ }
105
+ function monthlyCreditLimit(value, now, expiresAt) {
106
+ const limit = record(value);
107
+ if (limit === null)
108
+ return null;
109
+ const ceiling = typeof limit["limit"] === "string"
110
+ ? decimal(limit["limit"])
111
+ : boundedNumber(limit["limit"], 1_000_000_000_000);
112
+ const used = typeof limit["used"] === "string"
113
+ ? decimal(limit["used"])
114
+ : boundedNumber(limit["used"], 1_000_000_000_000);
115
+ const remaining = boundedNumber(limit["remainingPercent"]);
116
+ const resetAt = futureInstantFromEpochSeconds(limit["resetsAt"], now);
117
+ if (ceiling === null || ceiling <= 0 ||
118
+ used === null || used > ceiling ||
119
+ remaining === null || resetAt === null)
120
+ return null;
121
+ return rawMeter({
122
+ provider: "CODEX",
123
+ meter: "MONTHLY_CREDIT_LIMIT",
124
+ value: Math.round((100 - remaining) * 1_000_000_000_000) / 1_000_000_000_000,
125
+ window: { kind: "fixed" },
126
+ resetAt,
127
+ source: "documented_api",
128
+ precision: "exact",
129
+ observedAt: now,
130
+ expiresAt,
131
+ labels: codexLabels,
132
+ });
133
+ }
73
134
  function resetFromCountdown(value, now, lengthSeconds) {
74
135
  if (typeof value !== "number" || !Number.isFinite(value) || value <= 0)
75
136
  return null;
@@ -85,7 +146,7 @@ function meterIdFor(lengthSeconds, windowKey) {
85
146
  return "SEVEN_DAY";
86
147
  return windowKey.replace(/_window$/, "").toUpperCase();
87
148
  }
88
- export function parseCodexPayload(payload, now) {
149
+ function parseLegacyCodexPayload(payload, now) {
89
150
  const root = record(payload);
90
151
  const limits = record(root?.["rate_limit"]);
91
152
  const expiresAt = shortExpiry(now);
@@ -147,14 +208,13 @@ export function parseCodexPayload(payload, now) {
147
208
  precision: "estimated",
148
209
  observedAt: now,
149
210
  expiresAt,
150
- labels: codexLabels
211
+ labels: legacyCodexLabels
151
212
  }));
152
213
  }
153
214
  if (record(root["credits"])?.["unlimited"] === true) {
154
215
  meters.push({
155
216
  provider: "CODEX",
156
217
  meter: "CREDITS",
157
- kind: "availability",
158
218
  availability: "unlimited",
159
219
  // Required legacy transport fields; availability carries no percentage.
160
220
  value: 0,
@@ -165,9 +225,89 @@ export function parseCodexPayload(payload, now) {
165
225
  precision: "exact",
166
226
  observedAt: now,
167
227
  expiresAt,
228
+ labels: legacyCodexLabels
229
+ });
230
+ }
231
+ return meters.length === 0 ? null : meters;
232
+ }
233
+ export function parseCodexPayload(payload, now) {
234
+ const root = record(payload);
235
+ const defaultLimits = record(root?.["rateLimits"]);
236
+ const expiresAt = shortExpiry(now);
237
+ if (root === null || expiresAt === null)
238
+ return null;
239
+ if (defaultLimits === null)
240
+ return parseLegacyCodexPayload(payload, now);
241
+ const meters = [];
242
+ const statedDefaultId = typeof defaultLimits["limitId"] === "string"
243
+ ? defaultLimits["limitId"]
244
+ : "codex";
245
+ const defaultLimitId = readableLimitId(statedDefaultId);
246
+ let defaultCovered = false;
247
+ const byLimitId = record(root["rateLimitsByLimitId"]);
248
+ if (byLimitId !== null) {
249
+ for (const [mapId, value] of Object.entries(byLimitId)) {
250
+ const snapshot = record(value);
251
+ if (snapshot === null)
252
+ continue;
253
+ const statedId = typeof snapshot["limitId"] === "string"
254
+ ? snapshot["limitId"]
255
+ : mapId;
256
+ const limitId = readableLimitId(statedId);
257
+ if (limitId === null)
258
+ continue;
259
+ const entryMeters = windowsFrom(snapshot, limitId, now, expiresAt);
260
+ const monthly = monthlyCreditLimit(snapshot["individualLimit"], now, expiresAt);
261
+ if (entryMeters.length > 0 && limitId === defaultLimitId)
262
+ defaultCovered = true;
263
+ meters.push(...entryMeters);
264
+ if (monthly !== null)
265
+ meters.push(monthly);
266
+ }
267
+ }
268
+ if (!defaultCovered && defaultLimitId !== null) {
269
+ const defaultMeters = windowsFrom(defaultLimits, defaultLimitId, now, expiresAt);
270
+ const monthly = monthlyCreditLimit(defaultLimits["individualLimit"], now, expiresAt);
271
+ if (monthly !== null)
272
+ defaultMeters.push(monthly);
273
+ meters.unshift(...defaultMeters);
274
+ }
275
+ const credits = record(defaultLimits["credits"]);
276
+ if (credits?.["unlimited"] === true) {
277
+ meters.push({
278
+ provider: "CODEX",
279
+ meter: "CREDITS",
280
+ availability: "unlimited",
281
+ // Required legacy transport fields; availability carries no percentage.
282
+ value: 0,
283
+ unit: "PERCENT",
284
+ window: { kind: "unknown" },
285
+ resetAt: null,
286
+ source: "documented_api",
287
+ precision: "exact",
288
+ observedAt: now,
289
+ expiresAt,
168
290
  labels: codexLabels
169
291
  });
170
292
  }
293
+ else if (credits?.["hasCredits"] === true) {
294
+ const balance = decimal(credits["balance"]);
295
+ if (balance !== null) {
296
+ meters.push({
297
+ provider: "CODEX",
298
+ meter: "CREDITS",
299
+ value: balance,
300
+ unit: "CREDITS",
301
+ window: { kind: "lifetime" },
302
+ resetAt: null,
303
+ source: "documented_api",
304
+ precision: "exact",
305
+ observedAt: now,
306
+ expiresAt,
307
+ labels: codexLabels
308
+ });
309
+ }
310
+ }
171
311
  return meters.length === 0 ? null : meters;
172
312
  }
173
313
  /** The local application that owns this credential. */
package/dist/codex.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"codex.js","sourceRoot":"","sources":["../src/codex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex.js","sourceRoot":"","sources":["../src/codex.ts"],"names":[],"mappings":"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"}
@@ -265,33 +265,9 @@ export interface SanitizedLiveFixture {
265
265
  * `sanitizeClaudeStatusline` above.
266
266
  */
267
267
  export declare const claudeSanitizedLive: SanitizedLiveFixture;
268
- /**
269
- * PENDING CAPTURE: Codex usage.
270
- *
271
- * The REQUEST contract for this reader is known, reproducible and recorded, in
272
- * `provider_specs/openai/codex.yaml` and in the endpoint constants in
273
- * `apps/desktop/src-tauri/src/net.rs`: the method, the address, the
274
- * authentication, the fixed headers and the behaviour of an expired login were
275
- * all taken from a reader that ran against a real account on 2026-08-07.
276
- *
277
- * The RESPONSE is a different question, and it is open. No sanitized response
278
- * from that account has been committed here, and the shape the shipped parser
279
- * reads was observed in the original prototype rather than captured through
280
- * this code. Writing a payload from memory to make this slot look full would
281
- * rebuild exactly the fault the fixture classes exist to prevent, so the slot
282
- * stays empty and loud: every test that would use it skips and says why, the
283
- * provider stays UNVERIFIED, and the registry validator reports the gap on
284
- * every run and fails outright under --require-captures.
285
- */
268
+ /** Rebuild the existing sanitized values into the documented app server shape. */
286
269
  export declare const codexSanitizedLive: SanitizedLiveFixture;
287
- /**
288
- * PENDING CAPTURE: Antigravity quota summary.
289
- *
290
- * Same standing as the Codex slot above. The request is recorded, including the
291
- * detail that the endpoint answers 403 to a valid token when the user agent
292
- * header is missing, which was measured on 2026-08-07. No sanitized response
293
- * has been committed, so nothing here claims to know the shape of one.
294
- */
270
+ /** PENDING CAPTURE: documented Antigravity CLI status line payload. */
295
271
  export declare const antigravitySanitizedLive: SanitizedLiveFixture;
296
272
  /**
297
273
  * PENDING CAPTURE: OpenCode workspace usage.
@@ -307,7 +283,6 @@ export declare const opencodeSanitizedLive: SanitizedLiveFixture;
307
283
  export declare const grokSanitizedLive: SanitizedLiveFixture;
308
284
  export declare const kimiSanitizedLive: SanitizedLiveFixture;
309
285
  export declare function rebuildCodexCapture(capture: unknown, now: string): unknown;
310
- export declare function rebuildAntigravityCapture(capture: unknown, now: string): unknown;
311
286
  export declare function rebuildOpencodeCapture(capture: unknown, now: string): unknown;
312
287
  export declare const sanitizedLiveFixtures: readonly SanitizedLiveFixture[];
313
288
  export interface MalformedFixture {
@@ -1 +1 @@
1
- {"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../src/fixtures.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../src/fixtures.ts"],"names":[],"mappings":"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"}