@dxos/plugin-script 0.8.4-main.28f8d3d → 0.8.4-main.2c6827d

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 (295) hide show
  1. package/dist/lib/browser/DeploymentDialog-MZX4T77L.mjs +14 -0
  2. package/dist/lib/browser/NotebookContainer-RTESC4OV.mjs +817 -0
  3. package/dist/lib/browser/NotebookContainer-RTESC4OV.mjs.map +7 -0
  4. package/dist/lib/browser/ScriptContainer-T2BAZDJ4.mjs +147 -0
  5. package/dist/lib/browser/ScriptContainer-T2BAZDJ4.mjs.map +7 -0
  6. package/dist/lib/browser/{app-graph-builder-IABOSTBK.mjs → app-graph-builder-2WR2ATTJ.mjs} +11 -9
  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-OAVS36Q3.mjs → chunk-3IJASGG5.mjs} +23 -21
  13. package/dist/lib/browser/chunk-3IJASGG5.mjs.map +7 -0
  14. package/dist/lib/browser/chunk-4M7U2WVT.mjs +304 -0
  15. package/dist/lib/browser/chunk-4M7U2WVT.mjs.map +7 -0
  16. package/dist/lib/browser/chunk-5JSNQYZZ.mjs +517 -0
  17. package/dist/lib/browser/chunk-5JSNQYZZ.mjs.map +7 -0
  18. package/dist/lib/browser/{chunk-QYAREHGH.mjs → chunk-EB6AXFXO.mjs} +8 -5
  19. package/dist/lib/browser/chunk-EB6AXFXO.mjs.map +7 -0
  20. package/dist/lib/browser/{chunk-OULPWKXN.mjs → chunk-GAFCKEII.mjs} +178 -87
  21. package/dist/lib/browser/chunk-GAFCKEII.mjs.map +7 -0
  22. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  23. package/dist/lib/browser/chunk-LNNCD2H4.mjs +102 -0
  24. package/dist/lib/browser/chunk-LNNCD2H4.mjs.map +7 -0
  25. package/dist/lib/browser/chunk-M6KJPUJK.mjs +111 -0
  26. package/dist/lib/browser/chunk-M6KJPUJK.mjs.map +7 -0
  27. package/dist/lib/browser/{chunk-5TVBECWH.mjs → chunk-UOQ6NCH3.mjs} +2 -2
  28. package/dist/lib/browser/{compiler-RIWQVBPX.mjs → compiler-4KHRSX7J.mjs} +7 -6
  29. package/dist/lib/browser/compiler-4KHRSX7J.mjs.map +7 -0
  30. package/dist/lib/browser/index.mjs +112 -42
  31. package/dist/lib/browser/index.mjs.map +3 -3
  32. package/dist/lib/browser/{intent-resolver-SAL2TM7U.mjs → intent-resolver-AFJ575VK.mjs} +38 -23
  33. package/dist/lib/browser/intent-resolver-AFJ575VK.mjs.map +7 -0
  34. package/dist/lib/browser/meta.json +1 -1
  35. package/dist/lib/browser/{react-surface-E3SXU6ON.mjs → react-surface-QEQ3QUQA.mjs} +47 -23
  36. package/dist/lib/browser/react-surface-QEQ3QUQA.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-SVD3A3D6.mjs +818 -0
  44. package/dist/lib/node-esm/NotebookContainer-SVD3A3D6.mjs.map +7 -0
  45. package/dist/lib/node-esm/ScriptContainer-2CE3H3JJ.mjs +148 -0
  46. package/dist/lib/node-esm/ScriptContainer-2CE3H3JJ.mjs.map +7 -0
  47. package/dist/lib/node-esm/{app-graph-builder-CQTTAYHP.mjs → app-graph-builder-NCVLUL5R.mjs} +11 -9
  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-IQTBVH4L.mjs +518 -0
  61. package/dist/lib/node-esm/chunk-IQTBVH4L.mjs.map +7 -0
  62. package/dist/lib/node-esm/{chunk-6WMFL3JL.mjs → chunk-KJKZ4KNO.mjs} +178 -87
  63. package/dist/lib/node-esm/chunk-KJKZ4KNO.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-IO6T72KY.mjs → chunk-RIE676OW.mjs} +23 -21
  67. package/dist/lib/node-esm/chunk-RIE676OW.mjs.map +7 -0
  68. package/dist/lib/node-esm/chunk-YRTA4EHU.mjs +305 -0
  69. package/dist/lib/node-esm/chunk-YRTA4EHU.mjs.map +7 -0
  70. package/dist/lib/node-esm/{compiler-S52P5P3F.mjs → compiler-DU5NQISX.mjs} +7 -6
  71. package/dist/lib/node-esm/compiler-DU5NQISX.mjs.map +7 -0
  72. package/dist/lib/node-esm/index.mjs +112 -42
  73. package/dist/lib/node-esm/index.mjs.map +3 -3
  74. package/dist/lib/node-esm/{intent-resolver-GO53JOPL.mjs → intent-resolver-A5VVK746.mjs} +38 -23
  75. package/dist/lib/node-esm/intent-resolver-A5VVK746.mjs.map +7 -0
  76. package/dist/lib/node-esm/meta.json +1 -1
  77. package/dist/lib/node-esm/{react-surface-W3NRCS5O.mjs → react-surface-U77YT7VF.mjs} +47 -23
  78. package/dist/lib/node-esm/react-surface-U77YT7VF.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.map +1 -1
  88. package/dist/types/src/capabilities/blueprint-definition.d.ts +5 -0
  89. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -0
  90. package/dist/types/src/capabilities/compiler.d.ts +1 -1
  91. package/dist/types/src/capabilities/index.d.ts +6 -5
  92. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  93. package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
  94. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  95. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  96. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  97. package/dist/types/src/capabilities/settings.d.ts +1 -1
  98. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.d.ts +4 -4
  99. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.d.ts.map +1 -1
  100. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts +243 -13
  101. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts.map +1 -1
  102. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts +1 -1
  103. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts.map +1 -1
  104. package/dist/types/src/components/NotebookContainer.d.ts +10 -0
  105. package/dist/types/src/components/NotebookContainer.d.ts.map +1 -0
  106. package/dist/types/src/components/NotebookContainer.stories.d.ts +251 -0
  107. package/dist/types/src/components/NotebookContainer.stories.d.ts.map +1 -0
  108. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts +15 -0
  109. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts.map +1 -0
  110. package/dist/types/src/components/NotebookStack/NotebookMenu.d.ts +9 -0
  111. package/dist/types/src/components/NotebookStack/NotebookMenu.d.ts.map +1 -0
  112. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts +14 -0
  113. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts.map +1 -0
  114. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts +245 -0
  115. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts.map +1 -0
  116. package/dist/types/src/components/NotebookStack/index.d.ts +3 -0
  117. package/dist/types/src/components/NotebookStack/index.d.ts.map +1 -0
  118. package/dist/types/src/components/ScriptContainer.d.ts +4 -4
  119. package/dist/types/src/components/ScriptContainer.d.ts.map +1 -1
  120. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts +5 -6
  121. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts.map +1 -1
  122. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts +242 -10
  123. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts.map +1 -1
  124. package/dist/types/src/components/Settings/ScriptObjectSettings.d.ts +2 -2
  125. package/dist/types/src/components/Settings/ScriptObjectSettings.d.ts.map +1 -1
  126. package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts +2 -2
  127. package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts.map +1 -1
  128. package/dist/types/src/components/TestPanel/TestContainer.d.ts +2 -2
  129. package/dist/types/src/components/TestPanel/TestContainer.d.ts.map +1 -1
  130. package/dist/types/src/components/TestPanel/TestPanel.d.ts.map +1 -1
  131. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts +4 -2
  132. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts.map +1 -1
  133. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts +11 -4
  134. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts.map +1 -1
  135. package/dist/types/src/components/index.d.ts +3 -4
  136. package/dist/types/src/components/index.d.ts.map +1 -1
  137. package/dist/types/src/events.d.ts.map +1 -1
  138. package/dist/types/src/hooks/deploy.d.ts +17 -14
  139. package/dist/types/src/hooks/deploy.d.ts.map +1 -1
  140. package/dist/types/src/hooks/format.d.ts +2 -2
  141. package/dist/types/src/hooks/format.d.ts.map +1 -1
  142. package/dist/types/src/hooks/template.d.ts +4 -14
  143. package/dist/types/src/hooks/template.d.ts.map +1 -1
  144. package/dist/types/src/hooks/useCreateAndDeployScriptTemplates.d.ts.map +1 -1
  145. package/dist/types/src/index.d.ts +1 -0
  146. package/dist/types/src/index.d.ts.map +1 -1
  147. package/dist/types/src/meta.d.ts +0 -1
  148. package/dist/types/src/meta.d.ts.map +1 -1
  149. package/dist/types/src/notebook/compute-graph.d.ts +45 -0
  150. package/dist/types/src/notebook/compute-graph.d.ts.map +1 -0
  151. package/dist/types/src/notebook/compute-graph.test.d.ts +2 -0
  152. package/dist/types/src/notebook/compute-graph.test.d.ts.map +1 -0
  153. package/dist/types/src/notebook/eval.d.ts +13 -0
  154. package/dist/types/src/notebook/eval.d.ts.map +1 -0
  155. package/dist/types/src/notebook/index.d.ts +2 -0
  156. package/dist/types/src/notebook/index.d.ts.map +1 -0
  157. package/dist/types/src/notebook/vfs-parser.d.ts +74 -0
  158. package/dist/types/src/notebook/vfs-parser.d.ts.map +1 -0
  159. package/dist/types/src/notebook/vfs-parser.test.d.ts +2 -0
  160. package/dist/types/src/notebook/vfs-parser.test.d.ts.map +1 -0
  161. package/dist/types/src/templates/chess.d.ts.map +1 -1
  162. package/dist/types/src/templates/data-generator.d.ts.map +1 -1
  163. package/dist/types/src/templates/discord.d.ts.map +1 -1
  164. package/dist/types/src/templates/forex-effect.d.ts.map +1 -1
  165. package/dist/types/src/templates/forex.d.ts.map +1 -1
  166. package/dist/types/src/templates/gmail.d.ts.map +1 -1
  167. package/dist/types/src/templates/index.d.ts +43 -1
  168. package/dist/types/src/templates/index.d.ts.map +1 -1
  169. package/dist/types/src/templates/{echo.d.ts → ping.d.ts} +1 -1
  170. package/dist/types/src/templates/ping.d.ts.map +1 -0
  171. package/dist/types/src/testing/data.d.ts +3 -0
  172. package/dist/types/src/testing/data.d.ts.map +1 -0
  173. package/dist/types/src/testing/index.d.ts +2 -0
  174. package/dist/types/src/testing/index.d.ts.map +1 -0
  175. package/dist/types/src/translations.d.ts +30 -5
  176. package/dist/types/src/translations.d.ts.map +1 -1
  177. package/dist/types/src/types/Notebook.d.ts +31 -0
  178. package/dist/types/src/types/Notebook.d.ts.map +1 -0
  179. package/dist/types/src/types/actions.d.ts +54 -0
  180. package/dist/types/src/types/actions.d.ts.map +1 -0
  181. package/dist/types/src/types/index.d.ts +3 -1
  182. package/dist/types/src/types/index.d.ts.map +1 -1
  183. package/dist/types/src/types/types.d.ts +6 -0
  184. package/dist/types/src/types/types.d.ts.map +1 -0
  185. package/dist/types/src/util/deploy.d.ts +7 -7
  186. package/dist/types/src/util/deploy.d.ts.map +1 -1
  187. package/dist/types/src/util/functions.d.ts +6 -3
  188. package/dist/types/src/util/functions.d.ts.map +1 -1
  189. package/dist/types/tsconfig.tsbuildinfo +1 -1
  190. package/package.json +78 -69
  191. package/src/ScriptPlugin.tsx +96 -65
  192. package/src/capabilities/app-graph-builder.ts +10 -9
  193. package/src/capabilities/artifact-definition.ts +2 -3
  194. package/src/capabilities/blueprint-definition.ts +30 -0
  195. package/src/capabilities/compiler.ts +1 -1
  196. package/src/capabilities/index.ts +1 -0
  197. package/src/capabilities/intent-resolver.ts +20 -11
  198. package/src/capabilities/react-surface.tsx +30 -17
  199. package/src/capabilities/settings.ts +3 -3
  200. package/src/components/DeploymentDialog/DeploymentDialog.stories.tsx +39 -20
  201. package/src/components/DeploymentDialog/DeploymentDialog.tsx +42 -31
  202. package/src/components/FrameContainer/FrameContainer.tsx +5 -4
  203. package/src/components/NotebookContainer.stories.tsx +83 -0
  204. package/src/components/NotebookContainer.tsx +263 -0
  205. package/src/components/NotebookStack/NotebookCell.tsx +214 -0
  206. package/src/components/NotebookStack/NotebookMenu.tsx +47 -0
  207. package/src/components/NotebookStack/NotebookStack.stories.tsx +54 -0
  208. package/src/components/NotebookStack/NotebookStack.tsx +86 -0
  209. package/src/components/NotebookStack/index.ts +6 -0
  210. package/src/components/ScriptContainer.tsx +5 -5
  211. package/src/components/ScriptToolbar/ScriptToolbar.stories.tsx +34 -18
  212. package/src/components/ScriptToolbar/ScriptToolbar.tsx +37 -30
  213. package/src/components/Settings/ScriptObjectSettings.tsx +126 -35
  214. package/src/components/Settings/ScriptPluginSettings.tsx +37 -47
  215. package/src/components/TestPanel/TestContainer.tsx +2 -2
  216. package/src/components/TestPanel/TestPanel.tsx +42 -19
  217. package/src/components/TypescriptEditor/TypescriptEditor.stories.tsx +74 -27
  218. package/src/components/TypescriptEditor/TypescriptEditor.tsx +36 -35
  219. package/src/components/index.ts +3 -0
  220. package/src/events.ts +2 -2
  221. package/src/hooks/deploy.ts +22 -23
  222. package/src/hooks/format.ts +4 -4
  223. package/src/hooks/template.ts +6 -15
  224. package/src/hooks/useCreateAndDeployScriptTemplates.ts +10 -6
  225. package/src/index.ts +1 -0
  226. package/src/meta.ts +7 -5
  227. package/src/notebook/compute-graph.test.ts +70 -0
  228. package/src/notebook/compute-graph.ts +206 -0
  229. package/src/notebook/eval.ts +105 -0
  230. package/src/notebook/index.ts +5 -0
  231. package/src/notebook/vfs-parser.test.ts +149 -0
  232. package/src/notebook/vfs-parser.ts +451 -0
  233. package/src/templates/chess.ts +2 -0
  234. package/src/templates/data-generator.ts +2 -0
  235. package/src/templates/discord.ts +11 -3
  236. package/src/templates/forex-effect.ts +6 -2
  237. package/src/templates/forex.ts +2 -0
  238. package/src/templates/gmail.ts +32 -62
  239. package/src/templates/index.ts +6 -6
  240. package/src/testing/data.ts +72 -0
  241. package/src/testing/index.ts +5 -0
  242. package/src/translations.ts +33 -7
  243. package/src/types/Notebook.ts +41 -0
  244. package/src/types/actions.ts +53 -0
  245. package/src/types/index.ts +3 -1
  246. package/src/types/types.ts +15 -0
  247. package/src/util/deploy.ts +29 -46
  248. package/src/util/functions.ts +37 -7
  249. package/dist/lib/browser/DeploymentDialog-C3XH2Z56.mjs +0 -12
  250. package/dist/lib/browser/ScriptContainer-FUBR4OZE.mjs +0 -263
  251. package/dist/lib/browser/ScriptContainer-FUBR4OZE.mjs.map +0 -7
  252. package/dist/lib/browser/app-graph-builder-IABOSTBK.mjs.map +0 -7
  253. package/dist/lib/browser/chunk-G4A2MGAL.mjs +0 -88
  254. package/dist/lib/browser/chunk-G4A2MGAL.mjs.map +0 -7
  255. package/dist/lib/browser/chunk-IS4OG2UW.mjs +0 -39
  256. package/dist/lib/browser/chunk-IS4OG2UW.mjs.map +0 -7
  257. package/dist/lib/browser/chunk-MWZDJNCQ.mjs +0 -283
  258. package/dist/lib/browser/chunk-MWZDJNCQ.mjs.map +0 -7
  259. package/dist/lib/browser/chunk-OAVS36Q3.mjs.map +0 -7
  260. package/dist/lib/browser/chunk-OULPWKXN.mjs.map +0 -7
  261. package/dist/lib/browser/chunk-QYAREHGH.mjs.map +0 -7
  262. package/dist/lib/browser/chunk-SUOLJH55.mjs +0 -233
  263. package/dist/lib/browser/chunk-SUOLJH55.mjs.map +0 -7
  264. package/dist/lib/browser/compiler-RIWQVBPX.mjs.map +0 -7
  265. package/dist/lib/browser/intent-resolver-SAL2TM7U.mjs.map +0 -7
  266. package/dist/lib/browser/react-surface-E3SXU6ON.mjs.map +0 -7
  267. package/dist/lib/browser/settings-KCTBK5TY.mjs.map +0 -7
  268. package/dist/lib/node-esm/DeploymentDialog-O2XZVRLU.mjs +0 -13
  269. package/dist/lib/node-esm/ScriptContainer-VJ75TM24.mjs +0 -264
  270. package/dist/lib/node-esm/ScriptContainer-VJ75TM24.mjs.map +0 -7
  271. package/dist/lib/node-esm/app-graph-builder-CQTTAYHP.mjs.map +0 -7
  272. package/dist/lib/node-esm/chunk-3BBEM2U7.mjs +0 -90
  273. package/dist/lib/node-esm/chunk-3BBEM2U7.mjs.map +0 -7
  274. package/dist/lib/node-esm/chunk-6WMFL3JL.mjs.map +0 -7
  275. package/dist/lib/node-esm/chunk-7L4JDSXJ.mjs +0 -284
  276. package/dist/lib/node-esm/chunk-7L4JDSXJ.mjs.map +0 -7
  277. package/dist/lib/node-esm/chunk-AHXJ6NQU.mjs.map +0 -7
  278. package/dist/lib/node-esm/chunk-IO6T72KY.mjs.map +0 -7
  279. package/dist/lib/node-esm/chunk-JIPFLBYA.mjs +0 -40
  280. package/dist/lib/node-esm/chunk-JIPFLBYA.mjs.map +0 -7
  281. package/dist/lib/node-esm/chunk-PACUN7RS.mjs +0 -234
  282. package/dist/lib/node-esm/chunk-PACUN7RS.mjs.map +0 -7
  283. package/dist/lib/node-esm/compiler-S52P5P3F.mjs.map +0 -7
  284. package/dist/lib/node-esm/intent-resolver-GO53JOPL.mjs.map +0 -7
  285. package/dist/lib/node-esm/react-surface-W3NRCS5O.mjs.map +0 -7
  286. package/dist/lib/node-esm/settings-DXZ334A3.mjs.map +0 -7
  287. package/dist/types/src/templates/echo.d.ts.map +0 -1
  288. package/dist/types/src/types/schema.d.ts +0 -38
  289. package/dist/types/src/types/schema.d.ts.map +0 -1
  290. package/src/types/schema.ts +0 -37
  291. /package/dist/lib/browser/{DeploymentDialog-C3XH2Z56.mjs.map → DeploymentDialog-MZX4T77L.mjs.map} +0 -0
  292. /package/dist/lib/{node-esm/DeploymentDialog-O2XZVRLU.mjs.map → browser/chunk-J5LGTIGS.mjs.map} +0 -0
  293. /package/dist/lib/browser/{chunk-5TVBECWH.mjs.map → chunk-UOQ6NCH3.mjs.map} +0 -0
  294. /package/dist/lib/node-esm/{chunk-35M3CHYE.mjs.map → chunk-55JZVM6K.mjs.map} +0 -0
  295. /package/src/templates/{echo.ts → ping.ts} +0 -0
@@ -4,22 +4,22 @@
4
4
 
5
5
  import React, { useMemo } from 'react';
6
6
 
7
- import { type ScriptType } from '@dxos/functions';
7
+ import { type Script } from '@dxos/functions';
8
8
  import { createDocAccessor, getSpace } from '@dxos/react-client/echo';
9
9
  import { useIdentity } from '@dxos/react-client/halo';
10
10
  import { createDataExtensions, listener, stackItemContentEditorClassNames } from '@dxos/react-ui-editor';
11
11
  import { StackItem } from '@dxos/react-ui-stack';
12
12
 
13
13
  import { useDeployState, useToolbarState } from '../hooks';
14
- import { type ScriptSettingsProps } from '../types';
14
+ import { type ScriptSettings } from '../types';
15
15
 
16
16
  import { ScriptToolbar } from './ScriptToolbar';
17
17
  import { TypescriptEditor, type TypescriptEditorProps } from './TypescriptEditor';
18
18
 
19
19
  export type ScriptEditorProps = {
20
20
  role: string;
21
- script: ScriptType;
22
- settings?: ScriptSettingsProps;
21
+ script: Script.Script;
22
+ settings?: ScriptSettings;
23
23
  } & Pick<TypescriptEditorProps, 'env'>;
24
24
 
25
25
  export const ScriptContainer = ({ role, script, settings = { editorInputMode: 'vscode' }, env }: ScriptEditorProps) => {
@@ -33,7 +33,7 @@ export const ScriptContainer = ({ role, script, settings = { editorInputMode: 'v
33
33
  script.source.target
34
34
  ? [
35
35
  listener({
36
- onChange: (text) => {
36
+ onChange: ({ text }) => {
37
37
  if (script.source.target?.content !== text) {
38
38
  script.changed = true;
39
39
  }
@@ -2,30 +2,46 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import '@dxos-theme';
5
+ import { type Meta, type StoryObj } from '@storybook/react-vite';
6
6
 
7
- import { type Meta } from '@storybook/react-vite';
7
+ import { IntentPlugin } from '@dxos/app-framework';
8
+ import { withPluginManager } from '@dxos/app-framework/testing';
9
+ import { Script } from '@dxos/functions';
10
+ import { ClientPlugin } from '@dxos/plugin-client';
11
+ import { withLayout, withTheme } from '@dxos/react-ui/testing';
8
12
 
9
- import { withLayout, withTheme } from '@dxos/storybook-utils';
10
-
11
- import { templates } from '../../templates';
13
+ import { translations } from '../../translations';
12
14
 
13
15
  import { ScriptToolbar } from './ScriptToolbar';
14
16
 
15
- export const Default = {
16
- args: {
17
- binding: 'example',
18
- deployed: true,
19
- templates,
20
- onFormat: () => console.log('Format'),
21
- onTogglePanel: () => {},
22
- },
23
- };
24
-
25
- const meta: Meta = {
17
+ const meta = {
26
18
  title: 'plugins/plugin-script/Toolbar',
27
19
  component: ScriptToolbar,
28
- decorators: [withTheme, withLayout()],
29
- };
20
+ // TODO(wittjosiah): Try to write story which does not depend on plugin manager.
21
+ decorators: [
22
+ withTheme,
23
+ withLayout({ classNames: 'is-prose' }),
24
+ withPluginManager({
25
+ plugins: [IntentPlugin(), ClientPlugin({})],
26
+ }),
27
+ ],
28
+ parameters: {
29
+ layout: 'centered',
30
+ translations,
31
+ },
32
+ } satisfies Meta<typeof ScriptToolbar>;
30
33
 
31
34
  export default meta;
35
+
36
+ type Story = StoryObj<typeof meta>;
37
+
38
+ export const Default: Story = {
39
+ args: {
40
+ state: {},
41
+ script: Script.make({
42
+ name: 'test',
43
+ description: 'test',
44
+ source: 'test',
45
+ }),
46
+ },
47
+ };
@@ -2,13 +2,20 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import { Rx } from '@effect-rx/rx-react';
5
+ import { Atom } from '@effect-atom/atom-react';
6
6
  import React, { useMemo } from 'react';
7
7
 
8
- import { type ScriptType } from '@dxos/functions';
9
- import { fullyQualifiedId } from '@dxos/react-client/echo';
10
- import { ElevationProvider, type ThemedClassName, useTranslation } from '@dxos/react-ui';
11
- import { MenuProvider, ToolbarMenu, createGapSeparator, rxFromSignal, useMenuActions } from '@dxos/react-ui-menu';
8
+ import { Obj } from '@dxos/echo';
9
+ import { type Script } from '@dxos/functions';
10
+ import { ElevationProvider, useTranslation } from '@dxos/react-ui';
11
+ import {
12
+ type ActionGraphProps,
13
+ MenuProvider,
14
+ ToolbarMenu,
15
+ atomFromSignal,
16
+ createGapSeparator,
17
+ useMenuActions,
18
+ } from '@dxos/react-ui-menu';
12
19
 
13
20
  import {
14
21
  type CreateDeployOptions,
@@ -18,12 +25,33 @@ import {
18
25
  createTemplateSelect,
19
26
  useDeployDeps,
20
27
  } from '../../hooks';
21
- import { SCRIPT_PLUGIN } from '../../meta';
28
+ import { meta } from '../../meta';
29
+
30
+ export type ScriptToolbarProps = {
31
+ role?: string;
32
+ script: Script.Script;
33
+ state: ScriptToolbarState;
34
+ };
35
+
36
+ export const ScriptToolbar = ({ script, role, state }: ScriptToolbarProps) => {
37
+ const { t } = useTranslation(meta.id);
38
+ const options = useDeployDeps({ script });
39
+ const menu = useMemo(() => createToolbarActions({ state, script, t, ...options }), [state, script, options, t]);
40
+ const actions = useMenuActions(menu);
41
+
42
+ return (
43
+ <ElevationProvider elevation={role === 'section' ? 'positioned' : 'base'}>
44
+ <MenuProvider {...actions} attendableId={Obj.getDXN(script).toString()}>
45
+ <ToolbarMenu />
46
+ </MenuProvider>
47
+ </ElevationProvider>
48
+ );
49
+ };
22
50
 
23
- const createToolbar = ({ state, script, ...options }: CreateDeployOptions) =>
24
- Rx.make((get) =>
51
+ const createToolbarActions = ({ state, script, ...options }: CreateDeployOptions): Atom.Atom<ActionGraphProps> =>
52
+ Atom.make((get) =>
25
53
  get(
26
- rxFromSignal(() => {
54
+ atomFromSignal(() => {
27
55
  const templateSelect = createTemplateSelect(script);
28
56
  const format = createFormat(script);
29
57
  const gap = createGapSeparator();
@@ -35,24 +63,3 @@ const createToolbar = ({ state, script, ...options }: CreateDeployOptions) =>
35
63
  }),
36
64
  ),
37
65
  );
38
-
39
- export type ScriptToolbarProps = ThemedClassName<{
40
- role?: string;
41
- script: ScriptType;
42
- state: ScriptToolbarState;
43
- }>;
44
-
45
- export const ScriptToolbar = ({ script, role, state, classNames }: ScriptToolbarProps) => {
46
- const { t } = useTranslation(SCRIPT_PLUGIN);
47
- const options = useDeployDeps({ script });
48
- const toolbarCreator = useMemo(() => createToolbar({ state, script, t, ...options }), [state, script, options, t]);
49
- const menu = useMenuActions(toolbarCreator);
50
-
51
- return (
52
- <ElevationProvider elevation={role === 'section' ? 'positioned' : 'base'}>
53
- <MenuProvider {...menu} attendableId={fullyQualifiedId(script)}>
54
- <ToolbarMenu classNames={classNames} />
55
- </MenuProvider>
56
- </ElevationProvider>
57
- );
58
- };
@@ -3,33 +3,39 @@
3
3
  //
4
4
 
5
5
  import { Octokit } from '@octokit/core';
6
- import React, { type ChangeEvent, useCallback, useEffect, useState } from 'react';
6
+ import React, { type ChangeEvent, useCallback, useState } from 'react';
7
7
 
8
- import { SettingsAction, createIntent, useIntentDispatcher } from '@dxos/app-framework';
9
- import { FunctionType, type ScriptType, getInvocationUrl, getUserFunctionUrlInMetadata } from '@dxos/functions';
8
+ import { ToolId } from '@dxos/ai';
9
+ import { SettingsAction, createIntent } from '@dxos/app-framework';
10
+ import { useIntentDispatcher } from '@dxos/app-framework/react';
11
+ import { Blueprint, Template } from '@dxos/blueprints';
12
+ import { Function, type Script, getUserFunctionIdInMetadata } from '@dxos/functions';
13
+ import { getInvocationUrl } from '@dxos/functions-runtime';
10
14
  import { log } from '@dxos/log';
11
15
  import { useClient } from '@dxos/react-client';
12
16
  import { Filter, Ref, getMeta, getSpace, useQuery } from '@dxos/react-client/echo';
13
- import { Button, Clipboard, Input, useControlledState, useTranslation } from '@dxos/react-ui';
14
- import { DataType } from '@dxos/schema';
17
+ import { Button, Clipboard, Input, useAsyncEffect, useControlledState, useTranslation } from '@dxos/react-ui';
18
+ import { AccessToken } from '@dxos/types';
19
+ import { kebabize } from '@dxos/util';
15
20
 
16
- import { SCRIPT_PLUGIN } from '../../meta';
21
+ import { meta } from '../../meta';
17
22
 
18
23
  export type ScriptObjectSettingsProps = {
19
- object: ScriptType;
24
+ object: Script.Script;
20
25
  };
21
26
 
22
27
  export const ScriptObjectSettings = ({ object }: ScriptObjectSettingsProps) => {
23
28
  return (
24
29
  <>
25
30
  <Binding object={object} />
31
+ <BlueprintEditor object={object} />
26
32
  <Publishing object={object} />
27
33
  </>
28
34
  );
29
35
  };
30
36
 
31
37
  export const ScriptProperties = ({ object }: ScriptObjectSettingsProps) => {
32
- const { t } = useTranslation(SCRIPT_PLUGIN);
38
+ const { t } = useTranslation(meta.id);
33
39
  return (
34
40
  <Input.Root>
35
41
  <Input.Label>{t('description label')}</Input.Label>
@@ -44,16 +50,104 @@ export const ScriptProperties = ({ object }: ScriptObjectSettingsProps) => {
44
50
  );
45
51
  };
46
52
 
53
+ const BlueprintEditor = ({ object }: ScriptObjectSettingsProps) => {
54
+ const { t } = useTranslation(meta.id);
55
+ const space = getSpace(object);
56
+ const [fn] = useQuery(space, Filter.type(Function.Function, { source: Ref.make(object) }));
57
+ const blueprints = useQuery(space, Filter.type(Blueprint.Blueprint));
58
+
59
+ const [creating, setCreating] = useState(false);
60
+ const [instructions, setInstructions] = useState<string>(`You can run the script "${object.name ?? 'script'}".`);
61
+ const blueprintKey = `dxos.org/blueprint/${kebabize(object.name ?? 'script')}`;
62
+ const existingBlueprint = blueprints.find((bp) => bp.key === blueprintKey);
63
+
64
+ useAsyncEffect(async () => {
65
+ if (!existingBlueprint) {
66
+ return;
67
+ }
68
+ const source = await existingBlueprint.instructions.source.load();
69
+ setInstructions(source.content ?? '');
70
+ }, [existingBlueprint]);
71
+
72
+ const handleSave = useCallback(async () => {
73
+ if (!space) {
74
+ return;
75
+ }
76
+
77
+ setCreating(true);
78
+ try {
79
+ if (existingBlueprint) {
80
+ const text = await existingBlueprint.instructions.source.load();
81
+ text.content = instructions;
82
+ if (fn?.key) {
83
+ const toolId = ToolId.make(fn.key);
84
+ if (!existingBlueprint.tools?.includes(toolId)) {
85
+ existingBlueprint.tools = [...(existingBlueprint.tools ?? []), toolId];
86
+ }
87
+ }
88
+ } else if (fn?.key) {
89
+ space.db.add(
90
+ Blueprint.make({
91
+ key: blueprintKey,
92
+ name: object.name ?? 'Script',
93
+ instructions: Template.make({
94
+ source: instructions,
95
+ }),
96
+ tools: [ToolId.make(fn.key)],
97
+ }),
98
+ );
99
+ }
100
+ await space.db.flush();
101
+ } finally {
102
+ setCreating(false);
103
+ }
104
+ }, [space, existingBlueprint, fn, blueprintKey, object.name, instructions]);
105
+
106
+ return (
107
+ <div className='flex flex-col gap-4 mlb-cardSpacingBlock'>
108
+ <div>
109
+ <h2>{t('blueprint editor label', { default: 'Blueprint' })}</h2>
110
+ <p className='text-description text-sm'>
111
+ {t('blueprint editor description', {
112
+ default: 'Create a blueprint that exposes this script as a tool.',
113
+ })}
114
+ </p>
115
+ </div>
116
+ <Input.Root>
117
+ <div role='none' className='flex flex-col gap-1'>
118
+ <Input.Label>{t('blueprint instructions label', { default: 'Instructions' })}</Input.Label>
119
+ <Input.TextArea
120
+ placeholder={t('blueprint instructions placeholder', {
121
+ default: 'Describe how this tool should be used.',
122
+ })}
123
+ rows={6}
124
+ value={instructions}
125
+ onChange={(event) => setInstructions(event.target.value)}
126
+ classNames='resize-y'
127
+ />
128
+ </div>
129
+ </Input.Root>
130
+ <div className='flex justify-end gap-2'>
131
+ <Button disabled={(!existingBlueprint && !fn?.key) || creating} onClick={handleSave}>
132
+ {t(creating ? 'creating label' : 'create blueprint label', {
133
+ default: creating ? 'Creating…' : 'Create blueprint',
134
+ })}
135
+ </Button>
136
+ </div>
137
+ </div>
138
+ );
139
+ };
140
+
47
141
  const Binding = ({ object }: ScriptObjectSettingsProps) => {
48
- const { t } = useTranslation(SCRIPT_PLUGIN);
142
+ const { t } = useTranslation(meta.id);
49
143
  const client = useClient();
50
144
  const space = getSpace(object);
51
- const [fn] = useQuery(space, Filter.type(FunctionType, { source: Ref.make(object) }));
145
+ const [fn] = useQuery(space, Filter.type(Function.Function, { source: Ref.make(object) }));
52
146
 
53
- const functionPath = fn && getUserFunctionUrlInMetadata(getMeta(fn));
147
+ const functionId = fn && getUserFunctionIdInMetadata(getMeta(fn));
54
148
  const functionUrl =
55
- functionPath &&
56
- getInvocationUrl(functionPath, client.config.values.runtime?.services?.edge?.url ?? '', {
149
+ functionId &&
150
+ getInvocationUrl(functionId, client.config.values.runtime?.services?.edge?.url ?? '', {
57
151
  spaceId: space?.id,
58
152
  });
59
153
 
@@ -109,14 +203,14 @@ const Binding = ({ object }: ScriptObjectSettingsProps) => {
109
203
 
110
204
  // TODO(burdon): Move to separate tab?
111
205
  const Publishing = ({ object }: ScriptObjectSettingsProps) => {
112
- const { t } = useTranslation(SCRIPT_PLUGIN);
206
+ const { t } = useTranslation(meta.id);
113
207
  const { dispatchPromise: dispatch } = useIntentDispatcher();
114
208
  const space = getSpace(object);
115
- const [githubToken] = useQuery(space, Filter.type(DataType.AccessToken, { source: 'github.com' }));
209
+ const [githubToken] = useQuery(space, Filter.type(AccessToken.AccessToken, { source: 'github.com' }));
116
210
  const gistKey = getMeta(object).keys.find(({ source }) => source === 'github.com');
117
211
  const [gistUrl, setGistUrl] = useState<string | undefined>();
118
212
 
119
- useEffect(() => {
213
+ useAsyncEffect(async () => {
120
214
  const token = githubToken?.token;
121
215
  const gistId = gistKey?.id;
122
216
  if (!token || !gistId) {
@@ -124,24 +218,25 @@ const Publishing = ({ object }: ScriptObjectSettingsProps) => {
124
218
  return;
125
219
  }
126
220
 
127
- const timeout = setTimeout(async () => {
128
- try {
129
- const octokit = new Octokit({ auth: githubToken.token });
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);
136
- setGistUrl(undefined);
137
- }
138
- });
139
-
140
- return () => clearTimeout(timeout);
221
+ try {
222
+ const octokit = new Octokit({ auth: githubToken.token });
223
+ const response = await octokit.request('GET /gists/{gist_id}', {
224
+ gist_id: gistId,
225
+ });
226
+ setGistUrl(response.data.html_url);
227
+ } catch (err) {
228
+ log.catch(err);
229
+ setGistUrl(undefined);
230
+ }
141
231
  }, [githubToken, gistKey]);
142
232
 
143
233
  const handleOpenTokenManager = useCallback(
144
- () => dispatch(createIntent(SettingsAction.Open, { plugin: 'dxos.org/plugin/token-manager' })),
234
+ () =>
235
+ dispatch(
236
+ createIntent(SettingsAction.Open, {
237
+ plugin: 'dxos.org/plugin/token-manager',
238
+ }),
239
+ ),
145
240
  [],
146
241
  );
147
242
 
@@ -200,7 +295,3 @@ const Publishing = ({ object }: ScriptObjectSettingsProps) => {
200
295
  </div>
201
296
  );
202
297
  };
203
-
204
- // TODO(wittjosiah): Factor out.
205
- // From https://stackoverflow.com/a/67243723/2804332
206
- const kebabize = (str: string) => str.replace(/[A-Z]+(?![a-z])|[A-Z]/g, ($, ofs) => (ofs ? '-' : '') + $.toLowerCase());
@@ -4,68 +4,58 @@
4
4
 
5
5
  import React from 'react';
6
6
 
7
- import { type Credential } from '@dxos/protocols/proto/dxos/halo/credentials';
8
7
  import { useClient } from '@dxos/react-client';
9
8
  import { Button, Select, useTranslation } from '@dxos/react-ui';
10
9
  import { type EditorInputMode, EditorInputModes } from '@dxos/react-ui-editor';
11
- import { DeprecatedFormContainer, DeprecatedFormInput } from '@dxos/react-ui-form';
10
+ import { ControlGroup, ControlItemInput, ControlPage, ControlSection } from '@dxos/react-ui-form';
12
11
 
13
12
  import { meta } from '../../meta';
14
- import { type ScriptSettingsProps } from '../../types';
13
+ import { type ScriptSettings } from '../../types';
14
+ import { getAccessCredential } from '../../util';
15
15
 
16
- export const ScriptPluginSettings = ({ settings }: { settings: ScriptSettingsProps }) => {
16
+ export const ScriptPluginSettings = ({ settings }: { settings: ScriptSettings }) => {
17
17
  const { t } = useTranslation(meta.id);
18
18
  const client = useClient();
19
19
 
20
20
  // TODO(burdon): Check token.
21
21
  const handleAuthenticate = async () => {
22
22
  const { identityKey } = client.halo.identity.get()!;
23
- await client.halo.writeCredentials([
24
- {
25
- issuer: identityKey,
26
- issuanceDate: new Date(),
27
- subject: {
28
- id: identityKey,
29
- assertion: {
30
- '@type': 'dxos.halo.credentials.ServiceAccess',
31
- serverName: 'hub.dxos.network',
32
- serverKey: identityKey,
33
- identityKey,
34
- capabilities: ['composer:beta'],
35
- },
36
- },
37
- } satisfies Credential,
38
- ]);
23
+ await client.halo.writeCredentials([getAccessCredential(identityKey)]);
39
24
  };
40
25
 
41
26
  return (
42
- <DeprecatedFormContainer>
43
- {/* TODO(wittjosiah): Hide outside of dev environments. */}
44
- <DeprecatedFormInput label={t('authenticate action label')}>
45
- <Button onClick={handleAuthenticate}>{t('authenticate button label')}</Button>
46
- </DeprecatedFormInput>
27
+ <ControlPage>
28
+ <ControlSection title={t('settings title', { ns: meta.id })}>
29
+ <ControlGroup>
30
+ {/* TODO(wittjosiah): Hide outside of dev environments. */}
31
+ <ControlItemInput title={t('authenticate action label')}>
32
+ <Button onClick={handleAuthenticate}>{t('authenticate button label')}</Button>
33
+ </ControlItemInput>
47
34
 
48
- <DeprecatedFormInput label={t('editor input mode label')}>
49
- <Select.Root
50
- value={settings.editorInputMode ?? 'default'}
51
- onValueChange={(value) => {
52
- settings.editorInputMode = value as EditorInputMode;
53
- }}
54
- >
55
- <Select.TriggerButton placeholder={t('select editor input mode placeholder')} />
56
- <Select.Portal>
57
- <Select.Content>
58
- <Select.Viewport>
59
- {EditorInputModes.map((mode) => (
60
- <Select.Option key={mode} value={mode}>
61
- {t(`settings editor input mode ${mode} label`)}
62
- </Select.Option>
63
- ))}
64
- </Select.Viewport>
65
- </Select.Content>
66
- </Select.Portal>
67
- </Select.Root>
68
- </DeprecatedFormInput>
69
- </DeprecatedFormContainer>
35
+ <ControlItemInput title={t('editor input mode label')}>
36
+ <Select.Root
37
+ value={settings.editorInputMode ?? 'default'}
38
+ onValueChange={(value) => {
39
+ settings.editorInputMode = value as EditorInputMode;
40
+ }}
41
+ >
42
+ <Select.TriggerButton placeholder={t('select editor input mode placeholder')} />
43
+ <Select.Portal>
44
+ <Select.Content>
45
+ <Select.Viewport>
46
+ {EditorInputModes.map((mode) => (
47
+ <Select.Option key={mode} value={mode}>
48
+ {t(`settings editor input mode ${mode} label`)}
49
+ </Select.Option>
50
+ ))}
51
+ </Select.Viewport>
52
+ <Select.Arrow />
53
+ </Select.Content>
54
+ </Select.Portal>
55
+ </Select.Root>
56
+ </ControlItemInput>
57
+ </ControlGroup>
58
+ </ControlSection>
59
+ </ControlPage>
70
60
  );
71
61
  };
@@ -4,7 +4,7 @@
4
4
 
5
5
  import React from 'react';
6
6
 
7
- import { type ScriptType } from '@dxos/functions';
7
+ import { type Script } from '@dxos/functions';
8
8
  import { StackItem } from '@dxos/react-ui-stack';
9
9
 
10
10
  import { useDeployState, useToolbarState } from '../../hooks';
@@ -13,7 +13,7 @@ import { TestPanel } from './TestPanel';
13
13
 
14
14
  export type TestContainerProps = {
15
15
  role: string;
16
- script: ScriptType;
16
+ script: Script.Script;
17
17
  };
18
18
 
19
19
  export const TestContainer = ({ script }: TestContainerProps) => {