@flamingo-stack/openframe-frontend-core 0.0.204 → 0.0.205
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/{chunk-4CWSZPXH.cjs → chunk-24KCAECR.cjs} +9 -9
- package/dist/{chunk-4CWSZPXH.cjs.map → chunk-24KCAECR.cjs.map} +1 -1
- package/dist/chunk-27APPAJN.cjs +24 -0
- package/dist/chunk-27APPAJN.cjs.map +1 -0
- package/dist/{chunk-UC43NICZ.cjs → chunk-664KA5FI.cjs} +2 -35
- package/dist/chunk-664KA5FI.cjs.map +1 -0
- package/dist/chunk-6RZYJICV.cjs +24 -0
- package/dist/chunk-6RZYJICV.cjs.map +1 -0
- package/dist/chunk-7L4DWM7P.js +24 -0
- package/dist/chunk-7L4DWM7P.js.map +1 -0
- package/dist/chunk-BZFW3FOF.cjs +21 -0
- package/dist/chunk-BZFW3FOF.cjs.map +1 -0
- package/dist/{chunk-N57KWHDB.js → chunk-CIPO6DXK.js} +5 -5
- package/dist/chunk-EL5YVPD5.js +21 -0
- package/dist/chunk-EL5YVPD5.js.map +1 -0
- package/dist/{chunk-ARQ4XP64.cjs → chunk-FDCFI7YT.cjs} +40080 -31492
- package/dist/chunk-FDCFI7YT.cjs.map +1 -0
- package/dist/chunk-G7UE6RKV.cjs +121 -0
- package/dist/chunk-G7UE6RKV.cjs.map +1 -0
- package/dist/{chunk-25LVV26X.cjs → chunk-JUZGUQMX.cjs} +178 -50
- package/dist/chunk-JUZGUQMX.cjs.map +1 -0
- package/dist/{chunk-SZPJ5R5B.js → chunk-KSOOKNBG.js} +1 -34
- package/dist/chunk-KSOOKNBG.js.map +1 -0
- package/dist/{chunk-RMB5DVED.cjs → chunk-KUZGEA7U.cjs} +83 -66
- package/dist/chunk-KUZGEA7U.cjs.map +1 -0
- package/dist/chunk-LXC6P2EO.js +63 -0
- package/dist/chunk-LXC6P2EO.js.map +1 -0
- package/dist/chunk-MJNXIEV2.js +24 -0
- package/dist/chunk-MJNXIEV2.js.map +1 -0
- package/dist/{chunk-CPXLQ57U.js → chunk-MVGGXOFA.js} +37 -20
- package/dist/chunk-MVGGXOFA.js.map +1 -0
- package/dist/{chunk-LY34ORX6.js → chunk-O55ZUAX7.js} +39920 -31332
- package/dist/chunk-O55ZUAX7.js.map +1 -0
- package/dist/chunk-OHPI2HRK.js +47 -0
- package/dist/chunk-OHPI2HRK.js.map +1 -0
- package/dist/chunk-PLJLE4A4.js +121 -0
- package/dist/chunk-PLJLE4A4.js.map +1 -0
- package/dist/{chunk-XGL5FKIK.js → chunk-SCN5WFIZ.js} +148 -20
- package/dist/chunk-SCN5WFIZ.js.map +1 -0
- package/dist/chunk-WBR7H6E3.cjs +47 -0
- package/dist/chunk-WBR7H6E3.cjs.map +1 -0
- package/dist/chunk-XL4V2PYG.cjs +63 -0
- package/dist/chunk-XL4V2PYG.cjs.map +1 -0
- package/dist/components/announcement-bar.d.ts.map +1 -1
- package/dist/components/chat/chat-attachment-bar.d.ts +66 -0
- package/dist/components/chat/chat-attachment-bar.d.ts.map +1 -0
- package/dist/components/chat/chat-container.d.ts +21 -1
- package/dist/components/chat/chat-container.d.ts.map +1 -1
- package/dist/components/chat/chat-input.d.ts.map +1 -1
- package/dist/components/chat/chat-message-enhanced.d.ts.map +1 -1
- package/dist/components/chat/chat-message-list.d.ts.map +1 -1
- package/dist/components/chat/chat-panel-context.d.ts +9 -0
- package/dist/components/chat/chat-panel-context.d.ts.map +1 -0
- package/dist/components/chat/chat-ticket-list.d.ts +1 -1
- package/dist/components/chat/chat-ticket-list.d.ts.map +1 -1
- package/dist/components/chat/embeddable-chat.d.ts +42 -0
- package/dist/components/chat/embeddable-chat.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/admin-content-card.d.ts +34 -0
- package/dist/components/chat/entity-cards/admin-content-card.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/block-card.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/blog-card.d.ts +30 -0
- package/dist/components/chat/entity-cards/blog-card.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/blog-image-placeholder.d.ts +26 -0
- package/dist/components/chat/entity-cards/blog-image-placeholder.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/campaign-card-admin.d.ts +33 -0
- package/dist/components/chat/entity-cards/campaign-card-admin.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/case-study-card.d.ts +20 -0
- package/dist/components/chat/entity-cards/case-study-card.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/chat-ticket-item.d.ts.map +1 -0
- package/dist/components/chat/{chat-video-entity-card.d.ts → entity-cards/chat-video-entity-card.d.ts} +1 -1
- package/dist/components/chat/entity-cards/chat-video-entity-card.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/customer-interview-card.d.ts +19 -0
- package/dist/components/chat/entity-cards/customer-interview-card.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/data-room-doc-card.d.ts +47 -0
- package/dist/components/chat/entity-cards/data-room-doc-card.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/dispatch.d.ts +119 -0
- package/dist/components/chat/entity-cards/dispatch.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/entity-author-card.d.ts +87 -0
- package/dist/components/chat/entity-cards/entity-author-card.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/generic-entity-card.d.ts +42 -0
- package/dist/components/chat/entity-cards/generic-entity-card.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/github-activity-card.d.ts +37 -0
- package/dist/components/chat/entity-cards/github-activity-card.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/hubspot-ticket-card.d.ts +28 -0
- package/dist/components/chat/entity-cards/hubspot-ticket-card.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/index.d.ts +32 -0
- package/dist/components/chat/entity-cards/index.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/investor-update-card.d.ts +19 -0
- package/dist/components/chat/entity-cards/investor-update-card.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/onboarding-guide-card.d.ts +20 -0
- package/dist/components/chat/entity-cards/onboarding-guide-card.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/product-release-card-defaults.d.ts +21 -0
- package/dist/components/chat/entity-cards/product-release-card-defaults.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/product-release-card.d.ts +12 -0
- package/dist/components/chat/entity-cards/product-release-card.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/program-card-defaults.d.ts +32 -0
- package/dist/components/chat/entity-cards/program-card-defaults.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/program-card.d.ts +37 -0
- package/dist/components/chat/entity-cards/program-card.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/roadmap-card.d.ts +28 -0
- package/dist/components/chat/entity-cards/roadmap-card.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/roadmap-vote-button.d.ts +12 -0
- package/dist/components/chat/entity-cards/roadmap-vote-button.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/slack-message-card.d.ts +28 -0
- package/dist/components/chat/entity-cards/slack-message-card.d.ts.map +1 -0
- package/dist/components/chat/entity-cards/task-type-icon.d.ts +6 -0
- package/dist/components/chat/entity-cards/task-type-icon.d.ts.map +1 -0
- package/dist/components/chat/hooks/index.d.ts +10 -0
- package/dist/components/chat/hooks/index.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-chat-attachment-image-gallery.d.ts +5 -0
- package/dist/components/chat/hooks/use-chat-attachment-image-gallery.d.ts.map +1 -0
- package/dist/components/chat/hooks/use-chat-attachments.d.ts +33 -0
- package/dist/components/chat/hooks/use-chat-attachments.d.ts.map +1 -0
- package/dist/components/chat/hooks/use-chat-card-item.d.ts +7 -0
- package/dist/components/chat/hooks/use-chat-card-item.d.ts.map +1 -0
- package/dist/components/chat/hooks/use-chat-identity.d.ts +44 -0
- package/dist/components/chat/hooks/use-chat-identity.d.ts.map +1 -0
- package/dist/components/chat/hooks/use-chat.d.ts +30 -0
- package/dist/components/chat/hooks/use-chat.d.ts.map +1 -0
- package/dist/components/chat/hooks/use-close-on-navigation.d.ts +2 -0
- package/dist/components/chat/hooks/use-close-on-navigation.d.ts.map +1 -0
- package/dist/components/chat/hooks/use-embedded-chat.d.ts +174 -0
- package/dist/components/chat/hooks/use-embedded-chat.d.ts.map +1 -0
- package/dist/components/chat/hooks/use-proxied-image-url.d.ts +18 -0
- package/dist/components/chat/hooks/use-proxied-image-url.d.ts.map +1 -0
- package/dist/components/chat/hooks/use-slash-commands.d.ts +32 -0
- package/dist/components/chat/hooks/use-slash-commands.d.ts.map +1 -0
- package/dist/components/chat/hooks/use-sse.d.ts +57 -0
- package/dist/components/chat/hooks/use-sse.d.ts.map +1 -0
- package/dist/components/chat/index.cjs +393 -0
- package/dist/components/chat/index.cjs.map +1 -0
- package/dist/components/chat/index.d.ts +5 -3
- package/dist/components/chat/index.d.ts.map +1 -1
- package/dist/components/chat/index.js +393 -0
- package/dist/components/chat/index.js.map +1 -0
- package/dist/components/chat/nav-link-anchor-via-runtime.d.ts +33 -0
- package/dist/components/chat/nav-link-anchor-via-runtime.d.ts.map +1 -0
- package/dist/components/chat/source-action-button.d.ts +39 -0
- package/dist/components/chat/source-action-button.d.ts.map +1 -0
- package/dist/components/chat/types/chat.types.d.ts +36 -0
- package/dist/components/chat/types/chat.types.d.ts.map +1 -1
- package/dist/components/chat/types/component.types.d.ts +56 -11
- package/dist/components/chat/types/component.types.d.ts.map +1 -1
- package/dist/components/chat/types/entities/blog.d.ts +14 -0
- package/dist/components/chat/types/entities/blog.d.ts.map +1 -0
- package/dist/components/chat/types/entities/case-study.d.ts +10 -0
- package/dist/components/chat/types/entities/case-study.d.ts.map +1 -0
- package/dist/components/chat/types/entities/content-ref.d.ts +23 -0
- package/dist/components/chat/types/entities/content-ref.d.ts.map +1 -0
- package/dist/components/chat/types/entities/customer-interview.d.ts +10 -0
- package/dist/components/chat/types/entities/customer-interview.d.ts.map +1 -0
- package/dist/components/chat/types/entities/data-room-doc.d.ts +37 -0
- package/dist/components/chat/types/entities/data-room-doc.d.ts.map +1 -0
- package/dist/components/chat/types/entities/github-activity.d.ts +29 -0
- package/dist/components/chat/types/entities/github-activity.d.ts.map +1 -0
- package/dist/components/chat/types/entities/hubspot-ticket.d.ts +39 -0
- package/dist/components/chat/types/entities/hubspot-ticket.d.ts.map +1 -0
- package/dist/components/chat/types/entities/index.d.ts +28 -0
- package/dist/components/chat/types/entities/index.d.ts.map +1 -0
- package/dist/components/chat/types/entities/investor-update.d.ts +83 -0
- package/dist/components/chat/types/entities/investor-update.d.ts.map +1 -0
- package/dist/components/chat/types/entities/onboarding-guide.d.ts +79 -0
- package/dist/components/chat/types/entities/onboarding-guide.d.ts.map +1 -0
- package/dist/components/chat/types/entities/program-types.d.ts +303 -0
- package/dist/components/chat/types/entities/program-types.d.ts.map +1 -0
- package/dist/components/chat/types/entities/roadmap-item.d.ts +41 -0
- package/dist/components/chat/types/entities/roadmap-item.d.ts.map +1 -0
- package/dist/components/chat/types/entities/slack-message.d.ts +28 -0
- package/dist/components/chat/types/entities/slack-message.d.ts.map +1 -0
- package/dist/components/chat/types/index.d.ts +1 -0
- package/dist/components/chat/types/index.d.ts.map +1 -1
- package/dist/components/chat/utils/agent-status-message.d.ts +18 -0
- package/dist/components/chat/utils/agent-status-message.d.ts.map +1 -0
- package/dist/components/chat/utils/auto-continuation-directive.d.ts +38 -0
- package/dist/components/chat/utils/auto-continuation-directive.d.ts.map +1 -0
- package/dist/components/chat/utils/chat-attachment-markdown.d.ts +114 -0
- package/dist/components/chat/utils/chat-attachment-markdown.d.ts.map +1 -0
- package/dist/components/chat/utils/chat-authed-fetch.d.ts +13 -0
- package/dist/components/chat/utils/chat-authed-fetch.d.ts.map +1 -0
- package/dist/components/chat/utils/chat-nav-resolution.d.ts +72 -0
- package/dist/components/chat/utils/chat-nav-resolution.d.ts.map +1 -0
- package/dist/components/chat/utils/chat-proxy-auth-storage.d.ts +43 -0
- package/dist/components/chat/utils/chat-proxy-auth-storage.d.ts.map +1 -0
- package/dist/components/chat/utils/chip-action-class.d.ts +16 -0
- package/dist/components/chat/utils/chip-action-class.d.ts.map +1 -0
- package/dist/components/chat/utils/chip-styles.d.ts +32 -0
- package/dist/components/chat/utils/chip-styles.d.ts.map +1 -0
- package/dist/components/chat/utils/clickup-task-type-utils.d.ts +38 -0
- package/dist/components/chat/utils/clickup-task-type-utils.d.ts.map +1 -0
- package/dist/components/chat/utils/compact-card-classes.d.ts +50 -0
- package/dist/components/chat/utils/compact-card-classes.d.ts.map +1 -0
- package/dist/components/chat/utils/decide-new-tab.d.ts +39 -0
- package/dist/components/chat/utils/decide-new-tab.d.ts.map +1 -0
- package/dist/components/chat/utils/external-app-urls.d.ts +14 -0
- package/dist/components/chat/utils/external-app-urls.d.ts.map +1 -0
- package/dist/components/chat/utils/flatten-assistant-content.d.ts +25 -0
- package/dist/components/chat/utils/flatten-assistant-content.d.ts.map +1 -0
- package/dist/components/chat/utils/icon-registry.d.ts +67 -0
- package/dist/components/chat/utils/icon-registry.d.ts.map +1 -0
- package/dist/components/chat/utils/index.d.ts +21 -0
- package/dist/components/chat/utils/index.d.ts.map +1 -1
- package/dist/components/chat/utils/is-cross-origin-url.d.ts +22 -0
- package/dist/components/chat/utils/is-cross-origin-url.d.ts.map +1 -0
- package/dist/components/chat/utils/nav-anchor-props.d.ts +54 -0
- package/dist/components/chat/utils/nav-anchor-props.d.ts.map +1 -0
- package/dist/components/chat/utils/nav-click-handler.d.ts +51 -0
- package/dist/components/chat/utils/nav-click-handler.d.ts.map +1 -0
- package/dist/components/chat/utils/scroll-anchor.d.ts +30 -0
- package/dist/components/chat/utils/scroll-anchor.d.ts.map +1 -0
- package/dist/components/chat/utils/slash-dispatch-utils.d.ts +109 -0
- package/dist/components/chat/utils/slash-dispatch-utils.d.ts.map +1 -0
- package/dist/components/chat/utils/source-icons.d.ts +8 -0
- package/dist/components/chat/utils/source-icons.d.ts.map +1 -0
- package/dist/components/chat/utils/source-row-cta.d.ts +111 -0
- package/dist/components/chat/utils/source-row-cta.d.ts.map +1 -0
- package/dist/components/features/figma-prototype-viewer.d.ts.map +1 -1
- package/dist/components/features/index.cjs +12 -6
- package/dist/components/features/index.cjs.map +1 -1
- package/dist/components/features/index.js +11 -5
- package/dist/components/features/video.d.ts.map +1 -1
- package/dist/components/icons/index.cjs +3 -3
- package/dist/components/icons/index.js +2 -2
- package/dist/components/index.cjs +274 -8
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +273 -7
- package/dist/components/interactive-wrapper.d.ts +3 -3
- package/dist/components/navigation/index.cjs +12 -6
- package/dist/components/navigation/index.cjs.map +1 -1
- package/dist/components/navigation/index.js +11 -5
- package/dist/components/resizable.d.ts +1 -1
- package/dist/components/shared/product-release/product-release-card-skeleton.d.ts +1 -1
- package/dist/components/shared/product-release/product-release-card-skeleton.d.ts.map +1 -1
- package/dist/components/shared/product-release/product-release-card.d.ts +19 -12
- package/dist/components/shared/product-release/product-release-card.d.ts.map +1 -1
- package/dist/components/shared/product-release/release-detail-page.d.ts +2 -4
- package/dist/components/shared/product-release/release-detail-page.d.ts.map +1 -1
- package/dist/components/ui/button/button.d.ts +13 -0
- package/dist/components/ui/button/button.d.ts.map +1 -1
- package/dist/components/ui/dashboard-info-card.d.ts.map +1 -1
- package/dist/components/ui/entity-image.d.ts.map +1 -1
- package/dist/components/ui/file-manager/index.cjs +71 -70
- package/dist/components/ui/file-manager/index.cjs.map +1 -1
- package/dist/components/ui/file-manager/index.js +6 -5
- package/dist/components/ui/file-manager/index.js.map +1 -1
- package/dist/components/ui/hover-dropdown.d.ts +66 -0
- package/dist/components/ui/hover-dropdown.d.ts.map +1 -0
- package/dist/components/ui/index.cjs +276 -6
- package/dist/components/ui/index.cjs.map +1 -1
- package/dist/components/ui/index.d.ts +1 -0
- package/dist/components/ui/index.d.ts.map +1 -1
- package/dist/components/ui/index.js +278 -8
- package/dist/components/ui/simple-markdown-renderer.d.ts.map +1 -1
- package/dist/components/ui/square-avatar.d.ts.map +1 -1
- package/dist/contexts/chat-runtime-context.d.ts +109 -0
- package/dist/contexts/chat-runtime-context.d.ts.map +1 -0
- package/dist/contexts/endpoints-runtime-context.d.ts +28 -0
- package/dist/contexts/endpoints-runtime-context.d.ts.map +1 -0
- package/dist/contexts/index.cjs +30 -0
- package/dist/contexts/index.cjs.map +1 -0
- package/dist/contexts/index.d.ts +26 -0
- package/dist/contexts/index.d.ts.map +1 -0
- package/dist/contexts/index.js +30 -0
- package/dist/contexts/index.js.map +1 -0
- package/dist/contexts/use-outer-or-default.d.ts +29 -0
- package/dist/contexts/use-outer-or-default.d.ts.map +1 -0
- package/dist/embed-shims/index.cjs +51 -0
- package/dist/embed-shims/index.cjs.map +1 -0
- package/dist/embed-shims/index.d.ts +31 -0
- package/dist/embed-shims/index.d.ts.map +1 -0
- package/dist/embed-shims/index.js +51 -0
- package/dist/embed-shims/index.js.map +1 -0
- package/dist/embed-shims/next-dynamic.cjs +12 -0
- package/dist/embed-shims/next-dynamic.cjs.map +1 -0
- package/dist/embed-shims/next-dynamic.d.ts +47 -0
- package/dist/embed-shims/next-dynamic.d.ts.map +1 -0
- package/dist/embed-shims/next-dynamic.js +12 -0
- package/dist/embed-shims/next-dynamic.js.map +1 -0
- package/dist/embed-shims/next-image.cjs +12 -0
- package/dist/embed-shims/next-image.cjs.map +1 -0
- package/dist/embed-shims/next-image.d.ts +28 -0
- package/dist/embed-shims/next-image.d.ts.map +1 -0
- package/dist/embed-shims/next-image.js +12 -0
- package/dist/embed-shims/next-image.js.map +1 -0
- package/dist/embed-shims/next-link.cjs +14 -0
- package/dist/embed-shims/next-link.cjs.map +1 -0
- package/dist/embed-shims/next-link.d.ts +22 -0
- package/dist/embed-shims/next-link.d.ts.map +1 -0
- package/dist/embed-shims/next-link.js +14 -0
- package/dist/embed-shims/next-link.js.map +1 -0
- package/dist/embed-shims/next-navigation.cjs +30 -0
- package/dist/embed-shims/next-navigation.cjs.map +1 -0
- package/dist/embed-shims/next-navigation.d.ts +46 -0
- package/dist/embed-shims/next-navigation.d.ts.map +1 -0
- package/dist/embed-shims/next-navigation.js +30 -0
- package/dist/embed-shims/next-navigation.js.map +1 -0
- package/dist/hooks/index.cjs +10 -4
- package/dist/hooks/index.cjs.map +1 -1
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +9 -3
- package/dist/hooks/use-access-code-integration.d.ts +48 -0
- package/dist/hooks/use-access-code-integration.d.ts.map +1 -0
- package/dist/hooks/use-contact-submission.d.ts.map +1 -1
- package/dist/hooks/use-og-placeholder.d.ts +31 -0
- package/dist/hooks/use-og-placeholder.d.ts.map +1 -0
- package/dist/hooks/use-toast.d.ts +1 -1
- package/dist/index.cjs +367 -7
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +378 -18
- package/dist/types/index.cjs.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/utils/access-code-client.d.ts +21 -37
- package/dist/utils/access-code-client.d.ts.map +1 -1
- package/dist/utils/cn.d.ts +0 -27
- package/dist/utils/cn.d.ts.map +1 -1
- package/dist/utils/color-analysis.d.ts +33 -0
- package/dist/utils/color-analysis.d.ts.map +1 -0
- package/dist/utils/date-formatters.d.ts +16 -5
- package/dist/utils/date-formatters.d.ts.map +1 -1
- package/dist/utils/fetch-priority.d.ts +3 -0
- package/dist/utils/fetch-priority.d.ts.map +1 -0
- package/dist/utils/format.d.ts +192 -1
- package/dist/utils/format.d.ts.map +1 -1
- package/dist/utils/image-proxy.d.ts +67 -2
- package/dist/utils/image-proxy.d.ts.map +1 -1
- package/dist/utils/index.cjs +1274 -155
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.d.ts +19 -3
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1200 -157
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/local-storage-adapter.d.ts +46 -0
- package/dist/utils/local-storage-adapter.d.ts.map +1 -0
- package/dist/utils/source-icons.d.ts +78 -0
- package/dist/utils/source-icons.d.ts.map +1 -0
- package/package.json +29 -2
- package/src/components/announcement-bar.tsx +26 -4
- package/src/components/categories-cart.tsx +1 -1
- package/src/components/chat/chat-attachment-bar.tsx +323 -0
- package/src/components/chat/chat-container.tsx +39 -5
- package/src/components/chat/chat-input.tsx +7 -1
- package/src/components/chat/chat-message-enhanced.tsx +32 -22
- package/src/components/chat/chat-message-list.tsx +53 -4
- package/src/components/chat/chat-panel-context.tsx +37 -0
- package/src/components/chat/chat-ticket-list.tsx +1 -1
- package/src/components/chat/embeddable-chat.tsx +1106 -0
- package/src/components/chat/entity-cards/admin-content-card.tsx +155 -0
- package/src/components/chat/entity-cards/blog-card.tsx +259 -0
- package/src/components/chat/entity-cards/blog-image-placeholder.tsx +52 -0
- package/src/components/chat/entity-cards/campaign-card-admin.tsx +113 -0
- package/src/components/chat/entity-cards/case-study-card.tsx +192 -0
- package/src/components/chat/{chat-ticket-item.tsx → entity-cards/chat-ticket-item.tsx} +2 -2
- package/src/components/chat/{chat-video-entity-card.tsx → entity-cards/chat-video-entity-card.tsx} +2 -2
- package/src/components/chat/entity-cards/customer-interview-card.tsx +211 -0
- package/src/components/chat/entity-cards/data-room-doc-card.tsx +120 -0
- package/src/components/chat/entity-cards/dispatch.tsx +1093 -0
- package/src/components/chat/entity-cards/entity-author-card.tsx +193 -0
- package/src/components/chat/entity-cards/generic-entity-card.tsx +144 -0
- package/src/components/chat/entity-cards/github-activity-card.tsx +305 -0
- package/src/components/chat/entity-cards/hubspot-ticket-card.tsx +205 -0
- package/src/components/chat/entity-cards/index.ts +125 -0
- package/src/components/chat/entity-cards/investor-update-card.tsx +150 -0
- package/src/components/chat/entity-cards/onboarding-guide-card.tsx +326 -0
- package/src/components/chat/entity-cards/product-release-card-defaults.ts +57 -0
- package/src/components/chat/entity-cards/product-release-card.tsx +19 -0
- package/src/components/chat/entity-cards/program-card-defaults.ts +62 -0
- package/src/components/chat/entity-cards/program-card.tsx +451 -0
- package/src/components/chat/entity-cards/roadmap-card.tsx +356 -0
- package/src/components/chat/entity-cards/roadmap-vote-button.tsx +54 -0
- package/src/components/chat/entity-cards/slack-message-card.tsx +182 -0
- package/src/components/chat/entity-cards/task-type-icon.tsx +60 -0
- package/src/components/chat/hooks/index.ts +22 -0
- package/src/components/chat/hooks/use-chat-attachment-image-gallery.tsx +114 -0
- package/src/components/chat/hooks/use-chat-attachments.ts +429 -0
- package/src/components/chat/hooks/use-chat-card-item.ts +102 -0
- package/src/components/chat/hooks/use-chat-identity.ts +139 -0
- package/src/components/chat/hooks/use-chat.ts +501 -0
- package/src/components/chat/hooks/use-close-on-navigation.ts +87 -0
- package/src/components/chat/hooks/use-embedded-chat.ts +1023 -0
- package/src/components/chat/hooks/use-proxied-image-url.ts +31 -0
- package/src/components/chat/hooks/use-slash-commands.ts +106 -0
- package/src/components/chat/hooks/use-sse.ts +143 -0
- package/src/components/chat/index.ts +30 -4
- package/src/components/chat/nav-link-anchor-via-runtime.tsx +72 -0
- package/src/components/chat/source-action-button.tsx +120 -0
- package/src/components/chat/types/chat.types.ts +61 -0
- package/src/components/chat/types/component.types.ts +57 -11
- package/src/components/chat/types/entities/blog.ts +27 -0
- package/src/components/chat/types/entities/case-study.ts +14 -0
- package/src/components/chat/types/entities/content-ref.ts +23 -0
- package/src/components/chat/types/entities/customer-interview.ts +15 -0
- package/src/components/chat/types/entities/data-room-doc.ts +37 -0
- package/src/components/chat/types/entities/github-activity.ts +36 -0
- package/src/components/chat/types/entities/hubspot-ticket.ts +39 -0
- package/src/components/chat/types/entities/index.ts +28 -0
- package/src/components/chat/types/entities/investor-update.ts +100 -0
- package/src/components/chat/types/entities/onboarding-guide.ts +101 -0
- package/src/components/chat/types/entities/program-types.ts +433 -0
- package/src/components/chat/types/entities/roadmap-item.ts +42 -0
- package/src/components/chat/types/entities/slack-message.ts +28 -0
- package/src/components/chat/types/index.ts +1 -0
- package/src/components/chat/utils/agent-status-message.ts +52 -0
- package/src/components/chat/utils/auto-continuation-directive.ts +70 -0
- package/src/components/chat/utils/chat-attachment-markdown.ts +190 -0
- package/src/components/chat/utils/chat-authed-fetch.ts +73 -0
- package/src/components/chat/utils/chat-nav-resolution.ts +151 -0
- package/src/components/chat/utils/chat-proxy-auth-storage.ts +148 -0
- package/src/components/chat/utils/chip-action-class.ts +19 -0
- package/src/components/chat/utils/chip-styles.ts +51 -0
- package/src/components/chat/utils/clickup-task-type-utils.ts +59 -0
- package/src/components/chat/utils/compact-card-classes.ts +97 -0
- package/src/components/chat/utils/decide-new-tab.ts +57 -0
- package/src/components/chat/utils/external-app-urls.ts +19 -0
- package/src/components/chat/utils/flatten-assistant-content.ts +35 -0
- package/src/components/chat/utils/icon-registry.ts +297 -0
- package/src/components/chat/utils/index.ts +133 -0
- package/src/components/chat/utils/is-cross-origin-url.ts +28 -0
- package/src/components/chat/utils/nav-anchor-props.ts +78 -0
- package/src/components/chat/utils/nav-click-handler.ts +81 -0
- package/src/components/chat/utils/scroll-anchor.ts +35 -0
- package/src/components/chat/utils/slash-dispatch-utils.ts +183 -0
- package/src/components/chat/utils/source-icons.ts +14 -0
- package/src/components/chat/utils/source-row-cta.ts +215 -0
- package/src/components/empty-state.tsx +1 -1
- package/src/components/features/board/ticket-card.tsx +1 -1
- package/src/components/features/figma-prototype-viewer.tsx +2 -1
- package/src/components/features/media-gallery-manager.tsx +1 -1
- package/src/components/features/parallax-image-showcase.tsx +1 -1
- package/src/components/features/release-media-manager.tsx +1 -1
- package/src/components/features/seo-editor-preview.tsx +1 -1
- package/src/components/features/video.tsx +54 -3
- package/src/components/footer-waitlist-button.tsx +1 -1
- package/src/components/navigation/header.tsx +1 -1
- package/src/components/shared/onboarding/onboarding-step-card.tsx +1 -1
- package/src/components/shared/product-release/product-release-card-skeleton.tsx +8 -44
- package/src/components/shared/product-release/product-release-card.tsx +31 -116
- package/src/components/shared/product-release/release-detail-page.tsx +12 -16
- package/src/components/ui/actions-menu.tsx +1 -1
- package/src/components/ui/button/button.tsx +41 -11
- package/src/components/ui/button/split-button.tsx +1 -1
- package/src/components/ui/dashboard-info-card.tsx +2 -3
- package/src/components/ui/data-table/data-table-row.tsx +1 -1
- package/src/components/ui/entity-image.tsx +2 -8
- package/src/components/ui/hover-dropdown.tsx +258 -0
- package/src/components/ui/image-gallery-modal.tsx +1 -1
- package/src/components/ui/index.ts +1 -0
- package/src/components/ui/markdown-editor.tsx +1 -1
- package/src/components/ui/more-actions-menu.tsx +1 -1
- package/src/components/ui/organization-card.tsx +1 -1
- package/src/components/ui/simple-markdown-renderer.tsx +53 -5
- package/src/components/ui/square-avatar.tsx +3 -12
- package/src/components/ui/tab-navigation.tsx +1 -1
- package/src/components/ui/table/table-row.tsx +1 -1
- package/src/components/unified-filter-logic.tsx +1 -1
- package/src/components/unified-pagination.tsx +1 -1
- package/src/components/user-summary-stub.tsx +1 -1
- package/src/components/vendor-display-button.tsx +1 -1
- package/src/components/vendor-icon.tsx +1 -1
- package/src/contexts/chat-runtime-context.tsx +163 -0
- package/src/contexts/endpoints-runtime-context.tsx +68 -0
- package/src/contexts/index.ts +38 -0
- package/src/contexts/use-outer-or-default.ts +42 -0
- package/src/embed-shims/index.ts +42 -0
- package/src/embed-shims/next-dynamic.tsx +70 -0
- package/src/embed-shims/next-image.tsx +114 -0
- package/src/embed-shims/next-link.tsx +91 -0
- package/src/embed-shims/next-navigation.tsx +201 -0
- package/src/hooks/index.ts +9 -0
- package/src/hooks/state/use-api-params.ts +1 -1
- package/src/hooks/state/use-query-params.ts +1 -1
- package/src/hooks/use-access-code-integration.ts +107 -0
- package/src/hooks/use-contact-submission.ts +7 -3
- package/src/hooks/use-og-placeholder.ts +45 -0
- package/src/stories/OnboardingStepCard.stories.tsx +140 -0
- package/src/styles/chat-animations.css +65 -0
- package/src/styles/index.css +1 -0
- package/src/utils/access-code-client.ts +32 -75
- package/src/utils/cn.ts +0 -65
- package/src/utils/color-analysis.ts +205 -0
- package/src/utils/date-formatters.ts +54 -11
- package/src/utils/fetch-priority.ts +41 -0
- package/src/utils/format.ts +525 -1
- package/src/utils/image-proxy.ts +127 -7
- package/src/utils/index.ts +145 -5
- package/src/utils/local-storage-adapter.ts +105 -0
- package/src/utils/source-icons.ts +219 -0
- package/dist/chunk-25LVV26X.cjs.map +0 -1
- package/dist/chunk-ARQ4XP64.cjs.map +0 -1
- package/dist/chunk-CPXLQ57U.js.map +0 -1
- package/dist/chunk-LY34ORX6.js.map +0 -1
- package/dist/chunk-RMB5DVED.cjs.map +0 -1
- package/dist/chunk-SZPJ5R5B.js.map +0 -1
- package/dist/chunk-UC43NICZ.cjs.map +0 -1
- package/dist/chunk-XGL5FKIK.js.map +0 -1
- package/dist/components/chat/block-card.d.ts.map +0 -1
- package/dist/components/chat/chat-ticket-item.d.ts.map +0 -1
- package/dist/components/chat/chat-video-entity-card.d.ts.map +0 -1
- package/dist/utils/dynamic-icons.d.ts +0 -26
- package/dist/utils/dynamic-icons.d.ts.map +0 -1
- package/dist/utils/format-relative-time.d.ts +0 -21
- package/dist/utils/format-relative-time.d.ts.map +0 -1
- package/src/utils/.dynamic-icons.md +0 -30
- package/src/utils/.format-relative-time.md +0 -36
- package/src/utils/dynamic-icons.tsx +0 -120
- package/src/utils/format-relative-time.ts +0 -52
- /package/dist/{chunk-N57KWHDB.js.map → chunk-CIPO6DXK.js.map} +0 -0
- /package/dist/components/chat/{block-card.d.ts → entity-cards/block-card.d.ts} +0 -0
- /package/dist/components/chat/{chat-ticket-item.d.ts → entity-cards/chat-ticket-item.d.ts} +0 -0
- /package/src/components/chat/{block-card.tsx → entity-cards/block-card.tsx} +0 -0
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified Program System Types
|
|
3
|
+
*
|
|
4
|
+
* Base interfaces and types for the Unified Program System that handles
|
|
5
|
+
* events, podcasts, and webinars through a single set of generic components.
|
|
6
|
+
*
|
|
7
|
+
* Design Goals:
|
|
8
|
+
* 1. Maximum Reuse: Single set of components works for all program types
|
|
9
|
+
* 2. Type Safety: TypeScript generics ensure correct data shapes
|
|
10
|
+
* 3. Configuration-Driven: Program types defined via configuration objects
|
|
11
|
+
* 4. Admin Consistency: Same patterns work for public pages and admin CRUD
|
|
12
|
+
*
|
|
13
|
+
* Lifted from `lib/types/program-types.ts` in the hub. The pure transform
|
|
14
|
+
* helpers (`transformEventToProgram`, `transformPodcastToProgram`,
|
|
15
|
+
* `transformWebinarToProgram`) also move here — they're pure shape
|
|
16
|
+
* mappers with no DB / state access.
|
|
17
|
+
*/
|
|
18
|
+
import type { ReactNode } from 'react';
|
|
19
|
+
/**
|
|
20
|
+
* Host/Speaker information for programs
|
|
21
|
+
*/
|
|
22
|
+
export interface ProgramHost {
|
|
23
|
+
id?: string;
|
|
24
|
+
name: string;
|
|
25
|
+
email?: string;
|
|
26
|
+
avatar_url?: string;
|
|
27
|
+
bio?: string;
|
|
28
|
+
role?: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Raw database row from luma_events table
|
|
32
|
+
* Note: Many fields are optional to support partial queries
|
|
33
|
+
* where not all columns are selected. The hosts field uses
|
|
34
|
+
* unknown to accommodate JSON parsing from the database.
|
|
35
|
+
*/
|
|
36
|
+
export interface LumaEventRow {
|
|
37
|
+
id: string;
|
|
38
|
+
name: string;
|
|
39
|
+
description?: string | null;
|
|
40
|
+
cover_url?: string | null;
|
|
41
|
+
start_at: string;
|
|
42
|
+
end_at: string;
|
|
43
|
+
timezone?: string | null;
|
|
44
|
+
location_name?: string | null;
|
|
45
|
+
location_full_address?: string | null;
|
|
46
|
+
geo_latitude?: number | null;
|
|
47
|
+
geo_longitude?: number | null;
|
|
48
|
+
meeting_url?: string | null;
|
|
49
|
+
event_url?: string | null;
|
|
50
|
+
guest_count?: number | null;
|
|
51
|
+
visibility?: string | null;
|
|
52
|
+
hosts?: ProgramHost[] | null;
|
|
53
|
+
platform_id: string;
|
|
54
|
+
luma_api_id: string;
|
|
55
|
+
is_deleted?: boolean;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Raw database row from podcast_episodes table
|
|
59
|
+
* Note: Many fields are optional to support partial queries
|
|
60
|
+
* where not all columns are selected.
|
|
61
|
+
*/
|
|
62
|
+
export interface PodcastEpisodeRow {
|
|
63
|
+
id: string;
|
|
64
|
+
title: string;
|
|
65
|
+
description?: string | null;
|
|
66
|
+
cover_url?: string | null;
|
|
67
|
+
published_at?: string | null;
|
|
68
|
+
created_at: string;
|
|
69
|
+
external_url?: string | null;
|
|
70
|
+
hosts?: ProgramHost[] | null;
|
|
71
|
+
platform_id: string;
|
|
72
|
+
podbean_episode_id: string;
|
|
73
|
+
podbean_podcast_id: string;
|
|
74
|
+
audio_url?: string | null;
|
|
75
|
+
/** Podbean-supplied source video URL (was `video_url` pre-rename). */
|
|
76
|
+
main_video_url?: string | null;
|
|
77
|
+
media_type?: 'audio' | 'video' | null;
|
|
78
|
+
duration_seconds?: number | null;
|
|
79
|
+
status?: string | null;
|
|
80
|
+
is_deleted?: boolean;
|
|
81
|
+
cover_image_override?: string | null;
|
|
82
|
+
custom_video_url?: string | null;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Raw database row from webinars table
|
|
86
|
+
* Note: Many fields are optional to support partial queries
|
|
87
|
+
* where not all columns are selected.
|
|
88
|
+
*/
|
|
89
|
+
export interface WebinarRow {
|
|
90
|
+
id: string;
|
|
91
|
+
title: string;
|
|
92
|
+
description?: string | null;
|
|
93
|
+
cover_url?: string | null;
|
|
94
|
+
start_at: string;
|
|
95
|
+
end_at?: string | null;
|
|
96
|
+
timezone?: string | null;
|
|
97
|
+
registration_url?: string | null;
|
|
98
|
+
hosts?: ProgramHost[] | null;
|
|
99
|
+
platform_id: string;
|
|
100
|
+
livestorm_event_id: string;
|
|
101
|
+
is_deleted?: boolean;
|
|
102
|
+
/** Livestorm-supplied recording URL (was `recording_url` pre-rename). */
|
|
103
|
+
main_video_url?: string | null;
|
|
104
|
+
custom_video_url?: string | null;
|
|
105
|
+
display_date_override?: string | null;
|
|
106
|
+
cover_image_override?: string | null;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Base interface that all program items must implement
|
|
110
|
+
* This enables the generic components to work across events, podcasts, and webinars
|
|
111
|
+
*/
|
|
112
|
+
export interface BaseProgramItem {
|
|
113
|
+
id: string;
|
|
114
|
+
title: string;
|
|
115
|
+
description: string | null;
|
|
116
|
+
cover_url: string | null;
|
|
117
|
+
date: string;
|
|
118
|
+
external_url?: string | null;
|
|
119
|
+
hosts?: ProgramHost[] | null;
|
|
120
|
+
platform_id: string;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Event-specific fields (from luma_events table)
|
|
124
|
+
*/
|
|
125
|
+
export interface EventItem extends BaseProgramItem {
|
|
126
|
+
luma_api_id: string;
|
|
127
|
+
end_at: string;
|
|
128
|
+
timezone?: string | null;
|
|
129
|
+
location_name?: string | null;
|
|
130
|
+
location_full_address?: string | null;
|
|
131
|
+
geo_latitude?: number | null;
|
|
132
|
+
geo_longitude?: number | null;
|
|
133
|
+
meeting_url?: string | null;
|
|
134
|
+
event_url?: string | null;
|
|
135
|
+
guest_count?: number | null;
|
|
136
|
+
visibility?: string | null;
|
|
137
|
+
is_deleted: boolean;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Podcast episode fields (from podcast_episodes table)
|
|
141
|
+
* Updated for Podbean video podcast support
|
|
142
|
+
*/
|
|
143
|
+
export interface PodcastItem extends BaseProgramItem {
|
|
144
|
+
author_id?: string | null;
|
|
145
|
+
podbean_episode_id: string;
|
|
146
|
+
podbean_podcast_id: string;
|
|
147
|
+
audio_url?: string | null;
|
|
148
|
+
/** Podbean-supplied source video URL (was `video_url` pre-rename). */
|
|
149
|
+
main_video_url?: string | null;
|
|
150
|
+
media_type: 'audio' | 'video';
|
|
151
|
+
duration_seconds?: number | null;
|
|
152
|
+
status: string;
|
|
153
|
+
published_at: string | null;
|
|
154
|
+
is_deleted: boolean;
|
|
155
|
+
podcast_url?: string | null;
|
|
156
|
+
cover_image_override?: string | null;
|
|
157
|
+
custom_video_url?: string | null;
|
|
158
|
+
transcript?: string | null;
|
|
159
|
+
transcript_words_data?: unknown;
|
|
160
|
+
srt_content?: string | null;
|
|
161
|
+
video_summary?: string | null;
|
|
162
|
+
video_bites?: unknown[];
|
|
163
|
+
highlight_video_url?: string | null;
|
|
164
|
+
highlight_video_source?: string | null;
|
|
165
|
+
highlight_video_thumbnail?: string | null;
|
|
166
|
+
highlight_video_duration_ms?: number | null;
|
|
167
|
+
main_video_thumbnail?: string | null;
|
|
168
|
+
config?: Record<string, unknown>;
|
|
169
|
+
custom_instructions?: string | null;
|
|
170
|
+
seo_title?: string | null;
|
|
171
|
+
seo_description?: string | null;
|
|
172
|
+
seo_keywords?: string | null;
|
|
173
|
+
ai_confidence_video_summary?: number | null;
|
|
174
|
+
ai_confidence_transcript?: number | null;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Webinar fields (from webinars table)
|
|
178
|
+
*/
|
|
179
|
+
export interface WebinarItem extends BaseProgramItem {
|
|
180
|
+
author_id?: string | null;
|
|
181
|
+
livestorm_event_id: string;
|
|
182
|
+
start_at: string;
|
|
183
|
+
end_at?: string | null;
|
|
184
|
+
timezone?: string | null;
|
|
185
|
+
registration_url?: string | null;
|
|
186
|
+
is_deleted: boolean;
|
|
187
|
+
/** Livestorm-supplied recording URL (was `recording_url` pre-rename). */
|
|
188
|
+
main_video_url?: string | null;
|
|
189
|
+
custom_video_url?: string | null;
|
|
190
|
+
display_date_override?: string | null;
|
|
191
|
+
cover_image_override?: string | null;
|
|
192
|
+
transcript?: string | null;
|
|
193
|
+
transcript_words_data?: unknown;
|
|
194
|
+
srt_content?: string | null;
|
|
195
|
+
video_summary?: string | null;
|
|
196
|
+
video_bites?: unknown[];
|
|
197
|
+
highlight_video_url?: string | null;
|
|
198
|
+
highlight_video_source?: string | null;
|
|
199
|
+
highlight_video_thumbnail?: string | null;
|
|
200
|
+
highlight_video_duration_ms?: number | null;
|
|
201
|
+
main_video_thumbnail?: string | null;
|
|
202
|
+
config?: Record<string, unknown>;
|
|
203
|
+
custom_instructions?: string | null;
|
|
204
|
+
seo_title?: string | null;
|
|
205
|
+
seo_description?: string | null;
|
|
206
|
+
seo_keywords?: string | null;
|
|
207
|
+
ai_confidence_video_summary?: number | null;
|
|
208
|
+
ai_confidence_transcript?: number | null;
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Program type identifier
|
|
212
|
+
*/
|
|
213
|
+
export type ProgramType = 'event' | 'podcast' | 'webinar';
|
|
214
|
+
/**
|
|
215
|
+
* Labels configuration for a program type
|
|
216
|
+
*/
|
|
217
|
+
export interface ProgramLabels {
|
|
218
|
+
singular: string;
|
|
219
|
+
plural: string;
|
|
220
|
+
upcoming: string;
|
|
221
|
+
upcomingSection: string;
|
|
222
|
+
archive: string;
|
|
223
|
+
empty: string;
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Configuration object that defines how a program type behaves
|
|
227
|
+
* This is the core abstraction that enables generic components
|
|
228
|
+
*/
|
|
229
|
+
export interface ProgramConfig<T extends BaseProgramItem = BaseProgramItem> {
|
|
230
|
+
type: ProgramType;
|
|
231
|
+
labels: ProgramLabels;
|
|
232
|
+
dateField: keyof T;
|
|
233
|
+
table: string;
|
|
234
|
+
apiEndpoint: string;
|
|
235
|
+
icon: ReactNode;
|
|
236
|
+
platformIcon?: ReactNode;
|
|
237
|
+
externalLinkLabel: string;
|
|
238
|
+
detailRoute: string;
|
|
239
|
+
sortOrder?: 'asc' | 'desc';
|
|
240
|
+
showInNav?: boolean;
|
|
241
|
+
platformUrl?: string;
|
|
242
|
+
heroCoverAspect?: 'landscape' | 'square';
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Generic response for program list queries
|
|
246
|
+
*/
|
|
247
|
+
export interface ProgramListResponse<T extends BaseProgramItem> {
|
|
248
|
+
items: T[];
|
|
249
|
+
count: number;
|
|
250
|
+
hasMore?: boolean;
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Generic response for single program queries
|
|
254
|
+
*/
|
|
255
|
+
export interface ProgramItemResponse<T extends BaseProgramItem> {
|
|
256
|
+
item: T;
|
|
257
|
+
media?: ProgramMedia[];
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Program media (photos, videos, etc.)
|
|
261
|
+
*/
|
|
262
|
+
export interface ProgramMedia {
|
|
263
|
+
id: string;
|
|
264
|
+
program_id: string;
|
|
265
|
+
media_type: 'image' | 'video' | 'audio';
|
|
266
|
+
media_url: string;
|
|
267
|
+
title?: string | null;
|
|
268
|
+
description?: string | null;
|
|
269
|
+
display_order: number;
|
|
270
|
+
created_at: string;
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Filter options for program queries
|
|
274
|
+
*/
|
|
275
|
+
export interface ProgramFilter {
|
|
276
|
+
filter: 'upcoming' | 'past' | 'all';
|
|
277
|
+
limit?: number;
|
|
278
|
+
offset?: number;
|
|
279
|
+
search?: string;
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Admin query options
|
|
283
|
+
*/
|
|
284
|
+
export interface AdminProgramFilter extends ProgramFilter {
|
|
285
|
+
includeDeleted?: boolean;
|
|
286
|
+
sortBy?: string;
|
|
287
|
+
sortOrder?: 'asc' | 'desc';
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Transform a database event row to EventItem
|
|
291
|
+
*/
|
|
292
|
+
export declare function transformEventToProgram(event: LumaEventRow): EventItem;
|
|
293
|
+
/**
|
|
294
|
+
* Transform a database podcast row to PodcastItem
|
|
295
|
+
*/
|
|
296
|
+
export declare function transformPodcastToProgram(episode: PodcastEpisodeRow): PodcastItem;
|
|
297
|
+
/**
|
|
298
|
+
* Transform a database webinar row to WebinarItem
|
|
299
|
+
* Uses display_date_override for date field when available (for backdating)
|
|
300
|
+
* Uses cover_image_override for cover_url when available
|
|
301
|
+
*/
|
|
302
|
+
export declare function transformWebinarToProgram(webinar: WebinarRow): WebinarItem;
|
|
303
|
+
//# sourceMappingURL=program-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"program-types.d.ts","sourceRoot":"","sources":["../../../../../src/components/chat/types/entities/program-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Roadmap Item entity — wire shape for the chat roadmap card and the
|
|
3
|
+
* public `/api/roadmap` reads.
|
|
4
|
+
*
|
|
5
|
+
* Lifted from `lib/data/clickup-query-utils.ts` in the hub. Mirrors the
|
|
6
|
+
* `roadmap_items` projection produced by `transformTask()` in
|
|
7
|
+
* `clickup-sync-utils.ts`.
|
|
8
|
+
*
|
|
9
|
+
* Naming note: a `RoadmapItem` stub already exists in
|
|
10
|
+
* `src/components/shared/product-release/release-detail-page.tsx` as
|
|
11
|
+
* `{ id: string; [key: string]: unknown }` — that placeholder predates this
|
|
12
|
+
* canonical shape and lives in a different module, so the two don't
|
|
13
|
+
* collide. Callers that want the strongly-typed wire shape import from
|
|
14
|
+
* `@/components/chat/types/entities/roadmap-item`; the product-release
|
|
15
|
+
* placeholder will be reconciled in a follow-up.
|
|
16
|
+
*/
|
|
17
|
+
export interface RoadmapItem {
|
|
18
|
+
id: string;
|
|
19
|
+
title: string;
|
|
20
|
+
description: string;
|
|
21
|
+
status: string;
|
|
22
|
+
statusColor: string;
|
|
23
|
+
icon: string | null;
|
|
24
|
+
figmaUrl: string | null;
|
|
25
|
+
screenshots: string[];
|
|
26
|
+
targetVersion: string | null;
|
|
27
|
+
upvotes: number;
|
|
28
|
+
downvotes: number;
|
|
29
|
+
quarter: string;
|
|
30
|
+
clickupUrl: string;
|
|
31
|
+
/** ClickUp canonical task-type taxonomy ID (1008=Bug, 1009=Request,
|
|
32
|
+
* 1010=Feature, …). Drives the type-specific icon rendered in the
|
|
33
|
+
* chat's compact card for the internal-tasks variant — see
|
|
34
|
+
* `getTaskTypeIcon` in `lib/utils/clickup-task-type-utils.ts`. */
|
|
35
|
+
customItemId: number | null;
|
|
36
|
+
}
|
|
37
|
+
export interface RoadmapStaleness {
|
|
38
|
+
lastSyncedAt: string | null;
|
|
39
|
+
staleSinceMs: number;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=roadmap-item.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roadmap-item.d.ts","sourceRoot":"","sources":["../../../../../src/components/chat/types/entities/roadmap-item.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB;;;uEAGmE;IACnE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;CACtB"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Slack Message entity — wire shape for the chat slack-message card.
|
|
3
|
+
*
|
|
4
|
+
* Lifted from `components/shared/slack/slack-message-card.tsx`. The card
|
|
5
|
+
* consumes this shape; the row shape coming out of the `slack_messages`
|
|
6
|
+
* RAG table is reduced to this minimal projection at render time.
|
|
7
|
+
*
|
|
8
|
+
* Naming note: this is intentionally `SlackMessageItem` (not the broader
|
|
9
|
+
* `SlackMessage` in `src/types/slack.ts`, which describes the Slack
|
|
10
|
+
* Community feature's message structure including reactions / threading /
|
|
11
|
+
* user objects). The chat card needs only the post-RAG projection: id,
|
|
12
|
+
* title, preview, channel, date, permalink — no reactions / threads.
|
|
13
|
+
*/
|
|
14
|
+
export interface SlackMessageItem {
|
|
15
|
+
/** Slack message ID (ts or url-derived) */
|
|
16
|
+
id: string;
|
|
17
|
+
/** Display title — typically "author · channel" or message subject */
|
|
18
|
+
title: string;
|
|
19
|
+
/** Message body preview (PII-sanitized server-side) */
|
|
20
|
+
preview?: string;
|
|
21
|
+
/** Channel name parsed from URL or stored on the row, when available */
|
|
22
|
+
channel?: string;
|
|
23
|
+
/** ISO timestamp or millisecond epoch */
|
|
24
|
+
dateUpdated?: string | number | null;
|
|
25
|
+
/** Slack permalink (https://*.slack.com/archives/<channel>/p<ts>) */
|
|
26
|
+
url?: string | null;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=slack-message.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slack-message.d.ts","sourceRoot":"","sources":["../../../../../src/components/chat/types/entities/slack-message.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,2CAA2C;IAC3C,EAAE,EAAE,MAAM,CAAC;IACX,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACrC,qEAAqE;IACrE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Status color-scheme resolver used by chat-adjacent badges (StatusBadge
|
|
3
|
+
* components rendering job, ClickUp task, and log-level statuses).
|
|
4
|
+
*
|
|
5
|
+
* Lib-side subset of the hub's `lib/utils/agent-status-message.ts`. The
|
|
6
|
+
* hub file also carries CSS-class resolvers + an `AgentStatusMessage`
|
|
7
|
+
* builder for the SSE-status surface; those live hub-side because they
|
|
8
|
+
* reference hub-only ODS class names. This function returns the abstract
|
|
9
|
+
* color scheme name only — the consuming `StatusBadge` (in this lib)
|
|
10
|
+
* maps it to concrete colors.
|
|
11
|
+
*/
|
|
12
|
+
export type ColorScheme = 'success' | 'error' | 'warning' | 'cyan' | 'default';
|
|
13
|
+
/**
|
|
14
|
+
* Map a status to a color scheme name for StatusBadge components.
|
|
15
|
+
* Supports job/processing statuses, ClickUp task statuses, and log levels.
|
|
16
|
+
*/
|
|
17
|
+
export declare function getStatusColorScheme(status: string): ColorScheme;
|
|
18
|
+
//# sourceMappingURL=agent-status-message.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-status-message.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/utils/agent-status-message.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAA;AAE9E;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAiChE"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared cross-process contract for the post-approval auto-continuation
|
|
3
|
+
* directive. The client emits a hidden synthetic user message starting
|
|
4
|
+
* with `AUTO_CONTINUATION_DIRECTIVE_PREFIX`; the server's `decideRoute`
|
|
5
|
+
* matches that exact prefix on the RAW user query (pre-rewriter) and
|
|
6
|
+
* hard-disables tools for the directive turn, forcing the LLM to
|
|
7
|
+
* respond with prose follow-up questions instead of duplicating the
|
|
8
|
+
* just-approved tool call.
|
|
9
|
+
*
|
|
10
|
+
* Single source of truth — both server-side `decideRoute` AND
|
|
11
|
+
* client-side `autoContinueRef` import from here. Drifting the literal
|
|
12
|
+
* on either side would silently break the duplicate-ticket guard
|
|
13
|
+
* (server would route normally with tools wired; LLM would propose the
|
|
14
|
+
* same tool again).
|
|
15
|
+
*
|
|
16
|
+
* `toolName` is typed as `string` (not a const-union) so the lib stays
|
|
17
|
+
* generic across hub deployments — host code that has a sharper
|
|
18
|
+
* `KnownWriteToolName` type can pass that through; this builder only
|
|
19
|
+
* cares about a handful of string-equal branches.
|
|
20
|
+
*/
|
|
21
|
+
export declare const AUTO_CONTINUATION_DIRECTIVE_PREFIX = "[internal-auto-continuation]";
|
|
22
|
+
export interface BuildAutoContinuationOptions {
|
|
23
|
+
ticketId?: string;
|
|
24
|
+
/** Reading of `args.status` on the just-approved tool call. Used to
|
|
25
|
+
* branch the directive between "post-create diagnostic Qs",
|
|
26
|
+
* "post-close resolution ask", and "post-update acknowledgement". */
|
|
27
|
+
status?: string;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Build the directive text the client sends as a HIDDEN user message
|
|
31
|
+
* after every successful Approve. The LLM treats it as the user
|
|
32
|
+
* speaking; the chat shell filters it out at render time.
|
|
33
|
+
*
|
|
34
|
+
* Branch logic mirrors `TICKET_TOOL_PROTOCOL` §1a/§1b — keep them in
|
|
35
|
+
* sync: the directive tells the model WHICH section to follow.
|
|
36
|
+
*/
|
|
37
|
+
export declare function buildAutoContinuationDirective(toolName: string, opts?: BuildAutoContinuationOptions): string;
|
|
38
|
+
//# sourceMappingURL=auto-continuation-directive.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-continuation-directive.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/utils/auto-continuation-directive.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,eAAO,MAAM,kCAAkC,iCAAiC,CAAA;AAEhF,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;0EAEsE;IACtE,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,4BAAiC,GACtC,MAAM,CA2BR"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared helper for the host-side markdown formatter ↔ server-side
|
|
3
|
+
* parser pair. Single source of truth so the host-side build (chat
|
|
4
|
+
* bubble render) and the server-side strip (LLM input cleanup) can
|
|
5
|
+
* never drift.
|
|
6
|
+
*
|
|
7
|
+
* Lib-side replacement for the hub's `lib/utils/chat-attachment-markdown.ts`.
|
|
8
|
+
* The hub file pulled its constants from `lib/config/chat-attachment-config`
|
|
9
|
+
* + its `ChatAttachment` type from `lib/types/chat-attachment`. Both are
|
|
10
|
+
* inlined here as lib-local constants/types — they're stable wire-format
|
|
11
|
+
* contracts (the hub's view-route owns the prefix + token-param name; any
|
|
12
|
+
* change is a coordinated migration).
|
|
13
|
+
*
|
|
14
|
+
* URL flavors at a glance:
|
|
15
|
+
* - HOST-SIDE (user-bubble render): uses the runtime's
|
|
16
|
+
* `attachmentViewUrlPrefix` (hub default = `/api/storage/view/chat-attachments/`).
|
|
17
|
+
* Embedded apps override per their reverse-proxy topology.
|
|
18
|
+
* - SERVER-SIDE (strip regex): uses the constant
|
|
19
|
+
* `CHAT_ATTACHMENT_VIEW_URL_PREFIX` directly. The chat ROUTE always
|
|
20
|
+
* runs on the hub, so it always strips on the hub default.
|
|
21
|
+
* - ANTHROPIC image-blocks: uses the RAW Supabase signed URL — NOT the
|
|
22
|
+
* proxy URL — because Anthropic's image fetcher doesn't reliably
|
|
23
|
+
* follow 302 redirects.
|
|
24
|
+
*
|
|
25
|
+
* Security gates inside the formatter:
|
|
26
|
+
* - Filename markdown chars escaped via `escapeMarkdownInline` so a
|
|
27
|
+
* name like `screenshot](https://evil.com).png` cannot terminate
|
|
28
|
+
* the markdown image early and embed an attacker-controlled URL.
|
|
29
|
+
* - `<` and `>` escaped too — prevents CommonMark autolink expansion
|
|
30
|
+
* for filenames containing URL-shaped text.
|
|
31
|
+
*/
|
|
32
|
+
/** Hub-default prefix for the view-proxy URL. Embedders override via the
|
|
33
|
+
* runtime. The server-side strip regex always uses THIS value (server
|
|
34
|
+
* runs on the hub). */
|
|
35
|
+
export declare const CHAT_ATTACHMENT_VIEW_URL_PREFIX = "/api/storage/view/chat-attachments/";
|
|
36
|
+
/** Query parameter name for the HMAC view token. */
|
|
37
|
+
export declare const CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM = "t";
|
|
38
|
+
/** Subset Anthropic's image content-block API supports. HEIC / video
|
|
39
|
+
* attachments fall through to the text-marker form so the LLM still sees
|
|
40
|
+
* a reference even when it can't visually parse the file. */
|
|
41
|
+
export declare const ANTHROPIC_SUPPORTED_IMAGE_MIME: readonly ["image/jpeg", "image/png", "image/webp", "image/gif"];
|
|
42
|
+
/**
|
|
43
|
+
* Wire shape for a single chat attachment.
|
|
44
|
+
*
|
|
45
|
+
* `viewToken` is server-issued (HMAC-signed) and embedded in the markdown
|
|
46
|
+
* URL's `?t=` query parameter. The client never generates it — the upload
|
|
47
|
+
* route returns it alongside the storage path.
|
|
48
|
+
*/
|
|
49
|
+
export interface ChatAttachment {
|
|
50
|
+
storagePath: string;
|
|
51
|
+
viewToken: string;
|
|
52
|
+
contentType: string;
|
|
53
|
+
fileName: string;
|
|
54
|
+
size: number;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Build the markdown view-URL for a chat attachment.
|
|
58
|
+
*
|
|
59
|
+
* `viewUrlPrefix` is parameterized (NOT pulled from the constant) so
|
|
60
|
+
* host-side callers can pass the runtime's prefix
|
|
61
|
+
* (`ChatRuntime.endpoints.attachmentViewUrlPrefix`) — embedded apps
|
|
62
|
+
* supply an absolute URL against the hub's origin so chat-history
|
|
63
|
+
* markdown works cross-origin.
|
|
64
|
+
*
|
|
65
|
+
* Server-side callers (the strip regex source) should pass
|
|
66
|
+
* `CHAT_ATTACHMENT_VIEW_URL_PREFIX` directly.
|
|
67
|
+
*/
|
|
68
|
+
export declare function buildChatAttachmentViewUrl(viewUrlPrefix: string, storagePath: string, viewToken: string): string;
|
|
69
|
+
/**
|
|
70
|
+
* Escape inline-markdown special characters from a filename before
|
|
71
|
+
* interpolation. Closes the markdown-injection / phishing primitive:
|
|
72
|
+
* a filename like `screenshot](https://evil.com).png` would otherwise
|
|
73
|
+
* terminate `` early and emit an attacker-controlled
|
|
74
|
+
* URL in the user's bubble.
|
|
75
|
+
*
|
|
76
|
+
* Escapes: `[`, `]`, `(`, `)`, `\`, `\n`, `\r`, `<`, `>`, `"`.
|
|
77
|
+
*/
|
|
78
|
+
export declare function escapeMarkdownInline(text: string): string;
|
|
79
|
+
/**
|
|
80
|
+
* Format a single chat-attachment as a markdown line to append to the
|
|
81
|
+
* user's bubble text BEFORE sending.
|
|
82
|
+
*
|
|
83
|
+
* Images (MIME in `ANTHROPIC_SUPPORTED_IMAGE_MIME`) emit the `![]()`
|
|
84
|
+
* image form so the browser renders the attachment inline. Everything
|
|
85
|
+
* else (HEIC, video, audio) emits the `[Attached: ...]` link form so the
|
|
86
|
+
* bubble shows a clickable file pill instead of a broken-image icon.
|
|
87
|
+
*/
|
|
88
|
+
export declare function formatChatAttachmentMarkdownForBubble(att: ChatAttachment, viewUrlPrefix: string): string;
|
|
89
|
+
/**
|
|
90
|
+
* Module-private: the `CHAT_ATTACHMENT_VIEW_URL_PREFIX` with regex
|
|
91
|
+
* meta-characters escaped, so it can be safely interpolated into
|
|
92
|
+
* regex sources. Computed ONCE at module load. Exported so other
|
|
93
|
+
* regex-building call sites can share the same source of truth.
|
|
94
|
+
*/
|
|
95
|
+
export declare const CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED: string;
|
|
96
|
+
/**
|
|
97
|
+
* Single anchored regex matching both the image (`![]()`) and link
|
|
98
|
+
* (`[Attached: ...]`) forms keyed on the server-side prefix.
|
|
99
|
+
*
|
|
100
|
+
* `gm` flags — multi-line anchored so the regex matches per-line.
|
|
101
|
+
* Non-chat markdown links/images stay untouched because the regex
|
|
102
|
+
* requires the literal `/api/storage/view/chat-attachments/` prefix.
|
|
103
|
+
*/
|
|
104
|
+
export declare const CHAT_ATTACHMENT_MARKDOWN_PATTERN: RegExp;
|
|
105
|
+
/**
|
|
106
|
+
* Strip pre-embedded chat-attachment markdown lines from `text`.
|
|
107
|
+
* Returns the cleaned text + the storage paths extracted from the
|
|
108
|
+
* matched URLs.
|
|
109
|
+
*/
|
|
110
|
+
export declare function stripChatAttachmentMarkdown(text: string): {
|
|
111
|
+
stripped: string;
|
|
112
|
+
storagePaths: string[];
|
|
113
|
+
};
|
|
114
|
+
//# sourceMappingURL=chat-attachment-markdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-attachment-markdown.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/utils/chat-attachment-markdown.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AASH;;wBAEwB;AACxB,eAAO,MAAM,+BAA+B,wCAAwC,CAAA;AAEpF,oDAAoD;AACpD,eAAO,MAAM,sCAAsC,MAAM,CAAA;AAEzD;;8DAE8D;AAC9D,eAAO,MAAM,8BAA8B,iEAKjC,CAAA;AAEV;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;CACb;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,0BAA0B,CACxC,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,MAAM,CAER;AAMD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAWzD;AAED;;;;;;;;GAQG;AACH,wBAAgB,qCAAqC,CACnD,GAAG,EAAE,cAAc,EACnB,aAAa,EAAE,MAAM,GACpB,MAAM,CAKR;AAMD;;;;;GAKG;AACH,eAAO,MAAM,6CAA6C,QACc,CAAA;AAExE;;;;;;;GAOG;AACH,eAAO,MAAM,gCAAgC,QAG5C,CAAA;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG;IACzD,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,EAAE,CAAA;CACvB,CAcA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `fetch` wrapper that attaches chat-proxy bearer headers (when
|
|
3
|
+
* present in localStorage) and forces `credentials: 'same-origin'`
|
|
4
|
+
* so Supabase auth cookies travel too.
|
|
5
|
+
*
|
|
6
|
+
* Headers are MERGED: caller-supplied `init.headers` keys override the
|
|
7
|
+
* proxy headers (so a caller explicitly passing `Authorization` wins).
|
|
8
|
+
* In practice `applyProxyAuth` only sets the keys our chat auth chain
|
|
9
|
+
* cares about and no caller should override those — but the merge
|
|
10
|
+
* direction is documented so a future caller doesn't get a surprise.
|
|
11
|
+
*/
|
|
12
|
+
export declare function chatAuthedFetch(url: string, init?: RequestInit): Promise<Response>;
|
|
13
|
+
//# sourceMappingURL=chat-authed-fetch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-authed-fetch.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/utils/chat-authed-fetch.ts"],"names":[],"mappings":"AA2BA;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAkCtF"}
|