@dxos/plugin-script 0.8.4-main.1da679c → 0.8.4-main.21d9917

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 (426) hide show
  1. package/dist/lib/browser/DeploymentDialog-GXNRUXF6.mjs +14 -0
  2. package/dist/lib/browser/NotebookContainer-4MM2VAQF.mjs +845 -0
  3. package/dist/lib/browser/NotebookContainer-4MM2VAQF.mjs.map +7 -0
  4. package/dist/lib/browser/ScriptContainer-X6GCYZZW.mjs +149 -0
  5. package/dist/lib/browser/ScriptContainer-X6GCYZZW.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-3O2DQGCP.mjs +113 -0
  12. package/dist/lib/browser/chunk-3O2DQGCP.mjs.map +7 -0
  13. package/dist/lib/browser/chunk-BTWHM6FH.mjs +270 -0
  14. package/dist/lib/browser/chunk-BTWHM6FH.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-IQRLM6JK.mjs +137 -0
  20. package/dist/lib/browser/chunk-IQRLM6JK.mjs.map +7 -0
  21. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  22. package/dist/lib/browser/chunk-J5LGTIGS.mjs.map +7 -0
  23. package/dist/lib/browser/chunk-NWSK27QB.mjs +606 -0
  24. package/dist/lib/browser/chunk-NWSK27QB.mjs.map +7 -0
  25. package/dist/lib/browser/chunk-UX4GHJ5E.mjs +105 -0
  26. package/dist/lib/browser/chunk-UX4GHJ5E.mjs.map +7 -0
  27. package/dist/lib/browser/chunk-WX2NVNFQ.mjs +557 -0
  28. package/dist/lib/browser/chunk-WX2NVNFQ.mjs.map +7 -0
  29. package/dist/lib/browser/{chunk-QYAREHGH.mjs → chunk-WYR4QHPE.mjs} +8 -5
  30. package/dist/lib/browser/chunk-WYR4QHPE.mjs.map +7 -0
  31. package/dist/lib/browser/compiler-XRBFQFXO.mjs +161 -0
  32. package/dist/lib/browser/compiler-XRBFQFXO.mjs.map +7 -0
  33. package/dist/lib/browser/index.mjs +137 -103
  34. package/dist/lib/browser/index.mjs.map +4 -4
  35. package/dist/lib/browser/meta.json +1 -1
  36. package/dist/lib/browser/operation-resolver-MUNR376F.mjs +82 -0
  37. package/dist/lib/browser/operation-resolver-MUNR376F.mjs.map +7 -0
  38. package/dist/lib/browser/react-surface-5TEC66UY.mjs +139 -0
  39. package/dist/lib/browser/react-surface-5TEC66UY.mjs.map +7 -0
  40. package/dist/lib/browser/settings-R4WKREUJ.mjs +35 -0
  41. package/dist/lib/browser/settings-R4WKREUJ.mjs.map +7 -0
  42. package/dist/lib/browser/templates/index.mjs +2 -1
  43. package/dist/lib/browser/types/index.mjs +14 -6
  44. package/dist/lib/node-esm/DeploymentDialog-EVFV2VJT.mjs +15 -0
  45. package/dist/lib/node-esm/DeploymentDialog-EVFV2VJT.mjs.map +7 -0
  46. package/dist/lib/node-esm/NotebookContainer-QLW5ZYGS.mjs +846 -0
  47. package/dist/lib/node-esm/NotebookContainer-QLW5ZYGS.mjs.map +7 -0
  48. package/dist/lib/node-esm/ScriptContainer-3DZ3BMHW.mjs +150 -0
  49. package/dist/lib/node-esm/ScriptContainer-3DZ3BMHW.mjs.map +7 -0
  50. package/dist/lib/node-esm/app-graph-builder-NVE3EVBG.mjs +69 -0
  51. package/dist/lib/node-esm/app-graph-builder-NVE3EVBG.mjs.map +7 -0
  52. package/dist/lib/node-esm/blueprint-definition-NC7NNJGI.mjs +18 -0
  53. package/dist/lib/node-esm/blueprint-definition-NC7NNJGI.mjs.map +7 -0
  54. package/dist/lib/node-esm/blueprints/index.mjs +9 -0
  55. package/dist/lib/node-esm/blueprints/index.mjs.map +7 -0
  56. package/dist/lib/node-esm/chunk-4F5FJZ36.mjs +107 -0
  57. package/dist/lib/node-esm/chunk-4F5FJZ36.mjs.map +7 -0
  58. package/dist/lib/node-esm/{chunk-AHXJ6NQU.mjs → chunk-5HSJPAK7.mjs} +8 -5
  59. package/dist/lib/node-esm/chunk-5HSJPAK7.mjs.map +7 -0
  60. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  61. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  62. package/dist/lib/node-esm/chunk-KN6SQYUF.mjs +114 -0
  63. package/dist/lib/node-esm/chunk-KN6SQYUF.mjs.map +7 -0
  64. package/dist/lib/node-esm/chunk-MGWKULCD.mjs +558 -0
  65. package/dist/lib/node-esm/chunk-MGWKULCD.mjs.map +7 -0
  66. package/dist/lib/node-esm/chunk-SLU3KRV3.mjs +112 -0
  67. package/dist/lib/node-esm/chunk-SLU3KRV3.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/chunk-YEWLTVBT.mjs +138 -0
  73. package/dist/lib/node-esm/chunk-YEWLTVBT.mjs.map +7 -0
  74. package/dist/lib/node-esm/chunk-ZQGHFNO3.mjs +607 -0
  75. package/dist/lib/node-esm/chunk-ZQGHFNO3.mjs.map +7 -0
  76. package/dist/lib/node-esm/compiler-ORJAXDN7.mjs +162 -0
  77. package/dist/lib/node-esm/compiler-ORJAXDN7.mjs.map +7 -0
  78. package/dist/lib/node-esm/index.mjs +137 -103
  79. package/dist/lib/node-esm/index.mjs.map +4 -4
  80. package/dist/lib/node-esm/meta.json +1 -1
  81. package/dist/lib/node-esm/operation-resolver-CLE4ZCC5.mjs +83 -0
  82. package/dist/lib/node-esm/operation-resolver-CLE4ZCC5.mjs.map +7 -0
  83. package/dist/lib/node-esm/react-surface-O3UDMKOQ.mjs +140 -0
  84. package/dist/lib/node-esm/react-surface-O3UDMKOQ.mjs.map +7 -0
  85. package/dist/lib/node-esm/settings-OFIMHU7K.mjs +36 -0
  86. package/dist/lib/node-esm/settings-OFIMHU7K.mjs.map +7 -0
  87. package/dist/lib/node-esm/templates/index.mjs +2 -1
  88. package/dist/lib/node-esm/types/index.mjs +14 -6
  89. package/dist/types/src/ScriptPlugin.d.ts +2 -1
  90. package/dist/types/src/ScriptPlugin.d.ts.map +1 -1
  91. package/dist/types/src/blueprints/index.d.ts +2 -0
  92. package/dist/types/src/blueprints/index.d.ts.map +1 -0
  93. package/dist/types/src/blueprints/script-blueprint.d.ts +22 -0
  94. package/dist/types/src/blueprints/script-blueprint.d.ts.map +1 -0
  95. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +6 -0
  96. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -0
  97. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +3 -0
  98. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +1 -0
  99. package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts +12 -0
  100. package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts.map +1 -0
  101. package/dist/types/src/capabilities/artifact-definition/index.d.ts +3 -0
  102. package/dist/types/src/capabilities/artifact-definition/index.d.ts.map +1 -0
  103. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +9 -0
  104. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +1 -0
  105. package/dist/types/src/capabilities/blueprint-definition/index.d.ts +3 -0
  106. package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +1 -0
  107. package/dist/types/src/capabilities/compiler/compiler.d.ts +6 -0
  108. package/dist/types/src/capabilities/compiler/compiler.d.ts.map +1 -0
  109. package/dist/types/src/capabilities/compiler/index.d.ts +3 -0
  110. package/dist/types/src/capabilities/compiler/index.d.ts.map +1 -0
  111. package/dist/types/src/capabilities/index.d.ts +6 -7
  112. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  113. package/dist/types/src/capabilities/operation-resolver/index.d.ts +3 -0
  114. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -0
  115. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +5 -0
  116. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -0
  117. package/dist/types/src/capabilities/react-surface/index.d.ts +3 -0
  118. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
  119. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +5 -0
  120. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
  121. package/dist/types/src/capabilities/settings/index.d.ts +7 -0
  122. package/dist/types/src/capabilities/settings/index.d.ts.map +1 -0
  123. package/dist/types/src/capabilities/settings/settings.d.ts +9 -0
  124. package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -0
  125. package/dist/types/src/compiler/compiler.d.ts +1 -1
  126. package/dist/types/src/compiler/compiler.d.ts.map +1 -1
  127. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.d.ts +3 -3
  128. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.d.ts.map +1 -1
  129. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts +114 -10
  130. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts.map +1 -1
  131. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts +1 -1
  132. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts.map +1 -1
  133. package/dist/types/src/components/NotebookContainer.d.ts +8 -0
  134. package/dist/types/src/components/NotebookContainer.d.ts.map +1 -0
  135. package/dist/types/src/components/NotebookContainer.stories.d.ts +7 -0
  136. package/dist/types/src/components/NotebookContainer.stories.d.ts.map +1 -0
  137. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts +15 -0
  138. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts.map +1 -0
  139. package/dist/types/src/components/NotebookStack/NotebookMenu.d.ts +9 -0
  140. package/dist/types/src/components/NotebookStack/NotebookMenu.d.ts.map +1 -0
  141. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts +14 -0
  142. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts.map +1 -0
  143. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts +249 -0
  144. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts.map +1 -0
  145. package/dist/types/src/components/NotebookStack/index.d.ts +3 -0
  146. package/dist/types/src/components/NotebookStack/index.d.ts.map +1 -0
  147. package/dist/types/src/components/QueryEditor/QueryEditor.d.ts +5 -0
  148. package/dist/types/src/components/QueryEditor/QueryEditor.d.ts.map +1 -0
  149. package/dist/types/src/components/QueryEditor/QueryEditor.stories.d.ts +13 -0
  150. package/dist/types/src/components/QueryEditor/QueryEditor.stories.d.ts.map +1 -0
  151. package/dist/types/src/components/QueryEditor/index.d.ts +2 -0
  152. package/dist/types/src/components/QueryEditor/index.d.ts.map +1 -0
  153. package/dist/types/src/components/ScriptContainer.d.ts +7 -8
  154. package/dist/types/src/components/ScriptContainer.d.ts.map +1 -1
  155. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts +7 -8
  156. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts.map +1 -1
  157. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts +241 -2
  158. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts.map +1 -1
  159. package/dist/types/src/components/Settings/ScriptObjectSettings.d.ts +2 -2
  160. package/dist/types/src/components/Settings/ScriptObjectSettings.d.ts.map +1 -1
  161. package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts +6 -4
  162. package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts.map +1 -1
  163. package/dist/types/src/components/TestPanel/TestContainer.d.ts +3 -3
  164. package/dist/types/src/components/TestPanel/TestContainer.d.ts.map +1 -1
  165. package/dist/types/src/components/TestPanel/TestPanel.d.ts.map +1 -1
  166. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts +5 -2
  167. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts.map +1 -1
  168. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts +3 -3
  169. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts.map +1 -1
  170. package/dist/types/src/components/index.d.ts +3 -1
  171. package/dist/types/src/components/index.d.ts.map +1 -1
  172. package/dist/types/src/e2e/ai.test.d.ts +2 -0
  173. package/dist/types/src/e2e/ai.test.d.ts.map +1 -0
  174. package/dist/types/src/e2e/deploy.test.d.ts +2 -0
  175. package/dist/types/src/e2e/deploy.test.d.ts.map +1 -0
  176. package/dist/types/src/hooks/deploy.d.ts +16 -31
  177. package/dist/types/src/hooks/deploy.d.ts.map +1 -1
  178. package/dist/types/src/hooks/format.d.ts +4 -4
  179. package/dist/types/src/hooks/format.d.ts.map +1 -1
  180. package/dist/types/src/hooks/index.d.ts +1 -0
  181. package/dist/types/src/hooks/index.d.ts.map +1 -1
  182. package/dist/types/src/hooks/template.d.ts +6 -16
  183. package/dist/types/src/hooks/template.d.ts.map +1 -1
  184. package/dist/types/src/hooks/useCompiler.d.ts +7 -0
  185. package/dist/types/src/hooks/useCompiler.d.ts.map +1 -0
  186. package/dist/types/src/hooks/useCreateAndDeployScriptTemplates.d.ts.map +1 -1
  187. package/dist/types/src/hooks/useToolbarState.d.ts +8 -1
  188. package/dist/types/src/hooks/useToolbarState.d.ts.map +1 -1
  189. package/dist/types/src/index.d.ts +2 -1
  190. package/dist/types/src/index.d.ts.map +1 -1
  191. package/dist/types/src/meta.d.ts +2 -3
  192. package/dist/types/src/meta.d.ts.map +1 -1
  193. package/dist/types/src/notebook/compute-graph.d.ts +58 -0
  194. package/dist/types/src/notebook/compute-graph.d.ts.map +1 -0
  195. package/dist/types/src/notebook/compute-graph.test.d.ts +2 -0
  196. package/dist/types/src/notebook/compute-graph.test.d.ts.map +1 -0
  197. package/dist/types/src/notebook/eval.d.ts +13 -0
  198. package/dist/types/src/notebook/eval.d.ts.map +1 -0
  199. package/dist/types/src/notebook/index.d.ts +2 -0
  200. package/dist/types/src/notebook/index.d.ts.map +1 -0
  201. package/dist/types/src/notebook/vfs-parser.d.ts +74 -0
  202. package/dist/types/src/notebook/vfs-parser.d.ts.map +1 -0
  203. package/dist/types/src/notebook/vfs-parser.test.d.ts +2 -0
  204. package/dist/types/src/notebook/vfs-parser.test.d.ts.map +1 -0
  205. package/dist/types/src/templates/anthropic.d.ts +8 -0
  206. package/dist/types/src/templates/anthropic.d.ts.map +1 -0
  207. package/dist/types/src/templates/chess-bot.d.ts +16 -0
  208. package/dist/types/src/templates/chess-bot.d.ts.map +1 -0
  209. package/dist/types/src/templates/commentary.d.ts +16 -0
  210. package/dist/types/src/templates/commentary.d.ts.map +1 -0
  211. package/dist/types/src/templates/data-generator.d.ts.map +1 -1
  212. package/dist/types/src/templates/discord.d.ts.map +1 -1
  213. package/dist/types/src/templates/forex-effect.d.ts +4 -1
  214. package/dist/types/src/templates/forex-effect.d.ts.map +1 -1
  215. package/dist/types/src/templates/forex.d.ts +4 -1
  216. package/dist/types/src/templates/forex.d.ts.map +1 -1
  217. package/dist/types/src/templates/gmail.d.ts.map +1 -1
  218. package/dist/types/src/templates/index.d.ts +52 -1
  219. package/dist/types/src/templates/index.d.ts.map +1 -1
  220. package/dist/types/src/templates/ping.d.ts +3 -0
  221. package/dist/types/src/templates/ping.d.ts.map +1 -0
  222. package/dist/types/src/testing/data.d.ts +3 -0
  223. package/dist/types/src/testing/data.d.ts.map +1 -0
  224. package/dist/types/src/testing/index.d.ts +2 -0
  225. package/dist/types/src/testing/index.d.ts.map +1 -0
  226. package/dist/types/src/testing/simulator.test.d.ts +2 -0
  227. package/dist/types/src/testing/simulator.test.d.ts.map +1 -0
  228. package/dist/types/src/translations.d.ts +31 -5
  229. package/dist/types/src/translations.d.ts.map +1 -1
  230. package/dist/types/src/types/Notebook.d.ts +100 -0
  231. package/dist/types/src/types/Notebook.d.ts.map +1 -0
  232. package/dist/types/src/types/actions.d.ts +40 -0
  233. package/dist/types/src/types/actions.d.ts.map +1 -0
  234. package/dist/types/src/types/capabilities.d.ts +12 -0
  235. package/dist/types/src/types/capabilities.d.ts.map +1 -0
  236. package/dist/types/src/types/events.d.ts +5 -0
  237. package/dist/types/src/types/events.d.ts.map +1 -0
  238. package/dist/types/src/types/index.d.ts +5 -1
  239. package/dist/types/src/types/index.d.ts.map +1 -1
  240. package/dist/types/src/types/types.d.ts +6 -0
  241. package/dist/types/src/types/types.d.ts.map +1 -0
  242. package/dist/types/src/util/deploy.d.ts +4 -4
  243. package/dist/types/src/util/deploy.d.ts.map +1 -1
  244. package/dist/types/src/util/functions.d.ts +6 -3
  245. package/dist/types/src/util/functions.d.ts.map +1 -1
  246. package/dist/types/tsconfig.tsbuildinfo +1 -1
  247. package/package.json +117 -82
  248. package/src/ScriptPlugin.tsx +55 -75
  249. package/src/blueprints/index.ts +5 -0
  250. package/src/blueprints/script-blueprint.ts +24 -0
  251. package/src/capabilities/app-graph-builder/app-graph-builder.ts +55 -0
  252. package/src/capabilities/app-graph-builder/index.ts +7 -0
  253. package/src/capabilities/{artifact-definition.ts → artifact-definition/artifact-definition.ts} +98 -96
  254. package/src/capabilities/artifact-definition/index.ts +7 -0
  255. package/src/capabilities/blueprint-definition/blueprint-definition.ts +23 -0
  256. package/src/capabilities/blueprint-definition/index.ts +7 -0
  257. package/src/capabilities/compiler/compiler.ts +103 -0
  258. package/src/capabilities/compiler/index.ts +7 -0
  259. package/src/capabilities/index.ts +6 -10
  260. package/src/capabilities/operation-resolver/index.ts +7 -0
  261. package/src/capabilities/operation-resolver/operation-resolver.ts +74 -0
  262. package/src/capabilities/react-surface/index.ts +7 -0
  263. package/src/capabilities/react-surface/react-surface.tsx +118 -0
  264. package/src/capabilities/settings/index.ts +7 -0
  265. package/src/capabilities/settings/settings.ts +32 -0
  266. package/src/compiler/compiler.ts +10 -3
  267. package/src/components/DeploymentDialog/DeploymentDialog.stories.tsx +37 -26
  268. package/src/components/DeploymentDialog/DeploymentDialog.tsx +41 -50
  269. package/src/components/FrameContainer/FrameContainer.tsx +6 -4
  270. package/src/components/NotebookContainer.stories.tsx +87 -0
  271. package/src/components/NotebookContainer.tsx +270 -0
  272. package/src/components/NotebookStack/NotebookCell.tsx +217 -0
  273. package/src/components/NotebookStack/NotebookMenu.tsx +47 -0
  274. package/src/components/NotebookStack/NotebookStack.stories.tsx +55 -0
  275. package/src/components/NotebookStack/NotebookStack.tsx +86 -0
  276. package/src/components/NotebookStack/index.ts +6 -0
  277. package/src/components/QueryEditor/QueryEditor.stories.tsx +100 -0
  278. package/src/components/QueryEditor/QueryEditor.tsx +47 -0
  279. package/src/components/QueryEditor/index.ts +5 -0
  280. package/src/components/ScriptContainer.tsx +50 -35
  281. package/src/components/ScriptToolbar/ScriptToolbar.stories.tsx +54 -19
  282. package/src/components/ScriptToolbar/ScriptToolbar.tsx +30 -36
  283. package/src/components/Settings/ScriptObjectSettings.tsx +136 -29
  284. package/src/components/Settings/ScriptPluginSettings.tsx +11 -21
  285. package/src/components/TestPanel/TestContainer.tsx +7 -7
  286. package/src/components/TestPanel/TestPanel.tsx +42 -19
  287. package/src/components/TypescriptEditor/TypescriptEditor.stories.tsx +77 -17
  288. package/src/components/TypescriptEditor/TypescriptEditor.tsx +81 -80
  289. package/src/components/index.ts +3 -0
  290. package/src/e2e/ai.test.ts +92 -0
  291. package/src/e2e/deploy.test.ts +64 -0
  292. package/src/hooks/deploy.ts +44 -37
  293. package/src/hooks/format.ts +9 -5
  294. package/src/hooks/index.ts +1 -0
  295. package/src/hooks/template.ts +20 -23
  296. package/src/hooks/useCompiler.ts +24 -0
  297. package/src/hooks/useCreateAndDeployScriptTemplates.ts +14 -16
  298. package/src/hooks/useToolbarState.ts +29 -5
  299. package/src/index.ts +2 -1
  300. package/src/meta.ts +9 -7
  301. package/src/notebook/compute-graph.test.ts +82 -0
  302. package/src/notebook/compute-graph.ts +230 -0
  303. package/src/notebook/eval.ts +105 -0
  304. package/src/notebook/index.ts +5 -0
  305. package/src/notebook/vfs-parser.test.ts +149 -0
  306. package/src/notebook/vfs-parser.ts +451 -0
  307. package/src/templates/anthropic.ts +42 -0
  308. package/src/templates/chess-bot.ts +58 -0
  309. package/src/templates/commentary.ts +232 -0
  310. package/src/templates/data-generator.ts +3 -1
  311. package/src/templates/discord.ts +9 -1
  312. package/src/templates/forex-effect.ts +24 -25
  313. package/src/templates/forex.ts +9 -6
  314. package/src/templates/gmail.ts +22 -11
  315. package/src/templates/index.ts +24 -11
  316. package/src/templates/ping.ts +17 -0
  317. package/src/testing/data.ts +72 -0
  318. package/src/testing/index.ts +5 -0
  319. package/src/testing/simulator.test.ts +40 -0
  320. package/src/translations.ts +34 -7
  321. package/src/types/Notebook.ts +41 -0
  322. package/src/types/actions.ts +45 -0
  323. package/src/types/capabilities.ts +17 -0
  324. package/src/types/events.ts +11 -0
  325. package/src/types/index.ts +5 -1
  326. package/src/types/types.ts +15 -0
  327. package/src/util/deploy.ts +30 -40
  328. package/src/util/functions.ts +56 -23
  329. package/src/vite-env.d.ts +2 -0
  330. package/dist/lib/browser/DeploymentDialog-QZSTVNIS.mjs +0 -12
  331. package/dist/lib/browser/ScriptContainer-IA7YJMFR.mjs +0 -265
  332. package/dist/lib/browser/ScriptContainer-IA7YJMFR.mjs.map +0 -7
  333. package/dist/lib/browser/app-graph-builder-5NIA7SLT.mjs +0 -64
  334. package/dist/lib/browser/app-graph-builder-5NIA7SLT.mjs.map +0 -7
  335. package/dist/lib/browser/blueprint-definition-ET5KZ46I.mjs +0 -28
  336. package/dist/lib/browser/blueprint-definition-ET5KZ46I.mjs.map +0 -7
  337. package/dist/lib/browser/chunk-4AUQEB2I.mjs +0 -88
  338. package/dist/lib/browser/chunk-4AUQEB2I.mjs.map +0 -7
  339. package/dist/lib/browser/chunk-5TVBECWH.mjs +0 -15
  340. package/dist/lib/browser/chunk-5TVBECWH.mjs.map +0 -7
  341. package/dist/lib/browser/chunk-B5QYN3AG.mjs +0 -556
  342. package/dist/lib/browser/chunk-B5QYN3AG.mjs.map +0 -7
  343. package/dist/lib/browser/chunk-IS4OG2UW.mjs +0 -39
  344. package/dist/lib/browser/chunk-IS4OG2UW.mjs.map +0 -7
  345. package/dist/lib/browser/chunk-KLGK77UK.mjs +0 -283
  346. package/dist/lib/browser/chunk-KLGK77UK.mjs.map +0 -7
  347. package/dist/lib/browser/chunk-NXKU3BNX.mjs +0 -222
  348. package/dist/lib/browser/chunk-NXKU3BNX.mjs.map +0 -7
  349. package/dist/lib/browser/chunk-QYAREHGH.mjs.map +0 -7
  350. package/dist/lib/browser/chunk-YCZPTTFO.mjs +0 -153
  351. package/dist/lib/browser/chunk-YCZPTTFO.mjs.map +0 -7
  352. package/dist/lib/browser/compiler-O7MNN3XT.mjs +0 -98
  353. package/dist/lib/browser/compiler-O7MNN3XT.mjs.map +0 -7
  354. package/dist/lib/browser/intent-resolver-GGGTXYMB.mjs +0 -89
  355. package/dist/lib/browser/intent-resolver-GGGTXYMB.mjs.map +0 -7
  356. package/dist/lib/browser/react-surface-C4ZTW4QA.mjs +0 -104
  357. package/dist/lib/browser/react-surface-C4ZTW4QA.mjs.map +0 -7
  358. package/dist/lib/browser/settings-A4E4R7VL.mjs +0 -24
  359. package/dist/lib/browser/settings-A4E4R7VL.mjs.map +0 -7
  360. package/dist/lib/node-esm/DeploymentDialog-G6EHEPXN.mjs +0 -13
  361. package/dist/lib/node-esm/ScriptContainer-6AVJSLU4.mjs +0 -266
  362. package/dist/lib/node-esm/ScriptContainer-6AVJSLU4.mjs.map +0 -7
  363. package/dist/lib/node-esm/app-graph-builder-V7QF54LT.mjs +0 -65
  364. package/dist/lib/node-esm/app-graph-builder-V7QF54LT.mjs.map +0 -7
  365. package/dist/lib/node-esm/blueprint-definition-AIYFOT7Q.mjs +0 -30
  366. package/dist/lib/node-esm/blueprint-definition-AIYFOT7Q.mjs.map +0 -7
  367. package/dist/lib/node-esm/chunk-35M3CHYE.mjs +0 -16
  368. package/dist/lib/node-esm/chunk-35M3CHYE.mjs.map +0 -7
  369. package/dist/lib/node-esm/chunk-5OGRMRLA.mjs +0 -90
  370. package/dist/lib/node-esm/chunk-5OGRMRLA.mjs.map +0 -7
  371. package/dist/lib/node-esm/chunk-AHXJ6NQU.mjs.map +0 -7
  372. package/dist/lib/node-esm/chunk-JIPFLBYA.mjs +0 -40
  373. package/dist/lib/node-esm/chunk-JIPFLBYA.mjs.map +0 -7
  374. package/dist/lib/node-esm/chunk-M642JUOZ.mjs +0 -223
  375. package/dist/lib/node-esm/chunk-M642JUOZ.mjs.map +0 -7
  376. package/dist/lib/node-esm/chunk-MPN2DI4P.mjs +0 -557
  377. package/dist/lib/node-esm/chunk-MPN2DI4P.mjs.map +0 -7
  378. package/dist/lib/node-esm/chunk-WXKOIREL.mjs +0 -284
  379. package/dist/lib/node-esm/chunk-WXKOIREL.mjs.map +0 -7
  380. package/dist/lib/node-esm/chunk-ZA36GO4T.mjs +0 -154
  381. package/dist/lib/node-esm/chunk-ZA36GO4T.mjs.map +0 -7
  382. package/dist/lib/node-esm/compiler-TZUZ7I6H.mjs +0 -99
  383. package/dist/lib/node-esm/compiler-TZUZ7I6H.mjs.map +0 -7
  384. package/dist/lib/node-esm/intent-resolver-DUJWXCRR.mjs +0 -90
  385. package/dist/lib/node-esm/intent-resolver-DUJWXCRR.mjs.map +0 -7
  386. package/dist/lib/node-esm/react-surface-5CM3KXFE.mjs +0 -105
  387. package/dist/lib/node-esm/react-surface-5CM3KXFE.mjs.map +0 -7
  388. package/dist/lib/node-esm/settings-FZ25DUX4.mjs +0 -25
  389. package/dist/lib/node-esm/settings-FZ25DUX4.mjs.map +0 -7
  390. package/dist/types/src/capabilities/app-graph-builder.d.ts +0 -4
  391. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +0 -1
  392. package/dist/types/src/capabilities/artifact-definition.d.ts +0 -11
  393. package/dist/types/src/capabilities/artifact-definition.d.ts.map +0 -1
  394. package/dist/types/src/capabilities/blueprint-definition.d.ts +0 -5
  395. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +0 -1
  396. package/dist/types/src/capabilities/capabilities.d.ts +0 -5
  397. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  398. package/dist/types/src/capabilities/compiler.d.ts +0 -4
  399. package/dist/types/src/capabilities/compiler.d.ts.map +0 -1
  400. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  401. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  402. package/dist/types/src/capabilities/react-surface.d.ts +0 -4
  403. package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
  404. package/dist/types/src/capabilities/settings.d.ts +0 -4
  405. package/dist/types/src/capabilities/settings.d.ts.map +0 -1
  406. package/dist/types/src/events.d.ts +0 -4
  407. package/dist/types/src/events.d.ts.map +0 -1
  408. package/dist/types/src/templates/chess.d.ts +0 -3
  409. package/dist/types/src/templates/chess.d.ts.map +0 -1
  410. package/dist/types/src/templates/echo.d.ts +0 -6
  411. package/dist/types/src/templates/echo.d.ts.map +0 -1
  412. package/dist/types/src/types/schema.d.ts +0 -38
  413. package/dist/types/src/types/schema.d.ts.map +0 -1
  414. package/src/capabilities/app-graph-builder.ts +0 -64
  415. package/src/capabilities/blueprint-definition.ts +0 -30
  416. package/src/capabilities/capabilities.ts +0 -12
  417. package/src/capabilities/compiler.ts +0 -34
  418. package/src/capabilities/intent-resolver.ts +0 -77
  419. package/src/capabilities/react-surface.tsx +0 -90
  420. package/src/capabilities/settings.ts +0 -21
  421. package/src/events.ts +0 -11
  422. package/src/templates/chess.ts +0 -47
  423. package/src/templates/echo.ts +0 -8
  424. package/src/types/schema.ts +0 -37
  425. /package/dist/lib/browser/{DeploymentDialog-QZSTVNIS.mjs.map → DeploymentDialog-GXNRUXF6.mjs.map} +0 -0
  426. /package/dist/lib/{node-esm/DeploymentDialog-G6EHEPXN.mjs.map → browser/blueprints/index.mjs.map} +0 -0
@@ -1,39 +0,0 @@
1
- import {
2
- meta
3
- } from "./chunk-QYAREHGH.mjs";
4
-
5
- // src/types/schema.ts
6
- import { Schema } from "effect";
7
- import { SpaceSchema } from "@dxos/client/echo";
8
- import { ScriptType } from "@dxos/functions";
9
- import { EditorInputMode } from "@dxos/react-ui-editor";
10
- (function(ScriptAction2) {
11
- ScriptAction2.CreateScriptSchema = Schema.Struct({
12
- name: Schema.optional(Schema.String),
13
- // TODO(wittjosiah): Placeholder annotation?
14
- gistUrl: Schema.optional(Schema.String.annotations({
15
- title: "Import from Gist (url)"
16
- })),
17
- initialTemplateId: Schema.optional(Schema.String)
18
- });
19
- class Create extends Schema.TaggedClass()(`${meta.id}/action/create`, {
20
- input: Schema.extend(ScriptAction2.CreateScriptSchema, Schema.Struct({
21
- space: SpaceSchema
22
- })),
23
- output: Schema.Struct({
24
- object: ScriptType
25
- })
26
- }) {
27
- }
28
- ScriptAction2.Create = Create;
29
- })(ScriptAction || (ScriptAction = {}));
30
- var ScriptSettingsSchema = Schema.mutable(Schema.Struct({
31
- editorInputMode: EditorInputMode
32
- }));
33
- var ScriptAction;
34
-
35
- export {
36
- ScriptSettingsSchema,
37
- ScriptAction
38
- };
39
- //# sourceMappingURL=chunk-IS4OG2UW.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/types/schema.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Schema } from 'effect';\n\nimport { SpaceSchema } from '@dxos/client/echo';\nimport { ScriptType } from '@dxos/functions';\nimport { EditorInputMode } from '@dxos/react-ui-editor';\n\nimport { meta } from '../meta';\n\nexport namespace ScriptAction {\n export const CreateScriptSchema = Schema.Struct({\n name: Schema.optional(Schema.String),\n // TODO(wittjosiah): Placeholder annotation?\n gistUrl: Schema.optional(Schema.String.annotations({ title: 'Import from Gist (url)' })),\n initialTemplateId: Schema.optional(Schema.String),\n });\n\n export type CreateScriptProps = Schema.Schema.Type<typeof CreateScriptSchema>;\n\n export class Create extends Schema.TaggedClass<Create>()(`${meta.id}/action/create`, {\n input: Schema.extend(CreateScriptSchema, Schema.Struct({ space: SpaceSchema })),\n output: Schema.Struct({\n object: ScriptType,\n }),\n }) {}\n}\n\nexport const ScriptSettingsSchema = Schema.mutable(\n Schema.Struct({\n editorInputMode: EditorInputMode,\n }),\n);\n\nexport type ScriptSettingsProps = Schema.Schema.Type<typeof ScriptSettingsSchema>;\n"],
5
- "mappings": ";;;;;AAIA,SAASA,cAAc;AAEvB,SAASC,mBAAmB;AAC5B,SAASC,kBAAkB;AAC3B,SAASC,uBAAuB;UAIfC,eAAAA;gBACFC,qBAAqBC,OAAOC,OAAO;IAC9CC,MAAMF,OAAOG,SAASH,OAAOI,MAAM;;IAEnCC,SAASL,OAAOG,SAASH,OAAOI,OAAOE,YAAY;MAAEC,OAAO;IAAyB,CAAA,CAAA;IACrFC,mBAAmBR,OAAOG,SAASH,OAAOI,MAAM;EAClD,CAAA;EAIO,MAAMK,eAAeT,OAAOU,YAAW,EAAW,GAAGC,KAAKC,EAAE,kBAAkB;IACnFC,OAAOb,OAAOc,OAAMhB,cAACC,oBAAoBC,OAAOC,OAAO;MAAEc,OAAOC;IAAY,CAAA,CAAA;IAC5EC,QAAQjB,OAAOC,OAAO;MACpBiB,QAAQC;IACV,CAAA;EACF,CAAA,EAAA;EAAI;gBALSV,SAAAA;AAMf,GAhBiBX,iBAAAA,eAAAA,CAAAA,EAAAA;AAkBV,IAAMsB,uBAAuBpB,OAAOqB,QACzCrB,OAAOC,OAAO;EACZqB,iBAAiBC;AACnB,CAAA,CAAA;;",
6
- "names": ["Schema", "SpaceSchema", "ScriptType", "EditorInputMode", "ScriptAction", "CreateScriptSchema", "Schema", "Struct", "name", "optional", "String", "gistUrl", "annotations", "title", "initialTemplateId", "Create", "TaggedClass", "meta", "id", "input", "extend", "space", "SpaceSchema", "output", "object", "ScriptType", "ScriptSettingsSchema", "mutable", "editorInputMode", "EditorInputMode"]
7
- }
@@ -1,283 +0,0 @@
1
- import {
2
- templates
3
- } from "./chunk-4AUQEB2I.mjs";
4
- import {
5
- deployScript,
6
- getFunctionUrl,
7
- isScriptDeployed
8
- } from "./chunk-NXKU3BNX.mjs";
9
- import {
10
- SCRIPT_PLUGIN
11
- } from "./chunk-QYAREHGH.mjs";
12
-
13
- // src/hooks/deploy.ts
14
- import { useEffect, useMemo } from "react";
15
- import { FunctionType, getUserFunctionIdInMetadata } from "@dxos/functions";
16
- import { log } from "@dxos/log";
17
- import { useClient } from "@dxos/react-client";
18
- import { Query, Ref, getMeta, getSpace, useQuery } from "@dxos/react-client/echo";
19
- import { createMenuAction } from "@dxos/react-ui-menu";
20
- import { errorMessageColors } from "@dxos/react-ui-theme";
21
- var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-script/src/hooks/deploy.ts";
22
- var createDeploy = ({ state, script, space, fn, client, existingFunctionId, t }) => {
23
- const errorItem = createMenuAction("error", () => {
24
- }, {
25
- label: state.error ?? [
26
- "no error label",
27
- {
28
- ns: SCRIPT_PLUGIN
29
- }
30
- ],
31
- icon: "ph--warning-circle--regular",
32
- hidden: !state.error,
33
- classNames: state.error && errorMessageColors
34
- });
35
- const deployAction = createMenuAction("deploy", async () => {
36
- if (!script.source || !space) {
37
- return;
38
- }
39
- state.error = void 0;
40
- state.deploying = true;
41
- const result = await deployScript({
42
- script,
43
- client,
44
- space,
45
- fn,
46
- existingFunctionId
47
- });
48
- if (!result.success) {
49
- log.catch(result.error, void 0, {
50
- F: __dxlog_file,
51
- L: 59,
52
- S: void 0,
53
- C: (f, a) => f(...a)
54
- });
55
- state.error = t("upload failed label");
56
- }
57
- state.deploying = false;
58
- }, {
59
- type: "deploy",
60
- label: [
61
- state.deploying ? "pending label" : "deploy label",
62
- {
63
- ns: SCRIPT_PLUGIN
64
- }
65
- ],
66
- icon: state.deploying ? "ph--spinner-gap--regular" : "ph--cloud-arrow-up--regular",
67
- disabled: state.deploying,
68
- classNames: state.deploying ? "[&_svg]:animate-spin" : ""
69
- });
70
- const copyAction = createMenuAction("copy", async () => {
71
- if (!state.functionUrl) {
72
- return;
73
- }
74
- await navigator.clipboard.writeText(state.functionUrl);
75
- }, {
76
- type: "copy",
77
- label: [
78
- "copy link label",
79
- {
80
- ns: SCRIPT_PLUGIN
81
- }
82
- ],
83
- icon: "ph--link--regular",
84
- disabled: !state.functionUrl
85
- });
86
- return {
87
- nodes: [
88
- errorItem,
89
- deployAction,
90
- copyAction
91
- ],
92
- edges: [
93
- {
94
- source: "root",
95
- target: "error"
96
- },
97
- {
98
- source: "root",
99
- target: "deploy"
100
- },
101
- {
102
- source: "root",
103
- target: "copy"
104
- }
105
- ]
106
- };
107
- };
108
- var useDeployState = ({ state, script }) => {
109
- const { space, client, fn, existingFunctionId } = useDeployDeps({
110
- script
111
- });
112
- useEffect(() => {
113
- if (!existingFunctionId) {
114
- return;
115
- }
116
- state.functionUrl = getFunctionUrl({
117
- script,
118
- fn,
119
- edgeUrl: client.config.values.runtime?.services?.edge?.url ?? ""
120
- });
121
- }, [
122
- existingFunctionId,
123
- space,
124
- fn,
125
- script,
126
- client.config.values.runtime?.services?.edge?.url
127
- ]);
128
- useEffect(() => {
129
- state.deployed = isScriptDeployed({
130
- script,
131
- fn
132
- });
133
- }, [
134
- script.changed,
135
- existingFunctionId,
136
- fn,
137
- script
138
- ]);
139
- };
140
- var useDeployDeps = ({ script }) => {
141
- const space = getSpace(script);
142
- const [fn] = useQuery(space, Query.type(FunctionType, {
143
- source: Ref.make(script)
144
- }));
145
- const client = useClient();
146
- const existingFunctionId = useMemo(() => fn && getUserFunctionIdInMetadata(getMeta(fn)), [
147
- fn
148
- ]);
149
- return {
150
- space,
151
- fn,
152
- client,
153
- existingFunctionId
154
- };
155
- };
156
-
157
- // src/hooks/useToolbarState.ts
158
- import { useMemo as useMemo2 } from "react";
159
- import { live } from "@dxos/live-object";
160
- var useToolbarState = (initialState = {}) => {
161
- return useMemo2(() => live(initialState), []);
162
- };
163
-
164
- // src/hooks/format.ts
165
- import { format } from "prettier";
166
- import prettierPluginEstree from "prettier/plugins/estree";
167
- import prettierPluginTypescript from "prettier/plugins/typescript";
168
- import { log as log2 } from "@dxos/log";
169
- import { createMenuAction as createMenuAction2 } from "@dxos/react-ui-menu";
170
- var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-script/src/hooks/format.ts";
171
- var createFormat = (script) => {
172
- const formatAction = createMenuAction2("format", async () => {
173
- if (!script.source) {
174
- return;
175
- }
176
- try {
177
- script.source.target.content = await format(script.source.target.content, {
178
- parser: "typescript",
179
- plugins: [
180
- prettierPluginEstree,
181
- prettierPluginTypescript
182
- ],
183
- semi: true,
184
- singleQuote: true
185
- });
186
- } catch (err) {
187
- log2.catch(err, void 0, {
188
- F: __dxlog_file2,
189
- L: 34,
190
- S: void 0,
191
- C: (f, a) => f(...a)
192
- });
193
- }
194
- }, {
195
- label: [
196
- "format label",
197
- {
198
- ns: SCRIPT_PLUGIN
199
- }
200
- ],
201
- icon: "ph--magic-wand--regular"
202
- });
203
- return {
204
- nodes: [
205
- formatAction
206
- ],
207
- edges: [
208
- {
209
- source: "root",
210
- target: "format"
211
- }
212
- ]
213
- };
214
- };
215
-
216
- // src/hooks/template.ts
217
- import { Obj } from "@dxos/echo";
218
- import { FUNCTIONS_PRESET_META_KEY } from "@dxos/functions";
219
- import { createMenuAction as createMenuAction3, createMenuItemGroup } from "@dxos/react-ui-menu";
220
- var createTemplateSelectGroup = () => {
221
- return createMenuItemGroup("template-select", {
222
- label: [
223
- "template select group label",
224
- {
225
- ns: SCRIPT_PLUGIN
226
- }
227
- ],
228
- variant: "dropdownMenu"
229
- });
230
- };
231
- var createTemplateSelectActions = (script) => {
232
- return templates.map((template) => {
233
- return createMenuAction3(`template--${template.id}`, () => {
234
- script.name = template.name;
235
- script.source.target.content = template.source;
236
- const metaKeys = Obj.getMeta(script).keys;
237
- const oldPresetIndex = metaKeys.findIndex((key) => key.source === FUNCTIONS_PRESET_META_KEY);
238
- if (oldPresetIndex >= 0) {
239
- metaKeys.splice(oldPresetIndex, 1);
240
- }
241
- if (template.presetId) {
242
- metaKeys.push({
243
- source: FUNCTIONS_PRESET_META_KEY,
244
- id: template.presetId
245
- });
246
- }
247
- }, {
248
- label: template.name,
249
- value: template.id,
250
- type: "template"
251
- });
252
- });
253
- };
254
- var createTemplateSelect = (script) => {
255
- const templateSelectGroup = createTemplateSelectGroup();
256
- const templateSelectActions = createTemplateSelectActions(script);
257
- return {
258
- nodes: [
259
- templateSelectGroup,
260
- ...templateSelectActions
261
- ],
262
- edges: [
263
- {
264
- source: "root",
265
- target: "template-select"
266
- },
267
- ...templateSelectActions.map((action) => ({
268
- source: "template-select",
269
- target: action.id
270
- }))
271
- ]
272
- };
273
- };
274
-
275
- export {
276
- createDeploy,
277
- useDeployState,
278
- useDeployDeps,
279
- createFormat,
280
- createTemplateSelect,
281
- useToolbarState
282
- };
283
- //# sourceMappingURL=chunk-KLGK77UK.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/hooks/deploy.ts", "../../../src/hooks/useToolbarState.ts", "../../../src/hooks/format.ts", "../../../src/hooks/template.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { useEffect, useMemo } from 'react';\n\nimport { FunctionType, type ScriptType, getUserFunctionIdInMetadata } from '@dxos/functions';\nimport { log } from '@dxos/log';\nimport { type Client, useClient } from '@dxos/react-client';\nimport { Query, Ref, type Space, getMeta, getSpace, useQuery } from '@dxos/react-client/echo';\nimport { type TFunction } from '@dxos/react-ui';\nimport { createMenuAction } from '@dxos/react-ui-menu';\nimport { errorMessageColors } from '@dxos/react-ui-theme';\n\nimport { SCRIPT_PLUGIN } from '../meta';\nimport { deployScript, getFunctionUrl, isScriptDeployed } from '../util';\n\nexport type DeployActionProperties = { type: 'deploy' } | { type: 'copy' };\n\nexport type DeployState = {\n deploying: boolean;\n deployed: boolean;\n functionUrl: string;\n error: string;\n};\n\nexport type CreateDeployOptions = {\n state: Partial<DeployState>;\n script: ScriptType;\n fn: FunctionType;\n space?: Space;\n existingFunctionId?: string;\n client: Client;\n t: TFunction;\n};\n\nexport const createDeploy = ({ state, script, space, fn, client, existingFunctionId, t }: CreateDeployOptions) => {\n // TODO(wittjosiah): Should this be an action?\n const errorItem = createMenuAction('error', () => {}, {\n label: state.error ?? ['no error label', { ns: SCRIPT_PLUGIN }],\n icon: 'ph--warning-circle--regular',\n hidden: !state.error,\n classNames: state.error && errorMessageColors,\n });\n\n const deployAction = createMenuAction<DeployActionProperties>(\n 'deploy',\n async () => {\n if (!script.source || !space) {\n return;\n }\n\n state.error = undefined;\n state.deploying = true;\n\n const result = await deployScript({ script, client, space, fn, existingFunctionId });\n\n if (!result.success) {\n log.catch(result.error);\n state.error = t('upload failed label');\n }\n\n state.deploying = false;\n },\n {\n type: 'deploy',\n label: [state.deploying ? 'pending label' : 'deploy label', { ns: SCRIPT_PLUGIN }],\n icon: state.deploying ? 'ph--spinner-gap--regular' : 'ph--cloud-arrow-up--regular',\n disabled: state.deploying,\n classNames: state.deploying ? '[&_svg]:animate-spin' : '',\n },\n );\n\n const copyAction = createMenuAction<DeployActionProperties>(\n 'copy',\n async () => {\n if (!state.functionUrl) {\n return;\n }\n await navigator.clipboard.writeText(state.functionUrl);\n },\n {\n type: 'copy',\n label: ['copy link label', { ns: SCRIPT_PLUGIN }],\n icon: 'ph--link--regular',\n disabled: !state.functionUrl,\n },\n );\n\n return {\n nodes: [errorItem, deployAction, copyAction],\n edges: [\n { source: 'root', target: 'error' },\n { source: 'root', target: 'deploy' },\n { source: 'root', target: 'copy' },\n ],\n };\n};\n\nexport const useDeployState = ({ state, script }: { state: Partial<DeployState>; script: ScriptType }) => {\n const { space, client, fn, existingFunctionId } = useDeployDeps({ script });\n useEffect(() => {\n if (!existingFunctionId) {\n return;\n }\n\n state.functionUrl = getFunctionUrl({\n script,\n fn,\n edgeUrl: client.config.values.runtime?.services?.edge?.url ?? '',\n });\n }, [existingFunctionId, space, fn, script, client.config.values.runtime?.services?.edge?.url]);\n\n useEffect(() => {\n state.deployed = isScriptDeployed({ script, fn });\n }, [script.changed, existingFunctionId, fn, script]);\n};\n\nexport const useDeployDeps = ({ script }: { script: ScriptType }) => {\n const space = getSpace(script);\n const [fn] = useQuery(space, Query.type(FunctionType, { source: Ref.make(script) }));\n const client = useClient();\n const existingFunctionId = useMemo(() => fn && getUserFunctionIdInMetadata(getMeta(fn)), [fn]);\n return { space, fn, client, existingFunctionId };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useMemo } from 'react';\n\nimport { live } from '@dxos/live-object';\n\nimport { type DeployState } from './deploy';\n\nexport type ScriptToolbarState = Partial<DeployState>;\n\n// TODO(burdon): Replace with context provider?\nexport const useToolbarState = (initialState: ScriptToolbarState = {}) => {\n return useMemo(() => live<ScriptToolbarState>(initialState), []);\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { format } from 'prettier';\nimport prettierPluginEstree from 'prettier/plugins/estree';\nimport prettierPluginTypescript from 'prettier/plugins/typescript';\n\nimport { type ScriptType } from '@dxos/functions';\nimport { log } from '@dxos/log';\nimport { createMenuAction } from '@dxos/react-ui-menu';\n\nimport { SCRIPT_PLUGIN } from '../meta';\n\nexport type FormatActionProperties = { type: 'format' };\n\nexport const createFormat = (script: ScriptType) => {\n const formatAction = createMenuAction(\n 'format',\n async () => {\n if (!script.source) {\n return;\n }\n\n try {\n script.source.target!.content = await format(script.source.target!.content, {\n parser: 'typescript',\n plugins: [prettierPluginEstree, prettierPluginTypescript],\n semi: true,\n singleQuote: true,\n });\n } catch (err: any) {\n // TODO(wittjosiah): Show error in UI.\n log.catch(err);\n }\n },\n {\n label: ['format label', { ns: SCRIPT_PLUGIN }],\n icon: 'ph--magic-wand--regular',\n },\n );\n\n return {\n nodes: [formatAction],\n edges: [\n {\n source: 'root',\n target: 'format',\n },\n ],\n };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Obj } from '@dxos/echo';\nimport { FUNCTIONS_PRESET_META_KEY, type ScriptType } from '@dxos/functions';\nimport { createMenuAction, createMenuItemGroup } from '@dxos/react-ui-menu';\n\nimport { SCRIPT_PLUGIN } from '../meta';\nimport { templates } from '../templates';\n\nexport type TemplateActionProperties = { type: 'template'; value: string };\n\nconst createTemplateSelectGroup = () => {\n return createMenuItemGroup('template-select', {\n label: ['template select group label', { ns: SCRIPT_PLUGIN }],\n variant: 'dropdownMenu',\n });\n};\n\nconst createTemplateSelectActions = (script: ScriptType) => {\n return templates.map((template) => {\n return createMenuAction<TemplateActionProperties>(\n `template--${template.id}`,\n () => {\n script.name = template.name;\n script.source!.target!.content = template.source;\n const metaKeys = Obj.getMeta(script).keys;\n const oldPresetIndex = metaKeys.findIndex((key) => key.source === FUNCTIONS_PRESET_META_KEY);\n if (oldPresetIndex >= 0) {\n metaKeys.splice(oldPresetIndex, 1);\n }\n if (template.presetId) {\n metaKeys.push({ source: FUNCTIONS_PRESET_META_KEY, id: template.presetId });\n }\n },\n {\n label: template.name,\n value: template.id,\n type: 'template',\n },\n );\n });\n};\n\nexport const createTemplateSelect = (script: ScriptType) => {\n const templateSelectGroup = createTemplateSelectGroup();\n const templateSelectActions = createTemplateSelectActions(script);\n return {\n nodes: [templateSelectGroup, ...templateSelectActions],\n edges: [\n { source: 'root', target: 'template-select' },\n ...templateSelectActions.map((action) => ({ source: 'template-select', target: action.id })),\n ],\n };\n};\n"],
5
- "mappings": "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",
6
- "names": ["useEffect", "useMemo", "FunctionType", "getUserFunctionIdInMetadata", "log", "useClient", "Query", "Ref", "getMeta", "getSpace", "useQuery", "createMenuAction", "errorMessageColors", "createDeploy", "state", "script", "space", "fn", "client", "existingFunctionId", "t", "errorItem", "createMenuAction", "label", "error", "ns", "SCRIPT_PLUGIN", "icon", "hidden", "classNames", "errorMessageColors", "deployAction", "source", "undefined", "deploying", "result", "deployScript", "success", "log", "catch", "type", "disabled", "copyAction", "functionUrl", "navigator", "clipboard", "writeText", "nodes", "edges", "target", "useDeployState", "useDeployDeps", "useEffect", "getFunctionUrl", "edgeUrl", "config", "values", "runtime", "services", "edge", "url", "deployed", "isScriptDeployed", "changed", "getSpace", "useQuery", "Query", "FunctionType", "Ref", "make", "useClient", "useMemo", "getUserFunctionIdInMetadata", "getMeta", "useMemo", "live", "useToolbarState", "initialState", "useMemo", "live", "format", "prettierPluginEstree", "prettierPluginTypescript", "log", "createMenuAction", "createFormat", "script", "formatAction", "createMenuAction", "source", "target", "content", "format", "parser", "plugins", "prettierPluginEstree", "prettierPluginTypescript", "semi", "singleQuote", "err", "log", "catch", "label", "ns", "SCRIPT_PLUGIN", "icon", "nodes", "edges", "Obj", "FUNCTIONS_PRESET_META_KEY", "createMenuAction", "createMenuItemGroup", "createTemplateSelectGroup", "createMenuItemGroup", "label", "ns", "SCRIPT_PLUGIN", "variant", "createTemplateSelectActions", "script", "templates", "map", "template", "createMenuAction", "id", "name", "source", "target", "content", "metaKeys", "Obj", "getMeta", "keys", "oldPresetIndex", "findIndex", "key", "FUNCTIONS_PRESET_META_KEY", "splice", "presetId", "push", "value", "type", "createTemplateSelect", "templateSelectGroup", "templateSelectActions", "nodes", "edges", "action"]
7
- }
@@ -1,222 +0,0 @@
1
- import {
2
- ScriptAction
3
- } from "./chunk-IS4OG2UW.mjs";
4
-
5
- // src/util/functions.ts
6
- import { getInvocationUrl, getUserFunctionIdInMetadata } from "@dxos/functions";
7
- import { log } from "@dxos/log";
8
- import { getMeta, getSpace } from "@dxos/react-client/echo";
9
- var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-script/src/util/functions.ts";
10
- var getFunctionUrl = ({ script, fn, edgeUrl }) => {
11
- const space = getSpace(script);
12
- const existingFunctionId = fn && getUserFunctionIdInMetadata(getMeta(fn));
13
- if (!existingFunctionId) {
14
- return void 0;
15
- }
16
- return getInvocationUrl(existingFunctionId, edgeUrl, {
17
- spaceId: space?.id
18
- });
19
- };
20
- var updateFunctionMetadata = (script, storedFunction, meta, functionId) => {
21
- if (script.description !== void 0 && script.description.trim() !== "") {
22
- storedFunction.description = script.description;
23
- } else if (meta.description) {
24
- storedFunction.description = meta.description;
25
- } else {
26
- log.verbose("no description in function metadata", {
27
- functionId
28
- }, {
29
- F: __dxlog_file,
30
- L: 39,
31
- S: void 0,
32
- C: (f, a) => f(...a)
33
- });
34
- }
35
- if (meta.inputSchema) {
36
- storedFunction.inputSchema = meta.inputSchema;
37
- } else {
38
- log.verbose("no input schema in function metadata", {
39
- functionId
40
- }, {
41
- F: __dxlog_file,
42
- L: 45,
43
- S: void 0,
44
- C: (f, a) => f(...a)
45
- });
46
- }
47
- if (meta.outputSchema) {
48
- storedFunction.outputSchema = meta.outputSchema;
49
- } else {
50
- log.verbose("no output schema in function metadata", {
51
- functionId
52
- }, {
53
- F: __dxlog_file,
54
- L: 51,
55
- S: void 0,
56
- C: (f, a) => f(...a)
57
- });
58
- }
59
- };
60
-
61
- // src/util/deploy.ts
62
- import { Obj, Ref } from "@dxos/echo";
63
- import { FunctionType, getUserFunctionIdInMetadata as getUserFunctionIdInMetadata2, setUserFunctionIdInMetadata } from "@dxos/functions";
64
- import { Bundler } from "@dxos/functions/bundler";
65
- import { incrementSemverPatch, uploadWorkerFunction } from "@dxos/functions/edge";
66
- import { log as log2 } from "@dxos/log";
67
- var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-script/src/util/deploy.ts";
68
- var isScriptDeployed = ({ script, fn }) => {
69
- const existingFunctionId = fn && getUserFunctionIdInMetadata2(Obj.getMeta(fn));
70
- return Boolean(existingFunctionId) && !script.changed;
71
- };
72
- var deployScript = async ({ script, client, space, fn, existingFunctionId }) => {
73
- const validationError = validateDeployInputs(script, space);
74
- if (validationError) {
75
- return {
76
- success: false,
77
- error: validationError
78
- };
79
- }
80
- try {
81
- const bundler = new Bundler({
82
- platform: "browser",
83
- sandboxedModules: [],
84
- remoteModules: {}
85
- });
86
- const buildResult = await bundler.bundle({
87
- source: script.source.target.content
88
- });
89
- if ("error" in buildResult) {
90
- throw buildResult.error || new Error("Bundle creation failed");
91
- }
92
- const { functionId, version, meta } = await uploadWorkerFunction({
93
- client,
94
- ownerPublicKey: space.key,
95
- version: fn ? incrementSemverPatch(fn.version) : "0.0.1",
96
- functionId: existingFunctionId,
97
- entryPoint: buildResult.entryPoint,
98
- assets: {
99
- [buildResult.entryPoint]: buildResult.asset
100
- }
101
- });
102
- if (functionId === void 0 || version === void 0) {
103
- throw new Error(`Upload didn't return expected data: ${JSON.stringify({
104
- functionId,
105
- version
106
- })}`);
107
- }
108
- const storedFunction = createOrUpdateFunctionInSpace(space, fn, script, functionId, version);
109
- script.changed = false;
110
- updateFunctionMetadata(script, storedFunction, meta, functionId);
111
- setUserFunctionIdInMetadata(Obj.getMeta(storedFunction), functionId);
112
- return {
113
- success: true,
114
- functionId
115
- };
116
- } catch (err) {
117
- log2.catch(err, void 0, {
118
- F: __dxlog_file2,
119
- L: 78,
120
- S: void 0,
121
- C: (f, a) => f(...a)
122
- });
123
- return {
124
- success: false,
125
- error: err
126
- };
127
- }
128
- };
129
- var validateDeployInputs = (script, space) => {
130
- if (!script.source || !space) {
131
- return new Error("Script source or space not available");
132
- }
133
- return null;
134
- };
135
- var createOrUpdateFunctionInSpace = (space, fn, script, functionId, version) => {
136
- if (fn) {
137
- fn.name = script.name ?? "New Function";
138
- fn.version = version;
139
- return fn;
140
- } else {
141
- const fn2 = Obj.make(FunctionType, {
142
- name: script.name ?? "New Function",
143
- version,
144
- source: Ref.make(script)
145
- });
146
- space.db.add(fn2);
147
- setUserFunctionIdInMetadata(Obj.getMeta(fn2), functionId);
148
- return fn2;
149
- }
150
- };
151
-
152
- // src/hooks/useCreateAndDeployScriptTemplates.ts
153
- import { pipe } from "effect/Function";
154
- import { useCallback, useState } from "react";
155
- import { chain, createIntent, useIntentDispatcher } from "@dxos/app-framework";
156
- import { Obj as Obj2 } from "@dxos/echo";
157
- import { ScriptType } from "@dxos/functions";
158
- import { invariant } from "@dxos/invariant";
159
- import { SpaceAction } from "@dxos/plugin-space/types";
160
- import { useClient } from "@dxos/react-client";
161
- var __dxlog_file3 = "/__w/dxos/dxos/packages/plugins/plugin-script/src/hooks/useCreateAndDeployScriptTemplates.ts";
162
- var useCreateAndDeployScriptTemplates = (space, scriptTemplates) => {
163
- const { dispatchPromise: dispatch } = useIntentDispatcher();
164
- const client = useClient();
165
- const [status, setStatus] = useState("idle");
166
- const [error, setError] = useState(void 0);
167
- const handleCreateAndDeployScripts = useCallback(async () => {
168
- invariant(space, void 0, {
169
- F: __dxlog_file3,
170
- L: 36,
171
- S: void 0,
172
- A: [
173
- "space",
174
- ""
175
- ]
176
- });
177
- setStatus("pending");
178
- setError(void 0);
179
- const deploymentResults = await Promise.all(scriptTemplates.map(async (template) => {
180
- const result = await dispatch(pipe(createIntent(ScriptAction.Create, {
181
- space,
182
- initialTemplateId: template.id
183
- }), chain(SpaceAction.AddObject, {
184
- target: space
185
- })));
186
- invariant(Obj2.instanceOf(ScriptType, result.data?.object), void 0, {
187
- F: __dxlog_file3,
188
- L: 48,
189
- S: void 0,
190
- A: [
191
- "Obj.instanceOf(ScriptType, result.data?.object)",
192
- ""
193
- ]
194
- });
195
- return deployScript({
196
- space,
197
- client,
198
- script: result.data.object
199
- });
200
- }));
201
- const hasErrors = deploymentResults.some((result) => !result.success);
202
- setStatus(hasErrors ? "error" : "success");
203
- }, [
204
- space,
205
- dispatch,
206
- client,
207
- scriptTemplates
208
- ]);
209
- return {
210
- handleCreateAndDeployScripts,
211
- status,
212
- error
213
- };
214
- };
215
-
216
- export {
217
- getFunctionUrl,
218
- isScriptDeployed,
219
- deployScript,
220
- useCreateAndDeployScriptTemplates
221
- };
222
- //# sourceMappingURL=chunk-NXKU3BNX.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/util/functions.ts", "../../../src/util/deploy.ts", "../../../src/hooks/useCreateAndDeployScriptTemplates.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type ScriptType, getInvocationUrl, getUserFunctionIdInMetadata } from '@dxos/functions';\nimport { log } from '@dxos/log';\nimport { getMeta, getSpace } from '@dxos/react-client/echo';\n\n/**\n * Get the function URL for a given script and client configuration\n */\nexport const getFunctionUrl = ({\n script,\n fn,\n edgeUrl,\n}: {\n script: ScriptType;\n fn: any;\n edgeUrl: string;\n}): string | undefined => {\n const space = getSpace(script);\n const existingFunctionId = fn && getUserFunctionIdInMetadata(getMeta(fn));\n\n if (!existingFunctionId) {\n return undefined;\n }\n\n return getInvocationUrl(existingFunctionId, edgeUrl, {\n spaceId: space?.id,\n });\n};\n\nexport const updateFunctionMetadata = (script: ScriptType, storedFunction: any, meta: any, functionId: string) => {\n if (script.description !== undefined && script.description.trim() !== '') {\n storedFunction.description = script.description;\n } else if (meta.description) {\n storedFunction.description = meta.description;\n } else {\n log.verbose('no description in function metadata', { functionId });\n }\n\n if (meta.inputSchema) {\n storedFunction.inputSchema = meta.inputSchema;\n } else {\n log.verbose('no input schema in function metadata', { functionId });\n }\n\n if (meta.outputSchema) {\n storedFunction.outputSchema = meta.outputSchema;\n } else {\n log.verbose('no output schema in function metadata', { functionId });\n }\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Client } from '@dxos/client';\nimport { Obj, Ref } from '@dxos/echo';\nimport {\n FunctionType,\n type ScriptType,\n getUserFunctionIdInMetadata,\n setUserFunctionIdInMetadata,\n} from '@dxos/functions';\nimport { Bundler } from '@dxos/functions/bundler';\nimport { incrementSemverPatch, uploadWorkerFunction } from '@dxos/functions/edge';\nimport { log } from '@dxos/log';\nimport { type Space } from '@dxos/react-client/echo';\n\nimport { updateFunctionMetadata } from './functions';\n\nexport const isScriptDeployed = ({ script, fn }: { script: ScriptType; fn: any }): boolean => {\n const existingFunctionId = fn && getUserFunctionIdInMetadata(Obj.getMeta(fn));\n return Boolean(existingFunctionId) && !script.changed;\n};\n\ntype DeployScriptProps = {\n script: ScriptType;\n client: Client;\n space: Space;\n fn?: FunctionType;\n existingFunctionId?: string;\n};\n\ntype DeployScriptResult = { success: boolean; error?: Error; functionId?: string };\n\n/**\n * Deploy a script to a space, handling bundling and uploading to the FaaS infrastructure.\n */\nexport const deployScript = async ({\n script,\n client,\n space,\n fn,\n existingFunctionId,\n}: DeployScriptProps): Promise<DeployScriptResult> => {\n const validationError = validateDeployInputs(script, space);\n if (validationError) {\n return { success: false, error: validationError };\n }\n\n try {\n const bundler = new Bundler({ platform: 'browser', sandboxedModules: [], remoteModules: {} });\n const buildResult = await bundler.bundle({ source: script.source!.target!.content });\n if ('error' in buildResult) {\n throw buildResult.error || new Error('Bundle creation failed');\n }\n\n const { functionId, version, meta } = await uploadWorkerFunction({\n client,\n ownerPublicKey: space.key,\n version: fn ? incrementSemverPatch(fn.version) : '0.0.1',\n functionId: existingFunctionId,\n entryPoint: buildResult.entryPoint,\n assets: { [buildResult.entryPoint]: buildResult.asset },\n });\n\n if (functionId === undefined || version === undefined) {\n throw new Error(`Upload didn't return expected data: ${JSON.stringify({ functionId, version })}`);\n }\n\n const storedFunction = createOrUpdateFunctionInSpace(space, fn, script, functionId, version);\n script.changed = false;\n updateFunctionMetadata(script, storedFunction, meta, functionId);\n\n setUserFunctionIdInMetadata(Obj.getMeta(storedFunction), functionId);\n\n return { success: true, functionId };\n } catch (err: any) {\n log.catch(err);\n return { success: false, error: err };\n }\n};\n\n/**\n * Validate inputs for script deployment.\n */\nconst validateDeployInputs = (script: ScriptType, space: Space): Error | null => {\n if (!script.source || !space) {\n return new Error('Script source or space not available');\n }\n return null;\n};\n\nconst createOrUpdateFunctionInSpace = (\n space: Space,\n fn: FunctionType | undefined,\n script: ScriptType,\n functionId: string,\n version: string,\n): FunctionType => {\n if (fn) {\n fn.name = script.name ?? 'New Function';\n fn.version = version;\n return fn;\n } else {\n const fn = Obj.make(FunctionType, { name: script.name ?? 'New Function', version, source: Ref.make(script) });\n space.db.add(fn);\n setUserFunctionIdInMetadata(Obj.getMeta(fn), functionId);\n return fn;\n }\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { pipe } from 'effect/Function';\nimport { useCallback, useState } from 'react';\n\nimport { chain, createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { Obj } from '@dxos/echo';\nimport { ScriptType } from '@dxos/functions';\nimport { invariant } from '@dxos/invariant';\nimport { SpaceAction } from '@dxos/plugin-space/types';\nimport { useClient } from '@dxos/react-client';\nimport { type Space } from '@dxos/react-client/echo';\n\nimport { type Template } from '../templates';\nimport { ScriptAction } from '../types';\nimport { deployScript } from '../util';\n\ntype DeploymentStatus = 'idle' | 'pending' | 'success' | 'error';\n\n/**\n * Hook for creating and deploying multiple script templates concurrently.\n *\n * Takes a space and an array of script template IDs, then provides a callback\n * function that creates each script from its template and deploys it to the space.\n * All creation / deployment operations run concurrently for improved performance.\n */\nexport const useCreateAndDeployScriptTemplates = (space: Space | undefined, scriptTemplates: Template[]) => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const client = useClient();\n const [status, setStatus] = useState<DeploymentStatus>('idle');\n const [error, setError] = useState<Error | undefined>(undefined);\n\n const handleCreateAndDeployScripts = useCallback(async () => {\n invariant(space);\n setStatus('pending');\n setError(undefined);\n\n const deploymentResults = await Promise.all(\n scriptTemplates.map(async (template) => {\n const result = await dispatch(\n pipe(\n createIntent(ScriptAction.Create, { space, initialTemplateId: template.id }),\n chain(SpaceAction.AddObject, { target: space }),\n ),\n );\n invariant(Obj.instanceOf(ScriptType, result.data?.object));\n\n return deployScript({ space, client, script: result.data.object });\n }),\n );\n\n const hasErrors = deploymentResults.some((result) => !result.success);\n setStatus(hasErrors ? 'error' : 'success');\n }, [space, dispatch, client, scriptTemplates]);\n\n // TODO(burdon): Return onCreateAndDeployScripts.\n return { handleCreateAndDeployScripts, status, error };\n};\n"],
5
- "mappings": "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",
6
- "names": ["getInvocationUrl", "getUserFunctionIdInMetadata", "log", "getMeta", "getSpace", "getFunctionUrl", "script", "fn", "edgeUrl", "space", "existingFunctionId", "undefined", "spaceId", "id", "updateFunctionMetadata", "storedFunction", "meta", "functionId", "description", "trim", "verbose", "inputSchema", "outputSchema", "Obj", "Ref", "FunctionType", "getUserFunctionIdInMetadata", "setUserFunctionIdInMetadata", "Bundler", "incrementSemverPatch", "uploadWorkerFunction", "log", "isScriptDeployed", "script", "fn", "existingFunctionId", "getUserFunctionIdInMetadata", "Obj", "getMeta", "Boolean", "changed", "deployScript", "client", "space", "validationError", "validateDeployInputs", "success", "error", "bundler", "Bundler", "platform", "sandboxedModules", "remoteModules", "buildResult", "bundle", "source", "target", "content", "Error", "functionId", "version", "meta", "uploadWorkerFunction", "ownerPublicKey", "key", "incrementSemverPatch", "entryPoint", "assets", "asset", "undefined", "JSON", "stringify", "storedFunction", "createOrUpdateFunctionInSpace", "updateFunctionMetadata", "setUserFunctionIdInMetadata", "err", "log", "catch", "name", "make", "FunctionType", "Ref", "db", "add", "pipe", "useCallback", "useState", "chain", "createIntent", "useIntentDispatcher", "Obj", "ScriptType", "invariant", "SpaceAction", "useClient", "useCreateAndDeployScriptTemplates", "space", "scriptTemplates", "dispatchPromise", "dispatch", "useIntentDispatcher", "client", "useClient", "status", "setStatus", "useState", "error", "setError", "undefined", "handleCreateAndDeployScripts", "useCallback", "invariant", "deploymentResults", "Promise", "all", "map", "template", "result", "pipe", "createIntent", "ScriptAction", "Create", "initialTemplateId", "id", "chain", "SpaceAction", "AddObject", "target", "Obj", "instanceOf", "ScriptType", "data", "object", "deployScript", "script", "hasErrors", "some", "success"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/meta.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type PluginMeta } from '@dxos/app-framework';\n\nexport const SCRIPT_PLUGIN = 'dxos.org/plugin/script';\n\nexport const meta: PluginMeta = {\n id: SCRIPT_PLUGIN,\n name: 'Scripts',\n description:\n 'Scripts in Composer allow you to deploy custom functions that run on the edge. These functions can be referenced by your AI agent and called inside of cells in any Sheet. Use scripts to interact with API’s or external data inside of Composer.',\n icon: 'ph--code--regular',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-explorer',\n tags: ['labs'],\n screenshots: ['https://dxos.network/plugin-details-scripts-dark.png'],\n};\n\n// TODO(ZaymonFC): Configure by scopes?\nexport const defaultScriptsForIntegration: Record<string, string[]> = {\n // TODO(wittjosiah): Also include content extraction scripts in the default set.\n 'gmail.com': ['dxos.org/script/gmail'],\n};\n"],
5
- "mappings": ";AAMO,IAAMA,gBAAgB;AAEtB,IAAMC,OAAmB;EAC9BC,IAAIF;EACJG,MAAM;EACNC,aACE;EACFC,MAAM;EACNC,QAAQ;EACRC,MAAM;IAAC;;EACPC,aAAa;IAAC;;AAChB;AAGO,IAAMC,+BAAyD;;EAEpE,aAAa;IAAC;;AAChB;",
6
- "names": ["SCRIPT_PLUGIN", "meta", "id", "name", "description", "icon", "source", "tags", "screenshots", "defaultScriptsForIntegration"]
7
- }