@rethinkingstudio/clawpilot 1.0.9 → 1.0.11

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.
@@ -2,6 +2,7 @@ import { writeFileSync, mkdirSync, existsSync, unlinkSync } from "fs";
2
2
  import { join } from "path";
3
3
  import { homedir } from "os";
4
4
  import { execSync } from "child_process";
5
+ import { t } from "../i18n/index.js";
5
6
  const PLIST_LABEL = "com.rethinkingstudio.clawpilot";
6
7
  const PLIST_LABEL_OLD = "com.rethinkingstudio.clawai"; // legacy, cleaned up by stop
7
8
  const LAUNCH_AGENTS_DIR = join(homedir(), "Library", "LaunchAgents");
@@ -50,32 +51,32 @@ ${argsXml}
50
51
  writeFileSync(PLIST_PATH, plistContent, "utf-8");
51
52
  try {
52
53
  execSync(`launchctl load -w "${PLIST_PATH}"`, { stdio: "inherit" });
53
- console.log(`Service installed and started: ${PLIST_LABEL}`);
54
+ console.log(t("install.serviceStarted", PLIST_LABEL));
54
55
  }
55
56
  catch (err) {
56
- console.error("Failed to load launchd service:", err);
57
- console.log(`Plist written to: ${PLIST_PATH}`);
58
- console.log(`Run manually: launchctl load -w "${PLIST_PATH}"`);
57
+ console.error(t("install.loadFailed"), err);
58
+ console.log(t("install.plistWritten", PLIST_PATH));
59
+ console.log(t("install.loadManually", PLIST_PATH));
59
60
  }
60
61
  }
61
62
  export function restartCommand() {
62
- console.log("Restarting relay service…");
63
+ console.log(t("install.restarting"));
63
64
  installCommand();
64
65
  }
65
66
  export function uninstallCommand() {
66
67
  try {
67
68
  execSync(`launchctl unload -w "${PLIST_PATH}"`, { stdio: "inherit" });
68
- console.log(`Service stopped: ${PLIST_LABEL}`);
69
+ console.log(t("install.serviceStopped", PLIST_LABEL));
69
70
  }
70
71
  catch {
71
72
  // May fail if not loaded
72
73
  }
73
74
  try {
74
75
  execSync(`rm -f "${PLIST_PATH}"`, { stdio: "inherit" });
75
- console.log(`Plist removed: ${PLIST_PATH}`);
76
+ console.log(t("install.plistRemoved", PLIST_PATH));
76
77
  }
77
78
  catch (err) {
78
- console.error("Failed to remove plist:", err);
79
+ console.error(t("install.removePlistFailed"), err);
79
80
  }
80
81
  }
81
82
  /** Stop relay client and remove from launchd (also cleans up legacy clawai service). */
@@ -84,7 +85,7 @@ export function stopCommand() {
84
85
  // Stop + remove new label
85
86
  try {
86
87
  execSync(`launchctl unload -w "${PLIST_PATH}"`, { stdio: "pipe" });
87
- console.log(`Stopped: ${PLIST_LABEL}`);
88
+ console.log(t("install.stopped", PLIST_LABEL));
88
89
  stopped = true;
89
90
  }
90
91
  catch {
@@ -97,7 +98,7 @@ export function stopCommand() {
97
98
  // Stop + remove legacy clawai label
98
99
  try {
99
100
  execSync(`launchctl unload -w "${PLIST_PATH_OLD}"`, { stdio: "pipe" });
100
- console.log(`Stopped: ${PLIST_LABEL_OLD}`);
101
+ console.log(t("install.stopped", PLIST_LABEL_OLD));
101
102
  stopped = true;
102
103
  }
103
104
  catch {
@@ -108,10 +109,10 @@ export function stopCommand() {
108
109
  }
109
110
  catch { /* ignore */ }
110
111
  if (stopped) {
111
- console.log("Relay client stopped and removed from launchd.");
112
+ console.log(t("install.stoppedAndRemoved"));
112
113
  }
113
114
  else {
114
- console.log("No running relay service found.");
115
+ console.log(t("install.noService"));
115
116
  }
116
117
  }
117
118
  /** Clear saved config and stop the service — use this when switching servers or on auth errors. */
@@ -123,15 +124,15 @@ export function resetCommand() {
123
124
  if (existsSync(configPath)) {
124
125
  try {
125
126
  unlinkSync(configPath);
126
- console.log(`Config removed: ${configPath}`);
127
+ console.log(t("install.configRemoved", configPath));
127
128
  }
128
129
  catch (err) {
129
- console.error("Failed to remove config:", err);
130
+ console.error(t("install.removeConfigFailed"), err);
130
131
  }
131
132
  }
132
133
  else {
133
- console.log("No config file found.");
134
+ console.log(t("install.noConfig"));
134
135
  }
135
- console.log("\nReset complete. Run `clawpilot pair` to re-register.");
136
+ console.log(t("install.resetComplete"));
136
137
  }
137
138
  //# sourceMappingURL=install.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AACtE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,MAAM,kBAAkB,CAAC;AAErC,MAAM,WAAW,GAAO,gCAAgC,CAAC;AACzD,MAAM,eAAe,GAAG,6BAA6B,CAAC,CAAG,6BAA6B;AACtF,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;AACrE,MAAM,UAAU,GAAO,IAAI,CAAC,iBAAiB,EAAE,GAAG,WAAW,QAAQ,CAAC,CAAC;AACvE,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,GAAG,eAAe,QAAQ,CAAC,CAAC;AAE3E,MAAM,UAAU,WAAW;IACzB,OAAO,UAAU,CAAC,UAAU,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;IACjC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEnC,+DAA+D;IAC/D,sDAAsD;IACtD,MAAM,WAAW,GAAG,OAAO,KAAK,UAAU;QACxC,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC;QACrB,CAAC,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IAEjC,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE7E,MAAM,YAAY,GAAG;;;;;;YAMX,WAAW;;;EAGrB,OAAO;;;;;;;YAOG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,eAAe,CAAC;;YAE3C,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,qBAAqB,CAAC;;SAEpD,CAAC;IAER,SAAS,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE3D,8DAA8D;IAC9D,IAAI,CAAC;QACH,QAAQ,CAAC,wBAAwB,UAAU,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACrE,CAAC;IAAC,MAAM,CAAC,CAAC,6BAA6B,CAAC,CAAC;IAEzC,aAAa,CAAC,UAAU,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;IAEjD,IAAI,CAAC;QACH,QAAQ,CAAC,sBAAsB,UAAU,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,wBAAwB,EAAE,WAAW,CAAC,CAAC,CAAC;IACxD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,oBAAoB,CAAC,EAAE,GAAG,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,sBAAsB,EAAE,UAAU,CAAC,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,sBAAsB,EAAE,UAAU,CAAC,CAAC,CAAC;IACrD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC;IACrC,cAAc,EAAE,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,IAAI,CAAC;QACH,QAAQ,CAAC,wBAAwB,UAAU,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACtE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,wBAAwB,EAAE,WAAW,CAAC,CAAC,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,yBAAyB;IAC3B,CAAC;IAED,IAAI,CAAC;QACH,QAAQ,CAAC,UAAU,UAAU,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,sBAAsB,EAAE,UAAU,CAAC,CAAC,CAAC;IACrD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,2BAA2B,CAAC,EAAE,GAAG,CAAC,CAAC;IACrD,CAAC;AACH,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,WAAW;IACzB,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,0BAA0B;IAC1B,IAAI,CAAC;QACH,QAAQ,CAAC,wBAAwB,UAAU,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC,CAAC;QAC/C,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IAAC,MAAM,CAAC;QACP,2BAA2B;IAC7B,CAAC;IACD,IAAI,CAAC;QACH,QAAQ,CAAC,UAAU,UAAU,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAExB,oCAAoC;IACpC,IAAI,CAAC;QACH,QAAQ,CAAC,wBAAwB,cAAc,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACvE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC,CAAC;QACnD,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IAAC,MAAM,CAAC;QACP,2BAA2B;IAC7B,CAAC;IACD,IAAI,CAAC;QACH,QAAQ,CAAC,UAAU,cAAc,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAC3D,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAExB,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC;IAC9C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;IACtC,CAAC;AACH,CAAC;AAED,mGAAmG;AACnG,MAAM,UAAU,YAAY;IAC1B,yBAAyB;IACzB,WAAW,EAAE,CAAC;IAEd,qBAAqB;IACrB,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IAC7D,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,UAAU,CAAC,UAAU,CAAC,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,uBAAuB,EAAE,UAAU,CAAC,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,4BAA4B,CAAC,EAAE,GAAG,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC;AAC1C,CAAC"}
@@ -1,4 +1,4 @@
1
- import { readdirSync, statSync, copyFileSync, existsSync } from "fs";
1
+ import { readdirSync, statSync, copyFileSync, existsSync, readFileSync } from "fs";
2
2
  import { join } from "path";
3
3
  import { homedir } from "os";
4
4
  import { execSync } from "child_process";
@@ -14,6 +14,14 @@ export function handleLocalCommand(method) {
14
14
  return restoreConfig();
15
15
  case "clawpilot.watchskill":
16
16
  return watchSkill();
17
+ case "clawpilot.doctor":
18
+ return runDoctor();
19
+ case "clawpilot.logs":
20
+ return readLogs();
21
+ case "clawpilot.gateway.restart":
22
+ return restartGateway();
23
+ case "clawpilot.update":
24
+ return updateOpenclaw();
17
25
  default:
18
26
  return null;
19
27
  }
@@ -59,4 +67,94 @@ function watchSkill() {
59
67
  return { ok: false, error: String(err) };
60
68
  }
61
69
  }
70
+ /** Extracts combined stdout+stderr from an execSync error, with a newline separator if both exist. */
71
+ function execErrorOutput(err) {
72
+ const e = err;
73
+ const out = e.stdout?.toString() ?? "";
74
+ const errStr = e.stderr?.toString() ?? "";
75
+ if (out && errStr)
76
+ return `${out}\n${errStr}`;
77
+ return out || errStr;
78
+ }
79
+ /**
80
+ * Runs openclaw doctor to check system health.
81
+ */
82
+ function runDoctor() {
83
+ try {
84
+ const output = execSync("openclaw doctor", { stdio: "pipe" }).toString();
85
+ console.log("[clawpilot] doctor completed");
86
+ return { ok: true, payload: { output } };
87
+ }
88
+ catch (err) {
89
+ const output = execErrorOutput(err);
90
+ return output
91
+ ? { ok: true, payload: { output } }
92
+ : { ok: false, error: String(err) };
93
+ }
94
+ }
95
+ /**
96
+ * Reads the last 100 lines from log files in ~/.openclaw/logs/ or ~/.openclaw/*.log.
97
+ */
98
+ function readLogs() {
99
+ try {
100
+ const logsDir = join(OPENCLAW_DIR, "logs");
101
+ let logFiles = [];
102
+ if (existsSync(logsDir)) {
103
+ logFiles = readdirSync(logsDir)
104
+ .filter(f => f.endsWith(".log"))
105
+ .map(f => join(logsDir, f));
106
+ }
107
+ else {
108
+ logFiles = readdirSync(OPENCLAW_DIR)
109
+ .filter(f => f.endsWith(".log"))
110
+ .map(f => join(OPENCLAW_DIR, f));
111
+ }
112
+ if (logFiles.length === 0) {
113
+ return { ok: true, payload: { output: "No log files found." } };
114
+ }
115
+ const logFilesWithMtime = logFiles.map(f => ({ path: f, mtime: statSync(f).mtimeMs }));
116
+ logFilesWithMtime.sort((a, b) => b.mtime - a.mtime);
117
+ const latest = logFilesWithMtime[0].path;
118
+ const allLines = readFileSync(latest, "utf-8").split("\n");
119
+ const last100 = allLines.slice(-100).join("\n");
120
+ const output = `[${latest}]\n${last100}`;
121
+ console.log(`[clawpilot] logs read from ${latest}`);
122
+ return { ok: true, payload: { output } };
123
+ }
124
+ catch (err) {
125
+ return { ok: false, error: String(err) };
126
+ }
127
+ }
128
+ /**
129
+ * Restarts the openclaw gateway process.
130
+ */
131
+ function restartGateway() {
132
+ try {
133
+ const output = execSync("openclaw gateway restart", { stdio: "pipe" }).toString();
134
+ console.log("[clawpilot] gateway restarted");
135
+ return { ok: true, payload: { output: output || "Gateway restarted successfully." } };
136
+ }
137
+ catch (err) {
138
+ const output = execErrorOutput(err);
139
+ return output
140
+ ? { ok: true, payload: { output } }
141
+ : { ok: false, error: String(err) };
142
+ }
143
+ }
144
+ /**
145
+ * Updates openclaw to the latest version.
146
+ */
147
+ function updateOpenclaw() {
148
+ try {
149
+ const output = execSync("openclaw update", { stdio: "pipe" }).toString();
150
+ console.log("[clawpilot] openclaw updated");
151
+ return { ok: true, payload: { output: output || "openclaw updated successfully." } };
152
+ }
153
+ catch (err) {
154
+ const output = execErrorOutput(err);
155
+ return output
156
+ ? { ok: true, payload: { output } }
157
+ : { ok: false, error: String(err) };
158
+ }
159
+ }
62
160
  //# sourceMappingURL=local-handlers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"local-handlers.js","sourceRoot":"","sources":["../../src/commands/local-handlers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AACrE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,YAAY,GAAM,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC;AACrD,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;AAM5D;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,0BAA0B;YAC7B,OAAO,aAAa,EAAE,CAAC;QACzB,KAAK,sBAAsB;YACzB,OAAO,UAAU,EAAE,CAAC;QACtB;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa;IACpB,IAAI,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC9B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,kCAAkC,YAAY,EAAE,EAAE,CAAC;QAChF,CAAC;QAED,MAAM,QAAQ,GAAG,WAAW,CAAC,YAAY,CAAC;aACvC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;aACpD,GAAG,CAAC,IAAI,CAAC,EAAE;YACV,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YACtC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QACvD,CAAC,CAAC;aACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAErC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,uCAAuC,EAAE,CAAC;QACvE,CAAC;QAED,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC3B,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QAE3C,OAAO,CAAC,GAAG,CAAC,oCAAoC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/D,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;IAC9D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;IAC3C,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,UAAU;IACjB,IAAI,CAAC;QACH,QAAQ,CAAC,4CAA4C,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC1E,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;QACzD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,2BAA2B,EAAE,EAAE,CAAC;IACzE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;IAC3C,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"local-handlers.js","sourceRoot":"","sources":["../../src/commands/local-handlers.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ function getDisplayName() {
11
11
  import { configExists, readConfig, writeConfig } from "../config/config.js";
12
12
  import { installCommand } from "./install.js";
13
13
  import qrcodeTerminal from "qrcode-terminal";
14
+ import { t } from "../i18n/index.js";
14
15
  const DEFAULT_RELAY_SERVER = "https://clawpilot.codeaddict.cn";
15
16
  export async function pairCommand(opts) {
16
17
  const relayServerUrl = opts.server ?? DEFAULT_RELAY_SERVER;
@@ -24,7 +25,7 @@ export async function pairCommand(opts) {
24
25
  gatewayId = config.gatewayId;
25
26
  relaySecret = config.relaySecret;
26
27
  displayName = opts.name ?? config.displayName;
27
- console.log(`Gateway already registered (id=${gatewayId}). Refreshing access code…`);
28
+ console.log(t("pair.alreadyRegistered", gatewayId));
28
29
  const res = await fetch(`${httpBase}/api/relay/accesscode`, {
29
30
  method: "POST",
30
31
  headers: { "Content-Type": "application/json" },
@@ -33,9 +34,9 @@ export async function pairCommand(opts) {
33
34
  if (!res.ok) {
34
35
  const body = await res.text();
35
36
  if (res.status === 401) {
36
- throw new Error(`Invalid credentials (401). The server doesn't recognize this gateway.\nRun \`clawpilot reset\` to clear config and re-register.`);
37
+ throw new Error(t("pair.invalidCredentials"));
37
38
  }
38
- throw new Error(`Failed to refresh access code: ${res.status} ${body}`);
39
+ throw new Error(t("pair.refreshFailed", String(res.status), body));
39
40
  }
40
41
  const data = (await res.json());
41
42
  accessCode = data.accessCode;
@@ -43,7 +44,7 @@ export async function pairCommand(opts) {
43
44
  }
44
45
  else {
45
46
  displayName = opts.name ?? getDisplayName();
46
- console.log("Registering with relay server…");
47
+ console.log(t("pair.registering"));
47
48
  const res = await fetch(`${httpBase}/api/relay/register`, {
48
49
  method: "POST",
49
50
  headers: { "Content-Type": "application/json" },
@@ -51,14 +52,14 @@ export async function pairCommand(opts) {
51
52
  });
52
53
  if (!res.ok) {
53
54
  const body = await res.text();
54
- throw new Error(`Registration failed: ${res.status} ${body}`);
55
+ throw new Error(t("pair.registrationFailed", String(res.status), body));
55
56
  }
56
57
  const data = (await res.json());
57
58
  gatewayId = data.gatewayId;
58
59
  relaySecret = data.relaySecret;
59
60
  accessCode = data.accessCode;
60
61
  writeConfig({ relayServerUrl, gatewayId, relaySecret, displayName });
61
- console.log(`Registered! Gateway ID: ${gatewayId}`);
62
+ console.log(t("pair.registered", gatewayId));
62
63
  }
63
64
  const qrPayload = JSON.stringify({
64
65
  version: 1,
@@ -67,10 +68,10 @@ export async function pairCommand(opts) {
67
68
  accessCode,
68
69
  displayName,
69
70
  });
70
- console.log("\nScan this QR code with the Clawai iOS app:\n");
71
+ console.log(t("pair.scanQR"));
71
72
  qrcodeTerminal.generate(qrPayload, { small: true });
72
- console.log("\nAccess code (one-time use):", accessCode);
73
- console.log("\nInstalling/updating relay background service…");
73
+ console.log(t("pair.accessCode", accessCode));
74
+ console.log(t("pair.installingService"));
74
75
  installCommand();
75
76
  }
76
77
  //# sourceMappingURL=pair.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pair.js","sourceRoot":"","sources":["../../src/commands/pair.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pair.js","sourceRoot":"","sources":["../../src/commands/pair.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,15 @@
1
1
  import { readConfig, readGatewayUrl, readGatewayAuth } from "../config/config.js";
2
2
  import { runRelayManager } from "../relay/relay-manager.js";
3
3
  import { withReconnect } from "../relay/reconnect.js";
4
+ import { t } from "../i18n/index.js";
4
5
  export async function runCommand() {
5
6
  const config = readConfig();
6
7
  const gatewayUrl = readGatewayUrl();
7
8
  const gatewayAuth = readGatewayAuth(config);
8
- console.log(`Starting ClawAI relay client…`);
9
- console.log(` Gateway ID: ${config.gatewayId}`);
10
- console.log(` Relay Server: ${config.relayServerUrl}`);
11
- console.log(` Gateway URL: ${gatewayUrl}`);
9
+ console.log(t("run.starting"));
10
+ console.log(t("run.gatewayId", config.gatewayId));
11
+ console.log(t("run.relayServer", config.relayServerUrl));
12
+ console.log(t("run.gatewayUrl", gatewayUrl));
12
13
  await withReconnect(() => runRelayManager({
13
14
  relayServerUrl: config.relayServerUrl,
14
15
  gatewayId: config.gatewayId,
@@ -16,11 +17,11 @@ export async function runCommand() {
16
17
  gatewayUrl,
17
18
  gatewayToken: gatewayAuth.token,
18
19
  gatewayPassword: gatewayAuth.password,
19
- onConnected: () => console.log("Relay connected."),
20
- onDisconnected: () => console.log("Relay disconnected. Reconnecting…"),
20
+ onConnected: () => console.log(t("run.connected")),
21
+ onDisconnected: () => console.log(t("run.disconnected")),
21
22
  }), {
22
23
  onRetry: (attempt, delayMs) => {
23
- console.log(`Retry attempt ${attempt}, waiting ${delayMs}ms…`);
24
+ console.log(t("run.retry", String(attempt), String(delayMs)));
24
25
  },
25
26
  });
26
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,UAAU,GAAG,cAAc,EAAE,CAAC;IACpC,MAAM,WAAW,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAE5C,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,mBAAmB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,mBAAmB,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,mBAAmB,UAAU,EAAE,CAAC,CAAC;IAE7C,MAAM,aAAa,CACjB,GAAG,EAAE,CACH,eAAe,CAAC;QACd,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,UAAU;QACV,YAAY,EAAE,WAAW,CAAC,KAAK;QAC/B,eAAe,EAAE,WAAW,CAAC,QAAQ;QACrC,WAAW,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;QAClD,cAAc,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC;KACvE,CAAC,EACJ;QACE,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;YAC5B,OAAO,CAAC,GAAG,CAAC,iBAAiB,OAAO,aAAa,OAAO,KAAK,CAAC,CAAC;QACjE,CAAC;KACF,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,kBAAkB,CAAC;AAErC,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,UAAU,GAAG,cAAc,EAAE,CAAC;IACpC,MAAM,WAAW,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAE5C,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;IAC/B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,iBAAiB,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC,CAAC;IAE7C,MAAM,aAAa,CACjB,GAAG,EAAE,CACH,eAAe,CAAC;QACd,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,UAAU;QACV,YAAY,EAAE,WAAW,CAAC,KAAK;QAC/B,eAAe,EAAE,WAAW,CAAC,QAAQ;QACrC,WAAW,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;QAClD,cAAc,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;KACzD,CAAC,EACJ;QACE,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;YAC5B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAChE,CAAC;KACF,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function setTokenCommand(): Promise<void>;
@@ -0,0 +1,43 @@
1
+ import readline from "readline";
2
+ import { readConfig, writeConfig } from "../config/config.js";
3
+ import { t } from "../i18n/index.js";
4
+ export async function setTokenCommand() {
5
+ // Require pairing to be done first
6
+ let config;
7
+ try {
8
+ config = readConfig();
9
+ }
10
+ catch {
11
+ console.error(t("setToken.noPairing"));
12
+ process.exit(1);
13
+ }
14
+ // Tell the user where to find the token
15
+ console.log(t("setToken.whereToFind"));
16
+ console.log(t("setToken.option1"));
17
+ console.log(t("setToken.option2"));
18
+ console.log(t("setToken.option2cmd"));
19
+ console.log(t("setToken.option3"));
20
+ // Prompt for the token
21
+ const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
22
+ const token = await new Promise((resolve) => {
23
+ rl.question(t("setToken.prompt"), (answer) => {
24
+ rl.close();
25
+ resolve(answer.trim());
26
+ });
27
+ });
28
+ // Save
29
+ if (token) {
30
+ config.gatewayToken = token;
31
+ delete config.gatewayPassword;
32
+ writeConfig(config);
33
+ console.log(t("setToken.saved"));
34
+ }
35
+ else {
36
+ delete config.gatewayToken;
37
+ delete config.gatewayPassword;
38
+ writeConfig(config);
39
+ console.log(t("setToken.cleared"));
40
+ }
41
+ console.log(t("setToken.restart"));
42
+ }
43
+ //# sourceMappingURL=set-token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set-token.js","sourceRoot":"","sources":["../../src/commands/set-token.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,CAAC,EAAE,MAAM,kBAAkB,CAAC;AAErC,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,mCAAmC;IACnC,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACH,MAAM,GAAG,UAAU,EAAE,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,wCAAwC;IACxC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAEnC,uBAAuB;IACvB,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACtF,MAAM,KAAK,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE;QAClD,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE;YAC3C,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO;IACP,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,CAAC,YAAY,GAAG,KAAK,CAAC;QAC5B,OAAO,MAAM,CAAC,eAAe,CAAC;QAC9B,WAAW,CAAC,MAAM,CAAC,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACnC,CAAC;SAAM,CAAC;QACN,OAAO,MAAM,CAAC,YAAY,CAAC;QAC3B,OAAO,MAAM,CAAC,eAAe,CAAC;QAC9B,WAAW,CAAC,MAAM,CAAC,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;AACrC,CAAC"}
@@ -3,6 +3,7 @@ import { join } from "path";
3
3
  import { homedir } from "os";
4
4
  import { execSync } from "child_process";
5
5
  import { configExists, readConfig, readGatewayUrl } from "../config/config.js";
6
+ import { t } from "../i18n/index.js";
6
7
  const PLIST_LABEL = "com.rethinkingstudio.clawpilot";
7
8
  const PLIST_PATH = join(homedir(), "Library", "LaunchAgents", `${PLIST_LABEL}.plist`);
8
9
  const LOG_PATH = join(homedir(), ".clawai", "clawpilot.log");
@@ -16,40 +17,40 @@ function isServiceRunning() {
16
17
  }
17
18
  }
18
19
  export function statusCommand() {
19
- console.log("── ClawPilot Relay Client Status ──\n");
20
+ console.log(t("status.title"));
20
21
  // Pairing config
21
22
  if (!configExists()) {
22
- console.log("Config: ✗ Not paired — run 'clawpilot pair' first");
23
+ console.log(t("status.notPaired"));
23
24
  }
24
25
  else {
25
26
  try {
26
27
  const config = readConfig();
27
- console.log("Config: ✓ Paired");
28
- console.log(` Display name : ${config.displayName}`);
29
- console.log(` Gateway ID : ${config.gatewayId}`);
30
- console.log(` Relay server : ${config.relayServerUrl}`);
28
+ console.log(t("status.paired"));
29
+ console.log(t("status.displayName", config.displayName));
30
+ console.log(t("status.gatewayId", config.gatewayId));
31
+ console.log(t("status.relayServer", config.relayServerUrl));
31
32
  }
32
33
  catch {
33
- console.log("Config: ✗ File exists but is corrupted");
34
+ console.log(t("status.configCorrupted"));
34
35
  }
35
36
  }
36
37
  // Local gateway
37
38
  const gatewayUrl = readGatewayUrl();
38
- console.log(`\nGateway: ${gatewayUrl}`);
39
+ console.log(t("status.gateway", gatewayUrl));
39
40
  // launchd service
40
41
  const plistExists = existsSync(PLIST_PATH);
41
42
  const running = isServiceRunning();
42
43
  if (!plistExists) {
43
- console.log("\nService: ✗ Not installed — run 'clawpilot install'");
44
+ console.log(t("status.serviceNotInstalled"));
44
45
  }
45
46
  else if (running) {
46
- console.log("\nService: ✓ Running (launchd)");
47
- console.log(` Log : ${LOG_PATH}`);
47
+ console.log(t("status.serviceRunning"));
48
+ console.log(t("status.serviceLog", LOG_PATH));
48
49
  }
49
50
  else {
50
- console.log("\nService: ⚠ Installed but not running");
51
- console.log(` Plist : ${PLIST_PATH}`);
52
- console.log(" Start : launchctl start " + PLIST_LABEL);
51
+ console.log(t("status.serviceNotRunning"));
52
+ console.log(t("status.servicePlist", PLIST_PATH));
53
+ console.log(t("status.serviceStart", PLIST_LABEL));
53
54
  }
54
55
  console.log("");
55
56
  }
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE/E,MAAM,WAAW,GAAG,gCAAgC,CAAC;AACrD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,WAAW,QAAQ,CAAC,CAAC;AACtF,MAAM,QAAQ,GAAK,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;AAE/D,SAAS,gBAAgB;IACvB,IAAI,CAAC;QACH,QAAQ,CAAC,kBAAkB,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;IAErD,iBAAiB;IACjB,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;IACtE,CAAC;SAAM,CAAC;QACN,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,oBAAoB,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,oBAAoB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,oBAAoB,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;QAC3D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,gBAAgB;IAChB,MAAM,UAAU,GAAG,cAAc,EAAE,CAAC;IACpC,OAAO,CAAC,GAAG,CAAC,eAAe,UAAU,EAAE,CAAC,CAAC;IAEzC,kBAAkB;IAClB,MAAM,WAAW,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;IAEnC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;IACxE,CAAC;SAAM,IAAI,OAAO,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,WAAW,QAAQ,EAAE,CAAC,CAAC;IACrC,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,aAAa,UAAU,EAAE,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,4BAA4B,GAAG,WAAW,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
@@ -13,8 +13,10 @@ export declare function readConfig(): ClawaiConfig;
13
13
  export declare function writeConfig(config: ClawaiConfig): void;
14
14
  export declare function readGatewayUrl(): string;
15
15
  /**
16
- * Reads the gateway token or password from the clawai config first,
17
- * then falls back to reading directly from the OpenClaw config file.
16
+ * Reads the gateway token or password. Priority order:
17
+ * 1. ~/.clawai/config.json (gatewayToken / gatewayPassword)
18
+ * 2. ~/.openclaw/openclaw.json (gateway.token / gateway.auth.token)
19
+ * 3. Environment variables (OPENCLAW_GATEWAY_TOKEN / OPENCLAW_GATEWAY_PASSWORD)
18
20
  */
19
21
  export declare function readGatewayAuth(cfg: ClawaiConfig): {
20
22
  token?: string;
@@ -30,8 +30,10 @@ export function readGatewayUrl() {
30
30
  }
31
31
  }
32
32
  /**
33
- * Reads the gateway token or password from the clawai config first,
34
- * then falls back to reading directly from the OpenClaw config file.
33
+ * Reads the gateway token or password. Priority order:
34
+ * 1. ~/.clawai/config.json (gatewayToken / gatewayPassword)
35
+ * 2. ~/.openclaw/openclaw.json (gateway.token / gateway.auth.token)
36
+ * 3. Environment variables (OPENCLAW_GATEWAY_TOKEN / OPENCLAW_GATEWAY_PASSWORD)
35
37
  */
36
38
  export function readGatewayAuth(cfg) {
37
39
  if (cfg.gatewayToken || cfg.gatewayPassword) {
@@ -41,13 +43,20 @@ export function readGatewayAuth(cfg) {
41
43
  try {
42
44
  const raw = readFileSync(OPENCLAW_CONFIG_PATH, "utf-8");
43
45
  const json = JSON.parse(raw);
44
- return {
45
- token: json?.gateway?.token ?? json?.gateway?.auth?.token ?? undefined,
46
- password: json?.gateway?.password ?? json?.gateway?.auth?.password ?? undefined,
47
- };
46
+ const token = json?.gateway?.token ?? json?.gateway?.auth?.token ?? undefined;
47
+ const password = json?.gateway?.password ?? json?.gateway?.auth?.password ?? undefined;
48
+ if (token || password)
49
+ return { token, password };
48
50
  }
49
51
  catch {
50
- return {};
52
+ // ignore
51
53
  }
54
+ // Fall back to environment variables (e.g. set via LaunchAgent)
55
+ const envToken = process.env.OPENCLAW_GATEWAY_TOKEN;
56
+ const envPassword = process.env.OPENCLAW_GATEWAY_PASSWORD;
57
+ if (envToken || envPassword) {
58
+ return { token: envToken, password: envPassword };
59
+ }
60
+ return {};
52
61
  }
53
62
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAE7B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;AAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AACpD,MAAM,oBAAoB,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;AAa3E,MAAM,UAAU,YAAY;IAC1B,OAAO,UAAU,CAAC,WAAW,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,uBAAuB,WAAW,4BAA4B,CAAC,CAAC;IAClF,CAAC;IACD,MAAM,GAAG,GAAG,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC/C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAiB,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,MAAoB;IAC9C,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAoC,CAAC;QAChE,MAAM,IAAI,GAAG,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,KAAK,CAAC;QAC1C,OAAO,kBAAkB,IAAI,EAAE,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,sBAAsB,CAAC;IAChC,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,GAAiB;IAC/C,IAAI,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC;QAC5C,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,YAAY,EAAE,QAAQ,EAAE,GAAG,CAAC,eAAe,EAAE,CAAC;IACpE,CAAC;IACD,mDAAmD;IACnD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAsG,CAAC;QAClI,OAAO;YACL,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,IAAI,SAAS;YACtE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,IAAI,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,IAAI,SAAS;SAChF,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function t(key: string, ...args: string[]): string;