Documentation
¶
Index ¶
- func RegisterBackend(name string, factory BackendFactory)
- type AudioAsset
- type AudioStorageKind
- type BackendFactory
- type ListOpts
- type PostgresStore
- func (s *PostgresStore) Close() error
- func (s *PostgresStore) DB() *sql.DB
- func (s *PostgresStore) DeleteQuickNote(ctx context.Context, id int64) error
- func (s *PostgresStore) GetQuickNote(ctx context.Context, id int64) (*QuickNote, error)
- func (s *PostgresStore) GetTranscription(ctx context.Context, id int64) (*Transcription, error)
- func (s *PostgresStore) ListQuickNotes(ctx context.Context, opts ListOpts) ([]QuickNote, error)
- func (s *PostgresStore) ListTranscriptions(ctx context.Context, opts ListOpts) ([]Transcription, error)
- func (s *PostgresStore) ListUserDictionaryEntries(ctx context.Context, language string) ([]UserDictionaryEntry, error)
- func (s *PostgresStore) ListVoiceAgentSessions(ctx context.Context, opts ListOpts) ([]VoiceAgentSession, error)
- func (s *PostgresStore) PinQuickNote(ctx context.Context, id int64, pinned bool) error
- func (s *PostgresStore) QuickNoteCount(ctx context.Context) (int, error)
- func (s *PostgresStore) RecordUserDictionaryUsage(ctx context.Context, canonical, language string) error
- func (s *PostgresStore) ReplaceUserDictionaryEntries(ctx context.Context, language string, entries []UserDictionaryEntry) error
- func (s *PostgresStore) SaveQuickNote(ctx context.Context, text, language, provider string, ...) (int64, error)
- func (s *PostgresStore) SaveTranscription(ctx context.Context, text, language, provider, model string, ...) error
- func (s *PostgresStore) SaveVoiceAgentSession(ctx context.Context, session VoiceAgentSession) (int64, error)
- func (s *PostgresStore) SemanticCapabilities(context.Context) SemanticCapabilities
- func (s *PostgresStore) Stats(ctx context.Context) (Stats, error)
- func (s *PostgresStore) TranscriptionCount(ctx context.Context) (int, error)
- func (s *PostgresStore) UpdateQuickNote(ctx context.Context, id int64, text string) error
- func (s *PostgresStore) UpdateQuickNoteCapture(ctx context.Context, id int64, text, provider string, ...) error
- type QuickNote
- type SQLiteStore
- func (s *SQLiteStore) Close() error
- func (s *SQLiteStore) DB() *sql.DB
- func (s *SQLiteStore) DeleteQuickNote(ctx context.Context, id int64) error
- func (s *SQLiteStore) GetQuickNote(ctx context.Context, id int64) (*QuickNote, error)
- func (s *SQLiteStore) GetTranscription(ctx context.Context, id int64) (*Transcription, error)
- func (s *SQLiteStore) ListQuickNotes(ctx context.Context, opts ListOpts) ([]QuickNote, error)
- func (s *SQLiteStore) ListTranscriptions(ctx context.Context, opts ListOpts) ([]Transcription, error)
- func (s *SQLiteStore) ListUserDictionaryEntries(ctx context.Context, language string) ([]UserDictionaryEntry, error)
- func (s *SQLiteStore) ListVoiceAgentSessions(ctx context.Context, opts ListOpts) ([]VoiceAgentSession, error)
- func (s *SQLiteStore) PinQuickNote(ctx context.Context, id int64, pinned bool) error
- func (s *SQLiteStore) QuickNoteCount(ctx context.Context) (int, error)
- func (s *SQLiteStore) RecordUserDictionaryUsage(ctx context.Context, canonical, language string) error
- func (s *SQLiteStore) ReplaceUserDictionaryEntries(ctx context.Context, language string, entries []UserDictionaryEntry) error
- func (s *SQLiteStore) SaveQuickNote(ctx context.Context, text, language, provider string, ...) (int64, error)
- func (s *SQLiteStore) SaveTranscription(ctx context.Context, text, language, provider, model string, ...) error
- func (s *SQLiteStore) SaveVoiceAgentSession(ctx context.Context, session VoiceAgentSession) (int64, error)
- func (s *SQLiteStore) SemanticCapabilities(context.Context) SemanticCapabilities
- func (s *SQLiteStore) Stats(ctx context.Context) (Stats, error)
- func (s *SQLiteStore) TranscriptionCount(ctx context.Context) (int, error)
- func (s *SQLiteStore) UpdateQuickNote(ctx context.Context, id int64, text string) error
- func (s *SQLiteStore) UpdateQuickNoteCapture(ctx context.Context, id int64, text, provider string, ...) error
- type SemanticCapabilities
- type SemanticCapabilityProvider
- type SemanticProvider
- type Stats
- type Store
- type StoreConfig
- type Transcription
- type UserDictionaryEntry
- type UserDictionaryStore
- type VoiceAgentSession
- type VoiceAgentSessionStore
- type VoiceAgentSessionSummary
- type VoiceAgentTurn
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RegisterBackend ¶
func RegisterBackend(name string, factory BackendFactory)
RegisterBackend allows external modules (e.g. kombify) to register custom backends. Called from init() in private modules -- SpeechKit itself never knows about kombify.
Types ¶
type AudioAsset ¶
type AudioAsset struct {
StorageKind AudioStorageKind `json:"storageKind"`
Path string `json:"path,omitempty"`
MimeType string `json:"mimeType"`
SizeBytes int64 `json:"sizeBytes"`
DurationMs int64 `json:"durationMs"`
}
type AudioStorageKind ¶
type AudioStorageKind string
const (
AudioStorageLocalFile AudioStorageKind = "local-file"
)
type BackendFactory ¶
type BackendFactory func(cfg StoreConfig) (Store, error)
BackendFactory creates a Store from config.
type PostgresStore ¶
type PostgresStore struct {
// contains filtered or unexported fields
}
PostgresStore implements Store using PostgreSQL for metadata and the local filesystem for optional raw WAV persistence.
func NewPostgresStore ¶
func NewPostgresStore(cfg StoreConfig) (*PostgresStore, error)
NewPostgresStore creates a PostgreSQL-backed store.
func (*PostgresStore) Close ¶
func (s *PostgresStore) Close() error
func (*PostgresStore) DB ¶ added in v0.29.0
func (s *PostgresStore) DB() *sql.DB
DB exposes the underlying *sql.DB for adjacent table-scoped persisters. The caller must not close the returned handle.
func (*PostgresStore) DeleteQuickNote ¶
func (s *PostgresStore) DeleteQuickNote(ctx context.Context, id int64) error
func (*PostgresStore) GetQuickNote ¶
func (*PostgresStore) GetTranscription ¶
func (s *PostgresStore) GetTranscription(ctx context.Context, id int64) (*Transcription, error)
func (*PostgresStore) ListQuickNotes ¶
func (*PostgresStore) ListTranscriptions ¶
func (s *PostgresStore) ListTranscriptions(ctx context.Context, opts ListOpts) ([]Transcription, error)
func (*PostgresStore) ListUserDictionaryEntries ¶ added in v0.22.4
func (s *PostgresStore) ListUserDictionaryEntries(ctx context.Context, language string) ([]UserDictionaryEntry, error)
func (*PostgresStore) ListVoiceAgentSessions ¶ added in v0.24.0
func (s *PostgresStore) ListVoiceAgentSessions(ctx context.Context, opts ListOpts) ([]VoiceAgentSession, error)
func (*PostgresStore) PinQuickNote ¶
func (*PostgresStore) QuickNoteCount ¶
func (s *PostgresStore) QuickNoteCount(ctx context.Context) (int, error)
func (*PostgresStore) RecordUserDictionaryUsage ¶ added in v0.22.4
func (s *PostgresStore) RecordUserDictionaryUsage(ctx context.Context, canonical, language string) error
func (*PostgresStore) ReplaceUserDictionaryEntries ¶ added in v0.22.4
func (s *PostgresStore) ReplaceUserDictionaryEntries(ctx context.Context, language string, entries []UserDictionaryEntry) error
func (*PostgresStore) SaveQuickNote ¶
func (*PostgresStore) SaveTranscription ¶
func (*PostgresStore) SaveVoiceAgentSession ¶ added in v0.24.0
func (s *PostgresStore) SaveVoiceAgentSession(ctx context.Context, session VoiceAgentSession) (int64, error)
func (*PostgresStore) SemanticCapabilities ¶
func (s *PostgresStore) SemanticCapabilities(context.Context) SemanticCapabilities
func (*PostgresStore) TranscriptionCount ¶
func (s *PostgresStore) TranscriptionCount(ctx context.Context) (int, error)
func (*PostgresStore) UpdateQuickNote ¶
func (*PostgresStore) UpdateQuickNoteCapture ¶
type QuickNote ¶
type QuickNote struct {
ID int64
Text string
Language string
Provider string
DurationMs int64
LatencyMs int64
AudioPath string
Audio *AudioAsset
Pinned bool
CreatedAt time.Time
UpdatedAt time.Time
}
QuickNote represents a user-created dictation note.
type SQLiteStore ¶
type SQLiteStore struct {
// contains filtered or unexported fields
}
SQLiteStore implements Store using a local SQLite database. Uses modernc.org/sqlite (pure Go, no CGo required).
func NewSQLiteStore ¶
func NewSQLiteStore(cfg StoreConfig) (*SQLiteStore, error)
NewSQLiteStore opens or creates a SQLite feedback database.
func (*SQLiteStore) Close ¶
func (s *SQLiteStore) Close() error
func (*SQLiteStore) DB ¶ added in v0.26.0
func (s *SQLiteStore) DB() *sql.DB
DB exposes the underlying *sql.DB so adjacent packages can build their own table-scoped persisters (e.g. the persona catalog in internal/server/persona) without the base Store interface needing to enumerate every optional capability. Callers must treat the returned handle as read-mostly: it is owned by the Store and must not be closed.
func (*SQLiteStore) DeleteQuickNote ¶
func (s *SQLiteStore) DeleteQuickNote(ctx context.Context, id int64) error
func (*SQLiteStore) GetQuickNote ¶
func (*SQLiteStore) GetTranscription ¶
func (s *SQLiteStore) GetTranscription(ctx context.Context, id int64) (*Transcription, error)
func (*SQLiteStore) ListQuickNotes ¶
func (*SQLiteStore) ListTranscriptions ¶
func (s *SQLiteStore) ListTranscriptions(ctx context.Context, opts ListOpts) ([]Transcription, error)
func (*SQLiteStore) ListUserDictionaryEntries ¶ added in v0.22.4
func (s *SQLiteStore) ListUserDictionaryEntries(ctx context.Context, language string) ([]UserDictionaryEntry, error)
func (*SQLiteStore) ListVoiceAgentSessions ¶ added in v0.24.0
func (s *SQLiteStore) ListVoiceAgentSessions(ctx context.Context, opts ListOpts) ([]VoiceAgentSession, error)
func (*SQLiteStore) PinQuickNote ¶
func (*SQLiteStore) QuickNoteCount ¶
func (s *SQLiteStore) QuickNoteCount(ctx context.Context) (int, error)
func (*SQLiteStore) RecordUserDictionaryUsage ¶ added in v0.22.4
func (s *SQLiteStore) RecordUserDictionaryUsage(ctx context.Context, canonical, language string) error
func (*SQLiteStore) ReplaceUserDictionaryEntries ¶ added in v0.22.4
func (s *SQLiteStore) ReplaceUserDictionaryEntries(ctx context.Context, language string, entries []UserDictionaryEntry) error
func (*SQLiteStore) SaveQuickNote ¶
func (*SQLiteStore) SaveTranscription ¶
func (*SQLiteStore) SaveVoiceAgentSession ¶ added in v0.24.0
func (s *SQLiteStore) SaveVoiceAgentSession(ctx context.Context, session VoiceAgentSession) (int64, error)
func (*SQLiteStore) SemanticCapabilities ¶
func (s *SQLiteStore) SemanticCapabilities(context.Context) SemanticCapabilities
func (*SQLiteStore) TranscriptionCount ¶
func (s *SQLiteStore) TranscriptionCount(ctx context.Context) (int, error)
func (*SQLiteStore) UpdateQuickNote ¶
func (*SQLiteStore) UpdateQuickNoteCapture ¶
type SemanticCapabilities ¶
type SemanticCapabilities struct {
Provider SemanticProvider `json:"provider"`
FullText bool `json:"fullText"`
Embeddings bool `json:"embeddings"`
VectorSearch bool `json:"vectorSearch"`
}
type SemanticCapabilityProvider ¶
type SemanticCapabilityProvider interface {
SemanticCapabilities(ctx context.Context) SemanticCapabilities
}
SemanticCapabilityProvider is an optional extension for stores that can advertise indexing/vector capabilities without forcing every backend to implement semantic features immediately.
type SemanticProvider ¶
type SemanticProvider string
const (
SemanticProviderNone SemanticProvider = "none"
)
type Store ¶
type Store interface {
// Transcriptions
SaveTranscription(ctx context.Context, text, language, provider, model string, durationMs, latencyMs int64, audioData []byte) error
GetTranscription(ctx context.Context, id int64) (*Transcription, error)
ListTranscriptions(ctx context.Context, opts ListOpts) ([]Transcription, error)
TranscriptionCount(ctx context.Context) (int, error)
// Quick Notes
SaveQuickNote(ctx context.Context, text, language, provider string, durationMs, latencyMs int64, audioData []byte) (int64, error)
GetQuickNote(ctx context.Context, id int64) (*QuickNote, error)
ListQuickNotes(ctx context.Context, opts ListOpts) ([]QuickNote, error)
UpdateQuickNote(ctx context.Context, id int64, text string) error
UpdateQuickNoteCapture(ctx context.Context, id int64, text, provider string, durationMs, latencyMs int64, audioData []byte) error
PinQuickNote(ctx context.Context, id int64, pinned bool) error
DeleteQuickNote(ctx context.Context, id int64) error
QuickNoteCount(ctx context.Context) (int, error)
Stats(ctx context.Context) (Stats, error)
// Lifecycle
Close() error
}
Store is the central storage abstraction. Each backend, such as SQLite or future host-provided backends, implements this interface.
func New ¶
func New(cfg StoreConfig) (Store, error)
New creates a Store backend based on the config.
type StoreConfig ¶
type StoreConfig struct {
Backend string `toml:"backend"` // "sqlite" | "postgres" | registered name
SQLitePath string `toml:"sqlite_path"`
PostgresDSN string `toml:"postgres_dsn"`
SaveAudio bool `toml:"save_audio"`
AudioRetentionDays int `toml:"audio_retention_days"`
MaxAudioStorageMB int `toml:"max_audio_storage_mb"`
TranscriptionModelHints map[string]string
}
StoreConfig holds configuration for store backend selection.
type Transcription ¶
type Transcription struct {
ID int64
Text string
Language string
Provider string
Model string
DurationMs int64
LatencyMs int64
AudioPath string
Audio *AudioAsset
CreatedAt time.Time
}
Transcription represents a saved transcription record.
type UserDictionaryEntry ¶ added in v0.22.4
type UserDictionaryStore ¶ added in v0.22.4
type UserDictionaryStore interface {
ReplaceUserDictionaryEntries(ctx context.Context, language string, entries []UserDictionaryEntry) error
ListUserDictionaryEntries(ctx context.Context, language string) ([]UserDictionaryEntry, error)
RecordUserDictionaryUsage(ctx context.Context, canonical, language string) error
}
UserDictionaryStore is an optional extension for stores that persist user-specific dictation terms outside config.toml.
type VoiceAgentSession ¶ added in v0.24.0
type VoiceAgentSession struct {
ID int64 `json:"id"`
StartedAt time.Time `json:"startedAt"`
EndedAt time.Time `json:"endedAt"`
Language string `json:"language"`
ProviderProfileID string `json:"providerProfileId,omitempty"`
RuntimeKind string `json:"runtimeKind,omitempty"`
Transcript string `json:"transcript,omitempty"`
Turns []VoiceAgentTurn `json:"turns,omitempty"`
Summary VoiceAgentSessionSummary `json:"summary"`
CreatedAt time.Time `json:"createdAt"`
}
type VoiceAgentSessionStore ¶ added in v0.24.0
type VoiceAgentSessionStore interface {
SaveVoiceAgentSession(ctx context.Context, session VoiceAgentSession) (int64, error)
ListVoiceAgentSessions(ctx context.Context, opts ListOpts) ([]VoiceAgentSession, error)
}
VoiceAgentSessionStore is an optional extension for backends that persist Voice Agent dialogue summaries.
type VoiceAgentSessionSummary ¶ added in v0.24.0
type VoiceAgentSessionSummary struct {
Title string `json:"title,omitempty"`
Summary string `json:"summary"`
Ideas []string `json:"ideas,omitempty"`
Decisions []string `json:"decisions,omitempty"`
OpenQuestions []string `json:"openQuestions,omitempty"`
NextSteps []string `json:"nextSteps,omitempty"`
RawText string `json:"rawText,omitempty"`
}