@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
@@ -0,0 +1,42 @@
1
+ ---
2
+ name: wangxiaobao-beautx
3
+ version: 0.1.0
4
+ description: "旺小宝医美(beautx)业务查询:变美计划(beautx plan,报告分组/面诊医生/复诊时间)、成交分析(beautx deal-analysis,成交状态/未成交点/原因)、来访画像标签(beautx portrait-tags,维度→命中标签)、接诊评价(beautx visit-evaluate,总分+5 项能力分与建议)。只读、共用筛选(--visit-ids/--customer-ids/--beautx-customer-ids/--from/--to/分页)。高频命令: xiaobao-cli beautx plan|deal-analysis|portrait-tags|visit-evaluate [--customer-ids <csv>] [--from <t>] [--to <t>]。何时用:医美项目用户问 某客户变美计划、为什么没成交/未成交点分布、接诊评价得分、来访画像标签。注:仅医美业态项目有数据,地产项目返回空列表是正常;地产的来访/客户/画像走 visit/customer/portrait 命令。"
5
+ metadata:
6
+ requires:
7
+ bins: ["xiaobao-cli"]
8
+ cliHelp: "xiaobao-cli beautx --help"
9
+ ---
10
+
11
+ # 旺小宝医美(beautx)查询
12
+
13
+ > **CRITICAL** —— 跑命令前 MUST 先用 Read tool 读取 [`../wangxiaobao-shared/SKILL.md`](../wangxiaobao-shared/SKILL.md)。
14
+
15
+ ## 四个能力
16
+ | 命令 | 语义 | 特有参数 |
17
+ | --- | --- | --- |
18
+ | `beautx plan` | 变美计划报告(sections 分组 → items{reportTag,answer,evidence},面诊医生/复诊时间/消费内容) | `--latest-only` 每客户最新一条 |
19
+ | `beautx deal-analysis` | 成交分析(dealStatus、未成交分类/未成交点、reason/analysisResult) | `--latest-only` |
20
+ | `beautx portrait-tags` | 来访画像标签(dimensionTags[] 维度 → speechTags[] 命中标签值) | `--dimension` 维度名过滤 |
21
+ | `beautx visit-evaluate` | 接诊评价(totalScore/totalEvaluation + abilities[] 5 项能力分/评价/建议) | — |
22
+
23
+ 共用筛选:`--visit-ids` / `--customer-ids`(wang_id)/ `--beautx-customer-ids`(医美业务客户 ID)/ `--from` `--to` / `--page` `--size`。
24
+
25
+ ## 命令示例
26
+ ```bash
27
+ xiaobao-cli beautx plan --customer-ids <wang_id> --latest-only
28
+ xiaobao-cli beautx deal-analysis --from "2026-09-01 00:00:00" --to "2026-09-10 23:59:59"
29
+ xiaobao-cli beautx portrait-tags --visit-ids <visit_id> --dimension 肤质
30
+ xiaobao-cli beautx visit-evaluate --customer-ids <wang_id>
31
+ ```
32
+
33
+ ## 响应共性
34
+ 分页 `data.{page,size,total,content[]}`;每行都带 `visitId`、`customerId`(wang_id)、`customer`(简要:姓名/手机/意向)、`beautxCustomerId`、`userId/userName/userInfo`(**接待顾问**)、`visitTime`、`dealStatus`。按各命令再挂 sections/abilities/dimensionTags 等。
35
+
36
+ ## Agent 约束
37
+ - **仅医美业态**有数据:地产项目查询返回空列表是正常,不要报"接口挂了";用户在地产项目问来访/客户/画像 → 走 visit/customer/portrait 命令
38
+ - 按客户姓名查:先 `customer list --customer-name` 反查 wang_id
39
+ - 时间窗用 `xiaobao-cli date range` 取
40
+
41
+ ## 常见错误
42
+ - 空列表 → 非医美项目或范围内无数据;`NO_ACTIVE_PROJECT`/401 → 见 shared
@@ -0,0 +1,45 @@
1
+ ---
2
+ name: wangxiaobao-customer-portrait
3
+ version: 0.1.0
4
+ description: "旺小宝群体画像分布 + 客户字段字典:portrait list 取可用画像字段中文名;portrait get <字段> 取该字段饼图分布(count/items/rate);config fields 客户字段配置字典(解读 dynamic_tags 标签含义)。只读。高频命令: xiaobao-cli portrait list; xiaobao-cli portrait get <中文字段名> [--from <t>] [--to <t>]; xiaobao-cli config fields。何时用:用户问 一批客户/一段时间的 意向业态/面积/区域/性别/年龄 分布或饼图、画像有哪些字段、dynamic_tags 里标签什么意思。注:单个客户的标签走 visit summary;按画像筛客户走 customer list --portrait;禁止用 customer list 的 dynamicTags 手算分布、禁止拿 config fields 当分布数据源。"
5
+ metadata:
6
+ requires:
7
+ bins: ["xiaobao-cli"]
8
+ cliHelp: "xiaobao-cli portrait --help"
9
+ ---
10
+
11
+ # 旺小宝群体画像分布 + 字段字典
12
+
13
+ > **CRITICAL** —— 跑命令前 MUST 先用 Read tool 读取 [`../wangxiaobao-shared/SKILL.md`](../wangxiaobao-shared/SKILL.md)。
14
+
15
+ ## 路由优先级(必读)
16
+ 1. **一批来访/一段时间/一群客户**的画像**分布/饼图**(业态、面积、区域、性别、年龄…)→ **本 skill**:先 `portrait list` 再 `portrait get`
17
+ 2. **禁止**用 `customer list` 的 `dynamicTags` 本地聚合算分布;**禁止**拿 `config fields` 当分布数据源(它只是字段字典)
18
+ 3. **单个客户**的标签/接待记录 → `visit summary`(dynamicTags 仅兜底)
19
+ 4. 按画像**筛客户名单** → `customer list --portrait <关键词>`
20
+ 5. 意向级别 KPI → `quantum intent`;`quantum` 不覆盖业态/面积/区域等画像饼图
21
+
22
+ ## 命令
23
+ ```bash
24
+ # 1) 字段清单(get 只能用这里返回的中文名,不要猜)
25
+ xiaobao-cli portrait list
26
+ # 2) 单字段分布(一次一个字段;多字段多次调用;to 建议日末 23:59:59)
27
+ xiaobao-cli portrait get 意向业态 --from "2026-09-01 00:00:00" --to "2026-09-10 23:59:59"
28
+ xiaobao-cli portrait get 性别 --from "..." --to "..." --user-ids 123,456
29
+ # 3) 字段字典(解读 dynamic_tags 的 key 含义/格式/备注)
30
+ xiaobao-cli config fields --size 100
31
+ ```
32
+
33
+ ## 响应字段
34
+ - `portrait list`:`fieldNames[]`(可用中文名)+ `fields[]{fieldName,fieldCode,values[{value,name}]}`(分档 code→中文枚举)。空列表=项目未配置画像展示字段→向用户说明,**不要**回退手算。
35
+ - `portrait get`:`fieldName`、`count`(样本总数)、`items[]{name,count,rate}`(name 已映射为中文分档)、可选 `other`
36
+ - `config fields`(`data.content[]`):`fieldId`、`fieldName`(dynamic_tags 的 key 通常与此一致,不是 fieldCode)、`fieldFormat`(1 单值/2 多值/3 文本/4 百分比/5 时间/6 超链接/7 数字/8 多级单选/9 多级多选)、`remark`、`className`、`mappingFieldName`、`hasPanke`、`hasPortray`、`status`
37
+
38
+ ## Agent 约束
39
+ - 先 `portrait list` 再 `get`,不要猜字段名、不要传 fieldCode
40
+ - 解读 dynamicTags 或做画像字段筛选前,先 `config fields` 确认合法字段名,不要猜语义
41
+ - 时间窗用 `xiaobao-cli date range` 系列取
42
+
43
+ ## 常见错误
44
+ - `portrait get` 报字段不存在 → 字段名必须来自 `portrait list` 的 fieldNames
45
+ - 空分布 → 时间窗内无样本;`NO_ACTIVE_PROJECT`/401 → 见 shared
@@ -162,4 +162,4 @@ xiaobao-cli customer list --page 1 --size 1
162
162
  - **`total: 0`** — 时间窗口 / 过滤条件没匹配到,**或**当前用户授权范围为空
163
163
  (新人顾问刚入职 / 团队成员被移走等)
164
164
  - **顾问名找不到** — 不在当前用户授权可见范围内;不要硬调 list_customers 试
165
- - **画像匹配不准** — portrait 太长 / 太具体导致 LIKE 不命中;改短关键词
165
+ - **画像匹配不准** — portrait 太长 / 太具体导致 LIKE 不命中;改短关键词;不确定项目有哪些画像字段/标签时先 `xiaobao-cli config fields` 查字段字典(解读 dynamic_tags 的 key 含义)
@@ -0,0 +1,45 @@
1
+ ---
2
+ name: wangxiaobao-follow-query
3
+ version: 0.1.0
4
+ description: "旺小宝旺跟进查询:跟进明细分页(follow list,谁/何时/以什么方式跟进了哪个客户,含通话时长/消息条数)+ 电话/微信指标汇总(follow summary,呼入呼出接通率/通话时长/微信消息数)。只读。高频命令: xiaobao-cli follow list [--user-ids <csv>] [--customer-ids <csv>] [--from <t>] [--to <t>]; xiaobao-cli follow summary [同筛选]。何时用:用户问 今天/本周跟进了哪些客户、某顾问跟进明细、某客户跟进历史、电话呼出接通率、微信跟进消息数。注:聚合统计卡片(跟进量 rank/team/time KPI)走 quantum follow,不是这里;明细行不含客户姓名,收集 wangId 后用 customer list --customer-ids 补。"
5
+ metadata:
6
+ requires:
7
+ bins: ["xiaobao-cli"]
8
+ cliHelp: "xiaobao-cli follow --help"
9
+ ---
10
+
11
+ # 旺小宝旺跟进(明细 + 电话/微信汇总)
12
+
13
+ > **CRITICAL** —— 跑命令前 MUST 先用 Read tool 读取 [`../wangxiaobao-shared/SKILL.md`](../wangxiaobao-shared/SKILL.md)(登录 / 激活项目 / 错误码 / 输出协议)。
14
+
15
+ ## 分工(先选对工具)
16
+ | 用户问法 | 用什么 |
17
+ | --- | --- |
18
+ | 跟进明细名单(谁/何时/方式/内容量) | `follow list`(本 skill) |
19
+ | 电话接通率 / 呼出时长 / 微信消息数 | `follow summary`(本 skill) |
20
+ | 跟进量排名 / 团队对比 / 时间趋势 KPI | `quantum follow`(wangxiaobao-quantum-stats) |
21
+
22
+ ## 命令
23
+ ```bash
24
+ # 今天的跟进明细(时间窗先用 date range today 拿,不要凭记忆填日期)
25
+ xiaobao-cli follow list --from "2026-09-10 00:00:00" --to "2026-09-11 00:00:00"
26
+ # 某顾问 / 某客户
27
+ xiaobao-cli follow list --user-ids 123,456 --page 1 --size 10
28
+ xiaobao-cli follow list --customer-ids 639431065898848256
29
+ # 汇总指标(同筛选,不分页)
30
+ xiaobao-cli follow summary --from "2026-09-08 00:00:00" --to "2026-09-11 00:00:00"
31
+ ```
32
+ 参数:`--user-ids` 跟进人 userId CSV(只在当前用户可见范围内生效);`--customer-ids` 客户 wang_id CSV;`--from/--to` 可只传一侧,格式 `yyyy-MM-dd HH:mm:ss`。
33
+
34
+ ## 响应字段
35
+ - `follow list`(`data.content[]`):`followId`、`wangId`(**无姓名**→用 `customer list --customer-ids` 补)、`salesId`、`followType/Label`(0 主动/1 被动)、`followMethod/Label`(0 电话/1 短信/2 微信/3 微信通话/4 企微/5 企微通话)、`actionTime`、`customerPhone`、`followerName/Phone`(可空)、`callDurationSec`、`smsCount`、`wechatMsgCount`
36
+ - `follow summary`:`phoneInboundCount/ConnectedCount/ConnectRate`、`phoneOutboundCount/ConnectedCount/ConnectRate`、`phoneOutboundDurationMinutes/AvgDurationMinutes`、`wechatCallCount`、`wechatMessageCount`(接通率分母 0 时为 null)
37
+
38
+ ## Agent 约束
39
+ - 用户未明确问跟进/电话/微信触达时,**不要**主动调本命令
40
+ - 跟进量 KPI 禁止用 `follow list` 翻页数 total——用 `follow summary` 或 `quantum follow`
41
+ - 按客户姓名查:先 `customer list --customer-name` 反查 wang_id 再 `--customer-ids`
42
+ - 时间窗用 `xiaobao-cli date range today|this-week` 等取,禁止凭记忆算日期
43
+
44
+ ## 常见错误
45
+ - `NO_ACTIVE_PROJECT` → 先切项目;401 → 重登;空列表 → 时间窗/范围内确实无跟进(不是 bug)
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: wangxiaobao-knowledge-base
3
3
  version: 0.1.0
4
- description: "旺小宝项目知识库:语义检索项目知识 chunk(kb search)、列文档(kb docs)、看文档详情(kb doc)、分页读文档正文(kb doc-content)。search/docs 按当前激活项目隔离;doc/doc-content 按 docId 直取。只读、无副作用。高频命令: xiaobao-cli kb search '<query>' [--k N]; xiaobao-cli kb docs [--title <kw>]; xiaobao-cli kb doc <doc-id>; xiaobao-cli kb doc-content <doc-id> [--offset N] [--limit N]。何时用:用户问项目资料/楼盘知识/销售政策/户型文档/物料/知识库里有没有讲过X/某文档具体写了啥/帮我查下资料。注:search 返回 chunk 不是全文,要逐段读全文用 doc-content 翻页(看 hasMore 续翻);k 默认 5 上限 20;要业务数据问数走 quick-qa,不是这里。"
4
+ description: "旺小宝项目知识库:语义检索项目知识 chunk(kb search)、列文档(kb docs)、看文档详情(kb doc)、分页读文档正文(kb doc-content)。search/docs 按当前激活项目隔离;doc/doc-content 按 docId 直取。只读、无副作用。高频命令: xiaobao-cli kb search '<query>' [--k N]; xiaobao-cli kb docs [--title <kw>]; xiaobao-cli kb doc <doc-id>; xiaobao-cli kb doc-content <doc-id> [--offset N] [--limit N]。何时用:用户问项目资料/楼盘知识/销售政策/户型文档/物料/知识库里有没有讲过X/某文档具体写了啥/帮我查下资料。注:search 返回 chunk 不是全文,要逐段读全文用 doc-content 翻页(看 hasMore 续翻);k 默认 5 上限 20"
5
5
  metadata:
6
6
  requires:
7
7
  bins: ["xiaobao-cli"]
@@ -47,8 +47,10 @@ metadata:
47
47
  3. **团队最高挖需率** → `quantum demand-card --view team`。
48
48
  4. **首访/复访/三访+** → `--visit-type first|second|third_more`(不传 ≠ 已选某 Tab,可能混合或未过滤)。
49
49
  5. **客户数维度** → `--stat-dimension customer_num`(来访默认 `visit_times`、跟进默认 `follow_times`;别一看到「客户数」就误用)。
50
- 6. **意向复核后数据** `--intent-dimension review`(默认 `ai`)。
50
+ 6. **意向口径默认 review(复核后数据)**:日常汇报/统计用 `--intent-dimension review`;用户明确说「AI 智能评级」才传 `ai`。
51
51
  7. **visit-timer 的 team/date 下钻** → 必填 `--interval-start/--interval-end`(分桶:0/30/60/120 → 30/60/120/1000 分钟)。
52
+ 8. **顾问维度指标**:销讲执行率(`pin-talk`)、挖需执行率(`demand-card`)、工作表现(`job-performance`)、工作质量(`work-quality`)、接访时长(`visit-timer`)等统计的都是**接待顾问(置业顾问)**的表现——`rank/user` 视图按顾问、`team` 视图按顾问团队聚合,不是客户维度。
53
+ 9. **路由**:群体画像分布(业态/面积/区域…饼图)优先 `portrait get`;单客户标签优先 `visit summary`;`customer list` 的 dynamic_tags 最低优先,禁止拿它手算分布。
52
54
 
53
55
  ## 响应
54
56
  统一 `Result<Object>`,`data` 结构**随 metric/view 变化**(列表 / 嵌套 / 汇总都可能)。CLI 再包一层 → 读 `resp.data.data`。**按实际返回展示,不要假设固定结构、不要硬解析**。默认 `--format toon` 省 token;要严格 JSON 加 `--format json`。
@@ -29,7 +29,7 @@
29
29
  | `special-visit` | 特殊来访标签卡(有效/无效 visitLabel 分布) | view: `summary\|user` | ⚠️ H5「特殊到访组数/排名」**不用这个**,用 `visit --visit-type special` |
30
30
  | `month-report` | 月报 | mode: `query`(默认)`\|find` | — |
31
31
  | `deal` | 成交统计 | view: `status`(默认)`\|team\|user\|period` | `team`=各团队 count/total/rate;`--deal-status` 默认 `1,2,3` |
32
- | `intent` | 意向统计 | view: `level`(默认,全项目级别分布)`\|team\|user\|period` | `team/user/period` 须 `--intent-level A\|B\|C\|D\|E`;`--intent-dimension review\|ai`(默认 ai);`--direction left\|right`(period 翻页) |
32
+ | `intent` | 意向统计 | view: `level`(默认,全项目级别分布)`\|team\|user\|period` | `team/user/period` 须 `--intent-level A\|B\|C\|D\|E`;`--intent-dimension review`(默认,复核后数据)`\|ai`(用户明确说 AI 评级才用);`--direction left\|right`(period 翻页) |
33
33
  | `pin-talk` | 销讲执行率 | view: `summary\|visit_status\|team\|user\|dimension\|speech\|models` | `--visit-type first\|second\|third_more`;`--model-id/--dimension-id/--speech-id` 下钻 |
34
34
  | `demand-card` | 挖需执行率卡片 | view: `summary\|visit_status\|team\|user\|dimension\|speech` | `--visit-type first\|second\|third_more\|all`;团队最高挖需率用 `--view team` |
35
35
  | `rhetoric` | 说辞统计 | 无 view(默认汇总) | — |
@@ -40,4 +40,5 @@
40
40
  - 团队最高挖需率 → `demand-card --view team`。
41
41
  - 首访/复访/三访+ → `--visit-type first|second|third_more`。
42
42
  - 「客户数」口径 → `--stat-dimension customer_num`(默认是 visit_times / follow_times)。
43
- - 意向复核后 `--intent-dimension review`(默认 ai)。
43
+ - 意向口径默认 `review`(复核后数据);用户明确说「AI 智能评级」才 `--intent-dimension ai`。
44
+ - pin-talk / demand-card / job-performance / work-quality / visit-timer 等均为**接待顾问(置业顾问)维度**的表现统计(rank/user 按顾问、team 按顾问团队)。
@@ -156,7 +156,7 @@ openclaw 的副本(保留 plugin session 完整性)。`auth logout` 例外
156
156
  ## 数据权限隔离
157
157
 
158
158
  `audio list` / `customer list` / `visit list` / `visit summary` / `focus list` /
159
- `resistance list` / `consultant list` / `qa` / `quantum` 所有业务命令的后端都按**当前登录用户的授权范围**过滤数据:
159
+ `resistance list` / `consultant list` / `qa` / `quantum` / `follow *` / `portrait *` / `beautx *` 所有业务命令的后端都按**当前登录用户的授权范围**过滤数据:
160
160
 
161
161
  - 普通顾问:只看自己名下
162
162
  - 团队长:看本团队
@@ -169,6 +169,10 @@ openclaw 的副本(保留 plugin session 完整性)。`auth logout` 例外
169
169
  返回该项目知识,不按顾问授权范围细分;`kb doc` / `kb doc-content` 按 docId 直取。
170
170
  知识库面向全项目,不存在"看不到别人名下"的概念。
171
171
 
172
+ **本地工具 —— `date *` 不走网络**:`date now/today/yesterday/weekday/add/diff/range today|yesterday|this-week|this-month|last-7-days|today-so-far`
173
+ 纯本地计算(默认时区 Asia/Shanghai)。所有需要时间窗的命令(visit/follow/quantum/portrait…)**先用它取 from/to**,
174
+ 禁止凭记忆推算日期。
175
+
172
176
  **例外 —— `admin *`(super-admin 经营报表)**:`admin sales-report` / `admin token-usage`
173
177
  是**公司级**数据(经营出库/回款、LLM token 用量),**不需要激活项目**,且走**独立白名单**
174
178
  (与上面按顾问授权的隔离无关;名单为空 = 全拒)。不在名单会收到
File without changes