@round2ai/r2-cli 1.0.0 → 1.0.2

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 (158) hide show
  1. package/README.md +101 -80
  2. package/dist/api.d.ts +45 -0
  3. package/dist/api.d.ts.map +1 -0
  4. package/dist/api.js +90 -0
  5. package/dist/api.js.map +1 -0
  6. package/dist/auth.d.ts +35 -0
  7. package/dist/auth.d.ts.map +1 -0
  8. package/dist/auth.js +240 -0
  9. package/dist/auth.js.map +1 -0
  10. package/dist/commands/ai/chat.d.ts +9 -0
  11. package/dist/commands/ai/chat.d.ts.map +1 -0
  12. package/dist/commands/ai/chat.js +16 -0
  13. package/dist/commands/ai/chat.js.map +1 -0
  14. package/dist/commands/ai/skills.d.ts +9 -0
  15. package/dist/commands/ai/skills.d.ts.map +1 -0
  16. package/dist/commands/ai/skills.js +16 -0
  17. package/dist/commands/ai/skills.js.map +1 -0
  18. package/dist/commands/auth/login.d.ts +24 -0
  19. package/dist/commands/auth/login.d.ts.map +1 -0
  20. package/dist/commands/auth/login.js +288 -0
  21. package/dist/commands/auth/login.js.map +1 -0
  22. package/dist/commands/auth/logout.d.ts +16 -0
  23. package/dist/commands/auth/logout.d.ts.map +1 -0
  24. package/dist/commands/auth/logout.js +49 -0
  25. package/dist/commands/auth/logout.js.map +1 -0
  26. package/dist/commands/auth/status.d.ts +28 -0
  27. package/dist/commands/auth/status.d.ts.map +1 -0
  28. package/dist/commands/auth/status.js +92 -0
  29. package/dist/commands/auth/status.js.map +1 -0
  30. package/dist/commands/base.d.ts +107 -0
  31. package/dist/commands/base.d.ts.map +1 -0
  32. package/dist/commands/base.js +153 -0
  33. package/dist/commands/base.js.map +1 -0
  34. package/dist/commands/business/pricing.d.ts +9 -0
  35. package/dist/commands/business/pricing.d.ts.map +1 -0
  36. package/dist/commands/business/pricing.js +16 -0
  37. package/dist/commands/business/pricing.js.map +1 -0
  38. package/dist/commands/business/report.d.ts +9 -0
  39. package/dist/commands/business/report.d.ts.map +1 -0
  40. package/dist/commands/business/report.js +16 -0
  41. package/dist/commands/business/report.js.map +1 -0
  42. package/dist/commands/inventory/risk.d.ts +9 -0
  43. package/dist/commands/inventory/risk.d.ts.map +1 -0
  44. package/dist/commands/inventory/risk.js +16 -0
  45. package/dist/commands/inventory/risk.js.map +1 -0
  46. package/dist/config.d.ts +54 -0
  47. package/dist/config.d.ts.map +1 -0
  48. package/dist/config.js +111 -0
  49. package/dist/config.js.map +1 -0
  50. package/dist/index.d.ts +5 -1
  51. package/dist/index.d.ts.map +1 -1
  52. package/dist/index.js +127 -81
  53. package/dist/index.js.map +1 -1
  54. package/dist/query/executor.d.ts +138 -0
  55. package/dist/query/executor.d.ts.map +1 -0
  56. package/dist/query/executor.js +232 -0
  57. package/dist/query/executor.js.map +1 -0
  58. package/dist/query/types.d.ts +116 -0
  59. package/dist/query/types.d.ts.map +1 -0
  60. package/dist/query/types.js +15 -0
  61. package/dist/query/types.js.map +1 -0
  62. package/dist/query/utils.d.ts +99 -0
  63. package/dist/query/utils.d.ts.map +1 -0
  64. package/dist/query/utils.js +151 -0
  65. package/dist/query/utils.js.map +1 -0
  66. package/dist/services/ServiceContainer.d.ts +110 -0
  67. package/dist/services/ServiceContainer.d.ts.map +1 -0
  68. package/dist/services/ServiceContainer.js +242 -0
  69. package/dist/services/ServiceContainer.js.map +1 -0
  70. package/dist/services/api/client.d.ts +88 -0
  71. package/dist/services/api/client.d.ts.map +1 -0
  72. package/dist/services/api/client.js +188 -0
  73. package/dist/services/api/client.js.map +1 -0
  74. package/dist/services/api/types.d.ts +233 -0
  75. package/dist/services/api/types.d.ts.map +1 -0
  76. package/dist/services/api/types.js +83 -0
  77. package/dist/services/api/types.js.map +1 -0
  78. package/dist/services/auth/provider.d.ts +73 -0
  79. package/dist/services/auth/provider.d.ts.map +1 -0
  80. package/dist/services/auth/provider.js +339 -0
  81. package/dist/services/auth/provider.js.map +1 -0
  82. package/dist/services/auth/session.d.ts +73 -0
  83. package/dist/services/auth/session.d.ts.map +1 -0
  84. package/dist/services/auth/session.js +200 -0
  85. package/dist/services/auth/session.js.map +1 -0
  86. package/dist/services/business/demand.d.ts +70 -0
  87. package/dist/services/business/demand.d.ts.map +1 -0
  88. package/dist/services/business/demand.js +240 -0
  89. package/dist/services/business/demand.js.map +1 -0
  90. package/dist/services/business/fulfillment.d.ts +122 -0
  91. package/dist/services/business/fulfillment.d.ts.map +1 -0
  92. package/dist/services/business/fulfillment.js +267 -0
  93. package/dist/services/business/fulfillment.js.map +1 -0
  94. package/dist/services/business/inventory.d.ts +54 -0
  95. package/dist/services/business/inventory.d.ts.map +1 -0
  96. package/dist/services/business/inventory.js +245 -0
  97. package/dist/services/business/inventory.js.map +1 -0
  98. package/dist/services/business/pricing.d.ts +41 -0
  99. package/dist/services/business/pricing.d.ts.map +1 -0
  100. package/dist/services/business/pricing.js +133 -0
  101. package/dist/services/business/pricing.js.map +1 -0
  102. package/dist/services/business/report.d.ts +74 -0
  103. package/dist/services/business/report.d.ts.map +1 -0
  104. package/dist/services/business/report.js +380 -0
  105. package/dist/services/business/report.js.map +1 -0
  106. package/dist/services/config/manager.d.ts +105 -0
  107. package/dist/services/config/manager.d.ts.map +1 -0
  108. package/dist/services/config/manager.js +324 -0
  109. package/dist/services/config/manager.js.map +1 -0
  110. package/dist/services/config/types.d.ts +128 -0
  111. package/dist/services/config/types.d.ts.map +1 -0
  112. package/dist/services/config/types.js +209 -0
  113. package/dist/services/config/types.js.map +1 -0
  114. package/dist/services/index.d.ts +17 -0
  115. package/dist/services/index.d.ts.map +1 -0
  116. package/dist/services/index.js +44 -0
  117. package/dist/services/index.js.map +1 -0
  118. package/dist/services/storage/index.d.ts +63 -0
  119. package/dist/services/storage/index.d.ts.map +1 -0
  120. package/dist/services/storage/index.js +136 -0
  121. package/dist/services/storage/index.js.map +1 -0
  122. package/dist/types/api.d.ts +58 -0
  123. package/dist/types/api.d.ts.map +1 -0
  124. package/dist/types/api.js +5 -0
  125. package/dist/types/api.js.map +1 -0
  126. package/dist/types/auth.d.ts +59 -0
  127. package/dist/types/auth.d.ts.map +1 -0
  128. package/dist/types/auth.js +11 -0
  129. package/dist/types/auth.js.map +1 -0
  130. package/dist/types/business.d.ts +201 -0
  131. package/dist/types/business.d.ts.map +1 -0
  132. package/dist/types/business.js +5 -0
  133. package/dist/types/business.js.map +1 -0
  134. package/dist/types/command.d.ts +106 -0
  135. package/dist/types/command.d.ts.map +1 -0
  136. package/dist/types/command.js +5 -0
  137. package/dist/types/command.js.map +1 -0
  138. package/dist/types/config.d.ts +66 -0
  139. package/dist/types/config.d.ts.map +1 -0
  140. package/dist/types/config.js +5 -0
  141. package/dist/types/config.js.map +1 -0
  142. package/dist/utils/async.d.ts +79 -0
  143. package/dist/utils/async.d.ts.map +1 -0
  144. package/dist/utils/async.js +179 -0
  145. package/dist/utils/async.js.map +1 -0
  146. package/dist/utils/format.d.ts +90 -0
  147. package/dist/utils/format.d.ts.map +1 -0
  148. package/dist/utils/format.js +227 -0
  149. package/dist/utils/format.js.map +1 -0
  150. package/dist/utils/logger.d.ts +136 -0
  151. package/dist/utils/logger.d.ts.map +1 -0
  152. package/dist/utils/logger.js +249 -0
  153. package/dist/utils/logger.js.map +1 -0
  154. package/dist/utils/validation.d.ts +100 -0
  155. package/dist/utils/validation.d.ts.map +1 -0
  156. package/dist/utils/validation.js +334 -0
  157. package/dist/utils/validation.js.map +1 -0
  158. package/package.json +11 -6
package/dist/index.js CHANGED
@@ -1,93 +1,81 @@
1
- #! /usr/bin/env node
1
+ #!/usr/bin/env node
2
+ /**
3
+ * R2-CLI 主入口
4
+ * 向 AI 开放二手潮奢交易全链路能力
5
+ */
2
6
  import { Command } from "commander";
3
7
  import fse from "fs-extra";
4
8
  import path from "node:path";
5
9
  import chalk from "chalk";
6
- import inquirer from "inquirer";
10
+ import figlet from "figlet";
11
+ // 显示欢迎信息
12
+ console.log(chalk.cyan(figlet.textSync("R2-CLI", {
13
+ font: "Standard",
14
+ horizontalLayout: "full",
15
+ })));
16
+ console.log(chalk.gray("向 AI 开放二手潮奢交易全链路能力\n"));
7
17
  const pkgJson = fse.readJSONSync(path.join(import.meta.dirname, "../package.json"));
8
18
  const program = new Command();
9
19
  // 当前版本号
10
- program.name("r2").description("R2-CLI,向 AI 开放二手潮奢交易全链路能力").version(pkgJson.version, "-v, --version");
11
- // auth 命令
20
+ program
21
+ .name("r2")
22
+ .description("R2-CLI,向 AI 开放二手潮奢交易全链路能力")
23
+ .version(pkgJson.version, "-v, --version");
24
+ // ==================== 认证命令 ====================
12
25
  const authCommand = program.command("auth").description("授权管理");
13
- authCommand.command("login").description("登录 Round2AI 账户").action(async () => {
14
- const answers = await inquirer.prompt([
15
- {
16
- type: "input",
17
- name: "username",
18
- message: "请输入用户名:",
19
- validate: (input) => input.trim() !== ""
20
- },
21
- {
22
- type: "password",
23
- name: "password",
24
- message: "请输入密码:",
25
- validate: (input) => input.trim() !== ""
26
- }
27
- ]);
28
- console.log(chalk.green("登录成功!"));
29
- console.log(chalk.blue(`欢迎回来,${answers.username}!`));
30
- });
31
- // 数据对接命令
32
- program.command("ingest").description("对接主流 ERP,统一多渠道经营数据").action(() => {
26
+ // 导入认证命令
27
+ import { createLoginCommand, createLogoutCommand, createStatusCommand, } from "./commands/auth/login.js";
28
+ // 添加认证命令
29
+ authCommand.addCommand(createLoginCommand());
30
+ authCommand.addCommand(createLogoutCommand());
31
+ authCommand.addCommand(createStatusCommand());
32
+ // ==================== 数据对接命令 ====================
33
+ program
34
+ .command("ingest")
35
+ .description("对接主流 ERP,统一多渠道经营数据")
36
+ .action(() => {
33
37
  console.log(chalk.blue("正在对接 ERP 数据..."));
34
38
  console.log(chalk.green("✅ 已对接线上电商数据"));
35
39
  console.log(chalk.green("✅ 已对接线下门店数据"));
36
40
  console.log(chalk.green("✅ 已对接仓储履约数据"));
37
41
  console.log(chalk.blue("数据对接完成!"));
38
42
  });
39
- // 经营分析命令
43
+ // ==================== 经营分析命令 ====================
40
44
  const reportCommand = program.command("report").description("生成经营日报/周报");
41
45
  reportCommand.option("--type <type>", "报告类型: daily, weekly", "daily").action((options) => {
42
- console.log(chalk.blue(`生成${options.type === 'daily' ? '日报' : '周报'}...`));
46
+ console.log(chalk.blue(`生成${options.type === "daily" ? "日报" : "周报"}...`));
43
47
  console.log(chalk.green("📊 销售数据"));
44
48
  console.log(chalk.green("📈 毛利分析"));
45
49
  console.log(chalk.green("⏰ 库龄分析"));
46
50
  console.log(chalk.green("⚠️ 异常波动"));
47
- console.log(chalk.blue(`${options.type === 'daily' ? '日报' : '周报'}生成完成!`));
51
+ console.log(chalk.blue(`${options.type === "daily" ? "日报" : "周报"}生成完成!`));
48
52
  });
49
- program.command("ask").description("自然语言查询经营数据").action(async () => {
50
- const { question } = await inquirer.prompt([
51
- {
52
- type: "input",
53
- name: "question",
54
- message: "请输入您的问题:",
55
- validate: (input) => input.trim() !== ""
56
- }
57
- ]);
58
- console.log(chalk.blue("正在分析您的问题..."));
59
- console.log(chalk.green(`根据您的问题 "${question}",以下是分析结果:`));
60
- console.log(chalk.yellow("📊 数据结果将在此显示"));
53
+ // ==================== 自然语言查询命令 ====================
54
+ program
55
+ .command("ask")
56
+ .description("自然语言查询经营数据")
57
+ .action(() => {
58
+ console.log("自然语言查询功能开发中...");
61
59
  });
62
- // 市场分析命令
60
+ // ==================== 市场分析命令 ====================
63
61
  const demandCommand = program.command("demand").description("扫描市场需求热度与供需缺口");
64
- demandCommand.option("--sku <sku>", "商品SKU").option("--region <region>", "区域").action((options) => {
62
+ demandCommand
63
+ .option("--sku <sku>", "商品SKU")
64
+ .option("--region <region>", "区域")
65
+ .action((options) => {
65
66
  console.log(chalk.blue("正在扫描市场需求..."));
66
- console.log(chalk.green(`SKU: ${options.sku || '全部'}`));
67
- console.log(chalk.green(`区域: ${options.region || '全国'}`));
67
+ console.log(chalk.green(`SKU: ${options.sku || "全部"}`));
68
+ console.log(chalk.green(`区域: ${options.region || "全国"}`));
68
69
  console.log(chalk.yellow("🔥 需求热度: 高"));
69
70
  console.log(chalk.yellow("📈 供需缺口: 20%"));
70
71
  console.log(chalk.blue("市场需求分析完成!"));
71
72
  });
72
- const simulateCommand = program.command("simulate").description("竞价成交模拟");
73
- simulateCommand.option("--sku <sku>", "商品SKU").option("--price <price>", "出价").action((options) => {
74
- console.log(chalk.blue("正在模拟竞价成交..."));
75
- console.log(chalk.green(`SKU: ${options.sku}`));
76
- console.log(chalk.green(`出价: ¥${options.price}`));
77
- console.log(chalk.yellow("📊 预估成交率: 85%"));
78
- console.log(chalk.yellow("💰 预估利润空间: 15%"));
79
- console.log(chalk.blue("竞价模拟完成!"));
80
- });
81
- program.command("bidding-strategy").description("基于预算与品类生成竞价策略建议").action(() => {
82
- console.log(chalk.blue("正在生成竞价策略..."));
83
- console.log(chalk.green("🎯 策略目标: 最大化成交率"));
84
- console.log(chalk.green("💸 预算分配: 高需求品类 60%,中需求品类 30%,低需求品类 10%"));
85
- console.log(chalk.yellow("📈 建议出价区间: ¥800-¥1200"));
86
- console.log(chalk.blue("竞价策略生成完成!"));
87
- });
88
- // 价格分析命令
73
+ // ==================== 价格分析命令 ====================
89
74
  const pricingCommand = program.command("pricing").description("基于真实成交数据给出收货价与售卖价建议");
90
- pricingCommand.option("--sku <sku>", "商品SKU").option("--condition <condition>", "商品成色").action((options) => {
75
+ pricingCommand
76
+ .option("--sku <sku>", "商品SKU")
77
+ .option("--condition <condition>", "商品成色")
78
+ .action((options) => {
91
79
  console.log(chalk.blue("正在分析价格数据..."));
92
80
  console.log(chalk.green(`SKU: ${options.sku}`));
93
81
  console.log(chalk.green(`成色: ${options.condition}`));
@@ -95,28 +83,24 @@ pricingCommand.option("--sku <sku>", "商品SKU").option("--condition <condition
95
83
  console.log(chalk.yellow("💸 建议售卖价: ¥12000"));
96
84
  console.log(chalk.blue("价格分析完成!"));
97
85
  });
98
- program.command("sell-optimize").description("在售商品的定价与渠道优化建议").action(() => {
99
- console.log(chalk.blue("正在优化在售商品..."));
100
- console.log(chalk.green("📊 定价优化:"));
101
- console.log(chalk.green(" - 高需求商品: 上调 5%"));
102
- console.log(chalk.green(" - 低需求商品: 下调 10%"));
103
- console.log(chalk.green("📈 渠道优化:"));
104
- console.log(chalk.green(" - 线上电商: 60% 库存"));
105
- console.log(chalk.green(" - 线下门店: 30% 库存"));
106
- console.log(chalk.green(" - 二手平台: 10% 库存"));
107
- console.log(chalk.blue("优化建议生成完成!"));
108
- });
109
- // 库存与履约命令
86
+ // ==================== 库存与履约命令 ====================
110
87
  const inventoryCommand = program.command("inventory").description("库存管理");
111
- inventoryCommand.command("risk").description("库存风险识别").option("--warehouse <warehouse>", "仓库代码").action((options) => {
88
+ inventoryCommand
89
+ .command("risk")
90
+ .description("库存风险识别")
91
+ .option("--warehouse <warehouse>", "仓库代码")
92
+ .action((options) => {
112
93
  console.log(chalk.blue("正在识别库存风险..."));
113
- console.log(chalk.green(`仓库: ${options.warehouse || '全部'}`));
94
+ console.log(chalk.green(`仓库: ${options.warehouse || "全部"}`));
114
95
  console.log(chalk.yellow("⚠️ 滞销预警: 15 件商品"));
115
96
  console.log(chalk.yellow("📉 贬值通道: 8 件商品"));
116
97
  console.log(chalk.yellow("⏰ 库龄超期: 5 件商品"));
117
98
  console.log(chalk.blue("库存风险识别完成!"));
118
99
  });
119
- program.command("fulfillment").description("履约全链路追踪").action(() => {
100
+ program
101
+ .command("fulfillment")
102
+ .description("履约全链路追踪")
103
+ .action(() => {
120
104
  console.log(chalk.blue("正在追踪履约全链路..."));
121
105
  console.log(chalk.green("📦 收货: 完成"));
122
106
  console.log(chalk.green("🔍 质检: 完成"));
@@ -124,17 +108,79 @@ program.command("fulfillment").description("履约全链路追踪").action(() =>
124
108
  console.log(chalk.green("🚚 发货: 进行中"));
125
109
  console.log(chalk.blue("履约追踪完成!"));
126
110
  });
127
- // 经营决策命令
111
+ // ==================== AI 命令模块 ====================
112
+ const aiCommand = program.command("ai").description("AI 相关功能");
113
+ aiCommand
114
+ .command("chat")
115
+ .description("与 AI 助手聊天,获取经营建议")
116
+ .action(() => {
117
+ console.log("AI 聊天功能开发中...");
118
+ });
119
+ aiCommand
120
+ .command("skills")
121
+ .description("AI Agent 技能管理")
122
+ .action(() => {
123
+ console.log("技能管理功能开发中...");
124
+ });
125
+ // ==================== 竞价模拟命令 ====================
126
+ const simulateCommand = program.command("simulate").description("竞价成交模拟");
127
+ simulateCommand
128
+ .option("--sku <sku>", "商品SKU")
129
+ .option("--price <price>", "出价")
130
+ .action((options) => {
131
+ console.log(chalk.blue("正在模拟竞价成交..."));
132
+ console.log(chalk.green(`SKU: ${options.sku}`));
133
+ console.log(chalk.green(`出价: ¥${options.price}`));
134
+ console.log(chalk.yellow("📊 预估成交率: 85%"));
135
+ console.log(chalk.yellow("💰 预估利润空间: 15%"));
136
+ console.log(chalk.blue("竞价模拟完成!"));
137
+ });
138
+ program
139
+ .command("bidding-strategy")
140
+ .description("基于预算与品类生成竞价策略建议")
141
+ .action(() => {
142
+ console.log(chalk.blue("正在生成竞价策略..."));
143
+ console.log(chalk.green("🎯 策略目标: 最大化成交率"));
144
+ console.log(chalk.green("💸 预算分配: 高需求品类 60%,中需求品类 30%,低需求品类 10%"));
145
+ console.log(chalk.yellow("📈 建议出价区间: ¥800-¥1200"));
146
+ console.log(chalk.blue("竞价策略生成完成!"));
147
+ });
148
+ // ==================== 经营决策命令 ====================
128
149
  const decideCommand = program.command("decide").description("综合数据输出经营动作建议");
129
- decideCommand.option("--store <store>", "店铺代码").option("--horizon <horizon>", "预测周期").action((options) => {
150
+ decideCommand
151
+ .option("--store <store>", "店铺代码")
152
+ .option("--horizon <horizon>", "预测周期")
153
+ .action((options) => {
130
154
  console.log(chalk.blue("正在分析经营数据..."));
131
- console.log(chalk.green(`店铺: ${options.store || '全部'}`));
132
- console.log(chalk.green(`预测周期: ${options.horizon || '7d'}`));
155
+ console.log(chalk.green(`店铺: ${options.store || "全部"}`));
156
+ console.log(chalk.green(`预测周期: ${options.horizon || "7d"}`));
133
157
  console.log(chalk.yellow("📈 补货建议: Air Jordan 1 Retro High OG (20 双)"));
134
158
  console.log(chalk.yellow("📉 清仓建议: Louis Vuitton Neverfull (5 个)"));
135
159
  console.log(chalk.yellow("💰 调价建议: Chanel Classic Flap (上调 5%)"));
136
160
  console.log(chalk.yellow("⚠️ 风控建议: 加强高价值商品的质检流程"));
137
161
  console.log(chalk.blue("经营决策建议生成完成!"));
138
162
  });
139
- program.parse(process.argv); // 解析命令行参数
163
+ // ==================== AI Agent 集成命令 ====================
164
+ program
165
+ .command("agent")
166
+ .description("AI Agent 集成")
167
+ .action(() => {
168
+ console.log(chalk.blue("AI Agent 集成"));
169
+ console.log(chalk.green("🔧 支持的 AI Agent 框架:"));
170
+ console.log(chalk.green(" - Claude Code"));
171
+ console.log(chalk.green(" - OpenClaw"));
172
+ console.log(chalk.green(" - Codex"));
173
+ console.log(chalk.blue("安装 Agent Skills:"));
174
+ console.log(chalk.yellow("npx skills add Round2AI/r2-cli --all -y"));
175
+ console.log(chalk.blue("AI Agent 集成完成!"));
176
+ });
177
+ // 全局错误处理
178
+ program.configureOutput({
179
+ writeErr: (str) => {
180
+ const error = str.replace("error:", "").trim();
181
+ console.error(`❌ 错误: ${error}`);
182
+ },
183
+ });
184
+ // 解析命令行参数
185
+ program.parse(process.argv);
140
186
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,138 @@
1
+ /**
2
+ * 查询执行器 - 参考 claude-code 的 query.ts 设计
3
+ * 支持异步流式输出、进度报告、状态管理
4
+ */
5
+ /** 查询进度事件类型 */
6
+ export type ProgressEventType = "start" | "update" | "complete" | "error";
7
+ /** 查询进度事件 */
8
+ export interface ProgressEvent {
9
+ type: ProgressEventType;
10
+ message: string;
11
+ progress?: number;
12
+ timestamp?: number;
13
+ }
14
+ /** 查询结果元数据 */
15
+ export interface QueryMetadata {
16
+ duration: number;
17
+ success: boolean;
18
+ errors?: string[];
19
+ [key: string]: unknown;
20
+ }
21
+ /** 查询结果 */
22
+ export interface QueryResult<T = unknown> {
23
+ data: T;
24
+ metadata: QueryMetadata;
25
+ progress?: ProgressEvent[];
26
+ }
27
+ /** 查询定义 */
28
+ export interface QueryDefinition<T = unknown> {
29
+ /** 查询唯一标识 */
30
+ id: string;
31
+ /** 查询描述 */
32
+ description: string;
33
+ /** 查询执行依赖 */
34
+ deps: QueryDeps;
35
+ /** 查询执行函数 */
36
+ execute: (deps: QueryDeps, signal?: AbortSignal) => Promise<T>;
37
+ /** 查询选项 */
38
+ options?: {
39
+ /** 超时时间(毫秒) */
40
+ timeout?: number;
41
+ /** 是否启用进度报告 */
42
+ enableProgress?: boolean;
43
+ };
44
+ }
45
+ /** 查询依赖 */
46
+ export interface QueryDeps {
47
+ /** 信号控制器 */
48
+ signal: AbortSignal | null;
49
+ /** 生成 UUID */
50
+ uuid: () => string;
51
+ /** API 客户端 */
52
+ api: {
53
+ get: <T = unknown>(url: string) => Promise<T>;
54
+ post: <T = unknown>(url: string, body?: unknown) => Promise<T>;
55
+ };
56
+ /** 日志记录 */
57
+ log: {
58
+ info: (message: string) => void;
59
+ error: (message: string, error?: unknown) => void;
60
+ debug: (message: string) => void;
61
+ };
62
+ }
63
+ /** 查询状态 */
64
+ export type QueryStatus = "idle" | "running" | "completed" | "error" | "aborted";
65
+ /** 查询上下文 - 查询执行过程中的状态管理 */
66
+ export interface QueryContext<T = unknown> {
67
+ /** 查询 ID */
68
+ id: string;
69
+ /** 查询状态 */
70
+ status: QueryStatus;
71
+ /** 开始时间 */
72
+ startTime: number;
73
+ /** 结束时间 */
74
+ endTime?: number;
75
+ /** 当前进度 */
76
+ progress: number;
77
+ /** 进度事件历史 */
78
+ progressEvents: ProgressEvent[];
79
+ /** 结果数据 */
80
+ result?: QueryResult<T>;
81
+ /** 错误信息 */
82
+ error?: Error;
83
+ }
84
+ /**
85
+ * 异步查询执行器
86
+ *
87
+ * 参考 claude-code 的 query 函数设计,使用 AsyncGenerator 模式
88
+ * 支持流式输出进度事件和最终结果
89
+ *
90
+ * @example
91
+ * ```typescript
92
+ * const query: QueryDefinition<UserInfo> = {
93
+ * id: "qrcode-login",
94
+ * description: "扫码登录",
95
+ * deps: deps,
96
+ * execute: async (deps, signal) => {
97
+ * return await loginWithQrcode(deps, signal);
98
+ * }
99
+ * };
100
+ *
101
+ * for await (const event of executeQuery(query)) {
102
+ * if (event.type === "progress") {
103
+ * console.log(event.message, event.progress);
104
+ * } else if (event.type === "result") {
105
+ * console.log("完成:", event.data);
106
+ * }
107
+ * }
108
+ * ```
109
+ */
110
+ export declare function executeQuery<T = unknown>(query: QueryDefinition<T>, customDeps?: Partial<QueryDeps>): AsyncGenerator<ProgressEvent | QueryResult<T>, QueryResult<T>, unknown>;
111
+ /**
112
+ * 轮询查询执行器 - 适用于需要轮询检查状态的场景
113
+ * 如:扫码登录状态轮询
114
+ */
115
+ export interface PollingQueryOptions<T> {
116
+ /** 轮询间隔(毫秒) */
117
+ interval: number;
118
+ /** 超时时间(毫秒) */
119
+ timeout: number;
120
+ /** 条件函数 - 判断是否完成 */
121
+ condition: (data: T) => boolean;
122
+ /** 进度回调 */
123
+ onProgress?: (progress: number, message: string) => void;
124
+ }
125
+ export declare function executePollingQuery<T = unknown>(query: QueryDefinition<T>, options: PollingQueryOptions<T>): AsyncGenerator<ProgressEvent | QueryResult<T>, QueryResult<T>, unknown>;
126
+ /**
127
+ * 延迟函数
128
+ */
129
+ export declare function sleep(ms: number): Promise<void>;
130
+ /**
131
+ * 生成 UUID
132
+ */
133
+ export declare function createUUID(): string;
134
+ /**
135
+ * 创建默认的查询依赖
136
+ */
137
+ export declare function createDefaultDeps(signal?: AbortSignal | null): QueryDeps;
138
+ //# sourceMappingURL=executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/query/executor.ts"],"names":[],"mappings":"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"}