@dxos/plugin-script 0.8.4-main.67995b8 → 0.8.4-main.70d3990

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-5TKNGPVR.mjs +14 -0
  2. package/dist/lib/browser/NotebookContainer-MHY3DXDE.mjs +817 -0
  3. package/dist/lib/browser/NotebookContainer-MHY3DXDE.mjs.map +7 -0
  4. package/dist/lib/browser/ScriptContainer-CW6YN3DQ.mjs +148 -0
  5. package/dist/lib/browser/ScriptContainer-CW6YN3DQ.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-ALS6X4HU.mjs +304 -0
  13. package/dist/lib/browser/chunk-ALS6X4HU.mjs.map +7 -0
  14. package/dist/lib/browser/{chunk-QYAREHGH.mjs → chunk-EB6AXFXO.mjs} +8 -5
  15. package/dist/lib/browser/chunk-EB6AXFXO.mjs.map +7 -0
  16. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  17. package/dist/lib/browser/chunk-M6KJPUJK.mjs +111 -0
  18. package/dist/lib/browser/chunk-M6KJPUJK.mjs.map +7 -0
  19. package/dist/lib/browser/{chunk-FIM2MVNJ.mjs → chunk-N5EYLQOT.mjs} +182 -90
  20. package/dist/lib/browser/chunk-N5EYLQOT.mjs.map +7 -0
  21. package/dist/lib/browser/chunk-QIZ3BPRK.mjs +103 -0
  22. package/dist/lib/browser/chunk-QIZ3BPRK.mjs.map +7 -0
  23. package/dist/lib/browser/{chunk-P4HQKUCP.mjs → chunk-SAN5Y7FI.mjs} +23 -21
  24. package/dist/lib/browser/chunk-SAN5Y7FI.mjs.map +7 -0
  25. package/dist/lib/browser/chunk-ULJFT73Q.mjs +513 -0
  26. package/dist/lib/browser/chunk-ULJFT73Q.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 +112 -53
  31. package/dist/lib/browser/index.mjs.map +3 -3
  32. package/dist/lib/browser/{intent-resolver-S3H2SMUY.mjs → intent-resolver-TXTBWOVD.mjs} +39 -24
  33. package/dist/lib/browser/intent-resolver-TXTBWOVD.mjs.map +7 -0
  34. package/dist/lib/browser/meta.json +1 -1
  35. package/dist/lib/browser/{react-surface-FYYXZA7C.mjs → react-surface-R245YN52.mjs} +45 -21
  36. package/dist/lib/browser/react-surface-R245YN52.mjs.map +7 -0
  37. package/dist/lib/browser/{settings-KCTBK5TY.mjs → settings-MHJXRGDF.mjs} +10 -8
  38. package/dist/lib/browser/settings-MHJXRGDF.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-2ULNOZQH.mjs +15 -0
  42. package/dist/lib/node-esm/DeploymentDialog-2ULNOZQH.mjs.map +7 -0
  43. package/dist/lib/node-esm/NotebookContainer-U4C2HQ4T.mjs +818 -0
  44. package/dist/lib/node-esm/NotebookContainer-U4C2HQ4T.mjs.map +7 -0
  45. package/dist/lib/node-esm/ScriptContainer-VRPEKB4T.mjs +149 -0
  46. package/dist/lib/node-esm/ScriptContainer-VRPEKB4T.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-HDKR5WCD.mjs +113 -0
  55. package/dist/lib/node-esm/chunk-HDKR5WCD.mjs.map +7 -0
  56. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  57. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  58. package/dist/lib/node-esm/{chunk-AHXJ6NQU.mjs → chunk-IBV2DR36.mjs} +8 -5
  59. package/dist/lib/node-esm/chunk-IBV2DR36.mjs.map +7 -0
  60. package/dist/lib/node-esm/{chunk-QKK3NDHW.mjs → chunk-ND4BPYPR.mjs} +23 -21
  61. package/dist/lib/node-esm/chunk-ND4BPYPR.mjs.map +7 -0
  62. package/dist/lib/node-esm/{chunk-7NMI4CEU.mjs → chunk-UEVZP5DN.mjs} +182 -90
  63. package/dist/lib/node-esm/chunk-UEVZP5DN.mjs.map +7 -0
  64. package/dist/lib/node-esm/chunk-VJSRZRLI.mjs +514 -0
  65. package/dist/lib/node-esm/chunk-VJSRZRLI.mjs.map +7 -0
  66. package/dist/lib/node-esm/chunk-VTRMJSQL.mjs +305 -0
  67. package/dist/lib/node-esm/chunk-VTRMJSQL.mjs.map +7 -0
  68. package/dist/lib/node-esm/chunk-XYKKDWUR.mjs +104 -0
  69. package/dist/lib/node-esm/chunk-XYKKDWUR.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 +112 -53
  73. package/dist/lib/node-esm/index.mjs.map +3 -3
  74. package/dist/lib/node-esm/{intent-resolver-OHKNJFCC.mjs → intent-resolver-D6AVAQRA.mjs} +39 -24
  75. package/dist/lib/node-esm/intent-resolver-D6AVAQRA.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-MHT3PJ6C.mjs} +45 -21
  78. package/dist/lib/node-esm/react-surface-MHT3PJ6C.mjs.map +7 -0
  79. package/dist/lib/node-esm/{settings-DXZ334A3.mjs → settings-BVJORMMJ.mjs} +10 -8
  80. package/dist/lib/node-esm/settings-BVJORMMJ.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 +246 -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 +254 -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 +248 -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 +245 -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 +20 -17
  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 +32 -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 +86 -76
  196. package/src/ScriptPlugin.tsx +81 -75
  197. package/src/capabilities/app-graph-builder.ts +12 -11
  198. package/src/capabilities/artifact-definition.ts +8 -6
  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 -12
  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 +5 -4
  210. package/src/components/NotebookContainer.stories.tsx +83 -0
  211. package/src/components/NotebookContainer.tsx +260 -0
  212. package/src/components/NotebookStack/NotebookCell.tsx +216 -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 +10 -8
  218. package/src/components/ScriptToolbar/ScriptToolbar.stories.tsx +34 -17
  219. package/src/components/ScriptToolbar/ScriptToolbar.tsx +37 -30
  220. package/src/components/Settings/ScriptObjectSettings.tsx +130 -38
  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 +24 -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 +35 -7
  250. package/src/types/Notebook.ts +42 -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 +39 -8
  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-CK3BIBSI.mjs +0 -247
  261. package/dist/lib/browser/artifact-definition-CK3BIBSI.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-S3H2SMUY.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-YCBV4YX2.mjs +0 -248
  282. package/dist/lib/node-esm/artifact-definition-YCBV4YX2.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-OHKNJFCC.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-5TKNGPVR.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,37 @@
1
1
  import {
2
+ getAccessCredential,
2
3
  useDeployState,
3
4
  useToolbarState
4
- } from "./chunk-3U6DTUH3.mjs";
5
+ } from "./chunk-ULJFT73Q.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 { Filter, Obj, Ref } from "@dxos/echo";
19
+ import { Function, getUserFunctionIdInMetadata } from "@dxos/functions";
20
+ import { getInvocationUrl } from "@dxos/functions-runtime";
16
21
  import { log } from "@dxos/log";
17
22
  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";
23
+ import { getSpace, useQuery } from "@dxos/react-client/echo";
24
+ import { Button, Clipboard, Input, useAsyncEffect, useControlledState, useTranslation } from "@dxos/react-ui";
25
+ import { AccessToken } from "@dxos/types";
26
+ import { kebabize } from "@dxos/util";
21
27
  var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-script/src/components/Settings/ScriptObjectSettings.tsx";
22
28
  var ScriptObjectSettings = ({ object }) => {
23
29
  var _effect = _useSignals();
24
30
  try {
25
31
  return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Binding, {
26
32
  object
33
+ }), /* @__PURE__ */ React.createElement(BlueprintEditor, {
34
+ object
27
35
  }), /* @__PURE__ */ React.createElement(Publishing, {
28
36
  object
29
37
  }));
@@ -34,7 +42,7 @@ var ScriptObjectSettings = ({ object }) => {
34
42
  var ScriptProperties = ({ object }) => {
35
43
  var _effect = _useSignals();
36
44
  try {
37
- const { t } = useTranslation(SCRIPT_PLUGIN);
45
+ const { t } = useTranslation(meta.id);
38
46
  return /* @__PURE__ */ React.createElement(Input.Root, null, /* @__PURE__ */ React.createElement(Input.Label, null, t("description label")), /* @__PURE__ */ React.createElement(Input.TextInput, {
39
47
  placeholder: t("description placeholder"),
40
48
  value: object.description ?? "",
@@ -46,17 +54,114 @@ var ScriptProperties = ({ object }) => {
46
54
  _effect.f();
47
55
  }
48
56
  };
57
+ var BlueprintEditor = ({ object }) => {
58
+ var _effect = _useSignals();
59
+ try {
60
+ const { t } = useTranslation(meta.id);
61
+ const space = getSpace(object);
62
+ const [fn] = useQuery(space, Filter.type(Function.Function, {
63
+ source: Ref.make(object)
64
+ }));
65
+ const blueprints = useQuery(space, Filter.type(Blueprint.Blueprint));
66
+ const [creating, setCreating] = useState(false);
67
+ const [instructions, setInstructions] = useState(`You can run the script "${object.name ?? "script"}".`);
68
+ const blueprintKey = `dxos.org/blueprint/${kebabize(object.name ?? "script")}`;
69
+ const existingBlueprint = blueprints.find((bp) => bp.key === blueprintKey);
70
+ useAsyncEffect(async () => {
71
+ if (!existingBlueprint) {
72
+ return;
73
+ }
74
+ const source = await existingBlueprint.instructions.source.load();
75
+ setInstructions(source.content ?? "");
76
+ }, [
77
+ existingBlueprint
78
+ ]);
79
+ const handleSave = useCallback(async () => {
80
+ if (!space) {
81
+ return;
82
+ }
83
+ setCreating(true);
84
+ try {
85
+ if (existingBlueprint) {
86
+ const text = await existingBlueprint.instructions.source.load();
87
+ text.content = instructions;
88
+ if (fn?.key) {
89
+ const toolId = ToolId.make(fn.key);
90
+ if (!existingBlueprint.tools?.includes(toolId)) {
91
+ existingBlueprint.tools = [
92
+ ...existingBlueprint.tools ?? [],
93
+ toolId
94
+ ];
95
+ }
96
+ }
97
+ } else if (fn?.key) {
98
+ space.db.add(Blueprint.make({
99
+ key: blueprintKey,
100
+ name: object.name ?? "Script",
101
+ instructions: Template.make({
102
+ source: instructions
103
+ }),
104
+ tools: [
105
+ ToolId.make(fn.key)
106
+ ]
107
+ }));
108
+ }
109
+ await space.db.flush();
110
+ } finally {
111
+ setCreating(false);
112
+ }
113
+ }, [
114
+ space,
115
+ existingBlueprint,
116
+ fn,
117
+ blueprintKey,
118
+ object.name,
119
+ instructions
120
+ ]);
121
+ return /* @__PURE__ */ React.createElement("div", {
122
+ className: "flex flex-col gap-4 mlb-cardSpacingBlock"
123
+ }, /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("h2", null, t("blueprint editor label", {
124
+ default: "Blueprint"
125
+ })), /* @__PURE__ */ React.createElement("p", {
126
+ className: "text-description text-sm"
127
+ }, t("blueprint editor description", {
128
+ default: "Create a blueprint that exposes this script as a tool."
129
+ }))), /* @__PURE__ */ React.createElement(Input.Root, null, /* @__PURE__ */ React.createElement("div", {
130
+ role: "none",
131
+ className: "flex flex-col gap-1"
132
+ }, /* @__PURE__ */ React.createElement(Input.Label, null, t("blueprint instructions label", {
133
+ default: "Instructions"
134
+ })), /* @__PURE__ */ React.createElement(Input.TextArea, {
135
+ placeholder: t("blueprint instructions placeholder", {
136
+ default: "Describe how this tool should be used."
137
+ }),
138
+ rows: 6,
139
+ value: instructions,
140
+ onChange: (event) => setInstructions(event.target.value),
141
+ classNames: "resize-y"
142
+ }))), /* @__PURE__ */ React.createElement("div", {
143
+ className: "flex justify-end gap-2"
144
+ }, /* @__PURE__ */ React.createElement(Button, {
145
+ disabled: !existingBlueprint && !fn?.key || creating,
146
+ onClick: handleSave
147
+ }, t(creating ? "creating label" : "create blueprint label", {
148
+ default: creating ? "Creating\u2026" : "Create blueprint"
149
+ }))));
150
+ } finally {
151
+ _effect.f();
152
+ }
153
+ };
49
154
  var Binding = ({ object }) => {
50
155
  var _effect = _useSignals();
51
156
  try {
52
- const { t } = useTranslation(SCRIPT_PLUGIN);
157
+ const { t } = useTranslation(meta.id);
53
158
  const client = useClient();
54
159
  const space = getSpace(object);
55
- const [fn] = useQuery(space, Filter.type(FunctionType, {
160
+ const [fn] = useQuery(space, Filter.type(Function.Function, {
56
161
  source: Ref.make(object)
57
162
  }));
58
- const functionPath = fn && getUserFunctionUrlInMetadata(getMeta(fn));
59
- const functionUrl = functionPath && getInvocationUrl(functionPath, client.config.values.runtime?.services?.edge?.url ?? "", {
163
+ const functionId = fn && getUserFunctionIdInMetadata(Obj.getMeta(fn));
164
+ const functionUrl = functionId && getInvocationUrl(functionId, client.config.values.runtime?.services?.edge?.url ?? "", {
60
165
  spaceId: space?.id
61
166
  });
62
167
  const [binding, setBinding] = useControlledState(fn?.binding ?? "");
@@ -107,41 +212,38 @@ var Binding = ({ object }) => {
107
212
  var Publishing = ({ object }) => {
108
213
  var _effect = _useSignals();
109
214
  try {
110
- const { t } = useTranslation(SCRIPT_PLUGIN);
215
+ const { t } = useTranslation(meta.id);
111
216
  const { dispatchPromise: dispatch } = useIntentDispatcher();
112
217
  const space = getSpace(object);
113
- const [githubToken] = useQuery(space, Filter.type(DataType.AccessToken, {
218
+ const [githubToken] = useQuery(space, Filter.type(AccessToken.AccessToken, {
114
219
  source: "github.com"
115
220
  }));
116
- const gistKey = getMeta(object).keys.find(({ source }) => source === "github.com");
221
+ const gistKey = Obj.getMeta(object).keys.find(({ source }) => source === "github.com");
117
222
  const [gistUrl, setGistUrl] = useState();
118
- useEffect(() => {
223
+ useAsyncEffect(async () => {
119
224
  const token = githubToken?.token;
120
225
  const gistId = gistKey?.id;
121
226
  if (!token || !gistId) {
122
227
  setGistUrl(void 0);
123
228
  return;
124
229
  }
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);
230
+ try {
231
+ const octokit = new Octokit({
232
+ auth: githubToken.token
233
+ });
234
+ const response = await octokit.request("GET /gists/{gist_id}", {
235
+ gist_id: gistId
236
+ });
237
+ setGistUrl(response.data.html_url);
238
+ } catch (err) {
239
+ log.catch(err, void 0, {
240
+ F: __dxlog_file,
241
+ L: 229,
242
+ S: void 0,
243
+ C: (f, a) => f(...a)
244
+ });
245
+ setGistUrl(void 0);
246
+ }
145
247
  }, [
146
248
  githubToken,
147
249
  gistKey
@@ -163,7 +265,7 @@ var Publishing = ({ object }) => {
163
265
  }
164
266
  };
165
267
  try {
166
- const meta2 = getMeta(object);
268
+ const meta2 = Obj.getMeta(object);
167
269
  const githubKey = meta2.keys.find(({ source: source2 }) => source2 === "github.com");
168
270
  const gistId = githubKey?.id;
169
271
  if (gistId) {
@@ -210,7 +312,6 @@ var Publishing = ({ object }) => {
210
312
  _effect.f();
211
313
  }
212
314
  };
213
- var kebabize = (str) => str.replace(/[A-Z]+(?![a-z])|[A-Z]/g, ($, ofs) => (ofs ? "-" : "") + $.toLowerCase());
214
315
 
215
316
  // src/components/Settings/ScriptPluginSettings.tsx
216
317
  import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
@@ -218,7 +319,7 @@ import React2 from "react";
218
319
  import { useClient as useClient2 } from "@dxos/react-client";
219
320
  import { Button as Button2, Select, useTranslation as useTranslation2 } from "@dxos/react-ui";
220
321
  import { EditorInputModes } from "@dxos/react-ui-editor";
221
- import { DeprecatedFormContainer, DeprecatedFormInput } from "@dxos/react-ui-form";
322
+ import { ControlGroup, ControlItemInput, ControlPage, ControlSection } from "@dxos/react-ui-form";
222
323
  var ScriptPluginSettings = ({ settings }) => {
223
324
  var _effect = _useSignals2();
224
325
  try {
@@ -227,30 +328,19 @@ var ScriptPluginSettings = ({ settings }) => {
227
328
  const handleAuthenticate = async () => {
228
329
  const { identityKey } = client.halo.identity.get();
229
330
  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
- }
331
+ getAccessCredential(identityKey)
246
332
  ]);
247
333
  };
248
- return /* @__PURE__ */ React2.createElement(DeprecatedFormContainer, null, /* @__PURE__ */ React2.createElement(DeprecatedFormInput, {
249
- label: t("authenticate action label")
334
+ return /* @__PURE__ */ React2.createElement(ControlPage, null, /* @__PURE__ */ React2.createElement(ControlSection, {
335
+ title: t("settings title", {
336
+ ns: meta.id
337
+ })
338
+ }, /* @__PURE__ */ React2.createElement(ControlGroup, null, /* @__PURE__ */ React2.createElement(ControlItemInput, {
339
+ title: t("authenticate action label")
250
340
  }, /* @__PURE__ */ React2.createElement(Button2, {
251
341
  onClick: handleAuthenticate
252
- }, t("authenticate button label"))), /* @__PURE__ */ React2.createElement(DeprecatedFormInput, {
253
- label: t("editor input mode label")
342
+ }, t("authenticate button label"))), /* @__PURE__ */ React2.createElement(ControlItemInput, {
343
+ title: t("editor input mode label")
254
344
  }, /* @__PURE__ */ React2.createElement(Select.Root, {
255
345
  value: settings.editorInputMode ?? "default",
256
346
  onValueChange: (value) => {
@@ -261,7 +351,7 @@ var ScriptPluginSettings = ({ settings }) => {
261
351
  }), /* @__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
352
  key: mode,
263
353
  value: mode
264
- }, t(`settings editor input mode ${mode} label`)))))))));
354
+ }, t(`settings editor input mode ${mode} label`)))), /* @__PURE__ */ React2.createElement(Select.Arrow, null))))))));
265
355
  } finally {
266
356
  _effect.f();
267
357
  }
@@ -269,7 +359,7 @@ var ScriptPluginSettings = ({ settings }) => {
269
359
 
270
360
  // src/components/TestPanel/TestPanel.tsx
271
361
  import { useSignals as _useSignals3 } from "@preact-signals/safe-react/tracking";
272
- import React3, { forwardRef, useEffect as useEffect2, useRef, useState as useState2 } from "react";
362
+ import React3, { forwardRef, useEffect, useRef, useState as useState2 } from "react";
273
363
  import { log as log2 } from "@dxos/log";
274
364
  import { Avatar, Icon, Input as Input2, Toolbar, useTranslation as useTranslation3 } from "@dxos/react-ui";
275
365
  import { SyntaxHighlighter } from "@dxos/react-ui-syntax-highlighter";
@@ -278,7 +368,7 @@ var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-script/src/component
278
368
  var TestPanel = ({ classNames, functionUrl }) => {
279
369
  var _effect = _useSignals3();
280
370
  try {
281
- const { t } = useTranslation3(SCRIPT_PLUGIN);
371
+ const { t } = useTranslation3(meta.id);
282
372
  const inputRef = useRef(null);
283
373
  const [input, setInput] = useState2("");
284
374
  const [result, setResult] = useState2("");
@@ -290,15 +380,15 @@ var TestPanel = ({ classNames, functionUrl }) => {
290
380
  scrollerRef.current.scrollTop = scrollerRef.current.scrollHeight;
291
381
  }
292
382
  };
293
- const controller = useRef();
294
- useEffect2(() => {
383
+ const controller = useRef(null);
384
+ useEffect(() => {
295
385
  return () => {
296
386
  handleStop();
297
387
  };
298
388
  }, []);
299
389
  const handleStop = () => {
300
390
  controller.current?.abort("stop");
301
- controller.current = void 0;
391
+ controller.current = null;
302
392
  };
303
393
  const handleClear = () => {
304
394
  handleStop();
@@ -308,7 +398,7 @@ var TestPanel = ({ classNames, functionUrl }) => {
308
398
  inputRef.current?.focus();
309
399
  };
310
400
  const handleResponse = ({ text, data, error } = {}) => {
311
- controller.current = void 0;
401
+ controller.current = null;
312
402
  setHistory((history2) => [
313
403
  ...history2,
314
404
  {
@@ -393,7 +483,7 @@ var TestPanel = ({ classNames, functionUrl }) => {
393
483
  if (err.name !== "AbortError") {
394
484
  log2.catch(err, void 0, {
395
485
  F: __dxlog_file2,
396
- L: 147,
486
+ L: 162,
397
487
  S: void 0,
398
488
  C: (f, a) => f(...a)
399
489
  });
@@ -407,7 +497,7 @@ var TestPanel = ({ classNames, functionUrl }) => {
407
497
  });
408
498
  log2.catch(err, void 0, {
409
499
  F: __dxlog_file2,
410
- L: 154,
500
+ L: 169,
411
501
  S: void 0,
412
502
  C: (f, a) => f(...a)
413
503
  });
@@ -417,32 +507,32 @@ var TestPanel = ({ classNames, functionUrl }) => {
417
507
  }
418
508
  };
419
509
  return /* @__PURE__ */ React3.createElement("div", {
420
- className: mx("flex flex-col h-full overflow-hidden", classNames)
510
+ className: mx("flex flex-col bs-full overflow-hidden", classNames)
421
511
  }, /* @__PURE__ */ React3.createElement(MessageThread, {
422
512
  ref: scrollerRef,
423
513
  state,
424
514
  result,
425
515
  history
426
- }), /* @__PURE__ */ React3.createElement(Toolbar.Root, {
427
- classNames: "p-2"
428
- }, /* @__PURE__ */ React3.createElement(Input2.Root, null, /* @__PURE__ */ React3.createElement(Input2.TextInput, {
516
+ }), /* @__PURE__ */ React3.createElement(Toolbar.Root, null, /* @__PURE__ */ React3.createElement(Input2.Root, null, /* @__PURE__ */ React3.createElement(Input2.TextInput, {
429
517
  ref: inputRef,
430
518
  autoFocus: true,
431
519
  placeholder: t("function request placeholder"),
432
520
  value: input,
433
521
  onChange: (ev) => setInput(ev.target.value),
434
522
  onKeyDown: (ev) => ev.key === "Enter" && handleRequest(input)
435
- })), /* @__PURE__ */ React3.createElement(Toolbar.Button, {
436
- onClick: () => handleRequest(input)
437
- }, /* @__PURE__ */ React3.createElement(Icon, {
523
+ })), /* @__PURE__ */ React3.createElement(Toolbar.IconButton, {
438
524
  icon: "ph--play--regular",
439
- size: 4
440
- })), /* @__PURE__ */ React3.createElement(Toolbar.Button, {
441
- onClick: () => state ? handleStop() : handleClear()
442
- }, /* @__PURE__ */ React3.createElement(Icon, {
525
+ size: 4,
526
+ label: "Execute",
527
+ iconOnly: true,
528
+ onClick: () => handleRequest(input)
529
+ }), /* @__PURE__ */ React3.createElement(Toolbar.IconButton, {
443
530
  icon: state ? "ph--stop--regular" : "ph--trash--regular",
444
- size: 4
445
- }))));
531
+ size: 4,
532
+ label: state ? "Stop" : "Clear",
533
+ iconOnly: true,
534
+ onClick: () => state ? handleStop() : handleClear()
535
+ })));
446
536
  } finally {
447
537
  _effect.f();
448
538
  }
@@ -452,7 +542,7 @@ var MessageThread = /* @__PURE__ */ forwardRef(({ state, history, result }, forw
452
542
  try {
453
543
  return /* @__PURE__ */ React3.createElement("div", {
454
544
  ref: forwardedRef,
455
- className: "flex flex-col gap-6 h-full p-2 overflow-x-hidden overflow-y-auto"
545
+ className: "flex flex-col gap-6 bs-full p-2 overflow-x-hidden overflow-y-auto"
456
546
  }, history.map((message, i) => /* @__PURE__ */ React3.createElement("div", {
457
547
  key: i,
458
548
  className: "grid grid-cols-[2rem_1fr_2rem]"
@@ -490,7 +580,7 @@ var MessageItem = ({ classNames, message }) => {
490
580
  var _effect = _useSignals3();
491
581
  try {
492
582
  const { type, text, data, error } = message;
493
- const wrapper = "p-1 px-2 rounded-md bg-hoverSurface overflow-auto";
583
+ const wrapper = "p-1 pli-2 rounded-md bg-hoverSurface overflow-auto";
494
584
  return /* @__PURE__ */ React3.createElement("div", {
495
585
  className: mx("flex", type === "request" ? "ml-[1rem] justify-end" : "mr-[1rem]", classNames)
496
586
  }, error && /* @__PURE__ */ React3.createElement("div", {
@@ -499,7 +589,7 @@ var MessageItem = ({ classNames, message }) => {
499
589
  className: mx(wrapper, type === "request" && "bg-primary-400 dark:bg-primary-600")
500
590
  }, text || "\xD8"), data && /* @__PURE__ */ React3.createElement(SyntaxHighlighter, {
501
591
  language: "json",
502
- className: mx(wrapper, "px-8 py-2 text-xs")
592
+ className: mx(wrapper, "text-xs")
503
593
  }, JSON.stringify(data, null, 2)));
504
594
  } finally {
505
595
  _effect.f();
@@ -540,8 +630,9 @@ var TestContainer = ({ script }) => {
540
630
 
541
631
  // src/components/index.ts
542
632
  import { lazy } from "react";
543
- var ScriptContainer = lazy(() => import("./ScriptContainer-Z6SIGRRC.mjs"));
544
- var DeploymentDialog = lazy(() => import("./DeploymentDialog-M4QIHTDR.mjs"));
633
+ var ScriptContainer = lazy(() => import("./ScriptContainer-CW6YN3DQ.mjs"));
634
+ var DeploymentDialog = lazy(() => import("./DeploymentDialog-5TKNGPVR.mjs"));
635
+ var NotebookContainer = lazy(() => import("./NotebookContainer-MHY3DXDE.mjs"));
545
636
 
546
637
  export {
547
638
  ScriptObjectSettings,
@@ -550,6 +641,7 @@ export {
550
641
  TestPanel,
551
642
  TestContainer,
552
643
  ScriptContainer,
553
- DeploymentDialog
644
+ DeploymentDialog,
645
+ NotebookContainer
554
646
  };
555
- //# sourceMappingURL=chunk-FIM2MVNJ.mjs.map
647
+ //# sourceMappingURL=chunk-N5EYLQOT.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 { Filter, Obj, Ref } from '@dxos/echo';\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 { 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(Obj.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 = Obj.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 = Obj.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", "Filter", "Obj", "Ref", "Function", "getUserFunctionIdInMetadata", "getInvocationUrl", "log", "useClient", "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", "Obj", "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
+ }