@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
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/components/index.ts", "../../../../src/components/FramePanel/FramePanel.tsx", "../../../../src/components/NotebookStack/NotebookMenu.tsx", "../../../../src/components/NotebookStack/NotebookStack.tsx", "../../../../src/components/NotebookStack/NotebookCell.tsx", "../../../../src/components/TypescriptEditor/TypescriptEditor.tsx", "../../../../src/components/QueryEditor/QueryEditor.tsx", "../../../../src/components/ScriptToolbar/ScriptToolbar.tsx", "../../../../src/components/TestPanel/TestPanel.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ComponentType, lazy } from 'react';\n\nexport * from './FramePanel';\nexport * from './NotebookStack';\nexport * from './QueryEditor';\nexport * from './ScriptToolbar';\nexport * from './TestPanel';\nexport * from './TypescriptEditor';\n\nexport const ScriptPluginSettings: ComponentType<any> = lazy(() => import('./ScriptPluginSettings'));\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useEffect, useRef } from 'react';\n\nimport { clientServiceBundle } from '@dxos/client-protocol';\nimport { type BundleResult } from '@dxos/functions-runtime/bundler';\nimport { invariant } from '@dxos/invariant';\nimport { log } from '@dxos/log';\nimport { useClient } from '@dxos/react-client';\nimport { createProtoRpcPeer } from '@dxos/rpc';\nimport { createIFramePort } from '@dxos/rpc-tunnel';\nimport { mx } from '@dxos/ui-theme';\n\nexport type FramePanelProps = {\n containerUrl: string;\n result: BundleResult;\n debug?: boolean;\n};\n\n/**\n * IFrame container for the compiled script.\n */\nexport const FramePanel = ({ containerUrl, result, debug = true }: FramePanelProps) => {\n const client = useClient();\n const iframeRef = useRef<HTMLIFrameElement>(null);\n useEffect(() => {\n if (iframeRef.current) {\n // Connect iframe to client.\n const rpc = createProtoRpcPeer({\n exposed: clientServiceBundle,\n handlers: (client as any)._services.services, // TODO(burdon): Remove cast?\n port: createIFramePort({\n channel: 'frame',\n iframe: iframeRef.current,\n origin: '*',\n }),\n });\n\n rpc.open().catch((e) => log.catch(e));\n return () => {\n rpc.close().catch((e) => log.catch(e));\n };\n }\n }, [iframeRef]);\n\n // Encodes compiled code via URL.\n invariant(result.sourceHash, 'Source hash is required.');\n const sourceHash = Buffer.from(result.sourceHash).toString('hex');\n const src =\n 'bundle' in result\n ? `${containerUrl}?ts=${sourceHash}#code=${encodeURIComponent(new TextDecoder().decode(Object.values(result.bundle as any)[0] as Uint8Array))}`\n : undefined;\n\n return (\n <>\n <iframe ref={iframeRef} sandbox='allow-scripts' src={src} style={{ width: '100%', height: '100%' }} />\n\n {debug && (\n <div className='relative'>\n <div\n className={mx(\n 'flex absolute right-2 bottom-2 w-[30rem] h-[200px] bg-base-surface ring rounded-sm',\n 'z-20 overflow-x-hidden overflow-y-auto',\n )}\n >\n <pre className='text-xs whitespace-break-spaces break-all p-2'>\n {JSON.stringify(\n {\n timestamp: result.timestamp,\n sourceHash,\n error: 'error' in result ? result.error : undefined,\n src,\n },\n undefined,\n 2,\n )}\n </pre>\n </div>\n </div>\n )}\n </>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { DropdownMenu, useTranslation } from '@dxos/react-ui';\n\nimport { meta } from '#meta';\nimport { type Notebook } from '#types';\n\nexport type NotebookMenuProps = {\n cell?: Notebook.Cell;\n onCellInsert?: (type: Notebook.CellType, after: string | undefined) => void;\n onCellDelete?: (id: string) => void;\n};\n\n// TODO(burdon): Better way to organize menu?\nexport const NotebookMenu = ({ cell, onCellInsert, onCellDelete }: NotebookMenuProps) => {\n const { t } = useTranslation(meta.id);\n return (\n <DropdownMenu.Portal>\n <DropdownMenu.Content>\n <DropdownMenu.Viewport>\n <DropdownMenu.Item onClick={() => onCellInsert?.('script', cell?.id)}>\n {t('notebook-cell-insert-script.label')}\n </DropdownMenu.Item>\n <DropdownMenu.Item onClick={() => onCellInsert?.('prompt', cell?.id)}>\n {t('notebook-cell-insert-prompt.label')}\n </DropdownMenu.Item>\n <DropdownMenu.Item onClick={() => onCellInsert?.('query', cell?.id)}>\n {t('notebook-cell-insert-query.label')}\n </DropdownMenu.Item>\n <DropdownMenu.Item onClick={() => onCellInsert?.('markdown', cell?.id)}>\n {t('notebook-cell-insert-markdown.label')}\n </DropdownMenu.Item>\n {cell && onCellDelete && (\n <DropdownMenu.Item onClick={() => onCellDelete?.(cell.id)}>\n {t('notebook-cell-delete.label')}\n </DropdownMenu.Item>\n )}\n </DropdownMenu.Viewport>\n <DropdownMenu.Arrow />\n </DropdownMenu.Content>\n </DropdownMenu.Portal>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { DropdownMenu, IconButton, type ThemedClassName, useTranslation } from '@dxos/react-ui';\nimport { composable, composableProps } from '@dxos/react-ui';\nimport { Stack, StackItem, type StackProps } from '@dxos/react-ui-stack';\n\nimport { meta } from '#meta';\nimport { type Notebook } from '#types';\n\nimport { type TypescriptEditorProps } from '../TypescriptEditor';\nimport { NotebookCell, type NotebookCellProps } from './NotebookCell';\nimport { NotebookMenu } from './NotebookMenu';\n\nconst minSectionHeight = 'min-h-[16rem]';\n\nexport type NotebookStackProps = ThemedClassName<\n {\n notebook?: Notebook.Notebook;\n onRearrange?: StackProps['onRearrange'];\n } & (Pick<NotebookSectionProps, 'db' | 'graph' | 'promptResults' | 'onCellInsert' | 'onCellDelete'> &\n Pick<TypescriptEditorProps, 'env'>)\n>;\n\n// TODO(burdon): Option for narrow rail (with compact buttons that align with first button in toolbar).\nexport const NotebookStack = composable<HTMLDivElement, NotebookStackProps>(\n ({ notebook, onRearrange, db, graph, promptResults, onCellInsert, onCellDelete, env, ...props }, forwardedRef) => {\n const sectionProps = { db, graph, promptResults, onCellInsert, onCellDelete, env };\n return (\n <Stack\n {...composableProps(props)}\n orientation='vertical'\n size='contain'\n rail\n onRearrange={onRearrange}\n ref={forwardedRef}\n >\n {notebook?.cells.map((cell, i) => (\n <NotebookSection key={i} cell={cell} {...sectionProps} />\n ))}\n </Stack>\n );\n },\n);\n\ntype NotebookSectionProps = NotebookCellProps;\n\nconst NotebookSection = ({\n cell,\n db,\n env,\n promptResults,\n onCellInsert,\n onCellDelete,\n ...props\n}: NotebookSectionProps) => {\n const { t } = useTranslation(meta.id);\n const resizable = cell.type === 'query';\n\n return (\n <StackItem.Root role='section' item={cell} draggable classNames={resizable && minSectionHeight}>\n <StackItem.Heading classNames='h-full p-1 justify-between dx-attention-surface'>\n <StackItem.DragHandle asChild>\n <IconButton variant='ghost' icon='ph--dots-six-vertical--regular' iconOnly label='Drag handle' />\n </StackItem.DragHandle>\n <DropdownMenu.Root>\n <DropdownMenu.Trigger asChild>\n <IconButton\n variant='ghost'\n icon='ph--dots-three--regular'\n iconOnly\n label={t('notebook-cell-insert.label')}\n />\n </DropdownMenu.Trigger>\n <NotebookMenu cell={cell} onCellInsert={onCellInsert} onCellDelete={onCellDelete} />\n </DropdownMenu.Root>\n {resizable && <StackItem.ResizeHandle />}\n </StackItem.Heading>\n\n {/* TODO(burdon): Move drag preview to outer stack (uniformly). */}\n <StackItem.DragPreview>\n {({ item: cell }) => (\n <StackItem.Content classNames='overflow-visible bg-group-surface border border-subdued-separator'>\n <NotebookCell db={db} cell={cell} env={env} dragging />\n </StackItem.Content>\n )}\n </StackItem.DragPreview>\n\n <StackItem.Content classNames='overflow-visible'>\n <NotebookCell db={db} cell={cell} env={env} promptResults={promptResults} {...props} />\n </StackItem.Content>\n </StackItem.Root>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback, useMemo } from 'react';\n\nimport { Surface } from '@dxos/app-framework/ui';\nimport { AppSurface } from '@dxos/app-toolkit/ui';\nimport { type Database, Obj } from '@dxos/echo';\nimport { createDocAccessor } from '@dxos/echo-db';\nimport { invariant } from '@dxos/invariant';\nimport { TemplateEditor } from '@dxos/plugin-assistant/components';\nimport { useThemeContext, useTranslation } from '@dxos/react-ui';\nimport { QueryEditor, type QueryEditorProps } from '@dxos/react-ui-components';\nimport { Editor, type EditorViewProps } from '@dxos/react-ui-editor';\nimport {\n type BasicExtensionsOptions,\n createBasicExtensions,\n createDataExtensions,\n createMarkdownExtensions,\n createThemeExtensions,\n decorateMarkdown,\n} from '@dxos/ui-editor';\nimport { mx } from '@dxos/ui-theme';\nimport { isNonNullable } from '@dxos/util';\n\nimport { meta } from '#meta';\nimport { type Notebook } from '#types';\n\nimport { type ComputeGraph } from '../../notebook';\nimport { TypescriptEditor, type TypescriptEditorProps } from '../TypescriptEditor';\nimport { type NotebookMenuProps } from './NotebookMenu';\n\nconst editorStyles = 'p-2 ps-3';\nconst valueStyles = 'p-1 ps-3';\n\nexport type NotebookCellProps = {\n db?: Database.Database;\n graph?: ComputeGraph;\n dragging?: boolean;\n cell: Notebook.Cell;\n promptResults?: Record<string, string>;\n} & (Pick<NotebookMenuProps, 'onCellInsert' | 'onCellDelete'> & Pick<TypescriptEditorProps, 'env'>);\n\n// TODO(burdon): Show evaluation errors.\nexport const NotebookCell = ({ db, graph, dragging, cell, promptResults, env }: NotebookCellProps) => {\n const { t } = useTranslation(meta.id);\n\n const extensions = useMemo(() => {\n return cell.source?.target\n ? [\n createDataExtensions({\n id: cell.id,\n text: createDocAccessor(cell.source.target, ['content']),\n }),\n ].filter(isNonNullable)\n : [];\n }, [cell.source?.target]);\n\n const explorerGraph = cell.graph?.target;\n\n const handleQueryChange = useCallback<NonNullable<QueryEditorProps['onChange']>>(\n (value: string) => {\n invariant(cell.source?.target);\n Obj.update(cell.source.target, (obj) => {\n obj.content = value;\n });\n },\n [cell],\n );\n\n switch (cell.type) {\n case 'markdown':\n if (!cell.source?.target) {\n return null;\n }\n\n return (\n <NotebookTextEditor\n id={cell.id}\n classNames={editorStyles}\n initialValue={cell.source.target.content}\n extensions={extensions}\n />\n );\n\n case 'script':\n if (!cell.source?.target) {\n return null;\n }\n\n return (\n <>\n <TypescriptEditor\n id={cell.id}\n role='section'\n classNames={editorStyles}\n initialValue={cell.source.target.content}\n extensions={extensions}\n env={env}\n options={{\n placeholder: t('notebook-cell.placeholder'),\n highlightActiveLine: false,\n lineNumbers: false,\n }}\n />\n <NotebookCellValue cell={cell} graph={graph} />\n </>\n );\n\n case 'query':\n if (!cell.source?.target) {\n return null;\n }\n\n // TODO(burdon): Remove app-framework deps (via render prop).\n return (\n <div className={mx('h-full overflow-hidden grid', explorerGraph && !dragging && 'grid-rows-[min-content_1fr]')}>\n <QueryEditor\n id={cell.id}\n classNames={[editorStyles, 'border-b border-subdued-separator']}\n db={db}\n value={cell.source.target.content}\n onChange={handleQueryChange}\n />\n {explorerGraph && !dragging && (\n <Surface.Surface\n type={AppSurface.Section}\n limit={1}\n data={{ subject: explorerGraph, attendableId: cell.id }}\n />\n )}\n </div>\n );\n\n // TODO(burdon): Use streaming response from Chat.\n case 'prompt':\n if (!cell.prompt?.target) {\n return null;\n }\n\n return (\n <>\n <TemplateEditor\n id={cell.id}\n template={cell.prompt.target.instructions}\n lineNumbers={false}\n classNames={editorStyles}\n />\n <NotebookPromptResult cell={cell} promptResults={promptResults} />\n </>\n );\n\n default:\n return null;\n }\n};\n\nconst NotebookCellValue = ({ cell, graph }: NotebookCellProps) => {\n const name = graph?.getExpressions()[cell.id]?.name;\n const value = graph?.getValue(cell.id);\n if (value == null) {\n return null;\n }\n\n return (\n <div\n className={mx(\n 'flex w-full bg-group-surface border-y border-subdued-separator text-description font-mono',\n valueStyles,\n )}\n >\n {name && (\n <>\n <span className='text-success-text'>{name}</span>\n <span className='text-description'>&nbsp;=&nbsp;</span>\n </>\n )}\n <span>{value}</span>\n </div>\n );\n};\n\nconst NotebookPromptResult = ({ cell, promptResults }: NotebookCellProps) => {\n if (!cell.prompt) {\n return null;\n }\n\n const value = promptResults?.[cell.prompt.uri];\n if (value == null) {\n return null;\n }\n\n return (\n <div className={mx('flex w-full bg-group-surface text-description border-y border-subdued-separator', valueStyles)}>\n <NotebookTextEditor readOnly value={value} />\n </div>\n );\n};\n\nconst NotebookTextEditor = ({\n extensions: extensionsProp,\n readOnly,\n ...props\n}: EditorViewProps & Pick<BasicExtensionsOptions, 'readOnly'>) => {\n const { t } = useTranslation(meta.id);\n const { themeMode } = useThemeContext();\n const extensions = useMemo(() => {\n return [\n createBasicExtensions({\n placeholder: t('notebook-markdown.placeholder'),\n readOnly,\n }),\n createThemeExtensions({ themeMode, syntaxHighlighting: true }),\n createMarkdownExtensions(),\n decorateMarkdown(),\n extensionsProp,\n ].filter(isNonNullable);\n }, [extensionsProp]);\n\n return (\n <Editor.Root>\n <Editor.View {...props} extensions={extensions} selectionEnd />\n </Editor.Root>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { autocompletion, completionKeymap } from '@codemirror/autocomplete';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { HighlightStyle } from '@codemirror/language';\nimport { lintKeymap } from '@codemirror/lint';\nimport { Prec } from '@codemirror/state';\nimport { keymap } from '@codemirror/view';\nimport { tags } from '@lezer/highlight';\nimport { composeRefs } from '@radix-ui/react-compose-refs';\nimport { type VirtualTypeScriptEnvironment } from '@typescript/vfs';\nimport { continueKeymap } from '@valtown/codemirror-continue';\nimport { type HoverInfo, tsAutocomplete, tsFacet, tsHover, tsLinter, tsSync } from '@valtown/codemirror-ts';\nimport React from 'react';\n\nimport { type ThemeMode, type ThemedClassName, useThemeContext } from '@dxos/react-ui';\nimport { composable, composableProps } from '@dxos/react-ui';\nimport { type UseTextEditorProps, useTextEditor } from '@dxos/react-ui-editor';\nimport { Domino } from '@dxos/ui';\nimport {\n type BasicExtensionsOptions,\n InputModeExtensions,\n createBasicExtensions,\n createThemeExtensions,\n defaultStyles,\n} from '@dxos/ui-editor';\nimport { type EditorInputMode } from '@dxos/ui-editor/types';\nimport { isNonNullable } from '@dxos/util';\n\nexport type TypescriptEditorProps = ThemedClassName<\n {\n id: string;\n role?: string;\n inputMode?: EditorInputMode;\n toolbar?: boolean;\n env?: VirtualTypeScriptEnvironment;\n options?: BasicExtensionsOptions;\n } & Pick<UseTextEditorProps, 'initialValue' | 'extensions' | 'scrollTo' | 'selection'>\n>;\n\nexport const TypescriptEditor = composable<HTMLDivElement, TypescriptEditorProps>(\n (\n {\n classNames,\n id,\n role = 'article',\n inputMode = 'vscode',\n env,\n options,\n initialValue,\n extensions,\n scrollTo,\n selection,\n ...props\n },\n forwardedRef,\n ) => {\n const { themeMode } = useThemeContext();\n const { parentRef, focusAttributes } = useTextEditor(\n () => ({\n id,\n initialValue,\n selection,\n scrollTo,\n extensions: [\n extensions,\n createBasicExtensions({\n highlightActiveLine: true,\n indentWithTab: true,\n lineNumbers: true,\n lineWrapping: false,\n scrollPastEnd: role !== 'section',\n search: true,\n ...options,\n }),\n createThemeExtensions({\n monospace: true,\n themeMode,\n syntaxHighlighting: true,\n }),\n\n InputModeExtensions[inputMode],\n javascript({ typescript: true }),\n autocompletion({ override: env ? [tsAutocomplete()] : undefined }),\n\n // Continues block comments when pressing Enter.\n Prec.high(keymap.of(continueKeymap)),\n keymap.of(completionKeymap),\n keymap.of(lintKeymap),\n\n // https://github.com/val-town/codemirror-ts\n env && [\n // TODO(burdon): Fix type.\n tsFacet.of({ env: env as any, path: `./src/${id}.ts` }),\n tsSync(),\n tsLinter(),\n tsHover({ renderTooltip: createTooltipRenderer(themeMode) }),\n ],\n ].filter(isNonNullable),\n }),\n [themeMode, id, extensions, inputMode, selection, scrollTo, env],\n );\n\n return (\n <div {...composableProps(props, { classNames, ...focusAttributes })} ref={composeRefs(parentRef, forwardedRef)} />\n );\n },\n);\n\n// TODO(burdon): Factor out (react-ui-editor).\nconst createTooltipRenderer = (themeMode: ThemeMode) => {\n const theme = HighlightStyle.define(themeMode === 'dark' ? defaultStyles.dark : defaultStyles.light);\n\n const classFromKind = (_kind: string) => {\n // E.g., localName, methodName, parameterName, etc.\n const kind = _kind.endsWith('Name') ? 'name' : _kind;\n const validTag = kind in tags;\n if (!validTag) {\n return '';\n }\n\n const tag = tags[kind as keyof typeof tags];\n if (typeof tag === 'function') {\n return '';\n }\n\n return theme.style([tag]) ?? '';\n };\n\n return (info: HoverInfo) => {\n const children =\n info.quickInfo?.displayParts?.map(({ kind, text }) =>\n Domino.of('span').classNames(classFromKind(kind)).text(text),\n ) ?? [];\n return {\n dom: Domino.of('div')\n .classNames('xs:max-w-80 max-w-lg p-1 bg-base-surface rounded-sm border border-separator')\n .append(...children).root,\n };\n };\n};\n\nexport default TypescriptEditor;\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useState } from 'react';\nimport { ModuleResolutionKind, ScriptTarget } from 'typescript';\n\nimport queryApi from '@dxos/echo-query/api.d.ts?raw';\nimport { useAsyncEffect } from '@dxos/react-ui';\n\nimport { Compiler } from '../../compiler';\nimport { TypescriptEditor, type TypescriptEditorProps } from '../TypescriptEditor';\n\nconst GLOBALS = `\n namespace QueryAPI {\n ${queryApi}\n }\n\n declare global {\n const Query: typeof QueryAPI.Query;\n const Filter: typeof QueryAPI.Filter;\n const Order: typeof QueryAPI.Order;\n }\n\n export {};\n`;\n\nexport type QueryEditorProps = Omit<TypescriptEditorProps, 'env'>;\n\nexport const QueryEditor = (props: QueryEditorProps) => {\n const [compiler, setCompiler] = useState<Compiler>();\n\n useAsyncEffect(async () => {\n const compiler = new Compiler({\n lib: ['ES5'],\n target: ScriptTarget.ES2022,\n // Avoid `@typescript/vfs`'s deprecated `node10` default (rejected by TS 6).\n moduleResolution: ModuleResolutionKind.Bundler,\n });\n await compiler.initialize(GLOBALS);\n setCompiler(compiler);\n }, []);\n\n if (!compiler) {\n return null;\n }\n\n return <TypescriptEditor {...props} env={compiler.environment} />;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Atom } from '@effect-atom/atom-react';\nimport React, { useMemo } from 'react';\n\nimport { type Script } from '@dxos/compute';\nimport { ElevationProvider, useTranslation } from '@dxos/react-ui';\nimport { composable, composableProps } from '@dxos/react-ui';\nimport { type ActionGraphProps, Menu, MenuRootProps, createGapSeparator, useMenuActions } from '@dxos/react-ui-menu';\n\nimport {\n type CreateDeployOptions,\n type ScriptToolbarStateStore,\n createDeploy,\n createFormat,\n createTemplateSelect,\n useDeployDeps,\n} from '#hooks';\nimport { meta } from '#meta';\n\nexport type ScriptToolbarProps = Pick<MenuRootProps, 'attendableId'> & {\n script: Script.Script;\n state: ScriptToolbarStateStore;\n};\n\nexport const ScriptToolbar = composable<HTMLDivElement, ScriptToolbarProps>(\n ({ script, attendableId, role, state, ...props }, forwardedRef) => {\n const { t } = useTranslation(meta.id);\n const options = useDeployDeps({ script });\n const menuCreator = useMemo(\n () => createToolbarActions({ state, script, t, ...options }),\n [state, script, options, t],\n );\n const menuActions = useMenuActions(menuCreator);\n\n return (\n <ElevationProvider elevation={role === 'section' ? 'positioned' : 'base'}>\n <Menu.Root {...menuActions} attendableId={attendableId}>\n <Menu.Toolbar {...composableProps(props)} ref={forwardedRef} />\n </Menu.Root>\n </ElevationProvider>\n );\n },\n);\n\nconst createToolbarActions = ({ state, script, ...options }: CreateDeployOptions): Atom.Atom<ActionGraphProps> =>\n Atom.make((get) => {\n // Subscribe to state changes.\n get(state.atom);\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// Copyright 2024 DXOS.org\n//\n\nimport React, { forwardRef, useRef, useState } from 'react';\n\nimport { log } from '@dxos/log';\nimport { Avatar, Icon, Input, ScrollArea, type ThemedClassName, Toolbar, useTranslation } from '@dxos/react-ui';\nimport { composable, composableProps } from '@dxos/react-ui';\nimport { JsonHighlighter } from '@dxos/react-ui-syntax-highlighter';\nimport { mx } from '@dxos/ui-theme';\n\nimport { meta } from '#meta';\n\ntype State = 'pending';\n\n/**\n * Request or response.\n */\ntype Message = {\n type: 'request' | 'response';\n text?: string;\n data?: any;\n error?: Error;\n};\n\nexport type TestPanelProps = ThemedClassName<{\n onInvoke?: (input: unknown) => Promise<unknown>;\n}>;\n\n// TODO(burdon): Need persistent history (currently lost when switching tabs).\nexport const TestPanel = composable<HTMLDivElement, TestPanelProps>(\n ({ classNames, onInvoke, ...props }, forwardedRef) => {\n const { t } = useTranslation(meta.id);\n\n const inputRef = useRef<HTMLInputElement>(null);\n const [input, setInput] = useState('');\n const [state, setState] = useState<State | null>(null);\n\n // TODO(burdon): Persistent history (thread).\n const [history, setHistory] = useState<Message[]>([]);\n\n const scrollerRef = useRef<HTMLDivElement>(null);\n const handleScroll = () => {\n if (scrollerRef.current) {\n scrollerRef.current.scrollTop = scrollerRef.current.scrollHeight;\n }\n };\n\n const handleClear = () => {\n setInput('');\n setHistory([]);\n inputRef.current?.focus();\n };\n\n const handleResponse = ({\n text,\n data,\n error,\n }: {\n text?: string;\n data?: any;\n error?: Error;\n } = {}) => {\n setHistory((history) => [...history, { type: 'response', text, data, error } satisfies Message]);\n setState(null);\n handleScroll();\n };\n\n const handleRequest = async (input: string) => {\n if (!onInvoke) {\n handleResponse({ error: new Error('Function not deployed') });\n return;\n }\n\n let data: unknown = input;\n let displayText = input;\n if (input.charAt(0) === '{') {\n try {\n const validJsonString = input.replace(/'/g, '\"').replace(/([{,]\\s*)([a-zA-Z0-9_]+)(\\s*:)/g, '$1\"$2\"$3');\n data = JSON.parse(validJsonString);\n displayText = JSON.stringify(data, null, 2);\n } catch (err) {\n handleResponse({ error: new Error('Invalid JSON input') });\n return;\n }\n }\n\n try {\n setState('pending');\n setInput('');\n setHistory((history) => [...history, { type: 'request', text: displayText }]);\n setTimeout(handleScroll);\n\n const result = await onInvoke(data);\n\n if (typeof result === 'string') {\n handleResponse({ text: result });\n } else {\n handleResponse({ data: result });\n }\n } catch (err: any) {\n const error = err instanceof Error ? err : new Error(String(err));\n handleResponse({ error });\n log.catch(err);\n }\n };\n\n return (\n <div\n {...composableProps(props, { classNames: ['flex flex-col h-full overflow-hidden', classNames] })}\n ref={forwardedRef}\n >\n {/* TODO(burdon): Replace with Thread. */}\n <MessageThread ref={scrollerRef} state={state} history={history} />\n {/* TODO(burdon): Replace with Form based on the function's input schema. */}\n <Toolbar.Root>\n <Input.Root>\n <Input.TextInput\n ref={inputRef}\n autoFocus\n placeholder={t('function-request.placeholder')}\n value={input}\n onChange={(ev) => setInput(ev.target.value)}\n onKeyDown={(ev) => ev.key === 'Enter' && handleRequest(input)}\n />\n </Input.Root>\n <Toolbar.IconButton icon='ph--play--regular' label='Execute' iconOnly onClick={() => handleRequest(input)} />\n <Toolbar.IconButton icon='ph--trash--regular' label='Clear' iconOnly onClick={handleClear} />\n </Toolbar.Root>\n </div>\n );\n },\n);\n\n// TODO(burdon): Replace with thread?\n// TODO(burdon): Button to edit/re-run question.\ntype MessageThreadProps = {\n state: State | null;\n history: Message[];\n};\n\nconst MessageThread = forwardRef<HTMLDivElement, MessageThreadProps>(\n ({ state, history }: MessageThreadProps, forwardedRef) => {\n return (\n <ScrollArea.Root orientation='vertical' classNames='h-full' ref={forwardedRef}>\n <ScrollArea.Viewport classNames='gap-6 p-2'>\n {history.map((message, i) => (\n <div key={i} className='grid grid-cols-[2rem_1fr_2rem]'>\n <div className='p-1'>{message.type === 'response' && <RobotAvatar />}</div>\n <div className='overflow-auto'>\n <MessageItem message={message} />\n </div>\n </div>\n ))}\n\n {state === 'pending' && (\n <div className='grid grid-cols-[2rem_1fr_2rem]'>\n <div className='p-1'>\n <Icon icon='ph--spinner--regular' size={6} classNames='animate-spin' />\n </div>\n </div>\n )}\n </ScrollArea.Viewport>\n </ScrollArea.Root>\n );\n },\n);\n\nconst MessageItem = ({ classNames, message }: ThemedClassName<{ message: Message }>) => {\n const { type, text, data, error } = message;\n const wrapper = 'p-1 px-2 rounded-md bg-hover-surface overflow-auto';\n return (\n <div className={mx('flex', type === 'request' ? 'ml-[1rem] justify-end' : 'mr-[1rem]', classNames)}>\n {error && <div className={mx(wrapper, 'whitespace-pre text-error-text')}>{String(error)}</div>}\n\n {text !== undefined && (\n <div className={mx(wrapper, type === 'request' && 'bg-primary-500 dark:bg-primary-600')}>\n {text || '\\u00D8'}\n </div>\n )}\n\n {data && <JsonHighlighter data={data} classNames={mx(wrapper, 'text-xs')} />}\n </div>\n );\n};\n\nconst RobotAvatar = () => (\n <Avatar.Root>\n <Avatar.Content size={6} variant='circle' icon='ph--drone--regular' />\n </Avatar.Root>\n);\n"],
5
+ "mappings": "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",
6
+ "names": ["lazy", "React", "useEffect", "useRef", "clientServiceBundle", "invariant", "log", "useClient", "createProtoRpcPeer", "createIFramePort", "mx", "iframeRef", "current", "rpc", "handlers", "services", "port", "channel", "iframe", "origin", "open", "close", "catch", "e", "src", "result", "sourceHash", "encodeURIComponent", "TextDecoder", "values", "undefined", "ref", "style", "height", "debug", "className", "div", "pre", "timestamp", "error", "React", "DropdownMenu", "useTranslation", "meta", "NotebookMenu", "cell", "onCellInsert", "onCellDelete", "t", "id", "Portal", "Content", "Viewport", "Item", "onClick", "Arrow", "React", "DropdownMenu", "IconButton", "useTranslation", "composable", "composableProps", "Stack", "StackItem", "meta", "React", "useCallback", "useMemo", "Surface", "AppSurface", "Obj", "createDocAccessor", "invariant", "TemplateEditor", "useThemeContext", "useTranslation", "QueryEditor", "Editor", "createBasicExtensions", "createDataExtensions", "createMarkdownExtensions", "createThemeExtensions", "decorateMarkdown", "mx", "isNonNullable", "meta", "autocompletion", "completionKeymap", "javascript", "HighlightStyle", "lintKeymap", "Prec", "keymap", "tags", "composeRefs", "continueKeymap", "tsAutocomplete", "tsFacet", "tsHover", "tsLinter", "tsSync", "React", "useThemeContext", "composable", "composableProps", "useTextEditor", "Domino", "InputModeExtensions", "createBasicExtensions", "createThemeExtensions", "defaultStyles", "isNonNullable", "TypescriptEditor", "classNames", "id", "role", "inputMode", "env", "options", "initialValue", "extensions", "scrollTo", "selection", "props", "forwardedRef", "themeMode", "parentRef", "focusAttributes", "highlightActiveLine", "indentWithTab", "lineNumbers", "lineWrapping", "scrollPastEnd", "search", "monospace", "syntaxHighlighting", "typescript", "override", "undefined", "high", "of", "path", "renderTooltip", "createTooltipRenderer", "filter", "div", "ref", "theme", "define", "dark", "light", "classFromKind", "_kind", "kind", "endsWith", "validTag", "tag", "style", "info", "children", "quickInfo", "displayParts", "map", "text", "dom", "append", "root", "__dxlog_file", "editorStyles", "NotebookCell", "extensions", "useMemo", "cell", "target", "createDataExtensions", "createDocAccessor", "isNonNullable", "source", "explorerGraph", "invariant", "Obj", "obj", "content", "value", "initialValue", "React", "classNames", "env", "options", "highlightActiveLine", "lineNumbers", "graph", "QueryEditor", "id", "mx", "db", "onChange", "dragging", "type", "AppSurface", "limit", "data", "subject", "attendableId", "prompt", "instructions", "promptResults", "getValue", "name", "className", "span", "NotebookPromptResult", "NotebookTextEditor", "readOnly", "useThemeContext", "meta", "createBasicExtensions", "createThemeExtensions", "syntaxHighlighting", "createMarkdownExtensions", "decorateMarkdown", "extensionsProp", "filter", "selectionEnd", "minSectionHeight", "NotebookStack", "composable", "notebook", "onRearrange", "db", "graph", "promptResults", "onCellInsert", "onCellDelete", "env", "props", "forwardedRef", "sectionProps", "React", "Stack", "composableProps", "orientation", "size", "rail", "ref", "cells", "map", "cell", "i", "NotebookSection", "key", "t", "useTranslation", "meta", "id", "resizable", "type", "StackItem", "Root", "role", "item", "draggable", "classNames", "Heading", "DragHandle", "asChild", "IconButton", "variant", "icon", "iconOnly", "label", "DropdownMenu", "Trigger", "NotebookMenu", "ResizeHandle", "DragPreview", "Content", "NotebookCell", "dragging", "React", "useState", "ModuleResolutionKind", "ScriptTarget", "queryApi", "useAsyncEffect", "GLOBALS", "queryApi", "QueryEditor", "props", "compiler", "setCompiler", "useState", "useAsyncEffect", "Compiler", "lib", "target", "ScriptTarget", "ES2022", "moduleResolution", "ModuleResolutionKind", "Bundler", "initialize", "React", "TypescriptEditor", "env", "environment", "Atom", "React", "useMemo", "ElevationProvider", "useTranslation", "composable", "composableProps", "Menu", "createGapSeparator", "useMenuActions", "createDeploy", "createFormat", "createTemplateSelect", "useDeployDeps", "meta", "ScriptToolbar", "script", "attendableId", "role", "state", "props", "forwardedRef", "t", "id", "options", "menuCreator", "createToolbarActions", "menuActions", "elevation", "Root", "Toolbar", "ref", "make", "get", "atom", "templateSelect", "format", "gap", "deploy", "nodes", "edges", "React", "forwardRef", "useRef", "useState", "log", "Avatar", "Icon", "Input", "ScrollArea", "Toolbar", "useTranslation", "composable", "composableProps", "JsonHighlighter", "mx", "meta", "__dxlog_file", "inputRef", "input", "setInput", "setState", "history", "setHistory", "handleScroll", "current", "handleResponse", "text", "data", "error", "handleRequest", "charAt", "validJsonString", "displayText", "stringify", "err", "setTimeout", "result", "catch", "classNames", "ref", "scrollerRef", "state", "autoFocus", "placeholder", "value", "onChange", "ev", "onKeyDown", "icon", "iconOnly", "onClick", "MessageThread", "forwardedRef", "message", "i", "className", "MessageItem", "div", "wrapper", "String", "undefined", "type", "RobotAvatar", "ScriptPluginSettings", "lazy"]
7
+ }
@@ -0,0 +1,17 @@
1
+ import "../chunk-J5LGTIGS.mjs";
2
+
3
+ // src/containers/index.ts
4
+ import { lazy } from "react";
5
+ var DeploymentDialog = lazy(() => import("../DeploymentDialog-M3AFYQHC.mjs"));
6
+ var NotebookArticle = lazy(() => import("../NotebookArticle-NV4AHOOS.mjs"));
7
+ var ScriptArticle = lazy(() => import("../ScriptArticle-UBT27SB6.mjs"));
8
+ var ScriptProperties = lazy(() => import("../ScriptProperties-RLXNAN3N.mjs"));
9
+ var TestContainer = lazy(() => import("../TestContainer-AFVTBYSJ.mjs"));
10
+ export {
11
+ DeploymentDialog,
12
+ NotebookArticle,
13
+ ScriptArticle,
14
+ ScriptProperties,
15
+ TestContainer
16
+ };
17
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/containers/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type ComponentType, lazy } from 'react';\n\nexport const DeploymentDialog: ComponentType<any> = lazy(() => import('./DeploymentDialog'));\nexport const NotebookArticle: ComponentType<any> = lazy(() => import('./NotebookArticle'));\nexport const ScriptArticle: ComponentType<any> = lazy(() => import('./ScriptArticle'));\nexport const ScriptProperties: ComponentType<any> = lazy(() => import('./ScriptProperties'));\nexport const TestContainer: ComponentType<any> = lazy(() => import('./TestContainer'));\n"],
5
+ "mappings": ";;;AAIA,SAA6BA,YAAY;AAElC,IAAMC,mBAAuCD,KAAK,MAAM,OAAO,kCAAA,CAAA;AAC/D,IAAME,kBAAsCF,KAAK,MAAM,OAAO,iCAAA,CAAA;AAC9D,IAAMG,gBAAoCH,KAAK,MAAM,OAAO,+BAAA,CAAA;AAC5D,IAAMI,mBAAuCJ,KAAK,MAAM,OAAO,kCAAA,CAAA;AAC/D,IAAMK,gBAAoCL,KAAK,MAAM,OAAO,+BAAA,CAAA;",
6
+ "names": ["lazy", "DeploymentDialog", "NotebookArticle", "ScriptArticle", "ScriptProperties", "TestContainer"]
7
+ }
@@ -0,0 +1,46 @@
1
+ import {
2
+ Create
3
+ } from "./chunk-Y3O3YZSE.mjs";
4
+ import "./chunk-J5LGTIGS.mjs";
5
+
6
+ // src/blueprints/functions/create.ts
7
+ import * as Effect from "effect/Effect";
8
+ import { Script, Operation } from "@dxos/compute";
9
+ import { Database, Obj, Ref } from "@dxos/echo";
10
+ import { CollectionModel } from "@dxos/schema";
11
+ var create_default = Create.pipe(Operation.withHandler(Effect.fn(function* ({ name, source, templateId }) {
12
+ let scriptSource = source ?? "";
13
+ if (templateId) {
14
+ const template = yield* findTemplate(templateId);
15
+ if (template) {
16
+ scriptSource = template.source;
17
+ }
18
+ }
19
+ const script = Script.make({
20
+ name,
21
+ source: scriptSource
22
+ });
23
+ const { db } = yield* Database.Service;
24
+ db.add(script);
25
+ const fn2 = Obj.make(Operation.PersistentOperation, {
26
+ [Obj.Meta]: {
27
+ version: "0.0.0"
28
+ },
29
+ name,
30
+ source: Ref.make(script)
31
+ });
32
+ yield* CollectionModel.add({
33
+ object: fn2
34
+ });
35
+ return {
36
+ function: Obj.getURI(fn2)
37
+ };
38
+ })));
39
+ var findTemplate = (templateId) => Effect.promise(async () => {
40
+ const { templates } = await import("./templates/index.mjs");
41
+ return templates.find((template) => template.id === templateId);
42
+ });
43
+ export {
44
+ create_default as default
45
+ };
46
+ //# sourceMappingURL=create-32MZYUAA.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/blueprints/functions/create.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Script, Operation } from '@dxos/compute';\nimport { Database, Obj, Ref } from '@dxos/echo';\nimport { CollectionModel } from '@dxos/schema';\n\nimport { Create } from './definitions';\n\nexport default Create.pipe(\n Operation.withHandler(\n Effect.fn(function* ({ name, source, templateId }) {\n let scriptSource = source ?? '';\n\n if (templateId) {\n const template = yield* findTemplate(templateId);\n if (template) {\n scriptSource = template.source;\n }\n }\n\n const script = Script.make({ name, source: scriptSource });\n const { db } = yield* Database.Service;\n db.add(script);\n\n const fn = Obj.make(Operation.PersistentOperation, {\n [Obj.Meta]: { version: '0.0.0' },\n name,\n source: Ref.make(script),\n });\n yield* CollectionModel.add({ object: fn });\n\n return {\n function: Obj.getURI(fn),\n };\n }),\n ),\n);\n\nconst findTemplate = (templateId: string) =>\n Effect.promise(async () => {\n const { templates } = await import('../../templates');\n return templates.find((template) => template.id === templateId);\n });\n"],
5
+ "mappings": ";;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,QAAQC,iBAAiB;AAClC,SAASC,UAAUC,KAAKC,WAAW;AACnC,SAASC,uBAAuB;AAIhC,IAAA,iBAAeC,OAAOC,KACpBC,UAAUC,YACDC,UAAG,WAAW,EAAEC,MAAMC,QAAQC,WAAU,GAAE;AAC/C,MAAIC,eAAeF,UAAU;AAE7B,MAAIC,YAAY;AACd,UAAME,WAAW,OAAOC,aAAaH,UAAAA;AACrC,QAAIE,UAAU;AACZD,qBAAeC,SAASH;IAC1B;EACF;AAEA,QAAMK,SAASC,OAAOC,KAAK;IAAER;IAAMC,QAAQE;EAAa,CAAA;AACxD,QAAM,EAAEM,GAAE,IAAK,OAAOC,SAASC;AAC/BF,KAAGG,IAAIN,MAAAA;AAEP,QAAMP,MAAKc,IAAIL,KAAKX,UAAUiB,qBAAqB;IACjD,CAACD,IAAIE,IAAI,GAAG;MAAEC,SAAS;IAAQ;IAC/BhB;IACAC,QAAQgB,IAAIT,KAAKF,MAAAA;EACnB,CAAA;AACA,SAAOY,gBAAgBN,IAAI;IAAEO,QAAQpB;EAAG,CAAA;AAExC,SAAO;IACLqB,UAAUP,IAAIQ,OAAOtB,GAAAA;EACvB;AACF,CAAA,CAAA,CAAA;AAIJ,IAAMM,eAAe,CAACH,eACboB,eAAQ,YAAA;AACb,QAAM,EAAEC,UAAS,IAAK,MAAM,OAAO,uBAAA;AACnC,SAAOA,UAAUC,KAAK,CAACpB,aAAaA,SAASqB,OAAOvB,UAAAA;AACtD,CAAA;",
6
+ "names": ["Effect", "Script", "Operation", "Database", "Obj", "Ref", "CollectionModel", "Create", "pipe", "Operation", "withHandler", "fn", "name", "source", "templateId", "scriptSource", "template", "findTemplate", "script", "Script", "make", "db", "Database", "Service", "add", "Obj", "PersistentOperation", "Meta", "version", "Ref", "CollectionModel", "object", "function", "getURI", "promise", "templates", "find", "id"]
7
+ }
@@ -0,0 +1,45 @@
1
+ import "./chunk-J5LGTIGS.mjs";
2
+
3
+ // src/capabilities/create-object.ts
4
+ import * as Effect from "effect/Effect";
5
+ import { Capability } from "@dxos/app-framework";
6
+ import { Operation, Script } from "@dxos/compute";
7
+ import { Type } from "@dxos/echo";
8
+ import { SpaceOperation } from "@dxos/plugin-space";
9
+ import { SpaceCapabilities } from "@dxos/plugin-space";
10
+ import { ScriptOperation } from "#types";
11
+ import { Notebook } from "#types";
12
+ var create_object_default = Capability.makeModule(Effect.fnUntraced(function* () {
13
+ return [
14
+ Capability.contributes(SpaceCapabilities.CreateObjectEntry, {
15
+ id: Type.getTypename(Script.Script),
16
+ inputSchema: ScriptOperation.ScriptProps,
17
+ createObject: (props, options) => Effect.gen(function* () {
18
+ const { object } = yield* Operation.invoke(ScriptOperation.CreateScript, props);
19
+ return yield* Operation.invoke(SpaceOperation.AddObject, {
20
+ object,
21
+ target: options.target,
22
+ hidden: true,
23
+ targetNodeId: options.targetNodeId
24
+ });
25
+ })
26
+ }),
27
+ Capability.contributes(SpaceCapabilities.CreateObjectEntry, {
28
+ id: Type.getTypename(Notebook.Notebook),
29
+ inputSchema: ScriptOperation.NotebookProps,
30
+ createObject: (props, options) => Effect.gen(function* () {
31
+ const object = Notebook.make(props);
32
+ return yield* Operation.invoke(SpaceOperation.AddObject, {
33
+ object,
34
+ target: options.target,
35
+ hidden: true,
36
+ targetNodeId: options.targetNodeId
37
+ });
38
+ })
39
+ })
40
+ ];
41
+ }));
42
+ export {
43
+ create_object_default as default
44
+ };
45
+ //# sourceMappingURL=create-object-FZM5ASWM.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/create-object.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { Operation, Script } from '@dxos/compute';\nimport { Type } from '@dxos/echo';\nimport { SpaceOperation } from '@dxos/plugin-space';\nimport { SpaceCapabilities } from '@dxos/plugin-space';\n\nimport { ScriptOperation } from '#types';\nimport { Notebook } from '#types';\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n return [\n Capability.contributes(SpaceCapabilities.CreateObjectEntry, {\n id: Type.getTypename(Script.Script),\n inputSchema: ScriptOperation.ScriptProps,\n createObject: (props, options) =>\n Effect.gen(function* () {\n const { object } = yield* Operation.invoke(ScriptOperation.CreateScript, props);\n return yield* Operation.invoke(SpaceOperation.AddObject, {\n object,\n target: options.target,\n hidden: true,\n targetNodeId: options.targetNodeId,\n });\n }),\n }),\n Capability.contributes(SpaceCapabilities.CreateObjectEntry, {\n id: Type.getTypename(Notebook.Notebook),\n inputSchema: ScriptOperation.NotebookProps,\n createObject: (props, options) =>\n Effect.gen(function* () {\n const object = Notebook.make(props);\n return yield* Operation.invoke(SpaceOperation.AddObject, {\n object,\n target: options.target,\n hidden: true,\n targetNodeId: options.targetNodeId,\n });\n }),\n }),\n ];\n }),\n);\n"],
5
+ "mappings": ";;;AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,WAAWC,cAAc;AAClC,SAASC,YAAY;AACrB,SAASC,sBAAsB;AAC/B,SAASC,yBAAyB;AAElC,SAASC,uBAAuB;AAChC,SAASC,gBAAgB;AAEzB,IAAA,wBAAeP,WAAWQ,WACjBC,kBAAW,aAAA;AAChB,SAAO;IACLT,WAAWU,YAAYL,kBAAkBM,mBAAmB;MAC1DC,IAAIT,KAAKU,YAAYX,OAAOA,MAAM;MAClCY,aAAaR,gBAAgBS;MAC7BC,cAAc,CAACC,OAAOC,YACbC,WAAI,aAAA;AACT,cAAM,EAAEC,OAAM,IAAK,OAAOnB,UAAUoB,OAAOf,gBAAgBgB,cAAcL,KAAAA;AACzE,eAAO,OAAOhB,UAAUoB,OAAOjB,eAAemB,WAAW;UACvDH;UACAI,QAAQN,QAAQM;UAChBC,QAAQ;UACRC,cAAcR,QAAQQ;QACxB,CAAA;MACF,CAAA;IACJ,CAAA;IACA1B,WAAWU,YAAYL,kBAAkBM,mBAAmB;MAC1DC,IAAIT,KAAKU,YAAYN,SAASA,QAAQ;MACtCO,aAAaR,gBAAgBqB;MAC7BX,cAAc,CAACC,OAAOC,YACbC,WAAI,aAAA;AACT,cAAMC,SAASb,SAASqB,KAAKX,KAAAA;AAC7B,eAAO,OAAOhB,UAAUoB,OAAOjB,eAAemB,WAAW;UACvDH;UACAI,QAAQN,QAAQM;UAChBC,QAAQ;UACRC,cAAcR,QAAQQ;QACxB,CAAA;MACF,CAAA;IACJ,CAAA;;AAEJ,CAAA,CAAA;",
6
+ "names": ["Effect", "Capability", "Operation", "Script", "Type", "SpaceOperation", "SpaceCapabilities", "ScriptOperation", "Notebook", "makeModule", "fnUntraced", "contributes", "CreateObjectEntry", "id", "getTypename", "inputSchema", "ScriptProps", "createObject", "props", "options", "gen", "object", "invoke", "CreateScript", "AddObject", "target", "hidden", "targetNodeId", "NotebookProps", "make"]
7
+ }
@@ -0,0 +1,45 @@
1
+ import {
2
+ ScriptOperation_exports
3
+ } from "./chunk-4H6UOE5J.mjs";
4
+ import {
5
+ templates
6
+ } from "./chunk-GYQPDUTK.mjs";
7
+ import "./chunk-J5LGTIGS.mjs";
8
+
9
+ // src/operations/create-script.ts
10
+ import { Octokit } from "@octokit/core";
11
+ import * as Effect from "effect/Effect";
12
+ import { Script, Operation } from "@dxos/compute";
13
+ var handler = ScriptOperation_exports.CreateScript.pipe(Operation.withHandler(Effect.fnUntraced(function* ({ name, gistUrl, initialTemplateId }) {
14
+ let source = templates[0].source;
15
+ let scriptName = name;
16
+ const gistId = gistUrl?.split("/").at(-1);
17
+ if (gistId) {
18
+ const octokit = new Octokit();
19
+ const response = yield* Effect.promise(() => octokit.request("GET /gists/{gist_id}", {
20
+ gist_id: gistId
21
+ }));
22
+ const gistContent = Object.values(response.data.files ?? {})[0]?.content;
23
+ if (gistContent) {
24
+ source = gistContent;
25
+ }
26
+ }
27
+ if (initialTemplateId) {
28
+ const template = templates.find((template2) => template2.id === initialTemplateId);
29
+ if (template) {
30
+ source = template.source;
31
+ scriptName = scriptName || template.name;
32
+ }
33
+ }
34
+ return {
35
+ object: Script.make({
36
+ name: scriptName,
37
+ source
38
+ })
39
+ };
40
+ })));
41
+ var create_script_default = handler;
42
+ export {
43
+ create_script_default as default
44
+ };
45
+ //# sourceMappingURL=create-script-6HWJMXMD.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/operations/create-script.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Octokit } from '@octokit/core';\nimport * as Effect from 'effect/Effect';\n\nimport { Script, Operation } from '@dxos/compute';\n\nimport { templates } from '../templates';\nimport { ScriptOperation } from '../types';\n\nconst handler: Operation.WithHandler<typeof ScriptOperation.CreateScript> = ScriptOperation.CreateScript.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* ({ name, gistUrl, initialTemplateId }) {\n let source = templates[0].source;\n let scriptName = name;\n\n const gistId = gistUrl?.split('/').at(-1);\n if (gistId) {\n const octokit = new Octokit();\n const response = yield* Effect.promise(() =>\n octokit.request('GET /gists/{gist_id}', {\n gist_id: gistId,\n }),\n );\n const gistContent = Object.values(response.data.files ?? {})[0]?.content;\n if (gistContent) {\n source = gistContent;\n }\n }\n\n if (initialTemplateId) {\n const template = templates.find((template) => template.id === initialTemplateId);\n if (template) {\n source = template.source;\n scriptName = scriptName || template.name;\n }\n }\n\n return { object: Script.make({ name: scriptName, source }) };\n }),\n ),\n);\n\nexport default handler;\n"],
5
+ "mappings": ";;;;;;;;;AAIA,SAASA,eAAe;AACxB,YAAYC,YAAY;AAExB,SAASC,QAAQC,iBAAiB;AAKlC,IAAMC,UAAsEC,wBAAgBC,aAAaC,KACvGC,UAAUC,YACDC,kBAAW,WAAW,EAAEC,MAAMC,SAASC,kBAAiB,GAAE;AAC/D,MAAIC,SAASC,UAAU,CAAA,EAAGD;AAC1B,MAAIE,aAAaL;AAEjB,QAAMM,SAASL,SAASM,MAAM,GAAA,EAAKC,GAAG,EAAC;AACvC,MAAIF,QAAQ;AACV,UAAMG,UAAU,IAAIC,QAAAA;AACpB,UAAMC,WAAW,OAAcC,eAAQ,MACrCH,QAAQI,QAAQ,wBAAwB;MACtCC,SAASR;IACX,CAAA,CAAA;AAEF,UAAMS,cAAcC,OAAOC,OAAON,SAASO,KAAKC,SAAS,CAAC,CAAA,EAAG,CAAA,GAAIC;AACjE,QAAIL,aAAa;AACfZ,eAASY;IACX;EACF;AAEA,MAAIb,mBAAmB;AACrB,UAAMmB,WAAWjB,UAAUkB,KAAK,CAACD,cAAaA,UAASE,OAAOrB,iBAAAA;AAC9D,QAAImB,UAAU;AACZlB,eAASkB,SAASlB;AAClBE,mBAAaA,cAAcgB,SAASrB;IACtC;EACF;AAEA,SAAO;IAAEwB,QAAQC,OAAOC,KAAK;MAAE1B,MAAMK;MAAYF;IAAO,CAAA;EAAG;AAC7D,CAAA,CAAA,CAAA;AAIJ,IAAA,wBAAeV;",
6
+ "names": ["Octokit", "Effect", "Script", "Operation", "handler", "ScriptOperation", "CreateScript", "pipe", "Operation", "withHandler", "fnUntraced", "name", "gistUrl", "initialTemplateId", "source", "templates", "scriptName", "gistId", "split", "at", "octokit", "Octokit", "response", "promise", "request", "gist_id", "gistContent", "Object", "values", "data", "files", "content", "template", "find", "id", "object", "Script", "make"]
7
+ }
@@ -0,0 +1,21 @@
1
+ import {
2
+ Delete
3
+ } from "./chunk-Y3O3YZSE.mjs";
4
+ import "./chunk-J5LGTIGS.mjs";
5
+
6
+ // src/blueprints/functions/delete.ts
7
+ import * as Effect from "effect/Effect";
8
+ import { Operation } from "@dxos/compute";
9
+ import { Database } from "@dxos/echo";
10
+ var delete_default = Delete.pipe(Operation.withHandler(Effect.fn(function* ({ function: fn2 }) {
11
+ const { db } = yield* Database.Service;
12
+ const loaded = yield* Database.load(fn2);
13
+ if (loaded.source?.target) {
14
+ db.remove(loaded.source.target);
15
+ }
16
+ db.remove(loaded);
17
+ })));
18
+ export {
19
+ delete_default as default
20
+ };
21
+ //# sourceMappingURL=delete-475DHFZO.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/blueprints/functions/delete.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Operation } from '@dxos/compute';\nimport { Database } from '@dxos/echo';\n\nimport { Delete } from './definitions';\n\nexport default Delete.pipe(\n Operation.withHandler(\n Effect.fn(function* ({ function: fn }) {\n const { db } = yield* Database.Service;\n const loaded = yield* Database.load(fn);\n if (loaded.source?.target) {\n db.remove(loaded.source.target);\n }\n db.remove(loaded);\n }),\n ),\n);\n"],
5
+ "mappings": ";;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,iBAAiB;AAC1B,SAASC,gBAAgB;AAIzB,IAAA,iBAAeC,OAAOC,KACpBC,UAAUC,YACDC,UAAG,WAAW,EAAEC,UAAUD,IAAE,GAAE;AACnC,QAAM,EAAEE,GAAE,IAAK,OAAOC,SAASC;AAC/B,QAAMC,SAAS,OAAOF,SAASG,KAAKN,GAAAA;AACpC,MAAIK,OAAOE,QAAQC,QAAQ;AACzBN,OAAGO,OAAOJ,OAAOE,OAAOC,MAAM;EAChC;AACAN,KAAGO,OAAOJ,MAAAA;AACZ,CAAA,CAAA,CAAA;",
6
+ "names": ["Effect", "Operation", "Database", "Delete", "pipe", "Operation", "withHandler", "fn", "function", "db", "Database", "Service", "loaded", "load", "source", "target", "remove"]
7
+ }
@@ -0,0 +1,63 @@
1
+ import {
2
+ Deploy
3
+ } from "./chunk-Y3O3YZSE.mjs";
4
+ import "./chunk-J5LGTIGS.mjs";
5
+
6
+ // src/blueprints/functions/deploy.ts
7
+ import * as Effect from "effect/Effect";
8
+ import wasmUrl from "esbuild-wasm/esbuild.wasm?url";
9
+ import { ClientService } from "@dxos/client";
10
+ import { Operation } from "@dxos/compute";
11
+ import { Context } from "@dxos/context";
12
+ import { Database, Obj } from "@dxos/echo";
13
+ import { getUserFunctionIdInMetadata } from "@dxos/functions";
14
+ import { bundleFunction, initializeBundler } from "@dxos/functions-runtime/bundler";
15
+ import { FunctionsServiceClient, incrementSemverPatch } from "@dxos/functions-runtime/edge";
16
+ import { FunctionRuntimeKind } from "@dxos/protocols";
17
+ import { getSpace } from "@dxos/react-client/echo";
18
+ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-script/src/blueprints/functions/deploy.ts";
19
+ var deploy_default = Deploy.pipe(Operation.withHandler(Effect.fn(function* ({ function: fn2 }) {
20
+ const loaded = yield* Database.load(fn2);
21
+ const client = yield* ClientService;
22
+ if (!loaded.source) {
23
+ return yield* Effect.fail(new Error("Function has no source script."));
24
+ }
25
+ const script = yield* Database.load(loaded.source);
26
+ const space = getSpace(loaded);
27
+ if (!space || !script.source?.target?.content) {
28
+ return yield* Effect.fail(new Error("Script source or space not available"));
29
+ }
30
+ yield* Effect.promise(() => initializeBundler({
31
+ wasmUrl
32
+ }));
33
+ const buildResult = yield* Effect.promise(() => bundleFunction({
34
+ source: script.source.target.content
35
+ }));
36
+ if ("error" in buildResult) {
37
+ return yield* Effect.fail(buildResult.error ?? new Error("Bundle creation failed"));
38
+ }
39
+ const existingFunctionId = getUserFunctionIdInMetadata(Obj.getMeta(loaded));
40
+ const currentVersion = Obj.getMeta(loaded).version;
41
+ const functionsService = FunctionsServiceClient.fromClient(client);
42
+ const newFunction = yield* Effect.promise(() => functionsService.deploy(Context.default(void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 39 }), {
43
+ ownerPublicKey: space.key,
44
+ version: currentVersion ? incrementSemverPatch(currentVersion) : "0.0.1",
45
+ functionId: existingFunctionId,
46
+ entryPoint: buildResult.entryPoint,
47
+ assets: buildResult.assets,
48
+ runtime: FunctionRuntimeKind.enums.WORKER_LOADER
49
+ }));
50
+ Operation.setFrom(loaded, newFunction);
51
+ Obj.update(script, (script2) => {
52
+ script2.changed = false;
53
+ });
54
+ const edgeFunctionId = getUserFunctionIdInMetadata(Obj.getMeta(loaded));
55
+ return {
56
+ function: Obj.getURI(loaded),
57
+ functionUrl: edgeFunctionId ? `${client.config.values.runtime?.services?.edge?.url ?? ""}/functions/${edgeFunctionId}` : void 0
58
+ };
59
+ })));
60
+ export {
61
+ deploy_default as default
62
+ };
63
+ //# sourceMappingURL=deploy-VMPGXUR2.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/blueprints/functions/deploy.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport wasmUrl from 'esbuild-wasm/esbuild.wasm?url';\n\nimport { ClientService } from '@dxos/client';\nimport { Script, Operation } from '@dxos/compute';\nimport { Context } from '@dxos/context';\nimport { Database, Obj } from '@dxos/echo';\nimport { getUserFunctionIdInMetadata } from '@dxos/functions';\nimport { bundleFunction, initializeBundler } from '@dxos/functions-runtime/bundler';\nimport { FunctionsServiceClient, incrementSemverPatch } from '@dxos/functions-runtime/edge';\nimport { FunctionRuntimeKind } from '@dxos/protocols';\nimport { getSpace } from '@dxos/react-client/echo';\n\nimport { Deploy } from './definitions';\n\nexport default Deploy.pipe(\n Operation.withHandler(\n Effect.fn(function* ({ function: fn }) {\n const loaded = yield* Database.load(fn);\n const client = yield* ClientService;\n if (!loaded.source) {\n return yield* Effect.fail(new Error('Function has no source script.'));\n }\n const script = (yield* Database.load(loaded.source)) as Script.Script;\n\n const space = getSpace(loaded);\n if (!space || !script.source?.target?.content) {\n return yield* Effect.fail(new Error('Script source or space not available'));\n }\n\n yield* Effect.promise(() => initializeBundler({ wasmUrl }));\n const buildResult = yield* Effect.promise(() => bundleFunction({ source: script.source!.target!.content }));\n if ('error' in buildResult) {\n return yield* Effect.fail(buildResult.error ?? new Error('Bundle creation failed'));\n }\n\n const existingFunctionId = getUserFunctionIdInMetadata(Obj.getMeta(loaded));\n const currentVersion = Obj.getMeta(loaded).version;\n\n const functionsService = FunctionsServiceClient.fromClient(client);\n const newFunction = yield* Effect.promise(() =>\n functionsService.deploy(Context.default(), {\n ownerPublicKey: space.key,\n version: currentVersion ? incrementSemverPatch(currentVersion) : '0.0.1',\n functionId: existingFunctionId,\n entryPoint: buildResult.entryPoint,\n assets: buildResult.assets,\n runtime: FunctionRuntimeKind.enums.WORKER_LOADER,\n }),\n );\n\n Operation.setFrom(loaded, newFunction);\n\n Obj.update(script, (script) => {\n script.changed = false;\n });\n\n const edgeFunctionId = getUserFunctionIdInMetadata(Obj.getMeta(loaded));\n return {\n function: Obj.getURI(loaded),\n functionUrl: edgeFunctionId\n ? `${client.config.values.runtime?.services?.edge?.url ?? ''}/functions/${edgeFunctionId}`\n : undefined,\n };\n }),\n ),\n);\n"],
5
+ "mappings": ";;;;;;AAIA,YAAYA,YAAY;AACxB,OAAOC,aAAa;AAEpB,SAASC,qBAAqB;AAC9B,SAAiBC,iBAAiB;AAClC,SAASC,eAAe;AACxB,SAASC,UAAUC,WAAW;AAC9B,SAASC,mCAAmC;AAC5C,SAASC,gBAAgBC,yBAAyB;AAClD,SAASC,wBAAwBC,4BAA4B;AAC7D,SAASC,2BAA2B;AACpC,SAASC,gBAAgB;AAIzB,IAAA,eAAeC;IAIT,iBAAMC,OAAS,KAAOC,UAAAA,YAAAA,UAAAA,WAAAA,EAAAA,UAAAA,IAAAA,GAAAA;AACtB,QAAKC,SAAOC,OAAQ,SAAA,KAAAC,GAAA;QAClB,SAAO,OAAOC;AAChB,MAAA,CAAA,OAAA,QAAA;AACA,WAAMC,OAAiBC,YAAAA,IAASC,MAAKN,gCAAa,CAAA;EAElD;AACA,QAAKO,SAAUH,OAAOH,SAAQO,KAAAA,OAAQC,MAAS;QAC7C,QAAO,SAAON,MAAW;AAC3B,MAAA,CAAA,SAAA,CAAA,OAAA,QAAA,QAAA,SAAA;AAEA,WAAOA,OAAe,YAAMO,IAAAA,MAAAA,sCAAkB,CAAA;;SAAU,eAAA,MAAA,kBAAA;IAClDC;;QAAkG,cAAA,OAAA,eAAA,MAAA,eAAA;IACpG,QAAWA,OAAAA,OAAa,OAAA;EAC1B,CAAA,CAAA;AACF,MAAA,WAAA,aAAA;AAEA,WAAMC,OAAAA,YAAqBC,YAAAA,SAAAA,IAA4BC,MAAIC,wBAAQf,CAAAA;EACnE;AAEA,QAAMgB,qBAAmBC,4BAAuBC,IAAWpB,QAAAA,MAAAA,CAAAA;AAC3D,QAAMqB,iBAAc,IAAOhB,QAAOiB,MAAO,EAAC;2BAEtBb,uBAAS,WAAA,MAAA;sBAChBc,OAAiBC,eAAAA,MAAAA,iBAAqBD,OAAAA,QAAkB,QAAA,QAAA,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,GAAA,CAAA,GAAA;IACjEE,gBAAYX,MAAAA;IACZY,SAAAA,iBAAwBA,qBAAU,cAAA,IAAA;IAClCC,YAAQd;IACRe,YAASC,YAAAA;IACX,QAAA,YAAA;IAGFC,SAAiB,oBAAST,MAAAA;EAEtBU,CAAAA,CAAAA;YACFzB,QAAc,QAAG,WAAA;AACnB,MAAA,OAAA,QAAA,CAAAA,YAAA;AAEA,IAAAA,QAAM0B,UAAAA;EACN,CAAA;QACEC,iBAAcC,4BAAOhC,IAAAA,QAAAA,MAAAA,CAAAA;SACrBiC;IAGF,UAAA,IAAA,OAAA,MAAA;IAGJ,aAAA,iBAAA,GAAA,OAAA,OAAA,OAAA,SAAA,UAAA,MAAA,OAAA,EAAA,cAAA,cAAA,KAAA;;;",
6
+ "names": ["Effect", "wasmUrl", "ClientService", "Operation", "Context", "Database", "Obj", "getUserFunctionIdInMetadata", "bundleFunction", "initializeBundler", "FunctionsServiceClient", "incrementSemverPatch", "FunctionRuntimeKind", "getSpace", "Deploy", "client", "ClientService", "loaded", "source", "fn", "Effect", "script", "Database", "load", "space", "target", "content", "initializeBundler", "buildResult", "existingFunctionId", "getUserFunctionIdInMetadata", "Obj", "getMeta", "functionsService", "FunctionsServiceClient", "fromClient", "newFunction", "promise", "currentVersion", "incrementSemverPatch", "functionId", "entryPoint", "assets", "runtime", "FunctionRuntimeKind", "Operation", "update", "edgeFunctionId", "function", "getURI", "functionUrl"]
7
+ }