@datalayer/agent-runtimes 1.5.20 → 1.5.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-embed/chunks/{AgentDetails-DZyyuD5F.js → AgentDetails-B6vekLFY.js} +1 -1
- package/dist-embed/chunks/{AgentDetailsDialog-DaQyQxlm.js → AgentDetailsDialog-C-o8qFsS.js} +1 -1
- package/dist-embed/chunks/{AgentInspector-CBNiiRtv.js → AgentInspector-EiBHJgc9.js} +1 -1
- package/dist-embed/chunks/{AgentInspectorDialog-BxMOAc7K.js → AgentInspectorDialog-3fbLXnLP.js} +1 -1
- package/dist-embed/chunks/{CellSidebarExtension-Dwe7PfXi.js → CellSidebarExtension-BBXRIRgA.js} +7 -7
- package/dist-embed/chunks/ChatView-BjZ993Ch.js +32 -0
- package/dist-embed/chunks/{ContextPie-n1y886z-.js → ContextPie-Daf19Ivt.js} +1 -1
- package/dist-embed/chunks/{DeckComponent-BSeEBNHt.js → DeckComponent-C76a8LYD.js} +2 -2
- package/dist-embed/chunks/{DocumentView-OIdQEk_n.js → DocumentView-BZhbQkbP.js} +1 -1
- package/dist-embed/chunks/{EphemeralDocument-C-uLD1W7.js → EphemeralDocument-Bzv1mPpG.js} +1 -1
- package/dist-embed/chunks/{EphemeralNotebook-C_peDfqf.js → EphemeralNotebook-C4_wmSgk.js} +1 -1
- package/dist-embed/chunks/{ExcalidrawComponent-DHSxnPc9.js → ExcalidrawComponent-DVOnRDkN.js} +1 -1
- package/dist-embed/chunks/{ExcalidrawModal-BpsfNG-u.js → ExcalidrawModal-B0h_-M3l.js} +1 -1
- package/dist-embed/chunks/{JupyterLexicalExtension-BUSLnJVL.js → JupyterLexicalExtension-B2PQrLXS.js} +9 -9
- package/dist-embed/chunks/{KernelVariables-Cu7UeFhT.js → KernelVariables-trZsXNAi.js} +1 -1
- package/dist-embed/chunks/{LexicalToolRegistry-CNg1T5sQ.js → LexicalToolRegistry-8wJyLumb.js} +4 -4
- package/dist-embed/chunks/{NotebookToolSurfaces-Cm6-oE_W.js → NotebookToolSurfaces-BuKcXArX.js} +1 -1
- package/dist-embed/chunks/{NotebookView-Be2lNZjS.js → NotebookView-Em4y6Een.js} +1 -1
- package/dist-embed/chunks/{Output-OIgTyxpD.js → Output-DA8Udq91.js} +1 -1
- package/dist-embed/chunks/{SandboxDetailsDialog-BMq0tlcE.js → SandboxDetailsDialog-o2z6YFyb.js} +1 -1
- package/dist-embed/chunks/{SchemaForm-D3mmq2C1.js → SchemaForm-DCt_mqR1.js} +1 -1
- package/dist-embed/chunks/{WidgetVariableView-DnuwkCHl.js → WidgetVariableView-CDEFi0p0.js} +1 -1
- package/dist-embed/chunks/{YouTubePlugin-Bum16ua6.js → YouTubePlugin-DxRPFzvS.js} +1 -1
- package/dist-embed/chunks/{abnfDiagram-VCTEODGH-Dac38D-P.js → abnfDiagram-VCTEODGH-Cit223SC.js} +1 -1
- package/dist-embed/chunks/{abnfDiagram-VCTEODGH-BMkFygW4.js → abnfDiagram-VCTEODGH-CsoEWluu.js} +1 -1
- package/dist-embed/chunks/{ar-SA-G6X2FPQ2-JDFjD_Dk.js → ar-SA-G6X2FPQ2-CjJtC55z.js} +1 -1
- package/dist-embed/chunks/{architectureDiagram-5GKGNRK7-D7VBU0uf.js → architectureDiagram-5GKGNRK7-DfqpfKOB.js} +1 -1
- package/dist-embed/chunks/{architectureDiagram-5GKGNRK7-DXJTBh9S.js → architectureDiagram-5GKGNRK7-DyQuZM-c.js} +1 -1
- package/dist-embed/chunks/{az-AZ-76LH7QW2-AbN1w5Zy.js → az-AZ-76LH7QW2-B7KkL6wt.js} +1 -1
- package/dist-embed/chunks/{bg-BG-XCXSNQG7-BULkJsTf.js → bg-BG-XCXSNQG7-D7UwtEhO.js} +1 -1
- package/dist-embed/chunks/{blockDiagram-868be97b-Bk9MNjmt.js → blockDiagram-868be97b-jJKAH_Up.js} +1 -1
- package/dist-embed/chunks/{blockDiagram-I7D4REHJ-CKjKQ6Dq.js → blockDiagram-I7D4REHJ-BcQwB7-r.js} +1 -1
- package/dist-embed/chunks/{blockDiagram-I7D4REHJ-BwenaP7n.js → blockDiagram-I7D4REHJ-z3xnLtdG.js} +1 -1
- package/dist-embed/chunks/{bn-BD-2XOGV67Q-B6EtUyIk.js → bn-BD-2XOGV67Q-pDDWE9Mn.js} +1 -1
- package/dist-embed/chunks/{c4Diagram-3f4bdde3-BGoSdP5p.js → c4Diagram-3f4bdde3-DU_-LipO.js} +1 -1
- package/dist-embed/chunks/{c4Diagram-7LVT6UL2-DlkcVfDa.js → c4Diagram-7LVT6UL2-BeMfCOG_.js} +1 -1
- package/dist-embed/chunks/{c4Diagram-7LVT6UL2-BZRokUDB.js → c4Diagram-7LVT6UL2-DjfnLrWZ.js} +1 -1
- package/dist-embed/chunks/{ca-ES-6MX7JW3Y-BZ0wzUck.js → ca-ES-6MX7JW3Y-By1uEeFx.js} +1 -1
- package/dist-embed/chunks/{celltoolbartracker-CCRqu43G.js → celltoolbartracker-DcYHi8Du.js} +1 -1
- package/dist-embed/chunks/{chunk-2Q5K7J3B-DLu9zZx0.js → chunk-2Q5K7J3B-BGvvv_gg.js} +1 -1
- package/dist-embed/chunks/{chunk-2Q5K7J3B-CfYiHpfd.js → chunk-2Q5K7J3B-YWpfqKnX.js} +1 -1
- package/dist-embed/chunks/{chunk-5VM5RSS4-yHAygNq4.js → chunk-5VM5RSS4-4bCWL_eZ.js} +1 -1
- package/dist-embed/chunks/{chunk-5VM5RSS4-dV5IUPYK.js → chunk-5VM5RSS4-t-8mwHFb.js} +1 -1
- package/dist-embed/chunks/{chunk-F27PBJKO-BArvzx7H.js → chunk-F27PBJKO-3yGsHIDd.js} +1 -1
- package/dist-embed/chunks/{chunk-F27PBJKO-BeY8iI19.js → chunk-F27PBJKO-De9ONU-g.js} +1 -1
- package/dist-embed/chunks/{chunk-IMKFNOWR-BJRUyuXy.js → chunk-IMKFNOWR-Bvbi7lre.js} +1 -1
- package/dist-embed/chunks/{chunk-IMKFNOWR-iUeFNxCU.js → chunk-IMKFNOWR-DA2KJGep.js} +1 -1
- package/dist-embed/chunks/{chunk-JWPE2WC7-BDUBU4vN.js → chunk-JWPE2WC7-CVkDZh_H.js} +1 -1
- package/dist-embed/chunks/{chunk-JWPE2WC7-Djk-1JPJ.js → chunk-JWPE2WC7-w_AaYpEU.js} +1 -1
- package/dist-embed/chunks/{chunk-POPQ4Y6H-E4731IOt.js → chunk-POPQ4Y6H-C1mg0obI.js} +1 -1
- package/dist-embed/chunks/{chunk-POPQ4Y6H-CibXbz_c.js → chunk-POPQ4Y6H-DnstozKC.js} +1 -1
- package/dist-embed/chunks/{chunk-SVP7TREG-o7JviCXQ.js → chunk-SVP7TREG-CVLd6GtA.js} +1 -1
- package/dist-embed/chunks/{chunk-SVP7TREG-DeRyA6Ek.js → chunk-SVP7TREG-DmKkKduL.js} +1 -1
- package/dist-embed/chunks/{chunk-TICWLB2K-Zk_gUXIu.js → chunk-TICWLB2K-C-lEt3p0.js} +1 -1
- package/dist-embed/chunks/{chunk-TICWLB2K-BIhZcpwn.js → chunk-TICWLB2K-xv7MPgmq.js} +1 -1
- package/dist-embed/chunks/{chunk-XXDRQBXY-DATpHkZD.js → chunk-XXDRQBXY-Cq8wF2xQ.js} +1 -1
- package/dist-embed/chunks/{chunk-XXDRQBXY-Cp6f69YK.js → chunk-XXDRQBXY-j7xuWjIK.js} +1 -1
- package/dist-embed/chunks/{classDiagram-ZZMXUADV-BfpWJKcC.js → classDiagram-ZZMXUADV-DRPRMTvC.js} +1 -1
- package/dist-embed/chunks/{classDiagram-ZZMXUADV-DcutslOq.js → classDiagram-ZZMXUADV-Dvh08RMu.js} +1 -1
- package/dist-embed/chunks/{classDiagram-f62afe4f-BVLyWZwA.js → classDiagram-f62afe4f-B8-b8b-t.js} +1 -1
- package/dist-embed/chunks/{classDiagram-v2-604399ef-CgcAzr_L.js → classDiagram-v2-604399ef-CHogX84-.js} +1 -1
- package/dist-embed/chunks/{classDiagram-v2-VYDZK3BY-BfpWJKcC.js → classDiagram-v2-VYDZK3BY-DRPRMTvC.js} +1 -1
- package/dist-embed/chunks/{classDiagram-v2-VYDZK3BY-DcutslOq.js → classDiagram-v2-VYDZK3BY-Dvh08RMu.js} +1 -1
- package/dist-embed/chunks/{code-block-IT6T5CEO-D5_yhrdD.js → code-block-IT6T5CEO-Dbm1cj5T.js} +1 -1
- package/dist-embed/chunks/{component-DoyMsR16.js → component-CsXw-w1P.js} +3 -3
- package/dist-embed/chunks/{cose-bilkent-JH36ORCC-B-LvsoyE.js → cose-bilkent-JH36ORCC-BrisaBwh.js} +1 -1
- package/dist-embed/chunks/{cose-bilkent-JH36ORCC-DhPsWJev.js → cose-bilkent-JH36ORCC-DGpwW9PH.js} +1 -1
- package/dist-embed/chunks/{createText-aed3d8b3-CnP7VdTn.js → createText-aed3d8b3-C8C5hNtS.js} +1 -1
- package/dist-embed/chunks/{cs-CZ-2BRQDIVT-CHIiQJ-9.js → cs-CZ-2BRQDIVT-TB9QxoL2.js} +1 -1
- package/dist-embed/chunks/{cynefinDiagram-5FMLGOSQ-B4k-OykO.js → cynefinDiagram-5FMLGOSQ-B37BRKcq.js} +1 -1
- package/dist-embed/chunks/{cynefinDiagram-5FMLGOSQ-D4zzGd7W.js → cynefinDiagram-5FMLGOSQ-NXny6Mot.js} +1 -1
- package/dist-embed/chunks/{da-DK-5WZEPLOC-dfN2SAKQ.js → da-DK-5WZEPLOC-CLl8TZ2P.js} +1 -1
- package/dist-embed/chunks/{dagre-GXQ25YYZ-BlWkzzlo.js → dagre-GXQ25YYZ-b03jeXc5.js} +1 -1
- package/dist-embed/chunks/{dagre-GXQ25YYZ-DUrWhbsC.js → dagre-GXQ25YYZ-mM6SsGs8.js} +1 -1
- package/dist-embed/chunks/{de-DE-XR44H4JA-BKsKfmfo.js → de-DE-XR44H4JA-6gY_Hl4H.js} +1 -1
- package/dist-embed/chunks/{diagram-S7CK7UJ4-BuRBzTwI.js → diagram-S7CK7UJ4-C8TF_Y_V.js} +1 -1
- package/dist-embed/chunks/{diagram-S7CK7UJ4-FxHXDIYr.js → diagram-S7CK7UJ4-fpaH_1xM.js} +1 -1
- package/dist-embed/chunks/{diagram-UQ7AKVKN-CeDT8Vz4.js → diagram-UQ7AKVKN-CcqaQfbU.js} +1 -1
- package/dist-embed/chunks/{diagram-UQ7AKVKN-FxYHrvzF.js → diagram-UQ7AKVKN-G8fspx37.js} +1 -1
- package/dist-embed/chunks/{diagram-VSXAHHWV-C2icUdkA.js → diagram-VSXAHHWV-B3Q41FOl.js} +1 -1
- package/dist-embed/chunks/{diagram-VSXAHHWV-Cv0WAiv8.js → diagram-VSXAHHWV-DLhWEHn-.js} +1 -1
- package/dist-embed/chunks/{diagram-VX7I27RA-AoxkG7BW.js → diagram-VX7I27RA-Dnbm3teD.js} +1 -1
- package/dist-embed/chunks/{diagram-VX7I27RA-D6VPVMhu.js → diagram-VX7I27RA-Dy-IHeZr.js} +1 -1
- package/dist-embed/chunks/{diagram-Z3DM3KII-DxunLDOr.js → diagram-Z3DM3KII-BkiB9_Ay.js} +1 -1
- package/dist-embed/chunks/{diagram-Z3DM3KII-CHxtPQ6F.js → diagram-Z3DM3KII-hE5FTtNp.js} +1 -1
- package/dist-embed/chunks/{ebnfDiagram-PWID7BFC-CfsTBJc5.js → ebnfDiagram-PWID7BFC-DJhj6Mbd.js} +1 -1
- package/dist-embed/chunks/{ebnfDiagram-PWID7BFC-CmJlfM6d.js → ebnfDiagram-PWID7BFC-DZiCEGSK.js} +1 -1
- package/dist-embed/chunks/{edges-b2856ca0-Cl5rq6T8.js → edges-b2856ca0-DuBY_rn3.js} +1 -1
- package/dist-embed/chunks/{el-GR-BZB4AONW-Cs0zPSU1.js → el-GR-BZB4AONW-CFGi_gqP.js} +1 -1
- package/dist-embed/chunks/{erDiagram-5d81789a-C0jmz-br.js → erDiagram-5d81789a-BYOejxuX.js} +1 -1
- package/dist-embed/chunks/{erDiagram-RLTQ6QDP-Dyljy6tN.js → erDiagram-RLTQ6QDP-Bg2UfSBM.js} +1 -1
- package/dist-embed/chunks/{erDiagram-RLTQ6QDP-FFD_URlX.js → erDiagram-RLTQ6QDP-v1tF2vX5.js} +1 -1
- package/dist-embed/chunks/{es-ES-U4NZUMDT-fGOqRf0o.js → es-ES-U4NZUMDT-D_HQumEp.js} +1 -1
- package/dist-embed/chunks/{eu-ES-A7QVB2H4-CLZ09rVe.js → eu-ES-A7QVB2H4-CvUID20p.js} +1 -1
- package/dist-embed/chunks/{fa-IR-HGAKTJCU-Cjimbc8n.js → fa-IR-HGAKTJCU-C7_Vi5QP.js} +1 -1
- package/dist-embed/chunks/{fi-FI-Z5N7JZ37-ZXNEW916.js → fi-FI-Z5N7JZ37-SBYxKS7Q.js} +1 -1
- package/dist-embed/chunks/{flowDb-185abca5-Cden9aoH.js → flowDb-185abca5-C_IywhMB.js} +1 -1
- package/dist-embed/chunks/{flowDiagram-1629c991-Bar9YxSW.js → flowDiagram-1629c991-C8JQo90r.js} +1 -1
- package/dist-embed/chunks/{flowDiagram-HODETNUW-bg09n0_F.js → flowDiagram-HODETNUW-BigtRRvu.js} +1 -1
- package/dist-embed/chunks/{flowDiagram-HODETNUW-02Xo2-6n.js → flowDiagram-HODETNUW-Cd1y1bVx.js} +1 -1
- package/dist-embed/chunks/{flowDiagram-v2-1d953310-C6FnOAb2.js → flowDiagram-v2-1d953310-DTH8N-sj.js} +1 -1
- package/dist-embed/chunks/{flowchart-elk-definition-6df44142-DcmMV2Wi.js → flowchart-elk-definition-6df44142-W8s7oFgJ.js} +1 -1
- package/dist-embed/chunks/{fr-FR-RHASNOE6-DQaq_g67.js → fr-FR-RHASNOE6-fAErz4Nf.js} +1 -1
- package/dist-embed/chunks/{ganttDiagram-3b0b3873-BN61xNrz.js → ganttDiagram-3b0b3873-D_XwfPDh.js} +1 -1
- package/dist-embed/chunks/{ganttDiagram-EL5Y4UJY-BCLyiaOJ.js → ganttDiagram-EL5Y4UJY-BIsU1Bcw.js} +1 -1
- package/dist-embed/chunks/{ganttDiagram-EL5Y4UJY-JviVPOnF.js → ganttDiagram-EL5Y4UJY-VT_s02F9.js} +1 -1
- package/dist-embed/chunks/{gitGraphDiagram-WWUBYQGX-CzBMuAvA.js → gitGraphDiagram-WWUBYQGX-BDdr_2gq.js} +1 -1
- package/dist-embed/chunks/{gitGraphDiagram-WWUBYQGX-CNc3l-2t.js → gitGraphDiagram-WWUBYQGX-BvxzF9hn.js} +1 -1
- package/dist-embed/chunks/{gitGraphDiagram-f01e8bc2-7ecaKDp7.js → gitGraphDiagram-f01e8bc2-UBa5a0HV.js} +1 -1
- package/dist-embed/chunks/{gl-ES-HMX3MZ6V-BlrLF7Sk.js → gl-ES-HMX3MZ6V-DCciQOEM.js} +1 -1
- package/dist-embed/chunks/{he-IL-6SHJWFNN-DLfo2nov.js → he-IL-6SHJWFNN-CuQhQVb2.js} +1 -1
- package/dist-embed/chunks/{hi-IN-IWLTKZ5I-BcbS0I1h.js → hi-IN-IWLTKZ5I-BlH8AK2z.js} +1 -1
- package/dist-embed/chunks/{hu-HU-A5ZG7DT2-B_-3TehM.js → hu-HU-A5ZG7DT2-BaBGhZVQ.js} +1 -1
- package/dist-embed/chunks/{id-ID-SAP4L64H-C920eBs5.js → id-ID-SAP4L64H-Dkm1zS1g.js} +1 -1
- package/dist-embed/chunks/{index-9bae90f3-_mZDJyzh.js → index-9bae90f3-CvHGNDGk.js} +1 -1
- package/dist-embed/chunks/{index-W-qUA31l.js → index-B9aqZrHy.js} +1 -1
- package/dist-embed/chunks/{index-DbHMJ-IM.js → index-BDs-ntTo.js} +1 -1
- package/dist-embed/chunks/{index-D1CRwrf9.js → index-BQp4l7hT.js} +2 -2
- package/dist-embed/chunks/{index-D_-7qr4x.js → index-BcdbHyzT.js} +1 -1
- package/dist-embed/chunks/{index-DmKOrT_f.js → index-BqDJ3hYN.js} +1 -1
- package/dist-embed/chunks/{index-CuqMWXgT.js → index-CFP9psRB.js} +3 -3
- package/dist-embed/chunks/{index-C8N5z7FZ.js → index-CUAnjzKL.js} +1 -1
- package/dist-embed/chunks/{index-k3ISgWrJ.js → index-CWwj0zW9.js} +1 -1
- package/dist-embed/chunks/{index-DV2fNvY7.js → index-CecqH6mN.js} +1 -1
- package/dist-embed/chunks/{index-C3zGthUI.js → index-CoxYszKx.js} +1 -1
- package/dist-embed/chunks/{index-7V4MgoX0.js → index-CozDzMOf.js} +1 -1
- package/dist-embed/chunks/{index-C2UmIEOV.js → index-CrL-deXT.js} +1 -1
- package/dist-embed/chunks/{index-CW0DxnfF.js → index-CtEseCtc.js} +1 -1
- package/dist-embed/chunks/{index-OZDJ7kli.js → index-D2vkNPmG.js} +1 -1
- package/dist-embed/chunks/{index-MNZ1LVAM.js → index-D5xVRNk8.js} +1 -1
- package/dist-embed/chunks/{index-DmYrjwOw.js → index-D8wHLHbt.js} +1 -1
- package/dist-embed/chunks/{index-B0VC_nl2.js → index-DAZUOPnd.js} +1 -1
- package/dist-embed/chunks/{index-BbtA7ppb.js → index-DE_JTiwB.js} +1 -1
- package/dist-embed/chunks/{index-CLojGXLe.js → index-DMll0Yzi.js} +1 -1
- package/dist-embed/chunks/{index-DcbXB4Ou.js → index-DN-cizG6.js} +1 -1
- package/dist-embed/chunks/{index-DMTXHmrU.js → index-DPHM1WLM.js} +1 -1
- package/dist-embed/chunks/{index-Dyv67BU9.js → index-DSN70XMH.js} +2 -2
- package/dist-embed/chunks/{index-CGhVy6OJ.js → index-Dc5AqaeZ.js} +1 -1
- package/dist-embed/chunks/{index-B3qU5V3s.js → index-DdmqZZnv.js} +1 -1
- package/dist-embed/chunks/{index-BST3vALX.js → index-DlYw1KQn.js} +5 -5
- package/dist-embed/chunks/{index-C3p2Hbbg.js → index-Dobs-OKl.js} +1 -1
- package/dist-embed/chunks/{index-oJ3M8HYJ.js → index-Dp3JEvYy.js} +1 -1
- package/dist-embed/chunks/{index-D95mZTII.js → index-DsMBsL3g.js} +1 -1
- package/dist-embed/chunks/{index-BVdp0AG7.js → index-DvyxBamA.js} +4 -4
- package/dist-embed/chunks/{index-BMqDh5WU.js → index-SsFECYMb.js} +1 -1
- package/dist-embed/chunks/{index-DqwL86GY.js → index-YVrQYH-H.js} +12 -12
- package/dist-embed/chunks/{index-DSts8s_N.js → index-a9o1fYab.js} +1 -1
- package/dist-embed/chunks/{index-BVkaRzYN.js → index-bC_5dTbf.js} +4 -4
- package/dist-embed/chunks/{index--rbc1jdS.js → index-jJxXKHoT.js} +1 -1
- package/dist-embed/chunks/{index.esm-Dy7cyZyH.js → index.esm-p0OnSU9h.js} +1 -1
- package/dist-embed/chunks/{index.esm-jFa95d0B.js → index.esm-q_fIJH5v.js} +1 -1
- package/dist-embed/chunks/{infoDiagram-27XIBGKW-CuQ0a02I.js → infoDiagram-27XIBGKW-DIeaDzEK.js} +1 -1
- package/dist-embed/chunks/{infoDiagram-27XIBGKW-CDc0DV-6.js → infoDiagram-27XIBGKW-DZ6Xhv3K.js} +1 -1
- package/dist-embed/chunks/{infoDiagram-a29d40f1-BKWmVk4B.js → infoDiagram-a29d40f1-B9PMyz4X.js} +1 -1
- package/dist-embed/chunks/{isEqual-SWNqZJZT.js → isEqual-Cwjr2skl.js} +1 -1
- package/dist-embed/chunks/{ishikawaDiagram-5VMMS53U-CPu6wHAG.js → ishikawaDiagram-5VMMS53U-BP4Q8nEu.js} +1 -1
- package/dist-embed/chunks/{ishikawaDiagram-5VMMS53U-BY7eKNmA.js → ishikawaDiagram-5VMMS53U-CwrdITPn.js} +1 -1
- package/dist-embed/chunks/{it-IT-JPQ66NNP-CsJELR-H.js → it-IT-JPQ66NNP-BrcctIsI.js} +1 -1
- package/dist-embed/chunks/{ja-JP-DBVTYXUO-Bh4bW0cv.js → ja-JP-DBVTYXUO-CKuJ3Sod.js} +1 -1
- package/dist-embed/chunks/{journeyDiagram-3NMN7TZE-6CRYfcQL.js → journeyDiagram-3NMN7TZE-iJrCUeL0.js} +1 -1
- package/dist-embed/chunks/{journeyDiagram-3NMN7TZE-Cv_KZqY3.js → journeyDiagram-3NMN7TZE-wI34jsXX.js} +1 -1
- package/dist-embed/chunks/{journeyDiagram-95396277-yJruA0Fm.js → journeyDiagram-95396277-B6WhL2Fl.js} +1 -1
- package/dist-embed/chunks/{kaa-6HZHGXH3-BmDtc0g0.js → kaa-6HZHGXH3-ChFYZBwI.js} +1 -1
- package/dist-embed/chunks/{kab-KAB-ZGHBKWFO-Bluox3dD.js → kab-KAB-ZGHBKWFO-C7C7EuVk.js} +1 -1
- package/dist-embed/chunks/{kanban-definition-UXKFOSKX-Biauy1A4.js → kanban-definition-UXKFOSKX-B8AB0LN4.js} +1 -1
- package/dist-embed/chunks/{kanban-definition-UXKFOSKX-Dps45ZlJ.js → kanban-definition-UXKFOSKX-gqU76cK9.js} +1 -1
- package/dist-embed/chunks/{kk-KZ-P5N5QNE5-EZjFhsK8.js → kk-KZ-P5N5QNE5-Bff18CC1.js} +1 -1
- package/dist-embed/chunks/{km-KH-HSX4SM5Z-BpZu76AC.js → km-KH-HSX4SM5Z-DU2YQt8I.js} +1 -1
- package/dist-embed/chunks/{ko-KR-MTYHY66A-C5JZPTHd.js → ko-KR-MTYHY66A-CQruDlRn.js} +1 -1
- package/dist-embed/chunks/{ku-TR-6OUDTVRD-BUaf6TOB.js → ku-TR-6OUDTVRD-DoySMeIi.js} +1 -1
- package/dist-embed/chunks/{layout-C8INuwYa.js → layout-CJFemkl6.js} +1 -1
- package/dist-embed/chunks/{layout-CEbgEIwd.js → layout-DbdaqszO.js} +1 -1
- package/dist-embed/chunks/{lexicalHooks-DFMSPigW.js → lexicalHooks-Pqoe8h_O.js} +1 -1
- package/dist-embed/chunks/{lt-LT-XHIRWOB4-CuGmKRQr.js → lt-LT-XHIRWOB4-72Vmr8iW.js} +1 -1
- package/dist-embed/chunks/{lv-LV-5QDEKY6T-EYERw_NP.js → lv-LV-5QDEKY6T-CxtO97qO.js} +1 -1
- package/dist-embed/chunks/{mermaid.core-BeAq5EQp.js → mermaid.core-CAzPWd8O.js} +3 -3
- package/dist-embed/chunks/{mermaid.core-hzdTpjmh.js → mermaid.core-DaZxhAXO.js} +5 -5
- package/dist-embed/chunks/{mindmap-definition-YA3MSWOX-iB7eW5x9.js → mindmap-definition-YA3MSWOX-D8W0sJ7P.js} +1 -1
- package/dist-embed/chunks/{mindmap-definition-YA3MSWOX--O06aygF.js → mindmap-definition-YA3MSWOX-DPl-uWpT.js} +1 -1
- package/dist-embed/chunks/{mindmap-definition-e4c1d938-DCwgMhNw.js → mindmap-definition-e4c1d938-CGXwlH4A.js} +1 -1
- package/dist-embed/chunks/{mr-IN-CRQNXWMA-SKx4bMeU.js → mr-IN-CRQNXWMA-BNGEl_QE.js} +1 -1
- package/dist-embed/chunks/{my-MM-5M5IBNSE-BG-vgEXz.js → my-MM-5M5IBNSE-4wIAMvGF.js} +1 -1
- package/dist-embed/chunks/{nb-NO-T6EIAALU-BbW-11AI.js → nb-NO-T6EIAALU-z-1s9yX9.js} +1 -1
- package/dist-embed/chunks/{nl-NL-IS3SIHDZ-CSKGpuSJ.js → nl-NL-IS3SIHDZ-CYKGEVB8.js} +1 -1
- package/dist-embed/chunks/{nn-NO-6E72VCQL-P1tnp9TQ.js → nn-NO-6E72VCQL-DwQFIFpO.js} +1 -1
- package/dist-embed/chunks/{oc-FR-POXYY2M6-vpu8tuQT.js → oc-FR-POXYY2M6-mH2n3eM_.js} +1 -1
- package/dist-embed/chunks/{pa-IN-N4M65BXN-CIpdGll2.js → pa-IN-N4M65BXN-DbixE6jQ.js} +1 -1
- package/dist-embed/chunks/{pegDiagram-XKGWAZYB-Bon6jQ3L.js → pegDiagram-XKGWAZYB-D3qs3UBw.js} +1 -1
- package/dist-embed/chunks/{pegDiagram-XKGWAZYB-ZPizxhEX.js → pegDiagram-XKGWAZYB-DJmZupPa.js} +1 -1
- package/dist-embed/chunks/{percentages-BXMCSKIN-hVEpOtFm.js → percentages-BXMCSKIN-5Q9KX_WU.js} +5 -5
- package/dist-embed/chunks/{pieDiagram-E7YTZNPT-C0Pc9GUi.js → pieDiagram-E7YTZNPT-C58cd6s7.js} +1 -1
- package/dist-embed/chunks/{pieDiagram-E7YTZNPT-Di8dEHt9.js → pieDiagram-E7YTZNPT-CrZQ-dOy.js} +1 -1
- package/dist-embed/chunks/{pieDiagram-c941bede-C--hwbRv.js → pieDiagram-c941bede-Dn3GMx6q.js} +1 -1
- package/dist-embed/chunks/{pl-PL-T2D74RX3-Ckyj0Mzv.js → pl-PL-T2D74RX3-jOVonFYe.js} +1 -1
- package/dist-embed/chunks/{pt-BR-5N22H2LF-3jDc9_Aa.js → pt-BR-5N22H2LF-Cx4MrqgK.js} +1 -1
- package/dist-embed/chunks/{pt-PT-UZXXM6DQ-lhLbXf7Q.js → pt-PT-UZXXM6DQ-B2PzNwuF.js} +1 -1
- package/dist-embed/chunks/{quadrantDiagram-AXDQQJYC-D0QYtpIp.js → quadrantDiagram-AXDQQJYC-CJn8hkR8.js} +1 -1
- package/dist-embed/chunks/{quadrantDiagram-AXDQQJYC-Ffo3hgR0.js → quadrantDiagram-AXDQQJYC-haT-kxqE.js} +1 -1
- package/dist-embed/chunks/{quadrantDiagram-cf8b8fe0-Bqmed-0s.js → quadrantDiagram-cf8b8fe0-B3wudq14.js} +1 -1
- package/dist-embed/chunks/{railroadDiagram-O6MQD6OU-BMC9Ldnh.js → railroadDiagram-O6MQD6OU-T23yIHww.js} +1 -1
- package/dist-embed/chunks/{railroadDiagram-O6MQD6OU-aTc7bF4I.js → railroadDiagram-O6MQD6OU-Ty6XXjBy.js} +1 -1
- package/dist-embed/chunks/{renderer-CR6Lxa3d.js → renderer-Au1S-H5k.js} +1 -1
- package/dist-embed/chunks/{requirementDiagram-53bda41b-DExdw0ey.js → requirementDiagram-53bda41b-B-eAYQ6c.js} +1 -1
- package/dist-embed/chunks/{requirementDiagram-BXWQKSXE-DBj1iVv5.js → requirementDiagram-BXWQKSXE-CgkHdmYF.js} +1 -1
- package/dist-embed/chunks/{requirementDiagram-BXWQKSXE-mBFLHcqA.js → requirementDiagram-BXWQKSXE-fpBmgh7Q.js} +1 -1
- package/dist-embed/chunks/{ro-RO-JPDTUUEW-Dy9oeW3b.js → ro-RO-JPDTUUEW-BCQxuLcc.js} +1 -1
- package/dist-embed/chunks/{ru-RU-B4JR7IUQ-CK16-wfD.js → ru-RU-B4JR7IUQ-CqSiHvqj.js} +1 -1
- package/dist-embed/chunks/{sankeyDiagram-P5KCCOFB-9W9X5V7a.js → sankeyDiagram-P5KCCOFB-DEGMK43Q.js} +1 -1
- package/dist-embed/chunks/{sankeyDiagram-P5KCCOFB-DzaadHXz.js → sankeyDiagram-P5KCCOFB-hDbZE81L.js} +1 -1
- package/dist-embed/chunks/{sankeyDiagram-c3ef121a-B6u8wnkU.js → sankeyDiagram-c3ef121a-O14jOeqO.js} +1 -1
- package/dist-embed/chunks/{sequenceDiagram-82a5b84f-Bq8bvLh8.js → sequenceDiagram-82a5b84f-BFFzLElQ.js} +1 -1
- package/dist-embed/chunks/{sequenceDiagram-WJ2MYXX4-BNfJw8_y.js → sequenceDiagram-WJ2MYXX4-MrC4K4SC.js} +1 -1
- package/dist-embed/chunks/{sequenceDiagram-WJ2MYXX4-B76NTf4c.js → sequenceDiagram-WJ2MYXX4-wongMGVN.js} +1 -1
- package/dist-embed/chunks/{sessions-XxjScqnJ.js → sessions-BRALW9Yv.js} +1 -1
- package/dist-embed/chunks/{si-LK-N5RQ5JYF-AJdaUbzl.js → si-LK-N5RQ5JYF-Dbgk5YHt.js} +1 -1
- package/dist-embed/chunks/{sizeCapture-INFHLROL-KZBUxNmb.js → sizeCapture-INFHLROL-CiOiAAo5.js} +1 -1
- package/dist-embed/chunks/{sizeCapture-INFHLROL-DQ5s0TIW.js → sizeCapture-INFHLROL-j4-sCda0.js} +1 -1
- package/dist-embed/chunks/{sk-SK-C5VTKIMK-Bk82hIVU.js → sk-SK-C5VTKIMK-OBAaNvVw.js} +1 -1
- package/dist-embed/chunks/{sl-SI-NN7IZMDC-DSFcvf6W.js → sl-SI-NN7IZMDC-DqLxi4IM.js} +1 -1
- package/dist-embed/chunks/{stateDiagram-43e79a5f-BiTTNI1Z.js → stateDiagram-43e79a5f-BZm5gFdu.js} +1 -1
- package/dist-embed/chunks/{stateDiagram-D77RDMKH-lndPMO3D.js → stateDiagram-D77RDMKH-D7_xyy8n.js} +1 -1
- package/dist-embed/chunks/{stateDiagram-D77RDMKH-D4hQpdZ2.js → stateDiagram-D77RDMKH-DXrbH1aM.js} +1 -1
- package/dist-embed/chunks/{stateDiagram-v2-2041ed4f-BbFiQEfG.js → stateDiagram-v2-2041ed4f-DiXOgJsK.js} +1 -1
- package/dist-embed/chunks/{stateDiagram-v2-MP3YSRHH-pqcRT12A.js → stateDiagram-v2-MP3YSRHH-DLsY6ysL.js} +1 -1
- package/dist-embed/chunks/{stateDiagram-v2-MP3YSRHH-C-kIBdBJ.js → stateDiagram-v2-MP3YSRHH-ngWpJn6k.js} +1 -1
- package/dist-embed/chunks/{styles-455b33cd-U9lx7mAf.js → styles-455b33cd-CrHizSU7.js} +1 -1
- package/dist-embed/chunks/{styles-f932cba9-S-lYZYdK.js → styles-f932cba9-YuCN7fSa.js} +1 -1
- package/dist-embed/chunks/{styles-fcc2142b-DfudfB3j.js → styles-fcc2142b-tjrOPOh4.js} +1 -1
- package/dist-embed/chunks/{subset-shared.chunk-f2gmZjeG.js → subset-shared.chunk-Du2agLgk.js} +1 -1
- package/dist-embed/chunks/{subset-worker.chunk-De1CPIQ6.js → subset-worker.chunk-BXR8pgHc.js} +1 -1
- package/dist-embed/chunks/{sv-SE-XGPEYMSR-BbGfLHIi.js → sv-SE-XGPEYMSR-BbgHKxhC.js} +1 -1
- package/dist-embed/chunks/{svgDrawCommon-148a3cd9-ClgHG0vb.js → svgDrawCommon-148a3cd9-DTqtvo5_.js} +1 -1
- package/dist-embed/chunks/{swimlanes-42K2YHIH-OqZ4t-07.js → swimlanes-42K2YHIH-B289Mbni.js} +1 -1
- package/dist-embed/chunks/{swimlanes-42K2YHIH-CjV1bdPk.js → swimlanes-42K2YHIH-B3H_wpMu.js} +1 -1
- package/dist-embed/chunks/{swimlanesDiagram-VR7AAH4N-9twpvQtj.js → swimlanesDiagram-VR7AAH4N-D0ZHzw-_.js} +1 -1
- package/dist-embed/chunks/{swimlanesDiagram-VR7AAH4N-BdS4NGOx.js → swimlanesDiagram-VR7AAH4N-qWg-2xN_.js} +1 -1
- package/dist-embed/chunks/{ta-IN-2NMHFXQM-BWMJgnI2.js → ta-IN-2NMHFXQM-0pH7gQyu.js} +1 -1
- package/dist-embed/chunks/{th-TH-HPSO5L25-DiP_CZXl.js → th-TH-HPSO5L25-Dvbu09CU.js} +1 -1
- package/dist-embed/chunks/{timeline-definition-24CTP7MA-B7uSaXDu.js → timeline-definition-24CTP7MA-DUc18SdK.js} +1 -1
- package/dist-embed/chunks/{timeline-definition-24CTP7MA-Cs4Bwobu.js → timeline-definition-24CTP7MA-DpMq7g2g.js} +1 -1
- package/dist-embed/chunks/{timeline-definition-7545f45a-CHrBluu1.js → timeline-definition-7545f45a--4ypi4BE.js} +1 -1
- package/dist-embed/chunks/{tr-TR-DEFEU3FU-CKMBvOkr.js → tr-TR-DEFEU3FU-B6YS3iEB.js} +1 -1
- package/dist-embed/chunks/{uk-UA-QMV73CPH-CQL0E0jU.js → uk-UA-QMV73CPH-DMG9vIVp.js} +1 -1
- package/dist-embed/chunks/{vennDiagram-4TSXK5OY-uwWpr4uC.js → vennDiagram-4TSXK5OY-CS12EGJw.js} +1 -1
- package/dist-embed/chunks/{vennDiagram-4TSXK5OY-CHSyRZN_.js → vennDiagram-4TSXK5OY-CvEXE1xX.js} +1 -1
- package/dist-embed/chunks/{vi-VN-M7AON7JQ-BpvEBNJo.js → vi-VN-M7AON7JQ-DB3ZrpeP.js} +1 -1
- package/dist-embed/chunks/{wardleyDiagram-VM6X3IG4-0UuvD-IO.js → wardleyDiagram-VM6X3IG4-8LfGni9_.js} +1 -1
- package/dist-embed/chunks/{wardleyDiagram-VM6X3IG4-zIfOyYBf.js → wardleyDiagram-VM6X3IG4-Bj02LzjH.js} +1 -1
- package/dist-embed/chunks/{xychartDiagram-3f383b91-ChbRPzo8.js → xychartDiagram-3f383b91-CE_OY5QR.js} +1 -1
- package/dist-embed/chunks/{xychartDiagram-S5SC5T6Z-hCGgyjir.js → xychartDiagram-S5SC5T6Z-BdZi5x4a.js} +1 -1
- package/dist-embed/chunks/{xychartDiagram-S5SC5T6Z-q9gcUSF1.js → xychartDiagram-S5SC5T6Z-DXqC0l3r.js} +1 -1
- package/dist-embed/chunks/{zh-CN-LNUGB5OW-DWmzAIjK.js → zh-CN-LNUGB5OW-VV-lg83H.js} +1 -1
- package/dist-embed/chunks/{zh-HK-E62DVLB3-CQ-xPzHX.js → zh-HK-E62DVLB3-DLoyC6Q9.js} +1 -1
- package/dist-embed/chunks/{zh-TW-RAJ6MFWO-DvlSTykD.js → zh-TW-RAJ6MFWO-DhFllgOW.js} +1 -1
- package/dist-embed/datalayer-app-main.js +54 -54
- package/lib/apps/apps/records.d.ts +0 -29
- package/lib/apps/apps/records.js +11 -34
- package/lib/apps/apps/threads.d.ts +2 -21
- package/lib/apps/apps/threads.js +0 -75
- package/lib/apps/embed/embedSession.d.ts +0 -8
- package/lib/apps/embed/embedSession.js +1 -38
- package/lib/apps/embed/visitorApp.d.ts +23 -4
- package/lib/apps/embed/visitorApp.js +43 -5
- package/lib/apps/plugins/chat/ChatView.js +15 -3
- package/lib/chat/ChatFloating.js +4 -1
- package/lib/chat/base/ChatBase.js +12 -4
- package/lib/chat/base/fullContextMessages.js +1 -1
- package/lib/chat/prompt/InputPrompt.d.ts +6 -1
- package/lib/chat/prompt/InputPrompt.js +12 -2
- package/lib/hooks/useAgUi.js +1 -1
- package/lib/hooks/useToolApprovals.d.ts +1 -1
- package/lib/hooks/useToolApprovals.js +1 -1
- package/lib/{protocols → portable}/agUiRefusal.d.ts +1 -1
- package/lib/{protocols → portable}/agUiRefusal.js +1 -1
- package/lib/portable/agui.d.ts +72 -0
- package/lib/portable/agui.js +174 -0
- package/lib/portable/conversation.d.ts +124 -0
- package/lib/portable/conversation.js +357 -0
- package/lib/portable/index.d.ts +11 -6
- package/lib/portable/index.js +14 -11
- package/lib/portable/records.d.ts +27 -0
- package/lib/portable/records.js +46 -0
- package/lib/portable/sessions.d.ts +92 -0
- package/lib/portable/sessions.js +134 -0
- package/lib/portable/thread.d.ts +41 -0
- package/lib/portable/thread.js +102 -0
- package/lib/protocols/AGUIAdapter.d.ts +0 -2
- package/lib/protocols/AGUIAdapter.js +39 -74
- package/lib/voice/ComposerVoice.d.ts +15 -2
- package/lib/voice/ComposerVoice.js +23 -17
- package/lib/voice/VoiceMenu.d.ts +27 -0
- package/lib/voice/VoiceMenu.js +32 -0
- package/lib/voice/chatVoice.js +2 -2
- package/lib/voice/choices.d.ts +33 -0
- package/lib/voice/choices.js +70 -0
- package/lib/voice/index.d.ts +4 -0
- package/lib/voice/index.js +3 -0
- package/lib/voice/settings.d.ts +17 -1
- package/lib/voice/settings.js +64 -1
- package/lib/voice/useVoiceSettings.d.ts +6 -0
- package/lib/voice/useVoiceSettings.js +25 -0
- package/package.json +1 -1
- package/dist-embed/chunks/ChatView-C2La9033.js +0 -32
- /package/lib/{utils → portable}/approvals.d.ts +0 -0
- /package/lib/{utils → portable}/approvals.js +0 -0
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* Pure, so the hook, the adapter and the tests read a refusal the same way
|
|
17
17
|
* (the repo's jest/vitest rule: rules live outside components).
|
|
18
18
|
*
|
|
19
|
-
* @module
|
|
19
|
+
* @module portable/agUiRefusal
|
|
20
20
|
*/
|
|
21
21
|
/** What the page says when an agent's AG-UI address answers nothing. */
|
|
22
22
|
export declare const AG_UI_NOT_ON_RUNTIME: string;
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
* Pure, so the hook, the adapter and the tests read a refusal the same way
|
|
21
21
|
* (the repo's jest/vitest rule: rules live outside components).
|
|
22
22
|
*
|
|
23
|
-
* @module
|
|
23
|
+
* @module portable/agUiRefusal
|
|
24
24
|
*/
|
|
25
25
|
/** What the page says when an agent's AG-UI address answers nothing. */
|
|
26
26
|
export const AG_UI_NOT_ON_RUNTIME = 'This agent is not on the runtime the page is addressing: its AG-UI address answered nothing. ' +
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* An AG-UI run stream as any JavaScript runtime reads it: the
|
|
3
|
+
* `text/event-stream` frames a run answers, read into AG-UI events, and how a
|
|
4
|
+
* run is known to have ended. The web chat's `AGUIAdapter` and Datalayer
|
|
5
|
+
* Mobile read a stream with these, so that a stream is read one way.
|
|
6
|
+
*
|
|
7
|
+
* No React, DOM, Node or Reactor module: a phone passes a `fetch` whose
|
|
8
|
+
* response body streams (Expo's `expo/fetch`).
|
|
9
|
+
*
|
|
10
|
+
* @module portable/agui
|
|
11
|
+
*/
|
|
12
|
+
/** One AG-UI event, as a run stream carries it (`type` first, its fields beside it). */
|
|
13
|
+
export type AgUiEvent = {
|
|
14
|
+
type: string;
|
|
15
|
+
[field: string]: unknown;
|
|
16
|
+
};
|
|
17
|
+
/** What the page says when a run's stream closes before the run said how it ended. */
|
|
18
|
+
export declare const RUN_CUT_SHORT = "The run stopped before it finished, without an answer or an error: send it again.";
|
|
19
|
+
/**
|
|
20
|
+
* The name of `reactor.ui` (Reactor's `AGUI_NAME`): its ops come over the
|
|
21
|
+
* conversation's ui socket, never a run stream (REACTOR_UI RU-W). Held here
|
|
22
|
+
* so that a reader of a run needs no Reactor module; a test holds it to
|
|
23
|
+
* Reactor's.
|
|
24
|
+
*/
|
|
25
|
+
export declare const REACTOR_UI_NAME = "reactor.ui";
|
|
26
|
+
/** What the page says when a `reactor.ui` op comes on a run stream. */
|
|
27
|
+
export declare const UI_ON_RUN = "A reactor.ui op came on the run stream: it comes over the ui socket (REACTOR_UI RU-W).";
|
|
28
|
+
/** What is said when the `fetch` given cannot read a response as it streams. */
|
|
29
|
+
export declare const NOT_STREAMING = "This fetch does not stream a response: give one whose response body has getReader (expo/fetch on a phone).";
|
|
30
|
+
/** Whether an event ends a run: the run said how it ended. */
|
|
31
|
+
export declare const endsRun: (event: AgUiEvent) => boolean;
|
|
32
|
+
/**
|
|
33
|
+
* The `text/event-stream` of a run, read as it arrives: text in, one AG-UI
|
|
34
|
+
* event out per frame. A frame is its `data:` lines up to a blank line; a
|
|
35
|
+
* frame whose data is not JSON is handed to `malformed`, never guessed at.
|
|
36
|
+
*/
|
|
37
|
+
export declare class AgUiFrames {
|
|
38
|
+
private readonly malformed;
|
|
39
|
+
private buffer;
|
|
40
|
+
private data;
|
|
41
|
+
constructor(malformed?: (data: string) => void);
|
|
42
|
+
/** The events the text completes. */
|
|
43
|
+
push(text: string): AgUiEvent[];
|
|
44
|
+
/** The events left when the stream closes: a last frame without its blank line. */
|
|
45
|
+
end(): AgUiEvent[];
|
|
46
|
+
private line;
|
|
47
|
+
private dispatch;
|
|
48
|
+
}
|
|
49
|
+
/** Every event a complete stream's text holds: a stream already read whole. */
|
|
50
|
+
export declare function eventsOfStream(text: string): AgUiEvent[];
|
|
51
|
+
/**
|
|
52
|
+
* Read a run's stream to its end, each event handed to `onEvent` as it
|
|
53
|
+
* arrives. Throws `RUN_CUT_SHORT` when the stream closes before the run said
|
|
54
|
+
* how it ended, and `NOT_STREAMING` for a response that cannot be read as it
|
|
55
|
+
* streams. An abort ends the reading with the caller's `AbortError`.
|
|
56
|
+
*/
|
|
57
|
+
export declare function readRunStream(response: {
|
|
58
|
+
body?: unknown;
|
|
59
|
+
}, onEvent: (event: AgUiEvent) => void, malformed?: (data: string) => void): Promise<void>;
|
|
60
|
+
/** A tool's result as a run says it (`TOOL_CALL_RESULT`): what it gave, and whether it failed. */
|
|
61
|
+
export type ToolResultSaid = {
|
|
62
|
+
/** The result: its JSON read when it is JSON, else its text. */
|
|
63
|
+
result: unknown;
|
|
64
|
+
success: boolean;
|
|
65
|
+
error?: string;
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* A tool result's content, read as the chat reads it: JSON when it is JSON,
|
|
69
|
+
* and failed when the execution result says so (`execution_ok: false`, a
|
|
70
|
+
* `code_error`, or an `error` without `success`).
|
|
71
|
+
*/
|
|
72
|
+
export declare function toolResultOf(content: unknown): ToolResultSaid;
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
/** What the page says when a run's stream closes before the run said how it ended. */
|
|
6
|
+
export const RUN_CUT_SHORT = 'The run stopped before it finished, without an answer or an error: send it again.';
|
|
7
|
+
/**
|
|
8
|
+
* The name of `reactor.ui` (Reactor's `AGUI_NAME`): its ops come over the
|
|
9
|
+
* conversation's ui socket, never a run stream (REACTOR_UI RU-W). Held here
|
|
10
|
+
* so that a reader of a run needs no Reactor module; a test holds it to
|
|
11
|
+
* Reactor's.
|
|
12
|
+
*/
|
|
13
|
+
export const REACTOR_UI_NAME = 'reactor.ui';
|
|
14
|
+
/** What the page says when a `reactor.ui` op comes on a run stream. */
|
|
15
|
+
export const UI_ON_RUN = 'A reactor.ui op came on the run stream: it comes over the ui socket (REACTOR_UI RU-W).';
|
|
16
|
+
/** What is said when the `fetch` given cannot read a response as it streams. */
|
|
17
|
+
export const NOT_STREAMING = 'This fetch does not stream a response: give one whose response body has getReader (expo/fetch on a phone).';
|
|
18
|
+
/** Whether an event ends a run: the run said how it ended. */
|
|
19
|
+
export const endsRun = (event) => event.type === 'RUN_FINISHED' || event.type === 'RUN_ERROR';
|
|
20
|
+
/**
|
|
21
|
+
* The `text/event-stream` of a run, read as it arrives: text in, one AG-UI
|
|
22
|
+
* event out per frame. A frame is its `data:` lines up to a blank line; a
|
|
23
|
+
* frame whose data is not JSON is handed to `malformed`, never guessed at.
|
|
24
|
+
*/
|
|
25
|
+
export class AgUiFrames {
|
|
26
|
+
malformed;
|
|
27
|
+
buffer = '';
|
|
28
|
+
data = [];
|
|
29
|
+
constructor(malformed = () => { }) {
|
|
30
|
+
this.malformed = malformed;
|
|
31
|
+
}
|
|
32
|
+
/** The events the text completes. */
|
|
33
|
+
push(text) {
|
|
34
|
+
this.buffer += text;
|
|
35
|
+
const lines = this.buffer.split(/\r?\n/);
|
|
36
|
+
this.buffer = lines.pop() ?? '';
|
|
37
|
+
const events = [];
|
|
38
|
+
for (const line of lines) {
|
|
39
|
+
this.line(line, events);
|
|
40
|
+
}
|
|
41
|
+
return events;
|
|
42
|
+
}
|
|
43
|
+
/** The events left when the stream closes: a last frame without its blank line. */
|
|
44
|
+
end() {
|
|
45
|
+
const events = [];
|
|
46
|
+
if (this.buffer) {
|
|
47
|
+
this.line(this.buffer, events);
|
|
48
|
+
this.buffer = '';
|
|
49
|
+
}
|
|
50
|
+
this.dispatch(events);
|
|
51
|
+
return events;
|
|
52
|
+
}
|
|
53
|
+
line(line, events) {
|
|
54
|
+
if (line === '') {
|
|
55
|
+
this.dispatch(events);
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
if (line.startsWith('data:')) {
|
|
59
|
+
const value = line.slice('data:'.length);
|
|
60
|
+
this.data.push(value.startsWith(' ') ? value.slice(1) : value);
|
|
61
|
+
}
|
|
62
|
+
// `event:`, `id:`, `retry:` and comments name nothing AG-UI reads.
|
|
63
|
+
}
|
|
64
|
+
dispatch(events) {
|
|
65
|
+
if (!this.data.length) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
const data = this.data.join('\n');
|
|
69
|
+
this.data = [];
|
|
70
|
+
let parsed;
|
|
71
|
+
try {
|
|
72
|
+
parsed = JSON.parse(data);
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
this.malformed(data);
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
if (parsed &&
|
|
79
|
+
typeof parsed === 'object' &&
|
|
80
|
+
typeof parsed.type === 'string') {
|
|
81
|
+
events.push(parsed);
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
this.malformed(data);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/** Every event a complete stream's text holds: a stream already read whole. */
|
|
89
|
+
export function eventsOfStream(text) {
|
|
90
|
+
const frames = new AgUiFrames();
|
|
91
|
+
return [...frames.push(text), ...frames.end()];
|
|
92
|
+
}
|
|
93
|
+
/** A text decoder that keeps a character split between two chunks whole. */
|
|
94
|
+
function decoderOf() {
|
|
95
|
+
if (typeof TextDecoder === 'undefined') {
|
|
96
|
+
throw new Error('This JavaScript runtime has no TextDecoder to read a run stream with.');
|
|
97
|
+
}
|
|
98
|
+
const decoder = new TextDecoder();
|
|
99
|
+
return chunk => typeof chunk === 'string' ? chunk : decoder.decode(chunk, { stream: true });
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Read a run's stream to its end, each event handed to `onEvent` as it
|
|
103
|
+
* arrives. Throws `RUN_CUT_SHORT` when the stream closes before the run said
|
|
104
|
+
* how it ended, and `NOT_STREAMING` for a response that cannot be read as it
|
|
105
|
+
* streams. An abort ends the reading with the caller's `AbortError`.
|
|
106
|
+
*/
|
|
107
|
+
export async function readRunStream(response, onEvent, malformed) {
|
|
108
|
+
const body = response.body;
|
|
109
|
+
if (!body || typeof body.getReader !== 'function') {
|
|
110
|
+
throw new Error(NOT_STREAMING);
|
|
111
|
+
}
|
|
112
|
+
const reader = body.getReader();
|
|
113
|
+
const decode = decoderOf();
|
|
114
|
+
const frames = new AgUiFrames(malformed);
|
|
115
|
+
let ended = false;
|
|
116
|
+
const handle = (events) => {
|
|
117
|
+
for (const event of events) {
|
|
118
|
+
if (endsRun(event)) {
|
|
119
|
+
ended = true;
|
|
120
|
+
}
|
|
121
|
+
onEvent(event);
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
try {
|
|
125
|
+
for (;;) {
|
|
126
|
+
const { done, value } = await reader.read();
|
|
127
|
+
if (done) {
|
|
128
|
+
break;
|
|
129
|
+
}
|
|
130
|
+
if (value !== undefined) {
|
|
131
|
+
handle(frames.push(decode(value)));
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
handle(frames.end());
|
|
135
|
+
}
|
|
136
|
+
finally {
|
|
137
|
+
reader.releaseLock();
|
|
138
|
+
}
|
|
139
|
+
if (!ended) {
|
|
140
|
+
throw new Error(RUN_CUT_SHORT);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* A tool result's content, read as the chat reads it: JSON when it is JSON,
|
|
145
|
+
* and failed when the execution result says so (`execution_ok: false`, a
|
|
146
|
+
* `code_error`, or an `error` without `success`).
|
|
147
|
+
*/
|
|
148
|
+
export function toolResultOf(content) {
|
|
149
|
+
let result = content;
|
|
150
|
+
if (typeof result === 'string') {
|
|
151
|
+
try {
|
|
152
|
+
result = JSON.parse(result);
|
|
153
|
+
}
|
|
154
|
+
catch {
|
|
155
|
+
// Words, kept as they are.
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
const said = result && typeof result === 'object'
|
|
159
|
+
? result
|
|
160
|
+
: undefined;
|
|
161
|
+
const failed = said?.execution_ok === false ||
|
|
162
|
+
said?.code_error != null ||
|
|
163
|
+
(said?.error != null && !said?.success);
|
|
164
|
+
if (!failed) {
|
|
165
|
+
return { result, success: true };
|
|
166
|
+
}
|
|
167
|
+
const codeError = said?.code_error;
|
|
168
|
+
const error = (typeof said?.execution_error === 'string' && said.execution_error) ||
|
|
169
|
+
(typeof said?.error === 'string' && said.error) ||
|
|
170
|
+
(codeError
|
|
171
|
+
? `${codeError.name || 'Error'}: ${codeError.value || ''}`
|
|
172
|
+
: undefined);
|
|
173
|
+
return { result, success: false, error };
|
|
174
|
+
}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A conversation as a run stream builds it, for a client that draws it
|
|
3
|
+
* natively (Datalayer Mobile): one pure reducer over the AG-UI events of an
|
|
4
|
+
* application's session or an agent's run, and the person's own actions.
|
|
5
|
+
*
|
|
6
|
+
* It reads the stream as the web chat reads it — `TEXT_MESSAGE_*` into one
|
|
7
|
+
* message streamed in place, `TOOL_CALL_*` into a collapsed row whose result
|
|
8
|
+
* is read by `toolResultOf`, `STEP_*` into a step row, a `MESSAGES_SNAPSHOT`
|
|
9
|
+
* through `messagesOfThread`, a `reactor.ui` op on the run refused — and adds
|
|
10
|
+
* what a session says besides: `loop.session`, the question its application
|
|
11
|
+
* asks (`RUN_FINISHED` with `result.asking`, LOOP `loop.ask`), and a turn
|
|
12
|
+
* that ended without words said by how it ended (`answered`, `stopped`,
|
|
13
|
+
* `gone`).
|
|
14
|
+
*
|
|
15
|
+
* Bounded: a long tool run cannot grow it without end. Each tool's arguments
|
|
16
|
+
* and result keep their first `TOOL_TEXT_LIMIT` characters, an answer its
|
|
17
|
+
* first `MESSAGE_TEXT_LIMIT`, the conversation its last `ITEM_LIMIT` rows
|
|
18
|
+
* (`dropped` counts the rest), and an event it does not draw is kept only as
|
|
19
|
+
* its type and name, the last `DIAGNOSTIC_LIMIT` of them — never its payload.
|
|
20
|
+
*
|
|
21
|
+
* @module portable/conversation
|
|
22
|
+
*/
|
|
23
|
+
import { type AgUiEvent } from './agui';
|
|
24
|
+
/** How many rows a conversation keeps: its newest. */
|
|
25
|
+
export declare const ITEM_LIMIT = 400;
|
|
26
|
+
/** How many characters of an answer are kept. */
|
|
27
|
+
export declare const MESSAGE_TEXT_LIMIT = 100000;
|
|
28
|
+
/** How many characters of a tool's arguments, and of its result, are kept. */
|
|
29
|
+
export declare const TOOL_TEXT_LIMIT = 4000;
|
|
30
|
+
/** How many events it does not draw are kept, by type and name. */
|
|
31
|
+
export declare const DIAGNOSTIC_LIMIT = 50;
|
|
32
|
+
/** What is said after a text cut at its limit. */
|
|
33
|
+
export declare const CUT_MARK = "\u2026 (cut: too long to keep on this device)";
|
|
34
|
+
/** How a turn ended without words of its own: `RUN_END_WORDS`'s. */
|
|
35
|
+
export type TurnEnd = 'answered' | 'stopped' | 'gone';
|
|
36
|
+
/** One row of a conversation. */
|
|
37
|
+
export type ConversationItem = {
|
|
38
|
+
kind: 'message';
|
|
39
|
+
id: string;
|
|
40
|
+
role: 'user' | 'assistant';
|
|
41
|
+
text: string;
|
|
42
|
+
/** Its words are still arriving. */
|
|
43
|
+
streaming: boolean;
|
|
44
|
+
} | {
|
|
45
|
+
kind: 'tool';
|
|
46
|
+
id: string;
|
|
47
|
+
name: string;
|
|
48
|
+
/** Its arguments as they streamed: JSON, cut at its limit. */
|
|
49
|
+
args: string;
|
|
50
|
+
status: 'running' | 'complete' | 'error';
|
|
51
|
+
/** Its result in words, cut at its limit. */
|
|
52
|
+
result: string;
|
|
53
|
+
error: string;
|
|
54
|
+
} | {
|
|
55
|
+
kind: 'step';
|
|
56
|
+
id: string;
|
|
57
|
+
name: string;
|
|
58
|
+
status: 'running' | 'complete';
|
|
59
|
+
} | {
|
|
60
|
+
kind: 'end';
|
|
61
|
+
id: string;
|
|
62
|
+
end: TurnEnd;
|
|
63
|
+
words: string;
|
|
64
|
+
} | {
|
|
65
|
+
kind: 'error';
|
|
66
|
+
id: string;
|
|
67
|
+
text: string;
|
|
68
|
+
};
|
|
69
|
+
/** What an application asks the person (`loop.ask`): its kind and what answers it. */
|
|
70
|
+
export type ConversationQuestion = {
|
|
71
|
+
kind: 'text' | 'choice' | 'form' | 'file';
|
|
72
|
+
prompt: string;
|
|
73
|
+
/** A choice's options. */
|
|
74
|
+
options: string[];
|
|
75
|
+
/** A form's JSON Schema. */
|
|
76
|
+
schema: Record<string, unknown> | null;
|
|
77
|
+
/** A file's kinds. */
|
|
78
|
+
accept: string[];
|
|
79
|
+
};
|
|
80
|
+
/** A conversation, as the stream and the person built it. */
|
|
81
|
+
export type ConversationState = {
|
|
82
|
+
items: ConversationItem[];
|
|
83
|
+
/** A turn is streaming. */
|
|
84
|
+
running: boolean;
|
|
85
|
+
/** The session as `loop.session` said it last, or `null` (an agent's run). */
|
|
86
|
+
session: Record<string, unknown> | null;
|
|
87
|
+
/** What the application waits for an answer to, or `null`. */
|
|
88
|
+
asking: ConversationQuestion | null;
|
|
89
|
+
/** How many of its oldest rows were not kept. */
|
|
90
|
+
dropped: number;
|
|
91
|
+
/** The events it does not draw, by type and name only. */
|
|
92
|
+
diagnostics: {
|
|
93
|
+
type: string;
|
|
94
|
+
name: string;
|
|
95
|
+
}[];
|
|
96
|
+
/** How many rows the turn streaming added: whether it said anything. */
|
|
97
|
+
turnRows: number;
|
|
98
|
+
};
|
|
99
|
+
/** A conversation with nothing in it yet. */
|
|
100
|
+
export declare const emptyConversation: () => ConversationState;
|
|
101
|
+
/** The question an application asks, as `RUN_FINISHED`'s `result.asking` or a session says it. */
|
|
102
|
+
export declare function questionOf(raw: unknown): ConversationQuestion | null;
|
|
103
|
+
/** The person's prompt, added before it is sent: its own row. */
|
|
104
|
+
export declare function withPrompt(state: ConversationState, id: string, words: string): ConversationState;
|
|
105
|
+
/**
|
|
106
|
+
* The turn ended without the stream saying so: the person stopped it
|
|
107
|
+
* (`stopped`), or its client went before the answer (`gone`). What streamed
|
|
108
|
+
* stops streaming; a turn that said nothing is said by how it ended.
|
|
109
|
+
*/
|
|
110
|
+
export declare function withTurnEnded(state: ConversationState, end: Exclude<TurnEnd, 'answered'>): ConversationState;
|
|
111
|
+
/** A failure said in the conversation (a refusal, a stream cut short): the turn stops with it. */
|
|
112
|
+
export declare function withError(state: ConversationState, words: string): ConversationState;
|
|
113
|
+
/** A conversation with one more event of its stream. */
|
|
114
|
+
export declare function reduceConversation(state: ConversationState, event: AgUiEvent): ConversationState;
|
|
115
|
+
/** The question in words with what answers it, for a screen reader or a row. */
|
|
116
|
+
export declare function questionWords(question: ConversationQuestion): string;
|
|
117
|
+
/** The fields a form question asks, in order, with their titles: what a native form draws. */
|
|
118
|
+
export declare function formFieldsOf(schema: Record<string, unknown> | null): {
|
|
119
|
+
name: string;
|
|
120
|
+
title: string;
|
|
121
|
+
type: string;
|
|
122
|
+
options: string[];
|
|
123
|
+
required: boolean;
|
|
124
|
+
}[];
|