@puyinkai/wow-xiaobao-cli 0.0.0-stage → 1.0.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 (89) hide show
  1. package/README.md +42 -2
  2. package/dist/add-Da4a88Dn.mjs +21 -0
  3. package/dist/admin-nr9IIF2K.mjs +14 -0
  4. package/dist/alerts-DjMCQESW.mjs +71 -0
  5. package/dist/analyze-BJATzFtI.mjs +67 -0
  6. package/dist/api-C1s2co2-.mjs +113 -0
  7. package/dist/audio-BYm3m77S.mjs +15 -0
  8. package/dist/auth-JZ34ksvF.mjs +14 -0
  9. package/dist/beautx-D5y2iytj.mjs +16 -0
  10. package/dist/call-BfT4uEa7.mjs +67 -0
  11. package/dist/cli.d.mts +1 -0
  12. package/dist/cli.mjs +47 -0
  13. package/dist/config-DipFfMio.mjs +11 -0
  14. package/dist/config-DqUxKQ3m.mjs +131 -0
  15. package/dist/consultant-CJ0tH11c.mjs +11 -0
  16. package/dist/current-Di1OImPn.mjs +33 -0
  17. package/dist/customer-Bpfdfh0U.mjs +15 -0
  18. package/dist/date-C9LQUbfA.mjs +21 -0
  19. package/dist/deal-analysis-Q4GMijIy.mjs +10 -0
  20. package/dist/detail-Df2eLTSN.mjs +69 -0
  21. package/dist/detail-k-zGzX4n.mjs +71 -0
  22. package/dist/diff-DkyjJG49.mjs +21 -0
  23. package/dist/doc-content-DlRfFk_V.mjs +54 -0
  24. package/dist/doc-e7Hu-v3F.mjs +42 -0
  25. package/dist/docs-C2ukQfbY.mjs +41 -0
  26. package/dist/fields-CNQUQ3BI.mjs +49 -0
  27. package/dist/focus-BNA14pxJ.mjs +11 -0
  28. package/dist/follow-BYYbUVCh.mjs +15 -0
  29. package/dist/format-bDFUVuDQ.mjs +622 -0
  30. package/dist/get-ZFU7CjqO.mjs +61 -0
  31. package/dist/headers-Dy5gROBB.mjs +11 -0
  32. package/dist/intent-DF8cH6nw.mjs +63 -0
  33. package/dist/json-CXENUkN_.mjs +13 -0
  34. package/dist/kb-n84Hl0uL.mjs +16 -0
  35. package/dist/last-7-days-WPinYIJi.mjs +5 -0
  36. package/dist/list-BVk58WIy.mjs +30 -0
  37. package/dist/list-BwhH-ZlP.mjs +87 -0
  38. package/dist/list-CJx_zclT.mjs +68 -0
  39. package/dist/list-CL5W1jMc.mjs +75 -0
  40. package/dist/list-Cb2q7k36.mjs +36 -0
  41. package/dist/list-Cl0VBo_Z.mjs +71 -0
  42. package/dist/list-D27lkRNJ.mjs +86 -0
  43. package/dist/list-D7iMacYA.mjs +71 -0
  44. package/dist/list-DTiXpPZF.mjs +38 -0
  45. package/dist/list-Dv2BGPQa.mjs +71 -0
  46. package/dist/list-KTc5uu5P.mjs +86 -0
  47. package/dist/now-Rn6gT4Bn.mjs +9 -0
  48. package/dist/panke-_HDbr3xq.mjs +14 -0
  49. package/dist/plan-c3BW0aCB.mjs +10 -0
  50. package/dist/portrait-BopNLEQX.mjs +14 -0
  51. package/dist/portrait-tags-Dhwy6-6U.mjs +10 -0
  52. package/dist/project-CIOk-2wk.mjs +15 -0
  53. package/dist/project-store-B-2rqrgM.mjs +63 -0
  54. package/dist/qa-CxQZgKRF.mjs +59 -0
  55. package/dist/quantum-BSlMUFk6.mjs +178 -0
  56. package/dist/range-BsL08fkP.mjs +18 -0
  57. package/dist/resistance-CzbXP4Mj.mjs +11 -0
  58. package/dist/sales-report-BbNoueUk.mjs +65 -0
  59. package/dist/score-CVu51n3k.mjs +5 -0
  60. package/dist/score-yakz2AnG.mjs +5 -0
  61. package/dist/search-kLJrFOVI.mjs +70 -0
  62. package/dist/service-score-CiIxFGJ8.mjs +91 -0
  63. package/dist/shared-BCf9YDEa.mjs +11 -0
  64. package/dist/shared-COOwe14d.mjs +87 -0
  65. package/dist/shared-CdUFV4rc.mjs +277 -0
  66. package/dist/staff-DasX8vTs.mjs +14 -0
  67. package/dist/staff-client-B3hnEyNi.mjs +59 -0
  68. package/dist/status-BFJYeL2I.mjs +24 -0
  69. package/dist/subtract-wUG7Jzdu.mjs +21 -0
  70. package/dist/summary-Dgt4Wm5k.mjs +79 -0
  71. package/dist/summary-DtLL_XW3.mjs +60 -0
  72. package/dist/text-Dj9OFG5s.mjs +44 -0
  73. package/dist/this-month-BsrOeTBH.mjs +5 -0
  74. package/dist/this-week-tCzGJfrf.mjs +5 -0
  75. package/dist/today-Br-4_qMr.mjs +9 -0
  76. package/dist/today-CqrcQCGQ.mjs +5 -0
  77. package/dist/today-so-far-CSGFhwkN.mjs +5 -0
  78. package/dist/token-store-BGLVc825.mjs +33 -0
  79. package/dist/token-usage-BK5JIJKx.mjs +97 -0
  80. package/dist/tomorrow-DYhV_kGk.mjs +9 -0
  81. package/dist/use-89I-jHty.mjs +61 -0
  82. package/dist/util-BuoFIeLS.mjs +46 -0
  83. package/dist/visit-ChOnvK8M.mjs +16 -0
  84. package/dist/visit-evaluate-BnxsFnQc.mjs +9 -0
  85. package/dist/weekday-7aGLxWaZ.mjs +14 -0
  86. package/dist/whoami-Ci6-uJJd.mjs +51 -0
  87. package/dist/yesterday-BzT2U1_f.mjs +9 -0
  88. package/dist/yesterday-DgYoUKYd.mjs +5 -0
  89. package/package.json +35 -4
@@ -0,0 +1,33 @@
1
+ import { n as requireActiveProject } from "./project-store-B-2rqrgM.mjs";
2
+ import { n as writeResult, t as writeError } from "./format-bDFUVuDQ.mjs";
3
+ import { defineCommand } from "citty";
4
+ //#region src/commands/project/current.ts
5
+ /**
6
+ * `wow-xiaobao project current` — show the currently active project.
7
+ *
8
+ * Reads ~/.xiaobao/active-project.json (or fallback
9
+ * ~/.openclaw/state/wangxiaobao/active-project.json) and prints the
10
+ * tenant/project record. If none is set, errors out with NO_ACTIVE_PROJECT
11
+ * + hint (same error shape as other commands that need an active project,
12
+ * so agents handle it uniformly).
13
+ */
14
+ var current_default = defineCommand({
15
+ meta: {
16
+ name: "current",
17
+ description: "显示当前激活的租户/项目"
18
+ },
19
+ args: { format: {
20
+ type: "string",
21
+ default: "toon"
22
+ } },
23
+ async run({ args }) {
24
+ try {
25
+ writeResult(await requireActiveProject(), args.format);
26
+ } catch (err) {
27
+ writeError(err, args.format);
28
+ process.exit(1);
29
+ }
30
+ }
31
+ });
32
+ //#endregion
33
+ export { current_default as default };
@@ -0,0 +1,15 @@
1
+ import { defineCommand } from "citty";
2
+ //#region src/commands/customer/index.ts
3
+ var customer_default = defineCommand({
4
+ meta: {
5
+ name: "customer",
6
+ description: "客户画像 / 综合服务分 / AI 意向详情"
7
+ },
8
+ subCommands: {
9
+ intent: () => import("./intent-DF8cH6nw.mjs").then((m) => m.default),
10
+ score: () => import("./score-yakz2AnG.mjs").then((m) => m.default),
11
+ list: () => import("./list-BwhH-ZlP.mjs").then((m) => m.default)
12
+ }
13
+ });
14
+ //#endregion
15
+ export { customer_default as default };
@@ -0,0 +1,21 @@
1
+ import { defineCommand } from "citty";
2
+ //#region src/commands/date/index.ts
3
+ var date_default = defineCommand({
4
+ meta: {
5
+ name: "date",
6
+ description: "本地日期/时间(不走 MCP):now、today、weekday、range 等"
7
+ },
8
+ subCommands: {
9
+ now: () => import("./now-Rn6gT4Bn.mjs").then((m) => m.default),
10
+ today: () => import("./today-Br-4_qMr.mjs").then((m) => m.default),
11
+ yesterday: () => import("./yesterday-BzT2U1_f.mjs").then((m) => m.default),
12
+ tomorrow: () => import("./tomorrow-DYhV_kGk.mjs").then((m) => m.default),
13
+ weekday: () => import("./weekday-7aGLxWaZ.mjs").then((m) => m.default),
14
+ add: () => import("./add-Da4a88Dn.mjs").then((m) => m.default),
15
+ subtract: () => import("./subtract-wUG7Jzdu.mjs").then((m) => m.default),
16
+ diff: () => import("./diff-DkyjJG49.mjs").then((m) => m.default),
17
+ range: () => import("./range-BsL08fkP.mjs").then((m) => m.default)
18
+ }
19
+ });
20
+ //#endregion
21
+ export { date_default as default };
@@ -0,0 +1,10 @@
1
+ import { t as defineBeautxCommand } from "./shared-COOwe14d.mjs";
2
+ //#region src/commands/beautx/deal-analysis.ts
3
+ var deal_analysis_default = defineBeautxCommand({
4
+ name: "deal-analysis",
5
+ description: "医美成交分析分页(成交状态/未成交点/分析原因与结果)",
6
+ path: "/ai-open/beautx/deal-analyses",
7
+ supportsLatestOnly: true
8
+ });
9
+ //#endregion
10
+ export { deal_analysis_default as default };
@@ -0,0 +1,69 @@
1
+ import { n as xbApiFetch, t as resolveConfig } from "./config-DqUxKQ3m.mjs";
2
+ import { n as requireActiveProject } from "./project-store-B-2rqrgM.mjs";
3
+ import { t as tenantProjectHeaders } from "./headers-Dy5gROBB.mjs";
4
+ import { n as writeResult, t as writeError } from "./format-bDFUVuDQ.mjs";
5
+ import { defineCommand } from "citty";
6
+ //#region src/commands/panke/detail.ts
7
+ /** 查询已有盘客数据,业务 ID 全程保留字符串。 */
8
+ var detail_default = defineCommand({
9
+ meta: {
10
+ name: "detail",
11
+ description: "单次盘客详情、销经意向级别、总结、跟进策略及可选原文"
12
+ },
13
+ args: {
14
+ "panke-id": {
15
+ type: "string",
16
+ required: true,
17
+ description: "盘客 SOP ID,来自 panke list 的 pankeId"
18
+ },
19
+ "include-transcript": {
20
+ type: "boolean",
21
+ default: false,
22
+ description: "查询盘客录音原文(角色和毫秒时间戳)"
23
+ },
24
+ "api-base": { type: "string" },
25
+ format: {
26
+ type: "string",
27
+ default: "json"
28
+ }
29
+ },
30
+ async run({ args }) {
31
+ try {
32
+ if ([args["panke-id"]].some((id) => !/^[1-9]\d*$/.test(id) || BigInt(id) > 9223372036854775807n)) {
33
+ writeError({
34
+ code: "BAD_ARGUMENT",
35
+ message: "ID 必须为有效的正整数,且不能超过 Java Long 范围"
36
+ }, args.format);
37
+ process.exit(2);
38
+ }
39
+ const result = await xbApiFetch(resolveConfig({ apiBase: args["api-base"] }), "POST", "/ai-open/panke/detail", {
40
+ headers: tenantProjectHeaders(await requireActiveProject()),
41
+ body: {
42
+ pankeId: args["panke-id"],
43
+ includeTranscript: args["include-transcript"]
44
+ }
45
+ });
46
+ const envelope = result.data;
47
+ if (!result.ok || !envelope || typeof envelope !== "object" || String(envelope.code) !== "0") throw {
48
+ code: "API_ERROR",
49
+ status: result.status,
50
+ message: envelope?.msg ?? "盘客查询失败",
51
+ body: result.data
52
+ };
53
+ if (typeof envelope.data === "string") throw {
54
+ code: "ACCESS_DENIED",
55
+ message: envelope.data
56
+ };
57
+ if (!envelope.data || typeof envelope.data !== "object" || Array.isArray(envelope.data) || !envelope.data.pankeId) throw {
58
+ code: "API_ERROR",
59
+ message: "盘客返回数据不完整"
60
+ };
61
+ writeResult(result, args.format);
62
+ } catch (err) {
63
+ writeError(err, args.format);
64
+ process.exit(1);
65
+ }
66
+ }
67
+ });
68
+ //#endregion
69
+ export { detail_default as default };
@@ -0,0 +1,71 @@
1
+ import { n as xbApiFetch, t as resolveConfig } from "./config-DqUxKQ3m.mjs";
2
+ import { n as requireActiveProject } from "./project-store-B-2rqrgM.mjs";
3
+ import { t as tenantProjectHeaders } from "./headers-Dy5gROBB.mjs";
4
+ import { n as writeResult, t as writeError } from "./format-bDFUVuDQ.mjs";
5
+ import { defineCommand } from "citty";
6
+ //#region src/commands/follow/detail.ts
7
+ /** 查询已有跟进总结及可选原文;跟进ID始终保留字符串,避免大整数精度丢失。 */
8
+ var detail_default = defineCommand({
9
+ meta: {
10
+ name: "detail",
11
+ description: "单条跟进基础信息、已有模板总结及可选原文(角色/时间戳)"
12
+ },
13
+ args: {
14
+ "follow-id": {
15
+ type: "string",
16
+ required: true,
17
+ description: "follow list 返回的跟进记录ID"
18
+ },
19
+ "include-transcript": {
20
+ type: "boolean",
21
+ default: false,
22
+ description: "附带原文;默认只查询基础信息和已有总结"
23
+ },
24
+ "api-base": { type: "string" },
25
+ format: {
26
+ type: "string",
27
+ default: "json"
28
+ }
29
+ },
30
+ async run({ args }) {
31
+ try {
32
+ const id = args["follow-id"];
33
+ if (!/^[1-9]\d*$/.test(id) || BigInt(id) > 9223372036854775807n) {
34
+ writeError({
35
+ code: "BAD_ARGUMENT",
36
+ message: "follow-id 必须为有效正整数跟进ID"
37
+ }, args.format);
38
+ process.exit(2);
39
+ }
40
+ const result = await xbApiFetch(resolveConfig({ apiBase: args["api-base"] }), "POST", "/ai-open/follows/detail", {
41
+ headers: tenantProjectHeaders(await requireActiveProject()),
42
+ body: {
43
+ followId: id,
44
+ includeTranscript: args["include-transcript"]
45
+ }
46
+ });
47
+ const envelope = result.data;
48
+ if (!result.ok || !envelope || typeof envelope !== "object" || String(envelope.code) !== "0") throw {
49
+ code: "API_ERROR",
50
+ status: result.status,
51
+ message: envelope?.msg ?? "跟进详情查询失败",
52
+ body: result.data
53
+ };
54
+ if (typeof envelope.data === "string") throw {
55
+ code: "ACCESS_DENIED",
56
+ message: envelope.data
57
+ };
58
+ const detail = envelope.data;
59
+ if (!detail || detail.follow?.followId !== id || !Array.isArray(detail.summaries) || args["include-transcript"] && !Array.isArray(detail.transcript?.fragments)) throw {
60
+ code: "API_ERROR",
61
+ message: "跟进详情返回数据不完整或跟进ID不一致"
62
+ };
63
+ writeResult(result, args.format);
64
+ } catch (err) {
65
+ writeError(err, args.format);
66
+ process.exit(1);
67
+ }
68
+ }
69
+ });
70
+ //#endregion
71
+ export { detail_default as default };
@@ -0,0 +1,21 @@
1
+ import { i as dateDiff, t as defineDateCommand } from "./shared-CdUFV4rc.mjs";
2
+ //#region src/commands/date/diff.ts
3
+ var diff_default = defineDateCommand({
4
+ name: "diff",
5
+ description: "计算两日期相差天数(end - start)",
6
+ args: {
7
+ start: {
8
+ type: "string",
9
+ description: "开始日期 YYYY-MM-DD",
10
+ required: true
11
+ },
12
+ end: {
13
+ type: "string",
14
+ description: "结束日期 YYYY-MM-DD",
15
+ required: true
16
+ }
17
+ },
18
+ run: ({ args }) => dateDiff(args.start, args.end)
19
+ });
20
+ //#endregion
21
+ export { diff_default as default };
@@ -0,0 +1,54 @@
1
+ import { n as xbApiFetch, t as resolveConfig } from "./config-DqUxKQ3m.mjs";
2
+ import { n as requireActiveProject } from "./project-store-B-2rqrgM.mjs";
3
+ import { t as tenantProjectHeaders } from "./headers-Dy5gROBB.mjs";
4
+ import { n as writeResult, t as writeError } from "./format-bDFUVuDQ.mjs";
5
+ import { defineCommand } from "citty";
6
+ //#region src/commands/kb/doc-content.ts
7
+ /**
8
+ * `wow-xiaobao kb doc-content <doc-id>` — paged knowledge-base document body
9
+ * via POST /ai-open/kb/docs/content/query. Page through long documents with
10
+ * `--offset`/`--limit`; use the `hasMore` flag in the response to keep going.
11
+ */
12
+ var doc_content_default = defineCommand({
13
+ meta: {
14
+ name: "doc-content",
15
+ description: "知识库文档正文分页(offset/limit 翻页,hasMore 续翻)"
16
+ },
17
+ args: {
18
+ "doc-id": {
19
+ type: "positional",
20
+ required: true,
21
+ description: "文档 ID"
22
+ },
23
+ offset: {
24
+ type: "string",
25
+ description: "内容偏移,默认 0"
26
+ },
27
+ limit: {
28
+ type: "string",
29
+ description: "内容长度,默认 1000,最大 2000"
30
+ },
31
+ "api-base": { type: "string" },
32
+ format: {
33
+ type: "string",
34
+ default: "toon"
35
+ }
36
+ },
37
+ async run({ args }) {
38
+ try {
39
+ writeResult(await xbApiFetch(resolveConfig({ apiBase: args["api-base"] }), "POST", "/ai-open/kb/docs/content/query", {
40
+ headers: tenantProjectHeaders(await requireActiveProject()),
41
+ body: {
42
+ docId: args["doc-id"],
43
+ offset: args.offset != null ? Number(args.offset) : void 0,
44
+ limit: args.limit != null ? Number(args.limit) : void 0
45
+ }
46
+ }), args.format);
47
+ } catch (err) {
48
+ writeError(err, args.format);
49
+ process.exit(1);
50
+ }
51
+ }
52
+ });
53
+ //#endregion
54
+ export { doc_content_default as default };
@@ -0,0 +1,42 @@
1
+ import { n as xbApiFetch, t as resolveConfig } from "./config-DqUxKQ3m.mjs";
2
+ import { n as requireActiveProject } from "./project-store-B-2rqrgM.mjs";
3
+ import { t as tenantProjectHeaders } from "./headers-Dy5gROBB.mjs";
4
+ import { n as writeResult, t as writeError } from "./format-bDFUVuDQ.mjs";
5
+ import { defineCommand } from "citty";
6
+ //#region src/commands/kb/doc.ts
7
+ /**
8
+ * `wow-xiaobao kb doc <doc-id>` — knowledge-base document detail via
9
+ * POST /ai-open/kb/docs/get. Fetched by docId. For the full body text use
10
+ * `kb doc-content` (paged).
11
+ */
12
+ var doc_default = defineCommand({
13
+ meta: {
14
+ name: "doc",
15
+ description: "知识库文档详情(按 docId 直取)"
16
+ },
17
+ args: {
18
+ "doc-id": {
19
+ type: "positional",
20
+ required: true,
21
+ description: "文档 ID"
22
+ },
23
+ "api-base": { type: "string" },
24
+ format: {
25
+ type: "string",
26
+ default: "toon"
27
+ }
28
+ },
29
+ async run({ args }) {
30
+ try {
31
+ writeResult(await xbApiFetch(resolveConfig({ apiBase: args["api-base"] }), "POST", "/ai-open/kb/docs/get", {
32
+ headers: tenantProjectHeaders(await requireActiveProject()),
33
+ body: { docId: args["doc-id"] }
34
+ }), args.format);
35
+ } catch (err) {
36
+ writeError(err, args.format);
37
+ process.exit(1);
38
+ }
39
+ }
40
+ });
41
+ //#endregion
42
+ export { doc_default as default };
@@ -0,0 +1,41 @@
1
+ import { n as xbApiFetch, t as resolveConfig } from "./config-DqUxKQ3m.mjs";
2
+ import { n as requireActiveProject } from "./project-store-B-2rqrgM.mjs";
3
+ import { t as tenantProjectHeaders } from "./headers-Dy5gROBB.mjs";
4
+ import { n as writeResult, t as writeError } from "./format-bDFUVuDQ.mjs";
5
+ import { defineCommand } from "citty";
6
+ //#region src/commands/kb/docs.ts
7
+ /**
8
+ * `wow-xiaobao kb docs` — list knowledge-base documents via
9
+ * POST /ai-open/kb/docs/query. Scoped to the active project. Use `--title`
10
+ * to filter by title keyword.
11
+ */
12
+ var docs_default = defineCommand({
13
+ meta: {
14
+ name: "docs",
15
+ description: "知识库文档列表(按当前激活项目隔离)"
16
+ },
17
+ args: {
18
+ title: {
19
+ type: "string",
20
+ description: "标题关键字过滤(可选)"
21
+ },
22
+ "api-base": { type: "string" },
23
+ format: {
24
+ type: "string",
25
+ default: "toon"
26
+ }
27
+ },
28
+ async run({ args }) {
29
+ try {
30
+ writeResult(await xbApiFetch(resolveConfig({ apiBase: args["api-base"] }), "POST", "/ai-open/kb/docs/query", {
31
+ headers: tenantProjectHeaders(await requireActiveProject()),
32
+ body: { title: args.title }
33
+ }), args.format);
34
+ } catch (err) {
35
+ writeError(err, args.format);
36
+ process.exit(1);
37
+ }
38
+ }
39
+ });
40
+ //#endregion
41
+ export { docs_default as default };
@@ -0,0 +1,49 @@
1
+ import { n as xbApiFetch, t as resolveConfig } from "./config-DqUxKQ3m.mjs";
2
+ import { n as requireActiveProject } from "./project-store-B-2rqrgM.mjs";
3
+ import { t as tenantProjectHeaders } from "./headers-Dy5gROBB.mjs";
4
+ import { n as writeResult, t as writeError } from "./format-bDFUVuDQ.mjs";
5
+ import { defineCommand } from "citty";
6
+ //#region src/commands/config/fields.ts
7
+ /**
8
+ * `wow-xiaobao config fields` — 客户字段配置分页。
9
+ *
10
+ * 返回本项目客户字段(名称/格式/说明/分类/AI 映射名),供解读
11
+ * customer list 里 dynamic_tags 各标签的含义。调 POST /ai-open/customers/fields。
12
+ */
13
+ var fields_default = defineCommand({
14
+ meta: {
15
+ name: "fields",
16
+ description: "客户字段配置分页(解读 dynamic_tags 标签含义)"
17
+ },
18
+ args: {
19
+ page: {
20
+ type: "string",
21
+ default: "1"
22
+ },
23
+ size: {
24
+ type: "string",
25
+ default: "50"
26
+ },
27
+ "api-base": { type: "string" },
28
+ format: {
29
+ type: "string",
30
+ default: "toon"
31
+ }
32
+ },
33
+ async run({ args }) {
34
+ try {
35
+ writeResult(await xbApiFetch(resolveConfig({ apiBase: args["api-base"] }), "POST", "/ai-open/customers/fields", {
36
+ headers: tenantProjectHeaders(await requireActiveProject()),
37
+ body: {
38
+ page: Number(args.page),
39
+ size: Number(args.size)
40
+ }
41
+ }), args.format);
42
+ } catch (err) {
43
+ writeError(err, args.format);
44
+ process.exit(1);
45
+ }
46
+ }
47
+ });
48
+ //#endregion
49
+ export { fields_default as default };
@@ -0,0 +1,11 @@
1
+ import { defineCommand } from "citty";
2
+ //#region src/commands/focus/index.ts
3
+ var focus_default = defineCommand({
4
+ meta: {
5
+ name: "focus",
6
+ description: "客户关注点标签分页查询"
7
+ },
8
+ subCommands: { list: () => import("./list-D27lkRNJ.mjs").then((m) => m.default) }
9
+ });
10
+ //#endregion
11
+ export { focus_default as default };
@@ -0,0 +1,15 @@
1
+ import { defineCommand } from "citty";
2
+ //#region src/commands/follow/index.ts
3
+ var follow_default = defineCommand({
4
+ meta: {
5
+ name: "follow",
6
+ description: "旺跟进:明细分页(list) / 总结及原文详情(detail) / 电话微信指标汇总(summary)(聚合统计卡片用 quantum follow)"
7
+ },
8
+ subCommands: {
9
+ detail: () => import("./detail-k-zGzX4n.mjs").then((m) => m.default),
10
+ list: () => import("./list-D7iMacYA.mjs").then((m) => m.default),
11
+ summary: () => import("./summary-DtLL_XW3.mjs").then((m) => m.default)
12
+ }
13
+ });
14
+ //#endregion
15
+ export { follow_default as default };