Skip to content

GateDecision

This content is not available in your language yet.

门面决策:decision 三态 + 决策来源(全部落审计,见 protocol DecisionSource)

optional adjudication?: {
chain: readonly AdjudicationChainEntry[];
childAgentId: string;
childDescription: string;
endorsed: boolean;
};

派生裁决链语境:子代理 ask 经父裁决后 endorse/escalate 上升到用户终审时,执行器把逐级裁决留痕挂在此位—— 终审弹卡呈现完整责任链(「父 X 为子 Y 的操作 Z 担保,理由 W,责任人 X」)。仅裁决链路径携带;主代理直接询问恒缺省。

chain: readonly AdjudicationChainEntry[];

逐级裁决条目(单层派生恒一级;递归派生为多级)

childAgentId: string;

发起 ask 的子代理身份(弹卡「子 Y」位)

childDescription: string;

派生时的任务标签(弹卡语境:这个子代理是干什么的)

endorsed: boolean;

true = 父担保上报(endorse);false = 父不能决上升(escalate)


optional classifierAdjudication?: AdjudicationChainEntry;

分类器裁决意见段(审计词表归一):引擎真实模型 咨询归一意见后经装配层网关透传至此(结构与 kernel permissions/ types.ts 的 PermissionAdjudicationEntry 同构——本目录不 import permissions/,结构兼容由装配层保证,sourceLayer 同例)。执行器把本段 并入决策记录 adjudicationChain(与 Task 链共存时分类器条目在前); 纯审计位,恒不参与执行语义;不进 tool.permission.decided 事件。


decision: PermissionDecision;

optional matchedRule?: string;

命中的规则原文(contract-v0.2):引擎侧 PermissionDecisionResult.matchedRule 的透传位,调度器原样落进 tool.permission.decided 事件体;无规则命中(模式短路/兜底 ask)时缺省。


optional reason?: string;

裁决理由(自由文本;恒不进 tool.permission.decided 事件,契约零改动)。

  • deny(deny-and-continue;source=‘classifier’ 的收紧、hook 收紧、 hard-safety 等):调度器把理由并入 isError tool_result 文本回喂模型—— 模型据此调整路线继续本轮;
  • ask(姿态 rejectEffect=‘ask’;source=‘classifier’):裁决人 判为危险但升到询问面——调度器把本决策整体作 askUser 第三参 decision 透传,询问面据 reason 呈现「裁决人判为危险:…」供用户 终审;该 ask 终局为 deny(用户拒 / 无询问通道地板)时理由同样进 deny-and-continue 文本(拒绝 ≠ 信息灭失)。非分类器 ask 无本键。 引擎侧 PermissionDecisionResult.reason 经装配层网关(cli permission-gate / sdk permission)逐出口透传至此。

source: DecisionSource;

optional sourceLayer?: "user" | "policy" | "projectLocal" | "projectShared";

命中规则所在层(归因;仅规则命中携带)。字面量联合与 kernel permissions/types.ts 的 RuleLayerName 逐字对齐——本目录不 import permissions/(分层铁律),结构兼容由装配层保证。询问面据此 显示项目来源(仓库 deny/ask 即时生效,但用户须看见是谁在约束)。


optional updatedArgs?: Record<string, unknown>;

入参替换(PreToolUse hooks 的 updatedInput): 存在时调度器以此覆盖 call.args 执行(询问对话框同样展示替换后入参, 用户看到的即将执行的真实参数)。仅门面(L4 装配)可产出;引擎侧无此位。