@dxos/plugin-script 0.8.4-main.2e9d522 → 0.8.4-main.548089c

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 (306) hide show
  1. package/dist/lib/browser/DeploymentDialog-MZX4T77L.mjs +14 -0
  2. package/dist/lib/browser/NotebookContainer-S6GUYCUE.mjs +817 -0
  3. package/dist/lib/browser/NotebookContainer-S6GUYCUE.mjs.map +7 -0
  4. package/dist/lib/browser/ScriptContainer-3JQSTDFZ.mjs +147 -0
  5. package/dist/lib/browser/ScriptContainer-3JQSTDFZ.mjs.map +7 -0
  6. package/dist/lib/browser/{app-graph-builder-HLQ7K3BT.mjs → app-graph-builder-2WR2ATTJ.mjs} +12 -10
  7. package/dist/lib/browser/app-graph-builder-2WR2ATTJ.mjs.map +7 -0
  8. package/dist/lib/browser/blueprint-definition-6PZWZM2Y.mjs +30 -0
  9. package/dist/lib/browser/blueprint-definition-6PZWZM2Y.mjs.map +7 -0
  10. package/dist/lib/browser/chunk-2G2NA6DQ.mjs +88 -0
  11. package/dist/lib/browser/chunk-2G2NA6DQ.mjs.map +7 -0
  12. package/dist/lib/browser/{chunk-P4HQKUCP.mjs → chunk-3IJASGG5.mjs} +23 -21
  13. package/dist/lib/browser/chunk-3IJASGG5.mjs.map +7 -0
  14. package/dist/lib/browser/chunk-5JSNQYZZ.mjs +517 -0
  15. package/dist/lib/browser/chunk-5JSNQYZZ.mjs.map +7 -0
  16. package/dist/lib/browser/{chunk-QYAREHGH.mjs → chunk-EB6AXFXO.mjs} +8 -5
  17. package/dist/lib/browser/chunk-EB6AXFXO.mjs.map +7 -0
  18. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  19. package/dist/lib/browser/{chunk-FIM2MVNJ.mjs → chunk-JRF6FHYQ.mjs} +179 -88
  20. package/dist/lib/browser/chunk-JRF6FHYQ.mjs.map +7 -0
  21. package/dist/lib/browser/chunk-LNNCD2H4.mjs +102 -0
  22. package/dist/lib/browser/chunk-LNNCD2H4.mjs.map +7 -0
  23. package/dist/lib/browser/chunk-M6KJPUJK.mjs +111 -0
  24. package/dist/lib/browser/chunk-M6KJPUJK.mjs.map +7 -0
  25. package/dist/lib/browser/chunk-RXLF2X2R.mjs +304 -0
  26. package/dist/lib/browser/chunk-RXLF2X2R.mjs.map +7 -0
  27. package/dist/lib/browser/{chunk-5TVBECWH.mjs → chunk-UOQ6NCH3.mjs} +2 -2
  28. package/dist/lib/browser/{compiler-CXCUA4UQ.mjs → compiler-4KHRSX7J.mjs} +10 -6
  29. package/dist/lib/browser/compiler-4KHRSX7J.mjs.map +7 -0
  30. package/dist/lib/browser/index.mjs +108 -44
  31. package/dist/lib/browser/index.mjs.map +3 -3
  32. package/dist/lib/browser/{intent-resolver-7B77IG3N.mjs → intent-resolver-PUMSYKVB.mjs} +39 -26
  33. package/dist/lib/browser/intent-resolver-PUMSYKVB.mjs.map +7 -0
  34. package/dist/lib/browser/meta.json +1 -1
  35. package/dist/lib/browser/{react-surface-FYYXZA7C.mjs → react-surface-DLRMWFTN.mjs} +45 -21
  36. package/dist/lib/browser/react-surface-DLRMWFTN.mjs.map +7 -0
  37. package/dist/lib/browser/{settings-KCTBK5TY.mjs → settings-LNLSTZM4.mjs} +10 -8
  38. package/dist/lib/browser/settings-LNLSTZM4.mjs.map +7 -0
  39. package/dist/lib/browser/templates/index.mjs +2 -1
  40. package/dist/lib/browser/types/index.mjs +8 -4
  41. package/dist/lib/node-esm/DeploymentDialog-GL5AUWMR.mjs +15 -0
  42. package/dist/lib/node-esm/DeploymentDialog-GL5AUWMR.mjs.map +7 -0
  43. package/dist/lib/node-esm/NotebookContainer-RTUHQN25.mjs +818 -0
  44. package/dist/lib/node-esm/NotebookContainer-RTUHQN25.mjs.map +7 -0
  45. package/dist/lib/node-esm/ScriptContainer-SSLISMLS.mjs +148 -0
  46. package/dist/lib/node-esm/ScriptContainer-SSLISMLS.mjs.map +7 -0
  47. package/dist/lib/node-esm/{app-graph-builder-7EYIHWH4.mjs → app-graph-builder-NCVLUL5R.mjs} +12 -10
  48. package/dist/lib/node-esm/app-graph-builder-NCVLUL5R.mjs.map +7 -0
  49. package/dist/lib/node-esm/blueprint-definition-5R6YCSZZ.mjs +31 -0
  50. package/dist/lib/node-esm/blueprint-definition-5R6YCSZZ.mjs.map +7 -0
  51. package/dist/lib/node-esm/{chunk-35M3CHYE.mjs → chunk-55JZVM6K.mjs} +2 -2
  52. package/dist/lib/node-esm/chunk-57JA6XL5.mjs +90 -0
  53. package/dist/lib/node-esm/chunk-57JA6XL5.mjs.map +7 -0
  54. package/dist/lib/node-esm/{chunk-7NMI4CEU.mjs → chunk-ASPYIAYG.mjs} +179 -88
  55. package/dist/lib/node-esm/chunk-ASPYIAYG.mjs.map +7 -0
  56. package/dist/lib/node-esm/chunk-HDKR5WCD.mjs +113 -0
  57. package/dist/lib/node-esm/chunk-HDKR5WCD.mjs.map +7 -0
  58. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  59. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  60. package/dist/lib/node-esm/{chunk-AHXJ6NQU.mjs → chunk-IBV2DR36.mjs} +8 -5
  61. package/dist/lib/node-esm/chunk-IBV2DR36.mjs.map +7 -0
  62. package/dist/lib/node-esm/chunk-IQTBVH4L.mjs +518 -0
  63. package/dist/lib/node-esm/chunk-IQTBVH4L.mjs.map +7 -0
  64. package/dist/lib/node-esm/chunk-NNHWLRHT.mjs +103 -0
  65. package/dist/lib/node-esm/chunk-NNHWLRHT.mjs.map +7 -0
  66. package/dist/lib/node-esm/chunk-Q5XB7DD4.mjs +305 -0
  67. package/dist/lib/node-esm/chunk-Q5XB7DD4.mjs.map +7 -0
  68. package/dist/lib/node-esm/{chunk-QKK3NDHW.mjs → chunk-RIE676OW.mjs} +23 -21
  69. package/dist/lib/node-esm/chunk-RIE676OW.mjs.map +7 -0
  70. package/dist/lib/node-esm/{compiler-EPFKQXPE.mjs → compiler-DU5NQISX.mjs} +10 -6
  71. package/dist/lib/node-esm/compiler-DU5NQISX.mjs.map +7 -0
  72. package/dist/lib/node-esm/index.mjs +108 -44
  73. package/dist/lib/node-esm/index.mjs.map +3 -3
  74. package/dist/lib/node-esm/{intent-resolver-FRZGS4TB.mjs → intent-resolver-JK7J6JQB.mjs} +39 -26
  75. package/dist/lib/node-esm/intent-resolver-JK7J6JQB.mjs.map +7 -0
  76. package/dist/lib/node-esm/meta.json +1 -1
  77. package/dist/lib/node-esm/{react-surface-V32NWHKN.mjs → react-surface-BPQLLTT4.mjs} +45 -21
  78. package/dist/lib/node-esm/react-surface-BPQLLTT4.mjs.map +7 -0
  79. package/dist/lib/node-esm/{settings-DXZ334A3.mjs → settings-IUFMOCXY.mjs} +10 -8
  80. package/dist/lib/node-esm/settings-IUFMOCXY.mjs.map +7 -0
  81. package/dist/lib/node-esm/templates/index.mjs +2 -1
  82. package/dist/lib/node-esm/types/index.mjs +8 -4
  83. package/dist/types/src/ScriptPlugin.d.ts +1 -1
  84. package/dist/types/src/ScriptPlugin.d.ts.map +1 -1
  85. package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -1
  86. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  87. package/dist/types/src/capabilities/artifact-definition.d.ts +1 -1
  88. package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -1
  89. package/dist/types/src/capabilities/blueprint-definition.d.ts +5 -0
  90. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -0
  91. package/dist/types/src/capabilities/compiler.d.ts +1 -1
  92. package/dist/types/src/capabilities/compiler.d.ts.map +1 -1
  93. package/dist/types/src/capabilities/index.d.ts +6 -6
  94. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  95. package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
  96. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  97. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  98. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  99. package/dist/types/src/capabilities/settings.d.ts +1 -1
  100. package/dist/types/src/compiler/compiler.d.ts.map +1 -1
  101. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.d.ts +4 -4
  102. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.d.ts.map +1 -1
  103. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts +243 -13
  104. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts.map +1 -1
  105. package/dist/types/src/components/DeploymentDialog/index.d.ts +1 -1
  106. package/dist/types/src/components/DeploymentDialog/index.d.ts.map +1 -1
  107. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts +1 -1
  108. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts.map +1 -1
  109. package/dist/types/src/components/NotebookContainer.d.ts +10 -0
  110. package/dist/types/src/components/NotebookContainer.d.ts.map +1 -0
  111. package/dist/types/src/components/NotebookContainer.stories.d.ts +251 -0
  112. package/dist/types/src/components/NotebookContainer.stories.d.ts.map +1 -0
  113. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts +15 -0
  114. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts.map +1 -0
  115. package/dist/types/src/components/NotebookStack/NotebookMenu.d.ts +9 -0
  116. package/dist/types/src/components/NotebookStack/NotebookMenu.d.ts.map +1 -0
  117. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts +14 -0
  118. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts.map +1 -0
  119. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts +245 -0
  120. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts.map +1 -0
  121. package/dist/types/src/components/NotebookStack/index.d.ts +3 -0
  122. package/dist/types/src/components/NotebookStack/index.d.ts.map +1 -0
  123. package/dist/types/src/components/ScriptContainer.d.ts +4 -4
  124. package/dist/types/src/components/ScriptContainer.d.ts.map +1 -1
  125. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts +5 -6
  126. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts.map +1 -1
  127. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts +242 -10
  128. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts.map +1 -1
  129. package/dist/types/src/components/Settings/ScriptObjectSettings.d.ts +2 -2
  130. package/dist/types/src/components/Settings/ScriptObjectSettings.d.ts.map +1 -1
  131. package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts +2 -2
  132. package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts.map +1 -1
  133. package/dist/types/src/components/TestPanel/TestContainer.d.ts +2 -2
  134. package/dist/types/src/components/TestPanel/TestContainer.d.ts.map +1 -1
  135. package/dist/types/src/components/TestPanel/TestPanel.d.ts.map +1 -1
  136. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts +4 -2
  137. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts.map +1 -1
  138. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts +11 -4
  139. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts.map +1 -1
  140. package/dist/types/src/components/index.d.ts +3 -4
  141. package/dist/types/src/components/index.d.ts.map +1 -1
  142. package/dist/types/src/events.d.ts.map +1 -1
  143. package/dist/types/src/hooks/deploy.d.ts +18 -16
  144. package/dist/types/src/hooks/deploy.d.ts.map +1 -1
  145. package/dist/types/src/hooks/format.d.ts +2 -2
  146. package/dist/types/src/hooks/format.d.ts.map +1 -1
  147. package/dist/types/src/hooks/template.d.ts +4 -14
  148. package/dist/types/src/hooks/template.d.ts.map +1 -1
  149. package/dist/types/src/hooks/useCreateAndDeployScriptTemplates.d.ts.map +1 -1
  150. package/dist/types/src/index.d.ts +1 -0
  151. package/dist/types/src/index.d.ts.map +1 -1
  152. package/dist/types/src/meta.d.ts +0 -1
  153. package/dist/types/src/meta.d.ts.map +1 -1
  154. package/dist/types/src/notebook/compute-graph.d.ts +45 -0
  155. package/dist/types/src/notebook/compute-graph.d.ts.map +1 -0
  156. package/dist/types/src/notebook/compute-graph.test.d.ts +2 -0
  157. package/dist/types/src/notebook/compute-graph.test.d.ts.map +1 -0
  158. package/dist/types/src/notebook/eval.d.ts +13 -0
  159. package/dist/types/src/notebook/eval.d.ts.map +1 -0
  160. package/dist/types/src/notebook/index.d.ts +2 -0
  161. package/dist/types/src/notebook/index.d.ts.map +1 -0
  162. package/dist/types/src/notebook/vfs-parser.d.ts +74 -0
  163. package/dist/types/src/notebook/vfs-parser.d.ts.map +1 -0
  164. package/dist/types/src/notebook/vfs-parser.test.d.ts +2 -0
  165. package/dist/types/src/notebook/vfs-parser.test.d.ts.map +1 -0
  166. package/dist/types/src/templates/chess.d.ts.map +1 -1
  167. package/dist/types/src/templates/data-generator.d.ts.map +1 -1
  168. package/dist/types/src/templates/discord.d.ts.map +1 -1
  169. package/dist/types/src/templates/forex-effect.d.ts.map +1 -1
  170. package/dist/types/src/templates/forex.d.ts.map +1 -1
  171. package/dist/types/src/templates/gmail.d.ts.map +1 -1
  172. package/dist/types/src/templates/index.d.ts +43 -1
  173. package/dist/types/src/templates/index.d.ts.map +1 -1
  174. package/dist/types/src/templates/{echo.d.ts → ping.d.ts} +1 -1
  175. package/dist/types/src/templates/ping.d.ts.map +1 -0
  176. package/dist/types/src/testing/data.d.ts +3 -0
  177. package/dist/types/src/testing/data.d.ts.map +1 -0
  178. package/dist/types/src/testing/index.d.ts +2 -0
  179. package/dist/types/src/testing/index.d.ts.map +1 -0
  180. package/dist/types/src/translations.d.ts +30 -5
  181. package/dist/types/src/translations.d.ts.map +1 -1
  182. package/dist/types/src/types/Notebook.d.ts +31 -0
  183. package/dist/types/src/types/Notebook.d.ts.map +1 -0
  184. package/dist/types/src/types/actions.d.ts +54 -0
  185. package/dist/types/src/types/actions.d.ts.map +1 -0
  186. package/dist/types/src/types/index.d.ts +3 -1
  187. package/dist/types/src/types/index.d.ts.map +1 -1
  188. package/dist/types/src/types/types.d.ts +6 -0
  189. package/dist/types/src/types/types.d.ts.map +1 -0
  190. package/dist/types/src/util/deploy.d.ts +7 -7
  191. package/dist/types/src/util/deploy.d.ts.map +1 -1
  192. package/dist/types/src/util/functions.d.ts +6 -3
  193. package/dist/types/src/util/functions.d.ts.map +1 -1
  194. package/dist/types/tsconfig.tsbuildinfo +1 -1
  195. package/package.json +82 -70
  196. package/src/ScriptPlugin.tsx +90 -71
  197. package/src/capabilities/app-graph-builder.ts +12 -11
  198. package/src/capabilities/artifact-definition.ts +8 -13
  199. package/src/capabilities/blueprint-definition.ts +30 -0
  200. package/src/capabilities/compiler.ts +3 -2
  201. package/src/capabilities/index.ts +1 -1
  202. package/src/capabilities/intent-resolver.ts +21 -15
  203. package/src/capabilities/react-surface.tsx +33 -19
  204. package/src/capabilities/settings.ts +3 -3
  205. package/src/compiler/compiler.ts +1 -1
  206. package/src/components/DeploymentDialog/DeploymentDialog.stories.tsx +39 -20
  207. package/src/components/DeploymentDialog/DeploymentDialog.tsx +45 -34
  208. package/src/components/DeploymentDialog/index.ts +1 -1
  209. package/src/components/FrameContainer/FrameContainer.tsx +4 -3
  210. package/src/components/NotebookContainer.stories.tsx +83 -0
  211. package/src/components/NotebookContainer.tsx +263 -0
  212. package/src/components/NotebookStack/NotebookCell.tsx +214 -0
  213. package/src/components/NotebookStack/NotebookMenu.tsx +47 -0
  214. package/src/components/NotebookStack/NotebookStack.stories.tsx +54 -0
  215. package/src/components/NotebookStack/NotebookStack.tsx +86 -0
  216. package/src/components/NotebookStack/index.ts +6 -0
  217. package/src/components/ScriptContainer.tsx +7 -6
  218. package/src/components/ScriptToolbar/ScriptToolbar.stories.tsx +34 -17
  219. package/src/components/ScriptToolbar/ScriptToolbar.tsx +36 -29
  220. package/src/components/Settings/ScriptObjectSettings.tsx +127 -36
  221. package/src/components/Settings/ScriptPluginSettings.tsx +37 -47
  222. package/src/components/TestPanel/TestContainer.tsx +4 -3
  223. package/src/components/TestPanel/TestPanel.tsx +42 -19
  224. package/src/components/TypescriptEditor/TypescriptEditor.stories.tsx +79 -31
  225. package/src/components/TypescriptEditor/TypescriptEditor.tsx +37 -35
  226. package/src/components/index.ts +3 -0
  227. package/src/events.ts +2 -2
  228. package/src/hooks/deploy.ts +23 -24
  229. package/src/hooks/format.ts +4 -4
  230. package/src/hooks/template.ts +6 -15
  231. package/src/hooks/useCreateAndDeployScriptTemplates.ts +11 -6
  232. package/src/index.ts +1 -0
  233. package/src/meta.ts +7 -5
  234. package/src/notebook/compute-graph.test.ts +70 -0
  235. package/src/notebook/compute-graph.ts +206 -0
  236. package/src/notebook/eval.ts +105 -0
  237. package/src/notebook/index.ts +5 -0
  238. package/src/notebook/vfs-parser.test.ts +149 -0
  239. package/src/notebook/vfs-parser.ts +451 -0
  240. package/src/templates/chess.ts +3 -1
  241. package/src/templates/data-generator.ts +9 -3
  242. package/src/templates/discord.ts +12 -4
  243. package/src/templates/forex-effect.ts +7 -3
  244. package/src/templates/forex.ts +3 -1
  245. package/src/templates/gmail.ts +34 -64
  246. package/src/templates/index.ts +6 -6
  247. package/src/testing/data.ts +72 -0
  248. package/src/testing/index.ts +5 -0
  249. package/src/translations.ts +33 -7
  250. package/src/types/Notebook.ts +41 -0
  251. package/src/types/actions.ts +53 -0
  252. package/src/types/index.ts +3 -1
  253. package/src/types/types.ts +15 -0
  254. package/src/util/deploy.ts +29 -46
  255. package/src/util/functions.ts +37 -7
  256. package/dist/lib/browser/DeploymentDialog-M4QIHTDR.mjs +0 -12
  257. package/dist/lib/browser/ScriptContainer-Z6SIGRRC.mjs +0 -262
  258. package/dist/lib/browser/ScriptContainer-Z6SIGRRC.mjs.map +0 -7
  259. package/dist/lib/browser/app-graph-builder-HLQ7K3BT.mjs.map +0 -7
  260. package/dist/lib/browser/artifact-definition-24Q3IHOU.mjs +0 -249
  261. package/dist/lib/browser/artifact-definition-24Q3IHOU.mjs.map +0 -7
  262. package/dist/lib/browser/chunk-3U6DTUH3.mjs +0 -283
  263. package/dist/lib/browser/chunk-3U6DTUH3.mjs.map +0 -7
  264. package/dist/lib/browser/chunk-FIM2MVNJ.mjs.map +0 -7
  265. package/dist/lib/browser/chunk-FMDXKOP7.mjs +0 -233
  266. package/dist/lib/browser/chunk-FMDXKOP7.mjs.map +0 -7
  267. package/dist/lib/browser/chunk-IS4OG2UW.mjs +0 -39
  268. package/dist/lib/browser/chunk-IS4OG2UW.mjs.map +0 -7
  269. package/dist/lib/browser/chunk-P4HQKUCP.mjs.map +0 -7
  270. package/dist/lib/browser/chunk-QYAREHGH.mjs.map +0 -7
  271. package/dist/lib/browser/chunk-R4R7VOFY.mjs +0 -88
  272. package/dist/lib/browser/chunk-R4R7VOFY.mjs.map +0 -7
  273. package/dist/lib/browser/compiler-CXCUA4UQ.mjs.map +0 -7
  274. package/dist/lib/browser/intent-resolver-7B77IG3N.mjs.map +0 -7
  275. package/dist/lib/browser/react-surface-FYYXZA7C.mjs.map +0 -7
  276. package/dist/lib/browser/settings-KCTBK5TY.mjs.map +0 -7
  277. package/dist/lib/node-esm/DeploymentDialog-3KPRWFE7.mjs +0 -13
  278. package/dist/lib/node-esm/ScriptContainer-KPU75HHI.mjs +0 -263
  279. package/dist/lib/node-esm/ScriptContainer-KPU75HHI.mjs.map +0 -7
  280. package/dist/lib/node-esm/app-graph-builder-7EYIHWH4.mjs.map +0 -7
  281. package/dist/lib/node-esm/artifact-definition-WAJFALUI.mjs +0 -250
  282. package/dist/lib/node-esm/artifact-definition-WAJFALUI.mjs.map +0 -7
  283. package/dist/lib/node-esm/chunk-7NMI4CEU.mjs.map +0 -7
  284. package/dist/lib/node-esm/chunk-AHXJ6NQU.mjs.map +0 -7
  285. package/dist/lib/node-esm/chunk-F5GFJ3PY.mjs +0 -90
  286. package/dist/lib/node-esm/chunk-F5GFJ3PY.mjs.map +0 -7
  287. package/dist/lib/node-esm/chunk-JIPFLBYA.mjs +0 -40
  288. package/dist/lib/node-esm/chunk-JIPFLBYA.mjs.map +0 -7
  289. package/dist/lib/node-esm/chunk-QKK3NDHW.mjs.map +0 -7
  290. package/dist/lib/node-esm/chunk-RT43MACC.mjs +0 -284
  291. package/dist/lib/node-esm/chunk-RT43MACC.mjs.map +0 -7
  292. package/dist/lib/node-esm/chunk-XJPK3IYI.mjs +0 -234
  293. package/dist/lib/node-esm/chunk-XJPK3IYI.mjs.map +0 -7
  294. package/dist/lib/node-esm/compiler-EPFKQXPE.mjs.map +0 -7
  295. package/dist/lib/node-esm/intent-resolver-FRZGS4TB.mjs.map +0 -7
  296. package/dist/lib/node-esm/react-surface-V32NWHKN.mjs.map +0 -7
  297. package/dist/lib/node-esm/settings-DXZ334A3.mjs.map +0 -7
  298. package/dist/types/src/templates/echo.d.ts.map +0 -1
  299. package/dist/types/src/types/schema.d.ts +0 -38
  300. package/dist/types/src/types/schema.d.ts.map +0 -1
  301. package/src/types/schema.ts +0 -37
  302. /package/dist/lib/browser/{DeploymentDialog-M4QIHTDR.mjs.map → DeploymentDialog-MZX4T77L.mjs.map} +0 -0
  303. /package/dist/lib/{node-esm/DeploymentDialog-3KPRWFE7.mjs.map → browser/chunk-J5LGTIGS.mjs.map} +0 -0
  304. /package/dist/lib/browser/{chunk-5TVBECWH.mjs.map → chunk-UOQ6NCH3.mjs.map} +0 -0
  305. /package/dist/lib/node-esm/{chunk-35M3CHYE.mjs.map → chunk-55JZVM6K.mjs.map} +0 -0
  306. /package/src/templates/{echo.ts → ping.ts} +0 -0
@@ -1,29 +1,36 @@
1
1
  import {
2
+ getAccessCredential,
2
3
  useDeployState,
3
4
  useToolbarState
4
- } from "./chunk-3U6DTUH3.mjs";
5
+ } from "./chunk-5JSNQYZZ.mjs";
5
6
  import {
6
- SCRIPT_PLUGIN,
7
7
  meta
8
- } from "./chunk-QYAREHGH.mjs";
8
+ } from "./chunk-EB6AXFXO.mjs";
9
9
 
10
10
  // src/components/Settings/ScriptObjectSettings.tsx
11
11
  import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
12
12
  import { Octokit } from "@octokit/core";
13
- import React, { useCallback, useEffect, useState } from "react";
14
- import { createIntent, SettingsAction, useIntentDispatcher } from "@dxos/app-framework";
15
- import { FunctionType, getInvocationUrl, getUserFunctionUrlInMetadata } from "@dxos/functions";
13
+ import React, { useCallback, useState } from "react";
14
+ import { ToolId } from "@dxos/ai";
15
+ import { SettingsAction, createIntent } from "@dxos/app-framework";
16
+ import { useIntentDispatcher } from "@dxos/app-framework/react";
17
+ import { Blueprint, Template } from "@dxos/blueprints";
18
+ import { Function, getUserFunctionIdInMetadata } from "@dxos/functions";
19
+ import { getInvocationUrl } from "@dxos/functions-runtime";
16
20
  import { log } from "@dxos/log";
17
21
  import { useClient } from "@dxos/react-client";
18
- import { Filter, getMeta, getSpace, Ref, useQuery } from "@dxos/react-client/echo";
19
- import { Button, Clipboard, Input, useControlledState, useTranslation } from "@dxos/react-ui";
20
- import { DataType } from "@dxos/schema";
22
+ import { Filter, Ref, getMeta, getSpace, useQuery } from "@dxos/react-client/echo";
23
+ import { Button, Clipboard, Input, useAsyncEffect, useControlledState, useTranslation } from "@dxos/react-ui";
24
+ import { AccessToken } from "@dxos/types";
25
+ import { kebabize } from "@dxos/util";
21
26
  var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-script/src/components/Settings/ScriptObjectSettings.tsx";
22
27
  var ScriptObjectSettings = ({ object }) => {
23
28
  var _effect = _useSignals();
24
29
  try {
25
30
  return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Binding, {
26
31
  object
32
+ }), /* @__PURE__ */ React.createElement(BlueprintEditor, {
33
+ object
27
34
  }), /* @__PURE__ */ React.createElement(Publishing, {
28
35
  object
29
36
  }));
@@ -34,7 +41,7 @@ var ScriptObjectSettings = ({ object }) => {
34
41
  var ScriptProperties = ({ object }) => {
35
42
  var _effect = _useSignals();
36
43
  try {
37
- const { t } = useTranslation(SCRIPT_PLUGIN);
44
+ const { t } = useTranslation(meta.id);
38
45
  return /* @__PURE__ */ React.createElement(Input.Root, null, /* @__PURE__ */ React.createElement(Input.Label, null, t("description label")), /* @__PURE__ */ React.createElement(Input.TextInput, {
39
46
  placeholder: t("description placeholder"),
40
47
  value: object.description ?? "",
@@ -46,17 +53,114 @@ var ScriptProperties = ({ object }) => {
46
53
  _effect.f();
47
54
  }
48
55
  };
56
+ var BlueprintEditor = ({ object }) => {
57
+ var _effect = _useSignals();
58
+ try {
59
+ const { t } = useTranslation(meta.id);
60
+ const space = getSpace(object);
61
+ const [fn] = useQuery(space, Filter.type(Function.Function, {
62
+ source: Ref.make(object)
63
+ }));
64
+ const blueprints = useQuery(space, Filter.type(Blueprint.Blueprint));
65
+ const [creating, setCreating] = useState(false);
66
+ const [instructions, setInstructions] = useState(`You can run the script "${object.name ?? "script"}".`);
67
+ const blueprintKey = `dxos.org/blueprint/${kebabize(object.name ?? "script")}`;
68
+ const existingBlueprint = blueprints.find((bp) => bp.key === blueprintKey);
69
+ useAsyncEffect(async () => {
70
+ if (!existingBlueprint) {
71
+ return;
72
+ }
73
+ const source = await existingBlueprint.instructions.source.load();
74
+ setInstructions(source.content ?? "");
75
+ }, [
76
+ existingBlueprint
77
+ ]);
78
+ const handleSave = useCallback(async () => {
79
+ if (!space) {
80
+ return;
81
+ }
82
+ setCreating(true);
83
+ try {
84
+ if (existingBlueprint) {
85
+ const text = await existingBlueprint.instructions.source.load();
86
+ text.content = instructions;
87
+ if (fn?.key) {
88
+ const toolId = ToolId.make(fn.key);
89
+ if (!existingBlueprint.tools?.includes(toolId)) {
90
+ existingBlueprint.tools = [
91
+ ...existingBlueprint.tools ?? [],
92
+ toolId
93
+ ];
94
+ }
95
+ }
96
+ } else if (fn?.key) {
97
+ space.db.add(Blueprint.make({
98
+ key: blueprintKey,
99
+ name: object.name ?? "Script",
100
+ instructions: Template.make({
101
+ source: instructions
102
+ }),
103
+ tools: [
104
+ ToolId.make(fn.key)
105
+ ]
106
+ }));
107
+ }
108
+ await space.db.flush();
109
+ } finally {
110
+ setCreating(false);
111
+ }
112
+ }, [
113
+ space,
114
+ existingBlueprint,
115
+ fn,
116
+ blueprintKey,
117
+ object.name,
118
+ instructions
119
+ ]);
120
+ return /* @__PURE__ */ React.createElement("div", {
121
+ className: "flex flex-col gap-4 mlb-cardSpacingBlock"
122
+ }, /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("h2", null, t("blueprint editor label", {
123
+ default: "Blueprint"
124
+ })), /* @__PURE__ */ React.createElement("p", {
125
+ className: "text-description text-sm"
126
+ }, t("blueprint editor description", {
127
+ default: "Create a blueprint that exposes this script as a tool."
128
+ }))), /* @__PURE__ */ React.createElement(Input.Root, null, /* @__PURE__ */ React.createElement("div", {
129
+ role: "none",
130
+ className: "flex flex-col gap-1"
131
+ }, /* @__PURE__ */ React.createElement(Input.Label, null, t("blueprint instructions label", {
132
+ default: "Instructions"
133
+ })), /* @__PURE__ */ React.createElement(Input.TextArea, {
134
+ placeholder: t("blueprint instructions placeholder", {
135
+ default: "Describe how this tool should be used."
136
+ }),
137
+ rows: 6,
138
+ value: instructions,
139
+ onChange: (event) => setInstructions(event.target.value),
140
+ classNames: "resize-y"
141
+ }))), /* @__PURE__ */ React.createElement("div", {
142
+ className: "flex justify-end gap-2"
143
+ }, /* @__PURE__ */ React.createElement(Button, {
144
+ disabled: !existingBlueprint && !fn?.key || creating,
145
+ onClick: handleSave
146
+ }, t(creating ? "creating label" : "create blueprint label", {
147
+ default: creating ? "Creating\u2026" : "Create blueprint"
148
+ }))));
149
+ } finally {
150
+ _effect.f();
151
+ }
152
+ };
49
153
  var Binding = ({ object }) => {
50
154
  var _effect = _useSignals();
51
155
  try {
52
- const { t } = useTranslation(SCRIPT_PLUGIN);
156
+ const { t } = useTranslation(meta.id);
53
157
  const client = useClient();
54
158
  const space = getSpace(object);
55
- const [fn] = useQuery(space, Filter.type(FunctionType, {
159
+ const [fn] = useQuery(space, Filter.type(Function.Function, {
56
160
  source: Ref.make(object)
57
161
  }));
58
- const functionPath = fn && getUserFunctionUrlInMetadata(getMeta(fn));
59
- const functionUrl = functionPath && getInvocationUrl(functionPath, client.config.values.runtime?.services?.edge?.url ?? "", {
162
+ const functionId = fn && getUserFunctionIdInMetadata(getMeta(fn));
163
+ const functionUrl = functionId && getInvocationUrl(functionId, client.config.values.runtime?.services?.edge?.url ?? "", {
60
164
  spaceId: space?.id
61
165
  });
62
166
  const [binding, setBinding] = useControlledState(fn?.binding ?? "");
@@ -107,41 +211,38 @@ var Binding = ({ object }) => {
107
211
  var Publishing = ({ object }) => {
108
212
  var _effect = _useSignals();
109
213
  try {
110
- const { t } = useTranslation(SCRIPT_PLUGIN);
214
+ const { t } = useTranslation(meta.id);
111
215
  const { dispatchPromise: dispatch } = useIntentDispatcher();
112
216
  const space = getSpace(object);
113
- const [githubToken] = useQuery(space, Filter.type(DataType.AccessToken, {
217
+ const [githubToken] = useQuery(space, Filter.type(AccessToken.AccessToken, {
114
218
  source: "github.com"
115
219
  }));
116
220
  const gistKey = getMeta(object).keys.find(({ source }) => source === "github.com");
117
221
  const [gistUrl, setGistUrl] = useState();
118
- useEffect(() => {
222
+ useAsyncEffect(async () => {
119
223
  const token = githubToken?.token;
120
224
  const gistId = gistKey?.id;
121
225
  if (!token || !gistId) {
122
226
  setGistUrl(void 0);
123
227
  return;
124
228
  }
125
- const timeout = setTimeout(async () => {
126
- try {
127
- const octokit = new Octokit({
128
- auth: githubToken.token
129
- });
130
- const response = await octokit.request("GET /gists/{gist_id}", {
131
- gist_id: gistId
132
- });
133
- setGistUrl(response.data.html_url);
134
- } catch (err) {
135
- log.catch(err, void 0, {
136
- F: __dxlog_file,
137
- L: 135,
138
- S: void 0,
139
- C: (f, a) => f(...a)
140
- });
141
- setGistUrl(void 0);
142
- }
143
- });
144
- return () => clearTimeout(timeout);
229
+ try {
230
+ const octokit = new Octokit({
231
+ auth: githubToken.token
232
+ });
233
+ const response = await octokit.request("GET /gists/{gist_id}", {
234
+ gist_id: gistId
235
+ });
236
+ setGistUrl(response.data.html_url);
237
+ } catch (err) {
238
+ log.catch(err, void 0, {
239
+ F: __dxlog_file,
240
+ L: 228,
241
+ S: void 0,
242
+ C: (f, a) => f(...a)
243
+ });
244
+ setGistUrl(void 0);
245
+ }
145
246
  }, [
146
247
  githubToken,
147
248
  gistKey
@@ -210,7 +311,6 @@ var Publishing = ({ object }) => {
210
311
  _effect.f();
211
312
  }
212
313
  };
213
- var kebabize = (str) => str.replace(/[A-Z]+(?![a-z])|[A-Z]/g, ($, ofs) => (ofs ? "-" : "") + $.toLowerCase());
214
314
 
215
315
  // src/components/Settings/ScriptPluginSettings.tsx
216
316
  import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
@@ -218,7 +318,7 @@ import React2 from "react";
218
318
  import { useClient as useClient2 } from "@dxos/react-client";
219
319
  import { Button as Button2, Select, useTranslation as useTranslation2 } from "@dxos/react-ui";
220
320
  import { EditorInputModes } from "@dxos/react-ui-editor";
221
- import { DeprecatedFormContainer, DeprecatedFormInput } from "@dxos/react-ui-form";
321
+ import { ControlGroup, ControlItemInput, ControlPage, ControlSection } from "@dxos/react-ui-form";
222
322
  var ScriptPluginSettings = ({ settings }) => {
223
323
  var _effect = _useSignals2();
224
324
  try {
@@ -227,30 +327,19 @@ var ScriptPluginSettings = ({ settings }) => {
227
327
  const handleAuthenticate = async () => {
228
328
  const { identityKey } = client.halo.identity.get();
229
329
  await client.halo.writeCredentials([
230
- {
231
- issuer: identityKey,
232
- issuanceDate: /* @__PURE__ */ new Date(),
233
- subject: {
234
- id: identityKey,
235
- assertion: {
236
- "@type": "dxos.halo.credentials.ServiceAccess",
237
- serverName: "hub.dxos.network",
238
- serverKey: identityKey,
239
- identityKey,
240
- capabilities: [
241
- "composer:beta"
242
- ]
243
- }
244
- }
245
- }
330
+ getAccessCredential(identityKey)
246
331
  ]);
247
332
  };
248
- return /* @__PURE__ */ React2.createElement(DeprecatedFormContainer, null, /* @__PURE__ */ React2.createElement(DeprecatedFormInput, {
249
- label: t("authenticate action label")
333
+ return /* @__PURE__ */ React2.createElement(ControlPage, null, /* @__PURE__ */ React2.createElement(ControlSection, {
334
+ title: t("settings title", {
335
+ ns: meta.id
336
+ })
337
+ }, /* @__PURE__ */ React2.createElement(ControlGroup, null, /* @__PURE__ */ React2.createElement(ControlItemInput, {
338
+ title: t("authenticate action label")
250
339
  }, /* @__PURE__ */ React2.createElement(Button2, {
251
340
  onClick: handleAuthenticate
252
- }, t("authenticate button label"))), /* @__PURE__ */ React2.createElement(DeprecatedFormInput, {
253
- label: t("editor input mode label")
341
+ }, t("authenticate button label"))), /* @__PURE__ */ React2.createElement(ControlItemInput, {
342
+ title: t("editor input mode label")
254
343
  }, /* @__PURE__ */ React2.createElement(Select.Root, {
255
344
  value: settings.editorInputMode ?? "default",
256
345
  onValueChange: (value) => {
@@ -261,7 +350,7 @@ var ScriptPluginSettings = ({ settings }) => {
261
350
  }), /* @__PURE__ */ React2.createElement(Select.Portal, null, /* @__PURE__ */ React2.createElement(Select.Content, null, /* @__PURE__ */ React2.createElement(Select.Viewport, null, EditorInputModes.map((mode) => /* @__PURE__ */ React2.createElement(Select.Option, {
262
351
  key: mode,
263
352
  value: mode
264
- }, t(`settings editor input mode ${mode} label`)))))))));
353
+ }, t(`settings editor input mode ${mode} label`)))), /* @__PURE__ */ React2.createElement(Select.Arrow, null))))))));
265
354
  } finally {
266
355
  _effect.f();
267
356
  }
@@ -269,7 +358,7 @@ var ScriptPluginSettings = ({ settings }) => {
269
358
 
270
359
  // src/components/TestPanel/TestPanel.tsx
271
360
  import { useSignals as _useSignals3 } from "@preact-signals/safe-react/tracking";
272
- import React3, { forwardRef, useEffect as useEffect2, useRef, useState as useState2 } from "react";
361
+ import React3, { forwardRef, useEffect, useRef, useState as useState2 } from "react";
273
362
  import { log as log2 } from "@dxos/log";
274
363
  import { Avatar, Icon, Input as Input2, Toolbar, useTranslation as useTranslation3 } from "@dxos/react-ui";
275
364
  import { SyntaxHighlighter } from "@dxos/react-ui-syntax-highlighter";
@@ -278,7 +367,7 @@ var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-script/src/component
278
367
  var TestPanel = ({ classNames, functionUrl }) => {
279
368
  var _effect = _useSignals3();
280
369
  try {
281
- const { t } = useTranslation3(SCRIPT_PLUGIN);
370
+ const { t } = useTranslation3(meta.id);
282
371
  const inputRef = useRef(null);
283
372
  const [input, setInput] = useState2("");
284
373
  const [result, setResult] = useState2("");
@@ -290,15 +379,15 @@ var TestPanel = ({ classNames, functionUrl }) => {
290
379
  scrollerRef.current.scrollTop = scrollerRef.current.scrollHeight;
291
380
  }
292
381
  };
293
- const controller = useRef();
294
- useEffect2(() => {
382
+ const controller = useRef(null);
383
+ useEffect(() => {
295
384
  return () => {
296
385
  handleStop();
297
386
  };
298
387
  }, []);
299
388
  const handleStop = () => {
300
389
  controller.current?.abort("stop");
301
- controller.current = void 0;
390
+ controller.current = null;
302
391
  };
303
392
  const handleClear = () => {
304
393
  handleStop();
@@ -308,7 +397,7 @@ var TestPanel = ({ classNames, functionUrl }) => {
308
397
  inputRef.current?.focus();
309
398
  };
310
399
  const handleResponse = ({ text, data, error } = {}) => {
311
- controller.current = void 0;
400
+ controller.current = null;
312
401
  setHistory((history2) => [
313
402
  ...history2,
314
403
  {
@@ -393,7 +482,7 @@ var TestPanel = ({ classNames, functionUrl }) => {
393
482
  if (err.name !== "AbortError") {
394
483
  log2.catch(err, void 0, {
395
484
  F: __dxlog_file2,
396
- L: 147,
485
+ L: 162,
397
486
  S: void 0,
398
487
  C: (f, a) => f(...a)
399
488
  });
@@ -407,7 +496,7 @@ var TestPanel = ({ classNames, functionUrl }) => {
407
496
  });
408
497
  log2.catch(err, void 0, {
409
498
  F: __dxlog_file2,
410
- L: 154,
499
+ L: 169,
411
500
  S: void 0,
412
501
  C: (f, a) => f(...a)
413
502
  });
@@ -417,32 +506,32 @@ var TestPanel = ({ classNames, functionUrl }) => {
417
506
  }
418
507
  };
419
508
  return /* @__PURE__ */ React3.createElement("div", {
420
- className: mx("flex flex-col h-full overflow-hidden", classNames)
509
+ className: mx("flex flex-col bs-full overflow-hidden", classNames)
421
510
  }, /* @__PURE__ */ React3.createElement(MessageThread, {
422
511
  ref: scrollerRef,
423
512
  state,
424
513
  result,
425
514
  history
426
- }), /* @__PURE__ */ React3.createElement(Toolbar.Root, {
427
- classNames: "p-2"
428
- }, /* @__PURE__ */ React3.createElement(Input2.Root, null, /* @__PURE__ */ React3.createElement(Input2.TextInput, {
515
+ }), /* @__PURE__ */ React3.createElement(Toolbar.Root, null, /* @__PURE__ */ React3.createElement(Input2.Root, null, /* @__PURE__ */ React3.createElement(Input2.TextInput, {
429
516
  ref: inputRef,
430
517
  autoFocus: true,
431
518
  placeholder: t("function request placeholder"),
432
519
  value: input,
433
520
  onChange: (ev) => setInput(ev.target.value),
434
521
  onKeyDown: (ev) => ev.key === "Enter" && handleRequest(input)
435
- })), /* @__PURE__ */ React3.createElement(Toolbar.Button, {
436
- onClick: () => handleRequest(input)
437
- }, /* @__PURE__ */ React3.createElement(Icon, {
522
+ })), /* @__PURE__ */ React3.createElement(Toolbar.IconButton, {
438
523
  icon: "ph--play--regular",
439
- size: 4
440
- })), /* @__PURE__ */ React3.createElement(Toolbar.Button, {
441
- onClick: () => state ? handleStop() : handleClear()
442
- }, /* @__PURE__ */ React3.createElement(Icon, {
524
+ size: 4,
525
+ label: "Execute",
526
+ iconOnly: true,
527
+ onClick: () => handleRequest(input)
528
+ }), /* @__PURE__ */ React3.createElement(Toolbar.IconButton, {
443
529
  icon: state ? "ph--stop--regular" : "ph--trash--regular",
444
- size: 4
445
- }))));
530
+ size: 4,
531
+ label: state ? "Stop" : "Clear",
532
+ iconOnly: true,
533
+ onClick: () => state ? handleStop() : handleClear()
534
+ })));
446
535
  } finally {
447
536
  _effect.f();
448
537
  }
@@ -452,7 +541,7 @@ var MessageThread = /* @__PURE__ */ forwardRef(({ state, history, result }, forw
452
541
  try {
453
542
  return /* @__PURE__ */ React3.createElement("div", {
454
543
  ref: forwardedRef,
455
- className: "flex flex-col gap-6 h-full p-2 overflow-x-hidden overflow-y-auto"
544
+ className: "flex flex-col gap-6 bs-full p-2 overflow-x-hidden overflow-y-auto"
456
545
  }, history.map((message, i) => /* @__PURE__ */ React3.createElement("div", {
457
546
  key: i,
458
547
  className: "grid grid-cols-[2rem_1fr_2rem]"
@@ -490,7 +579,7 @@ var MessageItem = ({ classNames, message }) => {
490
579
  var _effect = _useSignals3();
491
580
  try {
492
581
  const { type, text, data, error } = message;
493
- const wrapper = "p-1 px-2 rounded-md bg-hoverSurface overflow-auto";
582
+ const wrapper = "p-1 pli-2 rounded-md bg-hoverSurface overflow-auto";
494
583
  return /* @__PURE__ */ React3.createElement("div", {
495
584
  className: mx("flex", type === "request" ? "ml-[1rem] justify-end" : "mr-[1rem]", classNames)
496
585
  }, error && /* @__PURE__ */ React3.createElement("div", {
@@ -499,7 +588,7 @@ var MessageItem = ({ classNames, message }) => {
499
588
  className: mx(wrapper, type === "request" && "bg-primary-400 dark:bg-primary-600")
500
589
  }, text || "\xD8"), data && /* @__PURE__ */ React3.createElement(SyntaxHighlighter, {
501
590
  language: "json",
502
- className: mx(wrapper, "px-8 py-2 text-xs")
591
+ className: mx(wrapper, "text-xs")
503
592
  }, JSON.stringify(data, null, 2)));
504
593
  } finally {
505
594
  _effect.f();
@@ -540,8 +629,9 @@ var TestContainer = ({ script }) => {
540
629
 
541
630
  // src/components/index.ts
542
631
  import { lazy } from "react";
543
- var ScriptContainer = lazy(() => import("./ScriptContainer-Z6SIGRRC.mjs"));
544
- var DeploymentDialog = lazy(() => import("./DeploymentDialog-M4QIHTDR.mjs"));
632
+ var ScriptContainer = lazy(() => import("./ScriptContainer-3JQSTDFZ.mjs"));
633
+ var DeploymentDialog = lazy(() => import("./DeploymentDialog-MZX4T77L.mjs"));
634
+ var NotebookContainer = lazy(() => import("./NotebookContainer-S6GUYCUE.mjs"));
545
635
 
546
636
  export {
547
637
  ScriptObjectSettings,
@@ -550,6 +640,7 @@ export {
550
640
  TestPanel,
551
641
  TestContainer,
552
642
  ScriptContainer,
553
- DeploymentDialog
643
+ DeploymentDialog,
644
+ NotebookContainer
554
645
  };
555
- //# sourceMappingURL=chunk-FIM2MVNJ.mjs.map
646
+ //# sourceMappingURL=chunk-JRF6FHYQ.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/Settings/ScriptObjectSettings.tsx", "../../../src/components/Settings/ScriptPluginSettings.tsx", "../../../src/components/TestPanel/TestPanel.tsx", "../../../src/components/TestPanel/TestContainer.tsx", "../../../src/components/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { Octokit } from '@octokit/core';\nimport React, { type ChangeEvent, useCallback, useState } from 'react';\n\nimport { ToolId } from '@dxos/ai';\nimport { SettingsAction, createIntent } from '@dxos/app-framework';\nimport { useIntentDispatcher } from '@dxos/app-framework/react';\nimport { Blueprint, Template } from '@dxos/blueprints';\nimport { Function, type Script, getUserFunctionIdInMetadata } from '@dxos/functions';\nimport { getInvocationUrl } from '@dxos/functions-runtime';\nimport { log } from '@dxos/log';\nimport { useClient } from '@dxos/react-client';\nimport { Filter, Ref, getMeta, getSpace, useQuery } from '@dxos/react-client/echo';\nimport { Button, Clipboard, Input, useAsyncEffect, useControlledState, useTranslation } from '@dxos/react-ui';\nimport { AccessToken } from '@dxos/types';\nimport { kebabize } from '@dxos/util';\n\nimport { meta } from '../../meta';\n\nexport type ScriptObjectSettingsProps = {\n object: Script.Script;\n};\n\nexport const ScriptObjectSettings = ({ object }: ScriptObjectSettingsProps) => {\n return (\n <>\n <Binding object={object} />\n <BlueprintEditor object={object} />\n <Publishing object={object} />\n </>\n );\n};\n\nexport const ScriptProperties = ({ object }: ScriptObjectSettingsProps) => {\n const { t } = useTranslation(meta.id);\n return (\n <Input.Root>\n <Input.Label>{t('description label')}</Input.Label>\n <Input.TextInput\n placeholder={t('description placeholder')}\n value={object.description ?? ''}\n onChange={(event) => {\n object.description = event.target.value;\n }}\n />\n </Input.Root>\n );\n};\n\nconst BlueprintEditor = ({ object }: ScriptObjectSettingsProps) => {\n const { t } = useTranslation(meta.id);\n const space = getSpace(object);\n const [fn] = useQuery(space, Filter.type(Function.Function, { source: Ref.make(object) }));\n const blueprints = useQuery(space, Filter.type(Blueprint.Blueprint));\n\n const [creating, setCreating] = useState(false);\n const [instructions, setInstructions] = useState<string>(`You can run the script \"${object.name ?? 'script'}\".`);\n const blueprintKey = `dxos.org/blueprint/${kebabize(object.name ?? 'script')}`;\n const existingBlueprint = blueprints.find((bp) => bp.key === blueprintKey);\n\n useAsyncEffect(async () => {\n if (!existingBlueprint) {\n return;\n }\n const source = await existingBlueprint.instructions.source.load();\n setInstructions(source.content ?? '');\n }, [existingBlueprint]);\n\n const handleSave = useCallback(async () => {\n if (!space) {\n return;\n }\n\n setCreating(true);\n try {\n if (existingBlueprint) {\n const text = await existingBlueprint.instructions.source.load();\n text.content = instructions;\n if (fn?.key) {\n const toolId = ToolId.make(fn.key);\n if (!existingBlueprint.tools?.includes(toolId)) {\n existingBlueprint.tools = [...(existingBlueprint.tools ?? []), toolId];\n }\n }\n } else if (fn?.key) {\n space.db.add(\n Blueprint.make({\n key: blueprintKey,\n name: object.name ?? 'Script',\n instructions: Template.make({\n source: instructions,\n }),\n tools: [ToolId.make(fn.key)],\n }),\n );\n }\n await space.db.flush();\n } finally {\n setCreating(false);\n }\n }, [space, existingBlueprint, fn, blueprintKey, object.name, instructions]);\n\n return (\n <div className='flex flex-col gap-4 mlb-cardSpacingBlock'>\n <div>\n <h2>{t('blueprint editor label', { default: 'Blueprint' })}</h2>\n <p className='text-description text-sm'>\n {t('blueprint editor description', {\n default: 'Create a blueprint that exposes this script as a tool.',\n })}\n </p>\n </div>\n <Input.Root>\n <div role='none' className='flex flex-col gap-1'>\n <Input.Label>{t('blueprint instructions label', { default: 'Instructions' })}</Input.Label>\n <Input.TextArea\n placeholder={t('blueprint instructions placeholder', {\n default: 'Describe how this tool should be used.',\n })}\n rows={6}\n value={instructions}\n onChange={(event) => setInstructions(event.target.value)}\n classNames='resize-y'\n />\n </div>\n </Input.Root>\n <div className='flex justify-end gap-2'>\n <Button disabled={(!existingBlueprint && !fn?.key) || creating} onClick={handleSave}>\n {t(creating ? 'creating label' : 'create blueprint label', {\n default: creating ? 'Creating…' : 'Create blueprint',\n })}\n </Button>\n </div>\n </div>\n );\n};\n\nconst Binding = ({ object }: ScriptObjectSettingsProps) => {\n const { t } = useTranslation(meta.id);\n const client = useClient();\n const space = getSpace(object);\n const [fn] = useQuery(space, Filter.type(Function.Function, { source: Ref.make(object) }));\n\n const functionId = fn && getUserFunctionIdInMetadata(getMeta(fn));\n const functionUrl =\n functionId &&\n getInvocationUrl(functionId, client.config.values.runtime?.services?.edge?.url ?? '', {\n spaceId: space?.id,\n });\n\n const [binding, setBinding] = useControlledState(fn?.binding ?? '');\n const handleBindingChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n setBinding(event.target.value);\n },\n [setBinding],\n );\n\n const handleBindingBlur = useCallback(() => {\n fn.binding = binding;\n }, [fn, binding]);\n\n if (!fn || !functionUrl) {\n return null;\n }\n\n // TODO(burdon): Use form.\n return (\n <div role='form' className='flex flex-col gap-2 mlb-cardSpacingBlock'>\n <h2>{t('remote function settings heading')}</h2>\n <Input.Root>\n <div role='none' className='flex flex-col gap-1'>\n <Input.Label>{t('function url label')}</Input.Label>\n <div role='none' className='flex gap-1'>\n <Input.TextInput\n disabled\n value={functionUrl}\n onChange={(event) => {\n fn.name = event.target.value;\n }}\n />\n <Clipboard.IconButton value={functionUrl} />\n </div>\n </div>\n </Input.Root>\n <Input.Root>\n <div role='none' className='flex flex-col gap-1'>\n <Input.Label>{t('function binding label')}</Input.Label>\n <Input.TextInput\n placeholder={t('function binding placeholder')}\n value={binding}\n onChange={handleBindingChange}\n onBlur={handleBindingBlur}\n />\n </div>\n </Input.Root>\n </div>\n );\n};\n\n// TODO(burdon): Move to separate tab?\nconst Publishing = ({ object }: ScriptObjectSettingsProps) => {\n const { t } = useTranslation(meta.id);\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const space = getSpace(object);\n const [githubToken] = useQuery(space, Filter.type(AccessToken.AccessToken, { source: 'github.com' }));\n const gistKey = getMeta(object).keys.find(({ source }) => source === 'github.com');\n const [gistUrl, setGistUrl] = useState<string | undefined>();\n\n useAsyncEffect(async () => {\n const token = githubToken?.token;\n const gistId = gistKey?.id;\n if (!token || !gistId) {\n setGistUrl(undefined);\n return;\n }\n\n try {\n const octokit = new Octokit({ auth: githubToken.token });\n const response = await octokit.request('GET /gists/{gist_id}', {\n gist_id: gistId,\n });\n setGistUrl(response.data.html_url);\n } catch (err) {\n log.catch(err);\n setGistUrl(undefined);\n }\n }, [githubToken, gistKey]);\n\n const handleOpenTokenManager = useCallback(\n () =>\n dispatch(\n createIntent(SettingsAction.Open, {\n plugin: 'dxos.org/plugin/token-manager',\n }),\n ),\n [],\n );\n\n const [publishing, setPublishing] = useState(false);\n const handlePublish = useCallback(async () => {\n setPublishing(true);\n const octokit = new Octokit({ auth: githubToken.token });\n const source = await object.source.load();\n const filename = object.name ? kebabize(object.name) : 'composer-script';\n const files = { [`${filename}.ts`]: { content: source.content } };\n\n try {\n // TODO(wittjosiah): Factor out to intent.\n const meta = getMeta(object);\n const githubKey = meta.keys.find(({ source }) => source === 'github.com');\n const gistId = githubKey?.id;\n if (gistId) {\n await octokit.request('PATCH /gists/{gist_id}', {\n gist_id: gistId,\n files,\n });\n } else {\n const response = await octokit.request('POST /gists', {\n public: true,\n files,\n });\n if (response.data.id) {\n meta.keys.push({ source: 'github.com', id: response.data.id });\n }\n }\n } finally {\n setPublishing(false);\n }\n }, [object, githubToken]);\n\n return (\n <div className='flex flex-col gap-4 mlb-cardSpacingBlock'>\n <div>\n <h2>{t('script publish settings label')}</h2>\n <p className='text-description text-sm'>{t('script publish settings description')}</p>\n </div>\n {!githubToken && (\n <div className='flex flex-col gap-2'>\n <span>{t('no github token label')}</span>\n <Button onClick={handleOpenTokenManager}>{t('open token manager label')}</Button>\n </div>\n )}\n {githubToken && (\n <div className='flex justify-end gap-2'>\n {gistUrl && <Clipboard.IconButton value={gistUrl} />}\n <Button disabled={publishing} onClick={handlePublish}>\n {t(publishing ? 'publishing label' : 'publish label')}\n </Button>\n </div>\n )}\n </div>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { useClient } from '@dxos/react-client';\nimport { Button, Select, useTranslation } from '@dxos/react-ui';\nimport { type EditorInputMode, EditorInputModes } from '@dxos/react-ui-editor';\nimport { ControlGroup, ControlItemInput, ControlPage, ControlSection } from '@dxos/react-ui-form';\n\nimport { meta } from '../../meta';\nimport { type ScriptSettings } from '../../types';\nimport { getAccessCredential } from '../../util';\n\nexport const ScriptPluginSettings = ({ settings }: { settings: ScriptSettings }) => {\n const { t } = useTranslation(meta.id);\n const client = useClient();\n\n // TODO(burdon): Check token.\n const handleAuthenticate = async () => {\n const { identityKey } = client.halo.identity.get()!;\n await client.halo.writeCredentials([getAccessCredential(identityKey)]);\n };\n\n return (\n <ControlPage>\n <ControlSection title={t('settings title', { ns: meta.id })}>\n <ControlGroup>\n {/* TODO(wittjosiah): Hide outside of dev environments. */}\n <ControlItemInput title={t('authenticate action label')}>\n <Button onClick={handleAuthenticate}>{t('authenticate button label')}</Button>\n </ControlItemInput>\n\n <ControlItemInput title={t('editor input mode label')}>\n <Select.Root\n value={settings.editorInputMode ?? 'default'}\n onValueChange={(value) => {\n settings.editorInputMode = value as EditorInputMode;\n }}\n >\n <Select.TriggerButton placeholder={t('select editor input mode placeholder')} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n {EditorInputModes.map((mode) => (\n <Select.Option key={mode} value={mode}>\n {t(`settings editor input mode ${mode} label`)}\n </Select.Option>\n ))}\n </Select.Viewport>\n <Select.Arrow />\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </ControlItemInput>\n </ControlGroup>\n </ControlSection>\n </ControlPage>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { forwardRef, useEffect, useRef, useState } from 'react';\n\nimport { log } from '@dxos/log';\nimport { Avatar, Icon, Input, type ThemedClassName, Toolbar, useTranslation } from '@dxos/react-ui';\nimport { SyntaxHighlighter } from '@dxos/react-ui-syntax-highlighter';\nimport { errorText, mx } from '@dxos/react-ui-theme';\n\nimport { meta } from '../../meta';\n\ntype State = 'pending' | 'responding';\n\n/**\n * Request or response.\n */\ntype Message = {\n type: 'request' | 'response';\n text?: string;\n data?: any;\n error?: Error;\n};\n\nexport type TestPanelProps = ThemedClassName<{\n functionUrl?: string;\n}>;\n\n// TODO(burdon): Need persistent history (currently lost when switching tabs)..\nexport const TestPanel = ({ classNames, functionUrl }: TestPanelProps) => {\n const { t } = useTranslation(meta.id);\n\n const inputRef = useRef<HTMLInputElement>(null);\n const [input, setInput] = useState('');\n const [result, setResult] = useState('');\n const [state, setState] = useState<State | null>(null);\n\n // TODO(burdon): Persistent history (thread).\n const [history, setHistory] = useState<Message[]>([]);\n\n const scrollerRef = useRef<HTMLDivElement>(null);\n const handleScroll = () => {\n if (scrollerRef.current) {\n scrollerRef.current.scrollTop = scrollerRef.current.scrollHeight;\n }\n };\n\n const controller = useRef<AbortController>(null);\n useEffect(() => {\n return () => {\n handleStop();\n };\n }, []);\n\n const handleStop = () => {\n controller.current?.abort('stop');\n controller.current = null;\n };\n\n const handleClear = () => {\n handleStop();\n setInput('');\n setResult('');\n setHistory([]);\n inputRef.current?.focus();\n };\n\n const handleResponse = ({\n text,\n data,\n error,\n }: {\n text?: string;\n data?: any;\n error?: Error;\n } = {}) => {\n controller.current = null;\n setHistory((history) => [...history, { type: 'response', text, data, error } satisfies Message]);\n setResult('');\n setState(null);\n handleScroll();\n };\n\n const handleRequest = async (input: string) => {\n // Returns a promise that resolves when a value has been received.\n try {\n setState('pending');\n\n let data = null;\n // Detect JSON input.\n if (input.charAt(0) === '{') {\n try {\n const validJsonString = input.replace(/'/g, '\"').replace(/([{,]\\s*)([a-zA-Z0-9_]+)(\\s*:)/g, '$1\"$2\"$3');\n data = JSON.parse(validJsonString);\n input = JSON.stringify(data, null, 2);\n } catch (err) {\n inputRef.current?.focus();\n return;\n }\n }\n\n setInput('');\n setResult('');\n setHistory((history) => [...history, { type: 'request', text: input }]);\n setTimeout(() => {\n handleScroll();\n });\n\n // Throws DOMException when aborted.\n controller.current = new AbortController();\n const response = await fetch(functionUrl!, {\n signal: controller.current.signal,\n method: 'POST',\n body: input,\n headers: {\n 'Content-Type': data ? 'application/json' : 'text/plain',\n },\n });\n\n // Check for error.\n if (!response.ok) {\n const text = await response.text();\n handleResponse({\n error: new Error(text || response.statusText || String(response.status)),\n });\n return;\n }\n\n // Check for JSON.\n const contentType = response.headers.get('content-type');\n if (contentType === 'application/json') {\n const data = await response.json();\n handleResponse({ data });\n return;\n }\n\n // Text (including streaming).\n setState('responding');\n let text = '';\n const reader = response.body!.getReader();\n const pump = async ({ done, value }: ReadableStreamReadResult<Uint8Array>): Promise<void> => {\n text = text + new TextDecoder().decode(value);\n if (!controller.current || done) {\n handleResponse({ text });\n return;\n }\n\n setResult(text);\n setTimeout(() => {\n handleScroll();\n });\n\n return reader.read().then(pump);\n };\n\n void reader\n .read()\n .then(pump)\n .catch((err) => {\n if (err.name !== 'AbortError') {\n log.catch(err);\n }\n });\n } catch (err: any) {\n if (err !== 'stop') {\n const error = err instanceof Error ? err : new Error(err);\n handleResponse({ error });\n log.catch(err);\n } else {\n handleResponse();\n }\n }\n };\n\n return (\n <div className={mx('flex flex-col bs-full overflow-hidden', classNames)}>\n {/* TODO(burdon): Replace with Thread. */}\n <MessageThread ref={scrollerRef} state={state} result={result} history={history} />\n {/* TODO(burdon): Replace with Form based on the function's input schema. */}\n <Toolbar.Root>\n <Input.Root>\n <Input.TextInput\n ref={inputRef}\n autoFocus\n placeholder={t('function request placeholder')}\n value={input}\n onChange={(ev) => setInput(ev.target.value)}\n onKeyDown={(ev) => ev.key === 'Enter' && handleRequest(input)}\n />\n </Input.Root>\n <Toolbar.IconButton\n icon='ph--play--regular'\n size={4}\n label='Execute'\n iconOnly\n onClick={() => handleRequest(input)}\n />\n <Toolbar.IconButton\n icon={state ? 'ph--stop--regular' : 'ph--trash--regular'}\n size={4}\n label={state ? 'Stop' : 'Clear'}\n iconOnly\n onClick={() => (state ? handleStop() : handleClear())}\n />\n </Toolbar.Root>\n </div>\n );\n};\n\n// TODO(burdon): Replace with thread?\n// TODO(burdon): Button to edit/re-run question.\ntype MessageThreadProps = {\n state: State | null;\n history: Message[];\n result: string;\n};\n\nconst MessageThread = forwardRef<HTMLDivElement, MessageThreadProps>(\n ({ state, history, result }: MessageThreadProps, forwardedRef) => {\n return (\n <div ref={forwardedRef} className='flex flex-col gap-6 bs-full p-2 overflow-x-hidden overflow-y-auto'>\n {history.map((message, i) => (\n <div key={i} className='grid grid-cols-[2rem_1fr_2rem]'>\n <div className='p-1'>{message.type === 'response' && <RobotAvatar />}</div>\n <div className='overflow-auto'>\n <MessageItem message={message} />\n </div>\n </div>\n ))}\n\n {result?.length > 0 && (\n <div className='grid grid-cols-[2rem_1fr_2rem]'>\n <div className='p-1'>\n {(state === 'pending' && <Icon icon='ph--spinner--regular' size={6} classNames='animate-spin' />) || (\n <Icon icon='ph--robot--regular' size={6} classNames='animate-[pulse_1s_ease-in-out_infinite]' />\n )}\n </div>\n <div className='overflow-auto'>\n <MessageItem message={{ type: 'response', text: result }} />\n </div>\n </div>\n )}\n </div>\n );\n },\n);\n\nconst MessageItem = ({ classNames, message }: ThemedClassName<{ message: Message }>) => {\n const { type, text, data, error } = message;\n const wrapper = 'p-1 pli-2 rounded-md bg-hoverSurface overflow-auto';\n return (\n <div className={mx('flex', type === 'request' ? 'ml-[1rem] justify-end' : 'mr-[1rem]', classNames)}>\n {error && <div className={mx(wrapper, 'whitespace-pre', errorText)}>{String(error)}</div>}\n\n {text !== undefined && (\n <div className={mx(wrapper, type === 'request' && 'bg-primary-400 dark:bg-primary-600')}>\n {text || '\\u00D8'}\n </div>\n )}\n\n {data && (\n <SyntaxHighlighter language='json' className={mx(wrapper, 'text-xs')}>\n {JSON.stringify(data, null, 2)}\n </SyntaxHighlighter>\n )}\n </div>\n );\n};\n\nconst RobotAvatar = () => (\n <Avatar.Root>\n <Avatar.Content size={6} variant='circle' icon='ph--robot--regular' />\n </Avatar.Root>\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type Script } from '@dxos/functions';\nimport { StackItem } from '@dxos/react-ui-stack';\n\nimport { useDeployState, useToolbarState } from '../../hooks';\n\nimport { TestPanel } from './TestPanel';\n\nexport type TestContainerProps = {\n role: string;\n script: Script.Script;\n};\n\nexport const TestContainer = ({ script }: TestContainerProps) => {\n const state = useToolbarState();\n useDeployState({ state, script });\n return (\n <StackItem.Content>\n <TestPanel functionUrl={state.functionUrl} />\n </StackItem.Content>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { lazy } from 'react';\n\nexport * from './NotebookStack';\nexport * from './Settings';\nexport * from './TestPanel';\n\nexport { DEPLOYMENT_DIALOG } from './DeploymentDialog';\n\nexport const ScriptContainer = lazy(() => import('./ScriptContainer'));\nexport const DeploymentDialog = lazy(() => import('./DeploymentDialog'));\nexport const NotebookContainer = lazy(() => import('./NotebookContainer'));\n"],
5
+ "mappings": "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",
6
+ "names": ["Octokit", "React", "useCallback", "useState", "ToolId", "SettingsAction", "createIntent", "useIntentDispatcher", "Blueprint", "Template", "Function", "getUserFunctionIdInMetadata", "getInvocationUrl", "log", "useClient", "Filter", "Ref", "getMeta", "getSpace", "useQuery", "Button", "Clipboard", "Input", "useAsyncEffect", "useControlledState", "useTranslation", "AccessToken", "kebabize", "ScriptObjectSettings", "object", "Binding", "BlueprintEditor", "Publishing", "ScriptProperties", "t", "useTranslation", "meta", "id", "Input", "Root", "Label", "TextInput", "placeholder", "value", "description", "onChange", "event", "target", "space", "getSpace", "fn", "useQuery", "Filter", "type", "Function", "source", "Ref", "make", "blueprints", "Blueprint", "creating", "setCreating", "useState", "instructions", "setInstructions", "name", "blueprintKey", "kebabize", "existingBlueprint", "find", "bp", "key", "useAsyncEffect", "load", "content", "handleSave", "useCallback", "text", "toolId", "ToolId", "tools", "includes", "db", "add", "Template", "flush", "div", "className", "h2", "default", "p", "role", "TextArea", "rows", "classNames", "Button", "disabled", "onClick", "client", "useClient", "functionId", "getUserFunctionIdInMetadata", "getMeta", "functionUrl", "getInvocationUrl", "config", "values", "runtime", "services", "edge", "url", "spaceId", "binding", "setBinding", "useControlledState", "handleBindingChange", "handleBindingBlur", "Clipboard", "IconButton", "onBlur", "dispatchPromise", "dispatch", "useIntentDispatcher", "githubToken", "AccessToken", "gistKey", "keys", "gistUrl", "setGistUrl", "token", "gistId", "undefined", "octokit", "Octokit", "auth", "response", "request", "gist_id", "data", "html_url", "err", "log", "catch", "handleOpenTokenManager", "createIntent", "SettingsAction", "Open", "plugin", "publishing", "setPublishing", "handlePublish", "filename", "files", "githubKey", "public", "push", "span", "React", "useClient", "Button", "Select", "useTranslation", "EditorInputModes", "ControlGroup", "ControlItemInput", "ControlPage", "ControlSection", "ScriptPluginSettings", "settings", "t", "useTranslation", "meta", "id", "client", "useClient", "handleAuthenticate", "identityKey", "halo", "identity", "get", "writeCredentials", "getAccessCredential", "React", "ControlPage", "ControlSection", "title", "ns", "ControlGroup", "ControlItemInput", "Button", "onClick", "Select", "Root", "value", "editorInputMode", "onValueChange", "TriggerButton", "placeholder", "Portal", "Content", "Viewport", "EditorInputModes", "map", "mode", "Option", "key", "Arrow", "React", "forwardRef", "useEffect", "useRef", "useState", "log", "Avatar", "Icon", "Input", "Toolbar", "useTranslation", "SyntaxHighlighter", "errorText", "mx", "TestPanel", "classNames", "functionUrl", "t", "useTranslation", "meta", "id", "inputRef", "useRef", "input", "setInput", "useState", "result", "setResult", "state", "setState", "history", "setHistory", "scrollerRef", "handleScroll", "current", "scrollTop", "scrollHeight", "controller", "useEffect", "handleStop", "abort", "handleClear", "focus", "handleResponse", "text", "data", "error", "type", "handleRequest", "charAt", "validJsonString", "replace", "JSON", "parse", "stringify", "err", "setTimeout", "AbortController", "response", "fetch", "signal", "method", "body", "headers", "ok", "Error", "statusText", "String", "status", "contentType", "get", "json", "reader", "getReader", "pump", "done", "value", "TextDecoder", "decode", "read", "then", "catch", "name", "log", "React", "div", "className", "mx", "MessageThread", "ref", "Toolbar", "Root", "Input", "TextInput", "autoFocus", "placeholder", "onChange", "ev", "target", "onKeyDown", "key", "IconButton", "icon", "size", "label", "iconOnly", "onClick", "forwardRef", "forwardedRef", "map", "message", "i", "RobotAvatar", "MessageItem", "length", "Icon", "wrapper", "errorText", "undefined", "SyntaxHighlighter", "language", "Avatar", "Content", "variant", "React", "StackItem", "TestContainer", "script", "state", "useToolbarState", "useDeployState", "React", "StackItem", "Content", "TestPanel", "functionUrl", "lazy", "ScriptContainer", "lazy", "DeploymentDialog", "NotebookContainer"]
7
+ }