@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 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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@silicaclaw/cli",
3
- "version": "1.0.0-beta.5",
3
+ "version": "1.0.0-beta.7",
4
4
  "private": false,
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -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
- read -r -p "请输入模式编号 [1/2/3] (默认 1): " MODE_PICK || true
155
- MODE_PICK="${MODE_PICK:-1}"
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"]);