@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.
Files changed (234) hide show
  1. package/dist/lib/browser/ChannelContainer-56QROCE4.mjs +16 -0
  2. package/dist/lib/browser/ChatContainer-7F5Y6GXJ.mjs +15 -0
  3. package/dist/lib/browser/{app-graph-builder-ODKIAXR7.mjs → app-graph-builder-USFBLGFG.mjs} +19 -20
  4. package/dist/lib/browser/app-graph-builder-USFBLGFG.mjs.map +7 -0
  5. package/dist/lib/browser/blueprint-definition-6BKYTMJS.mjs +104 -0
  6. package/dist/lib/browser/blueprint-definition-6BKYTMJS.mjs.map +7 -0
  7. package/dist/lib/browser/{call-manager-BCKLI4QD.mjs → call-manager-MAXQLMMS.mjs} +5 -5
  8. package/dist/lib/browser/{chunk-CMCVHULC.mjs → chunk-44S2SB4N.mjs} +34 -31
  9. package/dist/lib/browser/chunk-44S2SB4N.mjs.map +7 -0
  10. package/dist/lib/browser/{chunk-L326LSNS.mjs → chunk-BBTXGRIR.mjs} +2 -2
  11. package/dist/lib/browser/{chunk-L326LSNS.mjs.map → chunk-BBTXGRIR.mjs.map} +1 -1
  12. package/dist/lib/browser/{chunk-B7YQ7QR2.mjs → chunk-FR6MEAZI.mjs} +17 -16
  13. package/dist/lib/browser/chunk-FR6MEAZI.mjs.map +7 -0
  14. package/dist/lib/browser/{chunk-XYUJXHYV.mjs → chunk-ISCHODBV.mjs} +1 -1
  15. package/dist/lib/browser/{chunk-XYUJXHYV.mjs.map → chunk-ISCHODBV.mjs.map} +2 -2
  16. package/dist/lib/browser/chunk-K2DUJRFJ.mjs +27 -0
  17. package/dist/lib/browser/chunk-K2DUJRFJ.mjs.map +7 -0
  18. package/dist/lib/browser/{chunk-HDEQRBOC.mjs → chunk-KOBXMDCI.mjs} +68 -67
  19. package/dist/lib/browser/chunk-KOBXMDCI.mjs.map +7 -0
  20. package/dist/lib/browser/chunk-NMJEVD36.mjs +168 -0
  21. package/dist/lib/browser/chunk-NMJEVD36.mjs.map +7 -0
  22. package/dist/lib/browser/chunk-NSREO7OX.mjs +23 -0
  23. package/dist/lib/browser/chunk-NSREO7OX.mjs.map +7 -0
  24. package/dist/lib/browser/{chunk-ZCEU5K23.mjs → chunk-ZCW3NSDZ.mjs} +139 -236
  25. package/dist/lib/browser/chunk-ZCW3NSDZ.mjs.map +7 -0
  26. package/dist/lib/browser/{chunk-VJMKS4CZ.mjs → chunk-ZO5ZGDN5.mjs} +45 -47
  27. package/dist/lib/browser/chunk-ZO5ZGDN5.mjs.map +7 -0
  28. package/dist/lib/browser/index.mjs +37 -36
  29. package/dist/lib/browser/index.mjs.map +3 -3
  30. package/dist/lib/browser/{intent-resolver-VOQD3TQ2.mjs → intent-resolver-BOUT4WGY.mjs} +25 -91
  31. package/dist/lib/browser/intent-resolver-BOUT4WGY.mjs.map +7 -0
  32. package/dist/lib/browser/{markdown-R6MGRIA6.mjs → markdown-74EUSQGV.mjs} +22 -20
  33. package/dist/lib/browser/markdown-74EUSQGV.mjs.map +7 -0
  34. package/dist/lib/browser/meta.json +1 -1
  35. package/dist/lib/browser/{react-root-UMSBTN6H.mjs → react-root-2VRIT2HF.mjs} +10 -10
  36. package/dist/lib/browser/{react-surface-SXMQEWKE.mjs → react-surface-UOECBYHE.mjs} +17 -16
  37. package/dist/lib/browser/react-surface-UOECBYHE.mjs.map +7 -0
  38. package/dist/lib/browser/{settings-TCNF54PN.mjs → settings-LGQUZITB.mjs} +3 -3
  39. package/dist/lib/browser/{state-ZQ4IPOJT.mjs → state-36REWXO5.mjs} +3 -3
  40. package/dist/lib/browser/types/index.mjs +7 -9
  41. package/dist/lib/node-esm/ChannelContainer-4SV22AKC.mjs +17 -0
  42. package/dist/lib/node-esm/{ChatContainer-SH6LTFQL.mjs → ChatContainer-C526R4DI.mjs} +5 -5
  43. package/dist/lib/node-esm/{app-graph-builder-DMPT3MY6.mjs → app-graph-builder-DWYGNENL.mjs} +19 -20
  44. package/dist/lib/node-esm/app-graph-builder-DWYGNENL.mjs.map +7 -0
  45. package/dist/lib/node-esm/blueprint-definition-6LEAWSC7.mjs +105 -0
  46. package/dist/lib/node-esm/blueprint-definition-6LEAWSC7.mjs.map +7 -0
  47. package/dist/lib/node-esm/{call-manager-Q7RY2YP4.mjs → call-manager-LC4OS2KD.mjs} +5 -5
  48. package/dist/lib/node-esm/{chunk-TIPIOH2J.mjs → chunk-7KZWZS2U.mjs} +139 -236
  49. package/dist/lib/node-esm/chunk-7KZWZS2U.mjs.map +7 -0
  50. package/dist/lib/node-esm/{chunk-NHSIAEDW.mjs → chunk-KE6SKBPO.mjs} +45 -47
  51. package/dist/lib/node-esm/chunk-KE6SKBPO.mjs.map +7 -0
  52. package/dist/lib/node-esm/{chunk-2KZ4ODHU.mjs → chunk-NEGIPZTJ.mjs} +34 -31
  53. package/dist/lib/node-esm/chunk-NEGIPZTJ.mjs.map +7 -0
  54. package/dist/lib/node-esm/{chunk-2MMJF7DW.mjs → chunk-PZH2EDU5.mjs} +68 -67
  55. package/dist/lib/node-esm/chunk-PZH2EDU5.mjs.map +7 -0
  56. package/dist/lib/node-esm/chunk-TJKM5JZT.mjs +169 -0
  57. package/dist/lib/node-esm/chunk-TJKM5JZT.mjs.map +7 -0
  58. package/dist/lib/node-esm/{chunk-BTGKI5IK.mjs → chunk-TWKGDFCS.mjs} +17 -16
  59. package/dist/lib/node-esm/chunk-TWKGDFCS.mjs.map +7 -0
  60. package/dist/lib/node-esm/{chunk-2V3WSLUZ.mjs → chunk-VBI32FGI.mjs} +1 -1
  61. package/dist/lib/node-esm/{chunk-2V3WSLUZ.mjs.map → chunk-VBI32FGI.mjs.map} +2 -2
  62. package/dist/lib/node-esm/chunk-VM6WD3YY.mjs +25 -0
  63. package/dist/lib/node-esm/chunk-VM6WD3YY.mjs.map +7 -0
  64. package/dist/lib/node-esm/chunk-XI45H4IV.mjs +28 -0
  65. package/dist/lib/node-esm/chunk-XI45H4IV.mjs.map +7 -0
  66. package/dist/lib/node-esm/{chunk-LCHTNRK7.mjs → chunk-ZQAGII7M.mjs} +2 -2
  67. package/dist/lib/node-esm/{chunk-LCHTNRK7.mjs.map → chunk-ZQAGII7M.mjs.map} +1 -1
  68. package/dist/lib/node-esm/index.mjs +37 -36
  69. package/dist/lib/node-esm/index.mjs.map +3 -3
  70. package/dist/lib/node-esm/{intent-resolver-AKVH66PH.mjs → intent-resolver-45PLIFCJ.mjs} +25 -91
  71. package/dist/lib/node-esm/intent-resolver-45PLIFCJ.mjs.map +7 -0
  72. package/dist/lib/node-esm/{markdown-MYGTDXT6.mjs → markdown-566XXB55.mjs} +22 -20
  73. package/dist/lib/node-esm/markdown-566XXB55.mjs.map +7 -0
  74. package/dist/lib/node-esm/meta.json +1 -1
  75. package/dist/lib/node-esm/{react-root-W6AVTL5M.mjs → react-root-JAE2VI2D.mjs} +10 -10
  76. package/dist/lib/node-esm/{react-surface-NLSZJGMO.mjs → react-surface-BYKXK5YA.mjs} +17 -16
  77. package/dist/lib/node-esm/react-surface-BYKXK5YA.mjs.map +7 -0
  78. package/dist/lib/node-esm/{settings-ZQHGVFBY.mjs → settings-WKLJSP6R.mjs} +3 -3
  79. package/dist/lib/node-esm/{state-FSLLJ5TZ.mjs → state-X3W67GTL.mjs} +3 -3
  80. package/dist/lib/node-esm/types/index.mjs +7 -9
  81. package/dist/types/src/ThreadPlugin.d.ts.map +1 -1
  82. package/dist/types/src/calls/media-manager.d.ts.map +1 -1
  83. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  84. package/dist/types/src/capabilities/blueprint-definition.d.ts +5 -0
  85. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -0
  86. package/dist/types/src/capabilities/capabilities.d.ts +2 -2
  87. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  88. package/dist/types/src/capabilities/index.d.ts +1 -1
  89. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  90. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  91. package/dist/types/src/capabilities/markdown.d.ts.map +1 -1
  92. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  93. package/dist/types/src/components/Call/Toolbar.d.ts +2 -2
  94. package/dist/types/src/components/Call/Toolbar.d.ts.map +1 -1
  95. package/dist/types/src/components/ChannelContainer.d.ts +2 -2
  96. package/dist/types/src/components/ChannelContainer.d.ts.map +1 -1
  97. package/dist/types/src/components/ChannelContainer.stories.d.ts +71 -5
  98. package/dist/types/src/components/ChannelContainer.stories.d.ts.map +1 -1
  99. package/dist/types/src/components/Chat.stories.d.ts +71 -4
  100. package/dist/types/src/components/Chat.stories.d.ts.map +1 -1
  101. package/dist/types/src/components/ChatContainer.d.ts +6 -5
  102. package/dist/types/src/components/ChatContainer.d.ts.map +1 -1
  103. package/dist/types/src/components/CommentsContainer.d.ts +2 -2
  104. package/dist/types/src/components/CommentsContainer.d.ts.map +1 -1
  105. package/dist/types/src/components/CommentsThreadContainer.d.ts +8 -8
  106. package/dist/types/src/components/CommentsThreadContainer.d.ts.map +1 -1
  107. package/dist/types/src/components/MessageContainer.d.ts +2 -2
  108. package/dist/types/src/components/MessageContainer.d.ts.map +1 -1
  109. package/dist/types/src/components/ResponsiveGrid/ResponsiveGridItem.d.ts.map +1 -1
  110. package/dist/types/src/components/ThreadComplementary.d.ts.map +1 -1
  111. package/dist/types/src/components/index.d.ts +1 -1
  112. package/dist/types/src/components/index.d.ts.map +1 -1
  113. package/dist/types/src/components/testing.d.ts +3 -3
  114. package/dist/types/src/components/testing.d.ts.map +1 -1
  115. package/dist/types/src/extensions/threads.d.ts.map +1 -1
  116. package/dist/types/src/functions/create-proposals.d.ts +6 -0
  117. package/dist/types/src/functions/create-proposals.d.ts.map +1 -0
  118. package/dist/types/src/functions/index.d.ts +2 -0
  119. package/dist/types/src/functions/index.d.ts.map +1 -0
  120. package/dist/types/src/hooks/analytics.d.ts +2 -2
  121. package/dist/types/src/hooks/analytics.d.ts.map +1 -1
  122. package/dist/types/src/hooks/index.d.ts +2 -2
  123. package/dist/types/src/hooks/index.d.ts.map +1 -1
  124. package/dist/types/src/meta.d.ts.map +1 -1
  125. package/dist/types/src/testing/stories.d.ts.map +1 -1
  126. package/dist/types/src/translations.d.ts +71 -5
  127. package/dist/types/src/translations.d.ts.map +1 -1
  128. package/dist/types/src/types/Channel.d.ts +16 -0
  129. package/dist/types/src/types/Channel.d.ts.map +1 -0
  130. package/dist/types/src/types/{schema.d.ts → Thread.d.ts} +13 -25
  131. package/dist/types/src/types/Thread.d.ts.map +1 -0
  132. package/dist/types/src/types/index.d.ts +2 -1
  133. package/dist/types/src/types/index.d.ts.map +1 -1
  134. package/dist/types/src/types/types.d.ts +22 -110
  135. package/dist/types/src/types/types.d.ts.map +1 -1
  136. package/dist/types/tsconfig.tsbuildinfo +1 -1
  137. package/package.json +50 -46
  138. package/src/ThreadPlugin.tsx +26 -18
  139. package/src/calls/media-manager.ts +9 -6
  140. package/src/calls/util/stub-media-streams.ts +2 -2
  141. package/src/capabilities/app-graph-builder.ts +27 -17
  142. package/src/capabilities/blueprint-definition.ts +38 -0
  143. package/src/capabilities/capabilities.ts +2 -2
  144. package/src/capabilities/index.ts +1 -1
  145. package/src/capabilities/intent-resolver.ts +17 -54
  146. package/src/capabilities/markdown.ts +5 -3
  147. package/src/capabilities/react-surface.tsx +8 -7
  148. package/src/components/Call/Call.tsx +1 -1
  149. package/src/components/Call/Toolbar.tsx +5 -5
  150. package/src/components/CallDebugPanel.tsx +2 -2
  151. package/src/components/CallSidebar.tsx +1 -1
  152. package/src/components/ChannelContainer.stories.tsx +6 -6
  153. package/src/components/ChannelContainer.tsx +18 -14
  154. package/src/components/Chat.stories.tsx +7 -13
  155. package/src/components/ChatContainer.tsx +30 -21
  156. package/src/components/Comments.stories.tsx +6 -6
  157. package/src/components/CommentsContainer.tsx +6 -7
  158. package/src/components/CommentsThreadContainer.tsx +32 -27
  159. package/src/components/Lobby/Lobby.tsx +1 -1
  160. package/src/components/Media/VideoObject.tsx +1 -1
  161. package/src/components/MessageContainer.tsx +6 -6
  162. package/src/components/Participant/Participant.tsx +1 -1
  163. package/src/components/ResponsiveGrid/ResponsiveContainer.tsx +2 -2
  164. package/src/components/ResponsiveGrid/ResponsiveGrid.stories.tsx +1 -1
  165. package/src/components/ResponsiveGrid/ResponsiveGrid.tsx +4 -4
  166. package/src/components/ResponsiveGrid/ResponsiveGridItem.tsx +5 -2
  167. package/src/components/ThreadComplementary.tsx +38 -31
  168. package/src/components/testing.ts +8 -8
  169. package/src/extensions/threads.ts +25 -16
  170. package/src/functions/create-proposals.ts +58 -0
  171. package/src/functions/index.ts +5 -0
  172. package/src/hooks/analytics.ts +4 -7
  173. package/src/hooks/index.ts +3 -2
  174. package/src/meta.ts +6 -1
  175. package/src/testing/stories.ts +2 -5
  176. package/src/translations.ts +3 -2
  177. package/src/types/Channel.ts +27 -0
  178. package/src/types/Thread.ts +26 -0
  179. package/src/types/index.ts +2 -1
  180. package/src/types/types.ts +17 -25
  181. package/dist/lib/browser/ChannelContainer-BGDGZHV4.mjs +0 -16
  182. package/dist/lib/browser/ChatContainer-75KJZ4XR.mjs +0 -15
  183. package/dist/lib/browser/app-graph-builder-ODKIAXR7.mjs.map +0 -7
  184. package/dist/lib/browser/chunk-2MUYQOQE.mjs +0 -23
  185. package/dist/lib/browser/chunk-2MUYQOQE.mjs.map +0 -7
  186. package/dist/lib/browser/chunk-B7YQ7QR2.mjs.map +0 -7
  187. package/dist/lib/browser/chunk-CMCVHULC.mjs.map +0 -7
  188. package/dist/lib/browser/chunk-HDEQRBOC.mjs.map +0 -7
  189. package/dist/lib/browser/chunk-T4KJ5JR4.mjs +0 -15
  190. package/dist/lib/browser/chunk-T4KJ5JR4.mjs.map +0 -7
  191. package/dist/lib/browser/chunk-VJMKS4CZ.mjs.map +0 -7
  192. package/dist/lib/browser/chunk-VTYX3SIM.mjs +0 -147
  193. package/dist/lib/browser/chunk-VTYX3SIM.mjs.map +0 -7
  194. package/dist/lib/browser/chunk-ZCEU5K23.mjs.map +0 -7
  195. package/dist/lib/browser/intent-resolver-VOQD3TQ2.mjs.map +0 -7
  196. package/dist/lib/browser/markdown-R6MGRIA6.mjs.map +0 -7
  197. package/dist/lib/browser/react-surface-SXMQEWKE.mjs.map +0 -7
  198. package/dist/lib/browser/toolkit-JF4B4QIO.mjs +0 -84
  199. package/dist/lib/browser/toolkit-JF4B4QIO.mjs.map +0 -7
  200. package/dist/lib/node-esm/ChannelContainer-OXC6BTU7.mjs +0 -17
  201. package/dist/lib/node-esm/app-graph-builder-DMPT3MY6.mjs.map +0 -7
  202. package/dist/lib/node-esm/chunk-2KZ4ODHU.mjs.map +0 -7
  203. package/dist/lib/node-esm/chunk-2MMJF7DW.mjs.map +0 -7
  204. package/dist/lib/node-esm/chunk-BAMZXJS4.mjs +0 -148
  205. package/dist/lib/node-esm/chunk-BAMZXJS4.mjs.map +0 -7
  206. package/dist/lib/node-esm/chunk-BTGKI5IK.mjs.map +0 -7
  207. package/dist/lib/node-esm/chunk-GZ4WL2IS.mjs +0 -25
  208. package/dist/lib/node-esm/chunk-GZ4WL2IS.mjs.map +0 -7
  209. package/dist/lib/node-esm/chunk-NHSIAEDW.mjs.map +0 -7
  210. package/dist/lib/node-esm/chunk-OBVAURUU.mjs +0 -17
  211. package/dist/lib/node-esm/chunk-OBVAURUU.mjs.map +0 -7
  212. package/dist/lib/node-esm/chunk-TIPIOH2J.mjs.map +0 -7
  213. package/dist/lib/node-esm/intent-resolver-AKVH66PH.mjs.map +0 -7
  214. package/dist/lib/node-esm/markdown-MYGTDXT6.mjs.map +0 -7
  215. package/dist/lib/node-esm/react-surface-NLSZJGMO.mjs.map +0 -7
  216. package/dist/lib/node-esm/toolkit-DHPKJITO.mjs +0 -85
  217. package/dist/lib/node-esm/toolkit-DHPKJITO.mjs.map +0 -7
  218. package/dist/types/src/capabilities/toolkit.d.ts +0 -6
  219. package/dist/types/src/capabilities/toolkit.d.ts.map +0 -1
  220. package/dist/types/src/types/schema.d.ts.map +0 -1
  221. package/src/capabilities/toolkit.ts +0 -82
  222. package/src/types/schema.ts +0 -33
  223. /package/dist/lib/browser/{ChannelContainer-BGDGZHV4.mjs.map → ChannelContainer-56QROCE4.mjs.map} +0 -0
  224. /package/dist/lib/browser/{ChatContainer-75KJZ4XR.mjs.map → ChatContainer-7F5Y6GXJ.mjs.map} +0 -0
  225. /package/dist/lib/browser/{call-manager-BCKLI4QD.mjs.map → call-manager-MAXQLMMS.mjs.map} +0 -0
  226. /package/dist/lib/browser/{react-root-UMSBTN6H.mjs.map → react-root-2VRIT2HF.mjs.map} +0 -0
  227. /package/dist/lib/browser/{settings-TCNF54PN.mjs.map → settings-LGQUZITB.mjs.map} +0 -0
  228. /package/dist/lib/browser/{state-ZQ4IPOJT.mjs.map → state-36REWXO5.mjs.map} +0 -0
  229. /package/dist/lib/node-esm/{ChannelContainer-OXC6BTU7.mjs.map → ChannelContainer-4SV22AKC.mjs.map} +0 -0
  230. /package/dist/lib/node-esm/{ChatContainer-SH6LTFQL.mjs.map → ChatContainer-C526R4DI.mjs.map} +0 -0
  231. /package/dist/lib/node-esm/{call-manager-Q7RY2YP4.mjs.map → call-manager-LC4OS2KD.mjs.map} +0 -0
  232. /package/dist/lib/node-esm/{react-root-W6AVTL5M.mjs.map → react-root-JAE2VI2D.mjs.map} +0 -0
  233. /package/dist/lib/node-esm/{settings-ZQHGVFBY.mjs.map → settings-WKLJSP6R.mjs.map} +0 -0
  234. /package/dist/lib/node-esm/{state-FSLLJ5TZ.mjs.map → state-X3W67GTL.mjs.map} +0 -0
@@ -0,0 +1,16 @@
1
+ import {
2
+ ChannelContainer,
3
+ ChannelContainer_default
4
+ } from "./chunk-44S2SB4N.mjs";
5
+ import "./chunk-NSREO7OX.mjs";
6
+ import "./chunk-BBTXGRIR.mjs";
7
+ import "./chunk-FR6MEAZI.mjs";
8
+ import "./chunk-KOBXMDCI.mjs";
9
+ import "./chunk-CP7E2HRE.mjs";
10
+ import "./chunk-ISCHODBV.mjs";
11
+ import "./chunk-K2DUJRFJ.mjs";
12
+ export {
13
+ ChannelContainer,
14
+ ChannelContainer_default as default
15
+ };
16
+ //# sourceMappingURL=ChannelContainer-56QROCE4.mjs.map
@@ -0,0 +1,15 @@
1
+ import {
2
+ ChatContainer,
3
+ ChatContainer_default,
4
+ ChatHeading
5
+ } from "./chunk-FR6MEAZI.mjs";
6
+ import "./chunk-KOBXMDCI.mjs";
7
+ import "./chunk-CP7E2HRE.mjs";
8
+ import "./chunk-ISCHODBV.mjs";
9
+ import "./chunk-K2DUJRFJ.mjs";
10
+ export {
11
+ ChatContainer,
12
+ ChatHeading,
13
+ ChatContainer_default as default
14
+ };
15
+ //# sourceMappingURL=ChatContainer-7F5Y6GXJ.mjs.map
@@ -1,19 +1,19 @@
1
1
  import {
2
- ChannelType,
2
+ Channel_exports,
3
3
  ThreadAction
4
- } from "./chunk-VTYX3SIM.mjs";
4
+ } from "./chunk-NMJEVD36.mjs";
5
5
  import {
6
6
  ThreadCapabilities
7
- } from "./chunk-L326LSNS.mjs";
7
+ } from "./chunk-BBTXGRIR.mjs";
8
8
  import {
9
9
  getAnchor
10
10
  } from "./chunk-CP7E2HRE.mjs";
11
11
  import {
12
12
  meta
13
- } from "./chunk-T4KJ5JR4.mjs";
13
+ } from "./chunk-K2DUJRFJ.mjs";
14
14
 
15
15
  // src/capabilities/app-graph-builder.ts
16
- import { Rx } from "@effect-rx/rx-react";
16
+ import { Atom } from "@effect-atom/atom-react";
17
17
  import * as Function from "effect/Function";
18
18
  import * as Option from "effect/Option";
19
19
  import { Capabilities, contributes, createIntent } from "@dxos/app-framework";
@@ -21,13 +21,12 @@ import { Obj } from "@dxos/echo";
21
21
  import { AttentionCapabilities } from "@dxos/plugin-attention";
22
22
  import { ATTENDABLE_PATH_SEPARATOR, DECK_COMPANION_TYPE, PLANK_COMPANION_TYPE } from "@dxos/plugin-deck/types";
23
23
  import { ROOT_ID, createExtension, rxFromSignal } from "@dxos/plugin-graph";
24
- import { fullyQualifiedId } from "@dxos/react-client/echo";
25
24
  var app_graph_builder_default = ((context) => {
26
25
  const resolve = (typename) => context.getCapabilities(Capabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {};
27
26
  return contributes(Capabilities.AppGraphBuilder, [
28
27
  createExtension({
29
28
  id: `${meta.id}/active-call`,
30
- connector: (node) => Rx.make((get) => Function.pipe(get(node), Option.flatMap((node2) => node2.id === ROOT_ID ? Option.some(node2) : Option.none()), Option.map((node2) => {
29
+ connector: (node) => Atom.make((get) => Function.pipe(get(node), Option.flatMap((node2) => node2.id === ROOT_ID ? Option.some(node2) : Option.none()), Option.map((node2) => {
31
30
  const [call] = get(context.capabilities(ThreadCapabilities.CallManager));
32
31
  return get(rxFromSignal(() => call?.joined ? [
33
32
  {
@@ -54,16 +53,16 @@ var app_graph_builder_default = ((context) => {
54
53
  createExtension({
55
54
  id: `${meta.id}/channel-chat-companion`,
56
55
  connector: (node) => {
57
- return Rx.make((get) => {
58
- return Function.pipe(get(node), Option.flatMap((node2) => Obj.instanceOf(ChannelType, node2.data) ? Option.some(node2.data) : Option.none()), Option.map((channel) => {
56
+ return Atom.make((get) => {
57
+ return Function.pipe(get(node), Option.flatMap((node2) => Obj.instanceOf(Channel_exports.Channel, node2.data) ? Option.some(node2.data) : Option.none()), Option.map((channel) => {
59
58
  const callManager = context.getCapability(ThreadCapabilities.CallManager);
60
- const joined = get(rxFromSignal(() => callManager.joined && callManager.roomId === fullyQualifiedId(channel)));
59
+ const joined = get(rxFromSignal(() => callManager.joined && callManager.roomId === Obj.getDXN(channel).toString()));
61
60
  if (!joined) {
62
61
  return [];
63
62
  }
64
63
  return [
65
64
  {
66
- id: `${fullyQualifiedId(channel)}${ATTENDABLE_PATH_SEPARATOR}chat`,
65
+ id: `${Obj.getDXN(channel).toString()}${ATTENDABLE_PATH_SEPARATOR}chat`,
67
66
  type: PLANK_COMPANION_TYPE,
68
67
  data: "chat",
69
68
  properties: {
@@ -85,8 +84,8 @@ var app_graph_builder_default = ((context) => {
85
84
  }),
86
85
  createExtension({
87
86
  id: `${meta.id}/comments-companion`,
88
- connector: (node) => Rx.make((get) => Function.pipe(get(node), Option.flatMap((node2) => {
89
- if (!Obj.isObject(node2.data) || Obj.instanceOf(ChannelType, node2.data)) {
87
+ connector: (node) => Atom.make((get) => Function.pipe(get(node), Option.flatMap((node2) => {
88
+ if (!Obj.isObject(node2.data) || Obj.instanceOf(Channel_exports.Channel, node2.data)) {
90
89
  return Option.none();
91
90
  }
92
91
  const metadata = resolve(Obj.getTypename(node2.data));
@@ -115,8 +114,8 @@ var app_graph_builder_default = ((context) => {
115
114
  }),
116
115
  createExtension({
117
116
  id: `${meta.id}/comment-toolbar`,
118
- actions: (node) => Rx.make((get) => Function.pipe(get(node), Option.flatMap((node2) => {
119
- if (!Obj.isObject(node2.data) || Obj.instanceOf(ChannelType, node2.data)) {
117
+ actions: (node) => Atom.make((get) => Function.pipe(get(node), Option.flatMap((node2) => {
118
+ if (!Obj.isObject(node2.data) || Obj.instanceOf(Channel_exports.Channel, node2.data)) {
120
119
  return Option.none();
121
120
  }
122
121
  const metadata = resolve(Obj.getTypename(node2.data));
@@ -126,19 +125,19 @@ var app_graph_builder_default = ((context) => {
126
125
  const toolbar = get(context.capabilities(ThreadCapabilities.State))[0]?.state.toolbar ?? {};
127
126
  const disabled = get(rxFromSignal(() => {
128
127
  const metadata = resolve(Obj.getTypename(object));
129
- const selection = selectionManager.getSelection(fullyQualifiedId(object), metadata.selectionMode);
128
+ const selection = selectionManager.getSelection(Obj.getDXN(object).toString(), metadata.selectionMode);
130
129
  const anchor = getAnchor(selection);
131
130
  const invalidSelection = !anchor;
132
- const overlappingComment = toolbar[fullyQualifiedId(object)];
131
+ const overlappingComment = toolbar[Obj.getDXN(object).toString()];
133
132
  return metadata.comments === "anchored" && invalidSelection || overlappingComment;
134
133
  }));
135
134
  return [
136
135
  {
137
- id: `${fullyQualifiedId(object)}/comment`,
136
+ id: `${Obj.getDXN(object).toString()}/comment`,
138
137
  data: () => {
139
138
  const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);
140
139
  const metadata = resolve(Obj.getTypename(object));
141
- const selection = selectionManager.getSelection(fullyQualifiedId(object));
140
+ const selection = selectionManager.getSelection(Obj.getDXN(object).toString());
142
141
  const anchor = metadata.comments === "anchored" ? getAnchor(selection) : Date.now().toString();
143
142
  const name = metadata.getAnchorLabel?.(object, anchor);
144
143
  void dispatch(createIntent(ThreadAction.Create, {
@@ -168,4 +167,4 @@ var app_graph_builder_default = ((context) => {
168
167
  export {
169
168
  app_graph_builder_default as default
170
169
  };
171
- //# sourceMappingURL=app-graph-builder-ODKIAXR7.mjs.map
170
+ //# sourceMappingURL=app-graph-builder-USFBLGFG.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/app-graph-builder.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Atom } from '@effect-atom/atom-react';\nimport * as Function from 'effect/Function';\nimport * as Option from 'effect/Option';\n\nimport { Capabilities, type PluginContext, contributes, createIntent } from '@dxos/app-framework';\nimport { Obj } from '@dxos/echo';\nimport { AttentionCapabilities } from '@dxos/plugin-attention';\nimport { ATTENDABLE_PATH_SEPARATOR, DECK_COMPANION_TYPE, PLANK_COMPANION_TYPE } from '@dxos/plugin-deck/types';\nimport { ROOT_ID, createExtension, rxFromSignal } from '@dxos/plugin-graph';\n\nimport { meta } from '../meta';\nimport { Channel, ThreadAction } from '../types';\nimport { getAnchor } from '../util';\n\nimport { ThreadCapabilities } from './capabilities';\n\n// TODO(wittjosiah): Highlight active calls in L1.\n// Track active meetings by subscribing to meetings query and polling the swarms of recent meetings in the space.\nexport default (context: PluginContext) => {\n const resolve = (typename: string) =>\n context.getCapabilities(Capabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {};\n\n return contributes(Capabilities.AppGraphBuilder, [\n createExtension({\n id: `${meta.id}/active-call`,\n connector: (node) =>\n Atom.make((get) =>\n Function.pipe(\n get(node),\n Option.flatMap((node) => (node.id === ROOT_ID ? Option.some(node) : Option.none())),\n Option.map((node) => {\n const [call] = get(context.capabilities(ThreadCapabilities.CallManager));\n return get(\n rxFromSignal(() =>\n call?.joined\n ? [\n {\n id: `${node.id}${ATTENDABLE_PATH_SEPARATOR}active-call`,\n type: DECK_COMPANION_TYPE,\n data: null,\n properties: {\n label: ['call panel label', { ns: meta.id }],\n icon: 'ph--video-conference--regular',\n position: 'hoist',\n disposition: 'hidden',\n },\n },\n ]\n : [],\n ),\n );\n }),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n // TODO(wittjosiah): The channel shouldn't become the companion during a call.\n // Alternative: the call/meeting/thread should be a child node of the channel and that should be opened.\n createExtension({\n id: `${meta.id}/channel-chat-companion`,\n connector: (node) => {\n return Atom.make((get) => {\n return Function.pipe(\n get(node),\n Option.flatMap((node) =>\n Obj.instanceOf(Channel.Channel, node.data) ? Option.some(node.data) : Option.none(),\n ),\n Option.map((channel) => {\n const callManager = context.getCapability(ThreadCapabilities.CallManager);\n const joined = get(\n rxFromSignal(() => callManager.joined && callManager.roomId === Obj.getDXN(channel).toString()),\n );\n if (!joined) {\n return [];\n }\n\n return [\n {\n id: `${Obj.getDXN(channel).toString()}${ATTENDABLE_PATH_SEPARATOR}chat`,\n type: PLANK_COMPANION_TYPE,\n data: 'chat',\n properties: {\n label: ['channel companion label', { ns: meta.id }],\n icon: 'ph--hash--regular',\n position: 'hoist',\n disposition: 'hidden',\n },\n },\n ];\n }),\n Option.getOrElse(() => []),\n );\n });\n },\n }),\n createExtension({\n id: `${meta.id}/comments-companion`,\n connector: (node) =>\n Atom.make((get) =>\n Function.pipe(\n get(node),\n Option.flatMap((node) => {\n if (!Obj.isObject(node.data) || Obj.instanceOf(Channel.Channel, node.data)) {\n return Option.none();\n }\n const metadata = resolve(Obj.getTypename(node.data)!);\n return typeof metadata.comments === 'string' ? Option.some(node) : Option.none();\n }),\n Option.map((node) => [\n {\n id: [node.id, 'comments'].join(ATTENDABLE_PATH_SEPARATOR),\n type: PLANK_COMPANION_TYPE,\n data: 'comments',\n properties: {\n label: ['comments label', { ns: meta.id }],\n icon: 'ph--chat-text--regular',\n disposition: 'hidden',\n position: 'hoist',\n },\n },\n ]),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n createExtension({\n id: `${meta.id}/comment-toolbar`,\n actions: (node) =>\n Atom.make((get) =>\n Function.pipe(\n get(node),\n Option.flatMap((node) => {\n if (!Obj.isObject(node.data) || Obj.instanceOf(Channel.Channel, node.data)) {\n return Option.none();\n }\n const metadata = resolve(Obj.getTypename(node.data)!);\n return typeof metadata.comments === 'string' ? Option.some(node.data) : Option.none();\n }),\n Option.map((object) => {\n const selectionManager = context.getCapability(AttentionCapabilities.Selection);\n const toolbar = get(context.capabilities(ThreadCapabilities.State))[0]?.state.toolbar ?? {};\n const disabled = get(\n rxFromSignal(() => {\n const metadata = resolve(Obj.getTypename(object)!);\n const selection = selectionManager.getSelection(\n Obj.getDXN(object).toString(),\n metadata.selectionMode,\n );\n const anchor = getAnchor(selection);\n const invalidSelection = !anchor;\n const overlappingComment = toolbar[Obj.getDXN(object).toString()];\n return (metadata.comments === 'anchored' && invalidSelection) || overlappingComment;\n }),\n );\n\n return [\n {\n id: `${Obj.getDXN(object).toString()}/comment`,\n data: () => {\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n const metadata = resolve(Obj.getTypename(object)!);\n const selection = selectionManager.getSelection(Obj.getDXN(object).toString());\n // TODO(wittjosiah): Use presence of selection to determine if the comment should be anchored.\n // Requires all components which support selection (e.g. table/kanban) to support anchored comments.\n const anchor = metadata.comments === 'anchored' ? getAnchor(selection) : Date.now().toString();\n const name = metadata.getAnchorLabel?.(object, anchor);\n void dispatch(\n createIntent(ThreadAction.Create, {\n anchor,\n name,\n subject: object,\n }),\n );\n },\n properties: {\n label: ['add comment label', { ns: meta.id }],\n icon: 'ph--chat-text--regular',\n disposition: 'toolbar',\n disabled,\n testId: 'thread.comment.add',\n },\n },\n ];\n }),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n ]);\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["Atom", "Function", "Option", "Capabilities", "contributes", "createIntent", "Obj", "AttentionCapabilities", "ATTENDABLE_PATH_SEPARATOR", "DECK_COMPANION_TYPE", "PLANK_COMPANION_TYPE", "ROOT_ID", "createExtension", "rxFromSignal", "context", "resolve", "typename", "getCapabilities", "Capabilities", "Metadata", "find", "id", "metadata", "contributes", "AppGraphBuilder", "createExtension", "meta", "connector", "node", "Atom", "make", "get", "pipe", "flatMap", "ROOT_ID", "some", "none", "map", "call", "capabilities", "ThreadCapabilities", "CallManager", "rxFromSignal", "joined", "ATTENDABLE_PATH_SEPARATOR", "type", "DECK_COMPANION_TYPE", "data", "properties", "label", "ns", "icon", "position", "disposition", "getOrElse", "Obj", "instanceOf", "Channel", "channel", "callManager", "getCapability", "roomId", "getDXN", "toString", "PLANK_COMPANION_TYPE", "isObject", "getTypename", "comments", "join", "actions", "object", "selectionManager", "AttentionCapabilities", "Selection", "toolbar", "State", "state", "disabled", "selection", "getSelection", "selectionMode", "anchor", "getAnchor", "invalidSelection", "overlappingComment", "dispatchPromise", "dispatch", "IntentDispatcher", "Date", "now", "name", "getAnchorLabel", "createIntent", "ThreadAction", "Create", "subject", "testId"]
7
+ }
@@ -0,0 +1,104 @@
1
+ import {
2
+ Thread_exports
3
+ } from "./chunk-NMJEVD36.mjs";
4
+ import "./chunk-K2DUJRFJ.mjs";
5
+
6
+ // src/capabilities/blueprint-definition.ts
7
+ import { Capabilities, contributes } from "@dxos/app-framework";
8
+ import { Blueprint, Template } from "@dxos/blueprints";
9
+ import { trim } from "@dxos/util";
10
+
11
+ // src/functions/create-proposals.ts
12
+ import * as Array from "effect/Array";
13
+ import * as Effect from "effect/Effect";
14
+ import * as Function from "effect/Function";
15
+ import * as Schema from "effect/Schema";
16
+ import { ArtifactId, computeDiffsWithCursors } from "@dxos/assistant";
17
+ import { Obj, Ref, Relation } from "@dxos/echo";
18
+ import { createDocAccessor } from "@dxos/echo-db";
19
+ import { DatabaseService, defineFunction } from "@dxos/functions";
20
+ import { DXN } from "@dxos/keys";
21
+ import { Markdown } from "@dxos/plugin-markdown/types";
22
+ import { AnchoredTo, Message } from "@dxos/types";
23
+ var create_proposals_default = defineFunction({
24
+ key: "dxos.org/function/thread/create-proposals",
25
+ name: "Create Proposals",
26
+ description: "Proposes a set of changes to a document.",
27
+ inputSchema: Schema.Struct({
28
+ id: ArtifactId,
29
+ diffs: Schema.Array(Schema.String).annotations({
30
+ description: "The diffs to propose for the document."
31
+ })
32
+ }),
33
+ outputSchema: Schema.Void,
34
+ handler: Effect.fn(function* ({ data: { id, diffs: _diffs } }) {
35
+ const object = yield* DatabaseService.resolve(DXN.parse(id), Markdown.Document);
36
+ const content = yield* Effect.promise(() => object.content.load());
37
+ const accessor = createDocAccessor(content, [
38
+ "content"
39
+ ]);
40
+ yield* Function.pipe(computeDiffsWithCursors(accessor, _diffs), Array.map(Effect.fnUntraced(function* ({ cursor, text }) {
41
+ const proposal = Obj.make(Message.Message, {
42
+ created: (/* @__PURE__ */ new Date()).toISOString(),
43
+ sender: {
44
+ role: "assistant"
45
+ },
46
+ blocks: [
47
+ {
48
+ _tag: "proposal",
49
+ text
50
+ }
51
+ ]
52
+ });
53
+ const thread = Thread_exports.make({
54
+ name: "Proposal",
55
+ messages: [
56
+ Ref.make(proposal)
57
+ ],
58
+ status: "active"
59
+ });
60
+ const relation = Relation.make(AnchoredTo.AnchoredTo, {
61
+ [Relation.Source]: thread,
62
+ [Relation.Target]: object,
63
+ anchor: cursor
64
+ });
65
+ yield* DatabaseService.add(thread);
66
+ yield* DatabaseService.add(relation);
67
+ })), Effect.allWith({
68
+ concurrency: "unbounded"
69
+ }));
70
+ })
71
+ });
72
+
73
+ // src/capabilities/blueprint-definition.ts
74
+ var functions = [
75
+ create_proposals_default
76
+ ];
77
+ var ASSISTANT_BLUEPRINT_KEY = "dxos.org/blueprint/thread";
78
+ var blueprint_definition_default = (() => [
79
+ contributes(Capabilities.Functions, functions),
80
+ contributes(Capabilities.BlueprintDefinition, Blueprint.make({
81
+ key: ASSISTANT_BLUEPRINT_KEY,
82
+ name: "Thread",
83
+ tools: Blueprint.toolDefinitions({
84
+ functions
85
+ }),
86
+ instructions: Template.make({
87
+ // TODO(wittjosiah): Move example to function input schema annotation.
88
+ source: trim`
89
+ You can update markdown documents via proposals.
90
+ For each diff, respond with the smallest possible matching span.
91
+ For example:
92
+ - "There is a tyop in this sentence."
93
+ + "There is a typo in this sentence."
94
+ - "This id goof."
95
+ + "This is good."
96
+ `
97
+ })
98
+ }))
99
+ ]);
100
+ export {
101
+ ASSISTANT_BLUEPRINT_KEY,
102
+ blueprint_definition_default as default
103
+ };
104
+ //# sourceMappingURL=blueprint-definition-6BKYTMJS.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/blueprint-definition.ts", "../../../src/functions/create-proposals.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, type Capability, contributes } from '@dxos/app-framework';\nimport { Blueprint, Template } from '@dxos/blueprints';\nimport { type FunctionDefinition } from '@dxos/functions';\nimport { trim } from '@dxos/util';\n\nimport { createProposals } from '../functions';\n\nconst functions: FunctionDefinition[] = [createProposals];\n\nexport const ASSISTANT_BLUEPRINT_KEY = 'dxos.org/blueprint/thread';\n\nexport default (): Capability<any>[] => [\n contributes(Capabilities.Functions, functions),\n contributes(\n Capabilities.BlueprintDefinition,\n Blueprint.make({\n key: ASSISTANT_BLUEPRINT_KEY,\n name: 'Thread',\n tools: Blueprint.toolDefinitions({ functions }),\n instructions: Template.make({\n // TODO(wittjosiah): Move example to function input schema annotation.\n source: trim`\n You can update markdown documents via proposals.\n For each diff, respond with the smallest possible matching span.\n For example:\n - \"There is a tyop in this sentence.\"\n + \"There is a typo in this sentence.\"\n - \"This id goof.\"\n + \"This is good.\"\n `,\n }),\n }),\n ),\n];\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Array from 'effect/Array';\nimport * as Effect from 'effect/Effect';\nimport * as Function from 'effect/Function';\nimport * as Schema from 'effect/Schema';\n\nimport { ArtifactId, computeDiffsWithCursors } from '@dxos/assistant';\nimport { Obj, Ref, Relation } from '@dxos/echo';\nimport { createDocAccessor } from '@dxos/echo-db';\nimport { DatabaseService, defineFunction } from '@dxos/functions';\nimport { DXN } from '@dxos/keys';\nimport { Markdown } from '@dxos/plugin-markdown/types';\nimport { AnchoredTo, Message } from '@dxos/types';\n\nimport { Thread } from '../types';\n\nexport default defineFunction({\n key: 'dxos.org/function/thread/create-proposals',\n name: 'Create Proposals',\n description: 'Proposes a set of changes to a document.',\n inputSchema: Schema.Struct({\n id: ArtifactId,\n diffs: Schema.Array(Schema.String).annotations({\n description: 'The diffs to propose for the document.',\n }),\n }),\n outputSchema: Schema.Void,\n handler: Effect.fn(function* ({ data: { id, diffs: _diffs } }) {\n const object = yield* DatabaseService.resolve(DXN.parse(id), Markdown.Document);\n const content = yield* Effect.promise(() => object.content.load());\n const accessor = createDocAccessor(content, ['content']);\n\n yield* Function.pipe(\n computeDiffsWithCursors(accessor, _diffs),\n Array.map(\n Effect.fnUntraced(function* ({ cursor, text }) {\n const proposal = Obj.make(Message.Message, {\n created: new Date().toISOString(),\n sender: { role: 'assistant' },\n blocks: [{ _tag: 'proposal', text }],\n });\n const thread = Thread.make({ name: 'Proposal', messages: [Ref.make(proposal)], status: 'active' });\n const relation = Relation.make(AnchoredTo.AnchoredTo, {\n [Relation.Source]: thread,\n [Relation.Target]: object,\n anchor: cursor,\n });\n yield* DatabaseService.add(thread);\n yield* DatabaseService.add(relation);\n }),\n ),\n Effect.allWith({ concurrency: 'unbounded' }),\n );\n }),\n});\n"],
5
+ "mappings": ";;;;;;AAIA,SAASA,cAA+BC,mBAAmB;AAC3D,SAASC,WAAWC,gBAAgB;AAEpC,SAASC,YAAY;;;ACHrB,YAAYC,WAAW;AACvB,YAAYC,YAAY;AACxB,YAAYC,cAAc;AAC1B,YAAYC,YAAY;AAExB,SAASC,YAAYC,+BAA+B;AACpD,SAASC,KAAKC,KAAKC,gBAAgB;AACnC,SAASC,yBAAyB;AAClC,SAASC,iBAAiBC,sBAAsB;AAChD,SAASC,WAAW;AACpB,SAASC,gBAAgB;AACzB,SAASC,YAAYC,eAAe;AAIpC,IAAA,2BAAeC,eAAe;EAC5BC,KAAK;EACLC,MAAM;EACNC,aAAa;EACbC,aAAoBC,cAAO;IACzBC,IAAIC;IACJC,OAAcC,aAAaC,aAAM,EAAEC,YAAY;MAC7CR,aAAa;IACf,CAAA;EACF,CAAA;EACAS,cAAqBC;EACrBC,SAAgBC,UAAG,WAAW,EAAEC,MAAM,EAAEV,IAAIE,OAAOS,OAAM,EAAE,GAAE;AAC3D,UAAMC,SAAS,OAAOC,gBAAgBC,QAAQC,IAAIC,MAAMhB,EAAAA,GAAKiB,SAASC,QAAQ;AAC9E,UAAMC,UAAU,OAAcC,eAAQ,MAAMR,OAAOO,QAAQE,KAAI,CAAA;AAC/D,UAAMC,WAAWC,kBAAkBJ,SAAS;MAAC;KAAU;AAEvD,WAAgBK,cACdC,wBAAwBH,UAAUX,MAAAA,GAC5Be,UACGC,kBAAW,WAAW,EAAEC,QAAQC,KAAI,GAAE;AAC3C,YAAMC,WAAWC,IAAIC,KAAKC,QAAQA,SAAS;QACzCC,UAAS,oBAAIC,KAAAA,GAAOC,YAAW;QAC/BC,QAAQ;UAAEC,MAAM;QAAY;QAC5BC,QAAQ;UAAC;YAAEC,MAAM;YAAYX;UAAK;;MACpC,CAAA;AACA,YAAMY,SAASC,eAAOV,KAAK;QAAEpC,MAAM;QAAY+C,UAAU;UAACC,IAAIZ,KAAKF,QAAAA;;QAAYe,QAAQ;MAAS,CAAA;AAChG,YAAMC,WAAWC,SAASf,KAAKgB,WAAWA,YAAY;QACpD,CAACD,SAASE,MAAM,GAAGR;QACnB,CAACM,SAASG,MAAM,GAAGtC;QACnBuC,QAAQvB;MACV,CAAA;AACA,aAAOf,gBAAgBuC,IAAIX,MAAAA;AAC3B,aAAO5B,gBAAgBuC,IAAIN,QAAAA;IAC7B,CAAA,CAAA,GAEKO,eAAQ;MAAEC,aAAa;IAAY,CAAA,CAAA;EAE9C,CAAA;AACF,CAAA;;;AD9CA,IAAMC,YAAkC;EAACC;;AAElC,IAAMC,0BAA0B;AAEvC,IAAA,gCAAe,MAAyB;EACtCC,YAAYC,aAAaC,WAAWL,SAAAA;EACpCG,YACEC,aAAaE,qBACbC,UAAUC,KAAK;IACbC,KAAKP;IACLQ,MAAM;IACNC,OAAOJ,UAAUK,gBAAgB;MAAEZ;IAAU,CAAA;IAC7Ca,cAAcC,SAASN,KAAK;;MAE1BO,QAAQC;;;;;;;;;IASV,CAAA;EACF,CAAA,CAAA;;",
6
+ "names": ["Capabilities", "contributes", "Blueprint", "Template", "trim", "Array", "Effect", "Function", "Schema", "ArtifactId", "computeDiffsWithCursors", "Obj", "Ref", "Relation", "createDocAccessor", "DatabaseService", "defineFunction", "DXN", "Markdown", "AnchoredTo", "Message", "defineFunction", "key", "name", "description", "inputSchema", "Struct", "id", "ArtifactId", "diffs", "Array", "String", "annotations", "outputSchema", "Void", "handler", "fn", "data", "_diffs", "object", "DatabaseService", "resolve", "DXN", "parse", "Markdown", "Document", "content", "promise", "load", "accessor", "createDocAccessor", "pipe", "computeDiffsWithCursors", "map", "fnUntraced", "cursor", "text", "proposal", "Obj", "make", "Message", "created", "Date", "toISOString", "sender", "role", "blocks", "_tag", "thread", "Thread", "messages", "Ref", "status", "relation", "Relation", "AnchoredTo", "Source", "Target", "anchor", "add", "allWith", "concurrency", "functions", "createProposals", "ASSISTANT_BLUEPRINT_KEY", "contributes", "Capabilities", "Functions", "BlueprintDefinition", "Blueprint", "make", "key", "name", "tools", "toolDefinitions", "instructions", "Template", "source", "trim"]
7
+ }
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  CallManager
3
- } from "./chunk-ZCEU5K23.mjs";
3
+ } from "./chunk-ZCW3NSDZ.mjs";
4
4
  import {
5
5
  ThreadCapabilities
6
- } from "./chunk-L326LSNS.mjs";
7
- import "./chunk-XYUJXHYV.mjs";
8
- import "./chunk-T4KJ5JR4.mjs";
6
+ } from "./chunk-BBTXGRIR.mjs";
7
+ import "./chunk-ISCHODBV.mjs";
8
+ import "./chunk-K2DUJRFJ.mjs";
9
9
 
10
10
  // src/capabilities/call-manager.ts
11
11
  import { contributes } from "@dxos/app-framework";
@@ -21,4 +21,4 @@ var call_manager_default = (async (context) => {
21
21
  export {
22
22
  call_manager_default as default
23
23
  };
24
- //# sourceMappingURL=call-manager-BCKLI4QD.mjs.map
24
+ //# sourceMappingURL=call-manager-MAXQLMMS.mjs.map
@@ -1,26 +1,27 @@
1
1
  import {
2
2
  ThreadCapabilities
3
- } from "./chunk-L326LSNS.mjs";
3
+ } from "./chunk-BBTXGRIR.mjs";
4
4
  import {
5
5
  ChatContainer_default
6
- } from "./chunk-B7YQ7QR2.mjs";
6
+ } from "./chunk-FR6MEAZI.mjs";
7
7
  import {
8
8
  useDebugMode
9
- } from "./chunk-HDEQRBOC.mjs";
9
+ } from "./chunk-KOBXMDCI.mjs";
10
10
  import {
11
11
  meta
12
- } from "./chunk-T4KJ5JR4.mjs";
12
+ } from "./chunk-K2DUJRFJ.mjs";
13
13
 
14
14
  // src/components/ChannelContainer.tsx
15
15
  import { useSignals as _useSignals10 } from "@preact-signals/safe-react/tracking";
16
- import { Rx } from "@effect-rx/rx-react";
16
+ import { Atom } from "@effect-atom/atom-react";
17
17
  import React10, { useCallback as useCallback2, useEffect as useEffect6, useMemo as useMemo4, useState as useState4 } from "react";
18
- import { useCapabilities, useCapability as useCapability4 } from "@dxos/app-framework";
18
+ import { useCapabilities, useCapability as useCapability4 } from "@dxos/app-framework/react";
19
19
  import { Context } from "@dxos/context";
20
20
  import { failUndefined } from "@dxos/debug";
21
+ import { Obj as Obj2 } from "@dxos/echo";
21
22
  import { log } from "@dxos/log";
22
23
  import { useClient } from "@dxos/react-client";
23
- import { fullyQualifiedId as fullyQualifiedId2, getSpace } from "@dxos/react-client/echo";
24
+ import { getSpace } from "@dxos/react-client/echo";
24
25
  import { useIdentity } from "@dxos/react-client/halo";
25
26
  import { ElevationProvider, Input, useTranslation as useTranslation3 } from "@dxos/react-ui";
26
27
  import { ControlGroup, ControlGroupButton, ControlItemInput } from "@dxos/react-ui-form";
@@ -31,7 +32,7 @@ import { StackItem } from "@dxos/react-ui-stack";
31
32
  // src/components/Call/Call.tsx
32
33
  import { useSignals as _useSignals9 } from "@preact-signals/safe-react/tracking";
33
34
  import React9 from "react";
34
- import { useCapability as useCapability3 } from "@dxos/app-framework";
35
+ import { useCapability as useCapability3 } from "@dxos/app-framework/react";
35
36
 
36
37
  // src/components/Media/AudioStream.tsx
37
38
  import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
@@ -109,7 +110,7 @@ var VideoObject = /* @__PURE__ */ memo(/* @__PURE__ */ forwardRef(({ videoStream
109
110
  internalRef.current
110
111
  ]);
111
112
  return /* @__PURE__ */ React2.createElement("video", {
112
- className: mx("w-full aspect-video", flip && "scale-x-[-1]", contain ? "object-contain" : "object-cover", classNames),
113
+ className: mx("is-full aspect-video", flip && "scale-x-[-1]", contain ? "object-contain" : "object-cover", classNames),
113
114
  ref: (v) => {
114
115
  internalRef.current = v;
115
116
  if (ref === null) {
@@ -132,7 +133,7 @@ VideoObject.displayName = "VideoObject";
132
133
  // src/components/Participant/Participant.tsx
133
134
  import { useSignals as _useSignals6 } from "@preact-signals/safe-react/tracking";
134
135
  import React6, { memo as memo2, useMemo as useMemo2 } from "react";
135
- import { useCapability } from "@dxos/app-framework";
136
+ import { useCapability } from "@dxos/app-framework/react";
136
137
 
137
138
  // src/components/ResponsiveGrid/ResponsiveContainer.tsx
138
139
  import { useSignals as _useSignals3 } from "@preact-signals/safe-react/tracking";
@@ -145,13 +146,13 @@ var ResponsiveContainer = ({ children }) => {
145
146
  // Outer container that takes full size of parent.
146
147
  /* @__PURE__ */ React3.createElement("div", {
147
148
  role: "none",
148
- className: "relative flex w-full h-full"
149
+ className: "relative flex is-full bs-full"
149
150
  }, /* @__PURE__ */ React3.createElement("div", {
150
151
  role: "none",
151
152
  className: "absolute inset-0 flex justify-center items-center"
152
153
  }, /* @__PURE__ */ React3.createElement("div", {
153
154
  role: "none",
154
- className: mx2("max-h-full max-w-full w-auto h-auto aspect-video")
155
+ className: mx2("max-bs-full max-is-full w-auto h-auto aspect-video")
155
156
  }, children)))
156
157
  );
157
158
  } finally {
@@ -261,11 +262,11 @@ var ResponsiveGrid = ({ classNames, Cell, gap = DEFAULT_GAP, getId: getId2 = def
261
262
  ]);
262
263
  return /* @__PURE__ */ React4.createElement("div", {
263
264
  ref: containerRef,
264
- className: mx3("relative w-full h-full", classNames)
265
+ className: mx3("relative is-full bs-full", classNames)
265
266
  }, /* @__PURE__ */ React4.createElement("div", {
266
267
  className: "absolute inset-0 flex flex-col grow gap-2"
267
268
  }, pinnedItem && /* @__PURE__ */ React4.createElement("div", {
268
- className: mx3("flex grow-[2] shrink overflow-hidden justify-center items-center", hideGallery && "h-full"),
269
+ className: mx3("flex grow-[2] shrink overflow-hidden justify-center items-center", hideGallery && "bs-full"),
269
270
  style: hideGallery ? {} : {
270
271
  height: dividerHeight
271
272
  }
@@ -282,7 +283,7 @@ var ResponsiveGrid = ({ classNames, Cell, gap = DEFAULT_GAP, getId: getId2 = def
282
283
  style: {
283
284
  width: cellWidth
284
285
  },
285
- className: "flex h-full"
286
+ className: "flex bs-full"
286
287
  }, /* @__PURE__ */ React4.createElement(SoloItem, {
287
288
  id: getId2(mainItems[0]),
288
289
  debug
@@ -296,7 +297,7 @@ var ResponsiveGrid = ({ classNames, Cell, gap = DEFAULT_GAP, getId: getId2 = def
296
297
  }, mainItems.map((item) => /* @__PURE__ */ React4.createElement("div", {
297
298
  key: getId2(item),
298
299
  "data-grid-item": getId2(item),
299
- className: mx3("aspect-video max-h-full max-w-full w-auto h-auto", debug && "border border-primary-500")
300
+ className: mx3("aspect-video max-bs-full max-is-full w-auto h-auto", debug && "border border-primary-500")
300
301
  }))))), /* @__PURE__ */ React4.createElement("div", {
301
302
  className: mx3(debug && "opacity-10")
302
303
  }, bounds.map(([item, bounds2]) => /* @__PURE__ */ React4.createElement(Cell, {
@@ -424,7 +425,7 @@ var ResponsiveGridItem = ({ children, classNames, item, style, name, self, pinne
424
425
  speaking
425
426
  ]);
426
427
  return /* @__PURE__ */ React5.createElement("div", {
427
- className: mx4("relative w-full h-full group", "rounded-md outline outline-2 outline-neutral-900 transition-[outline-color] duration-500", speakingIndicator ? "outline-green-500" : !video && "outline-separator", classNames),
428
+ className: mx4("relative is-full bs-full group", "rounded-md outline outline-2 outline-neutral-900 transition-[outline-color] duration-500", speakingIndicator ? "outline-green-500" : !video && "outline-separator", classNames),
428
429
  style
429
430
  }, children, onClick && /* @__PURE__ */ React5.createElement("div", {
430
431
  className: "z-10 absolute top-1 right-1 flex"
@@ -441,7 +442,7 @@ var ResponsiveGridItem = ({ children, classNames, item, style, name, self, pinne
441
442
  icon: "ph--broadcast--regular",
442
443
  size: pinned ? 5 : 4
443
444
  }), /* @__PURE__ */ React5.createElement("div", {
444
- className: mx4("bg-neutral-800 text-neutral-100 py-0.5 truncate rounded", pinned ? "px-2" : "px-1 text-xs")
445
+ className: mx4("bg-neutral-800 text-neutral-100 plb-0.5 truncate rounded", pinned ? "pli-2" : "pli-1 text-xs")
445
446
  }, name)), /* @__PURE__ */ React5.createElement("div", {
446
447
  className: "z-10 absolute bottom-1 left-1 flex"
447
448
  }, speaking && /* @__PURE__ */ React5.createElement(Waveform, {
@@ -585,9 +586,9 @@ var ParticipantGrid = ({ classNames, self, users, fullscreen, debug }) => {
585
586
  // src/components/Call/Toolbar.tsx
586
587
  import { useSignals as _useSignals8 } from "@preact-signals/safe-react/tracking";
587
588
  import React8 from "react";
588
- import { useAppGraph, useCapability as useCapability2 } from "@dxos/app-framework";
589
+ import { useAppGraph, useCapability as useCapability2 } from "@dxos/app-framework/react";
590
+ import { Obj } from "@dxos/echo";
589
591
  import { useActions, useNode } from "@dxos/plugin-graph";
590
- import { fullyQualifiedId } from "@dxos/react-client/echo";
591
592
  import { Icon as Icon2, IconButton as IconButton2, Toolbar as NaturalToolbar, toLocalizedString, useTranslation as useTranslation2 } from "@dxos/react-ui";
592
593
  import { groupHoverControlItemWithTransition as groupHoverControlItemWithTransition2, mx as mx5 } from "@dxos/react-ui-theme";
593
594
  var Toolbar = ({ classNames, channel, participants, autoHideControls = true, onJoin, onLeave }) => {
@@ -596,7 +597,7 @@ var Toolbar = ({ classNames, channel, participants, autoHideControls = true, onJ
596
597
  const { t } = useTranslation2(meta.id);
597
598
  const { graph } = useAppGraph();
598
599
  const call = useCapability2(ThreadCapabilities.CallManager);
599
- const node = useNode(graph, channel && fullyQualifiedId(channel));
600
+ const node = useNode(graph, channel && Obj.getDXN(channel).toString());
600
601
  const actions = useActions(graph, node?.id).filter((action) => action.properties.disposition === "toolbar");
601
602
  const isScreensharing = call.media.screenshareTrack !== void 0;
602
603
  const canSharescreen = typeof navigator.mediaDevices !== "undefined" && navigator.mediaDevices.getDisplayMedia !== void 0;
@@ -794,7 +795,8 @@ var ChannelContainer = ({ channel, roomId: _roomId, role, fullscreen }) => {
794
795
  try {
795
796
  const space = getSpace(channel);
796
797
  const callManager = useCapability4(ThreadCapabilities.CallManager);
797
- const roomId = _roomId ?? (channel ? fullyQualifiedId2(channel) : failUndefined());
798
+ const attendableId = channel ? Obj2.getDXN(channel).toString() : void 0;
799
+ const roomId = _roomId ?? attendableId ?? failUndefined();
798
800
  const identity = useIdentity();
799
801
  const isNamed = !!identity?.profile?.displayName;
800
802
  const joinSound = useSoundEffect("JoinCall");
@@ -803,7 +805,7 @@ var ChannelContainer = ({ channel, roomId: _roomId, role, fullscreen }) => {
803
805
  useEffect6(() => {
804
806
  const ctx = new Context(void 0, {
805
807
  F: __dxlog_file2,
806
- L: 49
808
+ L: 53
807
809
  });
808
810
  callManager.left.on(ctx, (roomId2) => {
809
811
  extensions.forEach((extension) => {
@@ -845,7 +847,7 @@ var ChannelContainer = ({ channel, roomId: _roomId, role, fullscreen }) => {
845
847
  } catch (err) {
846
848
  log.catch(err, void 0, {
847
849
  F: __dxlog_file2,
848
- L: 93,
850
+ L: 97,
849
851
  S: void 0,
850
852
  C: (f, a) => f(...a)
851
853
  });
@@ -861,7 +863,7 @@ var ChannelContainer = ({ channel, roomId: _roomId, role, fullscreen }) => {
861
863
  } catch (err) {
862
864
  log.catch(err, void 0, {
863
865
  F: __dxlog_file2,
864
- L: 105,
866
+ L: 109,
865
867
  S: void 0,
866
868
  C: (f, a) => f(...a)
867
869
  });
@@ -885,12 +887,13 @@ var ChannelContainer = ({ channel, roomId: _roomId, role, fullscreen }) => {
885
887
  channel,
886
888
  onLeave: handleLeave
887
889
  })), !isJoined && channel && channel.defaultThread.target && space && /* @__PURE__ */ React10.createElement(React10.Fragment, null, /* @__PURE__ */ React10.createElement(ChannelToolbar, {
888
- attendableId: fullyQualifiedId2(channel),
890
+ attendableId,
889
891
  role,
890
892
  onJoinCall: handleJoin
891
893
  }), /* @__PURE__ */ React10.createElement(ChatContainer_default, {
892
894
  space,
893
- thread: channel.defaultThread.target
895
+ thread: channel.defaultThread.target,
896
+ classNames: "container-max-width"
894
897
  })));
895
898
  } finally {
896
899
  _effect.f();
@@ -929,7 +932,7 @@ var DisplayNameMissing = () => {
929
932
  }
930
933
  };
931
934
  var useChannelToolbarActions = (onJoinCall) => {
932
- const creator = useMemo4(() => Rx.make(() => {
935
+ const creator = useMemo4(() => Atom.make(() => {
933
936
  return {
934
937
  nodes: [
935
938
  createMenuItemGroup("root", {
@@ -961,7 +964,7 @@ var useChannelToolbarActions = (onJoinCall) => {
961
964
  }), []);
962
965
  return useMenuActions(creator);
963
966
  };
964
- var ChannelToolbar = ({ attendableId, role, onJoinCall, classNames }) => {
967
+ var ChannelToolbar = ({ attendableId, role, onJoinCall }) => {
965
968
  var _effect = _useSignals10();
966
969
  try {
967
970
  const menuProps = useChannelToolbarActions(onJoinCall);
@@ -971,7 +974,7 @@ var ChannelToolbar = ({ attendableId, role, onJoinCall, classNames }) => {
971
974
  ...menuProps,
972
975
  attendableId
973
976
  }, /* @__PURE__ */ React10.createElement(ToolbarMenu, {
974
- classNames
977
+ textBlockWidth: true
975
978
  })));
976
979
  } finally {
977
980
  _effect.f();
@@ -983,4 +986,4 @@ export {
983
986
  ChannelContainer,
984
987
  ChannelContainer_default
985
988
  };
986
- //# sourceMappingURL=chunk-CMCVHULC.mjs.map
989
+ //# sourceMappingURL=chunk-44S2SB4N.mjs.map