Problem
Connector failures throw bare status codes (no statusText/body), and aiChat never checks r.ok: a Groq 401 returns HTTP 200 with {reply: ""}.
Where
src/connectors.ts (`Shopify ${res.status}` etc.) + src/index.ts (aiChat, no r.ok check).
Acceptance
Add failing tests first with stubbed 429/401 upstreams, expecting errors naming the status text (or Groq error body) instead of a bare number or empty reply. Then fix.
Problem
Connector failures throw bare status codes (no statusText/body), and
aiChatnever checksr.ok: a Groq 401 returns HTTP 200 with{reply: ""}.Where
src/connectors.ts(`Shopify ${res.status}`etc.) +src/index.ts(aiChat, nor.okcheck).Acceptance
Add failing tests first with stubbed 429/401 upstreams, expecting errors naming the status text (or Groq error body) instead of a bare number or empty reply. Then fix.