@k-msg/cli 0.8.17 → 0.9.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 (3) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +31 -0
  3. package/package.json +13 -11
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @k-msg/cli
2
2
 
3
+ ## 0.9.0 — 2026-03-01
4
+
5
+ ### Minor changes
6
+
7
+ - [ee90600](https://github.com/k-otp/k-msg/commit/ee90600cc60e349544edee57101d5ae88002c7e0) Migrate `@k-msg/cli` to Bunli 0.7.1 and adopt the 0.7 command model.
8
+
9
+ - Convert command trees to `defineGroup` for Bunli 0.7.x compatibility.
10
+ - Add runtime-safe shell completions via `k-msg completions <bash|zsh|fish|powershell>` and `k-msg complete -- ...`.
11
+ - Replace custom readline/arrow interactive flows with Bunli/Clack prompt APIs.
12
+ - Standardize interactive cancellation (`Ctrl+C`) to exit with code `2`.
13
+ - Add completion validation/smoke checks in CI and CLI distribution workflows. — Thanks @imjlk!
14
+
3
15
  ## 0.8.17 — 2026-02-28
4
16
 
5
17
  ### Patch changes
package/README.md CHANGED
@@ -24,6 +24,9 @@ Other install paths are intentionally undocumented here.
24
24
  # Generate command types
25
25
  bun run --cwd apps/cli generate
26
26
 
27
+ # Validate completion metadata graph (strict)
28
+ bun run --cwd apps/cli doctor:completions
29
+
27
30
  # Build native binary
28
31
  bun run --cwd apps/cli build
29
32
  ./apps/cli/dist/k-msg --help
@@ -36,6 +39,32 @@ bun --cwd apps/cli dist/k-msg.js --help
36
39
  bun --cwd apps/cli src/k-msg.ts --help
37
40
  ```
38
41
 
42
+ ## Shell Completions
43
+
44
+ ```bash
45
+ # Print completion script
46
+ k-msg completions bash
47
+ k-msg completions zsh
48
+ k-msg completions fish
49
+ k-msg completions powershell
50
+
51
+ # Completion protocol callback (used by shell scripts)
52
+ k-msg complete -- ""
53
+ ```
54
+
55
+ Shell init examples:
56
+
57
+ ```bash
58
+ # bash
59
+ k-msg completions bash > ~/.bash_completion.d/k-msg
60
+ source ~/.bash_completion.d/k-msg
61
+
62
+ # zsh
63
+ k-msg completions zsh > "${HOME}/.zfunc/_k-msg"
64
+ fpath+=("${HOME}/.zfunc")
65
+ autoload -Uz compinit && compinit
66
+ ```
67
+
39
68
  ## Config (`k-msg.config.json`)
40
69
 
41
70
  Default config path:
@@ -129,6 +158,7 @@ Required values by provider/channel:
129
158
  - `k-msg providers list|health|doctor`
130
159
  - `k-msg sms send`
131
160
  - `k-msg alimtalk preflight|send`
161
+ - `k-msg completions <bash|zsh|fish|powershell>`
132
162
  - `k-msg send --input <json> | --file <path> | --stdin` (advanced/raw JSON only)
133
163
  - `k-msg db schema print|generate`
134
164
  - `k-msg db tracking migrate plan|apply|status|retry`
@@ -347,6 +377,7 @@ k-msg kakao template request --template-id TPL_001 --channel main
347
377
  - exit code:
348
378
  - `0`: success
349
379
  - `2`: input/config error
380
+ - `2`: interactive prompt cancelled (`Ctrl+C`)
350
381
  - `3`: provider/network error
351
382
  - `4`: unsupported capability (for example, provider does not support `balance`)
352
383
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@k-msg/cli",
3
- "version": "0.8.17",
3
+ "version": "0.9.0",
4
4
  "private": false,
5
5
  "description": "k-msg CLI (prebuilt binaries via GitHub Releases)",
6
6
  "type": "module",
@@ -21,6 +21,7 @@
21
21
  ],
22
22
  "scripts": {
23
23
  "generate": "bunli generate",
24
+ "doctor:completions": "bun run generate && bunx bunli@0.7.1 doctor completions --strict",
24
25
  "build": "bunli build",
25
26
  "build:all": "bunli build --targets all",
26
27
  "build:native": "bunli build --targets native",
@@ -33,18 +34,19 @@
33
34
  "clean": "rm -rf dist"
34
35
  },
35
36
  "devDependencies": {
36
- "@k-msg/channel": "0.22.3",
37
- "@k-msg/core": "0.22.3",
38
- "@k-msg/messaging": "0.22.3",
39
- "@k-msg/provider": "0.22.3",
40
- "@k-msg/template": "0.22.3",
41
- "@bunli/core": "^0.5.4",
42
- "@bunli/plugin-ai-detect": "^0.5.2",
43
- "@bunli/test": "^0.3.2",
37
+ "@bunli/core": "^0.7.0",
38
+ "@bunli/plugin-ai-detect": "^0.6.2",
39
+ "@bunli/plugin-completions": "^0.3.3",
40
+ "@bunli/test": "^0.4.2",
41
+ "@k-msg/channel": "0.28.0",
42
+ "@k-msg/core": "0.28.0",
43
+ "@k-msg/messaging": "0.28.0",
44
+ "@k-msg/provider": "0.28.0",
45
+ "@k-msg/template": "0.28.0",
44
46
  "@types/bun": "^1.3.9",
45
47
  "@types/node": "^22.0.0",
46
- "bunli": "^0.5.3",
47
- "k-msg": "0.22.3",
48
+ "bunli": "^0.7.1",
49
+ "k-msg": "0.28.0",
48
50
  "solapi": "^5.5.4",
49
51
  "typescript": "^5.7.2",
50
52
  "zod": "^4.0.14"