package harness import ( "time" "keel/internal/ai" "keel/internal/enforce" "keel/internal/knowledge" "keel/internal/memory" "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). Memory is Keel's durable cross-run event // store (AW-backed, or a nop when AW is down). type Services struct { AI *ai.Service Tasks tasks.Provider Knowledge knowledge.Source Enforce enforce.Guard Memory memory.Store Clock func() time.Time Dir string Notify func() }