@alipay/alipay-aipay 1.6.9-beta → 1.6.9-beta1

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.6.9-beta",
3
+ "version": "1.6.9-beta1",
4
4
  "description": "支付宝 AI 付接入 Skill 安装包 - 优先安装 Agent Skill,并在 macOS/Linux 后台准备用户级 CLI 工具",
5
5
  "type": "module",
6
6
  "bin": {
package/skill/VERSION CHANGED
@@ -1 +1 @@
1
- 1.6.9-beta
1
+ 1.6.9-beta1
@@ -1,7 +1,16 @@
1
+ const MAX_PLATFORM_LENGTH = 40;
2
+ const ASCII_PLATFORM_RE = /^[a-z0-9.]{1,40}$/u;
3
+
1
4
  export function normalizeAgentPlatform(value) {
2
- const normalized = String(value || '').trim().toLowerCase().replace(/[_\s-]/gu, '');
5
+ const normalizedInput = String(value || '').normalize('NFKC');
6
+ if (/\p{C}/u.test(normalizedInput)) return 'unknown';
7
+ const raw = normalizedInput.trim();
8
+ if (!raw || [...raw].length > MAX_PLATFORM_LENGTH || /[\\/:@?#%]/u.test(raw)) return 'unknown';
9
+
10
+ const normalized = raw.toLowerCase().replace(/[_\s-]/gu, '');
3
11
  if (normalized === 'claude') return 'claudecode';
4
- return /^[a-z0-9.]{1,40}$/u.test(normalized) ? normalized : 'unknown';
12
+ if (ASCII_PLATFORM_RE.test(normalized)) return normalized;
13
+ return /[\p{L}\p{M}\p{N}]/u.test(raw) ? raw : 'unknown';
5
14
  }
6
15
 
7
16
  // Consume host context before dispatch so Node runners and Shell children share it.
@@ -40,9 +40,11 @@ detect_dev_tool() {
40
40
  echo "qoder"
41
41
  return
42
42
  fi
43
- # The gateway supplies a normalized host identity from the Agent context.
44
- if [[ "${ALIPAY_AIPAY_AGENT_PLATFORM:-}" =~ ^[a-z0-9.]{1,40}$ ]]; then
45
- echo "$ALIPAY_AIPAY_AGENT_PLATFORM"
43
+ # The gateway supplies a validated, readable host identity from the Agent context.
44
+ local agent_platform="${ALIPAY_AIPAY_AGENT_PLATFORM:-}"
45
+ if [ -n "$agent_platform" ] && [ "$agent_platform" != "unknown" ] \
46
+ && [[ ! "$agent_platform" =~ [[:cntrl:]/\\:@?#%] ]]; then
47
+ echo "$agent_platform"
46
48
  return
47
49
  fi
48
50
  echo "unknown"
@@ -48,7 +48,7 @@ runtime 校验 active run、显式 `run_id`、clarify 已记录、stage 路线
48
48
 
49
49
  `c4/ext_info` 只允许 `user_input_after_clarify_intent`、`history_count`、`root_intent` 和 `progress_pct`。正式计数固定读取 event 生成锁内的 `counter_count`;不重复上传 `counter_count`。event 固定后,后续消息只影响后续 stage,不修改旧 event/c4。禁上传用户原文、input ID、文件名、路径、URL、密钥、账号、订单、截图、材料、授权信息、工具输出或堆栈原文。
50
50
 
51
- Yuyan 外层字段中的 `d1/d2/d3` 分别表示操作系统、宿主平台和模型。`d2` 先检查既有有效平台环境变量和自动识别信号,跳过 `unknown`/非法值;仍无法识别时使用 Agent 根据当前宿主身份随每条 runtime 命令传入的 `--agent-platform`(如 `WorkBuddy` 归一为 `workbuddy`),最后才为 `unknown`。gateway 将该上下文传给 Node 和 Shell 子进程,业务 CLI 的工具检测器也在自动识别失败时消费同一兜底,不写跨会话状态。模型只从显式模型上下文读取:优先 `ALIPAY_AIPAY_MODEL`,兼容 `AIPAY_MODEL`;runtime 将具体变体归一为 `gpt-5`、`gpt-4`、`claude`、`gemini`、`qwen`、`deepseek` 或 `llama` 等粗粒度家族。没有宿主模型字段或无法识别时使用 `unknown`,不得根据宿主平台名称臆测模型。Skill 脚本无法读取对话系统内部的模型上下文,宿主或 Agent 需要在调用 runtime 前提供该字段。
51
+ Yuyan 外层字段中的 `d1/d2/d3` 分别表示操作系统、宿主平台和模型。`d2` 先检查既有有效平台环境变量和自动识别信号,跳过 `unknown`/非法值;仍无法识别时使用 Agent 根据当前宿主身份随每条 runtime 命令传入的 `--agent-platform`。该兜底不使用宿主名称枚举或映射表:ASCII 名称按既有规则归一,合法 Unicode 名称保留可读原文,最后才为 `unknown`。gateway 将该上下文传给 Node 和 Shell 子进程,业务 CLI 的工具检测器也在自动识别失败时消费同一兜底,不写跨会话状态。模型只从显式模型上下文读取:优先 `ALIPAY_AIPAY_MODEL`,兼容 `AIPAY_MODEL`;runtime 将具体变体归一为 `gpt-5`、`gpt-4`、`claude`、`gemini`、`qwen`、`deepseek` 或 `llama` 等粗粒度家族。没有宿主模型字段或无法识别时使用 `unknown`,不得根据宿主平台名称臆测模型。Skill 脚本无法读取对话系统内部的模型上下文,宿主或 Agent 需要在调用 runtime 前提供该字段。
52
52
 
53
53
  ## 进度与上传
54
54
 
@@ -38,7 +38,7 @@ node "<SKILL_DIR>/references/normal/scripts/runtime.mjs" render <messageId> --va
38
38
 
39
39
  首次路由前,Agent 在当前上下文自行回答“当前承载我的 Agent 工具叫什么”,从宿主明确身份、系统说明或当前工具上下文取得工具名称,记为 `AGENT_PLATFORM`(例如 `WorkBuddy`),不向用户提问、不把这段判断对客输出。不得把底层模型名称、项目名称、安装目录或用户举例当作当前宿主身份;无法确认时才使用 `unknown`。该事实仅保留当前对话,不写缓存;上下文丢失时重新判断。
40
40
 
41
- 从首条 bootstrap/start-run 起,本文件及所有 flow 登记的每条 runtime 命令均追加 `--agent-platform "<AGENT_PLATFORM>"`,将占位符替换为当前工具名称(例如 `--agent-platform "WorkBuddy"`);不使用环境变量前缀,不依赖前一次工具调用的进程环境。gateway 在业务参数解析前剥离此公共参数,规范化后传给当前进程及子进程。业务 CLI 的 `PLATFORM` 和遥测 Yuyan `d2` 各自优先沿用已有有效识别,只有识别不到时才采用此兜底;环境变量中的 `unknown` 或非法值不应提前终止遥测识别。工具名统一小写并去除空格、下划线和连字符,`WorkBuddy` 为 `workbuddy`;无法安全规范化仍为 `unknown`。该参数不改变业务确认、run_id、PLATFORM_ID 或模型字段。
41
+ 从首条 bootstrap/start-run 起,本文件及所有 flow 登记的每条 runtime 命令均追加 `--agent-platform "<AGENT_PLATFORM>"`,将占位符替换为当前工具名称;不使用环境变量前缀,不依赖前一次工具调用的进程环境。gateway 在业务参数解析前剥离此公共参数,规范化后传给当前进程及子进程。业务 CLI 的 `PLATFORM` 和遥测 Yuyan `d2` 各自优先沿用已有有效识别,只有识别不到时才采用此兜底;环境变量中的 `unknown` 或非法值不应提前终止遥测识别。该兜底不使用宿主名称枚举或映射表:纯 ASCII 名称统一小写并去除空格、下划线和连字符,合法 Unicode 名称保留可读原文;无法安全规范化仍为 `unknown`。该参数不改变业务确认、run_id、PLATFORM_ID 或模型字段。
42
42
 
43
43
  根 `SKILL.md` 启动器已经在读取本文件前确定本轮有效版本,并完成本对话所需的首次 `env refresh-alipay-cli` 或命中同路径、同版本的成功刷新事实。运行时禁止再次执行自更新、读取 `normal/self-update.md` 或切换其他副本;成功事实仍有效时不重复刷新 CLI,只按原始请求识别根意图并加载入口:
44
44