@btst/stack 1.3.1 → 1.4.1
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/README.md +85 -37
- package/dist/node_modules/.pnpm/@radix-ui_react-accordion@1.2.12_@types_react-dom@19.2.3_@types_react@19.2.6__@types_re_947719a27ff11ec6f09710dd9e85efc5/node_modules/@radix-ui/react-accordion/dist/index.cjs +321 -0
- package/dist/node_modules/.pnpm/@radix-ui_react-accordion@1.2.12_@types_react-dom@19.2.3_@types_react@19.2.6__@types_re_947719a27ff11ec6f09710dd9e85efc5/node_modules/@radix-ui/react-accordion/dist/index.mjs +306 -0
- package/dist/node_modules/.pnpm/{@radix-ui_react-alert-dialog@1.1.15_@types_react-dom@19.2.2_@types_react@19.2.2__@types_ec789942cd38340bd7362c09e7d34384 → @radix-ui_react-alert-dialog@1.1.15_@types_react-dom@19.2.3_@types_react@19.2.6__@types_4f58c757aa677e233cf96d60fda2f1da}/node_modules/@radix-ui/react-alert-dialog/dist/index.cjs +2 -2
- package/dist/node_modules/.pnpm/{@radix-ui_react-alert-dialog@1.1.15_@types_react-dom@19.2.2_@types_react@19.2.2__@types_ec789942cd38340bd7362c09e7d34384 → @radix-ui_react-alert-dialog@1.1.15_@types_react-dom@19.2.3_@types_react@19.2.6__@types_4f58c757aa677e233cf96d60fda2f1da}/node_modules/@radix-ui/react-alert-dialog/dist/index.mjs +2 -2
- package/dist/node_modules/.pnpm/{@radix-ui_react-arrow@1.1.7_@types_react-dom@19.2.2_@types_react@19.2.2__@types_react@1_9e04309f365863673e44407648bb0cb6 → @radix-ui_react-arrow@1.1.7_@types_react-dom@19.2.3_@types_react@19.2.6__@types_react@1_35df44f6d87656c1401686c91d770dbb}/node_modules/@radix-ui/react-arrow/dist/index.cjs +1 -1
- package/dist/node_modules/.pnpm/{@radix-ui_react-arrow@1.1.7_@types_react-dom@19.2.2_@types_react@19.2.2__@types_react@1_9e04309f365863673e44407648bb0cb6 → @radix-ui_react-arrow@1.1.7_@types_react-dom@19.2.3_@types_react@19.2.6__@types_react@1_35df44f6d87656c1401686c91d770dbb}/node_modules/@radix-ui/react-arrow/dist/index.mjs +1 -1
- package/dist/node_modules/.pnpm/@radix-ui_react-collapsible@1.1.12_@types_react-dom@19.2.3_@types_react@19.2.6__@types__d025a77f62ee83ca6bd8b0ea1f9de738/node_modules/@radix-ui/react-collapsible/dist/index.cjs +168 -0
- package/dist/node_modules/.pnpm/@radix-ui_react-collapsible@1.1.12_@types_react-dom@19.2.3_@types_react@19.2.6__@types__d025a77f62ee83ca6bd8b0ea1f9de738/node_modules/@radix-ui/react-collapsible/dist/index.mjs +146 -0
- package/dist/node_modules/.pnpm/{@radix-ui_react-collection@1.1.7_@types_react-dom@19.2.2_@types_react@19.2.2__@types_re_6d7c277722b3619c9ee7e64e9a822c45 → @radix-ui_react-collection@1.1.7_@types_react-dom@19.2.3_@types_react@19.2.6__@types_re_59aa5e150e70a3e7bfb1567148b021b5}/node_modules/@radix-ui/react-collection/dist/index.cjs +2 -2
- package/dist/node_modules/.pnpm/{@radix-ui_react-collection@1.1.7_@types_react-dom@19.2.2_@types_react@19.2.2__@types_re_6d7c277722b3619c9ee7e64e9a822c45 → @radix-ui_react-collection@1.1.7_@types_react-dom@19.2.3_@types_react@19.2.6__@types_re_59aa5e150e70a3e7bfb1567148b021b5}/node_modules/@radix-ui/react-collection/dist/index.mjs +2 -2
- package/dist/node_modules/.pnpm/{@radix-ui_react-dismissable-layer@1.1.11_@types_react-dom@19.2.2_@types_react@19.2.2__@_ca5522e5d45d4722cb9eb5ce53defa61 → @radix-ui_react-dismissable-layer@1.1.11_@types_react-dom@19.2.3_@types_react@19.2.6__@_9ee1db7daf927866cf505b31d40047ad}/node_modules/@radix-ui/react-dismissable-layer/dist/index.cjs +4 -4
- package/dist/node_modules/.pnpm/{@radix-ui_react-dismissable-layer@1.1.11_@types_react-dom@19.2.2_@types_react@19.2.2__@_ca5522e5d45d4722cb9eb5ce53defa61 → @radix-ui_react-dismissable-layer@1.1.11_@types_react-dom@19.2.3_@types_react@19.2.6__@_9ee1db7daf927866cf505b31d40047ad}/node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs +4 -4
- package/dist/node_modules/.pnpm/@radix-ui_react-dropdown-menu@2.1.16_@types_react-dom@19.2.3_@types_react@19.2.6__@type_a50051c7210b6fbd5be09388bda08578/node_modules/@radix-ui/react-dropdown-menu/dist/index.cjs +282 -0
- package/dist/node_modules/.pnpm/@radix-ui_react-dropdown-menu@2.1.16_@types_react-dom@19.2.3_@types_react@19.2.6__@type_a50051c7210b6fbd5be09388bda08578/node_modules/@radix-ui/react-dropdown-menu/dist/index.mjs +247 -0
- package/dist/node_modules/.pnpm/{@radix-ui_react-focus-scope@1.1.7_@types_react-dom@19.2.2_@types_react@19.2.2__@types_r_93de389b3f622f9f764acc8e59ec80c0 → @radix-ui_react-focus-scope@1.1.7_@types_react-dom@19.2.3_@types_react@19.2.6__@types_r_0a31b7f987af9482d13505312e1a1be9}/node_modules/@radix-ui/react-focus-scope/dist/index.cjs +3 -3
- package/dist/node_modules/.pnpm/{@radix-ui_react-focus-scope@1.1.7_@types_react-dom@19.2.2_@types_react@19.2.2__@types_r_93de389b3f622f9f764acc8e59ec80c0 → @radix-ui_react-focus-scope@1.1.7_@types_react-dom@19.2.3_@types_react@19.2.6__@types_r_0a31b7f987af9482d13505312e1a1be9}/node_modules/@radix-ui/react-focus-scope/dist/index.mjs +3 -3
- package/dist/node_modules/.pnpm/{@radix-ui_react-id@1.1.1_@types_react@19.2.2_react@19.2.0 → @radix-ui_react-id@1.1.1_@types_react@19.2.6_react@19.2.0}/node_modules/@radix-ui/react-id/dist/index.cjs +1 -1
- package/dist/node_modules/.pnpm/{@radix-ui_react-id@1.1.1_@types_react@19.2.2_react@19.2.0 → @radix-ui_react-id@1.1.1_@types_react@19.2.6_react@19.2.0}/node_modules/@radix-ui/react-id/dist/index.mjs +1 -1
- package/dist/node_modules/.pnpm/@radix-ui_react-menu@2.1.16_@types_react-dom@19.2.3_@types_react@19.2.6__@types_react@1_82ed1fcd848b6984d9291a784d477cf4/node_modules/@radix-ui/react-menu/dist/index.cjs +845 -0
- package/dist/node_modules/.pnpm/@radix-ui_react-menu@2.1.16_@types_react-dom@19.2.3_@types_react@19.2.6__@types_react@1_82ed1fcd848b6984d9291a784d477cf4/node_modules/@radix-ui/react-menu/dist/index.mjs +799 -0
- package/dist/node_modules/.pnpm/{@radix-ui_react-popper@1.2.8_@types_react-dom@19.2.2_@types_react@19.2.2__@types_react@_d6285b8269ea5d6b59b300f5be279a0c → @radix-ui_react-popper@1.2.8_@types_react-dom@19.2.3_@types_react@19.2.6__@types_react@_7ac2caae1e39f9ba93d5015614525161}/node_modules/@radix-ui/react-popper/dist/index.cjs +7 -7
- package/dist/node_modules/.pnpm/{@radix-ui_react-popper@1.2.8_@types_react-dom@19.2.2_@types_react@19.2.2__@types_react@_d6285b8269ea5d6b59b300f5be279a0c → @radix-ui_react-popper@1.2.8_@types_react-dom@19.2.3_@types_react@19.2.6__@types_react@_7ac2caae1e39f9ba93d5015614525161}/node_modules/@radix-ui/react-popper/dist/index.mjs +7 -7
- package/dist/node_modules/.pnpm/{@radix-ui_react-portal@1.1.9_@types_react-dom@19.2.2_@types_react@19.2.2__@types_react@_478b3d5dd4afab1a3dcce7ed1748cb95 → @radix-ui_react-portal@1.1.9_@types_react-dom@19.2.3_@types_react@19.2.6__@types_react@_1bb4e0f97f86496802d28a2e74e2a8b9}/node_modules/@radix-ui/react-portal/dist/index.cjs +2 -2
- package/dist/node_modules/.pnpm/{@radix-ui_react-portal@1.1.9_@types_react-dom@19.2.2_@types_react@19.2.2__@types_react@_478b3d5dd4afab1a3dcce7ed1748cb95 → @radix-ui_react-portal@1.1.9_@types_react-dom@19.2.3_@types_react@19.2.6__@types_react@_1bb4e0f97f86496802d28a2e74e2a8b9}/node_modules/@radix-ui/react-portal/dist/index.mjs +2 -2
- package/dist/node_modules/.pnpm/@radix-ui_react-presence@1.1.5_@types_react-dom@19.2.3_@types_react@19.2.6__@types_reac_90f8e5c12233caef3399d5fd66452a13/node_modules/@radix-ui/react-presence/dist/index.cjs +147 -0
- package/dist/node_modules/.pnpm/@radix-ui_react-presence@1.1.5_@types_react-dom@19.2.3_@types_react@19.2.6__@types_reac_90f8e5c12233caef3399d5fd66452a13/node_modules/@radix-ui/react-presence/dist/index.mjs +131 -0
- package/dist/node_modules/.pnpm/@radix-ui_react-roving-focus@1.1.11_@types_react-dom@19.2.3_@types_react@19.2.6__@types_fe1151d1f393bbc1072b24a86dff3a23/node_modules/@radix-ui/react-roving-focus/dist/index.cjs +244 -0
- package/dist/node_modules/.pnpm/@radix-ui_react-roving-focus@1.1.11_@types_react-dom@19.2.3_@types_react@19.2.6__@types_fe1151d1f393bbc1072b24a86dff3a23/node_modules/@radix-ui/react-roving-focus/dist/index.mjs +224 -0
- package/dist/node_modules/.pnpm/@radix-ui_react-scroll-area@1.2.10_@types_react-dom@19.2.3_@types_react@19.2.6__@types__e3f7735e9b444a10b3bbfd9fe97d44d0/node_modules/@radix-ui/react-scroll-area/dist/index.cjs +742 -0
- package/dist/node_modules/.pnpm/@radix-ui_react-scroll-area@1.2.10_@types_react-dom@19.2.3_@types_react@19.2.6__@types__e3f7735e9b444a10b3bbfd9fe97d44d0/node_modules/@radix-ui/react-scroll-area/dist/index.mjs +719 -0
- package/dist/node_modules/.pnpm/{@radix-ui_react-select@2.2.6_@types_react-dom@19.2.2_@types_react@19.2.2__@types_react@_802c3d414c85063bee785fcc98a39c07 → @radix-ui_react-select@2.2.6_@types_react-dom@19.2.3_@types_react@19.2.6__@types_react@_38dc681bb1f2bcfeb5249d8ca2bc01f5}/node_modules/@radix-ui/react-select/dist/index.cjs +17 -17
- package/dist/node_modules/.pnpm/{@radix-ui_react-select@2.2.6_@types_react-dom@19.2.2_@types_react@19.2.2__@types_react@_802c3d414c85063bee785fcc98a39c07 → @radix-ui_react-select@2.2.6_@types_react-dom@19.2.3_@types_react@19.2.6__@types_react@_38dc681bb1f2bcfeb5249d8ca2bc01f5}/node_modules/@radix-ui/react-select/dist/index.mjs +17 -17
- package/dist/node_modules/.pnpm/{@radix-ui_react-use-controllable-state@1.2.2_@types_react@19.2.2_react@19.2.0 → @radix-ui_react-use-controllable-state@1.2.2_@types_react@19.2.6_react@19.2.0}/node_modules/@radix-ui/react-use-controllable-state/dist/index.cjs +1 -1
- package/dist/node_modules/.pnpm/{@radix-ui_react-use-controllable-state@1.2.2_@types_react@19.2.2_react@19.2.0 → @radix-ui_react-use-controllable-state@1.2.2_@types_react@19.2.6_react@19.2.0}/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs +1 -1
- package/dist/node_modules/.pnpm/{@radix-ui_react-use-escape-keydown@1.1.1_@types_react@19.2.2_react@19.2.0 → @radix-ui_react-use-escape-keydown@1.1.1_@types_react@19.2.6_react@19.2.0}/node_modules/@radix-ui/react-use-escape-keydown/dist/index.cjs +1 -1
- package/dist/node_modules/.pnpm/{@radix-ui_react-use-escape-keydown@1.1.1_@types_react@19.2.2_react@19.2.0 → @radix-ui_react-use-escape-keydown@1.1.1_@types_react@19.2.6_react@19.2.0}/node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs +1 -1
- package/dist/node_modules/.pnpm/{@radix-ui_react-use-size@1.1.1_@types_react@19.2.2_react@19.2.0 → @radix-ui_react-use-size@1.1.1_@types_react@19.2.6_react@19.2.0}/node_modules/@radix-ui/react-use-size/dist/index.cjs +1 -1
- package/dist/node_modules/.pnpm/{@radix-ui_react-use-size@1.1.1_@types_react@19.2.2_react@19.2.0 → @radix-ui_react-use-size@1.1.1_@types_react@19.2.6_react@19.2.0}/node_modules/@radix-ui/react-use-size/dist/index.mjs +1 -1
- package/dist/node_modules/.pnpm/{@radix-ui_react-visually-hidden@1.2.3_@types_react-dom@19.2.2_@types_react@19.2.2__@typ_a84e98a44624c31e835a98d4b8b0c30d → @radix-ui_react-visually-hidden@1.2.3_@types_react-dom@19.2.3_@types_react@19.2.6__@typ_f453379bbd5a4932ec515167f81be42a}/node_modules/@radix-ui/react-visually-hidden/dist/index.cjs +1 -1
- package/dist/node_modules/.pnpm/{@radix-ui_react-visually-hidden@1.2.3_@types_react-dom@19.2.2_@types_react@19.2.2__@typ_a84e98a44624c31e835a98d4b8b0c30d → @radix-ui_react-visually-hidden@1.2.3_@types_react-dom@19.2.3_@types_react@19.2.6__@typ_f453379bbd5a4932ec515167f81be42a}/node_modules/@radix-ui/react-visually-hidden/dist/index.mjs +1 -1
- package/dist/node_modules/.pnpm/{react-remove-scroll-bar@2.3.8_@types_react@19.2.2_react@19.2.0 → react-remove-scroll-bar@2.3.8_@types_react@19.2.6_react@19.2.0}/node_modules/react-remove-scroll-bar/dist/es2015/component.cjs +1 -1
- package/dist/node_modules/.pnpm/{react-remove-scroll-bar@2.3.8_@types_react@19.2.2_react@19.2.0 → react-remove-scroll-bar@2.3.8_@types_react@19.2.6_react@19.2.0}/node_modules/react-remove-scroll-bar/dist/es2015/component.mjs +1 -1
- package/dist/node_modules/.pnpm/{react-remove-scroll@2.7.1_@types_react@19.2.2_react@19.2.0 → react-remove-scroll@2.7.1_@types_react@19.2.6_react@19.2.0}/node_modules/react-remove-scroll/dist/es2015/SideEffect.cjs +2 -2
- package/dist/node_modules/.pnpm/{react-remove-scroll@2.7.1_@types_react@19.2.2_react@19.2.0 → react-remove-scroll@2.7.1_@types_react@19.2.6_react@19.2.0}/node_modules/react-remove-scroll/dist/es2015/SideEffect.mjs +2 -2
- package/dist/node_modules/.pnpm/{react-remove-scroll@2.7.1_@types_react@19.2.2_react@19.2.0 → react-remove-scroll@2.7.1_@types_react@19.2.6_react@19.2.0}/node_modules/react-remove-scroll/dist/es2015/UI.cjs +2 -2
- package/dist/node_modules/.pnpm/{react-remove-scroll@2.7.1_@types_react@19.2.2_react@19.2.0 → react-remove-scroll@2.7.1_@types_react@19.2.6_react@19.2.0}/node_modules/react-remove-scroll/dist/es2015/UI.mjs +2 -2
- package/dist/node_modules/.pnpm/{react-remove-scroll@2.7.1_@types_react@19.2.2_react@19.2.0 → react-remove-scroll@2.7.1_@types_react@19.2.6_react@19.2.0}/node_modules/react-remove-scroll/dist/es2015/medium.cjs +1 -1
- package/dist/node_modules/.pnpm/{react-remove-scroll@2.7.1_@types_react@19.2.2_react@19.2.0 → react-remove-scroll@2.7.1_@types_react@19.2.6_react@19.2.0}/node_modules/react-remove-scroll/dist/es2015/medium.mjs +1 -1
- package/dist/node_modules/.pnpm/react-remove-scroll@2.7.1_@types_react@19.2.6_react@19.2.0/node_modules/react-remove-scroll/dist/es2015/sidecar.cjs +9 -0
- package/dist/node_modules/.pnpm/{react-remove-scroll@2.7.1_@types_react@19.2.2_react@19.2.0 → react-remove-scroll@2.7.1_@types_react@19.2.6_react@19.2.0}/node_modules/react-remove-scroll/dist/es2015/sidecar.mjs +1 -1
- package/dist/packages/better-stack/src/plugins/ai-chat/api/plugin.cjs +610 -0
- package/dist/packages/better-stack/src/plugins/ai-chat/api/plugin.mjs +608 -0
- package/dist/packages/better-stack/src/plugins/ai-chat/client/components/chat-input.cjs +221 -0
- package/dist/packages/better-stack/src/plugins/ai-chat/client/components/chat-input.mjs +219 -0
- package/dist/packages/better-stack/src/plugins/ai-chat/client/components/chat-interface.cjs +341 -0
- package/dist/packages/better-stack/src/plugins/ai-chat/client/components/chat-interface.mjs +339 -0
- package/dist/packages/better-stack/src/plugins/ai-chat/client/components/chat-layout.cjs +135 -0
- package/dist/packages/better-stack/src/plugins/ai-chat/client/components/chat-layout.mjs +133 -0
- package/dist/packages/better-stack/src/plugins/ai-chat/client/components/chat-message.cjs +429 -0
- package/dist/packages/better-stack/src/plugins/ai-chat/client/components/chat-message.mjs +423 -0
- package/dist/packages/better-stack/src/plugins/ai-chat/client/components/chat-sidebar.cjs +227 -0
- package/dist/packages/better-stack/src/plugins/ai-chat/client/components/chat-sidebar.mjs +225 -0
- package/dist/packages/better-stack/src/plugins/ai-chat/client/components/loading/chat-page-skeleton.cjs +31 -0
- package/dist/packages/better-stack/src/plugins/ai-chat/client/components/loading/chat-page-skeleton.mjs +29 -0
- package/dist/packages/better-stack/src/plugins/ai-chat/client/components/loading/index.cjs +11 -0
- package/dist/packages/better-stack/src/plugins/ai-chat/client/components/loading/index.mjs +8 -0
- package/dist/packages/better-stack/src/plugins/ai-chat/client/components/pages/404-page.cjs +18 -0
- package/dist/packages/better-stack/src/plugins/ai-chat/client/components/pages/404-page.mjs +16 -0
- package/dist/packages/better-stack/src/plugins/ai-chat/client/components/pages/chat-page.cjs +39 -0
- package/dist/packages/better-stack/src/plugins/ai-chat/client/components/pages/chat-page.internal.cjs +22 -0
- package/dist/packages/better-stack/src/plugins/ai-chat/client/components/pages/chat-page.internal.mjs +20 -0
- package/dist/packages/better-stack/src/plugins/ai-chat/client/components/pages/chat-page.mjs +37 -0
- package/dist/packages/better-stack/src/plugins/ai-chat/client/components/shared/default-error.cjs +18 -0
- package/dist/packages/better-stack/src/plugins/ai-chat/client/components/shared/default-error.mjs +16 -0
- package/dist/packages/better-stack/src/plugins/ai-chat/client/components/shared/error-placeholder.cjs +26 -0
- package/dist/packages/better-stack/src/plugins/ai-chat/client/components/shared/error-placeholder.mjs +24 -0
- package/dist/packages/better-stack/src/plugins/ai-chat/client/components/tool-call-display.cjs +123 -0
- package/dist/packages/better-stack/src/plugins/ai-chat/client/components/tool-call-display.mjs +121 -0
- package/dist/packages/better-stack/src/plugins/ai-chat/client/hooks/chat-hooks.cjs +199 -0
- package/dist/packages/better-stack/src/plugins/ai-chat/client/hooks/chat-hooks.mjs +191 -0
- package/dist/packages/better-stack/src/plugins/ai-chat/client/localization/index.cjs +63 -0
- package/dist/packages/better-stack/src/plugins/ai-chat/client/localization/index.mjs +61 -0
- package/dist/packages/better-stack/src/plugins/ai-chat/client/overrides.cjs +14 -0
- package/dist/packages/better-stack/src/plugins/ai-chat/client/overrides.mjs +11 -0
- package/dist/packages/better-stack/src/plugins/ai-chat/client/plugin.cjs +241 -0
- package/dist/packages/better-stack/src/plugins/ai-chat/client/plugin.mjs +239 -0
- package/dist/packages/better-stack/src/plugins/ai-chat/db.cjs +65 -0
- package/dist/packages/better-stack/src/plugins/ai-chat/db.mjs +63 -0
- package/dist/packages/better-stack/src/plugins/ai-chat/schemas.cjs +42 -0
- package/dist/packages/better-stack/src/plugins/ai-chat/schemas.mjs +38 -0
- package/dist/packages/better-stack/src/plugins/blog/client/components/shared/markdown-content.cjs +12 -309
- package/dist/packages/better-stack/src/plugins/blog/client/components/shared/markdown-content.mjs +13 -303
- package/dist/packages/better-stack/src/plugins/blog/client/components/shared/page-wrapper.cjs +2 -2
- package/dist/packages/better-stack/src/plugins/blog/client/components/shared/page-wrapper.mjs +2 -2
- package/dist/packages/ui/src/components/accordion.cjs +67 -0
- package/dist/packages/ui/src/components/accordion.mjs +62 -0
- package/dist/packages/ui/src/components/alert-dialog.cjs +1 -1
- package/dist/packages/ui/src/components/alert-dialog.mjs +1 -1
- package/dist/packages/{better-stack/src/plugins/blog/client/components/shared/better-blog-attribution.cjs → ui/src/components/better-stack-attribution.cjs} +3 -3
- package/dist/packages/{better-stack/src/plugins/blog/client/components/shared/better-blog-attribution.mjs → ui/src/components/better-stack-attribution.mjs} +3 -3
- package/dist/packages/ui/src/components/dialog.cjs +14 -0
- package/dist/packages/ui/src/components/dialog.mjs +14 -1
- package/dist/packages/ui/src/components/dropdown-menu.cjs +67 -0
- package/dist/packages/ui/src/components/dropdown-menu.mjs +62 -0
- package/dist/packages/ui/src/components/markdown-content.cjs +306 -0
- package/dist/packages/ui/src/components/markdown-content.mjs +297 -0
- package/dist/packages/ui/src/components/scroll-area.cjs +63 -0
- package/dist/packages/ui/src/components/scroll-area.mjs +60 -0
- package/dist/packages/ui/src/components/select.cjs +1 -1
- package/dist/packages/ui/src/components/select.mjs +1 -1
- package/dist/packages/ui/src/components/sheet.cjs +87 -0
- package/dist/packages/ui/src/components/sheet.mjs +69 -0
- package/dist/plugins/ai-chat/api/index.cjs +9 -0
- package/dist/plugins/ai-chat/api/index.d.cts +9 -0
- package/dist/plugins/ai-chat/api/index.d.mts +9 -0
- package/dist/plugins/ai-chat/api/index.d.ts +9 -0
- package/dist/plugins/ai-chat/api/index.mjs +2 -0
- package/dist/plugins/ai-chat/client/components/index.cjs +29 -0
- package/dist/plugins/ai-chat/client/components/index.d.cts +30 -0
- package/dist/plugins/ai-chat/client/components/index.d.mts +30 -0
- package/dist/plugins/ai-chat/client/components/index.d.ts +30 -0
- package/dist/plugins/ai-chat/client/components/index.mjs +12 -0
- package/dist/plugins/ai-chat/client/hooks/index.cjs +13 -0
- package/dist/plugins/ai-chat/client/hooks/index.d.cts +98 -0
- package/dist/plugins/ai-chat/client/hooks/index.d.mts +98 -0
- package/dist/plugins/ai-chat/client/hooks/index.d.ts +98 -0
- package/dist/plugins/ai-chat/client/hooks/index.mjs +1 -0
- package/dist/plugins/ai-chat/client/index.cjs +21 -0
- package/dist/plugins/ai-chat/client/index.d.cts +156 -0
- package/dist/plugins/ai-chat/client/index.d.mts +156 -0
- package/dist/plugins/ai-chat/client/index.d.ts +156 -0
- package/dist/plugins/ai-chat/client/index.mjs +8 -0
- package/dist/plugins/ai-chat/client.css +6 -0
- package/dist/plugins/ai-chat/query-keys.cjs +60 -0
- package/dist/plugins/ai-chat/query-keys.d.cts +478 -0
- package/dist/plugins/ai-chat/query-keys.d.mts +478 -0
- package/dist/plugins/ai-chat/query-keys.d.ts +478 -0
- package/dist/plugins/ai-chat/query-keys.mjs +58 -0
- package/dist/plugins/ai-chat/style.css +19 -0
- package/dist/plugins/blog/api/index.d.cts +1 -1
- package/dist/plugins/blog/api/index.d.mts +1 -1
- package/dist/plugins/blog/api/index.d.ts +1 -1
- package/dist/plugins/blog/client/components/shared/markdown-content-styles.css +91 -62
- package/dist/plugins/blog/client/hooks/index.d.cts +4 -4
- package/dist/plugins/blog/client/hooks/index.d.mts +4 -4
- package/dist/plugins/blog/client/hooks/index.d.ts +4 -4
- package/dist/plugins/blog/client/index.d.cts +1 -1
- package/dist/plugins/blog/client/index.d.mts +1 -1
- package/dist/plugins/blog/client/index.d.ts +1 -1
- package/dist/plugins/blog/query-keys.d.cts +7 -7
- package/dist/plugins/blog/query-keys.d.mts +7 -7
- package/dist/plugins/blog/query-keys.d.ts +7 -7
- package/dist/shared/stack.Be1QIHEn.d.cts +23 -0
- package/dist/shared/stack.Be1QIHEn.d.mts +23 -0
- package/dist/shared/stack.Be1QIHEn.d.ts +23 -0
- package/dist/shared/stack.DaOcgmrM.d.cts +323 -0
- package/dist/shared/stack.DaOcgmrM.d.mts +323 -0
- package/dist/shared/stack.DaOcgmrM.d.ts +323 -0
- package/package.json +59 -1
- package/src/plugins/ai-chat/api/index.ts +2 -0
- package/src/plugins/ai-chat/api/plugin.ts +1083 -0
- package/src/plugins/ai-chat/client/components/chat-input.tsx +295 -0
- package/src/plugins/ai-chat/client/components/chat-interface.tsx +494 -0
- package/src/plugins/ai-chat/client/components/chat-layout.tsx +175 -0
- package/src/plugins/ai-chat/client/components/chat-message.tsx +561 -0
- package/src/plugins/ai-chat/client/components/chat-sidebar.tsx +296 -0
- package/src/plugins/ai-chat/client/components/index.ts +18 -0
- package/src/plugins/ai-chat/client/components/loading/chat-page-skeleton.tsx +57 -0
- package/src/plugins/ai-chat/client/components/loading/index.tsx +11 -0
- package/src/plugins/ai-chat/client/components/pages/404-page.tsx +27 -0
- package/src/plugins/ai-chat/client/components/pages/chat-page.internal.tsx +31 -0
- package/src/plugins/ai-chat/client/components/pages/chat-page.tsx +46 -0
- package/src/plugins/ai-chat/client/components/shared/default-error.tsx +28 -0
- package/src/plugins/ai-chat/client/components/shared/error-placeholder.tsx +22 -0
- package/src/plugins/ai-chat/client/components/tool-call-display.tsx +197 -0
- package/src/plugins/ai-chat/client/hooks/chat-hooks.tsx +349 -0
- package/src/plugins/ai-chat/client/hooks/index.tsx +1 -0
- package/src/plugins/ai-chat/client/index.ts +25 -0
- package/src/plugins/ai-chat/client/localization/index.ts +156 -0
- package/src/plugins/ai-chat/client/overrides.ts +241 -0
- package/src/plugins/ai-chat/client/plugin.tsx +449 -0
- package/src/plugins/ai-chat/client.css +6 -0
- package/src/plugins/ai-chat/db.ts +65 -0
- package/src/plugins/ai-chat/query-keys.ts +87 -0
- package/src/plugins/ai-chat/schemas.ts +40 -0
- package/src/plugins/ai-chat/style.css +19 -0
- package/src/plugins/ai-chat/types.ts +29 -0
- package/src/plugins/blog/client/components/shared/markdown-content-styles.css +91 -62
- package/src/plugins/blog/client/components/shared/markdown-content.tsx +19 -427
- package/src/plugins/blog/client/components/shared/page-wrapper.tsx +2 -2
- package/dist/node_modules/.pnpm/react-remove-scroll@2.7.1_@types_react@19.2.2_react@19.2.0/node_modules/react-remove-scroll/dist/es2015/sidecar.cjs +0 -9
- package/src/plugins/blog/client/components/shared/better-blog-attribution.tsx +0 -19
- package/dist/node_modules/.pnpm/{@radix-ui_react-compose-refs@1.1.2_@types_react@19.2.2_react@19.2.0 → @radix-ui_react-compose-refs@1.1.2_@types_react@19.2.6_react@19.2.0}/node_modules/@radix-ui/react-compose-refs/dist/index.cjs +0 -0
- package/dist/node_modules/.pnpm/{@radix-ui_react-compose-refs@1.1.2_@types_react@19.2.2_react@19.2.0 → @radix-ui_react-compose-refs@1.1.2_@types_react@19.2.6_react@19.2.0}/node_modules/@radix-ui/react-compose-refs/dist/index.mjs +0 -0
- package/dist/node_modules/.pnpm/{@radix-ui_react-context@1.1.2_@types_react@19.2.2_react@19.2.0 → @radix-ui_react-context@1.1.2_@types_react@19.2.6_react@19.2.0}/node_modules/@radix-ui/react-context/dist/index.cjs +0 -0
- package/dist/node_modules/.pnpm/{@radix-ui_react-context@1.1.2_@types_react@19.2.2_react@19.2.0 → @radix-ui_react-context@1.1.2_@types_react@19.2.6_react@19.2.0}/node_modules/@radix-ui/react-context/dist/index.mjs +0 -0
- package/dist/node_modules/.pnpm/{@radix-ui_react-direction@1.1.1_@types_react@19.2.2_react@19.2.0 → @radix-ui_react-direction@1.1.1_@types_react@19.2.6_react@19.2.0}/node_modules/@radix-ui/react-direction/dist/index.cjs +0 -0
- package/dist/node_modules/.pnpm/{@radix-ui_react-direction@1.1.1_@types_react@19.2.2_react@19.2.0 → @radix-ui_react-direction@1.1.1_@types_react@19.2.6_react@19.2.0}/node_modules/@radix-ui/react-direction/dist/index.mjs +0 -0
- package/dist/node_modules/.pnpm/{@radix-ui_react-focus-guards@1.1.3_@types_react@19.2.2_react@19.2.0 → @radix-ui_react-focus-guards@1.1.3_@types_react@19.2.6_react@19.2.0}/node_modules/@radix-ui/react-focus-guards/dist/index.cjs +0 -0
- package/dist/node_modules/.pnpm/{@radix-ui_react-focus-guards@1.1.3_@types_react@19.2.2_react@19.2.0 → @radix-ui_react-focus-guards@1.1.3_@types_react@19.2.6_react@19.2.0}/node_modules/@radix-ui/react-focus-guards/dist/index.mjs +0 -0
- package/dist/node_modules/.pnpm/{@radix-ui_react-primitive@2.1.3_@types_react-dom@19.2.2_@types_react@19.2.2__@types_rea_bdc15f10281778271ffcbe8dd3cd491e → @radix-ui_react-primitive@2.1.3_@types_react-dom@19.2.3_@types_react@19.2.6__@types_rea_a92a69cb1cb39305138539e4fa72f596}/node_modules/@radix-ui/react-primitive/dist/index.cjs +0 -0
- package/dist/node_modules/.pnpm/{@radix-ui_react-primitive@2.1.3_@types_react-dom@19.2.2_@types_react@19.2.2__@types_rea_bdc15f10281778271ffcbe8dd3cd491e → @radix-ui_react-primitive@2.1.3_@types_react-dom@19.2.3_@types_react@19.2.6__@types_rea_a92a69cb1cb39305138539e4fa72f596}/node_modules/@radix-ui/react-primitive/dist/index.mjs +0 -0
- package/dist/node_modules/.pnpm/{@radix-ui_react-use-callback-ref@1.1.1_@types_react@19.2.2_react@19.2.0 → @radix-ui_react-use-callback-ref@1.1.1_@types_react@19.2.6_react@19.2.0}/node_modules/@radix-ui/react-use-callback-ref/dist/index.cjs +0 -0
- package/dist/node_modules/.pnpm/{@radix-ui_react-use-callback-ref@1.1.1_@types_react@19.2.2_react@19.2.0 → @radix-ui_react-use-callback-ref@1.1.1_@types_react@19.2.6_react@19.2.0}/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs +0 -0
- package/dist/node_modules/.pnpm/{@radix-ui_react-use-layout-effect@1.1.1_@types_react@19.2.2_react@19.2.0 → @radix-ui_react-use-layout-effect@1.1.1_@types_react@19.2.6_react@19.2.0}/node_modules/@radix-ui/react-use-layout-effect/dist/index.cjs +0 -0
- package/dist/node_modules/.pnpm/{@radix-ui_react-use-layout-effect@1.1.1_@types_react@19.2.2_react@19.2.0 → @radix-ui_react-use-layout-effect@1.1.1_@types_react@19.2.6_react@19.2.0}/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs +0 -0
- package/dist/node_modules/.pnpm/{@radix-ui_react-use-previous@1.1.1_@types_react@19.2.2_react@19.2.0 → @radix-ui_react-use-previous@1.1.1_@types_react@19.2.6_react@19.2.0}/node_modules/@radix-ui/react-use-previous/dist/index.cjs +0 -0
- package/dist/node_modules/.pnpm/{@radix-ui_react-use-previous@1.1.1_@types_react@19.2.2_react@19.2.0 → @radix-ui_react-use-previous@1.1.1_@types_react@19.2.6_react@19.2.0}/node_modules/@radix-ui/react-use-previous/dist/index.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-remove-scroll-bar@2.3.8_@types_react@19.2.2_react@19.2.0 → react-remove-scroll-bar@2.3.8_@types_react@19.2.6_react@19.2.0}/node_modules/react-remove-scroll-bar/dist/es2015/constants.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-remove-scroll-bar@2.3.8_@types_react@19.2.2_react@19.2.0 → react-remove-scroll-bar@2.3.8_@types_react@19.2.6_react@19.2.0}/node_modules/react-remove-scroll-bar/dist/es2015/constants.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-remove-scroll-bar@2.3.8_@types_react@19.2.2_react@19.2.0 → react-remove-scroll-bar@2.3.8_@types_react@19.2.6_react@19.2.0}/node_modules/react-remove-scroll-bar/dist/es2015/utils.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-remove-scroll-bar@2.3.8_@types_react@19.2.2_react@19.2.0 → react-remove-scroll-bar@2.3.8_@types_react@19.2.6_react@19.2.0}/node_modules/react-remove-scroll-bar/dist/es2015/utils.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-remove-scroll@2.7.1_@types_react@19.2.2_react@19.2.0 → react-remove-scroll@2.7.1_@types_react@19.2.6_react@19.2.0}/node_modules/react-remove-scroll/dist/es2015/Combination.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-remove-scroll@2.7.1_@types_react@19.2.2_react@19.2.0 → react-remove-scroll@2.7.1_@types_react@19.2.6_react@19.2.0}/node_modules/react-remove-scroll/dist/es2015/Combination.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-remove-scroll@2.7.1_@types_react@19.2.2_react@19.2.0 → react-remove-scroll@2.7.1_@types_react@19.2.6_react@19.2.0}/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-remove-scroll@2.7.1_@types_react@19.2.2_react@19.2.0 → react-remove-scroll@2.7.1_@types_react@19.2.6_react@19.2.0}/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-remove-scroll@2.7.1_@types_react@19.2.2_react@19.2.0 → react-remove-scroll@2.7.1_@types_react@19.2.6_react@19.2.0}/node_modules/react-remove-scroll/dist/es2015/handleScroll.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-remove-scroll@2.7.1_@types_react@19.2.2_react@19.2.0 → react-remove-scroll@2.7.1_@types_react@19.2.6_react@19.2.0}/node_modules/react-remove-scroll/dist/es2015/handleScroll.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-style-singleton@2.2.3_@types_react@19.2.2_react@19.2.0 → react-style-singleton@2.2.3_@types_react@19.2.6_react@19.2.0}/node_modules/react-style-singleton/dist/es2015/component.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-style-singleton@2.2.3_@types_react@19.2.2_react@19.2.0 → react-style-singleton@2.2.3_@types_react@19.2.6_react@19.2.0}/node_modules/react-style-singleton/dist/es2015/component.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-style-singleton@2.2.3_@types_react@19.2.2_react@19.2.0 → react-style-singleton@2.2.3_@types_react@19.2.6_react@19.2.0}/node_modules/react-style-singleton/dist/es2015/hook.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-style-singleton@2.2.3_@types_react@19.2.2_react@19.2.0 → react-style-singleton@2.2.3_@types_react@19.2.6_react@19.2.0}/node_modules/react-style-singleton/dist/es2015/hook.mjs +0 -0
- package/dist/node_modules/.pnpm/{react-style-singleton@2.2.3_@types_react@19.2.2_react@19.2.0 → react-style-singleton@2.2.3_@types_react@19.2.6_react@19.2.0}/node_modules/react-style-singleton/dist/es2015/singleton.cjs +0 -0
- package/dist/node_modules/.pnpm/{react-style-singleton@2.2.3_@types_react@19.2.2_react@19.2.0 → react-style-singleton@2.2.3_@types_react@19.2.6_react@19.2.0}/node_modules/react-style-singleton/dist/es2015/singleton.mjs +0 -0
- package/dist/node_modules/.pnpm/{use-callback-ref@1.3.3_@types_react@19.2.2_react@19.2.0 → use-callback-ref@1.3.3_@types_react@19.2.6_react@19.2.0}/node_modules/use-callback-ref/dist/es2015/assignRef.cjs +0 -0
- package/dist/node_modules/.pnpm/{use-callback-ref@1.3.3_@types_react@19.2.2_react@19.2.0 → use-callback-ref@1.3.3_@types_react@19.2.6_react@19.2.0}/node_modules/use-callback-ref/dist/es2015/assignRef.mjs +0 -0
- package/dist/node_modules/.pnpm/{use-callback-ref@1.3.3_@types_react@19.2.2_react@19.2.0 → use-callback-ref@1.3.3_@types_react@19.2.6_react@19.2.0}/node_modules/use-callback-ref/dist/es2015/useMergeRef.cjs +0 -0
- package/dist/node_modules/.pnpm/{use-callback-ref@1.3.3_@types_react@19.2.2_react@19.2.0 → use-callback-ref@1.3.3_@types_react@19.2.6_react@19.2.0}/node_modules/use-callback-ref/dist/es2015/useMergeRef.mjs +0 -0
- package/dist/node_modules/.pnpm/{use-callback-ref@1.3.3_@types_react@19.2.2_react@19.2.0 → use-callback-ref@1.3.3_@types_react@19.2.6_react@19.2.0}/node_modules/use-callback-ref/dist/es2015/useRef.cjs +0 -0
- package/dist/node_modules/.pnpm/{use-callback-ref@1.3.3_@types_react@19.2.2_react@19.2.0 → use-callback-ref@1.3.3_@types_react@19.2.6_react@19.2.0}/node_modules/use-callback-ref/dist/es2015/useRef.mjs +0 -0
- package/dist/node_modules/.pnpm/{use-sidecar@1.1.3_@types_react@19.2.2_react@19.2.0 → use-sidecar@1.1.3_@types_react@19.2.6_react@19.2.0}/node_modules/use-sidecar/dist/es2015/exports.cjs +0 -0
- package/dist/node_modules/.pnpm/{use-sidecar@1.1.3_@types_react@19.2.2_react@19.2.0 → use-sidecar@1.1.3_@types_react@19.2.6_react@19.2.0}/node_modules/use-sidecar/dist/es2015/exports.mjs +0 -0
- package/dist/node_modules/.pnpm/{use-sidecar@1.1.3_@types_react@19.2.2_react@19.2.0 → use-sidecar@1.1.3_@types_react@19.2.6_react@19.2.0}/node_modules/use-sidecar/dist/es2015/medium.cjs +0 -0
- package/dist/node_modules/.pnpm/{use-sidecar@1.1.3_@types_react@19.2.2_react@19.2.0 → use-sidecar@1.1.3_@types_react@19.2.6_react@19.2.0}/node_modules/use-sidecar/dist/es2015/medium.mjs +0 -0
- package/dist/shared/{stack.CbuN2zVV.d.ts → stack.CcI4sYJP.d.cts} +3 -3
- package/dist/shared/{stack.CbuN2zVV.d.cts → stack.CcI4sYJP.d.mts} +3 -3
- package/dist/shared/{stack.CbuN2zVV.d.mts → stack.CcI4sYJP.d.ts} +3 -3
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export { i as ChatInput, C as ChatInterface, e as ChatLayout, f as ChatLayoutProps, h as ChatMessage, g as ChatSidebar, j as ToolCallDisplay } from '../../../../shared/stack.DaOcgmrM.cjs';
|
|
2
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
3
|
+
import { FallbackProps } from 'react-error-boundary';
|
|
4
|
+
import 'ai';
|
|
5
|
+
import 'react';
|
|
6
|
+
|
|
7
|
+
interface ChatPageComponentProps {
|
|
8
|
+
conversationId?: string;
|
|
9
|
+
}
|
|
10
|
+
declare function ChatPageComponent({ conversationId }: ChatPageComponentProps): react_jsx_runtime.JSX.Element;
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Skeleton loading state for the chat page
|
|
14
|
+
*/
|
|
15
|
+
declare function ChatPageSkeleton(): react_jsx_runtime.JSX.Element;
|
|
16
|
+
|
|
17
|
+
declare function ChatLoading(): react_jsx_runtime.JSX.Element;
|
|
18
|
+
|
|
19
|
+
declare function DefaultError({ error }: FallbackProps): react_jsx_runtime.JSX.Element;
|
|
20
|
+
|
|
21
|
+
declare function ErrorPlaceholder({ title, message, }: {
|
|
22
|
+
title: string;
|
|
23
|
+
message: string;
|
|
24
|
+
}): react_jsx_runtime.JSX.Element;
|
|
25
|
+
|
|
26
|
+
declare function NotFoundPage({ message }: {
|
|
27
|
+
message?: string;
|
|
28
|
+
}): react_jsx_runtime.JSX.Element;
|
|
29
|
+
|
|
30
|
+
export { ChatLoading, ChatPageComponent, ChatPageSkeleton, DefaultError, ErrorPlaceholder, NotFoundPage };
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export { i as ChatInput, C as ChatInterface, e as ChatLayout, f as ChatLayoutProps, h as ChatMessage, g as ChatSidebar, j as ToolCallDisplay } from '../../../../shared/stack.DaOcgmrM.mjs';
|
|
2
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
3
|
+
import { FallbackProps } from 'react-error-boundary';
|
|
4
|
+
import 'ai';
|
|
5
|
+
import 'react';
|
|
6
|
+
|
|
7
|
+
interface ChatPageComponentProps {
|
|
8
|
+
conversationId?: string;
|
|
9
|
+
}
|
|
10
|
+
declare function ChatPageComponent({ conversationId }: ChatPageComponentProps): react_jsx_runtime.JSX.Element;
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Skeleton loading state for the chat page
|
|
14
|
+
*/
|
|
15
|
+
declare function ChatPageSkeleton(): react_jsx_runtime.JSX.Element;
|
|
16
|
+
|
|
17
|
+
declare function ChatLoading(): react_jsx_runtime.JSX.Element;
|
|
18
|
+
|
|
19
|
+
declare function DefaultError({ error }: FallbackProps): react_jsx_runtime.JSX.Element;
|
|
20
|
+
|
|
21
|
+
declare function ErrorPlaceholder({ title, message, }: {
|
|
22
|
+
title: string;
|
|
23
|
+
message: string;
|
|
24
|
+
}): react_jsx_runtime.JSX.Element;
|
|
25
|
+
|
|
26
|
+
declare function NotFoundPage({ message }: {
|
|
27
|
+
message?: string;
|
|
28
|
+
}): react_jsx_runtime.JSX.Element;
|
|
29
|
+
|
|
30
|
+
export { ChatLoading, ChatPageComponent, ChatPageSkeleton, DefaultError, ErrorPlaceholder, NotFoundPage };
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export { i as ChatInput, C as ChatInterface, e as ChatLayout, f as ChatLayoutProps, h as ChatMessage, g as ChatSidebar, j as ToolCallDisplay } from '../../../../shared/stack.DaOcgmrM.js';
|
|
2
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
3
|
+
import { FallbackProps } from 'react-error-boundary';
|
|
4
|
+
import 'ai';
|
|
5
|
+
import 'react';
|
|
6
|
+
|
|
7
|
+
interface ChatPageComponentProps {
|
|
8
|
+
conversationId?: string;
|
|
9
|
+
}
|
|
10
|
+
declare function ChatPageComponent({ conversationId }: ChatPageComponentProps): react_jsx_runtime.JSX.Element;
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Skeleton loading state for the chat page
|
|
14
|
+
*/
|
|
15
|
+
declare function ChatPageSkeleton(): react_jsx_runtime.JSX.Element;
|
|
16
|
+
|
|
17
|
+
declare function ChatLoading(): react_jsx_runtime.JSX.Element;
|
|
18
|
+
|
|
19
|
+
declare function DefaultError({ error }: FallbackProps): react_jsx_runtime.JSX.Element;
|
|
20
|
+
|
|
21
|
+
declare function ErrorPlaceholder({ title, message, }: {
|
|
22
|
+
title: string;
|
|
23
|
+
message: string;
|
|
24
|
+
}): react_jsx_runtime.JSX.Element;
|
|
25
|
+
|
|
26
|
+
declare function NotFoundPage({ message }: {
|
|
27
|
+
message?: string;
|
|
28
|
+
}): react_jsx_runtime.JSX.Element;
|
|
29
|
+
|
|
30
|
+
export { ChatLoading, ChatPageComponent, ChatPageSkeleton, DefaultError, ErrorPlaceholder, NotFoundPage };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export { ChatInterface } from '../../../../packages/better-stack/src/plugins/ai-chat/client/components/chat-interface.mjs';
|
|
2
|
+
export { ChatLayout } from '../../../../packages/better-stack/src/plugins/ai-chat/client/components/chat-layout.mjs';
|
|
3
|
+
export { ChatSidebar } from '../../../../packages/better-stack/src/plugins/ai-chat/client/components/chat-sidebar.mjs';
|
|
4
|
+
export { ChatMessage } from '../../../../packages/better-stack/src/plugins/ai-chat/client/components/chat-message.mjs';
|
|
5
|
+
export { ChatInput } from '../../../../packages/better-stack/src/plugins/ai-chat/client/components/chat-input.mjs';
|
|
6
|
+
export { ToolCallDisplay } from '../../../../packages/better-stack/src/plugins/ai-chat/client/components/tool-call-display.mjs';
|
|
7
|
+
export { ChatPageComponent } from '../../../../packages/better-stack/src/plugins/ai-chat/client/components/pages/chat-page.mjs';
|
|
8
|
+
export { ChatLoading } from '../../../../packages/better-stack/src/plugins/ai-chat/client/components/loading/index.mjs';
|
|
9
|
+
export { DefaultError } from '../../../../packages/better-stack/src/plugins/ai-chat/client/components/shared/default-error.mjs';
|
|
10
|
+
export { ErrorPlaceholder } from '../../../../packages/better-stack/src/plugins/ai-chat/client/components/shared/error-placeholder.mjs';
|
|
11
|
+
export { NotFoundPage } from '../../../../packages/better-stack/src/plugins/ai-chat/client/components/pages/404-page.mjs';
|
|
12
|
+
export { ChatPageSkeleton } from '../../../../packages/better-stack/src/plugins/ai-chat/client/components/loading/chat-page-skeleton.mjs';
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const chatHooks = require('../../../../packages/better-stack/src/plugins/ai-chat/client/hooks/chat-hooks.cjs');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
exports.useConversation = chatHooks.useConversation;
|
|
8
|
+
exports.useConversations = chatHooks.useConversations;
|
|
9
|
+
exports.useCreateConversation = chatHooks.useCreateConversation;
|
|
10
|
+
exports.useDeleteConversation = chatHooks.useDeleteConversation;
|
|
11
|
+
exports.useRenameConversation = chatHooks.useRenameConversation;
|
|
12
|
+
exports.useSuspenseConversation = chatHooks.useSuspenseConversation;
|
|
13
|
+
exports.useSuspenseConversations = chatHooks.useSuspenseConversations;
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import * as _tanstack_react_query from '@tanstack/react-query';
|
|
2
|
+
import { ConversationWithMessages } from '../../query-keys.cjs';
|
|
3
|
+
import { S as SerializedConversation } from '../../../../shared/stack.Be1QIHEn.cjs';
|
|
4
|
+
export { a as SerializedMessage } from '../../../../shared/stack.Be1QIHEn.cjs';
|
|
5
|
+
import '@btst/stack/plugins/api';
|
|
6
|
+
import 'zod/v4/core';
|
|
7
|
+
import 'zod';
|
|
8
|
+
import 'better-call';
|
|
9
|
+
import 'ai';
|
|
10
|
+
import '@btst/stack/plugins/client';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Options for the useConversations hook
|
|
14
|
+
*/
|
|
15
|
+
interface UseConversationsOptions {
|
|
16
|
+
/** Whether to enable the query (default: true) */
|
|
17
|
+
enabled?: boolean;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Result from the useConversations hook
|
|
21
|
+
*/
|
|
22
|
+
interface UseConversationsResult {
|
|
23
|
+
/** Array of conversations */
|
|
24
|
+
conversations: SerializedConversation[];
|
|
25
|
+
/** Whether the initial load is in progress */
|
|
26
|
+
isLoading: boolean;
|
|
27
|
+
/** Error if the query failed */
|
|
28
|
+
error: Error | null;
|
|
29
|
+
/** Function to refetch the conversations */
|
|
30
|
+
refetch: () => void;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Hook for fetching all conversations
|
|
34
|
+
*/
|
|
35
|
+
declare function useConversations(options?: UseConversationsOptions): UseConversationsResult;
|
|
36
|
+
/**
|
|
37
|
+
* Suspense variant of useConversations
|
|
38
|
+
*/
|
|
39
|
+
declare function useSuspenseConversations(): {
|
|
40
|
+
conversations: SerializedConversation[];
|
|
41
|
+
refetch: () => Promise<unknown>;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Options for the useConversation hook
|
|
45
|
+
*/
|
|
46
|
+
interface UseConversationOptions {
|
|
47
|
+
/** Whether to enable the query (default: true) */
|
|
48
|
+
enabled?: boolean;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Result from the useConversation hook
|
|
52
|
+
*/
|
|
53
|
+
interface UseConversationResult {
|
|
54
|
+
/** The conversation with messages, or null if not found */
|
|
55
|
+
conversation: ConversationWithMessages | null;
|
|
56
|
+
/** Whether the conversation is being loaded */
|
|
57
|
+
isLoading: boolean;
|
|
58
|
+
/** Error if the query failed */
|
|
59
|
+
error: Error | null;
|
|
60
|
+
/** Function to refetch the conversation */
|
|
61
|
+
refetch: () => void;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Hook for fetching a single conversation with messages
|
|
65
|
+
*/
|
|
66
|
+
declare function useConversation(id?: string, options?: UseConversationOptions): UseConversationResult;
|
|
67
|
+
/**
|
|
68
|
+
* Suspense variant of useConversation
|
|
69
|
+
*/
|
|
70
|
+
declare function useSuspenseConversation(id: string): {
|
|
71
|
+
conversation: ConversationWithMessages | null;
|
|
72
|
+
refetch: () => Promise<unknown>;
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* Hook for creating a new conversation
|
|
76
|
+
*/
|
|
77
|
+
declare function useCreateConversation(): _tanstack_react_query.UseMutationResult<SerializedConversation | null, Error, {
|
|
78
|
+
id?: string;
|
|
79
|
+
title?: string;
|
|
80
|
+
}, unknown>;
|
|
81
|
+
/**
|
|
82
|
+
* Hook for renaming a conversation
|
|
83
|
+
*/
|
|
84
|
+
declare function useRenameConversation(): _tanstack_react_query.UseMutationResult<SerializedConversation | null, Error, {
|
|
85
|
+
id: string;
|
|
86
|
+
title: string;
|
|
87
|
+
}, unknown>;
|
|
88
|
+
/**
|
|
89
|
+
* Hook for deleting a conversation
|
|
90
|
+
*/
|
|
91
|
+
declare function useDeleteConversation(): _tanstack_react_query.UseMutationResult<{
|
|
92
|
+
success: boolean;
|
|
93
|
+
}, Error, {
|
|
94
|
+
id: string;
|
|
95
|
+
}, unknown>;
|
|
96
|
+
|
|
97
|
+
export { ConversationWithMessages, SerializedConversation, useConversation, useConversations, useCreateConversation, useDeleteConversation, useRenameConversation, useSuspenseConversation, useSuspenseConversations };
|
|
98
|
+
export type { UseConversationOptions, UseConversationResult, UseConversationsOptions, UseConversationsResult };
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import * as _tanstack_react_query from '@tanstack/react-query';
|
|
2
|
+
import { ConversationWithMessages } from '../../query-keys.mjs';
|
|
3
|
+
import { S as SerializedConversation } from '../../../../shared/stack.Be1QIHEn.mjs';
|
|
4
|
+
export { a as SerializedMessage } from '../../../../shared/stack.Be1QIHEn.mjs';
|
|
5
|
+
import '@btst/stack/plugins/api';
|
|
6
|
+
import 'zod/v4/core';
|
|
7
|
+
import 'zod';
|
|
8
|
+
import 'better-call';
|
|
9
|
+
import 'ai';
|
|
10
|
+
import '@btst/stack/plugins/client';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Options for the useConversations hook
|
|
14
|
+
*/
|
|
15
|
+
interface UseConversationsOptions {
|
|
16
|
+
/** Whether to enable the query (default: true) */
|
|
17
|
+
enabled?: boolean;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Result from the useConversations hook
|
|
21
|
+
*/
|
|
22
|
+
interface UseConversationsResult {
|
|
23
|
+
/** Array of conversations */
|
|
24
|
+
conversations: SerializedConversation[];
|
|
25
|
+
/** Whether the initial load is in progress */
|
|
26
|
+
isLoading: boolean;
|
|
27
|
+
/** Error if the query failed */
|
|
28
|
+
error: Error | null;
|
|
29
|
+
/** Function to refetch the conversations */
|
|
30
|
+
refetch: () => void;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Hook for fetching all conversations
|
|
34
|
+
*/
|
|
35
|
+
declare function useConversations(options?: UseConversationsOptions): UseConversationsResult;
|
|
36
|
+
/**
|
|
37
|
+
* Suspense variant of useConversations
|
|
38
|
+
*/
|
|
39
|
+
declare function useSuspenseConversations(): {
|
|
40
|
+
conversations: SerializedConversation[];
|
|
41
|
+
refetch: () => Promise<unknown>;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Options for the useConversation hook
|
|
45
|
+
*/
|
|
46
|
+
interface UseConversationOptions {
|
|
47
|
+
/** Whether to enable the query (default: true) */
|
|
48
|
+
enabled?: boolean;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Result from the useConversation hook
|
|
52
|
+
*/
|
|
53
|
+
interface UseConversationResult {
|
|
54
|
+
/** The conversation with messages, or null if not found */
|
|
55
|
+
conversation: ConversationWithMessages | null;
|
|
56
|
+
/** Whether the conversation is being loaded */
|
|
57
|
+
isLoading: boolean;
|
|
58
|
+
/** Error if the query failed */
|
|
59
|
+
error: Error | null;
|
|
60
|
+
/** Function to refetch the conversation */
|
|
61
|
+
refetch: () => void;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Hook for fetching a single conversation with messages
|
|
65
|
+
*/
|
|
66
|
+
declare function useConversation(id?: string, options?: UseConversationOptions): UseConversationResult;
|
|
67
|
+
/**
|
|
68
|
+
* Suspense variant of useConversation
|
|
69
|
+
*/
|
|
70
|
+
declare function useSuspenseConversation(id: string): {
|
|
71
|
+
conversation: ConversationWithMessages | null;
|
|
72
|
+
refetch: () => Promise<unknown>;
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* Hook for creating a new conversation
|
|
76
|
+
*/
|
|
77
|
+
declare function useCreateConversation(): _tanstack_react_query.UseMutationResult<SerializedConversation | null, Error, {
|
|
78
|
+
id?: string;
|
|
79
|
+
title?: string;
|
|
80
|
+
}, unknown>;
|
|
81
|
+
/**
|
|
82
|
+
* Hook for renaming a conversation
|
|
83
|
+
*/
|
|
84
|
+
declare function useRenameConversation(): _tanstack_react_query.UseMutationResult<SerializedConversation | null, Error, {
|
|
85
|
+
id: string;
|
|
86
|
+
title: string;
|
|
87
|
+
}, unknown>;
|
|
88
|
+
/**
|
|
89
|
+
* Hook for deleting a conversation
|
|
90
|
+
*/
|
|
91
|
+
declare function useDeleteConversation(): _tanstack_react_query.UseMutationResult<{
|
|
92
|
+
success: boolean;
|
|
93
|
+
}, Error, {
|
|
94
|
+
id: string;
|
|
95
|
+
}, unknown>;
|
|
96
|
+
|
|
97
|
+
export { ConversationWithMessages, SerializedConversation, useConversation, useConversations, useCreateConversation, useDeleteConversation, useRenameConversation, useSuspenseConversation, useSuspenseConversations };
|
|
98
|
+
export type { UseConversationOptions, UseConversationResult, UseConversationsOptions, UseConversationsResult };
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import * as _tanstack_react_query from '@tanstack/react-query';
|
|
2
|
+
import { ConversationWithMessages } from '../../query-keys.js';
|
|
3
|
+
import { S as SerializedConversation } from '../../../../shared/stack.Be1QIHEn.js';
|
|
4
|
+
export { a as SerializedMessage } from '../../../../shared/stack.Be1QIHEn.js';
|
|
5
|
+
import '@btst/stack/plugins/api';
|
|
6
|
+
import 'zod/v4/core';
|
|
7
|
+
import 'zod';
|
|
8
|
+
import 'better-call';
|
|
9
|
+
import 'ai';
|
|
10
|
+
import '@btst/stack/plugins/client';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Options for the useConversations hook
|
|
14
|
+
*/
|
|
15
|
+
interface UseConversationsOptions {
|
|
16
|
+
/** Whether to enable the query (default: true) */
|
|
17
|
+
enabled?: boolean;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Result from the useConversations hook
|
|
21
|
+
*/
|
|
22
|
+
interface UseConversationsResult {
|
|
23
|
+
/** Array of conversations */
|
|
24
|
+
conversations: SerializedConversation[];
|
|
25
|
+
/** Whether the initial load is in progress */
|
|
26
|
+
isLoading: boolean;
|
|
27
|
+
/** Error if the query failed */
|
|
28
|
+
error: Error | null;
|
|
29
|
+
/** Function to refetch the conversations */
|
|
30
|
+
refetch: () => void;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Hook for fetching all conversations
|
|
34
|
+
*/
|
|
35
|
+
declare function useConversations(options?: UseConversationsOptions): UseConversationsResult;
|
|
36
|
+
/**
|
|
37
|
+
* Suspense variant of useConversations
|
|
38
|
+
*/
|
|
39
|
+
declare function useSuspenseConversations(): {
|
|
40
|
+
conversations: SerializedConversation[];
|
|
41
|
+
refetch: () => Promise<unknown>;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Options for the useConversation hook
|
|
45
|
+
*/
|
|
46
|
+
interface UseConversationOptions {
|
|
47
|
+
/** Whether to enable the query (default: true) */
|
|
48
|
+
enabled?: boolean;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Result from the useConversation hook
|
|
52
|
+
*/
|
|
53
|
+
interface UseConversationResult {
|
|
54
|
+
/** The conversation with messages, or null if not found */
|
|
55
|
+
conversation: ConversationWithMessages | null;
|
|
56
|
+
/** Whether the conversation is being loaded */
|
|
57
|
+
isLoading: boolean;
|
|
58
|
+
/** Error if the query failed */
|
|
59
|
+
error: Error | null;
|
|
60
|
+
/** Function to refetch the conversation */
|
|
61
|
+
refetch: () => void;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Hook for fetching a single conversation with messages
|
|
65
|
+
*/
|
|
66
|
+
declare function useConversation(id?: string, options?: UseConversationOptions): UseConversationResult;
|
|
67
|
+
/**
|
|
68
|
+
* Suspense variant of useConversation
|
|
69
|
+
*/
|
|
70
|
+
declare function useSuspenseConversation(id: string): {
|
|
71
|
+
conversation: ConversationWithMessages | null;
|
|
72
|
+
refetch: () => Promise<unknown>;
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* Hook for creating a new conversation
|
|
76
|
+
*/
|
|
77
|
+
declare function useCreateConversation(): _tanstack_react_query.UseMutationResult<SerializedConversation | null, Error, {
|
|
78
|
+
id?: string;
|
|
79
|
+
title?: string;
|
|
80
|
+
}, unknown>;
|
|
81
|
+
/**
|
|
82
|
+
* Hook for renaming a conversation
|
|
83
|
+
*/
|
|
84
|
+
declare function useRenameConversation(): _tanstack_react_query.UseMutationResult<SerializedConversation | null, Error, {
|
|
85
|
+
id: string;
|
|
86
|
+
title: string;
|
|
87
|
+
}, unknown>;
|
|
88
|
+
/**
|
|
89
|
+
* Hook for deleting a conversation
|
|
90
|
+
*/
|
|
91
|
+
declare function useDeleteConversation(): _tanstack_react_query.UseMutationResult<{
|
|
92
|
+
success: boolean;
|
|
93
|
+
}, Error, {
|
|
94
|
+
id: string;
|
|
95
|
+
}, unknown>;
|
|
96
|
+
|
|
97
|
+
export { ConversationWithMessages, SerializedConversation, useConversation, useConversations, useCreateConversation, useDeleteConversation, useRenameConversation, useSuspenseConversation, useSuspenseConversations };
|
|
98
|
+
export type { UseConversationOptions, UseConversationResult, UseConversationsOptions, UseConversationsResult };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { useConversation, useConversations, useCreateConversation, useDeleteConversation, useRenameConversation, useSuspenseConversation, useSuspenseConversations } from '../../../../packages/better-stack/src/plugins/ai-chat/client/hooks/chat-hooks.mjs';
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const plugin = require('../../../packages/better-stack/src/plugins/ai-chat/client/plugin.cjs');
|
|
4
|
+
const overrides = require('../../../packages/better-stack/src/plugins/ai-chat/client/overrides.cjs');
|
|
5
|
+
const chatInterface = require('../../../packages/better-stack/src/plugins/ai-chat/client/components/chat-interface.cjs');
|
|
6
|
+
const chatLayout = require('../../../packages/better-stack/src/plugins/ai-chat/client/components/chat-layout.cjs');
|
|
7
|
+
const chatSidebar = require('../../../packages/better-stack/src/plugins/ai-chat/client/components/chat-sidebar.cjs');
|
|
8
|
+
const chatMessage = require('../../../packages/better-stack/src/plugins/ai-chat/client/components/chat-message.cjs');
|
|
9
|
+
const chatInput = require('../../../packages/better-stack/src/plugins/ai-chat/client/components/chat-input.cjs');
|
|
10
|
+
const toolCallDisplay = require('../../../packages/better-stack/src/plugins/ai-chat/client/components/tool-call-display.cjs');
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
exports.aiChatClientPlugin = plugin.aiChatClientPlugin;
|
|
15
|
+
exports.DEFAULT_ALLOWED_FILE_TYPES = overrides.DEFAULT_ALLOWED_FILE_TYPES;
|
|
16
|
+
exports.ChatInterface = chatInterface.ChatInterface;
|
|
17
|
+
exports.ChatLayout = chatLayout.ChatLayout;
|
|
18
|
+
exports.ChatSidebar = chatSidebar.ChatSidebar;
|
|
19
|
+
exports.ChatMessage = chatMessage.ChatMessage;
|
|
20
|
+
exports.ChatInput = chatInput.ChatInput;
|
|
21
|
+
exports.ToolCallDisplay = toolCallDisplay.ToolCallDisplay;
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import * as _btst_stack_plugins_client from '@btst/stack/plugins/client';
|
|
2
|
+
import * as react from 'react';
|
|
3
|
+
import * as _btst_yar from '@btst/yar';
|
|
4
|
+
import { QueryClient } from '@tanstack/react-query';
|
|
5
|
+
import { S as SerializedConversation, a as SerializedMessage } from '../../../shared/stack.Be1QIHEn.cjs';
|
|
6
|
+
import { A as AiChatMode } from '../../../shared/stack.DaOcgmrM.cjs';
|
|
7
|
+
export { a as AiChatPluginOverrides, b as AllowedFileType, i as ChatInput, C as ChatInterface, e as ChatLayout, f as ChatLayoutProps, h as ChatMessage, g as ChatSidebar, D as DEFAULT_ALLOWED_FILE_TYPES, j as ToolCallDisplay, T as ToolCallProps, d as ToolCallRenderer, c as ToolCallState } from '../../../shared/stack.DaOcgmrM.cjs';
|
|
8
|
+
export { UIMessage } from 'ai';
|
|
9
|
+
import 'react/jsx-runtime';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Context passed to route hooks
|
|
13
|
+
*/
|
|
14
|
+
interface RouteContext {
|
|
15
|
+
/** Current route path */
|
|
16
|
+
path: string;
|
|
17
|
+
/** Route parameters (e.g., { id: "abc123" }) */
|
|
18
|
+
params?: Record<string, string>;
|
|
19
|
+
/** Whether rendering on server (true) or client (false) */
|
|
20
|
+
isSSR: boolean;
|
|
21
|
+
/** Additional context properties */
|
|
22
|
+
[key: string]: any;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Context passed to loader hooks
|
|
26
|
+
*/
|
|
27
|
+
interface LoaderContext {
|
|
28
|
+
/** Current route path */
|
|
29
|
+
path: string;
|
|
30
|
+
/** Route parameters (e.g., { id: "abc123" }) */
|
|
31
|
+
params?: Record<string, string>;
|
|
32
|
+
/** Whether rendering on server (true) or client (false) */
|
|
33
|
+
isSSR: boolean;
|
|
34
|
+
/** Base URL for API calls */
|
|
35
|
+
apiBaseURL: string;
|
|
36
|
+
/** Path where the API is mounted */
|
|
37
|
+
apiBasePath: string;
|
|
38
|
+
/** Optional headers for the request */
|
|
39
|
+
headers?: Headers;
|
|
40
|
+
/** Additional context properties */
|
|
41
|
+
[key: string]: any;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Configuration for AI Chat client plugin
|
|
45
|
+
*/
|
|
46
|
+
interface AiChatClientConfig {
|
|
47
|
+
/** Base URL for API calls (e.g., "http://localhost:3000") */
|
|
48
|
+
apiBaseURL: string;
|
|
49
|
+
/** Path where the API is mounted (e.g., "/api/data") */
|
|
50
|
+
apiBasePath: string;
|
|
51
|
+
/** Base URL of your site for SEO meta tags */
|
|
52
|
+
siteBaseURL: string;
|
|
53
|
+
/** Path where pages are mounted (e.g., "/pages") */
|
|
54
|
+
siteBasePath: string;
|
|
55
|
+
/** React Query client instance for caching */
|
|
56
|
+
queryClient: QueryClient;
|
|
57
|
+
/**
|
|
58
|
+
* Plugin mode - should match backend config
|
|
59
|
+
* - 'authenticated': Full chat with conversation history (default)
|
|
60
|
+
* - 'public': Simple widget mode, no persistence, no sidebar
|
|
61
|
+
* @default 'authenticated'
|
|
62
|
+
*/
|
|
63
|
+
mode?: AiChatMode;
|
|
64
|
+
/** Optional SEO configuration for meta tags */
|
|
65
|
+
seo?: {
|
|
66
|
+
/** Site name for Open Graph tags */
|
|
67
|
+
siteName?: string;
|
|
68
|
+
/** Default description */
|
|
69
|
+
description?: string;
|
|
70
|
+
/** Locale for Open Graph (e.g., "en_US") */
|
|
71
|
+
locale?: string;
|
|
72
|
+
/** Default image URL for social sharing */
|
|
73
|
+
defaultImage?: string;
|
|
74
|
+
};
|
|
75
|
+
/** Optional hooks for customizing behavior */
|
|
76
|
+
hooks?: AiChatClientHooks;
|
|
77
|
+
/** Optional headers for SSR (e.g., forwarding cookies) */
|
|
78
|
+
headers?: Headers;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Hooks for AI Chat client plugin
|
|
82
|
+
* All hooks are optional and allow consumers to customize behavior
|
|
83
|
+
*/
|
|
84
|
+
interface AiChatClientHooks {
|
|
85
|
+
/**
|
|
86
|
+
* Called before loading conversations list. Return false to cancel loading.
|
|
87
|
+
* @param context - Loader context with path, params, etc.
|
|
88
|
+
*/
|
|
89
|
+
beforeLoadConversations?: (context: LoaderContext) => Promise<boolean> | boolean;
|
|
90
|
+
/**
|
|
91
|
+
* Called after conversations are loaded. Return false to cancel further processing.
|
|
92
|
+
* @param conversations - Array of loaded conversations or null
|
|
93
|
+
* @param context - Loader context
|
|
94
|
+
*/
|
|
95
|
+
afterLoadConversations?: (conversations: SerializedConversation[] | null, context: LoaderContext) => Promise<boolean> | boolean;
|
|
96
|
+
/**
|
|
97
|
+
* Called before loading a single conversation. Return false to cancel loading.
|
|
98
|
+
* @param id - Conversation ID being loaded
|
|
99
|
+
* @param context - Loader context
|
|
100
|
+
*/
|
|
101
|
+
beforeLoadConversation?: (id: string, context: LoaderContext) => Promise<boolean> | boolean;
|
|
102
|
+
/**
|
|
103
|
+
* Called after a conversation is loaded. Return false to cancel further processing.
|
|
104
|
+
* @param conversation - Loaded conversation or null if not found
|
|
105
|
+
* @param id - Conversation ID that was requested
|
|
106
|
+
* @param context - Loader context
|
|
107
|
+
*/
|
|
108
|
+
afterLoadConversation?: (conversation: (SerializedConversation & {
|
|
109
|
+
messages: SerializedMessage[];
|
|
110
|
+
}) | null, id: string, context: LoaderContext) => Promise<boolean> | boolean;
|
|
111
|
+
/**
|
|
112
|
+
* Called when a loading error occurs
|
|
113
|
+
* @param error - The error that occurred
|
|
114
|
+
* @param context - Loader context
|
|
115
|
+
*/
|
|
116
|
+
onLoadError?: (error: Error, context: LoaderContext) => Promise<void> | void;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* AI Chat client plugin
|
|
120
|
+
* Provides routes, components, and React Query hooks for AI chat
|
|
121
|
+
*
|
|
122
|
+
* @param config - Configuration including queryClient, baseURL, and optional hooks
|
|
123
|
+
*/
|
|
124
|
+
declare const aiChatClientPlugin: (config: AiChatClientConfig) => _btst_stack_plugins_client.ClientPlugin<Record<string, never>, {
|
|
125
|
+
chat: {
|
|
126
|
+
(inputCtx_0?: _btst_yar.InputContext<"/chat", _btst_yar.RouteOptions> | undefined): {
|
|
127
|
+
PageComponent?: react.ComponentType<unknown> | undefined;
|
|
128
|
+
LoadingComponent?: react.ComponentType<unknown> | undefined;
|
|
129
|
+
ErrorComponent?: react.ComponentType<unknown> | undefined;
|
|
130
|
+
loader?: (() => Promise<void>) | undefined;
|
|
131
|
+
meta?: (() => ({
|
|
132
|
+
title: string;
|
|
133
|
+
name?: undefined;
|
|
134
|
+
content?: undefined;
|
|
135
|
+
property?: undefined;
|
|
136
|
+
} | {
|
|
137
|
+
name: string;
|
|
138
|
+
content: string;
|
|
139
|
+
title?: undefined;
|
|
140
|
+
property?: undefined;
|
|
141
|
+
} | {
|
|
142
|
+
property: string;
|
|
143
|
+
content: string;
|
|
144
|
+
title?: undefined;
|
|
145
|
+
name?: undefined;
|
|
146
|
+
})[]) | undefined;
|
|
147
|
+
extra?: (() => any) | undefined;
|
|
148
|
+
};
|
|
149
|
+
options: _btst_yar.RouteOptions | undefined;
|
|
150
|
+
path: "/chat";
|
|
151
|
+
meta: _btst_yar.RouteMeta | undefined;
|
|
152
|
+
};
|
|
153
|
+
}>;
|
|
154
|
+
|
|
155
|
+
export { aiChatClientPlugin };
|
|
156
|
+
export type { AiChatClientConfig, AiChatClientHooks, LoaderContext, RouteContext };
|