@silicaclaw/cli 1.0.0-beta.5 → 1.0.0-beta.6

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/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.6",
4
4
  "private": false,
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -66,6 +66,25 @@ detect_public_ip() {
66
66
  printf '%s' "$ip"
67
67
  }
68
68
 
69
+ url_host() {
70
+ local raw="${1:-}"
71
+ if [ -z "$raw" ]; then
72
+ printf ''
73
+ return 0
74
+ fi
75
+ node -e "try{const u=new URL(process.argv[1]); process.stdout.write(u.hostname||'');}catch{process.stdout.write('');}" "$raw"
76
+ }
77
+
78
+ url_port_or_default() {
79
+ local raw="${1:-}"
80
+ local fallback="${2:-4510}"
81
+ if [ -z "$raw" ]; then
82
+ printf '%s' "$fallback"
83
+ return 0
84
+ fi
85
+ node -e "try{const u=new URL(process.argv[1]); process.stdout.write(String(u.port || '$fallback'));}catch{process.stdout.write('$fallback');}" "$raw"
86
+ }
87
+
69
88
  title "SilicaClaw Quick Start 启动"
70
89
  echo "目录: $ROOT_DIR"
71
90
  echo "目标: 用终端一步步完成安装与启动(类似 OpenClaw Quick Start)"
@@ -158,6 +177,7 @@ NETWORK_MODE="local"
158
177
  NETWORK_ADAPTER="local-event-bus"
159
178
  WEBRTC_SIGNALING_URL_VALUE=""
160
179
  WEBRTC_ROOM_VALUE="silicaclaw-demo"
180
+ AUTO_START_SIGNALING=0
161
181
 
162
182
  case "$MODE_PICK" in
163
183
  2)
@@ -168,7 +188,7 @@ case "$MODE_PICK" in
168
188
  NETWORK_MODE="global-preview"
169
189
  NETWORK_ADAPTER="webrtc-preview"
170
190
  PUBLIC_IP="$(detect_public_ip)"
171
- SIGNALING_DEFAULT="http://localhost:4510"
191
+ SIGNALING_DEFAULT="${WEBRTC_SIGNALING_URL:-http://localhost:4510}"
172
192
  if [ -n "$PUBLIC_IP" ]; then
173
193
  SIGNALING_DEFAULT="http://$PUBLIC_IP:4510"
174
194
  fi
@@ -186,6 +206,18 @@ case "$MODE_PICK" in
186
206
  echo "global-preview 必须提供 signaling URL"
187
207
  exit 1
188
208
  fi
209
+
210
+ SIGNALING_HOST="$(url_host "$WEBRTC_SIGNALING_URL_VALUE")"
211
+ if [ "$SIGNALING_HOST" = "localhost" ] || [ "$SIGNALING_HOST" = "127.0.0.1" ]; then
212
+ echo "提示: 当前 signaling URL 是本机地址,仅本机可用,不适合跨网络双机演示。"
213
+ fi
214
+
215
+ if ask_yes_no "是否在当前机器自动后台启动 signaling server(用于演示)?" "Y"; then
216
+ AUTO_START_SIGNALING=1
217
+ SIGNALING_PORT_VALUE="$(url_port_or_default "$WEBRTC_SIGNALING_URL_VALUE" "4510")"
218
+ echo "将尝试以 PORT=$SIGNALING_PORT_VALUE 后台启动 signaling server"
219
+ fi
220
+
189
221
  read -r -p "请输入 room(默认 silicaclaw-demo): " WEBRTC_ROOM_VALUE_INPUT || true
190
222
  WEBRTC_ROOM_VALUE="${WEBRTC_ROOM_VALUE_INPUT:-silicaclaw-demo}"
191
223
  ;;
@@ -199,6 +231,14 @@ echo "已选择: $NETWORK_MODE ($NETWORK_ADAPTER)"
199
231
 
200
232
  title "启动 local-console"
201
233
  if [ "$NETWORK_MODE" = "global-preview" ]; then
234
+ if [ "$AUTO_START_SIGNALING" -eq 1 ]; then
235
+ mkdir -p "$WORK_DIR/.silicaclaw"
236
+ SIGNALING_LOG="$WORK_DIR/.silicaclaw/signaling.log"
237
+ SIGNALING_PID_FILE="$WORK_DIR/.silicaclaw/signaling.pid"
238
+ run_cmd "cd \"$WORK_DIR\" && PORT=${SIGNALING_PORT_VALUE:-4510} nohup npm run webrtc-signaling > \"$SIGNALING_LOG\" 2>&1 & echo \$! > \"$SIGNALING_PID_FILE\""
239
+ echo "已后台启动 signaling server,日志: $SIGNALING_LOG"
240
+ echo "停止 signaling: kill \$(cat \"$SIGNALING_PID_FILE\")"
241
+ fi
202
242
  echo "将使用以下参数启动:"
203
243
  echo "NETWORK_ADAPTER=$NETWORK_ADAPTER"
204
244
  echo "WEBRTC_SIGNALING_URL=$WEBRTC_SIGNALING_URL_VALUE"