@compose-market/theme 0.0.1 → 0.0.3
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/dist/components/RFAComponent.d.ts +10 -0
- package/dist/components/RFAComponent.d.ts.map +1 -0
- package/dist/components/RFAComponent.js +288 -0
- package/dist/components/RFAComponent.js.map +1 -0
- package/dist/components/RFADetails.d.ts +9 -0
- package/dist/components/RFADetails.d.ts.map +1 -0
- package/dist/components/RFADetails.js +407 -0
- package/dist/components/RFADetails.js.map +1 -0
- package/dist/components/agent-card.d.ts +8 -0
- package/dist/components/agent-card.d.ts.map +1 -0
- package/dist/components/agent-card.js +216 -0
- package/dist/components/agent-card.js.map +1 -0
- package/dist/components/backpack.d.ts +21 -0
- package/dist/components/backpack.d.ts.map +1 -0
- package/dist/components/backpack.js +905 -0
- package/dist/components/backpack.js.map +1 -0
- package/dist/components/blur.d.ts +9 -0
- package/dist/components/blur.d.ts.map +1 -0
- package/dist/components/blur.js +60 -0
- package/dist/components/blur.js.map +1 -0
- package/dist/components/brand/Logo.d.ts +25 -0
- package/dist/components/brand/Logo.d.ts.map +1 -0
- package/dist/components/brand/Logo.js +53 -0
- package/dist/components/brand/Logo.js.map +1 -0
- package/dist/components/brand/index.d.ts +2 -0
- package/dist/components/brand/index.d.ts.map +1 -0
- package/dist/components/brand/index.js +2 -0
- package/dist/components/brand/index.js.map +1 -0
- package/dist/components/chat.d.ts +68 -0
- package/dist/components/chat.d.ts.map +1 -0
- package/dist/components/chat.js +618 -0
- package/dist/components/chat.js.map +1 -0
- package/dist/components/compose/index.d.ts +10 -0
- package/dist/components/compose/index.d.ts.map +1 -0
- package/dist/components/compose/index.js +13 -0
- package/dist/components/compose/index.js.map +1 -0
- package/dist/components/compose/nodes/agent-node.d.ts +11 -0
- package/dist/components/compose/nodes/agent-node.d.ts.map +1 -0
- package/dist/components/compose/nodes/agent-node.js +101 -0
- package/dist/components/compose/nodes/agent-node.js.map +1 -0
- package/dist/components/compose/nodes/hook-node.d.ts +11 -0
- package/dist/components/compose/nodes/hook-node.d.ts.map +1 -0
- package/dist/components/compose/nodes/hook-node.js +100 -0
- package/dist/components/compose/nodes/hook-node.js.map +1 -0
- package/dist/components/compose/nodes/index.d.ts +60 -0
- package/dist/components/compose/nodes/index.d.ts.map +1 -0
- package/dist/components/compose/nodes/index.js +22 -0
- package/dist/components/compose/nodes/index.js.map +1 -0
- package/dist/components/compose/nodes/step-node.d.ts +11 -0
- package/dist/components/compose/nodes/step-node.d.ts.map +1 -0
- package/dist/components/compose/nodes/step-node.js +88 -0
- package/dist/components/compose/nodes/step-node.js.map +1 -0
- package/dist/components/compose/nodes/trigger-node.d.ts +11 -0
- package/dist/components/compose/nodes/trigger-node.d.ts.map +1 -0
- package/dist/components/compose/nodes/trigger-node.js +92 -0
- package/dist/components/compose/nodes/trigger-node.js.map +1 -0
- package/dist/components/compose/overlay.d.ts +26 -0
- package/dist/components/compose/overlay.d.ts.map +1 -0
- package/dist/components/compose/overlay.js +48 -0
- package/dist/components/compose/overlay.js.map +1 -0
- package/dist/components/compose/pickers/agents-picker.d.ts +18 -0
- package/dist/components/compose/pickers/agents-picker.d.ts.map +1 -0
- package/dist/components/compose/pickers/agents-picker.js +180 -0
- package/dist/components/compose/pickers/agents-picker.js.map +1 -0
- package/dist/components/compose/pickers/connector-detail.d.ts +16 -0
- package/dist/components/compose/pickers/connector-detail.d.ts.map +1 -0
- package/dist/components/compose/pickers/connector-detail.js +236 -0
- package/dist/components/compose/pickers/connector-detail.js.map +1 -0
- package/dist/components/compose/pickers/connector-picker.d.ts +13 -0
- package/dist/components/compose/pickers/connector-picker.d.ts.map +1 -0
- package/dist/components/compose/pickers/connector-picker.js +101 -0
- package/dist/components/compose/pickers/connector-picker.js.map +1 -0
- package/dist/components/compose/pickers/index.d.ts +10 -0
- package/dist/components/compose/pickers/index.d.ts.map +1 -0
- package/dist/components/compose/pickers/index.js +10 -0
- package/dist/components/compose/pickers/index.js.map +1 -0
- package/dist/components/compose/pickers/trigger-picker.d.ts +13 -0
- package/dist/components/compose/pickers/trigger-picker.d.ts.map +1 -0
- package/dist/components/compose/pickers/trigger-picker.js +110 -0
- package/dist/components/compose/pickers/trigger-picker.js.map +1 -0
- package/dist/components/compose/toolbox.d.ts +24 -0
- package/dist/components/compose/toolbox.d.ts.map +1 -0
- package/dist/components/compose/toolbox.js +183 -0
- package/dist/components/compose/toolbox.js.map +1 -0
- package/dist/components/connector.d.ts +24 -0
- package/dist/components/connector.d.ts.map +1 -0
- package/dist/components/connector.js +263 -0
- package/dist/components/connector.js.map +1 -0
- package/dist/components/dispenser.d.ts +15 -0
- package/dist/components/dispenser.d.ts.map +1 -0
- package/dist/components/dispenser.js +323 -0
- package/dist/components/dispenser.js.map +1 -0
- package/dist/components/layout/AppLayout.d.ts +60 -0
- package/dist/components/layout/AppLayout.d.ts.map +1 -0
- package/dist/components/layout/AppLayout.js +265 -0
- package/dist/components/layout/AppLayout.js.map +1 -0
- package/dist/components/layout/Layout.d.ts +6 -0
- package/dist/components/layout/Layout.d.ts.map +1 -0
- package/dist/components/layout/Layout.js +186 -0
- package/dist/components/layout/Layout.js.map +1 -0
- package/dist/components/layout/Sidebar.d.ts +3 -0
- package/dist/components/layout/Sidebar.d.ts.map +1 -0
- package/dist/components/layout/Sidebar.js +160 -0
- package/dist/components/layout/Sidebar.js.map +1 -0
- package/dist/components/layout/TopBar.d.ts +6 -0
- package/dist/components/layout/TopBar.d.ts.map +1 -0
- package/dist/components/layout/TopBar.js +36 -0
- package/dist/components/layout/TopBar.js.map +1 -0
- package/dist/components/layout/index.d.ts +2 -0
- package/dist/components/layout/index.d.ts.map +1 -0
- package/dist/components/layout/index.js +2 -0
- package/dist/components/layout/index.js.map +1 -0
- package/dist/components/lyria-player.d.ts +23 -0
- package/dist/components/lyria-player.d.ts.map +1 -0
- package/dist/components/lyria-player.js +241 -0
- package/dist/components/lyria-player.js.map +1 -0
- package/dist/components/manowar-card.d.ts +8 -0
- package/dist/components/manowar-card.d.ts.map +1 -0
- package/dist/components/manowar-card.js +349 -0
- package/dist/components/manowar-card.js.map +1 -0
- package/dist/components/mirror-pane.d.ts +55 -0
- package/dist/components/mirror-pane.d.ts.map +1 -0
- package/dist/components/mirror-pane.js +330 -0
- package/dist/components/mirror-pane.js.map +1 -0
- package/dist/components/model-selector.d.ts +12 -0
- package/dist/components/model-selector.d.ts.map +1 -0
- package/dist/components/model-selector.js +148 -0
- package/dist/components/model-selector.js.map +1 -0
- package/dist/components/output.d.ts +26 -0
- package/dist/components/output.d.ts.map +1 -0
- package/dist/components/output.js +259 -0
- package/dist/components/output.js.map +1 -0
- package/dist/components/partners.d.ts +13 -0
- package/dist/components/partners.d.ts.map +1 -0
- package/dist/components/partners.js +210 -0
- package/dist/components/partners.js.map +1 -0
- package/dist/components/plugin-tester.d.ts +13 -0
- package/dist/components/plugin-tester.d.ts.map +1 -0
- package/dist/components/plugin-tester.js +907 -0
- package/dist/components/plugin-tester.js.map +1 -0
- package/dist/components/session/SessionComponents.d.ts +2 -0
- package/dist/components/session/SessionComponents.d.ts.map +1 -0
- package/dist/components/session/SessionComponents.js +2 -0
- package/dist/components/session/SessionComponents.js.map +1 -0
- package/dist/components/session/index.d.ts +2 -0
- package/dist/components/session/index.d.ts.map +1 -0
- package/dist/components/session/index.js +2 -0
- package/dist/components/session/index.js.map +1 -0
- package/dist/components/session.d.ts +58 -0
- package/dist/components/session.d.ts.map +1 -0
- package/dist/components/session.js +580 -0
- package/dist/components/session.js.map +1 -0
- package/dist/components/share-dialog.d.ts +9 -0
- package/dist/components/share-dialog.d.ts.map +1 -0
- package/dist/components/share-dialog.js +49 -0
- package/dist/components/share-dialog.js.map +1 -0
- package/dist/components/ui/accordion.d.ts +6 -0
- package/dist/components/ui/accordion.d.ts.map +1 -0
- package/dist/components/ui/accordion.js +20 -0
- package/dist/components/ui/accordion.js.map +1 -0
- package/dist/components/ui/alert-dialog.d.ts +20 -0
- package/dist/components/ui/alert-dialog.d.ts.map +1 -0
- package/dist/components/ui/alert-dialog.js +29 -0
- package/dist/components/ui/alert-dialog.js.map +1 -0
- package/dist/components/ui/alert.d.ts +5 -0
- package/dist/components/ui/alert.d.ts.map +1 -0
- package/dist/components/ui/alert.js +22 -0
- package/dist/components/ui/alert.js.map +1 -0
- package/dist/components/ui/aspect-ratio.d.ts +3 -0
- package/dist/components/ui/aspect-ratio.d.ts.map +1 -0
- package/dist/components/ui/aspect-ratio.js +4 -0
- package/dist/components/ui/aspect-ratio.js.map +1 -0
- package/dist/components/ui/avatar.d.ts +5 -0
- package/dist/components/ui/avatar.d.ts.map +1 -0
- package/dist/components/ui/avatar.js +12 -0
- package/dist/components/ui/avatar.js.map +1 -0
- package/dist/components/ui/badge.d.ts +8 -0
- package/dist/components/ui/badge.d.ts.map +1 -0
- package/dist/components/ui/badge.js +24 -0
- package/dist/components/ui/badge.js.map +1 -0
- package/dist/components/ui/breadcrumb.d.ts +16 -0
- package/dist/components/ui/breadcrumb.d.ts.map +1 -0
- package/dist/components/ui/breadcrumb.js +28 -0
- package/dist/components/ui/breadcrumb.js.map +1 -0
- package/dist/components/ui/button-group.d.ts +10 -0
- package/dist/components/ui/button-group.d.ts.map +1 -0
- package/dist/components/ui/button-group.js +27 -0
- package/dist/components/ui/button-group.js.map +1 -0
- package/dist/components/ui/button.d.ts +11 -0
- package/dist/components/ui/button.d.ts.map +1 -0
- package/dist/components/ui/button.js +42 -0
- package/dist/components/ui/button.js.map +1 -0
- package/dist/components/ui/calendar.d.ts +9 -0
- package/dist/components/ui/calendar.d.ts.map +1 -0
- package/dist/components/ui/calendar.js +78 -0
- package/dist/components/ui/calendar.js.map +1 -0
- package/dist/components/ui/card.d.ts +8 -0
- package/dist/components/ui/card.d.ts.map +1 -0
- package/dist/components/ui/card.js +17 -0
- package/dist/components/ui/card.js.map +1 -0
- package/dist/components/ui/carousel.d.ts +9 -0
- package/dist/components/ui/carousel.d.ts.map +1 -0
- package/dist/components/ui/carousel.js +110 -0
- package/dist/components/ui/carousel.js.map +1 -0
- package/dist/components/ui/chart.d.ts +28 -0
- package/dist/components/ui/chart.d.ts.map +1 -0
- package/dist/components/ui/chart.js +168 -0
- package/dist/components/ui/chart.js.map +1 -0
- package/dist/components/ui/checkbox.d.ts +3 -0
- package/dist/components/ui/checkbox.d.ts.map +1 -0
- package/dist/components/ui/checkbox.js +12 -0
- package/dist/components/ui/checkbox.js.map +1 -0
- package/dist/components/ui/collapsible.d.ts +5 -0
- package/dist/components/ui/collapsible.d.ts.map +1 -0
- package/dist/components/ui/collapsible.js +7 -0
- package/dist/components/ui/collapsible.js.map +1 -0
- package/dist/components/ui/command.d.ts +16 -0
- package/dist/components/ui/command.d.ts.map +1 -0
- package/dist/components/ui/command.js +38 -0
- package/dist/components/ui/command.js.map +1 -0
- package/dist/components/ui/context-menu.d.ts +21 -0
- package/dist/components/ui/context-menu.d.ts.map +1 -0
- package/dist/components/ui/context-menu.js +52 -0
- package/dist/components/ui/context-menu.js.map +1 -0
- package/dist/components/ui/dialog.d.ts +19 -0
- package/dist/components/ui/dialog.d.ts.map +1 -0
- package/dist/components/ui/dialog.js +31 -0
- package/dist/components/ui/dialog.js.map +1 -0
- package/dist/components/ui/drawer.d.ts +23 -0
- package/dist/components/ui/drawer.d.ts.map +1 -0
- package/dist/components/ui/drawer.js +28 -0
- package/dist/components/ui/drawer.js.map +1 -0
- package/dist/components/ui/dropdown-menu.d.ts +21 -0
- package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
- package/dist/components/ui/dropdown-menu.js +55 -0
- package/dist/components/ui/dropdown-menu.js.map +1 -0
- package/dist/components/ui/empty.d.ts +10 -0
- package/dist/components/ui/empty.d.ts.map +1 -0
- package/dist/components/ui/empty.js +33 -0
- package/dist/components/ui/empty.js.map +1 -0
- package/dist/components/ui/field.d.ts +23 -0
- package/dist/components/ui/field.d.ts.map +1 -0
- package/dist/components/ui/field.js +82 -0
- package/dist/components/ui/field.js.map +1 -0
- package/dist/components/ui/form.d.ts +11 -0
- package/dist/components/ui/form.d.ts.map +1 -0
- package/dist/components/ui/form.js +71 -0
- package/dist/components/ui/form.js.map +1 -0
- package/dist/components/ui/hover-card.d.ts +5 -0
- package/dist/components/ui/hover-card.d.ts.map +1 -0
- package/dist/components/ui/hover-card.js +9 -0
- package/dist/components/ui/hover-card.js.map +1 -0
- package/dist/components/ui/index.d.ts +7 -0
- package/dist/components/ui/index.d.ts.map +1 -0
- package/dist/components/ui/index.js +7 -0
- package/dist/components/ui/index.js.map +1 -0
- package/dist/components/ui/input-group.d.ts +13 -0
- package/dist/components/ui/input-group.d.ts.map +1 -0
- package/dist/components/ui/input-group.js +63 -0
- package/dist/components/ui/input-group.js.map +1 -0
- package/dist/components/ui/input-otp.d.ts +6 -0
- package/dist/components/ui/input-otp.d.ts.map +1 -0
- package/dist/components/ui/input-otp.js +25 -0
- package/dist/components/ui/input-otp.js.map +1 -0
- package/dist/components/ui/input.d.ts +3 -0
- package/dist/components/ui/input.d.ts.map +1 -0
- package/dist/components/ui/input.js +8 -0
- package/dist/components/ui/input.js.map +1 -0
- package/dist/components/ui/item.d.ts +19 -0
- package/dist/components/ui/item.d.ts.map +1 -0
- package/dist/components/ui/item.js +67 -0
- package/dist/components/ui/item.js.map +1 -0
- package/dist/components/ui/kbd.d.ts +4 -0
- package/dist/components/ui/kbd.d.ts.map +1 -0
- package/dist/components/ui/kbd.js +9 -0
- package/dist/components/ui/kbd.js.map +1 -0
- package/dist/components/ui/label.d.ts +3 -0
- package/dist/components/ui/label.d.ts.map +1 -0
- package/dist/components/ui/label.js +10 -0
- package/dist/components/ui/label.js.map +1 -0
- package/dist/components/ui/menubar.d.ts +23 -0
- package/dist/components/ui/menubar.d.ts.map +1 -0
- package/dist/components/ui/menubar.js +64 -0
- package/dist/components/ui/menubar.js.map +1 -0
- package/dist/components/ui/navigation-menu.d.ts +11 -0
- package/dist/components/ui/navigation-menu.d.ts.map +1 -0
- package/dist/components/ui/navigation-menu.js +34 -0
- package/dist/components/ui/navigation-menu.js.map +1 -0
- package/dist/components/ui/network-selector.d.ts +22 -0
- package/dist/components/ui/network-selector.d.ts.map +1 -0
- package/dist/components/ui/network-selector.js +99 -0
- package/dist/components/ui/network-selector.js.map +1 -0
- package/dist/components/ui/pagination.d.ts +29 -0
- package/dist/components/ui/pagination.d.ts.map +1 -0
- package/dist/components/ui/pagination.js +32 -0
- package/dist/components/ui/pagination.js.map +1 -0
- package/dist/components/ui/popover.d.ts +6 -0
- package/dist/components/ui/popover.d.ts.map +1 -0
- package/dist/components/ui/popover.js +12 -0
- package/dist/components/ui/popover.js.map +1 -0
- package/dist/components/ui/progress.d.ts +3 -0
- package/dist/components/ui/progress.d.ts.map +1 -0
- package/dist/components/ui/progress.js +10 -0
- package/dist/components/ui/progress.js.map +1 -0
- package/dist/components/ui/radio-group.d.ts +4 -0
- package/dist/components/ui/radio-group.d.ts.map +1 -0
- package/dist/components/ui/radio-group.js +18 -0
- package/dist/components/ui/radio-group.js.map +1 -0
- package/dist/components/ui/resizable.d.ts +8 -0
- package/dist/components/ui/resizable.d.ts.map +1 -0
- package/dist/components/ui/resizable.js +13 -0
- package/dist/components/ui/resizable.js.map +1 -0
- package/dist/components/ui/scroll-area.d.ts +4 -0
- package/dist/components/ui/scroll-area.d.ts.map +1 -0
- package/dist/components/ui/scroll-area.js +19 -0
- package/dist/components/ui/scroll-area.js.map +1 -0
- package/dist/components/ui/select.d.ts +12 -0
- package/dist/components/ui/select.d.ts.map +1 -0
- package/dist/components/ui/select.js +51 -0
- package/dist/components/ui/select.js.map +1 -0
- package/dist/components/ui/separator.d.ts +3 -0
- package/dist/components/ui/separator.d.ts.map +1 -0
- package/dist/components/ui/separator.js +7 -0
- package/dist/components/ui/separator.js.map +1 -0
- package/dist/components/ui/sheet.d.ts +19 -0
- package/dist/components/ui/sheet.d.ts.map +1 -0
- package/dist/components/ui/sheet.js +46 -0
- package/dist/components/ui/sheet.js.map +1 -0
- package/dist/components/ui/sidebar.d.ts +58 -0
- package/dist/components/ui/sidebar.d.ts.map +1 -0
- package/dist/components/ui/sidebar.js +246 -0
- package/dist/components/ui/sidebar.js.map +1 -0
- package/dist/components/ui/skeleton.d.ts +3 -0
- package/dist/components/ui/skeleton.d.ts.map +1 -0
- package/dist/components/ui/skeleton.js +6 -0
- package/dist/components/ui/skeleton.js.map +1 -0
- package/dist/components/ui/slider.d.ts +3 -0
- package/dist/components/ui/slider.d.ts.map +1 -0
- package/dist/components/ui/slider.js +12 -0
- package/dist/components/ui/slider.js.map +1 -0
- package/dist/components/ui/sonner.d.ts +5 -0
- package/dist/components/ui/sonner.d.ts.map +1 -0
- package/dist/components/ui/sonner.js +16 -0
- package/dist/components/ui/sonner.js.map +1 -0
- package/dist/components/ui/spinner.d.ts +3 -0
- package/dist/components/ui/spinner.d.ts.map +1 -0
- package/dist/components/ui/spinner.js +7 -0
- package/dist/components/ui/spinner.js.map +1 -0
- package/dist/components/ui/surface-variant.d.ts +4 -0
- package/dist/components/ui/surface-variant.d.ts.map +1 -0
- package/dist/components/ui/surface-variant.js +10 -0
- package/dist/components/ui/surface-variant.js.map +1 -0
- package/dist/components/ui/switch.d.ts +3 -0
- package/dist/components/ui/switch.d.ts.map +1 -0
- package/dist/components/ui/switch.js +9 -0
- package/dist/components/ui/switch.js.map +1 -0
- package/dist/components/ui/table.d.ts +10 -0
- package/dist/components/ui/table.d.ts.map +1 -0
- package/dist/components/ui/table.js +22 -0
- package/dist/components/ui/table.js.map +1 -0
- package/dist/components/ui/tabs.d.ts +6 -0
- package/dist/components/ui/tabs.d.ts.map +1 -0
- package/dist/components/ui/tabs.js +13 -0
- package/dist/components/ui/tabs.js.map +1 -0
- package/dist/components/ui/textarea.d.ts +3 -0
- package/dist/components/ui/textarea.d.ts.map +1 -0
- package/dist/components/ui/textarea.js +8 -0
- package/dist/components/ui/textarea.js.map +1 -0
- package/dist/components/ui/toast.d.ts +12 -0
- package/dist/components/ui/toast.d.ts.map +1 -0
- package/dist/components/ui/toast.js +35 -0
- package/dist/components/ui/toast.js.map +1 -0
- package/dist/components/ui/toaster.d.ts +2 -0
- package/dist/components/ui/toaster.d.ts.map +1 -0
- package/dist/components/ui/toaster.js +19 -0
- package/dist/components/ui/toaster.js.map +1 -0
- package/dist/components/ui/toggle-group.d.ts +4 -0
- package/dist/components/ui/toggle-group.d.ts.map +1 -0
- package/dist/components/ui/toggle-group.js +27 -0
- package/dist/components/ui/toggle-group.js.map +1 -0
- package/dist/components/ui/toggle.d.ts +4 -0
- package/dist/components/ui/toggle.d.ts.map +1 -0
- package/dist/components/ui/toggle.js +25 -0
- package/dist/components/ui/toggle.js.map +1 -0
- package/dist/components/ui/tooltip.d.ts +6 -0
- package/dist/components/ui/tooltip.d.ts.map +1 -0
- package/dist/components/ui/tooltip.js +13 -0
- package/dist/components/ui/tooltip.js.map +1 -0
- package/dist/components/visual/ManowarField.d.ts +9 -0
- package/dist/components/visual/ManowarField.d.ts.map +1 -0
- package/dist/components/visual/ManowarField.js +111 -0
- package/dist/components/visual/ManowarField.js.map +1 -0
- package/dist/components/warp-form.d.ts +22 -0
- package/dist/components/warp-form.d.ts.map +1 -0
- package/dist/components/warp-form.js +743 -0
- package/dist/components/warp-form.js.map +1 -0
- package/dist/hooks/use-agents.d.ts +17 -0
- package/dist/hooks/use-agents.d.ts.map +1 -0
- package/dist/hooks/use-agents.js +64 -0
- package/dist/hooks/use-agents.js.map +1 -0
- package/dist/hooks/use-api.d.ts +28 -0
- package/dist/hooks/use-api.d.ts.map +1 -0
- package/dist/hooks/use-api.js +114 -0
- package/dist/hooks/use-api.js.map +1 -0
- package/dist/hooks/use-chat.d.ts +64 -0
- package/dist/hooks/use-chat.d.ts.map +1 -0
- package/dist/hooks/use-chat.js +350 -0
- package/dist/hooks/use-chat.js.map +1 -0
- package/dist/hooks/use-coordinator.d.ts +41 -0
- package/dist/hooks/use-coordinator.d.ts.map +1 -0
- package/dist/hooks/use-coordinator.js +110 -0
- package/dist/hooks/use-coordinator.js.map +1 -0
- package/dist/hooks/use-dispenser.d.ts +68 -0
- package/dist/hooks/use-dispenser.d.ts.map +1 -0
- package/dist/hooks/use-dispenser.js +113 -0
- package/dist/hooks/use-dispenser.js.map +1 -0
- package/dist/hooks/use-lyria.d.ts +58 -0
- package/dist/hooks/use-lyria.d.ts.map +1 -0
- package/dist/hooks/use-lyria.js +254 -0
- package/dist/hooks/use-lyria.js.map +1 -0
- package/dist/hooks/use-mobile.d.ts +2 -0
- package/dist/hooks/use-mobile.d.ts.map +1 -0
- package/dist/hooks/use-mobile.js +16 -0
- package/dist/hooks/use-mobile.js.map +1 -0
- package/dist/hooks/use-model.d.ts +34 -0
- package/dist/hooks/use-model.d.ts.map +1 -0
- package/dist/hooks/use-model.js +105 -0
- package/dist/hooks/use-model.js.map +1 -0
- package/dist/hooks/use-motion-governor.d.ts +10 -0
- package/dist/hooks/use-motion-governor.d.ts.map +1 -0
- package/dist/hooks/use-motion-governor.js +63 -0
- package/dist/hooks/use-motion-governor.js.map +1 -0
- package/dist/hooks/use-multichain.d.ts +34 -0
- package/dist/hooks/use-multichain.d.ts.map +1 -0
- package/dist/hooks/use-multichain.js +120 -0
- package/dist/hooks/use-multichain.js.map +1 -0
- package/dist/hooks/use-onchain.d.ts +145 -0
- package/dist/hooks/use-onchain.d.ts.map +1 -0
- package/dist/hooks/use-onchain.js +652 -0
- package/dist/hooks/use-onchain.js.map +1 -0
- package/dist/hooks/use-registry.d.ts +140 -0
- package/dist/hooks/use-registry.d.ts.map +1 -0
- package/dist/hooks/use-registry.js +264 -0
- package/dist/hooks/use-registry.js.map +1 -0
- package/dist/hooks/use-services.d.ts +66 -0
- package/dist/hooks/use-services.d.ts.map +1 -0
- package/dist/hooks/use-services.js +216 -0
- package/dist/hooks/use-services.js.map +1 -0
- package/dist/hooks/use-session.d.ts +36 -0
- package/dist/hooks/use-session.d.ts.map +1 -0
- package/dist/hooks/use-session.js +449 -0
- package/dist/hooks/use-session.js.map +1 -0
- package/dist/hooks/use-sse.d.ts +8 -0
- package/dist/hooks/use-sse.d.ts.map +1 -0
- package/dist/hooks/use-sse.js +86 -0
- package/dist/hooks/use-sse.js.map +1 -0
- package/dist/hooks/use-tabs.d.ts +2 -0
- package/dist/hooks/use-tabs.d.ts.map +1 -0
- package/dist/hooks/use-tabs.js +43 -0
- package/dist/hooks/use-tabs.js.map +1 -0
- package/dist/hooks/use-toast.d.ts +41 -0
- package/dist/hooks/use-toast.d.ts.map +1 -0
- package/dist/hooks/use-toast.js +127 -0
- package/dist/hooks/use-toast.js.map +1 -0
- package/dist/hooks/use-triggers.d.ts +51 -0
- package/dist/hooks/use-triggers.d.ts.map +1 -0
- package/dist/hooks/use-triggers.js +212 -0
- package/dist/hooks/use-triggers.js.map +1 -0
- package/dist/hooks/use-warp.d.ts +53 -0
- package/dist/hooks/use-warp.d.ts.map +1 -0
- package/dist/hooks/use-warp.js +231 -0
- package/dist/hooks/use-warp.js.map +1 -0
- package/dist/hooks/use-workflow.d.ts +40 -0
- package/dist/hooks/use-workflow.d.ts.map +1 -0
- package/dist/hooks/use-workflow.js +358 -0
- package/dist/hooks/use-workflow.js.map +1 -0
- package/dist/lib/agents.d.ts +186 -0
- package/dist/lib/agents.d.ts.map +1 -0
- package/dist/lib/agents.js +633 -0
- package/dist/lib/agents.js.map +1 -0
- package/dist/lib/api.d.ts +224 -0
- package/dist/lib/api.d.ts.map +1 -0
- package/dist/lib/api.js +443 -0
- package/dist/lib/api.js.map +1 -0
- package/dist/lib/chains.d.ts +151 -0
- package/dist/lib/chains.d.ts.map +1 -0
- package/dist/lib/chains.js +297 -0
- package/dist/lib/chains.js.map +1 -0
- package/dist/lib/contracts.d.ts +960 -0
- package/dist/lib/contracts.d.ts.map +1 -0
- package/dist/lib/contracts.js +716 -0
- package/dist/lib/contracts.js.map +1 -0
- package/dist/lib/cronos/aa.d.ts +111 -0
- package/dist/lib/cronos/aa.d.ts.map +1 -0
- package/dist/lib/cronos/aa.js +312 -0
- package/dist/lib/cronos/aa.js.map +1 -0
- package/dist/lib/cronos/facilitator.d.ts +87 -0
- package/dist/lib/cronos/facilitator.d.ts.map +1 -0
- package/dist/lib/cronos/facilitator.js +183 -0
- package/dist/lib/cronos/facilitator.js.map +1 -0
- package/dist/lib/evm.d.ts +45 -0
- package/dist/lib/evm.d.ts.map +1 -0
- package/dist/lib/evm.js +78 -0
- package/dist/lib/evm.js.map +1 -0
- package/dist/lib/mockData.d.ts +26 -0
- package/dist/lib/mockData.d.ts.map +1 -0
- package/dist/lib/mockData.js +89 -0
- package/dist/lib/mockData.js.map +1 -0
- package/dist/lib/models.d.ts +122 -0
- package/dist/lib/models.d.ts.map +1 -0
- package/dist/lib/models.js +174 -0
- package/dist/lib/models.js.map +1 -0
- package/dist/lib/multimodal.d.ts +53 -0
- package/dist/lib/multimodal.d.ts.map +1 -0
- package/dist/lib/multimodal.js +204 -0
- package/dist/lib/multimodal.js.map +1 -0
- package/dist/lib/payment.d.ts +67 -0
- package/dist/lib/payment.d.ts.map +1 -0
- package/dist/lib/payment.js +236 -0
- package/dist/lib/payment.js.map +1 -0
- package/dist/lib/pinata.d.ts +140 -0
- package/dist/lib/pinata.d.ts.map +1 -0
- package/dist/lib/pinata.js +209 -0
- package/dist/lib/pinata.js.map +1 -0
- package/dist/lib/queryClient.d.ts +9 -0
- package/dist/lib/queryClient.d.ts.map +1 -0
- package/dist/lib/queryClient.js +42 -0
- package/dist/lib/queryClient.js.map +1 -0
- package/dist/lib/services.d.ts +164 -0
- package/dist/lib/services.d.ts.map +1 -0
- package/dist/lib/services.js +304 -0
- package/dist/lib/services.js.map +1 -0
- package/dist/lib/share.d.ts +12 -0
- package/dist/lib/share.d.ts.map +1 -0
- package/dist/lib/share.js +39 -0
- package/dist/lib/share.js.map +1 -0
- package/dist/lib/triggers.d.ts +128 -0
- package/dist/lib/triggers.d.ts.map +1 -0
- package/dist/lib/triggers.js +305 -0
- package/dist/lib/triggers.js.map +1 -0
- package/dist/lib/utils.d.ts +3 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +6 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/lib/visual-system.d.ts +39 -0
- package/dist/lib/visual-system.d.ts.map +1 -0
- package/dist/lib/visual-system.js +129 -0
- package/dist/lib/visual-system.js.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +2 -0
- package/dist/utils/index.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
// Available AI models for the Manowar platform
|
|
2
|
+
// Users can select any of these for their agents/workflows
|
|
3
|
+
// Models are fetched dynamically from /v1/models (canonical) with
|
|
4
|
+
// fallback to /api/registry/models/available for compatibility.
|
|
5
|
+
const API_BASE = (import.meta.env.VITE_API_URL || "https://api.compose.market").replace(/\/+$/, "");
|
|
6
|
+
/**
|
|
7
|
+
* Fetch available models from canonical /v1/models endpoint.
|
|
8
|
+
* Falls back to /api/registry/models/available if needed.
|
|
9
|
+
*/
|
|
10
|
+
export async function fetchAvailableModels() {
|
|
11
|
+
try {
|
|
12
|
+
const v1Res = await fetch(`${API_BASE}/v1/models`);
|
|
13
|
+
if (v1Res.ok) {
|
|
14
|
+
const data = await v1Res.json();
|
|
15
|
+
const models = (data.data || []).map(openAIModelToAIModel);
|
|
16
|
+
if (models.length > 0) {
|
|
17
|
+
console.log(`[models] Loaded ${models.length} models from /v1/models`);
|
|
18
|
+
return models;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
console.warn("[models] Failed to fetch /v1/models, falling back to registry:", error);
|
|
24
|
+
}
|
|
25
|
+
const allModels = [];
|
|
26
|
+
let page = 1;
|
|
27
|
+
const limit = 500;
|
|
28
|
+
let hasMore = true;
|
|
29
|
+
try {
|
|
30
|
+
while (hasMore) {
|
|
31
|
+
const res = await fetch(`${API_BASE}/api/registry/models/available?page=${page}&limit=${limit}`);
|
|
32
|
+
if (!res.ok)
|
|
33
|
+
throw new Error(`Failed to fetch models: ${res.status}`);
|
|
34
|
+
const data = await res.json();
|
|
35
|
+
const models = (data.models || []).map((m) => ({
|
|
36
|
+
...m,
|
|
37
|
+
id: m.modelId || m.id,
|
|
38
|
+
source: m.provider || m.source,
|
|
39
|
+
task: m.taskType || m.task,
|
|
40
|
+
contextLength: m.contextWindow || m.contextLength,
|
|
41
|
+
}));
|
|
42
|
+
allModels.push(...models);
|
|
43
|
+
hasMore = data.hasMore === true;
|
|
44
|
+
page++;
|
|
45
|
+
if (page > 150)
|
|
46
|
+
break;
|
|
47
|
+
}
|
|
48
|
+
console.log(`[models] Loaded ${allModels.length} models from /api/registry/models/available`);
|
|
49
|
+
return allModels;
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
console.error("[models] Failed to fetch models from all sources:", error);
|
|
53
|
+
return [];
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Fetch all models including unavailable ones (registry full view)
|
|
58
|
+
*/
|
|
59
|
+
export async function fetchModelRegistry() {
|
|
60
|
+
try {
|
|
61
|
+
const res = await fetch(`${API_BASE}/api/registry/models`);
|
|
62
|
+
if (!res.ok)
|
|
63
|
+
throw new Error(`Failed to fetch registry: ${res.status}`);
|
|
64
|
+
return await res.json();
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
console.error("[models] Failed to fetch registry:", error);
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Fetch models from OpenAI-compatible /v1/models endpoint
|
|
73
|
+
* Returns optimized set (~810 models) for fast app loading
|
|
74
|
+
*/
|
|
75
|
+
export async function fetchOpenAIModels() {
|
|
76
|
+
try {
|
|
77
|
+
const res = await fetch(`${API_BASE}/v1/models`);
|
|
78
|
+
if (!res.ok)
|
|
79
|
+
throw new Error(`Failed to fetch /v1/models: ${res.status}`);
|
|
80
|
+
const data = await res.json();
|
|
81
|
+
console.log(`[models] Loaded ${data.data.length} models from /v1/models`);
|
|
82
|
+
return data.data;
|
|
83
|
+
}
|
|
84
|
+
catch (error) {
|
|
85
|
+
console.error("[models] Failed to fetch /v1/models:", error);
|
|
86
|
+
return [];
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Fetch extended models from /v1/models/all endpoint
|
|
91
|
+
* Returns full catalog (~43k+ models)
|
|
92
|
+
*/
|
|
93
|
+
export async function fetchOpenAIModelsExtended() {
|
|
94
|
+
try {
|
|
95
|
+
const res = await fetch(`${API_BASE}/v1/models/all`);
|
|
96
|
+
if (!res.ok)
|
|
97
|
+
throw new Error(`Failed to fetch /v1/models/all: ${res.status}`);
|
|
98
|
+
const data = await res.json();
|
|
99
|
+
console.log(`[models] Loaded ${data.data.length} extended models from /v1/models/all`);
|
|
100
|
+
return data.data;
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
console.error("[models] Failed to fetch /v1/models/all:", error);
|
|
104
|
+
return [];
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Fetch a specific model by ID from /v1/models/:model
|
|
109
|
+
*/
|
|
110
|
+
export async function fetchOpenAIModel(modelId) {
|
|
111
|
+
try {
|
|
112
|
+
const res = await fetch(`${API_BASE}/v1/models/${encodeURIComponent(modelId)}`);
|
|
113
|
+
if (!res.ok) {
|
|
114
|
+
if (res.status === 404)
|
|
115
|
+
return null;
|
|
116
|
+
throw new Error(`Failed to fetch model: ${res.status}`);
|
|
117
|
+
}
|
|
118
|
+
return await res.json();
|
|
119
|
+
}
|
|
120
|
+
catch (error) {
|
|
121
|
+
console.error(`[models] Failed to fetch model ${modelId}:`, error);
|
|
122
|
+
return null;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Convert OpenAI model format to AIModel format
|
|
127
|
+
*/
|
|
128
|
+
export function openAIModelToAIModel(model) {
|
|
129
|
+
const source = (model.provider || model.owned_by || "openai");
|
|
130
|
+
return {
|
|
131
|
+
id: model.id,
|
|
132
|
+
name: model.name || model.id,
|
|
133
|
+
ownedBy: model.owned_by,
|
|
134
|
+
source,
|
|
135
|
+
task: model.task_type,
|
|
136
|
+
description: model.description,
|
|
137
|
+
available: true,
|
|
138
|
+
contextLength: model.context_window,
|
|
139
|
+
maxOutputTokens: model.max_output_tokens,
|
|
140
|
+
pricing: model.pricing,
|
|
141
|
+
capabilities: model.capabilities,
|
|
142
|
+
inputModalities: model.input_modalities,
|
|
143
|
+
outputModalities: model.output_modalities,
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Get the API key environment variable name for a provider
|
|
148
|
+
* Useful for UI hints on what keys are needed
|
|
149
|
+
*/
|
|
150
|
+
export function getApiKeyEnvName(provider) {
|
|
151
|
+
switch (provider) {
|
|
152
|
+
case "openai":
|
|
153
|
+
return "OPENAI_API_KEY";
|
|
154
|
+
case "anthropic":
|
|
155
|
+
return "ANTHROPIC_API_KEY";
|
|
156
|
+
case "google":
|
|
157
|
+
return "GOOGLE_GENERATIVE_AI_API_KEY";
|
|
158
|
+
case "asi-one":
|
|
159
|
+
return "ASI_ONE_API_KEY";
|
|
160
|
+
case "asi-cloud":
|
|
161
|
+
case "oss":
|
|
162
|
+
return "ASI_INFERENCE_API_KEY";
|
|
163
|
+
case "huggingface":
|
|
164
|
+
return "HUGGING_FACE_INFERENCE_TOKEN";
|
|
165
|
+
case "openrouter":
|
|
166
|
+
return "OPENROUTER_API_KEY";
|
|
167
|
+
case "aiml":
|
|
168
|
+
return "AIML_API_KEY";
|
|
169
|
+
default:
|
|
170
|
+
return "ASI_INFERENCE_API_KEY";
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
;
|
|
174
|
+
//# sourceMappingURL=models.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/lib/models.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Multimodal Response Handler
|
|
3
|
+
*
|
|
4
|
+
* - Parses responses from Lambda/Manowar into unified format
|
|
5
|
+
* - Uploads base64 media to Pinata → IPFS URLs
|
|
6
|
+
* - Handles binary blobs (audio, video, image)
|
|
7
|
+
*/
|
|
8
|
+
import { type MultimodalResult } from "./api";
|
|
9
|
+
type VideoStatusFetch = (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
|
|
10
|
+
/**
|
|
11
|
+
* Parse any Lambda/Manowar response into unified MultimodalResult
|
|
12
|
+
* Handles SSE, JSON, and binary responses
|
|
13
|
+
*/
|
|
14
|
+
export declare function parseMultimodalResponse(response: Response, options?: {
|
|
15
|
+
onStreamChunk?: (chunk: string) => void;
|
|
16
|
+
uploadToPinata?: boolean;
|
|
17
|
+
conversationId?: string;
|
|
18
|
+
onVideoPolling?: {
|
|
19
|
+
onProgress?: (status: string, progress?: number) => void;
|
|
20
|
+
onComplete: (url: string) => void;
|
|
21
|
+
onError: (error: string) => void;
|
|
22
|
+
};
|
|
23
|
+
videoStatusFetch?: VideoStatusFetch;
|
|
24
|
+
}): Promise<MultimodalResult>;
|
|
25
|
+
/**
|
|
26
|
+
* Upload base64-encoded media to Pinata
|
|
27
|
+
*/
|
|
28
|
+
export declare function uploadBase64ToPinata(base64: string, type: "image" | "audio" | "video", conversationId?: string): Promise<string>;
|
|
29
|
+
/**
|
|
30
|
+
* Upload blob to Pinata
|
|
31
|
+
*/
|
|
32
|
+
export declare function uploadBlobToPinata(blob: Blob, type: "image" | "audio" | "video", conversationId?: string): Promise<string>;
|
|
33
|
+
/**
|
|
34
|
+
* Revoke object URLs to free memory
|
|
35
|
+
*/
|
|
36
|
+
export declare function cleanupObjectUrl(url: string): void;
|
|
37
|
+
export interface VideoPollingCallbacks {
|
|
38
|
+
onProgress?: (status: string, progress?: number) => void;
|
|
39
|
+
onComplete: (url: string) => void;
|
|
40
|
+
onError: (error: string) => void;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Poll for async video generation completion
|
|
44
|
+
* Automatically uploads to Pinata when complete
|
|
45
|
+
*/
|
|
46
|
+
export declare function pollVideoJob(jobId: string, callbacks: VideoPollingCallbacks, options?: {
|
|
47
|
+
pollIntervalMs?: number;
|
|
48
|
+
maxAttempts?: number;
|
|
49
|
+
conversationId?: string;
|
|
50
|
+
fetcher?: VideoStatusFetch;
|
|
51
|
+
}): Promise<void>;
|
|
52
|
+
export {};
|
|
53
|
+
//# sourceMappingURL=multimodal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multimodal.d.ts","sourceRoot":"","sources":["../../src/lib/multimodal.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAGH,KAAK,gBAAgB,EAMxB,MAAM,OAAO,CAAC;AAEf,KAAK,gBAAgB,GAAG,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAM5F;;;GAGG;AACH,wBAAsB,uBAAuB,CACzC,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE;IACN,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,cAAc,CAAC,EAAE;QACb,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;QACzD,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;QAClC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;KACpC,CAAC;IACF,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACvC,GACF,OAAO,CAAC,gBAAgB,CAAC,CA8E3B;AAgCD;;GAEG;AACH,wBAAsB,oBAAoB,CACtC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,EACjC,cAAc,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,MAAM,CAAC,CA4BjB;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACpC,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,EACjC,cAAc,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,MAAM,CAAC,CAYjB;AAMD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAIlD;AAMD,MAAM,WAAW,qBAAqB;IAClC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACzD,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAC9B,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,qBAAqB,EAChC,OAAO,CAAC,EAAE;IACN,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC9B,GACF,OAAO,CAAC,IAAI,CAAC,CAoDf"}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Multimodal Response Handler
|
|
3
|
+
*
|
|
4
|
+
* - Parses responses from Lambda/Manowar into unified format
|
|
5
|
+
* - Uploads base64 media to Pinata → IPFS URLs
|
|
6
|
+
* - Handles binary blobs (audio, video, image)
|
|
7
|
+
*/
|
|
8
|
+
import { uploadConversationFile } from "./pinata";
|
|
9
|
+
import { API_BASE_URL, TIMEOUT_CONFIG, parseSSEStream, parseJsonResponse, detectResponseType, } from "./api";
|
|
10
|
+
// =============================================================================
|
|
11
|
+
// Parse Any Response
|
|
12
|
+
// =============================================================================
|
|
13
|
+
/**
|
|
14
|
+
* Parse any Lambda/Manowar response into unified MultimodalResult
|
|
15
|
+
* Handles SSE, JSON, and binary responses
|
|
16
|
+
*/
|
|
17
|
+
export async function parseMultimodalResponse(response, options) {
|
|
18
|
+
const contentType = response.headers.get("content-type") || "";
|
|
19
|
+
const responseType = detectResponseType(contentType);
|
|
20
|
+
switch (responseType) {
|
|
21
|
+
case "sse":
|
|
22
|
+
case "text": {
|
|
23
|
+
// Streaming text response
|
|
24
|
+
const reader = response.body?.getReader();
|
|
25
|
+
if (!reader) {
|
|
26
|
+
return { type: "text", success: false, error: "No response body" };
|
|
27
|
+
}
|
|
28
|
+
let fullContent = "";
|
|
29
|
+
for await (const chunk of parseSSEStream(reader)) {
|
|
30
|
+
fullContent += chunk;
|
|
31
|
+
options?.onStreamChunk?.(chunk);
|
|
32
|
+
}
|
|
33
|
+
return { type: "text", success: true, content: fullContent };
|
|
34
|
+
}
|
|
35
|
+
case "json": {
|
|
36
|
+
const data = await response.json();
|
|
37
|
+
const result = parseJsonResponse(data);
|
|
38
|
+
// Handle async video job - trigger polling if callbacks provided
|
|
39
|
+
if (result.polling && result.jobId && options?.onVideoPolling) {
|
|
40
|
+
// Start polling in background, return immediately with polling status
|
|
41
|
+
pollVideoJob(result.jobId, options.onVideoPolling, {
|
|
42
|
+
conversationId: options.conversationId,
|
|
43
|
+
fetcher: options.videoStatusFetch,
|
|
44
|
+
});
|
|
45
|
+
return result;
|
|
46
|
+
}
|
|
47
|
+
// Upload base64 to Pinata if enabled
|
|
48
|
+
if (options?.uploadToPinata && result.base64 && !result.url) {
|
|
49
|
+
try {
|
|
50
|
+
const url = await uploadBase64ToPinata(result.base64, result.type, options.conversationId);
|
|
51
|
+
return { ...result, url, base64: undefined };
|
|
52
|
+
}
|
|
53
|
+
catch (err) {
|
|
54
|
+
console.error("[multimodal] Pinata upload failed:", err);
|
|
55
|
+
// Return with base64 as fallback
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return result;
|
|
59
|
+
}
|
|
60
|
+
case "image": {
|
|
61
|
+
return await handleBinaryResponse(response, "image", options);
|
|
62
|
+
}
|
|
63
|
+
case "audio": {
|
|
64
|
+
return await handleBinaryResponse(response, "audio", options);
|
|
65
|
+
}
|
|
66
|
+
case "video": {
|
|
67
|
+
return await handleBinaryResponse(response, "video", options);
|
|
68
|
+
}
|
|
69
|
+
default: {
|
|
70
|
+
// Binary fallback
|
|
71
|
+
const blob = await response.blob();
|
|
72
|
+
const url = URL.createObjectURL(blob);
|
|
73
|
+
return {
|
|
74
|
+
type: "text",
|
|
75
|
+
success: true,
|
|
76
|
+
url,
|
|
77
|
+
mimeType: contentType,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
// =============================================================================
|
|
83
|
+
// Binary Response Handler
|
|
84
|
+
// =============================================================================
|
|
85
|
+
async function handleBinaryResponse(response, type, options) {
|
|
86
|
+
const contentType = response.headers.get("content-type") || "";
|
|
87
|
+
const blob = await response.blob();
|
|
88
|
+
if (options?.uploadToPinata) {
|
|
89
|
+
try {
|
|
90
|
+
const url = await uploadBlobToPinata(blob, type, options.conversationId);
|
|
91
|
+
return { type, success: true, url, mimeType: contentType };
|
|
92
|
+
}
|
|
93
|
+
catch (err) {
|
|
94
|
+
console.error(`[multimodal] Pinata upload failed for ${type}:`, err);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
// Fallback to object URL
|
|
98
|
+
const url = URL.createObjectURL(blob);
|
|
99
|
+
return { type, success: true, url, mimeType: contentType };
|
|
100
|
+
}
|
|
101
|
+
// =============================================================================
|
|
102
|
+
// Pinata Upload Helpers
|
|
103
|
+
// =============================================================================
|
|
104
|
+
/**
|
|
105
|
+
* Upload base64-encoded media to Pinata
|
|
106
|
+
*/
|
|
107
|
+
export async function uploadBase64ToPinata(base64, type, conversationId) {
|
|
108
|
+
const mimeTypes = {
|
|
109
|
+
image: "image/png",
|
|
110
|
+
audio: "audio/wav",
|
|
111
|
+
video: "video/mp4",
|
|
112
|
+
};
|
|
113
|
+
const extensions = {
|
|
114
|
+
image: "png",
|
|
115
|
+
audio: "wav",
|
|
116
|
+
video: "mp4",
|
|
117
|
+
};
|
|
118
|
+
// Convert base64 to blob
|
|
119
|
+
const byteCharacters = atob(base64);
|
|
120
|
+
const byteNumbers = new Array(byteCharacters.length);
|
|
121
|
+
for (let i = 0; i < byteCharacters.length; i++) {
|
|
122
|
+
byteNumbers[i] = byteCharacters.charCodeAt(i);
|
|
123
|
+
}
|
|
124
|
+
const byteArray = new Uint8Array(byteNumbers);
|
|
125
|
+
const blob = new Blob([byteArray], { type: mimeTypes[type] });
|
|
126
|
+
// Create file for upload
|
|
127
|
+
const filename = `${type}-${Date.now()}.${extensions[type]}`;
|
|
128
|
+
const file = new File([blob], filename, { type: mimeTypes[type] });
|
|
129
|
+
// Upload via pinata lib
|
|
130
|
+
const { url } = await uploadConversationFile(file, conversationId || "default");
|
|
131
|
+
return url;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Upload blob to Pinata
|
|
135
|
+
*/
|
|
136
|
+
export async function uploadBlobToPinata(blob, type, conversationId) {
|
|
137
|
+
const extensions = {
|
|
138
|
+
image: "png",
|
|
139
|
+
audio: "wav",
|
|
140
|
+
video: "mp4",
|
|
141
|
+
};
|
|
142
|
+
const filename = `${type}-${Date.now()}.${extensions[type]}`;
|
|
143
|
+
const file = new File([blob], filename, { type: blob.type });
|
|
144
|
+
const { url } = await uploadConversationFile(file, conversationId || "default");
|
|
145
|
+
return url;
|
|
146
|
+
}
|
|
147
|
+
// =============================================================================
|
|
148
|
+
// Cleanup
|
|
149
|
+
// =============================================================================
|
|
150
|
+
/**
|
|
151
|
+
* Revoke object URLs to free memory
|
|
152
|
+
*/
|
|
153
|
+
export function cleanupObjectUrl(url) {
|
|
154
|
+
if (url.startsWith("blob:")) {
|
|
155
|
+
URL.revokeObjectURL(url);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Poll for async video generation completion
|
|
160
|
+
* Automatically uploads to Pinata when complete
|
|
161
|
+
*/
|
|
162
|
+
export async function pollVideoJob(jobId, callbacks, options) {
|
|
163
|
+
const API_BASE = API_BASE_URL;
|
|
164
|
+
const pollInterval = options?.pollIntervalMs ?? TIMEOUT_CONFIG.VIDEO_POLL.INTERVAL_MS;
|
|
165
|
+
const maxAttempts = options?.maxAttempts ?? TIMEOUT_CONFIG.VIDEO_POLL.MAX_ATTEMPTS;
|
|
166
|
+
const statusFetch = options?.fetcher ?? fetch;
|
|
167
|
+
let attempts = 0;
|
|
168
|
+
const poll = async () => {
|
|
169
|
+
attempts++;
|
|
170
|
+
try {
|
|
171
|
+
const response = await statusFetch(`${API_BASE}/v1/videos/${encodeURIComponent(jobId)}`, {
|
|
172
|
+
method: "GET",
|
|
173
|
+
headers: { "Content-Type": "application/json" },
|
|
174
|
+
});
|
|
175
|
+
if (!response.ok) {
|
|
176
|
+
throw new Error(`Status check failed: ${response.status}`);
|
|
177
|
+
}
|
|
178
|
+
const data = await response.json();
|
|
179
|
+
if (data.status === "completed" && data.url) {
|
|
180
|
+
// Backend already uploaded to Pinata, just use the URL directly
|
|
181
|
+
callbacks.onComplete(data.url);
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
if (data.status === "failed") {
|
|
185
|
+
callbacks.onError(data.error || "Video generation failed");
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
// Still processing
|
|
189
|
+
callbacks.onProgress?.(data.status, data.progress);
|
|
190
|
+
if (attempts >= maxAttempts) {
|
|
191
|
+
callbacks.onError("Video generation timed out");
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
// Schedule next poll
|
|
195
|
+
setTimeout(poll, pollInterval);
|
|
196
|
+
}
|
|
197
|
+
catch (error) {
|
|
198
|
+
callbacks.onError(error instanceof Error ? error.message : "Unknown error");
|
|
199
|
+
}
|
|
200
|
+
};
|
|
201
|
+
// Start polling
|
|
202
|
+
poll();
|
|
203
|
+
}
|
|
204
|
+
//# sourceMappingURL=multimodal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multimodal.js","sourceRoot":"","sources":["../../src/lib/multimodal.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* x402 Payment Utilities
|
|
3
|
+
*
|
|
4
|
+
* Chain-aware payment routing for multichain x402 support:
|
|
5
|
+
* - Use ThirdWeb x402 V2 via wrapFetchWithPayment
|
|
6
|
+
* - Cronos chains (338, 25) use Cronos x402 V1 via wrapFetchWithCronosPayment
|
|
7
|
+
* This module is fully chain-agnostic - all chain configuration comes from @/lib/chains
|
|
8
|
+
*
|
|
9
|
+
* @module lib/payment
|
|
10
|
+
*/
|
|
11
|
+
import type { Account } from "thirdweb/wallets";
|
|
12
|
+
import type { Wallet } from "thirdweb/wallets";
|
|
13
|
+
export declare const SESSION_BUDGET_EVENT = "compose:session-budget";
|
|
14
|
+
export declare const SESSION_INVALID_EVENT = "compose:session-invalid";
|
|
15
|
+
/**
|
|
16
|
+
* Creates a fetch wrapper that can optionally normalize payment signature headers.
|
|
17
|
+
* Used with ThirdWeb x402 for chains that need signature normalization.
|
|
18
|
+
*
|
|
19
|
+
* @param chainId - Chain ID for EIP-155 v-value calculation (defaults to Cronos Testnet)
|
|
20
|
+
* @returns A fetch-compatible function
|
|
21
|
+
*/
|
|
22
|
+
export declare function createNormalizedFetch(chainId?: number): typeof fetch;
|
|
23
|
+
export interface PaymentFetchParams {
|
|
24
|
+
/** Chain ID for payment routing (determines Cronos vs ThirdWeb flow) */
|
|
25
|
+
chainId: number;
|
|
26
|
+
/** ThirdWeb account for signing (used for Cronos EIP-712 signatures) */
|
|
27
|
+
account: Account;
|
|
28
|
+
/** ThirdWeb wallet (used for ThirdWeb x402 payments) */
|
|
29
|
+
wallet: Wallet;
|
|
30
|
+
/** Maximum payment amount in USDC wei (6 decimals) */
|
|
31
|
+
maxValue: bigint;
|
|
32
|
+
/** Session bypass: compose key token for Authorization header */
|
|
33
|
+
sessionToken?: string;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Chain-aware payment fetch wrapper factory
|
|
37
|
+
*
|
|
38
|
+
* Automatically routes payment handling based on chain:
|
|
39
|
+
* - Cronos chains (338, 25): Uses Cronos x402 V1 with EIP-712 via @crypto.com/facilitator-client
|
|
40
|
+
* - Other EVM chains: Uses ThirdWeb x402 V2
|
|
41
|
+
*
|
|
42
|
+
* SESSION BYPASS: When sessionToken is provided, skips x402 payment flow entirely
|
|
43
|
+
* and uses Compose Key bearer auth for <100ms latency.
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```ts
|
|
47
|
+
* // Standard x402 flow
|
|
48
|
+
* const paymentFetch = createPaymentFetch({
|
|
49
|
+
* chainId: 338, // Cronos Testnet
|
|
50
|
+
* account,
|
|
51
|
+
* wallet,
|
|
52
|
+
* maxValue: BigInt(5000), // $0.005 USDC
|
|
53
|
+
* });
|
|
54
|
+
*
|
|
55
|
+
* // Session bypass flow (instant)
|
|
56
|
+
* const sessionFetch = createPaymentFetch({
|
|
57
|
+
* chainId: 43114,
|
|
58
|
+
* account,
|
|
59
|
+
* wallet,
|
|
60
|
+
* maxValue: BigInt(5000),
|
|
61
|
+
* sessionToken: 'compose-abc123...',
|
|
62
|
+
* });
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
export declare function createPaymentFetch(params: PaymentFetchParams): (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
|
|
66
|
+
export { isCronosChain, CHAIN_IDS } from "./chains";
|
|
67
|
+
//# sourceMappingURL=payment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payment.d.ts","sourceRoot":"","sources":["../../src/lib/payment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAe/C,eAAO,MAAM,oBAAoB,2BAA2B,CAAC;AAC7D,eAAO,MAAM,qBAAqB,4BAA4B,CAAC;AA4C/D;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,MAAgC,GAAG,OAAO,KAAK,CAyC7F;AAMD,MAAM,WAAW,kBAAkB;IACjC,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,OAAO,EAAE,OAAO,CAAC;IACjB,wDAAwD;IACxD,MAAM,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,QAAQ,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAsHlI;AAMD,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC"}
|