agent-kit 0.4.1

Toolkit for CLI tools integrating with AI agent loops
Documentation
# Eval: Hook Round Trip

**Status:** planned

## Goal

Verify that the hook system's fire -> poll -> receive pipeline works end-to-end across all transport types.

## Test Cases

1. **Basic round trip** -- `fire("post_write", event)` then `poll("post_write", 0)` returns the event with correct fields
2. **Timestamp filtering** -- Events before `since_secs` are excluded from poll results
3. **TTL expiry** -- Events older than TTL are cleaned up on poll and not returned
4. **FileTransport delivery** -- `FileTransport::deliver` writes event that a separate `HookRegistry` can poll
5. **SocketTransport unavailable** -- Returns `is_available() == false` when no socket exists
6. **ChainTransport fallthrough** -- Socket unavailable, falls through to FileTransport successfully
7. **fire_and_deliver** -- Fires locally AND delivers to target sessions via transport
8. **Multiple events ordering** -- Multiple fires return in timestamp order from poll
9. **Nonexistent hook** -- `poll("nonexistent", 0)` returns empty vec, no error
10. **GC across hooks** -- `gc()` triggers poll-based cleanup on all hook directories

## Pass Criteria

All 10 cases pass. Events survive the full fire -> serialize -> deserialize -> poll cycle with data intact. No file descriptor leaks. Expired events are cleaned up.

## Coverage

Unit tests in `hooks.rs` cover cases 1-9. This eval adds case 10 and serves as the end-to-end acceptance spec.