@puyinkai/xiaobao-cli 0.4.0 → 0.6.0

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 (83) hide show
  1. package/README.md +13 -0
  2. package/dist/add-CCuWFy1O.mjs +21 -0
  3. package/dist/{admin-BzMFazEa.mjs → admin-BOL_otwc.mjs} +2 -2
  4. package/dist/analyze-mjHjOnz1.mjs +72 -0
  5. package/dist/{api-ChuNquZJ.mjs → api-BaX_r5S5.mjs} +3 -3
  6. package/dist/{api-client-ifJHc7hu.mjs → api-client-D3sCv6L3.mjs} +1 -1
  7. package/dist/{audio-CeNKUqeU.mjs → audio-CDt1rpEL.mjs} +3 -2
  8. package/dist/{auth-CdWYrfte.mjs → auth-sQwZSTNA.mjs} +4 -3
  9. package/dist/beautx-DytYVFvT.mjs +16 -0
  10. package/dist/cli.mjs +18 -13
  11. package/dist/config-GuXMTecJ.mjs +11 -0
  12. package/dist/{consultant-CO9zaJ7I.mjs → consultant-elv5arLG.mjs} +1 -1
  13. package/dist/{current-BYpcshKV.mjs → current-ABh6R3vp.mjs} +1 -1
  14. package/dist/{customer-COMf1yZb.mjs → customer-CZ-nG9ku.mjs} +1 -1
  15. package/dist/date-BcQMKhIT.mjs +21 -0
  16. package/dist/deal-analysis-Dqz34gLw.mjs +10 -0
  17. package/dist/{device-flow-DC1kqcmR.mjs → device-flow-j10PFOQL.mjs} +42 -31
  18. package/dist/diff-8I1_L-nU.mjs +21 -0
  19. package/dist/{doc-NfMyo-fF.mjs → doc-CJT7BuhU.mjs} +3 -3
  20. package/dist/{doc-content-BKaZ016e.mjs → doc-content-_SCykNvs.mjs} +3 -3
  21. package/dist/{docs-CheVzIbW.mjs → docs-BHtwTAJ4.mjs} +3 -3
  22. package/dist/fields-BRE3oWMD.mjs +54 -0
  23. package/dist/{focus-AWSxlbBZ.mjs → focus-C4egr05X.mjs} +1 -1
  24. package/dist/follow-LwYQd9Bv.mjs +14 -0
  25. package/dist/{format-HWx3JWdS.mjs → format-DfVypHID.mjs} +1 -1
  26. package/dist/get-CbovJWSq.mjs +66 -0
  27. package/dist/{kb-DkSAvuBG.mjs → kb-CyPqbezN.mjs} +4 -4
  28. package/dist/last-7-days-VKMMIzDz.mjs +5 -0
  29. package/dist/{list-BbU4R0_z.mjs → list-2qqSxkDM.mjs} +3 -3
  30. package/dist/{list-CMFp28Dm.mjs → list-CT4t_FJs.mjs} +4 -4
  31. package/dist/{list-Czym-Sla.mjs → list-Ca5uJXDH.mjs} +3 -3
  32. package/dist/{list-bBAaEvT7.mjs → list-CiNgcIXS.mjs} +4 -4
  33. package/dist/{list-BxWqQllQ2.mjs → list-DWv6toPT.mjs} +4 -4
  34. package/dist/list-DXOlqJog.mjs +76 -0
  35. package/dist/{list-D7Fmqk0G.mjs → list-FQpZk3vH.mjs} +4 -4
  36. package/dist/{list-QIEQgIb3.mjs → list-OYeOGI0g.mjs} +4 -4
  37. package/dist/list-XIIj_ryX.mjs +43 -0
  38. package/dist/{login-DYAlK1aL.mjs → login-Bp2W2Hnj.mjs} +9 -2
  39. package/dist/{logout-S3GMy_ns.mjs → logout-BnoEQxKZ.mjs} +2 -2
  40. package/dist/now-Ce3ViNOw.mjs +9 -0
  41. package/dist/plan-C35h8U-w.mjs +10 -0
  42. package/dist/portrait-BEDGkOx1.mjs +14 -0
  43. package/dist/portrait-tags-B9hPFDIF.mjs +10 -0
  44. package/dist/{project-CiltZzqF.mjs → project-urShHaAN.mjs} +3 -3
  45. package/dist/{qa-DDzTuZ8K.mjs → qa-CaV_tDBc.mjs} +3 -3
  46. package/dist/{quantum-CgAcmQAL.mjs → quantum-Ds7rlag3.mjs} +5 -5
  47. package/dist/range-CSJiXTp3.mjs +18 -0
  48. package/dist/{resistance-YwKC91E0.mjs → resistance-DMesV4lG.mjs} +1 -1
  49. package/dist/{sales-report-XQ_Oy9ht.mjs → sales-report-BIfyfucO.mjs} +3 -3
  50. package/dist/{search-CxOFpH18.mjs → search-B0wA0YCI.mjs} +4 -4
  51. package/dist/shared-BEkL4JRB.mjs +11 -0
  52. package/dist/shared-Bbxvn4ZI.mjs +92 -0
  53. package/dist/shared-CYALikq5.mjs +277 -0
  54. package/dist/status-CrpCtf5U.mjs +65 -0
  55. package/dist/subtract-B4XTXD_X.mjs +21 -0
  56. package/dist/{summary-CfbHddby.mjs → summary-BIx7F4AE.mjs} +4 -4
  57. package/dist/summary-BkxVcv8a.mjs +65 -0
  58. package/dist/{text-R3KjyXSK.mjs → text-CqmsXzad.mjs} +3 -3
  59. package/dist/this-month-BRdfmc1s.mjs +5 -0
  60. package/dist/this-week-2GoqEaXU.mjs +5 -0
  61. package/dist/today-BhQnSMJH.mjs +5 -0
  62. package/dist/today-CdlU96lq.mjs +9 -0
  63. package/dist/today-so-far-D2g98rKv.mjs +5 -0
  64. package/dist/{token-usage-BDnEMHvB.mjs → token-usage-y46b3_7C.mjs} +3 -3
  65. package/dist/tomorrow-BgSEBV69.mjs +9 -0
  66. package/dist/{use-DgCwov4y.mjs → use-rAR4OVC7.mjs} +1 -1
  67. package/dist/{visit-Beb2o8zF.mjs → visit-CmEtfs7n.mjs} +2 -2
  68. package/dist/visit-evaluate-LdAg9iP5.mjs +9 -0
  69. package/dist/weekday-CgEg7n7U.mjs +14 -0
  70. package/dist/{whoami-H8AdUnQY.mjs → whoami-oRc8gILN.mjs} +1 -1
  71. package/dist/yesterday-CHAh1DlJ.mjs +5 -0
  72. package/dist/yesterday-DW-YiRTt.mjs +9 -0
  73. package/package.json +3 -2
  74. package/skills/wangxiaobao-audio-analyze/SKILL.md +42 -0
  75. package/skills/wangxiaobao-beautx/SKILL.md +42 -0
  76. package/skills/wangxiaobao-customer-portrait/SKILL.md +45 -0
  77. package/skills/wangxiaobao-customer-query/SKILL.md +1 -1
  78. package/skills/wangxiaobao-follow-query/SKILL.md +45 -0
  79. package/skills/wangxiaobao-knowledge-base/SKILL.md +1 -1
  80. package/skills/wangxiaobao-quantum-stats/SKILL.md +3 -1
  81. package/skills/wangxiaobao-quantum-stats/references/quantum-metrics.md +3 -2
  82. package/skills/wangxiaobao-shared/SKILL.md +5 -1
  83. /package/dist/{util-pyTg7qwY.mjs → util-BuoFIeLS.mjs} +0 -0
@@ -1,8 +1,8 @@
1
- import { a as resolveConfig } from "./device-flow-DC1kqcmR.mjs";
2
- import { t as xbApiFetch } from "./api-client-ifJHc7hu.mjs";
1
+ import { o as resolveConfig } from "./device-flow-j10PFOQL.mjs";
2
+ import { t as xbApiFetch } from "./api-client-D3sCv6L3.mjs";
3
3
  import { n as requireActiveProject } from "./project-store-CudTRvbA.mjs";
4
4
  import { t as tenantProjectHeaders } from "./headers-Dy5gROBB.mjs";
5
- import { n as writeResult, t as writeError } from "./format-HWx3JWdS.mjs";
5
+ import { n as writeResult, t as writeError } from "./format-DfVypHID.mjs";
6
6
  import { defineCommand } from "citty";
7
7
  //#region src/commands/consultant/list.ts
8
8
  /**
@@ -1,9 +1,9 @@
1
- import { a as resolveConfig } from "./device-flow-DC1kqcmR.mjs";
2
- import { t as xbApiFetch } from "./api-client-ifJHc7hu.mjs";
1
+ import { o as resolveConfig } from "./device-flow-j10PFOQL.mjs";
2
+ import { t as xbApiFetch } from "./api-client-D3sCv6L3.mjs";
3
3
  import { n as requireActiveProject } from "./project-store-CudTRvbA.mjs";
4
4
  import { t as tenantProjectHeaders } from "./headers-Dy5gROBB.mjs";
5
- import { n as writeResult, t as writeError } from "./format-HWx3JWdS.mjs";
6
- import { n as mergeUserIds, r as toLocalDateTime, t as csvToArray } from "./util-pyTg7qwY.mjs";
5
+ import { n as writeResult, t as writeError } from "./format-DfVypHID.mjs";
6
+ import { n as mergeUserIds, r as toLocalDateTime, t as csvToArray } from "./util-BuoFIeLS.mjs";
7
7
  import { defineCommand } from "citty";
8
8
  //#region src/commands/audio/list.ts
9
9
  /**
@@ -1,6 +1,6 @@
1
- import { a as resolveConfig } from "./device-flow-DC1kqcmR.mjs";
2
- import { t as xbApiFetch } from "./api-client-ifJHc7hu.mjs";
3
- import { n as writeResult, t as writeError } from "./format-HWx3JWdS.mjs";
1
+ import { o as resolveConfig } from "./device-flow-j10PFOQL.mjs";
2
+ import { t as xbApiFetch } from "./api-client-D3sCv6L3.mjs";
3
+ import { n as writeResult, t as writeError } from "./format-DfVypHID.mjs";
4
4
  import { defineCommand } from "citty";
5
5
  //#region src/commands/project/list.ts
6
6
  /**
@@ -1,9 +1,9 @@
1
- import { a as resolveConfig } from "./device-flow-DC1kqcmR.mjs";
2
- import { t as xbApiFetch } from "./api-client-ifJHc7hu.mjs";
1
+ import { o as resolveConfig } from "./device-flow-j10PFOQL.mjs";
2
+ import { t as xbApiFetch } from "./api-client-D3sCv6L3.mjs";
3
3
  import { n as requireActiveProject } from "./project-store-CudTRvbA.mjs";
4
4
  import { t as tenantProjectHeaders } from "./headers-Dy5gROBB.mjs";
5
- import { n as writeResult, t as writeError } from "./format-HWx3JWdS.mjs";
6
- import { r as toLocalDateTime, t as csvToArray } from "./util-pyTg7qwY.mjs";
5
+ import { n as writeResult, t as writeError } from "./format-DfVypHID.mjs";
6
+ import { r as toLocalDateTime, t as csvToArray } from "./util-BuoFIeLS.mjs";
7
7
  import { defineCommand } from "citty";
8
8
  //#region src/commands/resistance/list.ts
9
9
  /**
@@ -1,9 +1,9 @@
1
- import { a as resolveConfig } from "./device-flow-DC1kqcmR.mjs";
2
- import { t as xbApiFetch } from "./api-client-ifJHc7hu.mjs";
1
+ import { o as resolveConfig } from "./device-flow-j10PFOQL.mjs";
2
+ import { t as xbApiFetch } from "./api-client-D3sCv6L3.mjs";
3
3
  import { n as requireActiveProject } from "./project-store-CudTRvbA.mjs";
4
4
  import { t as tenantProjectHeaders } from "./headers-Dy5gROBB.mjs";
5
- import { n as writeResult, t as writeError } from "./format-HWx3JWdS.mjs";
6
- import { r as toLocalDateTime } from "./util-pyTg7qwY.mjs";
5
+ import { n as writeResult, t as writeError } from "./format-DfVypHID.mjs";
6
+ import { r as toLocalDateTime } from "./util-BuoFIeLS.mjs";
7
7
  import { defineCommand } from "citty";
8
8
  //#region src/commands/visit/list.ts
9
9
  /**
@@ -0,0 +1,76 @@
1
+ import { o as resolveConfig } from "./device-flow-j10PFOQL.mjs";
2
+ import { t as xbApiFetch } from "./api-client-D3sCv6L3.mjs";
3
+ import { n as requireActiveProject } from "./project-store-CudTRvbA.mjs";
4
+ import { t as tenantProjectHeaders } from "./headers-Dy5gROBB.mjs";
5
+ import { n as writeResult, t as writeError } from "./format-DfVypHID.mjs";
6
+ import { r as toLocalDateTime, t as csvToArray } from "./util-BuoFIeLS.mjs";
7
+ import { defineCommand } from "citty";
8
+ //#region src/commands/follow/list.ts
9
+ /**
10
+ * `xiaobao-cli follow list` — 旺跟进明细分页。
11
+ *
12
+ * 每条 = 一次跟进动作(电话/短信/微信/企微…,含通话时长、消息条数)。
13
+ * 聚合统计卡片(summary/rank/team/time)走 `quantum follow`;
14
+ * 电话/微信指标汇总走 `follow summary`。调 POST /ai-open/follows/page。
15
+ */
16
+ var list_default = defineCommand({
17
+ meta: {
18
+ name: "list",
19
+ description: "旺跟进明细分页(谁/何时/以什么方式跟进了哪个客户)"
20
+ },
21
+ args: {
22
+ "user-ids": {
23
+ type: "string",
24
+ description: "CSV: 跟进人 userId 过滤;不传按当前授权范围"
25
+ },
26
+ "customer-ids": {
27
+ type: "string",
28
+ description: "CSV: 客户 wang_id 过滤"
29
+ },
30
+ from: {
31
+ type: "string",
32
+ description: "开始时间(含)"
33
+ },
34
+ to: {
35
+ type: "string",
36
+ description: "结束时间(不含)"
37
+ },
38
+ page: {
39
+ type: "string",
40
+ default: "1"
41
+ },
42
+ size: {
43
+ type: "string",
44
+ default: "10"
45
+ },
46
+ "api-base": { type: "string" },
47
+ "auth-base": { type: "string" },
48
+ format: {
49
+ type: "string",
50
+ default: "toon"
51
+ }
52
+ },
53
+ async run({ args }) {
54
+ try {
55
+ writeResult(await xbApiFetch(resolveConfig({
56
+ apiBase: args["api-base"],
57
+ authBase: args["auth-base"]
58
+ }), "POST", "/ai-open/follows/page", {
59
+ headers: tenantProjectHeaders(await requireActiveProject()),
60
+ body: {
61
+ userIds: csvToArray(args["user-ids"])?.map(Number),
62
+ customerIds: csvToArray(args["customer-ids"])?.map(Number),
63
+ fromDate: toLocalDateTime(args.from),
64
+ toDate: toLocalDateTime(args.to),
65
+ page: Number(args.page),
66
+ size: Number(args.size)
67
+ }
68
+ }), args.format);
69
+ } catch (err) {
70
+ writeError(err, args.format);
71
+ process.exit(1);
72
+ }
73
+ }
74
+ });
75
+ //#endregion
76
+ export { list_default as default };
@@ -1,9 +1,9 @@
1
- import { a as resolveConfig } from "./device-flow-DC1kqcmR.mjs";
2
- import { t as xbApiFetch } from "./api-client-ifJHc7hu.mjs";
1
+ import { o as resolveConfig } from "./device-flow-j10PFOQL.mjs";
2
+ import { t as xbApiFetch } from "./api-client-D3sCv6L3.mjs";
3
3
  import { n as requireActiveProject } from "./project-store-CudTRvbA.mjs";
4
4
  import { t as tenantProjectHeaders } from "./headers-Dy5gROBB.mjs";
5
- import { n as writeResult, t as writeError } from "./format-HWx3JWdS.mjs";
6
- import { r as toLocalDateTime } from "./util-pyTg7qwY.mjs";
5
+ import { n as writeResult, t as writeError } from "./format-DfVypHID.mjs";
6
+ import { r as toLocalDateTime } from "./util-BuoFIeLS.mjs";
7
7
  import { defineCommand } from "citty";
8
8
  //#region src/commands/customer/list.ts
9
9
  /**
@@ -1,9 +1,9 @@
1
- import { a as resolveConfig } from "./device-flow-DC1kqcmR.mjs";
2
- import { t as xbApiFetch } from "./api-client-ifJHc7hu.mjs";
1
+ import { o as resolveConfig } from "./device-flow-j10PFOQL.mjs";
2
+ import { t as xbApiFetch } from "./api-client-D3sCv6L3.mjs";
3
3
  import { n as requireActiveProject } from "./project-store-CudTRvbA.mjs";
4
4
  import { t as tenantProjectHeaders } from "./headers-Dy5gROBB.mjs";
5
- import { n as writeResult, t as writeError } from "./format-HWx3JWdS.mjs";
6
- import { r as toLocalDateTime, t as csvToArray } from "./util-pyTg7qwY.mjs";
5
+ import { n as writeResult, t as writeError } from "./format-DfVypHID.mjs";
6
+ import { r as toLocalDateTime, t as csvToArray } from "./util-BuoFIeLS.mjs";
7
7
  import { defineCommand } from "citty";
8
8
  //#region src/commands/focus/list.ts
9
9
  /**
@@ -0,0 +1,43 @@
1
+ import { o as resolveConfig } from "./device-flow-j10PFOQL.mjs";
2
+ import { t as xbApiFetch } from "./api-client-D3sCv6L3.mjs";
3
+ import { n as requireActiveProject } from "./project-store-CudTRvbA.mjs";
4
+ import { t as tenantProjectHeaders } from "./headers-Dy5gROBB.mjs";
5
+ import { n as writeResult, t as writeError } from "./format-DfVypHID.mjs";
6
+ import { defineCommand } from "citty";
7
+ //#region src/commands/portrait/list.ts
8
+ /**
9
+ * `xiaobao-cli portrait list` — 画像字段清单(中文名 + 分档枚举)。
10
+ *
11
+ * 返回本项目可用的画像字段(fieldNames + fields[].values 分档),
12
+ * 供 `portrait get <field>` 使用。调 POST /ai-open/portraits/fields。
13
+ */
14
+ var list_default = defineCommand({
15
+ meta: {
16
+ name: "list",
17
+ description: "画像字段清单(中文名,供 portrait get 使用)"
18
+ },
19
+ args: {
20
+ "api-base": { type: "string" },
21
+ "auth-base": { type: "string" },
22
+ format: {
23
+ type: "string",
24
+ default: "toon"
25
+ }
26
+ },
27
+ async run({ args }) {
28
+ try {
29
+ writeResult(await xbApiFetch(resolveConfig({
30
+ apiBase: args["api-base"],
31
+ authBase: args["auth-base"]
32
+ }), "POST", "/ai-open/portraits/fields", {
33
+ headers: tenantProjectHeaders(await requireActiveProject()),
34
+ body: {}
35
+ }), args.format);
36
+ } catch (err) {
37
+ writeError(err, args.format);
38
+ process.exit(1);
39
+ }
40
+ }
41
+ });
42
+ //#endregion
43
+ export { list_default as default };
@@ -1,6 +1,6 @@
1
- import { a as resolveConfig, n as pollForToken, r as refreshToken, t as initiateDeviceAuthorization } from "./device-flow-DC1kqcmR.mjs";
1
+ import { i as refreshToken, n as initiateDeviceAuthorization, o as resolveConfig, r as pollForToken } from "./device-flow-j10PFOQL.mjs";
2
2
  import { a as isAccessTokenValid, c as writePendingAuth, l as writeToken, n as clearPendingAuth, o as readPendingAuth, r as clearToken, s as readToken, t as NoPendingAuthError } from "./token-store-BB7n-fwJ.mjs";
3
- import { n as writeResult, t as writeError } from "./format-HWx3JWdS.mjs";
3
+ import { n as writeResult, t as writeError } from "./format-DfVypHID.mjs";
4
4
  import { defineCommand } from "citty";
5
5
  //#region src/commands/auth/login.ts
6
6
  /**
@@ -135,6 +135,13 @@ var login_default = defineCommand({
135
135
  }, fmt);
136
136
  return;
137
137
  }
138
+ await writePendingAuth({
139
+ device_code: init.device_code,
140
+ user_code: init.user_code,
141
+ verification_uri: verificationUri,
142
+ interval,
143
+ expires_at: Date.now() + init.expires_in * 1e3
144
+ });
138
145
  process.stderr.write(`
139
146
  请在浏览器中打开以下链接完成登录并授权访问你的旺小宝账号:
140
147
  \n 🔗 ${verificationUri}\n\n 设备验证码: ${init.user_code}\n 有效期约 ${expiresMinutes} 分钟\n\n等待你在浏览器中确认 ...
@@ -1,6 +1,6 @@
1
- import { a as resolveConfig, i as revokeRefreshToken } from "./device-flow-DC1kqcmR.mjs";
1
+ import { a as revokeRefreshToken, o as resolveConfig } from "./device-flow-j10PFOQL.mjs";
2
2
  import { n as clearPendingAuth, r as clearToken, s as readToken } from "./token-store-BB7n-fwJ.mjs";
3
- import { n as writeResult, t as writeError } from "./format-HWx3JWdS.mjs";
3
+ import { n as writeResult, t as writeError } from "./format-DfVypHID.mjs";
4
4
  import { defineCommand } from "citty";
5
5
  //#region src/commands/auth/logout.ts
6
6
  /**
@@ -0,0 +1,9 @@
1
+ import { o as getNow, t as defineDateCommand } from "./shared-CYALikq5.mjs";
2
+ //#region src/commands/date/now.ts
3
+ var now_default = defineDateCommand({
4
+ name: "now",
5
+ description: "当前日期时间(含星期)",
6
+ run: ({ args }) => getNow(args.timezone)
7
+ });
8
+ //#endregion
9
+ export { now_default as default };
@@ -0,0 +1,10 @@
1
+ import { t as defineBeautxCommand } from "./shared-Bbxvn4ZI.mjs";
2
+ //#region src/commands/beautx/plan.ts
3
+ var plan_default = defineBeautxCommand({
4
+ name: "plan",
5
+ description: "医美变美计划分页(报告分组 sections + 面诊医生/复诊时间等)",
6
+ path: "/ai-open/beautx/plans",
7
+ supportsLatestOnly: true
8
+ });
9
+ //#endregion
10
+ export { plan_default as default };
@@ -0,0 +1,14 @@
1
+ import { defineCommand } from "citty";
2
+ //#region src/commands/portrait/index.ts
3
+ var portrait_default = defineCommand({
4
+ meta: {
5
+ name: "portrait",
6
+ description: "客户画像分布:字段清单(list) / 单字段饼图(get)(按画像筛客户用 customer list --portrait)"
7
+ },
8
+ subCommands: {
9
+ list: () => import("./list-XIIj_ryX.mjs").then((m) => m.default),
10
+ get: () => import("./get-CbovJWSq.mjs").then((m) => m.default)
11
+ }
12
+ });
13
+ //#endregion
14
+ export { portrait_default as default };
@@ -0,0 +1,10 @@
1
+ import { t as defineBeautxCommand } from "./shared-Bbxvn4ZI.mjs";
2
+ //#region src/commands/beautx/portrait-tags.ts
3
+ var portrait_tags_default = defineBeautxCommand({
4
+ name: "portrait-tags",
5
+ description: "医美来访画像标签分页(维度 → 命中标签值;--dimension 过滤维度名)",
6
+ path: "/ai-open/beautx/portrait-tags",
7
+ supportsDimension: true
8
+ });
9
+ //#endregion
10
+ export { portrait_tags_default as default };
@@ -6,9 +6,9 @@ var project_default = defineCommand({
6
6
  description: "查询 / 切换激活项目"
7
7
  },
8
8
  subCommands: {
9
- list: () => import("./list-Czym-Sla.mjs").then((m) => m.default),
10
- use: () => import("./use-DgCwov4y.mjs").then((m) => m.default),
11
- current: () => import("./current-BYpcshKV.mjs").then((m) => m.default)
9
+ list: () => import("./list-Ca5uJXDH.mjs").then((m) => m.default),
10
+ use: () => import("./use-rAR4OVC7.mjs").then((m) => m.default),
11
+ current: () => import("./current-ABh6R3vp.mjs").then((m) => m.default)
12
12
  }
13
13
  });
14
14
  //#endregion
@@ -1,8 +1,8 @@
1
- import { a as resolveConfig } from "./device-flow-DC1kqcmR.mjs";
2
- import { t as xbApiFetch } from "./api-client-ifJHc7hu.mjs";
1
+ import { o as resolveConfig } from "./device-flow-j10PFOQL.mjs";
2
+ import { t as xbApiFetch } from "./api-client-D3sCv6L3.mjs";
3
3
  import { n as requireActiveProject } from "./project-store-CudTRvbA.mjs";
4
4
  import { t as tenantProjectHeaders } from "./headers-Dy5gROBB.mjs";
5
- import { n as writeResult, t as writeError } from "./format-HWx3JWdS.mjs";
5
+ import { n as writeResult, t as writeError } from "./format-DfVypHID.mjs";
6
6
  import { defineCommand } from "citty";
7
7
  //#region src/commands/qa.ts
8
8
  /**
@@ -1,9 +1,9 @@
1
- import { a as resolveConfig } from "./device-flow-DC1kqcmR.mjs";
2
- import { t as xbApiFetch } from "./api-client-ifJHc7hu.mjs";
1
+ import { o as resolveConfig } from "./device-flow-j10PFOQL.mjs";
2
+ import { t as xbApiFetch } from "./api-client-D3sCv6L3.mjs";
3
3
  import { n as requireActiveProject } from "./project-store-CudTRvbA.mjs";
4
4
  import { t as tenantProjectHeaders } from "./headers-Dy5gROBB.mjs";
5
- import { n as writeResult, t as writeError } from "./format-HWx3JWdS.mjs";
6
- import { r as toLocalDateTime, t as csvToArray } from "./util-pyTg7qwY.mjs";
5
+ import { n as writeResult, t as writeError } from "./format-DfVypHID.mjs";
6
+ import { r as toLocalDateTime, t as csvToArray } from "./util-BuoFIeLS.mjs";
7
7
  import { defineCommand } from "citty";
8
8
  //#region src/commands/quantum.ts
9
9
  /**
@@ -96,7 +96,7 @@ var quantum_default = defineCommand({
96
96
  },
97
97
  "intent-dimension": {
98
98
  type: "string",
99
- description: "review|ai(intent)"
99
+ description: "intent 数据口径:review=复核后数据(默认,日常汇报用)|ai=AI 智能评级;用户明确说「AI 评级」才传 ai"
100
100
  },
101
101
  "risk-dimension": {
102
102
  type: "string",
@@ -0,0 +1,18 @@
1
+ import { defineCommand } from "citty";
2
+ //#region src/commands/date/range/index.ts
3
+ var range_default = defineCommand({
4
+ meta: {
5
+ name: "range",
6
+ description: "算出业务查询用的 from/to(含时分秒);不查数据,只生成时间参数给 quantum / list"
7
+ },
8
+ subCommands: {
9
+ today: () => import("./today-BhQnSMJH.mjs").then((m) => m.default),
10
+ yesterday: () => import("./yesterday-CHAh1DlJ.mjs").then((m) => m.default),
11
+ "this-week": () => import("./this-week-2GoqEaXU.mjs").then((m) => m.default),
12
+ "this-month": () => import("./this-month-BRdfmc1s.mjs").then((m) => m.default),
13
+ "last-7-days": () => import("./last-7-days-VKMMIzDz.mjs").then((m) => m.default),
14
+ "today-so-far": () => import("./today-so-far-D2g98rKv.mjs").then((m) => m.default)
15
+ }
16
+ });
17
+ //#endregion
18
+ export { range_default as default };
@@ -5,7 +5,7 @@ var resistance_default = defineCommand({
5
5
  name: "resistance",
6
6
  description: "客户抗性点标签分页查询"
7
7
  },
8
- subCommands: { list: () => import("./list-bBAaEvT7.mjs").then((m) => m.default) }
8
+ subCommands: { list: () => import("./list-CiNgcIXS.mjs").then((m) => m.default) }
9
9
  });
10
10
  //#endregion
11
11
  export { resistance_default as default };
@@ -1,8 +1,8 @@
1
- import { a as resolveConfig } from "./device-flow-DC1kqcmR.mjs";
2
- import { t as xbApiFetch } from "./api-client-ifJHc7hu.mjs";
1
+ import { o as resolveConfig } from "./device-flow-j10PFOQL.mjs";
2
+ import { t as xbApiFetch } from "./api-client-D3sCv6L3.mjs";
3
3
  import { t as loadActiveProject } from "./project-store-CudTRvbA.mjs";
4
4
  import { t as tenantProjectHeaders } from "./headers-Dy5gROBB.mjs";
5
- import { n as writeResult, t as writeError } from "./format-HWx3JWdS.mjs";
5
+ import { n as writeResult, t as writeError } from "./format-DfVypHID.mjs";
6
6
  import { defineCommand } from "citty";
7
7
  //#region src/commands/admin/sales-report.ts
8
8
  /**
@@ -1,9 +1,9 @@
1
- import { a as resolveConfig } from "./device-flow-DC1kqcmR.mjs";
2
- import { t as xbApiFetch } from "./api-client-ifJHc7hu.mjs";
1
+ import { o as resolveConfig } from "./device-flow-j10PFOQL.mjs";
2
+ import { t as xbApiFetch } from "./api-client-D3sCv6L3.mjs";
3
3
  import { n as requireActiveProject } from "./project-store-CudTRvbA.mjs";
4
4
  import { t as tenantProjectHeaders } from "./headers-Dy5gROBB.mjs";
5
- import { n as writeResult, t as writeError } from "./format-HWx3JWdS.mjs";
6
- import { t as csvToArray } from "./util-pyTg7qwY.mjs";
5
+ import { n as writeResult, t as writeError } from "./format-DfVypHID.mjs";
6
+ import { t as csvToArray } from "./util-BuoFIeLS.mjs";
7
7
  import { defineCommand } from "citty";
8
8
  //#region src/commands/kb/search.ts
9
9
  /**
@@ -0,0 +1,11 @@
1
+ import { s as getRange, t as defineDateCommand } from "./shared-CYALikq5.mjs";
2
+ //#region src/commands/date/range/shared.ts
3
+ function defineRangePresetCommand(preset, description) {
4
+ return defineDateCommand({
5
+ name: preset,
6
+ description,
7
+ run: ({ args }) => getRange(preset, args.timezone)
8
+ });
9
+ }
10
+ //#endregion
11
+ export { defineRangePresetCommand as t };
@@ -0,0 +1,92 @@
1
+ import { o as resolveConfig } from "./device-flow-j10PFOQL.mjs";
2
+ import { t as xbApiFetch } from "./api-client-D3sCv6L3.mjs";
3
+ import { n as requireActiveProject } from "./project-store-CudTRvbA.mjs";
4
+ import { t as tenantProjectHeaders } from "./headers-Dy5gROBB.mjs";
5
+ import { n as writeResult, t as writeError } from "./format-DfVypHID.mjs";
6
+ import { r as toLocalDateTime, t as csvToArray } from "./util-BuoFIeLS.mjs";
7
+ import { defineCommand } from "citty";
8
+ //#region src/commands/beautx/shared.ts
9
+ /**
10
+ * Shared args/body builder for `xiaobao-cli beautx *` — the four beautx (医美)
11
+ * queries share one request shape (visitIds/wangIds/beautxCustomerIds/时间窗/分页).
12
+ */
13
+ function defineBeautxCommand(def) {
14
+ return defineCommand({
15
+ meta: {
16
+ name: def.name,
17
+ description: def.description
18
+ },
19
+ args: {
20
+ "visit-ids": {
21
+ type: "string",
22
+ description: "CSV: 来访 ID 过滤"
23
+ },
24
+ "customer-ids": {
25
+ type: "string",
26
+ description: "CSV: 客户 wang_id 过滤"
27
+ },
28
+ "beautx-customer-ids": {
29
+ type: "string",
30
+ description: "CSV: 医美业务客户 ID 过滤"
31
+ },
32
+ ...def.supportsLatestOnly ? { "latest-only": {
33
+ type: "boolean",
34
+ description: "每客户只取最新一条"
35
+ } } : {},
36
+ ...def.supportsDimension ? { dimension: {
37
+ type: "string",
38
+ description: "画像标签维度名过滤"
39
+ } } : {},
40
+ from: {
41
+ type: "string",
42
+ description: "开始时间(含)"
43
+ },
44
+ to: {
45
+ type: "string",
46
+ description: "结束时间(不含)"
47
+ },
48
+ page: {
49
+ type: "string",
50
+ default: "1"
51
+ },
52
+ size: {
53
+ type: "string",
54
+ default: "10"
55
+ },
56
+ "api-base": { type: "string" },
57
+ "auth-base": { type: "string" },
58
+ format: {
59
+ type: "string",
60
+ default: "toon"
61
+ }
62
+ },
63
+ async run({ args }) {
64
+ try {
65
+ const config = resolveConfig({
66
+ apiBase: args["api-base"],
67
+ authBase: args["auth-base"]
68
+ });
69
+ const active = await requireActiveProject();
70
+ writeResult(await xbApiFetch(config, "POST", def.path, {
71
+ headers: tenantProjectHeaders(active),
72
+ body: {
73
+ visitIds: csvToArray(args["visit-ids"]),
74
+ customerIds: csvToArray(args["customer-ids"]),
75
+ beautxCustomerIds: csvToArray(args["beautx-customer-ids"])?.map(Number),
76
+ latestOnly: def.supportsLatestOnly ? args["latest-only"] : void 0,
77
+ dimensionName: def.supportsDimension ? args.dimension : void 0,
78
+ fromDate: toLocalDateTime(args.from),
79
+ toDate: toLocalDateTime(args.to),
80
+ page: Number(args.page),
81
+ size: Number(args.size)
82
+ }
83
+ }), args.format);
84
+ } catch (err) {
85
+ writeError(err, args.format);
86
+ process.exit(1);
87
+ }
88
+ }
89
+ });
90
+ }
91
+ //#endregion
92
+ export { defineBeautxCommand as t };