session

package
v7.9.2 Latest Latest
Warning

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

Go to latest
Published: Sep 10, 2026 License: MIT Imports: 8 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
)
View Source
const ControlSignalErrorCodeControlError = "control_error"

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 ProviderContent added in v7.8.0

func ProviderContent(message Message) string

ProviderContent renders submitted facts in order without opaque locators. JSON strings delimit host/user data without granting it instruction authority.

func ValidateMessageAttachments

func ValidateMessageAttachments(attachments []MessageAttachment) error

func ValidateMessageContext added in v7.8.0

func ValidateMessageContext(items []MessageContextItem) 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.

func ValidateToolHistory added in v7.1.5

func ValidateToolHistory(messages []Message) error

ValidateToolHistory checks complete local tool exchanges before rendering or provider-native continuation selection. Call IDs may recur in later exchanges.

Types

type ActivityChip

type ActivityChip = tools.ActivityChip

type ActivityPresentation

type ActivityPresentation = tools.ActivityPresentation

func CloneActivityPresentation

func CloneActivityPresentation(in *ActivityPresentation) *ActivityPresentation

type ActivityTargetRef

type ActivityTargetRef = tools.ActivityTargetRef

type ControlSignalView

type ControlSignalView struct {
	Name        string         `json:"name,omitempty"`
	CallID      string         `json:"call_id,omitempty"`
	Disposition string         `json:"disposition,omitempty"`
	ErrorCode   string         `json:"error_code,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) 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"`
	Context              []MessageContextItem `json:"Context,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 derives the complete provider history from canonical facts. 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 MessageContextItem added in v7.8.0

type MessageContextItem struct {
	Kind  string `json:"kind"`
	Title string `json:"title"`
	Text  string `json:"text"`
}

MessageContextItem is an admitted host snapshot, effective from its user message onward. It is model context, never resource authorization evidence.

func (MessageContextItem) Validate added in v7.8.0

func (item MessageContextItem) Validate() error

type MessageKind

type MessageKind string
const (
	MessageKindNormal              MessageKind = ""
	MessageKindToolValidationError MessageKind = "tool_validation_error"
	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)
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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