@alipay/alipay-aipay 1.6.1-beta.3 → 1.6.1-beta.4
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/VERSION +1 -1
- package/skill/references/integration/flow.md +10 -10
- package/skill/references/normal/scripts/render_customer_message.mjs +2 -2
- package/skill/references/normal/scripts/telemetry.mjs +11 -2
- package/skill/references/normal/telemetry.md +3 -3
- package/skill/references/onboarding/flow.md +6 -6
- package/skill/references/runtime-entry.md +1 -1
package/package.json
CHANGED
package/skill/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.6.1-beta.
|
|
1
|
+
1.6.1-beta.4
|
|
@@ -539,32 +539,32 @@ node "<SKILL_DIR>/references/normal/scripts/runtime.mjs" integration-message saf
|
|
|
539
539
|
|
|
540
540
|
先汇总 checklist 证据;本轮可修复时先修复、重检,不渲染中间结果。项目快照变化会使旧 `CHECKLIST_SCOPE_RECEIPT` 失效,必须重新加载本阶段并重跑受影响检查。
|
|
541
541
|
|
|
542
|
-
|
|
542
|
+
项目不再变化且准备生成最终结论时,按 `aipay=AIPAY`、`webpay=WEBPAY`、`apppay=APPPAY` 得到 `PRODUCT_VARIANT`。下方唯一 runner 会重算项目快照、校验 scope,并执行固定 implementation audit;审计只读非测试生产源码,检查核心接口标记和登记的高置信度危险模式,不替代完整 checklist,也不接受 Agent 审计 receipt。
|
|
543
543
|
|
|
544
|
-
若审计发现问题且命令未传 `--finalize-audit-findings true`,stdout
|
|
544
|
+
若审计发现问题且命令未传 `--finalize-audit-findings true`,stdout 为空,stderr 只接受唯一 `ALIPAY_AIPAY_INTERNAL:CHECKLIST_AUDIT={state:"REPAIR_REQUIRED",findings:[...]}`。本轮可修复时先修复,重新加载 checklist 阶段取得新 scope,再用更新后的实际证据重跑同一结论命令,禁止渲染中间结果。无法修复时向同一命令追加 `--finalize-audit-findings true`,runner 将 findings 合入“未通过”并收口;该内部重跑不新增用户操作点。`full_process` 必须停在 Integration。
|
|
545
545
|
|
|
546
|
-
对客结论统一使用 `integration.checklist.result`;整体结论、失败/部分通过项和人工待验证项必须来自最终一轮 checklist
|
|
546
|
+
对客结论统一使用 `integration.checklist.result`;整体结论、失败/部分通过项和人工待验证项必须来自最终一轮 checklist 实际证据。首次调用前先按以下完整契约确定参数,禁止改枚举:
|
|
547
547
|
|
|
548
|
-
- `variant`
|
|
549
|
-
- `failedItems
|
|
550
|
-
- `executionMode
|
|
551
|
-
-
|
|
548
|
+
- `variant` 映射 `aipay=AIPAY`、`webpay=WEBPAY`、`apppay=APPPAY`;`overallResult` 只允许“通过、部分通过、未通过”。
|
|
549
|
+
- `failedItems`/`manualItems` 必须是含下一步的受控单行值,无项目传“无”。`sandboxConfigState` 只允许 `READY|CREATE_PENDING|VERIFY_PENDING`;除沙箱配置及其直接依赖外存在代码、安全或必要依据缺口时 `blockingDefectState=PRESENT`,否则 `NONE`。待配置时 `failedItems` 必须列出沙箱配置及依赖动作未完成;恢复口令只由步骤 1/3 已发送的 `sandbox.configuration.pending` 正文提供。
|
|
550
|
+
- `executionMode`:`integration_only` 固定“仅代码开发”,`nextFlowReminder` 固定“正式上线前还需完成支付产品-产品开通。”。`full_process` 固定“完整接入”:`READY` 且“通过”时提醒“代码开发校验通过后将自动进入支付产品-产品开通;未通过时停留在代码开发。”;沙箱待配置且 `blockingDefectState=NONE` 时提醒“沙箱配置尚未完成,但不阻塞本轮继续支付产品-产品开通;完成配置后再进行沙箱测试。”;`READY`、`failedItems=无` 且仅有人工待验证项时提醒“代码开发自动校验已完成,仍有人工待验证项;本轮继续产品开通。”,并把 `manualItems` 原样带入 Onboarding Step 6。其他阻断结果停在 Integration。
|
|
551
|
+
- 仅 `AIPAY` 传 `sandboxResult`:步骤 6 端到端联调通过为“AI 按量付费沙箱服务端联调通过”,否则为“AI 按量付费沙箱服务端联调未通过”。仅 `WEBPAY` 传 `webpayExperienceResult`,按步骤 6 证据从三个登记值中选择:已提供入口指引且待用户实际付款、未提供完整入口指引、或用户已完成一笔沙箱付款且结果有核验证据。`APPPAY` 不传这两个参数。
|
|
552
552
|
|
|
553
553
|
必须从本 flow 所在目录执行当前产品对应单行 runner;runner stdout 是唯一对客正文,必须把 stdout 原文作为当前回复正文发给用户:
|
|
554
554
|
|
|
555
555
|
<!-- ALIPAY_AIPAY_PRODUCT:aipay:START -->
|
|
556
556
|
```bash
|
|
557
|
-
node "<SKILL_DIR>/references/normal/scripts/runtime.mjs" integration-message checklist-result --variant AIPAY --project-path "$PROJECT_PATH" --scope-receipt "$CHECKLIST_SCOPE_RECEIPT" --overall-result "$OVERALL_RESULT" --failed-items "$FAILED_ITEMS" --manual-items "$MANUAL_ITEMS" --sandbox-result "$SANDBOX_RESULT" --sandbox-config-state "$SANDBOX_CONFIG_STATE" --blocking-defect-state "$BLOCKING_DEFECT_STATE" --execution-mode "$EXECUTION_MODE" --next-flow-reminder "$NEXT_FLOW_REMINDER"
|
|
557
|
+
node "<SKILL_DIR>/references/normal/scripts/runtime.mjs" integration-message checklist-result --variant AIPAY --project-path "$PROJECT_PATH" --scope-receipt "$CHECKLIST_SCOPE_RECEIPT" --overall-result "$OVERALL_RESULT" --failed-items "$FAILED_ITEMS" --manual-items "$MANUAL_ITEMS" --sandbox-result "$SANDBOX_RESULT" --sandbox-config-state "$SANDBOX_CONFIG_STATE" --blocking-defect-state "$BLOCKING_DEFECT_STATE" --execution-mode "$EXECUTION_MODE" --next-flow-reminder "$NEXT_FLOW_REMINDER" --user-input-count-total <total> --user-input-count-after-flow-start <afterFlowStart> --flow-start-observed <true|false>
|
|
558
558
|
```
|
|
559
559
|
<!-- ALIPAY_AIPAY_PRODUCT:END -->
|
|
560
560
|
<!-- ALIPAY_AIPAY_PRODUCT:webpay:START -->
|
|
561
561
|
```bash
|
|
562
|
-
node "<SKILL_DIR>/references/normal/scripts/runtime.mjs" integration-message checklist-result --variant WEBPAY --project-path "$PROJECT_PATH" --scope-receipt "$CHECKLIST_SCOPE_RECEIPT" --overall-result "$OVERALL_RESULT" --failed-items "$FAILED_ITEMS" --manual-items "$MANUAL_ITEMS" --webpay-experience-result "$WEBPAY_EXPERIENCE_RESULT" --sandbox-config-state "$SANDBOX_CONFIG_STATE" --blocking-defect-state "$BLOCKING_DEFECT_STATE" --execution-mode "$EXECUTION_MODE" --next-flow-reminder "$NEXT_FLOW_REMINDER"
|
|
562
|
+
node "<SKILL_DIR>/references/normal/scripts/runtime.mjs" integration-message checklist-result --variant WEBPAY --project-path "$PROJECT_PATH" --scope-receipt "$CHECKLIST_SCOPE_RECEIPT" --overall-result "$OVERALL_RESULT" --failed-items "$FAILED_ITEMS" --manual-items "$MANUAL_ITEMS" --webpay-experience-result "$WEBPAY_EXPERIENCE_RESULT" --sandbox-config-state "$SANDBOX_CONFIG_STATE" --blocking-defect-state "$BLOCKING_DEFECT_STATE" --execution-mode "$EXECUTION_MODE" --next-flow-reminder "$NEXT_FLOW_REMINDER" --user-input-count-total <total> --user-input-count-after-flow-start <afterFlowStart> --flow-start-observed <true|false>
|
|
563
563
|
```
|
|
564
564
|
<!-- ALIPAY_AIPAY_PRODUCT:END -->
|
|
565
565
|
<!-- ALIPAY_AIPAY_PRODUCT:apppay:START -->
|
|
566
566
|
```bash
|
|
567
|
-
node "<SKILL_DIR>/references/normal/scripts/runtime.mjs" integration-message checklist-result --variant APPPAY --project-path "$PROJECT_PATH" --scope-receipt "$CHECKLIST_SCOPE_RECEIPT" --overall-result "$OVERALL_RESULT" --failed-items "$FAILED_ITEMS" --manual-items "$MANUAL_ITEMS" --sandbox-config-state "$SANDBOX_CONFIG_STATE" --blocking-defect-state "$BLOCKING_DEFECT_STATE" --execution-mode "$EXECUTION_MODE" --next-flow-reminder "$NEXT_FLOW_REMINDER"
|
|
567
|
+
node "<SKILL_DIR>/references/normal/scripts/runtime.mjs" integration-message checklist-result --variant APPPAY --project-path "$PROJECT_PATH" --scope-receipt "$CHECKLIST_SCOPE_RECEIPT" --overall-result "$OVERALL_RESULT" --failed-items "$FAILED_ITEMS" --manual-items "$MANUAL_ITEMS" --sandbox-config-state "$SANDBOX_CONFIG_STATE" --blocking-defect-state "$BLOCKING_DEFECT_STATE" --execution-mode "$EXECUTION_MODE" --next-flow-reminder "$NEXT_FLOW_REMINDER" --user-input-count-total <total> --user-input-count-after-flow-start <afterFlowStart> --flow-start-observed <true|false>
|
|
568
568
|
```
|
|
569
569
|
<!-- ALIPAY_AIPAY_PRODUCT:END -->
|
|
570
570
|
|
|
@@ -762,12 +762,12 @@ const managedEntrypoints = {
|
|
|
762
762
|
allowedCallers: ['error_handler.sh']
|
|
763
763
|
},
|
|
764
764
|
'application.key.page': {
|
|
765
|
-
command: 'node "<SKILL_DIR>/references/normal/scripts/runtime.mjs" app key --defer-open <appId> <publicKey>,页面 stdout 独立送达后使用同一入口执行 app open-key-page <appId>',
|
|
765
|
+
command: 'node "<SKILL_DIR>/references/normal/scripts/runtime.mjs" app key --product-type <aipay|webpay|apppay> --defer-open <appId> <publicKey>,页面 stdout 独立送达后使用同一入口执行 app open-key-page <appId>',
|
|
766
766
|
reason: 'app.sh 校验 URL 并托管页面。',
|
|
767
767
|
allowedCallers: ['app.sh']
|
|
768
768
|
},
|
|
769
769
|
'application.key.pending': {
|
|
770
|
-
command: 'node "<SKILL_DIR>/references/normal/scripts/runtime.mjs" app verify-key <appId> [publicKey] 或使用同一入口执行 app verify-key-and-audit <appId> [publicKey]',
|
|
770
|
+
command: 'node "<SKILL_DIR>/references/normal/scripts/runtime.mjs" app verify-key --product-type <aipay|webpay|apppay> <appId> [publicKey] 或使用同一入口执行 app verify-key-and-audit --product-type <aipay|webpay|apppay> <appId> [publicKey]',
|
|
771
771
|
reason: 'app.sh 实际查询结果。',
|
|
772
772
|
allowedCallers: ['app.sh']
|
|
773
773
|
},
|
|
@@ -325,7 +325,7 @@ export function enqueueMetricEvent(event, env = process.env) {
|
|
|
325
325
|
|
|
326
326
|
function safeRunId(value) {
|
|
327
327
|
if (typeof value !== 'string' || !value.trim()) return '';
|
|
328
|
-
//
|
|
328
|
+
// Run IDs also participate in state keys and param4 matching, so keep them separator-free.
|
|
329
329
|
return /[\u0000-\u001f\u007f,^=]/u.test(value) ? '' : value;
|
|
330
330
|
}
|
|
331
331
|
|
|
@@ -853,10 +853,19 @@ function serializeSyncLogParam4(param4) {
|
|
|
853
853
|
return Object.keys(param4)
|
|
854
854
|
.filter((key) => param4[key] !== undefined && param4[key] !== null)
|
|
855
855
|
.sort()
|
|
856
|
-
.map((key) => `${key}=${param4[key]}`)
|
|
856
|
+
.map((key) => `${key}=${encodeSyncLogParam4Value(param4[key])}`)
|
|
857
857
|
.join('^');
|
|
858
858
|
}
|
|
859
859
|
|
|
860
|
+
function encodeSyncLogParam4Value(value) {
|
|
861
|
+
const text = String(value ?? '');
|
|
862
|
+
try {
|
|
863
|
+
return encodeURIComponent(text).replace(/'/g, '%27');
|
|
864
|
+
} catch {
|
|
865
|
+
return encodeURIComponent(text.replace(/[\uD800-\uDFFF]/g, '\uFFFD')).replace(/'/g, '%27');
|
|
866
|
+
}
|
|
867
|
+
}
|
|
868
|
+
|
|
860
869
|
export function buildSyncLogLine(userID, param4, date = new Date()) {
|
|
861
870
|
const pad = (value, length = 2) => String(value).padStart(length, '0');
|
|
862
871
|
const clientLogTime = [
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
- stage、Yuyan 字段和低敏维度以 `scripts/telemetry.mjs`
|
|
2
|
-
- `start-run` 创建或复用当前 `run_id`;业务脚本继承 `PLATFORM_ID=<run_id>`,Agent
|
|
1
|
+
- stage、Yuyan 字段和低敏维度以 `scripts/telemetry.mjs` 与测试为准。sync-log `param4` value 按 Yuyan Monitor SDK 单独 URL 编码后再整体编码,禁用裸 JSON、CSV 引号或手写分隔符。遥测关闭、缺 run、落盘/网络/上传失败或非 2xx 不改变业务 stdout、退出语义或 flow;内部行用 `ALIPAY_AIPAY_INTERNAL:`。
|
|
2
|
+
- `start-run` 创建或复用当前 `run_id`;业务脚本继承 `PLATFORM_ID=<run_id>`,Agent 不手写环境前缀或改 MCP payload。outbox 只写系统临时目录,collector HTTP 2xx 后才删。维护/测试进程不复用默认 run state,默认不远端上传。Benchmark 只能用 `ALIPAY_AIPAY_TELEMETRY_CAPTURE_ONLY=1` 写隔离 outbox;该模式禁用上传、flush 和权限补传。
|
|
3
3
|
- 根入口用 `root_intent + product_type` 判定复用或新建;组合不变时不按时长失效,`UNKNOWN` 补全为明确产品仍复用同一 `run_id`。只有明确换产品、切换根意图或已有 run 终态才重建;用户只说“重新开始/重新走流程/作废本轮流程”但组合未变时继续复用。`COZE_PROJECT_ID`、`MEOO_PROJECT_ID`、`MIAODA` 下的 `VITE_APP_ID`/`PLATFORM_ID` 优先作为新 run ID。
|
|
4
4
|
- `integration_only` 由 checklist 最终消息终止;`full_process` 的 Integration 收口不终止。`onboarding_only|full_process` 由 Onboarding closeout、企业账号不支持或 Windows 站点引导消息终止。查看主键只用 `current-run-id`,不得为查看而新建 run。
|
|
5
5
|
- Agent 在当前上下文计数:`user_input_count_total` 从触发当前 `run_id` 的用户消息开始;`user_input_count_after_flow_start` 从进入 `integration.user_confirmed` 或 `onboarding.user_confirmed` 后的下一条用户消息开始;`flow_start_observed` 表示已进入正式 flow start,`full_process` 不因进入 Onboarding 重置。只计用户发给 Agent 的消息;用户直接 kill 且没有执行 `run.terminal` 时不补报。终态命令只追加 `--user-input-count-total`、`--user-input-count-after-flow-start`、`--flow-start-observed`;不得新增工具调用、确认点、stage 或独立上报。`run.terminal` 的 Yuyan `c4` 字段名为 `ext_info`,三项合法时写 minified JSON;非法、缺失、`after_flow_start > total` 或 `flow_start_observed=false` 但 after-flow 非 0 时省略 `c4`。
|
|
6
|
-
- `telemetry upload-status`
|
|
6
|
+
- `telemetry upload-status` 只读诊断。网络失败且 outbox 积压时先执行 `node "<SKILL_DIR>/references/normal/scripts/runtime.mjs" telemetry permissioned-flush-needed`;仅 `PERMISSIONED_FLUSH_NEEDED=true` 时申请一次联网权限运行 `telemetry flush-outbox`,同一 Agent 会话只请求一次。`flush-outbox` 只启动后台补传并立即返回;拒绝、后台失败或非 2xx 都保留 outbox。collector HTTP 结果、失败或待重试结果不得作为业务转移或完成条件。
|
|
@@ -59,7 +59,7 @@ Step 1: 方案规划 → Step 2: 环境检查 → Step 3: 登录授权
|
|
|
59
59
|
环境检查、产品/MCC 澄清或方案展示前先执行平台入口。`onboarding_only` 正常由 `onboarding-bootstrap --root-intent onboarding_only` 包含本动作和 entry 加载;仅原子 fallback 或 `full_process` 衔接时执行:
|
|
60
60
|
|
|
61
61
|
```bash
|
|
62
|
-
node "<SKILL_DIR>/references/normal/scripts/runtime.mjs" onboarding-message platform-entry
|
|
62
|
+
node "<SKILL_DIR>/references/normal/scripts/runtime.mjs" onboarding-message platform-entry --user-input-count-total <total> --user-input-count-after-flow-start <afterFlowStart> --flow-start-observed <true|false>
|
|
63
63
|
```
|
|
64
64
|
|
|
65
65
|
- Windows:runner 从私有 run context 取 `run_id` 生成 `platform_id`,禁止 Agent 传入或拼接;消息渲染即终结 run,送达唯一 stdout 后停止 Onboarding;`full_process` 保留 Integration 结果。
|
|
@@ -68,7 +68,7 @@ node "<SKILL_DIR>/references/normal/scripts/runtime.mjs" onboarding-message plat
|
|
|
68
68
|
用户明确要用企业账号通过 Skill 开通时执行下列消息并停止 Onboarding;不得主动询问账号类型,也不得从 MCC、营业执照或“公司”等描述推断。
|
|
69
69
|
|
|
70
70
|
```bash
|
|
71
|
-
node "<SKILL_DIR>/references/normal/scripts/runtime.mjs" onboarding-message enterprise-unsupported --variant <ONBOARDING_ONLY|FULL_PROCESS>
|
|
71
|
+
node "<SKILL_DIR>/references/normal/scripts/runtime.mjs" onboarding-message enterprise-unsupported --variant <ONBOARDING_ONLY|FULL_PROCESS> --user-input-count-total <total> --user-input-count-after-flow-start <afterFlowStart> --flow-start-observed <true|false>
|
|
72
72
|
```
|
|
73
73
|
|
|
74
74
|
`onboarding_only` 固定 `ONBOARDING_ONLY`,`full_process` 固定 `FULL_PROCESS`。原文送达最终 stdout 后停止,不执行 Step 6 或追加收口。
|
|
@@ -496,17 +496,17 @@ node "<SKILL_DIR>/references/normal/scripts/runtime.mjs" onboarding-message appl
|
|
|
496
496
|
|
|
497
497
|
**完成条件**:当前登录、scope 和 MCC 必须有效;签约必须由实际查询确认为已生效;仅按量付费适用的服务分支必须复用或保存成功并取得实际 `serviceId`;应用必须达到 `ON_LINE`、应用公钥已生效且支付宝公钥已实际导出。存在失败、未知、待生效、待审核或人工配置时不得宣称产品开通完成。不维护人工完成条件数量。
|
|
498
498
|
|
|
499
|
-
使用 `../normal/json/customer-messages.json` 的 `process.partial_result`
|
|
499
|
+
使用 `../normal/json/customer-messages.json` 的 `process.partial_result` 逐分支收口,必须通过 `onboarding_message_runner.mjs closeout` 托管输出并原文发送 stdout。禁止 Agent 手写短摘要、删减 `productionReadinessBlock`、删减 AI 网页应用收款限制引导或改写后续衔接;AI 网页应用收款收口缺少“【上线前有以下关键点】”和“AI 网页应用收款限制”时视为标准收口未送达,必须重发同一次 stdout。自动重试耗尽、业务错误或查询失败且仍未恢复的动作,统一写入分支结果和 `remainingActions`,只说明一次,不在收口后追问是否重试。必须执行:
|
|
500
500
|
|
|
501
501
|
`SIGNING_RESULT`、`SERVICE_RESULT`、`APPLICATION_RESULT` 和 `INTEGRATION_RESULT` 必须使用消息目录允许的状态枚举原文,禁止拼接 `appId`、公钥文件路径、错误码、截图证据或其他自由文本;支付宝公钥保存路径只允许在已取得唯一 `ALIPAY_PUBLIC_KEY_EXPORT_STATUS=EXPORTED` 和 `ALIPAY_PUBLIC_KEY_FILE` 时,通过 `APP_KEY_SAVE_PATH` 或 `APPLICATION_OPERATION_APP_KEY_SAVE_PATH` 独立传入结果 runner。这些证据不能污染分支结果枚举。
|
|
502
502
|
|
|
503
503
|
```bash
|
|
504
|
-
node "<SKILL_DIR>/references/normal/scripts/runtime.mjs" onboarding-message closeout --product-type "$PRODUCT_TYPE" --root-intent "$ROOT_INTENT" --signing-result "$SIGNING_RESULT" --application-result "$APPLICATION_RESULT" --remaining-actions "$REMAINING_ACTIONS" [--integration-result "$INTEGRATION_RESULT"] [--service-result "$SERVICE_RESULT"] [--sandbox-config-state "$SANDBOX_CONFIG_STATE"] [--manual-verification-items "$MANUAL_VERIFICATION_ITEMS"] [--application-operation-app-id "$APPLICATION_OPERATION_APP_ID" [--application-operation-next-action "$APPLICATION_OPERATION_NEXT_ACTION"] [--application-operation-app-key-save-path "$APPLICATION_OPERATION_APP_KEY_SAVE_PATH"]]
|
|
504
|
+
node "<SKILL_DIR>/references/normal/scripts/runtime.mjs" onboarding-message closeout --product-type "$PRODUCT_TYPE" --root-intent "$ROOT_INTENT" --signing-result "$SIGNING_RESULT" --application-result "$APPLICATION_RESULT" --remaining-actions "$REMAINING_ACTIONS" [--integration-result "$INTEGRATION_RESULT"] [--service-result "$SERVICE_RESULT"] [--sandbox-config-state "$SANDBOX_CONFIG_STATE"] [--manual-verification-items "$MANUAL_VERIFICATION_ITEMS"] [--application-operation-app-id "$APPLICATION_OPERATION_APP_ID" [--application-operation-next-action "$APPLICATION_OPERATION_NEXT_ACTION"] [--application-operation-app-key-save-path "$APPLICATION_OPERATION_APP_KEY_SAVE_PATH"]] --user-input-count-total <total> --user-input-count-after-flow-start <afterFlowStart> --flow-start-observed <true|false>
|
|
505
505
|
```
|
|
506
506
|
|
|
507
|
-
runner 从 `PRODUCT_TYPE`
|
|
507
|
+
runner 从 `PRODUCT_TYPE` 派生产品名,网站支付/APP 支付派生服务结果“无需处理”,从 `ROOT_INTENT` 派生代码开发栏和后续衔接;标题只按完成条件派生。`onboarding_only` 省略 `--integration-result`、`--sandbox-config-state` 和 `--manual-verification-items`。`full_process`:代码开发通过填“已完成”并传 `READY`;仅沙箱待配置且其余代码与安全检查通过填“部分完成,沙箱配置待完成”并传 `CREATE_PENDING|VERIFY_PENDING`;沙箱 `READY` 且只剩非阻塞人工待验证项时填“部分完成,人工待验证”,传 `READY`,把 checklist `manualItems` 原样作为 `MANUAL_VERIFICATION_ITEMS`,并在 `REMAINING_ACTIONS` 写明实际待办,禁止传“无”。runner 拒绝旧完整参数、stdin JSON、`--input-json`、可派生字段和空字符串伪值。renderer 校验结果与沙箱状态/人工待验证项一致,并派生恢复口令或人工待验证展示;不增加确认点。不得在 stdout 前后追加衔接提醒,不伪造本轮代码修改、沙箱创建或测试结果,也不重复进入 integration。
|
|
508
508
|
|
|
509
|
-
若 `full_process`
|
|
509
|
+
若 `full_process` 最后一跳紧接应用创建、审核提交或复用,不再先输出 `application.operation.result` 再立刻 closeout;只记录同一 `APPLICATION_OPERATION_APP_ID`,runner 复用 `APPLICATION_RESULT`,非“需人工配置”还记录 `APPLICATION_OPERATION_NEXT_ACTION`;“需人工配置”的下一步由 runner 派生。若同一动作已成功导出支付宝公钥,同时传 `APPLICATION_OPERATION_APP_KEY_SAVE_PATH`,收口必须展示“当前 appId: xxx 对应的支付宝公钥保存在:xxx”;“需人工配置”禁止传该路径。已上线且无保存路径时不展开“应用分支结果”;已上线且有保存路径时只展开 appId、状态和路径;其他应用结果合并展示并保留完成态红线。`onboarding_only`、应用分支仍需用户补材料/确认,或应用操作结果不是紧邻 Step 6 收口时,仍按应用模块输出 `application.operation.result`。合并展示不得改写完成条件,待审核、待设置公钥或待人工配置仍不得表述为应用发布完成。
|
|
510
510
|
|
|
511
511
|
当且仅当签约结果为“已提交,等待生效”且应用结果为“已提交审核,等待上线”时,renderer 从消息目录自动在 `remainingActions` 后追加状态查询提示;该提示不是 flow 入参,Agent 禁止自行传入、拼接或在模板外重复输出。其他结果组合不展示该提示。
|
|
512
512
|
|
|
@@ -41,7 +41,7 @@ node "<SKILL_DIR>/references/normal/scripts/runtime.mjs" render <messageId> --va
|
|
|
41
41
|
| 意图 | 判定 | 入口 | 后续按需加载 |
|
|
42
42
|
|---|---|---|---|
|
|
43
43
|
| `integration_only` | 只要求代码开发、支付集成或集成排障,未同时要求产品开通 | 执行 `node "<SKILL_DIR>/references/normal/scripts/runtime.mjs" integration-bootstrap --root-intent integration_only` | 当前阶段、产品和语言的契约、示例与脚本 |
|
|
44
|
-
| `onboarding_only` | 只要求签约、入驻或产品开通,未同时要求代码开发 | 执行 `node "<SKILL_DIR>/references/normal/scripts/runtime.mjs" onboarding-bootstrap --root-intent onboarding_only
|
|
44
|
+
| `onboarding_only` | 只要求签约、入驻或产品开通,未同时要求代码开发 | 执行 `node "<SKILL_DIR>/references/normal/scripts/runtime.mjs" onboarding-bootstrap --root-intent onboarding_only --user-input-count-total <total> --user-input-count-after-flow-start <afterFlowStart> --flow-start-observed <true|false>` | 当前阶段的授权、查询或写分支模块 |
|
|
45
45
|
| `full_process` | 明确要求完整接入、一站式,或同一请求同时要求代码开发和产品开通 | `normal/full-process-routing.md` | 先 Integration,满足衔接条件后 Onboarding |
|
|
46
46
|
|
|
47
47
|
`integration_only` 的 `integration-bootstrap` 只在同一 Node 进程串行执行 `telemetry start-run` 与 `flow integration entry`。`onboarding_only` 的 `onboarding-bootstrap` 只串行执行 `telemetry start-run`、`onboarding-message platform-entry` 与 `flow onboarding entry`。两者均为既有无业务写入动作,执行后不得重复原子命令。Windows 引导渲染即终结 run 并停止,`platform_id` 取本次 `run_id` 且禁止 Agent 传入;非 Windows 返回 entry 契约。`full_process` 不使用 `integration-bootstrap`;衔接 Onboarding 也不使用带 `start-run` 的 bootstrap,仍执行 `node "<SKILL_DIR>/references/normal/scripts/runtime.mjs" onboarding-message platform-entry` 后按需加载 entry,避免重复 `run.intent_detected`。
|