@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.
Files changed (272) hide show
  1. package/dist-embed/chunks/{AgentDetails-KezohVQI.js → AgentDetails-CMBy5o1q.js} +1 -1
  2. package/dist-embed/chunks/{AgentDetailsDialog-CklhMnk7.js → AgentDetailsDialog-D2vH2Nrd.js} +1 -1
  3. package/dist-embed/chunks/{AgentInspector-CtCaRc1L.js → AgentInspector-Bd0oHNAX.js} +1 -1
  4. package/dist-embed/chunks/{AgentInspectorDialog-DB9cx3Gd.js → AgentInspectorDialog-BJUgBPAE.js} +1 -1
  5. package/dist-embed/chunks/{CellSidebarExtension-CfaJL6DQ.js → CellSidebarExtension-CYOVwk1t.js} +6 -6
  6. package/dist-embed/chunks/ChatView-DIdw1rtZ.js +32 -0
  7. package/dist-embed/chunks/{ContextPie-1vP4f-3N.js → ContextPie-B9mAKJc2.js} +1 -1
  8. package/dist-embed/chunks/{DeckComponent-82GVdsoi.js → DeckComponent-CbmzVWcF.js} +2 -2
  9. package/dist-embed/chunks/{DocumentView-SrJloJDo.js → DocumentView-BqsGfNys.js} +1 -1
  10. package/dist-embed/chunks/{EphemeralDocument-t1KulOH8.js → EphemeralDocument-DLaNvwm_.js} +1 -1
  11. package/dist-embed/chunks/{EphemeralNotebook-Co-WQWCc.js → EphemeralNotebook-jnqAJFPI.js} +1 -1
  12. package/dist-embed/chunks/{ExcalidrawComponent-5NeLUYVB.js → ExcalidrawComponent-Cb8yeXqu.js} +1 -1
  13. package/dist-embed/chunks/{ExcalidrawModal-9ZnOB03n.js → ExcalidrawModal-DaPSGYek.js} +1 -1
  14. package/dist-embed/chunks/{JupyterLexicalExtension-Cize8RXy.js → JupyterLexicalExtension-BQINjIFV.js} +9 -9
  15. package/dist-embed/chunks/{KernelVariables-Cl57Zze1.js → KernelVariables-CGQkS5EX.js} +1 -1
  16. package/dist-embed/chunks/{LexicalToolRegistry-CoM9ROsx.js → LexicalToolRegistry-BJ6mpMWn.js} +1 -1
  17. package/dist-embed/chunks/{NotebookToolSurfaces-CWfppxBN.js → NotebookToolSurfaces-DiPifvaW.js} +1 -1
  18. package/dist-embed/chunks/{NotebookView-DOf_K74b.js → NotebookView-IX0wNuX8.js} +1 -1
  19. package/dist-embed/chunks/{Output-9DKTscSv.js → Output-B9XAhyoF.js} +1 -1
  20. package/dist-embed/chunks/{SandboxDetailsDialog-BCfDm6MB.js → SandboxDetailsDialog-COCpmo8m.js} +1 -1
  21. package/dist-embed/chunks/{SchemaForm-BOYPrvf8.js → SchemaForm-WIwdKnrk.js} +1 -1
  22. package/dist-embed/chunks/{WidgetVariableView-BTOwHP78.js → WidgetVariableView-BoGROi-A.js} +1 -1
  23. package/dist-embed/chunks/{YouTubePlugin-Bs4zZIB1.js → YouTubePlugin-BEQBWMwx.js} +1 -1
  24. package/dist-embed/chunks/{abnfDiagram-VCTEODGH-D5p59vS_.js → abnfDiagram-VCTEODGH-CG18Hf18.js} +1 -1
  25. package/dist-embed/chunks/{abnfDiagram-VCTEODGH-DRYbUvhc.js → abnfDiagram-VCTEODGH-D3_T0Lze.js} +1 -1
  26. package/dist-embed/chunks/{ar-SA-G6X2FPQ2-D6XRzkBS.js → ar-SA-G6X2FPQ2-BDWXsTdt.js} +1 -1
  27. package/dist-embed/chunks/{architectureDiagram-5GKGNRK7-DQGv0imf.js → architectureDiagram-5GKGNRK7-B1QPAYO8.js} +1 -1
  28. package/dist-embed/chunks/{architectureDiagram-5GKGNRK7-B7ITKDup.js → architectureDiagram-5GKGNRK7-B5kSsKje.js} +1 -1
  29. package/dist-embed/chunks/{az-AZ-76LH7QW2-DBTdUiqp.js → az-AZ-76LH7QW2-BGchGiT7.js} +1 -1
  30. package/dist-embed/chunks/{bg-BG-XCXSNQG7-DuhcsaSL.js → bg-BG-XCXSNQG7-vCII6Zuq.js} +1 -1
  31. package/dist-embed/chunks/{blockDiagram-868be97b-DYe-XTjy.js → blockDiagram-868be97b-BvM0ptp7.js} +1 -1
  32. package/dist-embed/chunks/{blockDiagram-I7D4REHJ-y7tEFo3j.js → blockDiagram-I7D4REHJ-B8BmxOM4.js} +1 -1
  33. package/dist-embed/chunks/{blockDiagram-I7D4REHJ-IltJXCd6.js → blockDiagram-I7D4REHJ-ClwWG8yx.js} +1 -1
  34. package/dist-embed/chunks/{bn-BD-2XOGV67Q-CPFeLVSN.js → bn-BD-2XOGV67Q-Beu9yUTu.js} +1 -1
  35. package/dist-embed/chunks/{c4Diagram-3f4bdde3-Bybp0wky.js → c4Diagram-3f4bdde3-S92W2yOx.js} +1 -1
  36. package/dist-embed/chunks/{c4Diagram-7LVT6UL2-DpaHndz8.js → c4Diagram-7LVT6UL2-CNWW_-u7.js} +1 -1
  37. package/dist-embed/chunks/{c4Diagram-7LVT6UL2-CizxVqqX.js → c4Diagram-7LVT6UL2-nSCKKLuX.js} +1 -1
  38. package/dist-embed/chunks/{ca-ES-6MX7JW3Y-gDR_kEC6.js → ca-ES-6MX7JW3Y-CnEo6YQi.js} +1 -1
  39. package/dist-embed/chunks/{celltoolbartracker-DLF4PWyW.js → celltoolbartracker-CO6V5FhH.js} +1 -1
  40. package/dist-embed/chunks/{chunk-2Q5K7J3B-BI6lURun.js → chunk-2Q5K7J3B--r8j4N5L.js} +1 -1
  41. package/dist-embed/chunks/{chunk-2Q5K7J3B-DWoLSrj9.js → chunk-2Q5K7J3B-D3fTIaw3.js} +1 -1
  42. package/dist-embed/chunks/{chunk-5VM5RSS4-SleuNqDC.js → chunk-5VM5RSS4-D76mXyWz.js} +1 -1
  43. package/dist-embed/chunks/{chunk-5VM5RSS4-CDh4wYym.js → chunk-5VM5RSS4-QmrgOATO.js} +1 -1
  44. package/dist-embed/chunks/{chunk-F27PBJKO-h_FwJMTr.js → chunk-F27PBJKO-DdSgBnK0.js} +1 -1
  45. package/dist-embed/chunks/{chunk-F27PBJKO-AvWsNGYY.js → chunk-F27PBJKO-DvNrStTM.js} +1 -1
  46. package/dist-embed/chunks/{chunk-IMKFNOWR-DGRceKiU.js → chunk-IMKFNOWR-DpxND1Ct.js} +1 -1
  47. package/dist-embed/chunks/{chunk-IMKFNOWR-Hx4a5yny.js → chunk-IMKFNOWR-DwqmSZhU.js} +1 -1
  48. package/dist-embed/chunks/{chunk-JWPE2WC7-A4gy2qc4.js → chunk-JWPE2WC7-i7V3vMtZ.js} +1 -1
  49. package/dist-embed/chunks/{chunk-JWPE2WC7-BuJactJo.js → chunk-JWPE2WC7-jla8jvq5.js} +1 -1
  50. package/dist-embed/chunks/{chunk-POPQ4Y6H-CFM-817s.js → chunk-POPQ4Y6H-BGCugXU7.js} +1 -1
  51. package/dist-embed/chunks/{chunk-POPQ4Y6H-CmRF80iG.js → chunk-POPQ4Y6H-ofrenTaa.js} +1 -1
  52. package/dist-embed/chunks/{chunk-SVP7TREG-CryZx9JE.js → chunk-SVP7TREG-2Q2uQyQk.js} +1 -1
  53. package/dist-embed/chunks/{chunk-SVP7TREG-DSNzmytH.js → chunk-SVP7TREG-BIxxVjkU.js} +1 -1
  54. package/dist-embed/chunks/{chunk-TICWLB2K-DyGS3fIj.js → chunk-TICWLB2K-BqA5q52L.js} +1 -1
  55. package/dist-embed/chunks/{chunk-TICWLB2K-CEaDF8ZJ.js → chunk-TICWLB2K-LNiCmYq5.js} +1 -1
  56. package/dist-embed/chunks/{chunk-XXDRQBXY-8Cnzpdjz.js → chunk-XXDRQBXY-CNMg_gvd.js} +1 -1
  57. package/dist-embed/chunks/{chunk-XXDRQBXY-DxQBcVOz.js → chunk-XXDRQBXY-CqtfA3WC.js} +1 -1
  58. package/dist-embed/chunks/{classDiagram-ZZMXUADV-yvP3zMO3.js → classDiagram-ZZMXUADV-Co0jT9i-.js} +1 -1
  59. package/dist-embed/chunks/{classDiagram-ZZMXUADV-BQkO1UYr.js → classDiagram-ZZMXUADV-D6z_X195.js} +1 -1
  60. package/dist-embed/chunks/{classDiagram-f62afe4f-AYfpYKtp.js → classDiagram-f62afe4f-lN62p17q.js} +1 -1
  61. package/dist-embed/chunks/{classDiagram-v2-604399ef-BWyNcT_y.js → classDiagram-v2-604399ef-B_QJ6H8h.js} +1 -1
  62. package/dist-embed/chunks/{classDiagram-v2-VYDZK3BY-yvP3zMO3.js → classDiagram-v2-VYDZK3BY-Co0jT9i-.js} +1 -1
  63. package/dist-embed/chunks/{classDiagram-v2-VYDZK3BY-BQkO1UYr.js → classDiagram-v2-VYDZK3BY-D6z_X195.js} +1 -1
  64. package/dist-embed/chunks/{code-block-IT6T5CEO-F4BSIGY6.js → code-block-IT6T5CEO-BA38Km-f.js} +1 -1
  65. package/dist-embed/chunks/{component-DMQ8W8n1.js → component-Chor_J7e.js} +1 -1
  66. package/dist-embed/chunks/{cose-bilkent-JH36ORCC-C3HC0XIY.js → cose-bilkent-JH36ORCC-B5H1cwBa.js} +1 -1
  67. package/dist-embed/chunks/{cose-bilkent-JH36ORCC-MVxlcfpd.js → cose-bilkent-JH36ORCC-C3cTgEcU.js} +1 -1
  68. package/dist-embed/chunks/{createText-aed3d8b3-CEJODAXJ.js → createText-aed3d8b3-BtgHeyNs.js} +1 -1
  69. package/dist-embed/chunks/{cs-CZ-2BRQDIVT-BXQxcYp6.js → cs-CZ-2BRQDIVT-ClBKH9_y.js} +1 -1
  70. package/dist-embed/chunks/{cynefinDiagram-5FMLGOSQ-DNRKTIHx.js → cynefinDiagram-5FMLGOSQ-DPQLh9z7.js} +1 -1
  71. package/dist-embed/chunks/{cynefinDiagram-5FMLGOSQ-D87ENxS0.js → cynefinDiagram-5FMLGOSQ-sdsAonZm.js} +1 -1
  72. package/dist-embed/chunks/{da-DK-5WZEPLOC-Ck3vidj3.js → da-DK-5WZEPLOC-BqFDUAty.js} +1 -1
  73. package/dist-embed/chunks/{dagre-GXQ25YYZ-BOhThFKd.js → dagre-GXQ25YYZ-Bwf_WjLM.js} +1 -1
  74. package/dist-embed/chunks/{dagre-GXQ25YYZ-DscCD5Uq.js → dagre-GXQ25YYZ-DHF-9-7e.js} +1 -1
  75. package/dist-embed/chunks/{de-DE-XR44H4JA-CPZgrOuc.js → de-DE-XR44H4JA-6dsEQn7Z.js} +1 -1
  76. package/dist-embed/chunks/{diagram-S7CK7UJ4-zDQduoQy.js → diagram-S7CK7UJ4-C-N7Ei3I.js} +1 -1
  77. package/dist-embed/chunks/{diagram-S7CK7UJ4-CUhme3Bl.js → diagram-S7CK7UJ4-DEqGRBMT.js} +1 -1
  78. package/dist-embed/chunks/{diagram-UQ7AKVKN-BxhQPjAM.js → diagram-UQ7AKVKN-CvSBE0YU.js} +1 -1
  79. package/dist-embed/chunks/{diagram-UQ7AKVKN-Byi-v8UN.js → diagram-UQ7AKVKN-DACyxI-v.js} +1 -1
  80. package/dist-embed/chunks/{diagram-VSXAHHWV-au-v2v9D.js → diagram-VSXAHHWV-DFze2xro.js} +1 -1
  81. package/dist-embed/chunks/{diagram-VSXAHHWV-CqihYkDH.js → diagram-VSXAHHWV-DOb69VtE.js} +1 -1
  82. package/dist-embed/chunks/{diagram-VX7I27RA-Cd5PaF_n.js → diagram-VX7I27RA-8EKYM_Sx.js} +1 -1
  83. package/dist-embed/chunks/{diagram-VX7I27RA-ETzwrw79.js → diagram-VX7I27RA-CVTSdYyZ.js} +1 -1
  84. package/dist-embed/chunks/{diagram-Z3DM3KII-DkbsvY2A.js → diagram-Z3DM3KII-B-689FF6.js} +1 -1
  85. package/dist-embed/chunks/{diagram-Z3DM3KII-AcMuRFo5.js → diagram-Z3DM3KII-DyiBmBFy.js} +1 -1
  86. package/dist-embed/chunks/{ebnfDiagram-PWID7BFC-DuWfMZcD.js → ebnfDiagram-PWID7BFC-DcKvqn_h.js} +1 -1
  87. package/dist-embed/chunks/{ebnfDiagram-PWID7BFC-BrEs-SB2.js → ebnfDiagram-PWID7BFC-gj8dgCWR.js} +1 -1
  88. package/dist-embed/chunks/{edges-b2856ca0-Czd3-xvj.js → edges-b2856ca0-BqGGNnb4.js} +1 -1
  89. package/dist-embed/chunks/{el-GR-BZB4AONW-CjQSkw0P.js → el-GR-BZB4AONW-DOMW2ttY.js} +1 -1
  90. package/dist-embed/chunks/{erDiagram-5d81789a-JegaF4gy.js → erDiagram-5d81789a-Bf1Ik49K.js} +1 -1
  91. package/dist-embed/chunks/{erDiagram-RLTQ6QDP-xubaXuKR.js → erDiagram-RLTQ6QDP-B0PyZB_3.js} +1 -1
  92. package/dist-embed/chunks/{erDiagram-RLTQ6QDP-Cpn6_cd1.js → erDiagram-RLTQ6QDP-GSu-_IUJ.js} +1 -1
  93. package/dist-embed/chunks/{es-ES-U4NZUMDT-CQz3Tsxk.js → es-ES-U4NZUMDT-DeyWqjw1.js} +1 -1
  94. package/dist-embed/chunks/{eu-ES-A7QVB2H4-DPwxHXvP.js → eu-ES-A7QVB2H4-CUGbZ0Pv.js} +1 -1
  95. package/dist-embed/chunks/{fa-IR-HGAKTJCU-DlQyRFJP.js → fa-IR-HGAKTJCU-Br8UEVO1.js} +1 -1
  96. package/dist-embed/chunks/{fi-FI-Z5N7JZ37-BL9Dv0rT.js → fi-FI-Z5N7JZ37-BSHjwo8G.js} +1 -1
  97. package/dist-embed/chunks/{flowDb-185abca5-BN_8lgCO.js → flowDb-185abca5-U9PwWSO4.js} +1 -1
  98. package/dist-embed/chunks/{flowDiagram-1629c991-YRlRqB59.js → flowDiagram-1629c991-BecgzQgp.js} +1 -1
  99. package/dist-embed/chunks/{flowDiagram-HODETNUW-lW-icIxi.js → flowDiagram-HODETNUW-2vih3kWM.js} +1 -1
  100. package/dist-embed/chunks/{flowDiagram-HODETNUW-CzRvxVGK.js → flowDiagram-HODETNUW-tcAkcGh4.js} +1 -1
  101. package/dist-embed/chunks/{flowDiagram-v2-1d953310-DBFSFroi.js → flowDiagram-v2-1d953310-Bdmc9G3m.js} +1 -1
  102. package/dist-embed/chunks/{flowchart-elk-definition-6df44142-RjL83g27.js → flowchart-elk-definition-6df44142-oWOWsVNc.js} +1 -1
  103. package/dist-embed/chunks/{fr-FR-RHASNOE6-xB7HyFVv.js → fr-FR-RHASNOE6-BukqZYPz.js} +1 -1
  104. package/dist-embed/chunks/{ganttDiagram-3b0b3873-Dowe9cKl.js → ganttDiagram-3b0b3873-B7lmD9r9.js} +1 -1
  105. package/dist-embed/chunks/{ganttDiagram-EL5Y4UJY-CNQPBdAP.js → ganttDiagram-EL5Y4UJY-D0E7se_Z.js} +1 -1
  106. package/dist-embed/chunks/{ganttDiagram-EL5Y4UJY-CLaynGwe.js → ganttDiagram-EL5Y4UJY-DDbqMevq.js} +1 -1
  107. package/dist-embed/chunks/{gitGraphDiagram-WWUBYQGX-CupHqYWl.js → gitGraphDiagram-WWUBYQGX-DK3EJl5z.js} +1 -1
  108. package/dist-embed/chunks/{gitGraphDiagram-WWUBYQGX-CDuBbPX3.js → gitGraphDiagram-WWUBYQGX-DnVwXJWu.js} +1 -1
  109. package/dist-embed/chunks/{gitGraphDiagram-f01e8bc2-C06Sje1n.js → gitGraphDiagram-f01e8bc2-B9vpLy6R.js} +1 -1
  110. package/dist-embed/chunks/{gl-ES-HMX3MZ6V-BX50ltap.js → gl-ES-HMX3MZ6V-BxVOJiaI.js} +1 -1
  111. package/dist-embed/chunks/{he-IL-6SHJWFNN-DR3hLzYG.js → he-IL-6SHJWFNN-Dv2VRxlJ.js} +1 -1
  112. package/dist-embed/chunks/{hi-IN-IWLTKZ5I-C3bSDqVc.js → hi-IN-IWLTKZ5I-CFo5RUMz.js} +1 -1
  113. package/dist-embed/chunks/{hu-HU-A5ZG7DT2--mRUDQG6.js → hu-HU-A5ZG7DT2-ul3dS3un.js} +1 -1
  114. package/dist-embed/chunks/{id-ID-SAP4L64H-D6psdwdp.js → id-ID-SAP4L64H-ItVb-zwI.js} +1 -1
  115. package/dist-embed/chunks/{index-qsUgit40.js → index-7FNjj0f2.js} +1 -1
  116. package/dist-embed/chunks/{index-9bae90f3-BY7E8HZU.js → index-9bae90f3-D9849sgo.js} +1 -1
  117. package/dist-embed/chunks/{index-DToDguC3.js → index-B-L6ocEV.js} +1 -1
  118. package/dist-embed/chunks/{index-C01nR1dW.js → index-B0wMyD8Y.js} +1 -1
  119. package/dist-embed/chunks/{index-BzXMsI1v.js → index-B5zrJYwn.js} +6 -6
  120. package/dist-embed/chunks/{index-DcZQ2Oqj.js → index-B764si9c.js} +1 -1
  121. package/dist-embed/chunks/{index-3O3ob63z.js → index-BM6oRiO1.js} +1 -1
  122. package/dist-embed/chunks/{index-DVUMPcVw.js → index-BNFRRs9d.js} +1 -1
  123. package/dist-embed/chunks/{index-D0DBuFMt.js → index-BOYhJnrD.js} +1 -1
  124. package/dist-embed/chunks/{index-CA8D7U2s.js → index-BT4vYFeY.js} +1 -1
  125. package/dist-embed/chunks/{index-C8IekrmL.js → index-BfUXEHI0.js} +1 -1
  126. package/dist-embed/chunks/{index-DvWWLOj6.js → index-BiTIdbkn.js} +1 -1
  127. package/dist-embed/chunks/{index-BhU2ra4k.js → index-BkKEXqQS.js} +1 -1
  128. package/dist-embed/chunks/{index-CpcHHQd7.js → index-BqMoyzEk.js} +1 -1
  129. package/dist-embed/chunks/{index-D1lY79hS.js → index-BrD9dtoV.js} +1 -1
  130. package/dist-embed/chunks/{index-B063q-PC.js → index-CRpZyQIR.js} +4 -4
  131. package/dist-embed/chunks/{index-BblwlEJB.js → index-CZdWsyNw.js} +1 -1
  132. package/dist-embed/chunks/{index-Azo_wV3K.js → index-CjM49jS0.js} +1 -1
  133. package/dist-embed/chunks/{index-rfsiH_M6.js → index-Cp2aJ2ZR.js} +1 -1
  134. package/dist-embed/chunks/{index-Cknn3VQD.js → index-Cql9gOsL.js} +1 -1
  135. package/dist-embed/chunks/{index-jy9kOmqu.js → index-CsgaCZaW.js} +1 -1
  136. package/dist-embed/chunks/{index-DB46n9Tf.js → index-CsxlyZef.js} +1 -1
  137. package/dist-embed/chunks/{index-MTdX216X.js → index-D2LvuQlP.js} +1 -1
  138. package/dist-embed/chunks/{index-s3hayhRS.js → index-DQQXY-7d.js} +2 -2
  139. package/dist-embed/chunks/{index-B0KVfQGJ.js → index-DSF21-29.js} +1 -1
  140. package/dist-embed/chunks/{index-BYMZi_1t.js → index-DSvebR7d.js} +1 -1
  141. package/dist-embed/chunks/{index-a51XM5L8.js → index-DoBEQ07P.js} +3 -3
  142. package/dist-embed/chunks/{index-kpqZuE4J.js → index-O2jaI8TY.js} +1 -1
  143. package/dist-embed/chunks/{index-C6wF35Kk.js → index-QZ3sHHT3.js} +1 -1
  144. package/dist-embed/chunks/{index-BlWZloLe.js → index-TEcp7-f6.js} +2 -2
  145. package/dist-embed/chunks/{index-EpYurdzk.js → index-YlGTgJvL.js} +5 -5
  146. package/dist-embed/chunks/{index-CUL9WiLS.js → index-bm8APcDZ.js} +1 -1
  147. package/dist-embed/chunks/{index-BipXK1tF.js → index-jh9S19of.js} +1 -1
  148. package/dist-embed/chunks/{index-C643Hfu1.js → index-oGqh9y23.js} +1 -1
  149. package/dist-embed/chunks/{index-BdvS7Q4t.js → index-xiH3WzLm.js} +1 -1
  150. package/dist-embed/chunks/{index.esm-CWygaJYM.js → index.esm-B7KoTOBb.js} +1 -1
  151. package/dist-embed/chunks/{index.esm-DYeUXS4c.js → index.esm-CkSite-X.js} +1 -1
  152. package/dist-embed/chunks/{infoDiagram-27XIBGKW-Ctm-zk09.js → infoDiagram-27XIBGKW-DDO50Ria.js} +1 -1
  153. package/dist-embed/chunks/{infoDiagram-27XIBGKW-DRzH33_4.js → infoDiagram-27XIBGKW-O3q53Qe2.js} +1 -1
  154. package/dist-embed/chunks/{infoDiagram-a29d40f1-c78-ZMuT.js → infoDiagram-a29d40f1-jOvOHUyu.js} +1 -1
  155. package/dist-embed/chunks/{isEqual-niFNV5MZ.js → isEqual-CGLTk7wU.js} +1 -1
  156. package/dist-embed/chunks/{ishikawaDiagram-5VMMS53U-DKv5KL85.js → ishikawaDiagram-5VMMS53U-DuiWhpVW.js} +1 -1
  157. package/dist-embed/chunks/{ishikawaDiagram-5VMMS53U-CILSTTqm.js → ishikawaDiagram-5VMMS53U-IzmbYzxv.js} +1 -1
  158. package/dist-embed/chunks/{it-IT-JPQ66NNP-BfrG_atL.js → it-IT-JPQ66NNP-BuCUBzia.js} +1 -1
  159. package/dist-embed/chunks/{ja-JP-DBVTYXUO-sahpmNGY.js → ja-JP-DBVTYXUO-BhtQz4sy.js} +1 -1
  160. package/dist-embed/chunks/{journeyDiagram-3NMN7TZE-CSMQRlsr.js → journeyDiagram-3NMN7TZE-DGLcsVfC.js} +1 -1
  161. package/dist-embed/chunks/{journeyDiagram-3NMN7TZE-DlMPiHSP.js → journeyDiagram-3NMN7TZE-sO-Cfp65.js} +1 -1
  162. package/dist-embed/chunks/{journeyDiagram-95396277-VzHClVrX.js → journeyDiagram-95396277-CA4bGq0G.js} +1 -1
  163. package/dist-embed/chunks/{kaa-6HZHGXH3-BrkhtXQj.js → kaa-6HZHGXH3-B_TI8Aa0.js} +1 -1
  164. package/dist-embed/chunks/{kab-KAB-ZGHBKWFO-DwtFIV_I.js → kab-KAB-ZGHBKWFO-BsSg_l-j.js} +1 -1
  165. package/dist-embed/chunks/{kanban-definition-UXKFOSKX-BkxvAXq2.js → kanban-definition-UXKFOSKX-0wjvwDqk.js} +1 -1
  166. package/dist-embed/chunks/{kanban-definition-UXKFOSKX-esf1amn7.js → kanban-definition-UXKFOSKX-CDtLkjnU.js} +1 -1
  167. package/dist-embed/chunks/{kk-KZ-P5N5QNE5-UxN1LGH5.js → kk-KZ-P5N5QNE5-B7XK5OQq.js} +1 -1
  168. package/dist-embed/chunks/{km-KH-HSX4SM5Z-B7lolfpy.js → km-KH-HSX4SM5Z-Cm2LA9F8.js} +1 -1
  169. package/dist-embed/chunks/{ko-KR-MTYHY66A-CnxefCaN.js → ko-KR-MTYHY66A-CL5s99y5.js} +1 -1
  170. package/dist-embed/chunks/{ku-TR-6OUDTVRD-Bt7bmFnv.js → ku-TR-6OUDTVRD-CiijvKHq.js} +1 -1
  171. package/dist-embed/chunks/{layout-D7Mk1riq.js → layout-BBbB54WC.js} +1 -1
  172. package/dist-embed/chunks/{layout-Sl9Lf6Ae.js → layout-CzrlbzeK.js} +1 -1
  173. package/dist-embed/chunks/{lexicalHooks-DKF-DsxG.js → lexicalHooks-DQxNZEiJ.js} +1 -1
  174. package/dist-embed/chunks/{lt-LT-XHIRWOB4-D6qkXs9m.js → lt-LT-XHIRWOB4-CcA_Z5jR.js} +1 -1
  175. package/dist-embed/chunks/{lv-LV-5QDEKY6T-D8g27j86.js → lv-LV-5QDEKY6T-CAQS9wGm.js} +1 -1
  176. package/dist-embed/chunks/{mermaid.core-BhiOhb5K.js → mermaid.core-DfgoT1cz.js} +3 -3
  177. package/dist-embed/chunks/{mermaid.core-CRlujv29.js → mermaid.core-s-D09gpV.js} +5 -5
  178. package/dist-embed/chunks/{mindmap-definition-YA3MSWOX-eCxs0BsL.js → mindmap-definition-YA3MSWOX-B6_K5ZvV.js} +1 -1
  179. package/dist-embed/chunks/{mindmap-definition-YA3MSWOX-BJQsz4H1.js → mindmap-definition-YA3MSWOX-BCiSPRJk.js} +1 -1
  180. package/dist-embed/chunks/{mindmap-definition-e4c1d938-DoGG9eDO.js → mindmap-definition-e4c1d938-D7gmABiC.js} +1 -1
  181. package/dist-embed/chunks/{mr-IN-CRQNXWMA-CMbVGyJm.js → mr-IN-CRQNXWMA-DMAAvsDA.js} +1 -1
  182. package/dist-embed/chunks/{my-MM-5M5IBNSE-B-KPsx1j.js → my-MM-5M5IBNSE-t2TKqrjW.js} +1 -1
  183. package/dist-embed/chunks/{nb-NO-T6EIAALU-Cl7QLAt7.js → nb-NO-T6EIAALU-Bi3ZI-HQ.js} +1 -1
  184. package/dist-embed/chunks/{nl-NL-IS3SIHDZ-Brzte_o2.js → nl-NL-IS3SIHDZ-B8UdlW1K.js} +1 -1
  185. package/dist-embed/chunks/{nn-NO-6E72VCQL-CzCKEx02.js → nn-NO-6E72VCQL-Bt87hI27.js} +1 -1
  186. package/dist-embed/chunks/{oc-FR-POXYY2M6-DA72PkVY.js → oc-FR-POXYY2M6-009NL0Pk.js} +1 -1
  187. package/dist-embed/chunks/{pa-IN-N4M65BXN-CzkFYtL0.js → pa-IN-N4M65BXN-BfUtS2yt.js} +1 -1
  188. package/dist-embed/chunks/{pegDiagram-XKGWAZYB-CD3xZvKE.js → pegDiagram-XKGWAZYB-BX0ZYMng.js} +1 -1
  189. package/dist-embed/chunks/{pegDiagram-XKGWAZYB-CV-d6HkK.js → pegDiagram-XKGWAZYB-CBrnWUaX.js} +1 -1
  190. package/dist-embed/chunks/{percentages-BXMCSKIN-mjCCp4uI.js → percentages-BXMCSKIN-CfzulzOv.js} +5 -5
  191. package/dist-embed/chunks/{pieDiagram-E7YTZNPT-toANOh_O.js → pieDiagram-E7YTZNPT-B1My5W85.js} +1 -1
  192. package/dist-embed/chunks/{pieDiagram-E7YTZNPT-DipS--g7.js → pieDiagram-E7YTZNPT-Ct8dzoLU.js} +1 -1
  193. package/dist-embed/chunks/{pieDiagram-c941bede-DytniBrW.js → pieDiagram-c941bede-7DZ-Bl8U.js} +1 -1
  194. package/dist-embed/chunks/{pl-PL-T2D74RX3-F4ebFTYK.js → pl-PL-T2D74RX3-DbtOl9_x.js} +1 -1
  195. package/dist-embed/chunks/{pt-BR-5N22H2LF-B5i8LuE4.js → pt-BR-5N22H2LF-B1pjR1_T.js} +1 -1
  196. package/dist-embed/chunks/{pt-PT-UZXXM6DQ-BQ7hfRRg.js → pt-PT-UZXXM6DQ-takC7TRa.js} +1 -1
  197. package/dist-embed/chunks/{quadrantDiagram-AXDQQJYC-D_j5dzK-.js → quadrantDiagram-AXDQQJYC-B1mlT7fN.js} +1 -1
  198. package/dist-embed/chunks/{quadrantDiagram-AXDQQJYC-DlhtjZ-k.js → quadrantDiagram-AXDQQJYC-B7p4unpj.js} +1 -1
  199. package/dist-embed/chunks/{quadrantDiagram-cf8b8fe0-BQ2yjLYu.js → quadrantDiagram-cf8b8fe0-CTMh_Ad5.js} +1 -1
  200. package/dist-embed/chunks/{railroadDiagram-O6MQD6OU-CZFkdwSz.js → railroadDiagram-O6MQD6OU-CJEwr5d9.js} +1 -1
  201. package/dist-embed/chunks/{railroadDiagram-O6MQD6OU-aWlxxhLc.js → railroadDiagram-O6MQD6OU-xr8bPIl7.js} +1 -1
  202. package/dist-embed/chunks/{renderer-2D5v6hpK.js → renderer-Ba0Cwb4p.js} +1 -1
  203. package/dist-embed/chunks/{requirementDiagram-53bda41b-CWV_b9FE.js → requirementDiagram-53bda41b-Dv1Piop_.js} +1 -1
  204. package/dist-embed/chunks/{requirementDiagram-BXWQKSXE-EVwiX2gg.js → requirementDiagram-BXWQKSXE-Bw89vFiC.js} +1 -1
  205. package/dist-embed/chunks/{requirementDiagram-BXWQKSXE-BSF51uZZ.js → requirementDiagram-BXWQKSXE-rabT3v-j.js} +1 -1
  206. package/dist-embed/chunks/{ro-RO-JPDTUUEW-BdcZRS6h.js → ro-RO-JPDTUUEW-DkkqyFBF.js} +1 -1
  207. package/dist-embed/chunks/{ru-RU-B4JR7IUQ-Cta1z8f6.js → ru-RU-B4JR7IUQ-CikD-ITp.js} +1 -1
  208. package/dist-embed/chunks/{sankeyDiagram-P5KCCOFB-BqD6w06O.js → sankeyDiagram-P5KCCOFB-5SpI76uK.js} +1 -1
  209. package/dist-embed/chunks/{sankeyDiagram-P5KCCOFB-t6rHaBZJ.js → sankeyDiagram-P5KCCOFB-D--cx9I2.js} +1 -1
  210. package/dist-embed/chunks/{sankeyDiagram-c3ef121a-C9O52Zx9.js → sankeyDiagram-c3ef121a-DbhtSWkB.js} +1 -1
  211. package/dist-embed/chunks/{sequenceDiagram-82a5b84f-Dga-BwWi.js → sequenceDiagram-82a5b84f-DpxBSKAk.js} +1 -1
  212. package/dist-embed/chunks/{sequenceDiagram-WJ2MYXX4-ih6W0378.js → sequenceDiagram-WJ2MYXX4-DGNwWgf8.js} +1 -1
  213. package/dist-embed/chunks/{sequenceDiagram-WJ2MYXX4-DphVeQVS.js → sequenceDiagram-WJ2MYXX4-D_wK-z7a.js} +1 -1
  214. package/dist-embed/chunks/{sessions-APuuDN3K.js → sessions-DQkTozai.js} +1 -1
  215. package/dist-embed/chunks/{si-LK-N5RQ5JYF-DYy_OKHx.js → si-LK-N5RQ5JYF-BqlWRhwK.js} +1 -1
  216. package/dist-embed/chunks/{sizeCapture-INFHLROL-o0dzt8-T.js → sizeCapture-INFHLROL-4Uh8JUjf.js} +1 -1
  217. package/dist-embed/chunks/{sizeCapture-INFHLROL-CxIMCruL.js → sizeCapture-INFHLROL-g-K-6XON.js} +1 -1
  218. package/dist-embed/chunks/{sk-SK-C5VTKIMK-B4A8rgzq.js → sk-SK-C5VTKIMK-DGsmi02E.js} +1 -1
  219. package/dist-embed/chunks/{sl-SI-NN7IZMDC-Dn2yU1RA.js → sl-SI-NN7IZMDC-HFz45GOs.js} +1 -1
  220. package/dist-embed/chunks/{stateDiagram-43e79a5f-RBFnM6HD.js → stateDiagram-43e79a5f-DxbV4jP9.js} +1 -1
  221. package/dist-embed/chunks/{stateDiagram-D77RDMKH-R5RRRvFY.js → stateDiagram-D77RDMKH-C_wYpqah.js} +1 -1
  222. package/dist-embed/chunks/{stateDiagram-D77RDMKH-DUbaZs3a.js → stateDiagram-D77RDMKH-D-l3u-WY.js} +1 -1
  223. package/dist-embed/chunks/{stateDiagram-v2-2041ed4f-O5FpnsEz.js → stateDiagram-v2-2041ed4f-BzxzaDdI.js} +1 -1
  224. package/dist-embed/chunks/{stateDiagram-v2-MP3YSRHH-xKTLvXGN.js → stateDiagram-v2-MP3YSRHH-BGYkOvTS.js} +1 -1
  225. package/dist-embed/chunks/{stateDiagram-v2-MP3YSRHH-CxTXB7mT.js → stateDiagram-v2-MP3YSRHH-IEMNMwm0.js} +1 -1
  226. package/dist-embed/chunks/{styles-455b33cd-D4Xv2qYx.js → styles-455b33cd-C42Lyulv.js} +1 -1
  227. package/dist-embed/chunks/{styles-f932cba9-BRIqeB8k.js → styles-f932cba9-Bf6H3IMq.js} +1 -1
  228. package/dist-embed/chunks/{styles-fcc2142b-CSNd2DtU.js → styles-fcc2142b-OZg6fE-p.js} +1 -1
  229. package/dist-embed/chunks/{subset-shared.chunk-SugOGKH0.js → subset-shared.chunk-KC0vshev.js} +1 -1
  230. package/dist-embed/chunks/{subset-worker.chunk-CHn-RJwQ.js → subset-worker.chunk-CXZAV_Z5.js} +1 -1
  231. package/dist-embed/chunks/{sv-SE-XGPEYMSR-DIGNKjA1.js → sv-SE-XGPEYMSR-yEdPvwHy.js} +1 -1
  232. package/dist-embed/chunks/{svgDrawCommon-148a3cd9-ioBjWI45.js → svgDrawCommon-148a3cd9-D9MRwoYw.js} +1 -1
  233. package/dist-embed/chunks/{swimlanes-42K2YHIH-DID4P1mJ.js → swimlanes-42K2YHIH-CPkom4Q8.js} +1 -1
  234. package/dist-embed/chunks/{swimlanes-42K2YHIH-BPXSOfWl.js → swimlanes-42K2YHIH-DJLFcHMt.js} +1 -1
  235. package/dist-embed/chunks/{swimlanesDiagram-VR7AAH4N-C5LAWW5q.js → swimlanesDiagram-VR7AAH4N-BJOhuN-y.js} +1 -1
  236. package/dist-embed/chunks/{swimlanesDiagram-VR7AAH4N-B216TpFb.js → swimlanesDiagram-VR7AAH4N-BRTtY1QX.js} +1 -1
  237. package/dist-embed/chunks/{ta-IN-2NMHFXQM-h5n2V9ms.js → ta-IN-2NMHFXQM-0i424YGX.js} +1 -1
  238. package/dist-embed/chunks/{th-TH-HPSO5L25-DPUFV7b6.js → th-TH-HPSO5L25-BidF5zNO.js} +1 -1
  239. package/dist-embed/chunks/{timeline-definition-24CTP7MA-CsrTDzso.js → timeline-definition-24CTP7MA-BasSLg-_.js} +1 -1
  240. package/dist-embed/chunks/{timeline-definition-24CTP7MA-Y3tUsmSp.js → timeline-definition-24CTP7MA-BfGIJi1H.js} +1 -1
  241. package/dist-embed/chunks/{timeline-definition-7545f45a-Dwe7O50H.js → timeline-definition-7545f45a-BWwgvKxJ.js} +1 -1
  242. package/dist-embed/chunks/{tr-TR-DEFEU3FU-BezJkdMx.js → tr-TR-DEFEU3FU-BoHR9SlC.js} +1 -1
  243. package/dist-embed/chunks/{uk-UA-QMV73CPH-CqILlosm.js → uk-UA-QMV73CPH-DfRkqqO0.js} +1 -1
  244. package/dist-embed/chunks/{vennDiagram-4TSXK5OY-BhVdyHxt.js → vennDiagram-4TSXK5OY-D1T__rd2.js} +1 -1
  245. package/dist-embed/chunks/{vennDiagram-4TSXK5OY-ClTlC2ql.js → vennDiagram-4TSXK5OY-DMIYCfJ-.js} +1 -1
  246. package/dist-embed/chunks/{vi-VN-M7AON7JQ-CnkPVQ0a.js → vi-VN-M7AON7JQ-CvZ4wpTw.js} +1 -1
  247. package/dist-embed/chunks/{wardleyDiagram-VM6X3IG4-kS16z5iB.js → wardleyDiagram-VM6X3IG4-CiKuFI26.js} +1 -1
  248. package/dist-embed/chunks/{wardleyDiagram-VM6X3IG4-DbWIMpvU.js → wardleyDiagram-VM6X3IG4-DtlNUHLy.js} +1 -1
  249. package/dist-embed/chunks/{xychartDiagram-3f383b91-DYoT_EjG.js → xychartDiagram-3f383b91-DzyuxW4K.js} +1 -1
  250. package/dist-embed/chunks/{xychartDiagram-S5SC5T6Z-KeQp-cQ1.js → xychartDiagram-S5SC5T6Z-BIeFUHrS.js} +1 -1
  251. package/dist-embed/chunks/{xychartDiagram-S5SC5T6Z-CdwuwQAF.js → xychartDiagram-S5SC5T6Z-p6pYRkk6.js} +1 -1
  252. package/dist-embed/chunks/{zh-CN-LNUGB5OW-CNdfctAT.js → zh-CN-LNUGB5OW-Cx1Azgu2.js} +1 -1
  253. package/dist-embed/chunks/{zh-HK-E62DVLB3-DEXwa5-T.js → zh-HK-E62DVLB3-DMjy1d4Z.js} +1 -1
  254. package/dist-embed/chunks/{zh-TW-RAJ6MFWO-BF7cCYAK.js → zh-TW-RAJ6MFWO-J-YjINmR.js} +1 -1
  255. package/dist-embed/datalayer-app-main.js +66 -66
  256. package/lib/apps/apps/appspec.d.ts +10 -1
  257. package/lib/apps/apps/appspec.js +64 -6
  258. package/lib/apps/core/index.d.ts +26 -0
  259. package/lib/apps/core/index.js +20 -0
  260. package/lib/apps/plugins/chat/ChatView.js +21 -4
  261. package/lib/protocols/ucp/index.d.ts +4 -0
  262. package/lib/protocols/ucp/index.js +31 -1
  263. package/lib/protocols/ucp/merchant.js +27 -2
  264. package/lib/specs/actions.js +13 -0
  265. package/lib/specs/apps.d.ts +6 -0
  266. package/lib/specs/apps.js +1747 -149
  267. package/lib/specs/appspecSchema.js +75 -2
  268. package/lib/specs/scenes.d.ts +2 -0
  269. package/lib/specs/scenes.js +338 -0
  270. package/lib/types/agentspecs.d.ts +32 -1
  271. package/package.json +1 -1
  272. 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. */
@@ -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
- return new Writer().list('connections', pact.connections.map(connection => new Writer()
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)).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
- if (isData(data.pap)) {
946
- app.pap = parsePap(data.pap);
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 && app.pact.connections.length > 0),
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)) {
@@ -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;
@@ -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
- placeholder: disabledReason ?? placeholder,
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
- return { status: 200, body: render(checkout) };
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') {
@@ -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': {},
@@ -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;