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

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 (493) hide show
  1. package/README.md +15 -13
  2. package/dist/lib/browser/DeploymentDialog-WUND47NK.mjs +115 -0
  3. package/dist/lib/browser/DeploymentDialog-WUND47NK.mjs.map +7 -0
  4. package/dist/lib/browser/{NotebookContainer-NBAXYESH.mjs → NotebookContainer-TGHMYWWK.mjs} +47 -54
  5. package/dist/lib/browser/NotebookContainer-TGHMYWWK.mjs.map +7 -0
  6. package/dist/lib/browser/ScriptContainer-BOCXMLNN.mjs +82 -0
  7. package/dist/lib/browser/ScriptContainer-BOCXMLNN.mjs.map +7 -0
  8. package/dist/lib/browser/ScriptObjectSettings-QKJFTSLS.mjs +295 -0
  9. package/dist/lib/browser/ScriptObjectSettings-QKJFTSLS.mjs.map +7 -0
  10. package/dist/lib/browser/ScriptPluginSettings-AMWZF7LZ.mjs +47 -0
  11. package/dist/lib/browser/ScriptPluginSettings-AMWZF7LZ.mjs.map +7 -0
  12. package/dist/lib/browser/ScriptProperties-VBOIIRJJ.mjs +26 -0
  13. package/dist/lib/browser/ScriptProperties-VBOIIRJJ.mjs.map +7 -0
  14. package/dist/lib/browser/TestContainer-5VNOC6I3.mjs +50 -0
  15. package/dist/lib/browser/TestContainer-5VNOC6I3.mjs.map +7 -0
  16. package/dist/lib/browser/access-token-created-XR7LB2XV.mjs +37 -0
  17. package/dist/lib/browser/access-token-created-XR7LB2XV.mjs.map +7 -0
  18. package/dist/lib/browser/blueprints/index.mjs +53 -3
  19. package/dist/lib/browser/blueprints/index.mjs.map +4 -4
  20. package/dist/lib/browser/chunk-AE5EX2VP.mjs +78 -0
  21. package/dist/lib/browser/chunk-AE5EX2VP.mjs.map +7 -0
  22. package/dist/lib/browser/{chunk-UX4GHJ5E.mjs → chunk-DL37UOJE.mjs} +29 -29
  23. package/dist/lib/browser/chunk-DL37UOJE.mjs.map +7 -0
  24. package/dist/lib/browser/chunk-TXVJW26E.mjs +50 -0
  25. package/dist/lib/browser/chunk-TXVJW26E.mjs.map +7 -0
  26. package/dist/lib/browser/chunk-ZLF66W2O.mjs +337 -0
  27. package/dist/lib/browser/chunk-ZLF66W2O.mjs.map +7 -0
  28. package/dist/lib/browser/create-V3MRNIUS.mjs +45 -0
  29. package/dist/lib/browser/create-V3MRNIUS.mjs.map +7 -0
  30. package/dist/lib/browser/create-script-IEY3HJ33.mjs +46 -0
  31. package/dist/lib/browser/create-script-IEY3HJ33.mjs.map +7 -0
  32. package/dist/lib/browser/delete-7QKDZ2QS.mjs +21 -0
  33. package/dist/lib/browser/delete-7QKDZ2QS.mjs.map +7 -0
  34. package/dist/lib/browser/deploy-SM2V6SNL.mjs +65 -0
  35. package/dist/lib/browser/deploy-SM2V6SNL.mjs.map +7 -0
  36. package/dist/lib/browser/index.mjs +1153 -176
  37. package/dist/lib/browser/index.mjs.map +4 -4
  38. package/dist/lib/browser/inspect-invocations-L4GAXXT3.mjs +55 -0
  39. package/dist/lib/browser/inspect-invocations-L4GAXXT3.mjs.map +7 -0
  40. package/dist/lib/browser/install-function-YDAA5EB6.mjs +54 -0
  41. package/dist/lib/browser/install-function-YDAA5EB6.mjs.map +7 -0
  42. package/dist/lib/browser/invoke-OKJMYOZB.mjs +36 -0
  43. package/dist/lib/browser/invoke-OKJMYOZB.mjs.map +7 -0
  44. package/dist/lib/browser/meta.json +1 -1
  45. package/dist/lib/browser/operations/index.mjs +14 -0
  46. package/dist/lib/browser/operations/index.mjs.map +7 -0
  47. package/dist/lib/browser/query-deployed-functions-L3SIQHB5.mjs +33 -0
  48. package/dist/lib/browser/query-deployed-functions-L3SIQHB5.mjs.map +7 -0
  49. package/dist/lib/browser/read-YL7TNJC7.mjs +26 -0
  50. package/dist/lib/browser/read-YL7TNJC7.mjs.map +7 -0
  51. package/dist/lib/browser/templates/index.mjs +1 -1
  52. package/dist/lib/browser/types/index.mjs +3 -7
  53. package/dist/lib/browser/update-4RC6QH62.mjs +63 -0
  54. package/dist/lib/browser/update-4RC6QH62.mjs.map +7 -0
  55. package/dist/lib/node-esm/DeploymentDialog-XMR2CKP6.mjs +116 -0
  56. package/dist/lib/node-esm/DeploymentDialog-XMR2CKP6.mjs.map +7 -0
  57. package/dist/lib/node-esm/{NotebookContainer-IUAYVJSD.mjs → NotebookContainer-YUVZF6IS.mjs} +47 -54
  58. package/dist/lib/node-esm/NotebookContainer-YUVZF6IS.mjs.map +7 -0
  59. package/dist/lib/node-esm/ScriptContainer-G4D2YSFE.mjs +83 -0
  60. package/dist/lib/node-esm/ScriptContainer-G4D2YSFE.mjs.map +7 -0
  61. package/dist/lib/node-esm/ScriptObjectSettings-XIOE66BL.mjs +296 -0
  62. package/dist/lib/node-esm/ScriptObjectSettings-XIOE66BL.mjs.map +7 -0
  63. package/dist/lib/node-esm/ScriptPluginSettings-SDWEDLUU.mjs +48 -0
  64. package/dist/lib/node-esm/ScriptPluginSettings-SDWEDLUU.mjs.map +7 -0
  65. package/dist/lib/node-esm/ScriptProperties-5H2Z4XRF.mjs +27 -0
  66. package/dist/lib/node-esm/ScriptProperties-5H2Z4XRF.mjs.map +7 -0
  67. package/dist/lib/node-esm/TestContainer-SEFC4F2O.mjs +51 -0
  68. package/dist/lib/node-esm/TestContainer-SEFC4F2O.mjs.map +7 -0
  69. package/dist/lib/node-esm/access-token-created-AZEUHFPA.mjs +38 -0
  70. package/dist/lib/node-esm/access-token-created-AZEUHFPA.mjs.map +7 -0
  71. package/dist/lib/node-esm/blueprints/index.mjs +53 -3
  72. package/dist/lib/node-esm/blueprints/index.mjs.map +4 -4
  73. package/dist/lib/node-esm/chunk-ELIPYPNQ.mjs +79 -0
  74. package/dist/lib/node-esm/chunk-ELIPYPNQ.mjs.map +7 -0
  75. package/dist/lib/node-esm/chunk-QZMVI6AH.mjs +339 -0
  76. package/dist/lib/node-esm/chunk-QZMVI6AH.mjs.map +7 -0
  77. package/dist/lib/node-esm/chunk-U2LUPXPK.mjs +51 -0
  78. package/dist/lib/node-esm/chunk-U2LUPXPK.mjs.map +7 -0
  79. package/dist/lib/node-esm/{chunk-4F5FJZ36.mjs → chunk-ZLTGO4XB.mjs} +29 -29
  80. package/dist/lib/node-esm/chunk-ZLTGO4XB.mjs.map +7 -0
  81. package/dist/lib/node-esm/create-XQAER3WF.mjs +46 -0
  82. package/dist/lib/node-esm/create-XQAER3WF.mjs.map +7 -0
  83. package/dist/lib/node-esm/create-script-2CGVQ3AU.mjs +47 -0
  84. package/dist/lib/node-esm/create-script-2CGVQ3AU.mjs.map +7 -0
  85. package/dist/lib/node-esm/delete-JA2S3K6Z.mjs +22 -0
  86. package/dist/lib/node-esm/delete-JA2S3K6Z.mjs.map +7 -0
  87. package/dist/lib/node-esm/deploy-FILYYRWE.mjs +66 -0
  88. package/dist/lib/node-esm/deploy-FILYYRWE.mjs.map +7 -0
  89. package/dist/lib/node-esm/index.mjs +1153 -176
  90. package/dist/lib/node-esm/index.mjs.map +4 -4
  91. package/dist/lib/node-esm/inspect-invocations-PLSHQCFM.mjs +56 -0
  92. package/dist/lib/node-esm/inspect-invocations-PLSHQCFM.mjs.map +7 -0
  93. package/dist/lib/node-esm/install-function-4TVXEWYF.mjs +55 -0
  94. package/dist/lib/node-esm/install-function-4TVXEWYF.mjs.map +7 -0
  95. package/dist/lib/node-esm/invoke-J4Z7CS44.mjs +37 -0
  96. package/dist/lib/node-esm/invoke-J4Z7CS44.mjs.map +7 -0
  97. package/dist/lib/node-esm/meta.json +1 -1
  98. package/dist/lib/node-esm/operations/index.mjs +15 -0
  99. package/dist/lib/node-esm/operations/index.mjs.map +7 -0
  100. package/dist/lib/node-esm/query-deployed-functions-JBYIJGLW.mjs +34 -0
  101. package/dist/lib/node-esm/query-deployed-functions-JBYIJGLW.mjs.map +7 -0
  102. package/dist/lib/node-esm/read-HDE5XOGZ.mjs +27 -0
  103. package/dist/lib/node-esm/read-HDE5XOGZ.mjs.map +7 -0
  104. package/dist/lib/node-esm/templates/index.mjs +1 -1
  105. package/dist/lib/node-esm/types/index.mjs +3 -7
  106. package/dist/lib/node-esm/update-6O53SY6U.mjs +64 -0
  107. package/dist/lib/node-esm/update-6O53SY6U.mjs.map +7 -0
  108. package/dist/types/src/ScriptPlugin.d.ts.map +1 -1
  109. package/dist/types/src/blueprints/functions/create.d.ts +11 -0
  110. package/dist/types/src/blueprints/functions/create.d.ts.map +1 -0
  111. package/dist/types/src/blueprints/functions/definitions.d.ts +142 -0
  112. package/dist/types/src/blueprints/functions/definitions.d.ts.map +1 -0
  113. package/dist/types/src/blueprints/functions/delete.d.ts +18 -0
  114. package/dist/types/src/blueprints/functions/delete.d.ts.map +1 -0
  115. package/dist/types/src/blueprints/functions/deploy.d.ts +22 -0
  116. package/dist/types/src/blueprints/functions/deploy.d.ts.map +1 -0
  117. package/dist/types/src/blueprints/functions/index.d.ts +4 -0
  118. package/dist/types/src/blueprints/functions/index.d.ts.map +1 -0
  119. package/dist/types/src/blueprints/functions/inspect-invocations.d.ts +30 -0
  120. package/dist/types/src/blueprints/functions/inspect-invocations.d.ts.map +1 -0
  121. package/dist/types/src/blueprints/functions/install-function.d.ts +11 -0
  122. package/dist/types/src/blueprints/functions/install-function.d.ts.map +1 -0
  123. package/dist/types/src/blueprints/functions/invoke.d.ts +22 -0
  124. package/dist/types/src/blueprints/functions/invoke.d.ts.map +1 -0
  125. package/dist/types/src/blueprints/functions/query-deployed-functions.d.ts +13 -0
  126. package/dist/types/src/blueprints/functions/query-deployed-functions.d.ts.map +1 -0
  127. package/dist/types/src/blueprints/functions/read.d.ts +22 -0
  128. package/dist/types/src/blueprints/functions/read.d.ts.map +1 -0
  129. package/dist/types/src/blueprints/functions/update.d.ts +27 -0
  130. package/dist/types/src/blueprints/functions/update.d.ts.map +1 -0
  131. package/dist/types/src/blueprints/index.d.ts +1 -1
  132. package/dist/types/src/blueprints/index.d.ts.map +1 -1
  133. package/dist/types/src/blueprints/script-blueprint.d.ts +3 -21
  134. package/dist/types/src/blueprints/script-blueprint.d.ts.map +1 -1
  135. package/dist/types/src/capabilities/app-graph-builder.d.ts +6 -0
  136. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -0
  137. package/dist/types/src/capabilities/{artifact-definition/artifact-definition.d.ts → artifact-definition.d.ts} +1 -1
  138. package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -0
  139. package/dist/types/src/capabilities/blueprint-definition.d.ts +6 -0
  140. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -0
  141. package/dist/types/src/capabilities/compiler.d.ts +6 -0
  142. package/dist/types/src/capabilities/compiler.d.ts.map +1 -0
  143. package/dist/types/src/capabilities/index.d.ts +12 -6
  144. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  145. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  146. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  147. package/dist/types/src/capabilities/react-surface.d.ts +5 -0
  148. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
  149. package/dist/types/src/capabilities/settings.d.ts +10 -0
  150. package/dist/types/src/capabilities/settings.d.ts.map +1 -0
  151. package/dist/types/src/components/{FrameContainer/FrameContainer.d.ts → FramePanel/FramePanel.d.ts} +3 -3
  152. package/dist/types/src/components/FramePanel/FramePanel.d.ts.map +1 -0
  153. package/dist/types/src/components/FramePanel/index.d.ts +2 -0
  154. package/dist/types/src/components/FramePanel/index.d.ts.map +1 -0
  155. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts +1 -1
  156. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts.map +1 -1
  157. package/dist/types/src/components/NotebookStack/NotebookMenu.d.ts +1 -1
  158. package/dist/types/src/components/NotebookStack/NotebookMenu.d.ts.map +1 -1
  159. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts +8 -2
  160. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts.map +1 -1
  161. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts +240 -228
  162. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts.map +1 -1
  163. package/dist/types/src/components/QueryEditor/QueryEditor.stories.d.ts.map +1 -1
  164. package/dist/types/src/components/ScriptPluginSettings/ScriptPluginSettings.d.ts +8 -0
  165. package/dist/types/src/components/ScriptPluginSettings/ScriptPluginSettings.d.ts.map +1 -0
  166. package/dist/types/src/components/ScriptPluginSettings/ScriptPluginSettings.stories.d.ts +262 -0
  167. package/dist/types/src/components/ScriptPluginSettings/ScriptPluginSettings.stories.d.ts.map +1 -0
  168. package/dist/types/src/components/ScriptPluginSettings/index.d.ts +3 -0
  169. package/dist/types/src/components/ScriptPluginSettings/index.d.ts.map +1 -0
  170. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts +10 -4
  171. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts.map +1 -1
  172. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts +240 -228
  173. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts.map +1 -1
  174. package/dist/types/src/components/TestPanel/TestPanel.d.ts +8 -2
  175. package/dist/types/src/components/TestPanel/TestPanel.d.ts.map +1 -1
  176. package/dist/types/src/components/TestPanel/index.d.ts +0 -1
  177. package/dist/types/src/components/TestPanel/index.d.ts.map +1 -1
  178. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts +7 -1
  179. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts.map +1 -1
  180. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts +7 -1
  181. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts.map +1 -1
  182. package/dist/types/src/components/index.d.ts +6 -5
  183. package/dist/types/src/components/index.d.ts.map +1 -1
  184. package/dist/types/src/constants.d.ts +2 -0
  185. package/dist/types/src/constants.d.ts.map +1 -0
  186. package/dist/types/src/{components → containers}/DeploymentDialog/DeploymentDialog.d.ts +0 -2
  187. package/dist/types/src/containers/DeploymentDialog/DeploymentDialog.d.ts.map +1 -0
  188. package/dist/types/src/containers/DeploymentDialog/DeploymentDialog.stories.d.ts +261 -0
  189. package/dist/types/src/{components → containers}/DeploymentDialog/DeploymentDialog.stories.d.ts.map +1 -1
  190. package/dist/types/src/containers/DeploymentDialog/index.d.ts +3 -0
  191. package/dist/types/src/containers/DeploymentDialog/index.d.ts.map +1 -0
  192. package/dist/types/src/containers/NotebookContainer/NotebookContainer.d.ts +7 -0
  193. package/dist/types/src/containers/NotebookContainer/NotebookContainer.d.ts.map +1 -0
  194. package/dist/types/src/containers/NotebookContainer/NotebookContainer.stories.d.ts.map +1 -0
  195. package/dist/types/src/containers/NotebookContainer/index.d.ts +3 -0
  196. package/dist/types/src/containers/NotebookContainer/index.d.ts.map +1 -0
  197. package/dist/types/src/containers/ScriptContainer/ScriptContainer.d.ts +10 -0
  198. package/dist/types/src/containers/ScriptContainer/ScriptContainer.d.ts.map +1 -0
  199. package/dist/types/src/containers/ScriptContainer/index.d.ts +3 -0
  200. package/dist/types/src/containers/ScriptContainer/index.d.ts.map +1 -0
  201. package/dist/types/src/{components/Settings → containers/ScriptObjectSettings}/ScriptObjectSettings.d.ts +0 -1
  202. package/dist/types/src/containers/ScriptObjectSettings/ScriptObjectSettings.d.ts.map +1 -0
  203. package/dist/types/src/containers/ScriptObjectSettings/index.d.ts +3 -0
  204. package/dist/types/src/containers/ScriptObjectSettings/index.d.ts.map +1 -0
  205. package/dist/types/src/containers/ScriptProperties/ScriptProperties.d.ts +7 -0
  206. package/dist/types/src/containers/ScriptProperties/ScriptProperties.d.ts.map +1 -0
  207. package/dist/types/src/containers/ScriptProperties/index.d.ts +3 -0
  208. package/dist/types/src/containers/ScriptProperties/index.d.ts.map +1 -0
  209. package/dist/types/src/containers/TestContainer/TestContainer.d.ts.map +1 -0
  210. package/dist/types/src/containers/TestContainer/index.d.ts +3 -0
  211. package/dist/types/src/containers/TestContainer/index.d.ts.map +1 -0
  212. package/dist/types/src/containers/index.d.ts +8 -0
  213. package/dist/types/src/containers/index.d.ts.map +1 -0
  214. package/dist/types/src/hooks/deploy.d.ts +19 -5
  215. package/dist/types/src/hooks/deploy.d.ts.map +1 -1
  216. package/dist/types/src/hooks/format.d.ts +1 -0
  217. package/dist/types/src/hooks/format.d.ts.map +1 -1
  218. package/dist/types/src/hooks/template.d.ts +1 -0
  219. package/dist/types/src/hooks/template.d.ts.map +1 -1
  220. package/dist/types/src/hooks/useToolbarState.d.ts.map +1 -1
  221. package/dist/types/src/index.d.ts +1 -0
  222. package/dist/types/src/index.d.ts.map +1 -1
  223. package/dist/types/src/notebook/compute-graph.d.ts +1 -1
  224. package/dist/types/src/notebook/compute-graph.d.ts.map +1 -1
  225. package/dist/types/src/operations/access-token-created.d.ts +5 -0
  226. package/dist/types/src/operations/access-token-created.d.ts.map +1 -0
  227. package/dist/types/src/operations/create-script.d.ts +5 -0
  228. package/dist/types/src/operations/create-script.d.ts.map +1 -0
  229. package/dist/types/src/operations/definitions.d.ts +29 -0
  230. package/dist/types/src/operations/definitions.d.ts.map +1 -0
  231. package/dist/types/src/operations/index.d.ts +4 -0
  232. package/dist/types/src/operations/index.d.ts.map +1 -0
  233. package/dist/types/src/templates/anthropic.d.ts +4 -5
  234. package/dist/types/src/templates/anthropic.d.ts.map +1 -1
  235. package/dist/types/src/templates/chess-bot.d.ts +4 -2
  236. package/dist/types/src/templates/chess-bot.d.ts.map +1 -1
  237. package/dist/types/src/templates/commentary.d.ts +5 -2
  238. package/dist/types/src/templates/commentary.d.ts.map +1 -1
  239. package/dist/types/src/templates/forex-effect.d.ts +3 -2
  240. package/dist/types/src/templates/forex-effect.d.ts.map +1 -1
  241. package/dist/types/src/templates/forex.d.ts +3 -2
  242. package/dist/types/src/templates/forex.d.ts.map +1 -1
  243. package/dist/types/src/templates/index.d.ts +18 -18
  244. package/dist/types/src/templates/ping.d.ts +2 -1
  245. package/dist/types/src/templates/ping.d.ts.map +1 -1
  246. package/dist/types/src/testing/data.d.ts +1 -1
  247. package/dist/types/src/testing/data.d.ts.map +1 -1
  248. package/dist/types/src/translations.d.ts +91 -86
  249. package/dist/types/src/translations.d.ts.map +1 -1
  250. package/dist/types/src/types/Notebook.d.ts +29 -13
  251. package/dist/types/src/types/Notebook.d.ts.map +1 -1
  252. package/dist/types/src/types/Settings.d.ts +6 -0
  253. package/dist/types/src/types/Settings.d.ts.map +1 -0
  254. package/dist/types/src/types/capabilities.d.ts.map +1 -1
  255. package/dist/types/src/types/index.d.ts +0 -1
  256. package/dist/types/src/types/index.d.ts.map +1 -1
  257. package/dist/types/src/types/types.d.ts +1 -5
  258. package/dist/types/src/types/types.d.ts.map +1 -1
  259. package/dist/types/src/util/deploy.d.ts +3 -2
  260. package/dist/types/src/util/deploy.d.ts.map +1 -1
  261. package/dist/types/src/util/functions.d.ts +3 -2
  262. package/dist/types/src/util/functions.d.ts.map +1 -1
  263. package/dist/types/tsconfig.tsbuildinfo +1 -1
  264. package/package.json +107 -85
  265. package/src/ScriptPlugin.tsx +49 -32
  266. package/src/blueprints/functions/create.ts +48 -0
  267. package/src/blueprints/functions/definitions.ts +324 -0
  268. package/src/blueprints/functions/delete.ts +23 -0
  269. package/src/blueprints/functions/deploy.ts +70 -0
  270. package/src/blueprints/functions/index.ts +19 -0
  271. package/src/blueprints/functions/inspect-invocations.ts +55 -0
  272. package/src/blueprints/functions/install-function.ts +56 -0
  273. package/src/blueprints/functions/invoke.ts +35 -0
  274. package/src/blueprints/functions/query-deployed-functions.ts +31 -0
  275. package/src/blueprints/functions/read.ts +30 -0
  276. package/src/blueprints/functions/update.ts +69 -0
  277. package/src/blueprints/index.ts +1 -1
  278. package/src/blueprints/script-blueprint.ts +40 -8
  279. package/src/capabilities/app-graph-builder.ts +47 -0
  280. package/src/capabilities/{artifact-definition/artifact-definition.ts → artifact-definition.ts} +1 -1
  281. package/src/capabilities/blueprint-definition.ts +17 -0
  282. package/src/capabilities/{compiler/compiler.ts → compiler.ts} +2 -2
  283. package/src/capabilities/index.ts +12 -6
  284. package/src/capabilities/operation-handler.ts +20 -0
  285. package/src/capabilities/react-surface.tsx +152 -0
  286. package/src/capabilities/{settings/settings.ts → settings.ts} +7 -6
  287. package/src/components/{FrameContainer/FrameContainer.tsx → FramePanel/FramePanel.tsx} +4 -5
  288. package/src/components/{FrameContainer → FramePanel}/index.ts +1 -1
  289. package/src/components/NotebookStack/NotebookCell.tsx +15 -17
  290. package/src/components/NotebookStack/NotebookMenu.tsx +7 -7
  291. package/src/components/NotebookStack/NotebookStack.stories.tsx +6 -8
  292. package/src/components/NotebookStack/NotebookStack.tsx +26 -15
  293. package/src/components/QueryEditor/QueryEditor.stories.tsx +17 -21
  294. package/src/components/ScriptPluginSettings/ScriptPluginSettings.stories.tsx +32 -0
  295. package/src/components/ScriptPluginSettings/ScriptPluginSettings.tsx +64 -0
  296. package/src/components/ScriptPluginSettings/index.ts +7 -0
  297. package/src/components/ScriptToolbar/ScriptToolbar.stories.tsx +6 -7
  298. package/src/components/ScriptToolbar/ScriptToolbar.tsx +23 -25
  299. package/src/components/TestPanel/TestPanel.tsx +107 -187
  300. package/src/components/TestPanel/index.ts +0 -1
  301. package/src/components/TypescriptEditor/TypescriptEditor.stories.tsx +16 -14
  302. package/src/components/TypescriptEditor/TypescriptEditor.tsx +24 -17
  303. package/src/components/index.ts +7 -8
  304. package/src/constants.ts +7 -0
  305. package/src/{components → containers}/DeploymentDialog/DeploymentDialog.stories.tsx +7 -6
  306. package/src/{components → containers}/DeploymentDialog/DeploymentDialog.tsx +32 -37
  307. package/src/containers/DeploymentDialog/index.ts +7 -0
  308. package/src/{components → containers/NotebookContainer}/NotebookContainer.stories.tsx +16 -19
  309. package/src/{components → containers/NotebookContainer}/NotebookContainer.tsx +54 -57
  310. package/src/containers/NotebookContainer/index.ts +7 -0
  311. package/src/{components → containers/ScriptContainer}/ScriptContainer.tsx +27 -26
  312. package/src/containers/ScriptContainer/index.ts +7 -0
  313. package/src/{components/Settings → containers/ScriptObjectSettings}/ScriptObjectSettings.tsx +51 -65
  314. package/src/containers/ScriptObjectSettings/index.ts +7 -0
  315. package/src/containers/ScriptProperties/ScriptProperties.tsx +33 -0
  316. package/src/containers/ScriptProperties/index.ts +7 -0
  317. package/src/containers/TestContainer/TestContainer.tsx +45 -0
  318. package/src/containers/TestContainer/index.ts +7 -0
  319. package/src/containers/index.ts +12 -0
  320. package/src/e2e/ai.test.ts +6 -5
  321. package/src/e2e/deploy.test.ts +4 -3
  322. package/src/hooks/deploy.ts +14 -13
  323. package/src/hooks/format.ts +5 -4
  324. package/src/hooks/template.ts +7 -7
  325. package/src/hooks/useCompiler.ts +3 -3
  326. package/src/hooks/useCreateAndDeployScriptTemplates.ts +3 -3
  327. package/src/hooks/useToolbarState.ts +7 -6
  328. package/src/index.ts +1 -0
  329. package/src/meta.ts +2 -2
  330. package/src/notebook/compute-graph.test.ts +7 -7
  331. package/src/notebook/compute-graph.ts +1 -1
  332. package/src/operations/access-token-created.ts +36 -0
  333. package/src/operations/create-script.ts +47 -0
  334. package/src/operations/definitions.ts +40 -0
  335. package/src/operations/index.ts +12 -0
  336. package/src/templates/anthropic.ts +19 -12
  337. package/src/templates/chat.ts +1 -1
  338. package/src/templates/chess-bot.ts +37 -34
  339. package/src/templates/commentary.ts +173 -161
  340. package/src/templates/data-generator.ts +1 -1
  341. package/src/templates/discord.ts +3 -3
  342. package/src/templates/forex-effect.ts +30 -19
  343. package/src/templates/forex.ts +24 -15
  344. package/src/templates/gmail.ts +4 -4
  345. package/src/templates/index.ts +18 -18
  346. package/src/templates/ping.ts +16 -8
  347. package/src/testing/data.ts +1 -1
  348. package/src/translations.ts +92 -86
  349. package/src/types/Notebook.ts +9 -5
  350. package/src/types/Settings.ts +17 -0
  351. package/src/types/capabilities.ts +4 -4
  352. package/src/types/events.ts +2 -2
  353. package/src/types/index.ts +0 -1
  354. package/src/types/types.ts +1 -11
  355. package/src/util/deploy.ts +13 -11
  356. package/src/util/functions.ts +9 -8
  357. package/dist/lib/browser/DeploymentDialog-OSL6RMPA.mjs +0 -14
  358. package/dist/lib/browser/DeploymentDialog-OSL6RMPA.mjs.map +0 -7
  359. package/dist/lib/browser/NotebookContainer-NBAXYESH.mjs.map +0 -7
  360. package/dist/lib/browser/ScriptContainer-WD33CJMI.mjs +0 -149
  361. package/dist/lib/browser/ScriptContainer-WD33CJMI.mjs.map +0 -7
  362. package/dist/lib/browser/app-graph-builder-7VO7AUI6.mjs +0 -68
  363. package/dist/lib/browser/app-graph-builder-7VO7AUI6.mjs.map +0 -7
  364. package/dist/lib/browser/blueprint-definition-OSOUYI7A.mjs +0 -17
  365. package/dist/lib/browser/blueprint-definition-OSOUYI7A.mjs.map +0 -7
  366. package/dist/lib/browser/chunk-BTWHM6FH.mjs +0 -270
  367. package/dist/lib/browser/chunk-BTWHM6FH.mjs.map +0 -7
  368. package/dist/lib/browser/chunk-C53UJGSU.mjs +0 -557
  369. package/dist/lib/browser/chunk-C53UJGSU.mjs.map +0 -7
  370. package/dist/lib/browser/chunk-F3QKSKSF.mjs +0 -35
  371. package/dist/lib/browser/chunk-F3QKSKSF.mjs.map +0 -7
  372. package/dist/lib/browser/chunk-I7CSE6T3.mjs +0 -110
  373. package/dist/lib/browser/chunk-I7CSE6T3.mjs.map +0 -7
  374. package/dist/lib/browser/chunk-TWX2NMZN.mjs +0 -137
  375. package/dist/lib/browser/chunk-TWX2NMZN.mjs.map +0 -7
  376. package/dist/lib/browser/chunk-UUR4JNNB.mjs +0 -113
  377. package/dist/lib/browser/chunk-UUR4JNNB.mjs.map +0 -7
  378. package/dist/lib/browser/chunk-UX4GHJ5E.mjs.map +0 -7
  379. package/dist/lib/browser/chunk-WYR4QHPE.mjs +0 -31
  380. package/dist/lib/browser/chunk-WYR4QHPE.mjs.map +0 -7
  381. package/dist/lib/browser/chunk-XCN4D3Z5.mjs +0 -606
  382. package/dist/lib/browser/chunk-XCN4D3Z5.mjs.map +0 -7
  383. package/dist/lib/browser/compiler-76F3QAXC.mjs +0 -161
  384. package/dist/lib/browser/compiler-76F3QAXC.mjs.map +0 -7
  385. package/dist/lib/browser/operation-resolver-HUILPPKT.mjs +0 -82
  386. package/dist/lib/browser/operation-resolver-HUILPPKT.mjs.map +0 -7
  387. package/dist/lib/browser/react-surface-O6GKHB2J.mjs +0 -139
  388. package/dist/lib/browser/react-surface-O6GKHB2J.mjs.map +0 -7
  389. package/dist/lib/browser/settings-3ENI25PI.mjs +0 -35
  390. package/dist/lib/browser/settings-3ENI25PI.mjs.map +0 -7
  391. package/dist/lib/node-esm/DeploymentDialog-OGBJPVIX.mjs +0 -15
  392. package/dist/lib/node-esm/DeploymentDialog-OGBJPVIX.mjs.map +0 -7
  393. package/dist/lib/node-esm/NotebookContainer-IUAYVJSD.mjs.map +0 -7
  394. package/dist/lib/node-esm/ScriptContainer-K7JCEU5Z.mjs +0 -150
  395. package/dist/lib/node-esm/ScriptContainer-K7JCEU5Z.mjs.map +0 -7
  396. package/dist/lib/node-esm/app-graph-builder-NVE3EVBG.mjs +0 -69
  397. package/dist/lib/node-esm/app-graph-builder-NVE3EVBG.mjs.map +0 -7
  398. package/dist/lib/node-esm/blueprint-definition-NC7NNJGI.mjs +0 -18
  399. package/dist/lib/node-esm/blueprint-definition-NC7NNJGI.mjs.map +0 -7
  400. package/dist/lib/node-esm/chunk-4F5FJZ36.mjs.map +0 -7
  401. package/dist/lib/node-esm/chunk-4QNZMXW6.mjs +0 -607
  402. package/dist/lib/node-esm/chunk-4QNZMXW6.mjs.map +0 -7
  403. package/dist/lib/node-esm/chunk-5HSJPAK7.mjs +0 -33
  404. package/dist/lib/node-esm/chunk-5HSJPAK7.mjs.map +0 -7
  405. package/dist/lib/node-esm/chunk-BX5PP6AW.mjs +0 -558
  406. package/dist/lib/node-esm/chunk-BX5PP6AW.mjs.map +0 -7
  407. package/dist/lib/node-esm/chunk-G3J76DWP.mjs +0 -114
  408. package/dist/lib/node-esm/chunk-G3J76DWP.mjs.map +0 -7
  409. package/dist/lib/node-esm/chunk-SLU3KRV3.mjs +0 -112
  410. package/dist/lib/node-esm/chunk-SLU3KRV3.mjs.map +0 -7
  411. package/dist/lib/node-esm/chunk-VQPIA4VF.mjs +0 -138
  412. package/dist/lib/node-esm/chunk-VQPIA4VF.mjs.map +0 -7
  413. package/dist/lib/node-esm/chunk-VWOLKNMO.mjs +0 -271
  414. package/dist/lib/node-esm/chunk-VWOLKNMO.mjs.map +0 -7
  415. package/dist/lib/node-esm/chunk-Y3G5NCTP.mjs +0 -36
  416. package/dist/lib/node-esm/chunk-Y3G5NCTP.mjs.map +0 -7
  417. package/dist/lib/node-esm/compiler-FNZH6TFN.mjs +0 -162
  418. package/dist/lib/node-esm/compiler-FNZH6TFN.mjs.map +0 -7
  419. package/dist/lib/node-esm/operation-resolver-JTCIY6HU.mjs +0 -83
  420. package/dist/lib/node-esm/operation-resolver-JTCIY6HU.mjs.map +0 -7
  421. package/dist/lib/node-esm/react-surface-RLANMVMB.mjs +0 -140
  422. package/dist/lib/node-esm/react-surface-RLANMVMB.mjs.map +0 -7
  423. package/dist/lib/node-esm/settings-7AYC5VXN.mjs +0 -36
  424. package/dist/lib/node-esm/settings-7AYC5VXN.mjs.map +0 -7
  425. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +0 -6
  426. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +0 -1
  427. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +0 -3
  428. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +0 -1
  429. package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts.map +0 -1
  430. package/dist/types/src/capabilities/artifact-definition/index.d.ts +0 -3
  431. package/dist/types/src/capabilities/artifact-definition/index.d.ts.map +0 -1
  432. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +0 -9
  433. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +0 -1
  434. package/dist/types/src/capabilities/blueprint-definition/index.d.ts +0 -3
  435. package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +0 -1
  436. package/dist/types/src/capabilities/compiler/compiler.d.ts +0 -6
  437. package/dist/types/src/capabilities/compiler/compiler.d.ts.map +0 -1
  438. package/dist/types/src/capabilities/compiler/index.d.ts +0 -3
  439. package/dist/types/src/capabilities/compiler/index.d.ts.map +0 -1
  440. package/dist/types/src/capabilities/operation-resolver/index.d.ts +0 -3
  441. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +0 -1
  442. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +0 -5
  443. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +0 -1
  444. package/dist/types/src/capabilities/react-surface/index.d.ts +0 -3
  445. package/dist/types/src/capabilities/react-surface/index.d.ts.map +0 -1
  446. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +0 -5
  447. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +0 -1
  448. package/dist/types/src/capabilities/settings/index.d.ts +0 -7
  449. package/dist/types/src/capabilities/settings/index.d.ts.map +0 -1
  450. package/dist/types/src/capabilities/settings/settings.d.ts +0 -9
  451. package/dist/types/src/capabilities/settings/settings.d.ts.map +0 -1
  452. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.d.ts.map +0 -1
  453. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts +0 -249
  454. package/dist/types/src/components/DeploymentDialog/index.d.ts +0 -4
  455. package/dist/types/src/components/DeploymentDialog/index.d.ts.map +0 -1
  456. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts.map +0 -1
  457. package/dist/types/src/components/FrameContainer/frame.d.ts +0 -2
  458. package/dist/types/src/components/FrameContainer/frame.d.ts.map +0 -1
  459. package/dist/types/src/components/FrameContainer/index.d.ts +0 -2
  460. package/dist/types/src/components/FrameContainer/index.d.ts.map +0 -1
  461. package/dist/types/src/components/NotebookContainer.d.ts +0 -8
  462. package/dist/types/src/components/NotebookContainer.d.ts.map +0 -1
  463. package/dist/types/src/components/NotebookContainer.stories.d.ts.map +0 -1
  464. package/dist/types/src/components/ScriptContainer.d.ts +0 -11
  465. package/dist/types/src/components/ScriptContainer.d.ts.map +0 -1
  466. package/dist/types/src/components/Settings/ScriptObjectSettings.d.ts.map +0 -1
  467. package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts +0 -8
  468. package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts.map +0 -1
  469. package/dist/types/src/components/Settings/index.d.ts +0 -3
  470. package/dist/types/src/components/Settings/index.d.ts.map +0 -1
  471. package/dist/types/src/components/TestPanel/TestContainer.d.ts.map +0 -1
  472. package/dist/types/src/types/actions.d.ts +0 -40
  473. package/dist/types/src/types/actions.d.ts.map +0 -1
  474. package/src/capabilities/app-graph-builder/app-graph-builder.ts +0 -55
  475. package/src/capabilities/app-graph-builder/index.ts +0 -7
  476. package/src/capabilities/artifact-definition/index.ts +0 -7
  477. package/src/capabilities/blueprint-definition/blueprint-definition.ts +0 -23
  478. package/src/capabilities/blueprint-definition/index.ts +0 -7
  479. package/src/capabilities/compiler/index.ts +0 -7
  480. package/src/capabilities/operation-resolver/index.ts +0 -7
  481. package/src/capabilities/operation-resolver/operation-resolver.ts +0 -74
  482. package/src/capabilities/react-surface/index.ts +0 -7
  483. package/src/capabilities/react-surface/react-surface.tsx +0 -118
  484. package/src/capabilities/settings/index.ts +0 -7
  485. package/src/components/DeploymentDialog/index.ts +0 -9
  486. package/src/components/FrameContainer/frame.html +0 -25
  487. package/src/components/FrameContainer/frame.tsx +0 -51
  488. package/src/components/Settings/ScriptPluginSettings.tsx +0 -66
  489. package/src/components/Settings/index.ts +0 -6
  490. package/src/components/TestPanel/TestContainer.tsx +0 -27
  491. package/src/types/actions.ts +0 -45
  492. /package/dist/types/src/{components → containers/NotebookContainer}/NotebookContainer.stories.d.ts +0 -0
  493. /package/dist/types/src/{components/TestPanel → containers/TestContainer}/TestContainer.d.ts +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../src/ScriptPlugin.tsx", "../../../src/capabilities/app-graph-builder/index.ts", "../../../src/capabilities/blueprint-definition/index.ts", "../../../src/capabilities/compiler/index.ts", "../../../src/capabilities/operation-resolver/index.ts", "../../../src/capabilities/react-surface/index.ts", "../../../src/capabilities/settings/index.ts", "../../../src/translations.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Common, Plugin } from '@dxos/app-framework';\nimport { Ref } from '@dxos/echo';\nimport { Script } from '@dxos/functions';\nimport { Operation } from '@dxos/operation';\nimport { type CreateObject } from '@dxos/plugin-space/types';\n\nimport {\n AppGraphBuilder,\n BlueprintDefinition,\n Compiler,\n OperationResolver,\n ReactSurface,\n ScriptSettings,\n} from './capabilities';\nimport { meta } from './meta';\nimport { translations } from './translations';\nimport { ScriptEvents } from './types';\nimport { Notebook, ScriptOperation } from './types';\n\nexport const ScriptPlugin = Plugin.define(meta).pipe(\n Plugin.addModule({\n activatesOn: Common.ActivationEvent.SetupSettings,\n activate: ScriptSettings,\n }),\n Plugin.addModule({\n activatesOn: ScriptEvents.SetupCompiler,\n activate: Compiler,\n }),\n Common.Plugin.addTranslationsModule({ translations }),\n Common.Plugin.addMetadataModule({\n metadata: [\n {\n id: Script.Script.typename,\n metadata: {\n icon: 'ph--code--regular',\n iconHue: 'sky',\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: async (script: Script.Script) => await Ref.Array.loadAll([script.source]),\n inputSchema: ScriptOperation.ScriptProps,\n createObject: ((props) =>\n Effect.gen(function* () {\n const { object } = yield* Operation.invoke(ScriptOperation.CreateScript, props);\n return object;\n })) satisfies CreateObject,\n addToCollectionOnCreate: true,\n },\n },\n {\n id: Notebook.Notebook.typename,\n metadata: {\n icon: 'ph--notebook--regular',\n iconHue: 'sky',\n inputSchema: ScriptOperation.NotebookProps,\n createObject: ((props) => Effect.sync(() => Notebook.make(props))) satisfies CreateObject,\n addToCollectionOnCreate: true,\n },\n },\n ],\n }),\n Common.Plugin.addAppGraphModule({ activate: AppGraphBuilder }),\n Common.Plugin.addSchemaModule({ schema: [Script.Script] }),\n Common.Plugin.addSurfaceModule({ activate: ReactSurface }),\n Common.Plugin.addOperationResolverModule({ activate: OperationResolver }),\n Common.Plugin.addBlueprintDefinitionModule({ activate: BlueprintDefinition }),\n Plugin.make,\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const AppGraphBuilder = Capability.lazy('AppGraphBuilder', () => import('./app-graph-builder'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const BlueprintDefinition = Capability.lazy('BlueprintDefinition', () => import('./blueprint-definition'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const Compiler = Capability.lazy('Compiler', () => import('./compiler'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const OperationResolver = Capability.lazy('OperationResolver', () => import('./operation-resolver'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const ReactSurface = Capability.lazy('ReactSurface', () => import('./react-surface'));\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const ScriptSettings = Capability.lazy('ScriptSettings', () => import('./settings'));\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Script } from '@dxos/functions';\nimport { type Resource } from '@dxos/react-ui';\n\nimport { meta } from './meta';\nimport { Notebook } from './types';\n\nexport const translations = [\n {\n 'en-US': {\n [Script.Script.typename]: {\n 'typename label': 'Script',\n 'typename label_zero': 'Scripts',\n 'typename label_one': 'Script',\n 'typename label_other': 'Scripts',\n 'object name placeholder': 'New script',\n 'rename object label': 'Rename script',\n 'delete object label': 'Delete script',\n 'object deleted label': 'Script deleted',\n },\n [Notebook.Notebook.typename]: {\n 'typename label': 'Notebook',\n 'typename label_zero': 'Notebooks',\n 'typename label_one': 'Notebook',\n 'typename label_other': 'Notebooks',\n 'object name placeholder': 'New notebook',\n 'rename object label': 'Rename notebook',\n 'delete object label': 'Delete notebook',\n 'object deleted label': 'Notebook deleted',\n },\n [meta.id]: {\n 'plugin name': 'Scripts',\n 'settings title': 'Scripts plugin settings',\n 'description label': 'Description',\n 'description placeholder': 'Enter description',\n 'binding placeholder': 'Function name',\n 'function request placeholder': 'Function request',\n 'deploy label': 'Deploy',\n 'deployed label': 'Current version of the script is deployed',\n 'upload failed label': 'Upload failed',\n 'copy link label': 'Copy function link',\n 'format label': 'Format',\n 'toggle details label': 'Toggle details panel',\n 'authenticate action label': 'Authenticate functions service',\n 'authenticate button label': 'Authenticate',\n 'name label': 'Name',\n 'remote function settings heading': 'Remote Function',\n 'function url label': 'Invocation URL',\n 'function binding label': 'Function binding',\n 'function binding placeholder': 'Enter binding name (e.g., NAME)',\n 'script publish settings label': 'Publishing',\n 'script publish settings description': 'Scripts can be shared publicly as Github gists.',\n 'no github token label': 'This space has no GitHub access token available.',\n 'open token manager label': 'Open Token Manager',\n 'publish label': 'Publish',\n 'publishing label': 'Publishing',\n 'blueprint editor label': 'Blueprint',\n 'blueprint editor description': 'Create a blueprint that exposes this script as a tool.',\n 'blueprint instructions label': 'Instructions',\n 'blueprint instructions placeholder': 'Describe how this tool should be used.',\n 'create blueprint label': 'Create blueprint',\n 'creating label': 'Creating…',\n 'editor input mode label': 'Editor input mode',\n 'select editor input mode placeholder': 'Select editor input mode…',\n 'settings editor input mode default label': 'Default',\n 'settings editor input mode vim label': 'Vim',\n 'settings editor input mode vscode label': 'VS Code',\n 'function panel label': 'Debug Function',\n 'script test label': 'Test',\n 'script logs label': 'Logs',\n\n 'deployment dialog title': 'Default Scripts',\n 'deployment dialog scripts found message': 'Script templates:',\n 'deployment dialog deploy functions button label_one': 'Create and deploy script',\n 'deployment dialog deploy functions button label_other': 'Create and deploy scripts',\n 'deployment dialog deploy functions pending button label_one': 'Deploying script',\n 'deployment dialog deploy functions pending button label_other': 'Deploying scripts',\n 'deployment dialog skip button label': 'Skip',\n\n 'script deployment toast label_one': 'Script deployed',\n 'script deployment toast label_other': 'Scripts deployed',\n 'script deployment toast description_one': 'Your script has been deployed successfully.',\n 'script deployment toast description_other': 'Your scripts have been deployed successfully.',\n 'script deployment toast close label_one': 'Close',\n 'script deployment toast close label_other': 'Close',\n 'script deployment error toast label_one': 'Script deployment failed',\n 'script deployment error toast label_other': 'Scripts deployment failed',\n 'script deployment error toast description_one': 'There was an error deploying your script.',\n 'script deployment error toast description_other': 'There was an error deploying your scripts.',\n 'script deployment error toast close label_one': 'Close',\n 'script deployment error toast close label_other': 'Close',\n\n 'notebook cell placeholder': 'Enter script',\n 'notebook cell delete label': 'Delete cell',\n 'notebook cell prompt run label': 'Run',\n 'notebook cell insert markdown label': 'Insert Markdown',\n 'notebook cell insert script label': 'Insert Script',\n 'notebook cell insert prompt label': 'Insert Prompt',\n 'notebook cell insert query label': 'Insert Query',\n 'notebook markdown placeholder': 'Enter Markdown',\n 'notebook prompt placeholder': 'Enter prompt',\n 'notebook cell insert label': 'Insert cell',\n },\n },\n },\n] as const satisfies Resource[];\n"],
5
- "mappings": "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",
6
- "names": ["Effect", "Common", "Plugin", "Ref", "Script", "Operation", "Capability", "AppGraphBuilder", "Capability", "lazy", "Capability", "BlueprintDefinition", "Capability", "lazy", "Capability", "Compiler", "Capability", "lazy", "Capability", "OperationResolver", "Capability", "lazy", "Capability", "ReactSurface", "Capability", "lazy", "Capability", "ScriptSettings", "Capability", "lazy", "Script", "translations", "Script", "typename", "Notebook", "meta", "id", "ScriptPlugin", "Plugin", "define", "meta", "pipe", "addModule", "activatesOn", "Common", "ActivationEvent", "SetupSettings", "activate", "ScriptSettings", "ScriptEvents", "SetupCompiler", "Compiler", "addTranslationsModule", "translations", "addMetadataModule", "metadata", "id", "Script", "typename", "icon", "iconHue", "loadReferences", "script", "Ref", "Array", "loadAll", "source", "inputSchema", "ScriptOperation", "ScriptProps", "createObject", "props", "gen", "object", "Operation", "invoke", "CreateScript", "addToCollectionOnCreate", "Notebook", "NotebookProps", "sync", "make", "addAppGraphModule", "AppGraphBuilder", "addSchemaModule", "schema", "addSurfaceModule", "ReactSurface", "addOperationResolverModule", "OperationResolver", "addBlueprintDefinitionModule", "BlueprintDefinition"]
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/compiler/compiler.ts", "../../../src/components/ScriptToolbar/ScriptToolbar.tsx", "../../../src/components/TestPanel/TestPanel.tsx", "../../../src/containers/index.ts", "../../../src/meta.ts", "../../../src/util/deploy.ts", "../../../src/util/functions.ts", "../../../src/ScriptPlugin.tsx", "../../../src/translations.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ComponentType, lazy } from 'react';\n\nexport const ScriptPluginSettings: ComponentType<any> = lazy(() => import('./ScriptPluginSettings'));\n\nexport * from './FramePanel';\nexport * from './NotebookStack';\nexport * from './QueryEditor';\nexport * from './ScriptToolbar';\nexport * from './TestPanel';\nexport * from './TypescriptEditor';\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 { Stack, StackItem, type StackProps } from '@dxos/react-ui-stack';\nimport { composable, composableProps } from '@dxos/ui-theme';\n\nimport { meta } from '#meta';\nimport { type Notebook } from '#types';\nimport { type TypescriptEditorProps } from '../TypescriptEditor';\n\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 { type Database, Obj } from '@dxos/echo';\nimport { createDocAccessor } from '@dxos/echo-db';\nimport { invariant } from '@dxos/invariant';\nimport { TemplateEditor } from '@dxos/plugin-assistant';\nimport { useThemeContext, useTranslation } from '@dxos/react-ui';\nimport { QueryEditor, type QueryEditorProps } from '@dxos/react-ui-components';\nimport { EditorContent, type EditorContentProps } 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 ComputeGraph } from '../../notebook';\nimport { type Notebook } from '#types';\nimport { TypescriptEditor, type TypescriptEditorProps } from '../TypescriptEditor';\n\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.change(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 && <Surface.Surface role='section' limit={1} data={{ subject: explorerGraph }} />}\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.dxn.toString()];\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}: EditorContentProps & 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 <EditorContent {...props} extensions={extensions} selectionEnd />;\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 { type UseTextEditorProps, useTextEditor } from '@dxos/react-ui-editor';\nimport { Domino } from '@dxos/ui';\nimport {\n type BasicExtensionsOptions,\n type EditorInputMode,\n InputModeExtensions,\n createBasicExtensions,\n createThemeExtensions,\n defaultStyles,\n} from '@dxos/ui-editor';\nimport { composable, composableProps } from '@dxos/ui-theme';\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 .children(...children).root,\n };\n };\n};\n\nexport default TypescriptEditor;\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useState } from 'react';\nimport { 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 });\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 {\n type VirtualTypeScriptEnvironment,\n createDefaultMapFromCDN,\n createSystem,\n createVirtualTypeScriptEnvironment,\n} from '@typescript/vfs';\nimport ts from 'typescript';\n\nimport { invariant } from '@dxos/invariant';\n\nconst GLOBALS = 'globals.d.ts';\n\nconst defaultOptions: ts.CompilerOptions = {\n lib: ['DOM', 'es2022'],\n target: ts.ScriptTarget.ES2022,\n};\n\nexport class Compiler {\n private _env: VirtualTypeScriptEnvironment | undefined;\n private _fsMap: Map<string, string> | undefined;\n\n constructor(private readonly _options: ts.CompilerOptions = defaultOptions) {}\n\n async initialize(globals?: string): Promise<void> {\n if (this._env) {\n return;\n }\n\n // TODO(wittjosiah): Figure out how to get workers working in plugin packages.\n // https://github.com/val-town/codemirror-ts?tab=readme-ov-file#setup-worker\n this._fsMap = await createDefaultMapFromCDN(this._options, '5.7.2', true, ts);\n if (globals) {\n this._fsMap.set(GLOBALS, globals);\n }\n\n const rootFiles = globals ? [GLOBALS] : [];\n const system = createSystem(this._fsMap);\n this._env = createVirtualTypeScriptEnvironment(system, rootFiles, ts, this._options);\n }\n\n get environment() {\n invariant(this._env, 'Compiler environment not initialized.');\n return this._env;\n }\n\n setFile(fileName: string, content: string): void {\n invariant(this._fsMap, 'File system map not initialized.');\n this.environment.createFile(fileName, content);\n }\n\n compile(fileName: string): ts.EmitOutput {\n return this.environment.languageService.getEmitOutput(fileName);\n }\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/functions';\nimport { ElevationProvider, useTranslation } from '@dxos/react-ui';\nimport { composable, composableProps } from '@dxos/ui-theme';\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 { SyntaxHighlighter } from '@dxos/react-ui-syntax-highlighter';\nimport { composable, composableProps, 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 && (\n <SyntaxHighlighter language='json' className={mx(wrapper, 'text-xs')}>\n {JSON.stringify(data, null, 2)}\n </SyntaxHighlighter>\n )}\n </div>\n );\n};\n\nconst RobotAvatar = () => (\n <Avatar.Root>\n <Avatar.Content size={6} variant='circle' icon='ph--robot--regular' />\n </Avatar.Root>\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type ComponentType, lazy } from 'react';\n\nexport const DeploymentDialog: ComponentType<any> = lazy(() => import('./DeploymentDialog'));\nexport const NotebookContainer: ComponentType<any> = lazy(() => import('./NotebookContainer'));\nexport const ScriptContainer: ComponentType<any> = lazy(() => import('./ScriptContainer'));\nexport const ScriptObjectSettings: ComponentType<any> = lazy(() => import('./ScriptObjectSettings'));\nexport const ScriptProperties: ComponentType<any> = lazy(() => import('./ScriptProperties'));\nexport const TestContainer: ComponentType<any> = lazy(() => import('./TestContainer'));\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { trim } from '@dxos/util';\n\nexport const meta: Plugin.Meta = {\n id: 'org.dxos.plugin.script',\n name: 'Scripts',\n description: trim`\n Write and deploy custom JavaScript functions that extend your workspace capabilities.\n Create AI agent tools, spreadsheet formulas, and automation scripts that integrate seamlessly with other plugins.\n `,\n icon: 'ph--code--regular',\n iconHue: 'sky',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-explorer',\n tags: ['labs'],\n screenshots: ['https://dxos.network/plugin-details-scripts-dark.png'],\n};\n\n// TODO(ZaymonFC): Configure by scopes?\nexport const defaultScriptsForIntegration: Record<string, string[]> = {\n // TODO(wittjosiah): Also include content extraction scripts in the default set.\n 'gmail.com': ['org.dxos.script.gmail'],\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Client } from '@dxos/client';\nimport { Context } from '@dxos/context';\nimport { Obj, Ref } from '@dxos/echo';\nimport { type Script, getUserFunctionIdInMetadata } from '@dxos/functions';\nimport { Operation } from '@dxos/operation';\nimport { bundleFunction } from '@dxos/functions-runtime/bundler';\nimport { FunctionsServiceClient, incrementSemverPatch } from '@dxos/functions-runtime/edge';\nimport { log } from '@dxos/log';\nimport { FunctionRuntimeKind } from '@dxos/protocols';\nimport { type Space } from '@dxos/react-client/echo';\n\nexport const isScriptDeployed = ({ script, fn }: { script: Script.Script; fn: any }): boolean => {\n const existingFunctionId = fn && getUserFunctionIdInMetadata(Obj.getMeta(fn));\n return Boolean(existingFunctionId) && !script.changed;\n};\n\ntype DeployScriptProps = {\n script: Script.Script;\n client: Client;\n space: Space;\n fn?: Operation.PersistentOperation;\n existingFunctionId?: string;\n};\n\ntype DeployScriptResult = { success: boolean; error?: Error; functionId?: string };\n\n/**\n * Deploy a script to a space, handling bundling and uploading to the FaaS infrastructure.\n */\nexport const deployScript = async ({\n script,\n client,\n space,\n fn,\n existingFunctionId,\n}: DeployScriptProps): Promise<DeployScriptResult> => {\n const validationError = validateDeployInputs(script, space);\n if (validationError) {\n return { success: false, error: validationError };\n }\n\n try {\n const buildResult = await bundleFunction({\n source: script.source!.target!.content,\n });\n if ('error' in buildResult) {\n throw buildResult.error || new Error('Bundle creation failed');\n }\n\n const functionsServiceClient = FunctionsServiceClient.fromClient(client);\n const newFunction = await functionsServiceClient.deploy(Context.default(), {\n // TODO(dmaretskyi): Space key or identity key.\n ownerPublicKey: space.key,\n version: fn ? incrementSemverPatch(fn.version) : '0.0.1',\n functionId: existingFunctionId,\n entryPoint: buildResult.entryPoint,\n assets: buildResult.assets,\n runtime: FunctionRuntimeKind.enums.WORKER_LOADER,\n });\n\n const storedFunction = createOrUpdateFunctionInSpace(space, fn, script, newFunction);\n Obj.change(script, (obj) => {\n obj.changed = false;\n });\n\n return { success: true, functionId: getUserFunctionIdInMetadata(Obj.getMeta(storedFunction)) };\n } catch (err: any) {\n log.catch(err);\n return { success: false, error: err };\n }\n};\n\n/**\n * Validate inputs for script deployment.\n */\nconst validateDeployInputs = (script: Script.Script, space: Space): Error | null => {\n if (!script.source || !space) {\n return new Error('Script source or space not available');\n }\n return null;\n};\n\nconst createOrUpdateFunctionInSpace = (\n space: Space,\n fn: Operation.PersistentOperation | undefined,\n script: Script.Script,\n newFunction: Operation.PersistentOperation,\n): Operation.PersistentOperation => {\n if (fn) {\n Operation.setFrom(fn, newFunction);\n return fn;\n } else {\n Obj.change(newFunction, (obj) => {\n obj.source = Ref.make(script);\n });\n return space.db.add(newFunction);\n }\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Obj } from '@dxos/echo';\nimport { type Script, getUserFunctionIdInMetadata } from '@dxos/functions';\nimport { type Operation } from '@dxos/operation';\nimport { getInvocationUrl } from '@dxos/functions-runtime';\nimport { type PublicKey } from '@dxos/keys';\nimport { log } from '@dxos/log';\nimport { type Credential } from '@dxos/protocols/proto/dxos/halo/credentials';\nimport { getSpace } from '@dxos/react-client/echo';\n/**\n * Get the function URL for a given script and client configuration\n */\nexport const getFunctionUrl = ({\n script,\n fn,\n edgeUrl,\n}: {\n script: Script.Script;\n fn: any;\n edgeUrl: string;\n}): string | undefined => {\n const space = getSpace(script);\n const existingFunctionId = fn && getUserFunctionIdInMetadata(Obj.getMeta(fn));\n\n if (!existingFunctionId) {\n return undefined;\n }\n\n return getInvocationUrl(existingFunctionId, edgeUrl, {\n spaceId: space?.id,\n });\n};\n\nexport const updateFunctionMetadata = (\n script: Script.Script,\n storedFunction: Operation.PersistentOperation,\n meta: any,\n functionId: string,\n) => {\n Obj.change(storedFunction, (obj) => {\n if (script.description !== undefined && script.description.trim() !== '') {\n obj.description = script.description;\n } else if (meta.description) {\n obj.description = meta.description;\n } else {\n log.verbose('no description in function metadata', { functionId });\n }\n\n if (meta.inputSchema) {\n obj.inputSchema = meta.inputSchema;\n } else {\n log.verbose('no input schema in function metadata', { functionId });\n }\n\n if (meta.outputSchema) {\n obj.outputSchema = meta.outputSchema;\n } else {\n log.verbose('no output schema in function metadata', { functionId });\n }\n\n if (meta.key) {\n obj.key = meta.key;\n } else {\n log.verbose('no key in function metadata', { functionId });\n }\n });\n};\n\nexport const getAccessCredential = (identityKey: PublicKey): Credential => {\n return {\n issuer: identityKey,\n issuanceDate: new Date(),\n subject: {\n id: identityKey,\n assertion: {\n '@type': 'dxos.halo.credentials.ServiceAccess',\n serverName: 'hub.dxos.network',\n serverKey: identityKey,\n identityKey,\n capabilities: ['composer:beta'],\n },\n },\n };\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nimport { Plugin } from '@dxos/app-framework';\nimport { AppActivationEvents, AppPlugin } from '@dxos/app-toolkit';\nimport { Annotation, Ref } from '@dxos/echo';\nimport { Script } from '@dxos/functions';\nimport { Operation } from '@dxos/operation';\nimport { type CreateObject } from '@dxos/plugin-space/types';\nimport { SpaceOperation } from '@dxos/plugin-space/operations';\n\nimport { meta } from '#meta';\nimport { translations } from './translations';\nimport { ScriptEvents } from '#types';\nimport { Notebook } from '#types';\nimport { ScriptOperation } from '#operations';\n\nimport {\n AppGraphBuilder,\n BlueprintDefinition,\n Compiler,\n OperationHandler,\n ReactSurface,\n ScriptSettings,\n} from '#capabilities';\n\nexport const ScriptPlugin = Plugin.define(meta).pipe(\n AppPlugin.addAppGraphModule({ activate: AppGraphBuilder }),\n AppPlugin.addBlueprintDefinitionModule({ activate: BlueprintDefinition }),\n AppPlugin.addMetadataModule({\n metadata: [\n {\n id: Script.Script.typename,\n metadata: {\n icon: Annotation.IconAnnotation.get(Script.Script).pipe(Option.getOrThrow).icon,\n iconHue: Annotation.IconAnnotation.get(Script.Script).pipe(Option.getOrThrow).hue ?? 'white',\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: async (script: Script.Script) => await Ref.Array.loadAll([script.source]),\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 })) satisfies CreateObject,\n },\n },\n {\n id: Notebook.Notebook.typename,\n metadata: {\n icon: Annotation.IconAnnotation.get(Notebook.Notebook).pipe(Option.getOrThrow).icon,\n iconHue: Annotation.IconAnnotation.get(Notebook.Notebook).pipe(Option.getOrThrow).hue ?? 'white',\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 })) satisfies CreateObject,\n },\n },\n ],\n }),\n AppPlugin.addOperationHandlerModule({ activate: OperationHandler }),\n AppPlugin.addSchemaModule({ schema: [Script.Script] }),\n AppPlugin.addSurfaceModule({ activate: ReactSurface }),\n AppPlugin.addTranslationsModule({ translations }),\n Plugin.addModule({\n activatesOn: AppActivationEvents.SetupSettings,\n activate: ScriptSettings,\n }),\n Plugin.addModule({\n activatesOn: ScriptEvents.SetupCompiler,\n activate: Compiler,\n }),\n Plugin.make,\n);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Script } from '@dxos/functions';\nimport { type Resource } from '@dxos/react-ui';\n\nimport { meta } from '#meta';\nimport { Notebook } from '#types';\n\nexport const translations = [\n {\n 'en-US': {\n [Script.Script.typename]: {\n 'typename.label': 'Script',\n 'typename.label_zero': 'Scripts',\n 'typename.label_one': 'Script',\n 'typename.label_other': 'Scripts',\n 'object-name.placeholder': 'New script',\n 'add-object.label': 'Add script',\n 'rename-object.label': 'Rename script',\n 'delete-object.label': 'Delete script',\n 'object-deleted.label': 'Script deleted',\n },\n [Notebook.Notebook.typename]: {\n 'typename.label': 'Notebook',\n 'typename.label_zero': 'Notebooks',\n 'typename.label_one': 'Notebook',\n 'typename.label_other': 'Notebooks',\n 'object-name.placeholder': 'New notebook',\n 'add-object.label': 'Add notebook',\n 'rename-object.label': 'Rename notebook',\n 'delete-object.label': 'Delete notebook',\n 'object-deleted.label': 'Notebook deleted',\n },\n [meta.id]: {\n 'plugin.name': 'Scripts',\n 'settings.title': 'Scripts settings',\n 'description.label': 'Description',\n 'description.placeholder': 'Enter description',\n 'binding.placeholder': 'Function name',\n 'function-request.placeholder': 'Function request',\n 'deploy.label': 'Deploy',\n 'deployed.label': 'Current version of the script is deployed',\n 'upload-failed.label': 'Upload failed',\n 'copy-link.label': 'Copy function link',\n 'format.label': 'Format',\n 'toggle-details.label': 'Toggle details panel',\n 'authenticate-action.label': 'Authenticate functions service',\n 'authenticate-action.description':\n 'Sign in to the remote functions service to enable script deployment and execution.',\n 'authenticate-button.label': 'Authenticate',\n 'name.label': 'Name',\n 'remote-function-settings.heading': 'Remote Function',\n 'function-url.label': 'Invocation URL',\n 'function-binding.label': 'Function binding',\n 'function-binding.placeholder': 'Enter binding name (e.g., NAME)',\n 'script-publish-settings.label': 'Publishing',\n 'script-publish-settings.description': 'Scripts can be shared publicly as Github gists.',\n 'no-github-token.label': 'This space has no GitHub access token available.',\n 'open-token-manager.label': 'Open Token Manager',\n 'publish.label': 'Publish',\n 'publishing.label': 'Publishing',\n 'blueprint-editor.label': 'Blueprint',\n 'blueprint-editor.description': 'Create a blueprint that exposes this script as a tool.',\n 'blueprint-instructions.label': 'Instructions',\n 'blueprint-instructions.placeholder': 'Describe how this tool should be used.',\n 'create-blueprint.label': 'Create blueprint',\n 'creating.label': 'Creating…',\n 'editor-input-mode.label': 'Editor input mode',\n 'editor-input-mode.description': 'Choose the keybinding style for the script editor.',\n 'select-editor-input-mode.placeholder': 'Select editor input mode…',\n 'settings.editor-input-mode.default.label': 'Default',\n 'settings.editor-input-mode.vim.label': 'Vim',\n 'settings.editor-input-mode.vscode.label': 'VS Code',\n 'function-panel.label': 'Debug Function',\n 'script-test.label': 'Test',\n 'script-logs.label': 'Logs',\n 'compute.label': 'Compute',\n\n 'deployment-dialog.title': 'Default Scripts',\n 'deployment-dialog-scripts-found.message': 'Script templates:',\n 'deployment-dialog-deploy-functions-button.label_one': 'Create and deploy script',\n 'deployment-dialog-deploy-functions-button.label_other': 'Create and deploy scripts',\n 'deployment-dialog-deploy-functions-pending-button.label_one': 'Deploying script',\n 'deployment-dialog-deploy-functions-pending-button.label_other': 'Deploying scripts',\n 'deployment-dialog-skip-button.label': 'Skip',\n\n 'script-deployment-toast.label_one': 'Script deployed',\n 'script-deployment-toast.label_other': 'Scripts deployed',\n 'script-deployment-toast.description_one': 'Your script has been deployed successfully.',\n 'script-deployment-toast.description_other': 'Your scripts have been deployed successfully.',\n 'script-deployment-toast-close.label_one': 'Close',\n 'script-deployment-toast-close.label_other': 'Close',\n 'script-deployment-error-toast.label_one': 'Script deployment failed',\n 'script-deployment-error-toast.label_other': 'Scripts deployment failed',\n 'script-deployment-error-toast.description_one': 'There was an error deploying your script.',\n 'script-deployment-error-toast.description_other': 'There was an error deploying your scripts.',\n 'script-deployment-error-toast-close.label_one': 'Close',\n 'script-deployment-error-toast-close.label_other': 'Close',\n\n 'notebook-cell.placeholder': 'Enter script',\n 'notebook-cell-delete.label': 'Delete cell',\n 'notebook-cell-prompt-run.label': 'Run',\n 'notebook-cell-insert-markdown.label': 'Insert Markdown',\n 'notebook-cell-insert-script.label': 'Insert Script',\n 'notebook-cell-insert-prompt.label': 'Insert Prompt',\n 'notebook-cell-insert-query.label': 'Insert Query',\n 'notebook-markdown.placeholder': 'Enter Markdown',\n 'notebook-prompt.placeholder': 'Enter prompt',\n 'notebook-cell-insert.label': 'Insert cell',\n },\n },\n },\n] as const satisfies Resource[];\n"],
5
+ "mappings": "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",
6
+ "names": ["lazy", "React", "useEffect", "useRef", "clientServiceBundle", "invariant", "log", "useClient", "createProtoRpcPeer", "createIFramePort", "mx", "FramePanel", "containerUrl", "result", "debug", "client", "iframeRef", "current", "rpc", "exposed", "handlers", "_services", "services", "port", "channel", "iframe", "origin", "open", "catch", "e", "close", "sourceHash", "Buffer", "from", "toString", "src", "encodeURIComponent", "TextDecoder", "decode", "Object", "values", "bundle", "undefined", "ref", "sandbox", "style", "width", "height", "div", "className", "pre", "JSON", "stringify", "timestamp", "error", "React", "DropdownMenu", "useTranslation", "meta", "NotebookMenu", "cell", "onCellInsert", "onCellDelete", "t", "useTranslation", "meta", "id", "React", "DropdownMenu", "Portal", "Content", "Viewport", "Item", "onClick", "Arrow", "React", "DropdownMenu", "IconButton", "useTranslation", "Stack", "StackItem", "composable", "composableProps", "meta", "React", "useCallback", "useMemo", "Surface", "Obj", "createDocAccessor", "invariant", "TemplateEditor", "useThemeContext", "useTranslation", "QueryEditor", "EditorContent", "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", "useTextEditor", "Domino", "InputModeExtensions", "createBasicExtensions", "createThemeExtensions", "defaultStyles", "composable", "composableProps", "isNonNullable", "TypescriptEditor", "composable", "classNames", "id", "role", "inputMode", "env", "options", "initialValue", "extensions", "scrollTo", "selection", "props", "forwardedRef", "themeMode", "useThemeContext", "parentRef", "focusAttributes", "useTextEditor", "createBasicExtensions", "highlightActiveLine", "indentWithTab", "lineNumbers", "lineWrapping", "scrollPastEnd", "search", "createThemeExtensions", "monospace", "syntaxHighlighting", "InputModeExtensions", "javascript", "typescript", "autocompletion", "override", "tsAutocomplete", "undefined", "Prec", "high", "keymap", "of", "continueKeymap", "completionKeymap", "lintKeymap", "tsFacet", "path", "tsSync", "tsLinter", "tsHover", "renderTooltip", "createTooltipRenderer", "filter", "isNonNullable", "React", "div", "composableProps", "ref", "composeRefs", "theme", "HighlightStyle", "define", "defaultStyles", "dark", "light", "classFromKind", "_kind", "kind", "endsWith", "validTag", "tags", "tag", "style", "info", "children", "quickInfo", "displayParts", "map", "text", "Domino", "dom", "root", "editorStyles", "valueStyles", "NotebookCell", "db", "graph", "dragging", "cell", "promptResults", "env", "t", "useTranslation", "meta", "id", "extensions", "useMemo", "source", "target", "createDataExtensions", "text", "createDocAccessor", "filter", "isNonNullable", "explorerGraph", "handleQueryChange", "useCallback", "value", "invariant", "Obj", "change", "obj", "content", "type", "React", "NotebookTextEditor", "classNames", "initialValue", "TypescriptEditor", "role", "options", "placeholder", "highlightActiveLine", "lineNumbers", "NotebookCellValue", "div", "className", "mx", "QueryEditor", "onChange", "Surface", "limit", "data", "subject", "prompt", "TemplateEditor", "template", "instructions", "NotebookPromptResult", "name", "getExpressions", "getValue", "span", "dxn", "toString", "readOnly", "extensionsProp", "props", "themeMode", "useThemeContext", "createBasicExtensions", "createThemeExtensions", "syntaxHighlighting", "createMarkdownExtensions", "decorateMarkdown", "EditorContent", "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", "ScriptTarget", "queryApi", "useAsyncEffect", "createDefaultMapFromCDN", "createSystem", "createVirtualTypeScriptEnvironment", "ts", "invariant", "GLOBALS", "defaultOptions", "lib", "target", "ScriptTarget", "ES2022", "Compiler", "_env", "_fsMap", "_options", "initialize", "globals", "set", "rootFiles", "system", "environment", "setFile", "fileName", "content", "createFile", "compile", "languageService", "getEmitOutput", "GLOBALS", "queryApi", "QueryEditor", "props", "compiler", "setCompiler", "useState", "useAsyncEffect", "Compiler", "lib", "target", "ScriptTarget", "ES2022", "initialize", "React", "TypescriptEditor", "env", "environment", "Atom", "React", "useMemo", "ElevationProvider", "useTranslation", "composable", "composableProps", "Menu", "createGapSeparator", "useMenuActions", "createDeploy", "createFormat", "createTemplateSelect", "useDeployDeps", "meta", "ScriptToolbar", "composable", "script", "attendableId", "role", "state", "props", "forwardedRef", "t", "useTranslation", "meta", "id", "options", "useDeployDeps", "menuCreator", "useMemo", "createToolbarActions", "menuActions", "useMenuActions", "React", "ElevationProvider", "elevation", "Menu", "Root", "Toolbar", "composableProps", "ref", "Atom", "make", "get", "atom", "templateSelect", "createTemplateSelect", "format", "createFormat", "gap", "createGapSeparator", "deploy", "createDeploy", "nodes", "edges", "React", "forwardRef", "useRef", "useState", "log", "Avatar", "Icon", "Input", "ScrollArea", "Toolbar", "useTranslation", "SyntaxHighlighter", "composable", "composableProps", "mx", "meta", "TestPanel", "classNames", "onInvoke", "props", "forwardedRef", "t", "id", "inputRef", "input", "setInput", "state", "setState", "history", "setHistory", "scrollerRef", "handleScroll", "current", "scrollTop", "scrollHeight", "handleClear", "focus", "handleResponse", "text", "data", "error", "type", "handleRequest", "Error", "displayText", "charAt", "validJsonString", "replace", "JSON", "parse", "stringify", "err", "setTimeout", "result", "String", "catch", "div", "ref", "MessageThread", "Root", "TextInput", "autoFocus", "placeholder", "value", "onChange", "ev", "target", "onKeyDown", "key", "IconButton", "icon", "label", "iconOnly", "onClick", "orientation", "Viewport", "map", "message", "i", "className", "RobotAvatar", "MessageItem", "size", "wrapper", "undefined", "language", "Content", "variant", "ScriptPluginSettings", "lazy", "lazy", "DeploymentDialog", "lazy", "NotebookContainer", "ScriptContainer", "ScriptObjectSettings", "ScriptProperties", "TestContainer", "trim", "meta", "id", "name", "description", "trim", "icon", "iconHue", "source", "tags", "screenshots", "defaultScriptsForIntegration", "Context", "Obj", "Ref", "getUserFunctionIdInMetadata", "Operation", "bundleFunction", "FunctionsServiceClient", "incrementSemverPatch", "log", "FunctionRuntimeKind", "isScriptDeployed", "script", "fn", "existingFunctionId", "getMeta", "Boolean", "changed", "deployScript", "client", "space", "validationError", "validateDeployInputs", "success", "error", "buildResult", "source", "target", "content", "Error", "functionsServiceClient", "fromClient", "newFunction", "deploy", "default", "ownerPublicKey", "key", "version", "functionId", "entryPoint", "assets", "runtime", "enums", "WORKER_LOADER", "storedFunction", "createOrUpdateFunctionInSpace", "change", "obj", "err", "catch", "setFrom", "make", "db", "add", "Obj", "getUserFunctionIdInMetadata", "getInvocationUrl", "log", "getSpace", "getFunctionUrl", "script", "fn", "edgeUrl", "space", "existingFunctionId", "getMeta", "undefined", "spaceId", "id", "updateFunctionMetadata", "storedFunction", "meta", "functionId", "change", "obj", "description", "trim", "verbose", "inputSchema", "outputSchema", "key", "getAccessCredential", "identityKey", "issuer", "issuanceDate", "Date", "subject", "assertion", "serverName", "serverKey", "capabilities", "Effect", "Option", "Plugin", "AppActivationEvents", "AppPlugin", "Annotation", "Ref", "Script", "Operation", "SpaceOperation", "meta", "Script", "meta", "Notebook", "translations", "Script", "typename", "Notebook", "meta", "id", "ScriptEvents", "Notebook", "ScriptOperation", "AppGraphBuilder", "BlueprintDefinition", "Compiler", "OperationHandler", "ReactSurface", "ScriptSettings", "ScriptPlugin", "Plugin", "define", "meta", "pipe", "AppPlugin", "addAppGraphModule", "activate", "AppGraphBuilder", "addBlueprintDefinitionModule", "BlueprintDefinition", "addMetadataModule", "metadata", "id", "Script", "typename", "icon", "Annotation", "IconAnnotation", "get", "getOrThrow", "iconHue", "hue", "loadReferences", "script", "Ref", "Array", "loadAll", "source", "inputSchema", "ScriptOperation", "ScriptProps", "createObject", "props", "options", "gen", "object", "Operation", "invoke", "CreateScript", "SpaceOperation", "AddObject", "target", "hidden", "targetNodeId", "Notebook", "NotebookProps", "make", "addOperationHandlerModule", "OperationHandler", "addSchemaModule", "schema", "addSurfaceModule", "ReactSurface", "addTranslationsModule", "translations", "addModule", "activatesOn", "AppActivationEvents", "SetupSettings", "ScriptSettings", "ScriptEvents", "SetupCompiler", "Compiler"]
7
7
  }
@@ -0,0 +1,56 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ InspectInvocations
4
+ } from "./chunk-QZMVI6AH.mjs";
5
+ import "./chunk-HSLMI22Q.mjs";
6
+
7
+ // src/blueprints/functions/inspect-invocations.ts
8
+ import * as Effect from "effect/Effect";
9
+ import { Database, Obj, Query } from "@dxos/echo";
10
+ import { getUserFunctionIdInMetadata, QueueService } from "@dxos/functions";
11
+ import { createInvocationSpans } from "@dxos/functions-runtime";
12
+ import { Operation } from "@dxos/operation";
13
+ import { SpaceProperties } from "@dxos/client-protocol";
14
+ var inspect_invocations_default = InspectInvocations.pipe(Operation.withHandler(Effect.fn(function* ({ function: fn2, limit }) {
15
+ const loaded = yield* Database.load(fn2);
16
+ const maxResults = limit ?? 20;
17
+ const [properties] = yield* Database.runQuery(Query.type(SpaceProperties));
18
+ if (!properties?.invocationTraceQueue?.target) {
19
+ return {
20
+ invocations: [],
21
+ total: 0
22
+ };
23
+ }
24
+ const queue = yield* QueueService.getQueue(properties.invocationTraceQueue.target.dxn);
25
+ const events = yield* Effect.promise(() => queue.queryObjects());
26
+ const allSpans = createInvocationSpans(events);
27
+ const functionId = getUserFunctionIdInMetadata(Obj.getMeta(loaded));
28
+ const filtered = allSpans.filter((span) => {
29
+ if (!span.invocationTarget || !functionId) {
30
+ return false;
31
+ }
32
+ const targetDxn = span.invocationTarget.dxn.toString();
33
+ const uuidPart = targetDxn.split(":").pop();
34
+ return uuidPart === functionId;
35
+ });
36
+ filtered.sort((a, b) => b.timestamp - a.timestamp);
37
+ const total = filtered.length;
38
+ const invocations = filtered.slice(0, maxResults).map((span) => ({
39
+ id: span.id,
40
+ timestamp: span.timestamp,
41
+ duration: span.duration,
42
+ outcome: `${span.outcome}`,
43
+ input: span.input !== null && typeof span.input === "object" ? span.input : {
44
+ value: span.input
45
+ },
46
+ error: span.error ? span.error : void 0
47
+ }));
48
+ return {
49
+ invocations,
50
+ total
51
+ };
52
+ })));
53
+ export {
54
+ inspect_invocations_default as default
55
+ };
56
+ //# sourceMappingURL=inspect-invocations-PLSHQCFM.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/blueprints/functions/inspect-invocations.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Database, Obj, Query } from '@dxos/echo';\nimport { getUserFunctionIdInMetadata, QueueService } from '@dxos/functions';\nimport { type InvocationTraceEvent, createInvocationSpans } from '@dxos/functions-runtime';\nimport { Operation } from '@dxos/operation';\nimport { SpaceProperties } from '@dxos/client-protocol';\n\nimport { InspectInvocations } from './definitions';\n\nexport default InspectInvocations.pipe(\n Operation.withHandler(\n Effect.fn(function* ({ function: fn, limit }) {\n const loaded = yield* Database.load(fn);\n const maxResults = limit ?? 20;\n\n const [properties] = yield* Database.runQuery(Query.type(SpaceProperties));\n if (!properties?.invocationTraceQueue?.target) {\n return { invocations: [], total: 0 };\n }\n\n const queue = yield* QueueService.getQueue<InvocationTraceEvent>(properties.invocationTraceQueue.target.dxn);\n const events = yield* Effect.promise(() => queue.queryObjects());\n const allSpans = createInvocationSpans(events);\n\n const functionId = getUserFunctionIdInMetadata(Obj.getMeta(loaded));\n\n const filtered = allSpans.filter((span) => {\n if (!span.invocationTarget || !functionId) {\n return false;\n }\n const targetDxn = span.invocationTarget.dxn.toString();\n const uuidPart = targetDxn.split(':').pop();\n return uuidPart === functionId;\n });\n\n filtered.sort((a, b) => b.timestamp - a.timestamp);\n const total = filtered.length;\n const invocations = filtered.slice(0, maxResults).map((span) => ({\n id: span.id,\n timestamp: span.timestamp,\n duration: span.duration,\n outcome: `${span.outcome}`,\n input: span.input !== null && typeof span.input === 'object' ? span.input : { value: span.input },\n error: span.error ? (span.error as object) : undefined,\n }));\n\n return { invocations, total };\n }),\n ),\n);\n"],
5
+ "mappings": ";;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,UAAUC,KAAKC,aAAa;AACrC,SAASC,6BAA6BC,oBAAoB;AAC1D,SAAoCC,6BAA6B;AACjE,SAASC,iBAAiB;AAC1B,SAASC,uBAAuB;AAIhC,IAAA,8BAAeC,mBAAmBC,KAChCC,UAAUC,YACDC,UAAG,WAAW,EAAEC,UAAUD,KAAIE,MAAK,GAAE;AAC1C,QAAMC,SAAS,OAAOC,SAASC,KAAKL,GAAAA;AACpC,QAAMM,aAAaJ,SAAS;AAE5B,QAAM,CAACK,UAAAA,IAAc,OAAOH,SAASI,SAASC,MAAMC,KAAKC,eAAAA,CAAAA;AACzD,MAAI,CAACJ,YAAYK,sBAAsBC,QAAQ;AAC7C,WAAO;MAAEC,aAAa,CAAA;MAAIC,OAAO;IAAE;EACrC;AAEA,QAAMC,QAAQ,OAAOC,aAAaC,SAA+BX,WAAWK,qBAAqBC,OAAOM,GAAG;AAC3G,QAAMC,SAAS,OAAcC,eAAQ,MAAML,MAAMM,aAAY,CAAA;AAC7D,QAAMC,WAAWC,sBAAsBJ,MAAAA;AAEvC,QAAMK,aAAaC,4BAA4BC,IAAIC,QAAQzB,MAAAA,CAAAA;AAE3D,QAAM0B,WAAWN,SAASO,OAAO,CAACC,SAAAA;AAChC,QAAI,CAACA,KAAKC,oBAAoB,CAACP,YAAY;AACzC,aAAO;IACT;AACA,UAAMQ,YAAYF,KAAKC,iBAAiBb,IAAIe,SAAQ;AACpD,UAAMC,WAAWF,UAAUG,MAAM,GAAA,EAAKC,IAAG;AACzC,WAAOF,aAAaV;EACtB,CAAA;AAEAI,WAASS,KAAK,CAACC,GAAGC,MAAMA,EAAEC,YAAYF,EAAEE,SAAS;AACjD,QAAM1B,QAAQc,SAASa;AACvB,QAAM5B,cAAce,SAASc,MAAM,GAAGrC,UAAAA,EAAYsC,IAAI,CAACb,UAAU;IAC/Dc,IAAId,KAAKc;IACTJ,WAAWV,KAAKU;IAChBK,UAAUf,KAAKe;IACfC,SAAS,GAAGhB,KAAKgB,OAAO;IACxBC,OAAOjB,KAAKiB,UAAU,QAAQ,OAAOjB,KAAKiB,UAAU,WAAWjB,KAAKiB,QAAQ;MAAEC,OAAOlB,KAAKiB;IAAM;IAChGE,OAAOnB,KAAKmB,QAASnB,KAAKmB,QAAmBC;EAC/C,EAAA;AAEA,SAAO;IAAErC;IAAaC;EAAM;AAC9B,CAAA,CAAA,CAAA;",
6
+ "names": ["Effect", "Database", "Obj", "Query", "getUserFunctionIdInMetadata", "QueueService", "createInvocationSpans", "Operation", "SpaceProperties", "InspectInvocations", "pipe", "Operation", "withHandler", "fn", "function", "limit", "loaded", "Database", "load", "maxResults", "properties", "runQuery", "Query", "type", "SpaceProperties", "invocationTraceQueue", "target", "invocations", "total", "queue", "QueueService", "getQueue", "dxn", "events", "promise", "queryObjects", "allSpans", "createInvocationSpans", "functionId", "getUserFunctionIdInMetadata", "Obj", "getMeta", "filtered", "filter", "span", "invocationTarget", "targetDxn", "toString", "uuidPart", "split", "pop", "sort", "a", "b", "timestamp", "length", "slice", "map", "id", "duration", "outcome", "input", "value", "error", "undefined"]
7
+ }
@@ -0,0 +1,55 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ InstallFunction
4
+ } from "./chunk-QZMVI6AH.mjs";
5
+ import "./chunk-HSLMI22Q.mjs";
6
+
7
+ // src/blueprints/functions/install-function.ts
8
+ import * as Effect from "effect/Effect";
9
+ import { ClientService } from "@dxos/client";
10
+ import { Context } from "@dxos/context";
11
+ import { Obj, Query } from "@dxos/echo";
12
+ import { FunctionsServiceClient } from "@dxos/functions-runtime/edge";
13
+ import { Operation } from "@dxos/operation";
14
+ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-script/src/blueprints/functions/install-function.ts";
15
+ var install_function_default = InstallFunction.pipe(Operation.withHandler(Effect.fn(function* ({ key }) {
16
+ const client = yield* ClientService;
17
+ const functionsService = FunctionsServiceClient.fromClient(client);
18
+ const deployed = yield* Effect.promise(() => functionsService.query(Context.default(void 0, {
19
+ F: __dxlog_file,
20
+ L: 20
21
+ })));
22
+ const fn2 = deployed.findLast((entry) => entry.key === key);
23
+ if (!fn2) {
24
+ return yield* Effect.fail(new Error(`No deployed function found with key: ${key}`));
25
+ }
26
+ const space = client.spaces.get()[0];
27
+ if (!space) {
28
+ return yield* Effect.fail(new Error("No space available"));
29
+ }
30
+ yield* Effect.promise(() => client.addTypes([
31
+ Operation.PersistentOperation
32
+ ]));
33
+ const existingFunctions = yield* Effect.promise(() => space.db.query(Query.type(Operation.PersistentOperation, {
34
+ key
35
+ })).run());
36
+ let installed;
37
+ if (existingFunctions.length > 0) {
38
+ installed = existingFunctions[0];
39
+ for (const existing of existingFunctions) {
40
+ Operation.setFrom(existing, fn2);
41
+ }
42
+ } else {
43
+ installed = Obj.clone(fn2);
44
+ space.db.add(installed);
45
+ }
46
+ return {
47
+ function: Obj.getDXN(installed).toString(),
48
+ name: fn2.name ?? "Unnamed function",
49
+ version: fn2.version ?? "0.0.0"
50
+ };
51
+ })));
52
+ export {
53
+ install_function_default as default
54
+ };
55
+ //# sourceMappingURL=install-function-4TVXEWYF.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/blueprints/functions/install-function.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2026 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { ClientService } from '@dxos/client';\nimport { Context } from '@dxos/context';\nimport { Obj, Query } from '@dxos/echo';\nimport { FunctionsServiceClient } from '@dxos/functions-runtime/edge';\nimport { Operation } from '@dxos/operation';\n\nimport { InstallFunction } from './definitions';\n\nexport default InstallFunction.pipe(\n Operation.withHandler(\n Effect.fn(function* ({ key }) {\n const client = yield* ClientService;\n const functionsService = FunctionsServiceClient.fromClient(client);\n const deployed = yield* Effect.promise(() => functionsService.query(Context.default()));\n\n const fn = deployed.findLast((entry) => entry.key === key);\n if (!fn) {\n return yield* Effect.fail(new Error(`No deployed function found with key: ${key}`));\n }\n\n const space = client.spaces.get()[0];\n if (!space) {\n return yield* Effect.fail(new Error('No space available'));\n }\n\n yield* Effect.promise(() => client.addTypes([Operation.PersistentOperation]));\n\n const existingFunctions = yield* Effect.promise(() =>\n space.db.query(Query.type(Operation.PersistentOperation, { key })).run(),\n );\n\n let installed: Operation.PersistentOperation;\n if (existingFunctions.length > 0) {\n installed = existingFunctions[0];\n for (const existing of existingFunctions) {\n Operation.setFrom(existing, fn);\n }\n } else {\n installed = Obj.clone(fn);\n space.db.add(installed);\n }\n\n return {\n function: Obj.getDXN(installed).toString(),\n name: fn.name ?? 'Unnamed function',\n version: fn.version ?? '0.0.0',\n };\n }),\n ),\n);\n"],
5
+ "mappings": ";;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,qBAAqB;AAC9B,SAASC,eAAe;AACxB,SAASC,KAAKC,aAAa;AAC3B,SAASC,8BAA8B;AACvC,SAASC,iBAAiB;;AAI1B,IAAA,2BAAeC,gBAAgBC,KAC7BC,UAAUC,YACDC,UAAG,WAAW,EAAEC,IAAG,GAAE;AAC1B,QAAMC,SAAS,OAAOC;AACtB,QAAMC,mBAAmBC,uBAAuBC,WAAWJ,MAAAA;AAC3D,QAAMK,WAAW,OAAcC,eAAQ,MAAMJ,iBAAiBK,MAAMC,QAAQC,QAAO,QAAA;;;;AAEnF,QAAMX,MAAKO,SAASK,SAAS,CAACC,UAAUA,MAAMZ,QAAQA,GAAAA;AACtD,MAAI,CAACD,KAAI;AACP,WAAO,OAAcc,YAAK,IAAIC,MAAM,wCAAwCd,GAAAA,EAAK,CAAA;EACnF;AAEA,QAAMe,QAAQd,OAAOe,OAAOC,IAAG,EAAG,CAAA;AAClC,MAAI,CAACF,OAAO;AACV,WAAO,OAAcF,YAAK,IAAIC,MAAM,oBAAA,CAAA;EACtC;AAEA,SAAcP,eAAQ,MAAMN,OAAOiB,SAAS;IAACrB,UAAUsB;GAAoB,CAAA;AAE3E,QAAMC,oBAAoB,OAAcb,eAAQ,MAC9CQ,MAAMM,GAAGb,MAAMc,MAAMC,KAAK1B,UAAUsB,qBAAqB;IAAEnB;EAAI,CAAA,CAAA,EAAIwB,IAAG,CAAA;AAGxE,MAAIC;AACJ,MAAIL,kBAAkBM,SAAS,GAAG;AAChCD,gBAAYL,kBAAkB,CAAA;AAC9B,eAAWO,YAAYP,mBAAmB;AACxCvB,gBAAU+B,QAAQD,UAAU5B,GAAAA;IAC9B;EACF,OAAO;AACL0B,gBAAYI,IAAIC,MAAM/B,GAAAA;AACtBgB,UAAMM,GAAGU,IAAIN,SAAAA;EACf;AAEA,SAAO;IACLO,UAAUH,IAAII,OAAOR,SAAAA,EAAWS,SAAQ;IACxCC,MAAMpC,IAAGoC,QAAQ;IACjBC,SAASrC,IAAGqC,WAAW;EACzB;AACF,CAAA,CAAA,CAAA;",
6
+ "names": ["Effect", "ClientService", "Context", "Obj", "Query", "FunctionsServiceClient", "Operation", "InstallFunction", "pipe", "Operation", "withHandler", "fn", "key", "client", "ClientService", "functionsService", "FunctionsServiceClient", "fromClient", "deployed", "promise", "query", "Context", "default", "findLast", "entry", "fail", "Error", "space", "spaces", "get", "addTypes", "PersistentOperation", "existingFunctions", "db", "Query", "type", "run", "installed", "length", "existing", "setFrom", "Obj", "clone", "add", "function", "getDXN", "toString", "name", "version"]
7
+ }
@@ -0,0 +1,37 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ Invoke
4
+ } from "./chunk-QZMVI6AH.mjs";
5
+ import "./chunk-HSLMI22Q.mjs";
6
+
7
+ // src/blueprints/functions/invoke.ts
8
+ import * as Effect from "effect/Effect";
9
+ import { ClientService } from "@dxos/client";
10
+ import { Context } from "@dxos/context";
11
+ import { Database } from "@dxos/echo";
12
+ import { FunctionsServiceClient } from "@dxos/functions-runtime/edge";
13
+ import { Operation } from "@dxos/operation";
14
+ import { getSpace } from "@dxos/react-client/echo";
15
+ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-script/src/blueprints/functions/invoke.ts";
16
+ var invoke_default = Invoke.pipe(Operation.withHandler(Effect.fn(function* ({ function: fn2, payload }) {
17
+ const loaded = yield* Database.load(fn2);
18
+ const client = yield* ClientService;
19
+ const space = getSpace(loaded);
20
+ if (!space) {
21
+ return yield* Effect.fail(new Error("Function is not in a space."));
22
+ }
23
+ const functionsService = FunctionsServiceClient.fromClient(client);
24
+ const result = yield* Effect.promise(() => functionsService.invoke(Context.default(void 0, {
25
+ F: __dxlog_file,
26
+ L: 29
27
+ }), loaded, payload ?? {}, {
28
+ spaceId: space.id
29
+ }));
30
+ return {
31
+ response: result
32
+ };
33
+ })));
34
+ export {
35
+ invoke_default as default
36
+ };
37
+ //# sourceMappingURL=invoke-J4Z7CS44.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/blueprints/functions/invoke.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { ClientService } from '@dxos/client';\nimport { Context } from '@dxos/context';\nimport { Database } from '@dxos/echo';\nimport { FunctionsServiceClient } from '@dxos/functions-runtime/edge';\nimport { Operation } from '@dxos/operation';\nimport { getSpace } from '@dxos/react-client/echo';\n\nimport { Invoke } from './definitions';\n\nexport default Invoke.pipe(\n Operation.withHandler(\n Effect.fn(function* ({ function: fn, payload }) {\n const loaded = yield* Database.load(fn);\n const client = yield* ClientService;\n\n const space = getSpace(loaded);\n if (!space) {\n return yield* Effect.fail(new Error('Function is not in a space.'));\n }\n\n const functionsService = FunctionsServiceClient.fromClient(client);\n const result = yield* Effect.promise(() =>\n functionsService.invoke(Context.default(), loaded, payload ?? {}, { spaceId: space.id }),\n );\n\n return { response: result };\n }),\n ),\n);\n"],
5
+ "mappings": ";;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,qBAAqB;AAC9B,SAASC,eAAe;AACxB,SAASC,gBAAgB;AACzB,SAASC,8BAA8B;AACvC,SAASC,iBAAiB;AAC1B,SAASC,gBAAgB;;AAIzB,IAAA,iBAAeC,OAAOC,KACpBC,UAAUC,YACDC,UAAG,WAAW,EAAEC,UAAUD,KAAIE,QAAO,GAAE;AAC5C,QAAMC,SAAS,OAAOC,SAASC,KAAKL,GAAAA;AACpC,QAAMM,SAAS,OAAOC;AAEtB,QAAMC,QAAQC,SAASN,MAAAA;AACvB,MAAI,CAACK,OAAO;AACV,WAAO,OAAcE,YAAK,IAAIC,MAAM,6BAAA,CAAA;EACtC;AAEA,QAAMC,mBAAmBC,uBAAuBC,WAAWR,MAAAA;AAC3D,QAAMS,SAAS,OAAcC,eAAQ,MACnCJ,iBAAiBK,OAAOC,QAAQC,QAAO,QAAA;;;MAAIhB,QAAQD,WAAW,CAAC,GAAG;IAAEkB,SAASZ,MAAMa;EAAG,CAAA,CAAA;AAGxF,SAAO;IAAEC,UAAUP;EAAO;AAC5B,CAAA,CAAA,CAAA;",
6
+ "names": ["Effect", "ClientService", "Context", "Database", "FunctionsServiceClient", "Operation", "getSpace", "Invoke", "pipe", "Operation", "withHandler", "fn", "function", "payload", "loaded", "Database", "load", "client", "ClientService", "space", "getSpace", "fail", "Error", "functionsService", "FunctionsServiceClient", "fromClient", "result", "promise", "invoke", "Context", "default", "spaceId", "id", "response"]
7
+ }