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

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.1",
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,36 @@ 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
+ read -r -p "请输入安装目录(默认: $DEFAULT_TARGET_DIR): " TARGET_DIR_INPUT || true
62
+ TARGET_DIR="${TARGET_DIR_INPUT:-$DEFAULT_TARGET_DIR}"
63
+ TARGET_DIR="${TARGET_DIR/#\~/$HOME}"
64
+
65
+ if [ -e "$TARGET_DIR" ] && [ ! -d "$TARGET_DIR" ]; then
66
+ echo "目标路径存在且不是目录: $TARGET_DIR"
67
+ exit 1
68
+ fi
69
+
70
+ mkdir -p "$TARGET_DIR"
71
+ echo "正在复制项目文件到: $TARGET_DIR"
72
+ if command -v rsync >/dev/null 2>&1; then
73
+ rsync -a --delete \
74
+ --exclude '.git/' \
75
+ --exclude 'node_modules/' \
76
+ --exclude '.npm-cache/' \
77
+ --exclude '*.tgz' \
78
+ "$ROOT_DIR/" "$TARGET_DIR/"
79
+ else
80
+ cp -R "$ROOT_DIR/." "$TARGET_DIR/"
81
+ rm -rf "$TARGET_DIR/.git" "$TARGET_DIR/node_modules" "$TARGET_DIR/.npm-cache"
82
+ fi
83
+ WORK_DIR="$TARGET_DIR"
84
+ echo "工作目录已切换到: $WORK_DIR"
85
+ pause_continue
86
+ fi
87
+
51
88
  title "检查 Node.js / npm"
52
89
  if ! command -v node >/dev/null 2>&1; then
53
90
  echo "未找到 node,请先安装 Node.js 18+"
@@ -69,23 +106,23 @@ if ! node -e "const v=process.versions.node.split('.').map(Number); if (v[0] < 1
69
106
  fi
70
107
 
71
108
  title "安装依赖"
72
- if [ ! -d "$ROOT_DIR/node_modules" ]; then
73
- run_cmd "npm install"
109
+ if [ ! -d "$WORK_DIR/node_modules" ]; then
110
+ run_cmd "cd \"$WORK_DIR\" && npm_config_cache=\"$WORK_DIR/.npm-cache\" npm install"
74
111
  else
75
112
  if ask_yes_no "检测到 node_modules,是否仍执行 npm install 同步依赖?" "N"; then
76
- run_cmd "npm install"
113
+ run_cmd "cd \"$WORK_DIR\" && npm_config_cache=\"$WORK_DIR/.npm-cache\" npm install"
77
114
  else
78
115
  echo "跳过 npm install"
79
116
  fi
80
117
  fi
81
118
 
82
119
  title "准备 social.md"
83
- if [ -f "$ROOT_DIR/social.md" ]; then
120
+ if [ -f "$WORK_DIR/social.md" ]; then
84
121
  echo "已存在 social.md,保留现有配置。"
85
122
  else
86
123
  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"
124
+ run_cmd "cd \"$WORK_DIR\" && cp social.md.example social.md"
125
+ echo "已生成: $WORK_DIR/social.md"
89
126
  else
90
127
  echo "跳过生成 social.md(local-console 首启也会自动生成最小模板)"
91
128
  fi
@@ -134,11 +171,10 @@ if [ "$NETWORK_MODE" = "global-preview" ]; then
134
171
  echo "WEBRTC_SIGNALING_URL=$WEBRTC_SIGNALING_URL_VALUE"
135
172
  echo "WEBRTC_ROOM=$WEBRTC_ROOM_VALUE"
136
173
  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"
174
+ 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
175
  else
139
176
  echo "将使用以下参数启动:"
140
177
  echo "NETWORK_ADAPTER=$NETWORK_ADAPTER"
141
178
  pause_continue
142
- run_cmd "NETWORK_ADAPTER=$NETWORK_ADAPTER npm run local-console"
179
+ run_cmd "cd \"$WORK_DIR\" && NETWORK_ADAPTER=$NETWORK_ADAPTER npm run local-console"
143
180
  fi
144
-