Skip to content

Commit 7723266

Browse files
committed
full yapf
1 parent 3cf957b commit 7723266

14 files changed

Lines changed: 1045 additions & 927 deletions

tool_safety_audit.jsonl

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,3 +222,19 @@
222222
{"decision":"allow","duration_ms":0.09689992293715477,"event_id":"rep-00a4bc4e2d3d402e","execution_blocked":false,"invocation_id":null,"policy_hash":"03338ed458401e31581fd09a9e06bff71b5879507d726b2ec06c211e463ef74e","policy_version":"1","redacted":false,"report_id":"rep-00a4bc4e2d3d402e","risk_level":"info","rule_ids":["SAFE000"],"scanner_version":"1.0.0","script_sha256":"341090089fa3577721658a13e27663c1118f0fb27292642ae45b04527a260a14","timestamp":"2026-07-20T06:57:28.350743+00:00","tool_kind":"code_executor","tool_name":"code_executor"}
223223
{"decision":"allow","duration_ms":0.14009978622198105,"event_id":"rep-b4483b5895894681","execution_blocked":false,"invocation_id":null,"policy_hash":"03338ed458401e31581fd09a9e06bff71b5879507d726b2ec06c211e463ef74e","policy_version":"1","redacted":false,"report_id":"rep-b4483b5895894681","risk_level":"info","rule_ids":["SAFE000"],"scanner_version":"1.0.0","script_sha256":"2ef92795bc31e720bc036914049286af9d4fe27331000f56f4946e6c3d913125","timestamp":"2026-07-20T06:57:28.353633+00:00","tool_kind":"code_executor","tool_name":"code_executor"}
224224
{"decision":"needs_human_review","duration_ms":0.053799943998456,"event_id":"rep-1e45b352a9904aec","execution_blocked":true,"invocation_id":null,"policy_hash":"03338ed458401e31581fd09a9e06bff71b5879507d726b2ec06c211e463ef74e","policy_version":"1","redacted":false,"report_id":"rep-1e45b352a9904aec","risk_level":"medium","rule_ids":["PARSE001_UNCERTAIN"],"scanner_version":"1.0.0","script_sha256":"2d0df326f64548963122034a6a30ccfe652b1d218d3521f140f74b93eee1ceb4","timestamp":"2026-07-20T06:57:28.356831+00:00","tool_kind":"code_executor","tool_name":"code_executor"}
225+
{"decision":"allow","duration_ms":0.13489997945725918,"event_id":"rep-7e6ff6ec4ca240d0","execution_blocked":false,"invocation_id":null,"policy_hash":"03338ed458401e31581fd09a9e06bff71b5879507d726b2ec06c211e463ef74e","policy_version":"1","redacted":false,"report_id":"rep-7e6ff6ec4ca240d0","risk_level":"info","rule_ids":["SAFE000"],"scanner_version":"1.0.0","script_sha256":"c2d0a5e0790d97a015387a995c0d0b5eb3e88138466586fc980787c9b1731eb8","timestamp":"2026-07-20T07:33:51.257412+00:00","tool_kind":"unknown","tool_name":"python_exec"}
226+
{"decision":"deny","duration_ms":0.19890000112354755,"event_id":"rep-b3dd8bbc6bba4b2a","execution_blocked":true,"invocation_id":null,"policy_hash":"03338ed458401e31581fd09a9e06bff71b5879507d726b2ec06c211e463ef74e","policy_version":"1","redacted":false,"report_id":"rep-b3dd8bbc6bba4b2a","risk_level":"critical","rule_ids":["FILE001_RECURSIVE_DELETE"],"scanner_version":"1.0.0","script_sha256":"cbc0cc95be768f418357389bee8ce9c449c3b6929071b186cbd021d62444ddcc","timestamp":"2026-07-20T07:33:51.261710+00:00","tool_kind":"unknown","tool_name":"python_exec"}
227+
{"decision":"allow","duration_ms":0.1439000479876995,"event_id":"rep-1f228675d3d94da5","execution_blocked":false,"invocation_id":null,"policy_hash":"03338ed458401e31581fd09a9e06bff71b5879507d726b2ec06c211e463ef74e","policy_version":"1","redacted":false,"report_id":"rep-1f228675d3d94da5","risk_level":"info","rule_ids":["SAFE000"],"scanner_version":"1.0.0","script_sha256":"c2d0a5e0790d97a015387a995c0d0b5eb3e88138466586fc980787c9b1731eb8","timestamp":"2026-07-20T07:33:51.279513+00:00","tool_kind":"unknown","tool_name":"python_exec"}
228+
{"decision":"allow","duration_ms":0.07519987411797047,"event_id":"rep-8b4fb9e90d194c9a","execution_blocked":false,"invocation_id":null,"policy_hash":"03338ed458401e31581fd09a9e06bff71b5879507d726b2ec06c211e463ef74e","policy_version":"1","redacted":false,"report_id":"rep-8b4fb9e90d194c9a","risk_level":"info","rule_ids":["SAFE000"],"scanner_version":"1.0.0","script_sha256":"56a79f3b115448072387c2480044bfa2cf8f90e4f5fddd8c943b4e051b81f80b","timestamp":"2026-07-20T07:33:51.283135+00:00","tool_kind":"unknown","tool_name":"bash_exec"}
229+
{"decision":"allow","duration_ms":0.013999873772263527,"event_id":"rep-a2dc598744c5424a","execution_blocked":false,"invocation_id":null,"policy_hash":"03338ed458401e31581fd09a9e06bff71b5879507d726b2ec06c211e463ef74e","policy_version":"1","redacted":false,"report_id":"rep-a2dc598744c5424a","risk_level":"info","rule_ids":["SAFE000"],"scanner_version":"1.0.0","script_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","timestamp":"2026-07-20T07:33:51.285785+00:00","tool_kind":"unknown","tool_name":"python_exec"}
230+
{"decision":"allow","duration_ms":0.013499986380338669,"event_id":"rep-d777a51cd8f5413e","execution_blocked":false,"invocation_id":null,"policy_hash":"03338ed458401e31581fd09a9e06bff71b5879507d726b2ec06c211e463ef74e","policy_version":"1","redacted":false,"report_id":"rep-d777a51cd8f5413e","risk_level":"info","rule_ids":["SAFE000"],"scanner_version":"1.0.0","script_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","timestamp":"2026-07-20T07:33:51.288408+00:00","tool_kind":"unknown","tool_name":"python_exec"}
231+
{"decision":"allow","duration_ms":0.1401999033987522,"event_id":"rep-32afa85ea30b4e2d","execution_blocked":false,"invocation_id":null,"policy_hash":"03338ed458401e31581fd09a9e06bff71b5879507d726b2ec06c211e463ef74e","policy_version":"1","redacted":false,"report_id":"rep-32afa85ea30b4e2d","risk_level":"info","rule_ids":["SAFE000"],"scanner_version":"1.0.0","script_sha256":"c2d0a5e0790d97a015387a995c0d0b5eb3e88138466586fc980787c9b1731eb8","timestamp":"2026-07-20T07:33:51.291169+00:00","tool_kind":"unknown","tool_name":"python_exec"}
232+
{"decision":"deny","duration_ms":0.1827001105993986,"event_id":"rep-0597d21195c2455e","execution_blocked":true,"invocation_id":null,"policy_hash":"03338ed458401e31581fd09a9e06bff71b5879507d726b2ec06c211e463ef74e","policy_version":"1","redacted":false,"report_id":"rep-0597d21195c2455e","risk_level":"critical","rule_ids":["FILE001_RECURSIVE_DELETE"],"scanner_version":"1.0.0","script_sha256":"cbc0cc95be768f418357389bee8ce9c449c3b6929071b186cbd021d62444ddcc","timestamp":"2026-07-20T07:33:51.294328+00:00","tool_kind":"unknown","tool_name":"python_exec"}
233+
{"decision":"allow","duration_ms":0.11230004020035267,"event_id":"rep-9d22c2ca417b481a","execution_blocked":false,"invocation_id":null,"policy_hash":"03338ed458401e31581fd09a9e06bff71b5879507d726b2ec06c211e463ef74e","policy_version":"1","redacted":false,"report_id":"rep-9d22c2ca417b481a","risk_level":"info","rule_ids":["SAFE000"],"scanner_version":"1.0.0","script_sha256":"c2d0a5e0790d97a015387a995c0d0b5eb3e88138466586fc980787c9b1731eb8","timestamp":"2026-07-20T07:33:51.297240+00:00","tool_kind":"unknown","tool_name":"python_exec"}
234+
{"decision":"allow","duration_ms":0.08979998528957367,"event_id":"rep-67b07eadc90e4f1e","execution_blocked":false,"invocation_id":null,"policy_hash":"03338ed458401e31581fd09a9e06bff71b5879507d726b2ec06c211e463ef74e","policy_version":"1","redacted":false,"report_id":"rep-67b07eadc90e4f1e","risk_level":"info","rule_ids":["SAFE000"],"scanner_version":"1.0.0","script_sha256":"c7b68ac37f364473e922936708e7f43c293dd07b295171566c07ff5fe024fab9","timestamp":"2026-07-20T07:33:51.300617+00:00","tool_kind":"unknown","tool_name":"bash_exec"}
235+
{"decision":"allow","duration_ms":0.11319993063807487,"event_id":"rep-a27d66be503c4e03","execution_blocked":false,"invocation_id":null,"policy_hash":"03338ed458401e31581fd09a9e06bff71b5879507d726b2ec06c211e463ef74e","policy_version":"1","redacted":false,"report_id":"rep-a27d66be503c4e03","risk_level":"info","rule_ids":["SAFE000"],"scanner_version":"1.0.0","script_sha256":"341090089fa3577721658a13e27663c1118f0fb27292642ae45b04527a260a14","timestamp":"2026-07-20T07:33:51.305676+00:00","tool_kind":"code_executor","tool_name":"code_executor"}
236+
{"decision":"deny","duration_ms":0.21229987032711506,"event_id":"rep-d80b46c54dd0431f","execution_blocked":true,"invocation_id":null,"policy_hash":"03338ed458401e31581fd09a9e06bff71b5879507d726b2ec06c211e463ef74e","policy_version":"1","redacted":false,"report_id":"rep-d80b46c54dd0431f","risk_level":"critical","rule_ids":["FILE001_RECURSIVE_DELETE"],"scanner_version":"1.0.0","script_sha256":"933156b5b3c085218d9d94986576424de9153bf6b6e29a8636c93150a02ec88b","timestamp":"2026-07-20T07:33:51.310023+00:00","tool_kind":"code_executor","tool_name":"code_executor"}
237+
{"decision":"allow","duration_ms":0.112100038677454,"event_id":"rep-d7a9fa2345c949b4","execution_blocked":false,"invocation_id":null,"policy_hash":"5a73b26a5c33d22721742bbd8b64921d94769832d36c932a3e6b212c1aeb3fdd","policy_version":"1","redacted":false,"report_id":"rep-d7a9fa2345c949b4","risk_level":"info","rule_ids":["SAFE000"],"scanner_version":"1.0.0","script_sha256":"341090089fa3577721658a13e27663c1118f0fb27292642ae45b04527a260a14","timestamp":"2026-07-20T07:33:51.314296+00:00","tool_kind":"code_executor","tool_name":"code_executor"}
238+
{"decision":"allow","duration_ms":0.10469998233020306,"event_id":"rep-3d79cafad86b46d7","execution_blocked":false,"invocation_id":null,"policy_hash":"03338ed458401e31581fd09a9e06bff71b5879507d726b2ec06c211e463ef74e","policy_version":"1","redacted":false,"report_id":"rep-3d79cafad86b46d7","risk_level":"info","rule_ids":["SAFE000"],"scanner_version":"1.0.0","script_sha256":"341090089fa3577721658a13e27663c1118f0fb27292642ae45b04527a260a14","timestamp":"2026-07-20T07:33:51.317759+00:00","tool_kind":"code_executor","tool_name":"code_executor"}
239+
{"decision":"allow","duration_ms":0.15690014697611332,"event_id":"rep-a85b59c574964da4","execution_blocked":false,"invocation_id":null,"policy_hash":"03338ed458401e31581fd09a9e06bff71b5879507d726b2ec06c211e463ef74e","policy_version":"1","redacted":false,"report_id":"rep-a85b59c574964da4","risk_level":"info","rule_ids":["SAFE000"],"scanner_version":"1.0.0","script_sha256":"2ef92795bc31e720bc036914049286af9d4fe27331000f56f4946e6c3d913125","timestamp":"2026-07-20T07:33:51.320876+00:00","tool_kind":"code_executor","tool_name":"code_executor"}
240+
{"decision":"needs_human_review","duration_ms":0.05179992876946926,"event_id":"rep-d3452410fad34591","execution_blocked":true,"invocation_id":null,"policy_hash":"03338ed458401e31581fd09a9e06bff71b5879507d726b2ec06c211e463ef74e","policy_version":"1","redacted":false,"report_id":"rep-d3452410fad34591","risk_level":"medium","rule_ids":["PARSE001_UNCERTAIN"],"scanner_version":"1.0.0","script_sha256":"2d0df326f64548963122034a6a30ccfe652b1d218d3521f140f74b93eee1ceb4","timestamp":"2026-07-20T07:33:51.323761+00:00","tool_kind":"code_executor","tool_name":"code_executor"}

trpc_agent_sdk/tools/safety/_audit.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@
2525
class AuditSink(Protocol):
2626
"""Async protocol. ``emit`` must not raise except for audit errors."""
2727

28-
async def emit(self, event: SafetyAuditEvent) -> None: ...
28+
async def emit(self, event: SafetyAuditEvent) -> None:
29+
...
2930

3031

3132
class InMemoryAuditSink:
@@ -68,15 +69,15 @@ def __init__(self, path: str | os.PathLike[str]) -> None:
6869

6970
async def emit(self, event: SafetyAuditEvent) -> None:
7071
payload = json.dumps(
71-
event.model_dump(mode="json"), sort_keys=True,
72-
separators=(",", ":"), ensure_ascii=False,
72+
event.model_dump(mode="json"),
73+
sort_keys=True,
74+
separators=(",", ":"),
75+
ensure_ascii=False,
7376
) + "\n"
7477
try:
7578
await asyncio.to_thread(self._write, payload)
7679
except OSError as exc:
77-
raise SafetyAuditError(
78-
f"failed to write audit event to {self._path}: {exc}"
79-
) from exc
80+
raise SafetyAuditError(f"failed to write audit event to {self._path}: {exc}") from exc
8081

8182
def _write(self, payload: str) -> None:
8283
with self._thread_lock:

0 commit comments

Comments
 (0)