Commit graph

4 commits

Author SHA1 Message Date
Sulkta
5b8ff3c5f1 Merge pull request 'Update Rust crate anyhow to v1.0.103' (#1) from renovate/anyhow-1.x-lockfile into main 2026-06-27 17:05:48 -07:00
c142b2906c Update Rust crate serde_json to v1.0.150 2026-06-27 20:23:33 +00:00
7bb5b8eb88 Update Rust crate anyhow to v1.0.103 2026-06-27 20:23:27 +00:00
Sulkta
ecdb97f455 add examples, end-to-end tests, and Cargo.lock
Three examples:
- basic.rs: query() one-shot prompt + cost reporting.
- with_options.rs: system_prompt, model selection, effort, permission mode.
- interactive.rs: Client multi-turn session with two back-to-back sends.

Integration tests in tests/transport_end_to_end.rs spawn a tiny POSIX
shell script (tests/fake_cli/fake-claude.sh) as a stand-in for the real
claude CLI. The fake answers -v with a version, reads one user-message
frame on stdin, and emits a fixed assistant + result pair on stdout, then
blocks on stdin until close. This proves the spawn / write / read /
disconnect lifecycle works without an authenticated claude install.

Coverage:
- query() round-trip: stream yields Assistant then Result.
- Client round-trip: connect + send + drain to Result + disconnect.
- CLI-not-found surfaces as a typed Error::CliNotFound.

Cargo.lock is committed since this is, in practice, both a library and a
binary (the examples link the crate). Locking dev-deps avoids surprise
churn in CI.
2026-05-14 08:04:04 -07:00