@dxos/plugin-script 0.8.3 → 0.8.4-main.1068cf700f

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 (465) hide show
  1. package/dist/lib/browser/DeploymentDialog-XUAFCNI7.mjs +14 -0
  2. package/dist/lib/browser/NotebookContainer-UQ4I24R6.mjs +845 -0
  3. package/dist/lib/browser/NotebookContainer-UQ4I24R6.mjs.map +7 -0
  4. package/dist/lib/browser/ScriptContainer-NB76645V.mjs +149 -0
  5. package/dist/lib/browser/ScriptContainer-NB76645V.mjs.map +7 -0
  6. package/dist/lib/browser/app-graph-builder-66ZDI72K.mjs +69 -0
  7. package/dist/lib/browser/app-graph-builder-66ZDI72K.mjs.map +7 -0
  8. package/dist/lib/browser/blueprint-definition-5RFKE7VK.mjs +18 -0
  9. package/dist/lib/browser/blueprint-definition-5RFKE7VK.mjs.map +7 -0
  10. package/dist/lib/browser/blueprints/index.mjs +8 -0
  11. package/dist/lib/browser/chunk-3BSF5BIA.mjs +113 -0
  12. package/dist/lib/browser/chunk-3BSF5BIA.mjs.map +7 -0
  13. package/dist/lib/browser/chunk-4N5TLXEJ.mjs +105 -0
  14. package/dist/lib/browser/chunk-4N5TLXEJ.mjs.map +7 -0
  15. package/dist/lib/browser/chunk-BKGEAUUH.mjs +270 -0
  16. package/dist/lib/browser/chunk-BKGEAUUH.mjs.map +7 -0
  17. package/dist/lib/browser/chunk-BU6CGVU2.mjs +137 -0
  18. package/dist/lib/browser/chunk-BU6CGVU2.mjs.map +7 -0
  19. package/dist/lib/browser/chunk-F3QKSKSF.mjs +35 -0
  20. package/dist/lib/browser/chunk-F3QKSKSF.mjs.map +7 -0
  21. package/dist/lib/browser/chunk-I7CSE6T3.mjs +110 -0
  22. package/dist/lib/browser/chunk-I7CSE6T3.mjs.map +7 -0
  23. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  24. package/dist/lib/browser/chunk-LYMPME7J.mjs +609 -0
  25. package/dist/lib/browser/chunk-LYMPME7J.mjs.map +7 -0
  26. package/dist/lib/browser/chunk-WWCDIB6Z.mjs +557 -0
  27. package/dist/lib/browser/chunk-WWCDIB6Z.mjs.map +7 -0
  28. package/dist/lib/browser/{chunk-6ZHHWU6S.mjs → chunk-WYR4QHPE.mjs} +9 -6
  29. package/dist/lib/browser/chunk-WYR4QHPE.mjs.map +7 -0
  30. package/dist/lib/browser/compiler-VPUVTFQD.mjs +161 -0
  31. package/dist/lib/browser/compiler-VPUVTFQD.mjs.map +7 -0
  32. package/dist/lib/browser/index.mjs +147 -109
  33. package/dist/lib/browser/index.mjs.map +4 -4
  34. package/dist/lib/browser/meta.json +1 -1
  35. package/dist/lib/browser/operation-resolver-NYDY7GDT.mjs +83 -0
  36. package/dist/lib/browser/operation-resolver-NYDY7GDT.mjs.map +7 -0
  37. package/dist/lib/browser/react-surface-FYOQSC6S.mjs +140 -0
  38. package/dist/lib/browser/react-surface-FYOQSC6S.mjs.map +7 -0
  39. package/dist/lib/browser/settings-5SF77MRH.mjs +36 -0
  40. package/dist/lib/browser/settings-5SF77MRH.mjs.map +7 -0
  41. package/dist/lib/browser/templates/index.mjs +10 -0
  42. package/dist/lib/browser/types/index.mjs +18 -0
  43. package/dist/lib/browser/types/index.mjs.map +7 -0
  44. package/dist/lib/node-esm/DeploymentDialog-GGWDQMEB.mjs +15 -0
  45. package/dist/lib/node-esm/DeploymentDialog-GGWDQMEB.mjs.map +7 -0
  46. package/dist/lib/node-esm/NotebookContainer-DQGZ6QHI.mjs +846 -0
  47. package/dist/lib/node-esm/NotebookContainer-DQGZ6QHI.mjs.map +7 -0
  48. package/dist/lib/node-esm/ScriptContainer-PCNJFUWX.mjs +150 -0
  49. package/dist/lib/node-esm/ScriptContainer-PCNJFUWX.mjs.map +7 -0
  50. package/dist/lib/node-esm/app-graph-builder-IGAZTJ45.mjs +70 -0
  51. package/dist/lib/node-esm/app-graph-builder-IGAZTJ45.mjs.map +7 -0
  52. package/dist/lib/node-esm/blueprint-definition-EYL5GNDC.mjs +19 -0
  53. package/dist/lib/node-esm/blueprint-definition-EYL5GNDC.mjs.map +7 -0
  54. package/dist/lib/node-esm/blueprints/index.mjs +9 -0
  55. package/dist/lib/node-esm/blueprints/index.mjs.map +7 -0
  56. package/dist/lib/node-esm/chunk-3CKQUF55.mjs +610 -0
  57. package/dist/lib/node-esm/chunk-3CKQUF55.mjs.map +7 -0
  58. package/dist/lib/node-esm/chunk-3QBXN6QC.mjs +271 -0
  59. package/dist/lib/node-esm/chunk-3QBXN6QC.mjs.map +7 -0
  60. package/dist/lib/node-esm/{chunk-AEB5TPEW.mjs → chunk-5HSJPAK7.mjs} +9 -6
  61. package/dist/lib/node-esm/chunk-5HSJPAK7.mjs.map +7 -0
  62. package/dist/lib/node-esm/chunk-ECRSTVR6.mjs +558 -0
  63. package/dist/lib/node-esm/chunk-ECRSTVR6.mjs.map +7 -0
  64. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  65. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  66. package/dist/lib/node-esm/chunk-KRVL7UYI.mjs +114 -0
  67. package/dist/lib/node-esm/chunk-KRVL7UYI.mjs.map +7 -0
  68. package/dist/lib/node-esm/chunk-SLU3KRV3.mjs +112 -0
  69. package/dist/lib/node-esm/chunk-SLU3KRV3.mjs.map +7 -0
  70. package/dist/lib/node-esm/chunk-U6PXM2HT.mjs +138 -0
  71. package/dist/lib/node-esm/chunk-U6PXM2HT.mjs.map +7 -0
  72. package/dist/lib/node-esm/chunk-V37R7KB5.mjs +107 -0
  73. package/dist/lib/node-esm/chunk-V37R7KB5.mjs.map +7 -0
  74. package/dist/lib/node-esm/chunk-Y3G5NCTP.mjs +36 -0
  75. package/dist/lib/node-esm/chunk-Y3G5NCTP.mjs.map +7 -0
  76. package/dist/lib/node-esm/compiler-WUOSY6MS.mjs +162 -0
  77. package/dist/lib/node-esm/compiler-WUOSY6MS.mjs.map +7 -0
  78. package/dist/lib/node-esm/index.mjs +147 -109
  79. package/dist/lib/node-esm/index.mjs.map +4 -4
  80. package/dist/lib/node-esm/meta.json +1 -1
  81. package/dist/lib/node-esm/operation-resolver-AJNJXGCE.mjs +84 -0
  82. package/dist/lib/node-esm/operation-resolver-AJNJXGCE.mjs.map +7 -0
  83. package/dist/lib/node-esm/react-surface-LREMOVNJ.mjs +141 -0
  84. package/dist/lib/node-esm/react-surface-LREMOVNJ.mjs.map +7 -0
  85. package/dist/lib/node-esm/settings-ILI762CY.mjs +37 -0
  86. package/dist/lib/node-esm/settings-ILI762CY.mjs.map +7 -0
  87. package/dist/lib/node-esm/templates/index.mjs +11 -0
  88. package/dist/lib/node-esm/templates/index.mjs.map +7 -0
  89. package/dist/lib/node-esm/types/index.mjs +19 -0
  90. package/dist/lib/node-esm/types/index.mjs.map +7 -0
  91. package/dist/types/src/ScriptPlugin.d.ts +2 -1
  92. package/dist/types/src/ScriptPlugin.d.ts.map +1 -1
  93. package/dist/types/src/blueprints/index.d.ts +2 -0
  94. package/dist/types/src/blueprints/index.d.ts.map +1 -0
  95. package/dist/types/src/blueprints/script-blueprint.d.ts +22 -0
  96. package/dist/types/src/blueprints/script-blueprint.d.ts.map +1 -0
  97. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +6 -0
  98. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -0
  99. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +3 -0
  100. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +1 -0
  101. package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts +12 -0
  102. package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts.map +1 -0
  103. package/dist/types/src/capabilities/artifact-definition/index.d.ts +3 -0
  104. package/dist/types/src/capabilities/artifact-definition/index.d.ts.map +1 -0
  105. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +10 -0
  106. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +1 -0
  107. package/dist/types/src/capabilities/blueprint-definition/index.d.ts +3 -0
  108. package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +1 -0
  109. package/dist/types/src/capabilities/compiler/compiler.d.ts +6 -0
  110. package/dist/types/src/capabilities/compiler/compiler.d.ts.map +1 -0
  111. package/dist/types/src/capabilities/compiler/index.d.ts +3 -0
  112. package/dist/types/src/capabilities/compiler/index.d.ts.map +1 -0
  113. package/dist/types/src/capabilities/index.d.ts +6 -7
  114. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  115. package/dist/types/src/capabilities/operation-resolver/index.d.ts +3 -0
  116. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -0
  117. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +5 -0
  118. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -0
  119. package/dist/types/src/capabilities/react-surface/index.d.ts +3 -0
  120. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
  121. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +5 -0
  122. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
  123. package/dist/types/src/capabilities/settings/index.d.ts +7 -0
  124. package/dist/types/src/capabilities/settings/index.d.ts.map +1 -0
  125. package/dist/types/src/capabilities/settings/settings.d.ts +10 -0
  126. package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -0
  127. package/dist/types/src/compiler/compiler.d.ts +1 -1
  128. package/dist/types/src/compiler/compiler.d.ts.map +1 -1
  129. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.d.ts +4 -4
  130. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.d.ts.map +1 -1
  131. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts +244 -13
  132. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts.map +1 -1
  133. package/dist/types/src/components/DeploymentDialog/index.d.ts +1 -1
  134. package/dist/types/src/components/DeploymentDialog/index.d.ts.map +1 -1
  135. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts +1 -1
  136. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts.map +1 -1
  137. package/dist/types/src/components/NotebookContainer.d.ts +8 -0
  138. package/dist/types/src/components/NotebookContainer.d.ts.map +1 -0
  139. package/dist/types/src/components/NotebookContainer.stories.d.ts +7 -0
  140. package/dist/types/src/components/NotebookContainer.stories.d.ts.map +1 -0
  141. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts +15 -0
  142. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts.map +1 -0
  143. package/dist/types/src/components/NotebookStack/NotebookMenu.d.ts +9 -0
  144. package/dist/types/src/components/NotebookStack/NotebookMenu.d.ts.map +1 -0
  145. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts +14 -0
  146. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts.map +1 -0
  147. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts +249 -0
  148. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts.map +1 -0
  149. package/dist/types/src/components/NotebookStack/index.d.ts +3 -0
  150. package/dist/types/src/components/NotebookStack/index.d.ts.map +1 -0
  151. package/dist/types/src/components/QueryEditor/QueryEditor.d.ts +5 -0
  152. package/dist/types/src/components/QueryEditor/QueryEditor.d.ts.map +1 -0
  153. package/dist/types/src/components/QueryEditor/QueryEditor.stories.d.ts +13 -0
  154. package/dist/types/src/components/QueryEditor/QueryEditor.stories.d.ts.map +1 -0
  155. package/dist/types/src/components/QueryEditor/index.d.ts +2 -0
  156. package/dist/types/src/components/QueryEditor/index.d.ts.map +1 -0
  157. package/dist/types/src/components/ScriptContainer.d.ts +7 -8
  158. package/dist/types/src/components/ScriptContainer.d.ts.map +1 -1
  159. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts +7 -8
  160. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts.map +1 -1
  161. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts +246 -10
  162. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts.map +1 -1
  163. package/dist/types/src/components/Settings/ScriptObjectSettings.d.ts +2 -2
  164. package/dist/types/src/components/Settings/ScriptObjectSettings.d.ts.map +1 -1
  165. package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts +6 -4
  166. package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts.map +1 -1
  167. package/dist/types/src/components/TestPanel/TestContainer.d.ts +5 -4
  168. package/dist/types/src/components/TestPanel/TestContainer.d.ts.map +1 -1
  169. package/dist/types/src/components/TestPanel/TestPanel.d.ts.map +1 -1
  170. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts +5 -2
  171. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts.map +1 -1
  172. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts +11 -4
  173. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts.map +1 -1
  174. package/dist/types/src/components/index.d.ts +4 -5
  175. package/dist/types/src/components/index.d.ts.map +1 -1
  176. package/dist/types/src/e2e/ai.test.d.ts +2 -0
  177. package/dist/types/src/e2e/ai.test.d.ts.map +1 -0
  178. package/dist/types/src/e2e/deploy.test.d.ts +2 -0
  179. package/dist/types/src/e2e/deploy.test.d.ts.map +1 -0
  180. package/dist/types/src/hooks/deploy.d.ts +18 -32
  181. package/dist/types/src/hooks/deploy.d.ts.map +1 -1
  182. package/dist/types/src/hooks/format.d.ts +4 -4
  183. package/dist/types/src/hooks/format.d.ts.map +1 -1
  184. package/dist/types/src/hooks/index.d.ts +1 -0
  185. package/dist/types/src/hooks/index.d.ts.map +1 -1
  186. package/dist/types/src/hooks/template.d.ts +6 -16
  187. package/dist/types/src/hooks/template.d.ts.map +1 -1
  188. package/dist/types/src/hooks/useCompiler.d.ts +7 -0
  189. package/dist/types/src/hooks/useCompiler.d.ts.map +1 -0
  190. package/dist/types/src/hooks/useCreateAndDeployScriptTemplates.d.ts.map +1 -1
  191. package/dist/types/src/hooks/useToolbarState.d.ts +8 -1
  192. package/dist/types/src/hooks/useToolbarState.d.ts.map +1 -1
  193. package/dist/types/src/index.d.ts +2 -1
  194. package/dist/types/src/index.d.ts.map +1 -1
  195. package/dist/types/src/meta.d.ts +2 -3
  196. package/dist/types/src/meta.d.ts.map +1 -1
  197. package/dist/types/src/notebook/compute-graph.d.ts +58 -0
  198. package/dist/types/src/notebook/compute-graph.d.ts.map +1 -0
  199. package/dist/types/src/notebook/compute-graph.test.d.ts +2 -0
  200. package/dist/types/src/notebook/compute-graph.test.d.ts.map +1 -0
  201. package/dist/types/src/notebook/eval.d.ts +13 -0
  202. package/dist/types/src/notebook/eval.d.ts.map +1 -0
  203. package/dist/types/src/notebook/index.d.ts +2 -0
  204. package/dist/types/src/notebook/index.d.ts.map +1 -0
  205. package/dist/types/src/notebook/vfs-parser.d.ts +74 -0
  206. package/dist/types/src/notebook/vfs-parser.d.ts.map +1 -0
  207. package/dist/types/src/notebook/vfs-parser.test.d.ts +2 -0
  208. package/dist/types/src/notebook/vfs-parser.test.d.ts.map +1 -0
  209. package/dist/types/src/templates/anthropic.d.ts +8 -0
  210. package/dist/types/src/templates/anthropic.d.ts.map +1 -0
  211. package/dist/types/src/templates/chess-bot.d.ts +16 -0
  212. package/dist/types/src/templates/chess-bot.d.ts.map +1 -0
  213. package/dist/types/src/templates/commentary.d.ts +16 -0
  214. package/dist/types/src/templates/commentary.d.ts.map +1 -0
  215. package/dist/types/src/templates/data-generator.d.ts.map +1 -1
  216. package/dist/types/src/templates/discord.d.ts.map +1 -1
  217. package/dist/types/src/templates/forex-effect.d.ts +4 -1
  218. package/dist/types/src/templates/forex-effect.d.ts.map +1 -1
  219. package/dist/types/src/templates/forex.d.ts +4 -1
  220. package/dist/types/src/templates/forex.d.ts.map +1 -1
  221. package/dist/types/src/templates/gmail.d.ts.map +1 -1
  222. package/dist/types/src/templates/index.d.ts +54 -1
  223. package/dist/types/src/templates/index.d.ts.map +1 -1
  224. package/dist/types/src/templates/ping.d.ts +3 -0
  225. package/dist/types/src/templates/ping.d.ts.map +1 -0
  226. package/dist/types/src/testing/data.d.ts +3 -0
  227. package/dist/types/src/testing/data.d.ts.map +1 -0
  228. package/dist/types/src/testing/index.d.ts +2 -0
  229. package/dist/types/src/testing/index.d.ts.map +1 -0
  230. package/dist/types/src/testing/simulator.test.d.ts +2 -0
  231. package/dist/types/src/testing/simulator.test.d.ts.map +1 -0
  232. package/dist/types/src/translations.d.ts +94 -176
  233. package/dist/types/src/translations.d.ts.map +1 -1
  234. package/dist/types/src/types/Notebook.d.ts +100 -0
  235. package/dist/types/src/types/Notebook.d.ts.map +1 -0
  236. package/dist/types/src/types/actions.d.ts +40 -0
  237. package/dist/types/src/types/actions.d.ts.map +1 -0
  238. package/dist/types/src/types/capabilities.d.ts +12 -0
  239. package/dist/types/src/types/capabilities.d.ts.map +1 -0
  240. package/dist/types/src/types/events.d.ts +5 -0
  241. package/dist/types/src/types/events.d.ts.map +1 -0
  242. package/dist/types/src/types/index.d.ts +6 -0
  243. package/dist/types/src/types/index.d.ts.map +1 -0
  244. package/dist/types/src/types/types.d.ts +6 -0
  245. package/dist/types/src/types/types.d.ts.map +1 -0
  246. package/dist/types/src/util/deploy.d.ts +7 -7
  247. package/dist/types/src/util/deploy.d.ts.map +1 -1
  248. package/dist/types/src/util/functions.d.ts +6 -3
  249. package/dist/types/src/util/functions.d.ts.map +1 -1
  250. package/dist/types/tsconfig.tsbuildinfo +1 -1
  251. package/package.json +128 -83
  252. package/src/ScriptPlugin.tsx +59 -78
  253. package/src/blueprints/index.ts +5 -0
  254. package/src/blueprints/script-blueprint.ts +24 -0
  255. package/src/capabilities/app-graph-builder/app-graph-builder.ts +56 -0
  256. package/src/capabilities/app-graph-builder/index.ts +7 -0
  257. package/src/capabilities/{artifact-definition.ts → artifact-definition/artifact-definition.ts} +105 -106
  258. package/src/capabilities/artifact-definition/index.ts +7 -0
  259. package/src/capabilities/blueprint-definition/blueprint-definition.ts +24 -0
  260. package/src/capabilities/blueprint-definition/index.ts +7 -0
  261. package/src/capabilities/compiler/compiler.ts +103 -0
  262. package/src/capabilities/compiler/index.ts +7 -0
  263. package/src/capabilities/index.ts +6 -10
  264. package/src/capabilities/operation-resolver/index.ts +7 -0
  265. package/src/capabilities/operation-resolver/operation-resolver.ts +75 -0
  266. package/src/capabilities/react-surface/index.ts +7 -0
  267. package/src/capabilities/react-surface/react-surface.tsx +119 -0
  268. package/src/capabilities/settings/index.ts +7 -0
  269. package/src/capabilities/settings/settings.ts +33 -0
  270. package/src/compiler/compiler.ts +11 -4
  271. package/src/components/DeploymentDialog/DeploymentDialog.stories.tsx +47 -24
  272. package/src/components/DeploymentDialog/DeploymentDialog.tsx +45 -54
  273. package/src/components/DeploymentDialog/index.ts +1 -1
  274. package/src/components/FrameContainer/FrameContainer.tsx +8 -5
  275. package/src/components/FrameContainer/frame.tsx +1 -1
  276. package/src/components/NotebookContainer.stories.tsx +87 -0
  277. package/src/components/NotebookContainer.tsx +271 -0
  278. package/src/components/NotebookStack/NotebookCell.tsx +217 -0
  279. package/src/components/NotebookStack/NotebookMenu.tsx +47 -0
  280. package/src/components/NotebookStack/NotebookStack.stories.tsx +55 -0
  281. package/src/components/NotebookStack/NotebookStack.tsx +86 -0
  282. package/src/components/NotebookStack/index.ts +6 -0
  283. package/src/components/QueryEditor/QueryEditor.stories.tsx +100 -0
  284. package/src/components/QueryEditor/QueryEditor.tsx +47 -0
  285. package/src/components/QueryEditor/index.ts +5 -0
  286. package/src/components/ScriptContainer.tsx +52 -35
  287. package/src/components/ScriptToolbar/ScriptToolbar.stories.tsx +57 -17
  288. package/src/components/ScriptToolbar/ScriptToolbar.tsx +37 -33
  289. package/src/components/Settings/ScriptObjectSettings.tsx +151 -48
  290. package/src/components/Settings/ScriptPluginSettings.tsx +43 -48
  291. package/src/components/TestPanel/TestContainer.tsx +13 -7
  292. package/src/components/TestPanel/TestPanel.tsx +66 -41
  293. package/src/components/TypescriptEditor/TypescriptEditor.stories.tsx +86 -33
  294. package/src/components/TypescriptEditor/TypescriptEditor.tsx +84 -81
  295. package/src/components/index.ts +3 -0
  296. package/src/e2e/ai.test.ts +92 -0
  297. package/src/e2e/deploy.test.ts +64 -0
  298. package/src/hooks/deploy.ts +49 -42
  299. package/src/hooks/format.ts +9 -5
  300. package/src/hooks/index.ts +1 -0
  301. package/src/hooks/template.ts +21 -24
  302. package/src/hooks/useCompiler.ts +24 -0
  303. package/src/hooks/useCreateAndDeployScriptTemplates.ts +15 -16
  304. package/src/hooks/useToolbarState.ts +29 -4
  305. package/src/index.ts +2 -1
  306. package/src/meta.ts +9 -7
  307. package/src/notebook/compute-graph.test.ts +82 -0
  308. package/src/notebook/compute-graph.ts +230 -0
  309. package/src/notebook/eval.ts +105 -0
  310. package/src/notebook/index.ts +5 -0
  311. package/src/notebook/vfs-parser.test.ts +149 -0
  312. package/src/notebook/vfs-parser.ts +451 -0
  313. package/src/templates/anthropic.ts +42 -0
  314. package/src/templates/chess-bot.ts +58 -0
  315. package/src/templates/commentary.ts +230 -0
  316. package/src/templates/data-generator.ts +11 -5
  317. package/src/templates/discord.ts +12 -4
  318. package/src/templates/email.ts +2 -2
  319. package/src/templates/forex-effect.ts +24 -25
  320. package/src/templates/forex.ts +9 -6
  321. package/src/templates/gmail.ts +35 -65
  322. package/src/templates/index.ts +26 -11
  323. package/src/templates/ping.ts +17 -0
  324. package/src/testing/data.ts +72 -0
  325. package/src/testing/index.ts +5 -0
  326. package/src/testing/simulator.test.ts +40 -0
  327. package/src/translations.ts +42 -12
  328. package/src/types/Notebook.ts +41 -0
  329. package/src/types/actions.ts +45 -0
  330. package/src/types/capabilities.ts +17 -0
  331. package/src/types/events.ts +11 -0
  332. package/src/types/index.ts +9 -0
  333. package/src/types/types.ts +15 -0
  334. package/src/util/deploy.ts +38 -61
  335. package/src/util/functions.ts +58 -25
  336. package/src/vite-env.d.ts +2 -0
  337. package/dist/lib/browser/DeploymentDialog-RPPPWEEL.mjs +0 -12
  338. package/dist/lib/browser/ScriptContainer-RSN52NH7.mjs +0 -261
  339. package/dist/lib/browser/ScriptContainer-RSN52NH7.mjs.map +0 -7
  340. package/dist/lib/browser/app-graph-builder-5Z3MUX4N.mjs +0 -64
  341. package/dist/lib/browser/app-graph-builder-5Z3MUX4N.mjs.map +0 -7
  342. package/dist/lib/browser/artifact-definition-A4TBQL75.mjs +0 -249
  343. package/dist/lib/browser/artifact-definition-A4TBQL75.mjs.map +0 -7
  344. package/dist/lib/browser/chunk-3FU4QZVP.mjs +0 -364
  345. package/dist/lib/browser/chunk-3FU4QZVP.mjs.map +0 -7
  346. package/dist/lib/browser/chunk-3JLR2SHJ.mjs +0 -557
  347. package/dist/lib/browser/chunk-3JLR2SHJ.mjs.map +0 -7
  348. package/dist/lib/browser/chunk-6ZHHWU6S.mjs.map +0 -7
  349. package/dist/lib/browser/chunk-LA66DQGU.mjs +0 -153
  350. package/dist/lib/browser/chunk-LA66DQGU.mjs.map +0 -7
  351. package/dist/lib/browser/chunk-QJH7I2UV.mjs +0 -233
  352. package/dist/lib/browser/chunk-QJH7I2UV.mjs.map +0 -7
  353. package/dist/lib/browser/chunk-WB3X5Z7Q.mjs +0 -40
  354. package/dist/lib/browser/chunk-WB3X5Z7Q.mjs.map +0 -7
  355. package/dist/lib/browser/chunk-YSQMXTYO.mjs +0 -15
  356. package/dist/lib/browser/chunk-YSQMXTYO.mjs.map +0 -7
  357. package/dist/lib/browser/compiler-W4BYJYTL.mjs +0 -82
  358. package/dist/lib/browser/compiler-W4BYJYTL.mjs.map +0 -7
  359. package/dist/lib/browser/intent-resolver-JOJNH4UX.mjs +0 -90
  360. package/dist/lib/browser/intent-resolver-JOJNH4UX.mjs.map +0 -7
  361. package/dist/lib/browser/react-surface-7BKUWL2U.mjs +0 -105
  362. package/dist/lib/browser/react-surface-7BKUWL2U.mjs.map +0 -7
  363. package/dist/lib/browser/settings-Z22D6JVJ.mjs +0 -24
  364. package/dist/lib/browser/settings-Z22D6JVJ.mjs.map +0 -7
  365. package/dist/lib/browser/types.mjs +0 -13
  366. package/dist/lib/node/DeploymentDialog-C3EEYGRH.cjs +0 -33
  367. package/dist/lib/node/DeploymentDialog-C3EEYGRH.cjs.map +0 -7
  368. package/dist/lib/node/ScriptContainer-CAC7AISY.cjs +0 -278
  369. package/dist/lib/node/ScriptContainer-CAC7AISY.cjs.map +0 -7
  370. package/dist/lib/node/app-graph-builder-25OOTBW4.cjs +0 -80
  371. package/dist/lib/node/app-graph-builder-25OOTBW4.cjs.map +0 -7
  372. package/dist/lib/node/artifact-definition-QKZI6PTO.cjs +0 -265
  373. package/dist/lib/node/artifact-definition-QKZI6PTO.cjs.map +0 -7
  374. package/dist/lib/node/chunk-AU2FOE26.cjs +0 -369
  375. package/dist/lib/node/chunk-AU2FOE26.cjs.map +0 -7
  376. package/dist/lib/node/chunk-BUOBOT3V.cjs +0 -179
  377. package/dist/lib/node/chunk-BUOBOT3V.cjs.map +0 -7
  378. package/dist/lib/node/chunk-HCRW6T3G.cjs +0 -60
  379. package/dist/lib/node/chunk-HCRW6T3G.cjs.map +0 -7
  380. package/dist/lib/node/chunk-OSBMUJ4T.cjs +0 -580
  381. package/dist/lib/node/chunk-OSBMUJ4T.cjs.map +0 -7
  382. package/dist/lib/node/chunk-QG2X6J74.cjs +0 -52
  383. package/dist/lib/node/chunk-QG2X6J74.cjs.map +0 -7
  384. package/dist/lib/node/chunk-YO5W2IPQ.cjs +0 -251
  385. package/dist/lib/node/chunk-YO5W2IPQ.cjs.map +0 -7
  386. package/dist/lib/node/chunk-ZEV3VARQ.cjs +0 -34
  387. package/dist/lib/node/chunk-ZEV3VARQ.cjs.map +0 -7
  388. package/dist/lib/node/compiler-TFSJRLL4.cjs +0 -104
  389. package/dist/lib/node/compiler-TFSJRLL4.cjs.map +0 -7
  390. package/dist/lib/node/index.cjs +0 -225
  391. package/dist/lib/node/index.cjs.map +0 -7
  392. package/dist/lib/node/intent-resolver-BQ2NKEM7.cjs +0 -100
  393. package/dist/lib/node/intent-resolver-BQ2NKEM7.cjs.map +0 -7
  394. package/dist/lib/node/meta.json +0 -1
  395. package/dist/lib/node/react-surface-EUKPDFU3.cjs +0 -120
  396. package/dist/lib/node/react-surface-EUKPDFU3.cjs.map +0 -7
  397. package/dist/lib/node/settings-WO53FLYZ.cjs +0 -38
  398. package/dist/lib/node/settings-WO53FLYZ.cjs.map +0 -7
  399. package/dist/lib/node/types.cjs +0 -34
  400. package/dist/lib/node/types.cjs.map +0 -7
  401. package/dist/lib/node-esm/DeploymentDialog-IA4CH6WZ.mjs +0 -13
  402. package/dist/lib/node-esm/ScriptContainer-4IOOIPBF.mjs +0 -262
  403. package/dist/lib/node-esm/ScriptContainer-4IOOIPBF.mjs.map +0 -7
  404. package/dist/lib/node-esm/app-graph-builder-IOOUTHV2.mjs +0 -65
  405. package/dist/lib/node-esm/app-graph-builder-IOOUTHV2.mjs.map +0 -7
  406. package/dist/lib/node-esm/artifact-definition-4XRYAP54.mjs +0 -250
  407. package/dist/lib/node-esm/artifact-definition-4XRYAP54.mjs.map +0 -7
  408. package/dist/lib/node-esm/chunk-2KJYPUQD.mjs +0 -16
  409. package/dist/lib/node-esm/chunk-2KJYPUQD.mjs.map +0 -7
  410. package/dist/lib/node-esm/chunk-AEB5TPEW.mjs.map +0 -7
  411. package/dist/lib/node-esm/chunk-B4TP3LSZ.mjs +0 -558
  412. package/dist/lib/node-esm/chunk-B4TP3LSZ.mjs.map +0 -7
  413. package/dist/lib/node-esm/chunk-MJJQBUOL.mjs +0 -234
  414. package/dist/lib/node-esm/chunk-MJJQBUOL.mjs.map +0 -7
  415. package/dist/lib/node-esm/chunk-T7XDCUTF.mjs +0 -154
  416. package/dist/lib/node-esm/chunk-T7XDCUTF.mjs.map +0 -7
  417. package/dist/lib/node-esm/chunk-UESZKXLR.mjs +0 -41
  418. package/dist/lib/node-esm/chunk-UESZKXLR.mjs.map +0 -7
  419. package/dist/lib/node-esm/chunk-W2DAXWHA.mjs +0 -365
  420. package/dist/lib/node-esm/chunk-W2DAXWHA.mjs.map +0 -7
  421. package/dist/lib/node-esm/compiler-7PQ4D43R.mjs +0 -83
  422. package/dist/lib/node-esm/compiler-7PQ4D43R.mjs.map +0 -7
  423. package/dist/lib/node-esm/intent-resolver-HTM5PSRZ.mjs +0 -91
  424. package/dist/lib/node-esm/intent-resolver-HTM5PSRZ.mjs.map +0 -7
  425. package/dist/lib/node-esm/react-surface-6UO64YOS.mjs +0 -106
  426. package/dist/lib/node-esm/react-surface-6UO64YOS.mjs.map +0 -7
  427. package/dist/lib/node-esm/settings-KZEGCDYX.mjs +0 -25
  428. package/dist/lib/node-esm/settings-KZEGCDYX.mjs.map +0 -7
  429. package/dist/lib/node-esm/types.mjs +0 -14
  430. package/dist/types/src/capabilities/app-graph-builder.d.ts +0 -4
  431. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +0 -1
  432. package/dist/types/src/capabilities/artifact-definition.d.ts +0 -11
  433. package/dist/types/src/capabilities/artifact-definition.d.ts.map +0 -1
  434. package/dist/types/src/capabilities/capabilities.d.ts +0 -5
  435. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  436. package/dist/types/src/capabilities/compiler.d.ts +0 -4
  437. package/dist/types/src/capabilities/compiler.d.ts.map +0 -1
  438. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  439. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  440. package/dist/types/src/capabilities/react-surface.d.ts +0 -4
  441. package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
  442. package/dist/types/src/capabilities/settings.d.ts +0 -4
  443. package/dist/types/src/capabilities/settings.d.ts.map +0 -1
  444. package/dist/types/src/events.d.ts +0 -4
  445. package/dist/types/src/events.d.ts.map +0 -1
  446. package/dist/types/src/templates/chess.d.ts +0 -3
  447. package/dist/types/src/templates/chess.d.ts.map +0 -1
  448. package/dist/types/src/templates/echo.d.ts +0 -6
  449. package/dist/types/src/templates/echo.d.ts.map +0 -1
  450. package/dist/types/src/types.d.ts +0 -40
  451. package/dist/types/src/types.d.ts.map +0 -1
  452. package/src/capabilities/app-graph-builder.ts +0 -64
  453. package/src/capabilities/capabilities.ts +0 -12
  454. package/src/capabilities/compiler.ts +0 -33
  455. package/src/capabilities/intent-resolver.ts +0 -80
  456. package/src/capabilities/react-surface.tsx +0 -89
  457. package/src/capabilities/settings.ts +0 -21
  458. package/src/events.ts +0 -11
  459. package/src/templates/chess.ts +0 -47
  460. package/src/templates/echo.ts +0 -8
  461. package/src/types.ts +0 -42
  462. /package/dist/lib/browser/{DeploymentDialog-RPPPWEEL.mjs.map → DeploymentDialog-XUAFCNI7.mjs.map} +0 -0
  463. /package/dist/lib/browser/{types.mjs.map → blueprints/index.mjs.map} +0 -0
  464. /package/dist/lib/{node-esm/DeploymentDialog-IA4CH6WZ.mjs.map → browser/chunk-J5LGTIGS.mjs.map} +0 -0
  465. /package/dist/lib/{node-esm/types.mjs.map → browser/templates/index.mjs.map} +0 -0
@@ -0,0 +1,33 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import * as Effect from 'effect/Effect';
6
+
7
+ import { Capability } from '@dxos/app-framework';
8
+ import { AppCapabilities } from '@dxos/app-toolkit';
9
+ import { createKvsStore } from '@dxos/effect';
10
+
11
+ import { meta } from '../../meta';
12
+ import { ScriptCapabilities, ScriptSettings } from '../../types';
13
+
14
+ export default Capability.makeModule(() =>
15
+ Effect.sync(() => {
16
+ const settingsAtom = createKvsStore({
17
+ key: meta.id,
18
+ schema: ScriptSettings,
19
+ defaultValue: () => ({
20
+ editorInputMode: 'vscode' as const,
21
+ }),
22
+ });
23
+
24
+ return [
25
+ Capability.contributes(ScriptCapabilities.Settings, settingsAtom),
26
+ Capability.contributes(AppCapabilities.Settings, {
27
+ prefix: meta.id,
28
+ schema: ScriptSettings,
29
+ atom: settingsAtom,
30
+ }),
31
+ ];
32
+ }),
33
+ );
@@ -3,15 +3,17 @@
3
3
  //
4
4
 
5
5
  import {
6
+ type VirtualTypeScriptEnvironment,
6
7
  createDefaultMapFromCDN,
7
8
  createSystem,
8
9
  createVirtualTypeScriptEnvironment,
9
- type VirtualTypeScriptEnvironment,
10
10
  } from '@typescript/vfs';
11
11
  import ts from 'typescript';
12
12
 
13
13
  import { invariant } from '@dxos/invariant';
14
14
 
15
+ const GLOBALS = 'globals.d.ts';
16
+
15
17
  const defaultOptions: ts.CompilerOptions = {
16
18
  lib: ['DOM', 'es2022'],
17
19
  target: ts.ScriptTarget.ES2022,
@@ -23,16 +25,21 @@ export class Compiler {
23
25
 
24
26
  constructor(private readonly _options: ts.CompilerOptions = defaultOptions) {}
25
27
 
26
- async initialize(): Promise<void> {
28
+ async initialize(globals?: string): Promise<void> {
27
29
  if (this._env) {
28
30
  return;
29
31
  }
30
32
 
31
33
  // TODO(wittjosiah): Figure out how to get workers working in plugin packages.
32
34
  // https://github.com/val-town/codemirror-ts?tab=readme-ov-file#setup-worker
33
- this._fsMap = await createDefaultMapFromCDN(this._options, '5.5.4', true, ts);
35
+ this._fsMap = await createDefaultMapFromCDN(this._options, '5.7.2', true, ts);
36
+ if (globals) {
37
+ this._fsMap.set(GLOBALS, globals);
38
+ }
39
+
40
+ const rootFiles = globals ? [GLOBALS] : [];
34
41
  const system = createSystem(this._fsMap);
35
- this._env = createVirtualTypeScriptEnvironment(system, [], ts, this._options);
42
+ this._env = createVirtualTypeScriptEnvironment(system, rootFiles, ts, this._options);
36
43
  }
37
44
 
38
45
  get environment() {
@@ -2,38 +2,61 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import '@dxos-theme';
6
-
7
- import { type Meta } from '@storybook/react';
8
- import React from 'react';
5
+ import { type Meta, type StoryObj } from '@storybook/react-vite';
6
+ import React, { useMemo } from 'react';
9
7
 
8
+ import { OperationPlugin } from '@dxos/app-framework';
9
+ import { withPluginManager } from '@dxos/app-framework/testing';
10
+ import { Obj } from '@dxos/echo';
11
+ import { ClientPlugin } from '@dxos/plugin-client';
10
12
  import { Dialog } from '@dxos/react-ui';
11
- import { withLayout, withTheme } from '@dxos/storybook-utils';
12
-
13
- import translations from '../../translations';
14
- import { DeploymentDialog } from '../DeploymentDialog/DeploymentDialog';
15
-
16
- export const Default = {
17
- args: {
18
- accessToken: { value: 'example-token' },
19
- scripts: [
20
- { label: 'Script 1', templateId: 'template1' },
21
- { label: 'Script 2', templateId: 'template2' },
22
- { label: 'Script 3', templateId: 'template3' },
13
+ import { withTheme } from '@dxos/react-ui/testing';
14
+ import { AccessToken } from '@dxos/types';
15
+
16
+ import { translations } from '../../translations';
17
+
18
+ import { DeploymentDialog } from './DeploymentDialog';
19
+
20
+ // TODO(wittjosiah): ECHO objects don't work when passed via Storybook args.
21
+ const DeploymentDialogStory = () => {
22
+ const accessToken = useMemo(
23
+ () =>
24
+ Obj.make(AccessToken.AccessToken, {
25
+ source: 'example.com',
26
+ token: 'example-token',
27
+ }),
28
+ [],
29
+ );
30
+ const scriptTemplates = useMemo(
31
+ () => [
32
+ { id: 't-1', name: 'Script 1', source: 'template1' },
33
+ { id: 't-2', name: 'Script 2', source: 'template2' },
34
+ { id: 't-3', name: 'Script 3', source: 'template3' },
23
35
  ],
24
- },
25
- render: (args: any) => (
36
+ [],
37
+ );
38
+ return (
26
39
  <Dialog.Root defaultOpen={true}>
27
- <DeploymentDialog {...args} />
40
+ <DeploymentDialog accessToken={accessToken} scriptTemplates={scriptTemplates} />
28
41
  </Dialog.Root>
29
- ),
42
+ );
30
43
  };
31
44
 
32
- const meta: Meta = {
45
+ const meta = {
33
46
  title: 'plugins/plugin-script/DeploymentDialog',
34
- component: DeploymentDialog,
47
+ component: DeploymentDialogStory,
35
48
  parameters: { translations },
36
- decorators: [withTheme, withLayout()],
37
- };
49
+ // TODO(wittjosiah): Try to write story which does not depend on plugin manager.
50
+ decorators: [
51
+ withTheme(),
52
+ withPluginManager({
53
+ plugins: [OperationPlugin(), ClientPlugin({})],
54
+ }),
55
+ ],
56
+ } satisfies Meta<typeof DeploymentDialogStory>;
38
57
 
39
58
  export default meta;
59
+
60
+ type Story = StoryObj<typeof meta>;
61
+
62
+ export const Default: Story = {};
@@ -4,91 +4,78 @@
4
4
 
5
5
  import React, { useEffect, useMemo } from 'react';
6
6
 
7
- import { createIntent, LayoutAction, useIntentDispatcher } from '@dxos/app-framework';
7
+ import { useOperationInvoker } from '@dxos/app-framework/ui';
8
+ import { LayoutOperation } from '@dxos/app-toolkit';
8
9
  import { getSpace } from '@dxos/react-client/echo';
9
- import { Button, Dialog, Icon, useTranslation } from '@dxos/react-ui';
10
- import { type DataType } from '@dxos/schema';
10
+ import { Button, Dialog, IconButton, useTranslation } from '@dxos/react-ui';
11
+ import { type AccessToken } from '@dxos/types';
11
12
 
12
- import { useCreateAndDeployScriptTemplates } from '../../hooks/useCreateAndDeployScriptTemplates';
13
- import { SCRIPT_PLUGIN } from '../../meta';
13
+ import { useCreateAndDeployScriptTemplates } from '../../hooks';
14
+ import { meta } from '../../meta';
14
15
  import { type Template } from '../../templates';
15
16
 
16
- export const DEPLOYMENT_DIALOG = `${SCRIPT_PLUGIN}/deployment/dialog`;
17
+ export const DEPLOYMENT_DIALOG = `${meta.id}/deployment/dialog`;
17
18
 
18
19
  // TODO(ZaymonFC):
19
- // - Show activity and feedback to the user.
20
- // - Only take an array of templateIds and get the name from the data.
21
- // - Pending / onError states.
20
+ // - Show activity and feedback to the user.
21
+ // - Only take an array of templateIds and get the name from the data.
22
+ // - Pending / onError states.
22
23
 
23
- type DeploymentDialogProps = {
24
- accessToken: DataType.AccessToken;
24
+ export type DeploymentDialogProps = {
25
+ accessToken: AccessToken.AccessToken;
25
26
  scriptTemplates: Template[];
26
27
  };
27
28
 
28
29
  export const DeploymentDialog = ({ accessToken, scriptTemplates }: DeploymentDialogProps) => {
29
- const { t } = useTranslation(SCRIPT_PLUGIN);
30
+ const { t } = useTranslation(meta.id);
30
31
  const space = useMemo(() => getSpace(accessToken), [accessToken]);
31
32
 
32
33
  // TODO(ZaymonFC): Thinking further. All of this should get moved to intents to run async in the background.
33
34
  // Deployment shouldn't be tied to the lifecycle of the dialogue component.
34
35
  const { handleCreateAndDeployScripts, status } = useCreateAndDeployScriptTemplates(space, scriptTemplates);
35
- const { dispatchPromise: dispatch } = useIntentDispatcher();
36
+ const { invokePromise } = useOperationInvoker();
36
37
 
37
38
  useEffect(() => {
38
39
  if (status === 'success') {
39
40
  // TODO(ZaymonFC): We can probably re-use this toast for normal script deployment.
40
- void dispatch(
41
- createIntent(LayoutAction.AddToast, {
42
- part: 'toast',
43
- subject: {
44
- id: `${SCRIPT_PLUGIN}/deployment-success`,
45
- icon: 'ph--check--regular',
46
- duration: Infinity,
47
- title: ['script deployment toast label', { ns: SCRIPT_PLUGIN, count: scriptTemplates.length }],
48
- description: ['script deployment toast description', { ns: SCRIPT_PLUGIN, count: scriptTemplates.length }],
49
- closeLabel: ['script deployment toast close label', { ns: SCRIPT_PLUGIN, count: scriptTemplates.length }],
50
- },
51
- }),
52
- );
53
- void dispatch(createIntent(LayoutAction.UpdateDialog, { part: 'dialog', options: { state: false } }));
41
+ void invokePromise(LayoutOperation.AddToast, {
42
+ id: `${meta.id}/deployment-success`,
43
+ icon: 'ph--check--regular',
44
+ duration: Infinity,
45
+ title: ['script deployment toast label', { ns: meta.id, count: scriptTemplates.length }],
46
+ description: ['script deployment toast description', { ns: meta.id, count: scriptTemplates.length }],
47
+ closeLabel: ['script deployment toast close label', { ns: meta.id, count: scriptTemplates.length }],
48
+ });
49
+ void invokePromise(LayoutOperation.UpdateDialog, { state: false });
54
50
  }
55
51
  if (status === 'error') {
56
- void dispatch(createIntent(LayoutAction.UpdateDialog, { part: 'dialog', options: { state: false } }));
57
- void dispatch(
58
- createIntent(LayoutAction.AddToast, {
59
- part: 'toast',
60
- subject: {
61
- id: `${SCRIPT_PLUGIN}/deployment-error`,
62
- icon: 'ph--warning--regular',
63
- duration: Infinity,
64
- title: ['script deployment error toast label', { ns: SCRIPT_PLUGIN, count: scriptTemplates.length }],
65
- description: [
66
- 'script deployment error toast description',
67
- { ns: SCRIPT_PLUGIN, count: scriptTemplates.length },
68
- ],
69
- closeLabel: [
70
- 'script deployment error toast close label',
71
- { ns: SCRIPT_PLUGIN, count: scriptTemplates.length },
72
- ],
73
- },
74
- }),
75
- );
52
+ void invokePromise(LayoutOperation.UpdateDialog, { state: false });
53
+ void invokePromise(LayoutOperation.AddToast, {
54
+ id: `${meta.id}/deployment-error`,
55
+ icon: 'ph--warning--regular',
56
+ duration: Infinity,
57
+ title: ['script deployment error toast label', { ns: meta.id, count: scriptTemplates.length }],
58
+ description: ['script deployment error toast description', { ns: meta.id, count: scriptTemplates.length }],
59
+ closeLabel: ['script deployment error toast close label', { ns: meta.id, count: scriptTemplates.length }],
60
+ });
76
61
  }
77
- }, [status, dispatch]);
62
+ }, [status, invokePromise]);
78
63
 
79
64
  return (
80
65
  <Dialog.Content>
81
66
  <div className='flex justify-between items-center'>
82
67
  <Dialog.Title>{t('deployment dialog title')}</Dialog.Title>
83
68
  <Dialog.Close asChild>
84
- <Button density='fine' variant='ghost'>
85
- <Icon icon='ph--x--regular' size={4} />
86
- </Button>
69
+ <IconButton icon='ph--x--regular' size={4} label='Close' iconOnly density='fine' variant='ghost' />
87
70
  </Dialog.Close>
88
71
  </div>
89
72
  <div role='none' className='plb-4'>
90
73
  {/* TODO: Implement deployment logic and UI. */}
91
- <p>{t('deployment dialog scripts found message', { count: scriptTemplates.length })}</p>
74
+ <p>
75
+ {t('deployment dialog scripts found message', {
76
+ count: scriptTemplates.length,
77
+ })}
78
+ </p>
92
79
  <ul className='pbs-2'>
93
80
  {scriptTemplates.map((template) => {
94
81
  return <li key={template.id}>{template.name}</li>;
@@ -98,8 +85,12 @@ export const DeploymentDialog = ({ accessToken, scriptTemplates }: DeploymentDia
98
85
  <div role='none' className='flex flex-row-reverse gap-1'>
99
86
  <Button variant='primary' onClick={handleCreateAndDeployScripts} disabled={status === 'pending'}>
100
87
  {status === 'pending'
101
- ? t('deployment dialog deploy functions pending button label', { count: scriptTemplates.length })
102
- : t('deployment dialog deploy functions button label', { count: scriptTemplates.length })}
88
+ ? t('deployment dialog deploy functions pending button label', {
89
+ count: scriptTemplates.length,
90
+ })
91
+ : t('deployment dialog deploy functions button label', {
92
+ count: scriptTemplates.length,
93
+ })}
103
94
  </Button>
104
95
  <Dialog.Close asChild disabled={status === 'pending'}>
105
96
  <Button disabled={status === 'pending'}>{t('deployment dialog skip button label')}</Button>
@@ -2,7 +2,7 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { DeploymentDialog, DEPLOYMENT_DIALOG } from './DeploymentDialog';
5
+ import { DEPLOYMENT_DIALOG, DeploymentDialog } from './DeploymentDialog';
6
6
 
7
7
  export { DEPLOYMENT_DIALOG };
8
8
 
@@ -5,13 +5,13 @@
5
5
  import React, { useEffect, useRef } from 'react';
6
6
 
7
7
  import { clientServiceBundle } from '@dxos/client-protocol';
8
- import { type BundleResult } from '@dxos/functions/bundler';
8
+ import { type BundleResult } from '@dxos/functions-runtime/bundler';
9
9
  import { invariant } from '@dxos/invariant';
10
10
  import { log } from '@dxos/log';
11
11
  import { useClient } from '@dxos/react-client';
12
- import { baseSurface, mx } from '@dxos/react-ui-theme';
13
12
  import { createProtoRpcPeer } from '@dxos/rpc';
14
13
  import { createIFramePort } from '@dxos/rpc-tunnel';
14
+ import { baseSurface, mx } from '@dxos/ui-theme';
15
15
 
16
16
  export type FrameContainerProps = {
17
17
  containerUrl: string;
@@ -48,7 +48,10 @@ export const FrameContainer = ({ containerUrl, result, debug = true }: FrameCont
48
48
  // Encodes compiled code via URL.
49
49
  invariant(result.sourceHash, 'Source hash is required.');
50
50
  const sourceHash = Buffer.from(result.sourceHash).toString('hex');
51
- const src = result.bundle && `${containerUrl}?ts=${sourceHash}#code=${encodeURIComponent(result.bundle)}`;
51
+ const src =
52
+ 'bundle' in result
53
+ ? `${containerUrl}?ts=${sourceHash}#code=${encodeURIComponent(new TextDecoder().decode(Object.values(result.bundle as any)[0] as Uint8Array))}`
54
+ : undefined;
52
55
 
53
56
  return (
54
57
  <>
@@ -59,7 +62,7 @@ export const FrameContainer = ({ containerUrl, result, debug = true }: FrameCont
59
62
  <div
60
63
  className={mx(
61
64
  baseSurface,
62
- 'flex absolute right-2 bottom-2 w-[30rem] h-[200px] ring rounded',
65
+ 'flex absolute right-2 bottom-2 is-[30rem] bs-[200px] ring rounded',
63
66
  'z-20 overflow-x-hidden overflow-y-auto',
64
67
  )}
65
68
  >
@@ -68,7 +71,7 @@ export const FrameContainer = ({ containerUrl, result, debug = true }: FrameCont
68
71
  {
69
72
  timestamp: result.timestamp,
70
73
  sourceHash,
71
- error: result.error,
74
+ error: 'error' in result ? result.error : undefined,
72
75
  src,
73
76
  },
74
77
  undefined,
@@ -28,7 +28,7 @@ const main = async () => {
28
28
  '@dxos/plugin-explorer': await import('@dxos/plugin-explorer'),
29
29
  }));
30
30
 
31
- // eslint-disable-next-line no-new-func
31
+ // eslint-disable-next-line @typescript-eslint/no-implied-eval
32
32
  const Component = Function('React', "return React.lazy(() => import('@frame/bundle'))")(React);
33
33
 
34
34
  const services = new ClientServicesProxy(
@@ -0,0 +1,87 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ import { type Meta, type StoryObj } from '@storybook/react-vite';
6
+ import * as Effect from 'effect/Effect';
7
+ import React from 'react';
8
+
9
+ import { SERVICES_CONFIG } from '@dxos/ai/testing';
10
+ import { withPluginManager } from '@dxos/app-framework/testing';
11
+ import { Agent } from '@dxos/assistant-toolkit';
12
+ import { Filter } from '@dxos/echo';
13
+ import { Function, serializeFunction } from '@dxos/functions';
14
+ import { AssistantPlugin } from '@dxos/plugin-assistant';
15
+ import { AutomationPlugin } from '@dxos/plugin-automation';
16
+ import { ClientPlugin } from '@dxos/plugin-client';
17
+ import { ExplorerPlugin } from '@dxos/plugin-explorer';
18
+ import { Markdown, MarkdownPlugin } from '@dxos/plugin-markdown';
19
+ import { corePlugins } from '@dxos/plugin-testing';
20
+ import { Config, useClient } from '@dxos/react-client';
21
+ import { useQuery } from '@dxos/react-client/echo';
22
+ import { withLayout, withTheme } from '@dxos/react-ui/testing';
23
+ import { DataTypes } from '@dxos/schema';
24
+
25
+ import { createNotebook } from '../testing';
26
+ import { translations } from '../translations';
27
+ import { Notebook } from '../types';
28
+
29
+ import { NotebookContainer } from './NotebookContainer';
30
+
31
+ const meta: Meta<typeof NotebookContainer> = {
32
+ title: 'plugins/plugin-script/NotebookContainer',
33
+ component: NotebookContainer,
34
+ render: (args) => {
35
+ const client = useClient();
36
+ const space = client.spaces.default;
37
+ const notebooks = useQuery(space?.db, Filter.type(Notebook.Notebook));
38
+ return <NotebookContainer {...args} subject={notebooks[0]} />;
39
+ },
40
+ decorators: [
41
+ withTheme(),
42
+ withLayout({ layout: 'column', classNames: 'is-proseMaxWidth' }),
43
+ withPluginManager({
44
+ plugins: [
45
+ ...corePlugins(),
46
+ ClientPlugin({
47
+ // TODO(wittjosiah): ComputeRuntime requires edge to be configured or it will throw.
48
+ config: new Config({
49
+ runtime: {
50
+ services: SERVICES_CONFIG.REMOTE,
51
+ },
52
+ }),
53
+ types: [...DataTypes, Notebook.Notebook, Function.Function, Markdown.Document],
54
+ onClientInitialized: ({ client }) =>
55
+ Effect.gen(function* () {
56
+ yield* Effect.promise(() => client.halo.createIdentity());
57
+ yield* Effect.promise(() => client.spaces.waitUntilReady());
58
+ const space = client.spaces.default;
59
+ yield* Effect.promise(() => space.waitUntilReady());
60
+
61
+ space.db.add(createNotebook());
62
+ space.db.add(Markdown.make({ content: '# Hello World' }));
63
+ space.db.add(serializeFunction(Agent.prompt));
64
+ }),
65
+ }),
66
+ AssistantPlugin(),
67
+ AutomationPlugin(),
68
+ ExplorerPlugin(),
69
+ MarkdownPlugin(),
70
+ ],
71
+ }),
72
+ ],
73
+ parameters: {
74
+ translations,
75
+ },
76
+ };
77
+
78
+ export default meta;
79
+
80
+ type Story = StoryObj<typeof meta>;
81
+
82
+ export const Default: Story = {
83
+ args: {
84
+ role: 'article',
85
+ subject: undefined as any,
86
+ },
87
+ };