@vendoai/ui 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +202 -0
- package/README.md +7 -0
- package/dist/chrome/activity-ledger.d.ts +14 -0
- package/dist/chrome/activity-ledger.d.ts.map +1 -0
- package/dist/chrome/activity-ledger.js +40 -0
- package/dist/chrome/activity-ledger.js.map +1 -0
- package/dist/chrome/activity-panel.d.ts +7 -0
- package/dist/chrome/activity-panel.d.ts.map +1 -0
- package/dist/chrome/activity-panel.js +27 -0
- package/dist/chrome/activity-panel.js.map +1 -0
- package/dist/chrome/activity-semantics.d.ts +42 -0
- package/dist/chrome/activity-semantics.d.ts.map +1 -0
- package/dist/chrome/activity-semantics.js +119 -0
- package/dist/chrome/activity-semantics.js.map +1 -0
- package/dist/chrome/approval-card.d.ts +22 -0
- package/dist/chrome/approval-card.d.ts.map +1 -0
- package/dist/chrome/approval-card.js +95 -0
- package/dist/chrome/approval-card.js.map +1 -0
- package/dist/chrome/approval-sheet.d.ts +23 -0
- package/dist/chrome/approval-sheet.d.ts.map +1 -0
- package/dist/chrome/approval-sheet.js +72 -0
- package/dist/chrome/approval-sheet.js.map +1 -0
- package/dist/chrome/automations-panel.d.ts +3 -0
- package/dist/chrome/automations-panel.d.ts.map +1 -0
- package/dist/chrome/automations-panel.js +305 -0
- package/dist/chrome/automations-panel.js.map +1 -0
- package/dist/chrome/build-beat.d.ts +70 -0
- package/dist/chrome/build-beat.d.ts.map +1 -0
- package/dist/chrome/build-beat.js +101 -0
- package/dist/chrome/build-beat.js.map +1 -0
- package/dist/chrome/chrome-css.d.ts +7 -0
- package/dist/chrome/chrome-css.d.ts.map +1 -0
- package/dist/chrome/chrome-css.js +2042 -0
- package/dist/chrome/chrome-css.js.map +1 -0
- package/dist/chrome/chrome-root.d.ts +13 -0
- package/dist/chrome/chrome-root.d.ts.map +1 -0
- package/dist/chrome/chrome-root.js +39 -0
- package/dist/chrome/chrome-root.js.map +1 -0
- package/dist/chrome/clipboard.d.ts +4 -0
- package/dist/chrome/clipboard.d.ts.map +1 -0
- package/dist/chrome/clipboard.js +49 -0
- package/dist/chrome/clipboard.js.map +1 -0
- package/dist/chrome/connect-card.d.ts +19 -0
- package/dist/chrome/connect-card.d.ts.map +1 -0
- package/dist/chrome/connect-card.js +57 -0
- package/dist/chrome/connect-card.js.map +1 -0
- package/dist/chrome/connect-dock.d.ts +25 -0
- package/dist/chrome/connect-dock.d.ts.map +1 -0
- package/dist/chrome/connect-dock.js +192 -0
- package/dist/chrome/connect-dock.js.map +1 -0
- package/dist/chrome/connected-accounts-panel.d.ts +14 -0
- package/dist/chrome/connected-accounts-panel.d.ts.map +1 -0
- package/dist/chrome/connected-accounts-panel.js +157 -0
- package/dist/chrome/connected-accounts-panel.js.map +1 -0
- package/dist/chrome/dev-mode.d.ts +5 -0
- package/dist/chrome/dev-mode.d.ts.map +1 -0
- package/dist/chrome/dev-mode.js +7 -0
- package/dist/chrome/dev-mode.js.map +1 -0
- package/dist/chrome/discoverability.d.ts +33 -0
- package/dist/chrome/discoverability.d.ts.map +1 -0
- package/dist/chrome/discoverability.js +63 -0
- package/dist/chrome/discoverability.js.map +1 -0
- package/dist/chrome/embeds.d.ts +21 -0
- package/dist/chrome/embeds.d.ts.map +1 -0
- package/dist/chrome/embeds.js +181 -0
- package/dist/chrome/embeds.js.map +1 -0
- package/dist/chrome/fluid-thinking.d.ts +15 -0
- package/dist/chrome/fluid-thinking.d.ts.map +1 -0
- package/dist/chrome/fluid-thinking.js +37 -0
- package/dist/chrome/fluid-thinking.js.map +1 -0
- package/dist/chrome/humanize.d.ts +46 -0
- package/dist/chrome/humanize.d.ts.map +1 -0
- package/dist/chrome/humanize.js +104 -0
- package/dist/chrome/humanize.js.map +1 -0
- package/dist/chrome/index.d.ts +39 -0
- package/dist/chrome/index.d.ts.map +1 -0
- package/dist/chrome/index.js +38 -0
- package/dist/chrome/index.js.map +1 -0
- package/dist/chrome/markdown.d.ts +23 -0
- package/dist/chrome/markdown.d.ts.map +1 -0
- package/dist/chrome/markdown.js +149 -0
- package/dist/chrome/markdown.js.map +1 -0
- package/dist/chrome/morph-toast.d.ts +43 -0
- package/dist/chrome/morph-toast.d.ts.map +1 -0
- package/dist/chrome/morph-toast.js +89 -0
- package/dist/chrome/morph-toast.js.map +1 -0
- package/dist/chrome/no-policy-notice.d.ts +8 -0
- package/dist/chrome/no-policy-notice.d.ts.map +1 -0
- package/dist/chrome/no-policy-notice.js +18 -0
- package/dist/chrome/no-policy-notice.js.map +1 -0
- package/dist/chrome/onest-font.gen.d.ts +10 -0
- package/dist/chrome/onest-font.gen.d.ts.map +1 -0
- package/dist/chrome/onest-font.gen.js +10 -0
- package/dist/chrome/onest-font.gen.js.map +1 -0
- package/dist/chrome/overlay-registry.d.ts +66 -0
- package/dist/chrome/overlay-registry.d.ts.map +1 -0
- package/dist/chrome/overlay-registry.js +103 -0
- package/dist/chrome/overlay-registry.js.map +1 -0
- package/dist/chrome/palette-hotkey.d.ts +42 -0
- package/dist/chrome/palette-hotkey.d.ts.map +1 -0
- package/dist/chrome/palette-hotkey.js +91 -0
- package/dist/chrome/palette-hotkey.js.map +1 -0
- package/dist/chrome/policy-notice-body.d.ts +3 -0
- package/dist/chrome/policy-notice-body.d.ts.map +1 -0
- package/dist/chrome/policy-notice-body.js +6 -0
- package/dist/chrome/policy-notice-body.js.map +1 -0
- package/dist/chrome/takeover-portal.d.ts +16 -0
- package/dist/chrome/takeover-portal.d.ts.map +1 -0
- package/dist/chrome/takeover-portal.js +21 -0
- package/dist/chrome/takeover-portal.js.map +1 -0
- package/dist/chrome/thread/attachments.d.ts +24 -0
- package/dist/chrome/thread/attachments.d.ts.map +1 -0
- package/dist/chrome/thread/attachments.js +50 -0
- package/dist/chrome/thread/attachments.js.map +1 -0
- package/dist/chrome/thread/composer.d.ts +63 -0
- package/dist/chrome/thread/composer.d.ts.map +1 -0
- package/dist/chrome/thread/composer.js +259 -0
- package/dist/chrome/thread/composer.js.map +1 -0
- package/dist/chrome/thread/index.d.ts +41 -0
- package/dist/chrome/thread/index.d.ts.map +1 -0
- package/dist/chrome/thread/index.js +258 -0
- package/dist/chrome/thread/index.js.map +1 -0
- package/dist/chrome/thread/message-data.d.ts +35 -0
- package/dist/chrome/thread/message-data.d.ts.map +1 -0
- package/dist/chrome/thread/message-data.js +127 -0
- package/dist/chrome/thread/message-data.js.map +1 -0
- package/dist/chrome/thread/message-list.d.ts +30 -0
- package/dist/chrome/thread/message-list.d.ts.map +1 -0
- package/dist/chrome/thread/message-list.js +11 -0
- package/dist/chrome/thread/message-list.js.map +1 -0
- package/dist/chrome/thread/message.d.ts +18 -0
- package/dist/chrome/thread/message.d.ts.map +1 -0
- package/dist/chrome/thread/message.js +57 -0
- package/dist/chrome/thread/message.js.map +1 -0
- package/dist/chrome/thread/parts.d.ts +53 -0
- package/dist/chrome/thread/parts.d.ts.map +1 -0
- package/dist/chrome/thread/parts.js +184 -0
- package/dist/chrome/thread/parts.js.map +1 -0
- package/dist/chrome/thread/scrolling.d.ts +26 -0
- package/dist/chrome/thread/scrolling.d.ts.map +1 -0
- package/dist/chrome/thread/scrolling.js +214 -0
- package/dist/chrome/thread/scrolling.js.map +1 -0
- package/dist/chrome/truncate.d.ts +12 -0
- package/dist/chrome/truncate.d.ts.map +1 -0
- package/dist/chrome/truncate.js +18 -0
- package/dist/chrome/truncate.js.map +1 -0
- package/dist/chrome/vendo-activities.d.ts +24 -0
- package/dist/chrome/vendo-activities.d.ts.map +1 -0
- package/dist/chrome/vendo-activities.js +38 -0
- package/dist/chrome/vendo-activities.js.map +1 -0
- package/dist/chrome/vendo-overlay.d.ts +63 -0
- package/dist/chrome/vendo-overlay.d.ts.map +1 -0
- package/dist/chrome/vendo-overlay.js +256 -0
- package/dist/chrome/vendo-overlay.js.map +1 -0
- package/dist/chrome/vendo-page.d.ts +3 -0
- package/dist/chrome/vendo-page.d.ts.map +1 -0
- package/dist/chrome/vendo-page.js +162 -0
- package/dist/chrome/vendo-page.js.map +1 -0
- package/dist/chrome/vendo-palette.d.ts +29 -0
- package/dist/chrome/vendo-palette.d.ts.map +1 -0
- package/dist/chrome/vendo-palette.js +95 -0
- package/dist/chrome/vendo-palette.js.map +1 -0
- package/dist/chrome/vendo-slot.d.ts +79 -0
- package/dist/chrome/vendo-slot.d.ts.map +1 -0
- package/dist/chrome/vendo-slot.js +153 -0
- package/dist/chrome/vendo-slot.js.map +1 -0
- package/dist/chrome/vendo-toasts.d.ts +40 -0
- package/dist/chrome/vendo-toasts.d.ts.map +1 -0
- package/dist/chrome/vendo-toasts.js +135 -0
- package/dist/chrome/vendo-toasts.js.map +1 -0
- package/dist/chrome/vendo-trigger.d.ts +24 -0
- package/dist/chrome/vendo-trigger.d.ts.map +1 -0
- package/dist/chrome/vendo-trigger.js +30 -0
- package/dist/chrome/vendo-trigger.js.map +1 -0
- package/dist/chrome/waiting-queue.d.ts +8 -0
- package/dist/chrome/waiting-queue.d.ts.map +1 -0
- package/dist/chrome/waiting-queue.js +21 -0
- package/dist/chrome/waiting-queue.js.map +1 -0
- package/dist/client-impl.d.ts +4 -0
- package/dist/client-impl.d.ts.map +1 -0
- package/dist/client-impl.js +160 -0
- package/dist/client-impl.js.map +1 -0
- package/dist/client.d.ts +136 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +2 -0
- package/dist/client.js.map +1 -0
- package/dist/context.d.ts +97 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +71 -0
- package/dist/context.js.map +1 -0
- package/dist/eject-templates/activities/index.tsx +113 -0
- package/dist/eject-templates/templates.json +29 -0
- package/dist/eject-templates/thread/attachments.tsx +69 -0
- package/dist/eject-templates/thread/composer.tsx +409 -0
- package/dist/eject-templates/thread/index.tsx +422 -0
- package/dist/eject-templates/thread/message-data.ts +151 -0
- package/dist/eject-templates/thread/message-list.tsx +123 -0
- package/dist/eject-templates/thread/message.tsx +149 -0
- package/dist/eject-templates/thread/parts.tsx +293 -0
- package/dist/eject-templates/thread/scrolling.ts +223 -0
- package/dist/embeds.d.ts +28 -0
- package/dist/embeds.d.ts.map +1 -0
- package/dist/embeds.js +2 -0
- package/dist/embeds.js.map +1 -0
- package/dist/hooks/index.d.ts +18 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +19 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/scripted-transport.d.ts +44 -0
- package/dist/hooks/scripted-transport.d.ts.map +1 -0
- package/dist/hooks/scripted-transport.js +58 -0
- package/dist/hooks/scripted-transport.js.map +1 -0
- package/dist/hooks/use-activity.d.ts +17 -0
- package/dist/hooks/use-activity.d.ts.map +1 -0
- package/dist/hooks/use-activity.js +50 -0
- package/dist/hooks/use-activity.js.map +1 -0
- package/dist/hooks/use-app.d.ts +19 -0
- package/dist/hooks/use-app.d.ts.map +1 -0
- package/dist/hooks/use-app.js +66 -0
- package/dist/hooks/use-app.js.map +1 -0
- package/dist/hooks/use-approvals.d.ts +13 -0
- package/dist/hooks/use-approvals.d.ts.map +1 -0
- package/dist/hooks/use-approvals.js +14 -0
- package/dist/hooks/use-approvals.js.map +1 -0
- package/dist/hooks/use-apps.d.ts +17 -0
- package/dist/hooks/use-apps.d.ts.map +1 -0
- package/dist/hooks/use-apps.js +30 -0
- package/dist/hooks/use-apps.js.map +1 -0
- package/dist/hooks/use-automations.d.ts +25 -0
- package/dist/hooks/use-automations.d.ts.map +1 -0
- package/dist/hooks/use-automations.js +30 -0
- package/dist/hooks/use-automations.js.map +1 -0
- package/dist/hooks/use-connections.d.ts +12 -0
- package/dist/hooks/use-connections.d.ts.map +1 -0
- package/dist/hooks/use-connections.js +15 -0
- package/dist/hooks/use-connections.js.map +1 -0
- package/dist/hooks/use-connector-catalog.d.ts +8 -0
- package/dist/hooks/use-connector-catalog.d.ts.map +1 -0
- package/dist/hooks/use-connector-catalog.js +52 -0
- package/dist/hooks/use-connector-catalog.js.map +1 -0
- package/dist/hooks/use-grants.d.ts +13 -0
- package/dist/hooks/use-grants.d.ts.map +1 -0
- package/dist/hooks/use-grants.js +14 -0
- package/dist/hooks/use-grants.js.map +1 -0
- package/dist/hooks/use-mobile-takeover.d.ts +22 -0
- package/dist/hooks/use-mobile-takeover.d.ts.map +1 -0
- package/dist/hooks/use-mobile-takeover.js +66 -0
- package/dist/hooks/use-mobile-takeover.js.map +1 -0
- package/dist/hooks/use-resource.d.ts +21 -0
- package/dist/hooks/use-resource.d.ts.map +1 -0
- package/dist/hooks/use-resource.js +79 -0
- package/dist/hooks/use-resource.js.map +1 -0
- package/dist/hooks/use-slot-app.d.ts +19 -0
- package/dist/hooks/use-slot-app.d.ts.map +1 -0
- package/dist/hooks/use-slot-app.js +18 -0
- package/dist/hooks/use-slot-app.js.map +1 -0
- package/dist/hooks/use-threads.d.ts +16 -0
- package/dist/hooks/use-threads.d.ts.map +1 -0
- package/dist/hooks/use-threads.js +15 -0
- package/dist/hooks/use-threads.js.map +1 -0
- package/dist/hooks/use-vendo-overlay.d.ts +31 -0
- package/dist/hooks/use-vendo-overlay.d.ts.map +1 -0
- package/dist/hooks/use-vendo-overlay.js +23 -0
- package/dist/hooks/use-vendo-overlay.js.map +1 -0
- package/dist/hooks/use-vendo-status.d.ts +6 -0
- package/dist/hooks/use-vendo-status.d.ts.map +1 -0
- package/dist/hooks/use-vendo-status.js +28 -0
- package/dist/hooks/use-vendo-status.js.map +1 -0
- package/dist/hooks/use-vendo-thread.d.ts +39 -0
- package/dist/hooks/use-vendo-thread.d.ts.map +1 -0
- package/dist/hooks/use-vendo-thread.js +185 -0
- package/dist/hooks/use-vendo-thread.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/kit/charts/bar.d.ts +16 -0
- package/dist/kit/charts/bar.d.ts.map +1 -0
- package/dist/kit/charts/bar.js +21 -0
- package/dist/kit/charts/bar.js.map +1 -0
- package/dist/kit/charts/donut.d.ts +16 -0
- package/dist/kit/charts/donut.d.ts.map +1 -0
- package/dist/kit/charts/donut.js +17 -0
- package/dist/kit/charts/donut.js.map +1 -0
- package/dist/kit/charts/line.d.ts +19 -0
- package/dist/kit/charts/line.d.ts.map +1 -0
- package/dist/kit/charts/line.js +21 -0
- package/dist/kit/charts/line.js.map +1 -0
- package/dist/kit/charts/progress.d.ts +12 -0
- package/dist/kit/charts/progress.d.ts.map +1 -0
- package/dist/kit/charts/progress.js +25 -0
- package/dist/kit/charts/progress.js.map +1 -0
- package/dist/kit/charts/sanitize.d.ts +24 -0
- package/dist/kit/charts/sanitize.d.ts.map +1 -0
- package/dist/kit/charts/sanitize.js +50 -0
- package/dist/kit/charts/sanitize.js.map +1 -0
- package/dist/kit/charts/sparkline.d.ts +11 -0
- package/dist/kit/charts/sparkline.d.ts.map +1 -0
- package/dist/kit/charts/sparkline.js +17 -0
- package/dist/kit/charts/sparkline.js.map +1 -0
- package/dist/kit/data/badge.d.ts +13 -0
- package/dist/kit/data/badge.d.ts.map +1 -0
- package/dist/kit/data/badge.js +12 -0
- package/dist/kit/data/badge.js.map +1 -0
- package/dist/kit/data/card-list.d.ts +23 -0
- package/dist/kit/data/card-list.d.ts.map +1 -0
- package/dist/kit/data/card-list.js +43 -0
- package/dist/kit/data/card-list.js.map +1 -0
- package/dist/kit/data/data-table.d.ts +32 -0
- package/dist/kit/data/data-table.d.ts.map +1 -0
- package/dist/kit/data/data-table.js +153 -0
- package/dist/kit/data/data-table.js.map +1 -0
- package/dist/kit/data/stat.d.ts +15 -0
- package/dist/kit/data/stat.d.ts.map +1 -0
- package/dist/kit/data/stat.js +28 -0
- package/dist/kit/data/stat.js.map +1 -0
- package/dist/kit/feedback/accordion.d.ts +15 -0
- package/dist/kit/feedback/accordion.d.ts.map +1 -0
- package/dist/kit/feedback/accordion.js +33 -0
- package/dist/kit/feedback/accordion.js.map +1 -0
- package/dist/kit/feedback/callout.d.ts +13 -0
- package/dist/kit/feedback/callout.d.ts.map +1 -0
- package/dist/kit/feedback/callout.js +24 -0
- package/dist/kit/feedback/callout.js.map +1 -0
- package/dist/kit/feedback/tabs.d.ts +14 -0
- package/dist/kit/feedback/tabs.d.ts.map +1 -0
- package/dist/kit/feedback/tabs.js +37 -0
- package/dist/kit/feedback/tabs.js.map +1 -0
- package/dist/kit/format.d.ts +60 -0
- package/dist/kit/format.d.ts.map +1 -0
- package/dist/kit/format.js +123 -0
- package/dist/kit/format.js.map +1 -0
- package/dist/kit/forms/button.d.ts +17 -0
- package/dist/kit/forms/button.d.ts.map +1 -0
- package/dist/kit/forms/button.js +33 -0
- package/dist/kit/forms/button.js.map +1 -0
- package/dist/kit/forms/checkbox.d.ts +9 -0
- package/dist/kit/forms/checkbox.d.ts.map +1 -0
- package/dist/kit/forms/checkbox.js +9 -0
- package/dist/kit/forms/checkbox.js.map +1 -0
- package/dist/kit/forms/date-picker.d.ts +13 -0
- package/dist/kit/forms/date-picker.d.ts.map +1 -0
- package/dist/kit/forms/date-picker.js +9 -0
- package/dist/kit/forms/date-picker.js.map +1 -0
- package/dist/kit/forms/disclaimer.d.ts +8 -0
- package/dist/kit/forms/disclaimer.d.ts.map +1 -0
- package/dist/kit/forms/disclaimer.js +20 -0
- package/dist/kit/forms/disclaimer.js.map +1 -0
- package/dist/kit/forms/field.d.ts +18 -0
- package/dist/kit/forms/field.d.ts.map +1 -0
- package/dist/kit/forms/field.js +19 -0
- package/dist/kit/forms/field.js.map +1 -0
- package/dist/kit/forms/form.d.ts +10 -0
- package/dist/kit/forms/form.d.ts.map +1 -0
- package/dist/kit/forms/form.js +9 -0
- package/dist/kit/forms/form.js.map +1 -0
- package/dist/kit/forms/input.d.ts +14 -0
- package/dist/kit/forms/input.d.ts.map +1 -0
- package/dist/kit/forms/input.js +9 -0
- package/dist/kit/forms/input.js.map +1 -0
- package/dist/kit/forms/select.d.ts +21 -0
- package/dist/kit/forms/select.d.ts.map +1 -0
- package/dist/kit/forms/select.js +35 -0
- package/dist/kit/forms/select.js.map +1 -0
- package/dist/kit/forms/textarea.d.ts +12 -0
- package/dist/kit/forms/textarea.d.ts.map +1 -0
- package/dist/kit/forms/textarea.js +9 -0
- package/dist/kit/forms/textarea.js.map +1 -0
- package/dist/kit/index.d.ts +42 -0
- package/dist/kit/index.d.ts.map +1 -0
- package/dist/kit/index.js +45 -0
- package/dist/kit/index.js.map +1 -0
- package/dist/kit/kit-prompt.d.ts +7 -0
- package/dist/kit/kit-prompt.d.ts.map +1 -0
- package/dist/kit/kit-prompt.js +7 -0
- package/dist/kit/kit-prompt.js.map +1 -0
- package/dist/kit/layout.d.ts +29 -0
- package/dist/kit/layout.d.ts.map +1 -0
- package/dist/kit/layout.js +64 -0
- package/dist/kit/layout.js.map +1 -0
- package/dist/kit/registry.d.ts +11 -0
- package/dist/kit/registry.d.ts.map +1 -0
- package/dist/kit/registry.js +34 -0
- package/dist/kit/registry.js.map +1 -0
- package/dist/kit/schema.d.ts +9 -0
- package/dist/kit/schema.d.ts.map +1 -0
- package/dist/kit/schema.js +9 -0
- package/dist/kit/schema.js.map +1 -0
- package/dist/kit/tokens.d.ts +33 -0
- package/dist/kit/tokens.d.ts.map +1 -0
- package/dist/kit/tokens.js +48 -0
- package/dist/kit/tokens.js.map +1 -0
- package/dist/kit/values.d.ts +55 -0
- package/dist/kit/values.d.ts.map +1 -0
- package/dist/kit/values.js +108 -0
- package/dist/kit/values.js.map +1 -0
- package/dist/theme.d.ts +25 -0
- package/dist/theme.d.ts.map +1 -0
- package/dist/theme.js +100 -0
- package/dist/theme.js.map +1 -0
- package/dist/tree/bindings.d.ts +4 -0
- package/dist/tree/bindings.d.ts.map +1 -0
- package/dist/tree/bindings.js +20 -0
- package/dist/tree/bindings.js.map +1 -0
- package/dist/tree/branded.d.ts +124 -0
- package/dist/tree/branded.d.ts.map +1 -0
- package/dist/tree/branded.js +319 -0
- package/dist/tree/branded.js.map +1 -0
- package/dist/tree/error-boundary.d.ts +22 -0
- package/dist/tree/error-boundary.d.ts.map +1 -0
- package/dist/tree/error-boundary.js +25 -0
- package/dist/tree/error-boundary.js.map +1 -0
- package/dist/tree/fluid-reveal.d.ts +22 -0
- package/dist/tree/fluid-reveal.d.ts.map +1 -0
- package/dist/tree/fluid-reveal.js +28 -0
- package/dist/tree/fluid-reveal.js.map +1 -0
- package/dist/tree/forming-skeleton.d.ts +14 -0
- package/dist/tree/forming-skeleton.d.ts.map +1 -0
- package/dist/tree/forming-skeleton.js +36 -0
- package/dist/tree/forming-skeleton.js.map +1 -0
- package/dist/tree/frames.d.ts +52 -0
- package/dist/tree/frames.d.ts.map +1 -0
- package/dist/tree/frames.js +143 -0
- package/dist/tree/frames.js.map +1 -0
- package/dist/tree/host-mount.d.ts +24 -0
- package/dist/tree/host-mount.d.ts.map +1 -0
- package/dist/tree/host-mount.js +0 -0
- package/dist/tree/host-mount.js.map +1 -0
- package/dist/tree/index.d.ts +9 -0
- package/dist/tree/index.d.ts.map +1 -0
- package/dist/tree/index.js +9 -0
- package/dist/tree/index.js.map +1 -0
- package/dist/tree/jail/JailedComponent.d.ts +41 -0
- package/dist/tree/jail/JailedComponent.d.ts.map +1 -0
- package/dist/tree/jail/JailedComponent.js +269 -0
- package/dist/tree/jail/JailedComponent.js.map +1 -0
- package/dist/tree/jail/runtime-bundle.gen.d.ts +3 -0
- package/dist/tree/jail/runtime-bundle.gen.d.ts.map +1 -0
- package/dist/tree/jail/runtime-bundle.gen.js +3 -0
- package/dist/tree/jail/runtime-bundle.gen.js.map +1 -0
- package/dist/tree/jail/runtime-entry.d.ts +18 -0
- package/dist/tree/jail/runtime-entry.d.ts.map +1 -0
- package/dist/tree/jail/runtime-entry.js +440 -0
- package/dist/tree/jail/runtime-entry.js.map +1 -0
- package/dist/tree/jail/viewport-css.d.ts +17 -0
- package/dist/tree/jail/viewport-css.d.ts.map +1 -0
- package/dist/tree/jail/viewport-css.js +32 -0
- package/dist/tree/jail/viewport-css.js.map +1 -0
- package/dist/tree/mcp-shim/entry.d.ts +2 -0
- package/dist/tree/mcp-shim/entry.d.ts.map +1 -0
- package/dist/tree/mcp-shim/entry.js +45 -0
- package/dist/tree/mcp-shim/entry.js.map +1 -0
- package/dist/tree/mcp-shim/http-open-card.d.ts +5 -0
- package/dist/tree/mcp-shim/http-open-card.d.ts.map +1 -0
- package/dist/tree/mcp-shim/http-open-card.js +61 -0
- package/dist/tree/mcp-shim/http-open-card.js.map +1 -0
- package/dist/tree/mcp-shim/shim-core.d.ts +58 -0
- package/dist/tree/mcp-shim/shim-core.d.ts.map +1 -0
- package/dist/tree/mcp-shim/shim-core.js +176 -0
- package/dist/tree/mcp-shim/shim-core.js.map +1 -0
- package/dist/tree/mcp-shim/theme.d.ts +8 -0
- package/dist/tree/mcp-shim/theme.d.ts.map +1 -0
- package/dist/tree/mcp-shim/theme.js +36 -0
- package/dist/tree/mcp-shim/theme.js.map +1 -0
- package/dist/tree/notice.d.ts +8 -0
- package/dist/tree/notice.d.ts.map +1 -0
- package/dist/tree/notice.js +30 -0
- package/dist/tree/notice.js.map +1 -0
- package/dist/tree/primitives.d.ts +30 -0
- package/dist/tree/primitives.d.ts.map +1 -0
- package/dist/tree/primitives.js +105 -0
- package/dist/tree/primitives.js.map +1 -0
- package/dist/tree/renderer-v2.d.ts +15 -0
- package/dist/tree/renderer-v2.d.ts.map +1 -0
- package/dist/tree/renderer-v2.js +71 -0
- package/dist/tree/renderer-v2.js.map +1 -0
- package/dist/tree/renderer.d.ts +77 -0
- package/dist/tree/renderer.d.ts.map +1 -0
- package/dist/tree/renderer.js +376 -0
- package/dist/tree/renderer.js.map +1 -0
- package/dist/voice/driver.d.ts +94 -0
- package/dist/voice/driver.d.ts.map +1 -0
- package/dist/voice/driver.js +2 -0
- package/dist/voice/driver.js.map +1 -0
- package/dist/voice/index.d.ts +7 -0
- package/dist/voice/index.d.ts.map +1 -0
- package/dist/voice/index.js +5 -0
- package/dist/voice/index.js.map +1 -0
- package/dist/voice/realtime-driver.d.ts +57 -0
- package/dist/voice/realtime-driver.d.ts.map +1 -0
- package/dist/voice/realtime-driver.js +592 -0
- package/dist/voice/realtime-driver.js.map +1 -0
- package/dist/voice/stage.d.ts +12 -0
- package/dist/voice/stage.d.ts.map +1 -0
- package/dist/voice/stage.js +259 -0
- package/dist/voice/stage.js.map +1 -0
- package/dist/voice/use-voice-approvals.d.ts +16 -0
- package/dist/voice/use-voice-approvals.d.ts.map +1 -0
- package/dist/voice/use-voice-approvals.js +77 -0
- package/dist/voice/use-voice-approvals.js.map +1 -0
- package/dist/voice/use-voice.d.ts +26 -0
- package/dist/voice/use-voice.d.ts.map +1 -0
- package/dist/voice/use-voice.js +201 -0
- package/dist/voice/use-voice.js.map +1 -0
- package/dist/voice/voice-act.d.ts +13 -0
- package/dist/voice/voice-act.d.ts.map +1 -0
- package/dist/voice/voice-act.js +301 -0
- package/dist/voice/voice-act.js.map +1 -0
- package/dist/voice/voice-blob.d.ts +17 -0
- package/dist/voice/voice-blob.d.ts.map +1 -0
- package/dist/voice/voice-blob.js +67 -0
- package/dist/voice/voice-blob.js.map +1 -0
- package/dist/voice/voice-consent.d.ts +17 -0
- package/dist/voice/voice-consent.d.ts.map +1 -0
- package/dist/voice/voice-consent.js +45 -0
- package/dist/voice/voice-consent.js.map +1 -0
- package/dist/voice/voice-drawer.d.ts +10 -0
- package/dist/voice/voice-drawer.d.ts.map +1 -0
- package/dist/voice/voice-drawer.js +22 -0
- package/dist/voice/voice-drawer.js.map +1 -0
- package/dist/wire-types.d.ts +238 -0
- package/dist/wire-types.d.ts.map +1 -0
- package/dist/wire-types.js +2 -0
- package/dist/wire-types.js.map +1 -0
- package/package.json +106 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { ChromeRoot } from "./chrome-root.js";
|
|
3
|
+
import { developmentMode } from "./dev-mode.js";
|
|
4
|
+
import { openVendoConversation } from "./overlay-registry.js";
|
|
5
|
+
/**
|
|
6
|
+
* The shelf's "do it with AI" button (ui-usage-dx §2): every host affordance
|
|
7
|
+
* that hands a task to the agent is this piece. Activation opens the most
|
|
8
|
+
* recently mounted conversation surface (the VendoOverlay) with the prompt
|
|
9
|
+
* seeded into the composer.
|
|
10
|
+
*
|
|
11
|
+
* Hosts that want their own element as the trigger skip this component and
|
|
12
|
+
* call `openVendoConversation({ prompt })` from it directly — the same
|
|
13
|
+
* programmatic seam this button uses (the repo's idiom; there is deliberately
|
|
14
|
+
* no render-prop API on chrome, ui-usage-dx §4).
|
|
15
|
+
*/
|
|
16
|
+
export function VendoTrigger({ prompt, context, children }) {
|
|
17
|
+
return (
|
|
18
|
+
// automaticPolicyNotice={false}: a bare button must never grow the
|
|
19
|
+
// "running without a policy" banner beside itself — the surfaces the
|
|
20
|
+
// trigger opens carry that warning.
|
|
21
|
+
_jsx(ChromeRoot, { automaticPolicyNotice: false, children: _jsxs("button", { type: "button", className: "fl-btn", style: { display: "inline-flex", alignItems: "center", gap: "7px" }, onClick: () => {
|
|
22
|
+
// Prefill only — never `send`, so a trigger is safe on destructive
|
|
23
|
+
// prompts; the user presses Send themselves.
|
|
24
|
+
const opened = openVendoConversation({ prompt: context ? `${prompt}\n\n${context}` : prompt });
|
|
25
|
+
if (!opened && developmentMode()) {
|
|
26
|
+
console.warn("[vendo] VendoTrigger: no <VendoOverlay /> is mounted to open — this button is a no-op.");
|
|
27
|
+
}
|
|
28
|
+
}, children: [_jsxs("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [_jsx("path", { d: "m12 3 1.4 4.1L17.5 8.5l-4.1 1.4L12 14l-1.4-4.1-4.1-1.4 4.1-1.4L12 3Z" }), _jsx("path", { d: "m18 14 .8 2.2L21 17l-2.2.8L18 20l-.8-2.2L15 17l2.2-.8L18 14Z" })] }), children ?? "Ask Vendo"] }) }));
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=vendo-trigger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vendo-trigger.js","sourceRoot":"","sources":["../../src/chrome/vendo-trigger.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAa9D;;;;;;;;;;GAUG;AACH,MAAM,UAAU,YAAY,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAqB;IAC3E,OAAO;IACL,mEAAmE;IACnE,qEAAqE;IACrE,oCAAoC;IACpC,KAAC,UAAU,IAAC,qBAAqB,EAAE,KAAK,YACtC,kBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,QAAQ,EAClB,KAAK,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,EACnE,OAAO,EAAE,GAAG,EAAE;gBACZ,mEAAmE;gBACnE,6CAA6C;gBAC7C,MAAM,MAAM,GAAG,qBAAqB,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC/F,IAAI,CAAC,MAAM,IAAI,eAAe,EAAE,EAAE,CAAC;oBACjC,OAAO,CAAC,IAAI,CAAC,wFAAwF,CAAC,CAAC;gBACzG,CAAC;YACH,CAAC,aAED,eAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,iBAAa,MAAM,aAC/J,eAAM,CAAC,EAAC,sEAAsE,GAAG,EACjF,eAAM,CAAC,EAAC,8DAA8D,GAAG,IACrE,EACL,QAAQ,IAAI,WAAW,IACjB,GACE,CACd,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export interface WaitingQueueProps {
|
|
2
|
+
/** Poll cadence for pending approvals; 0 disables polling. */
|
|
3
|
+
pollMs?: number;
|
|
4
|
+
}
|
|
5
|
+
/** The waiting-on-you queue (08-ui §4 chrome; mounted by VendoPage's chat
|
|
6
|
+
workspace, exportable for any host placement). */
|
|
7
|
+
export declare function WaitingQueue({ pollMs }?: WaitingQueueProps): import("react").JSX.Element | null;
|
|
8
|
+
//# sourceMappingURL=waiting-queue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"waiting-queue.d.ts","sourceRoot":"","sources":["../../src/chrome/waiting-queue.tsx"],"names":[],"mappings":"AAWA,MAAM,WAAW,iBAAiB;IAChC,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA+BD;qDACqD;AACrD,wBAAgB,YAAY,CAAC,EAAE,MAAc,EAAE,GAAE,iBAAsB,sCAiBtE"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useVendoContext } from "../context.js";
|
|
3
|
+
import { useApprovals } from "../hooks/use-approvals.js";
|
|
4
|
+
import { formatAuditTime } from "./activity-semantics.js";
|
|
5
|
+
import { ChromeRoot } from "./chrome-root.js";
|
|
6
|
+
import { toolTitle } from "./humanize.js";
|
|
7
|
+
function WaitingRow({ approval, onDecide }) {
|
|
8
|
+
const { tools } = useVendoContext();
|
|
9
|
+
// A destructive ask reads as ceremony — the warm wash + warn title.
|
|
10
|
+
const ceremony = approval.descriptor.risk === "destructive";
|
|
11
|
+
return (_jsxs("div", { className: `fl-waiting-row${ceremony ? " fl-waiting-row--ceremony" : ""}`, children: [_jsxs("div", { className: "fl-waiting-row-main", children: [_jsx("span", { className: "fl-waiting-ic", "aria-hidden": "true", children: _jsxs("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("circle", { cx: "12", cy: "12", r: "10" }), _jsx("path", { d: "M12 6v6l4 2" })] }) }), _jsxs("div", { children: [_jsx("div", { className: "fl-waiting-row-title", children: toolTitle(approval.call.tool, tools[approval.call.tool]) }), approval.inputPreview ? _jsx("div", { className: "fl-waiting-row-preview", children: approval.inputPreview }) : null, _jsxs("div", { className: "fl-waiting-row-meta", children: ["Asked ", formatAuditTime(approval.createdAt)] })] })] }), _jsxs("div", { className: "fl-waiting-actions", children: [_jsx("button", { type: "button", className: "fl-btn", onClick: () => onDecide(false), children: "Deny" }), _jsx("button", { type: "button", className: "fl-btn fl-btn-primary", onClick: () => onDecide(true), children: "Approve" })] })] }));
|
|
12
|
+
}
|
|
13
|
+
/** The waiting-on-you queue (08-ui §4 chrome; mounted by VendoPage's chat
|
|
14
|
+
workspace, exportable for any host placement). */
|
|
15
|
+
export function WaitingQueue({ pollMs = 5_000 } = {}) {
|
|
16
|
+
const { pending, decide } = useApprovals(pollMs > 0 ? { pollMs } : {});
|
|
17
|
+
if (pending.length === 0)
|
|
18
|
+
return null;
|
|
19
|
+
return (_jsx(ChromeRoot, { children: _jsxs("section", { className: "fl-waiting", "aria-label": "Waiting on you", children: [_jsxs("div", { className: "fl-waiting-head", children: ["Waiting on you \u00B7 ", pending.length] }), pending.map(approval => (_jsx(WaitingRow, { approval: approval, onDecide: approve => void decide(approval.id, { approve }) }, approval.id)))] }) }));
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=waiting-queue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"waiting-queue.js","sourceRoot":"","sources":["../../src/chrome/waiting-queue.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAO1C,SAAS,UAAU,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAGvC;IACC,MAAM,EAAE,KAAK,EAAE,GAAG,eAAe,EAAE,CAAC;IACpC,oEAAoE;IACpE,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,KAAK,aAAa,CAAC;IAC5D,OAAO,CACL,eAAK,SAAS,EAAE,iBAAiB,QAAQ,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,EAAE,EAAE,aAC5E,eAAK,SAAS,EAAC,qBAAqB,aAClC,eAAM,SAAS,EAAC,eAAe,iBAAa,MAAM,YAChD,eAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,aAC5I,iBAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,GAAG,EAAA,eAAM,CAAC,EAAC,aAAa,GAAG,IACrD,GACD,EACP,0BACE,cAAK,SAAS,EAAC,sBAAsB,YAAE,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAO,EACrG,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,cAAK,SAAS,EAAC,wBAAwB,YAAE,QAAQ,CAAC,YAAY,GAAO,CAAC,CAAC,CAAC,IAAI,EACrG,eAAK,SAAS,EAAC,qBAAqB,uBAAQ,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAO,IAClF,IACF,EACN,eAAK,SAAS,EAAC,oBAAoB,aACjC,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,QAAQ,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,qBAAe,EACtF,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,uBAAuB,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,wBAAkB,IACnG,IACF,CACP,CAAC;AACJ,CAAC;AAED;qDACqD;AACrD,MAAM,UAAU,YAAY,CAAC,EAAE,MAAM,GAAG,KAAK,KAAwB,EAAE;IACrE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACvE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,OAAO,CACL,KAAC,UAAU,cACT,mBAAS,SAAS,EAAC,YAAY,gBAAY,gBAAgB,aACzD,eAAK,SAAS,EAAC,iBAAiB,uCAAmB,OAAO,CAAC,MAAM,IAAO,EACvE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CACvB,KAAC,UAAU,IAET,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,IAFrD,QAAQ,CAAC,EAAE,CAGhB,CACH,CAAC,IACM,GACC,CACd,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-impl.d.ts","sourceRoot":"","sources":["../src/client-impl.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAuDlE,eAAe;AACf,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,WAAW,CAuHxE"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
/** Fetch/SSE bindings for the public wire route table (08-ui §2, 09-vendo §3). */
|
|
2
|
+
import { VendoError } from "@vendoai/core";
|
|
3
|
+
const KNOWN_ERROR_CODES = new Set([
|
|
4
|
+
"validation",
|
|
5
|
+
"blocked",
|
|
6
|
+
"not-implemented",
|
|
7
|
+
"sandbox-unavailable",
|
|
8
|
+
"cloud-required",
|
|
9
|
+
"not-found",
|
|
10
|
+
"conflict",
|
|
11
|
+
]);
|
|
12
|
+
function route(baseUrl, path) {
|
|
13
|
+
return `${baseUrl.replace(/\/$/, "")}${path}`;
|
|
14
|
+
}
|
|
15
|
+
function idPath(id) {
|
|
16
|
+
return encodeURIComponent(id);
|
|
17
|
+
}
|
|
18
|
+
async function throwWireError(response) {
|
|
19
|
+
let parsed;
|
|
20
|
+
try {
|
|
21
|
+
parsed = JSON.parse(await response.text());
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
parsed = undefined;
|
|
25
|
+
}
|
|
26
|
+
const error = typeof parsed === "object" && parsed !== null && "error" in parsed
|
|
27
|
+
? parsed.error
|
|
28
|
+
: undefined;
|
|
29
|
+
const code = typeof error === "object" && error !== null && "code" in error && typeof error.code === "string"
|
|
30
|
+
? error.code
|
|
31
|
+
: "validation";
|
|
32
|
+
const message = typeof error === "object" && error !== null && "message" in error && typeof error.message === "string"
|
|
33
|
+
? error.message
|
|
34
|
+
: response.statusText || `HTTP ${response.status}`;
|
|
35
|
+
if (KNOWN_ERROR_CODES.has(code)) {
|
|
36
|
+
throw new VendoError(code, message);
|
|
37
|
+
}
|
|
38
|
+
// 01-core §15: unknown codes are generic errors, but keep the wire code available.
|
|
39
|
+
throw Object.assign(new Error(message), { code });
|
|
40
|
+
}
|
|
41
|
+
async function ensureOk(response) {
|
|
42
|
+
if (!response.ok)
|
|
43
|
+
await throwWireError(response);
|
|
44
|
+
return response;
|
|
45
|
+
}
|
|
46
|
+
/** 08-ui §2 */
|
|
47
|
+
export function createVendoClient(config) {
|
|
48
|
+
const baseUrl = config.baseUrl ?? "/api/vendo";
|
|
49
|
+
const headers = { ...(config.headers ?? {}) };
|
|
50
|
+
async function request(path, init) {
|
|
51
|
+
return ensureOk(await fetch(route(baseUrl, path), {
|
|
52
|
+
...init,
|
|
53
|
+
headers: {
|
|
54
|
+
...headers,
|
|
55
|
+
...init?.headers,
|
|
56
|
+
},
|
|
57
|
+
}));
|
|
58
|
+
}
|
|
59
|
+
async function readJson(path, init) {
|
|
60
|
+
const response = await request(path, init);
|
|
61
|
+
if (response.status === 204 || response.headers.get("content-length") === "0") {
|
|
62
|
+
return undefined;
|
|
63
|
+
}
|
|
64
|
+
return (await response.json());
|
|
65
|
+
}
|
|
66
|
+
async function json(path, method, body = {}) {
|
|
67
|
+
return readJson(path, {
|
|
68
|
+
method,
|
|
69
|
+
headers: { "Content-Type": "application/json" },
|
|
70
|
+
body: JSON.stringify(body),
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
return {
|
|
74
|
+
baseUrl,
|
|
75
|
+
headers,
|
|
76
|
+
threads: {
|
|
77
|
+
stream: async (input) => request("/threads", {
|
|
78
|
+
method: "POST",
|
|
79
|
+
headers: { "Content-Type": "application/json" },
|
|
80
|
+
body: JSON.stringify(input),
|
|
81
|
+
}),
|
|
82
|
+
list: () => readJson("/threads"),
|
|
83
|
+
get: id => readJson(`/threads/${idPath(id)}`),
|
|
84
|
+
delete: id => json(`/threads/${idPath(id)}`, "DELETE"),
|
|
85
|
+
},
|
|
86
|
+
approvals: {
|
|
87
|
+
pending: () => readJson("/approvals"),
|
|
88
|
+
decide: (ids, decision) => json("/approvals/decide", "POST", { ids: Array.isArray(ids) ? ids : [ids], decision }),
|
|
89
|
+
get: id => readJson(`/approvals/${idPath(id)}`),
|
|
90
|
+
},
|
|
91
|
+
grants: {
|
|
92
|
+
list: () => readJson("/grants"),
|
|
93
|
+
revoke: id => json(`/grants/${idPath(id)}`, "DELETE"),
|
|
94
|
+
},
|
|
95
|
+
connections: {
|
|
96
|
+
list: async () => (await readJson("/connections")).connections,
|
|
97
|
+
catalog: async () => (await readJson("/connections/catalog")).available,
|
|
98
|
+
initiate: input => json("/connections/initiate", "POST", input),
|
|
99
|
+
status: (id, connector) => readJson(`/connections/${idPath(id)}${connector === undefined ? "" : `?connector=${encodeURIComponent(connector)}`}`),
|
|
100
|
+
disconnect: (id, connector) => json(`/connections/${idPath(id)}${connector === undefined ? "" : `?connector=${encodeURIComponent(connector)}`}`, "DELETE"),
|
|
101
|
+
},
|
|
102
|
+
apps: {
|
|
103
|
+
list: () => readJson("/apps"),
|
|
104
|
+
create: input => json("/apps", "POST", input),
|
|
105
|
+
get: id => readJson(`/apps/${idPath(id)}`),
|
|
106
|
+
delete: id => json(`/apps/${idPath(id)}`, "DELETE"),
|
|
107
|
+
// The overloads narrow per call site; one implementation serves both.
|
|
108
|
+
open: ((id, options) => readJson(`/apps/${idPath(id)}/open${options?.pending === true ? "?pending=1" : ""}`)),
|
|
109
|
+
call: (id, ref, args) => json(`/apps/${idPath(id)}/call`, "POST", { ref, args }),
|
|
110
|
+
edit: (id, instruction) => json(`/apps/${idPath(id)}/edit`, "POST", { instruction }),
|
|
111
|
+
history: id => readJson(`/apps/${idPath(id)}/history`),
|
|
112
|
+
undo: id => json(`/apps/${idPath(id)}/history`, "POST", { op: "undo" }),
|
|
113
|
+
exportApp: async (id) => new Uint8Array(await (await request(`/apps/${idPath(id)}/export`)).arrayBuffer()),
|
|
114
|
+
importApp: bytes => readJson("/apps/import", {
|
|
115
|
+
method: "POST",
|
|
116
|
+
headers: { "Content-Type": "application/octet-stream" },
|
|
117
|
+
body: bytes,
|
|
118
|
+
}),
|
|
119
|
+
fork: id => json(`/apps/${idPath(id)}/fork`, "POST"),
|
|
120
|
+
shipDiff: id => readJson(`/apps/${idPath(id)}/ship-diff`),
|
|
121
|
+
pinDrift: id => readJson(`/apps/${idPath(id)}/pin-drift`),
|
|
122
|
+
rebasePin: (id, slot) => json(`/apps/${idPath(id)}/rebase-pin`, "POST", { slot }),
|
|
123
|
+
forkPin: ({ appId, ...body }) => json(appId === undefined ? "/apps/fork-pin" : `/apps/${idPath(appId)}/fork-pin`, "POST", body),
|
|
124
|
+
pingMachine: id => json(`/apps/${idPath(id)}/machine/ping`, "POST"),
|
|
125
|
+
},
|
|
126
|
+
automations: {
|
|
127
|
+
list: () => readJson("/automations"),
|
|
128
|
+
enable: id => json(`/automations/${idPath(id)}/enable`, "POST"),
|
|
129
|
+
disable: id => json(`/automations/${idPath(id)}/disable`, "POST"),
|
|
130
|
+
dryRun: id => json(`/automations/${idPath(id)}/dry-run`, "POST"),
|
|
131
|
+
},
|
|
132
|
+
runs: {
|
|
133
|
+
list: filter => {
|
|
134
|
+
const params = new URLSearchParams();
|
|
135
|
+
if (filter?.appId !== undefined)
|
|
136
|
+
params.set("appId", filter.appId);
|
|
137
|
+
if (filter?.status !== undefined)
|
|
138
|
+
params.set("status", filter.status);
|
|
139
|
+
if (filter?.cursor !== undefined)
|
|
140
|
+
params.set("cursor", filter.cursor);
|
|
141
|
+
const query = params.size > 0 ? `?${params.toString()}` : "";
|
|
142
|
+
return readJson(`/runs${query}`);
|
|
143
|
+
},
|
|
144
|
+
get: id => readJson(`/runs/${idPath(id)}`),
|
|
145
|
+
stop: id => json(`/runs/${idPath(id)}/stop`, "POST"),
|
|
146
|
+
},
|
|
147
|
+
activity: {
|
|
148
|
+
list: params => {
|
|
149
|
+
const query = new URLSearchParams();
|
|
150
|
+
if (params?.cursor !== undefined)
|
|
151
|
+
query.set("cursor", params.cursor);
|
|
152
|
+
if (params?.limit !== undefined)
|
|
153
|
+
query.set("limit", String(params.limit));
|
|
154
|
+
return readJson(`/activity${query.size > 0 ? `?${query.toString()}` : ""}`);
|
|
155
|
+
},
|
|
156
|
+
},
|
|
157
|
+
status: () => readJson("/status"),
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=client-impl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-impl.js","sourceRoot":"","sources":["../src/client-impl.ts"],"names":[],"mappings":"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"}
|
package/dist/client.d.ts
ADDED
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* createVendoClient — typed fetch/SSE bindings for every wire route (09 §3).
|
|
3
|
+
* Exposed for non-React consumers; every hook rides this.
|
|
4
|
+
*
|
|
5
|
+
* The interface is the coordination artifact between lanes; the
|
|
6
|
+
* implementation lives in client-impl.ts (lane A).
|
|
7
|
+
*/
|
|
8
|
+
import type { AppDocument, AppId, ApprovalDecision, ApprovalId, ApprovalRequest, AuditEvent, GrantId, Json, PermissionGrant, RunId, ThreadId, ToolOutcome } from "@vendoai/core";
|
|
9
|
+
import type { UIMessage } from "ai";
|
|
10
|
+
import type { ApprovalResolution, AutomationEntry, ConnectableToolkit, ConnectionAccount, EditResult, EnableResult, InitiatedConnection, OpenSurface, PendingSurface, PinDrift, PinForkResult, PinRebaseResult, RunPlan, RunRecord, RunStatus, ShipDiff, Thread, ThreadSummary, VendoStatus, VersionEntry } from "./wire-types.js";
|
|
11
|
+
export interface VendoClientConfig {
|
|
12
|
+
/** Wire mount point. Default "/api/vendo". */
|
|
13
|
+
baseUrl?: string;
|
|
14
|
+
headers?: Record<string, string>;
|
|
15
|
+
}
|
|
16
|
+
export interface VendoClient {
|
|
17
|
+
readonly baseUrl: string;
|
|
18
|
+
readonly headers: Record<string, string>;
|
|
19
|
+
threads: {
|
|
20
|
+
/** POST /threads — one conversational turn; the ai-SDK UI message stream (SSE) Response. */
|
|
21
|
+
stream(input: {
|
|
22
|
+
threadId?: ThreadId;
|
|
23
|
+
message: UIMessage;
|
|
24
|
+
}): Promise<Response>;
|
|
25
|
+
list(): Promise<ThreadSummary[]>;
|
|
26
|
+
get(id: ThreadId): Promise<Thread>;
|
|
27
|
+
delete(id: ThreadId): Promise<void>;
|
|
28
|
+
};
|
|
29
|
+
approvals: {
|
|
30
|
+
pending(): Promise<ApprovalRequest[]>;
|
|
31
|
+
/** Batch-capable: POST /approvals/decide { ids, decision }. */
|
|
32
|
+
decide(ids: ApprovalId | ApprovalId[], decision: ApprovalDecision): Promise<void>;
|
|
33
|
+
/** Existing-agents — GET /approvals/:id, the per-approval state
|
|
34
|
+
`<VendoApprovalEmbed>` polls (pending/executed/declined/expired). */
|
|
35
|
+
get(id: ApprovalId): Promise<ApprovalResolution>;
|
|
36
|
+
};
|
|
37
|
+
grants: {
|
|
38
|
+
list(): Promise<PermissionGrant[]>;
|
|
39
|
+
revoke(id: GrantId): Promise<void>;
|
|
40
|
+
};
|
|
41
|
+
/** 04-actions §3 — per-principal connected accounts (Composio broker). */
|
|
42
|
+
connections: {
|
|
43
|
+
list(): Promise<ConnectionAccount[]>;
|
|
44
|
+
/** POST /connections/initiate — returns the broker's OAuth redirect URL. */
|
|
45
|
+
initiate(input: {
|
|
46
|
+
toolkit: string;
|
|
47
|
+
connector?: string;
|
|
48
|
+
callbackUrl?: string;
|
|
49
|
+
}): Promise<InitiatedConnection>;
|
|
50
|
+
/** GET /connections/:id — poll while the user completes the redirect. */
|
|
51
|
+
status(id: string, connector?: string): Promise<ConnectionAccount>;
|
|
52
|
+
disconnect(id: string, connector?: string): Promise<void>;
|
|
53
|
+
/** GET /connections/catalog — the host-level connectable toolkits; feeds
|
|
54
|
+
the connect dock when no explicit `connectors` prop is passed. */
|
|
55
|
+
catalog(): Promise<ConnectableToolkit[]>;
|
|
56
|
+
};
|
|
57
|
+
apps: {
|
|
58
|
+
list(): Promise<AppDocument[]>;
|
|
59
|
+
create(input: {
|
|
60
|
+
prompt: string;
|
|
61
|
+
}): Promise<AppDocument>;
|
|
62
|
+
get(id: AppId): Promise<AppDocument>;
|
|
63
|
+
delete(id: AppId): Promise<void>;
|
|
64
|
+
open(id: AppId): Promise<OpenSurface>;
|
|
65
|
+
/** Existing-agents polish — the embed's build-window poll: with
|
|
66
|
+
`pending: true` a not-yet-servable app answers `{ kind: "pending" }`
|
|
67
|
+
over HTTP 200 instead of the contracted 404, so the poll never logs
|
|
68
|
+
browser console errors while the build streams. */
|
|
69
|
+
open(id: AppId, options: {
|
|
70
|
+
pending: true;
|
|
71
|
+
}): Promise<OpenSurface | PendingSurface>;
|
|
72
|
+
call(id: AppId, ref: string, args: Json): Promise<ToolOutcome>;
|
|
73
|
+
edit(id: AppId, instruction: string): Promise<EditResult>;
|
|
74
|
+
history(id: AppId): Promise<VersionEntry[]>;
|
|
75
|
+
undo(id: AppId): Promise<AppDocument>;
|
|
76
|
+
exportApp(id: AppId): Promise<Uint8Array>;
|
|
77
|
+
importApp(bytes: Uint8Array): Promise<AppDocument>;
|
|
78
|
+
fork(id: AppId): Promise<AppDocument>;
|
|
79
|
+
/** GET /apps/:id/ship-diff — the reviewable diff vs the captured host baselines (06 §8–§9). */
|
|
80
|
+
shipDiff(id: AppId): Promise<ShipDiff>;
|
|
81
|
+
/** GET /apps/:id/pin-drift — the pins whose captured host baseline changed under the fork (06 §8). */
|
|
82
|
+
pinDrift(id: AppId): Promise<PinDrift[]>;
|
|
83
|
+
/** POST /apps/:id/rebase-pin — re-fork one drifted pin from the new baseline and replay its recorded intents (06 §8). */
|
|
84
|
+
rebasePin(id: AppId, slot: string): Promise<PinRebaseResult>;
|
|
85
|
+
/**
|
|
86
|
+
* POST /apps/fork-pin (no appId) or /apps/:id/fork-pin — the gesture-owned
|
|
87
|
+
* DETERMINISTIC fork of a remixable host slot (06 §8): the engine copies
|
|
88
|
+
* the captured baseline and records the pin with no model call. Without an
|
|
89
|
+
* appId a minimal app is minted around the fork (the empty-slot Remix
|
|
90
|
+
* gesture). An optional instruction rides the ordinary edit path
|
|
91
|
+
* afterwards, already scoped to the forked component.
|
|
92
|
+
*/
|
|
93
|
+
forkPin(input: {
|
|
94
|
+
appId?: AppId;
|
|
95
|
+
slot: string;
|
|
96
|
+
instruction?: string;
|
|
97
|
+
}): Promise<PinForkResult>;
|
|
98
|
+
/**
|
|
99
|
+
* POST /apps/:id/machine/ping — the embed surface's keepalive (Wave 7 H2):
|
|
100
|
+
* user activity on an embedded served app rides one host-proxied HEAD
|
|
101
|
+
* through the machine, keeping it from idling out under the user. "woke"
|
|
102
|
+
* means the machine had slept — the embed's URL is stale; re-open.
|
|
103
|
+
*/
|
|
104
|
+
pingMachine(id: AppId): Promise<{
|
|
105
|
+
state: "awake" | "woke";
|
|
106
|
+
}>;
|
|
107
|
+
};
|
|
108
|
+
automations: {
|
|
109
|
+
list(): Promise<AutomationEntry[]>;
|
|
110
|
+
enable(id: AppId): Promise<EnableResult>;
|
|
111
|
+
disable(id: AppId): Promise<void>;
|
|
112
|
+
dryRun(id: AppId): Promise<RunPlan>;
|
|
113
|
+
};
|
|
114
|
+
runs: {
|
|
115
|
+
list(filter?: {
|
|
116
|
+
appId?: AppId;
|
|
117
|
+
status?: RunStatus;
|
|
118
|
+
cursor?: string;
|
|
119
|
+
}): Promise<{
|
|
120
|
+
runs: RunRecord[];
|
|
121
|
+
cursor?: string;
|
|
122
|
+
}>;
|
|
123
|
+
get(id: RunId): Promise<RunRecord>;
|
|
124
|
+
stop(id: RunId): Promise<void>;
|
|
125
|
+
};
|
|
126
|
+
activity: {
|
|
127
|
+
/** GET /activity — self-scoped audit events; cursor = the id of the last seen event. */
|
|
128
|
+
list(params?: {
|
|
129
|
+
cursor?: string;
|
|
130
|
+
limit?: number;
|
|
131
|
+
}): Promise<AuditEvent[]>;
|
|
132
|
+
};
|
|
133
|
+
status(): Promise<VendoStatus>;
|
|
134
|
+
}
|
|
135
|
+
export { createVendoClient } from "./client-impl.js";
|
|
136
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAyJA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/** VendoProvider + the internal context every hook and surface reads (08 §2). */
|
|
2
|
+
import type { ComponentRegistry, VendoTheme } from "@vendoai/core";
|
|
3
|
+
import type { ChatTransport, UIMessage } from "ai";
|
|
4
|
+
import { type ComponentType, type ReactNode } from "react";
|
|
5
|
+
import { type VendoClient } from "./client.js";
|
|
6
|
+
import type { VendoDiscoverability, VendoGreeting } from "./chrome/discoverability.js";
|
|
7
|
+
import type { ToolMetaMap } from "./chrome/humanize.js";
|
|
8
|
+
import type { VoiceDriver } from "./voice/driver.js";
|
|
9
|
+
export interface VendoContextValue {
|
|
10
|
+
client: VendoClient;
|
|
11
|
+
/** Host catalog implementations, by registered name (08 §2). */
|
|
12
|
+
components: Record<string, ComponentType>;
|
|
13
|
+
/** Resolved brand tokens (defaults ⊕ provider overrides). */
|
|
14
|
+
theme: VendoTheme;
|
|
15
|
+
/** Optional host-provided voice transport (08 §3). */
|
|
16
|
+
voice?: {
|
|
17
|
+
driver: VoiceDriver;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Optional chat-transport override (director/replay tooling). When absent,
|
|
21
|
+
* threads use the live wire transport — this is never a default.
|
|
22
|
+
*/
|
|
23
|
+
transport?: ChatTransport<UIMessage>;
|
|
24
|
+
/**
|
|
25
|
+
* Optional host handler for pinning a previewed app into the product. When
|
|
26
|
+
* present, generated views show a "Pin to dashboard" action; nothing is
|
|
27
|
+
* saved to the host surface until the user invokes it.
|
|
28
|
+
*/
|
|
29
|
+
onPin?(app: {
|
|
30
|
+
appId: string;
|
|
31
|
+
payload: unknown;
|
|
32
|
+
}): void;
|
|
33
|
+
/** Optional host-supplied friendly tool metadata, keyed by tool name/id
|
|
34
|
+
(ENG-216 humanization seam — additive, UI-side, no wire/contract change). */
|
|
35
|
+
tools: ToolMetaMap;
|
|
36
|
+
/** ENG-225 — the connect dock's catalog: which toolkits this host's users
|
|
37
|
+
can connect. An explicit array is used as-is (empty = no dock renders);
|
|
38
|
+
`"auto"` (the omitted-prop default) means surfaces resolve the catalog
|
|
39
|
+
from `GET /connections/catalog` — everything the host's server-side
|
|
40
|
+
connectors advertise. Resolve through useConnectorCatalog, never read
|
|
41
|
+
this raw. */
|
|
42
|
+
connectors: ConnectorOption[] | "auto";
|
|
43
|
+
/** The discoverability dial (ui-usage-dx §6): quiet | default. Default keeps
|
|
44
|
+
the fire-once whisper + greeting; surfaces may override via their own prop. */
|
|
45
|
+
discoverability: VendoDiscoverability;
|
|
46
|
+
/** Host greeting-as-tutorial content (§6): intro + starter prompts, the
|
|
47
|
+
`.vendo/greeting.json` shape. Absent = the built-in generic greeting. */
|
|
48
|
+
greeting?: VendoGreeting;
|
|
49
|
+
}
|
|
50
|
+
/** One connectable toolkit in the connect dock (ENG-225). */
|
|
51
|
+
export interface ConnectorOption {
|
|
52
|
+
toolkit: string;
|
|
53
|
+
/** Broker connector id, when the host pins one (04 §3.1). */
|
|
54
|
+
connector?: string;
|
|
55
|
+
/** Display name; defaults to the capitalized toolkit. */
|
|
56
|
+
label?: string;
|
|
57
|
+
}
|
|
58
|
+
/** 08 §2 (amended 2026-07-18): the components input — the plain name→component
|
|
59
|
+
* map, or the 01 §14 name-keyed ComponentRegistry (the same object the server
|
|
60
|
+
* takes as `catalog`). */
|
|
61
|
+
export type HostComponentsInput = Record<string, ComponentType> | ComponentRegistry;
|
|
62
|
+
/** Extract the name→component map from either components-input form. Registry
|
|
63
|
+
* data fields (description, props schema, examples, remixable) are server-side
|
|
64
|
+
* concerns the client ignores (01 §14). */
|
|
65
|
+
export declare function hostComponentMap(components: HostComponentsInput | undefined): Record<string, ComponentType>;
|
|
66
|
+
export declare function VendoProvider(props: {
|
|
67
|
+
client?: VendoClient;
|
|
68
|
+
components?: HostComponentsInput;
|
|
69
|
+
theme?: Partial<VendoTheme>;
|
|
70
|
+
voice?: {
|
|
71
|
+
driver: VoiceDriver;
|
|
72
|
+
};
|
|
73
|
+
transport?: ChatTransport<UIMessage>;
|
|
74
|
+
onPin?(app: {
|
|
75
|
+
appId: string;
|
|
76
|
+
payload: unknown;
|
|
77
|
+
}): void;
|
|
78
|
+
tools?: ToolMetaMap;
|
|
79
|
+
connectors?: ConnectorOption[];
|
|
80
|
+
discoverability?: VendoDiscoverability;
|
|
81
|
+
greeting?: VendoGreeting;
|
|
82
|
+
children: ReactNode;
|
|
83
|
+
}): ReactNode;
|
|
84
|
+
export declare function useVendoContext(): VendoContextValue;
|
|
85
|
+
/** Resolved brand tokens (08 §3 — the useVendoTheme hook). */
|
|
86
|
+
export declare function useVendoTheme(): VendoTheme;
|
|
87
|
+
/** Host-supplied tool metadata (ENG-216). Provider-optional so surfaces that
|
|
88
|
+
can render standalone still degrade to the pure formatting fallback. */
|
|
89
|
+
export declare function useVendoTools(): ToolMetaMap;
|
|
90
|
+
/** Like useVendoTheme, but provider-optional: surfaces that also work standalone
|
|
91
|
+
(TreeView) fall back to the default brand tokens. */
|
|
92
|
+
export declare function useVendoThemeOrDefault(): VendoTheme;
|
|
93
|
+
/** The discoverability dial, provider-optional (standalone surfaces default on). */
|
|
94
|
+
export declare function useVendoDiscoverability(): VendoDiscoverability;
|
|
95
|
+
/** Host greeting-as-tutorial content, provider-optional (absent = built-in). */
|
|
96
|
+
export declare function useVendoGreeting(): VendoGreeting | undefined;
|
|
97
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.tsx"],"names":[],"mappings":"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"}
|
package/dist/context.js
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { createContext, useContext, useMemo } from "react";
|
|
3
|
+
import { createVendoClient } from "./client.js";
|
|
4
|
+
import { defaultVendoTheme, resolveTheme } from "./theme.js";
|
|
5
|
+
const VendoContext = createContext(null);
|
|
6
|
+
/** Safe narrow: a plain-map value is a function/class component or an exotic
|
|
7
|
+
* React component object ($$typeof/render/type — never a `component` field),
|
|
8
|
+
* while a registry entry always carries `component` plus its REQUIRED string
|
|
9
|
+
* `description` (01 §14). Both checks together rule out misdetection. */
|
|
10
|
+
function isRegistryEntry(value) {
|
|
11
|
+
return typeof value === "object" && value !== null
|
|
12
|
+
&& "component" in value
|
|
13
|
+
&& typeof value.description === "string";
|
|
14
|
+
}
|
|
15
|
+
/** Extract the name→component map from either components-input form. Registry
|
|
16
|
+
* data fields (description, props schema, examples, remixable) are server-side
|
|
17
|
+
* concerns the client ignores (01 §14). */
|
|
18
|
+
export function hostComponentMap(components) {
|
|
19
|
+
if (components === undefined)
|
|
20
|
+
return {};
|
|
21
|
+
const map = {};
|
|
22
|
+
for (const [name, value] of Object.entries(components)) {
|
|
23
|
+
map[name] = isRegistryEntry(value) ? value.component : value;
|
|
24
|
+
}
|
|
25
|
+
return map;
|
|
26
|
+
}
|
|
27
|
+
export function VendoProvider(props) {
|
|
28
|
+
const { client, components, theme, voice, transport, onPin, tools, connectors, discoverability, greeting, children } = props;
|
|
29
|
+
const value = useMemo(() => ({
|
|
30
|
+
client: client ?? createVendoClient({}),
|
|
31
|
+
components: hostComponentMap(components),
|
|
32
|
+
theme: resolveTheme(defaultVendoTheme, theme),
|
|
33
|
+
voice,
|
|
34
|
+
transport,
|
|
35
|
+
onPin,
|
|
36
|
+
tools: tools ?? {},
|
|
37
|
+
connectors: connectors ?? "auto",
|
|
38
|
+
discoverability: discoverability ?? "default",
|
|
39
|
+
greeting,
|
|
40
|
+
}), [client, components, theme, voice, transport, onPin, tools, connectors, discoverability, greeting]);
|
|
41
|
+
return _jsx(VendoContext.Provider, { value: value, children: children });
|
|
42
|
+
}
|
|
43
|
+
export function useVendoContext() {
|
|
44
|
+
const ctx = useContext(VendoContext);
|
|
45
|
+
if (!ctx)
|
|
46
|
+
throw new Error("Vendo hooks and surfaces must be rendered inside <VendoProvider>.");
|
|
47
|
+
return ctx;
|
|
48
|
+
}
|
|
49
|
+
/** Resolved brand tokens (08 §3 — the useVendoTheme hook). */
|
|
50
|
+
export function useVendoTheme() {
|
|
51
|
+
return useVendoContext().theme;
|
|
52
|
+
}
|
|
53
|
+
/** Host-supplied tool metadata (ENG-216). Provider-optional so surfaces that
|
|
54
|
+
can render standalone still degrade to the pure formatting fallback. */
|
|
55
|
+
export function useVendoTools() {
|
|
56
|
+
return useContext(VendoContext)?.tools ?? {};
|
|
57
|
+
}
|
|
58
|
+
/** Like useVendoTheme, but provider-optional: surfaces that also work standalone
|
|
59
|
+
(TreeView) fall back to the default brand tokens. */
|
|
60
|
+
export function useVendoThemeOrDefault() {
|
|
61
|
+
return useContext(VendoContext)?.theme ?? defaultVendoTheme;
|
|
62
|
+
}
|
|
63
|
+
/** The discoverability dial, provider-optional (standalone surfaces default on). */
|
|
64
|
+
export function useVendoDiscoverability() {
|
|
65
|
+
return useContext(VendoContext)?.discoverability ?? "default";
|
|
66
|
+
}
|
|
67
|
+
/** Host greeting-as-tutorial content, provider-optional (absent = built-in). */
|
|
68
|
+
export function useVendoGreeting() {
|
|
69
|
+
return useContext(VendoContext)?.greeting;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.tsx"],"names":[],"mappings":"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"}
|