Wrappers become permanent subsets of provider APIs. Users need an escape hatch that's still typed. ## Evidence - \`tawk/tawk-messenger-react#42\` — "no login method" https://github.com/tawk/tawk-messenger-react/issues/42 - \`tawk/tawk-messenger-react#23\` — "Out of date" https://github.com/tawk/tawk-messenger-react/issues/23 - Pattern repeats across every wrapper over multi-year timelines ## Tasks - [ ] \`client.raw\` — typed reference to the underlying global (Intercom, \`\$crisp\`, \`Tawk_API\`, \`zE\`, \`HubSpotConversations\`, \`\$chatwoot\`, \`drift\`, \`fcWidget\`, \`LiveChatWidget\`, \`olark\`, \`messenger\`, \`Beacon\`, \`smartsupp\`, \`LiveAgent\`, \`gist\`, \`jivo_api\`, \`tidioChatApi\`) - [ ] Typed via ambient globals - [ ] Returns \`undefined\` before boot — users must \`await client.ready\`
Wrappers become permanent subsets of provider APIs. Users need an escape hatch that's still typed.
Evidence
Tasks