@arbidocs/blocks 0.5.47 → 0.5.48
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{ConnectedCallDock-BXFBFIR4.js → ConnectedCallDock-5OLBZED2.js} +11 -11
- package/dist/{ConnectedCallDock-BXFBFIR4.js.map → ConnectedCallDock-5OLBZED2.js.map} +1 -1
- package/dist/{ConnectedCallDock-XRU6XUBE.cjs → ConnectedCallDock-GHJTVUSQ.cjs} +20 -20
- package/dist/{ConnectedCallDock-XRU6XUBE.cjs.map → ConnectedCallDock-GHJTVUSQ.cjs.map} +1 -1
- package/dist/{ConnectedCallRoom-2ZYYSPG6.cjs → ConnectedCallRoom-GVNZ3S6R.cjs} +12 -12
- package/dist/{ConnectedCallRoom-2ZYYSPG6.cjs.map → ConnectedCallRoom-GVNZ3S6R.cjs.map} +1 -1
- package/dist/{ConnectedCallRoom-DHVDXEYW.js → ConnectedCallRoom-SSSKBQA7.js} +11 -11
- package/dist/{ConnectedCallRoom-DHVDXEYW.js.map → ConnectedCallRoom-SSSKBQA7.js.map} +1 -1
- package/dist/{ConnectedNativeDocxComparison-OXP7S4HV.cjs → ConnectedNativeDocxComparison-7ADU6OGW.cjs} +20 -20
- package/dist/{ConnectedNativeDocxComparison-OXP7S4HV.cjs.map → ConnectedNativeDocxComparison-7ADU6OGW.cjs.map} +1 -1
- package/dist/{ConnectedStreamedWordArtifact-LHM3BDUA.js → ConnectedNativeDocxComparison-GIATDKIH.js} +19 -19
- package/dist/{ConnectedNativeDocxComparison-PQ42LKHG.js.map → ConnectedNativeDocxComparison-GIATDKIH.js.map} +1 -1
- package/dist/{ConnectedNativeDocxEditor-FER3BDN6.cjs → ConnectedNativeDocxEditor-GCVZCWDG.cjs} +19 -19
- package/dist/{ConnectedNativeDocxEditor-FER3BDN6.cjs.map → ConnectedNativeDocxEditor-GCVZCWDG.cjs.map} +1 -1
- package/dist/{ConnectedNativeDocxEditor-X5SJEUYZ.js → ConnectedNativeDocxEditor-UQTPB42S.js} +17 -17
- package/dist/{ConnectedNativeDocxEditor-X5SJEUYZ.js.map → ConnectedNativeDocxEditor-UQTPB42S.js.map} +1 -1
- package/dist/{ConnectedStreamedWordArtifact-OBTR3PPU.cjs → ConnectedStreamedWordArtifact-DUBHCHBP.cjs} +20 -20
- package/dist/ConnectedStreamedWordArtifact-DUBHCHBP.cjs.map +1 -0
- package/dist/{ConnectedNativeDocxComparison-PQ42LKHG.js → ConnectedStreamedWordArtifact-VN5XBWSI.js} +19 -19
- package/dist/ConnectedStreamedWordArtifact-VN5XBWSI.js.map +1 -0
- package/dist/{NativeDocxEditor-D6Z7BXTA.js → NativeDocxEditor-HJTKCPX2.js} +4 -4
- package/dist/{NativeDocxEditor-D6Z7BXTA.js.map → NativeDocxEditor-HJTKCPX2.js.map} +1 -1
- package/dist/{NativeDocxEditor-HE4PQV5F.cjs → NativeDocxEditor-TVZ6O6YS.cjs} +8 -8
- package/dist/{NativeDocxEditor-HE4PQV5F.cjs.map → NativeDocxEditor-TVZ6O6YS.cjs.map} +1 -1
- package/dist/{WorkspaceTableView-B26WOMAL.cjs → WorkspaceTableView-GZ6Y6QCD.cjs} +5 -5
- package/dist/{WorkspaceTableView-B26WOMAL.cjs.map → WorkspaceTableView-GZ6Y6QCD.cjs.map} +1 -1
- package/dist/{WorkspaceTableView-PZR5RYPG.js → WorkspaceTableView-ZI2HDG2R.js} +5 -5
- package/dist/{WorkspaceTableView-PZR5RYPG.js.map → WorkspaceTableView-ZI2HDG2R.js.map} +1 -1
- package/dist/agents/index.cjs +335 -335
- package/dist/agents/index.js +12 -12
- package/dist/calendar/index.cjs +116 -116
- package/dist/calendar/index.js +1 -1
- package/dist/calls/index.cjs +145 -145
- package/dist/calls/index.js +11 -11
- package/dist/chat/index.cjs +148 -148
- package/dist/chat/index.js +7 -7
- package/dist/{chunk-7W7TPWSZ.cjs → chunk-226ILMHW.cjs} +6 -6
- package/dist/{chunk-7W7TPWSZ.cjs.map → chunk-226ILMHW.cjs.map} +1 -1
- package/dist/{chunk-U4HWVCRN.js → chunk-3VCTVCAX.js} +68 -13
- package/dist/chunk-3VCTVCAX.js.map +1 -0
- package/dist/{chunk-5LPPY63C.cjs → chunk-4FIYA764.cjs} +83 -83
- package/dist/{chunk-5LPPY63C.cjs.map → chunk-4FIYA764.cjs.map} +1 -1
- package/dist/{chunk-RGWROTJ2.cjs → chunk-52CWM5AZ.cjs} +4 -4
- package/dist/{chunk-RGWROTJ2.cjs.map → chunk-52CWM5AZ.cjs.map} +1 -1
- package/dist/{chunk-6QHEW2GS.js → chunk-53YTK235.js} +6 -6
- package/dist/{chunk-6QHEW2GS.js.map → chunk-53YTK235.js.map} +1 -1
- package/dist/{chunk-SYP2A4GQ.js → chunk-5RYZUX5L.js} +3 -3
- package/dist/{chunk-SYP2A4GQ.js.map → chunk-5RYZUX5L.js.map} +1 -1
- package/dist/{chunk-EZJOJFY2.cjs → chunk-5WV7HI7Y.cjs} +6 -6
- package/dist/{chunk-EZJOJFY2.cjs.map → chunk-5WV7HI7Y.cjs.map} +1 -1
- package/dist/{chunk-OMYWRLV5.js → chunk-6D3XKIEB.js} +8 -8
- package/dist/{chunk-OMYWRLV5.js.map → chunk-6D3XKIEB.js.map} +1 -1
- package/dist/{chunk-S3YRRD54.js → chunk-6GI3S7TN.js} +3 -3
- package/dist/{chunk-S3YRRD54.js.map → chunk-6GI3S7TN.js.map} +1 -1
- package/dist/{chunk-HV7XHZLW.cjs → chunk-6R5Q65PB.cjs} +4 -4
- package/dist/{chunk-HV7XHZLW.cjs.map → chunk-6R5Q65PB.cjs.map} +1 -1
- package/dist/{chunk-WIW3XGHO.js → chunk-75Z5AUMM.js} +3 -3
- package/dist/{chunk-WIW3XGHO.js.map → chunk-75Z5AUMM.js.map} +1 -1
- package/dist/{chunk-C5ZP4CEQ.js → chunk-7G4N2HP7.js} +4 -4
- package/dist/{chunk-C5ZP4CEQ.js.map → chunk-7G4N2HP7.js.map} +1 -1
- package/dist/{chunk-WDMWWBPB.cjs → chunk-7KIM64LQ.cjs} +9 -9
- package/dist/{chunk-WDMWWBPB.cjs.map → chunk-7KIM64LQ.cjs.map} +1 -1
- package/dist/{chunk-H5XHCIWY.js → chunk-7P24MJQN.js} +3 -3
- package/dist/{chunk-H5XHCIWY.js.map → chunk-7P24MJQN.js.map} +1 -1
- package/dist/{chunk-CXY2ELL5.js → chunk-7QJNWQ7O.js} +4 -4
- package/dist/{chunk-CXY2ELL5.js.map → chunk-7QJNWQ7O.js.map} +1 -1
- package/dist/{chunk-GWQRGLA7.js → chunk-A54WLQQA.js} +5 -5
- package/dist/{chunk-GWQRGLA7.js.map → chunk-A54WLQQA.js.map} +1 -1
- package/dist/{chunk-7LN3ISPG.js → chunk-A7MWHMHP.js} +4 -3
- package/dist/chunk-A7MWHMHP.js.map +1 -0
- package/dist/{chunk-ORFP3QJQ.js → chunk-AEXFUPO7.js} +3 -3
- package/dist/{chunk-ORFP3QJQ.js.map → chunk-AEXFUPO7.js.map} +1 -1
- package/dist/{chunk-E5RN3LWS.js → chunk-AWVGKHJT.js} +2 -2
- package/dist/{chunk-E5RN3LWS.js.map → chunk-AWVGKHJT.js.map} +1 -1
- package/dist/{chunk-N3HSMPMY.cjs → chunk-BB4PMCU6.cjs} +14 -14
- package/dist/{chunk-N3HSMPMY.cjs.map → chunk-BB4PMCU6.cjs.map} +1 -1
- package/dist/{chunk-NIA4H7QN.js → chunk-BTTUZZN3.js} +3 -3
- package/dist/{chunk-NIA4H7QN.js.map → chunk-BTTUZZN3.js.map} +1 -1
- package/dist/{chunk-ASY4F546.js → chunk-CGHFFYOL.js} +3 -3
- package/dist/{chunk-ASY4F546.js.map → chunk-CGHFFYOL.js.map} +1 -1
- package/dist/{chunk-FV32BTXV.cjs → chunk-CKNUL4LM.cjs} +4 -4
- package/dist/{chunk-FV32BTXV.cjs.map → chunk-CKNUL4LM.cjs.map} +1 -1
- package/dist/{chunk-P6HVJP6Z.cjs → chunk-DLHAKRU2.cjs} +6 -5
- package/dist/chunk-DLHAKRU2.cjs.map +1 -0
- package/dist/{chunk-DCA4R3EU.js → chunk-E6EYRQC2.js} +3 -3
- package/dist/{chunk-DCA4R3EU.js.map → chunk-E6EYRQC2.js.map} +1 -1
- package/dist/{chunk-YWGDZR6A.cjs → chunk-E6FNC5PN.cjs} +7 -7
- package/dist/{chunk-YWGDZR6A.cjs.map → chunk-E6FNC5PN.cjs.map} +1 -1
- package/dist/{chunk-WZGSEQQX.js → chunk-EARQ2CUX.js} +4 -4
- package/dist/{chunk-WZGSEQQX.js.map → chunk-EARQ2CUX.js.map} +1 -1
- package/dist/{chunk-GNJ2NCS6.js → chunk-EXE3RBDZ.js} +4 -4
- package/dist/{chunk-GNJ2NCS6.js.map → chunk-EXE3RBDZ.js.map} +1 -1
- package/dist/{chunk-F2IAC4UE.cjs → chunk-FYL7IGK2.cjs} +31 -31
- package/dist/{chunk-F2IAC4UE.cjs.map → chunk-FYL7IGK2.cjs.map} +1 -1
- package/dist/{chunk-WDR6FO22.cjs → chunk-GKHIRR5A.cjs} +5 -5
- package/dist/{chunk-WDR6FO22.cjs.map → chunk-GKHIRR5A.cjs.map} +1 -1
- package/dist/{chunk-SI222Z3A.cjs → chunk-GMM3RBIB.cjs} +71 -11
- package/dist/chunk-GMM3RBIB.cjs.map +1 -0
- package/dist/{chunk-EHRT5M5F.js → chunk-GXJIN7G3.js} +4 -4
- package/dist/{chunk-EHRT5M5F.js.map → chunk-GXJIN7G3.js.map} +1 -1
- package/dist/{chunk-B3NYBMDR.cjs → chunk-I72IYIO2.cjs} +21 -55
- package/dist/chunk-I72IYIO2.cjs.map +1 -0
- package/dist/{chunk-TKTNXFAB.js → chunk-IDFAMK2G.js} +6 -6
- package/dist/{chunk-TKTNXFAB.js.map → chunk-IDFAMK2G.js.map} +1 -1
- package/dist/{chunk-XJA6TS6D.js → chunk-IKZWEPG4.js} +3 -3
- package/dist/{chunk-XJA6TS6D.js.map → chunk-IKZWEPG4.js.map} +1 -1
- package/dist/{chunk-7MSBEMOG.cjs → chunk-IOPGY3IP.cjs} +22 -22
- package/dist/{chunk-7MSBEMOG.cjs.map → chunk-IOPGY3IP.cjs.map} +1 -1
- package/dist/{chunk-WKHREKPY.js → chunk-JGFBC66V.js} +5 -5
- package/dist/{chunk-WKHREKPY.js.map → chunk-JGFBC66V.js.map} +1 -1
- package/dist/{chunk-QG7XCD5U.js → chunk-JGKPF3QV.js} +3 -3
- package/dist/{chunk-QG7XCD5U.js.map → chunk-JGKPF3QV.js.map} +1 -1
- package/dist/{chunk-NE7M6NJY.js → chunk-JOK2TJLY.js} +3 -3
- package/dist/{chunk-NE7M6NJY.js.map → chunk-JOK2TJLY.js.map} +1 -1
- package/dist/{chunk-YNFHWUFM.cjs → chunk-JYR55F3P.cjs} +27 -26
- package/dist/chunk-JYR55F3P.cjs.map +1 -0
- package/dist/{chunk-QZUZPC4J.js → chunk-KOOC6VD3.js} +18 -47
- package/dist/chunk-KOOC6VD3.js.map +1 -0
- package/dist/{chunk-FGVQIKOG.cjs → chunk-KZMEZYT6.cjs} +4 -4
- package/dist/{chunk-FGVQIKOG.cjs.map → chunk-KZMEZYT6.cjs.map} +1 -1
- package/dist/{chunk-5YNULK5L.cjs → chunk-MBGV6JHG.cjs} +9 -9
- package/dist/{chunk-5YNULK5L.cjs.map → chunk-MBGV6JHG.cjs.map} +1 -1
- package/dist/{chunk-EY3PBYRT.js → chunk-NIH2QCPE.js} +4 -4
- package/dist/{chunk-EY3PBYRT.js.map → chunk-NIH2QCPE.js.map} +1 -1
- package/dist/{chunk-UHYO2E25.js → chunk-NQA6P7XB.js} +4 -4
- package/dist/{chunk-UHYO2E25.js.map → chunk-NQA6P7XB.js.map} +1 -1
- package/dist/{chunk-73DANGPH.js → chunk-NXSGOC2M.js} +3 -3
- package/dist/{chunk-73DANGPH.js.map → chunk-NXSGOC2M.js.map} +1 -1
- package/dist/{chunk-ZBEWAE34.js → chunk-O4LORAFC.js} +10 -9
- package/dist/chunk-O4LORAFC.js.map +1 -0
- package/dist/{chunk-VHLMMXXE.js → chunk-OLMM6MPQ.js} +3 -3
- package/dist/{chunk-VHLMMXXE.js.map → chunk-OLMM6MPQ.js.map} +1 -1
- package/dist/{chunk-5R256EMF.cjs → chunk-PFJSYJ34.cjs} +39 -39
- package/dist/{chunk-5R256EMF.cjs.map → chunk-PFJSYJ34.cjs.map} +1 -1
- package/dist/{chunk-Z6DNYFVM.cjs → chunk-PICGTGEB.cjs} +3 -3
- package/dist/{chunk-Z6DNYFVM.cjs.map → chunk-PICGTGEB.cjs.map} +1 -1
- package/dist/{chunk-G7QBA27G.js → chunk-PP3LWBIH.js} +4 -4
- package/dist/{chunk-G7QBA27G.js.map → chunk-PP3LWBIH.js.map} +1 -1
- package/dist/{chunk-DWWRLKEZ.cjs → chunk-QK3SHV3F.cjs} +4 -4
- package/dist/{chunk-DWWRLKEZ.cjs.map → chunk-QK3SHV3F.cjs.map} +1 -1
- package/dist/{chunk-AE3QELMB.cjs → chunk-QKOFQMAY.cjs} +4 -4
- package/dist/{chunk-AE3QELMB.cjs.map → chunk-QKOFQMAY.cjs.map} +1 -1
- package/dist/{chunk-EGSSLWNZ.cjs → chunk-QPZDJVNY.cjs} +4 -4
- package/dist/{chunk-EGSSLWNZ.cjs.map → chunk-QPZDJVNY.cjs.map} +1 -1
- package/dist/chunk-QQMZ7XKU.cjs +18 -0
- package/dist/{chunk-36RSQCKH.cjs.map → chunk-QQMZ7XKU.cjs.map} +1 -1
- package/dist/{chunk-SEZEEHLU.js → chunk-QRQLQKRW.js} +3 -3
- package/dist/{chunk-SEZEEHLU.js.map → chunk-QRQLQKRW.js.map} +1 -1
- package/dist/{chunk-Y42LJ4TF.cjs → chunk-SWGQUHMF.cjs} +5 -5
- package/dist/{chunk-Y42LJ4TF.cjs.map → chunk-SWGQUHMF.cjs.map} +1 -1
- package/dist/{chunk-QTIAO2AH.cjs → chunk-TQYEHARI.cjs} +5 -5
- package/dist/{chunk-QTIAO2AH.cjs.map → chunk-TQYEHARI.cjs.map} +1 -1
- package/dist/{chunk-KFQ6E6LE.cjs → chunk-V2UQR7P6.cjs} +4 -4
- package/dist/{chunk-KFQ6E6LE.cjs.map → chunk-V2UQR7P6.cjs.map} +1 -1
- package/dist/{chunk-HDEOORSV.cjs → chunk-V5QAXGGT.cjs} +6 -6
- package/dist/{chunk-HDEOORSV.cjs.map → chunk-V5QAXGGT.cjs.map} +1 -1
- package/dist/{chunk-5TFI4YW2.js → chunk-VFSHI7IX.js} +3 -3
- package/dist/{chunk-5TFI4YW2.js.map → chunk-VFSHI7IX.js.map} +1 -1
- package/dist/{chunk-X6MGM3LH.cjs → chunk-VODFB3K2.cjs} +4 -4
- package/dist/{chunk-X6MGM3LH.cjs.map → chunk-VODFB3K2.cjs.map} +1 -1
- package/dist/{chunk-3XUF6FS3.cjs → chunk-VQHXVY26.cjs} +6 -6
- package/dist/{chunk-3XUF6FS3.cjs.map → chunk-VQHXVY26.cjs.map} +1 -1
- package/dist/{chunk-LM7DVT7C.cjs → chunk-W3PSIIMN.cjs} +2 -2
- package/dist/{chunk-LM7DVT7C.cjs.map → chunk-W3PSIIMN.cjs.map} +1 -1
- package/dist/{chunk-PPHUOWCJ.js → chunk-XBITXJZU.js} +3 -3
- package/dist/{chunk-PPHUOWCJ.js.map → chunk-XBITXJZU.js.map} +1 -1
- package/dist/chunk-XHHDVSYY.cjs +18 -0
- package/dist/{chunk-3QPQEX2X.cjs.map → chunk-XHHDVSYY.cjs.map} +1 -1
- package/dist/{chunk-X2AIPVIT.cjs → chunk-YD3RN2FY.cjs} +3 -3
- package/dist/{chunk-X2AIPVIT.cjs.map → chunk-YD3RN2FY.cjs.map} +1 -1
- package/dist/{chunk-VQAAU32B.js → chunk-YRORPDIY.js} +3 -3
- package/dist/{chunk-VQAAU32B.js.map → chunk-YRORPDIY.js.map} +1 -1
- package/dist/{chunk-BRYHW3OL.cjs → chunk-YTB6DLAD.cjs} +4 -4
- package/dist/{chunk-BRYHW3OL.cjs.map → chunk-YTB6DLAD.cjs.map} +1 -1
- package/dist/{chunk-UEORRV5P.cjs → chunk-ZXHGPTAZ.cjs} +11 -11
- package/dist/{chunk-UEORRV5P.cjs.map → chunk-ZXHGPTAZ.cjs.map} +1 -1
- package/dist/citations/index.cjs +11 -11
- package/dist/citations/index.js +3 -3
- package/dist/connect/docx.cjs +23 -23
- package/dist/connect/docx.js +19 -19
- package/dist/connect/index.cjs +1100 -1100
- package/dist/connect/index.js +44 -44
- package/dist/connect/viewer.cjs +94 -94
- package/dist/connect/viewer.js +19 -19
- package/dist/document-tools/index.cjs +17 -17
- package/dist/document-tools/index.js +2 -2
- package/dist/docx/index.cjs +51 -51
- package/dist/docx/index.js +4 -4
- package/dist/facts/index.cjs +60 -60
- package/dist/facts/index.js +7 -7
- package/dist/files/index.cjs +238 -238
- package/dist/files/index.js +6 -6
- package/dist/home/index.cjs +32 -32
- package/dist/home/index.js +7 -7
- package/dist/index.cjs +783 -783
- package/dist/index.js +26 -26
- package/dist/provider/dialog-registry.d.ts +2 -0
- package/dist/retrieval/index.cjs +5 -5
- package/dist/retrieval/index.js +3 -3
- package/dist/settings/index.cjs +5 -5
- package/dist/settings/index.js +3 -3
- package/dist/shell/index.cjs +38 -38
- package/dist/shell/index.js +4 -4
- package/dist/site/index.cjs +21 -21
- package/dist/site/index.js +1 -1
- package/dist/studio/index.cjs +18 -18
- package/dist/studio/index.js +10 -10
- package/dist/workflow-canvas/index.cjs +32 -32
- package/dist/workflow-canvas/index.js +14 -14
- package/dist/workspaces/index.cjs +30 -30
- package/dist/workspaces/index.js +5 -5
- package/node_modules/@arbidocs/coedit/package.json +1 -1
- package/package.json +5 -5
- package/dist/ConnectedStreamedWordArtifact-LHM3BDUA.js.map +0 -1
- package/dist/ConnectedStreamedWordArtifact-OBTR3PPU.cjs.map +0 -1
- package/dist/chunk-36RSQCKH.cjs +0 -18
- package/dist/chunk-3QPQEX2X.cjs +0 -18
- package/dist/chunk-7LN3ISPG.js.map +0 -1
- package/dist/chunk-B3NYBMDR.cjs.map +0 -1
- package/dist/chunk-P6HVJP6Z.cjs.map +0 -1
- package/dist/chunk-QZUZPC4J.js.map +0 -1
- package/dist/chunk-SI222Z3A.cjs.map +0 -1
- package/dist/chunk-U4HWVCRN.js.map +0 -1
- package/dist/chunk-YNFHWUFM.cjs.map +0 -1
- package/dist/chunk-ZBEWAE34.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { useBlocksEnvironment } from './chunk-
|
|
2
|
+
import { useBlocksEnvironment } from './chunk-KOOC6VD3.js';
|
|
3
3
|
import { memo, useState, useRef, useLayoutEffect } from 'react';
|
|
4
4
|
import { Eye } from 'lucide-react';
|
|
5
5
|
import { PassageCard, cn } from '@arbidocs/react/ui';
|
|
@@ -89,5 +89,5 @@ var SearchHit = memo(function SearchHit2({
|
|
|
89
89
|
});
|
|
90
90
|
|
|
91
91
|
export { DEFAULT_SEARCH_HIT_LABELS, SearchHit };
|
|
92
|
-
//# sourceMappingURL=chunk-
|
|
93
|
-
//# sourceMappingURL=chunk-
|
|
92
|
+
//# sourceMappingURL=chunk-IKZWEPG4.js.map
|
|
93
|
+
//# sourceMappingURL=chunk-IKZWEPG4.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/retrieval/SearchHit.tsx"],"names":["SearchHit"],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/retrieval/SearchHit.tsx"],"names":["SearchHit"],"mappings":"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","file":"chunk-IKZWEPG4.js","sourcesContent":["import { memo, useLayoutEffect, useRef, useState, type MouseEvent, type ReactNode } from 'react'\nimport { Eye } from 'lucide-react'\n\nimport { cn, PassageCard } from '@arbidocs/react/ui'\nimport { useBlocksEnvironment } from '../provider/environment'\nimport type { BlockLinkRenderProps } from '../components/blockLink'\n\nexport interface SearchHitLabels {\n showMore: string\n showLess: string\n}\n\nexport const DEFAULT_SEARCH_HIT_LABELS: SearchHitLabels = {\n showMore: 'Show more',\n showLess: 'Show less',\n}\n\nfunction isModifiedClick(e: MouseEvent): boolean {\n return e.button !== 0 || e.metaKey || e.ctrlKey || e.shiftKey || e.altKey\n}\n\nexport interface SearchHitProps {\n /** Left side of the header row: a source pill or a small page label. */\n header: ReactNode\n /** Raw snippet text (passed through `renderSnippet`). */\n content: string\n /** Query terms to highlight; handed to `renderSnippet`. */\n terms: string[]\n /** Renders the snippet (markdown + highlight). The app owns the markdown pipeline. */\n renderSnippet: (content: string, terms: string[]) => ReactNode\n onClick: (e: MouseEvent) => void\n /** This passage is the one open in the viewer (yellow wash). */\n active?: boolean\n /** Marks the hit as the one currently open elsewhere (accent border + ring). */\n selected?: boolean\n /** Replaces the default open-eye on the right of the header. */\n headerRight?: ReactNode\n /**\n * Destination of the hit. Rendered as a real link (provider link component) so ctrl/cmd-click\n * opens it in a new tab; a plain click calls `onClick` and does not navigate.\n */\n href?: string\n labels?: Partial<SearchHitLabels>\n testId?: string\n className?: string\n}\n\n/**\n * Snippet-first search result: header over a 3-line clamped excerpt with a Show more toggle.\n * The card is a single click target; nothing interactive may sit inside its header.\n */\nexport const SearchHit = memo(function SearchHit({\n header,\n content,\n terms,\n renderSnippet,\n onClick,\n active = false,\n selected = false,\n headerRight,\n href,\n labels,\n testId,\n className,\n}: SearchHitProps) {\n const l = { ...DEFAULT_SEARCH_HIT_LABELS, ...labels }\n const { linkComponent: Link } = useBlocksEnvironment()\n const [expanded, setExpanded] = useState(false)\n const [overflowing, setOverflowing] = useState(false)\n const bodyRef = useRef<HTMLDivElement>(null)\n\n // Only offer \"Show more\" when the clamped snippet actually hides content.\n useLayoutEffect(() => {\n const el = bodyRef.current\n if (!el || expanded) return\n setOverflowing(el.scrollHeight > el.clientHeight + 1)\n }, [content, terms, expanded])\n\n const handleCardClick = (e: MouseEvent) => {\n if (href && isModifiedClick(e)) return\n if (href) e.preventDefault()\n onClick(e)\n }\n\n const card = (\n <PassageCard\n header={header}\n className={cn(\n // Plain `:hover` (not Tailwind `hover:`) so touchscreen laptops also get the border.\n '[&:hover]:border-primary',\n active && 'bg-yellow-100 dark:bg-yellow-800/40',\n className\n )}\n active={selected}\n headerRight={headerRight ?? <Eye className=\"size-4 text-muted-foreground\" aria-hidden />}\n onClick={handleCardClick}\n data-testid={testId}\n footer={\n (overflowing || expanded) && (\n <div className=\"flex justify-end\">\n <button\n type=\"button\"\n className=\"mt-1 text-xs font-medium text-primary hover:underline pointer-coarse:min-h-11\"\n onClick={(e) => {\n e.stopPropagation()\n e.preventDefault()\n setExpanded((v) => !v)\n }}\n >\n {expanded ? l.showLess : l.showMore}\n </button>\n </div>\n )\n }\n >\n <div\n ref={bodyRef}\n data-slot=\"search-hit\"\n className={cn('text-sm text-foreground/90', !expanded && 'line-clamp-3')}\n >\n {renderSnippet(content, terms)}\n </div>\n </PassageCard>\n )\n if (!href) return card\n const linkProps = {\n href,\n className: 'block',\n 'data-slot': 'search-hit-link',\n } as unknown as BlockLinkRenderProps\n return Link ? <Link {...linkProps}>{card}</Link> : <a {...linkProps}>{card}</a>\n})\n"]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
5
|
-
var
|
|
4
|
+
var chunkJYR55F3P_cjs = require('./chunk-JYR55F3P.cjs');
|
|
5
|
+
var chunkVODFB3K2_cjs = require('./chunk-VODFB3K2.cjs');
|
|
6
6
|
var chunkZW6FPIFC_cjs = require('./chunk-ZW6FPIFC.cjs');
|
|
7
7
|
var chunkEZLZ3MDU_cjs = require('./chunk-EZLZ3MDU.cjs');
|
|
8
8
|
var chunkUFEXJIEY_cjs = require('./chunk-UFEXJIEY.cjs');
|
|
@@ -52,7 +52,7 @@ function useWorkflowPreview(workflow, { answer = "{prompt}", delayMs = 400, reso
|
|
|
52
52
|
}, delayMs)
|
|
53
53
|
);
|
|
54
54
|
}, [states, steps, workflow]);
|
|
55
|
-
return
|
|
55
|
+
return chunkJYR55F3P_cjs.useWorkflowView({
|
|
56
56
|
steps,
|
|
57
57
|
states,
|
|
58
58
|
inputs,
|
|
@@ -122,7 +122,7 @@ function AgentCard({
|
|
|
122
122
|
] }),
|
|
123
123
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
124
124
|
href ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
125
|
-
|
|
125
|
+
chunkVODFB3K2_cjs.ActionLink,
|
|
126
126
|
{
|
|
127
127
|
href,
|
|
128
128
|
onSelect,
|
|
@@ -354,7 +354,7 @@ function SkillCard({
|
|
|
354
354
|
className
|
|
355
355
|
),
|
|
356
356
|
onClick,
|
|
357
|
-
onKeyDown:
|
|
357
|
+
onKeyDown: chunkJYR55F3P_cjs.activateOnKey(onClick),
|
|
358
358
|
"data-skill-name": name,
|
|
359
359
|
"data-testid": chunkMHVNT4J3_cjs.testIdOr(testId ?? testIds?.root, { testId: "skill-card" }),
|
|
360
360
|
"data-slot": "skill-card",
|
|
@@ -363,7 +363,7 @@ function SkillCard({
|
|
|
363
363
|
href ? (
|
|
364
364
|
// The link owns plain + modified clicks; stop the row handler from double-firing.
|
|
365
365
|
/* @__PURE__ */ jsxRuntime.jsx("span", { onClick: (e) => e.stopPropagation(), children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
366
|
-
|
|
366
|
+
chunkVODFB3K2_cjs.ActionLink,
|
|
367
367
|
{
|
|
368
368
|
href,
|
|
369
369
|
onSelect: onClick,
|
|
@@ -378,12 +378,12 @@ function SkillCard({
|
|
|
378
378
|
"/",
|
|
379
379
|
name
|
|
380
380
|
] }),
|
|
381
|
-
type && type !== "markdown" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
382
|
-
isGlobal && /* @__PURE__ */ jsxRuntime.jsx(
|
|
381
|
+
type && type !== "markdown" && /* @__PURE__ */ jsxRuntime.jsx(chunkJYR55F3P_cjs.SkillTypeBadge, { type }),
|
|
382
|
+
isGlobal && /* @__PURE__ */ jsxRuntime.jsx(chunkJYR55F3P_cjs.SkillGlobalBadge, { labels: l }),
|
|
383
383
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 text-sm text-muted-foreground max-sm:order-last max-sm:w-full max-sm:line-clamp-2 sm:flex-1 sm:truncate", children: description }),
|
|
384
384
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ml-auto flex shrink-0 items-center gap-1", "data-slot": "skill-card-actions", children: [
|
|
385
385
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
386
|
-
|
|
386
|
+
chunkJYR55F3P_cjs.SkillActionButton,
|
|
387
387
|
{
|
|
388
388
|
label: l.preview,
|
|
389
389
|
onClick: onPreview,
|
|
@@ -392,7 +392,7 @@ function SkillCard({
|
|
|
392
392
|
}
|
|
393
393
|
),
|
|
394
394
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
395
|
-
|
|
395
|
+
chunkJYR55F3P_cjs.SkillActionButton,
|
|
396
396
|
{
|
|
397
397
|
label: l.edit,
|
|
398
398
|
onClick: onEdit,
|
|
@@ -401,7 +401,7 @@ function SkillCard({
|
|
|
401
401
|
}
|
|
402
402
|
),
|
|
403
403
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
404
|
-
|
|
404
|
+
chunkJYR55F3P_cjs.SkillActionButton,
|
|
405
405
|
{
|
|
406
406
|
label: l.export,
|
|
407
407
|
onClick: onExport,
|
|
@@ -410,7 +410,7 @@ function SkillCard({
|
|
|
410
410
|
}
|
|
411
411
|
),
|
|
412
412
|
isOwner && onToggleVisibility && /* @__PURE__ */ jsxRuntime.jsx(
|
|
413
|
-
|
|
413
|
+
chunkJYR55F3P_cjs.SkillActionButton,
|
|
414
414
|
{
|
|
415
415
|
label: isGlobal ? l.makePrivate : l.publish,
|
|
416
416
|
tooltip: isGlobal ? l.makePrivateTooltip : l.publish,
|
|
@@ -465,7 +465,7 @@ function SkillRow({
|
|
|
465
465
|
className
|
|
466
466
|
),
|
|
467
467
|
onClick: onInvoke,
|
|
468
|
-
onKeyDown:
|
|
468
|
+
onKeyDown: chunkJYR55F3P_cjs.activateOnKey(onInvoke),
|
|
469
469
|
"data-testid": chunkMHVNT4J3_cjs.testIdOr(testId, { testId: `skills-panel-row-${name}` }),
|
|
470
470
|
"data-slot": "skill-row",
|
|
471
471
|
title: l.insertTitle(name),
|
|
@@ -475,7 +475,7 @@ function SkillRow({
|
|
|
475
475
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5", children: [
|
|
476
476
|
href ? (
|
|
477
477
|
// The link owns plain + modified clicks; stop the row handler from double-firing.
|
|
478
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0", onClick: (e) => e.stopPropagation(), children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
478
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0", onClick: (e) => e.stopPropagation(), children: /* @__PURE__ */ jsxRuntime.jsxs(chunkVODFB3K2_cjs.ActionLink, { href, onSelect: onInvoke, className: "truncate font-mono text-sm", children: [
|
|
479
479
|
"/",
|
|
480
480
|
name
|
|
481
481
|
] }) })
|
|
@@ -483,23 +483,23 @@ function SkillRow({
|
|
|
483
483
|
"/",
|
|
484
484
|
name
|
|
485
485
|
] }),
|
|
486
|
-
type && type !== "markdown" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
487
|
-
isGlobal && /* @__PURE__ */ jsxRuntime.jsx(
|
|
486
|
+
type && type !== "markdown" && /* @__PURE__ */ jsxRuntime.jsx(chunkJYR55F3P_cjs.SkillTypeBadge, { type }),
|
|
487
|
+
isGlobal && /* @__PURE__ */ jsxRuntime.jsx(chunkJYR55F3P_cjs.SkillGlobalBadge, { labels: l })
|
|
488
488
|
] }),
|
|
489
489
|
description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "truncate text-xs text-muted-foreground", children: description })
|
|
490
490
|
] }),
|
|
491
491
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex shrink-0 items-center gap-0.5", children: [
|
|
492
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
493
|
-
onEdit && /* @__PURE__ */ jsxRuntime.jsx(
|
|
492
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkJYR55F3P_cjs.SkillActionButton, { label: l.preview, onClick: () => onPreview(), children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Eye, { className: "size-4" }) }),
|
|
493
|
+
onEdit && /* @__PURE__ */ jsxRuntime.jsx(chunkJYR55F3P_cjs.SkillActionButton, { label: l.edit, onClick: () => onEdit(), children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Pencil, { className: "size-4" }) }),
|
|
494
494
|
onTogglePublish && /* @__PURE__ */ jsxRuntime.jsx(
|
|
495
|
-
|
|
495
|
+
chunkJYR55F3P_cjs.SkillActionButton,
|
|
496
496
|
{
|
|
497
497
|
label: isGlobal ? l.makePrivate : l.publish,
|
|
498
498
|
onClick: () => onTogglePublish(),
|
|
499
499
|
children: isGlobal ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Lock, { className: "size-4" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Globe, { className: "size-4 text-primary" })
|
|
500
500
|
}
|
|
501
501
|
),
|
|
502
|
-
onDelete && /* @__PURE__ */ jsxRuntime.jsx(
|
|
502
|
+
onDelete && /* @__PURE__ */ jsxRuntime.jsx(chunkJYR55F3P_cjs.SkillActionButton, { label: l.delete, onClick: () => onDelete(), children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Trash2, { className: "size-4 text-destructive" }) })
|
|
503
503
|
] })
|
|
504
504
|
]
|
|
505
505
|
}
|
|
@@ -516,5 +516,5 @@ exports.SkillCard = SkillCard;
|
|
|
516
516
|
exports.SkillRow = SkillRow;
|
|
517
517
|
exports.groupAgentTasks = groupAgentTasks;
|
|
518
518
|
exports.useWorkflowPreview = useWorkflowPreview;
|
|
519
|
-
//# sourceMappingURL=chunk-
|
|
520
|
-
//# sourceMappingURL=chunk-
|
|
519
|
+
//# sourceMappingURL=chunk-IOPGY3IP.cjs.map
|
|
520
|
+
//# sourceMappingURL=chunk-IOPGY3IP.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/agents/workflows/useWorkflowPreview.ts","../src/agents/definitions/AgentCard.tsx","../src/agents/definitions/AgentGallery.tsx","../src/agents/definitions/agentTasks.ts","../src/agents/skills/SkillCard.tsx","../src/agents/skills/SkillRow.tsx"],"names":["workflowSteps","useState","initialRunInputs","useRef","useEffect","stepPhase","composeStepPrompt","useWorkflowView","formatCount","jsxs","cn","testIdOr","jsx","ActionLink","Button","MessageSquare","Eye","ClipboardList","Pencil","Copy","Trash2","EmptyState","Bot","Sparkles","Plus","activateOnKey","SkillTypeBadge","SkillGlobalBadge","SkillActionButton","Download","Lock","Globe"],"mappings":"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","file":"chunk-7MSBEMOG.cjs","sourcesContent":["/**\n * A stepped workflow run on screen only (the builder's preview): agent steps run one at a time,\n * the way the server does, and answer with the prompt they would send; action steps just finish.\n * No thread, no agent.\n */\n\nimport { useEffect, useRef, useState } from 'react'\nimport {\n composeStepPrompt,\n initialRunInputs,\n stepPhase,\n workflowSteps,\n type StepComposeOptions,\n} from './run'\nimport type { WorkflowDefinition, WorkflowInputs, WorkflowStepState } from './types'\nimport { useWorkflowView, type WorkflowRunView } from './useWorkflowView'\n\nexport interface UseWorkflowPreviewOptions extends StepComposeOptions {\n /** What a stand-in agent step answers; `{prompt}` is replaced with the prompt it would send. */\n answer?: string\n /** How long a stand-in step takes. */\n delayMs?: number\n}\n\nexport function useWorkflowPreview(\n workflow: WorkflowDefinition,\n { answer = '{prompt}', delayMs = 400, resolveWorkflow, compose }: UseWorkflowPreviewOptions = {}\n): WorkflowRunView {\n const steps = workflowSteps(workflow)\n const [inputs, setInputs] = useState<WorkflowInputs>(() => initialRunInputs(workflow))\n const [states, setStates] = useState<Record<string, WorkflowStepState>>({})\n const set = (id: string, state: WorkflowStepState) => setStates((s) => ({ ...s, [id]: state }))\n\n // A stand-in step's timer outlives the re-render its start causes; it is cleared on unmount, and\n // a step it cut short starts again (StrictMode mounts twice).\n const timers = useRef(new Map<string, ReturnType<typeof setTimeout>>())\n useEffect(() => {\n const pending = timers.current\n return () => {\n for (const t of pending.values()) clearTimeout(t)\n pending.clear()\n setStates((s) =>\n Object.fromEntries(\n Object.entries(s).map(([id, v]) => [\n id,\n v.status === 'running' ? { status: 'pending' } : v,\n ])\n )\n )\n }\n }, [])\n\n // One turn at a time: start the first ready agent step when nothing is running.\n useEffect(() => {\n if (Object.values(states).some((s) => s.status === 'running')) return\n // An action step (a signature, an email, a review) stands in the same way, with no answer.\n const next = steps.find(\n (s) =>\n (s.kind === 'agent' || s.kind === 'action') && stepPhase(steps, states, s.id) === 'ready'\n )\n if (!next || (next.kind !== 'agent' && next.kind !== 'action')) return\n const prompt =\n next.kind === 'agent'\n ? composeStepPrompt(workflow, next, inputs, { resolveWorkflow, compose })\n : ''\n set(next.id, { status: 'running', startedAt: new Date().toISOString() })\n timers.current.set(\n next.id,\n setTimeout(() => {\n timers.current.delete(next.id)\n set(\n next.id,\n next.kind === 'agent'\n ? { status: 'done', text: answer.replace('{prompt}', prompt) }\n : { status: 'done' }\n )\n }, delayMs)\n )\n // `inputs` are read when a step starts, not watched.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [states, steps, workflow])\n\n return useWorkflowView({\n steps,\n states,\n inputs,\n setInput: (name, value) => setInputs((i) => ({ ...i, [name]: value })),\n complete: async (step) => set(step.id, { status: 'done' }),\n skip: async (id) => set(id, { status: 'skipped' }),\n retry: async (id) => set(id, { status: 'pending' }),\n isLocked: (id) => states[id]?.status === 'done',\n })\n}\n","import type { HTMLAttributes, ReactNode } from 'react'\nimport { ClipboardList, Copy, Eye, MessageSquare, Pencil, Trash2 } from 'lucide-react'\nimport { Button, cn } from '@arbidocs/react/ui'\nimport { ActionLink } from '../../components/ActionLink'\nimport { testIdOr } from '../../chat/test-id'\nimport { formatCount } from '../../lib/format'\n\nexport interface AgentCardLabels {\n running: string\n /** Pulse indicator aria-label. */\n runningIndicator: string\n /** Chip text; receives the running count. */\n runningCount: (count: number) => string\n /** Chip text; receives the task count (0 -> none yet). */\n taskCount: (count: number) => string\n goalMet: (met: number, total: number) => string\n watch: string\n message: string\n assignTask: string\n edit: string\n copyAddress: string\n deleteAgent: (name: string) => string\n}\n\nexport const DEFAULT_AGENT_CARD_LABELS: AgentCardLabels = {\n running: 'Running',\n runningIndicator: 'Running',\n runningCount: (count) => `${count} running`,\n taskCount: (count) =>\n count > 0 ? formatCount(count, { one: 'task', other: 'tasks' }) : 'no tasks yet',\n goalMet: (met, total) => `✓ ${met}/${total} met`,\n watch: 'Watch',\n message: 'Message',\n assignTask: 'Assign task',\n edit: 'Edit',\n copyAddress: 'Copy address',\n deleteAgent: (name) => `Delete agent ${name}`,\n}\n\nexport interface AgentCardTestIds {\n root: string\n watch: string\n message: string\n assignTask: string\n edit: string\n copyAddress: string\n delete: string\n}\n\nexport interface AgentCardProps {\n /** Display name; also the key in the test ids (`agent-card-{name}`, `agent-edit-{name}`...). */\n name: string\n /** The agent's avatar (the app supplies its entity avatar). */\n avatar: ReactNode\n /** Tasks currently running for this agent; shows a pulse + chip when > 0. */\n runningCount: number\n /** All tasks assigned to this agent. */\n taskCount: number\n /** Extra content under the chips (the app shows what the agent can access). */\n details?: ReactNode\n /** Criteria progress of the agent's most recent goal task. */\n goalProgress?: { met: number; total: number } | null\n /** When set, a Watch action opens the live run. */\n onWatch?: () => void\n /** Each action is optional: the button is omitted when its handler is absent. */\n onMessage?: () => void\n onAssignTask?: () => void\n onEdit?: () => void\n /** When set, a ghost \"Copy address\" action copies the agent's address (it is not shown raw). */\n onCopyAddress?: () => void\n onDelete?: () => void\n /**\n * Destination of the agent; the name becomes a real link. `onSelect` fires on a plain click\n * (modified clicks go to the browser).\n */\n href?: string\n onSelect?: () => void\n labels?: Partial<AgentCardLabels>\n /** Overrides for the default `agent-card-{name}` / `agent-watch-run-{name}` ... ids. */\n testIds?: Partial<AgentCardTestIds>\n testId?: string\n className?: string\n}\n\nconst ACTION = 'h-9 gap-1.5 px-2 text-sm pointer-coarse:h-11'\n\n/** One agent in the gallery: avatar, live task chips, and Watch / Assign task / Edit / Delete. */\nexport function AgentCard({\n name,\n avatar,\n runningCount,\n taskCount,\n goalProgress,\n details,\n onWatch,\n onMessage,\n onAssignTask,\n onEdit,\n onCopyAddress,\n onDelete,\n href,\n onSelect,\n labels,\n testIds,\n testId,\n className,\n ...rest\n}: AgentCardProps & Omit<HTMLAttributes<HTMLDivElement>, keyof AgentCardProps>) {\n const l = { ...DEFAULT_AGENT_CARD_LABELS, ...labels }\n return (\n <div\n {...rest}\n className={cn('rounded-lg bg-muted p-4', className)}\n data-testid={testIdOr(testId ?? testIds?.root, { testId: `agent-card-${name}` })}\n data-slot=\"agent-card\"\n >\n <div className=\"flex items-start gap-3\">\n <div className=\"relative shrink-0\">\n {avatar}\n {runningCount > 0 && (\n <span\n className=\"absolute -right-0.5 -top-0.5 size-2.5 rounded-full bg-ai-ink\"\n role=\"img\"\n aria-label={l.runningIndicator}\n >\n <span className=\"absolute inset-0 animate-ping rounded-full bg-ai-ink opacity-60\" />\n </span>\n )}\n </div>\n <div className=\"min-w-0 flex-1\">\n {href ? (\n <ActionLink\n href={href}\n onSelect={onSelect}\n className=\"block max-w-full truncate text-left font-medium hover:underline\"\n >\n {name}\n </ActionLink>\n ) : (\n <p className=\"truncate font-medium\">{name}</p>\n )}\n <div className=\"mt-1.5 flex flex-wrap gap-1 text-xs text-muted-foreground\">\n {runningCount > 0 ? (\n <span className=\"rounded-full bg-ai-soft px-2 py-px text-ai-ink\">\n {l.runningCount(runningCount)}\n </span>\n ) : (\n <span className=\"rounded-full bg-background px-2 py-px\">\n {l.taskCount(taskCount)}\n </span>\n )}\n {goalProgress && (\n <span className=\"rounded-full bg-background px-2 py-px\">\n {l.goalMet(goalProgress.met, goalProgress.total)}\n </span>\n )}\n </div>\n {details}\n </div>\n </div>\n\n <div className=\"mt-3 flex flex-wrap items-center gap-1 pt-1\">\n {onMessage && (\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className={ACTION}\n onClick={onMessage}\n data-testid={testIdOr(testIds?.message, { testId: `agent-message-${name}` })}\n >\n <MessageSquare size={14} /> {l.message}\n </Button>\n )}\n {onWatch && (\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className={cn(ACTION, 'text-ai-ink hover:text-ai-ink')}\n onClick={onWatch}\n data-testid={testIdOr(testIds?.watch, { testId: `agent-watch-run-${name}` })}\n >\n <Eye size={14} /> {l.watch}\n </Button>\n )}\n {onAssignTask && (\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className={ACTION}\n onClick={onAssignTask}\n data-testid={testIdOr(testIds?.assignTask, { testId: `agent-assign-task-${name}` })}\n >\n <ClipboardList size={14} /> {l.assignTask}\n </Button>\n )}\n {onEdit && (\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className={ACTION}\n onClick={onEdit}\n data-testid={testIdOr(testIds?.edit, { testId: `agent-edit-${name}` })}\n >\n <Pencil size={14} /> {l.edit}\n </Button>\n )}\n {onCopyAddress && (\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className={cn(ACTION, 'text-muted-foreground')}\n onClick={onCopyAddress}\n data-testid={testIdOr(testIds?.copyAddress, { testId: `agent-copy-address-${name}` })}\n >\n <Copy size={14} /> {l.copyAddress}\n </Button>\n )}\n {onDelete && (\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className={cn(ACTION, 'ml-auto text-muted-foreground hover:text-red-text')}\n onClick={onDelete}\n aria-label={l.deleteAgent(name)}\n data-testid={testIdOr(testIds?.delete, { testId: `agent-delete-${name}` })}\n >\n <Trash2 size={14} />\n </Button>\n )}\n </div>\n </div>\n )\n}\n","import type { ReactNode } from 'react'\nimport { Bot, Plus, Sparkles } from 'lucide-react'\nimport { Button, cn } from '@arbidocs/react/ui'\nimport { testIdOr } from '../../chat/test-id'\nimport { EmptyState } from '../../components/EmptyState'\n\nexport interface AgentGalleryLabels {\n /** Intro line next to the New agent button. */\n description: string\n emptyTitle: string\n emptyDescription: string\n emptyCta: string\n newAgent: string\n}\n\nexport const DEFAULT_AGENT_GALLERY_LABELS: AgentGalleryLabels = {\n description: 'Personas that work for you, on demand.',\n emptyTitle: 'Create your first agent',\n emptyDescription:\n 'Describe a persona, pick its tools, generate an avatar, then hand it work from an agent card and watch it converge.',\n emptyCta: 'Create an agent',\n newAgent: 'New agent',\n}\n\nexport interface AgentGalleryTestIds {\n emptyCta: string\n createButton: string\n gallery: string\n}\n\nexport interface AgentGalleryProps {\n /** Number of agents; 0 shows the first-run empty state instead of the grid. */\n count: number\n onCreate: () => void\n /** The AgentCard children. */\n children?: ReactNode\n /** Intro line next to the New agent button (wins over `labels.description`). */\n description?: string\n labels?: Partial<AgentGalleryLabels>\n testIds?: Partial<AgentGalleryTestIds>\n className?: string\n}\n\n/** Agents grid with an intro row + New agent action, or a first-run empty state. */\nexport function AgentGallery({\n count,\n onCreate,\n children,\n description,\n labels,\n testIds,\n className,\n}: AgentGalleryProps) {\n const l = { ...DEFAULT_AGENT_GALLERY_LABELS, ...labels }\n if (count === 0) {\n return (\n <div className={cn('mt-8', className)}>\n <EmptyState\n className=\"rounded-lg border-0 bg-muted\"\n icon={Bot}\n title={l.emptyTitle}\n description={l.emptyDescription}\n action={\n <Button\n onClick={onCreate}\n className=\"gap-1.5\"\n data-testid={testIdOr(testIds?.emptyCta, { testId: 'agent-empty-cta' })}\n >\n <Sparkles size={16} /> {l.emptyCta}\n </Button>\n }\n />\n </div>\n )\n }\n return (\n <div className={className}>\n <div className=\"mb-4 flex flex-wrap items-center justify-between gap-x-3 gap-y-2\">\n <p className=\"min-w-0 text-sm text-muted-foreground\">{description ?? l.description}</p>\n <Button\n size=\"sm\"\n onClick={onCreate}\n className=\"h-8 gap-1.5 pointer-coarse:h-11\"\n data-testid={testIdOr(testIds?.createButton, { testId: 'agent-create-button' })}\n >\n <Plus size={16} /> {l.newAgent}\n </Button>\n </div>\n <div\n className=\"grid grid-cols-[repeat(auto-fill,minmax(16rem,1fr))] gap-4\"\n data-testid={testIdOr(testIds?.gallery, { testId: 'agent-gallery' })}\n data-slot=\"agent-gallery\"\n >\n {children}\n </div>\n </div>\n )\n}\n","/** Tasks per assigned agent, retaining server order for latest-goal/watch presentation. */\nexport function groupAgentTasks<T extends { agent_ext_id?: string | null }>(\n tasks: readonly T[]\n): Map<string, T[]> {\n const grouped = new Map<string, T[]>()\n for (const task of tasks) {\n if (!task.agent_ext_id) continue\n const assigned = grouped.get(task.agent_ext_id)\n if (assigned) assigned.push(task)\n else grouped.set(task.agent_ext_id, [task])\n }\n return grouped\n}\n","import type { HTMLAttributes, MouseEvent, ReactNode } from 'react'\nimport { Download, Eye, Globe, Lock, Pencil } from 'lucide-react'\nimport { cn } from '@arbidocs/react/ui'\nimport { ActionLink } from '../../components/ActionLink'\nimport { testIdOr } from '../../chat/test-id'\nimport {\n SkillActionButton,\n SkillGlobalBadge,\n SkillTypeBadge,\n activateOnKey,\n type SkillGlobalBadgeLabels,\n} from './SkillParts'\n\nexport interface SkillCardLabels extends SkillGlobalBadgeLabels {\n preview: string\n edit: string\n export: string\n makePrivate: string\n makePrivateTooltip: string\n publish: string\n}\n\nexport const DEFAULT_SKILL_CARD_LABELS: SkillCardLabels = {\n global: 'Global',\n globalTitle: 'Shared with everyone in the marketplace',\n preview: 'Preview skill',\n edit: 'Edit skill',\n export: 'Export skill',\n makePrivate: 'Make private',\n makePrivateTooltip: 'Make private (unpublish)',\n publish: 'Publish to marketplace',\n}\n\nexport interface SkillCardTestIds {\n root: string\n preview: string\n edit: string\n export: string\n toggleVisibility: string\n}\n\nexport interface SkillCardProps {\n name: string\n description: string\n /** Skill type; a small badge is shown when not `markdown`. */\n type?: string\n /** `global` shows a badge and drives the publish toggle. */\n visibility?: 'mine' | 'global'\n /** Only owners see the publish toggle. */\n isOwner?: boolean\n /** Leading icon (the app supplies its skill entity icon). */\n icon?: ReactNode\n /** Invoke the skill (row click / Enter / Space). */\n onClick: () => void\n onPreview: (e: MouseEvent) => void\n onEdit: (e: MouseEvent) => void\n onExport: (e: MouseEvent) => void\n /** Publish / unpublish. Owner-only; omit to hide. */\n onToggleVisibility?: (e: MouseEvent) => void\n /** Destination of the skill; the name becomes a real link (modified clicks go to the browser). */\n href?: string\n labels?: Partial<SkillCardLabels>\n testId?: string\n testIds?: Partial<SkillCardTestIds>\n className?: string\n}\n\n/**\n * Horizontal skill row: icon + `/name` + badges + description, with preview / edit / export /\n * publish actions. All actions are always visible (nothing is hover-only).\n */\nexport function SkillCard({\n name,\n description,\n type,\n visibility = 'mine',\n isOwner = true,\n icon,\n onClick,\n onPreview,\n onEdit,\n onExport,\n onToggleVisibility,\n href,\n labels,\n testId,\n testIds,\n className,\n ...rest\n}: SkillCardProps & Omit<HTMLAttributes<HTMLDivElement>, keyof SkillCardProps | 'onClick'>) {\n const l = { ...DEFAULT_SKILL_CARD_LABELS, ...labels }\n const isGlobal = visibility === 'global'\n return (\n <div\n {...rest}\n role=\"button\"\n tabIndex={0}\n className={cn(\n 'flex w-full cursor-pointer flex-wrap items-center gap-x-3 gap-y-1 rounded-lg bg-muted px-4 py-3 transition-colors hover:bg-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n className\n )}\n onClick={onClick}\n onKeyDown={activateOnKey(onClick)}\n data-skill-name={name}\n data-testid={testIdOr(testId ?? testIds?.root, { testId: 'skill-card' })}\n data-slot=\"skill-card\"\n >\n {icon && <span className=\"shrink-0 text-primary [&>svg]:size-5\">{icon}</span>}\n {href ? (\n // The link owns plain + modified clicks; stop the row handler from double-firing.\n <span onClick={(e) => e.stopPropagation()}>\n <ActionLink\n href={href}\n onSelect={onClick}\n className=\"whitespace-nowrap font-mono text-sm font-medium\"\n >\n /{name}\n </ActionLink>\n </span>\n ) : (\n <span className=\"whitespace-nowrap font-mono text-sm font-medium\">/{name}</span>\n )}\n {type && type !== 'markdown' && <SkillTypeBadge type={type} />}\n {isGlobal && <SkillGlobalBadge labels={l} />}\n <span className=\"min-w-0 text-sm text-muted-foreground max-sm:order-last max-sm:w-full max-sm:line-clamp-2 sm:flex-1 sm:truncate\">\n {description}\n </span>\n <span className=\"ml-auto flex shrink-0 items-center gap-1\" data-slot=\"skill-card-actions\">\n <SkillActionButton\n label={l.preview}\n onClick={onPreview}\n testId={testIdOr(testIds?.preview, { testId: 'preview-skill-button' })}\n >\n <Eye className=\"size-4 text-muted-foreground\" />\n </SkillActionButton>\n <SkillActionButton\n label={l.edit}\n onClick={onEdit}\n testId={testIdOr(testIds?.edit, { testId: 'edit-skill-button' })}\n >\n <Pencil className=\"size-4 text-muted-foreground\" />\n </SkillActionButton>\n <SkillActionButton\n label={l.export}\n onClick={onExport}\n testId={testIdOr(testIds?.export, { testId: 'export-skill-button' })}\n >\n <Download className=\"size-4 text-muted-foreground\" />\n </SkillActionButton>\n {isOwner && onToggleVisibility && (\n <SkillActionButton\n label={isGlobal ? l.makePrivate : l.publish}\n tooltip={isGlobal ? l.makePrivateTooltip : l.publish}\n onClick={onToggleVisibility}\n testId={testIdOr(testIds?.toggleVisibility, {\n testId: 'toggle-skill-visibility-button',\n })}\n >\n {isGlobal ? (\n <Lock className=\"size-4 text-muted-foreground\" />\n ) : (\n <Globe className=\"size-4 text-primary\" />\n )}\n </SkillActionButton>\n )}\n </span>\n </div>\n )\n}\n","import type { HTMLAttributes, ReactNode } from 'react'\nimport { Eye, Globe, Lock, Pencil, Trash2 } from 'lucide-react'\nimport { cn } from '@arbidocs/react/ui'\nimport { ActionLink } from '../../components/ActionLink'\nimport { testIdOr } from '../../chat/test-id'\nimport {\n SkillActionButton,\n SkillGlobalBadge,\n SkillTypeBadge,\n activateOnKey,\n type SkillGlobalBadgeLabels,\n} from './SkillParts'\n\nexport interface SkillRowLabels extends SkillGlobalBadgeLabels {\n preview: string\n edit: string\n makePrivate: string\n publish: string\n delete: string\n /** Row tooltip; receives the skill name. */\n insertTitle: (name: string) => string\n}\n\nexport const DEFAULT_SKILL_ROW_LABELS: SkillRowLabels = {\n global: 'Global',\n globalTitle: 'Shared with everyone in the marketplace',\n preview: 'Preview',\n edit: 'Edit',\n makePrivate: 'Make private',\n publish: 'Publish to marketplace',\n delete: 'Delete',\n insertTitle: (name) => `Insert /${name} into the chat`,\n}\n\nexport interface SkillRowProps {\n name: string\n description?: string\n type?: string\n isGlobal?: boolean\n icon?: ReactNode\n /** Invoke the skill (inserts `/name` into the chat). */\n onInvoke: () => void\n onPreview: () => void\n /** Owner-only actions: omit to hide. */\n onEdit?: () => void\n onTogglePublish?: () => void\n onDelete?: () => void\n /** Destination of the skill; the name becomes a real link (modified clicks go to the browser). */\n href?: string\n labels?: Partial<SkillRowLabels>\n /** Overrides the default `skills-panel-row-{name}` id. */\n testId?: string\n className?: string\n}\n\n/** Compact two-line skill row for side panels. Actions are always visible. */\nexport function SkillRow({\n name,\n description,\n type,\n isGlobal = false,\n icon,\n onInvoke,\n onPreview,\n onEdit,\n onTogglePublish,\n onDelete,\n href,\n labels,\n testId,\n className,\n ...rest\n}: SkillRowProps & Omit<HTMLAttributes<HTMLDivElement>, keyof SkillRowProps | 'onClick'>) {\n const l = { ...DEFAULT_SKILL_ROW_LABELS, ...labels }\n return (\n <div\n {...rest}\n role=\"button\"\n tabIndex={0}\n className={cn(\n 'flex cursor-pointer items-center gap-2 px-4 py-2 hover:bg-accent/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring',\n className\n )}\n onClick={onInvoke}\n onKeyDown={activateOnKey(onInvoke)}\n data-testid={testIdOr(testId, { testId: `skills-panel-row-${name}` })}\n data-slot=\"skill-row\"\n title={l.insertTitle(name)}\n >\n {icon && <span className=\"shrink-0 text-primary [&>svg]:size-4\">{icon}</span>}\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex items-center gap-1.5\">\n {href ? (\n // The link owns plain + modified clicks; stop the row handler from double-firing.\n <span className=\"min-w-0\" onClick={(e) => e.stopPropagation()}>\n <ActionLink href={href} onSelect={onInvoke} className=\"truncate font-mono text-sm\">\n /{name}\n </ActionLink>\n </span>\n ) : (\n <span className=\"truncate font-mono text-sm\">/{name}</span>\n )}\n {type && type !== 'markdown' && <SkillTypeBadge type={type} />}\n {isGlobal && <SkillGlobalBadge labels={l} />}\n </div>\n {description && <div className=\"truncate text-xs text-muted-foreground\">{description}</div>}\n </div>\n <div className=\"flex shrink-0 items-center gap-0.5\">\n <SkillActionButton label={l.preview} onClick={() => onPreview()}>\n <Eye className=\"size-4\" />\n </SkillActionButton>\n {onEdit && (\n <SkillActionButton label={l.edit} onClick={() => onEdit()}>\n <Pencil className=\"size-4\" />\n </SkillActionButton>\n )}\n {onTogglePublish && (\n <SkillActionButton\n label={isGlobal ? l.makePrivate : l.publish}\n onClick={() => onTogglePublish()}\n >\n {isGlobal ? <Lock className=\"size-4\" /> : <Globe className=\"size-4 text-primary\" />}\n </SkillActionButton>\n )}\n {onDelete && (\n <SkillActionButton label={l.delete} onClick={() => onDelete()}>\n <Trash2 className=\"size-4 text-destructive\" />\n </SkillActionButton>\n )}\n </div>\n </div>\n )\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/agents/workflows/useWorkflowPreview.ts","../src/agents/definitions/AgentCard.tsx","../src/agents/definitions/AgentGallery.tsx","../src/agents/definitions/agentTasks.ts","../src/agents/skills/SkillCard.tsx","../src/agents/skills/SkillRow.tsx"],"names":["workflowSteps","useState","initialRunInputs","useRef","useEffect","stepPhase","composeStepPrompt","useWorkflowView","formatCount","jsxs","cn","testIdOr","jsx","ActionLink","Button","MessageSquare","Eye","ClipboardList","Pencil","Copy","Trash2","EmptyState","Bot","Sparkles","Plus","activateOnKey","SkillTypeBadge","SkillGlobalBadge","SkillActionButton","Download","Lock","Globe"],"mappings":"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","file":"chunk-IOPGY3IP.cjs","sourcesContent":["/**\n * A stepped workflow run on screen only (the builder's preview): agent steps run one at a time,\n * the way the server does, and answer with the prompt they would send; action steps just finish.\n * No thread, no agent.\n */\n\nimport { useEffect, useRef, useState } from 'react'\nimport {\n composeStepPrompt,\n initialRunInputs,\n stepPhase,\n workflowSteps,\n type StepComposeOptions,\n} from './run'\nimport type { WorkflowDefinition, WorkflowInputs, WorkflowStepState } from './types'\nimport { useWorkflowView, type WorkflowRunView } from './useWorkflowView'\n\nexport interface UseWorkflowPreviewOptions extends StepComposeOptions {\n /** What a stand-in agent step answers; `{prompt}` is replaced with the prompt it would send. */\n answer?: string\n /** How long a stand-in step takes. */\n delayMs?: number\n}\n\nexport function useWorkflowPreview(\n workflow: WorkflowDefinition,\n { answer = '{prompt}', delayMs = 400, resolveWorkflow, compose }: UseWorkflowPreviewOptions = {}\n): WorkflowRunView {\n const steps = workflowSteps(workflow)\n const [inputs, setInputs] = useState<WorkflowInputs>(() => initialRunInputs(workflow))\n const [states, setStates] = useState<Record<string, WorkflowStepState>>({})\n const set = (id: string, state: WorkflowStepState) => setStates((s) => ({ ...s, [id]: state }))\n\n // A stand-in step's timer outlives the re-render its start causes; it is cleared on unmount, and\n // a step it cut short starts again (StrictMode mounts twice).\n const timers = useRef(new Map<string, ReturnType<typeof setTimeout>>())\n useEffect(() => {\n const pending = timers.current\n return () => {\n for (const t of pending.values()) clearTimeout(t)\n pending.clear()\n setStates((s) =>\n Object.fromEntries(\n Object.entries(s).map(([id, v]) => [\n id,\n v.status === 'running' ? { status: 'pending' } : v,\n ])\n )\n )\n }\n }, [])\n\n // One turn at a time: start the first ready agent step when nothing is running.\n useEffect(() => {\n if (Object.values(states).some((s) => s.status === 'running')) return\n // An action step (a signature, an email, a review) stands in the same way, with no answer.\n const next = steps.find(\n (s) =>\n (s.kind === 'agent' || s.kind === 'action') && stepPhase(steps, states, s.id) === 'ready'\n )\n if (!next || (next.kind !== 'agent' && next.kind !== 'action')) return\n const prompt =\n next.kind === 'agent'\n ? composeStepPrompt(workflow, next, inputs, { resolveWorkflow, compose })\n : ''\n set(next.id, { status: 'running', startedAt: new Date().toISOString() })\n timers.current.set(\n next.id,\n setTimeout(() => {\n timers.current.delete(next.id)\n set(\n next.id,\n next.kind === 'agent'\n ? { status: 'done', text: answer.replace('{prompt}', prompt) }\n : { status: 'done' }\n )\n }, delayMs)\n )\n // `inputs` are read when a step starts, not watched.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [states, steps, workflow])\n\n return useWorkflowView({\n steps,\n states,\n inputs,\n setInput: (name, value) => setInputs((i) => ({ ...i, [name]: value })),\n complete: async (step) => set(step.id, { status: 'done' }),\n skip: async (id) => set(id, { status: 'skipped' }),\n retry: async (id) => set(id, { status: 'pending' }),\n isLocked: (id) => states[id]?.status === 'done',\n })\n}\n","import type { HTMLAttributes, ReactNode } from 'react'\nimport { ClipboardList, Copy, Eye, MessageSquare, Pencil, Trash2 } from 'lucide-react'\nimport { Button, cn } from '@arbidocs/react/ui'\nimport { ActionLink } from '../../components/ActionLink'\nimport { testIdOr } from '../../chat/test-id'\nimport { formatCount } from '../../lib/format'\n\nexport interface AgentCardLabels {\n running: string\n /** Pulse indicator aria-label. */\n runningIndicator: string\n /** Chip text; receives the running count. */\n runningCount: (count: number) => string\n /** Chip text; receives the task count (0 -> none yet). */\n taskCount: (count: number) => string\n goalMet: (met: number, total: number) => string\n watch: string\n message: string\n assignTask: string\n edit: string\n copyAddress: string\n deleteAgent: (name: string) => string\n}\n\nexport const DEFAULT_AGENT_CARD_LABELS: AgentCardLabels = {\n running: 'Running',\n runningIndicator: 'Running',\n runningCount: (count) => `${count} running`,\n taskCount: (count) =>\n count > 0 ? formatCount(count, { one: 'task', other: 'tasks' }) : 'no tasks yet',\n goalMet: (met, total) => `✓ ${met}/${total} met`,\n watch: 'Watch',\n message: 'Message',\n assignTask: 'Assign task',\n edit: 'Edit',\n copyAddress: 'Copy address',\n deleteAgent: (name) => `Delete agent ${name}`,\n}\n\nexport interface AgentCardTestIds {\n root: string\n watch: string\n message: string\n assignTask: string\n edit: string\n copyAddress: string\n delete: string\n}\n\nexport interface AgentCardProps {\n /** Display name; also the key in the test ids (`agent-card-{name}`, `agent-edit-{name}`...). */\n name: string\n /** The agent's avatar (the app supplies its entity avatar). */\n avatar: ReactNode\n /** Tasks currently running for this agent; shows a pulse + chip when > 0. */\n runningCount: number\n /** All tasks assigned to this agent. */\n taskCount: number\n /** Extra content under the chips (the app shows what the agent can access). */\n details?: ReactNode\n /** Criteria progress of the agent's most recent goal task. */\n goalProgress?: { met: number; total: number } | null\n /** When set, a Watch action opens the live run. */\n onWatch?: () => void\n /** Each action is optional: the button is omitted when its handler is absent. */\n onMessage?: () => void\n onAssignTask?: () => void\n onEdit?: () => void\n /** When set, a ghost \"Copy address\" action copies the agent's address (it is not shown raw). */\n onCopyAddress?: () => void\n onDelete?: () => void\n /**\n * Destination of the agent; the name becomes a real link. `onSelect` fires on a plain click\n * (modified clicks go to the browser).\n */\n href?: string\n onSelect?: () => void\n labels?: Partial<AgentCardLabels>\n /** Overrides for the default `agent-card-{name}` / `agent-watch-run-{name}` ... ids. */\n testIds?: Partial<AgentCardTestIds>\n testId?: string\n className?: string\n}\n\nconst ACTION = 'h-9 gap-1.5 px-2 text-sm pointer-coarse:h-11'\n\n/** One agent in the gallery: avatar, live task chips, and Watch / Assign task / Edit / Delete. */\nexport function AgentCard({\n name,\n avatar,\n runningCount,\n taskCount,\n goalProgress,\n details,\n onWatch,\n onMessage,\n onAssignTask,\n onEdit,\n onCopyAddress,\n onDelete,\n href,\n onSelect,\n labels,\n testIds,\n testId,\n className,\n ...rest\n}: AgentCardProps & Omit<HTMLAttributes<HTMLDivElement>, keyof AgentCardProps>) {\n const l = { ...DEFAULT_AGENT_CARD_LABELS, ...labels }\n return (\n <div\n {...rest}\n className={cn('rounded-lg bg-muted p-4', className)}\n data-testid={testIdOr(testId ?? testIds?.root, { testId: `agent-card-${name}` })}\n data-slot=\"agent-card\"\n >\n <div className=\"flex items-start gap-3\">\n <div className=\"relative shrink-0\">\n {avatar}\n {runningCount > 0 && (\n <span\n className=\"absolute -right-0.5 -top-0.5 size-2.5 rounded-full bg-ai-ink\"\n role=\"img\"\n aria-label={l.runningIndicator}\n >\n <span className=\"absolute inset-0 animate-ping rounded-full bg-ai-ink opacity-60\" />\n </span>\n )}\n </div>\n <div className=\"min-w-0 flex-1\">\n {href ? (\n <ActionLink\n href={href}\n onSelect={onSelect}\n className=\"block max-w-full truncate text-left font-medium hover:underline\"\n >\n {name}\n </ActionLink>\n ) : (\n <p className=\"truncate font-medium\">{name}</p>\n )}\n <div className=\"mt-1.5 flex flex-wrap gap-1 text-xs text-muted-foreground\">\n {runningCount > 0 ? (\n <span className=\"rounded-full bg-ai-soft px-2 py-px text-ai-ink\">\n {l.runningCount(runningCount)}\n </span>\n ) : (\n <span className=\"rounded-full bg-background px-2 py-px\">\n {l.taskCount(taskCount)}\n </span>\n )}\n {goalProgress && (\n <span className=\"rounded-full bg-background px-2 py-px\">\n {l.goalMet(goalProgress.met, goalProgress.total)}\n </span>\n )}\n </div>\n {details}\n </div>\n </div>\n\n <div className=\"mt-3 flex flex-wrap items-center gap-1 pt-1\">\n {onMessage && (\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className={ACTION}\n onClick={onMessage}\n data-testid={testIdOr(testIds?.message, { testId: `agent-message-${name}` })}\n >\n <MessageSquare size={14} /> {l.message}\n </Button>\n )}\n {onWatch && (\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className={cn(ACTION, 'text-ai-ink hover:text-ai-ink')}\n onClick={onWatch}\n data-testid={testIdOr(testIds?.watch, { testId: `agent-watch-run-${name}` })}\n >\n <Eye size={14} /> {l.watch}\n </Button>\n )}\n {onAssignTask && (\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className={ACTION}\n onClick={onAssignTask}\n data-testid={testIdOr(testIds?.assignTask, { testId: `agent-assign-task-${name}` })}\n >\n <ClipboardList size={14} /> {l.assignTask}\n </Button>\n )}\n {onEdit && (\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className={ACTION}\n onClick={onEdit}\n data-testid={testIdOr(testIds?.edit, { testId: `agent-edit-${name}` })}\n >\n <Pencil size={14} /> {l.edit}\n </Button>\n )}\n {onCopyAddress && (\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className={cn(ACTION, 'text-muted-foreground')}\n onClick={onCopyAddress}\n data-testid={testIdOr(testIds?.copyAddress, { testId: `agent-copy-address-${name}` })}\n >\n <Copy size={14} /> {l.copyAddress}\n </Button>\n )}\n {onDelete && (\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className={cn(ACTION, 'ml-auto text-muted-foreground hover:text-red-text')}\n onClick={onDelete}\n aria-label={l.deleteAgent(name)}\n data-testid={testIdOr(testIds?.delete, { testId: `agent-delete-${name}` })}\n >\n <Trash2 size={14} />\n </Button>\n )}\n </div>\n </div>\n )\n}\n","import type { ReactNode } from 'react'\nimport { Bot, Plus, Sparkles } from 'lucide-react'\nimport { Button, cn } from '@arbidocs/react/ui'\nimport { testIdOr } from '../../chat/test-id'\nimport { EmptyState } from '../../components/EmptyState'\n\nexport interface AgentGalleryLabels {\n /** Intro line next to the New agent button. */\n description: string\n emptyTitle: string\n emptyDescription: string\n emptyCta: string\n newAgent: string\n}\n\nexport const DEFAULT_AGENT_GALLERY_LABELS: AgentGalleryLabels = {\n description: 'Personas that work for you, on demand.',\n emptyTitle: 'Create your first agent',\n emptyDescription:\n 'Describe a persona, pick its tools, generate an avatar, then hand it work from an agent card and watch it converge.',\n emptyCta: 'Create an agent',\n newAgent: 'New agent',\n}\n\nexport interface AgentGalleryTestIds {\n emptyCta: string\n createButton: string\n gallery: string\n}\n\nexport interface AgentGalleryProps {\n /** Number of agents; 0 shows the first-run empty state instead of the grid. */\n count: number\n onCreate: () => void\n /** The AgentCard children. */\n children?: ReactNode\n /** Intro line next to the New agent button (wins over `labels.description`). */\n description?: string\n labels?: Partial<AgentGalleryLabels>\n testIds?: Partial<AgentGalleryTestIds>\n className?: string\n}\n\n/** Agents grid with an intro row + New agent action, or a first-run empty state. */\nexport function AgentGallery({\n count,\n onCreate,\n children,\n description,\n labels,\n testIds,\n className,\n}: AgentGalleryProps) {\n const l = { ...DEFAULT_AGENT_GALLERY_LABELS, ...labels }\n if (count === 0) {\n return (\n <div className={cn('mt-8', className)}>\n <EmptyState\n className=\"rounded-lg border-0 bg-muted\"\n icon={Bot}\n title={l.emptyTitle}\n description={l.emptyDescription}\n action={\n <Button\n onClick={onCreate}\n className=\"gap-1.5\"\n data-testid={testIdOr(testIds?.emptyCta, { testId: 'agent-empty-cta' })}\n >\n <Sparkles size={16} /> {l.emptyCta}\n </Button>\n }\n />\n </div>\n )\n }\n return (\n <div className={className}>\n <div className=\"mb-4 flex flex-wrap items-center justify-between gap-x-3 gap-y-2\">\n <p className=\"min-w-0 text-sm text-muted-foreground\">{description ?? l.description}</p>\n <Button\n size=\"sm\"\n onClick={onCreate}\n className=\"h-8 gap-1.5 pointer-coarse:h-11\"\n data-testid={testIdOr(testIds?.createButton, { testId: 'agent-create-button' })}\n >\n <Plus size={16} /> {l.newAgent}\n </Button>\n </div>\n <div\n className=\"grid grid-cols-[repeat(auto-fill,minmax(16rem,1fr))] gap-4\"\n data-testid={testIdOr(testIds?.gallery, { testId: 'agent-gallery' })}\n data-slot=\"agent-gallery\"\n >\n {children}\n </div>\n </div>\n )\n}\n","/** Tasks per assigned agent, retaining server order for latest-goal/watch presentation. */\nexport function groupAgentTasks<T extends { agent_ext_id?: string | null }>(\n tasks: readonly T[]\n): Map<string, T[]> {\n const grouped = new Map<string, T[]>()\n for (const task of tasks) {\n if (!task.agent_ext_id) continue\n const assigned = grouped.get(task.agent_ext_id)\n if (assigned) assigned.push(task)\n else grouped.set(task.agent_ext_id, [task])\n }\n return grouped\n}\n","import type { HTMLAttributes, MouseEvent, ReactNode } from 'react'\nimport { Download, Eye, Globe, Lock, Pencil } from 'lucide-react'\nimport { cn } from '@arbidocs/react/ui'\nimport { ActionLink } from '../../components/ActionLink'\nimport { testIdOr } from '../../chat/test-id'\nimport {\n SkillActionButton,\n SkillGlobalBadge,\n SkillTypeBadge,\n activateOnKey,\n type SkillGlobalBadgeLabels,\n} from './SkillParts'\n\nexport interface SkillCardLabels extends SkillGlobalBadgeLabels {\n preview: string\n edit: string\n export: string\n makePrivate: string\n makePrivateTooltip: string\n publish: string\n}\n\nexport const DEFAULT_SKILL_CARD_LABELS: SkillCardLabels = {\n global: 'Global',\n globalTitle: 'Shared with everyone in the marketplace',\n preview: 'Preview skill',\n edit: 'Edit skill',\n export: 'Export skill',\n makePrivate: 'Make private',\n makePrivateTooltip: 'Make private (unpublish)',\n publish: 'Publish to marketplace',\n}\n\nexport interface SkillCardTestIds {\n root: string\n preview: string\n edit: string\n export: string\n toggleVisibility: string\n}\n\nexport interface SkillCardProps {\n name: string\n description: string\n /** Skill type; a small badge is shown when not `markdown`. */\n type?: string\n /** `global` shows a badge and drives the publish toggle. */\n visibility?: 'mine' | 'global'\n /** Only owners see the publish toggle. */\n isOwner?: boolean\n /** Leading icon (the app supplies its skill entity icon). */\n icon?: ReactNode\n /** Invoke the skill (row click / Enter / Space). */\n onClick: () => void\n onPreview: (e: MouseEvent) => void\n onEdit: (e: MouseEvent) => void\n onExport: (e: MouseEvent) => void\n /** Publish / unpublish. Owner-only; omit to hide. */\n onToggleVisibility?: (e: MouseEvent) => void\n /** Destination of the skill; the name becomes a real link (modified clicks go to the browser). */\n href?: string\n labels?: Partial<SkillCardLabels>\n testId?: string\n testIds?: Partial<SkillCardTestIds>\n className?: string\n}\n\n/**\n * Horizontal skill row: icon + `/name` + badges + description, with preview / edit / export /\n * publish actions. All actions are always visible (nothing is hover-only).\n */\nexport function SkillCard({\n name,\n description,\n type,\n visibility = 'mine',\n isOwner = true,\n icon,\n onClick,\n onPreview,\n onEdit,\n onExport,\n onToggleVisibility,\n href,\n labels,\n testId,\n testIds,\n className,\n ...rest\n}: SkillCardProps & Omit<HTMLAttributes<HTMLDivElement>, keyof SkillCardProps | 'onClick'>) {\n const l = { ...DEFAULT_SKILL_CARD_LABELS, ...labels }\n const isGlobal = visibility === 'global'\n return (\n <div\n {...rest}\n role=\"button\"\n tabIndex={0}\n className={cn(\n 'flex w-full cursor-pointer flex-wrap items-center gap-x-3 gap-y-1 rounded-lg bg-muted px-4 py-3 transition-colors hover:bg-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n className\n )}\n onClick={onClick}\n onKeyDown={activateOnKey(onClick)}\n data-skill-name={name}\n data-testid={testIdOr(testId ?? testIds?.root, { testId: 'skill-card' })}\n data-slot=\"skill-card\"\n >\n {icon && <span className=\"shrink-0 text-primary [&>svg]:size-5\">{icon}</span>}\n {href ? (\n // The link owns plain + modified clicks; stop the row handler from double-firing.\n <span onClick={(e) => e.stopPropagation()}>\n <ActionLink\n href={href}\n onSelect={onClick}\n className=\"whitespace-nowrap font-mono text-sm font-medium\"\n >\n /{name}\n </ActionLink>\n </span>\n ) : (\n <span className=\"whitespace-nowrap font-mono text-sm font-medium\">/{name}</span>\n )}\n {type && type !== 'markdown' && <SkillTypeBadge type={type} />}\n {isGlobal && <SkillGlobalBadge labels={l} />}\n <span className=\"min-w-0 text-sm text-muted-foreground max-sm:order-last max-sm:w-full max-sm:line-clamp-2 sm:flex-1 sm:truncate\">\n {description}\n </span>\n <span className=\"ml-auto flex shrink-0 items-center gap-1\" data-slot=\"skill-card-actions\">\n <SkillActionButton\n label={l.preview}\n onClick={onPreview}\n testId={testIdOr(testIds?.preview, { testId: 'preview-skill-button' })}\n >\n <Eye className=\"size-4 text-muted-foreground\" />\n </SkillActionButton>\n <SkillActionButton\n label={l.edit}\n onClick={onEdit}\n testId={testIdOr(testIds?.edit, { testId: 'edit-skill-button' })}\n >\n <Pencil className=\"size-4 text-muted-foreground\" />\n </SkillActionButton>\n <SkillActionButton\n label={l.export}\n onClick={onExport}\n testId={testIdOr(testIds?.export, { testId: 'export-skill-button' })}\n >\n <Download className=\"size-4 text-muted-foreground\" />\n </SkillActionButton>\n {isOwner && onToggleVisibility && (\n <SkillActionButton\n label={isGlobal ? l.makePrivate : l.publish}\n tooltip={isGlobal ? l.makePrivateTooltip : l.publish}\n onClick={onToggleVisibility}\n testId={testIdOr(testIds?.toggleVisibility, {\n testId: 'toggle-skill-visibility-button',\n })}\n >\n {isGlobal ? (\n <Lock className=\"size-4 text-muted-foreground\" />\n ) : (\n <Globe className=\"size-4 text-primary\" />\n )}\n </SkillActionButton>\n )}\n </span>\n </div>\n )\n}\n","import type { HTMLAttributes, ReactNode } from 'react'\nimport { Eye, Globe, Lock, Pencil, Trash2 } from 'lucide-react'\nimport { cn } from '@arbidocs/react/ui'\nimport { ActionLink } from '../../components/ActionLink'\nimport { testIdOr } from '../../chat/test-id'\nimport {\n SkillActionButton,\n SkillGlobalBadge,\n SkillTypeBadge,\n activateOnKey,\n type SkillGlobalBadgeLabels,\n} from './SkillParts'\n\nexport interface SkillRowLabels extends SkillGlobalBadgeLabels {\n preview: string\n edit: string\n makePrivate: string\n publish: string\n delete: string\n /** Row tooltip; receives the skill name. */\n insertTitle: (name: string) => string\n}\n\nexport const DEFAULT_SKILL_ROW_LABELS: SkillRowLabels = {\n global: 'Global',\n globalTitle: 'Shared with everyone in the marketplace',\n preview: 'Preview',\n edit: 'Edit',\n makePrivate: 'Make private',\n publish: 'Publish to marketplace',\n delete: 'Delete',\n insertTitle: (name) => `Insert /${name} into the chat`,\n}\n\nexport interface SkillRowProps {\n name: string\n description?: string\n type?: string\n isGlobal?: boolean\n icon?: ReactNode\n /** Invoke the skill (inserts `/name` into the chat). */\n onInvoke: () => void\n onPreview: () => void\n /** Owner-only actions: omit to hide. */\n onEdit?: () => void\n onTogglePublish?: () => void\n onDelete?: () => void\n /** Destination of the skill; the name becomes a real link (modified clicks go to the browser). */\n href?: string\n labels?: Partial<SkillRowLabels>\n /** Overrides the default `skills-panel-row-{name}` id. */\n testId?: string\n className?: string\n}\n\n/** Compact two-line skill row for side panels. Actions are always visible. */\nexport function SkillRow({\n name,\n description,\n type,\n isGlobal = false,\n icon,\n onInvoke,\n onPreview,\n onEdit,\n onTogglePublish,\n onDelete,\n href,\n labels,\n testId,\n className,\n ...rest\n}: SkillRowProps & Omit<HTMLAttributes<HTMLDivElement>, keyof SkillRowProps | 'onClick'>) {\n const l = { ...DEFAULT_SKILL_ROW_LABELS, ...labels }\n return (\n <div\n {...rest}\n role=\"button\"\n tabIndex={0}\n className={cn(\n 'flex cursor-pointer items-center gap-2 px-4 py-2 hover:bg-accent/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring',\n className\n )}\n onClick={onInvoke}\n onKeyDown={activateOnKey(onInvoke)}\n data-testid={testIdOr(testId, { testId: `skills-panel-row-${name}` })}\n data-slot=\"skill-row\"\n title={l.insertTitle(name)}\n >\n {icon && <span className=\"shrink-0 text-primary [&>svg]:size-4\">{icon}</span>}\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex items-center gap-1.5\">\n {href ? (\n // The link owns plain + modified clicks; stop the row handler from double-firing.\n <span className=\"min-w-0\" onClick={(e) => e.stopPropagation()}>\n <ActionLink href={href} onSelect={onInvoke} className=\"truncate font-mono text-sm\">\n /{name}\n </ActionLink>\n </span>\n ) : (\n <span className=\"truncate font-mono text-sm\">/{name}</span>\n )}\n {type && type !== 'markdown' && <SkillTypeBadge type={type} />}\n {isGlobal && <SkillGlobalBadge labels={l} />}\n </div>\n {description && <div className=\"truncate text-xs text-muted-foreground\">{description}</div>}\n </div>\n <div className=\"flex shrink-0 items-center gap-0.5\">\n <SkillActionButton label={l.preview} onClick={() => onPreview()}>\n <Eye className=\"size-4\" />\n </SkillActionButton>\n {onEdit && (\n <SkillActionButton label={l.edit} onClick={() => onEdit()}>\n <Pencil className=\"size-4\" />\n </SkillActionButton>\n )}\n {onTogglePublish && (\n <SkillActionButton\n label={isGlobal ? l.makePrivate : l.publish}\n onClick={() => onTogglePublish()}\n >\n {isGlobal ? <Lock className=\"size-4\" /> : <Globe className=\"size-4 text-primary\" />}\n </SkillActionButton>\n )}\n {onDelete && (\n <SkillActionButton label={l.delete} onClick={() => onDelete()}>\n <Trash2 className=\"size-4 text-destructive\" />\n </SkillActionButton>\n )}\n </div>\n </div>\n )\n}\n"]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { CallStateMessage, publishCallStatus, useElementSize, useSpeakingIds, CallUserPill, useMirrorSelfView, WebinarEndConfirm, OnStageCheck, WebinarViewer, CallStageFrame, BackstageBanner, CallNotice, SpeakingNow, chatPermissionSection, MODE_LABEL, CallGrid, CallFocus, MinimisedCall, LobbyRequests, ConnectionOverlay, WebinarLiveChip, CallHeader, startVoiceLevels, startCompositeCapture, CaptionsStrip, CallControlBar, ControlGroup, ControlDivider, CallControlButton, MoreMenu, LeaveButton, ElapsedTime, useSpotlightId, useIsSpeaking, useVoiceLevel, CallTile, EncryptionStatusChip, useVoiceLevels, CallParticipants, CallSidePanel, MediaControl, RecordControl, RecordingStatusChip, TranscriptionStatusChip, QAPanel, PanelComposer, WebinarAudiencePanel } from './chunk-
|
|
3
|
-
import { MessageListRoot, MessageListEmpty, MessageRoot, MessageContent, MessageAuthor, MessageBubble, MessageBody } from './chunk-
|
|
2
|
+
import { CallStateMessage, publishCallStatus, useElementSize, useSpeakingIds, CallUserPill, useMirrorSelfView, WebinarEndConfirm, OnStageCheck, WebinarViewer, CallStageFrame, BackstageBanner, CallNotice, SpeakingNow, chatPermissionSection, MODE_LABEL, CallGrid, CallFocus, MinimisedCall, LobbyRequests, ConnectionOverlay, WebinarLiveChip, CallHeader, startVoiceLevels, startCompositeCapture, CaptionsStrip, CallControlBar, ControlGroup, ControlDivider, CallControlButton, MoreMenu, LeaveButton, ElapsedTime, useSpotlightId, useIsSpeaking, useVoiceLevel, CallTile, EncryptionStatusChip, useVoiceLevels, CallParticipants, CallSidePanel, MediaControl, RecordControl, RecordingStatusChip, TranscriptionStatusChip, QAPanel, PanelComposer, WebinarAudiencePanel } from './chunk-6GI3S7TN.js';
|
|
3
|
+
import { MessageListRoot, MessageListEmpty, MessageRoot, MessageContent, MessageAuthor, MessageBubble, MessageBody } from './chunk-7QJNWQ7O.js';
|
|
4
4
|
import { stageContentHeight, NOTICE_MS, pickSpotlight, initialsOf } from './chunk-6AMCMKTF.js';
|
|
5
|
-
import { useBlocksEnvironment } from './chunk-
|
|
5
|
+
import { useBlocksEnvironment } from './chunk-KOOC6VD3.js';
|
|
6
6
|
import { useState, useEffect, useMemo, useRef, useCallback } from 'react';
|
|
7
7
|
import { MediaDeviceFailure, DisconnectReason, Track, ConnectionState, ConnectionQuality } from 'livekit-client';
|
|
8
8
|
import { LiveKitRoom, RoomAudioRenderer, useRoomContext, useParticipants, useTracks, isTrackReference, useTrackToggle, useConnectionState, useLocalParticipant, useAudioPlayback, useParticipantTile, useIsMuted, useConnectionQualityIndicator, VideoTrack, ParticipantName, useIsEncrypted, useMediaDeviceSelect } from '@livekit/components-react';
|
|
@@ -1335,5 +1335,5 @@ function ConnectingOverlay() {
|
|
|
1335
1335
|
}
|
|
1336
1336
|
|
|
1337
1337
|
export { ConnectedCallRoom };
|
|
1338
|
-
//# sourceMappingURL=chunk-
|
|
1339
|
-
//# sourceMappingURL=chunk-
|
|
1338
|
+
//# sourceMappingURL=chunk-JGFBC66V.js.map
|
|
1339
|
+
//# sourceMappingURL=chunk-JGFBC66V.js.map
|