a2a

package
v0.0.0-...-74321ee Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 7, 2026 License: Apache-2.0 Imports: 44 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ExtractText

func ExtractText(message *a2atype.Message) string

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

func (*A2ARegistrar) Start

func (a *A2ARegistrar) Start(ctx context.Context) error

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 AgentObserver interface {
	NotifyAgentsChanged(ctx context.Context)
}

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 (*PassthroughRequestHandler) CreateTaskPushConfig

func (h *PassthroughRequestHandler) CreateTaskPushConfig(ctx context.Context, req *a2atype.PushConfig) (*a2atype.PushConfig, error)

func (*PassthroughRequestHandler) DeleteTaskPushConfig

func (*PassthroughRequestHandler) GetExtendedAgentCard

func (*PassthroughRequestHandler) GetTask

func (*PassthroughRequestHandler) GetTaskPushConfig

func (*PassthroughRequestHandler) ListTaskPushConfigs

func (*PassthroughRequestHandler) ListTasks

func (*PassthroughRequestHandler) SendMessage

func (*PassthroughRequestHandler) SendStreamingMessage

func (*PassthroughRequestHandler) SubscribeToTask

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL