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]
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) *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, ) (*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
NewPassthroughRequestHandler returns a transport-level proxy for controller A2A endpoints. It delegates each request directly to the selected upstream agent client and intentionally bypasses a2asrv.NewHandler, which would create local task state and apply v1 task-processing invariants to legacy streams.
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]