Add tri-state reasoning overrides

This commit is contained in:
2026-07-29 19:36:48 +00:00
parent f89cb94ed2
commit eb8ab215e8
9 changed files with 842 additions and 40 deletions

View File

@@ -299,12 +299,12 @@ type ExecutionTarget struct {
// ExecutionTargetOverride represents per-request runtime setting overrides and
// has no stable JSON representation.
//
// Non-empty string fields replace profile and backend values. Non-nil numeric
// pointers replace profile values and preserve explicit zero. A non-empty
// ExtraParams map replaces the complete profile or backend map rather than
// merging keys. Empty string fields, nil pointers, and a nil or empty
// ExtraParams map inherit the selected profile over its backend, when any, and
// framework defaults.
// Non-empty string fields replace profile and backend values. Non-nil pointer
// fields replace profile values and preserve explicit zero or empty values. A
// non-empty ExtraParams map replaces the complete profile or backend map
// rather than merging keys. Empty string fields, nil pointers, and a nil or
// empty ExtraParams map inherit the selected profile over its backend, when
// any, and framework defaults.
type ExecutionTargetOverride struct {
// Endpoint replaces the profile or backend endpoint when non-empty without
// changing the effective BackendID.
@@ -322,9 +322,11 @@ type ExecutionTargetOverride struct {
TimeoutSeconds *int
// ServiceTier replaces the profile value when non-blank.
ServiceTier string
// ReasoningEffort replaces the profile value when non-blank. An empty value
// cannot clear a profile setting.
ReasoningEffort string
// ReasoningEffort controls the per-run reasoning setting. Nil inherits the
// profile value. A pointer to a non-blank string trims and replaces the
// profile value. A pointer to an empty or whitespace-only string clears the
// inherited value and disables reasoning for this run.
ReasoningEffort *string
// APIKeyEnv replaces the profile or backend environment-variable name when
// non-blank. A direct RunRequest.APIKey still takes precedence over
// environment lookup.