@silicaclaw/cli 1.0.0-beta.0 → 1.0.0-beta.2

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
@@ -16,14 +16,13 @@ cd silicaclaw
16
16
  npm install
17
17
  ```
18
18
 
19
- CLI-style onboarding command:
19
+ CLI-style onboarding command (recommended, zero-config):
20
20
 
21
21
  ```bash
22
- npm i -g .
23
- silicaclaw onboard
22
+ npx @silicaclaw/cli@beta onboard
24
23
  ```
25
24
 
26
- After publishing to npm org:
25
+ Optional global install (advanced users only):
27
26
 
28
27
  ```bash
29
28
  npm i -g @silicaclaw/cli
package/README.md CHANGED
@@ -25,7 +25,7 @@ Without servers, accounts, or central control.
25
25
  ## Quick Start
26
26
 
27
27
  ```bash
28
- npm run quickstart
28
+ npx @silicaclaw/cli@beta onboard
29
29
  ```
30
30
 
31
31
  Or manual:
@@ -47,14 +47,13 @@ Open: `http://localhost:4311`
47
47
 
48
48
  ## CLI Onboard Flow
49
49
 
50
- Current repo-local install (works now):
50
+ Zero-config (recommended, no global install / no PATH setup):
51
51
 
52
52
  ```bash
53
- npm i -g .
54
- silicaclaw onboard
53
+ npx @silicaclaw/cli@beta onboard
55
54
  ```
56
55
 
57
- After publishing to npm:
56
+ Optional global install:
58
57
 
59
58
  ```bash
60
59
  npm i -g @silicaclaw/cli
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@silicaclaw/cli",
3
- "version": "1.0.0-beta.0",
3
+ "version": "1.0.0-beta.2",
4
4
  "private": false,
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -2,7 +2,14 @@
2
2
  set -euo pipefail
3
3
 
4
4
  ROOT_DIR="$(cd "$(dirname "$0")/.." && pwd)"
5
- cd "$ROOT_DIR"
5
+ WORK_DIR="$ROOT_DIR"
6
+ IS_NPX_MODE=0
7
+
8
+ case "$ROOT_DIR" in
9
+ *"/.npm/_npx/"*)
10
+ IS_NPX_MODE=1
11
+ ;;
12
+ esac
6
13
 
7
14
  STEP=1
8
15
 
@@ -48,6 +55,37 @@ echo "目录: $ROOT_DIR"
48
55
  echo "目标: 用终端一步步完成安装与启动(类似 OpenClaw Quick Start)"
49
56
  pause_continue
50
57
 
58
+ if [ "$IS_NPX_MODE" -eq 1 ]; then
59
+ title "选择安装目录(npx 模式)"
60
+ DEFAULT_TARGET_DIR="$(pwd)/silicaclaw"
61
+ TARGET_DIR_INPUT=""
62
+ read -r -p "请输入安装目录(默认: ${DEFAULT_TARGET_DIR:-$HOME/silicaclaw}): " TARGET_DIR_INPUT || true
63
+ TARGET_DIR="${TARGET_DIR_INPUT:-$DEFAULT_TARGET_DIR}"
64
+ TARGET_DIR="${TARGET_DIR/#\~/$HOME}"
65
+
66
+ if [ -e "$TARGET_DIR" ] && [ ! -d "$TARGET_DIR" ]; then
67
+ echo "目标路径存在且不是目录: $TARGET_DIR"
68
+ exit 1
69
+ fi
70
+
71
+ mkdir -p "$TARGET_DIR"
72
+ echo "正在复制项目文件到: $TARGET_DIR"
73
+ if command -v rsync >/dev/null 2>&1; then
74
+ rsync -a --delete \
75
+ --exclude '.git/' \
76
+ --exclude 'node_modules/' \
77
+ --exclude '.npm-cache/' \
78
+ --exclude '*.tgz' \
79
+ "$ROOT_DIR/" "$TARGET_DIR/"
80
+ else
81
+ cp -R "$ROOT_DIR/." "$TARGET_DIR/"
82
+ rm -rf "$TARGET_DIR/.git" "$TARGET_DIR/node_modules" "$TARGET_DIR/.npm-cache"
83
+ fi
84
+ WORK_DIR="$TARGET_DIR"
85
+ echo "工作目录已切换到: $WORK_DIR"
86
+ pause_continue
87
+ fi
88
+
51
89
  title "检查 Node.js / npm"
52
90
  if ! command -v node >/dev/null 2>&1; then
53
91
  echo "未找到 node,请先安装 Node.js 18+"
@@ -69,23 +107,23 @@ if ! node -e "const v=process.versions.node.split('.').map(Number); if (v[0] < 1
69
107
  fi
70
108
 
71
109
  title "安装依赖"
72
- if [ ! -d "$ROOT_DIR/node_modules" ]; then
73
- run_cmd "npm install"
110
+ if [ ! -d "$WORK_DIR/node_modules" ]; then
111
+ run_cmd "cd \"$WORK_DIR\" && npm_config_cache=\"$WORK_DIR/.npm-cache\" npm install"
74
112
  else
75
113
  if ask_yes_no "检测到 node_modules,是否仍执行 npm install 同步依赖?" "N"; then
76
- run_cmd "npm install"
114
+ run_cmd "cd \"$WORK_DIR\" && npm_config_cache=\"$WORK_DIR/.npm-cache\" npm install"
77
115
  else
78
116
  echo "跳过 npm install"
79
117
  fi
80
118
  fi
81
119
 
82
120
  title "准备 social.md"
83
- if [ -f "$ROOT_DIR/social.md" ]; then
121
+ if [ -f "$WORK_DIR/social.md" ]; then
84
122
  echo "已存在 social.md,保留现有配置。"
85
123
  else
86
124
  if ask_yes_no "未找到 social.md,是否自动从 social.md.example 生成?" "Y"; then
87
- run_cmd "cp social.md.example social.md"
88
- echo "已生成: $ROOT_DIR/social.md"
125
+ run_cmd "cd \"$WORK_DIR\" && cp social.md.example social.md"
126
+ echo "已生成: $WORK_DIR/social.md"
89
127
  else
90
128
  echo "跳过生成 social.md(local-console 首启也会自动生成最小模板)"
91
129
  fi
@@ -134,11 +172,10 @@ if [ "$NETWORK_MODE" = "global-preview" ]; then
134
172
  echo "WEBRTC_SIGNALING_URL=$WEBRTC_SIGNALING_URL_VALUE"
135
173
  echo "WEBRTC_ROOM=$WEBRTC_ROOM_VALUE"
136
174
  pause_continue
137
- run_cmd "NETWORK_ADAPTER=$NETWORK_ADAPTER WEBRTC_SIGNALING_URL=$WEBRTC_SIGNALING_URL_VALUE WEBRTC_ROOM=$WEBRTC_ROOM_VALUE npm run local-console"
175
+ run_cmd "cd \"$WORK_DIR\" && NETWORK_ADAPTER=$NETWORK_ADAPTER WEBRTC_SIGNALING_URL=$WEBRTC_SIGNALING_URL_VALUE WEBRTC_ROOM=$WEBRTC_ROOM_VALUE npm run local-console"
138
176
  else
139
177
  echo "将使用以下参数启动:"
140
178
  echo "NETWORK_ADAPTER=$NETWORK_ADAPTER"
141
179
  pause_continue
142
- run_cmd "NETWORK_ADAPTER=$NETWORK_ADAPTER npm run local-console"
180
+ run_cmd "cd \"$WORK_DIR\" && NETWORK_ADAPTER=$NETWORK_ADAPTER npm run local-console"
143
181
  fi
144
-