@dxos/plugin-thread 0.8.4-main.406dc2a → 0.8.4-main.548089c
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-56QROCE4.mjs +16 -0
- package/dist/lib/browser/ChatContainer-7F5Y6GXJ.mjs +15 -0
- package/dist/lib/browser/{app-graph-builder-ODKIAXR7.mjs → app-graph-builder-USFBLGFG.mjs} +19 -20
- package/dist/lib/browser/app-graph-builder-USFBLGFG.mjs.map +7 -0
- package/dist/lib/browser/blueprint-definition-6BKYTMJS.mjs +104 -0
- package/dist/lib/browser/blueprint-definition-6BKYTMJS.mjs.map +7 -0
- package/dist/lib/browser/{call-manager-BCKLI4QD.mjs → call-manager-MAXQLMMS.mjs} +5 -5
- package/dist/lib/browser/{chunk-CMCVHULC.mjs → chunk-44S2SB4N.mjs} +34 -31
- package/dist/lib/browser/chunk-44S2SB4N.mjs.map +7 -0
- package/dist/lib/browser/{chunk-L326LSNS.mjs → chunk-BBTXGRIR.mjs} +2 -2
- package/dist/lib/browser/{chunk-L326LSNS.mjs.map → chunk-BBTXGRIR.mjs.map} +1 -1
- package/dist/lib/browser/{chunk-B7YQ7QR2.mjs → chunk-FR6MEAZI.mjs} +17 -16
- package/dist/lib/browser/chunk-FR6MEAZI.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-K2DUJRFJ.mjs +27 -0
- package/dist/lib/browser/chunk-K2DUJRFJ.mjs.map +7 -0
- package/dist/lib/browser/{chunk-HDEQRBOC.mjs → chunk-KOBXMDCI.mjs} +68 -67
- package/dist/lib/browser/chunk-KOBXMDCI.mjs.map +7 -0
- package/dist/lib/browser/chunk-NMJEVD36.mjs +168 -0
- package/dist/lib/browser/chunk-NMJEVD36.mjs.map +7 -0
- package/dist/lib/browser/chunk-NSREO7OX.mjs +23 -0
- package/dist/lib/browser/chunk-NSREO7OX.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/{chunk-VJMKS4CZ.mjs → chunk-ZO5ZGDN5.mjs} +45 -47
- package/dist/lib/browser/chunk-ZO5ZGDN5.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +37 -36
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-VOQD3TQ2.mjs → intent-resolver-BOUT4WGY.mjs} +25 -91
- package/dist/lib/browser/intent-resolver-BOUT4WGY.mjs.map +7 -0
- package/dist/lib/browser/{markdown-R6MGRIA6.mjs → markdown-74EUSQGV.mjs} +22 -20
- package/dist/lib/browser/markdown-74EUSQGV.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-root-UMSBTN6H.mjs → react-root-2VRIT2HF.mjs} +10 -10
- package/dist/lib/browser/{react-surface-SXMQEWKE.mjs → react-surface-UOECBYHE.mjs} +17 -16
- package/dist/lib/browser/react-surface-UOECBYHE.mjs.map +7 -0
- package/dist/lib/browser/{settings-TCNF54PN.mjs → settings-LGQUZITB.mjs} +3 -3
- package/dist/lib/browser/{state-ZQ4IPOJT.mjs → state-36REWXO5.mjs} +3 -3
- package/dist/lib/browser/types/index.mjs +7 -9
- package/dist/lib/node-esm/ChannelContainer-4SV22AKC.mjs +17 -0
- package/dist/lib/node-esm/{ChatContainer-SH6LTFQL.mjs → ChatContainer-C526R4DI.mjs} +5 -5
- package/dist/lib/node-esm/{app-graph-builder-DMPT3MY6.mjs → app-graph-builder-DWYGNENL.mjs} +19 -20
- package/dist/lib/node-esm/app-graph-builder-DWYGNENL.mjs.map +7 -0
- package/dist/lib/node-esm/blueprint-definition-6LEAWSC7.mjs +105 -0
- package/dist/lib/node-esm/blueprint-definition-6LEAWSC7.mjs.map +7 -0
- package/dist/lib/node-esm/{call-manager-Q7RY2YP4.mjs → call-manager-LC4OS2KD.mjs} +5 -5
- 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-NHSIAEDW.mjs → chunk-KE6SKBPO.mjs} +45 -47
- package/dist/lib/node-esm/chunk-KE6SKBPO.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-2KZ4ODHU.mjs → chunk-NEGIPZTJ.mjs} +34 -31
- package/dist/lib/node-esm/chunk-NEGIPZTJ.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-2MMJF7DW.mjs → chunk-PZH2EDU5.mjs} +68 -67
- package/dist/lib/node-esm/chunk-PZH2EDU5.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-TJKM5JZT.mjs +169 -0
- package/dist/lib/node-esm/chunk-TJKM5JZT.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-BTGKI5IK.mjs → chunk-TWKGDFCS.mjs} +17 -16
- package/dist/lib/node-esm/chunk-TWKGDFCS.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-VM6WD3YY.mjs +25 -0
- package/dist/lib/node-esm/chunk-VM6WD3YY.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-XI45H4IV.mjs +28 -0
- package/dist/lib/node-esm/chunk-XI45H4IV.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-LCHTNRK7.mjs → chunk-ZQAGII7M.mjs} +2 -2
- package/dist/lib/node-esm/{chunk-LCHTNRK7.mjs.map → chunk-ZQAGII7M.mjs.map} +1 -1
- package/dist/lib/node-esm/index.mjs +37 -36
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-AKVH66PH.mjs → intent-resolver-45PLIFCJ.mjs} +25 -91
- package/dist/lib/node-esm/intent-resolver-45PLIFCJ.mjs.map +7 -0
- package/dist/lib/node-esm/{markdown-MYGTDXT6.mjs → markdown-566XXB55.mjs} +22 -20
- package/dist/lib/node-esm/markdown-566XXB55.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-root-W6AVTL5M.mjs → react-root-JAE2VI2D.mjs} +10 -10
- package/dist/lib/node-esm/{react-surface-NLSZJGMO.mjs → react-surface-BYKXK5YA.mjs} +17 -16
- package/dist/lib/node-esm/react-surface-BYKXK5YA.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-ZQHGVFBY.mjs → settings-WKLJSP6R.mjs} +3 -3
- package/dist/lib/node-esm/{state-FSLLJ5TZ.mjs → state-X3W67GTL.mjs} +3 -3
- package/dist/lib/node-esm/types/index.mjs +7 -9
- 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/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/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 +71 -5
- package/dist/types/src/components/ChannelContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/Chat.stories.d.ts +71 -4
- 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/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/MessageContainer.d.ts +2 -2
- package/dist/types/src/components/MessageContainer.d.ts.map +1 -1
- package/dist/types/src/components/ResponsiveGrid/ResponsiveGridItem.d.ts.map +1 -1
- package/dist/types/src/components/ThreadComplementary.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +1 -1
- 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/meta.d.ts.map +1 -1
- package/dist/types/src/testing/stories.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +71 -5
- 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/{schema.d.ts → Thread.d.ts} +13 -25
- package/dist/types/src/types/Thread.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +2 -1
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +22 -110
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +50 -46
- package/src/ThreadPlugin.tsx +26 -18
- package/src/calls/media-manager.ts +9 -6
- package/src/calls/util/stub-media-streams.ts +2 -2
- package/src/capabilities/app-graph-builder.ts +27 -17
- package/src/capabilities/blueprint-definition.ts +38 -0
- package/src/capabilities/capabilities.ts +2 -2
- package/src/capabilities/index.ts +1 -1
- package/src/capabilities/intent-resolver.ts +17 -54
- package/src/capabilities/markdown.ts +5 -3
- package/src/capabilities/react-surface.tsx +8 -7
- package/src/components/Call/Call.tsx +1 -1
- package/src/components/Call/Toolbar.tsx +5 -5
- package/src/components/CallDebugPanel.tsx +2 -2
- package/src/components/CallSidebar.tsx +1 -1
- package/src/components/ChannelContainer.stories.tsx +6 -6
- package/src/components/ChannelContainer.tsx +18 -14
- package/src/components/Chat.stories.tsx +7 -13
- package/src/components/ChatContainer.tsx +30 -21
- package/src/components/Comments.stories.tsx +6 -6
- package/src/components/CommentsContainer.tsx +6 -7
- package/src/components/CommentsThreadContainer.tsx +32 -27
- package/src/components/Lobby/Lobby.tsx +1 -1
- 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.tsx +2 -2
- package/src/components/ResponsiveGrid/ResponsiveGrid.stories.tsx +1 -1
- package/src/components/ResponsiveGrid/ResponsiveGrid.tsx +4 -4
- package/src/components/ResponsiveGrid/ResponsiveGridItem.tsx +5 -2
- package/src/components/ThreadComplementary.tsx +38 -31
- package/src/components/testing.ts +8 -8
- package/src/extensions/threads.ts +25 -16
- package/src/functions/create-proposals.ts +58 -0
- package/src/functions/index.ts +5 -0
- package/src/hooks/analytics.ts +4 -7
- package/src/hooks/index.ts +3 -2
- package/src/meta.ts +6 -1
- package/src/testing/stories.ts +2 -5
- package/src/translations.ts +3 -2
- package/src/types/Channel.ts +27 -0
- package/src/types/Thread.ts +26 -0
- package/src/types/index.ts +2 -1
- package/src/types/types.ts +17 -25
- package/dist/lib/browser/ChannelContainer-BGDGZHV4.mjs +0 -16
- package/dist/lib/browser/ChatContainer-75KJZ4XR.mjs +0 -15
- package/dist/lib/browser/app-graph-builder-ODKIAXR7.mjs.map +0 -7
- package/dist/lib/browser/chunk-2MUYQOQE.mjs +0 -23
- package/dist/lib/browser/chunk-2MUYQOQE.mjs.map +0 -7
- package/dist/lib/browser/chunk-B7YQ7QR2.mjs.map +0 -7
- package/dist/lib/browser/chunk-CMCVHULC.mjs.map +0 -7
- package/dist/lib/browser/chunk-HDEQRBOC.mjs.map +0 -7
- package/dist/lib/browser/chunk-T4KJ5JR4.mjs +0 -15
- package/dist/lib/browser/chunk-T4KJ5JR4.mjs.map +0 -7
- package/dist/lib/browser/chunk-VJMKS4CZ.mjs.map +0 -7
- package/dist/lib/browser/chunk-VTYX3SIM.mjs +0 -147
- package/dist/lib/browser/chunk-VTYX3SIM.mjs.map +0 -7
- package/dist/lib/browser/chunk-ZCEU5K23.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-VOQD3TQ2.mjs.map +0 -7
- package/dist/lib/browser/markdown-R6MGRIA6.mjs.map +0 -7
- package/dist/lib/browser/react-surface-SXMQEWKE.mjs.map +0 -7
- package/dist/lib/browser/toolkit-JF4B4QIO.mjs +0 -84
- package/dist/lib/browser/toolkit-JF4B4QIO.mjs.map +0 -7
- package/dist/lib/node-esm/ChannelContainer-OXC6BTU7.mjs +0 -17
- package/dist/lib/node-esm/app-graph-builder-DMPT3MY6.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-2KZ4ODHU.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-2MMJF7DW.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-BAMZXJS4.mjs +0 -148
- package/dist/lib/node-esm/chunk-BAMZXJS4.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-BTGKI5IK.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-GZ4WL2IS.mjs +0 -25
- package/dist/lib/node-esm/chunk-GZ4WL2IS.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-NHSIAEDW.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-OBVAURUU.mjs +0 -17
- package/dist/lib/node-esm/chunk-OBVAURUU.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-TIPIOH2J.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-AKVH66PH.mjs.map +0 -7
- package/dist/lib/node-esm/markdown-MYGTDXT6.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-NLSZJGMO.mjs.map +0 -7
- package/dist/lib/node-esm/toolkit-DHPKJITO.mjs +0 -85
- package/dist/lib/node-esm/toolkit-DHPKJITO.mjs.map +0 -7
- package/dist/types/src/capabilities/toolkit.d.ts +0 -6
- package/dist/types/src/capabilities/toolkit.d.ts.map +0 -1
- package/dist/types/src/types/schema.d.ts.map +0 -1
- package/src/capabilities/toolkit.ts +0 -82
- package/src/types/schema.ts +0 -33
- /package/dist/lib/browser/{ChannelContainer-BGDGZHV4.mjs.map → ChannelContainer-56QROCE4.mjs.map} +0 -0
- /package/dist/lib/browser/{ChatContainer-75KJZ4XR.mjs.map → ChatContainer-7F5Y6GXJ.mjs.map} +0 -0
- /package/dist/lib/browser/{call-manager-BCKLI4QD.mjs.map → call-manager-MAXQLMMS.mjs.map} +0 -0
- /package/dist/lib/browser/{react-root-UMSBTN6H.mjs.map → react-root-2VRIT2HF.mjs.map} +0 -0
- /package/dist/lib/browser/{settings-TCNF54PN.mjs.map → settings-LGQUZITB.mjs.map} +0 -0
- /package/dist/lib/browser/{state-ZQ4IPOJT.mjs.map → state-36REWXO5.mjs.map} +0 -0
- /package/dist/lib/node-esm/{ChannelContainer-OXC6BTU7.mjs.map → ChannelContainer-4SV22AKC.mjs.map} +0 -0
- /package/dist/lib/node-esm/{ChatContainer-SH6LTFQL.mjs.map → ChatContainer-C526R4DI.mjs.map} +0 -0
- /package/dist/lib/node-esm/{call-manager-Q7RY2YP4.mjs.map → call-manager-LC4OS2KD.mjs.map} +0 -0
- /package/dist/lib/node-esm/{react-root-W6AVTL5M.mjs.map → react-root-JAE2VI2D.mjs.map} +0 -0
- /package/dist/lib/node-esm/{settings-ZQHGVFBY.mjs.map → settings-WKLJSP6R.mjs.map} +0 -0
- /package/dist/lib/node-esm/{state-FSLLJ5TZ.mjs.map → state-X3W67GTL.mjs.map} +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/plugin-thread",
|
|
3
|
-
"version": "0.8.4-main.
|
|
3
|
+
"version": "0.8.4-main.548089c",
|
|
4
4
|
"description": "DXOS Threads Surface plugin",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
@@ -49,65 +49,69 @@
|
|
|
49
49
|
"md5-hex": "5.0.0",
|
|
50
50
|
"react-resize-detector": "^11.0.1",
|
|
51
51
|
"wavefile": "^11.0.0",
|
|
52
|
-
"@dxos/app-framework": "0.8.4-main.
|
|
53
|
-
"@dxos/
|
|
54
|
-
"@dxos/
|
|
55
|
-
"@dxos/
|
|
56
|
-
"@dxos/context": "0.8.4-main.
|
|
57
|
-
"@dxos/
|
|
58
|
-
"@dxos/
|
|
59
|
-
"@dxos/
|
|
60
|
-
"@dxos/
|
|
61
|
-
"@dxos/
|
|
62
|
-
"@dxos/
|
|
63
|
-
"@dxos/
|
|
64
|
-
"@dxos/
|
|
65
|
-
"@dxos/
|
|
66
|
-
"@dxos/
|
|
67
|
-
"@dxos/
|
|
68
|
-
"@dxos/plugin-
|
|
69
|
-
"@dxos/
|
|
70
|
-
"@dxos/plugin-
|
|
71
|
-
"@dxos/plugin-
|
|
72
|
-
"@dxos/
|
|
73
|
-
"@dxos/
|
|
74
|
-
"@dxos/
|
|
75
|
-
"@dxos/
|
|
76
|
-
"@dxos/
|
|
77
|
-
"@dxos/react-ui-
|
|
78
|
-
"@dxos/react-ui-
|
|
79
|
-
"@dxos/react-ui-
|
|
80
|
-
"@dxos/react-ui-
|
|
81
|
-
"@dxos/react-ui-
|
|
82
|
-
"@dxos/
|
|
83
|
-
"@dxos/react-ui-
|
|
84
|
-
"@dxos/
|
|
85
|
-
"@dxos/react-ui-thread": "0.8.4-main.
|
|
86
|
-
"@dxos/
|
|
52
|
+
"@dxos/app-framework": "0.8.4-main.548089c",
|
|
53
|
+
"@dxos/async": "0.8.4-main.548089c",
|
|
54
|
+
"@dxos/blueprints": "0.8.4-main.548089c",
|
|
55
|
+
"@dxos/codec-protobuf": "0.8.4-main.548089c",
|
|
56
|
+
"@dxos/context": "0.8.4-main.548089c",
|
|
57
|
+
"@dxos/assistant": "0.8.4-main.548089c",
|
|
58
|
+
"@dxos/debug": "0.8.4-main.548089c",
|
|
59
|
+
"@dxos/devtools": "0.8.4-main.548089c",
|
|
60
|
+
"@dxos/display-name": "0.8.4-main.548089c",
|
|
61
|
+
"@dxos/echo": "0.8.4-main.548089c",
|
|
62
|
+
"@dxos/echo-db": "0.8.4-main.548089c",
|
|
63
|
+
"@dxos/functions": "0.8.4-main.548089c",
|
|
64
|
+
"@dxos/invariant": "0.8.4-main.548089c",
|
|
65
|
+
"@dxos/local-storage": "0.8.4-main.548089c",
|
|
66
|
+
"@dxos/keys": "0.8.4-main.548089c",
|
|
67
|
+
"@dxos/log": "0.8.4-main.548089c",
|
|
68
|
+
"@dxos/plugin-attention": "0.8.4-main.548089c",
|
|
69
|
+
"@dxos/live-object": "0.8.4-main.548089c",
|
|
70
|
+
"@dxos/plugin-deck": "0.8.4-main.548089c",
|
|
71
|
+
"@dxos/plugin-client": "0.8.4-main.548089c",
|
|
72
|
+
"@dxos/plugin-graph": "0.8.4-main.548089c",
|
|
73
|
+
"@dxos/plugin-observability": "0.8.4-main.548089c",
|
|
74
|
+
"@dxos/plugin-markdown": "0.8.4-main.548089c",
|
|
75
|
+
"@dxos/plugin-space": "0.8.4-main.548089c",
|
|
76
|
+
"@dxos/protocols": "0.8.4-main.548089c",
|
|
77
|
+
"@dxos/react-ui-attention": "0.8.4-main.548089c",
|
|
78
|
+
"@dxos/react-ui-editor": "0.8.4-main.548089c",
|
|
79
|
+
"@dxos/react-ui-form": "0.8.4-main.548089c",
|
|
80
|
+
"@dxos/react-ui-dnd": "0.8.4-main.548089c",
|
|
81
|
+
"@dxos/react-ui-menu": "0.8.4-main.548089c",
|
|
82
|
+
"@dxos/react-ui-stack": "0.8.4-main.548089c",
|
|
83
|
+
"@dxos/react-ui-syntax-highlighter": "0.8.4-main.548089c",
|
|
84
|
+
"@dxos/react-ui-tabs": "0.8.4-main.548089c",
|
|
85
|
+
"@dxos/react-ui-thread": "0.8.4-main.548089c",
|
|
86
|
+
"@dxos/schema": "0.8.4-main.548089c",
|
|
87
|
+
"@dxos/react-client": "0.8.4-main.548089c",
|
|
88
|
+
"@dxos/types": "0.8.4-main.548089c",
|
|
89
|
+
"@dxos/react-ui-sfx": "0.8.4-main.548089c",
|
|
90
|
+
"@dxos/util": "0.8.4-main.548089c"
|
|
87
91
|
},
|
|
88
92
|
"devDependencies": {
|
|
89
|
-
"@effect-
|
|
93
|
+
"@effect-atom/atom-react": "^0.3.4",
|
|
90
94
|
"@effect/platform": "0.92.1",
|
|
91
95
|
"@types/react": "~19.2.2",
|
|
92
|
-
"@types/react-dom": "~19.2.
|
|
96
|
+
"@types/react-dom": "~19.2.2",
|
|
93
97
|
"effect": "3.18.3",
|
|
94
98
|
"react": "~19.2.0",
|
|
95
99
|
"react-dom": "~19.2.0",
|
|
96
100
|
"vite": "7.1.9",
|
|
97
|
-
"@dxos/
|
|
98
|
-
"@dxos/
|
|
99
|
-
"@dxos/
|
|
100
|
-
"@dxos/react-ui": "0.8.4-main.
|
|
101
|
-
"@dxos/
|
|
101
|
+
"@dxos/plugin-theme": "0.8.4-main.548089c",
|
|
102
|
+
"@dxos/random": "0.8.4-main.548089c",
|
|
103
|
+
"@dxos/react-ui": "0.8.4-main.548089c",
|
|
104
|
+
"@dxos/react-ui-theme": "0.8.4-main.548089c",
|
|
105
|
+
"@dxos/storybook-utils": "0.8.4-main.548089c"
|
|
102
106
|
},
|
|
103
107
|
"peerDependencies": {
|
|
104
|
-
"@effect-
|
|
108
|
+
"@effect-atom/atom-react": "^0.3.4",
|
|
105
109
|
"@effect/platform": "^0.80.12",
|
|
106
110
|
"effect": "^3.13.3",
|
|
107
111
|
"react": "^19.0.0",
|
|
108
112
|
"react-dom": "^19.0.0",
|
|
109
|
-
"@dxos/react-ui": "0.8.4-main.
|
|
110
|
-
"@dxos/react-ui-theme": "0.8.4-main.
|
|
113
|
+
"@dxos/react-ui": "0.8.4-main.548089c",
|
|
114
|
+
"@dxos/react-ui-theme": "0.8.4-main.548089c"
|
|
111
115
|
},
|
|
112
116
|
"publishConfig": {
|
|
113
117
|
"access": "public"
|
package/src/ThreadPlugin.tsx
CHANGED
|
@@ -3,27 +3,27 @@
|
|
|
3
3
|
//
|
|
4
4
|
|
|
5
5
|
import { Capabilities, Events, contributes, createIntent, defineModule, definePlugin } from '@dxos/app-framework';
|
|
6
|
-
import { Ref } from '@dxos/echo';
|
|
6
|
+
import { Ref, Type } from '@dxos/echo';
|
|
7
7
|
import { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';
|
|
8
8
|
import { MarkdownEvents } from '@dxos/plugin-markdown';
|
|
9
9
|
import { SpaceCapabilities, SpaceEvents } from '@dxos/plugin-space';
|
|
10
10
|
import { defineObjectForm } from '@dxos/plugin-space/types';
|
|
11
11
|
import { translations as threadTranslations } from '@dxos/react-ui-thread';
|
|
12
|
-
import { AnchoredTo,
|
|
12
|
+
import { AnchoredTo, Message } from '@dxos/types';
|
|
13
13
|
|
|
14
14
|
import {
|
|
15
15
|
AppGraphBuilder,
|
|
16
|
+
BlueprintDefinition,
|
|
16
17
|
CallManager,
|
|
17
18
|
IntentResolver,
|
|
18
19
|
Markdown,
|
|
19
20
|
ReactRoot,
|
|
20
21
|
ReactSurface,
|
|
21
22
|
ThreadState,
|
|
22
|
-
Toolkit,
|
|
23
23
|
} from './capabilities';
|
|
24
24
|
import { THREAD_ITEM, meta } from './meta';
|
|
25
25
|
import { translations } from './translations';
|
|
26
|
-
import {
|
|
26
|
+
import { Channel, Thread, ThreadAction } from './types';
|
|
27
27
|
|
|
28
28
|
// TODO(Zan): Every instance of `cursor` should be replaced with `anchor`.
|
|
29
29
|
// NOTE(burdon): Review/discuss CursorConverter semantics.
|
|
@@ -60,29 +60,30 @@ export const ThreadPlugin = definePlugin(meta, () => [
|
|
|
60
60
|
activatesOn: Events.SetupMetadata,
|
|
61
61
|
activate: () => [
|
|
62
62
|
contributes(Capabilities.Metadata, {
|
|
63
|
-
id:
|
|
63
|
+
id: Type.getTypename(Channel.Channel),
|
|
64
64
|
metadata: {
|
|
65
65
|
icon: 'ph--hash--regular',
|
|
66
|
+
iconHue: 'rose',
|
|
66
67
|
},
|
|
67
68
|
}),
|
|
68
69
|
contributes(Capabilities.Metadata, {
|
|
69
|
-
id:
|
|
70
|
+
id: Type.getTypename(Thread.Thread),
|
|
70
71
|
metadata: {
|
|
71
72
|
// TODO(wittjosiah): Move out of metadata.
|
|
72
|
-
loadReferences: async (thread:
|
|
73
|
+
loadReferences: async (thread: Thread.Thread) => await Ref.Array.loadAll(thread.messages ?? []),
|
|
73
74
|
},
|
|
74
75
|
}),
|
|
75
76
|
contributes(Capabilities.Metadata, {
|
|
76
|
-
id:
|
|
77
|
+
id: Message.Message.typename,
|
|
77
78
|
metadata: {
|
|
78
79
|
// TODO(wittjosiah): Move out of metadata.
|
|
79
|
-
loadReferences: (
|
|
80
|
+
loadReferences: () => [], // loadObjectReferences(message, (message) => [...message.parts, message.context]),
|
|
80
81
|
},
|
|
81
82
|
}),
|
|
82
83
|
contributes(Capabilities.Metadata, {
|
|
83
84
|
id: THREAD_ITEM,
|
|
84
85
|
metadata: {
|
|
85
|
-
parse: (item:
|
|
86
|
+
parse: (item: Thread.Thread, type: string) => {
|
|
86
87
|
switch (type) {
|
|
87
88
|
case 'node':
|
|
88
89
|
return { id: item.id, label: item.name, data: item };
|
|
@@ -103,8 +104,11 @@ export const ThreadPlugin = definePlugin(meta, () => [
|
|
|
103
104
|
contributes(
|
|
104
105
|
SpaceCapabilities.ObjectForm,
|
|
105
106
|
defineObjectForm({
|
|
106
|
-
objectSchema:
|
|
107
|
-
getIntent: (_, options) =>
|
|
107
|
+
objectSchema: Channel.Channel,
|
|
108
|
+
getIntent: (_, options) =>
|
|
109
|
+
createIntent(ThreadAction.CreateChannel, {
|
|
110
|
+
spaceId: options.space.id,
|
|
111
|
+
}),
|
|
108
112
|
}),
|
|
109
113
|
),
|
|
110
114
|
}),
|
|
@@ -112,12 +116,17 @@ export const ThreadPlugin = definePlugin(meta, () => [
|
|
|
112
116
|
id: `${meta.id}/module/schema`,
|
|
113
117
|
activatesOn: ClientEvents.SetupSchema,
|
|
114
118
|
activate: () =>
|
|
115
|
-
contributes(ClientCapabilities.Schema, [
|
|
119
|
+
contributes(ClientCapabilities.Schema, [
|
|
120
|
+
AnchoredTo.AnchoredTo,
|
|
121
|
+
Thread.Thread,
|
|
122
|
+
Message.Message,
|
|
123
|
+
Message.MessageV1,
|
|
124
|
+
]),
|
|
116
125
|
}),
|
|
117
126
|
defineModule({
|
|
118
127
|
id: `${meta.id}/module/migration`,
|
|
119
128
|
activatesOn: ClientEvents.SetupMigration,
|
|
120
|
-
activate: () => contributes(ClientCapabilities.Migration, [
|
|
129
|
+
activate: () => contributes(ClientCapabilities.Migration, [Message.MessageV1ToV2]),
|
|
121
130
|
}),
|
|
122
131
|
defineModule({
|
|
123
132
|
id: `${meta.id}/module/on-space-created`,
|
|
@@ -153,9 +162,8 @@ export const ThreadPlugin = definePlugin(meta, () => [
|
|
|
153
162
|
activate: AppGraphBuilder,
|
|
154
163
|
}),
|
|
155
164
|
defineModule({
|
|
156
|
-
id: `${meta.id}/module/
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
activate: Toolkit,
|
|
165
|
+
id: `${meta.id}/module/blueprint`,
|
|
166
|
+
activatesOn: Events.SetupArtifactDefinition,
|
|
167
|
+
activate: BlueprintDefinition,
|
|
160
168
|
}),
|
|
161
169
|
]);
|
|
@@ -59,9 +59,13 @@ const USE_INAUDIBLE_AUDIO = true;
|
|
|
59
59
|
|
|
60
60
|
export class MediaManager extends Resource {
|
|
61
61
|
public readonly stateUpdated = new Event<MediaState>();
|
|
62
|
-
private readonly _state: MediaState = { pulledVideoStreams: {}, pulledAudioTracks: {} };
|
|
63
|
-
private _speakingMonitor?: SpeakingMonitor = undefined;
|
|
64
62
|
|
|
63
|
+
private readonly _state: MediaState = {
|
|
64
|
+
pulledVideoStreams: {},
|
|
65
|
+
pulledAudioTracks: {},
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
private _speakingMonitor?: SpeakingMonitor = undefined;
|
|
65
69
|
private _trackToReconcile: EncodedTrackName[] = [];
|
|
66
70
|
private _blackCanvasStreamTrack?: MediaStreamTrack = undefined;
|
|
67
71
|
private _inaudibleAudioStreamTrack?: MediaStreamTrack = undefined;
|
|
@@ -85,6 +89,7 @@ export class MediaManager extends Resource {
|
|
|
85
89
|
width: VIDEO_WIDTH,
|
|
86
90
|
height: VIDEO_HEIGHT,
|
|
87
91
|
});
|
|
92
|
+
|
|
88
93
|
this._state.videoTrack = this._blackCanvasStreamTrack;
|
|
89
94
|
this._state.videoStream = new MediaStream();
|
|
90
95
|
this._state.videoStream.addTrack(this._state.videoTrack);
|
|
@@ -137,6 +142,7 @@ export class MediaManager extends Resource {
|
|
|
137
142
|
this._state.videoStream!.removeTrack(this._state.videoTrack!);
|
|
138
143
|
this._state.videoTrack = await getUserMediaTrack('videoinput', { width: VIDEO_WIDTH, height: VIDEO_HEIGHT });
|
|
139
144
|
this._state.videoStream!.addTrack(this._state.videoTrack);
|
|
145
|
+
|
|
140
146
|
this._state.videoEnabled = true;
|
|
141
147
|
this.stateUpdated.emit(this._state);
|
|
142
148
|
this._pushTracksTask!.schedule();
|
|
@@ -226,7 +232,6 @@ export class MediaManager extends Resource {
|
|
|
226
232
|
// Wait for cloudflare to process the track.
|
|
227
233
|
await cancelWithContext(this._ctx, sleep(800));
|
|
228
234
|
const trackNames = this._trackToReconcile;
|
|
229
|
-
|
|
230
235
|
const tracksToPull = trackNames.filter(
|
|
231
236
|
(name) => !this._state.pulledAudioTracks[name] && !this._state.pulledVideoStreams[name],
|
|
232
237
|
);
|
|
@@ -258,8 +263,8 @@ export class MediaManager extends Resource {
|
|
|
258
263
|
currentAudioTracks: Object.keys(this._state.pulledAudioTracks),
|
|
259
264
|
currentVideoStreams: Object.keys(this._state.pulledVideoStreams),
|
|
260
265
|
});
|
|
261
|
-
this.stateUpdated.emit(this._state);
|
|
262
266
|
|
|
267
|
+
this.stateUpdated.emit(this._state);
|
|
263
268
|
if (pullResults.some(({ shouldRetry }) => shouldRetry)) {
|
|
264
269
|
await cancelWithContext(this._ctx, sleep(RETRY_INTERVAL));
|
|
265
270
|
log.info('retrying pull tracks', { tracksToPull });
|
|
@@ -296,7 +301,6 @@ export class MediaManager extends Resource {
|
|
|
296
301
|
}
|
|
297
302
|
|
|
298
303
|
const shouldRetry = pushVideoResult.shouldRetry || pushAudioResult.shouldRetry || pushScreenshareResult.shouldRetry;
|
|
299
|
-
|
|
300
304
|
if (updated) {
|
|
301
305
|
this.stateUpdated.emit(this._state);
|
|
302
306
|
}
|
|
@@ -356,7 +360,6 @@ export class MediaManager extends Resource {
|
|
|
356
360
|
}
|
|
357
361
|
|
|
358
362
|
const ctx = this._ctx.derive();
|
|
359
|
-
|
|
360
363
|
try {
|
|
361
364
|
return {
|
|
362
365
|
track: await this._state.peer!.pushTrack({
|
|
@@ -60,13 +60,12 @@ const userGestureEvents = [
|
|
|
60
60
|
*/
|
|
61
61
|
export const createInaudibleAudioStreamTrack = async ({ ctx }: { ctx: Context }): Promise<MediaStreamTrack> => {
|
|
62
62
|
const audioContext = new window.AudioContext();
|
|
63
|
+
|
|
63
64
|
const oscillator = audioContext.createOscillator();
|
|
64
65
|
oscillator.type = 'triangle';
|
|
65
|
-
// roughly sounds like a box fan
|
|
66
66
|
oscillator.frequency.setValueAtTime(20, audioContext.currentTime);
|
|
67
67
|
|
|
68
68
|
const gainNode = audioContext.createGain();
|
|
69
|
-
// even w/ gain at 0 some packets are sent
|
|
70
69
|
gainNode.gain.setValueAtTime(0, audioContext.currentTime);
|
|
71
70
|
oscillator.connect(gainNode);
|
|
72
71
|
|
|
@@ -85,6 +84,7 @@ export const createInaudibleAudioStreamTrack = async ({ ctx }: { ctx: Context })
|
|
|
85
84
|
audioContextStartedPreviously = true;
|
|
86
85
|
ensureOscillatorStarted();
|
|
87
86
|
}
|
|
87
|
+
|
|
88
88
|
if (audioContext.state === 'suspended' || (audioContext.state as string) === 'interrupted') {
|
|
89
89
|
resumeAudioContext();
|
|
90
90
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Copyright 2025 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import { Atom } from '@effect-atom/atom-react';
|
|
6
6
|
import * as Function from 'effect/Function';
|
|
7
7
|
import * as Option from 'effect/Option';
|
|
8
8
|
|
|
@@ -11,10 +11,9 @@ import { Obj } from '@dxos/echo';
|
|
|
11
11
|
import { AttentionCapabilities } from '@dxos/plugin-attention';
|
|
12
12
|
import { ATTENDABLE_PATH_SEPARATOR, DECK_COMPANION_TYPE, PLANK_COMPANION_TYPE } from '@dxos/plugin-deck/types';
|
|
13
13
|
import { ROOT_ID, createExtension, rxFromSignal } from '@dxos/plugin-graph';
|
|
14
|
-
import { fullyQualifiedId } from '@dxos/react-client/echo';
|
|
15
14
|
|
|
16
15
|
import { meta } from '../meta';
|
|
17
|
-
import {
|
|
16
|
+
import { Channel, ThreadAction } from '../types';
|
|
18
17
|
import { getAnchor } from '../util';
|
|
19
18
|
|
|
20
19
|
import { ThreadCapabilities } from './capabilities';
|
|
@@ -29,7 +28,7 @@ export default (context: PluginContext) => {
|
|
|
29
28
|
createExtension({
|
|
30
29
|
id: `${meta.id}/active-call`,
|
|
31
30
|
connector: (node) =>
|
|
32
|
-
|
|
31
|
+
Atom.make((get) =>
|
|
33
32
|
Function.pipe(
|
|
34
33
|
get(node),
|
|
35
34
|
Option.flatMap((node) => (node.id === ROOT_ID ? Option.some(node) : Option.none())),
|
|
@@ -64,14 +63,16 @@ export default (context: PluginContext) => {
|
|
|
64
63
|
createExtension({
|
|
65
64
|
id: `${meta.id}/channel-chat-companion`,
|
|
66
65
|
connector: (node) => {
|
|
67
|
-
return
|
|
66
|
+
return Atom.make((get) => {
|
|
68
67
|
return Function.pipe(
|
|
69
68
|
get(node),
|
|
70
|
-
Option.flatMap((node) =>
|
|
69
|
+
Option.flatMap((node) =>
|
|
70
|
+
Obj.instanceOf(Channel.Channel, node.data) ? Option.some(node.data) : Option.none(),
|
|
71
|
+
),
|
|
71
72
|
Option.map((channel) => {
|
|
72
73
|
const callManager = context.getCapability(ThreadCapabilities.CallManager);
|
|
73
74
|
const joined = get(
|
|
74
|
-
rxFromSignal(() => callManager.joined && callManager.roomId ===
|
|
75
|
+
rxFromSignal(() => callManager.joined && callManager.roomId === Obj.getDXN(channel).toString()),
|
|
75
76
|
);
|
|
76
77
|
if (!joined) {
|
|
77
78
|
return [];
|
|
@@ -79,7 +80,7 @@ export default (context: PluginContext) => {
|
|
|
79
80
|
|
|
80
81
|
return [
|
|
81
82
|
{
|
|
82
|
-
id: `${
|
|
83
|
+
id: `${Obj.getDXN(channel).toString()}${ATTENDABLE_PATH_SEPARATOR}chat`,
|
|
83
84
|
type: PLANK_COMPANION_TYPE,
|
|
84
85
|
data: 'chat',
|
|
85
86
|
properties: {
|
|
@@ -99,11 +100,11 @@ export default (context: PluginContext) => {
|
|
|
99
100
|
createExtension({
|
|
100
101
|
id: `${meta.id}/comments-companion`,
|
|
101
102
|
connector: (node) =>
|
|
102
|
-
|
|
103
|
+
Atom.make((get) =>
|
|
103
104
|
Function.pipe(
|
|
104
105
|
get(node),
|
|
105
106
|
Option.flatMap((node) => {
|
|
106
|
-
if (!Obj.isObject(node.data) || Obj.instanceOf(
|
|
107
|
+
if (!Obj.isObject(node.data) || Obj.instanceOf(Channel.Channel, node.data)) {
|
|
107
108
|
return Option.none();
|
|
108
109
|
}
|
|
109
110
|
const metadata = resolve(Obj.getTypename(node.data)!);
|
|
@@ -129,11 +130,11 @@ export default (context: PluginContext) => {
|
|
|
129
130
|
createExtension({
|
|
130
131
|
id: `${meta.id}/comment-toolbar`,
|
|
131
132
|
actions: (node) =>
|
|
132
|
-
|
|
133
|
+
Atom.make((get) =>
|
|
133
134
|
Function.pipe(
|
|
134
135
|
get(node),
|
|
135
136
|
Option.flatMap((node) => {
|
|
136
|
-
if (!Obj.isObject(node.data) || Obj.instanceOf(
|
|
137
|
+
if (!Obj.isObject(node.data) || Obj.instanceOf(Channel.Channel, node.data)) {
|
|
137
138
|
return Option.none();
|
|
138
139
|
}
|
|
139
140
|
const metadata = resolve(Obj.getTypename(node.data)!);
|
|
@@ -145,26 +146,35 @@ export default (context: PluginContext) => {
|
|
|
145
146
|
const disabled = get(
|
|
146
147
|
rxFromSignal(() => {
|
|
147
148
|
const metadata = resolve(Obj.getTypename(object)!);
|
|
148
|
-
const selection = selectionManager.getSelection(
|
|
149
|
+
const selection = selectionManager.getSelection(
|
|
150
|
+
Obj.getDXN(object).toString(),
|
|
151
|
+
metadata.selectionMode,
|
|
152
|
+
);
|
|
149
153
|
const anchor = getAnchor(selection);
|
|
150
154
|
const invalidSelection = !anchor;
|
|
151
|
-
const overlappingComment = toolbar[
|
|
155
|
+
const overlappingComment = toolbar[Obj.getDXN(object).toString()];
|
|
152
156
|
return (metadata.comments === 'anchored' && invalidSelection) || overlappingComment;
|
|
153
157
|
}),
|
|
154
158
|
);
|
|
155
159
|
|
|
156
160
|
return [
|
|
157
161
|
{
|
|
158
|
-
id: `${
|
|
162
|
+
id: `${Obj.getDXN(object).toString()}/comment`,
|
|
159
163
|
data: () => {
|
|
160
164
|
const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);
|
|
161
165
|
const metadata = resolve(Obj.getTypename(object)!);
|
|
162
|
-
const selection = selectionManager.getSelection(
|
|
166
|
+
const selection = selectionManager.getSelection(Obj.getDXN(object).toString());
|
|
163
167
|
// TODO(wittjosiah): Use presence of selection to determine if the comment should be anchored.
|
|
164
168
|
// Requires all components which support selection (e.g. table/kanban) to support anchored comments.
|
|
165
169
|
const anchor = metadata.comments === 'anchored' ? getAnchor(selection) : Date.now().toString();
|
|
166
170
|
const name = metadata.getAnchorLabel?.(object, anchor);
|
|
167
|
-
void dispatch(
|
|
171
|
+
void dispatch(
|
|
172
|
+
createIntent(ThreadAction.Create, {
|
|
173
|
+
anchor,
|
|
174
|
+
name,
|
|
175
|
+
subject: object,
|
|
176
|
+
}),
|
|
177
|
+
);
|
|
168
178
|
},
|
|
169
179
|
properties: {
|
|
170
180
|
label: ['add comment label', { ns: meta.id }],
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2025 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import { Capabilities, type Capability, contributes } from '@dxos/app-framework';
|
|
6
|
+
import { Blueprint, Template } from '@dxos/blueprints';
|
|
7
|
+
import { type FunctionDefinition } from '@dxos/functions';
|
|
8
|
+
import { trim } from '@dxos/util';
|
|
9
|
+
|
|
10
|
+
import { createProposals } from '../functions';
|
|
11
|
+
|
|
12
|
+
const functions: FunctionDefinition[] = [createProposals];
|
|
13
|
+
|
|
14
|
+
export const ASSISTANT_BLUEPRINT_KEY = 'dxos.org/blueprint/thread';
|
|
15
|
+
|
|
16
|
+
export default (): Capability<any>[] => [
|
|
17
|
+
contributes(Capabilities.Functions, functions),
|
|
18
|
+
contributes(
|
|
19
|
+
Capabilities.BlueprintDefinition,
|
|
20
|
+
Blueprint.make({
|
|
21
|
+
key: ASSISTANT_BLUEPRINT_KEY,
|
|
22
|
+
name: 'Thread',
|
|
23
|
+
tools: Blueprint.toolDefinitions({ functions }),
|
|
24
|
+
instructions: Template.make({
|
|
25
|
+
// TODO(wittjosiah): Move example to function input schema annotation.
|
|
26
|
+
source: trim`
|
|
27
|
+
You can update markdown documents via proposals.
|
|
28
|
+
For each diff, respond with the smallest possible matching span.
|
|
29
|
+
For example:
|
|
30
|
+
- "There is a tyop in this sentence."
|
|
31
|
+
+ "There is a typo in this sentence."
|
|
32
|
+
- "This id goof."
|
|
33
|
+
+ "This is good."
|
|
34
|
+
`,
|
|
35
|
+
}),
|
|
36
|
+
}),
|
|
37
|
+
),
|
|
38
|
+
];
|
|
@@ -7,7 +7,7 @@ import { type DeepReadonly } from '@dxos/util';
|
|
|
7
7
|
|
|
8
8
|
import { type CallManager, type CallState, type MediaState } from '../calls';
|
|
9
9
|
import { meta } from '../meta';
|
|
10
|
-
import { type
|
|
10
|
+
import { type Channel, type ThreadState, type ViewState } from '../types';
|
|
11
11
|
|
|
12
12
|
export namespace ThreadCapabilities {
|
|
13
13
|
export const CallManager = defineCapability<CallManager>(`${meta.id}/capability/call-manager`);
|
|
@@ -16,7 +16,7 @@ export namespace ThreadCapabilities {
|
|
|
16
16
|
// TODO(burdon): This brings in deps from ../calls; how should we manage/minimize explicit type exposure to other plugins?
|
|
17
17
|
// TODO(wittjosiah): These callbacks could be intents once we support broadcast.
|
|
18
18
|
export type CallProperties = {
|
|
19
|
-
onJoin: (state: { channel?:
|
|
19
|
+
onJoin: (state: { channel?: Channel.Channel; roomId?: string }) => Promise<void>;
|
|
20
20
|
onLeave: (roomId?: string) => Promise<void>;
|
|
21
21
|
onCallStateUpdated: (callState: CallState) => Promise<void>;
|
|
22
22
|
onMediaStateUpdated: ([mediaState, isSpeaking]: [MediaState, boolean]) => Promise<void>;
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
import { lazy } from '@dxos/app-framework';
|
|
6
6
|
|
|
7
7
|
export const AppGraphBuilder = lazy(() => import('./app-graph-builder'));
|
|
8
|
+
export const BlueprintDefinition = lazy(() => import('./blueprint-definition'));
|
|
8
9
|
export const CallManager = lazy(() => import('./call-manager'));
|
|
9
10
|
export const IntentResolver = lazy(() => import('./intent-resolver'));
|
|
10
11
|
export const Markdown = lazy(() => import('./markdown'));
|
|
@@ -12,6 +13,5 @@ export const ReactRoot = lazy(() => import('./react-root'));
|
|
|
12
13
|
export const ReactSurface = lazy(() => import('./react-surface'));
|
|
13
14
|
export const ThreadSettings = lazy(() => import('./settings'));
|
|
14
15
|
export const ThreadState = lazy(() => import('./state'));
|
|
15
|
-
export const Toolkit = lazy(() => import('./toolkit'));
|
|
16
16
|
|
|
17
17
|
export * from './capabilities';
|