@dxos/plugin-script 0.8.4-main.c4373fc → 0.8.4-main.d9fc60f731

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 (579) hide show
  1. package/LICENSE +102 -5
  2. package/PLUGIN.mdl +515 -0
  3. package/README.md +15 -13
  4. package/dist/lib/neutral/DeploymentDialog-M3AFYQHC.mjs +114 -0
  5. package/dist/lib/neutral/DeploymentDialog-M3AFYQHC.mjs.map +7 -0
  6. package/dist/lib/neutral/NotebookArticle-NV4AHOOS.mjs +763 -0
  7. package/dist/lib/neutral/NotebookArticle-NV4AHOOS.mjs.map +7 -0
  8. package/dist/lib/neutral/ScriptArticle-UBT27SB6.mjs +79 -0
  9. package/dist/lib/neutral/ScriptArticle-UBT27SB6.mjs.map +7 -0
  10. package/dist/lib/neutral/ScriptPlugin.mjs +51 -0
  11. package/dist/lib/neutral/ScriptPlugin.mjs.map +7 -0
  12. package/dist/lib/neutral/ScriptPlugin.node.mjs +27 -0
  13. package/dist/lib/neutral/ScriptPlugin.node.mjs.map +7 -0
  14. package/dist/lib/neutral/ScriptPlugin.workerd.mjs +21 -0
  15. package/dist/lib/neutral/ScriptPlugin.workerd.mjs.map +7 -0
  16. package/dist/lib/neutral/ScriptPluginSettings-T4JMUSHN.mjs +31 -0
  17. package/dist/lib/neutral/ScriptPluginSettings-T4JMUSHN.mjs.map +7 -0
  18. package/dist/lib/neutral/ScriptProperties-RLXNAN3N.mjs +297 -0
  19. package/dist/lib/neutral/ScriptProperties-RLXNAN3N.mjs.map +7 -0
  20. package/dist/lib/neutral/TestContainer-AFVTBYSJ.mjs +44 -0
  21. package/dist/lib/neutral/TestContainer-AFVTBYSJ.mjs.map +7 -0
  22. package/dist/lib/neutral/app-graph-builder-7AWFCEQF.mjs +52 -0
  23. package/dist/lib/neutral/app-graph-builder-7AWFCEQF.mjs.map +7 -0
  24. package/dist/lib/neutral/blueprint-definition-T33SBPP2.mjs +15 -0
  25. package/dist/lib/neutral/blueprint-definition-T33SBPP2.mjs.map +7 -0
  26. package/dist/lib/neutral/blueprints/index.mjs +10 -0
  27. package/dist/lib/neutral/capabilities/index.mjs +21 -0
  28. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  29. package/dist/lib/neutral/capabilities/node.mjs +17 -0
  30. package/dist/lib/neutral/capabilities/node.mjs.map +7 -0
  31. package/dist/lib/neutral/chunk-2REUEDUA.mjs +56 -0
  32. package/dist/lib/neutral/chunk-2REUEDUA.mjs.map +7 -0
  33. package/dist/lib/neutral/chunk-BDHDBPVM.mjs +52 -0
  34. package/dist/lib/neutral/chunk-BDHDBPVM.mjs.map +7 -0
  35. package/dist/lib/neutral/chunk-C4O7EV6M.mjs +123 -0
  36. package/dist/lib/neutral/chunk-C4O7EV6M.mjs.map +7 -0
  37. package/dist/lib/neutral/chunk-H2BRWQMY.mjs +96 -0
  38. package/dist/lib/neutral/chunk-H2BRWQMY.mjs.map +7 -0
  39. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
  40. package/dist/lib/neutral/chunk-LHEJXJEL.mjs +8 -0
  41. package/dist/lib/neutral/chunk-LHEJXJEL.mjs.map +7 -0
  42. package/dist/lib/neutral/chunk-NQOIENTU.mjs +8 -0
  43. package/dist/lib/neutral/chunk-NQOIENTU.mjs.map +7 -0
  44. package/dist/lib/neutral/chunk-TRKXIP2Q.mjs +345 -0
  45. package/dist/lib/neutral/chunk-TRKXIP2Q.mjs.map +7 -0
  46. package/dist/lib/neutral/chunk-UA3BWOCZ.mjs +38 -0
  47. package/dist/lib/neutral/chunk-UA3BWOCZ.mjs.map +7 -0
  48. package/dist/lib/neutral/chunk-VXDJH6OL.mjs +150 -0
  49. package/dist/lib/neutral/chunk-VXDJH6OL.mjs.map +7 -0
  50. package/dist/lib/neutral/compiler-ODK4UA2N.mjs +101 -0
  51. package/dist/lib/neutral/compiler-ODK4UA2N.mjs.map +7 -0
  52. package/dist/lib/neutral/components/index.mjs +664 -0
  53. package/dist/lib/neutral/components/index.mjs.map +7 -0
  54. package/dist/lib/neutral/containers/index.mjs +17 -0
  55. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  56. package/dist/lib/neutral/create-WQJXMOUE.mjs +46 -0
  57. package/dist/lib/neutral/create-WQJXMOUE.mjs.map +7 -0
  58. package/dist/lib/neutral/create-object-FZM5ASWM.mjs +45 -0
  59. package/dist/lib/neutral/create-object-FZM5ASWM.mjs.map +7 -0
  60. package/dist/lib/neutral/create-script-66DO3UJO.mjs +45 -0
  61. package/dist/lib/neutral/create-script-66DO3UJO.mjs.map +7 -0
  62. package/dist/lib/neutral/delete-HCQIQFVP.mjs +21 -0
  63. package/dist/lib/neutral/delete-HCQIQFVP.mjs.map +7 -0
  64. package/dist/lib/neutral/deploy-7JVMMHSH.mjs +63 -0
  65. package/dist/lib/neutral/deploy-7JVMMHSH.mjs.map +7 -0
  66. package/dist/lib/neutral/hooks/index.mjs +369 -0
  67. package/dist/lib/neutral/hooks/index.mjs.map +7 -0
  68. package/dist/lib/neutral/index.mjs +41 -0
  69. package/dist/lib/neutral/inspect-invocations-6MW73SDV.mjs +59 -0
  70. package/dist/lib/neutral/inspect-invocations-6MW73SDV.mjs.map +7 -0
  71. package/dist/lib/neutral/install-function-FJIE2JAI.mjs +49 -0
  72. package/dist/lib/neutral/install-function-FJIE2JAI.mjs.map +7 -0
  73. package/dist/lib/neutral/invoke-3HVWY2KF.mjs +32 -0
  74. package/dist/lib/neutral/invoke-3HVWY2KF.mjs.map +7 -0
  75. package/dist/lib/neutral/meta.json +1 -0
  76. package/dist/lib/neutral/meta.mjs +10 -0
  77. package/dist/lib/neutral/operation-handler-X44IGZXS.mjs +18 -0
  78. package/dist/lib/neutral/operation-handler-X44IGZXS.mjs.map +7 -0
  79. package/dist/lib/neutral/operations/index.mjs +8 -0
  80. package/dist/lib/neutral/plugin.mjs +16 -0
  81. package/dist/lib/neutral/plugin.mjs.map +7 -0
  82. package/dist/lib/neutral/query-deployed-functions-F4FHJNWO.mjs +34 -0
  83. package/dist/lib/neutral/query-deployed-functions-F4FHJNWO.mjs.map +7 -0
  84. package/dist/lib/neutral/react-surface-ACNZ35FV.mjs +121 -0
  85. package/dist/lib/neutral/react-surface-ACNZ35FV.mjs.map +7 -0
  86. package/dist/lib/neutral/read-RQESBAQI.mjs +26 -0
  87. package/dist/lib/neutral/read-RQESBAQI.mjs.map +7 -0
  88. package/dist/lib/neutral/settings-VJBW4OMK.mjs +30 -0
  89. package/dist/lib/neutral/settings-VJBW4OMK.mjs.map +7 -0
  90. package/dist/lib/{browser → neutral}/templates/index.mjs +2 -1
  91. package/dist/lib/neutral/translations.mjs +105 -0
  92. package/dist/lib/neutral/translations.mjs.map +7 -0
  93. package/dist/lib/neutral/types/index.mjs +17 -0
  94. package/dist/lib/neutral/types/index.mjs.map +7 -0
  95. package/dist/lib/neutral/update-JZUNJYZM.mjs +63 -0
  96. package/dist/lib/neutral/update-JZUNJYZM.mjs.map +7 -0
  97. package/dist/types/src/ScriptPlugin.d.ts +3 -1
  98. package/dist/types/src/ScriptPlugin.d.ts.map +1 -1
  99. package/dist/types/src/ScriptPlugin.node.d.ts +4 -0
  100. package/dist/types/src/ScriptPlugin.node.d.ts.map +1 -0
  101. package/dist/types/src/ScriptPlugin.test.d.ts +2 -0
  102. package/dist/types/src/ScriptPlugin.test.d.ts.map +1 -0
  103. package/dist/types/src/ScriptPlugin.workerd.d.ts +4 -0
  104. package/dist/types/src/ScriptPlugin.workerd.d.ts.map +1 -0
  105. package/dist/types/src/blueprints/functions/create.d.ts +11 -0
  106. package/dist/types/src/blueprints/functions/create.d.ts.map +1 -0
  107. package/dist/types/src/blueprints/functions/definitions.d.ts +135 -0
  108. package/dist/types/src/blueprints/functions/definitions.d.ts.map +1 -0
  109. package/dist/types/src/blueprints/functions/delete.d.ts +17 -0
  110. package/dist/types/src/blueprints/functions/delete.d.ts.map +1 -0
  111. package/dist/types/src/blueprints/functions/deploy.d.ts +21 -0
  112. package/dist/types/src/blueprints/functions/deploy.d.ts.map +1 -0
  113. package/dist/types/src/blueprints/functions/index.d.ts +4 -0
  114. package/dist/types/src/blueprints/functions/index.d.ts.map +1 -0
  115. package/dist/types/src/blueprints/functions/inspect-invocations.d.ts +28 -0
  116. package/dist/types/src/blueprints/functions/inspect-invocations.d.ts.map +1 -0
  117. package/dist/types/src/blueprints/functions/install-function.d.ts +11 -0
  118. package/dist/types/src/blueprints/functions/install-function.d.ts.map +1 -0
  119. package/dist/types/src/blueprints/functions/invoke.d.ts +21 -0
  120. package/dist/types/src/blueprints/functions/invoke.d.ts.map +1 -0
  121. package/dist/types/src/blueprints/functions/query-deployed-functions.d.ts +13 -0
  122. package/dist/types/src/blueprints/functions/query-deployed-functions.d.ts.map +1 -0
  123. package/dist/types/src/blueprints/functions/read.d.ts +21 -0
  124. package/dist/types/src/blueprints/functions/read.d.ts.map +1 -0
  125. package/dist/types/src/blueprints/functions/update.d.ts +26 -0
  126. package/dist/types/src/blueprints/functions/update.d.ts.map +1 -0
  127. package/dist/types/src/blueprints/index.d.ts +2 -0
  128. package/dist/types/src/blueprints/index.d.ts.map +1 -0
  129. package/dist/types/src/blueprints/script-blueprint.d.ts +4 -0
  130. package/dist/types/src/blueprints/script-blueprint.d.ts.map +1 -0
  131. package/dist/types/src/capabilities/app-graph-builder.d.ts +4 -2
  132. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  133. package/dist/types/src/capabilities/blueprint-definition.d.ts +5 -4
  134. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -1
  135. package/dist/types/src/capabilities/compiler.d.ts +3 -1
  136. package/dist/types/src/capabilities/compiler.d.ts.map +1 -1
  137. package/dist/types/src/capabilities/create-object.d.ts +16 -0
  138. package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
  139. package/dist/types/src/capabilities/index.d.ts +19 -7
  140. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  141. package/dist/types/src/capabilities/node.d.ts +18 -0
  142. package/dist/types/src/capabilities/node.d.ts.map +1 -0
  143. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  144. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  145. package/dist/types/src/capabilities/react-surface.d.ts +3 -2
  146. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  147. package/dist/types/src/capabilities/settings.d.ts +5 -2
  148. package/dist/types/src/capabilities/settings.d.ts.map +1 -1
  149. package/dist/types/src/compiler/compiler.d.ts +1 -1
  150. package/dist/types/src/compiler/compiler.d.ts.map +1 -1
  151. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts +15 -0
  152. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts.map +1 -0
  153. package/dist/types/src/components/NotebookStack/NotebookMenu.d.ts +9 -0
  154. package/dist/types/src/components/NotebookStack/NotebookMenu.d.ts.map +1 -0
  155. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts +11 -11
  156. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts.map +1 -1
  157. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts +221 -212
  158. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts.map +1 -1
  159. package/dist/types/src/components/NotebookStack/index.d.ts +1 -0
  160. package/dist/types/src/components/NotebookStack/index.d.ts.map +1 -1
  161. package/dist/types/src/components/QueryEditor/QueryEditor.d.ts +5 -0
  162. package/dist/types/src/components/QueryEditor/QueryEditor.d.ts.map +1 -0
  163. package/dist/types/src/components/QueryEditor/QueryEditor.stories.d.ts +13 -0
  164. package/dist/types/src/components/QueryEditor/QueryEditor.stories.d.ts.map +1 -0
  165. package/dist/types/src/components/QueryEditor/index.d.ts +2 -0
  166. package/dist/types/src/components/QueryEditor/index.d.ts.map +1 -0
  167. package/dist/types/src/components/ScriptPluginSettings/ScriptPluginSettings.d.ts +8 -0
  168. package/dist/types/src/components/ScriptPluginSettings/ScriptPluginSettings.d.ts.map +1 -0
  169. package/dist/types/src/components/ScriptPluginSettings/ScriptPluginSettings.stories.d.ts +241 -0
  170. package/dist/types/src/components/ScriptPluginSettings/ScriptPluginSettings.stories.d.ts.map +1 -0
  171. package/dist/types/src/components/ScriptPluginSettings/index.d.ts +2 -0
  172. package/dist/types/src/components/ScriptPluginSettings/index.d.ts.map +1 -0
  173. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts +10 -9
  174. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts.map +1 -1
  175. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts +222 -212
  176. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts.map +1 -1
  177. package/dist/types/src/components/TestPanel/TestPanel.d.ts +4 -2
  178. package/dist/types/src/components/TestPanel/TestPanel.d.ts.map +1 -1
  179. package/dist/types/src/components/TestPanel/index.d.ts +0 -1
  180. package/dist/types/src/components/TestPanel/index.d.ts.map +1 -1
  181. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts +6 -2
  182. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts.map +1 -1
  183. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts +3 -7
  184. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts.map +1 -1
  185. package/dist/types/src/components/index.d.ts +5 -5
  186. package/dist/types/src/components/index.d.ts.map +1 -1
  187. package/dist/types/src/constants.d.ts +3 -0
  188. package/dist/types/src/constants.d.ts.map +1 -0
  189. package/dist/types/src/{components → containers}/DeploymentDialog/DeploymentDialog.d.ts +2 -4
  190. package/dist/types/src/containers/DeploymentDialog/DeploymentDialog.d.ts.map +1 -0
  191. package/dist/types/src/containers/DeploymentDialog/DeploymentDialog.stories.d.ts +240 -0
  192. package/dist/types/src/containers/DeploymentDialog/DeploymentDialog.stories.d.ts.map +1 -0
  193. package/dist/types/src/containers/DeploymentDialog/index.d.ts +2 -0
  194. package/dist/types/src/containers/DeploymentDialog/index.d.ts.map +1 -0
  195. package/dist/types/src/containers/NotebookArticle/NotebookArticle.d.ts +7 -0
  196. package/dist/types/src/containers/NotebookArticle/NotebookArticle.d.ts.map +1 -0
  197. package/dist/types/src/containers/NotebookArticle/NotebookArticle.stories.d.ts +7 -0
  198. package/dist/types/src/containers/NotebookArticle/NotebookArticle.stories.d.ts.map +1 -0
  199. package/dist/types/src/containers/NotebookArticle/index.d.ts +2 -0
  200. package/dist/types/src/containers/NotebookArticle/index.d.ts.map +1 -0
  201. package/dist/types/src/containers/ScriptArticle/ScriptArticle.d.ts +10 -0
  202. package/dist/types/src/containers/ScriptArticle/ScriptArticle.d.ts.map +1 -0
  203. package/dist/types/src/containers/ScriptArticle/ScriptArticle.stories.d.ts +242 -0
  204. package/dist/types/src/containers/ScriptArticle/ScriptArticle.stories.d.ts.map +1 -0
  205. package/dist/types/src/containers/ScriptArticle/index.d.ts +2 -0
  206. package/dist/types/src/containers/ScriptArticle/index.d.ts.map +1 -0
  207. package/dist/types/src/containers/ScriptProperties/BlueprintEditor.d.ts +7 -0
  208. package/dist/types/src/containers/ScriptProperties/BlueprintEditor.d.ts.map +1 -0
  209. package/dist/types/src/containers/ScriptProperties/FunctionBinding.d.ts +7 -0
  210. package/dist/types/src/containers/ScriptProperties/FunctionBinding.d.ts.map +1 -0
  211. package/dist/types/src/containers/ScriptProperties/FunctionPublishing.d.ts +7 -0
  212. package/dist/types/src/containers/ScriptProperties/FunctionPublishing.d.ts.map +1 -0
  213. package/dist/types/src/containers/ScriptProperties/ScriptProperties.d.ts +6 -0
  214. package/dist/types/src/containers/ScriptProperties/ScriptProperties.d.ts.map +1 -0
  215. package/dist/types/src/containers/ScriptProperties/ScriptProperties.stories.d.ts +242 -0
  216. package/dist/types/src/containers/ScriptProperties/ScriptProperties.stories.d.ts.map +1 -0
  217. package/dist/types/src/containers/ScriptProperties/index.d.ts +2 -0
  218. package/dist/types/src/containers/ScriptProperties/index.d.ts.map +1 -0
  219. package/dist/types/src/containers/TestContainer/TestContainer.d.ts +8 -0
  220. package/dist/types/src/containers/TestContainer/TestContainer.d.ts.map +1 -0
  221. package/dist/types/src/containers/TestContainer/index.d.ts +2 -0
  222. package/dist/types/src/containers/TestContainer/index.d.ts.map +1 -0
  223. package/dist/types/src/containers/index.d.ts +7 -0
  224. package/dist/types/src/containers/index.d.ts.map +1 -0
  225. package/dist/types/src/e2e/ai.test.d.ts +2 -0
  226. package/dist/types/src/e2e/ai.test.d.ts.map +1 -0
  227. package/dist/types/src/e2e/deploy.test.d.ts +2 -0
  228. package/dist/types/src/e2e/deploy.test.d.ts.map +1 -0
  229. package/dist/types/src/hooks/deploy.d.ts +27 -30
  230. package/dist/types/src/hooks/deploy.d.ts.map +1 -1
  231. package/dist/types/src/hooks/format.d.ts +5 -4
  232. package/dist/types/src/hooks/format.d.ts.map +1 -1
  233. package/dist/types/src/hooks/index.d.ts +1 -0
  234. package/dist/types/src/hooks/index.d.ts.map +1 -1
  235. package/dist/types/src/hooks/template.d.ts +7 -16
  236. package/dist/types/src/hooks/template.d.ts.map +1 -1
  237. package/dist/types/src/hooks/useCompiler.d.ts +7 -0
  238. package/dist/types/src/hooks/useCompiler.d.ts.map +1 -0
  239. package/dist/types/src/hooks/useCreateAndDeployScriptTemplates.d.ts.map +1 -1
  240. package/dist/types/src/hooks/useToolbarState.d.ts +8 -1
  241. package/dist/types/src/hooks/useToolbarState.d.ts.map +1 -1
  242. package/dist/types/src/index.d.ts +2 -3
  243. package/dist/types/src/index.d.ts.map +1 -1
  244. package/dist/types/src/meta.d.ts +2 -2
  245. package/dist/types/src/meta.d.ts.map +1 -1
  246. package/dist/types/src/notebook/compute-graph.d.ts +58 -0
  247. package/dist/types/src/notebook/compute-graph.d.ts.map +1 -0
  248. package/dist/types/src/notebook/compute-graph.test.d.ts +2 -0
  249. package/dist/types/src/notebook/compute-graph.test.d.ts.map +1 -0
  250. package/dist/types/src/notebook/eval.d.ts +13 -0
  251. package/dist/types/src/notebook/eval.d.ts.map +1 -0
  252. package/dist/types/src/notebook/index.d.ts +1 -1
  253. package/dist/types/src/notebook/index.d.ts.map +1 -1
  254. package/dist/types/src/notebook/vfs-parser.d.ts.map +1 -1
  255. package/dist/types/src/operations/create-script.d.ts +5 -0
  256. package/dist/types/src/operations/create-script.d.ts.map +1 -0
  257. package/dist/types/src/operations/index.d.ts +3 -0
  258. package/dist/types/src/operations/index.d.ts.map +1 -0
  259. package/dist/types/src/plugin.d.ts +4 -0
  260. package/dist/types/src/plugin.d.ts.map +1 -0
  261. package/dist/types/src/templates/anthropic.d.ts +7 -0
  262. package/dist/types/src/templates/anthropic.d.ts.map +1 -0
  263. package/dist/types/src/templates/chess-bot.d.ts +14 -0
  264. package/dist/types/src/templates/chess-bot.d.ts.map +1 -0
  265. package/dist/types/src/templates/commentary.d.ts +15 -0
  266. package/dist/types/src/templates/commentary.d.ts.map +1 -0
  267. package/dist/types/src/templates/data-generator.d.ts.map +1 -1
  268. package/dist/types/src/templates/discord.d.ts.map +1 -1
  269. package/dist/types/src/templates/email.d.ts.map +1 -1
  270. package/dist/types/src/templates/forex-effect.d.ts +5 -1
  271. package/dist/types/src/templates/forex-effect.d.ts.map +1 -1
  272. package/dist/types/src/templates/forex.d.ts +5 -1
  273. package/dist/types/src/templates/forex.d.ts.map +1 -1
  274. package/dist/types/src/templates/gmail.d.ts.map +1 -1
  275. package/dist/types/src/templates/index.d.ts +47 -1
  276. package/dist/types/src/templates/index.d.ts.map +1 -1
  277. package/dist/types/src/templates/ping.d.ts +4 -0
  278. package/dist/types/src/templates/ping.d.ts.map +1 -0
  279. package/dist/types/src/testing/index.d.ts +2 -1
  280. package/dist/types/src/testing/index.d.ts.map +1 -1
  281. package/dist/types/src/testing/simulator.test.d.ts +2 -0
  282. package/dist/types/src/testing/simulator.test.d.ts.map +1 -0
  283. package/dist/types/src/testing/test-notebook.d.ts +3 -0
  284. package/dist/types/src/testing/test-notebook.d.ts.map +1 -0
  285. package/dist/types/src/testing/test-script.d.ts +7 -0
  286. package/dist/types/src/testing/test-script.d.ts.map +1 -0
  287. package/dist/types/src/translations.d.ts +222 -84
  288. package/dist/types/src/translations.d.ts.map +1 -1
  289. package/dist/types/src/types/Notebook.d.ts +101 -0
  290. package/dist/types/src/types/Notebook.d.ts.map +1 -0
  291. package/dist/types/src/types/ScriptCapabilities.d.ts +6 -0
  292. package/dist/types/src/types/ScriptCapabilities.d.ts.map +1 -0
  293. package/dist/types/src/types/ScriptEvents.d.ts +3 -0
  294. package/dist/types/src/types/ScriptEvents.d.ts.map +1 -0
  295. package/dist/types/src/types/ScriptOperation.d.ts +29 -0
  296. package/dist/types/src/types/ScriptOperation.d.ts.map +1 -0
  297. package/dist/types/src/types/Settings.d.ts +7 -0
  298. package/dist/types/src/types/Settings.d.ts.map +1 -0
  299. package/dist/types/src/types/index.d.ts +5 -2
  300. package/dist/types/src/types/index.d.ts.map +1 -1
  301. package/dist/types/src/types/types.d.ts +2 -0
  302. package/dist/types/src/types/types.d.ts.map +1 -0
  303. package/dist/types/src/util/deploy.d.ts +4 -4
  304. package/dist/types/src/util/deploy.d.ts.map +1 -1
  305. package/dist/types/src/util/functions.d.ts +3 -3
  306. package/dist/types/src/util/functions.d.ts.map +1 -1
  307. package/dist/types/tsconfig.tsbuildinfo +1 -1
  308. package/package.json +186 -102
  309. package/src/ScriptPlugin.node.ts +21 -0
  310. package/src/ScriptPlugin.test.ts +31 -0
  311. package/src/ScriptPlugin.tsx +29 -96
  312. package/src/ScriptPlugin.workerd.ts +18 -0
  313. package/src/blueprints/functions/create.ts +47 -0
  314. package/src/blueprints/functions/definitions.ts +332 -0
  315. package/src/blueprints/functions/delete.ts +23 -0
  316. package/src/blueprints/functions/deploy.ts +71 -0
  317. package/src/blueprints/functions/index.ts +19 -0
  318. package/src/blueprints/functions/inspect-invocations.ts +56 -0
  319. package/src/blueprints/functions/install-function.ts +56 -0
  320. package/src/blueprints/functions/invoke.ts +34 -0
  321. package/src/blueprints/functions/query-deployed-functions.ts +35 -0
  322. package/src/blueprints/functions/read.ts +29 -0
  323. package/src/blueprints/functions/update.ts +68 -0
  324. package/src/blueprints/index.ts +5 -0
  325. package/src/blueprints/script-blueprint.ts +55 -0
  326. package/src/capabilities/app-graph-builder.ts +40 -58
  327. package/src/capabilities/blueprint-definition.ts +13 -24
  328. package/src/capabilities/compiler.ts +100 -23
  329. package/src/capabilities/create-object.ts +49 -0
  330. package/src/capabilities/index.ts +13 -9
  331. package/src/capabilities/node.ts +16 -0
  332. package/src/capabilities/operation-handler.ts +21 -0
  333. package/src/capabilities/react-surface.tsx +120 -92
  334. package/src/capabilities/settings.ts +26 -14
  335. package/src/compiler/compiler.ts +21 -3
  336. package/src/components/NotebookStack/NotebookCell.tsx +226 -0
  337. package/src/components/NotebookStack/NotebookMenu.tsx +47 -0
  338. package/src/components/NotebookStack/NotebookStack.stories.tsx +34 -17
  339. package/src/components/NotebookStack/NotebookStack.tsx +75 -91
  340. package/src/components/NotebookStack/index.ts +1 -0
  341. package/src/components/QueryEditor/QueryEditor.stories.tsx +96 -0
  342. package/src/components/QueryEditor/QueryEditor.tsx +49 -0
  343. package/src/components/QueryEditor/index.ts +5 -0
  344. package/src/components/ScriptPluginSettings/ScriptPluginSettings.stories.tsx +32 -0
  345. package/src/components/ScriptPluginSettings/ScriptPluginSettings.tsx +42 -0
  346. package/src/components/ScriptPluginSettings/index.ts +5 -0
  347. package/src/components/ScriptToolbar/ScriptToolbar.stories.tsx +48 -25
  348. package/src/components/ScriptToolbar/ScriptToolbar.tsx +43 -48
  349. package/src/components/TestPanel/TestPanel.tsx +125 -185
  350. package/src/components/TestPanel/index.ts +0 -1
  351. package/src/components/TypescriptEditor/TypescriptEditor.stories.tsx +27 -26
  352. package/src/components/TypescriptEditor/TypescriptEditor.tsx +74 -71
  353. package/src/components/index.ts +5 -7
  354. package/src/constants.ts +9 -0
  355. package/src/containers/DeploymentDialog/DeploymentDialog.stories.tsx +63 -0
  356. package/src/containers/DeploymentDialog/DeploymentDialog.tsx +99 -0
  357. package/src/containers/DeploymentDialog/index.ts +5 -0
  358. package/src/containers/NotebookArticle/NotebookArticle.stories.tsx +85 -0
  359. package/src/containers/NotebookArticle/NotebookArticle.tsx +255 -0
  360. package/src/containers/NotebookArticle/index.ts +5 -0
  361. package/src/containers/ScriptArticle/ScriptArticle.stories.tsx +107 -0
  362. package/src/containers/ScriptArticle/ScriptArticle.tsx +85 -0
  363. package/src/containers/ScriptArticle/index.ts +5 -0
  364. package/src/containers/ScriptProperties/BlueprintEditor.tsx +102 -0
  365. package/src/containers/ScriptProperties/FunctionBinding.tsx +83 -0
  366. package/src/containers/ScriptProperties/FunctionPublishing.tsx +121 -0
  367. package/src/containers/ScriptProperties/ScriptProperties.stories.tsx +76 -0
  368. package/src/containers/ScriptProperties/ScriptProperties.tsx +24 -0
  369. package/src/containers/ScriptProperties/index.ts +5 -0
  370. package/src/containers/TestContainer/TestContainer.tsx +44 -0
  371. package/src/containers/TestContainer/index.ts +5 -0
  372. package/src/containers/index.ts +11 -0
  373. package/src/e2e/ai.test.ts +93 -0
  374. package/src/e2e/deploy.test.ts +66 -0
  375. package/src/hooks/deploy.ts +47 -37
  376. package/src/hooks/format.ts +10 -5
  377. package/src/hooks/index.ts +1 -0
  378. package/src/hooks/template.ts +23 -26
  379. package/src/hooks/useCompiler.ts +25 -0
  380. package/src/hooks/useCreateAndDeployScriptTemplates.ts +15 -16
  381. package/src/hooks/useToolbarState.ts +29 -4
  382. package/src/index.ts +2 -4
  383. package/src/meta.ts +17 -7
  384. package/src/notebook/compute-graph.test.ts +82 -0
  385. package/src/notebook/{notebook.ts → compute-graph.ts} +76 -34
  386. package/src/notebook/eval.ts +105 -0
  387. package/src/notebook/index.ts +1 -1
  388. package/src/notebook/vfs-parser.ts +53 -85
  389. package/src/operations/create-script.ts +46 -0
  390. package/src/operations/index.ts +7 -0
  391. package/src/plugin.ts +11 -0
  392. package/src/templates/anthropic.ts +50 -0
  393. package/src/templates/chess-bot.ts +63 -0
  394. package/src/templates/commentary.ts +251 -0
  395. package/src/templates/data-generator.ts +2 -2
  396. package/src/templates/discord.ts +8 -8
  397. package/src/templates/forex-effect.ts +36 -29
  398. package/src/templates/forex.ts +28 -17
  399. package/src/templates/gmail.ts +10 -11
  400. package/src/templates/index.ts +34 -28
  401. package/src/templates/ping.ts +26 -0
  402. package/src/testing/index.ts +2 -1
  403. package/src/testing/simulator.test.ts +39 -0
  404. package/src/testing/test-notebook.ts +71 -0
  405. package/src/testing/test-script.ts +28 -0
  406. package/src/translations.ts +89 -81
  407. package/src/types/Notebook.ts +39 -0
  408. package/src/types/ScriptCapabilities.ts +18 -0
  409. package/src/types/ScriptEvents.ts +11 -0
  410. package/src/types/ScriptOperation.ts +42 -0
  411. package/src/types/Settings.ts +20 -0
  412. package/src/types/index.ts +6 -2
  413. package/src/types/types.ts +5 -0
  414. package/src/util/deploy.ts +33 -41
  415. package/src/util/functions.ts +35 -30
  416. package/src/vite-env.d.ts +7 -0
  417. package/dist/lib/browser/DeploymentDialog-7FNPALCV.mjs +0 -12
  418. package/dist/lib/browser/NotebookContainer-ZSXYRRZB.mjs +0 -578
  419. package/dist/lib/browser/NotebookContainer-ZSXYRRZB.mjs.map +0 -7
  420. package/dist/lib/browser/ScriptContainer-24LLLTLB.mjs +0 -149
  421. package/dist/lib/browser/ScriptContainer-24LLLTLB.mjs.map +0 -7
  422. package/dist/lib/browser/app-graph-builder-DPYULSME.mjs +0 -65
  423. package/dist/lib/browser/app-graph-builder-DPYULSME.mjs.map +0 -7
  424. package/dist/lib/browser/blueprint-definition-ET5KZ46I.mjs +0 -28
  425. package/dist/lib/browser/blueprint-definition-ET5KZ46I.mjs.map +0 -7
  426. package/dist/lib/browser/chunk-DXWTBOND.mjs +0 -282
  427. package/dist/lib/browser/chunk-DXWTBOND.mjs.map +0 -7
  428. package/dist/lib/browser/chunk-ETFBQURU.mjs +0 -254
  429. package/dist/lib/browser/chunk-ETFBQURU.mjs.map +0 -7
  430. package/dist/lib/browser/chunk-EZVXV6DA.mjs +0 -26
  431. package/dist/lib/browser/chunk-EZVXV6DA.mjs.map +0 -7
  432. package/dist/lib/browser/chunk-I3THDIT5.mjs +0 -90
  433. package/dist/lib/browser/chunk-I3THDIT5.mjs.map +0 -7
  434. package/dist/lib/browser/chunk-N6M34EUC.mjs +0 -112
  435. package/dist/lib/browser/chunk-N6M34EUC.mjs.map +0 -7
  436. package/dist/lib/browser/chunk-NNYSARXK.mjs +0 -153
  437. package/dist/lib/browser/chunk-NNYSARXK.mjs.map +0 -7
  438. package/dist/lib/browser/chunk-OKXN2N7M.mjs +0 -15
  439. package/dist/lib/browser/chunk-OKXN2N7M.mjs.map +0 -7
  440. package/dist/lib/browser/chunk-SRSEZWDY.mjs +0 -646
  441. package/dist/lib/browser/chunk-SRSEZWDY.mjs.map +0 -7
  442. package/dist/lib/browser/chunk-SWBZUZDX.mjs +0 -80
  443. package/dist/lib/browser/chunk-SWBZUZDX.mjs.map +0 -7
  444. package/dist/lib/browser/chunk-VFJJA4WR.mjs +0 -88
  445. package/dist/lib/browser/chunk-VFJJA4WR.mjs.map +0 -7
  446. package/dist/lib/browser/compiler-G2N2CG63.mjs +0 -98
  447. package/dist/lib/browser/compiler-G2N2CG63.mjs.map +0 -7
  448. package/dist/lib/browser/index.mjs +0 -266
  449. package/dist/lib/browser/index.mjs.map +0 -7
  450. package/dist/lib/browser/intent-resolver-FYZRLYNT.mjs +0 -105
  451. package/dist/lib/browser/intent-resolver-FYZRLYNT.mjs.map +0 -7
  452. package/dist/lib/browser/meta.json +0 -1
  453. package/dist/lib/browser/react-surface-CFRYAL2P.mjs +0 -127
  454. package/dist/lib/browser/react-surface-CFRYAL2P.mjs.map +0 -7
  455. package/dist/lib/browser/settings-L3HCZRBP.mjs +0 -24
  456. package/dist/lib/browser/settings-L3HCZRBP.mjs.map +0 -7
  457. package/dist/lib/browser/types/index.mjs +0 -12
  458. package/dist/lib/node-esm/DeploymentDialog-AKAGR37W.mjs +0 -13
  459. package/dist/lib/node-esm/NotebookContainer-2O3N3XPE.mjs +0 -579
  460. package/dist/lib/node-esm/NotebookContainer-2O3N3XPE.mjs.map +0 -7
  461. package/dist/lib/node-esm/ScriptContainer-IKOB6FHQ.mjs +0 -150
  462. package/dist/lib/node-esm/ScriptContainer-IKOB6FHQ.mjs.map +0 -7
  463. package/dist/lib/node-esm/app-graph-builder-UXJGHXSL.mjs +0 -66
  464. package/dist/lib/node-esm/app-graph-builder-UXJGHXSL.mjs.map +0 -7
  465. package/dist/lib/node-esm/blueprint-definition-AIYFOT7Q.mjs +0 -30
  466. package/dist/lib/node-esm/blueprint-definition-AIYFOT7Q.mjs.map +0 -7
  467. package/dist/lib/node-esm/chunk-5IKGUOMI.mjs +0 -154
  468. package/dist/lib/node-esm/chunk-5IKGUOMI.mjs.map +0 -7
  469. package/dist/lib/node-esm/chunk-7MR2L4T3.mjs +0 -283
  470. package/dist/lib/node-esm/chunk-7MR2L4T3.mjs.map +0 -7
  471. package/dist/lib/node-esm/chunk-C33FKUSC.mjs +0 -91
  472. package/dist/lib/node-esm/chunk-C33FKUSC.mjs.map +0 -7
  473. package/dist/lib/node-esm/chunk-NUXZQQ6P.mjs +0 -16
  474. package/dist/lib/node-esm/chunk-NUXZQQ6P.mjs.map +0 -7
  475. package/dist/lib/node-esm/chunk-OG2SIKHE.mjs +0 -28
  476. package/dist/lib/node-esm/chunk-OG2SIKHE.mjs.map +0 -7
  477. package/dist/lib/node-esm/chunk-OQGBKNYU.mjs +0 -90
  478. package/dist/lib/node-esm/chunk-OQGBKNYU.mjs.map +0 -7
  479. package/dist/lib/node-esm/chunk-PMQ3D535.mjs +0 -647
  480. package/dist/lib/node-esm/chunk-PMQ3D535.mjs.map +0 -7
  481. package/dist/lib/node-esm/chunk-U4CZGISN.mjs +0 -255
  482. package/dist/lib/node-esm/chunk-U4CZGISN.mjs.map +0 -7
  483. package/dist/lib/node-esm/chunk-VRSDE4CI.mjs +0 -114
  484. package/dist/lib/node-esm/chunk-VRSDE4CI.mjs.map +0 -7
  485. package/dist/lib/node-esm/chunk-ZF5ULKED.mjs +0 -81
  486. package/dist/lib/node-esm/chunk-ZF5ULKED.mjs.map +0 -7
  487. package/dist/lib/node-esm/compiler-PLDAZ5GJ.mjs +0 -99
  488. package/dist/lib/node-esm/compiler-PLDAZ5GJ.mjs.map +0 -7
  489. package/dist/lib/node-esm/index.mjs +0 -267
  490. package/dist/lib/node-esm/index.mjs.map +0 -7
  491. package/dist/lib/node-esm/intent-resolver-6J3CFL5T.mjs +0 -106
  492. package/dist/lib/node-esm/intent-resolver-6J3CFL5T.mjs.map +0 -7
  493. package/dist/lib/node-esm/meta.json +0 -1
  494. package/dist/lib/node-esm/react-surface-NPKEO7SA.mjs +0 -128
  495. package/dist/lib/node-esm/react-surface-NPKEO7SA.mjs.map +0 -7
  496. package/dist/lib/node-esm/settings-YWGZP4EW.mjs +0 -25
  497. package/dist/lib/node-esm/settings-YWGZP4EW.mjs.map +0 -7
  498. package/dist/lib/node-esm/templates/index.mjs +0 -10
  499. package/dist/lib/node-esm/types/index.mjs +0 -13
  500. package/dist/types/src/capabilities/artifact-definition.d.ts +0 -11
  501. package/dist/types/src/capabilities/artifact-definition.d.ts.map +0 -1
  502. package/dist/types/src/capabilities/capabilities.d.ts +0 -5
  503. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  504. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  505. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  506. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.d.ts.map +0 -1
  507. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts +0 -230
  508. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts.map +0 -1
  509. package/dist/types/src/components/DeploymentDialog/index.d.ts +0 -4
  510. package/dist/types/src/components/DeploymentDialog/index.d.ts.map +0 -1
  511. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts +0 -12
  512. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts.map +0 -1
  513. package/dist/types/src/components/FrameContainer/frame.d.ts +0 -2
  514. package/dist/types/src/components/FrameContainer/frame.d.ts.map +0 -1
  515. package/dist/types/src/components/FrameContainer/index.d.ts +0 -2
  516. package/dist/types/src/components/FrameContainer/index.d.ts.map +0 -1
  517. package/dist/types/src/components/NotebookContainer.d.ts +0 -10
  518. package/dist/types/src/components/NotebookContainer.d.ts.map +0 -1
  519. package/dist/types/src/components/NotebookContainer.stories.d.ts +0 -231
  520. package/dist/types/src/components/NotebookContainer.stories.d.ts.map +0 -1
  521. package/dist/types/src/components/ScriptContainer.d.ts +0 -12
  522. package/dist/types/src/components/ScriptContainer.d.ts.map +0 -1
  523. package/dist/types/src/components/Settings/ScriptObjectSettings.d.ts +0 -8
  524. package/dist/types/src/components/Settings/ScriptObjectSettings.d.ts.map +0 -1
  525. package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts +0 -6
  526. package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts.map +0 -1
  527. package/dist/types/src/components/Settings/index.d.ts +0 -3
  528. package/dist/types/src/components/Settings/index.d.ts.map +0 -1
  529. package/dist/types/src/components/TestPanel/TestContainer.d.ts +0 -8
  530. package/dist/types/src/components/TestPanel/TestContainer.d.ts.map +0 -1
  531. package/dist/types/src/events.d.ts +0 -4
  532. package/dist/types/src/events.d.ts.map +0 -1
  533. package/dist/types/src/notebook/notebook.d.ts +0 -39
  534. package/dist/types/src/notebook/notebook.d.ts.map +0 -1
  535. package/dist/types/src/notebook/notebook.test.d.ts +0 -2
  536. package/dist/types/src/notebook/notebook.test.d.ts.map +0 -1
  537. package/dist/types/src/templates/chat.d.ts +0 -6
  538. package/dist/types/src/templates/chat.d.ts.map +0 -1
  539. package/dist/types/src/templates/chess.d.ts +0 -3
  540. package/dist/types/src/templates/chess.d.ts.map +0 -1
  541. package/dist/types/src/templates/echo.d.ts +0 -6
  542. package/dist/types/src/templates/echo.d.ts.map +0 -1
  543. package/dist/types/src/testing/data.d.ts +0 -10
  544. package/dist/types/src/testing/data.d.ts.map +0 -1
  545. package/dist/types/src/types/actions.d.ts +0 -58
  546. package/dist/types/src/types/actions.d.ts.map +0 -1
  547. package/dist/types/src/types/schema.d.ts +0 -35
  548. package/dist/types/src/types/schema.d.ts.map +0 -1
  549. package/src/capabilities/artifact-definition.ts +0 -225
  550. package/src/capabilities/capabilities.ts +0 -12
  551. package/src/capabilities/intent-resolver.ts +0 -87
  552. package/src/components/DeploymentDialog/DeploymentDialog.stories.tsx +0 -53
  553. package/src/components/DeploymentDialog/DeploymentDialog.tsx +0 -106
  554. package/src/components/DeploymentDialog/index.ts +0 -9
  555. package/src/components/FrameContainer/FrameContainer.tsx +0 -84
  556. package/src/components/FrameContainer/frame.html +0 -25
  557. package/src/components/FrameContainer/frame.tsx +0 -51
  558. package/src/components/FrameContainer/index.ts +0 -5
  559. package/src/components/NotebookContainer.stories.tsx +0 -36
  560. package/src/components/NotebookContainer.tsx +0 -82
  561. package/src/components/ScriptContainer.tsx +0 -69
  562. package/src/components/Settings/ScriptObjectSettings.tsx +0 -286
  563. package/src/components/Settings/ScriptPluginSettings.tsx +0 -61
  564. package/src/components/Settings/index.ts +0 -6
  565. package/src/components/TestPanel/TestContainer.tsx +0 -27
  566. package/src/events.ts +0 -11
  567. package/src/notebook/notebook.test.ts +0 -38
  568. package/src/templates/chat.ts +0 -96
  569. package/src/templates/chess.ts +0 -49
  570. package/src/templates/echo.ts +0 -8
  571. package/src/testing/data.ts +0 -37
  572. package/src/types/actions.ts +0 -49
  573. package/src/types/schema.ts +0 -42
  574. /package/dist/lib/{browser/templates → neutral/blueprints}/index.mjs.map +0 -0
  575. /package/dist/lib/{browser/DeploymentDialog-7FNPALCV.mjs.map → neutral/chunk-J5LGTIGS.mjs.map} +0 -0
  576. /package/dist/lib/{browser/types → neutral}/index.mjs.map +0 -0
  577. /package/dist/lib/{node-esm/DeploymentDialog-AKAGR37W.mjs.map → neutral/meta.mjs.map} +0 -0
  578. /package/dist/lib/{node-esm/templates → neutral/operations}/index.mjs.map +0 -0
  579. /package/dist/lib/{node-esm/types → neutral/templates}/index.mjs.map +0 -0
@@ -2,46 +2,88 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { type Signal, signal } from '@preact/signals-core';
5
+ import { Atom, type Registry } from '@effect-atom/atom-react';
6
6
 
7
7
  import { log } from '@dxos/log';
8
8
 
9
- import { type Notebook } from '../types';
9
+ import { type Notebook } from '#types';
10
10
 
11
+ import { evalScript } from './eval';
11
12
  import { type ParsedExpression, VirtualTypeScriptParser } from './vfs-parser';
12
13
 
13
14
  /**
14
15
  * Compute graph that evaluates the notebook cells.
15
16
  */
17
+ // TODO(burdon): Reconcile with @dxos/conductor.
16
18
  export class ComputeGraph {
17
19
  private readonly _parser = new VirtualTypeScriptParser();
18
20
 
19
- private _expressions = signal<Record<string, ParsedExpression>>({});
20
- private _values = signal<Record<string, any>>({});
21
+ private _expressionsAtom = Atom.make<Record<string, ParsedExpression>>({});
22
+ private _valuesByCellIdAtom = Atom.make<Record<string, any>>({});
23
+ private _valuesByNameAtom = Atom.make<Record<string, any>>({});
21
24
 
22
- constructor(private readonly _notebook: Notebook.Notebook) {}
25
+ constructor(
26
+ private readonly _notebook: Notebook.Notebook,
27
+ private readonly _registry: Registry.Registry,
28
+ ) {}
23
29
 
24
30
  /**
25
- * Parsed expressions by cell ID.
31
+ * Atom for parsed expressions by cell ID.
26
32
  */
27
- get expressions(): Signal<Record<string, ParsedExpression>> {
28
- return this._expressions;
33
+ get expressions(): Atom.Atom<Record<string, ParsedExpression>> {
34
+ return this._expressionsAtom;
29
35
  }
30
36
 
31
37
  /**
32
- * Computed values by cell ID.
38
+ * Get current expressions by cell ID.
33
39
  */
34
- get values(): Signal<Record<string, any>> {
35
- return this._values;
40
+ getExpressions(): Record<string, ParsedExpression> {
41
+ return this._registry.get(this._expressionsAtom);
42
+ }
43
+
44
+ /**
45
+ * Atom for computed values by cell ID.
46
+ */
47
+ get values(): Atom.Atom<Record<string, any>> {
48
+ return this._valuesByCellIdAtom;
49
+ }
50
+
51
+ /**
52
+ * Get computed values by cell ID.
53
+ */
54
+ getValues(): Record<string, any> {
55
+ return this._registry.get(this._valuesByCellIdAtom);
56
+ }
57
+
58
+ /**
59
+ * Atom for computed values by name.
60
+ */
61
+ get valuesByName(): Atom.Atom<Record<string, any>> {
62
+ return this._valuesByNameAtom;
63
+ }
64
+
65
+ /**
66
+ * Get current values by name.
67
+ */
68
+ getValuesByName(): Record<string, any> {
69
+ return this._registry.get(this._valuesByNameAtom);
70
+ }
71
+
72
+ /**
73
+ * Get computed value by cell ID.
74
+ */
75
+ getValue(cellId: string): any {
76
+ return this._registry.get(this._valuesByCellIdAtom)[cellId];
36
77
  }
37
78
 
38
79
  /**
39
80
  * Compute values.
40
81
  */
41
- evaluate() {
82
+ async evaluate() {
42
83
  // Parse expressions.
43
84
  const { expressions, dependencyGraph } = this.parse();
44
- this._values.value = {};
85
+ this._registry.set(this._valuesByCellIdAtom, {});
86
+ this._registry.set(this._valuesByNameAtom, {});
45
87
 
46
88
  // Create a map of cell IDs to expressions for easy lookup.
47
89
  const cellExpressions = new Map<string, ParsedExpression>();
@@ -64,7 +106,7 @@ export class ComputeGraph {
64
106
  continue;
65
107
  }
66
108
 
67
- const cellSource = this._notebook.cells.find((cell) => cell.id === cellId)?.script.target?.content;
109
+ const cellSource = this._notebook.cells.find((cell) => cell.id === cellId)?.source?.target?.content;
68
110
  if (!cellSource) {
69
111
  log.error('no source for cell', { cellId });
70
112
  continue;
@@ -89,7 +131,7 @@ export class ComputeGraph {
89
131
  rhs = rhs.slice(0, -1).trim();
90
132
  }
91
133
 
92
- const result = this.evalScript(rhs, valuesByName);
134
+ const result = await this.eval(rhs, valuesByName);
93
135
  valuesByName[expr.name] = result;
94
136
  if (typeof result !== 'function') {
95
137
  valuesByCellId[cellId] = result;
@@ -97,35 +139,43 @@ export class ComputeGraph {
97
139
  }
98
140
  } else {
99
141
  // For expressions without assignment, just evaluate.
100
- const result = this.evalScript(cellSource, valuesByName);
142
+ const result = await this.eval(cellSource, valuesByName);
101
143
  valuesByCellId[cellId] = result;
102
144
  }
103
145
  } catch (error) {
146
+ // TODO(burdon): Set error state.
104
147
  log.error('error evaluating cell', { cellId, error });
105
148
  }
106
149
  }
107
150
 
108
- this._values.value = valuesByCellId;
151
+ this._registry.set(this._valuesByCellIdAtom, valuesByCellId);
152
+ this._registry.set(this._valuesByNameAtom, valuesByName);
109
153
  return valuesByCellId;
110
154
  }
111
155
 
156
+ private async eval(source: string, values: Record<string, any>) {
157
+ return evalScript(source, values);
158
+ }
159
+
112
160
  /**
113
161
  * Parse expressions.
114
162
  */
115
163
  parse() {
116
- const expressions = this._notebook.cells.reduce<Record<string, ParsedExpression>>((acc, cell) => {
117
- const text = cell.script.target?.content.trim();
118
- if (text) {
119
- const parsed = this._parser.parseExpression(text);
120
- acc[cell.id] = parsed;
121
- }
164
+ const expressions = this._notebook.cells
165
+ .filter((cell) => cell.type === 'script')
166
+ .reduce<Record<string, ParsedExpression>>((acc, cell) => {
167
+ const text = cell.source?.target?.content.trim();
168
+ if (text) {
169
+ const parsed = this._parser.parseExpression(text);
170
+ acc[cell.id] = parsed;
171
+ }
122
172
 
123
- return acc;
124
- }, {});
173
+ return acc;
174
+ }, {});
125
175
 
126
176
  // Build dependency graph.
127
177
  const dependencyGraph = this.buildDependencyGraph(expressions);
128
- this._expressions.value = expressions;
178
+ this._registry.set(this._expressionsAtom, expressions);
129
179
  return { expressions, dependencyGraph };
130
180
  }
131
181
 
@@ -177,12 +227,4 @@ export class ComputeGraph {
177
227
 
178
228
  return graph;
179
229
  }
180
-
181
- /**
182
- * Evaluate the script (with dependencies as arguments).
183
- */
184
- private evalScript(code: string, deps: Record<string, any> = {}) {
185
- // eslint-disable-next-line @typescript-eslint/no-implied-eval
186
- return new Function(...Object.keys(deps), 'return ' + code)(...Object.values(deps));
187
- }
188
230
  }
@@ -0,0 +1,105 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { trim } from '@dxos/util';
6
+
7
+ /**
8
+ * Evaluate the script (with dependencies as arguments).
9
+ */
10
+ export const evalScript = async (code: string, deps: Record<string, any> = {}) => {
11
+ // Create a sandboxed environment that blocks access to window and document.
12
+ const sandbox = {
13
+ ...deps,
14
+
15
+ // Block access to global objects.
16
+ console: undefined,
17
+ document: undefined,
18
+ global: undefined,
19
+ globalThis: undefined,
20
+ self: undefined,
21
+ window: undefined,
22
+
23
+ // Allow some safe globals.
24
+ Array,
25
+ Boolean,
26
+ Date,
27
+ Error,
28
+ JSON,
29
+ Map,
30
+ Math,
31
+ Number,
32
+ Object,
33
+ Promise,
34
+ RegExp,
35
+ Set,
36
+ String,
37
+
38
+ // Functions.
39
+ isFinite,
40
+ isNaN,
41
+ parseFloat,
42
+ parseInt,
43
+
44
+ // Note: undefined and null are not included as they are keywords, not variables.
45
+ };
46
+
47
+ // Create function with all sandbox keys as parameters.
48
+ const sandboxKeys = Object.keys(sandbox);
49
+ const sandboxValues = Object.values(sandbox);
50
+
51
+ // eslint-disable-next-line @typescript-eslint/no-implied-eval
52
+ const fn = new Function(
53
+ ...sandboxKeys,
54
+ trim`
55
+ 'use strict';
56
+ return ${code};
57
+ `,
58
+ );
59
+
60
+ return fn(...sandboxValues);
61
+ };
62
+
63
+ /**
64
+ * Globals.
65
+ */
66
+ export const builtIns = new Set([
67
+ // Types.
68
+ 'Array',
69
+ 'Date',
70
+ 'Error',
71
+ 'JSON',
72
+ 'Map',
73
+ 'Math',
74
+ 'Number',
75
+ 'Object',
76
+ 'Promise',
77
+ 'RegExp',
78
+ 'Set',
79
+ 'String',
80
+
81
+ // Functions.
82
+ 'isFinite',
83
+ 'isNaN',
84
+ 'parseFloat',
85
+ 'parseInt',
86
+ ]);
87
+
88
+ /**
89
+ * Default system definitions.
90
+ */
91
+ export const systemDefinitions = trim`
92
+ interface Array<T> { length: number; [n: number]: T; }
93
+ interface Boolean {}
94
+ interface Function {}
95
+ interface IArguments {}
96
+ interface Number {}
97
+ interface Object {}
98
+ interface RegExp {}
99
+ interface String { length: number; }
100
+
101
+ interface CallableFunction extends Function {}
102
+ interface NewableFunction extends Function {}
103
+
104
+ declare var console: { log(...args: any[]): void };
105
+ `;
@@ -2,4 +2,4 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- export * from './notebook';
5
+ export * from './compute-graph';
@@ -6,7 +6,18 @@ import { createSystem, createVirtualTypeScriptEnvironment } from '@typescript/vf
6
6
  import ts from 'typescript';
7
7
 
8
8
  import { invariant } from '@dxos/invariant';
9
- import { trim } from '@dxos/util';
9
+
10
+ import { builtIns, systemDefinitions } from './eval';
11
+
12
+ /**
13
+ * Default system definitions.
14
+ */
15
+ const systemFiles: VirtualFile[] = [
16
+ {
17
+ filename: '/lib.d.ts',
18
+ content: systemDefinitions,
19
+ },
20
+ ];
10
21
 
11
22
  export type ParsedExpression = {
12
23
  name?: string;
@@ -31,6 +42,7 @@ export class VirtualTypeScriptParser {
31
42
  protected compilerOptions: ts.CompilerOptions = {
32
43
  target: ts.ScriptTarget.ES2020,
33
44
  module: ts.ModuleKind.ESNext,
45
+ moduleResolution: ts.ModuleResolutionKind.Bundler,
34
46
  strict: true,
35
47
  esModuleInterop: true,
36
48
  skipLibCheck: true,
@@ -50,7 +62,7 @@ export class VirtualTypeScriptParser {
50
62
  // If no declarations found, check for standalone expression references.
51
63
  if (analysis.length === 0) {
52
64
  const sourcefilename = '/temp.ts';
53
- const env = this.createEnvironment([{ filename: sourcefilename, content: input }, ...systemFiles]);
65
+ const env = this.createEnvironment([{ filename: sourcefilename, content: input }]);
54
66
  const sourceFile = env.getSourceFile(sourcefilename);
55
67
  const typeChecker = env.languageService.getProgram()?.getTypeChecker();
56
68
 
@@ -73,14 +85,16 @@ export class VirtualTypeScriptParser {
73
85
  * Analyze multiple files with full type information.
74
86
  */
75
87
  analyzeFiles(files: VirtualFile[]): ParsedExpression[] {
76
- const env = this.createEnvironment([...files, ...systemFiles]);
88
+ const env = this.createEnvironment(files);
77
89
  const results: ParsedExpression[] = [];
78
90
  const typeChecker = env.languageService.getProgram()?.getTypeChecker();
79
91
 
80
92
  // Analyze each file.
81
93
  files.forEach((file) => {
82
94
  const sourceFile = env.getSourceFile(file.filename);
83
- if (!sourceFile || !typeChecker) return;
95
+ if (!sourceFile || !typeChecker) {
96
+ return;
97
+ }
84
98
 
85
99
  const fileResults = this.analyzeSourceFile(sourceFile, typeChecker);
86
100
  results.push(...fileResults);
@@ -96,7 +110,7 @@ export class VirtualTypeScriptParser {
96
110
  const results: ParsedExpression[] = [];
97
111
 
98
112
  const visit = (node: ts.Node) => {
99
- // Function declarations
113
+ // Function declarations.
100
114
  if (ts.isFunctionDeclaration(node) && node.name) {
101
115
  const symbol = typeChecker.getSymbolAtLocation(node.name);
102
116
  const type = symbol && typeChecker.getTypeOfSymbolAtLocation(symbol, node);
@@ -123,7 +137,7 @@ export class VirtualTypeScriptParser {
123
137
  let returnType: string | undefined;
124
138
  let value: any;
125
139
 
126
- // Get the type string
140
+ // Get the type string.
127
141
  const typeString = type ? typeChecker.typeToString(type) : 'any';
128
142
 
129
143
  // Check if it's a function.
@@ -146,7 +160,7 @@ export class VirtualTypeScriptParser {
146
160
  }
147
161
  }
148
162
 
149
- // Find references in the initializer only
163
+ // Find references in the initializer only.
150
164
  const refs = declaration.initializer
151
165
  ? this.findReferences(declaration.initializer, sourceFile, typeChecker)
152
166
  : [];
@@ -164,7 +178,7 @@ export class VirtualTypeScriptParser {
164
178
  });
165
179
  }
166
180
 
167
- // Class declarations
181
+ // Class declarations.
168
182
  else if (ts.isClassDeclaration(node) && node.name) {
169
183
  results.push({
170
184
  name: node.name.text,
@@ -196,7 +210,9 @@ export class VirtualTypeScriptParser {
196
210
  signature: ts.Signature | undefined,
197
211
  typeChecker: ts.TypeChecker,
198
212
  ): Array<{ name: string; type: string }> {
199
- if (!signature) return [];
213
+ if (!signature) {
214
+ return [];
215
+ }
200
216
 
201
217
  return signature.parameters.map((param) => ({
202
218
  name: param.getName(),
@@ -212,42 +228,42 @@ export class VirtualTypeScriptParser {
212
228
  const localSymbols = new Set<string>();
213
229
 
214
230
  // First, collect local symbols (parameters, local variables).
215
- const collectLocalSymbols = (n: ts.Node) => {
216
- if (ts.isFunctionDeclaration(n) || ts.isArrowFunction(n) || ts.isFunctionExpression(n)) {
217
- n.parameters.forEach((param) => {
231
+ const collectLocalSymbols = (node: ts.Node) => {
232
+ if (ts.isFunctionDeclaration(node) || ts.isArrowFunction(node) || ts.isFunctionExpression(node)) {
233
+ node.parameters.forEach((param) => {
218
234
  if (ts.isIdentifier(param.name)) {
219
235
  localSymbols.add(param.name.text);
220
236
  }
221
237
  });
222
238
  }
223
239
 
224
- if (ts.isVariableDeclaration(n) && ts.isIdentifier(n.name)) {
225
- localSymbols.add(n.name.text);
240
+ if (ts.isVariableDeclaration(node) && ts.isIdentifier(node.name)) {
241
+ localSymbols.add(node.name.text);
226
242
  }
227
243
 
228
- ts.forEachChild(n, collectLocalSymbols);
244
+ ts.forEachChild(node, collectLocalSymbols);
229
245
  };
230
246
 
231
247
  collectLocalSymbols(node);
232
248
 
233
249
  // Then find all identifier references.
234
- const findRefs = (n: ts.Node) => {
235
- if (ts.isIdentifier(n)) {
236
- // Skip if it's a local symbol
237
- if (!localSymbols.has(n.text)) {
250
+ const findRefs = (node: ts.Node) => {
251
+ if (ts.isIdentifier(node)) {
252
+ // Skip if it's a local symbol.
253
+ if (!localSymbols.has(node.text)) {
238
254
  // Check if it's a reference (not a declaration).
239
- const parent = n.parent;
255
+ const parent = node.parent;
240
256
  const isDeclaration =
241
- (ts.isVariableDeclaration(parent) && parent.name === n) ||
242
- (ts.isFunctionDeclaration(parent) && parent.name === n) ||
243
- (ts.isParameter(parent) && parent.name === n);
257
+ (ts.isVariableDeclaration(parent) && parent.name === node) ||
258
+ (ts.isFunctionDeclaration(parent) && parent.name === node) ||
259
+ (ts.isParameter(parent) && parent.name === node);
244
260
 
245
- if (!isDeclaration && !this.isBuiltIn(n.text)) {
246
- references.add(n.text);
261
+ if (!isDeclaration && !this.isBuiltIn(node.text)) {
262
+ references.add(node.text);
247
263
  }
248
264
  }
249
265
  }
250
- ts.forEachChild(n, findRefs);
266
+ ts.forEachChild(node, findRefs);
251
267
  };
252
268
 
253
269
  findRefs(node);
@@ -274,7 +290,7 @@ export class VirtualTypeScriptParser {
274
290
  const type = typeChecker.getTypeAtLocation(expr.right);
275
291
  const typeString = typeChecker.typeToString(type);
276
292
 
277
- // Get the literal value if it's a literal
293
+ // Get the literal value if it's a literal.
278
294
  let value: any;
279
295
  if (ts.isNumericLiteral(expr.right)) {
280
296
  value = Number(expr.right.text);
@@ -282,7 +298,7 @@ export class VirtualTypeScriptParser {
282
298
  value = expr.right.text;
283
299
  }
284
300
 
285
- // Find references in the right-hand side
301
+ // Find references in the right-hand side.
286
302
  const references = this.findReferences(expr.right, sourceFile, typeChecker);
287
303
 
288
304
  result = {
@@ -336,15 +352,17 @@ export class VirtualTypeScriptParser {
336
352
  }
337
353
 
338
354
  protected createEnvironment(files: VirtualFile[]) {
355
+ const allFiles = [...systemFiles, ...files];
356
+
339
357
  const fileMap = new Map<string, string>();
340
- files.forEach(({ filename, content }) => {
358
+ allFiles.forEach(({ filename, content }) => {
341
359
  fileMap.set(filename, content);
342
360
  });
343
361
 
344
362
  const system = createSystem(fileMap);
345
363
  return createVirtualTypeScriptEnvironment(
346
364
  system,
347
- files.map(({ filename }) => filename),
365
+ allFiles.map(({ filename }) => filename),
348
366
  ts,
349
367
  this.compilerOptions,
350
368
  );
@@ -359,7 +377,7 @@ export class NotebookVirtualParser extends VirtualTypeScriptParser {
359
377
  * Analyze notebook cells with full type checking.
360
378
  */
361
379
  analyzeNotebook(cells: Array<{ id: string; code: string }>) {
362
- // Create cumulative environment where each cell can see previous cells
380
+ // Create cumulative environment where each cell can see previous cells.
363
381
  const cumulativeCode: string[] = [];
364
382
  const cellAnalysis: Map<
365
383
  string,
@@ -390,7 +408,7 @@ export class NotebookVirtualParser extends VirtualTypeScriptParser {
390
408
  });
391
409
 
392
410
  // Create environment.
393
- const env = this.createEnvironment([...files, ...systemFiles]);
411
+ const env = this.createEnvironment(files);
394
412
 
395
413
  // Get diagnostics (errors).
396
414
  const diagnostics = env.languageService.getSemanticDiagnostics(filename);
@@ -416,7 +434,9 @@ export class NotebookVirtualParser extends VirtualTypeScriptParser {
416
434
  const previousExports = new Set<string>();
417
435
  for (const [_prevCellId, prevAnalysis] of cellAnalysis) {
418
436
  prevAnalysis.exports.forEach((exp) => {
419
- if (exp.name) previousExports.add(exp.name);
437
+ if (exp.name) {
438
+ previousExports.add(exp.name);
439
+ }
420
440
  });
421
441
  }
422
442
 
@@ -436,55 +456,3 @@ export class NotebookVirtualParser extends VirtualTypeScriptParser {
436
456
  return cellAnalysis;
437
457
  }
438
458
  }
439
-
440
- /**
441
- * Globals.
442
- */
443
- const builtIns = new Set([
444
- // Types.
445
- 'Array',
446
- 'Date',
447
- 'Error',
448
- 'JSON',
449
- 'Map',
450
- 'Math',
451
- 'Number',
452
- 'Promise',
453
- 'Object',
454
- 'RegExp',
455
- 'Set',
456
- 'String',
457
-
458
- // Functions.
459
- 'console',
460
- 'document',
461
- 'global',
462
- 'isFinite',
463
- 'isNaN',
464
- 'parseFloat',
465
- 'parseInt',
466
- 'process',
467
- 'window',
468
- ]);
469
-
470
- /**
471
- * Default system definitions.
472
- */
473
- const systemFiles: VirtualFile[] = [
474
- {
475
- filename: '/lib.d.ts',
476
- content: trim`
477
- interface Array<T> { length: number; [n: number]: T; }
478
- interface Boolean {}
479
- interface Function {}
480
- interface IArguments {}
481
- interface Number {}
482
- interface Object {}
483
- interface RegExp {}
484
- interface String { length: number; }
485
- interface CallableFunction extends Function {}
486
- interface NewableFunction extends Function {}
487
- declare var console: { log(...args: any[]): void };
488
- `,
489
- },
490
- ];
@@ -0,0 +1,46 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { Octokit } from '@octokit/core';
6
+ import * as Effect from 'effect/Effect';
7
+
8
+ import { Script, Operation } from '@dxos/compute';
9
+
10
+ import { templates } from '../templates';
11
+ import { ScriptOperation } from '../types';
12
+
13
+ const handler: Operation.WithHandler<typeof ScriptOperation.CreateScript> = ScriptOperation.CreateScript.pipe(
14
+ Operation.withHandler(
15
+ Effect.fnUntraced(function* ({ name, gistUrl, initialTemplateId }) {
16
+ let source = templates[0].source;
17
+ let scriptName = name;
18
+
19
+ const gistId = gistUrl?.split('/').at(-1);
20
+ if (gistId) {
21
+ const octokit = new Octokit();
22
+ const response = yield* Effect.promise(() =>
23
+ octokit.request('GET /gists/{gist_id}', {
24
+ gist_id: gistId,
25
+ }),
26
+ );
27
+ const gistContent = Object.values(response.data.files ?? {})[0]?.content;
28
+ if (gistContent) {
29
+ source = gistContent;
30
+ }
31
+ }
32
+
33
+ if (initialTemplateId) {
34
+ const template = templates.find((template) => template.id === initialTemplateId);
35
+ if (template) {
36
+ source = template.source;
37
+ scriptName = scriptName || template.name;
38
+ }
39
+ }
40
+
41
+ return { object: Script.make({ name: scriptName, source }) };
42
+ }),
43
+ ),
44
+ );
45
+
46
+ export default handler;
@@ -0,0 +1,7 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { OperationHandlerSet } from '@dxos/compute';
6
+
7
+ export const ScriptOperationHandlerSet = OperationHandlerSet.lazy(() => import('./create-script'));
package/src/plugin.ts ADDED
@@ -0,0 +1,11 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { Plugin } from '@dxos/app-framework';
6
+
7
+ import { meta } from './meta';
8
+
9
+ export const ScriptPlugin = Plugin.lazy(meta, () => import('#plugin'));
10
+
11
+ export { ScriptOperationHandlerSet } from './operations';