When is a number a phone?

#3894. The PII redactor in mcp-output-transform ran on every mcp__* result and read Chrome tab ids and x-read snowflakes as phone numbers. Both regexes below are the real ones; edit the payload and watch.

Try it

old PHONE_RE (before this PR)
new PHONE_RE (this PR)

The rule the new pattern encodes

InputOldNewWhy
1234567890redactedkeptbare digit run: no separator, no +, no parens. That is an id.
2095111234567890123tail redactedkeptlookbehind refuses a match that starts mid-run.
234-567-8901redactedredactedseparators between groups: a phone.
+1-234-567-8901redactedredactedleading +: a phone.
(234) 567-8901redactedredactedparenthesised area code: a phone.
123-456 in module 789keptkeptunder 10 digits, both patterns pass it (existing test).

Loss accepted on purpose: a phone typed as ten bare digits with no separator (2345678901) is no longer redacted. Every MCP server that returns numeric ids would otherwise be unusable through ork, which is the larger harm; the #3954 per-tool exemption env var remains the escape hatch for a server whose ids are genuinely phone-shaped.