@dxos/plugin-thread 0.8.4-main.1f223c7 → 0.8.4-main.2c6827d
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/ChannelContainer-JI3ZRZ5S.mjs +17 -0
- package/dist/lib/browser/ChatContainer-6FVFME3R.mjs +16 -0
- package/dist/lib/browser/{app-graph-builder-FHAOPO57.mjs → app-graph-builder-URVQHGMR.mjs} +32 -32
- package/dist/lib/browser/app-graph-builder-URVQHGMR.mjs.map +7 -0
- package/dist/lib/browser/blueprint-definition-TQ4JFMZZ.mjs +101 -0
- package/dist/lib/browser/blueprint-definition-TQ4JFMZZ.mjs.map +7 -0
- package/dist/lib/browser/{call-manager-RMPTWSTF.mjs → call-manager-4YFT4XA6.mjs} +8 -7
- package/dist/lib/{node-esm/call-manager-QAREJFVX.mjs.map → browser/call-manager-4YFT4XA6.mjs.map} +1 -1
- package/dist/lib/browser/{chunk-PBMNFG3B.mjs → chunk-6LWKNZUV.mjs} +18 -17
- package/dist/lib/browser/chunk-6LWKNZUV.mjs.map +7 -0
- package/dist/lib/browser/chunk-CBUNHCOE.mjs +23 -0
- package/dist/lib/browser/chunk-CBUNHCOE.mjs.map +7 -0
- package/dist/lib/browser/chunk-CFC7LEPD.mjs +18 -0
- package/dist/lib/browser/chunk-CFC7LEPD.mjs.map +7 -0
- package/dist/lib/browser/{chunk-GERVMFQW.mjs → chunk-CP7E2HRE.mjs} +2 -2
- package/dist/lib/browser/chunk-CP7E2HRE.mjs.map +7 -0
- package/dist/lib/browser/{chunk-7W7QK5ZP.mjs → chunk-F36NHPJG.mjs} +37 -34
- package/dist/lib/browser/chunk-F36NHPJG.mjs.map +7 -0
- package/dist/lib/browser/{chunk-XYUJXHYV.mjs → chunk-ISCHODBV.mjs} +1 -1
- package/dist/lib/browser/{chunk-XYUJXHYV.mjs.map → chunk-ISCHODBV.mjs.map} +2 -2
- package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
- package/dist/lib/browser/{chunk-RI3Z6MK3.mjs → chunk-KOBXMDCI.mjs} +68 -67
- package/dist/lib/browser/chunk-KOBXMDCI.mjs.map +7 -0
- package/dist/lib/browser/chunk-QM34EZQK.mjs +20 -0
- package/dist/lib/browser/chunk-QM34EZQK.mjs.map +7 -0
- package/dist/lib/browser/{chunk-KTWYVC5X.mjs → chunk-R5UOPOO7.mjs} +44 -49
- package/dist/lib/browser/chunk-R5UOPOO7.mjs.map +7 -0
- package/dist/lib/browser/{chunk-ZH2WPTNP.mjs → chunk-VIRD2QSK.mjs} +65 -72
- package/dist/lib/browser/chunk-VIRD2QSK.mjs.map +7 -0
- package/dist/lib/browser/{chunk-ZCEU5K23.mjs → chunk-ZCW3NSDZ.mjs} +139 -236
- package/dist/lib/browser/chunk-ZCW3NSDZ.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +41 -42
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-J7OCP2P6.mjs → intent-resolver-YR6W4CRP.mjs} +32 -108
- package/dist/lib/browser/intent-resolver-YR6W4CRP.mjs.map +7 -0
- package/dist/lib/browser/{markdown-Z677YORA.mjs → markdown-GSOBOXA7.mjs} +26 -24
- package/dist/lib/browser/markdown-GSOBOXA7.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/react-root-RAWRPF7Z.mjs +29 -0
- package/dist/lib/browser/react-root-RAWRPF7Z.mjs.map +7 -0
- package/dist/lib/browser/{react-surface-GVGZRBDK.mjs → react-surface-GOEFSXQ6.mjs} +38 -36
- package/dist/lib/browser/react-surface-GOEFSXQ6.mjs.map +7 -0
- package/dist/lib/browser/{settings-GRKEID73.mjs → settings-JN2HHORY.mjs} +6 -5
- package/dist/lib/{node-esm/settings-F2ODVNNW.mjs.map → browser/settings-JN2HHORY.mjs.map} +1 -1
- package/dist/lib/browser/{state-2T4KDWBX.mjs → state-UYPLBGZJ.mjs} +6 -5
- package/dist/lib/{node-esm/state-62TQKQVB.mjs.map → browser/state-UYPLBGZJ.mjs.map} +1 -1
- package/dist/lib/browser/types/index.mjs +7 -10
- package/dist/lib/node-esm/ChannelContainer-RQY4PR4F.mjs +18 -0
- package/dist/lib/node-esm/ChatContainer-KWNON7EN.mjs +17 -0
- package/dist/lib/node-esm/ChatContainer-KWNON7EN.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-builder-XEYWX5FC.mjs → app-graph-builder-2IH5RPR7.mjs} +32 -32
- package/dist/lib/node-esm/app-graph-builder-2IH5RPR7.mjs.map +7 -0
- package/dist/lib/node-esm/blueprint-definition-TSX5HHW7.mjs +102 -0
- package/dist/lib/node-esm/blueprint-definition-TSX5HHW7.mjs.map +7 -0
- package/dist/lib/node-esm/{call-manager-QAREJFVX.mjs → call-manager-UMUXEYH5.mjs} +8 -7
- package/dist/lib/{browser/call-manager-RMPTWSTF.mjs.map → node-esm/call-manager-UMUXEYH5.mjs.map} +1 -1
- package/dist/lib/node-esm/chunk-2AEIN5MI.mjs +22 -0
- package/dist/lib/node-esm/chunk-2AEIN5MI.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-TIPIOH2J.mjs → chunk-7KZWZS2U.mjs} +139 -236
- package/dist/lib/node-esm/chunk-7KZWZS2U.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-57XR3LEF.mjs → chunk-ABUFOZVX.mjs} +2 -2
- package/dist/lib/node-esm/chunk-ABUFOZVX.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
- package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-I3O6NXMN.mjs +25 -0
- package/dist/lib/node-esm/chunk-I3O6NXMN.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-P6E247RF.mjs → chunk-MEIWWPR2.mjs} +44 -49
- package/dist/lib/node-esm/chunk-MEIWWPR2.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-JNPKMT7O.mjs → chunk-PZH2EDU5.mjs} +68 -67
- package/dist/lib/node-esm/chunk-PZH2EDU5.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-LE2LIYGX.mjs → chunk-QFCIKJOD.mjs} +65 -72
- package/dist/lib/node-esm/chunk-QFCIKJOD.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-RT6NRL2I.mjs +19 -0
- package/dist/lib/node-esm/chunk-RT6NRL2I.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-2V3WSLUZ.mjs → chunk-VBI32FGI.mjs} +1 -1
- package/dist/lib/node-esm/{chunk-2V3WSLUZ.mjs.map → chunk-VBI32FGI.mjs.map} +2 -2
- package/dist/lib/node-esm/{chunk-SNKFZQST.mjs → chunk-Y3F2SGNH.mjs} +37 -34
- package/dist/lib/node-esm/chunk-Y3F2SGNH.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-DKCQCENK.mjs → chunk-Z4GUSLWL.mjs} +18 -17
- package/dist/lib/node-esm/chunk-Z4GUSLWL.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +41 -42
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-SR2LW4HF.mjs → intent-resolver-SJFABEE7.mjs} +32 -108
- package/dist/lib/node-esm/intent-resolver-SJFABEE7.mjs.map +7 -0
- package/dist/lib/node-esm/{markdown-FL4IXLRP.mjs → markdown-GG5566TL.mjs} +26 -24
- package/dist/lib/node-esm/markdown-GG5566TL.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/react-root-K5OGECUS.mjs +30 -0
- package/dist/lib/node-esm/react-root-K5OGECUS.mjs.map +7 -0
- package/dist/lib/node-esm/{react-surface-WLQUVRAX.mjs → react-surface-5QDQD7MN.mjs} +38 -36
- package/dist/lib/node-esm/react-surface-5QDQD7MN.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-F2ODVNNW.mjs → settings-VSPM3BIM.mjs} +6 -5
- package/dist/lib/{browser/settings-GRKEID73.mjs.map → node-esm/settings-VSPM3BIM.mjs.map} +1 -1
- package/dist/lib/node-esm/{state-62TQKQVB.mjs → state-XNWOLBNE.mjs} +6 -5
- package/dist/lib/{browser/state-2T4KDWBX.mjs.map → node-esm/state-XNWOLBNE.mjs.map} +1 -1
- package/dist/lib/node-esm/types/index.mjs +7 -10
- package/dist/types/src/ThreadPlugin.d.ts +1 -1
- package/dist/types/src/ThreadPlugin.d.ts.map +1 -1
- package/dist/types/src/calls/media-manager.d.ts.map +1 -1
- package/dist/types/src/calls-service.stories.d.ts +0 -1
- package/dist/types/src/calls-service.stories.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/blueprint-definition.d.ts +5 -0
- package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -0
- package/dist/types/src/capabilities/capabilities.d.ts +2 -2
- package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +1 -1
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/markdown.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/components/Call/Toolbar.d.ts +2 -2
- package/dist/types/src/components/Call/Toolbar.d.ts.map +1 -1
- package/dist/types/src/components/CallDebugPanel.d.ts.map +1 -1
- package/dist/types/src/components/ChannelContainer.d.ts +2 -2
- package/dist/types/src/components/ChannelContainer.d.ts.map +1 -1
- package/dist/types/src/components/ChannelContainer.stories.d.ts +73 -8
- package/dist/types/src/components/ChannelContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/Chat.stories.d.ts +73 -6
- package/dist/types/src/components/Chat.stories.d.ts.map +1 -1
- package/dist/types/src/components/ChatContainer.d.ts +6 -5
- package/dist/types/src/components/ChatContainer.d.ts.map +1 -1
- package/dist/types/src/components/Comments.stories.d.ts +1 -2
- package/dist/types/src/components/Comments.stories.d.ts.map +1 -1
- package/dist/types/src/components/CommentsContainer.d.ts +2 -2
- package/dist/types/src/components/CommentsContainer.d.ts.map +1 -1
- package/dist/types/src/components/CommentsThreadContainer.d.ts +8 -8
- package/dist/types/src/components/CommentsThreadContainer.d.ts.map +1 -1
- package/dist/types/src/components/Media/VideoObject.d.ts +2 -2
- package/dist/types/src/components/Media/VideoObject.d.ts.map +1 -1
- package/dist/types/src/components/Media/VideoObject.stories.d.ts +5 -3
- package/dist/types/src/components/Media/VideoObject.stories.d.ts.map +1 -1
- package/dist/types/src/components/MessageContainer.d.ts +2 -2
- package/dist/types/src/components/MessageContainer.d.ts.map +1 -1
- package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.stories.d.ts +2 -2
- package/dist/types/src/components/ResponsiveGrid/ResponsiveContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts +2 -2
- package/dist/types/src/components/ResponsiveGrid/ResponsiveGrid.stories.d.ts.map +1 -1
- package/dist/types/src/components/ResponsiveGrid/ResponsiveGridItem.d.ts.map +1 -1
- package/dist/types/src/components/ThreadCompanion.d.ts +5 -0
- package/dist/types/src/components/ThreadCompanion.d.ts.map +1 -0
- package/dist/types/src/components/ThreadSettings.d.ts +1 -1
- package/dist/types/src/components/ThreadSettings.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +3 -3
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/components/testing.d.ts +3 -3
- package/dist/types/src/components/testing.d.ts.map +1 -1
- package/dist/types/src/extensions/threads.d.ts.map +1 -1
- package/dist/types/src/functions/create-proposals.d.ts +6 -0
- package/dist/types/src/functions/create-proposals.d.ts.map +1 -0
- package/dist/types/src/functions/index.d.ts +2 -0
- package/dist/types/src/functions/index.d.ts.map +1 -0
- package/dist/types/src/hooks/analytics.d.ts +2 -2
- package/dist/types/src/hooks/analytics.d.ts.map +1 -1
- package/dist/types/src/hooks/index.d.ts +2 -2
- package/dist/types/src/hooks/index.d.ts.map +1 -1
- package/dist/types/src/hooks/useVideoStreamTrack.d.ts +1 -1
- package/dist/types/src/hooks/useVideoStreamTrack.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +1 -2
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/testing/stories.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +72 -6
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/Channel.d.ts +16 -0
- package/dist/types/src/types/Channel.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +1 -1
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +30 -117
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +62 -58
- package/src/ThreadPlugin.tsx +139 -132
- package/src/calls/media-manager.ts +9 -6
- package/src/calls/util/stub-media-streams.ts +2 -2
- package/src/calls-service.stories.tsx +2 -5
- package/src/capabilities/app-graph-builder.ts +41 -30
- package/src/capabilities/blueprint-definition.ts +38 -0
- package/src/capabilities/capabilities.ts +7 -7
- package/src/capabilities/index.ts +1 -1
- package/src/capabilities/intent-resolver.ts +22 -62
- package/src/capabilities/markdown.ts +5 -3
- package/src/capabilities/react-root.tsx +2 -2
- package/src/capabilities/react-surface.tsx +25 -23
- package/src/components/Call/Call.tsx +1 -1
- package/src/components/Call/Toolbar.tsx +5 -5
- package/src/components/CallDebugPanel.tsx +12 -14
- package/src/components/CallSidebar.tsx +1 -1
- package/src/components/ChannelContainer.stories.tsx +10 -10
- package/src/components/ChannelContainer.tsx +19 -15
- package/src/components/Chat.stories.tsx +14 -19
- package/src/components/ChatContainer.tsx +29 -21
- package/src/components/Comments.stories.tsx +11 -17
- package/src/components/CommentsContainer.tsx +5 -7
- package/src/components/CommentsThreadContainer.tsx +31 -27
- package/src/components/Lobby/Lobby.tsx +1 -1
- package/src/components/Media/VideoObject.stories.tsx +12 -7
- package/src/components/Media/VideoObject.tsx +1 -1
- package/src/components/MessageContainer.tsx +6 -6
- package/src/components/Participant/Participant.tsx +1 -1
- package/src/components/ResponsiveGrid/ResponsiveContainer.stories.tsx +3 -4
- package/src/components/ResponsiveGrid/ResponsiveContainer.tsx +2 -2
- package/src/components/ResponsiveGrid/ResponsiveGrid.stories.tsx +4 -5
- package/src/components/ResponsiveGrid/ResponsiveGrid.tsx +5 -5
- package/src/components/ResponsiveGrid/ResponsiveGridItem.tsx +5 -2
- package/src/components/{ThreadComplementary.tsx → ThreadCompanion.tsx} +41 -34
- package/src/components/ThreadSettings.tsx +4 -5
- package/src/components/index.ts +4 -4
- package/src/components/testing.ts +7 -9
- package/src/extensions/threads.ts +26 -17
- package/src/functions/create-proposals.ts +56 -0
- package/src/functions/index.ts +5 -0
- package/src/hooks/analytics.ts +4 -7
- package/src/hooks/index.ts +3 -2
- package/src/hooks/useVideoStreamTrack.tsx +1 -1
- package/src/meta.ts +9 -5
- package/src/testing/stories.ts +3 -6
- package/src/translations.ts +4 -3
- package/src/types/Channel.ts +26 -0
- package/src/types/index.ts +1 -1
- package/src/types/types.ts +18 -27
- package/src/util.ts +1 -1
- package/dist/lib/browser/ChannelContainer-4PYFOIDK.mjs +0 -16
- package/dist/lib/browser/ChatContainer-EXNNREYB.mjs +0 -15
- package/dist/lib/browser/app-graph-builder-FHAOPO57.mjs.map +0 -7
- package/dist/lib/browser/chunk-4APCDRSH.mjs +0 -18
- package/dist/lib/browser/chunk-4APCDRSH.mjs.map +0 -7
- package/dist/lib/browser/chunk-7W7QK5ZP.mjs.map +0 -7
- package/dist/lib/browser/chunk-EV4JWI7L.mjs +0 -17
- package/dist/lib/browser/chunk-EV4JWI7L.mjs.map +0 -7
- package/dist/lib/browser/chunk-G4CNILRR.mjs +0 -23
- package/dist/lib/browser/chunk-G4CNILRR.mjs.map +0 -7
- package/dist/lib/browser/chunk-GERVMFQW.mjs.map +0 -7
- package/dist/lib/browser/chunk-KTWYVC5X.mjs.map +0 -7
- package/dist/lib/browser/chunk-PBMNFG3B.mjs.map +0 -7
- package/dist/lib/browser/chunk-RI3Z6MK3.mjs.map +0 -7
- package/dist/lib/browser/chunk-ZCEU5K23.mjs.map +0 -7
- package/dist/lib/browser/chunk-ZH2WPTNP.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-J7OCP2P6.mjs.map +0 -7
- package/dist/lib/browser/markdown-Z677YORA.mjs.map +0 -7
- package/dist/lib/browser/react-root-XKOD4KRB.mjs +0 -28
- package/dist/lib/browser/react-root-XKOD4KRB.mjs.map +0 -7
- package/dist/lib/browser/react-surface-GVGZRBDK.mjs.map +0 -7
- package/dist/lib/browser/toolkit-KUPIIFC6.mjs +0 -80
- package/dist/lib/browser/toolkit-KUPIIFC6.mjs.map +0 -7
- package/dist/lib/node-esm/ChannelContainer-KQQEZWUN.mjs +0 -17
- package/dist/lib/node-esm/ChatContainer-QVQKFBWA.mjs +0 -16
- package/dist/lib/node-esm/app-graph-builder-XEYWX5FC.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-4T45PCKP.mjs +0 -25
- package/dist/lib/node-esm/chunk-4T45PCKP.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-57XR3LEF.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-DKCQCENK.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-GRLRWTRU.mjs +0 -19
- package/dist/lib/node-esm/chunk-GRLRWTRU.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-JNPKMT7O.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-LE2LIYGX.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-P6E247RF.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-PYTVBN5J.mjs +0 -19
- package/dist/lib/node-esm/chunk-PYTVBN5J.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-SNKFZQST.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-TIPIOH2J.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-SR2LW4HF.mjs.map +0 -7
- package/dist/lib/node-esm/markdown-FL4IXLRP.mjs.map +0 -7
- package/dist/lib/node-esm/react-root-4JWDRIQB.mjs +0 -29
- package/dist/lib/node-esm/react-root-4JWDRIQB.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-WLQUVRAX.mjs.map +0 -7
- package/dist/lib/node-esm/toolkit-KZIS7G36.mjs +0 -81
- package/dist/lib/node-esm/toolkit-KZIS7G36.mjs.map +0 -7
- package/dist/types/src/capabilities/toolkit.d.ts +0 -5
- package/dist/types/src/capabilities/toolkit.d.ts.map +0 -1
- package/dist/types/src/components/ThreadComplementary.d.ts +0 -5
- package/dist/types/src/components/ThreadComplementary.d.ts.map +0 -1
- package/dist/types/src/types/schema.d.ts +0 -177
- package/dist/types/src/types/schema.d.ts.map +0 -1
- package/src/capabilities/toolkit.ts +0 -78
- package/src/types/schema.ts +0 -33
- /package/dist/lib/browser/{ChannelContainer-4PYFOIDK.mjs.map → ChannelContainer-JI3ZRZ5S.mjs.map} +0 -0
- /package/dist/lib/browser/{ChatContainer-EXNNREYB.mjs.map → ChatContainer-6FVFME3R.mjs.map} +0 -0
- /package/dist/lib/{node-esm/ChannelContainer-KQQEZWUN.mjs.map → browser/chunk-J5LGTIGS.mjs.map} +0 -0
- /package/dist/lib/node-esm/{ChatContainer-QVQKFBWA.mjs.map → ChannelContainer-RQY4PR4F.mjs.map} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/ThreadPlugin.tsx", "../../../src/translations.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Capabilities, Events, contributes, createIntent, defineModule, definePlugin } from '@dxos/app-framework';\nimport { Ref } from '@dxos/echo';\nimport { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';\nimport { MarkdownEvents } from '@dxos/plugin-markdown';\nimport { SpaceCapabilities, SpaceEvents } from '@dxos/plugin-space';\nimport { defineObjectForm } from '@dxos/plugin-space/types';\nimport { translations as threadTranslations } from '@dxos/react-ui-thread';\nimport { AnchoredTo,
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": ["Capabilities", "Events", "contributes", "createIntent", "defineModule", "definePlugin", "Ref", "ClientCapabilities", "ClientEvents", "MarkdownEvents", "SpaceCapabilities", "SpaceEvents", "defineObjectForm", "translations", "threadTranslations", "AnchoredTo", "
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Capabilities, Events, contributes, createIntent, defineModule, definePlugin } from '@dxos/app-framework';\nimport { Ref, Type } from '@dxos/echo';\nimport { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';\nimport { MarkdownEvents } from '@dxos/plugin-markdown';\nimport { SpaceCapabilities, SpaceEvents } from '@dxos/plugin-space';\nimport { defineObjectForm } from '@dxos/plugin-space/types';\nimport { translations as threadTranslations } from '@dxos/react-ui-thread';\nimport { AnchoredTo, Message, Thread } from '@dxos/types';\n\nimport {\n AppGraphBuilder,\n BlueprintDefinition,\n CallManager,\n IntentResolver,\n Markdown,\n ReactRoot,\n ReactSurface,\n ThreadState,\n} from './capabilities';\nimport { THREAD_ITEM, meta } from './meta';\nimport { translations } from './translations';\nimport { Channel, ThreadAction } from './types';\n\n// TODO(Zan): Every instance of `cursor` should be replaced with `anchor`.\n// NOTE(burdon): Review/discuss CursorConverter semantics.\n\n// TODO(wittjosiah): Rename to ChatPlugin.\n// TODO(wittjosiah): Enabling comments should likely be factored out of this plugin but depend on it's capabilities.\nexport const ThreadPlugin = definePlugin(meta, () => [\n defineModule({\n id: `${meta.id}/module/call-manager`,\n activatesOn: ClientEvents.ClientReady,\n activate: CallManager,\n }),\n // TODO(wittjosiah): Currently not used but leaving because there will likely be settings for threads again.\n // defineModule({\n // id: `${meta.id}/module/settings`,\n // activatesOn: Events.SetupSettings,\n // activate: ThreadSettings,\n // }),\n defineModule({\n id: `${meta.id}/module/state`,\n // TODO(wittjosiah): Does not integrate with settings store.\n // Should this be a different event?\n // Should settings store be renamed to be more generic?\n activatesOn: Events.SetupSettings,\n activate: ThreadState,\n }),\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, [...translations, ...threadTranslations]),\n }),\n defineModule({\n id: `${meta.id}/module/metadata`,\n activatesOn: Events.SetupMetadata,\n activate: () => [\n contributes(Capabilities.Metadata, {\n id: Type.getTypename(Channel.Channel),\n metadata: {\n icon: 'ph--hash--regular',\n iconHue: 'rose',\n },\n }),\n contributes(Capabilities.Metadata, {\n id: Type.getTypename(Thread.Thread),\n metadata: {\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: async (thread: Thread.Thread) => await Ref.Array.loadAll(thread.messages ?? []),\n },\n }),\n contributes(Capabilities.Metadata, {\n id: Message.Message.typename,\n metadata: {\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: () => [], // loadObjectReferences(message, (message) => [...message.parts, message.context]),\n },\n }),\n contributes(Capabilities.Metadata, {\n id: THREAD_ITEM,\n metadata: {\n parse: (item: Thread.Thread, type: string) => {\n switch (type) {\n case 'node':\n return { id: item.id, label: item.name, data: item };\n case 'object':\n return item;\n case 'view-object':\n return { id: `${item.id}-view`, object: item };\n }\n },\n },\n }),\n ],\n }),\n defineModule({\n id: `${meta.id}/module/object-form`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () =>\n contributes(\n SpaceCapabilities.ObjectForm,\n defineObjectForm({\n objectSchema: Channel.Channel,\n getIntent: (_, options) =>\n createIntent(ThreadAction.CreateChannel, {\n spaceId: options.space.id,\n }),\n }),\n ),\n }),\n defineModule({\n id: `${meta.id}/module/schema`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () =>\n contributes(ClientCapabilities.Schema, [\n AnchoredTo.AnchoredTo,\n Thread.Thread,\n Message.Message,\n Message.MessageV1,\n ]),\n }),\n defineModule({\n id: `${meta.id}/module/migration`,\n activatesOn: ClientEvents.SetupMigration,\n activate: () => contributes(ClientCapabilities.Migration, [Message.MessageV1ToV2]),\n }),\n defineModule({\n id: `${meta.id}/module/on-space-created`,\n activatesOn: SpaceEvents.SpaceCreated,\n activate: () =>\n contributes(SpaceCapabilities.onCreateSpace, ({ space, rootCollection }) =>\n createIntent(ThreadAction.onCreateSpace, { space, rootCollection }),\n ),\n }),\n defineModule({\n id: `${meta.id}/module/markdown`,\n activatesOn: MarkdownEvents.SetupExtensions,\n activate: Markdown,\n }),\n defineModule({\n id: `${meta.id}/module/react-root`,\n activatesOn: Events.Startup,\n activate: ReactRoot,\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupReactSurface,\n activate: ReactSurface,\n }),\n defineModule({\n id: `${meta.id}/module/intent-resolver`,\n activatesOn: Events.SetupIntentResolver,\n activate: IntentResolver,\n }),\n defineModule({\n id: `${meta.id}/module/app-graph-builder`,\n activatesOn: Events.SetupAppGraph,\n activate: AppGraphBuilder,\n }),\n defineModule({\n id: `${meta.id}/module/blueprint`,\n activatesOn: Events.SetupArtifactDefinition,\n activate: BlueprintDefinition,\n }),\n]);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Type } from '@dxos/echo';\nimport { type Resource } from '@dxos/react-ui';\n\nimport { meta } from './meta';\nimport { Channel } from './types';\n\nexport const translations = [\n {\n 'en-US': {\n [Type.getTypename(Channel.Channel)]: {\n 'typename label': 'Channel',\n 'typename label_zero': 'Channels',\n 'typename label_one': 'Channel',\n 'typename label_other': 'Channels',\n 'object name placeholder': 'New channel',\n 'rename object label': 'Rename channel',\n 'delete object label': 'Delete channel',\n },\n [meta.id]: {\n 'plugin name': 'Chat',\n 'channel title label': 'Title',\n 'message placeholder': 'Reply…',\n 'activity message': 'Processing…',\n 'anonymous label': 'Anonymous',\n 'delete message block label': 'Delete message block',\n 'detached thread label': 'Referenced content was removed',\n 'delete thread label': 'Delete thread',\n 'resolve thread label': 'Resolve thread',\n 'thread deleted label': 'Thread deleted',\n 'message deleted label': 'Message deleted',\n 'comments heading': 'Comments',\n 'chat heading': 'Chat',\n 'draft button': 'DRAFT',\n 'no comments title': 'Comments',\n 'no comments message':\n 'Click on the <commentIcon></commentIcon> button in the document toolbar to create a comment thread on the selected text.',\n 'toggle show resolved': 'Show resolved',\n 'unnamed object threads label': 'Threads',\n 'mark as resolved label': 'Mark as resolved',\n 'mark as unresolved label': 'Mark as unresolved',\n 'save message label': 'Save',\n 'edit message label': 'Edit',\n 'delete message label': 'Delete message',\n 'accept proposal label': 'Accept proposal',\n 'open comments panel label': 'Show Comments',\n 'comments label': 'Comments',\n 'show all label': 'All comments',\n 'show unresolved label': 'Unresolved comments',\n\n 'channel companion label': 'Channel',\n 'call panel label': 'Active Call',\n\n 'display name label': 'Display name',\n 'display name description': 'Set your display name before joining a meeting.',\n 'display name input placeholder': 'Enter your name',\n 'set display name label': 'Continue',\n\n 'call tab label': 'Call',\n 'meeting status title': 'Calls',\n 'share meeting link label': 'Share meeting',\n 'show webrtc stats title': 'WebRTC Stats',\n 'show calls history title': 'Service History',\n\n 'meeting summary label': 'Summary',\n 'summarize label': 'Summarize',\n 'summarizing label': 'Creating summary...',\n 'create summary message': 'A summary doesn’t exist for this meeting yet. Create one now?',\n\n 'join call': 'Join',\n 'leave call': 'Leave',\n\n 'lobby participants_zero': 'No participants',\n 'lobby participants_one': '1 participant',\n 'lobby participants_other': '{{count}} participants',\n\n 'icon pin': 'Pin video',\n 'icon unpin': 'Unpin video',\n 'icon wave': 'Waving',\n 'icon muted': 'Muted',\n 'icon speaking': 'Speaking',\n\n 'mic on': 'Unmute',\n 'mic off': 'Mute',\n 'camera on': 'Turn camera on',\n 'camera off': 'Turn camera off',\n 'camera off label': 'Camera off',\n\n 'raise hand': 'Raise hand',\n 'lower hand': 'Lower hand',\n 'screenshare on': 'Share screen',\n 'screenshare off': 'Stop streaming',\n },\n },\n },\n] as const satisfies Resource[];\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Capabilities", "Events", "contributes", "createIntent", "defineModule", "definePlugin", "Ref", "Type", "ClientCapabilities", "ClientEvents", "MarkdownEvents", "SpaceCapabilities", "SpaceEvents", "defineObjectForm", "translations", "threadTranslations", "AnchoredTo", "Message", "Thread", "Type", "translations", "Type", "getTypename", "Channel", "meta", "id", "ThreadPlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "ClientEvents", "ClientReady", "activate", "CallManager", "Events", "SetupSettings", "ThreadState", "SetupTranslations", "contributes", "Capabilities", "Translations", "translations", "threadTranslations", "SetupMetadata", "Metadata", "Type", "getTypename", "Channel", "metadata", "icon", "iconHue", "Thread", "loadReferences", "thread", "Ref", "Array", "loadAll", "messages", "Message", "typename", "THREAD_ITEM", "parse", "item", "type", "label", "name", "data", "object", "SetupSchema", "SpaceCapabilities", "ObjectForm", "defineObjectForm", "objectSchema", "getIntent", "_", "options", "createIntent", "ThreadAction", "CreateChannel", "spaceId", "space", "ClientCapabilities", "Schema", "AnchoredTo", "MessageV1", "SetupMigration", "Migration", "MessageV1ToV2", "SpaceEvents", "SpaceCreated", "onCreateSpace", "rootCollection", "MarkdownEvents", "SetupExtensions", "Markdown", "Startup", "ReactRoot", "SetupReactSurface", "ReactSurface", "SetupIntentResolver", "IntentResolver", "SetupAppGraph", "AppGraphBuilder", "SetupArtifactDefinition", "BlueprintDefinition"]
|
|
7
7
|
}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
|
-
|
|
4
|
-
ThreadAction
|
|
5
|
-
|
|
6
|
-
} from "./chunk-P6E247RF.mjs";
|
|
3
|
+
Channel_exports,
|
|
4
|
+
ThreadAction
|
|
5
|
+
} from "./chunk-MEIWWPR2.mjs";
|
|
7
6
|
import {
|
|
8
7
|
ThreadCapabilities
|
|
9
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-RT6NRL2I.mjs";
|
|
10
9
|
import {
|
|
11
|
-
|
|
12
|
-
} from "./chunk-
|
|
10
|
+
meta
|
|
11
|
+
} from "./chunk-2AEIN5MI.mjs";
|
|
12
|
+
import "./chunk-HSLMI22Q.mjs";
|
|
13
13
|
|
|
14
14
|
// src/capabilities/intent-resolver.ts
|
|
15
|
-
import
|
|
15
|
+
import * as Effect from "effect/Effect";
|
|
16
16
|
import { Capabilities, contributes, createIntent, createResolver } from "@dxos/app-framework";
|
|
17
17
|
import { sleep } from "@dxos/async";
|
|
18
18
|
import { Obj, Relation, Type } from "@dxos/echo";
|
|
@@ -20,16 +20,16 @@ import { invariant } from "@dxos/invariant";
|
|
|
20
20
|
import { ATTENDABLE_PATH_SEPARATOR, DeckAction } from "@dxos/plugin-deck/types";
|
|
21
21
|
import { ObservabilityAction } from "@dxos/plugin-observability/types";
|
|
22
22
|
import { CollectionAction, SpaceAction } from "@dxos/plugin-space/types";
|
|
23
|
-
import { Ref,
|
|
24
|
-
import { AnchoredTo,
|
|
23
|
+
import { Ref, getSpace } from "@dxos/react-client/echo";
|
|
24
|
+
import { AnchoredTo, Message, Thread } from "@dxos/types";
|
|
25
25
|
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-thread/src/capabilities/intent-resolver.ts";
|
|
26
|
-
var intent_resolver_default = (context) => contributes(Capabilities.IntentResolver, [
|
|
26
|
+
var intent_resolver_default = ((context) => contributes(Capabilities.IntentResolver, [
|
|
27
27
|
createResolver({
|
|
28
|
-
intent: ThreadAction.
|
|
28
|
+
intent: ThreadAction.onCreateSpace,
|
|
29
29
|
resolve: ({ space, rootCollection }) => Effect.gen(function* () {
|
|
30
30
|
const { dispatch } = context.getCapability(Capabilities.IntentDispatcher);
|
|
31
31
|
const { object: collection } = yield* dispatch(createIntent(CollectionAction.CreateQueryCollection, {
|
|
32
|
-
typename: Type.getTypename(
|
|
32
|
+
typename: Type.getTypename(Channel_exports.Channel)
|
|
33
33
|
}));
|
|
34
34
|
rootCollection.objects.push(Ref.make(collection));
|
|
35
35
|
const { object: channel } = yield* dispatch(createIntent(ThreadAction.CreateChannel, {
|
|
@@ -43,13 +43,8 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
|
|
|
43
43
|
intent: ThreadAction.CreateChannel,
|
|
44
44
|
resolve: ({ name }) => ({
|
|
45
45
|
data: {
|
|
46
|
-
object:
|
|
47
|
-
name
|
|
48
|
-
defaultThread: Ref.make(Obj.make(ThreadType, {
|
|
49
|
-
messages: [],
|
|
50
|
-
status: "active"
|
|
51
|
-
})),
|
|
52
|
-
threads: []
|
|
46
|
+
object: Channel_exports.make({
|
|
47
|
+
name
|
|
53
48
|
})
|
|
54
49
|
}
|
|
55
50
|
})
|
|
@@ -57,8 +52,7 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
|
|
|
57
52
|
createResolver({
|
|
58
53
|
intent: ThreadAction.CreateChannelThread,
|
|
59
54
|
resolve: ({ channel }) => {
|
|
60
|
-
const thread =
|
|
61
|
-
messages: [],
|
|
55
|
+
const thread = Thread.make({
|
|
62
56
|
status: "active"
|
|
63
57
|
});
|
|
64
58
|
channel.threads.push(Ref.make(thread));
|
|
@@ -73,24 +67,12 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
|
|
|
73
67
|
createResolver({
|
|
74
68
|
intent: ThreadAction.Create,
|
|
75
69
|
resolve: ({ name, anchor: _anchor, subject }) => {
|
|
76
|
-
const space = getSpace(subject);
|
|
77
|
-
invariant(space, "Space not found", {
|
|
78
|
-
F: __dxlog_file,
|
|
79
|
-
L: 69,
|
|
80
|
-
S: void 0,
|
|
81
|
-
A: [
|
|
82
|
-
"space",
|
|
83
|
-
"'Space not found'"
|
|
84
|
-
]
|
|
85
|
-
});
|
|
86
70
|
const { state } = context.getCapability(ThreadCapabilities.MutableState);
|
|
87
|
-
const subjectId =
|
|
88
|
-
const thread =
|
|
89
|
-
name
|
|
90
|
-
messages: [],
|
|
91
|
-
status: "staged"
|
|
71
|
+
const subjectId = Obj.getDXN(subject).toString();
|
|
72
|
+
const thread = Thread.make({
|
|
73
|
+
name
|
|
92
74
|
});
|
|
93
|
-
const anchor = Relation.make(AnchoredTo, {
|
|
75
|
+
const anchor = Relation.make(AnchoredTo.AnchoredTo, {
|
|
94
76
|
[Relation.Source]: thread,
|
|
95
77
|
[Relation.Target]: subject,
|
|
96
78
|
anchor: _anchor
|
|
@@ -106,65 +88,7 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
|
|
|
106
88
|
return {
|
|
107
89
|
intents: [
|
|
108
90
|
createIntent(ThreadAction.Select, {
|
|
109
|
-
current:
|
|
110
|
-
}),
|
|
111
|
-
createIntent(DeckAction.ChangeCompanion, {
|
|
112
|
-
primary: subjectId,
|
|
113
|
-
companion: `${subjectId}${ATTENDABLE_PATH_SEPARATOR}comments`
|
|
114
|
-
})
|
|
115
|
-
]
|
|
116
|
-
};
|
|
117
|
-
}
|
|
118
|
-
}),
|
|
119
|
-
createResolver({
|
|
120
|
-
intent: ThreadAction.AddProposal,
|
|
121
|
-
resolve: ({ text, anchor, sender, subject }) => {
|
|
122
|
-
const space = getSpace(subject);
|
|
123
|
-
invariant(space, "Space not found", {
|
|
124
|
-
F: __dxlog_file,
|
|
125
|
-
L: 102,
|
|
126
|
-
S: void 0,
|
|
127
|
-
A: [
|
|
128
|
-
"space",
|
|
129
|
-
"'Space not found'"
|
|
130
|
-
]
|
|
131
|
-
});
|
|
132
|
-
const subjectId = fullyQualifiedId(subject);
|
|
133
|
-
const proposal = Obj.make(DataType.Message, {
|
|
134
|
-
created: (/* @__PURE__ */ new Date()).toISOString(),
|
|
135
|
-
sender,
|
|
136
|
-
blocks: [
|
|
137
|
-
{
|
|
138
|
-
_tag: "proposal",
|
|
139
|
-
text
|
|
140
|
-
}
|
|
141
|
-
]
|
|
142
|
-
});
|
|
143
|
-
const thread = Obj.make(ThreadType, {
|
|
144
|
-
name: "Proposal",
|
|
145
|
-
messages: [
|
|
146
|
-
Ref.make(proposal)
|
|
147
|
-
],
|
|
148
|
-
status: "active"
|
|
149
|
-
});
|
|
150
|
-
return {
|
|
151
|
-
intents: [
|
|
152
|
-
createIntent(SpaceAction.AddObject, {
|
|
153
|
-
object: thread,
|
|
154
|
-
target: space,
|
|
155
|
-
hidden: true
|
|
156
|
-
}),
|
|
157
|
-
createIntent(SpaceAction.AddRelation, {
|
|
158
|
-
space,
|
|
159
|
-
schema: AnchoredTo,
|
|
160
|
-
source: thread,
|
|
161
|
-
target: subject,
|
|
162
|
-
fields: {
|
|
163
|
-
anchor
|
|
164
|
-
}
|
|
165
|
-
}),
|
|
166
|
-
createIntent(ThreadAction.Select, {
|
|
167
|
-
current: fullyQualifiedId(thread)
|
|
91
|
+
current: Obj.getDXN(thread).toString()
|
|
168
92
|
}),
|
|
169
93
|
createIntent(DeckAction.ChangeCompanion, {
|
|
170
94
|
primary: subjectId,
|
|
@@ -192,7 +116,7 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
|
|
|
192
116
|
const space = getSpace(thread);
|
|
193
117
|
invariant(space, "Space not found", {
|
|
194
118
|
F: __dxlog_file,
|
|
195
|
-
L:
|
|
119
|
+
L: 108,
|
|
196
120
|
S: void 0,
|
|
197
121
|
A: [
|
|
198
122
|
"space",
|
|
@@ -218,7 +142,7 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
|
|
|
218
142
|
resolve: async ({ subject, anchor, thread: _thread }, undo) => {
|
|
219
143
|
const thread = _thread ?? Relation.getSource(anchor);
|
|
220
144
|
const { state } = context.getCapability(ThreadCapabilities.MutableState);
|
|
221
|
-
const subjectId =
|
|
145
|
+
const subjectId = Obj.getDXN(subject).toString();
|
|
222
146
|
const draft = state.drafts[subjectId];
|
|
223
147
|
if (draft) {
|
|
224
148
|
const index = draft.findIndex((a) => a.id === anchor.id);
|
|
@@ -240,7 +164,7 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
|
|
|
240
164
|
message: [
|
|
241
165
|
"thread deleted label",
|
|
242
166
|
{
|
|
243
|
-
ns:
|
|
167
|
+
ns: meta.id
|
|
244
168
|
}
|
|
245
169
|
],
|
|
246
170
|
data: {
|
|
@@ -281,18 +205,18 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
|
|
|
281
205
|
resolve: ({ anchor, subject, sender, text }) => {
|
|
282
206
|
const thread = Relation.getSource(anchor);
|
|
283
207
|
const { state } = context.getCapability(ThreadCapabilities.MutableState);
|
|
284
|
-
const subjectId =
|
|
208
|
+
const subjectId = Obj.getDXN(subject).toString();
|
|
285
209
|
const space = getSpace(subject);
|
|
286
210
|
invariant(space, "Space not found", {
|
|
287
211
|
F: __dxlog_file,
|
|
288
|
-
L:
|
|
212
|
+
L: 193,
|
|
289
213
|
S: void 0,
|
|
290
214
|
A: [
|
|
291
215
|
"space",
|
|
292
216
|
"'Space not found'"
|
|
293
217
|
]
|
|
294
218
|
});
|
|
295
|
-
const message = Obj.make(
|
|
219
|
+
const message = Obj.make(Message.Message, {
|
|
296
220
|
created: (/* @__PURE__ */ new Date()).toISOString(),
|
|
297
221
|
sender,
|
|
298
222
|
blocks: [
|
|
@@ -315,7 +239,7 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
|
|
|
315
239
|
}));
|
|
316
240
|
intents.push(createIntent(SpaceAction.AddRelation, {
|
|
317
241
|
space,
|
|
318
|
-
schema: AnchoredTo,
|
|
242
|
+
schema: AnchoredTo.AnchoredTo,
|
|
319
243
|
source: thread,
|
|
320
244
|
target: subject,
|
|
321
245
|
fields: {
|
|
@@ -352,7 +276,7 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
|
|
|
352
276
|
const space = getSpace(subject);
|
|
353
277
|
invariant(space, "Space not found", {
|
|
354
278
|
F: __dxlog_file,
|
|
355
|
-
L:
|
|
279
|
+
L: 253,
|
|
356
280
|
S: void 0,
|
|
357
281
|
A: [
|
|
358
282
|
"space",
|
|
@@ -382,7 +306,7 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
|
|
|
382
306
|
message: [
|
|
383
307
|
"message deleted label",
|
|
384
308
|
{
|
|
385
|
-
ns:
|
|
309
|
+
ns: meta.id
|
|
386
310
|
}
|
|
387
311
|
],
|
|
388
312
|
data: {
|
|
@@ -421,8 +345,8 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
|
|
|
421
345
|
}
|
|
422
346
|
}
|
|
423
347
|
})
|
|
424
|
-
]);
|
|
348
|
+
]));
|
|
425
349
|
export {
|
|
426
350
|
intent_resolver_default as default
|
|
427
351
|
};
|
|
428
|
-
//# sourceMappingURL=intent-resolver-
|
|
352
|
+
//# sourceMappingURL=intent-resolver-SJFABEE7.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/intent-resolver.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities, type PluginContext, contributes, createIntent, createResolver } from '@dxos/app-framework';\nimport { sleep } from '@dxos/async';\nimport { Obj, Relation, Type } from '@dxos/echo';\nimport { invariant } from '@dxos/invariant';\nimport { ATTENDABLE_PATH_SEPARATOR, DeckAction } from '@dxos/plugin-deck/types';\nimport { ObservabilityAction } from '@dxos/plugin-observability/types';\nimport { CollectionAction, SpaceAction } from '@dxos/plugin-space/types';\nimport { Ref, getSpace } from '@dxos/react-client/echo';\nimport { AnchoredTo, Message, Thread } from '@dxos/types';\n\nimport { meta } from '../meta';\nimport { Channel, ThreadAction } from '../types';\n\nimport { ThreadCapabilities } from './capabilities';\n\nexport default (context: PluginContext) =>\n contributes(Capabilities.IntentResolver, [\n createResolver({\n intent: ThreadAction.onCreateSpace,\n resolve: ({ space, rootCollection }) =>\n Effect.gen(function* () {\n const { dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n const { object: collection } = yield* dispatch(\n createIntent(CollectionAction.CreateQueryCollection, { typename: Type.getTypename(Channel.Channel) }),\n );\n rootCollection.objects.push(Ref.make(collection));\n\n const { object: channel } = yield* dispatch(\n createIntent(ThreadAction.CreateChannel, { name: 'General', spaceId: space.id }),\n );\n space.db.add(channel);\n }),\n }),\n createResolver({\n intent: ThreadAction.CreateChannel,\n resolve: ({ name }) => ({\n data: {\n object: Channel.make({ name }),\n },\n }),\n }),\n createResolver({\n intent: ThreadAction.CreateChannelThread,\n resolve: ({ channel }) => {\n const thread = Thread.make({ status: 'active' });\n channel.threads.push(Ref.make(thread));\n return {\n data: {\n object: thread,\n },\n };\n },\n }),\n // TODO(wittjosiah): Break this up into more composable pieces.\n createResolver({\n intent: ThreadAction.Create,\n resolve: ({ name, anchor: _anchor, subject }) => {\n const { state } = context.getCapability(ThreadCapabilities.MutableState);\n const subjectId = Obj.getDXN(subject).toString();\n const thread = Thread.make({ name });\n const anchor = Relation.make(AnchoredTo.AnchoredTo, {\n [Relation.Source]: thread,\n [Relation.Target]: subject,\n anchor: _anchor,\n });\n\n const draft = state.drafts[subjectId];\n if (draft) {\n draft.push(anchor);\n } else {\n state.drafts[subjectId] = [anchor];\n }\n\n return {\n intents: [\n createIntent(ThreadAction.Select, { current: Obj.getDXN(thread).toString() }),\n createIntent(DeckAction.ChangeCompanion, {\n primary: subjectId,\n companion: `${subjectId}${ATTENDABLE_PATH_SEPARATOR}comments`,\n }),\n ],\n };\n },\n }),\n createResolver({\n intent: ThreadAction.Select,\n resolve: ({ current }) => {\n const { state } = context.getCapability(ThreadCapabilities.MutableState);\n state.current = current;\n },\n }),\n createResolver({\n intent: ThreadAction.ToggleResolved,\n resolve: ({ thread }) => {\n if (thread.status === 'active' || thread.status === undefined) {\n thread.status = 'resolved';\n } else if (thread.status === 'resolved') {\n thread.status = 'active';\n }\n\n const space = getSpace(thread);\n invariant(space, 'Space not found');\n const spaceId = space.id;\n\n return {\n intents: [\n createIntent(ObservabilityAction.SendEvent, {\n name: 'threads.toggle-resolved',\n properties: {\n spaceId,\n threadId: thread.id,\n },\n }),\n ],\n };\n },\n }),\n createResolver({\n intent: ThreadAction.Delete,\n resolve: async ({ subject, anchor, thread: _thread }, undo) => {\n const thread = _thread ?? (Relation.getSource(anchor) as Thread.Thread);\n const { state } = context.getCapability(ThreadCapabilities.MutableState);\n const subjectId = Obj.getDXN(subject).toString();\n const draft = state.drafts[subjectId];\n if (draft) {\n // Check if we're deleting a draft; if so, remo ve it.\n const index = draft.findIndex((a) => a.id === anchor.id);\n if (index !== -1) {\n draft.splice(index, 1);\n return;\n }\n }\n\n const space = getSpace(anchor);\n if (!space) {\n return;\n }\n\n if (!undo) {\n // TODO(wittjosiah): Without sleep, rendering crashes at `Relation.setSource(anchor)`.\n space.db.remove(anchor);\n await sleep(100);\n space.db.remove(thread);\n\n return {\n undoable: {\n message: ['thread deleted label', { ns: meta.id }],\n data: { thread, anchor },\n },\n intents: [\n createIntent(ObservabilityAction.SendEvent, {\n name: 'threads.delete',\n properties: {\n spaceId: space.id,\n threadId: thread.id,\n },\n }),\n ],\n };\n } else {\n // TODO(wittjosiah): Without sleep, rendering crashes at `Relation.setSource(anchor)`.\n space.db.add(thread);\n await sleep(100);\n space.db.add(anchor);\n\n return {\n intents: [\n createIntent(ObservabilityAction.SendEvent, {\n name: 'threads.undo-delete',\n properties: {\n spaceId: space.id,\n threadId: thread.id,\n },\n }),\n ],\n };\n }\n },\n }),\n createResolver({\n intent: ThreadAction.AddMessage,\n resolve: ({ anchor, subject, sender, text }) => {\n const thread = Relation.getSource(anchor) as Thread.Thread;\n const { state } = context.getCapability(ThreadCapabilities.MutableState);\n const subjectId = Obj.getDXN(subject).toString();\n const space = getSpace(subject);\n invariant(space, 'Space not found');\n\n const message = Obj.make(Message.Message, {\n created: new Date().toISOString(),\n sender,\n blocks: [{ _tag: 'text', text }],\n // TODO(wittjosiah): Context based on attention.\n // context: context ? Ref.make(context) : undefined,\n });\n thread.messages.push(Ref.make(message));\n\n const intents = [];\n const draft = state.drafts[subjectId]?.find((a) => a.id === anchor.id);\n if (draft) {\n // Move draft to document.\n thread.status = 'active';\n // TODO(wittjosiah): This causes the thread to flash as it transitions from draft to db.\n state.drafts[subjectId] = state.drafts[subjectId]?.filter((a) => a.id !== anchor.id);\n intents.push(createIntent(SpaceAction.AddObject, { object: thread, target: space, hidden: true }));\n intents.push(\n createIntent(SpaceAction.AddRelation, {\n space,\n schema: AnchoredTo.AnchoredTo,\n source: thread,\n target: subject,\n fields: { anchor: draft.anchor },\n }),\n );\n intents.push(\n createIntent(ObservabilityAction.SendEvent, {\n name: 'threads.create',\n properties: {\n spaceId: space.id,\n threadId: thread.id,\n },\n }),\n );\n }\n\n intents.push(\n createIntent(ObservabilityAction.SendEvent, {\n name: 'threads.message.add',\n properties: {\n spaceId: space.id,\n threadId: thread.id,\n threadLength: thread.messages.length,\n messageId: message.id,\n messageLength: text.length,\n },\n }),\n );\n\n return { intents };\n },\n }),\n createResolver({\n intent: ThreadAction.DeleteMessage,\n resolve: ({ subject, anchor, messageId, message, messageIndex }, undo) => {\n const thread = Relation.getSource(anchor) as Thread.Thread;\n const space = getSpace(subject);\n invariant(space, 'Space not found');\n\n if (!undo) {\n const messageIndex = thread.messages.findIndex(Ref.hasObjectId(messageId));\n const message = thread.messages[messageIndex]?.target;\n if (!message) {\n return;\n }\n\n if (messageIndex === 0 && thread.messages.length === 1) {\n // If the message is the only message in the thread, delete the thread.\n return {\n intents: [createIntent(ThreadAction.Delete, { subject, anchor })],\n };\n } else {\n thread.messages.splice(messageIndex, 1);\n }\n\n return {\n undoable: {\n message: ['message deleted label', { ns: meta.id }],\n data: { message, messageIndex },\n },\n intents: [\n createIntent(ObservabilityAction.SendEvent, {\n name: 'threads.message.delete',\n properties: {\n spaceId: space.id,\n threadId: thread.id,\n messageId: message.id,\n },\n }),\n ],\n };\n } else {\n if (messageIndex === undefined || !message) {\n return;\n }\n\n thread.messages.splice(messageIndex, 0, Ref.make(message));\n return {\n intents: [\n createIntent(ObservabilityAction.SendEvent, {\n name: 'threads.message.undo-delete',\n properties: {\n spaceId: space.id,\n threadId: thread.id,\n messageId: message.id,\n },\n }),\n ],\n };\n }\n },\n }),\n ]);\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Effect", "Capabilities", "contributes", "createIntent", "createResolver", "sleep", "Obj", "Relation", "Type", "invariant", "ATTENDABLE_PATH_SEPARATOR", "DeckAction", "ObservabilityAction", "CollectionAction", "SpaceAction", "Ref", "getSpace", "AnchoredTo", "Message", "Thread", "context", "contributes", "Capabilities", "IntentResolver", "createResolver", "intent", "ThreadAction", "onCreateSpace", "resolve", "space", "rootCollection", "gen", "dispatch", "getCapability", "IntentDispatcher", "object", "collection", "createIntent", "CollectionAction", "CreateQueryCollection", "typename", "Type", "getTypename", "Channel", "objects", "push", "Ref", "make", "channel", "CreateChannel", "name", "spaceId", "id", "db", "add", "data", "CreateChannelThread", "thread", "Thread", "status", "threads", "Create", "anchor", "_anchor", "subject", "state", "ThreadCapabilities", "MutableState", "subjectId", "Obj", "getDXN", "toString", "Relation", "AnchoredTo", "Source", "Target", "draft", "drafts", "intents", "Select", "current", "DeckAction", "ChangeCompanion", "primary", "companion", "ATTENDABLE_PATH_SEPARATOR", "ToggleResolved", "undefined", "getSpace", "invariant", "ObservabilityAction", "SendEvent", "properties", "threadId", "Delete", "_thread", "undo", "getSource", "index", "findIndex", "a", "splice", "remove", "sleep", "undoable", "message", "ns", "meta", "AddMessage", "sender", "text", "Message", "created", "Date", "toISOString", "blocks", "_tag", "messages", "find", "filter", "SpaceAction", "AddObject", "target", "hidden", "AddRelation", "schema", "source", "fields", "threadLength", "length", "messageId", "messageLength", "DeleteMessage", "messageIndex", "hasObjectId"]
|
|
7
|
+
}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
|
-
ThreadAction
|
|
4
|
-
|
|
5
|
-
} from "./chunk-P6E247RF.mjs";
|
|
3
|
+
ThreadAction
|
|
4
|
+
} from "./chunk-MEIWWPR2.mjs";
|
|
6
5
|
import {
|
|
7
6
|
ThreadCapabilities
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-RT6NRL2I.mjs";
|
|
8
|
+
import "./chunk-2AEIN5MI.mjs";
|
|
9
|
+
import "./chunk-HSLMI22Q.mjs";
|
|
10
10
|
|
|
11
11
|
// src/capabilities/markdown.ts
|
|
12
12
|
import { EditorView as EditorView2 } from "@codemirror/view";
|
|
13
13
|
import { Capabilities, contributes, createIntent as createIntent2 } from "@dxos/app-framework";
|
|
14
|
+
import { Obj as Obj2 } from "@dxos/echo";
|
|
14
15
|
import { ATTENDABLE_PATH_SEPARATOR, DeckAction } from "@dxos/plugin-deck/types";
|
|
15
16
|
import { MarkdownCapabilities } from "@dxos/plugin-markdown";
|
|
16
|
-
import { fullyQualifiedId as fullyQualifiedId2 } from "@dxos/react-client/echo";
|
|
17
17
|
import { commentClickedEffect, commentsState, overlap } from "@dxos/react-ui-editor";
|
|
18
18
|
|
|
19
19
|
// src/extensions/threads.ts
|
|
@@ -21,9 +21,9 @@ import { EditorView } from "@codemirror/view";
|
|
|
21
21
|
import { computed, effect } from "@preact/signals-core";
|
|
22
22
|
import { createIntent } from "@dxos/app-framework";
|
|
23
23
|
import { Filter, Obj, Query, Relation } from "@dxos/echo";
|
|
24
|
-
import { createDocAccessor,
|
|
24
|
+
import { createDocAccessor, getSource, getSpace, getTextInRange } from "@dxos/react-client/echo";
|
|
25
25
|
import { comments, createExternalCommentSync } from "@dxos/react-ui-editor";
|
|
26
|
-
import { AnchoredTo } from "@dxos/
|
|
26
|
+
import { AnchoredTo, Thread } from "@dxos/types";
|
|
27
27
|
var getName = (doc, anchor) => {
|
|
28
28
|
if (doc.content) {
|
|
29
29
|
const [start, end] = anchor.split(":");
|
|
@@ -33,18 +33,18 @@ var getName = (doc, anchor) => {
|
|
|
33
33
|
}
|
|
34
34
|
};
|
|
35
35
|
var threads = (state, doc, dispatch) => {
|
|
36
|
-
const space =
|
|
36
|
+
const space = getSpace(doc);
|
|
37
37
|
if (!doc || !space || !dispatch) {
|
|
38
38
|
return [
|
|
39
39
|
comments()
|
|
40
40
|
];
|
|
41
41
|
}
|
|
42
|
-
const query = space.db.query(Query.select(Filter.ids(doc.id)).targetOf(AnchoredTo));
|
|
42
|
+
const query = space.db.query(Query.select(Filter.ids(doc.id)).targetOf(AnchoredTo.AnchoredTo));
|
|
43
43
|
const unsubscribe = query.subscribe();
|
|
44
44
|
const anchors = computed(() => query.objects.filter((anchor) => {
|
|
45
45
|
const thread = Relation.getSource(anchor);
|
|
46
|
-
return Obj.instanceOf(
|
|
47
|
-
}).concat(state.drafts[
|
|
46
|
+
return Obj.instanceOf(Thread.Thread, thread) && thread.status !== "resolved";
|
|
47
|
+
}).concat(state.drafts[Obj.getDXN(doc).toString()] ?? []));
|
|
48
48
|
return [
|
|
49
49
|
EditorView.domEventHandlers({
|
|
50
50
|
destroy: () => {
|
|
@@ -64,12 +64,12 @@ var threads = (state, doc, dispatch) => {
|
|
|
64
64
|
});
|
|
65
65
|
}
|
|
66
66
|
}),
|
|
67
|
-
createExternalCommentSync(
|
|
68
|
-
id:
|
|
67
|
+
createExternalCommentSync(Obj.getDXN(doc).toString(), (sink) => effect(() => sink()), () => anchors.value.filter((anchor) => anchor.anchor).map((anchor) => ({
|
|
68
|
+
id: Obj.getDXN(Relation.getSource(anchor)).toString(),
|
|
69
69
|
cursor: anchor.anchor
|
|
70
70
|
}))),
|
|
71
71
|
comments({
|
|
72
|
-
id:
|
|
72
|
+
id: Obj.getDXN(doc).toString(),
|
|
73
73
|
onCreate: ({ cursor }) => {
|
|
74
74
|
const name = getName(doc, cursor);
|
|
75
75
|
void dispatch(createIntent(ThreadAction.Create, {
|
|
@@ -79,9 +79,9 @@ var threads = (state, doc, dispatch) => {
|
|
|
79
79
|
}));
|
|
80
80
|
},
|
|
81
81
|
onDelete: ({ id }) => {
|
|
82
|
-
const draft = state.drafts[
|
|
82
|
+
const draft = state.drafts[Obj.getDXN(doc).toString()];
|
|
83
83
|
if (draft) {
|
|
84
|
-
const index = draft.findIndex((thread2) =>
|
|
84
|
+
const index = draft.findIndex((thread2) => Obj.getDXN(thread2).toString() === id);
|
|
85
85
|
if (index !== -1) {
|
|
86
86
|
draft.splice(index, 1);
|
|
87
87
|
}
|
|
@@ -92,7 +92,7 @@ var threads = (state, doc, dispatch) => {
|
|
|
92
92
|
}
|
|
93
93
|
},
|
|
94
94
|
onUpdate: ({ id, cursor }) => {
|
|
95
|
-
const draft = state.drafts[
|
|
95
|
+
const draft = state.drafts[Obj.getDXN(doc).toString()]?.find((thread) => Obj.getDXN(thread).toString() === id);
|
|
96
96
|
if (draft) {
|
|
97
97
|
const thread = Relation.getSource(draft);
|
|
98
98
|
thread.name = getName(doc, cursor);
|
|
@@ -101,7 +101,7 @@ var threads = (state, doc, dispatch) => {
|
|
|
101
101
|
const relation = query.objects.find((object) => getSource(object).id === id);
|
|
102
102
|
if (relation) {
|
|
103
103
|
const thread = getSource(relation);
|
|
104
|
-
if (Obj.instanceOf(
|
|
104
|
+
if (Obj.instanceOf(Thread.Thread, thread)) {
|
|
105
105
|
thread.name = getName(doc, cursor);
|
|
106
106
|
relation.anchor = cursor;
|
|
107
107
|
}
|
|
@@ -120,23 +120,25 @@ var threads = (state, doc, dispatch) => {
|
|
|
120
120
|
};
|
|
121
121
|
|
|
122
122
|
// src/capabilities/markdown.ts
|
|
123
|
-
var markdown_default = (context) => contributes(MarkdownCapabilities.Extensions, [
|
|
123
|
+
var markdown_default = ((context) => contributes(MarkdownCapabilities.Extensions, [
|
|
124
124
|
({ document: doc }) => {
|
|
125
125
|
const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);
|
|
126
126
|
const { state } = context.getCapability(ThreadCapabilities.MutableState);
|
|
127
127
|
return threads(state, doc, dispatch);
|
|
128
128
|
},
|
|
129
129
|
({ document: doc }) => {
|
|
130
|
+
if (!doc) return [];
|
|
130
131
|
const { state } = context.getCapability(ThreadCapabilities.MutableState);
|
|
131
132
|
return EditorView2.updateListener.of((update) => {
|
|
132
133
|
if (update.docChanged || update.selectionSet) {
|
|
133
|
-
state.toolbar[
|
|
134
|
+
state.toolbar[Obj2.getDXN(doc).toString()] = selectionOverlapsComment(update.state);
|
|
134
135
|
}
|
|
135
136
|
});
|
|
136
137
|
},
|
|
137
138
|
({ document: doc }) => {
|
|
139
|
+
if (!doc) return [];
|
|
138
140
|
const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);
|
|
139
|
-
const id =
|
|
141
|
+
const id = Obj2.getDXN(doc).toString();
|
|
140
142
|
return EditorView2.updateListener.of((update) => {
|
|
141
143
|
update.transactions.forEach((transaction) => {
|
|
142
144
|
transaction.effects.forEach(async (effect2) => {
|
|
@@ -150,7 +152,7 @@ var markdown_default = (context) => contributes(MarkdownCapabilities.Extensions,
|
|
|
150
152
|
});
|
|
151
153
|
});
|
|
152
154
|
}
|
|
153
|
-
]);
|
|
155
|
+
]));
|
|
154
156
|
var selectionOverlapsComment = (state) => {
|
|
155
157
|
const commentState = state.field(commentsState, false);
|
|
156
158
|
if (commentState === void 0) {
|
|
@@ -167,4 +169,4 @@ var selectionOverlapsComment = (state) => {
|
|
|
167
169
|
export {
|
|
168
170
|
markdown_default as default
|
|
169
171
|
};
|
|
170
|
-
//# sourceMappingURL=markdown-
|
|
172
|
+
//# sourceMappingURL=markdown-GG5566TL.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/markdown.ts", "../../../src/extensions/threads.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { EditorView } from '@codemirror/view';\n\nimport { Capabilities, type PluginContext, contributes, createIntent } from '@dxos/app-framework';\nimport { Obj } from '@dxos/echo';\nimport { ATTENDABLE_PATH_SEPARATOR, DeckAction } from '@dxos/plugin-deck/types';\nimport { MarkdownCapabilities } from '@dxos/plugin-markdown';\nimport { type EditorState, commentClickedEffect, commentsState, overlap } from '@dxos/react-ui-editor';\n\nimport { threads } from '../extensions';\n\nimport { ThreadCapabilities } from './capabilities';\n\nexport default (context: PluginContext) =>\n contributes(MarkdownCapabilities.Extensions, [\n ({ document: doc }) => {\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n const { state } = context.getCapability(ThreadCapabilities.MutableState);\n return threads(state, doc, dispatch);\n },\n ({ document: doc }) => {\n if (!doc) return [];\n const { state } = context.getCapability(ThreadCapabilities.MutableState);\n\n return EditorView.updateListener.of((update) => {\n if (update.docChanged || update.selectionSet) {\n state.toolbar[Obj.getDXN(doc).toString()] = selectionOverlapsComment(update.state);\n }\n });\n },\n ({ document: doc }) => {\n if (!doc) return [];\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n const id = Obj.getDXN(doc).toString();\n\n return EditorView.updateListener.of((update) => {\n update.transactions.forEach((transaction) => {\n transaction.effects.forEach(async (effect) => {\n if (effect.is(commentClickedEffect)) {\n void dispatch(\n createIntent(DeckAction.ChangeCompanion, {\n primary: id,\n companion: `${id}${ATTENDABLE_PATH_SEPARATOR}comments`,\n }),\n );\n }\n });\n });\n });\n },\n ]);\n\nconst selectionOverlapsComment = (state: EditorState): boolean => {\n // May not be defined if thread plugin not installed.\n const commentState = state.field(commentsState, false);\n if (commentState === undefined) {\n return false;\n }\n\n const { selection } = state;\n for (const range of selection.ranges) {\n if (commentState.comments.some(({ range: commentRange }) => overlap(commentRange, range))) {\n return true;\n }\n }\n\n return false;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { type Extension } from '@codemirror/state';\nimport { EditorView } from '@codemirror/view';\nimport { computed, effect } from '@preact/signals-core';\n\nimport { type PromiseIntentDispatcher, createIntent } from '@dxos/app-framework';\nimport { Filter, Obj, Query, Relation } from '@dxos/echo';\nimport { type Markdown } from '@dxos/plugin-markdown/types';\nimport { createDocAccessor, getSource, getSpace, getTextInRange } from '@dxos/react-client/echo';\nimport { comments, createExternalCommentSync } from '@dxos/react-ui-editor';\nimport { AnchoredTo, Thread } from '@dxos/types';\n\nimport { ThreadAction, type ThreadState } from '../types';\n\n// TODO(burdon): Factor out.\nconst getName = (doc: Markdown.Document, anchor: string): string | undefined => {\n if (doc.content) {\n const [start, end] = anchor.split(':');\n return getTextInRange(createDocAccessor(doc.content.target!, ['content']), start, end);\n }\n};\n\n/**\n * Construct plugins.\n */\nexport const threads = (state: ThreadState, doc?: Markdown.Document, dispatch?: PromiseIntentDispatcher): Extension => {\n const space = getSpace(doc);\n if (!doc || !space || !dispatch) {\n // Include no-op comments extension here to ensure that the facets are always present when they are expected.\n // TODO(wittjosiah): The Editor should only look for these facets when comments are available.\n return [comments()];\n }\n\n const query = space.db.query(Query.select(Filter.ids(doc.id)).targetOf(AnchoredTo.AnchoredTo));\n const unsubscribe = query.subscribe();\n\n const anchors = computed(() =>\n query.objects\n .filter((anchor) => {\n const thread = Relation.getSource(anchor);\n return Obj.instanceOf(Thread.Thread, thread) && thread.status !== 'resolved';\n })\n .concat(state.drafts[Obj.getDXN(doc).toString()] ?? []),\n );\n\n return [\n EditorView.domEventHandlers({\n destroy: () => {\n unsubscribe();\n },\n }),\n\n EditorView.updateListener.of((update) => {\n if (update.docChanged) {\n anchors.value.forEach((anchor) => {\n if (anchor.anchor) {\n // Only update if the name has changed, otherwise this will cause an infinite loop.\n // Skip if the name is empty; this means comment text was deleted, but thread name should remain.\n const name = getName(doc, anchor.anchor);\n const thread = Relation.getSource(anchor) as Thread.Thread;\n if (name && name !== thread.name) {\n thread.name = name;\n }\n }\n });\n }\n }),\n\n createExternalCommentSync(\n Obj.getDXN(doc).toString(),\n (sink) => effect(() => sink()),\n () =>\n anchors.value\n .filter((anchor) => anchor.anchor)\n .map((anchor) => ({\n id: Obj.getDXN(Relation.getSource(anchor)).toString(),\n cursor: anchor.anchor,\n })),\n ),\n\n comments({\n id: Obj.getDXN(doc).toString(),\n onCreate: ({ cursor }) => {\n const name = getName(doc, cursor);\n void dispatch(\n createIntent(ThreadAction.Create, {\n anchor: cursor,\n name,\n subject: doc,\n }),\n );\n },\n onDelete: ({ id }) => {\n const draft = state.drafts[Obj.getDXN(doc).toString()];\n if (draft) {\n const index = draft.findIndex((thread) => Obj.getDXN(thread).toString() === id);\n if (index !== -1) {\n draft.splice(index, 1);\n }\n }\n\n const thread = query.objects.find((object) => getSource(object).id === id);\n if (thread) {\n thread.anchor = undefined;\n }\n },\n onUpdate: ({ id, cursor }) => {\n const draft = state.drafts[Obj.getDXN(doc).toString()]?.find((thread) => Obj.getDXN(thread).toString() === id);\n if (draft) {\n const thread = Relation.getSource(draft) as Thread.Thread;\n thread.name = getName(doc, cursor);\n draft.anchor = cursor;\n }\n\n const relation = query.objects.find((object) => getSource(object).id === id);\n if (relation) {\n const thread = getSource(relation);\n if (Obj.instanceOf(Thread.Thread, thread)) {\n thread.name = getName(doc, cursor);\n relation.anchor = cursor;\n }\n }\n },\n onSelect: ({ selection }) => {\n const current = selection.current ?? selection.closest;\n if (current) {\n void dispatch(createIntent(ThreadAction.Select, { current }));\n }\n },\n }),\n ];\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["EditorView", "Capabilities", "contributes", "createIntent", "Obj", "ATTENDABLE_PATH_SEPARATOR", "DeckAction", "MarkdownCapabilities", "commentClickedEffect", "commentsState", "overlap", "EditorView", "computed", "effect", "createIntent", "Filter", "Obj", "Query", "Relation", "createDocAccessor", "getSource", "getSpace", "getTextInRange", "comments", "createExternalCommentSync", "AnchoredTo", "Thread", "getName", "doc", "anchor", "content", "start", "end", "split", "getTextInRange", "createDocAccessor", "target", "threads", "state", "dispatch", "space", "getSpace", "comments", "query", "db", "Query", "select", "Filter", "ids", "id", "targetOf", "AnchoredTo", "unsubscribe", "subscribe", "anchors", "computed", "objects", "filter", "thread", "Relation", "getSource", "Obj", "instanceOf", "Thread", "status", "concat", "drafts", "getDXN", "toString", "EditorView", "domEventHandlers", "destroy", "updateListener", "of", "update", "docChanged", "value", "forEach", "name", "createExternalCommentSync", "sink", "effect", "map", "cursor", "onCreate", "createIntent", "ThreadAction", "Create", "subject", "onDelete", "draft", "index", "findIndex", "splice", "find", "object", "undefined", "onUpdate", "relation", "onSelect", "selection", "current", "closest", "Select", "context", "contributes", "MarkdownCapabilities", "Extensions", "document", "doc", "dispatchPromise", "dispatch", "getCapability", "Capabilities", "IntentDispatcher", "state", "ThreadCapabilities", "MutableState", "threads", "EditorView", "updateListener", "of", "update", "docChanged", "selectionSet", "toolbar", "Obj", "getDXN", "toString", "selectionOverlapsComment", "id", "transactions", "forEach", "transaction", "effects", "effect", "is", "commentClickedEffect", "createIntent", "DeckAction", "ChangeCompanion", "primary", "companion", "ATTENDABLE_PATH_SEPARATOR", "commentState", "field", "commentsState", "undefined", "selection", "range", "ranges", "comments", "some", "commentRange", "overlap"]
|
|
7
|
+
}
|