diff --git a/cmd/antidriftd/main.go b/cmd/antidriftd/main.go index 65aef82..b1b8ef4 100644 --- a/cmd/antidriftd/main.go +++ b/cmd/antidriftd/main.go @@ -5,10 +5,12 @@ package main import ( "context" "log" + "os" "os/exec" "runtime" "time" + "antidrift/internal/ai" "antidrift/internal/evidence" "antidrift/internal/session" "antidrift/internal/store" @@ -30,6 +32,16 @@ func main() { srv := web.NewServer(ctrl) srv.Init() // re-arm or expire a restored Active session + // Wire the AI planning coach. Backend selectable via ANTIDRIFT_AI_BACKEND + // (claude default, or codex). Misconfiguration degrades to no coach rather + // than failing startup — manual planning still works. + if backend, err := ai.NewBackend(os.Getenv("ANTIDRIFT_AI_BACKEND")); err != nil { + log.Printf("ai coach disabled: %v", err) + } else { + ctrl.SetCoach(ai.NewService(backend)) + log.Printf("ai coach: %s backend", backend.Name()) + } + src := evidence.NewSource() go src.Watch(context.Background(), ctrl.RecordWindow)