@alipay/alipay-aipay 1.0.0 → 1.0.1

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.
Files changed (117) hide show
  1. package/bin/alipay-aipay.js +6 -0
  2. package/dist/commands/install.d.ts +11 -0
  3. package/dist/commands/install.d.ts.map +1 -0
  4. package/dist/commands/install.js +182 -0
  5. package/dist/commands/install.js.map +1 -0
  6. package/dist/commands/prepare-tools.d.ts +5 -0
  7. package/dist/commands/prepare-tools.d.ts.map +1 -0
  8. package/dist/commands/prepare-tools.js +29 -0
  9. package/dist/commands/prepare-tools.js.map +1 -0
  10. package/dist/commands/uninstall.d.ts +10 -0
  11. package/dist/commands/uninstall.d.ts.map +1 -0
  12. package/dist/commands/uninstall.js +82 -0
  13. package/dist/commands/uninstall.js.map +1 -0
  14. package/dist/commands/update.d.ts +10 -0
  15. package/dist/commands/update.d.ts.map +1 -0
  16. package/dist/commands/update.js +155 -0
  17. package/dist/commands/update.js.map +1 -0
  18. package/dist/index.d.ts +2 -0
  19. package/dist/index.d.ts.map +1 -0
  20. package/dist/index.js +65 -0
  21. package/dist/index.js.map +1 -0
  22. package/dist/types.d.ts +43 -0
  23. package/dist/types.d.ts.map +1 -0
  24. package/dist/types.js +2 -0
  25. package/dist/types.js.map +1 -0
  26. package/dist/utils/alipay-cli.d.ts +15 -0
  27. package/dist/utils/alipay-cli.d.ts.map +1 -0
  28. package/dist/utils/alipay-cli.js +221 -0
  29. package/dist/utils/alipay-cli.js.map +1 -0
  30. package/dist/utils/config.d.ts +48 -0
  31. package/dist/utils/config.d.ts.map +1 -0
  32. package/dist/utils/config.js +207 -0
  33. package/dist/utils/config.js.map +1 -0
  34. package/dist/utils/file.d.ts +55 -0
  35. package/dist/utils/file.d.ts.map +1 -0
  36. package/dist/utils/file.js +154 -0
  37. package/dist/utils/file.js.map +1 -0
  38. package/dist/utils/gpg.d.ts +14 -0
  39. package/dist/utils/gpg.d.ts.map +1 -0
  40. package/dist/utils/gpg.js +247 -0
  41. package/dist/utils/gpg.js.map +1 -0
  42. package/dist/utils/jq.d.ts +14 -0
  43. package/dist/utils/jq.d.ts.map +1 -0
  44. package/dist/utils/jq.js +221 -0
  45. package/dist/utils/jq.js.map +1 -0
  46. package/dist/utils/npm.d.ts +17 -0
  47. package/dist/utils/npm.d.ts.map +1 -0
  48. package/dist/utils/npm.js +42 -0
  49. package/dist/utils/npm.js.map +1 -0
  50. package/dist/utils/shell.d.ts +11 -0
  51. package/dist/utils/shell.d.ts.map +1 -0
  52. package/dist/utils/shell.js +54 -0
  53. package/dist/utils/shell.js.map +1 -0
  54. package/package.json +48 -7
  55. package/skill/SKILL.md +118 -0
  56. package/skill/references/integration/flow.md +487 -0
  57. package/skill/references/integration/modules/alipay-sdk-reminder.md +256 -0
  58. package/skill/references/integration/modules/checklist.md +122 -0
  59. package/skill/references/integration/modules/code-examples/csharp/1-/351/200/232/347/224/250/346/216/245/345/217/243//347/273/237/344/270/200/346/224/266/345/215/225/344/272/244/346/230/223/345/205/263/351/227/255/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +68 -0
  60. package/skill/references/integration/modules/code-examples/csharp/1-/351/200/232/347/224/250/346/216/245/345/217/243//347/273/237/344/270/200/346/224/266/345/215/225/344/272/244/346/230/223/346/237/245/350/257/242/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +77 -0
  61. package/skill/references/integration/modules/code-examples/csharp/1-/351/200/232/347/224/250/346/216/245/345/217/243//347/273/237/344/270/200/346/224/266/345/215/225/344/272/244/346/230/223/351/200/200/346/254/276/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +74 -0
  62. package/skill/references/integration/modules/code-examples/csharp/1-/351/200/232/347/224/250/346/216/245/345/217/243//347/273/237/344/270/200/346/224/266/345/215/225/344/272/244/346/230/223/351/200/200/346/254/276/346/237/245/350/257/242/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +73 -0
  63. package/skill/references/integration/modules/code-examples/csharp/2-/347/275/221/347/253/231/346/224/257/344/273/230//347/273/237/344/270/200/346/224/266/345/215/225/344/270/213/345/215/225/345/271/266/346/224/257/344/273/230/351/241/265/351/235/242/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +58 -0
  64. package/skill/references/integration/modules/code-examples/csharp/3-APP/346/224/257/344/273/230/APP/346/224/257/344/273/230/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +128 -0
  65. package/skill/references/integration/modules/code-examples/csharp/4-/346/214/211/351/207/217/344/273/230/350/264/271/A2MPaymentDemo.cs +500 -0
  66. package/skill/references/integration/modules/code-examples/java/1-/351/200/232/347/224/250/346/216/245/345/217/243//347/273/237/344/270/200/346/224/266/345/215/225/344/272/244/346/230/223/345/205/263/351/227/255/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +72 -0
  67. package/skill/references/integration/modules/code-examples/java/1-/351/200/232/347/224/250/346/216/245/345/217/243//347/273/237/344/270/200/346/224/266/345/215/225/344/272/244/346/230/223/346/237/245/350/257/242/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +80 -0
  68. package/skill/references/integration/modules/code-examples/java/1-/351/200/232/347/224/250/346/216/245/345/217/243//347/273/237/344/270/200/346/224/266/345/215/225/344/272/244/346/230/223/351/200/200/346/254/276/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +78 -0
  69. package/skill/references/integration/modules/code-examples/java/1-/351/200/232/347/224/250/346/216/245/345/217/243//347/273/237/344/270/200/346/224/266/345/215/225/344/272/244/346/230/223/351/200/200/346/254/276/346/237/245/350/257/242/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +77 -0
  70. package/skill/references/integration/modules/code-examples/java/2-/347/275/221/347/253/231/346/224/257/344/273/230//347/273/237/344/270/200/346/224/266/345/215/225/344/270/213/345/215/225/345/271/266/346/224/257/344/273/230/351/241/265/351/235/242/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +66 -0
  71. package/skill/references/integration/modules/code-examples/java/3-APP/346/224/257/344/273/230/APP/346/224/257/344/273/230/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +135 -0
  72. package/skill/references/integration/modules/code-examples/java/4-/346/214/211/351/207/217/344/273/230/350/264/271/A2MPaymentDemoController.java +610 -0
  73. package/skill/references/integration/modules/code-examples/nodejs/1-/351/200/232/347/224/250/346/216/245/345/217/243//347/273/237/344/270/200/346/224/266/345/215/225/344/272/244/346/230/223/345/205/263/351/227/255/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +51 -0
  74. package/skill/references/integration/modules/code-examples/nodejs/1-/351/200/232/347/224/250/346/216/245/345/217/243//347/273/237/344/270/200/346/224/266/345/215/225/344/272/244/346/230/223/346/237/245/350/257/242/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +57 -0
  75. package/skill/references/integration/modules/code-examples/nodejs/1-/351/200/232/347/224/250/346/216/245/345/217/243//347/273/237/344/270/200/346/224/266/345/215/225/344/272/244/346/230/223/351/200/200/346/254/276/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +55 -0
  76. package/skill/references/integration/modules/code-examples/nodejs/1-/351/200/232/347/224/250/346/216/245/345/217/243//347/273/237/344/270/200/346/224/266/345/215/225/344/272/244/346/230/223/351/200/200/346/254/276/346/237/245/350/257/242/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +54 -0
  77. package/skill/references/integration/modules/code-examples/nodejs/2-/347/275/221/347/253/231/346/224/257/344/273/230//347/273/237/344/270/200/346/224/266/345/215/225/344/270/213/345/215/225/345/271/266/346/224/257/344/273/230/351/241/265/351/235/242/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +77 -0
  78. package/skill/references/integration/modules/code-examples/nodejs/3-APP/346/224/257/344/273/230/APP/346/224/257/344/273/230/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +65 -0
  79. package/skill/references/integration/modules/code-examples/nodejs/4-/346/214/211/351/207/217/344/273/230/350/264/271/A2MPaymentDemo.js +461 -0
  80. package/skill/references/integration/modules/code-examples/php/1-/351/200/232/347/224/250/346/216/245/345/217/243//347/273/237/344/270/200/346/224/266/345/215/225/344/272/244/346/230/223/345/205/263/351/227/255/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +59 -0
  81. package/skill/references/integration/modules/code-examples/php/1-/351/200/232/347/224/250/346/216/245/345/217/243//347/273/237/344/270/200/346/224/266/345/215/225/344/272/244/346/230/223/346/237/245/350/257/242/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +67 -0
  82. package/skill/references/integration/modules/code-examples/php/1-/351/200/232/347/224/250/346/216/245/345/217/243//347/273/237/344/270/200/346/224/266/345/215/225/344/272/244/346/230/223/351/200/200/346/254/276/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +66 -0
  83. package/skill/references/integration/modules/code-examples/php/1-/351/200/232/347/224/250/346/216/245/345/217/243//347/273/237/344/270/200/346/224/266/345/215/225/344/272/244/346/230/223/351/200/200/346/254/276/346/237/245/350/257/242/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +65 -0
  84. package/skill/references/integration/modules/code-examples/php/2-/347/275/221/347/253/231/346/224/257/344/273/230//347/273/237/344/270/200/346/224/266/345/215/225/344/270/213/345/215/225/345/271/266/346/224/257/344/273/230/351/241/265/351/235/242/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +56 -0
  85. package/skill/references/integration/modules/code-examples/php/3-APP/346/224/257/344/273/230/APP/346/224/257/344/273/230/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +107 -0
  86. package/skill/references/integration/modules/code-examples/php/4-/346/214/211/351/207/217/344/273/230/350/264/271/A2MPaymentDemo.php +444 -0
  87. package/skill/references/integration/modules/code-examples/python/1-/351/200/232/347/224/250/346/216/245/345/217/243//347/273/237/344/270/200/346/224/266/345/215/225/344/272/244/346/230/223/345/205/263/351/227/255/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +57 -0
  88. package/skill/references/integration/modules/code-examples/python/1-/351/200/232/347/224/250/346/216/245/345/217/243//347/273/237/344/270/200/346/224/266/345/215/225/344/272/244/346/230/223/346/237/245/350/257/242/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +65 -0
  89. package/skill/references/integration/modules/code-examples/python/1-/351/200/232/347/224/250/346/216/245/345/217/243//347/273/237/344/270/200/346/224/266/345/215/225/344/272/244/346/230/223/351/200/200/346/254/276/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +63 -0
  90. package/skill/references/integration/modules/code-examples/python/1-/351/200/232/347/224/250/346/216/245/345/217/243//347/273/237/344/270/200/346/224/266/345/215/225/344/272/244/346/230/223/351/200/200/346/254/276/346/237/245/350/257/242/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +62 -0
  91. package/skill/references/integration/modules/code-examples/python/2-/347/275/221/347/253/231/346/224/257/344/273/230//347/273/237/344/270/200/346/224/266/345/215/225/344/270/213/345/215/225/345/271/266/346/224/257/344/273/230/351/241/265/351/235/242/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +48 -0
  92. package/skill/references/integration/modules/code-examples/python/3-APP/346/224/257/344/273/230/APP/346/224/257/344/273/230/346/216/245/345/217/243/344/273/243/347/240/201/347/244/272/344/276/213.md +43 -0
  93. package/skill/references/integration/modules/code-examples/python/4-/346/214/211/351/207/217/344/273/230/350/264/271/A2MPaymentDemo.py +465 -0
  94. package/skill/references/integration/modules/interface-guide.md +90 -0
  95. package/skill/references/integration/modules/product-decision.md +90 -0
  96. package/skill/references/integration/modules/sandbox/a2m-sandbox-test.md +270 -0
  97. package/skill/references/integration/modules/sandbox/alipay-sandbox-tool.md +133 -0
  98. package/skill/references/integration/modules/sandbox/sandbox-setup-guide.md +218 -0
  99. package/skill/references/integration/modules/scripts/local_402_sandbox_pay.py +659 -0
  100. package/skill/references/normal/alipay-cli-env.md +214 -0
  101. package/skill/references/normal/rejection-guide.md +37 -0
  102. package/skill/references/normal/scripts/common.sh +32 -0
  103. package/skill/references/normal/scripts/detect_dev_tool.sh +46 -0
  104. package/skill/references/onboarding/flow.md +571 -0
  105. package/skill/references/onboarding/modules/app-release.md +411 -0
  106. package/skill/references/onboarding/modules/authorization.md +269 -0
  107. package/skill/references/onboarding/modules/error-handling.md +247 -0
  108. package/skill/references/onboarding/modules/mcc-reference.md +209 -0
  109. package/skill/references/onboarding/modules/product-sign.md +304 -0
  110. package/skill/references/onboarding/modules/scripts/app.sh +705 -0
  111. package/skill/references/onboarding/modules/scripts/ar_sign_apply.sh +248 -0
  112. package/skill/references/onboarding/modules/scripts/auth.sh +505 -0
  113. package/skill/references/onboarding/modules/scripts/error_handler.sh +312 -0
  114. package/skill/references/onboarding/modules/scripts/query_sign_status.sh +146 -0
  115. package/skill/references/onboarding/modules/scripts/service.sh +267 -0
  116. package/skill/references/onboarding/modules/scripts/upload_screenshots.sh +152 -0
  117. package/skill/references/onboarding/modules/service-registration.md +294 -0
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env node
2
+
3
+ import('../dist/index.js').catch((err) => {
4
+ console.error('Failed to start CLI:', err);
5
+ process.exit(1);
6
+ });
@@ -0,0 +1,11 @@
1
+ import { type InstallTarget } from '../utils/config.js';
2
+ /**
3
+ * install 命令实现 - 安装 Skill 文件并准备 alipay-cli 环境。
4
+ */
5
+ export interface InstallCommandOptions {
6
+ target?: InstallTarget;
7
+ withJq?: boolean;
8
+ skipTools?: boolean;
9
+ }
10
+ export declare function installCommand(cwd: string, options?: InstallCommandOptions): Promise<void>;
11
+ //# sourceMappingURL=install.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAMA,OAAO,EAML,KAAK,aAAa,EACnB,MAAM,oBAAoB,CAAC;AAW5B;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAsB,cAAc,CAClC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,IAAI,CAAC,CA4If"}
@@ -0,0 +1,182 @@
1
+ import chalk from 'chalk';
2
+ import ora from 'ora';
3
+ import { spawn } from 'child_process';
4
+ import fs from 'fs';
5
+ import os from 'os';
6
+ import path from 'path';
7
+ import { SKILLS, getPackageVersion, getCommandContext, getAllCommandContexts, PACKAGE_ROOT, } from '../utils/config.js';
8
+ import { ensureDir, installSkillFiles, writeVersionFile, readVersionRecord, } from '../utils/file.js';
9
+ import { checkGpg } from '../utils/gpg.js';
10
+ import { checkAlipayCli } from '../utils/alipay-cli.js';
11
+ import { checkJq } from '../utils/jq.js';
12
+ export async function installCommand(cwd, options = {}) {
13
+ const target = options.target ?? 'all';
14
+ const withJq = options.withJq ?? false;
15
+ const skipTools = options.skipTools ?? false;
16
+ const contexts = target === 'all'
17
+ ? getAllCommandContexts(cwd)
18
+ : [getCommandContext(cwd, target)];
19
+ const version = getPackageVersion();
20
+ console.log(chalk.cyan.bold(`\n🚀 @alipay/alipay-aipay v${version}\n`));
21
+ console.log(chalk.gray('一键安装支付宝AI支付 Skill;GPG、alipay-cli、jq 仅做快速检测,缺失时后台尝试准备\n'));
22
+ console.log(chalk.gray(`安装目标: ${contexts.map((ctx) => `${ctx.targetDirLabel}/alipay-aipay/`).join(', ')}\n`));
23
+ // ========== 阶段 1: 环境检查 ==========
24
+ let gpgOk = false;
25
+ let alipayCliOk = false;
26
+ let jqOk = false;
27
+ if (skipTools) {
28
+ console.log(chalk.cyan('📋 环境检查'));
29
+ console.log(chalk.gray('─'.repeat(40)));
30
+ console.log(chalk.gray(' ○ 已按 --skip-tools 跳过 GPG、alipay-cli、jq 检查与安装'));
31
+ }
32
+ else {
33
+ console.log(chalk.cyan('📋 环境检查'));
34
+ console.log(chalk.gray('─'.repeat(40)));
35
+ // 1a: 先检查 alipay-cli。若已经安装,不再为了 GPG 额外触发系统包管理器下载。
36
+ const alipayCliCheck = await checkAlipayCli();
37
+ alipayCliOk = alipayCliCheck.installed;
38
+ if (alipayCliCheck.installed) {
39
+ console.log(chalk.green(` ✓ alipay-cli 已安装 (${alipayCliCheck.version})`));
40
+ const gpgCheck = await checkGpg();
41
+ gpgOk = gpgCheck.installed;
42
+ if (gpgCheck.installed) {
43
+ console.log(chalk.green(` ✓ GPG 已安装 (${gpgCheck.version})`));
44
+ }
45
+ else {
46
+ console.log(chalk.gray(' ○ GPG 未安装;alipay-cli 已就绪,本次跳过 GPG 自动安装'));
47
+ }
48
+ }
49
+ else {
50
+ console.log(chalk.gray(' ○ alipay-cli 未安装;将后台尝试准备,不阻塞 Skill 安装'));
51
+ const gpgCheck = await checkGpg();
52
+ gpgOk = gpgCheck.installed;
53
+ if (gpgCheck.installed) {
54
+ console.log(chalk.green(` ✓ GPG 已安装 (${gpgCheck.version})`));
55
+ }
56
+ else {
57
+ console.log(chalk.gray(' ○ GPG 未安装;后台准备 alipay-cli 前会先尝试准备 GPG'));
58
+ }
59
+ }
60
+ // 1b: jq 只影响签约脚本 JSON 解析,默认不阻塞 Skill 安装速度。
61
+ const jqCheck = await checkJq();
62
+ jqOk = jqCheck.installed;
63
+ if (jqCheck.installed) {
64
+ console.log(chalk.green(` ✓ jq 已安装 (${jqCheck.version})`));
65
+ }
66
+ else if (withJq) {
67
+ console.log(chalk.gray(' ○ jq 未安装;将按 --with-jq 在后台尝试准备'));
68
+ }
69
+ else {
70
+ console.log(chalk.gray(' ○ jq 未安装;签约流程需要 jq,使用 --with-jq 可在后台尝试准备'));
71
+ }
72
+ }
73
+ console.log(''); // 空行分隔
74
+ let backgroundLogPath = null;
75
+ if (!skipTools && (!alipayCliOk || (withJq && !jqOk))) {
76
+ backgroundLogPath = startBackgroundToolPreparation(withJq);
77
+ }
78
+ if (!skipTools && !gpgOk) {
79
+ console.log(chalk.yellow('⚠️ GPG 未就绪,后续如需重新安装 alipay-cli,可能需要先安装 GPG'));
80
+ console.log(chalk.gray(' 手动安装: brew install gnupg (macOS) / sudo apt-get install -y gnupg (Linux)'));
81
+ }
82
+ if (!skipTools && !alipayCliOk) {
83
+ console.log(chalk.yellow('⚠️ alipay-cli 未就绪,签约流程将暂不可用'));
84
+ console.log(chalk.gray(' 你可以稍后手动安装到用户目录(无需 sudo):'));
85
+ console.log(chalk.gray(' mkdir -p ~/.local/bin && export ALIPAY_CLI_BIN="$HOME/.local/bin" && curl -fsSL https://opengw.alipay.com/alipaycli/install | bash'));
86
+ console.log(chalk.gray(' echo \'export PATH="$HOME/.local/bin:$PATH"\' >> ~/.zshrc && source ~/.zshrc'));
87
+ }
88
+ if (!skipTools && !jqOk) {
89
+ console.log(chalk.yellow('⚠️ jq 未就绪,签约流程中的 JSON 解析将无法使用'));
90
+ console.log(chalk.gray(' 手动安装: brew install jq (macOS) / sudo apt-get install -y jq (Linux)'));
91
+ console.log(chalk.gray(' 或重新执行: npx -y @alipay/alipay-aipay@latest install --with-jq'));
92
+ }
93
+ if (backgroundLogPath) {
94
+ console.log(chalk.gray(` 已启动后台环境准备任务,不影响 Skill 安装。日志: ${backgroundLogPath}`));
95
+ }
96
+ console.log('');
97
+ // ========== 阶段 2: 安装 Skill 文件 ==========
98
+ console.log(chalk.cyan('📦 安装 Skill 文件'));
99
+ console.log(chalk.gray('─'.repeat(40)));
100
+ // 直接安装,不询问
101
+ const spinner = ora('正在安装 Skill 文件...').start();
102
+ try {
103
+ for (const ctx of contexts) {
104
+ const existingRecord = await readVersionRecord(ctx);
105
+ if (existingRecord) {
106
+ console.log(chalk.yellow(`检测到已有安装记录,直接覆盖更新: ${ctx.targetDirLabel}/alipay-aipay/`));
107
+ console.log(` 旧版本: ${existingRecord.version} 安装时间: ${existingRecord.installedAt}`);
108
+ console.log('');
109
+ }
110
+ await ensureDir(ctx.targetDir);
111
+ await installSkillFiles(PACKAGE_ROOT, ctx.targetDir);
112
+ // 写入版本记录
113
+ const record = {
114
+ version,
115
+ installedAt: new Date().toISOString(),
116
+ skills: SKILLS.map((s) => s.name),
117
+ gpgInstalled: gpgOk,
118
+ alipayCliInstalled: alipayCliOk,
119
+ jqInstalled: jqOk,
120
+ };
121
+ await writeVersionFile(ctx.versionFile, record);
122
+ }
123
+ spinner.succeed(chalk.green('Skill 文件安装完成!\n'));
124
+ printSummary(gpgOk, alipayCliOk, jqOk, true, version, contexts.map((ctx) => ctx.targetDirLabel), skipTools);
125
+ }
126
+ catch (error) {
127
+ spinner.fail(chalk.red('Skill 文件安装失败'));
128
+ console.error(error);
129
+ process.exit(1);
130
+ }
131
+ }
132
+ function startBackgroundToolPreparation(withJq) {
133
+ const cliPath = process.argv[1];
134
+ if (!cliPath)
135
+ return null;
136
+ const logPath = path.join(os.tmpdir(), `alipay-aipay-tools-${Date.now()}.log`);
137
+ let logFd = null;
138
+ try {
139
+ logFd = fs.openSync(logPath, 'a');
140
+ const args = [cliPath, 'prepare-tools'];
141
+ if (withJq)
142
+ args.push('--with-jq');
143
+ const child = spawn(process.execPath, args, {
144
+ detached: true,
145
+ stdio: ['ignore', logFd, logFd],
146
+ });
147
+ child.unref();
148
+ return logPath;
149
+ }
150
+ catch {
151
+ return null;
152
+ }
153
+ finally {
154
+ if (logFd !== null) {
155
+ try {
156
+ fs.closeSync(logFd);
157
+ }
158
+ catch {
159
+ // ignore
160
+ }
161
+ }
162
+ }
163
+ }
164
+ /**
165
+ * 打印安装总结
166
+ */
167
+ function printSummary(gpgOk, alipayCliOk, jqOk, skillInstalled, version, targetDirLabels, toolsSkipped) {
168
+ console.log(chalk.cyan.bold('📋 安装总结'));
169
+ console.log(chalk.gray('─'.repeat(40)));
170
+ console.log(` GPG: ${toolsSkipped ? chalk.gray('○ 已跳过') : gpgOk ? chalk.green('✓ 已就绪') : chalk.red('✗ 未就绪')}`);
171
+ console.log(` alipay-cli: ${toolsSkipped ? chalk.gray('○ 已跳过') : alipayCliOk ? chalk.green('✓ 已就绪') : chalk.red('✗ 未就绪')}`);
172
+ console.log(` jq: ${toolsSkipped ? chalk.gray('○ 已跳过') : jqOk ? chalk.green('✓ 已就绪') : chalk.red('✗ 未就绪')}`);
173
+ console.log(` Skill 文件: ${skillInstalled ? chalk.green('✓ 已安装') : chalk.gray('○ 未安装')}`);
174
+ console.log(` 版本: ${version}`);
175
+ console.log('');
176
+ console.log(chalk.gray('安装位置:'));
177
+ for (const targetDirLabel of targetDirLabels) {
178
+ console.log(chalk.gray(` ${targetDirLabel}/alipay-aipay/`));
179
+ }
180
+ console.log('');
181
+ }
182
+ //# sourceMappingURL=install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export interface PrepareToolsOptions {
2
+ withJq?: boolean;
3
+ }
4
+ export declare function prepareToolsCommand(options?: PrepareToolsOptions): Promise<void>;
5
+ //# sourceMappingURL=prepare-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepare-tools.d.ts","sourceRoot":"","sources":["../../src/commands/prepare-tools.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,mBAAmB,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyB1F"}
@@ -0,0 +1,29 @@
1
+ import chalk from 'chalk';
2
+ import { checkAlipayCli, ensureAlipayCli } from '../utils/alipay-cli.js';
3
+ import { ensureGpg } from '../utils/gpg.js';
4
+ import { checkJq, ensureJq } from '../utils/jq.js';
5
+ export async function prepareToolsCommand(options = {}) {
6
+ const withJq = options.withJq ?? false;
7
+ console.log(`[${new Date().toISOString()}] alipay-aipay tools preparation started`);
8
+ const alipayCliCheck = await checkAlipayCli();
9
+ if (alipayCliCheck.installed) {
10
+ console.log(chalk.green(`alipay-cli 已安装 (${alipayCliCheck.version})`));
11
+ }
12
+ else {
13
+ console.log(chalk.yellow('alipay-cli 未安装,后台尝试准备 GPG 并安装 alipay-cli'));
14
+ await ensureGpg();
15
+ await ensureAlipayCli();
16
+ }
17
+ if (withJq) {
18
+ const jqCheck = await checkJq();
19
+ if (jqCheck.installed) {
20
+ console.log(chalk.green(`jq 已安装 (${jqCheck.version})`));
21
+ }
22
+ else {
23
+ console.log(chalk.yellow('jq 未安装,后台尝试安装 jq'));
24
+ await ensureJq();
25
+ }
26
+ }
27
+ console.log(`[${new Date().toISOString()}] alipay-aipay tools preparation finished`);
28
+ }
29
+ //# sourceMappingURL=prepare-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepare-tools.js","sourceRoot":"","sources":["../../src/commands/prepare-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAMnD,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,UAA+B,EAAE;IACzE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC;IAEvC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,0CAA0C,CAAC,CAAC;IAEpF,MAAM,cAAc,GAAG,MAAM,cAAc,EAAE,CAAC;IAC9C,IAAI,cAAc,CAAC,SAAS,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,mBAAmB,cAAc,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;IACzE,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,0CAA0C,CAAC,CAAC,CAAC;QACtE,MAAM,SAAS,EAAE,CAAC;QAClB,MAAM,eAAe,EAAE,CAAC;IAC1B,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,OAAO,GAAG,MAAM,OAAO,EAAE,CAAC;QAChC,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAC9C,MAAM,QAAQ,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,2CAA2C,CAAC,CAAC;AACvF,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { type InstallTarget } from '../utils/config.js';
2
+ /**
3
+ * uninstall 命令实现
4
+ * 注意: 卸载只删除 Skill 文件,不卸载 GPG、alipay-cli 和 jq(它们是系统级工具)
5
+ */
6
+ export interface UninstallCommandOptions {
7
+ target?: InstallTarget;
8
+ }
9
+ export declare function uninstallCommand(cwd: string, options?: UninstallCommandOptions): Promise<void>;
10
+ //# sourceMappingURL=uninstall.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../src/commands/uninstall.ts"],"names":[],"mappings":"AAKA,OAAO,EAAoD,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAI1G;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,IAAI,CAAC,CAWf"}
@@ -0,0 +1,82 @@
1
+ import inquirer from 'inquirer';
2
+ import chalk from 'chalk';
3
+ import ora from 'ora';
4
+ import fs from 'fs/promises';
5
+ import path from 'path';
6
+ import { SKILLS, getCommandContext, getAllCommandContexts } from '../utils/config.js';
7
+ import { removeDir, readVersionRecord } from '../utils/file.js';
8
+ export async function uninstallCommand(cwd, options = {}) {
9
+ const target = options.target ?? 'auto';
10
+ if (target === 'all') {
11
+ for (const ctx of getAllCommandContexts(cwd)) {
12
+ await uninstallResolvedContext(ctx);
13
+ }
14
+ return;
15
+ }
16
+ const ctx = getCommandContext(cwd, target);
17
+ await uninstallResolvedContext(ctx);
18
+ }
19
+ async function uninstallResolvedContext(ctx) {
20
+ // 检查是否有安装记录
21
+ const record = await readVersionRecord(ctx);
22
+ if (!record) {
23
+ console.log(chalk.yellow('\n未检测到已安装的支付宝AI支付 Skill。\n'));
24
+ return;
25
+ }
26
+ console.log(chalk.cyan.bold('\n🗑️ 卸载支付宝AI支付 Skill\n'));
27
+ // 显示将要删除的 skills
28
+ console.log('将删除以下 Skill 文件:\n');
29
+ for (const skillName of record.skills) {
30
+ const skill = SKILLS.find((s) => s.name === skillName);
31
+ if (skill) {
32
+ console.log(` • ${chalk.red(skillName)} (${skill.displayName})`);
33
+ }
34
+ else {
35
+ console.log(` • ${chalk.red(skillName)}`);
36
+ }
37
+ }
38
+ console.log('');
39
+ console.log(chalk.gray('注意: GPG、alipay-cli 和 jq 不会被卸载(它们是系统级工具)\n'));
40
+ // 确认卸载
41
+ const { confirm } = await inquirer.prompt([
42
+ {
43
+ type: 'confirm',
44
+ name: 'confirm',
45
+ message: '确认卸载?',
46
+ default: false,
47
+ },
48
+ ]);
49
+ if (!confirm) {
50
+ console.log(chalk.gray('\n已取消卸载。\n'));
51
+ return;
52
+ }
53
+ // 开始卸载
54
+ const spinner = ora('正在卸载...').start();
55
+ try {
56
+ // 删除当前记录文件,并兼容清理旧版本曾写入 skill 目录内的隐藏记录文件。
57
+ await fs.unlink(ctx.versionFile).catch(() => { });
58
+ await fs.unlink(ctx.legacyVersionFile).catch(() => { });
59
+ // 删除所有已安装的 skill 目录
60
+ for (const skillName of record.skills) {
61
+ const skillDir = path.join(ctx.targetDir, skillName);
62
+ await removeDir(skillDir);
63
+ }
64
+ // 检查目标目录是否为空,如果为空则删除
65
+ const remaining = await fs.readdir(ctx.targetDir).catch(() => []);
66
+ if (remaining.length === 0) {
67
+ await removeDir(ctx.targetDir);
68
+ spinner.succeed(chalk.green('卸载完成! 目录已清空。\n'));
69
+ }
70
+ else {
71
+ spinner.succeed(chalk.green('卸载完成!\n'));
72
+ console.log(chalk.gray(`注意: ${ctx.targetDirLabel}/ 目录中还有其他文件,已保留。\n`));
73
+ }
74
+ console.log(`已删除 ${record.skills.length} 个 Skill。\n`);
75
+ }
76
+ catch (error) {
77
+ spinner.fail(chalk.red('卸载失败'));
78
+ console.error(error);
79
+ process.exit(1);
80
+ }
81
+ }
82
+ //# sourceMappingURL=uninstall.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../src/commands/uninstall.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { type InstallTarget } from '../utils/config.js';
2
+ /**
3
+ * update 命令实现
4
+ * 更新 Skill 文件,同时检查 alipay-cli、GPG 和 jq 环境状态。
5
+ */
6
+ export interface UpdateCommandOptions {
7
+ target?: InstallTarget;
8
+ }
9
+ export declare function updateCommand(cwd: string, options?: UpdateCommandOptions): Promise<void>;
10
+ //# sourceMappingURL=update.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAGA,OAAO,EAML,KAAK,aAAa,EACnB,MAAM,oBAAoB,CAAC;AAe5B;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED,wBAAsB,aAAa,CACjC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,IAAI,CAAC,CAWf"}
@@ -0,0 +1,155 @@
1
+ import inquirer from 'inquirer';
2
+ import chalk from 'chalk';
3
+ import ora from 'ora';
4
+ import { SKILLS, getPackageVersion, getCommandContext, getAllCommandContexts, PACKAGE_ROOT, } from '../utils/config.js';
5
+ import { ensureDir, installSkillFiles, writeVersionFile, readVersionFile, readVersionRecord, migrateVersionRecord, } from '../utils/file.js';
6
+ import { checkForUpdates } from '../utils/npm.js';
7
+ import { checkGpg } from '../utils/gpg.js';
8
+ import { checkAlipayCli } from '../utils/alipay-cli.js';
9
+ import { checkJq } from '../utils/jq.js';
10
+ export async function updateCommand(cwd, options = {}) {
11
+ const target = options.target ?? 'auto';
12
+ if (target === 'all') {
13
+ for (const ctx of getAllCommandContexts(cwd)) {
14
+ await updateResolvedContext(ctx);
15
+ }
16
+ return;
17
+ }
18
+ const ctx = getCommandContext(cwd, target);
19
+ await updateResolvedContext(ctx);
20
+ }
21
+ async function updateResolvedContext(ctx) {
22
+ const currentPackageVersion = getPackageVersion();
23
+ // 检查是否有安装记录
24
+ const record = await readVersionRecord(ctx);
25
+ if (!record) {
26
+ console.log(chalk.yellow('\n未检测到已安装的支付宝AI支付 Skill。'));
27
+ console.log(chalk.gray(`请先运行 \`npx -y @alipay/alipay-aipay@latest install\` 安装到 ${ctx.targetDirLabel}/。\n`));
28
+ return;
29
+ }
30
+ console.log(chalk.cyan.bold('\n🔄 检查更新...\n'));
31
+ // 检查 npm 最新版本
32
+ const spinner = ora('正在检查 npm 最新版本...').start();
33
+ try {
34
+ const versionInfo = await checkForUpdates();
35
+ if (versionInfo.needsUpdate) {
36
+ spinner.warn(chalk.yellow('当前执行的 alipay-aipay 包不是 npm latest,未执行更新。\n'));
37
+ console.log(`当前执行版本: ${versionInfo.current}`);
38
+ console.log(`npm latest: ${versionInfo.latest}`);
39
+ console.log(chalk.gray('请运行以下命令安装最新 Skill:'));
40
+ console.log(chalk.cyan(' npx -y @alipay/alipay-aipay@latest install\n'));
41
+ return;
42
+ }
43
+ if (record.version === currentPackageVersion) {
44
+ await migrateVersionRecord(ctx, record);
45
+ spinner.succeed(chalk.green('Skill 文件已是当前执行包版本!\n'));
46
+ console.log(`当前版本: ${currentPackageVersion}`);
47
+ console.log(`安装时间: ${record.installedAt}`);
48
+ }
49
+ else {
50
+ spinner.info(chalk.blue(`发现可安装版本: ${currentPackageVersion} (已安装: ${record.version})\n`));
51
+ // 显示更新信息
52
+ console.log('将更新以下 Skill:\n');
53
+ for (const skillName of record.skills) {
54
+ const skill = SKILLS.find((s) => s.name === skillName);
55
+ if (skill) {
56
+ console.log(` • ${chalk.green(skillName)} (${skill.displayName})`);
57
+ }
58
+ }
59
+ console.log('');
60
+ // 确认更新
61
+ const { confirm } = await inquirer.prompt([
62
+ {
63
+ type: 'confirm',
64
+ name: 'confirm',
65
+ message: '是否更新?',
66
+ default: true,
67
+ },
68
+ ]);
69
+ if (!confirm) {
70
+ console.log(chalk.gray('\n已取消更新。\n'));
71
+ return;
72
+ }
73
+ // 开始更新
74
+ const updateSpinner = ora('正在更新 Skill 文件...').start();
75
+ await ensureDir(ctx.targetDir);
76
+ await installSkillFiles(PACKAGE_ROOT, ctx.targetDir);
77
+ // 更新版本记录(用当前包的实际版本,而非 registry 上的最新版本)
78
+ const newRecord = {
79
+ version: currentPackageVersion,
80
+ installedAt: new Date().toISOString(),
81
+ skills: SKILLS.map((s) => s.name),
82
+ gpgInstalled: record.gpgInstalled,
83
+ alipayCliInstalled: record.alipayCliInstalled,
84
+ jqInstalled: record.jqInstalled,
85
+ };
86
+ await writeVersionFile(ctx.versionFile, newRecord);
87
+ updateSpinner.succeed(chalk.green('Skill 文件更新完成!\n'));
88
+ console.log(`版本: ${record.version} → ${currentPackageVersion}`);
89
+ }
90
+ console.log('');
91
+ // 重新检查环境工具
92
+ console.log(chalk.cyan('📋 环境检查'));
93
+ console.log(chalk.gray('─'.repeat(40)));
94
+ const alipayCliCheck = await checkAlipayCli();
95
+ let alipayCliOk = alipayCliCheck.installed;
96
+ let gpgOk = false;
97
+ if (alipayCliCheck.installed) {
98
+ console.log(chalk.green(` ✓ alipay-cli 已安装 (${alipayCliCheck.version})`));
99
+ const gpgCheck = await checkGpg();
100
+ gpgOk = gpgCheck.installed;
101
+ if (gpgCheck.installed) {
102
+ console.log(chalk.green(` ✓ GPG 已安装 (${gpgCheck.version})`));
103
+ }
104
+ else {
105
+ console.log(chalk.gray(' ○ GPG 未安装;alipay-cli 已就绪,本次跳过 GPG 自动安装'));
106
+ }
107
+ }
108
+ else {
109
+ console.log(chalk.gray(' ○ alipay-cli 未安装;更新 Skill 不会阻塞等待系统工具安装'));
110
+ const gpgCheck = await checkGpg();
111
+ gpgOk = gpgCheck.installed;
112
+ if (gpgCheck.installed) {
113
+ console.log(chalk.green(` ✓ GPG 已安装 (${gpgCheck.version})`));
114
+ }
115
+ else {
116
+ console.log(chalk.gray(' ○ GPG 未安装;后续安装 alipay-cli 前可能需要先安装 GPG'));
117
+ }
118
+ }
119
+ const jqCheck = await checkJq();
120
+ const jqOk = jqCheck.installed;
121
+ if (jqCheck.installed) {
122
+ console.log(chalk.green(` ✓ jq 已安装 (${jqCheck.version})`));
123
+ }
124
+ else {
125
+ console.log(chalk.gray(' ○ jq 未安装;签约流程需要 jq,可手动安装或执行 install --with-jq'));
126
+ }
127
+ console.log('');
128
+ // 更新版本记录中的环境状态
129
+ const updatedRecord = await readVersionFile(ctx.versionFile);
130
+ if (updatedRecord) {
131
+ updatedRecord.gpgInstalled = gpgOk;
132
+ updatedRecord.alipayCliInstalled = alipayCliOk;
133
+ updatedRecord.jqInstalled = jqOk;
134
+ await writeVersionFile(ctx.versionFile, updatedRecord);
135
+ }
136
+ if (!gpgOk || !alipayCliOk || !jqOk) {
137
+ console.log(chalk.yellow('⚠️ 部分环境工具未就绪:'));
138
+ if (!gpgOk)
139
+ console.log(chalk.gray(' GPG: brew install gnupg (macOS) / sudo apt-get install -y gnupg (Linux)'));
140
+ if (!alipayCliOk)
141
+ console.log(chalk.gray(' alipay-cli: mkdir -p ~/.local/bin && export ALIPAY_CLI_BIN="$HOME/.local/bin" && curl -fsSL https://opengw.alipay.com/alipaycli/install | bash'));
142
+ if (!jqOk)
143
+ console.log(chalk.gray(' jq: brew install jq (macOS) / sudo apt-get install -y jq (Linux)'));
144
+ console.log('');
145
+ }
146
+ console.log(chalk.gray(`安装位置: ${ctx.targetDirLabel}/alipay-aipay/`));
147
+ console.log('');
148
+ }
149
+ catch (error) {
150
+ spinner.fail(chalk.red('检查更新失败'));
151
+ console.error(error);
152
+ process.exit(1);
153
+ }
154
+ }
155
+ //# sourceMappingURL=update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js ADDED
@@ -0,0 +1,65 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import { getPackageVersion } from './utils/config.js';
4
+ import { installCommand } from './commands/install.js';
5
+ import { uninstallCommand } from './commands/uninstall.js';
6
+ import { updateCommand } from './commands/update.js';
7
+ import { prepareToolsCommand } from './commands/prepare-tools.js';
8
+ const program = new Command();
9
+ function parseTarget(value) {
10
+ if (value === 'agents' || value === 'codex' || value === 'claude' || value === 'auto' || value === 'all') {
11
+ return value;
12
+ }
13
+ console.error(chalk.red(`无效的 --target: ${String(value)}`));
14
+ console.error(chalk.gray('可选值: all | agents | codex | claude | auto'));
15
+ process.exit(1);
16
+ }
17
+ program
18
+ .name('alipay-aipay')
19
+ .description('支付宝 AI 支付技能包 - 一键安装 Agent Skill,并后台准备 alipay-cli 环境')
20
+ .version(getPackageVersion());
21
+ // install 命令
22
+ program
23
+ .command('install')
24
+ .description('安装支付宝 AI 支付 Skill(快速检测环境,缺失工具后台尝试准备)')
25
+ .option('--target <target>', '安装目标: all | agents | codex | claude | auto', 'all')
26
+ .option('--with-jq', '安装时同时在后台尝试准备 jq(签约流程依赖,默认只检测并提示)')
27
+ .option('--skip-tools', '只安装 Skill 文件,跳过 GPG、alipay-cli、jq 检查与安装')
28
+ .action(async (options) => {
29
+ await installCommand(process.cwd(), {
30
+ target: parseTarget(options.target),
31
+ withJq: Boolean(options.withJq),
32
+ skipTools: Boolean(options.skipTools),
33
+ });
34
+ });
35
+ // uninstall 命令
36
+ program
37
+ .command('uninstall')
38
+ .description('卸载已安装的支付宝 AI 支付 Skill')
39
+ .option('--target <target>', '卸载目标: all | agents | codex | claude | auto', 'auto')
40
+ .action(async (options) => {
41
+ await uninstallCommand(process.cwd(), { target: parseTarget(options.target) });
42
+ });
43
+ // update 命令
44
+ program
45
+ .command('update')
46
+ .description('检查并更新支付宝 AI 支付 Skill')
47
+ .option('--target <target>', '更新目标: all | agents | codex | claude | auto', 'auto')
48
+ .action(async (options) => {
49
+ await updateCommand(process.cwd(), { target: parseTarget(options.target) });
50
+ });
51
+ program
52
+ .command('prepare-tools', { hidden: true })
53
+ .description('后台准备 GPG、alipay-cli 和 jq')
54
+ .option('--with-jq', '同时准备 jq')
55
+ .action(async (options) => {
56
+ await prepareToolsCommand({ withJq: Boolean(options.withJq) });
57
+ });
58
+ // 默认行为:无参数时直接执行安装流程
59
+ if (process.argv.length === 2) {
60
+ installCommand(process.cwd(), { target: 'all', withJq: false, skipTools: false });
61
+ }
62
+ else {
63
+ program.parse();
64
+ }
65
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}