- 1001
} - 1002
- 1003
#[test] - 1004
fn effort_is_withheld_when_not_allowed_even_if_requested() { - 1005
let mut req = ChatRequest::new("claude-haiku-4-5"); - 1006
req.messages = vec![Message::user_text("hi")]; - 1007
req.effort = Some(Effort::High); - 1008
let body = build_body(&req, false, false).unwrap(); - 1009
assert!(body.get("output_config").is_none()); - 1010
} - 1011
- 1012
#[test] - 1013
fn the_adapter_never_sends_a_thinking_field() { - 1014
// docs/design/68 §11: current models either 400 on an explicit - 1015
// `{"type":"disabled"}`/`budget_tokens` or silently degrade under - 1016
// it. This build must never construct either shape, whatever the - 1017
// effort/think inputs are. - 1018
for (effort, think) in [ - 1019
(None, None), - 1020
(None, Some(false)), - 1021
(Some(Effort::Low), None), - 1022
(Some(Effort::Max), Some(false)), - 1023
] { - 1024
let mut req = ChatRequest::new("claude-opus-5"); - 1025
req.messages = vec![Message::user_text("hi")]; - 1026
req.effort = effort; - 1027
req.think = think; - 1028
let body = build_body(&req, true, false).unwrap(); - 1029
assert!(body.get("thinking").is_none(), "{effort:?}/{think:?}"); - 1030
} - 1031
} - 1032
- 1033
#[test] - 1034
fn fast_mode_sets_the_speed_field_only_when_enabled() { - 1035
let mut req = ChatRequest::new("claude-opus-5"); - 1036
req.messages = vec![Message::user_text("hi")]; - 1037
let on = build_body(&req, true, true).unwrap(); - 1038
assert_eq!(on["speed"], "fast"); - 1039
let off = build_body(&req, true, false).unwrap(); - 1040
assert!(off.get("speed").is_none()); - 1041
} - 1042
- 1043
#[test] - 1044
fn rejects_effort_detects_the_parameter_by_name() { - 1045
assert!(rejects_effort( - 1046
"output_config.effort: extra fields not permitted" - 1047
)); - 1048
assert!(rejects_effort("Unknown parameter: 'effort'")); - 1049
assert!(!rejects_effort("model does not exist")); - 1050
} - 1051
} - 1052
Indexing the workspace…
Vakyartha documentation is discovering safe artifacts, anchors, and source references.