Documentation
¶
Overview ¶
Package format handles message serialization using JSON frontmatter with Markdown body content. It provides message ID generation, parsing, and timestamp-based sorting utilities.
Index ¶
Constants ¶
const ( CurrentSchema = 1 CurrentVersion = 1 )
Schema and version constants.
const ( PriorityUrgent = "urgent" PriorityNormal = "normal" PriorityLow = "low" )
Priority constants for co-op mode message handling.
const ( KindBrainstorm = "brainstorm" KindReviewRequest = "review_request" KindReviewResponse = "review_response" KindQuestion = "question" KindAnswer = "answer" KindDecision = "decision" KindStatus = "status" KindTodo = "todo" )
Kind constants for co-op mode message classification.
Variables ¶
var ( ErrMissingFrontmatterStart = errors.New("missing frontmatter start") ErrMissingFrontmatterEnd = errors.New("missing frontmatter end") )
Sentinel errors for message parsing.
Functions ¶
func IsValidKind ¶ added in v0.6.0
IsValidKind returns true if the kind is valid or empty.
func IsValidPriority ¶ added in v0.6.0
IsValidPriority returns true if the priority is valid or empty.
func SortByTimestamp ¶
func SortByTimestamp[T Timestamped](items []T)
SortByTimestamp sorts a slice of Timestamped items by time, then by ID for stability.
func ValidKinds ¶ added in v0.6.0
func ValidKinds() []string
ValidKinds returns the list of valid kind values.
func ValidPriorities ¶ added in v0.6.0
func ValidPriorities() []string
ValidPriorities returns the list of valid priority values.
Types ¶
type Header ¶
type Header struct {
Schema int `json:"schema"`
ID string `json:"id"`
From string `json:"from"`
To []string `json:"to"`
Thread string `json:"thread"`
Subject string `json:"subject,omitempty"`
Created string `json:"created"`
AckRequired bool `json:"ack_required"`
Refs []string `json:"refs,omitempty"`
// Co-op mode fields (optional, for inter-agent communication)
Priority string `json:"priority,omitempty"` // urgent, normal, low
Kind string `json:"kind,omitempty"` // brainstorm, review_request, review_response, question, answer, decision, status, todo
Labels []string `json:"labels,omitempty"` // free-form tags
Context map[string]any `json:"context,omitempty"` // structured context (paths, symbols, etc.)
}
Header is the JSON frontmatter stored at the top of each message file.
func ParseHeader ¶
func ReadHeaderFile ¶
type Message ¶
Message is the in-memory representation of a message file.