@dxos/plugin-script 0.8.4-main.3c1ae3b → 0.8.4-main.3fbcb4aa9b

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 (540) hide show
  1. package/README.md +15 -13
  2. package/dist/lib/neutral/DeploymentDialog-6DBF3V6C.mjs +112 -0
  3. package/dist/lib/neutral/DeploymentDialog-6DBF3V6C.mjs.map +7 -0
  4. package/dist/lib/{browser/NotebookContainer-GL2Z5I5Q.mjs → neutral/NotebookContainer-FIAQI3A2.mjs} +242 -299
  5. package/dist/lib/neutral/NotebookContainer-FIAQI3A2.mjs.map +7 -0
  6. package/dist/lib/neutral/ScriptContainer-2OPBAXFB.mjs +79 -0
  7. package/dist/lib/neutral/ScriptContainer-2OPBAXFB.mjs.map +7 -0
  8. package/dist/lib/neutral/ScriptPlugin.mjs +39 -0
  9. package/dist/lib/neutral/ScriptPlugin.mjs.map +7 -0
  10. package/dist/lib/neutral/ScriptPlugin.node.mjs +27 -0
  11. package/dist/lib/neutral/ScriptPlugin.node.mjs.map +7 -0
  12. package/dist/lib/neutral/ScriptPluginSettings-T4JMUSHN.mjs +31 -0
  13. package/dist/lib/neutral/ScriptPluginSettings-T4JMUSHN.mjs.map +7 -0
  14. package/dist/lib/neutral/ScriptProperties-F6NE6M4H.mjs +296 -0
  15. package/dist/lib/neutral/ScriptProperties-F6NE6M4H.mjs.map +7 -0
  16. package/dist/lib/neutral/TestContainer-JNFPLAJX.mjs +44 -0
  17. package/dist/lib/neutral/TestContainer-JNFPLAJX.mjs.map +7 -0
  18. package/dist/lib/neutral/access-token-created-ENMCEGVU.mjs +34 -0
  19. package/dist/lib/neutral/access-token-created-ENMCEGVU.mjs.map +7 -0
  20. package/dist/lib/neutral/app-graph-builder-7AWFCEQF.mjs +52 -0
  21. package/dist/lib/neutral/app-graph-builder-7AWFCEQF.mjs.map +7 -0
  22. package/dist/lib/neutral/blueprint-definition-T33SBPP2.mjs +15 -0
  23. package/dist/lib/neutral/blueprint-definition-T33SBPP2.mjs.map +7 -0
  24. package/dist/lib/neutral/blueprints/index.mjs +10 -0
  25. package/dist/lib/neutral/capabilities/index.mjs +21 -0
  26. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  27. package/dist/lib/neutral/capabilities/node.mjs +17 -0
  28. package/dist/lib/neutral/capabilities/node.mjs.map +7 -0
  29. package/dist/lib/neutral/chunk-2DMPFVUM.mjs +8 -0
  30. package/dist/lib/neutral/chunk-2DMPFVUM.mjs.map +7 -0
  31. package/dist/lib/neutral/chunk-4RJALG6K.mjs +151 -0
  32. package/dist/lib/neutral/chunk-4RJALG6K.mjs.map +7 -0
  33. package/dist/lib/neutral/chunk-B4FVQEHV.mjs +8 -0
  34. package/dist/lib/neutral/chunk-B4FVQEHV.mjs.map +7 -0
  35. package/dist/lib/neutral/chunk-BDRB6ZX2.mjs +52 -0
  36. package/dist/lib/neutral/chunk-BDRB6ZX2.mjs.map +7 -0
  37. package/dist/lib/{node-esm/chunk-2S43VHAM.mjs → neutral/chunk-BUKQITZT.mjs} +43 -28
  38. package/dist/lib/neutral/chunk-BUKQITZT.mjs.map +7 -0
  39. package/dist/lib/neutral/chunk-D7DFASAE.mjs +52 -0
  40. package/dist/lib/neutral/chunk-D7DFASAE.mjs.map +7 -0
  41. package/dist/lib/neutral/chunk-MI6X5CTJ.mjs +336 -0
  42. package/dist/lib/neutral/chunk-MI6X5CTJ.mjs.map +7 -0
  43. package/dist/lib/neutral/chunk-P2F3STZN.mjs +8 -0
  44. package/dist/lib/neutral/chunk-P2F3STZN.mjs.map +7 -0
  45. package/dist/lib/neutral/chunk-PDB6UOSB.mjs +125 -0
  46. package/dist/lib/neutral/chunk-PDB6UOSB.mjs.map +7 -0
  47. package/dist/lib/{browser/chunk-EB6AXFXO.mjs → neutral/chunk-UYR3YH4Q.mjs} +3 -3
  48. package/dist/lib/neutral/chunk-UYR3YH4Q.mjs.map +7 -0
  49. package/dist/lib/neutral/compiler-SMVIP5UN.mjs +101 -0
  50. package/dist/lib/neutral/compiler-SMVIP5UN.mjs.map +7 -0
  51. package/dist/lib/neutral/components/index.mjs +719 -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-OZRIZ7RN.mjs +44 -0
  56. package/dist/lib/neutral/create-OZRIZ7RN.mjs.map +7 -0
  57. package/dist/lib/neutral/create-object-F2NWICFV.mjs +44 -0
  58. package/dist/lib/neutral/create-object-F2NWICFV.mjs.map +7 -0
  59. package/dist/lib/neutral/create-script-VBA3SLSU.mjs +45 -0
  60. package/dist/lib/neutral/create-script-VBA3SLSU.mjs.map +7 -0
  61. package/dist/lib/neutral/delete-PAUWA2QM.mjs +21 -0
  62. package/dist/lib/neutral/delete-PAUWA2QM.mjs.map +7 -0
  63. package/dist/lib/neutral/deploy-CXVW54JJ.mjs +62 -0
  64. package/dist/lib/neutral/deploy-CXVW54JJ.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-LEOEP5I2.mjs +59 -0
  69. package/dist/lib/neutral/inspect-invocations-LEOEP5I2.mjs.map +7 -0
  70. package/dist/lib/neutral/install-function-5N24Q45W.mjs +51 -0
  71. package/dist/lib/neutral/install-function-5N24Q45W.mjs.map +7 -0
  72. package/dist/lib/neutral/invoke-5QVEZ3X5.mjs +33 -0
  73. package/dist/lib/neutral/invoke-5QVEZ3X5.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-OTCWYDFI.mjs +18 -0
  77. package/dist/lib/neutral/operation-handler-OTCWYDFI.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-FVD7NYPA.mjs +30 -0
  82. package/dist/lib/neutral/query-deployed-functions-FVD7NYPA.mjs.map +7 -0
  83. package/dist/lib/neutral/react-surface-JH2AOK7V.mjs +117 -0
  84. package/dist/lib/neutral/react-surface-JH2AOK7V.mjs.map +7 -0
  85. package/dist/lib/neutral/read-FFOSK6A3.mjs +26 -0
  86. package/dist/lib/neutral/read-FFOSK6A3.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 +1 -1
  90. package/dist/lib/neutral/translations.mjs +104 -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/update-PJS5GG3Y.mjs +63 -0
  94. package/dist/lib/neutral/update-PJS5GG3Y.mjs.map +7 -0
  95. package/dist/types/src/ScriptPlugin.d.ts +3 -1
  96. package/dist/types/src/ScriptPlugin.d.ts.map +1 -1
  97. package/dist/types/src/ScriptPlugin.node.d.ts +4 -0
  98. package/dist/types/src/ScriptPlugin.node.d.ts.map +1 -0
  99. package/dist/types/src/ScriptPlugin.test.d.ts +2 -0
  100. package/dist/types/src/ScriptPlugin.test.d.ts.map +1 -0
  101. package/dist/types/src/blueprints/functions/create.d.ts +11 -0
  102. package/dist/types/src/blueprints/functions/create.d.ts.map +1 -0
  103. package/dist/types/src/blueprints/functions/definitions.d.ts +141 -0
  104. package/dist/types/src/blueprints/functions/definitions.d.ts.map +1 -0
  105. package/dist/types/src/blueprints/functions/delete.d.ts +18 -0
  106. package/dist/types/src/blueprints/functions/delete.d.ts.map +1 -0
  107. package/dist/types/src/blueprints/functions/deploy.d.ts +22 -0
  108. package/dist/types/src/blueprints/functions/deploy.d.ts.map +1 -0
  109. package/dist/types/src/blueprints/functions/index.d.ts +4 -0
  110. package/dist/types/src/blueprints/functions/index.d.ts.map +1 -0
  111. package/dist/types/src/blueprints/functions/inspect-invocations.d.ts +29 -0
  112. package/dist/types/src/blueprints/functions/inspect-invocations.d.ts.map +1 -0
  113. package/dist/types/src/blueprints/functions/install-function.d.ts +11 -0
  114. package/dist/types/src/blueprints/functions/install-function.d.ts.map +1 -0
  115. package/dist/types/src/blueprints/functions/invoke.d.ts +22 -0
  116. package/dist/types/src/blueprints/functions/invoke.d.ts.map +1 -0
  117. package/dist/types/src/blueprints/functions/query-deployed-functions.d.ts +13 -0
  118. package/dist/types/src/blueprints/functions/query-deployed-functions.d.ts.map +1 -0
  119. package/dist/types/src/blueprints/functions/read.d.ts +22 -0
  120. package/dist/types/src/blueprints/functions/read.d.ts.map +1 -0
  121. package/dist/types/src/blueprints/functions/update.d.ts +27 -0
  122. package/dist/types/src/blueprints/functions/update.d.ts.map +1 -0
  123. package/dist/types/src/blueprints/index.d.ts +2 -0
  124. package/dist/types/src/blueprints/index.d.ts.map +1 -0
  125. package/dist/types/src/blueprints/script-blueprint.d.ts +4 -0
  126. package/dist/types/src/blueprints/script-blueprint.d.ts.map +1 -0
  127. package/dist/types/src/capabilities/app-graph-builder.d.ts +4 -2
  128. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  129. package/dist/types/src/capabilities/artifact-definition.d.ts +3 -2
  130. package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -1
  131. package/dist/types/src/capabilities/blueprint-definition.d.ts +5 -4
  132. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -1
  133. package/dist/types/src/capabilities/compiler.d.ts +3 -1
  134. package/dist/types/src/capabilities/compiler.d.ts.map +1 -1
  135. package/dist/types/src/capabilities/create-object.d.ts +16 -0
  136. package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
  137. package/dist/types/src/capabilities/index.d.ts +19 -7
  138. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  139. package/dist/types/src/capabilities/node.d.ts +18 -0
  140. package/dist/types/src/capabilities/node.d.ts.map +1 -0
  141. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  142. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  143. package/dist/types/src/capabilities/react-surface.d.ts +3 -2
  144. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  145. package/dist/types/src/capabilities/settings.d.ts +5 -2
  146. package/dist/types/src/capabilities/settings.d.ts.map +1 -1
  147. package/dist/types/src/compiler/compiler.d.ts.map +1 -1
  148. package/dist/types/src/components/{FrameContainer/FrameContainer.d.ts → FramePanel/FramePanel.d.ts} +3 -3
  149. package/dist/types/src/components/FramePanel/FramePanel.d.ts.map +1 -0
  150. package/dist/types/src/components/FramePanel/index.d.ts +2 -0
  151. package/dist/types/src/components/FramePanel/index.d.ts.map +1 -0
  152. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts +4 -4
  153. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts.map +1 -1
  154. package/dist/types/src/components/NotebookStack/NotebookMenu.d.ts +1 -1
  155. package/dist/types/src/components/NotebookStack/NotebookMenu.d.ts.map +1 -1
  156. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts +5 -3
  157. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts.map +1 -1
  158. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts +221 -229
  159. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts.map +1 -1
  160. package/dist/types/src/components/QueryEditor/QueryEditor.d.ts.map +1 -1
  161. package/dist/types/src/components/QueryEditor/QueryEditor.stories.d.ts.map +1 -1
  162. package/dist/types/src/components/ScriptPluginSettings/ScriptPluginSettings.d.ts +8 -0
  163. package/dist/types/src/components/ScriptPluginSettings/ScriptPluginSettings.d.ts.map +1 -0
  164. package/dist/types/src/components/ScriptPluginSettings/ScriptPluginSettings.stories.d.ts +241 -0
  165. package/dist/types/src/components/ScriptPluginSettings/ScriptPluginSettings.stories.d.ts.map +1 -0
  166. package/dist/types/src/components/ScriptPluginSettings/index.d.ts +2 -0
  167. package/dist/types/src/components/ScriptPluginSettings/index.d.ts.map +1 -0
  168. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts +8 -6
  169. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts.map +1 -1
  170. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts +221 -229
  171. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts.map +1 -1
  172. package/dist/types/src/components/TestPanel/TestPanel.d.ts +4 -2
  173. package/dist/types/src/components/TestPanel/TestPanel.d.ts.map +1 -1
  174. package/dist/types/src/components/TestPanel/index.d.ts +0 -1
  175. package/dist/types/src/components/TestPanel/index.d.ts.map +1 -1
  176. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts +6 -2
  177. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts.map +1 -1
  178. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts +3 -1
  179. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts.map +1 -1
  180. package/dist/types/src/components/index.d.ts +6 -5
  181. package/dist/types/src/components/index.d.ts.map +1 -1
  182. package/dist/types/src/constants.d.ts +2 -0
  183. package/dist/types/src/constants.d.ts.map +1 -0
  184. package/dist/types/src/{components → containers}/DeploymentDialog/DeploymentDialog.d.ts +0 -2
  185. package/dist/types/src/containers/DeploymentDialog/DeploymentDialog.d.ts.map +1 -0
  186. package/dist/types/src/containers/DeploymentDialog/DeploymentDialog.stories.d.ts +240 -0
  187. package/dist/types/src/containers/DeploymentDialog/DeploymentDialog.stories.d.ts.map +1 -0
  188. package/dist/types/src/containers/DeploymentDialog/index.d.ts +2 -0
  189. package/dist/types/src/containers/DeploymentDialog/index.d.ts.map +1 -0
  190. package/dist/types/src/containers/NotebookContainer/NotebookContainer.d.ts +7 -0
  191. package/dist/types/src/containers/NotebookContainer/NotebookContainer.d.ts.map +1 -0
  192. package/dist/types/src/containers/NotebookContainer/NotebookContainer.stories.d.ts +7 -0
  193. package/dist/types/src/containers/NotebookContainer/NotebookContainer.stories.d.ts.map +1 -0
  194. package/dist/types/src/containers/NotebookContainer/index.d.ts +2 -0
  195. package/dist/types/src/containers/NotebookContainer/index.d.ts.map +1 -0
  196. package/dist/types/src/containers/ScriptContainer/ScriptContainer.d.ts +10 -0
  197. package/dist/types/src/containers/ScriptContainer/ScriptContainer.d.ts.map +1 -0
  198. package/dist/types/src/containers/ScriptContainer/ScriptContainer.stories.d.ts +242 -0
  199. package/dist/types/src/containers/ScriptContainer/ScriptContainer.stories.d.ts.map +1 -0
  200. package/dist/types/src/containers/ScriptContainer/index.d.ts +2 -0
  201. package/dist/types/src/containers/ScriptContainer/index.d.ts.map +1 -0
  202. package/dist/types/src/containers/ScriptProperties/BlueprintEditor.d.ts +7 -0
  203. package/dist/types/src/containers/ScriptProperties/BlueprintEditor.d.ts.map +1 -0
  204. package/dist/types/src/containers/ScriptProperties/FunctionBinding.d.ts +7 -0
  205. package/dist/types/src/containers/ScriptProperties/FunctionBinding.d.ts.map +1 -0
  206. package/dist/types/src/containers/ScriptProperties/FunctionPublishing.d.ts +7 -0
  207. package/dist/types/src/containers/ScriptProperties/FunctionPublishing.d.ts.map +1 -0
  208. package/dist/types/src/containers/ScriptProperties/ScriptProperties.d.ts +6 -0
  209. package/dist/types/src/containers/ScriptProperties/ScriptProperties.d.ts.map +1 -0
  210. package/dist/types/src/containers/ScriptProperties/ScriptProperties.stories.d.ts +242 -0
  211. package/dist/types/src/containers/ScriptProperties/ScriptProperties.stories.d.ts.map +1 -0
  212. package/dist/types/src/containers/ScriptProperties/index.d.ts +2 -0
  213. package/dist/types/src/containers/ScriptProperties/index.d.ts.map +1 -0
  214. package/dist/types/src/containers/TestContainer/TestContainer.d.ts +8 -0
  215. package/dist/types/src/containers/TestContainer/TestContainer.d.ts.map +1 -0
  216. package/dist/types/src/containers/TestContainer/index.d.ts +2 -0
  217. package/dist/types/src/containers/TestContainer/index.d.ts.map +1 -0
  218. package/dist/types/src/containers/index.d.ts +7 -0
  219. package/dist/types/src/containers/index.d.ts.map +1 -0
  220. package/dist/types/src/e2e/ai.test.d.ts +2 -0
  221. package/dist/types/src/e2e/ai.test.d.ts.map +1 -0
  222. package/dist/types/src/hooks/deploy.d.ts +25 -11
  223. package/dist/types/src/hooks/deploy.d.ts.map +1 -1
  224. package/dist/types/src/hooks/format.d.ts +4 -3
  225. package/dist/types/src/hooks/format.d.ts.map +1 -1
  226. package/dist/types/src/hooks/template.d.ts +4 -3
  227. package/dist/types/src/hooks/template.d.ts.map +1 -1
  228. package/dist/types/src/hooks/useCompiler.d.ts.map +1 -1
  229. package/dist/types/src/hooks/useCreateAndDeployScriptTemplates.d.ts.map +1 -1
  230. package/dist/types/src/hooks/useToolbarState.d.ts +8 -1
  231. package/dist/types/src/hooks/useToolbarState.d.ts.map +1 -1
  232. package/dist/types/src/index.d.ts +2 -3
  233. package/dist/types/src/index.d.ts.map +1 -1
  234. package/dist/types/src/meta.d.ts +2 -2
  235. package/dist/types/src/meta.d.ts.map +1 -1
  236. package/dist/types/src/notebook/compute-graph.d.ts +25 -12
  237. package/dist/types/src/notebook/compute-graph.d.ts.map +1 -1
  238. package/dist/types/src/notebook/eval.d.ts.map +1 -1
  239. package/dist/types/src/notebook/vfs-parser.d.ts.map +1 -1
  240. package/dist/types/src/operations/access-token-created.d.ts +5 -0
  241. package/dist/types/src/operations/access-token-created.d.ts.map +1 -0
  242. package/dist/types/src/operations/create-script.d.ts +5 -0
  243. package/dist/types/src/operations/create-script.d.ts.map +1 -0
  244. package/dist/types/src/operations/index.d.ts +3 -0
  245. package/dist/types/src/operations/index.d.ts.map +1 -0
  246. package/dist/types/src/plugin.d.ts +4 -0
  247. package/dist/types/src/plugin.d.ts.map +1 -0
  248. package/dist/types/src/templates/anthropic.d.ts +7 -0
  249. package/dist/types/src/templates/anthropic.d.ts.map +1 -0
  250. package/dist/types/src/templates/chat.d.ts.map +1 -1
  251. package/dist/types/src/templates/chess-bot.d.ts +12 -0
  252. package/dist/types/src/templates/chess-bot.d.ts.map +1 -0
  253. package/dist/types/src/templates/commentary.d.ts +13 -0
  254. package/dist/types/src/templates/commentary.d.ts.map +1 -0
  255. package/dist/types/src/templates/data-generator.d.ts.map +1 -1
  256. package/dist/types/src/templates/discord.d.ts.map +1 -1
  257. package/dist/types/src/templates/email.d.ts.map +1 -1
  258. package/dist/types/src/templates/forex-effect.d.ts +3 -2
  259. package/dist/types/src/templates/forex-effect.d.ts.map +1 -1
  260. package/dist/types/src/templates/forex.d.ts +3 -2
  261. package/dist/types/src/templates/forex.d.ts.map +1 -1
  262. package/dist/types/src/templates/gmail.d.ts.map +1 -1
  263. package/dist/types/src/templates/index.d.ts +33 -24
  264. package/dist/types/src/templates/index.d.ts.map +1 -1
  265. package/dist/types/src/templates/ping.d.ts +2 -4
  266. package/dist/types/src/templates/ping.d.ts.map +1 -1
  267. package/dist/types/src/testing/index.d.ts +2 -1
  268. package/dist/types/src/testing/index.d.ts.map +1 -1
  269. package/dist/types/src/testing/test-notebook.d.ts +3 -0
  270. package/dist/types/src/testing/test-notebook.d.ts.map +1 -0
  271. package/dist/types/src/testing/test-script.d.ts +7 -0
  272. package/dist/types/src/testing/test-script.d.ts.map +1 -0
  273. package/dist/types/src/translations.d.ts +222 -92
  274. package/dist/types/src/translations.d.ts.map +1 -1
  275. package/dist/types/src/types/Notebook.d.ts +111 -22
  276. package/dist/types/src/types/Notebook.d.ts.map +1 -1
  277. package/dist/types/src/types/ScriptCapabilities.d.ts +6 -0
  278. package/dist/types/src/types/ScriptCapabilities.d.ts.map +1 -0
  279. package/dist/types/src/types/ScriptEvents.d.ts +3 -0
  280. package/dist/types/src/types/ScriptEvents.d.ts.map +1 -0
  281. package/dist/types/src/types/ScriptOperation.d.ts +29 -0
  282. package/dist/types/src/types/ScriptOperation.d.ts.map +1 -0
  283. package/dist/types/src/types/Settings.d.ts +7 -0
  284. package/dist/types/src/types/Settings.d.ts.map +1 -0
  285. package/dist/types/src/types/index.d.ts +4 -2
  286. package/dist/types/src/types/index.d.ts.map +1 -1
  287. package/dist/types/src/types/types.d.ts +1 -5
  288. package/dist/types/src/types/types.d.ts.map +1 -1
  289. package/dist/types/src/util/deploy.d.ts +2 -2
  290. package/dist/types/src/util/deploy.d.ts.map +1 -1
  291. package/dist/types/src/util/functions.d.ts +2 -2
  292. package/dist/types/src/util/functions.d.ts.map +1 -1
  293. package/dist/types/tsconfig.tsbuildinfo +1 -1
  294. package/package.json +173 -101
  295. package/src/ScriptPlugin.node.ts +21 -0
  296. package/src/ScriptPlugin.test.ts +31 -0
  297. package/src/ScriptPlugin.tsx +23 -78
  298. package/src/blueprints/functions/create.ts +47 -0
  299. package/src/blueprints/functions/definitions.ts +323 -0
  300. package/src/blueprints/functions/delete.ts +23 -0
  301. package/src/blueprints/functions/deploy.ts +70 -0
  302. package/src/blueprints/functions/index.ts +19 -0
  303. package/src/blueprints/functions/inspect-invocations.ts +56 -0
  304. package/src/blueprints/functions/install-function.ts +56 -0
  305. package/src/blueprints/functions/invoke.ts +35 -0
  306. package/src/blueprints/functions/query-deployed-functions.ts +31 -0
  307. package/src/blueprints/functions/read.ts +29 -0
  308. package/src/blueprints/functions/update.ts +68 -0
  309. package/src/blueprints/index.ts +5 -0
  310. package/src/blueprints/script-blueprint.ts +55 -0
  311. package/src/capabilities/app-graph-builder.ts +40 -58
  312. package/src/capabilities/artifact-definition.ts +90 -88
  313. package/src/capabilities/blueprint-definition.ts +13 -24
  314. package/src/capabilities/compiler.ts +57 -30
  315. package/src/capabilities/create-object.ts +48 -0
  316. package/src/capabilities/index.ts +13 -9
  317. package/src/capabilities/node.ts +16 -0
  318. package/src/capabilities/operation-handler.ts +21 -0
  319. package/src/capabilities/react-surface.tsx +121 -93
  320. package/src/capabilities/settings.ts +26 -14
  321. package/src/compiler/compiler.ts +8 -1
  322. package/src/components/{FrameContainer/FrameContainer.tsx → FramePanel/FramePanel.tsx} +4 -5
  323. package/src/components/{FrameContainer → FramePanel}/index.ts +1 -1
  324. package/src/components/NotebookStack/NotebookCell.tsx +42 -32
  325. package/src/components/NotebookStack/NotebookMenu.tsx +7 -7
  326. package/src/components/NotebookStack/NotebookStack.stories.tsx +24 -25
  327. package/src/components/NotebookStack/NotebookStack.tsx +31 -20
  328. package/src/components/QueryEditor/QueryEditor.stories.tsx +25 -18
  329. package/src/components/ScriptPluginSettings/ScriptPluginSettings.stories.tsx +32 -0
  330. package/src/components/ScriptPluginSettings/ScriptPluginSettings.tsx +42 -0
  331. package/src/components/ScriptPluginSettings/index.ts +5 -0
  332. package/src/components/ScriptToolbar/ScriptToolbar.stories.tsx +42 -20
  333. package/src/components/ScriptToolbar/ScriptToolbar.tsx +38 -43
  334. package/src/components/TestPanel/TestPanel.tsx +110 -194
  335. package/src/components/TestPanel/index.ts +0 -1
  336. package/src/components/TypescriptEditor/TypescriptEditor.stories.tsx +24 -17
  337. package/src/components/TypescriptEditor/TypescriptEditor.tsx +74 -66
  338. package/src/components/index.ts +6 -7
  339. package/src/constants.ts +7 -0
  340. package/src/containers/DeploymentDialog/DeploymentDialog.stories.tsx +63 -0
  341. package/src/containers/DeploymentDialog/DeploymentDialog.tsx +99 -0
  342. package/src/containers/DeploymentDialog/index.ts +5 -0
  343. package/src/containers/NotebookContainer/NotebookContainer.stories.tsx +85 -0
  344. package/src/{components → containers/NotebookContainer}/NotebookContainer.tsx +87 -93
  345. package/src/containers/NotebookContainer/index.ts +5 -0
  346. package/src/containers/ScriptContainer/ScriptContainer.stories.tsx +106 -0
  347. package/src/containers/ScriptContainer/ScriptContainer.tsx +85 -0
  348. package/src/containers/ScriptContainer/index.ts +5 -0
  349. package/src/containers/ScriptProperties/BlueprintEditor.tsx +101 -0
  350. package/src/containers/ScriptProperties/FunctionBinding.tsx +83 -0
  351. package/src/containers/ScriptProperties/FunctionPublishing.tsx +121 -0
  352. package/src/containers/ScriptProperties/ScriptProperties.stories.tsx +75 -0
  353. package/src/containers/ScriptProperties/ScriptProperties.tsx +24 -0
  354. package/src/containers/ScriptProperties/index.ts +5 -0
  355. package/src/containers/TestContainer/TestContainer.tsx +44 -0
  356. package/src/containers/TestContainer/index.ts +5 -0
  357. package/src/containers/index.ts +11 -0
  358. package/src/e2e/ai.test.ts +93 -0
  359. package/src/e2e/deploy.test.ts +7 -5
  360. package/src/hooks/deploy.ts +42 -33
  361. package/src/hooks/format.ts +9 -4
  362. package/src/hooks/template.ts +19 -12
  363. package/src/hooks/useCompiler.ts +6 -4
  364. package/src/hooks/useCreateAndDeployScriptTemplates.ts +15 -20
  365. package/src/hooks/useToolbarState.ts +29 -4
  366. package/src/index.ts +2 -4
  367. package/src/meta.ts +4 -4
  368. package/src/notebook/compute-graph.test.ts +21 -9
  369. package/src/notebook/compute-graph.ts +46 -22
  370. package/src/notebook/vfs-parser.ts +10 -3
  371. package/src/operations/access-token-created.ts +37 -0
  372. package/src/operations/create-script.ts +46 -0
  373. package/src/operations/index.ts +10 -0
  374. package/src/plugin.ts +11 -0
  375. package/src/templates/anthropic.ts +49 -0
  376. package/src/templates/chat.ts +1 -1
  377. package/src/templates/chess-bot.ts +63 -0
  378. package/src/templates/commentary.ts +249 -0
  379. package/src/templates/data-generator.ts +1 -1
  380. package/src/templates/discord.ts +3 -3
  381. package/src/templates/forex-effect.ts +30 -19
  382. package/src/templates/forex.ts +24 -15
  383. package/src/templates/gmail.ts +4 -4
  384. package/src/templates/index.ts +31 -18
  385. package/src/templates/ping.ts +22 -5
  386. package/src/testing/index.ts +2 -1
  387. package/src/testing/simulator.test.ts +3 -4
  388. package/src/testing/{data.ts → test-notebook.ts} +11 -12
  389. package/src/testing/test-script.ts +29 -0
  390. package/src/translations.ts +86 -87
  391. package/src/types/Notebook.ts +18 -15
  392. package/src/types/ScriptCapabilities.ts +18 -0
  393. package/src/types/ScriptEvents.ts +11 -0
  394. package/src/types/ScriptOperation.ts +42 -0
  395. package/src/types/Settings.ts +20 -0
  396. package/src/types/index.ts +5 -2
  397. package/src/types/types.ts +1 -11
  398. package/src/util/deploy.ts +15 -9
  399. package/src/util/functions.ts +27 -24
  400. package/dist/lib/browser/DeploymentDialog-FIHD4UVK.mjs +0 -15
  401. package/dist/lib/browser/NotebookContainer-GL2Z5I5Q.mjs.map +0 -7
  402. package/dist/lib/browser/ScriptContainer-F4OK3OG6.mjs +0 -149
  403. package/dist/lib/browser/ScriptContainer-F4OK3OG6.mjs.map +0 -7
  404. package/dist/lib/browser/app-graph-builder-2WR2ATTJ.mjs +0 -66
  405. package/dist/lib/browser/app-graph-builder-2WR2ATTJ.mjs.map +0 -7
  406. package/dist/lib/browser/blueprint-definition-6PZWZM2Y.mjs +0 -30
  407. package/dist/lib/browser/blueprint-definition-6PZWZM2Y.mjs.map +0 -7
  408. package/dist/lib/browser/chunk-2SXDKBM7.mjs +0 -304
  409. package/dist/lib/browser/chunk-2SXDKBM7.mjs.map +0 -7
  410. package/dist/lib/browser/chunk-6X7QVTRB.mjs +0 -112
  411. package/dist/lib/browser/chunk-6X7QVTRB.mjs.map +0 -7
  412. package/dist/lib/browser/chunk-75RTLLH4.mjs +0 -155
  413. package/dist/lib/browser/chunk-75RTLLH4.mjs.map +0 -7
  414. package/dist/lib/browser/chunk-7WFISUBY.mjs +0 -647
  415. package/dist/lib/browser/chunk-7WFISUBY.mjs.map +0 -7
  416. package/dist/lib/browser/chunk-EB6AXFXO.mjs.map +0 -7
  417. package/dist/lib/browser/chunk-MQHBMJLH.mjs +0 -103
  418. package/dist/lib/browser/chunk-MQHBMJLH.mjs.map +0 -7
  419. package/dist/lib/browser/chunk-S22N3BUR.mjs +0 -88
  420. package/dist/lib/browser/chunk-S22N3BUR.mjs.map +0 -7
  421. package/dist/lib/browser/chunk-UGDRMROB.mjs +0 -542
  422. package/dist/lib/browser/chunk-UGDRMROB.mjs.map +0 -7
  423. package/dist/lib/browser/chunk-UOQ6NCH3.mjs +0 -15
  424. package/dist/lib/browser/chunk-UOQ6NCH3.mjs.map +0 -7
  425. package/dist/lib/browser/compiler-2HV5KXV4.mjs +0 -143
  426. package/dist/lib/browser/compiler-2HV5KXV4.mjs.map +0 -7
  427. package/dist/lib/browser/index.mjs +0 -255
  428. package/dist/lib/browser/index.mjs.map +0 -7
  429. package/dist/lib/browser/intent-resolver-3B4ESSCU.mjs +0 -105
  430. package/dist/lib/browser/intent-resolver-3B4ESSCU.mjs.map +0 -7
  431. package/dist/lib/browser/meta.json +0 -1
  432. package/dist/lib/browser/react-surface-ASV2KBRA.mjs +0 -128
  433. package/dist/lib/browser/react-surface-ASV2KBRA.mjs.map +0 -7
  434. package/dist/lib/browser/settings-4NKLTJTT.mjs +0 -26
  435. package/dist/lib/browser/settings-4NKLTJTT.mjs.map +0 -7
  436. package/dist/lib/browser/types/index.mjs +0 -14
  437. package/dist/lib/node-esm/DeploymentDialog-5EN2KZE5.mjs +0 -16
  438. package/dist/lib/node-esm/NotebookContainer-7RCEXND7.mjs +0 -818
  439. package/dist/lib/node-esm/NotebookContainer-7RCEXND7.mjs.map +0 -7
  440. package/dist/lib/node-esm/ScriptContainer-763IAKOD.mjs +0 -150
  441. package/dist/lib/node-esm/ScriptContainer-763IAKOD.mjs.map +0 -7
  442. package/dist/lib/node-esm/app-graph-builder-NCVLUL5R.mjs +0 -67
  443. package/dist/lib/node-esm/app-graph-builder-NCVLUL5R.mjs.map +0 -7
  444. package/dist/lib/node-esm/blueprint-definition-5R6YCSZZ.mjs +0 -31
  445. package/dist/lib/node-esm/blueprint-definition-5R6YCSZZ.mjs.map +0 -7
  446. package/dist/lib/node-esm/chunk-2S43VHAM.mjs.map +0 -7
  447. package/dist/lib/node-esm/chunk-32AMTGGN.mjs +0 -104
  448. package/dist/lib/node-esm/chunk-32AMTGGN.mjs.map +0 -7
  449. package/dist/lib/node-esm/chunk-4VVV5L5A.mjs +0 -543
  450. package/dist/lib/node-esm/chunk-4VVV5L5A.mjs.map +0 -7
  451. package/dist/lib/node-esm/chunk-535YDI5V.mjs +0 -156
  452. package/dist/lib/node-esm/chunk-535YDI5V.mjs.map +0 -7
  453. package/dist/lib/node-esm/chunk-55JZVM6K.mjs +0 -16
  454. package/dist/lib/node-esm/chunk-55JZVM6K.mjs.map +0 -7
  455. package/dist/lib/node-esm/chunk-6H4FYMCX.mjs +0 -114
  456. package/dist/lib/node-esm/chunk-6H4FYMCX.mjs.map +0 -7
  457. package/dist/lib/node-esm/chunk-DKS2EQW6.mjs +0 -648
  458. package/dist/lib/node-esm/chunk-DKS2EQW6.mjs.map +0 -7
  459. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +0 -11
  460. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +0 -7
  461. package/dist/lib/node-esm/chunk-IBV2DR36.mjs +0 -33
  462. package/dist/lib/node-esm/chunk-IBV2DR36.mjs.map +0 -7
  463. package/dist/lib/node-esm/chunk-NQN3JE2R.mjs +0 -305
  464. package/dist/lib/node-esm/chunk-NQN3JE2R.mjs.map +0 -7
  465. package/dist/lib/node-esm/compiler-KPEZKEHC.mjs +0 -144
  466. package/dist/lib/node-esm/compiler-KPEZKEHC.mjs.map +0 -7
  467. package/dist/lib/node-esm/index.mjs +0 -256
  468. package/dist/lib/node-esm/index.mjs.map +0 -7
  469. package/dist/lib/node-esm/intent-resolver-GIACMXI4.mjs +0 -106
  470. package/dist/lib/node-esm/intent-resolver-GIACMXI4.mjs.map +0 -7
  471. package/dist/lib/node-esm/meta.json +0 -1
  472. package/dist/lib/node-esm/react-surface-NXBO7VYB.mjs +0 -129
  473. package/dist/lib/node-esm/react-surface-NXBO7VYB.mjs.map +0 -7
  474. package/dist/lib/node-esm/settings-PW5NXWLW.mjs +0 -27
  475. package/dist/lib/node-esm/settings-PW5NXWLW.mjs.map +0 -7
  476. package/dist/lib/node-esm/templates/index.mjs +0 -11
  477. package/dist/lib/node-esm/types/index.mjs +0 -15
  478. package/dist/types/src/capabilities/capabilities.d.ts +0 -5
  479. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  480. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  481. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  482. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.d.ts.map +0 -1
  483. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts +0 -251
  484. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts.map +0 -1
  485. package/dist/types/src/components/DeploymentDialog/index.d.ts +0 -4
  486. package/dist/types/src/components/DeploymentDialog/index.d.ts.map +0 -1
  487. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts.map +0 -1
  488. package/dist/types/src/components/FrameContainer/frame.d.ts +0 -2
  489. package/dist/types/src/components/FrameContainer/frame.d.ts.map +0 -1
  490. package/dist/types/src/components/FrameContainer/index.d.ts +0 -2
  491. package/dist/types/src/components/FrameContainer/index.d.ts.map +0 -1
  492. package/dist/types/src/components/NotebookContainer.d.ts +0 -10
  493. package/dist/types/src/components/NotebookContainer.d.ts.map +0 -1
  494. package/dist/types/src/components/NotebookContainer.stories.d.ts +0 -254
  495. package/dist/types/src/components/NotebookContainer.stories.d.ts.map +0 -1
  496. package/dist/types/src/components/ScriptContainer.d.ts +0 -12
  497. package/dist/types/src/components/ScriptContainer.d.ts.map +0 -1
  498. package/dist/types/src/components/Settings/ScriptObjectSettings.d.ts +0 -8
  499. package/dist/types/src/components/Settings/ScriptObjectSettings.d.ts.map +0 -1
  500. package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts +0 -6
  501. package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts.map +0 -1
  502. package/dist/types/src/components/Settings/index.d.ts +0 -3
  503. package/dist/types/src/components/Settings/index.d.ts.map +0 -1
  504. package/dist/types/src/components/TestPanel/TestContainer.d.ts +0 -8
  505. package/dist/types/src/components/TestPanel/TestContainer.d.ts.map +0 -1
  506. package/dist/types/src/events.d.ts +0 -4
  507. package/dist/types/src/events.d.ts.map +0 -1
  508. package/dist/types/src/templates/chess.d.ts +0 -8
  509. package/dist/types/src/templates/chess.d.ts.map +0 -1
  510. package/dist/types/src/testing/data.d.ts +0 -3
  511. package/dist/types/src/testing/data.d.ts.map +0 -1
  512. package/dist/types/src/testing/deploy.test.d.ts +0 -2
  513. package/dist/types/src/testing/deploy.test.d.ts.map +0 -1
  514. package/dist/types/src/types/actions.d.ts +0 -54
  515. package/dist/types/src/types/actions.d.ts.map +0 -1
  516. package/src/capabilities/capabilities.ts +0 -12
  517. package/src/capabilities/intent-resolver.ts +0 -86
  518. package/src/components/DeploymentDialog/DeploymentDialog.stories.tsx +0 -58
  519. package/src/components/DeploymentDialog/DeploymentDialog.tsx +0 -123
  520. package/src/components/DeploymentDialog/index.ts +0 -9
  521. package/src/components/FrameContainer/frame.html +0 -25
  522. package/src/components/FrameContainer/frame.tsx +0 -51
  523. package/src/components/NotebookContainer.stories.tsx +0 -83
  524. package/src/components/ScriptContainer.tsx +0 -70
  525. package/src/components/Settings/ScriptObjectSettings.tsx +0 -298
  526. package/src/components/Settings/ScriptPluginSettings.tsx +0 -61
  527. package/src/components/Settings/index.ts +0 -6
  528. package/src/components/TestPanel/TestContainer.tsx +0 -27
  529. package/src/events.ts +0 -11
  530. package/src/templates/chess.ts +0 -50
  531. package/src/testing/deploy.test.ts +0 -63
  532. package/src/types/actions.ts +0 -53
  533. /package/dist/lib/{browser/templates → neutral/blueprints}/index.mjs.map +0 -0
  534. /package/dist/lib/{browser → neutral}/chunk-J5LGTIGS.mjs +0 -0
  535. /package/dist/lib/{browser → neutral}/chunk-J5LGTIGS.mjs.map +0 -0
  536. /package/dist/lib/{browser/types → neutral}/index.mjs.map +0 -0
  537. /package/dist/lib/{browser/DeploymentDialog-FIHD4UVK.mjs.map → neutral/meta.mjs.map} +0 -0
  538. /package/dist/lib/{node-esm/templates → neutral/operations}/index.mjs.map +0 -0
  539. /package/dist/lib/{node-esm/types → neutral/templates}/index.mjs.map +0 -0
  540. /package/dist/lib/{node-esm/DeploymentDialog-5EN2KZE5.mjs.map → neutral/types/index.mjs.map} +0 -0
@@ -4,39 +4,42 @@
4
4
 
5
5
  import * as Schema from 'effect/Schema';
6
6
 
7
- import { Prompt } from '@dxos/blueprints';
8
- import { Obj, Type } from '@dxos/echo';
7
+ import { Routine } from '@dxos/compute';
8
+ import { Annotation, Obj, Ref, Type } from '@dxos/echo';
9
9
  import { FormInputAnnotation } from '@dxos/echo/internal';
10
10
  import { LabelAnnotation } from '@dxos/echo/internal';
11
- import { Graph } from '@dxos/plugin-explorer/types';
11
+ import { Graph } from '@dxos/plugin-explorer';
12
12
  import { Text } from '@dxos/schema';
13
13
 
14
14
  export type CellType = 'markdown' | 'script' | 'query' | 'prompt' | 'view';
15
15
 
16
- const Cell_ = Schema.Struct({
16
+ export const Cell = Schema.Struct({
17
17
  id: Schema.String,
18
18
  type: Schema.String,
19
19
  name: Schema.optional(Schema.String),
20
20
  // TODO(burdon): Union type.
21
- source: Schema.optional(Type.Ref(Text.Text)),
22
- prompt: Schema.optional(Type.Ref(Prompt.Prompt)),
23
- graph: Schema.optional(Type.Ref(Graph.Graph)),
24
- }).pipe(Schema.mutable);
25
- export interface Cell extends Schema.Schema.Type<typeof Cell_> {}
26
- export interface Cell_Encoded extends Schema.Schema.Encoded<typeof Cell_> {}
27
- export const Cell: Schema.Schema<Cell, Cell_Encoded> = Cell_;
21
+ source: Schema.optional(Ref.Ref(Text.Text)),
22
+ prompt: Schema.optional(Ref.Ref(Routine.Routine)),
23
+ graph: Schema.optional(Ref.Ref(Graph.Graph)),
24
+ });
25
+
26
+ export interface Cell extends Schema.Schema.Type<typeof Cell> {}
28
27
 
29
28
  export const Notebook = Schema.Struct({
30
29
  name: Schema.String.pipe(Schema.optional),
31
- cells: Cell.pipe(Schema.Array, Schema.mutable, FormInputAnnotation.set(false)),
30
+ cells: Cell.pipe(Schema.Array, FormInputAnnotation.set(false)),
32
31
  }).pipe(
33
- Type.Obj({
34
- typename: 'dxos.org/type/Notebook',
32
+ Type.object({
33
+ typename: 'org.dxos.type.notebook',
35
34
  version: '0.1.0',
36
35
  }),
37
36
  LabelAnnotation.set(['name']),
37
+ Annotation.IconAnnotation.set({
38
+ icon: 'ph--notebook--regular',
39
+ hue: 'sky',
40
+ }),
38
41
  );
39
42
 
40
43
  export type Notebook = Schema.Schema.Type<typeof Notebook>;
41
44
 
42
- export const make = (props: Obj.MakeProps<typeof Notebook> = { cells: [] }) => Obj.make(Notebook, props);
45
+ export const make = (props: Obj.MakeProps<typeof Notebook> = { cells: [] }): Notebook => Obj.make(Notebook, props);
@@ -0,0 +1,18 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ // @import-as-namespace
6
+
7
+ import { type Atom } from '@effect-atom/atom-react';
8
+
9
+ import { Capability } from '@dxos/app-framework';
10
+
11
+ import { meta } from '#meta';
12
+
13
+ import { type Compiler as CompilerType } from '../compiler';
14
+
15
+ // Inline import to avoid `Settings` namespace alias colliding with the
16
+ // `Settings` capability export below.
17
+ export const Settings = Capability.make<Atom.Writable<import('./Settings').Settings>>(`${meta.id}.capability.settings`);
18
+ export const Compiler = Capability.make<CompilerType>(`${meta.id}.capability.compiler`);
@@ -0,0 +1,11 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ // @import-as-namespace
6
+
7
+ import { ActivationEvent } from '@dxos/app-framework';
8
+
9
+ import { meta } from '#meta';
10
+
11
+ export const SetupCompiler = ActivationEvent.make(`${meta.id}.event.setup-compiler`);
@@ -0,0 +1,42 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ // @import-as-namespace
6
+
7
+ import * as Schema from 'effect/Schema';
8
+
9
+ import { Script, Operation } from '@dxos/compute';
10
+ import { Database } from '@dxos/echo';
11
+
12
+ import { meta } from '#meta';
13
+
14
+ import { templates } from '../templates';
15
+
16
+ const SCRIPT_OPERATION = `${meta.id}.operation`;
17
+
18
+ export const ScriptProps = Schema.Struct({
19
+ name: Schema.optional(Schema.String),
20
+ gistUrl: Schema.optional(Schema.String.annotations({ title: 'Import from Gist (url)' })),
21
+ initialTemplateId: Schema.Literal(...templates.map(({ id }) => id)).pipe(
22
+ Schema.annotations({ title: 'Template' }),
23
+ Schema.optional,
24
+ ),
25
+ });
26
+
27
+ export const NotebookProps = Schema.Struct({
28
+ name: Schema.optional(Schema.String),
29
+ });
30
+
31
+ export const CreateScript = Operation.make({
32
+ meta: { key: `${SCRIPT_OPERATION}.create-script`, name: 'Create Script' },
33
+ input: Schema.extend(
34
+ ScriptProps,
35
+ Schema.Struct({
36
+ db: Database.Database,
37
+ }),
38
+ ),
39
+ output: Schema.Struct({
40
+ object: Script.Script,
41
+ }),
42
+ });
@@ -0,0 +1,20 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ // @import-as-namespace
6
+
7
+ import * as Schema from 'effect/Schema';
8
+
9
+ import { EditorInputMode } from '@dxos/ui-editor/types';
10
+
11
+ export const Settings = Schema.mutable(
12
+ Schema.Struct({
13
+ editorInputMode: EditorInputMode.annotations({
14
+ title: 'Editor input mode',
15
+ description: 'Choose the keybinding style for the script editor.',
16
+ }),
17
+ }),
18
+ );
19
+
20
+ export interface Settings extends Schema.Schema.Type<typeof Settings> {}
@@ -2,6 +2,9 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- export * from './actions';
6
- export * as Notebook from './Notebook';
7
5
  export * from './types';
6
+
7
+ export * as Notebook from './Notebook';
8
+ export * as ScriptCapabilities from './ScriptCapabilities';
9
+ export * as ScriptEvents from './ScriptEvents';
10
+ export * as ScriptOperation from './ScriptOperation';
@@ -2,14 +2,4 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import * as Schema from 'effect/Schema';
6
-
7
- import { EditorInputMode } from '@dxos/react-ui-editor';
8
-
9
- export const ScriptSettings = Schema.mutable(
10
- Schema.Struct({
11
- editorInputMode: EditorInputMode,
12
- }),
13
- );
14
-
15
- export type ScriptSettings = Schema.Schema.Type<typeof ScriptSettings>;
5
+ export * as Settings from './Settings';
@@ -3,8 +3,10 @@
3
3
  //
4
4
 
5
5
  import { type Client } from '@dxos/client';
6
+ import { Script, Operation } from '@dxos/compute';
7
+ import { Context } from '@dxos/context';
6
8
  import { Obj, Ref } from '@dxos/echo';
7
- import { Function, type Script, getUserFunctionIdInMetadata } from '@dxos/functions';
9
+ import { getUserFunctionIdInMetadata } from '@dxos/functions';
8
10
  import { bundleFunction } from '@dxos/functions-runtime/bundler';
9
11
  import { FunctionsServiceClient, incrementSemverPatch } from '@dxos/functions-runtime/edge';
10
12
  import { log } from '@dxos/log';
@@ -20,7 +22,7 @@ type DeployScriptProps = {
20
22
  script: Script.Script;
21
23
  client: Client;
22
24
  space: Space;
23
- fn?: Function.Function;
25
+ fn?: Operation.PersistentOperation;
24
26
  existingFunctionId?: string;
25
27
  };
26
28
 
@@ -50,7 +52,7 @@ export const deployScript = async ({
50
52
  }
51
53
 
52
54
  const functionsServiceClient = FunctionsServiceClient.fromClient(client);
53
- const newFunction = await functionsServiceClient.deploy({
55
+ const newFunction = await functionsServiceClient.deploy(Context.default(), {
54
56
  // TODO(dmaretskyi): Space key or identity key.
55
57
  ownerPublicKey: space.key,
56
58
  version: fn ? incrementSemverPatch(fn.version) : '0.0.1',
@@ -61,7 +63,9 @@ export const deployScript = async ({
61
63
  });
62
64
 
63
65
  const storedFunction = createOrUpdateFunctionInSpace(space, fn, script, newFunction);
64
- script.changed = false;
66
+ Obj.update(script, (script) => {
67
+ script.changed = false;
68
+ });
65
69
 
66
70
  return { success: true, functionId: getUserFunctionIdInMetadata(Obj.getMeta(storedFunction)) };
67
71
  } catch (err: any) {
@@ -82,15 +86,17 @@ const validateDeployInputs = (script: Script.Script, space: Space): Error | null
82
86
 
83
87
  const createOrUpdateFunctionInSpace = (
84
88
  space: Space,
85
- fn: Function.Function | undefined,
89
+ fn: Operation.PersistentOperation | undefined,
86
90
  script: Script.Script,
87
- newFunction: Function.Function,
88
- ): Function.Function => {
91
+ newFunction: Operation.PersistentOperation,
92
+ ): Operation.PersistentOperation => {
89
93
  if (fn) {
90
- Function.setFrom(fn, newFunction);
94
+ Operation.setFrom(fn, newFunction);
91
95
  return fn;
92
96
  } else {
93
- newFunction.source = Ref.make(script);
97
+ Obj.update(newFunction, (newFunction) => {
98
+ newFunction.source = Ref.make(script);
99
+ });
94
100
  return space.db.add(newFunction);
95
101
  }
96
102
  };
@@ -2,8 +2,9 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
+ import { type Operation, Script } from '@dxos/compute';
5
6
  import { Obj } from '@dxos/echo';
6
- import { type Function, type Script, getUserFunctionIdInMetadata } from '@dxos/functions';
7
+ import { getUserFunctionIdInMetadata } from '@dxos/functions';
7
8
  import { getInvocationUrl } from '@dxos/functions-runtime';
8
9
  import { type PublicKey } from '@dxos/keys';
9
10
  import { log } from '@dxos/log';
@@ -35,35 +36,37 @@ export const getFunctionUrl = ({
35
36
 
36
37
  export const updateFunctionMetadata = (
37
38
  script: Script.Script,
38
- storedFunction: Function.Function,
39
+ storedFunction: Operation.PersistentOperation,
39
40
  meta: any,
40
41
  functionId: string,
41
42
  ) => {
42
- if (script.description !== undefined && script.description.trim() !== '') {
43
- storedFunction.description = script.description;
44
- } else if (meta.description) {
45
- storedFunction.description = meta.description;
46
- } else {
47
- log.verbose('no description in function metadata', { functionId });
48
- }
43
+ Obj.update(storedFunction, (storedFunction) => {
44
+ if (script.description !== undefined && script.description.trim() !== '') {
45
+ storedFunction.description = script.description;
46
+ } else if (meta.description) {
47
+ storedFunction.description = meta.description;
48
+ } else {
49
+ log.verbose('no description in function metadata', { functionId });
50
+ }
49
51
 
50
- if (meta.inputSchema) {
51
- storedFunction.inputSchema = meta.inputSchema;
52
- } else {
53
- log.verbose('no input schema in function metadata', { functionId });
54
- }
52
+ if (meta.inputSchema) {
53
+ storedFunction.inputSchema = meta.inputSchema;
54
+ } else {
55
+ log.verbose('no input schema in function metadata', { functionId });
56
+ }
55
57
 
56
- if (meta.outputSchema) {
57
- storedFunction.outputSchema = meta.outputSchema;
58
- } else {
59
- log.verbose('no output schema in function metadata', { functionId });
60
- }
58
+ if (meta.outputSchema) {
59
+ storedFunction.outputSchema = meta.outputSchema;
60
+ } else {
61
+ log.verbose('no output schema in function metadata', { functionId });
62
+ }
61
63
 
62
- if (meta.key) {
63
- storedFunction.key = meta.key;
64
- } else {
65
- log.verbose('no key in function metadata', { functionId });
66
- }
64
+ if (meta.key) {
65
+ storedFunction.key = meta.key;
66
+ } else {
67
+ log.verbose('no key in function metadata', { functionId });
68
+ }
69
+ });
67
70
  };
68
71
 
69
72
  export const getAccessCredential = (identityKey: PublicKey): Credential => {
@@ -1,15 +0,0 @@
1
- import {
2
- DEPLOYMENT_DIALOG,
3
- DeploymentDialog_default
4
- } from "./chunk-75RTLLH4.mjs";
5
- import "./chunk-UGDRMROB.mjs";
6
- import "./chunk-MQHBMJLH.mjs";
7
- import "./chunk-S22N3BUR.mjs";
8
- import "./chunk-UOQ6NCH3.mjs";
9
- import "./chunk-EB6AXFXO.mjs";
10
- import "./chunk-J5LGTIGS.mjs";
11
- export {
12
- DEPLOYMENT_DIALOG,
13
- DeploymentDialog_default as default
14
- };
15
- //# sourceMappingURL=DeploymentDialog-FIHD4UVK.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/NotebookContainer.tsx", "../../../src/notebook/compute-graph.ts", "../../../src/notebook/eval.ts", "../../../src/notebook/vfs-parser.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Cause from 'effect/Cause';\nimport * as Effect from 'effect/Effect';\nimport * as Exit from 'effect/Exit';\nimport React, { useCallback, useMemo, useState } from 'react';\n\nimport { Agent } from '@dxos/assistant-toolkit';\nimport { Blueprint, Prompt } from '@dxos/blueprints';\nimport { Filter, Obj, Query, Ref } from '@dxos/echo';\nimport { QueryBuilder } from '@dxos/echo-query';\nimport { type FunctionDefinition, FunctionInvocationService } from '@dxos/functions';\nimport { InvocationTracer } from '@dxos/functions-runtime';\nimport { TracingServiceExt } from '@dxos/functions-runtime';\nimport { invariant } from '@dxos/invariant';\nimport { log } from '@dxos/log';\nimport { useComputeRuntimeCallback } from '@dxos/plugin-automation';\nimport { Graph } from '@dxos/plugin-explorer/types';\nimport { getSpace } from '@dxos/react-client/echo';\nimport { DropdownMenu, IconButton, Toolbar, useTranslation } from '@dxos/react-ui';\nimport { useAttention } from '@dxos/react-ui-attention';\nimport { StackItem } from '@dxos/react-ui-stack';\nimport { Text, View } from '@dxos/schema';\nimport { isNonNullable } from '@dxos/util';\n\nimport { meta } from '../meta';\nimport { ComputeGraph } from '../notebook';\nimport { type Notebook } from '../types';\n\nimport { NotebookMenu, NotebookStack, type NotebookStackProps } from './NotebookStack';\nimport { type TypescriptEditorProps } from './TypescriptEditor';\n\nconst INCLUDE_BLUEPRINTS = ['dxos.org/blueprint/assistant', 'dxos.org/blueprint/markdown'];\n\n// TODO(burdon): Support calling named deployed functions (as with sheet).\n\nexport type NotebookContainerProps = {\n role?: string;\n notebook?: Notebook.Notebook;\n} & Pick<TypescriptEditorProps, 'env'>;\n\nexport const NotebookContainer = ({ notebook, env }: NotebookContainerProps) => {\n const { t } = useTranslation(meta.id);\n const space = getSpace(notebook);\n const attendableId = notebook ? Obj.getDXN(notebook).toString() : '';\n const { hasAttention } = useAttention(attendableId);\n\n // TODO(burdon): Consolidate execution and state (with graph).\n // Generalize ComputeGraph evaluation function (using effects).\n const graph = useMemo(() => notebook && new ComputeGraph(notebook), [notebook]);\n\n const [queryValues, setQueryValues] = useState<Record<string, any>>({});\n const handleExecQueries = useCallback(async () => {\n invariant(space);\n\n const builder = new QueryBuilder();\n for (const cell of notebook?.cells ?? []) {\n if (cell.type === 'query') {\n if (cell.source?.target) {\n const source = cell.source.target.content;\n const { name, filter } = builder.build(source);\n if (filter) {\n const ast = Query.select(filter).ast;\n const graph = cell.graph?.target;\n if (!graph) {\n const { view } = await View.makeFromSpace({ space });\n const graph = Graph.make({ query: { ast }, view });\n cell.graph = Ref.make(graph);\n cell.name = name;\n } else {\n graph.query.ast = ast;\n }\n }\n }\n\n if (cell.name && cell.graph?.target) {\n const graph = Obj.getSnapshot(cell.graph?.target);\n const query = Query.fromAst(graph.query.ast);\n const objects = await space?.db.query(query).run();\n const objectIds = objects?.map((obj) => obj.id);\n setQueryValues((prev) => ({ ...prev, [cell.name!]: objectIds }));\n }\n }\n }\n }, [space, notebook, graph]);\n\n const [promptResults, setPromptResults] = useState<Record<string, string>>({});\n const handleExecPrompts = useComputeRuntimeCallback(\n space,\n Effect.fnUntraced(function* () {\n invariant(graph);\n\n const prompts =\n notebook?.cells\n .filter((cell) => cell.type === 'prompt')\n .map((cell) => cell.prompt)\n .filter(isNonNullable) ?? [];\n\n for (const prompt of prompts) {\n yield* runPrompt({\n prompt,\n input: { ...queryValues, ...graph.valuesByName.value },\n onResult: (result) =>\n setPromptResults((prev) => ({\n ...prev,\n [prompt.dxn.toString()]: result,\n })),\n });\n }\n }),\n [notebook, graph, queryValues],\n );\n\n // TODO(burdon): Cache values in context (preserve when switched).\n const handleCompute = useCallback(async () => {\n // TODO(burdon): Generalize executors (dependencies).\n await graph?.evaluate();\n await handleExecQueries();\n await handleExecPrompts();\n }, [graph, handleExecQueries, handleExecPrompts]);\n\n const handleRearrange = useCallback<NonNullable<NotebookStackProps['onRearrange']>>(\n (source, target) => {\n invariant(notebook);\n const from = notebook.cells.findIndex((cell) => cell.id === source.id);\n const to = notebook.cells.findIndex((cell) => cell.id === target.id);\n if (from != null && to != null) {\n const cell = notebook.cells.splice(from, 1)[0];\n if (cell) {\n notebook.cells.splice(to, 0, cell);\n }\n }\n },\n [notebook],\n );\n\n const handleCellInsert = useCallback<NonNullable<NotebookStackProps['onCellInsert']>>(\n async (type, after) => {\n invariant(notebook);\n const cell: Notebook.Cell = { id: crypto.randomUUID(), type };\n switch (type) {\n case 'markdown':\n case 'script':\n case 'query': {\n cell.source = Ref.make(Text.make());\n break;\n }\n\n case 'prompt': {\n if (space) {\n const objects = await space.db.query(Query.select(Filter.type(Blueprint.Blueprint))).run();\n const blueprints = objects\n .filter((blueprint) => INCLUDE_BLUEPRINTS.includes(blueprint.key))\n .map((blueprint) => Ref.make(blueprint));\n cell.prompt = Ref.make(Prompt.make({ instructions: '', blueprints }));\n }\n break;\n }\n }\n\n const idx = after ? notebook.cells.findIndex((cell) => cell.id === after) : notebook.cells.length;\n notebook.cells.splice(idx, 0, cell);\n },\n [space, notebook],\n );\n\n const handleCellDelete = useCallback<NonNullable<NotebookStackProps['onCellDelete']>>(\n (id) => {\n invariant(notebook);\n const idx = notebook.cells.findIndex((cell) => cell.id === id);\n if (idx !== -1) {\n notebook.cells.splice(idx, 1);\n }\n },\n [notebook],\n );\n\n return (\n <StackItem.Content toolbar>\n <Toolbar.Root disabled={!hasAttention} textBlockWidth>\n <DropdownMenu.Root>\n <DropdownMenu.Trigger asChild>\n <IconButton icon='ph--plus--regular' iconOnly label={t('notebook cell insert label')} />\n </DropdownMenu.Trigger>\n <NotebookMenu onCellInsert={handleCellInsert} />\n </DropdownMenu.Root>\n <Toolbar.IconButton\n icon='ph--play--fill'\n iconOnly\n label={t('compute label')}\n classNames='text-green-500'\n onClick={handleCompute}\n />\n </Toolbar.Root>\n <div role='none' className='flex bs-full overflow-hidden -mis-[1px] -mie-[1px]'>\n <NotebookStack\n classNames='container-max-width border-l border-r border-subduedSeparator'\n space={space}\n notebook={notebook}\n graph={graph}\n env={env}\n promptResults={promptResults}\n onRearrange={handleRearrange}\n onCellInsert={handleCellInsert}\n onCellDelete={handleCellDelete}\n />\n </div>\n </StackItem.Content>\n );\n};\n\nexport default NotebookContainer;\n\n// TODO(wittjosiah): Factor out. Copied from PromptArticle in plugin-assistant.\nconst runPrompt = Effect.fn(function* ({\n prompt,\n input,\n onResult,\n}: {\n prompt: Ref.Ref<Prompt.Prompt>;\n input: Record<string, any>;\n onResult: (result: string) => void;\n}) {\n const inputData: FunctionDefinition.Input<typeof Agent.prompt> = {\n prompt,\n input,\n };\n const tracer = yield* InvocationTracer;\n const trace = yield* tracer.traceInvocationStart({\n target: undefined,\n payload: {\n data: {},\n },\n });\n\n // Invoke the function.\n const result = yield* FunctionInvocationService.invokeFunction(Agent.prompt, inputData).pipe(\n Effect.provide(TracingServiceExt.layerQueue(trace.invocationTraceQueue)),\n Effect.exit,\n );\n\n Exit.match(result, {\n onFailure: (cause) => {\n const error = Cause.prettyErrors(cause)[0];\n log.error(error.message, error.cause ?? error.stack);\n onResult(error.message);\n },\n onSuccess: (result: any) => {\n onResult(result.note);\n },\n });\n\n yield* tracer.traceInvocationEnd({\n trace,\n // TODO(dmaretskyi): Might miss errors.\n exception: Exit.isFailure(result) ? Cause.prettyErrors(result.cause)[0] : undefined,\n });\n});\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Signal, signal } from '@preact/signals-core';\n\nimport { log } from '@dxos/log';\n\nimport { type Notebook } from '../types';\n\nimport { evalScript } from './eval';\nimport { type ParsedExpression, VirtualTypeScriptParser } from './vfs-parser';\n\n/**\n * Compute graph that evaluates the notebook cells.\n */\n// TODO(burdon): Reconcile with @dxos/conductor.\nexport class ComputeGraph {\n private readonly _parser = new VirtualTypeScriptParser();\n\n private _expressions = signal<Record<string, ParsedExpression>>({});\n private _valuesByCellId = signal<Record<string, any>>({});\n private _valuesByName = signal<Record<string, any>>({});\n\n constructor(private readonly _notebook: Notebook.Notebook) {}\n\n /**\n * Parsed expressions by cell ID.\n */\n get expressions(): Signal<Record<string, ParsedExpression>> {\n return this._expressions;\n }\n\n /**\n * Computed values by cell ID.\n */\n get values(): Signal<Record<string, any>> {\n return this._valuesByCellId;\n }\n\n /**\n * Computed values by name.\n */\n get valuesByName(): Signal<Record<string, any>> {\n return this._valuesByName;\n }\n\n /**\n * Get computed value by cell ID.\n */\n getValue(cellId: string) {\n return this._valuesByCellId.value[cellId];\n }\n\n /**\n * Compute values.\n */\n async evaluate() {\n // Parse expressions.\n const { expressions, dependencyGraph } = this.parse();\n this._valuesByCellId.value = {};\n this._valuesByName.value = {};\n\n // Create a map of cell IDs to expressions for easy lookup.\n const cellExpressions = new Map<string, ParsedExpression>();\n Object.entries(expressions).forEach(([id, expr]) => {\n cellExpressions.set(id, expr);\n });\n\n // Topological sort to determine evaluation order.\n const evaluationOrder = this.topologicalSort(Object.keys(expressions), dependencyGraph);\n\n // Values by reference name.\n const valuesByName: Record<string, any> = {};\n const valuesByCellId: Record<string, any> = {};\n\n // Evaluate cells in dependency order.\n for (const cellId of evaluationOrder) {\n const expr = cellExpressions.get(cellId);\n if (!expr) {\n log.error('no expression for cell', { cellId });\n continue;\n }\n\n const cellSource = this._notebook.cells.find((cell) => cell.id === cellId)?.source?.target?.content;\n if (!cellSource) {\n log.error('no source for cell', { cellId });\n continue;\n }\n\n try {\n // For assignments or declarations, evaluate and store the value.\n if (expr.name && expr.value !== undefined) {\n // If the parser extracted a literal value, use it directly.\n valuesByName[expr.name] = expr.value;\n valuesByCellId[cellId] = expr.value;\n } else if (expr.name) {\n // For non-literal assignments, we need to evaluate the expression.\n // The parser identifies it's an assignment, so we can extract the RHS.\n const equalIndex = cellSource.indexOf('=');\n if (equalIndex !== -1) {\n // Find the actual assignment operator (not in strings or other contexts).\n let rhs = cellSource.substring(equalIndex + 1).trim();\n\n // Handle semicolon at the end.\n if (rhs.endsWith(';')) {\n rhs = rhs.slice(0, -1).trim();\n }\n\n const result = await this.eval(rhs, valuesByName);\n valuesByName[expr.name] = result;\n if (typeof result !== 'function') {\n valuesByCellId[cellId] = result;\n }\n }\n } else {\n // For expressions without assignment, just evaluate.\n const result = await this.eval(cellSource, valuesByName);\n valuesByCellId[cellId] = result;\n }\n } catch (error) {\n // TODO(burdon): Set error state.\n log.error('error evaluating cell', { cellId, error });\n }\n }\n\n this._valuesByCellId.value = valuesByCellId;\n this._valuesByName.value = valuesByName;\n return valuesByCellId;\n }\n\n private async eval(source: string, values: Record<string, any>) {\n return evalScript(source, values);\n }\n\n /**\n * Parse expressions.\n */\n parse() {\n const expressions = this._notebook.cells\n .filter((cell) => cell.type === 'script')\n .reduce<Record<string, ParsedExpression>>((acc, cell) => {\n const text = cell.source?.target?.content.trim();\n if (text) {\n const parsed = this._parser.parseExpression(text);\n acc[cell.id] = parsed;\n }\n\n return acc;\n }, {});\n\n // Build dependency graph.\n const dependencyGraph = this.buildDependencyGraph(expressions);\n this._expressions.value = expressions;\n return { expressions, dependencyGraph };\n }\n\n private topologicalSort(nodes: string[], dependencies: Record<string, string[]>): string[] {\n const visited = new Set<string>();\n const result: string[] = [];\n\n const visit = (node: string) => {\n if (visited.has(node)) {\n return;\n }\n\n visited.add(node);\n\n // Visit dependencies first.\n const deps = dependencies[node] || [];\n deps.forEach((dep) => visit(dep));\n result.push(node);\n };\n\n // Visit all nodes.\n nodes.forEach((node) => visit(node));\n return result;\n }\n\n private buildDependencyGraph(expressions: Record<string, ParsedExpression>): Record<string, string[]> {\n // Create a map of variable names to their cell IDs.\n const nameToCellId = new Map<string, string>();\n Object.entries(expressions).forEach(([id, expr]) => {\n if (expr.name) {\n nameToCellId.set(expr.name, id);\n }\n });\n\n // Build the dependency graph using cell IDs.\n const graph: Record<string, string[]> = {};\n Object.entries(expressions).forEach(([id, expr]) => {\n if (expr.references && expr.references.length > 0) {\n // Map variable references to cell IDs.\n const dependencyCellIds = expr.references\n .map((ref) => nameToCellId.get(ref))\n .filter((cellId): cellId is string => cellId !== undefined && cellId !== id);\n\n if (dependencyCellIds.length > 0) {\n graph[id] = dependencyCellIds;\n }\n }\n });\n\n return graph;\n }\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { trim } from '@dxos/util';\n\n/**\n * Evaluate the script (with dependencies as arguments).\n */\nexport const evalScript = async (code: string, deps: Record<string, any> = {}) => {\n // Create a sandboxed environment that blocks access to window and document.\n const sandbox = {\n ...deps,\n\n // Block access to global objects.\n console: undefined,\n document: undefined,\n global: undefined,\n globalThis: undefined,\n self: undefined,\n window: undefined,\n\n // Allow some safe globals.\n Array,\n Boolean,\n Date,\n Error,\n JSON,\n Map,\n Math,\n Number,\n Object,\n Promise,\n RegExp,\n Set,\n String,\n\n // Functions.\n isFinite,\n isNaN,\n parseFloat,\n parseInt,\n\n // Note: undefined and null are not included as they are keywords, not variables.\n };\n\n // Create function with all sandbox keys as parameters.\n const sandboxKeys = Object.keys(sandbox);\n const sandboxValues = Object.values(sandbox);\n\n // eslint-disable-next-line @typescript-eslint/no-implied-eval\n const fn = new Function(\n ...sandboxKeys,\n trim`\n 'use strict';\n return ${code};\n `,\n );\n\n return fn(...sandboxValues);\n};\n\n/**\n * Globals.\n */\nexport const builtIns = new Set([\n // Types.\n 'Array',\n 'Date',\n 'Error',\n 'JSON',\n 'Map',\n 'Math',\n 'Number',\n 'Object',\n 'Promise',\n 'RegExp',\n 'Set',\n 'String',\n\n // Functions.\n 'isFinite',\n 'isNaN',\n 'parseFloat',\n 'parseInt',\n]);\n\n/**\n * Default system definitions.\n */\nexport const systemDefinitions = trim`\n interface Array<T> { length: number; [n: number]: T; }\n interface Boolean {}\n interface Function {}\n interface IArguments {}\n interface Number {}\n interface Object {}\n interface RegExp {}\n interface String { length: number; }\n\n interface CallableFunction extends Function {}\n interface NewableFunction extends Function {}\n\n declare var console: { log(...args: any[]): void };\n`;\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { createSystem, createVirtualTypeScriptEnvironment } from '@typescript/vfs';\nimport ts from 'typescript';\n\nimport { invariant } from '@dxos/invariant';\n\nimport { builtIns, systemDefinitions } from './eval';\n\n/**\n * Default system definitions.\n */\nconst systemFiles: VirtualFile[] = [\n {\n filename: '/lib.d.ts',\n content: systemDefinitions,\n },\n];\n\nexport type ParsedExpression = {\n name?: string;\n type?: 'function' | 'variable' | 'class' | 'interface';\n value?: any;\n valueType?: string;\n parameters?: Array<{ name: string; type: string }>;\n returnType?: string;\n references?: string[];\n};\n\nexport type VirtualFile = {\n filename: string;\n content: string;\n};\n\n/**\n * TypeScript parser using Virtual File System for browser compatibility.\n * This provides full TypeScript analysis including type information.\n */\nexport class VirtualTypeScriptParser {\n protected compilerOptions: ts.CompilerOptions = {\n target: ts.ScriptTarget.ES2020,\n module: ts.ModuleKind.ESNext,\n strict: true,\n esModuleInterop: true,\n skipLibCheck: true,\n forceConsistentCasingInfilenames: true,\n jsx: ts.JsxEmit.React,\n noLib: true, // Don't automatically include default lib files.\n };\n\n /**\n * Parse a single expression or statement.\n */\n parseExpression(input: string): ParsedExpression {\n invariant(input.trim() !== '', 'input must not be empty');\n const files: VirtualFile[] = [{ filename: '/temp.ts', content: input }];\n const analysis = this.analyzeFiles(files);\n\n // If no declarations found, check for standalone expression references.\n if (analysis.length === 0) {\n const sourcefilename = '/temp.ts';\n const env = this.createEnvironment([{ filename: sourcefilename, content: input }]);\n const sourceFile = env.getSourceFile(sourcefilename);\n const typeChecker = env.languageService.getProgram()?.getTypeChecker();\n\n if (sourceFile && typeChecker) {\n // Check for assignment expressions.\n const assignmentInfo = this.findAssignmentExpression(sourceFile, typeChecker);\n if (assignmentInfo) {\n return assignmentInfo;\n }\n\n const references = this.findAllReferences(sourceFile, typeChecker);\n return { references };\n }\n }\n\n return analysis[0];\n }\n\n /**\n * Analyze multiple files with full type information.\n */\n analyzeFiles(files: VirtualFile[]): ParsedExpression[] {\n const env = this.createEnvironment(files);\n const results: ParsedExpression[] = [];\n const typeChecker = env.languageService.getProgram()?.getTypeChecker();\n\n // Analyze each file.\n files.forEach((file) => {\n const sourceFile = env.getSourceFile(file.filename);\n if (!sourceFile || !typeChecker) return;\n\n const fileResults = this.analyzeSourceFile(sourceFile, typeChecker);\n results.push(...fileResults);\n });\n\n return results;\n }\n\n /**\n * Analyze a source file with type information.\n */\n protected analyzeSourceFile(sourceFile: ts.SourceFile, typeChecker: ts.TypeChecker): ParsedExpression[] {\n const results: ParsedExpression[] = [];\n\n const visit = (node: ts.Node) => {\n // Function declarations.\n if (ts.isFunctionDeclaration(node) && node.name) {\n const symbol = typeChecker.getSymbolAtLocation(node.name);\n const type = symbol && typeChecker.getTypeOfSymbolAtLocation(symbol, node);\n const signature = type && typeChecker.getSignaturesOfType(type, ts.SignatureKind.Call)[0];\n\n results.push({\n name: node.name.text,\n type: 'function',\n parameters: this.extractParameters(signature, typeChecker),\n returnType: signature ? typeChecker.typeToString(signature.getReturnType()) : 'any',\n references: this.findReferences(node, sourceFile, typeChecker),\n });\n }\n\n // Variable declarations.\n else if (ts.isVariableStatement(node)) {\n node.declarationList.declarations.forEach((declaration) => {\n if (ts.isIdentifier(declaration.name)) {\n const symbol = typeChecker.getSymbolAtLocation(declaration.name);\n const type = symbol && typeChecker.getTypeOfSymbolAtLocation(symbol, declaration);\n\n let kind: 'function' | 'variable' = 'variable';\n let parameters: Array<{ name: string; type: string }> | undefined;\n let returnType: string | undefined;\n let value: any;\n\n // Get the type string.\n const typeString = type ? typeChecker.typeToString(type) : 'any';\n\n // Check if it's a function.\n if (declaration.initializer) {\n if (ts.isArrowFunction(declaration.initializer) || ts.isFunctionExpression(declaration.initializer)) {\n kind = 'function';\n const funcType = typeChecker.getTypeAtLocation(declaration.initializer);\n const signature = typeChecker.getSignaturesOfType(funcType, ts.SignatureKind.Call)[0];\n if (signature) {\n parameters = this.extractParameters(signature, typeChecker);\n returnType = typeChecker.typeToString(signature.getReturnType());\n }\n } else {\n // Extract literal values\n if (ts.isNumericLiteral(declaration.initializer)) {\n value = Number(declaration.initializer.text);\n } else if (ts.isStringLiteral(declaration.initializer)) {\n value = declaration.initializer.text;\n }\n }\n }\n\n // Find references in the initializer only.\n const refs = declaration.initializer\n ? this.findReferences(declaration.initializer, sourceFile, typeChecker)\n : [];\n\n results.push({\n name: declaration.name.text,\n type: kind,\n valueType: typeString,\n value,\n parameters,\n returnType,\n references: refs,\n });\n }\n });\n }\n\n // Class declarations.\n else if (ts.isClassDeclaration(node) && node.name) {\n results.push({\n name: node.name.text,\n type: 'class',\n references: this.findReferences(node, sourceFile, typeChecker),\n });\n }\n\n // Interface declarations.\n else if (ts.isInterfaceDeclaration(node)) {\n results.push({\n name: node.name.text,\n type: 'interface',\n references: this.findReferences(node, sourceFile, typeChecker),\n });\n }\n\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n return results;\n }\n\n /**\n * Extract parameter information from a signature.\n */\n private extractParameters(\n signature: ts.Signature | undefined,\n typeChecker: ts.TypeChecker,\n ): Array<{ name: string; type: string }> {\n if (!signature) return [];\n\n return signature.parameters.map((param) => ({\n name: param.getName(),\n type: typeChecker.typeToString(typeChecker.getTypeOfSymbolAtLocation(param, param.valueDeclaration!)),\n }));\n }\n\n /**\n * Find all references to variables used in a node.\n */\n private findReferences(node: ts.Node, _sourceFile: ts.SourceFile, _typeChecker: ts.TypeChecker): string[] {\n const references = new Set<string>();\n const localSymbols = new Set<string>();\n\n // First, collect local symbols (parameters, local variables).\n const collectLocalSymbols = (node: ts.Node) => {\n if (ts.isFunctionDeclaration(node) || ts.isArrowFunction(node) || ts.isFunctionExpression(node)) {\n node.parameters.forEach((param) => {\n if (ts.isIdentifier(param.name)) {\n localSymbols.add(param.name.text);\n }\n });\n }\n\n if (ts.isVariableDeclaration(node) && ts.isIdentifier(node.name)) {\n localSymbols.add(node.name.text);\n }\n\n ts.forEachChild(node, collectLocalSymbols);\n };\n\n collectLocalSymbols(node);\n\n // Then find all identifier references.\n const findRefs = (node: ts.Node) => {\n if (ts.isIdentifier(node)) {\n // Skip if it's a local symbol.\n if (!localSymbols.has(node.text)) {\n // Check if it's a reference (not a declaration).\n const parent = node.parent;\n const isDeclaration =\n (ts.isVariableDeclaration(parent) && parent.name === node) ||\n (ts.isFunctionDeclaration(parent) && parent.name === node) ||\n (ts.isParameter(parent) && parent.name === node);\n\n if (!isDeclaration && !this.isBuiltIn(node.text)) {\n references.add(node.text);\n }\n }\n }\n ts.forEachChild(node, findRefs);\n };\n\n findRefs(node);\n return Array.from(references);\n }\n\n /**\n * Check if a name is a built-in global.\n */\n protected isBuiltIn(name: string): boolean {\n return builtIns.has(name);\n }\n\n /**\n * Find assignment expressions in a source file.\n */\n private findAssignmentExpression(sourceFile: ts.SourceFile, typeChecker: ts.TypeChecker): ParsedExpression | null {\n let result: ParsedExpression | null = null;\n\n const visit = (node: ts.Node) => {\n if (ts.isExpressionStatement(node) && ts.isBinaryExpression(node.expression)) {\n const expr = node.expression;\n if (expr.operatorToken.kind === ts.SyntaxKind.EqualsToken && ts.isIdentifier(expr.left)) {\n const type = typeChecker.getTypeAtLocation(expr.right);\n const typeString = typeChecker.typeToString(type);\n\n // Get the literal value if it's a literal.\n let value: any;\n if (ts.isNumericLiteral(expr.right)) {\n value = Number(expr.right.text);\n } else if (ts.isStringLiteral(expr.right)) {\n value = expr.right.text;\n }\n\n // Find references in the right-hand side.\n const references = this.findReferences(expr.right, sourceFile, typeChecker);\n\n result = {\n name: expr.left.text,\n type: 'variable',\n valueType: typeString,\n value,\n references,\n };\n }\n }\n if (!result) {\n ts.forEachChild(node, visit);\n }\n };\n\n visit(sourceFile);\n return result;\n }\n\n /**\n * Find all identifier references in a source file.\n */\n protected findAllReferences(sourceFile: ts.SourceFile, _typeChecker: ts.TypeChecker): string[] {\n const references = new Set<string>();\n\n const visit = (node: ts.Node) => {\n if (ts.isIdentifier(node)) {\n // Skip if it's a declaration.\n const parent = node.parent;\n const isDeclaration =\n (ts.isVariableDeclaration(parent) && parent.name === node) ||\n (ts.isFunctionDeclaration(parent) && parent.name === node) ||\n (ts.isParameter(parent) && parent.name === node);\n\n // Skip if it's the left-hand side of an assignment.\n const isAssignmentTarget =\n ts.isBinaryExpression(parent) &&\n parent.operatorToken.kind === ts.SyntaxKind.EqualsToken &&\n parent.left === node;\n\n if (!isDeclaration && !isAssignmentTarget && !this.isBuiltIn(node.text)) {\n references.add(node.text);\n }\n }\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n return Array.from(references);\n }\n\n protected createEnvironment(files: VirtualFile[]) {\n const allFiles = [...systemFiles, ...files];\n\n const fileMap = new Map<string, string>();\n allFiles.forEach(({ filename, content }) => {\n fileMap.set(filename, content);\n });\n\n const system = createSystem(fileMap);\n return createVirtualTypeScriptEnvironment(\n system,\n allFiles.map(({ filename }) => filename),\n ts,\n this.compilerOptions,\n );\n }\n}\n\n/**\n * Notebook-specific parser with dependency analysis.\n */\nexport class NotebookVirtualParser extends VirtualTypeScriptParser {\n /**\n * Analyze notebook cells with full type checking.\n */\n analyzeNotebook(cells: Array<{ id: string; code: string }>) {\n // Create cumulative environment where each cell can see previous cells.\n const cumulativeCode: string[] = [];\n const cellAnalysis: Map<\n string,\n {\n exports: ParsedExpression[];\n imports: string[];\n errors: ts.Diagnostic[];\n }\n > = new Map();\n\n cells.forEach((cell) => {\n // Create files for all cells up to current.\n const files: VirtualFile[] = [];\n\n // Add previous cells as context.\n if (cumulativeCode.length > 0) {\n files.push({\n filename: '/context.ts',\n content: cumulativeCode.join('\\n'),\n });\n }\n\n // Add current cell.\n const filename = `/cell/${cell.id}.ts`;\n files.push({\n filename,\n content: cell.code,\n });\n\n // Create environment.\n const env = this.createEnvironment(files);\n\n // Get diagnostics (errors).\n const diagnostics = env.languageService.getSemanticDiagnostics(filename);\n\n // Analyze current cell.\n const sourceFile = env.getSourceFile(filename);\n const typeChecker = env.languageService.getProgram()?.getTypeChecker();\n\n if (sourceFile && typeChecker) {\n const exports = this.analyzeSourceFile(sourceFile, typeChecker);\n\n // Find all references in the current cell.\n const allRefs = new Set<string>();\n exports.forEach((exp) => {\n exp.references?.forEach((ref) => allRefs.add(ref));\n });\n\n // Also check for references not in exports (e.g., console.log(y)).\n const additionalRefs = this.findAllReferences(sourceFile, typeChecker);\n additionalRefs.forEach((ref) => allRefs.add(ref));\n\n // Determine which references are imports from previous cells.\n const previousExports = new Set<string>();\n for (const [_prevCellId, prevAnalysis] of cellAnalysis) {\n prevAnalysis.exports.forEach((exp) => {\n if (exp.name) previousExports.add(exp.name);\n });\n }\n\n const imports = Array.from(allRefs).filter((ref) => previousExports.has(ref));\n\n cellAnalysis.set(cell.id, {\n exports,\n imports,\n errors: diagnostics,\n });\n }\n\n // Add current cell code to cumulative.\n cumulativeCode.push(cell.code);\n });\n\n return cellAnalysis;\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["Cause", "Effect", "Exit", "React", "useCallback", "useMemo", "useState", "Agent", "Blueprint", "Prompt", "Filter", "Obj", "Query", "Ref", "QueryBuilder", "FunctionInvocationService", "InvocationTracer", "TracingServiceExt", "invariant", "log", "useComputeRuntimeCallback", "Graph", "getSpace", "DropdownMenu", "IconButton", "Toolbar", "useTranslation", "useAttention", "StackItem", "Text", "View", "isNonNullable", "signal", "log", "trim", "evalScript", "code", "deps", "sandbox", "console", "undefined", "document", "global", "globalThis", "self", "window", "Array", "Boolean", "Date", "Error", "JSON", "Map", "Math", "Number", "Object", "Promise", "RegExp", "Set", "String", "isFinite", "isNaN", "parseFloat", "parseInt", "sandboxKeys", "keys", "sandboxValues", "values", "fn", "Function", "trim", "builtIns", "systemDefinitions", "createSystem", "createVirtualTypeScriptEnvironment", "ts", "invariant", "systemFiles", "filename", "content", "systemDefinitions", "VirtualTypeScriptParser", "compilerOptions", "target", "ts", "ScriptTarget", "ES2020", "module", "ModuleKind", "ESNext", "strict", "esModuleInterop", "skipLibCheck", "forceConsistentCasingInfilenames", "jsx", "JsxEmit", "React", "noLib", "parseExpression", "input", "invariant", "trim", "files", "analysis", "analyzeFiles", "length", "sourcefilename", "env", "createEnvironment", "sourceFile", "getSourceFile", "typeChecker", "languageService", "getProgram", "getTypeChecker", "assignmentInfo", "findAssignmentExpression", "references", "findAllReferences", "results", "forEach", "file", "fileResults", "analyzeSourceFile", "push", "visit", "node", "isFunctionDeclaration", "name", "symbol", "getSymbolAtLocation", "type", "getTypeOfSymbolAtLocation", "signature", "getSignaturesOfType", "SignatureKind", "Call", "text", "parameters", "extractParameters", "returnType", "typeToString", "getReturnType", "findReferences", "isVariableStatement", "declarationList", "declarations", "declaration", "isIdentifier", "kind", "value", "typeString", "initializer", "isArrowFunction", "isFunctionExpression", "funcType", "getTypeAtLocation", "isNumericLiteral", "Number", "isStringLiteral", "refs", "valueType", "isClassDeclaration", "isInterfaceDeclaration", "forEachChild", "map", "param", "getName", "valueDeclaration", "_sourceFile", "_typeChecker", "Set", "localSymbols", "collectLocalSymbols", "add", "isVariableDeclaration", "findRefs", "has", "parent", "isDeclaration", "isParameter", "isBuiltIn", "Array", "from", "builtIns", "result", "isExpressionStatement", "isBinaryExpression", "expression", "expr", "operatorToken", "SyntaxKind", "EqualsToken", "left", "right", "isAssignmentTarget", "allFiles", "fileMap", "Map", "set", "system", "createSystem", "createVirtualTypeScriptEnvironment", "ComputeGraph", "_parser", "VirtualTypeScriptParser", "_expressions", "signal", "_valuesByCellId", "_valuesByName", "_notebook", "expressions", "values", "valuesByName", "getValue", "cellId", "value", "evaluate", "dependencyGraph", "parse", "cellExpressions", "Map", "Object", "entries", "forEach", "id", "expr", "set", "evaluationOrder", "topologicalSort", "keys", "valuesByCellId", "get", "log", "error", "cellSource", "cells", "find", "cell", "source", "target", "content", "name", "undefined", "equalIndex", "indexOf", "rhs", "substring", "trim", "endsWith", "slice", "result", "eval", "evalScript", "filter", "type", "reduce", "acc", "text", "parsed", "parseExpression", "buildDependencyGraph", "nodes", "dependencies", "visited", "Set", "visit", "node", "has", "add", "deps", "dep", "push", "nameToCellId", "graph", "references", "length", "dependencyCellIds", "map", "ref", "INCLUDE_BLUEPRINTS", "NotebookContainer", "notebook", "env", "t", "useTranslation", "meta", "id", "space", "getSpace", "attendableId", "Obj", "getDXN", "toString", "hasAttention", "useAttention", "graph", "useMemo", "ComputeGraph", "queryValues", "setQueryValues", "useState", "handleExecQueries", "useCallback", "invariant", "builder", "QueryBuilder", "cell", "cells", "type", "source", "target", "content", "name", "filter", "build", "ast", "Query", "select", "view", "View", "makeFromSpace", "Graph", "make", "query", "Ref", "getSnapshot", "fromAst", "objects", "db", "run", "objectIds", "map", "obj", "prev", "promptResults", "setPromptResults", "handleExecPrompts", "useComputeRuntimeCallback", "fnUntraced", "prompts", "prompt", "isNonNullable", "runPrompt", "input", "valuesByName", "value", "onResult", "result", "dxn", "handleCompute", "evaluate", "handleRearrange", "from", "findIndex", "to", "splice", "handleCellInsert", "after", "crypto", "randomUUID", "Text", "Filter", "Blueprint", "blueprints", "blueprint", "includes", "key", "Prompt", "instructions", "idx", "length", "handleCellDelete", "StackItem", "Content", "toolbar", "Toolbar", "Root", "disabled", "textBlockWidth", "DropdownMenu", "Trigger", "asChild", "IconButton", "icon", "iconOnly", "label", "NotebookMenu", "onCellInsert", "classNames", "onClick", "div", "role", "className", "NotebookStack", "onRearrange", "onCellDelete", "fn", "inputData", "tracer", "InvocationTracer", "trace", "traceInvocationStart", "undefined", "payload", "data", "FunctionInvocationService", "invokeFunction", "Agent", "pipe", "provide", "TracingServiceExt", "layerQueue", "invocationTraceQueue", "exit", "Exit", "match", "onFailure", "cause", "error", "prettyErrors", "log", "message", "stack", "onSuccess", "note", "traceInvocationEnd", "exception", "isFailure"]
7
- }
@@ -1,149 +0,0 @@
1
- import {
2
- TypescriptEditor
3
- } from "./chunk-6X7QVTRB.mjs";
4
- import {
5
- createDeploy,
6
- createFormat,
7
- createTemplateSelect,
8
- useDeployDeps,
9
- useDeployState,
10
- useToolbarState
11
- } from "./chunk-UGDRMROB.mjs";
12
- import "./chunk-MQHBMJLH.mjs";
13
- import "./chunk-S22N3BUR.mjs";
14
- import "./chunk-UOQ6NCH3.mjs";
15
- import {
16
- meta
17
- } from "./chunk-EB6AXFXO.mjs";
18
- import "./chunk-J5LGTIGS.mjs";
19
-
20
- // src/components/ScriptContainer.tsx
21
- import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
22
- import React2, { useMemo as useMemo2 } from "react";
23
- import { createDocAccessor } from "@dxos/echo-db";
24
- import { getSpace } from "@dxos/react-client/echo";
25
- import { useIdentity } from "@dxos/react-client/halo";
26
- import { createDataExtensions, listener, stackItemContentEditorClassNames } from "@dxos/react-ui-editor";
27
- import { StackItem } from "@dxos/react-ui-stack";
28
-
29
- // src/components/ScriptToolbar/ScriptToolbar.tsx
30
- import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
31
- import { Atom } from "@effect-atom/atom-react";
32
- import React, { useMemo } from "react";
33
- import { Obj } from "@dxos/echo";
34
- import { ElevationProvider, useTranslation } from "@dxos/react-ui";
35
- import { MenuProvider, ToolbarMenu, atomFromSignal, createGapSeparator, useMenuActions } from "@dxos/react-ui-menu";
36
- var ScriptToolbar = ({ script, role, state }) => {
37
- var _effect = _useSignals();
38
- try {
39
- const { t } = useTranslation(meta.id);
40
- const options = useDeployDeps({
41
- script
42
- });
43
- const menu = useMemo(() => createToolbarActions({
44
- state,
45
- script,
46
- t,
47
- ...options
48
- }), [
49
- state,
50
- script,
51
- options,
52
- t
53
- ]);
54
- const actions = useMenuActions(menu);
55
- return /* @__PURE__ */ React.createElement(ElevationProvider, {
56
- elevation: role === "section" ? "positioned" : "base"
57
- }, /* @__PURE__ */ React.createElement(MenuProvider, {
58
- ...actions,
59
- attendableId: Obj.getDXN(script).toString()
60
- }, /* @__PURE__ */ React.createElement(ToolbarMenu, null)));
61
- } finally {
62
- _effect.f();
63
- }
64
- };
65
- var createToolbarActions = ({ state, script, ...options }) => Atom.make((get) => get(atomFromSignal(() => {
66
- const templateSelect = createTemplateSelect(script);
67
- const format = createFormat(script);
68
- const gap = createGapSeparator();
69
- const deploy = createDeploy({
70
- state,
71
- script,
72
- ...options
73
- });
74
- return {
75
- nodes: [
76
- ...templateSelect.nodes,
77
- ...format.nodes,
78
- ...gap.nodes,
79
- ...deploy.nodes
80
- ],
81
- edges: [
82
- ...templateSelect.edges,
83
- ...format.edges,
84
- ...gap.edges,
85
- ...deploy.edges
86
- ]
87
- };
88
- })));
89
-
90
- // src/components/ScriptContainer.tsx
91
- var ScriptContainer = ({ role, script, settings = {
92
- editorInputMode: "vscode"
93
- }, env }) => {
94
- var _effect = _useSignals2();
95
- try {
96
- const identity = useIdentity();
97
- const space = getSpace(script);
98
- const state = useToolbarState();
99
- useDeployState({
100
- state,
101
- script
102
- });
103
- const extensions = useMemo2(() => script.source.target ? [
104
- listener({
105
- onChange: ({ text }) => {
106
- if (script.source.target?.content !== text) {
107
- script.changed = true;
108
- }
109
- }
110
- }),
111
- createDataExtensions({
112
- id: script.id,
113
- text: createDocAccessor(script.source.target, [
114
- "content"
115
- ]),
116
- messenger: space,
117
- identity
118
- })
119
- ] : [], [
120
- identity,
121
- space,
122
- script,
123
- script.source.target
124
- ]);
125
- return /* @__PURE__ */ React2.createElement(StackItem.Content, {
126
- toolbar: true
127
- }, /* @__PURE__ */ React2.createElement(ScriptToolbar, {
128
- state,
129
- role,
130
- script
131
- }), /* @__PURE__ */ React2.createElement(TypescriptEditor, {
132
- id: script.id,
133
- env,
134
- initialValue: script.source?.target?.content,
135
- extensions,
136
- classNames: stackItemContentEditorClassNames(role),
137
- inputMode: settings.editorInputMode,
138
- toolbar: true
139
- }));
140
- } finally {
141
- _effect.f();
142
- }
143
- };
144
- var ScriptContainer_default = ScriptContainer;
145
- export {
146
- ScriptContainer,
147
- ScriptContainer_default as default
148
- };
149
- //# sourceMappingURL=ScriptContainer-F4OK3OG6.mjs.map