package harness import ( "time" "keel/internal/ai" "keel/internal/enforce" "keel/internal/knowledge" "keel/internal/tasks" ) // Services is the shared infrastructure every mode receives from the harness. // Dir is the mode's namespaced persistence directory (~/.keel/modes/); // modes build their own file paths under it. Notify fires the harness change // listeners (web SSE + status bar). type Services struct { AI *ai.Service Tasks tasks.Provider Knowledge knowledge.Source Enforce enforce.Guard Clock func() time.Time Dir string Notify func() }