@dxos/plugin-script 0.8.4-main.ae835ea → 0.8.4-main.bc674ce

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 (386) hide show
  1. package/dist/lib/browser/DeploymentDialog-OSL6RMPA.mjs +14 -0
  2. package/dist/lib/browser/{NotebookContainer-C36N7AFF.mjs → NotebookContainer-NBAXYESH.mjs} +267 -239
  3. package/dist/lib/browser/NotebookContainer-NBAXYESH.mjs.map +7 -0
  4. package/dist/lib/browser/ScriptContainer-WD33CJMI.mjs +149 -0
  5. package/dist/lib/browser/ScriptContainer-WD33CJMI.mjs.map +7 -0
  6. package/dist/lib/browser/app-graph-builder-7VO7AUI6.mjs +68 -0
  7. package/dist/lib/browser/app-graph-builder-7VO7AUI6.mjs.map +7 -0
  8. package/dist/lib/browser/blueprint-definition-OSOUYI7A.mjs +17 -0
  9. package/dist/lib/browser/blueprint-definition-OSOUYI7A.mjs.map +7 -0
  10. package/dist/lib/browser/blueprints/index.mjs +8 -0
  11. package/dist/lib/browser/chunk-BTWHM6FH.mjs +270 -0
  12. package/dist/lib/browser/chunk-BTWHM6FH.mjs.map +7 -0
  13. package/dist/lib/browser/chunk-C53UJGSU.mjs +557 -0
  14. package/dist/lib/browser/chunk-C53UJGSU.mjs.map +7 -0
  15. package/dist/lib/browser/chunk-F3QKSKSF.mjs +35 -0
  16. package/dist/lib/browser/chunk-F3QKSKSF.mjs.map +7 -0
  17. package/dist/lib/browser/chunk-I7CSE6T3.mjs +110 -0
  18. package/dist/lib/browser/chunk-I7CSE6T3.mjs.map +7 -0
  19. package/dist/lib/browser/chunk-TWX2NMZN.mjs +137 -0
  20. package/dist/lib/browser/chunk-TWX2NMZN.mjs.map +7 -0
  21. package/dist/lib/browser/chunk-UUR4JNNB.mjs +113 -0
  22. package/dist/lib/browser/chunk-UUR4JNNB.mjs.map +7 -0
  23. package/dist/lib/browser/{chunk-ST3ACVUC.mjs → chunk-UX4GHJ5E.mjs} +29 -12
  24. package/dist/lib/browser/chunk-UX4GHJ5E.mjs.map +7 -0
  25. package/dist/lib/browser/{chunk-EB6AXFXO.mjs → chunk-WYR4QHPE.mjs} +1 -1
  26. package/dist/lib/browser/chunk-WYR4QHPE.mjs.map +7 -0
  27. package/dist/lib/browser/chunk-XCN4D3Z5.mjs +606 -0
  28. package/dist/lib/browser/chunk-XCN4D3Z5.mjs.map +7 -0
  29. package/dist/lib/browser/compiler-76F3QAXC.mjs +161 -0
  30. package/dist/lib/browser/compiler-76F3QAXC.mjs.map +7 -0
  31. package/dist/lib/browser/index.mjs +96 -126
  32. package/dist/lib/browser/index.mjs.map +4 -4
  33. package/dist/lib/browser/meta.json +1 -1
  34. package/dist/lib/browser/operation-resolver-HUILPPKT.mjs +82 -0
  35. package/dist/lib/browser/operation-resolver-HUILPPKT.mjs.map +7 -0
  36. package/dist/lib/browser/{react-surface-X4NATU6B.mjs → react-surface-O6GKHB2J.mjs} +52 -41
  37. package/dist/lib/browser/react-surface-O6GKHB2J.mjs.map +7 -0
  38. package/dist/lib/browser/settings-3ENI25PI.mjs +35 -0
  39. package/dist/lib/browser/settings-3ENI25PI.mjs.map +7 -0
  40. package/dist/lib/browser/templates/index.mjs +1 -1
  41. package/dist/lib/browser/types/index.mjs +9 -5
  42. package/dist/lib/node-esm/{DeploymentDialog-OSHHSEBH.mjs → DeploymentDialog-OGBJPVIX.mjs} +6 -6
  43. package/dist/lib/node-esm/DeploymentDialog-OGBJPVIX.mjs.map +7 -0
  44. package/dist/lib/node-esm/{NotebookContainer-FOVFGJQR.mjs → NotebookContainer-IUAYVJSD.mjs} +267 -239
  45. package/dist/lib/node-esm/NotebookContainer-IUAYVJSD.mjs.map +7 -0
  46. package/dist/lib/node-esm/ScriptContainer-K7JCEU5Z.mjs +150 -0
  47. package/dist/lib/node-esm/ScriptContainer-K7JCEU5Z.mjs.map +7 -0
  48. package/dist/lib/node-esm/app-graph-builder-NVE3EVBG.mjs +69 -0
  49. package/dist/lib/node-esm/app-graph-builder-NVE3EVBG.mjs.map +7 -0
  50. package/dist/lib/node-esm/blueprint-definition-NC7NNJGI.mjs +18 -0
  51. package/dist/lib/node-esm/blueprint-definition-NC7NNJGI.mjs.map +7 -0
  52. package/dist/lib/node-esm/blueprints/index.mjs +9 -0
  53. package/dist/lib/node-esm/blueprints/index.mjs.map +7 -0
  54. package/dist/lib/node-esm/{chunk-2GVTWESW.mjs → chunk-4F5FJZ36.mjs} +29 -12
  55. package/dist/lib/node-esm/chunk-4F5FJZ36.mjs.map +7 -0
  56. package/dist/lib/node-esm/chunk-4QNZMXW6.mjs +607 -0
  57. package/dist/lib/node-esm/chunk-4QNZMXW6.mjs.map +7 -0
  58. package/dist/lib/node-esm/{chunk-IBV2DR36.mjs → chunk-5HSJPAK7.mjs} +1 -1
  59. package/dist/lib/node-esm/chunk-5HSJPAK7.mjs.map +7 -0
  60. package/dist/lib/node-esm/chunk-BX5PP6AW.mjs +558 -0
  61. package/dist/lib/node-esm/chunk-BX5PP6AW.mjs.map +7 -0
  62. package/dist/lib/node-esm/chunk-G3J76DWP.mjs +114 -0
  63. package/dist/lib/node-esm/chunk-G3J76DWP.mjs.map +7 -0
  64. package/dist/lib/node-esm/chunk-SLU3KRV3.mjs +112 -0
  65. package/dist/lib/node-esm/chunk-SLU3KRV3.mjs.map +7 -0
  66. package/dist/lib/node-esm/chunk-VQPIA4VF.mjs +138 -0
  67. package/dist/lib/node-esm/chunk-VQPIA4VF.mjs.map +7 -0
  68. package/dist/lib/node-esm/chunk-VWOLKNMO.mjs +271 -0
  69. package/dist/lib/node-esm/chunk-VWOLKNMO.mjs.map +7 -0
  70. package/dist/lib/node-esm/chunk-Y3G5NCTP.mjs +36 -0
  71. package/dist/lib/node-esm/chunk-Y3G5NCTP.mjs.map +7 -0
  72. package/dist/lib/node-esm/compiler-FNZH6TFN.mjs +162 -0
  73. package/dist/lib/node-esm/compiler-FNZH6TFN.mjs.map +7 -0
  74. package/dist/lib/node-esm/index.mjs +96 -126
  75. package/dist/lib/node-esm/index.mjs.map +4 -4
  76. package/dist/lib/node-esm/meta.json +1 -1
  77. package/dist/lib/node-esm/operation-resolver-JTCIY6HU.mjs +83 -0
  78. package/dist/lib/node-esm/operation-resolver-JTCIY6HU.mjs.map +7 -0
  79. package/dist/lib/node-esm/{react-surface-LVGLBSTE.mjs → react-surface-RLANMVMB.mjs} +52 -41
  80. package/dist/lib/node-esm/react-surface-RLANMVMB.mjs.map +7 -0
  81. package/dist/lib/node-esm/settings-7AYC5VXN.mjs +36 -0
  82. package/dist/lib/node-esm/settings-7AYC5VXN.mjs.map +7 -0
  83. package/dist/lib/node-esm/templates/index.mjs +1 -1
  84. package/dist/lib/node-esm/types/index.mjs +9 -5
  85. package/dist/types/src/ScriptPlugin.d.ts +2 -1
  86. package/dist/types/src/ScriptPlugin.d.ts.map +1 -1
  87. package/dist/types/src/blueprints/index.d.ts +2 -0
  88. package/dist/types/src/blueprints/index.d.ts.map +1 -0
  89. package/dist/types/src/blueprints/script-blueprint.d.ts +22 -0
  90. package/dist/types/src/blueprints/script-blueprint.d.ts.map +1 -0
  91. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +6 -0
  92. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -0
  93. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +3 -0
  94. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +1 -0
  95. package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts +12 -0
  96. package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts.map +1 -0
  97. package/dist/types/src/capabilities/artifact-definition/index.d.ts +3 -0
  98. package/dist/types/src/capabilities/artifact-definition/index.d.ts.map +1 -0
  99. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +9 -0
  100. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +1 -0
  101. package/dist/types/src/capabilities/blueprint-definition/index.d.ts +3 -0
  102. package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +1 -0
  103. package/dist/types/src/capabilities/compiler/compiler.d.ts +6 -0
  104. package/dist/types/src/capabilities/compiler/compiler.d.ts.map +1 -0
  105. package/dist/types/src/capabilities/compiler/index.d.ts +3 -0
  106. package/dist/types/src/capabilities/compiler/index.d.ts.map +1 -0
  107. package/dist/types/src/capabilities/index.d.ts +6 -7
  108. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  109. package/dist/types/src/capabilities/operation-resolver/index.d.ts +3 -0
  110. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -0
  111. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +5 -0
  112. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -0
  113. package/dist/types/src/capabilities/react-surface/index.d.ts +3 -0
  114. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
  115. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +5 -0
  116. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
  117. package/dist/types/src/capabilities/settings/index.d.ts +7 -0
  118. package/dist/types/src/capabilities/settings/index.d.ts.map +1 -0
  119. package/dist/types/src/capabilities/settings/settings.d.ts +9 -0
  120. package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -0
  121. package/dist/types/src/compiler/compiler.d.ts +1 -1
  122. package/dist/types/src/compiler/compiler.d.ts.map +1 -1
  123. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.d.ts +2 -2
  124. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.d.ts.map +1 -1
  125. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts +4 -3
  126. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts.map +1 -1
  127. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts +1 -1
  128. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts.map +1 -1
  129. package/dist/types/src/components/NotebookContainer.d.ts +3 -5
  130. package/dist/types/src/components/NotebookContainer.d.ts.map +1 -1
  131. package/dist/types/src/components/NotebookContainer.stories.d.ts +3 -247
  132. package/dist/types/src/components/NotebookContainer.stories.d.ts.map +1 -1
  133. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts +3 -3
  134. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts.map +1 -1
  135. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts +1 -1
  136. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts.map +1 -1
  137. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts +5 -1
  138. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts.map +1 -1
  139. package/dist/types/src/components/QueryEditor/QueryEditor.d.ts +5 -0
  140. package/dist/types/src/components/QueryEditor/QueryEditor.d.ts.map +1 -0
  141. package/dist/types/src/components/QueryEditor/QueryEditor.stories.d.ts +13 -0
  142. package/dist/types/src/components/QueryEditor/QueryEditor.stories.d.ts.map +1 -0
  143. package/dist/types/src/components/QueryEditor/index.d.ts +2 -0
  144. package/dist/types/src/components/QueryEditor/index.d.ts.map +1 -0
  145. package/dist/types/src/components/ScriptContainer.d.ts +4 -5
  146. package/dist/types/src/components/ScriptContainer.d.ts.map +1 -1
  147. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts +2 -2
  148. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts.map +1 -1
  149. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts +5 -1
  150. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts.map +1 -1
  151. package/dist/types/src/components/Settings/ScriptObjectSettings.d.ts.map +1 -1
  152. package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts +4 -2
  153. package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts.map +1 -1
  154. package/dist/types/src/components/TestPanel/TestContainer.d.ts +1 -1
  155. package/dist/types/src/components/TestPanel/TestContainer.d.ts.map +1 -1
  156. package/dist/types/src/components/TestPanel/TestPanel.d.ts.map +1 -1
  157. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts +3 -2
  158. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts.map +1 -1
  159. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts +1 -1
  160. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts.map +1 -1
  161. package/dist/types/src/components/index.d.ts +2 -2
  162. package/dist/types/src/components/index.d.ts.map +1 -1
  163. package/dist/types/src/e2e/ai.test.d.ts +2 -0
  164. package/dist/types/src/e2e/ai.test.d.ts.map +1 -0
  165. package/dist/types/src/e2e/deploy.test.d.ts +2 -0
  166. package/dist/types/src/e2e/deploy.test.d.ts.map +1 -0
  167. package/dist/types/src/hooks/deploy.d.ts +10 -25
  168. package/dist/types/src/hooks/deploy.d.ts.map +1 -1
  169. package/dist/types/src/hooks/format.d.ts +2 -2
  170. package/dist/types/src/hooks/format.d.ts.map +1 -1
  171. package/dist/types/src/hooks/index.d.ts +1 -0
  172. package/dist/types/src/hooks/index.d.ts.map +1 -1
  173. package/dist/types/src/hooks/template.d.ts +2 -2
  174. package/dist/types/src/hooks/template.d.ts.map +1 -1
  175. package/dist/types/src/hooks/useCompiler.d.ts +7 -0
  176. package/dist/types/src/hooks/useCompiler.d.ts.map +1 -0
  177. package/dist/types/src/hooks/useCreateAndDeployScriptTemplates.d.ts.map +1 -1
  178. package/dist/types/src/hooks/useToolbarState.d.ts +8 -1
  179. package/dist/types/src/hooks/useToolbarState.d.ts.map +1 -1
  180. package/dist/types/src/index.d.ts +1 -1
  181. package/dist/types/src/index.d.ts.map +1 -1
  182. package/dist/types/src/meta.d.ts +2 -2
  183. package/dist/types/src/meta.d.ts.map +1 -1
  184. package/dist/types/src/notebook/compute-graph.d.ts +24 -11
  185. package/dist/types/src/notebook/compute-graph.d.ts.map +1 -1
  186. package/dist/types/src/templates/anthropic.d.ts +8 -0
  187. package/dist/types/src/templates/anthropic.d.ts.map +1 -0
  188. package/dist/types/src/templates/chess-bot.d.ts +16 -0
  189. package/dist/types/src/templates/chess-bot.d.ts.map +1 -0
  190. package/dist/types/src/templates/commentary.d.ts +16 -0
  191. package/dist/types/src/templates/commentary.d.ts.map +1 -0
  192. package/dist/types/src/templates/forex-effect.d.ts +4 -1
  193. package/dist/types/src/templates/forex-effect.d.ts.map +1 -1
  194. package/dist/types/src/templates/forex.d.ts +4 -1
  195. package/dist/types/src/templates/forex.d.ts.map +1 -1
  196. package/dist/types/src/templates/index.d.ts +12 -3
  197. package/dist/types/src/templates/index.d.ts.map +1 -1
  198. package/dist/types/src/templates/ping.d.ts +1 -4
  199. package/dist/types/src/templates/ping.d.ts.map +1 -1
  200. package/dist/types/src/testing/simulator.test.d.ts +2 -0
  201. package/dist/types/src/testing/simulator.test.d.ts.map +1 -0
  202. package/dist/types/src/translations.d.ts +2 -0
  203. package/dist/types/src/translations.d.ts.map +1 -1
  204. package/dist/types/src/types/Notebook.d.ts +91 -22
  205. package/dist/types/src/types/Notebook.d.ts.map +1 -1
  206. package/dist/types/src/types/actions.d.ts +30 -44
  207. package/dist/types/src/types/actions.d.ts.map +1 -1
  208. package/dist/types/src/types/capabilities.d.ts +12 -0
  209. package/dist/types/src/types/capabilities.d.ts.map +1 -0
  210. package/dist/types/src/types/events.d.ts +5 -0
  211. package/dist/types/src/types/events.d.ts.map +1 -0
  212. package/dist/types/src/types/index.d.ts +2 -0
  213. package/dist/types/src/types/index.d.ts.map +1 -1
  214. package/dist/types/src/util/deploy.d.ts.map +1 -1
  215. package/dist/types/src/util/functions.d.ts.map +1 -1
  216. package/dist/types/tsconfig.tsbuildinfo +1 -1
  217. package/package.json +113 -85
  218. package/src/ScriptPlugin.tsx +36 -75
  219. package/src/blueprints/index.ts +5 -0
  220. package/src/blueprints/script-blueprint.ts +24 -0
  221. package/src/capabilities/app-graph-builder/app-graph-builder.ts +55 -0
  222. package/src/capabilities/app-graph-builder/index.ts +7 -0
  223. package/src/capabilities/{artifact-definition.ts → artifact-definition/artifact-definition.ts} +97 -95
  224. package/src/capabilities/artifact-definition/index.ts +7 -0
  225. package/src/capabilities/blueprint-definition/blueprint-definition.ts +23 -0
  226. package/src/capabilities/blueprint-definition/index.ts +7 -0
  227. package/src/capabilities/compiler/compiler.ts +103 -0
  228. package/src/capabilities/compiler/index.ts +7 -0
  229. package/src/capabilities/index.ts +6 -10
  230. package/src/capabilities/operation-resolver/index.ts +7 -0
  231. package/src/capabilities/operation-resolver/operation-resolver.ts +74 -0
  232. package/src/capabilities/react-surface/index.ts +7 -0
  233. package/src/capabilities/react-surface/react-surface.tsx +118 -0
  234. package/src/capabilities/settings/index.ts +7 -0
  235. package/src/capabilities/settings/settings.ts +32 -0
  236. package/src/compiler/compiler.ts +10 -3
  237. package/src/components/DeploymentDialog/DeploymentDialog.stories.tsx +28 -24
  238. package/src/components/DeploymentDialog/DeploymentDialog.tsx +38 -41
  239. package/src/components/FrameContainer/FrameContainer.tsx +6 -4
  240. package/src/components/NotebookContainer.stories.tsx +23 -19
  241. package/src/components/NotebookContainer.tsx +69 -61
  242. package/src/components/NotebookStack/NotebookCell.tsx +36 -27
  243. package/src/components/NotebookStack/NotebookStack.stories.tsx +19 -18
  244. package/src/components/NotebookStack/NotebookStack.tsx +4 -4
  245. package/src/components/QueryEditor/QueryEditor.stories.tsx +100 -0
  246. package/src/components/QueryEditor/QueryEditor.tsx +47 -0
  247. package/src/components/QueryEditor/index.ts +5 -0
  248. package/src/components/ScriptContainer.tsx +48 -33
  249. package/src/components/ScriptToolbar/ScriptToolbar.stories.tsx +38 -15
  250. package/src/components/ScriptToolbar/ScriptToolbar.tsx +18 -21
  251. package/src/components/Settings/ScriptObjectSettings.tsx +54 -31
  252. package/src/components/Settings/ScriptPluginSettings.tsx +8 -3
  253. package/src/components/TestPanel/TestContainer.tsx +5 -5
  254. package/src/components/TestPanel/TestPanel.tsx +36 -13
  255. package/src/components/TypescriptEditor/TypescriptEditor.stories.tsx +14 -9
  256. package/src/components/TypescriptEditor/TypescriptEditor.tsx +69 -69
  257. package/src/e2e/ai.test.ts +92 -0
  258. package/src/e2e/deploy.test.ts +64 -0
  259. package/src/hooks/deploy.ts +36 -28
  260. package/src/hooks/format.ts +5 -1
  261. package/src/hooks/index.ts +1 -0
  262. package/src/hooks/template.ts +15 -9
  263. package/src/hooks/useCompiler.ts +24 -0
  264. package/src/hooks/useCreateAndDeployScriptTemplates.ts +13 -15
  265. package/src/hooks/useToolbarState.ts +29 -5
  266. package/src/index.ts +1 -1
  267. package/src/meta.ts +2 -2
  268. package/src/notebook/compute-graph.test.ts +20 -8
  269. package/src/notebook/compute-graph.ts +45 -21
  270. package/src/templates/anthropic.ts +42 -0
  271. package/src/templates/chess-bot.ts +58 -0
  272. package/src/templates/commentary.ts +232 -0
  273. package/src/templates/data-generator.ts +1 -1
  274. package/src/templates/forex-effect.ts +22 -27
  275. package/src/templates/forex.ts +7 -6
  276. package/src/templates/gmail.ts +1 -2
  277. package/src/templates/index.ts +18 -5
  278. package/src/templates/ping.ts +14 -5
  279. package/src/testing/data.ts +7 -7
  280. package/src/testing/simulator.test.ts +40 -0
  281. package/src/translations.ts +2 -0
  282. package/src/types/Notebook.ts +12 -12
  283. package/src/types/actions.ts +17 -25
  284. package/src/types/capabilities.ts +17 -0
  285. package/src/types/events.ts +11 -0
  286. package/src/types/index.ts +2 -0
  287. package/src/types/types.ts +1 -1
  288. package/src/util/deploy.ts +23 -29
  289. package/src/util/functions.ts +29 -25
  290. package/src/vite-env.d.ts +2 -0
  291. package/dist/lib/browser/DeploymentDialog-E5NXT4UQ.mjs +0 -14
  292. package/dist/lib/browser/NotebookContainer-C36N7AFF.mjs.map +0 -7
  293. package/dist/lib/browser/ScriptContainer-4YPRUM3C.mjs +0 -148
  294. package/dist/lib/browser/ScriptContainer-4YPRUM3C.mjs.map +0 -7
  295. package/dist/lib/browser/app-graph-builder-LEOPGBJD.mjs +0 -66
  296. package/dist/lib/browser/app-graph-builder-LEOPGBJD.mjs.map +0 -7
  297. package/dist/lib/browser/blueprint-definition-6PZWZM2Y.mjs +0 -30
  298. package/dist/lib/browser/blueprint-definition-6PZWZM2Y.mjs.map +0 -7
  299. package/dist/lib/browser/chunk-5S5YQNJZ.mjs +0 -304
  300. package/dist/lib/browser/chunk-5S5YQNJZ.mjs.map +0 -7
  301. package/dist/lib/browser/chunk-A5K3TXYA.mjs +0 -269
  302. package/dist/lib/browser/chunk-A5K3TXYA.mjs.map +0 -7
  303. package/dist/lib/browser/chunk-EB6AXFXO.mjs.map +0 -7
  304. package/dist/lib/browser/chunk-HCURXADW.mjs +0 -102
  305. package/dist/lib/browser/chunk-HCURXADW.mjs.map +0 -7
  306. package/dist/lib/browser/chunk-HHTOAI2J.mjs +0 -644
  307. package/dist/lib/browser/chunk-HHTOAI2J.mjs.map +0 -7
  308. package/dist/lib/browser/chunk-IQMYIWHG.mjs +0 -153
  309. package/dist/lib/browser/chunk-IQMYIWHG.mjs.map +0 -7
  310. package/dist/lib/browser/chunk-LI4P25M5.mjs +0 -111
  311. package/dist/lib/browser/chunk-LI4P25M5.mjs.map +0 -7
  312. package/dist/lib/browser/chunk-Q2DGRQRN.mjs +0 -255
  313. package/dist/lib/browser/chunk-Q2DGRQRN.mjs.map +0 -7
  314. package/dist/lib/browser/chunk-ST3ACVUC.mjs.map +0 -7
  315. package/dist/lib/browser/chunk-UOQ6NCH3.mjs +0 -15
  316. package/dist/lib/browser/chunk-UOQ6NCH3.mjs.map +0 -7
  317. package/dist/lib/browser/compiler-Q4UY2COU.mjs +0 -86
  318. package/dist/lib/browser/compiler-Q4UY2COU.mjs.map +0 -7
  319. package/dist/lib/browser/intent-resolver-AMMHATM7.mjs +0 -105
  320. package/dist/lib/browser/intent-resolver-AMMHATM7.mjs.map +0 -7
  321. package/dist/lib/browser/react-surface-X4NATU6B.mjs.map +0 -7
  322. package/dist/lib/browser/settings-6UXY7F7D.mjs +0 -26
  323. package/dist/lib/browser/settings-6UXY7F7D.mjs.map +0 -7
  324. package/dist/lib/node-esm/NotebookContainer-FOVFGJQR.mjs.map +0 -7
  325. package/dist/lib/node-esm/ScriptContainer-EW24D5II.mjs +0 -149
  326. package/dist/lib/node-esm/ScriptContainer-EW24D5II.mjs.map +0 -7
  327. package/dist/lib/node-esm/app-graph-builder-XJ3MY5BM.mjs +0 -67
  328. package/dist/lib/node-esm/app-graph-builder-XJ3MY5BM.mjs.map +0 -7
  329. package/dist/lib/node-esm/blueprint-definition-5R6YCSZZ.mjs +0 -31
  330. package/dist/lib/node-esm/blueprint-definition-5R6YCSZZ.mjs.map +0 -7
  331. package/dist/lib/node-esm/chunk-2GVTWESW.mjs.map +0 -7
  332. package/dist/lib/node-esm/chunk-55JZVM6K.mjs +0 -16
  333. package/dist/lib/node-esm/chunk-55JZVM6K.mjs.map +0 -7
  334. package/dist/lib/node-esm/chunk-EJLYOSD7.mjs +0 -113
  335. package/dist/lib/node-esm/chunk-EJLYOSD7.mjs.map +0 -7
  336. package/dist/lib/node-esm/chunk-GA27XSEY.mjs +0 -270
  337. package/dist/lib/node-esm/chunk-GA27XSEY.mjs.map +0 -7
  338. package/dist/lib/node-esm/chunk-IBV2DR36.mjs.map +0 -7
  339. package/dist/lib/node-esm/chunk-N2XLVOFB.mjs +0 -103
  340. package/dist/lib/node-esm/chunk-N2XLVOFB.mjs.map +0 -7
  341. package/dist/lib/node-esm/chunk-O7HXE72S.mjs +0 -256
  342. package/dist/lib/node-esm/chunk-O7HXE72S.mjs.map +0 -7
  343. package/dist/lib/node-esm/chunk-OZ6LCME4.mjs +0 -645
  344. package/dist/lib/node-esm/chunk-OZ6LCME4.mjs.map +0 -7
  345. package/dist/lib/node-esm/chunk-TUGLYZDT.mjs +0 -305
  346. package/dist/lib/node-esm/chunk-TUGLYZDT.mjs.map +0 -7
  347. package/dist/lib/node-esm/chunk-UEGPBCSF.mjs +0 -154
  348. package/dist/lib/node-esm/chunk-UEGPBCSF.mjs.map +0 -7
  349. package/dist/lib/node-esm/compiler-I6A4KE6E.mjs +0 -87
  350. package/dist/lib/node-esm/compiler-I6A4KE6E.mjs.map +0 -7
  351. package/dist/lib/node-esm/intent-resolver-YKLZQR7U.mjs +0 -106
  352. package/dist/lib/node-esm/intent-resolver-YKLZQR7U.mjs.map +0 -7
  353. package/dist/lib/node-esm/react-surface-LVGLBSTE.mjs.map +0 -7
  354. package/dist/lib/node-esm/settings-O4EZPUE3.mjs +0 -27
  355. package/dist/lib/node-esm/settings-O4EZPUE3.mjs.map +0 -7
  356. package/dist/types/src/capabilities/app-graph-builder.d.ts +0 -4
  357. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +0 -1
  358. package/dist/types/src/capabilities/artifact-definition.d.ts +0 -11
  359. package/dist/types/src/capabilities/artifact-definition.d.ts.map +0 -1
  360. package/dist/types/src/capabilities/blueprint-definition.d.ts +0 -5
  361. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +0 -1
  362. package/dist/types/src/capabilities/capabilities.d.ts +0 -5
  363. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  364. package/dist/types/src/capabilities/compiler.d.ts +0 -4
  365. package/dist/types/src/capabilities/compiler.d.ts.map +0 -1
  366. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  367. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  368. package/dist/types/src/capabilities/react-surface.d.ts +0 -4
  369. package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
  370. package/dist/types/src/capabilities/settings.d.ts +0 -4
  371. package/dist/types/src/capabilities/settings.d.ts.map +0 -1
  372. package/dist/types/src/events.d.ts +0 -4
  373. package/dist/types/src/events.d.ts.map +0 -1
  374. package/dist/types/src/templates/chess.d.ts +0 -3
  375. package/dist/types/src/templates/chess.d.ts.map +0 -1
  376. package/src/capabilities/app-graph-builder.ts +0 -65
  377. package/src/capabilities/blueprint-definition.ts +0 -30
  378. package/src/capabilities/capabilities.ts +0 -12
  379. package/src/capabilities/compiler.ts +0 -34
  380. package/src/capabilities/intent-resolver.ts +0 -86
  381. package/src/capabilities/react-surface.tsx +0 -102
  382. package/src/capabilities/settings.ts +0 -21
  383. package/src/events.ts +0 -11
  384. package/src/templates/chess.ts +0 -49
  385. /package/dist/lib/browser/{DeploymentDialog-E5NXT4UQ.mjs.map → DeploymentDialog-OSL6RMPA.mjs.map} +0 -0
  386. /package/dist/lib/{node-esm/DeploymentDialog-OSHHSEBH.mjs.map → browser/blueprints/index.mjs.map} +0 -0
@@ -2,41 +2,36 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- // @ts-ignore
6
- import { S, defineFunction } from 'dxos:functions';
7
- import {
8
- FetchHttpClient,
9
- HttpClient,
10
- HttpClientRequest,
11
- // @ts-ignore
12
- } from 'https://esm.sh/@effect/platform@0.89.0?deps=effect@3.17.0&bundle=false';
13
- // @ts-ignore
14
- import * as Effect from 'https://esm.sh/effect@3.17.0/Effect?bundle=false';
15
- // @ts-ignore
16
- import * as Schedule from 'https://esm.sh/effect@3.17.0/Schedule?bundle=false';
5
+ import * as FetchHttpClient from '@effect/platform/FetchHttpClient';
6
+ import * as HttpClient from '@effect/platform/HttpClient';
7
+ import * as HttpClientRequest from '@effect/platform/HttpClientRequest';
8
+ import * as Effect from 'effect/Effect';
9
+ import * as Schedule from 'effect/Schedule';
10
+ import * as Schema from 'effect/Schema';
11
+
12
+ import { defineFunction } from '@dxos/functions';
17
13
 
18
14
  export default defineFunction({
19
15
  key: 'dxos.org/script/forex-effect',
20
16
  name: 'Forex Effect',
21
17
  description: 'Returns the exchange rate between two currencies.',
22
18
 
23
- inputSchema: S.Struct({
24
- from: S.String.annotations({ description: 'The source currency' }),
25
- to: S.String.annotations({ description: 'The target currency' }),
19
+ inputSchema: Schema.Struct({
20
+ from: Schema.String.annotations({ description: 'The source currency' }),
21
+ to: Schema.String.annotations({ description: 'The target currency' }),
26
22
  }),
27
23
 
28
- outputSchema: S.String.annotations({ description: 'The exchange rate between the two currencies' }),
24
+ outputSchema: Schema.String.annotations({ description: 'The exchange rate between the two currencies' }),
29
25
 
30
- handler: async ({ data: { from, to } }: any) =>
31
- Effect.gen(function* () {
32
- const res = yield* HttpClientRequest.get(`https://free.ratesdb.com/v1/rates?from=${from}&to=${to}`).pipe(
33
- HttpClient.execute,
34
- Effect.flatMap((res: any) => res.json),
35
- Effect.timeout('1 second'),
36
- Effect.retry(Schedule.exponential(1_000).pipe(Schedule.compose(Schedule.recurs(3)))),
37
- Effect.scoped,
38
- );
26
+ handler: Effect.fnUntraced(function* ({ data: { from, to } }) {
27
+ const res = yield* HttpClientRequest.get(`https://free.ratesdb.com/v1/rates?from=${from}&to=${to}`).pipe(
28
+ HttpClient.execute,
29
+ Effect.flatMap((res: any) => res.json),
30
+ Effect.timeout('1 second'),
31
+ Effect.retry(Schedule.exponential(1_000).pipe(Schedule.compose(Schedule.recurs(3)))),
32
+ Effect.scoped,
33
+ );
39
34
 
40
- return res.data.rates[to].toString();
41
- }).pipe(Effect.provide(FetchHttpClient.layer)),
35
+ return (res as any).data.rates[to].toString();
36
+ }, Effect.provide(FetchHttpClient.layer)),
42
37
  });
@@ -2,20 +2,21 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- // @ts-ignore
6
- import { S, defineFunction } from 'dxos:functions';
5
+ import * as Schema from 'effect/Schema';
6
+
7
+ import { defineFunction } from '@dxos/functions';
7
8
 
8
9
  export default defineFunction({
9
10
  key: 'dxos.org/script/forex',
10
11
  name: 'Forex',
11
12
  description: 'Returns the exchange rate between two currencies.',
12
13
 
13
- inputSchema: S.Struct({
14
- from: S.String.annotations({ description: 'The source currency' }),
15
- to: S.String.annotations({ description: 'The target currency' }),
14
+ inputSchema: Schema.Struct({
15
+ from: Schema.String.annotations({ description: 'The source currency' }),
16
+ to: Schema.String.annotations({ description: 'The target currency' }),
16
17
  }),
17
18
 
18
- handler: async ({ data: { from, to } }: any) => {
19
+ handler: async ({ data: { from, to } }) => {
19
20
  const res = await fetch(`https://free.ratesdb.com/v1/rates?from=${from}&to=${to}`);
20
21
  const {
21
22
  data: { rates },
@@ -175,8 +175,7 @@ const parseFromHeader = (value: string): { name?: string; email: string } | unde
175
175
  // TODO(wittjosiah): These schemas should be imported from @dxos/schema.
176
176
  //
177
177
 
178
- const ActorRoles = ['user', 'assistant'] as const;
179
- const ActorRole = S.Literal(...ActorRoles);
178
+ const ActorRole = S.Literal('user', 'assistant');
180
179
  type ActorRole = S.Schema.Type<typeof ActorRole>;
181
180
 
182
181
  const ActorSchema = S.Struct({
@@ -2,8 +2,10 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
+ import anthropic from './anthropic.ts?raw';
5
6
  import chat from './chat.ts?raw';
6
- import chess from './chess.ts?raw';
7
+ import chessBot from './chess-bot.ts?raw';
8
+ import commentary from './commentary.ts?raw';
7
9
  import dataGenerator from './data-generator.ts?raw';
8
10
  import discord from './discord.ts?raw';
9
11
  import email from './email.ts?raw';
@@ -46,10 +48,10 @@ export const templates = [
46
48
  presetId: 'dxos.org/function/gpt',
47
49
  },
48
50
  {
49
- id: 'dxos.org/script/chess',
50
- name: 'Chess',
51
- source: removeHeader(chess),
52
- presetId: 'dxos.org/function/chess',
51
+ id: 'dxos.org/script/chess-bot',
52
+ name: 'Chess Bot',
53
+ source: removeHeader(chessBot),
54
+ presetId: 'dxos.org/function/chess-bot',
53
55
  },
54
56
  {
55
57
  id: 'dxos.org/script/email',
@@ -75,4 +77,15 @@ export const templates = [
75
77
  source: removeHeader(dataGenerator),
76
78
  presetId: 'dxos.org/function/data-generator',
77
79
  },
80
+ {
81
+ id: 'dxos.org/script/anthropic',
82
+ name: 'Anthropic',
83
+ source: removeHeader(anthropic),
84
+ },
85
+ {
86
+ id: 'dxos.org/script/commentary',
87
+ name: 'Commentary',
88
+ source: removeHeader(commentary),
89
+ presetId: 'dxos.org/function/chess/commentary',
90
+ },
78
91
  ] as const;
@@ -1,8 +1,17 @@
1
1
  //
2
- // Copyright 2024 DXOS.org
2
+ // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- /**
6
- * Echos the request data.
7
- */
8
- export default async ({ data }: any) => data;
5
+ import * as Schema from 'effect/Schema';
6
+
7
+ import { defineFunction } from '@dxos/functions';
8
+
9
+ export default defineFunction({
10
+ key: 'dxos.org/script/ping',
11
+ name: 'Ping',
12
+ inputSchema: Schema.Any,
13
+
14
+ handler: async ({ data }) => {
15
+ return data;
16
+ },
17
+ });
@@ -7,7 +7,7 @@ import { Ref } from '@dxos/echo';
7
7
  import { createObject } from '@dxos/echo-db';
8
8
  import { PublicKey } from '@dxos/keys';
9
9
  import { Markdown } from '@dxos/plugin-markdown/types';
10
- import { DataType } from '@dxos/schema';
10
+ import { Text } from '@dxos/schema';
11
11
 
12
12
  import { Notebook } from '../types';
13
13
 
@@ -19,27 +19,27 @@ export const createNotebook = (): Notebook.Notebook =>
19
19
  {
20
20
  id: PublicKey.random().toString(),
21
21
  type: 'script',
22
- source: Ref.make(createObject(DataType.makeText('c = a() + b'))),
22
+ source: Ref.make(createObject(Text.make('c = a() + b'))),
23
23
  },
24
24
  {
25
25
  id: PublicKey.random().toString(),
26
26
  type: 'script',
27
- source: Ref.make(createObject(DataType.makeText('a = () => 100'))),
27
+ source: Ref.make(createObject(Text.make('a = () => 100'))),
28
28
  },
29
29
  {
30
30
  id: PublicKey.random().toString(),
31
31
  type: 'script',
32
- source: Ref.make(createObject(DataType.makeText('b = 200'))),
32
+ source: Ref.make(createObject(Text.make('b = 200'))),
33
33
  },
34
34
  {
35
35
  id: PublicKey.random().toString(),
36
36
  type: 'script',
37
- source: Ref.make(createObject(DataType.makeText('d = a() * 2'))),
37
+ source: Ref.make(createObject(Text.make('d = a() * 2'))),
38
38
  },
39
39
  {
40
40
  id: PublicKey.random().toString(),
41
41
  type: 'script',
42
- source: Ref.make(createObject(DataType.makeText('c + d'))),
42
+ source: Ref.make(createObject(Text.make('c + d'))),
43
43
  },
44
44
  {
45
45
  id: PublicKey.random().toString(),
@@ -55,7 +55,7 @@ export const createNotebook = (): Notebook.Notebook =>
55
55
  {
56
56
  id: PublicKey.random().toString(),
57
57
  type: 'query',
58
- source: Ref.make(createObject(DataType.makeText(`docs = (type: ${Markdown.Document.typename})`))),
58
+ source: Ref.make(createObject(Text.make(`docs = (type: ${Markdown.Document.typename})`))),
59
59
  },
60
60
  {
61
61
  id: PublicKey.random().toString(),
@@ -0,0 +1,40 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { readFile } from 'node:fs/promises';
6
+
7
+ import * as Record from 'effect/Record';
8
+ import { describe, expect, test } from 'vitest';
9
+
10
+ import { bundleFunction } from '@dxos/functions-runtime/bundler';
11
+ import { FunctionWorker } from '@dxos/functions-simulator-cloudflare';
12
+ import { ErrorCodec } from '@dxos/protocols';
13
+
14
+ // Requires downloading assets from R2
15
+ describe.runIf(process.env.DX_TEST_TAGS?.includes('functions-e2e'))('Run script in sumulator', () => {
16
+ test('forex-effect', { timeout: 120_000 }, async () => {
17
+ const source = await readFile(new URL('../templates/forex-effect.ts', import.meta.url), 'utf-8');
18
+
19
+ // Bundle and upload.
20
+ const buildResult = await bundleFunction({ source });
21
+ if ('error' in buildResult) {
22
+ throw buildResult.error ?? new Error('Bundle creation failed');
23
+ }
24
+
25
+ const worker = new FunctionWorker({
26
+ mainModule: buildResult.entryPoint,
27
+ modules: Record.map(buildResult.assets, (contents, filename) => ({
28
+ contents: contents as Uint8Array<ArrayBuffer>,
29
+ contentType: filename.endsWith('.wasm') ? 'application/wasm' : 'application/javascript',
30
+ })),
31
+ });
32
+
33
+ const result = await worker.invoke({ from: 'USD', to: 'EUR' });
34
+ console.log(result);
35
+ if (result._kind === 'error') {
36
+ throw ErrorCodec.decode(result.error);
37
+ }
38
+ expect(Number(result.result)).toBeGreaterThan(0);
39
+ });
40
+ });
@@ -19,6 +19,7 @@ export const translations = [
19
19
  'object name placeholder': 'New script',
20
20
  'rename object label': 'Rename script',
21
21
  'delete object label': 'Delete script',
22
+ 'object deleted label': 'Script deleted',
22
23
  },
23
24
  [Notebook.Notebook.typename]: {
24
25
  'typename label': 'Notebook',
@@ -28,6 +29,7 @@ export const translations = [
28
29
  'object name placeholder': 'New notebook',
29
30
  'rename object label': 'Rename notebook',
30
31
  'delete object label': 'Delete notebook',
32
+ 'object deleted label': 'Notebook deleted',
31
33
  },
32
34
  [meta.id]: {
33
35
  'plugin name': 'Scripts',
@@ -6,30 +6,30 @@ import * as Schema from 'effect/Schema';
6
6
 
7
7
  import { Prompt } from '@dxos/blueprints';
8
8
  import { Obj, Type } from '@dxos/echo';
9
- import { FormAnnotation } from '@dxos/echo/internal';
9
+ import { FormInputAnnotation } from '@dxos/echo/internal';
10
10
  import { LabelAnnotation } from '@dxos/echo/internal';
11
- import { DataType } from '@dxos/schema';
11
+ import { Graph } from '@dxos/plugin-explorer/types';
12
+ import { Text } from '@dxos/schema';
12
13
 
13
14
  export type CellType = 'markdown' | 'script' | 'query' | 'prompt' | 'view';
14
15
 
15
- const Cell_ = Schema.Struct({
16
+ export const Cell = Schema.Struct({
16
17
  id: Schema.String,
17
18
  type: Schema.String,
18
19
  name: Schema.optional(Schema.String),
19
20
  // TODO(burdon): Union type.
20
- source: Schema.optional(Type.Ref(DataType.Text)),
21
+ source: Schema.optional(Type.Ref(Text.Text)),
21
22
  prompt: Schema.optional(Type.Ref(Prompt.Prompt)),
22
- view: Schema.optional(Type.Ref(DataType.View)),
23
- }).pipe(Schema.mutable);
24
- export interface Cell extends Schema.Schema.Type<typeof Cell_> {}
25
- export interface Cell_Encoded extends Schema.Schema.Encoded<typeof Cell_> {}
26
- export const Cell: Schema.Schema<Cell, Cell_Encoded> = Cell_;
23
+ graph: Schema.optional(Type.Ref(Graph.Graph)),
24
+ });
25
+
26
+ export interface Cell extends Schema.Schema.Type<typeof Cell> {}
27
27
 
28
28
  export const Notebook = Schema.Struct({
29
29
  name: Schema.String.pipe(Schema.optional),
30
- cells: Cell.pipe(Schema.Array, Schema.mutable, FormAnnotation.set(false)),
30
+ cells: Cell.pipe(Schema.Array, FormInputAnnotation.set(false)),
31
31
  }).pipe(
32
- Type.Obj({
32
+ Type.object({
33
33
  typename: 'dxos.org/type/Notebook',
34
34
  version: '0.1.0',
35
35
  }),
@@ -38,4 +38,4 @@ export const Notebook = Schema.Struct({
38
38
 
39
39
  export type Notebook = Schema.Schema.Type<typeof Notebook>;
40
40
 
41
- export const make = (props: Obj.MakeProps<typeof Notebook> = { cells: [] }) => Obj.make(Notebook, props);
41
+ export const make = (props: Obj.MakeProps<typeof Notebook> = { cells: [] }): Notebook => Obj.make(Notebook, props);
@@ -4,15 +4,16 @@
4
4
 
5
5
  import * as Schema from 'effect/Schema';
6
6
 
7
- import { SpaceSchema } from '@dxos/client/echo';
7
+ import { Database } from '@dxos/echo';
8
8
  import { Script } from '@dxos/functions';
9
+ import { Operation } from '@dxos/operation';
9
10
 
10
11
  import { meta } from '../meta';
11
12
  import { templates } from '../templates';
12
13
 
13
- import * as Notebook from './Notebook';
14
+ const SCRIPT_OPERATION = `${meta.id}/operation`;
14
15
 
15
- export namespace ScriptAction {
16
+ export namespace ScriptOperation {
16
17
  export const ScriptProps = Schema.Struct({
17
18
  name: Schema.optional(Schema.String),
18
19
  // TODO(wittjosiah): Placeholder annotation?
@@ -23,31 +24,22 @@ export namespace ScriptAction {
23
24
  ),
24
25
  });
25
26
 
26
- export class CreateScript extends Schema.TaggedClass<CreateScript>()(`${meta.id}/action/create-script`, {
27
- input: Schema.extend(
28
- ScriptProps,
29
- Schema.Struct({
30
- space: SpaceSchema,
31
- }),
32
- ),
33
- output: Schema.Struct({
34
- object: Script.Script,
35
- }),
36
- }) {}
37
-
38
27
  export const NotebookProps = Schema.Struct({
39
28
  name: Schema.optional(Schema.String),
40
29
  });
41
30
 
42
- export class CreateNotebook extends Schema.TaggedClass<CreateNotebook>()(`${meta.id}/action/create-notebook`, {
43
- input: Schema.extend(
44
- NotebookProps,
45
- Schema.Struct({
46
- space: SpaceSchema,
31
+ export const CreateScript = Operation.make({
32
+ meta: { key: `${SCRIPT_OPERATION}/create-script`, name: 'Create Script' },
33
+ schema: {
34
+ input: Schema.extend(
35
+ ScriptProps,
36
+ Schema.Struct({
37
+ db: Database.Database,
38
+ }),
39
+ ),
40
+ output: Schema.Struct({
41
+ object: Script.Script,
47
42
  }),
48
- ),
49
- output: Schema.Struct({
50
- object: Notebook.Notebook,
51
- }),
52
- }) {}
43
+ },
44
+ });
53
45
  }
@@ -0,0 +1,17 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { type Atom } from '@effect-atom/atom-react';
6
+
7
+ import { Capability } from '@dxos/app-framework';
8
+
9
+ import { type Compiler } from '../compiler';
10
+ import { meta } from '../meta';
11
+
12
+ import { type ScriptSettings } from './types';
13
+
14
+ export namespace ScriptCapabilities {
15
+ export const Settings = Capability.make<Atom.Writable<ScriptSettings>>(`${meta.id}/capability/settings`);
16
+ export const Compiler = Capability.make<Compiler>(`${meta.id}/capability/compiler`);
17
+ }
@@ -0,0 +1,11 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { ActivationEvent } from '@dxos/app-framework';
6
+
7
+ import { meta } from '../meta';
8
+
9
+ export namespace ScriptEvents {
10
+ export const SetupCompiler = ActivationEvent.make(`${meta.id}/event/setup-compiler`);
11
+ }
@@ -3,5 +3,7 @@
3
3
  //
4
4
 
5
5
  export * from './actions';
6
+ export * from './capabilities';
7
+ export * from './events';
6
8
  export * as Notebook from './Notebook';
7
9
  export * from './types';
@@ -4,7 +4,7 @@
4
4
 
5
5
  import * as Schema from 'effect/Schema';
6
6
 
7
- import { EditorInputMode } from '@dxos/react-ui-editor';
7
+ import { EditorInputMode } from '@dxos/ui-editor';
8
8
 
9
9
  export const ScriptSettings = Schema.mutable(
10
10
  Schema.Struct({
@@ -4,14 +4,12 @@
4
4
 
5
5
  import { type Client } from '@dxos/client';
6
6
  import { Obj, Ref } from '@dxos/echo';
7
- import { Function, type Script, getUserFunctionIdInMetadata, setUserFunctionIdInMetadata } from '@dxos/functions';
8
- import { Bundler } from '@dxos/functions/bundler';
9
- import { incrementSemverPatch, uploadWorkerFunction } from '@dxos/functions/edge';
7
+ import { Function, type Script, getUserFunctionIdInMetadata } from '@dxos/functions';
8
+ import { bundleFunction } from '@dxos/functions-runtime/bundler';
9
+ import { FunctionsServiceClient, incrementSemverPatch } from '@dxos/functions-runtime/edge';
10
10
  import { log } from '@dxos/log';
11
+ import { FunctionRuntimeKind } from '@dxos/protocols';
11
12
  import { type Space } from '@dxos/react-client/echo';
12
- import { isNode } from '@dxos/util';
13
-
14
- import { updateFunctionMetadata } from './functions';
15
13
 
16
14
  export const isScriptDeployed = ({ script, fn }: { script: Script.Script; fn: any }): boolean => {
17
15
  const existingFunctionId = fn && getUserFunctionIdInMetadata(Obj.getMeta(fn));
@@ -44,32 +42,30 @@ export const deployScript = async ({
44
42
  }
45
43
 
46
44
  try {
47
- const bundler = new Bundler({ platform: isNode() ? 'node' : 'browser', sandboxedModules: [], remoteModules: {} });
48
- const buildResult = await bundler.bundle({ source: script.source!.target!.content });
45
+ const buildResult = await bundleFunction({
46
+ source: script.source!.target!.content,
47
+ });
49
48
  if ('error' in buildResult) {
50
49
  throw buildResult.error || new Error('Bundle creation failed');
51
50
  }
52
51
 
53
- const { functionId, version, meta } = await uploadWorkerFunction({
54
- client,
52
+ const functionsServiceClient = FunctionsServiceClient.fromClient(client);
53
+ const newFunction = await functionsServiceClient.deploy({
54
+ // TODO(dmaretskyi): Space key or identity key.
55
55
  ownerPublicKey: space.key,
56
56
  version: fn ? incrementSemverPatch(fn.version) : '0.0.1',
57
57
  functionId: existingFunctionId,
58
58
  entryPoint: buildResult.entryPoint,
59
- assets: { [buildResult.entryPoint]: buildResult.asset },
59
+ assets: buildResult.assets,
60
+ runtime: FunctionRuntimeKind.enums.WORKER_LOADER,
60
61
  });
61
62
 
62
- if (functionId === undefined || version === undefined) {
63
- throw new Error(`Upload didn't return expected data: ${JSON.stringify({ functionId, version })}`);
64
- }
65
-
66
- const storedFunction = createOrUpdateFunctionInSpace(space, fn, script, functionId, version);
67
- script.changed = false;
68
- updateFunctionMetadata(script, storedFunction, meta, functionId);
69
-
70
- setUserFunctionIdInMetadata(Obj.getMeta(storedFunction), functionId);
63
+ const storedFunction = createOrUpdateFunctionInSpace(space, fn, script, newFunction);
64
+ Obj.change(script, (s) => {
65
+ s.changed = false;
66
+ });
71
67
 
72
- return { success: true, functionId };
68
+ return { success: true, functionId: getUserFunctionIdInMetadata(Obj.getMeta(storedFunction)) };
73
69
  } catch (err: any) {
74
70
  log.catch(err);
75
71
  return { success: false, error: err };
@@ -90,17 +86,15 @@ const createOrUpdateFunctionInSpace = (
90
86
  space: Space,
91
87
  fn: Function.Function | undefined,
92
88
  script: Script.Script,
93
- functionId: string,
94
- version: string,
89
+ newFunction: Function.Function,
95
90
  ): Function.Function => {
96
91
  if (fn) {
97
- fn.name = script.name ?? 'New Function';
98
- fn.version = version;
92
+ Function.setFrom(fn, newFunction);
99
93
  return fn;
100
94
  } else {
101
- const fn = Function.make({ name: script.name ?? 'New Function', version, source: Ref.make(script) });
102
- space.db.add(fn);
103
- setUserFunctionIdInMetadata(Obj.getMeta(fn), functionId);
104
- return fn;
95
+ Obj.change(newFunction, (f) => {
96
+ f.source = Ref.make(script);
97
+ });
98
+ return space.db.add(newFunction);
105
99
  }
106
100
  };
@@ -2,11 +2,13 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { type Function, type Script, getInvocationUrl, getUserFunctionIdInMetadata } from '@dxos/functions';
5
+ import { Obj } from '@dxos/echo';
6
+ import { type Function, type Script, getUserFunctionIdInMetadata } from '@dxos/functions';
7
+ import { getInvocationUrl } from '@dxos/functions-runtime';
6
8
  import { type PublicKey } from '@dxos/keys';
7
9
  import { log } from '@dxos/log';
8
10
  import { type Credential } from '@dxos/protocols/proto/dxos/halo/credentials';
9
- import { getMeta, getSpace } from '@dxos/react-client/echo';
11
+ import { getSpace } from '@dxos/react-client/echo';
10
12
  /**
11
13
  * Get the function URL for a given script and client configuration
12
14
  */
@@ -20,7 +22,7 @@ export const getFunctionUrl = ({
20
22
  edgeUrl: string;
21
23
  }): string | undefined => {
22
24
  const space = getSpace(script);
23
- const existingFunctionId = fn && getUserFunctionIdInMetadata(getMeta(fn));
25
+ const existingFunctionId = fn && getUserFunctionIdInMetadata(Obj.getMeta(fn));
24
26
 
25
27
  if (!existingFunctionId) {
26
28
  return undefined;
@@ -37,31 +39,33 @@ export const updateFunctionMetadata = (
37
39
  meta: any,
38
40
  functionId: string,
39
41
  ) => {
40
- if (script.description !== undefined && script.description.trim() !== '') {
41
- storedFunction.description = script.description;
42
- } else if (meta.description) {
43
- storedFunction.description = meta.description;
44
- } else {
45
- log.verbose('no description in function metadata', { functionId });
46
- }
42
+ Obj.change(storedFunction, (f) => {
43
+ if (script.description !== undefined && script.description.trim() !== '') {
44
+ f.description = script.description;
45
+ } else if (meta.description) {
46
+ f.description = meta.description;
47
+ } else {
48
+ log.verbose('no description in function metadata', { functionId });
49
+ }
47
50
 
48
- if (meta.inputSchema) {
49
- storedFunction.inputSchema = meta.inputSchema;
50
- } else {
51
- log.verbose('no input schema in function metadata', { functionId });
52
- }
51
+ if (meta.inputSchema) {
52
+ f.inputSchema = meta.inputSchema;
53
+ } else {
54
+ log.verbose('no input schema in function metadata', { functionId });
55
+ }
53
56
 
54
- if (meta.outputSchema) {
55
- storedFunction.outputSchema = meta.outputSchema;
56
- } else {
57
- log.verbose('no output schema in function metadata', { functionId });
58
- }
57
+ if (meta.outputSchema) {
58
+ f.outputSchema = meta.outputSchema;
59
+ } else {
60
+ log.verbose('no output schema in function metadata', { functionId });
61
+ }
59
62
 
60
- if (meta.key) {
61
- storedFunction.key = meta.key;
62
- } else {
63
- log.verbose('no key in function metadata', { functionId });
64
- }
63
+ if (meta.key) {
64
+ f.key = meta.key;
65
+ } else {
66
+ log.verbose('no key in function metadata', { functionId });
67
+ }
68
+ });
65
69
  };
66
70
 
67
71
  export const getAccessCredential = (identityKey: PublicKey): Credential => {
package/src/vite-env.d.ts CHANGED
@@ -18,3 +18,5 @@ declare module '*?raw' {
18
18
  const content: string;
19
19
  export default content;
20
20
  }
21
+
22
+ declare module 'https://*';
@@ -1,14 +0,0 @@
1
- import {
2
- DEPLOYMENT_DIALOG,
3
- DeploymentDialog_default
4
- } from "./chunk-IQMYIWHG.mjs";
5
- import "./chunk-Q2DGRQRN.mjs";
6
- import "./chunk-HCURXADW.mjs";
7
- import "./chunk-ST3ACVUC.mjs";
8
- import "./chunk-EB6AXFXO.mjs";
9
- import "./chunk-J5LGTIGS.mjs";
10
- export {
11
- DEPLOYMENT_DIALOG,
12
- DeploymentDialog_default as default
13
- };
14
- //# sourceMappingURL=DeploymentDialog-E5NXT4UQ.mjs.map