Java types this repo actually defines
3 real types, all from one file — scripts/agents/schema.java — added
2026-07-01. Grounding: scripts/agents/schema.java, a same-day-authored Java 17 mirror of
crates/schema/src/agent.rs — the first Java code in this repo.
See why just one file.
AgentConfig
scripts/agents/schema.java
Java 17 record (name, description, model, tools, maxTurns, systemPrompt). Ships a validate() ported line-for-line from the Rust validate() (name regex, description/system_prompt length checks) and a toYaml() that manually emits the same block-scalar YAML shape as the Rust to_yaml() - no YAML library dependency, since this repo has no Java build file (pom.xml/build.gradle) to declare one yet. That gap is stated explicitly in the file's own doc comment, not hidden.
mirrors: crates/schema/src/agent.rs::AgentConfig; scripts/agents/schema.py::AgentConfig; scripts/agents/schema.ts::AgentConfig
AgentModel
scripts/agents/schema.java
Java enum with 4 constants: OPUS_4_8, SONNET_4_6, HAIKU_4_5, FABLE_5. Each carries its exact wire-format string constant copied verbatim from agent.rs, exposed via asStr(). Written current with agent.rs (includes FABLE_5).
mirrors: crates/schema/src/agent.rs::AgentModel; scripts/agents/schema.py::AgentModel; scripts/agents/schema.ts::AgentModel
AgentTool
scripts/agents/schema.java
21-constant Java enum, one entry per built-in Claude Code tool, same order and wire-format strings as the Rust source.
mirrors: crates/schema/src/agent.rs::AgentTool; scripts/agents/schema.py::AgentTool; scripts/agents/schema.ts::AgentTool