Files
ai-agent-scaffold-go/internal/domain/agent/service/armory/ai_api_node.go
2026-05-30 23:16:49 +08:00

28 lines
759 B
Go

package armory
import (
"context"
"ai-agent-scaffold-go/internal/domain/agent/model"
"ai-agent-scaffold-go/internal/domain/agent/ports"
"ai-agent-scaffold-go/internal/domain/shared/tree"
)
type AiAPINode struct {
modelProvider ports.ModelProvider
next Handler
}
func NewAiAPINode(modelProvider ports.ModelProvider, next Handler) AiAPINode {
return AiAPINode{modelProvider: modelProvider, next: next}
}
func (n AiAPINode) Apply(ctx context.Context, command model.ArmoryCommand, dynamic *DynamicContext) (model.RegisteredAgent, error) {
api, err := n.modelProvider.NewAPI(ctx, command.Table.Module.AiAPI)
if err != nil {
return model.RegisteredAgent{}, err
}
dynamic.ModelAPI = api
return tree.Route(ctx, n.next, command, dynamic)
}