(
tools: list[Tool],
captured: list[bool] | None = None,
*,
raise_setter: bool = False,
)
| 48 | |
| 49 | |
| 50 | def _make_context( |
| 51 | tools: list[Tool], |
| 52 | captured: list[bool] | None = None, |
| 53 | *, |
| 54 | raise_setter: bool = False, |
| 55 | ) -> ToolContext: |
| 56 | ctx = ToolContext( |
| 57 | workspace_root=Path("/tmp"), |
| 58 | options=ToolUseOptions(tools=tools), |
| 59 | abort_controller=AbortController(), |
| 60 | ) |
| 61 | if captured is not None: |
| 62 | if raise_setter: |
| 63 | def _setter(v: bool) -> None: |
| 64 | captured.append(v) |
| 65 | raise RuntimeError("setter explodes") |
| 66 | |
| 67 | ctx.set_has_interruptible_tool_in_progress = _setter |
| 68 | else: |
| 69 | ctx.set_has_interruptible_tool_in_progress = lambda v: captured.append(v) |
| 70 | return ctx |
| 71 | |
| 72 | |
| 73 | def _allow_all(_tool, tool_input, _ctx, _msg, _tool_use_id): |
no test coverage detected