@dxos/plugin-script 0.8.4-main.406dc2a → 0.8.4-main.4a85c3132b

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 (497) hide show
  1. package/README.md +15 -13
  2. package/dist/lib/browser/DeploymentDialog-IIOXAS47.mjs +138 -0
  3. package/dist/lib/browser/DeploymentDialog-IIOXAS47.mjs.map +7 -0
  4. package/dist/lib/browser/{NotebookContainer-LVGRPFY3.mjs → NotebookContainer-VVZOKGRC.mjs} +367 -200
  5. package/dist/lib/browser/NotebookContainer-VVZOKGRC.mjs.map +7 -0
  6. package/dist/lib/browser/ScriptContainer-A5SSIUH6.mjs +93 -0
  7. package/dist/lib/browser/ScriptContainer-A5SSIUH6.mjs.map +7 -0
  8. package/dist/lib/browser/ScriptObjectSettings-HYYC7KXC.mjs +294 -0
  9. package/dist/lib/browser/ScriptObjectSettings-HYYC7KXC.mjs.map +7 -0
  10. package/dist/lib/browser/ScriptPluginSettings-UTWA7CBT.mjs +55 -0
  11. package/dist/lib/browser/ScriptPluginSettings-UTWA7CBT.mjs.map +7 -0
  12. package/dist/lib/browser/ScriptProperties-HREPUE65.mjs +28 -0
  13. package/dist/lib/browser/ScriptProperties-HREPUE65.mjs.map +7 -0
  14. package/dist/lib/browser/TestContainer-D4Y2K2TT.mjs +39 -0
  15. package/dist/lib/browser/TestContainer-D4Y2K2TT.mjs.map +7 -0
  16. package/dist/lib/browser/app-graph-builder-66ZDI72K.mjs +69 -0
  17. package/dist/lib/browser/app-graph-builder-66ZDI72K.mjs.map +7 -0
  18. package/dist/lib/browser/blueprint-definition-YMZEJBAZ.mjs +17 -0
  19. package/dist/lib/browser/blueprint-definition-YMZEJBAZ.mjs.map +7 -0
  20. package/dist/lib/browser/blueprints/index.mjs +8 -0
  21. package/dist/lib/browser/chunk-6IXFDTAI.mjs +113 -0
  22. package/dist/lib/browser/chunk-6IXFDTAI.mjs.map +7 -0
  23. package/dist/lib/browser/chunk-ATTZUDT7.mjs +67 -0
  24. package/dist/lib/browser/chunk-ATTZUDT7.mjs.map +7 -0
  25. package/dist/lib/browser/chunk-G3XIOLLI.mjs +174 -0
  26. package/dist/lib/browser/chunk-G3XIOLLI.mjs.map +7 -0
  27. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  28. package/dist/lib/browser/{chunk-ST3ACVUC.mjs → chunk-J7PGML5B.mjs} +29 -12
  29. package/dist/lib/browser/chunk-J7PGML5B.mjs.map +7 -0
  30. package/dist/lib/browser/chunk-MUEVLYXJ.mjs +397 -0
  31. package/dist/lib/browser/chunk-MUEVLYXJ.mjs.map +7 -0
  32. package/dist/lib/browser/chunk-PLDBKKYO.mjs +789 -0
  33. package/dist/lib/browser/chunk-PLDBKKYO.mjs.map +7 -0
  34. package/dist/lib/browser/chunk-Q66L5EUR.mjs +20 -0
  35. package/dist/lib/browser/chunk-Q66L5EUR.mjs.map +7 -0
  36. package/dist/lib/browser/chunk-TW27W3EL.mjs +29 -0
  37. package/dist/lib/browser/chunk-TW27W3EL.mjs.map +7 -0
  38. package/dist/lib/browser/{chunk-EZVXV6DA.mjs → chunk-WYR4QHPE.mjs} +7 -2
  39. package/dist/lib/browser/chunk-WYR4QHPE.mjs.map +7 -0
  40. package/dist/lib/browser/chunk-ZYU2LP6U.mjs +11 -0
  41. package/dist/lib/browser/chunk-ZYU2LP6U.mjs.map +7 -0
  42. package/dist/lib/browser/compiler-53G6ZHQM.mjs +99 -0
  43. package/dist/lib/browser/compiler-53G6ZHQM.mjs.map +7 -0
  44. package/dist/lib/browser/index.mjs +111 -140
  45. package/dist/lib/browser/index.mjs.map +4 -4
  46. package/dist/lib/browser/meta.json +1 -1
  47. package/dist/lib/browser/operation-resolver-CYEISDDK.mjs +79 -0
  48. package/dist/lib/browser/operation-resolver-CYEISDDK.mjs.map +7 -0
  49. package/dist/lib/browser/react-surface-26P6HAFD.mjs +141 -0
  50. package/dist/lib/browser/react-surface-26P6HAFD.mjs.map +7 -0
  51. package/dist/lib/browser/settings-76UM7442.mjs +36 -0
  52. package/dist/lib/browser/settings-76UM7442.mjs.map +7 -0
  53. package/dist/lib/browser/templates/index.mjs +2 -1
  54. package/dist/lib/browser/types/index.mjs +12 -7
  55. package/dist/lib/node-esm/DeploymentDialog-ZHPHEV2H.mjs +139 -0
  56. package/dist/lib/node-esm/DeploymentDialog-ZHPHEV2H.mjs.map +7 -0
  57. package/dist/lib/node-esm/{NotebookContainer-QY5NJGJI.mjs → NotebookContainer-ZLWTNMQA.mjs} +367 -200
  58. package/dist/lib/node-esm/NotebookContainer-ZLWTNMQA.mjs.map +7 -0
  59. package/dist/lib/node-esm/ScriptContainer-S4UKQAWP.mjs +94 -0
  60. package/dist/lib/node-esm/ScriptContainer-S4UKQAWP.mjs.map +7 -0
  61. package/dist/lib/node-esm/ScriptObjectSettings-C5QBRERY.mjs +295 -0
  62. package/dist/lib/node-esm/ScriptObjectSettings-C5QBRERY.mjs.map +7 -0
  63. package/dist/lib/node-esm/ScriptPluginSettings-MFACDW4R.mjs +56 -0
  64. package/dist/lib/node-esm/ScriptPluginSettings-MFACDW4R.mjs.map +7 -0
  65. package/dist/lib/node-esm/ScriptProperties-FMNIX3KU.mjs +29 -0
  66. package/dist/lib/node-esm/ScriptProperties-FMNIX3KU.mjs.map +7 -0
  67. package/dist/lib/node-esm/TestContainer-AO45YPGV.mjs +40 -0
  68. package/dist/lib/node-esm/TestContainer-AO45YPGV.mjs.map +7 -0
  69. package/dist/lib/node-esm/app-graph-builder-IGAZTJ45.mjs +70 -0
  70. package/dist/lib/node-esm/app-graph-builder-IGAZTJ45.mjs.map +7 -0
  71. package/dist/lib/node-esm/blueprint-definition-5MGY6BRQ.mjs +18 -0
  72. package/dist/lib/node-esm/blueprint-definition-5MGY6BRQ.mjs.map +7 -0
  73. package/dist/lib/node-esm/blueprints/index.mjs +9 -0
  74. package/dist/lib/node-esm/blueprints/index.mjs.map +7 -0
  75. package/dist/lib/node-esm/chunk-5BG7OJGQ.mjs +176 -0
  76. package/dist/lib/node-esm/chunk-5BG7OJGQ.mjs.map +7 -0
  77. package/dist/lib/node-esm/{chunk-OG2SIKHE.mjs → chunk-5HSJPAK7.mjs} +7 -2
  78. package/dist/lib/node-esm/chunk-5HSJPAK7.mjs.map +7 -0
  79. package/dist/lib/node-esm/chunk-H46R2RS5.mjs +790 -0
  80. package/dist/lib/node-esm/chunk-H46R2RS5.mjs.map +7 -0
  81. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  82. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  83. package/dist/lib/node-esm/chunk-JGN7TDJH.mjs +69 -0
  84. package/dist/lib/node-esm/chunk-JGN7TDJH.mjs.map +7 -0
  85. package/dist/lib/node-esm/{chunk-2GVTWESW.mjs → chunk-QG6ANK4B.mjs} +29 -12
  86. package/dist/lib/node-esm/chunk-QG6ANK4B.mjs.map +7 -0
  87. package/dist/lib/node-esm/chunk-S7DSCLOW.mjs +31 -0
  88. package/dist/lib/node-esm/chunk-S7DSCLOW.mjs.map +7 -0
  89. package/dist/lib/node-esm/chunk-TZ2EBTPQ.mjs +22 -0
  90. package/dist/lib/node-esm/chunk-TZ2EBTPQ.mjs.map +7 -0
  91. package/dist/lib/node-esm/chunk-UFBVE33O.mjs +12 -0
  92. package/dist/lib/node-esm/chunk-UFBVE33O.mjs.map +7 -0
  93. package/dist/lib/node-esm/chunk-WWD5LUU6.mjs +114 -0
  94. package/dist/lib/node-esm/chunk-WWD5LUU6.mjs.map +7 -0
  95. package/dist/lib/node-esm/chunk-ZDJ2FI7E.mjs +398 -0
  96. package/dist/lib/node-esm/chunk-ZDJ2FI7E.mjs.map +7 -0
  97. package/dist/lib/node-esm/compiler-HHQW7EP3.mjs +100 -0
  98. package/dist/lib/node-esm/compiler-HHQW7EP3.mjs.map +7 -0
  99. package/dist/lib/node-esm/index.mjs +111 -140
  100. package/dist/lib/node-esm/index.mjs.map +4 -4
  101. package/dist/lib/node-esm/meta.json +1 -1
  102. package/dist/lib/node-esm/operation-resolver-HFFDXWND.mjs +80 -0
  103. package/dist/lib/node-esm/operation-resolver-HFFDXWND.mjs.map +7 -0
  104. package/dist/lib/node-esm/react-surface-THCIK266.mjs +142 -0
  105. package/dist/lib/node-esm/react-surface-THCIK266.mjs.map +7 -0
  106. package/dist/lib/node-esm/settings-CCHDPLFJ.mjs +37 -0
  107. package/dist/lib/node-esm/settings-CCHDPLFJ.mjs.map +7 -0
  108. package/dist/lib/node-esm/templates/index.mjs +2 -1
  109. package/dist/lib/node-esm/types/index.mjs +12 -7
  110. package/dist/types/src/ScriptPlugin.d.ts +2 -1
  111. package/dist/types/src/ScriptPlugin.d.ts.map +1 -1
  112. package/dist/types/src/blueprints/index.d.ts +2 -0
  113. package/dist/types/src/blueprints/index.d.ts.map +1 -0
  114. package/dist/types/src/blueprints/script-blueprint.d.ts +4 -0
  115. package/dist/types/src/blueprints/script-blueprint.d.ts.map +1 -0
  116. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +6 -0
  117. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -0
  118. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +3 -0
  119. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +1 -0
  120. package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts +12 -0
  121. package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts.map +1 -0
  122. package/dist/types/src/capabilities/artifact-definition/index.d.ts +3 -0
  123. package/dist/types/src/capabilities/artifact-definition/index.d.ts.map +1 -0
  124. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +6 -0
  125. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +1 -0
  126. package/dist/types/src/capabilities/blueprint-definition/index.d.ts +3 -0
  127. package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +1 -0
  128. package/dist/types/src/capabilities/compiler/compiler.d.ts +6 -0
  129. package/dist/types/src/capabilities/compiler/compiler.d.ts.map +1 -0
  130. package/dist/types/src/capabilities/compiler/index.d.ts +3 -0
  131. package/dist/types/src/capabilities/compiler/index.d.ts.map +1 -0
  132. package/dist/types/src/capabilities/index.d.ts +6 -7
  133. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  134. package/dist/types/src/capabilities/operation-resolver/index.d.ts +3 -0
  135. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -0
  136. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +5 -0
  137. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -0
  138. package/dist/types/src/capabilities/react-surface/index.d.ts +3 -0
  139. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
  140. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +5 -0
  141. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
  142. package/dist/types/src/capabilities/settings/index.d.ts +7 -0
  143. package/dist/types/src/capabilities/settings/index.d.ts.map +1 -0
  144. package/dist/types/src/capabilities/settings/settings.d.ts +10 -0
  145. package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -0
  146. package/dist/types/src/compiler/compiler.d.ts +1 -1
  147. package/dist/types/src/compiler/compiler.d.ts.map +1 -1
  148. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts +1 -1
  149. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts.map +1 -1
  150. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts +4 -3
  151. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts.map +1 -1
  152. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts +1 -1
  153. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts.map +1 -1
  154. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts +5 -4
  155. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts.map +1 -1
  156. package/dist/types/src/components/QueryEditor/QueryEditor.d.ts +5 -0
  157. package/dist/types/src/components/QueryEditor/QueryEditor.d.ts.map +1 -0
  158. package/dist/types/src/components/QueryEditor/QueryEditor.stories.d.ts +13 -0
  159. package/dist/types/src/components/QueryEditor/QueryEditor.stories.d.ts.map +1 -0
  160. package/dist/types/src/components/QueryEditor/index.d.ts +2 -0
  161. package/dist/types/src/components/QueryEditor/index.d.ts.map +1 -0
  162. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts +8 -8
  163. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts.map +1 -1
  164. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts +5 -4
  165. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts.map +1 -1
  166. package/dist/types/src/components/TestPanel/TestPanel.d.ts.map +1 -1
  167. package/dist/types/src/components/TestPanel/index.d.ts +0 -1
  168. package/dist/types/src/components/TestPanel/index.d.ts.map +1 -1
  169. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts +3 -2
  170. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts.map +1 -1
  171. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts +1 -1
  172. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts.map +1 -1
  173. package/dist/types/src/components/index.d.ts +4 -5
  174. package/dist/types/src/components/index.d.ts.map +1 -1
  175. package/dist/types/src/constants.d.ts +2 -0
  176. package/dist/types/src/constants.d.ts.map +1 -0
  177. package/dist/types/src/{components → containers}/DeploymentDialog/DeploymentDialog.d.ts +2 -4
  178. package/dist/types/src/containers/DeploymentDialog/DeploymentDialog.d.ts.map +1 -0
  179. package/dist/types/src/{components/NotebookContainer.stories.d.ts → containers/DeploymentDialog/DeploymentDialog.stories.d.ts} +7 -6
  180. package/dist/types/src/containers/DeploymentDialog/DeploymentDialog.stories.d.ts.map +1 -0
  181. package/dist/types/src/containers/DeploymentDialog/index.d.ts +3 -0
  182. package/dist/types/src/containers/DeploymentDialog/index.d.ts.map +1 -0
  183. package/dist/types/src/containers/NotebookContainer/NotebookContainer.d.ts +7 -0
  184. package/dist/types/src/containers/NotebookContainer/NotebookContainer.d.ts.map +1 -0
  185. package/dist/types/src/containers/NotebookContainer/NotebookContainer.stories.d.ts +7 -0
  186. package/dist/types/src/containers/NotebookContainer/NotebookContainer.stories.d.ts.map +1 -0
  187. package/dist/types/src/containers/NotebookContainer/index.d.ts +3 -0
  188. package/dist/types/src/containers/NotebookContainer/index.d.ts.map +1 -0
  189. package/dist/types/src/containers/ScriptContainer/ScriptContainer.d.ts +10 -0
  190. package/dist/types/src/containers/ScriptContainer/ScriptContainer.d.ts.map +1 -0
  191. package/dist/types/src/containers/ScriptContainer/index.d.ts +3 -0
  192. package/dist/types/src/containers/ScriptContainer/index.d.ts.map +1 -0
  193. package/dist/types/src/containers/ScriptObjectSettings/ScriptObjectSettings.d.ts +7 -0
  194. package/dist/types/src/containers/ScriptObjectSettings/ScriptObjectSettings.d.ts.map +1 -0
  195. package/dist/types/src/containers/ScriptObjectSettings/index.d.ts +3 -0
  196. package/dist/types/src/containers/ScriptObjectSettings/index.d.ts.map +1 -0
  197. package/dist/types/src/containers/ScriptPluginSettings/ScriptPluginSettings.d.ts +8 -0
  198. package/dist/types/src/containers/ScriptPluginSettings/ScriptPluginSettings.d.ts.map +1 -0
  199. package/dist/types/src/containers/ScriptPluginSettings/index.d.ts +3 -0
  200. package/dist/types/src/containers/ScriptPluginSettings/index.d.ts.map +1 -0
  201. package/dist/types/src/containers/ScriptProperties/ScriptProperties.d.ts +7 -0
  202. package/dist/types/src/containers/ScriptProperties/ScriptProperties.d.ts.map +1 -0
  203. package/dist/types/src/containers/ScriptProperties/index.d.ts +3 -0
  204. package/dist/types/src/containers/ScriptProperties/index.d.ts.map +1 -0
  205. package/dist/types/src/containers/TestContainer/TestContainer.d.ts +8 -0
  206. package/dist/types/src/containers/TestContainer/TestContainer.d.ts.map +1 -0
  207. package/dist/types/src/containers/TestContainer/index.d.ts +3 -0
  208. package/dist/types/src/containers/TestContainer/index.d.ts.map +1 -0
  209. package/dist/types/src/containers/index.d.ts +9 -0
  210. package/dist/types/src/containers/index.d.ts.map +1 -0
  211. package/dist/types/src/e2e/ai.test.d.ts +2 -0
  212. package/dist/types/src/e2e/ai.test.d.ts.map +1 -0
  213. package/dist/types/src/e2e/deploy.test.d.ts +2 -0
  214. package/dist/types/src/e2e/deploy.test.d.ts.map +1 -0
  215. package/dist/types/src/hooks/deploy.d.ts +17 -31
  216. package/dist/types/src/hooks/deploy.d.ts.map +1 -1
  217. package/dist/types/src/hooks/format.d.ts +5 -4
  218. package/dist/types/src/hooks/format.d.ts.map +1 -1
  219. package/dist/types/src/hooks/index.d.ts +1 -0
  220. package/dist/types/src/hooks/index.d.ts.map +1 -1
  221. package/dist/types/src/hooks/template.d.ts +7 -16
  222. package/dist/types/src/hooks/template.d.ts.map +1 -1
  223. package/dist/types/src/hooks/useCompiler.d.ts +7 -0
  224. package/dist/types/src/hooks/useCompiler.d.ts.map +1 -0
  225. package/dist/types/src/hooks/useCreateAndDeployScriptTemplates.d.ts.map +1 -1
  226. package/dist/types/src/hooks/useToolbarState.d.ts +8 -1
  227. package/dist/types/src/hooks/useToolbarState.d.ts.map +1 -1
  228. package/dist/types/src/index.d.ts +2 -1
  229. package/dist/types/src/index.d.ts.map +1 -1
  230. package/dist/types/src/meta.d.ts +2 -2
  231. package/dist/types/src/meta.d.ts.map +1 -1
  232. package/dist/types/src/notebook/compute-graph.d.ts +58 -0
  233. package/dist/types/src/notebook/compute-graph.d.ts.map +1 -0
  234. package/dist/types/src/notebook/compute-graph.test.d.ts +2 -0
  235. package/dist/types/src/notebook/compute-graph.test.d.ts.map +1 -0
  236. package/dist/types/src/notebook/eval.d.ts +1 -1
  237. package/dist/types/src/notebook/eval.d.ts.map +1 -1
  238. package/dist/types/src/notebook/index.d.ts +1 -1
  239. package/dist/types/src/notebook/index.d.ts.map +1 -1
  240. package/dist/types/src/templates/anthropic.d.ts +8 -0
  241. package/dist/types/src/templates/anthropic.d.ts.map +1 -0
  242. package/dist/types/src/templates/chess-bot.d.ts +16 -0
  243. package/dist/types/src/templates/chess-bot.d.ts.map +1 -0
  244. package/dist/types/src/templates/commentary.d.ts +16 -0
  245. package/dist/types/src/templates/commentary.d.ts.map +1 -0
  246. package/dist/types/src/templates/forex-effect.d.ts +4 -1
  247. package/dist/types/src/templates/forex-effect.d.ts.map +1 -1
  248. package/dist/types/src/templates/forex.d.ts +4 -1
  249. package/dist/types/src/templates/forex.d.ts.map +1 -1
  250. package/dist/types/src/templates/index.d.ts +12 -3
  251. package/dist/types/src/templates/index.d.ts.map +1 -1
  252. package/dist/types/src/templates/ping.d.ts +1 -4
  253. package/dist/types/src/templates/ping.d.ts.map +1 -1
  254. package/dist/types/src/testing/data.d.ts +2 -18
  255. package/dist/types/src/testing/data.d.ts.map +1 -1
  256. package/dist/types/src/testing/simulator.test.d.ts +2 -0
  257. package/dist/types/src/testing/simulator.test.d.ts.map +1 -0
  258. package/dist/types/src/translations.d.ts +4 -3
  259. package/dist/types/src/translations.d.ts.map +1 -1
  260. package/dist/types/src/types/Notebook.d.ts +108 -0
  261. package/dist/types/src/types/Notebook.d.ts.map +1 -0
  262. package/dist/types/src/types/actions.d.ts +30 -56
  263. package/dist/types/src/types/actions.d.ts.map +1 -1
  264. package/dist/types/src/types/capabilities.d.ts +12 -0
  265. package/dist/types/src/types/capabilities.d.ts.map +1 -0
  266. package/dist/types/src/types/events.d.ts +5 -0
  267. package/dist/types/src/types/events.d.ts.map +1 -0
  268. package/dist/types/src/types/index.d.ts +4 -1
  269. package/dist/types/src/types/index.d.ts.map +1 -1
  270. package/dist/types/src/types/types.d.ts +6 -0
  271. package/dist/types/src/types/types.d.ts.map +1 -0
  272. package/dist/types/src/util/deploy.d.ts +4 -4
  273. package/dist/types/src/util/deploy.d.ts.map +1 -1
  274. package/dist/types/src/util/functions.d.ts +3 -3
  275. package/dist/types/src/util/functions.d.ts.map +1 -1
  276. package/dist/types/tsconfig.tsbuildinfo +1 -1
  277. package/package.json +114 -82
  278. package/src/ScriptPlugin.tsx +45 -87
  279. package/src/blueprints/index.ts +5 -0
  280. package/src/blueprints/script-blueprint.ts +31 -0
  281. package/src/capabilities/app-graph-builder/app-graph-builder.ts +56 -0
  282. package/src/capabilities/app-graph-builder/index.ts +7 -0
  283. package/src/capabilities/{artifact-definition.ts → artifact-definition/artifact-definition.ts} +97 -95
  284. package/src/capabilities/artifact-definition/index.ts +7 -0
  285. package/src/capabilities/blueprint-definition/blueprint-definition.ts +17 -0
  286. package/src/capabilities/blueprint-definition/index.ts +7 -0
  287. package/src/capabilities/compiler/compiler.ts +103 -0
  288. package/src/capabilities/compiler/index.ts +7 -0
  289. package/src/capabilities/index.ts +6 -10
  290. package/src/capabilities/operation-resolver/index.ts +7 -0
  291. package/src/capabilities/operation-resolver/operation-resolver.ts +75 -0
  292. package/src/capabilities/react-surface/index.ts +7 -0
  293. package/src/capabilities/react-surface/react-surface.tsx +121 -0
  294. package/src/capabilities/settings/index.ts +7 -0
  295. package/src/capabilities/settings/settings.ts +33 -0
  296. package/src/compiler/compiler.ts +10 -3
  297. package/src/components/FrameContainer/FrameContainer.tsx +6 -5
  298. package/src/components/FrameContainer/frame.html +21 -21
  299. package/src/components/NotebookStack/NotebookCell.tsx +85 -87
  300. package/src/components/NotebookStack/NotebookStack.stories.tsx +32 -10
  301. package/src/components/NotebookStack/NotebookStack.tsx +16 -9
  302. package/src/components/QueryEditor/QueryEditor.stories.tsx +102 -0
  303. package/src/components/QueryEditor/QueryEditor.tsx +47 -0
  304. package/src/components/QueryEditor/index.ts +5 -0
  305. package/src/components/ScriptToolbar/ScriptToolbar.stories.tsx +42 -20
  306. package/src/components/ScriptToolbar/ScriptToolbar.tsx +28 -31
  307. package/src/components/TestPanel/TestPanel.tsx +61 -36
  308. package/src/components/TestPanel/index.ts +0 -1
  309. package/src/components/TypescriptEditor/TypescriptEditor.stories.tsx +25 -18
  310. package/src/components/TypescriptEditor/TypescriptEditor.tsx +70 -74
  311. package/src/components/index.ts +4 -9
  312. package/src/constants.ts +7 -0
  313. package/src/containers/DeploymentDialog/DeploymentDialog.stories.tsx +61 -0
  314. package/src/containers/DeploymentDialog/DeploymentDialog.tsx +99 -0
  315. package/src/containers/DeploymentDialog/index.ts +7 -0
  316. package/src/containers/NotebookContainer/NotebookContainer.stories.tsx +87 -0
  317. package/src/containers/NotebookContainer/NotebookContainer.tsx +268 -0
  318. package/src/containers/NotebookContainer/index.ts +7 -0
  319. package/src/containers/ScriptContainer/ScriptContainer.tsx +84 -0
  320. package/src/containers/ScriptContainer/index.ts +7 -0
  321. package/src/{components/Settings → containers/ScriptObjectSettings}/ScriptObjectSettings.tsx +55 -50
  322. package/src/containers/ScriptObjectSettings/index.ts +7 -0
  323. package/src/{components/Settings → containers/ScriptPluginSettings}/ScriptPluginSettings.tsx +19 -14
  324. package/src/containers/ScriptPluginSettings/index.ts +7 -0
  325. package/src/containers/ScriptProperties/ScriptProperties.tsx +33 -0
  326. package/src/containers/ScriptProperties/index.ts +7 -0
  327. package/src/containers/TestContainer/TestContainer.tsx +28 -0
  328. package/src/containers/TestContainer/index.ts +7 -0
  329. package/src/containers/index.ts +13 -0
  330. package/src/e2e/ai.test.ts +92 -0
  331. package/src/e2e/deploy.test.ts +64 -0
  332. package/src/hooks/deploy.ts +43 -35
  333. package/src/hooks/format.ts +8 -3
  334. package/src/hooks/index.ts +1 -0
  335. package/src/hooks/template.ts +22 -26
  336. package/src/hooks/useCompiler.ts +24 -0
  337. package/src/hooks/useCreateAndDeployScriptTemplates.ts +14 -16
  338. package/src/hooks/useToolbarState.ts +29 -4
  339. package/src/index.ts +2 -1
  340. package/src/meta.ts +8 -4
  341. package/src/notebook/{notebook.test.ts → compute-graph.test.ts} +31 -19
  342. package/src/notebook/{notebook.ts → compute-graph.ts} +65 -18
  343. package/src/notebook/eval.ts +1 -1
  344. package/src/notebook/index.ts +1 -1
  345. package/src/templates/anthropic.ts +42 -0
  346. package/src/templates/chess-bot.ts +58 -0
  347. package/src/templates/commentary.ts +231 -0
  348. package/src/templates/data-generator.ts +1 -1
  349. package/src/templates/forex-effect.ts +22 -27
  350. package/src/templates/forex.ts +7 -6
  351. package/src/templates/gmail.ts +1 -2
  352. package/src/templates/index.ts +18 -5
  353. package/src/templates/ping.ts +14 -5
  354. package/src/testing/data.ts +34 -9
  355. package/src/testing/simulator.test.ts +40 -0
  356. package/src/translations.ts +4 -3
  357. package/src/types/Notebook.ts +41 -0
  358. package/src/types/actions.ts +18 -26
  359. package/src/types/capabilities.ts +17 -0
  360. package/src/types/events.ts +11 -0
  361. package/src/types/index.ts +4 -1
  362. package/src/types/types.ts +15 -0
  363. package/src/util/deploy.ts +30 -40
  364. package/src/util/functions.ts +32 -28
  365. package/src/vite-env.d.ts +2 -0
  366. package/dist/lib/browser/DeploymentDialog-65TWT6S5.mjs +0 -13
  367. package/dist/lib/browser/NotebookContainer-LVGRPFY3.mjs.map +0 -7
  368. package/dist/lib/browser/ScriptContainer-LRTRN7JW.mjs +0 -149
  369. package/dist/lib/browser/ScriptContainer-LRTRN7JW.mjs.map +0 -7
  370. package/dist/lib/browser/app-graph-builder-DPYULSME.mjs +0 -65
  371. package/dist/lib/browser/app-graph-builder-DPYULSME.mjs.map +0 -7
  372. package/dist/lib/browser/blueprint-definition-ET5KZ46I.mjs +0 -28
  373. package/dist/lib/browser/blueprint-definition-ET5KZ46I.mjs.map +0 -7
  374. package/dist/lib/browser/chunk-5CYLWXRH.mjs +0 -89
  375. package/dist/lib/browser/chunk-5CYLWXRH.mjs.map +0 -7
  376. package/dist/lib/browser/chunk-75LH4EUR.mjs +0 -326
  377. package/dist/lib/browser/chunk-75LH4EUR.mjs.map +0 -7
  378. package/dist/lib/browser/chunk-E7DXDICD.mjs +0 -282
  379. package/dist/lib/browser/chunk-E7DXDICD.mjs.map +0 -7
  380. package/dist/lib/browser/chunk-EZVXV6DA.mjs.map +0 -7
  381. package/dist/lib/browser/chunk-I3QSGUFJ.mjs +0 -646
  382. package/dist/lib/browser/chunk-I3QSGUFJ.mjs.map +0 -7
  383. package/dist/lib/browser/chunk-JO2O7W6J.mjs +0 -254
  384. package/dist/lib/browser/chunk-JO2O7W6J.mjs.map +0 -7
  385. package/dist/lib/browser/chunk-N6M34EUC.mjs +0 -112
  386. package/dist/lib/browser/chunk-N6M34EUC.mjs.map +0 -7
  387. package/dist/lib/browser/chunk-NM4WQS4F.mjs +0 -153
  388. package/dist/lib/browser/chunk-NM4WQS4F.mjs.map +0 -7
  389. package/dist/lib/browser/chunk-OKXN2N7M.mjs +0 -15
  390. package/dist/lib/browser/chunk-OKXN2N7M.mjs.map +0 -7
  391. package/dist/lib/browser/chunk-ST3ACVUC.mjs.map +0 -7
  392. package/dist/lib/browser/compiler-G2N2CG63.mjs +0 -98
  393. package/dist/lib/browser/compiler-G2N2CG63.mjs.map +0 -7
  394. package/dist/lib/browser/intent-resolver-JLU7DVLQ.mjs +0 -105
  395. package/dist/lib/browser/intent-resolver-JLU7DVLQ.mjs.map +0 -7
  396. package/dist/lib/browser/react-surface-76SDTUYG.mjs +0 -127
  397. package/dist/lib/browser/react-surface-76SDTUYG.mjs.map +0 -7
  398. package/dist/lib/browser/settings-ERFKVNUK.mjs +0 -25
  399. package/dist/lib/browser/settings-ERFKVNUK.mjs.map +0 -7
  400. package/dist/lib/node-esm/DeploymentDialog-I63ZC2HH.mjs +0 -14
  401. package/dist/lib/node-esm/NotebookContainer-QY5NJGJI.mjs.map +0 -7
  402. package/dist/lib/node-esm/ScriptContainer-SVXCSLNH.mjs +0 -150
  403. package/dist/lib/node-esm/ScriptContainer-SVXCSLNH.mjs.map +0 -7
  404. package/dist/lib/node-esm/app-graph-builder-UXJGHXSL.mjs +0 -66
  405. package/dist/lib/node-esm/app-graph-builder-UXJGHXSL.mjs.map +0 -7
  406. package/dist/lib/node-esm/blueprint-definition-AIYFOT7Q.mjs +0 -30
  407. package/dist/lib/node-esm/blueprint-definition-AIYFOT7Q.mjs.map +0 -7
  408. package/dist/lib/node-esm/chunk-2GVTWESW.mjs.map +0 -7
  409. package/dist/lib/node-esm/chunk-4X375PGY.mjs +0 -90
  410. package/dist/lib/node-esm/chunk-4X375PGY.mjs.map +0 -7
  411. package/dist/lib/node-esm/chunk-67OVZHI3.mjs +0 -327
  412. package/dist/lib/node-esm/chunk-67OVZHI3.mjs.map +0 -7
  413. package/dist/lib/node-esm/chunk-C2ORIPKH.mjs +0 -154
  414. package/dist/lib/node-esm/chunk-C2ORIPKH.mjs.map +0 -7
  415. package/dist/lib/node-esm/chunk-NUXZQQ6P.mjs +0 -16
  416. package/dist/lib/node-esm/chunk-NUXZQQ6P.mjs.map +0 -7
  417. package/dist/lib/node-esm/chunk-OG2SIKHE.mjs.map +0 -7
  418. package/dist/lib/node-esm/chunk-SMFPSKQT.mjs +0 -647
  419. package/dist/lib/node-esm/chunk-SMFPSKQT.mjs.map +0 -7
  420. package/dist/lib/node-esm/chunk-VRSDE4CI.mjs +0 -114
  421. package/dist/lib/node-esm/chunk-VRSDE4CI.mjs.map +0 -7
  422. package/dist/lib/node-esm/chunk-VZAFGLD7.mjs +0 -283
  423. package/dist/lib/node-esm/chunk-VZAFGLD7.mjs.map +0 -7
  424. package/dist/lib/node-esm/chunk-YW36TZ7K.mjs +0 -255
  425. package/dist/lib/node-esm/chunk-YW36TZ7K.mjs.map +0 -7
  426. package/dist/lib/node-esm/compiler-PLDAZ5GJ.mjs +0 -99
  427. package/dist/lib/node-esm/compiler-PLDAZ5GJ.mjs.map +0 -7
  428. package/dist/lib/node-esm/intent-resolver-SFGTIFOG.mjs +0 -106
  429. package/dist/lib/node-esm/intent-resolver-SFGTIFOG.mjs.map +0 -7
  430. package/dist/lib/node-esm/react-surface-SHEBNW4R.mjs +0 -128
  431. package/dist/lib/node-esm/react-surface-SHEBNW4R.mjs.map +0 -7
  432. package/dist/lib/node-esm/settings-5TYXQ42N.mjs +0 -26
  433. package/dist/lib/node-esm/settings-5TYXQ42N.mjs.map +0 -7
  434. package/dist/types/src/capabilities/app-graph-builder.d.ts +0 -4
  435. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +0 -1
  436. package/dist/types/src/capabilities/artifact-definition.d.ts +0 -11
  437. package/dist/types/src/capabilities/artifact-definition.d.ts.map +0 -1
  438. package/dist/types/src/capabilities/blueprint-definition.d.ts +0 -5
  439. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +0 -1
  440. package/dist/types/src/capabilities/capabilities.d.ts +0 -5
  441. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  442. package/dist/types/src/capabilities/compiler.d.ts +0 -4
  443. package/dist/types/src/capabilities/compiler.d.ts.map +0 -1
  444. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  445. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  446. package/dist/types/src/capabilities/react-surface.d.ts +0 -4
  447. package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
  448. package/dist/types/src/capabilities/settings.d.ts +0 -4
  449. package/dist/types/src/capabilities/settings.d.ts.map +0 -1
  450. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.d.ts.map +0 -1
  451. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts +0 -251
  452. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts.map +0 -1
  453. package/dist/types/src/components/DeploymentDialog/index.d.ts +0 -4
  454. package/dist/types/src/components/DeploymentDialog/index.d.ts.map +0 -1
  455. package/dist/types/src/components/NotebookContainer.d.ts +0 -10
  456. package/dist/types/src/components/NotebookContainer.d.ts.map +0 -1
  457. package/dist/types/src/components/NotebookContainer.stories.d.ts.map +0 -1
  458. package/dist/types/src/components/ScriptContainer.d.ts +0 -12
  459. package/dist/types/src/components/ScriptContainer.d.ts.map +0 -1
  460. package/dist/types/src/components/Settings/ScriptObjectSettings.d.ts +0 -8
  461. package/dist/types/src/components/Settings/ScriptObjectSettings.d.ts.map +0 -1
  462. package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts +0 -6
  463. package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts.map +0 -1
  464. package/dist/types/src/components/Settings/index.d.ts +0 -3
  465. package/dist/types/src/components/Settings/index.d.ts.map +0 -1
  466. package/dist/types/src/components/TestPanel/TestContainer.d.ts +0 -8
  467. package/dist/types/src/components/TestPanel/TestContainer.d.ts.map +0 -1
  468. package/dist/types/src/events.d.ts +0 -4
  469. package/dist/types/src/events.d.ts.map +0 -1
  470. package/dist/types/src/notebook/notebook.d.ts +0 -35
  471. package/dist/types/src/notebook/notebook.d.ts.map +0 -1
  472. package/dist/types/src/notebook/notebook.test.d.ts +0 -2
  473. package/dist/types/src/notebook/notebook.test.d.ts.map +0 -1
  474. package/dist/types/src/templates/chess.d.ts +0 -3
  475. package/dist/types/src/templates/chess.d.ts.map +0 -1
  476. package/dist/types/src/types/schema.d.ts +0 -61
  477. package/dist/types/src/types/schema.d.ts.map +0 -1
  478. package/src/capabilities/app-graph-builder.ts +0 -65
  479. package/src/capabilities/blueprint-definition.ts +0 -30
  480. package/src/capabilities/capabilities.ts +0 -12
  481. package/src/capabilities/compiler.ts +0 -34
  482. package/src/capabilities/intent-resolver.ts +0 -87
  483. package/src/capabilities/react-surface.tsx +0 -102
  484. package/src/capabilities/settings.ts +0 -21
  485. package/src/components/DeploymentDialog/DeploymentDialog.stories.tsx +0 -53
  486. package/src/components/DeploymentDialog/DeploymentDialog.tsx +0 -106
  487. package/src/components/DeploymentDialog/index.ts +0 -9
  488. package/src/components/NotebookContainer.stories.tsx +0 -32
  489. package/src/components/NotebookContainer.tsx +0 -124
  490. package/src/components/ScriptContainer.tsx +0 -69
  491. package/src/components/Settings/index.ts +0 -6
  492. package/src/components/TestPanel/TestContainer.tsx +0 -27
  493. package/src/events.ts +0 -11
  494. package/src/templates/chess.ts +0 -49
  495. package/src/types/schema.ts +0 -48
  496. /package/dist/lib/browser/{DeploymentDialog-65TWT6S5.mjs.map → blueprints/index.mjs.map} +0 -0
  497. /package/dist/lib/{node-esm/DeploymentDialog-I63ZC2HH.mjs.map → browser/chunk-J5LGTIGS.mjs.map} +0 -0
@@ -4,13 +4,14 @@
4
4
 
5
5
  import { useEffect, useMemo } from 'react';
6
6
 
7
- import { FunctionType, type ScriptType, getUserFunctionIdInMetadata } from '@dxos/functions';
7
+ import { Obj, Query, Ref } from '@dxos/echo';
8
+ import { Function, type Script, getUserFunctionIdInMetadata } from '@dxos/functions';
8
9
  import { log } from '@dxos/log';
9
10
  import { type Client, useClient } from '@dxos/react-client';
10
- import { Query, Ref, type Space, getMeta, getSpace, useQuery } from '@dxos/react-client/echo';
11
+ import { type Space, getSpace, useQuery } from '@dxos/react-client/echo';
11
12
  import { type TFunction } from '@dxos/react-ui';
12
13
  import { createMenuAction } from '@dxos/react-ui-menu';
13
- import { errorMessageColors } from '@dxos/react-ui-theme';
14
+ import { messageValence } from '@dxos/ui-theme';
14
15
 
15
16
  import { meta } from '../meta';
16
17
  import { deployScript, getFunctionUrl, isScriptDeployed } from '../util';
@@ -24,10 +25,12 @@ export type DeployState = {
24
25
  error: string;
25
26
  };
26
27
 
28
+ import { type ScriptToolbarStateStore } from './useToolbarState';
29
+
27
30
  export type CreateDeployOptions = {
28
- state: Partial<DeployState>;
29
- script: ScriptType;
30
- fn: FunctionType;
31
+ state: ScriptToolbarStateStore;
32
+ script: Script.Script;
33
+ fn: Function.Function;
31
34
  space?: Space;
32
35
  existingFunctionId?: string;
33
36
  client: Client;
@@ -35,12 +38,14 @@ export type CreateDeployOptions = {
35
38
  };
36
39
 
37
40
  export const createDeploy = ({ state, script, space, fn, client, existingFunctionId, t }: CreateDeployOptions) => {
41
+ const { value } = state;
42
+
38
43
  // TODO(wittjosiah): Should this be an action?
39
44
  const errorItem = createMenuAction('error', () => {}, {
40
- label: state.error ?? ['no error label', { ns: meta.id }],
45
+ label: value.error ?? ['no error label', { ns: meta.id }],
41
46
  icon: 'ph--warning-circle--regular',
42
- hidden: !state.error,
43
- classNames: state.error && errorMessageColors,
47
+ hidden: !value.error,
48
+ classNames: value.error && messageValence('error'),
44
49
  });
45
50
 
46
51
  const deployAction = createMenuAction<DeployActionProperties>(
@@ -50,75 +55,78 @@ export const createDeploy = ({ state, script, space, fn, client, existingFunctio
50
55
  return;
51
56
  }
52
57
 
53
- state.error = undefined;
54
- state.deploying = true;
58
+ state.set('error', undefined);
59
+ state.set('deploying', true);
55
60
 
56
61
  const result = await deployScript({ script, client, space, fn, existingFunctionId });
57
62
 
58
63
  if (!result.success) {
59
64
  log.catch(result.error);
60
- state.error = t('upload failed label');
65
+ state.set('error', t('upload failed label'));
61
66
  }
62
67
 
63
- state.deploying = false;
68
+ state.set('deploying', false);
64
69
  },
65
70
  {
66
71
  type: 'deploy',
67
- label: [state.deploying ? 'publishing label' : 'deploy label', { ns: meta.id }],
68
- icon: state.deploying ? 'ph--spinner-gap--regular' : 'ph--cloud-arrow-up--regular',
69
- disabled: state.deploying,
70
- classNames: state.deploying ? '[&_svg]:animate-spin' : '',
72
+ label: [value.deploying ? 'publishing label' : 'deploy label', { ns: meta.id }],
73
+ icon: value.deploying ? 'ph--spinner-gap--regular' : 'ph--cloud-arrow-up--regular',
74
+ disabled: value.deploying,
75
+ classNames: value.deploying ? '[&_svg]:animate-spin' : '',
71
76
  },
72
77
  );
73
78
 
74
79
  const copyAction = createMenuAction<DeployActionProperties>(
75
80
  'copy',
76
81
  async () => {
77
- if (state.functionUrl) {
78
- await navigator.clipboard.writeText(state.functionUrl);
82
+ if (value.functionUrl) {
83
+ await navigator.clipboard.writeText(value.functionUrl);
79
84
  }
80
85
  },
81
86
  {
82
87
  type: 'copy',
83
88
  label: ['copy link label', { ns: meta.id }],
84
89
  icon: 'ph--link--regular',
85
- disabled: !state.functionUrl,
90
+ disabled: !value.functionUrl,
86
91
  },
87
92
  );
88
93
 
89
94
  return {
90
95
  nodes: [errorItem, deployAction, copyAction],
91
96
  edges: [
92
- { source: 'root', target: 'error' },
93
- { source: 'root', target: 'deploy' },
94
- { source: 'root', target: 'copy' },
97
+ { source: 'root', target: 'error', relation: 'child' },
98
+ { source: 'root', target: 'deploy', relation: 'child' },
99
+ { source: 'root', target: 'copy', relation: 'child' },
95
100
  ],
96
101
  };
97
102
  };
98
103
 
99
- export const useDeployState = ({ state, script }: { state: Partial<DeployState>; script: ScriptType }) => {
104
+ export const useDeployState = ({ state, script }: { state: ScriptToolbarStateStore; script: Script.Script }) => {
100
105
  const { space, client, fn, existingFunctionId } = useDeployDeps({ script });
101
106
  useEffect(() => {
102
107
  if (!existingFunctionId) {
103
108
  return;
104
109
  }
105
110
 
106
- state.functionUrl = getFunctionUrl({
107
- script,
108
- fn,
109
- edgeUrl: client.config.values.runtime?.services?.edge?.url ?? '',
110
- });
111
- }, [existingFunctionId, space, fn, script, client.config.values.runtime?.services?.edge?.url]);
111
+ state.set(
112
+ 'functionUrl',
113
+ getFunctionUrl({
114
+ script,
115
+ fn,
116
+ edgeUrl: client.config.values.runtime?.services?.edge?.url ?? '',
117
+ }),
118
+ );
119
+ }, [existingFunctionId, space, fn, script, client.config.values.runtime?.services?.edge?.url, state]);
112
120
 
113
121
  useEffect(() => {
114
- state.deployed = isScriptDeployed({ script, fn });
115
- }, [script.changed, existingFunctionId, fn, script]);
122
+ state.set('deployed', isScriptDeployed({ script, fn }));
123
+ }, [script.changed, existingFunctionId, fn, script, state]);
116
124
  };
117
125
 
118
- export const useDeployDeps = ({ script }: { script: ScriptType }) => {
126
+ export const useDeployDeps = ({ script }: { script: Script.Script }) => {
119
127
  const client = useClient();
120
128
  const space = getSpace(script);
121
- const [fn] = useQuery(space, Query.type(FunctionType, { source: Ref.make(script) }));
122
- const existingFunctionId = useMemo(() => fn && getUserFunctionIdInMetadata(getMeta(fn)), [fn]);
129
+ const [fn] = useQuery(space?.db, Query.type(Function.Function, { source: Ref.make(script) }));
130
+ const existingFunctionId = useMemo(() => fn && getUserFunctionIdInMetadata(Obj.getMeta(fn)), [fn]);
123
131
  return { client, space, fn, existingFunctionId };
124
132
  };
@@ -6,7 +6,8 @@ import { format } from 'prettier';
6
6
  import prettierPluginEstree from 'prettier/plugins/estree';
7
7
  import prettierPluginTypescript from 'prettier/plugins/typescript';
8
8
 
9
- import { type ScriptType } from '@dxos/functions';
9
+ import { Obj } from '@dxos/echo';
10
+ import { type Script } from '@dxos/functions';
10
11
  import { log } from '@dxos/log';
11
12
  import { createMenuAction } from '@dxos/react-ui-menu';
12
13
 
@@ -14,7 +15,7 @@ import { meta } from '../meta';
14
15
 
15
16
  export type FormatActionProperties = { type: 'format' };
16
17
 
17
- export const createFormat = (script: ScriptType) => {
18
+ export const createFormat = (script: Script.Script) => {
18
19
  const formatAction = createMenuAction(
19
20
  'format',
20
21
  async () => {
@@ -23,12 +24,15 @@ export const createFormat = (script: ScriptType) => {
23
24
  }
24
25
 
25
26
  try {
26
- script.source.target!.content = await format(script.source.target!.content, {
27
+ const formatted = await format(script.source.target!.content, {
27
28
  parser: 'typescript',
28
29
  plugins: [prettierPluginEstree, prettierPluginTypescript],
29
30
  semi: true,
30
31
  singleQuote: true,
31
32
  });
33
+ Obj.change(script.source.target!, (s) => {
34
+ s.content = formatted;
35
+ });
32
36
  } catch (err: any) {
33
37
  // TODO(wittjosiah): Show error in UI.
34
38
  log.catch(err);
@@ -46,6 +50,7 @@ export const createFormat = (script: ScriptType) => {
46
50
  {
47
51
  source: 'root',
48
52
  target: 'format',
53
+ relation: 'child',
49
54
  },
50
55
  ],
51
56
  };
@@ -8,3 +8,4 @@ export * from './template';
8
8
 
9
9
  export * from './useCreateAndDeployScriptTemplates';
10
10
  export * from './useToolbarState';
11
+ export * from './useCompiler';
@@ -3,36 +3,33 @@
3
3
  //
4
4
 
5
5
  import { Obj } from '@dxos/echo';
6
- import { FUNCTIONS_PRESET_META_KEY, type ScriptType } from '@dxos/functions';
7
- import { createMenuAction, createMenuItemGroup } from '@dxos/react-ui-menu';
6
+ import { FUNCTIONS_PRESET_META_KEY, type Script } from '@dxos/functions';
7
+ import { createMenuAction } from '@dxos/react-ui-menu';
8
8
 
9
- import { meta } from '../meta';
10
9
  import { templates } from '../templates';
11
10
 
12
11
  export type TemplateActionProperties = { type: 'template'; value: string };
13
12
 
14
- const createTemplateSelectGroup = () => {
15
- // TODO(burdon): This should not be in the toolbar (move to create Object dialog).
16
- return createMenuItemGroup('template-select', {
17
- label: ['template select group label', { ns: meta.id }],
18
- variant: 'dropdownMenu',
19
- });
20
- };
21
-
22
- const createTemplateSelectActions = (script: ScriptType) => {
13
+ const createTemplateSelectActions = (script: Script.Script) => {
23
14
  return templates.map((template) => {
24
15
  return createMenuAction<TemplateActionProperties>(
25
16
  `template--${template.id}`,
26
17
  () => {
27
- script.name = template.name;
28
- script.source!.target!.content = template.source;
29
- const metaKeys = Obj.getMeta(script).keys;
30
- const oldPresetIndex = metaKeys.findIndex((key) => key.source === FUNCTIONS_PRESET_META_KEY);
31
- if (oldPresetIndex >= 0) {
32
- metaKeys.splice(oldPresetIndex, 1);
33
- }
34
- if ('presetId' in template) {
35
- metaKeys.push({ source: FUNCTIONS_PRESET_META_KEY, id: template.presetId });
18
+ Obj.change(script, (s) => {
19
+ s.name = template.name;
20
+ const meta = Obj.getMeta(s);
21
+ const oldPresetIndex = meta.keys.findIndex((key) => key.source === FUNCTIONS_PRESET_META_KEY);
22
+ if (oldPresetIndex >= 0) {
23
+ meta.keys.splice(oldPresetIndex, 1);
24
+ }
25
+ if ('presetId' in template) {
26
+ meta.keys.push({ source: FUNCTIONS_PRESET_META_KEY, id: template.presetId });
27
+ }
28
+ });
29
+ if (script.source?.target) {
30
+ Obj.change(script.source.target, (s) => {
31
+ s.content = template.source;
32
+ });
36
33
  }
37
34
  },
38
35
  {
@@ -44,14 +41,13 @@ const createTemplateSelectActions = (script: ScriptType) => {
44
41
  });
45
42
  };
46
43
 
47
- export const createTemplateSelect = (script: ScriptType) => {
48
- const templateSelectGroup = createTemplateSelectGroup();
44
+ export const createTemplateSelect = (script: Script.Script) => {
49
45
  const templateSelectActions = createTemplateSelectActions(script);
50
46
  return {
51
- nodes: [templateSelectGroup, ...templateSelectActions],
47
+ nodes: [...templateSelectActions],
52
48
  edges: [
53
- { source: 'root', target: 'template-select' },
54
- ...templateSelectActions.map((action) => ({ source: 'template-select', target: action.id })),
49
+ { source: 'root', target: 'template-select', relation: 'child' },
50
+ ...templateSelectActions.map((action) => ({ source: 'template-select', target: action.id, relation: 'child' })),
55
51
  ],
56
52
  };
57
53
  };
@@ -0,0 +1,24 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { useCapabilities, usePluginManager } from '@dxos/app-framework/ui';
6
+ import { runAndForwardErrors } from '@dxos/effect';
7
+ import { useAsyncEffect } from '@dxos/react-ui';
8
+
9
+ import type { Compiler } from '../compiler';
10
+ import { ScriptEvents } from '../types';
11
+ import { ScriptCapabilities } from '../types';
12
+
13
+ /**
14
+ * Asynchronously sets up the compiler and returns it.
15
+ * @returns The compiler instance or undefined if it is not ready.
16
+ */
17
+ export const useCompiler = (): Compiler | undefined => {
18
+ const manager = usePluginManager();
19
+ useAsyncEffect(async () => {
20
+ await manager.activate(ScriptEvents.SetupCompiler).pipe(runAndForwardErrors);
21
+ }, [manager]);
22
+ const [compiler] = useCapabilities(ScriptCapabilities.Compiler);
23
+ return compiler;
24
+ };
@@ -2,19 +2,18 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import * as Function from 'effect/Function';
6
5
  import { useCallback, useState } from 'react';
7
6
 
8
- import { chain, createIntent, useIntentDispatcher } from '@dxos/app-framework';
7
+ import { useOperationInvoker } from '@dxos/app-framework/ui';
9
8
  import { Obj } from '@dxos/echo';
10
- import { ScriptType } from '@dxos/functions';
9
+ import { Script } from '@dxos/functions';
11
10
  import { invariant } from '@dxos/invariant';
12
- import { SpaceAction } from '@dxos/plugin-space/types';
11
+ import { SpaceOperation } from '@dxos/plugin-space/types';
13
12
  import { useClient } from '@dxos/react-client';
14
13
  import { type Space } from '@dxos/react-client/echo';
15
14
 
16
15
  import { type Template } from '../templates';
17
- import { ScriptAction } from '../types';
16
+ import { ScriptOperation } from '../types';
18
17
  import { deployScript } from '../util';
19
18
 
20
19
  type DeploymentStatus = 'idle' | 'pending' | 'success' | 'error';
@@ -27,7 +26,7 @@ type DeploymentStatus = 'idle' | 'pending' | 'success' | 'error';
27
26
  * All creation / deployment operations run concurrently for improved performance.
28
27
  */
29
28
  export const useCreateAndDeployScriptTemplates = (space: Space | undefined, scriptTemplates: Template[]) => {
30
- const { dispatchPromise: dispatch } = useIntentDispatcher();
29
+ const { invokePromise } = useOperationInvoker();
31
30
  const client = useClient();
32
31
  const [status, setStatus] = useState<DeploymentStatus>('idle');
33
32
  const [error, setError] = useState<Error | undefined>(undefined);
@@ -39,21 +38,20 @@ export const useCreateAndDeployScriptTemplates = (space: Space | undefined, scri
39
38
 
40
39
  const deploymentResults = await Promise.all(
41
40
  scriptTemplates.map(async (template) => {
42
- const result = await dispatch(
43
- Function.pipe(
44
- createIntent(ScriptAction.CreateScript, { space, initialTemplateId: template.id as any }),
45
- chain(SpaceAction.AddObject, { target: space }),
46
- ),
47
- );
48
- invariant(Obj.instanceOf(ScriptType, result.data?.object));
49
-
50
- return deployScript({ space, client, script: result.data.object });
41
+ const createResult = await invokePromise(ScriptOperation.CreateScript, {
42
+ db: space.db,
43
+ initialTemplateId: template.id as any,
44
+ });
45
+ invariant(Obj.instanceOf(Script.Script, createResult.data?.object));
46
+ await invokePromise(SpaceOperation.AddObject, { target: space.db, object: createResult.data.object });
47
+
48
+ return deployScript({ space, client, script: createResult.data.object });
51
49
  }),
52
50
  );
53
51
 
54
52
  const hasErrors = deploymentResults.some((result) => !result.success);
55
53
  setStatus(hasErrors ? 'error' : 'success');
56
- }, [space, dispatch, client, scriptTemplates]);
54
+ }, [space, invokePromise, client, scriptTemplates]);
57
55
 
58
56
  // TODO(burdon): Return onCreateAndDeployScripts.
59
57
  return { handleCreateAndDeployScripts, status, error };
@@ -2,15 +2,40 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
+ import { Atom } from '@effect-atom/atom-react';
5
6
  import { useMemo } from 'react';
6
7
 
7
- import { live } from '@dxos/live-object';
8
+ import { Capabilities } from '@dxos/app-framework';
9
+ import { useCapability } from '@dxos/app-framework/ui';
8
10
 
9
11
  import { type DeployState } from './deploy';
10
12
 
11
13
  export type ScriptToolbarState = Partial<DeployState>;
12
14
 
13
- // TODO(burdon): Replace with context provider?
14
- export const useToolbarState = (initialState: ScriptToolbarState = {}) => {
15
- return useMemo(() => live<ScriptToolbarState>(initialState), []);
15
+ export type ScriptToolbarStateStore = {
16
+ atom: Atom.Writable<ScriptToolbarState>;
17
+ get value(): ScriptToolbarState;
18
+ update: (updater: (current: ScriptToolbarState) => ScriptToolbarState) => void;
19
+ set: <K extends keyof ScriptToolbarState>(key: K, value: ScriptToolbarState[K]) => void;
20
+ };
21
+
22
+ export const useToolbarState = (initialState: ScriptToolbarState = {}): ScriptToolbarStateStore => {
23
+ const registry = useCapability(Capabilities.AtomRegistry);
24
+ const atom = useMemo(() => Atom.make<ScriptToolbarState>(initialState), []);
25
+
26
+ return useMemo(
27
+ () => ({
28
+ atom,
29
+ get value() {
30
+ return registry.get(atom);
31
+ },
32
+ update: (updater: (current: ScriptToolbarState) => ScriptToolbarState) => {
33
+ registry.set(atom, updater(registry.get(atom)));
34
+ },
35
+ set: <K extends keyof ScriptToolbarState>(key: K, v: ScriptToolbarState[K]) => {
36
+ registry.set(atom, { ...registry.get(atom), [key]: v });
37
+ },
38
+ }),
39
+ [atom, registry],
40
+ );
16
41
  };
package/src/index.ts CHANGED
@@ -2,8 +2,9 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- export { ScriptCapabilities } from './capabilities';
5
+ export { ScriptCapabilities, ScriptEvents } from './types';
6
6
  export * from './components';
7
+ export * from './containers';
7
8
  export * from './meta';
8
9
  export * from './util';
9
10
 
package/src/meta.ts CHANGED
@@ -2,14 +2,18 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { type PluginMeta } from '@dxos/app-framework';
5
+ import { type Plugin } from '@dxos/app-framework';
6
+ import { trim } from '@dxos/util';
6
7
 
7
- export const meta: PluginMeta = {
8
+ export const meta: Plugin.Meta = {
8
9
  id: 'dxos.org/plugin/script',
9
10
  name: 'Scripts',
10
- description:
11
- 'Scripts enable you to deploy custom functions that run on the edge. These functions can be referenced by your AI agent and called inside of cells in any Sheet. Use scripts to interact with API’s or external data inside of Composer.',
11
+ description: trim`
12
+ Write and deploy custom JavaScript functions that extend your workspace capabilities.
13
+ Create AI agent tools, spreadsheet formulas, and automation scripts that integrate seamlessly with other plugins.
14
+ `,
12
15
  icon: 'ph--code--regular',
16
+ iconHue: 'sky',
13
17
  source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-explorer',
14
18
  tags: ['labs'],
15
19
  screenshots: ['https://dxos.network/plugin-details-scripts-dark.png'],
@@ -2,17 +2,21 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
+ import { Registry } from '@effect-atom/atom-react';
5
6
  import { describe, expect, test } from 'vitest';
6
7
 
8
+ import { Obj } from '@dxos/echo';
9
+
7
10
  import { createNotebook } from '../testing';
8
11
 
9
- import { ComputeGraph } from './notebook';
12
+ import { ComputeGraph } from './compute-graph';
10
13
 
11
14
  describe('notebook', () => {
12
- test('parse dependency graph', () => {
15
+ test('parse dependency graph', async () => {
16
+ const registry = Registry.make();
13
17
  const notebook = createNotebook();
14
- const computer = new ComputeGraph(notebook);
15
- const result = computer.parse();
18
+ const graph = new ComputeGraph(notebook, registry);
19
+ const result = graph.parse();
16
20
 
17
21
  const getId = (i: number) => notebook.cells[i].id;
18
22
 
@@ -24,7 +28,7 @@ describe('notebook', () => {
24
28
  });
25
29
 
26
30
  // Compute values.
27
- const values = computer.evaluate();
31
+ const values = await graph.evaluate();
28
32
  expect(values).toEqual({
29
33
  [getId(0)]: 300,
30
34
  [getId(2)]: 200,
@@ -33,36 +37,44 @@ describe('notebook', () => {
33
37
  });
34
38
  });
35
39
 
36
- test('evalScript blocks access to window and document', () => {
40
+ test('evalScript blocks access to window and document', async () => {
41
+ const registry = Registry.make();
37
42
  const notebook = createNotebook();
38
43
  // Replace one of the cells with code that tries to access window/document.
39
- if (notebook.cells[2].script?.target) {
40
- notebook.cells[2].script.target.content = 'b = typeof window';
44
+ const sourceTarget = notebook.cells[2].source?.target;
45
+ if (sourceTarget) {
46
+ Obj.change(sourceTarget, (t) => {
47
+ t.content = 'b = typeof window';
48
+ });
41
49
  }
42
50
 
43
- const computer = new ComputeGraph(notebook);
44
- computer.parse();
45
- const values = computer.evaluate();
51
+ const graph = new ComputeGraph(notebook, registry);
52
+ graph.parse();
53
+ const values = await graph.evaluate();
46
54
 
47
55
  // Should evaluate to 'undefined' since window is blocked.
48
56
  expect(values[notebook.cells[2].id]).toBe('undefined');
49
57
 
50
58
  // Test document access.
51
- if (notebook.cells[2].script?.target) {
52
- notebook.cells[2].script.target.content = 'b = typeof document';
59
+ if (sourceTarget) {
60
+ Obj.change(sourceTarget, (t) => {
61
+ t.content = 'b = typeof document';
62
+ });
53
63
  }
54
- computer.parse();
55
- const values2 = computer.evaluate();
64
+ graph.parse();
65
+ const values2 = await graph.evaluate();
56
66
 
57
67
  // Should evaluate to 'undefined' since document is blocked.
58
68
  expect(values2[notebook.cells[2].id]).toBe('undefined');
59
69
 
60
70
  // Test that safe globals still work.
61
- if (notebook.cells[2].script?.target) {
62
- notebook.cells[2].script.target.content = 'b = Math.max(100, 200)';
71
+ if (sourceTarget) {
72
+ Obj.change(sourceTarget, (t) => {
73
+ t.content = 'b = Math.max(100, 200)';
74
+ });
63
75
  }
64
- computer.parse();
65
- const values3 = computer.evaluate();
76
+ graph.parse();
77
+ const values3 = await graph.evaluate();
66
78
 
67
79
  // Should evaluate correctly.
68
80
  expect(values3[notebook.cells[2].id]).toBe(200);