AGENTS.md@crates/common/vtcode-utility-tool-specs · git:20261002.c7ea326 · 2026-10-02 · sha256 6f60874490387f28

AGENTS.md@crates/common/vtcode-utility-tool-specs git:20261002.c7ea326A

Immutable. This exact content never changes and is served at /api/v1/blob/6f60874490387f28.

<!-- Compact maintainer rules retain the repository instruction line budget. -->
<!-- markdownlint-disable MD013 -->
# vtcode-utility-tool-specs

[Root AGENTS.md](../../../AGENTS.md) | Passive JSON schemas for VT Code utility, file, scheduling, and collaboration tool surfaces. Defines the wire format for tool invocations and results.

## Conventions

- Schemas are defined using `serde` derive macros. Every schema type must derive `Serialize` and `Deserialize`. This crate is a leaf dependency -- do not add dependencies on other vtcode workspace crates (except `vtcode-commons` if needed). Schema types are passive data containers with no behavior or validation logic.
- Uses `rmcp` for MCP schema compatibility.
- Use `with_max_output_tokens_parameter` when exposing object-shaped function schemas to models; execution validation belongs in `vtcode-core`.

## Module Groups

| Area | Modules |
| --- | --- |
| Schemas | `collaboration/`, `json_schema/`, `responses_api/`, `mcp_tool/` |
| Taxonomy | `tool_kind/` (`ToolKind`, `ToolNamespace`, `CanonicalToolMeta`, `TokenBucket`) |

## Dependencies

- `rmcp` (MCP schema types)
- `serde` / `serde_json` (serialization)

`write_stdin` keeps legacy `session_id`/`chars` calls valid; wait/inspect/terminate/close need no chars. `exec_command.background` and pipe `stdin` are opt-in and default to false; PTYs retain input.