@rethinkingstudio/clawpilot 1.0.14 → 1.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/pair.js +12 -3
- package/dist/commands/pair.js.map +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/src/commands/pair.ts +13 -3
- package/src/index.ts +1 -1
package/dist/commands/pair.js
CHANGED
|
@@ -1,8 +1,17 @@
|
|
|
1
1
|
import { hostname } from "os";
|
|
2
2
|
import { execSync } from "child_process";
|
|
3
|
+
function sanitizeDisplayName(name) {
|
|
4
|
+
// Replace smart quotes and other problematic characters with regular ones
|
|
5
|
+
return name
|
|
6
|
+
.replace(/[\u2018\u2019\u201C\u201D]/g, "'") // Smart quotes → regular quotes
|
|
7
|
+
.replace(/[\u2013\u2014]/g, "-") // En/em dashes → regular dash
|
|
8
|
+
.replace(/[\u00A0]/g, " ") // Non-breaking space → regular space
|
|
9
|
+
.replace(/[^\x20-\x7E]/g, ""); // Remove any other non-ASCII characters
|
|
10
|
+
}
|
|
3
11
|
function getDisplayName() {
|
|
4
12
|
try {
|
|
5
|
-
|
|
13
|
+
const raw = execSync("scutil --get ComputerName", { encoding: "utf8" }).trim();
|
|
14
|
+
return sanitizeDisplayName(raw);
|
|
6
15
|
}
|
|
7
16
|
catch {
|
|
8
17
|
return hostname();
|
|
@@ -24,7 +33,7 @@ export async function pairCommand(opts) {
|
|
|
24
33
|
const config = readConfig();
|
|
25
34
|
gatewayId = config.gatewayId;
|
|
26
35
|
relaySecret = config.relaySecret;
|
|
27
|
-
displayName = opts.name
|
|
36
|
+
displayName = opts.name ? sanitizeDisplayName(opts.name) : config.displayName;
|
|
28
37
|
console.log(t("pair.alreadyRegistered", gatewayId));
|
|
29
38
|
const res = await fetch(`${httpBase}/api/relay/accesscode`, {
|
|
30
39
|
method: "POST",
|
|
@@ -43,7 +52,7 @@ export async function pairCommand(opts) {
|
|
|
43
52
|
writeConfig({ ...config, relayServerUrl, displayName });
|
|
44
53
|
}
|
|
45
54
|
else {
|
|
46
|
-
displayName = opts.name
|
|
55
|
+
displayName = opts.name ? sanitizeDisplayName(opts.name) : getDisplayName();
|
|
47
56
|
console.log(t("pair.registering"));
|
|
48
57
|
const res = await fetch(`${httpBase}/api/relay/register`, {
|
|
49
58
|
method: "POST",
|
|
@@ -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;AAEzC,SAAS,cAAc;IACrB,IAAI,CAAC;QACH,
|
|
1
|
+
{"version":3,"file":"pair.js","sourceRoot":"","sources":["../../src/commands/pair.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -5,7 +5,7 @@ import { runCommand } from "./commands/run.js";
|
|
|
5
5
|
import { installCommand, uninstallCommand, stopCommand, restartCommand, resetCommand } from "./commands/install.js";
|
|
6
6
|
import { statusCommand } from "./commands/status.js";
|
|
7
7
|
import { setTokenCommand } from "./commands/set-token.js";
|
|
8
|
-
const version = "1.0.
|
|
8
|
+
const version = "1.0.15";
|
|
9
9
|
const program = new Command();
|
|
10
10
|
program
|
|
11
11
|
.name("clawpilot")
|
package/package.json
CHANGED
package/src/commands/pair.ts
CHANGED
|
@@ -1,9 +1,19 @@
|
|
|
1
1
|
import { hostname } from "os";
|
|
2
2
|
import { execSync } from "child_process";
|
|
3
3
|
|
|
4
|
+
function sanitizeDisplayName(name: string): string {
|
|
5
|
+
// Replace smart quotes and other problematic characters with regular ones
|
|
6
|
+
return name
|
|
7
|
+
.replace(/[\u2018\u2019\u201C\u201D]/g, "'") // Smart quotes → regular quotes
|
|
8
|
+
.replace(/[\u2013\u2014]/g, "-") // En/em dashes → regular dash
|
|
9
|
+
.replace(/[\u00A0]/g, " ") // Non-breaking space → regular space
|
|
10
|
+
.replace(/[^\x20-\x7E]/g, ""); // Remove any other non-ASCII characters
|
|
11
|
+
}
|
|
12
|
+
|
|
4
13
|
function getDisplayName(): string {
|
|
5
14
|
try {
|
|
6
|
-
|
|
15
|
+
const raw = execSync("scutil --get ComputerName", { encoding: "utf8" }).trim();
|
|
16
|
+
return sanitizeDisplayName(raw);
|
|
7
17
|
} catch {
|
|
8
18
|
return hostname();
|
|
9
19
|
}
|
|
@@ -33,7 +43,7 @@ export async function pairCommand(opts: PairOptions): Promise<void> {
|
|
|
33
43
|
const config = readConfig();
|
|
34
44
|
gatewayId = config.gatewayId;
|
|
35
45
|
relaySecret = config.relaySecret;
|
|
36
|
-
displayName = opts.name
|
|
46
|
+
displayName = opts.name ? sanitizeDisplayName(opts.name) : config.displayName;
|
|
37
47
|
|
|
38
48
|
console.log(t("pair.alreadyRegistered", gatewayId));
|
|
39
49
|
|
|
@@ -56,7 +66,7 @@ export async function pairCommand(opts: PairOptions): Promise<void> {
|
|
|
56
66
|
|
|
57
67
|
writeConfig({ ...config, relayServerUrl, displayName });
|
|
58
68
|
} else {
|
|
59
|
-
displayName = opts.name
|
|
69
|
+
displayName = opts.name ? sanitizeDisplayName(opts.name) : getDisplayName();
|
|
60
70
|
console.log(t("pair.registering"));
|
|
61
71
|
|
|
62
72
|
const res = await fetch(`${httpBase}/api/relay/register`, {
|
package/src/index.ts
CHANGED
|
@@ -6,7 +6,7 @@ import { installCommand, uninstallCommand, stopCommand, restartCommand, resetCom
|
|
|
6
6
|
import { statusCommand } from "./commands/status.js";
|
|
7
7
|
import { setTokenCommand } from "./commands/set-token.js";
|
|
8
8
|
|
|
9
|
-
const version = "1.0.
|
|
9
|
+
const version = "1.0.15";
|
|
10
10
|
|
|
11
11
|
const program = new Command();
|
|
12
12
|
|