@rethinkingstudio/clawpilot 1.1.10 → 1.1.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.
- package/README.md +38 -8
- package/dist/commands/install.d.ts +0 -2
- package/dist/commands/install.js +66 -97
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/pair.d.ts +1 -0
- package/dist/commands/pair.js +12 -3
- package/dist/commands/pair.js.map +1 -1
- package/dist/commands/status.js +19 -29
- package/dist/commands/status.js.map +1 -1
- package/dist/i18n/index.js +30 -24
- package/dist/i18n/index.js.map +1 -1
- package/dist/index.js +9 -8
- package/dist/index.js.map +1 -1
- package/dist/platform/service-manager.d.ts +25 -0
- package/dist/platform/service-manager.js +426 -0
- package/dist/platform/service-manager.js.map +1 -0
- package/package.json +1 -1
- package/src/commands/install.ts +73 -100
- package/src/commands/pair.ts +12 -3
- package/src/commands/status.ts +20 -30
- package/src/i18n/index.ts +30 -24
- package/src/index.ts +10 -10
- package/src/platform/service-manager.ts +464 -0
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# ClawPilot
|
|
2
2
|
|
|
3
|
-
> OpenClaw relay client for
|
|
3
|
+
> OpenClaw relay client for macOS and Linux hosts — connects your gateway machine for iOS app communication.
|
|
4
4
|
|
|
5
5
|
## Installation
|
|
6
6
|
|
|
@@ -8,6 +8,14 @@
|
|
|
8
8
|
npm install -g @rethinkingstudio/clawpilot
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
+
### Beta Installation
|
|
12
|
+
|
|
13
|
+
For the Linux support test build:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npm install -g @rethinkingstudio/clawpilot@beta
|
|
17
|
+
```
|
|
18
|
+
|
|
11
19
|
## Usage
|
|
12
20
|
|
|
13
21
|
### Pair
|
|
@@ -18,8 +26,15 @@ Generate a QR code for iOS pairing:
|
|
|
18
26
|
clawpilot pair
|
|
19
27
|
```
|
|
20
28
|
|
|
29
|
+
Print only the pairing code without rendering a QR code:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
clawpilot pair --code-only
|
|
33
|
+
```
|
|
34
|
+
|
|
21
35
|
Options:
|
|
22
|
-
- `-n, --name <name>` — Display name for this
|
|
36
|
+
- `-n, --name <name>` — Display name for this host
|
|
37
|
+
- `--code-only` — Print only the access code and skip QR code output
|
|
23
38
|
|
|
24
39
|
### Run
|
|
25
40
|
|
|
@@ -31,23 +46,38 @@ clawpilot run
|
|
|
31
46
|
|
|
32
47
|
### Check Status
|
|
33
48
|
|
|
34
|
-
Show pairing config and
|
|
49
|
+
Show pairing config and background service status:
|
|
35
50
|
|
|
36
51
|
```bash
|
|
37
52
|
clawpilot status
|
|
38
53
|
```
|
|
39
54
|
|
|
40
|
-
###
|
|
55
|
+
### Install Background Service
|
|
41
56
|
|
|
42
|
-
Install as a
|
|
57
|
+
Install as a background service:
|
|
43
58
|
|
|
44
59
|
```bash
|
|
45
60
|
clawpilot install
|
|
46
61
|
```
|
|
47
62
|
|
|
63
|
+
- macOS: installs a `launchd` user agent
|
|
64
|
+
- Linux: prefers `systemd --user`, and falls back to `nohup` when `systemctl --user` is unavailable
|
|
65
|
+
|
|
66
|
+
On Linux hosts without `systemd --user`, `clawpilot install` will generate a fallback launcher at:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
~/.clawai/clawpilot-start.sh
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
You can start it manually with:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
bash ~/.clawai/clawpilot-start.sh
|
|
76
|
+
```
|
|
77
|
+
|
|
48
78
|
### Stop Service
|
|
49
79
|
|
|
50
|
-
Stop the relay client
|
|
80
|
+
Stop the relay client background service:
|
|
51
81
|
|
|
52
82
|
```bash
|
|
53
83
|
clawpilot stop
|
|
@@ -55,7 +85,7 @@ clawpilot stop
|
|
|
55
85
|
|
|
56
86
|
### Remove Service
|
|
57
87
|
|
|
58
|
-
Remove the
|
|
88
|
+
Remove the background service (keeps config):
|
|
59
89
|
|
|
60
90
|
```bash
|
|
61
91
|
clawpilot uninstall
|
|
@@ -70,7 +100,7 @@ clawpilot uninstall
|
|
|
70
100
|
|
|
71
101
|
## Requirements
|
|
72
102
|
|
|
73
|
-
- macOS
|
|
103
|
+
- macOS or Linux
|
|
74
104
|
- Node.js 18+
|
|
75
105
|
|
|
76
106
|
## License
|
|
@@ -2,7 +2,5 @@ export declare function isInstalled(): boolean;
|
|
|
2
2
|
export declare function installCommand(): void;
|
|
3
3
|
export declare function restartCommand(): void;
|
|
4
4
|
export declare function uninstallCommand(): void;
|
|
5
|
-
/** Stop relay client and remove from launchd (also cleans up legacy clawai service). */
|
|
6
5
|
export declare function stopCommand(): void;
|
|
7
|
-
/** Clear saved config and stop the service — use this when switching servers or on auth errors. */
|
|
8
6
|
export declare function resetCommand(): void;
|
package/dist/commands/install.js
CHANGED
|
@@ -1,125 +1,84 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { existsSync, unlinkSync } from "fs";
|
|
2
2
|
import { join } from "path";
|
|
3
3
|
import { homedir } from "os";
|
|
4
|
-
import { execSync } from "child_process";
|
|
5
4
|
import { t } from "../i18n/index.js";
|
|
6
|
-
|
|
7
|
-
const PLIST_LABEL_OLD = "com.rethinkingstudio.clawai"; // legacy, cleaned up by stop
|
|
8
|
-
const LAUNCH_AGENTS_DIR = join(homedir(), "Library", "LaunchAgents");
|
|
9
|
-
const PLIST_PATH = join(LAUNCH_AGENTS_DIR, `${PLIST_LABEL}.plist`);
|
|
10
|
-
const PLIST_PATH_OLD = join(LAUNCH_AGENTS_DIR, `${PLIST_LABEL_OLD}.plist`);
|
|
5
|
+
import { getServicePlatform, getServiceStatus, installService, restartService, stopService, uninstallService, servicePaths, } from "../platform/service-manager.js";
|
|
11
6
|
export function isInstalled() {
|
|
12
|
-
|
|
7
|
+
const platform = getServicePlatform();
|
|
8
|
+
if (platform === "macos")
|
|
9
|
+
return existsSync(servicePaths.macPlistPath);
|
|
10
|
+
if (platform === "linux") {
|
|
11
|
+
return existsSync(servicePaths.linuxServicePath) || existsSync(servicePaths.linuxNohupStartScriptPath);
|
|
12
|
+
}
|
|
13
|
+
return false;
|
|
13
14
|
}
|
|
14
15
|
export function installCommand() {
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
<key>KeepAlive</key>
|
|
37
|
-
<true/>
|
|
38
|
-
<key>StandardOutPath</key>
|
|
39
|
-
<string>${join(homedir(), ".clawai", "clawpilot.log")}</string>
|
|
40
|
-
<key>StandardErrorPath</key>
|
|
41
|
-
<string>${join(homedir(), ".clawai", "clawpilot-error.log")}</string>
|
|
42
|
-
</dict>
|
|
43
|
-
</plist>`;
|
|
44
|
-
mkdirSync(LAUNCH_AGENTS_DIR, { recursive: true });
|
|
45
|
-
mkdirSync(join(homedir(), ".clawai"), { recursive: true });
|
|
46
|
-
// Unload existing service first (ignore errors if not loaded)
|
|
47
|
-
try {
|
|
48
|
-
execSync(`launchctl unload -w "${PLIST_PATH}"`, { stdio: "pipe" });
|
|
49
|
-
}
|
|
50
|
-
catch { /* not loaded, that's fine */ }
|
|
51
|
-
writeFileSync(PLIST_PATH, plistContent, "utf-8");
|
|
52
|
-
try {
|
|
53
|
-
execSync(`launchctl load -w "${PLIST_PATH}"`, { stdio: "inherit" });
|
|
54
|
-
console.log(t("install.serviceStarted", PLIST_LABEL));
|
|
55
|
-
}
|
|
56
|
-
catch (err) {
|
|
57
|
-
console.error(t("install.loadFailed"), err);
|
|
58
|
-
console.log(t("install.plistWritten", PLIST_PATH));
|
|
59
|
-
console.log(t("install.loadManually", PLIST_PATH));
|
|
16
|
+
const platform = getServicePlatform();
|
|
17
|
+
if (platform === "unsupported") {
|
|
18
|
+
console.log(t("install.unsupported", process.platform));
|
|
19
|
+
console.log(t("install.runForeground"));
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
const started = installService();
|
|
23
|
+
if (started) {
|
|
24
|
+
const service = getServiceStatus();
|
|
25
|
+
console.log(t("install.serviceStarted", service.manager));
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
console.log(t("install.installFailed", platformName(platform)));
|
|
29
|
+
if (platform === "macos") {
|
|
30
|
+
console.log(t("install.serviceFileWritten", servicePaths.macPlistPath));
|
|
31
|
+
console.log(t("install.startManually", `launchctl load -w "${servicePaths.macPlistPath}"`));
|
|
32
|
+
}
|
|
33
|
+
else if (platform === "linux") {
|
|
34
|
+
console.log(t("install.serviceFileWritten", servicePaths.linuxServicePath));
|
|
35
|
+
console.log(t("install.startManually", "systemctl --user daemon-reload && systemctl --user enable --now clawpilot.service"));
|
|
36
|
+
console.log(t("install.startManually", `bash "${servicePaths.linuxNohupStartScriptPath}"`));
|
|
60
37
|
}
|
|
61
38
|
}
|
|
62
39
|
export function restartCommand() {
|
|
63
40
|
console.log(t("install.restarting"));
|
|
64
|
-
|
|
41
|
+
const platform = getServicePlatform();
|
|
42
|
+
if (platform === "unsupported") {
|
|
43
|
+
console.log(t("install.unsupported", process.platform));
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
if (restartService()) {
|
|
47
|
+
console.log(t("install.serviceRestarted", platformName(platform)));
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
console.log(t("install.restartFailed", platformName(platform)));
|
|
65
51
|
}
|
|
66
52
|
export function uninstallCommand() {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
console.log(t("install.
|
|
70
|
-
|
|
71
|
-
catch {
|
|
72
|
-
// May fail if not loaded
|
|
53
|
+
const platform = getServicePlatform();
|
|
54
|
+
if (platform === "unsupported") {
|
|
55
|
+
console.log(t("install.unsupported", process.platform));
|
|
56
|
+
return;
|
|
73
57
|
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
console.log(t("install.
|
|
58
|
+
const changed = uninstallService();
|
|
59
|
+
if (changed) {
|
|
60
|
+
console.log(t("install.stoppedAndRemoved", platformName(platform)));
|
|
77
61
|
}
|
|
78
|
-
|
|
79
|
-
console.
|
|
62
|
+
else {
|
|
63
|
+
console.log(t("install.noService"));
|
|
80
64
|
}
|
|
81
65
|
}
|
|
82
|
-
/** Stop relay client and remove from launchd (also cleans up legacy clawai service). */
|
|
83
66
|
export function stopCommand() {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
console.log(t("install.stopped", PLIST_LABEL));
|
|
89
|
-
stopped = true;
|
|
90
|
-
}
|
|
91
|
-
catch {
|
|
92
|
-
// Not loaded — that's fine
|
|
67
|
+
const platform = getServicePlatform();
|
|
68
|
+
if (platform === "unsupported") {
|
|
69
|
+
console.log(t("install.unsupported", process.platform));
|
|
70
|
+
return;
|
|
93
71
|
}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
catch { /* ignore */ }
|
|
98
|
-
// Stop + remove legacy clawai label
|
|
99
|
-
try {
|
|
100
|
-
execSync(`launchctl unload -w "${PLIST_PATH_OLD}"`, { stdio: "pipe" });
|
|
101
|
-
console.log(t("install.stopped", PLIST_LABEL_OLD));
|
|
102
|
-
stopped = true;
|
|
103
|
-
}
|
|
104
|
-
catch {
|
|
105
|
-
// Not loaded — that's fine
|
|
106
|
-
}
|
|
107
|
-
try {
|
|
108
|
-
execSync(`rm -f "${PLIST_PATH_OLD}"`, { stdio: "pipe" });
|
|
109
|
-
}
|
|
110
|
-
catch { /* ignore */ }
|
|
111
|
-
if (stopped) {
|
|
112
|
-
console.log(t("install.stoppedAndRemoved"));
|
|
72
|
+
const changed = stopService();
|
|
73
|
+
if (changed) {
|
|
74
|
+
console.log(t("install.stopped", platformName(platform)));
|
|
113
75
|
}
|
|
114
76
|
else {
|
|
115
77
|
console.log(t("install.noService"));
|
|
116
78
|
}
|
|
117
79
|
}
|
|
118
|
-
/** Clear saved config and stop the service — use this when switching servers or on auth errors. */
|
|
119
80
|
export function resetCommand() {
|
|
120
|
-
// Stop the service first
|
|
121
81
|
stopCommand();
|
|
122
|
-
// Remove config file
|
|
123
82
|
const configPath = join(homedir(), ".clawai", "config.json");
|
|
124
83
|
if (existsSync(configPath)) {
|
|
125
84
|
try {
|
|
@@ -135,4 +94,14 @@ export function resetCommand() {
|
|
|
135
94
|
}
|
|
136
95
|
console.log(t("install.resetComplete"));
|
|
137
96
|
}
|
|
97
|
+
function platformName(platform) {
|
|
98
|
+
switch (platform) {
|
|
99
|
+
case "macos":
|
|
100
|
+
return "launchd";
|
|
101
|
+
case "linux":
|
|
102
|
+
return "systemd/nohup";
|
|
103
|
+
default:
|
|
104
|
+
return process.platform;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
138
107
|
//# sourceMappingURL=install.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/pair.d.ts
CHANGED
package/dist/commands/pair.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { hostname } from "os";
|
|
2
2
|
import { execSync } from "child_process";
|
|
3
|
+
import { getServicePlatform } from "../platform/service-manager.js";
|
|
3
4
|
function sanitizeDisplayName(name) {
|
|
4
5
|
// Replace smart quotes and other problematic characters with regular ones
|
|
5
6
|
return name
|
|
@@ -9,6 +10,9 @@ function sanitizeDisplayName(name) {
|
|
|
9
10
|
.replace(/[^\x20-\x7E]/g, ""); // Remove any other non-ASCII characters
|
|
10
11
|
}
|
|
11
12
|
function getDisplayName() {
|
|
13
|
+
if (getServicePlatform() !== "macos") {
|
|
14
|
+
return hostname();
|
|
15
|
+
}
|
|
12
16
|
try {
|
|
13
17
|
const raw = execSync("scutil --get ComputerName", { encoding: "utf8" }).trim();
|
|
14
18
|
return sanitizeDisplayName(raw);
|
|
@@ -77,9 +81,14 @@ export async function pairCommand(opts) {
|
|
|
77
81
|
accessCode,
|
|
78
82
|
displayName,
|
|
79
83
|
});
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
84
|
+
if (opts.codeOnly) {
|
|
85
|
+
console.log(accessCode);
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
console.log(t("pair.scanQR"));
|
|
89
|
+
qrcodeTerminal.generate(qrPayload, { small: true });
|
|
90
|
+
console.log(t("pair.accessCode", accessCode));
|
|
91
|
+
}
|
|
83
92
|
console.log(t("pair.installingService"));
|
|
84
93
|
installCommand();
|
|
85
94
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pair.js","sourceRoot":"","sources":["../../src/commands/pair.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"pair.js","sourceRoot":"","sources":["../../src/commands/pair.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/status.js
CHANGED
|
@@ -1,24 +1,8 @@
|
|
|
1
|
-
import { existsSync } from "fs";
|
|
2
|
-
import { join } from "path";
|
|
3
|
-
import { homedir } from "os";
|
|
4
|
-
import { execSync } from "child_process";
|
|
5
1
|
import { configExists, readConfig, readGatewayUrl } from "../config/config.js";
|
|
6
2
|
import { t } from "../i18n/index.js";
|
|
7
|
-
|
|
8
|
-
const PLIST_PATH = join(homedir(), "Library", "LaunchAgents", `${PLIST_LABEL}.plist`);
|
|
9
|
-
const LOG_PATH = join(homedir(), ".clawai", "clawpilot.log");
|
|
10
|
-
function isServiceRunning() {
|
|
11
|
-
try {
|
|
12
|
-
execSync(`launchctl list ${PLIST_LABEL}`, { stdio: "pipe" });
|
|
13
|
-
return true;
|
|
14
|
-
}
|
|
15
|
-
catch {
|
|
16
|
-
return false;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
3
|
+
import { getServiceStatus } from "../platform/service-manager.js";
|
|
19
4
|
export function statusCommand() {
|
|
20
5
|
console.log(t("status.title"));
|
|
21
|
-
// Pairing config
|
|
22
6
|
if (!configExists()) {
|
|
23
7
|
console.log(t("status.notPaired"));
|
|
24
8
|
}
|
|
@@ -34,23 +18,29 @@ export function statusCommand() {
|
|
|
34
18
|
console.log(t("status.configCorrupted"));
|
|
35
19
|
}
|
|
36
20
|
}
|
|
37
|
-
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
21
|
+
console.log(t("status.gateway", readGatewayUrl()));
|
|
22
|
+
const service = getServiceStatus();
|
|
23
|
+
if (service.platform === "unsupported") {
|
|
24
|
+
console.log(t("status.serviceUnsupported", process.platform));
|
|
25
|
+
console.log("");
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
console.log(t("status.servicePlatform", service.manager));
|
|
29
|
+
if (!service.installed) {
|
|
44
30
|
console.log(t("status.serviceNotInstalled"));
|
|
45
31
|
}
|
|
46
|
-
else if (running) {
|
|
47
|
-
console.log(t("status.serviceRunning"));
|
|
48
|
-
console.log(t("status.serviceLog",
|
|
32
|
+
else if (service.running) {
|
|
33
|
+
console.log(t("status.serviceRunning", service.manager));
|
|
34
|
+
console.log(t("status.serviceLog", service.logPath));
|
|
49
35
|
}
|
|
50
36
|
else {
|
|
51
37
|
console.log(t("status.serviceNotRunning"));
|
|
52
|
-
|
|
53
|
-
|
|
38
|
+
if (service.servicePath) {
|
|
39
|
+
console.log(t("status.serviceFile", service.servicePath));
|
|
40
|
+
}
|
|
41
|
+
if (service.startHint) {
|
|
42
|
+
console.log(t("status.serviceStart", service.startHint));
|
|
43
|
+
}
|
|
54
44
|
}
|
|
55
45
|
console.log("");
|
|
56
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,CAAC,EAAE,MAAM,kBAAkB,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAElE,MAAM,UAAU,aAAa;IAC3B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;IAE/B,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACrC,CAAC;SAAM,CAAC;QACN,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,oBAAoB,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,kBAAkB,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;YACrD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,oBAAoB,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;QAC9D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,gBAAgB,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;IAEnD,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;IACnC,IAAI,OAAO,CAAC,QAAQ,KAAK,aAAa,EAAE,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,2BAA2B,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,wBAAwB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IAE1D,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC;IAC/C,CAAC;SAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,uBAAuB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,mBAAmB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IACvD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC;QAC3C,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,oBAAoB,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,qBAAqB,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC"}
|
package/dist/i18n/index.js
CHANGED
|
@@ -18,17 +18,18 @@ const en = {
|
|
|
18
18
|
"run.disconnected": "Relay disconnected. Reconnecting…",
|
|
19
19
|
"run.retry": (attempt, delay) => `Retry attempt ${attempt}, waiting ${delay}ms…`,
|
|
20
20
|
// install
|
|
21
|
-
"install.serviceStarted": (
|
|
22
|
-
"install.
|
|
23
|
-
"install.
|
|
24
|
-
"install.
|
|
21
|
+
"install.serviceStarted": (manager) => `Service installed and started via ${manager}.`,
|
|
22
|
+
"install.installFailed": (manager) => `Failed to activate service via ${manager}.`,
|
|
23
|
+
"install.serviceFileWritten": (path) => `Service file written to: ${path}`,
|
|
24
|
+
"install.startManually": (command) => `Start manually: ${command}`,
|
|
25
25
|
"install.restarting": "Restarting relay service…",
|
|
26
|
-
"install.
|
|
27
|
-
"install.
|
|
28
|
-
"install.
|
|
29
|
-
"install.
|
|
30
|
-
"install.stoppedAndRemoved": "Relay client stopped and removed from launchd.",
|
|
26
|
+
"install.serviceRestarted": (manager) => `Service restarted via ${manager}.`,
|
|
27
|
+
"install.restartFailed": (manager) => `Failed to restart service via ${manager}.`,
|
|
28
|
+
"install.stopped": (manager) => `Relay client stopped via ${manager}.`,
|
|
29
|
+
"install.stoppedAndRemoved": (manager) => `Relay client stopped and removed from ${manager}.`,
|
|
31
30
|
"install.noService": "No running relay service found.",
|
|
31
|
+
"install.unsupported": (platform) => `Background service management is not supported on platform: ${platform}`,
|
|
32
|
+
"install.runForeground": "Run `clawpilot run` manually in the foreground instead.",
|
|
32
33
|
"install.configRemoved": (path) => `Config removed: ${path}`,
|
|
33
34
|
"install.removeConfigFailed": "Failed to remove config:",
|
|
34
35
|
"install.noConfig": "No config file found.",
|
|
@@ -42,12 +43,14 @@ const en = {
|
|
|
42
43
|
"status.relayServer": (url) => ` Relay server : ${url}`,
|
|
43
44
|
"status.configCorrupted": "Config: ✗ File exists but is corrupted",
|
|
44
45
|
"status.gateway": (url) => `\nGateway: ${url}`,
|
|
46
|
+
"status.servicePlatform": (manager) => `\nService Manager: ${manager}`,
|
|
45
47
|
"status.serviceNotInstalled": "\nService: ✗ Not installed — run 'clawpilot install'",
|
|
46
|
-
"status.serviceRunning":
|
|
48
|
+
"status.serviceRunning": (manager) => `\nService: ✓ Running (${manager})`,
|
|
47
49
|
"status.serviceLog": (path) => ` Log : ${path}`,
|
|
48
50
|
"status.serviceNotRunning": "\nService: ⚠ Installed but not running",
|
|
49
|
-
"status.
|
|
50
|
-
"status.serviceStart": (
|
|
51
|
+
"status.serviceFile": (path) => ` Service file : ${path}`,
|
|
52
|
+
"status.serviceStart": (command) => ` Start : ${command}`,
|
|
53
|
+
"status.serviceUnsupported": (platform) => `\nService: - Unsupported on platform ${platform}`,
|
|
51
54
|
// set-token
|
|
52
55
|
"setToken.noPairing": "No pairing config found. Run 'clawpilot pair' first.",
|
|
53
56
|
"setToken.whereToFind": "\nWhere to find your Gateway Token:",
|
|
@@ -80,17 +83,18 @@ const zh = {
|
|
|
80
83
|
"run.disconnected": "中继已断开,正在重连…",
|
|
81
84
|
"run.retry": (attempt, delay) => `第 ${attempt} 次重试,等待 ${delay}ms…`,
|
|
82
85
|
// install
|
|
83
|
-
"install.serviceStarted": (
|
|
84
|
-
"install.
|
|
85
|
-
"install.
|
|
86
|
-
"install.
|
|
86
|
+
"install.serviceStarted": (manager) => `服务已通过 ${manager} 安装并启动。`,
|
|
87
|
+
"install.installFailed": (manager) => `通过 ${manager} 启动服务失败。`,
|
|
88
|
+
"install.serviceFileWritten": (path) => `服务文件已写入:${path}`,
|
|
89
|
+
"install.startManually": (command) => `请手动运行:${command}`,
|
|
87
90
|
"install.restarting": "正在重启中继服务…",
|
|
88
|
-
"install.
|
|
89
|
-
"install.
|
|
90
|
-
"install.
|
|
91
|
-
"install.
|
|
92
|
-
"install.stoppedAndRemoved": "中继客户端已停止并从 launchd 移除。",
|
|
91
|
+
"install.serviceRestarted": (manager) => `服务已通过 ${manager} 重启。`,
|
|
92
|
+
"install.restartFailed": (manager) => `通过 ${manager} 重启服务失败。`,
|
|
93
|
+
"install.stopped": (manager) => `已通过 ${manager} 停止中继客户端。`,
|
|
94
|
+
"install.stoppedAndRemoved": (manager) => `中继客户端已停止并从 ${manager} 移除。`,
|
|
93
95
|
"install.noService": "未找到正在运行的中继服务。",
|
|
96
|
+
"install.unsupported": (platform) => `当前平台 ${platform} 暂不支持后台服务管理`,
|
|
97
|
+
"install.runForeground": "请改用 `clawpilot run` 前台运行。",
|
|
94
98
|
"install.configRemoved": (path) => `配置文件已删除:${path}`,
|
|
95
99
|
"install.removeConfigFailed": "删除配置文件失败:",
|
|
96
100
|
"install.noConfig": "未找到配置文件。",
|
|
@@ -104,12 +108,14 @@ const zh = {
|
|
|
104
108
|
"status.relayServer": (url) => ` 中继服务器:${url}`,
|
|
105
109
|
"status.configCorrupted": "配置:✗ 文件存在但已损坏",
|
|
106
110
|
"status.gateway": (url) => `\n网关地址:${url}`,
|
|
111
|
+
"status.servicePlatform": (manager) => `\n服务管理器:${manager}`,
|
|
107
112
|
"status.serviceNotInstalled": "\n服务:✗ 未安装 — 请运行 'clawpilot install'",
|
|
108
|
-
"status.serviceRunning":
|
|
113
|
+
"status.serviceRunning": (manager) => `\n服务:✓ 运行中 (${manager})`,
|
|
109
114
|
"status.serviceLog": (path) => ` 日志:${path}`,
|
|
110
115
|
"status.serviceNotRunning": "\n服务:⚠ 已安装但未运行",
|
|
111
|
-
"status.
|
|
112
|
-
"status.serviceStart": (
|
|
116
|
+
"status.serviceFile": (path) => ` 服务文件:${path}`,
|
|
117
|
+
"status.serviceStart": (command) => ` 启动命令:${command}`,
|
|
118
|
+
"status.serviceUnsupported": (platform) => `\n服务:- 平台 ${platform} 暂不支持`,
|
|
113
119
|
// set-token
|
|
114
120
|
"setToken.noPairing": "未找到配对配置,请先运行 'clawpilot pair'。",
|
|
115
121
|
"setToken.whereToFind": "\n如何查找 Gateway Token:",
|
package/dist/i18n/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/i18n/index.ts"],"names":[],"mappings":"AAIA,MAAM,EAAE,GAA6B;IACnC,OAAO;IACP,wBAAwB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,kCAAkC,EAAE,4BAA4B;IAClG,yBAAyB,EAAE,+HAA+H;IAC1J,oBAAoB,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,kCAAkC,MAAM,IAAI,IAAI,EAAE;IAC1F,kBAAkB,EAAE,gCAAgC;IACpD,yBAAyB,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,wBAAwB,MAAM,IAAI,IAAI,EAAE;IACrF,iBAAiB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,2BAA2B,EAAE,EAAE;IAC1D,aAAa,EAAE,gDAAgD;IAC/D,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,iCAAiC,IAAI,EAAE;IACpE,wBAAwB,EAAE,iDAAiD;IAE3E,MAAM;IACN,cAAc,EAAE,+BAA+B;IAC/C,eAAe,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,mBAAmB,EAAE,EAAE;IAChD,iBAAiB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAmB,GAAG,EAAE;IACpD,gBAAgB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAmB,GAAG,EAAE;IACnD,eAAe,EAAE,kBAAkB;IACnC,kBAAkB,EAAE,mCAAmC;IACvD,WAAW,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,iBAAiB,OAAO,aAAa,KAAK,KAAK;IAEhF,UAAU;IACV,wBAAwB,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/i18n/index.ts"],"names":[],"mappings":"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"}
|