Documentation
¶
Index ¶
- Constants
- func EmitFeedActive(ctx context.Context, bus streaming.Bus, convID, turnID string, spec *FeedSpec, ...)
- func EmitFeedInactive(ctx context.Context, bus streaming.Bus, convID string, feedID string)
- func NewHandler(client Client, opts ...HandlerOption) http.Handler
- func NewHandlerWithContext(ctx context.Context, client Client, opts ...HandlerOption) (http.Handler, error)
- func SelectExecutionPageCount(turn *TurnState) int
- func SelectTotalElapsedMs(turn *TurnState) int64
- func WaitForReady(baseURL string, timeout time.Duration) error
- type ActiveFeedState
- type AssistantBubble
- type AssistantMessageState
- type AssistantState
- type AuthProvider
- type Client
- type ConversationPage
- type ConversationState
- type CreateConversationInput
- type CreateSessionRequest
- type DecideToolApprovalInput
- type DecideToolApprovalOutput
- type Direction
- type DownloadFileInput
- type DownloadFileOutput
- type EditQueuedTurnInput
- type ElicitationDialog
- type ElicitationState
- type ElicitationStatus
- type EmbeddedClient
- func (c *EmbeddedClient) CancelQueuedTurn(ctx context.Context, conversationID, turnID string) error
- func (c *EmbeddedClient) CancelTurn(ctx context.Context, turnID string) (bool, error)
- func (c *EmbeddedClient) CompactConversation(ctx context.Context, conversationID string) error
- func (c *EmbeddedClient) CreateConversation(ctx context.Context, input *CreateConversationInput) (*conversation.Conversation, error)
- func (c *EmbeddedClient) DecideToolApproval(ctx context.Context, input *DecideToolApprovalInput) (*DecideToolApprovalOutput, error)
- func (c *EmbeddedClient) DeleteResource(ctx context.Context, input *ResourceRef) error
- func (c *EmbeddedClient) DownloadFile(ctx context.Context, input *DownloadFileInput) (*DownloadFileOutput, error)
- func (c *EmbeddedClient) EditQueuedTurn(ctx context.Context, input *EditQueuedTurnInput) error
- func (c *EmbeddedClient) ExecuteTool(ctx context.Context, name string, args map[string]interface{}) (string, error)
- func (c *EmbeddedClient) ExportResources(ctx context.Context, input *ExportResourcesInput) (*ExportResourcesOutput, error)
- func (c *EmbeddedClient) FeedRegistry() *FeedRegistry
- func (c *EmbeddedClient) ForceSteerQueuedTurn(ctx context.Context, conversationID, turnID string) (*SteerTurnOutput, error)
- func (c *EmbeddedClient) GetA2AAgentCard(ctx context.Context, agentID string) (*a2a.AgentCard, error)
- func (c *EmbeddedClient) GetConversation(ctx context.Context, id string) (*conversation.Conversation, error)
- func (c *EmbeddedClient) GetMessages(ctx context.Context, input *GetMessagesInput) (*MessagePage, error)
- func (c *EmbeddedClient) GetPayload(ctx context.Context, id string) (*conversation.Payload, error)
- func (c *EmbeddedClient) GetResource(ctx context.Context, input *ResourceRef) (*GetResourceOutput, error)
- func (c *EmbeddedClient) GetRun(ctx context.Context, id string) (*agrun.RunRowsView, error)
- func (c *EmbeddedClient) GetSchedule(ctx context.Context, id string) (*scheduler.Schedule, error)
- func (c *EmbeddedClient) GetTranscript(ctx context.Context, input *GetTranscriptInput, options ...TranscriptOption) (*ConversationState, error)
- func (c *EmbeddedClient) ImportResources(ctx context.Context, input *ImportResourcesInput) (*ImportResourcesOutput, error)
- func (c *EmbeddedClient) ListA2AAgents(ctx context.Context, agentIDs []string) ([]string, error)
- func (c *EmbeddedClient) ListConversations(ctx context.Context, input *ListConversationsInput) (*ConversationPage, error)
- func (c *EmbeddedClient) ListFiles(ctx context.Context, input *ListFilesInput) (*ListFilesOutput, error)
- func (c *EmbeddedClient) ListLinkedConversations(ctx context.Context, input *ListLinkedConversationsInput) (*LinkedConversationPage, error)
- func (c *EmbeddedClient) ListPendingElicitations(ctx context.Context, input *ListPendingElicitationsInput) ([]*PendingElicitation, error)
- func (c *EmbeddedClient) ListPendingToolApprovals(ctx context.Context, input *ListPendingToolApprovalsInput) ([]*PendingToolApproval, error)
- func (c *EmbeddedClient) ListResources(ctx context.Context, input *ListResourcesInput) (*ListResourcesOutput, error)
- func (c *EmbeddedClient) ListSchedules(ctx context.Context) ([]*scheduler.Schedule, error)
- func (c *EmbeddedClient) ListToolDefinitions(_ context.Context) ([]ToolDefinitionInfo, error)
- func (c *EmbeddedClient) Mode() Mode
- func (c *EmbeddedClient) MoveQueuedTurn(ctx context.Context, input *MoveQueuedTurnInput) error
- func (c *EmbeddedClient) PruneConversation(ctx context.Context, conversationID string) error
- func (c *EmbeddedClient) Query(ctx context.Context, input *agentsvc.QueryInput) (*agentsvc.QueryOutput, error)
- func (c *EmbeddedClient) RecordOOBAuthElicitation(ctx context.Context, authURL string) error
- func (c *EmbeddedClient) ResolveElicitation(ctx context.Context, input *ResolveElicitationInput) error
- func (c *EmbeddedClient) ResolveFeedData(ctx context.Context, spec *FeedSpec, conversationID string) (interface{}, error)
- func (c *EmbeddedClient) RunScheduleNow(ctx context.Context, id string) error
- func (c *EmbeddedClient) SaveResource(ctx context.Context, input *SaveResourceInput) error
- func (c *EmbeddedClient) SendA2AMessage(ctx context.Context, agentID string, req *a2a.SendMessageRequest) (*a2a.SendMessageResponse, error)
- func (c *EmbeddedClient) SetScheduler(svc *scheduler.Service)
- func (c *EmbeddedClient) SteerTurn(ctx context.Context, input *SteerTurnInput) (*SteerTurnOutput, error)
- func (c *EmbeddedClient) StreamEvents(ctx context.Context, input *StreamEventsInput) (streaming.Subscription, error)
- func (c *EmbeddedClient) TerminateConversation(ctx context.Context, conversationID string) error
- func (c *EmbeddedClient) UpdateConversation(ctx context.Context, input *UpdateConversationInput) (*conversation.Conversation, error)
- func (c *EmbeddedClient) UploadFile(_ context.Context, _ *UploadFileInput) (*UploadFileOutput, error)
- func (c *EmbeddedClient) UpsertSchedules(ctx context.Context, schedules []*scheduler.Schedule) error
- type ExecutionPageState
- type ExecutionState
- type ExportResourcesInput
- type ExportResourcesOutput
- type FeedActivation
- type FeedMatch
- type FeedRegistry
- type FeedSpec
- type FeedState
- type FileEntry
- type GetMessagesInput
- type GetResourceOutput
- type GetTranscriptInput
- type HTTPClient
- func (c *HTTPClient) AuthBrowserSession(ctx context.Context) error
- func (c *HTTPClient) AuthCreateSession(ctx context.Context, req *CreateSessionRequest) error
- func (c *HTTPClient) AuthLocalLogin(ctx context.Context, name string) error
- func (c *HTTPClient) AuthLocalOOBSession(ctx context.Context, opts *LocalOOBSessionOptions) error
- func (c *HTTPClient) AuthMe(ctx context.Context) (map[string]interface{}, error)
- func (c *HTTPClient) AuthOAuthConfig(ctx context.Context) (*OAuthConfigResponse, error)
- func (c *HTTPClient) AuthOOBLogin(ctx context.Context, configURL, secretsURL string, scopes []string) (*oauth2.Token, error)
- func (c *HTTPClient) AuthOOBSession(ctx context.Context, secretsURL string, scopes []string) error
- func (c *HTTPClient) AuthProviders(ctx context.Context) ([]AuthProvider, error)
- func (c *HTTPClient) AuthSessionExchange(ctx context.Context, idToken string) error
- func (c *HTTPClient) CancelQueuedTurn(ctx context.Context, conversationID, turnID string) error
- func (c *HTTPClient) CancelTurn(ctx context.Context, turnID string) (bool, error)
- func (c *HTTPClient) CompactConversation(ctx context.Context, conversationID string) error
- func (c *HTTPClient) CreateConversation(ctx context.Context, input *CreateConversationInput) (*conversation.Conversation, error)
- func (c *HTTPClient) DecideToolApproval(ctx context.Context, input *DecideToolApprovalInput) (*DecideToolApprovalOutput, error)
- func (c *HTTPClient) DeleteResource(ctx context.Context, input *ResourceRef) error
- func (c *HTTPClient) DownloadFile(ctx context.Context, input *DownloadFileInput) (*DownloadFileOutput, error)
- func (c *HTTPClient) EditQueuedTurn(ctx context.Context, input *EditQueuedTurnInput) error
- func (c *HTTPClient) ExecuteTool(ctx context.Context, name string, args map[string]interface{}) (string, error)
- func (c *HTTPClient) ExportResources(ctx context.Context, input *ExportResourcesInput) (*ExportResourcesOutput, error)
- func (c *HTTPClient) ForceSteerQueuedTurn(ctx context.Context, conversationID, turnID string) (*SteerTurnOutput, error)
- func (c *HTTPClient) GetA2AAgentCard(ctx context.Context, agentID string) (*a2a.AgentCard, error)
- func (c *HTTPClient) GetConversation(ctx context.Context, id string) (*conversation.Conversation, error)
- func (c *HTTPClient) GetMessages(ctx context.Context, input *GetMessagesInput) (*MessagePage, error)
- func (c *HTTPClient) GetResource(ctx context.Context, input *ResourceRef) (*GetResourceOutput, error)
- func (c *HTTPClient) GetRun(ctx context.Context, id string) (*agrun.RunRowsView, error)
- func (c *HTTPClient) GetSchedule(ctx context.Context, id string) (*scheduler.Schedule, error)
- func (c *HTTPClient) GetTranscript(ctx context.Context, input *GetTranscriptInput, options ...TranscriptOption) (*ConversationState, error)
- func (c *HTTPClient) GetWorkspaceMetadata(ctx context.Context) (*WorkspaceMetadata, error)
- func (c *HTTPClient) ImportResources(ctx context.Context, input *ImportResourcesInput) (*ImportResourcesOutput, error)
- func (c *HTTPClient) ListA2AAgents(ctx context.Context, agentIDs []string) ([]string, error)
- func (c *HTTPClient) ListConversations(ctx context.Context, input *ListConversationsInput) (*ConversationPage, error)
- func (c *HTTPClient) ListFiles(ctx context.Context, input *ListFilesInput) (*ListFilesOutput, error)
- func (c *HTTPClient) ListLinkedConversations(ctx context.Context, input *ListLinkedConversationsInput) (*LinkedConversationPage, error)
- func (c *HTTPClient) ListPendingElicitations(ctx context.Context, input *ListPendingElicitationsInput) ([]*PendingElicitation, error)
- func (c *HTTPClient) ListPendingToolApprovals(ctx context.Context, input *ListPendingToolApprovalsInput) ([]*PendingToolApproval, error)
- func (c *HTTPClient) ListResources(ctx context.Context, input *ListResourcesInput) (*ListResourcesOutput, error)
- func (c *HTTPClient) ListSchedules(ctx context.Context) ([]*scheduler.Schedule, error)
- func (c *HTTPClient) ListToolDefinitions(ctx context.Context) ([]ToolDefinitionInfo, error)
- func (c *HTTPClient) Mode() Mode
- func (c *HTTPClient) MoveQueuedTurn(ctx context.Context, input *MoveQueuedTurnInput) error
- func (c *HTTPClient) PruneConversation(ctx context.Context, conversationID string) error
- func (c *HTTPClient) Query(ctx context.Context, input *agentsvc.QueryInput) (*agentsvc.QueryOutput, error)
- func (c *HTTPClient) ResolveElicitation(ctx context.Context, input *ResolveElicitationInput) error
- func (c *HTTPClient) RunScheduleNow(ctx context.Context, id string) error
- func (c *HTTPClient) SaveResource(ctx context.Context, input *SaveResourceInput) error
- func (c *HTTPClient) SendA2AMessage(ctx context.Context, agentID string, req *a2a.SendMessageRequest) (*a2a.SendMessageResponse, error)
- func (c *HTTPClient) SteerTurn(ctx context.Context, input *SteerTurnInput) (*SteerTurnOutput, error)
- func (c *HTTPClient) StreamEvents(ctx context.Context, input *StreamEventsInput) (streaming.Subscription, error)
- func (c *HTTPClient) TerminateConversation(ctx context.Context, conversationID string) error
- func (c *HTTPClient) UpdateConversation(ctx context.Context, input *UpdateConversationInput) (*conversation.Conversation, error)
- func (c *HTTPClient) UploadFile(_ context.Context, _ *UploadFileInput) (*UploadFileOutput, error)
- func (c *HTTPClient) UpsertSchedules(ctx context.Context, schedules []*scheduler.Schedule) error
- type HTTPOption
- type HandlerOption
- func WithA2AHandler(h *svca2a.Handler) HandlerOption
- func WithAuth(cfg *svcauth.Config, sessions *svcauth.Manager, opts ...svcauth.HandlerOption) HandlerOption
- func WithFileBrowser(h *svcworkspace.FileBrowserHandler) HandlerOption
- func WithMetadataHandler(h *svcworkspace.MetadataHandler) HandlerOption
- func WithScheduler(svc *scheduler.Service, handler *scheduler.Handler, opts *SchedulerOptions) HandlerOption
- func WithSchedulerHandler(h *scheduler.Handler) HandlerOption
- func WithSpeechHandler(h *speech.Handler) HandlerOption
- func WithWorkflowHandler(h *workflow.Handler) HandlerOption
- type ImportResourcesInput
- type ImportResourcesOutput
- type LinkedConversationEntry
- type LinkedConversationPage
- type LinkedConversationState
- type ListConversationsInput
- type ListFilesInput
- type ListFilesOutput
- type ListLinkedConversationsInput
- type ListPendingElicitationsInput
- type ListPendingToolApprovalsInput
- type ListResourcesInput
- type ListResourcesOutput
- type LocalLoginRequest
- type LocalOOBSessionOptions
- type MessagePage
- type Mode
- type ModelStepState
- type MoveQueuedTurnInput
- type OAuthConfigResponse
- type OOBRequest
- type PageInput
- type PendingElicitation
- type PendingToolApproval
- type QuerySelector
- type ResolveElicitationInput
- type Resource
- type ResourceRef
- type SaveResourceInput
- type SchedulerOptions
- type StarterTask
- type SteerTurnInput
- type SteerTurnOutput
- type StreamEventsInput
- type TokenProvider
- type ToolDefinitionInfo
- type ToolStepState
- type TranscriptOption
- func WithIncludeFeeds() TranscriptOption
- func WithTranscriptMessageSelector(selector *QuerySelector) TranscriptOption
- func WithTranscriptSelector(name string, selector *QuerySelector) TranscriptOption
- func WithTranscriptToolMessageSelector(selector *QuerySelector) TranscriptOption
- func WithTranscriptTurnSelector(selector *QuerySelector) TranscriptOption
- type TurnState
- type TurnStatus
- type UpdateConversationInput
- type UploadFileInput
- type UploadFileOutput
- type UserMessageState
- type WorkspaceAgentInfo
- type WorkspaceCapabilities
- type WorkspaceDefaults
- type WorkspaceMetadata
- type WorkspaceModelInfo
Constants ¶
const ( DirectionBefore = data.DirectionBefore DirectionAfter = data.DirectionAfter DirectionLatest = data.DirectionLatest )
const ( TranscriptSelectorTurn = "Transcript" TranscriptSelectorMessage = "Message" TranscriptSelectorToolMessage = "ToolMessage" )
Variables ¶
This section is empty.
Functions ¶
func EmitFeedActive ¶
func EmitFeedActive(ctx context.Context, bus streaming.Bus, convID, turnID string, spec *FeedSpec, itemCount int, data interface{})
EmitFeedActive publishes a tool_feed_active SSE event with the tool result data.
func EmitFeedInactive ¶
EmitFeedInactive publishes a tool_feed_inactive SSE event.
func NewHandler ¶
func NewHandler(client Client, opts ...HandlerOption) http.Handler
func NewHandlerWithContext ¶
func SelectExecutionPageCount ¶
SelectExecutionPageCount returns the total number of execution pages (iterations) in a turn.
func SelectTotalElapsedMs ¶
SelectTotalElapsedMs returns the total elapsed time for execution in a turn.
Types ¶
type ActiveFeedState ¶
type ActiveFeedState struct {
FeedID string `json:"feedId"`
Title string `json:"title"`
ItemCount int `json:"itemCount"`
Data interface{} `json:"data,omitempty"`
}
ConversationState is the top-level canonical state for a conversation. ActiveFeedState describes a tool feed matched from the transcript.
type AssistantBubble ¶
AssistantBubble is the content to render as the assistant's visible response.
func SelectAssistantBubble ¶
func SelectAssistantBubble(turn *TurnState, pageIndex int) *AssistantBubble
SelectAssistantBubble determines what assistant content to display for a turn. Rules (from the proposal):
- Exactly one assistant bubble per visible execution page.
- If visible page has final content, show final content.
- Else if visible page has preamble, show preamble.
type AssistantMessageState ¶
type AssistantMessageState struct {
MessageID string `json:"messageId"`
Content string `json:"content,omitempty"`
}
AssistantMessageState represents a single assistant message fragment.
type AssistantState ¶
type AssistantState struct {
Preamble *AssistantMessageState `json:"preamble,omitempty"`
Final *AssistantMessageState `json:"final,omitempty"`
}
AssistantState holds preamble and final assistant content for a turn.
type AuthProvider ¶
type Client ¶
type Client interface {
Mode() Mode
// Query sends a user message and returns the agent response (ReAct loop).
Query(ctx context.Context, input *agentsvc.QueryInput) (*agentsvc.QueryOutput, error)
// GetMessages returns a cursor-paginated page of messages for a conversation.
GetMessages(ctx context.Context, input *GetMessagesInput) (*MessagePage, error)
// StreamEvents subscribes to real-time streaming events for a conversation.
StreamEvents(ctx context.Context, input *StreamEventsInput) (streaming.Subscription, error)
// CreateConversation initialises a new conversation record.
CreateConversation(ctx context.Context, input *CreateConversationInput) (*conversation.Conversation, error)
// ListConversations returns a cursor-paginated list of conversations.
ListConversations(ctx context.Context, input *ListConversationsInput) (*ConversationPage, error)
// ListLinkedConversations returns child conversations for a given parent conversation/turn,
// including status and latest assistant response.
ListLinkedConversations(ctx context.Context, input *ListLinkedConversationsInput) (*LinkedConversationPage, error)
// GetConversation retrieves a single conversation by ID.
GetConversation(ctx context.Context, id string) (*conversation.Conversation, error)
// UpdateConversation updates mutable conversation fields such as visibility and shareability.
UpdateConversation(ctx context.Context, input *UpdateConversationInput) (*conversation.Conversation, error)
// GetRun returns the current state of a run.
GetRun(ctx context.Context, id string) (*agrun.RunRowsView, error)
// CancelTurn aborts the active turn. Returns true if a running turn was found.
CancelTurn(ctx context.Context, turnID string) (bool, error)
// SteerTurn injects a user message into a currently running turn.
SteerTurn(ctx context.Context, input *SteerTurnInput) (*SteerTurnOutput, error)
// CancelQueuedTurn cancels a queued turn.
CancelQueuedTurn(ctx context.Context, conversationID, turnID string) error
// MoveQueuedTurn reorders a queued turn up/down in queue order.
MoveQueuedTurn(ctx context.Context, input *MoveQueuedTurnInput) error
// EditQueuedTurn updates queued turn starter message content.
EditQueuedTurn(ctx context.Context, input *EditQueuedTurnInput) error
// ForceSteerQueuedTurn cancels queued turn and injects its message into active turn.
ForceSteerQueuedTurn(ctx context.Context, conversationID, turnID string) (*SteerTurnOutput, error)
// ResolveElicitation delivers the user response for an elicitation prompt.
ResolveElicitation(ctx context.Context, input *ResolveElicitationInput) error
// ListPendingElicitations returns unresolved elicitation prompts for a conversation.
ListPendingElicitations(ctx context.Context, input *ListPendingElicitationsInput) ([]*PendingElicitation, error)
// ListPendingToolApprovals returns queued tool approvals for a user/conversation.
ListPendingToolApprovals(ctx context.Context, input *ListPendingToolApprovalsInput) ([]*PendingToolApproval, error)
// DecideToolApproval resolves a queued tool request with approve/reject.
DecideToolApproval(ctx context.Context, input *DecideToolApprovalInput) (*DecideToolApprovalOutput, error)
// ExecuteTool invokes a registered tool by name and returns its textual result.
ExecuteTool(ctx context.Context, name string, args map[string]interface{}) (string, error)
// ListToolDefinitions returns the set of tool definitions available in the workspace.
ListToolDefinitions(ctx context.Context) ([]ToolDefinitionInfo, error)
// UploadFile stores a file associated with a conversation.
UploadFile(ctx context.Context, input *UploadFileInput) (*UploadFileOutput, error)
// DownloadFile retrieves a previously uploaded file.
DownloadFile(ctx context.Context, input *DownloadFileInput) (*DownloadFileOutput, error)
// ListFiles returns all files associated with a conversation.
ListFiles(ctx context.Context, input *ListFilesInput) (*ListFilesOutput, error)
// ListResources returns resource names for a workspace kind.
ListResources(ctx context.Context, input *ListResourcesInput) (*ListResourcesOutput, error)
// GetResource retrieves a single workspace resource by kind and name.
GetResource(ctx context.Context, input *ResourceRef) (*GetResourceOutput, error)
// SaveResource creates or updates a workspace resource.
SaveResource(ctx context.Context, input *SaveResourceInput) error
// DeleteResource removes a workspace resource.
DeleteResource(ctx context.Context, input *ResourceRef) error
// ExportResources exports all resources of the given kinds.
ExportResources(ctx context.Context, input *ExportResourcesInput) (*ExportResourcesOutput, error)
// ImportResources imports resources in bulk.
ImportResources(ctx context.Context, input *ImportResourcesInput) (*ImportResourcesOutput, error)
// TerminateConversation cancels all active turns and marks the conversation as canceled.
TerminateConversation(ctx context.Context, conversationID string) error
// CompactConversation generates an LLM summary of conversation history, archiving old messages.
CompactConversation(ctx context.Context, conversationID string) error
// PruneConversation uses an LLM to select and remove low-value messages from conversation history.
PruneConversation(ctx context.Context, conversationID string) error
// GetTranscript returns the canonical conversation state for rendering.
GetTranscript(ctx context.Context, input *GetTranscriptInput, options ...TranscriptOption) (*ConversationState, error)
// GetA2AAgentCard returns the A2A agent card for the given agent.
GetA2AAgentCard(ctx context.Context, agentID string) (*a2a.AgentCard, error)
// SendA2AMessage sends a message to an A2A agent and returns the task envelope.
SendA2AMessage(ctx context.Context, agentID string, req *a2a.SendMessageRequest) (*a2a.SendMessageResponse, error)
// ListA2AAgents returns agent IDs that have A2A serving enabled.
ListA2AAgents(ctx context.Context, agentIDs []string) ([]string, error)
// GetSchedule returns a schedule by ID.
GetSchedule(ctx context.Context, id string) (*scheduler.Schedule, error)
// ListSchedules returns all schedules visible to the caller.
ListSchedules(ctx context.Context) ([]*scheduler.Schedule, error)
// UpsertSchedules creates or updates schedules in batch.
UpsertSchedules(ctx context.Context, schedules []*scheduler.Schedule) error
// RunScheduleNow triggers immediate execution of a schedule.
RunScheduleNow(ctx context.Context, id string) error
}
type ConversationPage ¶
type ConversationPage = data.ConversationPage
ConversationPage is the paginated result from ListConversations.
type ConversationState ¶
type ConversationState struct {
ConversationID string `json:"conversationId"`
Turns []*TurnState `json:"turns"`
Feeds []*ActiveFeedState `json:"feeds,omitempty"`
}
func BuildCanonicalState ¶
func BuildCanonicalState(conversationID string, turns convstore.Transcript) *ConversationState
BuildCanonicalState converts a transcript into the canonical ConversationState. This is the single entry point for producing renderable state from transcript data.
func Reduce ¶
func Reduce(state *ConversationState, event *streaming.Event) *ConversationState
Reducer applies a stream event to a ConversationState, returning the updated state. The reducer is source-agnostic: both live stream events and transcript-derived events feed into the same function.
The reducer is the single owner of state transitions. UI and SDK callers must not infer execution structure outside this function.
type CreateConversationInput ¶
CreateConversationInput holds fields needed to create a new conversation.
type CreateSessionRequest ¶ added in v0.1.2
type DecideToolApprovalInput ¶
type DecideToolApprovalOutput ¶
type DecideToolApprovalOutput struct {
Status string `json:"status"`
}
type DownloadFileInput ¶
DownloadFileInput identifies a file to download.
type DownloadFileOutput ¶
DownloadFileOutput carries the downloaded file contents.
type EditQueuedTurnInput ¶
type ElicitationDialog ¶
type ElicitationDialog struct {
ElicitationID string
Status ElicitationStatus
Message string
RequestedSchema map[string]interface{}
CallbackURL string
ResponsePayload map[string]interface{}
// IsPending is true when the user needs to respond.
IsPending bool
}
ElicitationDialog describes the elicitation UI to present to the user.
func SelectElicitationDialog ¶
func SelectElicitationDialog(turn *TurnState) *ElicitationDialog
SelectElicitationDialog returns the elicitation dialog state for a turn, or nil if no elicitation is active.
Rules (from the proposal):
- Show schema form in a dialog
- Do not render duplicate inline form or duplicate assistant bubble with the same elicitation text
type ElicitationState ¶
type ElicitationState struct {
ElicitationID string `json:"elicitationId"`
Status ElicitationStatus `json:"status"`
Message string `json:"message,omitempty"`
RequestedSchema map[string]interface{} `json:"requestedSchema,omitempty"`
CallbackURL string `json:"callbackUrl,omitempty"`
ResponsePayload map[string]interface{} `json:"responsePayload,omitempty"`
}
ElicitationState represents a pending or resolved elicitation within a turn.
type ElicitationStatus ¶
type ElicitationStatus string
ElicitationStatus enumerates elicitation lifecycle states.
const ( ElicitationStatusPending ElicitationStatus = "pending" ElicitationStatusAccepted ElicitationStatus = "accepted" ElicitationStatusDeclined ElicitationStatus = "declined" ElicitationStatusCanceled ElicitationStatus = "canceled" )
type EmbeddedClient ¶
type EmbeddedClient struct {
// contains filtered or unexported fields
}
func NewEmbedded ¶
func NewEmbedded(agent *agentsvc.Service, conv conversation.Client) (*EmbeddedClient, error)
func NewEmbeddedFromRuntime ¶
func NewEmbeddedFromRuntime(rt *executor.Runtime) (*EmbeddedClient, error)
func (*EmbeddedClient) CancelQueuedTurn ¶
func (c *EmbeddedClient) CancelQueuedTurn(ctx context.Context, conversationID, turnID string) error
func (*EmbeddedClient) CancelTurn ¶
func (*EmbeddedClient) CompactConversation ¶
func (c *EmbeddedClient) CompactConversation(ctx context.Context, conversationID string) error
func (*EmbeddedClient) CreateConversation ¶
func (c *EmbeddedClient) CreateConversation(ctx context.Context, input *CreateConversationInput) (*conversation.Conversation, error)
func (*EmbeddedClient) DecideToolApproval ¶
func (c *EmbeddedClient) DecideToolApproval(ctx context.Context, input *DecideToolApprovalInput) (*DecideToolApprovalOutput, error)
func (*EmbeddedClient) DeleteResource ¶
func (c *EmbeddedClient) DeleteResource(ctx context.Context, input *ResourceRef) error
func (*EmbeddedClient) DownloadFile ¶
func (c *EmbeddedClient) DownloadFile(ctx context.Context, input *DownloadFileInput) (*DownloadFileOutput, error)
func (*EmbeddedClient) EditQueuedTurn ¶
func (c *EmbeddedClient) EditQueuedTurn(ctx context.Context, input *EditQueuedTurnInput) error
func (*EmbeddedClient) ExecuteTool ¶
func (*EmbeddedClient) ExportResources ¶
func (c *EmbeddedClient) ExportResources(ctx context.Context, input *ExportResourcesInput) (*ExportResourcesOutput, error)
func (*EmbeddedClient) FeedRegistry ¶
func (c *EmbeddedClient) FeedRegistry() *FeedRegistry
func (*EmbeddedClient) ForceSteerQueuedTurn ¶
func (c *EmbeddedClient) ForceSteerQueuedTurn(ctx context.Context, conversationID, turnID string) (*SteerTurnOutput, error)
func (*EmbeddedClient) GetA2AAgentCard ¶
func (*EmbeddedClient) GetConversation ¶
func (c *EmbeddedClient) GetConversation(ctx context.Context, id string) (*conversation.Conversation, error)
func (*EmbeddedClient) GetMessages ¶
func (c *EmbeddedClient) GetMessages(ctx context.Context, input *GetMessagesInput) (*MessagePage, error)
func (*EmbeddedClient) GetPayload ¶
func (c *EmbeddedClient) GetPayload(ctx context.Context, id string) (*conversation.Payload, error)
func (*EmbeddedClient) GetResource ¶
func (c *EmbeddedClient) GetResource(ctx context.Context, input *ResourceRef) (*GetResourceOutput, error)
func (*EmbeddedClient) GetRun ¶
func (c *EmbeddedClient) GetRun(ctx context.Context, id string) (*agrun.RunRowsView, error)
func (*EmbeddedClient) GetSchedule ¶
func (*EmbeddedClient) GetTranscript ¶
func (c *EmbeddedClient) GetTranscript(ctx context.Context, input *GetTranscriptInput, options ...TranscriptOption) (*ConversationState, error)
func (*EmbeddedClient) ImportResources ¶
func (c *EmbeddedClient) ImportResources(ctx context.Context, input *ImportResourcesInput) (*ImportResourcesOutput, error)
func (*EmbeddedClient) ListA2AAgents ¶
func (*EmbeddedClient) ListConversations ¶
func (c *EmbeddedClient) ListConversations(ctx context.Context, input *ListConversationsInput) (*ConversationPage, error)
func (*EmbeddedClient) ListFiles ¶
func (c *EmbeddedClient) ListFiles(ctx context.Context, input *ListFilesInput) (*ListFilesOutput, error)
func (*EmbeddedClient) ListLinkedConversations ¶
func (c *EmbeddedClient) ListLinkedConversations(ctx context.Context, input *ListLinkedConversationsInput) (*LinkedConversationPage, error)
func (*EmbeddedClient) ListPendingElicitations ¶
func (c *EmbeddedClient) ListPendingElicitations(ctx context.Context, input *ListPendingElicitationsInput) ([]*PendingElicitation, error)
func (*EmbeddedClient) ListPendingToolApprovals ¶
func (c *EmbeddedClient) ListPendingToolApprovals(ctx context.Context, input *ListPendingToolApprovalsInput) ([]*PendingToolApproval, error)
func (*EmbeddedClient) ListResources ¶
func (c *EmbeddedClient) ListResources(ctx context.Context, input *ListResourcesInput) (*ListResourcesOutput, error)
func (*EmbeddedClient) ListSchedules ¶
func (*EmbeddedClient) ListToolDefinitions ¶
func (c *EmbeddedClient) ListToolDefinitions(_ context.Context) ([]ToolDefinitionInfo, error)
func (*EmbeddedClient) Mode ¶
func (c *EmbeddedClient) Mode() Mode
func (*EmbeddedClient) MoveQueuedTurn ¶
func (c *EmbeddedClient) MoveQueuedTurn(ctx context.Context, input *MoveQueuedTurnInput) error
func (*EmbeddedClient) PruneConversation ¶
func (c *EmbeddedClient) PruneConversation(ctx context.Context, conversationID string) error
func (*EmbeddedClient) Query ¶
func (c *EmbeddedClient) Query(ctx context.Context, input *agentsvc.QueryInput) (*agentsvc.QueryOutput, error)
func (*EmbeddedClient) RecordOOBAuthElicitation ¶
func (c *EmbeddedClient) RecordOOBAuthElicitation(ctx context.Context, authURL string) error
func (*EmbeddedClient) ResolveElicitation ¶
func (c *EmbeddedClient) ResolveElicitation(ctx context.Context, input *ResolveElicitationInput) error
func (*EmbeddedClient) ResolveFeedData ¶
func (*EmbeddedClient) RunScheduleNow ¶
func (c *EmbeddedClient) RunScheduleNow(ctx context.Context, id string) error
func (*EmbeddedClient) SaveResource ¶
func (c *EmbeddedClient) SaveResource(ctx context.Context, input *SaveResourceInput) error
func (*EmbeddedClient) SendA2AMessage ¶
func (c *EmbeddedClient) SendA2AMessage(ctx context.Context, agentID string, req *a2a.SendMessageRequest) (*a2a.SendMessageResponse, error)
func (*EmbeddedClient) SetScheduler ¶
func (c *EmbeddedClient) SetScheduler(svc *scheduler.Service)
func (*EmbeddedClient) SteerTurn ¶
func (c *EmbeddedClient) SteerTurn(ctx context.Context, input *SteerTurnInput) (*SteerTurnOutput, error)
func (*EmbeddedClient) StreamEvents ¶
func (c *EmbeddedClient) StreamEvents(ctx context.Context, input *StreamEventsInput) (streaming.Subscription, error)
func (*EmbeddedClient) TerminateConversation ¶
func (c *EmbeddedClient) TerminateConversation(ctx context.Context, conversationID string) error
func (*EmbeddedClient) UpdateConversation ¶
func (c *EmbeddedClient) UpdateConversation(ctx context.Context, input *UpdateConversationInput) (*conversation.Conversation, error)
func (*EmbeddedClient) UploadFile ¶
func (c *EmbeddedClient) UploadFile(_ context.Context, _ *UploadFileInput) (*UploadFileOutput, error)
func (*EmbeddedClient) UpsertSchedules ¶
type ExecutionPageState ¶
type ExecutionPageState struct {
PageID string `json:"pageId"`
AssistantMessageID string `json:"assistantMessageId"`
ParentMessageID string `json:"parentMessageId"`
TurnID string `json:"turnId"`
Iteration int `json:"iteration"`
Status string `json:"status,omitempty"`
ModelSteps []*ModelStepState `json:"modelSteps,omitempty"`
ToolSteps []*ToolStepState `json:"toolSteps,omitempty"`
PreambleMessageID string `json:"preambleMessageId,omitempty"`
FinalAssistantMessageID string `json:"finalAssistantMessageId,omitempty"`
Preamble string `json:"preamble,omitempty"`
Content string `json:"content,omitempty"`
FinalResponse bool `json:"finalResponse"`
}
ExecutionPageState is one iteration of the ReAct loop (model call + tool calls).
func SelectVisibleExecutionPage ¶
func SelectVisibleExecutionPage(turn *TurnState, pageIndex int) *ExecutionPageState
SelectVisibleExecutionPage returns the execution page at the given index. If pageIndex is out of range, returns the active (latest) page. Returns nil if the turn has no execution state.
type ExecutionState ¶
type ExecutionState struct {
Pages []*ExecutionPageState `json:"pages"`
ActivePageIdx int `json:"activePageIndex"`
TotalElapsedMs int64 `json:"totalElapsedMs"`
}
ExecutionState aggregates all execution pages (iterations) within a turn.
type ExportResourcesInput ¶
type ExportResourcesInput struct {
Kinds []string `json:"kinds"` // nil = all
}
ExportResourcesInput controls which resources are exported.
type ExportResourcesOutput ¶
type ExportResourcesOutput struct {
Resources []Resource `json:"resources"`
}
ExportResourcesOutput carries the exported resources.
type FeedActivation ¶
type FeedActivation struct {
Kind string `yaml:"kind,omitempty" json:"kind,omitempty"` // "history" (default) or "tool_call"
Scope string `yaml:"scope,omitempty" json:"scope,omitempty"` // "last" (default) or "all"
Service string `yaml:"service,omitempty" json:"service,omitempty"` // optional data-source service for tool_call activation
Method string `yaml:"method,omitempty" json:"method,omitempty"` // optional data-source method for tool_call activation
}
FeedActivation controls how feed data is gathered.
type FeedMatch ¶
type FeedMatch struct {
Service string `yaml:"service" json:"service"`
Method string `yaml:"method" json:"method"`
}
FeedMatch defines which tool calls trigger this feed.
type FeedRegistry ¶
type FeedRegistry struct {
// contains filtered or unexported fields
}
FeedRegistry loads feed specs from workspace and matches tool calls.
func NewFeedRegistry ¶
func NewFeedRegistry() *FeedRegistry
NewFeedRegistry creates a registry and loads all feed specs from workspace.
func (*FeedRegistry) Match ¶
func (r *FeedRegistry) Match(toolName string) []*FeedSpec
Match returns feed specs that match a tool name (service/method or service:method).
func (*FeedRegistry) MatchAny ¶
func (r *FeedRegistry) MatchAny(toolName string) bool
MatchAny returns true if any feed spec matches the tool name.
func (*FeedRegistry) Reload ¶
func (r *FeedRegistry) Reload()
Reload reloads all feed specs from workspace. Safe for hot-swap.
func (*FeedRegistry) Specs ¶
func (r *FeedRegistry) Specs() []*FeedSpec
Specs returns all loaded feed specs.
type FeedSpec ¶
type FeedSpec struct {
ID string `yaml:"id" json:"id"`
Title string `yaml:"title,omitempty" json:"title,omitempty"`
Match FeedMatch `yaml:"match" json:"match"`
Activation FeedActivation `yaml:"activation,omitempty" json:"activation,omitempty"`
DataSource map[string]interface{} `yaml:"dataSource,omitempty" json:"dataSource,omitempty"`
UI interface{} `yaml:"ui,omitempty" json:"ui,omitempty"`
}
FeedSpec describes a tool feed loaded from workspace YAML.
type FeedState ¶
type FeedState struct {
FeedID string `json:"feedId"`
Title string `json:"title"`
ItemCount int `json:"itemCount"`
ToolName string `json:"toolName,omitempty"`
}
FeedState tracks active feeds for a conversation.
type GetMessagesInput ¶
type GetMessagesInput struct {
ConversationID string
Page *PageInput
// Optional filters
ID string
TurnID string
Roles []string
Types []string
}
GetMessagesInput controls which messages are returned for a conversation.
type GetResourceOutput ¶
type GetResourceOutput struct {
Kind string `json:"kind"`
Name string `json:"name"`
Data []byte `json:"data"`
}
GetResourceOutput carries the raw content of a workspace resource.
type GetTranscriptInput ¶
type GetTranscriptInput struct {
ConversationID string
Since string // optional: turn ID or message ID cursor
IncludeModelCalls bool
IncludeToolCalls bool
}
GetTranscriptInput controls which transcript turns are returned for a conversation.
type HTTPClient ¶
type HTTPClient struct {
// contains filtered or unexported fields
}
func NewHTTP ¶
func NewHTTP(baseURL string, opts ...HTTPOption) (*HTTPClient, error)
func (*HTTPClient) AuthBrowserSession ¶
func (c *HTTPClient) AuthBrowserSession(ctx context.Context) error
func (*HTTPClient) AuthCreateSession ¶ added in v0.1.2
func (c *HTTPClient) AuthCreateSession(ctx context.Context, req *CreateSessionRequest) error
func (*HTTPClient) AuthLocalLogin ¶
func (c *HTTPClient) AuthLocalLogin(ctx context.Context, name string) error
func (*HTTPClient) AuthLocalOOBSession ¶ added in v0.1.2
func (c *HTTPClient) AuthLocalOOBSession(ctx context.Context, opts *LocalOOBSessionOptions) error
func (*HTTPClient) AuthMe ¶
func (c *HTTPClient) AuthMe(ctx context.Context) (map[string]interface{}, error)
func (*HTTPClient) AuthOAuthConfig ¶
func (c *HTTPClient) AuthOAuthConfig(ctx context.Context) (*OAuthConfigResponse, error)
func (*HTTPClient) AuthOOBLogin ¶
func (*HTTPClient) AuthOOBSession ¶
func (*HTTPClient) AuthProviders ¶
func (c *HTTPClient) AuthProviders(ctx context.Context) ([]AuthProvider, error)
func (*HTTPClient) AuthSessionExchange ¶
func (c *HTTPClient) AuthSessionExchange(ctx context.Context, idToken string) error
func (*HTTPClient) CancelQueuedTurn ¶
func (c *HTTPClient) CancelQueuedTurn(ctx context.Context, conversationID, turnID string) error
func (*HTTPClient) CancelTurn ¶
func (*HTTPClient) CompactConversation ¶
func (c *HTTPClient) CompactConversation(ctx context.Context, conversationID string) error
func (*HTTPClient) CreateConversation ¶
func (c *HTTPClient) CreateConversation(ctx context.Context, input *CreateConversationInput) (*conversation.Conversation, error)
func (*HTTPClient) DecideToolApproval ¶
func (c *HTTPClient) DecideToolApproval(ctx context.Context, input *DecideToolApprovalInput) (*DecideToolApprovalOutput, error)
func (*HTTPClient) DeleteResource ¶
func (c *HTTPClient) DeleteResource(ctx context.Context, input *ResourceRef) error
func (*HTTPClient) DownloadFile ¶
func (c *HTTPClient) DownloadFile(ctx context.Context, input *DownloadFileInput) (*DownloadFileOutput, error)
func (*HTTPClient) EditQueuedTurn ¶
func (c *HTTPClient) EditQueuedTurn(ctx context.Context, input *EditQueuedTurnInput) error
func (*HTTPClient) ExecuteTool ¶
func (*HTTPClient) ExportResources ¶
func (c *HTTPClient) ExportResources(ctx context.Context, input *ExportResourcesInput) (*ExportResourcesOutput, error)
func (*HTTPClient) ForceSteerQueuedTurn ¶
func (c *HTTPClient) ForceSteerQueuedTurn(ctx context.Context, conversationID, turnID string) (*SteerTurnOutput, error)
func (*HTTPClient) GetA2AAgentCard ¶
func (*HTTPClient) GetConversation ¶
func (c *HTTPClient) GetConversation(ctx context.Context, id string) (*conversation.Conversation, error)
func (*HTTPClient) GetMessages ¶
func (c *HTTPClient) GetMessages(ctx context.Context, input *GetMessagesInput) (*MessagePage, error)
func (*HTTPClient) GetResource ¶
func (c *HTTPClient) GetResource(ctx context.Context, input *ResourceRef) (*GetResourceOutput, error)
func (*HTTPClient) GetRun ¶
func (c *HTTPClient) GetRun(ctx context.Context, id string) (*agrun.RunRowsView, error)
func (*HTTPClient) GetSchedule ¶
func (*HTTPClient) GetTranscript ¶
func (c *HTTPClient) GetTranscript(ctx context.Context, input *GetTranscriptInput, options ...TranscriptOption) (*ConversationState, error)
func (*HTTPClient) GetWorkspaceMetadata ¶
func (c *HTTPClient) GetWorkspaceMetadata(ctx context.Context) (*WorkspaceMetadata, error)
func (*HTTPClient) ImportResources ¶
func (c *HTTPClient) ImportResources(ctx context.Context, input *ImportResourcesInput) (*ImportResourcesOutput, error)
func (*HTTPClient) ListA2AAgents ¶
func (*HTTPClient) ListConversations ¶
func (c *HTTPClient) ListConversations(ctx context.Context, input *ListConversationsInput) (*ConversationPage, error)
func (*HTTPClient) ListFiles ¶
func (c *HTTPClient) ListFiles(ctx context.Context, input *ListFilesInput) (*ListFilesOutput, error)
func (*HTTPClient) ListLinkedConversations ¶
func (c *HTTPClient) ListLinkedConversations(ctx context.Context, input *ListLinkedConversationsInput) (*LinkedConversationPage, error)
func (*HTTPClient) ListPendingElicitations ¶
func (c *HTTPClient) ListPendingElicitations(ctx context.Context, input *ListPendingElicitationsInput) ([]*PendingElicitation, error)
func (*HTTPClient) ListPendingToolApprovals ¶
func (c *HTTPClient) ListPendingToolApprovals(ctx context.Context, input *ListPendingToolApprovalsInput) ([]*PendingToolApproval, error)
func (*HTTPClient) ListResources ¶
func (c *HTTPClient) ListResources(ctx context.Context, input *ListResourcesInput) (*ListResourcesOutput, error)
func (*HTTPClient) ListSchedules ¶
func (*HTTPClient) ListToolDefinitions ¶
func (c *HTTPClient) ListToolDefinitions(ctx context.Context) ([]ToolDefinitionInfo, error)
func (*HTTPClient) Mode ¶
func (c *HTTPClient) Mode() Mode
func (*HTTPClient) MoveQueuedTurn ¶
func (c *HTTPClient) MoveQueuedTurn(ctx context.Context, input *MoveQueuedTurnInput) error
func (*HTTPClient) PruneConversation ¶
func (c *HTTPClient) PruneConversation(ctx context.Context, conversationID string) error
func (*HTTPClient) Query ¶
func (c *HTTPClient) Query(ctx context.Context, input *agentsvc.QueryInput) (*agentsvc.QueryOutput, error)
func (*HTTPClient) ResolveElicitation ¶
func (c *HTTPClient) ResolveElicitation(ctx context.Context, input *ResolveElicitationInput) error
func (*HTTPClient) RunScheduleNow ¶
func (c *HTTPClient) RunScheduleNow(ctx context.Context, id string) error
func (*HTTPClient) SaveResource ¶
func (c *HTTPClient) SaveResource(ctx context.Context, input *SaveResourceInput) error
func (*HTTPClient) SendA2AMessage ¶
func (c *HTTPClient) SendA2AMessage(ctx context.Context, agentID string, req *a2a.SendMessageRequest) (*a2a.SendMessageResponse, error)
func (*HTTPClient) SteerTurn ¶
func (c *HTTPClient) SteerTurn(ctx context.Context, input *SteerTurnInput) (*SteerTurnOutput, error)
func (*HTTPClient) StreamEvents ¶
func (c *HTTPClient) StreamEvents(ctx context.Context, input *StreamEventsInput) (streaming.Subscription, error)
func (*HTTPClient) TerminateConversation ¶
func (c *HTTPClient) TerminateConversation(ctx context.Context, conversationID string) error
func (*HTTPClient) UpdateConversation ¶
func (c *HTTPClient) UpdateConversation(ctx context.Context, input *UpdateConversationInput) (*conversation.Conversation, error)
func (*HTTPClient) UploadFile ¶
func (c *HTTPClient) UploadFile(_ context.Context, _ *UploadFileInput) (*UploadFileOutput, error)
func (*HTTPClient) UpsertSchedules ¶
type HTTPOption ¶
type HTTPOption func(*HTTPClient)
func WithAuthToken ¶
func WithAuthToken(token string) HTTPOption
WithAuthToken sets a static Bearer token that is sent with every request.
func WithConversationsPath ¶
func WithConversationsPath(path string) HTTPOption
func WithHTTPClient ¶
func WithHTTPClient(client *http.Client) HTTPOption
func WithQueryPath ¶
func WithQueryPath(path string) HTTPOption
func WithSchedulerPath ¶
func WithSchedulerPath(path string) HTTPOption
func WithTokenProvider ¶
func WithTokenProvider(p TokenProvider) HTTPOption
WithTokenProvider sets a dynamic token provider called before each request.
type HandlerOption ¶
type HandlerOption func(*handlerConfig)
HandlerOption customises the handler created by NewHandler.
func WithA2AHandler ¶
func WithA2AHandler(h *svca2a.Handler) HandlerOption
func WithAuth ¶
func WithAuth(cfg *svcauth.Config, sessions *svcauth.Manager, opts ...svcauth.HandlerOption) HandlerOption
func WithFileBrowser ¶
func WithFileBrowser(h *svcworkspace.FileBrowserHandler) HandlerOption
func WithMetadataHandler ¶
func WithMetadataHandler(h *svcworkspace.MetadataHandler) HandlerOption
func WithScheduler ¶
func WithScheduler(svc *scheduler.Service, handler *scheduler.Handler, opts *SchedulerOptions) HandlerOption
func WithSchedulerHandler ¶
func WithSchedulerHandler(h *scheduler.Handler) HandlerOption
func WithSpeechHandler ¶
func WithSpeechHandler(h *speech.Handler) HandlerOption
func WithWorkflowHandler ¶
func WithWorkflowHandler(h *workflow.Handler) HandlerOption
type ImportResourcesInput ¶
type ImportResourcesInput struct {
Resources []Resource `json:"resources"`
Replace bool `json:"replace"`
}
ImportResourcesInput carries resources to import in bulk.
type ImportResourcesOutput ¶
ImportResourcesOutput summarises the import operation.
type LinkedConversationEntry ¶
type LinkedConversationEntry struct {
ConversationID string `json:"conversationId"`
ParentConversationID string `json:"parentConversationId,omitempty"`
ParentTurnID string `json:"parentTurnId,omitempty"`
AgentID string `json:"agentId,omitempty"`
Title string `json:"title,omitempty"`
Status string `json:"status,omitempty"`
Response string `json:"response,omitempty"`
CreatedAt time.Time `json:"createdAt"`
UpdatedAt *time.Time `json:"updatedAt,omitempty"`
}
type LinkedConversationPage ¶
type LinkedConversationPage struct {
Rows []*LinkedConversationEntry `json:"rows"`
NextCursor string `json:"nextCursor,omitempty"`
PrevCursor string `json:"prevCursor,omitempty"`
HasMore bool `json:"hasMore"`
}
type LinkedConversationState ¶
type LinkedConversationState struct {
ConversationID string `json:"conversationId"`
ParentConversationID string `json:"parentConversationId,omitempty"`
ParentTurnID string `json:"parentTurnId,omitempty"`
ToolCallID string `json:"toolCallId,omitempty"`
Status string `json:"status,omitempty"`
Response string `json:"response,omitempty"`
CreatedAt time.Time `json:"createdAt,omitempty"`
UpdatedAt *time.Time `json:"updatedAt,omitempty"`
}
LinkedConversationState represents a child conversation linked to a parent turn.
func SelectLinkedConversationForToolCall ¶
func SelectLinkedConversationForToolCall(turn *TurnState, toolCallID string) *LinkedConversationState
SelectLinkedConversationForToolCall returns the linked conversation associated with a specific tool call, or nil if none exists. This is the single source of truth for tool→child navigation.
func SelectLinkedConversations ¶
func SelectLinkedConversations(turn *TurnState) []*LinkedConversationState
SelectLinkedConversations returns linked child conversations for a turn.
type ListConversationsInput ¶
type ListConversationsInput struct {
AgentID string
ParentID string
ParentTurnID string
ExcludeScheduled bool
Query string
Status string
Page *PageInput
}
ListConversationsInput controls the conversation listing query.
type ListFilesInput ¶
type ListFilesInput struct {
ConversationID string
}
ListFilesInput controls which files are listed.
type ListFilesOutput ¶
type ListFilesOutput struct {
Files []*FileEntry
}
ListFilesOutput is the result of listing files.
type ListPendingElicitationsInput ¶
type ListPendingElicitationsInput struct {
ConversationID string
}
ListPendingElicitationsInput controls pending elicitation lookup.
type ListResourcesInput ¶
type ListResourcesInput struct {
Kind string `json:"kind"`
}
ListResourcesInput controls which resources are listed.
type ListResourcesOutput ¶
type ListResourcesOutput struct {
Names []string `json:"names"`
}
ListResourcesOutput is the result of listing workspace resources.
type LocalLoginRequest ¶
type LocalLoginRequest struct {
Name string `json:"name"`
}
type LocalOOBSessionOptions ¶ added in v0.1.2
type MessagePage ¶
type MessagePage = data.MessagePage
MessagePage is the paginated result from GetMessages.
type ModelStepState ¶
type ModelStepState struct {
ModelCallID string `json:"modelCallId"`
AssistantMessageID string `json:"assistantMessageId"`
Provider string `json:"provider,omitempty"`
Model string `json:"model,omitempty"`
Status string `json:"status,omitempty"`
RequestPayloadID string `json:"requestPayloadId,omitempty"`
ResponsePayloadID string `json:"responsePayloadId,omitempty"`
ProviderRequestPayloadID string `json:"providerRequestPayloadId,omitempty"`
ProviderResponsePayloadID string `json:"providerResponsePayloadId,omitempty"`
StreamPayloadID string `json:"streamPayloadId,omitempty"`
RequestPayload any `json:"requestPayload,omitempty"`
ResponsePayload any `json:"responsePayload,omitempty"`
ProviderRequestPayload any `json:"providerRequestPayload,omitempty"`
ProviderResponsePayload any `json:"providerResponsePayload,omitempty"`
StreamPayload any `json:"streamPayload,omitempty"`
StartedAt *time.Time `json:"startedAt,omitempty"`
CompletedAt *time.Time `json:"completedAt,omitempty"`
}
ModelStepState represents a single LLM call within an execution page.
type MoveQueuedTurnInput ¶
type OAuthConfigResponse ¶
type OOBRequest ¶
type PendingElicitation ¶
type PendingElicitation struct {
ConversationID string `json:"conversationId"`
ElicitationID string `json:"elicitationId"`
MessageID string `json:"messageId"`
Status string `json:"status"`
Role string `json:"role"`
Type string `json:"type"`
CreatedAt time.Time `json:"createdAt"`
Content string `json:"content,omitempty"`
Elicitation map[string]interface{} `json:"elicitation,omitempty"`
}
PendingElicitation represents one pending elicitation message.
type PendingToolApproval ¶
type PendingToolApproval struct {
ID string `json:"id"`
UserID string `json:"userId"`
ConversationID string `json:"conversationId,omitempty"`
TurnID string `json:"turnId,omitempty"`
MessageID string `json:"messageId,omitempty"`
ToolName string `json:"toolName"`
Title string `json:"title,omitempty"`
Arguments map[string]interface{} `json:"arguments,omitempty"`
Metadata map[string]interface{} `json:"metadata,omitempty"`
Status string `json:"status"`
Decision string `json:"decision,omitempty"`
CreatedAt time.Time `json:"createdAt"`
UpdatedAt *time.Time `json:"updatedAt,omitempty"`
ErrorMessage string `json:"errorMessage,omitempty"`
}
type QuerySelector ¶
type ResolveElicitationInput ¶
type ResolveElicitationInput struct {
ConversationID string
ElicitationID string
Action string
Payload map[string]interface{}
}
ResolveElicitationInput carries the user response for an elicitation prompt.
type Resource ¶
type Resource struct {
Kind string `json:"kind"`
Name string `json:"name"`
Data []byte `json:"data"`
}
Resource is a single workspace resource used for bulk import/export.
type ResourceRef ¶
ResourceRef identifies a workspace resource by kind and name.
type SaveResourceInput ¶
type SaveResourceInput struct {
Kind string `json:"kind"`
Name string `json:"name"`
Data []byte `json:"data"`
}
SaveResourceInput describes a workspace resource to create or update.
type SchedulerOptions ¶
SchedulerOptions controls scheduler behavior at the SDK level.
type StarterTask ¶
type StarterTask struct {
ID string `json:"id,omitempty"`
Title string `json:"title,omitempty"`
Prompt string `json:"prompt,omitempty"`
Description string `json:"description,omitempty"`
Icon string `json:"icon,omitempty"`
}
StarterTask describes an agent-specific suggested starter prompt for empty chat state.
type SteerTurnInput ¶
type SteerTurnOutput ¶
type StreamEventsInput ¶
StreamEventsInput controls which streaming events to subscribe to.
type TokenProvider ¶
TokenProvider is a function that returns a current auth token. It is called before each request, allowing dynamic token refresh.
type ToolDefinitionInfo ¶
type ToolDefinitionInfo struct {
Name string `json:"name"`
Description string `json:"description,omitempty"`
Parameters map[string]interface{} `json:"parameters,omitempty"`
Required []string `json:"required,omitempty"`
OutputSchema map[string]interface{} `json:"output_schema,omitempty"`
}
ToolDefinitionInfo is a tool definition returned by ListToolDefinitions.
type ToolStepState ¶
type ToolStepState struct {
ToolCallID string `json:"toolCallId"`
ToolMessageID string `json:"toolMessageId"`
ToolName string `json:"toolName"`
Status string `json:"status,omitempty"`
RequestPayloadID string `json:"requestPayloadId,omitempty"`
ResponsePayloadID string `json:"responsePayloadId,omitempty"`
RequestPayload any `json:"requestPayload,omitempty"`
ResponsePayload any `json:"responsePayload,omitempty"`
LinkedConversationID string `json:"linkedConversationId,omitempty"`
StartedAt *time.Time `json:"startedAt,omitempty"`
CompletedAt *time.Time `json:"completedAt,omitempty"`
}
ToolStepState represents a single tool invocation within an execution page.
type TranscriptOption ¶
type TranscriptOption func(*transcriptOptions)
func WithIncludeFeeds ¶
func WithIncludeFeeds() TranscriptOption
WithIncludeFeeds enables tool feed resolution in the transcript response. When enabled, matching tool calls are scanned and their response payloads fetched to populate the Feeds field on ConversationState.
func WithTranscriptMessageSelector ¶
func WithTranscriptMessageSelector(selector *QuerySelector) TranscriptOption
func WithTranscriptSelector ¶
func WithTranscriptSelector(name string, selector *QuerySelector) TranscriptOption
func WithTranscriptToolMessageSelector ¶
func WithTranscriptToolMessageSelector(selector *QuerySelector) TranscriptOption
func WithTranscriptTurnSelector ¶
func WithTranscriptTurnSelector(selector *QuerySelector) TranscriptOption
type TurnState ¶
type TurnState struct {
TurnID string `json:"turnId"`
Status TurnStatus `json:"status"`
User *UserMessageState `json:"user,omitempty"`
Execution *ExecutionState `json:"execution,omitempty"`
Assistant *AssistantState `json:"assistant,omitempty"`
Elicitation *ElicitationState `json:"elicitation,omitempty"`
LinkedConversations []*LinkedConversationState `json:"linkedConversations,omitempty"`
CreatedAt time.Time `json:"createdAt,omitempty"`
}
TurnState is the canonical representation of a single conversation turn.
func SelectRenderTurns ¶
func SelectRenderTurns(state *ConversationState) []*TurnState
SelectRenderTurns returns all turns suitable for rendering. It filters out turns that have no meaningful content to display.
type TurnStatus ¶
type TurnStatus string
TurnStatus enumerates canonical turn lifecycle states.
const ( TurnStatusRunning TurnStatus = "running" TurnStatusWaitingForUser TurnStatus = "waiting_for_user" TurnStatusCompleted TurnStatus = "completed" TurnStatusFailed TurnStatus = "failed" TurnStatusCanceled TurnStatus = "canceled" )
type UpdateConversationInput ¶
type UpdateConversationInput struct {
ConversationID string `json:"-"`
Title string `json:"title,omitempty"`
Visibility string `json:"visibility,omitempty"` // private|public
}
UpdateConversationInput updates mutable conversation fields. At least one of Title, Visibility, or Shareable must be provided.
type UploadFileInput ¶
UploadFileInput describes a file to upload.
type UploadFileOutput ¶
UploadFileOutput is the result of a file upload.
type UserMessageState ¶
type UserMessageState struct {
MessageID string `json:"messageId"`
Content string `json:"content,omitempty"`
}
UserMessageState represents the user message that initiated a turn.
type WorkspaceAgentInfo ¶
type WorkspaceAgentInfo struct {
ID string `json:"id,omitempty"`
Name string `json:"name,omitempty"`
ModelRef string `json:"modelRef,omitempty"`
StarterTasks []StarterTask `json:"starterTasks,omitempty"`
}
WorkspaceAgentInfo describes a UI-facing agent entry returned by GET /v1/workspace/metadata.
type WorkspaceCapabilities ¶
type WorkspaceCapabilities struct {
AgentAutoSelection bool `json:"agentAutoSelection,omitempty"`
ModelAutoSelection bool `json:"modelAutoSelection,omitempty"`
ToolAutoSelection bool `json:"toolAutoSelection,omitempty"`
CompactConversation bool `json:"compactConversation,omitempty"`
PruneConversation bool `json:"pruneConversation,omitempty"`
AnonymousSession bool `json:"anonymousSession,omitempty"`
MessageCursor bool `json:"messageCursor,omitempty"`
StructuredElicitation bool `json:"structuredElicitation,omitempty"`
TurnStartedEvent bool `json:"turnStartedEvent,omitempty"`
}
WorkspaceCapabilities advertises optional backend contracts so clients can adapt UX without probing unsupported features.
type WorkspaceDefaults ¶
type WorkspaceMetadata ¶
type WorkspaceMetadata struct {
WorkspaceRoot string `json:"workspaceRoot,omitempty"`
DefaultAgent string `json:"defaultAgent,omitempty"`
DefaultModel string `json:"defaultModel,omitempty"`
DefaultEmbedder string `json:"defaultEmbedder,omitempty"`
Defaults *WorkspaceDefaults `json:"defaults,omitempty"`
Capabilities WorkspaceCapabilities `json:"capabilities,omitempty"`
Agents []string `json:"agents,omitempty"`
Models []string `json:"models,omitempty"`
AgentInfos []WorkspaceAgentInfo `json:"agentInfos,omitempty"`
ModelInfos []WorkspaceModelInfo `json:"modelInfos,omitempty"`
Version string `json:"version,omitempty"`
}
WorkspaceMetadata is the workspace bootstrap payload returned by GET /v1/workspace/metadata.
type WorkspaceModelInfo ¶
type WorkspaceModelInfo struct {
ID string `json:"id,omitempty"`
Name string `json:"name,omitempty"`
}
WorkspaceModelInfo describes a UI-facing model entry returned by GET /v1/workspace/metadata.
Source Files
¶
- canonical.go
- canonical_reducer.go
- canonical_selectors.go
- canonical_transcript.go
- client.go
- embedded.go
- embedded_a2a_scheduler.go
- embedded_feeds.go
- embedded_queue.go
- embedded_resources.go
- embedded_transcript.go
- errors.go
- execution_groups.go
- feed.go
- feed_merge.go
- feed_notifier.go
- feed_resolver.go
- handler.go
- handler_common.go
- handler_conversations.go
- handler_feeds.go
- handler_files.go
- handler_messages.go
- handler_tools_resources.go
- handler_turns.go
- http.go
- http_auth.go
- types.go