返回 DeepSeek-Reasonix
quality_floor.go
根目录 / internal / control / quality_floor.go
1 package control
2
3 import (
4 "fmt"
5 "strings"
6
7 "reasonix/internal/taskcontract"
8 )
9
10 func errUnknownQualityFloor(raw string) error {
11 return fmt.Errorf("unknown retired quality floor %q", raw)
12 }
13
14 // Legacy quality-floor vocabulary. Delivery remains accepted at compatibility
15 // boundaries but always folds to standard.
16
17 const (
18 QualityFloorStandard = "standard"
19 QualityFloorDelivery = "delivery"
20 )
21
22 // NormalizeQualityFloor maps every recognized legacy label onto standard.
23 // Unknown values remain errors so no new vocabulary can appear.
24 func NormalizeQualityFloor(raw string) (string, error) {
25 switch strings.ToLower(strings.TrimSpace(raw)) {
26 case "", QualityFloorStandard, QualityFloorDelivery, "deliver", "quality", "balanced", "full", "normal":
27 return QualityFloorStandard, nil
28 case "light", "economy", "eco", "lite", "save", "saving", "low", "minimal":
29 return QualityFloorStandard, nil
30 default:
31 return "", errUnknownQualityFloor(raw)
32 }
33 }
34
35 func QualityFloorConstraint(string) taskcontract.PolicyFloor {
36 return taskcontract.PolicyFloorNone
37 }
38
39 // QualityFloor returns the session floor's wire label.
40 func (c *Controller) QualityFloor() string {
41 return QualityFloorStandard
42 }
43
44 // SetQualityFloor validates a retired compatibility value. It never mutates
45 // session state or the provider-visible prefix.
46 func (c *Controller) SetQualityFloor(floor string) error {
47 _, err := NormalizeQualityFloor(floor)
48 if err != nil {
49 return err
50 }
51 return nil
52 }
53
54 func (c *Controller) qualityFloorConstraint() taskcontract.PolicyFloor {
55 return taskcontract.PolicyFloorNone
56 }
57
58 // sessionSettings holds the remaining per-session planning posture.
59 type sessionSettings struct {
60 planMode bool
61 }
62
62 lines GO