ant: improve encapsulation
- Replace string literals with package constants for message roles and content types.
- Create UserStringMessage helper function to simplify user message creation
- Replace manual Content creation with ant.StringContent()
Co-Authored-By: sketch <hello@sketch.dev>
diff --git a/loop/agent_test.go b/loop/agent_test.go
index f1d5b51..24c1c55 100644
--- a/loop/agent_test.go
+++ b/loop/agent_test.go
@@ -492,7 +492,7 @@
}
func (m *mockConvoInterface) SendUserTextMessage(s string, otherContents ...ant.Content) (*ant.MessageResponse, error) {
- return m.SendMessage(ant.Message{Role: "user", Content: []ant.Content{{Type: "text", Text: s}}})
+ return m.SendMessage(ant.UserStringMessage(s))
}
func (m *mockConvoInterface) ToolResultContents(ctx context.Context, resp *ant.MessageResponse) ([]ant.Content, error) {
@@ -503,7 +503,7 @@
}
func (m *mockConvoInterface) ToolResultCancelContents(resp *ant.MessageResponse) ([]ant.Content, error) {
- return []ant.Content{{Type: "text", Text: "Tool use cancelled"}}, nil
+ return []ant.Content{ant.StringContent("Tool use cancelled")}, nil
}
func (m *mockConvoInterface) CancelToolUse(toolUseID string, cause error) error {
@@ -544,7 +544,7 @@
return &ant.MessageResponse{
StopReason: ant.StopReasonEndTurn,
Content: []ant.Content{
- {Type: "text", Text: "This is a test response"},
+ ant.StringContent("This is a test response"),
},
}, nil
}
@@ -619,8 +619,8 @@
return &ant.MessageResponse{
StopReason: ant.StopReasonToolUse,
Content: []ant.Content{
- {Type: "text", Text: "I'll use a tool"},
- {Type: "tool_use", ToolName: "test_tool", ToolInput: []byte("{}"), ID: "test_id"},
+ ant.StringContent("I'll use a tool"),
+ {Type: ant.ContentTypeToolUse, ToolName: "test_tool", ToolInput: []byte("{}"), ID: "test_id"},
},
}, nil
}
@@ -628,14 +628,14 @@
return &ant.MessageResponse{
StopReason: ant.StopReasonEndTurn,
Content: []ant.Content{
- {Type: "text", Text: "Finished using the tool"},
+ ant.StringContent("Finished using the tool"),
},
}, nil
}
// Tool result content handler
mockConvo.ToolResultContentsFunc = func(ctx context.Context, resp *ant.MessageResponse) ([]ant.Content, error) {
- return []ant.Content{{Type: "text", Text: "Tool executed successfully"}}, nil
+ return []ant.Content{ant.StringContent("Tool executed successfully")}, nil
}
// Track state transitions