@datalayer/agent-runtimes 1.3.99 → 1.3.101
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-embed/chunks/{AgentDetails-DDIhoGCr.js → AgentDetails-CO9iM59C.js} +8 -8
- package/dist-embed/chunks/{AgentDetailsDialog-DQfL7V4R.js → AgentDetailsDialog-DmD6xm6k.js} +1 -1
- package/dist-embed/chunks/{AgentInspector-DaMCROPs.js → AgentInspector-kDMuvh45.js} +1 -1
- package/dist-embed/chunks/{AgentInspectorDialog-zGMiFR5z.js → AgentInspectorDialog-fT96Pb4Z.js} +1 -1
- package/dist-embed/chunks/Avatar-Dqz3ZWjZ.js +1 -0
- package/dist-embed/chunks/{CellSidebarExtension-DAzWlyRN.js → CellSidebarExtension-B-vao30u.js} +1 -1
- package/dist-embed/chunks/ChatView-CubqJum2.js +288 -0
- package/dist-embed/chunks/{ContextPie-D1eAig1P.js → ContextPie-ltoJ11q_.js} +1 -1
- package/dist-embed/chunks/DatalayerAgentBridge-BmJbZ2Lk.js +1 -0
- package/dist-embed/chunks/{DeckComponent-lNZXX0qi.js → DeckComponent-Fp6Vw8vN.js} +2 -2
- package/dist-embed/chunks/{DocumentView-BKzeMFBq.js → DocumentView-DKUbyyJg.js} +1 -1
- package/dist-embed/chunks/{EphemeralDocument-DKtocZ3W.js → EphemeralDocument-CgYPEfGC.js} +1 -1
- package/dist-embed/chunks/{EphemeralNotebook-oX8GrXS3.js → EphemeralNotebook-DvDbCKnr.js} +2 -2
- package/dist-embed/chunks/{ExcalidrawComponent-B8nrxRST.js → ExcalidrawComponent-BehqBpwC.js} +1 -1
- package/dist-embed/chunks/{ExcalidrawModal--K0C_WUL.js → ExcalidrawModal-B2sXbVJB.js} +1 -1
- package/dist-embed/chunks/{Flash-DTBPQ4yb.js → Flash-DdFxPtBI.js} +1 -1
- package/dist-embed/chunks/{JupyterLexicalExtension-CSMNnVr9.js → JupyterLexicalExtension-CUsjvchq.js} +9 -9
- package/dist-embed/chunks/{KernelVariables-D4s9Q5Ng.js → KernelVariables-BUmOt4yF.js} +2 -2
- package/dist-embed/chunks/{LexicalToolRegistry-_DH2qwSU.js → LexicalToolRegistry-DoZIM1lF.js} +1 -1
- package/dist-embed/chunks/{NotebookSkeleton-BTs2pK7B.js → NotebookSkeleton-D9WNoiWD.js} +1 -1
- package/dist-embed/chunks/{NotebookToolbar-B3BFk-WV.js → NotebookToolbar-C2_ZC9Ej.js} +1 -1
- package/dist-embed/chunks/{NotebookView-Dl-icjhk.js → NotebookView-BActuABH.js} +1 -1
- package/dist-embed/chunks/{SandboxDetailsDialog-22wdG0V-.js → SandboxDetailsDialog-C0afmOA7.js} +1 -1
- package/dist-embed/chunks/{SchemaForm-8b_dpfFK.js → SchemaForm-B351kd79.js} +1 -1
- package/dist-embed/chunks/{Toolbar-5oT8y_0g.js → Toolbar-B6ROXJ-2.js} +1 -1
- package/dist-embed/chunks/{YouTubePlugin-B6pgdGkU.js → YouTubePlugin-CqA-IwCx.js} +1 -1
- package/dist-embed/chunks/{abnfDiagram-VCTEODGH-CCRPX817.js → abnfDiagram-VCTEODGH-B2rXJzIG.js} +1 -1
- package/dist-embed/chunks/{abnfDiagram-VCTEODGH-Cc9J0KVQ.js → abnfDiagram-VCTEODGH-Celh8uSB.js} +1 -1
- package/dist-embed/chunks/{advancedFormat-IOT0HLTV.js → advancedFormat-9fBUVkZ9.js} +1 -1
- package/dist-embed/chunks/{ar-SA-G6X2FPQ2-DMIAxeqR.js → ar-SA-G6X2FPQ2-DhQlC4AZ.js} +1 -1
- package/dist-embed/chunks/{arc-CN-j54V6.js → arc-BcTWnMdT.js} +1 -1
- package/dist-embed/chunks/{architectureDiagram-5GKGNRK7-BN7cGeVb.js → architectureDiagram-5GKGNRK7-B1nGp-ab.js} +1 -1
- package/dist-embed/chunks/{architectureDiagram-5GKGNRK7-De77ckgV.js → architectureDiagram-5GKGNRK7-BtvjVASE.js} +1 -1
- package/dist-embed/chunks/{az-AZ-76LH7QW2-DMFqBzG7.js → az-AZ-76LH7QW2-CDvJeI6H.js} +1 -1
- package/dist-embed/chunks/{bg-BG-XCXSNQG7-DM9S3yhg.js → bg-BG-XCXSNQG7-B_2t7dwS.js} +1 -1
- package/dist-embed/chunks/{blockDiagram-868be97b-CoipBJ9g.js → blockDiagram-868be97b-Ctqgl81i.js} +1 -1
- package/dist-embed/chunks/{blockDiagram-I7D4REHJ-CYPYbqjz.js → blockDiagram-I7D4REHJ-B8cdJr95.js} +1 -1
- package/dist-embed/chunks/{blockDiagram-I7D4REHJ-Cs7aaFQh.js → blockDiagram-I7D4REHJ-BW7qedxT.js} +1 -1
- package/dist-embed/chunks/{bn-BD-2XOGV67Q-CK8aWMNS.js → bn-BD-2XOGV67Q-B7nTDj-4.js} +1 -1
- package/dist-embed/chunks/{c4Diagram-3f4bdde3-UwJoyMng.js → c4Diagram-3f4bdde3-0ruvDNdG.js} +1 -1
- package/dist-embed/chunks/{c4Diagram-7LVT6UL2-C0lopX7r.js → c4Diagram-7LVT6UL2-D_oBILZn.js} +1 -1
- package/dist-embed/chunks/{c4Diagram-7LVT6UL2-DjTuau65.js → c4Diagram-7LVT6UL2-ujGlIhtL.js} +1 -1
- package/dist-embed/chunks/{ca-ES-6MX7JW3Y-HslrBDJw.js → ca-ES-6MX7JW3Y-llJD_i9l.js} +1 -1
- package/dist-embed/chunks/channel-o04upGuP.js +1 -0
- package/dist-embed/chunks/{chunk-2Q5K7J3B-D4cqUYAT.js → chunk-2Q5K7J3B-CwLcj_PJ.js} +1 -1
- package/dist-embed/chunks/{chunk-2Q5K7J3B-BVMKDBY8.js → chunk-2Q5K7J3B-DcyPc2RX.js} +1 -1
- package/dist-embed/chunks/{chunk-5VM5RSS4-Xhg_BVSp.js → chunk-5VM5RSS4-BkRs7Fna.js} +1 -1
- package/dist-embed/chunks/{chunk-5VM5RSS4-CzKuJynz.js → chunk-5VM5RSS4-DMPUDDnV.js} +1 -1
- package/dist-embed/chunks/{chunk-F27PBJKO-Bt1Q0fHq.js → chunk-F27PBJKO-BzMwl8_q.js} +1 -1
- package/dist-embed/chunks/{chunk-F27PBJKO-BUIdY_4T.js → chunk-F27PBJKO-pG1_v10O.js} +1 -1
- package/dist-embed/chunks/{chunk-IMKFNOWR-DpgCTHeS.js → chunk-IMKFNOWR-Bf_-T_nx.js} +1 -1
- package/dist-embed/chunks/{chunk-IMKFNOWR-Cy5BRScb.js → chunk-IMKFNOWR-DJta09Af.js} +1 -1
- package/dist-embed/chunks/{chunk-JWPE2WC7-D3HcIpVU.js → chunk-JWPE2WC7-DC1wY1Ne.js} +1 -1
- package/dist-embed/chunks/{chunk-JWPE2WC7-Diz0u535.js → chunk-JWPE2WC7-SVeaXwdX.js} +1 -1
- package/dist-embed/chunks/{chunk-POPQ4Y6H-TbpwubqF.js → chunk-POPQ4Y6H-BHtANfps.js} +1 -1
- package/dist-embed/chunks/{chunk-POPQ4Y6H-CkAsArUm.js → chunk-POPQ4Y6H-Cl1LQa-a.js} +1 -1
- package/dist-embed/chunks/{chunk-SVP7TREG-_yTXReWy.js → chunk-SVP7TREG-0GCrhixv.js} +1 -1
- package/dist-embed/chunks/{chunk-SVP7TREG-Cw20-h7G.js → chunk-SVP7TREG-2ZP0qWw_.js} +1 -1
- package/dist-embed/chunks/{chunk-TICWLB2K-BPo6s9dS.js → chunk-TICWLB2K-BcegNV27.js} +1 -1
- package/dist-embed/chunks/{chunk-TICWLB2K-Df9jMrfB.js → chunk-TICWLB2K-CZYEMhEE.js} +1 -1
- package/dist-embed/chunks/{chunk-XXDRQBXY-CizfVebu.js → chunk-XXDRQBXY-DlOeT6YV.js} +1 -1
- package/dist-embed/chunks/{chunk-XXDRQBXY-CQCJr_te.js → chunk-XXDRQBXY-NxzmpYaR.js} +1 -1
- package/dist-embed/chunks/classDiagram-ZZMXUADV-BXZxncqO.js +1 -0
- package/dist-embed/chunks/classDiagram-ZZMXUADV-DnNeD34Z.js +1 -0
- package/dist-embed/chunks/{classDiagram-f62afe4f-BPLoDclf.js → classDiagram-f62afe4f-BD1_NCwH.js} +1 -1
- package/dist-embed/chunks/{classDiagram-v2-604399ef-ByLL4G6w.js → classDiagram-v2-604399ef-CxmFuhFb.js} +1 -1
- package/dist-embed/chunks/classDiagram-v2-VYDZK3BY-BXZxncqO.js +1 -0
- package/dist-embed/chunks/classDiagram-v2-VYDZK3BY-DnNeD34Z.js +1 -0
- package/dist-embed/chunks/{code-block-IT6T5CEO-CZdOZWWc.js → code-block-IT6T5CEO-U73VXKeS.js} +1 -1
- package/dist-embed/chunks/{component-CCqdcSgN.js → component-COjBgUMr.js} +1 -1
- package/dist-embed/chunks/{cose-bilkent-JH36ORCC-D1KcELJ6.js → cose-bilkent-JH36ORCC-71p0f-kJ.js} +1 -1
- package/dist-embed/chunks/{cose-bilkent-JH36ORCC-DI7Z4av-.js → cose-bilkent-JH36ORCC-B-Oq7xUI.js} +1 -1
- package/dist-embed/chunks/{createText-aed3d8b3-qEBV_LAF.js → createText-aed3d8b3-CmAg0yKd.js} +1 -1
- package/dist-embed/chunks/{cs-CZ-2BRQDIVT-D2WZgYFZ.js → cs-CZ-2BRQDIVT-Cm_uiYT0.js} +1 -1
- package/dist-embed/chunks/{cynefinDiagram-5FMLGOSQ-D_YG7HzO.js → cynefinDiagram-5FMLGOSQ-BdKZ7Rf2.js} +1 -1
- package/dist-embed/chunks/{cynefinDiagram-5FMLGOSQ-zmfGD2O2.js → cynefinDiagram-5FMLGOSQ-NbSU35d_.js} +1 -1
- package/dist-embed/chunks/{da-DK-5WZEPLOC-BZhZmwgX.js → da-DK-5WZEPLOC-B0lo6-wZ.js} +1 -1
- package/dist-embed/chunks/{dagre-GXQ25YYZ-BcPCMol6.js → dagre-GXQ25YYZ-C2NoVPqt.js} +1 -1
- package/dist-embed/chunks/{dagre-GXQ25YYZ-B-pyqr-3.js → dagre-GXQ25YYZ-Cq55WvUn.js} +1 -1
- package/dist-embed/chunks/{de-DE-XR44H4JA-CltJ8MP6.js → de-DE-XR44H4JA-DZrN-mJo.js} +1 -1
- package/dist-embed/chunks/{diagram-S7CK7UJ4-BmnkJuMF.js → diagram-S7CK7UJ4-CF7XYPSL.js} +1 -1
- package/dist-embed/chunks/{diagram-S7CK7UJ4-hhBlnYjW.js → diagram-S7CK7UJ4-Cq78dPrF.js} +1 -1
- package/dist-embed/chunks/{diagram-UQ7AKVKN-DPb8MAV_.js → diagram-UQ7AKVKN-BAi-uDI4.js} +1 -1
- package/dist-embed/chunks/{diagram-UQ7AKVKN-BN1Xspl9.js → diagram-UQ7AKVKN-DlMLGIyl.js} +1 -1
- package/dist-embed/chunks/{diagram-VSXAHHWV-TMd-7Wmo.js → diagram-VSXAHHWV-DRNadpAk.js} +1 -1
- package/dist-embed/chunks/{diagram-VSXAHHWV-H5G6hU8P.js → diagram-VSXAHHWV-jJir7z_u.js} +1 -1
- package/dist-embed/chunks/{diagram-VX7I27RA-BrkFbK0K.js → diagram-VX7I27RA-BR-L0h0N.js} +1 -1
- package/dist-embed/chunks/{diagram-VX7I27RA-DiYNlqCO.js → diagram-VX7I27RA-D_LZ7ttC.js} +1 -1
- package/dist-embed/chunks/{diagram-Z3DM3KII-DdG_O5h6.js → diagram-Z3DM3KII-CDeXGbsG.js} +1 -1
- package/dist-embed/chunks/{diagram-Z3DM3KII-D1vqz5Ew.js → diagram-Z3DM3KII-CwrX0YEI.js} +1 -1
- package/dist-embed/chunks/{document-zcF1SUIy.js → document-B3yvxR3p.js} +1 -1
- package/dist-embed/chunks/{drivecontents-Ckcp2ERS.js → drivecontents-BHpoQXqz.js} +1 -1
- package/dist-embed/chunks/{ebnfDiagram-PWID7BFC-PMrBUO9H.js → ebnfDiagram-PWID7BFC-DJ-S4zNP.js} +1 -1
- package/dist-embed/chunks/{ebnfDiagram-PWID7BFC-DMXmlTDY.js → ebnfDiagram-PWID7BFC-DktGPWnR.js} +1 -1
- package/dist-embed/chunks/{edges-b2856ca0-zod3pf5J.js → edges-b2856ca0-Dl_I1_Tl.js} +1 -1
- package/dist-embed/chunks/{el-GR-BZB4AONW-C70uQp6T.js → el-GR-BZB4AONW-C4D5ZbOc.js} +1 -1
- package/dist-embed/chunks/{erDiagram-5d81789a-D4Y_ua8V.js → erDiagram-5d81789a-Xh6XZPYE.js} +1 -1
- package/dist-embed/chunks/{erDiagram-RLTQ6QDP-COpQ5gec.js → erDiagram-RLTQ6QDP-CvKed34U.js} +1 -1
- package/dist-embed/chunks/{erDiagram-RLTQ6QDP-CZNZ_893.js → erDiagram-RLTQ6QDP-Dn5o1zp3.js} +1 -1
- package/dist-embed/chunks/{es-ES-U4NZUMDT-Bsjo8e08.js → es-ES-U4NZUMDT-D1yiS-ZI.js} +1 -1
- package/dist-embed/chunks/{eu-ES-A7QVB2H4-SVPEle78.js → eu-ES-A7QVB2H4-Zm3lJsL6.js} +1 -1
- package/dist-embed/chunks/{fa-IR-HGAKTJCU-CpgfdtSo.js → fa-IR-HGAKTJCU-Dhv2lg_O.js} +1 -1
- package/dist-embed/chunks/{fi-FI-Z5N7JZ37-0AIruYqI.js → fi-FI-Z5N7JZ37-QeFFEfyg.js} +1 -1
- package/dist-embed/chunks/{flowDb-185abca5-8a6sWoVq.js → flowDb-185abca5-DCi2LSG3.js} +1 -1
- package/dist-embed/chunks/{flowDiagram-1629c991-CCbNUYZl.js → flowDiagram-1629c991-1AzvuCps.js} +1 -1
- package/dist-embed/chunks/{flowDiagram-HODETNUW-lJ2Z3vFv.js → flowDiagram-HODETNUW-BjiuBN9U.js} +1 -1
- package/dist-embed/chunks/{flowDiagram-HODETNUW-CMUxuQ7T.js → flowDiagram-HODETNUW-BoOyNxJY.js} +1 -1
- package/dist-embed/chunks/{flowDiagram-v2-1d953310-CEF2SgZr.js → flowDiagram-v2-1d953310-DNyM8Btq.js} +1 -1
- package/dist-embed/chunks/{flowchart-elk-definition-6df44142-RHeVm2Vk.js → flowchart-elk-definition-6df44142-DucxAUTE.js} +1 -1
- package/dist-embed/chunks/{fr-FR-RHASNOE6-Pv7-mObZ.js → fr-FR-RHASNOE6-DjbRpOS6.js} +1 -1
- package/dist-embed/chunks/{ganttDiagram-3b0b3873-wEiuIWcM.js → ganttDiagram-3b0b3873-DLJCN1HW.js} +1 -1
- package/dist-embed/chunks/{ganttDiagram-EL5Y4UJY-BYMiax7v.js → ganttDiagram-EL5Y4UJY-D3bfGcnP.js} +1 -1
- package/dist-embed/chunks/{ganttDiagram-EL5Y4UJY-B5WlwMpk.js → ganttDiagram-EL5Y4UJY-us782PXd.js} +1 -1
- package/dist-embed/chunks/{gitGraphDiagram-WWUBYQGX-DYJQ-SIg.js → gitGraphDiagram-WWUBYQGX-BCKtisB_.js} +1 -1
- package/dist-embed/chunks/{gitGraphDiagram-WWUBYQGX-D8fVmtc9.js → gitGraphDiagram-WWUBYQGX-DpOwi5a_.js} +1 -1
- package/dist-embed/chunks/{gitGraphDiagram-f01e8bc2-DxDYtdab.js → gitGraphDiagram-f01e8bc2-B5VZrDor.js} +1 -1
- package/dist-embed/chunks/{gl-ES-HMX3MZ6V-CvVsi7_e.js → gl-ES-HMX3MZ6V-C-ev9dqC.js} +1 -1
- package/dist-embed/chunks/{hcl-BZsx9glM.js → hcl-hwLh11hJ.js} +1 -1
- package/dist-embed/chunks/{he-IL-6SHJWFNN-DR-LBFsb.js → he-IL-6SHJWFNN-DHoNpuA6.js} +1 -1
- package/dist-embed/chunks/{hi-IN-IWLTKZ5I-C-7x_jFk.js → hi-IN-IWLTKZ5I-JZJZPoWj.js} +1 -1
- package/dist-embed/chunks/{hu-HU-A5ZG7DT2-IRN8uyau.js → hu-HU-A5ZG7DT2-RzCikyBW.js} +1 -1
- package/dist-embed/chunks/{id-ID-SAP4L64H-B4acvKcJ.js → id-ID-SAP4L64H-Bn08nS9B.js} +1 -1
- package/dist-embed/chunks/{index-CzyPyDL7.js → index-1Ekpl0uC.js} +1 -1
- package/dist-embed/chunks/{index-9bae90f3-Byqvc_1J.js → index-9bae90f3-CqVDusDd.js} +1 -1
- package/dist-embed/chunks/{index-O05b1yOc.js → index-B1Egld01.js} +1 -1
- package/dist-embed/chunks/{index-CkcSokt2.js → index-B2dtLxcg.js} +1 -1
- package/dist-embed/chunks/{index-DrTOPxp7.js → index-B5MiaXUV.js} +1 -1
- package/dist-embed/chunks/{index-CML3IxdI.js → index-BOvsLtXe.js} +1 -1
- package/dist-embed/chunks/{index-C8PIFg_G.js → index-BUbwVG__.js} +4 -4
- package/dist-embed/chunks/{index-4cAPvEvs.js → index-BVAnvfbh.js} +1 -1
- package/dist-embed/chunks/{index-CBqbd-wN.js → index-BYofH50G.js} +1 -1
- package/dist-embed/chunks/{index-BvCNoy7C.js → index-Ba-Kv3yV.js} +1 -1
- package/dist-embed/chunks/{index-CFLgmNxm.js → index-BbsUSk_Q.js} +5 -5
- package/dist-embed/chunks/{index-DSqW3D0Y.js → index-Bs1pVq7E.js} +1 -1
- package/dist-embed/chunks/{index-CkHVrFkx.js → index-BtjXlYA2.js} +1 -1
- package/dist-embed/chunks/{index-qS3zZ9pt.js → index-C0iUgNwj.js} +2 -2
- package/dist-embed/chunks/{index-BNamX66v.js → index-C5xKtdLU.js} +13 -13
- package/dist-embed/chunks/{index-B3E7bXYK.js → index-CGscJbrF.js} +1 -1
- package/dist-embed/chunks/{index-CGSmsddM.js → index-Cjx6uk6z.js} +1 -1
- package/dist-embed/chunks/{index-DPibz6KG.js → index-CqKV027P.js} +1 -1
- package/dist-embed/chunks/{index-Dm4AUkEh.js → index-Cqur_rhw.js} +4 -4
- package/dist-embed/chunks/{index-CNx_s591.js → index-D7rnWGLu.js} +2 -2
- package/dist-embed/chunks/{index-qoRa7lfq.js → index-DCX_IqLg.js} +1 -1
- package/dist-embed/chunks/{index-BY3dr_Yb.js → index-DHVYKZ44.js} +6 -6
- package/dist-embed/chunks/{index-Begrz6qi.js → index-DIHzcHI1.js} +1 -1
- package/dist-embed/chunks/{index-NHZX5LFG.js → index-DJomc4za.js} +2 -2
- package/dist-embed/chunks/{index-DecCuztE.js → index-DLk6Znxv.js} +1 -1
- package/dist-embed/chunks/{index-BnowXurk.js → index-DYt0uAs-.js} +1 -1
- package/dist-embed/chunks/{index-kuItYEfY.js → index-DeYQGrTz.js} +8 -8
- package/dist-embed/chunks/{index-CDSBIJbt.js → index-DgnVcOqG.js} +1 -1
- package/dist-embed/chunks/{index-REv48H9T.js → index-DkY_OIbM.js} +1 -1
- package/dist-embed/chunks/{index-CaurkNaJ.js → index-DsX9nIHt.js} +1 -1
- package/dist-embed/chunks/{index-DKPjJ48t.js → index-DtYYe0Cw.js} +5 -5
- package/dist-embed/chunks/{index-CwFAduNg.js → index-aX9x7qni.js} +1 -1
- package/dist-embed/chunks/{index-74YA-L1Q.js → index-hib7vWC6.js} +1 -1
- package/dist-embed/chunks/{index-DYk4SAGn.js → index-p2ZGnxJX.js} +1 -1
- package/dist-embed/chunks/{index-CxSZtb0e.js → index-qzUKNibz.js} +1 -1
- package/dist-embed/chunks/{index-5Jo-nwZH.js → index-zr-b1Ds3.js} +1 -1
- package/dist-embed/chunks/{index.esm-DOzsYAbC.js → index.esm-CJLAKtMR.js} +1 -1
- package/dist-embed/chunks/{index.esm-BpcXmnkv.js → index.esm-DlPZAW-m.js} +1 -1
- package/dist-embed/chunks/{infoDiagram-27XIBGKW-CV8wJO56.js → infoDiagram-27XIBGKW-CB1VZqVi.js} +1 -1
- package/dist-embed/chunks/{infoDiagram-27XIBGKW-DNSrv0V4.js → infoDiagram-27XIBGKW-s9Lynuxa.js} +1 -1
- package/dist-embed/chunks/{infoDiagram-a29d40f1-E8D341jS.js → infoDiagram-a29d40f1-BSyalhIZ.js} +1 -1
- package/dist-embed/chunks/{ishikawaDiagram-5VMMS53U-BRfv59pP.js → ishikawaDiagram-5VMMS53U-BnyB2Q-F.js} +1 -1
- package/dist-embed/chunks/{ishikawaDiagram-5VMMS53U-DmZ-PvsF.js → ishikawaDiagram-5VMMS53U-D-b9zU7V.js} +1 -1
- package/dist-embed/chunks/{it-IT-JPQ66NNP-qA6LaRji.js → it-IT-JPQ66NNP-C2vJMuKM.js} +1 -1
- package/dist-embed/chunks/{ja-JP-DBVTYXUO-CHmLHAsr.js → ja-JP-DBVTYXUO-C8KOKQt9.js} +1 -1
- package/dist-embed/chunks/{journeyDiagram-3NMN7TZE-3jE8sGmW.js → journeyDiagram-3NMN7TZE-CZXsMFjb.js} +1 -1
- package/dist-embed/chunks/{journeyDiagram-3NMN7TZE-itNV2GBs.js → journeyDiagram-3NMN7TZE-Cv3HlmqD.js} +1 -1
- package/dist-embed/chunks/{journeyDiagram-95396277-Ba7ZL7z3.js → journeyDiagram-95396277-DnkmTBAP.js} +1 -1
- package/dist-embed/chunks/{kaa-6HZHGXH3-CLJsweAJ.js → kaa-6HZHGXH3-CvxJbmMB.js} +1 -1
- package/dist-embed/chunks/{kab-KAB-ZGHBKWFO-C5IJJXMt.js → kab-KAB-ZGHBKWFO-CQJhf9Nn.js} +1 -1
- package/dist-embed/chunks/{kanban-definition-UXKFOSKX-DraK1j1A.js → kanban-definition-UXKFOSKX-CZ0olp9z.js} +1 -1
- package/dist-embed/chunks/{kanban-definition-UXKFOSKX-DLigKnGA.js → kanban-definition-UXKFOSKX-LX8xxzUZ.js} +1 -1
- package/dist-embed/chunks/{kk-KZ-P5N5QNE5-CCaxEdfw.js → kk-KZ-P5N5QNE5-Dl6YC0GH.js} +1 -1
- package/dist-embed/chunks/{km-KH-HSX4SM5Z-My_ugj4j.js → km-KH-HSX4SM5Z-QYB-tJ4i.js} +1 -1
- package/dist-embed/chunks/{ko-KR-MTYHY66A-CHP-oWuX.js → ko-KR-MTYHY66A-D6yzBqJ5.js} +1 -1
- package/dist-embed/chunks/{ku-TR-6OUDTVRD-C52g9k3M.js → ku-TR-6OUDTVRD-C43l2362.js} +1 -1
- package/dist-embed/chunks/{layout-Dj1wRfbG.js → layout-DC1dN5QV.js} +1 -1
- package/dist-embed/chunks/{layout-DNotAWCv.js → layout-DfHqq7Y7.js} +1 -1
- package/dist-embed/chunks/{lexicalHooks-kxLGr2aO.js → lexicalHooks-PS_v7JyS.js} +1 -1
- package/dist-embed/chunks/{line-DuKLYeqR.js → line-BLnKxlFS.js} +1 -1
- package/dist-embed/chunks/{linear-Dg-Vn5Yx.js → linear-bDTv5gmU.js} +1 -1
- package/dist-embed/chunks/{lt-LT-XHIRWOB4-DcGTTOch.js → lt-LT-XHIRWOB4-BG1v5NwF.js} +1 -1
- package/dist-embed/chunks/{lv-LV-5QDEKY6T-Duj8GAiu.js → lv-LV-5QDEKY6T-CAwm1y_0.js} +1 -1
- package/dist-embed/chunks/{mermaid.core-C0gANONu.js → mermaid.core-BS7AlRW2.js} +3 -3
- package/dist-embed/chunks/{mermaid.core-BjUO4_Ly.js → mermaid.core-CLv-vCjs.js} +5 -5
- package/dist-embed/chunks/{mindmap-definition-YA3MSWOX-x4oa4R6v.js → mindmap-definition-YA3MSWOX-BUr4hM7e.js} +1 -1
- package/dist-embed/chunks/{mindmap-definition-YA3MSWOX-qCMgaWWi.js → mindmap-definition-YA3MSWOX-CwwLX5oJ.js} +1 -1
- package/dist-embed/chunks/{mindmap-definition-e4c1d938-Dy5nnqlt.js → mindmap-definition-e4c1d938-B4xy2oKe.js} +1 -1
- package/dist-embed/chunks/{model-D8diDS02.js → model-D7a10Ag0.js} +1 -1
- package/dist-embed/chunks/{mr-IN-CRQNXWMA-Cm1jPr2r.js → mr-IN-CRQNXWMA-DSk6q1fp.js} +1 -1
- package/dist-embed/chunks/{my-MM-5M5IBNSE-CfTzX-Wc.js → my-MM-5M5IBNSE-BRiKXulk.js} +1 -1
- package/dist-embed/chunks/{nb-NO-T6EIAALU-DdPxuBWB.js → nb-NO-T6EIAALU-CCDnctVd.js} +1 -1
- package/dist-embed/chunks/{nl-NL-IS3SIHDZ-eOHjxC9z.js → nl-NL-IS3SIHDZ-DwStD_Ch.js} +1 -1
- package/dist-embed/chunks/{nn-NO-6E72VCQL-DjAv0k1C.js → nn-NO-6E72VCQL-DNcfjETk.js} +1 -1
- package/dist-embed/chunks/{oc-FR-POXYY2M6-C0T2Uif7.js → oc-FR-POXYY2M6-BOjjS12P.js} +1 -1
- package/dist-embed/chunks/{pa-IN-N4M65BXN-BpX0p08b.js → pa-IN-N4M65BXN-B4y5cv2_.js} +1 -1
- package/dist-embed/chunks/{pegDiagram-XKGWAZYB-5jUoEdYP.js → pegDiagram-XKGWAZYB-CVtSqLfc.js} +1 -1
- package/dist-embed/chunks/{pegDiagram-XKGWAZYB-Smos5ynL.js → pegDiagram-XKGWAZYB-pdjxeh5M.js} +1 -1
- package/dist-embed/chunks/{percentages-BXMCSKIN-CmsGG1KO.js → percentages-BXMCSKIN-BpahO1D1.js} +6 -6
- package/dist-embed/chunks/{pica-DvcVbjys.js → pica-CyDhZ1sv.js} +1 -1
- package/dist-embed/chunks/{pie-CrFPIYc9.js → pie-CktNGOxo.js} +1 -1
- package/dist-embed/chunks/{pieDiagram-E7YTZNPT-D0vDTcE9.js → pieDiagram-E7YTZNPT-D2I7Fwff.js} +1 -1
- package/dist-embed/chunks/{pieDiagram-E7YTZNPT-COPe6fPR.js → pieDiagram-E7YTZNPT-JUXSTYxs.js} +1 -1
- package/dist-embed/chunks/{pieDiagram-c941bede-65qxkgxB.js → pieDiagram-c941bede-DWhYbfLm.js} +1 -1
- package/dist-embed/chunks/{pl-PL-T2D74RX3-ZCXWl-vX.js → pl-PL-T2D74RX3-CfuLoYHB.js} +1 -1
- package/dist-embed/chunks/{plugin-Ba5UScsV.js → plugin-DZPXm2dP.js} +1 -1
- package/dist-embed/chunks/{pt-BR-5N22H2LF-ClSeRSTv.js → pt-BR-5N22H2LF-Fk60PfdA.js} +1 -1
- package/dist-embed/chunks/{pt-PT-UZXXM6DQ-aI3iyXEY.js → pt-PT-UZXXM6DQ-SNAgJ5Vr.js} +1 -1
- package/dist-embed/chunks/{quadrantDiagram-AXDQQJYC-BoEDNaHO.js → quadrantDiagram-AXDQQJYC-Cw8ysOVS.js} +1 -1
- package/dist-embed/chunks/{quadrantDiagram-AXDQQJYC-DvWSIFQv.js → quadrantDiagram-AXDQQJYC-zTpXZRnN.js} +1 -1
- package/dist-embed/chunks/{quadrantDiagram-cf8b8fe0-DiapetF0.js → quadrantDiagram-cf8b8fe0-DH_dNEld.js} +1 -1
- package/dist-embed/chunks/{railroadDiagram-O6MQD6OU-LnW8lyjW.js → railroadDiagram-O6MQD6OU-CoMzy1dm.js} +1 -1
- package/dist-embed/chunks/{railroadDiagram-O6MQD6OU-XyeFPUFA.js → railroadDiagram-O6MQD6OU-DrPiQVOZ.js} +1 -1
- package/dist-embed/chunks/{requirementDiagram-53bda41b-NVu0cGYm.js → requirementDiagram-53bda41b-C7A0I5GT.js} +1 -1
- package/dist-embed/chunks/{requirementDiagram-BXWQKSXE-wRDyhjvw.js → requirementDiagram-BXWQKSXE-B9trBsts.js} +1 -1
- package/dist-embed/chunks/{requirementDiagram-BXWQKSXE-CtpxXHY5.js → requirementDiagram-BXWQKSXE-BLQtV6jv.js} +1 -1
- package/dist-embed/chunks/{ro-RO-JPDTUUEW--yP8WH1q.js → ro-RO-JPDTUUEW-YkxpKkWn.js} +1 -1
- package/dist-embed/chunks/{round-BYqUt1IP.js → round-DymJ-a3G.js} +1 -1
- package/dist-embed/chunks/{ru-RU-B4JR7IUQ-S6Dpc8ej.js → ru-RU-B4JR7IUQ-CaI1rtvc.js} +1 -1
- package/dist-embed/chunks/{sankeyDiagram-P5KCCOFB-CWsU1zz9.js → sankeyDiagram-P5KCCOFB-Cvxdoq6D.js} +1 -1
- package/dist-embed/chunks/{sankeyDiagram-P5KCCOFB-CkYpEh5o.js → sankeyDiagram-P5KCCOFB-Dwkp-ggM.js} +1 -1
- package/dist-embed/chunks/{sankeyDiagram-c3ef121a-D9xzSD-8.js → sankeyDiagram-c3ef121a-DeaFXwir.js} +1 -1
- package/dist-embed/chunks/{sequenceDiagram-82a5b84f-DDCEPqNh.js → sequenceDiagram-82a5b84f-fDhOBU7A.js} +1 -1
- package/dist-embed/chunks/{sequenceDiagram-WJ2MYXX4-CafPjz3k.js → sequenceDiagram-WJ2MYXX4-Bj9ikwM4.js} +1 -1
- package/dist-embed/chunks/{sequenceDiagram-WJ2MYXX4-D-ytwLdK.js → sequenceDiagram-WJ2MYXX4-Bp1oVZMs.js} +1 -1
- package/dist-embed/chunks/{sessions-BeSpcqDy.js → sessions-ZDYLkdi_.js} +2 -2
- package/dist-embed/chunks/{si-LK-N5RQ5JYF-Bh0-Jjfq.js → si-LK-N5RQ5JYF-CQz29xmh.js} +1 -1
- package/dist-embed/chunks/{sizeCapture-INFHLROL-FMWRuKPu.js → sizeCapture-INFHLROL-CMlzK5MC.js} +1 -1
- package/dist-embed/chunks/{sizeCapture-INFHLROL-5RviLAUl.js → sizeCapture-INFHLROL-ohpYHAcp.js} +1 -1
- package/dist-embed/chunks/{sk-SK-C5VTKIMK-TXk80Xbq.js → sk-SK-C5VTKIMK-CZg7PVzd.js} +1 -1
- package/dist-embed/chunks/{sl-SI-NN7IZMDC-DSdu_b8Y.js → sl-SI-NN7IZMDC-D-EjMWyZ.js} +1 -1
- package/dist-embed/chunks/{stateDiagram-43e79a5f-Bd0gJvTB.js → stateDiagram-43e79a5f-BFR_IH5W.js} +1 -1
- package/dist-embed/chunks/{stateDiagram-D77RDMKH-CsoLoQdw.js → stateDiagram-D77RDMKH-DpOxo9yl.js} +1 -1
- package/dist-embed/chunks/{stateDiagram-D77RDMKH-anfAB1CI.js → stateDiagram-D77RDMKH-zWegA-O8.js} +1 -1
- package/dist-embed/chunks/{stateDiagram-v2-2041ed4f-Db6Ltf2q.js → stateDiagram-v2-2041ed4f-8TkUHVMG.js} +1 -1
- package/dist-embed/chunks/stateDiagram-v2-MP3YSRHH-BZAMPWr5.js +1 -0
- package/dist-embed/chunks/stateDiagram-v2-MP3YSRHH-DrTAroDB.js +1 -0
- package/dist-embed/chunks/{styles-455b33cd-DjZhq6rj.js → styles-455b33cd-Befvug13.js} +1 -1
- package/dist-embed/chunks/{styles-f932cba9-s39yhAcA.js → styles-f932cba9-eBHnVQaE.js} +1 -1
- package/dist-embed/chunks/{styles-fcc2142b-QdZsB9tg.js → styles-fcc2142b-BsjaKqGS.js} +1 -1
- package/dist-embed/chunks/{subset-shared.chunk-B1SUTh3f.js → subset-shared.chunk-BIvvzzX2.js} +1 -1
- package/dist-embed/chunks/{subset-worker.chunk-B24w3nw0.js → subset-worker.chunk-DGgI6iRY.js} +1 -1
- package/dist-embed/chunks/{sv-SE-XGPEYMSR-CT10IJuV.js → sv-SE-XGPEYMSR-D8CsNMON.js} +1 -1
- package/dist-embed/chunks/{svgDrawCommon-148a3cd9-B38JgGfg.js → svgDrawCommon-148a3cd9-BxzL4r3S.js} +1 -1
- package/dist-embed/chunks/{swimlanes-42K2YHIH-CPp_dpjU.js → swimlanes-42K2YHIH-B28jcYJ_.js} +1 -1
- package/dist-embed/chunks/{swimlanes-42K2YHIH-DHlC5c8j.js → swimlanes-42K2YHIH-BZP55aw9.js} +1 -1
- package/dist-embed/chunks/swimlanesDiagram-VR7AAH4N-BIQqrjYQ.js +8 -0
- package/dist-embed/chunks/swimlanesDiagram-VR7AAH4N-hQM0t42-.js +8 -0
- package/dist-embed/chunks/{ta-IN-2NMHFXQM-HSbClJ74.js → ta-IN-2NMHFXQM-CvuxKO7t.js} +1 -1
- package/dist-embed/chunks/{th-TH-HPSO5L25-B2hciv_c.js → th-TH-HPSO5L25-NgQJigwq.js} +1 -1
- package/dist-embed/chunks/{timeline-definition-24CTP7MA-CKyPT4PB.js → timeline-definition-24CTP7MA-CficHg2r.js} +1 -1
- package/dist-embed/chunks/{timeline-definition-24CTP7MA-D9gzYUYy.js → timeline-definition-24CTP7MA-De_e-NOu.js} +1 -1
- package/dist-embed/chunks/{timeline-definition-7545f45a-BWnp7J60.js → timeline-definition-7545f45a-DqfcISSR.js} +1 -1
- package/dist-embed/chunks/{tokens-C8cD27Uo.js → tokens-B5KQP74f.js} +1 -1
- package/dist-embed/chunks/{tr-TR-DEFEU3FU-BWwXpAYZ.js → tr-TR-DEFEU3FU-eu9-qLmi.js} +1 -1
- package/dist-embed/chunks/{uk-UA-QMV73CPH-Dj7E5VqN.js → uk-UA-QMV73CPH-CbjmuLVL.js} +1 -1
- package/dist-embed/chunks/{venn.esm-DCEZyyO1.js → venn.esm-QMuJZ7sT.js} +1 -1
- package/dist-embed/chunks/{vennDiagram-4TSXK5OY-bbhu-7hk.js → vennDiagram-4TSXK5OY-DIL1dW8w.js} +1 -1
- package/dist-embed/chunks/{vennDiagram-4TSXK5OY-F_ETYUiw.js → vennDiagram-4TSXK5OY-DmLAzLnR.js} +1 -1
- package/dist-embed/chunks/{vi-VN-M7AON7JQ-PsrEnccg.js → vi-VN-M7AON7JQ-u84yOuJ-.js} +1 -1
- package/dist-embed/chunks/{wardleyDiagram-VM6X3IG4-DOvpFGv3.js → wardleyDiagram-VM6X3IG4-Cb_52SC-.js} +1 -1
- package/dist-embed/chunks/{wardleyDiagram-VM6X3IG4-3pZGhbDZ.js → wardleyDiagram-VM6X3IG4-DfZqkrsZ.js} +1 -1
- package/dist-embed/chunks/{xychartDiagram-3f383b91-DZLtCOMM.js → xychartDiagram-3f383b91-DGvBSaRz.js} +1 -1
- package/dist-embed/chunks/{xychartDiagram-S5SC5T6Z-CFYS5J-K.js → xychartDiagram-S5SC5T6Z-6OM1k4o6.js} +1 -1
- package/dist-embed/chunks/{xychartDiagram-S5SC5T6Z-DSYuijxd.js → xychartDiagram-S5SC5T6Z-xYHAmg9u.js} +1 -1
- package/dist-embed/chunks/{zh-CN-LNUGB5OW-BaQu8uAz.js → zh-CN-LNUGB5OW-ojkSgl-t.js} +1 -1
- package/dist-embed/chunks/{zh-HK-E62DVLB3-BidFwl7n.js → zh-HK-E62DVLB3-C6M89-Da.js} +1 -1
- package/dist-embed/chunks/{zh-TW-RAJ6MFWO-Bm6PhMc5.js → zh-TW-RAJ6MFWO-BaTtFORh.js} +1 -1
- package/dist-embed/datalayer-app-main.js +19 -19
- package/lib/apps/apps/AppRenderer.d.ts +12 -0
- package/lib/apps/apps/AppRenderer.js +38 -5
- package/lib/apps/apps/visitorToken.d.ts +29 -0
- package/lib/apps/apps/visitorToken.js +57 -0
- package/lib/apps/plugins/agents/DatalayerAgentBridge.js +71 -2
- package/lib/apps/plugins/agents/switchable.js +3 -2
- package/lib/apps/plugins/chat/ChatView.js +11 -1
- package/package.json +1 -1
- package/scripts/record-scene-checks.py +80 -20
- package/dist-embed/chunks/Avatar-VyZWLCFE.js +0 -1
- package/dist-embed/chunks/ChatView-Bqiq0mvd.js +0 -288
- package/dist-embed/chunks/DatalayerAgentBridge-BhxfUyb7.js +0 -1
- package/dist-embed/chunks/channel-gqCIn1TE.js +0 -1
- package/dist-embed/chunks/classDiagram-ZZMXUADV-BmkR_bZ0.js +0 -1
- package/dist-embed/chunks/classDiagram-ZZMXUADV-Db5VIrmE.js +0 -1
- package/dist-embed/chunks/classDiagram-v2-VYDZK3BY-BmkR_bZ0.js +0 -1
- package/dist-embed/chunks/classDiagram-v2-VYDZK3BY-Db5VIrmE.js +0 -1
- package/dist-embed/chunks/stateDiagram-v2-MP3YSRHH-CHSJtozR.js +0 -1
- package/dist-embed/chunks/stateDiagram-v2-MP3YSRHH-Grhw6_l4.js +0 -1
- package/dist-embed/chunks/swimlanesDiagram-VR7AAH4N-DA8nqWDf.js +0 -8
- package/dist-embed/chunks/swimlanesDiagram-VR7AAH4N-PPX_kI6A.js +0 -8
|
@@ -252,5 +252,17 @@ export declare const DATALAYER_BOOTSTRAP_AGENTSPEC = "example-simple";
|
|
|
252
252
|
* Naming none, it wears the theme's own colours: nothing is laid.
|
|
253
253
|
*/
|
|
254
254
|
export declare function appThemeOverrides(app: AppSpec): ThemeOverrides | undefined;
|
|
255
|
+
/**
|
|
256
|
+
* The agent an application's chat speaks to (STUDIO D-15): its own, made
|
|
257
|
+
* under its id — or, for a visitor without an account, the one of the
|
|
258
|
+
* visitors' runtime their token reaches (`visitorAgentOf`): an example's by
|
|
259
|
+
* its id, an application at its address by `at-<slug>`. A token for another
|
|
260
|
+
* example than the one drawn is a problem said in place, never spoken with.
|
|
261
|
+
*/
|
|
262
|
+
export declare function appAgentOf(app: Pick<AppSpec, 'id'>, visitorsApp?: string): {
|
|
263
|
+
agentId: string;
|
|
264
|
+
} | {
|
|
265
|
+
problem: string;
|
|
266
|
+
};
|
|
255
267
|
export declare function AppRenderer({ app, plugins, instance, onPresence, onSaying, paused, sidebar, computer, frame, page, pluginsOff, language, ...embed }: AppRendererProps): React.JSX.Element;
|
|
256
268
|
export default AppRenderer;
|
|
@@ -73,6 +73,7 @@ import { ChatLanguage } from '../../chat/ChatLanguage';
|
|
|
73
73
|
import { defineAppRuntimePlugin } from './AppRuntimePlugins';
|
|
74
74
|
import { hasFolderModules } from './customComponents';
|
|
75
75
|
import { appPluginPair } from './pluginPair';
|
|
76
|
+
import { visitorAgentOf } from './visitorToken';
|
|
76
77
|
/** The id of an agent or a Cog, without its version. */
|
|
77
78
|
export const agentIdOf = (app) => {
|
|
78
79
|
const reference = app.agent || app.team;
|
|
@@ -332,6 +333,30 @@ export function appThemeOverrides(app) {
|
|
|
332
333
|
}
|
|
333
334
|
: undefined;
|
|
334
335
|
}
|
|
336
|
+
/**
|
|
337
|
+
* The agent an application's chat speaks to (STUDIO D-15): its own, made
|
|
338
|
+
* under its id — or, for a visitor without an account, the one of the
|
|
339
|
+
* visitors' runtime their token reaches (`visitorAgentOf`): an example's by
|
|
340
|
+
* its id, an application at its address by `at-<slug>`. A token for another
|
|
341
|
+
* example than the one drawn is a problem said in place, never spoken with.
|
|
342
|
+
*/
|
|
343
|
+
export function appAgentOf(app, visitorsApp) {
|
|
344
|
+
if (!visitorsApp) {
|
|
345
|
+
return { agentId: app.id };
|
|
346
|
+
}
|
|
347
|
+
try {
|
|
348
|
+
const agentId = visitorAgentOf(visitorsApp);
|
|
349
|
+
if (!visitorsApp.startsWith('at:') && agentId !== app.id) {
|
|
350
|
+
return {
|
|
351
|
+
problem: `This visitor’s token is for ${visitorsApp}, not for ${app.id}.`,
|
|
352
|
+
};
|
|
353
|
+
}
|
|
354
|
+
return { agentId };
|
|
355
|
+
}
|
|
356
|
+
catch (error) {
|
|
357
|
+
return { problem: error instanceof Error ? error.message : String(error) };
|
|
358
|
+
}
|
|
359
|
+
}
|
|
335
360
|
export function AppRenderer({ app, plugins = NO_PLUGINS, instance, onPresence, onSaying, paused = false, sidebar = false, computer = false, frame = false, page, pluginsOff, language, ...embed }) {
|
|
336
361
|
/*
|
|
337
362
|
* The kind's plugins, made once per application. `LoopEmbed` rebuilds its
|
|
@@ -423,19 +448,27 @@ export function AppRenderer({ app, plugins = NO_PLUGINS, instance, onPresence, o
|
|
|
423
448
|
const themeOverrides = useMemo(() => appThemeOverrides(app),
|
|
424
449
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
425
450
|
[accent]);
|
|
426
|
-
|
|
427
|
-
|
|
451
|
+
const agent = appAgentOf(app, embed.datalayerVisitors?.app);
|
|
452
|
+
const problem = 'problem' in preset
|
|
453
|
+
? preset.problem
|
|
454
|
+
: 'problem' in agent
|
|
455
|
+
? agent.problem
|
|
456
|
+
: undefined;
|
|
457
|
+
if ('problem' in preset || 'problem' in agent) {
|
|
458
|
+
return (_jsx("div", { role: "status", style: { padding: 16 }, children: problem }));
|
|
428
459
|
}
|
|
429
460
|
return (
|
|
430
461
|
// The chat's own words in the person's language too (P-26): the host's,
|
|
431
462
|
// else the browser's.
|
|
432
463
|
_jsx(ChatLanguage, { language: language, children: _jsx(LoopEmbed
|
|
433
464
|
// The application's own agent: created under its id, so that its
|
|
434
|
-
// spec is applied to an agent of its own, never to the one it extends
|
|
465
|
+
// spec is applied to an agent of its own, never to the one it extends
|
|
466
|
+
// — or, for a visitor, the one their token reaches (D-15).
|
|
435
467
|
, {
|
|
436
468
|
// The application's own agent: created under its id, so that its
|
|
437
|
-
// spec is applied to an agent of its own, never to the one it extends
|
|
438
|
-
|
|
469
|
+
// spec is applied to an agent of its own, never to the one it extends
|
|
470
|
+
// — or, for a visitor, the one their token reaches (D-15).
|
|
471
|
+
agentId: agent.agentId, ...preset.workspace, ...(frame
|
|
439
472
|
? {
|
|
440
473
|
frameTitle: [app.emoji, shown.name].filter(Boolean).join(' '),
|
|
441
474
|
}
|
|
@@ -33,3 +33,32 @@ export declare function useVisitorToken(visitors: DatalayerVisitors | undefined)
|
|
|
33
33
|
token?: string;
|
|
34
34
|
error?: string;
|
|
35
35
|
};
|
|
36
|
+
/**
|
|
37
|
+
* The agent of the visitors' runtime a visitor's token reaches, as the
|
|
38
|
+
* runtime names it (`agent_of` in `agent_runtimes.loop.apps.visitors`): an
|
|
39
|
+
* example's by its id, an application at its address by `at-<slug>`. The
|
|
40
|
+
* chat speaks to that agent and to no other: the token reaches no other.
|
|
41
|
+
*
|
|
42
|
+
* @throws When `app` is an address with no valid slug.
|
|
43
|
+
*/
|
|
44
|
+
export declare function visitorAgentOf(app: string): string;
|
|
45
|
+
/** The agent the visitors' runtime holds for a visitor, and the application it runs. */
|
|
46
|
+
export type VisitorAgent = {
|
|
47
|
+
agent: string;
|
|
48
|
+
appId: string;
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Ask the visitors' runtime for the agent a visitor's token names, made
|
|
52
|
+
* there if it is not (`POST /api/v1/apps/visitors/agent`, STUDIO D-15): an
|
|
53
|
+
* application at its address has its agent made as it is first opened, so
|
|
54
|
+
* that the runtime holds the application before the page follows it.
|
|
55
|
+
* Throws with the runtime's sentence when it refuses.
|
|
56
|
+
*/
|
|
57
|
+
export declare function fetchVisitorAgent(runtimeUrl: string, token: string, fetcher?: typeof fetch): Promise<VisitorAgent>;
|
|
58
|
+
/**
|
|
59
|
+
* The application's agent made on the visitors' runtime for this visitor,
|
|
60
|
+
* and checked to be the one the page runs: the agent the token reaches
|
|
61
|
+
* (`visitorAgentOf`) running the application of `appId`. Throws with the
|
|
62
|
+
* sentence a visitor is told otherwise.
|
|
63
|
+
*/
|
|
64
|
+
export declare function ensureVisitorAgent(visitors: DatalayerVisitors, appId: string, fetcher?: typeof fetch): Promise<VisitorAgent>;
|
|
@@ -112,3 +112,60 @@ export function useVisitorToken(visitors) {
|
|
|
112
112
|
}, [app, inferenceUrl]);
|
|
113
113
|
return state;
|
|
114
114
|
}
|
|
115
|
+
/** What a token for an application at its address names: `at:<slug>`. */
|
|
116
|
+
const AT_PREFIX = 'at:';
|
|
117
|
+
/** The slug of an address, as ai-agents allows it. */
|
|
118
|
+
const SLUG = /^[a-z0-9][a-z0-9-]{0,99}$/;
|
|
119
|
+
/**
|
|
120
|
+
* The agent of the visitors' runtime a visitor's token reaches, as the
|
|
121
|
+
* runtime names it (`agent_of` in `agent_runtimes.loop.apps.visitors`): an
|
|
122
|
+
* example's by its id, an application at its address by `at-<slug>`. The
|
|
123
|
+
* chat speaks to that agent and to no other: the token reaches no other.
|
|
124
|
+
*
|
|
125
|
+
* @throws When `app` is an address with no valid slug.
|
|
126
|
+
*/
|
|
127
|
+
export function visitorAgentOf(app) {
|
|
128
|
+
if (!app.startsWith(AT_PREFIX)) {
|
|
129
|
+
return app;
|
|
130
|
+
}
|
|
131
|
+
const slug = app.slice(AT_PREFIX.length);
|
|
132
|
+
if (!SLUG.test(slug)) {
|
|
133
|
+
throw new Error(`“${app}” is no application’s address.`);
|
|
134
|
+
}
|
|
135
|
+
return `at-${slug}`;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Ask the visitors' runtime for the agent a visitor's token names, made
|
|
139
|
+
* there if it is not (`POST /api/v1/apps/visitors/agent`, STUDIO D-15): an
|
|
140
|
+
* application at its address has its agent made as it is first opened, so
|
|
141
|
+
* that the runtime holds the application before the page follows it.
|
|
142
|
+
* Throws with the runtime's sentence when it refuses.
|
|
143
|
+
*/
|
|
144
|
+
export async function fetchVisitorAgent(runtimeUrl, token, fetcher = fetch) {
|
|
145
|
+
const base = runtimeUrl.replace(/\/+$/, '');
|
|
146
|
+
const response = await fetcher(`${base}/api/v1/apps/visitors/agent`, {
|
|
147
|
+
method: 'POST',
|
|
148
|
+
headers: { Authorization: `Bearer ${token}` },
|
|
149
|
+
});
|
|
150
|
+
const body = (await response.json().catch(() => ({})));
|
|
151
|
+
if (!response.ok || !body.agent || !body.app_id) {
|
|
152
|
+
throw new Error(body.detail ||
|
|
153
|
+
`The visitors’ runtime at ${base} did not make the application’s agent (HTTP ${response.status}).`);
|
|
154
|
+
}
|
|
155
|
+
return { agent: body.agent, appId: body.app_id };
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* The application's agent made on the visitors' runtime for this visitor,
|
|
159
|
+
* and checked to be the one the page runs: the agent the token reaches
|
|
160
|
+
* (`visitorAgentOf`) running the application of `appId`. Throws with the
|
|
161
|
+
* sentence a visitor is told otherwise.
|
|
162
|
+
*/
|
|
163
|
+
export async function ensureVisitorAgent(visitors, appId, fetcher = fetch) {
|
|
164
|
+
const minted = await fetchVisitorToken(visitors.inferenceUrl, visitors.app, keptVisitorId(), fetcher);
|
|
165
|
+
const held = await fetchVisitorAgent(visitors.url, minted.token, fetcher);
|
|
166
|
+
const expected = visitorAgentOf(visitors.app);
|
|
167
|
+
if (held.agent !== expected || held.appId !== appId) {
|
|
168
|
+
throw new Error(`The visitors’ runtime holds ${held.appId} as ${held.agent} for “${visitors.app}”, not ${appId} as ${expected}: reload the page.`);
|
|
169
|
+
}
|
|
170
|
+
return held;
|
|
171
|
+
}
|
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
3
3
|
* Distributed under the terms of the Modified BSD License.
|
|
4
4
|
*/
|
|
5
|
-
import { useEffect, useMemo } from 'react';
|
|
5
|
+
import { useEffect, useMemo, useState } from 'react';
|
|
6
6
|
import { useReactorPlatform, useSignalValue } from '@datalayer/reactor/react';
|
|
7
7
|
import { useAgentRuntimes } from '../../../hooks/useAgentRuntimes';
|
|
8
|
+
import { ensureVisitorAgent } from '../../apps/visitorToken';
|
|
8
9
|
import { AGENTSPECS } from '../../../specs/agents/agents';
|
|
9
10
|
import { IDLE_SANDBOX_TARGET_SIGNAL } from '../../core';
|
|
10
11
|
import { appLaunchOf } from './appLaunch';
|
|
@@ -34,6 +35,55 @@ export function DatalayerAgentBridge() {
|
|
|
34
35
|
const service = useOptionalSandboxService();
|
|
35
36
|
const target = useSignalValue(service?.target ?? IDLE_SANDBOX_TARGET_SIGNAL);
|
|
36
37
|
const onDatalayer = target === 'datalayer';
|
|
38
|
+
/*
|
|
39
|
+
* On the visitors' runtime, the application's agent made before the page
|
|
40
|
+
* follows it (STUDIO D-15): an application at its address has none until
|
|
41
|
+
* a visitor opens it, and its runtime holds no plugin of it until then —
|
|
42
|
+
* so the page's plugin of the pair (F-15) would stand down and its chat
|
|
43
|
+
* have nothing to speak to. Asked with a visitor's token, the runtime
|
|
44
|
+
* makes it and says which agent it is; the runtime is reported only then,
|
|
45
|
+
* and its refusal is said in its sentence.
|
|
46
|
+
*/
|
|
47
|
+
const visitorAppId = createPayload?.app_spec
|
|
48
|
+
?.id;
|
|
49
|
+
const [visitorAgent, setVisitorAgent] = useState({});
|
|
50
|
+
useEffect(() => {
|
|
51
|
+
setVisitorAgent({});
|
|
52
|
+
if (!visitors || !onDatalayer) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
if (typeof visitorAppId !== 'string' || !visitorAppId) {
|
|
56
|
+
setVisitorAgent({
|
|
57
|
+
error: 'A conversation without an account runs an application: none was given.',
|
|
58
|
+
});
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
let current = true;
|
|
62
|
+
ensureVisitorAgent(visitors, visitorAppId)
|
|
63
|
+
.then(() => {
|
|
64
|
+
if (current) {
|
|
65
|
+
setVisitorAgent({ ready: true });
|
|
66
|
+
}
|
|
67
|
+
})
|
|
68
|
+
.catch((error) => {
|
|
69
|
+
if (current) {
|
|
70
|
+
setVisitorAgent({
|
|
71
|
+
error: error instanceof Error ? error.message : String(error),
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
return () => {
|
|
76
|
+
current = false;
|
|
77
|
+
};
|
|
78
|
+
// By what it is, not by the host's object.
|
|
79
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
80
|
+
}, [
|
|
81
|
+
visitors?.url,
|
|
82
|
+
visitors?.app,
|
|
83
|
+
visitors?.inferenceUrl,
|
|
84
|
+
visitorAppId,
|
|
85
|
+
onDatalayer,
|
|
86
|
+
]);
|
|
37
87
|
/*
|
|
38
88
|
* The agent hook, asked for a spec.
|
|
39
89
|
*
|
|
@@ -91,6 +141,16 @@ export function DatalayerAgentBridge() {
|
|
|
91
141
|
if (!service || !onDatalayer) {
|
|
92
142
|
return;
|
|
93
143
|
}
|
|
144
|
+
if (visitors) {
|
|
145
|
+
if (visitorAgent.error) {
|
|
146
|
+
service.setState('error', visitorAgent.error);
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
if (!visitorAgent.ready) {
|
|
150
|
+
service.setState('starting');
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
94
154
|
if (already) {
|
|
95
155
|
service.report({
|
|
96
156
|
variant: 'datalayer',
|
|
@@ -135,7 +195,16 @@ export function DatalayerAgentBridge() {
|
|
|
135
195
|
// host's server for an agent that is not on it.
|
|
136
196
|
agent_base_url: runtime.agentBaseUrl,
|
|
137
197
|
});
|
|
138
|
-
}, [
|
|
198
|
+
}, [
|
|
199
|
+
service,
|
|
200
|
+
onDatalayer,
|
|
201
|
+
runtime,
|
|
202
|
+
status,
|
|
203
|
+
error,
|
|
204
|
+
already,
|
|
205
|
+
visitors,
|
|
206
|
+
visitorAgent,
|
|
207
|
+
]);
|
|
139
208
|
return null;
|
|
140
209
|
}
|
|
141
210
|
export default DatalayerAgentBridge;
|
|
@@ -266,8 +266,9 @@ export function createSwitchableSandboxService({ serverUrl, initialTarget = 'loc
|
|
|
266
266
|
report(next) {
|
|
267
267
|
active.peek().report(next);
|
|
268
268
|
},
|
|
269
|
-
setState(state) {
|
|
270
|
-
|
|
269
|
+
setState(state, reason) {
|
|
270
|
+
// With its reason: the chat says why there is nothing to talk to.
|
|
271
|
+
active.peek().setState(state, reason);
|
|
271
272
|
},
|
|
272
273
|
execute(code) {
|
|
273
274
|
return active.peek().execute(code);
|
|
@@ -1187,7 +1187,17 @@ export default function ChatView({ workspace }) {
|
|
|
1187
1187
|
* An application's session checks who is calling (LOOP R-32, R-04): its
|
|
1188
1188
|
* chat says so with the person's token. The embed hands its own.
|
|
1189
1189
|
*/
|
|
1190
|
-
|
|
1190
|
+
/*
|
|
1191
|
+
* Whether its host runs an application here, said by the host — not by
|
|
1192
|
+
* whether the application's plugin is up: while its runtime does not hold
|
|
1193
|
+
* it, its page plugin stands down (F-15), and its chat is then never sent
|
|
1194
|
+
* to the runtime's bare agent route — on the visitors' runtime one that is
|
|
1195
|
+
* not published (STUDIO D-15). It speaks to the application's session API,
|
|
1196
|
+
* whose refusal says why.
|
|
1197
|
+
*/
|
|
1198
|
+
const runsApp = Boolean(blueprintTurn?.createPayload?.app_spec ||
|
|
1199
|
+
reactor.getConfig(AGENTS_PLUGIN_NAME)?.datalayerCreatePayload
|
|
1200
|
+
?.app_spec);
|
|
1191
1201
|
const memberToken = useIAMStore(state => state.token);
|
|
1192
1202
|
/*
|
|
1193
1203
|
* Without an account (LOOP R-30) the application runs on the visitors'
|
package/package.json
CHANGED
|
@@ -184,7 +184,10 @@ CASES: List[Dict[str, str]] = [
|
|
|
184
184
|
},
|
|
185
185
|
{
|
|
186
186
|
"name": "a Frame the catalogue has not",
|
|
187
|
-
"yaml": HEAD
|
|
187
|
+
"yaml": HEAD
|
|
188
|
+
+ "entry: sales\ncast:\n"
|
|
189
|
+
+ SALES
|
|
190
|
+
+ "setting:\n frames:\n - nosuch\n",
|
|
188
191
|
},
|
|
189
192
|
{
|
|
190
193
|
"name": "the stage places someone not in the cast",
|
|
@@ -195,7 +198,10 @@ CASES: List[Dict[str, str]] = [
|
|
|
195
198
|
},
|
|
196
199
|
{
|
|
197
200
|
"name": "a balloon opens first for someone not in the cast",
|
|
198
|
-
"yaml": HEAD
|
|
201
|
+
"yaml": HEAD
|
|
202
|
+
+ "entry: sales\ncast:\n"
|
|
203
|
+
+ SALES
|
|
204
|
+
+ "stage:\n opens_first: ghost\n",
|
|
199
205
|
},
|
|
200
206
|
{
|
|
201
207
|
"name": "an address for someone not in the cast",
|
|
@@ -458,40 +464,60 @@ rehearsal:
|
|
|
458
464
|
# is played, and nothing of what each is (`scene_problems`).
|
|
459
465
|
{
|
|
460
466
|
"name": "a scene of a team that plays",
|
|
461
|
-
"yaml": HEAD
|
|
467
|
+
"yaml": HEAD
|
|
468
|
+
+ "team: sales-and-accounting\ncast:\n - member: sales\n persona:\n name: Sales\n brief: Ask for the open invoices.\n",
|
|
462
469
|
},
|
|
463
470
|
{
|
|
464
471
|
"name": "a cast under a team names someone not in it",
|
|
465
|
-
"yaml": HEAD
|
|
472
|
+
"yaml": HEAD
|
|
473
|
+
+ "team: sales-and-accounting\ncast:\n - member: ghost\n persona:\n name: Ghost\n",
|
|
466
474
|
},
|
|
467
475
|
{
|
|
468
476
|
"name": "a cast under a team says what a member is",
|
|
469
|
-
"yaml": HEAD
|
|
477
|
+
"yaml": HEAD
|
|
478
|
+
+ "team: sales-and-accounting\ncast:\n - member: sales\n app: sales\n persona:\n name: Sales\n",
|
|
470
479
|
},
|
|
471
480
|
# --- a tool a system is asked for: offered, offered for this, reached ---
|
|
472
481
|
# What agentspecs reads of the catalogue's servers and connections
|
|
473
482
|
# (`_tool_problem`): on a move of the script, and on a rehearsal's line.
|
|
474
483
|
{
|
|
475
484
|
"name": "a move asks a system for a tool it does not offer",
|
|
476
|
-
"yaml": TOOL_SCENE.format(
|
|
485
|
+
"yaml": TOOL_SCENE.format(
|
|
486
|
+
member="books",
|
|
487
|
+
app="accounting",
|
|
488
|
+
persona="Accounting",
|
|
489
|
+
server="odoo-accounting",
|
|
490
|
+
)
|
|
477
491
|
+ "script:\n - id: open\n cue:\n say: Show the books\n expect: It is answered\n moves:\n"
|
|
478
492
|
+ " - who: books\n asks: odoo-accounting\n over: mcp\n tool: odoo_accounting_burn_the_books\n",
|
|
479
493
|
},
|
|
480
494
|
{
|
|
481
495
|
"name": "a move asks for a tool to do what it does not",
|
|
482
|
-
"yaml": TOOL_SCENE.format(
|
|
496
|
+
"yaml": TOOL_SCENE.format(
|
|
497
|
+
member="crop", app="crop-monitoring", persona="Crop", server="earthdata"
|
|
498
|
+
)
|
|
483
499
|
+ "script:\n - id: look\n cue:\n say: What is there\n expect: It is answered\n moves:\n"
|
|
484
500
|
+ " - who: crop\n asks: earthdata\n over: mcp\n tool: download_earth_data_granules\n does: read\n",
|
|
485
501
|
},
|
|
486
502
|
{
|
|
487
503
|
"name": "a move asks for a tool no connection of the member offers",
|
|
488
|
-
"yaml": TOOL_SCENE.format(
|
|
504
|
+
"yaml": TOOL_SCENE.format(
|
|
505
|
+
member="inbox",
|
|
506
|
+
app="inbox-triage",
|
|
507
|
+
persona="Inbox",
|
|
508
|
+
server="google-workspace",
|
|
509
|
+
)
|
|
489
510
|
+ "script:\n - id: mail\n cue:\n say: What came in\n expect: It is answered\n moves:\n"
|
|
490
511
|
+ " - who: inbox\n asks: google-workspace\n over: mcp\n tool: list_calendar_events\n",
|
|
491
512
|
},
|
|
492
513
|
{
|
|
493
514
|
"name": "a rehearsal expects a tool a system does not offer",
|
|
494
|
-
"yaml": TOOL_SCENE.format(
|
|
515
|
+
"yaml": TOOL_SCENE.format(
|
|
516
|
+
member="books",
|
|
517
|
+
app="accounting",
|
|
518
|
+
persona="Accounting",
|
|
519
|
+
server="odoo-accounting",
|
|
520
|
+
)
|
|
495
521
|
+ "script:\n - id: open\n cue:\n say: Show the books\n expect: It is answered\n moves:\n"
|
|
496
522
|
+ " - who: books\n answers: table\n"
|
|
497
523
|
+ "rehearsal:\n beats:\n - beat: open\n lines:\n"
|
|
@@ -508,7 +534,9 @@ rehearsal:
|
|
|
508
534
|
},
|
|
509
535
|
{
|
|
510
536
|
"name": "a name that is a number",
|
|
511
|
-
"yaml": HEAD.replace("name: Probe", "name: 123")
|
|
537
|
+
"yaml": HEAD.replace("name: Probe", "name: 123")
|
|
538
|
+
+ "entry: sales\ncast:\n"
|
|
539
|
+
+ SALES,
|
|
512
540
|
},
|
|
513
541
|
{
|
|
514
542
|
"name": "a scene with no name",
|
|
@@ -524,11 +552,15 @@ rehearsal:
|
|
|
524
552
|
},
|
|
525
553
|
{
|
|
526
554
|
"name": "a member running nowhere",
|
|
527
|
-
"yaml": HEAD
|
|
555
|
+
"yaml": HEAD
|
|
556
|
+
+ "entry: sales\ncast:\n"
|
|
557
|
+
+ SALES.replace("runs_in: runtime", "runs_in: nowhere"),
|
|
528
558
|
},
|
|
529
559
|
{
|
|
530
560
|
"name": "a member's role nobody plays",
|
|
531
|
-
"yaml": HEAD
|
|
561
|
+
"yaml": HEAD
|
|
562
|
+
+ "entry: sales\ncast:\n"
|
|
563
|
+
+ SALES.replace("role: initiator", "role: boss"),
|
|
532
564
|
},
|
|
533
565
|
{
|
|
534
566
|
"name": "an audience that is a word",
|
|
@@ -536,15 +568,24 @@ rehearsal:
|
|
|
536
568
|
},
|
|
537
569
|
{
|
|
538
570
|
"name": "an audience nobody can be",
|
|
539
|
-
"yaml": HEAD
|
|
571
|
+
"yaml": HEAD
|
|
572
|
+
+ "entry: sales\ncast:\n"
|
|
573
|
+
+ SALES
|
|
574
|
+
+ "audience:\n who: nobody-at-all\n",
|
|
540
575
|
},
|
|
541
576
|
{
|
|
542
577
|
"name": "a ceiling below nothing",
|
|
543
|
-
"yaml": HEAD
|
|
578
|
+
"yaml": HEAD
|
|
579
|
+
+ "entry: sales\ncast:\n"
|
|
580
|
+
+ SALES
|
|
581
|
+
+ "audience:\n ceiling_per_ask: -1\n",
|
|
544
582
|
},
|
|
545
583
|
{
|
|
546
584
|
"name": "a ceiling that is no number",
|
|
547
|
-
"yaml": HEAD
|
|
585
|
+
"yaml": HEAD
|
|
586
|
+
+ "entry: sales\ncast:\n"
|
|
587
|
+
+ SALES
|
|
588
|
+
+ "audience:\n ceiling_per_ask: lots\n",
|
|
548
589
|
},
|
|
549
590
|
{
|
|
550
591
|
"name": "a rehearsal bound that is no duration",
|
|
@@ -556,7 +597,10 @@ rehearsal:
|
|
|
556
597
|
},
|
|
557
598
|
{
|
|
558
599
|
"name": "places that are a word",
|
|
559
|
-
"yaml": HEAD
|
|
600
|
+
"yaml": HEAD
|
|
601
|
+
+ "entry: sales\ncast:\n"
|
|
602
|
+
+ SALES
|
|
603
|
+
+ "stage:\n positions: everywhere\n",
|
|
560
604
|
},
|
|
561
605
|
{
|
|
562
606
|
"name": "two things wrong at once",
|
|
@@ -567,13 +611,27 @@ rehearsal:
|
|
|
567
611
|
|
|
568
612
|
def main() -> int:
|
|
569
613
|
parser = argparse.ArgumentParser(description=__doc__)
|
|
570
|
-
parser.add_argument(
|
|
571
|
-
|
|
614
|
+
parser.add_argument(
|
|
615
|
+
"--agentspecs",
|
|
616
|
+
type=Path,
|
|
617
|
+
required=True,
|
|
618
|
+
help="The agentspecs clone to read the checks from",
|
|
619
|
+
)
|
|
620
|
+
parser.add_argument(
|
|
621
|
+
"--output",
|
|
622
|
+
type=Path,
|
|
623
|
+
required=True,
|
|
624
|
+
help="The JSON table the browser's checks are held to",
|
|
625
|
+
)
|
|
572
626
|
args = parser.parse_args()
|
|
573
627
|
|
|
574
628
|
sys.path.insert(0, str(args.agentspecs.resolve()))
|
|
575
629
|
import yaml # noqa: PLC0415
|
|
576
|
-
from agentspecs.scenes import
|
|
630
|
+
from agentspecs.scenes import ( # noqa: PLC0415
|
|
631
|
+
SceneError,
|
|
632
|
+
parse_scene,
|
|
633
|
+
scene_problems,
|
|
634
|
+
)
|
|
577
635
|
|
|
578
636
|
recorded: List[Dict[str, Any]] = []
|
|
579
637
|
for case in CASES:
|
|
@@ -591,7 +649,9 @@ def main() -> int:
|
|
|
591
649
|
"recordedWith": "scripts/record-scene-checks.py",
|
|
592
650
|
"cases": recorded,
|
|
593
651
|
}
|
|
594
|
-
args.output.write_text(
|
|
652
|
+
args.output.write_text(
|
|
653
|
+
json.dumps(table, indent=2, ensure_ascii=False) + "\n", encoding="utf-8"
|
|
654
|
+
)
|
|
595
655
|
print(f"{len(recorded)} cases written to {args.output}")
|
|
596
656
|
return 0
|
|
597
657
|
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{v as E,be as $,cC as q,cD as y,j as D,bg as V}from"../datalayer-app-main.js";var k={Avatar:"prc-Avatar-Avatar-ZRS-m"};const w=20,T=E.forwardRef(function(A,u){const s=$.c(29);let o,i,a,l,n,d,f;s[0]!==A?({alt:n,size:d,square:f,sx:l,className:o,style:a,...i}=A,s[0]=A,s[1]=o,s[2]=i,s[3]=a,s[4]=l,s[5]=n,s[6]=d,s[7]=f):(o=s[1],i=s[2],a=s[3],l=s[4],n=s[5],d=s[6],f=s[7]);const m=n===void 0?"":n,t=d===void 0?w:d,g=f===void 0?!1:f;let p;s[8]!==t?(p=q(t),s[8]=t,s[9]=p):p=s[9];const r=p;let e;if(s[10]!==r||s[11]!==t){if(e={},r)for(const[h,j]of Object.entries(t))e[`--avatarSize-${h}`]=`${j}px`;else e["--avatarSize-regular"]=`${t}px`;s[10]=r,s[11]=t,s[12]=e}else e=s[12];let c;s[13]!==o?(c=y(o,k.Avatar),s[13]=o,s[14]=c):c=s[14];const R=r?"":void 0,z=g?"":void 0,S=r?void 0:t,b=r?void 0:t;let v;s[15]!==e||s[16]!==a?(v=a?{...e,...a}:e,s[15]=e,s[16]=a,s[17]=v):v=s[17];let x;return s[18]!==m||s[19]!==u||s[20]!==i||s[21]!==l||s[22]!==v||s[23]!==c||s[24]!==R||s[25]!==z||s[26]!==S||s[27]!==b?(x=D.jsx(V,{as:"img","data-component":"Avatar",className:c,ref:u,alt:m,"data-responsive":R,"data-square":z,width:S,height:b,style:v,sx:l,...i}),s[18]=m,s[19]=u,s[20]=i,s[21]=l,s[22]=v,s[23]=c,s[24]=R,s[25]=z,s[26]=S,s[27]=b,s[28]=x):x=s[28],x});export{T as A,w as D};
|