@agentdeck/bridge 1.0.21 → 1.0.22

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.
Files changed (48) hide show
  1. package/dist/ble-sync-spawn.d.ts +27 -0
  2. package/dist/ble-sync-spawn.d.ts.map +1 -1
  3. package/dist/ble-sync-spawn.js +32 -0
  4. package/dist/ble-sync-spawn.js.map +1 -1
  5. package/dist/bridge-core.d.ts +21 -4
  6. package/dist/bridge-core.d.ts.map +1 -1
  7. package/dist/bridge-core.js +52 -23
  8. package/dist/bridge-core.js.map +1 -1
  9. package/dist/cli.d.ts.map +1 -1
  10. package/dist/cli.js +13 -0
  11. package/dist/cli.js.map +1 -1
  12. package/dist/codex-rate-limits-live.d.ts +58 -9
  13. package/dist/codex-rate-limits-live.d.ts.map +1 -1
  14. package/dist/codex-rate-limits-live.js +64 -15
  15. package/dist/codex-rate-limits-live.js.map +1 -1
  16. package/dist/codex-rate-limits.d.ts +2 -2
  17. package/dist/codex-rate-limits.d.ts.map +1 -1
  18. package/dist/codex-rate-limits.js +34 -16
  19. package/dist/codex-rate-limits.js.map +1 -1
  20. package/dist/daemon-server.d.ts +46 -2
  21. package/dist/daemon-server.d.ts.map +1 -1
  22. package/dist/daemon-server.js +65 -40
  23. package/dist/daemon-server.js.map +1 -1
  24. package/dist/daemon.js +1 -1
  25. package/dist/hook-server.d.ts.map +1 -1
  26. package/dist/hook-server.js +17 -0
  27. package/dist/hook-server.js.map +1 -1
  28. package/dist/idotmatrix/idotmatrix-daemon-sync.d.ts.map +1 -1
  29. package/dist/idotmatrix/idotmatrix-daemon-sync.js +13 -1
  30. package/dist/idotmatrix/idotmatrix-daemon-sync.js.map +1 -1
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +4 -1
  33. package/dist/index.js.map +1 -1
  34. package/dist/python-ble-runtime.d.ts +2 -0
  35. package/dist/python-ble-runtime.d.ts.map +1 -1
  36. package/dist/python-ble-runtime.js +101 -7
  37. package/dist/python-ble-runtime.js.map +1 -1
  38. package/dist/timebox/timebox-daemon-sync.d.ts.map +1 -1
  39. package/dist/timebox/timebox-daemon-sync.js +11 -1
  40. package/dist/timebox/timebox-daemon-sync.js.map +1 -1
  41. package/dist/usage-api.d.ts +28 -1
  42. package/dist/usage-api.d.ts.map +1 -1
  43. package/dist/usage-api.js +74 -33
  44. package/dist/usage-api.js.map +1 -1
  45. package/dist/usage-event.d.ts.map +1 -1
  46. package/dist/usage-event.js +2 -17
  47. package/dist/usage-event.js.map +1 -1
  48. package/package.json +3 -3
@@ -7,7 +7,7 @@
7
7
  * inspects it and never performs network installation on its own.
8
8
  */
9
9
  import { spawnSync } from 'child_process';
10
- import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs';
10
+ import { existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from 'fs';
11
11
  import { homedir } from 'os';
12
12
  import { dirname, join } from 'path';
13
13
  import { fileURLToPath } from 'url';
@@ -51,6 +51,65 @@ export function resolveBleRuntimePaths(options = {}) {
51
51
  },
52
52
  };
53
53
  }
54
+ // CPU types from <mach/machine.h>, CPU_ARCH_ABI64-tagged.
55
+ const CPU_TYPE_X86_64 = 0x01000007;
56
+ const CPU_TYPE_ARM64 = 0x0100000c;
57
+ /**
58
+ * Best-effort Mach-O CPU-type probe (thin and fat headers). Returns null when
59
+ * the file is unreadable or not recognizably Mach-O — never a claim.
60
+ */
61
+ function machOCpuTypes(path) {
62
+ let buf;
63
+ try {
64
+ buf = readFileSync(path); // follows the venv's bin/python symlink chain
65
+ }
66
+ catch {
67
+ return null;
68
+ }
69
+ if (buf.length < 8)
70
+ return null;
71
+ const magicLE = buf.readUInt32LE(0);
72
+ if (magicLE === 0xfeedfacf || magicLE === 0xfeedface)
73
+ return [buf.readUInt32LE(4)];
74
+ const magicBE = buf.readUInt32BE(0);
75
+ if (magicBE === 0xcafebabe || magicBE === 0xcafebabf) {
76
+ // Fat headers are big-endian. Java class files share FAT_MAGIC; their
77
+ // version field lands where nfat_arch does and is always > 32, so the
78
+ // bound doubles as the disambiguator.
79
+ const count = buf.readUInt32BE(4);
80
+ if (count === 0 || count > 32)
81
+ return null;
82
+ const entrySize = magicBE === 0xcafebabf ? 32 : 20;
83
+ const types = [];
84
+ for (let i = 0; i < count; i++) {
85
+ const off = 8 + i * entrySize;
86
+ if (off + 4 > buf.length)
87
+ return null;
88
+ types.push(buf.readUInt32BE(off));
89
+ }
90
+ return types;
91
+ }
92
+ return null;
93
+ }
94
+ /**
95
+ * Non-null when `python` is an x86_64-only interpreter on an arm64 Mac — a
96
+ * Rosetta leftover (e.g. a venv created by an Intel-Homebrew python that
97
+ * survived a machine migration). It imports everything fine under Rosetta, so
98
+ * a dependency probe cannot catch it; only the binary itself says. Such an
99
+ * environment must be rebuilt, not used: every BLE client it runs is a
100
+ * translated process, and its native wheels are the wrong architecture for
101
+ * any native interpreter that replaces it.
102
+ */
103
+ function rosettaInterpreterReason(python, platform, hostArch) {
104
+ if (platform !== 'darwin' || hostArch !== 'arm64')
105
+ return null;
106
+ const types = machOCpuTypes(python);
107
+ if (!types || types.includes(CPU_TYPE_ARM64))
108
+ return null;
109
+ if (!types.includes(CPU_TYPE_X86_64))
110
+ return null; // unknown arch — no claim
111
+ return `${python} is an x86_64 (Rosetta) Python on this arm64 Mac`;
112
+ }
54
113
  function packagedAssetsMissing(paths) {
55
114
  return [paths.requirements, ...Object.values(paths.scripts)].filter((path) => !existsSync(path));
56
115
  }
@@ -74,6 +133,8 @@ function readyMarkerMatches(paths) {
74
133
  */
75
134
  export function getBleRuntimeStatus(options = {}) {
76
135
  const env = options.env ?? process.env;
136
+ const platform = options.platform ?? process.platform;
137
+ const hostArch = options.hostArch ?? process.arch;
77
138
  const paths = resolveBleRuntimePaths(options);
78
139
  const missing = packagedAssetsMissing(paths);
79
140
  if (missing.length > 0) {
@@ -90,12 +151,18 @@ export function getBleRuntimeStatus(options = {}) {
90
151
  : { ready: false, paths, reason: `AGENTDECK_BLE_PYTHON does not exist: ${override}` };
91
152
  }
92
153
  if (existsSync(paths.venvPython) && readyMarkerMatches(paths)) {
93
- return { ready: true, python: paths.venvPython, paths };
154
+ const rosetta = rosettaInterpreterReason(paths.venvPython, platform, hostArch);
155
+ if (!rosetta)
156
+ return { ready: true, python: paths.venvPython, paths };
157
+ return { ready: false, paths, reason: `${rosetta}; run \`agentdeck ble setup\` to rebuild it` };
94
158
  }
95
159
  // Preserve source-checkout and pre-1.0.4 manual environments. An explicit BLE
96
160
  // command will import-probe this interpreter before using it.
97
161
  if (existsSync(paths.legacyPython)) {
98
- return { ready: true, python: paths.legacyPython, paths };
162
+ const rosetta = rosettaInterpreterReason(paths.legacyPython, platform, hostArch);
163
+ if (!rosetta)
164
+ return { ready: true, python: paths.legacyPython, paths };
165
+ return { ready: false, paths, reason: `${rosetta}; run \`agentdeck ble setup\` to rebuild it` };
99
166
  }
100
167
  return {
101
168
  ready: false,
@@ -120,7 +187,7 @@ function dependencyProbe(run, python) {
120
187
  'import bleak; import PIL; import idotmatrix',
121
188
  ]);
122
189
  }
123
- function systemPython(run, platform) {
190
+ function systemPython(run, platform, hostArch) {
124
191
  const candidates = platform === 'win32'
125
192
  ? [
126
193
  { command: 'py', prefix: ['-3'] },
@@ -128,6 +195,14 @@ function systemPython(run, platform) {
128
195
  { command: 'python', prefix: [] },
129
196
  ]
130
197
  : [
198
+ // On an arm64 Mac a bare `python3` can resolve to a leftover Intel
199
+ // Homebrew install (/usr/local precedes /opt/homebrew in the default
200
+ // /etc/paths order for daemon-spawned shells), building the whole BLE
201
+ // venv on Rosetta. Probe the native Homebrew interpreter first; it is
202
+ // simply skipped where it does not exist.
203
+ ...(platform === 'darwin' && hostArch === 'arm64'
204
+ ? [{ command: '/opt/homebrew/bin/python3', prefix: [] }]
205
+ : []),
131
206
  { command: 'python3', prefix: [] },
132
207
  { command: 'python', prefix: [] },
133
208
  ];
@@ -149,6 +224,7 @@ function systemPython(run, platform) {
149
224
  export function ensureBleRuntime(options = {}) {
150
225
  const env = options.env ?? process.env;
151
226
  const platform = options.platform ?? process.platform;
227
+ const hostArch = options.hostArch ?? process.arch;
152
228
  const paths = resolveBleRuntimePaths(options);
153
229
  const log = options.log ?? (() => { });
154
230
  const run = options.run ?? defaultRun;
@@ -168,7 +244,13 @@ export function ensureBleRuntime(options = {}) {
168
244
  }
169
245
  return { ready: true, python: override, paths };
170
246
  }
171
- if (existsSync(paths.venvPython) && dependencyProbe(run, paths.venvPython)) {
247
+ // The Rosetta check precedes the dependency probe: a translated interpreter
248
+ // imports everything just fine, so probing it would accept exactly the
249
+ // environment we need to rebuild.
250
+ const venvRosetta = existsSync(paths.venvPython)
251
+ ? rosettaInterpreterReason(paths.venvPython, platform, hostArch)
252
+ : null;
253
+ if (existsSync(paths.venvPython) && !venvRosetta && dependencyProbe(run, paths.venvPython)) {
172
254
  mkdirSync(paths.runtimeDir, { recursive: true });
173
255
  writeFileSync(paths.readyMarker, JSON.stringify({
174
256
  requirementsSha256: requirementsDigest(paths),
@@ -176,13 +258,25 @@ export function ensureBleRuntime(options = {}) {
176
258
  }, null, 2) + '\n');
177
259
  return { ready: true, python: paths.venvPython, paths };
178
260
  }
179
- if (existsSync(paths.legacyPython) && dependencyProbe(run, paths.legacyPython)) {
261
+ const legacyRosetta = existsSync(paths.legacyPython)
262
+ ? rosettaInterpreterReason(paths.legacyPython, platform, hostArch)
263
+ : null;
264
+ if (legacyRosetta)
265
+ log(`Ignoring legacy BLE venv: ${legacyRosetta}.`);
266
+ if (existsSync(paths.legacyPython) && !legacyRosetta && dependencyProbe(run, paths.legacyPython)) {
180
267
  return { ready: true, python: paths.legacyPython, paths };
181
268
  }
182
- const python = systemPython(run, platform);
269
+ const python = systemPython(run, platform, hostArch);
183
270
  if (!python) {
184
271
  throw new Error('Python 3.10 or newer is required for optional BLE device support.');
185
272
  }
273
+ if (venvRosetta) {
274
+ // `python -m venv` over an existing venv relinks the interpreter but keeps
275
+ // site-packages — native wheels compiled for the wrong architecture. Start
276
+ // clean instead.
277
+ log(`Rebuilding BLE venv: ${venvRosetta}.`);
278
+ rmSync(paths.venvDir, { recursive: true, force: true });
279
+ }
186
280
  mkdirSync(paths.runtimeDir, { recursive: true });
187
281
  log(`Preparing optional BLE support in ${paths.runtimeDir}...`);
188
282
  const create = run(python.command, [
@@ -1 +1 @@
1
- {"version":3,"file":"python-ble-runtime.js","sourceRoot":"","sources":["../src/python-ble-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"python-ble-runtime.js","sourceRoot":"","sources":["../src/python-ble-runtime.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"timebox-daemon-sync.d.ts","sourceRoot":"","sources":["../../src/timebox/timebox-daemon-sync.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,EAGL,KAAK,eAAe,EAErB,MAAM,uBAAuB,CAAC;AA6B/B,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CA8BvD;AAqDD;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CAAC,aAAa,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAyB1E;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,qBAAqB,EAAE,MAAM,GAAG,eAAe,CAWlF"}
1
+ {"version":3,"file":"timebox-daemon-sync.d.ts","sourceRoot":"","sources":["../../src/timebox/timebox-daemon-sync.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAYH,OAAO,EAGL,KAAK,eAAe,EAErB,MAAM,uBAAuB,CAAC;AA+B/B,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CA+BvD;AA8DD;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CAAC,aAAa,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAyB1E;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,qBAAqB,EAAE,MAAM,GAAG,eAAe,CAWlF"}
@@ -6,7 +6,7 @@
6
6
  * writer. This code is terminal-managed CLI daemon only.
7
7
  */
8
8
  import { deviceId, loadTimeboxDevices } from './timebox-settings.js';
9
- import { createSyncCycleSquelch, spawnPythonSync, terminateSyncChild } from '../ble-sync-spawn.js';
9
+ import { createSigabrtCircuitBreaker, createSyncCycleSquelch, spawnPythonSync, terminateSyncChild, } from '../ble-sync-spawn.js';
10
10
  import { createBleLinkTracker, mergeBleLinkSnapshots, } from '../ble-sync-status.js';
11
11
  import { getBleRuntimeStatus } from '../python-ble-runtime.js';
12
12
  const entries = new Map();
@@ -44,6 +44,7 @@ export function startTimeboxSync(httpPort) {
44
44
  startedAt: 0,
45
45
  squelch: createSyncCycleSquelch(log),
46
46
  link: createBleLinkTracker(),
47
+ abortBreaker: createSigabrtCircuitBreaker(`Timebox BLE sync for ${id}`),
47
48
  };
48
49
  entries.set(id, entry);
49
50
  spawnSync(entry, runtime.python, runtime.paths.scripts.timeboxSync, httpPort);
@@ -85,6 +86,15 @@ function spawnSync(entry, venvPython, syncScript, httpPort) {
85
86
  const delay = Math.min(MAX_BACKOFF_MS, BASE_BACKOFF_MS * entry.consecutiveFailures);
86
87
  const tail = stderrTail() || outputTail();
87
88
  const why = tail ? `; output: ${tail}` : '';
89
+ // A streak of SIGABRT kills means the OS is refusing the client (TCC on
90
+ // macOS) — respawning can only produce another crash dialog, so halt and
91
+ // say why instead of looping forever.
92
+ const halt = entry.abortBreaker.noteExit(signal);
93
+ if (halt) {
94
+ log(halt);
95
+ entry.link.noteUnavailable(halt);
96
+ return;
97
+ }
88
98
  entry.link.noteExit(tail || `sync exited (code=${code} signal=${signal})`, Date.now() + delay);
89
99
  entry.squelch.logExit(code, signal, uptimeMs, tail, `sync for ${id} exited (code=${code} signal=${signal})${why}; respawning in ${Math.round(delay / 1000)}s`);
90
100
  entry.respawnTimer = setTimeout(() => spawnSync(entry, venvPython, syncScript, httpPort), delay);
@@ -1 +1 @@
1
- {"version":3,"file":"timebox-daemon-sync.js","sourceRoot":"","sources":["../../src/timebox/timebox-daemon-sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"timebox-daemon-sync.js","sourceRoot":"","sources":["../../src/timebox/timebox-daemon-sync.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,8 @@
1
1
  import type { ScopedUsageLimit } from './types.js';
2
+ /** True when the on-disk cache is old enough that a poller should go to the network.
3
+ * Exported for the slack regression test — the bug it prevents is invisible in
4
+ * any single call and only shows up as a cadence, so pin the predicate. */
5
+ export declare function fileCacheExpired(fetchedAt: number, nowMs?: number): boolean;
2
6
  export interface ApiUsageData {
3
7
  fiveHourPercent: number | null;
4
8
  fiveHourResetsAt: string | null;
@@ -15,6 +19,29 @@ export interface ApiUsageData {
15
19
  /** Inferred from API response: subscription if rate-limit fields present, api if 401/no fields */
16
20
  inferredBillingType: 'subscription' | 'api' | null;
17
21
  }
22
+ /**
23
+ * A usage reading plus whether it is a LIVE one.
24
+ *
25
+ * Freshness must not be folded into the data or into a null return. Every
26
+ * failure branch below can still produce numbers — the last good ones off the
27
+ * shared cache file — and a caller that cannot tell those apart from a live
28
+ * reading will stamp them as fresh: that is exactly what happened before this
29
+ * type existed. `fetchUsageFromApi` returned `fileCache?.data ?? null` on 429 /
30
+ * 401 / !ok / API-error / network-throw, so `BridgeCore.updateApiUsage()` ran on
31
+ * the truthy value, pushed `lastApiFetchTime` forward and cleared
32
+ * `apiUsageStale`. The `usageStale` wire flag was therefore unreachable for the
33
+ * commonest failure mode, `USAGE_STALE_TTL` never tripped, and a 7-minute freeze
34
+ * on 2026-08-19 shipped a stale 0% to every surface marked `usageStale: false`.
35
+ *
36
+ * `null` now means only "no numbers at all" (no cache file and no live fetch).
37
+ */
38
+ export interface UsageFetchResult {
39
+ data: ApiUsageData;
40
+ /** True only when `data` came from the network, or from a cache entry a
41
+ * network fetch wrote within the TTL. False when it is a fallback served
42
+ * because the fetch could not be made or failed. */
43
+ fresh: boolean;
44
+ }
18
45
  export type TokenStatus = 'valid' | 'expired' | 'missing' | 'unknown';
19
46
  export declare function didLastFetchFail(): boolean;
20
47
  export declare function getTokenStatus(): TokenStatus;
@@ -61,6 +88,6 @@ export declare function hasOAuthToken(): boolean;
61
88
  * re-emitting them here would double-count. Sorted worst-first so the encoder's
62
89
  * default "triple" view can headline `scopedLimits[0]` as the binding limit. */
63
90
  export declare function parseScopedLimits(limits: unknown): ScopedUsageLimit[];
64
- export declare function fetchUsageFromApi(): Promise<ApiUsageData | null>;
91
+ export declare function fetchUsageFromApi(): Promise<UsageFetchResult | null>;
65
92
  export { formatResetTime } from '@agentdeck/shared';
66
93
  //# sourceMappingURL=usage-api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"usage-api.d.ts","sourceRoot":"","sources":["../src/usage-api.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAanD,MAAM,WAAW,YAAY;IAC3B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC;;4DAEwD;IACxD,YAAY,EAAE,gBAAgB,EAAE,CAAC;IACjC,kGAAkG;IAClG,mBAAmB,EAAE,cAAc,GAAG,KAAK,GAAG,IAAI,CAAC;CACpD;AAED,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAatE,wBAAgB,gBAAgB,IAAI,OAAO,CAE1C;AAED,wBAAgB,cAAc,IAAI,WAAW,CAE5C;AAED,kFAAkF;AAClF,wBAAgB,wBAAwB,IAAI,IAAI,CAG/C;AAED,yFAAyF;AACzF,wBAAgB,YAAY,IAAI,MAAM,CAIrC;AAID,UAAU,gBAAgB;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;iCAGiC;AACjC,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC1B,gGAAgG;IAChG,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,kFAAkF;IAClF,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAC/C;wEACoE;IACpE,cAAc,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;CACrC;AAsBD;;;;2CAI2C;AAC3C,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,WAAW,GAAG,gBAAgB,GAAG,IAAI,CAYrF;AAwBD;;;;;mFAKmF;AACnF,wBAAgB,gBAAgB,IAAI,WAAW,CAQ9C;AAUD,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AAgED;;;;iFAIiF;AACjF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,GAAG,gBAAgB,EAAE,CA+BrE;AAID,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAwJtE;AAGD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"usage-api.d.ts","sourceRoot":"","sources":["../src/usage-api.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AA2BnD;;4EAE4E;AAC5E,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,SAAa,GAAG,OAAO,CAE/E;AAKD,MAAM,WAAW,YAAY;IAC3B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC;;4DAEwD;IACxD,YAAY,EAAE,gBAAgB,EAAE,CAAC;IACjC,kGAAkG;IAClG,mBAAmB,EAAE,cAAc,GAAG,KAAK,GAAG,IAAI,CAAC;CACpD;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,YAAY,CAAC;IACnB;;yDAEqD;IACrD,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAatE,wBAAgB,gBAAgB,IAAI,OAAO,CAE1C;AAED,wBAAgB,cAAc,IAAI,WAAW,CAE5C;AAED,kFAAkF;AAClF,wBAAgB,wBAAwB,IAAI,IAAI,CAG/C;AAkCD,yFAAyF;AACzF,wBAAgB,YAAY,IAAI,MAAM,CAIrC;AAID,UAAU,gBAAgB;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;iCAGiC;AACjC,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC1B,gGAAgG;IAChG,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,kFAAkF;IAClF,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAC/C;wEACoE;IACpE,cAAc,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;CACrC;AAsBD;;;;2CAI2C;AAC3C,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,WAAW,GAAG,gBAAgB,GAAG,IAAI,CAYrF;AAwBD;;;;;mFAKmF;AACnF,wBAAgB,gBAAgB,IAAI,WAAW,CAQ9C;AAUD,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AAgED;;;;iFAIiF;AACjF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,GAAG,gBAAgB,EAAE,CA+BrE;AAID,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAkJ1E;AAGD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
package/dist/usage-api.js CHANGED
@@ -2,13 +2,35 @@ import { execSync } from 'child_process';
2
2
  import { readFileSync, writeFileSync, mkdirSync } from 'fs';
3
3
  import { join } from 'path';
4
4
  import { homedir } from 'os';
5
- import { debug } from './logger.js';
5
+ import { debug, logTagged } from './logger.js';
6
6
  const USAGE_API_URL = 'https://api.anthropic.com/api/oauth/usage';
7
7
  const KEYCHAIN_SERVICE = 'Claude Code-credentials';
8
8
  const AGENTDECK_DIR = join(homedir(), '.agentdeck');
9
9
  const USAGE_CACHE_FILE = join(AGENTDECK_DIR, 'usage-cache.json');
10
10
  /** Shared file cache TTL — multiple bridge sessions share one cache file */
11
11
  const FILE_CACHE_TTL_MS = 120_000; // 120s — reduced from 60s to avoid 429 from multiple pollers
12
+ /**
13
+ * Slack subtracted from the TTL when testing expiry.
14
+ *
15
+ * `fetchedAt` is stamped AFTER the HTTP round trip completes, so a poller whose
16
+ * interval divides the TTL always arrives a few hundred ms EARLY at the tick
17
+ * that should have expired the cache: it reads a hit and then waits a whole
18
+ * extra interval. With the daemon's 60s poll and a 120s TTL that turned the
19
+ * intended 120s refresh into a hard 180s floor — measured 2026-08-19, three
20
+ * consecutive network fetches at 08:25:43 / 08:28:43 / 08:31:43, exact to the
21
+ * second, never once landing on 120s.
22
+ *
23
+ * The slack must exceed fetch latency plus timer drift, and stay well under the
24
+ * poll interval so the cross-session dedupe the TTL exists for is preserved
25
+ * (effective TTL 105s — still comfortably above the 60s this started at).
26
+ */
27
+ const FILE_CACHE_SLACK_MS = 15_000;
28
+ /** True when the on-disk cache is old enough that a poller should go to the network.
29
+ * Exported for the slack regression test — the bug it prevents is invisible in
30
+ * any single call and only shows up as a cadence, so pin the predicate. */
31
+ export function fileCacheExpired(fetchedAt, nowMs = Date.now()) {
32
+ return (nowMs - fetchedAt) >= (FILE_CACHE_TTL_MS - FILE_CACHE_SLACK_MS);
33
+ }
12
34
  /** Token expiry safety margin — skip fetch if token expires within this window */
13
35
  const TOKEN_EXPIRY_MARGIN_MS = 10 * 60 * 1000; // 10 minutes
14
36
  // ===== Error tracking =====
@@ -26,6 +48,33 @@ export function resetConsecutiveFailures() {
26
48
  consecutiveFailures = 0;
27
49
  lastFetchFailed = false;
28
50
  }
51
+ /**
52
+ * Record a failed fetch and make it visible in the daemon's own log.
53
+ *
54
+ * `debug()` was the only breadcrumb here, and the daemon runs without DEBUG —
55
+ * so a run of failed fetches left NO record anywhere. The 2026-08-19 freeze had
56
+ * to be reconstructed from cache-file mtimes, and the reason for it is still
57
+ * unknown because nothing wrote it down. Log the first failure and every fifth
58
+ * after it: a persistent outage stays visible without flooding a file that a
59
+ * 60s poller writes to.
60
+ */
61
+ function noteFailure(reason) {
62
+ lastFetchFailed = true;
63
+ consecutiveFailures++;
64
+ if (consecutiveFailures === 1 || consecutiveFailures % 5 === 0) {
65
+ logTagged('usage', `Claude usage fetch failed (${consecutiveFailures}x): ${reason} — serving cached values as stale, next attempt after ${Math.round(getBackoffMs() / 1000)}s backoff`);
66
+ }
67
+ debug('UsageAPI', `Fetch failed (${consecutiveFailures}x): ${reason}`);
68
+ }
69
+ /** Clear failure state after a live fetch, announcing recovery if one was needed. */
70
+ function noteSuccess() {
71
+ if (consecutiveFailures > 0) {
72
+ logTagged('usage', `Claude usage fetch recovered after ${consecutiveFailures} failure(s)`);
73
+ }
74
+ lastFetchFailed = false;
75
+ consecutiveFailures = 0;
76
+ lastTokenStatus = 'valid';
77
+ }
29
78
  /** Backoff interval based on consecutive failures: 0→0, 1→45s, 2→90s, 3→180s, 4+→300s */
30
79
  export function getBackoffMs() {
31
80
  if (consecutiveFailures <= 0)
@@ -232,21 +281,24 @@ export function parseScopedLimits(limits) {
232
281
  }
233
282
  // ===== Main fetch =====
234
283
  export async function fetchUsageFromApi() {
284
+ // A cached reading served because the live path could not run or failed. Never
285
+ // `fresh` — see UsageFetchResult.
286
+ const stale = (fc) => (fc ? { data: fc.data, fresh: false } : null);
235
287
  // 1. Check file cache first — shared across all bridge sessions
236
288
  const fileCache = readFileCache();
237
- if (fileCache && (Date.now() - fileCache.fetchedAt) < FILE_CACHE_TTL_MS) {
289
+ if (fileCache && !fileCacheExpired(fileCache.fetchedAt)) {
238
290
  debug('UsageAPI', `File cache hit (age ${Math.round((Date.now() - fileCache.fetchedAt) / 1000)}s)`);
239
- lastFetchFailed = false;
240
- consecutiveFailures = 0;
241
- lastTokenStatus = 'valid';
242
- return fileCache.data;
291
+ // A within-TTL entry was written by a real network fetch (only the success
292
+ // path writes it), so this IS a fresh reading — just a shared one.
293
+ noteSuccess();
294
+ return { data: fileCache.data, fresh: true };
243
295
  }
244
296
  // 2. Read OAuth credentials
245
297
  const creds = getOAuthCredentials();
246
298
  if (!creds) {
247
299
  debug('UsageAPI', 'No OAuth token available');
248
300
  lastTokenStatus = 'missing';
249
- return fileCache?.data ?? null; // return stale cache if available
301
+ return stale(fileCache); // last known values, explicitly not fresh
250
302
  }
251
303
  // 3. Token expiry check
252
304
  if (creds.expiresAt) {
@@ -255,19 +307,19 @@ export async function fetchUsageFromApi() {
255
307
  debug('UsageAPI', 'OAuth token expired — waiting for Claude Code to refresh');
256
308
  lastTokenStatus = 'expired';
257
309
  lastFetchFailed = true;
258
- return fileCache?.data ?? null;
310
+ return stale(fileCache);
259
311
  }
260
312
  if (timeUntilExpiry < TOKEN_EXPIRY_MARGIN_MS) {
261
313
  debug('UsageAPI', `OAuth token expires in ${Math.round(timeUntilExpiry / 60000)}m — skipping fetch`);
262
314
  lastTokenStatus = 'expired';
263
- return fileCache?.data ?? null;
315
+ return stale(fileCache);
264
316
  }
265
317
  }
266
318
  // 4. Exponential backoff — skip if too soon after consecutive failures
267
319
  const backoff = getBackoffMs();
268
320
  if (backoff > 0 && fileCache && (Date.now() - fileCache.fetchedAt) < backoff) {
269
321
  debug('UsageAPI', `Backoff active (${consecutiveFailures} failures, next in ${Math.round((backoff - (Date.now() - fileCache.fetchedAt)) / 1000)}s)`);
270
- return fileCache.data; // return stale cache
322
+ return stale(fileCache); // holding off on purpose — the numbers are still old
271
323
  }
272
324
  // 5. Actual API fetch
273
325
  try {
@@ -282,8 +334,7 @@ export async function fetchUsageFromApi() {
282
334
  });
283
335
  // 429 — respect Retry-After header, backoff on next poll
284
336
  if (res.status === 429) {
285
- consecutiveFailures++;
286
- lastFetchFailed = true;
337
+ noteFailure('rate limited (429)');
287
338
  const retryAfter = res.headers.get('retry-after');
288
339
  if (retryAfter) {
289
340
  const retrySec = parseInt(retryAfter, 10);
@@ -310,21 +361,17 @@ export async function fetchUsageFromApi() {
310
361
  else {
311
362
  debug('UsageAPI', `Rate limited (429), consecutive failures: ${consecutiveFailures}, backoff: ${getBackoffMs() / 1000}s`);
312
363
  }
313
- return fileCache?.data ?? null;
364
+ return stale(fileCache);
314
365
  }
315
366
  // 401/403 — token issue
316
367
  if (res.status === 401 || res.status === 403) {
317
- debug('UsageAPI', `Auth error ${res.status} — token may be invalid or expired`);
318
368
  lastTokenStatus = 'expired';
319
- lastFetchFailed = true;
320
- consecutiveFailures++;
321
- return fileCache?.data ?? null;
369
+ noteFailure(`auth error ${res.status} — token may be invalid or expired`);
370
+ return stale(fileCache);
322
371
  }
323
372
  if (!res.ok) {
324
- debug('UsageAPI', `API returned ${res.status}: ${res.statusText}`);
325
- lastFetchFailed = true;
326
- consecutiveFailures++;
327
- return fileCache?.data ?? null;
373
+ noteFailure(`API returned ${res.status} ${res.statusText}`);
374
+ return stale(fileCache);
328
375
  }
329
376
  const data = await res.json();
330
377
  // DEBUG: dump raw response to diagnose field structure changes
@@ -338,10 +385,8 @@ export async function fetchUsageFromApi() {
338
385
  }
339
386
  catch { /* ignore */ }
340
387
  if (data.error) {
341
- debug('UsageAPI', `API error: ${data.error.type}`);
342
- lastFetchFailed = true;
343
- consecutiveFailures++;
344
- return fileCache?.data ?? null;
388
+ noteFailure(`API error: ${data.error.type}`);
389
+ return stale(fileCache);
345
390
  }
346
391
  const extraUsage = data.extra_usage;
347
392
  const hasRateLimitData = data.five_hour != null || data.seven_day != null;
@@ -359,17 +404,13 @@ export async function fetchUsageFromApi() {
359
404
  };
360
405
  debug('UsageAPI', `5h: ${result.fiveHourPercent}%, 7d: ${result.sevenDayPercent}%, extra: ${result.extraUsageEnabled ? 'enabled' : 'disabled'}`);
361
406
  // Success — reset counters, write cache
362
- lastFetchFailed = false;
363
- consecutiveFailures = 0;
364
- lastTokenStatus = 'valid';
407
+ noteSuccess();
365
408
  writeFileCache(result);
366
- return result;
409
+ return { data: result, fresh: true };
367
410
  }
368
411
  catch (err) {
369
- debug('UsageAPI', `Fetch failed: ${err}`);
370
- lastFetchFailed = true;
371
- consecutiveFailures++;
372
- return fileCache?.data ?? null;
412
+ noteFailure(String(err).slice(0, 160));
413
+ return stale(fileCache);
373
414
  }
374
415
  }
375
416
  // formatResetTime is now in @agentdeck/shared/format-utils
@@ -1 +1 @@
1
- {"version":3,"file":"usage-api.js","sourceRoot":"","sources":["../src/usage-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,MAAM,aAAa,GAAG,2CAA2C,CAAC;AAClE,MAAM,gBAAgB,GAAG,yBAAyB,CAAC;AACnD,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC;AACpD,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC;AAEjE,4EAA4E;AAC5E,MAAM,iBAAiB,GAAG,OAAO,CAAC,CAAC,6DAA6D;AAEhG,kFAAkF;AAClF,MAAM,sBAAsB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa;AA0B5D,6BAA6B;AAE7B,IAAI,eAAe,GAAG,KAAK,CAAC;AAC5B,IAAI,mBAAmB,GAAG,CAAC,CAAC;AAC5B,IAAI,eAAe,GAAgB,SAAS,CAAC;AAE7C,MAAM,UAAU,gBAAgB;IAC9B,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,wBAAwB;IACtC,mBAAmB,GAAG,CAAC,CAAC;IACxB,eAAe,GAAG,KAAK,CAAC;AAC1B,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,YAAY;IAC1B,IAAI,mBAAmB,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACrD,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,mBAAmB,GAAG,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AAC5E,CAAC;AAyBD;wFACwF;AACxF,SAAS,iBAAiB,CAAC,GAAkB;IAC3C,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,KAAK,GAAG,KAAK,EAAE,aAAa,CAAC;QACnC,IAAI,CAAC,KAAK,EAAE,WAAW,IAAI,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC9E,OAAO;YACL,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,SAAS,EAAE,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;SAC7E,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,mFAAmF;QACnF,+EAA+E;QAC/E,KAAK,CAAC,UAAU,EAAE,2CAA2C,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;2CAI2C;AAC3C,MAAM,UAAU,uBAAuB,CAAC,OAAoB;IAC1D,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAClC,OAAO,iBAAiB,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,qFAAqF;IACrF,wFAAwF;IACxF,yFAAyF;IACzF,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,IAAI,EAAE,CAAC;IAC7D,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;IACzD,CAAC;IACD,OAAO,iBAAiB,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;AAChG,CAAC;AAED,oFAAoF;AACpF,SAAS,cAAc;IACrB,IAAI,CAAC;QACH,OAAO,QAAQ,CACb,sCAAsC,gBAAgB,MAAM,EAC5D,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAC1E,CAAC,IAAI,EAAE,CAAC;IACX,CAAC;IAAC,MAAM,CAAC;QACP,KAAK,CAAC,UAAU,EAAE,0CAA0C,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,4FAA4F;AAC5F,SAAS,aAAa,CAAC,IAAY;IACjC,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;mFAKmF;AACnF,MAAM,UAAU,gBAAgB;IAC9B,OAAO;QACL,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC;QACtE,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,aAAa;QACb,cAAc;KACf,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB;IAC1B,OAAO,uBAAuB,CAAC,gBAAgB,EAAE,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,aAAa;IACpB,OAAO,mBAAmB,EAAE,EAAE,WAAW,IAAI,IAAI,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,aAAa,EAAE,KAAK,IAAI,CAAC;AAClC,CAAC;AAED,yBAAyB;AAEzB,SAAS,aAAa;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAmB,CAAC;QAChD,IAAI,KAAK,EAAE,IAAI,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YACvD,sEAAsE;YACtE,wEAAwE;YACxE,8DAA8D;YAC9D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YAC1E,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,IAAkB;IACxC,IAAI,CAAC;QACH,SAAS,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAmB,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QAC9D,aAAa,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;IAClE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,KAAK,CAAC,UAAU,EAAE,+BAA+B,GAAG,EAAE,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED,uCAAuC;AAEvC;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,QAAiB;IACzC,IAAI,QAAQ,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAClC,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAClD,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,QAAmC,CAAC;QAChD,IAAI,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ;YAAE,OAAO,GAAG,CAAC,WAAW,CAAC;QAChE,IAAI,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ;YAAE,OAAO,GAAG,CAAC,UAAU,CAAC;QAC9D,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ;YAAE,OAAO,GAAG,CAAC,OAAO,CAAC;QACxD,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ;YAAE,OAAO,GAAG,CAAC,KAAK,CAAC;IACtD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,oFAAoF;AACpF,SAAS,aAAa,CAAC,QAAiB;IACtC,IAAI,QAAQ,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAClC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,QAAmC,CAAC;QAChD,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ;YAAE,OAAO,GAAG,CAAC,SAAS,CAAC;QAC5D,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ;YAAE,OAAO,GAAG,CAAC,QAAQ,CAAC;QAC1D,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ;YAAE,OAAO,GAAG,CAAC,QAAQ,CAAC;QAC1D,IAAI,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ;YAAE,OAAO,GAAG,CAAC,UAAU,CAAC;IAChE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;iFAIiF;AACjF,MAAM,UAAU,iBAAiB,CAAC,MAAe;IAC/C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,CAAC;IACtC,MAAM,GAAG,GAAuB,EAAE,CAAC;IACnC,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,IAAI,GAAG,IAAI,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,SAAS;QACrD,MAAM,CAAC,GAAG,GAA8B,CAAC;QACzC,MAAM,KAAK,GAAG,CAAC,CAAC,KAAmD,CAAC;QACpE,MAAM,KAAK,GAAG,KAAK,EAAE,KAAmD,CAAC;QACzE,sEAAsE;QACtE,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QACjE,IAAI,OAAO,IAAI,IAAI;YAAE,SAAS;QAC9B,MAAM,WAAW,GAAG,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;QACvF,GAAG,CAAC,IAAI,CAAC;YACP,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YACrD,KAAK,EAAE,WAAW,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;YACrE,OAAO;YACP,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;YACjE,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YACnE,MAAM,EAAE,CAAC,CAAC,SAAS,KAAK,IAAI;SAC7B,CAAC,CAAC;IACL,CAAC;IACD,6EAA6E;IAC7E,4EAA4E;IAC5E,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAChB,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;YAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO;YAAE,OAAO,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO;YAAE,OAAO,CAAC,CAAC;QACpC,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC;AAED,yBAAyB;AAEzB,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,gEAAgE;IAChE,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;IAClC,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,iBAAiB,EAAE,CAAC;QACxE,KAAK,CAAC,UAAU,EAAE,uBAAuB,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QACpG,eAAe,GAAG,KAAK,CAAC;QACxB,mBAAmB,GAAG,CAAC,CAAC;QACxB,eAAe,GAAG,OAAO,CAAC;QAC1B,OAAO,SAAS,CAAC,IAAI,CAAC;IACxB,CAAC;IAED,4BAA4B;IAC5B,MAAM,KAAK,GAAG,mBAAmB,EAAE,CAAC;IACpC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,KAAK,CAAC,UAAU,EAAE,0BAA0B,CAAC,CAAC;QAC9C,eAAe,GAAG,SAAS,CAAC;QAC5B,OAAO,SAAS,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC,kCAAkC;IACpE,CAAC;IAED,wBAAwB;IACxB,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QACpB,MAAM,eAAe,GAAG,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACrD,IAAI,eAAe,IAAI,CAAC,EAAE,CAAC;YACzB,KAAK,CAAC,UAAU,EAAE,0DAA0D,CAAC,CAAC;YAC9E,eAAe,GAAG,SAAS,CAAC;YAC5B,eAAe,GAAG,IAAI,CAAC;YACvB,OAAO,SAAS,EAAE,IAAI,IAAI,IAAI,CAAC;QACjC,CAAC;QACD,IAAI,eAAe,GAAG,sBAAsB,EAAE,CAAC;YAC7C,KAAK,CAAC,UAAU,EAAE,0BAA0B,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACrG,eAAe,GAAG,SAAS,CAAC;YAC5B,OAAO,SAAS,EAAE,IAAI,IAAI,IAAI,CAAC;QACjC,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,MAAM,OAAO,GAAG,YAAY,EAAE,CAAC;IAC/B,IAAI,OAAO,GAAG,CAAC,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,OAAO,EAAE,CAAC;QAC7E,KAAK,CAAC,UAAU,EAAE,mBAAmB,mBAAmB,sBAAsB,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QACrJ,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,qBAAqB;IAC9C,CAAC;IAED,sBAAsB;IACtB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG;YACd,eAAe,EAAE,UAAU,KAAK,CAAC,WAAW,EAAE;YAC9C,gBAAgB,EAAE,kBAAkB;YACpC,QAAQ,EAAE,kBAAkB;SAC7B,CAAC;QAEF,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,aAAa,EAAE;YACrC,MAAM,EAAE,KAAK,EAAE,OAAO;YACtB,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC;SACnC,CAAC,CAAC;QAEH,yDAAyD;QACzD,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACvB,mBAAmB,EAAE,CAAC;YACtB,eAAe,GAAG,IAAI,CAAC;YACvB,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAClD,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;gBAC1C,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;oBACrC,mEAAmE;oBACnE,MAAM,cAAc,GAAG,SAAS,EAAE,IAAI,IAAI,IAAI,CAAC;oBAC/C,IAAI,cAAc,EAAE,CAAC;wBACnB,gEAAgE;wBAChE,MAAM,cAAc,GAAmB;4BACrC,IAAI,EAAE,cAAc;4BACpB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,iBAAiB;yBAC9D,CAAC;wBACF,IAAI,CAAC;4BACH,aAAa,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC;wBAC3E,CAAC;wBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;oBAC1B,CAAC;oBACD,KAAK,CAAC,UAAU,EAAE,oCAAoC,QAAQ,4BAA4B,mBAAmB,EAAE,CAAC,CAAC;gBACnH,CAAC;qBAAM,CAAC;oBACN,KAAK,CAAC,UAAU,EAAE,6CAA6C,mBAAmB,cAAc,YAAY,EAAE,GAAG,IAAI,GAAG,CAAC,CAAC;gBAC5H,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,UAAU,EAAE,6CAA6C,mBAAmB,cAAc,YAAY,EAAE,GAAG,IAAI,GAAG,CAAC,CAAC;YAC5H,CAAC;YACD,OAAO,SAAS,EAAE,IAAI,IAAI,IAAI,CAAC;QACjC,CAAC;QAED,wBAAwB;QACxB,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC7C,KAAK,CAAC,UAAU,EAAE,cAAc,GAAG,CAAC,MAAM,oCAAoC,CAAC,CAAC;YAChF,eAAe,GAAG,SAAS,CAAC;YAC5B,eAAe,GAAG,IAAI,CAAC;YACvB,mBAAmB,EAAE,CAAC;YACtB,OAAO,SAAS,EAAE,IAAI,IAAI,IAAI,CAAC;QACjC,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,KAAK,CAAC,UAAU,EAAE,gBAAgB,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;YACnE,eAAe,GAAG,IAAI,CAAC;YACvB,mBAAmB,EAAE,CAAC;YACtB,OAAO,SAAS,EAAE,IAAI,IAAI,IAAI,CAAC;QACjC,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAyB,CAAC;QAErD,+DAA+D;QAC/D,KAAK,CAAC,UAAU,EAAE,sBAAsB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7E,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,KAAK,CAAC,UAAU,EAAE,kBAAkB,OAAO,IAAI,CAAC,SAAS,SAAS,IAAI,CAAC,SAAS,CAC9E,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAClF,EAAE,CAAC,CAAC;QACP,CAAC;QACD,4CAA4C;QAC5C,IAAI,CAAC;YACH,aAAa,CAAC,IAAI,CAAC,aAAa,EAAE,sBAAsB,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACrG,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QAExB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,KAAK,CAAC,UAAU,EAAE,cAAc,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YACnD,eAAe,GAAG,IAAI,CAAC;YACvB,mBAAmB,EAAE,CAAC;YACtB,OAAO,SAAS,EAAE,IAAI,IAAI,IAAI,CAAC;QACjC,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC;QAC1E,MAAM,MAAM,GAAiB;YAC3B,eAAe,EAAE,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC;YACjD,gBAAgB,EAAE,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC;YAC/C,eAAe,EAAE,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC;YACjD,gBAAgB,EAAE,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC;YAC/C,iBAAiB,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,UAAU,IAAI,UAAU,EAAE,OAAO,CAAC;YACpE,sBAAsB,EAAE,UAAU,EAAE,aAAa,IAAI,IAAI;YACzD,qBAAqB,EAAE,UAAU,EAAE,YAAY,IAAI,IAAI;YACvD,qBAAqB,EAAE,gBAAgB,CAAC,UAAU,CAAC;YACnD,YAAY,EAAE,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC;YAC5C,mBAAmB,EAAE,gBAAgB,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK;SAC/D,CAAC;QAEF,KAAK,CAAC,UAAU,EAAE,OAAO,MAAM,CAAC,eAAe,UAAU,MAAM,CAAC,eAAe,aAAa,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;QAEjJ,wCAAwC;QACxC,eAAe,GAAG,KAAK,CAAC;QACxB,mBAAmB,GAAG,CAAC,CAAC;QACxB,eAAe,GAAG,OAAO,CAAC;QAC1B,cAAc,CAAC,MAAM,CAAC,CAAC;QAEvB,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,KAAK,CAAC,UAAU,EAAE,iBAAiB,GAAG,EAAE,CAAC,CAAC;QAC1C,eAAe,GAAG,IAAI,CAAC;QACvB,mBAAmB,EAAE,CAAC;QACtB,OAAO,SAAS,EAAE,IAAI,IAAI,IAAI,CAAC;IACjC,CAAC;AACH,CAAC;AAED,2DAA2D;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"usage-api.js","sourceRoot":"","sources":["../src/usage-api.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"usage-event.d.ts","sourceRoot":"","sources":["../src/usage-event.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAE,eAAe,EAAwB,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AA2BjJ,wBAAgB,kBAAkB,CAChC,SAAS,CAAC,EAAE,eAAe,GAAG,IAAI,EAClC,QAAQ,CAAC,EAAE,YAAY,GAAG,IAAI,EAC9B,WAAW,CAAC,EAAE,WAAW,EACzB,iBAAiB,CAAC,EAAE,qBAAqB,GAAG,IAAI,GAC/C,gBAAgB,EAAE,GAAG,SAAS,CAuBhC;AAqFD;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,uKAI/B,CAAC;AAEX;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,CAMtG;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,aAAa,EACvB,QAAQ,CAAC,EAAE,YAAY,GAAG,IAAI,EAC9B,WAAW,CAAC,EAAE,OAAO,EACrB,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,EAClC,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,EAC3B,KAAK,CAAC,EAAE,OAAO,EACf,SAAS,CAAC,EAAE,eAAe,GAAG,IAAI,EAClC,WAAW,CAAC,EAAE,WAAW,EACzB,YAAY,CAAC,EAAE,iBAAiB,EAAE,GAAG,IAAI,EACzC,iBAAiB,CAAC,EAAE,qBAAqB,GAAG,IAAI,EAChD,WAAW,CAAC,EAAE,OAAO,EACrB,0BAA0B,CAAC,EAAE,OAAO,EACpC,eAAe,CAAC,EAAE,eAAe,GAAG,IAAI,GACvC,UAAU,CA+EZ"}
1
+ {"version":3,"file":"usage-event.d.ts","sourceRoot":"","sources":["../src/usage-event.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAOtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAE,eAAe,EAAwB,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAYjJ,wBAAgB,kBAAkB,CAChC,SAAS,CAAC,EAAE,eAAe,GAAG,IAAI,EAClC,QAAQ,CAAC,EAAE,YAAY,GAAG,IAAI,EAC9B,WAAW,CAAC,EAAE,WAAW,EACzB,iBAAiB,CAAC,EAAE,qBAAqB,GAAG,IAAI,GAC/C,gBAAgB,EAAE,GAAG,SAAS,CAuBhC;AAqFD;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,uKAI/B,CAAC;AAEX;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,CAMtG;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,aAAa,EACvB,QAAQ,CAAC,EAAE,YAAY,GAAG,IAAI,EAC9B,WAAW,CAAC,EAAE,OAAO,EACrB,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,EAClC,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,EAC3B,KAAK,CAAC,EAAE,OAAO,EACf,SAAS,CAAC,EAAE,eAAe,GAAG,IAAI,EAClC,WAAW,CAAC,EAAE,WAAW,EACzB,YAAY,CAAC,EAAE,iBAAiB,EAAE,GAAG,IAAI,EACzC,iBAAiB,CAAC,EAAE,qBAAqB,GAAG,IAAI,EAChD,WAAW,CAAC,EAAE,OAAO,EACrB,0BAA0B,CAAC,EAAE,OAAO,EACpC,eAAe,CAAC,EAAE,eAAe,GAAG,IAAI,GACvC,UAAU,CA+EZ"}