@alipay/alipay-aipay 1.5.5 → 1.5.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 +1 -1
- package/skill/SKILL.md +7 -6
- package/skill/VERSION +1 -1
- package/skill/references/normal/alipay-cli-env.md +13 -29
- package/skill/references/normal/json/customer-messages.json +1 -941
- package/skill/references/normal/json/policy-rules.json +1 -185
- package/skill/references/normal/scripts/common.sh +50 -23
- package/skill/references/normal/scripts/onboarding_discovery_runner.mjs +1 -0
- package/skill/references/normal/scripts/onboarding_message_runner.mjs +9 -1
- package/skill/references/normal/scripts/open_official_url.sh +91 -23
- package/skill/references/normal/scripts/render_customer_message.mjs +52 -5
- package/skill/references/normal/scripts/self_update.mjs +33 -12
- package/skill/references/normal/self-update.md +13 -14
- package/skill/references/onboarding/flow.md +8 -6
- package/skill/references/onboarding/modules/app-release.md +4 -4
- package/skill/references/onboarding/modules/error-handling.md +2 -0
- package/skill/references/onboarding/modules/scripts/app.sh +59 -27
- package/skill/references/onboarding/modules/scripts/auth.sh +20 -1
- package/skill/references/runtime-entry.md +1 -1
package/package.json
CHANGED
package/skill/SKILL.md
CHANGED
|
@@ -11,20 +11,21 @@ description: >-
|
|
|
11
11
|
|
|
12
12
|
## 前置版本检查
|
|
13
13
|
|
|
14
|
-
本次 Agent 对话首次使用 `alipay-aipay` 时,先把本文件所在目录解析为规范化绝对路径 `<SKILL_DIR
|
|
14
|
+
本次 Agent 对话首次使用 `alipay-aipay` 时,先把本文件所在目录解析为规范化绝对路径 `<SKILL_DIR>`,记录一次性事实 `ALIPAY_AIPAY_SELF_UPDATE_CHECKED=true`,再执行以下单条命令。`<SKILL_DIR>` 是执行时替换的路径占位符;禁止用 shell 变量赋值、命令替换或依赖特定 shell:
|
|
15
15
|
|
|
16
16
|
```text
|
|
17
17
|
node "<SKILL_DIR>/references/normal/scripts/runtime.mjs" self-update check --skill-dir "<SKILL_DIR>"
|
|
18
18
|
```
|
|
19
19
|
|
|
20
|
-
`SKILL_DIR` 必须绑定刚触发的本份 Skill,且包含 `SKILL.md`、`VERSION` 和 `references/runtime-entry.md
|
|
20
|
+
`SKILL_DIR` 必须绑定刚触发的本份 Skill,且包含 `SKILL.md`、`VERSION` 和 `references/runtime-entry.md`;不得换成 Agent 启动目录、用户项目目录、用户 Home、npm 包源码根或另一份 Skill 副本。命令失败或 marker 无法唯一解析时按 `SELF_UPDATE:CHECK_FAILED`。
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
stderr 只允许出现以下一个内部终态;不得向用户展示 marker 或 npm/npx 原始输出:
|
|
23
23
|
|
|
24
24
|
- `SELF_UPDATE:UPDATED=<合法 SemVer>`:当前 Skill 目录已原子切换到新版。
|
|
25
25
|
- `SELF_UPDATE:CURRENT=<合法 SemVer>`:继续当前版本。
|
|
26
|
-
- `SELF_UPDATE:
|
|
26
|
+
- `SELF_UPDATE:RETRY_WITH_NETWORK`:registry 或安装阶段网络不可达;可申请联网后原样重试本命令一次。
|
|
27
|
+
- `SELF_UPDATE:SKIPPED_NETWORK_RESTRICTED|CHECK_FAILED|INSTALL_FAILED|VERIFY_FAILED`:静默继续当前可用版本,不重试、不申请权限。
|
|
27
28
|
|
|
28
|
-
|
|
29
|
+
除 `RETRY_WITH_NETWORK` 的一次原样重试外,下一步都只完整读取同一 `SKILL_DIR` 下的 `references/runtime-entry.md`,并按原始用户请求从该入口路由。`UPDATED` 后禁止继续读取更新前版本的任何业务文档,也不重新执行版本检查;其他终态同样不再读取本启动器或 `self-update.md` 补充规则。
|
|
29
30
|
|
|
30
|
-
同一对话后续确认、补材料、候选选择、错误恢复、中断继续、重复触发和 Full Process
|
|
31
|
+
同一对话后续确认、补材料、候选选择、错误恢复、中断继续、重复触发和 Full Process 衔接,若一次性事实已存在,则跳过版本检查,直接读取已确定版本的 `references/runtime-entry.md`。该事实只存在于当前 Agent 对话上下文,不写缓存或业务状态。
|
package/skill/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.5.
|
|
1
|
+
1.5.6
|
|
@@ -11,11 +11,6 @@
|
|
|
11
11
|
```bash
|
|
12
12
|
# 推荐:一步检测
|
|
13
13
|
which alipay-cli 2>/dev/null && alipay-cli version
|
|
14
|
-
|
|
15
|
-
# 或:分步检测
|
|
16
|
-
if ! alipay-cli version &>/dev/null; then
|
|
17
|
-
echo "⚠️ alipay-cli 未安装"
|
|
18
|
-
fi
|
|
19
14
|
```
|
|
20
15
|
|
|
21
16
|
### 1.2 检测时机
|
|
@@ -42,15 +37,14 @@ fi
|
|
|
42
37
|
**执行要求:**
|
|
43
38
|
- 对已知需要联网的命令,如果当前 Agent 环境网络受限且支持显式授权,应首次执行即申请可联网权限,不要先在受限沙箱内试跑。
|
|
44
39
|
- 若命令已经因网络失败,重试时必须复用同一条命令并申请可联网权限;不要把该失败解释为用户网络故障。
|
|
45
|
-
- `auth.sh init|confirm|mismatch` 返回 `AUTH_FLOW:RETRY_WITH_NETWORK
|
|
46
|
-
- `auth.sh init|wait|confirm|mismatch` 返回 `AUTH_FLOW:RETRY_WITH_LOCAL_FS_PERMISSION
|
|
40
|
+
- `auth.sh init|confirm|mismatch` 返回 `AUTH_FLOW:RETRY_WITH_NETWORK`:当前环境未取得可确认 CLI 结果;取联网权限后重试同一完整命令,不得解释为业务或 login/logout 失败,也不得改为用户手工操作。
|
|
41
|
+
- `auth.sh init|wait|confirm|mismatch` 返回 `AUTH_FLOW:RETRY_WITH_LOCAL_FS_PERMISSION`:仅缺 CLI 状态目录权限。允许同一 runtime 命令访问 `$HOME/.alipay-cli/credentials`、`${XDG_DATA_HOME:-$HOME/.local/share}/alipay-cli/logs` 后原样重试一次;仅供 CLI 使用,Agent 禁止读取、列举、打印或复制已有内容,不改变其他脚本边界。
|
|
42
|
+
- `app.sh reuse|verify-key|verify-key-and-audit|audit` 已取得 RSA2 支付宝公钥但 `${XDG_CONFIG_HOME:-$HOME/.config}` 探测失败时,返回 `APP_FLOW:RETRY_WITH_LOCAL_CONFIG_PERMISSION` 和 `ALIPAY_PUBLIC_KEY_EXPORT_STATUS=RETRY_WITH_LOCAL_CONFIG_PERMISSION`。仅允许同一 runtime 命令访问该目录后原样重试一次,用于写 `<appId>-alipayPublicKey.keytext`;Agent 禁止检查已有文件。仍失败按目录文案收口。
|
|
47
43
|
- 本地纯解析、文件检查、`bash -n`、`jq` 校验等不联网命令仍可在默认沙箱内执行。
|
|
48
44
|
|
|
49
45
|
**减少重复授权:**
|
|
50
|
-
-
|
|
51
|
-
-
|
|
52
|
-
- 避免用 `DEV_TOOL_NAME=<tool> bash ...`、`PLATFORM=<tool> alipay-cli ...` 作为常规调用形态;这类环境变量前缀会让授权规则更难复用。签约脚本会通过公共初始化设置 `DEV_TOOL_NAME`,直接执行脚本即可。
|
|
53
|
-
- 产品上下文优先通过脚本参数传入,例如 `--sales-code`、`--mcc-code`、`--product-type`;不要用 `PRODUCT_TYPE=... SALES_CODE=... bash ...` 作为常规调用形态。
|
|
46
|
+
- 优先使用 runtime 的 `auth|app|service` 动作,避免展开 `alipay-cli mcp call`。持久授权范围使用当前 Skill 绝对路径的稳定命令前缀,不得换副本。
|
|
47
|
+
- 不用 `DEV_TOOL_NAME=<tool>`、`PLATFORM=<tool>` 等环境变量前缀;公共初始化会设置。产品上下文用 `--sales-code`、`--mcc-code`、`--product-type` 等脚本参数。
|
|
54
48
|
- 只有脚本未覆盖的临时排查命令,才直接调用 `alipay-cli`;这类命令需要按具体前缀单独授权。
|
|
55
49
|
|
|
56
50
|
---
|
|
@@ -59,7 +53,7 @@ fi
|
|
|
59
53
|
|
|
60
54
|
`npx -y @alipay/alipay-aipay@latest install` 会优先保障 `alipay-cli` 可用;如果 `alipay-cli` 已安装或可直接安装成功,不需要额外安装 GPG。
|
|
61
55
|
|
|
62
|
-
|
|
56
|
+
只有 `alipay-cli` 首次安装失败且输出指向缺少 GPG/GnuPG 时,后台准备任务才检查 GPG:
|
|
63
57
|
```bash
|
|
64
58
|
which gpg 2>/dev/null
|
|
65
59
|
```
|
|
@@ -72,7 +66,7 @@ which gpg 2>/dev/null
|
|
|
72
66
|
| Linux (Debian/Ubuntu) | `sudo apt-get install -y gnupg` |
|
|
73
67
|
| Linux (CentOS/RHEL) | `sudo yum install -y gnupg2` |
|
|
74
68
|
|
|
75
|
-
> ⚠️ macOS 的 Homebrew 包名是 `gnupg
|
|
69
|
+
> ⚠️ macOS 的 Homebrew 包名是 `gnupg`。只有 `alipay-cli` 缺失、首次安装失败且输出指向缺少 GPG/GnuPG 时,后台准备任务才会执行 `brew install gnupg`;默认配置失败或卡住时,再探测清华、阿里云、中科大镜像并用最快可用镜像重试一次。自动安装无输出 45 秒视为卡住;默认首轮最多 2 分钟,镜像兜底最多 8 分钟。
|
|
76
70
|
>
|
|
77
71
|
> 手动执行时可任选一个镜像源,例如清华:
|
|
78
72
|
> ```bash
|
|
@@ -82,11 +76,7 @@ which gpg 2>/dev/null
|
|
|
82
76
|
> brew install gnupg
|
|
83
77
|
> ```
|
|
84
78
|
>
|
|
85
|
-
> 可替换的 bottle
|
|
86
|
-
> - 清华:`https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles`
|
|
87
|
-
> - 阿里云:`https://mirrors.aliyun.com/homebrew-bottles`
|
|
88
|
-
> - 中科大:`https://mirrors.ustc.edu.cn/homebrew-bottles`
|
|
89
|
-
>
|
|
79
|
+
> 可替换的 bottle 镜像源:清华 `https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles`、阿里云 `https://mirrors.aliyun.com/homebrew-bottles`、中科大 `https://mirrors.ustc.edu.cn/homebrew-bottles`。
|
|
90
80
|
> 不要额外设置 `HOMEBREW_API_DOMAIN`;formula 索引保持使用 Homebrew 默认 API,避免镜像索引不完整导致安装失败。
|
|
91
81
|
|
|
92
82
|
签约脚本和 Unix/macOS/Linux 快速沙箱脚本需要 jq 解析 JSON,先检查:
|
|
@@ -102,7 +92,7 @@ jq --version
|
|
|
102
92
|
| Linux (Debian/Ubuntu) | `sudo apt-get install -y jq` |
|
|
103
93
|
| Linux (CentOS/RHEL) | `sudo yum install -y jq` |
|
|
104
94
|
|
|
105
|
-
> ⚠️ macOS 如遇下载慢,可与 GPG 使用同一套 Homebrew bottle 下载源配置。默认 `install` 只检测 jq;执行 `install --with-jq` 且本机缺少 jq
|
|
95
|
+
> ⚠️ macOS 如遇下载慢,可与 GPG 使用同一套 Homebrew bottle 下载源配置。默认 `install` 只检测 jq;执行 `install --with-jq` 且本机缺少 jq 时,后台准备任务按“清华 → 阿里云 → 中科大 → 直连”重试。
|
|
106
96
|
>
|
|
107
97
|
> 手动执行时可任选一个镜像源,例如清华:
|
|
108
98
|
> ```bash
|
|
@@ -111,13 +101,7 @@ jq --version
|
|
|
111
101
|
> export HOMEBREW_NO_INSTALL_CLEANUP=1
|
|
112
102
|
> brew install jq
|
|
113
103
|
> ```
|
|
114
|
-
>
|
|
115
|
-
> 可替换的 bottle 镜像源:
|
|
116
|
-
> - 清华:`https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles`
|
|
117
|
-
> - 阿里云:`https://mirrors.aliyun.com/homebrew-bottles`
|
|
118
|
-
> - 中科大:`https://mirrors.ustc.edu.cn/homebrew-bottles`
|
|
119
|
-
>
|
|
120
|
-
> 不要额外设置 `HOMEBREW_API_DOMAIN`;formula 索引保持使用 Homebrew 默认 API,避免镜像索引不完整导致安装失败。
|
|
104
|
+
> 可替换镜像同上;不要额外设置 `HOMEBREW_API_DOMAIN`。
|
|
121
105
|
|
|
122
106
|
Windows Integration 代码开发路径通过 Node runner 完成项目解析、项目扫描和标准消息渲染,只要求当前 Node 运行时,不把 Bash、jq 或该路径不会调用的 alipay-cli 作为 Step 1 阻断项;进入产品开通或执行既有 shell/CLI 脚本时仍按对应 flow 补齐依赖。Unix/macOS/Linux 和 Onboarding 的既有检查边界不变。
|
|
123
107
|
|
|
@@ -167,7 +151,7 @@ source ~/.bashrc # Linux/bash
|
|
|
167
151
|
|
|
168
152
|
> ⚠️ **强制规范:检测结果仅供内部使用,禁止向用户输出!**
|
|
169
153
|
|
|
170
|
-
AI
|
|
154
|
+
AI 工具由 `scripts/detect_dev_tool.sh` 检测;`init_alipay_cli_context` 设置 `DEV_TOOL_NAME`、`PLATFORM`,并把当前 `run_id` 作为 `PLATFORM_ID`(不受遥测开关影响)。产品确认后,Onboarding 还严格映射 `aipay|webpay|apppay` 为 `PRODUCT=AIPAY|WEBPAY|APPPAY`,其环境检查、登录、查询、写入和上传均携带该值,但不写入 MCP JSON;Integration 产品确定前的环境检查和快速沙箱不传 `PRODUCT`。新建 run 优先采用宿主 `COZE_PROJECT_ID`、`MEOO_PROJECT_ID` 或 MIAODA 的 `VITE_APP_ID`/`PLATFORM_ID`,并复用为 `PLATFORM_ID`。
|
|
171
155
|
|
|
172
156
|
```
|
|
173
157
|
❌ 禁止:向用户输出"环境检查完成,检测到您正在使用 Claude Code 环境"等检测结果
|
|
@@ -178,8 +162,8 @@ AI 编程工具检测使用通用脚本 `scripts/detect_dev_tool.sh`。shell 脚
|
|
|
178
162
|
|
|
179
163
|
### 5.1 页面打开与下载能力降级
|
|
180
164
|
|
|
181
|
-
-
|
|
182
|
-
-
|
|
165
|
+
- HTTPS 白名单通过后依次尝试 macOS `open`→`osascript open location`,或 Linux/Unix `xdg-open`→`gio open`→`sensible-browser`;Windows 保留 PowerShell。仅返回 `OPENED|OPEN_FAILED|GUI_UNAVAILABLE|LINK_ONLY`。
|
|
166
|
+
- 系统 opener 失败时,宿主内置浏览器可用则打开已校验、已交付的同一 URL 一次,不搜索、改写或自动操作;仍失败才提示手动打开/保留复制兜底,再有限轮询。不得安装工具或绕过审批;`OPEN_ERROR_KIND|OPEN_ERROR_CODE` 仅内部诊断,不算业务失败。
|
|
183
167
|
- 目标应用缺少用户已准备的应用公钥时,macOS/Windows 直接执行 onboarding 的 `download_key_tool.sh`,默认保存到用户 `Downloads` 目录并展示实际安装包路径;Linux、缺少 `curl`/`node`、目录不可用、下载源不可达或下载校验失败均回退 `https://opendocs.alipay.com/isv/02kipk`。脚本 stdout 直接输出标准对客文案,不输出 `DOWNLOADED`、`PATH=`、`DOWNLOAD_FAILED` 或 `DOWNLOAD_REASON` 机器标记。下载不安装、不启动、不生成密钥,Skill 不另询问是否下载。
|
|
184
168
|
- 页面打开和下载能力检测不改变 alipay-cli、MCP、业务确认或网络重试契约;宿主权限提示不是 Skill 业务确认。
|
|
185
169
|
|