@@ -24,6 +24,7 @@ import (
2424 "github.com/appsprout-dev/mnemonic/internal/daemon"
2525 "github.com/appsprout-dev/mnemonic/internal/events"
2626 "github.com/appsprout-dev/mnemonic/internal/llm"
27+ "github.com/appsprout-dev/mnemonic/internal/llm/llamacpp"
2728 "github.com/appsprout-dev/mnemonic/internal/logger"
2829 "github.com/appsprout-dev/mnemonic/internal/store/sqlite"
2930 "github.com/appsprout-dev/mnemonic/internal/watcher"
@@ -1383,8 +1384,12 @@ func serveCommand(configPath string) {
13831384
13841385 // Instrumented provider wrapper — gives each agent its own usage tracking.
13851386 // If training data capture is enabled, wrap with TrainingCaptureProvider too.
1387+ modelLabel := cfg .LLM .ChatModel
1388+ if cfg .LLM .Provider == "embedded" && cfg .LLM .Embedded .ChatModelFile != "" {
1389+ modelLabel = cfg .LLM .Embedded .ChatModelFile
1390+ }
13861391 wrap := func (caller string ) llm.Provider {
1387- var p llm.Provider = llm .NewInstrumentedProvider (llmProvider , memStore , caller , cfg . LLM . ChatModel )
1392+ var p llm.Provider = llm .NewInstrumentedProvider (llmProvider , memStore , caller , modelLabel )
13881393 if cfg .Training .CaptureEnabled && cfg .Training .CaptureDir != "" {
13891394 p = llm .NewTrainingCaptureProvider (p , caller , cfg .Training .CaptureDir )
13901395 }
@@ -2951,9 +2956,16 @@ func newLLMProvider(cfg *config.Config) llm.Provider {
29512956 Temperature : float32 (cfg .LLM .Temperature ),
29522957 MaxConcurrent : cfg .LLM .MaxConcurrent ,
29532958 })
2954- // Note: LoadModels must be called with a backend factory before use.
2955- // Until llama.cpp bindings are integrated, the provider will return
2956- // ErrProviderUnavailable on all inference calls.
2959+ backend := llamacpp .NewBackend ()
2960+ if backend != nil {
2961+ if err := ep .LoadModels (func () llm.Backend {
2962+ return llamacpp .NewBackend ()
2963+ }); err != nil {
2964+ slog .Error ("failed to load embedded models" , "error" , err )
2965+ }
2966+ } else {
2967+ slog .Warn ("embedded provider selected but llama.cpp not compiled in (build with: make build-embedded)" )
2968+ }
29572969 return ep
29582970 default : // "api" or ""
29592971 timeout := time .Duration (cfg .LLM .TimeoutSec ) * time .Second
0 commit comments