@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
@@ -2,14 +2,9 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { lazy } from 'react';
6
-
5
+ export * from './FrameContainer';
7
6
  export * from './NotebookStack';
8
- export * from './Settings';
7
+ export * from './QueryEditor';
8
+ export * from './ScriptToolbar';
9
9
  export * from './TestPanel';
10
-
11
- export { DEPLOYMENT_DIALOG } from './DeploymentDialog';
12
-
13
- export const ScriptContainer = lazy(() => import('./ScriptContainer'));
14
- export const DeploymentDialog = lazy(() => import('./DeploymentDialog'));
15
- export const NotebookContainer = lazy(() => import('./NotebookContainer'));
10
+ export * from './TypescriptEditor';
@@ -0,0 +1,7 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { meta } from './meta';
6
+
7
+ export const DEPLOYMENT_DIALOG = `${meta.id}/deployment/dialog`;
@@ -0,0 +1,61 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ import { type Meta, type StoryObj } from '@storybook/react-vite';
6
+ import React, { useMemo } from 'react';
7
+
8
+ import { OperationPlugin, RuntimePlugin } 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';
12
+ import { Dialog } from '@dxos/react-ui';
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
+ const DeploymentDialogStory = () => {
21
+ const accessToken = useMemo(
22
+ () =>
23
+ Obj.make(AccessToken.AccessToken, {
24
+ source: 'example.com',
25
+ token: 'example-token',
26
+ }),
27
+ [],
28
+ );
29
+ const scriptTemplates = useMemo(
30
+ () => [
31
+ { id: 't-1', name: 'Script 1', source: 'template1' },
32
+ { id: 't-2', name: 'Script 2', source: 'template2' },
33
+ { id: 't-3', name: 'Script 3', source: 'template3' },
34
+ ],
35
+ [],
36
+ );
37
+ return (
38
+ <Dialog.Root defaultOpen={true}>
39
+ <DeploymentDialog accessToken={accessToken} scriptTemplates={scriptTemplates} />
40
+ </Dialog.Root>
41
+ );
42
+ };
43
+
44
+ const meta = {
45
+ title: 'plugins/plugin-script/containers/DeploymentDialog',
46
+ component: DeploymentDialogStory,
47
+ parameters: { translations },
48
+ // TODO(wittjosiah): Try to write story which does not depend on plugin manager.
49
+ decorators: [
50
+ withTheme(),
51
+ withPluginManager({
52
+ plugins: [OperationPlugin(), RuntimePlugin(), ClientPlugin({})],
53
+ }),
54
+ ],
55
+ } satisfies Meta<typeof DeploymentDialogStory>;
56
+
57
+ export default meta;
58
+
59
+ type Story = StoryObj<typeof meta>;
60
+
61
+ export const Default: Story = {};
@@ -0,0 +1,99 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import React, { useEffect, useMemo } from 'react';
6
+
7
+ import { useOperationInvoker } from '@dxos/app-framework/ui';
8
+ import { LayoutOperation } from '@dxos/app-toolkit';
9
+ import { getSpace } from '@dxos/react-client/echo';
10
+ import { Button, Dialog, IconButton, useTranslation } from '@dxos/react-ui';
11
+ import { type AccessToken } from '@dxos/types';
12
+
13
+ import { useCreateAndDeployScriptTemplates } from '../../hooks';
14
+ import { meta } from '../../meta';
15
+ import { type Template } from '../../templates';
16
+
17
+ // TODO(ZaymonFC):
18
+ // - Show activity and feedback to the user.
19
+ // - Only take an array of templateIds and get the name from the data.
20
+ // - Pending / onError states.
21
+
22
+ export type DeploymentDialogProps = {
23
+ accessToken: AccessToken.AccessToken;
24
+ scriptTemplates: Template[];
25
+ };
26
+
27
+ export const DeploymentDialog = ({ accessToken, scriptTemplates }: DeploymentDialogProps) => {
28
+ const { t } = useTranslation(meta.id);
29
+ const space = useMemo(() => getSpace(accessToken), [accessToken]);
30
+
31
+ // TODO(ZaymonFC): Thinking further. All of this should get moved to intents to run async in the background.
32
+ // Deployment shouldn't be tied to the lifecycle of the dialogue component.
33
+ const { handleCreateAndDeployScripts, status } = useCreateAndDeployScriptTemplates(space, scriptTemplates);
34
+ const { invokePromise } = useOperationInvoker();
35
+
36
+ useEffect(() => {
37
+ if (status === 'success') {
38
+ // TODO(ZaymonFC): We can probably re-use this toast for normal script deployment.
39
+ void invokePromise(LayoutOperation.AddToast, {
40
+ id: `${meta.id}/deployment-success`,
41
+ icon: 'ph--check--regular',
42
+ duration: Infinity,
43
+ title: ['script deployment toast label', { ns: meta.id, count: scriptTemplates.length }],
44
+ description: ['script deployment toast description', { ns: meta.id, count: scriptTemplates.length }],
45
+ closeLabel: ['script deployment toast close label', { ns: meta.id, count: scriptTemplates.length }],
46
+ });
47
+ void invokePromise(LayoutOperation.UpdateDialog, { state: false });
48
+ }
49
+ if (status === 'error') {
50
+ void invokePromise(LayoutOperation.UpdateDialog, { state: false });
51
+ void invokePromise(LayoutOperation.AddToast, {
52
+ id: `${meta.id}/deployment-error`,
53
+ icon: 'ph--warning--regular',
54
+ duration: Infinity,
55
+ title: ['script deployment error toast label', { ns: meta.id, count: scriptTemplates.length }],
56
+ description: ['script deployment error toast description', { ns: meta.id, count: scriptTemplates.length }],
57
+ closeLabel: ['script deployment error toast close label', { ns: meta.id, count: scriptTemplates.length }],
58
+ });
59
+ }
60
+ }, [status, invokePromise]);
61
+
62
+ return (
63
+ <Dialog.Content>
64
+ <div className='flex justify-between items-center'>
65
+ <Dialog.Title>{t('deployment dialog title')}</Dialog.Title>
66
+ <Dialog.Close asChild>
67
+ <IconButton icon='ph--x--regular' size={4} label='Close' iconOnly density='fine' variant='ghost' />
68
+ </Dialog.Close>
69
+ </div>
70
+ <div role='none' className='py-4'>
71
+ {/* TODO: Implement deployment logic and UI. */}
72
+ <p>
73
+ {t('deployment dialog scripts found message', {
74
+ count: scriptTemplates.length,
75
+ })}
76
+ </p>
77
+ <ul className='pt-2'>
78
+ {scriptTemplates.map((template) => {
79
+ return <li key={template.id}>{template.name}</li>;
80
+ })}
81
+ </ul>
82
+ </div>
83
+ <div role='none' className='flex flex-row-reverse gap-1'>
84
+ <Button variant='primary' onClick={handleCreateAndDeployScripts} disabled={status === 'pending'}>
85
+ {status === 'pending'
86
+ ? t('deployment dialog deploy functions pending button label', {
87
+ count: scriptTemplates.length,
88
+ })
89
+ : t('deployment dialog deploy functions button label', {
90
+ count: scriptTemplates.length,
91
+ })}
92
+ </Button>
93
+ <Dialog.Close asChild disabled={status === 'pending'}>
94
+ <Button disabled={status === 'pending'}>{t('deployment dialog skip button label')}</Button>
95
+ </Dialog.Close>
96
+ </div>
97
+ </Dialog.Content>
98
+ );
99
+ };
@@ -0,0 +1,7 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { DeploymentDialog } from './DeploymentDialog';
6
+
7
+ export default DeploymentDialog;
@@ -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 { AgentFunctions } 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/containers/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: 'w-prose-max-width' }),
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(AgentFunctions.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
+ };
@@ -0,0 +1,268 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { RegistryContext } from '@effect-atom/atom-react';
6
+ import * as Cause from 'effect/Cause';
7
+ import * as Effect from 'effect/Effect';
8
+ import * as Exit from 'effect/Exit';
9
+ import type * as Types from 'effect/Types';
10
+ import React, { useCallback, useContext, useMemo, useState } from 'react';
11
+
12
+ import { type SurfaceComponentProps } from '@dxos/app-toolkit/ui';
13
+ import { AgentFunctions } from '@dxos/assistant-toolkit';
14
+ import { Blueprint, Prompt } from '@dxos/blueprints';
15
+ import { Filter, Obj, Query, Ref } from '@dxos/echo';
16
+ import { QueryBuilder } from '@dxos/echo-query';
17
+ import { type FunctionDefinition, FunctionInvocationService, TracingService } from '@dxos/functions';
18
+ import { invariant } from '@dxos/invariant';
19
+ import { log } from '@dxos/log';
20
+ import { useComputeRuntimeCallback } from '@dxos/plugin-automation';
21
+ import { Graph } from '@dxos/plugin-explorer/types';
22
+ import { DropdownMenu, IconButton, Panel, Toolbar, useTranslation } from '@dxos/react-ui';
23
+ import { useAttention } from '@dxos/react-ui-attention';
24
+ import { Text, ViewModel } from '@dxos/schema';
25
+ import { isNonNullable } from '@dxos/util';
26
+
27
+ import { NotebookMenu, NotebookStack, type NotebookStackProps, type TypescriptEditorProps } from '../../components';
28
+ import { meta } from '../../meta';
29
+ import { ComputeGraph } from '../../notebook';
30
+ import { type Notebook } from '../../types';
31
+
32
+ const INCLUDE_BLUEPRINTS = [
33
+ 'dxos.org/blueprint/assistant',
34
+ 'dxos.org/blueprint/database',
35
+ 'dxos.org/blueprint/markdown',
36
+ ];
37
+
38
+ // TODO(burdon): Support calling named deployed functions (as with sheet).
39
+
40
+ export type NotebookContainerProps = SurfaceComponentProps<Notebook.Notebook, Pick<TypescriptEditorProps, 'env'>>;
41
+
42
+ export const NotebookContainer = ({ role, subject: notebook, env }: NotebookContainerProps) => {
43
+ const { t } = useTranslation(meta.id);
44
+ const registry = useContext(RegistryContext);
45
+ const db = notebook && Obj.getDatabase(notebook);
46
+ const attendableId = notebook ? Obj.getDXN(notebook).toString() : '';
47
+ const { hasAttention } = useAttention(attendableId);
48
+
49
+ // TODO(burdon): Consolidate execution and state (with graph).
50
+ // Generalize ComputeGraph evaluation function (using effects).
51
+ const graph = useMemo(() => notebook && new ComputeGraph(notebook, registry), [notebook, registry]);
52
+
53
+ const [queryValues, setQueryValues] = useState<Record<string, any>>({});
54
+ const handleExecQueries = useCallback(async () => {
55
+ invariant(db);
56
+
57
+ const builder = new QueryBuilder();
58
+ for (const cell of notebook?.cells ?? []) {
59
+ if (cell.type === 'query') {
60
+ if (cell.source?.target) {
61
+ const source = cell.source.target.content;
62
+ const { name, filter } = builder.build(source);
63
+ if (filter) {
64
+ const ast = Query.select(filter).ast;
65
+ const graph = cell.graph?.target;
66
+ if (!graph) {
67
+ const { view } = await ViewModel.makeFromDatabase({ db });
68
+ const newGraph = Graph.make({ query: { ast }, view });
69
+ Obj.change(notebook!, (n) => {
70
+ const c = n.cells.find((c) => c.id === cell.id);
71
+ if (c) {
72
+ c.graph = Ref.make(newGraph);
73
+ c.name = name;
74
+ }
75
+ });
76
+ } else {
77
+ Obj.change(graph, (g) => {
78
+ g.query.ast = ast as Obj.Mutable<typeof ast>;
79
+ });
80
+ }
81
+ }
82
+ }
83
+
84
+ if (cell.name && cell.graph?.target) {
85
+ const graph = Obj.getSnapshot(cell.graph?.target);
86
+ const query = Query.fromAst(graph.query.ast);
87
+ const objects = await db.query(query).run();
88
+ const objectIds = objects?.map((obj) => obj.id);
89
+ setQueryValues((prev) => ({ ...prev, [cell.name!]: objectIds }));
90
+ }
91
+ }
92
+ }
93
+ }, [db, notebook, graph]);
94
+
95
+ const [promptResults, setPromptResults] = useState<Record<string, string>>({});
96
+ const handleExecPrompts = useComputeRuntimeCallback(
97
+ db?.spaceId,
98
+ Effect.fnUntraced(function* () {
99
+ invariant(graph);
100
+
101
+ const prompts =
102
+ notebook?.cells
103
+ .filter((cell) => cell.type === 'prompt')
104
+ .map((cell) => cell.prompt)
105
+ .filter(isNonNullable) ?? [];
106
+
107
+ for (const prompt of prompts) {
108
+ yield* runPrompt({
109
+ prompt,
110
+ input: { ...queryValues, ...graph.getValuesByName() },
111
+ onResult: (result) =>
112
+ setPromptResults((prev) => ({
113
+ ...prev,
114
+ [prompt.dxn.toString()]: result,
115
+ })),
116
+ });
117
+ }
118
+ }),
119
+ [notebook, graph, queryValues],
120
+ );
121
+
122
+ // TODO(burdon): Cache values in context (preserve when switched).
123
+ const handleCompute = useCallback(async () => {
124
+ // TODO(burdon): Generalize executors (dependencies).
125
+ await graph?.evaluate();
126
+ await handleExecQueries();
127
+ await handleExecPrompts();
128
+ }, [graph, handleExecQueries, handleExecPrompts]);
129
+
130
+ const handleRearrange = useCallback<NonNullable<NotebookStackProps['onRearrange']>>(
131
+ (source, target) => {
132
+ invariant(notebook);
133
+ const from = notebook.cells.findIndex((cell) => cell.id === source.id);
134
+ const to = notebook.cells.findIndex((cell) => cell.id === target.id);
135
+ if (from != null && to != null) {
136
+ Obj.change(notebook, (n) => {
137
+ const cell = n.cells.splice(from, 1)[0];
138
+ if (cell) {
139
+ n.cells.splice(to, 0, cell);
140
+ }
141
+ });
142
+ }
143
+ },
144
+ [notebook],
145
+ );
146
+
147
+ const handleCellInsert = useCallback<NonNullable<NotebookStackProps['onCellInsert']>>(
148
+ async (type, after) => {
149
+ invariant(notebook);
150
+ const cell: Types.Mutable<Notebook.Cell> = { id: crypto.randomUUID(), type };
151
+ switch (type) {
152
+ case 'markdown':
153
+ case 'script':
154
+ case 'query': {
155
+ cell.source = Ref.make(Text.make());
156
+ break;
157
+ }
158
+
159
+ case 'prompt': {
160
+ if (db) {
161
+ const objects = await db.query(Query.select(Filter.type(Blueprint.Blueprint))).run();
162
+ const blueprints = objects
163
+ .filter((blueprint) => INCLUDE_BLUEPRINTS.includes(blueprint.key))
164
+ .map((blueprint) => Ref.make(blueprint));
165
+ cell.prompt = Ref.make(Prompt.make({ instructions: '', blueprints }));
166
+ }
167
+ break;
168
+ }
169
+ }
170
+
171
+ const idx = after ? notebook.cells.findIndex((cell) => cell.id === after) : notebook.cells.length;
172
+ Obj.change(notebook, (n) => {
173
+ n.cells.splice(idx, 0, cell);
174
+ });
175
+ },
176
+ [db, notebook],
177
+ );
178
+
179
+ const handleCellDelete = useCallback<NonNullable<NotebookStackProps['onCellDelete']>>(
180
+ (id) => {
181
+ invariant(notebook);
182
+ const idx = notebook.cells.findIndex((cell) => cell.id === id);
183
+ if (idx !== -1) {
184
+ Obj.change(notebook, (n) => {
185
+ n.cells.splice(idx, 1);
186
+ });
187
+ }
188
+ },
189
+ [notebook],
190
+ );
191
+
192
+ return (
193
+ <Panel.Root role={role} className='dx-article'>
194
+ <Panel.Toolbar asChild>
195
+ <Toolbar.Root disabled={!hasAttention} textBlockWidth>
196
+ <DropdownMenu.Root>
197
+ <DropdownMenu.Trigger asChild>
198
+ <IconButton icon='ph--plus--regular' iconOnly label={t('notebook cell insert label')} />
199
+ </DropdownMenu.Trigger>
200
+ <NotebookMenu onCellInsert={handleCellInsert} />
201
+ </DropdownMenu.Root>
202
+ <Toolbar.IconButton
203
+ icon='ph--play--fill'
204
+ iconOnly
205
+ label={t('compute label')}
206
+ classNames='text-green-500'
207
+ onClick={handleCompute}
208
+ />
209
+ </Toolbar.Root>
210
+ </Panel.Toolbar>
211
+ <Panel.Content asChild>
212
+ <NotebookStack
213
+ db={db}
214
+ notebook={notebook}
215
+ graph={graph}
216
+ env={env}
217
+ promptResults={promptResults}
218
+ onRearrange={handleRearrange}
219
+ onCellInsert={handleCellInsert}
220
+ onCellDelete={handleCellDelete}
221
+ />
222
+ </Panel.Content>
223
+ </Panel.Root>
224
+ );
225
+ };
226
+
227
+ // TODO(wittjosiah): Factor out. Copied from PromptArticle in plugin-assistant.
228
+ const runPrompt = Effect.fn(function* ({
229
+ prompt,
230
+ input,
231
+ onResult,
232
+ }: {
233
+ prompt: Ref.Ref<Prompt.Prompt>;
234
+ input: Record<string, any>;
235
+ onResult: (result: string) => void;
236
+ }) {
237
+ const inputData: FunctionDefinition.Input<typeof AgentFunctions.Prompt> = { prompt, input };
238
+ const tracer = yield* TracingService;
239
+ const trace = yield* tracer.traceInvocationStart({
240
+ target: undefined,
241
+ payload: {
242
+ data: {},
243
+ },
244
+ });
245
+
246
+ // Invoke the function.
247
+ const result = yield* FunctionInvocationService.invokeFunction(AgentFunctions.Prompt, inputData).pipe(
248
+ Effect.provide(trace.invocationTraceQueue ? TracingService.layerInvocation(trace) : TracingService.layerNoop),
249
+ Effect.exit,
250
+ );
251
+
252
+ Exit.match(result, {
253
+ onFailure: (cause) => {
254
+ const error = Cause.prettyErrors(cause)[0];
255
+ log.error(error.message, error.cause ?? error.stack);
256
+ onResult(error.message);
257
+ },
258
+ onSuccess: (result: any) => {
259
+ onResult(result.note);
260
+ },
261
+ });
262
+
263
+ yield* tracer.traceInvocationEnd({
264
+ trace,
265
+ // TODO(dmaretskyi): Might miss errors.
266
+ exception: Exit.isFailure(result) ? Cause.prettyErrors(result.cause)[0] : undefined,
267
+ });
268
+ });
@@ -0,0 +1,7 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { NotebookContainer } from './NotebookContainer';
6
+
7
+ export default NotebookContainer;
@@ -0,0 +1,84 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ import React, { useMemo } from 'react';
6
+
7
+ import { type SurfaceComponentProps } from '@dxos/app-toolkit/ui';
8
+ import { Obj } from '@dxos/echo';
9
+ import { createDocAccessor } from '@dxos/echo-db';
10
+ import { type Script } from '@dxos/functions';
11
+ import { getSpace } from '@dxos/react-client/echo';
12
+ import { useIdentity } from '@dxos/react-client/halo';
13
+ import { Panel } from '@dxos/react-ui';
14
+ import { createDataExtensions, listener, stackItemContentEditorClassNames } from '@dxos/ui-editor';
15
+
16
+ import { ScriptToolbar, TypescriptEditor, type TypescriptEditorProps } from '../../components';
17
+ import { useDeployState, useToolbarState } from '../../hooks';
18
+ import { type ScriptSettings } from '../../types';
19
+
20
+ export type ScriptEditorProps = SurfaceComponentProps<
21
+ Script.Script,
22
+ {
23
+ settings?: ScriptSettings;
24
+ } & Pick<TypescriptEditorProps, 'env'>
25
+ >;
26
+
27
+ export const ScriptContainer = ({
28
+ role,
29
+ subject: script,
30
+ settings = { editorInputMode: 'vscode' },
31
+ env,
32
+ }: ScriptEditorProps) => {
33
+ const identity = useIdentity();
34
+ const space = getSpace(script);
35
+ const state = useToolbarState();
36
+ useDeployState({ script, state });
37
+
38
+ const extensions = useMemo(() => {
39
+ if (!script.source.target) {
40
+ return [];
41
+ }
42
+
43
+ return [
44
+ createDataExtensions({
45
+ id: script.id,
46
+ text: createDocAccessor(script.source.target, ['content']),
47
+ messenger: space,
48
+ identity,
49
+ }),
50
+ listener({
51
+ onChange: ({ text }) => {
52
+ if (script.source.target?.content !== text) {
53
+ Obj.change(script, (s) => {
54
+ s.changed = true;
55
+ });
56
+ }
57
+ },
58
+ }),
59
+ ];
60
+ }, [identity, space, script, script.source.target]);
61
+
62
+ if (!extensions.length) {
63
+ return null;
64
+ }
65
+
66
+ return (
67
+ <Panel.Root role={role} className='dx-article'>
68
+ <Panel.Toolbar asChild>
69
+ <ScriptToolbar state={state} role={role} script={script} />
70
+ </Panel.Toolbar>
71
+ <Panel.Content asChild>
72
+ <TypescriptEditor
73
+ id={script.id}
74
+ env={env}
75
+ initialValue={script.source?.target?.content}
76
+ extensions={extensions}
77
+ classNames={stackItemContentEditorClassNames(role)}
78
+ inputMode={settings.editorInputMode}
79
+ toolbar
80
+ />
81
+ </Panel.Content>
82
+ </Panel.Root>
83
+ );
84
+ };
@@ -0,0 +1,7 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ import { ScriptContainer } from './ScriptContainer';
6
+
7
+ export default ScriptContainer;