/home/andy/works/agent-sdk/rules/permission-mode.md:124:- `PermissionRequest` 的 `updatedInput` / `updatedPermissions` 必须在执行前重新评估；复评估为 deny 时当前调用立即拒绝。
/home/andy/works/agent-sdk/rules/interrupt-semantics.md:103:  两者都通过 `permissions/approval.py::ApprovalOutcome` 规整，文案只允许从
/home/andy/works/agent-sdk/docs/hook-system-analysis.md:48:    └── updated_input → 修改工具参数后执行
/home/andy/works/agent-sdk/docs/hook-system-analysis.md:97:        updated_input={"key": "value"},
/home/andy/works/agent-sdk/docs/hook-system-analysis.md:114:| `updated_input` | 修改后的工具参数 |
/home/andy/works/agent-sdk/comate_agent_sdk/bundled_skills/comate-guide/references/hooks.md:128:**旧版平铺字段被显式拒绝**：`permissionDecision`、`reason`、`updatedInput`、`updatedOutput`、`decision`、`additionalContext` 等直接写在顶层会抛 `HookOutputViolation`——必须放进 `hookSpecificOutput`。
/home/andy/works/agent-sdk/comate_agent_sdk/bundled_skills/comate-guide/references/hooks.md:134:| `PreToolUse` | `permissionDecision` / `permissionDecisionReason` / `updatedInput` / `additionalContext` |
/home/andy/works/agent-sdk/comate_agent_sdk/bundled_skills/comate-guide/references/hooks.md:140:| `PermissionRequest` | `decision` / `reason` / `updatedInput` / `updatedPermissions` / `interrupt` |
/home/andy/works/agent-sdk/comate_agent_sdk/bundled_skills/comate-guide/references/hooks.md:189:**想用 async hook 去改 `updatedInput`、返回 deny 之类的决策，必然不生效**——这类需求必须用同步（阻塞）hook。
/home/andy/works/agent-sdk/docs/claude_agent_sdk_docs.md:653:            updated_input={**input_data, "file_path": safe_path}
/home/andy/works/agent-sdk/docs/claude_agent_sdk_docs.md:657:    return PermissionResultAllow(updated_input=input_data)
/home/andy/works/agent-sdk/docs/claude_agent_sdk_docs.md:1154:    updated_input: dict[str, Any] | None = None
/home/andy/works/agent-sdk/docs/claude_agent_sdk_docs.md:1161:| `updated_input`       | `dict[str, Any] \| None`         | `None`    | Modified input to use instead of original |
/home/andy/works/agent-sdk/docs/claude_agent_sdk_docs.md:2202:    updatedInput: NotRequired[dict[str, Any]]
/home/andy/works/agent-sdk/claude_agent_sdk.md:653:            updated_input={**input_data, "file_path": safe_path}
/home/andy/works/agent-sdk/claude_agent_sdk.md:657:    return PermissionResultAllow(updated_input=input_data)
/home/andy/works/agent-sdk/claude_agent_sdk.md:1154:    updated_input: dict[str, Any] | None = None
/home/andy/works/agent-sdk/claude_agent_sdk.md:1161:| `updated_input`       | `dict[str, Any] \| None`         | `None`    | Modified input to use instead of original |
/home/andy/works/agent-sdk/claude_agent_sdk.md:2202:    updatedInput: NotRequired[dict[str, Any]]
/home/andy/works/agent-sdk/docs/research/2026-07-20-approval-deadlock-prompt-toolkit-fix-paths.md:62:  onAllow(updatedInput, permissionUpdates, ...): void
/home/andy/works/agent-sdk/docs/research/2026-08-11-esc-abort-permission-deny-interrupt-alignment-prd.md:71:- `PermissionResultAllow(updated_input=..., updated_permissions=...)`：官方 AskUserQuestion 的答案回填通道（与 comate 现有 answer 协议方向一致）。
/home/andy/works/agent-sdk/docs/plans/alignment-hook-plan.md:20:Inv-7（spec 第 3 节）：旧 flat 字段 `permission_decision / updated_input / decision / reason` 一次性移除，无 deprecation 期。input schema（HookInput 16 flat 字段）也同步 breaking 改为 `payload: HookEventPayload` 嵌套结构。理由：现有 hook 配置使用面有限（settings.json + 少量 register_hook 调用），fail-fast 比 deprecation 周期更高效。
/home/andy/works/agent-sdk/docs/plans/alignment-hook-plan.md:98:- 旧 flat 字段（`permission_decision` / `updated_input` 等）出现在 command hook stdout → fail this hook + `HookFailedEvent(error_type="parse_error")`
/home/andy/works/agent-sdk/docs/plans/2026-05-15-hook-foundation-alignment.md:37:    "updatedInput": {}
/home/andy/works/agent-sdk/docs/plans/2026-05-15-hook-foundation-alignment.md:42:4. 保留短期兼容：旧字段 `permissionDecision`、`updatedInput`、`decision:block`、`reason` 继续解析，但输出内部统一归一为新模型，并记录 deprecation warning。
/home/andy/works/agent-sdk/docs/plans/2026-05-15-hook-foundation-alignment.md:238:- `updatedInput` maps to `updated_input`.
/home/andy/works/agent-sdk/docs/plans/2026-05-15-hook-foundation-alignment.md:259:  - `PreToolUse`: `permissionDecision`, `permissionDecisionReason`, `updatedInput`
/home/andy/works/agent-sdk/docs/plans/2026-05-15-hook-foundation-alignment.md:405:- 验证 PreToolUse deny/ask/allow、updatedInput、Stop block 与 timeout 不回归
/home/andy/works/agent-sdk/docs/research/2026-08-11-important-permission-deny-turn-continuation-comate-vs-cc.md:107:    # 步骤 3: updated_input 处理（hook 可修改 args）
/home/andy/works/agent-sdk/docs/research/2026-08-11-important-permission-deny-turn-continuation-comate-vs-cc.md:108:    if pre_outcome.updated_input is not None:
/home/andy/works/agent-sdk/docs/research/2026-08-11-important-permission-deny-turn-continuation-comate-vs-cc.md:109:        updated_args = _coerce_tool_arguments(pre_outcome.updated_input, ...)
/home/andy/works/agent-sdk/docs/research/2026-08-11-important-permission-deny-turn-continuation-comate-vs-cc.md:173:            # updated_input / updated_permissions 处理
/home/andy/works/agent-sdk/docs/research/2026-08-11-important-permission-deny-turn-continuation-comate-vs-cc.md:811:    resolveOnce(ctx.buildAllow(freshResult.updatedInput ?? ctx.input))
/home/andy/works/agent-sdk/docs/research/2026-08-11-important-permission-deny-turn-continuation-comate-vs-cc.md:825:      resolveOnce(ctx.buildAllow(response.updatedInput ?? displayInput))
/home/andy/works/agent-sdk/docs/research/2026-08-11-important-permission-deny-turn-continuation-comate-vs-cc.md:921:    updatedInput: input
/home/andy/works/agent-sdk/packages/comate_cli/docs/cli-rpc-stdio-guide.md:395:- 审批结果没有 `updatedInput`，RPC v3 不支持由 client 改写工具入参。
/home/andy/works/agent-sdk/docs/implementation-notes/rpc-stdio-v3-host-frontend-2026-07-03.html:76:    <tr><td>偏离之处</td><td>暂无有意偏离。client 返回的 <code>updated_permissions</code> 会被归一为 SDK callback 结果中的 <code>updatedPermissions</code>；不支持也不生成 <code>updatedInput</code>。</td></tr>
/home/andy/works/agent-sdk/docs/implementation-notes/windows-git-bash-native-path-guard-2026-08-05-implementation-notes.html:104:[Omitted long line with 1 matches]
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-05-windows-git-bash-native-path-guard.md:36:| `_run_pre_tool_pipeline`：PreToolUse `updated_input` 写回在 1498-1507；`evaluate_permission` 在 1516-1524 —— 插入点在两者之间 | `comate_agent_sdk/agent/tool_exec.py:1419-1557` |
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-05-windows-git-bash-native-path-guard.md:37:| `_run_permission_request_pipeline`：PermissionRequest `updated_input` 写回在 1665-1680，复评估在 1687 —— 复检插入点在 1685 之后 | `comate_agent_sdk/agent/tool_exec.py:1595-1830` |
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-05-windows-git-bash-native-path-guard.md:38:| approval callback **没有** `updated_input` 机制（只读 `updated_permissions`）——PRD 验收 6 的场景由执行边界兜底 | `comate_agent_sdk/agent/tool_exec.py:1024-1101` |
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-05-windows-git-bash-native-path-guard.md:891:                        "updatedInput": {"command": _SAFE},
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-05-windows-git-bash-native-path-guard.md:924:                        "updatedInput": {"command": _DANGEROUS},
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-05-windows-git-bash-native-path-guard.md:960:                        "updatedInput": {"command": _DANGEROUS},
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-05-windows-git-bash-native-path-guard.md:1073:（approval callback 无 `updated_input` 机制——`_evaluate_tool_approval` 只消费 `updated_permissions`，tool_exec.py:1024-1101 已核实。PRD 验收 6 的「callback 之后更新」场景由 Task 2 的执行边界兜底，契约只承诺危险 command 不执行。）
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-05-windows-git-bash-native-path-guard.md:1087:- _run_pre_tool_pipeline 中位于 PreToolUse updatedInput 写回之后、
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-05-windows-git-bash-native-path-guard.md:1091:- _run_permission_request_pipeline 中 PermissionRequest updatedInput
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-05-windows-git-bash-native-path-guard.md:1098:- approval callback 在当前管线无 updatedInput 机制（已核实），该场景
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-05-windows-git-bash-native-path-guard.md:1372:- 明确的边界（不是遗漏）：动态脚本 payload 与反引号不递归解释；approval callback 在当前管线无 updatedInput 机制，该场景由执行边界兜底；**本环境无 Windows Git Bash，未做 Windows 端到端验证**——平台行为依据是 PRD 固化的真实会话证据 + 平台模拟测试。
/home/andy/works/agent-sdk/docs/implementation-notes/interrupt-phase-b-permission-deny-2026-08-12-implementation-notes.html:156:              RED：缺少 <code>ApprovalOutcome</code> 导致收集失败；纯函数 GREEN：
/home/andy/works/agent-sdk/docs/implementation-notes/interrupt-phase-b-permission-deny-2026-08-12-implementation-notes.html:336:        新测试先因 <code>ApprovalOutcome</code> 不存在而在收集期失败；失败来源是新增
/home/andy/works/agent-sdk/docs/hooks.md:479:    "updatedInput": { "command": "rm -i /tmp/specific_file" }
/home/andy/works/agent-sdk/docs/hooks.md:541:    "updatedInput": { "...": "..." },
/home/andy/works/agent-sdk/docs/hooks.md:905:| `updatedInput` | `hookSpecificOutput.updatedInput` |
/home/andy/works/agent-sdk/docs/hooks.md:1018:        "updatedInput": {"command": data["payload"]["tool_input"]["command"] + " --safe"}
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-07-03-permission-mode-redesign.md:1901:# 场景 7:PermissionRequest hook 返回 updatedInput(改 file_path 指向
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-07-03-permission-mode-redesign.md:1902:#         deny 规则命中路径)→ 最终被拒(updatedInput 必须重过引擎)。
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-07-03-permission-mode-redesign.md:1992:整体替换为(validator/PreToolUse 硬停/deny/updatedInput 块保持原文,新旧差异:mode_policy 布尔门删除;hook allow/ask 收敛为 hook_decision;引擎决策三分支):
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-07-03-permission-mode-redesign.md:2065:    if pre_outcome is not None and pre_outcome.updated_input is not None:
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-07-03-permission-mode-redesign.md:2066:        if not isinstance(pre_outcome.updated_input, dict):
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-07-03-permission-mode-redesign.md:2070:                error_msg="Error executing tool: hook updatedInput must be a JSON object",
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-07-03-permission-mode-redesign.md:2072:        updated_args = _coerce_tool_arguments(pre_outcome.updated_input, tool.definition.parameters)
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-07-03-permission-mode-redesign.md:2194:            if request_outcome.permission_request.updated_input is not None:
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-07-03-permission-mode-redesign.md:2196:                    request_outcome.permission_request.updated_input,
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-07-03-permission-mode-redesign.md:2210:            # updatedInput / updatedPermissions 任一出现都重评(hook 意见已消费,不再传入)。
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-07-03-permission-mode-redesign.md:2212:                request_outcome.permission_request.updated_input is not None
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-07-03-permission-mode-redesign.md:2402:- updatedInput/updatedPermissions 后强制重评:最终执行输入必须
/home/andy/works/agent-sdk/docs/implementation_notes/implementation-notes-07-03-huge-task.html:392:        <code>PermissionRequest</code> 的 <code>updatedInput</code> 和
/home/andy/works/agent-sdk/docs/implementation_notes/implementation-notes-07-03-huge-task.html:400:        <code>PermissionRequest</code>。已修正为仅在存在 <code>updatedInput</code> 或
/home/andy/works/agent-sdk/docs/superpowers/specs/2026-03-23-facade-hooks-design.md:177:- `updatedInput: dict` — 修改工具输入（仅 PreToolUse）
/home/andy/works/agent-sdk/docs/superpowers/specs/2026-07-03-rpc-stdio-v3-host-frontend-design.md:153:  **不支持 `updatedInput`**——SDK 审批回调结果契约只接受
/home/andy/works/agent-sdk/docs/superpowers/specs/2026-07-03-rpc-stdio-v3-host-frontend-design.md:155:  `updatedInput` 属于 PermissionRequest hook 面，不经审批回调。
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-capability.md:1569:[Omitted long line with 1 matches]
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-capability.md:1594:**Files:** `agent/permissions/approval.py`（规整抽层：纯函数 + `ApprovalOutcome` frozen dataclass）、`agent/permissions/messages.py`（新建）、`agent/tool_exec.py`（改为消费 ApprovalOutcome）；Test: 载荷规整窄 unit（interrupt 字段类型畸形收敛：非 bool 忽略、字符串 "true" 不认）+ 新旧分界判据矩阵 + 既有审批测试零回归。
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-capability.md:1596:- [ ] 失败测试：dict deny 载荷带 `interrupt=True/False` 时 `ApprovalOutcome` 携带该标志与「新协议」判定；不带 interrupt 键（含 bool/str 形态）→ legacy 判定、reason 原样透传；`feedback` 接受并保存；字段正交矩阵（reason×interrupt×主/子）文案断言。
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-capability.md:1639:- [ ] facade 文档增补：审批协议新字段（`interrupt`/`feedback`）、`ApprovalOutcome`、「审批 callback task 可能被竞速 cancel，宿主须处理 CancelledError」告诫。
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-07-03-rpc-stdio-v3-host-frontend.md:19:- 审批回调结果契约（SDK `tool_exec.py` 已验证）：`{"decision": "allow"|"deny", "reason"?: str, "updatedPermissions"?: list}`。**没有 `updatedInput`**。
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-07-03-rpc-stdio-v3-host-frontend.md:3983:   - 逐工具审批（permission.request → client result allow/deny/updatedPermissions；注明**无 updatedInput**、无超时、deny 兜底三处）；
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-07-03-rpc-stdio-v3-host-frontend.md:4109:- 权限：四值枚举；缺省 `default`；`--yolo` 拒绝；审批结果无 `updatedInput`；`updatedPermissions` 由 SDK 复评估。
/home/andy/works/agent-sdk/docs/hook-mechanism-claude-code-comparison.md:21:- Hook output 已切换为 per-event 协议：`hookSpecificOutput.hookEventName` 决定事件专属字段，旧 flat output 字段 `permissionDecision`、`updatedInput`、`decision`、`reason` 不再兼容；旧格式会 fail 当前 hook 并产生 `HookFailedEvent`，不会静默改写主流程。
/home/andy/works/agent-sdk/docs/hook-mechanism-claude-code-comparison.md:32:- command hook stdout 必须返回新协议 JSON；不要再返回 `permissionDecision` / `updatedInput` / `decision` / `reason` 这些旧 flat 字段。
/home/andy/works/agent-sdk/docs/hook-mechanism-claude-code-comparison.md:33:- 工具输入修改应使用 `hookSpecificOutput: {"hookEventName": "PreToolUse", "updatedInput": {...}}`。
/home/andy/works/agent-sdk/docs/hook-mechanism-claude-code-comparison.md:45:| 执行模型 | 按 group 和 handler 串行执行，`deny` 立即返回，`updatedInput` 后写覆盖。源码：`comate_agent_sdk/agent/hooks/engine.py` | 匹配后去重，支持 `if` 条件，批量并行执行，聚合结果。源码：`codebase_claude/claude-code-main/src/utils/hooks.ts` | Claude 吞吐和扩展性更强，但复杂度更高 |
/home/andy/works/agent-sdk/docs/hook-mechanism-claude-code-comparison.md:46:| 返回协议 | 支持 `permissionDecision`、`updatedInput`、`decision:block`、`reason`，并明确拒绝 `additionalContext`。源码：`comate_agent_sdk/agent/hooks/models.py` | 支持 `continue:false`、`suppressOutput`、`stopReason`、`systemMessage`、event-specific output、`additionalContext`、`updatedMCPToolOutput` 等。源码：`codebase_claude/claude-code-main/src/types/hooks.ts` | Comate 协议更小，但表达力不足 |
/home/andy/works/agent-sdk/docs/hook-mechanism-claude-code-comparison.md:48:| 工具权限语义 | `PreToolUse` 在 runtime mode policy 和 validator 之后执行；`deny`、`ask`、`updatedInput` 会被应用。源码：`comate_agent_sdk/agent/tool_exec.py` | Hook `allow` 不绕过 settings 权限规则，仍会进入权限链路。源码：`codebase_claude/claude-code-main/src/services/tools/toolHooks.ts` | Comate 需要更明确的权限优先级文档和测试 |
/home/andy/works/agent-sdk/docs/hook-mechanism-claude-code-comparison.md:70:- `updated_input`: 修改后的工具输入
/home/andy/works/agent-sdk/docs/hook-mechanism-claude-code-comparison.md:114:- `updated_input` 使用最后一个返回值。
/home/andy/works/agent-sdk/docs/hook-mechanism-claude-code-comparison.md:140:5. 应用 `deny` / `ask` / `updatedInput`。
/home/andy/works/agent-sdk/docs/hook-mechanism-claude-code-comparison.md:148:- hook `updatedInput` 后需要重新 canonicalize 和 schema coerce。
/home/andy/works/agent-sdk/docs/hook-mechanism-claude-code-comparison.md:250:- `PreToolUse`: `permissionDecision`、`permissionDecisionReason`、`updatedInput`、`additionalContext`
/home/andy/works/agent-sdk/docs/hook-mechanism-claude-code-comparison.md:473:- `PreToolUse` 不适合直接并行，因为 `updatedInput` 合并语义复杂。
/home/andy/works/agent-sdk/docs/hook-mechanism-claude-code-comparison.md:649:Comate 当前 `updatedInput` 是后写覆盖语义。如果直接并行，多个 hook 同时修改工具参数会产生不确定性。
/home/andy/works/agent-sdk/docs/hook-mechanism-claude-code-comparison.md:712:`PreToolUse` 修改 `updatedInput` 后必须继续保持：
/home/andy/works/agent-sdk/docs/hook-mechanism-claude-code-comparison.md:748:4. `updatedInput` 后 Write/Edit 路径仍被 canonicalize。
/home/andy/works/agent-sdk/docs/superpowers/specs/2026-07-03-permission-mode-redesign.md:192:   - updatedInput → 重新 coerce + canonicalize(不变)
/home/andy/works/agent-sdk/docs/superpowers/specs/2026-07-03-permission-mode-redesign.md:201:   - allow → 执行;updatedInput → 必须重新过 evaluate_permission 才执行
/home/andy/works/agent-sdk/docs/superpowers/specs/2026-07-03-permission-mode-redesign.md:348:- PermissionRequest updatedInput 重新评估后才执行。
/home/andy/works/agent-sdk/docs/audit/system-tools-feedback-audit.md:220:| FB-44 | PreToolUse hook updated_input 重写参数后，已发出的 ToolCallEvent.args 与实际执行不一致，无修正事件（UI/transcript 审计失真） | tool_execution.py:1137-1143 | F | 静态·需构造 |
/home/andy/works/agent-sdk/docs/facade/05-options-reference.md:1493:`ApprovalOutcome` 是 SDK 内部的不可变规整模型，不是 facade 公共返回类型。
/home/andy/works/agent-sdk/docs/facade/08-hooks.md:233:        "updatedInput": {"command": "..."},
/home/andy/works/agent-sdk/docs/facade/08-hooks.md:242:| `PreToolUse` | `permissionDecision` (`allow`/`ask`/`deny`)、`permissionDecisionReason`、`updatedInput` |
/home/andy/works/agent-sdk/docs/facade/08-hooks.md:248:| `PermissionRequest` | `decision` (`allow`/`deny`/`ask`)、`reason`、`updatedInput`、`updatedPermissions`、`interrupt` |
/home/andy/works/agent-sdk/docs/facade/08-hooks.md:295:| `updatedInput` | **最后一个非 None 的覆盖前面所有的** |
/home/andy/works/agent-sdk/docs/facade/08-hooks.md:410:    "updatedInput": {"command": "rm -i /tmp/specific_file"},  # 改写参数（可选）
/home/andy/works/agent-sdk/docs/facade/08-hooks.md:473:    "updatedInput": {...},              # 可选：改写工具参数
/home/andy/works/agent-sdk/docs/facade/08-hooks.md:793:| `updatedInput` | `hookSpecificOutput.updatedInput` |
/home/andy/works/agent-sdk/docs/superpowers/specs/2026-06-20-permission-mode-design.md:200:   - `updatedInput` is re-coerced, canonicalized, and then re-evaluated.
/home/andy/works/agent-sdk/docs/superpowers/specs/2026-06-20-permission-mode-design.md:210:   - `updatedInput`: re-coerce and re-run permission policy before execution.
/home/andy/works/agent-sdk/docs/superpowers/specs/2026-06-20-permission-mode-design.md:249:- `updatedInput`
/home/andy/works/agent-sdk/docs/superpowers/specs/2026-06-20-permission-mode-design.md:582:- `PermissionRequest updatedInput` is rechecked before execution.
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-f-feedback-injection.md:55:| `ApprovalOutcome.feedback` 解析（whitespace→None） | `agent/permissions/approval.py:90,113-116` |
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-f-feedback-injection.md:115:[Omitted long line with 1 matches]
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-f-feedback-injection.md:124:- `ApprovalOutcome.feedback` 位于 `approval.py:90`，dict 规整位于 `:113-127`：非空字符串逐字保留，纯空白规整为 `None`。
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-f-feedback-injection.md:469:4. `_run_pre_tool_pipeline`（`:1570`）返回类型同样扩为三元组；**全部 9 处 return 站点（F1 Step 2 实测清单）第三元素补 `None`**——含 5 处早退站点（`:1592` validator 失败、`:1623` PreToolUse 硬停、`:1643` hook deny、`:1651` `updated_input` 非法、`:1675` guard error）与 `:1696`（policy deny）、`:1703`（policy allow）；仅 `:1705-1718` 末尾块按下述改写（透传 pipeline 的 feedback）：
/home/andy/works/agent-sdk/docs/superpowers/specs/2026-05-16-hook-cc-alignment-design.md:71:`PreToolUse.updated_input` 应用后必须重跑 `_coerce_tool_arguments()` + `_canonicalize_write_tool_path_for_hooks()`【r2 修订 B4：函数实际名带 `_for_hooks` 后缀，定义在 `tool_exec.py:854`，原 spec 函数名缺失后缀】。
/home/andy/works/agent-sdk/docs/superpowers/specs/2026-05-16-hook-cc-alignment-design.md:122:旧 flat 字段（`permission_decision` / `updated_input` / `decision` / `reason`）**一次性移除**，无 deprecation 期。
/home/andy/works/agent-sdk/docs/superpowers/specs/2026-05-16-hook-cc-alignment-design.md:258:[Omitted long line with 1 matches]
/home/andy/works/agent-sdk/docs/superpowers/specs/2026-05-16-hook-cc-alignment-design.md:362:    updated_input: dict[str, Any] | None = None
/home/andy/works/agent-sdk/docs/superpowers/specs/2026-05-16-hook-cc-alignment-design.md:743:5. PreToolUse `updated_input` 后重跑 coerce + canonicalize
/home/andy/works/agent-sdk/docs/superpowers/specs/2026-05-16-hook-cc-alignment-design.md:1274:    updated_input: dict[str, Any] | None = None
/home/andy/works/agent-sdk/claude-code-system-prompts-main/system-prompts/system-prompt-hooks-configuration.md:107:  - `updatedInput` - Modified tool input (PreToolUse only)
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-07-05-hooks-architecture-refactor.md:48:        updated_input=cast(dict[str, Any] | None, specific.get("updatedInput")),
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-07-05-hooks-architecture-refactor.md:92:        updated_input=cast(dict[str, Any] | None, specific.get("updatedInput")),
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:7:[Omitted long line with 1 matches]
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:108:### 任务 B2: 文案常量 + ApprovalOutcome 规整抽层（TDD）
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:120:  - `approval.py`：`@dataclass(frozen=True) ApprovalOutcome(approved: bool, reason: str | None = None, interrupt: bool = False, interrupt_specified: bool = False, feedback: str | None = None, updated_permissions: Any | None = None, cancelled: bool = False)`；
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:121:    `normalize_approval_result(result: object) -> ApprovalOutcome`（纯函数，不折叠 fallback）。
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:122:  - `_evaluate_tool_approval(...) -> ApprovalOutcome`（返回类型从 tuple 改为 dataclass）。
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:134:    ApprovalOutcome,
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:135:    normalize_approval_result,
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:149:        self.assertEqual(normalize_approval_result(True), ApprovalOutcome(approved=True))
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:150:        outcome = normalize_approval_result(False)
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:156:        self.assertTrue(normalize_approval_result("allow").approved)
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:157:        self.assertTrue(normalize_approval_result(" Approved ").approved)
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:158:        denied = normalize_approval_result("deny")
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:161:        unknown = normalize_approval_result("maybe")
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:166:        outcome = normalize_approval_result({"decision": "deny", "interrupt": True})
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:171:        outcome_false = normalize_approval_result(
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:179:        outcome = normalize_approval_result({"decision": "deny", "reason": "custom"})
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:185:            outcome = normalize_approval_result({"decision": "deny", "interrupt": bad})
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:192:        allowed = normalize_approval_result(
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:198:            normalize_approval_result({"decision": "allow", "feedback": "   "}).feedback
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:201:            normalize_approval_result({"decision": "allow", "feedback": 42}).feedback
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:205:        snake = normalize_approval_result(
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:208:        camel = normalize_approval_result(
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:215:        outcome = normalize_approval_result(object())
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:223:    def _new(self, *, reason: str | None, interrupt: bool) -> ApprovalOutcome:
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:224:        return ApprovalOutcome(
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:270:        legacy = ApprovalOutcome(approved=False, reason="host composed text")
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:277:        legacy_no_reason = ApprovalOutcome(approved=False)
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:324:新旧文案分界唯一判据 = ApprovalOutcome.interrupt_specified（dict 载荷显式含
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:333:    from comate_agent_sdk.agent.permissions.approval import ApprovalOutcome
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:389:    outcome: "ApprovalOutcome",
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:431:class ApprovalOutcome:
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:453:def normalize_approval_result(result: object) -> ApprovalOutcome:
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:454:    """审批 callback 返回值 → ApprovalOutcome 的唯一规整入口（纯函数）。
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:460:        return ApprovalOutcome(approved=result)
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:465:            return ApprovalOutcome(approved=True)
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:466:        return ApprovalOutcome(approved=False)
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:482:            return ApprovalOutcome(
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:490:            return ApprovalOutcome(
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:498:    return ApprovalOutcome(approved=False)
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:506:- [x] **Step 6: 接线 tool_exec——_evaluate_tool_approval 返回 ApprovalOutcome**
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:514:    ApprovalOutcome,
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:515:    normalize_approval_result,
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:534:) -> ApprovalOutcome:
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:537:        return ApprovalOutcome(
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:555:        return ApprovalOutcome(
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:562:    outcome = normalize_approval_result(result)
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:630:git commit -m "feat(permissions): 审批载荷规整抽层 ApprovalOutcome 与 CC 文案常量落地
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:633:  normalize_approval_result + frozen dataclass ApprovalOutcome，可独立窄测
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:654:- Consumes: B2 的 `ApprovalOutcome` / `compose_approval_deny_text`；阶段 A 的 `resolve_stop_cause` / `_finalize_interrupt(cause=...)`。
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:1414:- Consumes: `agent/interrupt.py::bridge_to_event`（AskUserQuestion 先例 `ask_user_question.py:83-117`）；B2 的 `ApprovalOutcome.cancelled`。
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:1608:        return ApprovalOutcome(
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:1616:        return ApprovalOutcome(approved=False, cancelled=True)
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-08-12-interrupt-phase-b-permission-deny.md:1685:- [x] **Step 3: facade 文档增补**——审批协议新字段（deny.interrupt / allow.feedback，含新旧分界判据示例载荷）、`ApprovalOutcome` 语义、「审批 callback task 可能被竞速 cancel，宿主须处理 CancelledError（关弹窗信号）」告诫、`StopCause.PERMISSION_DENY` 分流示例。
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tool_exec.py:33:    ApprovalOutcome,
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tool_exec.py:34:    normalize_approval_result,
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tool_exec.py:1259:) -> ApprovalOutcome:
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tool_exec.py:1262:        return ApprovalOutcome(
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tool_exec.py:1312:        return ApprovalOutcome(
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tool_exec.py:1321:        return ApprovalOutcome(approved=False, cancelled=True)
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tool_exec.py:1323:    outcome = normalize_approval_result(result)
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tool_exec.py:1325:        return ApprovalOutcome(approved=False, cancelled=True)
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tool_exec.py:1885:    if pre_outcome is not None and pre_outcome.updated_input is not None:
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tool_exec.py:1886:        if not isinstance(pre_outcome.updated_input, dict):
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tool_exec.py:1890:                error_msg="Error executing tool: hook updatedInput must be a JSON object",
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tool_exec.py:1892:        updated_args = coerce_tool_arguments(pre_outcome.updated_input, tool.definition.parameters)
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tool_exec.py:2073:            has_input_update = permission_request_output.updated_input is not None
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tool_exec.py:2077:                    permission_request_output.updated_input,
/home/andy/works/agent-sdk/comate_agent_sdk/agent/hooks/engine.py:451:    current_updated_input = current.updated_input if current is not None else None
/home/andy/works/agent-sdk/comate_agent_sdk/agent/hooks/engine.py:466:        updated_input=incoming.updated_input if incoming.updated_input is not None else current_updated_input,
/home/andy/works/agent-sdk/comate_agent_sdk/agent/hooks/engine.py:488:            "has_updated_input": result.pre_tool_use.updated_input is not None,
/home/andy/works/agent-sdk/comate_agent_sdk/agent/hooks/models.py:175:    def updated_input(self) -> dict[str, Any] | None:
/home/andy/works/agent-sdk/comate_agent_sdk/agent/hooks/models.py:177:            return self.pre_tool_use.updated_input
/home/andy/works/agent-sdk/comate_agent_sdk/agent/hooks/models.py:179:            return self.permission_request.updated_input
/home/andy/works/agent-sdk/comate_agent_sdk/agent/hooks/output_schema.py:21:    updated_input: dict[str, Any] | None = None
/home/andy/works/agent-sdk/comate_agent_sdk/agent/hooks/output_schema.py:59:    updated_input: dict[str, Any] | None = None
/home/andy/works/agent-sdk/comate_agent_sdk/agent/hooks/output_schema.py:122:        "updatedInput",
/home/andy/works/agent-sdk/comate_agent_sdk/agent/hooks/output_schema.py:123:        "updated_input",
/home/andy/works/agent-sdk/comate_agent_sdk/agent/hooks/output_schema.py:192:        updated_input=cast(dict[str, Any] | None, specific.get("updatedInput")),
/home/andy/works/agent-sdk/comate_agent_sdk/agent/hooks/output_schema.py:236:        updated_input=cast(dict[str, Any] | None, specific.get("updatedInput")),
/home/andy/works/agent-sdk/comate_agent_sdk/agent/permissions/approval.py:78:class ApprovalOutcome:
/home/andy/works/agent-sdk/comate_agent_sdk/agent/permissions/approval.py:99:def normalize_approval_result(result: object) -> ApprovalOutcome:
/home/andy/works/agent-sdk/comate_agent_sdk/agent/permissions/approval.py:102:        return ApprovalOutcome(approved=result)
/home/andy/works/agent-sdk/comate_agent_sdk/agent/permissions/approval.py:106:            return ApprovalOutcome(approved=True)
/home/andy/works/agent-sdk/comate_agent_sdk/agent/permissions/approval.py:107:        return ApprovalOutcome(approved=False)
/home/andy/works/agent-sdk/comate_agent_sdk/agent/permissions/approval.py:124:            return ApprovalOutcome(
/home/andy/works/agent-sdk/comate_agent_sdk/agent/permissions/approval.py:137:            return ApprovalOutcome(
/home/andy/works/agent-sdk/comate_agent_sdk/agent/permissions/approval.py:145:    return ApprovalOutcome(approved=False)
/home/andy/works/agent-sdk/comate_agent_sdk/agent/permissions/messages.py:5:``ApprovalOutcome.interrupt_specified``；legacy reason 保持原样。
/home/andy/works/agent-sdk/comate_agent_sdk/agent/permissions/messages.py:13:    from comate_agent_sdk.agent.permissions.approval import ApprovalOutcome
/home/andy/works/agent-sdk/comate_agent_sdk/agent/permissions/messages.py:62:    outcome: "ApprovalOutcome",
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tests/test_tool_exec_bash_windows_guard.py:179:                        "updatedInput": {"command": _SAFE},
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tests/test_tool_exec_bash_windows_guard.py:215:                        "updatedInput": {"command": _DANGEROUS},
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tests/test_tool_exec_bash_windows_guard.py:254:                        "updatedInput": {"command": _DANGEROUS},
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tests/test_hooks_tool_exec_integration_blocks.py:119:    async def test_updated_input_is_recoerced_after_hook_modification(self) -> None:
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tests/test_hooks_tool_exec_integration_blocks.py:141:                    "updatedInput": {"tags": '["x","y"]'},
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tests/test_tool_exec_permission_pipeline.py:280:    async def test_permission_request_updated_input_is_reevaluated_before_allow(self) -> None:
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tests/test_tool_exec_permission_pipeline.py:295:                        "updatedInput": {
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tests/test_tool_exec_permission_pipeline.py:373:                            "updatedInput": {
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tests/test_hooks_pretooluse_merge_policy.py:47:                                        updated_input={"value": 1},
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tests/test_hooks_pretooluse_merge_policy.py:81:        self.assertIsNone(outcome.updated_input)
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tests/test_hooks_pretooluse_merge_policy.py:84:    async def test_ask_overrides_allow_and_updated_input_last_wins(self) -> None:
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tests/test_hooks_pretooluse_merge_policy.py:95:                                        updated_input={"value": 1},
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tests/test_hooks_pretooluse_merge_policy.py:113:                                        updated_input={"value": 2},
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tests/test_hooks_pretooluse_merge_policy.py:131:        self.assertEqual(outcome.updated_input, {"value": 2})
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tests/test_approval_outcome_normalization.py:6:    ApprovalOutcome,
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tests/test_approval_outcome_normalization.py:7:    normalize_approval_result,
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tests/test_approval_outcome_normalization.py:23:        self.assertEqual(normalize_approval_result(True), ApprovalOutcome(approved=True))
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tests/test_approval_outcome_normalization.py:24:        outcome = normalize_approval_result(False)
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tests/test_approval_outcome_normalization.py:30:        self.assertTrue(normalize_approval_result("allow").approved)
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tests/test_approval_outcome_normalization.py:31:        self.assertTrue(normalize_approval_result(" Approved ").approved)
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tests/test_approval_outcome_normalization.py:32:        denied = normalize_approval_result("deny")
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tests/test_approval_outcome_normalization.py:35:        unknown = normalize_approval_result("maybe")
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tests/test_approval_outcome_normalization.py:40:        outcome = normalize_approval_result({"decision": "deny", "interrupt": True})
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tests/test_approval_outcome_normalization.py:45:        outcome_false = normalize_approval_result(
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tests/test_approval_outcome_normalization.py:53:        outcome = normalize_approval_result({"decision": "deny", "reason": "custom"})
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tests/test_approval_outcome_normalization.py:59:            outcome = normalize_approval_result(
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tests/test_approval_outcome_normalization.py:68:        allowed = normalize_approval_result(
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tests/test_approval_outcome_normalization.py:74:            normalize_approval_result(
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tests/test_approval_outcome_normalization.py:79:            normalize_approval_result(
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tests/test_approval_outcome_normalization.py:85:        snake = normalize_approval_result(
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tests/test_approval_outcome_normalization.py:88:        camel = normalize_approval_result(
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tests/test_approval_outcome_normalization.py:95:        outcome = normalize_approval_result(object())
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tests/test_approval_outcome_normalization.py:103:    def _new(self, *, reason: str | None, interrupt: bool) -> ApprovalOutcome:
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tests/test_approval_outcome_normalization.py:104:        return ApprovalOutcome(
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tests/test_approval_outcome_normalization.py:150:        legacy = ApprovalOutcome(approved=False, reason="host composed text")
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tests/test_approval_outcome_normalization.py:157:        legacy_no_reason = ApprovalOutcome(approved=False)

268 matches
249 matched lines
45 files contained matches
4111 files searched
43880 bytes printed
55241355 bytes searched
0.034532 seconds spent searching
0.011857 seconds
