@baizor/cc-switch 0.1.7 → 0.1.9

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/README.md CHANGED
@@ -103,6 +103,12 @@ CC_SWITCH_CREDENTIALS_PATH=
103
103
 
104
104
  `env` mode writes the active token into cc-switch managed environment files and uses `setx` on Windows for new shells. `credentials-file` mode is experimental and writes a guarded JSON credentials file only when explicitly enabled.
105
105
 
106
+ A `claude setup-token` token carries no refresh token, and `CLAUDE_CODE_OAUTH_TOKEN` takes priority over `~/.claude/.credentials.json`. So when a token added to `env` mode expires, every new Claude Code session fails with `401 OAuth access token has expired` and `/login` does not help while the variable is still set: it overrides the freshly refreshed credentials file. Recover by clearing the user-level variable, then either issue a new token with `claude setup-token` or use `credentials-file` mode, which switches refreshable credentials.
107
+
108
+ ```powershell
109
+ [Environment]::SetEnvironmentVariable('CLAUDE_CODE_OAUTH_TOKEN', $null, 'User')
110
+ ```
111
+
106
112
  ### Experimental Ongoing-Session Switching
107
113
 
108
114
  `CLAUDE_CODE_OAUTH_TOKEN` is the documented switching path, but already-running Claude Code sessions may not reload environment variables. For experiments, `credentials-file` mode can switch the full Claude Code `/login` profile stored in `~/.claude/.credentials.json`.
package/dist/index.js CHANGED
@@ -17,7 +17,7 @@ const program = new Command();
17
17
  program
18
18
  .name("cc-switch")
19
19
  .description("Manage multiple Claude Code subscription OAuth tokens")
20
- .version("0.1.5")
20
+ .version("0.1.9")
21
21
  .option("--config <path>", "Path to cc-switch .env config");
22
22
  program.action(async () => {
23
23
  await dashboard(program.opts().config);
package/dist/state.d.ts CHANGED
@@ -1,6 +1,16 @@
1
1
  import type { AppState, QuotaSnapshot, ServiceStatusCache, SwitchHistoryEntry } from "./types.js";
2
2
  export declare function emptyState(): AppState;
3
+ export declare function backupStatePath(statePath: string): string;
4
+ export type StateSource = "file" | "backup" | "empty";
5
+ export interface StateLoadResult {
6
+ state: AppState;
7
+ source: StateSource;
8
+ /** Set when the live state file existed but could not be read or parsed. */
9
+ error?: string;
10
+ }
3
11
  export declare function loadState(statePath: string): AppState;
12
+ export declare function loadStateResult(statePath: string): StateLoadResult;
13
+ export declare function normalizeState(parsed: unknown): AppState;
4
14
  export declare function saveState(statePath: string, state: AppState): void;
5
15
  export declare function recordSnapshot(state: AppState, snapshot: QuotaSnapshot): AppState;
6
16
  export declare function recordSwitch(state: AppState, entry: SwitchHistoryEntry): AppState;
package/dist/state.js CHANGED
@@ -1,5 +1,15 @@
1
1
  import fs from "node:fs";
2
2
  import path from "node:path";
3
+ // Several processes write this file: the background monitor, every dashboard
4
+ // action, and `collect-status-line`, which Claude Code runs on every status
5
+ // line render in every open session. Writes are therefore published with a
6
+ // temp file plus rename so a reader never observes a half-written file, and
7
+ // reads tolerate a file left truncated by an older writer.
8
+ const REPLACE_ATTEMPTS = 5;
9
+ const REPLACE_BACKOFF_MS = 20;
10
+ const READ_ATTEMPTS = 3;
11
+ const READ_BACKOFF_MS = 10;
12
+ let tempCounter = 0;
3
13
  export function emptyState() {
4
14
  return {
5
15
  activeTokenIndex: null,
@@ -11,22 +21,62 @@ export function emptyState() {
11
21
  credentialProfiles: {}
12
22
  };
13
23
  }
24
+ export function backupStatePath(statePath) {
25
+ return `${statePath}.bak`;
26
+ }
14
27
  export function loadState(statePath) {
15
- if (!fs.existsSync(statePath))
16
- return emptyState();
17
- const parsed = JSON.parse(fs.readFileSync(statePath, "utf8"));
28
+ return loadStateResult(statePath).state;
29
+ }
30
+ // Never throws: an unreadable state file degrades to the last known-good backup
31
+ // and finally to a fresh empty state. Callers include timers and the status
32
+ // line, where a thrown SyntaxError would take the whole process down.
33
+ export function loadStateResult(statePath) {
34
+ const primary = readStateFile(statePath, READ_ATTEMPTS);
35
+ if (primary.kind === "ok")
36
+ return { state: normalizeState(primary.value), source: "file" };
37
+ if (primary.kind === "missing")
38
+ return { state: emptyState(), source: "empty" };
39
+ const backup = readStateFile(backupStatePath(statePath), 1);
40
+ if (backup.kind === "ok") {
41
+ return { state: normalizeState(backup.value), source: "backup", error: primary.error };
42
+ }
43
+ return { state: emptyState(), source: "empty", error: primary.error };
44
+ }
45
+ // Accepts anything JSON.parse produced and fills in every field the rest of the
46
+ // app assumes exists, so a partially written or hand-edited file still loads.
47
+ export function normalizeState(parsed) {
48
+ const base = emptyState();
49
+ if (!isPlainObject(parsed))
50
+ return base;
51
+ const value = parsed;
18
52
  return {
19
- ...emptyState(),
20
- ...parsed,
21
- snapshots: parsed.snapshots || {},
22
- switchHistory: parsed.switchHistory || [],
23
- statusLine: parsed.statusLine || { installed: false },
24
- credentialProfiles: parsed.credentialProfiles || {}
53
+ ...base,
54
+ ...value,
55
+ activeTokenIndex: typeof value.activeTokenIndex === "number" ? value.activeTokenIndex : null,
56
+ snapshots: isPlainObject(value.snapshots) ? value.snapshots : {},
57
+ switchHistory: Array.isArray(value.switchHistory) ? value.switchHistory : [],
58
+ statusLine: isPlainObject(value.statusLine) ? value.statusLine : { installed: false },
59
+ credentialProfiles: isPlainObject(value.credentialProfiles) ? value.credentialProfiles : {}
25
60
  };
26
61
  }
27
62
  export function saveState(statePath, state) {
28
63
  fs.mkdirSync(path.dirname(statePath), { recursive: true });
29
- fs.writeFileSync(statePath, `${JSON.stringify(state, null, 2)}\n`, { encoding: "utf8", mode: 0o600 });
64
+ const payload = `${JSON.stringify(state, null, 2)}\n`;
65
+ const tempPath = `${statePath}.${process.pid}.${(tempCounter += 1)}.tmp`;
66
+ try {
67
+ writeFileSynced(tempPath, payload);
68
+ backupCurrentState(statePath);
69
+ replaceFile(tempPath, statePath);
70
+ }
71
+ catch (error) {
72
+ try {
73
+ fs.rmSync(tempPath, { force: true });
74
+ }
75
+ catch {
76
+ // Best-effort cleanup; the temp name is unique per process and write.
77
+ }
78
+ throw error;
79
+ }
30
80
  try {
31
81
  fs.chmodSync(statePath, 0o600);
32
82
  }
@@ -76,4 +126,86 @@ function mergeWindow(existing, next) {
76
126
  resetsAt: next.resetsAt ?? existing.resetsAt
77
127
  };
78
128
  }
129
+ function readStateFile(filePath, attempts) {
130
+ let lastError = `${filePath} could not be read`;
131
+ for (let attempt = 0; attempt < attempts; attempt += 1) {
132
+ // A writer running older code truncates in place, so a corrupt read may be
133
+ // a momentary window rather than real damage. Give it a moment to settle.
134
+ if (attempt > 0)
135
+ sleepSync(READ_BACKOFF_MS);
136
+ let text;
137
+ try {
138
+ text = fs.readFileSync(filePath, "utf8");
139
+ }
140
+ catch (error) {
141
+ if (error.code === "ENOENT")
142
+ return { kind: "missing" };
143
+ lastError = errorText(error);
144
+ continue;
145
+ }
146
+ if (!text.trim()) {
147
+ lastError = `${filePath} is empty`;
148
+ continue;
149
+ }
150
+ try {
151
+ return { kind: "ok", value: JSON.parse(text) };
152
+ }
153
+ catch (error) {
154
+ lastError = `${filePath} is not valid JSON: ${errorText(error)}`;
155
+ }
156
+ }
157
+ return { kind: "corrupt", error: lastError };
158
+ }
159
+ function backupCurrentState(statePath) {
160
+ // Only a parseable file is worth keeping, otherwise a corrupt primary would
161
+ // overwrite the copy that recovery depends on.
162
+ if (readStateFile(statePath, 1).kind !== "ok")
163
+ return;
164
+ try {
165
+ fs.copyFileSync(statePath, backupStatePath(statePath));
166
+ fs.chmodSync(backupStatePath(statePath), 0o600);
167
+ }
168
+ catch {
169
+ // Best-effort: losing the backup must not fail the save.
170
+ }
171
+ }
172
+ function writeFileSynced(filePath, payload) {
173
+ const handle = fs.openSync(filePath, "w", 0o600);
174
+ try {
175
+ fs.writeFileSync(handle, payload, "utf8");
176
+ // Flush before the rename so a power loss cannot publish an empty file.
177
+ fs.fsyncSync(handle);
178
+ }
179
+ finally {
180
+ fs.closeSync(handle);
181
+ }
182
+ }
183
+ function replaceFile(tempPath, targetPath) {
184
+ let lastError;
185
+ for (let attempt = 0; attempt < REPLACE_ATTEMPTS; attempt += 1) {
186
+ try {
187
+ fs.renameSync(tempPath, targetPath);
188
+ return;
189
+ }
190
+ catch (error) {
191
+ lastError = error;
192
+ const code = error.code;
193
+ // Windows refuses the replace while another process holds the target
194
+ // open (a reader, an indexer, antivirus). Those clear in milliseconds.
195
+ if (code !== "EPERM" && code !== "EACCES" && code !== "EBUSY")
196
+ throw error;
197
+ sleepSync(REPLACE_BACKOFF_MS * (attempt + 1));
198
+ }
199
+ }
200
+ throw lastError;
201
+ }
202
+ function isPlainObject(value) {
203
+ return Boolean(value) && typeof value === "object" && !Array.isArray(value);
204
+ }
205
+ function errorText(error) {
206
+ return error instanceof Error ? error.message : String(error);
207
+ }
208
+ function sleepSync(ms) {
209
+ Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, ms);
210
+ }
79
211
  //# sourceMappingURL=state.js.map
package/dist/state.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"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"}
package/dist/tui.d.ts CHANGED
@@ -1,7 +1,13 @@
1
- import type { AppConfig } from "./types.js";
1
+ import type { AppConfig, AppState } from "./types.js";
2
+ import { type DashboardAction } from "./openTuiDashboard.js";
2
3
  export declare function dashboard(configPath?: string): Promise<void>;
4
+ export declare function classicFrame(config: AppConfig, state: AppState, service: {
5
+ installed: boolean;
6
+ running: boolean;
7
+ }, selected: number, secondsLeft: number, fallbackReason?: string): string;
8
+ export declare function runClassicDashboard(config: AppConfig, initialState: AppState, fallbackReason?: string): Promise<DashboardAction>;
3
9
  export declare function configScreen(configPath?: string): Promise<void>;
4
10
  export declare function addTokenScreen(configPath?: string): Promise<void>;
5
11
  export declare function removeTokenScreen(configPath?: string): Promise<void>;
6
12
  export declare function switchScreen(configPath?: string): Promise<void>;
7
- export declare function renderDashboard(config: AppConfig, state?: import("./types.js").AppState, fallbackReason?: string): void;
13
+ export declare function renderDashboard(config: AppConfig, state?: AppState, fallbackReason?: string): void;
package/dist/tui.js CHANGED
@@ -1,3 +1,4 @@
1
+ import readline from "node:readline";
1
2
  import { confirm, input, number, password, select } from "@inquirer/prompts";
2
3
  import chalk from "chalk";
3
4
  import { addToken, readConfig, removeToken, validateConfig, writeConfig } from "./config.js";
@@ -48,22 +49,155 @@ async function chooseDashboardAction(config, state) {
48
49
  fallbackReason = error instanceof Error ? error.message : String(error);
49
50
  }
50
51
  }
52
+ if (process.stdout.isTTY && process.stdin.isTTY) {
53
+ return runClassicDashboard(config, state, fallbackReason);
54
+ }
51
55
  renderDashboard(config, state, fallbackReason);
52
56
  return select({
53
57
  message: "Command",
54
- choices: [
55
- { name: "Configure thresholds, labels, and service behavior", value: "config" },
56
- { name: "Add subscription token (get one with `claude setup-token`)", value: "add" },
57
- { name: "Remove subscription token", value: "remove" },
58
- { name: "Switch active subscription now", value: "switch" },
59
- {
60
- name: state.serviceStatusCache?.installed ? "Uninstall background service" : "Install background service",
61
- value: state.serviceStatusCache?.installed ? "uninstall-service" : "install-service"
62
- },
63
- { name: "Refresh dashboard", value: "refresh" },
64
- { name: "Show recent logs", value: "logs" },
65
- { name: "Quit", value: "quit" }
66
- ]
58
+ choices: classicMenu(Boolean(state.serviceStatusCache?.installed))
59
+ });
60
+ }
61
+ function classicMenu(serviceInstalled) {
62
+ return [
63
+ { name: "Configure thresholds, labels, and service behavior", value: "config" },
64
+ { name: "Add subscription token (get one with `claude setup-token`)", value: "add" },
65
+ { name: "Remove subscription token", value: "remove" },
66
+ { name: "Switch active subscription now", value: "switch" },
67
+ {
68
+ name: serviceInstalled ? "Uninstall background service" : "Install background service",
69
+ value: serviceInstalled ? "uninstall-service" : "install-service"
70
+ },
71
+ { name: "Refresh dashboard now", value: "refresh" },
72
+ { name: "Show recent logs", value: "logs" },
73
+ { name: "Quit", value: "quit" }
74
+ ];
75
+ }
76
+ // Pure renderer for the classic interactive dashboard: dashboard boxes, the
77
+ // arrow-key menu with the current selection highlighted, and the auto-refresh
78
+ // countdown line. Exported so its layout can be unit-tested.
79
+ export function classicFrame(config, state, service, selected, secondsLeft, fallbackReason) {
80
+ const items = classicMenu(Boolean(service.installed));
81
+ const menuLines = items.map((item, index) => {
82
+ const pointer = index === selected ? frame("❯ ") : " ";
83
+ const label = index === selected ? chalk.bold(item.name) : item.name;
84
+ return `${pointer}${label}`;
85
+ });
86
+ const help = chalk.gray("↑/↓ move · enter select · r refresh now · q quit");
87
+ const countdown = frame(`⟳ auto-refresh in ${Math.max(0, secondsLeft)}s`);
88
+ return [
89
+ composeDashboard(config, state, fallbackReason, service),
90
+ "",
91
+ box("COMMANDS", menuLines, 96),
92
+ `${countdown} ${help}`
93
+ ].join("\n");
94
+ }
95
+ // Interactive classic dashboard used when the OpenTUI renderer is unavailable
96
+ // (e.g. Node < 26.4). Renders the boxes, an arrow-key menu, and a live countdown
97
+ // that reloads telemetry from disk automatically on the configured poll interval.
98
+ export function runClassicDashboard(config, initialState, fallbackReason) {
99
+ const intervalSeconds = Math.max(5, config.pollSeconds);
100
+ return new Promise((resolve) => {
101
+ let state = initialState;
102
+ // Probe the service once; reuse the cached status on every repaint so the
103
+ // per-second redraw never spawns a status-check process.
104
+ let service = state.serviceStatusCache || serviceStatus();
105
+ let selected = 0;
106
+ let secondsLeft = intervalSeconds;
107
+ let settled = false;
108
+ let refreshError;
109
+ const menu = () => classicMenu(Boolean(service.installed));
110
+ const paint = () => {
111
+ const content = classicFrame(config, state, service, selected, secondsLeft, refreshError || fallbackReason);
112
+ // Cursor home, overwrite each line and clear to end-of-line, then clear any
113
+ // leftover rows below. Avoids the flicker of a full clear on every tick.
114
+ const frameOut = `\x1b[H${content.split("\n").map((line) => `${line}\x1b[K`).join("\n")}\x1b[0J`;
115
+ process.stdout.write(frameOut);
116
+ };
117
+ const refreshNow = () => {
118
+ try {
119
+ state = loadState(config.statePath);
120
+ // Pick up a fresh service status cache if the background service wrote one.
121
+ service = state.serviceStatusCache || service;
122
+ refreshError = undefined;
123
+ }
124
+ catch (error) {
125
+ // Another process may be rewriting the state file right now. Keep the
126
+ // last good frame on screen instead of taking the dashboard down.
127
+ refreshError = `State reload failed: ${error instanceof Error ? error.message : String(error)}`;
128
+ }
129
+ selected = Math.min(selected, menu().length - 1);
130
+ secondsLeft = intervalSeconds;
131
+ paint();
132
+ };
133
+ const cleanup = () => {
134
+ if (settled)
135
+ return;
136
+ settled = true;
137
+ clearInterval(ticker);
138
+ process.stdin.removeListener("keypress", onKey);
139
+ if (process.stdin.isTTY)
140
+ process.stdin.setRawMode(false);
141
+ process.stdout.write("\x1b[?25h\n"); // restore cursor
142
+ };
143
+ const onKey = (_str, key) => {
144
+ if (settled || !key)
145
+ return;
146
+ const items = menu();
147
+ if (key.ctrl && key.name === "c") {
148
+ cleanup();
149
+ resolve("quit");
150
+ }
151
+ else if (key.name === "up" || key.name === "k") {
152
+ selected = (selected - 1 + items.length) % items.length;
153
+ paint();
154
+ }
155
+ else if (key.name === "down" || key.name === "j") {
156
+ selected = (selected + 1) % items.length;
157
+ paint();
158
+ }
159
+ else if (key.name === "r") {
160
+ refreshNow();
161
+ }
162
+ else if (key.name === "q" || key.name === "escape") {
163
+ cleanup();
164
+ resolve("quit");
165
+ }
166
+ else if (key.name === "return" || key.name === "enter") {
167
+ const action = items[selected]?.value ?? "quit";
168
+ if (action === "refresh") {
169
+ refreshNow();
170
+ }
171
+ else {
172
+ cleanup();
173
+ resolve(action);
174
+ }
175
+ }
176
+ };
177
+ const ticker = setInterval(() => {
178
+ if (settled)
179
+ return;
180
+ try {
181
+ secondsLeft -= 1;
182
+ if (secondsLeft <= 0) {
183
+ refreshNow();
184
+ }
185
+ else {
186
+ paint();
187
+ }
188
+ }
189
+ catch {
190
+ // An exception thrown from a timer is uncatchable by the caller and
191
+ // aborts the process, so a bad tick is dropped rather than propagated.
192
+ }
193
+ }, 1000);
194
+ readline.emitKeypressEvents(process.stdin);
195
+ if (process.stdin.isTTY)
196
+ process.stdin.setRawMode(true);
197
+ process.stdin.resume();
198
+ process.stdin.on("keypress", onKey);
199
+ process.stdout.write("\x1b[2J\x1b[?25l"); // clear screen, hide cursor
200
+ paint();
67
201
  });
68
202
  }
69
203
  export async function configScreen(configPath) {
@@ -260,17 +394,20 @@ export async function switchScreen(configPath) {
260
394
  }
261
395
  export function renderDashboard(config, state = loadState(config.statePath), fallbackReason) {
262
396
  console.clear();
263
- const service = state.serviceStatusCache || serviceStatus();
397
+ console.log(composeDashboard(config, state, fallbackReason));
398
+ }
399
+ function composeDashboard(config, state, fallbackReason, service = state.serviceStatusCache || serviceStatus()) {
264
400
  const decision = decideSwitch(config, state);
265
401
  const views = tokenViews(config, state);
266
- console.log(box("CC-SWITCH / CLAUDE CODE TOKEN ROUTER", [
402
+ const sections = [];
403
+ sections.push(box("CC-SWITCH / CLAUDE CODE TOKEN ROUTER", [
267
404
  `${chalk.cyan("Config")} ${config.configPath}`,
268
405
  `${chalk.cyan("State ")} ${config.statePath}`,
269
406
  `${chalk.cyan("Mode ")} ${config.switchingMode} ${chalk.cyan("Poll")} ${config.pollSeconds}s ${chalk.cyan("Tokens")} ${config.tokens.length}`,
270
407
  `${chalk.cyan("Service")} ${service.installed ? chalk.green("installed") : chalk.yellow("not installed")} / ${service.running ? chalk.green("running") : chalk.gray("stopped")} ${chalk.cyan("Status line")} ${state.statusLine.installed ? chalk.green("installed") : chalk.gray("not installed")}`
271
408
  ], 96));
272
409
  if (fallbackReason) {
273
- console.log(box("OPENTUI UNAVAILABLE", [
410
+ sections.push(box("OPENTUI UNAVAILABLE", [
274
411
  fallbackReason,
275
412
  `Runtime: Node ${process.version}`,
276
413
  "OpenTUI native rendering currently needs Node 26.4+ with --experimental-ffi.",
@@ -278,23 +415,24 @@ export function renderDashboard(config, state = loadState(config.statePath), fal
278
415
  ], 96));
279
416
  }
280
417
  if (!views.length) {
281
- console.log(box("NO SUBSCRIPTIONS CONFIGURED", [
418
+ sections.push(box("NO SUBSCRIPTIONS CONFIGURED", [
282
419
  "Create a Claude Code OAuth token with:",
283
420
  chalk.bold(" claude setup-token"),
284
421
  "Then choose: Add subscription token"
285
422
  ], 96));
286
423
  }
287
424
  else {
288
- console.log(box("SUBSCRIPTIONS", views.flatMap(renderTokenView), 96));
425
+ sections.push(box("SUBSCRIPTIONS", views.flatMap(renderTokenView), 96));
289
426
  }
290
- console.log(box("SWITCH DECISION", [
427
+ sections.push(box("SWITCH DECISION", [
291
428
  `${decision.shouldSwitch ? chalk.yellow("action pending") : chalk.green("stable")} ${decision.reason}`,
292
429
  `5-hour threshold: ${config.fiveHourMinLeftPercent}% remaining Weekly threshold: ${config.weeklyMinLeftPercent}% remaining`
293
430
  ], 96));
294
431
  const history = state.switchHistory.slice(0, 5);
295
432
  if (history.length) {
296
- console.log(box("RECENT SWITCHES", history.map((entry) => `${entry.switchedAt} ${entry.fromIndex ?? "none"} -> ${entry.toIndex} ${entry.reason}`), 96));
433
+ sections.push(box("RECENT SWITCHES", history.map((entry) => `${entry.switchedAt} ${entry.fromIndex ?? "none"} -> ${entry.toIndex} ${entry.reason}`), 96));
297
434
  }
435
+ return sections.join("\n");
298
436
  }
299
437
  async function pickTokenIndex(config, message) {
300
438
  return select({
package/dist/tui.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tui.js","sourceRoot":"","sources":["../src/tui.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tui.js","sourceRoot":"","sources":["../src/tui.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@baizor/cc-switch",
3
- "version": "0.1.7",
3
+ "version": "0.1.9",
4
4
  "description": "Manage multiple Claude Code subscription OAuth tokens from a TypeScript CLI.",
5
5
  "type": "module",
6
6
  "repository": {