@flamingo-stack/openframe-frontend-core 0.0.213 → 0.0.214-snapshot.20260528192313
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-35XIT2CF.cjs → chunk-2G3NXF6J.cjs} +17 -17
- package/dist/{chunk-35XIT2CF.cjs.map → chunk-2G3NXF6J.cjs.map} +1 -1
- package/dist/{chunk-IK2X5YJU.js → chunk-7PCP7YQR.js} +2 -2
- package/dist/{chunk-ZDF6F7ED.cjs → chunk-D4MNFY67.cjs} +4 -3
- package/dist/chunk-D4MNFY67.cjs.map +1 -0
- package/dist/{chunk-OTKJASSX.cjs → chunk-NGFP4RVL.cjs} +24 -24
- package/dist/{chunk-OTKJASSX.cjs.map → chunk-NGFP4RVL.cjs.map} +1 -1
- package/dist/{chunk-3JWIJJ44.js → chunk-R6MLPU4A.js} +2 -2
- package/dist/{chunk-ZTJVRSN5.js → chunk-WQZP3JIZ.js} +4 -3
- package/dist/chunk-WQZP3JIZ.js.map +1 -0
- package/dist/components/chat/index.cjs +2 -2
- package/dist/components/chat/index.js +1 -1
- package/dist/components/contact/index.cjs +3 -3
- package/dist/components/contact/index.js +2 -2
- package/dist/components/features/index.cjs +2 -2
- package/dist/components/features/index.js +1 -1
- package/dist/components/index.cjs +49 -49
- package/dist/components/index.js +2 -2
- package/dist/components/navigation/index.cjs +2 -2
- package/dist/components/navigation/index.js +1 -1
- package/dist/components/tickets/index.cjs +61 -61
- package/dist/components/tickets/index.js +3 -3
- package/dist/components/ui/index.cjs +2 -2
- package/dist/components/ui/index.js +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/src/.index.md +36 -34
- package/src/components/.alert-dialog.md +27 -23
- package/src/components/.announcement-bar.md +26 -21
- package/src/components/.breadcrumb.md +19 -15
- package/src/components/.calendar.md +24 -19
- package/src/components/.categories-cart.md +29 -24
- package/src/components/.checkbox.md +23 -25
- package/src/components/.chevron-button.md +37 -32
- package/src/components/.comment-card.md +32 -62
- package/src/components/.dialog.md +26 -26
- package/src/components/.dynamic-skeleton.md +54 -57
- package/src/components/.empty-state.md +42 -51
- package/src/components/.faq-accordion.md +27 -21
- package/src/components/.filter-chip.md +41 -24
- package/src/components/.flamingo-logo.md +20 -23
- package/src/components/.footer-waitlist-button.md +29 -22
- package/src/components/.footer.md +32 -32
- package/src/components/.icons-block.md +27 -17
- package/src/components/.image-cropper.md +41 -32
- package/src/components/.index.md +33 -39
- package/src/components/.input.md +31 -35
- package/src/components/.logs-list.md +31 -20
- package/src/components/.media-carousel.md +35 -36
- package/src/components/.open-source-features.md +33 -16
- package/src/components/.pagination.md +52 -51
- package/src/components/.provider-button.md +21 -23
- package/src/components/.select.md +31 -20
- package/src/components/.sidebar.md +34 -24
- package/src/components/.smooth-accordion.md +29 -24
- package/src/components/.social-icon-row.md +36 -32
- package/src/components/.textarea.md +25 -31
- package/src/components/.tool-icon.md +24 -26
- package/src/components/.unified-filter-logic.md +37 -30
- package/src/components/.unified-pagination.md +23 -22
- package/src/components/.user-summary-stub.md +38 -22
- package/src/components/.vendor-display-button.md +25 -25
- package/src/components/.vendor-icon.md +33 -25
- package/src/components/.why-it-matters.md +28 -25
- package/src/components/chat/.approval-batch-message.md +51 -0
- package/src/components/chat/.approval-request-message.md +35 -34
- package/src/components/chat/.chat-attachment-bar.md +64 -0
- package/src/components/chat/.chat-container.md +36 -18
- package/src/components/chat/.chat-input.md +37 -20
- package/src/components/chat/.chat-message-enhanced.md +30 -49
- package/src/components/chat/.chat-message-list.md +45 -32
- package/src/components/chat/.chat-message-skeleton.md +26 -22
- package/src/components/chat/.chat-panel-context.md +52 -0
- package/src/components/chat/.chat-ref.types.md +42 -0
- package/src/components/chat/.chat-sidebar-skeleton.md +34 -25
- package/src/components/chat/.chat-sidebar.md +31 -26
- package/src/components/chat/.chat-ticket-list.md +39 -0
- package/src/components/chat/.context-compaction-display.md +36 -0
- package/src/components/chat/.cycling-phrase.md +52 -0
- package/src/components/chat/.embeddable-chat.md +48 -0
- package/src/components/chat/.expand-chevron.md +24 -0
- package/src/components/chat/.index.md +31 -35
- package/src/components/chat/.mingo-onboarding-card-skeleton.md +44 -0
- package/src/components/chat/.mingo-onboarding-card.md +62 -0
- package/src/components/chat/.model-display.md +32 -30
- package/src/components/chat/.nav-link-anchor-via-runtime.md +40 -0
- package/src/components/chat/.remark-card-links.md +38 -0
- package/src/components/chat/.slash-command-suggestions.md +47 -0
- package/src/components/chat/.source-action-button.md +48 -0
- package/src/components/chat/.thinking-display.md +42 -0
- package/src/components/chat/.tool-call-blocks.md +45 -0
- package/src/components/chat/.tool-execution-display.md +44 -36
- package/src/components/chat/chat-container.tsx +1 -1
- package/src/components/chat/entity-cards/.admin-content-card.md +43 -0
- package/src/components/chat/entity-cards/.block-card.md +47 -0
- package/src/components/chat/entity-cards/.blog-card.md +52 -0
- package/src/components/chat/entity-cards/.blog-image-placeholder.md +39 -0
- package/src/components/chat/entity-cards/.campaign-card-admin.md +47 -0
- package/src/components/chat/entity-cards/.case-study-card.md +58 -0
- package/src/components/chat/entity-cards/.chat-ticket-item.md +40 -0
- package/src/components/chat/entity-cards/.chat-video-entity-card.md +43 -0
- package/src/components/chat/entity-cards/.customer-interview-card.md +53 -0
- package/src/components/chat/entity-cards/.data-room-doc-card.md +47 -0
- package/src/components/chat/entity-cards/.dispatch.md +39 -0
- package/src/components/chat/entity-cards/.entity-author-card.md +51 -0
- package/src/components/chat/entity-cards/.generic-entity-card.md +62 -0
- package/src/components/chat/entity-cards/.github-activity-card.md +61 -0
- package/src/components/chat/entity-cards/.hubspot-ticket-card.md +53 -0
- package/src/components/chat/entity-cards/.index.md +66 -0
- package/src/components/chat/entity-cards/.investor-update-card.md +47 -0
- package/src/components/chat/entity-cards/.onboarding-guide-card.md +58 -0
- package/src/components/chat/entity-cards/.product-release-card-defaults.md +31 -0
- package/src/components/chat/entity-cards/.product-release-card.md +29 -0
- package/src/components/chat/entity-cards/.program-card-defaults.md +41 -0
- package/src/components/chat/entity-cards/.program-card.md +59 -0
- package/src/components/chat/entity-cards/.roadmap-card.md +46 -0
- package/src/components/chat/entity-cards/.roadmap-vote-button.md +52 -0
- package/src/components/chat/entity-cards/.slack-message-card.md +48 -0
- package/src/components/chat/entity-cards/.task-type-icon.md +47 -0
- package/src/components/chat/hooks/.index.md +36 -21
- package/src/components/chat/hooks/.use-chat-attachment-image-gallery.md +51 -0
- package/src/components/chat/hooks/.use-chat-attachments.md +48 -0
- package/src/components/chat/hooks/.use-chat-card-item.md +39 -0
- package/src/components/chat/hooks/.use-chat-identity.md +45 -0
- package/src/components/chat/hooks/.use-chat.md +58 -0
- package/src/components/chat/hooks/.use-chunk-catchup.md +46 -48
- package/src/components/chat/hooks/.use-close-on-navigation.md +44 -0
- package/src/components/chat/hooks/.use-collapsible.md +48 -0
- package/src/components/chat/hooks/.use-embedded-chat.md +32 -0
- package/src/components/chat/hooks/.use-jetstream-dialog-subscription.md +40 -0
- package/src/components/chat/hooks/.use-nats-chat-adapter.md +52 -0
- package/src/components/chat/hooks/.use-nats-dialog-subscription.md +49 -30
- package/src/components/chat/hooks/.use-proxied-image-url.md +40 -0
- package/src/components/chat/hooks/.use-realtime-chunk-processor.md +43 -40
- package/src/components/chat/hooks/.use-slash-commands.md +46 -0
- package/src/components/chat/hooks/.use-sse-chat-adapter.md +34 -0
- package/src/components/chat/hooks/.use-sse.md +60 -0
- package/src/components/chat/hooks/.use-unified-chat.md +57 -0
- package/src/components/chat/types/.api.types.md +52 -38
- package/src/components/chat/types/.chat.types.md +43 -34
- package/src/components/chat/types/.component.types.md +47 -48
- package/src/components/chat/types/.index.md +20 -27
- package/src/components/chat/types/.message.types.md +58 -48
- package/src/components/chat/types/.network.types.md +57 -31
- package/src/components/chat/types/.processing.types.md +49 -31
- package/src/components/chat/types/.unified-chat-state.types.md +41 -0
- package/src/components/chat/types/entities/.blog.md +43 -0
- package/src/components/chat/types/entities/.case-study.md +26 -0
- package/src/components/chat/types/entities/.content-ref.md +41 -0
- package/src/components/chat/types/entities/.customer-interview.md +28 -0
- package/src/components/chat/types/entities/.data-room-doc.md +36 -0
- package/src/components/chat/types/entities/.github-activity.md +43 -0
- package/src/components/chat/types/entities/.hubspot-ticket.md +53 -0
- package/src/components/chat/types/entities/.index.md +42 -0
- package/src/components/chat/types/entities/.investor-update.md +45 -0
- package/src/components/chat/types/entities/.onboarding-guide.md +50 -0
- package/src/components/chat/types/entities/.program-types.md +57 -0
- package/src/components/chat/types/entities/.roadmap-item.md +58 -0
- package/src/components/chat/types/entities/.slack-message.md +35 -0
- package/src/components/chat/utils/.agent-status-message.md +45 -0
- package/src/components/chat/utils/.auto-continuation-directive.md +58 -0
- package/src/components/chat/utils/.chat-attachment-markdown.md +54 -0
- package/src/components/chat/utils/.chat-authed-fetch.md +25 -0
- package/src/components/chat/utils/.chat-nav-resolution.md +46 -0
- package/src/components/chat/utils/.chat-proxy-auth-storage.md +38 -0
- package/src/components/chat/utils/.chip-action-class.md +34 -0
- package/src/components/chat/utils/.chip-styles.md +46 -0
- package/src/components/chat/utils/.chunk-parser.md +38 -28
- package/src/components/chat/utils/.clickup-task-type-utils.md +48 -0
- package/src/components/chat/utils/.compact-card-classes.md +62 -0
- package/src/components/chat/utils/.decide-new-tab.md +51 -0
- package/src/components/chat/utils/.external-app-urls.md +29 -0
- package/src/components/chat/utils/.extract-incomplete-message-state.md +25 -29
- package/src/components/chat/utils/.flatten-assistant-content.md +34 -0
- package/src/components/chat/utils/.icon-registry.md +46 -0
- package/src/components/chat/utils/.index.md +37 -32
- package/src/components/chat/utils/.is-cross-origin-url.md +35 -0
- package/src/components/chat/utils/.message-segment-accumulator.md +25 -34
- package/src/components/chat/utils/.nav-anchor-props.md +44 -0
- package/src/components/chat/utils/.nav-click-handler.md +47 -0
- package/src/components/chat/utils/.onboarding-icons.md +28 -0
- package/src/components/chat/utils/.process-historical-messages.md +46 -35
- package/src/components/chat/utils/.scroll-anchor.md +40 -0
- package/src/components/chat/utils/.slash-dispatch-utils.md +44 -0
- package/src/components/chat/utils/.source-icons.md +35 -0
- package/src/components/chat/utils/.source-row-cta.md +54 -0
- package/src/components/chat/utils/.tool-call-helpers.md +42 -0
- package/src/components/contact/.contact-form.md +43 -0
- package/src/components/contact/.index.md +27 -0
- package/src/components/features/.array-entry-manager.md +36 -45
- package/src/components/features/.changelog-manager.md +47 -21
- package/src/components/features/.changelog-sections-manager.md +21 -26
- package/src/components/features/.command-box.md +31 -28
- package/src/components/features/.entity-summary-editor.md +46 -0
- package/src/components/features/.entity-video-section.md +51 -0
- package/src/components/features/.figma-prototype-viewer.md +48 -29
- package/src/components/features/.filters-dropdown.md +33 -46
- package/src/components/features/.highlight-config-section.md +42 -0
- package/src/components/features/.highlight-generation-section.md +46 -0
- package/src/components/features/.highlight-video-combined-section.md +47 -0
- package/src/components/features/.highlight-video-preview.md +44 -0
- package/src/components/features/.highlight-video-section.md +47 -0
- package/src/components/features/.index.md +40 -66
- package/src/components/features/.media-gallery-manager.md +48 -38
- package/src/components/features/.more-about-button.md +22 -19
- package/src/components/features/.og-editor-preview.md +40 -36
- package/src/components/features/.parallax-image-showcase.md +33 -26
- package/src/components/features/.paths-display.md +42 -43
- package/src/components/features/.platform-badge.md +37 -36
- package/src/components/features/.platform-filter.md +23 -16
- package/src/components/features/.policy-configuration-panel.md +48 -56
- package/src/components/features/.provider-button.md +33 -36
- package/src/components/features/.push-button-selector.md +40 -29
- package/src/components/features/.release-media-manager.md +46 -31
- package/src/components/features/.section-selector.md +26 -31
- package/src/components/features/.select-button.md +35 -25
- package/src/components/features/.seo-editor-preview.md +41 -44
- package/src/components/features/.social-links-manager.md +25 -19
- package/src/components/features/.start-with-openframe-button.md +37 -29
- package/src/components/features/.status-filter-component.md +36 -20
- package/src/components/features/.tags-selector.md +40 -24
- package/src/components/features/.transcribe-and-summarize-combined-section.md +45 -0
- package/src/components/features/.transcribe-summarize-section.md +48 -0
- package/src/components/features/.transcript-summary-editor.md +53 -0
- package/src/components/features/.video-bites-display.md +46 -0
- package/src/components/features/.video-clips-section.md +41 -0
- package/src/components/features/.video-ratio-tabs.md +56 -0
- package/src/components/features/.video-source-selector.md +60 -0
- package/src/components/features/.video.md +44 -0
- package/src/components/features/.waitlist-form.md +60 -0
- package/src/components/features/ai-enrich/.AIEnrichButton.md +30 -27
- package/src/components/features/ai-enrich/.AIEnrichSection.md +46 -42
- package/src/components/features/board/.board-column-header.md +38 -0
- package/src/components/features/board/.board-column.md +43 -0
- package/src/components/features/board/.board.md +51 -0
- package/src/components/features/board/.color-utils.md +26 -0
- package/src/components/features/board/.index.md +56 -0
- package/src/components/features/board/.ticket-card-skeleton.md +38 -0
- package/src/components/features/board/.ticket-card.md +47 -0
- package/src/components/features/board/.types.md +45 -0
- package/src/components/features/board/.use-board-collapse.md +34 -0
- package/src/components/features/notifications/.index.md +57 -0
- package/src/components/features/notifications/.notification-drawer.md +34 -0
- package/src/components/features/notifications/.notification-tile.md +39 -0
- package/src/components/features/notifications/.notifications-context.md +73 -0
- package/src/components/features/notifications/.types.md +45 -0
- package/src/components/icons/.about-icon.md +20 -28
- package/src/components/icons/.ai-robot-icon.md +15 -17
- package/src/components/icons/.bash-icon.md +16 -23
- package/src/components/icons/.buildings-icon.md +10 -24
- package/src/components/icons/.capterra-icon.md +30 -26
- package/src/components/icons/.carta-icon.md +29 -0
- package/src/components/icons/.clickup-icon.md +26 -0
- package/src/components/icons/.cmd-icon.md +15 -22
- package/src/components/icons/.coins-icon.md +17 -25
- package/src/components/icons/.community-hub-icon.md +19 -25
- package/src/components/icons/.community-icon.md +24 -21
- package/src/components/icons/.compare-icon.md +32 -19
- package/src/components/icons/.copy-icon.md +29 -15
- package/src/components/icons/.custom-external-link-icon.md +19 -17
- package/src/components/icons/.custom-fork-icon.md +32 -21
- package/src/components/icons/.custom-license-icon.md +29 -25
- package/src/components/icons/.custom-star-icon.md +20 -28
- package/src/components/icons/.custom-time-icon.md +21 -22
- package/src/components/icons/.cut-vendor-costs-icon.md +6 -19
- package/src/components/icons/.dashboard-icon.md +13 -18
- package/src/components/icons/.deno-icon.md +16 -23
- package/src/components/icons/.donut-icon.md +12 -23
- package/src/components/icons/.double-chevron-icon.md +28 -36
- package/src/components/icons/.elestio-logo.md +13 -23
- package/src/components/icons/.empty-vendor-icon.md +16 -18
- package/src/components/icons/.explore-categories-icon.md +18 -29
- package/src/components/icons/.eye-icon.md +16 -26
- package/src/components/icons/.facebook-icon.md +9 -20
- package/src/components/icons/.figma-icon.md +8 -17
- package/src/components/icons/.filter-icon.md +15 -17
- package/src/components/icons/.flamingo-logo.md +28 -27
- package/src/components/icons/.folder-shield-icon.md +28 -19
- package/src/components/icons/.g2-icon.md +22 -21
- package/src/components/icons/.getapp-icon.md +25 -21
- package/src/components/icons/.github-icon.md +13 -25
- package/src/components/icons/.globe-icon.md +14 -19
- package/src/components/icons/.google-gemini-icon.md +16 -19
- package/src/components/icons/.google-logo.md +15 -21
- package/src/components/icons/.grid-view-icon.md +30 -19
- package/src/components/icons/.hamburger-icon.md +22 -20
- package/src/components/icons/.hand-dollar-icon.md +24 -34
- package/src/components/icons/.hotel-icon.md +27 -21
- package/src/components/icons/.icon-utils.md +28 -29
- package/src/components/icons/.image-icon.md +15 -22
- package/src/components/icons/.index.md +25 -28
- package/src/components/icons/.info-circle-icon.md +29 -30
- package/src/components/icons/.instagram-icon.md +10 -24
- package/src/components/icons/.jump-in-icon.md +18 -18
- package/src/components/icons/.linux-icon.md +18 -18
- package/src/components/icons/.log-out-icon.md +15 -23
- package/src/components/icons/.logs-icon.md +14 -23
- package/src/components/icons/.margin-crisis-icon.md +21 -20
- package/src/components/icons/.menu-icon.md +18 -19
- package/src/components/icons/.miami-cyber-gang-logo-face-only.md +18 -21
- package/src/components/icons/.miami-cyber-gang-logo.md +22 -14
- package/src/components/icons/.mlg-logo.md +18 -16
- package/src/components/icons/.moon-icon.md +32 -22
- package/src/components/icons/.ms-icon.md +30 -19
- package/src/components/icons/.nushell-icon.md +7 -21
- package/src/components/icons/.open-source-icon.md +19 -23
- package/src/components/icons/.openai-icon.md +9 -24
- package/src/components/icons/.openframe-ai-icons.md +25 -26
- package/src/components/icons/.openframe-logo.md +28 -22
- package/src/components/icons/.openframe-text.md +24 -27
- package/src/components/icons/.openmsp-logo.md +26 -23
- package/src/components/icons/.pilot-icon.md +23 -0
- package/src/components/icons/.powershell-icon.md +17 -22
- package/src/components/icons/.python-icon.md +16 -23
- package/src/components/icons/.queries-icon.md +13 -21
- package/src/components/icons/.reddit-icon.md +28 -24
- package/src/components/icons/.remote-control-icon.md +13 -17
- package/src/components/icons/.script-icon.md +27 -19
- package/src/components/icons/.search-icon.md +21 -21
- package/src/components/icons/.send-icon.md +14 -16
- package/src/components/icons/.settings-icon.md +30 -19
- package/src/components/icons/.shape-circle-dash-icon.md +16 -21
- package/src/components/icons/.shell-icon.md +15 -19
- package/src/components/icons/.shield-check-icon.md +18 -31
- package/src/components/icons/.shield-key-icon.md +25 -25
- package/src/components/icons/.shield-lock-icon.md +8 -18
- package/src/components/icons/.slack-icon.md +28 -32
- package/src/components/icons/.sparkles-icon.md +18 -23
- package/src/components/icons/.sso-configuration-icon.md +29 -16
- package/src/components/icons/.sun-icon.md +20 -18
- package/src/components/icons/.table-view-icon.md +17 -19
- package/src/components/icons/.telegram-icon.md +8 -22
- package/src/components/icons/.thumbs-down-icon.md +10 -19
- package/src/components/icons/.thumbs-up-icon.md +8 -17
- package/src/components/icons/.tool-directory-icons.md +24 -28
- package/src/components/icons/.trustpilot-icon.md +25 -22
- package/src/components/icons/.user-icon.md +26 -28
- package/src/components/icons/.users-group-icon.md +28 -24
- package/src/components/icons/.vendor-showcase-icons.md +21 -29
- package/src/components/icons/.vendors-icon.md +18 -22
- package/src/components/icons/.whatsapp-icon.md +30 -14
- package/src/components/icons/.x-icon.md +18 -23
- package/src/components/icons/.x-logo.md +13 -38
- package/src/components/icons/.youtube-icon.md +8 -19
- package/src/components/icons/device-type-icons/.get-device-type-icon.md +26 -34
- package/src/components/icons-v2-generated/.index.md +52 -0
- package/src/components/icons-v2-generated/alphabet/.index.md +33 -0
- package/src/components/icons-v2-generated/arrows/.index.md +39 -0
- package/src/components/icons-v2-generated/audio-and-visual/.index.md +40 -0
- package/src/components/icons-v2-generated/brand-logos/.elestio-logo-icon.md +40 -0
- package/src/components/icons-v2-generated/brand-logos/.gemini-logo-icon.md +37 -0
- package/src/components/icons-v2-generated/brand-logos/.google-gemini-logo-icon.md +33 -0
- package/src/components/icons-v2-generated/brand-logos/.index.md +38 -0
- package/src/components/icons-v2-generated/brand-logos/.meshcentral-logo-grey-icon.md +35 -0
- package/src/components/icons-v2-generated/brand-logos/.meshcentral-logo-icon.md +36 -0
- package/src/components/icons-v2-generated/buildings/.index.md +48 -0
- package/src/components/icons-v2-generated/charts/.index.md +40 -0
- package/src/components/icons-v2-generated/clothes/.index.md +48 -0
- package/src/components/icons-v2-generated/coding/.index.md +42 -0
- package/src/components/icons-v2-generated/communication/.index.md +39 -0
- package/src/components/icons-v2-generated/date-and-time/.index.md +29 -0
- package/src/components/icons-v2-generated/design/.index.md +39 -0
- package/src/components/icons-v2-generated/devices/.index.md +38 -0
- package/src/components/icons-v2-generated/documents/.index.md +38 -0
- package/src/components/icons-v2-generated/finance/.index.md +34 -0
- package/src/components/icons-v2-generated/food-and-drinks/.index.md +34 -0
- package/src/components/icons-v2-generated/food-and-drinks/.leafy-green-icon.md +36 -0
- package/src/components/icons-v2-generated/food-and-drinks/.strawberry-icon.md +39 -0
- package/src/components/icons-v2-generated/health/.index.md +40 -0
- package/src/components/icons-v2-generated/household/.index.md +45 -0
- package/src/components/icons-v2-generated/interface/.index.md +36 -0
- package/src/components/icons-v2-generated/map-and-travel/.index.md +41 -0
- package/src/components/icons-v2-generated/media-playback/.index.md +51 -0
- package/src/components/icons-v2-generated/number/.index.md +41 -0
- package/src/components/icons-v2-generated/school/.index.md +37 -0
- package/src/components/icons-v2-generated/security/.fingerprint-icon.md +38 -0
- package/src/components/icons-v2-generated/security/.index.md +39 -0
- package/src/components/icons-v2-generated/shopping/.index.md +42 -0
- package/src/components/icons-v2-generated/signs-and-symbols/.index.md +32 -0
- package/src/components/icons-v2-generated/sort-and-filter/.index.md +35 -0
- package/src/components/icons-v2-generated/sport/.index.md +41 -0
- package/src/components/icons-v2-generated/text-editor/.index.md +44 -0
- package/src/components/icons-v2-generated/users/.index.md +45 -0
- package/src/components/icons-v2-generated/vehicles-and-delivery/.index.md +36 -0
- package/src/components/icons-v2-generated/weather-and-nature/.flower-sakura-icon.md +36 -0
- package/src/components/icons-v2-generated/weather-and-nature/.index.md +34 -0
- package/src/components/layout/.article-detail-layout.md +43 -0
- package/src/components/layout/.back-button.md +40 -0
- package/src/components/layout/.list-page-layout.md +35 -26
- package/src/components/layout/.page-container.md +27 -38
- package/src/components/layout/.page-layout.md +50 -0
- package/src/components/layout/.title-block.md +42 -0
- package/src/components/loading/.card-skeleton.md +38 -29
- package/src/components/loading/.device-card-skeleton.md +29 -25
- package/src/components/loading/.index.md +39 -46
- package/src/components/loading/.margin-report-skeleton.md +45 -34
- package/src/components/loading/.organization-card-skeleton.md +39 -44
- package/src/components/loading/.page-layout-skeleton.md +34 -45
- package/src/components/loading/.unified-skeleton.md +62 -36
- package/src/components/navigation/.app-header.md +40 -29
- package/src/components/navigation/.app-layout.md +25 -26
- package/src/components/navigation/.header-global-search.md +34 -37
- package/src/components/navigation/.header-organization-filter.md +23 -22
- package/src/components/navigation/.header.md +31 -35
- package/src/components/navigation/.mobile-burger-menu.md +39 -47
- package/src/components/navigation/.mobile-nav-panel.md +51 -32
- package/src/components/navigation/.navigation-sidebar-header.md +36 -0
- package/src/components/navigation/.navigation-sidebar-item.md +45 -0
- package/src/components/navigation/.navigation-sidebar-toggle.md +38 -0
- package/src/components/navigation/.navigation-sidebar.md +33 -34
- package/src/components/navigation/.sliding-sidebar.md +52 -41
- package/src/components/navigation/.sticky-section-nav.md +56 -48
- package/src/components/platform/.ScriptArguments.md +39 -25
- package/src/components/platform/.ScriptInfoSection.md +30 -26
- package/src/components/platform/.ShellTypeBadge.md +18 -13
- package/src/components/platform/.SoftwareInfo.md +23 -27
- package/src/components/platform/.SoftwareSourceBadge.md +28 -19
- package/src/components/platform/.ToolBadge.md +25 -26
- package/src/components/platform/ShellTypeBadge.tsx +2 -2
- package/src/components/providers/.theme-provider.md +52 -0
- package/src/components/shared/delivery/.delivery-lists.md +39 -0
- package/src/components/shared/delivery/.delivery-row.md +41 -0
- package/src/components/shared/delivery/.delivery-table.md +41 -0
- package/src/components/shared/delivery/.index.md +38 -0
- package/src/components/shared/dev-section/.dev-card-row.md +60 -0
- package/src/components/shared/dev-section/.dev-section-page.md +48 -0
- package/src/components/shared/dev-section/.dev-section-view.md +43 -0
- package/src/components/shared/dev-section/.index.md +38 -0
- package/src/components/shared/legal-document/.index.md +40 -0
- package/src/components/shared/legal-document/.legal-document-page.md +50 -0
- package/src/components/shared/legal-document/.use-legal-docs.md +42 -0
- package/src/components/shared/onboarding/.onboarding-step-card.md +32 -31
- package/src/components/shared/onboarding/.onboarding-walkthrough.md +39 -43
- package/src/components/shared/product-release/.index.md +28 -30
- package/src/components/shared/product-release/.product-release-card-skeleton.md +28 -28
- package/src/components/shared/product-release/.product-release-card.md +45 -27
- package/src/components/shared/product-release/.release-detail-page.md +23 -24
- package/src/components/shared/roadmap/.index.md +37 -0
- package/src/components/shared/roadmap/.roadmap-grid-skeleton.md +39 -0
- package/src/components/shared/roadmap/.roadmap-grid.md +66 -0
- package/src/components/shared/roadmap/.use-roadmap-voting.md +68 -0
- package/src/components/tickets/.help-center-card.md +51 -0
- package/src/components/tickets/.help-center-create-form.md +38 -0
- package/src/components/tickets/.help-center-list.md +40 -0
- package/src/components/tickets/.index.md +65 -0
- package/src/components/tickets/.ticket-center.md +51 -0
- package/src/components/tickets/.ticket-detail-drawer.md +48 -0
- package/src/components/tickets/.ticket-linked-delivery-card.md +36 -0
- package/src/components/tickets/.ticket-open-form.md +50 -0
- package/src/components/tickets/.ticket-row.md +30 -0
- package/src/components/tickets/.types.md +57 -0
- package/src/components/tickets/hooks/.use-ticket-actions.md +77 -0
- package/src/components/tickets/hooks/.use-ticket-engagements.md +42 -0
- package/src/components/tickets/hooks/.use-tickets-list.md +54 -0
- package/src/components/ui/.actions-menu.md +66 -41
- package/src/components/ui/.alert-dialog.md +29 -26
- package/src/components/ui/.allowed-domains-input.md +29 -21
- package/src/components/ui/.assignee-dropdown.md +45 -0
- package/src/components/ui/.autocomplete.md +47 -41
- package/src/components/ui/.benefit-card.md +51 -36
- package/src/components/ui/.brand-association-card.md +30 -27
- package/src/components/ui/.breadcrumb.md +17 -15
- package/src/components/ui/.checkbox-block.md +39 -35
- package/src/components/ui/.checkbox-with-description.md +23 -16
- package/src/components/ui/.checkbox.md +31 -23
- package/src/components/ui/.circular-progress.md +49 -19
- package/src/components/ui/.content-loader.md +32 -20
- package/src/components/ui/.cursor-pagination.md +41 -52
- package/src/components/ui/.dashboard-info-card.md +33 -26
- package/src/components/ui/.date-picker.md +27 -25
- package/src/components/ui/.device-card-compact.md +28 -29
- package/src/components/ui/.device-card.md +27 -27
- package/src/components/ui/.dialog.md +25 -16
- package/src/components/ui/.drawer.md +86 -0
- package/src/components/ui/.dropdown-button.md +45 -0
- package/src/components/ui/.entity-image.md +46 -0
- package/src/components/ui/.error-state.md +41 -28
- package/src/components/ui/.feature-card.md +35 -31
- package/src/components/ui/.feature-list.md +48 -0
- package/src/components/ui/.field-wrapper.md +47 -0
- package/src/components/ui/.file-upload.md +42 -0
- package/src/components/ui/.filter-checkbox-item.md +43 -0
- package/src/components/ui/.filter-list.md +57 -0
- package/src/components/ui/.filter-modal.md +59 -0
- package/src/components/ui/.floating-tooltip.md +43 -26
- package/src/components/ui/.hidden-tags-popup.md +49 -0
- package/src/components/ui/.hover-dropdown.md +54 -0
- package/src/components/ui/.image-gallery-modal.md +41 -34
- package/src/components/ui/.image-uploader.md +53 -0
- package/src/components/ui/.index.md +40 -34
- package/src/components/ui/.info-card.md +31 -31
- package/src/components/ui/.info-row.md +31 -27
- package/src/components/ui/.input-trigger.md +44 -0
- package/src/components/ui/.input.md +37 -31
- package/src/components/ui/.markdown-editor.md +57 -0
- package/src/components/ui/.modal-v2.md +51 -0
- package/src/components/ui/.modal.md +32 -31
- package/src/components/ui/.more-actions-menu.md +45 -38
- package/src/components/ui/.organization-card.md +31 -37
- package/src/components/ui/.page-actions.md +44 -54
- package/src/components/ui/.phone-input.md +54 -0
- package/src/components/ui/.progress-bar.md +35 -27
- package/src/components/ui/.radio-group.md +39 -27
- package/src/components/ui/.release-changelog-section.md +34 -34
- package/src/components/ui/.search-input.md +48 -0
- package/src/components/ui/.select.md +54 -34
- package/src/components/ui/.service-card.md +42 -40
- package/src/components/ui/.sheet.md +27 -18
- package/src/components/ui/.simple-markdown-renderer.md +29 -31
- package/src/components/ui/.sort-column-item.md +42 -0
- package/src/components/ui/.square-avatar.md +34 -24
- package/src/components/ui/.status-badge.md +26 -38
- package/src/components/ui/.switch.md +22 -35
- package/src/components/ui/.tab-navigation.md +56 -53
- package/src/components/ui/.tab-selector.md +40 -0
- package/src/components/ui/.tag-key-value-filter.md +56 -0
- package/src/components/ui/.tag-search-input.md +53 -0
- package/src/components/ui/.tag.md +49 -31
- package/src/components/ui/.tags-manager.md +60 -0
- package/src/components/ui/.textarea.md +44 -34
- package/src/components/ui/.ticket-attachments-list.md +45 -0
- package/src/components/ui/.ticket-detail-section.md +29 -0
- package/src/components/ui/.ticket-info-section.md +56 -0
- package/src/components/ui/.ticket-note-card.md +53 -0
- package/src/components/ui/.ticket-notes-section.md +54 -0
- package/src/components/ui/.ticket-status-tag.md +49 -0
- package/src/components/ui/.title-content-block.md +25 -26
- package/src/components/ui/.toaster.md +40 -28
- package/src/components/ui/.tooltip.md +22 -11
- package/src/components/ui/.truncate-text.md +39 -0
- package/src/components/ui/button/.button-styles.md +35 -0
- package/src/components/ui/button/.button.md +53 -0
- package/src/components/ui/button/.split-button.md +48 -0
- package/src/components/ui/data-table/.data-table-body.md +48 -0
- package/src/components/ui/data-table/.data-table-column-filter.md +45 -0
- package/src/components/ui/data-table/.data-table-cursor-footer.md +45 -0
- package/src/components/ui/data-table/.data-table-empty.md +43 -0
- package/src/components/ui/data-table/.data-table-header.md +55 -0
- package/src/components/ui/data-table/.data-table-infinite-footer.md +44 -0
- package/src/components/ui/data-table/.data-table-row-count.md +43 -0
- package/src/components/ui/data-table/.data-table-row.md +47 -0
- package/src/components/ui/data-table/.data-table-skeleton.md +42 -0
- package/src/components/ui/data-table/.data-table.md +47 -0
- package/src/components/ui/data-table/.index.md +55 -0
- package/src/components/ui/data-table/.types.md +54 -0
- package/src/components/ui/data-table/.use-data-table.md +45 -0
- package/src/components/ui/data-table/.utils.md +38 -0
- package/src/components/ui/file-manager/.file-manager-action-bar.md +39 -30
- package/src/components/ui/file-manager/.file-manager-breadcrumb.md +29 -27
- package/src/components/ui/file-manager/.file-manager-context-menu.md +38 -42
- package/src/components/ui/file-manager/.file-manager-empty.md +26 -39
- package/src/components/ui/file-manager/.file-manager-table-row.md +33 -41
- package/src/components/ui/file-manager/.file-manager.md +35 -31
- package/src/components/ui/query-report-table/.index.md +43 -0
- package/src/components/ui/query-report-table/.query-report-table-header.md +36 -0
- package/src/components/ui/query-report-table/.query-report-table-row.md +40 -0
- package/src/components/ui/query-report-table/.query-report-table-skeleton.md +44 -0
- package/src/components/ui/query-report-table/.query-report-table.md +47 -0
- package/src/components/ui/query-report-table/.types.md +41 -0
- package/src/components/ui/query-report-table/.utils.md +35 -0
- package/src/components/ui/table/.index.md +27 -48
- package/src/components/ui/table/.table-cell.md +18 -27
- package/src/components/ui/table/.table-column-filter-dropdown.md +40 -0
- package/src/components/ui/table/.table-description-cell.md +24 -14
- package/src/components/ui/table/.table-empty-state.md +21 -22
- package/src/components/ui/table/.table-header.md +25 -40
- package/src/components/ui/table/.table-row.md +22 -40
- package/src/components/ui/table/.table-skeleton.md +33 -26
- package/src/components/ui/table/.table-timestamp-cell.md +26 -16
- package/src/components/ui/table/.table.md +39 -59
- package/src/components/ui/table/.types.md +44 -36
- package/src/components/ui/table/.utils.md +18 -20
- package/src/contexts/.chat-runtime-context.md +54 -0
- package/src/contexts/.endpoints-runtime-context.md +58 -0
- package/src/contexts/.index.md +53 -0
- package/src/contexts/.use-outer-or-default.md +36 -0
- package/src/embed-shims/.index.md +45 -0
- package/src/embed-shims/.next-dynamic.md +43 -0
- package/src/embed-shims/.next-image.md +45 -0
- package/src/embed-shims/.next-link.md +59 -0
- package/src/embed-shims/.next-navigation.md +59 -0
- package/src/hooks/.index.md +34 -29
- package/src/hooks/.use-access-code-integration.md +49 -0
- package/src/hooks/.use-contact-submission.md +37 -26
- package/src/hooks/.use-copy-to-clipboard.md +42 -0
- package/src/hooks/.use-near-viewport.md +44 -0
- package/src/hooks/.use-og-placeholder.md +51 -0
- package/src/hooks/.use-toast.md +36 -35
- package/src/hooks/state/.use-api-params.md +29 -46
- package/src/hooks/state/.use-query-params.md +37 -33
- package/src/hooks/ui/.index.md +33 -32
- package/src/hooks/ui/.use-auto-limit-tags.md +54 -0
- package/src/hooks/ui/.use-horizontal-scrollbar.md +74 -0
- package/src/hooks/ui/.use-image-edge-color.md +42 -0
- package/src/hooks/ui/.use-media-query.md +33 -25
- package/src/hooks/ui/.use-search.md +51 -0
- package/src/nats/.nats.md +49 -28
- package/src/schemas/.contact-schema.md +45 -0
- package/src/stories/.AnnouncementBar.stories.md +45 -0
- package/src/stories/.AppLayout.stories.md +20 -21
- package/src/stories/.Autocomplete.stories.md +48 -34
- package/src/stories/.Board.stories.md +35 -0
- package/src/stories/.Button.stories.md +36 -33
- package/src/stories/.ChatTicketList.stories.md +33 -0
- package/src/stories/.CheckboxBlock.stories.md +40 -28
- package/src/stories/.ContentLoader.stories.md +47 -0
- package/src/stories/.DashboardInfoCard.stories.md +57 -0
- package/src/stories/.DataTable.stories.md +41 -0
- package/src/stories/.DatePicker.stories.md +66 -52
- package/src/stories/.DeviceCard.stories.md +41 -40
- package/src/stories/.DeviceCardCompact.stories.md +41 -0
- package/src/stories/.DotsLoaderIcon.stories.md +36 -0
- package/src/stories/.Drawer.stories.md +58 -0
- package/src/stories/.EmbeddableChat.stories.md +41 -0
- package/src/stories/.FileManager.stories.md +41 -0
- package/src/stories/.FileManagerActionBar.stories.md +38 -0
- package/src/stories/.FileUpload.stories.md +53 -0
- package/src/stories/.FilterList.stories.md +54 -0
- package/src/stories/.FilterModal.stories.md +72 -0
- package/src/stories/.FiltersDropdown.stories.md +57 -0
- package/src/stories/.Header.stories.md +48 -0
- package/src/stories/.ImageUploader.stories.md +49 -0
- package/src/stories/.InfoCard.stories.md +54 -0
- package/src/stories/.Input.stories.md +48 -30
- package/src/stories/.ListPageLayout.stories.md +56 -43
- package/src/stories/.MingoOnboardingCard.stories.md +42 -0
- package/src/stories/.MingoOnboardingCardSkeleton.stories.md +35 -0
- package/src/stories/.Modal.stories.md +40 -31
- package/src/stories/.NotificationDrawer.stories.md +55 -0
- package/src/stories/.OnboardingStepCard.stories.md +41 -0
- package/src/stories/.OrganizationCard.stories.md +61 -0
- package/src/stories/.PageActions.stories.md +52 -49
- package/src/stories/.PageContainer.stories.md +41 -35
- package/src/stories/.PageLayout.stories.md +60 -0
- package/src/stories/.ParallaxImageShowcase.stories.md +49 -0
- package/src/stories/.PhoneInput.stories.md +53 -0
- package/src/stories/.QueryReportTable.stories.md +44 -0
- package/src/stories/.RadioGroup.stories.md +46 -0
- package/src/stories/.RadioGroupBlock.stories.md +45 -0
- package/src/stories/.Select.stories.md +29 -15
- package/src/stories/.SlashCommandSuggestions.stories.md +41 -0
- package/src/stories/.SplitButton.stories.md +62 -0
- package/src/stories/.TabNavigation.stories.md +47 -38
- package/src/stories/.TabSelector.stories.md +65 -0
- package/src/stories/.Table.stories.md +38 -46
- package/src/stories/.TableColumnFilterDropdown.stories.md +46 -0
- package/src/stories/.Tag.stories.md +43 -32
- package/src/stories/.TagKeyValueFilter.stories.md +44 -0
- package/src/stories/.TagSearchInput.stories.md +61 -0
- package/src/stories/.Textarea.stories.md +49 -26
- package/src/stories/.Theme.stories.md +41 -0
- package/src/stories/.TicketAttachmentsList.stories.md +39 -0
- package/src/stories/.TicketDescriptionViewer.stories.md +39 -0
- package/src/stories/.TicketInfoSection.stories.md +40 -0
- package/src/stories/.TicketKnowledgeBaseList.stories.md +36 -0
- package/src/stories/.TicketNotesSection.stories.md +50 -0
- package/src/stories/.Toaster.stories.md +40 -0
- package/src/stories/.ToolExecutionDisplay.stories.md +41 -0
- package/src/stories/.Tooltip.stories.md +41 -0
- package/src/stories/.UserSummary.stories.md +41 -0
- package/src/stories/.WaitlistForm.stories.md +42 -0
- package/src/stories/BlogCard.stories.tsx +61 -0
- package/src/stories/CampaignCardAdmin.stories.tsx +52 -0
- package/src/stories/CaseStudyCard.stories.tsx +42 -0
- package/src/stories/ChatContainer.stories.tsx +186 -0
- package/src/stories/ChatInlineVideoPill.stories.tsx +63 -0
- package/src/stories/CustomerInterviewCard.stories.tsx +42 -0
- package/src/stories/DataRoomDocCard.stories.tsx +52 -0
- package/src/stories/GenericEntityCard.stories.tsx +66 -0
- package/src/stories/GitHubActivityCard.stories.tsx +61 -0
- package/src/stories/HubspotTicketCard.stories.tsx +98 -0
- package/src/stories/InvestorUpdateCard.stories.tsx +42 -0
- package/src/stories/OnboardingGuideCard.stories.tsx +52 -0
- package/src/stories/ProductReleaseCard.stories.tsx +61 -0
- package/src/stories/ProgramCard.stories.tsx +79 -0
- package/src/stories/RoadmapCard.stories.tsx +75 -0
- package/src/stories/SlackMessageCard.stories.tsx +41 -0
- package/src/stories/__fixtures__/chat-cards.ts +604 -0
- package/src/types/.blog.md +53 -29
- package/src/types/.case-study.md +44 -27
- package/src/types/.customer-interview.md +66 -44
- package/src/types/.delivery.md +40 -0
- package/src/types/.employee.md +24 -30
- package/src/types/.index.md +33 -47
- package/src/types/.marketing.md +49 -44
- package/src/types/.navigation.md +33 -25
- package/src/types/.os.types.md +32 -27
- package/src/types/.platform.md +31 -28
- package/src/types/.product-release.md +65 -38
- package/src/types/.supabase.md +37 -29
- package/src/types/.team.md +41 -33
- package/src/types/.video-processing.md +54 -0
- package/src/types/.waitlist.md +40 -36
- package/src/utils/.access-code-client.md +37 -36
- package/src/utils/.cn.md +31 -23
- package/src/utils/.color-analysis.md +35 -0
- package/src/utils/.country-phone-utils.md +39 -0
- package/src/utils/.date-formatters.md +19 -18
- package/src/utils/.embed-authed-fetch.md +39 -0
- package/src/utils/.embed-proxy-auth-storage.md +38 -0
- package/src/utils/.fetch-priority.md +41 -0
- package/src/utils/.format.md +74 -25
- package/src/utils/.generic-domain-utils.md +42 -0
- package/src/utils/.image-proxy.md +59 -23
- package/src/utils/.index.md +42 -49
- package/src/utils/.local-storage-adapter.md +50 -0
- package/src/utils/.ods-color-utils.md +55 -38
- package/src/utils/.platform-config.md +45 -25
- package/src/utils/.scroll-into-view.md +40 -0
- package/src/utils/.source-icons.md +53 -0
- package/src/utils/.sse-decision-frame.md +46 -0
- package/src/utils/dev-sections/.index.md +34 -0
- package/src/utils/dev-sections/.openframe-dev-sections.md +49 -0
- package/dist/chunk-ZDF6F7ED.cjs.map +0 -1
- package/dist/chunk-ZTJVRSN5.js.map +0 -1
- package/src/components/.card.md +0 -42
- package/src/components/.contact-button.md +0 -30
- package/src/components/.drawer.md +0 -46
- package/src/components/.fixed-layout-container.md +0 -47
- package/src/components/.footer-waitlist-card.md +0 -29
- package/src/components/.join-waitlist-cta.md +0 -29
- package/src/components/.sheet.md +0 -47
- package/src/components/.sliding-panel.md +0 -48
- package/src/components/.tooltip.md +0 -48
- package/src/components/.use-mobile.md +0 -42
- package/src/components/.vendor-compact-card.md +0 -66
- package/src/components/.x-button.md +0 -42
- package/src/components/features/.github-repo-button.md +0 -40
- package/src/components/features/.organization-icon.md +0 -47
- package/src/components/features/.organization-selector.md +0 -45
- package/src/components/icons/.fleet-icon.md +0 -39
- package/src/components/icons/.meshcentral-icon.md +0 -35
- package/src/components/icons/.refresh-icon.md +0 -34
- package/src/components/icons/.tactical-icon.md +0 -35
- package/src/components/ui/.button.md +0 -69
- package/src/components/ui/.log-table-row.md +0 -47
- package/src/components/ui/.selectable-device-card.md +0 -46
- package/src/hooks/.api-hooks-stub.md +0 -45
- package/src/hooks/api/.use-product-releases.md +0 -53
- package/src/stories/.OrganizationSelector.stories.md +0 -42
- package/src/stories/.SelectableDeviceCard.stories.md +0 -30
- package/src/utils/.lite-youtube-embed-stub.md +0 -37
- package/src/utils/.lite-youtube-embed.md +0 -33
- /package/dist/{chunk-IK2X5YJU.js.map → chunk-7PCP7YQR.js.map} +0 -0
- /package/dist/{chunk-3JWIJJ44.js.map → chunk-R6MLPU4A.js.map} +0 -0
|
@@ -1,45 +1,71 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
Defines
|
|
1
|
+
<!-- source-hash: 8a6f81705a1810d60982ff3e397e9ebc -->
|
|
2
|
+
Defines TypeScript types and constants for all network and communication layers in the Flamingo platform, including NATS messaging, WebSocket connections, streaming chunk data, and API response shapes.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
- `NatsMessageType` - Message classification ('message' | 'admin-message')
|
|
8
|
-
- `NatsConnectionStatus` - Connection state management
|
|
9
|
-
- `ChunkData` - Streaming data chunks with tool integration support
|
|
10
|
-
- `WebSocketMessage` & `WebSocketConfig` - WebSocket communication setup
|
|
6
|
+
### Types & Enums
|
|
11
7
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
8
|
+
| Export | Description |
|
|
9
|
+
|--------|-------------|
|
|
10
|
+
| `NatsMessageType` | Union type for NATS message categories: `'message'` or `'admin-message'` |
|
|
11
|
+
| `NatsConnectionStatus` | Connection lifecycle states: `connecting`, `connected`, `disconnected`, `reconnecting`, `closed`, `error` |
|
|
12
|
+
| `NatsConnectionSource` | Origin of a NATS connection: `client`, `agent`, or `dashboard` |
|
|
15
13
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
14
|
+
### Constants
|
|
15
|
+
|
|
16
|
+
| Export | Description |
|
|
17
|
+
|--------|-------------|
|
|
18
|
+
| `NETWORK_CONFIG` | Frozen config object with timeouts, retry backoff, ping intervals, and message limits |
|
|
19
|
+
| `NetworkConfig` | Inferred type from `NETWORK_CONFIG` |
|
|
20
|
+
|
|
21
|
+
### Interfaces
|
|
22
|
+
|
|
23
|
+
| Export | Description |
|
|
24
|
+
|--------|-------------|
|
|
25
|
+
| `ChunkData` | Streaming dialog chunk payload — carries sequence IDs, tool execution data, approval requests, model metadata, and stream state |
|
|
26
|
+
| `BufferedChunk` | Wraps a `ChunkData` with its `NatsMessageType` for buffered delivery |
|
|
27
|
+
| `WebSocketMessage` | Generic WebSocket envelope with `type`, `payload`, and optional metadata |
|
|
28
|
+
| `WebSocketConfig` | Full WebSocket client configuration including reconnect strategy and event handlers |
|
|
29
|
+
| `FetchChunksFunction` | Async function signature for polling dialog chunks by `dialogId` and `ChatType` |
|
|
30
|
+
| `NetworkResponse<T>` | Standard API response wrapper with `success`, `data`, `error`, and `message` |
|
|
31
|
+
| `PaginatedResponse<T>` | Extends `NetworkResponse<T>` with pagination metadata |
|
|
32
|
+
| `NetworkError` | Structured error shape with `code`, `message`, optional `details`, and `timestamp` |
|
|
20
33
|
|
|
21
34
|
## Usage Example
|
|
22
35
|
|
|
23
36
|
```typescript
|
|
24
|
-
import {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
37
|
+
import type {
|
|
38
|
+
ChunkData,
|
|
39
|
+
FetchChunksFunction,
|
|
40
|
+
NetworkResponse,
|
|
41
|
+
PaginatedResponse,
|
|
42
|
+
NatsConnectionStatus,
|
|
43
|
+
} from './network.types'
|
|
44
|
+
import { NETWORK_CONFIG } from './network.types'
|
|
45
|
+
|
|
46
|
+
// Use constants for consistent timeout configuration
|
|
47
|
+
const client = createNatsClient({
|
|
48
|
+
timeout: NETWORK_CONFIG.CONNECT_TIMEOUT_MS,
|
|
49
|
+
reconnectTimeWait: NETWORK_CONFIG.RECONNECT_TIME_WAIT_MS,
|
|
50
|
+
maxPingOut: NETWORK_CONFIG.MAX_PING_OUT,
|
|
51
|
+
})
|
|
52
|
+
|
|
53
|
+
// Type-safe connection state handler
|
|
54
|
+
function onStatusChange(status: NatsConnectionStatus) {
|
|
55
|
+
if (status === 'reconnecting') {
|
|
56
|
+
console.warn('NATS reconnecting...')
|
|
35
57
|
}
|
|
36
58
|
}
|
|
37
59
|
|
|
38
|
-
//
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
}
|
|
43
|
-
return
|
|
60
|
+
// Typed chunk fetch implementation
|
|
61
|
+
const fetchChunks: FetchChunksFunction = async (dialogId, chatType, fromSequenceId) => {
|
|
62
|
+
const res = await api.get<ChunkData[]>(`/dialogs/${dialogId}/chunks`, {
|
|
63
|
+
params: { chatType, from: fromSequenceId },
|
|
64
|
+
})
|
|
65
|
+
return res.data
|
|
44
66
|
}
|
|
67
|
+
|
|
68
|
+
// Paginated API response
|
|
69
|
+
const response: PaginatedResponse<ChunkData[]> = await fetchPage(dialogId, 1)
|
|
70
|
+
console.log(`Page ${response.page} of ${response.totalPages}`)
|
|
45
71
|
```
|
|
@@ -1,50 +1,68 @@
|
|
|
1
|
-
<!-- source-hash:
|
|
2
|
-
TypeScript
|
|
1
|
+
<!-- source-hash: 118d3a4cacf89174498282067448e4bf -->
|
|
2
|
+
Defines TypeScript types for message processing pipeline operations, including chunk parsing, accumulator state management, stream control, and buffer management for AI chat message flows.
|
|
3
3
|
|
|
4
4
|
## Key Components
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
6
|
+
| Export | Type | Description |
|
|
7
|
+
|--------|------|-------------|
|
|
8
|
+
| `ParsedChunkAction` | Union type | Discriminated union of all possible chunk parse results (text, tool execution, approvals, metadata, etc.) |
|
|
9
|
+
| `AccumulatorState` | Interface | Stateful container tracking message segments, pending approvals, and executing tools during stream processing |
|
|
10
|
+
| `PendingApproval` | Interface | Represents an approval request awaiting user action (command, explanation, type) |
|
|
11
|
+
| `MessageProcessingOptions` | Interface | Configuration for assistant rendering, approval callbacks, chat filtering, and batch approval UI |
|
|
12
|
+
| `ChunkProcessor` | Interface | Contract for processing raw `ChunkData` into `ParsedChunkAction` results |
|
|
13
|
+
| `ChunkProcessorOptions` | Interface | Lifecycle callbacks for chunk processing events |
|
|
14
|
+
| `MessageTransformer` | Interface | Contract for transforming raw inputs into `ProcessedMessage` objects |
|
|
15
|
+
| `StreamProcessor` | Interface | Full lifecycle control (start/stop/pause/resume/reset) for stream consumers |
|
|
16
|
+
| `StreamState` | Interface | Snapshot of stream health: active status, buffered chunks, error log, and last activity timestamp |
|
|
17
|
+
| `BufferManager` | Interface | CRUD-style contract for managing `ChunkData` buffers |
|
|
18
|
+
| `BufferOptions` | Interface | Configuration for buffer capacity, flush intervals, and overflow handling callbacks |
|
|
19
19
|
|
|
20
20
|
## Usage Example
|
|
21
21
|
|
|
22
22
|
```typescript
|
|
23
|
-
import type {
|
|
23
|
+
import type {
|
|
24
|
+
ParsedChunkAction,
|
|
25
|
+
AccumulatorState,
|
|
26
|
+
MessageProcessingOptions,
|
|
27
|
+
StreamState
|
|
28
|
+
} from './processing.types'
|
|
24
29
|
|
|
25
|
-
//
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
// Handling a parsed chunk action via discriminated union
|
|
31
|
+
function handleChunkAction(action: ParsedChunkAction): void {
|
|
32
|
+
switch (action.action) {
|
|
33
|
+
case 'text':
|
|
34
|
+
console.log('Received text:', action.text)
|
|
35
|
+
break
|
|
36
|
+
case 'tool_execution':
|
|
37
|
+
console.log('Tool executing:', action.segment)
|
|
38
|
+
break
|
|
39
|
+
case 'approval_batch':
|
|
40
|
+
console.log('Batch approval request:', action.requestId, action.toolCalls)
|
|
41
|
+
break
|
|
42
|
+
case 'error':
|
|
43
|
+
console.error('Processing error:', action.error, action.details)
|
|
44
|
+
break
|
|
45
|
+
}
|
|
33
46
|
}
|
|
34
47
|
|
|
35
|
-
//
|
|
48
|
+
// Initializing accumulator state
|
|
36
49
|
const state: AccumulatorState = {
|
|
37
50
|
segments: [],
|
|
38
|
-
currentTextBuffer: '',
|
|
39
51
|
pendingApprovals: new Map(),
|
|
40
52
|
executingTools: new Map()
|
|
41
53
|
}
|
|
42
54
|
|
|
43
|
-
//
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
|
|
55
|
+
// Configuring message processing
|
|
56
|
+
const options: MessageProcessingOptions = {
|
|
57
|
+
assistantName: 'Mingo',
|
|
58
|
+
assistantType: 'mingo',
|
|
59
|
+
batchApprovalsEnabled: true,
|
|
60
|
+
displayApprovalTypes: ['shell', 'file'],
|
|
61
|
+
onApprove: async (requestId) => {
|
|
62
|
+
await submitApproval(requestId)
|
|
47
63
|
},
|
|
48
|
-
|
|
64
|
+
onReject: (requestId) => {
|
|
65
|
+
logRejection(requestId)
|
|
66
|
+
}
|
|
49
67
|
}
|
|
50
68
|
```
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
<!-- source-hash: 5419513463f6ad2b09f3c013740a3568 -->
|
|
2
|
+
Shared TypeScript contract defining the unified state shape and supporting types that all chat transport hooks (SSE and NATS) must satisfy, enabling transport-agnostic consumption by UI components.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
| Export | Kind | Description |
|
|
7
|
+
|--------|------|-------------|
|
|
8
|
+
| `StreamingPhase` | Type | `'idle' \| 'thinking' \| 'streaming'` — granular in-flight status for the streaming indicator UI |
|
|
9
|
+
| `UnifiedUsageBreakdown` | Interface | SSE-only per-turn LLM telemetry (Haiku pipeline costs + routed answer metadata); always `null` in Mingo/NATS mode |
|
|
10
|
+
| `UnifiedChatMessage` | Interface | Transport-agnostic message shape; SSE-only fields (`sources`, `chatRefs`) are optional, Mingo-safe |
|
|
11
|
+
| `UnifiedSendMessageOptions` | Interface | Options for `sendMessage` — `hidden` (suppress UI render) and `attachments` (SSE-only image uploads) |
|
|
12
|
+
| `UnifiedChatState` | Interface | The primary contract: full return shape every transport hook must implement, covering messages, actions, loading state, and SSE-only LLM metadata |
|
|
13
|
+
|
|
14
|
+
## Usage Example
|
|
15
|
+
|
|
16
|
+
```typescript
|
|
17
|
+
// Consumer component — works identically for SSE (Guide) or NATS (Mingo)
|
|
18
|
+
import type { UnifiedChatState, UnifiedSendMessageOptions } from './unified-chat-state.types'
|
|
19
|
+
|
|
20
|
+
function ChatShell({ chat }: { chat: UnifiedChatState }) {
|
|
21
|
+
const { messages, isLoading, streamingPhase, sendMessage, stopMessage } = chat
|
|
22
|
+
|
|
23
|
+
async function handleSubmit(text: string, attachments?: ChatAttachment[]) {
|
|
24
|
+
const options: UnifiedSendMessageOptions = { attachments }
|
|
25
|
+
await sendMessage(text, options)
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
return (
|
|
29
|
+
<>
|
|
30
|
+
{/* SSE-only metadata — safely null in Mingo mode */}
|
|
31
|
+
{chat.currentModelLabel && <ModelDisplay label={chat.currentModelLabel} />}
|
|
32
|
+
{streamingPhase === 'thinking' && <span>Thinking...</span>}
|
|
33
|
+
{streamingPhase === 'streaming' && <span>Streaming...</span>}
|
|
34
|
+
<MessageList messages={messages.filter(m => !m.hidden)} />
|
|
35
|
+
<ChatInput onSubmit={handleSubmit} disabled={isLoading} onStop={stopMessage} />
|
|
36
|
+
</>
|
|
37
|
+
)
|
|
38
|
+
}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
> **Transport isolation:** `currentProvider`, `currentModelLabel`, `currentUsageBreakdown`, and related token fields are `null` in Mingo/NATS mode. Always guard with a null check before rendering LLM metadata.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
<!-- source-hash: 1be58b263102c7ac63390d5cdc4b8cba -->
|
|
2
|
+
Re-exports blog entity types from the canonical `src/types/blog.ts` lib, providing a single import path for the chat card entity barrel.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
| Export | Description |
|
|
7
|
+
|--------|-------------|
|
|
8
|
+
| `BlogPost` | Full blog post row shape |
|
|
9
|
+
| `BlogPostSummary` | Catalog projection for listing/cards |
|
|
10
|
+
| `BlogPostPlatform` | Platform identifier type |
|
|
11
|
+
| `BlogPostCategory` | Post-level category association |
|
|
12
|
+
| `BlogPostTag` | Post-level tag association |
|
|
13
|
+
| `BlogCategory` | Blog category entity |
|
|
14
|
+
| `BlogTag` | Blog tag entity |
|
|
15
|
+
| `BlogAuthor` | Author entity shape |
|
|
16
|
+
| `BlogMediaAsset` | Media/image asset type |
|
|
17
|
+
| `BlogStatus` | Post status enum/union |
|
|
18
|
+
| `BlogPagination` | Pagination metadata shape |
|
|
19
|
+
| `BlogSearchParams` | Search/filter query params |
|
|
20
|
+
|
|
21
|
+
## Usage Example
|
|
22
|
+
|
|
23
|
+
```typescript
|
|
24
|
+
// Import blog types from the entities barrel (single path)
|
|
25
|
+
import type {
|
|
26
|
+
BlogPost,
|
|
27
|
+
BlogPostSummary,
|
|
28
|
+
BlogAuthor,
|
|
29
|
+
BlogPagination,
|
|
30
|
+
} from '@/entities/blog';
|
|
31
|
+
|
|
32
|
+
// Full post row (e.g. detail page)
|
|
33
|
+
function renderPost(post: BlogPost) {
|
|
34
|
+
return `${post.title} by ${post.author.name}`;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// Summary projection (e.g. catalog card)
|
|
38
|
+
function renderCard(summary: BlogPostSummary) {
|
|
39
|
+
return `${summary.title} — ${summary.category}`;
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
> **Note:** Do not define competing blog shapes in the hub layer. Always consume from this barrel to ensure a single source of truth via `@/types/blog`.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<!-- source-hash: ef274b40abb94a68897a27d2ef3214c4 -->
|
|
2
|
+
Re-exports `CaseStudy` entity types from the canonical lib definition (`src/types/case-study.ts`) into the chat card consumer barrel — no local type definitions are introduced.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
| Export | Description |
|
|
7
|
+
|--------|-------------|
|
|
8
|
+
| `CaseStudy` | Core case study entity shape |
|
|
9
|
+
| `CaseStudyFilters` | Filter parameters for querying case studies |
|
|
10
|
+
| `CaseStudyListResponse` | Paginated/list response wrapper for case study results |
|
|
11
|
+
|
|
12
|
+
## Usage Example
|
|
13
|
+
|
|
14
|
+
```typescript
|
|
15
|
+
import type { CaseStudy, CaseStudyFilters, CaseStudyListResponse } from '@/entities/case-study';
|
|
16
|
+
|
|
17
|
+
const filters: CaseStudyFilters = { tag: 'networking' };
|
|
18
|
+
|
|
19
|
+
const response: CaseStudyListResponse = await fetchCaseStudies(filters);
|
|
20
|
+
|
|
21
|
+
response.items.forEach((study: CaseStudy) => {
|
|
22
|
+
console.log(study.title);
|
|
23
|
+
});
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
> All types originate from `@/types/case-study` — this barrel acts as a stable re-export boundary so chat card consumers are decoupled from the underlying lib path.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
<!-- source-hash: c5cc84322439cd96dae36a797cb9a2cb -->
|
|
2
|
+
Defines the `ContentRef` interface — the unified shape for link/embed references stored in JSONB columns across entities such as investor updates and performance baselines that surface "related content" rails.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
### `ContentRef` Interface
|
|
7
|
+
|
|
8
|
+
| Field | Type | Required | Description |
|
|
9
|
+
|-------|------|----------|-------------|
|
|
10
|
+
| `type` | `string` | ✅ | Content type identifier (e.g., `"video"`, `"article"`) |
|
|
11
|
+
| `id` | `string` | ✅ | Unique content identifier |
|
|
12
|
+
| `slug` | `string` | ✅ | URL-friendly slug |
|
|
13
|
+
| `url` | `string` | ✅ | Canonical URL of the referenced content |
|
|
14
|
+
| `targetPlatform` | `string \| null` | ❌ | Platform hint (e.g., `"youtube"`, `"notion"`) |
|
|
15
|
+
| `title` | `string` | ✅ | Display title |
|
|
16
|
+
| `summary` | `string` | ❌ | Short description or excerpt |
|
|
17
|
+
| `image_url` | `string` | ❌ | Thumbnail or preview image URL |
|
|
18
|
+
| `image_bg_color` | `string` | ❌ | Background color for image placeholder |
|
|
19
|
+
| `visibility` | `'public' \| 'internal'` | ✅ | Access scope |
|
|
20
|
+
| `display_order` | `number` | ✅ | Sort position within its parent list |
|
|
21
|
+
|
|
22
|
+
## Usage Example
|
|
23
|
+
|
|
24
|
+
```typescript
|
|
25
|
+
import type { ContentRef } from './content-ref';
|
|
26
|
+
|
|
27
|
+
const ref: ContentRef = {
|
|
28
|
+
type: 'video',
|
|
29
|
+
id: 'abc123',
|
|
30
|
+
slug: 'q1-investor-update',
|
|
31
|
+
url: 'https://www.youtube.com/watch?v=abc123',
|
|
32
|
+
targetPlatform: 'youtube',
|
|
33
|
+
title: 'Q1 2025 Investor Update',
|
|
34
|
+
summary: 'Quarterly performance highlights and roadmap preview.',
|
|
35
|
+
image_url: 'https://img.youtube.com/vi/abc123/hqdefault.jpg',
|
|
36
|
+
visibility: 'internal',
|
|
37
|
+
display_order: 1,
|
|
38
|
+
};
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
> **Note:** This type is shared across client and server. Server-side data utilities (e.g., JSONB serialization, fetch helpers) remain hub-side and should import this interface rather than redeclare it locally.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
<!-- source-hash: d2bea4092c5fb585f7b34695adfbf8c3 -->
|
|
2
|
+
Re-exports Customer Interview entity types from the shared lib (`@/types/customer-interview`) into the chat card consumer barrel.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
| Export | Description |
|
|
7
|
+
|--------|-------------|
|
|
8
|
+
| `CustomerInterview` | Canonical shape for a customer interview record |
|
|
9
|
+
| `CustomerInterviewConfig` | Configuration options for a customer interview |
|
|
10
|
+
| `CustomerInterviewFilters` | Filter parameters for querying interviews |
|
|
11
|
+
| `CustomerInterviewListResponse` | Paginated/list response wrapper for interviews |
|
|
12
|
+
|
|
13
|
+
## Usage Example
|
|
14
|
+
|
|
15
|
+
```typescript
|
|
16
|
+
import type {
|
|
17
|
+
CustomerInterview,
|
|
18
|
+
CustomerInterviewConfig,
|
|
19
|
+
CustomerInterviewFilters,
|
|
20
|
+
CustomerInterviewListResponse,
|
|
21
|
+
} from '@/entities/chat/customer-interview';
|
|
22
|
+
|
|
23
|
+
const filters: CustomerInterviewFilters = { status: 'completed' };
|
|
24
|
+
|
|
25
|
+
const response: CustomerInterviewListResponse = await fetchInterviews(filters);
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
> **Note:** This is a pure re-export barrel — no logic or competing type definitions live here. The canonical source of truth is `src/types/customer-interview.ts`.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
<!-- source-hash: 24f09ae47345f49fc8da8100c8c8644b -->
|
|
2
|
+
Defines the `DataRoomDocCardItem` wire shape used to render data-room document cards within the chat interface.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
### `DataRoomDocCardItem` (interface)
|
|
7
|
+
|
|
8
|
+
Covers both `data_room_documents` database rows and `openframe-docs` markdown rows. The card differentiates source type via `sourceRepo` and composes click destinations using the shared `resolveSourceRowCTA` helper.
|
|
9
|
+
|
|
10
|
+
| Field | Type | Description |
|
|
11
|
+
|-------|------|-------------|
|
|
12
|
+
| `id` | `string` | Doc UUID (`external_id` / `id` from `data_room_documents`) |
|
|
13
|
+
| `title` | `string` | Display name |
|
|
14
|
+
| `path` | `string \| null` | Path within the data room (e.g. `legal/fundraising/seed/...`) |
|
|
15
|
+
| `preview` | `string \| null` | Content snippet up to ~200 chars |
|
|
16
|
+
| `url` | `string \| null` | Resolved URL (typically `/data-room/<path>`) |
|
|
17
|
+
| `sourceRepo` | `string \| null` | `RagTableConfig.id` (e.g. `'openframe-docs'`, `'data-room-docs'`) — drives badge label via `SOURCE_LABELS_BY_TABLE` |
|
|
18
|
+
| `baseRoute` | `string` | Chat shell base route (e.g. `/data-room`, `/knowledge-base`) — threaded down to `resolveSourceRowCTA` |
|
|
19
|
+
| `chipBasePlatform` | `string` | Cross-platform target (e.g. `'flamingo'`) — composes an absolute cross-origin URL for new-tab navigation |
|
|
20
|
+
|
|
21
|
+
## Usage Example
|
|
22
|
+
|
|
23
|
+
```typescript
|
|
24
|
+
const doc: DataRoomDocCardItem = {
|
|
25
|
+
id: "a1b2c3d4-...",
|
|
26
|
+
title: "Vertex VII SAFE Agreement",
|
|
27
|
+
path: "legal/fundraising/seed/executed/vertex-vii-3.5m-safe",
|
|
28
|
+
preview: "This Simple Agreement for Future Equity...",
|
|
29
|
+
url: "/data-room/legal/fundraising/seed/executed/vertex-vii-3.5m-safe",
|
|
30
|
+
sourceRepo: "data-room-docs",
|
|
31
|
+
baseRoute: "/data-room",
|
|
32
|
+
chipBasePlatform: "flamingo",
|
|
33
|
+
};
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
> **Note:** When `chipBasePlatform` is set, `resolveSourceRowCTA` composes an absolute URL and the card renders a plain `<a>` tag (new tab). Without it, middleware may redirect `/knowledge-base/<path>` to `/` if the route is not in `allowedRoutes`.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
<!-- source-hash: 191ada0d5f9c1c69293935f38aeafd78 -->
|
|
2
|
+
Defines TypeScript entity types for GitHub activity data used in chat card rendering across the Flamingo/OpenFrame platform.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
- **`GitHubActivityKind`** — Union type discriminating between `'commit'`, `'pull_request'`, and `'pr_review'` activity variants
|
|
7
|
+
- **`PrReviewState`** — Union type for PR review states (`APPROVED`, `CHANGES_REQUESTED`, `COMMENTED`, `DISMISSED`, `PENDING`); drives color/badge rendering in `GitHubActivityCard`
|
|
8
|
+
- **`GitHubActivityItem`** — Core interface representing a single GitHub activity row passed to `GitHubActivityCard`
|
|
9
|
+
|
|
10
|
+
| Field | Type | Description |
|
|
11
|
+
|-------|------|-------------|
|
|
12
|
+
| `id` | `string` | Commit SHA, PR number, or review ID |
|
|
13
|
+
| `title` | `string` | Commit message, PR title, or review state label |
|
|
14
|
+
| `repo` | `string?` | `"owner/repo"` format, derived from URL if omitted |
|
|
15
|
+
| `dateUpdated` | `string \| number \| null` | ISO timestamp or ms epoch |
|
|
16
|
+
| `url` | `string \| null` | GitHub URL used as link target |
|
|
17
|
+
| `kind` | `GitHubActivityKind?` | Defaults to `'commit'` when not supplied |
|
|
18
|
+
|
|
19
|
+
## Usage Example
|
|
20
|
+
|
|
21
|
+
```typescript
|
|
22
|
+
import type { GitHubActivityItem, PrReviewState } from '@/lib/types/github-activity';
|
|
23
|
+
|
|
24
|
+
const commitActivity: GitHubActivityItem = {
|
|
25
|
+
id: 'a1b2c3d',
|
|
26
|
+
title: 'fix: resolve ticket sync edge case',
|
|
27
|
+
repo: 'flamingo-run/openframe',
|
|
28
|
+
dateUpdated: '2024-11-01T10:30:00Z',
|
|
29
|
+
url: 'https://github.com/flamingo-run/openframe/commit/a1b2c3d',
|
|
30
|
+
kind: 'commit',
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
const reviewActivity: GitHubActivityItem = {
|
|
34
|
+
id: 'review-42',
|
|
35
|
+
title: 'APPROVED',
|
|
36
|
+
repo: 'flamingo-run/openframe',
|
|
37
|
+
dateUpdated: Date.now(),
|
|
38
|
+
url: 'https://github.com/flamingo-run/openframe/pull/42#pullrequestreview',
|
|
39
|
+
kind: 'pr_review',
|
|
40
|
+
};
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
This type is intentionally decoupled from `GitHubActivityCard` so clients can construct, pass, or extend activity data without importing UI components.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
<!-- source-hash: 487eacc5608879f64c680c5b15f48203 -->
|
|
2
|
+
Defines the wire-shape contract for HubSpot ticket data surfaced in chat card components, supporting three display variants (FULL, ANON, SELF) with field-level redaction handled server-side before delivery to the client.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
### `HubspotTicketItem` Interface
|
|
7
|
+
|
|
8
|
+
The single export — a typed shape consumed by `hubspot-ticket-card.tsx` across all three rendering variants:
|
|
9
|
+
|
|
10
|
+
| Field | Type | Notes |
|
|
11
|
+
|---|---|---|
|
|
12
|
+
| `id` | `string` | Maps to `external_id` on `hubspot_tickets` table |
|
|
13
|
+
| `title` | `string` | Ticket subject/title |
|
|
14
|
+
| `preview` | `string?` | Sanitized body snippet via mapper's `buildPreview` |
|
|
15
|
+
| `status` | `string \| null` | Canonical: `NEW \| IN_PROGRESS \| WAITING \| CLOSED` — drives badge color |
|
|
16
|
+
| `statusLabel` | `string \| null` | Human-readable pipeline stage label; falls back to `status` |
|
|
17
|
+
| `priority` | `string \| null` | `LOW \| MEDIUM \| HIGH \| URGENT` |
|
|
18
|
+
| `customerCompany` | `string \| null` | **FULL variant only** — redacted to `null` for ANON |
|
|
19
|
+
| `customerEmail` | `string \| null` | Submitter address; visible for proxy-auth surfaces |
|
|
20
|
+
| `dateUpdated` | `string \| number \| null` | ISO timestamp or epoch |
|
|
21
|
+
| `url` | `string \| null` | **FULL variant only** — HubSpot UI deep link |
|
|
22
|
+
|
|
23
|
+
## Variant Redaction Model
|
|
24
|
+
|
|
25
|
+
```text
|
|
26
|
+
Variant │ customerCompany │ url
|
|
27
|
+
────────┼─────────────────┼──────
|
|
28
|
+
FULL │ ✅ visible │ ✅ visible
|
|
29
|
+
ANON │ ❌ null │ ❌ null
|
|
30
|
+
SELF │ ✅ visible │ ❌ null
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Redaction happens in the **indexer**, not the client — the shape is identical across variants.
|
|
34
|
+
|
|
35
|
+
## Usage Example
|
|
36
|
+
|
|
37
|
+
```typescript
|
|
38
|
+
import type { HubspotTicketItem } from './hubspot-ticket';
|
|
39
|
+
|
|
40
|
+
const ticket: HubspotTicketItem = {
|
|
41
|
+
id: '12345',
|
|
42
|
+
title: 'VPN access not working',
|
|
43
|
+
preview: 'Unable to connect since the latest Windows update...',
|
|
44
|
+
status: 'IN_PROGRESS',
|
|
45
|
+
statusLabel: 'Code review',
|
|
46
|
+
priority: 'HIGH',
|
|
47
|
+
customerEmail: 'user@example.com',
|
|
48
|
+
dateUpdated: '2024-03-15T10:30:00Z',
|
|
49
|
+
// FULL variant — url and customerCompany populated by indexer
|
|
50
|
+
url: 'https://app.hubspot.com/contacts/123/ticket/12345',
|
|
51
|
+
customerCompany: 'Acme Corp',
|
|
52
|
+
};
|
|
53
|
+
```
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
<!-- source-hash: c776921bad26d5ec08d70dc63e9ff5b7 -->
|
|
2
|
+
Barrel export file that centralises all **chat entity row types** — the canonical wire shapes consumed by chat cards across the Flamingo/OpenFrame platform.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
Re-exports types from the following entity modules:
|
|
7
|
+
|
|
8
|
+
| Module | Entity |
|
|
9
|
+
|---|---|
|
|
10
|
+
| `blog` | Blog post wire shape |
|
|
11
|
+
| `case-study` | Case study wire shape |
|
|
12
|
+
| `content-ref` | Generic content reference |
|
|
13
|
+
| `customer-interview` | Customer interview wire shape |
|
|
14
|
+
| `data-room-doc` | Data room document wire shape |
|
|
15
|
+
| `github-activity` | Commit / PR / review wire shape |
|
|
16
|
+
| `hubspot-ticket` | HubSpot ticket wire shape |
|
|
17
|
+
| `investor-update` | Investor update wire shape |
|
|
18
|
+
| `onboarding-guide` | Onboarding guide wire shape |
|
|
19
|
+
| `program-types` | Program item wire shapes |
|
|
20
|
+
| `roadmap-item` | Roadmap item wire shape |
|
|
21
|
+
| `slack-message` | Slack message wire shape |
|
|
22
|
+
|
|
23
|
+
## Usage Example
|
|
24
|
+
|
|
25
|
+
```typescript
|
|
26
|
+
// Import any chat entity type directly from the barrel
|
|
27
|
+
import type {
|
|
28
|
+
GithubActivityRow,
|
|
29
|
+
SlackMessageRow,
|
|
30
|
+
HubspotTicketRow,
|
|
31
|
+
} from '@lib/chat/entities';
|
|
32
|
+
|
|
33
|
+
function renderCard(entity: GithubActivityRow | SlackMessageRow) {
|
|
34
|
+
// consume canonical wire shape — no hub-tree imports needed
|
|
35
|
+
}
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Architecture Notes
|
|
39
|
+
|
|
40
|
+
- **Types only** — pure wire shapes and formatters that operate on them live here; no DAL functions, RAG mappers, or sync engine logic.
|
|
41
|
+
- **Hub isolation** — server-side utilities that *produce* these shapes remain in the hub; this package is the single source of truth for *consuming* them.
|
|
42
|
+
- **Chat card contract** — any chat card component should import entity types from this barrel rather than reaching into hub internals.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
<!-- source-hash: cd90c6466cd8d12a5c8765efbf35dcb1 -->
|
|
2
|
+
Defines the wire-shape types and a pure formatter for investor update entities, used across chat cards and `/api/investor-updates` API reads.
|
|
3
|
+
|
|
4
|
+
## Key Components
|
|
5
|
+
|
|
6
|
+
### Interfaces
|
|
7
|
+
|
|
8
|
+
| Interface | Purpose |
|
|
9
|
+
|---|---|
|
|
10
|
+
| `MetricEntry` | A single financial or KPI metric with current/previous values and visibility scope |
|
|
11
|
+
| `HighlightEntry` | A titled highlight item (milestone, note, etc.) with optional description and visibility |
|
|
12
|
+
| `InvestorUpdateHighlights` | Grouped collections of `HighlightEntry` items by category |
|
|
13
|
+
| `InvestorUpdate` | Full wire shape for an investor update — covers content, media, SEO, HubSpot, authorship, and visibility |
|
|
14
|
+
|
|
15
|
+
### Functions
|
|
16
|
+
|
|
17
|
+
- **`formatInvestorUpdatePeriod`** — Pure formatter that converts `period_start` / `period_end` ISO strings into a human-readable range (e.g. `Mar 2025 - May 2025`). Falls back to `?` for missing endpoints.
|
|
18
|
+
|
|
19
|
+
## Usage Example
|
|
20
|
+
|
|
21
|
+
```typescript
|
|
22
|
+
import type { InvestorUpdate, MetricEntry } from './investor-update';
|
|
23
|
+
import { formatInvestorUpdatePeriod } from './investor-update';
|
|
24
|
+
|
|
25
|
+
// Format a period range for display
|
|
26
|
+
const label = formatInvestorUpdatePeriod('2025-03-01', '2025-05-31');
|
|
27
|
+
// → "Mar 2025 - May 2025"
|
|
28
|
+
|
|
29
|
+
const labelLong = formatInvestorUpdatePeriod('2025-03-01', null, { monthFormat: 'long' });
|
|
30
|
+
// → "March 2025 - ?"
|
|
31
|
+
|
|
32
|
+
// Type-safe metric entry
|
|
33
|
+
const mrr: MetricEntry = {
|
|
34
|
+
current: 42000,
|
|
35
|
+
previous: 38000,
|
|
36
|
+
change_pct: 10.5,
|
|
37
|
+
visibility: 'internal',
|
|
38
|
+
};
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Notes
|
|
42
|
+
|
|
43
|
+
- Visibility fields (`'public' | 'internal'`) control what surfaces in public-facing vs. internal views — filtering logic stays hub-side.
|
|
44
|
+
- `section_visibility` is a freeform record allowing per-section overrides on any `InvestorUpdate`.
|
|
45
|
+
- Server-side data utilities and DB access remain in `lib/data/investor-update-utils-shared.ts`; this file exports types and pure functions only.
|