@dxos/plugin-script 0.8.4-main.ead640a → 0.8.4-main.effb148878

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 (574) hide show
  1. package/LICENSE +102 -5
  2. package/README.md +15 -13
  3. package/dist/lib/neutral/DeploymentDialog-M3AFYQHC.mjs +114 -0
  4. package/dist/lib/neutral/DeploymentDialog-M3AFYQHC.mjs.map +7 -0
  5. package/dist/lib/{browser/NotebookContainer-LVGRPFY3.mjs → neutral/NotebookArticle-NV4AHOOS.mjs} +313 -233
  6. package/dist/lib/neutral/NotebookArticle-NV4AHOOS.mjs.map +7 -0
  7. package/dist/lib/neutral/ScriptArticle-UBT27SB6.mjs +79 -0
  8. package/dist/lib/neutral/ScriptArticle-UBT27SB6.mjs.map +7 -0
  9. package/dist/lib/neutral/ScriptPlugin.mjs +39 -0
  10. package/dist/lib/neutral/ScriptPlugin.mjs.map +7 -0
  11. package/dist/lib/neutral/ScriptPlugin.node.mjs +27 -0
  12. package/dist/lib/neutral/ScriptPlugin.node.mjs.map +7 -0
  13. package/dist/lib/neutral/ScriptPlugin.workerd.mjs +21 -0
  14. package/dist/lib/neutral/ScriptPlugin.workerd.mjs.map +7 -0
  15. package/dist/lib/neutral/ScriptPluginSettings-T4JMUSHN.mjs +31 -0
  16. package/dist/lib/neutral/ScriptPluginSettings-T4JMUSHN.mjs.map +7 -0
  17. package/dist/lib/neutral/ScriptProperties-RLXNAN3N.mjs +297 -0
  18. package/dist/lib/neutral/ScriptProperties-RLXNAN3N.mjs.map +7 -0
  19. package/dist/lib/neutral/TestContainer-AFVTBYSJ.mjs +44 -0
  20. package/dist/lib/neutral/TestContainer-AFVTBYSJ.mjs.map +7 -0
  21. package/dist/lib/neutral/app-graph-builder-7AWFCEQF.mjs +52 -0
  22. package/dist/lib/neutral/app-graph-builder-7AWFCEQF.mjs.map +7 -0
  23. package/dist/lib/neutral/blueprint-definition-T33SBPP2.mjs +15 -0
  24. package/dist/lib/neutral/blueprint-definition-T33SBPP2.mjs.map +7 -0
  25. package/dist/lib/neutral/blueprints/index.mjs +10 -0
  26. package/dist/lib/neutral/capabilities/index.mjs +21 -0
  27. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  28. package/dist/lib/neutral/capabilities/node.mjs +17 -0
  29. package/dist/lib/neutral/capabilities/node.mjs.map +7 -0
  30. package/dist/lib/neutral/chunk-2REUEDUA.mjs +56 -0
  31. package/dist/lib/neutral/chunk-2REUEDUA.mjs.map +7 -0
  32. package/dist/lib/neutral/chunk-4H6UOE5J.mjs +123 -0
  33. package/dist/lib/neutral/chunk-4H6UOE5J.mjs.map +7 -0
  34. package/dist/lib/neutral/chunk-6XGGYOY2.mjs +36 -0
  35. package/dist/lib/neutral/chunk-6XGGYOY2.mjs.map +7 -0
  36. package/dist/lib/neutral/chunk-GD5SNDAA.mjs +8 -0
  37. package/dist/lib/neutral/chunk-GD5SNDAA.mjs.map +7 -0
  38. package/dist/lib/neutral/chunk-GYQPDUTK.mjs +105 -0
  39. package/dist/lib/neutral/chunk-GYQPDUTK.mjs.map +7 -0
  40. package/dist/lib/neutral/chunk-HJ4BY42S.mjs +8 -0
  41. package/dist/lib/neutral/chunk-HJ4BY42S.mjs.map +7 -0
  42. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
  43. package/dist/lib/neutral/chunk-VXDJH6OL.mjs +150 -0
  44. package/dist/lib/neutral/chunk-VXDJH6OL.mjs.map +7 -0
  45. package/dist/lib/neutral/chunk-WEIU4BCS.mjs +52 -0
  46. package/dist/lib/neutral/chunk-WEIU4BCS.mjs.map +7 -0
  47. package/dist/lib/neutral/chunk-Y3O3YZSE.mjs +345 -0
  48. package/dist/lib/neutral/chunk-Y3O3YZSE.mjs.map +7 -0
  49. package/dist/lib/neutral/compiler-ODK4UA2N.mjs +101 -0
  50. package/dist/lib/neutral/compiler-ODK4UA2N.mjs.map +7 -0
  51. package/dist/lib/neutral/components/index.mjs +722 -0
  52. package/dist/lib/neutral/components/index.mjs.map +7 -0
  53. package/dist/lib/neutral/containers/index.mjs +17 -0
  54. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  55. package/dist/lib/neutral/create-32MZYUAA.mjs +46 -0
  56. package/dist/lib/neutral/create-32MZYUAA.mjs.map +7 -0
  57. package/dist/lib/neutral/create-object-FZM5ASWM.mjs +45 -0
  58. package/dist/lib/neutral/create-object-FZM5ASWM.mjs.map +7 -0
  59. package/dist/lib/neutral/create-script-6HWJMXMD.mjs +45 -0
  60. package/dist/lib/neutral/create-script-6HWJMXMD.mjs.map +7 -0
  61. package/dist/lib/neutral/delete-475DHFZO.mjs +21 -0
  62. package/dist/lib/neutral/delete-475DHFZO.mjs.map +7 -0
  63. package/dist/lib/neutral/deploy-VMPGXUR2.mjs +63 -0
  64. package/dist/lib/neutral/deploy-VMPGXUR2.mjs.map +7 -0
  65. package/dist/lib/neutral/hooks/index.mjs +369 -0
  66. package/dist/lib/neutral/hooks/index.mjs.map +7 -0
  67. package/dist/lib/neutral/index.mjs +41 -0
  68. package/dist/lib/neutral/inspect-invocations-IHZDHE27.mjs +59 -0
  69. package/dist/lib/neutral/inspect-invocations-IHZDHE27.mjs.map +7 -0
  70. package/dist/lib/neutral/install-function-UJWJMTZY.mjs +49 -0
  71. package/dist/lib/neutral/install-function-UJWJMTZY.mjs.map +7 -0
  72. package/dist/lib/neutral/invoke-M7J6LRZB.mjs +32 -0
  73. package/dist/lib/neutral/invoke-M7J6LRZB.mjs.map +7 -0
  74. package/dist/lib/neutral/meta.json +1 -0
  75. package/dist/lib/neutral/meta.mjs +10 -0
  76. package/dist/lib/neutral/operation-handler-MOATB7ZI.mjs +18 -0
  77. package/dist/lib/neutral/operation-handler-MOATB7ZI.mjs.map +7 -0
  78. package/dist/lib/neutral/operations/index.mjs +8 -0
  79. package/dist/lib/neutral/plugin.mjs +16 -0
  80. package/dist/lib/neutral/plugin.mjs.map +7 -0
  81. package/dist/lib/neutral/query-deployed-functions-MZUBGLJG.mjs +34 -0
  82. package/dist/lib/neutral/query-deployed-functions-MZUBGLJG.mjs.map +7 -0
  83. package/dist/lib/neutral/react-surface-DPK6XU2Y.mjs +120 -0
  84. package/dist/lib/neutral/react-surface-DPK6XU2Y.mjs.map +7 -0
  85. package/dist/lib/neutral/read-LWLI7RB2.mjs +26 -0
  86. package/dist/lib/neutral/read-LWLI7RB2.mjs.map +7 -0
  87. package/dist/lib/neutral/settings-VJBW4OMK.mjs +30 -0
  88. package/dist/lib/neutral/settings-VJBW4OMK.mjs.map +7 -0
  89. package/dist/lib/{browser → neutral}/templates/index.mjs +2 -1
  90. package/dist/lib/neutral/translations.mjs +105 -0
  91. package/dist/lib/neutral/translations.mjs.map +7 -0
  92. package/dist/lib/neutral/types/index.mjs +17 -0
  93. package/dist/lib/neutral/types/index.mjs.map +7 -0
  94. package/dist/lib/neutral/update-HTFIQY2Z.mjs +63 -0
  95. package/dist/lib/neutral/update-HTFIQY2Z.mjs.map +7 -0
  96. package/dist/types/src/ScriptPlugin.d.ts +3 -1
  97. package/dist/types/src/ScriptPlugin.d.ts.map +1 -1
  98. package/dist/types/src/ScriptPlugin.node.d.ts +4 -0
  99. package/dist/types/src/ScriptPlugin.node.d.ts.map +1 -0
  100. package/dist/types/src/ScriptPlugin.test.d.ts +2 -0
  101. package/dist/types/src/ScriptPlugin.test.d.ts.map +1 -0
  102. package/dist/types/src/ScriptPlugin.workerd.d.ts +4 -0
  103. package/dist/types/src/ScriptPlugin.workerd.d.ts.map +1 -0
  104. package/dist/types/src/blueprints/functions/create.d.ts +11 -0
  105. package/dist/types/src/blueprints/functions/create.d.ts.map +1 -0
  106. package/dist/types/src/blueprints/functions/definitions.d.ts +135 -0
  107. package/dist/types/src/blueprints/functions/definitions.d.ts.map +1 -0
  108. package/dist/types/src/blueprints/functions/delete.d.ts +17 -0
  109. package/dist/types/src/blueprints/functions/delete.d.ts.map +1 -0
  110. package/dist/types/src/blueprints/functions/deploy.d.ts +21 -0
  111. package/dist/types/src/blueprints/functions/deploy.d.ts.map +1 -0
  112. package/dist/types/src/blueprints/functions/index.d.ts +4 -0
  113. package/dist/types/src/blueprints/functions/index.d.ts.map +1 -0
  114. package/dist/types/src/blueprints/functions/inspect-invocations.d.ts +28 -0
  115. package/dist/types/src/blueprints/functions/inspect-invocations.d.ts.map +1 -0
  116. package/dist/types/src/blueprints/functions/install-function.d.ts +11 -0
  117. package/dist/types/src/blueprints/functions/install-function.d.ts.map +1 -0
  118. package/dist/types/src/blueprints/functions/invoke.d.ts +21 -0
  119. package/dist/types/src/blueprints/functions/invoke.d.ts.map +1 -0
  120. package/dist/types/src/blueprints/functions/query-deployed-functions.d.ts +13 -0
  121. package/dist/types/src/blueprints/functions/query-deployed-functions.d.ts.map +1 -0
  122. package/dist/types/src/blueprints/functions/read.d.ts +21 -0
  123. package/dist/types/src/blueprints/functions/read.d.ts.map +1 -0
  124. package/dist/types/src/blueprints/functions/update.d.ts +26 -0
  125. package/dist/types/src/blueprints/functions/update.d.ts.map +1 -0
  126. package/dist/types/src/blueprints/index.d.ts +2 -0
  127. package/dist/types/src/blueprints/index.d.ts.map +1 -0
  128. package/dist/types/src/blueprints/script-blueprint.d.ts +4 -0
  129. package/dist/types/src/blueprints/script-blueprint.d.ts.map +1 -0
  130. package/dist/types/src/capabilities/app-graph-builder.d.ts +4 -2
  131. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  132. package/dist/types/src/capabilities/artifact-definition.d.ts +3 -2
  133. package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -1
  134. package/dist/types/src/capabilities/blueprint-definition.d.ts +5 -4
  135. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -1
  136. package/dist/types/src/capabilities/compiler.d.ts +3 -1
  137. package/dist/types/src/capabilities/compiler.d.ts.map +1 -1
  138. package/dist/types/src/capabilities/create-object.d.ts +16 -0
  139. package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
  140. package/dist/types/src/capabilities/index.d.ts +19 -7
  141. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  142. package/dist/types/src/capabilities/node.d.ts +18 -0
  143. package/dist/types/src/capabilities/node.d.ts.map +1 -0
  144. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  145. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  146. package/dist/types/src/capabilities/react-surface.d.ts +3 -2
  147. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  148. package/dist/types/src/capabilities/settings.d.ts +5 -2
  149. package/dist/types/src/capabilities/settings.d.ts.map +1 -1
  150. package/dist/types/src/compiler/compiler.d.ts +1 -1
  151. package/dist/types/src/compiler/compiler.d.ts.map +1 -1
  152. package/dist/types/src/components/FramePanel/FramePanel.d.ts +12 -0
  153. package/dist/types/src/components/FramePanel/FramePanel.d.ts.map +1 -0
  154. package/dist/types/src/components/FramePanel/index.d.ts +2 -0
  155. package/dist/types/src/components/FramePanel/index.d.ts.map +1 -0
  156. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts +5 -4
  157. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts.map +1 -1
  158. package/dist/types/src/components/NotebookStack/NotebookMenu.d.ts +1 -1
  159. package/dist/types/src/components/NotebookStack/NotebookMenu.d.ts.map +1 -1
  160. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts +5 -3
  161. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts.map +1 -1
  162. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts +221 -229
  163. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts.map +1 -1
  164. package/dist/types/src/components/QueryEditor/QueryEditor.d.ts +5 -0
  165. package/dist/types/src/components/QueryEditor/QueryEditor.d.ts.map +1 -0
  166. package/dist/types/src/components/QueryEditor/QueryEditor.stories.d.ts +13 -0
  167. package/dist/types/src/components/QueryEditor/QueryEditor.stories.d.ts.map +1 -0
  168. package/dist/types/src/components/QueryEditor/index.d.ts +2 -0
  169. package/dist/types/src/components/QueryEditor/index.d.ts.map +1 -0
  170. package/dist/types/src/components/ScriptPluginSettings/ScriptPluginSettings.d.ts +8 -0
  171. package/dist/types/src/components/ScriptPluginSettings/ScriptPluginSettings.d.ts.map +1 -0
  172. package/dist/types/src/components/ScriptPluginSettings/ScriptPluginSettings.stories.d.ts +241 -0
  173. package/dist/types/src/components/ScriptPluginSettings/ScriptPluginSettings.stories.d.ts.map +1 -0
  174. package/dist/types/src/components/ScriptPluginSettings/index.d.ts +2 -0
  175. package/dist/types/src/components/ScriptPluginSettings/index.d.ts.map +1 -0
  176. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts +10 -9
  177. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts.map +1 -1
  178. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts +221 -229
  179. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts.map +1 -1
  180. package/dist/types/src/components/TestPanel/TestPanel.d.ts +4 -2
  181. package/dist/types/src/components/TestPanel/TestPanel.d.ts.map +1 -1
  182. package/dist/types/src/components/TestPanel/index.d.ts +0 -1
  183. package/dist/types/src/components/TestPanel/index.d.ts.map +1 -1
  184. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts +6 -2
  185. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts.map +1 -1
  186. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts +3 -1
  187. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts.map +1 -1
  188. package/dist/types/src/components/index.d.ts +6 -5
  189. package/dist/types/src/components/index.d.ts.map +1 -1
  190. package/dist/types/src/constants.d.ts +2 -0
  191. package/dist/types/src/constants.d.ts.map +1 -0
  192. package/dist/types/src/{components → containers}/DeploymentDialog/DeploymentDialog.d.ts +2 -4
  193. package/dist/types/src/containers/DeploymentDialog/DeploymentDialog.d.ts.map +1 -0
  194. package/dist/types/src/containers/DeploymentDialog/DeploymentDialog.stories.d.ts +240 -0
  195. package/dist/types/src/containers/DeploymentDialog/DeploymentDialog.stories.d.ts.map +1 -0
  196. package/dist/types/src/containers/DeploymentDialog/index.d.ts +2 -0
  197. package/dist/types/src/containers/DeploymentDialog/index.d.ts.map +1 -0
  198. package/dist/types/src/containers/NotebookArticle/NotebookArticle.d.ts +7 -0
  199. package/dist/types/src/containers/NotebookArticle/NotebookArticle.d.ts.map +1 -0
  200. package/dist/types/src/containers/NotebookArticle/NotebookArticle.stories.d.ts +7 -0
  201. package/dist/types/src/containers/NotebookArticle/NotebookArticle.stories.d.ts.map +1 -0
  202. package/dist/types/src/containers/NotebookArticle/index.d.ts +2 -0
  203. package/dist/types/src/containers/NotebookArticle/index.d.ts.map +1 -0
  204. package/dist/types/src/containers/ScriptArticle/ScriptArticle.d.ts +10 -0
  205. package/dist/types/src/containers/ScriptArticle/ScriptArticle.d.ts.map +1 -0
  206. package/dist/types/src/containers/ScriptArticle/ScriptArticle.stories.d.ts +242 -0
  207. package/dist/types/src/containers/ScriptArticle/ScriptArticle.stories.d.ts.map +1 -0
  208. package/dist/types/src/containers/ScriptArticle/index.d.ts +2 -0
  209. package/dist/types/src/containers/ScriptArticle/index.d.ts.map +1 -0
  210. package/dist/types/src/containers/ScriptProperties/BlueprintEditor.d.ts +7 -0
  211. package/dist/types/src/containers/ScriptProperties/BlueprintEditor.d.ts.map +1 -0
  212. package/dist/types/src/containers/ScriptProperties/FunctionBinding.d.ts +7 -0
  213. package/dist/types/src/containers/ScriptProperties/FunctionBinding.d.ts.map +1 -0
  214. package/dist/types/src/containers/ScriptProperties/FunctionPublishing.d.ts +7 -0
  215. package/dist/types/src/containers/ScriptProperties/FunctionPublishing.d.ts.map +1 -0
  216. package/dist/types/src/containers/ScriptProperties/ScriptProperties.d.ts +6 -0
  217. package/dist/types/src/containers/ScriptProperties/ScriptProperties.d.ts.map +1 -0
  218. package/dist/types/src/containers/ScriptProperties/ScriptProperties.stories.d.ts +242 -0
  219. package/dist/types/src/containers/ScriptProperties/ScriptProperties.stories.d.ts.map +1 -0
  220. package/dist/types/src/containers/ScriptProperties/index.d.ts +2 -0
  221. package/dist/types/src/containers/ScriptProperties/index.d.ts.map +1 -0
  222. package/dist/types/src/containers/TestContainer/TestContainer.d.ts +8 -0
  223. package/dist/types/src/containers/TestContainer/TestContainer.d.ts.map +1 -0
  224. package/dist/types/src/containers/TestContainer/index.d.ts +2 -0
  225. package/dist/types/src/containers/TestContainer/index.d.ts.map +1 -0
  226. package/dist/types/src/containers/index.d.ts +7 -0
  227. package/dist/types/src/containers/index.d.ts.map +1 -0
  228. package/dist/types/src/e2e/ai.test.d.ts +2 -0
  229. package/dist/types/src/e2e/ai.test.d.ts.map +1 -0
  230. package/dist/types/src/e2e/deploy.test.d.ts +2 -0
  231. package/dist/types/src/e2e/deploy.test.d.ts.map +1 -0
  232. package/dist/types/src/hooks/deploy.d.ts +27 -30
  233. package/dist/types/src/hooks/deploy.d.ts.map +1 -1
  234. package/dist/types/src/hooks/format.d.ts +5 -4
  235. package/dist/types/src/hooks/format.d.ts.map +1 -1
  236. package/dist/types/src/hooks/index.d.ts +1 -0
  237. package/dist/types/src/hooks/index.d.ts.map +1 -1
  238. package/dist/types/src/hooks/template.d.ts +7 -16
  239. package/dist/types/src/hooks/template.d.ts.map +1 -1
  240. package/dist/types/src/hooks/useCompiler.d.ts +7 -0
  241. package/dist/types/src/hooks/useCompiler.d.ts.map +1 -0
  242. package/dist/types/src/hooks/useCreateAndDeployScriptTemplates.d.ts.map +1 -1
  243. package/dist/types/src/hooks/useToolbarState.d.ts +8 -1
  244. package/dist/types/src/hooks/useToolbarState.d.ts.map +1 -1
  245. package/dist/types/src/index.d.ts +2 -3
  246. package/dist/types/src/index.d.ts.map +1 -1
  247. package/dist/types/src/meta.d.ts +2 -2
  248. package/dist/types/src/meta.d.ts.map +1 -1
  249. package/dist/types/src/notebook/compute-graph.d.ts +58 -0
  250. package/dist/types/src/notebook/compute-graph.d.ts.map +1 -0
  251. package/dist/types/src/notebook/compute-graph.test.d.ts +2 -0
  252. package/dist/types/src/notebook/compute-graph.test.d.ts.map +1 -0
  253. package/dist/types/src/notebook/eval.d.ts +1 -1
  254. package/dist/types/src/notebook/eval.d.ts.map +1 -1
  255. package/dist/types/src/notebook/index.d.ts +1 -1
  256. package/dist/types/src/notebook/index.d.ts.map +1 -1
  257. package/dist/types/src/notebook/vfs-parser.d.ts.map +1 -1
  258. package/dist/types/src/operations/create-script.d.ts +5 -0
  259. package/dist/types/src/operations/create-script.d.ts.map +1 -0
  260. package/dist/types/src/operations/index.d.ts +3 -0
  261. package/dist/types/src/operations/index.d.ts.map +1 -0
  262. package/dist/types/src/plugin.d.ts +4 -0
  263. package/dist/types/src/plugin.d.ts.map +1 -0
  264. package/dist/types/src/templates/anthropic.d.ts +7 -0
  265. package/dist/types/src/templates/anthropic.d.ts.map +1 -0
  266. package/dist/types/src/templates/chat.d.ts.map +1 -1
  267. package/dist/types/src/templates/chess-bot.d.ts +14 -0
  268. package/dist/types/src/templates/chess-bot.d.ts.map +1 -0
  269. package/dist/types/src/templates/commentary.d.ts +15 -0
  270. package/dist/types/src/templates/commentary.d.ts.map +1 -0
  271. package/dist/types/src/templates/data-generator.d.ts.map +1 -1
  272. package/dist/types/src/templates/discord.d.ts.map +1 -1
  273. package/dist/types/src/templates/email.d.ts.map +1 -1
  274. package/dist/types/src/templates/forex-effect.d.ts +5 -1
  275. package/dist/types/src/templates/forex-effect.d.ts.map +1 -1
  276. package/dist/types/src/templates/forex.d.ts +5 -1
  277. package/dist/types/src/templates/forex.d.ts.map +1 -1
  278. package/dist/types/src/templates/gmail.d.ts.map +1 -1
  279. package/dist/types/src/templates/index.d.ts +33 -24
  280. package/dist/types/src/templates/index.d.ts.map +1 -1
  281. package/dist/types/src/templates/ping.d.ts +2 -4
  282. package/dist/types/src/templates/ping.d.ts.map +1 -1
  283. package/dist/types/src/testing/index.d.ts +2 -1
  284. package/dist/types/src/testing/index.d.ts.map +1 -1
  285. package/dist/types/src/testing/simulator.test.d.ts +2 -0
  286. package/dist/types/src/testing/simulator.test.d.ts.map +1 -0
  287. package/dist/types/src/testing/test-notebook.d.ts +3 -0
  288. package/dist/types/src/testing/test-notebook.d.ts.map +1 -0
  289. package/dist/types/src/testing/test-script.d.ts +7 -0
  290. package/dist/types/src/testing/test-script.d.ts.map +1 -0
  291. package/dist/types/src/translations.d.ts +222 -91
  292. package/dist/types/src/translations.d.ts.map +1 -1
  293. package/dist/types/src/types/Notebook.d.ts +117 -0
  294. package/dist/types/src/types/Notebook.d.ts.map +1 -0
  295. package/dist/types/src/types/ScriptCapabilities.d.ts +6 -0
  296. package/dist/types/src/types/ScriptCapabilities.d.ts.map +1 -0
  297. package/dist/types/src/types/ScriptEvents.d.ts +3 -0
  298. package/dist/types/src/types/ScriptEvents.d.ts.map +1 -0
  299. package/dist/types/src/types/ScriptOperation.d.ts +29 -0
  300. package/dist/types/src/types/ScriptOperation.d.ts.map +1 -0
  301. package/dist/types/src/types/Settings.d.ts +7 -0
  302. package/dist/types/src/types/Settings.d.ts.map +1 -0
  303. package/dist/types/src/types/index.d.ts +5 -2
  304. package/dist/types/src/types/index.d.ts.map +1 -1
  305. package/dist/types/src/types/types.d.ts +2 -0
  306. package/dist/types/src/types/types.d.ts.map +1 -0
  307. package/dist/types/src/util/deploy.d.ts +4 -4
  308. package/dist/types/src/util/deploy.d.ts.map +1 -1
  309. package/dist/types/src/util/functions.d.ts +3 -3
  310. package/dist/types/src/util/functions.d.ts.map +1 -1
  311. package/dist/types/tsconfig.tsbuildinfo +1 -1
  312. package/package.json +185 -102
  313. package/src/ScriptPlugin.node.ts +21 -0
  314. package/src/ScriptPlugin.test.ts +31 -0
  315. package/src/ScriptPlugin.tsx +24 -100
  316. package/src/ScriptPlugin.workerd.ts +18 -0
  317. package/src/blueprints/functions/create.ts +47 -0
  318. package/src/blueprints/functions/definitions.ts +332 -0
  319. package/src/blueprints/functions/delete.ts +23 -0
  320. package/src/blueprints/functions/deploy.ts +71 -0
  321. package/src/blueprints/functions/index.ts +19 -0
  322. package/src/blueprints/functions/inspect-invocations.ts +56 -0
  323. package/src/blueprints/functions/install-function.ts +56 -0
  324. package/src/blueprints/functions/invoke.ts +34 -0
  325. package/src/blueprints/functions/query-deployed-functions.ts +35 -0
  326. package/src/blueprints/functions/read.ts +29 -0
  327. package/src/blueprints/functions/update.ts +68 -0
  328. package/src/blueprints/index.ts +5 -0
  329. package/src/blueprints/script-blueprint.ts +55 -0
  330. package/src/capabilities/app-graph-builder.ts +40 -58
  331. package/src/capabilities/artifact-definition.ts +99 -98
  332. package/src/capabilities/blueprint-definition.ts +13 -24
  333. package/src/capabilities/compiler.ts +100 -23
  334. package/src/capabilities/create-object.ts +49 -0
  335. package/src/capabilities/index.ts +13 -9
  336. package/src/capabilities/node.ts +16 -0
  337. package/src/capabilities/operation-handler.ts +21 -0
  338. package/src/capabilities/react-surface.tsx +120 -92
  339. package/src/capabilities/settings.ts +26 -14
  340. package/src/compiler/compiler.ts +21 -3
  341. package/src/components/{FrameContainer/FrameContainer.tsx → FramePanel/FramePanel.tsx} +8 -7
  342. package/src/components/{FrameContainer → FramePanel}/index.ts +1 -1
  343. package/src/components/NotebookStack/NotebookCell.tsx +100 -91
  344. package/src/components/NotebookStack/NotebookMenu.tsx +7 -7
  345. package/src/components/NotebookStack/NotebookStack.stories.tsx +34 -13
  346. package/src/components/NotebookStack/NotebookStack.tsx +40 -22
  347. package/src/components/QueryEditor/QueryEditor.stories.tsx +96 -0
  348. package/src/components/QueryEditor/QueryEditor.tsx +49 -0
  349. package/src/components/QueryEditor/index.ts +5 -0
  350. package/src/components/ScriptPluginSettings/ScriptPluginSettings.stories.tsx +32 -0
  351. package/src/components/ScriptPluginSettings/ScriptPluginSettings.tsx +42 -0
  352. package/src/components/ScriptPluginSettings/index.ts +5 -0
  353. package/src/components/ScriptToolbar/ScriptToolbar.stories.tsx +44 -22
  354. package/src/components/ScriptToolbar/ScriptToolbar.tsx +43 -48
  355. package/src/components/TestPanel/TestPanel.tsx +125 -185
  356. package/src/components/TestPanel/index.ts +0 -1
  357. package/src/components/TypescriptEditor/TypescriptEditor.stories.tsx +26 -19
  358. package/src/components/TypescriptEditor/TypescriptEditor.tsx +74 -71
  359. package/src/components/index.ts +6 -7
  360. package/src/constants.ts +7 -0
  361. package/src/containers/DeploymentDialog/DeploymentDialog.stories.tsx +63 -0
  362. package/src/containers/DeploymentDialog/DeploymentDialog.tsx +99 -0
  363. package/src/containers/DeploymentDialog/index.ts +5 -0
  364. package/src/containers/NotebookArticle/NotebookArticle.stories.tsx +85 -0
  365. package/src/containers/NotebookArticle/NotebookArticle.tsx +255 -0
  366. package/src/containers/NotebookArticle/index.ts +5 -0
  367. package/src/containers/ScriptArticle/ScriptArticle.stories.tsx +107 -0
  368. package/src/containers/ScriptArticle/ScriptArticle.tsx +85 -0
  369. package/src/containers/ScriptArticle/index.ts +5 -0
  370. package/src/containers/ScriptProperties/BlueprintEditor.tsx +102 -0
  371. package/src/containers/ScriptProperties/FunctionBinding.tsx +83 -0
  372. package/src/containers/ScriptProperties/FunctionPublishing.tsx +121 -0
  373. package/src/containers/ScriptProperties/ScriptProperties.stories.tsx +76 -0
  374. package/src/containers/ScriptProperties/ScriptProperties.tsx +24 -0
  375. package/src/containers/ScriptProperties/index.ts +5 -0
  376. package/src/containers/TestContainer/TestContainer.tsx +44 -0
  377. package/src/containers/TestContainer/index.ts +5 -0
  378. package/src/containers/index.ts +11 -0
  379. package/src/e2e/ai.test.ts +93 -0
  380. package/src/e2e/deploy.test.ts +66 -0
  381. package/src/hooks/deploy.ts +47 -37
  382. package/src/hooks/format.ts +10 -5
  383. package/src/hooks/index.ts +1 -0
  384. package/src/hooks/template.ts +23 -26
  385. package/src/hooks/useCompiler.ts +25 -0
  386. package/src/hooks/useCreateAndDeployScriptTemplates.ts +15 -16
  387. package/src/hooks/useToolbarState.ts +29 -4
  388. package/src/index.ts +2 -4
  389. package/src/meta.ts +15 -6
  390. package/src/notebook/compute-graph.test.ts +82 -0
  391. package/src/notebook/{notebook.ts → compute-graph.ts} +66 -19
  392. package/src/notebook/eval.ts +1 -1
  393. package/src/notebook/index.ts +1 -1
  394. package/src/notebook/vfs-parser.ts +10 -3
  395. package/src/operations/create-script.ts +46 -0
  396. package/src/operations/index.ts +7 -0
  397. package/src/plugin.ts +11 -0
  398. package/src/templates/anthropic.ts +49 -0
  399. package/src/templates/chat.ts +1 -1
  400. package/src/templates/chess-bot.ts +63 -0
  401. package/src/templates/commentary.ts +248 -0
  402. package/src/templates/data-generator.ts +2 -2
  403. package/src/templates/discord.ts +5 -5
  404. package/src/templates/forex-effect.ts +35 -29
  405. package/src/templates/forex.ts +27 -17
  406. package/src/templates/gmail.ts +7 -8
  407. package/src/templates/index.ts +31 -18
  408. package/src/templates/ping.ts +22 -5
  409. package/src/testing/index.ts +2 -1
  410. package/src/testing/simulator.test.ts +39 -0
  411. package/src/testing/test-notebook.ts +71 -0
  412. package/src/testing/test-script.ts +28 -0
  413. package/src/translations.ts +89 -88
  414. package/src/types/Notebook.ts +42 -0
  415. package/src/types/ScriptCapabilities.ts +18 -0
  416. package/src/types/ScriptEvents.ts +11 -0
  417. package/src/types/ScriptOperation.ts +42 -0
  418. package/src/types/Settings.ts +20 -0
  419. package/src/types/index.ts +6 -2
  420. package/src/types/types.ts +5 -0
  421. package/src/util/deploy.ts +33 -41
  422. package/src/util/functions.ts +35 -30
  423. package/src/vite-env.d.ts +2 -0
  424. package/dist/lib/browser/DeploymentDialog-65TWT6S5.mjs +0 -13
  425. package/dist/lib/browser/NotebookContainer-LVGRPFY3.mjs.map +0 -7
  426. package/dist/lib/browser/ScriptContainer-LRTRN7JW.mjs +0 -149
  427. package/dist/lib/browser/ScriptContainer-LRTRN7JW.mjs.map +0 -7
  428. package/dist/lib/browser/app-graph-builder-DPYULSME.mjs +0 -65
  429. package/dist/lib/browser/app-graph-builder-DPYULSME.mjs.map +0 -7
  430. package/dist/lib/browser/blueprint-definition-ET5KZ46I.mjs +0 -28
  431. package/dist/lib/browser/blueprint-definition-ET5KZ46I.mjs.map +0 -7
  432. package/dist/lib/browser/chunk-5CYLWXRH.mjs +0 -89
  433. package/dist/lib/browser/chunk-5CYLWXRH.mjs.map +0 -7
  434. package/dist/lib/browser/chunk-75LH4EUR.mjs +0 -326
  435. package/dist/lib/browser/chunk-75LH4EUR.mjs.map +0 -7
  436. package/dist/lib/browser/chunk-E7DXDICD.mjs +0 -282
  437. package/dist/lib/browser/chunk-E7DXDICD.mjs.map +0 -7
  438. package/dist/lib/browser/chunk-EZVXV6DA.mjs +0 -26
  439. package/dist/lib/browser/chunk-EZVXV6DA.mjs.map +0 -7
  440. package/dist/lib/browser/chunk-I3QSGUFJ.mjs +0 -646
  441. package/dist/lib/browser/chunk-I3QSGUFJ.mjs.map +0 -7
  442. package/dist/lib/browser/chunk-JO2O7W6J.mjs +0 -254
  443. package/dist/lib/browser/chunk-JO2O7W6J.mjs.map +0 -7
  444. package/dist/lib/browser/chunk-N6M34EUC.mjs +0 -112
  445. package/dist/lib/browser/chunk-N6M34EUC.mjs.map +0 -7
  446. package/dist/lib/browser/chunk-NM4WQS4F.mjs +0 -153
  447. package/dist/lib/browser/chunk-NM4WQS4F.mjs.map +0 -7
  448. package/dist/lib/browser/chunk-OKXN2N7M.mjs +0 -15
  449. package/dist/lib/browser/chunk-OKXN2N7M.mjs.map +0 -7
  450. package/dist/lib/browser/chunk-ST3ACVUC.mjs +0 -88
  451. package/dist/lib/browser/chunk-ST3ACVUC.mjs.map +0 -7
  452. package/dist/lib/browser/compiler-G2N2CG63.mjs +0 -98
  453. package/dist/lib/browser/compiler-G2N2CG63.mjs.map +0 -7
  454. package/dist/lib/browser/index.mjs +0 -281
  455. package/dist/lib/browser/index.mjs.map +0 -7
  456. package/dist/lib/browser/intent-resolver-JLU7DVLQ.mjs +0 -105
  457. package/dist/lib/browser/intent-resolver-JLU7DVLQ.mjs.map +0 -7
  458. package/dist/lib/browser/meta.json +0 -1
  459. package/dist/lib/browser/react-surface-76SDTUYG.mjs +0 -127
  460. package/dist/lib/browser/react-surface-76SDTUYG.mjs.map +0 -7
  461. package/dist/lib/browser/settings-ERFKVNUK.mjs +0 -25
  462. package/dist/lib/browser/settings-ERFKVNUK.mjs.map +0 -7
  463. package/dist/lib/browser/types/index.mjs +0 -13
  464. package/dist/lib/node-esm/DeploymentDialog-I63ZC2HH.mjs +0 -14
  465. package/dist/lib/node-esm/NotebookContainer-QY5NJGJI.mjs +0 -684
  466. package/dist/lib/node-esm/NotebookContainer-QY5NJGJI.mjs.map +0 -7
  467. package/dist/lib/node-esm/ScriptContainer-SVXCSLNH.mjs +0 -150
  468. package/dist/lib/node-esm/ScriptContainer-SVXCSLNH.mjs.map +0 -7
  469. package/dist/lib/node-esm/app-graph-builder-UXJGHXSL.mjs +0 -66
  470. package/dist/lib/node-esm/app-graph-builder-UXJGHXSL.mjs.map +0 -7
  471. package/dist/lib/node-esm/blueprint-definition-AIYFOT7Q.mjs +0 -30
  472. package/dist/lib/node-esm/blueprint-definition-AIYFOT7Q.mjs.map +0 -7
  473. package/dist/lib/node-esm/chunk-2GVTWESW.mjs +0 -90
  474. package/dist/lib/node-esm/chunk-2GVTWESW.mjs.map +0 -7
  475. package/dist/lib/node-esm/chunk-4X375PGY.mjs +0 -90
  476. package/dist/lib/node-esm/chunk-4X375PGY.mjs.map +0 -7
  477. package/dist/lib/node-esm/chunk-67OVZHI3.mjs +0 -327
  478. package/dist/lib/node-esm/chunk-67OVZHI3.mjs.map +0 -7
  479. package/dist/lib/node-esm/chunk-C2ORIPKH.mjs +0 -154
  480. package/dist/lib/node-esm/chunk-C2ORIPKH.mjs.map +0 -7
  481. package/dist/lib/node-esm/chunk-NUXZQQ6P.mjs +0 -16
  482. package/dist/lib/node-esm/chunk-NUXZQQ6P.mjs.map +0 -7
  483. package/dist/lib/node-esm/chunk-OG2SIKHE.mjs +0 -28
  484. package/dist/lib/node-esm/chunk-OG2SIKHE.mjs.map +0 -7
  485. package/dist/lib/node-esm/chunk-SMFPSKQT.mjs +0 -647
  486. package/dist/lib/node-esm/chunk-SMFPSKQT.mjs.map +0 -7
  487. package/dist/lib/node-esm/chunk-VRSDE4CI.mjs +0 -114
  488. package/dist/lib/node-esm/chunk-VRSDE4CI.mjs.map +0 -7
  489. package/dist/lib/node-esm/chunk-VZAFGLD7.mjs +0 -283
  490. package/dist/lib/node-esm/chunk-VZAFGLD7.mjs.map +0 -7
  491. package/dist/lib/node-esm/chunk-YW36TZ7K.mjs +0 -255
  492. package/dist/lib/node-esm/chunk-YW36TZ7K.mjs.map +0 -7
  493. package/dist/lib/node-esm/compiler-PLDAZ5GJ.mjs +0 -99
  494. package/dist/lib/node-esm/compiler-PLDAZ5GJ.mjs.map +0 -7
  495. package/dist/lib/node-esm/index.mjs +0 -282
  496. package/dist/lib/node-esm/index.mjs.map +0 -7
  497. package/dist/lib/node-esm/intent-resolver-SFGTIFOG.mjs +0 -106
  498. package/dist/lib/node-esm/intent-resolver-SFGTIFOG.mjs.map +0 -7
  499. package/dist/lib/node-esm/meta.json +0 -1
  500. package/dist/lib/node-esm/react-surface-SHEBNW4R.mjs +0 -128
  501. package/dist/lib/node-esm/react-surface-SHEBNW4R.mjs.map +0 -7
  502. package/dist/lib/node-esm/settings-5TYXQ42N.mjs +0 -26
  503. package/dist/lib/node-esm/settings-5TYXQ42N.mjs.map +0 -7
  504. package/dist/lib/node-esm/templates/index.mjs +0 -10
  505. package/dist/lib/node-esm/types/index.mjs +0 -14
  506. package/dist/types/src/capabilities/capabilities.d.ts +0 -5
  507. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  508. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  509. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  510. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.d.ts.map +0 -1
  511. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts +0 -251
  512. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts.map +0 -1
  513. package/dist/types/src/components/DeploymentDialog/index.d.ts +0 -4
  514. package/dist/types/src/components/DeploymentDialog/index.d.ts.map +0 -1
  515. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts +0 -12
  516. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts.map +0 -1
  517. package/dist/types/src/components/FrameContainer/frame.d.ts +0 -2
  518. package/dist/types/src/components/FrameContainer/frame.d.ts.map +0 -1
  519. package/dist/types/src/components/FrameContainer/index.d.ts +0 -2
  520. package/dist/types/src/components/FrameContainer/index.d.ts.map +0 -1
  521. package/dist/types/src/components/NotebookContainer.d.ts +0 -10
  522. package/dist/types/src/components/NotebookContainer.d.ts.map +0 -1
  523. package/dist/types/src/components/NotebookContainer.stories.d.ts +0 -248
  524. package/dist/types/src/components/NotebookContainer.stories.d.ts.map +0 -1
  525. package/dist/types/src/components/ScriptContainer.d.ts +0 -12
  526. package/dist/types/src/components/ScriptContainer.d.ts.map +0 -1
  527. package/dist/types/src/components/Settings/ScriptObjectSettings.d.ts +0 -8
  528. package/dist/types/src/components/Settings/ScriptObjectSettings.d.ts.map +0 -1
  529. package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts +0 -6
  530. package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts.map +0 -1
  531. package/dist/types/src/components/Settings/index.d.ts +0 -3
  532. package/dist/types/src/components/Settings/index.d.ts.map +0 -1
  533. package/dist/types/src/components/TestPanel/TestContainer.d.ts +0 -8
  534. package/dist/types/src/components/TestPanel/TestContainer.d.ts.map +0 -1
  535. package/dist/types/src/events.d.ts +0 -4
  536. package/dist/types/src/events.d.ts.map +0 -1
  537. package/dist/types/src/notebook/notebook.d.ts +0 -35
  538. package/dist/types/src/notebook/notebook.d.ts.map +0 -1
  539. package/dist/types/src/notebook/notebook.test.d.ts +0 -2
  540. package/dist/types/src/notebook/notebook.test.d.ts.map +0 -1
  541. package/dist/types/src/templates/chess.d.ts +0 -3
  542. package/dist/types/src/templates/chess.d.ts.map +0 -1
  543. package/dist/types/src/testing/data.d.ts +0 -19
  544. package/dist/types/src/testing/data.d.ts.map +0 -1
  545. package/dist/types/src/types/actions.d.ts +0 -66
  546. package/dist/types/src/types/actions.d.ts.map +0 -1
  547. package/dist/types/src/types/schema.d.ts +0 -61
  548. package/dist/types/src/types/schema.d.ts.map +0 -1
  549. package/src/capabilities/capabilities.ts +0 -12
  550. package/src/capabilities/intent-resolver.ts +0 -87
  551. package/src/components/DeploymentDialog/DeploymentDialog.stories.tsx +0 -53
  552. package/src/components/DeploymentDialog/DeploymentDialog.tsx +0 -106
  553. package/src/components/DeploymentDialog/index.ts +0 -9
  554. package/src/components/FrameContainer/frame.html +0 -25
  555. package/src/components/FrameContainer/frame.tsx +0 -51
  556. package/src/components/NotebookContainer.stories.tsx +0 -32
  557. package/src/components/NotebookContainer.tsx +0 -124
  558. package/src/components/ScriptContainer.tsx +0 -69
  559. package/src/components/Settings/ScriptObjectSettings.tsx +0 -286
  560. package/src/components/Settings/ScriptPluginSettings.tsx +0 -61
  561. package/src/components/Settings/index.ts +0 -6
  562. package/src/components/TestPanel/TestContainer.tsx +0 -27
  563. package/src/events.ts +0 -11
  564. package/src/notebook/notebook.test.ts +0 -70
  565. package/src/templates/chess.ts +0 -49
  566. package/src/testing/data.ts +0 -47
  567. package/src/types/actions.ts +0 -53
  568. package/src/types/schema.ts +0 -48
  569. /package/dist/lib/{browser/templates → neutral/blueprints}/index.mjs.map +0 -0
  570. /package/dist/lib/{browser/DeploymentDialog-65TWT6S5.mjs.map → neutral/chunk-J5LGTIGS.mjs.map} +0 -0
  571. /package/dist/lib/{browser/types → neutral}/index.mjs.map +0 -0
  572. /package/dist/lib/{node-esm/DeploymentDialog-I63ZC2HH.mjs.map → neutral/meta.mjs.map} +0 -0
  573. /package/dist/lib/{node-esm/templates → neutral/operations}/index.mjs.map +0 -0
  574. /package/dist/lib/{node-esm/types → neutral/templates}/index.mjs.map +0 -0
@@ -3,30 +3,26 @@
3
3
  //
4
4
 
5
5
  import { type Client } from '@dxos/client';
6
+ import { Script, Operation } from '@dxos/compute';
7
+ import { Context } from '@dxos/context';
6
8
  import { Obj, Ref } from '@dxos/echo';
7
- import {
8
- FunctionType,
9
- type ScriptType,
10
- getUserFunctionIdInMetadata,
11
- setUserFunctionIdInMetadata,
12
- } from '@dxos/functions';
13
- import { Bundler } from '@dxos/functions/bundler';
14
- import { incrementSemverPatch, uploadWorkerFunction } from '@dxos/functions/edge';
9
+ import { getUserFunctionIdInMetadata } from '@dxos/functions';
10
+ import { bundleFunction } from '@dxos/functions-runtime/bundler';
11
+ import { FunctionsServiceClient, incrementSemverPatch } from '@dxos/functions-runtime/edge';
15
12
  import { log } from '@dxos/log';
13
+ import { FunctionRuntimeKind } from '@dxos/protocols';
16
14
  import { type Space } from '@dxos/react-client/echo';
17
15
 
18
- import { updateFunctionMetadata } from './functions';
19
-
20
- export const isScriptDeployed = ({ script, fn }: { script: ScriptType; fn: any }): boolean => {
16
+ export const isScriptDeployed = ({ script, fn }: { script: Script.Script; fn: any }): boolean => {
21
17
  const existingFunctionId = fn && getUserFunctionIdInMetadata(Obj.getMeta(fn));
22
18
  return Boolean(existingFunctionId) && !script.changed;
23
19
  };
24
20
 
25
21
  type DeployScriptProps = {
26
- script: ScriptType;
22
+ script: Script.Script;
27
23
  client: Client;
28
24
  space: Space;
29
- fn?: FunctionType;
25
+ fn?: Operation.PersistentOperation;
30
26
  existingFunctionId?: string;
31
27
  };
32
28
 
@@ -48,32 +44,30 @@ export const deployScript = async ({
48
44
  }
49
45
 
50
46
  try {
51
- const bundler = new Bundler({ platform: 'browser', sandboxedModules: [], remoteModules: {} });
52
- const buildResult = await bundler.bundle({ source: script.source!.target!.content });
47
+ const buildResult = await bundleFunction({
48
+ source: script.source!.target!.content,
49
+ });
53
50
  if ('error' in buildResult) {
54
51
  throw buildResult.error || new Error('Bundle creation failed');
55
52
  }
56
53
 
57
- const { functionId, version, meta } = await uploadWorkerFunction({
58
- client,
54
+ const functionsServiceClient = FunctionsServiceClient.fromClient(client);
55
+ const newFunction = await functionsServiceClient.deploy(Context.default(), {
56
+ // TODO(dmaretskyi): Space key or identity key.
59
57
  ownerPublicKey: space.key,
60
- version: fn ? incrementSemverPatch(fn.version) : '0.0.1',
58
+ version: fn ? incrementSemverPatch(Obj.getMeta(fn).version ?? '0.0.0') : '0.0.1',
61
59
  functionId: existingFunctionId,
62
60
  entryPoint: buildResult.entryPoint,
63
- assets: { [buildResult.entryPoint]: buildResult.asset },
61
+ assets: buildResult.assets,
62
+ runtime: FunctionRuntimeKind.enums.WORKER_LOADER,
64
63
  });
65
64
 
66
- if (functionId === undefined || version === undefined) {
67
- throw new Error(`Upload didn't return expected data: ${JSON.stringify({ functionId, version })}`);
68
- }
69
-
70
- const storedFunction = createOrUpdateFunctionInSpace(space, fn, script, functionId, version);
71
- script.changed = false;
72
- updateFunctionMetadata(script, storedFunction, meta, functionId);
73
-
74
- setUserFunctionIdInMetadata(Obj.getMeta(storedFunction), functionId);
65
+ const storedFunction = createOrUpdateFunctionInSpace(space, fn, script, newFunction);
66
+ Obj.update(script, (script) => {
67
+ script.changed = false;
68
+ });
75
69
 
76
- return { success: true, functionId };
70
+ return { success: true, functionId: getUserFunctionIdInMetadata(Obj.getMeta(storedFunction)) };
77
71
  } catch (err: any) {
78
72
  log.catch(err);
79
73
  return { success: false, error: err };
@@ -83,7 +77,7 @@ export const deployScript = async ({
83
77
  /**
84
78
  * Validate inputs for script deployment.
85
79
  */
86
- const validateDeployInputs = (script: ScriptType, space: Space): Error | null => {
80
+ const validateDeployInputs = (script: Script.Script, space: Space): Error | null => {
87
81
  if (!script.source || !space) {
88
82
  return new Error('Script source or space not available');
89
83
  }
@@ -92,19 +86,17 @@ const validateDeployInputs = (script: ScriptType, space: Space): Error | null =>
92
86
 
93
87
  const createOrUpdateFunctionInSpace = (
94
88
  space: Space,
95
- fn: FunctionType | undefined,
96
- script: ScriptType,
97
- functionId: string,
98
- version: string,
99
- ): FunctionType => {
89
+ fn: Operation.PersistentOperation | undefined,
90
+ script: Script.Script,
91
+ newFunction: Operation.PersistentOperation,
92
+ ): Operation.PersistentOperation => {
100
93
  if (fn) {
101
- fn.name = script.name ?? 'New Function';
102
- fn.version = version;
94
+ Operation.setFrom(fn, newFunction);
103
95
  return fn;
104
96
  } else {
105
- const fn = Obj.make(FunctionType, { name: script.name ?? 'New Function', version, source: Ref.make(script) });
106
- space.db.add(fn);
107
- setUserFunctionIdInMetadata(Obj.getMeta(fn), functionId);
108
- return fn;
97
+ Obj.update(newFunction, (newFunction) => {
98
+ newFunction.source = Ref.make(script);
99
+ });
100
+ return space.db.add(newFunction);
109
101
  }
110
102
  };
@@ -2,11 +2,14 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { type FunctionType, type ScriptType, getInvocationUrl, getUserFunctionIdInMetadata } from '@dxos/functions';
5
+ import { type Operation, Script } from '@dxos/compute';
6
+ import { Obj } from '@dxos/echo';
7
+ import { getUserFunctionIdInMetadata } from '@dxos/functions';
8
+ import { getInvocationUrl } from '@dxos/functions-runtime';
6
9
  import { type PublicKey } from '@dxos/keys';
7
10
  import { log } from '@dxos/log';
8
11
  import { type Credential } from '@dxos/protocols/proto/dxos/halo/credentials';
9
- import { getMeta, getSpace } from '@dxos/react-client/echo';
12
+
10
13
  /**
11
14
  * Get the function URL for a given script and client configuration
12
15
  */
@@ -15,53 +18,55 @@ export const getFunctionUrl = ({
15
18
  fn,
16
19
  edgeUrl,
17
20
  }: {
18
- script: ScriptType;
21
+ script: Script.Script;
19
22
  fn: any;
20
23
  edgeUrl: string;
21
24
  }): string | undefined => {
22
- const space = getSpace(script);
23
- const existingFunctionId = fn && getUserFunctionIdInMetadata(getMeta(fn));
25
+ const spaceId = Obj.getDatabase(script)?.spaceId;
26
+ const existingFunctionId = fn && getUserFunctionIdInMetadata(Obj.getMeta(fn));
24
27
 
25
28
  if (!existingFunctionId) {
26
29
  return undefined;
27
30
  }
28
31
 
29
32
  return getInvocationUrl(existingFunctionId, edgeUrl, {
30
- spaceId: space?.id,
33
+ spaceId,
31
34
  });
32
35
  };
33
36
 
34
37
  export const updateFunctionMetadata = (
35
- script: ScriptType,
36
- storedFunction: FunctionType,
38
+ script: Script.Script,
39
+ storedFunction: Operation.PersistentOperation,
37
40
  meta: any,
38
41
  functionId: string,
39
42
  ) => {
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
- }
43
+ Obj.update(storedFunction, (storedFunction) => {
44
+ if (script.description !== undefined && script.description.trim() !== '') {
45
+ storedFunction.description = script.description;
46
+ } else if (meta.description) {
47
+ storedFunction.description = meta.description;
48
+ } else {
49
+ log.verbose('no description in function metadata', { functionId });
50
+ }
47
51
 
48
- if (meta.inputSchema) {
49
- storedFunction.inputSchema = meta.inputSchema;
50
- } else {
51
- log.verbose('no input schema in function metadata', { functionId });
52
- }
52
+ if (meta.inputSchema) {
53
+ storedFunction.inputSchema = meta.inputSchema;
54
+ } else {
55
+ log.verbose('no input schema in function metadata', { functionId });
56
+ }
53
57
 
54
- if (meta.outputSchema) {
55
- storedFunction.outputSchema = meta.outputSchema;
56
- } else {
57
- log.verbose('no output schema in function metadata', { functionId });
58
- }
58
+ if (meta.outputSchema) {
59
+ storedFunction.outputSchema = meta.outputSchema;
60
+ } else {
61
+ log.verbose('no output schema in function metadata', { functionId });
62
+ }
59
63
 
60
- if (meta.key) {
61
- storedFunction.key = meta.key;
62
- } else {
63
- log.verbose('no key in function metadata', { functionId });
64
- }
64
+ if (meta.key) {
65
+ Obj.getMeta(storedFunction).key = meta.key;
66
+ } else {
67
+ log.verbose('no key in function metadata', { functionId });
68
+ }
69
+ });
65
70
  };
66
71
 
67
72
  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,13 +0,0 @@
1
- import {
2
- DEPLOYMENT_DIALOG,
3
- DeploymentDialog_default
4
- } from "./chunk-NM4WQS4F.mjs";
5
- import "./chunk-JO2O7W6J.mjs";
6
- import "./chunk-5CYLWXRH.mjs";
7
- import "./chunk-ST3ACVUC.mjs";
8
- import "./chunk-EZVXV6DA.mjs";
9
- export {
10
- DEPLOYMENT_DIALOG,
11
- DeploymentDialog_default as default
12
- };
13
- //# sourceMappingURL=DeploymentDialog-65TWT6S5.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/NotebookContainer.tsx", "../../../src/notebook/notebook.ts", "../../../src/notebook/eval.ts", "../../../src/notebook/vfs-parser.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback, useMemo } from 'react';\n\nimport { Ref } from '@dxos/echo';\nimport { invariant } from '@dxos/invariant';\nimport { Assistant } from '@dxos/plugin-assistant';\nimport { getSpace } from '@dxos/react-client/echo';\nimport { DropdownMenu, IconButton, Toolbar, useTranslation } from '@dxos/react-ui';\nimport { StackItem } from '@dxos/react-ui-stack';\nimport { DataType } from '@dxos/schema';\n\nimport { meta } from '../meta';\nimport { ComputeGraph } from '../notebook';\nimport { type Notebook } from '../types';\n\nimport { NotebookMenu, NotebookStack, type NotebookStackProps } from './NotebookStack';\nimport { type TypescriptEditorProps } from './TypescriptEditor';\n\n// TODO(burdon): Support calling named deployed functions (as with sheet).\n\nexport type NotebookContainerProps = {\n role?: string;\n notebook?: Notebook.Notebook;\n} & Pick<TypescriptEditorProps, 'env'>;\n\nexport const NotebookContainer = ({ notebook, env }: NotebookContainerProps) => {\n const { t } = useTranslation(meta.id);\n const space = getSpace(notebook);\n const graph = useMemo(() => notebook && new ComputeGraph(notebook), [notebook]);\n\n // TODO(burdon): Cache values in context (preserve when switched).\n const handleCompute = useCallback(() => {\n graph?.evaluate();\n }, [graph]);\n\n const handleRearrange = useCallback<NonNullable<NotebookStackProps['onRearrange']>>(\n (source, target) => {\n invariant(notebook);\n const from = notebook.cells.findIndex((cell) => cell.id === source.id);\n const to = notebook.cells.findIndex((cell) => cell.id === target.id);\n if (from != null && to != null) {\n const cell = notebook.cells.splice(from, 1)[0];\n if (cell) {\n notebook.cells.splice(to, 0, cell);\n }\n }\n },\n [notebook],\n );\n\n const handleCellInsert = useCallback<NonNullable<NotebookStackProps['onCellInsert']>>(\n (type, after) => {\n invariant(notebook);\n const cell: Notebook.Cell = { id: crypto.randomUUID(), type };\n switch (type) {\n case 'markdown':\n case 'script':\n case 'query': {\n cell.script = Ref.make(DataType.makeText());\n break;\n }\n\n case 'prompt': {\n if (space) {\n cell.chat = Ref.make(Assistant.makeChat({ queue: space.queues.create() }));\n }\n break;\n }\n }\n\n const idx = after ? notebook.cells.findIndex((cell) => cell.id === after) : notebook.cells.length;\n notebook.cells.splice(idx, 0, cell);\n },\n [space, notebook],\n );\n\n const handleCellDelete = useCallback<NonNullable<NotebookStackProps['onCellDelete']>>(\n (id) => {\n invariant(notebook);\n const idx = notebook.cells.findIndex((cell) => cell.id === id);\n if (idx !== -1) {\n notebook.cells.splice(idx, 1);\n }\n },\n [notebook],\n );\n\n return (\n <StackItem.Content toolbar>\n <Toolbar.Root textBlockWidth>\n <DropdownMenu.Root>\n <DropdownMenu.Trigger asChild>\n <IconButton icon='ph--plus--regular' iconOnly label={t('notebook cell insert label')} />\n </DropdownMenu.Trigger>\n <NotebookMenu onCellInsert={handleCellInsert} />\n </DropdownMenu.Root>\n <Toolbar.IconButton\n icon='ph--play--fill'\n iconOnly\n label={t('compute label')}\n classNames='text-green-500'\n onClick={handleCompute}\n />\n </Toolbar.Root>\n <div role='none' className='flex bs-full overflow-hidden -mis-[1px] -mie-[1px]'>\n <NotebookStack\n classNames='container-max-width border-l border-r border-subduedSeparator'\n space={space}\n notebook={notebook}\n graph={graph}\n env={env}\n onRearrange={handleRearrange}\n onCellInsert={handleCellInsert}\n onCellDelete={handleCellDelete}\n />\n </div>\n </StackItem.Content>\n );\n};\n\nexport default NotebookContainer;\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Signal, signal } from '@preact/signals-core';\n\nimport { log } from '@dxos/log';\n\nimport { type Notebook } from '../types';\n\nimport { evalScript } from './eval';\nimport { type ParsedExpression, VirtualTypeScriptParser } from './vfs-parser';\n\n/**\n * Compute graph that evaluates the notebook cells.\n */\nexport class ComputeGraph {\n private readonly _parser = new VirtualTypeScriptParser();\n\n private _expressions = signal<Record<string, ParsedExpression>>({});\n private _values = signal<Record<string, any>>({});\n\n constructor(private readonly _notebook: Notebook.Notebook) {}\n\n /**\n * Parsed expressions by cell ID.\n */\n get expressions(): Signal<Record<string, ParsedExpression>> {\n return this._expressions;\n }\n\n /**\n * Computed values by cell ID.\n */\n get values(): Signal<Record<string, any>> {\n return this._values;\n }\n\n /**\n * Compute values.\n */\n evaluate() {\n // Parse expressions.\n const { expressions, dependencyGraph } = this.parse();\n this._values.value = {};\n\n // Create a map of cell IDs to expressions for easy lookup.\n const cellExpressions = new Map<string, ParsedExpression>();\n Object.entries(expressions).forEach(([id, expr]) => {\n cellExpressions.set(id, expr);\n });\n\n // Topological sort to determine evaluation order.\n const evaluationOrder = this.topologicalSort(Object.keys(expressions), dependencyGraph);\n\n // Values by reference name.\n const valuesByName: Record<string, any> = {};\n const valuesByCellId: Record<string, any> = {};\n\n // Evaluate cells in dependency order.\n for (const cellId of evaluationOrder) {\n const expr = cellExpressions.get(cellId);\n if (!expr) {\n log.error('no expression for cell', { cellId });\n continue;\n }\n\n const cellSource = this._notebook.cells.find((cell) => cell.id === cellId)?.script?.target?.content;\n if (!cellSource) {\n log.error('no source for cell', { cellId });\n continue;\n }\n\n try {\n // For assignments or declarations, evaluate and store the value.\n if (expr.name && expr.value !== undefined) {\n // If the parser extracted a literal value, use it directly.\n valuesByName[expr.name] = expr.value;\n valuesByCellId[cellId] = expr.value;\n } else if (expr.name) {\n // For non-literal assignments, we need to evaluate the expression.\n // The parser identifies it's an assignment, so we can extract the RHS.\n const equalIndex = cellSource.indexOf('=');\n if (equalIndex !== -1) {\n // Find the actual assignment operator (not in strings or other contexts).\n let rhs = cellSource.substring(equalIndex + 1).trim();\n\n // Handle semicolon at the end.\n if (rhs.endsWith(';')) {\n rhs = rhs.slice(0, -1).trim();\n }\n\n const result = evalScript(rhs, valuesByName);\n valuesByName[expr.name] = result;\n if (typeof result !== 'function') {\n valuesByCellId[cellId] = result;\n }\n }\n } else {\n // For expressions without assignment, just evaluate.\n const result = evalScript(cellSource, valuesByName);\n valuesByCellId[cellId] = result;\n }\n } catch (error) {\n log.error('error evaluating cell', { cellId, error });\n }\n }\n\n this._values.value = valuesByCellId;\n return valuesByCellId;\n }\n\n /**\n * Parse expressions.\n */\n parse() {\n const expressions = this._notebook.cells\n .filter((cell) => cell.type === 'script')\n .reduce<Record<string, ParsedExpression>>((acc, cell) => {\n const text = cell.script?.target?.content.trim();\n if (text) {\n const parsed = this._parser.parseExpression(text);\n acc[cell.id] = parsed;\n }\n\n return acc;\n }, {});\n\n // Build dependency graph.\n const dependencyGraph = this.buildDependencyGraph(expressions);\n this._expressions.value = expressions;\n return { expressions, dependencyGraph };\n }\n\n private topologicalSort(nodes: string[], dependencies: Record<string, string[]>): string[] {\n const visited = new Set<string>();\n const result: string[] = [];\n\n const visit = (node: string) => {\n if (visited.has(node)) {\n return;\n }\n\n visited.add(node);\n\n // Visit dependencies first.\n const deps = dependencies[node] || [];\n deps.forEach((dep) => visit(dep));\n result.push(node);\n };\n\n // Visit all nodes.\n nodes.forEach((node) => visit(node));\n return result;\n }\n\n private buildDependencyGraph(expressions: Record<string, ParsedExpression>): Record<string, string[]> {\n // Create a map of variable names to their cell IDs.\n const nameToCellId = new Map<string, string>();\n Object.entries(expressions).forEach(([id, expr]) => {\n if (expr.name) {\n nameToCellId.set(expr.name, id);\n }\n });\n\n // Build the dependency graph using cell IDs.\n const graph: Record<string, string[]> = {};\n Object.entries(expressions).forEach(([id, expr]) => {\n if (expr.references && expr.references.length > 0) {\n // Map variable references to cell IDs.\n const dependencyCellIds = expr.references\n .map((ref) => nameToCellId.get(ref))\n .filter((cellId): cellId is string => cellId !== undefined && cellId !== id);\n\n if (dependencyCellIds.length > 0) {\n graph[id] = dependencyCellIds;\n }\n }\n });\n\n return graph;\n }\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { trim } from '@dxos/util';\n\n/**\n * Evaluate the script (with dependencies as arguments).\n */\nexport const evalScript = (code: string, deps: Record<string, any> = {}) => {\n // Create a sandboxed environment that blocks access to window and document.\n const sandbox = {\n ...deps,\n\n // Block access to global objects.\n console: undefined,\n document: undefined,\n global: undefined,\n globalThis: undefined,\n self: undefined,\n window: undefined,\n\n // Allow some safe globals.\n Array,\n Boolean,\n Date,\n Error,\n JSON,\n Map,\n Math,\n Number,\n Object,\n Promise,\n RegExp,\n Set,\n String,\n\n // Functions.\n isFinite,\n isNaN,\n parseFloat,\n parseInt,\n\n // Note: undefined and null are not included as they are keywords, not variables.\n };\n\n // Create function with all sandbox keys as parameters.\n const sandboxKeys = Object.keys(sandbox);\n const sandboxValues = Object.values(sandbox);\n\n // eslint-disable-next-line @typescript-eslint/no-implied-eval\n const fn = new Function(\n ...sandboxKeys,\n trim`\n 'use strict';\n return ${code};\n `,\n );\n\n return fn(...sandboxValues);\n};\n\n/**\n * Globals.\n */\nexport const builtIns = new Set([\n // Types.\n 'Array',\n 'Date',\n 'Error',\n 'JSON',\n 'Map',\n 'Math',\n 'Number',\n 'Object',\n 'Promise',\n 'RegExp',\n 'Set',\n 'String',\n\n // Functions.\n 'isFinite',\n 'isNaN',\n 'parseFloat',\n 'parseInt',\n]);\n\n/**\n * Default system definitions.\n */\nexport const systemDefinitions = trim`\n interface Array<T> { length: number; [n: number]: T; }\n interface Boolean {}\n interface Function {}\n interface IArguments {}\n interface Number {}\n interface Object {}\n interface RegExp {}\n interface String { length: number; }\n\n interface CallableFunction extends Function {}\n interface NewableFunction extends Function {}\n\n declare var console: { log(...args: any[]): void };\n`;\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { createSystem, createVirtualTypeScriptEnvironment } from '@typescript/vfs';\nimport ts from 'typescript';\n\nimport { invariant } from '@dxos/invariant';\n\nimport { builtIns, systemDefinitions } from './eval';\n\n/**\n * Default system definitions.\n */\nconst systemFiles: VirtualFile[] = [\n {\n filename: '/lib.d.ts',\n content: systemDefinitions,\n },\n];\n\nexport type ParsedExpression = {\n name?: string;\n type?: 'function' | 'variable' | 'class' | 'interface';\n value?: any;\n valueType?: string;\n parameters?: Array<{ name: string; type: string }>;\n returnType?: string;\n references?: string[];\n};\n\nexport type VirtualFile = {\n filename: string;\n content: string;\n};\n\n/**\n * TypeScript parser using Virtual File System for browser compatibility.\n * This provides full TypeScript analysis including type information.\n */\nexport class VirtualTypeScriptParser {\n protected compilerOptions: ts.CompilerOptions = {\n target: ts.ScriptTarget.ES2020,\n module: ts.ModuleKind.ESNext,\n strict: true,\n esModuleInterop: true,\n skipLibCheck: true,\n forceConsistentCasingInfilenames: true,\n jsx: ts.JsxEmit.React,\n noLib: true, // Don't automatically include default lib files.\n };\n\n /**\n * Parse a single expression or statement.\n */\n parseExpression(input: string): ParsedExpression {\n invariant(input.trim() !== '', 'input must not be empty');\n const files: VirtualFile[] = [{ filename: '/temp.ts', content: input }];\n const analysis = this.analyzeFiles(files);\n\n // If no declarations found, check for standalone expression references.\n if (analysis.length === 0) {\n const sourcefilename = '/temp.ts';\n const env = this.createEnvironment([{ filename: sourcefilename, content: input }]);\n const sourceFile = env.getSourceFile(sourcefilename);\n const typeChecker = env.languageService.getProgram()?.getTypeChecker();\n\n if (sourceFile && typeChecker) {\n // Check for assignment expressions.\n const assignmentInfo = this.findAssignmentExpression(sourceFile, typeChecker);\n if (assignmentInfo) {\n return assignmentInfo;\n }\n\n const references = this.findAllReferences(sourceFile, typeChecker);\n return { references };\n }\n }\n\n return analysis[0];\n }\n\n /**\n * Analyze multiple files with full type information.\n */\n analyzeFiles(files: VirtualFile[]): ParsedExpression[] {\n const env = this.createEnvironment(files);\n const results: ParsedExpression[] = [];\n const typeChecker = env.languageService.getProgram()?.getTypeChecker();\n\n // Analyze each file.\n files.forEach((file) => {\n const sourceFile = env.getSourceFile(file.filename);\n if (!sourceFile || !typeChecker) return;\n\n const fileResults = this.analyzeSourceFile(sourceFile, typeChecker);\n results.push(...fileResults);\n });\n\n return results;\n }\n\n /**\n * Analyze a source file with type information.\n */\n protected analyzeSourceFile(sourceFile: ts.SourceFile, typeChecker: ts.TypeChecker): ParsedExpression[] {\n const results: ParsedExpression[] = [];\n\n const visit = (node: ts.Node) => {\n // Function declarations.\n if (ts.isFunctionDeclaration(node) && node.name) {\n const symbol = typeChecker.getSymbolAtLocation(node.name);\n const type = symbol && typeChecker.getTypeOfSymbolAtLocation(symbol, node);\n const signature = type && typeChecker.getSignaturesOfType(type, ts.SignatureKind.Call)[0];\n\n results.push({\n name: node.name.text,\n type: 'function',\n parameters: this.extractParameters(signature, typeChecker),\n returnType: signature ? typeChecker.typeToString(signature.getReturnType()) : 'any',\n references: this.findReferences(node, sourceFile, typeChecker),\n });\n }\n\n // Variable declarations.\n else if (ts.isVariableStatement(node)) {\n node.declarationList.declarations.forEach((declaration) => {\n if (ts.isIdentifier(declaration.name)) {\n const symbol = typeChecker.getSymbolAtLocation(declaration.name);\n const type = symbol && typeChecker.getTypeOfSymbolAtLocation(symbol, declaration);\n\n let kind: 'function' | 'variable' = 'variable';\n let parameters: Array<{ name: string; type: string }> | undefined;\n let returnType: string | undefined;\n let value: any;\n\n // Get the type string.\n const typeString = type ? typeChecker.typeToString(type) : 'any';\n\n // Check if it's a function.\n if (declaration.initializer) {\n if (ts.isArrowFunction(declaration.initializer) || ts.isFunctionExpression(declaration.initializer)) {\n kind = 'function';\n const funcType = typeChecker.getTypeAtLocation(declaration.initializer);\n const signature = typeChecker.getSignaturesOfType(funcType, ts.SignatureKind.Call)[0];\n if (signature) {\n parameters = this.extractParameters(signature, typeChecker);\n returnType = typeChecker.typeToString(signature.getReturnType());\n }\n } else {\n // Extract literal values\n if (ts.isNumericLiteral(declaration.initializer)) {\n value = Number(declaration.initializer.text);\n } else if (ts.isStringLiteral(declaration.initializer)) {\n value = declaration.initializer.text;\n }\n }\n }\n\n // Find references in the initializer only.\n const refs = declaration.initializer\n ? this.findReferences(declaration.initializer, sourceFile, typeChecker)\n : [];\n\n results.push({\n name: declaration.name.text,\n type: kind,\n valueType: typeString,\n value,\n parameters,\n returnType,\n references: refs,\n });\n }\n });\n }\n\n // Class declarations.\n else if (ts.isClassDeclaration(node) && node.name) {\n results.push({\n name: node.name.text,\n type: 'class',\n references: this.findReferences(node, sourceFile, typeChecker),\n });\n }\n\n // Interface declarations.\n else if (ts.isInterfaceDeclaration(node)) {\n results.push({\n name: node.name.text,\n type: 'interface',\n references: this.findReferences(node, sourceFile, typeChecker),\n });\n }\n\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n return results;\n }\n\n /**\n * Extract parameter information from a signature.\n */\n private extractParameters(\n signature: ts.Signature | undefined,\n typeChecker: ts.TypeChecker,\n ): Array<{ name: string; type: string }> {\n if (!signature) return [];\n\n return signature.parameters.map((param) => ({\n name: param.getName(),\n type: typeChecker.typeToString(typeChecker.getTypeOfSymbolAtLocation(param, param.valueDeclaration!)),\n }));\n }\n\n /**\n * Find all references to variables used in a node.\n */\n private findReferences(node: ts.Node, _sourceFile: ts.SourceFile, _typeChecker: ts.TypeChecker): string[] {\n const references = new Set<string>();\n const localSymbols = new Set<string>();\n\n // First, collect local symbols (parameters, local variables).\n const collectLocalSymbols = (node: ts.Node) => {\n if (ts.isFunctionDeclaration(node) || ts.isArrowFunction(node) || ts.isFunctionExpression(node)) {\n node.parameters.forEach((param) => {\n if (ts.isIdentifier(param.name)) {\n localSymbols.add(param.name.text);\n }\n });\n }\n\n if (ts.isVariableDeclaration(node) && ts.isIdentifier(node.name)) {\n localSymbols.add(node.name.text);\n }\n\n ts.forEachChild(node, collectLocalSymbols);\n };\n\n collectLocalSymbols(node);\n\n // Then find all identifier references.\n const findRefs = (node: ts.Node) => {\n if (ts.isIdentifier(node)) {\n // Skip if it's a local symbol.\n if (!localSymbols.has(node.text)) {\n // Check if it's a reference (not a declaration).\n const parent = node.parent;\n const isDeclaration =\n (ts.isVariableDeclaration(parent) && parent.name === node) ||\n (ts.isFunctionDeclaration(parent) && parent.name === node) ||\n (ts.isParameter(parent) && parent.name === node);\n\n if (!isDeclaration && !this.isBuiltIn(node.text)) {\n references.add(node.text);\n }\n }\n }\n ts.forEachChild(node, findRefs);\n };\n\n findRefs(node);\n return Array.from(references);\n }\n\n /**\n * Check if a name is a built-in global.\n */\n protected isBuiltIn(name: string): boolean {\n return builtIns.has(name);\n }\n\n /**\n * Find assignment expressions in a source file.\n */\n private findAssignmentExpression(sourceFile: ts.SourceFile, typeChecker: ts.TypeChecker): ParsedExpression | null {\n let result: ParsedExpression | null = null;\n\n const visit = (node: ts.Node) => {\n if (ts.isExpressionStatement(node) && ts.isBinaryExpression(node.expression)) {\n const expr = node.expression;\n if (expr.operatorToken.kind === ts.SyntaxKind.EqualsToken && ts.isIdentifier(expr.left)) {\n const type = typeChecker.getTypeAtLocation(expr.right);\n const typeString = typeChecker.typeToString(type);\n\n // Get the literal value if it's a literal.\n let value: any;\n if (ts.isNumericLiteral(expr.right)) {\n value = Number(expr.right.text);\n } else if (ts.isStringLiteral(expr.right)) {\n value = expr.right.text;\n }\n\n // Find references in the right-hand side.\n const references = this.findReferences(expr.right, sourceFile, typeChecker);\n\n result = {\n name: expr.left.text,\n type: 'variable',\n valueType: typeString,\n value,\n references,\n };\n }\n }\n if (!result) {\n ts.forEachChild(node, visit);\n }\n };\n\n visit(sourceFile);\n return result;\n }\n\n /**\n * Find all identifier references in a source file.\n */\n protected findAllReferences(sourceFile: ts.SourceFile, _typeChecker: ts.TypeChecker): string[] {\n const references = new Set<string>();\n\n const visit = (node: ts.Node) => {\n if (ts.isIdentifier(node)) {\n // Skip if it's a declaration.\n const parent = node.parent;\n const isDeclaration =\n (ts.isVariableDeclaration(parent) && parent.name === node) ||\n (ts.isFunctionDeclaration(parent) && parent.name === node) ||\n (ts.isParameter(parent) && parent.name === node);\n\n // Skip if it's the left-hand side of an assignment.\n const isAssignmentTarget =\n ts.isBinaryExpression(parent) &&\n parent.operatorToken.kind === ts.SyntaxKind.EqualsToken &&\n parent.left === node;\n\n if (!isDeclaration && !isAssignmentTarget && !this.isBuiltIn(node.text)) {\n references.add(node.text);\n }\n }\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n return Array.from(references);\n }\n\n protected createEnvironment(files: VirtualFile[]) {\n const allFiles = [...systemFiles, ...files];\n\n const fileMap = new Map<string, string>();\n allFiles.forEach(({ filename, content }) => {\n fileMap.set(filename, content);\n });\n\n const system = createSystem(fileMap);\n return createVirtualTypeScriptEnvironment(\n system,\n allFiles.map(({ filename }) => filename),\n ts,\n this.compilerOptions,\n );\n }\n}\n\n/**\n * Notebook-specific parser with dependency analysis.\n */\nexport class NotebookVirtualParser extends VirtualTypeScriptParser {\n /**\n * Analyze notebook cells with full type checking.\n */\n analyzeNotebook(cells: Array<{ id: string; code: string }>) {\n // Create cumulative environment where each cell can see previous cells.\n const cumulativeCode: string[] = [];\n const cellAnalysis: Map<\n string,\n {\n exports: ParsedExpression[];\n imports: string[];\n errors: ts.Diagnostic[];\n }\n > = new Map();\n\n cells.forEach((cell) => {\n // Create files for all cells up to current.\n const files: VirtualFile[] = [];\n\n // Add previous cells as context.\n if (cumulativeCode.length > 0) {\n files.push({\n filename: '/context.ts',\n content: cumulativeCode.join('\\n'),\n });\n }\n\n // Add current cell.\n const filename = `/cell/${cell.id}.ts`;\n files.push({\n filename,\n content: cell.code,\n });\n\n // Create environment.\n const env = this.createEnvironment(files);\n\n // Get diagnostics (errors).\n const diagnostics = env.languageService.getSemanticDiagnostics(filename);\n\n // Analyze current cell.\n const sourceFile = env.getSourceFile(filename);\n const typeChecker = env.languageService.getProgram()?.getTypeChecker();\n\n if (sourceFile && typeChecker) {\n const exports = this.analyzeSourceFile(sourceFile, typeChecker);\n\n // Find all references in the current cell.\n const allRefs = new Set<string>();\n exports.forEach((exp) => {\n exp.references?.forEach((ref) => allRefs.add(ref));\n });\n\n // Also check for references not in exports (e.g., console.log(y)).\n const additionalRefs = this.findAllReferences(sourceFile, typeChecker);\n additionalRefs.forEach((ref) => allRefs.add(ref));\n\n // Determine which references are imports from previous cells.\n const previousExports = new Set<string>();\n for (const [_prevCellId, prevAnalysis] of cellAnalysis) {\n prevAnalysis.exports.forEach((exp) => {\n if (exp.name) previousExports.add(exp.name);\n });\n }\n\n const imports = Array.from(allRefs).filter((ref) => previousExports.has(ref));\n\n cellAnalysis.set(cell.id, {\n exports,\n imports,\n errors: diagnostics,\n });\n }\n\n // Add current cell code to cumulative.\n cumulativeCode.push(cell.code);\n });\n\n return cellAnalysis;\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["React", "useCallback", "useMemo", "Ref", "invariant", "Assistant", "getSpace", "DropdownMenu", "IconButton", "Toolbar", "useTranslation", "StackItem", "DataType", "signal", "log", "trim", "evalScript", "code", "deps", "sandbox", "console", "undefined", "document", "global", "globalThis", "self", "window", "Array", "Boolean", "Date", "Error", "JSON", "Map", "Math", "Number", "Object", "Promise", "RegExp", "Set", "String", "isFinite", "isNaN", "parseFloat", "parseInt", "sandboxKeys", "keys", "sandboxValues", "values", "fn", "Function", "trim", "builtIns", "systemDefinitions", "createSystem", "createVirtualTypeScriptEnvironment", "ts", "invariant", "systemFiles", "filename", "content", "systemDefinitions", "VirtualTypeScriptParser", "parseExpression", "input", "invariant", "trim", "files", "analysis", "analyzeFiles", "length", "sourcefilename", "env", "createEnvironment", "sourceFile", "getSourceFile", "typeChecker", "languageService", "getProgram", "getTypeChecker", "assignmentInfo", "findAssignmentExpression", "references", "findAllReferences", "results", "forEach", "file", "fileResults", "analyzeSourceFile", "push", "visit", "node", "ts", "isFunctionDeclaration", "name", "symbol", "getSymbolAtLocation", "type", "getTypeOfSymbolAtLocation", "signature", "getSignaturesOfType", "SignatureKind", "Call", "text", "parameters", "extractParameters", "returnType", "typeToString", "getReturnType", "findReferences", "isVariableStatement", "declarationList", "declarations", "declaration", "isIdentifier", "kind", "value", "typeString", "initializer", "isArrowFunction", "isFunctionExpression", "funcType", "getTypeAtLocation", "isNumericLiteral", "Number", "isStringLiteral", "refs", "valueType", "isClassDeclaration", "isInterfaceDeclaration", "forEachChild", "map", "param", "getName", "valueDeclaration", "_sourceFile", "_typeChecker", "Set", "localSymbols", "collectLocalSymbols", "add", "isVariableDeclaration", "findRefs", "has", "parent", "isDeclaration", "isParameter", "isBuiltIn", "Array", "from", "builtIns", "result", "isExpressionStatement", "isBinaryExpression", "expression", "expr", "operatorToken", "SyntaxKind", "EqualsToken", "left", "right", "isAssignmentTarget", "allFiles", "fileMap", "Map", "set", "system", "createSystem", "createVirtualTypeScriptEnvironment", "compilerOptions", "target", "ScriptTarget", "ES2020", "module", "ModuleKind", "ESNext", "strict", "esModuleInterop", "skipLibCheck", "forceConsistentCasingInfilenames", "jsx", "JsxEmit", "React", "noLib", "ComputeGraph", "expressions", "_expressions", "values", "_values", "evaluate", "dependencyGraph", "parse", "value", "cellExpressions", "Map", "Object", "entries", "forEach", "id", "expr", "set", "evaluationOrder", "topologicalSort", "keys", "valuesByName", "valuesByCellId", "cellId", "get", "log", "error", "cellSource", "_notebook", "cells", "find", "cell", "script", "target", "content", "name", "undefined", "equalIndex", "indexOf", "rhs", "substring", "trim", "endsWith", "slice", "result", "evalScript", "filter", "type", "reduce", "acc", "text", "parsed", "_parser", "parseExpression", "buildDependencyGraph", "nodes", "dependencies", "visited", "Set", "visit", "node", "has", "add", "deps", "dep", "push", "nameToCellId", "graph", "references", "length", "dependencyCellIds", "map", "ref", "_define_property", "VirtualTypeScriptParser", "signal", "NotebookContainer", "notebook", "env", "t", "useTranslation", "meta", "id", "space", "getSpace", "graph", "useMemo", "ComputeGraph", "handleCompute", "useCallback", "evaluate", "handleRearrange", "source", "target", "invariant", "from", "cells", "findIndex", "cell", "to", "splice", "handleCellInsert", "type", "after", "crypto", "randomUUID", "script", "Ref", "make", "DataType", "makeText", "chat", "Assistant", "makeChat", "queue", "queues", "create", "idx", "length", "handleCellDelete", "StackItem", "Content", "toolbar", "Toolbar", "Root", "textBlockWidth", "DropdownMenu", "Trigger", "asChild", "IconButton", "icon", "iconOnly", "label", "NotebookMenu", "onCellInsert", "classNames", "onClick", "div", "role", "className", "NotebookStack", "onRearrange", "onCellDelete"]
7
- }
@@ -1,149 +0,0 @@
1
- import {
2
- createDeploy,
3
- createFormat,
4
- createTemplateSelect,
5
- useDeployDeps,
6
- useDeployState,
7
- useToolbarState
8
- } from "./chunk-E7DXDICD.mjs";
9
- import {
10
- TypescriptEditor
11
- } from "./chunk-N6M34EUC.mjs";
12
- import "./chunk-JO2O7W6J.mjs";
13
- import "./chunk-5CYLWXRH.mjs";
14
- import "./chunk-ST3ACVUC.mjs";
15
- import {
16
- meta
17
- } from "./chunk-EZVXV6DA.mjs";
18
-
19
- // src/components/ScriptContainer.tsx
20
- import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
21
- import React2, { useMemo as useMemo2 } from "react";
22
- import { createDocAccessor, getSpace } from "@dxos/react-client/echo";
23
- import { useIdentity } from "@dxos/react-client/halo";
24
- import { createDataExtensions, listener, stackItemContentEditorClassNames } from "@dxos/react-ui-editor";
25
- import { StackItem } from "@dxos/react-ui-stack";
26
-
27
- // src/components/ScriptToolbar/ScriptToolbar.tsx
28
- import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
29
- import { Rx } from "@effect-rx/rx-react";
30
- import React, { useMemo } from "react";
31
- import { fullyQualifiedId } from "@dxos/react-client/echo";
32
- import { ElevationProvider, useTranslation } from "@dxos/react-ui";
33
- import { MenuProvider, ToolbarMenu, createGapSeparator, rxFromSignal, useMenuActions } from "@dxos/react-ui-menu";
34
- var ScriptToolbar = ({ script, role, state, classNames }) => {
35
- var _effect = _useSignals();
36
- try {
37
- const { t } = useTranslation(meta.id);
38
- const options = useDeployDeps({
39
- script
40
- });
41
- const menu = useMemo(() => createToolbarActions({
42
- state,
43
- script,
44
- t,
45
- ...options
46
- }), [
47
- state,
48
- script,
49
- options,
50
- t
51
- ]);
52
- const actions = useMenuActions(menu);
53
- return /* @__PURE__ */ React.createElement(ElevationProvider, {
54
- elevation: role === "section" ? "positioned" : "base"
55
- }, /* @__PURE__ */ React.createElement(MenuProvider, {
56
- ...actions,
57
- attendableId: fullyQualifiedId(script)
58
- }, /* @__PURE__ */ React.createElement(ToolbarMenu, {
59
- classNames
60
- })));
61
- } finally {
62
- _effect.f();
63
- }
64
- };
65
- var createToolbarActions = ({ state, script, ...options }) => Rx.make((get) => get(rxFromSignal(() => {
66
- const templateSelect = createTemplateSelect(script);
67
- const format = createFormat(script);
68
- const gap = createGapSeparator();
69
- const deploy = createDeploy({
70
- state,
71
- script,
72
- ...options
73
- });
74
- return {
75
- nodes: [
76
- ...templateSelect.nodes,
77
- ...format.nodes,
78
- ...gap.nodes,
79
- ...deploy.nodes
80
- ],
81
- edges: [
82
- ...templateSelect.edges,
83
- ...format.edges,
84
- ...gap.edges,
85
- ...deploy.edges
86
- ]
87
- };
88
- })));
89
-
90
- // src/components/ScriptContainer.tsx
91
- var ScriptContainer = ({ role, script, settings = {
92
- editorInputMode: "vscode"
93
- }, env }) => {
94
- var _effect = _useSignals2();
95
- try {
96
- const identity = useIdentity();
97
- const space = getSpace(script);
98
- const state = useToolbarState();
99
- useDeployState({
100
- state,
101
- script
102
- });
103
- const extensions = useMemo2(() => script.source.target ? [
104
- listener({
105
- onChange: (text) => {
106
- if (script.source.target?.content !== text) {
107
- script.changed = true;
108
- }
109
- }
110
- }),
111
- createDataExtensions({
112
- id: script.id,
113
- text: createDocAccessor(script.source.target, [
114
- "content"
115
- ]),
116
- space,
117
- identity
118
- })
119
- ] : [], [
120
- identity,
121
- space,
122
- script,
123
- script.source.target
124
- ]);
125
- return /* @__PURE__ */ React2.createElement(StackItem.Content, {
126
- toolbar: true
127
- }, /* @__PURE__ */ React2.createElement(ScriptToolbar, {
128
- state,
129
- role,
130
- script
131
- }), /* @__PURE__ */ React2.createElement(TypescriptEditor, {
132
- id: script.id,
133
- env,
134
- initialValue: script.source?.target?.content,
135
- extensions,
136
- classNames: stackItemContentEditorClassNames(role),
137
- inputMode: settings.editorInputMode,
138
- toolbar: true
139
- }));
140
- } finally {
141
- _effect.f();
142
- }
143
- };
144
- var ScriptContainer_default = ScriptContainer;
145
- export {
146
- ScriptContainer,
147
- ScriptContainer_default as default
148
- };
149
- //# sourceMappingURL=ScriptContainer-LRTRN7JW.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/ScriptContainer.tsx", "../../../src/components/ScriptToolbar/ScriptToolbar.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useMemo } from 'react';\n\nimport { type ScriptType } from '@dxos/functions';\nimport { createDocAccessor, getSpace } from '@dxos/react-client/echo';\nimport { useIdentity } from '@dxos/react-client/halo';\nimport { createDataExtensions, listener, stackItemContentEditorClassNames } from '@dxos/react-ui-editor';\nimport { StackItem } from '@dxos/react-ui-stack';\n\nimport { useDeployState, useToolbarState } from '../hooks';\nimport { type ScriptSettings } from '../types';\n\nimport { ScriptToolbar } from './ScriptToolbar';\nimport { TypescriptEditor, type TypescriptEditorProps } from './TypescriptEditor';\n\nexport type ScriptEditorProps = {\n role: string;\n script: ScriptType;\n settings?: ScriptSettings;\n} & Pick<TypescriptEditorProps, 'env'>;\n\nexport const ScriptContainer = ({ role, script, settings = { editorInputMode: 'vscode' }, env }: ScriptEditorProps) => {\n const identity = useIdentity();\n const space = getSpace(script);\n const state = useToolbarState();\n useDeployState({ state, script });\n\n const extensions = useMemo(\n () =>\n script.source.target\n ? [\n listener({\n onChange: (text) => {\n if (script.source.target?.content !== text) {\n script.changed = true;\n }\n },\n }),\n createDataExtensions({\n id: script.id,\n text: createDocAccessor(script.source.target, ['content']),\n space,\n identity,\n }),\n ]\n : [],\n [identity, space, script, script.source.target],\n );\n\n return (\n <StackItem.Content toolbar>\n <ScriptToolbar state={state} role={role} script={script} />\n <TypescriptEditor\n id={script.id}\n env={env}\n initialValue={script.source?.target?.content}\n extensions={extensions}\n classNames={stackItemContentEditorClassNames(role)}\n inputMode={settings.editorInputMode}\n toolbar\n />\n </StackItem.Content>\n );\n};\n\nexport default ScriptContainer;\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Rx } from '@effect-rx/rx-react';\nimport React, { useMemo } from 'react';\n\nimport { type ScriptType } from '@dxos/functions';\nimport { fullyQualifiedId } from '@dxos/react-client/echo';\nimport { ElevationProvider, type ThemedClassName, useTranslation } from '@dxos/react-ui';\nimport {\n type ActionGraphProps,\n MenuProvider,\n ToolbarMenu,\n createGapSeparator,\n rxFromSignal,\n useMenuActions,\n} from '@dxos/react-ui-menu';\n\nimport {\n type CreateDeployOptions,\n type ScriptToolbarState,\n createDeploy,\n createFormat,\n createTemplateSelect,\n useDeployDeps,\n} from '../../hooks';\nimport { meta } from '../../meta';\n\nexport type ScriptToolbarProps = ThemedClassName<{\n role?: string;\n script: ScriptType;\n state: ScriptToolbarState;\n}>;\n\nexport const ScriptToolbar = ({ script, role, state, classNames }: ScriptToolbarProps) => {\n const { t } = useTranslation(meta.id);\n const options = useDeployDeps({ script });\n const menu = useMemo(() => createToolbarActions({ state, script, t, ...options }), [state, script, options, t]);\n const actions = useMenuActions(menu);\n\n return (\n <ElevationProvider elevation={role === 'section' ? 'positioned' : 'base'}>\n <MenuProvider {...actions} attendableId={fullyQualifiedId(script)}>\n <ToolbarMenu classNames={classNames} />\n </MenuProvider>\n </ElevationProvider>\n );\n};\n\nconst createToolbarActions = ({ state, script, ...options }: CreateDeployOptions): Rx.Rx<ActionGraphProps> =>\n Rx.make((get) =>\n get(\n rxFromSignal(() => {\n const templateSelect = createTemplateSelect(script);\n const format = createFormat(script);\n const gap = createGapSeparator();\n const deploy = createDeploy({ state, script, ...options });\n return {\n nodes: [...templateSelect.nodes, ...format.nodes, ...gap.nodes, ...deploy.nodes],\n edges: [...templateSelect.edges, ...format.edges, ...gap.edges, ...deploy.edges],\n };\n }),\n ),\n );\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAIA,OAAOA,UAASC,WAAAA,gBAAe;AAG/B,SAASC,mBAAmBC,gBAAgB;AAC5C,SAASC,mBAAmB;AAC5B,SAASC,sBAAsBC,UAAUC,wCAAwC;AACjF,SAASC,iBAAiB;;;;ACN1B,SAASC,UAAU;AACnB,OAAOC,SAASC,eAAe;AAG/B,SAASC,wBAAwB;AACjC,SAASC,mBAAyCC,sBAAsB;AACxE,SAEEC,cACAC,aACAC,oBACAC,cACAC,sBACK;AAkBA,IAAMC,gBAAgB,CAAC,EAAEC,QAAQC,MAAMC,OAAOC,WAAU,MAAsB;;;AACnF,UAAM,EAAEC,EAAC,IAAKC,eAAeC,KAAKC,EAAE;AACpC,UAAMC,UAAUC,cAAc;MAAET;IAAO,CAAA;AACvC,UAAMU,OAAOC,QAAQ,MAAMC,qBAAqB;MAAEV;MAAOF;MAAQI;MAAG,GAAGI;IAAQ,CAAA,GAAI;MAACN;MAAOF;MAAQQ;MAASJ;KAAE;AAC9G,UAAMS,UAAUC,eAAeJ,IAAAA;AAE/B,WACE,sBAAA,cAACK,mBAAAA;MAAkBC,WAAWf,SAAS,YAAY,eAAe;OAChE,sBAAA,cAACgB,cAAAA;MAAc,GAAGJ;MAASK,cAAcC,iBAAiBnB,MAAAA;OACxD,sBAAA,cAACoB,aAAAA;MAAYjB;;;;;AAIrB;AAEA,IAAMS,uBAAuB,CAAC,EAAEV,OAAOF,QAAQ,GAAGQ,QAAAA,MAChDa,GAAGC,KAAK,CAACC,QACPA,IACEC,aAAa,MAAA;AACX,QAAMC,iBAAiBC,qBAAqB1B,MAAAA;AAC5C,QAAM2B,SAASC,aAAa5B,MAAAA;AAC5B,QAAM6B,MAAMC,mBAAAA;AACZ,QAAMC,SAASC,aAAa;IAAE9B;IAAOF;IAAQ,GAAGQ;EAAQ,CAAA;AACxD,SAAO;IACLyB,OAAO;SAAIR,eAAeQ;SAAUN,OAAOM;SAAUJ,IAAII;SAAUF,OAAOE;;IAC1EC,OAAO;SAAIT,eAAeS;SAAUP,OAAOO;SAAUL,IAAIK;SAAUH,OAAOG;;EAC5E;AACF,CAAA,CAAA,CAAA;;;ADtCC,IAAMC,kBAAkB,CAAC,EAAEC,MAAMC,QAAQC,WAAW;EAAEC,iBAAiB;AAAS,GAAGC,IAAG,MAAqB;;;AAChH,UAAMC,WAAWC,YAAAA;AACjB,UAAMC,QAAQC,SAASP,MAAAA;AACvB,UAAMQ,QAAQC,gBAAAA;AACdC,mBAAe;MAAEF;MAAOR;IAAO,CAAA;AAE/B,UAAMW,aAAaC,SACjB,MACEZ,OAAOa,OAAOC,SACV;MACEC,SAAS;QACPC,UAAU,CAACC,SAAAA;AACT,cAAIjB,OAAOa,OAAOC,QAAQI,YAAYD,MAAM;AAC1CjB,mBAAOmB,UAAU;UACnB;QACF;MACF,CAAA;MACAC,qBAAqB;QACnBC,IAAIrB,OAAOqB;QACXJ,MAAMK,kBAAkBtB,OAAOa,OAAOC,QAAQ;UAAC;SAAU;QACzDR;QACAF;MACF,CAAA;QAEF,CAAA,GACN;MAACA;MAAUE;MAAON;MAAQA,OAAOa,OAAOC;KAAO;AAGjD,WACE,gBAAAS,OAAA,cAACC,UAAUC,SAAO;MAACC,SAAAA;OACjB,gBAAAH,OAAA,cAACI,eAAAA;MAAcnB;MAAcT;MAAYC;QACzC,gBAAAuB,OAAA,cAACK,kBAAAA;MACCP,IAAIrB,OAAOqB;MACXlB;MACA0B,cAAc7B,OAAOa,QAAQC,QAAQI;MACrCP;MACAmB,YAAYC,iCAAiChC,IAAAA;MAC7CiC,WAAW/B,SAASC;MACpBwB,SAAAA;;;;;AAIR;AAEA,IAAA,0BAAe5B;",
6
- "names": ["React", "useMemo", "createDocAccessor", "getSpace", "useIdentity", "createDataExtensions", "listener", "stackItemContentEditorClassNames", "StackItem", "Rx", "React", "useMemo", "fullyQualifiedId", "ElevationProvider", "useTranslation", "MenuProvider", "ToolbarMenu", "createGapSeparator", "rxFromSignal", "useMenuActions", "ScriptToolbar", "script", "role", "state", "classNames", "t", "useTranslation", "meta", "id", "options", "useDeployDeps", "menu", "useMemo", "createToolbarActions", "actions", "useMenuActions", "ElevationProvider", "elevation", "MenuProvider", "attendableId", "fullyQualifiedId", "ToolbarMenu", "Rx", "make", "get", "rxFromSignal", "templateSelect", "createTemplateSelect", "format", "createFormat", "gap", "createGapSeparator", "deploy", "createDeploy", "nodes", "edges", "ScriptContainer", "role", "script", "settings", "editorInputMode", "env", "identity", "useIdentity", "space", "getSpace", "state", "useToolbarState", "useDeployState", "extensions", "useMemo", "source", "target", "listener", "onChange", "text", "content", "changed", "createDataExtensions", "id", "createDocAccessor", "React", "StackItem", "Content", "toolbar", "ScriptToolbar", "TypescriptEditor", "initialValue", "classNames", "stackItemContentEditorClassNames", "inputMode"]
7
- }
@@ -1,65 +0,0 @@
1
- import {
2
- meta
3
- } from "./chunk-EZVXV6DA.mjs";
4
-
5
- // src/capabilities/app-graph-builder.ts
6
- import { Rx } from "@effect-rx/rx-react";
7
- import * as Function from "effect/Function";
8
- import * as Option from "effect/Option";
9
- import { Capabilities, contributes } from "@dxos/app-framework";
10
- import { Obj } from "@dxos/echo";
11
- import { ScriptType } from "@dxos/functions";
12
- import { ATTENDABLE_PATH_SEPARATOR, PLANK_COMPANION_TYPE } from "@dxos/plugin-deck/types";
13
- import { createExtension } from "@dxos/plugin-graph";
14
- var app_graph_builder_default = ((context) => contributes(Capabilities.AppGraphBuilder, [
15
- createExtension({
16
- id: `${meta.id}/execute`,
17
- connector: (node) => Rx.make((get) => Function.pipe(get(node), Option.flatMap((node2) => Obj.instanceOf(ScriptType, node2.data) ? Option.some(node2) : Option.none()), Option.map((node2) => [
18
- {
19
- id: [
20
- node2.id,
21
- "execute"
22
- ].join(ATTENDABLE_PATH_SEPARATOR),
23
- type: PLANK_COMPANION_TYPE,
24
- data: "execute",
25
- properties: {
26
- label: [
27
- "script test label",
28
- {
29
- ns: meta.id
30
- }
31
- ],
32
- icon: "ph--terminal--regular",
33
- disposition: "hidden"
34
- }
35
- }
36
- ]), Option.getOrElse(() => [])))
37
- }),
38
- createExtension({
39
- id: `${meta.id}/logs`,
40
- connector: (node) => Rx.make((get) => Function.pipe(get(node), Option.flatMap((node2) => Obj.instanceOf(ScriptType, node2.data) ? Option.some(node2) : Option.none()), Option.map((node2) => [
41
- {
42
- id: [
43
- node2.id,
44
- "logs"
45
- ].join(ATTENDABLE_PATH_SEPARATOR),
46
- type: PLANK_COMPANION_TYPE,
47
- data: "logs",
48
- properties: {
49
- label: [
50
- "script logs label",
51
- {
52
- ns: meta.id
53
- }
54
- ],
55
- icon: "ph--clock-countdown--regular",
56
- disposition: "hidden"
57
- }
58
- }
59
- ]), Option.getOrElse(() => [])))
60
- })
61
- ]));
62
- export {
63
- app_graph_builder_default as default
64
- };
65
- //# sourceMappingURL=app-graph-builder-DPYULSME.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/app-graph-builder.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Rx } from '@effect-rx/rx-react';\nimport * as Function from 'effect/Function';\nimport * as Option from 'effect/Option';\n\nimport { Capabilities, type PluginContext, contributes } from '@dxos/app-framework';\nimport { Obj } from '@dxos/echo';\nimport { ScriptType } from '@dxos/functions';\nimport { ATTENDABLE_PATH_SEPARATOR, PLANK_COMPANION_TYPE } from '@dxos/plugin-deck/types';\nimport { createExtension } from '@dxos/plugin-graph';\n\nimport { meta } from '../meta';\n\nexport default (context: PluginContext) =>\n contributes(Capabilities.AppGraphBuilder, [\n createExtension({\n id: `${meta.id}/execute`,\n connector: (node) =>\n Rx.make((get) =>\n Function.pipe(\n get(node),\n Option.flatMap((node) => (Obj.instanceOf(ScriptType, node.data) ? Option.some(node) : Option.none())),\n Option.map((node) => [\n {\n id: [node.id, 'execute'].join(ATTENDABLE_PATH_SEPARATOR),\n type: PLANK_COMPANION_TYPE,\n data: 'execute',\n properties: {\n label: ['script test label', { ns: meta.id }],\n icon: 'ph--terminal--regular',\n disposition: 'hidden',\n },\n },\n ]),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n createExtension({\n id: `${meta.id}/logs`,\n connector: (node) =>\n Rx.make((get) =>\n Function.pipe(\n get(node),\n Option.flatMap((node) => (Obj.instanceOf(ScriptType, node.data) ? Option.some(node) : Option.none())),\n Option.map((node) => [\n {\n id: [node.id, 'logs'].join(ATTENDABLE_PATH_SEPARATOR),\n type: PLANK_COMPANION_TYPE,\n data: 'logs',\n properties: {\n label: ['script logs label', { ns: meta.id }],\n icon: 'ph--clock-countdown--regular',\n disposition: 'hidden',\n },\n },\n ]),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n ]);\n"],
5
- "mappings": ";;;;;AAIA,SAASA,UAAU;AACnB,YAAYC,cAAc;AAC1B,YAAYC,YAAY;AAExB,SAASC,cAAkCC,mBAAmB;AAC9D,SAASC,WAAW;AACpB,SAASC,kBAAkB;AAC3B,SAASC,2BAA2BC,4BAA4B;AAChE,SAASC,uBAAuB;AAIhC,IAAA,6BAAe,CAACC,YACdC,YAAYC,aAAaC,iBAAiB;EACxCC,gBAAgB;IACdC,IAAI,GAAGC,KAAKD,EAAE;IACdE,WAAW,CAACC,SACVC,GAAGC,KAAK,CAACC,QACEC,cACPD,IAAIH,IAAAA,GACGK,eAAQ,CAACL,UAAUM,IAAIC,WAAWC,YAAYR,MAAKS,IAAI,IAAWC,YAAKV,KAAAA,IAAeW,YAAI,CAAA,GAC1FC,WAAI,CAACZ,UAAS;MACnB;QACEH,IAAI;UAACG,MAAKH;UAAI;UAAWgB,KAAKC,yBAAAA;QAC9BC,MAAMC;QACNP,MAAM;QACNQ,YAAY;UACVC,OAAO;YAAC;YAAqB;cAAEC,IAAIrB,KAAKD;YAAG;;UAC3CuB,MAAM;UACNC,aAAa;QACf;MACF;KACD,GACMC,iBAAU,MAAM,CAAA,CAAE,CAAA,CAAA;EAGjC,CAAA;EACA1B,gBAAgB;IACdC,IAAI,GAAGC,KAAKD,EAAE;IACdE,WAAW,CAACC,SACVC,GAAGC,KAAK,CAACC,QACEC,cACPD,IAAIH,IAAAA,GACGK,eAAQ,CAACL,UAAUM,IAAIC,WAAWC,YAAYR,MAAKS,IAAI,IAAWC,YAAKV,KAAAA,IAAeW,YAAI,CAAA,GAC1FC,WAAI,CAACZ,UAAS;MACnB;QACEH,IAAI;UAACG,MAAKH;UAAI;UAAQgB,KAAKC,yBAAAA;QAC3BC,MAAMC;QACNP,MAAM;QACNQ,YAAY;UACVC,OAAO;YAAC;YAAqB;cAAEC,IAAIrB,KAAKD;YAAG;;UAC3CuB,MAAM;UACNC,aAAa;QACf;MACF;KACD,GACMC,iBAAU,MAAM,CAAA,CAAE,CAAA,CAAA;EAGjC,CAAA;CACD;",
6
- "names": ["Rx", "Function", "Option", "Capabilities", "contributes", "Obj", "ScriptType", "ATTENDABLE_PATH_SEPARATOR", "PLANK_COMPANION_TYPE", "createExtension", "context", "contributes", "Capabilities", "AppGraphBuilder", "createExtension", "id", "meta", "connector", "node", "Rx", "make", "get", "pipe", "flatMap", "Obj", "instanceOf", "ScriptType", "data", "some", "none", "map", "join", "ATTENDABLE_PATH_SEPARATOR", "type", "PLANK_COMPANION_TYPE", "properties", "label", "ns", "icon", "disposition", "getOrElse"]
7
- }