组件/Tool Confirmation

Tool Confirmation

工具调用前的授权卡片,带风险等级与「本次会话记住」。

Verified自 0.3.9

Tool Confirmation

基础用法

Tool Confirmation

示例加载中...

交互契约

  • 组件不执行任何工具,也不记忆任何授权,只负责派发决定。执行与持久化都由宿主完成。
  • approvedeny 都携带 { remember: boolean }——拒绝也会带,因此「本次会话都拒绝」同样可以实现。
  • remember 是组件内部状态,初值为 false,且在派发后不会重置:这个卡片被设计为一次性使用,决定后应由宿主卸载。
  • risk 分三档并写在 data-risk 上:read(默认)、writeexecuteread 以外都被视为危险操作,用于强化视觉。
  • 风险文案默认是 Read-only / Writes data / Executes,可通过 riskLabels 按档覆盖,且支持只覆盖其中一档。
  • summaryinput 都是可选的;未传时对应区域整块不渲染。
  • input<pre> 原样渲染,不做转义以外的处理,请在传入前自行截断过长内容。
  • 根节点是 role="group",可访问名称固定为 ${toolName} confirmation

API

Props

属性名类型默认值说明
toolNamestring工具名,同时参与构造可访问名称。必填。
summarystring一句话说明工具将做什么;未传则不渲染。
inputstring序列化后的入参预览,按 <pre> 原样展示。
risk'read' | 'write' | 'execute''read'风险等级,写入 data-risk
allowLabelstring'Allow'允许按钮文案。
denyLabelstring'Deny'拒绝按钮文案。
rememberLabelstring'Remember for this session'记住选项的文案。
riskLabelsPartial<Record<'read' | 'write' | 'execute', string>>覆盖风险文案,可只覆盖部分档位。

Events

事件名参数说明
approve({ remember: boolean })点击允许时派发。
deny({ remember: boolean })点击拒绝时派发,同样携带 remember

Slots

TxToolConfirmation 不暴露插槽。需要展示更复杂的入参时,请自行序列化后传入 input

最佳实践

  • 收到事件后立即卸载这张卡片,不要复用:remember 不会自动复位。
  • risk 要如实标注。把写操作标成 read 会同时削弱视觉强调与用户的判断依据。
  • input 只放决策所需的字段,并预先截断;这里是用户唯一能看清「到底要做什么」的地方,但塞进整个请求体反而会让人跳过。
  • 非英文界面需同时覆盖 allowLabeldenyLabelrememberLabelriskLabels
  • remember 为真时,请把授权限定在当前会话内,不要静默升级为永久授权——文案承诺的是「本次会话」。