Documentation
¶
Index ¶
- func ExtractText(message *a2atype.Message) string
- func NewA2AHttpMux(agentPathPrefix, sandboxPathPrefix string, authenticator auth.AuthProvider, ...) *handlerMux
- func NewStaticHeadersInterceptor(headers map[string]string) a2aclient.CallInterceptor
- func NewUpstreamAuthInterceptor(authProvider auth.AuthProvider, agentRef types.NamespacedName) a2aclient.CallInterceptor
- type A2AHandlerMux
- type A2ARegistrar
- type AgentClientRegistry
- type AgentObserver
- type PassthroughRequestHandler
- func (h *PassthroughRequestHandler) CancelTask(ctx context.Context, req *a2atype.CancelTaskRequest) (*a2atype.Task, error)
- func (h *PassthroughRequestHandler) CreateTaskPushConfig(ctx context.Context, req *a2atype.PushConfig) (*a2atype.PushConfig, error)
- func (h *PassthroughRequestHandler) DeleteTaskPushConfig(ctx context.Context, req *a2atype.DeleteTaskPushConfigRequest) error
- func (h *PassthroughRequestHandler) GetExtendedAgentCard(ctx context.Context, req *a2atype.GetExtendedAgentCardRequest) (*a2atype.AgentCard, error)
- func (h *PassthroughRequestHandler) GetTask(ctx context.Context, req *a2atype.GetTaskRequest) (*a2atype.Task, error)
- func (h *PassthroughRequestHandler) GetTaskPushConfig(ctx context.Context, req *a2atype.GetTaskPushConfigRequest) (*a2atype.PushConfig, error)
- func (h *PassthroughRequestHandler) ListTaskPushConfigs(ctx context.Context, req *a2atype.ListTaskPushConfigRequest) (*a2atype.ListTaskPushConfigResponse, error)
- func (h *PassthroughRequestHandler) ListTasks(ctx context.Context, req *a2atype.ListTasksRequest) (*a2atype.ListTasksResponse, error)
- func (h *PassthroughRequestHandler) SendMessage(ctx context.Context, req *a2atype.SendMessageRequest) (a2atype.SendMessageResult, error)
- func (h *PassthroughRequestHandler) SendStreamingMessage(ctx context.Context, req *a2atype.SendMessageRequest) iter.Seq2[a2atype.Event, error]
- func (h *PassthroughRequestHandler) SubscribeToTask(ctx context.Context, req *a2atype.SubscribeToTaskRequest) iter.Seq2[a2atype.Event, error]
- type TaskStore
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ExtractText ¶
ExtractText extracts the text content from a message.
func NewA2AHttpMux ¶
func NewA2AHttpMux(agentPathPrefix, sandboxPathPrefix string, authenticator auth.AuthProvider, taskStore TaskStore) *handlerMux
func NewStaticHeadersInterceptor ¶
func NewStaticHeadersInterceptor(headers map[string]string) a2aclient.CallInterceptor
func NewUpstreamAuthInterceptor ¶
func NewUpstreamAuthInterceptor(authProvider auth.AuthProvider, agentRef types.NamespacedName) a2aclient.CallInterceptor
Types ¶
type A2AHandlerMux ¶
type A2AHandlerMux interface {
SetAgentHandler(
agentRef string,
client *a2aclient.Client,
card a2atype.AgentCard,
tracing middleware,
) error
RemoveAgentHandler(
agentRef string,
)
http.Handler
}
A2AHandlerMux is an interface that defines methods for adding, getting, and removing agentic task handlers.
type A2ARegistrar ¶
type A2ARegistrar struct {
// contains filtered or unexported fields
}
func NewA2ARegistrar ¶
func NewA2ARegistrar( cache crcache.Cache, mux A2AHandlerMux, clientRegistry *AgentClientRegistry, a2aBaseUrl string, sandboxA2ABaseURL string, ateneRouterURL string, authenticator auth.AuthProvider, agentObserver AgentObserver, substrateSandboxActorBackend *substrate.SandboxAgentActorBackend, dbService database.Client, ) (*A2ARegistrar, error)
func (*A2ARegistrar) NeedLeaderElection ¶
func (a *A2ARegistrar) NeedLeaderElection() bool
type AgentClientRegistry ¶
type AgentClientRegistry struct {
// contains filtered or unexported fields
}
AgentClientRegistry maps agent route keys to their A2A clients. The A2ARegistrar populates it; the MCP handler reads from it to invoke agents without an HTTP round trip through the controller's own A2A listener.
func NewAgentClientRegistry ¶
func NewAgentClientRegistry() *AgentClientRegistry
func (*AgentClientRegistry) Register ¶
func (r *AgentClientRegistry) Register(namespace, name string, c *a2aclient.Client)
Register adds or replaces the A2A client for the given agent.
func (*AgentClientRegistry) SendMessage ¶
func (r *AgentClientRegistry) SendMessage(ctx context.Context, namespace, name string, req *a2atype.SendMessageRequest) (a2atype.SendMessageResult, error)
SendMessage invokes an agent directly via its cached A2A client.
type AgentObserver ¶
type PassthroughRequestHandler ¶
type PassthroughRequestHandler struct {
// contains filtered or unexported fields
}
func NewPassthroughRequestHandler ¶
func NewPassthroughRequestHandler(client *a2aclient.Client, card *a2atype.AgentCard) *PassthroughRequestHandler
func (*PassthroughRequestHandler) CancelTask ¶
func (h *PassthroughRequestHandler) CancelTask(ctx context.Context, req *a2atype.CancelTaskRequest) (*a2atype.Task, error)
func (*PassthroughRequestHandler) CreateTaskPushConfig ¶
func (h *PassthroughRequestHandler) CreateTaskPushConfig(ctx context.Context, req *a2atype.PushConfig) (*a2atype.PushConfig, error)
func (*PassthroughRequestHandler) DeleteTaskPushConfig ¶
func (h *PassthroughRequestHandler) DeleteTaskPushConfig(ctx context.Context, req *a2atype.DeleteTaskPushConfigRequest) error
func (*PassthroughRequestHandler) GetExtendedAgentCard ¶
func (h *PassthroughRequestHandler) GetExtendedAgentCard(ctx context.Context, req *a2atype.GetExtendedAgentCardRequest) (*a2atype.AgentCard, error)
func (*PassthroughRequestHandler) GetTask ¶
func (h *PassthroughRequestHandler) GetTask(ctx context.Context, req *a2atype.GetTaskRequest) (*a2atype.Task, error)
func (*PassthroughRequestHandler) GetTaskPushConfig ¶
func (h *PassthroughRequestHandler) GetTaskPushConfig(ctx context.Context, req *a2atype.GetTaskPushConfigRequest) (*a2atype.PushConfig, error)
func (*PassthroughRequestHandler) ListTaskPushConfigs ¶
func (h *PassthroughRequestHandler) ListTaskPushConfigs(ctx context.Context, req *a2atype.ListTaskPushConfigRequest) (*a2atype.ListTaskPushConfigResponse, error)
func (*PassthroughRequestHandler) ListTasks ¶
func (h *PassthroughRequestHandler) ListTasks(ctx context.Context, req *a2atype.ListTasksRequest) (*a2atype.ListTasksResponse, error)
func (*PassthroughRequestHandler) SendMessage ¶
func (h *PassthroughRequestHandler) SendMessage(ctx context.Context, req *a2atype.SendMessageRequest) (a2atype.SendMessageResult, error)
func (*PassthroughRequestHandler) SendStreamingMessage ¶
func (h *PassthroughRequestHandler) SendStreamingMessage(ctx context.Context, req *a2atype.SendMessageRequest) iter.Seq2[a2atype.Event, error]
func (*PassthroughRequestHandler) SubscribeToTask ¶
func (h *PassthroughRequestHandler) SubscribeToTask(ctx context.Context, req *a2atype.SubscribeToTaskRequest) iter.Seq2[a2atype.Event, error]
type TaskStore ¶
type TaskStore interface {
GetSession(ctx context.Context, sessionID, userID string) (*dbpkg.Session, error)
ListSessions(ctx context.Context, userID string) ([]dbpkg.Session, error)
ListTasksForSession(ctx context.Context, sessionID, userID string) ([]*a2atype.Task, error)
}
TaskStore is the subset of the persistent store ListTasks reads from. *database.Client satisfies it. GetSession errors (including a missing or other-user session) surface to the caller.