/** * 触发线 1:断言检测与计数(纯函数,可单测)。 * * 扫描 assistant 消息文本,匹配模型「凭空断言」的表述 * (不支持/做不到/只有 N 种/不存在/无法 X/远低于/过于 X), * 计数并每 N 轮无断言衰减 1。等级按阈值分段。 * @module @max-null/dsh-guardian/assertions */ import type { AssertionLevel, GuardianSessionState } from './types.ts'; /** 断言正则:来自 fractal guardian 的 ASSERTION_RE,`无法\s+\S+` 放宽为 `无法\s*\S+`(中文习惯无空格)。 */ export declare const ASSERTION_RE: RegExp; /** 默认断言提醒阈值(升序):count≤1 一级、2-3 二级、>3 三级。 */ export declare const DEFAULT_ASSERTION_THRESHOLDS: number[]; /** 默认衰减轮数:连续 3 轮无断言 -1。 */ export declare const DEFAULT_DECAY_TURNS = 3; /** 断言规则的数值参数(由引擎从 config 解析后传入)。 */ export interface AssertionRules { /** 连续 N 轮无断言 → 计数 -1。 */ decayTurns: number; /** 升序阈值,决定等级分段。 */ thresholds: readonly number[]; } /** 默认规则。 */ export declare function defaultAssertionRules(): AssertionRules; /** * 扫描一段 assistant 文本是否含断言。 * @param text - 助手消息文本。 * @returns 是否命中断言正则。 */ export declare function hasAssertion(text: string): boolean; /** * 由计数和阈值算等级。 * @param count - 当前断言计数。 * @param thresholds - 升序阈值数组。 * @returns 等级(count=0 → 0)。 */ export declare function assertionLevel(count: number, thresholds: readonly number[]): AssertionLevel | 0; /** * 一个 turn 的断言结算:本轮文本含断言 → 计数 +1、衰减水位清零; * 不含断言 → 衰减水位 +1,满 decayTurns 时计数 -1(不低于 0)。 * @param state - 当前会话状态。 * @param turnHasAssertion - 本轮 assistant 文本是否含断言。 * @param rules - 断言规则(衰减轮数 + 阈值)。 * @returns 更新后的状态。 */ export declare function settleAssertionTurn(state: GuardianSessionState, turnHasAssertion: boolean, rules?: AssertionRules): GuardianSessionState; /** * 断言提醒文案(注入 systemPrompt;等级越高越严厉)。 * @param state - 当前会话状态。 * @returns 提醒文本;count=0 时为空串。 */ export declare function assertionReminderText(state: GuardianSessionState): string;