@dxos/plugin-script 0.8.4-main.ae835ea → 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 (510) 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-C36N7AFF.mjs → NotebookContainer-TGHMYWWK.mjs} +275 -254
  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 +58 -0
  19. package/dist/lib/browser/blueprints/index.mjs.map +7 -0
  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-DL37UOJE.mjs +105 -0
  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 +1179 -232
  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 +7 -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-FOVFGJQR.mjs → NotebookContainer-YUVZF6IS.mjs} +275 -254
  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 +59 -0
  72. package/dist/lib/node-esm/blueprints/index.mjs.map +7 -0
  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-ZLTGO4XB.mjs +107 -0
  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 +1179 -232
  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 +7 -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 +2 -1
  109. package/dist/types/src/ScriptPlugin.d.ts.map +1 -1
  110. package/dist/types/src/blueprints/functions/create.d.ts +11 -0
  111. package/dist/types/src/blueprints/functions/create.d.ts.map +1 -0
  112. package/dist/types/src/blueprints/functions/definitions.d.ts +142 -0
  113. package/dist/types/src/blueprints/functions/definitions.d.ts.map +1 -0
  114. package/dist/types/src/blueprints/functions/delete.d.ts +18 -0
  115. package/dist/types/src/blueprints/functions/delete.d.ts.map +1 -0
  116. package/dist/types/src/blueprints/functions/deploy.d.ts +22 -0
  117. package/dist/types/src/blueprints/functions/deploy.d.ts.map +1 -0
  118. package/dist/types/src/blueprints/functions/index.d.ts +4 -0
  119. package/dist/types/src/blueprints/functions/index.d.ts.map +1 -0
  120. package/dist/types/src/blueprints/functions/inspect-invocations.d.ts +30 -0
  121. package/dist/types/src/blueprints/functions/inspect-invocations.d.ts.map +1 -0
  122. package/dist/types/src/blueprints/functions/install-function.d.ts +11 -0
  123. package/dist/types/src/blueprints/functions/install-function.d.ts.map +1 -0
  124. package/dist/types/src/blueprints/functions/invoke.d.ts +22 -0
  125. package/dist/types/src/blueprints/functions/invoke.d.ts.map +1 -0
  126. package/dist/types/src/blueprints/functions/query-deployed-functions.d.ts +13 -0
  127. package/dist/types/src/blueprints/functions/query-deployed-functions.d.ts.map +1 -0
  128. package/dist/types/src/blueprints/functions/read.d.ts +22 -0
  129. package/dist/types/src/blueprints/functions/read.d.ts.map +1 -0
  130. package/dist/types/src/blueprints/functions/update.d.ts +27 -0
  131. package/dist/types/src/blueprints/functions/update.d.ts.map +1 -0
  132. package/dist/types/src/blueprints/index.d.ts +2 -0
  133. package/dist/types/src/blueprints/index.d.ts.map +1 -0
  134. package/dist/types/src/blueprints/script-blueprint.d.ts +4 -0
  135. package/dist/types/src/blueprints/script-blueprint.d.ts.map +1 -0
  136. package/dist/types/src/capabilities/app-graph-builder.d.ts +4 -2
  137. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  138. package/dist/types/src/capabilities/artifact-definition.d.ts +3 -2
  139. package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -1
  140. package/dist/types/src/capabilities/blueprint-definition.d.ts +5 -4
  141. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -1
  142. package/dist/types/src/capabilities/compiler.d.ts +3 -1
  143. package/dist/types/src/capabilities/compiler.d.ts.map +1 -1
  144. package/dist/types/src/capabilities/index.d.ts +12 -7
  145. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  146. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  147. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  148. package/dist/types/src/capabilities/react-surface.d.ts +3 -2
  149. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  150. package/dist/types/src/capabilities/settings.d.ts +8 -2
  151. package/dist/types/src/capabilities/settings.d.ts.map +1 -1
  152. package/dist/types/src/compiler/compiler.d.ts +1 -1
  153. package/dist/types/src/compiler/compiler.d.ts.map +1 -1
  154. package/dist/types/src/components/FramePanel/FramePanel.d.ts +12 -0
  155. package/dist/types/src/components/FramePanel/FramePanel.d.ts.map +1 -0
  156. package/dist/types/src/components/FramePanel/index.d.ts +2 -0
  157. package/dist/types/src/components/FramePanel/index.d.ts.map +1 -0
  158. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts +4 -4
  159. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts.map +1 -1
  160. package/dist/types/src/components/NotebookStack/NotebookMenu.d.ts +1 -1
  161. package/dist/types/src/components/NotebookStack/NotebookMenu.d.ts.map +1 -1
  162. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts +9 -3
  163. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts.map +1 -1
  164. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts +242 -226
  165. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts.map +1 -1
  166. package/dist/types/src/components/QueryEditor/QueryEditor.d.ts +5 -0
  167. package/dist/types/src/components/QueryEditor/QueryEditor.d.ts.map +1 -0
  168. package/dist/types/src/components/QueryEditor/QueryEditor.stories.d.ts +13 -0
  169. package/dist/types/src/components/QueryEditor/QueryEditor.stories.d.ts.map +1 -0
  170. package/dist/types/src/components/QueryEditor/index.d.ts +2 -0
  171. package/dist/types/src/components/QueryEditor/index.d.ts.map +1 -0
  172. package/dist/types/src/components/ScriptPluginSettings/ScriptPluginSettings.d.ts +8 -0
  173. package/dist/types/src/components/ScriptPluginSettings/ScriptPluginSettings.d.ts.map +1 -0
  174. package/dist/types/src/components/ScriptPluginSettings/ScriptPluginSettings.stories.d.ts +262 -0
  175. package/dist/types/src/components/ScriptPluginSettings/ScriptPluginSettings.stories.d.ts.map +1 -0
  176. package/dist/types/src/components/ScriptPluginSettings/index.d.ts +3 -0
  177. package/dist/types/src/components/ScriptPluginSettings/index.d.ts.map +1 -0
  178. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts +11 -5
  179. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts.map +1 -1
  180. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts +242 -226
  181. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts.map +1 -1
  182. package/dist/types/src/components/TestPanel/TestPanel.d.ts +8 -2
  183. package/dist/types/src/components/TestPanel/TestPanel.d.ts.map +1 -1
  184. package/dist/types/src/components/TestPanel/index.d.ts +0 -1
  185. package/dist/types/src/components/TestPanel/index.d.ts.map +1 -1
  186. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts +9 -2
  187. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts.map +1 -1
  188. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts +7 -1
  189. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts.map +1 -1
  190. package/dist/types/src/components/index.d.ts +6 -5
  191. package/dist/types/src/components/index.d.ts.map +1 -1
  192. package/dist/types/src/constants.d.ts +2 -0
  193. package/dist/types/src/constants.d.ts.map +1 -0
  194. package/dist/types/src/{components → containers}/DeploymentDialog/DeploymentDialog.d.ts +2 -4
  195. package/dist/types/src/containers/DeploymentDialog/DeploymentDialog.d.ts.map +1 -0
  196. package/dist/types/src/containers/DeploymentDialog/DeploymentDialog.stories.d.ts +261 -0
  197. package/dist/types/src/containers/DeploymentDialog/DeploymentDialog.stories.d.ts.map +1 -0
  198. package/dist/types/src/containers/DeploymentDialog/index.d.ts +3 -0
  199. package/dist/types/src/containers/DeploymentDialog/index.d.ts.map +1 -0
  200. package/dist/types/src/containers/NotebookContainer/NotebookContainer.d.ts +7 -0
  201. package/dist/types/src/containers/NotebookContainer/NotebookContainer.d.ts.map +1 -0
  202. package/dist/types/src/containers/NotebookContainer/NotebookContainer.stories.d.ts +7 -0
  203. package/dist/types/src/containers/NotebookContainer/NotebookContainer.stories.d.ts.map +1 -0
  204. package/dist/types/src/containers/NotebookContainer/index.d.ts +3 -0
  205. package/dist/types/src/containers/NotebookContainer/index.d.ts.map +1 -0
  206. package/dist/types/src/containers/ScriptContainer/ScriptContainer.d.ts +10 -0
  207. package/dist/types/src/containers/ScriptContainer/ScriptContainer.d.ts.map +1 -0
  208. package/dist/types/src/containers/ScriptContainer/index.d.ts +3 -0
  209. package/dist/types/src/containers/ScriptContainer/index.d.ts.map +1 -0
  210. package/dist/types/src/{components/Settings → containers/ScriptObjectSettings}/ScriptObjectSettings.d.ts +0 -1
  211. package/dist/types/src/containers/ScriptObjectSettings/ScriptObjectSettings.d.ts.map +1 -0
  212. package/dist/types/src/containers/ScriptObjectSettings/index.d.ts +3 -0
  213. package/dist/types/src/containers/ScriptObjectSettings/index.d.ts.map +1 -0
  214. package/dist/types/src/containers/ScriptProperties/ScriptProperties.d.ts +7 -0
  215. package/dist/types/src/containers/ScriptProperties/ScriptProperties.d.ts.map +1 -0
  216. package/dist/types/src/containers/ScriptProperties/index.d.ts +3 -0
  217. package/dist/types/src/containers/ScriptProperties/index.d.ts.map +1 -0
  218. package/dist/types/src/{components/TestPanel → containers/TestContainer}/TestContainer.d.ts +1 -1
  219. package/dist/types/src/containers/TestContainer/TestContainer.d.ts.map +1 -0
  220. package/dist/types/src/containers/TestContainer/index.d.ts +3 -0
  221. package/dist/types/src/containers/TestContainer/index.d.ts.map +1 -0
  222. package/dist/types/src/containers/index.d.ts +8 -0
  223. package/dist/types/src/containers/index.d.ts.map +1 -0
  224. package/dist/types/src/e2e/ai.test.d.ts +2 -0
  225. package/dist/types/src/e2e/ai.test.d.ts.map +1 -0
  226. package/dist/types/src/e2e/deploy.test.d.ts +2 -0
  227. package/dist/types/src/e2e/deploy.test.d.ts.map +1 -0
  228. package/dist/types/src/hooks/deploy.d.ts +25 -26
  229. package/dist/types/src/hooks/deploy.d.ts.map +1 -1
  230. package/dist/types/src/hooks/format.d.ts +3 -2
  231. package/dist/types/src/hooks/format.d.ts.map +1 -1
  232. package/dist/types/src/hooks/index.d.ts +1 -0
  233. package/dist/types/src/hooks/index.d.ts.map +1 -1
  234. package/dist/types/src/hooks/template.d.ts +3 -2
  235. package/dist/types/src/hooks/template.d.ts.map +1 -1
  236. package/dist/types/src/hooks/useCompiler.d.ts +7 -0
  237. package/dist/types/src/hooks/useCompiler.d.ts.map +1 -0
  238. package/dist/types/src/hooks/useCreateAndDeployScriptTemplates.d.ts.map +1 -1
  239. package/dist/types/src/hooks/useToolbarState.d.ts +8 -1
  240. package/dist/types/src/hooks/useToolbarState.d.ts.map +1 -1
  241. package/dist/types/src/index.d.ts +2 -1
  242. package/dist/types/src/index.d.ts.map +1 -1
  243. package/dist/types/src/meta.d.ts +2 -2
  244. package/dist/types/src/meta.d.ts.map +1 -1
  245. package/dist/types/src/notebook/compute-graph.d.ts +25 -12
  246. package/dist/types/src/notebook/compute-graph.d.ts.map +1 -1
  247. package/dist/types/src/operations/access-token-created.d.ts +5 -0
  248. package/dist/types/src/operations/access-token-created.d.ts.map +1 -0
  249. package/dist/types/src/operations/create-script.d.ts +5 -0
  250. package/dist/types/src/operations/create-script.d.ts.map +1 -0
  251. package/dist/types/src/operations/definitions.d.ts +29 -0
  252. package/dist/types/src/operations/definitions.d.ts.map +1 -0
  253. package/dist/types/src/operations/index.d.ts +4 -0
  254. package/dist/types/src/operations/index.d.ts.map +1 -0
  255. package/dist/types/src/templates/anthropic.d.ts +7 -0
  256. package/dist/types/src/templates/anthropic.d.ts.map +1 -0
  257. package/dist/types/src/templates/chess-bot.d.ts +18 -0
  258. package/dist/types/src/templates/chess-bot.d.ts.map +1 -0
  259. package/dist/types/src/templates/commentary.d.ts +19 -0
  260. package/dist/types/src/templates/commentary.d.ts.map +1 -0
  261. package/dist/types/src/templates/forex-effect.d.ts +5 -1
  262. package/dist/types/src/templates/forex-effect.d.ts.map +1 -1
  263. package/dist/types/src/templates/forex.d.ts +5 -1
  264. package/dist/types/src/templates/forex.d.ts.map +1 -1
  265. package/dist/types/src/templates/index.d.ts +25 -16
  266. package/dist/types/src/templates/index.d.ts.map +1 -1
  267. package/dist/types/src/templates/ping.d.ts +2 -4
  268. package/dist/types/src/templates/ping.d.ts.map +1 -1
  269. package/dist/types/src/testing/data.d.ts +1 -1
  270. package/dist/types/src/testing/data.d.ts.map +1 -1
  271. package/dist/types/src/testing/simulator.test.d.ts +2 -0
  272. package/dist/types/src/testing/simulator.test.d.ts.map +1 -0
  273. package/dist/types/src/translations.d.ts +91 -84
  274. package/dist/types/src/translations.d.ts.map +1 -1
  275. package/dist/types/src/types/Notebook.d.ts +108 -23
  276. package/dist/types/src/types/Notebook.d.ts.map +1 -1
  277. package/dist/types/src/types/Settings.d.ts +6 -0
  278. package/dist/types/src/types/Settings.d.ts.map +1 -0
  279. package/dist/types/src/types/capabilities.d.ts +12 -0
  280. package/dist/types/src/types/capabilities.d.ts.map +1 -0
  281. package/dist/types/src/types/events.d.ts +5 -0
  282. package/dist/types/src/types/events.d.ts.map +1 -0
  283. package/dist/types/src/types/index.d.ts +2 -1
  284. package/dist/types/src/types/index.d.ts.map +1 -1
  285. package/dist/types/src/types/types.d.ts +1 -5
  286. package/dist/types/src/types/types.d.ts.map +1 -1
  287. package/dist/types/src/util/deploy.d.ts +3 -2
  288. package/dist/types/src/util/deploy.d.ts.map +1 -1
  289. package/dist/types/src/util/functions.d.ts +3 -2
  290. package/dist/types/src/util/functions.d.ts.map +1 -1
  291. package/dist/types/tsconfig.tsbuildinfo +1 -1
  292. package/package.json +136 -86
  293. package/src/ScriptPlugin.tsx +64 -86
  294. package/src/blueprints/functions/create.ts +48 -0
  295. package/src/blueprints/functions/definitions.ts +324 -0
  296. package/src/blueprints/functions/delete.ts +23 -0
  297. package/src/blueprints/functions/deploy.ts +70 -0
  298. package/src/blueprints/functions/index.ts +19 -0
  299. package/src/blueprints/functions/inspect-invocations.ts +55 -0
  300. package/src/blueprints/functions/install-function.ts +56 -0
  301. package/src/blueprints/functions/invoke.ts +35 -0
  302. package/src/blueprints/functions/query-deployed-functions.ts +31 -0
  303. package/src/blueprints/functions/read.ts +30 -0
  304. package/src/blueprints/functions/update.ts +69 -0
  305. package/src/blueprints/index.ts +5 -0
  306. package/src/blueprints/script-blueprint.ts +56 -0
  307. package/src/capabilities/app-graph-builder.ts +39 -57
  308. package/src/capabilities/artifact-definition.ts +97 -95
  309. package/src/capabilities/blueprint-definition.ts +11 -24
  310. package/src/capabilities/compiler.ts +92 -23
  311. package/src/capabilities/index.ts +11 -9
  312. package/src/capabilities/operation-handler.ts +20 -0
  313. package/src/capabilities/react-surface.tsx +132 -82
  314. package/src/capabilities/settings.ts +26 -14
  315. package/src/compiler/compiler.ts +10 -3
  316. package/src/components/{FrameContainer/FrameContainer.tsx → FramePanel/FramePanel.tsx} +8 -7
  317. package/src/components/{FrameContainer → FramePanel}/index.ts +1 -1
  318. package/src/components/NotebookStack/NotebookCell.tsx +40 -33
  319. package/src/components/NotebookStack/NotebookMenu.tsx +7 -7
  320. package/src/components/NotebookStack/NotebookStack.stories.tsx +21 -22
  321. package/src/components/NotebookStack/NotebookStack.tsx +30 -19
  322. package/src/components/QueryEditor/QueryEditor.stories.tsx +96 -0
  323. package/src/components/QueryEditor/QueryEditor.tsx +47 -0
  324. package/src/components/QueryEditor/index.ts +5 -0
  325. package/src/components/ScriptPluginSettings/ScriptPluginSettings.stories.tsx +32 -0
  326. package/src/components/ScriptPluginSettings/ScriptPluginSettings.tsx +64 -0
  327. package/src/components/ScriptPluginSettings/index.ts +7 -0
  328. package/src/components/ScriptToolbar/ScriptToolbar.stories.tsx +39 -17
  329. package/src/components/ScriptToolbar/ScriptToolbar.tsx +39 -44
  330. package/src/components/TestPanel/TestPanel.tsx +121 -178
  331. package/src/components/TestPanel/index.ts +0 -1
  332. package/src/components/TypescriptEditor/TypescriptEditor.stories.tsx +25 -18
  333. package/src/components/TypescriptEditor/TypescriptEditor.tsx +73 -66
  334. package/src/components/index.ts +7 -8
  335. package/src/constants.ts +7 -0
  336. package/src/{components → containers}/DeploymentDialog/DeploymentDialog.stories.tsx +30 -25
  337. package/src/containers/DeploymentDialog/DeploymentDialog.tsx +98 -0
  338. package/src/containers/DeploymentDialog/index.ts +7 -0
  339. package/src/{components → containers/NotebookContainer}/NotebookContainer.stories.tsx +30 -29
  340. package/src/{components → containers/NotebookContainer}/NotebookContainer.tsx +97 -92
  341. package/src/containers/NotebookContainer/index.ts +7 -0
  342. package/src/containers/ScriptContainer/ScriptContainer.tsx +85 -0
  343. package/src/containers/ScriptContainer/index.ts +7 -0
  344. package/src/{components/Settings → containers/ScriptObjectSettings}/ScriptObjectSettings.tsx +84 -75
  345. package/src/containers/ScriptObjectSettings/index.ts +7 -0
  346. package/src/containers/ScriptProperties/ScriptProperties.tsx +33 -0
  347. package/src/containers/ScriptProperties/index.ts +7 -0
  348. package/src/containers/TestContainer/TestContainer.tsx +45 -0
  349. package/src/containers/TestContainer/index.ts +7 -0
  350. package/src/containers/index.ts +12 -0
  351. package/src/e2e/ai.test.ts +93 -0
  352. package/src/e2e/deploy.test.ts +65 -0
  353. package/src/hooks/deploy.ts +44 -35
  354. package/src/hooks/format.ts +8 -3
  355. package/src/hooks/index.ts +1 -0
  356. package/src/hooks/template.ts +17 -11
  357. package/src/hooks/useCompiler.ts +24 -0
  358. package/src/hooks/useCreateAndDeployScriptTemplates.ts +13 -15
  359. package/src/hooks/useToolbarState.ts +29 -4
  360. package/src/index.ts +2 -1
  361. package/src/meta.ts +4 -4
  362. package/src/notebook/compute-graph.test.ts +21 -9
  363. package/src/notebook/compute-graph.ts +46 -22
  364. package/src/operations/access-token-created.ts +36 -0
  365. package/src/operations/create-script.ts +47 -0
  366. package/src/operations/definitions.ts +40 -0
  367. package/src/operations/index.ts +12 -0
  368. package/src/templates/anthropic.ts +49 -0
  369. package/src/templates/chat.ts +1 -1
  370. package/src/templates/chess-bot.ts +61 -0
  371. package/src/templates/commentary.ts +244 -0
  372. package/src/templates/data-generator.ts +2 -2
  373. package/src/templates/discord.ts +3 -3
  374. package/src/templates/forex-effect.ts +35 -29
  375. package/src/templates/forex.ts +27 -17
  376. package/src/templates/gmail.ts +5 -6
  377. package/src/templates/index.ts +31 -18
  378. package/src/templates/ping.ts +22 -5
  379. package/src/testing/data.ts +8 -8
  380. package/src/testing/simulator.test.ts +40 -0
  381. package/src/translations.ts +92 -84
  382. package/src/types/Notebook.ts +19 -15
  383. package/src/types/Settings.ts +17 -0
  384. package/src/types/capabilities.ts +17 -0
  385. package/src/types/events.ts +11 -0
  386. package/src/types/index.ts +2 -1
  387. package/src/types/types.ts +1 -11
  388. package/src/util/deploy.ts +28 -32
  389. package/src/util/functions.ts +31 -26
  390. package/src/vite-env.d.ts +2 -0
  391. package/dist/lib/browser/DeploymentDialog-E5NXT4UQ.mjs +0 -14
  392. package/dist/lib/browser/DeploymentDialog-E5NXT4UQ.mjs.map +0 -7
  393. package/dist/lib/browser/NotebookContainer-C36N7AFF.mjs.map +0 -7
  394. package/dist/lib/browser/ScriptContainer-4YPRUM3C.mjs +0 -148
  395. package/dist/lib/browser/ScriptContainer-4YPRUM3C.mjs.map +0 -7
  396. package/dist/lib/browser/app-graph-builder-LEOPGBJD.mjs +0 -66
  397. package/dist/lib/browser/app-graph-builder-LEOPGBJD.mjs.map +0 -7
  398. package/dist/lib/browser/blueprint-definition-6PZWZM2Y.mjs +0 -30
  399. package/dist/lib/browser/blueprint-definition-6PZWZM2Y.mjs.map +0 -7
  400. package/dist/lib/browser/chunk-5S5YQNJZ.mjs +0 -304
  401. package/dist/lib/browser/chunk-5S5YQNJZ.mjs.map +0 -7
  402. package/dist/lib/browser/chunk-A5K3TXYA.mjs +0 -269
  403. package/dist/lib/browser/chunk-A5K3TXYA.mjs.map +0 -7
  404. package/dist/lib/browser/chunk-EB6AXFXO.mjs +0 -31
  405. package/dist/lib/browser/chunk-EB6AXFXO.mjs.map +0 -7
  406. package/dist/lib/browser/chunk-HCURXADW.mjs +0 -102
  407. package/dist/lib/browser/chunk-HCURXADW.mjs.map +0 -7
  408. package/dist/lib/browser/chunk-HHTOAI2J.mjs +0 -644
  409. package/dist/lib/browser/chunk-HHTOAI2J.mjs.map +0 -7
  410. package/dist/lib/browser/chunk-IQMYIWHG.mjs +0 -153
  411. package/dist/lib/browser/chunk-IQMYIWHG.mjs.map +0 -7
  412. package/dist/lib/browser/chunk-LI4P25M5.mjs +0 -111
  413. package/dist/lib/browser/chunk-LI4P25M5.mjs.map +0 -7
  414. package/dist/lib/browser/chunk-Q2DGRQRN.mjs +0 -255
  415. package/dist/lib/browser/chunk-Q2DGRQRN.mjs.map +0 -7
  416. package/dist/lib/browser/chunk-ST3ACVUC.mjs +0 -88
  417. package/dist/lib/browser/chunk-ST3ACVUC.mjs.map +0 -7
  418. package/dist/lib/browser/chunk-UOQ6NCH3.mjs +0 -15
  419. package/dist/lib/browser/chunk-UOQ6NCH3.mjs.map +0 -7
  420. package/dist/lib/browser/compiler-Q4UY2COU.mjs +0 -86
  421. package/dist/lib/browser/compiler-Q4UY2COU.mjs.map +0 -7
  422. package/dist/lib/browser/intent-resolver-AMMHATM7.mjs +0 -105
  423. package/dist/lib/browser/intent-resolver-AMMHATM7.mjs.map +0 -7
  424. package/dist/lib/browser/react-surface-X4NATU6B.mjs +0 -128
  425. package/dist/lib/browser/react-surface-X4NATU6B.mjs.map +0 -7
  426. package/dist/lib/browser/settings-6UXY7F7D.mjs +0 -26
  427. package/dist/lib/browser/settings-6UXY7F7D.mjs.map +0 -7
  428. package/dist/lib/node-esm/DeploymentDialog-OSHHSEBH.mjs +0 -15
  429. package/dist/lib/node-esm/DeploymentDialog-OSHHSEBH.mjs.map +0 -7
  430. package/dist/lib/node-esm/NotebookContainer-FOVFGJQR.mjs.map +0 -7
  431. package/dist/lib/node-esm/ScriptContainer-EW24D5II.mjs +0 -149
  432. package/dist/lib/node-esm/ScriptContainer-EW24D5II.mjs.map +0 -7
  433. package/dist/lib/node-esm/app-graph-builder-XJ3MY5BM.mjs +0 -67
  434. package/dist/lib/node-esm/app-graph-builder-XJ3MY5BM.mjs.map +0 -7
  435. package/dist/lib/node-esm/blueprint-definition-5R6YCSZZ.mjs +0 -31
  436. package/dist/lib/node-esm/blueprint-definition-5R6YCSZZ.mjs.map +0 -7
  437. package/dist/lib/node-esm/chunk-2GVTWESW.mjs +0 -90
  438. package/dist/lib/node-esm/chunk-2GVTWESW.mjs.map +0 -7
  439. package/dist/lib/node-esm/chunk-55JZVM6K.mjs +0 -16
  440. package/dist/lib/node-esm/chunk-55JZVM6K.mjs.map +0 -7
  441. package/dist/lib/node-esm/chunk-EJLYOSD7.mjs +0 -113
  442. package/dist/lib/node-esm/chunk-EJLYOSD7.mjs.map +0 -7
  443. package/dist/lib/node-esm/chunk-GA27XSEY.mjs +0 -270
  444. package/dist/lib/node-esm/chunk-GA27XSEY.mjs.map +0 -7
  445. package/dist/lib/node-esm/chunk-IBV2DR36.mjs +0 -33
  446. package/dist/lib/node-esm/chunk-IBV2DR36.mjs.map +0 -7
  447. package/dist/lib/node-esm/chunk-N2XLVOFB.mjs +0 -103
  448. package/dist/lib/node-esm/chunk-N2XLVOFB.mjs.map +0 -7
  449. package/dist/lib/node-esm/chunk-O7HXE72S.mjs +0 -256
  450. package/dist/lib/node-esm/chunk-O7HXE72S.mjs.map +0 -7
  451. package/dist/lib/node-esm/chunk-OZ6LCME4.mjs +0 -645
  452. package/dist/lib/node-esm/chunk-OZ6LCME4.mjs.map +0 -7
  453. package/dist/lib/node-esm/chunk-TUGLYZDT.mjs +0 -305
  454. package/dist/lib/node-esm/chunk-TUGLYZDT.mjs.map +0 -7
  455. package/dist/lib/node-esm/chunk-UEGPBCSF.mjs +0 -154
  456. package/dist/lib/node-esm/chunk-UEGPBCSF.mjs.map +0 -7
  457. package/dist/lib/node-esm/compiler-I6A4KE6E.mjs +0 -87
  458. package/dist/lib/node-esm/compiler-I6A4KE6E.mjs.map +0 -7
  459. package/dist/lib/node-esm/intent-resolver-YKLZQR7U.mjs +0 -106
  460. package/dist/lib/node-esm/intent-resolver-YKLZQR7U.mjs.map +0 -7
  461. package/dist/lib/node-esm/react-surface-LVGLBSTE.mjs +0 -129
  462. package/dist/lib/node-esm/react-surface-LVGLBSTE.mjs.map +0 -7
  463. package/dist/lib/node-esm/settings-O4EZPUE3.mjs +0 -27
  464. package/dist/lib/node-esm/settings-O4EZPUE3.mjs.map +0 -7
  465. package/dist/types/src/capabilities/capabilities.d.ts +0 -5
  466. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  467. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  468. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  469. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.d.ts.map +0 -1
  470. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts +0 -248
  471. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts.map +0 -1
  472. package/dist/types/src/components/DeploymentDialog/index.d.ts +0 -4
  473. package/dist/types/src/components/DeploymentDialog/index.d.ts.map +0 -1
  474. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts +0 -12
  475. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts.map +0 -1
  476. package/dist/types/src/components/FrameContainer/frame.d.ts +0 -2
  477. package/dist/types/src/components/FrameContainer/frame.d.ts.map +0 -1
  478. package/dist/types/src/components/FrameContainer/index.d.ts +0 -2
  479. package/dist/types/src/components/FrameContainer/index.d.ts.map +0 -1
  480. package/dist/types/src/components/NotebookContainer.d.ts +0 -10
  481. package/dist/types/src/components/NotebookContainer.d.ts.map +0 -1
  482. package/dist/types/src/components/NotebookContainer.stories.d.ts +0 -251
  483. package/dist/types/src/components/NotebookContainer.stories.d.ts.map +0 -1
  484. package/dist/types/src/components/ScriptContainer.d.ts +0 -12
  485. package/dist/types/src/components/ScriptContainer.d.ts.map +0 -1
  486. package/dist/types/src/components/Settings/ScriptObjectSettings.d.ts.map +0 -1
  487. package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts +0 -6
  488. package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts.map +0 -1
  489. package/dist/types/src/components/Settings/index.d.ts +0 -3
  490. package/dist/types/src/components/Settings/index.d.ts.map +0 -1
  491. package/dist/types/src/components/TestPanel/TestContainer.d.ts.map +0 -1
  492. package/dist/types/src/events.d.ts +0 -4
  493. package/dist/types/src/events.d.ts.map +0 -1
  494. package/dist/types/src/templates/chess.d.ts +0 -3
  495. package/dist/types/src/templates/chess.d.ts.map +0 -1
  496. package/dist/types/src/types/actions.d.ts +0 -54
  497. package/dist/types/src/types/actions.d.ts.map +0 -1
  498. package/src/capabilities/capabilities.ts +0 -12
  499. package/src/capabilities/intent-resolver.ts +0 -86
  500. package/src/components/DeploymentDialog/DeploymentDialog.tsx +0 -106
  501. package/src/components/DeploymentDialog/index.ts +0 -9
  502. package/src/components/FrameContainer/frame.html +0 -25
  503. package/src/components/FrameContainer/frame.tsx +0 -51
  504. package/src/components/ScriptContainer.tsx +0 -69
  505. package/src/components/Settings/ScriptPluginSettings.tsx +0 -61
  506. package/src/components/Settings/index.ts +0 -6
  507. package/src/components/TestPanel/TestContainer.tsx +0 -27
  508. package/src/events.ts +0 -11
  509. package/src/templates/chess.ts +0 -49
  510. package/src/types/actions.ts +0 -53
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../src/capabilities/index.ts", "../../../src/ScriptPlugin.tsx", "../../../src/events.ts", "../../../src/translations.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { lazy } from '@dxos/app-framework';\n\nexport const AppGraphBuilder = lazy(() => import('./app-graph-builder'));\nexport const BlueprintDefinition = lazy(() => import('./blueprint-definition'));\nexport const Compiler = lazy(() => import('./compiler'));\nexport const IntentResolver = lazy(() => import('./intent-resolver'));\nexport const ReactSurface = lazy(() => import('./react-surface'));\nexport const ScriptSettings = lazy(() => import('./settings'));\n\nexport * from './capabilities';\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Capabilities, Events, contributes, createIntent, defineModule, definePlugin } from '@dxos/app-framework';\nimport { Ref } from '@dxos/echo';\nimport { Script } from '@dxos/functions';\nimport { ClientEvents } from '@dxos/plugin-client';\nimport { SpaceCapabilities } from '@dxos/plugin-space';\nimport { defineObjectForm } from '@dxos/plugin-space/types';\n\nimport {\n AppGraphBuilder,\n BlueprintDefinition,\n Compiler,\n IntentResolver,\n ReactSurface,\n ScriptSettings,\n} from './capabilities';\nimport { ScriptEvents } from './events';\nimport { meta } from './meta';\nimport { translations } from './translations';\nimport { Notebook, ScriptAction } from './types';\n\nexport const ScriptPlugin = definePlugin(meta, () => [\n defineModule({\n id: `${meta.id}/module/settings`,\n activatesOn: Events.SetupSettings,\n activate: ScriptSettings,\n }),\n defineModule({\n id: `${meta.id}/module/compiler`,\n activatesOn: ScriptEvents.SetupCompiler,\n activate: Compiler,\n }),\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, translations),\n }),\n defineModule({\n id: `${meta.id}/module/metadata`,\n activatesOn: Events.SetupMetadata,\n activate: () => [\n contributes(Capabilities.Metadata, {\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 },\n }),\n contributes(Capabilities.Metadata, {\n id: Notebook.Notebook.typename,\n metadata: {\n icon: 'ph--notebook--regular',\n iconHue: 'sky',\n },\n }),\n ],\n }),\n defineModule({\n id: `${meta.id}/module/app-graph-builder`,\n activatesOn: Events.SetupAppGraph,\n activate: AppGraphBuilder,\n }),\n defineModule({\n id: `${meta.id}/module/script/object-form`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () =>\n contributes(\n SpaceCapabilities.ObjectForm,\n defineObjectForm({\n objectSchema: Script.Script,\n formSchema: ScriptAction.ScriptProps,\n getIntent: (props, options) => createIntent(ScriptAction.CreateScript, { ...props, space: options.space }),\n }),\n ),\n }),\n defineModule({\n id: `${meta.id}/module/notebook/object-form`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () =>\n contributes(\n SpaceCapabilities.ObjectForm,\n defineObjectForm({\n objectSchema: Notebook.Notebook,\n formSchema: ScriptAction.NotebookProps,\n getIntent: (props, options) => createIntent(ScriptAction.CreateNotebook, { ...props, space: options.space }),\n }),\n ),\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupReactSurface,\n // TODO(wittjosiah): Should occur before the script editor is loaded when surfaces activation is more granular.\n activatesBefore: [ScriptEvents.SetupCompiler],\n activate: ReactSurface,\n }),\n defineModule({\n id: `${meta.id}/module/intent-resolver`,\n activatesOn: Events.SetupIntentResolver,\n activate: IntentResolver,\n }),\n defineModule({\n id: `${meta.id}/module/blueprint`,\n activatesOn: Events.SetupArtifactDefinition,\n activate: BlueprintDefinition,\n }),\n]);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { defineEvent } from '@dxos/app-framework';\n\nimport { meta } from './meta';\n\nexport namespace ScriptEvents {\n export const SetupCompiler = defineEvent(`${meta.id}/event/setup-compiler`);\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 'rename object label': 'Rename script',\n 'delete object label': 'Delete script',\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 },\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": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,SAASA,YAAY;AAEd,IAAMC,kBAAkBC,KAAK,MAAM,OAAO,kCAAA,CAAA;AAC1C,IAAMC,sBAAsBD,KAAK,MAAM,OAAO,qCAAA,CAAA;AAC9C,IAAME,WAAWF,KAAK,MAAM,OAAO,yBAAA,CAAA;AACnC,IAAMG,iBAAiBH,KAAK,MAAM,OAAO,gCAAA,CAAA;AACzC,IAAMI,eAAeJ,KAAK,MAAM,OAAO,8BAAA,CAAA;AACvC,IAAMK,iBAAiBL,KAAK,MAAM,OAAO,yBAAA,CAAA;;;ACPhD,SAASM,cAAcC,QAAQC,aAAaC,cAAcC,cAAcC,oBAAoB;AAC5F,SAASC,WAAW;AACpB,SAASC,UAAAA,eAAc;AACvB,SAASC,oBAAoB;AAC7B,SAASC,yBAAyB;AAClC,SAASC,wBAAwB;;;ACLjC,SAASC,mBAAmB;UAIXC,eAAAA;gBACFC,gBAAgBC,YAAY,GAAGC,KAAKC,EAAE,uBAAuB;AAC5E,GAFiBJ,iBAAAA,eAAAA,CAAAA,EAAAA;;;;ACJjB,SAASK,cAAc;AAMhB,IAAMC,eAAe;EAC1B;IACE,SAAS;MACP,CAACC,OAAOA,OAAOC,QAAQ,GAAG;QACxB,kBAAkB;QAClB,uBAAuB;QACvB,sBAAsB;QACtB,wBAAwB;QACxB,2BAA2B;QAC3B,uBAAuB;QACvB,uBAAuB;MACzB;MACA,CAACC,iBAASA,SAASD,QAAQ,GAAG;QAC5B,kBAAkB;QAClB,uBAAuB;QACvB,sBAAsB;QACtB,wBAAwB;QACxB,2BAA2B;QAC3B,uBAAuB;QACvB,uBAAuB;MACzB;MACA,CAACE,KAAKC,EAAE,GAAG;QACT,eAAe;QACf,kBAAkB;QAClB,qBAAqB;QACrB,2BAA2B;QAC3B,uBAAuB;QACvB,gCAAgC;QAChC,gBAAgB;QAChB,kBAAkB;QAClB,uBAAuB;QACvB,mBAAmB;QACnB,gBAAgB;QAChB,wBAAwB;QACxB,6BAA6B;QAC7B,6BAA6B;QAC7B,cAAc;QACd,oCAAoC;QACpC,sBAAsB;QACtB,0BAA0B;QAC1B,gCAAgC;QAChC,iCAAiC;QACjC,uCAAuC;QACvC,yBAAyB;QACzB,4BAA4B;QAC5B,iBAAiB;QACjB,oBAAoB;QACpB,0BAA0B;QAC1B,gCAAgC;QAChC,gCAAgC;QAChC,sCAAsC;QACtC,0BAA0B;QAC1B,kBAAkB;QAClB,2BAA2B;QAC3B,wCAAwC;QACxC,4CAA4C;QAC5C,wCAAwC;QACxC,2CAA2C;QAC3C,wBAAwB;QACxB,qBAAqB;QACrB,qBAAqB;QAErB,2BAA2B;QAC3B,2CAA2C;QAC3C,uDAAuD;QACvD,yDAAyD;QACzD,+DAA+D;QAC/D,iEAAiE;QACjE,uCAAuC;QAEvC,qCAAqC;QACrC,uCAAuC;QACvC,2CAA2C;QAC3C,6CAA6C;QAC7C,2CAA2C;QAC3C,6CAA6C;QAC7C,2CAA2C;QAC3C,6CAA6C;QAC7C,iDAAiD;QACjD,mDAAmD;QACnD,iDAAiD;QACjD,mDAAmD;QAEnD,6BAA6B;QAC7B,8BAA8B;QAC9B,kCAAkC;QAClC,uCAAuC;QACvC,qCAAqC;QACrC,qCAAqC;QACrC,oCAAoC;QACpC,iCAAiC;QACjC,+BAA+B;QAC/B,8BAA8B;MAChC;IACF;EACF;;;;AFjFK,IAAMC,eAAeC,aAAaC,MAAM,MAAM;EACnDC,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOC;IACpBC,UAAUC;EACZ,CAAA;EACAN,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaK,aAAaC;IAC1BH,UAAUI;EACZ,CAAA;EACAT,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOO;IACpBL,UAAU,MAAMM,YAAYC,aAAaC,cAAcC,YAAAA;EACzD,CAAA;EACAd,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOY;IACpBV,UAAU,MAAM;MACdM,YAAYC,aAAaI,UAAU;QACjCf,IAAIgB,QAAOA,OAAOC;QAClBC,UAAU;UACRC,MAAM;UACNC,SAAS;;UAETC,gBAAgB,OAAOC,WAA0B,MAAMC,IAAIC,MAAMC,QAAQ;YAACH,OAAOI;WAAO;QAC1F;MACF,CAAA;MACAhB,YAAYC,aAAaI,UAAU;QACjCf,IAAI2B,iBAASA,SAASV;QACtBC,UAAU;UACRC,MAAM;UACNC,SAAS;QACX;MACF,CAAA;;EAEJ,CAAA;EACArB,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAO0B;IACpBxB,UAAUyB;EACZ,CAAA;EACA9B,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAa6B,aAAaC;IAC1B3B,UAAU,MACRM,YACEsB,kBAAkBC,YAClBC,iBAAiB;MACfC,cAAcnB,QAAOA;MACrBoB,YAAYC,aAAaC;MACzBC,WAAW,CAACC,OAAOC,YAAYC,aAAaL,aAAaM,cAAc;QAAE,GAAGH;QAAOI,OAAOH,QAAQG;MAAM,CAAA;IAC1G,CAAA,CAAA;EAEN,CAAA;EACA7C,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAa6B,aAAaC;IAC1B3B,UAAU,MACRM,YACEsB,kBAAkBC,YAClBC,iBAAiB;MACfC,cAAcR,iBAASA;MACvBS,YAAYC,aAAaQ;MACzBN,WAAW,CAACC,OAAOC,YAAYC,aAAaL,aAAaS,gBAAgB;QAAE,GAAGN;QAAOI,OAAOH,QAAQG;MAAM,CAAA;IAC5G,CAAA,CAAA;EAEN,CAAA;EACA7C,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAO6C;;IAEpBC,iBAAiB;MAAC1C,aAAaC;;IAC/BH,UAAU6C;EACZ,CAAA;EACAlD,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOgD;IACpB9C,UAAU+C;EACZ,CAAA;EACApD,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOkD;IACpBhD,UAAUiD;EACZ,CAAA;CACD;",
6
- "names": ["lazy", "AppGraphBuilder", "lazy", "BlueprintDefinition", "Compiler", "IntentResolver", "ReactSurface", "ScriptSettings", "Capabilities", "Events", "contributes", "createIntent", "defineModule", "definePlugin", "Ref", "Script", "ClientEvents", "SpaceCapabilities", "defineObjectForm", "defineEvent", "ScriptEvents", "SetupCompiler", "defineEvent", "meta", "id", "Script", "translations", "Script", "typename", "Notebook", "meta", "id", "ScriptPlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "Events", "SetupSettings", "activate", "ScriptSettings", "ScriptEvents", "SetupCompiler", "Compiler", "SetupTranslations", "contributes", "Capabilities", "Translations", "translations", "SetupMetadata", "Metadata", "Script", "typename", "metadata", "icon", "iconHue", "loadReferences", "script", "Ref", "Array", "loadAll", "source", "Notebook", "SetupAppGraph", "AppGraphBuilder", "ClientEvents", "SetupSchema", "SpaceCapabilities", "ObjectForm", "defineObjectForm", "objectSchema", "formSchema", "ScriptAction", "ScriptProps", "getIntent", "props", "options", "createIntent", "CreateScript", "space", "NotebookProps", "CreateNotebook", "SetupReactSurface", "activatesBefore", "ReactSurface", "SetupIntentResolver", "IntentResolver", "SetupArtifactDefinition", "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
+ }