docs(cli): package and document Zoo CLI - #1162
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
25ffa77 to
dc65252
Compare
82307ab to
a350044
Compare
47b1a54 to
d551402
Compare
a350044 to
46179b8
Compare
d551402 to
4ba34b9
Compare
db0ad71 to
f5dee31
Compare
4ba34b9 to
ee0b102
Compare
f5dee31 to
77c038d
Compare
c6587b0 to
219e3dc
Compare
77c038d to
48e5924
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
48e5924 to
ea45605
Compare
1576486 to
d3a38a2
Compare
9c3ac7f to
d6d57d0
Compare
2ce4a83 to
a485ef1
Compare
d6d57d0 to
571b4a2
Compare
a485ef1 to
6c79822
Compare
571b4a2 to
5b85926
Compare
5b85926 to
e4fcdea
Compare
6c79822 to
2789e06
Compare
edelauna
left a comment
There was a problem hiding this comment.
Lets also update codcov step to include CLI as well.
| cp -R packages/zoo-host/dist/. "$root/lib/host/" | ||
| cp -R src/dist/. "$root/lib/extension/" | ||
| printf '{"type":"commonjs"}\n' > "$root/lib/extension/package.json" | ||
| node -e 'const p=require("./apps/zoo/package.json"); console.log(JSON.stringify({name:p.name,version:p.version,private:true,type:"module",dependencies:{ink:p.dependencies.ink,react:p.dependencies.react}},null,2))' > "$root/package.json" |
There was a problem hiding this comment.
tsup externalizes every node_modules package except those listed in noExternal — which here is only @roo-code/zoo-protocol (apps/zoo/tsup.config.ts:11). But apps/zoo/src/index.ts does import { Command, Option } from "commander" at the top of the entry module. Since this dependency object installs only ink and react, commander would not be resolvable inside the artifact — even the --help / --version smoke steps below would fail. Should commander be added here? It is not a transitive dependency of ink/react, so a fresh install cannot inherit it.
| node -e 'const p=require("./apps/zoo/package.json"); console.log(JSON.stringify({name:p.name,version:p.version,private:true,type:"module",dependencies:{ink:p.dependencies.ink,react:p.dependencies.react}},null,2))' > "$root/package.json" | |
| node -e "const p=require('./apps/zoo/package.json'); console.log(JSON.stringify({name:p.name,version:p.version,private:true,type:'module',dependencies:{ink:p.dependencies.ink,react:p.dependencies.react,commander:p.dependencies.commander}},null,2))" > "$root/package.json" |
| expect(help).toContain(command) | ||
| expect(docs).toContain(`zoo ${command}`) | ||
| } | ||
| expect(docs).toContain("stream-json") |
There was a problem hiding this comment.
stream-json and --approval are registered on the run/resume subcommands (via the automation()/shared() helpers), not on the top-level --help this test invokes. So these two assertions only ever check the markdown — a regression that silently dropped either flag from the CLI would still pass. Worth also asserting against zoo run --help?
| "$root/bin/zoo" --help | ||
| "$root/bin/zoo" --version | ||
| tar -czf "zoo-cli-${PLATFORM}.tar.gz" "$root" | ||
| shasum -a 256 "zoo-cli-${PLATFORM}.tar.gz" > "zoo-cli-${PLATFORM}.tar.gz.sha256" |
There was a problem hiding this comment.
The existing cli-release.yml guards this for Linux runners with a sha256sum → shasum fallback. Should this match that pattern so the checksum doesn't depend on Perl's shasum being present on the Ubuntu runners?
Stack
Position 6 of 6 in the Zoo CLI stack.
fm/zoo-cli-interactive(PR feat(cli): add interactive Zoo terminal client #1160)Scope
roocoexistence.Acceptance Evidence
pnpm --dir packages/zoo-host build, test, and typecheckpnpm --dir apps/zoo test(11 tests) and typecheckRisk
The initial artifact matrix is intentionally narrow and release lockstep is mandatory. Modes/models metadata commands remain withheld because canonical queries currently activate mutable extension services. Signing and publication credentials remain maintainer-controlled.
flowchart LR C[apps/zoo client] --> A[Relocatable artifact] H[Bundled zoo-host] --> A E[Production extension] --> A D[Runtime dependencies] --> A A --> M{Supported matrix} M --> MA[macOS ARM64] M --> LX[Linux x64] M --> LA[Linux ARM64] MA --> S[Smoke, checksum, upload] LX --> S LA --> S