@datalayer/agent-runtimes 1.5.6 → 1.5.8
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-KezohVQI.js → AgentDetails-CMBy5o1q.js} +1 -1
- package/dist-embed/chunks/{AgentDetailsDialog-CklhMnk7.js → AgentDetailsDialog-D2vH2Nrd.js} +1 -1
- package/dist-embed/chunks/{AgentInspector-CtCaRc1L.js → AgentInspector-Bd0oHNAX.js} +1 -1
- package/dist-embed/chunks/{AgentInspectorDialog-DB9cx3Gd.js → AgentInspectorDialog-BJUgBPAE.js} +1 -1
- package/dist-embed/chunks/{CellSidebarExtension-CfaJL6DQ.js → CellSidebarExtension-CYOVwk1t.js} +6 -6
- package/dist-embed/chunks/ChatView-DIdw1rtZ.js +32 -0
- package/dist-embed/chunks/{ContextPie-1vP4f-3N.js → ContextPie-B9mAKJc2.js} +1 -1
- package/dist-embed/chunks/{DeckComponent-82GVdsoi.js → DeckComponent-CbmzVWcF.js} +2 -2
- package/dist-embed/chunks/{DocumentView-SrJloJDo.js → DocumentView-BqsGfNys.js} +1 -1
- package/dist-embed/chunks/{EphemeralDocument-t1KulOH8.js → EphemeralDocument-DLaNvwm_.js} +1 -1
- package/dist-embed/chunks/{EphemeralNotebook-Co-WQWCc.js → EphemeralNotebook-jnqAJFPI.js} +1 -1
- package/dist-embed/chunks/{ExcalidrawComponent-5NeLUYVB.js → ExcalidrawComponent-Cb8yeXqu.js} +1 -1
- package/dist-embed/chunks/{ExcalidrawModal-9ZnOB03n.js → ExcalidrawModal-DaPSGYek.js} +1 -1
- package/dist-embed/chunks/{JupyterLexicalExtension-Cize8RXy.js → JupyterLexicalExtension-BQINjIFV.js} +9 -9
- package/dist-embed/chunks/{KernelVariables-Cl57Zze1.js → KernelVariables-CGQkS5EX.js} +1 -1
- package/dist-embed/chunks/{LexicalToolRegistry-CoM9ROsx.js → LexicalToolRegistry-BJ6mpMWn.js} +1 -1
- package/dist-embed/chunks/{NotebookToolSurfaces-CWfppxBN.js → NotebookToolSurfaces-DiPifvaW.js} +1 -1
- package/dist-embed/chunks/{NotebookView-DOf_K74b.js → NotebookView-IX0wNuX8.js} +1 -1
- package/dist-embed/chunks/{Output-9DKTscSv.js → Output-B9XAhyoF.js} +1 -1
- package/dist-embed/chunks/{SandboxDetailsDialog-BCfDm6MB.js → SandboxDetailsDialog-COCpmo8m.js} +1 -1
- package/dist-embed/chunks/{SchemaForm-BOYPrvf8.js → SchemaForm-WIwdKnrk.js} +1 -1
- package/dist-embed/chunks/{WidgetVariableView-BTOwHP78.js → WidgetVariableView-BoGROi-A.js} +1 -1
- package/dist-embed/chunks/{YouTubePlugin-Bs4zZIB1.js → YouTubePlugin-BEQBWMwx.js} +1 -1
- package/dist-embed/chunks/{abnfDiagram-VCTEODGH-D5p59vS_.js → abnfDiagram-VCTEODGH-CG18Hf18.js} +1 -1
- package/dist-embed/chunks/{abnfDiagram-VCTEODGH-DRYbUvhc.js → abnfDiagram-VCTEODGH-D3_T0Lze.js} +1 -1
- package/dist-embed/chunks/{ar-SA-G6X2FPQ2-D6XRzkBS.js → ar-SA-G6X2FPQ2-BDWXsTdt.js} +1 -1
- package/dist-embed/chunks/{architectureDiagram-5GKGNRK7-DQGv0imf.js → architectureDiagram-5GKGNRK7-B1QPAYO8.js} +1 -1
- package/dist-embed/chunks/{architectureDiagram-5GKGNRK7-B7ITKDup.js → architectureDiagram-5GKGNRK7-B5kSsKje.js} +1 -1
- package/dist-embed/chunks/{az-AZ-76LH7QW2-DBTdUiqp.js → az-AZ-76LH7QW2-BGchGiT7.js} +1 -1
- package/dist-embed/chunks/{bg-BG-XCXSNQG7-DuhcsaSL.js → bg-BG-XCXSNQG7-vCII6Zuq.js} +1 -1
- package/dist-embed/chunks/{blockDiagram-868be97b-DYe-XTjy.js → blockDiagram-868be97b-BvM0ptp7.js} +1 -1
- package/dist-embed/chunks/{blockDiagram-I7D4REHJ-y7tEFo3j.js → blockDiagram-I7D4REHJ-B8BmxOM4.js} +1 -1
- package/dist-embed/chunks/{blockDiagram-I7D4REHJ-IltJXCd6.js → blockDiagram-I7D4REHJ-ClwWG8yx.js} +1 -1
- package/dist-embed/chunks/{bn-BD-2XOGV67Q-CPFeLVSN.js → bn-BD-2XOGV67Q-Beu9yUTu.js} +1 -1
- package/dist-embed/chunks/{c4Diagram-3f4bdde3-Bybp0wky.js → c4Diagram-3f4bdde3-S92W2yOx.js} +1 -1
- package/dist-embed/chunks/{c4Diagram-7LVT6UL2-DpaHndz8.js → c4Diagram-7LVT6UL2-CNWW_-u7.js} +1 -1
- package/dist-embed/chunks/{c4Diagram-7LVT6UL2-CizxVqqX.js → c4Diagram-7LVT6UL2-nSCKKLuX.js} +1 -1
- package/dist-embed/chunks/{ca-ES-6MX7JW3Y-gDR_kEC6.js → ca-ES-6MX7JW3Y-CnEo6YQi.js} +1 -1
- package/dist-embed/chunks/{celltoolbartracker-DLF4PWyW.js → celltoolbartracker-CO6V5FhH.js} +1 -1
- package/dist-embed/chunks/{chunk-2Q5K7J3B-BI6lURun.js → chunk-2Q5K7J3B--r8j4N5L.js} +1 -1
- package/dist-embed/chunks/{chunk-2Q5K7J3B-DWoLSrj9.js → chunk-2Q5K7J3B-D3fTIaw3.js} +1 -1
- package/dist-embed/chunks/{chunk-5VM5RSS4-SleuNqDC.js → chunk-5VM5RSS4-D76mXyWz.js} +1 -1
- package/dist-embed/chunks/{chunk-5VM5RSS4-CDh4wYym.js → chunk-5VM5RSS4-QmrgOATO.js} +1 -1
- package/dist-embed/chunks/{chunk-F27PBJKO-h_FwJMTr.js → chunk-F27PBJKO-DdSgBnK0.js} +1 -1
- package/dist-embed/chunks/{chunk-F27PBJKO-AvWsNGYY.js → chunk-F27PBJKO-DvNrStTM.js} +1 -1
- package/dist-embed/chunks/{chunk-IMKFNOWR-DGRceKiU.js → chunk-IMKFNOWR-DpxND1Ct.js} +1 -1
- package/dist-embed/chunks/{chunk-IMKFNOWR-Hx4a5yny.js → chunk-IMKFNOWR-DwqmSZhU.js} +1 -1
- package/dist-embed/chunks/{chunk-JWPE2WC7-A4gy2qc4.js → chunk-JWPE2WC7-i7V3vMtZ.js} +1 -1
- package/dist-embed/chunks/{chunk-JWPE2WC7-BuJactJo.js → chunk-JWPE2WC7-jla8jvq5.js} +1 -1
- package/dist-embed/chunks/{chunk-POPQ4Y6H-CFM-817s.js → chunk-POPQ4Y6H-BGCugXU7.js} +1 -1
- package/dist-embed/chunks/{chunk-POPQ4Y6H-CmRF80iG.js → chunk-POPQ4Y6H-ofrenTaa.js} +1 -1
- package/dist-embed/chunks/{chunk-SVP7TREG-CryZx9JE.js → chunk-SVP7TREG-2Q2uQyQk.js} +1 -1
- package/dist-embed/chunks/{chunk-SVP7TREG-DSNzmytH.js → chunk-SVP7TREG-BIxxVjkU.js} +1 -1
- package/dist-embed/chunks/{chunk-TICWLB2K-DyGS3fIj.js → chunk-TICWLB2K-BqA5q52L.js} +1 -1
- package/dist-embed/chunks/{chunk-TICWLB2K-CEaDF8ZJ.js → chunk-TICWLB2K-LNiCmYq5.js} +1 -1
- package/dist-embed/chunks/{chunk-XXDRQBXY-8Cnzpdjz.js → chunk-XXDRQBXY-CNMg_gvd.js} +1 -1
- package/dist-embed/chunks/{chunk-XXDRQBXY-DxQBcVOz.js → chunk-XXDRQBXY-CqtfA3WC.js} +1 -1
- package/dist-embed/chunks/{classDiagram-ZZMXUADV-yvP3zMO3.js → classDiagram-ZZMXUADV-Co0jT9i-.js} +1 -1
- package/dist-embed/chunks/{classDiagram-ZZMXUADV-BQkO1UYr.js → classDiagram-ZZMXUADV-D6z_X195.js} +1 -1
- package/dist-embed/chunks/{classDiagram-f62afe4f-AYfpYKtp.js → classDiagram-f62afe4f-lN62p17q.js} +1 -1
- package/dist-embed/chunks/{classDiagram-v2-604399ef-BWyNcT_y.js → classDiagram-v2-604399ef-B_QJ6H8h.js} +1 -1
- package/dist-embed/chunks/{classDiagram-v2-VYDZK3BY-yvP3zMO3.js → classDiagram-v2-VYDZK3BY-Co0jT9i-.js} +1 -1
- package/dist-embed/chunks/{classDiagram-v2-VYDZK3BY-BQkO1UYr.js → classDiagram-v2-VYDZK3BY-D6z_X195.js} +1 -1
- package/dist-embed/chunks/{code-block-IT6T5CEO-F4BSIGY6.js → code-block-IT6T5CEO-BA38Km-f.js} +1 -1
- package/dist-embed/chunks/{component-DMQ8W8n1.js → component-Chor_J7e.js} +1 -1
- package/dist-embed/chunks/{cose-bilkent-JH36ORCC-C3HC0XIY.js → cose-bilkent-JH36ORCC-B5H1cwBa.js} +1 -1
- package/dist-embed/chunks/{cose-bilkent-JH36ORCC-MVxlcfpd.js → cose-bilkent-JH36ORCC-C3cTgEcU.js} +1 -1
- package/dist-embed/chunks/{createText-aed3d8b3-CEJODAXJ.js → createText-aed3d8b3-BtgHeyNs.js} +1 -1
- package/dist-embed/chunks/{cs-CZ-2BRQDIVT-BXQxcYp6.js → cs-CZ-2BRQDIVT-ClBKH9_y.js} +1 -1
- package/dist-embed/chunks/{cynefinDiagram-5FMLGOSQ-DNRKTIHx.js → cynefinDiagram-5FMLGOSQ-DPQLh9z7.js} +1 -1
- package/dist-embed/chunks/{cynefinDiagram-5FMLGOSQ-D87ENxS0.js → cynefinDiagram-5FMLGOSQ-sdsAonZm.js} +1 -1
- package/dist-embed/chunks/{da-DK-5WZEPLOC-Ck3vidj3.js → da-DK-5WZEPLOC-BqFDUAty.js} +1 -1
- package/dist-embed/chunks/{dagre-GXQ25YYZ-BOhThFKd.js → dagre-GXQ25YYZ-Bwf_WjLM.js} +1 -1
- package/dist-embed/chunks/{dagre-GXQ25YYZ-DscCD5Uq.js → dagre-GXQ25YYZ-DHF-9-7e.js} +1 -1
- package/dist-embed/chunks/{de-DE-XR44H4JA-CPZgrOuc.js → de-DE-XR44H4JA-6dsEQn7Z.js} +1 -1
- package/dist-embed/chunks/{diagram-S7CK7UJ4-zDQduoQy.js → diagram-S7CK7UJ4-C-N7Ei3I.js} +1 -1
- package/dist-embed/chunks/{diagram-S7CK7UJ4-CUhme3Bl.js → diagram-S7CK7UJ4-DEqGRBMT.js} +1 -1
- package/dist-embed/chunks/{diagram-UQ7AKVKN-BxhQPjAM.js → diagram-UQ7AKVKN-CvSBE0YU.js} +1 -1
- package/dist-embed/chunks/{diagram-UQ7AKVKN-Byi-v8UN.js → diagram-UQ7AKVKN-DACyxI-v.js} +1 -1
- package/dist-embed/chunks/{diagram-VSXAHHWV-au-v2v9D.js → diagram-VSXAHHWV-DFze2xro.js} +1 -1
- package/dist-embed/chunks/{diagram-VSXAHHWV-CqihYkDH.js → diagram-VSXAHHWV-DOb69VtE.js} +1 -1
- package/dist-embed/chunks/{diagram-VX7I27RA-Cd5PaF_n.js → diagram-VX7I27RA-8EKYM_Sx.js} +1 -1
- package/dist-embed/chunks/{diagram-VX7I27RA-ETzwrw79.js → diagram-VX7I27RA-CVTSdYyZ.js} +1 -1
- package/dist-embed/chunks/{diagram-Z3DM3KII-DkbsvY2A.js → diagram-Z3DM3KII-B-689FF6.js} +1 -1
- package/dist-embed/chunks/{diagram-Z3DM3KII-AcMuRFo5.js → diagram-Z3DM3KII-DyiBmBFy.js} +1 -1
- package/dist-embed/chunks/{ebnfDiagram-PWID7BFC-DuWfMZcD.js → ebnfDiagram-PWID7BFC-DcKvqn_h.js} +1 -1
- package/dist-embed/chunks/{ebnfDiagram-PWID7BFC-BrEs-SB2.js → ebnfDiagram-PWID7BFC-gj8dgCWR.js} +1 -1
- package/dist-embed/chunks/{edges-b2856ca0-Czd3-xvj.js → edges-b2856ca0-BqGGNnb4.js} +1 -1
- package/dist-embed/chunks/{el-GR-BZB4AONW-CjQSkw0P.js → el-GR-BZB4AONW-DOMW2ttY.js} +1 -1
- package/dist-embed/chunks/{erDiagram-5d81789a-JegaF4gy.js → erDiagram-5d81789a-Bf1Ik49K.js} +1 -1
- package/dist-embed/chunks/{erDiagram-RLTQ6QDP-xubaXuKR.js → erDiagram-RLTQ6QDP-B0PyZB_3.js} +1 -1
- package/dist-embed/chunks/{erDiagram-RLTQ6QDP-Cpn6_cd1.js → erDiagram-RLTQ6QDP-GSu-_IUJ.js} +1 -1
- package/dist-embed/chunks/{es-ES-U4NZUMDT-CQz3Tsxk.js → es-ES-U4NZUMDT-DeyWqjw1.js} +1 -1
- package/dist-embed/chunks/{eu-ES-A7QVB2H4-DPwxHXvP.js → eu-ES-A7QVB2H4-CUGbZ0Pv.js} +1 -1
- package/dist-embed/chunks/{fa-IR-HGAKTJCU-DlQyRFJP.js → fa-IR-HGAKTJCU-Br8UEVO1.js} +1 -1
- package/dist-embed/chunks/{fi-FI-Z5N7JZ37-BL9Dv0rT.js → fi-FI-Z5N7JZ37-BSHjwo8G.js} +1 -1
- package/dist-embed/chunks/{flowDb-185abca5-BN_8lgCO.js → flowDb-185abca5-U9PwWSO4.js} +1 -1
- package/dist-embed/chunks/{flowDiagram-1629c991-YRlRqB59.js → flowDiagram-1629c991-BecgzQgp.js} +1 -1
- package/dist-embed/chunks/{flowDiagram-HODETNUW-lW-icIxi.js → flowDiagram-HODETNUW-2vih3kWM.js} +1 -1
- package/dist-embed/chunks/{flowDiagram-HODETNUW-CzRvxVGK.js → flowDiagram-HODETNUW-tcAkcGh4.js} +1 -1
- package/dist-embed/chunks/{flowDiagram-v2-1d953310-DBFSFroi.js → flowDiagram-v2-1d953310-Bdmc9G3m.js} +1 -1
- package/dist-embed/chunks/{flowchart-elk-definition-6df44142-RjL83g27.js → flowchart-elk-definition-6df44142-oWOWsVNc.js} +1 -1
- package/dist-embed/chunks/{fr-FR-RHASNOE6-xB7HyFVv.js → fr-FR-RHASNOE6-BukqZYPz.js} +1 -1
- package/dist-embed/chunks/{ganttDiagram-3b0b3873-Dowe9cKl.js → ganttDiagram-3b0b3873-B7lmD9r9.js} +1 -1
- package/dist-embed/chunks/{ganttDiagram-EL5Y4UJY-CNQPBdAP.js → ganttDiagram-EL5Y4UJY-D0E7se_Z.js} +1 -1
- package/dist-embed/chunks/{ganttDiagram-EL5Y4UJY-CLaynGwe.js → ganttDiagram-EL5Y4UJY-DDbqMevq.js} +1 -1
- package/dist-embed/chunks/{gitGraphDiagram-WWUBYQGX-CupHqYWl.js → gitGraphDiagram-WWUBYQGX-DK3EJl5z.js} +1 -1
- package/dist-embed/chunks/{gitGraphDiagram-WWUBYQGX-CDuBbPX3.js → gitGraphDiagram-WWUBYQGX-DnVwXJWu.js} +1 -1
- package/dist-embed/chunks/{gitGraphDiagram-f01e8bc2-C06Sje1n.js → gitGraphDiagram-f01e8bc2-B9vpLy6R.js} +1 -1
- package/dist-embed/chunks/{gl-ES-HMX3MZ6V-BX50ltap.js → gl-ES-HMX3MZ6V-BxVOJiaI.js} +1 -1
- package/dist-embed/chunks/{he-IL-6SHJWFNN-DR3hLzYG.js → he-IL-6SHJWFNN-Dv2VRxlJ.js} +1 -1
- package/dist-embed/chunks/{hi-IN-IWLTKZ5I-C3bSDqVc.js → hi-IN-IWLTKZ5I-CFo5RUMz.js} +1 -1
- package/dist-embed/chunks/{hu-HU-A5ZG7DT2--mRUDQG6.js → hu-HU-A5ZG7DT2-ul3dS3un.js} +1 -1
- package/dist-embed/chunks/{id-ID-SAP4L64H-D6psdwdp.js → id-ID-SAP4L64H-ItVb-zwI.js} +1 -1
- package/dist-embed/chunks/{index-qsUgit40.js → index-7FNjj0f2.js} +1 -1
- package/dist-embed/chunks/{index-9bae90f3-BY7E8HZU.js → index-9bae90f3-D9849sgo.js} +1 -1
- package/dist-embed/chunks/{index-DToDguC3.js → index-B-L6ocEV.js} +1 -1
- package/dist-embed/chunks/{index-C01nR1dW.js → index-B0wMyD8Y.js} +1 -1
- package/dist-embed/chunks/{index-BzXMsI1v.js → index-B5zrJYwn.js} +6 -6
- package/dist-embed/chunks/{index-DcZQ2Oqj.js → index-B764si9c.js} +1 -1
- package/dist-embed/chunks/{index-3O3ob63z.js → index-BM6oRiO1.js} +1 -1
- package/dist-embed/chunks/{index-DVUMPcVw.js → index-BNFRRs9d.js} +1 -1
- package/dist-embed/chunks/{index-D0DBuFMt.js → index-BOYhJnrD.js} +1 -1
- package/dist-embed/chunks/{index-CA8D7U2s.js → index-BT4vYFeY.js} +1 -1
- package/dist-embed/chunks/{index-C8IekrmL.js → index-BfUXEHI0.js} +1 -1
- package/dist-embed/chunks/{index-DvWWLOj6.js → index-BiTIdbkn.js} +1 -1
- package/dist-embed/chunks/{index-BhU2ra4k.js → index-BkKEXqQS.js} +1 -1
- package/dist-embed/chunks/{index-CpcHHQd7.js → index-BqMoyzEk.js} +1 -1
- package/dist-embed/chunks/{index-D1lY79hS.js → index-BrD9dtoV.js} +1 -1
- package/dist-embed/chunks/{index-B063q-PC.js → index-CRpZyQIR.js} +4 -4
- package/dist-embed/chunks/{index-BblwlEJB.js → index-CZdWsyNw.js} +1 -1
- package/dist-embed/chunks/{index-Azo_wV3K.js → index-CjM49jS0.js} +1 -1
- package/dist-embed/chunks/{index-rfsiH_M6.js → index-Cp2aJ2ZR.js} +1 -1
- package/dist-embed/chunks/{index-Cknn3VQD.js → index-Cql9gOsL.js} +1 -1
- package/dist-embed/chunks/{index-jy9kOmqu.js → index-CsgaCZaW.js} +1 -1
- package/dist-embed/chunks/{index-DB46n9Tf.js → index-CsxlyZef.js} +1 -1
- package/dist-embed/chunks/{index-MTdX216X.js → index-D2LvuQlP.js} +1 -1
- package/dist-embed/chunks/{index-s3hayhRS.js → index-DQQXY-7d.js} +2 -2
- package/dist-embed/chunks/{index-B0KVfQGJ.js → index-DSF21-29.js} +1 -1
- package/dist-embed/chunks/{index-BYMZi_1t.js → index-DSvebR7d.js} +1 -1
- package/dist-embed/chunks/{index-a51XM5L8.js → index-DoBEQ07P.js} +3 -3
- package/dist-embed/chunks/{index-kpqZuE4J.js → index-O2jaI8TY.js} +1 -1
- package/dist-embed/chunks/{index-C6wF35Kk.js → index-QZ3sHHT3.js} +1 -1
- package/dist-embed/chunks/{index-BlWZloLe.js → index-TEcp7-f6.js} +2 -2
- package/dist-embed/chunks/{index-EpYurdzk.js → index-YlGTgJvL.js} +5 -5
- package/dist-embed/chunks/{index-CUL9WiLS.js → index-bm8APcDZ.js} +1 -1
- package/dist-embed/chunks/{index-BipXK1tF.js → index-jh9S19of.js} +1 -1
- package/dist-embed/chunks/{index-C643Hfu1.js → index-oGqh9y23.js} +1 -1
- package/dist-embed/chunks/{index-BdvS7Q4t.js → index-xiH3WzLm.js} +1 -1
- package/dist-embed/chunks/{index.esm-CWygaJYM.js → index.esm-B7KoTOBb.js} +1 -1
- package/dist-embed/chunks/{index.esm-DYeUXS4c.js → index.esm-CkSite-X.js} +1 -1
- package/dist-embed/chunks/{infoDiagram-27XIBGKW-Ctm-zk09.js → infoDiagram-27XIBGKW-DDO50Ria.js} +1 -1
- package/dist-embed/chunks/{infoDiagram-27XIBGKW-DRzH33_4.js → infoDiagram-27XIBGKW-O3q53Qe2.js} +1 -1
- package/dist-embed/chunks/{infoDiagram-a29d40f1-c78-ZMuT.js → infoDiagram-a29d40f1-jOvOHUyu.js} +1 -1
- package/dist-embed/chunks/{isEqual-niFNV5MZ.js → isEqual-CGLTk7wU.js} +1 -1
- package/dist-embed/chunks/{ishikawaDiagram-5VMMS53U-DKv5KL85.js → ishikawaDiagram-5VMMS53U-DuiWhpVW.js} +1 -1
- package/dist-embed/chunks/{ishikawaDiagram-5VMMS53U-CILSTTqm.js → ishikawaDiagram-5VMMS53U-IzmbYzxv.js} +1 -1
- package/dist-embed/chunks/{it-IT-JPQ66NNP-BfrG_atL.js → it-IT-JPQ66NNP-BuCUBzia.js} +1 -1
- package/dist-embed/chunks/{ja-JP-DBVTYXUO-sahpmNGY.js → ja-JP-DBVTYXUO-BhtQz4sy.js} +1 -1
- package/dist-embed/chunks/{journeyDiagram-3NMN7TZE-CSMQRlsr.js → journeyDiagram-3NMN7TZE-DGLcsVfC.js} +1 -1
- package/dist-embed/chunks/{journeyDiagram-3NMN7TZE-DlMPiHSP.js → journeyDiagram-3NMN7TZE-sO-Cfp65.js} +1 -1
- package/dist-embed/chunks/{journeyDiagram-95396277-VzHClVrX.js → journeyDiagram-95396277-CA4bGq0G.js} +1 -1
- package/dist-embed/chunks/{kaa-6HZHGXH3-BrkhtXQj.js → kaa-6HZHGXH3-B_TI8Aa0.js} +1 -1
- package/dist-embed/chunks/{kab-KAB-ZGHBKWFO-DwtFIV_I.js → kab-KAB-ZGHBKWFO-BsSg_l-j.js} +1 -1
- package/dist-embed/chunks/{kanban-definition-UXKFOSKX-BkxvAXq2.js → kanban-definition-UXKFOSKX-0wjvwDqk.js} +1 -1
- package/dist-embed/chunks/{kanban-definition-UXKFOSKX-esf1amn7.js → kanban-definition-UXKFOSKX-CDtLkjnU.js} +1 -1
- package/dist-embed/chunks/{kk-KZ-P5N5QNE5-UxN1LGH5.js → kk-KZ-P5N5QNE5-B7XK5OQq.js} +1 -1
- package/dist-embed/chunks/{km-KH-HSX4SM5Z-B7lolfpy.js → km-KH-HSX4SM5Z-Cm2LA9F8.js} +1 -1
- package/dist-embed/chunks/{ko-KR-MTYHY66A-CnxefCaN.js → ko-KR-MTYHY66A-CL5s99y5.js} +1 -1
- package/dist-embed/chunks/{ku-TR-6OUDTVRD-Bt7bmFnv.js → ku-TR-6OUDTVRD-CiijvKHq.js} +1 -1
- package/dist-embed/chunks/{layout-D7Mk1riq.js → layout-BBbB54WC.js} +1 -1
- package/dist-embed/chunks/{layout-Sl9Lf6Ae.js → layout-CzrlbzeK.js} +1 -1
- package/dist-embed/chunks/{lexicalHooks-DKF-DsxG.js → lexicalHooks-DQxNZEiJ.js} +1 -1
- package/dist-embed/chunks/{lt-LT-XHIRWOB4-D6qkXs9m.js → lt-LT-XHIRWOB4-CcA_Z5jR.js} +1 -1
- package/dist-embed/chunks/{lv-LV-5QDEKY6T-D8g27j86.js → lv-LV-5QDEKY6T-CAQS9wGm.js} +1 -1
- package/dist-embed/chunks/{mermaid.core-BhiOhb5K.js → mermaid.core-DfgoT1cz.js} +3 -3
- package/dist-embed/chunks/{mermaid.core-CRlujv29.js → mermaid.core-s-D09gpV.js} +5 -5
- package/dist-embed/chunks/{mindmap-definition-YA3MSWOX-eCxs0BsL.js → mindmap-definition-YA3MSWOX-B6_K5ZvV.js} +1 -1
- package/dist-embed/chunks/{mindmap-definition-YA3MSWOX-BJQsz4H1.js → mindmap-definition-YA3MSWOX-BCiSPRJk.js} +1 -1
- package/dist-embed/chunks/{mindmap-definition-e4c1d938-DoGG9eDO.js → mindmap-definition-e4c1d938-D7gmABiC.js} +1 -1
- package/dist-embed/chunks/{mr-IN-CRQNXWMA-CMbVGyJm.js → mr-IN-CRQNXWMA-DMAAvsDA.js} +1 -1
- package/dist-embed/chunks/{my-MM-5M5IBNSE-B-KPsx1j.js → my-MM-5M5IBNSE-t2TKqrjW.js} +1 -1
- package/dist-embed/chunks/{nb-NO-T6EIAALU-Cl7QLAt7.js → nb-NO-T6EIAALU-Bi3ZI-HQ.js} +1 -1
- package/dist-embed/chunks/{nl-NL-IS3SIHDZ-Brzte_o2.js → nl-NL-IS3SIHDZ-B8UdlW1K.js} +1 -1
- package/dist-embed/chunks/{nn-NO-6E72VCQL-CzCKEx02.js → nn-NO-6E72VCQL-Bt87hI27.js} +1 -1
- package/dist-embed/chunks/{oc-FR-POXYY2M6-DA72PkVY.js → oc-FR-POXYY2M6-009NL0Pk.js} +1 -1
- package/dist-embed/chunks/{pa-IN-N4M65BXN-CzkFYtL0.js → pa-IN-N4M65BXN-BfUtS2yt.js} +1 -1
- package/dist-embed/chunks/{pegDiagram-XKGWAZYB-CD3xZvKE.js → pegDiagram-XKGWAZYB-BX0ZYMng.js} +1 -1
- package/dist-embed/chunks/{pegDiagram-XKGWAZYB-CV-d6HkK.js → pegDiagram-XKGWAZYB-CBrnWUaX.js} +1 -1
- package/dist-embed/chunks/{percentages-BXMCSKIN-mjCCp4uI.js → percentages-BXMCSKIN-CfzulzOv.js} +5 -5
- package/dist-embed/chunks/{pieDiagram-E7YTZNPT-toANOh_O.js → pieDiagram-E7YTZNPT-B1My5W85.js} +1 -1
- package/dist-embed/chunks/{pieDiagram-E7YTZNPT-DipS--g7.js → pieDiagram-E7YTZNPT-Ct8dzoLU.js} +1 -1
- package/dist-embed/chunks/{pieDiagram-c941bede-DytniBrW.js → pieDiagram-c941bede-7DZ-Bl8U.js} +1 -1
- package/dist-embed/chunks/{pl-PL-T2D74RX3-F4ebFTYK.js → pl-PL-T2D74RX3-DbtOl9_x.js} +1 -1
- package/dist-embed/chunks/{pt-BR-5N22H2LF-B5i8LuE4.js → pt-BR-5N22H2LF-B1pjR1_T.js} +1 -1
- package/dist-embed/chunks/{pt-PT-UZXXM6DQ-BQ7hfRRg.js → pt-PT-UZXXM6DQ-takC7TRa.js} +1 -1
- package/dist-embed/chunks/{quadrantDiagram-AXDQQJYC-D_j5dzK-.js → quadrantDiagram-AXDQQJYC-B1mlT7fN.js} +1 -1
- package/dist-embed/chunks/{quadrantDiagram-AXDQQJYC-DlhtjZ-k.js → quadrantDiagram-AXDQQJYC-B7p4unpj.js} +1 -1
- package/dist-embed/chunks/{quadrantDiagram-cf8b8fe0-BQ2yjLYu.js → quadrantDiagram-cf8b8fe0-CTMh_Ad5.js} +1 -1
- package/dist-embed/chunks/{railroadDiagram-O6MQD6OU-CZFkdwSz.js → railroadDiagram-O6MQD6OU-CJEwr5d9.js} +1 -1
- package/dist-embed/chunks/{railroadDiagram-O6MQD6OU-aWlxxhLc.js → railroadDiagram-O6MQD6OU-xr8bPIl7.js} +1 -1
- package/dist-embed/chunks/{renderer-2D5v6hpK.js → renderer-Ba0Cwb4p.js} +1 -1
- package/dist-embed/chunks/{requirementDiagram-53bda41b-CWV_b9FE.js → requirementDiagram-53bda41b-Dv1Piop_.js} +1 -1
- package/dist-embed/chunks/{requirementDiagram-BXWQKSXE-EVwiX2gg.js → requirementDiagram-BXWQKSXE-Bw89vFiC.js} +1 -1
- package/dist-embed/chunks/{requirementDiagram-BXWQKSXE-BSF51uZZ.js → requirementDiagram-BXWQKSXE-rabT3v-j.js} +1 -1
- package/dist-embed/chunks/{ro-RO-JPDTUUEW-BdcZRS6h.js → ro-RO-JPDTUUEW-DkkqyFBF.js} +1 -1
- package/dist-embed/chunks/{ru-RU-B4JR7IUQ-Cta1z8f6.js → ru-RU-B4JR7IUQ-CikD-ITp.js} +1 -1
- package/dist-embed/chunks/{sankeyDiagram-P5KCCOFB-BqD6w06O.js → sankeyDiagram-P5KCCOFB-5SpI76uK.js} +1 -1
- package/dist-embed/chunks/{sankeyDiagram-P5KCCOFB-t6rHaBZJ.js → sankeyDiagram-P5KCCOFB-D--cx9I2.js} +1 -1
- package/dist-embed/chunks/{sankeyDiagram-c3ef121a-C9O52Zx9.js → sankeyDiagram-c3ef121a-DbhtSWkB.js} +1 -1
- package/dist-embed/chunks/{sequenceDiagram-82a5b84f-Dga-BwWi.js → sequenceDiagram-82a5b84f-DpxBSKAk.js} +1 -1
- package/dist-embed/chunks/{sequenceDiagram-WJ2MYXX4-ih6W0378.js → sequenceDiagram-WJ2MYXX4-DGNwWgf8.js} +1 -1
- package/dist-embed/chunks/{sequenceDiagram-WJ2MYXX4-DphVeQVS.js → sequenceDiagram-WJ2MYXX4-D_wK-z7a.js} +1 -1
- package/dist-embed/chunks/{sessions-APuuDN3K.js → sessions-DQkTozai.js} +1 -1
- package/dist-embed/chunks/{si-LK-N5RQ5JYF-DYy_OKHx.js → si-LK-N5RQ5JYF-BqlWRhwK.js} +1 -1
- package/dist-embed/chunks/{sizeCapture-INFHLROL-o0dzt8-T.js → sizeCapture-INFHLROL-4Uh8JUjf.js} +1 -1
- package/dist-embed/chunks/{sizeCapture-INFHLROL-CxIMCruL.js → sizeCapture-INFHLROL-g-K-6XON.js} +1 -1
- package/dist-embed/chunks/{sk-SK-C5VTKIMK-B4A8rgzq.js → sk-SK-C5VTKIMK-DGsmi02E.js} +1 -1
- package/dist-embed/chunks/{sl-SI-NN7IZMDC-Dn2yU1RA.js → sl-SI-NN7IZMDC-HFz45GOs.js} +1 -1
- package/dist-embed/chunks/{stateDiagram-43e79a5f-RBFnM6HD.js → stateDiagram-43e79a5f-DxbV4jP9.js} +1 -1
- package/dist-embed/chunks/{stateDiagram-D77RDMKH-R5RRRvFY.js → stateDiagram-D77RDMKH-C_wYpqah.js} +1 -1
- package/dist-embed/chunks/{stateDiagram-D77RDMKH-DUbaZs3a.js → stateDiagram-D77RDMKH-D-l3u-WY.js} +1 -1
- package/dist-embed/chunks/{stateDiagram-v2-2041ed4f-O5FpnsEz.js → stateDiagram-v2-2041ed4f-BzxzaDdI.js} +1 -1
- package/dist-embed/chunks/{stateDiagram-v2-MP3YSRHH-xKTLvXGN.js → stateDiagram-v2-MP3YSRHH-BGYkOvTS.js} +1 -1
- package/dist-embed/chunks/{stateDiagram-v2-MP3YSRHH-CxTXB7mT.js → stateDiagram-v2-MP3YSRHH-IEMNMwm0.js} +1 -1
- package/dist-embed/chunks/{styles-455b33cd-D4Xv2qYx.js → styles-455b33cd-C42Lyulv.js} +1 -1
- package/dist-embed/chunks/{styles-f932cba9-BRIqeB8k.js → styles-f932cba9-Bf6H3IMq.js} +1 -1
- package/dist-embed/chunks/{styles-fcc2142b-CSNd2DtU.js → styles-fcc2142b-OZg6fE-p.js} +1 -1
- package/dist-embed/chunks/{subset-shared.chunk-SugOGKH0.js → subset-shared.chunk-KC0vshev.js} +1 -1
- package/dist-embed/chunks/{subset-worker.chunk-CHn-RJwQ.js → subset-worker.chunk-CXZAV_Z5.js} +1 -1
- package/dist-embed/chunks/{sv-SE-XGPEYMSR-DIGNKjA1.js → sv-SE-XGPEYMSR-yEdPvwHy.js} +1 -1
- package/dist-embed/chunks/{svgDrawCommon-148a3cd9-ioBjWI45.js → svgDrawCommon-148a3cd9-D9MRwoYw.js} +1 -1
- package/dist-embed/chunks/{swimlanes-42K2YHIH-DID4P1mJ.js → swimlanes-42K2YHIH-CPkom4Q8.js} +1 -1
- package/dist-embed/chunks/{swimlanes-42K2YHIH-BPXSOfWl.js → swimlanes-42K2YHIH-DJLFcHMt.js} +1 -1
- package/dist-embed/chunks/{swimlanesDiagram-VR7AAH4N-C5LAWW5q.js → swimlanesDiagram-VR7AAH4N-BJOhuN-y.js} +1 -1
- package/dist-embed/chunks/{swimlanesDiagram-VR7AAH4N-B216TpFb.js → swimlanesDiagram-VR7AAH4N-BRTtY1QX.js} +1 -1
- package/dist-embed/chunks/{ta-IN-2NMHFXQM-h5n2V9ms.js → ta-IN-2NMHFXQM-0i424YGX.js} +1 -1
- package/dist-embed/chunks/{th-TH-HPSO5L25-DPUFV7b6.js → th-TH-HPSO5L25-BidF5zNO.js} +1 -1
- package/dist-embed/chunks/{timeline-definition-24CTP7MA-CsrTDzso.js → timeline-definition-24CTP7MA-BasSLg-_.js} +1 -1
- package/dist-embed/chunks/{timeline-definition-24CTP7MA-Y3tUsmSp.js → timeline-definition-24CTP7MA-BfGIJi1H.js} +1 -1
- package/dist-embed/chunks/{timeline-definition-7545f45a-Dwe7O50H.js → timeline-definition-7545f45a-BWwgvKxJ.js} +1 -1
- package/dist-embed/chunks/{tr-TR-DEFEU3FU-BezJkdMx.js → tr-TR-DEFEU3FU-BoHR9SlC.js} +1 -1
- package/dist-embed/chunks/{uk-UA-QMV73CPH-CqILlosm.js → uk-UA-QMV73CPH-DfRkqqO0.js} +1 -1
- package/dist-embed/chunks/{vennDiagram-4TSXK5OY-BhVdyHxt.js → vennDiagram-4TSXK5OY-D1T__rd2.js} +1 -1
- package/dist-embed/chunks/{vennDiagram-4TSXK5OY-ClTlC2ql.js → vennDiagram-4TSXK5OY-DMIYCfJ-.js} +1 -1
- package/dist-embed/chunks/{vi-VN-M7AON7JQ-CnkPVQ0a.js → vi-VN-M7AON7JQ-CvZ4wpTw.js} +1 -1
- package/dist-embed/chunks/{wardleyDiagram-VM6X3IG4-kS16z5iB.js → wardleyDiagram-VM6X3IG4-CiKuFI26.js} +1 -1
- package/dist-embed/chunks/{wardleyDiagram-VM6X3IG4-DbWIMpvU.js → wardleyDiagram-VM6X3IG4-DtlNUHLy.js} +1 -1
- package/dist-embed/chunks/{xychartDiagram-3f383b91-DYoT_EjG.js → xychartDiagram-3f383b91-DzyuxW4K.js} +1 -1
- package/dist-embed/chunks/{xychartDiagram-S5SC5T6Z-KeQp-cQ1.js → xychartDiagram-S5SC5T6Z-BIeFUHrS.js} +1 -1
- package/dist-embed/chunks/{xychartDiagram-S5SC5T6Z-CdwuwQAF.js → xychartDiagram-S5SC5T6Z-p6pYRkk6.js} +1 -1
- package/dist-embed/chunks/{zh-CN-LNUGB5OW-CNdfctAT.js → zh-CN-LNUGB5OW-Cx1Azgu2.js} +1 -1
- package/dist-embed/chunks/{zh-HK-E62DVLB3-DEXwa5-T.js → zh-HK-E62DVLB3-DMjy1d4Z.js} +1 -1
- package/dist-embed/chunks/{zh-TW-RAJ6MFWO-BF7cCYAK.js → zh-TW-RAJ6MFWO-J-YjINmR.js} +1 -1
- package/dist-embed/datalayer-app-main.js +66 -66
- package/lib/apps/apps/appspec.d.ts +10 -1
- package/lib/apps/apps/appspec.js +64 -6
- package/lib/apps/core/index.d.ts +26 -0
- package/lib/apps/core/index.js +20 -0
- package/lib/apps/plugins/chat/ChatView.js +21 -4
- package/lib/protocols/ucp/index.d.ts +4 -0
- package/lib/protocols/ucp/index.js +31 -1
- package/lib/protocols/ucp/merchant.js +27 -2
- package/lib/specs/actions.js +13 -0
- package/lib/specs/apps.d.ts +6 -0
- package/lib/specs/apps.js +1747 -149
- package/lib/specs/appspecSchema.js +75 -2
- package/lib/specs/scenes.d.ts +2 -0
- package/lib/specs/scenes.js +338 -0
- package/lib/types/agentspecs.d.ts +32 -1
- package/package.json +1 -1
- package/dist-embed/chunks/ChatView-B3QqHhAP.js +0 -32
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
*
|
|
25
25
|
* @module apps/apps/appspec
|
|
26
26
|
*/
|
|
27
|
-
import type { AppAccent, AppThemeMode, AppThemeVariant, AppAssistantCharacter, AppEmbedMode, AppCustomComponentSpec, AppVoiceSpec, AppKind, AppLayout, AppPageOutputComponent, AppSpec } from '../../types/agentspecs';
|
|
27
|
+
import type { AppAccent, AppThemeMode, AppThemeVariant, AppAssistantCharacter, AppEmbedMode, PapProfile, AppCustomComponentSpec, AppVoiceSpec, AppKind, AppLayout, AppPageOutputComponent, AppSpec } from '../../types/agentspecs';
|
|
28
28
|
/** The version of the spec itself. */
|
|
29
29
|
export declare const APP_SCHEMA = "loop.app/v1";
|
|
30
30
|
/** The language an application's own words are in, unless it says (LOOP P-26). */
|
|
@@ -60,6 +60,15 @@ type Data = Record<string, unknown>;
|
|
|
60
60
|
export declare function retentionDays(keepFor: string): number;
|
|
61
61
|
/** An application with nothing said: what *Start blank* opens. */
|
|
62
62
|
export declare function emptyAppspec(kind?: AppKind): AppSpec;
|
|
63
|
+
/** The Personal Agent Protocol profiles Datalayer speaks, as agentspecs' `PAP_PROFILES` (PAP_DATALAYER S-03). */
|
|
64
|
+
export declare const PAP_PROFILES: readonly PapProfile[];
|
|
65
|
+
/** The profile a `pap` block is written for when the Studio or a builder starts one. */
|
|
66
|
+
export declare const PAP_PROFILE: PapProfile;
|
|
67
|
+
/**
|
|
68
|
+
* What is wrong with a `pap` block's profile, in agentspecs' sentence
|
|
69
|
+
* (`pap_profile_problem`); `undefined` when it is one Datalayer speaks.
|
|
70
|
+
*/
|
|
71
|
+
export declare function papProfileProblem(value: unknown): string | undefined;
|
|
63
72
|
/** An application's voice (VOICE.md VO-41): off unless said. */
|
|
64
73
|
export declare const DEFAULT_VOICE: AppVoiceSpec;
|
|
65
74
|
/** What a page's output may be drawn with (LOOP P-05), and the property of each that shows its value. */
|
package/lib/apps/apps/appspec.js
CHANGED
|
@@ -248,6 +248,23 @@ function parseConnection(data) {
|
|
|
248
248
|
only: texts(data.only),
|
|
249
249
|
};
|
|
250
250
|
}
|
|
251
|
+
/** The Personal Agent Protocol profiles Datalayer speaks, as agentspecs' `PAP_PROFILES` (PAP_DATALAYER S-03). */
|
|
252
|
+
export const PAP_PROFILES = ['draft-01'];
|
|
253
|
+
/** The profile a `pap` block is written for when the Studio or a builder starts one. */
|
|
254
|
+
export const PAP_PROFILE = PAP_PROFILES[PAP_PROFILES.length - 1];
|
|
255
|
+
/**
|
|
256
|
+
* What is wrong with a `pap` block's profile, in agentspecs' sentence
|
|
257
|
+
* (`pap_profile_problem`); `undefined` when it is one Datalayer speaks.
|
|
258
|
+
*/
|
|
259
|
+
export function papProfileProblem(value) {
|
|
260
|
+
if (value === undefined || value === null || value === '') {
|
|
261
|
+
return `Its \`pap\` block names no Personal Agent Protocol profile: add \`profile: ${PAP_PROFILE}\`.`;
|
|
262
|
+
}
|
|
263
|
+
if (!PAP_PROFILES.includes(value)) {
|
|
264
|
+
return `This application asks for Personal Agent Protocol profile “${String(value)}”; Datalayer speaks ${PAP_PROFILES.join(' or ')}.`;
|
|
265
|
+
}
|
|
266
|
+
return undefined;
|
|
267
|
+
}
|
|
251
268
|
const PAP_INTERFACES = ['agent', 'openapi', 'mcp', 'web'];
|
|
252
269
|
const PAP_SIGN_IN = ['direct', 'device', 'mediated'];
|
|
253
270
|
const PAP_DEFAULT_INTERFACES = ['agent'];
|
|
@@ -265,6 +282,7 @@ const enumsOf = (value, allowed, otherwise) => {
|
|
|
265
282
|
function parsePap(data) {
|
|
266
283
|
const company = isData(data.company) ? data.company : {};
|
|
267
284
|
return {
|
|
285
|
+
profile: data.profile,
|
|
268
286
|
connections: records(data.connections).map(connection => ({
|
|
269
287
|
id: text(connection.id),
|
|
270
288
|
company: text(connection.company),
|
|
@@ -297,6 +315,7 @@ function dumpPap(pap) {
|
|
|
297
315
|
if (!pap)
|
|
298
316
|
return {};
|
|
299
317
|
return new Writer()
|
|
318
|
+
.text('profile', pap.profile, '\u0000')
|
|
300
319
|
.list('connections', pap.connections.map(connection => new Writer()
|
|
301
320
|
.text('id', connection.id, '\u0000')
|
|
302
321
|
.text('company', connection.company, '\u0000')
|
|
@@ -322,8 +341,15 @@ function dumpPap(pap) {
|
|
|
322
341
|
.text('summary', operation.summary, '\u0000')
|
|
323
342
|
.value('user_approval_required', operation.userApprovalRequired, true).data)).data).data;
|
|
324
343
|
}
|
|
325
|
-
/** PACT (AGENT_PROTOCOLS PI-01): the businesses it asks for each person. */
|
|
344
|
+
/** PACT (AGENT_PROTOCOLS PI-01): the businesses it asks for each person, and as one (PR-13). */
|
|
326
345
|
function parsePact(data) {
|
|
346
|
+
const business = isData(data.business) ? data.business : {};
|
|
347
|
+
const scopes = {};
|
|
348
|
+
if (isData(business.scopes)) {
|
|
349
|
+
for (const [scope, said] of Object.entries(business.scopes)) {
|
|
350
|
+
scopes[scope] = text(said);
|
|
351
|
+
}
|
|
352
|
+
}
|
|
327
353
|
return {
|
|
328
354
|
connections: records(data.connections).map(connection => ({
|
|
329
355
|
id: text(connection.id),
|
|
@@ -332,6 +358,15 @@ function parsePact(data) {
|
|
|
332
358
|
access: oneOf(connection.access, ['read', 'write'], 'read'),
|
|
333
359
|
scopes: texts(connection.scopes),
|
|
334
360
|
})),
|
|
361
|
+
business: {
|
|
362
|
+
enabled: flag(business.enabled, false),
|
|
363
|
+
brand: text(business.brand),
|
|
364
|
+
scopes,
|
|
365
|
+
registeredAgents: records(business.registered_agents).map(agent => ({
|
|
366
|
+
issuer: text(agent.issuer),
|
|
367
|
+
jwksUri: text(agent.jwks_uri),
|
|
368
|
+
})),
|
|
369
|
+
},
|
|
335
370
|
};
|
|
336
371
|
}
|
|
337
372
|
/** Commerce (AGENT_PROTOCOLS PI-01): the merchants it shops at for each person. */
|
|
@@ -373,12 +408,26 @@ function dumpCommerce(commerce) {
|
|
|
373
408
|
function dumpPact(pact) {
|
|
374
409
|
if (!pact)
|
|
375
410
|
return {};
|
|
376
|
-
|
|
411
|
+
const business = pact.business ?? {
|
|
412
|
+
enabled: false,
|
|
413
|
+
brand: '',
|
|
414
|
+
scopes: {},
|
|
415
|
+
registeredAgents: [],
|
|
416
|
+
};
|
|
417
|
+
return new Writer()
|
|
418
|
+
.list('connections', pact.connections.map(connection => new Writer()
|
|
377
419
|
.text('id', connection.id, '\u0000')
|
|
378
420
|
.text('brand', connection.brand, '\u0000')
|
|
379
421
|
.text('audience', connection.audience, '\u0000')
|
|
380
422
|
.value('access', connection.access, 'read')
|
|
381
|
-
.list('scopes', connection.scopes).data))
|
|
423
|
+
.list('scopes', connection.scopes).data))
|
|
424
|
+
.part('business', new Writer()
|
|
425
|
+
.value('enabled', business.enabled, false)
|
|
426
|
+
.text('brand', business.brand)
|
|
427
|
+
.part('scopes', { ...business.scopes })
|
|
428
|
+
.list('registered_agents', business.registeredAgents.map(agent => new Writer()
|
|
429
|
+
.text('issuer', agent.issuer, '\u0000')
|
|
430
|
+
.text('jwks_uri', agent.jwksUri, '\u0000').data)).data).data;
|
|
382
431
|
}
|
|
383
432
|
/** A2A (AGENT_PROTOCOLS PR-02): the extensions its Agent Card advertises. */
|
|
384
433
|
function parseA2A(data) {
|
|
@@ -942,8 +991,16 @@ export function parseAppspec(document) {
|
|
|
942
991
|
if (isData(data.decision)) {
|
|
943
992
|
app.decision = parseDecision(data.decision);
|
|
944
993
|
}
|
|
945
|
-
|
|
946
|
-
|
|
994
|
+
// A `pap` block names a profile Datalayer speaks, or it is refused and not
|
|
995
|
+
// read (PAP_DATALAYER S-03); a block saying nothing is no block.
|
|
996
|
+
if (isData(data.pap) && Object.keys(data.pap).length > 0) {
|
|
997
|
+
const problem = papProfileProblem(data.pap.profile);
|
|
998
|
+
if (problem) {
|
|
999
|
+
problems.push(problem);
|
|
1000
|
+
}
|
|
1001
|
+
else {
|
|
1002
|
+
app.pap = parsePap(data.pap);
|
|
1003
|
+
}
|
|
947
1004
|
}
|
|
948
1005
|
if (isData(data.pact)) {
|
|
949
1006
|
app.pact = parsePact(data.pact);
|
|
@@ -1006,7 +1063,8 @@ export function protocolsProblems(app) {
|
|
|
1006
1063
|
}
|
|
1007
1064
|
const configured = {
|
|
1008
1065
|
pap: Boolean(app.pap && (app.pap.connections.length > 0 || app.pap.company.enabled)),
|
|
1009
|
-
pact: Boolean(app.pact &&
|
|
1066
|
+
pact: Boolean(app.pact &&
|
|
1067
|
+
(app.pact.connections.length > 0 || app.pact.business?.enabled)),
|
|
1010
1068
|
a2a: Boolean(app.a2a && app.a2a.extensions.length > 0),
|
|
1011
1069
|
};
|
|
1012
1070
|
for (const spec of Object.values(PROTOCOL_CATALOGUE)) {
|
package/lib/apps/core/index.d.ts
CHANGED
|
@@ -710,7 +710,33 @@ export type LoopChatExtrasValue = {
|
|
|
710
710
|
* every snapshot the chat receives, `undefined` included.
|
|
711
711
|
*/
|
|
712
712
|
onUsage?: (snapshot: ContextSnapshotData | undefined) => void;
|
|
713
|
+
/**
|
|
714
|
+
* What the person types goes somewhere else than the agent, live.
|
|
715
|
+
*
|
|
716
|
+
* While set, the composer's placeholder is `says` and sending hands the
|
|
717
|
+
* words to `send`, never to the model or the runtime: a person talking with
|
|
718
|
+
* a company themselves in a Direct Conversation (PAP_DATALAYER P-08), their
|
|
719
|
+
* own words sent as theirs. A refusal `send` throws is said under the
|
|
720
|
+
* composer and the words stay where they were typed. Unset, the composer
|
|
721
|
+
* talks to the agent again.
|
|
722
|
+
*/
|
|
723
|
+
sendInstead?: {
|
|
724
|
+
/** Where the words go, in the person's words, in place of the placeholder. */
|
|
725
|
+
says: string;
|
|
726
|
+
send: (text: string) => Promise<void>;
|
|
727
|
+
};
|
|
713
728
|
};
|
|
729
|
+
/**
|
|
730
|
+
* The words sent where the extras say instead of to the agent
|
|
731
|
+
* (`sendInstead`): `null` when they go to the agent as usual; else whether
|
|
732
|
+
* they were taken, and the refusal in a sentence when they were not.
|
|
733
|
+
*/
|
|
734
|
+
export declare function sendInstead(extras: Pick<LoopChatExtrasValue, 'sendInstead'>, message: string): Promise<{
|
|
735
|
+
sent: true;
|
|
736
|
+
} | {
|
|
737
|
+
sent: false;
|
|
738
|
+
refused: string;
|
|
739
|
+
} | null>;
|
|
714
740
|
export type ChatExtrasContribution = {
|
|
715
741
|
/** Stable id, for the registry and the graph. */
|
|
716
742
|
id: string;
|
package/lib/apps/core/index.js
CHANGED
|
@@ -181,6 +181,26 @@ export { LoopA2uiComponent, } from './a2uiComponents';
|
|
|
181
181
|
// Where the files of an application's folder are served (LOOP P-29): said
|
|
182
182
|
// by the page side its package carries.
|
|
183
183
|
export { LoopAppFiles } from './appFiles';
|
|
184
|
+
/**
|
|
185
|
+
* The words sent where the extras say instead of to the agent
|
|
186
|
+
* (`sendInstead`): `null` when they go to the agent as usual; else whether
|
|
187
|
+
* they were taken, and the refusal in a sentence when they were not.
|
|
188
|
+
*/
|
|
189
|
+
export async function sendInstead(extras, message) {
|
|
190
|
+
if (!extras.sendInstead) {
|
|
191
|
+
return null;
|
|
192
|
+
}
|
|
193
|
+
try {
|
|
194
|
+
await extras.sendInstead.send(message);
|
|
195
|
+
return { sent: true };
|
|
196
|
+
}
|
|
197
|
+
catch (error) {
|
|
198
|
+
return {
|
|
199
|
+
sent: false,
|
|
200
|
+
refused: error instanceof Error ? error.message : String(error),
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
}
|
|
184
204
|
export const LoopChatExtras = defineContributionPoint('loop.chat.extras');
|
|
185
205
|
export const LoopOpeningNotebook = defineContributionPoint('loop.notebook.opening');
|
|
186
206
|
export const LoopOpeningDocument = defineContributionPoint('loop.document.opening');
|
|
@@ -42,7 +42,7 @@ import { BROWSER_CODE_TOOL, dataUrlBase64, givenFilesSentence, sandboxFileName,
|
|
|
42
42
|
import { useConfig } from '../../../hooks/useConfig';
|
|
43
43
|
import { useSkills, useSkillActions } from '../../../hooks/useSkills';
|
|
44
44
|
import { AI_MODEL_CATALOGUE, isChatModel } from '../../../specs/models';
|
|
45
|
-
import { LoopAgentBlueprint, LoopAgentGate, LoopChatComposer, LoopChatExtras, LoopChatHeader, LoopChatLayout, LoopChatSuggestion, LoopChatSurface, LoopChatTurn, LoopCommand, LoopFrontendTool, LoopRunProps, LoopSlots, agentServerOf, noRuntimeSaid, canOpenView, runForwardedProps, onPromptFocusRequest, onSurfaceRequest, useLoopPromptStore, } from '../../core';
|
|
45
|
+
import { LoopAgentBlueprint, LoopAgentGate, LoopChatComposer, sendInstead, LoopChatExtras, LoopChatHeader, LoopChatLayout, LoopChatSuggestion, LoopChatSurface, LoopChatTurn, LoopCommand, LoopFrontendTool, LoopRunProps, LoopSlots, agentServerOf, noRuntimeSaid, canOpenView, runForwardedProps, onPromptFocusRequest, onSurfaceRequest, useLoopPromptStore, } from '../../core';
|
|
46
46
|
import { messageText, turnWritersOf } from './turnState';
|
|
47
47
|
import { isInactiveSurfaceContribution, orderToolContributions, toolsForChatView, } from './chatViewTools';
|
|
48
48
|
import { agentBundleToolDefinitions, useAgentCommandTools, } from '../../../tools/adapters/commands';
|
|
@@ -486,11 +486,27 @@ export default function ChatView({ workspace }) {
|
|
|
486
486
|
* place "the first prompt" means the same thing regardless of which one
|
|
487
487
|
* a person or a host used.
|
|
488
488
|
*/
|
|
489
|
+
setTransient(null);
|
|
490
|
+
/*
|
|
491
|
+
* Words that go elsewhere than the agent (`sendInstead`, PAP_DATALAYER
|
|
492
|
+
* P-08): a Direct Conversation with a company, the person's own words
|
|
493
|
+
* sent as theirs. Neither a command nor a turn, and never the model's;
|
|
494
|
+
* refused, the words stay where they were typed and the reason is said.
|
|
495
|
+
*/
|
|
496
|
+
const elsewhere = await sendInstead(chatExtrasRef.current, message);
|
|
497
|
+
if (elsewhere) {
|
|
498
|
+
if (elsewhere.sent) {
|
|
499
|
+
setDraft('');
|
|
500
|
+
}
|
|
501
|
+
else {
|
|
502
|
+
setTransient(elsewhere.refused);
|
|
503
|
+
}
|
|
504
|
+
return;
|
|
505
|
+
}
|
|
489
506
|
if (!firstPromptFired.current) {
|
|
490
507
|
firstPromptFired.current = true;
|
|
491
508
|
inputPromptConfig?.firstPromptHook?.();
|
|
492
509
|
}
|
|
493
|
-
setTransient(null);
|
|
494
510
|
// The turn begins where the message goes out (`sendNow`): a command
|
|
495
511
|
// the workspace runs is not one.
|
|
496
512
|
const outcome = await workspace.submit(message);
|
|
@@ -1594,8 +1610,9 @@ export default function ChatView({ workspace }) {
|
|
|
1594
1610
|
// send button into a stop — the person keeps a way out.
|
|
1595
1611
|
isLoading: busy,
|
|
1596
1612
|
onStop: () => workspace.viewControls.stop?.(),
|
|
1597
|
-
// The reason where the typing would go, read before the person types
|
|
1598
|
-
|
|
1613
|
+
// The reason where the typing would go, read before the person types;
|
|
1614
|
+
// where it goes when it goes elsewhere than the agent (P-08).
|
|
1615
|
+
placeholder: disabledReason ?? chatExtras.sendInstead?.says ?? placeholder,
|
|
1599
1616
|
typingSuggestions: suggestions.map(item => item.text),
|
|
1600
1617
|
// The same openers behind the composer's suggestions control.
|
|
1601
1618
|
suggestions: chatSuggestions,
|
|
@@ -47,6 +47,8 @@ export declare function negotiateCapabilities(profile: Json, reactor: ReactorPla
|
|
|
47
47
|
export declare function revisionOf(checkout: Json): Promise<string>;
|
|
48
48
|
/** What an agent may see of a checkout: no payment credential, no token. */
|
|
49
49
|
export declare function checkoutSummary(checkout: Json): Json;
|
|
50
|
+
/** What an agent may see of an order: its lines, how far each is fulfilled, its totals and link. */
|
|
51
|
+
export declare function orderSummary(order: Json): Json;
|
|
50
52
|
/** A platform's client of one business, over the REST binding. */
|
|
51
53
|
export declare class UcpClient {
|
|
52
54
|
private readonly business;
|
|
@@ -67,6 +69,8 @@ export declare class UcpClient {
|
|
|
67
69
|
updateCheckout(id: string, update: Json): Promise<Json>;
|
|
68
70
|
getCheckout(id: string): Promise<Json>;
|
|
69
71
|
cancelCheckout(id: string): Promise<Json>;
|
|
72
|
+
/** After the sale: an order the business placed, its lines and how far each is fulfilled (`read`). */
|
|
73
|
+
getOrder(id: string): Promise<Json>;
|
|
70
74
|
/** The exact purchase a `ready_for_complete` checkout would make. */
|
|
71
75
|
proposeCompletion(id: string): Promise<CheckoutProposal>;
|
|
72
76
|
/** Complete an approved proposal, once: refused if unapproved, spent, changed or expired. */
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* @module protocols/ucp
|
|
17
17
|
*/
|
|
18
18
|
import { contribution, defineContributionPoint, definePlugin, } from '@datalayer/reactor';
|
|
19
|
-
import { ExtendedCheckoutResponseSchema } from '@ucp-js/sdk';
|
|
19
|
+
import { ExtendedCheckoutResponseSchema, OrderSchema } from '@ucp-js/sdk';
|
|
20
20
|
import { InMemoryProposalStore, digest, operationClasses, } from '../commerce';
|
|
21
21
|
import { DEFAULT_ORDER, ProtocolDescriptions, firstContribution, } from '../core';
|
|
22
22
|
export const UCP_VERSION = '2026-08-25';
|
|
@@ -131,6 +131,32 @@ export function checkoutSummary(checkout) {
|
|
|
131
131
|
...(checkout.order ? { order: { id: checkout.order.id } } : {}),
|
|
132
132
|
};
|
|
133
133
|
}
|
|
134
|
+
function readOrder(body) {
|
|
135
|
+
if (body?.ucp?.status === 'error') {
|
|
136
|
+
const said = (body.messages ?? []).map((m) => m.content).join('; ');
|
|
137
|
+
throw new UcpError(`the business refused: ${said}`);
|
|
138
|
+
}
|
|
139
|
+
OrderSchema.parse(body);
|
|
140
|
+
return body;
|
|
141
|
+
}
|
|
142
|
+
/** What an agent may see of an order: its lines, how far each is fulfilled, its totals and link. */
|
|
143
|
+
export function orderSummary(order) {
|
|
144
|
+
return {
|
|
145
|
+
id: order.id,
|
|
146
|
+
checkoutId: order.checkout_id,
|
|
147
|
+
permalinkUrl: order.permalink_url,
|
|
148
|
+
currency: order.currency,
|
|
149
|
+
lines: (order.line_items ?? []).map((line) => ({
|
|
150
|
+
title: line.item?.title ?? line.item?.id,
|
|
151
|
+
quantity: line.quantity?.total,
|
|
152
|
+
fulfilled: line.quantity?.fulfilled,
|
|
153
|
+
status: line.status,
|
|
154
|
+
})),
|
|
155
|
+
totals: Object.fromEntries((order.totals ?? []).map((t) => [t.type, t.amount])),
|
|
156
|
+
events: (order.fulfillment?.events ?? []).map((event) => event.type),
|
|
157
|
+
messages: (order.messages ?? []).map((m) => m.content),
|
|
158
|
+
};
|
|
159
|
+
}
|
|
134
160
|
/** A platform's client of one business, over the REST binding. */
|
|
135
161
|
export class UcpClient {
|
|
136
162
|
business;
|
|
@@ -218,6 +244,10 @@ export class UcpClient {
|
|
|
218
244
|
async cancelCheckout(id) {
|
|
219
245
|
return readCheckout(await this.call('POST', `/checkout-sessions/${id}/cancel`, {}, crypto.randomUUID()));
|
|
220
246
|
}
|
|
247
|
+
/** After the sale: an order the business placed, its lines and how far each is fulfilled (`read`). */
|
|
248
|
+
async getOrder(id) {
|
|
249
|
+
return readOrder(await this.call('GET', `/orders/${id}`));
|
|
250
|
+
}
|
|
221
251
|
/** The exact purchase a `ready_for_complete` checkout would make. */
|
|
222
252
|
async proposeCompletion(id) {
|
|
223
253
|
const checkout = await this.getCheckout(id);
|
|
@@ -53,6 +53,8 @@ export function exampleStore(base = 'https://store.example') {
|
|
|
53
53
|
const checkouts = new Map();
|
|
54
54
|
const replies = new Map();
|
|
55
55
|
const orders = [];
|
|
56
|
+
// Each order placed, by id: what was bought, as the order answers it.
|
|
57
|
+
const placed = new Map();
|
|
56
58
|
const render = (checkout) => {
|
|
57
59
|
let subtotal = 0;
|
|
58
60
|
const lines = checkout.lines.map((line, index) => {
|
|
@@ -130,7 +132,13 @@ export function exampleStore(base = 'https://store.example') {
|
|
|
130
132
|
checkouts.set(checkout.id, checkout);
|
|
131
133
|
return { status: 201, body: render(checkout) };
|
|
132
134
|
}
|
|
133
|
-
const [, , id, action] = path.split('/');
|
|
135
|
+
const [, collection, id, action] = path.split('/');
|
|
136
|
+
if (collection === 'orders') {
|
|
137
|
+
const order = method === 'GET' && !action ? placed.get(id) : undefined;
|
|
138
|
+
return order
|
|
139
|
+
? { status: 200, body: order }
|
|
140
|
+
: { status: 404, body: { messages: [{ content: 'No such order' }] } };
|
|
141
|
+
}
|
|
134
142
|
const checkout = checkouts.get(id);
|
|
135
143
|
if (!checkout) {
|
|
136
144
|
return { status: 404, body: { messages: [{ content: 'No checkout' }] } };
|
|
@@ -180,7 +188,24 @@ export function exampleStore(base = 'https://store.example') {
|
|
|
180
188
|
checkout.status = 'completed';
|
|
181
189
|
checkout.order = order;
|
|
182
190
|
orders.push({ order: order.id, checkout: checkout.id });
|
|
183
|
-
|
|
191
|
+
const rendered = render(checkout);
|
|
192
|
+
placed.set(order.id, {
|
|
193
|
+
ucp: { version: UCP_VERSION, status: 'success' },
|
|
194
|
+
id: order.id,
|
|
195
|
+
checkout_id: checkout.id,
|
|
196
|
+
permalink_url: order.permalink_url,
|
|
197
|
+
line_items: rendered.line_items.map((line) => ({
|
|
198
|
+
id: line.id,
|
|
199
|
+
item: line.item,
|
|
200
|
+
quantity: { total: line.quantity, fulfilled: 0 },
|
|
201
|
+
totals: line.totals,
|
|
202
|
+
status: 'processing',
|
|
203
|
+
})),
|
|
204
|
+
fulfillment: { events: [] },
|
|
205
|
+
currency: rendered.currency,
|
|
206
|
+
totals: rendered.totals,
|
|
207
|
+
});
|
|
208
|
+
return { status: 200, body: rendered };
|
|
184
209
|
}
|
|
185
210
|
if (method === 'POST' && action === 'cancel') {
|
|
186
211
|
if (checkout.status !== 'completed') {
|
package/lib/specs/actions.js
CHANGED
|
@@ -713,6 +713,7 @@ export const PROTOCOL_TOOL_CLASSES = {
|
|
|
713
713
|
ucp_update_checkout: ['write'],
|
|
714
714
|
ucp_cancel_checkout: ['write'],
|
|
715
715
|
ucp_complete: ['buy'],
|
|
716
|
+
ucp_get_order: ['read'],
|
|
716
717
|
},
|
|
717
718
|
},
|
|
718
719
|
};
|
|
@@ -773,6 +774,7 @@ export const APP_BEHAVIOURS = {
|
|
|
773
774
|
'odoo-accounting.odoo_accounting_trial_balance': 'do_it',
|
|
774
775
|
'odoo-accounting.odoo_accounting_unreconcile_lines': 'leave_to_me',
|
|
775
776
|
},
|
|
777
|
+
'bookkeeping-desk': {},
|
|
776
778
|
'change-detection': {
|
|
777
779
|
'earthdata.download_earth_data_granules': 'leave_to_me',
|
|
778
780
|
'earthdata.search_earth_datagranules': 'do_it',
|
|
@@ -915,6 +917,7 @@ export const APP_BEHAVIOURS = {
|
|
|
915
917
|
'google-workspace.update_drive_file': 'leave_to_me',
|
|
916
918
|
'google-workspace.update_paragraph_style': 'leave_to_me',
|
|
917
919
|
},
|
|
920
|
+
'live-shop-chat': {},
|
|
918
921
|
'model-choice': {},
|
|
919
922
|
'month-end-close': {
|
|
920
923
|
'odoo-accounting.odoo_accounting_aged_balance': 'do_it',
|
|
@@ -968,12 +971,16 @@ export const APP_BEHAVIOURS = {
|
|
|
968
971
|
'odoo-accounting.odoo_accounting_unreconcile_lines': 'leave_to_me',
|
|
969
972
|
},
|
|
970
973
|
'order-desk': {},
|
|
974
|
+
'order-tracker': {},
|
|
971
975
|
'pipeline-report': {},
|
|
972
976
|
'quote-calculator': {},
|
|
973
977
|
'report-from-a-file': {},
|
|
978
|
+
'returns-desk': {},
|
|
974
979
|
sales: {},
|
|
975
980
|
'ship-or-fix': {},
|
|
981
|
+
'shop-concierge': {},
|
|
976
982
|
'shopping-desk': {},
|
|
983
|
+
'sign-in-desk': {},
|
|
977
984
|
'supplier-comparison': {},
|
|
978
985
|
'support-desk': {},
|
|
979
986
|
'travel-desk': {},
|
|
@@ -991,6 +998,7 @@ export const APP_BEHAVIOURS = {
|
|
|
991
998
|
*/
|
|
992
999
|
export const APP_ESCALATIONS = {
|
|
993
1000
|
accounting: {},
|
|
1001
|
+
'bookkeeping-desk': {},
|
|
994
1002
|
'change-detection': {},
|
|
995
1003
|
'crop-monitoring': {},
|
|
996
1004
|
'customer-interview': {},
|
|
@@ -1033,15 +1041,20 @@ export const APP_ESCALATIONS = {
|
|
|
1033
1041
|
},
|
|
1034
1042
|
],
|
|
1035
1043
|
},
|
|
1044
|
+
'live-shop-chat': {},
|
|
1036
1045
|
'model-choice': {},
|
|
1037
1046
|
'month-end-close': {},
|
|
1038
1047
|
'order-desk': {},
|
|
1048
|
+
'order-tracker': {},
|
|
1039
1049
|
'pipeline-report': {},
|
|
1040
1050
|
'quote-calculator': {},
|
|
1041
1051
|
'report-from-a-file': {},
|
|
1052
|
+
'returns-desk': {},
|
|
1042
1053
|
sales: {},
|
|
1043
1054
|
'ship-or-fix': {},
|
|
1055
|
+
'shop-concierge': {},
|
|
1044
1056
|
'shopping-desk': {},
|
|
1057
|
+
'sign-in-desk': {},
|
|
1045
1058
|
'supplier-comparison': {},
|
|
1046
1059
|
'support-desk': {},
|
|
1047
1060
|
'travel-desk': {},
|
package/lib/specs/apps.d.ts
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import type { AppBuilt, AppKind, AppSpec } from '../types/agentspecs';
|
|
11
11
|
export declare const ACCOUNTING_APP_0_0_1: AppSpec;
|
|
12
|
+
export declare const BOOKKEEPING_DESK_APP_0_0_1: AppSpec;
|
|
12
13
|
export declare const CHANGE_DETECTION_APP_0_0_1: AppSpec;
|
|
13
14
|
export declare const CROP_MONITORING_APP_0_0_1: AppSpec;
|
|
14
15
|
export declare const CUSTOMER_INTERVIEW_APP_0_0_1: AppSpec;
|
|
@@ -18,15 +19,20 @@ export declare const DISASTER_ASSESSMENT_APP_0_0_1: AppSpec;
|
|
|
18
19
|
export declare const EVENT_RESPONSE_APP_0_0_1: AppSpec;
|
|
19
20
|
export declare const EXCHANGE_DESK_APP_0_0_1: AppSpec;
|
|
20
21
|
export declare const INBOX_TRIAGE_APP_0_0_1: AppSpec;
|
|
22
|
+
export declare const LIVE_SHOP_CHAT_APP_0_0_1: AppSpec;
|
|
21
23
|
export declare const MODEL_CHOICE_APP_0_0_1: AppSpec;
|
|
22
24
|
export declare const MONTH_END_CLOSE_APP_0_0_1: AppSpec;
|
|
23
25
|
export declare const ORDER_DESK_APP_0_0_1: AppSpec;
|
|
26
|
+
export declare const ORDER_TRACKER_APP_0_0_1: AppSpec;
|
|
24
27
|
export declare const PIPELINE_REPORT_APP_0_0_1: AppSpec;
|
|
25
28
|
export declare const QUOTE_CALCULATOR_APP_0_0_1: AppSpec;
|
|
26
29
|
export declare const REPORT_FROM_A_FILE_APP_0_0_1: AppSpec;
|
|
30
|
+
export declare const RETURNS_DESK_APP_0_0_1: AppSpec;
|
|
27
31
|
export declare const SALES_APP_0_0_1: AppSpec;
|
|
28
32
|
export declare const SHIP_OR_FIX_APP_0_0_1: AppSpec;
|
|
33
|
+
export declare const SHOP_CONCIERGE_APP_0_0_1: AppSpec;
|
|
29
34
|
export declare const SHOPPING_DESK_APP_0_0_1: AppSpec;
|
|
35
|
+
export declare const SIGN_IN_DESK_APP_0_0_1: AppSpec;
|
|
30
36
|
export declare const SUPPLIER_COMPARISON_APP_0_0_1: AppSpec;
|
|
31
37
|
export declare const SUPPORT_DESK_APP_0_0_1: AppSpec;
|
|
32
38
|
export declare const TRAVEL_DESK_APP_0_0_1: AppSpec;
|