feat: Phase 2 — chat templates, reasoning parser, collapsible TUI, mouse support
- internal/llama/template.go: ChatML/Llama3 template engine with stop tokens - internal/agent/reasoning.go: parse <think>/<reasoning> tags from LLM output - companion/promptbuilder.go: output structured BuildResult, add date/time context - agent/agent.go: wire templates + reasoning split into message loop - storage: add reasoning TEXT column to messages table + migration - channel/tui.go: collapsible reasoning (tab toggle), mouse scroll, polished dimmed style - config: CHAT_TEMPLATE env var (chatml|llama3|none) - plan.md: mark Phase 2 complete, add themes TODO
This commit is contained in:
@@ -15,6 +15,7 @@ type Message struct {
|
||||
ID string `json:"id"`
|
||||
Role Role `json:"role"`
|
||||
Content string `json:"content"`
|
||||
Reasoning string `json:"reasoning,omitempty"`
|
||||
ToolCall *ToolCall `json:"toolCall,omitempty"`
|
||||
CreatedAt time.Time `json:"createdAt"`
|
||||
}
|
||||
@@ -32,6 +33,19 @@ type Conversation struct {
|
||||
UpdatedAt time.Time `json:"updatedAt"`
|
||||
}
|
||||
|
||||
type SegmentType string
|
||||
|
||||
const (
|
||||
SegSystem SegmentType = "system"
|
||||
SegUser SegmentType = "user"
|
||||
SegAssistant SegmentType = "assistant"
|
||||
)
|
||||
|
||||
type PromptSegment struct {
|
||||
Type SegmentType
|
||||
Content string
|
||||
}
|
||||
|
||||
type Mood string
|
||||
|
||||
const (
|
||||
|
||||
Reference in New Issue
Block a user