token-usage-dashboard 1.0.8 → 1.0.10

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 (83) hide show
  1. package/build/client/_app/immutable/assets/0.CZ6VMqH1.css +1 -0
  2. package/build/client/_app/immutable/assets/0.CZ6VMqH1.css.br +0 -0
  3. package/build/client/_app/immutable/assets/0.CZ6VMqH1.css.gz +0 -0
  4. package/build/client/_app/immutable/assets/{2.H_IHw1Xd.css → 2.CZocdpCk.css} +1 -1
  5. package/build/client/_app/immutable/assets/2.CZocdpCk.css.br +0 -0
  6. package/build/client/_app/immutable/assets/{2.H_IHw1Xd.css.gz → 2.CZocdpCk.css.gz} +0 -0
  7. package/build/client/_app/immutable/chunks/BX77ZfNv.js +2 -0
  8. package/build/client/_app/immutable/chunks/BX77ZfNv.js.br +0 -0
  9. package/build/client/_app/immutable/chunks/BX77ZfNv.js.gz +0 -0
  10. package/build/client/_app/immutable/chunks/Dsm7b1TR.js +3 -0
  11. package/build/client/_app/immutable/chunks/Dsm7b1TR.js.br +0 -0
  12. package/build/client/_app/immutable/chunks/Dsm7b1TR.js.gz +0 -0
  13. package/build/client/_app/immutable/entry/app.ZbFPDnha.js +2 -0
  14. package/build/client/_app/immutable/entry/app.ZbFPDnha.js.br +0 -0
  15. package/build/client/_app/immutable/entry/app.ZbFPDnha.js.gz +0 -0
  16. package/build/client/_app/immutable/entry/start.BMzOzqbh.js +1 -0
  17. package/build/client/_app/immutable/entry/start.BMzOzqbh.js.br +0 -0
  18. package/build/client/_app/immutable/entry/start.BMzOzqbh.js.gz +0 -0
  19. package/build/client/_app/immutable/nodes/0.PGglbI9f.js +1 -0
  20. package/build/client/_app/immutable/nodes/0.PGglbI9f.js.br +0 -0
  21. package/build/client/_app/immutable/nodes/0.PGglbI9f.js.gz +0 -0
  22. package/build/client/_app/immutable/nodes/1.eNYaBHjQ.js +1 -0
  23. package/build/client/_app/immutable/nodes/1.eNYaBHjQ.js.br +0 -0
  24. package/build/client/_app/immutable/nodes/1.eNYaBHjQ.js.gz +0 -0
  25. package/build/client/_app/immutable/nodes/2.D9j49PHt.js +2 -0
  26. package/build/client/_app/immutable/nodes/2.D9j49PHt.js.br +0 -0
  27. package/build/client/_app/immutable/nodes/2.D9j49PHt.js.gz +0 -0
  28. package/build/client/_app/version.json +1 -1
  29. package/build/client/_app/version.json.br +0 -0
  30. package/build/client/_app/version.json.gz +0 -0
  31. package/build/handler.js +8 -8
  32. package/build/index.js +8 -8
  33. package/build/server/chunks/chunks/{client.js-glHnhIsC.js → client.js-D-QnW99V.js} +6 -6
  34. package/build/server/chunks/chunks/{exports.js-Dd48p7Ih.js → exports.js-D7S4dPRP.js} +88 -2
  35. package/build/server/chunks/chunks/{internal.js-BdicF7ID.js → internal.js-D7pDQEIA.js} +5 -4
  36. package/build/server/chunks/chunks/{queries.js-Dxe3UrcX.js → queries.js-BEdRnpMa.js} +6 -3
  37. package/build/server/chunks/chunks/{range.js-CLYFtcRE.js → range.js-CiCoLGqh.js} +42 -2
  38. package/build/server/chunks/chunks/{refresh.js-b7xuLQYO.js → refresh.js-0W7-GwaH.js} +3 -3
  39. package/build/server/chunks/chunks/{request.js-DM1A1vDP.js → request.js-BF7n7fZo.js} +3 -3
  40. package/build/server/chunks/chunks/{server.js-mTMwhapa.js → server.js-DxWEh0qK.js} +286 -260
  41. package/build/server/chunks/chunks/{shared.js-7DyfRqo3.js → shared.js-CAkvBFpL.js} +2 -2
  42. package/build/server/chunks/chunks/{utils.js-DzwqnkBT.js → utils.js-U7QVKoQm.js} +3 -3
  43. package/build/server/chunks/entries/endpoints/api/refresh/_server.ts.js-DmuUmmD4.js +21 -0
  44. package/build/server/chunks/entries/endpoints/api/settings/{_server.ts.js-B0rNclco.js → _server.ts.js-CiGFkz6L.js} +7 -7
  45. package/build/server/chunks/entries/endpoints/api/usage/_server.ts.js-GScKbdma.js +17 -0
  46. package/build/server/chunks/entries/fallbacks/{error.svelte.js-I8Q9OD25.js → error.svelte.js-Da4mOvS4.js} +7 -7
  47. package/build/server/chunks/entries/{hooks.server.js-CBWwmRPG.js → hooks.server.js-_Fcw_IVA.js} +4 -4
  48. package/build/server/chunks/entries/pages/{_page.server.ts.js-VL2asSrD.js → _page.server.ts.js-BBibcAZP.js} +3 -3
  49. package/build/server/chunks/entries/pages/{_page.svelte.js-BC6pYePg.js → _page.svelte.js-CEtKjhZt.js} +30 -30
  50. package/build/server/chunks/{handler-CawjUItz.js → handler-5jjgLxup.js} +5 -5
  51. package/build/server/chunks/{index.js-BPJAPThY.js → index.js-DZbu1XvC.js} +6 -6
  52. package/build/server/chunks/{manifest.js-C5W5WW8M.js → manifest.js-DRxtl2Jo.js} +8 -8
  53. package/build/server/chunks/nodes/{0.js-Bzngkdxl.js → 0.js-7EReDAeT.js} +3 -3
  54. package/build/server/chunks/nodes/{1.js-AsIykVGz.js → 1.js-DuQIc_6j.js} +3 -3
  55. package/build/server/chunks/nodes/{2.js-Cc9Oy00w.js → 2.js-XpTi4AUK.js} +8 -8
  56. package/package.json +1 -1
  57. package/build/client/_app/immutable/assets/0.fjR0gTLF.css +0 -1
  58. package/build/client/_app/immutable/assets/0.fjR0gTLF.css.br +0 -0
  59. package/build/client/_app/immutable/assets/0.fjR0gTLF.css.gz +0 -0
  60. package/build/client/_app/immutable/assets/2.H_IHw1Xd.css.br +0 -0
  61. package/build/client/_app/immutable/chunks/BXjBNiJM.js +0 -2
  62. package/build/client/_app/immutable/chunks/BXjBNiJM.js.br +0 -0
  63. package/build/client/_app/immutable/chunks/BXjBNiJM.js.gz +0 -0
  64. package/build/client/_app/immutable/chunks/DC6tN2WI.js +0 -3
  65. package/build/client/_app/immutable/chunks/DC6tN2WI.js.br +0 -0
  66. package/build/client/_app/immutable/chunks/DC6tN2WI.js.gz +0 -0
  67. package/build/client/_app/immutable/entry/app.CcXTuskF.js +0 -2
  68. package/build/client/_app/immutable/entry/app.CcXTuskF.js.br +0 -0
  69. package/build/client/_app/immutable/entry/app.CcXTuskF.js.gz +0 -0
  70. package/build/client/_app/immutable/entry/start.CUMv_HcC.js +0 -1
  71. package/build/client/_app/immutable/entry/start.CUMv_HcC.js.br +0 -0
  72. package/build/client/_app/immutable/entry/start.CUMv_HcC.js.gz +0 -0
  73. package/build/client/_app/immutable/nodes/0.BNwlucmP.js +0 -1
  74. package/build/client/_app/immutable/nodes/0.BNwlucmP.js.br +0 -0
  75. package/build/client/_app/immutable/nodes/0.BNwlucmP.js.gz +0 -0
  76. package/build/client/_app/immutable/nodes/1.DOwPSLRi.js +0 -1
  77. package/build/client/_app/immutable/nodes/1.DOwPSLRi.js.br +0 -0
  78. package/build/client/_app/immutable/nodes/1.DOwPSLRi.js.gz +0 -0
  79. package/build/client/_app/immutable/nodes/2.-Zwwyx4V.js +0 -2
  80. package/build/client/_app/immutable/nodes/2.-Zwwyx4V.js.br +0 -0
  81. package/build/client/_app/immutable/nodes/2.-Zwwyx4V.js.gz +0 -0
  82. package/build/server/chunks/entries/endpoints/api/refresh/_server.ts.js-DIm5mJGM.js +0 -21
  83. package/build/server/chunks/entries/endpoints/api/usage/_server.ts.js-C1OIFWsl.js +0 -17
package/build/handler.js CHANGED
@@ -2,9 +2,9 @@ import './shims.js';
2
2
  import 'node:fs';
3
3
  import 'node:path';
4
4
  import 'node:process';
5
- export { h as handler } from './server/chunks/handler-CawjUItz.js';
6
- import './server/chunks/index.js-BPJAPThY.js';
7
- import './server/chunks/manifest.js-C5W5WW8M.js';
5
+ export { h as handler } from './server/chunks/handler-5jjgLxup.js';
6
+ import './server/chunks/index.js-DZbu1XvC.js';
7
+ import './server/chunks/manifest.js-DRxtl2Jo.js';
8
8
  import './env.js';
9
9
  import 'node:buffer';
10
10
  import 'node:crypto';
@@ -12,11 +12,11 @@ import 'node:http';
12
12
  import 'node:timers';
13
13
  import 'node:querystring';
14
14
  import 'node:stream';
15
- import './server/chunks/chunks/shared.js-7DyfRqo3.js';
16
- import './server/chunks/chunks/server.js-mTMwhapa.js';
17
- import './server/chunks/chunks/utils.js-DzwqnkBT.js';
15
+ import './server/chunks/chunks/shared.js-CAkvBFpL.js';
16
+ import './server/chunks/chunks/server.js-DxWEh0qK.js';
17
+ import './server/chunks/chunks/utils.js-U7QVKoQm.js';
18
18
  import 'node:url';
19
- import './server/chunks/chunks/internal.js-BdicF7ID.js';
19
+ import './server/chunks/chunks/internal.js-D7pDQEIA.js';
20
20
  import './server/chunks/chunks/internal2.js-BlXt2rfE.js';
21
- import './server/chunks/chunks/exports.js-Dd48p7Ih.js';
21
+ import './server/chunks/chunks/exports.js-D7S4dPRP.js';
22
22
  //# sourceMappingURL=handler.js.map
package/build/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import http from 'node:http';
2
2
  import fs__default from 'node:fs';
3
3
  import process from 'node:process';
4
- import { p as polka, h as handler, f as format_listening_address } from './server/chunks/handler-CawjUItz.js';
4
+ import { p as polka, h as handler, f as format_listening_address } from './server/chunks/handler-5jjgLxup.js';
5
5
  import { env, timeout_env } from './env.js';
6
6
  import { rm } from 'node:fs/promises';
7
7
  import './shims.js';
@@ -11,14 +11,14 @@ import 'node:path';
11
11
  import 'node:timers';
12
12
  import 'node:querystring';
13
13
  import 'node:stream';
14
- import './server/chunks/chunks/shared.js-7DyfRqo3.js';
15
- import './server/chunks/chunks/server.js-mTMwhapa.js';
16
- import './server/chunks/chunks/utils.js-DzwqnkBT.js';
17
- import './server/chunks/index.js-BPJAPThY.js';
18
- import './server/chunks/chunks/internal.js-BdicF7ID.js';
14
+ import './server/chunks/chunks/shared.js-CAkvBFpL.js';
15
+ import './server/chunks/chunks/server.js-DxWEh0qK.js';
16
+ import './server/chunks/chunks/utils.js-U7QVKoQm.js';
17
+ import './server/chunks/index.js-DZbu1XvC.js';
18
+ import './server/chunks/chunks/internal.js-D7pDQEIA.js';
19
19
  import './server/chunks/chunks/internal2.js-BlXt2rfE.js';
20
- import './server/chunks/chunks/exports.js-Dd48p7Ih.js';
21
- import './server/chunks/manifest.js-C5W5WW8M.js';
20
+ import './server/chunks/chunks/exports.js-D7S4dPRP.js';
21
+ import './server/chunks/manifest.js-DRxtl2Jo.js';
22
22
  import 'node:url';
23
23
 
24
24
  const path = env('SOCKET_PATH', false);
@@ -1,8 +1,8 @@
1
- import { i as index_server_exports } from './internal.js-BdicF7ID.js';
2
- import './shared.js-7DyfRqo3.js';
3
- import './exports.js-Dd48p7Ih.js';
4
- import { a1 as noop } from './server.js-mTMwhapa.js';
5
- import './utils.js-DzwqnkBT.js';
1
+ import { i as index_server_exports } from './internal.js-D7pDQEIA.js';
2
+ import './shared.js-CAkvBFpL.js';
3
+ import './exports.js-D7S4dPRP.js';
4
+ import { a1 as noop } from './server.js-DxWEh0qK.js';
5
+ import './utils.js-U7QVKoQm.js';
6
6
 
7
7
  var is_legacy = noop.toString().includes("$$") || /function \w+\(\) \{\}/.test(noop.toString());
8
8
  var placeholder_url = "a:";
@@ -25,4 +25,4 @@ if (is_legacy) {
25
25
  /** @import { Query } from './remote-functions/query/instance.svelte.js' */
26
26
  /** @import { LiveQuery } from './remote-functions/query-live/instance.svelte.js' */
27
27
  var { onMount, tick } = index_server_exports;
28
- //# sourceMappingURL=client.js-glHnhIsC.js.map
28
+ //# sourceMappingURL=client.js-D-QnW99V.js.map
@@ -1,3 +1,5 @@
1
+ import { a1 as noop, ag as safe_not_equal } from './server.js-DxWEh0qK.js';
2
+
1
3
  var internal = new URL("sveltekit-internal://");
2
4
  /**
3
5
  * @param {string} base
@@ -112,6 +114,90 @@ function allow_nodejs_console_log(url) {
112
114
  };
113
115
  }
114
116
  //#endregion
117
+ //#region node_modules/svelte/src/store/shared/index.js
118
+ /** @import { Readable, StartStopNotifier, Subscriber, Unsubscriber, Updater, Writable } from '../public.js' */
119
+ /** @import { Stores, StoresValues, SubscribeInvalidateTuple } from '../private.js' */
120
+ /**
121
+ * @type {Array<SubscribeInvalidateTuple<any> | any>}
122
+ */
123
+ var subscriber_queue = [];
124
+ /**
125
+ * Creates a `Readable` store that allows reading by subscription.
126
+ *
127
+ * @template T
128
+ * @param {T} [value] initial value
129
+ * @param {StartStopNotifier<T>} [start]
130
+ * @returns {Readable<T>}
131
+ */
132
+ function readable(value, start) {
133
+ return { subscribe: writable(value, start).subscribe };
134
+ }
135
+ /**
136
+ * Create a `Writable` store that allows both updating and reading by subscription.
137
+ *
138
+ * @template T
139
+ * @param {T} [value] initial value
140
+ * @param {StartStopNotifier<T>} [start]
141
+ * @returns {Writable<T>}
142
+ */
143
+ function writable(value, start = noop) {
144
+ /** @type {Unsubscriber | null} */
145
+ let stop = null;
146
+ /** @type {Set<SubscribeInvalidateTuple<T>>} */
147
+ const subscribers = /* @__PURE__ */ new Set();
148
+ /**
149
+ * @param {T} new_value
150
+ * @returns {void}
151
+ */
152
+ function set(new_value) {
153
+ if (safe_not_equal(value, new_value)) {
154
+ value = new_value;
155
+ if (stop) {
156
+ const run_queue = !subscriber_queue.length;
157
+ for (const subscriber of subscribers) {
158
+ subscriber[1]();
159
+ subscriber_queue.push(subscriber, value);
160
+ }
161
+ if (run_queue) {
162
+ for (let i = 0; i < subscriber_queue.length; i += 2) subscriber_queue[i][0](subscriber_queue[i + 1]);
163
+ subscriber_queue.length = 0;
164
+ }
165
+ }
166
+ }
167
+ }
168
+ /**
169
+ * @param {Updater<T>} fn
170
+ * @returns {void}
171
+ */
172
+ function update(fn) {
173
+ set(fn(value));
174
+ }
175
+ /**
176
+ * @param {Subscriber<T>} run
177
+ * @param {() => void} [invalidate]
178
+ * @returns {Unsubscriber}
179
+ */
180
+ function subscribe(run, invalidate = noop) {
181
+ /** @type {SubscribeInvalidateTuple<T>} */
182
+ const subscriber = [run, invalidate];
183
+ subscribers.add(subscriber);
184
+ if (subscribers.size === 1) stop = start(set, update) || noop;
185
+ run(value);
186
+ return () => {
187
+ subscribers.delete(subscriber);
188
+ if (subscribers.size === 0 && stop) {
189
+ stop();
190
+ stop = null;
191
+ }
192
+ };
193
+ }
194
+ return {
195
+ set,
196
+ update,
197
+ subscribe
198
+ };
199
+ }
200
+ //#endregion
115
201
  //#region node_modules/@sveltejs/kit/src/utils/hash.js
116
202
  /**
117
203
  * Hash using djb2
@@ -259,5 +345,5 @@ var validate_page_exports = validator(valid_page_exports);
259
345
  var validate_layout_server_exports = validator(valid_layout_server_exports);
260
346
  var validate_page_server_exports = validator(valid_page_server_exports);
261
347
 
262
- export { disable_search as a, validate_layout_exports as b, validate_page_server_exports as c, decode_pathname as d, validate_page_exports as e, find_route as f, hash as h, make_trackable as m, normalize_path as n, resolve as r, validate_layout_server_exports as v };
263
- //# sourceMappingURL=exports.js-Dd48p7Ih.js.map
348
+ export { disable_search as a, validate_layout_exports as b, validate_page_server_exports as c, decode_pathname as d, validate_page_exports as e, find_route as f, readable as g, hash as h, make_trackable as m, normalize_path as n, resolve as r, validate_layout_server_exports as v, writable as w };
349
+ //# sourceMappingURL=exports.js-D7S4dPRP.js.map
@@ -1,4 +1,4 @@
1
- import { r as render, s as set, L as LEGACY_PROPS, g as get, f as flushSync, d as define_property, m as mutable_source, i as init_operations, a as get_first_child, b as get_next_sibling, H as HYDRATION_ERROR, c as set_hydrating, e as set_hydrate_node, h as hydration_failed, j as clear_text_content, k as component_root, l as hydrate_node, n as create_text, o as array_from, p as is_passive_event, q as set_active_reaction, t as set_active_effect, u as active_reaction, v as active_effect, w as setContext, x as hydrating, y as block, z as branch, A as queue_micro_task, B as invoke_error_boundary, C as current_batch, D as pause_effect, E as move_effect, F as defer_effect, G as set_component_context, I as Batch, J as component_context, K as internal_set, M as destroy_effect, N as next, O as skip_nodes, P as derived, Q as effect_tracking, R as render_effect, S as svelte_boundary_reset_noop, T as svelte_boundary_reset_onerror, U as source, V as untrack, W as increment, X as hydrate_next, Y as push$1, Z as mark_as_component, _ as hydration_mismatch, $ as pop$1, a0 as run, a1 as noop, a2 as hasContext, a3 as getContext, a4 as getAllContexts, a5 as createContext, a6 as ssr_context, a7 as lifecycle_function_unavailable, a8 as EFFECT_TRANSPARENT, a9 as EFFECT_PRESERVED, aa as experimental_async_required, ab as get_render_context, ac as uneval, ad as hydratable_serialization_failed } from './server.js-mTMwhapa.js';
1
+ import { r as render, s as set, L as LEGACY_PROPS, g as get, f as flushSync, d as define_property, m as mutable_source, i as init_operations, a as get_first_child, b as get_next_sibling, H as HYDRATION_ERROR, c as set_hydrating, e as set_hydrate_node, h as hydration_failed, j as clear_text_content, k as component_root, l as hydrate_node, n as create_text, o as array_from, p as is_passive_event, q as set_active_reaction, t as set_active_effect, u as active_reaction, v as active_effect, w as setContext, x as hydrating, y as block, z as branch, A as queue_micro_task, B as invoke_error_boundary, C as current_batch, D as pause_effect, E as move_effect, F as defer_effect, G as set_component_context, I as Batch, J as component_context, K as internal_set, M as destroy_effect, N as next, O as skip_nodes, P as derived, Q as effect_tracking, R as render_effect, S as svelte_boundary_reset_noop, T as svelte_boundary_reset_onerror, U as source, V as untrack, W as increment, X as hydrate_next, Y as push$1, Z as mark_as_component, _ as hydration_mismatch, $ as pop$1, a0 as run, a1 as noop, a2 as hasContext, a3 as getContext, a4 as getAllContexts, a5 as createContext, a6 as ssr_context, a7 as lifecycle_function_unavailable, a8 as EFFECT_TRANSPARENT, a9 as EFFECT_PRESERVED, aa as experimental_async_required, ab as get_render_context, ac as uneval, ad as hydratable_serialization_failed } from './server.js-DxWEh0qK.js';
2
2
 
3
3
  //#region \0rolldown/runtime.js
4
4
  var __defProp = Object.defineProperty;
@@ -986,6 +986,7 @@ function encode(key, value, unresolved) {
986
986
  const p = value.then((v) => {
987
987
  entry.serialized = entry.serialized.replace(placeholder, () => `r(${uneval(v)})`);
988
988
  }).catch((devalue_error) => hydratable_serialization_failed(key, serialization_stack(entry.stack, devalue_error?.stack)));
989
+ unresolved?.set(p, key);
989
990
  p.catch(() => {}).finally(() => unresolved?.delete(p));
990
991
  (entry.promises ??= []).push(p);
991
992
  return placeholder;
@@ -1175,7 +1176,7 @@ var options = {
1175
1176
  app: ({ head, body, assets, nonce, env }) => "<!doctype html>\n<html lang=\"en\" data-theme=\"%aiusage.theme%\">\n <head>\n <meta charset=\"utf-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n <meta name=\"color-scheme\" content=\"light dark\" />\n <meta\n name=\"description\"\n content=\"Every token your AI coding tools have spent, from the transcripts already on your machine.\"\n />\n <meta name=\"robots\" content=\"noindex\" />\n <link rel=\"icon\" href=\"" + assets + "/favicon.svg\" type=\"image/svg+xml\" />\n " + head + "\n </head>\n <body data-sveltekit-preload-data=\"hover\">\n <div style=\"display: contents\">" + body + "</div>\n </body>\n</html>\n",
1176
1177
  error: error_template_default
1177
1178
  },
1178
- version_hash: "3iromp"
1179
+ version_hash: "1ea0oov"
1179
1180
  };
1180
1181
  async function get_hooks() {
1181
1182
  let handle;
@@ -1183,7 +1184,7 @@ async function get_hooks() {
1183
1184
  let handleError;
1184
1185
  let handleValidationError;
1185
1186
  let init;
1186
- ({handle, handleFetch, handleError, handleValidationError, init} = await import('../entries/hooks.server.js-CBWwmRPG.js'));
1187
+ ({handle, handleFetch, handleError, handleValidationError, init} = await import('../entries/hooks.server.js-_Fcw_IVA.js'));
1187
1188
  let reroute;
1188
1189
  let transport;
1189
1190
  return {
@@ -1198,4 +1199,4 @@ async function get_hooks() {
1198
1199
  }
1199
1200
 
1200
1201
  export { set_public_env as a, set_read_implementation as b, get_hooks as g, index_server_exports as i, options as o, public_env as p, read_implementation as r, set_private_env as s };
1201
- //# sourceMappingURL=internal.js-BdicF7ID.js.map
1202
+ //# sourceMappingURL=internal.js-D7pDQEIA.js.map
@@ -1,4 +1,4 @@
1
- import { t as totalOf, c as costOf } from './range.js-CLYFtcRE.js';
1
+ import { T as THEMES, t as totalOf, c as costOf } from './range.js-CiCoLGqh.js';
2
2
  import { readFile, readdir, stat } from 'node:fs/promises';
3
3
  import { dirname, join, basename } from 'node:path';
4
4
  import { DatabaseSync } from 'node:sqlite';
@@ -436,6 +436,7 @@ var DEFAULTS = {
436
436
  prices: {},
437
437
  hiddenColumns: []
438
438
  };
439
+ var knownTheme = (value) => THEMES.find((theme) => theme.id === value)?.id ?? "auto";
439
440
  var cached = null;
440
441
  function settings() {
441
442
  if (cached) return cached;
@@ -447,7 +448,8 @@ function settings() {
447
448
  }
448
449
  cached = {
449
450
  ...DEFAULTS,
450
- ...stored
451
+ ...stored,
452
+ theme: knownTheme(stored.theme)
451
453
  };
452
454
  return cached;
453
455
  }
@@ -456,6 +458,7 @@ function saveSettings(patch) {
456
458
  ...settings(),
457
459
  ...patch
458
460
  };
461
+ next.theme = knownTheme(next.theme);
459
462
  writeMeta("settings", JSON.stringify(next));
460
463
  cached = next;
461
464
  return next;
@@ -723,4 +726,4 @@ function rollup(filters) {
723
726
  }
724
727
 
725
728
  export { scan as a, db as b, resolve as c, describe as d, config as e, saveSettings as f, clearUsageMemo as g, report as r, settings as s, usage as u };
726
- //# sourceMappingURL=queries.js-Dxe3UrcX.js.map
729
+ //# sourceMappingURL=queries.js-BEdRnpMa.js.map
@@ -1,3 +1,43 @@
1
+ //#region src/lib/themes.ts
2
+ var THEMES = [
3
+ {
4
+ id: "auto",
5
+ label: "Match the system"
6
+ },
7
+ {
8
+ id: "light",
9
+ label: "Light"
10
+ },
11
+ {
12
+ id: "dark",
13
+ label: "Dark"
14
+ },
15
+ {
16
+ id: "dracula",
17
+ label: "Dracula"
18
+ },
19
+ {
20
+ id: "catppuccin",
21
+ label: "Catppuccin Mocha"
22
+ },
23
+ {
24
+ id: "tokyo-night",
25
+ label: "Tokyo Night"
26
+ },
27
+ {
28
+ id: "nord",
29
+ label: "Nord"
30
+ },
31
+ {
32
+ id: "gruvbox",
33
+ label: "Gruvbox dark"
34
+ },
35
+ {
36
+ id: "solarized",
37
+ label: "Solarized dark"
38
+ }
39
+ ];
40
+ //#endregion
1
41
  //#region src/lib/pricing.ts
2
42
  /** Dollars per million. Anthropic bills cache reads at a tenth and 5m writes at 1.25x. */
3
43
  var anthropic = (input, output) => ({
@@ -113,5 +153,5 @@ function resolveRange(id, now = Date.now()) {
113
153
  };
114
154
  }
115
155
 
116
- export { RANGES as R, rangeLabel as a, RATES as b, costOf as c, resolveRange as r, totalOf as t };
117
- //# sourceMappingURL=range.js-CLYFtcRE.js.map
156
+ export { RANGES as R, THEMES as T, rangeLabel as a, RATES as b, costOf as c, resolveRange as r, totalOf as t };
157
+ //# sourceMappingURL=range.js-CiCoLGqh.js.map
@@ -1,5 +1,5 @@
1
- import { s as settings, a as scan, r as report, d as describe, b as db, c as resolve, u as usage, e as config } from './queries.js-Dxe3UrcX.js';
2
- import { r as resolveRange } from './range.js-CLYFtcRE.js';
1
+ import { s as settings, a as scan, r as report, d as describe, b as db, c as resolve, u as usage, e as config } from './queries.js-BEdRnpMa.js';
2
+ import { r as resolveRange } from './range.js-CiCoLGqh.js';
3
3
  import { readFile } from 'node:fs/promises';
4
4
  import { join } from 'node:path';
5
5
 
@@ -104,4 +104,4 @@ function boot() {
104
104
  }
105
105
 
106
106
  export { boot as b, refresh as r };
107
- //# sourceMappingURL=refresh.js-b7xuLQYO.js.map
107
+ //# sourceMappingURL=refresh.js-0W7-GwaH.js.map
@@ -1,5 +1,5 @@
1
- import { s as settings } from './queries.js-Dxe3UrcX.js';
2
- import { r as resolveRange } from './range.js-CLYFtcRE.js';
1
+ import { s as settings } from './queries.js-BEdRnpMa.js';
2
+ import { r as resolveRange } from './range.js-CiCoLGqh.js';
3
3
 
4
4
  //#region src/lib/server/request.ts
5
5
  function filtersFrom(url) {
@@ -17,4 +17,4 @@ function filtersFrom(url) {
17
17
  }
18
18
 
19
19
  export { filtersFrom as f };
20
- //# sourceMappingURL=request.js-DM1A1vDP.js.map
20
+ //# sourceMappingURL=request.js-BF7n7fZo.js.map