1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
use clap::{Subcommand, ValueEnum};
/// Output format options for the `schema` command.
#[derive(Copy, Clone, Debug, PartialEq, Eq, ValueEnum)]
pub enum SchemaOutputFormat {
/// Emit one JSON document with all selected schemas.
Json,
/// Emit one JSON object per line.
Ndjson,
}
/// Documentation detail level for the `schema` command.
#[derive(Copy, Clone, Debug, PartialEq, Eq, ValueEnum)]
pub enum SchemaMode {
/// Minimal descriptions and compact parameter metadata.
Minimal,
/// Balanced descriptions for agent discovery.
Progressive,
/// Full descriptions and full parameter metadata.
Full,
}
/// Schema-focused subcommands.
#[derive(Subcommand, Debug, Clone)]
pub enum SchemaCommands {
/// List built-in VT Code tool schemas.
Tools {
/// Documentation detail level for tool descriptions.
#[arg(long, value_enum, default_value_t = SchemaMode::Progressive)]
mode: SchemaMode,
/// Output format for schema payloads.
#[arg(long, value_enum, default_value_t = SchemaOutputFormat::Json)]
format: SchemaOutputFormat,
/// Filter by tool name (repeatable).
#[arg(long = "name", value_name = "TOOL")]
names: Vec<String>,
},
}