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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (493) hide show
  1. package/README.md +15 -13
  2. package/dist/lib/browser/DeploymentDialog-WUND47NK.mjs +115 -0
  3. package/dist/lib/browser/DeploymentDialog-WUND47NK.mjs.map +7 -0
  4. package/dist/lib/browser/{NotebookContainer-NBAXYESH.mjs → NotebookContainer-TGHMYWWK.mjs} +47 -54
  5. package/dist/lib/browser/NotebookContainer-TGHMYWWK.mjs.map +7 -0
  6. package/dist/lib/browser/ScriptContainer-BOCXMLNN.mjs +82 -0
  7. package/dist/lib/browser/ScriptContainer-BOCXMLNN.mjs.map +7 -0
  8. package/dist/lib/browser/ScriptObjectSettings-QKJFTSLS.mjs +295 -0
  9. package/dist/lib/browser/ScriptObjectSettings-QKJFTSLS.mjs.map +7 -0
  10. package/dist/lib/browser/ScriptPluginSettings-AMWZF7LZ.mjs +47 -0
  11. package/dist/lib/browser/ScriptPluginSettings-AMWZF7LZ.mjs.map +7 -0
  12. package/dist/lib/browser/ScriptProperties-VBOIIRJJ.mjs +26 -0
  13. package/dist/lib/browser/ScriptProperties-VBOIIRJJ.mjs.map +7 -0
  14. package/dist/lib/browser/TestContainer-5VNOC6I3.mjs +50 -0
  15. package/dist/lib/browser/TestContainer-5VNOC6I3.mjs.map +7 -0
  16. package/dist/lib/browser/access-token-created-XR7LB2XV.mjs +37 -0
  17. package/dist/lib/browser/access-token-created-XR7LB2XV.mjs.map +7 -0
  18. package/dist/lib/browser/blueprints/index.mjs +53 -3
  19. package/dist/lib/browser/blueprints/index.mjs.map +4 -4
  20. package/dist/lib/browser/chunk-AE5EX2VP.mjs +78 -0
  21. package/dist/lib/browser/chunk-AE5EX2VP.mjs.map +7 -0
  22. package/dist/lib/browser/{chunk-UX4GHJ5E.mjs → chunk-DL37UOJE.mjs} +29 -29
  23. package/dist/lib/browser/chunk-DL37UOJE.mjs.map +7 -0
  24. package/dist/lib/browser/chunk-TXVJW26E.mjs +50 -0
  25. package/dist/lib/browser/chunk-TXVJW26E.mjs.map +7 -0
  26. package/dist/lib/browser/chunk-ZLF66W2O.mjs +337 -0
  27. package/dist/lib/browser/chunk-ZLF66W2O.mjs.map +7 -0
  28. package/dist/lib/browser/create-V3MRNIUS.mjs +45 -0
  29. package/dist/lib/browser/create-V3MRNIUS.mjs.map +7 -0
  30. package/dist/lib/browser/create-script-IEY3HJ33.mjs +46 -0
  31. package/dist/lib/browser/create-script-IEY3HJ33.mjs.map +7 -0
  32. package/dist/lib/browser/delete-7QKDZ2QS.mjs +21 -0
  33. package/dist/lib/browser/delete-7QKDZ2QS.mjs.map +7 -0
  34. package/dist/lib/browser/deploy-SM2V6SNL.mjs +65 -0
  35. package/dist/lib/browser/deploy-SM2V6SNL.mjs.map +7 -0
  36. package/dist/lib/browser/index.mjs +1153 -176
  37. package/dist/lib/browser/index.mjs.map +4 -4
  38. package/dist/lib/browser/inspect-invocations-L4GAXXT3.mjs +55 -0
  39. package/dist/lib/browser/inspect-invocations-L4GAXXT3.mjs.map +7 -0
  40. package/dist/lib/browser/install-function-YDAA5EB6.mjs +54 -0
  41. package/dist/lib/browser/install-function-YDAA5EB6.mjs.map +7 -0
  42. package/dist/lib/browser/invoke-OKJMYOZB.mjs +36 -0
  43. package/dist/lib/browser/invoke-OKJMYOZB.mjs.map +7 -0
  44. package/dist/lib/browser/meta.json +1 -1
  45. package/dist/lib/browser/operations/index.mjs +14 -0
  46. package/dist/lib/browser/operations/index.mjs.map +7 -0
  47. package/dist/lib/browser/query-deployed-functions-L3SIQHB5.mjs +33 -0
  48. package/dist/lib/browser/query-deployed-functions-L3SIQHB5.mjs.map +7 -0
  49. package/dist/lib/browser/read-YL7TNJC7.mjs +26 -0
  50. package/dist/lib/browser/read-YL7TNJC7.mjs.map +7 -0
  51. package/dist/lib/browser/templates/index.mjs +1 -1
  52. package/dist/lib/browser/types/index.mjs +3 -7
  53. package/dist/lib/browser/update-4RC6QH62.mjs +63 -0
  54. package/dist/lib/browser/update-4RC6QH62.mjs.map +7 -0
  55. package/dist/lib/node-esm/DeploymentDialog-XMR2CKP6.mjs +116 -0
  56. package/dist/lib/node-esm/DeploymentDialog-XMR2CKP6.mjs.map +7 -0
  57. package/dist/lib/node-esm/{NotebookContainer-IUAYVJSD.mjs → NotebookContainer-YUVZF6IS.mjs} +47 -54
  58. package/dist/lib/node-esm/NotebookContainer-YUVZF6IS.mjs.map +7 -0
  59. package/dist/lib/node-esm/ScriptContainer-G4D2YSFE.mjs +83 -0
  60. package/dist/lib/node-esm/ScriptContainer-G4D2YSFE.mjs.map +7 -0
  61. package/dist/lib/node-esm/ScriptObjectSettings-XIOE66BL.mjs +296 -0
  62. package/dist/lib/node-esm/ScriptObjectSettings-XIOE66BL.mjs.map +7 -0
  63. package/dist/lib/node-esm/ScriptPluginSettings-SDWEDLUU.mjs +48 -0
  64. package/dist/lib/node-esm/ScriptPluginSettings-SDWEDLUU.mjs.map +7 -0
  65. package/dist/lib/node-esm/ScriptProperties-5H2Z4XRF.mjs +27 -0
  66. package/dist/lib/node-esm/ScriptProperties-5H2Z4XRF.mjs.map +7 -0
  67. package/dist/lib/node-esm/TestContainer-SEFC4F2O.mjs +51 -0
  68. package/dist/lib/node-esm/TestContainer-SEFC4F2O.mjs.map +7 -0
  69. package/dist/lib/node-esm/access-token-created-AZEUHFPA.mjs +38 -0
  70. package/dist/lib/node-esm/access-token-created-AZEUHFPA.mjs.map +7 -0
  71. package/dist/lib/node-esm/blueprints/index.mjs +53 -3
  72. package/dist/lib/node-esm/blueprints/index.mjs.map +4 -4
  73. package/dist/lib/node-esm/chunk-ELIPYPNQ.mjs +79 -0
  74. package/dist/lib/node-esm/chunk-ELIPYPNQ.mjs.map +7 -0
  75. package/dist/lib/node-esm/chunk-QZMVI6AH.mjs +339 -0
  76. package/dist/lib/node-esm/chunk-QZMVI6AH.mjs.map +7 -0
  77. package/dist/lib/node-esm/chunk-U2LUPXPK.mjs +51 -0
  78. package/dist/lib/node-esm/chunk-U2LUPXPK.mjs.map +7 -0
  79. package/dist/lib/node-esm/{chunk-4F5FJZ36.mjs → chunk-ZLTGO4XB.mjs} +29 -29
  80. package/dist/lib/node-esm/chunk-ZLTGO4XB.mjs.map +7 -0
  81. package/dist/lib/node-esm/create-XQAER3WF.mjs +46 -0
  82. package/dist/lib/node-esm/create-XQAER3WF.mjs.map +7 -0
  83. package/dist/lib/node-esm/create-script-2CGVQ3AU.mjs +47 -0
  84. package/dist/lib/node-esm/create-script-2CGVQ3AU.mjs.map +7 -0
  85. package/dist/lib/node-esm/delete-JA2S3K6Z.mjs +22 -0
  86. package/dist/lib/node-esm/delete-JA2S3K6Z.mjs.map +7 -0
  87. package/dist/lib/node-esm/deploy-FILYYRWE.mjs +66 -0
  88. package/dist/lib/node-esm/deploy-FILYYRWE.mjs.map +7 -0
  89. package/dist/lib/node-esm/index.mjs +1153 -176
  90. package/dist/lib/node-esm/index.mjs.map +4 -4
  91. package/dist/lib/node-esm/inspect-invocations-PLSHQCFM.mjs +56 -0
  92. package/dist/lib/node-esm/inspect-invocations-PLSHQCFM.mjs.map +7 -0
  93. package/dist/lib/node-esm/install-function-4TVXEWYF.mjs +55 -0
  94. package/dist/lib/node-esm/install-function-4TVXEWYF.mjs.map +7 -0
  95. package/dist/lib/node-esm/invoke-J4Z7CS44.mjs +37 -0
  96. package/dist/lib/node-esm/invoke-J4Z7CS44.mjs.map +7 -0
  97. package/dist/lib/node-esm/meta.json +1 -1
  98. package/dist/lib/node-esm/operations/index.mjs +15 -0
  99. package/dist/lib/node-esm/operations/index.mjs.map +7 -0
  100. package/dist/lib/node-esm/query-deployed-functions-JBYIJGLW.mjs +34 -0
  101. package/dist/lib/node-esm/query-deployed-functions-JBYIJGLW.mjs.map +7 -0
  102. package/dist/lib/node-esm/read-HDE5XOGZ.mjs +27 -0
  103. package/dist/lib/node-esm/read-HDE5XOGZ.mjs.map +7 -0
  104. package/dist/lib/node-esm/templates/index.mjs +1 -1
  105. package/dist/lib/node-esm/types/index.mjs +3 -7
  106. package/dist/lib/node-esm/update-6O53SY6U.mjs +64 -0
  107. package/dist/lib/node-esm/update-6O53SY6U.mjs.map +7 -0
  108. package/dist/types/src/ScriptPlugin.d.ts.map +1 -1
  109. package/dist/types/src/blueprints/functions/create.d.ts +11 -0
  110. package/dist/types/src/blueprints/functions/create.d.ts.map +1 -0
  111. package/dist/types/src/blueprints/functions/definitions.d.ts +142 -0
  112. package/dist/types/src/blueprints/functions/definitions.d.ts.map +1 -0
  113. package/dist/types/src/blueprints/functions/delete.d.ts +18 -0
  114. package/dist/types/src/blueprints/functions/delete.d.ts.map +1 -0
  115. package/dist/types/src/blueprints/functions/deploy.d.ts +22 -0
  116. package/dist/types/src/blueprints/functions/deploy.d.ts.map +1 -0
  117. package/dist/types/src/blueprints/functions/index.d.ts +4 -0
  118. package/dist/types/src/blueprints/functions/index.d.ts.map +1 -0
  119. package/dist/types/src/blueprints/functions/inspect-invocations.d.ts +30 -0
  120. package/dist/types/src/blueprints/functions/inspect-invocations.d.ts.map +1 -0
  121. package/dist/types/src/blueprints/functions/install-function.d.ts +11 -0
  122. package/dist/types/src/blueprints/functions/install-function.d.ts.map +1 -0
  123. package/dist/types/src/blueprints/functions/invoke.d.ts +22 -0
  124. package/dist/types/src/blueprints/functions/invoke.d.ts.map +1 -0
  125. package/dist/types/src/blueprints/functions/query-deployed-functions.d.ts +13 -0
  126. package/dist/types/src/blueprints/functions/query-deployed-functions.d.ts.map +1 -0
  127. package/dist/types/src/blueprints/functions/read.d.ts +22 -0
  128. package/dist/types/src/blueprints/functions/read.d.ts.map +1 -0
  129. package/dist/types/src/blueprints/functions/update.d.ts +27 -0
  130. package/dist/types/src/blueprints/functions/update.d.ts.map +1 -0
  131. package/dist/types/src/blueprints/index.d.ts +1 -1
  132. package/dist/types/src/blueprints/index.d.ts.map +1 -1
  133. package/dist/types/src/blueprints/script-blueprint.d.ts +3 -21
  134. package/dist/types/src/blueprints/script-blueprint.d.ts.map +1 -1
  135. package/dist/types/src/capabilities/app-graph-builder.d.ts +6 -0
  136. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -0
  137. package/dist/types/src/capabilities/{artifact-definition/artifact-definition.d.ts → artifact-definition.d.ts} +1 -1
  138. package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -0
  139. package/dist/types/src/capabilities/blueprint-definition.d.ts +6 -0
  140. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -0
  141. package/dist/types/src/capabilities/compiler.d.ts +6 -0
  142. package/dist/types/src/capabilities/compiler.d.ts.map +1 -0
  143. package/dist/types/src/capabilities/index.d.ts +12 -6
  144. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  145. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  146. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  147. package/dist/types/src/capabilities/react-surface.d.ts +5 -0
  148. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
  149. package/dist/types/src/capabilities/settings.d.ts +10 -0
  150. package/dist/types/src/capabilities/settings.d.ts.map +1 -0
  151. package/dist/types/src/components/{FrameContainer/FrameContainer.d.ts → FramePanel/FramePanel.d.ts} +3 -3
  152. package/dist/types/src/components/FramePanel/FramePanel.d.ts.map +1 -0
  153. package/dist/types/src/components/FramePanel/index.d.ts +2 -0
  154. package/dist/types/src/components/FramePanel/index.d.ts.map +1 -0
  155. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts +1 -1
  156. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts.map +1 -1
  157. package/dist/types/src/components/NotebookStack/NotebookMenu.d.ts +1 -1
  158. package/dist/types/src/components/NotebookStack/NotebookMenu.d.ts.map +1 -1
  159. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts +8 -2
  160. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts.map +1 -1
  161. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts +240 -228
  162. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts.map +1 -1
  163. package/dist/types/src/components/QueryEditor/QueryEditor.stories.d.ts.map +1 -1
  164. package/dist/types/src/components/ScriptPluginSettings/ScriptPluginSettings.d.ts +8 -0
  165. package/dist/types/src/components/ScriptPluginSettings/ScriptPluginSettings.d.ts.map +1 -0
  166. package/dist/types/src/components/ScriptPluginSettings/ScriptPluginSettings.stories.d.ts +262 -0
  167. package/dist/types/src/components/ScriptPluginSettings/ScriptPluginSettings.stories.d.ts.map +1 -0
  168. package/dist/types/src/components/ScriptPluginSettings/index.d.ts +3 -0
  169. package/dist/types/src/components/ScriptPluginSettings/index.d.ts.map +1 -0
  170. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts +10 -4
  171. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts.map +1 -1
  172. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts +240 -228
  173. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts.map +1 -1
  174. package/dist/types/src/components/TestPanel/TestPanel.d.ts +8 -2
  175. package/dist/types/src/components/TestPanel/TestPanel.d.ts.map +1 -1
  176. package/dist/types/src/components/TestPanel/index.d.ts +0 -1
  177. package/dist/types/src/components/TestPanel/index.d.ts.map +1 -1
  178. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts +7 -1
  179. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts.map +1 -1
  180. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts +7 -1
  181. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts.map +1 -1
  182. package/dist/types/src/components/index.d.ts +6 -5
  183. package/dist/types/src/components/index.d.ts.map +1 -1
  184. package/dist/types/src/constants.d.ts +2 -0
  185. package/dist/types/src/constants.d.ts.map +1 -0
  186. package/dist/types/src/{components → containers}/DeploymentDialog/DeploymentDialog.d.ts +0 -2
  187. package/dist/types/src/containers/DeploymentDialog/DeploymentDialog.d.ts.map +1 -0
  188. package/dist/types/src/containers/DeploymentDialog/DeploymentDialog.stories.d.ts +261 -0
  189. package/dist/types/src/{components → containers}/DeploymentDialog/DeploymentDialog.stories.d.ts.map +1 -1
  190. package/dist/types/src/containers/DeploymentDialog/index.d.ts +3 -0
  191. package/dist/types/src/containers/DeploymentDialog/index.d.ts.map +1 -0
  192. package/dist/types/src/containers/NotebookContainer/NotebookContainer.d.ts +7 -0
  193. package/dist/types/src/containers/NotebookContainer/NotebookContainer.d.ts.map +1 -0
  194. package/dist/types/src/containers/NotebookContainer/NotebookContainer.stories.d.ts.map +1 -0
  195. package/dist/types/src/containers/NotebookContainer/index.d.ts +3 -0
  196. package/dist/types/src/containers/NotebookContainer/index.d.ts.map +1 -0
  197. package/dist/types/src/containers/ScriptContainer/ScriptContainer.d.ts +10 -0
  198. package/dist/types/src/containers/ScriptContainer/ScriptContainer.d.ts.map +1 -0
  199. package/dist/types/src/containers/ScriptContainer/index.d.ts +3 -0
  200. package/dist/types/src/containers/ScriptContainer/index.d.ts.map +1 -0
  201. package/dist/types/src/{components/Settings → containers/ScriptObjectSettings}/ScriptObjectSettings.d.ts +0 -1
  202. package/dist/types/src/containers/ScriptObjectSettings/ScriptObjectSettings.d.ts.map +1 -0
  203. package/dist/types/src/containers/ScriptObjectSettings/index.d.ts +3 -0
  204. package/dist/types/src/containers/ScriptObjectSettings/index.d.ts.map +1 -0
  205. package/dist/types/src/containers/ScriptProperties/ScriptProperties.d.ts +7 -0
  206. package/dist/types/src/containers/ScriptProperties/ScriptProperties.d.ts.map +1 -0
  207. package/dist/types/src/containers/ScriptProperties/index.d.ts +3 -0
  208. package/dist/types/src/containers/ScriptProperties/index.d.ts.map +1 -0
  209. package/dist/types/src/containers/TestContainer/TestContainer.d.ts.map +1 -0
  210. package/dist/types/src/containers/TestContainer/index.d.ts +3 -0
  211. package/dist/types/src/containers/TestContainer/index.d.ts.map +1 -0
  212. package/dist/types/src/containers/index.d.ts +8 -0
  213. package/dist/types/src/containers/index.d.ts.map +1 -0
  214. package/dist/types/src/hooks/deploy.d.ts +19 -5
  215. package/dist/types/src/hooks/deploy.d.ts.map +1 -1
  216. package/dist/types/src/hooks/format.d.ts +1 -0
  217. package/dist/types/src/hooks/format.d.ts.map +1 -1
  218. package/dist/types/src/hooks/template.d.ts +1 -0
  219. package/dist/types/src/hooks/template.d.ts.map +1 -1
  220. package/dist/types/src/hooks/useToolbarState.d.ts.map +1 -1
  221. package/dist/types/src/index.d.ts +1 -0
  222. package/dist/types/src/index.d.ts.map +1 -1
  223. package/dist/types/src/notebook/compute-graph.d.ts +1 -1
  224. package/dist/types/src/notebook/compute-graph.d.ts.map +1 -1
  225. package/dist/types/src/operations/access-token-created.d.ts +5 -0
  226. package/dist/types/src/operations/access-token-created.d.ts.map +1 -0
  227. package/dist/types/src/operations/create-script.d.ts +5 -0
  228. package/dist/types/src/operations/create-script.d.ts.map +1 -0
  229. package/dist/types/src/operations/definitions.d.ts +29 -0
  230. package/dist/types/src/operations/definitions.d.ts.map +1 -0
  231. package/dist/types/src/operations/index.d.ts +4 -0
  232. package/dist/types/src/operations/index.d.ts.map +1 -0
  233. package/dist/types/src/templates/anthropic.d.ts +4 -5
  234. package/dist/types/src/templates/anthropic.d.ts.map +1 -1
  235. package/dist/types/src/templates/chess-bot.d.ts +4 -2
  236. package/dist/types/src/templates/chess-bot.d.ts.map +1 -1
  237. package/dist/types/src/templates/commentary.d.ts +5 -2
  238. package/dist/types/src/templates/commentary.d.ts.map +1 -1
  239. package/dist/types/src/templates/forex-effect.d.ts +3 -2
  240. package/dist/types/src/templates/forex-effect.d.ts.map +1 -1
  241. package/dist/types/src/templates/forex.d.ts +3 -2
  242. package/dist/types/src/templates/forex.d.ts.map +1 -1
  243. package/dist/types/src/templates/index.d.ts +18 -18
  244. package/dist/types/src/templates/ping.d.ts +2 -1
  245. package/dist/types/src/templates/ping.d.ts.map +1 -1
  246. package/dist/types/src/testing/data.d.ts +1 -1
  247. package/dist/types/src/testing/data.d.ts.map +1 -1
  248. package/dist/types/src/translations.d.ts +91 -86
  249. package/dist/types/src/translations.d.ts.map +1 -1
  250. package/dist/types/src/types/Notebook.d.ts +29 -13
  251. package/dist/types/src/types/Notebook.d.ts.map +1 -1
  252. package/dist/types/src/types/Settings.d.ts +6 -0
  253. package/dist/types/src/types/Settings.d.ts.map +1 -0
  254. package/dist/types/src/types/capabilities.d.ts.map +1 -1
  255. package/dist/types/src/types/index.d.ts +0 -1
  256. package/dist/types/src/types/index.d.ts.map +1 -1
  257. package/dist/types/src/types/types.d.ts +1 -5
  258. package/dist/types/src/types/types.d.ts.map +1 -1
  259. package/dist/types/src/util/deploy.d.ts +3 -2
  260. package/dist/types/src/util/deploy.d.ts.map +1 -1
  261. package/dist/types/src/util/functions.d.ts +3 -2
  262. package/dist/types/src/util/functions.d.ts.map +1 -1
  263. package/dist/types/tsconfig.tsbuildinfo +1 -1
  264. package/package.json +107 -85
  265. package/src/ScriptPlugin.tsx +49 -32
  266. package/src/blueprints/functions/create.ts +48 -0
  267. package/src/blueprints/functions/definitions.ts +324 -0
  268. package/src/blueprints/functions/delete.ts +23 -0
  269. package/src/blueprints/functions/deploy.ts +70 -0
  270. package/src/blueprints/functions/index.ts +19 -0
  271. package/src/blueprints/functions/inspect-invocations.ts +55 -0
  272. package/src/blueprints/functions/install-function.ts +56 -0
  273. package/src/blueprints/functions/invoke.ts +35 -0
  274. package/src/blueprints/functions/query-deployed-functions.ts +31 -0
  275. package/src/blueprints/functions/read.ts +30 -0
  276. package/src/blueprints/functions/update.ts +69 -0
  277. package/src/blueprints/index.ts +1 -1
  278. package/src/blueprints/script-blueprint.ts +40 -8
  279. package/src/capabilities/app-graph-builder.ts +47 -0
  280. package/src/capabilities/{artifact-definition/artifact-definition.ts → artifact-definition.ts} +1 -1
  281. package/src/capabilities/blueprint-definition.ts +17 -0
  282. package/src/capabilities/{compiler/compiler.ts → compiler.ts} +2 -2
  283. package/src/capabilities/index.ts +12 -6
  284. package/src/capabilities/operation-handler.ts +20 -0
  285. package/src/capabilities/react-surface.tsx +152 -0
  286. package/src/capabilities/{settings/settings.ts → settings.ts} +7 -6
  287. package/src/components/{FrameContainer/FrameContainer.tsx → FramePanel/FramePanel.tsx} +4 -5
  288. package/src/components/{FrameContainer → FramePanel}/index.ts +1 -1
  289. package/src/components/NotebookStack/NotebookCell.tsx +15 -17
  290. package/src/components/NotebookStack/NotebookMenu.tsx +7 -7
  291. package/src/components/NotebookStack/NotebookStack.stories.tsx +6 -8
  292. package/src/components/NotebookStack/NotebookStack.tsx +26 -15
  293. package/src/components/QueryEditor/QueryEditor.stories.tsx +17 -21
  294. package/src/components/ScriptPluginSettings/ScriptPluginSettings.stories.tsx +32 -0
  295. package/src/components/ScriptPluginSettings/ScriptPluginSettings.tsx +64 -0
  296. package/src/components/ScriptPluginSettings/index.ts +7 -0
  297. package/src/components/ScriptToolbar/ScriptToolbar.stories.tsx +6 -7
  298. package/src/components/ScriptToolbar/ScriptToolbar.tsx +23 -25
  299. package/src/components/TestPanel/TestPanel.tsx +107 -187
  300. package/src/components/TestPanel/index.ts +0 -1
  301. package/src/components/TypescriptEditor/TypescriptEditor.stories.tsx +16 -14
  302. package/src/components/TypescriptEditor/TypescriptEditor.tsx +24 -17
  303. package/src/components/index.ts +7 -8
  304. package/src/constants.ts +7 -0
  305. package/src/{components → containers}/DeploymentDialog/DeploymentDialog.stories.tsx +7 -6
  306. package/src/{components → containers}/DeploymentDialog/DeploymentDialog.tsx +32 -37
  307. package/src/containers/DeploymentDialog/index.ts +7 -0
  308. package/src/{components → containers/NotebookContainer}/NotebookContainer.stories.tsx +16 -19
  309. package/src/{components → containers/NotebookContainer}/NotebookContainer.tsx +54 -57
  310. package/src/containers/NotebookContainer/index.ts +7 -0
  311. package/src/{components → containers/ScriptContainer}/ScriptContainer.tsx +27 -26
  312. package/src/containers/ScriptContainer/index.ts +7 -0
  313. package/src/{components/Settings → containers/ScriptObjectSettings}/ScriptObjectSettings.tsx +51 -65
  314. package/src/containers/ScriptObjectSettings/index.ts +7 -0
  315. package/src/containers/ScriptProperties/ScriptProperties.tsx +33 -0
  316. package/src/containers/ScriptProperties/index.ts +7 -0
  317. package/src/containers/TestContainer/TestContainer.tsx +45 -0
  318. package/src/containers/TestContainer/index.ts +7 -0
  319. package/src/containers/index.ts +12 -0
  320. package/src/e2e/ai.test.ts +6 -5
  321. package/src/e2e/deploy.test.ts +4 -3
  322. package/src/hooks/deploy.ts +14 -13
  323. package/src/hooks/format.ts +5 -4
  324. package/src/hooks/template.ts +7 -7
  325. package/src/hooks/useCompiler.ts +3 -3
  326. package/src/hooks/useCreateAndDeployScriptTemplates.ts +3 -3
  327. package/src/hooks/useToolbarState.ts +7 -6
  328. package/src/index.ts +1 -0
  329. package/src/meta.ts +2 -2
  330. package/src/notebook/compute-graph.test.ts +7 -7
  331. package/src/notebook/compute-graph.ts +1 -1
  332. package/src/operations/access-token-created.ts +36 -0
  333. package/src/operations/create-script.ts +47 -0
  334. package/src/operations/definitions.ts +40 -0
  335. package/src/operations/index.ts +12 -0
  336. package/src/templates/anthropic.ts +19 -12
  337. package/src/templates/chat.ts +1 -1
  338. package/src/templates/chess-bot.ts +37 -34
  339. package/src/templates/commentary.ts +173 -161
  340. package/src/templates/data-generator.ts +1 -1
  341. package/src/templates/discord.ts +3 -3
  342. package/src/templates/forex-effect.ts +30 -19
  343. package/src/templates/forex.ts +24 -15
  344. package/src/templates/gmail.ts +4 -4
  345. package/src/templates/index.ts +18 -18
  346. package/src/templates/ping.ts +16 -8
  347. package/src/testing/data.ts +1 -1
  348. package/src/translations.ts +92 -86
  349. package/src/types/Notebook.ts +9 -5
  350. package/src/types/Settings.ts +17 -0
  351. package/src/types/capabilities.ts +4 -4
  352. package/src/types/events.ts +2 -2
  353. package/src/types/index.ts +0 -1
  354. package/src/types/types.ts +1 -11
  355. package/src/util/deploy.ts +13 -11
  356. package/src/util/functions.ts +9 -8
  357. package/dist/lib/browser/DeploymentDialog-OSL6RMPA.mjs +0 -14
  358. package/dist/lib/browser/DeploymentDialog-OSL6RMPA.mjs.map +0 -7
  359. package/dist/lib/browser/NotebookContainer-NBAXYESH.mjs.map +0 -7
  360. package/dist/lib/browser/ScriptContainer-WD33CJMI.mjs +0 -149
  361. package/dist/lib/browser/ScriptContainer-WD33CJMI.mjs.map +0 -7
  362. package/dist/lib/browser/app-graph-builder-7VO7AUI6.mjs +0 -68
  363. package/dist/lib/browser/app-graph-builder-7VO7AUI6.mjs.map +0 -7
  364. package/dist/lib/browser/blueprint-definition-OSOUYI7A.mjs +0 -17
  365. package/dist/lib/browser/blueprint-definition-OSOUYI7A.mjs.map +0 -7
  366. package/dist/lib/browser/chunk-BTWHM6FH.mjs +0 -270
  367. package/dist/lib/browser/chunk-BTWHM6FH.mjs.map +0 -7
  368. package/dist/lib/browser/chunk-C53UJGSU.mjs +0 -557
  369. package/dist/lib/browser/chunk-C53UJGSU.mjs.map +0 -7
  370. package/dist/lib/browser/chunk-F3QKSKSF.mjs +0 -35
  371. package/dist/lib/browser/chunk-F3QKSKSF.mjs.map +0 -7
  372. package/dist/lib/browser/chunk-I7CSE6T3.mjs +0 -110
  373. package/dist/lib/browser/chunk-I7CSE6T3.mjs.map +0 -7
  374. package/dist/lib/browser/chunk-TWX2NMZN.mjs +0 -137
  375. package/dist/lib/browser/chunk-TWX2NMZN.mjs.map +0 -7
  376. package/dist/lib/browser/chunk-UUR4JNNB.mjs +0 -113
  377. package/dist/lib/browser/chunk-UUR4JNNB.mjs.map +0 -7
  378. package/dist/lib/browser/chunk-UX4GHJ5E.mjs.map +0 -7
  379. package/dist/lib/browser/chunk-WYR4QHPE.mjs +0 -31
  380. package/dist/lib/browser/chunk-WYR4QHPE.mjs.map +0 -7
  381. package/dist/lib/browser/chunk-XCN4D3Z5.mjs +0 -606
  382. package/dist/lib/browser/chunk-XCN4D3Z5.mjs.map +0 -7
  383. package/dist/lib/browser/compiler-76F3QAXC.mjs +0 -161
  384. package/dist/lib/browser/compiler-76F3QAXC.mjs.map +0 -7
  385. package/dist/lib/browser/operation-resolver-HUILPPKT.mjs +0 -82
  386. package/dist/lib/browser/operation-resolver-HUILPPKT.mjs.map +0 -7
  387. package/dist/lib/browser/react-surface-O6GKHB2J.mjs +0 -139
  388. package/dist/lib/browser/react-surface-O6GKHB2J.mjs.map +0 -7
  389. package/dist/lib/browser/settings-3ENI25PI.mjs +0 -35
  390. package/dist/lib/browser/settings-3ENI25PI.mjs.map +0 -7
  391. package/dist/lib/node-esm/DeploymentDialog-OGBJPVIX.mjs +0 -15
  392. package/dist/lib/node-esm/DeploymentDialog-OGBJPVIX.mjs.map +0 -7
  393. package/dist/lib/node-esm/NotebookContainer-IUAYVJSD.mjs.map +0 -7
  394. package/dist/lib/node-esm/ScriptContainer-K7JCEU5Z.mjs +0 -150
  395. package/dist/lib/node-esm/ScriptContainer-K7JCEU5Z.mjs.map +0 -7
  396. package/dist/lib/node-esm/app-graph-builder-NVE3EVBG.mjs +0 -69
  397. package/dist/lib/node-esm/app-graph-builder-NVE3EVBG.mjs.map +0 -7
  398. package/dist/lib/node-esm/blueprint-definition-NC7NNJGI.mjs +0 -18
  399. package/dist/lib/node-esm/blueprint-definition-NC7NNJGI.mjs.map +0 -7
  400. package/dist/lib/node-esm/chunk-4F5FJZ36.mjs.map +0 -7
  401. package/dist/lib/node-esm/chunk-4QNZMXW6.mjs +0 -607
  402. package/dist/lib/node-esm/chunk-4QNZMXW6.mjs.map +0 -7
  403. package/dist/lib/node-esm/chunk-5HSJPAK7.mjs +0 -33
  404. package/dist/lib/node-esm/chunk-5HSJPAK7.mjs.map +0 -7
  405. package/dist/lib/node-esm/chunk-BX5PP6AW.mjs +0 -558
  406. package/dist/lib/node-esm/chunk-BX5PP6AW.mjs.map +0 -7
  407. package/dist/lib/node-esm/chunk-G3J76DWP.mjs +0 -114
  408. package/dist/lib/node-esm/chunk-G3J76DWP.mjs.map +0 -7
  409. package/dist/lib/node-esm/chunk-SLU3KRV3.mjs +0 -112
  410. package/dist/lib/node-esm/chunk-SLU3KRV3.mjs.map +0 -7
  411. package/dist/lib/node-esm/chunk-VQPIA4VF.mjs +0 -138
  412. package/dist/lib/node-esm/chunk-VQPIA4VF.mjs.map +0 -7
  413. package/dist/lib/node-esm/chunk-VWOLKNMO.mjs +0 -271
  414. package/dist/lib/node-esm/chunk-VWOLKNMO.mjs.map +0 -7
  415. package/dist/lib/node-esm/chunk-Y3G5NCTP.mjs +0 -36
  416. package/dist/lib/node-esm/chunk-Y3G5NCTP.mjs.map +0 -7
  417. package/dist/lib/node-esm/compiler-FNZH6TFN.mjs +0 -162
  418. package/dist/lib/node-esm/compiler-FNZH6TFN.mjs.map +0 -7
  419. package/dist/lib/node-esm/operation-resolver-JTCIY6HU.mjs +0 -83
  420. package/dist/lib/node-esm/operation-resolver-JTCIY6HU.mjs.map +0 -7
  421. package/dist/lib/node-esm/react-surface-RLANMVMB.mjs +0 -140
  422. package/dist/lib/node-esm/react-surface-RLANMVMB.mjs.map +0 -7
  423. package/dist/lib/node-esm/settings-7AYC5VXN.mjs +0 -36
  424. package/dist/lib/node-esm/settings-7AYC5VXN.mjs.map +0 -7
  425. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +0 -6
  426. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +0 -1
  427. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +0 -3
  428. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +0 -1
  429. package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts.map +0 -1
  430. package/dist/types/src/capabilities/artifact-definition/index.d.ts +0 -3
  431. package/dist/types/src/capabilities/artifact-definition/index.d.ts.map +0 -1
  432. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +0 -9
  433. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +0 -1
  434. package/dist/types/src/capabilities/blueprint-definition/index.d.ts +0 -3
  435. package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +0 -1
  436. package/dist/types/src/capabilities/compiler/compiler.d.ts +0 -6
  437. package/dist/types/src/capabilities/compiler/compiler.d.ts.map +0 -1
  438. package/dist/types/src/capabilities/compiler/index.d.ts +0 -3
  439. package/dist/types/src/capabilities/compiler/index.d.ts.map +0 -1
  440. package/dist/types/src/capabilities/operation-resolver/index.d.ts +0 -3
  441. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +0 -1
  442. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +0 -5
  443. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +0 -1
  444. package/dist/types/src/capabilities/react-surface/index.d.ts +0 -3
  445. package/dist/types/src/capabilities/react-surface/index.d.ts.map +0 -1
  446. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +0 -5
  447. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +0 -1
  448. package/dist/types/src/capabilities/settings/index.d.ts +0 -7
  449. package/dist/types/src/capabilities/settings/index.d.ts.map +0 -1
  450. package/dist/types/src/capabilities/settings/settings.d.ts +0 -9
  451. package/dist/types/src/capabilities/settings/settings.d.ts.map +0 -1
  452. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.d.ts.map +0 -1
  453. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts +0 -249
  454. package/dist/types/src/components/DeploymentDialog/index.d.ts +0 -4
  455. package/dist/types/src/components/DeploymentDialog/index.d.ts.map +0 -1
  456. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts.map +0 -1
  457. package/dist/types/src/components/FrameContainer/frame.d.ts +0 -2
  458. package/dist/types/src/components/FrameContainer/frame.d.ts.map +0 -1
  459. package/dist/types/src/components/FrameContainer/index.d.ts +0 -2
  460. package/dist/types/src/components/FrameContainer/index.d.ts.map +0 -1
  461. package/dist/types/src/components/NotebookContainer.d.ts +0 -8
  462. package/dist/types/src/components/NotebookContainer.d.ts.map +0 -1
  463. package/dist/types/src/components/NotebookContainer.stories.d.ts.map +0 -1
  464. package/dist/types/src/components/ScriptContainer.d.ts +0 -11
  465. package/dist/types/src/components/ScriptContainer.d.ts.map +0 -1
  466. package/dist/types/src/components/Settings/ScriptObjectSettings.d.ts.map +0 -1
  467. package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts +0 -8
  468. package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts.map +0 -1
  469. package/dist/types/src/components/Settings/index.d.ts +0 -3
  470. package/dist/types/src/components/Settings/index.d.ts.map +0 -1
  471. package/dist/types/src/components/TestPanel/TestContainer.d.ts.map +0 -1
  472. package/dist/types/src/types/actions.d.ts +0 -40
  473. package/dist/types/src/types/actions.d.ts.map +0 -1
  474. package/src/capabilities/app-graph-builder/app-graph-builder.ts +0 -55
  475. package/src/capabilities/app-graph-builder/index.ts +0 -7
  476. package/src/capabilities/artifact-definition/index.ts +0 -7
  477. package/src/capabilities/blueprint-definition/blueprint-definition.ts +0 -23
  478. package/src/capabilities/blueprint-definition/index.ts +0 -7
  479. package/src/capabilities/compiler/index.ts +0 -7
  480. package/src/capabilities/operation-resolver/index.ts +0 -7
  481. package/src/capabilities/operation-resolver/operation-resolver.ts +0 -74
  482. package/src/capabilities/react-surface/index.ts +0 -7
  483. package/src/capabilities/react-surface/react-surface.tsx +0 -118
  484. package/src/capabilities/settings/index.ts +0 -7
  485. package/src/components/DeploymentDialog/index.ts +0 -9
  486. package/src/components/FrameContainer/frame.html +0 -25
  487. package/src/components/FrameContainer/frame.tsx +0 -51
  488. package/src/components/Settings/ScriptPluginSettings.tsx +0 -66
  489. package/src/components/Settings/index.ts +0 -6
  490. package/src/components/TestPanel/TestContainer.tsx +0 -27
  491. package/src/types/actions.ts +0 -45
  492. /package/dist/types/src/{components → containers/NotebookContainer}/NotebookContainer.stories.d.ts +0 -0
  493. /package/dist/types/src/{components/TestPanel → containers/TestContainer}/TestContainer.d.ts +0 -0
@@ -1,230 +1,1205 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
- DeploymentDialog,
4
- NotebookContainer,
5
- ScriptContainer,
6
- ScriptObjectSettings,
7
- ScriptPluginSettings,
8
- ScriptProperties,
9
- TestContainer,
10
- TestPanel
11
- } from "./chunk-4QNZMXW6.mjs";
12
- import {
13
- DEPLOYMENT_DIALOG
14
- } from "./chunk-VQPIA4VF.mjs";
15
- import {
16
- deployScript,
17
- getAccessCredential,
18
- getFunctionUrl,
19
- isScriptDeployed,
20
- updateFunctionMetadata
21
- } from "./chunk-BX5PP6AW.mjs";
22
- import {
23
- Notebook_exports,
24
3
  ScriptCapabilities,
25
- ScriptEvents,
26
- ScriptOperation
27
- } from "./chunk-G3J76DWP.mjs";
28
- import "./chunk-4F5FJZ36.mjs";
29
- import {
30
- NotebookMenu,
31
- NotebookStack
32
- } from "./chunk-VWOLKNMO.mjs";
33
- import "./chunk-SLU3KRV3.mjs";
34
- import {
35
- defaultScriptsForIntegration,
36
- meta
37
- } from "./chunk-5HSJPAK7.mjs";
4
+ ScriptEvents
5
+ } from "./chunk-ELIPYPNQ.mjs";
38
6
  import "./chunk-HSLMI22Q.mjs";
39
7
 
40
- // src/ScriptPlugin.tsx
41
- import * as Effect from "effect/Effect";
42
- import { Common, Plugin } from "@dxos/app-framework";
43
- import { Ref } from "@dxos/echo";
44
- import { Script as Script2 } from "@dxos/functions";
45
- import { Operation } from "@dxos/operation";
8
+ // src/components/index.ts
9
+ import { lazy } from "react";
10
+
11
+ // src/components/FramePanel/FramePanel.tsx
12
+ import React, { useEffect, useRef } from "react";
13
+ import { clientServiceBundle } from "@dxos/client-protocol";
14
+ import { invariant } from "@dxos/invariant";
15
+ import { log } from "@dxos/log";
16
+ import { useClient } from "@dxos/react-client";
17
+ import { createProtoRpcPeer } from "@dxos/rpc";
18
+ import { createIFramePort } from "@dxos/rpc-tunnel";
19
+ import { mx } from "@dxos/ui-theme";
20
+ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-script/src/components/FramePanel/FramePanel.tsx";
21
+ var FramePanel = ({ containerUrl, result, debug = true }) => {
22
+ const client = useClient();
23
+ const iframeRef = useRef(null);
24
+ useEffect(() => {
25
+ if (iframeRef.current) {
26
+ const rpc = createProtoRpcPeer({
27
+ exposed: clientServiceBundle,
28
+ handlers: client._services.services,
29
+ port: createIFramePort({
30
+ channel: "frame",
31
+ iframe: iframeRef.current,
32
+ origin: "*"
33
+ })
34
+ });
35
+ rpc.open().catch((e) => log.catch(e, void 0, {
36
+ F: __dxlog_file,
37
+ L: 41,
38
+ S: void 0,
39
+ C: (f, a) => f(...a)
40
+ }));
41
+ return () => {
42
+ rpc.close().catch((e) => log.catch(e, void 0, {
43
+ F: __dxlog_file,
44
+ L: 43,
45
+ S: void 0,
46
+ C: (f, a) => f(...a)
47
+ }));
48
+ };
49
+ }
50
+ }, [
51
+ iframeRef
52
+ ]);
53
+ invariant(result.sourceHash, "Source hash is required.", {
54
+ F: __dxlog_file,
55
+ L: 49,
56
+ S: void 0,
57
+ A: [
58
+ "result.sourceHash",
59
+ "'Source hash is required.'"
60
+ ]
61
+ });
62
+ const sourceHash = Buffer.from(result.sourceHash).toString("hex");
63
+ const src = "bundle" in result ? `${containerUrl}?ts=${sourceHash}#code=${encodeURIComponent(new TextDecoder().decode(Object.values(result.bundle)[0]))}` : void 0;
64
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("iframe", {
65
+ ref: iframeRef,
66
+ sandbox: "allow-scripts",
67
+ src,
68
+ style: {
69
+ width: "100%",
70
+ height: "100%"
71
+ }
72
+ }), debug && /* @__PURE__ */ React.createElement("div", {
73
+ className: "relative"
74
+ }, /* @__PURE__ */ React.createElement("div", {
75
+ className: mx("flex absolute right-2 bottom-2 w-[30rem] h-[200px] bg-base-surface ring rounded-sm", "z-20 overflow-x-hidden overflow-y-auto")
76
+ }, /* @__PURE__ */ React.createElement("pre", {
77
+ className: "text-xs whitespace-break-spaces break-all p-2"
78
+ }, JSON.stringify({
79
+ timestamp: result.timestamp,
80
+ sourceHash,
81
+ error: "error" in result ? result.error : void 0,
82
+ src
83
+ }, void 0, 2)))));
84
+ };
85
+
86
+ // src/components/NotebookStack/NotebookMenu.tsx
87
+ import React2 from "react";
88
+ import { DropdownMenu, useTranslation } from "@dxos/react-ui";
89
+ import { meta } from "#meta";
90
+ var NotebookMenu = ({ cell, onCellInsert, onCellDelete }) => {
91
+ const { t } = useTranslation(meta.id);
92
+ return /* @__PURE__ */ React2.createElement(DropdownMenu.Portal, null, /* @__PURE__ */ React2.createElement(DropdownMenu.Content, null, /* @__PURE__ */ React2.createElement(DropdownMenu.Viewport, null, /* @__PURE__ */ React2.createElement(DropdownMenu.Item, {
93
+ onClick: () => onCellInsert?.("script", cell?.id)
94
+ }, t("notebook-cell-insert-script.label")), /* @__PURE__ */ React2.createElement(DropdownMenu.Item, {
95
+ onClick: () => onCellInsert?.("prompt", cell?.id)
96
+ }, t("notebook-cell-insert-prompt.label")), /* @__PURE__ */ React2.createElement(DropdownMenu.Item, {
97
+ onClick: () => onCellInsert?.("query", cell?.id)
98
+ }, t("notebook-cell-insert-query.label")), /* @__PURE__ */ React2.createElement(DropdownMenu.Item, {
99
+ onClick: () => onCellInsert?.("markdown", cell?.id)
100
+ }, t("notebook-cell-insert-markdown.label")), cell && onCellDelete && /* @__PURE__ */ React2.createElement(DropdownMenu.Item, {
101
+ onClick: () => onCellDelete?.(cell.id)
102
+ }, t("notebook-cell-delete.label"))), /* @__PURE__ */ React2.createElement(DropdownMenu.Arrow, null)));
103
+ };
46
104
 
47
- // src/capabilities/app-graph-builder/index.ts
48
- import { Capability } from "@dxos/app-framework";
49
- var AppGraphBuilder = Capability.lazy("AppGraphBuilder", () => import("./app-graph-builder-NVE3EVBG.mjs"));
105
+ // src/components/NotebookStack/NotebookStack.tsx
106
+ import React5 from "react";
107
+ import { DropdownMenu as DropdownMenu2, IconButton, useTranslation as useTranslation3 } from "@dxos/react-ui";
108
+ import { Stack, StackItem } from "@dxos/react-ui-stack";
109
+ import { composable as composable2, composableProps as composableProps2 } from "@dxos/ui-theme";
110
+ import { meta as meta3 } from "#meta";
50
111
 
51
- // src/capabilities/blueprint-definition/index.ts
52
- import { Capability as Capability2 } from "@dxos/app-framework";
53
- var BlueprintDefinition = Capability2.lazy("BlueprintDefinition", () => import("./blueprint-definition-NC7NNJGI.mjs"));
112
+ // src/components/NotebookStack/NotebookCell.tsx
113
+ import React4, { useCallback, useMemo } from "react";
114
+ import { Surface } from "@dxos/app-framework/ui";
115
+ import { Obj } from "@dxos/echo";
116
+ import { createDocAccessor } from "@dxos/echo-db";
117
+ import { invariant as invariant2 } from "@dxos/invariant";
118
+ import { TemplateEditor } from "@dxos/plugin-assistant";
119
+ import { useThemeContext as useThemeContext2, useTranslation as useTranslation2 } from "@dxos/react-ui";
120
+ import { QueryEditor } from "@dxos/react-ui-components";
121
+ import { EditorContent } from "@dxos/react-ui-editor";
122
+ import { createBasicExtensions as createBasicExtensions2, createDataExtensions, createMarkdownExtensions, createThemeExtensions as createThemeExtensions2, decorateMarkdown } from "@dxos/ui-editor";
123
+ import { mx as mx2 } from "@dxos/ui-theme";
124
+ import { isNonNullable as isNonNullable2 } from "@dxos/util";
125
+ import { meta as meta2 } from "#meta";
54
126
 
55
- // src/capabilities/compiler/index.ts
56
- import { Capability as Capability3 } from "@dxos/app-framework";
57
- var Compiler = Capability3.lazy("Compiler", () => import("./compiler-FNZH6TFN.mjs"));
127
+ // src/components/TypescriptEditor/TypescriptEditor.tsx
128
+ import { autocompletion, completionKeymap } from "@codemirror/autocomplete";
129
+ import { javascript } from "@codemirror/lang-javascript";
130
+ import { HighlightStyle } from "@codemirror/language";
131
+ import { lintKeymap } from "@codemirror/lint";
132
+ import { Prec } from "@codemirror/state";
133
+ import { keymap } from "@codemirror/view";
134
+ import { tags } from "@lezer/highlight";
135
+ import { composeRefs } from "@radix-ui/react-compose-refs";
136
+ import { continueKeymap } from "@valtown/codemirror-continue";
137
+ import { tsAutocomplete, tsFacet, tsHover, tsLinter, tsSync } from "@valtown/codemirror-ts";
138
+ import React3 from "react";
139
+ import { useThemeContext } from "@dxos/react-ui";
140
+ import { useTextEditor } from "@dxos/react-ui-editor";
141
+ import { Domino } from "@dxos/ui";
142
+ import { InputModeExtensions, createBasicExtensions, createThemeExtensions, defaultStyles } from "@dxos/ui-editor";
143
+ import { composable, composableProps } from "@dxos/ui-theme";
144
+ import { isNonNullable } from "@dxos/util";
145
+ var TypescriptEditor = composable(({ classNames, id, role = "article", inputMode = "vscode", env, options, initialValue, extensions, scrollTo, selection, ...props }, forwardedRef) => {
146
+ const { themeMode } = useThemeContext();
147
+ const { parentRef, focusAttributes } = useTextEditor(() => ({
148
+ id,
149
+ initialValue,
150
+ selection,
151
+ scrollTo,
152
+ extensions: [
153
+ extensions,
154
+ createBasicExtensions({
155
+ highlightActiveLine: true,
156
+ indentWithTab: true,
157
+ lineNumbers: true,
158
+ lineWrapping: false,
159
+ scrollPastEnd: role !== "section",
160
+ search: true,
161
+ ...options
162
+ }),
163
+ createThemeExtensions({
164
+ monospace: true,
165
+ themeMode,
166
+ syntaxHighlighting: true
167
+ }),
168
+ InputModeExtensions[inputMode],
169
+ javascript({
170
+ typescript: true
171
+ }),
172
+ autocompletion({
173
+ override: env ? [
174
+ tsAutocomplete()
175
+ ] : void 0
176
+ }),
177
+ // Continues block comments when pressing Enter.
178
+ Prec.high(keymap.of(continueKeymap)),
179
+ keymap.of(completionKeymap),
180
+ keymap.of(lintKeymap),
181
+ // https://github.com/val-town/codemirror-ts
182
+ env && [
183
+ // TODO(burdon): Fix type.
184
+ tsFacet.of({
185
+ env,
186
+ path: `./src/${id}.ts`
187
+ }),
188
+ tsSync(),
189
+ tsLinter(),
190
+ tsHover({
191
+ renderTooltip: createTooltipRenderer(themeMode)
192
+ })
193
+ ]
194
+ ].filter(isNonNullable)
195
+ }), [
196
+ themeMode,
197
+ id,
198
+ extensions,
199
+ inputMode,
200
+ selection,
201
+ scrollTo,
202
+ env
203
+ ]);
204
+ return /* @__PURE__ */ React3.createElement("div", {
205
+ ...composableProps(props, {
206
+ classNames,
207
+ ...focusAttributes
208
+ }),
209
+ ref: composeRefs(parentRef, forwardedRef)
210
+ });
211
+ });
212
+ var createTooltipRenderer = (themeMode) => {
213
+ const theme = HighlightStyle.define(themeMode === "dark" ? defaultStyles.dark : defaultStyles.light);
214
+ const classFromKind = (_kind) => {
215
+ const kind = _kind.endsWith("Name") ? "name" : _kind;
216
+ const validTag = kind in tags;
217
+ if (!validTag) {
218
+ return "";
219
+ }
220
+ const tag = tags[kind];
221
+ if (typeof tag === "function") {
222
+ return "";
223
+ }
224
+ return theme.style([
225
+ tag
226
+ ]) ?? "";
227
+ };
228
+ return (info) => {
229
+ const children = info.quickInfo?.displayParts?.map(({ kind, text }) => Domino.of("span").classNames(classFromKind(kind)).text(text)) ?? [];
230
+ return {
231
+ dom: Domino.of("div").classNames("xs:max-w-80 max-w-lg p-1 bg-base-surface rounded-sm border border-separator").children(...children).root
232
+ };
233
+ };
234
+ };
235
+
236
+ // src/components/NotebookStack/NotebookCell.tsx
237
+ var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-script/src/components/NotebookStack/NotebookCell.tsx";
238
+ var editorStyles = "p-2 ps-3";
239
+ var valueStyles = "p-1 ps-3";
240
+ var NotebookCell = ({ db, graph, dragging, cell, promptResults, env }) => {
241
+ const { t } = useTranslation2(meta2.id);
242
+ const extensions = useMemo(() => {
243
+ return cell.source?.target ? [
244
+ createDataExtensions({
245
+ id: cell.id,
246
+ text: createDocAccessor(cell.source.target, [
247
+ "content"
248
+ ])
249
+ })
250
+ ].filter(isNonNullable2) : [];
251
+ }, [
252
+ cell.source?.target
253
+ ]);
254
+ const explorerGraph = cell.graph?.target;
255
+ const handleQueryChange = useCallback((value) => {
256
+ invariant2(cell.source?.target, void 0, {
257
+ F: __dxlog_file2,
258
+ L: 63,
259
+ S: void 0,
260
+ A: [
261
+ "cell.source?.target",
262
+ ""
263
+ ]
264
+ });
265
+ Obj.change(cell.source.target, (obj) => {
266
+ obj.content = value;
267
+ });
268
+ }, [
269
+ cell
270
+ ]);
271
+ switch (cell.type) {
272
+ case "markdown":
273
+ if (!cell.source?.target) {
274
+ return null;
275
+ }
276
+ return /* @__PURE__ */ React4.createElement(NotebookTextEditor, {
277
+ id: cell.id,
278
+ classNames: editorStyles,
279
+ initialValue: cell.source.target.content,
280
+ extensions
281
+ });
282
+ case "script":
283
+ if (!cell.source?.target) {
284
+ return null;
285
+ }
286
+ return /* @__PURE__ */ React4.createElement(React4.Fragment, null, /* @__PURE__ */ React4.createElement(TypescriptEditor, {
287
+ id: cell.id,
288
+ role: "section",
289
+ classNames: editorStyles,
290
+ initialValue: cell.source.target.content,
291
+ extensions,
292
+ env,
293
+ options: {
294
+ placeholder: t("notebook-cell.placeholder"),
295
+ highlightActiveLine: false,
296
+ lineNumbers: false
297
+ }
298
+ }), /* @__PURE__ */ React4.createElement(NotebookCellValue, {
299
+ cell,
300
+ graph
301
+ }));
302
+ case "query":
303
+ if (!cell.source?.target) {
304
+ return null;
305
+ }
306
+ return /* @__PURE__ */ React4.createElement("div", {
307
+ className: mx2("h-full overflow-hidden grid", explorerGraph && !dragging && "grid-rows-[min-content_1fr]")
308
+ }, /* @__PURE__ */ React4.createElement(QueryEditor, {
309
+ id: cell.id,
310
+ classNames: [
311
+ editorStyles,
312
+ "border-b border-subdued-separator"
313
+ ],
314
+ db,
315
+ value: cell.source.target.content,
316
+ onChange: handleQueryChange
317
+ }), explorerGraph && !dragging && /* @__PURE__ */ React4.createElement(Surface.Surface, {
318
+ role: "section",
319
+ limit: 1,
320
+ data: {
321
+ subject: explorerGraph
322
+ }
323
+ }));
324
+ // TODO(burdon): Use streaming response from Chat.
325
+ case "prompt":
326
+ if (!cell.prompt?.target) {
327
+ return null;
328
+ }
329
+ return /* @__PURE__ */ React4.createElement(React4.Fragment, null, /* @__PURE__ */ React4.createElement(TemplateEditor, {
330
+ id: cell.id,
331
+ template: cell.prompt.target.instructions,
332
+ lineNumbers: false,
333
+ classNames: editorStyles
334
+ }), /* @__PURE__ */ React4.createElement(NotebookPromptResult, {
335
+ cell,
336
+ promptResults
337
+ }));
338
+ default:
339
+ return null;
340
+ }
341
+ };
342
+ var NotebookCellValue = ({ cell, graph }) => {
343
+ const name = graph?.getExpressions()[cell.id]?.name;
344
+ const value = graph?.getValue(cell.id);
345
+ if (value == null) {
346
+ return null;
347
+ }
348
+ return /* @__PURE__ */ React4.createElement("div", {
349
+ className: mx2("flex w-full bg-group-surface border-y border-subdued-separator text-description font-mono", valueStyles)
350
+ }, name && /* @__PURE__ */ React4.createElement(React4.Fragment, null, /* @__PURE__ */ React4.createElement("span", {
351
+ className: "text-success-text"
352
+ }, name), /* @__PURE__ */ React4.createElement("span", {
353
+ className: "text-description"
354
+ }, "\xA0=\xA0")), /* @__PURE__ */ React4.createElement("span", null, value));
355
+ };
356
+ var NotebookPromptResult = ({ cell, promptResults }) => {
357
+ if (!cell.prompt) {
358
+ return null;
359
+ }
360
+ const value = promptResults?.[cell.prompt.dxn.toString()];
361
+ if (value == null) {
362
+ return null;
363
+ }
364
+ return /* @__PURE__ */ React4.createElement("div", {
365
+ className: mx2("flex w-full bg-group-surface text-description border-y border-subdued-separator", valueStyles)
366
+ }, /* @__PURE__ */ React4.createElement(NotebookTextEditor, {
367
+ readOnly: true,
368
+ value
369
+ }));
370
+ };
371
+ var NotebookTextEditor = ({ extensions: extensionsProp, readOnly, ...props }) => {
372
+ const { t } = useTranslation2(meta2.id);
373
+ const { themeMode } = useThemeContext2();
374
+ const extensions = useMemo(() => {
375
+ return [
376
+ createBasicExtensions2({
377
+ placeholder: t("notebook-markdown.placeholder"),
378
+ readOnly
379
+ }),
380
+ createThemeExtensions2({
381
+ themeMode,
382
+ syntaxHighlighting: true
383
+ }),
384
+ createMarkdownExtensions(),
385
+ decorateMarkdown(),
386
+ extensionsProp
387
+ ].filter(isNonNullable2);
388
+ }, [
389
+ extensionsProp
390
+ ]);
391
+ return /* @__PURE__ */ React4.createElement(EditorContent, {
392
+ ...props,
393
+ extensions,
394
+ selectionEnd: true
395
+ });
396
+ };
58
397
 
59
- // src/capabilities/operation-resolver/index.ts
60
- import { Capability as Capability4 } from "@dxos/app-framework";
61
- var OperationResolver = Capability4.lazy("OperationResolver", () => import("./operation-resolver-JTCIY6HU.mjs"));
398
+ // src/components/NotebookStack/NotebookStack.tsx
399
+ var minSectionHeight = "min-h-[16rem]";
400
+ var NotebookStack = composable2(({ notebook, onRearrange, db, graph, promptResults, onCellInsert, onCellDelete, env, ...props }, forwardedRef) => {
401
+ const sectionProps = {
402
+ db,
403
+ graph,
404
+ promptResults,
405
+ onCellInsert,
406
+ onCellDelete,
407
+ env
408
+ };
409
+ return /* @__PURE__ */ React5.createElement(Stack, {
410
+ ...composableProps2(props),
411
+ orientation: "vertical",
412
+ size: "contain",
413
+ rail: true,
414
+ onRearrange,
415
+ ref: forwardedRef
416
+ }, notebook?.cells.map((cell, i) => /* @__PURE__ */ React5.createElement(NotebookSection, {
417
+ key: i,
418
+ cell,
419
+ ...sectionProps
420
+ })));
421
+ });
422
+ var NotebookSection = ({ cell, db, env, promptResults, onCellInsert, onCellDelete, ...props }) => {
423
+ const { t } = useTranslation3(meta3.id);
424
+ const resizable = cell.type === "query";
425
+ return /* @__PURE__ */ React5.createElement(StackItem.Root, {
426
+ role: "section",
427
+ item: cell,
428
+ draggable: true,
429
+ classNames: resizable && minSectionHeight
430
+ }, /* @__PURE__ */ React5.createElement(StackItem.Heading, {
431
+ classNames: "h-full p-1 justify-between dx-attention-surface"
432
+ }, /* @__PURE__ */ React5.createElement(StackItem.DragHandle, {
433
+ asChild: true
434
+ }, /* @__PURE__ */ React5.createElement(IconButton, {
435
+ variant: "ghost",
436
+ icon: "ph--dots-six-vertical--regular",
437
+ iconOnly: true,
438
+ label: "Drag handle"
439
+ })), /* @__PURE__ */ React5.createElement(DropdownMenu2.Root, null, /* @__PURE__ */ React5.createElement(DropdownMenu2.Trigger, {
440
+ asChild: true
441
+ }, /* @__PURE__ */ React5.createElement(IconButton, {
442
+ variant: "ghost",
443
+ icon: "ph--dots-three--regular",
444
+ iconOnly: true,
445
+ label: t("notebook-cell-insert.label")
446
+ })), /* @__PURE__ */ React5.createElement(NotebookMenu, {
447
+ cell,
448
+ onCellInsert,
449
+ onCellDelete
450
+ })), resizable && /* @__PURE__ */ React5.createElement(StackItem.ResizeHandle, null)), /* @__PURE__ */ React5.createElement(StackItem.DragPreview, null, ({ item: cell2 }) => /* @__PURE__ */ React5.createElement(StackItem.Content, {
451
+ classNames: "overflow-visible bg-group-surface border border-subdued-separator"
452
+ }, /* @__PURE__ */ React5.createElement(NotebookCell, {
453
+ db,
454
+ cell: cell2,
455
+ env,
456
+ dragging: true
457
+ }))), /* @__PURE__ */ React5.createElement(StackItem.Content, {
458
+ classNames: "overflow-visible"
459
+ }, /* @__PURE__ */ React5.createElement(NotebookCell, {
460
+ db,
461
+ cell,
462
+ env,
463
+ promptResults,
464
+ ...props
465
+ })));
466
+ };
62
467
 
63
- // src/capabilities/react-surface/index.ts
64
- import { Capability as Capability5 } from "@dxos/app-framework";
65
- var ReactSurface = Capability5.lazy("ReactSurface", () => import("./react-surface-RLANMVMB.mjs"));
468
+ // src/components/QueryEditor/QueryEditor.tsx
469
+ import React6, { useState } from "react";
470
+ import { ScriptTarget } from "typescript";
471
+ import queryApi from "@dxos/echo-query/api.d.ts?raw";
472
+ import { useAsyncEffect } from "@dxos/react-ui";
66
473
 
67
- // src/capabilities/settings/index.ts
68
- import { Capability as Capability6 } from "@dxos/app-framework";
69
- var ScriptSettings = Capability6.lazy("ScriptSettings", () => import("./settings-7AYC5VXN.mjs"));
474
+ // src/compiler/compiler.ts
475
+ import { createDefaultMapFromCDN, createSystem, createVirtualTypeScriptEnvironment } from "@typescript/vfs";
476
+ import ts from "typescript";
477
+ import { invariant as invariant3 } from "@dxos/invariant";
478
+ var __dxlog_file3 = "/__w/dxos/dxos/packages/plugins/plugin-script/src/compiler/compiler.ts";
479
+ var GLOBALS = "globals.d.ts";
480
+ var defaultOptions = {
481
+ lib: [
482
+ "DOM",
483
+ "es2022"
484
+ ],
485
+ target: ts.ScriptTarget.ES2022
486
+ };
487
+ var Compiler = class {
488
+ _options;
489
+ _env;
490
+ _fsMap;
491
+ constructor(_options = defaultOptions) {
492
+ this._options = _options;
493
+ }
494
+ async initialize(globals) {
495
+ if (this._env) {
496
+ return;
497
+ }
498
+ this._fsMap = await createDefaultMapFromCDN(this._options, "5.7.2", true, ts);
499
+ if (globals) {
500
+ this._fsMap.set(GLOBALS, globals);
501
+ }
502
+ const rootFiles = globals ? [
503
+ GLOBALS
504
+ ] : [];
505
+ const system = createSystem(this._fsMap);
506
+ this._env = createVirtualTypeScriptEnvironment(system, rootFiles, ts, this._options);
507
+ }
508
+ get environment() {
509
+ invariant3(this._env, "Compiler environment not initialized.", {
510
+ F: __dxlog_file3,
511
+ L: 46,
512
+ S: this,
513
+ A: [
514
+ "this._env",
515
+ "'Compiler environment not initialized.'"
516
+ ]
517
+ });
518
+ return this._env;
519
+ }
520
+ setFile(fileName, content) {
521
+ invariant3(this._fsMap, "File system map not initialized.", {
522
+ F: __dxlog_file3,
523
+ L: 51,
524
+ S: this,
525
+ A: [
526
+ "this._fsMap",
527
+ "'File system map not initialized.'"
528
+ ]
529
+ });
530
+ this.environment.createFile(fileName, content);
531
+ }
532
+ compile(fileName) {
533
+ return this.environment.languageService.getEmitOutput(fileName);
534
+ }
535
+ };
536
+
537
+ // src/components/QueryEditor/QueryEditor.tsx
538
+ var GLOBALS2 = `
539
+ namespace QueryAPI {
540
+ ${queryApi}
541
+ }
542
+
543
+ declare global {
544
+ const Query: typeof QueryAPI.Query;
545
+ const Filter: typeof QueryAPI.Filter;
546
+ const Order: typeof QueryAPI.Order;
547
+ }
548
+
549
+ export {};
550
+ `;
551
+ var QueryEditor2 = (props) => {
552
+ const [compiler, setCompiler] = useState();
553
+ useAsyncEffect(async () => {
554
+ const compiler2 = new Compiler({
555
+ lib: [
556
+ "ES5"
557
+ ],
558
+ target: ScriptTarget.ES2022
559
+ });
560
+ await compiler2.initialize(GLOBALS2);
561
+ setCompiler(compiler2);
562
+ }, []);
563
+ if (!compiler) {
564
+ return null;
565
+ }
566
+ return /* @__PURE__ */ React6.createElement(TypescriptEditor, {
567
+ ...props,
568
+ env: compiler.environment
569
+ });
570
+ };
571
+
572
+ // src/components/ScriptToolbar/ScriptToolbar.tsx
573
+ import { Atom } from "@effect-atom/atom-react";
574
+ import React7, { useMemo as useMemo2 } from "react";
575
+ import { ElevationProvider, useTranslation as useTranslation4 } from "@dxos/react-ui";
576
+ import { composable as composable3, composableProps as composableProps3 } from "@dxos/ui-theme";
577
+ import { Menu, createGapSeparator, useMenuActions } from "@dxos/react-ui-menu";
578
+ import { createDeploy, createFormat, createTemplateSelect, useDeployDeps } from "#hooks";
579
+ import { meta as meta4 } from "#meta";
580
+ var ScriptToolbar = composable3(({ script, attendableId, role, state, ...props }, forwardedRef) => {
581
+ const { t } = useTranslation4(meta4.id);
582
+ const options = useDeployDeps({
583
+ script
584
+ });
585
+ const menuCreator = useMemo2(() => createToolbarActions({
586
+ state,
587
+ script,
588
+ t,
589
+ ...options
590
+ }), [
591
+ state,
592
+ script,
593
+ options,
594
+ t
595
+ ]);
596
+ const menuActions = useMenuActions(menuCreator);
597
+ return /* @__PURE__ */ React7.createElement(ElevationProvider, {
598
+ elevation: role === "section" ? "positioned" : "base"
599
+ }, /* @__PURE__ */ React7.createElement(Menu.Root, {
600
+ ...menuActions,
601
+ attendableId
602
+ }, /* @__PURE__ */ React7.createElement(Menu.Toolbar, {
603
+ ...composableProps3(props),
604
+ ref: forwardedRef
605
+ })));
606
+ });
607
+ var createToolbarActions = ({ state, script, ...options }) => Atom.make((get) => {
608
+ get(state.atom);
609
+ const templateSelect = createTemplateSelect(script);
610
+ const format = createFormat(script);
611
+ const gap = createGapSeparator();
612
+ const deploy = createDeploy({
613
+ state,
614
+ script,
615
+ ...options
616
+ });
617
+ return {
618
+ nodes: [
619
+ ...templateSelect.nodes,
620
+ ...format.nodes,
621
+ ...gap.nodes,
622
+ ...deploy.nodes
623
+ ],
624
+ edges: [
625
+ ...templateSelect.edges,
626
+ ...format.edges,
627
+ ...gap.edges,
628
+ ...deploy.edges
629
+ ]
630
+ };
631
+ });
632
+
633
+ // src/components/TestPanel/TestPanel.tsx
634
+ import React8, { forwardRef, useRef as useRef2, useState as useState2 } from "react";
635
+ import { log as log2 } from "@dxos/log";
636
+ import { Avatar, Icon, Input, ScrollArea, Toolbar, useTranslation as useTranslation5 } from "@dxos/react-ui";
637
+ import { SyntaxHighlighter } from "@dxos/react-ui-syntax-highlighter";
638
+ import { composable as composable4, composableProps as composableProps4, mx as mx3 } from "@dxos/ui-theme";
639
+ import { meta as meta5 } from "#meta";
640
+ var __dxlog_file4 = "/__w/dxos/dxos/packages/plugins/plugin-script/src/components/TestPanel/TestPanel.tsx";
641
+ var TestPanel = composable4(({ classNames, onInvoke, ...props }, forwardedRef) => {
642
+ const { t } = useTranslation5(meta5.id);
643
+ const inputRef = useRef2(null);
644
+ const [input, setInput] = useState2("");
645
+ const [state, setState] = useState2(null);
646
+ const [history, setHistory] = useState2([]);
647
+ const scrollerRef = useRef2(null);
648
+ const handleScroll = () => {
649
+ if (scrollerRef.current) {
650
+ scrollerRef.current.scrollTop = scrollerRef.current.scrollHeight;
651
+ }
652
+ };
653
+ const handleClear = () => {
654
+ setInput("");
655
+ setHistory([]);
656
+ inputRef.current?.focus();
657
+ };
658
+ const handleResponse = ({ text, data, error } = {}) => {
659
+ setHistory((history2) => [
660
+ ...history2,
661
+ {
662
+ type: "response",
663
+ text,
664
+ data,
665
+ error
666
+ }
667
+ ]);
668
+ setState(null);
669
+ handleScroll();
670
+ };
671
+ const handleRequest = async (input2) => {
672
+ if (!onInvoke) {
673
+ handleResponse({
674
+ error: new Error("Function not deployed")
675
+ });
676
+ return;
677
+ }
678
+ let data = input2;
679
+ let displayText = input2;
680
+ if (input2.charAt(0) === "{") {
681
+ try {
682
+ const validJsonString = input2.replace(/'/g, '"').replace(/([{,]\s*)([a-zA-Z0-9_]+)(\s*:)/g, '$1"$2"$3');
683
+ data = JSON.parse(validJsonString);
684
+ displayText = JSON.stringify(data, null, 2);
685
+ } catch (err) {
686
+ handleResponse({
687
+ error: new Error("Invalid JSON input")
688
+ });
689
+ return;
690
+ }
691
+ }
692
+ try {
693
+ setState("pending");
694
+ setInput("");
695
+ setHistory((history2) => [
696
+ ...history2,
697
+ {
698
+ type: "request",
699
+ text: displayText
700
+ }
701
+ ]);
702
+ setTimeout(handleScroll);
703
+ const result = await onInvoke(data);
704
+ if (typeof result === "string") {
705
+ handleResponse({
706
+ text: result
707
+ });
708
+ } else {
709
+ handleResponse({
710
+ data: result
711
+ });
712
+ }
713
+ } catch (err) {
714
+ const error = err instanceof Error ? err : new Error(String(err));
715
+ handleResponse({
716
+ error
717
+ });
718
+ log2.catch(err, void 0, {
719
+ F: __dxlog_file4,
720
+ L: 104,
721
+ S: void 0,
722
+ C: (f, a) => f(...a)
723
+ });
724
+ }
725
+ };
726
+ return /* @__PURE__ */ React8.createElement("div", {
727
+ ...composableProps4(props, {
728
+ classNames: [
729
+ "flex flex-col h-full overflow-hidden",
730
+ classNames
731
+ ]
732
+ }),
733
+ ref: forwardedRef
734
+ }, /* @__PURE__ */ React8.createElement(MessageThread, {
735
+ ref: scrollerRef,
736
+ state,
737
+ history
738
+ }), /* @__PURE__ */ React8.createElement(Toolbar.Root, null, /* @__PURE__ */ React8.createElement(Input.Root, null, /* @__PURE__ */ React8.createElement(Input.TextInput, {
739
+ ref: inputRef,
740
+ autoFocus: true,
741
+ placeholder: t("function-request.placeholder"),
742
+ value: input,
743
+ onChange: (ev) => setInput(ev.target.value),
744
+ onKeyDown: (ev) => ev.key === "Enter" && handleRequest(input)
745
+ })), /* @__PURE__ */ React8.createElement(Toolbar.IconButton, {
746
+ icon: "ph--play--regular",
747
+ label: "Execute",
748
+ iconOnly: true,
749
+ onClick: () => handleRequest(input)
750
+ }), /* @__PURE__ */ React8.createElement(Toolbar.IconButton, {
751
+ icon: "ph--trash--regular",
752
+ label: "Clear",
753
+ iconOnly: true,
754
+ onClick: handleClear
755
+ })));
756
+ });
757
+ var MessageThread = /* @__PURE__ */ forwardRef(({ state, history }, forwardedRef) => {
758
+ return /* @__PURE__ */ React8.createElement(ScrollArea.Root, {
759
+ orientation: "vertical",
760
+ classNames: "h-full",
761
+ ref: forwardedRef
762
+ }, /* @__PURE__ */ React8.createElement(ScrollArea.Viewport, {
763
+ classNames: "gap-6 p-2"
764
+ }, history.map((message, i) => /* @__PURE__ */ React8.createElement("div", {
765
+ key: i,
766
+ className: "grid grid-cols-[2rem_1fr_2rem]"
767
+ }, /* @__PURE__ */ React8.createElement("div", {
768
+ className: "p-1"
769
+ }, message.type === "response" && /* @__PURE__ */ React8.createElement(RobotAvatar, null)), /* @__PURE__ */ React8.createElement("div", {
770
+ className: "overflow-auto"
771
+ }, /* @__PURE__ */ React8.createElement(MessageItem, {
772
+ message
773
+ })))), state === "pending" && /* @__PURE__ */ React8.createElement("div", {
774
+ className: "grid grid-cols-[2rem_1fr_2rem]"
775
+ }, /* @__PURE__ */ React8.createElement("div", {
776
+ className: "p-1"
777
+ }, /* @__PURE__ */ React8.createElement(Icon, {
778
+ icon: "ph--spinner--regular",
779
+ size: 6,
780
+ classNames: "animate-spin"
781
+ })))));
782
+ });
783
+ var MessageItem = ({ classNames, message }) => {
784
+ const { type, text, data, error } = message;
785
+ const wrapper = "p-1 px-2 rounded-md bg-hover-surface overflow-auto";
786
+ return /* @__PURE__ */ React8.createElement("div", {
787
+ className: mx3("flex", type === "request" ? "ml-[1rem] justify-end" : "mr-[1rem]", classNames)
788
+ }, error && /* @__PURE__ */ React8.createElement("div", {
789
+ className: mx3(wrapper, "whitespace-pre text-error-text")
790
+ }, String(error)), text !== void 0 && /* @__PURE__ */ React8.createElement("div", {
791
+ className: mx3(wrapper, type === "request" && "bg-primary-500 dark:bg-primary-600")
792
+ }, text || "\xD8"), data && /* @__PURE__ */ React8.createElement(SyntaxHighlighter, {
793
+ language: "json",
794
+ className: mx3(wrapper, "text-xs")
795
+ }, JSON.stringify(data, null, 2)));
796
+ };
797
+ var RobotAvatar = () => /* @__PURE__ */ React8.createElement(Avatar.Root, null, /* @__PURE__ */ React8.createElement(Avatar.Content, {
798
+ size: 6,
799
+ variant: "circle",
800
+ icon: "ph--robot--regular"
801
+ }));
802
+
803
+ // src/components/index.ts
804
+ var ScriptPluginSettings = lazy(() => import("./ScriptPluginSettings-SDWEDLUU.mjs"));
805
+
806
+ // src/containers/index.ts
807
+ import { lazy as lazy2 } from "react";
808
+ var DeploymentDialog = lazy2(() => import("./DeploymentDialog-XMR2CKP6.mjs"));
809
+ var NotebookContainer = lazy2(() => import("./NotebookContainer-YUVZF6IS.mjs"));
810
+ var ScriptContainer = lazy2(() => import("./ScriptContainer-G4D2YSFE.mjs"));
811
+ var ScriptObjectSettings = lazy2(() => import("./ScriptObjectSettings-XIOE66BL.mjs"));
812
+ var ScriptProperties = lazy2(() => import("./ScriptProperties-5H2Z4XRF.mjs"));
813
+ var TestContainer = lazy2(() => import("./TestContainer-SEFC4F2O.mjs"));
814
+
815
+ // src/meta.ts
816
+ import { trim } from "@dxos/util";
817
+ var meta6 = {
818
+ id: "org.dxos.plugin.script",
819
+ name: "Scripts",
820
+ description: trim`
821
+ Write and deploy custom JavaScript functions that extend your workspace capabilities.
822
+ Create AI agent tools, spreadsheet formulas, and automation scripts that integrate seamlessly with other plugins.
823
+ `,
824
+ icon: "ph--code--regular",
825
+ iconHue: "sky",
826
+ source: "https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-explorer",
827
+ tags: [
828
+ "labs"
829
+ ],
830
+ screenshots: [
831
+ "https://dxos.network/plugin-details-scripts-dark.png"
832
+ ]
833
+ };
834
+ var defaultScriptsForIntegration = {
835
+ // TODO(wittjosiah): Also include content extraction scripts in the default set.
836
+ "gmail.com": [
837
+ "org.dxos.script.gmail"
838
+ ]
839
+ };
840
+
841
+ // src/util/deploy.ts
842
+ import { Context } from "@dxos/context";
843
+ import { Obj as Obj2, Ref } from "@dxos/echo";
844
+ import { getUserFunctionIdInMetadata } from "@dxos/functions";
845
+ import { Operation } from "@dxos/operation";
846
+ import { bundleFunction } from "@dxos/functions-runtime/bundler";
847
+ import { FunctionsServiceClient, incrementSemverPatch } from "@dxos/functions-runtime/edge";
848
+ import { log as log3 } from "@dxos/log";
849
+ import { FunctionRuntimeKind } from "@dxos/protocols";
850
+ var __dxlog_file5 = "/__w/dxos/dxos/packages/plugins/plugin-script/src/util/deploy.ts";
851
+ var isScriptDeployed = ({ script, fn }) => {
852
+ const existingFunctionId = fn && getUserFunctionIdInMetadata(Obj2.getMeta(fn));
853
+ return Boolean(existingFunctionId) && !script.changed;
854
+ };
855
+ var deployScript = async ({ script, client, space, fn, existingFunctionId }) => {
856
+ const validationError = validateDeployInputs(script, space);
857
+ if (validationError) {
858
+ return {
859
+ success: false,
860
+ error: validationError
861
+ };
862
+ }
863
+ try {
864
+ const buildResult = await bundleFunction({
865
+ source: script.source.target.content
866
+ });
867
+ if ("error" in buildResult) {
868
+ throw buildResult.error || new Error("Bundle creation failed");
869
+ }
870
+ const functionsServiceClient = FunctionsServiceClient.fromClient(client);
871
+ const newFunction = await functionsServiceClient.deploy(Context.default(void 0, {
872
+ F: __dxlog_file5,
873
+ L: 55
874
+ }), {
875
+ // TODO(dmaretskyi): Space key or identity key.
876
+ ownerPublicKey: space.key,
877
+ version: fn ? incrementSemverPatch(fn.version) : "0.0.1",
878
+ functionId: existingFunctionId,
879
+ entryPoint: buildResult.entryPoint,
880
+ assets: buildResult.assets,
881
+ runtime: FunctionRuntimeKind.enums.WORKER_LOADER
882
+ });
883
+ const storedFunction = createOrUpdateFunctionInSpace(space, fn, script, newFunction);
884
+ Obj2.change(script, (obj) => {
885
+ obj.changed = false;
886
+ });
887
+ return {
888
+ success: true,
889
+ functionId: getUserFunctionIdInMetadata(Obj2.getMeta(storedFunction))
890
+ };
891
+ } catch (err) {
892
+ log3.catch(err, void 0, {
893
+ F: __dxlog_file5,
894
+ L: 72,
895
+ S: void 0,
896
+ C: (f, a) => f(...a)
897
+ });
898
+ return {
899
+ success: false,
900
+ error: err
901
+ };
902
+ }
903
+ };
904
+ var validateDeployInputs = (script, space) => {
905
+ if (!script.source || !space) {
906
+ return new Error("Script source or space not available");
907
+ }
908
+ return null;
909
+ };
910
+ var createOrUpdateFunctionInSpace = (space, fn, script, newFunction) => {
911
+ if (fn) {
912
+ Operation.setFrom(fn, newFunction);
913
+ return fn;
914
+ } else {
915
+ Obj2.change(newFunction, (obj) => {
916
+ obj.source = Ref.make(script);
917
+ });
918
+ return space.db.add(newFunction);
919
+ }
920
+ };
921
+
922
+ // src/util/functions.ts
923
+ import { Obj as Obj3 } from "@dxos/echo";
924
+ import { getUserFunctionIdInMetadata as getUserFunctionIdInMetadata2 } from "@dxos/functions";
925
+ import { getInvocationUrl } from "@dxos/functions-runtime";
926
+ import { log as log4 } from "@dxos/log";
927
+ import { getSpace } from "@dxos/react-client/echo";
928
+ var __dxlog_file6 = "/__w/dxos/dxos/packages/plugins/plugin-script/src/util/functions.ts";
929
+ var getFunctionUrl = ({ script, fn, edgeUrl }) => {
930
+ const space = getSpace(script);
931
+ const existingFunctionId = fn && getUserFunctionIdInMetadata2(Obj3.getMeta(fn));
932
+ if (!existingFunctionId) {
933
+ return void 0;
934
+ }
935
+ return getInvocationUrl(existingFunctionId, edgeUrl, {
936
+ spaceId: space?.id
937
+ });
938
+ };
939
+ var updateFunctionMetadata = (script, storedFunction, meta9, functionId) => {
940
+ Obj3.change(storedFunction, (obj) => {
941
+ if (script.description !== void 0 && script.description.trim() !== "") {
942
+ obj.description = script.description;
943
+ } else if (meta9.description) {
944
+ obj.description = meta9.description;
945
+ } else {
946
+ log4.verbose("no description in function metadata", {
947
+ functionId
948
+ }, {
949
+ F: __dxlog_file6,
950
+ L: 49,
951
+ S: void 0,
952
+ C: (f, a) => f(...a)
953
+ });
954
+ }
955
+ if (meta9.inputSchema) {
956
+ obj.inputSchema = meta9.inputSchema;
957
+ } else {
958
+ log4.verbose("no input schema in function metadata", {
959
+ functionId
960
+ }, {
961
+ F: __dxlog_file6,
962
+ L: 55,
963
+ S: void 0,
964
+ C: (f, a) => f(...a)
965
+ });
966
+ }
967
+ if (meta9.outputSchema) {
968
+ obj.outputSchema = meta9.outputSchema;
969
+ } else {
970
+ log4.verbose("no output schema in function metadata", {
971
+ functionId
972
+ }, {
973
+ F: __dxlog_file6,
974
+ L: 61,
975
+ S: void 0,
976
+ C: (f, a) => f(...a)
977
+ });
978
+ }
979
+ if (meta9.key) {
980
+ obj.key = meta9.key;
981
+ } else {
982
+ log4.verbose("no key in function metadata", {
983
+ functionId
984
+ }, {
985
+ F: __dxlog_file6,
986
+ L: 67,
987
+ S: void 0,
988
+ C: (f, a) => f(...a)
989
+ });
990
+ }
991
+ });
992
+ };
993
+ var getAccessCredential = (identityKey) => {
994
+ return {
995
+ issuer: identityKey,
996
+ issuanceDate: /* @__PURE__ */ new Date(),
997
+ subject: {
998
+ id: identityKey,
999
+ assertion: {
1000
+ "@type": "dxos.halo.credentials.ServiceAccess",
1001
+ serverName: "hub.dxos.network",
1002
+ serverKey: identityKey,
1003
+ identityKey,
1004
+ capabilities: [
1005
+ "composer:beta"
1006
+ ]
1007
+ }
1008
+ }
1009
+ };
1010
+ };
1011
+
1012
+ // src/ScriptPlugin.tsx
1013
+ import * as Effect from "effect/Effect";
1014
+ import * as Option from "effect/Option";
1015
+ import { Plugin } from "@dxos/app-framework";
1016
+ import { AppActivationEvents, AppPlugin } from "@dxos/app-toolkit";
1017
+ import { Annotation, Ref as Ref2 } from "@dxos/echo";
1018
+ import { Script as Script2 } from "@dxos/functions";
1019
+ import { Operation as Operation2 } from "@dxos/operation";
1020
+ import { SpaceOperation } from "@dxos/plugin-space/operations";
1021
+ import { meta as meta8 } from "#meta";
70
1022
 
71
1023
  // src/translations.ts
72
1024
  import { Script } from "@dxos/functions";
1025
+ import { meta as meta7 } from "#meta";
1026
+ import { Notebook } from "#types";
73
1027
  var translations = [
74
1028
  {
75
1029
  "en-US": {
76
1030
  [Script.Script.typename]: {
77
- "typename label": "Script",
78
- "typename label_zero": "Scripts",
79
- "typename label_one": "Script",
80
- "typename label_other": "Scripts",
81
- "object name placeholder": "New script",
82
- "rename object label": "Rename script",
83
- "delete object label": "Delete script",
84
- "object deleted label": "Script deleted"
1031
+ "typename.label": "Script",
1032
+ "typename.label_zero": "Scripts",
1033
+ "typename.label_one": "Script",
1034
+ "typename.label_other": "Scripts",
1035
+ "object-name.placeholder": "New script",
1036
+ "add-object.label": "Add script",
1037
+ "rename-object.label": "Rename script",
1038
+ "delete-object.label": "Delete script",
1039
+ "object-deleted.label": "Script deleted"
85
1040
  },
86
- [Notebook_exports.Notebook.typename]: {
87
- "typename label": "Notebook",
88
- "typename label_zero": "Notebooks",
89
- "typename label_one": "Notebook",
90
- "typename label_other": "Notebooks",
91
- "object name placeholder": "New notebook",
92
- "rename object label": "Rename notebook",
93
- "delete object label": "Delete notebook",
94
- "object deleted label": "Notebook deleted"
1041
+ [Notebook.Notebook.typename]: {
1042
+ "typename.label": "Notebook",
1043
+ "typename.label_zero": "Notebooks",
1044
+ "typename.label_one": "Notebook",
1045
+ "typename.label_other": "Notebooks",
1046
+ "object-name.placeholder": "New notebook",
1047
+ "add-object.label": "Add notebook",
1048
+ "rename-object.label": "Rename notebook",
1049
+ "delete-object.label": "Delete notebook",
1050
+ "object-deleted.label": "Notebook deleted"
95
1051
  },
96
- [meta.id]: {
97
- "plugin name": "Scripts",
98
- "settings title": "Scripts plugin settings",
99
- "description label": "Description",
100
- "description placeholder": "Enter description",
101
- "binding placeholder": "Function name",
102
- "function request placeholder": "Function request",
103
- "deploy label": "Deploy",
104
- "deployed label": "Current version of the script is deployed",
105
- "upload failed label": "Upload failed",
106
- "copy link label": "Copy function link",
107
- "format label": "Format",
108
- "toggle details label": "Toggle details panel",
109
- "authenticate action label": "Authenticate functions service",
110
- "authenticate button label": "Authenticate",
111
- "name label": "Name",
112
- "remote function settings heading": "Remote Function",
113
- "function url label": "Invocation URL",
114
- "function binding label": "Function binding",
115
- "function binding placeholder": "Enter binding name (e.g., NAME)",
116
- "script publish settings label": "Publishing",
117
- "script publish settings description": "Scripts can be shared publicly as Github gists.",
118
- "no github token label": "This space has no GitHub access token available.",
119
- "open token manager label": "Open Token Manager",
120
- "publish label": "Publish",
121
- "publishing label": "Publishing",
122
- "blueprint editor label": "Blueprint",
123
- "blueprint editor description": "Create a blueprint that exposes this script as a tool.",
124
- "blueprint instructions label": "Instructions",
125
- "blueprint instructions placeholder": "Describe how this tool should be used.",
126
- "create blueprint label": "Create blueprint",
127
- "creating label": "Creating\u2026",
128
- "editor input mode label": "Editor input mode",
129
- "select editor input mode placeholder": "Select editor input mode\u2026",
130
- "settings editor input mode default label": "Default",
131
- "settings editor input mode vim label": "Vim",
132
- "settings editor input mode vscode label": "VS Code",
133
- "function panel label": "Debug Function",
134
- "script test label": "Test",
135
- "script logs label": "Logs",
136
- "deployment dialog title": "Default Scripts",
137
- "deployment dialog scripts found message": "Script templates:",
138
- "deployment dialog deploy functions button label_one": "Create and deploy script",
139
- "deployment dialog deploy functions button label_other": "Create and deploy scripts",
140
- "deployment dialog deploy functions pending button label_one": "Deploying script",
141
- "deployment dialog deploy functions pending button label_other": "Deploying scripts",
142
- "deployment dialog skip button label": "Skip",
143
- "script deployment toast label_one": "Script deployed",
144
- "script deployment toast label_other": "Scripts deployed",
145
- "script deployment toast description_one": "Your script has been deployed successfully.",
146
- "script deployment toast description_other": "Your scripts have been deployed successfully.",
147
- "script deployment toast close label_one": "Close",
148
- "script deployment toast close label_other": "Close",
149
- "script deployment error toast label_one": "Script deployment failed",
150
- "script deployment error toast label_other": "Scripts deployment failed",
151
- "script deployment error toast description_one": "There was an error deploying your script.",
152
- "script deployment error toast description_other": "There was an error deploying your scripts.",
153
- "script deployment error toast close label_one": "Close",
154
- "script deployment error toast close label_other": "Close",
155
- "notebook cell placeholder": "Enter script",
156
- "notebook cell delete label": "Delete cell",
157
- "notebook cell prompt run label": "Run",
158
- "notebook cell insert markdown label": "Insert Markdown",
159
- "notebook cell insert script label": "Insert Script",
160
- "notebook cell insert prompt label": "Insert Prompt",
161
- "notebook cell insert query label": "Insert Query",
162
- "notebook markdown placeholder": "Enter Markdown",
163
- "notebook prompt placeholder": "Enter prompt",
164
- "notebook cell insert label": "Insert cell"
1052
+ [meta7.id]: {
1053
+ "plugin.name": "Scripts",
1054
+ "settings.title": "Scripts settings",
1055
+ "description.label": "Description",
1056
+ "description.placeholder": "Enter description",
1057
+ "binding.placeholder": "Function name",
1058
+ "function-request.placeholder": "Function request",
1059
+ "deploy.label": "Deploy",
1060
+ "deployed.label": "Current version of the script is deployed",
1061
+ "upload-failed.label": "Upload failed",
1062
+ "copy-link.label": "Copy function link",
1063
+ "format.label": "Format",
1064
+ "toggle-details.label": "Toggle details panel",
1065
+ "authenticate-action.label": "Authenticate functions service",
1066
+ "authenticate-action.description": "Sign in to the remote functions service to enable script deployment and execution.",
1067
+ "authenticate-button.label": "Authenticate",
1068
+ "name.label": "Name",
1069
+ "remote-function-settings.heading": "Remote Function",
1070
+ "function-url.label": "Invocation URL",
1071
+ "function-binding.label": "Function binding",
1072
+ "function-binding.placeholder": "Enter binding name (e.g., NAME)",
1073
+ "script-publish-settings.label": "Publishing",
1074
+ "script-publish-settings.description": "Scripts can be shared publicly as Github gists.",
1075
+ "no-github-token.label": "This space has no GitHub access token available.",
1076
+ "open-token-manager.label": "Open Token Manager",
1077
+ "publish.label": "Publish",
1078
+ "publishing.label": "Publishing",
1079
+ "blueprint-editor.label": "Blueprint",
1080
+ "blueprint-editor.description": "Create a blueprint that exposes this script as a tool.",
1081
+ "blueprint-instructions.label": "Instructions",
1082
+ "blueprint-instructions.placeholder": "Describe how this tool should be used.",
1083
+ "create-blueprint.label": "Create blueprint",
1084
+ "creating.label": "Creating\u2026",
1085
+ "editor-input-mode.label": "Editor input mode",
1086
+ "editor-input-mode.description": "Choose the keybinding style for the script editor.",
1087
+ "select-editor-input-mode.placeholder": "Select editor input mode\u2026",
1088
+ "settings.editor-input-mode.default.label": "Default",
1089
+ "settings.editor-input-mode.vim.label": "Vim",
1090
+ "settings.editor-input-mode.vscode.label": "VS Code",
1091
+ "function-panel.label": "Debug Function",
1092
+ "script-test.label": "Test",
1093
+ "script-logs.label": "Logs",
1094
+ "compute.label": "Compute",
1095
+ "deployment-dialog.title": "Default Scripts",
1096
+ "deployment-dialog-scripts-found.message": "Script templates:",
1097
+ "deployment-dialog-deploy-functions-button.label_one": "Create and deploy script",
1098
+ "deployment-dialog-deploy-functions-button.label_other": "Create and deploy scripts",
1099
+ "deployment-dialog-deploy-functions-pending-button.label_one": "Deploying script",
1100
+ "deployment-dialog-deploy-functions-pending-button.label_other": "Deploying scripts",
1101
+ "deployment-dialog-skip-button.label": "Skip",
1102
+ "script-deployment-toast.label_one": "Script deployed",
1103
+ "script-deployment-toast.label_other": "Scripts deployed",
1104
+ "script-deployment-toast.description_one": "Your script has been deployed successfully.",
1105
+ "script-deployment-toast.description_other": "Your scripts have been deployed successfully.",
1106
+ "script-deployment-toast-close.label_one": "Close",
1107
+ "script-deployment-toast-close.label_other": "Close",
1108
+ "script-deployment-error-toast.label_one": "Script deployment failed",
1109
+ "script-deployment-error-toast.label_other": "Scripts deployment failed",
1110
+ "script-deployment-error-toast.description_one": "There was an error deploying your script.",
1111
+ "script-deployment-error-toast.description_other": "There was an error deploying your scripts.",
1112
+ "script-deployment-error-toast-close.label_one": "Close",
1113
+ "script-deployment-error-toast-close.label_other": "Close",
1114
+ "notebook-cell.placeholder": "Enter script",
1115
+ "notebook-cell-delete.label": "Delete cell",
1116
+ "notebook-cell-prompt-run.label": "Run",
1117
+ "notebook-cell-insert-markdown.label": "Insert Markdown",
1118
+ "notebook-cell-insert-script.label": "Insert Script",
1119
+ "notebook-cell-insert-prompt.label": "Insert Prompt",
1120
+ "notebook-cell-insert-query.label": "Insert Query",
1121
+ "notebook-markdown.placeholder": "Enter Markdown",
1122
+ "notebook-prompt.placeholder": "Enter prompt",
1123
+ "notebook-cell-insert.label": "Insert cell"
165
1124
  }
166
1125
  }
167
1126
  }
168
1127
  ];
169
1128
 
170
1129
  // src/ScriptPlugin.tsx
171
- var ScriptPlugin = Plugin.define(meta).pipe(Plugin.addModule({
172
- activatesOn: Common.ActivationEvent.SetupSettings,
173
- activate: ScriptSettings
174
- }), Plugin.addModule({
175
- activatesOn: ScriptEvents.SetupCompiler,
176
- activate: Compiler
177
- }), Common.Plugin.addTranslationsModule({
178
- translations
179
- }), Common.Plugin.addMetadataModule({
1130
+ import { ScriptEvents as ScriptEvents2 } from "#types";
1131
+ import { Notebook as Notebook2 } from "#types";
1132
+ import { ScriptOperation } from "#operations";
1133
+ import { AppGraphBuilder, BlueprintDefinition, Compiler as Compiler2, OperationHandler, ReactSurface, ScriptSettings } from "#capabilities";
1134
+ var ScriptPlugin = Plugin.define(meta8).pipe(AppPlugin.addAppGraphModule({
1135
+ activate: AppGraphBuilder
1136
+ }), AppPlugin.addBlueprintDefinitionModule({
1137
+ activate: BlueprintDefinition
1138
+ }), AppPlugin.addMetadataModule({
180
1139
  metadata: [
181
1140
  {
182
1141
  id: Script2.Script.typename,
183
1142
  metadata: {
184
- icon: "ph--code--regular",
185
- iconHue: "sky",
1143
+ icon: Annotation.IconAnnotation.get(Script2.Script).pipe(Option.getOrThrow).icon,
1144
+ iconHue: Annotation.IconAnnotation.get(Script2.Script).pipe(Option.getOrThrow).hue ?? "white",
186
1145
  // TODO(wittjosiah): Move out of metadata.
187
- loadReferences: async (script) => await Ref.Array.loadAll([
1146
+ loadReferences: async (script) => await Ref2.Array.loadAll([
188
1147
  script.source
189
1148
  ]),
190
1149
  inputSchema: ScriptOperation.ScriptProps,
191
- createObject: (props) => Effect.gen(function* () {
192
- const { object } = yield* Operation.invoke(ScriptOperation.CreateScript, props);
193
- return object;
194
- }),
195
- addToCollectionOnCreate: true
1150
+ createObject: (props, options) => Effect.gen(function* () {
1151
+ const { object } = yield* Operation2.invoke(ScriptOperation.CreateScript, props);
1152
+ return yield* Operation2.invoke(SpaceOperation.AddObject, {
1153
+ object,
1154
+ target: options.target,
1155
+ hidden: true,
1156
+ targetNodeId: options.targetNodeId
1157
+ });
1158
+ })
196
1159
  }
197
1160
  },
198
1161
  {
199
- id: Notebook_exports.Notebook.typename,
1162
+ id: Notebook2.Notebook.typename,
200
1163
  metadata: {
201
- icon: "ph--notebook--regular",
202
- iconHue: "sky",
1164
+ icon: Annotation.IconAnnotation.get(Notebook2.Notebook).pipe(Option.getOrThrow).icon,
1165
+ iconHue: Annotation.IconAnnotation.get(Notebook2.Notebook).pipe(Option.getOrThrow).hue ?? "white",
203
1166
  inputSchema: ScriptOperation.NotebookProps,
204
- createObject: (props) => Effect.sync(() => Notebook_exports.make(props)),
205
- addToCollectionOnCreate: true
1167
+ createObject: (props, options) => Effect.gen(function* () {
1168
+ const object = Notebook2.make(props);
1169
+ return yield* Operation2.invoke(SpaceOperation.AddObject, {
1170
+ object,
1171
+ target: options.target,
1172
+ hidden: true,
1173
+ targetNodeId: options.targetNodeId
1174
+ });
1175
+ })
206
1176
  }
207
1177
  }
208
1178
  ]
209
- }), Common.Plugin.addAppGraphModule({
210
- activate: AppGraphBuilder
211
- }), Common.Plugin.addSchemaModule({
1179
+ }), AppPlugin.addOperationHandlerModule({
1180
+ activate: OperationHandler
1181
+ }), AppPlugin.addSchemaModule({
212
1182
  schema: [
213
1183
  Script2.Script
214
1184
  ]
215
- }), Common.Plugin.addSurfaceModule({
1185
+ }), AppPlugin.addSurfaceModule({
216
1186
  activate: ReactSurface
217
- }), Common.Plugin.addOperationResolverModule({
218
- activate: OperationResolver
219
- }), Common.Plugin.addBlueprintDefinitionModule({
220
- activate: BlueprintDefinition
1187
+ }), AppPlugin.addTranslationsModule({
1188
+ translations
1189
+ }), Plugin.addModule({
1190
+ activatesOn: AppActivationEvents.SetupSettings,
1191
+ activate: ScriptSettings
1192
+ }), Plugin.addModule({
1193
+ activatesOn: ScriptEvents2.SetupCompiler,
1194
+ activate: Compiler2
221
1195
  }), Plugin.make);
222
1196
  export {
223
- DEPLOYMENT_DIALOG,
224
1197
  DeploymentDialog,
1198
+ FramePanel,
225
1199
  NotebookContainer,
226
1200
  NotebookMenu,
227
1201
  NotebookStack,
1202
+ QueryEditor2 as QueryEditor,
228
1203
  ScriptCapabilities,
229
1204
  ScriptContainer,
230
1205
  ScriptEvents,
@@ -232,14 +1207,16 @@ export {
232
1207
  ScriptPlugin,
233
1208
  ScriptPluginSettings,
234
1209
  ScriptProperties,
1210
+ ScriptToolbar,
235
1211
  TestContainer,
236
1212
  TestPanel,
1213
+ TypescriptEditor,
237
1214
  defaultScriptsForIntegration,
238
1215
  deployScript,
239
1216
  getAccessCredential,
240
1217
  getFunctionUrl,
241
1218
  isScriptDeployed,
242
- meta,
1219
+ meta6 as meta,
243
1220
  updateFunctionMetadata
244
1221
  };
245
1222
  //# sourceMappingURL=index.mjs.map