@silicaclaw/cli 1.0.0-beta.5 → 1.0.0-beta.7
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/INSTALL.md +7 -0
- package/README.md +13 -0
- package/package.json +1 -1
- package/scripts/quickstart.sh +55 -3
- package/scripts/silicaclaw-cli.mjs +11 -0
package/INSTALL.md
CHANGED
|
@@ -22,6 +22,12 @@ CLI-style onboarding command (recommended, zero-config):
|
|
|
22
22
|
npx @silicaclaw/cli@beta onboard
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
+
Cross-network quick wizard (defaults to global-preview):
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
npx @silicaclaw/cli@beta connect
|
|
29
|
+
```
|
|
30
|
+
|
|
25
31
|
For most home users, just press Enter on defaults and use `local` mode first.
|
|
26
32
|
|
|
27
33
|
Optional global install (advanced users only):
|
|
@@ -29,6 +35,7 @@ Optional global install (advanced users only):
|
|
|
29
35
|
```bash
|
|
30
36
|
npm i -g @silicaclaw/cli
|
|
31
37
|
silicaclaw onboard
|
|
38
|
+
silicaclaw connect
|
|
32
39
|
```
|
|
33
40
|
|
|
34
41
|
## 3. Run
|
package/README.md
CHANGED
|
@@ -28,6 +28,12 @@ Without servers, accounts, or central control.
|
|
|
28
28
|
npx @silicaclaw/cli@beta onboard
|
|
29
29
|
```
|
|
30
30
|
|
|
31
|
+
Cross-network preview quick wizard:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
npx @silicaclaw/cli@beta connect
|
|
35
|
+
```
|
|
36
|
+
|
|
31
37
|
Or manual:
|
|
32
38
|
|
|
33
39
|
```bash
|
|
@@ -53,11 +59,18 @@ Zero-config (recommended, no global install / no PATH setup):
|
|
|
53
59
|
npx @silicaclaw/cli@beta onboard
|
|
54
60
|
```
|
|
55
61
|
|
|
62
|
+
Cross-network preview (global-preview first):
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
npx @silicaclaw/cli@beta connect
|
|
66
|
+
```
|
|
67
|
+
|
|
56
68
|
Optional global install:
|
|
57
69
|
|
|
58
70
|
```bash
|
|
59
71
|
npm i -g @silicaclaw/cli
|
|
60
72
|
silicaclaw onboard
|
|
73
|
+
silicaclaw connect
|
|
61
74
|
```
|
|
62
75
|
|
|
63
76
|
## Quick Start (OpenClaw-style)
|
package/package.json
CHANGED
package/scripts/quickstart.sh
CHANGED
|
@@ -5,6 +5,13 @@ INVOKE_PWD="${INIT_CWD:-$PWD}"
|
|
|
5
5
|
ROOT_DIR="$(cd "$(dirname "$0")/.." && pwd)"
|
|
6
6
|
WORK_DIR="$ROOT_DIR"
|
|
7
7
|
IS_NPX_MODE=0
|
|
8
|
+
DEFAULT_MODE_PICK="${QUICKSTART_DEFAULT_MODE:-1}"
|
|
9
|
+
CONNECT_MODE="${QUICKSTART_CONNECT_MODE:-0}"
|
|
10
|
+
|
|
11
|
+
case "$DEFAULT_MODE_PICK" in
|
|
12
|
+
1|2|3) ;;
|
|
13
|
+
*) DEFAULT_MODE_PICK="1" ;;
|
|
14
|
+
esac
|
|
8
15
|
|
|
9
16
|
case "$ROOT_DIR" in
|
|
10
17
|
*"/.npm/_npx/"*)
|
|
@@ -66,6 +73,25 @@ detect_public_ip() {
|
|
|
66
73
|
printf '%s' "$ip"
|
|
67
74
|
}
|
|
68
75
|
|
|
76
|
+
url_host() {
|
|
77
|
+
local raw="${1:-}"
|
|
78
|
+
if [ -z "$raw" ]; then
|
|
79
|
+
printf ''
|
|
80
|
+
return 0
|
|
81
|
+
fi
|
|
82
|
+
node -e "try{const u=new URL(process.argv[1]); process.stdout.write(u.hostname||'');}catch{process.stdout.write('');}" "$raw"
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
url_port_or_default() {
|
|
86
|
+
local raw="${1:-}"
|
|
87
|
+
local fallback="${2:-4510}"
|
|
88
|
+
if [ -z "$raw" ]; then
|
|
89
|
+
printf '%s' "$fallback"
|
|
90
|
+
return 0
|
|
91
|
+
fi
|
|
92
|
+
node -e "try{const u=new URL(process.argv[1]); process.stdout.write(String(u.port || '$fallback'));}catch{process.stdout.write('$fallback');}" "$raw"
|
|
93
|
+
}
|
|
94
|
+
|
|
69
95
|
title "SilicaClaw Quick Start 启动"
|
|
70
96
|
echo "目录: $ROOT_DIR"
|
|
71
97
|
echo "目标: 用终端一步步完成安装与启动(类似 OpenClaw Quick Start)"
|
|
@@ -151,13 +177,19 @@ echo "2) lan 局域网预览(A/B 双机)"
|
|
|
151
177
|
echo "3) global-preview 非局域网预览(WebRTC)"
|
|
152
178
|
echo "提示: 不确定就直接回车(默认 local)。"
|
|
153
179
|
echo "提示: 只有在你已有可达 signaling 地址时,才选择 3。"
|
|
154
|
-
|
|
155
|
-
MODE_PICK="
|
|
180
|
+
if [ "$CONNECT_MODE" = "1" ]; then
|
|
181
|
+
MODE_PICK="3"
|
|
182
|
+
echo "connect 模式:已自动选择 global-preview。"
|
|
183
|
+
else
|
|
184
|
+
read -r -p "请输入模式编号 [1/2/3] (默认 ${DEFAULT_MODE_PICK}): " MODE_PICK || true
|
|
185
|
+
MODE_PICK="${MODE_PICK:-$DEFAULT_MODE_PICK}"
|
|
186
|
+
fi
|
|
156
187
|
|
|
157
188
|
NETWORK_MODE="local"
|
|
158
189
|
NETWORK_ADAPTER="local-event-bus"
|
|
159
190
|
WEBRTC_SIGNALING_URL_VALUE=""
|
|
160
191
|
WEBRTC_ROOM_VALUE="silicaclaw-demo"
|
|
192
|
+
AUTO_START_SIGNALING=0
|
|
161
193
|
|
|
162
194
|
case "$MODE_PICK" in
|
|
163
195
|
2)
|
|
@@ -168,7 +200,7 @@ case "$MODE_PICK" in
|
|
|
168
200
|
NETWORK_MODE="global-preview"
|
|
169
201
|
NETWORK_ADAPTER="webrtc-preview"
|
|
170
202
|
PUBLIC_IP="$(detect_public_ip)"
|
|
171
|
-
SIGNALING_DEFAULT="http://localhost:4510"
|
|
203
|
+
SIGNALING_DEFAULT="${WEBRTC_SIGNALING_URL:-http://localhost:4510}"
|
|
172
204
|
if [ -n "$PUBLIC_IP" ]; then
|
|
173
205
|
SIGNALING_DEFAULT="http://$PUBLIC_IP:4510"
|
|
174
206
|
fi
|
|
@@ -186,6 +218,18 @@ case "$MODE_PICK" in
|
|
|
186
218
|
echo "global-preview 必须提供 signaling URL"
|
|
187
219
|
exit 1
|
|
188
220
|
fi
|
|
221
|
+
|
|
222
|
+
SIGNALING_HOST="$(url_host "$WEBRTC_SIGNALING_URL_VALUE")"
|
|
223
|
+
if [ "$SIGNALING_HOST" = "localhost" ] || [ "$SIGNALING_HOST" = "127.0.0.1" ]; then
|
|
224
|
+
echo "提示: 当前 signaling URL 是本机地址,仅本机可用,不适合跨网络双机演示。"
|
|
225
|
+
fi
|
|
226
|
+
|
|
227
|
+
if ask_yes_no "是否在当前机器自动后台启动 signaling server(用于演示)?" "Y"; then
|
|
228
|
+
AUTO_START_SIGNALING=1
|
|
229
|
+
SIGNALING_PORT_VALUE="$(url_port_or_default "$WEBRTC_SIGNALING_URL_VALUE" "4510")"
|
|
230
|
+
echo "将尝试以 PORT=$SIGNALING_PORT_VALUE 后台启动 signaling server"
|
|
231
|
+
fi
|
|
232
|
+
|
|
189
233
|
read -r -p "请输入 room(默认 silicaclaw-demo): " WEBRTC_ROOM_VALUE_INPUT || true
|
|
190
234
|
WEBRTC_ROOM_VALUE="${WEBRTC_ROOM_VALUE_INPUT:-silicaclaw-demo}"
|
|
191
235
|
;;
|
|
@@ -199,6 +243,14 @@ echo "已选择: $NETWORK_MODE ($NETWORK_ADAPTER)"
|
|
|
199
243
|
|
|
200
244
|
title "启动 local-console"
|
|
201
245
|
if [ "$NETWORK_MODE" = "global-preview" ]; then
|
|
246
|
+
if [ "$AUTO_START_SIGNALING" -eq 1 ]; then
|
|
247
|
+
mkdir -p "$WORK_DIR/.silicaclaw"
|
|
248
|
+
SIGNALING_LOG="$WORK_DIR/.silicaclaw/signaling.log"
|
|
249
|
+
SIGNALING_PID_FILE="$WORK_DIR/.silicaclaw/signaling.pid"
|
|
250
|
+
run_cmd "cd \"$WORK_DIR\" && PORT=${SIGNALING_PORT_VALUE:-4510} nohup npm run webrtc-signaling > \"$SIGNALING_LOG\" 2>&1 & echo \$! > \"$SIGNALING_PID_FILE\""
|
|
251
|
+
echo "已后台启动 signaling server,日志: $SIGNALING_LOG"
|
|
252
|
+
echo "停止 signaling: kill \$(cat \"$SIGNALING_PID_FILE\")"
|
|
253
|
+
fi
|
|
202
254
|
echo "将使用以下参数启动:"
|
|
203
255
|
echo "NETWORK_ADAPTER=$NETWORK_ADAPTER"
|
|
204
256
|
echo "WEBRTC_SIGNALING_URL=$WEBRTC_SIGNALING_URL_VALUE"
|
|
@@ -35,6 +35,7 @@ SilicaClaw CLI
|
|
|
35
35
|
|
|
36
36
|
Usage:
|
|
37
37
|
silicaclaw onboard
|
|
38
|
+
silicaclaw connect
|
|
38
39
|
silicaclaw local-console
|
|
39
40
|
silicaclaw explorer
|
|
40
41
|
silicaclaw signaling
|
|
@@ -44,6 +45,7 @@ Usage:
|
|
|
44
45
|
|
|
45
46
|
Commands:
|
|
46
47
|
onboard Interactive step-by-step onboarding (recommended)
|
|
48
|
+
connect Cross-network connect wizard (global-preview first)
|
|
47
49
|
local-console Start local console (http://localhost:4310)
|
|
48
50
|
explorer Start public explorer (http://localhost:4311)
|
|
49
51
|
signaling Start WebRTC signaling preview server
|
|
@@ -59,6 +61,15 @@ switch (cmd) {
|
|
|
59
61
|
case "onboard":
|
|
60
62
|
run("bash", [resolve(ROOT_DIR, "scripts", "quickstart.sh")]);
|
|
61
63
|
break;
|
|
64
|
+
case "connect":
|
|
65
|
+
run("bash", [resolve(ROOT_DIR, "scripts", "quickstart.sh")], {
|
|
66
|
+
env: {
|
|
67
|
+
...process.env,
|
|
68
|
+
QUICKSTART_DEFAULT_MODE: "3",
|
|
69
|
+
QUICKSTART_CONNECT_MODE: "1",
|
|
70
|
+
},
|
|
71
|
+
});
|
|
72
|
+
break;
|
|
62
73
|
case "local-console":
|
|
63
74
|
case "console":
|
|
64
75
|
run("npm", ["run", "local-console"]);
|