assist

package
v0.35.2 Latest Latest
Warning

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

Go to latest
Published: May 18, 2026 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Overview

Package assist implements the Assist Mode pipeline: STT transcript → Codeword check → LLM → TTS → Result with both text and audio.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Decision added in v0.18.0

type Decision struct {
	Route   Route
	Intent  shortcuts.Intent
	Utility UtilityDefinition
	Payload string
	Locale  string
}

type Pipeline

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

Pipeline orchestrates the Assist Mode flow.

func NewPipeline

func NewPipeline(assistFlow *core.Flow[flows.AssistInput, flows.AssistOutput, struct{}], executor ToolExecutor, ttsRouter *tts.Router, ttsEnabled bool, opts ...PipelineOption) *Pipeline

NewPipeline creates an Assist Pipeline.

func (*Pipeline) CanHandleWithoutDirectReplyModel added in v0.22.4

func (p *Pipeline) CanHandleWithoutDirectReplyModel(transcript string, opts ProcessOpts) bool

CanHandleWithoutDirectReplyModel reports whether a transcript maps to a local utility path that does not require an Assist LLM.

func (*Pipeline) HasDirectReplyModel added in v0.22.4

func (p *Pipeline) HasDirectReplyModel() bool

HasDirectReplyModel reports whether this pipeline can answer non-utility Assist requests.

func (*Pipeline) Process

func (p *Pipeline) Process(ctx context.Context, transcript string, opts ProcessOpts) (*Result, error)

Process takes a transcript and produces a Result with text and optional audio.

type PipelineOption added in v0.18.0

type PipelineOption func(*Pipeline)

func WithRouter added in v0.18.0

func WithRouter(router *Router) PipelineOption

type ProcessOpts

type ProcessOpts struct {
	Locale    string // "de", "en", etc.
	Selection string // Currently selected text
	Context   string // Additional context
	Target    any    // Host-specific target for insertion/execution
}

ProcessOpts configures a single Assist request.

type Result

type Result struct {
	Text      string // Full response text (always present)
	SpeakText string // TTS-optimized text
	Audio     []byte // TTS audio bytes (present when TTS enabled)
	Format    string // Audio format ("mp3", "wav", etc.)
	Action    string // "respond", "execute", "silent", "shortcut"
	Locale    string // Response language
	Shortcut  string // Matched shortcut intent, if any
	Surface   ResultSurface
	Kind      ResultKind
}

Result is the framework output for Assist Mode. Always contains Text. Contains Audio when TTS is enabled.

type ResultKind added in v0.22.1

type ResultKind string
const (
	ResultKindAnswer        ResultKind = "answer"
	ResultKindWorkProduct   ResultKind = "work_product"
	ResultKindUtilityAction ResultKind = "utility_action"
)

type ResultSurface added in v0.22.1

type ResultSurface string
const (
	ResultSurfacePanel     ResultSurface = "panel"
	ResultSurfaceActionAck ResultSurface = "action_ack"
	ResultSurfaceSilent    ResultSurface = "silent"
)

type Route added in v0.18.0

type Route string
const (
	RouteDirectReply Route = "direct_reply"
	RouteToolIntent  Route = "tool_intent"
	RouteClarify     Route = "clarify"
)

type Router added in v0.18.0

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

func NewRouter added in v0.18.0

func NewRouter(opts ...RouterOption) *Router

func (*Router) Decide added in v0.18.0

func (r *Router) Decide(transcript string, opts ProcessOpts) Decision

type RouterOption added in v0.18.0

type RouterOption func(*Router)

func WithResolver added in v0.18.0

func WithResolver(resolver *shortcuts.Resolver) RouterOption

func WithUtilityRegistry added in v0.24.0

func WithUtilityRegistry(registry *UtilityRegistry) RouterOption

type ToolCall added in v0.18.0

type ToolCall struct {
	Intent     shortcuts.Intent
	Payload    string
	Transcript string
	Locale     string
	Selection  string
	Context    string
	Target     any
}

type ToolExecutor added in v0.18.0

type ToolExecutor interface {
	Execute(context.Context, ToolCall) (ToolResult, error)
}

type ToolResult added in v0.18.0

type ToolResult struct {
	Text      string
	SpeakText string
	Action    string
	Locale    string
	Surface   ResultSurface
	Kind      ResultKind
}

type UtilityDefinition added in v0.24.0

type UtilityDefinition struct {
	ID             UtilityID
	Intent         shortcuts.Intent
	Label          string
	Input          UtilityInputRequirement
	DefaultSurface ResultSurface
	DefaultKind    ResultKind
	RequiresModel  bool
	Enabled        bool
}

type UtilityID added in v0.24.0

type UtilityID string
const (
	UtilityCopyLast   UtilityID = "copy_last"
	UtilityInsertLast UtilityID = "insert_last"
	UtilitySummarize  UtilityID = "summarize"
	UtilityQuickNote  UtilityID = "quick_note"
)

type UtilityInputRequirement added in v0.24.0

type UtilityInputRequirement string
const (
	UtilityInputNone              UtilityInputRequirement = "none"
	UtilityInputLastTranscript    UtilityInputRequirement = "last_transcript"
	UtilityInputSelectionOptional UtilityInputRequirement = "selection_optional"
	UtilityInputUtterance         UtilityInputRequirement = "utterance"
)

type UtilityRegistry added in v0.24.0

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

func DefaultUtilityRegistry added in v0.24.0

func DefaultUtilityRegistry() *UtilityRegistry

func NewUtilityRegistry added in v0.24.0

func NewUtilityRegistry() *UtilityRegistry

func (*UtilityRegistry) Definition added in v0.24.0

func (r *UtilityRegistry) Definition(intent shortcuts.Intent) (UtilityDefinition, bool)

func (*UtilityRegistry) List added in v0.24.0

func (r *UtilityRegistry) List() []UtilityDefinition

func (*UtilityRegistry) Register added in v0.24.0

func (r *UtilityRegistry) Register(def UtilityDefinition)

func (*UtilityRegistry) Supports added in v0.24.0

func (r *UtilityRegistry) Supports(intent shortcuts.Intent) bool

Jump to

Keyboard shortcuts

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