@vox-ai/cli-linux-x64 0.1.0-beta.2 → 0.1.0-beta.4
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/README.md +14 -58
- package/bin/vox +0 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -10,13 +10,12 @@ vox.ai 에이전트 개발을 위한 CLI 워크플로우 도구입니다.
|
|
|
10
10
|
| --- | --- |
|
|
11
11
|
| `docs` | 현재 플랫폼 의미와 API 레퍼런스 조회 |
|
|
12
12
|
| `skills` | 설계 playbook과 워크플로우 라우팅 |
|
|
13
|
-
| `MCP` | stateless 조회와 일회성 작업 |
|
|
14
13
|
| `vox CLI` | 레포에 남아야 하는 durable 저작, 검증, diff, push, status, delete |
|
|
15
14
|
|
|
16
|
-
경계 규칙은 단순합니다. 레포에 남아야 하거나, 리뷰돼야 하거나, 재현/롤백돼야 하면 CLI를 사용합니다.
|
|
15
|
+
경계 규칙은 단순합니다. 레포에 남아야 하거나, 리뷰돼야 하거나, 재현/롤백돼야 하면 CLI를 사용합니다. 조회도 `docs`, `skills`, `schema`, `status`, `explain` 같은 CLI 명령을 먼저 사용합니다.
|
|
17
16
|
|
|
18
17
|
```text
|
|
19
|
-
auth -> pull/init -> edit JSON -> doctor -> validate -> diff/status -> push -> version save -> promote ->
|
|
18
|
+
auth -> pull/init -> edit JSON -> doctor -> validate -> diff/status -> push -> version save -> promote -> chat
|
|
20
19
|
```
|
|
21
20
|
|
|
22
21
|
## 목차
|
|
@@ -30,7 +29,6 @@ auth -> pull/init -> edit JSON -> doctor -> validate -> diff/status -> push -> v
|
|
|
30
29
|
- [검증, diff, push](#검증-diff-push)
|
|
31
30
|
- [개발](#개발)
|
|
32
31
|
- [인증](#인증)
|
|
33
|
-
- [MCP](#mcp)
|
|
34
32
|
- [Listen / Trigger](#listen--trigger)
|
|
35
33
|
|
|
36
34
|
## 설치와 업그레이드
|
|
@@ -91,7 +89,6 @@ vox upgrade --json
|
|
|
91
89
|
| Knowledge source | `knowledge init`, `knowledge add-document`, `knowledge validate`, `knowledge explain`, `knowledge pull`, `knowledge push`, `knowledge status`, `knowledge delete` |
|
|
92
90
|
| Schema | `schema list`, `schema get` |
|
|
93
91
|
| Chat beta | `chat` |
|
|
94
|
-
| MCP | `mcp --list-tools`, `mcp --config`, `mcp --stdio` |
|
|
95
92
|
| Version / upgrade | `version`, `--version`, `upgrade` |
|
|
96
93
|
|
|
97
94
|
### 보류 중인 명령 그룹
|
|
@@ -206,21 +203,17 @@ vox skills show vox-flow --reference flow-guide --brief --json
|
|
|
206
203
|
vox docs search "global node" --json
|
|
207
204
|
vox docs show docs/build/flow/advanced/global-node --json
|
|
208
205
|
vox sync import --all --dry-run --json
|
|
209
|
-
vox mcp --config --target codex --json
|
|
210
|
-
vox mcp --config --target claude --json
|
|
211
206
|
```
|
|
212
207
|
|
|
213
|
-
`guide coding-agent` 출력은 surface split(docs/skills/
|
|
208
|
+
`guide coding-agent` 출력은 surface split(docs/skills/CLI), 기본 Agent-as-Code 루프, repo instruction snippet, bundled guide topic 목록을 담습니다. 이것이 외부 세션의 bootstrap 명령입니다. 새 repo에 기존 workspace 전체를 처음 가져와야 한다면 `vox sync import --all --dry-run --json`으로 계획을 확인한 뒤 `vox sync import --all --json`을 실행합니다.
|
|
214
209
|
|
|
215
210
|
`vox init` / `agent init`이 만든 `.claude/skills/vox-ai/SKILL.md`와 `.codex/skills/vox-ai/SKILL.md`도 같은 bootstrap 명령을 가리킵니다. Claude Code와 Codex가 각각 local skill 메커니즘으로 이 프로젝트의 vox.ai 작업 규칙을 발견하도록 하기 위한 파일이며, 고객 repo의 기존 root instruction 파일을 덮어쓰지 않습니다.
|
|
216
211
|
|
|
217
|
-
`skills list/show`는 public `vox-skills` repo의 SKILL.md와 references를 release-time에 압축한 offline pack을 반환합니다. 긴 markdown을 바로 dump하지 않고 skill별 ownership, trigger, CLI-first 조건, 추천 명령, reference path, source hash를 주므로 코딩 에이전트가 먼저 어떤 playbook을 봐야 하는지 결정하기 좋습니다. 실제 긴 reference 전문이 필요하면 public skill 파일이나 docs
|
|
212
|
+
`skills list/show`는 public `vox-skills` repo의 SKILL.md와 references를 release-time에 압축한 offline pack을 반환합니다. 긴 markdown을 바로 dump하지 않고 skill별 ownership, trigger, CLI-first 조건, 추천 명령, reference path, source hash를 주므로 코딩 에이전트가 먼저 어떤 playbook을 봐야 하는지 결정하기 좋습니다. 실제 긴 reference 전문이 필요하면 public skill 파일이나 docs URL로 이동합니다.
|
|
218
213
|
|
|
219
|
-
`docs search/show`는 공식 docs repo를 release-time에 압축한 offline index를 반환합니다. `search`는 path/title/heading/관련 검색어/본문 excerpt를 대상으로 빠르게 후보를 찾고, `show`는 페이지 또는 섹션별 compressed excerpt와 public URL/source hash를 반환합니다. 전체 MDX 전문이나 최신 hosted 문서 확인이 필요할
|
|
214
|
+
`docs search/show`는 공식 docs repo를 release-time에 압축한 offline index를 반환합니다. `search`는 path/title/heading/관련 검색어/본문 excerpt를 대상으로 빠르게 후보를 찾고, `show`는 페이지 또는 섹션별 compressed excerpt와 public URL/source hash를 반환합니다. 전체 MDX 전문이나 최신 hosted 문서 확인이 필요할 때는 출력의 public URL을 엽니다.
|
|
220
215
|
|
|
221
|
-
`guide flow` 출력은 적용 규칙, 관련 schema field, 권장 CLI 명령, 금지 패턴, 검증 명령, doctor code, source hash를 포함합니다. 예를 들어 `global-node` topic은 public skill의 global node 설계를 현재 v3 `data.globalNodeSettings` 필드와 `agent flow set-global` / `add-node --global-condition` helper로 연결합니다.
|
|
222
|
-
|
|
223
|
-
`mcp --config`는 Claude Code / Codex / generic MCP client가 `vox mcp --stdio` bridge를 등록할 수 있는 snippet을 출력합니다. 설정 파일에는 bearer token을 넣지 않습니다. 먼저 `vox auth login`으로 CLI profile/keychain에 로그인하고, agent MCP client는 로컬 stdio bridge만 실행합니다.
|
|
216
|
+
`guide flow` 출력은 적용 규칙, 관련 schema field, 권장 CLI 명령, 금지 패턴, 검증 명령, doctor code, source hash를 포함합니다. 예를 들어 `global-node` topic은 public skill의 global node 설계를 현재 v3 `data.globalNodeSettings` 필드와 `agent flow set-global` / `add-node --global-condition` helper로 연결합니다. durable source 편집은 `guide -> file edit/helper -> doctor -> validate -> diff -> push` 루프로 진행합니다.
|
|
224
217
|
|
|
225
218
|
### Chat beta
|
|
226
219
|
|
|
@@ -284,7 +277,7 @@ vox agent test show greeting_smoke --agent main
|
|
|
284
277
|
|
|
285
278
|
현재 CLI의 tools-as-code는 public v3 `POST /v3/tools` 계약에 맞춘 **HTTP/API 커스텀 도구**만 다룹니다.
|
|
286
279
|
|
|
287
|
-
대시보드에
|
|
280
|
+
대시보드에 CLI가 아직 지원하지 않는 도구 생성 UI가 보이더라도, CLI 파일 리소스로 만들지 않습니다. public v3 생성/조회/수정 계약이 열리기 전에는 dashboard 작업으로 남기고, CLI가 v2/internal 모델을 우회 호출하지 않습니다.
|
|
288
281
|
|
|
289
282
|
### Tool 워크플로우
|
|
290
283
|
|
|
@@ -400,7 +393,7 @@ vox knowledge status product_faq
|
|
|
400
393
|
|
|
401
394
|
바뀐 문서는 기존 remote document를 삭제한 뒤 다시 생성하고, unchanged 문서는 건너뜁니다. 기본값은 원격에만 있는 기존 문서를 보존합니다. 로컬 source에서 제거한 bound document를 원격에서도 삭제하려면 명시적으로 `--prune`을 붙입니다. 원격 knowledge ID와 document ID는 committed source에 쓰지 않습니다.
|
|
402
395
|
|
|
403
|
-
`knowledge pull <knowledge-id> --knowledge <local-name>`은 대시보드나
|
|
396
|
+
`knowledge pull <knowledge-id> --knowledge <local-name>`은 대시보드나 API로 이미 만든 원격 knowledge base를 로컬 프로젝트에 바인딩합니다. 현재 v3 API의 document list 응답은 webpage URL summary만 원문 수준으로 복원할 수 있고, text 본문과 file binary는 반환하지 않습니다.
|
|
404
397
|
|
|
405
398
|
따라서 text/file 문서가 있으면 기본값은 `KNOWLEDGE_PULL_INCOMPLETE`로 실패합니다. 원격 binding만 가져오고 복원 가능한 webpage 문서만 source에 쓰려면 명시적으로 `--allow-incomplete`를 붙입니다. 이 경우 `knowledge status`는 원격에 unmanaged document가 남아 있음을 `remote_changed`로 보여줍니다.
|
|
406
399
|
|
|
@@ -639,7 +632,6 @@ npm run docs:pack:check
|
|
|
639
632
|
npm run codegen:check
|
|
640
633
|
npm run tool:constraints:check
|
|
641
634
|
npm run homebrew:formula:smoke
|
|
642
|
-
npm run mcp:surface:check
|
|
643
635
|
npm run typecheck
|
|
644
636
|
npm test
|
|
645
637
|
npm run build
|
|
@@ -653,7 +645,6 @@ npm run bun:compile
|
|
|
653
645
|
npm run smoke:help-binary
|
|
654
646
|
npm run smoke:agent-diff-check-binary
|
|
655
647
|
npm run smoke:authoring-local-binary
|
|
656
|
-
npm run smoke:mcp-binary
|
|
657
648
|
```
|
|
658
649
|
|
|
659
650
|
### 내부 chat dev smoke
|
|
@@ -665,8 +656,6 @@ npm run smoke:mcp-binary
|
|
|
665
656
|
- auth issuer: `https://xnpknkzxxuyfokbrzbil.supabase.co/auth/v1`
|
|
666
657
|
- livekit-token URL: `https://xnpknkzxxuyfokbrzbil.supabase.co/functions/v1/livekit-token`
|
|
667
658
|
- API base: `https://dev-client-api.tryvox.co`
|
|
668
|
-
- MCP base: `https://vox-mcp-develop.fly.dev`
|
|
669
|
-
- MCP endpoint for CLI `mcp_url`: `https://vox-mcp-develop.fly.dev/mcp`
|
|
670
659
|
- dev smoke workspace: `aacc5a24-4fdf-40cc-8d75-6abd253146ea`
|
|
671
660
|
|
|
672
661
|
dev profile 생성:
|
|
@@ -674,7 +663,6 @@ dev profile 생성:
|
|
|
674
663
|
```bash
|
|
675
664
|
VOX_AUTH_ISSUER=https://xnpknkzxxuyfokbrzbil.supabase.co/auth/v1 \
|
|
676
665
|
VOX_API_BASE_URL=https://dev-client-api.tryvox.co \
|
|
677
|
-
VOX_MCP_URL=https://vox-mcp-develop.fly.dev/mcp \
|
|
678
666
|
vox auth login --profile dev
|
|
679
667
|
```
|
|
680
668
|
|
|
@@ -733,7 +721,6 @@ npm run bun:compile
|
|
|
733
721
|
./dist/vox --help
|
|
734
722
|
./dist/vox --version
|
|
735
723
|
./dist/vox auth whoami --json
|
|
736
|
-
./dist/vox mcp --list-tools --json
|
|
737
724
|
```
|
|
738
725
|
|
|
739
726
|
### Auth login smoke
|
|
@@ -748,11 +735,11 @@ npm run smoke:auth-login-local-binary
|
|
|
748
735
|
|
|
749
736
|
### CI와 release
|
|
750
737
|
|
|
751
|
-
GitHub Actions의 단독 `vox-cli` repo CI는 `guide:pack:check`, `skills:pack:check`, `docs:pack:check`, `typecheck`, `test`, `audit`, `build`, Node smoke, agent diff check smoke, local authoring workflow smoke, npm package smoke, Bun binary help smoke, Bun binary agent diff check smoke, Bun binary local authoring workflow smoke
|
|
738
|
+
GitHub Actions의 단독 `vox-cli` repo CI는 `guide:pack:check`, `skills:pack:check`, `docs:pack:check`, `typecheck`, `test`, `audit`, `build`, Node smoke, agent diff check smoke, local authoring workflow smoke, npm package smoke, Bun binary help smoke, Bun binary agent diff check smoke, Bun binary local authoring workflow smoke를 실행합니다.
|
|
752
739
|
|
|
753
740
|
local authoring workflow smoke는 임시 프로젝트에서 dashboard export `agent import`, `tool init/validate/explain`, `knowledge init/validate/explain`, single-prompt dashboard-style 설정 편집과 `callScreening` 보존, `agent explain`, `agent test init/list/show/validate`, extraction/condition router, API/tool/sendSms/transferCall/transferAgent flow node 작성과 연결, `agent attach tool/knowledge`, `agent doctor`, `agent status --all --offline`, `agent validate --offline`, `agent push --dry-run --offline`를 실제 CLI 명령으로 실행합니다.
|
|
754
741
|
|
|
755
|
-
npm package smoke는 `npm pack` tarball을 임시 프로젝트에 설치한 뒤 설치된 `vox` binary로 help, version, unauthenticated whoami, agent diff check fixture를 실행합니다. `codegen:check`, `tool:constraints:check
|
|
742
|
+
npm package smoke는 `npm pack` tarball을 임시 프로젝트에 설치한 뒤 설치된 `vox` binary로 help, version, unauthenticated whoami, agent diff check fixture를 실행합니다. `codegen:check`, `tool:constraints:check`는 monorepo의 api-server 파일을 필요로 하므로 monorepo context에서 실행해야 합니다.
|
|
756
743
|
|
|
757
744
|
`tool:constraints:check`는 api-server의 v3 tool request schema와 `tool_service.py`에서 tool name 예약어, name 길이/패턴, HTTP/auth/response enum, timeout 범위를 다시 생성해 CLI-local `tool validate` 상수와 비교합니다. 이 체크도 monorepo context가 필요합니다.
|
|
758
745
|
|
|
@@ -762,7 +749,7 @@ npm package smoke는 `npm pack` tarball을 임시 프로젝트에 설치한 뒤
|
|
|
762
749
|
npm run release:check
|
|
763
750
|
```
|
|
764
751
|
|
|
765
|
-
`release:check`는 package metadata drift check, guide/skills/docs pack check, public release surface check, Homebrew formula smoke, typecheck, unit test, npm audit, build, Node smoke, agent diff check smoke, local authoring workflow smoke, npm package smoke, Bun binary help smoke, Bun binary agent diff check smoke, Bun binary local authoring workflow smoke
|
|
752
|
+
`release:check`는 package metadata drift check, guide/skills/docs pack check, public release surface check, Homebrew formula smoke, typecheck, unit test, npm audit, build, Node smoke, agent diff check smoke, local authoring workflow smoke, npm package smoke, Bun binary help smoke, Bun binary agent diff check smoke, Bun binary local authoring workflow smoke를 모두 실행합니다.
|
|
766
753
|
|
|
767
754
|
npm publish 직전에는 `prepublishOnly`가 최소 package gate를 다시 실행합니다. `@vox-ai/cli`는 새 scoped package이므로 `publishConfig.access`는 `public`으로 고정되어 있습니다.
|
|
768
755
|
|
|
@@ -773,14 +760,14 @@ npm publish 직전에는 `prepublishOnly`가 최소 package gate를 다시 실
|
|
|
773
760
|
`CLI Release` workflow는 세 가지를 같은 commit에서 처리합니다.
|
|
774
761
|
|
|
775
762
|
1. `release:check`를 통과시킵니다.
|
|
776
|
-
2. configured skills raw file hash와 `docs.tryvox.co/llms.txt` / 주요 `.md` page가 generated guide/docs pack과 맞는지 확인합니다. 현재 beta release 기준 skills source는 `garden-tryvox/vox-skills@codex/cli-
|
|
763
|
+
2. configured skills raw file hash와 `docs.tryvox.co/llms.txt` / 주요 `.md` page가 generated guide/docs pack과 맞는지 확인합니다. 현재 beta release 기준 skills source는 `garden-tryvox/vox-skills@codex/vox-cli-skill-public`입니다.
|
|
777
764
|
3. macOS `darwin-arm64`, `darwin-x64` Bun 단일 바이너리를 만들고 matching runner에서 binary smoke를 실행한 뒤 Actions artifact로 보관합니다.
|
|
778
765
|
4. GitHub App token으로 public tap 접근과 stale release/tag 부재를 확인하고, npm registry auth를 확인합니다.
|
|
779
766
|
5. `checksums.txt`에서 Homebrew formula `vox.rb`를 렌더링하고, 실제 tarball sha256 / `checksums.txt` / `vox.rb` URL과 sha가 일치하는지 확인합니다.
|
|
780
767
|
6. `vox-cli` repo에 `v{version}` source tag를 생성합니다.
|
|
781
768
|
7. `vox-public/homebrew-tap` GitHub Release draft에 tarball, `checksums.txt`, `vox.rb`를 올립니다.
|
|
782
769
|
8. `npm publish --tag <dist-tag>`가 성공하면 GitHub Release draft를 공개합니다.
|
|
783
|
-
9. macOS arm64/x64 runner에서 public release의 `vox.rb`로 `brew audit --strict`, `brew install`, `vox --version`, `
|
|
770
|
+
9. macOS arm64/x64 runner에서 public release의 `vox.rb`로 `brew audit --strict`, `brew install`, `vox --version`, `brew test`를 실행합니다.
|
|
784
771
|
10. Homebrew smoke가 통과하면 `vox-public/homebrew-tap`에 Formula PR을 엽니다.
|
|
785
772
|
|
|
786
773
|
실행 전 repo secret `VOX_APP_ID`, `VOX_APP_KEY`, `NPM_TOKEN`과 environment `npm-publish`를 설정해야 합니다. public release 전에는 가능하면 npm Trusted Publishing/OIDC로 전환해서 장기 publish token 의존을 제거합니다. npm provenance는 source repository visibility와 trusted publishing 조건을 만족한 뒤 다시 켭니다.
|
|
@@ -797,26 +784,7 @@ OS keychain 접근이 멈추는 환경에서는 auth resolver가 무한 대기
|
|
|
797
784
|
|
|
798
785
|
Headless 실행은 저장 token 대신 `VOX_OAUTH_ACCESS_TOKEN`과 `VOX_ORGANIZATION_ID`를 명시적으로 주입하는 경로를 사용합니다.
|
|
799
786
|
|
|
800
|
-
##
|
|
801
|
-
|
|
802
|
-
### Tool surface
|
|
803
|
-
|
|
804
|
-
`vox mcp --list-tools --json`는 인증 없이 생성된 cached public MCP surface를 출력합니다. `vox mcp --list-tools --live --json`는 CLI OAuth token으로 hosted MCP에 직접 연결해 현재 live `tools/list` 결과를 출력합니다.
|
|
805
|
-
|
|
806
|
-
### Client config snippets
|
|
807
|
-
|
|
808
|
-
`vox mcp --config`는 설치된 CLI를 MCP stdio bridge로 등록하기 위한 설정 snippet을 출력합니다. 기존 Claude/Codex 설정 파일을 직접 수정하지 않으므로 고객 repo의 설정을 덮어쓰지 않습니다.
|
|
809
|
-
|
|
810
|
-
```bash
|
|
811
|
-
vox auth login
|
|
812
|
-
vox mcp --config --target codex --json
|
|
813
|
-
vox mcp --config --target claude --json
|
|
814
|
-
vox mcp --config --target generic
|
|
815
|
-
```
|
|
816
|
-
|
|
817
|
-
Codex target은 `codex mcp add vox -- vox mcp --stdio` 명령과 `~/.codex/config.toml` / `.codex/config.toml` TOML snippet을 제공합니다. Claude target은 `claude mcp add --transport stdio --scope project vox -- vox mcp --stdio` 명령과 project-scoped `.mcp.json` snippet을 제공합니다.
|
|
818
|
-
|
|
819
|
-
### Live smoke
|
|
787
|
+
## Live Smoke
|
|
820
788
|
|
|
821
789
|
복잡한 flow agent-as-code 루프를 실제 워크스페이스에서 확인해야 할 때는 opt-in live smoke를 사용합니다. 이 스모크는 disposable 원격 에이전트를 생성, 수정, pull/diff 확인 후 soft-delete하므로 release gate에는 자동 포함하지 않습니다.
|
|
822
790
|
|
|
@@ -838,18 +806,6 @@ npm run smoke:resource-live
|
|
|
838
806
|
|
|
839
807
|
실행 전 active profile의 current organization이 `<organization-id>`와 일치해야 합니다. 필요하면 먼저 `vox auth switch --org <organization-id>`를 실행하세요.
|
|
840
808
|
|
|
841
|
-
### Local stdio bridge
|
|
842
|
-
|
|
843
|
-
`vox mcp --stdio`는 공식 TypeScript MCP SDK를 사용해 stdio 기반 로컬 MCP 서버를 실행하고, tool list/call을 profile의 hosted MCP(`mcp_url`)로 전달합니다. tool call에는 CLI OAuth resolver와 OS keychain token을 재사용합니다. `--stdio`와 `--json`은 함께 사용할 수 없습니다. stdout은 MCP protocol message 전용입니다.
|
|
844
|
-
|
|
845
|
-
hosted MCP 브릿지 전환 가능성을 확인하려면 로그인된 profile 또는 `VOX_OAUTH_ACCESS_TOKEN`이 있는 개발 머신에서 다음 spike를 실행합니다. 이 spike는 `AuthContext.mcpUrl`의 hosted MCP에 bearer token으로 연결해 `tools/list`와 `list_organizations`만 호출합니다. 토큰 값은 출력하지 않습니다.
|
|
846
|
-
|
|
847
|
-
```bash
|
|
848
|
-
npm run spike:mcp-bridge
|
|
849
|
-
```
|
|
850
|
-
|
|
851
|
-
`spike:mcp-bridge`는 hosted MCP bearer 경로를 수동 재검증할 때 사용합니다. `hosted_mcp_auth_401` 또는 `hosted_mcp_resource_or_scope`가 나오면 profile token freshness 또는 MCP resource/audience 처리를 먼저 확인해야 합니다.
|
|
852
|
-
|
|
853
809
|
## Listen / Trigger
|
|
854
810
|
|
|
855
811
|
api-server owner sync 없이 이 CLI 패키지에서 api-server relay endpoint나 webhook-processor fanout 변경을 시작하지 마세요. 확정된 설계는 모노레포 Obsidian 노트 `__docs__/share/garden/dx_vox_cli/Listen And Trigger Relay Spec.md`에 기록되어 있습니다.
|
package/bin/vox
CHANGED
|
Binary file
|