Documentation
¶
Index ¶
- func DecodeJSONBody(w http.ResponseWriter, r *http.Request, dst any, logger *zap.Logger) error
- func ValidateContentType(w http.ResponseWriter, r *http.Request, logger *zap.Logger) bool
- func ValidateEnum(value string, allowed []string) bool
- func ValidateNonNegative(value float64) bool
- func ValidateURL(s string) bool
- func WriteError(w http.ResponseWriter, err *types.Error, logger *zap.Logger)
- func WriteErrorMessage(w http.ResponseWriter, status int, code types.ErrorCode, message string, ...)
- func WriteJSON(w http.ResponseWriter, status int, data any)
- func WriteSuccess(w http.ResponseWriter, data any)
- type APIKeyHandler
- func (h *APIKeyHandler) HandleAPIKeyStats(w http.ResponseWriter, r *http.Request)
- func (h *APIKeyHandler) HandleCreateAPIKey(w http.ResponseWriter, r *http.Request)
- func (h *APIKeyHandler) HandleDeleteAPIKey(w http.ResponseWriter, r *http.Request)
- func (h *APIKeyHandler) HandleListAPIKeys(w http.ResponseWriter, r *http.Request)
- func (h *APIKeyHandler) HandleListProviders(w http.ResponseWriter, r *http.Request)
- func (h *APIKeyHandler) HandleUpdateAPIKey(w http.ResponseWriter, r *http.Request)
- type APIKeyService
- type APIKeyStore
- type AgentExecuteRequest
- type AgentExecuteResponse
- type AgentHandler
- func (h *AgentHandler) HandleAgentHealth(w http.ResponseWriter, r *http.Request)
- func (h *AgentHandler) HandleAgentStream(w http.ResponseWriter, r *http.Request)
- func (h *AgentHandler) HandleCapabilities(w http.ResponseWriter, r *http.Request)
- func (h *AgentHandler) HandleExecuteAgent(w http.ResponseWriter, r *http.Request)
- func (h *AgentHandler) HandleGetAgent(w http.ResponseWriter, r *http.Request)
- func (h *AgentHandler) HandleListAgents(w http.ResponseWriter, r *http.Request)
- func (h *AgentHandler) HandlePlanAgent(w http.ResponseWriter, r *http.Request)
- type AgentHealthResponse
- type AgentInfo
- type AgentOperation
- type AgentResolver
- type AgentService
- type ChatCompletionResult
- type ChatConverter
- type ChatHandler
- func NewChatHandler(provider llm.Provider, policyManager *llmpolicy.Manager, logger *zap.Logger) *ChatHandler
- func NewChatHandlerWithRuntime(provider llm.Provider, policyManager *llmpolicy.Manager, ...) *ChatHandler
- func NewChatHandlerWithService(service ChatService, logger *zap.Logger) *ChatHandler
- type ChatService
- type CheckResult
- type DatabaseHealthCheck
- type DefaultAPIKeyService
- func (s *DefaultAPIKeyService) CreateAPIKey(providerID uint, req createAPIKeyRequest) (*apiKeyResponse, *types.Error)
- func (s *DefaultAPIKeyService) DeleteAPIKey(providerID, keyID uint) *types.Error
- func (s *DefaultAPIKeyService) ListAPIKeyStats(providerID uint) ([]apiKeyStatsResponse, *types.Error)
- func (s *DefaultAPIKeyService) ListAPIKeys(providerID uint) ([]apiKeyResponse, *types.Error)
- func (s *DefaultAPIKeyService) ListProviders() ([]llm.LLMProvider, *types.Error)
- func (s *DefaultAPIKeyService) UpdateAPIKey(providerID, keyID uint, req updateAPIKeyRequest) (*apiKeyResponse, *types.Error)
- type DefaultAgentService
- func (s *DefaultAgentService) ExecuteAgent(ctx context.Context, req AgentExecuteRequest, traceID string) (*AgentExecuteResponse, time.Duration, *types.Error)
- func (s *DefaultAgentService) ExecuteAgentStream(ctx context.Context, req AgentExecuteRequest, traceID string, ...) *types.Error
- func (s *DefaultAgentService) GetAgent(ctx context.Context, agentID string) (*discovery.AgentInfo, *types.Error)
- func (s *DefaultAgentService) ListAgents(ctx context.Context) ([]*discovery.AgentInfo, *types.Error)
- func (s *DefaultAgentService) PlanAgent(ctx context.Context, req AgentExecuteRequest, traceID string) (*agent.PlanResult, *types.Error)
- func (s *DefaultAgentService) ResolveForOperation(ctx context.Context, agentID string, op AgentOperation) (agent.Agent, *types.Error)
- type DefaultChatConverter
- func (c *DefaultChatConverter) ToAPIChoices(choices []llm.ChatChoice) []api.ChatChoice
- func (c *DefaultChatConverter) ToAPIResponse(resp *llm.ChatResponse) *api.ChatResponse
- func (c *DefaultChatConverter) ToAPIStreamChunk(chunk *llm.StreamChunk) *api.StreamChunk
- func (c *DefaultChatConverter) ToAPIUsage(usage llm.ChatUsage) api.ChatUsage
- func (c *DefaultChatConverter) ToLLMRequest(req *api.ChatRequest) *llm.ChatRequest
- type DefaultRAGService
- type DefaultToolRegistryService
- func (s *DefaultToolRegistryService) Create(req createToolRegistrationRequest) (*hosted.ToolRegistration, *types.Error)
- func (s *DefaultToolRegistryService) Delete(id uint) *types.Error
- func (s *DefaultToolRegistryService) List() ([]hosted.ToolRegistration, *types.Error)
- func (s *DefaultToolRegistryService) ListTargets() ([]string, *types.Error)
- func (s *DefaultToolRegistryService) Reload() *types.Error
- func (s *DefaultToolRegistryService) Update(id uint, req updateToolRegistrationRequest) (*hosted.ToolRegistration, *types.Error)
- type GormAPIKeyStore
- func (s *GormAPIKeyStore) CreateAPIKey(key *llm.LLMProviderAPIKey) error
- func (s *GormAPIKeyStore) DeleteAPIKey(keyID, providerID uint) (int64, error)
- func (s *GormAPIKeyStore) GetAPIKey(keyID, providerID uint) (llm.LLMProviderAPIKey, error)
- func (s *GormAPIKeyStore) ListAPIKeys(providerID uint) ([]llm.LLMProviderAPIKey, error)
- func (s *GormAPIKeyStore) ListProviders() ([]llm.LLMProvider, error)
- func (s *GormAPIKeyStore) ReloadAPIKey(key *llm.LLMProviderAPIKey) error
- func (s *GormAPIKeyStore) UpdateAPIKey(key *llm.LLMProviderAPIKey, updates map[string]any) error
- type GormToolRegistryStore
- func (s *GormToolRegistryStore) Create(row *hosted.ToolRegistration) error
- func (s *GormToolRegistryStore) Delete(id uint) (int64, error)
- func (s *GormToolRegistryStore) GetByID(id uint) (hosted.ToolRegistration, error)
- func (s *GormToolRegistryStore) GetByName(name string) (hosted.ToolRegistration, error)
- func (s *GormToolRegistryStore) List() ([]hosted.ToolRegistration, error)
- func (s *GormToolRegistryStore) Reload(row *hosted.ToolRegistration) error
- func (s *GormToolRegistryStore) Update(row *hosted.ToolRegistration, updates map[string]any) error
- type HealthCheck
- type HealthHandler
- func (h *HealthHandler) HandleHealth(w http.ResponseWriter, r *http.Request)
- func (h *HealthHandler) HandleHealthz(w http.ResponseWriter, r *http.Request)
- func (h *HealthHandler) HandleReady(w http.ResponseWriter, r *http.Request)
- func (h *HealthHandler) HandleVersion(version, buildTime, gitCommit string) http.HandlerFunc
- func (h *HealthHandler) RegisterCheck(check HealthCheck)
- type MemoryReferenceStore
- type MultimodalHandler
- func (h *MultimodalHandler) HandleCapabilities(w http.ResponseWriter, r *http.Request)
- func (h *MultimodalHandler) HandleChat(w http.ResponseWriter, r *http.Request)
- func (h *MultimodalHandler) HandleImage(w http.ResponseWriter, r *http.Request)
- func (h *MultimodalHandler) HandlePlan(w http.ResponseWriter, r *http.Request)
- func (h *MultimodalHandler) HandleUploadReference(w http.ResponseWriter, r *http.Request)
- func (h *MultimodalHandler) HandleVideo(w http.ResponseWriter, r *http.Request)
- type MultimodalHandlerConfig
- type ProtocolHandler
- func (h *ProtocolHandler) HandleA2AAgentCard(w http.ResponseWriter, r *http.Request)
- func (h *ProtocolHandler) HandleA2ASendTask(w http.ResponseWriter, r *http.Request)
- func (h *ProtocolHandler) HandleMCPCallTool(w http.ResponseWriter, r *http.Request)
- func (h *ProtocolHandler) HandleMCPGetResource(w http.ResponseWriter, r *http.Request)
- func (h *ProtocolHandler) HandleMCPListResources(w http.ResponseWriter, r *http.Request)
- func (h *ProtocolHandler) HandleMCPListTools(w http.ResponseWriter, r *http.Request)
- type RAGHandler
- type RAGQueryOptions
- type RAGQueryResponse
- type RAGService
- type RedisHealthCheck
- type RedisReferenceStore
- type ReferenceStore
- type Response
- type ResponseWriter
- type ServiceHealthResponse
- type ToolRegistryHandler
- func (h *ToolRegistryHandler) HandleCreate(w http.ResponseWriter, r *http.Request)
- func (h *ToolRegistryHandler) HandleDelete(w http.ResponseWriter, r *http.Request)
- func (h *ToolRegistryHandler) HandleList(w http.ResponseWriter, r *http.Request)
- func (h *ToolRegistryHandler) HandleListTargets(w http.ResponseWriter, r *http.Request)
- func (h *ToolRegistryHandler) HandleReload(w http.ResponseWriter, r *http.Request)
- func (h *ToolRegistryHandler) HandleUpdate(w http.ResponseWriter, r *http.Request)
- type ToolRegistryRuntime
- type ToolRegistryService
- type ToolRegistryStore
- type WorkflowExecutor
- type WorkflowHandler
- func (h *WorkflowHandler) HandleCapabilities(w http.ResponseWriter, r *http.Request)
- func (h *WorkflowHandler) HandleExecute(w http.ResponseWriter, r *http.Request)
- func (h *WorkflowHandler) HandleList(w http.ResponseWriter, r *http.Request)
- func (h *WorkflowHandler) HandleParse(w http.ResponseWriter, r *http.Request)
- type WorkflowService
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DecodeJSONBody ¶
DecodeJSONBody 解码 JSON 请求体
func ValidateContentType ¶
ValidateContentType 验证 Content-Type 使用 mime.ParseMediaType 进行宽松解析,正确处理大小写变体 (如 "application/json; charset=UTF-8")和额外参数。
func ValidateEnum ¶ added in v1.0.0
ValidateEnum checks whether value is one of the allowed values.
func ValidateNonNegative ¶ added in v1.0.0
ValidateNonNegative checks that value is >= 0.
func ValidateURL ¶ added in v1.0.0
ValidateURL validates that s is a well-formed HTTP or HTTPS URL.
func WriteError ¶
WriteError 写入错误响应(从 types.Error)
func WriteErrorMessage ¶
func WriteErrorMessage(w http.ResponseWriter, status int, code types.ErrorCode, message string, logger *zap.Logger)
WriteErrorMessage 写入简单错误消息
Types ¶
type APIKeyHandler ¶ added in v1.0.0
type APIKeyHandler struct {
// contains filtered or unexported fields
}
APIKeyHandler 处理 API Key 管理的 CRUD 操作
func NewAPIKeyHandler ¶ added in v1.0.0
func NewAPIKeyHandler(store APIKeyStore, logger *zap.Logger) *APIKeyHandler
NewAPIKeyHandler 创建 APIKeyHandler
func (*APIKeyHandler) HandleAPIKeyStats ¶ added in v1.0.0
func (h *APIKeyHandler) HandleAPIKeyStats(w http.ResponseWriter, r *http.Request)
HandleAPIKeyStats GET /api/v1/providers/{id}/api-keys/stats
func (*APIKeyHandler) HandleCreateAPIKey ¶ added in v1.0.0
func (h *APIKeyHandler) HandleCreateAPIKey(w http.ResponseWriter, r *http.Request)
HandleCreateAPIKey POST /api/v1/providers/{id}/api-keys
func (*APIKeyHandler) HandleDeleteAPIKey ¶ added in v1.0.0
func (h *APIKeyHandler) HandleDeleteAPIKey(w http.ResponseWriter, r *http.Request)
HandleDeleteAPIKey DELETE /api/v1/providers/{id}/api-keys/{keyId}
func (*APIKeyHandler) HandleListAPIKeys ¶ added in v1.0.0
func (h *APIKeyHandler) HandleListAPIKeys(w http.ResponseWriter, r *http.Request)
HandleListAPIKeys GET /api/v1/providers/{id}/api-keys
func (*APIKeyHandler) HandleListProviders ¶ added in v1.0.0
func (h *APIKeyHandler) HandleListProviders(w http.ResponseWriter, r *http.Request)
HandleListProviders GET /api/v1/providers
func (*APIKeyHandler) HandleUpdateAPIKey ¶ added in v1.0.0
func (h *APIKeyHandler) HandleUpdateAPIKey(w http.ResponseWriter, r *http.Request)
HandleUpdateAPIKey PUT /api/v1/providers/{id}/api-keys/{keyId}
type APIKeyService ¶ added in v1.4.6
type APIKeyService interface {
ListProviders() ([]llm.LLMProvider, *types.Error)
ListAPIKeys(providerID uint) ([]apiKeyResponse, *types.Error)
CreateAPIKey(providerID uint, req createAPIKeyRequest) (*apiKeyResponse, *types.Error)
UpdateAPIKey(providerID, keyID uint, req updateAPIKeyRequest) (*apiKeyResponse, *types.Error)
DeleteAPIKey(providerID, keyID uint) *types.Error
ListAPIKeyStats(providerID uint) ([]apiKeyStatsResponse, *types.Error)
}
APIKeyService encapsulates API key CRUD/use-case logic for API handlers.
type APIKeyStore ¶ added in v1.0.0
type APIKeyStore interface {
// ListProviders returns all LLM providers ordered by ID.
ListProviders() ([]llm.LLMProvider, error)
// ListAPIKeys returns all API keys for a given provider, ordered by priority then ID.
ListAPIKeys(providerID uint) ([]llm.LLMProviderAPIKey, error)
// CreateAPIKey persists a new API key record.
CreateAPIKey(key *llm.LLMProviderAPIKey) error
// GetAPIKey retrieves a single API key by key ID and provider ID.
GetAPIKey(keyID, providerID uint) (llm.LLMProviderAPIKey, error)
// UpdateAPIKey applies partial updates to an existing API key.
UpdateAPIKey(key *llm.LLMProviderAPIKey, updates map[string]any) error
// ReloadAPIKey refreshes the API key record from the database.
ReloadAPIKey(key *llm.LLMProviderAPIKey) error
// DeleteAPIKey removes an API key by key ID and provider ID.
// Returns the number of rows affected.
DeleteAPIKey(keyID, providerID uint) (int64, error)
}
APIKeyStore defines the data access operations required by APIKeyHandler.
type AgentExecuteRequest ¶
type AgentExecuteRequest struct {
AgentID string `json:"agent_id" binding:"required"`
Content string `json:"content" binding:"required"`
Provider string `json:"provider,omitempty"`
Model string `json:"model,omitempty"`
RoutePolicy string `json:"route_policy,omitempty"`
Metadata map[string]string `json:"metadata,omitempty"`
Tags []string `json:"tags,omitempty"`
Context map[string]any `json:"context,omitempty"`
Variables map[string]string `json:"variables,omitempty"`
}
AgentExecuteRequest Agent execution request
type AgentExecuteResponse ¶
type AgentExecuteResponse struct {
TraceID string `json:"trace_id"`
Content string `json:"content"`
Metadata map[string]any `json:"metadata,omitempty"`
TokensUsed int `json:"tokens_used,omitempty"`
Cost float64 `json:"cost,omitempty"`
Duration string `json:"duration"`
FinishReason string `json:"finish_reason,omitempty"`
}
AgentExecuteResponse Agent execution response
type AgentHandler ¶
type AgentHandler struct {
// contains filtered or unexported fields
}
AgentHandler Agent management handler
func NewAgentHandler ¶
func NewAgentHandler(registry discovery.Registry, agentRegistry *agent.AgentRegistry, logger *zap.Logger, resolver ...AgentResolver) *AgentHandler
NewAgentHandler creates an Agent handler. The resolver parameter is optional — if nil, execute/stream endpoints return 501.
func (*AgentHandler) HandleAgentHealth ¶
func (h *AgentHandler) HandleAgentHealth(w http.ResponseWriter, r *http.Request)
HandleAgentHealth checks agent health status @Summary Agent health check @Description Check if an agent is healthy and ready @Tags agent @Produce json @Param id query string true "Agent ID" @Success 200 {object} Response{data=AgentHealthResponse} "Agent health" @Failure 404 {object} Response "Agent not found" @Failure 503 {object} Response "Agent not ready" @Security ApiKeyAuth @Router /api/v1/agents/health [get]
func (*AgentHandler) HandleAgentStream ¶ added in v1.0.0
func (h *AgentHandler) HandleAgentStream(w http.ResponseWriter, r *http.Request)
HandleAgentStream executes an agent with streaming SSE output. The agent's RuntimeStreamEmitter is wired to write SSE events to the response. SSE event types: token, tool_call, tool_result, error, and [DONE] terminator. @Summary Stream agent execution @Description Execute an agent and stream results via SSE @Tags agent @Accept json @Produce text/event-stream @Param request body AgentExecuteRequest true "Execution request" @Success 200 {string} string "SSE stream" @Failure 400 {object} Response "Invalid request" @Failure 404 {object} Response "Agent not found" @Failure 500 {object} Response "Execution failed" @Security ApiKeyAuth @Router /api/v1/agents/execute/stream [post]
func (*AgentHandler) HandleCapabilities ¶ added in v1.4.6
func (h *AgentHandler) HandleCapabilities(w http.ResponseWriter, r *http.Request)
HandleCapabilities handles GET /api/v1/agents/capabilities
func (*AgentHandler) HandleExecuteAgent ¶
func (h *AgentHandler) HandleExecuteAgent(w http.ResponseWriter, r *http.Request)
HandleExecuteAgent executes an agent @Summary Execute agent @Description Execute an agent with the given input @Tags agent @Accept json @Produce json @Param request body AgentExecuteRequest true "Execution request" @Success 200 {object} Response{data=AgentExecuteResponse} "Execution result" @Failure 400 {object} Response "Invalid request" @Failure 404 {object} Response "Agent not found" @Failure 500 {object} Response "Execution failed" @Security ApiKeyAuth @Router /api/v1/agents/execute [post]
func (*AgentHandler) HandleGetAgent ¶
func (h *AgentHandler) HandleGetAgent(w http.ResponseWriter, r *http.Request)
HandleGetAgent gets a single agent's information @Summary Get agent @Description Get information about a specific agent @Tags agent @Produce json @Param id path string true "Agent ID" @Success 200 {object} Response{data=AgentInfo} "Agent info" @Failure 404 {object} Response "Agent not found" @Security ApiKeyAuth @Router /api/v1/agents/{id} [get]
func (*AgentHandler) HandleListAgents ¶
func (h *AgentHandler) HandleListAgents(w http.ResponseWriter, r *http.Request)
HandleListAgents lists all registered agents @Summary List agents @Description Get a list of all registered agents @Tags agent @Produce json @Success 200 {object} Response{data=[]AgentInfo} "Agent list" @Failure 500 {object} Response "Internal error" @Security ApiKeyAuth @Router /api/v1/agents [get]
func (*AgentHandler) HandlePlanAgent ¶
func (h *AgentHandler) HandlePlanAgent(w http.ResponseWriter, r *http.Request)
HandlePlanAgent plans agent execution @Summary Plan agent execution @Description Get an execution plan for an agent @Tags agent @Accept json @Produce json @Param request body AgentExecuteRequest true "Plan request" @Success 200 {object} Response{data=map[string]any} "Execution plan" @Failure 400 {object} Response "Invalid request" @Failure 404 {object} Response "Agent not found" @Failure 500 {object} Response "Plan failed" @Security ApiKeyAuth @Router /api/v1/agents/plan [post]
type AgentHealthResponse ¶
type AgentHealthResponse struct {
AgentID string `json:"agent_id"`
Status string `json:"status"`
Healthy bool `json:"healthy"`
Endpoint string `json:"endpoint,omitempty"`
Load float64 `json:"load"`
CheckedAt string `json:"checked_at"`
}
AgentHealthResponse Agent health check response
type AgentInfo ¶
type AgentInfo struct {
ID string `json:"id"`
Name string `json:"name"`
Type agent.AgentType `json:"type"`
State string `json:"state"`
Description string `json:"description,omitempty"`
Model string `json:"model,omitempty"`
CreatedAt string `json:"created_at,omitempty"`
}
AgentInfo Agent information returned by the API
type AgentOperation ¶ added in v1.4.6
type AgentOperation string
AgentOperation identifies the business intent for resolver fallback messages.
const ( AgentOperationExecute AgentOperation = "execution" AgentOperationStream AgentOperation = "streaming" AgentOperationPlan AgentOperation = "planning" )
type AgentResolver ¶ added in v1.0.0
AgentResolver resolves an agent ID to a live Agent instance. This decouples the handler from how agents are stored/managed at runtime.
type AgentService ¶ added in v1.4.6
type AgentService interface {
ResolveForOperation(ctx context.Context, agentID string, op AgentOperation) (agent.Agent, *types.Error)
ListAgents(ctx context.Context) ([]*discovery.AgentInfo, *types.Error)
GetAgent(ctx context.Context, agentID string) (*discovery.AgentInfo, *types.Error)
ExecuteAgent(ctx context.Context, req AgentExecuteRequest, traceID string) (*AgentExecuteResponse, time.Duration, *types.Error)
PlanAgent(ctx context.Context, req AgentExecuteRequest, traceID string) (*agent.PlanResult, *types.Error)
ExecuteAgentStream(ctx context.Context, req AgentExecuteRequest, traceID string, emitter agent.RuntimeStreamEmitter) *types.Error
}
AgentService encapsulates runtime agent resolution and endpoint availability checks.
type ChatCompletionResult ¶ added in v1.4.6
type ChatCompletionResult struct {
Response *api.ChatResponse
Raw *llm.ChatResponse
Duration time.Duration
}
ChatCompletionResult captures completion output and execution metadata.
type ChatConverter ¶ added in v1.4.6
type ChatConverter interface {
ToLLMRequest(req *api.ChatRequest) *llm.ChatRequest
ToAPIResponse(resp *llm.ChatResponse) *api.ChatResponse
ToAPIChoices(choices []llm.ChatChoice) []api.ChatChoice
ToAPIUsage(usage llm.ChatUsage) api.ChatUsage
ToAPIStreamChunk(chunk *llm.StreamChunk) *api.StreamChunk
}
ChatConverter centralizes request/response conversion between API and LLM layers.
type ChatHandler ¶
type ChatHandler struct {
// contains filtered or unexported fields
}
ChatHandler 聊天接口处理器
func NewChatHandler ¶
func NewChatHandler(provider llm.Provider, policyManager *llmpolicy.Manager, logger *zap.Logger) *ChatHandler
NewChatHandler 创建聊天处理器
func NewChatHandlerWithRuntime ¶ added in v1.4.6
func NewChatHandlerWithRuntime( provider llm.Provider, policyManager *llmpolicy.Manager, toolManager agent.ToolManager, logger *zap.Logger, ) *ChatHandler
NewChatHandlerWithRuntime creates a chat handler with routing runtime dependencies.
func NewChatHandlerWithService ¶ added in v1.4.6
func NewChatHandlerWithService(service ChatService, logger *zap.Logger) *ChatHandler
NewChatHandlerWithService creates a chat handler with an explicit service.
func (*ChatHandler) HandleCapabilities ¶ added in v1.4.6
func (h *ChatHandler) HandleCapabilities(w http.ResponseWriter, r *http.Request)
HandleCapabilities handles GET /api/v1/chat/capabilities
func (*ChatHandler) HandleCompletion ¶
func (h *ChatHandler) HandleCompletion(w http.ResponseWriter, r *http.Request)
HandleCompletion 处理聊天补全请求 @Summary 聊天完成 @Description 发送聊天完成请求 @Tags 聊天 @Accept json @Produce json @Param request body api.ChatRequest true "聊天请求" @Success 200 {object} api.ChatResponse "聊天响应" @Failure 400 {object} Response "无效请求" @Failure 500 {object} Response "内部错误" @Security ApiKeyAuth @Router /api/v1/chat/completions [post]
func (*ChatHandler) HandleStream ¶
func (h *ChatHandler) HandleStream(w http.ResponseWriter, r *http.Request)
HandleStream 处理流式聊天请求 @Summary 流式聊天完成 @Description 发送流式聊天完成请求 @Tags 聊天 @Accept json @Produce text/event-stream @Param request body api.ChatRequest true "聊天请求" @Success 200 {string} string "SSE 流" @Failure 400 {object} Response "无效请求" @Failure 500 {object} Response "内部错误" @Security ApiKeyAuth @Router /api/v1/chat/completions/stream [post]
type ChatService ¶ added in v1.4.6
type ChatService interface {
Complete(ctx context.Context, req *api.ChatRequest) (*ChatCompletionResult, *types.Error)
Stream(ctx context.Context, req *api.ChatRequest) (<-chan llmcore.UnifiedChunk, *types.Error)
SupportedRoutePolicies() []string
DefaultRoutePolicy() string
}
ChatService encapsulates chat routing and gateway invocation logic.
type CheckResult ¶
type CheckResult struct {
Status string `json:"status"` // "pass", "fail"
Message string `json:"message,omitempty"`
Latency string `json:"latency,omitempty"`
}
CheckResult 单个检查结果
type DatabaseHealthCheck ¶
type DatabaseHealthCheck struct {
// contains filtered or unexported fields
}
DatabaseHealthCheck 数据库健康检查
func NewDatabaseHealthCheck ¶
func NewDatabaseHealthCheck(name string, ping func(ctx context.Context) error) *DatabaseHealthCheck
NewDatabaseHealthCheck 创建数据库健康检查
func (*DatabaseHealthCheck) Name ¶
func (c *DatabaseHealthCheck) Name() string
type DefaultAPIKeyService ¶ added in v1.4.6
type DefaultAPIKeyService struct {
// contains filtered or unexported fields
}
func NewDefaultAPIKeyService ¶ added in v1.4.6
func NewDefaultAPIKeyService(store APIKeyStore) *DefaultAPIKeyService
func (*DefaultAPIKeyService) CreateAPIKey ¶ added in v1.4.6
func (s *DefaultAPIKeyService) CreateAPIKey(providerID uint, req createAPIKeyRequest) (*apiKeyResponse, *types.Error)
func (*DefaultAPIKeyService) DeleteAPIKey ¶ added in v1.4.6
func (s *DefaultAPIKeyService) DeleteAPIKey(providerID, keyID uint) *types.Error
func (*DefaultAPIKeyService) ListAPIKeyStats ¶ added in v1.4.6
func (s *DefaultAPIKeyService) ListAPIKeyStats(providerID uint) ([]apiKeyStatsResponse, *types.Error)
func (*DefaultAPIKeyService) ListAPIKeys ¶ added in v1.4.6
func (s *DefaultAPIKeyService) ListAPIKeys(providerID uint) ([]apiKeyResponse, *types.Error)
func (*DefaultAPIKeyService) ListProviders ¶ added in v1.4.6
func (s *DefaultAPIKeyService) ListProviders() ([]llm.LLMProvider, *types.Error)
func (*DefaultAPIKeyService) UpdateAPIKey ¶ added in v1.4.6
func (s *DefaultAPIKeyService) UpdateAPIKey(providerID, keyID uint, req updateAPIKeyRequest) (*apiKeyResponse, *types.Error)
type DefaultAgentService ¶ added in v1.4.6
type DefaultAgentService struct {
// contains filtered or unexported fields
}
DefaultAgentService is the default AgentService implementation used by AgentHandler.
func NewDefaultAgentService ¶ added in v1.4.6
func NewDefaultAgentService(registry discovery.Registry, resolver AgentResolver) *DefaultAgentService
NewDefaultAgentService constructs a service with resolver+registry fallback strategy.
func (*DefaultAgentService) ExecuteAgent ¶ added in v1.4.6
func (s *DefaultAgentService) ExecuteAgent(ctx context.Context, req AgentExecuteRequest, traceID string) (*AgentExecuteResponse, time.Duration, *types.Error)
func (*DefaultAgentService) ExecuteAgentStream ¶ added in v1.4.6
func (s *DefaultAgentService) ExecuteAgentStream(ctx context.Context, req AgentExecuteRequest, traceID string, emitter agent.RuntimeStreamEmitter) *types.Error
func (*DefaultAgentService) ListAgents ¶ added in v1.4.6
func (*DefaultAgentService) PlanAgent ¶ added in v1.4.6
func (s *DefaultAgentService) PlanAgent(ctx context.Context, req AgentExecuteRequest, traceID string) (*agent.PlanResult, *types.Error)
func (*DefaultAgentService) ResolveForOperation ¶ added in v1.4.6
func (s *DefaultAgentService) ResolveForOperation(ctx context.Context, agentID string, op AgentOperation) (agent.Agent, *types.Error)
ResolveForOperation resolves an agent for execute/stream/plan operations.
type DefaultChatConverter ¶ added in v1.4.6
type DefaultChatConverter struct {
// contains filtered or unexported fields
}
DefaultChatConverter is the default converter implementation used by ChatHandler.
func NewDefaultChatConverter ¶ added in v1.4.6
func NewDefaultChatConverter(defaultTimeout time.Duration) *DefaultChatConverter
NewDefaultChatConverter creates a default converter with fallback timeout.
func (*DefaultChatConverter) ToAPIChoices ¶ added in v1.4.6
func (c *DefaultChatConverter) ToAPIChoices(choices []llm.ChatChoice) []api.ChatChoice
ToAPIChoices converts llm choices to API choices.
func (*DefaultChatConverter) ToAPIResponse ¶ added in v1.4.6
func (c *DefaultChatConverter) ToAPIResponse(resp *llm.ChatResponse) *api.ChatResponse
ToAPIResponse converts llm.ChatResponse to api.ChatResponse.
func (*DefaultChatConverter) ToAPIStreamChunk ¶ added in v1.4.6
func (c *DefaultChatConverter) ToAPIStreamChunk(chunk *llm.StreamChunk) *api.StreamChunk
ToAPIStreamChunk converts llm stream chunk to API chunk.
func (*DefaultChatConverter) ToAPIUsage ¶ added in v1.4.6
func (c *DefaultChatConverter) ToAPIUsage(usage llm.ChatUsage) api.ChatUsage
ToAPIUsage converts llm usage to API usage.
func (*DefaultChatConverter) ToLLMRequest ¶ added in v1.4.6
func (c *DefaultChatConverter) ToLLMRequest(req *api.ChatRequest) *llm.ChatRequest
ToLLMRequest converts api.ChatRequest to llm.ChatRequest.
type DefaultRAGService ¶ added in v1.4.6
type DefaultRAGService struct {
// contains filtered or unexported fields
}
func NewDefaultRAGService ¶ added in v1.4.6
func NewDefaultRAGService(store rag.VectorStore, embedding rag.EmbeddingProvider) *DefaultRAGService
func (*DefaultRAGService) Query ¶ added in v1.4.6
func (s *DefaultRAGService) Query(ctx context.Context, query string, topK int, opts RAGQueryOptions) (*RAGQueryResponse, error)
func (*DefaultRAGService) SupportedStrategies ¶ added in v1.4.6
func (s *DefaultRAGService) SupportedStrategies() []string
type DefaultToolRegistryService ¶ added in v1.4.6
type DefaultToolRegistryService struct {
// contains filtered or unexported fields
}
func NewDefaultToolRegistryService ¶ added in v1.4.6
func NewDefaultToolRegistryService(store ToolRegistryStore, runtime ToolRegistryRuntime) *DefaultToolRegistryService
func (*DefaultToolRegistryService) Create ¶ added in v1.4.6
func (s *DefaultToolRegistryService) Create(req createToolRegistrationRequest) (*hosted.ToolRegistration, *types.Error)
func (*DefaultToolRegistryService) Delete ¶ added in v1.4.6
func (s *DefaultToolRegistryService) Delete(id uint) *types.Error
func (*DefaultToolRegistryService) List ¶ added in v1.4.6
func (s *DefaultToolRegistryService) List() ([]hosted.ToolRegistration, *types.Error)
func (*DefaultToolRegistryService) ListTargets ¶ added in v1.4.6
func (s *DefaultToolRegistryService) ListTargets() ([]string, *types.Error)
func (*DefaultToolRegistryService) Reload ¶ added in v1.4.6
func (s *DefaultToolRegistryService) Reload() *types.Error
func (*DefaultToolRegistryService) Update ¶ added in v1.4.6
func (s *DefaultToolRegistryService) Update(id uint, req updateToolRegistrationRequest) (*hosted.ToolRegistration, *types.Error)
type GormAPIKeyStore ¶ added in v1.0.0
type GormAPIKeyStore struct {
// contains filtered or unexported fields
}
GormAPIKeyStore implements APIKeyStore using gorm.DB.
func NewGormAPIKeyStore ¶ added in v1.0.0
func NewGormAPIKeyStore(db *gorm.DB) *GormAPIKeyStore
NewGormAPIKeyStore creates a new GormAPIKeyStore.
func (*GormAPIKeyStore) CreateAPIKey ¶ added in v1.0.0
func (s *GormAPIKeyStore) CreateAPIKey(key *llm.LLMProviderAPIKey) error
func (*GormAPIKeyStore) DeleteAPIKey ¶ added in v1.0.0
func (s *GormAPIKeyStore) DeleteAPIKey(keyID, providerID uint) (int64, error)
func (*GormAPIKeyStore) GetAPIKey ¶ added in v1.0.0
func (s *GormAPIKeyStore) GetAPIKey(keyID, providerID uint) (llm.LLMProviderAPIKey, error)
func (*GormAPIKeyStore) ListAPIKeys ¶ added in v1.0.0
func (s *GormAPIKeyStore) ListAPIKeys(providerID uint) ([]llm.LLMProviderAPIKey, error)
func (*GormAPIKeyStore) ListProviders ¶ added in v1.0.0
func (s *GormAPIKeyStore) ListProviders() ([]llm.LLMProvider, error)
func (*GormAPIKeyStore) ReloadAPIKey ¶ added in v1.0.0
func (s *GormAPIKeyStore) ReloadAPIKey(key *llm.LLMProviderAPIKey) error
func (*GormAPIKeyStore) UpdateAPIKey ¶ added in v1.0.0
func (s *GormAPIKeyStore) UpdateAPIKey(key *llm.LLMProviderAPIKey, updates map[string]any) error
type GormToolRegistryStore ¶ added in v1.4.6
type GormToolRegistryStore struct {
// contains filtered or unexported fields
}
GormToolRegistryStore implements ToolRegistryStore on top of gorm.
func NewGormToolRegistryStore ¶ added in v1.4.6
func NewGormToolRegistryStore(db *gorm.DB) *GormToolRegistryStore
func (*GormToolRegistryStore) Create ¶ added in v1.4.6
func (s *GormToolRegistryStore) Create(row *hosted.ToolRegistration) error
func (*GormToolRegistryStore) Delete ¶ added in v1.4.6
func (s *GormToolRegistryStore) Delete(id uint) (int64, error)
func (*GormToolRegistryStore) GetByID ¶ added in v1.4.6
func (s *GormToolRegistryStore) GetByID(id uint) (hosted.ToolRegistration, error)
func (*GormToolRegistryStore) GetByName ¶ added in v1.4.6
func (s *GormToolRegistryStore) GetByName(name string) (hosted.ToolRegistration, error)
func (*GormToolRegistryStore) List ¶ added in v1.4.6
func (s *GormToolRegistryStore) List() ([]hosted.ToolRegistration, error)
func (*GormToolRegistryStore) Reload ¶ added in v1.4.6
func (s *GormToolRegistryStore) Reload(row *hosted.ToolRegistration) error
func (*GormToolRegistryStore) Update ¶ added in v1.4.6
func (s *GormToolRegistryStore) Update(row *hosted.ToolRegistration, updates map[string]any) error
type HealthCheck ¶
HealthCheck 健康检查接口
type HealthHandler ¶
type HealthHandler struct {
// contains filtered or unexported fields
}
HealthHandler 健康检查处理器
func NewHealthHandler ¶
func NewHealthHandler(logger *zap.Logger) *HealthHandler
NewHealthHandler 创建健康检查处理器
func (*HealthHandler) HandleHealth ¶
func (h *HealthHandler) HandleHealth(w http.ResponseWriter, r *http.Request)
HandleHealth 处理 /health 请求(简单健康检查) @Summary 健康检查 @Description 简单的健康检查端点 @Tags 健康 @Produce json @Success 200 {object} ServiceHealthResponse "服务正常" @Failure 503 {object} ServiceHealthResponse "服务不健康" @Router /health [get]
func (*HealthHandler) HandleHealthz ¶
func (h *HealthHandler) HandleHealthz(w http.ResponseWriter, r *http.Request)
HandleHealthz 处理 /healthz 请求(Kubernetes 风格) @Summary Kubernetes 活跃度探针 @Description Kubernetes 的活跃度探针 @Tags 健康 @Produce json @Success 200 {object} ServiceHealthResponse "服务处于活动状态" @Router /healthz [get]
func (*HealthHandler) HandleReady ¶
func (h *HealthHandler) HandleReady(w http.ResponseWriter, r *http.Request)
HandleReady 处理 /ready 或 /readyz 请求(就绪检查) @Summary 准备情况检查 @Description 检查服务是否准备好接受流量 @Tags 健康 @Produce json @Success 200 {object} ServiceHealthResponse "服务已准备就绪" @Failure 503 {object} ServiceHealthResponse "服务尚未准备好" @Router /ready [get]
func (*HealthHandler) HandleVersion ¶
func (h *HealthHandler) HandleVersion(version, buildTime, gitCommit string) http.HandlerFunc
HandleVersion 处理 /version 请求 @Summary 版本信息 @Description 返回版本信息 @Tags 健康 @Produce json @Success 200 {object} map[string]string "版本信息" @Router /version [get]
func (*HealthHandler) RegisterCheck ¶
func (h *HealthHandler) RegisterCheck(check HealthCheck)
RegisterCheck 注册健康检查
type MemoryReferenceStore ¶ added in v1.3.0
type MemoryReferenceStore struct {
// contains filtered or unexported fields
}
func NewMemoryReferenceStore ¶ added in v1.3.0
func NewMemoryReferenceStore() *MemoryReferenceStore
func (*MemoryReferenceStore) Cleanup ¶ added in v1.3.0
func (s *MemoryReferenceStore) Cleanup(expireBefore time.Time)
func (*MemoryReferenceStore) Delete ¶ added in v1.3.0
func (s *MemoryReferenceStore) Delete(id string)
func (*MemoryReferenceStore) Get ¶ added in v1.3.0
func (s *MemoryReferenceStore) Get(id string) (*referenceAsset, bool)
func (*MemoryReferenceStore) Save ¶ added in v1.3.0
func (s *MemoryReferenceStore) Save(asset *referenceAsset) error
type MultimodalHandler ¶ added in v1.2.0
type MultimodalHandler struct {
// contains filtered or unexported fields
}
func NewMultimodalHandlerFromConfig ¶ added in v1.3.0
func NewMultimodalHandlerFromConfig(cfg MultimodalHandlerConfig, logger *zap.Logger) *MultimodalHandler
func NewMultimodalHandlerWithProviders ¶ added in v1.3.0
func NewMultimodalHandlerWithProviders( chatProvider llm.Provider, policyManager *llmpolicy.Manager, imageProviders map[string]image.Provider, videoProviders map[string]video.Provider, defaultImage string, defaultVideo string, pipeline multimodal.PromptPipeline, referenceMaxSize int64, referenceTTL time.Duration, referenceStore ReferenceStore, logger *zap.Logger, ) *MultimodalHandler
func (*MultimodalHandler) HandleCapabilities ¶ added in v1.3.0
func (h *MultimodalHandler) HandleCapabilities(w http.ResponseWriter, r *http.Request)
func (*MultimodalHandler) HandleChat ¶ added in v1.3.0
func (h *MultimodalHandler) HandleChat(w http.ResponseWriter, r *http.Request)
func (*MultimodalHandler) HandleImage ¶ added in v1.3.0
func (h *MultimodalHandler) HandleImage(w http.ResponseWriter, r *http.Request)
func (*MultimodalHandler) HandlePlan ¶ added in v1.3.0
func (h *MultimodalHandler) HandlePlan(w http.ResponseWriter, r *http.Request)
func (*MultimodalHandler) HandleUploadReference ¶ added in v1.3.0
func (h *MultimodalHandler) HandleUploadReference(w http.ResponseWriter, r *http.Request)
func (*MultimodalHandler) HandleVideo ¶ added in v1.3.0
func (h *MultimodalHandler) HandleVideo(w http.ResponseWriter, r *http.Request)
type MultimodalHandlerConfig ¶ added in v1.3.0
type MultimodalHandlerConfig struct {
ChatProvider llm.Provider
PolicyManager *llmpolicy.Manager
OpenAIAPIKey string
OpenAIBaseURL string
GoogleAPIKey string
GoogleBaseURL string
RunwayAPIKey string
RunwayBaseURL string
VeoAPIKey string
VeoBaseURL string
SoraAPIKey string
SoraBaseURL string
KlingAPIKey string
KlingBaseURL string
LumaAPIKey string
LumaBaseURL string
MiniMaxAPIKey string
MiniMaxBaseURL string
DefaultImageProvider string
DefaultVideoProvider string
ReferenceMaxSize int64
ReferenceTTL time.Duration
ReferenceStore ReferenceStore
Pipeline multimodal.PromptPipeline
}
type ProtocolHandler ¶ added in v1.2.0
type ProtocolHandler struct {
// contains filtered or unexported fields
}
ProtocolHandler handles MCP and A2A protocol API requests.
func NewProtocolHandler ¶ added in v1.2.0
func NewProtocolHandler(mcpServer mcp.MCPServer, a2aServer a2a.A2AServer, logger *zap.Logger) *ProtocolHandler
NewProtocolHandler creates a new protocol handler.
func (*ProtocolHandler) HandleA2AAgentCard ¶ added in v1.2.0
func (h *ProtocolHandler) HandleA2AAgentCard(w http.ResponseWriter, r *http.Request)
HandleA2AAgentCard handles GET /api/v1/a2a/.well-known/agent.json
func (*ProtocolHandler) HandleA2ASendTask ¶ added in v1.2.0
func (h *ProtocolHandler) HandleA2ASendTask(w http.ResponseWriter, r *http.Request)
HandleA2ASendTask handles POST /api/v1/a2a/tasks
func (*ProtocolHandler) HandleMCPCallTool ¶ added in v1.2.0
func (h *ProtocolHandler) HandleMCPCallTool(w http.ResponseWriter, r *http.Request)
HandleMCPCallTool handles POST /api/v1/mcp/tools/{name}
func (*ProtocolHandler) HandleMCPGetResource ¶ added in v1.2.0
func (h *ProtocolHandler) HandleMCPGetResource(w http.ResponseWriter, r *http.Request)
HandleMCPGetResource handles GET /api/v1/mcp/resources/{uri}
func (*ProtocolHandler) HandleMCPListResources ¶ added in v1.2.0
func (h *ProtocolHandler) HandleMCPListResources(w http.ResponseWriter, r *http.Request)
HandleMCPListResources handles GET /api/v1/mcp/resources
func (*ProtocolHandler) HandleMCPListTools ¶ added in v1.2.0
func (h *ProtocolHandler) HandleMCPListTools(w http.ResponseWriter, r *http.Request)
HandleMCPListTools handles GET /api/v1/mcp/tools
type RAGHandler ¶ added in v1.2.0
type RAGHandler struct {
// contains filtered or unexported fields
}
RAGHandler handles RAG (Retrieval-Augmented Generation) API requests.
func NewRAGHandler ¶ added in v1.2.0
func NewRAGHandler(store rag.VectorStore, embedding rag.EmbeddingProvider, logger *zap.Logger) *RAGHandler
NewRAGHandler creates a new RAG handler.
func NewRAGHandlerWithService ¶ added in v1.4.6
func NewRAGHandlerWithService(service RAGService, logger *zap.Logger) *RAGHandler
func (*RAGHandler) HandleCapabilities ¶ added in v1.4.6
func (h *RAGHandler) HandleCapabilities(w http.ResponseWriter, r *http.Request)
HandleCapabilities handles GET /api/v1/rag/capabilities
func (*RAGHandler) HandleIndex ¶ added in v1.2.0
func (h *RAGHandler) HandleIndex(w http.ResponseWriter, r *http.Request)
HandleIndex handles POST /api/v1/rag/index
func (*RAGHandler) HandleQuery ¶ added in v1.2.0
func (h *RAGHandler) HandleQuery(w http.ResponseWriter, r *http.Request)
HandleQuery handles POST /api/v1/rag/query
type RAGQueryOptions ¶ added in v1.4.6
type RAGQueryOptions struct {
Strategy string
}
type RAGQueryResponse ¶ added in v1.4.6
type RAGQueryResponse struct {
Results []rag.VectorSearchResult
RequestedStrategy string
EffectiveStrategy string
}
type RAGService ¶ added in v1.4.6
type RAGService interface {
Query(ctx context.Context, query string, topK int, opts RAGQueryOptions) (*RAGQueryResponse, error)
Index(ctx context.Context, docs []rag.Document) error
SupportedStrategies() []string
}
RAGService defines the use-case boundary for RAG handler.
type RedisHealthCheck ¶
type RedisHealthCheck struct {
// contains filtered or unexported fields
}
RedisHealthCheck Redis 健康检查
func NewRedisHealthCheck ¶
func NewRedisHealthCheck(name string, ping func(ctx context.Context) error) *RedisHealthCheck
NewRedisHealthCheck 创建 Redis 健康检查
func (*RedisHealthCheck) Name ¶
func (c *RedisHealthCheck) Name() string
type RedisReferenceStore ¶ added in v1.3.0
type RedisReferenceStore struct {
// contains filtered or unexported fields
}
func NewRedisReferenceStore ¶ added in v1.3.0
func (*RedisReferenceStore) Cleanup ¶ added in v1.3.0
func (s *RedisReferenceStore) Cleanup(expireBefore time.Time)
func (*RedisReferenceStore) Delete ¶ added in v1.3.0
func (s *RedisReferenceStore) Delete(id string)
func (*RedisReferenceStore) Get ¶ added in v1.3.0
func (s *RedisReferenceStore) Get(id string) (*referenceAsset, bool)
func (*RedisReferenceStore) Save ¶ added in v1.3.0
func (s *RedisReferenceStore) Save(asset *referenceAsset) error
type ReferenceStore ¶ added in v1.3.0
type ReferenceStore interface {
Save(asset *referenceAsset) error
Get(id string) (*referenceAsset, bool)
Delete(id string)
Cleanup(expireBefore time.Time)
}
ReferenceStore defines how multimodal reference images are persisted. Redis is the production backend; in-memory implementation is kept for tests.
type ResponseWriter ¶
type ResponseWriter struct {
http.ResponseWriter
StatusCode int
Written bool
}
ResponseWriter 包装 http.ResponseWriter 以捕获状态码
func NewResponseWriter ¶
func NewResponseWriter(w http.ResponseWriter) *ResponseWriter
NewResponseWriter 创建新的 ResponseWriter
func (*ResponseWriter) Flush ¶ added in v1.4.6
func (rw *ResponseWriter) Flush()
Flush implements http.Flusher by forwarding to the underlying writer when supported.
func (*ResponseWriter) Hijack ¶ added in v1.1.0
func (rw *ResponseWriter) Hijack() (net.Conn, *bufio.ReadWriter, error)
Hijack implements http.Hijacker so WebSocket upgrades work through wrapped ResponseWriters.
func (*ResponseWriter) Write ¶
func (rw *ResponseWriter) Write(b []byte) (int, error)
Write 重写 Write 以标记已写入
func (*ResponseWriter) WriteHeader ¶
func (rw *ResponseWriter) WriteHeader(code int)
WriteHeader 重写 WriteHeader 以捕获状态码
type ServiceHealthResponse ¶
type ServiceHealthResponse struct {
Status string `json:"status"` // "healthy", "degraded", "unhealthy"
Timestamp time.Time `json:"timestamp"`
Version string `json:"version,omitempty"`
Checks map[string]CheckResult `json:"checks,omitempty"`
}
ServiceHealthResponse 服务级别的健康状态响应(HTTP 健康端点 DTO)。 注意:这是 HTTP 健康检查端点的响应类型,与 llm.HealthStatus(Provider 级别) 和 agent.HealthStatus(Agent 级别)是不同概念。
type ToolRegistryHandler ¶ added in v1.4.6
type ToolRegistryHandler struct {
// contains filtered or unexported fields
}
ToolRegistryHandler manages DB-backed hosted tool registrations.
func NewToolRegistryHandler ¶ added in v1.4.6
func NewToolRegistryHandler(store ToolRegistryStore, runtime ToolRegistryRuntime, logger *zap.Logger) *ToolRegistryHandler
func (*ToolRegistryHandler) HandleCreate ¶ added in v1.4.6
func (h *ToolRegistryHandler) HandleCreate(w http.ResponseWriter, r *http.Request)
func (*ToolRegistryHandler) HandleDelete ¶ added in v1.4.6
func (h *ToolRegistryHandler) HandleDelete(w http.ResponseWriter, r *http.Request)
func (*ToolRegistryHandler) HandleList ¶ added in v1.4.6
func (h *ToolRegistryHandler) HandleList(w http.ResponseWriter, r *http.Request)
func (*ToolRegistryHandler) HandleListTargets ¶ added in v1.4.6
func (h *ToolRegistryHandler) HandleListTargets(w http.ResponseWriter, r *http.Request)
func (*ToolRegistryHandler) HandleReload ¶ added in v1.4.6
func (h *ToolRegistryHandler) HandleReload(w http.ResponseWriter, r *http.Request)
func (*ToolRegistryHandler) HandleUpdate ¶ added in v1.4.6
func (h *ToolRegistryHandler) HandleUpdate(w http.ResponseWriter, r *http.Request)
type ToolRegistryRuntime ¶ added in v1.4.6
type ToolRegistryRuntime interface {
ReloadBindings(ctx context.Context) error
BaseToolNames() []string
}
ToolRegistryRuntime describes runtime hooks used by tool registration API.
type ToolRegistryService ¶ added in v1.4.6
type ToolRegistryService interface {
List() ([]hosted.ToolRegistration, *types.Error)
ListTargets() ([]string, *types.Error)
Create(req createToolRegistrationRequest) (*hosted.ToolRegistration, *types.Error)
Update(id uint, req updateToolRegistrationRequest) (*hosted.ToolRegistration, *types.Error)
Delete(id uint) *types.Error
Reload() *types.Error
}
type ToolRegistryStore ¶ added in v1.4.6
type ToolRegistryStore interface {
List() ([]hosted.ToolRegistration, error)
Create(row *hosted.ToolRegistration) error
GetByID(id uint) (hosted.ToolRegistration, error)
GetByName(name string) (hosted.ToolRegistration, error)
Update(row *hosted.ToolRegistration, updates map[string]any) error
Reload(row *hosted.ToolRegistration) error
Delete(id uint) (int64, error)
}
ToolRegistryStore defines DB access for tool registration management.
type WorkflowExecutor ¶ added in v1.4.6
type WorkflowExecutor interface {
ExecuteDAG(ctx context.Context, wf *workflow.DAGWorkflow, input any) (any, error)
}
WorkflowExecutor defines the workflow execution facade contract used by handlers.
type WorkflowHandler ¶ added in v1.2.0
type WorkflowHandler struct {
// contains filtered or unexported fields
}
WorkflowHandler handles workflow API requests.
func NewWorkflowHandler ¶ added in v1.2.0
func NewWorkflowHandler(executor WorkflowExecutor, parser *dsl.Parser, logger *zap.Logger) *WorkflowHandler
NewWorkflowHandler creates a new workflow handler.
func (*WorkflowHandler) HandleCapabilities ¶ added in v1.4.6
func (h *WorkflowHandler) HandleCapabilities(w http.ResponseWriter, r *http.Request)
HandleCapabilities handles GET /api/v1/workflows/capabilities
func (*WorkflowHandler) HandleExecute ¶ added in v1.2.0
func (h *WorkflowHandler) HandleExecute(w http.ResponseWriter, r *http.Request)
HandleExecute handles POST /api/v1/workflows/execute
func (*WorkflowHandler) HandleList ¶ added in v1.2.0
func (h *WorkflowHandler) HandleList(w http.ResponseWriter, r *http.Request)
HandleList handles GET /api/v1/workflows
func (*WorkflowHandler) HandleParse ¶ added in v1.2.0
func (h *WorkflowHandler) HandleParse(w http.ResponseWriter, r *http.Request)
HandleParse handles POST /api/v1/workflows/parse (validate DSL)
type WorkflowService ¶ added in v1.4.6
type WorkflowService interface {
BuildDAGWorkflow(req workflowExecuteRequest) (*workflow.DAGWorkflow, string, *types.Error)
Execute(ctx context.Context, wf *workflow.DAGWorkflow, input any, streamEmitter workflow.WorkflowStreamEmitter, nodeEmitter workflowobs.NodeEventEmitter) (any, *types.Error)
ValidateDSL(rawDSL string) workflowDSLValidationResult
}
WorkflowService encapsulates workflow parsing, validation and execution use-cases.
Source Files
¶
- agent.go
- agent_service.go
- apikey.go
- apikey_service.go
- apikey_store.go
- chat.go
- chat_converter.go
- chat_service.go
- common.go
- health.go
- llm_route_params.go
- multimodal.go
- multimodal_service.go
- multimodal_store.go
- multimodal_store_redis.go
- protocol.go
- rag.go
- rag_service.go
- tool_registry.go
- tool_registry_service.go
- tool_registry_store.go
- type_aliases.go
- workflow.go
- workflow_service.go