Add dialoguectx packaging, conflictresolve adjudication with HITL routing, workspace context/dialogue/ injection (default on), and goose 00071.
48 lines
1020 B
Go
48 lines
1020 B
Go
package dialoguectx
|
|
|
|
import (
|
|
"os"
|
|
"strconv"
|
|
"strings"
|
|
)
|
|
|
|
// InjectionEnabled reports whether dialogue context injection is on.
|
|
// Default is on; set DIALOGUE_CTX_INJECTION=off|false|0 to disable urgently.
|
|
func InjectionEnabled() bool {
|
|
v := strings.TrimSpace(strings.ToLower(os.Getenv("DIALOGUE_CTX_INJECTION")))
|
|
switch v {
|
|
case "off", "false", "0", "no":
|
|
return false
|
|
default:
|
|
return true
|
|
}
|
|
}
|
|
|
|
// MaxDaysFromEnv returns the configured day window (default 7, cap 31).
|
|
func MaxDaysFromEnv() int {
|
|
return envInt("DIALOGUE_CTX_MAX_DAYS", DefaultMaxDays, 1, MaxDaysCap)
|
|
}
|
|
|
|
// MaxTurnsFromEnv returns the configured turn cap (default 80, cap 200).
|
|
func MaxTurnsFromEnv() int {
|
|
return envInt("DIALOGUE_CTX_MAX_TURNS", DefaultMaxTurns, 1, MaxTurnsCap)
|
|
}
|
|
|
|
func envInt(key string, def, min, max int) int {
|
|
raw := strings.TrimSpace(os.Getenv(key))
|
|
if raw == "" {
|
|
return def
|
|
}
|
|
n, err := strconv.Atoi(raw)
|
|
if err != nil {
|
|
return def
|
|
}
|
|
if n < min {
|
|
return min
|
|
}
|
|
if n > max {
|
|
return max
|
|
}
|
|
return n
|
|
}
|