session

package
v2.2.0 Latest Latest
Warning

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

Go to latest
Published: Jul 29, 2026 License: MIT Imports: 7 Imported by: 0

Documentation

Overview

Package session defines the provider-visible transcript shape and low-level ephemeral transcript store.

Message is the normalized transcript item passed to providers after host and control projections have been applied. Store is a run-scoped transcript cache for low-level engine execution; it is not the recommended durable persistence API for host applications. Durable conversations should use sessiontree.Repo through agentharness.Thread.

Index

Constants

View Source
const (
	MaxMessageAttachmentsPerTurn      = 32
	MaxMessageAttachmentResourceBytes = 16 * 1024
	MaxMessageAttachmentNameRunes     = 1024
	MaxMessageAttachmentMIMETypeBytes = 512
	MaxMessageAttachmentSizeBytes     = 64 * 1024 * 1024
	MaxMessageAttachmentsTotalBytes   = 256 * 1024 * 1024
	MaxMessageAttachmentsPayloadBytes = 512 * 1024
)
View Source
const (
	MaxMessageReferencesPerTurn         = 128
	MaxMessageReferenceIDBytes          = 128
	MaxMessageReferenceLabelRunes       = 256
	MaxMessageReferenceTextRunes        = 12_000
	MaxMessageReferenceResourceRefBytes = 8_192
	MaxMessageReferencesPayloadBytes    = 256 * 1024
)

Variables

This section is empty.

Functions

func HasRetryEligibleDurableInput

func HasRetryEligibleDurableInput(message Message) bool

HasRetryEligibleDurableInput reports whether a canonical user message can be replayed without depending on turn-scoped supplemental context.

func IsReferenceOnlyUserMessage

func IsReferenceOnlyUserMessage(message Message) bool

func ValidateMessageAttachments

func ValidateMessageAttachments(attachments []MessageAttachment) error

func ValidateMessageReferences

func ValidateMessageReferences(references []MessageReference) error

func ValidateStoredMessageAttachments

func ValidateStoredMessageAttachments(attachments []MessageAttachment) error

ValidateStoredMessageAttachments preserves the attachment shape accepted by earlier schema-v16 journals. New admission must use ValidateMessageAttachments.

Types

type ActivityChip

type ActivityChip struct {
	Kind  string `json:"kind"`
	Label string `json:"label"`
	Value string `json:"value,omitempty"`
	Tone  string `json:"tone,omitempty"`
}

type ActivityPresentation

type ActivityPresentation struct {
	Label       string              `json:"label,omitempty"`
	Description string              `json:"description,omitempty"`
	Renderer    string              `json:"renderer,omitempty"`
	Chips       []ActivityChip      `json:"chips,omitempty"`
	TargetRefs  []ActivityTargetRef `json:"target_refs,omitempty"`
	Payload     map[string]any      `json:"payload,omitempty"`
}

func CloneActivityPresentation

func CloneActivityPresentation(in *ActivityPresentation) *ActivityPresentation

type ActivityTargetRef

type ActivityTargetRef struct {
	Kind  string `json:"kind"`
	Label string `json:"label"`
	URI   string `json:"uri,omitempty"`
	Path  string `json:"path,omitempty"`
	Line  int    `json:"line,omitempty"`
}

type ControlSignalView

type ControlSignalView struct {
	Name        string         `json:"name,omitempty"`
	CallID      string         `json:"call_id,omitempty"`
	Disposition string         `json:"disposition,omitempty"`
	OutputText  string         `json:"output_text,omitempty"`
	ArgsHash    string         `json:"args_hash,omitempty"`
	Payload     map[string]any `json:"payload,omitempty"`
}

func CloneControlSignalView

func CloneControlSignalView(in *ControlSignalView) *ControlSignalView

type MemoryStore

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

func NewMemoryStore

func NewMemoryStore() *MemoryStore

func (*MemoryStore) AppendTranscript

func (s *MemoryStore) AppendTranscript(runID string, messages ...Message) error

func (*MemoryStore) ReplaceTranscript

func (s *MemoryStore) ReplaceTranscript(runID string, messages []Message) error

func (*MemoryStore) Transcript

func (s *MemoryStore) Transcript(runID string) ([]Message, error)

type Message

type Message struct {
	Role                 Role
	Content              string
	Attachments          []MessageAttachment
	References           []MessageReference `json:"References,omitempty"`
	Reasoning            string
	ToolCallID           string
	ToolName             string
	ToolArgs             string
	EntryID              string
	ParentEntryID        string
	Kind                 MessageKind
	ToolResult           *ToolResultView
	Activity             *ActivityPresentation `json:"activity,omitempty"`
	ControlSignal        *ControlSignalView    `json:"control_signal,omitempty"`
	CompactionID         string
	CompactionGeneration int
	CompactionWindowID   string
}

func CloneMessage

func CloneMessage(msg Message) Message

func CloneMessages

func CloneMessages(messages []Message) []Message

func ProjectProviderHistory

func ProjectProviderHistory(history []Message, supplementalAnchorEntryID string) ([]Message, int, error)

ProjectProviderHistory removes durable reference data from the provider view. The returned insertion index is relative to the projected non-system history.

type MessageAttachment

type MessageAttachment struct {
	ResourceRef string                      `json:"resource_ref"`
	Name        string                      `json:"name"`
	MIMEType    string                      `json:"mime_type"`
	SizeBytes   int64                       `json:"size_bytes,omitempty"`
	TextStats   *MessageAttachmentTextStats `json:"text_stats,omitempty"`
}

MessageAttachment is one durable host-owned resource reference associated with a user message. Floret persists and projects the opaque reference but never resolves or reads the resource itself.

func CloneMessageAttachment

func CloneMessageAttachment(attachment MessageAttachment) MessageAttachment

func CloneMessageAttachments

func CloneMessageAttachments(attachments []MessageAttachment) []MessageAttachment

func (MessageAttachment) Validate

func (a MessageAttachment) Validate() error

type MessageAttachmentTextStats

type MessageAttachmentTextStats struct {
	UnicodeCodePointCount int64 `json:"unicode_code_points"`
	LogicalLineCount      int64 `json:"logical_lines"`
}

type MessageKind

type MessageKind string
const (
	MessageKindNormal            MessageKind = ""
	MessageKindCompactionSummary MessageKind = "compaction_summary"
	MessageKindControlSignal     MessageKind = "control_signal"
)

type MessageReference

type MessageReference struct {
	ReferenceID string               `json:"reference_id"`
	Kind        MessageReferenceKind `json:"kind"`
	Label       string               `json:"label"`
	Text        string               `json:"text,omitempty"`
	ResourceRef string               `json:"resource_ref,omitempty"`
	Truncated   bool                 `json:"truncated,omitempty"`
}

MessageReference is one durable, user-visible reference associated with a user message. ResourceRef remains opaque to Floret.

func (MessageReference) Validate

func (r MessageReference) Validate() error

type MessageReferenceKind

type MessageReferenceKind string
const (
	MessageReferenceText      MessageReferenceKind = "text"
	MessageReferenceFile      MessageReferenceKind = "file"
	MessageReferenceDirectory MessageReferenceKind = "directory"
	MessageReferenceTerminal  MessageReferenceKind = "terminal"
	MessageReferenceProcess   MessageReferenceKind = "process"
)

type Role

type Role string
const (
	System    Role = "system"
	User      Role = "user"
	Assistant Role = "assistant"
	Tool      Role = "tool"
)

type ToolResultView

type ToolResultView struct {
	Status        string        `json:"status,omitempty"`
	Truncated     bool          `json:"truncated,omitempty"`
	OriginalBytes int           `json:"original_bytes,omitempty"`
	VisibleBytes  int           `json:"visible_bytes,omitempty"`
	OriginalLines int           `json:"original_lines,omitempty"`
	VisibleLines  int           `json:"visible_lines,omitempty"`
	Strategy      string        `json:"strategy,omitempty"`
	ContentSHA256 string        `json:"content_sha256,omitempty"`
	FullOutput    *artifact.Ref `json:"full_output,omitempty"`
}

type TranscriptStore

type TranscriptStore interface {
	AppendTranscript(runID string, messages ...Message) error
	Transcript(runID string) ([]Message, error)
	ReplaceTranscript(runID string, messages []Message) error
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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