@arbidocs/blocks 0.5.58 → 0.5.60

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 (210) hide show
  1. package/README.md +40 -0
  2. package/dist/{ConnectedCallDock-SWDSHWTE.cjs → ConnectedCallDock-NEXHEXVL.cjs} +9 -9
  3. package/dist/{ConnectedCallDock-SWDSHWTE.cjs.map → ConnectedCallDock-NEXHEXVL.cjs.map} +1 -1
  4. package/dist/{ConnectedCallDock-HFQNXBH2.js → ConnectedCallDock-PMCWZXCO.js} +8 -8
  5. package/dist/{ConnectedCallDock-HFQNXBH2.js.map → ConnectedCallDock-PMCWZXCO.js.map} +1 -1
  6. package/dist/{ConnectedCallRoom-JOUQ5SM5.cjs → ConnectedCallRoom-GE2TMDIL.cjs} +9 -9
  7. package/dist/{ConnectedCallRoom-JOUQ5SM5.cjs.map → ConnectedCallRoom-GE2TMDIL.cjs.map} +1 -1
  8. package/dist/{ConnectedCallRoom-EGPYH7XF.js → ConnectedCallRoom-RJZT5ZUA.js} +8 -8
  9. package/dist/{ConnectedCallRoom-EGPYH7XF.js.map → ConnectedCallRoom-RJZT5ZUA.js.map} +1 -1
  10. package/dist/{ConnectedDocumentViewer-PGFWDHBI.cjs → ConnectedDocumentViewer-2KDPYQDT.cjs} +14 -13
  11. package/dist/{ConnectedDocumentViewer-PGFWDHBI.cjs.map → ConnectedDocumentViewer-2KDPYQDT.cjs.map} +1 -1
  12. package/dist/{ConnectedDocumentViewer-KIZCVZXV.js → ConnectedDocumentViewer-GYLXZV72.js} +13 -12
  13. package/dist/{ConnectedDocumentViewer-KIZCVZXV.js.map → ConnectedDocumentViewer-GYLXZV72.js.map} +1 -1
  14. package/dist/{ConnectedNativeDocxComparison-XJ66AM6C.cjs → ConnectedNativeDocxComparison-2OC37MR5.cjs} +8 -8
  15. package/dist/ConnectedNativeDocxComparison-2OC37MR5.cjs.map +1 -0
  16. package/dist/{ConnectedNativeDocxComparison-NGS4IMUZ.js → ConnectedNativeDocxComparison-7PD2LD7L.js} +7 -7
  17. package/dist/ConnectedNativeDocxComparison-7PD2LD7L.js.map +1 -0
  18. package/dist/{ConnectedNativeDocxEditor-23O5EH7F.cjs → ConnectedNativeDocxEditor-FPIX7SWU.cjs} +8 -8
  19. package/dist/ConnectedNativeDocxEditor-FPIX7SWU.cjs.map +1 -0
  20. package/dist/{ConnectedNativeDocxEditor-MJUFY74T.js → ConnectedNativeDocxEditor-UMENIC3E.js} +6 -6
  21. package/dist/ConnectedNativeDocxEditor-UMENIC3E.js.map +1 -0
  22. package/dist/{ConnectedStreamedWordArtifact-567Q2AOX.cjs → ConnectedStreamedWordArtifact-3UZN4UHY.cjs} +8 -8
  23. package/dist/ConnectedStreamedWordArtifact-3UZN4UHY.cjs.map +1 -0
  24. package/dist/{ConnectedStreamedWordArtifact-VWG2BXSW.js → ConnectedStreamedWordArtifact-K7HVTZIG.js} +7 -7
  25. package/dist/ConnectedStreamedWordArtifact-K7HVTZIG.js.map +1 -0
  26. package/dist/{DocumentReviewCard-4KB66DX4.cjs → DocumentReviewCard-B3RRCJBD.cjs} +5 -5
  27. package/dist/{DocumentReviewCard-4KB66DX4.cjs.map → DocumentReviewCard-B3RRCJBD.cjs.map} +1 -1
  28. package/dist/{DocumentReviewCard-AKIBUBPA.js → DocumentReviewCard-RPETGTSK.js} +5 -5
  29. package/dist/{DocumentReviewCard-AKIBUBPA.js.map → DocumentReviewCard-RPETGTSK.js.map} +1 -1
  30. package/dist/{WorkspaceTableView-ZXIW3MQ5.cjs → WorkspaceTableView-2XRSJECY.cjs} +8 -8
  31. package/dist/{WorkspaceTableView-ZXIW3MQ5.cjs.map → WorkspaceTableView-2XRSJECY.cjs.map} +1 -1
  32. package/dist/{WorkspaceTableView-3VP56J6F.js → WorkspaceTableView-F4QG4226.js} +6 -6
  33. package/dist/{WorkspaceTableView-3VP56J6F.js.map → WorkspaceTableView-F4QG4226.js.map} +1 -1
  34. package/dist/agents/index.cjs +341 -341
  35. package/dist/agents/index.js +5 -5
  36. package/dist/calendar/index.cjs +116 -116
  37. package/dist/calendar/index.js +1 -1
  38. package/dist/calls/index.cjs +2 -2
  39. package/dist/calls/index.js +2 -2
  40. package/dist/chat/index.cjs +82 -82
  41. package/dist/chat/index.js +5 -5
  42. package/dist/chunk-34HQO4ZQ.cjs +72 -0
  43. package/dist/chunk-34HQO4ZQ.cjs.map +1 -0
  44. package/dist/{chunk-EQ3WRY2N.js → chunk-3EWS6ECM.js} +9 -6
  45. package/dist/chunk-3EWS6ECM.js.map +1 -0
  46. package/dist/{chunk-Y564AOO6.js → chunk-6HMWZY3U.js} +3 -3
  47. package/dist/{chunk-Y564AOO6.js.map → chunk-6HMWZY3U.js.map} +1 -1
  48. package/dist/{chunk-FB6DTNMF.cjs → chunk-6TMA6MPT.cjs} +8 -8
  49. package/dist/{chunk-FB6DTNMF.cjs.map → chunk-6TMA6MPT.cjs.map} +1 -1
  50. package/dist/{chunk-WIW3XGHO.js → chunk-75Z5AUMM.js} +3 -3
  51. package/dist/{chunk-WIW3XGHO.js.map → chunk-75Z5AUMM.js.map} +1 -1
  52. package/dist/{chunk-4TCJDGIM.js → chunk-7EOO6ZCK.js} +3 -3
  53. package/dist/{chunk-4TCJDGIM.js.map → chunk-7EOO6ZCK.js.map} +1 -1
  54. package/dist/{chunk-AJCMN23Q.js → chunk-AGDOBXHY.js} +3 -3
  55. package/dist/{chunk-AJCMN23Q.js.map → chunk-AGDOBXHY.js.map} +1 -1
  56. package/dist/{chunk-E5RN3LWS.js → chunk-AWVGKHJT.js} +2 -2
  57. package/dist/{chunk-E5RN3LWS.js.map → chunk-AWVGKHJT.js.map} +1 -1
  58. package/dist/{chunk-4TQGWQHK.js → chunk-B63TSC3W.js} +96 -5
  59. package/dist/chunk-B63TSC3W.js.map +1 -0
  60. package/dist/{chunk-HC4GCNCQ.js → chunk-B7XMGAWP.js} +3 -32
  61. package/dist/chunk-B7XMGAWP.js.map +1 -0
  62. package/dist/{chunk-I5BYLF6V.cjs → chunk-BSITLJMQ.cjs} +4 -4
  63. package/dist/{chunk-I5BYLF6V.cjs.map → chunk-BSITLJMQ.cjs.map} +1 -1
  64. package/dist/{chunk-K3B3V6EA.js → chunk-CYECDWVY.js} +3 -3
  65. package/dist/{chunk-K3B3V6EA.js.map → chunk-CYECDWVY.js.map} +1 -1
  66. package/dist/{chunk-C3FVQIBJ.js → chunk-DP7XGB2D.js} +3 -3
  67. package/dist/{chunk-C3FVQIBJ.js.map → chunk-DP7XGB2D.js.map} +1 -1
  68. package/dist/{chunk-K7OBYDUO.cjs → chunk-ECJOIWF4.cjs} +52 -14
  69. package/dist/chunk-ECJOIWF4.cjs.map +1 -0
  70. package/dist/{chunk-AMZNWDTN.cjs → chunk-GCMNPIKB.cjs} +6 -6
  71. package/dist/{chunk-AMZNWDTN.cjs.map → chunk-GCMNPIKB.cjs.map} +1 -1
  72. package/dist/{chunk-4MSQJ6GX.js → chunk-GYONAUKV.js} +8 -8
  73. package/dist/{chunk-4MSQJ6GX.js.map → chunk-GYONAUKV.js.map} +1 -1
  74. package/dist/chunk-IRPDQJNT.js +70 -0
  75. package/dist/chunk-IRPDQJNT.js.map +1 -0
  76. package/dist/{chunk-Q5BWRMET.cjs → chunk-IZXJTVOS.cjs} +44 -7
  77. package/dist/chunk-IZXJTVOS.cjs.map +1 -0
  78. package/dist/{chunk-JFNF6HTE.cjs → chunk-J2A7LVTM.cjs} +67 -67
  79. package/dist/{chunk-JFNF6HTE.cjs.map → chunk-J2A7LVTM.cjs.map} +1 -1
  80. package/dist/{chunk-HIDCHFFI.js → chunk-JLR67BW2.js} +46 -10
  81. package/dist/chunk-JLR67BW2.js.map +1 -0
  82. package/dist/{chunk-OMWOPRQR.cjs → chunk-JZ4LN4Q6.cjs} +3 -3
  83. package/dist/{chunk-OMWOPRQR.cjs.map → chunk-JZ4LN4Q6.cjs.map} +1 -1
  84. package/dist/{chunk-SUW7USWW.js → chunk-L4JJKGUD.js} +3 -3
  85. package/dist/{chunk-SUW7USWW.js.map → chunk-L4JJKGUD.js.map} +1 -1
  86. package/dist/{chunk-2LK27F43.cjs → chunk-LVC4ZGYW.cjs} +17 -17
  87. package/dist/{chunk-2LK27F43.cjs.map → chunk-LVC4ZGYW.cjs.map} +1 -1
  88. package/dist/{chunk-HXAWPMRJ.cjs → chunk-LXKALYOS.cjs} +5 -5
  89. package/dist/{chunk-HXAWPMRJ.cjs.map → chunk-LXKALYOS.cjs.map} +1 -1
  90. package/dist/{chunk-TM2D4XT4.cjs → chunk-MZZ3SBQL.cjs} +9 -6
  91. package/dist/chunk-MZZ3SBQL.cjs.map +1 -0
  92. package/dist/{chunk-RJ7753W5.js → chunk-NMU723IY.js} +5 -5
  93. package/dist/{chunk-RJ7753W5.js.map → chunk-NMU723IY.js.map} +1 -1
  94. package/dist/{chunk-T2DUORCT.cjs → chunk-NUAG57PG.cjs} +18 -18
  95. package/dist/{chunk-T2DUORCT.cjs.map → chunk-NUAG57PG.cjs.map} +1 -1
  96. package/dist/{chunk-ICQWNUDD.js → chunk-NXSPX7AP.js} +3 -3
  97. package/dist/{chunk-ICQWNUDD.js.map → chunk-NXSPX7AP.js.map} +1 -1
  98. package/dist/{chunk-N27CI32R.cjs → chunk-OM5IVNEW.cjs} +7 -7
  99. package/dist/{chunk-N27CI32R.cjs.map → chunk-OM5IVNEW.cjs.map} +1 -1
  100. package/dist/{chunk-I3BF67WQ.cjs → chunk-Q5GFVDFM.cjs} +9 -9
  101. package/dist/{chunk-I3BF67WQ.cjs.map → chunk-Q5GFVDFM.cjs.map} +1 -1
  102. package/dist/{chunk-ELY7WGBN.js → chunk-QCDS3ZCF.js} +3 -3
  103. package/dist/{chunk-ELY7WGBN.js.map → chunk-QCDS3ZCF.js.map} +1 -1
  104. package/dist/{chunk-VEMJON3H.cjs → chunk-QUTIWGWO.cjs} +3 -3
  105. package/dist/{chunk-VEMJON3H.cjs.map → chunk-QUTIWGWO.cjs.map} +1 -1
  106. package/dist/{chunk-PPXY4F3C.js → chunk-R6UKY6NA.js} +5 -5
  107. package/dist/{chunk-PPXY4F3C.js.map → chunk-R6UKY6NA.js.map} +1 -1
  108. package/dist/{chunk-HG5J7G5H.js → chunk-RGRQWMTF.js} +43 -6
  109. package/dist/chunk-RGRQWMTF.js.map +1 -0
  110. package/dist/{chunk-HWT2IHT4.js → chunk-S45JNJK7.js} +3 -3
  111. package/dist/{chunk-HWT2IHT4.js.map → chunk-S45JNJK7.js.map} +1 -1
  112. package/dist/{chunk-WH2BIMAZ.js → chunk-SBVOYSOO.js} +3 -3
  113. package/dist/{chunk-WH2BIMAZ.js.map → chunk-SBVOYSOO.js.map} +1 -1
  114. package/dist/chunk-SUVMOGTC.js +132 -0
  115. package/dist/chunk-SUVMOGTC.js.map +1 -0
  116. package/dist/chunk-TAVQOU3M.cjs +137 -0
  117. package/dist/chunk-TAVQOU3M.cjs.map +1 -0
  118. package/dist/{chunk-VO3VUC44.cjs → chunk-TFTGDUE4.cjs} +27 -27
  119. package/dist/{chunk-VO3VUC44.cjs.map → chunk-TFTGDUE4.cjs.map} +1 -1
  120. package/dist/{chunk-53AGHUFO.cjs → chunk-TX4CIWH5.cjs} +96 -3
  121. package/dist/chunk-TX4CIWH5.cjs.map +1 -0
  122. package/dist/{chunk-Q3SG3BWO.js → chunk-UIUWCTIZ.js} +3 -3
  123. package/dist/{chunk-Q3SG3BWO.js.map → chunk-UIUWCTIZ.js.map} +1 -1
  124. package/dist/{chunk-T6C5Z4CS.cjs → chunk-UR3MPRJA.cjs} +4 -4
  125. package/dist/{chunk-T6C5Z4CS.cjs.map → chunk-UR3MPRJA.cjs.map} +1 -1
  126. package/dist/{chunk-OFYTC2QC.js → chunk-VB7VPTMB.js} +9 -9
  127. package/dist/{chunk-OFYTC2QC.js.map → chunk-VB7VPTMB.js.map} +1 -1
  128. package/dist/{chunk-QJHU6BEE.cjs → chunk-VTY44LKS.cjs} +11 -11
  129. package/dist/{chunk-QJHU6BEE.cjs.map → chunk-VTY44LKS.cjs.map} +1 -1
  130. package/dist/{chunk-LM7DVT7C.cjs → chunk-W3PSIIMN.cjs} +2 -2
  131. package/dist/{chunk-LM7DVT7C.cjs.map → chunk-W3PSIIMN.cjs.map} +1 -1
  132. package/dist/{chunk-Z2KOIA5D.cjs → chunk-W427WPYF.cjs} +2 -32
  133. package/dist/chunk-W427WPYF.cjs.map +1 -0
  134. package/dist/{chunk-FDETJCMV.cjs → chunk-XNZSVCNR.cjs} +4 -4
  135. package/dist/{chunk-FDETJCMV.cjs.map → chunk-XNZSVCNR.cjs.map} +1 -1
  136. package/dist/{chunk-CWV4SLRT.js → chunk-YA2H33OW.js} +4 -4
  137. package/dist/{chunk-CWV4SLRT.js.map → chunk-YA2H33OW.js.map} +1 -1
  138. package/dist/{chunk-X2AIPVIT.cjs → chunk-YD3RN2FY.cjs} +3 -3
  139. package/dist/{chunk-X2AIPVIT.cjs.map → chunk-YD3RN2FY.cjs.map} +1 -1
  140. package/dist/{chunk-22UJW54C.js → chunk-YXX63XJD.js} +3 -3
  141. package/dist/{chunk-22UJW54C.js.map → chunk-YXX63XJD.js.map} +1 -1
  142. package/dist/{chunk-OS27G5ZI.js → chunk-Z3MWFHZC.js} +3 -3
  143. package/dist/{chunk-OS27G5ZI.js.map → chunk-Z3MWFHZC.js.map} +1 -1
  144. package/dist/{chunk-XUEJYHEP.cjs → chunk-ZDZY6OPL.cjs} +3 -3
  145. package/dist/{chunk-XUEJYHEP.cjs.map → chunk-ZDZY6OPL.cjs.map} +1 -1
  146. package/dist/{chunk-SNUWLNVU.cjs → chunk-ZQDJRROK.cjs} +22 -22
  147. package/dist/{chunk-SNUWLNVU.cjs.map → chunk-ZQDJRROK.cjs.map} +1 -1
  148. package/dist/{chunk-QDHVZ56E.cjs → chunk-ZTTR5MMZ.cjs} +8 -8
  149. package/dist/{chunk-QDHVZ56E.cjs.map → chunk-ZTTR5MMZ.cjs.map} +1 -1
  150. package/dist/components/Banner.d.ts +9 -3
  151. package/dist/components/ErrorBoundary.d.ts +16 -1
  152. package/dist/components/LoadingIndicator.d.ts +14 -1
  153. package/dist/connect/docx.cjs +10 -10
  154. package/dist/connect/docx.js +6 -6
  155. package/dist/connect/index.cjs +840 -840
  156. package/dist/connect/index.js +29 -29
  157. package/dist/connect/viewer.cjs +13 -12
  158. package/dist/connect/viewer.js +11 -10
  159. package/dist/facts/index.cjs +56 -56
  160. package/dist/facts/index.js +4 -4
  161. package/dist/files/index.cjs +1 -1
  162. package/dist/files/index.js +1 -1
  163. package/dist/home/index.cjs +29 -29
  164. package/dist/home/index.js +4 -4
  165. package/dist/index.cjs +678 -661
  166. package/dist/index.cjs.map +1 -1
  167. package/dist/index.d.ts +1 -1
  168. package/dist/index.js +19 -18
  169. package/dist/index.js.map +1 -1
  170. package/dist/settings/ErrorDialog.d.ts +21 -1
  171. package/dist/settings/error-report.d.ts +26 -0
  172. package/dist/settings/index.cjs +163 -155
  173. package/dist/settings/index.d.ts +2 -1
  174. package/dist/settings/index.js +3 -3
  175. package/dist/shell/AccountBanners.d.ts +22 -0
  176. package/dist/shell/Toaster.d.ts +24 -2
  177. package/dist/shell/index.cjs +61 -44
  178. package/dist/shell/index.d.ts +2 -1
  179. package/dist/shell/index.js +3 -2
  180. package/dist/site/index.cjs +55 -54
  181. package/dist/site/index.js +3 -2
  182. package/dist/studio/index.cjs +54 -53
  183. package/dist/studio/index.cjs.map +1 -1
  184. package/dist/studio/index.js +7 -6
  185. package/dist/studio/index.js.map +1 -1
  186. package/dist/workflow-canvas/index.cjs +36 -36
  187. package/dist/workflow-canvas/index.js +11 -11
  188. package/node_modules/@arbidocs/coedit/package.json +1 -1
  189. package/package.json +5 -5
  190. package/src/blocks.css +83 -2
  191. package/dist/ConnectedNativeDocxComparison-NGS4IMUZ.js.map +0 -1
  192. package/dist/ConnectedNativeDocxComparison-XJ66AM6C.cjs.map +0 -1
  193. package/dist/ConnectedNativeDocxEditor-23O5EH7F.cjs.map +0 -1
  194. package/dist/ConnectedNativeDocxEditor-MJUFY74T.js.map +0 -1
  195. package/dist/ConnectedStreamedWordArtifact-567Q2AOX.cjs.map +0 -1
  196. package/dist/ConnectedStreamedWordArtifact-VWG2BXSW.js.map +0 -1
  197. package/dist/chunk-4TQGWQHK.js.map +0 -1
  198. package/dist/chunk-53AGHUFO.cjs.map +0 -1
  199. package/dist/chunk-EQ3WRY2N.js.map +0 -1
  200. package/dist/chunk-HC4GCNCQ.js.map +0 -1
  201. package/dist/chunk-HG5J7G5H.js.map +0 -1
  202. package/dist/chunk-HIDCHFFI.js.map +0 -1
  203. package/dist/chunk-K7OBYDUO.cjs.map +0 -1
  204. package/dist/chunk-Q5BWRMET.cjs.map +0 -1
  205. package/dist/chunk-SOZQJTHB.js +0 -34
  206. package/dist/chunk-SOZQJTHB.js.map +0 -1
  207. package/dist/chunk-TM2D4XT4.cjs.map +0 -1
  208. package/dist/chunk-VTQOMJW7.cjs +0 -37
  209. package/dist/chunk-VTQOMJW7.cjs.map +0 -1
  210. package/dist/chunk-Z2KOIA5D.cjs.map +0 -1
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { useChatSurface, ChatPage } from './chunk-HWT2IHT4.js';
2
+ import { useChatSurface, ChatPage } from './chunk-S45JNJK7.js';
3
3
  import { ToolButton, Shell } from './chunk-YQEXBJVO.js';
4
4
  import { useSyncExternalStore } from 'react';
5
5
  import { MessageSquare, X } from 'lucide-react';
@@ -81,5 +81,5 @@ function AssistantDock({
81
81
  }
82
82
 
83
83
  export { AssistantDock, AssistantDockToggle, useAssistantDock };
84
- //# sourceMappingURL=chunk-4TCJDGIM.js.map
85
- //# sourceMappingURL=chunk-4TCJDGIM.js.map
84
+ //# sourceMappingURL=chunk-7EOO6ZCK.js.map
85
+ //# sourceMappingURL=chunk-7EOO6ZCK.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/chat/AssistantDock.tsx"],"names":[],"mappings":";;;;;;AAYA,IAAI,MAAA,GAAS,KAAA;AACb,IAAM,SAAA,uBAAgB,GAAA,EAAgB;AACtC,IAAM,SAAA,GAAY,CAAC,CAAA,KAAkB;AACnC,EAAA,SAAA,CAAU,IAAI,CAAC,CAAA;AACf,EAAA,OAAO,MAAM,SAAA,CAAU,MAAA,CAAO,CAAC,CAAA;AACjC,CAAA;AACA,SAAS,IAAI,IAAA,EAAe;AAC1B,EAAA,IAAI,SAAS,MAAA,EAAQ;AACrB,EAAA,MAAA,GAAS,IAAA;AACT,EAAA,SAAA,CAAU,OAAA,CAAQ,CAAC,CAAA,KAAM,CAAA,EAAG,CAAA;AAC9B;AAEO,SAAS,gBAAA,GAAmB;AACjC,EAAA,MAAM,IAAA,GAAO,oBAAA;AAAA,IACX,SAAA;AAAA,IACA,MAAM,MAAA;AAAA,IACN,MAAM;AAAA,GACR;AACA,EAAA,OAAO,EAAE,MAAA,EAAQ,IAAA,EAAM,OAAA,EAAS,GAAA,EAAK,QAAQ,MAAM,GAAA,CAAI,CAAC,MAAM,CAAA,EAAE;AAClE;AASO,SAAS,mBAAA,CAAoB;AAAA,EAClC,KAAA,GAAQ,gBAAA;AAAA,EACR,MAAA,GAAS;AACX,CAAA,EAA6B;AAC3B,EAAA,MAAM,EAAE,eAAA,EAAgB,GAAI,cAAA,EAAe;AAC3C,EAAA,MAAM,OAAO,gBAAA,EAAiB;AAC9B,EAAA,IAAI,CAAC,iBAAiB,OAAO,IAAA;AAC7B,EAAA,2BACG,UAAA,EAAA,EAAW,OAAA,EAAS,IAAA,CAAK,MAAA,EAAQ,OAAc,MAAA,EAAQ,IAAA,CAAK,MAAA,EAAQ,aAAA,EAAa,QAChF,QAAA,kBAAA,GAAA,CAAC,aAAA,EAAA,EAAc,WAAU,QAAA,EAAS,aAAA,EAAY,QAAO,CAAA,EACvD,CAAA;AAEJ;AA0BO,SAAS,aAAA,CAAc;AAAA,EAC5B,IAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX,KAAA,GAAQ,GAAA;AAAA,EACR,KAAA,GAAQ,gBAAA;AAAA,EACR,UAAA,GAAa,YAAA;AAAA,EACb,aAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAuB;AACrB,EAAA,MAAM,EAAE,eAAA,EAAgB,GAAI,cAAA,EAAe;AAC3C,EAAA,MAAM,OAAO,gBAAA,EAAiB;AAC9B,EAAA,IAAI,CAAC,iBAAiB,OAAO,IAAA;AAC7B,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA,CAAM,IAAA;AAAA,IAAN;AAAA,MACC,QAAQ,IAAA,CAAK,MAAA;AAAA,MACb,cAAc,IAAA,CAAK,OAAA;AAAA,MACnB,QAAA;AAAA,MACA,KAAA;AAAA,MACA,KAAA;AAAA,MACA,UAAA;AAAA,MACA,aAAA,EAAY,WAAA;AAAA,MAEZ,QAAA,kBAAA,GAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACE,GAAG,SAAA;AAAA,UACJ,IAAA;AAAA,UACA,OAAA,EAAQ,MAAA;AAAA,UACR,SAAA,EAAU,gBAAA;AAAA,UACV,+BACE,IAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,YAAA,aAAA;AAAA,YAEA,CAAC,QAAA,oBACA,GAAA;AAAA,cAAC,UAAA;AAAA,cAAA;AAAA,gBACC,OAAA,EAAS,MAAM,IAAA,CAAK,OAAA,CAAQ,KAAK,CAAA;AAAA,gBACjC,KAAA,EAAO,UAAA;AAAA,gBACP,aAAA,EAAY,YAAA;AAAA,gBAEZ,QAAA,kBAAA,GAAA,CAAC,CAAA,EAAA,EAAE,SAAA,EAAU,QAAA,EAAS,eAAY,MAAA,EAAO;AAAA;AAAA;AAC3C,WAAA,EAEJ;AAAA;AAAA;AAEJ;AAAA,GACF;AAEJ","file":"chunk-4TCJDGIM.js","sourcesContent":["import { useSyncExternalStore } from 'react'\nimport { MessageSquare, X } from 'lucide-react'\nimport { Shell } from '../shell/Shell'\nimport { ToolButton } from '../shell/ToolButton'\nimport { ChatPage } from './ChatPage'\nimport { useChatSurface } from './chat-surface'\nimport type { ChatPageController, ChatPageProps } from './chat-page-types'\n\n/**\n * Open/closed state of the assistant dock: one module-level store, so the topbar button and the\n * dock agree wherever they are mounted, with no host store to write.\n */\nlet isOpen = false\nconst listeners = new Set<() => void>()\nconst subscribe = (l: () => void) => {\n listeners.add(l)\n return () => listeners.delete(l)\n}\nfunction set(next: boolean) {\n if (next === isOpen) return\n isOpen = next\n listeners.forEach((l) => l())\n}\n\nexport function useAssistantDock() {\n const open = useSyncExternalStore(\n subscribe,\n () => isOpen,\n () => false\n )\n return { isOpen: open, setOpen: set, toggle: () => set(!isOpen) }\n}\n\nexport interface AssistantDockToggleProps {\n /** Accessible name. Default \"Open assistant chat\". */\n label?: string\n testId?: string\n}\n\n/** Topbar button that opens and closes the dock. Renders nothing while a page chat is mounted. */\nexport function AssistantDockToggle({\n label = 'Assistant chat',\n testId = 'chat-dock-toggle',\n}: AssistantDockToggleProps) {\n const { isDockAvailable } = useChatSurface()\n const dock = useAssistantDock()\n if (!isDockAvailable) return null\n return (\n <ToolButton onClick={dock.toggle} label={label} active={dock.isOpen} data-testid={testId}>\n <MessageSquare className=\"size-4\" aria-hidden=\"true\" />\n </ToolButton>\n )\n}\n\nexport interface AssistantDockProps extends Omit<ChatPageProps, 'chat' | 'surface'> {\n chat: ChatPageController\n /** Phone layout: the dock covers the screen as a modal. */\n isMobile?: boolean\n /** Desktop width. Default 380. */\n width?: number | string\n /** Accessible name of the dock. Default \"Assistant chat\". */\n label?: string\n closeLabel?: string\n}\n\n/**\n * The assistant as a right-hand dock: `Shell.Dock` around the same `ChatPage` as the full page\n * (`surface=\"dock\"`), with its open state in `useAssistantDock`. It yields to a mounted page chat\n * (`useChatSurface`), so the host only mounts it once, next to `Shell.Root`'s `aside`:\n *\n * ```tsx\n * <Shell.Root aside={<AssistantDock chat={chat} isMobile={isMobile} />} ... />\n * <AssistantDockToggle /> // in the topbar\n * ```\n *\n * Keep the `chat` controller in a component that stays mounted (the layout), so the conversation\n * survives closing the dock.\n */\nexport function AssistantDock({\n chat,\n isMobile = false,\n width = 380,\n label = 'Assistant chat',\n closeLabel = 'Close chat',\n headerActions,\n ...pageProps\n}: AssistantDockProps) {\n const { isDockAvailable } = useChatSurface()\n const dock = useAssistantDock()\n if (!isDockAvailable) return null\n return (\n <Shell.Dock\n isOpen={dock.isOpen}\n onOpenChange={dock.setOpen}\n isMobile={isMobile}\n width={width}\n label={label}\n closeLabel={closeLabel}\n data-testid=\"chat-dock\"\n >\n <ChatPage\n {...pageProps}\n chat={chat}\n surface=\"dock\"\n className=\"min-h-0 flex-1\"\n headerActions={\n <>\n {headerActions}\n {/* On a phone the dock draws its own close button over the header. */}\n {!isMobile && (\n <ToolButton\n onClick={() => dock.setOpen(false)}\n label={closeLabel}\n data-testid=\"chat-close\"\n >\n <X className=\"size-4\" aria-hidden=\"true\" />\n </ToolButton>\n )}\n </>\n }\n />\n </Shell.Dock>\n )\n}\n"]}
1
+ {"version":3,"sources":["../src/chat/AssistantDock.tsx"],"names":[],"mappings":";;;;;;AAYA,IAAI,MAAA,GAAS,KAAA;AACb,IAAM,SAAA,uBAAgB,GAAA,EAAgB;AACtC,IAAM,SAAA,GAAY,CAAC,CAAA,KAAkB;AACnC,EAAA,SAAA,CAAU,IAAI,CAAC,CAAA;AACf,EAAA,OAAO,MAAM,SAAA,CAAU,MAAA,CAAO,CAAC,CAAA;AACjC,CAAA;AACA,SAAS,IAAI,IAAA,EAAe;AAC1B,EAAA,IAAI,SAAS,MAAA,EAAQ;AACrB,EAAA,MAAA,GAAS,IAAA;AACT,EAAA,SAAA,CAAU,OAAA,CAAQ,CAAC,CAAA,KAAM,CAAA,EAAG,CAAA;AAC9B;AAEO,SAAS,gBAAA,GAAmB;AACjC,EAAA,MAAM,IAAA,GAAO,oBAAA;AAAA,IACX,SAAA;AAAA,IACA,MAAM,MAAA;AAAA,IACN,MAAM;AAAA,GACR;AACA,EAAA,OAAO,EAAE,MAAA,EAAQ,IAAA,EAAM,OAAA,EAAS,GAAA,EAAK,QAAQ,MAAM,GAAA,CAAI,CAAC,MAAM,CAAA,EAAE;AAClE;AASO,SAAS,mBAAA,CAAoB;AAAA,EAClC,KAAA,GAAQ,gBAAA;AAAA,EACR,MAAA,GAAS;AACX,CAAA,EAA6B;AAC3B,EAAA,MAAM,EAAE,eAAA,EAAgB,GAAI,cAAA,EAAe;AAC3C,EAAA,MAAM,OAAO,gBAAA,EAAiB;AAC9B,EAAA,IAAI,CAAC,iBAAiB,OAAO,IAAA;AAC7B,EAAA,2BACG,UAAA,EAAA,EAAW,OAAA,EAAS,IAAA,CAAK,MAAA,EAAQ,OAAc,MAAA,EAAQ,IAAA,CAAK,MAAA,EAAQ,aAAA,EAAa,QAChF,QAAA,kBAAA,GAAA,CAAC,aAAA,EAAA,EAAc,WAAU,QAAA,EAAS,aAAA,EAAY,QAAO,CAAA,EACvD,CAAA;AAEJ;AA0BO,SAAS,aAAA,CAAc;AAAA,EAC5B,IAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX,KAAA,GAAQ,GAAA;AAAA,EACR,KAAA,GAAQ,gBAAA;AAAA,EACR,UAAA,GAAa,YAAA;AAAA,EACb,aAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAuB;AACrB,EAAA,MAAM,EAAE,eAAA,EAAgB,GAAI,cAAA,EAAe;AAC3C,EAAA,MAAM,OAAO,gBAAA,EAAiB;AAC9B,EAAA,IAAI,CAAC,iBAAiB,OAAO,IAAA;AAC7B,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA,CAAM,IAAA;AAAA,IAAN;AAAA,MACC,QAAQ,IAAA,CAAK,MAAA;AAAA,MACb,cAAc,IAAA,CAAK,OAAA;AAAA,MACnB,QAAA;AAAA,MACA,KAAA;AAAA,MACA,KAAA;AAAA,MACA,UAAA;AAAA,MACA,aAAA,EAAY,WAAA;AAAA,MAEZ,QAAA,kBAAA,GAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACE,GAAG,SAAA;AAAA,UACJ,IAAA;AAAA,UACA,OAAA,EAAQ,MAAA;AAAA,UACR,SAAA,EAAU,gBAAA;AAAA,UACV,+BACE,IAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,YAAA,aAAA;AAAA,YAEA,CAAC,QAAA,oBACA,GAAA;AAAA,cAAC,UAAA;AAAA,cAAA;AAAA,gBACC,OAAA,EAAS,MAAM,IAAA,CAAK,OAAA,CAAQ,KAAK,CAAA;AAAA,gBACjC,KAAA,EAAO,UAAA;AAAA,gBACP,aAAA,EAAY,YAAA;AAAA,gBAEZ,QAAA,kBAAA,GAAA,CAAC,CAAA,EAAA,EAAE,SAAA,EAAU,QAAA,EAAS,eAAY,MAAA,EAAO;AAAA;AAAA;AAC3C,WAAA,EAEJ;AAAA;AAAA;AAEJ;AAAA,GACF;AAEJ","file":"chunk-7EOO6ZCK.js","sourcesContent":["import { useSyncExternalStore } from 'react'\nimport { MessageSquare, X } from 'lucide-react'\nimport { Shell } from '../shell/Shell'\nimport { ToolButton } from '../shell/ToolButton'\nimport { ChatPage } from './ChatPage'\nimport { useChatSurface } from './chat-surface'\nimport type { ChatPageController, ChatPageProps } from './chat-page-types'\n\n/**\n * Open/closed state of the assistant dock: one module-level store, so the topbar button and the\n * dock agree wherever they are mounted, with no host store to write.\n */\nlet isOpen = false\nconst listeners = new Set<() => void>()\nconst subscribe = (l: () => void) => {\n listeners.add(l)\n return () => listeners.delete(l)\n}\nfunction set(next: boolean) {\n if (next === isOpen) return\n isOpen = next\n listeners.forEach((l) => l())\n}\n\nexport function useAssistantDock() {\n const open = useSyncExternalStore(\n subscribe,\n () => isOpen,\n () => false\n )\n return { isOpen: open, setOpen: set, toggle: () => set(!isOpen) }\n}\n\nexport interface AssistantDockToggleProps {\n /** Accessible name. Default \"Open assistant chat\". */\n label?: string\n testId?: string\n}\n\n/** Topbar button that opens and closes the dock. Renders nothing while a page chat is mounted. */\nexport function AssistantDockToggle({\n label = 'Assistant chat',\n testId = 'chat-dock-toggle',\n}: AssistantDockToggleProps) {\n const { isDockAvailable } = useChatSurface()\n const dock = useAssistantDock()\n if (!isDockAvailable) return null\n return (\n <ToolButton onClick={dock.toggle} label={label} active={dock.isOpen} data-testid={testId}>\n <MessageSquare className=\"size-4\" aria-hidden=\"true\" />\n </ToolButton>\n )\n}\n\nexport interface AssistantDockProps extends Omit<ChatPageProps, 'chat' | 'surface'> {\n chat: ChatPageController\n /** Phone layout: the dock covers the screen as a modal. */\n isMobile?: boolean\n /** Desktop width. Default 380. */\n width?: number | string\n /** Accessible name of the dock. Default \"Assistant chat\". */\n label?: string\n closeLabel?: string\n}\n\n/**\n * The assistant as a right-hand dock: `Shell.Dock` around the same `ChatPage` as the full page\n * (`surface=\"dock\"`), with its open state in `useAssistantDock`. It yields to a mounted page chat\n * (`useChatSurface`), so the host only mounts it once, next to `Shell.Root`'s `aside`:\n *\n * ```tsx\n * <Shell.Root aside={<AssistantDock chat={chat} isMobile={isMobile} />} ... />\n * <AssistantDockToggle /> // in the topbar\n * ```\n *\n * Keep the `chat` controller in a component that stays mounted (the layout), so the conversation\n * survives closing the dock.\n */\nexport function AssistantDock({\n chat,\n isMobile = false,\n width = 380,\n label = 'Assistant chat',\n closeLabel = 'Close chat',\n headerActions,\n ...pageProps\n}: AssistantDockProps) {\n const { isDockAvailable } = useChatSurface()\n const dock = useAssistantDock()\n if (!isDockAvailable) return null\n return (\n <Shell.Dock\n isOpen={dock.isOpen}\n onOpenChange={dock.setOpen}\n isMobile={isMobile}\n width={width}\n label={label}\n closeLabel={closeLabel}\n data-testid=\"chat-dock\"\n >\n <ChatPage\n {...pageProps}\n chat={chat}\n surface=\"dock\"\n className=\"min-h-0 flex-1\"\n headerActions={\n <>\n {headerActions}\n {/* On a phone the dock draws its own close button over the header. */}\n {!isMobile && (\n <ToolButton\n onClick={() => dock.setOpen(false)}\n label={closeLabel}\n data-testid=\"chat-close\"\n >\n <X className=\"size-4\" aria-hidden=\"true\" />\n </ToolButton>\n )}\n </>\n }\n />\n </Shell.Dock>\n )\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { useConnection } from './chunk-HXNFVUMY.js';
3
- import { AssistantDock } from './chunk-4TCJDGIM.js';
3
+ import { AssistantDock } from './chunk-7EOO6ZCK.js';
4
4
  import { useCallback } from 'react';
5
5
  import { useAiTask, useWorkspaceDocs as useWorkspaceDocs$1, useSemanticSearch as useSemanticSearch$1, useWorkspaceUsers, buildMentionCandidates, useConversation, ConversationScope } from '@arbidocs/react';
6
6
  export { redlineStats, textToArtifact, toRedlineMarkdown } from '@arbidocs/react';
@@ -61,5 +61,5 @@ function ScopedAssistantDock(props) {
61
61
  }
62
62
 
63
63
  export { ConnectedAssistantDock, useConnectedAiTask, useConnectedChat, useSemanticSearch, useWorkspaceDocs };
64
- //# sourceMappingURL=chunk-AJCMN23Q.js.map
65
- //# sourceMappingURL=chunk-AJCMN23Q.js.map
64
+ //# sourceMappingURL=chunk-AGDOBXHY.js.map
65
+ //# sourceMappingURL=chunk-AGDOBXHY.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/connection/ai.tsx"],"names":["useKitAiTask","useKitWorkspaceDocs","useKitSemanticSearch"],"mappings":";;;;;;;AAkCO,SAAS,kBAAA,GAAqB;AACnC,EAAA,MAAM,EAAE,eAAA,EAAgB,GAAI,aAAA,EAAc;AAC1C,EAAA,MAAM,OAAOA,SAAA,EAAa;AAC1B,EAAA,MAAM,SAAS,IAAA,CAAK,GAAA;AACpB,EAAA,MAAM,GAAA,GAAM,WAAA;AAAA,IACV,CAAC,QAAA,EAAkB,MAAA,EAAkB,IAAA,KACnC,OAAO,QAAA,EAAU,MAAA,EAAQ,EAAE,GAAG,IAAA,EAAM,KAAA,EAAO,IAAA,EAAM,KAAA,IAAS,iBAAiB,CAAA;AAAA,IAC7E,CAAC,QAAQ,eAAe;AAAA,GAC1B;AACA,EAAA,OAAO,EAAE,GAAG,IAAA,EAAM,GAAA,EAAI;AACxB;AAGO,SAAS,gBAAA,GAAmB;AACjC,EAAA,MAAM,EAAE,WAAA,EAAa,mBAAA,EAAoB,GAAI,aAAA,EAAc;AAC3D,EAAA,OAAOC,kBAAA,CAAoB,eAAe,mBAAmB,CAAA;AAC/D;AAGO,SAAS,iBAAA,GAAoB;AAClC,EAAA,MAAM,EAAE,eAAA,EAAgB,GAAI,aAAA,EAAc;AAC1C,EAAA,OAAOC,oBAAqB,EAAC,EAAG,EAAE,KAAA,EAAO,iBAAiB,CAAA;AAC5D;AAQO,SAAS,iBACd,OAAA,EAC8D;AAC9D,EAAA,MAAM,EAAE,aAAa,mBAAA,EAAqB,eAAA,EAAiB,MAAM,MAAA,EAAQ,mBAAA,KACvE,aAAA,EAAc;AAChB,EAAA,MAAM,OAAO,WAAA,IAAe,mBAAA;AAC5B,EAAA,MAAM,EAAE,IAAA,EAAM,OAAA,GAAU,EAAC,EAAE,GAAI,kBAAkB,IAAA,EAAM;AAAA,IACrD,OAAA,EAAS,MAAA,KAAW,eAAA,IAAmB,CAAC,CAAC,IAAA;AAAA,IACzC,WAAA,EAAa;AAAA,GACd,CAAA;AAED,EAAA,MAAM,iBAAA,GAAoB,sBAAA;AAAA,IACxB,MAAA,KAAW,eAAA,GAAkB,OAAA,GAAU,EAAC;AAAA,IACxC,IAAA,EAAM;AAAA,GACR;AACA,EAAA,MAAM,OAAO,eAAA,CAAgB;AAAA,IAC3B,GAAG,OAAA;AAAA,IACH,WAAA,EAAa,IAAA;AAAA,IACb,KAAA,EAAO,SAAS,KAAA,IAAS;AAAA,GAC1B,CAAA;AACD,EAAA,OAAO;AAAA,IACL,GAAG,IAAA;AAAA,IACH,iBAAA;AAAA,IACA,QAAA,EAAU,IAAA,CAAK,QAAA,CAAS,GAAA,CAAI,CAAC,OAAA,MAAa;AAAA,MACxC,GAAG,OAAA;AAAA,MACH,GAAI,QAAQ,QAAA,GACR;AAAA,QACE,WAAW,CAAC,CAAC,MAAM,UAAA,IAAc,OAAA,CAAQ,aAAa,IAAA,CAAK,UAAA;AAAA,QAC3D,YACE,OAAA,CAAQ,QAAA,KAAa,IAAA,EAAM,UAAA,GACvB,MAAM,IAAA,IAAQ,IAAA,EAAM,KAAA,GACpB,iBAAA,CAAkB,KAAK,CAAC,SAAA,KAAc,UAAU,EAAA,KAAO,OAAA,CAAQ,QAAQ,CAAA,EAAG;AAAA,UAElF;AAAC,KACP,CAAE;AAAA,GACJ;AACF;AAOO,SAAS,uBAAuB,KAAA,EAAyC;AAC9E,EAAA,2BACG,iBAAA,EAAA,EACC,QAAA,kBAAA,GAAA,CAAC,mBAAA,EAAA,EAAqB,GAAG,OAAO,CAAA,EAClC,CAAA;AAEJ;AAEA,SAAS,oBAAoB,KAAA,EAAyC;AACpE,EAAA,MAAM,OAAO,gBAAA,EAAiB;AAC9B,EAAA,uBAAO,GAAA,CAAC,aAAA,EAAA,EAAe,GAAG,KAAA,EAAO,IAAA,EAAY,CAAA;AAC/C","file":"chunk-AJCMN23Q.js","sourcesContent":["/**\n * The connected agent hooks — thin adapters over the reusable AI kit in\n * `@arbidocs/react`. The streaming/accumulation/search plumbing lives once in\n * the SDK; these hooks only bind the *workspace source* (from the connection\n * context, falling back to the configured workspace) and inject the host's\n * default assistant *configuration* so call sites needn't know the config\n * ext_id. An explicit `opts.model` still wins.\n */\nimport { useCallback } from 'react'\nimport {\n useAiTask as useKitAiTask,\n useWorkspaceDocs as useKitWorkspaceDocs,\n useSemanticSearch as useKitSemanticSearch,\n useConversation,\n useWorkspaceUsers,\n buildMentionCandidates,\n ConversationScope,\n type ArbiConversation,\n type UseConversationOptions,\n type AiRunOptions,\n} from '@arbidocs/react'\nimport { useConnection } from './ConnectionProvider'\nimport { AssistantDock, type AssistantDockProps } from '../chat/AssistantDock'\nimport type { MentionCandidate } from '@arbidocs/react/shell'\n\nexport type { AiTaskStatus, AiRunOptions, SearchChunk, ArtifactEvent } from '@arbidocs/react'\n\n/** Client-side redlining, re-exported so a host app has one import surface. */\nexport { toRedlineMarkdown, redlineStats, textToArtifact } from '@arbidocs/react'\n\n/**\n * The kit's `useAiTask` with the host's default assistant configuration\n * injected, so call sites needn't know the config ext_id.\n */\nexport function useConnectedAiTask() {\n const { assistantConfig } = useConnection()\n const task = useKitAiTask()\n const kitRun = task.run\n const run = useCallback(\n (question: string, docIds: string[], opts?: AiRunOptions) =>\n kitRun(question, docIds, { ...opts, model: opts?.model ?? assistantConfig }),\n [kitRun, assistantConfig]\n )\n return { ...task, run }\n}\n\n/** Resolve the active workspace + its document ids (what we ground the agent on). */\nexport function useWorkspaceDocs() {\n const { workspaceId, fallbackWorkspaceId } = useConnection()\n return useKitWorkspaceDocs(workspaceId ?? fallbackWorkspaceId)\n}\n\n/** Search the active workspace's documents (all of them) and return the top matching passages. */\nexport function useSemanticSearch() {\n const { assistantConfig } = useConnection()\n return useKitSemanticSearch([], { model: assistantConfig })\n}\n\n/**\n * The chat engine for `ChatPage` bound to the connection: the active workspace and the host's\n * default assistant configuration are injected, so a host writes\n * `<ChatPage chat={useConnectedChat()} />`. It works on the open conversation of the session in\n * scope (wrap a second chat on the page in `ConversationScope`).\n */\nexport function useConnectedChat(\n options?: Omit<UseConversationOptions, 'workspaceId'>\n): ArbiConversation & { mentionCandidates: MentionCandidate[] } {\n const { workspaceId, fallbackWorkspaceId, assistantConfig, user, status, ensureWorkspaceOpen } =\n useConnection()\n const wsId = workspaceId ?? fallbackWorkspaceId\n const { data: members = [] } = useWorkspaceUsers(wsId, {\n enabled: status === 'authenticated' && !!wsId,\n beforeFetch: ensureWorkspaceOpen,\n })\n // The engine's own candidates: what the composer inserts is what a send routes on.\n const mentionCandidates = buildMentionCandidates(\n status === 'authenticated' ? members : [],\n user?.externalId\n )\n const chat = useConversation({\n ...options,\n workspaceId: wsId,\n model: options?.model ?? assistantConfig,\n })\n return {\n ...chat,\n mentionCandidates,\n messages: chat.messages.map((message) => ({\n ...message,\n ...(message.authorId\n ? {\n fromOther: !!user?.externalId && message.authorId !== user.externalId,\n senderName:\n message.authorId === user?.externalId\n ? user?.name || user?.email\n : mentionCandidates.find((candidate) => candidate.id === message.authorId)?.label,\n }\n : {}),\n })),\n }\n}\n\n/**\n * The assistant dock bound to the connection: mount it once in the layout (`Shell.Root`'s `aside`)\n * and put `AssistantDockToggle` in the topbar. Its chat keeps its own open conversation (and\n * survives closing the dock).\n */\nexport function ConnectedAssistantDock(props: Omit<AssistantDockProps, 'chat'>) {\n return (\n <ConversationScope>\n <ScopedAssistantDock {...props} />\n </ConversationScope>\n )\n}\n\nfunction ScopedAssistantDock(props: Omit<AssistantDockProps, 'chat'>) {\n const chat = useConnectedChat()\n return <AssistantDock {...props} chat={chat} />\n}\n"]}
1
+ {"version":3,"sources":["../src/connection/ai.tsx"],"names":["useKitAiTask","useKitWorkspaceDocs","useKitSemanticSearch"],"mappings":";;;;;;;AAkCO,SAAS,kBAAA,GAAqB;AACnC,EAAA,MAAM,EAAE,eAAA,EAAgB,GAAI,aAAA,EAAc;AAC1C,EAAA,MAAM,OAAOA,SAAA,EAAa;AAC1B,EAAA,MAAM,SAAS,IAAA,CAAK,GAAA;AACpB,EAAA,MAAM,GAAA,GAAM,WAAA;AAAA,IACV,CAAC,QAAA,EAAkB,MAAA,EAAkB,IAAA,KACnC,OAAO,QAAA,EAAU,MAAA,EAAQ,EAAE,GAAG,IAAA,EAAM,KAAA,EAAO,IAAA,EAAM,KAAA,IAAS,iBAAiB,CAAA;AAAA,IAC7E,CAAC,QAAQ,eAAe;AAAA,GAC1B;AACA,EAAA,OAAO,EAAE,GAAG,IAAA,EAAM,GAAA,EAAI;AACxB;AAGO,SAAS,gBAAA,GAAmB;AACjC,EAAA,MAAM,EAAE,WAAA,EAAa,mBAAA,EAAoB,GAAI,aAAA,EAAc;AAC3D,EAAA,OAAOC,kBAAA,CAAoB,eAAe,mBAAmB,CAAA;AAC/D;AAGO,SAAS,iBAAA,GAAoB;AAClC,EAAA,MAAM,EAAE,eAAA,EAAgB,GAAI,aAAA,EAAc;AAC1C,EAAA,OAAOC,oBAAqB,EAAC,EAAG,EAAE,KAAA,EAAO,iBAAiB,CAAA;AAC5D;AAQO,SAAS,iBACd,OAAA,EAC8D;AAC9D,EAAA,MAAM,EAAE,aAAa,mBAAA,EAAqB,eAAA,EAAiB,MAAM,MAAA,EAAQ,mBAAA,KACvE,aAAA,EAAc;AAChB,EAAA,MAAM,OAAO,WAAA,IAAe,mBAAA;AAC5B,EAAA,MAAM,EAAE,IAAA,EAAM,OAAA,GAAU,EAAC,EAAE,GAAI,kBAAkB,IAAA,EAAM;AAAA,IACrD,OAAA,EAAS,MAAA,KAAW,eAAA,IAAmB,CAAC,CAAC,IAAA;AAAA,IACzC,WAAA,EAAa;AAAA,GACd,CAAA;AAED,EAAA,MAAM,iBAAA,GAAoB,sBAAA;AAAA,IACxB,MAAA,KAAW,eAAA,GAAkB,OAAA,GAAU,EAAC;AAAA,IACxC,IAAA,EAAM;AAAA,GACR;AACA,EAAA,MAAM,OAAO,eAAA,CAAgB;AAAA,IAC3B,GAAG,OAAA;AAAA,IACH,WAAA,EAAa,IAAA;AAAA,IACb,KAAA,EAAO,SAAS,KAAA,IAAS;AAAA,GAC1B,CAAA;AACD,EAAA,OAAO;AAAA,IACL,GAAG,IAAA;AAAA,IACH,iBAAA;AAAA,IACA,QAAA,EAAU,IAAA,CAAK,QAAA,CAAS,GAAA,CAAI,CAAC,OAAA,MAAa;AAAA,MACxC,GAAG,OAAA;AAAA,MACH,GAAI,QAAQ,QAAA,GACR;AAAA,QACE,WAAW,CAAC,CAAC,MAAM,UAAA,IAAc,OAAA,CAAQ,aAAa,IAAA,CAAK,UAAA;AAAA,QAC3D,YACE,OAAA,CAAQ,QAAA,KAAa,IAAA,EAAM,UAAA,GACvB,MAAM,IAAA,IAAQ,IAAA,EAAM,KAAA,GACpB,iBAAA,CAAkB,KAAK,CAAC,SAAA,KAAc,UAAU,EAAA,KAAO,OAAA,CAAQ,QAAQ,CAAA,EAAG;AAAA,UAElF;AAAC,KACP,CAAE;AAAA,GACJ;AACF;AAOO,SAAS,uBAAuB,KAAA,EAAyC;AAC9E,EAAA,2BACG,iBAAA,EAAA,EACC,QAAA,kBAAA,GAAA,CAAC,mBAAA,EAAA,EAAqB,GAAG,OAAO,CAAA,EAClC,CAAA;AAEJ;AAEA,SAAS,oBAAoB,KAAA,EAAyC;AACpE,EAAA,MAAM,OAAO,gBAAA,EAAiB;AAC9B,EAAA,uBAAO,GAAA,CAAC,aAAA,EAAA,EAAe,GAAG,KAAA,EAAO,IAAA,EAAY,CAAA;AAC/C","file":"chunk-AGDOBXHY.js","sourcesContent":["/**\n * The connected agent hooks — thin adapters over the reusable AI kit in\n * `@arbidocs/react`. The streaming/accumulation/search plumbing lives once in\n * the SDK; these hooks only bind the *workspace source* (from the connection\n * context, falling back to the configured workspace) and inject the host's\n * default assistant *configuration* so call sites needn't know the config\n * ext_id. An explicit `opts.model` still wins.\n */\nimport { useCallback } from 'react'\nimport {\n useAiTask as useKitAiTask,\n useWorkspaceDocs as useKitWorkspaceDocs,\n useSemanticSearch as useKitSemanticSearch,\n useConversation,\n useWorkspaceUsers,\n buildMentionCandidates,\n ConversationScope,\n type ArbiConversation,\n type UseConversationOptions,\n type AiRunOptions,\n} from '@arbidocs/react'\nimport { useConnection } from './ConnectionProvider'\nimport { AssistantDock, type AssistantDockProps } from '../chat/AssistantDock'\nimport type { MentionCandidate } from '@arbidocs/react/shell'\n\nexport type { AiTaskStatus, AiRunOptions, SearchChunk, ArtifactEvent } from '@arbidocs/react'\n\n/** Client-side redlining, re-exported so a host app has one import surface. */\nexport { toRedlineMarkdown, redlineStats, textToArtifact } from '@arbidocs/react'\n\n/**\n * The kit's `useAiTask` with the host's default assistant configuration\n * injected, so call sites needn't know the config ext_id.\n */\nexport function useConnectedAiTask() {\n const { assistantConfig } = useConnection()\n const task = useKitAiTask()\n const kitRun = task.run\n const run = useCallback(\n (question: string, docIds: string[], opts?: AiRunOptions) =>\n kitRun(question, docIds, { ...opts, model: opts?.model ?? assistantConfig }),\n [kitRun, assistantConfig]\n )\n return { ...task, run }\n}\n\n/** Resolve the active workspace + its document ids (what we ground the agent on). */\nexport function useWorkspaceDocs() {\n const { workspaceId, fallbackWorkspaceId } = useConnection()\n return useKitWorkspaceDocs(workspaceId ?? fallbackWorkspaceId)\n}\n\n/** Search the active workspace's documents (all of them) and return the top matching passages. */\nexport function useSemanticSearch() {\n const { assistantConfig } = useConnection()\n return useKitSemanticSearch([], { model: assistantConfig })\n}\n\n/**\n * The chat engine for `ChatPage` bound to the connection: the active workspace and the host's\n * default assistant configuration are injected, so a host writes\n * `<ChatPage chat={useConnectedChat()} />`. It works on the open conversation of the session in\n * scope (wrap a second chat on the page in `ConversationScope`).\n */\nexport function useConnectedChat(\n options?: Omit<UseConversationOptions, 'workspaceId'>\n): ArbiConversation & { mentionCandidates: MentionCandidate[] } {\n const { workspaceId, fallbackWorkspaceId, assistantConfig, user, status, ensureWorkspaceOpen } =\n useConnection()\n const wsId = workspaceId ?? fallbackWorkspaceId\n const { data: members = [] } = useWorkspaceUsers(wsId, {\n enabled: status === 'authenticated' && !!wsId,\n beforeFetch: ensureWorkspaceOpen,\n })\n // The engine's own candidates: what the composer inserts is what a send routes on.\n const mentionCandidates = buildMentionCandidates(\n status === 'authenticated' ? members : [],\n user?.externalId\n )\n const chat = useConversation({\n ...options,\n workspaceId: wsId,\n model: options?.model ?? assistantConfig,\n })\n return {\n ...chat,\n mentionCandidates,\n messages: chat.messages.map((message) => ({\n ...message,\n ...(message.authorId\n ? {\n fromOther: !!user?.externalId && message.authorId !== user.externalId,\n senderName:\n message.authorId === user?.externalId\n ? user?.name || user?.email\n : mentionCandidates.find((candidate) => candidate.id === message.authorId)?.label,\n }\n : {}),\n })),\n }\n}\n\n/**\n * The assistant dock bound to the connection: mount it once in the layout (`Shell.Root`'s `aside`)\n * and put `AssistantDockToggle` in the topbar. Its chat keeps its own open conversation (and\n * survives closing the dock).\n */\nexport function ConnectedAssistantDock(props: Omit<AssistantDockProps, 'chat'>) {\n return (\n <ConversationScope>\n <ScopedAssistantDock {...props} />\n </ConversationScope>\n )\n}\n\nfunction ScopedAssistantDock(props: Omit<AssistantDockProps, 'chat'>) {\n const chat = useConnectedChat()\n return <AssistantDock {...props} chat={chat} />\n}\n"]}
@@ -5147,5 +5147,5 @@ function ProposeTimeDialog({
5147
5147
  }
5148
5148
 
5149
5149
  export { ARBI_WEBINAR_LABEL, CALENDAR_COLORS, CALENDAR_DEFAULT_LABELS, CALENDAR_NARROW_WIDTH, CalendarFormDialog, CalendarGrid, CalendarList, CalendarPrint, CalendarSettingsForm, DEFAULT_EVENT_COLOR, DEFAULT_INTERVAL, DEFAULT_RECURRENCE_DESCRIBE_LABELS, DEFAULT_RECURRENCE_EDITOR_LABELS, DEFAULT_REMINDER_FORMAT_LABELS, EventDetails, EventEditor, JOIN_EARLY_MS, MiniMonth, OVERLAY_COLORS, PENDING_EVENT_COLOR, ProposeTimeDialog, REMINDER_PRESETS, RRULE_WEEKDAYS, RecurrenceEditor, SchedulingAssistant, ScopeDialog, TimeZonePicker, WEEKDAY_NAMES, WeeklyHoursEditor, allDayInclusiveEnd, applySuggestion, attendeeKey, bookingLink, bookingToForm, buildCreateBody, buildDeleteTarget, buildEditRequest, buildGridEvents, buildRRule, buildTimeChangeRequest, calendarGroup, calendarToListItem, canJoinEvent, conferenceUrl, contrastText, dayWindow, defaultRecurrenceForm, defaultRoomWindow, defaultWeeklyHours, describeCalendarError, describeRecurrence, diffDraft, draftFromSlot, draftRangeUtc, effectiveCalendarView, emptyBookingForm, eventDays, eventStateClasses, eventToDraft, eventToGrid, eventsByDay, formToBookingBody, formatBusy, formatDayLabel, formatEventWhen, formatReminder, formatSlotRange, formatSlotTime, formatZoneLabel, freeBusyToRows, getTemporalTimeZonePlugin, groupSlotsByDay, hourTicks, icsProps, isAllDayDraft, isCalendarAttachment, isWebinarConference, needsScope, newEventDraft, normalizeFeedUrl, outsideIntervals, overlayToGrid, parseDurations, parseIcsInvite, parseOverlayLink, parseRRule, pendingCreateToGrid, placeIntervals, printCalendar, printRange, publicBookingMessage, reminderToMinutes, scopedTarget, setDraftAllDay, setDraftEnd, setDraftStart, setPosOf, slugify, specDate, specTime, splitReminderMinutes, toBusinessHours, toSettingsValue, toSuggestionViews, upcomingOf, validateBookingForm, validateDraft, validateWeekly, weekdayMon0, weekdayOf, weeklyFromApi, weeklyToPayload, workWeekHiddenDays, workingIntervals, zoneOptions };
5150
- //# sourceMappingURL=chunk-E5RN3LWS.js.map
5151
- //# sourceMappingURL=chunk-E5RN3LWS.js.map
5150
+ //# sourceMappingURL=chunk-AWVGKHJT.js.map
5151
+ //# sourceMappingURL=chunk-AWVGKHJT.js.map