{"name":"has_tools-present-matches","note":"A non-empty tools[] sets has_tools=true, so has_tools-rule matches.","request":{"model":"user.Conditions-Features","messages":[{"role":"user","content":"book me a flight"}],"tools":[{"type":"function","function":{"name":"get_weather","parameters":{"type":"object"}}}]},"decision":{"version":"1","route_to":"cloud","matched_rule":"has_tools-rule","default_used":false,"outputs":{}}}
{"name":"has_tools-absent-no-match","note":"No tools[] means has_tools=false, so has_tools-rule misses and it falls through to default.","request":{"model":"user.Conditions-Features","messages":[{"role":"user","content":"a plain prompt carrying no tools"}]},"decision":{"version":"1","route_to":"local","matched_rule":"","default_used":true,"outputs":{}}}
{"name":"has_tools-empty-array-no-match","note":"An empty tools[] keeps has_tools=false (build_route_context requires a non-empty array), so it falls through to default.","request":{"model":"user.Conditions-Features","messages":[{"role":"user","content":"a prompt with an empty tools list"}],"tools":[]},"decision":{"version":"1","route_to":"local","matched_rule":"","default_used":true,"outputs":{}}}
{"name":"has_images-present-matches","note":"An image_url content part sets has_images=true, so has_images-rule matches (has_tools-rule misses first).","request":{"model":"user.Conditions-Features","messages":[{"role":"user","content":[{"type":"text","text":"what is in this image?"},{"type":"image_url","image_url":{"url":"https://example.com/cat.png"}}]}]},"decision":{"version":"1","route_to":"cloud","matched_rule":"has_images-rule","default_used":false,"outputs":{}}}
{"name":"has_images-absent-no-match","note":"Text-only content means has_images=false, so has_images-rule misses and it falls through to default.","request":{"model":"user.Conditions-Features","messages":[{"role":"user","content":"a plain prompt carrying no images"}]},"decision":{"version":"1","route_to":"local","matched_rule":"","default_used":true,"outputs":{}}}
{"name":"has_images-input-image-part","note":"A Responses API request: the 'input' array carries a role-tagged item, and the input branch scans that item's content, so an input_image part sets has_images=true.","request":{"model":"user.Conditions-Features","input":[{"role":"user","content":[{"type":"input_text","text":"describe this picture"},{"type":"input_image","image_url":"https://example.com/cat.png"}]}]},"decision":{"version":"1","route_to":"cloud","matched_rule":"has_images-rule","default_used":false,"outputs":{}}}
{"name":"has_images-input-bare-image-part","note":"The other Responses API 'input' shape: bare content parts with no role wrapper. Each item is treated as its own content, so a top-level input_image part sets has_images=true.","request":{"model":"user.Conditions-Features","input":[{"type":"input_text","text":"describe this picture"},{"type":"input_image","image_url":"https://example.com/cat.png"}]},"decision":{"version":"1","route_to":"cloud","matched_rule":"has_images-rule","default_used":false,"outputs":{}}}
{"name":"has_images-earlier-turn-still-counts","note":"has_images scans every message: an image in an earlier turn sets has_images=true even when the last user turn (the routing input) is text-only.","request":{"model":"user.Conditions-Features","messages":[{"role":"user","content":[{"type":"text","text":"here is a picture"},{"type":"image_url","image_url":{"url":"https://example.com/cat.png"}}]},{"role":"user","content":"follow-up question with no image"}]},"decision":{"version":"1","route_to":"cloud","matched_rule":"has_images-rule","default_used":false,"outputs":{}}}
{"name":"has_tools-trace","note":"route_trace:true records the has_tools leaf under condition 'has_tools'.","request":{"model":"user.Conditions-Features","route_trace":true,"messages":[{"role":"user","content":"book me a flight"}],"tools":[{"type":"function","function":{"name":"get_weather","parameters":{"type":"object"}}}]},"decision":{"version":"1","route_to":"cloud","matched_rule":"has_tools-rule","default_used":false,"outputs":{},"trace":[{"condition":"has_tools","result":true}]}}
{"name":"has_images-trace","note":"has_tools-rule misses first (traced false), then has_images-rule matches under condition 'has_images'.","request":{"model":"user.Conditions-Features","route_trace":true,"messages":[{"role":"user","content":[{"type":"text","text":"what is in this image?"},{"type":"image_url","image_url":{"url":"https://example.com/cat.png"}}]}]},"decision":{"version":"1","route_to":"cloud","matched_rule":"has_images-rule","default_used":false,"outputs":{},"trace":[{"condition":"has_tools","result":false},{"condition":"has_images","result":true}]}}
