@clawos-dev/clawd 0.2.619 → 0.2.621
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/app-builder-plugin/mcp-server.cjs +79 -582
- package/dist/cli.cjs +313 -1720
- package/dist/dispatch/mcp-server.cjs +79 -595
- package/dist/persona-defaults/persona-app-builder/.claude/skills/app-builder-projects/scripts/collect-files.mjs +6 -15
- package/dist/persona-defaults/persona-app-builder/.claude/skills/app-builder-projects/scripts/list-projects.mjs +1 -2
- package/dist/persona-defaults/persona-app-builder/.claude/skills/app-builder-projects/scripts/record-push.mjs +3 -5
- package/dist/persona-defaults/persona-app-builder/.claude/skills/app-builder-projects/scripts/render-sql.mjs +4 -6
- package/dist/persona-defaults/persona-app-builder/extension-kit/examples/nestjs-react/server/src/app.module.ts +1 -7
- package/dist/persona-defaults/persona-app-builder/extension-kit/examples/nestjs-react/server/src/main.ts +3 -9
- package/dist/persona-defaults/persona-app-builder/extension-kit/examples/nestjs-react/server/src/polyfill.ts +3 -9
- package/dist/persona-defaults/persona-app-builder/extension-kit/examples/nestjs-react/server/src/table-name.ts +2 -5
- package/dist/persona-defaults/persona-app-builder/extension-kit/examples/nestjs-react/web/src/App.jsx +1 -8
- package/dist/persona-defaults/persona-app-builder/mcp/clawd-app-builder/deploy-kit/scripts/ensure-credentials.sh +10 -47
- package/dist/persona-defaults/persona-app-builder/mcp/clawd-app-builder/deploy-kit/scripts/ensure-toolchain.sh +3 -17
- package/dist/persona-defaults/persona-app-builder/mcp/clawd-app-builder/deploy-kit/scripts/new-extension.sh +8 -21
- package/dist/persona-defaults/persona-app-builder/mcp/clawd-app-builder/deploy-kit/scripts/publish.sh +14 -67
- package/dist/persona-defaults/persona-app-builder/mcp/clawd-app-builder/deploy-kit/scripts/remove-extension.sh +6 -24
- package/dist/persona-defaults/persona-app-builder/mcp/clawd-app-builder/deploy-kit/scripts/verify.sh +3 -15
- package/dist/persona-defaults/persona-app-builder/mcp/clawd-app-builder/mcp-server.cjs +79 -582
- package/dist/persona-defaults/persona-clawd-butler/.claude/skills/clawd-session-import/scripts/link-sessions.mjs +7 -23
- package/dist/persona-defaults/persona-clawd-butler/.claude/skills/scan-sessions-suggest-personas/scripts/extract-signals.mjs +6 -14
- package/dist/persona-defaults/persona-dataclaw-builder/.claude/skills/app-builder-projects/scripts/collect-files.mjs +6 -15
- package/dist/persona-defaults/persona-dataclaw-builder/.claude/skills/app-builder-projects/scripts/list-projects.mjs +1 -2
- package/dist/persona-defaults/persona-dataclaw-builder/.claude/skills/app-builder-projects/scripts/record-push.mjs +3 -5
- package/dist/persona-defaults/persona-dataclaw-builder/.claude/skills/app-builder-projects/scripts/render-sql.mjs +4 -6
- package/dist/persona-defaults/persona-dataclaw-builder/extension-kit/examples/nestjs-react/server/src/app.module.ts +2 -6
- package/dist/persona-defaults/persona-dataclaw-builder/extension-kit/examples/nestjs-react/server/src/dataclaw/dataclaw.client.ts +2 -4
- package/dist/persona-defaults/persona-dataclaw-builder/extension-kit/examples/nestjs-react/server/src/dataclaw/dataclaw.controller.ts +1 -2
- package/dist/persona-defaults/persona-dataclaw-builder/extension-kit/examples/nestjs-react/server/src/main.ts +4 -11
- package/dist/persona-defaults/persona-dataclaw-builder/extension-kit/examples/nestjs-react/server/src/polyfill.ts +1 -5
- package/dist/persona-defaults/persona-dataclaw-builder/extension-kit/examples/nestjs-react/web/src/api.js +1 -4
- package/dist/persona-defaults/persona-dataclaw-builder/extension-kit/examples/nestjs-react/web/src/components/BarChart.jsx +0 -1
- package/dist/persona-defaults/persona-dataclaw-builder/extension-kit/examples/nestjs-react/web/src/components/ResultCards.jsx +0 -1
- package/dist/persona-defaults/persona-dataclaw-builder/extension-kit/examples/nestjs-react/web/src/components/ResultTable.jsx +0 -1
- package/dist/persona-defaults/persona-dataclaw-builder/extension-kit/examples/nestjs-react/web/src/enums.js +2 -3
- package/dist/persona-defaults/persona-dataclaw-builder/extension-kit/hooks/pre-deploy.sh +0 -2
- package/dist/persona-defaults/persona-dataclaw-builder/mcp/clawd-app-builder/deploy-kit/scripts/ensure-credentials.sh +10 -47
- package/dist/persona-defaults/persona-dataclaw-builder/mcp/clawd-app-builder/deploy-kit/scripts/ensure-toolchain.sh +3 -17
- package/dist/persona-defaults/persona-dataclaw-builder/mcp/clawd-app-builder/deploy-kit/scripts/new-extension.sh +8 -21
- package/dist/persona-defaults/persona-dataclaw-builder/mcp/clawd-app-builder/deploy-kit/scripts/publish.sh +14 -67
- package/dist/persona-defaults/persona-dataclaw-builder/mcp/clawd-app-builder/deploy-kit/scripts/remove-extension.sh +6 -24
- package/dist/persona-defaults/persona-dataclaw-builder/mcp/clawd-app-builder/deploy-kit/scripts/verify.sh +3 -15
- package/dist/persona-defaults/persona-dataclaw-builder/mcp/clawd-app-builder/mcp-server.cjs +79 -582
- package/dist/pi-mcp-bridge/extension.cjs +0 -1
- package/package.json +1 -1
|
@@ -1,12 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
#
|
|
3
|
-
#
|
|
4
|
-
#
|
|
5
|
-
# 删哪些表:读 ext.conf 的 SUPABASE_TABLES(extension 自己声明的**基础名**,如 visits;非 supabase persona 留空即跳过)。
|
|
6
|
-
# 每个基础名打两套 DROP:<APP_NAME>_<SLUG>_int_<t>(integration)与 <APP_NAME>_<SLUG>_<t>(prod)。
|
|
7
|
-
# 值若已带完整前缀 <APP_NAME>_<SLUG>_ 视为双环境之前声明的完整表名,只打一条。
|
|
8
|
-
# 安全:① 校验 <APP_NAME>_<SLUG>_ 前缀防误删 clawos / 同名 app 别人副本 ② 列出 DROP 让 agent 用 supabase MCP 接力 ③ 数据不可逆
|
|
9
|
-
# ============================================================
|
|
2
|
+
# Remove published FC resources and print optional database DROP statements for the caller to execute.
|
|
3
|
+
# Legacy fully prefixed table declarations expand once; base names expand for integration and production.
|
|
4
|
+
# Deletion is irreversible: restrict emitted table names to this extension prefix.
|
|
10
5
|
set -euo pipefail
|
|
11
6
|
|
|
12
7
|
KIT_DIR="$(cd "$(dirname "$0")/.." && pwd)" # deploy-kit 根(persona 目录 mcp/clawd-app-builder/deploy-kit/)
|
|
@@ -19,27 +14,20 @@ PERSONA_KIT="$PERSONA_ROOT/extension-kit"
|
|
|
19
14
|
[ -f "$EXT_DIR/ext.conf" ] && source "$EXT_DIR/ext.conf"
|
|
20
15
|
APP_NAME="${APP_NAME:-$(basename "$EXT_DIR")}"
|
|
21
16
|
SUPABASE_TABLES="${SUPABASE_TABLES:-}"
|
|
22
|
-
# SLUG
|
|
23
|
-
# prod 表名形如 ${APP_NAME}_${SLUG}_<table>,integration 多一段 int_;老项目走旧的 ${APP_NAME}_<table>。
|
|
17
|
+
# Missing SLUG retains the legacy project prefix.
|
|
24
18
|
TABLE_PREFIX="${APP_NAME}_${SLUG:+${SLUG}_}"
|
|
25
19
|
TABLE_PREFIX_INT="${TABLE_PREFIX}int_"
|
|
26
20
|
|
|
27
|
-
# 确保工具链就绪(缺 s / aliyun 则装,已装跳过)—— 下面 s remove 依赖它
|
|
28
21
|
source "$KIT_DIR/scripts/ensure-toolchain.sh"
|
|
29
22
|
ensure_toolchain
|
|
30
23
|
|
|
31
|
-
# 阿里云凭证(进程 env:本机 daemon 从凭据表渲进 MCP server env,云上 pod-setup 渲)+ deploy-kit 私有的 s profile
|
|
32
24
|
source "$KIT_DIR/scripts/ensure-credentials.sh"
|
|
33
25
|
ensure_credentials
|
|
34
26
|
|
|
35
|
-
# 1) 删 FC 侧(函数 + 触发器 + 自定义域名):integration / prod 各自有一份 publish.sh 渲的 s 文件
|
|
36
|
-
#(s.int.yaml / s.prod.yaml;双环境之前渲的叫 s.yaml),有哪份删哪份——从未发过的环境没有产物,跳过。
|
|
37
27
|
removed=0
|
|
38
28
|
for s_file in s.int.yaml s.prod.yaml s.yaml; do
|
|
39
29
|
[ -f "$EXT_DIR/$s_file" ] || continue
|
|
40
|
-
#
|
|
41
|
-
# 那就只按 s.prod.yaml 拆,对同一资源 s remove 两次第二次会因「不存在」失败。
|
|
42
|
-
# name: 不同(dataclaw 双环境之前 functionName 不带 slug)= 两个函数,两份都拆。
|
|
30
|
+
# Avoid removing the same legacy/prod resource twice; different template names still require both removals.
|
|
43
31
|
if [ "$s_file" = s.yaml ] && [ -f "$EXT_DIR/s.prod.yaml" ] \
|
|
44
32
|
&& [ "$(grep -m1 '^name:' "$EXT_DIR/s.yaml")" = "$(grep -m1 '^name:' "$EXT_DIR/s.prod.yaml")" ]; then
|
|
45
33
|
continue
|
|
@@ -50,14 +38,8 @@ for s_file in s.int.yaml s.prod.yaml s.yaml; do
|
|
|
50
38
|
done
|
|
51
39
|
[ "$removed" = 1 ] || echo "==> 没有渲染过的 s 文件(从未发布过),FC 侧无资源可删"
|
|
52
40
|
|
|
53
|
-
# 2) 列出要删的 Supabase 表(脚本不直接调 DB,改打印 DROP 让 agent 用 supabase MCP 跑)。
|
|
54
|
-
# bash 调不到 MCP(MCP 是 LLM 通道),pg 直连要密码 agent 拿不到 —— 最干净:打印 DROP,
|
|
55
|
-
# 让 agent 看到 Bash tool stdout 后用 mcp__supabase__execute_sql 接力。
|
|
56
41
|
if [ -n "$SUPABASE_TABLES" ]; then
|
|
57
|
-
#
|
|
58
|
-
#(判据用完整前缀而不是 ${APP_NAME}_:基础名本身以 <APP_NAME>_ 开头——shop 的 shop_items——是合法的)。
|
|
59
|
-
# 安全锁:展开后每个表必须 ${TABLE_PREFIX} 前缀(int 那套自然也满足),否则拒绝
|
|
60
|
-
#(防误伤 clawos / 同名 app 别人副本的表)。
|
|
42
|
+
# Match the complete extension prefix, not APP_NAME alone: base names can legitimately start with APP_NAME.
|
|
61
43
|
FULL_TABLES=""
|
|
62
44
|
for t in $SUPABASE_TABLES; do
|
|
63
45
|
case "$t" in
|
package/dist/persona-defaults/persona-app-builder/mcp/clawd-app-builder/deploy-kit/scripts/verify.sh
CHANGED
|
@@ -1,17 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
#
|
|
3
|
-
#
|
|
4
|
-
#
|
|
5
|
-
# 失败语义(spec 2026-06-03-app-builder-publish-scaffold-design follow-up):
|
|
6
|
-
# 首页非 200 → exit 1。
|
|
7
|
-
# 检测到 Content-Disposition 强制下载 → 默认 exit 1;带 --allow-content-disposition 时
|
|
8
|
-
# 只警告不失败 —— FC 默认域名(*.fcapp.run)对所有响应强制注入这个头,没有自定义域名就
|
|
9
|
-
# 消不掉,而「使用者自带 key」履约的验收口径本来就只到「公网可访问」(design ③)。
|
|
10
|
-
# 调用方只在那条路径上传这个 flag,别当通用开关用。
|
|
11
|
-
# publish.sh 不加 `|| true` 兜底,verify 失败会让 publish.sh 整体 exit 非 0,
|
|
12
|
-
# 触发 daemon runner 的 publish-failed 路径:广播帧 + 回灌 chat user_text 让 assistant 接管修复。
|
|
13
|
-
#
|
|
14
|
-
# 信息原则:失败原因 echo 到 stderr(runner 的 errorSummary 抠 stderr 最后 20 行)。
|
|
2
|
+
# Usage: verify.sh <url> [--allow-content-disposition]
|
|
3
|
+
# Fail non-200 responses or Content-Disposition, except the explicit FC default-domain allowance.
|
|
4
|
+
# Write failure reasons to stderr for the daemon error summary.
|
|
15
5
|
set -euo pipefail
|
|
16
6
|
URL="${1:?用法: verify.sh <url> [--allow-content-disposition]}"
|
|
17
7
|
ALLOW_CD=0
|
|
@@ -22,7 +12,6 @@ code=$(curl -s -o /dev/null -w "%{http_code}" --max-time 30 "$URL/" || echo 000)
|
|
|
22
12
|
ctype=$(curl -s -o /dev/null -w "%{content_type}" --max-time 30 "$URL/" || echo "")
|
|
23
13
|
echo "首页: HTTP $code ($ctype)"
|
|
24
14
|
|
|
25
|
-
# 关键检查: 有 Content-Disposition 说明会被浏览器当文件下载(没绑自定义域名的典型症状)
|
|
26
15
|
hdr=$(curl -s -D - -o /dev/null --max-time 30 "$URL/" || true)
|
|
27
16
|
has_cd=0
|
|
28
17
|
if echo "$hdr" | grep -qi 'content-disposition'; then
|
|
@@ -42,7 +31,6 @@ if [ "$code" = "200" ] && { [ "$has_cd" = "0" ] || [ "$ALLOW_CD" = "1" ]; }; the
|
|
|
42
31
|
exit 0
|
|
43
32
|
fi
|
|
44
33
|
|
|
45
|
-
# 失败:原因写 stderr 供 runner 抠成 errorSummary,UI / assistant 都能看清楚
|
|
46
34
|
if [ "$code" != "200" ]; then
|
|
47
35
|
echo "❌ verify failed: 首页 HTTP $code (期望 200);查 s logs 找原因" >&2
|
|
48
36
|
fi
|