Build the bundle first (npm run build:widget -> dist/widget.js),
replace app_replace_me below with your clone's app id, and serve this
folder over http (for example npx serve .). The launcher should appear
in the bottom-right corner.
The widget needs no server-side signing. It mints an anonymous visitor token
(stored in localStorage on this origin), sends it as
visitor_token to api.butterbase.ai/v1/<app_id>/fn/widget-*,
and opens a ticket when you send a message. With a real app id the ticket shows up
in your console inbox. Identity is client-supplied via
window.ButterSupport.identify() (not signature-verified).
Console helpers: ButterSupport.open(), .close(),
.toggle(), .reset().