Documentation
¶
Index ¶
- Constants
- Variables
- func BuildNotePrompt(ctx context.Context) string
- func FormatTime(t time.Time) string
- func GetDefaultPromptTemplate(role string) string
- func GetPromptPath(role string, global bool) (string, error)
- func GetPromptSourceContent(name string, global bool) string
- func GetPromptTemplate(ctx context.Context, role string) string
- func GetSystemPrompt(ctx context.Context) string
- func HandleNote(ctx context.Context, content string) (result, warning string, err error)
- func HandleRecall(ctx context.Context, keywordsStr string, days, limit int) (result, warning string, err error)
- func HandleRecent(ctx context.Context, limit int, startID int64) (result, warning string, err error)
- func HandleShow(ctx context.Context, id int64) (result, warning string, err error)
- func JudgeHistory(messages []*Message)
- func RenderPromptForRole(ctx context.Context, role string) string
- func ResolvePromptEditPath(name string) (string, error)
- func ResolvePromptRemovePath(name string) (string, error)
- func SaveMessages(ctx context.Context, msgs ...Message) error
- func SaveNote(ctx context.Context, content string) error
- func ToSQLNullString(tcs []ToolCall) (toolCalls sql.NullString)
- func ToolCallsID(tcs []ToolCall) string
- func Truncate(content string, maxLen int) string
- func UpdateContent(ctx context.Context, id int64, content string) (err error)
- func UpdateHistory(ctx context.Context, id int64) (err error)
- func UpdateToolCalls(ctx context.Context, id int64, tcs []ToolCall) (err error)
- type Message
- func CleanupReverse(messages []Message) (cleaned []Message)
- func ListHistory(ctx context.Context) ([]*Message, error)
- func LoadHistory(ctx context.Context) ([]Message, error)
- func LoadPrompts(ctx context.Context) ([]Message, error)
- func RecentMessages(ctx context.Context, limit int, startID int64) ([]Message, error)
- func ShowMessage(ctx context.Context, id int64) (message *Message, err error)
- type Note
- type PromptInfo
- type Result
- type ToolCall
- type ToolCallFunction
Constants ¶
const MaxNoteContentLen = 80
MaxNoteContentLen 笔记内容最大长度(rune),供 tool handler 参考 ~80 chars ≈ 40 tokens,对中文约40个汉字
Variables ¶
var GetCurrentSessionID = session.GetCurrentSessionID
Functions ¶
func BuildNotePrompt ¶
BuildNotePrompt 从近期笔记构建记忆线索提示词
func GetDefaultPromptTemplate ¶
GetDefaultPromptTemplate 获取内嵌的默认提示词模板 role: dev, expert, review
func GetPromptPath ¶
GetPromptPath 获取提示词文件路径 global: true表示全局配置,false表示项目配置
func GetPromptSourceContent ¶
GetPromptSourceContent 获取用于初始化新提示词文件的种子内容。 非 global 作用域(项目):先尝试全局文件,再尝试内建模板。 global 作用域:只尝试内建模板(已知内建名才返回内容)。 无可用来源时返回空字符串,调用方创建空文件。
func GetPromptTemplate ¶
GetPromptTemplate 获取当前生效的提示词模板 优先级:项目配置(.dscli/prompt/) > 全局配置 > 内嵌默认模板 GetPromptTemplate 获取当前生效的提示词模板。 优先级:项目配置(.dscli/prompt/) > 全局配置 > 内嵌默认模板。 当数据库中存在 role→prompt 映射时,使用映射后的 prompt 名称加载模板;
func HandleNote ¶
func HandleRecall ¶
func HandleRecent ¶
func HandleRecent(ctx context.Context, limit int, startID int64) (result, warning string, err error)
HandleRecent 格式化最近消息为表格,供 LLM 工具调用。
func HandleShow ¶
HandleShow 根据消息 ID 返回完整内容(跳过 reasoning_content),供 LLM 工具调用。
func RenderPromptForRole ¶
RenderPromptForRole renders the system prompt for a specific role (expert/review/dev) without requiring the role to be set in the context. This is useful for tool call handlers that need a one-shot prompt for a given role, such as ask_expert (role="expert") and code_review (role="review").
func ResolvePromptEditPath ¶
ResolvePromptEditPath 确定编辑提示词的目标路径 优先编辑项目级别(若已存在);若不在项目中或文件不存在则使用全局 ResolvePromptEditPath 确定编辑提示词的目标路径 优先编辑项目级别(若已存在);若不在项目中或文件不存在则使用全局
func ResolvePromptRemovePath ¶
ResolvePromptRemovePath 确定删除提示词的目标路径 优先项目级别(若存在),否则全局
func SaveMessages ¶
SaveMessages 保存消息,同时同步 FTS5 全文索引。
func ToSQLNullString ¶
func ToSQLNullString(tcs []ToolCall) (toolCalls sql.NullString)
func ToolCallsID ¶
func UpdateContent ¶
UpdateContent update message content
func UpdateHistory ¶
UpdateHistory update message session_id to 0
Types ¶
type Message ¶
type Message struct {
ID int64 `json:"-"`
SessionID int64 `json:"-"`
ModelID int64 `json:"-"`
Content string `json:"content"` // 始终输出,即使为空字符串
Role string `json:"role"`
ReasoningContent string `json:"reasoning_content,omitzero"`
ToolCalls []ToolCall `json:"tool_calls,omitzero"` // 仅当有工具调用时输出
ToolCallID string `json:"tool_call_id,omitzero"` // 仅当 role="tool" 时输出
CreatedAt time.Time `json:"-"`
OK bool `json:"-"`
// contains filtered or unexported fields
}
Message 扩展,支持工具调用(注意:Content 字段不再使用 omitempty)
func CleanupReverse ¶
CleanupReverse - make the messages clean, remove the mistake message
func ListHistory ¶
ListHistory 加载指定会话的所有历史消息,按时间升序返回
func LoadHistory ¶
LoadHistory 加载指定会话的所有历史消息,按时间升序返回
func LoadPrompts ¶
LoadPrompts loads the system prompt combined with skill and note prompts. Only dev role gets skills and notes; expert/review roles skip them. LoadPrompts loads the system prompt combined with skill and note prompts. Skills are injected according to role config; when no config exists, only dev role gets skills (hardcoded fallback).
func RecentMessages ¶
RecentMessages 返回当前 session 中最近的用户/助手消息(过滤 tool/tool_calls), 按 created_at 降序排列(最新在顶部)。 startID 默认为 math.MaxInt64(无穷大 = 从最新开始);传具体 ID 实现向前翻页。
type PromptInfo ¶
type PromptInfo struct {
Name string
Description string
Source string // "built-in", "project", "global"
}
PromptInfo 提示词基本信息
type Result ¶
Result 搜索结果
func SearchMessages ¶
SearchMessages 搜索消息,使用 FTS5 全文搜索(中文分词,按相关性排序)。 只搜索 role=user 和 role=assistant(无tool_calls) 的消息。 仅搜索当前 session(对应当前项目)的消息,避免跨项目回忆。 keywords: 搜索关键词(空格分隔,OR 逻辑,匹配任一即返回)。 days: 搜索最近N天,<=0 表示不限时间。 limit: 返回结果数量上限。
type ToolCall ¶
type ToolCall struct {
ID string `json:"id"`
Type string `json:"type"`
Function ToolCallFunction `json:"function"`
}