refactor: declare func types for agent callbacks

Andrey Nering created

Change summary

agent.go | 111 +++++++++++++++++++++++++++++++++++++++++++++++----------
1 file changed, 90 insertions(+), 21 deletions(-)

Detailed changes

agent.go 🔗

@@ -154,6 +154,75 @@ type AgentCall struct {
 	RepairToolCall RepairToolCallFunction
 }
 
+// Agent-level callbacks.
+type (
+	// OnAgentStartFunc is called when agent starts.
+	OnAgentStartFunc func()
+
+	// OnAgentFinishFunc is called when agent finishes.
+	OnAgentFinishFunc func(result *AgentResult) error
+
+	// OnStepStartFunc is called when a step starts.
+	OnStepStartFunc func(stepNumber int) error
+
+	// OnStepFinishFunc is called when a step finishes.
+	OnStepFinishFunc func(stepResult StepResult) error
+
+	// OnFinishFunc is called when entire agent completes.
+	OnFinishFunc func(result *AgentResult)
+
+	// OnErrorFunc is called when an error occurs.
+	OnErrorFunc func(error)
+)
+
+// Stream part callbacks - called for each corresponding stream part type.
+type (
+	// OnChunkFunc is called for each stream part (catch-all).
+	OnChunkFunc func(StreamPart) error
+
+	// OnWarningsFunc is called for warnings.
+	OnWarningsFunc func(warnings []CallWarning) error
+
+	// OnTextStartFunc is called when text starts.
+	OnTextStartFunc func(id string) error
+
+	// OnTextDeltaFunc is called for text deltas.
+	OnTextDeltaFunc func(id, text string) error
+
+	// OnTextEndFunc is called when text ends.
+	OnTextEndFunc func(id string) error
+
+	// OnReasoningStartFunc is called when reasoning starts.
+	OnReasoningStartFunc func(id string) error
+
+	// OnReasoningDeltaFunc is called for reasoning deltas.
+	OnReasoningDeltaFunc func(id, text string) error
+
+	// OnReasoningEndFunc is called when reasoning ends.
+	OnReasoningEndFunc func(id string, reasoning ReasoningContent) error
+
+	// OnToolInputStartFunc is called when tool input starts.
+	OnToolInputStartFunc func(id, toolName string) error
+
+	// OnToolInputDeltaFunc is called for tool input deltas.
+	OnToolInputDeltaFunc func(id, delta string) error
+
+	// OnToolInputEndFunc is called when tool input ends.
+	OnToolInputEndFunc func(id string) error
+
+	// OnToolCallFunc is called when tool call is complete.
+	OnToolCallFunc func(toolCall ToolCallContent) error
+
+	// OnToolResultFunc is called when tool execution completes.
+	OnToolResultFunc func(result ToolResultContent) error
+
+	// OnSourceFunc is called for source references.
+	OnSourceFunc func(source SourceContent) error
+
+	// OnStreamFinishFunc is called when stream finishes.
+	OnStreamFinishFunc func(usage Usage, finishReason FinishReason, providerMetadata ProviderMetadata) error
+)
+
 type AgentStreamCall struct {
 	Prompt           string     `json:"prompt"`
 	Files            []FilePart `json:"files"`
@@ -175,29 +244,29 @@ type AgentStreamCall struct {
 	RepairToolCall RepairToolCallFunction
 
 	// Agent-level callbacks
-	OnAgentStart  func()                            // Called when agent starts
-	OnAgentFinish func(result *AgentResult) error   // Called when agent finishes
-	OnStepStart   func(stepNumber int) error        // Called when a step starts
-	OnStepFinish  func(stepResult StepResult) error // Called when a step finishes
-	OnFinish      func(result *AgentResult)         // Called when entire agent completes
-	OnError       func(error)                       // Called when an error occurs
+	OnAgentStart  OnAgentStartFunc  // Called when agent starts
+	OnAgentFinish OnAgentFinishFunc // Called when agent finishes
+	OnStepStart   OnStepStartFunc   // Called when a step starts
+	OnStepFinish  OnStepFinishFunc  // Called when a step finishes
+	OnFinish      OnFinishFunc      // Called when entire agent completes
+	OnError       OnErrorFunc       // Called when an error occurs
 
 	// Stream part callbacks - called for each corresponding stream part type
-	OnChunk          func(StreamPart) error                                                                // Called for each stream part (catch-all)
-	OnWarnings       func(warnings []CallWarning) error                                                    // Called for warnings
-	OnTextStart      func(id string) error                                                                 // Called when text starts
-	OnTextDelta      func(id, text string) error                                                           // Called for text deltas
-	OnTextEnd        func(id string) error                                                                 // Called when text ends
-	OnReasoningStart func(id string) error                                                                 // Called when reasoning starts
-	OnReasoningDelta func(id, text string) error                                                           // Called for reasoning deltas
-	OnReasoningEnd   func(id string, reasoning ReasoningContent) error                                     // Called when reasoning ends
-	OnToolInputStart func(id, toolName string) error                                                       // Called when tool input starts
-	OnToolInputDelta func(id, delta string) error                                                          // Called for tool input deltas
-	OnToolInputEnd   func(id string) error                                                                 // Called when tool input ends
-	OnToolCall       func(toolCall ToolCallContent) error                                                  // Called when tool call is complete
-	OnToolResult     func(result ToolResultContent) error                                                  // Called when tool execution completes
-	OnSource         func(source SourceContent) error                                                      // Called for source references
-	OnStreamFinish   func(usage Usage, finishReason FinishReason, providerMetadata ProviderMetadata) error // Called when stream finishes
+	OnChunk          OnChunkFunc          // Called for each stream part (catch-all)
+	OnWarnings       OnWarningsFunc       // Called for warnings
+	OnTextStart      OnTextStartFunc      // Called when text starts
+	OnTextDelta      OnTextDeltaFunc      // Called for text deltas
+	OnTextEnd        OnTextEndFunc        // Called when text ends
+	OnReasoningStart OnReasoningStartFunc // Called when reasoning starts
+	OnReasoningDelta OnReasoningDeltaFunc // Called for reasoning deltas
+	OnReasoningEnd   OnReasoningEndFunc   // Called when reasoning ends
+	OnToolInputStart OnToolInputStartFunc // Called when tool input starts
+	OnToolInputDelta OnToolInputDeltaFunc // Called for tool input deltas
+	OnToolInputEnd   OnToolInputEndFunc   // Called when tool input ends
+	OnToolCall       OnToolCallFunc       // Called when tool call is complete
+	OnToolResult     OnToolResultFunc     // Called when tool execution completes
+	OnSource         OnSourceFunc         // Called for source references
+	OnStreamFinish   OnStreamFinishFunc   // Called when stream finishes
 }
 
 type AgentResult struct {