@curatedmcp/tokenshield 0.3.0 → 1.0.1

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/cli.js CHANGED
@@ -13,8 +13,8 @@ import { runIntegrationsList, runIntegrationsEnable, runIntegrationsShow, runInt
13
13
  import { runTelemetry } from "./commands/telemetry.js";
14
14
  import { setOutputMode, c, dim, emit, isJson } from "./lib/ui.js";
15
15
  import { ensureNumber, runCommand, installProcessHandlers } from "./lib/errors.js";
16
+ import { VERSION } from "./version.js";
16
17
  installProcessHandlers();
17
- const VERSION = "0.3.0";
18
18
  const program = new Command();
19
19
  program
20
20
  .name("tokenshield")
@@ -65,8 +65,10 @@ program
65
65
  .option("--ledger <path>", "SQLite ledger path")
66
66
  .option("--retention-days <n>", "ledger retention in days", "7")
67
67
  .option("--daemon, -d", "run in background", false)
68
+ .option("--no-open", "don't auto-open the dashboard in your browser")
68
69
  .addHelpText("after", `\n${c.bold("Examples")}
69
- ${c.cyan("$ tokenshield up")} ${dim("# foreground, default ports")}
70
+ ${c.cyan("$ tokenshield up")} ${dim("# foreground, default ports, opens dashboard")}
71
+ ${c.cyan("$ tokenshield up --no-open")} ${dim("# foreground, skip browser auto-open")}
70
72
  ${c.cyan("$ tokenshield up --daemon")} ${dim("# background, stop with `tokenshield stop`")}
71
73
  ${c.cyan("$ tokenshield up --port 7780")} ${dim("# different proxy port")}
72
74
  ${c.cyan("$ tokenshield up --bind 0.0.0.0 --port 7777")} ${dim("# expose to LAN (trusted networks only)")}
@@ -80,6 +82,7 @@ program
80
82
  ledger: raw["ledger"] ? String(raw["ledger"]) : undefined,
81
83
  retentionDays: ensureNumber("retention-days", raw["retentionDays"], 1, 365),
82
84
  daemon: raw["daemon"] === true,
85
+ open: raw["open"] !== false,
83
86
  });
84
87
  }));
85
88
  // ── __supervise (hidden): daemon entrypoint ──────────────────────────────────
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ export interface UpOptions {
6
6
  ledger?: string;
7
7
  retentionDays: number;
8
8
  daemon: boolean;
9
+ open?: boolean;
9
10
  }
10
11
  export declare function runUp(options: UpOptions): Promise<void>;
11
12
  /**
@@ -1,11 +1,13 @@
1
1
  import { start, defaultConfig } from "@curatedmcp/tokenshield-core";
2
2
  import { dashboardHtml } from "../dashboard.js";
3
+ import { VERSION } from "../version.js";
3
4
  import { c, sym, box, link, say, emit, dim } from "../lib/ui.js";
4
5
  import { firstRunBanner, isFirstRun, markFirstRunComplete, telemetry } from "@curatedmcp/tokenshield-core";
5
6
  import { TokenShieldError } from "../lib/errors.js";
6
7
  import { requirePortFree, classifyApiKey } from "../lib/preflight.js";
7
8
  import { readDaemon, spawnDaemon } from "../lib/daemon.js";
8
9
  import { logFile } from "../lib/paths.js";
10
+ import { openBrowser } from "../lib/open-browser.js";
9
11
  function banner(config, opts) {
10
12
  const proxyUrl = `http://${config.bind}:${config.port}`;
11
13
  const dashUrl = `http://${config.bind}:${config.dashboardPort}`;
@@ -93,7 +95,7 @@ export async function runUp(options) {
93
95
  // Foreground mode
94
96
  const handle = await start({
95
97
  config,
96
- renderDashboard: () => dashboardHtml({ proxyPort: config.port, bind: config.bind }),
98
+ renderDashboard: () => dashboardHtml({ proxyPort: config.port, bind: config.bind, version: VERSION }),
97
99
  });
98
100
  emit(banner(config, { daemon: false }));
99
101
  maybeWarnAboutLocalKey();
@@ -102,6 +104,14 @@ export async function runUp(options) {
102
104
  markFirstRunComplete();
103
105
  }
104
106
  telemetry.start();
107
+ // Auto-open dashboard on first run, or whenever --open is set. Skip in
108
+ // daemon mode (handled separately), CI, or when stdout isn't a TTY.
109
+ if (options.open !== false) {
110
+ const dashUrl = `http://${config.bind === "0.0.0.0" ? "127.0.0.1" : config.bind}:${config.dashboardPort}`;
111
+ say("");
112
+ say(`${sym.arrow} Opening dashboard in your browser… ${dim("(disable with --no-open)")}`);
113
+ openBrowser(dashUrl);
114
+ }
105
115
  let shuttingDown = false;
106
116
  const shutdown = (signal) => {
107
117
  if (shuttingDown)
@@ -138,7 +148,7 @@ export async function runSupervised(options) {
138
148
  });
139
149
  const handle = await start({
140
150
  config,
141
- renderDashboard: () => dashboardHtml({ proxyPort: config.port, bind: config.bind }),
151
+ renderDashboard: () => dashboardHtml({ proxyPort: config.port, bind: config.bind, version: VERSION }),
142
152
  });
143
153
  const shutdown = async (signal) => {
144
154
  process.stderr.write(`[tokenshield] caught ${signal}, shutting down\n`);
@@ -1 +1 @@
1
- {"version":3,"file":"up.js","sourceRoot":"","sources":["../../src/commands/up.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"up.js","sourceRoot":"","sources":["../../src/commands/up.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export declare function dashboardHtml(opts: {
2
2
  proxyPort: number;
3
3
  bind: string;
4
+ version: string;
4
5
  }): string;
package/dist/dashboard.js CHANGED
@@ -1,10 +1,11 @@
1
1
  export function dashboardHtml(opts) {
2
+ const proxyBase = `http://${opts.bind}:${opts.proxyPort}`;
2
3
  return `<!doctype html>
3
4
  <html lang="en">
4
5
  <head>
5
6
  <meta charset="utf-8" />
6
7
  <meta name="viewport" content="width=device-width,initial-scale=1" />
7
- <title>TokenShield — live savings</title>
8
+ <title>TokenShield ${opts.version} — live savings</title>
8
9
  <style>
9
10
  :root {
10
11
  color-scheme: dark light;
@@ -15,6 +16,7 @@ export function dashboardHtml(opts) {
15
16
  --text: #e7e9ee;
16
17
  --muted: #8b94a3;
17
18
  --accent: #6dd3a8;
19
+ --accent-dim: rgba(109,211,168,0.15);
18
20
  --warn: #f0b35e;
19
21
  --bad: #ef6868;
20
22
  --link: #7eb8ff;
@@ -22,16 +24,35 @@ export function dashboardHtml(opts) {
22
24
  * { box-sizing: border-box }
23
25
  html, body { margin: 0; background: var(--bg); color: var(--text); font: 14px/1.5 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; }
24
26
  .wrap { max-width: 1100px; margin: 0 auto; padding: 24px; }
25
- header { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 18px; }
26
- h1 { margin: 0; font-size: 18px; letter-spacing: 0.02em; }
27
- h1 small { color: var(--muted); font-weight: 400; margin-left: 8px; }
28
- .status { font-size: 12px; color: var(--muted); }
29
- .status .dot { display: inline-block; width: 8px; height: 8px; border-radius: 999px; background: var(--accent); margin-right: 6px; vertical-align: middle; }
27
+
28
+ /* ── header ── */
29
+ header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 20px; gap: 12px; }
30
+ .brand { display: flex; align-items: baseline; gap: 10px; }
31
+ .brand-name { font-size: 18px; font-weight: 700; letter-spacing: 0.02em; color: var(--text); text-decoration: none; }
32
+ .brand-name:hover { color: var(--accent); }
33
+ .brand-by { font-size: 11px; color: var(--muted); font-weight: 400; letter-spacing: 0.02em; }
34
+ .brand-by a { color: var(--accent); text-decoration: none; font-weight: 500; }
35
+ .brand-by a:hover { text-decoration: underline; }
36
+ .brand-ver { font-size: 12px; color: var(--muted); font-weight: 400; }
37
+ .status { display: flex; align-items: center; gap: 14px; }
38
+ .status-pill { font-size: 12px; color: var(--muted); display: flex; align-items: center; gap: 6px; }
39
+ .dot { display: inline-block; width: 8px; height: 8px; border-radius: 999px; background: var(--accent); flex-shrink: 0; }
40
+ .dot.pulse { animation: pulse 2s ease-in-out infinite; }
41
+ @keyframes pulse { 0%,100% { opacity:1 } 50% { opacity:.45 } }
42
+
43
+ /* ── metric cards ── */
30
44
  .grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
31
45
  .card { background: var(--panel); border: 1px solid var(--border); border-radius: 10px; padding: 14px; }
32
46
  .card .label { font-size: 11px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--muted); }
33
47
  .card .value { font-size: 22px; font-weight: 600; margin-top: 6px; font-variant-numeric: tabular-nums; }
34
48
  .card .sub { font-size: 11px; color: var(--muted); margin-top: 4px; }
49
+
50
+ /* ── savings highlight card ── */
51
+ .card.savings { border-color: rgba(109,211,168,0.25); background: linear-gradient(135deg, var(--panel) 0%, rgba(109,211,168,0.06) 100%); }
52
+ .card.savings .value { color: var(--accent); }
53
+ .card.savings .label { color: rgba(109,211,168,0.7); }
54
+
55
+ /* ── tables ── */
35
56
  .section { margin-top: 24px; }
36
57
  .section h2 { font-size: 13px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--muted); margin: 0 0 10px; }
37
58
  table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
@@ -43,22 +64,42 @@ tr:last-child td { border-bottom: 0; }
43
64
  .pill { display: inline-block; padding: 1px 8px; border-radius: 999px; font-size: 11px; border: 1px solid var(--border); }
44
65
  .pill.ok { color: var(--accent); border-color: rgba(109,211,168,0.35); }
45
66
  .pill.err { color: var(--bad); border-color: rgba(239,104,104,0.35); }
67
+
68
+ /* ── misc ── */
46
69
  .cmd { background: var(--panel-2); border: 1px solid var(--border); border-radius: 6px; padding: 10px 12px; font-family: ui-monospace, "SF Mono", Menlo, monospace; font-size: 12px; }
47
- .footer { color: var(--muted); font-size: 12px; margin-top: 28px; padding-top: 16px; border-top: 1px solid var(--border); }
48
70
  .kbd { font-family: ui-monospace, monospace; background: var(--panel-2); border: 1px solid var(--border); border-radius: 4px; padding: 1px 5px; font-size: 11px; }
49
71
  a { color: var(--link); text-decoration: none; }
50
72
  a:hover { text-decoration: underline; }
73
+
74
+ /* ── footer ── */
75
+ .footer { margin-top: 28px; padding-top: 16px; border-top: 1px solid var(--border); display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; flex-wrap: wrap; }
76
+ .footer-privacy { color: var(--muted); font-size: 12px; flex: 1 1 400px; }
77
+ .footer-links { display: flex; align-items: center; gap: 14px; flex-shrink: 0; flex-wrap: wrap; }
78
+ .footer-links a { font-size: 12px; color: var(--muted); text-decoration: none; white-space: nowrap; }
79
+ .footer-links a:hover { color: var(--accent); text-decoration: none; }
80
+ .footer-links .sep { color: var(--border); user-select: none; }
81
+ .upgrade-link { color: var(--accent) !important; font-weight: 500; }
51
82
  </style>
52
83
  </head>
53
84
  <body>
54
85
  <div class="wrap">
86
+
55
87
  <header>
56
- <h1>TokenShield <small>v0.1 — Estimate mode</small></h1>
57
- <div class="status"><span class="dot"></span><span id="status-text">proxy live on ${opts.bind}:${opts.proxyPort}</span></div>
88
+ <div class="brand">
89
+ <a class="brand-name" href="https://www.curatedmcp.com/tokenshield" target="_blank" rel="noopener">TokenShield</a>
90
+ <span class="brand-ver">v${opts.version}</span>
91
+ <span class="brand-by">by <a href="https://www.curatedmcp.com" target="_blank" rel="noopener">CuratedMCP</a></span>
92
+ </div>
93
+ <div class="status">
94
+ <div class="status-pill">
95
+ <span class="dot pulse"></span>
96
+ <span id="status-text">proxy live · ${opts.bind}:${opts.proxyPort}</span>
97
+ </div>
98
+ </div>
58
99
  </header>
59
100
 
60
101
  <div class="grid">
61
- <div class="card">
102
+ <div class="card savings">
62
103
  <div class="label">Spent (24h)</div>
63
104
  <div class="value" id="dollars-spent">$0.00</div>
64
105
  <div class="sub" id="request-count">0 requests</div>
@@ -92,7 +133,7 @@ a:hover { text-decoration: underline; }
92
133
  <th class="num">$</th>
93
134
  </tr>
94
135
  </thead>
95
- <tbody><tr><td colspan="5" class="muted">No traffic yet. Run Claude Code with <span class="kbd">ANTHROPIC_BASE_URL=http://${opts.bind}:${opts.proxyPort}</span>.</td></tr></tbody>
136
+ <tbody><tr><td colspan="5" class="muted">No traffic yet. Run Claude Code with <span class="kbd">ANTHROPIC_BASE_URL=${proxyBase}</span>.</td></tr></tbody>
96
137
  </table>
97
138
  </div>
98
139
 
@@ -116,9 +157,19 @@ a:hover { text-decoration: underline; }
116
157
  </div>
117
158
 
118
159
  <div class="footer">
119
- Privacy: TokenShield never stores prompt content. Your Anthropic API key stays in process memory.
120
- Set <span class="cmd">export ANTHROPIC_BASE_URL=http://${opts.bind}:${opts.proxyPort}</span> in the shell you run Claude Code from.
160
+ <div class="footer-privacy">
161
+ Privacy: TokenShield never stores prompt content. Your Anthropic API key stays in process memory.
162
+ Set <span class="cmd">export ANTHROPIC_BASE_URL=${proxyBase}</span> in the shell you run Claude Code from.
163
+ </div>
164
+ <div class="footer-links">
165
+ <a href="https://www.curatedmcp.com/tokenshield" target="_blank" rel="noopener">curatedmcp.com/tokenshield</a>
166
+ <span class="sep">·</span>
167
+ <a href="https://www.curatedmcp.com/docs/tokenshield" target="_blank" rel="noopener">Docs</a>
168
+ <span class="sep">·</span>
169
+ <a href="https://www.curatedmcp.com/pricing" target="_blank" rel="noopener" class="upgrade-link">Upgrade →</a>
170
+ </div>
121
171
  </div>
172
+
122
173
  </div>
123
174
 
124
175
  <script>
@@ -133,8 +184,14 @@ async function refresh() {
133
184
  fetch('/api/summary'),
134
185
  fetch('/api/recent'),
135
186
  ]);
187
+ if (!sumRes.ok || !recRes.ok) {
188
+ throw new Error('proxy returned ' + (sumRes.ok ? recRes.status : sumRes.status));
189
+ }
136
190
  const sum = await sumRes.json();
137
191
  const rec = await recRes.json();
192
+ // Successful refresh — clear any stale error and restore the live indicator
193
+ const statusEl = document.getElementById('status-text');
194
+ if (statusEl) statusEl.textContent = 'live · ${opts.bind}:${opts.proxyPort}';
138
195
 
139
196
  document.getElementById('dollars-spent').textContent = fmtDollars(sum.dollarsRaw);
140
197
  document.getElementById('request-count').textContent = fmtNum(sum.requestCount) + ' requests';
@@ -173,7 +230,7 @@ async function refresh() {
173
230
  }).join('');
174
231
  }
175
232
  } catch (e) {
176
- document.getElementById('status-text').textContent = 'dashboard error: ' + e.message;
233
+ document.getElementById('status-text').textContent = 'error: ' + e.message;
177
234
  }
178
235
  }
179
236
 
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../src/dashboard.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,aAAa,CAAC,IAAyC;IACrE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wFAuD+E,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kIAsCe,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;6DAyBhG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAgEhF,CAAC;AACT,CAAC"}
1
+ {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../src/dashboard.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,aAAa,CAAC,IAA0D;IACtF,MAAM,SAAS,GAAG,UAAU,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;IAC1D,OAAO;;;;;qBAKY,IAAI,CAAC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAkFA,IAAI,CAAC,OAAO;;;;;;8CAMC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2HAwCkD,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;wDA0B5E,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mDAgCd,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA+CtE,CAAC;AACT,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Open a URL in the user's default browser. Cross-platform, best-effort.
3
+ * Errors are swallowed — failing to open a browser must never break the CLI.
4
+ */
5
+ export declare function openBrowser(url: string): void;
@@ -0,0 +1,44 @@
1
+ import { spawn } from "node:child_process";
2
+ /**
3
+ * Open a URL in the user's default browser. Cross-platform, best-effort.
4
+ * Errors are swallowed — failing to open a browser must never break the CLI.
5
+ */
6
+ export function openBrowser(url) {
7
+ if (process.env["TOKENSHIELD_NO_OPEN"] === "1")
8
+ return;
9
+ if (process.env["CI"] === "true")
10
+ return;
11
+ if (!process.stdout.isTTY)
12
+ return; // headless / piped output
13
+ let command;
14
+ let args;
15
+ switch (process.platform) {
16
+ case "darwin":
17
+ command = "open";
18
+ args = [url];
19
+ break;
20
+ case "win32":
21
+ command = "cmd";
22
+ args = ["/c", "start", "", url];
23
+ break;
24
+ default:
25
+ // linux / freebsd / etc. — xdg-open is the de facto standard.
26
+ command = "xdg-open";
27
+ args = [url];
28
+ break;
29
+ }
30
+ try {
31
+ const child = spawn(command, args, {
32
+ detached: true,
33
+ stdio: "ignore",
34
+ });
35
+ child.on("error", () => {
36
+ // Browser didn't open — not fatal.
37
+ });
38
+ child.unref();
39
+ }
40
+ catch {
41
+ // Spawn failed — silently move on.
42
+ }
43
+ }
44
+ //# sourceMappingURL=open-browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"open-browser.js","sourceRoot":"","sources":["../../src/lib/open-browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,KAAK,GAAG;QAAE,OAAO;IACvD,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,MAAM;QAAE,OAAO;IACzC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK;QAAE,OAAO,CAAC,0BAA0B;IAE7D,IAAI,OAAe,CAAC;IACpB,IAAI,IAAc,CAAC;IAEnB,QAAQ,OAAO,CAAC,QAAQ,EAAE,CAAC;QACzB,KAAK,QAAQ;YACX,OAAO,GAAG,MAAM,CAAC;YACjB,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;YACb,MAAM;QACR,KAAK,OAAO;YACV,OAAO,GAAG,KAAK,CAAC;YAChB,IAAI,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;YAChC,MAAM;QACR;YACE,8DAA8D;YAC9D,OAAO,GAAG,UAAU,CAAC;YACrB,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;YACb,MAAM;IACV,CAAC;IAED,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE;YACjC,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,QAAQ;SAChB,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACrB,mCAAmC;QACrC,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,mCAAmC;IACrC,CAAC;AACH,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const VERSION = "1.0.1";
@@ -0,0 +1,4 @@
1
+ // Single source of version truth for the CLI.
2
+ // Keep in sync with version.txt via: npm run sync-version
3
+ export const VERSION = "1.0.1";
4
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,0DAA0D;AAC1D,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@curatedmcp/tokenshield",
3
- "version": "0.3.0",
3
+ "version": "1.0.1",
4
4
  "description": "TokenShield CLI — cut your Claude Code bill 40–70%. Local proxy. Your API key never leaves your machine.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -32,7 +32,7 @@
32
32
  },
33
33
  "license": "MIT",
34
34
  "dependencies": {
35
- "@curatedmcp/tokenshield-core": "^0.3.0",
35
+ "@curatedmcp/tokenshield-core": "^1.0.1",
36
36
  "commander": "^12.0.0"
37
37
  },
38
38
  "devDependencies": {