/home/andy/works/agent-sdk/comate_agent_sdk/agent/chat_session.py:1951:            ensure_serialized_tool_approval_callback,
/home/andy/works/agent-sdk/comate_agent_sdk/agent/chat_session.py:1955:            ensure_serialized_tool_approval_callback(callback)
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tests/test_permission_approval_callback.py:7:    ensure_serialized_tool_approval_callback,
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tests/test_permission_approval_callback.py:15:    wrapped = ensure_serialized_tool_approval_callback(callback)
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tests/test_permission_approval_callback.py:17:    assert ensure_serialized_tool_approval_callback(wrapped) is wrapped
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tests/test_permission_approval_callback.py:30:    wrapped = ensure_serialized_tool_approval_callback(callback)
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tests/test_permission_approval_callback.py:50:    wrapped = ensure_serialized_tool_approval_callback(callback)
/home/andy/works/agent-sdk/comate_agent_sdk/agent/tests/test_permission_approval_callback.py:64:    wrapped = ensure_serialized_tool_approval_callback(callback)
/home/andy/works/agent-sdk/comate_agent_sdk/agent/permissions/approval.py:41:def ensure_serialized_tool_approval_callback(callback: Any | None) -> Any | None:
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-07-03-permission-mode-redesign.md:2953:  - `SerializedToolApprovalCallback(callback)` + `ensure_serialized_tool_approval_callback(callback)`
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-07-03-permission-mode-redesign.md:3056:    ensure_serialized_tool_approval_callback,
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-07-03-permission-mode-redesign.md:3064:    wrapped = ensure_serialized_tool_approval_callback(callback)
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-07-03-permission-mode-redesign.md:3066:    assert ensure_serialized_tool_approval_callback(wrapped) is wrapped
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-07-03-permission-mode-redesign.md:3079:    wrapped = ensure_serialized_tool_approval_callback(callback)
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-07-03-permission-mode-redesign.md:3295:def ensure_serialized_tool_approval_callback(callback: Any | None) -> Any | None:
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-07-03-permission-mode-redesign.md:3306:from comate_agent_sdk.agent.permissions.approval import ensure_serialized_tool_approval_callback
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-07-03-permission-mode-redesign.md:3308:runtime._runtime_state.tool_approval_callback = ensure_serialized_tool_approval_callback(
/home/andy/works/agent-sdk/comate_agent_sdk/agent/init.py:915:        ensure_serialized_tool_approval_callback,
/home/andy/works/agent-sdk/comate_agent_sdk/agent/init.py:918:    runtime._runtime_state.tool_approval_callback = ensure_serialized_tool_approval_callback(
/home/andy/works/agent-sdk/docs/superpowers/specs/2026-07-03-rpc-stdio-v3-host-frontend-design.md:224:  公开 setter。约束：必须复用 init 路径的 `ensure_serialized_tool_approval_callback` 包装语义
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-07-03-rpc-stdio-v3-host-frontend.md:42:| `ensure_serialized_tool_approval_callback(cb)`、`SerializedToolApprovalCallback` | `agent/permissions/approval.py:23-45` |
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-07-03-rpc-stdio-v3-host-frontend.md:80:- Produces: `ChatSession.set_tool_approval_callback(callback: Any | None) -> None` — 设置本 session runtime 的审批回调（优先于模板 config 回调），内部用 `ensure_serialized_tool_approval_callback` 包装；closed session 抛 `ChatSessionClosedError`。Task 7 依赖它绑定每会话 `RpcApprovalBridge`。
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-07-03-rpc-stdio-v3-host-frontend.md:173:        约束：必须保持 init 路径的序列化包装语义（ensure_serialized_tool_approval_callback），
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-07-03-rpc-stdio-v3-host-frontend.md:181:            ensure_serialized_tool_approval_callback,
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-07-03-rpc-stdio-v3-host-frontend.md:185:            ensure_serialized_tool_approval_callback(callback)
/home/andy/works/agent-sdk/docs/superpowers/plans/2026-07-03-rpc-stdio-v3-host-frontend.md:207:引用保证路由正确）。setter 复用 ensure_serialized_tool_approval_callback
/home/andy/works/agent-sdk/docs/implementation-notes/rpc-stdio-v3-host-frontend-2026-07-03.html:32:    <tr><td>权衡取舍</td><td>备选方案是在 RPC <code>SessionHost</code> 中直接改 <code>session._agent._runtime_state</code>。最终不选，因为这会把 SDK runtime 内部结构泄漏给 CLI RPC 前端，并绕过 <code>ensure_serialized_tool_approval_callback()</code> 的并发审批保护。</td></tr>

27 matches
27 matched lines
8 files contained matches
4111 files searched
4984 bytes printed
55241355 bytes searched
0.137061 seconds spent searching
0.019716 seconds
