/** 标记通道的活对象(CLAUDE.md 工厂命名律:有方法 ⇒ `create*`)。**一格 scope 的视图**。 */ export interface GovernanceAskMarks { /** * 写下「这次工具调用的门**当前**是不是治理层给的」。 * * 🔴 为什么是 set 而不是只加不减(codex 交叉复审 round2 [medium],验真):**同一个 `toolCallId` 会被 * 复查**。core 的 `recheckApprovedEdit`(`prepare-task.js`)在人编辑了 args 之后拿**同一个** * `creq.toolCallId` 重跑策略链,并可能就此再产一只 ask。若只加不减,「原始 args 治理层要问 / 编辑后 * 治理层放行、由**别的**策略提出第二问」这条真实路径会让第二张卡挂着一个陈旧的治理标 —— 而 * `isMarked` 又是非消费式的,这个假出处会一直传下去。所以每次治理层裁决都**如实覆写**本格。 */ setMarked(toolCallId: string, marked: boolean): void; /** 回查(**非消费式**)。空串/缺席一律 false —— 没有身份就没有证据。 */ isMarked(toolCallId: string | undefined): boolean; /** 测试用:清掉本视图能看到的格。 */ clear(): void; /** 测试/可观测:本视图内的标记数。 */ size(): number; } /** 一张独立的标记表(不进程共享)。生产路径用的是下面 `governanceAskMarksFor` 给出的**分格视图**; * 本工厂给测试(与将来的多实例形)一个不依赖任何环境的干净表。 */ export declare function createGovernanceAskMarks(opts?: { max?: number; }): GovernanceAskMarks; /** 进入一条 run 腿的标记作用域(唯一调用点 = `ToolApprovalCoordinator.runWithContext`)。 */ export declare function runWithGovernanceAskScope(scope: string, fn: () => T): T; /** **写侧**入口:当前异步作用域那一格的视图;作用域外 = `undefined`(写 no-op,见顶注)。 */ export declare function currentGovernanceAskMarks(): GovernanceAskMarks | undefined; /** **读侧**入口:按**显式** scope 取视图(读侧不读 ALS —— 理由见顶注 round5 那段)。 */ export declare function governanceAskMarksFor(scope: string): GovernanceAskMarks; //# sourceMappingURL=governance-ask-marks.d.ts.map