@flamingo-stack/openframe-frontend-core 0.0.508 → 0.0.509
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/chat-protocol/decode.d.ts +58 -0
- package/dist/chat-protocol/decode.d.ts.map +1 -0
- package/dist/chat-protocol/encode.d.ts +44 -0
- package/dist/chat-protocol/encode.d.ts.map +1 -0
- package/dist/chat-protocol/env-flag.d.ts +35 -0
- package/dist/chat-protocol/env-flag.d.ts.map +1 -0
- package/dist/chat-protocol/events.d.ts +216 -0
- package/dist/chat-protocol/events.d.ts.map +1 -0
- package/dist/chat-protocol/frames.d.ts +213 -0
- package/dist/chat-protocol/frames.d.ts.map +1 -0
- package/dist/chat-protocol/index.cjs +506 -0
- package/dist/chat-protocol/index.cjs.map +1 -0
- package/dist/chat-protocol/index.d.ts +18 -0
- package/dist/chat-protocol/index.d.ts.map +1 -0
- package/dist/chat-protocol/index.js +490 -0
- package/dist/chat-protocol/index.js.map +1 -0
- package/dist/chat-protocol/ip-normalize.d.ts +44 -0
- package/dist/chat-protocol/ip-normalize.d.ts.map +1 -0
- package/dist/chat-protocol/nats-decoder.d.ts +26 -0
- package/dist/chat-protocol/nats-decoder.d.ts.map +1 -0
- package/dist/{chunk-3SQ5KXHQ.cjs → chunk-2T4GTV25.cjs} +9 -9
- package/dist/{chunk-3SQ5KXHQ.cjs.map → chunk-2T4GTV25.cjs.map} +1 -1
- package/dist/{chunk-CWAOV2FK.cjs → chunk-3CGZPAGR.cjs} +3 -3
- package/dist/{chunk-CWAOV2FK.cjs.map → chunk-3CGZPAGR.cjs.map} +1 -1
- package/dist/{chunk-TLMJHMXJ.js → chunk-3QSR22IC.js} +12 -12
- package/dist/chunk-3QSR22IC.js.map +1 -0
- package/dist/{chunk-TWYNR4TZ.cjs → chunk-4G5TLHJD.cjs} +7141 -4799
- package/dist/chunk-4G5TLHJD.cjs.map +1 -0
- package/dist/{chunk-ADPMHWOE.js → chunk-72XAID7Y.js} +4 -4
- package/dist/{chunk-PAGKRNWK.js → chunk-7WZHBQ4J.js} +2 -2
- package/dist/{chunk-OCEKO5CW.js → chunk-AEELJC4N.js} +12106 -9764
- package/dist/chunk-AEELJC4N.js.map +1 -0
- package/dist/{chunk-Z42BGM6Q.cjs → chunk-BT2WWDFP.cjs} +5 -5
- package/dist/{chunk-Z42BGM6Q.cjs.map → chunk-BT2WWDFP.cjs.map} +1 -1
- package/dist/{chunk-7LEL3RIX.cjs → chunk-C7OY3PQP.cjs} +11 -11
- package/dist/{chunk-7LEL3RIX.cjs.map → chunk-C7OY3PQP.cjs.map} +1 -1
- package/dist/{chunk-RHGGEKPQ.cjs → chunk-CIOLOQKQ.cjs} +4 -4
- package/dist/{chunk-RHGGEKPQ.cjs.map → chunk-CIOLOQKQ.cjs.map} +1 -1
- package/dist/{chunk-TSZHM74B.js → chunk-DC2TKS7C.js} +2 -2
- package/dist/{chunk-M2GOR3XQ.cjs → chunk-DYPYR7FR.cjs} +87 -87
- package/dist/{chunk-M2GOR3XQ.cjs.map → chunk-DYPYR7FR.cjs.map} +1 -1
- package/dist/{chunk-I64ABCDX.js → chunk-I2B6X77L.js} +2 -2
- package/dist/{chunk-NIZDKTGL.cjs → chunk-K5MSCMDK.cjs} +37 -37
- package/dist/{chunk-NIZDKTGL.cjs.map → chunk-K5MSCMDK.cjs.map} +1 -1
- package/dist/{chunk-DTYRYB2N.js → chunk-K6QTZ7CZ.js} +2 -2
- package/dist/{chunk-4LTMXDUS.js → chunk-KBN7PMFT.js} +2 -2
- package/dist/{chunk-TBMV7I5N.js → chunk-KXZO2WZX.js} +2 -2
- package/dist/{chunk-QTYZMP6D.cjs → chunk-LBAKLT6T.cjs} +62 -62
- package/dist/chunk-LBAKLT6T.cjs.map +1 -0
- package/dist/{chunk-KEBYLU3U.js → chunk-LFUPI7VX.js} +2 -2
- package/dist/{chunk-LDTR4IVZ.cjs → chunk-M37PBG4N.cjs} +31 -31
- package/dist/{chunk-LDTR4IVZ.cjs.map → chunk-M37PBG4N.cjs.map} +1 -1
- package/dist/{chunk-WA7RR64F.js → chunk-PO5O654H.js} +6 -5
- package/dist/chunk-PO5O654H.js.map +1 -0
- package/dist/{chunk-WK4N5VBX.cjs → chunk-QJJISLPA.cjs} +28 -27
- package/dist/chunk-QJJISLPA.cjs.map +1 -0
- package/dist/{chunk-2F44PLTV.cjs → chunk-T7MCSA55.cjs} +26 -26
- package/dist/{chunk-2F44PLTV.cjs.map → chunk-T7MCSA55.cjs.map} +1 -1
- package/dist/{chunk-WJQHJD7J.js → chunk-TWSKTJHW.js} +2 -2
- package/dist/{chunk-ZSQHZYCO.cjs → chunk-UQDMJ6DH.cjs} +13 -13
- package/dist/{chunk-ZSQHZYCO.cjs.map → chunk-UQDMJ6DH.cjs.map} +1 -1
- package/dist/{chunk-TZRUCD56.js → chunk-V3ZAAFE3.js} +5 -5
- package/dist/{chunk-LRGHJPET.js → chunk-XGIFOHKE.js} +2 -2
- package/dist/{chunk-POOMO3PA.cjs → chunk-YQEPRYT5.cjs} +7 -7
- package/dist/{chunk-POOMO3PA.cjs.map → chunk-YQEPRYT5.cjs.map} +1 -1
- package/dist/components/case-studies/index.cjs +8 -8
- package/dist/components/case-studies/index.js +2 -2
- package/dist/components/chat/chat-message-enhanced.d.ts.map +1 -1
- package/dist/components/chat/chat-message-list.d.ts.map +1 -1
- package/dist/components/chat/hooks/index.d.ts +0 -1
- package/dist/components/chat/hooks/index.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-chat.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-chunk-catchup.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-nats-chat-adapter.d.ts +15 -48
- package/dist/components/chat/hooks/use-nats-chat-adapter.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-sse-chat-adapter.d.ts +10 -57
- package/dist/components/chat/hooks/use-sse-chat-adapter.d.ts.map +1 -1
- package/dist/components/chat/index.cjs +10 -2
- package/dist/components/chat/index.cjs.map +1 -1
- package/dist/components/chat/index.d.ts +1 -0
- package/dist/components/chat/index.d.ts.map +1 -1
- package/dist/components/chat/index.js +21 -13
- package/dist/components/chat/stream/chat-dialog-store.d.ts +184 -0
- package/dist/components/chat/stream/chat-dialog-store.d.ts.map +1 -0
- package/dist/components/chat/stream/chat-stream-reducer.d.ts +380 -0
- package/dist/components/chat/stream/chat-stream-reducer.d.ts.map +1 -0
- package/dist/components/chat/stream/delta-batcher.d.ts +51 -0
- package/dist/components/chat/stream/delta-batcher.d.ts.map +1 -0
- package/dist/components/chat/stream/index.d.ts +17 -0
- package/dist/components/chat/stream/index.d.ts.map +1 -0
- package/dist/components/chat/stream/message-mutations.d.ts +77 -0
- package/dist/components/chat/stream/message-mutations.d.ts.map +1 -0
- package/dist/components/chat/stream/use-chat-stream-reducer.d.ts +22 -0
- package/dist/components/chat/stream/use-chat-stream-reducer.d.ts.map +1 -0
- package/dist/components/chat/types/api.types.d.ts +1 -81
- package/dist/components/chat/types/api.types.d.ts.map +1 -1
- package/dist/components/chat/types/processing.types.d.ts +2 -93
- package/dist/components/chat/types/processing.types.d.ts.map +1 -1
- package/dist/components/chat/types/unified-chat-state.types.d.ts +15 -0
- package/dist/components/chat/types/unified-chat-state.types.d.ts.map +1 -1
- package/dist/components/chat/utils/extract-incomplete-message-state.d.ts +34 -6
- package/dist/components/chat/utils/extract-incomplete-message-state.d.ts.map +1 -1
- package/dist/components/chat/utils/history-merge.d.ts.map +1 -1
- package/dist/components/chat/utils/index.d.ts +2 -3
- package/dist/components/chat/utils/index.d.ts.map +1 -1
- package/dist/components/chat/utils/process-historical-messages.d.ts +59 -11
- package/dist/components/chat/utils/process-historical-messages.d.ts.map +1 -1
- package/dist/components/contact/index.cjs +3 -3
- package/dist/components/contact/index.js +2 -2
- package/dist/components/docs/index.cjs +5 -5
- package/dist/components/docs/index.js +4 -4
- package/dist/components/embeds/index.cjs +3 -3
- package/dist/components/embeds/index.js +2 -2
- package/dist/components/faq/index.cjs +3 -3
- package/dist/components/faq/index.js +2 -2
- package/dist/components/features/index.cjs +2 -2
- package/dist/components/features/index.js +1 -1
- package/dist/components/help-center-pages/index.cjs +22 -22
- package/dist/components/help-center-pages/index.js +13 -13
- package/dist/components/index.cjs +174 -132
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +65 -23
- package/dist/components/index.js.map +1 -1
- package/dist/components/meeting-scheduler/index.cjs +34 -34
- package/dist/components/meeting-scheduler/index.js +3 -3
- package/dist/components/navigation/index.cjs +2 -2
- package/dist/components/navigation/index.js +1 -1
- package/dist/components/onboarding-guides/index.cjs +5 -5
- package/dist/components/onboarding-guides/index.js +4 -4
- package/dist/components/onboarding-guides/onboarding-guide-detail-view.d.ts.map +1 -1
- package/dist/components/related-content/index.cjs +3 -3
- package/dist/components/related-content/index.js +2 -2
- package/dist/components/shared/product-release/release-detail-page.d.ts.map +1 -1
- package/dist/components/tickets/index.cjs +6 -6
- package/dist/components/tickets/index.js +5 -5
- package/dist/components/ui/index.cjs +44 -2
- package/dist/components/ui/index.cjs.map +1 -1
- package/dist/components/ui/index.d.ts +1 -2
- package/dist/components/ui/index.d.ts.map +1 -1
- package/dist/components/ui/index.js +55 -13
- package/dist/components/ui/markdown/base-components.d.ts +51 -0
- package/dist/components/ui/markdown/base-components.d.ts.map +1 -0
- package/dist/components/ui/markdown/engine.d.ts +99 -0
- package/dist/components/ui/markdown/engine.d.ts.map +1 -0
- package/dist/components/ui/markdown/heading-ids.d.ts +65 -0
- package/dist/components/ui/markdown/heading-ids.d.ts.map +1 -0
- package/dist/components/ui/markdown/index.d.ts +18 -0
- package/dist/components/ui/markdown/index.d.ts.map +1 -0
- package/dist/components/ui/markdown/mermaid-diagram.d.ts +79 -0
- package/dist/components/ui/markdown/mermaid-diagram.d.ts.map +1 -0
- package/dist/components/ui/markdown/rich/embed-overrides.d.ts +14 -0
- package/dist/components/ui/markdown/rich/embed-overrides.d.ts.map +1 -0
- package/dist/components/ui/markdown/rich/rich-markdown-renderer.d.ts +40 -0
- package/dist/components/ui/markdown/rich/rich-markdown-renderer.d.ts.map +1 -0
- package/dist/components/ui/markdown/rich/shortcodes.d.ts +8 -0
- package/dist/components/ui/markdown/rich/shortcodes.d.ts.map +1 -0
- package/dist/components/ui/markdown/sanitize.d.ts +153 -0
- package/dist/components/ui/markdown/sanitize.d.ts.map +1 -0
- package/dist/components/ui/markdown/simple-markdown-renderer.d.ts +23 -0
- package/dist/components/ui/markdown/simple-markdown-renderer.d.ts.map +1 -0
- package/dist/components/ui/markdown/streaming.d.ts +78 -0
- package/dist/components/ui/markdown/streaming.d.ts.map +1 -0
- package/dist/components/ui/markdown/text-size.d.ts +34 -0
- package/dist/components/ui/markdown/text-size.d.ts.map +1 -0
- package/dist/index.cjs +60 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +71 -13
- package/dist/utils/index.cjs +169 -40
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +162 -41
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/markdown-fences.d.ts +42 -0
- package/dist/utils/markdown-fences.d.ts.map +1 -0
- package/dist/utils/markdown-heading-id.d.ts +85 -0
- package/dist/utils/markdown-heading-id.d.ts.map +1 -0
- package/dist/utils/markdown-section-extractor.d.ts.map +1 -1
- package/package.json +7 -1
- package/src/chat-protocol/__tests__/__snapshots__/nats-decoder-golden.test.ts.snap +319 -0
- package/src/chat-protocol/__tests__/chat-protocol.test.ts +516 -0
- package/src/chat-protocol/__tests__/env-flag.test.ts +52 -0
- package/src/chat-protocol/__tests__/ip-normalize.test.ts +136 -0
- package/src/chat-protocol/__tests__/nats-decoder-golden.test.ts +237 -0
- package/src/chat-protocol/decode.ts +278 -0
- package/src/chat-protocol/encode.ts +71 -0
- package/src/chat-protocol/env-flag.ts +39 -0
- package/src/chat-protocol/events.ts +254 -0
- package/src/chat-protocol/frames.ts +245 -0
- package/src/chat-protocol/index.ts +21 -0
- package/src/chat-protocol/ip-normalize.ts +146 -0
- package/src/chat-protocol/nats-decoder.ts +264 -0
- package/src/components/chat/.chat-message-list.md +10 -6
- package/src/components/chat/__tests__/chat-message-list.test.tsx +450 -9
- package/src/components/chat/__tests__/chat-message-streaming-memo.test.tsx +207 -0
- package/src/components/chat/__tests__/chat-pending-turn.test.tsx +250 -0
- package/src/components/chat/chat-message-enhanced.tsx +122 -20
- package/src/components/chat/chat-message-list.tsx +515 -133
- package/src/components/chat/embeddable-chat.tsx +6 -0
- package/src/components/chat/hooks/.index.md +30 -33
- package/src/components/chat/hooks/.use-nats-chat-adapter.md +36 -55
- package/src/components/chat/hooks/__tests__/__snapshots__/conversation-id-persistence-golden.test.ts.snap +37 -0
- package/src/components/chat/hooks/__tests__/__snapshots__/sse-stream-golden.test.ts.snap +0 -0
- package/src/components/chat/hooks/__tests__/chunk-catchup-dialog-staleness.test.ts +92 -0
- package/src/components/chat/hooks/__tests__/conversation-id-persistence-golden.test.ts +438 -0
- package/src/components/chat/hooks/__tests__/sse-stream-golden.test.ts +318 -0
- package/src/components/chat/hooks/index.ts +0 -1
- package/src/components/chat/hooks/use-chat.ts +8 -0
- package/src/components/chat/hooks/use-chunk-catchup.ts +26 -1
- package/src/components/chat/hooks/use-nats-chat-adapter.ts +254 -825
- package/src/components/chat/hooks/use-sse-chat-adapter.ts +380 -684
- package/src/components/chat/index.ts +5 -0
- package/src/components/chat/stream/__tests__/__snapshots__/chat-stream-reducer-golden.test.ts.snap +944 -0
- package/src/components/chat/stream/__tests__/chat-dialog-store.test.ts +806 -0
- package/src/components/chat/stream/__tests__/chat-stream-reducer-golden.test.ts +467 -0
- package/src/components/chat/stream/__tests__/chat-stream-reducer.test.ts +1330 -0
- package/src/components/chat/stream/__tests__/delta-batcher.test.ts +255 -0
- package/src/components/chat/stream/__tests__/use-chat-stream-reducer.test.ts +105 -0
- package/src/components/chat/stream/chat-dialog-store.ts +536 -0
- package/src/components/chat/stream/chat-stream-reducer.ts +1928 -0
- package/src/components/chat/stream/delta-batcher.ts +168 -0
- package/src/components/chat/stream/index.ts +55 -0
- package/src/components/chat/stream/message-mutations.ts +340 -0
- package/src/components/chat/stream/use-chat-stream-reducer.ts +126 -0
- package/src/components/chat/thinking-display.tsx +1 -1
- package/src/components/chat/types/.api.types.md +39 -49
- package/src/components/chat/types/.processing.types.md +29 -58
- package/src/components/chat/types/.unified-chat-state.types.md +2 -2
- package/src/components/chat/types/api.types.ts +6 -73
- package/src/components/chat/types/processing.types.ts +11 -53
- package/src/components/chat/types/unified-chat-state.types.ts +16 -0
- package/src/components/chat/utils/.extract-incomplete-message-state.md +21 -3
- package/src/components/chat/utils/.history-merge.md +44 -3
- package/src/components/chat/utils/.index.md +31 -40
- package/src/components/chat/utils/__tests__/__snapshots__/process-historical-messages-golden.test.ts.snap +420 -0
- package/src/components/chat/utils/__tests__/__snapshots__/segment-accumulator-golden.test.ts.snap +605 -0
- package/src/components/chat/utils/__tests__/extract-incomplete-message-state.test.ts +106 -0
- package/src/components/chat/utils/__tests__/history-merge.test.ts +160 -0
- package/src/components/chat/utils/__tests__/process-historical-messages-approvals.test.ts +61 -0
- package/src/components/chat/utils/__tests__/process-historical-messages-golden.test.ts +394 -0
- package/src/components/chat/utils/__tests__/segment-accumulator-golden.test.ts +270 -0
- package/src/components/chat/utils/extract-incomplete-message-state.ts +93 -6
- package/src/components/chat/utils/history-merge.ts +85 -5
- package/src/components/chat/utils/index.ts +5 -8
- package/src/components/chat/utils/process-historical-messages.ts +361 -385
- package/src/components/onboarding-guides/onboarding-guide-detail-view.tsx +22 -4
- package/src/components/shared/legal-document/legal-document-page.tsx +1 -1
- package/src/components/shared/product-release/release-detail-page.tsx +19 -4
- package/src/components/ui/__tests__/__snapshots__/markdown-parity.test.tsx.snap +2420 -0
- package/src/components/ui/__tests__/markdown-parity.test.tsx +2540 -0
- package/src/components/ui/index.ts +1 -2
- package/src/components/ui/markdown/__tests__/mermaid-security.test.ts +176 -0
- package/src/components/ui/markdown/__tests__/mermaid-stale-render.test.tsx +151 -0
- package/src/components/ui/markdown/__tests__/sanitize-invariant.test.ts +354 -0
- package/src/components/ui/markdown/__tests__/sanitize-render.test.tsx +118 -0
- package/src/components/ui/markdown/__tests__/streaming.test.tsx +436 -0
- package/src/components/ui/markdown/base-components.tsx +360 -0
- package/src/components/ui/markdown/engine.tsx +315 -0
- package/src/components/ui/markdown/heading-ids.ts +239 -0
- package/src/components/ui/markdown/index.ts +49 -0
- package/src/components/ui/markdown/mermaid-diagram.tsx +323 -0
- package/src/components/ui/markdown/rich/embed-overrides.tsx +199 -0
- package/src/components/ui/markdown/rich/rich-markdown-renderer.tsx +184 -0
- package/src/components/ui/markdown/rich/shortcodes.ts +170 -0
- package/src/components/ui/markdown/sanitize.ts +3584 -0
- package/src/components/ui/markdown/simple-markdown-renderer.tsx +28 -0
- package/src/components/ui/markdown/streaming.ts +390 -0
- package/src/components/ui/markdown/text-size.ts +106 -0
- package/src/components/ui/release-changelog-section.tsx +1 -1
- package/src/components/ui/ticket-info-section.tsx +1 -1
- package/src/utils/index.ts +1 -0
- package/src/utils/markdown-fences.ts +127 -0
- package/src/utils/markdown-heading-id.ts +348 -0
- package/src/utils/markdown-section-extractor.ts +41 -56
- package/dist/chunk-OCEKO5CW.js.map +0 -1
- package/dist/chunk-QTYZMP6D.cjs.map +0 -1
- package/dist/chunk-TLMJHMXJ.js.map +0 -1
- package/dist/chunk-TWYNR4TZ.cjs.map +0 -1
- package/dist/chunk-WA7RR64F.js.map +0 -1
- package/dist/chunk-WK4N5VBX.cjs.map +0 -1
- package/dist/components/chat/hooks/use-realtime-chunk-processor.d.ts +0 -6
- package/dist/components/chat/hooks/use-realtime-chunk-processor.d.ts.map +0 -1
- package/dist/components/chat/utils/chunk-parser.d.ts +0 -25
- package/dist/components/chat/utils/chunk-parser.d.ts.map +0 -1
- package/dist/components/ui/rich-markdown-renderer.d.ts +0 -34
- package/dist/components/ui/rich-markdown-renderer.d.ts.map +0 -1
- package/dist/components/ui/simple-markdown-renderer.d.ts +0 -73
- package/dist/components/ui/simple-markdown-renderer.d.ts.map +0 -1
- package/src/components/chat/hooks/.use-realtime-chunk-processor.md +0 -77
- package/src/components/chat/hooks/use-realtime-chunk-processor.ts +0 -489
- package/src/components/chat/utils/.chunk-parser.md +0 -62
- package/src/components/chat/utils/chunk-parser.ts +0 -262
- package/src/components/ui/.simple-markdown-renderer.md +0 -52
- package/src/components/ui/rich-markdown-renderer.tsx +0 -1223
- package/src/components/ui/simple-markdown-renderer.tsx +0 -964
- /package/dist/{chunk-ADPMHWOE.js.map → chunk-72XAID7Y.js.map} +0 -0
- /package/dist/{chunk-PAGKRNWK.js.map → chunk-7WZHBQ4J.js.map} +0 -0
- /package/dist/{chunk-TSZHM74B.js.map → chunk-DC2TKS7C.js.map} +0 -0
- /package/dist/{chunk-I64ABCDX.js.map → chunk-I2B6X77L.js.map} +0 -0
- /package/dist/{chunk-DTYRYB2N.js.map → chunk-K6QTZ7CZ.js.map} +0 -0
- /package/dist/{chunk-4LTMXDUS.js.map → chunk-KBN7PMFT.js.map} +0 -0
- /package/dist/{chunk-TBMV7I5N.js.map → chunk-KXZO2WZX.js.map} +0 -0
- /package/dist/{chunk-KEBYLU3U.js.map → chunk-LFUPI7VX.js.map} +0 -0
- /package/dist/{chunk-WJQHJD7J.js.map → chunk-TWSKTJHW.js.map} +0 -0
- /package/dist/{chunk-TZRUCD56.js.map → chunk-V3ZAAFE3.js.map} +0 -0
- /package/dist/{chunk-LRGHJPET.js.map → chunk-XGIFOHKE.js.map} +0 -0
|
@@ -88,7 +88,9 @@ import {
|
|
|
88
88
|
ContextMenuRow,
|
|
89
89
|
CustomerInterviewCard,
|
|
90
90
|
CustomerInterviewCardSkeleton,
|
|
91
|
+
DEFAULT_DIALOG_SIDE,
|
|
91
92
|
DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID,
|
|
93
|
+
DEFAULT_MAX_REDUCERS,
|
|
92
94
|
DataRoomDocCard,
|
|
93
95
|
DataRoomDocCardSkeleton,
|
|
94
96
|
DialogListItem,
|
|
@@ -114,6 +116,7 @@ import {
|
|
|
114
116
|
ICON_REGISTRY,
|
|
115
117
|
InvestorUpdateCard,
|
|
116
118
|
InvestorUpdateCardSkeleton,
|
|
119
|
+
MAX_PENDING_RETAIN_KEYS,
|
|
117
120
|
MESSAGE_ROLE,
|
|
118
121
|
MESSAGE_TYPE,
|
|
119
122
|
MemoizedChatMessageEnhanced,
|
|
@@ -180,8 +183,13 @@ import {
|
|
|
180
183
|
clickupTaskUrl,
|
|
181
184
|
computeHistoryPrepend,
|
|
182
185
|
computeIsNewTab,
|
|
186
|
+
createChatDialogStore,
|
|
187
|
+
createChatStreamReducer,
|
|
188
|
+
createDeltaBatcher,
|
|
189
|
+
createEmptyTurnMeta,
|
|
183
190
|
createMessageSegmentAccumulator,
|
|
184
191
|
decideNewTab,
|
|
192
|
+
decodeHistoricalMessageData,
|
|
185
193
|
defaultBuildProductReleaseCardProps,
|
|
186
194
|
defaultTableIdForDocumentType,
|
|
187
195
|
escapeMarkdownInline,
|
|
@@ -190,7 +198,7 @@ import {
|
|
|
190
198
|
extractEntityIdFilter,
|
|
191
199
|
extractErrorMessages,
|
|
192
200
|
extractIncompleteMessageState,
|
|
193
|
-
|
|
201
|
+
extractIncompleteTailState,
|
|
194
202
|
fetchEmptyStateConfig,
|
|
195
203
|
fetchSlashCommands,
|
|
196
204
|
flattenAssistantContent,
|
|
@@ -210,11 +218,8 @@ import {
|
|
|
210
218
|
hideOnError,
|
|
211
219
|
historicalToUnified,
|
|
212
220
|
interleave,
|
|
213
|
-
isControlChunk,
|
|
214
221
|
isCrossOriginUrl,
|
|
215
|
-
isErrorChunk,
|
|
216
222
|
isHistoricalUserTurn,
|
|
217
|
-
isMetadataChunk,
|
|
218
223
|
isModifierClick,
|
|
219
224
|
isQuickActionIconSpec,
|
|
220
225
|
isStructuredContent,
|
|
@@ -225,7 +230,6 @@ import {
|
|
|
225
230
|
normalizeContent,
|
|
226
231
|
normalizeHistoricalMessageData,
|
|
227
232
|
normalizeIconKey,
|
|
228
|
-
parseChunkToAction,
|
|
229
233
|
parseScrollAnchor,
|
|
230
234
|
parseWireCommandOverride,
|
|
231
235
|
processHistoricalMessages,
|
|
@@ -252,6 +256,7 @@ import {
|
|
|
252
256
|
useChatAttachments,
|
|
253
257
|
useChatCardItem,
|
|
254
258
|
useChatIdentity,
|
|
259
|
+
useChatStreamReducer,
|
|
255
260
|
useChunkCatchup,
|
|
256
261
|
useCloseOnNavigation,
|
|
257
262
|
useCollapsible,
|
|
@@ -261,14 +266,13 @@ import {
|
|
|
261
266
|
useNatsChatAdapter,
|
|
262
267
|
useNatsDialogSubscription,
|
|
263
268
|
useProxiedImageUrl,
|
|
264
|
-
useRealtimeChunkProcessor,
|
|
265
269
|
useSSE,
|
|
266
270
|
useScriptedStream,
|
|
267
271
|
useSlashCommandRegistry,
|
|
268
272
|
useSlashCommands,
|
|
269
273
|
useSseChatAdapter,
|
|
270
274
|
useUnifiedChat
|
|
271
|
-
} from "../../chunk-
|
|
275
|
+
} from "../../chunk-AEELJC4N.js";
|
|
272
276
|
import "../../chunk-7EUIW46X.js";
|
|
273
277
|
import "../../chunk-LXC6P2EO.js";
|
|
274
278
|
import "../../chunk-EL5YVPD5.js";
|
|
@@ -381,7 +385,9 @@ export {
|
|
|
381
385
|
ContextMenuRow,
|
|
382
386
|
CustomerInterviewCard,
|
|
383
387
|
CustomerInterviewCardSkeleton,
|
|
388
|
+
DEFAULT_DIALOG_SIDE,
|
|
384
389
|
DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID,
|
|
390
|
+
DEFAULT_MAX_REDUCERS,
|
|
385
391
|
DataRoomDocCard,
|
|
386
392
|
DataRoomDocCardSkeleton,
|
|
387
393
|
DialogListItem,
|
|
@@ -407,6 +413,7 @@ export {
|
|
|
407
413
|
ICON_REGISTRY,
|
|
408
414
|
InvestorUpdateCard,
|
|
409
415
|
InvestorUpdateCardSkeleton,
|
|
416
|
+
MAX_PENDING_RETAIN_KEYS,
|
|
410
417
|
MESSAGE_ROLE,
|
|
411
418
|
MESSAGE_TYPE,
|
|
412
419
|
MessageSegmentAccumulator,
|
|
@@ -475,8 +482,13 @@ export {
|
|
|
475
482
|
clickupTaskUrl,
|
|
476
483
|
computeHistoryPrepend,
|
|
477
484
|
computeIsNewTab,
|
|
485
|
+
createChatDialogStore,
|
|
486
|
+
createChatStreamReducer,
|
|
487
|
+
createDeltaBatcher,
|
|
488
|
+
createEmptyTurnMeta,
|
|
478
489
|
createMessageSegmentAccumulator,
|
|
479
490
|
decideNewTab,
|
|
491
|
+
decodeHistoricalMessageData,
|
|
480
492
|
defaultBuildProductReleaseCardProps,
|
|
481
493
|
defaultTableIdForDocumentType,
|
|
482
494
|
escapeMarkdownInline,
|
|
@@ -485,7 +497,7 @@ export {
|
|
|
485
497
|
extractEntityIdFilter,
|
|
486
498
|
extractErrorMessages,
|
|
487
499
|
extractIncompleteMessageState,
|
|
488
|
-
|
|
500
|
+
extractIncompleteTailState,
|
|
489
501
|
fetchEmptyStateConfig,
|
|
490
502
|
fetchSlashCommands,
|
|
491
503
|
flattenAssistantContent,
|
|
@@ -507,11 +519,8 @@ export {
|
|
|
507
519
|
hideOnError,
|
|
508
520
|
historicalToUnified,
|
|
509
521
|
interleave,
|
|
510
|
-
isControlChunk,
|
|
511
522
|
isCrossOriginUrl,
|
|
512
|
-
isErrorChunk,
|
|
513
523
|
isHistoricalUserTurn,
|
|
514
|
-
isMetadataChunk,
|
|
515
524
|
isModifierClick,
|
|
516
525
|
isQuickActionIconSpec,
|
|
517
526
|
isStructuredContent,
|
|
@@ -522,7 +531,6 @@ export {
|
|
|
522
531
|
normalizeContent,
|
|
523
532
|
normalizeHistoricalMessageData,
|
|
524
533
|
normalizeIconKey,
|
|
525
|
-
parseChunkToAction,
|
|
526
534
|
parseScrollAnchor,
|
|
527
535
|
parseWireCommandOverride,
|
|
528
536
|
processHistoricalMessages,
|
|
@@ -550,6 +558,7 @@ export {
|
|
|
550
558
|
useChatAttachments,
|
|
551
559
|
useChatCardItem,
|
|
552
560
|
useChatIdentity,
|
|
561
|
+
useChatStreamReducer,
|
|
553
562
|
useChunkCatchup,
|
|
554
563
|
useCloseOnNavigation,
|
|
555
564
|
useCollapsible,
|
|
@@ -560,7 +569,6 @@ export {
|
|
|
560
569
|
useNatsChatAdapter,
|
|
561
570
|
useNatsDialogSubscription,
|
|
562
571
|
useProxiedImageUrl,
|
|
563
|
-
useRealtimeChunkProcessor,
|
|
564
572
|
useSSE,
|
|
565
573
|
useScriptedStream,
|
|
566
574
|
useSlashCommandRegistry,
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* createChatDialogStore — framework-free registry of `ChatStreamReducer`
|
|
3
|
+
* instances keyed by `(dialogId, side)`. Reducer state PERSISTS across
|
|
4
|
+
* component unmounts (the store outlives React), and the store is the
|
|
5
|
+
* `useSyncExternalStore` source for the `useChatStreamReducer` wrapper.
|
|
6
|
+
*
|
|
7
|
+
* CROSS-SIDE PROJECTION: exactly two operations fan out across sides of the
|
|
8
|
+
* same dialogId —
|
|
9
|
+
* 1. approval RESOLUTION by requestId (`approval-resolved` events), and
|
|
10
|
+
* 2. tool-execution MERGE by execId (`tool-execution` events)
|
|
11
|
+
* — implemented as idempotent pure projections over the other side's state
|
|
12
|
+
* (recomputed from state, never re-injected into the other side's seq
|
|
13
|
+
* stream; per-side seq gates stay untouched). Everything else — text,
|
|
14
|
+
* thinking, participant rows — is strictly per-side.
|
|
15
|
+
*
|
|
16
|
+
* LIFECYCLE / MEMORY: the reducer map is LRU-capped (`maxReducers`, default
|
|
17
|
+
* `DEFAULT_MAX_REDUCERS`) and evicted through the same path as `remove()`.
|
|
18
|
+
* Without a cap an agent cycling hundreds of dialogs would retain a reducer
|
|
19
|
+
* (thread + accumulator) per dialog for the process's lifetime; under SSR,
|
|
20
|
+
* where the store is module-scoped, that growth is shared across every
|
|
21
|
+
* request. `getSnapshot` is PURE — it never creates an entry — and
|
|
22
|
+
* `getServerSnapshot` always returns the shared frozen `EMPTY_STATE`.
|
|
23
|
+
*
|
|
24
|
+
* EVICTION SAFETY (LRU recency alone is NOT liveness):
|
|
25
|
+
* 1. RETAINED keys are never evicted. `retain(dialogId, side)` returns a
|
|
26
|
+
* release fn; the `useChatStreamReducer` hook calls it for as long as it
|
|
27
|
+
* is mounted, so a quiet-but-visible panel can't be dropped just because
|
|
28
|
+
* ten other keys were touched. NON-React hosts must call it too.
|
|
29
|
+
* Because the hook retains in an EFFECT but takes its reducer during
|
|
30
|
+
* RENDER, a key created by a public `getReducer` is protected from
|
|
31
|
+
* creation until its FIRST `retain()` (bounded by
|
|
32
|
+
* `MAX_PENDING_RETAIN_KEYS`) — see `pendingRetain`.
|
|
33
|
+
* 2. A reducer whose `streamingPhase !== 'idle'` is never evicted — dropping
|
|
34
|
+
* mid-turn would recreate an EMPTY reducer on the next `getReducer`
|
|
35
|
+
* while the host's seq cursor still says "caught up", i.e. the thread
|
|
36
|
+
* visually vanishes with no path back.
|
|
37
|
+
* 3. Eviction hands the host the dropped instance's PARKED state
|
|
38
|
+
* (`onEvict(..., { messages, approvalStatuses, lastAppliedSeq,
|
|
39
|
+
* pendingEchoes })`). A recreated reducer is pristine, so re-seeding
|
|
40
|
+
* messages alone would
|
|
41
|
+
* resurrect resolved approvals as actionable and reset the seq gate to
|
|
42
|
+
* `-Infinity`; the parked payload is what makes the round-trip lossless.
|
|
43
|
+
* 4. Eviction NEVER notifies synchronously. `getReducer` is called during
|
|
44
|
+
* render (by the hook), and notifying there means updating other
|
|
45
|
+
* components mid-render. The notify is deferred to a microtask.
|
|
46
|
+
*/
|
|
47
|
+
import { type ChatReducerState, type ChatStreamReducer, type ChatStreamReducerOptions, type PendingEcho } from './chat-stream-reducer';
|
|
48
|
+
import type { ChatStreamEvent } from '../../../chat-protocol/events';
|
|
49
|
+
export type ChatDialogSide = string;
|
|
50
|
+
/** Factory for a key's reducer options, consulted ONCE at creation. A plain
|
|
51
|
+
* `() => options` thunk remains assignable. */
|
|
52
|
+
export type CreateReducerOptionsFn = (dialogId: string, side: ChatDialogSide) => ChatStreamReducerOptions;
|
|
53
|
+
export interface ChatDialogStore {
|
|
54
|
+
/** Create-or-get the reducer for `(dialogId, side)`. `createOptions` is
|
|
55
|
+
* consulted ONLY when the instance is first created. */
|
|
56
|
+
getReducer(dialogId: string, side?: ChatDialogSide, createOptions?: CreateReducerOptionsFn): ChatStreamReducer;
|
|
57
|
+
/** Apply one event to a side, then fan out the cross-side projections to
|
|
58
|
+
* the other sides of the same dialog. */
|
|
59
|
+
apply(dialogId: string, side: ChatDialogSide, event: ChatStreamEvent): void;
|
|
60
|
+
/** Run adapter commands against a reducer; subscribers are notified. */
|
|
61
|
+
mutate<T>(dialogId: string, side: ChatDialogSide, fn: (reducer: ChatStreamReducer) => T): T;
|
|
62
|
+
subscribe(listener: () => void): () => void;
|
|
63
|
+
/**
|
|
64
|
+
* Referentially-stable snapshot for `useSyncExternalStore`. PURE — an
|
|
65
|
+
* unknown key returns the shared frozen `EMPTY_STATE` rather than
|
|
66
|
+
* creating a reducer (a create-on-read would let SSR renders accumulate
|
|
67
|
+
* reducers in a process-global map, and would make React's snapshot read
|
|
68
|
+
* a mutation).
|
|
69
|
+
*/
|
|
70
|
+
getSnapshot(dialogId: string, side?: ChatDialogSide): ChatReducerState;
|
|
71
|
+
/** `useSyncExternalStore`'s server getter — always `EMPTY_STATE`. There is
|
|
72
|
+
* no per-request store on the server, so a live thread cannot be rendered
|
|
73
|
+
* server-side; the client hydrates from the real reducer. */
|
|
74
|
+
getServerSnapshot(): ChatReducerState;
|
|
75
|
+
/** Drop a side's reducer (or every side of the dialog when omitted). */
|
|
76
|
+
remove(dialogId: string, side?: ChatDialogSide): void;
|
|
77
|
+
/**
|
|
78
|
+
* PIN `(dialogId, side)` against LRU eviction while a consumer is live.
|
|
79
|
+
* Returns the release fn (idempotent; refcounted, so nested retains are
|
|
80
|
+
* safe). Creation is NOT implied — retaining an absent key simply means the
|
|
81
|
+
* key is protected once it exists.
|
|
82
|
+
*/
|
|
83
|
+
retain(dialogId: string, side?: ChatDialogSide): () => void;
|
|
84
|
+
/**
|
|
85
|
+
* POLICY retain: keep exactly `keys` pinned by this store-level set and
|
|
86
|
+
* release every key the set previously pinned. Independent of the refcounted
|
|
87
|
+
* `retain()` handles a host's components hold — the two compose.
|
|
88
|
+
*
|
|
89
|
+
* Exists because "retain this set, release the rest" is generic store
|
|
90
|
+
* policy that every multi-panel host otherwise re-derives (diffing its own
|
|
91
|
+
* key list against a map of release fns). Retains BEFORE releasing, so a key
|
|
92
|
+
* present in both the old and the new set never momentarily drops to zero
|
|
93
|
+
* retains and becomes evictable mid-swap.
|
|
94
|
+
*/
|
|
95
|
+
setRetained(keys: Array<{
|
|
96
|
+
dialogId: string;
|
|
97
|
+
side?: ChatDialogSide;
|
|
98
|
+
}>): void;
|
|
99
|
+
}
|
|
100
|
+
export declare const DEFAULT_DIALOG_SIDE: ChatDialogSide;
|
|
101
|
+
/** Most-recently-used reducer keys retained before eviction. Ten covers
|
|
102
|
+
* every realistic multi-panel / dialog-switching session while bounding an
|
|
103
|
+
* agent that cycles hundreds of dialogs. */
|
|
104
|
+
export declare const DEFAULT_MAX_REDUCERS = 10;
|
|
105
|
+
/**
|
|
106
|
+
* Hard cap on keys held in the "created by `getReducer`, `retain()` still
|
|
107
|
+
* pending" protection set — the ONLY thing bounding the map while retains are
|
|
108
|
+
* outstanding, since that protection ends at the retain rather than on a timer.
|
|
109
|
+
*
|
|
110
|
+
* Deliberately far above `maxReducers`: a host may legitimately mount MORE
|
|
111
|
+
* panels than the LRU cap (once their effects run, retained keys already let
|
|
112
|
+
* the map exceed it), so capping the pending set at `maxReducers` would blank
|
|
113
|
+
* exactly the panels round 10 fixed. It is a backstop against a caller that
|
|
114
|
+
* reads a reducer once and drops it — or a concurrent render React discards
|
|
115
|
+
* before any effect runs — not a per-commit budget. Past it, the oldest pending
|
|
116
|
+
* key falls through to ordinary LRU.
|
|
117
|
+
*/
|
|
118
|
+
export declare const MAX_PENDING_RETAIN_KEYS = 256;
|
|
119
|
+
export interface CreateChatDialogStoreOptions {
|
|
120
|
+
/** LRU cap on retained reducers (keys are `(dialogId, side)` pairs).
|
|
121
|
+
* Values < 1 are clamped to 1. Default `DEFAULT_MAX_REDUCERS`. */
|
|
122
|
+
maxReducers?: number;
|
|
123
|
+
/**
|
|
124
|
+
* Options applied to any reducer this store creates WITHOUT an explicit
|
|
125
|
+
* per-call `createOptions` — i.e. every reducer first materialized by
|
|
126
|
+
* `apply()` or `mutate()`. Hosts with non-default reducer semantics
|
|
127
|
+
* (`ownEchoIncludesAdmin`, `selfUserId`, approve/reject `callbacks`, …)
|
|
128
|
+
* MUST set this: creation options are consulted once, so a bare
|
|
129
|
+
* apply-created instance would keep those semantics missing for its whole
|
|
130
|
+
* lifetime, including for a later `getReducer(..., options)` caller.
|
|
131
|
+
*/
|
|
132
|
+
defaultCreateOptions?: CreateReducerOptionsFn;
|
|
133
|
+
/**
|
|
134
|
+
* Called when LRU eviction actually DROPS a key. The store knows this
|
|
135
|
+
* exactly; without publishing it, hosts are left inferring eviction by
|
|
136
|
+
* comparing reducer OBJECT IDENTITY across `getReducer` calls and then
|
|
137
|
+
* suppressing the "pristine empty" snapshot that a silently-recreated
|
|
138
|
+
* reducer returns — archaeology about a fact this callback states outright.
|
|
139
|
+
*
|
|
140
|
+
* Fires only for LRU eviction. Host-initiated `remove()` needs no
|
|
141
|
+
* notification: the caller already knows which key it dropped.
|
|
142
|
+
*
|
|
143
|
+
* Called AFTER the key is gone, from `getReducer` (i.e. potentially during a
|
|
144
|
+
* React render) — treat it as a "schedule a refetch/rehydrate" signal, not a
|
|
145
|
+
* place to set state synchronously.
|
|
146
|
+
*
|
|
147
|
+
* `parked` carries the dropped reducer's non-refetchable state so the host
|
|
148
|
+
* can restore it on the recreated instance (`initializeWithState(messages,
|
|
149
|
+
* { approvalStatuses, lastAppliedSeq, pendingEchoes })`). Refetching
|
|
150
|
+
* messages alone is NOT
|
|
151
|
+
* equivalent: a recreated reducer starts with `approvalStatuses = {}` and
|
|
152
|
+
* `lastAppliedSeq = -Infinity`, so a resolved approval whose APPROVAL_RESULT
|
|
153
|
+
* row is not in the refetched history page re-renders as ACTIONABLE (the
|
|
154
|
+
* exact hazard `resetForDialogSwitch` preserves that map to avoid), and a
|
|
155
|
+
* replay from the host's own cursor re-applies events the dropped instance
|
|
156
|
+
* had already consumed.
|
|
157
|
+
*/
|
|
158
|
+
onEvict?: (dialogId: string, side: ChatDialogSide, parked: EvictedReducerState) => void;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Snapshot of an LRU-evicted reducer's state, captured just before the
|
|
162
|
+
* instance is dropped. Everything here either cannot be refetched
|
|
163
|
+
* (`lastAppliedSeq`) or is not reliably present in a refetched history page
|
|
164
|
+
* (`approvalStatuses`); `messages` rides along so a host that keeps its own
|
|
165
|
+
* copy does not have to.
|
|
166
|
+
*/
|
|
167
|
+
export interface EvictedReducerState {
|
|
168
|
+
messages: ChatReducerState['messages'];
|
|
169
|
+
approvalStatuses: ChatReducerState['approvalStatuses'];
|
|
170
|
+
/** `-Infinity` when the instance never applied a seq-carrying event. */
|
|
171
|
+
lastAppliedSeq: number;
|
|
172
|
+
/**
|
|
173
|
+
* Optimistic-echo entries still armed at eviction time. A key dropped
|
|
174
|
+
* between `pushOptimisticSend` and its `MESSAGE_REQUEST` echo would
|
|
175
|
+
* otherwise leave the recreated reducer with nothing armed, and the echo
|
|
176
|
+
* renders a DUPLICATE user bubble. Replay via
|
|
177
|
+
* `initializeWithState(messages, { pendingEchoes })`; the reducer drops
|
|
178
|
+
* entries already past `OWN_ECHO_AUTHOR_TTL_MS`. Empty for a key with no
|
|
179
|
+
* send in flight (the common case).
|
|
180
|
+
*/
|
|
181
|
+
pendingEchoes: readonly PendingEcho[];
|
|
182
|
+
}
|
|
183
|
+
export declare function createChatDialogStore(options?: CreateChatDialogStoreOptions): ChatDialogStore;
|
|
184
|
+
//# sourceMappingURL=chat-dialog-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-dialog-store.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/stream/chat-dialog-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAEH,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,WAAW,EACjB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAEpE,MAAM,MAAM,cAAc,GAAG,MAAM,CAAA;AAEnC;gDACgD;AAChD,MAAM,MAAM,sBAAsB,GAAG,CACnC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,cAAc,KACjB,wBAAwB,CAAA;AAE7B,MAAM,WAAW,eAAe;IAC9B;6DACyD;IACzD,UAAU,CACR,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,cAAc,EACrB,aAAa,CAAC,EAAE,sBAAsB,GACrC,iBAAiB,CAAA;IACpB;8CAC0C;IAC1C,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI,CAAA;IAC3E,wEAAwE;IACxE,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,CAAC,GAAG,CAAC,CAAA;IAC3F,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAA;IAC3C;;;;;;OAMG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,gBAAgB,CAAA;IACtE;;kEAE8D;IAC9D,iBAAiB,IAAI,gBAAgB,CAAA;IACrC,wEAAwE;IACxE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,IAAI,CAAA;IACrD;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,MAAM,IAAI,CAAA;IAC3D;;;;;;;;;;OAUG;IACH,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,cAAc,CAAA;KAAE,CAAC,GAAG,IAAI,CAAA;CAC5E;AAED,eAAO,MAAM,mBAAmB,EAAE,cAAuB,CAAA;AAEzD;;6CAE6C;AAC7C,eAAO,MAAM,oBAAoB,KAAK,CAAA;AAEtC;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,uBAAuB,MAAM,CAAA;AAE1C,MAAM,WAAW,4BAA4B;IAC3C;uEACmE;IACnE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;;;;;OAQG;IACH,oBAAoB,CAAC,EAAE,sBAAsB,CAAA;IAC7C;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,OAAO,CAAC,EAAE,CACR,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,mBAAmB,KACxB,IAAI,CAAA;CACV;AAED;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAA;IACtC,gBAAgB,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,CAAA;IACtD,wEAAwE;IACxE,cAAc,EAAE,MAAM,CAAA;IACtB;;;;;;;;OAQG;IACH,aAAa,EAAE,SAAS,WAAW,EAAE,CAAA;CACtC;AAyBD,wBAAgB,qBAAqB,CACnC,OAAO,GAAE,4BAAiC,GACzC,eAAe,CAgTjB"}
|