{"name": "prompt-string-form","note": "The legacy completions API carries the user text in a `prompt` string rather than a `messages` list. This checks the router uses that string as the text it routes on: 'escalate' is present, and this policy sends requests containing 'escalate' to cloud.","request": {"model": "user.Input-Forms","prompt": "please escalate this request"},"decision": {"version": "1","route_to": "cloud","matched_rule": "escalate-rule","default_used": false,"outputs": {}}}
{"name": "prompt-array-form","note": "A `prompt` may also be a list of strings, which the router should join into one text. This policy routes to cloud only when the text holds both 'alpha' and 'omega' — one is in the first list item, the other in the second — so reaching cloud confirms every item was included (reading only the first item would drop 'omega' and it would stay local).","request": {"model": "user.Input-Forms","prompt": ["alpha at the start", "omega at the end"]},"decision": {"version": "1","route_to": "cloud","matched_rule": "alpha-omega-rule","default_used": false,"outputs": {}}}
{"name": "prompt-array-skips-non-string-parts","note": "A `prompt` list can contain non-text items (here an object); the router should ignore those and use only the strings. The object holds the word 'escalate', which this policy would route to cloud under a different rule if the object were turned into text. Because the request instead matches on 'alpha' + 'omega' (the two string items), the object was ignored, not read.","request": {"model": "user.Input-Forms","prompt": ["alpha here", {"escalate": "now"}, "omega there"]},"decision": {"version": "1","route_to": "cloud","matched_rule": "alpha-omega-rule","default_used": false,"outputs": {}}}
{"name": "input-string-form","note": "The Responses API can carry the user text as a plain `input` string. This checks the router uses that string as the text it routes on: 'escalate' is present, so it routes to cloud.","request": {"model": "user.Input-Forms","input": "please escalate this request"},"decision": {"version": "1","route_to": "cloud","matched_rule": "escalate-rule","default_used": false,"outputs": {}}}
{"name": "input-array-role-tagged","note": "An `input` may be a list of role-tagged messages; the router routes on the last user message's text. Here that text is an 'input_text' part (the Responses API spelling of a text part, handled like chat's 'text'), so 'escalate' routes to cloud.","request": {"model": "user.Input-Forms","input": [{"role": "user","content": [{"type": "input_text","text": "please escalate this request"}]}]},"decision": {"version": "1","route_to": "cloud","matched_rule": "escalate-rule","default_used": false,"outputs": {}}}
{"name": "input-roleless-fallback","note": "When an `input` list has no role-tagged user message, the router falls back to concatenating every plain-string item into one text. Both 'alpha' (first item) and 'omega' (second) must appear to reach cloud, so routing there confirms every item was concatenated — otherwise it would stay local.","request": {"model": "user.Input-Forms","input": ["alpha at the start", "omega at the end"]},"decision": {"version": "1","route_to": "cloud","matched_rule": "alpha-omega-rule","default_used": false,"outputs": {}}}
