@puyinkai/xiaobao-cli 0.6.1 → 0.6.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 (45) hide show
  1. package/dist/{admin-CpPlecd5.mjs → admin-P8LelYub.mjs} +2 -2
  2. package/dist/{analyze-DsiZ9O18.mjs → analyze-CmbVQDqC.mjs} +1 -1
  3. package/dist/{api-nDku2tzx.mjs → api-_7z_Fgio.mjs} +1 -1
  4. package/dist/{api-client-JrgUZpe8.mjs → api-client-BebyDye_.mjs} +53 -20
  5. package/dist/{audio-D-XxOe-n.mjs → audio-CNA0TaBz.mjs} +3 -3
  6. package/dist/{beautx-CK9SR4Tg.mjs → beautx-Co08xEOc.mjs} +4 -4
  7. package/dist/cli.mjs +16 -16
  8. package/dist/{config-WGgTcEU1.mjs → config-jn3N9DsG.mjs} +1 -1
  9. package/dist/{consultant-aWz8jHvH.mjs → consultant-CfuL1-Uu.mjs} +1 -1
  10. package/dist/{customer-B410Tvlz.mjs → customer-C_ojjf5a.mjs} +1 -1
  11. package/dist/{deal-analysis-C3yn-bFg.mjs → deal-analysis-DwqtomZD.mjs} +1 -1
  12. package/dist/{doc-CrY6qNkG.mjs → doc-BsRn2TaX.mjs} +1 -1
  13. package/dist/{doc-content-YKxaMDEp.mjs → doc-content-DMF-a4YC.mjs} +1 -1
  14. package/dist/{docs-BpowF7jz.mjs → docs-Ce4TkZeo.mjs} +1 -1
  15. package/dist/{fields-iyCGxxkh.mjs → fields-Cco8H-4p.mjs} +1 -1
  16. package/dist/{focus-DFxVA1UZ.mjs → focus-Bs3qqpTl.mjs} +1 -1
  17. package/dist/{follow-BLq9XK6s.mjs → follow-D-51z9BP.mjs} +2 -2
  18. package/dist/{get-Cvl1PgHr.mjs → get-DcMz2swt.mjs} +1 -1
  19. package/dist/{kb-B1sxz-PW.mjs → kb-CXBBbC_N.mjs} +4 -4
  20. package/dist/{list-BvZ0SnDf.mjs → list-B2gkaQQF.mjs} +1 -1
  21. package/dist/{list-CjLiGMIC.mjs → list-BO4IL_tp.mjs} +1 -1
  22. package/dist/{list-DqLKhW5s.mjs → list-BTKZEhup.mjs} +1 -1
  23. package/dist/{list-C3bNdA1t.mjs → list-BoAIkKRp.mjs} +1 -1
  24. package/dist/{list-D3P2E5vT.mjs → list-BpbZHSO4.mjs} +1 -1
  25. package/dist/{list-CtICqXPF.mjs → list-CJpEq6u4.mjs} +1 -1
  26. package/dist/{list-BZVeH1P0.mjs → list-CNUQBB2l.mjs} +1 -1
  27. package/dist/{list-Bu9oehY8.mjs → list-OvrNUjM8.mjs} +1 -1
  28. package/dist/{list-B8QkIq76.mjs → list-uusQMKfK.mjs} +1 -1
  29. package/dist/{plan-DC7ZFHWK.mjs → plan-oM0iPn4q.mjs} +1 -1
  30. package/dist/{portrait-D6oQPQfC.mjs → portrait-Ckz2Af0f.mjs} +2 -2
  31. package/dist/{portrait-tags-DGjYKGDf.mjs → portrait-tags-B7mHXpp0.mjs} +1 -1
  32. package/dist/{project-UkyNWPm6.mjs → project-CW4uEjIb.mjs} +1 -1
  33. package/dist/{qa-Dm1X6IoO.mjs → qa-DbMd_iPm.mjs} +1 -1
  34. package/dist/{quantum-DIuY6j7I.mjs → quantum-BTOTuk_X.mjs} +1 -1
  35. package/dist/{resistance-B-v-lfkT.mjs → resistance-DChhSmdw.mjs} +1 -1
  36. package/dist/{sales-report-Daps9Vr5.mjs → sales-report-DTP3WBAx.mjs} +1 -1
  37. package/dist/{search-VsAp96Co.mjs → search-lKk-wiFN.mjs} +1 -1
  38. package/dist/{shared-DtIllnrz.mjs → shared-YIhF_DTb.mjs} +1 -1
  39. package/dist/{summary-CF2uhuE3.mjs → summary-CknPAx7J.mjs} +1 -1
  40. package/dist/{summary-CgBgJOw2.mjs → summary-Ds3sFDWE.mjs} +1 -1
  41. package/dist/{text-8R0TuzgK.mjs → text-Cqz-DqQf.mjs} +1 -1
  42. package/dist/{token-usage-BvWb3N3J.mjs → token-usage-DDWH_cxo.mjs} +1 -1
  43. package/dist/{visit-4xsa_DFD.mjs → visit-D2pk9wRw.mjs} +2 -2
  44. package/dist/{visit-evaluate-BvmghATK.mjs → visit-evaluate-BPA1X0oL.mjs} +1 -1
  45. package/package.json +1 -1
@@ -6,8 +6,8 @@ var admin_default = defineCommand({
6
6
  description: "super-admin 经营报表:公司经营数据(出库/回款)/ LLM token 用量(独立白名单)"
7
7
  },
8
8
  subCommands: {
9
- "sales-report": () => import("./sales-report-Daps9Vr5.mjs").then((m) => m.default),
10
- "token-usage": () => import("./token-usage-BvWb3N3J.mjs").then((m) => m.default)
9
+ "sales-report": () => import("./sales-report-DTP3WBAx.mjs").then((m) => m.default),
10
+ "token-usage": () => import("./token-usage-DDWH_cxo.mjs").then((m) => m.default)
11
11
  }
12
12
  });
13
13
  //#endregion
@@ -1,5 +1,5 @@
1
1
  import { o as resolveConfig } from "./device-flow-j10PFOQL.mjs";
2
- import { t as xbApiFetch } from "./api-client-JrgUZpe8.mjs";
2
+ import { t as xbApiFetch } from "./api-client-BebyDye_.mjs";
3
3
  import { n as requireActiveProject } from "./project-store-CudTRvbA.mjs";
4
4
  import { t as tenantProjectHeaders } from "./headers-Dy5gROBB.mjs";
5
5
  import { n as writeResult, t as writeError } from "./format-DfVypHID.mjs";
@@ -1,5 +1,5 @@
1
1
  import { o as resolveConfig } from "./device-flow-j10PFOQL.mjs";
2
- import { t as xbApiFetch } from "./api-client-JrgUZpe8.mjs";
2
+ import { t as xbApiFetch } from "./api-client-BebyDye_.mjs";
3
3
  import { t as loadActiveProject } from "./project-store-CudTRvbA.mjs";
4
4
  import { t as tenantProjectHeaders } from "./headers-Dy5gROBB.mjs";
5
5
  import { n as writeResult, t as writeError } from "./format-DfVypHID.mjs";
@@ -1,5 +1,7 @@
1
1
  import { i as refreshToken } from "./device-flow-j10PFOQL.mjs";
2
2
  import { a as isAccessTokenValid, l as writeToken, s as readToken } from "./token-store-BB7n-fwJ.mjs";
3
+ import { request } from "node:http";
4
+ import { request as request$1 } from "node:https";
3
5
  //#region src/core/api-client.ts
4
6
  /**
5
7
  * HTTP client for wangxiaobao open API endpoints.
@@ -31,19 +33,53 @@ function buildUrl(apiBase, path, query) {
31
33
  return url.toString();
32
34
  }
33
35
  /**
34
- * fetch with retry on transient network errors (undici "TypeError: fetch
35
- * failed" — connection reset / unreachable). HTTP error responses and
36
- * timeouts are NOT retried; backoff 200ms 400ms 800ms, max 3 retries.
36
+ * Single HTTP(S) request on Node's native http/https modules with
37
+ * `agent: false` no connection pool, a fresh TCP connection per request,
38
+ * closed when the response ends (same behavior as curl). This avoids the
39
+ * intermittent "fetch failed" caused by undici's keep-alive pool reusing a
40
+ * connection the server has already half-closed.
37
41
  */
38
- async function fetchWithRetry(url, init) {
42
+ function requestOnce(url, method, headers, body, timeoutMs) {
43
+ return new Promise((resolve, reject) => {
44
+ const u = new URL(url);
45
+ const req = (u.protocol === "http:" ? request : request$1)(u, {
46
+ method,
47
+ headers,
48
+ agent: false
49
+ }, (res) => {
50
+ const chunks = [];
51
+ res.on("data", (c) => chunks.push(c));
52
+ res.on("end", () => resolve({
53
+ status: res.statusCode ?? 0,
54
+ contentType: String(res.headers["content-type"] ?? ""),
55
+ text: Buffer.concat(chunks).toString("utf8")
56
+ }));
57
+ res.on("error", reject);
58
+ });
59
+ req.setTimeout(timeoutMs, () => {
60
+ const e = /* @__PURE__ */ new Error(`request timeout after ${timeoutMs}ms: ${method} ${url}`);
61
+ e.code = "XB_TIMEOUT";
62
+ req.destroy(e);
63
+ });
64
+ req.on("error", reject);
65
+ if (body != null) req.write(body);
66
+ req.end();
67
+ });
68
+ }
69
+ /**
70
+ * Retry transient network errors (ECONNRESET / EPIPE / connection refused…)
71
+ * with backoff 200ms → 400ms → 800ms, max 3 retries. Timeouts and HTTP error
72
+ * responses are NOT retried.
73
+ */
74
+ async function requestWithRetry(url, method, headers, body, timeoutMs) {
39
75
  let lastErr;
40
76
  for (let attempt = 0; attempt <= 3; attempt++) {
41
77
  if (attempt > 0) await new Promise((r) => setTimeout(r, 200 * 2 ** (attempt - 1)));
42
78
  try {
43
- return await fetch(url, init);
79
+ return await requestOnce(url, method, headers, body, timeoutMs);
44
80
  } catch (err) {
45
81
  lastErr = err;
46
- if (!(err instanceof TypeError)) throw err;
82
+ if (err.code === "XB_TIMEOUT") throw err;
47
83
  }
48
84
  }
49
85
  throw lastErr;
@@ -60,15 +96,12 @@ async function doFetch(url, method, token, opts) {
60
96
  body = JSON.stringify(opts.body);
61
97
  if (!headers["Content-Type"]) headers["Content-Type"] = "application/json";
62
98
  }
63
- const resp = await fetchWithRetry(url, {
64
- method,
65
- headers,
66
- body,
67
- signal: AbortSignal.timeout(opts.timeoutMs ?? 3e4)
68
- });
99
+ const raw = await requestWithRetry(url, method, headers, body, opts.timeoutMs ?? 3e4);
100
+ const parsed = raw.contentType.includes("application/json") && raw.text ? JSON.parse(raw.text) : raw.text;
69
101
  return {
70
- resp,
71
- parsed: (resp.headers.get("content-type") || "").includes("application/json") ? await resp.json() : await resp.text()
102
+ status: raw.status,
103
+ ok: raw.status >= 200 && raw.status < 300,
104
+ parsed
72
105
  };
73
106
  }
74
107
  /**
@@ -77,18 +110,18 @@ async function doFetch(url, method, token, opts) {
77
110
  async function xbApiFetch(config, method, path, opts = {}) {
78
111
  const url = buildUrl(config.apiBase, path, opts.query);
79
112
  let token = await ensureAccessToken(config);
80
- let { resp, parsed } = await doFetch(url, method, token, opts);
81
- if (resp.status === 401) {
113
+ let result = await doFetch(url, method, token, opts);
114
+ if (result.status === 401) {
82
115
  const cached = await readToken();
83
116
  if (cached?.refresh_token) {
84
117
  token = (await writeToken(await refreshToken(config, cached.refresh_token))).access_token;
85
- ({resp, parsed} = await doFetch(url, method, token, opts));
118
+ result = await doFetch(url, method, token, opts);
86
119
  }
87
120
  }
88
121
  return {
89
- status: resp.status,
90
- ok: resp.ok,
91
- data: parsed
122
+ status: result.status,
123
+ ok: result.ok,
124
+ data: result.parsed
92
125
  };
93
126
  }
94
127
  //#endregion
@@ -6,9 +6,9 @@ var audio_default = defineCommand({
6
6
  description: "录音元数据分页 / 单条文本查询"
7
7
  },
8
8
  subCommands: {
9
- list: () => import("./list-CjLiGMIC.mjs").then((m) => m.default),
10
- text: () => import("./text-8R0TuzgK.mjs").then((m) => m.default),
11
- analyze: () => import("./analyze-DsiZ9O18.mjs").then((m) => m.default)
9
+ list: () => import("./list-BO4IL_tp.mjs").then((m) => m.default),
10
+ text: () => import("./text-Cqz-DqQf.mjs").then((m) => m.default),
11
+ analyze: () => import("./analyze-CmbVQDqC.mjs").then((m) => m.default)
12
12
  }
13
13
  });
14
14
  //#endregion
@@ -6,10 +6,10 @@ var beautx_default = defineCommand({
6
6
  description: "医美:变美计划(plan) / 成交分析(deal-analysis) / 画像标签(portrait-tags) / 接诊评价(visit-evaluate)"
7
7
  },
8
8
  subCommands: {
9
- plan: () => import("./plan-DC7ZFHWK.mjs").then((m) => m.default),
10
- "deal-analysis": () => import("./deal-analysis-C3yn-bFg.mjs").then((m) => m.default),
11
- "portrait-tags": () => import("./portrait-tags-DGjYKGDf.mjs").then((m) => m.default),
12
- "visit-evaluate": () => import("./visit-evaluate-BvmghATK.mjs").then((m) => m.default)
9
+ plan: () => import("./plan-oM0iPn4q.mjs").then((m) => m.default),
10
+ "deal-analysis": () => import("./deal-analysis-DwqtomZD.mjs").then((m) => m.default),
11
+ "portrait-tags": () => import("./portrait-tags-B7mHXpp0.mjs").then((m) => m.default),
12
+ "visit-evaluate": () => import("./visit-evaluate-BPA1X0oL.mjs").then((m) => m.default)
13
13
  }
14
14
  });
15
15
  //#endregion
package/dist/cli.mjs CHANGED
@@ -22,23 +22,23 @@ runMain(defineCommand({
22
22
  },
23
23
  subCommands: {
24
24
  auth: () => import("./auth-sQwZSTNA.mjs").then((m) => m.default),
25
- project: () => import("./project-UkyNWPm6.mjs").then((m) => m.default),
26
- consultant: () => import("./consultant-aWz8jHvH.mjs").then((m) => m.default),
27
- audio: () => import("./audio-D-XxOe-n.mjs").then((m) => m.default),
28
- customer: () => import("./customer-B410Tvlz.mjs").then((m) => m.default),
29
- visit: () => import("./visit-4xsa_DFD.mjs").then((m) => m.default),
30
- focus: () => import("./focus-DFxVA1UZ.mjs").then((m) => m.default),
31
- resistance: () => import("./resistance-B-v-lfkT.mjs").then((m) => m.default),
32
- qa: () => import("./qa-Dm1X6IoO.mjs").then((m) => m.default),
33
- kb: () => import("./kb-B1sxz-PW.mjs").then((m) => m.default),
34
- quantum: () => import("./quantum-DIuY6j7I.mjs").then((m) => m.default),
35
- follow: () => import("./follow-BLq9XK6s.mjs").then((m) => m.default),
36
- portrait: () => import("./portrait-D6oQPQfC.mjs").then((m) => m.default),
37
- config: () => import("./config-WGgTcEU1.mjs").then((m) => m.default),
38
- beautx: () => import("./beautx-CK9SR4Tg.mjs").then((m) => m.default),
25
+ project: () => import("./project-CW4uEjIb.mjs").then((m) => m.default),
26
+ consultant: () => import("./consultant-CfuL1-Uu.mjs").then((m) => m.default),
27
+ audio: () => import("./audio-CNA0TaBz.mjs").then((m) => m.default),
28
+ customer: () => import("./customer-C_ojjf5a.mjs").then((m) => m.default),
29
+ visit: () => import("./visit-D2pk9wRw.mjs").then((m) => m.default),
30
+ focus: () => import("./focus-Bs3qqpTl.mjs").then((m) => m.default),
31
+ resistance: () => import("./resistance-DChhSmdw.mjs").then((m) => m.default),
32
+ qa: () => import("./qa-DbMd_iPm.mjs").then((m) => m.default),
33
+ kb: () => import("./kb-CXBBbC_N.mjs").then((m) => m.default),
34
+ quantum: () => import("./quantum-BTOTuk_X.mjs").then((m) => m.default),
35
+ follow: () => import("./follow-D-51z9BP.mjs").then((m) => m.default),
36
+ portrait: () => import("./portrait-Ckz2Af0f.mjs").then((m) => m.default),
37
+ config: () => import("./config-jn3N9DsG.mjs").then((m) => m.default),
38
+ beautx: () => import("./beautx-Co08xEOc.mjs").then((m) => m.default),
39
39
  date: () => import("./date-BcQMKhIT.mjs").then((m) => m.default),
40
- admin: () => import("./admin-CpPlecd5.mjs").then((m) => m.default),
41
- api: () => import("./api-nDku2tzx.mjs").then((m) => m.default)
40
+ admin: () => import("./admin-P8LelYub.mjs").then((m) => m.default),
41
+ api: () => import("./api-_7z_Fgio.mjs").then((m) => m.default)
42
42
  }
43
43
  }));
44
44
  //#endregion
@@ -5,7 +5,7 @@ var config_default = defineCommand({
5
5
  name: "config",
6
6
  description: "项目配置:客户字段配置(fields,解读 dynamic_tags 标签含义)"
7
7
  },
8
- subCommands: { fields: () => import("./fields-iyCGxxkh.mjs").then((m) => m.default) }
8
+ subCommands: { fields: () => import("./fields-Cco8H-4p.mjs").then((m) => m.default) }
9
9
  });
10
10
  //#endregion
11
11
  export { config_default as default };
@@ -5,7 +5,7 @@ var consultant_default = defineCommand({
5
5
  name: "consultant",
6
6
  description: "查询有权限的置业顾问列表"
7
7
  },
8
- subCommands: { list: () => import("./list-DqLKhW5s.mjs").then((m) => m.default) }
8
+ subCommands: { list: () => import("./list-BTKZEhup.mjs").then((m) => m.default) }
9
9
  });
10
10
  //#endregion
11
11
  export { consultant_default as default };
@@ -5,7 +5,7 @@ var customer_default = defineCommand({
5
5
  name: "customer",
6
6
  description: "客户画像分页查询"
7
7
  },
8
- subCommands: { list: () => import("./list-C3bNdA1t.mjs").then((m) => m.default) }
8
+ subCommands: { list: () => import("./list-BoAIkKRp.mjs").then((m) => m.default) }
9
9
  });
10
10
  //#endregion
11
11
  export { customer_default as default };
@@ -1,4 +1,4 @@
1
- import { t as defineBeautxCommand } from "./shared-DtIllnrz.mjs";
1
+ import { t as defineBeautxCommand } from "./shared-YIhF_DTb.mjs";
2
2
  //#region src/commands/beautx/deal-analysis.ts
3
3
  var deal_analysis_default = defineBeautxCommand({
4
4
  name: "deal-analysis",
@@ -1,5 +1,5 @@
1
1
  import { o as resolveConfig } from "./device-flow-j10PFOQL.mjs";
2
- import { t as xbApiFetch } from "./api-client-JrgUZpe8.mjs";
2
+ import { t as xbApiFetch } from "./api-client-BebyDye_.mjs";
3
3
  import { n as requireActiveProject } from "./project-store-CudTRvbA.mjs";
4
4
  import { t as tenantProjectHeaders } from "./headers-Dy5gROBB.mjs";
5
5
  import { n as writeResult, t as writeError } from "./format-DfVypHID.mjs";
@@ -1,5 +1,5 @@
1
1
  import { o as resolveConfig } from "./device-flow-j10PFOQL.mjs";
2
- import { t as xbApiFetch } from "./api-client-JrgUZpe8.mjs";
2
+ import { t as xbApiFetch } from "./api-client-BebyDye_.mjs";
3
3
  import { n as requireActiveProject } from "./project-store-CudTRvbA.mjs";
4
4
  import { t as tenantProjectHeaders } from "./headers-Dy5gROBB.mjs";
5
5
  import { n as writeResult, t as writeError } from "./format-DfVypHID.mjs";
@@ -1,5 +1,5 @@
1
1
  import { o as resolveConfig } from "./device-flow-j10PFOQL.mjs";
2
- import { t as xbApiFetch } from "./api-client-JrgUZpe8.mjs";
2
+ import { t as xbApiFetch } from "./api-client-BebyDye_.mjs";
3
3
  import { n as requireActiveProject } from "./project-store-CudTRvbA.mjs";
4
4
  import { t as tenantProjectHeaders } from "./headers-Dy5gROBB.mjs";
5
5
  import { n as writeResult, t as writeError } from "./format-DfVypHID.mjs";
@@ -1,5 +1,5 @@
1
1
  import { o as resolveConfig } from "./device-flow-j10PFOQL.mjs";
2
- import { t as xbApiFetch } from "./api-client-JrgUZpe8.mjs";
2
+ import { t as xbApiFetch } from "./api-client-BebyDye_.mjs";
3
3
  import { n as requireActiveProject } from "./project-store-CudTRvbA.mjs";
4
4
  import { t as tenantProjectHeaders } from "./headers-Dy5gROBB.mjs";
5
5
  import { n as writeResult, t as writeError } from "./format-DfVypHID.mjs";
@@ -5,7 +5,7 @@ var focus_default = defineCommand({
5
5
  name: "focus",
6
6
  description: "客户关注点标签分页查询"
7
7
  },
8
- subCommands: { list: () => import("./list-CtICqXPF.mjs").then((m) => m.default) }
8
+ subCommands: { list: () => import("./list-CJpEq6u4.mjs").then((m) => m.default) }
9
9
  });
10
10
  //#endregion
11
11
  export { focus_default as default };
@@ -6,8 +6,8 @@ var follow_default = defineCommand({
6
6
  description: "旺跟进:明细分页(list) / 电话微信指标汇总(summary)(聚合统计卡片用 quantum follow)"
7
7
  },
8
8
  subCommands: {
9
- list: () => import("./list-B8QkIq76.mjs").then((m) => m.default),
10
- summary: () => import("./summary-CgBgJOw2.mjs").then((m) => m.default)
9
+ list: () => import("./list-uusQMKfK.mjs").then((m) => m.default),
10
+ summary: () => import("./summary-Ds3sFDWE.mjs").then((m) => m.default)
11
11
  }
12
12
  });
13
13
  //#endregion
@@ -1,5 +1,5 @@
1
1
  import { o as resolveConfig } from "./device-flow-j10PFOQL.mjs";
2
- import { t as xbApiFetch } from "./api-client-JrgUZpe8.mjs";
2
+ import { t as xbApiFetch } from "./api-client-BebyDye_.mjs";
3
3
  import { n as requireActiveProject } from "./project-store-CudTRvbA.mjs";
4
4
  import { t as tenantProjectHeaders } from "./headers-Dy5gROBB.mjs";
5
5
  import { n as writeResult, t as writeError } from "./format-DfVypHID.mjs";
@@ -6,10 +6,10 @@ var kb_default = defineCommand({
6
6
  description: "项目知识库:语义检索 / 文档列表 / 文档详情 / 文档正文分页"
7
7
  },
8
8
  subCommands: {
9
- search: () => import("./search-VsAp96Co.mjs").then((m) => m.default),
10
- docs: () => import("./docs-BpowF7jz.mjs").then((m) => m.default),
11
- doc: () => import("./doc-CrY6qNkG.mjs").then((m) => m.default),
12
- "doc-content": () => import("./doc-content-YKxaMDEp.mjs").then((m) => m.default)
9
+ search: () => import("./search-lKk-wiFN.mjs").then((m) => m.default),
10
+ docs: () => import("./docs-Ce4TkZeo.mjs").then((m) => m.default),
11
+ doc: () => import("./doc-BsRn2TaX.mjs").then((m) => m.default),
12
+ "doc-content": () => import("./doc-content-DMF-a4YC.mjs").then((m) => m.default)
13
13
  }
14
14
  });
15
15
  //#endregion
@@ -1,5 +1,5 @@
1
1
  import { o as resolveConfig } from "./device-flow-j10PFOQL.mjs";
2
- import { t as xbApiFetch } from "./api-client-JrgUZpe8.mjs";
2
+ import { t as xbApiFetch } from "./api-client-BebyDye_.mjs";
3
3
  import { n as requireActiveProject } from "./project-store-CudTRvbA.mjs";
4
4
  import { t as tenantProjectHeaders } from "./headers-Dy5gROBB.mjs";
5
5
  import { n as writeResult, t as writeError } from "./format-DfVypHID.mjs";
@@ -1,5 +1,5 @@
1
1
  import { o as resolveConfig } from "./device-flow-j10PFOQL.mjs";
2
- import { t as xbApiFetch } from "./api-client-JrgUZpe8.mjs";
2
+ import { t as xbApiFetch } from "./api-client-BebyDye_.mjs";
3
3
  import { n as requireActiveProject } from "./project-store-CudTRvbA.mjs";
4
4
  import { t as tenantProjectHeaders } from "./headers-Dy5gROBB.mjs";
5
5
  import { n as writeResult, t as writeError } from "./format-DfVypHID.mjs";
@@ -1,5 +1,5 @@
1
1
  import { o as resolveConfig } from "./device-flow-j10PFOQL.mjs";
2
- import { t as xbApiFetch } from "./api-client-JrgUZpe8.mjs";
2
+ import { t as xbApiFetch } from "./api-client-BebyDye_.mjs";
3
3
  import { n as requireActiveProject } from "./project-store-CudTRvbA.mjs";
4
4
  import { t as tenantProjectHeaders } from "./headers-Dy5gROBB.mjs";
5
5
  import { n as writeResult, t as writeError } from "./format-DfVypHID.mjs";
@@ -1,5 +1,5 @@
1
1
  import { o as resolveConfig } from "./device-flow-j10PFOQL.mjs";
2
- import { t as xbApiFetch } from "./api-client-JrgUZpe8.mjs";
2
+ import { t as xbApiFetch } from "./api-client-BebyDye_.mjs";
3
3
  import { n as requireActiveProject } from "./project-store-CudTRvbA.mjs";
4
4
  import { t as tenantProjectHeaders } from "./headers-Dy5gROBB.mjs";
5
5
  import { n as writeResult, t as writeError } from "./format-DfVypHID.mjs";
@@ -1,5 +1,5 @@
1
1
  import { o as resolveConfig } from "./device-flow-j10PFOQL.mjs";
2
- import { t as xbApiFetch } from "./api-client-JrgUZpe8.mjs";
2
+ import { t as xbApiFetch } from "./api-client-BebyDye_.mjs";
3
3
  import { n as requireActiveProject } from "./project-store-CudTRvbA.mjs";
4
4
  import { t as tenantProjectHeaders } from "./headers-Dy5gROBB.mjs";
5
5
  import { n as writeResult, t as writeError } from "./format-DfVypHID.mjs";
@@ -1,5 +1,5 @@
1
1
  import { o as resolveConfig } from "./device-flow-j10PFOQL.mjs";
2
- import { t as xbApiFetch } from "./api-client-JrgUZpe8.mjs";
2
+ import { t as xbApiFetch } from "./api-client-BebyDye_.mjs";
3
3
  import { n as requireActiveProject } from "./project-store-CudTRvbA.mjs";
4
4
  import { t as tenantProjectHeaders } from "./headers-Dy5gROBB.mjs";
5
5
  import { n as writeResult, t as writeError } from "./format-DfVypHID.mjs";
@@ -1,5 +1,5 @@
1
1
  import { o as resolveConfig } from "./device-flow-j10PFOQL.mjs";
2
- import { t as xbApiFetch } from "./api-client-JrgUZpe8.mjs";
2
+ import { t as xbApiFetch } from "./api-client-BebyDye_.mjs";
3
3
  import { n as requireActiveProject } from "./project-store-CudTRvbA.mjs";
4
4
  import { t as tenantProjectHeaders } from "./headers-Dy5gROBB.mjs";
5
5
  import { n as writeResult, t as writeError } from "./format-DfVypHID.mjs";
@@ -1,5 +1,5 @@
1
1
  import { o as resolveConfig } from "./device-flow-j10PFOQL.mjs";
2
- import { t as xbApiFetch } from "./api-client-JrgUZpe8.mjs";
2
+ import { t as xbApiFetch } from "./api-client-BebyDye_.mjs";
3
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
@@ -1,5 +1,5 @@
1
1
  import { o as resolveConfig } from "./device-flow-j10PFOQL.mjs";
2
- import { t as xbApiFetch } from "./api-client-JrgUZpe8.mjs";
2
+ import { t as xbApiFetch } from "./api-client-BebyDye_.mjs";
3
3
  import { n as requireActiveProject } from "./project-store-CudTRvbA.mjs";
4
4
  import { t as tenantProjectHeaders } from "./headers-Dy5gROBB.mjs";
5
5
  import { n as writeResult, t as writeError } from "./format-DfVypHID.mjs";
@@ -1,4 +1,4 @@
1
- import { t as defineBeautxCommand } from "./shared-DtIllnrz.mjs";
1
+ import { t as defineBeautxCommand } from "./shared-YIhF_DTb.mjs";
2
2
  //#region src/commands/beautx/plan.ts
3
3
  var plan_default = defineBeautxCommand({
4
4
  name: "plan",
@@ -6,8 +6,8 @@ var portrait_default = defineCommand({
6
6
  description: "客户画像分布:字段清单(list) / 单字段饼图(get)(按画像筛客户用 customer list --portrait)"
7
7
  },
8
8
  subCommands: {
9
- list: () => import("./list-D3P2E5vT.mjs").then((m) => m.default),
10
- get: () => import("./get-Cvl1PgHr.mjs").then((m) => m.default)
9
+ list: () => import("./list-BpbZHSO4.mjs").then((m) => m.default),
10
+ get: () => import("./get-DcMz2swt.mjs").then((m) => m.default)
11
11
  }
12
12
  });
13
13
  //#endregion
@@ -1,4 +1,4 @@
1
- import { t as defineBeautxCommand } from "./shared-DtIllnrz.mjs";
1
+ import { t as defineBeautxCommand } from "./shared-YIhF_DTb.mjs";
2
2
  //#region src/commands/beautx/portrait-tags.ts
3
3
  var portrait_tags_default = defineBeautxCommand({
4
4
  name: "portrait-tags",
@@ -6,7 +6,7 @@ var project_default = defineCommand({
6
6
  description: "查询 / 切换激活项目"
7
7
  },
8
8
  subCommands: {
9
- list: () => import("./list-Bu9oehY8.mjs").then((m) => m.default),
9
+ list: () => import("./list-OvrNUjM8.mjs").then((m) => m.default),
10
10
  use: () => import("./use-rAR4OVC7.mjs").then((m) => m.default),
11
11
  current: () => import("./current-ABh6R3vp.mjs").then((m) => m.default)
12
12
  }
@@ -1,5 +1,5 @@
1
1
  import { o as resolveConfig } from "./device-flow-j10PFOQL.mjs";
2
- import { t as xbApiFetch } from "./api-client-JrgUZpe8.mjs";
2
+ import { t as xbApiFetch } from "./api-client-BebyDye_.mjs";
3
3
  import { n as requireActiveProject } from "./project-store-CudTRvbA.mjs";
4
4
  import { t as tenantProjectHeaders } from "./headers-Dy5gROBB.mjs";
5
5
  import { n as writeResult, t as writeError } from "./format-DfVypHID.mjs";
@@ -1,5 +1,5 @@
1
1
  import { o as resolveConfig } from "./device-flow-j10PFOQL.mjs";
2
- import { t as xbApiFetch } from "./api-client-JrgUZpe8.mjs";
2
+ import { t as xbApiFetch } from "./api-client-BebyDye_.mjs";
3
3
  import { n as requireActiveProject } from "./project-store-CudTRvbA.mjs";
4
4
  import { t as tenantProjectHeaders } from "./headers-Dy5gROBB.mjs";
5
5
  import { n as writeResult, t as writeError } from "./format-DfVypHID.mjs";
@@ -5,7 +5,7 @@ var resistance_default = defineCommand({
5
5
  name: "resistance",
6
6
  description: "客户抗性点标签分页查询"
7
7
  },
8
- subCommands: { list: () => import("./list-BvZ0SnDf.mjs").then((m) => m.default) }
8
+ subCommands: { list: () => import("./list-B2gkaQQF.mjs").then((m) => m.default) }
9
9
  });
10
10
  //#endregion
11
11
  export { resistance_default as default };
@@ -1,5 +1,5 @@
1
1
  import { o as resolveConfig } from "./device-flow-j10PFOQL.mjs";
2
- import { t as xbApiFetch } from "./api-client-JrgUZpe8.mjs";
2
+ import { t as xbApiFetch } from "./api-client-BebyDye_.mjs";
3
3
  import { t as loadActiveProject } from "./project-store-CudTRvbA.mjs";
4
4
  import { t as tenantProjectHeaders } from "./headers-Dy5gROBB.mjs";
5
5
  import { n as writeResult, t as writeError } from "./format-DfVypHID.mjs";
@@ -1,5 +1,5 @@
1
1
  import { o as resolveConfig } from "./device-flow-j10PFOQL.mjs";
2
- import { t as xbApiFetch } from "./api-client-JrgUZpe8.mjs";
2
+ import { t as xbApiFetch } from "./api-client-BebyDye_.mjs";
3
3
  import { n as requireActiveProject } from "./project-store-CudTRvbA.mjs";
4
4
  import { t as tenantProjectHeaders } from "./headers-Dy5gROBB.mjs";
5
5
  import { n as writeResult, t as writeError } from "./format-DfVypHID.mjs";
@@ -1,5 +1,5 @@
1
1
  import { o as resolveConfig } from "./device-flow-j10PFOQL.mjs";
2
- import { t as xbApiFetch } from "./api-client-JrgUZpe8.mjs";
2
+ import { t as xbApiFetch } from "./api-client-BebyDye_.mjs";
3
3
  import { n as requireActiveProject } from "./project-store-CudTRvbA.mjs";
4
4
  import { t as tenantProjectHeaders } from "./headers-Dy5gROBB.mjs";
5
5
  import { n as writeResult, t as writeError } from "./format-DfVypHID.mjs";
@@ -1,5 +1,5 @@
1
1
  import { o as resolveConfig } from "./device-flow-j10PFOQL.mjs";
2
- import { t as xbApiFetch } from "./api-client-JrgUZpe8.mjs";
2
+ import { t as xbApiFetch } from "./api-client-BebyDye_.mjs";
3
3
  import { n as requireActiveProject } from "./project-store-CudTRvbA.mjs";
4
4
  import { t as tenantProjectHeaders } from "./headers-Dy5gROBB.mjs";
5
5
  import { n as writeResult, t as writeError } from "./format-DfVypHID.mjs";
@@ -1,5 +1,5 @@
1
1
  import { o as resolveConfig } from "./device-flow-j10PFOQL.mjs";
2
- import { t as xbApiFetch } from "./api-client-JrgUZpe8.mjs";
2
+ import { t as xbApiFetch } from "./api-client-BebyDye_.mjs";
3
3
  import { n as requireActiveProject } from "./project-store-CudTRvbA.mjs";
4
4
  import { t as tenantProjectHeaders } from "./headers-Dy5gROBB.mjs";
5
5
  import { n as writeResult, t as writeError } from "./format-DfVypHID.mjs";
@@ -1,5 +1,5 @@
1
1
  import { o as resolveConfig } from "./device-flow-j10PFOQL.mjs";
2
- import { t as xbApiFetch } from "./api-client-JrgUZpe8.mjs";
2
+ import { t as xbApiFetch } from "./api-client-BebyDye_.mjs";
3
3
  import { n as requireActiveProject } from "./project-store-CudTRvbA.mjs";
4
4
  import { t as tenantProjectHeaders } from "./headers-Dy5gROBB.mjs";
5
5
  import { n as writeResult, t as writeError } from "./format-DfVypHID.mjs";
@@ -1,5 +1,5 @@
1
1
  import { o as resolveConfig } from "./device-flow-j10PFOQL.mjs";
2
- import { t as xbApiFetch } from "./api-client-JrgUZpe8.mjs";
2
+ import { t as xbApiFetch } from "./api-client-BebyDye_.mjs";
3
3
  import { t as loadActiveProject } from "./project-store-CudTRvbA.mjs";
4
4
  import { t as tenantProjectHeaders } from "./headers-Dy5gROBB.mjs";
5
5
  import { n as writeResult, t as writeError } from "./format-DfVypHID.mjs";
@@ -6,8 +6,8 @@ var visit_default = defineCommand({
6
6
  description: "客户来访分页查询 / 来访接待总结"
7
7
  },
8
8
  subCommands: {
9
- list: () => import("./list-BZVeH1P0.mjs").then((m) => m.default),
10
- summary: () => import("./summary-CF2uhuE3.mjs").then((m) => m.default)
9
+ list: () => import("./list-CNUQBB2l.mjs").then((m) => m.default),
10
+ summary: () => import("./summary-CknPAx7J.mjs").then((m) => m.default)
11
11
  }
12
12
  });
13
13
  //#endregion
@@ -1,4 +1,4 @@
1
- import { t as defineBeautxCommand } from "./shared-DtIllnrz.mjs";
1
+ import { t as defineBeautxCommand } from "./shared-YIhF_DTb.mjs";
2
2
  //#region src/commands/beautx/visit-evaluate.ts
3
3
  var visit_evaluate_default = defineBeautxCommand({
4
4
  name: "visit-evaluate",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@puyinkai/xiaobao-cli",
3
- "version": "0.6.1",
3
+ "version": "0.6.2",
4
4
  "description": "旺小宝 CLI — host-agnostic 业务数据 / 问数 / 来访总结 / 知识库 能力 (openclaw-xiaobao plugin 的 CLI 等价物)",
5
5
  "type": "module",
6
6
  "bin": {