Help us shape the future of Go! Take the 2026 Go Developer Survey

sdk

package
v0.1.58 Latest Latest
Warning

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

Go to latest
Published: Oct 26, 2026 License: Apache-2.0 Imports: 134 Imported by: 2

Documentation

Index

Constants

View Source
const (
	TurnStatusQueued         = api.TurnStatusQueued
	TurnStatusRunning        = api.TurnStatusRunning
	TurnStatusWaitingForUser = api.TurnStatusWaitingForUser
	TurnStatusCompleted      = api.TurnStatusCompleted
	TurnStatusFailed         = api.TurnStatusFailed
	TurnStatusCanceled       = api.TurnStatusCanceled
)
View Source
const (
	ElicitationStatusPending  = api.ElicitationStatusPending
	ElicitationStatusAccepted = api.ElicitationStatusAccepted
	ElicitationStatusDeclined = api.ElicitationStatusDeclined
	ElicitationStatusCanceled = api.ElicitationStatusCanceled
	ElicitationStatusFailed   = api.ElicitationStatusFailed
)
View Source
const (
	HeaderDebugEnabled    = "X-Agently-Debug"
	HeaderDebugLevel      = "X-Agently-Debug-Level"
	HeaderDebugComponents = "X-Agently-Debug-Components"
)
View Source
const (
	DirectionBefore = api.DirectionBefore
	DirectionAfter  = api.DirectionAfter
	DirectionLatest = api.DirectionLatest
)
View Source
const (
	TranscriptSelectorTurn        = "Transcript"
	TranscriptSelectorMessage     = "Message"
	TranscriptSelectorToolMessage = "ToolMessage"
)
View Source
const CompatibilityReconcileEvent streaming.EventType = "compatibility_reconcile"

Variables

View Source
var ErrAGUIProxyApprovalContinuation = errors.New("MCP proxy approval requires its original host continuation; native decision remains pending")
View Source
var ErrDatasourceStackNotConfigured = errors.New("datasource stack not configured")

ErrDatasourceStackNotConfigured is returned by Backend implementations that have not wired the datasource / overlay services. HTTP handlers translate it into 501 Not Implemented so clients can distinguish from transient errors.

Functions

func ArtifactDownloadHandler added in v0.1.57

func ArtifactDownloadHandler() http.Handler

ArtifactDownloadHandler is the same owner-scoped retrieval endpoint used by the core SDK. Hosts must attach a verified workspace subject to each request.

func AssembleRenderedReports added in v0.1.17

func AssembleRenderedReports(parts []*RenderedContentPart) ([]*RenderedReportAssembly, []*RenderedContentWarning)

AssembleRenderedReports applies normalized forge-data v2 and forge-report transactions in transcript order. It is intentionally platform-neutral: Forge performs grammar validation and canonical ReportDocument lowering.

func CaptureMCPOutputArtifacts added in v0.1.57

func CaptureMCPOutputArtifacts(ctx context.Context, result *schema.CallToolResult, policy mcpcfg.OutputArtifact) (*schema.CallToolResult, error)

CaptureMCPOutputArtifacts publishes only configured binary MCP output and returns a descriptor-only result. It never fetches a resource URI.

func MCPAppsActivity added in v0.1.57

func MCPAppsActivity(messageID string, binding AGUIMCPAppBinding, result json.RawMessage, toolInput json.RawMessage) (json.RawMessage, error)

MCPAppsActivity preserves the middleware's exact builtin renderer vocabulary.

func MCPAppsServerHash added in v0.1.57

func MCPAppsServerHash(transport, endpoint string) (string, error)

MCPAppsServerHash matches the pinned middleware's public endpoint hash. It is a routing reference only, never app authorization or a credential token.

func MCPTaskOrigin added in v0.1.57

func MCPTaskOrigin(reference MCPTaskReference) tasks.CreateOptions

MCPTaskOrigin constructs private creation options from a trusted runtime reference. This object belongs to a server-side capture callback, not a caller.

func MCPTasksAGUISnapshot added in v0.1.57

func MCPTasksAGUISnapshot(store aguistore.Store) func(context.Context, tasks.Owner, MCPTaskReference) (MCPTaskNativeSnapshot, error)

MCPTasksAGUISnapshot projects existing journals only. It never starts a run, executes a tool, recovers a worker or fabricates a result from a queue receipt.

func NewHandler

func NewHandler(client Backend, opts ...HandlerOption) http.Handler

func NewHandlerWithContext

func NewHandlerWithContext(ctx context.Context, client Backend, opts ...HandlerOption) (http.Handler, error)

func SelectExecutionPageCount

func SelectExecutionPageCount(turn *TurnState) int

SelectExecutionPageCount returns the total number of execution pages (iterations) in a turn.

func SelectTotalElapsedMs

func SelectTotalElapsedMs(turn *TurnState) int64

SelectTotalElapsedMs returns the total elapsed time for execution in a turn.

func WaitForReady

func WaitForReady(baseURL string, timeout time.Duration) error

func WithAGUIMCPAppsBindings added in v0.1.57

func WithAGUIMCPAppsBindings(ctx context.Context, binding AGUIMCPAppsBindings) context.Context

func WithAGUIWorkspaceBindings added in v0.1.57

func WithAGUIWorkspaceBindings(ctx context.Context, bindings AGUIWorkspaceBindings) context.Context

WithAGUIWorkspaceBindings injects configured typed services, never values from forwarded properties. HTTP and AG-UI share the same policy implementation.

func WithArtifactOwner added in v0.1.57

func WithArtifactOwner(ctx context.Context, ownerKey string) context.Context

WithArtifactOwner binds a server-derived owner key to the core artifact store. The caller remains responsible for verifying the actor behind that key.

func WithDebug added in v0.1.7

func WithDebug(ctx context.Context, components ...string) context.Context

WithDebug enables debug logging for a single SDK call context. When no components are provided, all components are enabled for that context.

func WithDebugOptions added in v0.1.7

func WithDebugOptions(ctx context.Context, opts ...DebugOption) context.Context

WithDebugOptions enables debug logging for a single SDK call context using explicit options such as level and component filters.

Types

type AGUIApprovalDecideInput added in v0.1.57

type AGUIApprovalDecideInput struct {
	OriginalThreadID string               `json:"originalThreadId,omitempty"`
	OriginalRunID    string               `json:"originalRunId"`
	ApprovalID       string               `json:"approvalId"`
	Answer           agui.WireResumeEntry `json:"answer"`
}

type AGUIApprovalReconciler added in v0.1.57

type AGUIApprovalReconciler interface {
	ReconcileAGUIApprovals(context.Context) error
	IsAGUIApprovalRecoveryOwnedTurn(context.Context, string, string) (bool, error)
}

type AGUIBootstrapProjection added in v0.1.57

type AGUIBootstrapProjection struct {
	Lossless              bool     `json:"lossless"`
	UnavailableMessageIDs []string `json:"unavailableMessageIds"`
}

type AGUIConversationBootstrapInput added in v0.1.57

type AGUIConversationBootstrapInput struct {
	Mode                 string                    `json:"mode,omitempty"`
	Since                string                    `json:"since,omitempty"`
	IncludeModelCalls    *bool                     `json:"includeModelCalls,omitempty"`
	IncludeToolCalls     *bool                     `json:"includeToolCalls,omitempty"`
	IncludeModelPayloads *bool                     `json:"includeModelPayloads,omitempty"`
	IncludeToolPayloads  *bool                     `json:"includeToolPayloads,omitempty"`
	IncludeFeeds         *bool                     `json:"includeFeeds,omitempty"`
	Selectors            map[string]*QuerySelector `json:"selectors,omitempty"`
}

type AGUIConversationBootstrapResult added in v0.1.57

type AGUIConversationBootstrapResult struct {
	Version                    string                     `json:"version"`
	ThreadID                   string                     `json:"threadId"`
	Transcript                 *ConversationStateResponse `json:"transcript"`
	Messages                   []aguistate.Object         `json:"messages"`
	HostActivities             []aguistate.Object         `json:"hostActivities"`
	UnavailableHostActivityIDs []string                   `json:"unavailableHostActivityIds"`
	State                      any                        `json:"state"`
	Runs                       []AGUIConversationRun      `json:"runs"`
	Projection                 AGUIBootstrapProjection    `json:"projection"`
}

type AGUIConversationRun added in v0.1.57

type AGUIConversationRun struct {
	Kind         string `json:"kind"`
	ThreadID     string `json:"threadId"`
	RunID        string `json:"runId"`
	ParentRunID  string `json:"parentRunId,omitempty"`
	Status       string `json:"status"`
	Revision     int64  `json:"revision"`
	LastSequence int64  `json:"lastSequence"`
}

Only public protocol identities are exposed, never accepted input, native IDs, continuation internals, leases, principal, or authenticated service bindings.

type AGUIDemoBackend added in v0.1.57

type AGUIDemoBackend struct {
	ID              string   `json:"id" yaml:"id"`
	Label           string   `json:"label" yaml:"label"`
	URL             string   `json:"-" yaml:"url"`
	AllowedSubjects []string `json:"-" yaml:"allowedSubjects"`
}

AGUIDemoBackend explicitly enables an anonymous, public interoperability endpoint. It is not a production credential/delegation configuration. Threads are principal-scoped, ephemeral, and cannot be recovered after BFF restart. Only synthetic, text-only conversations should be sent to public demos.

type AGUIEvent added in v0.1.57

type AGUIEvent struct {
	ID   string
	Type string
	Data json.RawMessage
}

AGUIEvent retains the complete wire event, including extension metadata and integer spellings, along with its opaque durable SSE cursor.

func (AGUIEvent) Decode added in v0.1.57

func (e AGUIEvent) Decode(target any) error

type AGUIFeedActivationReader added in v0.1.57

type AGUIFeedActivationReader interface {
	AGUIFeedActivation(context.Context, string, string) (*bool, error)
}

AGUIFeedActivationReader is a legacy optional bool-only source. It cannot establish original lifecycle ordering and is not used for durable recovery. A future authoritative provider must return original transition provenance.

type AGUIGoalCommandResult added in v0.1.57

type AGUIGoalCommandResult struct {
	Version string            `json:"version"`
	Goal    *AGUIGoalSnapshot `json:"goal"`
	Cleared bool              `json:"cleared,omitempty"`
}

type AGUIGoalLifecycleClient added in v0.1.57

type AGUIGoalLifecycleClient interface {
	PauseGoal(ctx context.Context, threadID, reason string) (*Goal, error)
	ResumeGoal(ctx context.Context, threadID string) (*Goal, error)
}

AGUIGoalLifecycleClient preserves the canonical pause/resume hooks without widening the native Client interface or forcing resource commands through Query.

type AGUIGoalSnapshot added in v0.1.57

type AGUIGoalSnapshot struct {
	ID                 string                  `json:"id"`
	ConversationID     string                  `json:"conversationId"`
	Objective          string                  `json:"objective"`
	Status             string                  `json:"status"`
	StatusReason       string                  `json:"statusReason"`
	PauseReason        string                  `json:"pauseReason"`
	ControllerSpec     string                  `json:"controllerSpec"`
	ControllerSchedule *GoalControllerSchedule `json:"controllerSchedule"`
	TokenBudget        *int64                  `json:"tokenBudget"`
	TokensUsed         int64                   `json:"tokensUsed"`
	TimeUsedSeconds    int64                   `json:"timeUsedSeconds"`
}

AGUIGoalSnapshot includes known zero counters and known absent budgets/schedules explicitly. It projects the same user-facing fields as the current SDK Goal.

type AGUIInterruptError added in v0.1.57

type AGUIInterruptError struct{ Result *AGUIRunResult }

func (*AGUIInterruptError) Error added in v0.1.57

func (e *AGUIInterruptError) Error() string

type AGUIMCPAppBinding added in v0.1.57

type AGUIMCPAppBinding = mcpapps.AppBinding

AGUIMCPAppBinding is host authority, never accepted from iframe JSON. The integration must authorize this exact registered app instance and principal.

func ResolveAGUIMCPApp added in v0.1.57

func ResolveAGUIMCPApp(ctx context.Context, store aguistore.Store, principal, publicServerID, serverHash string) (*AGUIMCPAppBinding, error)

ResolveAGUIMCPApp reads only the current principal's journal. Callers must additionally authorize original conversation visibility and app policy.

type AGUIMCPAppsBindings added in v0.1.57

type AGUIMCPAppsBindings struct {
	App            AGUIMCPAppBinding
	Authorize      func(context.Context, AGUIMCPAppBinding) error
	AuthorizeTool  func(context.Context, AGUIMCPAppBinding, string) error
	ToolCaller     MCPUIToolCaller
	ResourceReader func(context.Context, string, string) (*mcpschema.ReadResourceResult, error)
	Ping           func(context.Context, string) (any, error)
	Notification   func(context.Context, string, map[string]json.RawMessage) error
}

AGUIMCPAppsBindings requires the existing approval-aware tool caller. Raw MCP CallTool is deliberately absent, preventing a guest from bypassing approval.

type AGUIMCPAppsHost added in v0.1.57

type AGUIMCPAppsHost struct {
	Authorize      func(context.Context, AGUIMCPAppBinding) error
	AuthorizeTool  func(context.Context, AGUIMCPAppBinding, string) error
	ToolCaller     MCPUIToolCaller
	ResourceReader func(context.Context, string, string) (*mcpschema.ReadResourceResult, error)
	Ping           func(context.Context, string) (any, error)
	Notification   func(context.Context, string, map[string]json.RawMessage) error
	// contains filtered or unexported fields
}

AGUIMCPAppsHost contains trusted host services. Request properties cannot install callbacks or authorize an app instance.

func (*AGUIMCPAppsHost) Bind added in v0.1.57

type AGUIObservationError added in v0.1.57

type AGUIObservationError struct {
	ThreadID, RunID, LastEventID string
	Cause                        error
}

AGUIObservationError means the connection ended without an authoritative root terminal event. Attach using these identities; never resubmit a fresh prompt.

func (*AGUIObservationError) Error added in v0.1.57

func (e *AGUIObservationError) Error() string

func (*AGUIObservationError) Unwrap added in v0.1.57

func (e *AGUIObservationError) Unwrap() error

type AGUIRunError added in v0.1.57

type AGUIRunError struct{ RunID, Code, Message string }

func (*AGUIRunError) Error added in v0.1.57

func (e *AGUIRunError) Error() string

type AGUIRunOptions added in v0.1.57

type AGUIRunOptions struct{ AfterEventID string }

type AGUIRunOutcome added in v0.1.57

type AGUIRunOutcome struct {
	Type               string               `json:"type"`
	Interrupts         []agui.WireInterrupt `json:"interrupts,omitempty"`
	PendingToolCallIDs []string             `json:"pendingToolCallIds,omitempty"`
}

type AGUIRunResult added in v0.1.57

type AGUIRunResult struct {
	ThreadID, RunID, ConversationID, TurnID, Content string
	Outcome                                          AGUIRunOutcome
	Usage                                            json.RawMessage
	LastEventID                                      string
}

func CollectAGUI added in v0.1.57

func CollectAGUI(stream *AGUIRunStream, conversationID string, onEvent func(AGUIEvent) error) (*AGUIRunResult, error)

CollectAGUI retains only text emitted by this root run, never an older reply from the bootstrap snapshot. Every full event remains available to onEvent.

type AGUIRunStream added in v0.1.57

type AGUIRunStream struct {
	ThreadID, RunID string
	// contains filtered or unexported fields
}

func (*AGUIRunStream) Close added in v0.1.57

func (s *AGUIRunStream) Close() error

func (*AGUIRunStream) LastEventID added in v0.1.57

func (s *AGUIRunStream) LastEventID() string

func (*AGUIRunStream) Recv added in v0.1.57

func (s *AGUIRunStream) Recv() (AGUIEvent, error)

Recv has a single consumer. Close may interrupt a blocked read. It supports multiline/large SSE events without Scanner's implicit token-size ceiling.

type AGUIStateResult added in v0.1.57

type AGUIStateResult struct {
	Version string          `json:"version"`
	Hash    string          `json:"hash"`
	State   json.RawMessage `json:"state"`
}

type AGUIWorkspaceBindings added in v0.1.57

type AGUIWorkspaceBindings struct {
	BrowserMCP *browsermcp.Registry
	Metadata   *workspace.MetadataHandler
	MCPApps    *AGUIMCPAppsHost
}

type ActivateSkillInput added in v0.1.8

type ActivateSkillInput = api.ActivateSkillInput

type ActivateSkillOutput added in v0.1.8

type ActivateSkillOutput = api.ActivateSkillOutput

type ActiveFeedState

type ActiveFeedState = api.ActiveFeedState

type ApplyPermissionInput added in v0.1.34

type ApplyPermissionInput struct {
	ResolvedResource           *identity.ResolvedResource
	ConversationID             string
	AuthorizationSchemaVersion int // optional; 1 numeric IDs or 2 exact string IDs
	Resource                   map[string]interface{}
	WindowParams               map[string]interface{}
	Target                     *MetadataTargetContext
}

ApplyPermissionInput identifies one concrete window instance whose authored metadata should be compiled for the authenticated principal after the resource has been returned by an ACL-protected datasource.

type ApprovalCallback added in v0.1.7

type ApprovalCallback = api.ApprovalCallback

type ApprovalCallbackPayload added in v0.1.7

type ApprovalCallbackPayload = api.ApprovalCallbackPayload

type ApprovalCallbackResult added in v0.1.7

type ApprovalCallbackResult = api.ApprovalCallbackResult

type ApprovalEditor added in v0.1.7

type ApprovalEditor = api.ApprovalEditor

type ApprovalForgeView added in v0.1.7

type ApprovalForgeView = api.ApprovalForgeView

type ApprovalMeta added in v0.1.7

type ApprovalMeta = api.ApprovalMeta

type ApprovalOption added in v0.1.7

type ApprovalOption = api.ApprovalOption

type AssistantBubble

type AssistantBubble struct {
	MessageID string
	Content   string
	IsFinal   bool
}

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):

  1. Exactly one assistant bubble per visible execution page.
  2. If visible page has final content, show final content.
  3. Else if visible page has narration, show narration.

type AssistantMessageState

type AssistantMessageState = api.AssistantMessageState

type AssistantState

type AssistantState = api.AssistantState

type AsyncOperationState added in v0.1.7

type AsyncOperationState = api.AsyncOperationState

type AuthProvider

type AuthProvider struct {
	Name  string `json:"name"`
	Label string `json:"label"`
	Mode  string `json:"mode"`
}

type Backend added in v0.1.7

type Backend interface {
	Client
	// StreamEvents is the private native execution bus consumed by AG-UI and
	// authenticated application observers. Outward HTTP clients do not expose it.
	StreamEvents(context.Context, *StreamEventsInput) (streaming.Subscription, error)
}

Backend is the server-side implementation contract used by SDK HTTP handlers. It is intentionally separate from the caller-facing Client concept, even though today it currently embeds the same operation surface.

func NewBackendFromRuntime deprecated added in v0.1.7

func NewBackendFromRuntime(rt *executor.Runtime) (Backend, error)

Deprecated: prefer internal/sdkbackend.FromRuntime for server/bootstrap wiring and NewLocalHTTPFromRuntime for SDK callers.

NewBackendFromRuntime builds the in-process backend implementation used by local handlers and server wiring.

func NewEmbedded deprecated

func NewEmbedded(agent *agentsvc.Service, conv conversation.Client) (Backend, error)

Deprecated: use NewBackendFromRuntime for server wiring and NewLocalHTTPFromRuntime for SDK callers.

NewEmbedded builds the legacy in-process backend wrapper. Prefer NewBackendFromRuntime for server wiring and NewLocalHTTPFromRuntime for SDK callers that should exercise the public endpoint contract.

func NewEmbeddedFromRuntime deprecated

func NewEmbeddedFromRuntime(rt *executor.Runtime) (Backend, error)

Deprecated: use NewBackendFromRuntime for server wiring and NewLocalHTTPFromRuntime for SDK callers.

NewEmbeddedFromRuntime builds an in-process backend over a runtime. Prefer NewLocalHTTPFromRuntime for SDK callers that should exercise the public endpoint contract instead of calling services directly.

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)

	// 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)
	// DeleteConversation deletes a conversation tree owned by the current user.
	DeleteConversation(ctx context.Context, id string) error
	// GetGoal returns the current durable conversation goal, or nil when absent.
	GetGoal(ctx context.Context, conversationID string) (*Goal, error)
	// ListAsyncOperations returns non-terminal async operations for a conversation.
	ListAsyncOperations(ctx context.Context, input *ListAsyncOperationsInput) (*ListAsyncOperationsOutput, error)
	// CreateGoal creates the current durable conversation goal.
	CreateGoal(ctx context.Context, input *CreateGoalInput) (*Goal, error)
	// UpdateGoal updates mutable durable goal fields for a conversation.
	UpdateGoal(ctx context.Context, input *UpdateGoalInput) (*Goal, error)
	// ClearGoal removes the current durable conversation goal.
	ClearGoal(ctx context.Context, conversationID string) error

	// GetRun returns the current state of a run.
	GetRun(ctx context.Context, id string) (*runmodel.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) (*PendingToolApprovalPage, 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)

	// ExecuteMCPUIToolCall runs a host-mediated MCP UI guest tool call through
	// the canonical conversation-backed execution path. Bundle-derived
	// approval metadata is honored, so a tool configured for queue approval is
	// routed to the existing approval queue and the response status is
	// "queued" rather than "ok". This is the only path MCP UI guests use for
	// tools/call — direct /v1/tools/execute is intentionally bypassed.
	ExecuteMCPUIToolCall(ctx context.Context, input *MCPUIToolCallInput) (*MCPUIToolCallOutput, error)

	// ListTemplates returns output templates available to the current agent/workspace.
	ListTemplates(ctx context.Context, input *ListTemplatesInput) (*ListTemplatesOutput, error)

	// GetTemplate resolves one output template by name and can request document inclusion.
	GetTemplate(ctx context.Context, input *GetTemplateInput) (*GetTemplateOutput, error)

	// ListToolDefinitions returns the set of tool definitions available in the workspace.
	ListToolDefinitions(ctx context.Context) ([]ToolDefinitionInfo, error)
	// ListSkills returns visible skills for an explicit draft agent or the conversation's current agent.
	ListSkills(ctx context.Context, input *ListSkillsInput) (*ListSkillsOutput, error)
	// ActivateSkill returns the SKILL.md body for a named skill in the conversation context.
	ActivateSkill(ctx context.Context, input *ActivateSkillInput) (*ActivateSkillOutput, error)
	// GetSkillDiagnostics returns load/shadow/validation diagnostics for the current skill registry.
	GetSkillDiagnostics(ctx context.Context) (*SkillDiagnosticsOutput, 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) (*ConversationStateResponse, error)

	// GetLiveState returns the current canonical state snapshot with an EventCursor.
	// On SSE connect or reconnect the client should call GetLiveState first, then
	// consume the event stream starting at EventCursor to avoid replaying history
	// and to avoid missing events that arrived between page load and SSE connect.
	GetLiveState(ctx context.Context, conversationID string, options ...TranscriptOption) (*ConversationStateResponse, error)

	// GetPayloads returns a map of payload ID → payload for the given IDs.
	// Used for batch payload resolution in feed rendering, replacing per-step fetches.
	GetPayloads(ctx context.Context, ids []string) (map[string]*conversation.Payload, 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

	// FetchDatasource returns rows for a workspace-registered datasource.
	// Caller identity flows via ctx; the backend reads it when keying the
	// per-user cache and attaches any MCP auth token when the backend is
	// mcp_tool. Implementations that have not wired the datasource stack
	// should return a clear error rather than nil rows.
	FetchDatasource(ctx context.Context, in *api.FetchDatasourceInput) (*api.FetchDatasourceOutput, error)

	// InvalidateDatasourceCache drops cache entries for a datasource in the
	// caller's scope. When InputsHash is empty, the whole datasource range
	// is dropped.
	InvalidateDatasourceCache(ctx context.Context, in *api.InvalidateDatasourceCacheInput) error

	// ListLookupRegistry returns the set of named-token bindings available
	// for a given render context — composed server-side from loaded overlays
	// whose Named binding matches. Used by the web + mobile `/name` hotkey
	// component and by the authored-prompt renderer.
	ListLookupRegistry(ctx context.Context, in *api.ListLookupRegistryInput) (*api.ListLookupRegistryOutput, error)
}

type ConversationPage

type ConversationPage = api.ConversationPage

type ConversationState

type ConversationState = api.ConversationState

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) (result *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 ConversationStateResponse added in v0.1.6

type ConversationStateResponse = api.ConversationStateResponse

type ConversationStreamSnapshot added in v0.1.6

type ConversationStreamSnapshot struct {
	ConversationID     string             `json:"conversationId,omitempty"`
	State              *ConversationState `json:"state,omitempty"`
	ActiveTurnID       string             `json:"activeTurnId,omitempty"`
	Feeds              []*ActiveFeedState `json:"feeds,omitempty"`
	PendingElicitation *ElicitationState  `json:"pendingElicitation,omitempty"`
}

type ConversationStreamTracker added in v0.1.5

type ConversationStreamTracker struct {
	// contains filtered or unexported fields
}

ConversationStreamTracker is a small semantic facade over the canonical reducer.

It gives SDK consumers one place to: - apply live stream events - replace/reconcile with transcript snapshots - read the current canonical state

The goal is to keep stream consumers out of direct reducer bookkeeping.

func NewConversationStreamTracker added in v0.1.5

func NewConversationStreamTracker(conversationID string) *ConversationStreamTracker

NewConversationStreamTracker creates a tracker optionally seeded with conversation ID.

func (*ConversationStreamTracker) ActiveTurn added in v0.1.6

func (t *ConversationStreamTracker) ActiveTurn() *TurnState

ActiveTurn returns the latest non-terminal turn when one exists.

func (*ConversationStreamTracker) ActiveTurnID added in v0.1.6

func (t *ConversationStreamTracker) ActiveTurnID() string

ActiveTurnID returns the ID of the latest non-terminal turn.

func (*ConversationStreamTracker) ApplyEvent added in v0.1.5

ApplyEvent applies a single streaming event to the tracked state.

func (*ConversationStreamTracker) ApplyTranscript added in v0.1.5

ApplyTranscript replaces the tracked state with an authoritative transcript snapshot. When the incoming transcript is for the same active turn already owned by live SSE state, the active turn's live user/assistant/execution fields are kept.

func (*ConversationStreamTracker) Clear added in v0.1.6

func (t *ConversationStreamTracker) Clear()

Clear is an alias for Reset to align with the TS tracker surface.

func (*ConversationStreamTracker) ConversationID added in v0.1.6

func (t *ConversationStreamTracker) ConversationID() string

ConversationID returns the currently tracked conversation ID when known.

func (*ConversationStreamTracker) Feeds added in v0.1.6

Feeds returns the currently tracked active feeds.

func (*ConversationStreamTracker) PendingElicitation added in v0.1.6

func (t *ConversationStreamTracker) PendingElicitation() *ElicitationState

PendingElicitation returns the latest pending elicitation when present.

func (*ConversationStreamTracker) Reset added in v0.1.5

func (t *ConversationStreamTracker) Reset()

Reset clears the tracked state.

func (*ConversationStreamTracker) Snapshot added in v0.1.6

Snapshot returns a lightweight immutable view of the current tracked state.

func (*ConversationStreamTracker) State added in v0.1.5

State returns the current canonical state pointer. Returns nil when no events have been applied yet or after Reset/Clear is called. Callers must nil-check the result before dereferencing.

func (*ConversationStreamTracker) TrackSubscription added in v0.1.5

func (t *ConversationStreamTracker) TrackSubscription(ctx context.Context, sub streaming.Subscription) error

TrackSubscription consumes a streaming subscription until the context is done or the subscription channel closes, applying every event to the tracker.

type CreateConversationInput

type CreateConversationInput = api.CreateConversationInput

type CreateGoalInput added in v0.1.13

type CreateGoalInput = api.CreateGoalInput

type CreateSessionRequest added in v0.1.2

type CreateSessionRequest struct {
	Username     string `json:"username,omitempty"`
	AccessToken  string `json:"accessToken,omitempty"`
	IDToken      string `json:"idToken,omitempty"`
	RefreshToken string `json:"refreshToken,omitempty"`
	ExpiresAt    string `json:"expiresAt,omitempty"`
}

type DebugOption added in v0.1.7

type DebugOption func(*debugOptions)

func WithDebugComponents added in v0.1.7

func WithDebugComponents(components ...string) DebugOption

func WithDebugLevel added in v0.1.7

func WithDebugLevel(level string) DebugOption

type DecideToolApprovalInput

type DecideToolApprovalInput = api.DecideToolApprovalInput

type DecideToolApprovalOutput

type DecideToolApprovalOutput = api.DecideToolApprovalOutput

type Direction

type Direction = api.Direction

type DownloadFileInput

type DownloadFileInput = api.DownloadFileInput

type DownloadFileOutput

type DownloadFileOutput = api.DownloadFileOutput

type EditQueuedTurnInput

type EditQueuedTurnInput = api.EditQueuedTurnInput

type ElicitationDialog

type ElicitationDialog struct {
	ElicitationID   string
	Status          ElicitationStatus
	Message         string
	RequestedSchema json.RawMessage
	CallbackURL     string
	ResponsePayload json.RawMessage
	// 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 = api.ElicitationState

type ElicitationStatus

type ElicitationStatus = api.ElicitationStatus

type ExecutionPageState

type ExecutionPageState = api.ExecutionPageState

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 = api.ExecutionState

type ExportResourcesInput

type ExportResourcesInput = api.ExportResourcesInput

type ExportResourcesOutput

type ExportResourcesOutput = api.ExportResourcesOutput

type FeedActivation

type FeedActivation = api.FeedActivation

type FeedMatch

type FeedMatch = api.FeedMatch

type FeedPresentation added in v0.1.25

type FeedPresentation = api.FeedPresentation

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 = api.FeedSpec

type FeedState

type FeedState = api.FeedState

type FileEntry

type FileEntry = api.FileEntry

type GetMessagesInput

type GetMessagesInput = api.GetMessagesInput

type GetPayloadsInput added in v0.1.12

type GetPayloadsInput = api.GetPayloadsInput

type GetResourceOutput

type GetResourceOutput = api.GetResourceOutput

type GetTemplateInput added in v0.1.7

type GetTemplateInput = api.GetTemplateInput

type GetTemplateOutput added in v0.1.7

type GetTemplateOutput = api.GetTemplateOutput

type GetTranscriptInput

type GetTranscriptInput = api.GetTranscriptInput

type Goal added in v0.1.13

type Goal = api.Goal

type GoalControllerSchedule added in v0.1.13

type GoalControllerSchedule = api.GoalControllerSchedule

type GoalEnvelope added in v0.1.13

type GoalEnvelope = api.GoalEnvelope

type HTTPClient

type HTTPClient struct {
	// contains filtered or unexported fields
}

func NewHTTP

func NewHTTP(baseURL string, opts ...HTTPOption) (*HTTPClient, error)

func NewLocalHTTPFromRuntime added in v0.1.7

func NewLocalHTTPFromRuntime(ctx context.Context, rt *executor.Runtime, opts ...HandlerOption) (*HTTPClient, func(), error)

NewLocalHTTPFromRuntime creates an endpoint-backed SDK client for a local runtime. It exposes the runtime through the standard SDK HTTP handler and returns a regular HTTPClient, so SDK callers exercise the same endpoint contract as remote clients.

func (*HTTPClient) ActivateSkill added in v0.1.8

func (c *HTTPClient) ActivateSkill(ctx context.Context, input *ActivateSkillInput) (*ActivateSkillOutput, error)

func (*HTTPClient) ApplyPermission added in v0.1.34

func (c *HTTPClient) ApplyPermission(ctx context.Context, windowKey string, input *ApplyPermissionInput) (json.RawMessage, error)

ApplyPermission compiles authored Forge metadata into a permitted view and returns the resource-specific tree. Call GetForgeWindowMetadata for the complete authored document. Datasource fetch contracts remain unchanged.

func (*HTTPClient) AttachAGUI added in v0.1.57

func (c *HTTPClient) AttachAGUI(ctx context.Context, threadID, runID, afterEventID string) (*AGUIRunStream, 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 (c *HTTPClient) AuthMCPOOBLink(ctx context.Context, opts *MCPOOBLinkOptions) error

AuthMCPOOBLink performs provider OOB authorization locally and links the resulting grant to the currently authenticated canonical workspace user. The server validates the untrusted grant before encrypted persistence.

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 (c *HTTPClient) AuthOOBLogin(ctx context.Context, configURL, secretsURL string, scopes []string) (*oauth2.Token, error)

func (*HTTPClient) AuthOOBSession

func (c *HTTPClient) AuthOOBSession(ctx context.Context, secretsURL string, scopes []string) error

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) BaseURL added in v0.1.7

func (c *HTTPClient) BaseURL() string

func (*HTTPClient) CancelQueuedTurn

func (c *HTTPClient) CancelQueuedTurn(ctx context.Context, conversationID, turnID string) error

func (*HTTPClient) CancelTurn

func (c *HTTPClient) CancelTurn(ctx context.Context, turnID string) (bool, error)

func (*HTTPClient) ClearGoal added in v0.1.13

func (c *HTTPClient) ClearGoal(ctx context.Context, conversationID string) error

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) CreateGoal added in v0.1.13

func (c *HTTPClient) CreateGoal(ctx context.Context, input *CreateGoalInput) (*Goal, error)

func (*HTTPClient) DecideToolApproval

func (c *HTTPClient) DecideToolApproval(ctx context.Context, input *DecideToolApprovalInput) (*DecideToolApprovalOutput, error)

func (*HTTPClient) DeleteConversation added in v0.1.9

func (c *HTTPClient) DeleteConversation(ctx context.Context, id string) 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) ExecuteMCPUIToolCall added in v0.1.9

func (c *HTTPClient) ExecuteMCPUIToolCall(ctx context.Context, input *MCPUIToolCallInput) (*MCPUIToolCallOutput, error)

func (*HTTPClient) ExecuteTool

func (c *HTTPClient) ExecuteTool(ctx context.Context, name string, args map[string]interface{}) (string, error)

func (*HTTPClient) ExportResources

func (c *HTTPClient) ExportResources(ctx context.Context, input *ExportResourcesInput) (*ExportResourcesOutput, error)

func (*HTTPClient) FetchDatasource added in v0.1.8

FetchDatasource dispatches POST /v1/api/datasources/{id}/fetch.

func (*HTTPClient) ForceSteerQueuedTurn

func (c *HTTPClient) ForceSteerQueuedTurn(ctx context.Context, conversationID, turnID string) (*SteerTurnOutput, error)

func (*HTTPClient) GetA2AAgentCard

func (c *HTTPClient) GetA2AAgentCard(ctx context.Context, agentID string) (*a2a.AgentCard, error)

func (*HTTPClient) GetConversation

func (c *HTTPClient) GetConversation(ctx context.Context, id string) (*conversation.Conversation, error)

func (*HTTPClient) GetForgeWindowMetadata added in v0.1.14

func (c *HTTPClient) GetForgeWindowMetadata(ctx context.Context, windowKey string) (json.RawMessage, error)

func (*HTTPClient) GetForgeWindowMetadataWithTarget added in v0.1.14

func (c *HTTPClient) GetForgeWindowMetadataWithTarget(ctx context.Context, windowKey string, target *MetadataTargetContext) (json.RawMessage, error)

func (*HTTPClient) GetGoal added in v0.1.13

func (c *HTTPClient) GetGoal(ctx context.Context, conversationID string) (*Goal, error)

func (*HTTPClient) GetLiveState added in v0.1.6

func (c *HTTPClient) GetLiveState(ctx context.Context, conversationID string, options ...TranscriptOption) (*ConversationStateResponse, error)

GetLiveState returns the canonical state snapshot with an EventCursor by delegating to GetTranscript. HTTP clients should prefer a dedicated /live-state endpoint when available; this implementation is a safe fallback.

func (*HTTPClient) GetMessages

func (c *HTTPClient) GetMessages(ctx context.Context, input *GetMessagesInput) (*MessagePage, error)

func (*HTTPClient) GetPayloads added in v0.1.6

func (c *HTTPClient) GetPayloads(ctx context.Context, ids []string) (map[string]*conversation.Payload, error)

func (*HTTPClient) GetPublicAgents added in v0.1.29

func (c *HTTPClient) GetPublicAgents(ctx context.Context) ([]WorkspaceAgentInfo, 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) (*runmodel.RunRowsView, error)

func (*HTTPClient) GetSchedule

func (c *HTTPClient) GetSchedule(ctx context.Context, id string) (*scheduler.Schedule, error)

func (*HTTPClient) GetSkillDiagnostics added in v0.1.8

func (c *HTTPClient) GetSkillDiagnostics(ctx context.Context) (*SkillDiagnosticsOutput, error)

func (*HTTPClient) GetTemplate added in v0.1.7

func (c *HTTPClient) GetTemplate(ctx context.Context, input *GetTemplateInput) (*GetTemplateOutput, error)

func (*HTTPClient) GetTranscript

func (c *HTTPClient) GetTranscript(ctx context.Context, input *GetTranscriptInput, options ...TranscriptOption) (*ConversationStateResponse, error)

func (*HTTPClient) GetWorkspaceMetadata

func (c *HTTPClient) GetWorkspaceMetadata(ctx context.Context) (*WorkspaceMetadata, error)

func (*HTTPClient) GetWorkspaceMetadataWithTarget added in v0.1.7

func (c *HTTPClient) GetWorkspaceMetadataWithTarget(ctx context.Context, target *MetadataTargetContext) (*WorkspaceMetadata, error)

func (*HTTPClient) HTTPClient added in v0.1.7

func (c *HTTPClient) HTTPClient() *http.Client

func (*HTTPClient) ImportResources

func (c *HTTPClient) ImportResources(ctx context.Context, input *ImportResourcesInput) (*ImportResourcesOutput, error)

func (*HTTPClient) InvalidateDatasourceCache added in v0.1.8

func (c *HTTPClient) InvalidateDatasourceCache(ctx context.Context, in *api.InvalidateDatasourceCacheInput) error

InvalidateDatasourceCache dispatches DELETE /v1/api/datasources/{id}/cache.

func (*HTTPClient) ListA2AAgents

func (c *HTTPClient) ListA2AAgents(ctx context.Context, agentIDs []string) ([]string, error)

func (*HTTPClient) ListAsyncOperations added in v0.1.13

func (c *HTTPClient) ListAsyncOperations(ctx context.Context, input *ListAsyncOperationsInput) (*ListAsyncOperationsOutput, error)

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) ListLookupRegistry added in v0.1.8

ListLookupRegistry dispatches GET /v1/api/lookups/registry?context=<…>.

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) (*PendingToolApprovalPage, error)

func (*HTTPClient) ListResources

func (c *HTTPClient) ListResources(ctx context.Context, input *ListResourcesInput) (*ListResourcesOutput, error)

func (*HTTPClient) ListSchedules

func (c *HTTPClient) ListSchedules(ctx context.Context) ([]*scheduler.Schedule, error)

func (*HTTPClient) ListSkills added in v0.1.8

func (c *HTTPClient) ListSkills(ctx context.Context, input *ListSkillsInput) (*ListSkillsOutput, error)

func (*HTTPClient) ListTemplates added in v0.1.7

func (c *HTTPClient) ListTemplates(ctx context.Context, input *ListTemplatesInput) (*ListTemplatesOutput, error)

func (*HTTPClient) ListToolDefinitions

func (c *HTTPClient) ListToolDefinitions(ctx context.Context) ([]ToolDefinitionInfo, error)

func (*HTTPClient) MCPAuthStatus added in v0.1.29

func (c *HTTPClient) MCPAuthStatus(ctx context.Context, server string) (*MCPAuthStatus, error)

MCPAuthStatus returns the delegated connection state for an MCP server.

func (*HTTPClient) Mode

func (c *HTTPClient) Mode() Mode

func (*HTTPClient) MoveQueuedTurn

func (c *HTTPClient) MoveQueuedTurn(ctx context.Context, input *MoveQueuedTurnInput) error

func (*HTTPClient) ObserveApplicationEvents added in v0.1.57

func (c *HTTPClient) ObserveApplicationEvents(ctx context.Context, input *StreamEventsInput) (streaming.Subscription, error)

func (*HTTPClient) PrepareAGUIChat added in v0.1.57

func (c *HTTPClient) PrepareAGUIChat(ctx context.Context, input *agentsvc.QueryInput) (*PreparedAGUIChat, error)

PrepareAGUIChat uses authenticated native metadata solely for the internal ↔ wire thread mapping. Execution/history/state remain owned by AG-UI admission.

func (*HTTPClient) PruneConversation

func (c *HTTPClient) PruneConversation(ctx context.Context, conversationID string) error

func (*HTTPClient) Query

func (*HTTPClient) QueryAGUI added in v0.1.57

func (c *HTTPClient) QueryAGUI(ctx context.Context, input *agentsvc.QueryInput, onEvent func(AGUIEvent) error) (*AGUIRunResult, error)

func (*HTTPClient) ResolveElicitation

func (c *HTTPClient) ResolveElicitation(ctx context.Context, input *ResolveElicitationInput) error

func (*HTTPClient) RunAGUI added in v0.1.57

func (c *HTTPClient) RunAGUI(ctx context.Context, input *agui.RunAgentInput, options *AGUIRunOptions) (*AGUIRunStream, error)

RunAGUI submits exactly one immutable run envelope through the existing authenticated HTTP client. It never retries or switches transport implicitly.

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) 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) UpdateGoal added in v0.1.13

func (c *HTTPClient) UpdateGoal(ctx context.Context, input *UpdateGoalInput) (*Goal, error)

func (*HTTPClient) UploadFile

func (c *HTTPClient) UploadFile(ctx context.Context, input *UploadFileInput) (*UploadFileOutput, error)

func (*HTTPClient) UpsertSchedules

func (c *HTTPClient) UpsertSchedules(ctx context.Context, schedules []*scheduler.Schedule) error

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 WithSchedulerPath

func WithSchedulerPath(path string) HTTPOption

func WithSessionDebug added in v0.1.7

func WithSessionDebug(level string, components ...string) HTTPOption

WithSessionDebug enables request-scoped debug logging headers for all requests issued by this HTTP client instance.

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 WithAGUIDemoBackends added in v0.1.57

func WithAGUIDemoBackends(backends ...AGUIDemoBackend) HandlerOption

WithAGUIDemoBackends installs trusted, explicitly authorized public demo endpoints behind existing BFF authentication. Empty subject lists are invalid.

func WithAGUIMCPAppsHost added in v0.1.57

func WithAGUIMCPAppsHost(host *AGUIMCPAppsHost) HandlerOption

WithAGUIMCPAppsHost supplies an explicitly authorized host integration.

func WithAuth

func WithAuth(cfg *svcauth.Config, sessions *svcauth.Manager, opts ...svcauth.HandlerOption) HandlerOption

func WithBrowserMCP added in v0.1.57

func WithBrowserMCP(registry *browsermcp.Registry) HandlerOption

func WithCallbackDispatchHandler added in v0.1.8

func WithCallbackDispatchHandler(h *callbackhttp.Handler) HandlerOption

WithCallbackDispatchHandler mounts POST /v1/api/callbacks/dispatch, the workspace-declared forge submit → tool router. Safe to pass a nil handler — the route is not mounted in that case.

func WithMCPUIResourceContextBinder added in v0.1.57

func WithMCPUIResourceContextBinder(bind MCPUIResourceContextBinder) HandlerOption

func WithMCPUIResourceReader added in v0.1.9

func WithMCPUIResourceReader(reader MCPUIResourceReader) HandlerOption

WithMCPUIResourceReader mounts GET /v1/api/mcp-ui/resources/read?uri=... when the reader is non-nil. The reader resolves UI resources through host-owned runtime code (no browser-side MCP client).

func WithMCPUIToolCaller added in v0.1.9

func WithMCPUIToolCaller(caller MCPUIToolCaller) HandlerOption

WithMCPUIToolCaller mounts POST /v1/api/mcp-ui/tools/call when the caller is non-nil. The caller owns the canonical server-side execution path, including any approval and tool bundle behavior.

func WithPublishedWindowBindings added in v0.1.57

func WithPublishedWindowBindings(bindings *PublishedWindowBindings) HandlerOption

WithPublishedWindowBindings enables the optional server-side cohort datasource lane. The browser supplies a window ID and source ID, never a descriptor or entitlement. Ordinary datasource behavior remains available.

func WithReportRunHandler added in v0.1.23

func WithReportRunHandler(h http.Handler) HandlerOption

WithReportRunHandler mounts the authenticated host-only reporting run API. The route is not part of the tool registry or model-visible definitions.

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 WithUIBridgeHandler added in v0.1.8

func WithUIBridgeHandler(h http.Handler) HandlerOption

WithUIBridgeHandler mounts the Forge UI bridge RPC endpoint at /v1/ui/rpc.

type ImportResourcesInput

type ImportResourcesInput = api.ImportResourcesInput

type ImportResourcesOutput

type ImportResourcesOutput = api.ImportResourcesOutput

type LinkedConversationEntry

type LinkedConversationEntry = api.LinkedConversationEntry

type LinkedConversationPage

type LinkedConversationPage = api.LinkedConversationPage

type LinkedConversationState

type LinkedConversationState = api.LinkedConversationState

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 ListAsyncOperationsInput added in v0.1.13

type ListAsyncOperationsInput = api.ListAsyncOperationsInput

type ListAsyncOperationsOutput added in v0.1.13

type ListAsyncOperationsOutput = api.ListAsyncOperationsOutput

type ListConversationsInput

type ListConversationsInput = api.ListConversationsInput

type ListFilesInput

type ListFilesInput = api.ListFilesInput

type ListFilesOutput

type ListFilesOutput = api.ListFilesOutput

type ListLinkedConversationsInput

type ListLinkedConversationsInput = api.ListLinkedConversationsInput

type ListPendingElicitationsInput

type ListPendingElicitationsInput = api.ListPendingElicitationsInput

type ListPendingToolApprovalsInput

type ListPendingToolApprovalsInput = api.ListPendingToolApprovalsInput

type ListResourcesInput

type ListResourcesInput = api.ListResourcesInput

type ListResourcesOutput

type ListResourcesOutput = api.ListResourcesOutput

type ListSkillsInput added in v0.1.8

type ListSkillsInput = api.ListSkillsInput

type ListSkillsOutput added in v0.1.8

type ListSkillsOutput = api.ListSkillsOutput

type ListTemplatesInput added in v0.1.7

type ListTemplatesInput = api.ListTemplatesInput

type ListTemplatesOutput added in v0.1.7

type ListTemplatesOutput = api.ListTemplatesOutput

type LocalLoginRequest

type LocalLoginRequest struct {
	Name string `json:"name"`
}

type LocalOOBSessionOptions added in v0.1.2

type LocalOOBSessionOptions struct {
	ConfigURL  string
	SecretsURL string
	Scopes     []string
}

type MCPAppsProxyRequest added in v0.1.57

type MCPAppsProxyRequest struct {
	ServerHash string                     `json:"serverHash"`
	ServerID   string                     `json:"serverId,omitempty"`
	Method     string                     `json:"method"`
	Params     map[string]json.RawMessage `json:"params,omitempty"`
}

MCPAppsProxyRequest follows the pinned @ag-ui/mcp-apps-middleware contract.

func ParseMCPAppsProxyRequest added in v0.1.57

func ParseMCPAppsProxyRequest(forwardedProps json.RawMessage) (*MCPAppsProxyRequest, bool, error)

type MCPAuthStatus added in v0.1.29

type MCPAuthStatus struct {
	Server    string   `json:"server"`
	Provider  string   `json:"provider,omitempty"`
	Connected bool     `json:"connected"`
	Scopes    []string `json:"scopes,omitempty"`
	ExpiresAt string   `json:"expiresAt,omitempty"`
	Pending   bool     `json:"pending,omitempty"`
	CSRFToken string   `json:"csrfToken,omitempty"`
}

MCPAuthStatus describes the delegated OAuth connection for one MCP server.

type MCPOOBLinkOptions added in v0.1.29

type MCPOOBLinkOptions struct {
	Server     string
	ConfigURL  string
	SecretsURL string
	Scopes     []string
	Resource   string
}

MCPOOBLinkOptions configures a local out-of-band provider login. Workspace authentication remains on the HTTPClient cookie jar; the provider grant is obtained independently and then submitted for server-side validation and canonical-user storage.

type MCPResourceReader added in v0.1.57

type MCPResourceReader interface {
	ReadMCPResource(context.Context, string, string) (*schema.ReadResourceResult, error)
}

MCPResourceReader uses an existing named connection, never a browser-supplied transport URL. The MCP server decides which resources the current user can read.

type MCPTaskControls added in v0.1.57

MCPTaskControls delegates to the existing native ownership/policy, input/resume and cancellation APIs. Callbacks must not replay execution.

func MCPTasksAGUIControls added in v0.1.57

func MCPTasksAGUIControls(client Client, store aguistore.Store, authorize func(context.Context, tasks.Owner, MCPTaskReference) error) MCPTaskControls

MCPTasksAGUIControls binds task controls to existing AG-UI admission/resume, owned cancellation and journal replay. Authorize must also enforce the current exported-tool policy and exact native causal reference; ownership alone is not a grant to expose host-only or administrative tool results.

type MCPTaskNativeSnapshot added in v0.1.57

type MCPTaskNativeSnapshot struct {
	Status        tasks.Status
	StatusMessage string
	UpdatedAt     time.Time
	Result        json.RawMessage
	Error         *tasks.RPCError
	Interrupts    []agui.WireInterrupt
}

MCPTaskNativeSnapshot is a projection of the canonical runtime, not a new execution record. Result must be the original complete MCP result object.

type MCPTaskReference added in v0.1.57

type MCPTaskReference struct {
	ThreadID       string `json:"threadId"`
	RunID          string `json:"runId"`
	ConversationID string `json:"conversationId,omitempty"`
	TurnID         string `json:"turnId,omitempty"`
	ParentRunID    string `json:"parentRunId,omitempty"`
	InvocationID   string `json:"invocationId,omitempty"`
	OperationID    string `json:"operationId,omitempty"`
	ExecutionMode  string `json:"executionMode,omitempty"`
}

MCPTaskReference is a trusted native reference captured after normal native admission/execution. It is never accepted from MCP request parameters. For a detached child, capture the existing child reference, not its finished parent.

type MCPTasksBackend added in v0.1.57

type MCPTasksBackend struct {
	// contains filtered or unexported fields
}

func NewMCPTasksBackend added in v0.1.57

func NewMCPTasksBackend(store aguistore.Store, controls MCPTaskControls, options MCPTasksOptions) (*MCPTasksBackend, error)

NewMCPTasksBackend stores only opaque aliases/input receipts in the existing AG-UI journal. The canonical native run remains the sole execution owner.

func (*MCPTasksBackend) Cancel added in v0.1.57

func (*MCPTasksBackend) Create added in v0.1.57

func (*MCPTasksBackend) Get added in v0.1.57

func (*MCPTasksBackend) Update added in v0.1.57

func (*MCPTasksBackend) WatchTasks added in v0.1.57

func (b *MCPTasksBackend) WatchTasks(ctx context.Context, owner tasks.Owner, ids []string) (tasks.Wakeup, error)

WatchTasks attaches only owned native execution hints. Generic subscriptions re-read Get after every hint and periodically; no event payload reaches MCP.

type MCPTasksOptions added in v0.1.57

type MCPTasksOptions struct {
	Tenant         string
	TTLMS          *int64
	PollIntervalMS int64
	Clock          func() time.Time
}

type MCPUIResourceContextBinder added in v0.1.57

type MCPUIResourceContextBinder func(context.Context, *MCPUIResourceReadInput) (context.Context, error)

type MCPUIResourceReadInput added in v0.1.57

type MCPUIResourceReadInput struct {
	URI            string                     `json:"uri"`
	Resource       *identity.ResolvedResource `json:"resource"`
	ResourceTarget *types.WindowTarget        `json:"resourceTarget"`
}

MCPUIResourceReadInput carries an untrusted reference to an opened window. Only the installed host binder may validate its target proof and authorize it. Ordinary apps retain the existing URI-only GET route.

type MCPUIResourceReadResponse added in v0.1.9

type MCPUIResourceReadResponse struct {
	Uri      string                 `json:"uri"`
	MimeType string                 `json:"mimeType"`
	Text     string                 `json:"text"`
	Meta     map[string]interface{} `json:"_meta,omitempty"`
}

MCPUIResourceReadResponse is the JSON envelope returned by the host-owned browser read endpoint. It is intentionally minimal: only the fields the browser host needs to assemble an iframe srcDoc and validate the resource.

type MCPUIResourceReader added in v0.1.9

type MCPUIResourceReader func(ctx context.Context, uri string) (*mcpschema.ReadResourceResult, error)

MCPUIResourceReader resolves a host-owned MCP UI resource by exact uri. It is the same-origin, narrow read path the browser host uses; the host still owns the MCP transport, so the browser never speaks MCP directly.

type MCPUIToolCallInput added in v0.1.9

type MCPUIToolCallInput = api.MCPUIToolCallInput

type MCPUIToolCallOutput added in v0.1.9

type MCPUIToolCallOutput = api.MCPUIToolCallOutput

type MCPUIToolCaller added in v0.1.9

type MCPUIToolCaller func(ctx context.Context, input *MCPUIToolCallInput) (*MCPUIToolCallOutput, error)

MCPUIToolCaller executes a guest-originated MCP UI tool call through a host-owned, approval-aware backend path.

type MessagePage

type MessagePage = api.MessagePage

type MetadataTargetContext added in v0.1.7

type MetadataTargetContext struct {
	Platform     string
	FormFactor   string
	Surface      string
	Capabilities []string
}

type Mode

type Mode string
const (
	ModeEmbedded Mode = "embedded"
	ModeHTTP     Mode = "http"
)

type ModelStepState

type ModelStepState = api.ModelStepState

type ModelUsageState added in v0.1.25

type ModelUsageState = api.ModelUsageState

type MoveQueuedTurnInput

type MoveQueuedTurnInput = api.MoveQueuedTurnInput

type OAuthConfigResponse

type OAuthConfigResponse struct {
	ConfigURL      string   `json:"configURL"`
	Scopes         []string `json:"scopes,omitempty"`
	WebUIScopes    []string `json:"webUIScopes,omitempty"`
	MobileUIScopes []string `json:"mobileUIScopes,omitempty"`
	CLIScopes      []string `json:"cliScopes,omitempty"`
}

type OOBRequest

type OOBRequest struct {
	SecretsURL string   `json:"secretsURL"`
	Scopes     []string `json:"scopes,omitempty"`
}

type PageInput

type PageInput = api.PageInput

type PendingElicitation

type PendingElicitation = api.PendingElicitation

type PendingToolApproval

type PendingToolApproval = api.PendingToolApproval

type PendingToolApprovalPage added in v0.1.7

type PendingToolApprovalPage = api.PendingToolApprovalPage

type PlanFeedPayload added in v0.1.6

type PlanFeedPayload = api.PlanFeedPayload

type PlanStep added in v0.1.6

type PlanStep = api.PlanStep

type PlannerState added in v0.1.8

type PlannerState = api.PlannerState

type PreparedAGUIChat added in v0.1.57

type PreparedAGUIChat struct {
	ConversationID string
	Input          agui.RunAgentInput
}

type PublicAgentsResponse added in v0.1.29

type PublicAgentsResponse = api.PublicAgentsResponse

type PublishedDatasourceExecute added in v0.1.57

type PublishedDatasourceExecute func(context.Context, *dsproto.DataSource, map[string]interface{}, map[string]any) (*api.FetchDatasourceOutput, error)

type PublishedWindowBindings added in v0.1.57

type PublishedWindowBindings struct {
	// contains filtered or unexported fields
}

func NewPublishedWindowBindings added in v0.1.57

func NewPublishedWindowBindings(open PublishedWindowOpen, execute PublishedDatasourceExecute, owner VerifiedWindowOwner) *PublishedWindowBindings

func NewPublishedWindowBindingsForBackend added in v0.1.57

func NewPublishedWindowBindingsForBackend(open PublishedWindowOpen, client Backend) *PublishedWindowBindings

func (*PublishedWindowBindings) Bind added in v0.1.57

func (b *PublishedWindowBindings) Bind(ctx context.Context, clientID, windowID, providerIdentity, uri, hash string, variant *types.WindowResourceVariant) error

Bind runs only from the trusted UI handler after a successful selected Replica.OpenWindowVariant. Browser JSON never populates this registry.

func (*PublishedWindowBindings) Fetch added in v0.1.57

func (b *PublishedWindowBindings) Fetch(ctx context.Context, windowID, id string, inputs map[string]interface{}, windowParameters map[string]any) (*api.FetchDatasourceOutput, bool, error)

Fetch reports handled=false only when there is no server-side cohort binding. A declared cohort request should treat that case as denial, never fallback.

func (*PublishedWindowBindings) Forget added in v0.1.57

func (b *PublishedWindowBindings) Forget(ctx context.Context, windowID, expectedHash string) error

Forget removes only the exact closed version, so a delayed close cannot erase a newer binding for the same browser window ID.

func (*PublishedWindowBindings) ProtectProvider added in v0.1.57

func (b *PublishedWindowBindings) ProtectProvider(providerIdentity string)

ProtectProvider is host-only setup, called before serving UI requests. It also covers a formerly published root after its current grant is removed.

type PublishedWindowOpen added in v0.1.57

PublishedWindowOpen reopens an admitted immutable selected variant locally. The replica owns policy, session and generation freshness; no MCP metadata request or legacy ResolvedResource lease is synthesized by this adapter.

type QuerySelector

type QuerySelector = api.QuerySelector

type RenderedContent added in v0.1.17

type RenderedContent = api.RenderedContent

func NormalizeRenderedContent added in v0.1.17

func NormalizeRenderedContent(content string) *RenderedContent

NormalizeRenderedContent turns recognized Forge fences into an ordered, platform-neutral transcript contract. It deliberately retains malformed and unfinished fences as markdown so clients never invent a renderable surface.

type RenderedContentPart added in v0.1.17

type RenderedContentPart = api.RenderedContentPart

type RenderedContentWarning added in v0.1.17

type RenderedContentWarning = api.RenderedContentWarning

func ValidateInlineReportWorkspaceReferences added in v0.1.17

func ValidateInlineReportWorkspaceReferences(assembly *RenderedReportAssembly, allowed []string) []*RenderedContentWarning

ValidateInlineReportWorkspaceReferences gates live datasource declarations immediately before backend execution. An empty allowlist denies every workspaceRef; callers build the allowlist from the effective authenticated user's workspace catalog rather than from fence-authored metadata.

type RenderedData added in v0.1.17

type RenderedData = api.RenderedData

type RenderedReport added in v0.1.17

type RenderedReport = api.RenderedReport

type RenderedReportAssembly added in v0.1.17

type RenderedReportAssembly = api.RenderedReportAssembly

type RenderedReportTarget added in v0.1.17

type RenderedReportTarget = api.RenderedReportTarget

type ReportingClient added in v0.1.23

type ReportingClient struct {
	// contains filtered or unexported fields
}

ReportingClient exposes typed saved-report lifecycle operations on top of the canonical reporting tool contract.

func NewReportingClient added in v0.1.23

func NewReportingClient(executor ReportingToolExecutor) *ReportingClient

func (*ReportingClient) DeleteReport added in v0.1.23

func (*ReportingClient) DuplicateReport added in v0.1.23

func (*ReportingClient) GetExportArtifact added in v0.1.23

func (c *ReportingClient) GetExportArtifact(ctx context.Context, artifactID string) (*reportingsvc.Artifact, error)

func (*ReportingClient) GetExportStatus added in v0.1.23

func (c *ReportingClient) GetExportStatus(ctx context.Context, jobID string) (*reportingsvc.ExportJobStatus, error)

func (*ReportingClient) GetReport added in v0.1.23

func (*ReportingClient) ListReports added in v0.1.23

func (*ReportingClient) RecordReportRun added in v0.1.23

func (*ReportingClient) SaveReport added in v0.1.23

func (*ReportingClient) SubmitSavedReportExport added in v0.1.23

func (c *ReportingClient) SubmitSavedReportExport(ctx context.Context, reportID string, format reportingsvc.ExportFormat) (*reportingsvc.ExportJobStatus, error)

SubmitSavedReportExport queues an export from a persisted report identity.

func (*ReportingClient) UpdateReport added in v0.1.23

func (*ReportingClient) WaitForSavedReportExport added in v0.1.23

func (c *ReportingClient) WaitForSavedReportExport(ctx context.Context, jobID string, timeout time.Duration) (*reportingsvc.Artifact, error)

WaitForSavedReportExport polls a queued export until it succeeds, fails, the context is canceled, or the supplied timeout elapses.

type ReportingToolExecutor added in v0.1.23

type ReportingToolExecutor interface {
	ExecuteTool(ctx context.Context, name string, args map[string]interface{}) (string, error)
}

ReportingToolExecutor is the narrow SDK seam required by ReportingClient. Both embedded and HTTP Agently clients satisfy it through ExecuteTool.

type ResolveElicitationInput

type ResolveElicitationInput = api.ResolveElicitationInput

type Resource

type Resource = api.Resource

type ResourceRef

type ResourceRef = api.ResourceRef

type SaveResourceInput

type SaveResourceInput = api.SaveResourceInput

type SchedulerOptions

type SchedulerOptions struct {
	EnableAPI      bool
	EnableRunNow   bool
	EnableWatchdog bool
}

SchedulerOptions controls scheduler behavior at the SDK level.

type SessionDebugConfig added in v0.1.7

type SessionDebugConfig struct {
	Enabled    bool
	Level      string
	Components []string
}

type SkillDiagnosticsOutput added in v0.1.8

type SkillDiagnosticsOutput = api.SkillDiagnosticsOutput

type SkillItem added in v0.1.8

type SkillItem = api.SkillItem

type StarterTask

type StarterTask = api.StarterTask

type SteerTurnInput

type SteerTurnInput = api.SteerTurnInput

type SteerTurnOutput

type SteerTurnOutput = api.SteerTurnOutput

type StreamEventsInput

type StreamEventsInput = api.StreamEventsInput

type TemplateListItem added in v0.1.7

type TemplateListItem = api.TemplateListItem

type TokenProvider

type TokenProvider func(ctx context.Context) (string, error)

TokenProvider is a function that returns a current auth token. It is called before each request, allowing dynamic token refresh.

type ToolDefinitionInfo

type ToolDefinitionInfo = api.ToolDefinitionInfo

type ToolStepState

type ToolStepState = api.ToolStepState

type TranscriptOption

type TranscriptOption func(*transcriptOptions)

func WithIncludeFeeds

func WithIncludeFeeds() TranscriptOption

func WithIncludeModelCalls added in v0.1.27

func WithIncludeModelCalls() TranscriptOption

func WithIncludeModelPayloads added in v0.1.57

func WithIncludeModelPayloads(include bool) TranscriptOption

WithIncludeModelPayloads opts into compact model steps when false. Payload IDs and all model/tool metadata remain available.

func WithIncludeToolCalls added in v0.1.27

func WithIncludeToolCalls() TranscriptOption

func WithIncludeToolPayloads added in v0.1.57

func WithIncludeToolPayloads(include bool) TranscriptOption

WithIncludeToolPayloads(false) omits completed ordinary tool bodies when durable payload IDs permit lazy detail reads. Renderer and pending/error carriers remain intact; default detail/replay responses remain full.

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 TurnMessageState added in v0.1.8

type TurnMessageState = api.TurnMessageState

type TurnState

type TurnState = api.TurnState

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 = api.TurnStatus

type UpdateConversationInput

type UpdateConversationInput = api.UpdateConversationInput

type UpdateGoalInput added in v0.1.13

type UpdateGoalInput = api.UpdateGoalInput

type UploadFileInput

type UploadFileInput = api.UploadFileInput

type UploadFileOutput

type UploadFileOutput = api.UploadFileOutput

type UsageModelSummary added in v0.1.26

type UsageModelSummary = api.UsageModelSummary

type UsageSummary added in v0.1.6

type UsageSummary = api.UsageSummary

type UserMessageState

type UserMessageState = api.UserMessageState

type VerifiedWindowOwner added in v0.1.57

type VerifiedWindowOwner func(context.Context) (string, error)

type WorkspaceAgentInfo

type WorkspaceAgentInfo = api.WorkspaceAgentInfo

type WorkspaceAssetDescriptor added in v0.1.40

type WorkspaceAssetDescriptor = api.WorkspaceAssetDescriptor

type WorkspaceCapabilities

type WorkspaceCapabilities = api.WorkspaceCapabilities

type WorkspaceComposer added in v0.1.40

type WorkspaceComposer = api.WorkspaceComposer

type WorkspaceDefaults

type WorkspaceDefaults = api.WorkspaceDefaults

type WorkspaceMetadata

type WorkspaceMetadata = api.WorkspaceMetadata

type WorkspaceModelInfo

type WorkspaceModelInfo = api.WorkspaceModelInfo

Source Files

Directories

Path Synopsis
Package rendering defines the dependency-light SDK wire contract for rich transcript content.
Package rendering defines the dependency-light SDK wire contract for rich transcript content.

Jump to

Keyboard shortcuts

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