Extract the event model into its own crate, shared with client-core

RUST.md's recommendation item 1 starts here: Event, QuestionOption,
SessionStatus, ImageRef, AttachmentRef, SeqEvent, context_tokens and
context_after move to a new event-model crate so a future Rust client
shares one definition with server/ instead of Events.kt's hand-kept
mirror. session/driver.rs and session/transcript.rs re-export
everything they used to define, so nothing downstream of either
module changed.

cargo test (127 passed), clippy --all-targets and fmt clean in both
server/ and event-model/.

Co-Authored-By: Claude Sonnet <noreply@anthropic.com>
This commit is contained in:
irisandClaude Sonnet committed 2026-09-04 22:40:15 -04:00
1 parent 1fcaa2d72d
commit bc3db183e3
140 files changed
+863 -365

No files matched your search

@@ -0,0 +1,49 @@
/home/bob/repos/ai-app-2/.claude/worktrees/agent-a30feda38122e4492/event-model/target/debug/deps/syn-ba824d1fb7fccb81.d: /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/lib.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/macros.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/group.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/token.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/attr.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/bigint.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/buffer.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/classify.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/custom_keyword.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/custom_punctuation.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/data.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/derive.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/drops.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/error.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/expr.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/ext.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/fixup.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/generics.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/ident.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/lifetime.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/lit.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/lookahead.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/mac.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/meta.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/op.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/parse.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/discouraged.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/parse_macro_input.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/parse_quote.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/path.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/precedence.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/print.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/punctuated.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/restriction.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/sealed.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/scan_expr.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/span.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/spanned.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/thread.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/ty.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/verbatim.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/export.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/gen/clone.rs
/home/bob/repos/ai-app-2/.claude/worktrees/agent-a30feda38122e4492/event-model/target/debug/deps/libsyn-ba824d1fb7fccb81.rlib: /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/lib.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/macros.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/group.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/token.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/attr.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/bigint.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/buffer.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/classify.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/custom_keyword.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/custom_punctuation.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/data.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/derive.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/drops.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/error.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/expr.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/ext.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/fixup.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/generics.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/ident.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/lifetime.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/lit.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/lookahead.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/mac.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/meta.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/op.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/parse.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/discouraged.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/parse_macro_input.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/parse_quote.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/path.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/precedence.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/print.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/punctuated.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/restriction.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/sealed.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/scan_expr.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/span.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/spanned.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/thread.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/ty.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/verbatim.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/export.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/gen/clone.rs
/home/bob/repos/ai-app-2/.claude/worktrees/agent-a30feda38122e4492/event-model/target/debug/deps/libsyn-ba824d1fb7fccb81.rmeta: /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/lib.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/macros.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/group.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/token.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/attr.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/bigint.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/buffer.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/classify.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/custom_keyword.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/custom_punctuation.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/data.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/derive.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/drops.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/error.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/expr.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/ext.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/fixup.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/generics.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/ident.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/lifetime.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/lit.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/lookahead.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/mac.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/meta.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/op.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/parse.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/discouraged.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/parse_macro_input.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/parse_quote.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/path.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/precedence.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/print.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/punctuated.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/restriction.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/sealed.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/scan_expr.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/span.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/spanned.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/thread.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/ty.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/verbatim.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/export.rs /home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/gen/clone.rs
/home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/lib.rs:
/home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/macros.rs:
/home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/group.rs:
/home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/token.rs:
/home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/attr.rs:
/home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/bigint.rs:
/home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/buffer.rs:
/home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/classify.rs:
/home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/custom_keyword.rs:
/home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/custom_punctuation.rs:
/home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/data.rs:
/home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/derive.rs:
/home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/drops.rs:
/home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/error.rs:
/home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/expr.rs:
/home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/ext.rs:
/home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/fixup.rs:
/home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/generics.rs:
/home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/ident.rs:
/home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/lifetime.rs:
/home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/lit.rs:
/home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/lookahead.rs:
/home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/mac.rs:
/home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/meta.rs:
/home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/op.rs:
/home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/parse.rs:
/home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/discouraged.rs:
/home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/parse_macro_input.rs:
/home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/parse_quote.rs:
/home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/path.rs:
/home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/precedence.rs:
/home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/print.rs:
/home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/punctuated.rs:
/home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/restriction.rs:
/home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/sealed.rs:
/home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/scan_expr.rs:
/home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/span.rs:
/home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/spanned.rs:
/home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/thread.rs:
/home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/ty.rs:
/home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/verbatim.rs:
/home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/export.rs:
/home/bob/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-3.0.5/src/gen/clone.rs: