@datalayer/agent-runtimes 1.5.0 → 1.5.2

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 (304) hide show
  1. package/dist-embed/chunks/{AgentDetails-Bo0dD1KS.js → AgentDetails-KezohVQI.js} +1 -1
  2. package/dist-embed/chunks/{AgentDetailsDialog-JjCHYxMG.js → AgentDetailsDialog-CklhMnk7.js} +1 -1
  3. package/dist-embed/chunks/{AgentInspector-37Onz4of.js → AgentInspector-CtCaRc1L.js} +1 -1
  4. package/dist-embed/chunks/{AgentInspectorDialog-CCzGVAtX.js → AgentInspectorDialog-DB9cx3Gd.js} +1 -1
  5. package/dist-embed/chunks/Avatar-9MpXENSs.js +1 -0
  6. package/dist-embed/chunks/{CellSidebarExtension-CQlXdanG.js → CellSidebarExtension-CfaJL6DQ.js} +6 -6
  7. package/dist-embed/chunks/{ChatView-CaBuPTyG.js → ChatView-B3QqHhAP.js} +4 -4
  8. package/dist-embed/chunks/{ContextPie-DBIUoPrq.js → ContextPie-1vP4f-3N.js} +1 -1
  9. package/dist-embed/chunks/DatalayerAgentBridge-D54Z9BZ3.js +1 -0
  10. package/dist-embed/chunks/{DeckComponent-cRJJMGgt.js → DeckComponent-82GVdsoi.js} +2 -2
  11. package/dist-embed/chunks/{DocumentView-CiqN9ze6.js → DocumentView-SrJloJDo.js} +2 -2
  12. package/dist-embed/chunks/{EphemeralDocument-BjJfn7J-.js → EphemeralDocument-t1KulOH8.js} +1 -1
  13. package/dist-embed/chunks/{EphemeralNotebook-DbS4f6yr.js → EphemeralNotebook-Co-WQWCc.js} +2 -2
  14. package/dist-embed/chunks/{ExcalidrawComponent-BtNXWUN8.js → ExcalidrawComponent-5NeLUYVB.js} +1 -1
  15. package/dist-embed/chunks/{ExcalidrawModal-C6SEKFlD.js → ExcalidrawModal-9ZnOB03n.js} +1 -1
  16. package/dist-embed/chunks/{JupyterLexicalExtension-BuRLImy5.js → JupyterLexicalExtension-Cize8RXy.js} +29 -29
  17. package/dist-embed/chunks/{KernelVariables-KCUfxhF4.js → KernelVariables-Cl57Zze1.js} +2 -2
  18. package/dist-embed/chunks/{LexicalToolRegistry-CXLITkMD.js → LexicalToolRegistry-CoM9ROsx.js} +3 -3
  19. package/dist-embed/chunks/{NotebookSkeleton-HdM76lOj.js → NotebookSkeleton-CI7ovjNW.js} +1 -1
  20. package/dist-embed/chunks/{NotebookToolSurfaces-ktcGRm7d.js → NotebookToolSurfaces-CWfppxBN.js} +1 -1
  21. package/dist-embed/chunks/{NotebookToolbar-DMKCe3c2.js → NotebookToolbar-rtMQZWHQ.js} +1 -1
  22. package/dist-embed/chunks/{NotebookView-Pps9dPZ7.js → NotebookView-DOf_K74b.js} +1 -1
  23. package/dist-embed/chunks/{Output-BscOPLqE.js → Output-9DKTscSv.js} +1 -1
  24. package/dist-embed/chunks/{SandboxDetailsDialog-pkvlbdM2.js → SandboxDetailsDialog-BCfDm6MB.js} +1 -1
  25. package/dist-embed/chunks/{SchemaForm-Bqor7hh8.js → SchemaForm-BOYPrvf8.js} +1 -1
  26. package/dist-embed/chunks/{Toolbar-6Hdi_m3T.js → Toolbar-CGQDY041.js} +1 -1
  27. package/dist-embed/chunks/{WidgetVariableView-CJTAKqh1.js → WidgetVariableView-BTOwHP78.js} +1 -1
  28. package/dist-embed/chunks/YouTubePlugin-Bs4zZIB1.js +1 -0
  29. package/dist-embed/chunks/{abnfDiagram-VCTEODGH-CWj4pFxo.js → abnfDiagram-VCTEODGH-D5p59vS_.js} +1 -1
  30. package/dist-embed/chunks/{abnfDiagram-VCTEODGH-B4x7mfou.js → abnfDiagram-VCTEODGH-DRYbUvhc.js} +1 -1
  31. package/dist-embed/chunks/{ar-SA-G6X2FPQ2-BB82iKLz.js → ar-SA-G6X2FPQ2-D6XRzkBS.js} +1 -1
  32. package/dist-embed/chunks/{architectureDiagram-5GKGNRK7-CRIN999O.js → architectureDiagram-5GKGNRK7-B7ITKDup.js} +1 -1
  33. package/dist-embed/chunks/{architectureDiagram-5GKGNRK7-B2D6lZbf.js → architectureDiagram-5GKGNRK7-DQGv0imf.js} +1 -1
  34. package/dist-embed/chunks/{az-AZ-76LH7QW2-DsMRKXlw.js → az-AZ-76LH7QW2-DBTdUiqp.js} +1 -1
  35. package/dist-embed/chunks/{bg-BG-XCXSNQG7-43Y1kPxa.js → bg-BG-XCXSNQG7-DuhcsaSL.js} +1 -1
  36. package/dist-embed/chunks/{blockDiagram-868be97b-bBp9uGVj.js → blockDiagram-868be97b-DYe-XTjy.js} +1 -1
  37. package/dist-embed/chunks/{blockDiagram-I7D4REHJ-DNdo_mUi.js → blockDiagram-I7D4REHJ-IltJXCd6.js} +1 -1
  38. package/dist-embed/chunks/{blockDiagram-I7D4REHJ-CPHEppLa.js → blockDiagram-I7D4REHJ-y7tEFo3j.js} +1 -1
  39. package/dist-embed/chunks/{bn-BD-2XOGV67Q-CLqPJBll.js → bn-BD-2XOGV67Q-CPFeLVSN.js} +1 -1
  40. package/dist-embed/chunks/{c4Diagram-3f4bdde3-cYZlcE7E.js → c4Diagram-3f4bdde3-Bybp0wky.js} +1 -1
  41. package/dist-embed/chunks/{c4Diagram-7LVT6UL2-DTmVwmmb.js → c4Diagram-7LVT6UL2-CizxVqqX.js} +1 -1
  42. package/dist-embed/chunks/{c4Diagram-7LVT6UL2-BM2g5U7R.js → c4Diagram-7LVT6UL2-DpaHndz8.js} +1 -1
  43. package/dist-embed/chunks/{ca-ES-6MX7JW3Y-CDFGSEh3.js → ca-ES-6MX7JW3Y-gDR_kEC6.js} +1 -1
  44. package/dist-embed/chunks/{celltoolbartracker-D67W4XWx.js → celltoolbartracker-DLF4PWyW.js} +1 -1
  45. package/dist-embed/chunks/{chunk-2Q5K7J3B-CsB-r261.js → chunk-2Q5K7J3B-BI6lURun.js} +1 -1
  46. package/dist-embed/chunks/{chunk-2Q5K7J3B-CuegvedF.js → chunk-2Q5K7J3B-DWoLSrj9.js} +1 -1
  47. package/dist-embed/chunks/{chunk-5VM5RSS4-D4Ed2_vW.js → chunk-5VM5RSS4-CDh4wYym.js} +1 -1
  48. package/dist-embed/chunks/{chunk-5VM5RSS4-MJQ9uhYe.js → chunk-5VM5RSS4-SleuNqDC.js} +1 -1
  49. package/dist-embed/chunks/{chunk-F27PBJKO-DnjXjdOV.js → chunk-F27PBJKO-AvWsNGYY.js} +1 -1
  50. package/dist-embed/chunks/{chunk-F27PBJKO-BKTrewOm.js → chunk-F27PBJKO-h_FwJMTr.js} +1 -1
  51. package/dist-embed/chunks/{chunk-IMKFNOWR-Bf7PlvQM.js → chunk-IMKFNOWR-DGRceKiU.js} +1 -1
  52. package/dist-embed/chunks/{chunk-IMKFNOWR-BiXdYxxk.js → chunk-IMKFNOWR-Hx4a5yny.js} +1 -1
  53. package/dist-embed/chunks/{chunk-JWPE2WC7-DcVyhh3j.js → chunk-JWPE2WC7-A4gy2qc4.js} +1 -1
  54. package/dist-embed/chunks/{chunk-JWPE2WC7-DmWR08qa.js → chunk-JWPE2WC7-BuJactJo.js} +1 -1
  55. package/dist-embed/chunks/{chunk-POPQ4Y6H-Bw6JH9TT.js → chunk-POPQ4Y6H-CFM-817s.js} +1 -1
  56. package/dist-embed/chunks/{chunk-POPQ4Y6H-snvBGTqY.js → chunk-POPQ4Y6H-CmRF80iG.js} +1 -1
  57. package/dist-embed/chunks/{chunk-SVP7TREG-DLZdx--b.js → chunk-SVP7TREG-CryZx9JE.js} +1 -1
  58. package/dist-embed/chunks/{chunk-SVP7TREG-dE58fUkJ.js → chunk-SVP7TREG-DSNzmytH.js} +1 -1
  59. package/dist-embed/chunks/{chunk-TICWLB2K-DNXzQOV5.js → chunk-TICWLB2K-CEaDF8ZJ.js} +1 -1
  60. package/dist-embed/chunks/{chunk-TICWLB2K-4NdGhPfF.js → chunk-TICWLB2K-DyGS3fIj.js} +1 -1
  61. package/dist-embed/chunks/{chunk-XXDRQBXY-OKsVfhjO.js → chunk-XXDRQBXY-8Cnzpdjz.js} +1 -1
  62. package/dist-embed/chunks/{chunk-XXDRQBXY-D57w8SHP.js → chunk-XXDRQBXY-DxQBcVOz.js} +1 -1
  63. package/dist-embed/chunks/{classDiagram-ZZMXUADV-oYXGLbJe.js → classDiagram-ZZMXUADV-BQkO1UYr.js} +1 -1
  64. package/dist-embed/chunks/{classDiagram-ZZMXUADV-D35oEC_r.js → classDiagram-ZZMXUADV-yvP3zMO3.js} +1 -1
  65. package/dist-embed/chunks/{classDiagram-f62afe4f-DWY2Ws4r.js → classDiagram-f62afe4f-AYfpYKtp.js} +1 -1
  66. package/dist-embed/chunks/{classDiagram-v2-604399ef-By5ijR28.js → classDiagram-v2-604399ef-BWyNcT_y.js} +1 -1
  67. package/dist-embed/chunks/{classDiagram-v2-VYDZK3BY-oYXGLbJe.js → classDiagram-v2-VYDZK3BY-BQkO1UYr.js} +1 -1
  68. package/dist-embed/chunks/{classDiagram-v2-VYDZK3BY-D35oEC_r.js → classDiagram-v2-VYDZK3BY-yvP3zMO3.js} +1 -1
  69. package/dist-embed/chunks/{code-block-IT6T5CEO-DvUhQbDq.js → code-block-IT6T5CEO-F4BSIGY6.js} +1 -1
  70. package/dist-embed/chunks/{component-DquJEKgN.js → component-DMQ8W8n1.js} +3 -3
  71. package/dist-embed/chunks/{cose-bilkent-JH36ORCC-j33onHvG.js → cose-bilkent-JH36ORCC-C3HC0XIY.js} +1 -1
  72. package/dist-embed/chunks/{cose-bilkent-JH36ORCC-CfuJvtzg.js → cose-bilkent-JH36ORCC-MVxlcfpd.js} +1 -1
  73. package/dist-embed/chunks/{createText-aed3d8b3-DvlG46OI.js → createText-aed3d8b3-CEJODAXJ.js} +1 -1
  74. package/dist-embed/chunks/{cs-CZ-2BRQDIVT-ByNB8eZd.js → cs-CZ-2BRQDIVT-BXQxcYp6.js} +1 -1
  75. package/dist-embed/chunks/{cynefinDiagram-5FMLGOSQ-YhGHtmc4.js → cynefinDiagram-5FMLGOSQ-D87ENxS0.js} +1 -1
  76. package/dist-embed/chunks/{cynefinDiagram-5FMLGOSQ-CPb2yRsU.js → cynefinDiagram-5FMLGOSQ-DNRKTIHx.js} +1 -1
  77. package/dist-embed/chunks/{da-DK-5WZEPLOC-B7MrVwy8.js → da-DK-5WZEPLOC-Ck3vidj3.js} +1 -1
  78. package/dist-embed/chunks/{dagre-GXQ25YYZ-CSSSVwOB.js → dagre-GXQ25YYZ-BOhThFKd.js} +1 -1
  79. package/dist-embed/chunks/{dagre-GXQ25YYZ-bjTeZGWE.js → dagre-GXQ25YYZ-DscCD5Uq.js} +1 -1
  80. package/dist-embed/chunks/{de-DE-XR44H4JA-CN1cdk94.js → de-DE-XR44H4JA-CPZgrOuc.js} +1 -1
  81. package/dist-embed/chunks/{diagram-S7CK7UJ4-CFdSwdyc.js → diagram-S7CK7UJ4-CUhme3Bl.js} +1 -1
  82. package/dist-embed/chunks/{diagram-S7CK7UJ4-CFDVHfda.js → diagram-S7CK7UJ4-zDQduoQy.js} +1 -1
  83. package/dist-embed/chunks/{diagram-UQ7AKVKN-DDaeau23.js → diagram-UQ7AKVKN-BxhQPjAM.js} +1 -1
  84. package/dist-embed/chunks/{diagram-UQ7AKVKN-GZbDy6ob.js → diagram-UQ7AKVKN-Byi-v8UN.js} +1 -1
  85. package/dist-embed/chunks/{diagram-VSXAHHWV-nXDiS81a.js → diagram-VSXAHHWV-CqihYkDH.js} +1 -1
  86. package/dist-embed/chunks/{diagram-VSXAHHWV-C6q67wko.js → diagram-VSXAHHWV-au-v2v9D.js} +1 -1
  87. package/dist-embed/chunks/{diagram-VX7I27RA-DQUkfMrD.js → diagram-VX7I27RA-Cd5PaF_n.js} +1 -1
  88. package/dist-embed/chunks/{diagram-VX7I27RA-CYLfpYa4.js → diagram-VX7I27RA-ETzwrw79.js} +1 -1
  89. package/dist-embed/chunks/{diagram-Z3DM3KII-DZziYptV.js → diagram-Z3DM3KII-AcMuRFo5.js} +1 -1
  90. package/dist-embed/chunks/{diagram-Z3DM3KII-v-9naUk_.js → diagram-Z3DM3KII-DkbsvY2A.js} +1 -1
  91. package/dist-embed/chunks/{document-BpXPH_dr.js → document-Dluvp7zl.js} +1 -1
  92. package/dist-embed/chunks/{drivecontents-Bg9_6Kmo.js → drivecontents-CxwZz_5W.js} +1 -1
  93. package/dist-embed/chunks/{ebnfDiagram-PWID7BFC-EvDUmZgJ.js → ebnfDiagram-PWID7BFC-BrEs-SB2.js} +1 -1
  94. package/dist-embed/chunks/{ebnfDiagram-PWID7BFC-CDmryeYY.js → ebnfDiagram-PWID7BFC-DuWfMZcD.js} +1 -1
  95. package/dist-embed/chunks/{edges-b2856ca0-CTakYT6h.js → edges-b2856ca0-Czd3-xvj.js} +1 -1
  96. package/dist-embed/chunks/{el-GR-BZB4AONW-DnaGhWD1.js → el-GR-BZB4AONW-CjQSkw0P.js} +1 -1
  97. package/dist-embed/chunks/{erDiagram-5d81789a-CpiBBm7t.js → erDiagram-5d81789a-JegaF4gy.js} +1 -1
  98. package/dist-embed/chunks/{erDiagram-RLTQ6QDP-B2QZDDaO.js → erDiagram-RLTQ6QDP-Cpn6_cd1.js} +1 -1
  99. package/dist-embed/chunks/{erDiagram-RLTQ6QDP-hsnql-YF.js → erDiagram-RLTQ6QDP-xubaXuKR.js} +1 -1
  100. package/dist-embed/chunks/{es-ES-U4NZUMDT-DE1vZzDE.js → es-ES-U4NZUMDT-CQz3Tsxk.js} +1 -1
  101. package/dist-embed/chunks/{eu-ES-A7QVB2H4-DmHB0zpm.js → eu-ES-A7QVB2H4-DPwxHXvP.js} +1 -1
  102. package/dist-embed/chunks/{fa-IR-HGAKTJCU-CNzE8tJj.js → fa-IR-HGAKTJCU-DlQyRFJP.js} +1 -1
  103. package/dist-embed/chunks/{fi-FI-Z5N7JZ37-Ca2vTFQC.js → fi-FI-Z5N7JZ37-BL9Dv0rT.js} +1 -1
  104. package/dist-embed/chunks/{flowDb-185abca5-D4uRRPhl.js → flowDb-185abca5-BN_8lgCO.js} +1 -1
  105. package/dist-embed/chunks/{flowDiagram-1629c991-B999anFV.js → flowDiagram-1629c991-YRlRqB59.js} +1 -1
  106. package/dist-embed/chunks/{flowDiagram-HODETNUW-DY4I6lzA.js → flowDiagram-HODETNUW-CzRvxVGK.js} +1 -1
  107. package/dist-embed/chunks/{flowDiagram-HODETNUW-D4E8W9uH.js → flowDiagram-HODETNUW-lW-icIxi.js} +1 -1
  108. package/dist-embed/chunks/{flowDiagram-v2-1d953310-2W9bzV_S.js → flowDiagram-v2-1d953310-DBFSFroi.js} +1 -1
  109. package/dist-embed/chunks/{flowchart-elk-definition-6df44142-Cz-ICcxz.js → flowchart-elk-definition-6df44142-RjL83g27.js} +1 -1
  110. package/dist-embed/chunks/{fr-FR-RHASNOE6-B0yWFX3_.js → fr-FR-RHASNOE6-xB7HyFVv.js} +1 -1
  111. package/dist-embed/chunks/{ganttDiagram-3b0b3873-CR9gwUWB.js → ganttDiagram-3b0b3873-Dowe9cKl.js} +1 -1
  112. package/dist-embed/chunks/{ganttDiagram-EL5Y4UJY-CoCfE73i.js → ganttDiagram-EL5Y4UJY-CLaynGwe.js} +1 -1
  113. package/dist-embed/chunks/{ganttDiagram-EL5Y4UJY-cZgkz4jA.js → ganttDiagram-EL5Y4UJY-CNQPBdAP.js} +1 -1
  114. package/dist-embed/chunks/{gitGraphDiagram-WWUBYQGX-CZEgVaQ_.js → gitGraphDiagram-WWUBYQGX-CDuBbPX3.js} +1 -1
  115. package/dist-embed/chunks/{gitGraphDiagram-WWUBYQGX-xXoxdFf9.js → gitGraphDiagram-WWUBYQGX-CupHqYWl.js} +1 -1
  116. package/dist-embed/chunks/{gitGraphDiagram-f01e8bc2-NdofvPL5.js → gitGraphDiagram-f01e8bc2-C06Sje1n.js} +1 -1
  117. package/dist-embed/chunks/{gl-ES-HMX3MZ6V-2_3FMVJq.js → gl-ES-HMX3MZ6V-BX50ltap.js} +1 -1
  118. package/dist-embed/chunks/{he-IL-6SHJWFNN-BW1lby00.js → he-IL-6SHJWFNN-DR3hLzYG.js} +1 -1
  119. package/dist-embed/chunks/{hi-IN-IWLTKZ5I-DTixfSwB.js → hi-IN-IWLTKZ5I-C3bSDqVc.js} +1 -1
  120. package/dist-embed/chunks/{hu-HU-A5ZG7DT2-DOfYwLWP.js → hu-HU-A5ZG7DT2--mRUDQG6.js} +1 -1
  121. package/dist-embed/chunks/{id-ID-SAP4L64H-Cwtdtkvg.js → id-ID-SAP4L64H-D6psdwdp.js} +1 -1
  122. package/dist-embed/chunks/{index-Dyh5xopp.js → index-3O3ob63z.js} +15 -15
  123. package/dist-embed/chunks/{index-KgE-JGae.js → index-7F_pA42X.js} +4 -4
  124. package/dist-embed/chunks/{index-9bae90f3-D4JbZiwv.js → index-9bae90f3-BY7E8HZU.js} +1 -1
  125. package/dist-embed/chunks/{index-DYkwi0aX.js → index-Azo_wV3K.js} +1 -1
  126. package/dist-embed/chunks/{index-BFPUYxvD.js → index-B063q-PC.js} +4 -4
  127. package/dist-embed/chunks/index-B0KVfQGJ.js +1 -0
  128. package/dist-embed/chunks/{index-BRBFWMMG.js → index-B2He8CnP.js} +1 -1
  129. package/dist-embed/chunks/{index-BAr0Q6NS.js → index-BExwmtFS.js} +1 -1
  130. package/dist-embed/chunks/{index-B3WvcNQa.js → index-BJhxZF_K.js} +1 -1
  131. package/dist-embed/chunks/{index-CXL3UCHy.js → index-BYMZi_1t.js} +1 -1
  132. package/dist-embed/chunks/{index-wovGU2zp.js → index-BblwlEJB.js} +1 -1
  133. package/dist-embed/chunks/{index-DvpdAlVH.js → index-BdvS7Q4t.js} +1 -1
  134. package/dist-embed/chunks/{index-S-sjhoD3.js → index-BhU2ra4k.js} +3 -3
  135. package/dist-embed/chunks/{index-j-oeqTuo.js → index-BipXK1tF.js} +1 -1
  136. package/dist-embed/chunks/{index-B_9UD0bt.js → index-BlWZloLe.js} +3 -3
  137. package/dist-embed/chunks/{index-B-UP9DlM.js → index-BzXMsI1v.js} +1 -1
  138. package/dist-embed/chunks/{index-CPY91aGL.js → index-BzxtV5-v.js} +1 -1
  139. package/dist-embed/chunks/{index-C17RrmNV.js → index-C01nR1dW.js} +1 -1
  140. package/dist-embed/chunks/{index-t_gNTVoL.js → index-C643Hfu1.js} +1 -1
  141. package/dist-embed/chunks/{index-BAwsCLGT.js → index-C6wF35Kk.js} +10 -10
  142. package/dist-embed/chunks/{index--qMT5k1q.js → index-C8IekrmL.js} +1 -1
  143. package/dist-embed/chunks/{index-BxjlpSy4.js → index-C9CpG6Nf.js} +1 -1
  144. package/dist-embed/chunks/{index-BITOMOWN.js → index-CA8D7U2s.js} +2 -2
  145. package/dist-embed/chunks/{index-DEn5R18M.js → index-CUL9WiLS.js} +5 -5
  146. package/dist-embed/chunks/{index-DFEBhySA.js → index-Cknn3VQD.js} +1 -1
  147. package/dist-embed/chunks/{index-BJ7Yskx5.js → index-CpcHHQd7.js} +1 -1
  148. package/dist-embed/chunks/{index-wzK_9qZx.js → index-CvBxCcaE.js} +1 -1
  149. package/dist-embed/chunks/{index-DkUimZI8.js → index-CzXnKkqM.js} +1 -1
  150. package/dist-embed/chunks/{index-Ck-wonpc.js → index-D0DBuFMt.js} +1 -1
  151. package/dist-embed/chunks/{index-CMUTS_sA.js → index-D1lY79hS.js} +4 -4
  152. package/dist-embed/chunks/{index-sQy5cmWo.js → index-DB46n9Tf.js} +2 -2
  153. package/dist-embed/chunks/{index-Cgf7tlW3.js → index-DToDguC3.js} +1 -1
  154. package/dist-embed/chunks/{index-Bi5hexj-.js → index-DVDREi21.js} +1 -1
  155. package/dist-embed/chunks/{index-TRLGqZaF.js → index-DVUMPcVw.js} +1 -1
  156. package/dist-embed/chunks/{index-YcqCoWJl.js → index-DcZQ2Oqj.js} +1 -1
  157. package/dist-embed/chunks/{index-bRwN_nxZ.js → index-DvWWLOj6.js} +1 -1
  158. package/dist-embed/chunks/{index-Clp8quV1.js → index-Dv_XGY6Q.js} +1 -1
  159. package/dist-embed/chunks/{index-C3oDHYfa.js → index-DxsDy6PY.js} +1 -1
  160. package/dist-embed/chunks/{index-Jt4bWLoz.js → index-EpYurdzk.js} +6 -6
  161. package/dist-embed/chunks/{index-CzuLxFBK.js → index-MTdX216X.js} +1 -1
  162. package/dist-embed/chunks/{index-B2OWWcCj.js → index-YqGHzM2S.js} +1 -1
  163. package/dist-embed/chunks/{index-BvvaLLhn.js → index-a51XM5L8.js} +3 -3
  164. package/dist-embed/chunks/{index-CrNfUmIU.js → index-jy9kOmqu.js} +1 -1
  165. package/dist-embed/chunks/{index-e5PkgYFg.js → index-kpqZuE4J.js} +1 -1
  166. package/dist-embed/chunks/{index-BgFbP5P0.js → index-qsUgit40.js} +1 -1
  167. package/dist-embed/chunks/{index-Cq19rGjf.js → index-rfsiH_M6.js} +1 -1
  168. package/dist-embed/chunks/{index-BYQwy0Zx.js → index-s3hayhRS.js} +2 -2
  169. package/dist-embed/chunks/{index.esm-RCuogyl2.js → index.esm-CWygaJYM.js} +1 -1
  170. package/dist-embed/chunks/{index.esm-CVNfNVDy.js → index.esm-DYeUXS4c.js} +1 -1
  171. package/dist-embed/chunks/{infoDiagram-27XIBGKW-DpFWmHEH.js → infoDiagram-27XIBGKW-Ctm-zk09.js} +1 -1
  172. package/dist-embed/chunks/{infoDiagram-27XIBGKW-DRf2y76w.js → infoDiagram-27XIBGKW-DRzH33_4.js} +1 -1
  173. package/dist-embed/chunks/{infoDiagram-a29d40f1-CehVkLUM.js → infoDiagram-a29d40f1-c78-ZMuT.js} +1 -1
  174. package/dist-embed/chunks/{isEqual-BybBNsZK.js → isEqual-niFNV5MZ.js} +1 -1
  175. package/dist-embed/chunks/{ishikawaDiagram-5VMMS53U-C_d1mmp3.js → ishikawaDiagram-5VMMS53U-CILSTTqm.js} +1 -1
  176. package/dist-embed/chunks/{ishikawaDiagram-5VMMS53U-B534qRQJ.js → ishikawaDiagram-5VMMS53U-DKv5KL85.js} +1 -1
  177. package/dist-embed/chunks/{it-IT-JPQ66NNP-C3xZ61-6.js → it-IT-JPQ66NNP-BfrG_atL.js} +1 -1
  178. package/dist-embed/chunks/{ja-JP-DBVTYXUO-CeTmglEb.js → ja-JP-DBVTYXUO-sahpmNGY.js} +1 -1
  179. package/dist-embed/chunks/{journeyDiagram-3NMN7TZE-DEeA8WJr.js → journeyDiagram-3NMN7TZE-CSMQRlsr.js} +1 -1
  180. package/dist-embed/chunks/{journeyDiagram-3NMN7TZE-C0GQLJYz.js → journeyDiagram-3NMN7TZE-DlMPiHSP.js} +1 -1
  181. package/dist-embed/chunks/{journeyDiagram-95396277-Cwx_BI95.js → journeyDiagram-95396277-VzHClVrX.js} +1 -1
  182. package/dist-embed/chunks/{kaa-6HZHGXH3-D6Jr6B6Y.js → kaa-6HZHGXH3-BrkhtXQj.js} +1 -1
  183. package/dist-embed/chunks/{kab-KAB-ZGHBKWFO-pEXBqeuG.js → kab-KAB-ZGHBKWFO-DwtFIV_I.js} +1 -1
  184. package/dist-embed/chunks/{kanban-definition-UXKFOSKX-DucvIyR1.js → kanban-definition-UXKFOSKX-BkxvAXq2.js} +1 -1
  185. package/dist-embed/chunks/{kanban-definition-UXKFOSKX-Dww2l0wQ.js → kanban-definition-UXKFOSKX-esf1amn7.js} +1 -1
  186. package/dist-embed/chunks/{kk-KZ-P5N5QNE5-BRJunmHm.js → kk-KZ-P5N5QNE5-UxN1LGH5.js} +1 -1
  187. package/dist-embed/chunks/{km-KH-HSX4SM5Z--GJgT9rN.js → km-KH-HSX4SM5Z-B7lolfpy.js} +1 -1
  188. package/dist-embed/chunks/{ko-KR-MTYHY66A-Bjnez4qR.js → ko-KR-MTYHY66A-CnxefCaN.js} +1 -1
  189. package/dist-embed/chunks/{ku-TR-6OUDTVRD-DgOdYJrS.js → ku-TR-6OUDTVRD-Bt7bmFnv.js} +1 -1
  190. package/dist-embed/chunks/{layout-DiAMrtPi.js → layout-D7Mk1riq.js} +1 -1
  191. package/dist-embed/chunks/{layout-LNJhMVxV.js → layout-Sl9Lf6Ae.js} +1 -1
  192. package/dist-embed/chunks/{lexicalHooks-DEzWXVZY.js → lexicalHooks-DKF-DsxG.js} +1 -1
  193. package/dist-embed/chunks/{lt-LT-XHIRWOB4-BMwhrtjM.js → lt-LT-XHIRWOB4-D6qkXs9m.js} +1 -1
  194. package/dist-embed/chunks/{lv-LV-5QDEKY6T-0pxW7YE0.js → lv-LV-5QDEKY6T-D8g27j86.js} +1 -1
  195. package/dist-embed/chunks/{mermaid.core-huvnfV8t.js → mermaid.core-BhiOhb5K.js} +3 -3
  196. package/dist-embed/chunks/{mermaid.core-Dw1n-Hii.js → mermaid.core-CRlujv29.js} +5 -5
  197. package/dist-embed/chunks/{mindmap-definition-YA3MSWOX-DWUezf-k.js → mindmap-definition-YA3MSWOX-BJQsz4H1.js} +1 -1
  198. package/dist-embed/chunks/{mindmap-definition-YA3MSWOX-DKQu2lXp.js → mindmap-definition-YA3MSWOX-eCxs0BsL.js} +1 -1
  199. package/dist-embed/chunks/{mindmap-definition-e4c1d938-DSDPusnk.js → mindmap-definition-e4c1d938-DoGG9eDO.js} +1 -1
  200. package/dist-embed/chunks/{model-BHONoBA6.js → model-BziAhKNp.js} +1 -1
  201. package/dist-embed/chunks/{mr-IN-CRQNXWMA-tndp8BXC.js → mr-IN-CRQNXWMA-CMbVGyJm.js} +1 -1
  202. package/dist-embed/chunks/{my-MM-5M5IBNSE-sispDhO4.js → my-MM-5M5IBNSE-B-KPsx1j.js} +1 -1
  203. package/dist-embed/chunks/{nb-NO-T6EIAALU-CjBurOuS.js → nb-NO-T6EIAALU-Cl7QLAt7.js} +1 -1
  204. package/dist-embed/chunks/{nl-NL-IS3SIHDZ-B58EVmr3.js → nl-NL-IS3SIHDZ-Brzte_o2.js} +1 -1
  205. package/dist-embed/chunks/{nn-NO-6E72VCQL-D1p7LZSq.js → nn-NO-6E72VCQL-CzCKEx02.js} +1 -1
  206. package/dist-embed/chunks/{oc-FR-POXYY2M6-C1M8sddP.js → oc-FR-POXYY2M6-DA72PkVY.js} +1 -1
  207. package/dist-embed/chunks/{pa-IN-N4M65BXN-D8ESzASl.js → pa-IN-N4M65BXN-CzkFYtL0.js} +1 -1
  208. package/dist-embed/chunks/{pegDiagram-XKGWAZYB-ChXFZFas.js → pegDiagram-XKGWAZYB-CD3xZvKE.js} +1 -1
  209. package/dist-embed/chunks/{pegDiagram-XKGWAZYB-BUPTGFu3.js → pegDiagram-XKGWAZYB-CV-d6HkK.js} +1 -1
  210. package/dist-embed/chunks/{percentages-BXMCSKIN-BihMTsFR.js → percentages-BXMCSKIN-mjCCp4uI.js} +6 -6
  211. package/dist-embed/chunks/{pica-BQREYloS.js → pica-5TeyVfIV.js} +1 -1
  212. package/dist-embed/chunks/{pieDiagram-E7YTZNPT-DAuVz3z-.js → pieDiagram-E7YTZNPT-DipS--g7.js} +1 -1
  213. package/dist-embed/chunks/{pieDiagram-E7YTZNPT-BORvsKK0.js → pieDiagram-E7YTZNPT-toANOh_O.js} +1 -1
  214. package/dist-embed/chunks/{pieDiagram-c941bede-FM1PHjj3.js → pieDiagram-c941bede-DytniBrW.js} +1 -1
  215. package/dist-embed/chunks/{pl-PL-T2D74RX3-DQGe6LHC.js → pl-PL-T2D74RX3-F4ebFTYK.js} +1 -1
  216. package/dist-embed/chunks/{plugin-BoxsYxwM.js → plugin-Cf3g-jak.js} +1 -1
  217. package/dist-embed/chunks/plugin-DA_NCYQX.js +1 -0
  218. package/dist-embed/chunks/{pt-BR-5N22H2LF-CvXBgZQs.js → pt-BR-5N22H2LF-B5i8LuE4.js} +1 -1
  219. package/dist-embed/chunks/{pt-PT-UZXXM6DQ-BMnnlIUJ.js → pt-PT-UZXXM6DQ-BQ7hfRRg.js} +1 -1
  220. package/dist-embed/chunks/{quadrantDiagram-AXDQQJYC-DpGcSrR9.js → quadrantDiagram-AXDQQJYC-D_j5dzK-.js} +1 -1
  221. package/dist-embed/chunks/{quadrantDiagram-AXDQQJYC-CZe_C7e2.js → quadrantDiagram-AXDQQJYC-DlhtjZ-k.js} +1 -1
  222. package/dist-embed/chunks/{quadrantDiagram-cf8b8fe0-DZNznYqD.js → quadrantDiagram-cf8b8fe0-BQ2yjLYu.js} +1 -1
  223. package/dist-embed/chunks/{railroadDiagram-O6MQD6OU-CuL_zbZ8.js → railroadDiagram-O6MQD6OU-CZFkdwSz.js} +1 -1
  224. package/dist-embed/chunks/{railroadDiagram-O6MQD6OU-BnCn-tIV.js → railroadDiagram-O6MQD6OU-aWlxxhLc.js} +1 -1
  225. package/dist-embed/chunks/{renderer-lVFw9lw7.js → renderer-2D5v6hpK.js} +1 -1
  226. package/dist-embed/chunks/{requirementDiagram-53bda41b-BLToEv8I.js → requirementDiagram-53bda41b-CWV_b9FE.js} +1 -1
  227. package/dist-embed/chunks/{requirementDiagram-BXWQKSXE-KU7DW76t.js → requirementDiagram-BXWQKSXE-BSF51uZZ.js} +1 -1
  228. package/dist-embed/chunks/{requirementDiagram-BXWQKSXE-W6Oaw9v0.js → requirementDiagram-BXWQKSXE-EVwiX2gg.js} +1 -1
  229. package/dist-embed/chunks/{ro-RO-JPDTUUEW-DZ-9UUH7.js → ro-RO-JPDTUUEW-BdcZRS6h.js} +1 -1
  230. package/dist-embed/chunks/{ru-RU-B4JR7IUQ-JlRBwjob.js → ru-RU-B4JR7IUQ-Cta1z8f6.js} +1 -1
  231. package/dist-embed/chunks/{sankeyDiagram-P5KCCOFB-y5tPDHfE.js → sankeyDiagram-P5KCCOFB-BqD6w06O.js} +1 -1
  232. package/dist-embed/chunks/{sankeyDiagram-P5KCCOFB-1UXJ4wHP.js → sankeyDiagram-P5KCCOFB-t6rHaBZJ.js} +1 -1
  233. package/dist-embed/chunks/{sankeyDiagram-c3ef121a-6gF3bcjb.js → sankeyDiagram-c3ef121a-C9O52Zx9.js} +1 -1
  234. package/dist-embed/chunks/{sequenceDiagram-82a5b84f-CglVrG1T.js → sequenceDiagram-82a5b84f-Dga-BwWi.js} +1 -1
  235. package/dist-embed/chunks/{sequenceDiagram-WJ2MYXX4-CG-4aOyN.js → sequenceDiagram-WJ2MYXX4-DphVeQVS.js} +1 -1
  236. package/dist-embed/chunks/{sequenceDiagram-WJ2MYXX4-DVcXqRnq.js → sequenceDiagram-WJ2MYXX4-ih6W0378.js} +1 -1
  237. package/dist-embed/chunks/{sessions-3PQsLINe.js → sessions-APuuDN3K.js} +2 -2
  238. package/dist-embed/chunks/{si-LK-N5RQ5JYF-Bx8kHnkd.js → si-LK-N5RQ5JYF-DYy_OKHx.js} +1 -1
  239. package/dist-embed/chunks/{sizeCapture-INFHLROL-e294GOp7.js → sizeCapture-INFHLROL-CxIMCruL.js} +1 -1
  240. package/dist-embed/chunks/{sizeCapture-INFHLROL-CCZ7JXfm.js → sizeCapture-INFHLROL-o0dzt8-T.js} +1 -1
  241. package/dist-embed/chunks/{sk-SK-C5VTKIMK-xsfEfbZb.js → sk-SK-C5VTKIMK-B4A8rgzq.js} +1 -1
  242. package/dist-embed/chunks/{sl-SI-NN7IZMDC-SQYUECnr.js → sl-SI-NN7IZMDC-Dn2yU1RA.js} +1 -1
  243. package/dist-embed/chunks/{stateDiagram-43e79a5f-DktiQR1L.js → stateDiagram-43e79a5f-RBFnM6HD.js} +1 -1
  244. package/dist-embed/chunks/{stateDiagram-D77RDMKH-Czz7slb9.js → stateDiagram-D77RDMKH-DUbaZs3a.js} +1 -1
  245. package/dist-embed/chunks/{stateDiagram-D77RDMKH-DvgDxPXs.js → stateDiagram-D77RDMKH-R5RRRvFY.js} +1 -1
  246. package/dist-embed/chunks/{stateDiagram-v2-2041ed4f-CGEkaZYz.js → stateDiagram-v2-2041ed4f-O5FpnsEz.js} +1 -1
  247. package/dist-embed/chunks/{stateDiagram-v2-MP3YSRHH-CbzbC1qh.js → stateDiagram-v2-MP3YSRHH-CxTXB7mT.js} +1 -1
  248. package/dist-embed/chunks/{stateDiagram-v2-MP3YSRHH-DGG9ROyK.js → stateDiagram-v2-MP3YSRHH-xKTLvXGN.js} +1 -1
  249. package/dist-embed/chunks/{styles-455b33cd-BpfBULhz.js → styles-455b33cd-D4Xv2qYx.js} +1 -1
  250. package/dist-embed/chunks/{styles-f932cba9-DsM5quNh.js → styles-f932cba9-BRIqeB8k.js} +1 -1
  251. package/dist-embed/chunks/{styles-fcc2142b-bC7I59Fx.js → styles-fcc2142b-CSNd2DtU.js} +1 -1
  252. package/dist-embed/chunks/{subset-shared.chunk-Ch6j8nKC.js → subset-shared.chunk-SugOGKH0.js} +1 -1
  253. package/dist-embed/chunks/{subset-worker.chunk-pJjck5pR.js → subset-worker.chunk-CHn-RJwQ.js} +1 -1
  254. package/dist-embed/chunks/{sv-SE-XGPEYMSR-BxcjSHE2.js → sv-SE-XGPEYMSR-DIGNKjA1.js} +1 -1
  255. package/dist-embed/chunks/{svgDrawCommon-148a3cd9-OC_CIhNw.js → svgDrawCommon-148a3cd9-ioBjWI45.js} +1 -1
  256. package/dist-embed/chunks/{swimlanes-42K2YHIH-DLiqjxvc.js → swimlanes-42K2YHIH-BPXSOfWl.js} +1 -1
  257. package/dist-embed/chunks/{swimlanes-42K2YHIH-nfpJsGfW.js → swimlanes-42K2YHIH-DID4P1mJ.js} +1 -1
  258. package/dist-embed/chunks/{swimlanesDiagram-VR7AAH4N-DVkRheaE.js → swimlanesDiagram-VR7AAH4N-B216TpFb.js} +1 -1
  259. package/dist-embed/chunks/{swimlanesDiagram-VR7AAH4N-DjeQ0TlI.js → swimlanesDiagram-VR7AAH4N-C5LAWW5q.js} +1 -1
  260. package/dist-embed/chunks/{ta-IN-2NMHFXQM-rItSkDUS.js → ta-IN-2NMHFXQM-h5n2V9ms.js} +1 -1
  261. package/dist-embed/chunks/{th-TH-HPSO5L25-B7UzESFj.js → th-TH-HPSO5L25-DPUFV7b6.js} +1 -1
  262. package/dist-embed/chunks/{timeline-definition-24CTP7MA-CapVlXMl.js → timeline-definition-24CTP7MA-CsrTDzso.js} +1 -1
  263. package/dist-embed/chunks/{timeline-definition-24CTP7MA-eOK0mNc7.js → timeline-definition-24CTP7MA-Y3tUsmSp.js} +1 -1
  264. package/dist-embed/chunks/{timeline-definition-7545f45a-afx9iuZR.js → timeline-definition-7545f45a-Dwe7O50H.js} +1 -1
  265. package/dist-embed/chunks/{tokens-BfuLIPUq.js → tokens-DTIgYcNS.js} +1 -1
  266. package/dist-embed/chunks/{tr-TR-DEFEU3FU-Ci6oNfEX.js → tr-TR-DEFEU3FU-BezJkdMx.js} +1 -1
  267. package/dist-embed/chunks/{uk-UA-QMV73CPH-C9csqvO6.js → uk-UA-QMV73CPH-CqILlosm.js} +1 -1
  268. package/dist-embed/chunks/{usePrimerThemeBridge-D_1NuGKb.js → usePrimerThemeBridge-CoHussa9.js} +1 -1
  269. package/dist-embed/chunks/{vennDiagram-4TSXK5OY-D12hHdDQ.js → vennDiagram-4TSXK5OY-BhVdyHxt.js} +1 -1
  270. package/dist-embed/chunks/{vennDiagram-4TSXK5OY-CJ0VIZqI.js → vennDiagram-4TSXK5OY-ClTlC2ql.js} +1 -1
  271. package/dist-embed/chunks/{vi-VN-M7AON7JQ-DRAj2kZj.js → vi-VN-M7AON7JQ-CnkPVQ0a.js} +1 -1
  272. package/dist-embed/chunks/{wardleyDiagram-VM6X3IG4-B1FfO2GD.js → wardleyDiagram-VM6X3IG4-DbWIMpvU.js} +1 -1
  273. package/dist-embed/chunks/{wardleyDiagram-VM6X3IG4-BfuBJbTV.js → wardleyDiagram-VM6X3IG4-kS16z5iB.js} +1 -1
  274. package/dist-embed/chunks/{xychartDiagram-3f383b91-BMDhPCCG.js → xychartDiagram-3f383b91-DYoT_EjG.js} +1 -1
  275. package/dist-embed/chunks/{xychartDiagram-S5SC5T6Z-xLO3w9Bz.js → xychartDiagram-S5SC5T6Z-CdwuwQAF.js} +1 -1
  276. package/dist-embed/chunks/{xychartDiagram-S5SC5T6Z-DZ-XUHKl.js → xychartDiagram-S5SC5T6Z-KeQp-cQ1.js} +1 -1
  277. package/dist-embed/chunks/{zh-CN-LNUGB5OW-DLOyW8hH.js → zh-CN-LNUGB5OW-CNdfctAT.js} +1 -1
  278. package/dist-embed/chunks/{zh-HK-E62DVLB3-DwC6_2Ws.js → zh-HK-E62DVLB3-DEXwa5-T.js} +1 -1
  279. package/dist-embed/chunks/{zh-TW-RAJ6MFWO-DEMugIwa.js → zh-TW-RAJ6MFWO-BF7cCYAK.js} +1 -1
  280. package/dist-embed/datalayer-app-main.js +21 -21
  281. package/lib/apps/core/index.d.ts +16 -0
  282. package/lib/apps/index.d.ts +2 -2
  283. package/lib/apps/index.js +1 -1
  284. package/lib/apps/plugins/agents/DatalayerAgentBridge.js +9 -14
  285. package/lib/apps/plugins/agents/index.d.ts +1 -1
  286. package/lib/apps/plugins/agents/index.js +1 -1
  287. package/lib/apps/plugins/agents/plugin.d.ts +10 -0
  288. package/lib/apps/plugins/agents/plugin.js +10 -0
  289. package/lib/apps/plugins/chat/ChatView.js +13 -1
  290. package/lib/apps/shell/LoopWorkspace.d.ts +8 -1
  291. package/lib/apps/shell/LoopWorkspace.js +5 -3
  292. package/lib/chat/header/ChatHeaderBase.d.ts +3 -1
  293. package/lib/chat/header/ChatHeaderBase.js +2 -2
  294. package/lib/chat/header/ChatViewModeToggle.d.ts +7 -1
  295. package/lib/chat/header/ChatViewModeToggle.js +5 -2
  296. package/lib/protocols/agentProtocols.js +3 -1
  297. package/lib/protocols/pap/index.d.ts +4 -0
  298. package/lib/protocols/pap/index.js +41 -0
  299. package/package.json +2 -2
  300. package/dist-embed/chunks/Avatar-DbU3YP4x.js +0 -1
  301. package/dist-embed/chunks/DatalayerAgentBridge-Bz2KWRXK.js +0 -1
  302. package/dist-embed/chunks/YouTubePlugin-xBjNr2Iu.js +0 -1
  303. package/dist-embed/chunks/index-DlK9qLPz.js +0 -1
  304. package/dist-embed/chunks/plugin-Dz5L6Xn8.js +0 -1
@@ -9,6 +9,7 @@ import type { AssistantCharacter } from '../../chat/assistant/characters';
9
9
  import type { AssistantCharacterData } from '../../chat/assistant/formats/types';
10
10
  import type { PresenceState } from '../../chat/presence/presenceStatus';
11
11
  import type { ChatWords } from '../../chat/words';
12
+ import type { ChatViewMode } from '../../types/chat';
12
13
  /** Lifecycle of the sandbox a workspace is attached to. */
13
14
  export type SandboxState = 'idle' | 'starting' | 'running' | 'stopping' | 'error';
14
15
  /** What the workspace knows about the sandbox behind it. */
@@ -196,6 +197,21 @@ export type LoopWorkspaceContext = {
196
197
  * part of the page and the chat's stay together at the trailing edge.
197
198
  */
198
199
  chatHeaderActions?: ReactNode;
200
+ /**
201
+ * The chat's view, as the host keeps it: the chat's title bar offers the
202
+ * views with its view-mode toggle (`ChatViewModeToggle`). Unsaid, the
203
+ * title bar offers none.
204
+ */
205
+ chatViewModes?: LoopChatViewModes;
206
+ };
207
+ /** The chat's view in a workspace whose host keeps it (`chatViewModes`). */
208
+ export type LoopChatViewModes = {
209
+ /** The view the chat is in. */
210
+ value: ChatViewMode;
211
+ /** The person picked another view. */
212
+ onChange: (mode: ChatViewMode) => void;
213
+ /** The views offered, in the toggle's order; all of them when unsaid. */
214
+ offered?: readonly ChatViewMode[];
199
215
  };
200
216
  /**
201
217
  * How a prompt typed in the shell reaches whatever should answer it.
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * @module apps
8
8
  */
9
- export { LoopCommand, LoopDocumentToolbar, LoopMention, LoopNotebookToolbar, LoopRunProps, LoopSlots, LoopViewType, canOpenView, createPromptChannel, parseCommand, runForwardedProps, type CommandArgSpec, type CommandContribution, type CommandResult, type EditorToolbarContext, type EditorToolbarContribution, type LoopCommandContext, type LoopViewProps, type LoopWorkspaceContext, type MentionCandidate, type MentionContribution, type PromptChannel, type RunPropsContribution, type SandboxSnapshot, type SandboxState, type ViewControls, type ViewTypeContribution, useLoopPromptStore, suggestLoopPrompt, focusPrompt, onPromptFocusRequest, type LoopPromptState, type SuggestedPrompt, } from './core';
9
+ export { LoopCommand, LoopDocumentToolbar, LoopMention, LoopNotebookToolbar, LoopRunProps, LoopSlots, LoopViewType, canOpenView, createPromptChannel, parseCommand, runForwardedProps, type CommandArgSpec, type CommandContribution, type CommandResult, type EditorToolbarContext, type EditorToolbarContribution, type LoopCommandContext, type LoopViewProps, type LoopWorkspaceContext, type LoopChatViewModes, type MentionCandidate, type MentionContribution, type PromptChannel, type RunPropsContribution, type SandboxSnapshot, type SandboxState, type ViewControls, type ViewTypeContribution, useLoopPromptStore, suggestLoopPrompt, focusPrompt, onPromptFocusRequest, type LoopPromptState, type SuggestedPrompt, } from './core';
10
10
  export { useEditorToolbar } from './core/toolbar';
11
11
  export { LoopWorkspace, PluginToggles, ViewSwitcher, WorkspaceFullScreenAction, buildLoopReactor, useWorkspaceFullScreen, type LoopWorkspaceProps, type PluginTogglesProps, type ViewSwitcherProps, } from './shell';
12
12
  export { A2uiPlugin, A2UI_PLUGIN_NAME } from './plugins/a2ui';
@@ -57,7 +57,7 @@ export { APP_ACTIVITY_PLUGIN_NAME, APP_ACTIVITY_WORDS, AppActivity, defineAppAct
57
57
  export { APP_COMPUTER_PLUGIN_NAME, AppComputer, defineAppComputerPlugin, } from './plugins/app-computer';
58
58
  export { GraphViewPlugin, GRAPH_PLUGIN_NAME, GRAPH_VIEW_TYPE, } from './plugins/graph';
59
59
  export { PluginsPanelPlugin, PLUGINS_PANEL_PLUGIN_NAME, PluginsPanel, } from './plugins/plugins-panel';
60
- export { AGENTS_PLUGIN_NAME, AgentsPlugin, SandboxSelector, browserSource, createBrowserSandboxService, createServerSandboxService, createSwitchableSandboxService, suppliedSource, useOptionalSandboxService, useSandboxService, type AgentsConfig, type AgentsOutput, type SandboxExecution, type SandboxService, type SandboxTarget, type ServiceManagerSource, type SwitchableSandboxService, } from './plugins/agents';
60
+ export { AGENTS_PLUGIN_NAME, AgentsPlugin, DEFAULT_DATALAYER_AGENTSPEC, SandboxSelector, browserSource, createBrowserSandboxService, createServerSandboxService, createSwitchableSandboxService, suppliedSource, useOptionalSandboxService, useSandboxService, type AgentsConfig, type AgentsOutput, type SandboxExecution, type SandboxService, type SandboxTarget, type ServiceManagerSource, type SwitchableSandboxService, } from './plugins/agents';
61
61
  export { DocumentPlugin, DOCUMENT_PLUGIN_NAME } from './plugins/document';
62
62
  export { DocumentToolbarPlugin, DOCUMENT_TOOLBAR_PLUGIN_NAME, } from './plugins/document-toolbar';
63
63
  export { ShellPlugin, EditorSelector, SHELL_PLUGIN_NAME, NONE_EDITOR, chooseEditor, EditorsPlugin, EDITORS_PLUGIN_NAME, type ShellPluginConfig, } from './plugins/shell';
package/lib/apps/index.js CHANGED
@@ -70,7 +70,7 @@ export { APP_ACTIVITY_PLUGIN_NAME, APP_ACTIVITY_WORDS, AppActivity, defineAppAct
70
70
  export { APP_COMPUTER_PLUGIN_NAME, AppComputer, defineAppComputerPlugin, } from './plugins/app-computer';
71
71
  export { GraphViewPlugin, GRAPH_PLUGIN_NAME, GRAPH_VIEW_TYPE, } from './plugins/graph';
72
72
  export { PluginsPanelPlugin, PLUGINS_PANEL_PLUGIN_NAME, PluginsPanel, } from './plugins/plugins-panel';
73
- export { AGENTS_PLUGIN_NAME, AgentsPlugin, SandboxSelector, browserSource, createBrowserSandboxService, createServerSandboxService, createSwitchableSandboxService, suppliedSource, useOptionalSandboxService, useSandboxService, } from './plugins/agents';
73
+ export { AGENTS_PLUGIN_NAME, AgentsPlugin, DEFAULT_DATALAYER_AGENTSPEC, SandboxSelector, browserSource, createBrowserSandboxService, createServerSandboxService, createSwitchableSandboxService, suppliedSource, useOptionalSandboxService, useSandboxService, } from './plugins/agents';
74
74
  export { DocumentPlugin, DOCUMENT_PLUGIN_NAME } from './plugins/document';
75
75
  export { DocumentToolbarPlugin, DOCUMENT_TOOLBAR_PLUGIN_NAME, } from './plugins/document-toolbar';
76
76
  export { ShellPlugin, EditorSelector, SHELL_PLUGIN_NAME, NONE_EDITOR, chooseEditor,
@@ -9,16 +9,8 @@ import { ensureVisitorAgent } from '../../apps/visitorToken';
9
9
  import { AGENTSPECS } from '../../../specs/agents/agents';
10
10
  import { IDLE_SANDBOX_TARGET_SIGNAL } from '../../core';
11
11
  import { appLaunchOf } from './appLaunch';
12
- import { AGENTS_PLUGIN_NAME } from './plugin';
12
+ import { AGENTS_PLUGIN_NAME, DEFAULT_DATALAYER_AGENTSPEC, } from './plugin';
13
13
  import { useOptionalSandboxService } from './useSandboxService';
14
- /**
15
- * The tutor.
16
- *
17
- * The front door of the notebook team, and the agent a person landing on a
18
- * Datalayer runtime should meet first. A host that wants another names it in
19
- * this plugin's config.
20
- */
21
- const DEFAULT_DATALAYER_AGENTSPEC = 'jupyter-tutor';
22
14
  export function DatalayerAgentBridge() {
23
15
  const reactor = useReactorPlatform();
24
16
  const agentsConfig = reactor.getConfig(AGENTS_PLUGIN_NAME);
@@ -107,13 +99,16 @@ export function DatalayerAgentBridge() {
107
99
  */
108
100
  // An application names its own agent and transport; a bare spec, the spec's.
109
101
  const agentName = typeof createPayload?.name === 'string' ? createPayload.name : agentSpecId;
110
- const protocol = createPayload?.transport === 'ag-ui' ||
111
- createPayload?.transport === 'vercel-ai'
112
- ? createPayload.transport
113
- : undefined;
102
+ /*
103
+ * AG-UI unless the application names another: the workspace's chat speaks
104
+ * AG-UI to an agent on a server (`/api/v1/ag-ui/<agent>/`). Left unsaid, a
105
+ * bare spec's agent was created with the runtime's default, Vercel AI, and
106
+ * every message the workspace sent it on Datalayer was a 404 (2026-10-12).
107
+ */
108
+ const protocol = createPayload?.transport === 'vercel-ai' ? 'vercel-ai' : 'ag-ui';
114
109
  const agentConfig = useMemo(() => ({
115
110
  name: agentName,
116
- ...(protocol ? { protocol } : {}),
111
+ protocol,
117
112
  agentSpecId,
118
113
  model: AGENTSPECS[agentSpecId]?.model,
119
114
  description: AGENTSPECS[agentSpecId]?.description,
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * @module apps/plugins/agents
5
5
  */
6
- export { AGENTS_PLUGIN_NAME, AgentsPlugin, type AgentsConfig, type AgentsOutput, } from './plugin';
6
+ export { AGENTS_PLUGIN_NAME, AgentsPlugin, DEFAULT_DATALAYER_AGENTSPEC, type AgentsConfig, type AgentsOutput, } from './plugin';
7
7
  export { AgentsPlugin as default } from './plugin';
8
8
  export { browserSource, createBrowserSandboxService, suppliedSource, type BrowserSandboxService, type ServiceManagerSource, } from './browserService';
9
9
  export { createServerSandboxService, summarize, type SandboxExecution, type SandboxService, type SandboxStatusPayload, } from './service';
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * @module apps/plugins/agents
9
9
  */
10
- export { AGENTS_PLUGIN_NAME, AgentsPlugin, } from './plugin';
10
+ export { AGENTS_PLUGIN_NAME, AgentsPlugin, DEFAULT_DATALAYER_AGENTSPEC, } from './plugin';
11
11
  export { AgentsPlugin as default } from './plugin';
12
12
  export { browserSource, createBrowserSandboxService, suppliedSource, } from './browserService';
13
13
  export { createServerSandboxService, summarize, } from './service';
@@ -20,6 +20,16 @@ import type { ReactorSlotComponent } from '@datalayer/reactor/react';
20
20
  import type { ServiceManagerSource } from './browserService';
21
21
  import { type TeamSelection } from './team';
22
22
  import { type SandboxTarget, type SwitchableSandboxService } from './switchable';
23
+ /**
24
+ * The tutor.
25
+ *
26
+ * The front door of the notebook team, and the agent a person landing on a
27
+ * Datalayer runtime should meet first. A host that wants another names it in
28
+ * this plugin's config. Here, beside the plugin rather than in the bridge, so
29
+ * that a host describing the agent its workspace runs on Datalayer can name
30
+ * it without loading the bridge's runtime stack.
31
+ */
32
+ export declare const DEFAULT_DATALAYER_AGENTSPEC = "jupyter-tutor";
23
33
  export declare const AGENTS_PLUGIN_NAME = "@datalayer/loop-plugin-agents";
24
34
  export type AgentsConfig = {
25
35
  /** Server the server-backed targets are reached through. */
@@ -13,6 +13,16 @@ import { SandboxSelector } from './SandboxSelector';
13
13
  import { TeamMemberPicker } from './TeamMemberPicker';
14
14
  import { createTeamSelection } from './team';
15
15
  import { createSwitchableSandboxService, heldTargetReason, TARGET_SPECS, targetHasAgent, } from './switchable';
16
+ /**
17
+ * The tutor.
18
+ *
19
+ * The front door of the notebook team, and the agent a person landing on a
20
+ * Datalayer runtime should meet first. A host that wants another names it in
21
+ * this plugin's config. Here, beside the plugin rather than in the bridge, so
22
+ * that a host describing the agent its workspace runs on Datalayer can name
23
+ * it without loading the bridge's runtime stack.
24
+ */
25
+ export const DEFAULT_DATALAYER_AGENTSPEC = 'jupyter-tutor';
16
26
  export const AGENTS_PLUGIN_NAME = '@datalayer/loop-plugin-agents';
17
27
  /** The target asked for, or the page itself when this page holds it. */
18
28
  const offeredTarget = (target, serverUrl) => (heldTargetReason(target, serverUrl) ? 'browser' : target);
@@ -1845,7 +1845,19 @@ export default function ChatView({ workspace }) {
1845
1845
  showNewChat: config?.headerButtons?.newChat ?? false,
1846
1846
  showClear: config?.headerButtons?.clear ?? false,
1847
1847
  }, renderHeader: HeaderComponent
1848
- ? headerProps => (_jsx(HeaderComponent, { workspace: workspace, header: headerProps }))
1848
+ ? headerProps => (_jsx(HeaderComponent, { workspace: workspace, header:
1849
+ /* The chat's view, when the host keeps it: the
1850
+ title bar's toggle, given to the header only —
1851
+ the chat itself stays where the workspace
1852
+ places it, whichever view is picked. */
1853
+ workspace.chatViewModes
1854
+ ? {
1855
+ ...headerProps,
1856
+ chatViewMode: workspace.chatViewModes.value,
1857
+ onChatViewModeChange: workspace.chatViewModes.onChange,
1858
+ offeredViewModes: workspace.chatViewModes.offered,
1859
+ }
1860
+ : headerProps }))
1849
1861
  : undefined,
1850
1862
  /*
1851
1863
  The (i), which opens the agent's details over the transcript.
@@ -22,7 +22,7 @@
22
22
  import type { JSX } from 'react';
23
23
  import type { ReactNode } from 'react';
24
24
  import { type PlatformInput, type PluginRef, type ReactorPlatform } from '@datalayer/reactor';
25
- import { type LoopWorkspaceContext, type SandboxSnapshot } from '../core';
25
+ import { type LoopChatViewModes, type LoopWorkspaceContext, type SandboxSnapshot } from '../core';
26
26
  export type LoopWorkspaceProps = {
27
27
  /** Server backing this session. */
28
28
  serverUrl: string;
@@ -93,6 +93,13 @@ export type LoopWorkspaceProps = {
93
93
  * to `LoopSlots.chatHeader` instead, and both end up in the same row.
94
94
  */
95
95
  chatHeaderActions?: ReactNode;
96
+ /**
97
+ * The chat's view, kept by the host: offered in the chat's title bar by
98
+ * its view-mode toggle. The host draws the view picked — for the
99
+ * assistant, a chat layout (`LoopChatLayout`) that hands the transcript
100
+ * and the composer to `ChatFloating`'s assistant mode.
101
+ */
102
+ chatViewModes?: LoopChatViewModes;
96
103
  /**
97
104
  * The host's own controls for the workspace header row.
98
105
  *
@@ -13,21 +13,21 @@ export function buildLoopReactor(extensions) {
13
13
  return buildReactorFromPlugins(extensions);
14
14
  }
15
15
  export function LoopWorkspace(props) {
16
- const { serverUrl, agentId, conversationId, model, sandbox = { state: 'idle' }, extensions = [], reactor: providedReactor, manageReactor = true, initialViewType, onSend, layout = 'page', showViewSelector = true, showHeader = true, chatHeaderActions, headerActions, headerContainer, sidebarRail = false, } = props;
16
+ const { serverUrl, agentId, conversationId, model, sandbox = { state: 'idle' }, extensions = [], reactor: providedReactor, manageReactor = true, initialViewType, onSend, layout = 'page', showViewSelector = true, showHeader = true, chatHeaderActions, chatViewModes, headerActions, headerContainer, sidebarRail = false, } = props;
17
17
  // Building the platform is a one-time act: rebuilding it on every render
18
18
  // would restart every plugin.
19
19
  const reactor = useMemo(() => providedReactor ?? buildLoopReactor(extensions),
20
20
  // eslint-disable-next-line react-hooks/exhaustive-deps
21
21
  [providedReactor]);
22
22
  useReactor(reactor, { autoStart: manageReactor });
23
- return (_jsx(WorkspaceBody, { serverUrl: serverUrl, agentId: agentId, conversationId: conversationId, model: model, initialSandbox: sandbox, initialViewType: initialViewType, onSend: onSend, layout: layout, showViewSelector: showViewSelector, showHeader: showHeader, chatHeaderActions: chatHeaderActions, headerActions: headerActions, headerContainer: headerContainer, sidebarRail: sidebarRail }));
23
+ return (_jsx(WorkspaceBody, { serverUrl: serverUrl, agentId: agentId, conversationId: conversationId, model: model, initialSandbox: sandbox, initialViewType: initialViewType, onSend: onSend, layout: layout, showViewSelector: showViewSelector, showHeader: showHeader, chatHeaderActions: chatHeaderActions, chatViewModes: chatViewModes, headerActions: headerActions, headerContainer: headerContainer, sidebarRail: sidebarRail }));
24
24
  }
25
25
  /**
26
26
  * Split from `LoopWorkspace` so the hooks below run with the platform already
27
27
  * registered — `useContributions` needs a reactor in the store, and `useReactor`
28
28
  * registers it during the parent's render.
29
29
  */
30
- function WorkspaceBody({ serverUrl, agentId: initialAgentId, conversationId, model, initialSandbox, initialViewType, onSend, layout = 'page', showViewSelector = true, showHeader = true, chatHeaderActions, headerActions, headerContainer, sidebarRail = false, }) {
30
+ function WorkspaceBody({ serverUrl, agentId: initialAgentId, conversationId, model, initialSandbox, initialViewType, onSend, layout = 'page', showViewSelector = true, showHeader = true, chatHeaderActions, chatViewModes, headerActions, headerContainer, sidebarRail = false, }) {
31
31
  /*
32
32
  * Which agent the session is talking to.
33
33
  *
@@ -119,6 +119,7 @@ function WorkspaceBody({ serverUrl, agentId: initialAgentId, conversationId, mod
119
119
  viewControls,
120
120
  setViewControls,
121
121
  chatHeaderActions,
122
+ chatViewModes,
122
123
  }), [
123
124
  serverUrl,
124
125
  agentId,
@@ -131,6 +132,7 @@ function WorkspaceBody({ serverUrl, agentId: initialAgentId, conversationId, mod
131
132
  viewControls,
132
133
  setViewControls,
133
134
  chatHeaderActions,
135
+ chatViewModes,
134
136
  ]);
135
137
  // `submit` must not be rebuilt whenever the workspace object changes — the
136
138
  // chat holds on to it — so it reads the current values through refs.
@@ -69,6 +69,8 @@ export interface ChatBaseHeaderProps {
69
69
  onChatViewModeChange?: (mode: ChatViewMode) => void;
70
70
  /** Modes shown greyed out: the sidebar, when the host has no mount point. */
71
71
  disabledViewModes?: readonly ChatViewMode[];
72
+ /** The modes the toggle offers; all of them when unsaid. */
73
+ offeredViewModes?: readonly ChatViewMode[];
72
74
  /** Show the companion-surface segmented control (None / Notebook / Document). */
73
75
  showEphemeralSurfaceControl?: boolean;
74
76
  /** Whether the Notebook option is available in the surface control. */
@@ -80,5 +82,5 @@ export interface ChatBaseHeaderProps {
80
82
  /** Callback fired when the user changes the companion-surface mode. */
81
83
  onEphemeralSurfaceModeChange?: (mode: EphemeralSurfaceMode) => void;
82
84
  }
83
- export declare function ChatBaseHeader({ title, subtitle, disableReason, brandIcon, headerContent, headerActions, showInformation, onInformationClick, padding, kernelIndicatorState, kernelIndicatorPlacement, runtimeStatus, kernel, kernelEnvironmentName, kernelCpu, kernelMemory, kernelGpu, headerButtons, messageCount, onNewChat, onClear, chatViewMode, onChatViewModeChange, disabledViewModes, showEphemeralSurfaceControl, enableEphemeralNotebookOption, enableEphemeralDocumentOption, ephemeralSurfaceMode, onEphemeralSurfaceModeChange, }: ChatBaseHeaderProps): import("react").JSX.Element;
85
+ export declare function ChatBaseHeader({ title, subtitle, disableReason, brandIcon, headerContent, headerActions, showInformation, onInformationClick, padding, kernelIndicatorState, kernelIndicatorPlacement, runtimeStatus, kernel, kernelEnvironmentName, kernelCpu, kernelMemory, kernelGpu, headerButtons, messageCount, onNewChat, onClear, chatViewMode, onChatViewModeChange, disabledViewModes, offeredViewModes, showEphemeralSurfaceControl, enableEphemeralNotebookOption, enableEphemeralDocumentOption, ephemeralSurfaceMode, onEphemeralSurfaceModeChange, }: ChatBaseHeaderProps): import("react").JSX.Element;
84
86
  export {};
@@ -31,7 +31,7 @@ export function toRuntimeExecutionState(runtimeStatus) {
31
31
  // ---------------------------------------------------------------------------
32
32
  // Component
33
33
  // ---------------------------------------------------------------------------
34
- export function ChatBaseHeader({ title, subtitle, disableReason, brandIcon, headerContent, headerActions, showInformation, onInformationClick, padding, kernelIndicatorState, kernelIndicatorPlacement = 'left', runtimeStatus, kernel, kernelEnvironmentName, kernelCpu, kernelMemory, kernelGpu, headerButtons, messageCount, onNewChat, onClear, chatViewMode, onChatViewModeChange, disabledViewModes = [], showEphemeralSurfaceControl = false, enableEphemeralNotebookOption = false, enableEphemeralDocumentOption = false, ephemeralSurfaceMode = 'none', onEphemeralSurfaceModeChange, }) {
34
+ export function ChatBaseHeader({ title, subtitle, disableReason, brandIcon, headerContent, headerActions, showInformation, onInformationClick, padding, kernelIndicatorState, kernelIndicatorPlacement = 'left', runtimeStatus, kernel, kernelEnvironmentName, kernelCpu, kernelMemory, kernelGpu, headerButtons, messageCount, onNewChat, onClear, chatViewMode, onChatViewModeChange, disabledViewModes = [], offeredViewModes, showEphemeralSurfaceControl = false, enableEphemeralNotebookOption = false, enableEphemeralDocumentOption = false, ephemeralSurfaceMode = 'none', onEphemeralSurfaceModeChange, }) {
35
35
  const effectiveIndicatorState = kernelIndicatorState ?? toRuntimeExecutionState(runtimeStatus);
36
36
  /*
37
37
  * No indicator where there is nothing to indicate.
@@ -58,5 +58,5 @@ export function ChatBaseHeader({ title, subtitle, disableReason, brandIcon, head
58
58
  color: 'fg.muted',
59
59
  minWidth: 0,
60
60
  maxWidth: '100%',
61
- }, children: _jsx(Truncate, { title: subtitle, maxWidth: "40ch", children: subtitle }) }))] })), disableReason && (_jsx(Label, { variant: "attention", sx: { flexShrink: 0 }, children: disableReason })), headerContent, showInformation && (_jsx(IconButton, { icon: InfoIcon, "aria-label": "Information", variant: "invisible", size: "small", onClick: onInformationClick })), kernelIndicatorPlacement === 'center' && kernelIndicatorElement] }), _jsxs(Box, { display: "flex", alignItems: "center", gap: 1, flexShrink: 0, children: [kernelIndicatorPlacement === 'right' && kernelIndicatorElement, headerButtons?.showNewChat && (_jsx(IconButton, { icon: PlusIcon, "aria-label": "New chat", variant: "invisible", size: "small", onClick: onNewChat })), headerButtons?.showClear && messageCount > 0 && (_jsx(IconButton, { icon: TrashIcon, "aria-label": "Clear messages", variant: "invisible", size: "small", onClick: onClear })), headerButtons?.showSettings && (_jsx(IconButton, { icon: GearIcon, "aria-label": "Settings", variant: "invisible", size: "small", onClick: headerButtons.onSettings })), showEphemeralSurfaceControl && (_jsx(EphemeralSurfaceControl, { mode: ephemeralSurfaceMode, onChange: onEphemeralSurfaceModeChange, enableNotebook: enableEphemeralNotebookOption, enableDocument: enableEphemeralDocumentOption })), chatViewMode && onChatViewModeChange && (_jsx(ChatViewModeToggle, { value: chatViewMode, onChange: onChatViewModeChange, disabledModes: disabledViewModes })), headerActions] })] }) }));
61
+ }, children: _jsx(Truncate, { title: subtitle, maxWidth: "40ch", children: subtitle }) }))] })), disableReason && (_jsx(Label, { variant: "attention", sx: { flexShrink: 0 }, children: disableReason })), headerContent, showInformation && (_jsx(IconButton, { icon: InfoIcon, "aria-label": "Information", variant: "invisible", size: "small", onClick: onInformationClick })), kernelIndicatorPlacement === 'center' && kernelIndicatorElement] }), _jsxs(Box, { display: "flex", alignItems: "center", gap: 1, flexShrink: 0, children: [kernelIndicatorPlacement === 'right' && kernelIndicatorElement, headerButtons?.showNewChat && (_jsx(IconButton, { icon: PlusIcon, "aria-label": "New chat", variant: "invisible", size: "small", onClick: onNewChat })), headerButtons?.showClear && messageCount > 0 && (_jsx(IconButton, { icon: TrashIcon, "aria-label": "Clear messages", variant: "invisible", size: "small", onClick: onClear })), headerButtons?.showSettings && (_jsx(IconButton, { icon: GearIcon, "aria-label": "Settings", variant: "invisible", size: "small", onClick: headerButtons.onSettings })), showEphemeralSurfaceControl && (_jsx(EphemeralSurfaceControl, { mode: ephemeralSurfaceMode, onChange: onEphemeralSurfaceModeChange, enableNotebook: enableEphemeralNotebookOption, enableDocument: enableEphemeralDocumentOption })), chatViewMode && onChatViewModeChange && (_jsx(ChatViewModeToggle, { value: chatViewMode, onChange: onChatViewModeChange, disabledModes: disabledViewModes, modes: offeredViewModes })), headerActions] })] }) }));
62
62
  }
@@ -23,7 +23,13 @@ export type ChatViewModeToggleProps = {
23
23
  onChange: (mode: ChatViewMode) => void;
24
24
  /** Modes shown greyed out: the sidebar, when the host has no mount point. */
25
25
  disabledModes?: readonly ChatViewMode[];
26
+ /**
27
+ * The modes offered, in `CHAT_VIEW_MODES` order whatever order they are
28
+ * given in: all of them when unsaid. A host that places only some of them
29
+ * — the workspace: its sidebar, or the assistant over it — leaves the rest out.
30
+ */
31
+ modes?: readonly ChatViewMode[];
26
32
  /** Where the tooltips open. Above by default; below for a control at the top of its window. */
27
33
  tooltipDirection?: 'n' | 's';
28
34
  };
29
- export declare function ChatViewModeToggle({ value, onChange, disabledModes, tooltipDirection, }: ChatViewModeToggleProps): JSX.Element;
35
+ export declare function ChatViewModeToggle({ value, onChange, disabledModes, modes, tooltipDirection, }: ChatViewModeToggleProps): JSX.Element;
@@ -11,8 +11,11 @@ export const VIEW_MODE_ICONS = {
11
11
  assistant: PaperclipIcon,
12
12
  sidebar: SidebarExpandIcon,
13
13
  };
14
- export function ChatViewModeToggle({ value, onChange, disabledModes = [], tooltipDirection = 'n', }) {
15
- return (_jsx(Box, { role: "group", "aria-label": "Display mode", "data-chat-view-mode-toggle": "", display: "inline-flex", alignItems: "center", bg: "neutral.muted", borderRadius: "6px", p: "2px", gap: "1px", children: CHAT_VIEW_MODES.map(({ mode, label }) => {
14
+ export function ChatViewModeToggle({ value, onChange, disabledModes = [], modes, tooltipDirection = 'n', }) {
15
+ const offered = modes
16
+ ? CHAT_VIEW_MODES.filter(option => modes.includes(option.mode))
17
+ : CHAT_VIEW_MODES;
18
+ return (_jsx(Box, { role: "group", "aria-label": "Display mode", "data-chat-view-mode-toggle": "", display: "inline-flex", alignItems: "center", bg: "neutral.muted", borderRadius: "6px", p: "2px", gap: "1px", children: offered.map(({ mode, label }) => {
16
19
  const ModeIcon = VIEW_MODE_ICONS[mode];
17
20
  const selected = value === mode;
18
21
  /* Greyed rather than left out: the person sees the mode exists, and
@@ -15,6 +15,7 @@ import { AgenticCommercePlugin } from './agentic-commerce';
15
15
  import { ProtocolsCorePlugin } from './core';
16
16
  import { McpPlugin } from './mcp';
17
17
  import { PactPlugin } from './pact';
18
+ import { PapPlugin } from './pap';
18
19
  import { UcpPlugin } from './ucp';
19
20
  import { WebBotAuthPlugin } from './web-bot-auth';
20
21
  export const AGENT_PROTOCOLS_EXTENSION = 'agent-protocols';
@@ -22,7 +23,7 @@ export const AgentProtocolsExtension = defineExtension({
22
23
  name: AGENT_PROTOCOLS_EXTENSION,
23
24
  version: '1.0.0',
24
25
  displayName: 'Agent protocols',
25
- description: 'MCP, A2A, Web Bot Auth, UCP, the Agentic Commerce Protocol and PACT, each a plugin; their extensions its contribution points.',
26
+ description: 'MCP, A2A, Web Bot Auth, UCP, the Agentic Commerce Protocol, PACT and PAP, each a plugin; their extensions its contribution points.',
26
27
  plugins: [
27
28
  ProtocolsCorePlugin,
28
29
  McpPlugin,
@@ -31,6 +32,7 @@ export const AgentProtocolsExtension = defineExtension({
31
32
  UcpPlugin,
32
33
  AgenticCommercePlugin,
33
34
  PactPlugin,
35
+ PapPlugin,
34
36
  ],
35
37
  });
36
38
  /**
@@ -0,0 +1,4 @@
1
+ export declare const PAP_PLUGIN = "agent-runtimes.protocols.pap";
2
+ /** The PAP draft the SDK implements (its `PROTOCOL_PROFILE`; Python reads it from the SDK). */
3
+ export declare const PAP_PROTOCOL_PROFILE = "0.1";
4
+ export declare const PapPlugin: import("@datalayer/reactor").ReactorPlugin<Record<string, never>, unknown, unknown>;
@@ -0,0 +1,41 @@
1
+ /*
2
+ * Copyright (c) 2025-2026 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ /**
6
+ * The Personal Agent Protocol as a Reactor Plugin of the `agent-protocols`
7
+ * Extension. PAP's own plugins and points (`pap.*`, `pap.company.*`) come
8
+ * with its SDK, registered on the PAP Reactor a personal agent or a company
9
+ * builds; this plugin says what a runtime implements of PAP on
10
+ * `protocols.description`. It declares no point here: the one the Python
11
+ * runtime adds, `pap.company.operationTickets`, is where a perform turn
12
+ * redeems its ticket, and a TypeScript runtime performs no company
13
+ * operation. The twin of `agent_runtimes.protocols.pap`.
14
+ *
15
+ * @module protocols/pap
16
+ */
17
+ import { contribution, definePlugin } from '@datalayer/reactor';
18
+ import { DEFAULT_ORDER, ProtocolDescriptions } from '../core';
19
+ export const PAP_PLUGIN = 'agent-runtimes.protocols.pap';
20
+ /** The PAP draft the SDK implements (its `PROTOCOL_PROFILE`; Python reads it from the SDK). */
21
+ export const PAP_PROTOCOL_PROFILE = '0.1';
22
+ export const PapPlugin = definePlugin({
23
+ name: PAP_PLUGIN,
24
+ version: '1.0.0',
25
+ description: "Personal Agent Protocol: a person's agent at companies, and an application as a company, over the PAP SDK.",
26
+ contributionPoints: [],
27
+ contributes: [
28
+ contribution(ProtocolDescriptions, {
29
+ id: 'pap',
30
+ name: 'Personal Agent Protocol',
31
+ layer: 'consent',
32
+ version: PAP_PROTOCOL_PROFILE,
33
+ roles: ['personal-agent', 'company'],
34
+ status: 'implemented',
35
+ specification: 'https://personalagentprotocol.org/docs/spec',
36
+ plugin: PAP_PLUGIN,
37
+ catalogue: 'pap',
38
+ points: [],
39
+ }, { id: 'pap', order: DEFAULT_ORDER }),
40
+ ],
41
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@datalayer/agent-runtimes",
3
- "version": "1.5.0",
3
+ "version": "1.5.2",
4
4
  "type": "module",
5
5
  "workspaces": [
6
6
  ".",
@@ -160,7 +160,7 @@
160
160
  "@datalayer/lexical-loro": "^1.0.6",
161
161
  "@datalayer/primer-addons": "^1.0.39",
162
162
  "@datalayer/primer-rjsf": "^1.0.3",
163
- "@datalayer/personal-agent-protocol": "^0.6.0",
163
+ "@datalayer/personal-agent-protocol": "^0.15.0",
164
164
  "@datalayer/reactor": "^1.3.0",
165
165
  "@datalayer/reactor-commands": "^1.0.4",
166
166
  "@datalayer/reactor-manager": "^1.0.4",
@@ -1 +0,0 @@
1
- import{v as $,b6 as g,ck as k,cl as q,j as y,b8 as V}from"../datalayer-app-main.js";var w={Avatar:"prc-Avatar-Avatar-ZRS-m"};const D=20,T=$.forwardRef(function(A,u){const s=g.c(29);let o,l,a,i,n,d,f;s[0]!==A?({alt:n,size:d,square:f,sx:i,className:o,style:a,...l}=A,s[0]=A,s[1]=o,s[2]=l,s[3]=a,s[4]=i,s[5]=n,s[6]=d,s[7]=f):(o=s[1],l=s[2],a=s[3],i=s[4],n=s[5],d=s[6],f=s[7]);const m=n===void 0?"":n,t=d===void 0?D:d,h=f===void 0?!1:f;let p;s[8]!==t?(p=k(t),s[8]=t,s[9]=p):p=s[9];const r=p;let e;if(s[10]!==r||s[11]!==t){if(e={},r)for(const[j,E]of Object.entries(t))e[`--avatarSize-${j}`]=`${E}px`;else e["--avatarSize-regular"]=`${t}px`;s[10]=r,s[11]=t,s[12]=e}else e=s[12];let c;s[13]!==o?(c=q(o,w.Avatar),s[13]=o,s[14]=c):c=s[14];const R=r?"":void 0,z=h?"":void 0,S=r?void 0:t,b=r?void 0:t;let v;s[15]!==e||s[16]!==a?(v=a?{...e,...a}:e,s[15]=e,s[16]=a,s[17]=v):v=s[17];let x;return s[18]!==m||s[19]!==u||s[20]!==l||s[21]!==i||s[22]!==v||s[23]!==c||s[24]!==R||s[25]!==z||s[26]!==S||s[27]!==b?(x=y.jsx(V,{as:"img","data-component":"Avatar",className:c,ref:u,alt:m,"data-responsive":R,"data-square":z,width:S,height:b,style:v,sx:i,...l}),s[18]=m,s[19]=u,s[20]=l,s[21]=i,s[22]=v,s[23]=c,s[24]=R,s[25]=z,s[26]=S,s[27]=b,s[28]=x):x=s[28],x});export{T as A,D};
@@ -1 +0,0 @@
1
- import{a_ as N,a$ as U,b0 as C,x as I,b1 as L,r as u,b2 as T,b3 as v,b4 as j}from"../datalayer-app-main.js";function x(l){const n=l?.app_spec;if(!n||typeof n!="object")return;const e=l?.app_instance??{},t=typeof e.app_uid=="string"&&e.app_uid?e.app_uid:void 0,r=typeof e.deployment_uid=="string"&&e.deployment_uid?e.deployment_uid:void 0;return{appSpec:n,...t?{appUid:t}:{},...r?{deploymentUid:r}:{}}}const B="jupyter-tutor";function h(){const n=N().getConfig(U),e=n?.datalayerAgentSpecId??B,t=n?.datalayerCreatePayload,r=n?.datalayerVisitors,E=n?.datalayerKept,i=r?.url??E?.url,a=C(),s=I(a?.target??L)==="datalayer",p=t?.app_spec?.id,[c,d]=u.useState({});u.useEffect(()=>{if(d({}),!r||!s)return;if(typeof p!="string"||!p){d({error:"A conversation without an account runs an application: none was given."});return}let y=!0;return T(r,p).then(()=>{y&&d({ready:!0})}).catch(_=>{y&&d({error:_ instanceof Error?_.message:String(_)})}),()=>{y=!1}},[r?.url,r?.app,r?.inferenceUrl,p,s]);const A=typeof t?.name=="string"?t.name:e,g=t?.transport==="ag-ui"||t?.transport==="vercel-ai"?t.transport:void 0,b=u.useMemo(()=>({name:A,...g?{protocol:g}:{},agentSpecId:e,model:v[e]?.model,description:v[e]?.description,...t?{createPayload:t}:{}}),[e,A,g,t]),S=u.useMemo(()=>x(t),[t]),{runtime:o,status:m,error:f}=j({agentSpecId:e,agentConfig:b,...S?{appLaunch:S}:{},variant:"cloud-pydanticai",autoStart:s&&!i,autoCreateAgent:s&&!i});return u.useEffect(()=>{if(!(!a||!s)){if(r){if(c.error){a.setState("error",c.error);return}if(!c.ready){a.setState("starting");return}}if(i){a.report({variant:"datalayer",sandbox_running:!1,agent_base_url:i});return}if(f){a.setState("error",f);return}if(!o?.jupyterBaseUrl){a.setState(m==="error"?"error":"starting");return}a.report({variant:"datalayer",sandbox_running:!!o.serviceManager,jupyter_url:o.jupyterBaseUrl,jupyter_token:o.serviceManager?.serverSettings?.token,kernel_id:o.kernelId,agent_base_url:o.agentBaseUrl})}},[a,s,o,m,f,i,r,c]),null}export{h as DatalayerAgentBridge,h as default};
@@ -1 +0,0 @@
1
- import{K as o,r as t}from"../datalayer-app-main.js";import{h as e,i}from"./JupyterLexicalExtension-BuRLImy5.js";import"./NotebookSkeleton-HdM76lOj.js";import"./Avatar-DbU3YP4x.js";import"./url-DuKx0yk0.js";import"./isSymbol-BLtK9CV6.js";import"./toNumber-B1wj8-wx.js";import"./VideoIcon-BjP_LDa4.js";import"./LinkIcon-DUI0jw25.js";import"./Toolbar-6Hdi_m3T.js";import"./KebabHorizontalIcon-CXDXtkuL.js";import"./ArrowUpIcon-BUCpIXDR.js";import"./SortDescIcon-CS4EzHeS.js";import"./PaintbrushIcon-CLU8RilX.js";import"./PrismCss-CcU1ChRk.js";import"./Output-BscOPLqE.js";import"./index-BvvaLLhn.js";import"./hoverbox-CStlKQWE.js";import"./index-BYQwy0Zx.js";import"./index-BJ7Yskx5.js";import"./color-CG7_7V2-.js";import"./isEqual-BybBNsZK.js";import"./defaultLocale-5voVPcsN.js";import"./index-DbMBnR4l.js";import"./index-B3WvcNQa.js";import"./RestartIcon-Ca6_HoK0.js";import"./LexicalToolRegistry-CXLITkMD.js";const K=()=>{const[r]=o();return t.useEffect(()=>i(r),[r]),null};export{e as INSERT_YOUTUBE_COMMAND,K as YouTubePlugin,K as default};
@@ -1 +0,0 @@
1
- import{sY as h,dO as i,dP as u,dU as l,aY as E,dT as d,dV as p}from"../datalayer-app-main.js";import{sZ as V,s_ as b,dR as z,dS as L,s$ as F,t0 as G,t1 as P,t2 as k,t3 as $,t4 as q,t5 as x,t6 as H,t7 as J,t8 as j,t9 as B,ta as X,tb as Z,tc as Q,td as ee,te,tf as se,tg as re,th as oe,ti as ae,tj as ne,tk as ie,tl as ue,tm as ce,tn as Se,dW as le,dX as de,dY as ge,to as me,tp as Ee,tq as _e,tr as Te}from"../datalayer-app-main.js";const A=()=>location.hostname.startsWith("dev")||location.hostname.startsWith("localhost"),_=()=>h(),T=e=>({id:e.uid,name:e.name_s,userId:e.user_id,form:e.form,createdAt:new Date(e.creation_ts_dt),updatedAt:new Date(e.last_update_ts_dt)}),v=i((e,a)=>({organizations:[],updateOrganizations:s=>e(r=>({organizations:s})),updateOrganization:s=>e(r=>({organizations:r.organizations.map(t=>t.id===s.id?{...t,...s}:t)}))}));function N(e){return u(v,e)}const g=i((e,a)=>({surveys:void 0,growthUrl:d.getState().configuration?.growthUrl,setSurveys:s=>{const r=new Map;s.forEach(t=>r.set(t.name,t)),e(t=>({surveys:r}))},refreshSurveys:async()=>{const{token:s}=l.getState(),{growthUrl:r}=a();try{const t=await E({url:`${r}/api/growth/v1/surveys`,method:"GET",token:s});if(t.success&&t.surveys){const c=t.surveys.map(n=>T(n)),o=new Map;c.forEach(n=>o.set(n.name,n)),e(n=>({surveys:o}))}else console.error("Failed to get the surveys.",t)}catch(t){throw console.error("Failed to get the surveys.",t),t.name==="RunResponseError"&&t.response.status===401&&console.error("Received 401, logging out."),t}},createSurvey:async(s,r)=>{const{growthUrl:t}=a(),{token:c}=l.getState();try{const o=await E({url:`${t}/api/growth/v1/surveys`,method:"POST",body:{name:s,form:r},token:c});if(o.success&&o.survey){const n=T(o.survey),S=a().surveys;S?(S.set(n.name,n),e(f=>({surveys:S}))):e(f=>({surveys:new Map([[n.name,n]])}))}else console.error("Failed to create the survey.",o)}catch(o){throw console.error("Failed to create the survey.",o),o.name==="RunResponseError"&&o.response.status===401&&console.error("Received 401, logging out."),o}}}));d.subscribe((e,a)=>{if(e.configuration.successUrl&&e.configuration.successUrl!==a.configuration.successUrl){const s=e.configuration.growthUrl;console.log(`Updating growthUrl with new value ${s}`),g.setState({growthUrl:s})}});function W(e){return u(g,e)}const m=e=>({id:_(),type:"team",handle:e,name:e,description:e+" description.",public:!1,members:[],creationDate:new Date,organization:{id:_()},setMembers:s=>{}}),R=m("Team 1"),O=m("Team 2"),I=m("Team 3"),w=[R,O,I],y=i((e,a)=>({teams:w,update:s=>e(r=>({teams:s})),updateTeam:s=>e(r=>({teams:r.teams.map(t=>t.id===s.id?{...t,...s}:t)}))}));function C(e){return u(y,e)}const M=i((e,a)=>({version:"",setVersion:s=>{s&&!a().version&&e(r=>({version:s}))},isDev:A(),core:d.getState,iam:l.getState,layout:p.getState,organization:v.getState,success:g.getState,team:y.getState}));function D(e){return u(M,e)}export{V as AGENTS_VIEW,b as CONTENTS_VIEW,z as DATALAYER_IAM_TOKEN_KEY,L as DATALAYER_IAM_USER_KEY,F as DATALAYER_VIEW,G as JWT_DATALAYER_ISSUER,P as JWT_REFRESH_TOKEN_COOKIE_NAME,k as LIBRARY_VIEW,$ as NAVIGATION_VIEW_HOMES,q as RESERVATION_WARNING_TIME_MS,x as SESSION_COOKIES,H as SESSION_LOCAL_STORAGE_KEYS,J as SESSION_OWNER_KEY,j as SETTINGS_VIEW,B as TUTOR_VIEW,X as claimSessionState,d as coreStore,Z as forgetSessionState,Q as getOtelConsumeUrl,ee as getStoredToken,te as getStoredUser,l as iamStore,se as isRememberableRoute,re as isShellNeutralRoute,p as layoutStore,oe as loadRefreshTokenFromCookie,ae as navigationStore,v as organizationStore,ne as pageConfiguration,ie as profileStore,ue as registerSessionState,M as runStore,ce as storeToken,Se as storeUser,g as surveysStore,y as teamStore,le as useCoreStore,de as useIAMStore,ge as useLayoutStore,me as useNavigationStore,N as useOrganizationStore,Ee as useProfile,_e as useProfileStore,D as useRunStore,W as useSurveysStore,C as useTeamStore,Te as viewForRoute};
@@ -1 +0,0 @@
1
- import{j as r,u as n,bq as s,bn as a,br as i,bp as l,U as b}from"../datalayer-app-main.js";import{N as p}from"./NotebookToolbar-DMKCe3c2.js";import"./RepoPushIcon-Cm8g9NuL.js";import"./Toolbar-6Hdi_m3T.js";import"./KebabHorizontalIcon-CXDXtkuL.js";const e=p.cellType+100;function c({notebookId:o}){const t=n().selectNotebookAdapter(o)?.kernel??null;return r.jsx(s,{kernel:t,bordered:!1})}function k(o){return[{key:"loop-kernel-indicator-spacer",type:"spacer",order:e-1},{key:"loop-kernel-indicator",type:"custom",order:e,group:"kernel",render:()=>r.jsx(c,{notebookId:o})}]}const E=a({name:i,contributes:[l(b,{items:({editorId:o})=>k(o)},{id:"toolbar",order:100})]});export{E as NotebookToolbarPlugin,E as default};