@puyinkai/xiaobao-cli 0.1.8 → 0.1.10
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.
- package/dist/{api-client-zDBFgk0y.mjs → api-client-CDNjkArS.mjs} +1 -1
- package/dist/{api-CX99_4K7.mjs → api-fsHHWWa3.mjs} +1 -1
- package/dist/{audio-ShfvRomP.mjs → audio-CRSMqaKo.mjs} +2 -2
- package/dist/{auth-DpK81Vp5.mjs → auth-B4Yeoxae.mjs} +2 -2
- package/dist/cli.mjs +10 -10
- package/dist/{consultant-CS9B42d3.mjs → consultant-E33hTGUO.mjs} +1 -1
- package/dist/{customer-B1cxRbJ9.mjs → customer-DcQ83oKD.mjs} +1 -1
- package/dist/{focus-DfNPPhm5.mjs → focus-XMRxnHPw.mjs} +1 -1
- package/dist/{list-DI1OD95x.mjs → list-B3nN4pd2.mjs} +1 -1
- package/dist/{list-CD08BRLk.mjs → list-CXquxzex.mjs} +1 -1
- package/dist/{list-CKlx8YuL.mjs → list-Cc4zcaNz.mjs} +1 -1
- package/dist/{list-DCcCS6LM.mjs → list-CnlQdzPp.mjs} +1 -1
- package/dist/{list-D56gEqiB.mjs → list-CrMOrnS-.mjs} +1 -1
- package/dist/{list-CnlFIFiY.mjs → list-DFdDcHFq.mjs} +1 -1
- package/dist/{list-Cu6WzPpA.mjs → list-dm9YaCG1.mjs} +1 -1
- package/dist/{login-CUUcjWPd.mjs → login-EtQi30zd.mjs} +2 -1
- package/dist/{project-BuQQewOs.mjs → project-BD0g4oAW.mjs} +1 -1
- package/dist/{qa-CKsKiQIm.mjs → qa-CdMcxCE_.mjs} +1 -1
- package/dist/{resistance-DsE-Ha6Y.mjs → resistance-6_V6At3T.mjs} +1 -1
- package/dist/{text-C3jhdPoe.mjs → text-C3Ap6L5n.mjs} +1 -1
- package/dist/{visit-CX0Mc1n6.mjs → visit-DoeECi8w.mjs} +1 -1
- package/dist/{whoami-CZVez-rm.mjs → whoami-z-76WaCP.mjs} +1 -1
- package/package.json +5 -1
- package/skills/wangxiaobao-audio-query/SKILL.md +2 -2
- package/skills/wangxiaobao-audio-wiki/SKILL.md +4 -4
- package/skills/wangxiaobao-customer-focus-query/SKILL.md +2 -2
- package/skills/wangxiaobao-customer-query/SKILL.md +2 -2
- package/skills/wangxiaobao-customer-resistance-query/SKILL.md +2 -2
- package/skills/wangxiaobao-html-to-pdf/SKILL.md +116 -0
- package/skills/wangxiaobao-html-to-pdf/scripts/html2pdf.py +132 -0
- package/skills/wangxiaobao-html-to-pdf/scripts/html2pdf_exact.py +92 -0
- package/skills/wangxiaobao-project-daily-report/SKILL.md +170 -0
- package/skills/wangxiaobao-project-daily-report/_meta.json +9 -0
- package/skills/wangxiaobao-project-daily-report/references/report_template.html +308 -0
- package/skills/wangxiaobao-project-daily-report/scripts/fetch_data.py +219 -0
- package/skills/wangxiaobao-project-daily-report/scripts/generate_report.py +1029 -0
- package/skills/wangxiaobao-project-daily-report/scripts/run.py +34 -0
- package/skills/wangxiaobao-project-weekly-report/SKILL.md +169 -0
- package/skills/wangxiaobao-project-weekly-report/scripts/generate_report.py +308 -0
- package/skills/wangxiaobao-project-weekly-report/scripts/html2pdf_fast.py +161 -0
- package/skills/wangxiaobao-project-weekly-report/scripts/logo_wangai.png +0 -0
- package/skills/wangxiaobao-project-weekly-report/scripts/logo_wangxiaobao.png +0 -0
- package/skills/wangxiaobao-project-weekly-report/scripts/prepare_data.py +682 -0
- package/skills/wangxiaobao-project-weekly-report/scripts/template.py +925 -0
- package/skills/wangxiaobao-quick-qa/SKILL.md +2 -2
- package/skills/wangxiaobao-shared/SKILL.md +10 -8
- package/skills/wangxiaobao-switch-project/SKILL.md +3 -3
- package/skills/wangxiaobao-visit-query/SKILL.md +2 -2
|
@@ -17,7 +17,7 @@ metadata:
|
|
|
17
17
|
|
|
18
18
|
## 执行前必读
|
|
19
19
|
|
|
20
|
-
- 必须有有效 token:先调 `xiaobao-cli auth whoami`;未登录 /
|
|
20
|
+
- 必须有有效 token:先调 `xiaobao-cli auth whoami`;未登录 / 过期就走 `auth login --no-wait` split-flow(见 wangxiaobao-shared)
|
|
21
21
|
- **必须有激活项目**:命令内部自动从激活项目状态读 tenant/project,
|
|
22
22
|
调用方**不要传** tenant/project 参数。如果 命令 返回
|
|
23
23
|
`error: 'NO_ACTIVE_PROJECT'`,让用户跑 `wangxiaobao-switch-project` skill
|
|
@@ -178,7 +178,7 @@ xiaobao-cli qa "评估一下客户 12345 的成交概率,相关录音 audioId:
|
|
|
178
178
|
|
|
179
179
|
- **`error: 'NO_ACTIVE_PROJECT'`** — 还没设过激活项目 → 跑
|
|
180
180
|
`wangxiaobao-switch-project` skill 后重试
|
|
181
|
-
- **401 / token 过期** —
|
|
181
|
+
- **401 / token 过期** — 走 `auth login --no-wait --force` split-flow 重登,重试一次
|
|
182
182
|
- **响应耗时 > 30 分钟** — 后端慢到打满 CLI timeout → 告诉用户"上游慢,稍后重试"
|
|
183
183
|
- **answer 为空** — 上游这一轮没产出最终文本 → 让用户换个 prompt 重试
|
|
184
184
|
- **用户想"批量出报告"** — 拦住:本期 CLI 没有报告生成 skill,
|
|
@@ -53,13 +53,15 @@ xiaobao-cli customer list --portrait 高意向
|
|
|
53
53
|
# 步骤 A:发起,立即返回(约 0.5s),拿到 verification_uri
|
|
54
54
|
xiaobao-cli auth login --no-wait
|
|
55
55
|
# stdout: { "awaiting_authorization": true, "verification_uri": "...",
|
|
56
|
+
# "verification_link": "[点击完成旺小宝登录授权](https://...)",
|
|
56
57
|
# "user_code": "...", "expires_in": 300, "interval": 5, ... }
|
|
57
58
|
# device_code 不在 stdout —— 已安全存到 ~/.xiaobao/pending-auth.json(0600)
|
|
58
59
|
```
|
|
59
60
|
|
|
60
|
-
agent 拿到后:把 `
|
|
61
|
-
|
|
62
|
-
|
|
61
|
+
agent 拿到后:把 stdout 里的 `verification_link` 字段**原样**发给用户 —— 它
|
|
62
|
+
已经是 markdown 可点击链接 `[点击完成旺小宝登录授权](https://...)`,直接粘进
|
|
63
|
+
回复正文(**不要**放进代码块 —— 代码块里链接不可点击),用户点一下即可在浏览器
|
|
64
|
+
打开授权。**不要**改写链接、不要做 URL 编码。发完**结束本轮**,把控制权交还用户。
|
|
63
65
|
|
|
64
66
|
```bash
|
|
65
67
|
# 步骤 B:用户回复"授权完成"后,直接换 token(秒级)——
|
|
@@ -118,12 +120,12 @@ Agent 消费时**只 parse stdout JSON**,stderr 是辅助。
|
|
|
118
120
|
|
|
119
121
|
### 常见错误码
|
|
120
122
|
|
|
121
|
-
| code | 触发场景 | hint 内 actionable 命令
|
|
122
|
-
| --- | ---
|
|
123
|
-
| `NOT_AUTHENTICATED` | 未登录 / token 过期且 refresh_token 也失效 | `xiaobao-cli auth login
|
|
124
|
-
| `NO_ACTIVE_PROJECT` | 没设激活项目就跑了需要 tenant/project 的命令 | `xiaobao-cli project list` + `xiaobao-cli project use ...`
|
|
123
|
+
| code | 触发场景 | hint 内 actionable 命令 |
|
|
124
|
+
| --- | --- |---------------------------------------------------------------|
|
|
125
|
+
| `NOT_AUTHENTICATED` | 未登录 / token 过期且 refresh_token 也失效 | `xiaobao-cli auth login --no-wait`(split-flow,见上方登录段) |
|
|
126
|
+
| `NO_ACTIVE_PROJECT` | 没设激活项目就跑了需要 tenant/project 的命令 | `xiaobao-cli project list` + `xiaobao-cli project use ...` |
|
|
125
127
|
| `API_ERROR` | 上游 ai-open / saas API 返非 2xx | 看 `details.status` 和 `details.body`,可能 token scope 不够 / 上游临时挂 |
|
|
126
|
-
| `BAD_METHOD` | `api` 命令传错 HTTP method | 用 GET / POST / PUT / PATCH / DELETE
|
|
128
|
+
| `BAD_METHOD` | `api` 命令传错 HTTP method | 用 GET / POST / PUT / PATCH / DELETE |
|
|
127
129
|
|
|
128
130
|
遇到 `NOT_AUTHENTICATED` 或 `NO_ACTIVE_PROJECT` 时**立即按 hint 走**,不要追问用户。
|
|
129
131
|
|
|
@@ -17,7 +17,7 @@ metadata:
|
|
|
17
17
|
|
|
18
18
|
## 执行前必读
|
|
19
19
|
|
|
20
|
-
-
|
|
20
|
+
- 必须先走 `auth login --no-wait` split-flow 完成 OAuth 登录(见 wangxiaobao-shared);token 没拿到时本 skill 不能继续
|
|
21
21
|
- **不要**自己 fs.writeFile 写 `.env` 或任何文件——状态落地走
|
|
22
22
|
`xiaobao-cli project use`,由 CLI 统一管理权限和路径
|
|
23
23
|
- 多个项目时**必须让用户挑**,绝对不要自动选择第一个;只有一个项目时才可以自动选
|
|
@@ -58,7 +58,7 @@ metadata:
|
|
|
58
58
|
或不带 keyword 看全量;**不要**直接说"没有项目"
|
|
59
59
|
- **没带 `--keyword`** → 账号确实没有可访问的项目,结束
|
|
60
60
|
|
|
61
|
-
如果 命令 报错(401 / token
|
|
61
|
+
如果 命令 报错(401 / token 过期等),先走 `auth login --no-wait --force` split-flow 重新登录,再重试一次。
|
|
62
62
|
|
|
63
63
|
### 第 2 步:展示并让用户选
|
|
64
64
|
|
|
@@ -146,7 +146,7 @@ tenant/project + `updatedAt`。如果用户问"现在是哪个项目""当前激
|
|
|
146
146
|
|
|
147
147
|
| 错误现象 | 根本原因 | 解决方案 |
|
|
148
148
|
|---|---|---|
|
|
149
|
-
| `xiaobao-cli project list` 返回 401 / token 过期 | 没登录或 refresh 失败 |
|
|
149
|
+
| `xiaobao-cli project list` 返回 401 / token 过期 | 没登录或 refresh 失败 | 走 `auth login --no-wait --force` split-flow 重登 |
|
|
150
150
|
| `count == 0`(没带 keyword) | 账号无任何租户/项目权限 | 让用户找管理员加权限,本 skill 不继续 |
|
|
151
151
|
| `count == 0`(带了 keyword) | 关键字没匹配到任何项目 | 换更短关键字 / 不带 keyword 看全量,别直接说"没项目" |
|
|
152
152
|
| 用户输入的编号超出范围 | 选错了 | 重新提示当前可选编号区间 |
|
|
@@ -16,7 +16,7 @@ metadata:
|
|
|
16
16
|
|
|
17
17
|
## 执行前必读
|
|
18
18
|
|
|
19
|
-
- 必须有有效 token:先调 `xiaobao-cli auth whoami
|
|
19
|
+
- 必须有有效 token:先调 `xiaobao-cli auth whoami`;未登录就走 `auth login --no-wait` split-flow(见 wangxiaobao-shared)
|
|
20
20
|
- **必须有激活项目**:命令内部自动读,缺失返回 `NO_ACTIVE_PROJECT`
|
|
21
21
|
- **数据权限隔离**:跟客户接口一样,按当前用户授权可见顾问范围过滤
|
|
22
22
|
- LocalDateTime 格式:`yyyy-MM-dd HH:mm:ss`(空格分隔),CLI 自动转
|
|
@@ -194,7 +194,7 @@ xiaobao-cli visit list --customer-id 1685535452481236993 --page 1 --size 5
|
|
|
194
194
|
## 常见错误与排查
|
|
195
195
|
|
|
196
196
|
- **`error: 'NO_ACTIVE_PROJECT'`** — 跑 `wangxiaobao-switch-project` skill
|
|
197
|
-
- **401 / token 过期** —
|
|
197
|
+
- **401 / token 过期** — 走 `auth login --no-wait --force` split-flow 重登
|
|
198
198
|
- **`total: 0`** — 时间窗内确实没数据,或当前用户授权范围内没有匹配的接待顾问
|
|
199
199
|
- **customerName 模糊但没匹到** — 客户名拼写差异("李女士" vs "李小姐");
|
|
200
200
|
改用 `xiaobao-cli customer list` 反查精确 customerId
|