MCPcopy Index your code
hub / github.com/docker/docker-agent / ragEventForwarder

Function ragEventForwarder

pkg/runtime/rag.go:11–39  ·  view source on GitHub ↗

ragEventForwarder returns a callback that converts RAG manager events to runtime events.

(ragName string, r *LocalRuntime, sendEvent func(Event))

Source from the content-addressed store, hash-verified

9
10// ragEventForwarder returns a callback that converts RAG manager events to runtime events.
11func ragEventForwarder(ragName string, r *LocalRuntime, sendEvent func(Event)) ragtypes.EventCallback {
12 return func(ragEvent ragtypes.Event) {
13 agentName := r.currentAgentName()
14 slog.Debug("Forwarding RAG event", "type", ragEvent.Type, "rag", ragName, "agent", agentName)
15
16 switch ragEvent.Type {
17 case ragtypes.EventTypeIndexingStarted:
18 sendEvent(RAGIndexingStarted(ragName, ragEvent.StrategyName))
19 case ragtypes.EventTypeIndexingProgress:
20 if ragEvent.Progress != nil {
21 sendEvent(RAGIndexingProgress(ragName, ragEvent.StrategyName, ragEvent.Progress.Current, ragEvent.Progress.Total, agentName))
22 }
23 case ragtypes.EventTypeIndexingComplete:
24 sendEvent(RAGIndexingCompleted(ragName, ragEvent.StrategyName))
25 case ragtypes.EventTypeUsage:
26 sendEvent(NewTokenUsageEvent("", agentName, &Usage{
27 InputTokens: ragEvent.TotalTokens,
28 ContextLength: ragEvent.TotalTokens,
29 Cost: ragEvent.Cost,
30 }))
31 case ragtypes.EventTypeError:
32 if ragEvent.Error != nil {
33 sendEvent(Error(fmt.Sprintf("RAG %s error: %v", ragName, ragEvent.Error)))
34 }
35 default:
36 slog.Debug("Unhandled RAG event type", "type", ragEvent.Type, "rag", ragName)
37 }
38 }
39}

Callers 1

Calls 7

RAGIndexingStartedFunction · 0.85
RAGIndexingProgressFunction · 0.85
RAGIndexingCompletedFunction · 0.85
NewTokenUsageEventFunction · 0.85
currentAgentNameMethod · 0.80
DebugMethod · 0.80
ErrorFunction · 0.70

Tested by

no test coverage detected