cbs-4px-merchant-cli 0.0.1 → 0.0.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 (70) hide show
  1. package/dist/cli.js +536 -42
  2. package/dist/cli.js.map +1 -1
  3. package/dist/commands/address.d.ts +2 -0
  4. package/dist/commands/address.js +59 -0
  5. package/dist/commands/address.js.map +1 -0
  6. package/dist/commands/claim.js +8 -2
  7. package/dist/commands/claim.js.map +1 -1
  8. package/dist/commands/config.js +333 -0
  9. package/dist/commands/config.js.map +1 -1
  10. package/dist/commands/country.d.ts +5 -0
  11. package/dist/commands/country.js +50 -0
  12. package/dist/commands/country.js.map +1 -0
  13. package/dist/commands/customs.d.ts +23 -0
  14. package/dist/commands/customs.js +176 -0
  15. package/dist/commands/customs.js.map +1 -0
  16. package/dist/commands/finance.d.ts +62 -0
  17. package/dist/commands/finance.js +509 -0
  18. package/dist/commands/finance.js.map +1 -0
  19. package/dist/commands/label.js +7 -1
  20. package/dist/commands/label.js.map +1 -1
  21. package/dist/commands/notice.d.ts +18 -0
  22. package/dist/commands/notice.js +210 -0
  23. package/dist/commands/notice.js.map +1 -0
  24. package/dist/commands/order.d.ts +12 -0
  25. package/dist/commands/order.js +76 -1
  26. package/dist/commands/order.js.map +1 -1
  27. package/dist/commands/pickup.d.ts +21 -0
  28. package/dist/commands/pickup.js +249 -0
  29. package/dist/commands/pickup.js.map +1 -0
  30. package/dist/commands/problem.d.ts +41 -0
  31. package/dist/commands/problem.js +371 -0
  32. package/dist/commands/problem.js.map +1 -0
  33. package/dist/commands/product.d.ts +28 -0
  34. package/dist/commands/product.js +249 -1
  35. package/dist/commands/product.js.map +1 -1
  36. package/dist/commands/service.d.ts +41 -0
  37. package/dist/commands/service.js +395 -0
  38. package/dist/commands/service.js.map +1 -0
  39. package/dist/commands/skill.d.ts +15 -0
  40. package/dist/commands/skill.js +374 -0
  41. package/dist/commands/skill.js.map +1 -0
  42. package/dist/commands/track.d.ts +13 -0
  43. package/dist/commands/track.js +92 -1
  44. package/dist/commands/track.js.map +1 -1
  45. package/dist/commands/update.d.ts +1 -1
  46. package/dist/commands/update.js +72 -9
  47. package/dist/commands/update.js.map +1 -1
  48. package/dist/services/api-client.d.ts +49 -2
  49. package/dist/services/api-client.js +464 -6
  50. package/dist/services/api-client.js.map +1 -1
  51. package/dist/services/skill-installer.d.ts +174 -0
  52. package/dist/services/skill-installer.js +540 -0
  53. package/dist/services/skill-installer.js.map +1 -0
  54. package/dist/types/index.d.ts +609 -0
  55. package/package.json +8 -6
  56. package/scripts/postinstall.js +31 -161
  57. package/skill/SKILL.md +72 -14
  58. package/skill/package.json +25 -0
  59. package/skill/reference/customs.md +220 -0
  60. package/skill/reference/finance.md +337 -0
  61. package/skill/reference/index.md +62 -6
  62. package/skill/reference/notice.md +238 -0
  63. package/skill/reference/order.md +172 -0
  64. package/skill/reference/pickup.md +222 -0
  65. package/skill/reference/problem.md +318 -0
  66. package/skill/reference/product.md +203 -0
  67. package/skill/reference/service.md +406 -0
  68. package/skill/reference/track.md +105 -0
  69. package/skill/reference/update.md +99 -14
  70. package/skill/reference/claim.md +0 -66
@@ -1,23 +1,31 @@
1
- # `fmc update`
1
+ # `fmc update` / `fmc skill`
2
2
 
3
- 升级 CLI 到最新版本,并自动同步对应的 AI skill。
3
+ 升级 CLI 本体,以及把当前版本的 skill 同步到本机 AI 工具。
4
4
 
5
5
  ## Synopsis
6
6
 
7
7
  ```bash
8
8
  fmc update [--check] [--tag <tag>] [--force] [-y] [--output <format>]
9
+ fmc skill install|status|uninstall [--agent <ids>] [--force] [--dry-run] [--output <format>]
9
10
  ```
10
11
 
11
12
  ## Description
12
13
 
13
- `fmc update` 通过 npm 全局安装机制,将 CLI 升级到 npm registry 上的最新版本。
14
- 升级后由 npm postinstall 自动把新版 SKILL.md 同步到所有已检测到的 AI 工具目录
15
- (`~/.qoder/skills/`, `~/.claude/skills/`, `~/.cursor/skills/` 等)。
14
+ `fmc update` 通过 npm 全局安装机制,将 CLI 升级到 npm registry 上的最新版本,
15
+ 完成后自动调用一次 `fmc skill install`,把新版 SKILL.md 同步到所有已检测到的
16
+ AI 工具目录(`~/.qoder/skills/`、`~/.claude/skills/`、`~/.cursor/skills/` 等)。
16
17
 
17
- **升级目标**:当前 site 的 npm 包 `cbs-4px-merchant-cli` 在 registry `{{ "https://registry.anpm.alibaba-inc.com" }}` 上。
18
+ > **为何不靠 npm postinstall:**npm 11 默认拦截依赖包的安装期脚本,**且跳过时仍然退出 0**。
19
+ > 所以 skill 铺设不能依赖生命周期钩子,`fmc skill install` 才是唯一可靠的入口;
20
+ > postinstall 仅作为“能跑就顺便跑”的便利钩子保留。
21
+
22
+ **升级目标**:当前 site 的 npm 包 `cbs-4px-merchant-cli`。registry 以本机 `npm config get registry` 为准,
23
+ 可用 `BPORTAL_REGISTRY` 临时覆盖。
18
24
 
19
25
  ## Options
20
26
 
27
+ ### `update`
28
+
21
29
  | Flag | Description |
22
30
  | --- | --- |
23
31
  | `--check` | 只检查是否有新版本,不执行升级 |
@@ -26,6 +34,15 @@ fmc update [--check] [--tag <tag>] [--force] [-y] [--output <format>]
26
34
  | `-y, --yes` | 跳过交互式确认 |
27
35
  | `--output <format>` | 输出格式: `text` \| `json`(TTY 默认 text,管道默认 json) |
28
36
 
37
+ ### `skill install` / `skill status` / `skill uninstall`
38
+
39
+ | Flag | Description |
40
+ | --- | --- |
41
+ | `--agent <ids>` | 只处理指定 AI 工具(逗号分隔,可重复);非法值会报错并列出全部合法 id |
42
+ | `--force` | 覆盖 / 删除非本 CLI 安装的目录(默认拒绝) |
43
+ | `--dry-run` | 只打印将要执行的操作,不写入任何文件 |
44
+ | `--output <format>` | 输出格式: `text` \| `json` |
45
+
29
46
  ## Environment variables
30
47
 
31
48
  | Variable | Description |
@@ -53,22 +70,40 @@ fmc update --force -y
53
70
 
54
71
  # 临时切换 registry 后升级(不修改 ~/.npmrc)
55
72
  BPORTAL_REGISTRY=https://registry.npmjs.org fmc update --check
73
+
74
+ # 把 skill 重新铺到本机所有 AI 工具(安装后的第二步,可反复执行)
75
+ fmc skill install
76
+
77
+ # 先看将要发生什么,不写入任何文件
78
+ fmc skill install --dry-run --output json
79
+
80
+ # 只铺到指定工具
81
+ fmc skill install --agent claude-code,qoder
82
+
83
+ # 查看各工具的安装与版本状态
84
+ fmc skill status --output json
85
+
86
+ # 移除本 CLI 安装的 skill
87
+ fmc skill uninstall
56
88
  ```
57
89
 
58
90
  ## JSON envelope (`--output json`)
59
91
 
92
+ ### `update`
93
+
60
94
  ```json
61
95
  {
62
96
  "ok": true,
63
97
  "action": "updated",
64
98
  "package": "cbs-4px-merchant-cli",
65
- "registry": "https://registry.anpm.alibaba-inc.com",
99
+ "registry": "https://registry.npmjs.org",
66
100
  "tag": "latest",
67
- "previous_version": "1.0.10",
68
- "current_version": "1.0.11",
69
- "latest_version": "1.0.11",
101
+ "previous_version": "0.0.2",
102
+ "current_version": "0.0.3",
103
+ "latest_version": "0.0.3",
70
104
  "install_method": "npm",
71
- "message": "已升级到 v1.0.11(skill 已通过 postinstall 自动同步)。重新打开终端使生效。"
105
+ "skill_sync": "ok",
106
+ "message": "已升级到 v0.0.3,skill 已同步。重新打开终端使生效。"
72
107
  }
73
108
  ```
74
109
 
@@ -82,16 +117,63 @@ BPORTAL_REGISTRY=https://registry.npmjs.org fmc update --check
82
117
  | `manual_required` | CLI 非 npm 全局安装,需手动升级 |
83
118
  | `error` | 失败(详见 `error.code`:`NETWORK` / `NPM_NOT_FOUND` / `NPM_INSTALL_FAILED` / `EACCES`) |
84
119
 
85
- ## Passive update notifier
120
+ `skill_sync` 取值 `ok` \| `failed`。注意:**skill 同步失败不会把 `ok` 置为 false**,
121
+ 因为二进制确实升级成功了;此时 `hint` 会提示手动执行 `fmc skill install`。
122
+
123
+ ### `skill install` / `skill status` / `skill uninstall`
124
+
125
+ ```json
126
+ {
127
+ "ok": true,
128
+ "action": "installed",
129
+ "package": "cbs-4px-merchant-cli",
130
+ "skill": { "name": "cbs-4px-merchant-cli", "version": "0.0.3" },
131
+ "api_key_configured": false,
132
+ "targets": [
133
+ {
134
+ "agent": "claude-code",
135
+ "label": "Claude Code",
136
+ "dir": "/Users/me/.claude/skills/cbs-4px-merchant-cli",
137
+ "outcome": "updated",
138
+ "previous_version": "0.0.2",
139
+ "removed": ["reference/claim.md"]
140
+ }
141
+ ],
142
+ "summary": { "total": 1, "installed": 0, "updated": 1, "skipped": 0, "failed": 0 },
143
+ "hint": "尚未配置 API Key。申请地址: https://b.4px.com/site/ak-manage,然后执行 fmc auth login --api-key <key>"
144
+ }
145
+ ```
146
+
147
+ `outcome` 取值:
148
+
149
+ | Value | Meaning |
150
+ | --- | --- |
151
+ | `installed` | 全新安装(目录原本不存在或为空) |
152
+ | `updated` | 覆盖升级,`removed` 列出被清理的孤儿文件 |
153
+ | `skipped` | 目录归属不明或属于其他安装器,未触碰(`reason` 说明原因,`--force` 可覆盖) |
154
+ | `failed` | 写入失败(`reason` 为错误信息) |
155
+
156
+ `api_key_configured` 只是存在性布尔值,**不会回显 Key 本身**。
157
+ `fmc skill status` 的 `targets` 则携带 `state` / `installed_version` / `installed_source`,
158
+ 用于分辨“我装的”和“别人装的”。
159
+
160
+ ## Passive notifiers
86
161
 
87
162
  普通命令运行后(如 `fmc track get ...`),若本地缓存(`~/.bportal/update-state.json`,
88
163
  TTL 24 小时)发现 registry 上有新版本,stderr 会输出一条 JSON 通知:
89
164
 
90
165
  ```json
91
- {"_notice":{"type":"update","package":"cbs-4px-merchant-cli","current":"1.0.10","latest":"1.0.11","hint":"Run: fmc update to upgrade"}}
166
+ {"_notice":{"type":"update","package":"cbs-4px-merchant-cli","current":"0.0.2","latest":"0.0.3","hint":"Run: fmc update to upgrade"}}
167
+ ```
168
+
169
+ 若本机已安装的 skill 版本与 CLI 不一致,还会额外输出一条漂移通知:
170
+
171
+ ```json
172
+ {"_notice":{"type":"skills","current":"0.0.2","expected":"0.0.3","hint":"Run: fmc skill install to sync skills with CLI v0.0.3"}}
92
173
  ```
93
174
 
94
- AI Agent 可据此提示用户升级。设置 `BPORTAL_NO_UPDATE_NOTIFIER=1` 即可关闭。
175
+ 漂移检测会扫描**所有**已安装目录;多个工具版本不一致时 `current` 为数组。
176
+ AI Agent 可据此提示用户升级或同步。设置 `BPORTAL_NO_UPDATE_NOTIFIER=1` 即可关闭升级提示。
95
177
 
96
178
  ## Failure handling
97
179
 
@@ -100,3 +182,6 @@ AI Agent 可据此提示用户升级。设置 `BPORTAL_NO_UPDATE_NOTIFIER=1` 即
100
182
  或使用 `sudo`。
101
183
  - **网络/registry 不可达**:检查 VPN,或用 `BPORTAL_REGISTRY` 临时切换。
102
184
  - **非 npm 安装**:`action=manual_required`,envelope 内 `upgrade_command` 字段给出确切的手动升级命令。
185
+ - **skill 同步失败**:`skill_sync=failed`,二进制已升级,手动执行 `fmc skill install` 即可。
186
+ - **目录被跳过**:`outcome=skipped` 说明该目录不是本 CLI 装的(比如技能市场装的)。
187
+ 先用 `fmc skill status` 看 `installed_source` 确认归属,确实该覆盖再加 `--force`。
@@ -1,66 +0,0 @@
1
- # `fmc claim` command
2
-
3
- ## Command details
4
-
5
- ### `fmc claim list`
6
-
7
- | Field | Value |
8
- | --- | --- |
9
- | **Name** | `claim list` |
10
- | **Description** | 查询理赔列表 |
11
- | **Usage** | `fmc claim list [flags]` |
12
-
13
- 需要 API Key 认证。`--biz-no` 与时间范围至少传一项。
14
-
15
- #### Options
16
-
17
- | Flag | Type | Required | Description |
18
- | --- | --- | --- | --- |
19
- | `--biz-no <nos>` | string | no | 业务单号,多个用英文逗号分隔 |
20
- | `--start-time <time>` | string | no | 起始创建时间,格式 yyyy-MM-dd HH:mm:ss |
21
- | `--end-time <time>` | string | no | 结束创建时间,格式 yyyy-MM-dd HH:mm:ss |
22
- | `--status <code>` | string | no | 理赔状态:0 全部、1 待处理、2 受理中、3 已解决、4 已退回 |
23
- | `--page <num>` | number | no | 页码,默认 1 |
24
- | `--size <num>` | number | no | 每页数量,默认 10,最大 100 |
25
-
26
- 支持全局选项: `--output`, `--verbose`, `--dry-run`
27
-
28
- #### Examples
29
-
30
- ```bash
31
- fmc claim list --biz-no FPX12345678
32
- ```
33
-
34
- ```bash
35
- fmc claim list --start-time "2024-01-01 00:00:00" --end-time "2024-12-31 23:59:59"
36
- ```
37
-
38
- ```bash
39
- fmc claim list --status 1 --page 1 --size 20
40
- ```
41
-
42
- ```bash
43
- fmc claim list --biz-no FPX111,FPX222 --output json
44
- ```
45
-
46
- #### Output (text mode)
47
-
48
- ```
49
- 理赔列表
50
- ──────────────────────────────────────────────────
51
- 页码 1/1 共 2 条
52
-
53
- CLM20240115001 受理中
54
- 业务单号 FPX12345678
55
- 索赔原因 包裹丢失
56
- 货值赔偿 150.00 USD
57
- 最新反馈 正在核实物流信息
58
- 创建时间 2024-01-15 10:30:00
59
-
60
- CLM20240110002 已解决
61
- 业务单号 FPX87654321
62
- 索赔原因 包裹破损
63
- 货值赔偿 50.00 USD
64
- 服务赔偿 20.00 USD
65
- 创建时间 2024-01-10 08:00:00
66
- ```