@bty/customer-service-cli 0.3.2 → 0.3.3

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 (3) hide show
  1. package/README.md +13 -2
  2. package/dist/bin.js +40 -0
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -177,9 +177,20 @@ cs-cli --workspace ws-other agent list # ❌ 报错:CS_WORKSPACE_ID 已被
177
177
  ### 工作空间 (`workspace`)
178
178
 
179
179
 
180
- | 命令 | 说明 |
181
- | ---------------- | -------- |
180
+ | 命令 | 说明 |
181
+ | --- | --- |
182
182
  | `workspace list` | 列出所有工作空间 |
183
+ | `workspace points-consumes-daily [--start <YYYY-MM-DD>] [--end <YYYY-MM-DD>]` | 按天查询工作空间积分消耗(默认最近 30 天) |
184
+
185
+ `workspace points-consumes-daily` 需要可用的工作空间上下文(`--workspace`、本地 `.cs-cli.json` 或全局 `defaultWorkspaceId`)。
186
+
187
+ ```bash
188
+ # 查询最近 30 天(默认)
189
+ cs-cli workspace points-consumes-daily
190
+
191
+ # 指定日期范围(含 start/end)
192
+ cs-cli workspace points-consumes-daily --start 2026-04-01 --end 2026-04-23
193
+ ```
183
194
 
184
195
 
185
196
  ### Agent 管理 (`agent`)
package/dist/bin.js CHANGED
@@ -733,6 +733,17 @@ async function listWorkspaces() {
733
733
  const request = createRequest();
734
734
  return request(getCustomerServiceUrl(), "/v1/client/workspaces", { method: "GET" });
735
735
  }
736
+ async function getDailyDeduction(opts) {
737
+ const request = createRequest();
738
+ return request(
739
+ getCustomerServiceUrl(),
740
+ "/v1/workspace/points_consumes/daily_deduction",
741
+ {
742
+ method: "POST",
743
+ body: { start_time: opts.startTime, end_time: opts.endTime }
744
+ }
745
+ );
746
+ }
736
747
 
737
748
  // src/commands/config.ts
738
749
  function registerConfigCommand(program2) {
@@ -3066,6 +3077,13 @@ function registerSACommand(program2) {
3066
3077
  }
3067
3078
 
3068
3079
  // src/commands/workspace.ts
3080
+ var DATE_RE = /^\d{4}-\d{2}-\d{2}$/;
3081
+ function toISODate(d) {
3082
+ const yyyy = d.getFullYear();
3083
+ const mm = String(d.getMonth() + 1).padStart(2, "0");
3084
+ const dd = String(d.getDate()).padStart(2, "0");
3085
+ return `${yyyy}-${mm}-${dd}`;
3086
+ }
3069
3087
  function registerWorkspaceCommand(program2) {
3070
3088
  const workspace = program2.command("workspace").description("\u5DE5\u4F5C\u7A7A\u95F4\u7BA1\u7406 \u2014\u2014 \u4E00\u4E2A\u5DE5\u4F5C\u7A7A\u95F4\u5BF9\u5E94\u4E00\u4E2A\u5BA2\u6237/\u5E97\u94FA\uFF0C\u5305\u542B\u8BE5\u5BA2\u6237\u7684\u6240\u6709 Agent");
3071
3089
  workspace.command("list").description("\u5217\u51FA\u5F53\u524D\u8D26\u53F7\u53EF\u8BBF\u95EE\u7684\u6240\u6709\u5DE5\u4F5C\u7A7A\u95F4\u3002\u8FD4\u56DE id \u548C name\uFF0C\u7528\u4E8E config set-workspace").action(async () => {
@@ -3077,6 +3095,28 @@ function registerWorkspaceCommand(program2) {
3077
3095
  process.exit(toExitCode(err));
3078
3096
  }
3079
3097
  });
3098
+ workspace.command("points-consumes-daily").description(
3099
+ "\u6309\u5929\u67E5\u8BE2\u5F53\u524D\u5DE5\u4F5C\u7A7A\u95F4\u7684\u79EF\u5206\u6D88\u8017\u3002\u9ED8\u8BA4\u6700\u8FD1 30 \u5929\uFF08end=\u4ECA\u5929\uFF0Cstart=\u4ECA\u5929-29d\uFF09\uFF0C\u8FD4\u56DE consume_date / total_consume_points \u5217\u8868"
3100
+ ).option("--start <YYYY-MM-DD>", "\u8D77\u59CB\u65E5\u671F\uFF08\u542B\uFF09\uFF0C\u9ED8\u8BA4\u4ECA\u5929-29d").option("--end <YYYY-MM-DD>", "\u7ED3\u675F\u65E5\u671F\uFF08\u542B\uFF09\uFF0C\u9ED8\u8BA4\u4ECA\u5929").action(async (opts) => {
3101
+ try {
3102
+ const now = /* @__PURE__ */ new Date();
3103
+ const defaultEnd = toISODate(now);
3104
+ const defaultStart = toISODate(new Date(now.getTime() - 29 * 24 * 60 * 60 * 1e3));
3105
+ const startTime = opts.start ?? defaultStart;
3106
+ const endTime = opts.end ?? defaultEnd;
3107
+ if (!DATE_RE.test(startTime) || !DATE_RE.test(endTime)) {
3108
+ throw new Error("--start / --end \u9700\u4E3A YYYY-MM-DD \u683C\u5F0F");
3109
+ }
3110
+ if (startTime > endTime) {
3111
+ throw new Error("--start \u4E0D\u80FD\u665A\u4E8E --end");
3112
+ }
3113
+ const data = await getDailyDeduction({ startTime, endTime });
3114
+ formatOutput({ success: true, data }, program2.opts().table);
3115
+ } catch (err) {
3116
+ reportCaughtError(err);
3117
+ process.exit(toExitCode(err));
3118
+ }
3119
+ });
3080
3120
  }
3081
3121
 
3082
3122
  // src/bin.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bty/customer-service-cli",
3
- "version": "0.3.2",
3
+ "version": "0.3.3",
4
4
  "description": "AI Customer Service CLI - Agent friendly",
5
5
  "type": "module",
6
6
  "main": "./dist/bin.js",