import type Database from "better-sqlite3";
/** 新 session 首条消息:引导 agent 按需检索历史上下文 */
export declare const NEW_SESSION_SEARCH_REMINDER = "\n\u8FD9\u662F\u4E00\u4E2A\u5168\u65B0\u7684\u5BF9\u8BDD session\u3002\u5982\u679C\u7528\u6237\u63D0\u5230\u5386\u53F2\u51B3\u7B56\u3001\u65E7\u4EFB\u52A1\u6216\u4F60\u4E0D\u786E\u5B9A\u7684\u80CC\u666F\uFF0C\u5148\u4F7F\u7528 nbt sessions list \u67E5\u770B\u5F53\u524D\u8BDD\u9898\u7684\u4F1A\u8BDD\uFF0C\u518D\u6309\u9700 search/get\uFF0C\u4E0D\u8981\u51ED\u8BB0\u5FC6\u731C\u6D4B\u3002\n";
/** compact 后下一条消息:提醒 agent 恢复可能被压缩掉的规则和状态 */
export declare const COMPACT_RECOVERY_REMINDER = "\n\u4E0A\u4E00\u6B21 agent \u4F1A\u8BDD\u53D1\u751F\u4E86\u4E0A\u4E0B\u6587\u538B\u7F29\uFF0C\u65E9\u5148\u6CE8\u5165\u7684\u89C4\u5219\u6216\u5386\u53F2\u7EC6\u8282\u53EF\u80FD\u5DF2\u88AB\u6458\u8981\u3002\n\u5982\u679C NiuBot \u7CFB\u7EDF\u89C4\u5219\u4E22\u5931\uFF0C\u5148\u8FD0\u884C nbt system-rules\u3002\n\u5982\u679C\u5F53\u524D\u8EAB\u4EFD\u3001\u4F1A\u8BDD\u6216\u7528\u6237\u8BB0\u5FC6\u4E22\u5931\uFF0C\u8FD0\u884C nbt whoami\u3002\n\u5982\u679C\u6700\u8FD1\u5BF9\u8BDD\u4E22\u5931\uFF0C\u8FD0\u884C nbt messages list\u3002\n\u5982\u679C\u5F53\u524D\u8BDD\u9898\u7684\u6D3B\u8DC3\u4F1A\u8BDD\u6216\u5386\u53F2\u7EC6\u8282\u4E22\u5931\uFF0C\u5148\u7528 nbt sessions list\uFF0C\u518D\u6309\u9700\u4F7F\u7528 nbt sessions search/get\u3002\n\u5982\u679C\u4EFB\u52A1\u72B6\u6001\u4E22\u5931\uFF0C\u8FD0\u884C nbt task list\uFF0C\u5E76\u8BFB\u53D6\u5BF9\u5E94 task README\u3002\n\u5982\u679C\u95EE\u9898\u6D89\u53CA\u9879\u76EE\u89C4\u5219\u539F\u6587\uFF0C\u91CD\u65B0\u8BFB\u53D6 workspace \u7684 AGENTS.md\u3002\n\u4E0D\u8981\u628A compact \u6458\u8981\u5F53\u6210\u539F\u6587\u3002\n";
export interface StableSystemContextOptions {
botProfilePath?: string;
personaPath?: string;
instructionsPath?: string;
botName?: string;
botLabel?: string;
}
export declare function buildStableSystemContext(options?: StableSystemContextOptions): string;
export interface SceneInfo {
botName: string;
/** Bot 的 short label,如 "U2(NiuBot)" */
botLabel?: string;
/** IM 平台标识,如 "feishu" */
platform?: string;
userName?: string;
/** 群聊时可省略(身份信息改为消息级注入) */
userId?: string;
/** 仅私聊管理员可见 */
botProfilePath?: string;
chatId: string;
chatType: "p2p" | "group";
/** Chat 的 short label,如 "C1(U1(Zen))" */
chatLabel?: string;
isAdmin?: boolean;
}
/**
* 构建 session profile:当前场景 + 私聊用户记忆。
* 新 session 和 compact recovery 都会通过 user prompt 前缀注入。
*/
export declare function buildImportantContext(db: Database.Database, scene: SceneInfo): string;
export interface SpeakerInfo {
userId: string;
userName?: string;
isAdmin?: boolean;
isBot?: boolean;
}
/**
* 构建群聊消息级 speaker 上下文。
* 单人消息:`` 块。
* 多人合并消息:`` 块,列出每个 sender。
*/
export declare function buildSpeakerContext(db: Database.Database, speakers: SpeakerInfo[]): string;
/**
* 构建 task/conversation 上下文:task 索引 + 续接消息。
* 历史检索走 nbt sessions,不再把归档目录 path 注入 prompt。
*/
export declare function buildNormalContext(db: Database.Database, chatId: string, workingDirectory: string, beforeMsgId?: number, chatType?: "p2p" | "group", userId?: string, threadId?: string, mainThreadOnly?: boolean): string;
export declare function buildActiveTaskContext(workingDirectory: string, chatType?: "p2p" | "group", userId?: string): string;