@dxos/plugin-thread 0.8.4-main.7ace549 → 0.8.4-main.937b3ca
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/lib/browser/app-graph-builder-SPAZN5XL.mjs +188 -0
- package/dist/lib/browser/app-graph-builder-SPAZN5XL.mjs.map +7 -0
- package/dist/lib/browser/blueprint-definition-UQ63QKQG.mjs +17 -0
- package/dist/lib/browser/blueprint-definition-UQ63QKQG.mjs.map +7 -0
- package/dist/lib/browser/blueprints/index.mjs +8 -0
- package/dist/lib/browser/call-manager-YBRTG6T3.mjs +26 -0
- package/dist/lib/browser/call-manager-YBRTG6T3.mjs.map +7 -0
- package/dist/lib/browser/{chunk-KOBXMDCI.mjs → chunk-DLO2G3DM.mjs} +14 -12
- package/dist/lib/browser/chunk-DLO2G3DM.mjs.map +7 -0
- package/dist/lib/browser/{chunk-ZCW3NSDZ.mjs → chunk-ERK254BS.mjs} +68 -51
- package/dist/lib/browser/chunk-ERK254BS.mjs.map +7 -0
- package/dist/lib/browser/chunk-TAWDJPMD.mjs +293 -0
- package/dist/lib/browser/chunk-TAWDJPMD.mjs.map +7 -0
- package/dist/lib/browser/chunk-VZICDGBW.mjs +1813 -0
- package/dist/lib/browser/chunk-VZICDGBW.mjs.map +7 -0
- package/dist/lib/browser/{blueprint-definition-TQ4JFMZZ.mjs → chunk-ZFLSTQSE.mjs} +39 -34
- package/dist/lib/browser/chunk-ZFLSTQSE.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +100 -90
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/markdown-TSXOA3GV.mjs +210 -0
- package/dist/lib/browser/markdown-TSXOA3GV.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/operation-resolver-MDMEBYH2.mjs +441 -0
- package/dist/lib/browser/operation-resolver-MDMEBYH2.mjs.map +7 -0
- package/dist/lib/browser/react-root-Q7U5D3DA.mjs +25 -0
- package/dist/lib/browser/react-root-Q7U5D3DA.mjs.map +7 -0
- package/dist/lib/browser/{react-surface-AUQQSQQC.mjs → react-surface-WDZQSDWH.mjs} +32 -33
- package/dist/lib/browser/react-surface-WDZQSDWH.mjs.map +7 -0
- package/dist/lib/browser/{repair-JFJLEM2O.mjs → repair-TDKAFAGH.mjs} +12 -9
- package/dist/lib/browser/repair-TDKAFAGH.mjs.map +7 -0
- package/dist/lib/browser/settings-OOKKVXV7.mjs +32 -0
- package/dist/lib/browser/settings-OOKKVXV7.mjs.map +7 -0
- package/dist/lib/browser/state-3LKZHDRI.mjs +24 -0
- package/dist/lib/browser/state-3LKZHDRI.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +5 -4
- package/dist/lib/node-esm/app-graph-builder-3LJAPDUW.mjs +189 -0
- package/dist/lib/node-esm/app-graph-builder-3LJAPDUW.mjs.map +7 -0
- package/dist/lib/node-esm/blueprint-definition-MZZXXL37.mjs +18 -0
- package/dist/lib/node-esm/blueprint-definition-MZZXXL37.mjs.map +7 -0
- package/dist/lib/node-esm/blueprints/index.mjs +9 -0
- package/dist/lib/node-esm/call-manager-MMCTNFOH.mjs +27 -0
- package/dist/lib/node-esm/call-manager-MMCTNFOH.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-3RD3IVVD.mjs +1814 -0
- package/dist/lib/node-esm/chunk-3RD3IVVD.mjs.map +7 -0
- package/dist/lib/node-esm/{blueprint-definition-TSX5HHW7.mjs → chunk-AQHPP6ZX.mjs} +39 -34
- package/dist/lib/node-esm/chunk-AQHPP6ZX.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-ARTUUKTM.mjs +294 -0
- package/dist/lib/node-esm/chunk-ARTUUKTM.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-PZH2EDU5.mjs → chunk-KRBZBJRI.mjs} +14 -12
- package/dist/lib/node-esm/chunk-KRBZBJRI.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-7KZWZS2U.mjs → chunk-QP3KQOPQ.mjs} +68 -51
- package/dist/lib/node-esm/chunk-QP3KQOPQ.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +100 -90
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/markdown-N2UJ3D6L.mjs +211 -0
- package/dist/lib/node-esm/markdown-N2UJ3D6L.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/operation-resolver-7PHDJZA2.mjs +442 -0
- package/dist/lib/node-esm/operation-resolver-7PHDJZA2.mjs.map +7 -0
- package/dist/lib/node-esm/react-root-SZIGQRDZ.mjs +26 -0
- package/dist/lib/node-esm/react-root-SZIGQRDZ.mjs.map +7 -0
- package/dist/lib/node-esm/{react-surface-AMVESEF4.mjs → react-surface-24PNWUDX.mjs} +32 -33
- package/dist/lib/node-esm/react-surface-24PNWUDX.mjs.map +7 -0
- package/dist/lib/node-esm/{repair-RMLR24YR.mjs → repair-LHLLGXKF.mjs} +12 -9
- package/dist/lib/node-esm/repair-LHLLGXKF.mjs.map +7 -0
- package/dist/lib/node-esm/settings-LXZQXSPL.mjs +33 -0
- package/dist/lib/node-esm/settings-LXZQXSPL.mjs.map +7 -0
- package/dist/lib/node-esm/state-YYAK5ENM.mjs +25 -0
- package/dist/lib/node-esm/state-YYAK5ENM.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +5 -4
- package/dist/types/src/ThreadPlugin.d.ts +2 -1
- package/dist/types/src/ThreadPlugin.d.ts.map +1 -1
- package/dist/types/src/blueprints/index.d.ts +2 -0
- package/dist/types/src/blueprints/index.d.ts.map +1 -0
- package/dist/types/src/blueprints/thread-blueprint.d.ts +21 -0
- package/dist/types/src/blueprints/thread-blueprint.d.ts.map +1 -0
- package/dist/types/src/calls/call-manager.d.ts +40 -30
- package/dist/types/src/calls/call-manager.d.ts.map +1 -1
- package/dist/types/src/calls/call-swarm-synchronizer.d.ts +2 -2
- package/dist/types/src/calls/call-swarm-synchronizer.d.ts.map +1 -1
- package/dist/types/src/calls/media-manager.d.ts +1 -1
- package/dist/types/src/calls/media-manager.d.ts.map +1 -1
- package/dist/types/src/calls/util/calls-service.d.ts +1 -1
- package/dist/types/src/calls/util/calls-service.d.ts.map +1 -1
- package/dist/types/src/calls/util/task-scheduling.d.ts +2 -2
- package/dist/types/src/calls/util/task-scheduling.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +6 -0
- package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder/index.d.ts +3 -0
- package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +9 -0
- package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +1 -0
- package/dist/types/src/capabilities/blueprint-definition/index.d.ts +3 -0
- package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/call-manager/call-manager.d.ts +6 -0
- package/dist/types/src/capabilities/call-manager/call-manager.d.ts.map +1 -0
- package/dist/types/src/capabilities/call-manager/index.d.ts +3 -0
- package/dist/types/src/capabilities/call-manager/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/index.d.ts +10 -17
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/markdown/index.d.ts +3 -0
- package/dist/types/src/capabilities/markdown/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/markdown/markdown.d.ts +5 -0
- package/dist/types/src/capabilities/markdown/markdown.d.ts.map +1 -0
- package/dist/types/src/capabilities/operation-resolver/index.d.ts +3 -0
- package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +5 -0
- package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-root/index.d.ts +6 -0
- package/dist/types/src/capabilities/react-root/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-root/react-root.d.ts +9 -0
- package/dist/types/src/capabilities/react-root/react-root.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface/index.d.ts +3 -0
- package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts +5 -0
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
- package/dist/types/src/capabilities/repair/index.d.ts +3 -0
- package/dist/types/src/capabilities/repair/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/repair/repair.d.ts +6 -0
- package/dist/types/src/capabilities/repair/repair.d.ts.map +1 -0
- package/dist/types/src/capabilities/settings/index.d.ts +3 -0
- package/dist/types/src/capabilities/settings/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/settings/settings.d.ts +5 -0
- package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -0
- package/dist/types/src/capabilities/state/index.d.ts +3 -0
- package/dist/types/src/capabilities/state/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/state/state.d.ts +7 -0
- package/dist/types/src/capabilities/state/state.d.ts.map +1 -0
- package/dist/types/src/components/Call/Call.d.ts.map +1 -1
- package/dist/types/src/components/Call/Toolbar.d.ts.map +1 -1
- package/dist/types/src/components/CallSidebar.d.ts.map +1 -1
- package/dist/types/src/components/ChannelContainer.d.ts +4 -5
- package/dist/types/src/components/ChannelContainer.d.ts.map +1 -1
- package/dist/types/src/components/ChannelContainer.stories.d.ts +1 -1
- package/dist/types/src/components/ChannelContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/ChatContainer.d.ts +1 -1
- package/dist/types/src/components/ChatContainer.d.ts.map +1 -1
- package/dist/types/src/components/Comments.stories.d.ts.map +1 -1
- package/dist/types/src/components/CommentsThreadContainer.d.ts.map +1 -1
- package/dist/types/src/components/Lobby/Lobby.d.ts.map +1 -1
- package/dist/types/src/components/Media/VideoObject.d.ts +1 -1
- package/dist/types/src/components/Media/VideoObject.stories.d.ts +1 -1
- package/dist/types/src/components/MessageContainer.d.ts +3 -4
- package/dist/types/src/components/MessageContainer.d.ts.map +1 -1
- package/dist/types/src/components/Participant/Participant.d.ts.map +1 -1
- package/dist/types/src/components/ThreadCompanion.d.ts.map +1 -1
- package/dist/types/src/components/ThreadSettings.d.ts +4 -2
- package/dist/types/src/components/ThreadSettings.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +2 -2
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/extensions/threads.d.ts +7 -2
- package/dist/types/src/extensions/threads.d.ts.map +1 -1
- package/dist/types/src/functions/create-proposals.d.ts.map +1 -1
- package/dist/types/src/hooks/analytics.d.ts +1 -2
- package/dist/types/src/hooks/analytics.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +1 -1
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +2 -2
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/testing/stories.d.ts +2 -1
- package/dist/types/src/testing/stories.d.ts.map +1 -1
- package/dist/types/src/types/Channel.d.ts +691 -12
- package/dist/types/src/types/Channel.d.ts.map +1 -1
- package/dist/types/src/types/capabilities.d.ts +23 -0
- package/dist/types/src/types/capabilities.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +1 -0
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +3182 -295
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +86 -69
- package/src/ThreadPlugin.tsx +50 -80
- package/src/blueprints/index.ts +5 -0
- package/src/blueprints/thread-blueprint.ts +32 -0
- package/src/calls/call-manager.ts +76 -52
- package/src/calls/call-swarm-synchronizer.ts +2 -2
- package/src/calls/media-manager.ts +1 -1
- package/src/calls/util/calls-service.ts +1 -1
- package/src/calls/util/task-scheduling.ts +4 -4
- package/src/capabilities/app-graph-builder/app-graph-builder.ts +201 -0
- package/src/capabilities/app-graph-builder/index.ts +7 -0
- package/src/capabilities/blueprint-definition/blueprint-definition.ts +23 -0
- package/src/capabilities/blueprint-definition/index.ts +7 -0
- package/src/capabilities/call-manager/call-manager.ts +26 -0
- package/src/capabilities/call-manager/index.ts +7 -0
- package/src/capabilities/index.ts +10 -14
- package/src/capabilities/markdown/index.ts +7 -0
- package/src/capabilities/markdown/markdown.ts +83 -0
- package/src/capabilities/operation-resolver/index.ts +7 -0
- package/src/capabilities/operation-resolver/operation-resolver.ts +400 -0
- package/src/capabilities/react-root/index.ts +7 -0
- package/src/capabilities/react-root/react-root.tsx +20 -0
- package/src/capabilities/react-surface/index.ts +7 -0
- package/src/capabilities/react-surface/react-surface.tsx +97 -0
- package/src/capabilities/repair/index.ts +7 -0
- package/src/capabilities/{repair.ts → repair/repair.ts} +21 -10
- package/src/capabilities/settings/index.ts +7 -0
- package/src/capabilities/settings/settings.ts +33 -0
- package/src/capabilities/state/index.ts +7 -0
- package/src/capabilities/state/state.ts +22 -0
- package/src/components/Call/Call.tsx +7 -3
- package/src/components/Call/Toolbar.tsx +28 -20
- package/src/components/CallSidebar.tsx +4 -2
- package/src/components/ChannelContainer.stories.tsx +10 -8
- package/src/components/ChannelContainer.tsx +18 -16
- package/src/components/Chat.stories.tsx +6 -6
- package/src/components/ChatContainer.tsx +7 -7
- package/src/components/Comments.stories.tsx +21 -18
- package/src/components/CommentsThreadContainer.tsx +9 -9
- package/src/components/Lobby/Lobby.tsx +8 -6
- package/src/components/Media/AudioStream.tsx +2 -2
- package/src/components/Media/VideoObject.tsx +1 -1
- package/src/components/MessageContainer.tsx +53 -24
- package/src/components/Participant/Participant.tsx +31 -18
- package/src/components/ResponsiveGrid/ResponsiveContainer.tsx +1 -1
- package/src/components/ResponsiveGrid/ResponsiveGrid.tsx +1 -1
- package/src/components/ResponsiveGrid/ResponsiveGridItem.tsx +1 -1
- package/src/components/ThreadCompanion.tsx +69 -64
- package/src/components/ThreadSettings.tsx +6 -1
- package/src/components/command-extension.ts +2 -2
- package/src/components/index.ts +2 -5
- package/src/extensions/threads.ts +75 -41
- package/src/functions/create-proposals.ts +5 -4
- package/src/hooks/analytics.ts +23 -20
- package/src/index.ts +1 -1
- package/src/meta.ts +2 -2
- package/src/testing/stories.ts +15 -11
- package/src/types/Channel.ts +9 -5
- package/src/types/capabilities.ts +34 -0
- package/src/types/index.ts +1 -0
- package/src/types/types.ts +160 -73
- package/dist/lib/browser/ChannelContainer-L7MKV7DS.mjs +0 -17
- package/dist/lib/browser/ChatContainer-KPY4BAUE.mjs +0 -16
- package/dist/lib/browser/app-graph-builder-TWJ2UCOZ.mjs +0 -171
- package/dist/lib/browser/app-graph-builder-TWJ2UCOZ.mjs.map +0 -7
- package/dist/lib/browser/blueprint-definition-TQ4JFMZZ.mjs.map +0 -7
- package/dist/lib/browser/call-manager-4YFT4XA6.mjs +0 -25
- package/dist/lib/browser/call-manager-4YFT4XA6.mjs.map +0 -7
- package/dist/lib/browser/chunk-ALZKJOZK.mjs +0 -989
- package/dist/lib/browser/chunk-ALZKJOZK.mjs.map +0 -7
- package/dist/lib/browser/chunk-ANTFU4JB.mjs +0 -25
- package/dist/lib/browser/chunk-ANTFU4JB.mjs.map +0 -7
- package/dist/lib/browser/chunk-CFC7LEPD.mjs +0 -18
- package/dist/lib/browser/chunk-CFC7LEPD.mjs.map +0 -7
- package/dist/lib/browser/chunk-JDJPMI7V.mjs +0 -143
- package/dist/lib/browser/chunk-JDJPMI7V.mjs.map +0 -7
- package/dist/lib/browser/chunk-KOBXMDCI.mjs.map +0 -7
- package/dist/lib/browser/chunk-NPT5S6N4.mjs +0 -611
- package/dist/lib/browser/chunk-NPT5S6N4.mjs.map +0 -7
- package/dist/lib/browser/chunk-QM34EZQK.mjs +0 -20
- package/dist/lib/browser/chunk-QM34EZQK.mjs.map +0 -7
- package/dist/lib/browser/chunk-TLOOZTRD.mjs +0 -377
- package/dist/lib/browser/chunk-TLOOZTRD.mjs.map +0 -7
- package/dist/lib/browser/chunk-ZCW3NSDZ.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-G33FT3NO.mjs +0 -355
- package/dist/lib/browser/intent-resolver-G33FT3NO.mjs.map +0 -7
- package/dist/lib/browser/markdown-WFZFYJBQ.mjs +0 -172
- package/dist/lib/browser/markdown-WFZFYJBQ.mjs.map +0 -7
- package/dist/lib/browser/react-root-ED7PHA44.mjs +0 -29
- package/dist/lib/browser/react-root-ED7PHA44.mjs.map +0 -7
- package/dist/lib/browser/react-surface-AUQQSQQC.mjs.map +0 -7
- package/dist/lib/browser/repair-JFJLEM2O.mjs.map +0 -7
- package/dist/lib/browser/settings-E6IOLK46.mjs +0 -23
- package/dist/lib/browser/settings-E6IOLK46.mjs.map +0 -7
- package/dist/lib/browser/state-UYPLBGZJ.mjs +0 -35
- package/dist/lib/browser/state-UYPLBGZJ.mjs.map +0 -7
- package/dist/lib/node-esm/ChannelContainer-FYONOOZ6.mjs +0 -18
- package/dist/lib/node-esm/ChannelContainer-FYONOOZ6.mjs.map +0 -7
- package/dist/lib/node-esm/ChatContainer-TLQG23K7.mjs +0 -17
- package/dist/lib/node-esm/ChatContainer-TLQG23K7.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-VD6I2V5H.mjs +0 -172
- package/dist/lib/node-esm/app-graph-builder-VD6I2V5H.mjs.map +0 -7
- package/dist/lib/node-esm/blueprint-definition-TSX5HHW7.mjs.map +0 -7
- package/dist/lib/node-esm/call-manager-UMUXEYH5.mjs +0 -26
- package/dist/lib/node-esm/call-manager-UMUXEYH5.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-2AEIN5MI.mjs +0 -22
- package/dist/lib/node-esm/chunk-2AEIN5MI.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-7KZWZS2U.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-AB42KYF3.mjs +0 -990
- package/dist/lib/node-esm/chunk-AB42KYF3.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-ATNY37UV.mjs +0 -27
- package/dist/lib/node-esm/chunk-ATNY37UV.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-E5HNHFYH.mjs +0 -378
- package/dist/lib/node-esm/chunk-E5HNHFYH.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-FF3QVPY4.mjs +0 -612
- package/dist/lib/node-esm/chunk-FF3QVPY4.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-P2M364TO.mjs +0 -144
- package/dist/lib/node-esm/chunk-P2M364TO.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-PZH2EDU5.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-RT6NRL2I.mjs +0 -19
- package/dist/lib/node-esm/chunk-RT6NRL2I.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-4PX3WXQG.mjs +0 -356
- package/dist/lib/node-esm/intent-resolver-4PX3WXQG.mjs.map +0 -7
- package/dist/lib/node-esm/markdown-CSR5MAPZ.mjs +0 -173
- package/dist/lib/node-esm/markdown-CSR5MAPZ.mjs.map +0 -7
- package/dist/lib/node-esm/react-root-DZN324JA.mjs +0 -30
- package/dist/lib/node-esm/react-root-DZN324JA.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-AMVESEF4.mjs.map +0 -7
- package/dist/lib/node-esm/repair-RMLR24YR.mjs.map +0 -7
- package/dist/lib/node-esm/settings-RGZHWDSO.mjs +0 -24
- package/dist/lib/node-esm/settings-RGZHWDSO.mjs.map +0 -7
- package/dist/lib/node-esm/state-XNWOLBNE.mjs +0 -36
- package/dist/lib/node-esm/state-XNWOLBNE.mjs.map +0 -7
- package/dist/types/src/capabilities/app-graph-builder.d.ts +0 -4
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +0 -1
- package/dist/types/src/capabilities/blueprint-definition.d.ts +0 -5
- package/dist/types/src/capabilities/blueprint-definition.d.ts.map +0 -1
- package/dist/types/src/capabilities/call-manager.d.ts +0 -5
- package/dist/types/src/capabilities/call-manager.d.ts.map +0 -1
- package/dist/types/src/capabilities/capabilities.d.ts +0 -27
- package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
- package/dist/types/src/capabilities/markdown.d.ts +0 -4
- package/dist/types/src/capabilities/markdown.d.ts.map +0 -1
- package/dist/types/src/capabilities/react-root.d.ts +0 -7
- package/dist/types/src/capabilities/react-root.d.ts.map +0 -1
- package/dist/types/src/capabilities/react-surface.d.ts +0 -4
- package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
- package/dist/types/src/capabilities/repair.d.ts +0 -4
- package/dist/types/src/capabilities/repair.d.ts.map +0 -1
- package/dist/types/src/capabilities/settings.d.ts +0 -4
- package/dist/types/src/capabilities/settings.d.ts.map +0 -1
- package/dist/types/src/capabilities/state.d.ts +0 -7
- package/dist/types/src/capabilities/state.d.ts.map +0 -1
- package/src/capabilities/app-graph-builder.ts +0 -194
- package/src/capabilities/blueprint-definition.ts +0 -38
- package/src/capabilities/call-manager.ts +0 -20
- package/src/capabilities/capabilities.ts +0 -33
- package/src/capabilities/intent-resolver.ts +0 -311
- package/src/capabilities/markdown.ts +0 -71
- package/src/capabilities/react-root.tsx +0 -17
- package/src/capabilities/react-surface.tsx +0 -91
- package/src/capabilities/settings.ts +0 -19
- package/src/capabilities/state.ts +0 -26
- /package/dist/lib/browser/{ChannelContainer-L7MKV7DS.mjs.map → blueprints/index.mjs.map} +0 -0
- /package/dist/lib/{browser/ChatContainer-KPY4BAUE.mjs.map → node-esm/blueprints/index.mjs.map} +0 -0
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
__export
|
|
4
|
+
} from "./chunk-HSLMI22Q.mjs";
|
|
5
|
+
|
|
6
|
+
// src/types/capabilities.ts
|
|
7
|
+
import { Capability } from "@dxos/app-framework";
|
|
8
|
+
|
|
9
|
+
// src/meta.ts
|
|
10
|
+
import { trim } from "@dxos/util";
|
|
11
|
+
var meta = {
|
|
12
|
+
id: "dxos.org/plugin/thread",
|
|
13
|
+
name: "Chat",
|
|
14
|
+
description: trim`
|
|
15
|
+
Multi-modal communication platform supporting text chat, voice, and video conferencing.
|
|
16
|
+
Create threaded conversations and add contextual comments directly on any workspace object.
|
|
17
|
+
`,
|
|
18
|
+
icon: "ph--video-conference--regular",
|
|
19
|
+
iconHue: "rose",
|
|
20
|
+
source: "https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-thread"
|
|
21
|
+
};
|
|
22
|
+
var THREAD_ITEM = `${meta.id}/item`;
|
|
23
|
+
|
|
24
|
+
// src/types/capabilities.ts
|
|
25
|
+
(function(ThreadCapabilities2) {
|
|
26
|
+
ThreadCapabilities2.Settings = Capability.make(`${meta.id}/capability/settings`);
|
|
27
|
+
ThreadCapabilities2.CallManager = Capability.make(`${meta.id}/capability/call-manager`);
|
|
28
|
+
ThreadCapabilities2.CallExtension = Capability.make(`${meta.id}/capability/call-extension`);
|
|
29
|
+
ThreadCapabilities2.State = Capability.make(`${meta.id}/capability/state`);
|
|
30
|
+
ThreadCapabilities2.ViewState = Capability.make(`${meta.id}/capability/view-state`);
|
|
31
|
+
})(ThreadCapabilities || (ThreadCapabilities = {}));
|
|
32
|
+
var ThreadCapabilities;
|
|
33
|
+
|
|
34
|
+
// src/types/Channel.ts
|
|
35
|
+
var Channel_exports = {};
|
|
36
|
+
__export(Channel_exports, {
|
|
37
|
+
Channel: () => Channel,
|
|
38
|
+
make: () => make
|
|
39
|
+
});
|
|
40
|
+
import * as Schema from "effect/Schema";
|
|
41
|
+
import { Obj, Ref, Type } from "@dxos/echo";
|
|
42
|
+
import { FormInputAnnotation } from "@dxos/echo/internal";
|
|
43
|
+
import { Thread } from "@dxos/types";
|
|
44
|
+
var Channel = Schema.Struct({
|
|
45
|
+
name: Schema.optional(Schema.String),
|
|
46
|
+
defaultThread: Type.Ref(Thread.Thread).pipe(FormInputAnnotation.set(false)),
|
|
47
|
+
// TODO(wittjosiah): Should be an "ordered collection".
|
|
48
|
+
threads: Type.Ref(Thread.Thread).pipe(Schema.Array, Schema.mutable, FormInputAnnotation.set(false))
|
|
49
|
+
}).pipe(Type.object({
|
|
50
|
+
typename: "dxos.org/type/Channel",
|
|
51
|
+
version: "0.1.0"
|
|
52
|
+
}));
|
|
53
|
+
var make = (props = {}) => Obj.make(Channel, {
|
|
54
|
+
...props,
|
|
55
|
+
defaultThread: Ref.make(Obj.make(Thread.Thread, {
|
|
56
|
+
messages: [],
|
|
57
|
+
status: "active"
|
|
58
|
+
})),
|
|
59
|
+
threads: []
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
// src/types/types.ts
|
|
63
|
+
import * as Schema2 from "effect/Schema";
|
|
64
|
+
import { Capability as Capability2 } from "@dxos/app-framework";
|
|
65
|
+
import { Key, Type as Type2 } from "@dxos/echo";
|
|
66
|
+
import { Operation } from "@dxos/operation";
|
|
67
|
+
import { SpaceSchema } from "@dxos/react-client/echo";
|
|
68
|
+
import { Collection } from "@dxos/schema";
|
|
69
|
+
import { Actor, AnchoredTo, Message, Thread as Thread2 } from "@dxos/types";
|
|
70
|
+
var THREAD_OPERATION = `${meta.id}/operation`;
|
|
71
|
+
(function(ThreadOperation2) {
|
|
72
|
+
ThreadOperation2.OnCreateSpace = Operation.make({
|
|
73
|
+
meta: {
|
|
74
|
+
key: `${THREAD_OPERATION}/on-create-space`,
|
|
75
|
+
name: "On Create Space"
|
|
76
|
+
},
|
|
77
|
+
services: [
|
|
78
|
+
Capability2.Service
|
|
79
|
+
],
|
|
80
|
+
schema: {
|
|
81
|
+
input: Schema2.Struct({
|
|
82
|
+
space: SpaceSchema,
|
|
83
|
+
rootCollection: Collection.Collection,
|
|
84
|
+
isDefault: Schema2.Boolean.pipe(Schema2.optional)
|
|
85
|
+
}),
|
|
86
|
+
output: Schema2.Void
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
ThreadOperation2.CreateChannel = Operation.make({
|
|
90
|
+
meta: {
|
|
91
|
+
key: `${THREAD_OPERATION}/create-channel`,
|
|
92
|
+
name: "Create Channel"
|
|
93
|
+
},
|
|
94
|
+
services: [
|
|
95
|
+
Capability2.Service
|
|
96
|
+
],
|
|
97
|
+
schema: {
|
|
98
|
+
input: Schema2.Struct({
|
|
99
|
+
spaceId: Key.SpaceId,
|
|
100
|
+
name: Schema2.optional(Schema2.String)
|
|
101
|
+
}),
|
|
102
|
+
output: Schema2.Struct({
|
|
103
|
+
object: Channel
|
|
104
|
+
})
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
ThreadOperation2.CreateChannelThread = Operation.make({
|
|
108
|
+
meta: {
|
|
109
|
+
key: `${THREAD_OPERATION}/create-channel-thread`,
|
|
110
|
+
name: "Create Channel Thread"
|
|
111
|
+
},
|
|
112
|
+
services: [
|
|
113
|
+
Capability2.Service
|
|
114
|
+
],
|
|
115
|
+
schema: {
|
|
116
|
+
input: Schema2.Struct({
|
|
117
|
+
channel: Channel
|
|
118
|
+
}),
|
|
119
|
+
output: Schema2.Struct({
|
|
120
|
+
object: Thread2.Thread
|
|
121
|
+
})
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
ThreadOperation2.Create = Operation.make({
|
|
125
|
+
meta: {
|
|
126
|
+
key: `${THREAD_OPERATION}/create`,
|
|
127
|
+
name: "Create Thread"
|
|
128
|
+
},
|
|
129
|
+
services: [
|
|
130
|
+
Capability2.Service
|
|
131
|
+
],
|
|
132
|
+
schema: {
|
|
133
|
+
input: Schema2.Struct({
|
|
134
|
+
name: Schema2.optional(Schema2.String),
|
|
135
|
+
anchor: Schema2.optional(Schema2.String),
|
|
136
|
+
subject: Type2.Obj
|
|
137
|
+
}),
|
|
138
|
+
output: Schema2.Void
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
ThreadOperation2.DeleteOutput = Schema2.Struct({
|
|
142
|
+
thread: Thread2.Thread.annotations({
|
|
143
|
+
description: "The deleted thread."
|
|
144
|
+
}),
|
|
145
|
+
anchor: AnchoredTo.AnchoredTo.annotations({
|
|
146
|
+
description: "The deleted anchor."
|
|
147
|
+
})
|
|
148
|
+
}).pipe(Schema2.partial);
|
|
149
|
+
ThreadOperation2.Delete = Operation.make({
|
|
150
|
+
meta: {
|
|
151
|
+
key: `${THREAD_OPERATION}/delete`,
|
|
152
|
+
name: "Delete Thread"
|
|
153
|
+
},
|
|
154
|
+
services: [
|
|
155
|
+
Capability2.Service
|
|
156
|
+
],
|
|
157
|
+
schema: {
|
|
158
|
+
input: Schema2.Struct({
|
|
159
|
+
anchor: AnchoredTo.AnchoredTo,
|
|
160
|
+
subject: Type2.Obj,
|
|
161
|
+
thread: Schema2.optional(Thread2.Thread)
|
|
162
|
+
}),
|
|
163
|
+
output: ThreadOperation2.DeleteOutput
|
|
164
|
+
}
|
|
165
|
+
});
|
|
166
|
+
ThreadOperation2.Select = Operation.make({
|
|
167
|
+
meta: {
|
|
168
|
+
key: `${THREAD_OPERATION}/select`,
|
|
169
|
+
name: "Select Thread"
|
|
170
|
+
},
|
|
171
|
+
services: [
|
|
172
|
+
Capability2.Service
|
|
173
|
+
],
|
|
174
|
+
schema: {
|
|
175
|
+
input: Schema2.Struct({
|
|
176
|
+
current: Schema2.String
|
|
177
|
+
}),
|
|
178
|
+
output: Schema2.Void
|
|
179
|
+
}
|
|
180
|
+
});
|
|
181
|
+
ThreadOperation2.ToggleResolved = Operation.make({
|
|
182
|
+
meta: {
|
|
183
|
+
key: `${THREAD_OPERATION}/toggle-resolved`,
|
|
184
|
+
name: "Toggle Resolved"
|
|
185
|
+
},
|
|
186
|
+
services: [
|
|
187
|
+
Capability2.Service
|
|
188
|
+
],
|
|
189
|
+
schema: {
|
|
190
|
+
input: Schema2.Struct({
|
|
191
|
+
thread: Thread2.Thread
|
|
192
|
+
}),
|
|
193
|
+
output: Schema2.Void
|
|
194
|
+
}
|
|
195
|
+
});
|
|
196
|
+
ThreadOperation2.AddMessage = Operation.make({
|
|
197
|
+
meta: {
|
|
198
|
+
key: `${THREAD_OPERATION}/add-message`,
|
|
199
|
+
name: "Add Message"
|
|
200
|
+
},
|
|
201
|
+
services: [
|
|
202
|
+
Capability2.Service
|
|
203
|
+
],
|
|
204
|
+
schema: {
|
|
205
|
+
input: Schema2.Struct({
|
|
206
|
+
subject: Type2.Obj,
|
|
207
|
+
anchor: AnchoredTo.AnchoredTo,
|
|
208
|
+
sender: Actor.Actor,
|
|
209
|
+
text: Schema2.String
|
|
210
|
+
}),
|
|
211
|
+
output: Schema2.Void
|
|
212
|
+
}
|
|
213
|
+
});
|
|
214
|
+
ThreadOperation2.DeleteMessageOutput = Schema2.partial(Schema2.Struct({
|
|
215
|
+
message: Message.Message.annotations({
|
|
216
|
+
description: "The deleted message."
|
|
217
|
+
}),
|
|
218
|
+
messageIndex: Schema2.Number.annotations({
|
|
219
|
+
description: "The index the message was at."
|
|
220
|
+
})
|
|
221
|
+
}));
|
|
222
|
+
ThreadOperation2.DeleteMessage = Operation.make({
|
|
223
|
+
meta: {
|
|
224
|
+
key: `${THREAD_OPERATION}/delete-message`,
|
|
225
|
+
name: "Delete Message"
|
|
226
|
+
},
|
|
227
|
+
services: [
|
|
228
|
+
Capability2.Service
|
|
229
|
+
],
|
|
230
|
+
schema: {
|
|
231
|
+
input: Schema2.Struct({
|
|
232
|
+
anchor: AnchoredTo.AnchoredTo,
|
|
233
|
+
subject: Type2.Obj,
|
|
234
|
+
messageId: Schema2.String
|
|
235
|
+
}),
|
|
236
|
+
output: ThreadOperation2.DeleteMessageOutput
|
|
237
|
+
}
|
|
238
|
+
});
|
|
239
|
+
ThreadOperation2.Restore = Operation.make({
|
|
240
|
+
meta: {
|
|
241
|
+
key: `${THREAD_OPERATION}/restore`,
|
|
242
|
+
name: "Restore Thread"
|
|
243
|
+
},
|
|
244
|
+
services: [
|
|
245
|
+
Capability2.Service
|
|
246
|
+
],
|
|
247
|
+
schema: {
|
|
248
|
+
input: Schema2.Struct({
|
|
249
|
+
thread: Thread2.Thread.annotations({
|
|
250
|
+
description: "The thread to restore."
|
|
251
|
+
}),
|
|
252
|
+
anchor: AnchoredTo.AnchoredTo.annotations({
|
|
253
|
+
description: "The anchor relation to restore."
|
|
254
|
+
})
|
|
255
|
+
}),
|
|
256
|
+
output: Schema2.Void
|
|
257
|
+
}
|
|
258
|
+
});
|
|
259
|
+
ThreadOperation2.RestoreMessage = Operation.make({
|
|
260
|
+
meta: {
|
|
261
|
+
key: `${THREAD_OPERATION}/restore-message`,
|
|
262
|
+
name: "Restore Message"
|
|
263
|
+
},
|
|
264
|
+
services: [
|
|
265
|
+
Capability2.Service
|
|
266
|
+
],
|
|
267
|
+
schema: {
|
|
268
|
+
input: Schema2.Struct({
|
|
269
|
+
anchor: AnchoredTo.AnchoredTo.annotations({
|
|
270
|
+
description: "The anchor of the thread."
|
|
271
|
+
}),
|
|
272
|
+
message: Message.Message.annotations({
|
|
273
|
+
description: "The message to restore."
|
|
274
|
+
}),
|
|
275
|
+
messageIndex: Schema2.Number.annotations({
|
|
276
|
+
description: "The index to restore the message at."
|
|
277
|
+
})
|
|
278
|
+
}),
|
|
279
|
+
output: Schema2.Void
|
|
280
|
+
}
|
|
281
|
+
});
|
|
282
|
+
})(ThreadOperation || (ThreadOperation = {}));
|
|
283
|
+
var ThreadSettingsSchema = Schema2.mutable(Schema2.Struct({}));
|
|
284
|
+
var ThreadOperation;
|
|
285
|
+
|
|
286
|
+
export {
|
|
287
|
+
meta,
|
|
288
|
+
THREAD_ITEM,
|
|
289
|
+
ThreadCapabilities,
|
|
290
|
+
Channel_exports,
|
|
291
|
+
ThreadSettingsSchema,
|
|
292
|
+
ThreadOperation
|
|
293
|
+
};
|
|
294
|
+
//# sourceMappingURL=chunk-ARTUUKTM.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/types/capabilities.ts", "../../../src/meta.ts", "../../../src/types/Channel.ts", "../../../src/types/types.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Atom } from '@effect-atom/atom-react';\n\nimport { Capability } from '@dxos/app-framework';\n\nimport { type CallManager, type CallState, type MediaState } from '../calls';\nimport { meta } from '../meta';\nimport { type Channel, type ThreadSettingsProps, type ThreadState, type ViewStore } from '../types';\n\nexport namespace ThreadCapabilities {\n export const Settings = Capability.make<Atom.Writable<ThreadSettingsProps>>(`${meta.id}/capability/settings`);\n export const CallManager = Capability.make<CallManager>(`${meta.id}/capability/call-manager`);\n\n // TODO(burdon): Better way to define specific extensions for meeting companions.\n // TODO(burdon): This brings in deps from ../calls; how should we manage/minimize explicit type exposure to other plugins?\n // TODO(wittjosiah): These callbacks could be intents once we support broadcast.\n export type CallProperties = {\n onJoin: (state: { channel?: Channel.Channel; roomId?: string }) => Promise<void>;\n onLeave: (roomId?: string) => Promise<void>;\n onCallStateUpdated: (callState: CallState) => Promise<void>;\n onMediaStateUpdated: ([mediaState, isSpeaking]: [MediaState, boolean]) => Promise<void>;\n };\n\n export const CallExtension = Capability.make<CallProperties>(`${meta.id}/capability/call-extension`);\n\n /** Thread state (drafts, toolbar state, current selection). */\n export const State = Capability.make<Atom.Writable<ThreadState>>(`${meta.id}/capability/state`);\n\n /** Per-subject view state (e.g., showResolvedThreads). */\n export const ViewState = Capability.make<Atom.Writable<ViewStore>>(`${meta.id}/capability/view-state`);\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { trim } from '@dxos/util';\n\n// TODO(wittjosiah): Needs screenshots.\nexport const meta: Plugin.Meta = {\n id: 'dxos.org/plugin/thread',\n name: 'Chat',\n description: trim`\n Multi-modal communication platform supporting text chat, voice, and video conferencing.\n Create threaded conversations and add contextual comments directly on any workspace object.\n `,\n icon: 'ph--video-conference--regular',\n iconHue: 'rose',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-thread',\n};\n\nexport const THREAD_ITEM = `${meta.id}/item`;\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Obj, Ref, Type } from '@dxos/echo';\nimport { FormInputAnnotation } from '@dxos/echo/internal';\nimport { Thread } from '@dxos/types';\n\nexport const Channel = Schema.Struct({\n name: Schema.optional(Schema.String),\n defaultThread: Type.Ref(Thread.Thread).pipe(FormInputAnnotation.set(false)),\n // TODO(wittjosiah): Should be an \"ordered collection\".\n threads: Type.Ref(Thread.Thread).pipe(Schema.Array, Schema.mutable, FormInputAnnotation.set(false)),\n}).pipe(\n Type.object({\n typename: 'dxos.org/type/Channel',\n version: '0.1.0',\n }),\n);\n\nexport interface Channel extends Schema.Schema.Type<typeof Channel> {}\n\nexport const make = (props: Pick<Obj.MakeProps<typeof Channel>, 'name'> = {}) =>\n Obj.make(Channel, {\n ...props,\n defaultThread: Ref.make(Obj.make(Thread.Thread, { messages: [], status: 'active' })),\n threads: [],\n });\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Capability } from '@dxos/app-framework';\nimport { Key, Type } from '@dxos/echo';\nimport { Operation } from '@dxos/operation';\nimport { SpaceSchema } from '@dxos/react-client/echo';\nimport { Collection } from '@dxos/schema';\nimport { Actor, AnchoredTo, Message, Thread } from '@dxos/types';\n\nimport { meta } from '../meta';\n\nimport * as Channel from './Channel';\n\nconst THREAD_OPERATION = `${meta.id}/operation`;\n\n/**\n * Operations for the Thread plugin.\n * Note: Complex ECHO types are typed as Schema.Any to avoid serialization issues.\n */\nexport namespace ThreadOperation {\n export const OnCreateSpace = Operation.make({\n meta: { key: `${THREAD_OPERATION}/on-create-space`, name: 'On Create Space' },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n space: SpaceSchema,\n rootCollection: Collection.Collection,\n isDefault: Schema.Boolean.pipe(Schema.optional),\n }),\n output: Schema.Void,\n },\n });\n\n export const CreateChannel = Operation.make({\n meta: { key: `${THREAD_OPERATION}/create-channel`, name: 'Create Channel' },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n spaceId: Key.SpaceId,\n name: Schema.optional(Schema.String),\n }),\n output: Schema.Struct({\n object: Channel.Channel,\n }),\n },\n });\n\n export const CreateChannelThread = Operation.make({\n meta: { key: `${THREAD_OPERATION}/create-channel-thread`, name: 'Create Channel Thread' },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n channel: Channel.Channel,\n }),\n output: Schema.Struct({\n object: Thread.Thread,\n }),\n },\n });\n\n export const Create = Operation.make({\n meta: { key: `${THREAD_OPERATION}/create`, name: 'Create Thread' },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n name: Schema.optional(Schema.String),\n anchor: Schema.optional(Schema.String),\n subject: Type.Obj,\n }),\n output: Schema.Void,\n },\n });\n\n export const DeleteOutput = Schema.Struct({\n thread: Thread.Thread.annotations({ description: 'The deleted thread.' }),\n anchor: AnchoredTo.AnchoredTo.annotations({ description: 'The deleted anchor.' }),\n }).pipe(Schema.partial);\n\n export type DeleteOutput = Schema.Schema.Type<typeof DeleteOutput>;\n\n export const Delete = Operation.make({\n meta: { key: `${THREAD_OPERATION}/delete`, name: 'Delete Thread' },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n anchor: AnchoredTo.AnchoredTo,\n subject: Type.Obj,\n thread: Schema.optional(Thread.Thread),\n }),\n output: DeleteOutput,\n },\n });\n\n export const Select = Operation.make({\n meta: { key: `${THREAD_OPERATION}/select`, name: 'Select Thread' },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n current: Schema.String,\n }),\n output: Schema.Void,\n },\n });\n\n export const ToggleResolved = Operation.make({\n meta: { key: `${THREAD_OPERATION}/toggle-resolved`, name: 'Toggle Resolved' },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n thread: Thread.Thread,\n }),\n output: Schema.Void,\n },\n });\n\n export const AddMessage = Operation.make({\n meta: { key: `${THREAD_OPERATION}/add-message`, name: 'Add Message' },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n subject: Type.Obj,\n anchor: AnchoredTo.AnchoredTo,\n sender: Actor.Actor,\n text: Schema.String,\n }),\n output: Schema.Void,\n },\n });\n\n export const DeleteMessageOutput = Schema.partial(\n Schema.Struct({\n message: Message.Message.annotations({ description: 'The deleted message.' }),\n messageIndex: Schema.Number.annotations({ description: 'The index the message was at.' }),\n }),\n );\n\n export type DeleteMessageOutput = Schema.Schema.Type<typeof DeleteMessageOutput>;\n\n export const DeleteMessage = Operation.make({\n meta: { key: `${THREAD_OPERATION}/delete-message`, name: 'Delete Message' },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n anchor: AnchoredTo.AnchoredTo,\n subject: Type.Obj,\n messageId: Schema.String,\n }),\n output: DeleteMessageOutput,\n },\n });\n\n /**\n * Restore a deleted thread (inverse of Delete).\n */\n export const Restore = Operation.make({\n meta: { key: `${THREAD_OPERATION}/restore`, name: 'Restore Thread' },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n thread: Thread.Thread.annotations({ description: 'The thread to restore.' }),\n anchor: AnchoredTo.AnchoredTo.annotations({ description: 'The anchor relation to restore.' }),\n }),\n output: Schema.Void,\n },\n });\n\n /**\n * Restore a deleted message (inverse of DeleteMessage).\n */\n export const RestoreMessage = Operation.make({\n meta: { key: `${THREAD_OPERATION}/restore-message`, name: 'Restore Message' },\n services: [Capability.Service],\n schema: {\n input: Schema.Struct({\n anchor: AnchoredTo.AnchoredTo.annotations({ description: 'The anchor of the thread.' }),\n message: Message.Message.annotations({ description: 'The message to restore.' }),\n messageIndex: Schema.Number.annotations({ description: 'The index to restore the message at.' }),\n }),\n output: Schema.Void,\n },\n });\n}\n\nexport const ThreadSettingsSchema = Schema.mutable(Schema.Struct({}));\nexport type ThreadSettingsProps = Schema.Schema.Type<typeof ThreadSettingsSchema>;\n\nexport interface ThreadModel {\n root: Thread.Thread;\n}\n\ntype SubjectId = string;\nexport type ViewState = { showResolvedThreads: boolean };\nexport type ViewStore = Record<SubjectId, ViewState>;\n\nexport type ThreadState = {\n /** Object toolbar state. */\n toolbar: Record<string, boolean>;\n /** In-memory draft threads. */\n // TODO(burdon): Drafts are getting lost.\n drafts: Record<string, AnchoredTo.AnchoredTo[]>;\n current?: string | undefined;\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Capability", "trim", "meta", "id", "name", "description", "trim", "icon", "iconHue", "source", "THREAD_ITEM", "ThreadCapabilities", "Settings", "Capability", "make", "meta", "id", "CallManager", "CallExtension", "State", "ViewState", "Schema", "Obj", "Ref", "Type", "FormInputAnnotation", "Thread", "Channel", "Struct", "name", "optional", "String", "defaultThread", "Type", "Ref", "Thread", "pipe", "FormInputAnnotation", "set", "threads", "Array", "mutable", "object", "typename", "version", "make", "props", "Obj", "messages", "status", "Schema", "Capability", "Key", "Type", "Operation", "SpaceSchema", "Collection", "Actor", "AnchoredTo", "Message", "Thread", "THREAD_OPERATION", "meta", "id", "ThreadOperation", "OnCreateSpace", "Operation", "make", "key", "name", "services", "Capability", "Service", "schema", "input", "Struct", "space", "SpaceSchema", "rootCollection", "Collection", "isDefault", "Boolean", "pipe", "optional", "output", "Void", "CreateChannel", "spaceId", "Key", "SpaceId", "String", "object", "Channel", "CreateChannelThread", "channel", "Thread", "Create", "anchor", "subject", "Type", "Obj", "DeleteOutput", "thread", "annotations", "description", "AnchoredTo", "partial", "Delete", "Select", "current", "ToggleResolved", "AddMessage", "sender", "Actor", "text", "DeleteMessageOutput", "message", "Message", "messageIndex", "Number", "DeleteMessage", "messageId", "Restore", "RestoreMessage", "ThreadSettingsSchema", "mutable"]
|
|
7
|
+
}
|
|
@@ -6,28 +6,30 @@ import {
|
|
|
6
6
|
|
|
7
7
|
// src/hooks/analytics.ts
|
|
8
8
|
import { useCallback } from "react";
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import { getSpace } from "@dxos/react-client/echo";
|
|
9
|
+
import { useOperationInvoker } from "@dxos/app-framework/react";
|
|
10
|
+
import { Obj } from "@dxos/echo";
|
|
11
|
+
import { ObservabilityOperation } from "@dxos/plugin-observability/types";
|
|
13
12
|
import { useOnTransition } from "@dxos/react-ui";
|
|
14
13
|
var useOnEditAnalytics = (message, textBlock, editing) => {
|
|
15
|
-
const {
|
|
14
|
+
const { invokePromise } = useOperationInvoker();
|
|
16
15
|
const onEdit = useCallback(() => {
|
|
17
|
-
|
|
18
|
-
if (!space || !textBlock) {
|
|
16
|
+
if (!message || !textBlock) {
|
|
19
17
|
return;
|
|
20
18
|
}
|
|
21
|
-
|
|
19
|
+
const db = Obj.getDatabase(message);
|
|
20
|
+
if (!db) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
void invokePromise(ObservabilityOperation.SendEvent, {
|
|
22
24
|
name: "threads.message.update",
|
|
23
25
|
properties: {
|
|
24
|
-
spaceId:
|
|
26
|
+
spaceId: db.spaceId,
|
|
25
27
|
messageId: message.id,
|
|
26
28
|
messageLength: textBlock?.text.length
|
|
27
29
|
}
|
|
28
|
-
})
|
|
30
|
+
});
|
|
29
31
|
}, [
|
|
30
|
-
|
|
32
|
+
invokePromise,
|
|
31
33
|
message,
|
|
32
34
|
textBlock
|
|
33
35
|
]);
|
|
@@ -180,4 +182,4 @@ export {
|
|
|
180
182
|
useStatus,
|
|
181
183
|
useVideoStreamTrack
|
|
182
184
|
};
|
|
183
|
-
//# sourceMappingURL=chunk-
|
|
185
|
+
//# sourceMappingURL=chunk-KRBZBJRI.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/hooks/analytics.ts", "../../../src/hooks/useBlackCanvasStreamTrack.tsx", "../../../src/hooks/useDebugMode.ts", "../../../src/hooks/useInaudibleAudioStreamTrack.tsx", "../../../src/hooks/useStatus.ts", "../../../src/hooks/useVideoStreamTrack.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { useCallback } from 'react';\n\nimport { useOperationInvoker } from '@dxos/app-framework/react';\nimport { Obj } from '@dxos/echo';\nimport { ObservabilityOperation } from '@dxos/plugin-observability/types';\nimport { useOnTransition } from '@dxos/react-ui';\nimport { type ContentBlock } from '@dxos/types';\n\nexport const useOnEditAnalytics = (\n message: any | undefined,\n textBlock: ContentBlock.Text | undefined,\n editing: boolean,\n) => {\n const { invokePromise } = useOperationInvoker();\n\n const onEdit = useCallback(() => {\n if (!message || !textBlock) {\n return;\n }\n const db = Obj.getDatabase(message);\n if (!db) {\n return;\n }\n\n void invokePromise(ObservabilityOperation.SendEvent, {\n name: 'threads.message.update',\n properties: {\n spaceId: db.spaceId,\n messageId: message.id,\n messageLength: textBlock?.text.length,\n },\n });\n }, [invokePromise, message, textBlock]);\n\n useOnTransition(editing, true, false, onEdit);\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useEffect, useState } from 'react';\n\nimport { scheduleTask } from '@dxos/async';\nimport { Context } from '@dxos/context';\n\nimport { createBlackCanvasStreamTrack } from '../calls/util/stub-media-streams';\n\nexport const useBlackCanvasStreamTrack = () => {\n const [blackCanvasStreamTrack, setBlackCanvasStreamTrack] = useState<MediaStreamTrack | undefined>(undefined);\n useEffect(() => {\n const ctx = new Context();\n scheduleTask(ctx, async () => {\n const blackCanvasStreamTrack = await createBlackCanvasStreamTrack({ ctx, width: 720, height: 480 });\n setBlackCanvasStreamTrack(blackCanvasStreamTrack);\n });\n\n return () => {\n void ctx.dispose();\n };\n }, []);\n\n return blackCanvasStreamTrack;\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useEffect, useState } from 'react';\n\n// TODO(burdon): Standardize across plugins/composer.\nexport const useDebugMode = () => {\n const [enabled, setEnabled] = useState(false);\n useEffect(() => {\n const handler = (ev: KeyboardEvent) => {\n if (ev.key.toLowerCase() === 'd' && ev.ctrlKey) {\n ev.preventDefault();\n setEnabled(!enabled);\n }\n };\n\n document.addEventListener('keypress', handler);\n return () => {\n document.removeEventListener('keypress', handler);\n };\n }, [enabled]);\n\n return enabled;\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useEffect, useState } from 'react';\n\nimport { scheduleTask } from '@dxos/async';\nimport { Context } from '@dxos/context';\n\nimport { createInaudibleAudioStreamTrack } from '../calls/util/stub-media-streams';\n\nexport const useInaudibleAudioStreamTrack = () => {\n const [audioStreamTrack, setAudioStreamTrack] = useState<MediaStreamTrack | undefined>(undefined);\n useEffect(() => {\n const ctx = new Context();\n scheduleTask(ctx, async () => {\n const audioStreamTrack = await createInaudibleAudioStreamTrack({ ctx });\n setAudioStreamTrack(audioStreamTrack);\n });\n\n return () => {\n void ctx.dispose();\n };\n }, []);\n\n return audioStreamTrack;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { useEffect, useState } from 'react';\n\nimport { type Space } from '@dxos/react-client/echo';\n\n// TODO(burdon): Generalize and factor out.\nexport const useStatus = (space?: Space, channel?: string) => {\n const [processing, setProcessing] = useState(false);\n useEffect(() => {\n if (!space || !channel) {\n return;\n }\n\n const unsubscribe = space.listen(`status/${channel}`, (status) => {\n const { event } = status.payload ?? {};\n setProcessing(event === 'processing');\n });\n\n const t = setInterval(() => {\n setProcessing((prev: any) => {\n if (typeof prev?.ts === 'number' && Date.now() - prev.ts > 30_000) {\n return undefined;\n } else {\n return prev;\n }\n });\n }, 1_000);\n\n return () => {\n unsubscribe();\n clearInterval(t);\n };\n }, [space, channel]);\n\n return processing;\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type RefObject, useEffect, useRef, useState } from 'react';\n\nexport const useVideoStreamTrack = (videoElement: RefObject<HTMLVideoElement | null>, videoSrc: string) => {\n // Get video stream track.\n const [videoStreamTrack, setVideoStreamTrack] = useState<MediaStreamTrack | undefined>(undefined);\n const hadRun = useRef(false);\n useEffect(() => {\n // This is done to capture only one video stream.\n if (!videoElement.current || hadRun.current || !videoSrc) {\n return;\n }\n hadRun.current = true;\n videoElement.current.addEventListener('playing', () => {\n if (videoStreamTrack) {\n return;\n }\n const stream = (videoElement.current as any).captureStream();\n const track = stream.getTracks()[0];\n if (track && !videoStreamTrack) {\n setVideoStreamTrack(track);\n }\n stream.onaddtrack = (event: MediaStreamTrackEvent) => {\n if (event.track.kind === 'video' && !videoStreamTrack) {\n setVideoStreamTrack(event.track);\n }\n };\n });\n videoElement.current.src = videoSrc;\n }, [videoElement.current, videoSrc]);\n\n return videoStreamTrack;\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["useCallback", "useOperationInvoker", "Obj", "ObservabilityOperation", "useOnTransition", "useOnEditAnalytics", "message", "textBlock", "editing", "invokePromise", "useOperationInvoker", "onEdit", "useCallback", "db", "Obj", "getDatabase", "ObservabilityOperation", "SendEvent", "name", "properties", "spaceId", "messageId", "id", "messageLength", "text", "length", "useOnTransition", "useEffect", "useState", "scheduleTask", "Context", "useBlackCanvasStreamTrack", "blackCanvasStreamTrack", "setBlackCanvasStreamTrack", "useState", "undefined", "useEffect", "ctx", "Context", "scheduleTask", "createBlackCanvasStreamTrack", "width", "height", "dispose", "useEffect", "useState", "useDebugMode", "enabled", "setEnabled", "useState", "useEffect", "handler", "ev", "key", "toLowerCase", "ctrlKey", "preventDefault", "document", "addEventListener", "removeEventListener", "useEffect", "useState", "scheduleTask", "Context", "useInaudibleAudioStreamTrack", "audioStreamTrack", "setAudioStreamTrack", "useState", "undefined", "useEffect", "ctx", "Context", "scheduleTask", "createInaudibleAudioStreamTrack", "dispose", "useEffect", "useState", "useStatus", "space", "channel", "processing", "setProcessing", "useState", "useEffect", "unsubscribe", "listen", "status", "event", "payload", "t", "setInterval", "prev", "ts", "Date", "now", "undefined", "clearInterval", "useEffect", "useRef", "useState", "useVideoStreamTrack", "videoElement", "videoSrc", "videoStreamTrack", "setVideoStreamTrack", "useState", "undefined", "hadRun", "useRef", "useEffect", "current", "addEventListener", "stream", "captureStream", "track", "getTracks", "onaddtrack", "event", "kind", "src"]
|
|
7
|
+
}
|
|
@@ -1563,11 +1563,10 @@ _ts_decorate2([
|
|
|
1563
1563
|
], MediaManager.prototype, "leave", null);
|
|
1564
1564
|
|
|
1565
1565
|
// src/calls/call-manager.ts
|
|
1566
|
-
import {
|
|
1566
|
+
import { Atom } from "@effect-atom/atom-react";
|
|
1567
1567
|
import { Event as Event4, synchronized as synchronized3 } from "@dxos/async";
|
|
1568
1568
|
import { Resource as Resource5 } from "@dxos/context";
|
|
1569
1569
|
import { invariant as invariant5 } from "@dxos/invariant";
|
|
1570
|
-
import { live } from "@dxos/live-object";
|
|
1571
1570
|
import { isNonNullable as isNonNullable2 } from "@dxos/util";
|
|
1572
1571
|
function _ts_decorate3(decorators, target, key, desc) {
|
|
1573
1572
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -1578,74 +1577,89 @@ function _ts_decorate3(decorators, target, key, desc) {
|
|
|
1578
1577
|
var __dxlog_file6 = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/calls/call-manager.ts";
|
|
1579
1578
|
var CallManager = class extends Resource5 {
|
|
1580
1579
|
_client;
|
|
1580
|
+
_registry;
|
|
1581
1581
|
callStateUpdated = new Event4();
|
|
1582
1582
|
// TODO(wittjosiah): Consolidate isSpeaking into the MediaState type.
|
|
1583
1583
|
mediaStateUpdated = new Event4();
|
|
1584
1584
|
left = new Event4();
|
|
1585
1585
|
/**
|
|
1586
|
-
*
|
|
1586
|
+
* Atom-based state. Updated via `_updateState()`.
|
|
1587
1587
|
* CAUTION: Do not change directly.
|
|
1588
1588
|
*/
|
|
1589
|
-
|
|
1589
|
+
_stateAtom = Atom.make({
|
|
1590
1590
|
call: {},
|
|
1591
1591
|
media: {
|
|
1592
1592
|
pulledAudioTracks: {},
|
|
1593
1593
|
pulledVideoStreams: {}
|
|
1594
1594
|
}
|
|
1595
1595
|
});
|
|
1596
|
-
//
|
|
1597
|
-
|
|
1598
|
-
|
|
1599
|
-
|
|
1596
|
+
// Derived atoms for reactive subscriptions.
|
|
1597
|
+
_roomIdAtom = Atom.make((get) => get(this._stateAtom).call.roomId);
|
|
1598
|
+
_raisedHandAtom = Atom.make((get) => get(this._stateAtom).call.raisedHand ?? false);
|
|
1599
|
+
_speakingAtom = Atom.make((get) => get(this._stateAtom).call.speaking ?? false);
|
|
1600
|
+
_joinedAtom = Atom.make((get) => get(this._stateAtom).call.joined ?? false);
|
|
1601
|
+
_selfAtom = Atom.make((get) => get(this._stateAtom).call.self ?? {});
|
|
1602
|
+
_tracksAtom = Atom.make((get) => get(this._stateAtom).call.tracks ?? {});
|
|
1603
|
+
_usersAtom = Atom.make((get) => get(this._stateAtom).call.users ?? []);
|
|
1604
|
+
_mediaAtom = Atom.make((get) => get(this._stateAtom).media);
|
|
1605
|
+
_audioTracksToPlayAtom = Atom.make((get) => {
|
|
1606
|
+
const state = get(this._stateAtom);
|
|
1607
|
+
return (state.call.users ?? []).map((user) => user.tracks?.audioEnabled ? user.tracks?.audio : void 0).filter(isNonNullable2).map((track) => state.media.pulledAudioTracks[track]?.track).filter(isNonNullable2);
|
|
1608
|
+
});
|
|
1609
|
+
_videoStreamAtomFamily = Atom.family((name) => Atom.make((get) => get(this._stateAtom).media.pulledVideoStreams[name]?.stream));
|
|
1610
|
+
_activityAtomFamily = Atom.family((key) => Atom.make((get) => get(this._stateAtom).call.activities?.[key]));
|
|
1600
1611
|
_swarmSynchronizer;
|
|
1601
1612
|
_mediaManager;
|
|
1602
|
-
|
|
1603
|
-
|
|
1604
|
-
|
|
1613
|
+
//
|
|
1614
|
+
// Derived atoms for reactive UI subscriptions.
|
|
1615
|
+
//
|
|
1616
|
+
/** Derived atom for roomId. */
|
|
1617
|
+
get roomIdAtom() {
|
|
1618
|
+
return this._roomIdAtom;
|
|
1605
1619
|
}
|
|
1606
|
-
/**
|
|
1607
|
-
get
|
|
1608
|
-
return this.
|
|
1620
|
+
/** Derived atom for raisedHand. */
|
|
1621
|
+
get raisedHandAtom() {
|
|
1622
|
+
return this._raisedHandAtom;
|
|
1609
1623
|
}
|
|
1610
|
-
/**
|
|
1611
|
-
get
|
|
1612
|
-
return this.
|
|
1624
|
+
/** Derived atom for speaking. */
|
|
1625
|
+
get speakingAtom() {
|
|
1626
|
+
return this._speakingAtom;
|
|
1613
1627
|
}
|
|
1614
|
-
/**
|
|
1615
|
-
get
|
|
1616
|
-
return this.
|
|
1628
|
+
/** Derived atom for joined. */
|
|
1629
|
+
get joinedAtom() {
|
|
1630
|
+
return this._joinedAtom;
|
|
1617
1631
|
}
|
|
1618
|
-
/**
|
|
1619
|
-
get
|
|
1620
|
-
return this.
|
|
1632
|
+
/** Derived atom for self. */
|
|
1633
|
+
get selfAtom() {
|
|
1634
|
+
return this._selfAtom;
|
|
1621
1635
|
}
|
|
1622
|
-
/**
|
|
1623
|
-
get
|
|
1624
|
-
return this.
|
|
1636
|
+
/** Derived atom for tracks. */
|
|
1637
|
+
get tracksAtom() {
|
|
1638
|
+
return this._tracksAtom;
|
|
1625
1639
|
}
|
|
1626
|
-
/**
|
|
1627
|
-
get
|
|
1628
|
-
return this.
|
|
1640
|
+
/** Derived atom for users. */
|
|
1641
|
+
get usersAtom() {
|
|
1642
|
+
return this._usersAtom;
|
|
1629
1643
|
}
|
|
1630
|
-
/**
|
|
1631
|
-
get
|
|
1632
|
-
return this.
|
|
1644
|
+
/** Derived atom for media. */
|
|
1645
|
+
get mediaAtom() {
|
|
1646
|
+
return this._mediaAtom;
|
|
1633
1647
|
}
|
|
1634
|
-
/**
|
|
1635
|
-
get
|
|
1636
|
-
return
|
|
1648
|
+
/** Derived atom for audioTracksToPlay. */
|
|
1649
|
+
get audioTracksToPlayAtom() {
|
|
1650
|
+
return this._audioTracksToPlayAtom;
|
|
1637
1651
|
}
|
|
1638
|
-
/**
|
|
1639
|
-
get
|
|
1640
|
-
return this.
|
|
1652
|
+
/** Returns the full state atom for reactive subscriptions. */
|
|
1653
|
+
get stateAtom() {
|
|
1654
|
+
return this._stateAtom;
|
|
1641
1655
|
}
|
|
1642
|
-
/**
|
|
1643
|
-
|
|
1644
|
-
return
|
|
1656
|
+
/** Returns a derived atom for a video stream by name. */
|
|
1657
|
+
videoStreamAtom(name) {
|
|
1658
|
+
return this._videoStreamAtomFamily(name);
|
|
1645
1659
|
}
|
|
1646
|
-
/**
|
|
1647
|
-
|
|
1648
|
-
return this.
|
|
1660
|
+
/** Returns a derived atom for an activity by key. */
|
|
1661
|
+
activityAtom(key) {
|
|
1662
|
+
return this._activityAtomFamily(key);
|
|
1649
1663
|
}
|
|
1650
1664
|
setRoomId(roomId) {
|
|
1651
1665
|
this._swarmSynchronizer._setRoomId(roomId);
|
|
@@ -1678,13 +1692,13 @@ var CallManager = class extends Resource5 {
|
|
|
1678
1692
|
return this._mediaManager.turnScreenshareOff();
|
|
1679
1693
|
}
|
|
1680
1694
|
// TODO(burdon): Can this be mocked?
|
|
1681
|
-
constructor(_client) {
|
|
1682
|
-
super(), this._client = _client;
|
|
1695
|
+
constructor(_client, _registry) {
|
|
1696
|
+
super(), this._client = _client, this._registry = _registry;
|
|
1683
1697
|
this._client.config.getOrThrow("runtime.services.edge.url");
|
|
1684
1698
|
const networkService = this._client.services.services.NetworkService;
|
|
1685
1699
|
invariant5(networkService, "network service not found", {
|
|
1686
1700
|
F: __dxlog_file6,
|
|
1687
|
-
L:
|
|
1701
|
+
L: 180,
|
|
1688
1702
|
S: this,
|
|
1689
1703
|
A: [
|
|
1690
1704
|
"networkService",
|
|
@@ -1733,7 +1747,8 @@ var CallManager = class extends Resource5 {
|
|
|
1733
1747
|
this._swarmSynchronizer.setJoined(false);
|
|
1734
1748
|
await this._swarmSynchronizer.leave();
|
|
1735
1749
|
await this._mediaManager.leave();
|
|
1736
|
-
|
|
1750
|
+
const roomId = this._registry.get(this._roomIdAtom);
|
|
1751
|
+
roomId && this.left.emit(roomId);
|
|
1737
1752
|
}
|
|
1738
1753
|
_onCallStateUpdated(state) {
|
|
1739
1754
|
const tracksToPull = state.users?.filter((user) => user.joined && user.id !== state.self.id)?.flatMap((user) => [
|
|
@@ -1766,8 +1781,10 @@ var CallManager = class extends Resource5 {
|
|
|
1766
1781
|
* Only this method is allowed to change state.
|
|
1767
1782
|
*/
|
|
1768
1783
|
_updateState() {
|
|
1769
|
-
this.
|
|
1770
|
-
|
|
1784
|
+
this._registry.set(this._stateAtom, {
|
|
1785
|
+
call: this._swarmSynchronizer._getState(),
|
|
1786
|
+
media: this._mediaManager._getState()
|
|
1787
|
+
});
|
|
1771
1788
|
}
|
|
1772
1789
|
};
|
|
1773
1790
|
_ts_decorate3([
|
|
@@ -1791,4 +1808,4 @@ export {
|
|
|
1791
1808
|
MediaManager,
|
|
1792
1809
|
CallManager
|
|
1793
1810
|
};
|
|
1794
|
-
//# sourceMappingURL=chunk-
|
|
1811
|
+
//# sourceMappingURL=chunk-QP3KQOPQ.mjs.map
|