MCPcopy Create free account
hub / github.com/Louisym/MiniCC / demo_hook_protocol

Function demo_hook_protocol

tutorials/15_permission_and_hook_pipeline.py:760–778  ·  view source on GitHub ↗

演示 Hook 的 exit code 协议

()

Source from the content-addressed store, hash-verified

758
759
760def demo_hook_protocol():
761 """演示 Hook 的 exit code 协议"""
762 print("\n" + "=" * 60)
763 print("Hook Exit Code 协议演示")
764 print("=" * 60)
765
766 # 创建不同行为的 Hook
767 scenarios = [
768 ("允许 (exit 0)", "printf 'hook says ok'; exit 0"),
769 ("拒绝 (exit 2)", "printf 'blocked by security policy'; exit 2"),
770 ("警告 (exit 1)", "printf 'suspicious but allowed'; exit 1"),
771 ]
772
773 for name, cmd in scenarios:
774 print(f"\n--- {name} ---")
775 runner = HookRunner(pre_tool_use_commands=[cmd])
776 result = runner.run_pre_tool_use("Bash", '{"command": "ls"}')
777 print(f" denied: {result.is_denied()}")
778 print(f" messages: {result.messages}")
779
780
781def demo_full_pipeline():

Calls 3

run_pre_tool_useMethod · 0.95
HookRunnerClass · 0.70
is_deniedMethod · 0.45

Tested by

no test coverage detected