remodex-cli 1.0.1 → 1.0.2

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
@@ -39,6 +39,9 @@ remodex-cli
39
39
  | `BRIDGE_RECORDING` | (none) | Enable session recording for debugging (enabled when set) |
40
40
  | `BRIDGE_DISABLE_MDNS` | (none) | Disable mDNS auto-discovery advertisement (enabled when set) |
41
41
  | `HTTPS_PROXY` | (none) | Proxy for outgoing fetch requests (`http://`, `socks5://`) |
42
+ | `PUSH_RELAY_URL` | production relay URL | Override the push relay endpoint |
43
+ | `REMODEX_FIREBASE_PUSH_API_KEY` | production Firebase key | Override the Firebase Auth API key used for push relay auth |
44
+ | `REMODEX_FIREBASE_PUSH_PROJECT_ID` | production Firebase project | Override the default Firebase project used to derive the relay URL |
42
45
 
43
46
  ```bash
44
47
  # Example: custom port with API key
@@ -12,17 +12,18 @@
12
12
  * so that Bridge restarts reuse the same UID instead of creating
13
13
  * a new anonymous account each time.
14
14
  */
15
- import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
15
+ import { existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from "node:fs";
16
16
  import { homedir } from "node:os";
17
17
  import { join } from "node:path";
18
- import { FIREBASE_AUTH_REFRESH_URL, FIREBASE_AUTH_SIGN_UP_URL, } from "./firebase-push-config.js";
18
+ import { FIREBASE_PUSH_PROJECT_ID, FIREBASE_AUTH_REFRESH_URL, FIREBASE_AUTH_SIGN_UP_URL, } from "./firebase-push-config.js";
19
19
  const CREDENTIALS_DIR = join(homedir(), ".remodex");
20
20
  const CREDENTIALS_FILE = join(CREDENTIALS_DIR, "firebase-credentials.json");
21
- function loadCredentials() {
21
+ const LEGACY_CREDENTIALS_FILE = join(homedir(), ".ccpocket", "firebase-credentials.json");
22
+ function parseCredentialsFile(path) {
22
23
  try {
23
- if (!existsSync(CREDENTIALS_FILE))
24
+ if (!existsSync(path))
24
25
  return null;
25
- const raw = readFileSync(CREDENTIALS_FILE, "utf-8");
26
+ const raw = readFileSync(path, "utf-8");
26
27
  const data = JSON.parse(raw);
27
28
  if (typeof data.uid === "string" && typeof data.refreshToken === "string") {
28
29
  return { uid: data.uid, refreshToken: data.refreshToken };
@@ -33,6 +34,17 @@ function loadCredentials() {
33
34
  return null;
34
35
  }
35
36
  }
37
+ function loadCredentials() {
38
+ const current = parseCredentialsFile(CREDENTIALS_FILE);
39
+ if (current) {
40
+ return { ...current, source: "current" };
41
+ }
42
+ const legacy = parseCredentialsFile(LEGACY_CREDENTIALS_FILE);
43
+ if (legacy) {
44
+ return { ...legacy, source: "legacy" };
45
+ }
46
+ return null;
47
+ }
36
48
  function saveCredentials(creds) {
37
49
  try {
38
50
  mkdirSync(CREDENTIALS_DIR, { recursive: true });
@@ -42,6 +54,30 @@ function saveCredentials(creds) {
42
54
  console.warn("[firebase-auth] Failed to persist credentials:", err);
43
55
  }
44
56
  }
57
+ function deleteCredentials(path) {
58
+ try {
59
+ rmSync(path, { force: true });
60
+ }
61
+ catch (err) {
62
+ console.warn("[firebase-auth] Failed to delete stale credentials:", err);
63
+ }
64
+ }
65
+ function isProjectNumberMismatchError(message) {
66
+ return message.includes("PROJECT_NUMBER_MISMATCH");
67
+ }
68
+ function isConfigurationNotFoundError(message) {
69
+ return message.includes("CONFIGURATION_NOT_FOUND");
70
+ }
71
+ function formatAuthError(context, status, text) {
72
+ if (context === "sign-in" && isConfigurationNotFoundError(text)) {
73
+ return new Error(`Firebase anonymous sign-in failed (${status}): Firebase Auth is not configured for project ` +
74
+ `"${FIREBASE_PUSH_PROJECT_ID}". Configure the production Firebase backend or override ` +
75
+ `PUSH_RELAY_URL / REMODEX_FIREBASE_PUSH_API_KEY for a working relay.`);
76
+ }
77
+ return new Error(context === "sign-in"
78
+ ? `Firebase anonymous sign-in failed (${status}): ${text}`
79
+ : `Firebase token refresh failed (${status}): ${text}`);
80
+ }
45
81
  export class FirebaseAuthClient {
46
82
  _uid = null;
47
83
  _idToken = null;
@@ -67,6 +103,11 @@ export class FirebaseAuthClient {
67
103
  }
68
104
  catch (err) {
69
105
  console.warn("[firebase-auth] Failed to restore session, creating new account:", err);
106
+ if (err instanceof Error && isProjectNumberMismatchError(err.message)) {
107
+ const stalePath = saved.source === "legacy" ? LEGACY_CREDENTIALS_FILE : CREDENTIALS_FILE;
108
+ console.warn(`[firebase-auth] Discarding stale Firebase credentials from ${stalePath}`);
109
+ deleteCredentials(stalePath);
110
+ }
70
111
  }
71
112
  }
72
113
  await this.signUpAnonymously();
@@ -93,7 +134,7 @@ export class FirebaseAuthClient {
93
134
  });
94
135
  if (!res.ok) {
95
136
  const text = await res.text();
96
- throw new Error(`Firebase anonymous sign-in failed (${res.status}): ${text}`);
137
+ throw formatAuthError("sign-in", res.status, text);
97
138
  }
98
139
  const data = (await res.json());
99
140
  this._uid = data.localId;
@@ -118,7 +159,7 @@ export class FirebaseAuthClient {
118
159
  });
119
160
  if (!res.ok) {
120
161
  const text = await res.text();
121
- throw new Error(`Firebase token refresh failed (${res.status}): ${text}`);
162
+ throw formatAuthError("refresh", res.status, text);
122
163
  }
123
164
  const data = (await res.json());
124
165
  this._idToken = data.id_token;
@@ -1 +1 @@
1
- {"version":3,"file":"firebase-auth.js","sourceRoot":"","sources":["../src/firebase-auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"firebase-auth.js","sourceRoot":"","sources":["../src/firebase-auth.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- export declare const FIREBASE_PUSH_PROJECT_ID = "remodex-7982f";
2
- export declare const FIREBASE_PUSH_API_KEY = "AIzaSyD7mypRfQwA5GzNi_MVQufCL_zy6MdPans";
3
- export declare const DEFAULT_PUSH_RELAY_URL = "https://us-central1-remodex-7982f.cloudfunctions.net/relay";
4
- export declare const FIREBASE_AUTH_SIGN_UP_URL = "https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=AIzaSyD7mypRfQwA5GzNi_MVQufCL_zy6MdPans";
5
- export declare const FIREBASE_AUTH_REFRESH_URL = "https://securetoken.googleapis.com/v1/token?key=AIzaSyD7mypRfQwA5GzNi_MVQufCL_zy6MdPans";
6
- export declare const FIREBASE_AUTH_LOOKUP_URL = "https://identitytoolkit.googleapis.com/v1/accounts:lookup?key=AIzaSyD7mypRfQwA5GzNi_MVQufCL_zy6MdPans";
1
+ export declare const FIREBASE_PUSH_PROJECT_ID: string;
2
+ export declare const FIREBASE_PUSH_API_KEY: string;
3
+ export declare const DEFAULT_PUSH_RELAY_URL: string;
4
+ export declare const FIREBASE_AUTH_SIGN_UP_URL: string;
5
+ export declare const FIREBASE_AUTH_REFRESH_URL: string;
6
+ export declare const FIREBASE_AUTH_LOOKUP_URL: string;
@@ -1,6 +1,14 @@
1
- export const FIREBASE_PUSH_PROJECT_ID = "remodex-7982f";
2
- export const FIREBASE_PUSH_API_KEY = "AIzaSyD7mypRfQwA5GzNi_MVQufCL_zy6MdPans";
3
- export const DEFAULT_PUSH_RELAY_URL = `https://us-central1-${FIREBASE_PUSH_PROJECT_ID}.cloudfunctions.net/relay`;
1
+ const DEFAULT_FIREBASE_PUSH_PROJECT_ID = "ccpocket-ca33b";
2
+ const DEFAULT_FIREBASE_PUSH_API_KEY = "AIzaSyAptNnokWPqJIgv2Lr3I8ETN6bqZb5BGvc";
3
+ function readEnv(name) {
4
+ const value = process.env[name]?.trim();
5
+ return value ? value : undefined;
6
+ }
7
+ export const FIREBASE_PUSH_PROJECT_ID = readEnv("REMODEX_FIREBASE_PUSH_PROJECT_ID") ?? DEFAULT_FIREBASE_PUSH_PROJECT_ID;
8
+ export const FIREBASE_PUSH_API_KEY = readEnv("REMODEX_FIREBASE_PUSH_API_KEY") ?? DEFAULT_FIREBASE_PUSH_API_KEY;
9
+ export const DEFAULT_PUSH_RELAY_URL = readEnv("PUSH_RELAY_URL") ??
10
+ readEnv("REMODEX_PUSH_RELAY_URL") ??
11
+ `https://us-central1-${FIREBASE_PUSH_PROJECT_ID}.cloudfunctions.net/relay`;
4
12
  export const FIREBASE_AUTH_SIGN_UP_URL = `https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=${FIREBASE_PUSH_API_KEY}`;
5
13
  export const FIREBASE_AUTH_REFRESH_URL = `https://securetoken.googleapis.com/v1/token?key=${FIREBASE_PUSH_API_KEY}`;
6
14
  export const FIREBASE_AUTH_LOOKUP_URL = `https://identitytoolkit.googleapis.com/v1/accounts:lookup?key=${FIREBASE_PUSH_API_KEY}`;
@@ -1 +1 @@
1
- {"version":3,"file":"firebase-push-config.js","sourceRoot":"","sources":["../src/firebase-push-config.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,wBAAwB,GAAG,eAAe,CAAC;AACxD,MAAM,CAAC,MAAM,qBAAqB,GAAG,yCAAyC,CAAC;AAE/E,MAAM,CAAC,MAAM,sBAAsB,GACjC,uBAAuB,wBAAwB,2BAA2B,CAAC;AAE7E,MAAM,CAAC,MAAM,yBAAyB,GACpC,iEAAiE,qBAAqB,EAAE,CAAC;AAE3F,MAAM,CAAC,MAAM,yBAAyB,GACpC,mDAAmD,qBAAqB,EAAE,CAAC;AAE7E,MAAM,CAAC,MAAM,wBAAwB,GACnC,iEAAiE,qBAAqB,EAAE,CAAC"}
1
+ {"version":3,"file":"firebase-push-config.js","sourceRoot":"","sources":["../src/firebase-push-config.ts"],"names":[],"mappings":"AAAA,MAAM,gCAAgC,GAAG,gBAAgB,CAAC;AAC1D,MAAM,6BAA6B,GAAG,yCAAyC,CAAC;AAEhF,SAAS,OAAO,CAAC,IAAY;IAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;IACxC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACnC,CAAC;AAED,MAAM,CAAC,MAAM,wBAAwB,GACnC,OAAO,CAAC,kCAAkC,CAAC,IAAI,gCAAgC,CAAC;AAElF,MAAM,CAAC,MAAM,qBAAqB,GAChC,OAAO,CAAC,+BAA+B,CAAC,IAAI,6BAA6B,CAAC;AAE5E,MAAM,CAAC,MAAM,sBAAsB,GACjC,OAAO,CAAC,gBAAgB,CAAC;IACzB,OAAO,CAAC,wBAAwB,CAAC;IACjC,uBAAuB,wBAAwB,2BAA2B,CAAC;AAE7E,MAAM,CAAC,MAAM,yBAAyB,GACpC,iEAAiE,qBAAqB,EAAE,CAAC;AAE3F,MAAM,CAAC,MAAM,yBAAyB,GACpC,mDAAmD,qBAAqB,EAAE,CAAC;AAE7E,MAAM,CAAC,MAAM,wBAAwB,GACnC,iEAAiE,qBAAqB,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "remodex-cli",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "description": "Bridge server that connects Claude Code and Codex CLI to mobile devices via WebSocket",
5
5
  "private": false,
6
6
  "type": "module",