@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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alipay/alipay-aipay",
3
- "version": "1.5.5",
3
+ "version": "1.5.6",
4
4
  "description": "支付宝 AI 付 Skill 安装包 - 安装 Agent Skill,并检测/后台准备 alipay-cli;jq 可通过 --with-jq 尝试准备",
5
5
  "type": "module",
6
6
  "bin": {
package/skill/SKILL.md CHANGED
@@ -11,20 +11,21 @@ description: >-
11
11
 
12
12
  ## 前置版本检查
13
13
 
14
- 本次 Agent 对话首次使用 `alipay-aipay` 时,先把本文件所在目录解析为规范化绝对路径 `<SKILL_DIR>`,在当前 Agent 上下文记录一次性事实 `ALIPAY_AIPAY_SELF_UPDATE_CHECKED=true`,再直接执行以下单条命令。`<SKILL_DIR>` 是路径占位符,执行时替换为实际路径;禁止用 shell 变量赋值、命令替换或依赖特定 shell:
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`;不得使用 Agent 启动目录、用户项目目录、用户 Home、npm 包源码根或另一份 Skill 副本。命令失败或 marker 无法唯一解析时按 `SELF_UPDATE:CHECK_FAILED` 处理。
20
+ `SKILL_DIR` 必须绑定刚触发的本份 Skill,且包含 `SKILL.md`、`VERSION` 和 `references/runtime-entry.md`;不得换成 Agent 启动目录、用户项目目录、用户 Home、npm 包源码根或另一份 Skill 副本。命令失败或 marker 无法唯一解析时按 `SELF_UPDATE:CHECK_FAILED`。
21
21
 
22
- 脚本正常结束时,stderr 只允许出现以下一个内部终态;不得向用户展示 marker 或 npm/npx 原始输出:
22
+ stderr 只允许出现以下一个内部终态;不得向用户展示 marker 或 npm/npx 原始输出:
23
23
 
24
24
  - `SELF_UPDATE:UPDATED=<合法 SemVer>`:当前 Skill 目录已原子切换到新版。
25
25
  - `SELF_UPDATE:CURRENT=<合法 SemVer>`:继续当前版本。
26
- - `SELF_UPDATE:CHECK_FAILED|INSTALL_FAILED|VERIFY_FAILED`:更新未完成,静默继续当前可用版本,不重试、不申请权限。
26
+ - `SELF_UPDATE:RETRY_WITH_NETWORK`:registry 或安装阶段网络不可达;可申请联网后原样重试本命令一次。
27
+ - `SELF_UPDATE:SKIPPED_NETWORK_RESTRICTED|CHECK_FAILED|INSTALL_FAILED|VERIFY_FAILED`:静默继续当前可用版本,不重试、不申请权限。
27
28
 
28
- 无论使用新版还是当前版本,下一步都只完整读取同一 `SKILL_DIR` 下的 `references/runtime-entry.md`,并按原始用户请求从该入口路由。`UPDATED` 后禁止继续读取更新前版本的任何业务文档,也不重新执行版本检查;其他终态同样不再读取本启动器或 `self-update.md` 补充规则。
29
+ 除 `RETRY_WITH_NETWORK` 的一次原样重试外,下一步都只完整读取同一 `SKILL_DIR` 下的 `references/runtime-entry.md`,并按原始用户请求从该入口路由。`UPDATED` 后禁止继续读取更新前版本的任何业务文档,也不重新执行版本检查;其他终态同样不再读取本启动器或 `self-update.md` 补充规则。
29
30
 
30
- 同一对话后续确认、补材料、候选选择、错误恢复、中断继续、重复触发和 Full Process 子流程衔接,若一次性事实已存在,则跳过版本检查,直接读取当前已确定版本的 `references/runtime-entry.md`。该事实只存在于当前 Agent 对话上下文,不写缓存或业务状态。
31
+ 同一对话后续确认、补材料、候选选择、错误恢复、中断继续、重复触发和 Full Process 衔接,若一次性事实已存在,则跳过版本检查,直接读取已确定版本的 `references/runtime-entry.md`。该事实只存在于当前 Agent 对话上下文,不写缓存或业务状态。
package/skill/VERSION CHANGED
@@ -1 +1 @@
1
- 1.5.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` 时,表示当前 Agent 执行环境没有取得可确认 CLI 结果;必须申请联网权限后重试同一条完整脚本命令,不得解释为支付宝业务失败、logout 失败或 login 失败,也不得要求用户手动 logout/login 代替本轮脚本事实。
46
- - `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 禁止读取、列举、打印或复制已有凭据与日志。该规则不改变 MCP、上传或沙箱脚本边界。
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
- - 优先执行 Skill 内置脚本;从本文件所在的 `references/normal/` 目录调用 onboarding 脚本时,使用 `node "<SKILL_DIR>/references/normal/scripts/runtime.mjs" auth ...`、`node "<SKILL_DIR>/references/normal/scripts/runtime.mjs" app ...`、`node "<SKILL_DIR>/references/normal/scripts/runtime.mjs" service ...`,不要把每次 `alipay-cli mcp call` 都展开成新的长命令。
51
- - 在支持前缀持久授权的工具中,申请可联网权限时使用当前实际脚本绝对路径对应的稳定命令前缀作为授权范围。同一脚本后续不同参数更容易复用授权;不得为了复用授权改调另一份 Skill 副本。
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
- 只有在 `alipay-cli` 首次安装失败,且失败输出指向缺少 GPG/GnuPG 时,后台准备任务才会把 GPG 作为兜底依赖检查:
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`。安装器不会阻塞等待 GPG 安装;只有在 `alipay-cli` 缺失、首次安装失败且失败输出指向缺少 GPG/GnuPG 时,后台准备任务才会先使用 Homebrew 当前配置执行一次 `brew install gnupg`。如果默认安装失败或卡住,再并行探测清华、阿里云、中科大三个 bottle 镜像,选择最快可用镜像后用镜像重试一次。自动安装使用“无输出超时”:45 秒没有 stdout/stderr 输出才认为命令卡住;默认安装首轮最多 2 分钟,镜像兜底最多 8 分钟。
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 编程工具检测使用通用脚本 `scripts/detect_dev_tool.sh`。shell 脚本通过 `scripts/common.sh` 提供的 `init_alipay_cli_context` 初始化 `DEV_TOOL_NAME`、`PLATFORM` 和 `PLATFORM_ID`;其中 `PLATFORM_ID` 取当前流程 `run_id`,用于关联同一流程,遥测开启或关闭都不影响该值。Onboarding 在产品确认后还通过同一公共脚本把 `aipay|webpay|apppay` 严格映射为 CLI 环境变量 `PRODUCT=AIPAY|WEBPAY|APPPAY`,所有环境检查、登录、查询、写入和文件上传调用都必须携带当前值;该字段不进入 MCP 请求 JSON。Integration 的产品确定前环境检查和快速沙箱仍不传 `PRODUCT`。若宿主环境提供 `COZE_PROJECT_ID`、`MEOO_PROJECT_ID`,或 `MIAODA` 环境下的 `VITE_APP_ID`/`PLATFORM_ID`,新建 run 时优先使用该项目 ID 作为 `run_id`,脚本也会将同一值作为 `PLATFORM_ID`。文档示例或非 shell 流程可直接参考 `detect_dev_tool.sh` 的输出。
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
- - 授权页或公钥确认页由 `scripts/open_official_url.sh` 在精确 HTTPS 主机、路径、查询参数和当前上下文校验通过后默认调用 macOS `open`、Linux `xdg-open` 或可用的 Windows PowerShell;只返回 `OPENED` / `OPEN_FAILED` / `GUI_UNAVAILABLE` / `LINK_ONLY`,不输出临时 URL。Skill 不另询问是否打开。
182
- - 宿主缺少 GUI、opener 不存在或当前权限不允许打开时,不安装桌面工具、不绕过宿主审批,直接由标准消息保留同一裸 URL 和复制访问兜底。
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