{
  "schema_version": "pi-subagent.hook-contract.v1",
  "contract_id": "context-measure-abort-v1+tool-result-spill-v1",
  "guarantees": {
    "context_fires_before_every_model_call": true,
    "context_result_messages_reach_provider": true,
    "context_abort_blocks_provider_call": true,
    "context_abort_skips_stream_invocation": false,
    "context_abort_terminates_run": true,
    "context_throw_blocks_provider_call": false,
    "context_throw_isolated_to_throwing_handler": true,
    "tool_result_fires_before_transcript_entry": true,
    "tool_result_replacement_reaches_provider": true,
    "tool_result_replacement_preserves_identity": true,
    "tool_result_chains_in_load_order": true,
    "handlers_run_in_extension_load_order": true
  }
}
