@clawos-dev/clawd 0.2.207-beta.413.913ff65 → 0.2.207-beta.414.456f239
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/dist/cli.cjs +868 -805
- package/dist/deploy-kit/.secrets/aliyun.env +2 -4
- package/dist/deploy-kit/scripts/publish.sh +2 -4
- package/dist/deploy-kit/scripts/remove-extension.sh +2 -3
- package/dist/persona-defaults/persona-app-builder/CLAUDE.md +4 -12
- package/package.json +1 -1
- package/dist/deploy-kit/.secrets/aliyun.env.local.example +0 -15
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
# 阿里云 RAM AccessKey
|
|
2
|
-
#
|
|
3
|
-
# 每次 daemon 启动 refreshDeployKit 会用 defaults 里的最新版覆盖本文件(OTA 即升级)。
|
|
4
|
-
# 想用自己的 AK 覆盖:复制 aliyun.env.local.example → aliyun.env.local 并填自己的值。
|
|
1
|
+
# 阿里云 RAM AccessKey(publish.sh source 这个文件)
|
|
2
|
+
# 在阿里云控制台 → 访问控制 RAM → 用户 → AccessKey 生成
|
|
5
3
|
# 需要权限:AliyunFCFullAccess + AliyunSTSAssumeRoleAccess
|
|
6
4
|
ALIBABA_CLOUD_ACCESS_KEY_ID=LTAI5tAi7P7oySa3ohAzaYbj
|
|
7
5
|
ALIBABA_CLOUD_ACCESS_KEY_SECRET=NS470lOWTLeeAP9RUADXkpKNOrH5QX
|
|
@@ -36,13 +36,11 @@ if [ -z "${SLUG:-}" ]; then
|
|
|
36
36
|
fi
|
|
37
37
|
DEPLOY_NAME="${APP_NAME}-${SLUG}"
|
|
38
38
|
|
|
39
|
-
# 2) 工具链 +
|
|
39
|
+
# 2) 工具链 + 阿里云凭证(共享单源)
|
|
40
40
|
source "$KIT_DIR/scripts/ensure-toolchain.sh"
|
|
41
41
|
ensure_toolchain
|
|
42
|
-
[ -f "$KIT_DIR/.secrets/aliyun.env" ] || { echo "❌ 缺 $KIT_DIR/.secrets/aliyun.env
|
|
42
|
+
[ -f "$KIT_DIR/.secrets/aliyun.env" ] || { echo "❌ 缺 $KIT_DIR/.secrets/aliyun.env(阿里云凭证)。参考 .secrets/aliyun.env.example 填写。" >&2; exit 1; }
|
|
43
43
|
set -a; . "$KIT_DIR/.secrets/aliyun.env"; set +a
|
|
44
|
-
# aliyun.env.local: 本机个人 override(永远不被 OTA 覆盖,见 refreshDeployKit)。有就后 source 覆盖 env。
|
|
45
|
-
[ -f "$KIT_DIR/.secrets/aliyun.env.local" ] && { set -a; . "$KIT_DIR/.secrets/aliyun.env.local"; set +a; }
|
|
46
44
|
export ALIBABA_CLOUD_REGION_ID="${REGION:?config.env 缺 REGION}"
|
|
47
45
|
_ident="$(aliyun sts GetCallerIdentity 2>&1)" || { echo "❌ aliyun sts GetCallerIdentity 失败(检查 .secrets/aliyun.env 凭证):" >&2; echo "$_ident" >&2; exit 1; }
|
|
48
46
|
ACC="$(printf '%s' "$_ident" | python3 -c 'import sys,json;print(json.load(sys.stdin)["AccountId"])')" || { echo "❌ 解析 AccountId 失败,aliyun 输出非 JSON:" >&2; echo "$_ident" >&2; exit 1; }
|
|
@@ -25,10 +25,9 @@ TABLE_PREFIX="${APP_NAME}_${SLUG:+${SLUG}_}"
|
|
|
25
25
|
source "$KIT_DIR/scripts/ensure-toolchain.sh"
|
|
26
26
|
ensure_toolchain
|
|
27
27
|
|
|
28
|
-
#
|
|
29
|
-
[ -f "$KIT_DIR/.secrets/aliyun.env" ] || { echo "❌ 缺 $KIT_DIR/.secrets/aliyun.env
|
|
28
|
+
# 阿里云凭证(共享单源)
|
|
29
|
+
[ -f "$KIT_DIR/.secrets/aliyun.env" ] || { echo "❌ 缺 $KIT_DIR/.secrets/aliyun.env(阿里云凭证)。" >&2; exit 1; }
|
|
30
30
|
set -a; . "$KIT_DIR/.secrets/aliyun.env"; set +a
|
|
31
|
-
[ -f "$KIT_DIR/.secrets/aliyun.env.local" ] && { set -a; . "$KIT_DIR/.secrets/aliyun.env.local"; set +a; }
|
|
32
31
|
|
|
33
32
|
# 1) 删 FC 侧(函数 + 触发器 + 自定义域名)
|
|
34
33
|
echo "==> 删 FC 资源: $APP_NAME${SLUG:+ (deploy=${APP_NAME}-${SLUG})}"
|
|
@@ -186,25 +186,17 @@ createProject 成功后 daemon 自动:
|
|
|
186
186
|
|
|
187
187
|
**易踩的坑**:MCP 工具连的就是 `121.196.249.178`,假如哪一步把 `.env` / `config.env` 写成云上 `qmhqmopgwsbmfxiqagay.supabase.co`(历史旧默认)或者残留的 `120.26.157.138`(旧自建,已退役),就会**MCP 建表落阿里云 / server 通过 supabase-js 查别处**,两台 PostgREST schema cache 各自独立 → `PGRST205 schema cache 找不到表`。看到 PGRST 系列错码先 `grep -rE 'supabase.co|120\.26\.157\.138'` 自查模板配置,再怀疑 schema cache。
|
|
188
188
|
|
|
189
|
-
## 阿里云凭证:在共享 deploy-kit 的 `.secrets
|
|
189
|
+
## 阿里云凭证:在共享 deploy-kit 的 `.secrets/aliyun.env`,用时现读
|
|
190
190
|
|
|
191
|
-
AK/SK
|
|
192
|
-
|
|
193
|
-
- **`aliyun.env`** — clawd ship 的**共享 demo 凭证**(归属 RAM 用户 `clawd-fc-developer`,权限收敛:`AliyunFCFullAccess` + `STSAssumeRole` + `Log` + `OSS` + `YundunCert-RO`)。**每次 daemon 启动 refreshDeployKit 会用 defaults 里的最新版覆盖本文件(OTA 即升级)**——用户不用手动 rotate。
|
|
194
|
-
- **`aliyun.env.local`**(可选)— 本机个人 override,永远不被 OTA 覆盖。publish.sh / remove-extension.sh 先 source `aliyun.env`(shared)、再 source `aliyun.env.local`(后者的值覆盖前者)。用户想用自己的 AK(如不想让 demo AK 部署到自己账号)就复制 `aliyun.env.local.example` → `aliyun.env.local` 填自己的值。
|
|
195
|
-
|
|
196
|
-
手动跑 CLI 时在当前 shell 加载:
|
|
191
|
+
AK/SK 放在**共享 deploy-kit** 下的 **`$HOME/.clawd/deploy-kit/.secrets/aliyun.env`**(`ALIBABA_CLOUD_ACCESS_KEY_ID` + `ALIBABA_CLOUD_ACCESS_KEY_SECRET`,全 FC persona 共用一份),是唯一真源,不在系统环境变量里。publish.sh 内部会自己加载它;你手动跑 CLI 时先在当前 shell 加载:
|
|
197
192
|
|
|
198
193
|
```bash
|
|
199
|
-
set -a
|
|
200
|
-
. "$HOME/.clawd/deploy-kit/.secrets/aliyun.env"
|
|
201
|
-
[ -f "$HOME/.clawd/deploy-kit/.secrets/aliyun.env.local" ] && . "$HOME/.clawd/deploy-kit/.secrets/aliyun.env.local"
|
|
202
|
-
set +a
|
|
194
|
+
set -a; . "$HOME/.clawd/deploy-kit/.secrets/aliyun.env"; set +a
|
|
203
195
|
```
|
|
204
196
|
|
|
205
197
|
之后 `aliyun` / `s` / `ossutil` 会自动读这两个环境变量。Serverless Devs 还需 `~/.s/access.yaml` 含 `AccountID`(用 `aliyun sts GetCallerIdentity` 取),SK 走 heredoc 写入、不进命令行。
|
|
206
198
|
|
|
207
|
-
- **红线**:绝不 `echo` / 打印 / 写进日志或提交记录里暴露 SK;绝不把 `.secrets/` 拷进被部署的项目代码(已被 `.gitignore`
|
|
199
|
+
- **红线**:绝不 `echo` / 打印 / 写进日志或提交记录里暴露 SK;绝不把 `.secrets/` 拷进被部署的项目代码(已被 `.gitignore` 挡住)。SK 为空时先停下提醒老板去 `$HOME/.clawd/deploy-kit/.secrets/aliyun.env` 填,别瞎试。
|
|
208
200
|
|
|
209
201
|
## 工作主线
|
|
210
202
|
|
package/package.json
CHANGED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
# 阿里云 RAM AccessKey 个人 override(本机专用)
|
|
2
|
-
#
|
|
3
|
-
# 复制这份为同目录下 aliyun.env.local,填自己的 AK/SK,publish.sh / remove-extension.sh 会在
|
|
4
|
-
# source 完 shared 的 aliyun.env 之后再 source 这份(.local 里的值覆盖 shared 里的)。
|
|
5
|
-
#
|
|
6
|
-
# .local 后缀由 daemon refreshDeployKit 特判:**永远不会被 OTA 覆盖**,跟 shared aliyun.env
|
|
7
|
-
# (每次 daemon 启动会被 defaults 里的新版覆盖)是两回事。
|
|
8
|
-
#
|
|
9
|
-
# 什么时候需要用 .local:
|
|
10
|
-
# - 你想用自己的阿里云账号部署 FC(不想让别人用 clawd ship 的 demo AK 部到你账号)
|
|
11
|
-
# - 你有权限收敛过的自定义 AK(比如只在某个特定 region 有 FC 权限)
|
|
12
|
-
#
|
|
13
|
-
# 不需要用 .local 时(大部分情况):删掉这个 .local 文件、直接跑 clawd defaults,OTA 后自动拿到新 demo 凭证。
|
|
14
|
-
ALIBABA_CLOUD_ACCESS_KEY_ID=replace-me
|
|
15
|
-
ALIBABA_CLOUD_ACCESS_KEY_SECRET=replace-me
|