@dxos/plugin-script 0.8.4-main.28f8d3d → 0.8.4-main.406dc2a

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 (269) hide show
  1. package/dist/lib/browser/DeploymentDialog-65TWT6S5.mjs +13 -0
  2. package/dist/lib/browser/NotebookContainer-LVGRPFY3.mjs +683 -0
  3. package/dist/lib/browser/NotebookContainer-LVGRPFY3.mjs.map +7 -0
  4. package/dist/lib/browser/ScriptContainer-LRTRN7JW.mjs +149 -0
  5. package/dist/lib/browser/ScriptContainer-LRTRN7JW.mjs.map +7 -0
  6. package/dist/lib/browser/{app-graph-builder-IABOSTBK.mjs → app-graph-builder-DPYULSME.mjs} +8 -7
  7. package/dist/lib/browser/app-graph-builder-DPYULSME.mjs.map +7 -0
  8. package/dist/lib/browser/blueprint-definition-ET5KZ46I.mjs +28 -0
  9. package/dist/lib/browser/blueprint-definition-ET5KZ46I.mjs.map +7 -0
  10. package/dist/lib/browser/chunk-5CYLWXRH.mjs +89 -0
  11. package/dist/lib/browser/chunk-5CYLWXRH.mjs.map +7 -0
  12. package/dist/lib/browser/chunk-75LH4EUR.mjs +326 -0
  13. package/dist/lib/browser/chunk-75LH4EUR.mjs.map +7 -0
  14. package/dist/lib/browser/{chunk-MWZDJNCQ.mjs → chunk-E7DXDICD.mjs} +27 -28
  15. package/dist/lib/browser/chunk-E7DXDICD.mjs.map +7 -0
  16. package/dist/lib/browser/{chunk-QYAREHGH.mjs → chunk-EZVXV6DA.mjs} +3 -5
  17. package/dist/lib/browser/chunk-EZVXV6DA.mjs.map +7 -0
  18. package/dist/lib/browser/{chunk-OULPWKXN.mjs → chunk-I3QSGUFJ.mjs} +157 -66
  19. package/dist/lib/browser/chunk-I3QSGUFJ.mjs.map +7 -0
  20. package/dist/lib/browser/{chunk-SUOLJH55.mjs → chunk-JO2O7W6J.mjs} +71 -50
  21. package/dist/lib/browser/chunk-JO2O7W6J.mjs.map +7 -0
  22. package/dist/lib/browser/chunk-N6M34EUC.mjs +112 -0
  23. package/dist/lib/browser/chunk-N6M34EUC.mjs.map +7 -0
  24. package/dist/lib/browser/{chunk-OAVS36Q3.mjs → chunk-NM4WQS4F.mjs} +14 -14
  25. package/dist/lib/browser/chunk-NM4WQS4F.mjs.map +7 -0
  26. package/dist/lib/browser/{chunk-5TVBECWH.mjs → chunk-OKXN2N7M.mjs} +2 -2
  27. package/dist/lib/browser/chunk-ST3ACVUC.mjs +88 -0
  28. package/dist/lib/browser/chunk-ST3ACVUC.mjs.map +7 -0
  29. package/dist/lib/browser/{compiler-RIWQVBPX.mjs → compiler-G2N2CG63.mjs} +24 -11
  30. package/dist/lib/browser/{compiler-RIWQVBPX.mjs.map → compiler-G2N2CG63.mjs.map} +2 -2
  31. package/dist/lib/browser/index.mjs +113 -37
  32. package/dist/lib/browser/index.mjs.map +3 -3
  33. package/dist/lib/browser/{intent-resolver-SAL2TM7U.mjs → intent-resolver-JLU7DVLQ.mjs} +31 -15
  34. package/dist/lib/browser/intent-resolver-JLU7DVLQ.mjs.map +7 -0
  35. package/dist/lib/browser/meta.json +1 -1
  36. package/dist/lib/browser/{react-surface-E3SXU6ON.mjs → react-surface-76SDTUYG.mjs} +38 -15
  37. package/dist/lib/browser/react-surface-76SDTUYG.mjs.map +7 -0
  38. package/dist/lib/browser/{settings-KCTBK5TY.mjs → settings-ERFKVNUK.mjs} +9 -8
  39. package/dist/lib/browser/settings-ERFKVNUK.mjs.map +7 -0
  40. package/dist/lib/browser/templates/index.mjs +1 -1
  41. package/dist/lib/browser/types/index.mjs +7 -4
  42. package/dist/lib/node-esm/{DeploymentDialog-O2XZVRLU.mjs → DeploymentDialog-I63ZC2HH.mjs} +6 -5
  43. package/dist/lib/node-esm/NotebookContainer-QY5NJGJI.mjs +684 -0
  44. package/dist/lib/node-esm/NotebookContainer-QY5NJGJI.mjs.map +7 -0
  45. package/dist/lib/node-esm/ScriptContainer-SVXCSLNH.mjs +150 -0
  46. package/dist/lib/node-esm/ScriptContainer-SVXCSLNH.mjs.map +7 -0
  47. package/dist/lib/node-esm/{app-graph-builder-CQTTAYHP.mjs → app-graph-builder-UXJGHXSL.mjs} +8 -7
  48. package/dist/lib/node-esm/app-graph-builder-UXJGHXSL.mjs.map +7 -0
  49. package/dist/lib/node-esm/blueprint-definition-AIYFOT7Q.mjs +30 -0
  50. package/dist/lib/node-esm/blueprint-definition-AIYFOT7Q.mjs.map +7 -0
  51. package/dist/lib/node-esm/chunk-2GVTWESW.mjs +90 -0
  52. package/dist/lib/node-esm/chunk-2GVTWESW.mjs.map +7 -0
  53. package/dist/lib/node-esm/chunk-4X375PGY.mjs +90 -0
  54. package/dist/lib/node-esm/chunk-4X375PGY.mjs.map +7 -0
  55. package/dist/lib/node-esm/chunk-67OVZHI3.mjs +327 -0
  56. package/dist/lib/node-esm/chunk-67OVZHI3.mjs.map +7 -0
  57. package/dist/lib/node-esm/{chunk-IO6T72KY.mjs → chunk-C2ORIPKH.mjs} +14 -14
  58. package/dist/lib/node-esm/chunk-C2ORIPKH.mjs.map +7 -0
  59. package/dist/lib/node-esm/{chunk-35M3CHYE.mjs → chunk-NUXZQQ6P.mjs} +2 -2
  60. package/dist/lib/node-esm/{chunk-AHXJ6NQU.mjs → chunk-OG2SIKHE.mjs} +3 -5
  61. package/dist/lib/node-esm/chunk-OG2SIKHE.mjs.map +7 -0
  62. package/dist/lib/node-esm/{chunk-6WMFL3JL.mjs → chunk-SMFPSKQT.mjs} +157 -66
  63. package/dist/lib/node-esm/chunk-SMFPSKQT.mjs.map +7 -0
  64. package/dist/lib/node-esm/chunk-VRSDE4CI.mjs +114 -0
  65. package/dist/lib/node-esm/chunk-VRSDE4CI.mjs.map +7 -0
  66. package/dist/lib/node-esm/{chunk-7L4JDSXJ.mjs → chunk-VZAFGLD7.mjs} +27 -28
  67. package/dist/lib/node-esm/chunk-VZAFGLD7.mjs.map +7 -0
  68. package/dist/lib/node-esm/{chunk-PACUN7RS.mjs → chunk-YW36TZ7K.mjs} +71 -50
  69. package/dist/lib/node-esm/chunk-YW36TZ7K.mjs.map +7 -0
  70. package/dist/lib/node-esm/{compiler-S52P5P3F.mjs → compiler-PLDAZ5GJ.mjs} +24 -11
  71. package/dist/lib/node-esm/{compiler-S52P5P3F.mjs.map → compiler-PLDAZ5GJ.mjs.map} +2 -2
  72. package/dist/lib/node-esm/index.mjs +113 -37
  73. package/dist/lib/node-esm/index.mjs.map +3 -3
  74. package/dist/lib/node-esm/{intent-resolver-GO53JOPL.mjs → intent-resolver-SFGTIFOG.mjs} +31 -15
  75. package/dist/lib/node-esm/intent-resolver-SFGTIFOG.mjs.map +7 -0
  76. package/dist/lib/node-esm/meta.json +1 -1
  77. package/dist/lib/node-esm/{react-surface-W3NRCS5O.mjs → react-surface-SHEBNW4R.mjs} +38 -15
  78. package/dist/lib/node-esm/react-surface-SHEBNW4R.mjs.map +7 -0
  79. package/dist/lib/node-esm/{settings-DXZ334A3.mjs → settings-5TYXQ42N.mjs} +9 -8
  80. package/dist/lib/node-esm/settings-5TYXQ42N.mjs.map +7 -0
  81. package/dist/lib/node-esm/templates/index.mjs +1 -1
  82. package/dist/lib/node-esm/types/index.mjs +7 -4
  83. package/dist/types/src/ScriptPlugin.d.ts +1 -1
  84. package/dist/types/src/ScriptPlugin.d.ts.map +1 -1
  85. package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -1
  86. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  87. package/dist/types/src/capabilities/blueprint-definition.d.ts +5 -0
  88. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -0
  89. package/dist/types/src/capabilities/compiler.d.ts +1 -1
  90. package/dist/types/src/capabilities/index.d.ts +6 -5
  91. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  92. package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
  93. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  94. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  95. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  96. package/dist/types/src/capabilities/settings.d.ts +1 -1
  97. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.d.ts +2 -2
  98. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.d.ts.map +1 -1
  99. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts +246 -13
  100. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts.map +1 -1
  101. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts.map +1 -1
  102. package/dist/types/src/components/NotebookContainer.d.ts +10 -0
  103. package/dist/types/src/components/NotebookContainer.d.ts.map +1 -0
  104. package/dist/types/src/components/NotebookContainer.stories.d.ts +248 -0
  105. package/dist/types/src/components/NotebookContainer.stories.d.ts.map +1 -0
  106. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts +14 -0
  107. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts.map +1 -0
  108. package/dist/types/src/components/NotebookStack/NotebookMenu.d.ts +9 -0
  109. package/dist/types/src/components/NotebookStack/NotebookMenu.d.ts.map +1 -0
  110. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts +14 -0
  111. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts.map +1 -0
  112. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts +248 -0
  113. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts.map +1 -0
  114. package/dist/types/src/components/NotebookStack/index.d.ts +3 -0
  115. package/dist/types/src/components/NotebookStack/index.d.ts.map +1 -0
  116. package/dist/types/src/components/ScriptContainer.d.ts +2 -2
  117. package/dist/types/src/components/ScriptContainer.d.ts.map +1 -1
  118. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts.map +1 -1
  119. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts +245 -10
  120. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts.map +1 -1
  121. package/dist/types/src/components/Settings/ScriptObjectSettings.d.ts.map +1 -1
  122. package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts +2 -2
  123. package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts.map +1 -1
  124. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts +4 -2
  125. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts.map +1 -1
  126. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts +11 -4
  127. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts.map +1 -1
  128. package/dist/types/src/components/index.d.ts +3 -4
  129. package/dist/types/src/components/index.d.ts.map +1 -1
  130. package/dist/types/src/events.d.ts.map +1 -1
  131. package/dist/types/src/hooks/deploy.d.ts +12 -11
  132. package/dist/types/src/hooks/deploy.d.ts.map +1 -1
  133. package/dist/types/src/hooks/template.d.ts.map +1 -1
  134. package/dist/types/src/index.d.ts +1 -0
  135. package/dist/types/src/index.d.ts.map +1 -1
  136. package/dist/types/src/meta.d.ts +0 -1
  137. package/dist/types/src/meta.d.ts.map +1 -1
  138. package/dist/types/src/notebook/eval.d.ts +13 -0
  139. package/dist/types/src/notebook/eval.d.ts.map +1 -0
  140. package/dist/types/src/notebook/index.d.ts +2 -0
  141. package/dist/types/src/notebook/index.d.ts.map +1 -0
  142. package/dist/types/src/notebook/notebook.d.ts +35 -0
  143. package/dist/types/src/notebook/notebook.d.ts.map +1 -0
  144. package/dist/types/src/notebook/notebook.test.d.ts +2 -0
  145. package/dist/types/src/notebook/notebook.test.d.ts.map +1 -0
  146. package/dist/types/src/notebook/vfs-parser.d.ts +74 -0
  147. package/dist/types/src/notebook/vfs-parser.d.ts.map +1 -0
  148. package/dist/types/src/notebook/vfs-parser.test.d.ts +2 -0
  149. package/dist/types/src/notebook/vfs-parser.test.d.ts.map +1 -0
  150. package/dist/types/src/templates/chess.d.ts.map +1 -1
  151. package/dist/types/src/templates/data-generator.d.ts.map +1 -1
  152. package/dist/types/src/templates/discord.d.ts.map +1 -1
  153. package/dist/types/src/templates/forex-effect.d.ts.map +1 -1
  154. package/dist/types/src/templates/forex.d.ts.map +1 -1
  155. package/dist/types/src/templates/gmail.d.ts.map +1 -1
  156. package/dist/types/src/templates/index.d.ts +43 -1
  157. package/dist/types/src/templates/index.d.ts.map +1 -1
  158. package/dist/types/src/templates/{echo.d.ts → ping.d.ts} +1 -1
  159. package/dist/types/src/templates/ping.d.ts.map +1 -0
  160. package/dist/types/src/testing/data.d.ts +19 -0
  161. package/dist/types/src/testing/data.d.ts.map +1 -0
  162. package/dist/types/src/testing/index.d.ts +2 -0
  163. package/dist/types/src/testing/index.d.ts.map +1 -0
  164. package/dist/types/src/translations.d.ts +28 -2
  165. package/dist/types/src/translations.d.ts.map +1 -1
  166. package/dist/types/src/types/actions.d.ts +66 -0
  167. package/dist/types/src/types/actions.d.ts.map +1 -0
  168. package/dist/types/src/types/index.d.ts +1 -0
  169. package/dist/types/src/types/index.d.ts.map +1 -1
  170. package/dist/types/src/types/schema.d.ts +54 -31
  171. package/dist/types/src/types/schema.d.ts.map +1 -1
  172. package/dist/types/src/util/deploy.d.ts +3 -3
  173. package/dist/types/src/util/deploy.d.ts.map +1 -1
  174. package/dist/types/src/util/functions.d.ts +5 -2
  175. package/dist/types/src/util/functions.d.ts.map +1 -1
  176. package/dist/types/tsconfig.tsbuildinfo +1 -1
  177. package/package.json +72 -68
  178. package/src/ScriptPlugin.tsx +99 -64
  179. package/src/capabilities/app-graph-builder.ts +4 -3
  180. package/src/capabilities/artifact-definition.ts +1 -1
  181. package/src/capabilities/blueprint-definition.ts +30 -0
  182. package/src/capabilities/index.ts +1 -0
  183. package/src/capabilities/intent-resolver.ts +14 -4
  184. package/src/capabilities/react-surface.tsx +17 -5
  185. package/src/capabilities/settings.ts +3 -3
  186. package/src/components/DeploymentDialog/DeploymentDialog.stories.tsx +34 -20
  187. package/src/components/DeploymentDialog/DeploymentDialog.tsx +12 -18
  188. package/src/components/FrameContainer/FrameContainer.tsx +3 -2
  189. package/src/components/NotebookContainer.stories.tsx +32 -0
  190. package/src/components/NotebookContainer.tsx +124 -0
  191. package/src/components/NotebookStack/NotebookCell.tsx +217 -0
  192. package/src/components/NotebookStack/NotebookMenu.tsx +47 -0
  193. package/src/components/NotebookStack/NotebookStack.stories.tsx +32 -0
  194. package/src/components/NotebookStack/NotebookStack.tsx +79 -0
  195. package/src/components/NotebookStack/index.ts +6 -0
  196. package/src/components/ScriptContainer.tsx +2 -2
  197. package/src/components/ScriptToolbar/ScriptToolbar.stories.tsx +34 -18
  198. package/src/components/ScriptToolbar/ScriptToolbar.tsx +29 -22
  199. package/src/components/Settings/ScriptObjectSettings.tsx +109 -29
  200. package/src/components/Settings/ScriptPluginSettings.tsx +37 -47
  201. package/src/components/TestPanel/TestPanel.tsx +6 -6
  202. package/src/components/TypescriptEditor/TypescriptEditor.stories.tsx +74 -27
  203. package/src/components/TypescriptEditor/TypescriptEditor.tsx +30 -24
  204. package/src/components/index.ts +3 -0
  205. package/src/events.ts +2 -2
  206. package/src/hooks/deploy.ts +17 -18
  207. package/src/hooks/format.ts +2 -2
  208. package/src/hooks/template.ts +4 -3
  209. package/src/hooks/useCreateAndDeployScriptTemplates.ts +3 -3
  210. package/src/index.ts +1 -0
  211. package/src/meta.ts +2 -4
  212. package/src/notebook/eval.ts +105 -0
  213. package/src/notebook/index.ts +5 -0
  214. package/src/notebook/notebook.test.ts +70 -0
  215. package/src/notebook/notebook.ts +183 -0
  216. package/src/notebook/vfs-parser.test.ts +149 -0
  217. package/src/notebook/vfs-parser.ts +451 -0
  218. package/src/templates/chess.ts +2 -0
  219. package/src/templates/data-generator.ts +2 -0
  220. package/src/templates/discord.ts +11 -3
  221. package/src/templates/forex-effect.ts +6 -2
  222. package/src/templates/forex.ts +2 -0
  223. package/src/templates/gmail.ts +31 -60
  224. package/src/templates/index.ts +6 -6
  225. package/src/testing/data.ts +47 -0
  226. package/src/testing/index.ts +5 -0
  227. package/src/translations.ts +31 -4
  228. package/src/types/actions.ts +53 -0
  229. package/src/types/index.ts +1 -0
  230. package/src/types/schema.ts +30 -19
  231. package/src/util/deploy.ts +20 -33
  232. package/src/util/functions.ts +35 -6
  233. package/dist/lib/browser/DeploymentDialog-C3XH2Z56.mjs +0 -12
  234. package/dist/lib/browser/ScriptContainer-FUBR4OZE.mjs +0 -263
  235. package/dist/lib/browser/ScriptContainer-FUBR4OZE.mjs.map +0 -7
  236. package/dist/lib/browser/app-graph-builder-IABOSTBK.mjs.map +0 -7
  237. package/dist/lib/browser/chunk-G4A2MGAL.mjs +0 -88
  238. package/dist/lib/browser/chunk-G4A2MGAL.mjs.map +0 -7
  239. package/dist/lib/browser/chunk-IS4OG2UW.mjs +0 -39
  240. package/dist/lib/browser/chunk-IS4OG2UW.mjs.map +0 -7
  241. package/dist/lib/browser/chunk-MWZDJNCQ.mjs.map +0 -7
  242. package/dist/lib/browser/chunk-OAVS36Q3.mjs.map +0 -7
  243. package/dist/lib/browser/chunk-OULPWKXN.mjs.map +0 -7
  244. package/dist/lib/browser/chunk-QYAREHGH.mjs.map +0 -7
  245. package/dist/lib/browser/chunk-SUOLJH55.mjs.map +0 -7
  246. package/dist/lib/browser/intent-resolver-SAL2TM7U.mjs.map +0 -7
  247. package/dist/lib/browser/react-surface-E3SXU6ON.mjs.map +0 -7
  248. package/dist/lib/browser/settings-KCTBK5TY.mjs.map +0 -7
  249. package/dist/lib/node-esm/ScriptContainer-VJ75TM24.mjs +0 -264
  250. package/dist/lib/node-esm/ScriptContainer-VJ75TM24.mjs.map +0 -7
  251. package/dist/lib/node-esm/app-graph-builder-CQTTAYHP.mjs.map +0 -7
  252. package/dist/lib/node-esm/chunk-3BBEM2U7.mjs +0 -90
  253. package/dist/lib/node-esm/chunk-3BBEM2U7.mjs.map +0 -7
  254. package/dist/lib/node-esm/chunk-6WMFL3JL.mjs.map +0 -7
  255. package/dist/lib/node-esm/chunk-7L4JDSXJ.mjs.map +0 -7
  256. package/dist/lib/node-esm/chunk-AHXJ6NQU.mjs.map +0 -7
  257. package/dist/lib/node-esm/chunk-IO6T72KY.mjs.map +0 -7
  258. package/dist/lib/node-esm/chunk-JIPFLBYA.mjs +0 -40
  259. package/dist/lib/node-esm/chunk-JIPFLBYA.mjs.map +0 -7
  260. package/dist/lib/node-esm/chunk-PACUN7RS.mjs.map +0 -7
  261. package/dist/lib/node-esm/intent-resolver-GO53JOPL.mjs.map +0 -7
  262. package/dist/lib/node-esm/react-surface-W3NRCS5O.mjs.map +0 -7
  263. package/dist/lib/node-esm/settings-DXZ334A3.mjs.map +0 -7
  264. package/dist/types/src/templates/echo.d.ts.map +0 -1
  265. /package/dist/lib/browser/{DeploymentDialog-C3XH2Z56.mjs.map → DeploymentDialog-65TWT6S5.mjs.map} +0 -0
  266. /package/dist/lib/browser/{chunk-5TVBECWH.mjs.map → chunk-OKXN2N7M.mjs.map} +0 -0
  267. /package/dist/lib/node-esm/{DeploymentDialog-O2XZVRLU.mjs.map → DeploymentDialog-I63ZC2HH.mjs.map} +0 -0
  268. /package/dist/lib/node-esm/{chunk-35M3CHYE.mjs.map → chunk-NUXZQQ6P.mjs.map} +0 -0
  269. /package/src/templates/{echo.ts → ping.ts} +0 -0
@@ -0,0 +1,90 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ templates
4
+ } from "./chunk-2GVTWESW.mjs";
5
+ import {
6
+ meta
7
+ } from "./chunk-OG2SIKHE.mjs";
8
+
9
+ // src/types/actions.ts
10
+ import * as Schema2 from "effect/Schema";
11
+ import { SpaceSchema } from "@dxos/client/echo";
12
+ import { ScriptType } from "@dxos/functions";
13
+
14
+ // src/types/schema.ts
15
+ import * as Schema from "effect/Schema";
16
+ import { Obj, Type } from "@dxos/echo";
17
+ import { LabelAnnotation } from "@dxos/echo/internal";
18
+ import { Assistant } from "@dxos/plugin-assistant/types";
19
+ import { EditorInputMode } from "@dxos/react-ui-editor";
20
+ import { DataType } from "@dxos/schema";
21
+ (function(Notebook2) {
22
+ Notebook2.Cell = Schema.Struct({
23
+ id: Schema.String,
24
+ type: Schema.String,
25
+ script: Schema.optional(Type.Ref(DataType.Text)),
26
+ view: Schema.optional(Type.Ref(DataType.View)),
27
+ chat: Schema.optional(Type.Ref(Assistant.Chat))
28
+ }).pipe(Schema.mutable);
29
+ Notebook2.Notebook = Schema.Struct({
30
+ name: Schema.optional(Schema.String),
31
+ cells: Schema.mutable(Schema.Array(Notebook2.Cell))
32
+ }).pipe(Type.Obj({
33
+ typename: "dxos.org/type/Notebook",
34
+ version: "0.1.0"
35
+ }), LabelAnnotation.set([
36
+ "name"
37
+ ]));
38
+ Notebook2.make = (props = {
39
+ cells: []
40
+ }) => Obj.make(Notebook2.Notebook, props);
41
+ })(Notebook || (Notebook = {}));
42
+ var ScriptSettings = Schema.mutable(Schema.Struct({
43
+ editorInputMode: EditorInputMode
44
+ }));
45
+ var Notebook;
46
+
47
+ // src/types/actions.ts
48
+ (function(ScriptAction2) {
49
+ ScriptAction2.ScriptProps = Schema2.Struct({
50
+ name: Schema2.optional(Schema2.String),
51
+ // TODO(wittjosiah): Placeholder annotation?
52
+ gistUrl: Schema2.optional(Schema2.String.annotations({
53
+ title: "Import from Gist (url)"
54
+ })),
55
+ initialTemplateId: Schema2.Literal(...templates.map(({ id }) => id)).pipe(Schema2.annotations({
56
+ title: "Template"
57
+ }), Schema2.optional)
58
+ });
59
+ class CreateScript extends Schema2.TaggedClass()(`${meta.id}/action/create-script`, {
60
+ input: Schema2.extend(ScriptAction2.ScriptProps, Schema2.Struct({
61
+ space: SpaceSchema
62
+ })),
63
+ output: Schema2.Struct({
64
+ object: ScriptType
65
+ })
66
+ }) {
67
+ }
68
+ ScriptAction2.CreateScript = CreateScript;
69
+ ScriptAction2.NotebookProps = Schema2.Struct({
70
+ name: Schema2.optional(Schema2.String)
71
+ });
72
+ class CreateNotebook extends Schema2.TaggedClass()(`${meta.id}/action/create-notebook`, {
73
+ input: Schema2.extend(ScriptAction2.NotebookProps, Schema2.Struct({
74
+ space: SpaceSchema
75
+ })),
76
+ output: Schema2.Struct({
77
+ object: Notebook.Notebook
78
+ })
79
+ }) {
80
+ }
81
+ ScriptAction2.CreateNotebook = CreateNotebook;
82
+ })(ScriptAction || (ScriptAction = {}));
83
+ var ScriptAction;
84
+
85
+ export {
86
+ ScriptSettings,
87
+ Notebook,
88
+ ScriptAction
89
+ };
90
+ //# sourceMappingURL=chunk-4X375PGY.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/types/actions.ts", "../../../src/types/schema.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { SpaceSchema } from '@dxos/client/echo';\nimport { ScriptType } from '@dxos/functions';\n\nimport { meta } from '../meta';\nimport { templates } from '../templates';\n\nimport { Notebook } from './schema';\n\nexport namespace ScriptAction {\n export const ScriptProps = Schema.Struct({\n name: Schema.optional(Schema.String),\n // TODO(wittjosiah): Placeholder annotation?\n gistUrl: Schema.optional(Schema.String.annotations({ title: 'Import from Gist (url)' })),\n initialTemplateId: Schema.Literal(...templates.map(({ id }) => id)).pipe(\n Schema.annotations({ title: 'Template' }),\n Schema.optional,\n ),\n });\n\n export class CreateScript extends Schema.TaggedClass<CreateScript>()(`${meta.id}/action/create-script`, {\n input: Schema.extend(\n ScriptProps,\n Schema.Struct({\n space: SpaceSchema,\n }),\n ),\n output: Schema.Struct({\n object: ScriptType,\n }),\n }) {}\n\n export const NotebookProps = Schema.Struct({\n name: Schema.optional(Schema.String),\n });\n\n export class CreateNotebook extends Schema.TaggedClass<CreateNotebook>()(`${meta.id}/action/create-notebook`, {\n input: Schema.extend(\n NotebookProps,\n Schema.Struct({\n space: SpaceSchema,\n }),\n ),\n output: Schema.Struct({\n object: Notebook.Notebook,\n }),\n }) {}\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Obj, Type } from '@dxos/echo';\nimport { LabelAnnotation } from '@dxos/echo/internal';\nimport { Assistant } from '@dxos/plugin-assistant/types';\nimport { EditorInputMode } from '@dxos/react-ui-editor';\nimport { DataType } from '@dxos/schema';\n\nexport namespace Notebook {\n export type CellType = 'markdown' | 'script' | 'query' | 'prompt' | 'view';\n\n export const Cell = Schema.Struct({\n id: Schema.String,\n type: Schema.String,\n script: Schema.optional(Type.Ref(DataType.Text)),\n view: Schema.optional(Type.Ref(DataType.View)),\n chat: Schema.optional(Type.Ref(Assistant.Chat)),\n }).pipe(Schema.mutable);\n\n export type Cell = Schema.Schema.Type<typeof Cell>;\n\n export const Notebook = Schema.Struct({\n name: Schema.optional(Schema.String),\n cells: Schema.mutable(Schema.Array(Cell)),\n }).pipe(\n Type.Obj({\n typename: 'dxos.org/type/Notebook',\n version: '0.1.0',\n }),\n LabelAnnotation.set(['name']),\n );\n\n export type Notebook = Schema.Schema.Type<typeof Notebook>;\n\n export const make = (props: Obj.MakeProps<typeof Notebook> = { cells: [] }) => Obj.make(Notebook, props);\n}\n\nexport const ScriptSettings = Schema.mutable(\n Schema.Struct({\n editorInputMode: EditorInputMode,\n }),\n);\n\nexport type ScriptSettings = Schema.Schema.Type<typeof ScriptSettings>;\n"],
5
+ "mappings": ";;;;;;;;;AAIA,YAAYA,aAAY;AAExB,SAASC,mBAAmB;AAC5B,SAASC,kBAAkB;;;ACH3B,YAAYC,YAAY;AAExB,SAASC,KAAKC,YAAY;AAC1B,SAASC,uBAAuB;AAChC,SAASC,iBAAiB;AAC1B,SAASC,uBAAuB;AAChC,SAASC,gBAAgB;UAERC,WAAAA;YAGFC,OAAcC,cAAO;IAChCC,IAAWC;IACXC,MAAaD;IACbE,QAAeC,gBAASC,KAAKC,IAAIC,SAASC,IAAI,CAAA;IAC9CC,MAAaL,gBAASC,KAAKC,IAAIC,SAASG,IAAI,CAAA;IAC5CC,MAAaP,gBAASC,KAAKC,IAAIM,UAAUC,IAAI,CAAA;EAC/C,CAAA,EAAGC,KAAYC,cAAO;YAITlB,WAAkBE,cAAO;IACpCiB,MAAaZ,gBAAgBH,aAAM;IACnCgB,OAAcF,eAAeG,aAAKrB,UAACC,IAAAA,CAAAA;EACrC,CAAA,EAAGgB,KACDT,KAAKc,IAAI;IACPC,UAAU;IACVC,SAAS;EACX,CAAA,GACAC,gBAAgBC,IAAI;IAAC;GAAO,CAAA;YAKjBC,OAAO,CAACC,QAAwC;IAAER,OAAO,CAAA;EAAG,MAAME,IAAIK,KAAI3B,UAACA,UAAU4B,KAAAA;AACpG,GA3BiB5B,aAAAA,WAAAA,CAAAA,EAAAA;AA6BV,IAAM6B,iBAAwBX,eAC5BhB,cAAO;EACZ4B,iBAAiBC;AACnB,CAAA,CAAA;;;;UD9BeC,eAAAA;gBACFC,cAAqBC,eAAO;IACvCC,MAAaC,iBAAgBC,cAAM;;IAEnCC,SAAgBF,iBAAgBC,eAAOE,YAAY;MAAEC,OAAO;IAAyB,CAAA,CAAA;IACrFC,mBAA0BC,gBAAO,GAAIC,UAAUC,IAAI,CAAC,EAAEC,GAAE,MAAOA,EAAAA,CAAAA,EAAKC,KAC3DP,oBAAY;MAAEC,OAAO;IAAW,CAAA,GAChCJ,gBAAQ;EAEnB,CAAA;EAEO,MAAMW,qBAA4BC,oBAAW,EAAiB,GAAGC,KAAKJ,EAAE,yBAAyB;IACtGK,OAAcC,eAAMnB,cAClBC,aACOC,eAAO;MACZkB,OAAOC;IACT,CAAA,CAAA;IAEFC,QAAepB,eAAO;MACpBqB,QAAQC;IACV,CAAA;EACF,CAAA,EAAA;EAAI;gBAVST,eAAAA;gBAYAU,gBAAuBvB,eAAO;IACzCC,MAAaC,iBAAgBC,cAAM;EACrC,CAAA;EAEO,MAAMqB,uBAA8BV,oBAAW,EAAmB,GAAGC,KAAKJ,EAAE,2BAA2B;IAC5GK,OAAcC,eAAMnB,cAClByB,eACOvB,eAAO;MACZkB,OAAOC;IACT,CAAA,CAAA;IAEFC,QAAepB,eAAO;MACpBqB,QAAQI,SAASA;IACnB,CAAA;EACF,CAAA,EAAA;EAAI;gBAVSD,iBAAAA;AAWf,GAtCiB1B,iBAAAA,eAAAA,CAAAA,EAAAA;;",
6
+ "names": ["Schema", "SpaceSchema", "ScriptType", "Schema", "Obj", "Type", "LabelAnnotation", "Assistant", "EditorInputMode", "DataType", "Notebook", "Cell", "Struct", "id", "String", "type", "script", "optional", "Type", "Ref", "DataType", "Text", "view", "View", "chat", "Assistant", "Chat", "pipe", "mutable", "name", "cells", "Array", "Obj", "typename", "version", "LabelAnnotation", "set", "make", "props", "ScriptSettings", "editorInputMode", "EditorInputMode", "ScriptAction", "ScriptProps", "Struct", "name", "optional", "String", "gistUrl", "annotations", "title", "initialTemplateId", "Literal", "templates", "map", "id", "pipe", "CreateScript", "TaggedClass", "meta", "input", "extend", "space", "SpaceSchema", "output", "object", "ScriptType", "NotebookProps", "CreateNotebook", "Notebook"]
7
+ }
@@ -0,0 +1,327 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ TypescriptEditor
4
+ } from "./chunk-VRSDE4CI.mjs";
5
+ import {
6
+ meta
7
+ } from "./chunk-OG2SIKHE.mjs";
8
+
9
+ // src/components/NotebookStack/NotebookMenu.tsx
10
+ import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
11
+ import React from "react";
12
+ import { DropdownMenu, useTranslation } from "@dxos/react-ui";
13
+ var NotebookMenu = ({ cell, onCellInsert, onCellDelete }) => {
14
+ var _effect = _useSignals();
15
+ try {
16
+ const { t } = useTranslation(meta.id);
17
+ return /* @__PURE__ */ React.createElement(DropdownMenu.Portal, null, /* @__PURE__ */ React.createElement(DropdownMenu.Content, null, /* @__PURE__ */ React.createElement(DropdownMenu.Viewport, null, /* @__PURE__ */ React.createElement(DropdownMenu.Item, {
18
+ onClick: () => onCellInsert?.("script", cell?.id)
19
+ }, t("notebook cell insert script label")), /* @__PURE__ */ React.createElement(DropdownMenu.Item, {
20
+ onClick: () => onCellInsert?.("prompt", cell?.id)
21
+ }, t("notebook cell insert prompt label")), /* @__PURE__ */ React.createElement(DropdownMenu.Item, {
22
+ onClick: () => onCellInsert?.("query", cell?.id)
23
+ }, t("notebook cell insert query label")), /* @__PURE__ */ React.createElement(DropdownMenu.Item, {
24
+ onClick: () => onCellInsert?.("markdown", cell?.id)
25
+ }, t("notebook cell insert markdown label")), cell && onCellDelete && /* @__PURE__ */ React.createElement(DropdownMenu.Item, {
26
+ onClick: () => onCellDelete?.(cell.id)
27
+ }, t("notebook cell delete label"))), /* @__PURE__ */ React.createElement(DropdownMenu.Arrow, null)));
28
+ } finally {
29
+ _effect.f();
30
+ }
31
+ };
32
+
33
+ // src/components/NotebookStack/NotebookStack.tsx
34
+ import { useSignals as _useSignals3 } from "@preact-signals/safe-react/tracking";
35
+ import React3 from "react";
36
+ import { DropdownMenu as DropdownMenu2, IconButton, useTranslation as useTranslation3 } from "@dxos/react-ui";
37
+ import { Stack, StackItem } from "@dxos/react-ui-stack";
38
+
39
+ // src/components/NotebookStack/NotebookCell.tsx
40
+ import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
41
+ import React2, { useCallback, useMemo } from "react";
42
+ import { Surface } from "@dxos/app-framework";
43
+ import { Query, Ref } from "@dxos/echo";
44
+ import { QueryBuilder } from "@dxos/echo-query";
45
+ import { invariant } from "@dxos/invariant";
46
+ import { useChatProcessor, useChatServices } from "@dxos/plugin-assistant";
47
+ import { Chat } from "@dxos/plugin-assistant";
48
+ import { Graph } from "@dxos/plugin-explorer/types";
49
+ import { createDocAccessor } from "@dxos/react-client/echo";
50
+ import { useAsyncEffect, useThemeContext, useTranslation as useTranslation2 } from "@dxos/react-ui";
51
+ import { QueryEditor } from "@dxos/react-ui-components";
52
+ import { Editor, createBasicExtensions, createDataExtensions, createMarkdownExtensions, createThemeExtensions, decorateMarkdown } from "@dxos/react-ui-editor";
53
+ import { mx } from "@dxos/react-ui-theme";
54
+ import { isNonNullable } from "@dxos/util";
55
+ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-script/src/components/NotebookStack/NotebookCell.tsx";
56
+ var editorStyles = "p-2 pis-3";
57
+ var valueStyles = "p-1 pis-3";
58
+ var NotebookCell = ({ space, graph, dragging, cell, env }) => {
59
+ var _effect = _useSignals2();
60
+ try {
61
+ const { t } = useTranslation2(meta.id);
62
+ const extensions = useMemo(() => {
63
+ return cell.script?.target ? [
64
+ createDataExtensions({
65
+ id: cell.id,
66
+ text: createDocAccessor(cell.script.target, [
67
+ "content"
68
+ ])
69
+ })
70
+ ].filter(isNonNullable) : [];
71
+ }, [
72
+ cell.script?.target
73
+ ]);
74
+ const view = cell.view?.target;
75
+ const builder = useMemo(() => new QueryBuilder(), []);
76
+ useAsyncEffect(async () => {
77
+ if (!space || !cell.script?.target) {
78
+ return;
79
+ }
80
+ if (cell.type === "query") {
81
+ const query = cell.script.target.content;
82
+ const filter = builder.build(query);
83
+ if (filter) {
84
+ const ast = Query.select(filter).ast;
85
+ const view2 = cell.view?.target;
86
+ if (!view2) {
87
+ const graph2 = Graph.make({
88
+ query: {
89
+ ast
90
+ }
91
+ });
92
+ const { view: view3 } = await Graph.makeView({
93
+ space,
94
+ presentation: graph2
95
+ });
96
+ cell.view = Ref.make(view3);
97
+ } else {
98
+ view2.query.ast = ast;
99
+ }
100
+ }
101
+ }
102
+ }, [
103
+ space,
104
+ builder,
105
+ cell,
106
+ cell.script?.target?.content
107
+ ]);
108
+ const handleQueryChange = useCallback((value) => {
109
+ invariant(cell.script?.target, void 0, {
110
+ F: __dxlog_file,
111
+ L: 91,
112
+ S: void 0,
113
+ A: [
114
+ "cell.script?.target",
115
+ ""
116
+ ]
117
+ });
118
+ cell.script.target.content = value;
119
+ }, [
120
+ cell
121
+ ]);
122
+ const services = useChatServices({
123
+ space,
124
+ chat: cell.chat?.target
125
+ });
126
+ const processor = useChatProcessor({
127
+ chat: cell.chat?.target,
128
+ services
129
+ });
130
+ switch (cell.type) {
131
+ case "markdown":
132
+ if (!cell.script?.target) {
133
+ return null;
134
+ }
135
+ return /* @__PURE__ */ React2.createElement(MarkdownEditor, {
136
+ id: cell.id,
137
+ classNames: editorStyles,
138
+ initialValue: cell.script.target.content,
139
+ extensions
140
+ });
141
+ case "script":
142
+ if (!cell.script?.target) {
143
+ return null;
144
+ }
145
+ return /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement(TypescriptEditor, {
146
+ id: cell.id,
147
+ role: "section",
148
+ classNames: editorStyles,
149
+ initialValue: cell.script.target.content,
150
+ extensions,
151
+ env,
152
+ options: {
153
+ placeholder: t("notebook cell placeholder"),
154
+ highlightActiveLine: false,
155
+ lineNumbers: false
156
+ }
157
+ }), /* @__PURE__ */ React2.createElement(NotebookCellValue, {
158
+ cell,
159
+ graph
160
+ }));
161
+ case "query":
162
+ if (!cell.script?.target) {
163
+ return null;
164
+ }
165
+ return /* @__PURE__ */ React2.createElement("div", {
166
+ className: mx("bs-full overflow-hidden grid", view && !dragging && "grid-rows-[min-content_1fr]")
167
+ }, /* @__PURE__ */ React2.createElement(QueryEditor, {
168
+ id: cell.id,
169
+ classNames: [
170
+ editorStyles,
171
+ "border-b border-subduedSeparator"
172
+ ],
173
+ db: space?.db,
174
+ value: cell.script.target.content,
175
+ onChange: handleQueryChange
176
+ }), view && !dragging && /* @__PURE__ */ React2.createElement(Surface, {
177
+ role: "section",
178
+ limit: 1,
179
+ data: {
180
+ subject: view
181
+ }
182
+ }));
183
+ case "prompt":
184
+ if (!cell.chat?.target || !processor) {
185
+ return null;
186
+ }
187
+ return /* @__PURE__ */ React2.createElement(Chat.Root, {
188
+ chat: cell.chat.target,
189
+ processor
190
+ }, /* @__PURE__ */ React2.createElement(Chat.Thread, {
191
+ overscroll: 0
192
+ }), /* @__PURE__ */ React2.createElement(Chat.Prompt, {
193
+ settings: false,
194
+ classNames: "p-2 border-t border-subduedSeparator"
195
+ }));
196
+ default:
197
+ return null;
198
+ }
199
+ } finally {
200
+ _effect.f();
201
+ }
202
+ };
203
+ var NotebookCellValue = ({ cell, graph }) => {
204
+ var _effect = _useSignals2();
205
+ try {
206
+ const name = graph?.expressions.value[cell.id]?.name;
207
+ const value = graph?.values.value[cell.id];
208
+ if (value == null) {
209
+ return null;
210
+ }
211
+ return /* @__PURE__ */ React2.createElement("div", {
212
+ className: mx("flex is-full bg-groupSurface border-t border-subduedSeparator text-description font-mono", valueStyles)
213
+ }, name && /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement("span", {
214
+ className: "text-successText"
215
+ }, name), /* @__PURE__ */ React2.createElement("span", {
216
+ className: "text-description"
217
+ }, "\xA0=\xA0")), /* @__PURE__ */ React2.createElement("span", null, value));
218
+ } finally {
219
+ _effect.f();
220
+ }
221
+ };
222
+ var MarkdownEditor = ({ extensions: extensionsParam, ...props }) => {
223
+ var _effect = _useSignals2();
224
+ try {
225
+ const { t } = useTranslation2(meta.id);
226
+ const { themeMode } = useThemeContext();
227
+ const extensions = useMemo(() => {
228
+ return [
229
+ createBasicExtensions({
230
+ placeholder: t("notebook markdown placeholder")
231
+ }),
232
+ createThemeExtensions({
233
+ themeMode,
234
+ syntaxHighlighting: true
235
+ }),
236
+ createMarkdownExtensions(),
237
+ decorateMarkdown(),
238
+ extensionsParam
239
+ ].filter(isNonNullable);
240
+ }, [
241
+ extensionsParam
242
+ ]);
243
+ return /* @__PURE__ */ React2.createElement(Editor, {
244
+ ...props,
245
+ extensions,
246
+ moveToEnd: true
247
+ });
248
+ } finally {
249
+ _effect.f();
250
+ }
251
+ };
252
+
253
+ // src/components/NotebookStack/NotebookStack.tsx
254
+ var minSectionHeight = "min-bs-[16rem]";
255
+ var NotebookStack = ({ classNames, notebook, onRearrange, ...props }) => {
256
+ var _effect = _useSignals3();
257
+ try {
258
+ return /* @__PURE__ */ React3.createElement(Stack, {
259
+ classNames,
260
+ orientation: "vertical",
261
+ size: "contain",
262
+ rail: true,
263
+ onRearrange
264
+ }, notebook?.cells.map((cell, i) => /* @__PURE__ */ React3.createElement(NotebookSection, {
265
+ key: i,
266
+ cell,
267
+ ...props
268
+ })));
269
+ } finally {
270
+ _effect.f();
271
+ }
272
+ };
273
+ var NotebookSection = ({ cell, space, env, onCellInsert, onCellDelete, ...props }) => {
274
+ var _effect = _useSignals3();
275
+ try {
276
+ const { t } = useTranslation3(meta.id);
277
+ const resizable = cell.type === "query" || cell.type === "prompt";
278
+ return /* @__PURE__ */ React3.createElement(StackItem.Root, {
279
+ role: "section",
280
+ item: cell,
281
+ draggable: true,
282
+ classNames: resizable && minSectionHeight
283
+ }, /* @__PURE__ */ React3.createElement(StackItem.Heading, {
284
+ classNames: "bs-full p-1 justify-between attention-surface"
285
+ }, /* @__PURE__ */ React3.createElement(StackItem.DragHandle, {
286
+ asChild: true
287
+ }, /* @__PURE__ */ React3.createElement(IconButton, {
288
+ variant: "ghost",
289
+ icon: "ph--dots-six-vertical--regular",
290
+ iconOnly: true,
291
+ label: "Drag handle"
292
+ })), /* @__PURE__ */ React3.createElement(DropdownMenu2.Root, null, /* @__PURE__ */ React3.createElement(DropdownMenu2.Trigger, {
293
+ asChild: true
294
+ }, /* @__PURE__ */ React3.createElement(IconButton, {
295
+ variant: "ghost",
296
+ icon: "ph--dots-three--regular",
297
+ iconOnly: true,
298
+ label: t("notebook cell insert label")
299
+ })), /* @__PURE__ */ React3.createElement(NotebookMenu, {
300
+ cell,
301
+ onCellInsert,
302
+ onCellDelete
303
+ })), resizable && /* @__PURE__ */ React3.createElement(StackItem.ResizeHandle, null)), /* @__PURE__ */ React3.createElement(StackItem.DragPreview, null, ({ item: cell2 }) => /* @__PURE__ */ React3.createElement(StackItem.Content, {
304
+ classNames: "overflow-visible bg-groupSurface border border-subduedSeparator"
305
+ }, /* @__PURE__ */ React3.createElement(NotebookCell, {
306
+ space,
307
+ cell: cell2,
308
+ env,
309
+ dragging: true
310
+ }))), /* @__PURE__ */ React3.createElement(StackItem.Content, {
311
+ classNames: "overflow-visible"
312
+ }, /* @__PURE__ */ React3.createElement(NotebookCell, {
313
+ space,
314
+ cell,
315
+ env,
316
+ ...props
317
+ })));
318
+ } finally {
319
+ _effect.f();
320
+ }
321
+ };
322
+
323
+ export {
324
+ NotebookMenu,
325
+ NotebookStack
326
+ };
327
+ //# sourceMappingURL=chunk-67OVZHI3.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/NotebookStack/NotebookMenu.tsx", "../../../src/components/NotebookStack/NotebookStack.tsx", "../../../src/components/NotebookStack/NotebookCell.tsx"],
4
+ "sourcesContent": ["//\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';\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-bs-[16rem]';\n\nexport type NotebookStackProps = ThemedClassName<\n {\n notebook?: Notebook.Notebook;\n onRearrange?: StackProps['onRearrange'];\n } & (Pick<NotebookSectionProps, 'space' | 'graph' | '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 = ({ classNames, notebook, onRearrange, ...props }: NotebookStackProps) => {\n return (\n <Stack classNames={classNames} orientation='vertical' size='contain' rail onRearrange={onRearrange}>\n {notebook?.cells.map((cell, i) => (\n <NotebookSection key={i} cell={cell} {...props} />\n ))}\n </Stack>\n );\n};\n\ntype NotebookSectionProps = NotebookCellProps;\n\nconst NotebookSection = ({ cell, space, env, onCellInsert, onCellDelete, ...props }: NotebookSectionProps) => {\n const { t } = useTranslation(meta.id);\n const resizable = cell.type === 'query' || cell.type === 'prompt';\n\n // TOOD(burdon): Set size if no extrinsic size (provider).\n return (\n <StackItem.Root role='section' item={cell} draggable classNames={resizable && minSectionHeight}>\n <StackItem.Heading classNames='bs-full p-1 justify-between 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-groupSurface border border-subduedSeparator'>\n <NotebookCell space={space} cell={cell} env={env} dragging />\n </StackItem.Content>\n )}\n </StackItem.DragPreview>\n\n <StackItem.Content classNames='overflow-visible'>\n <NotebookCell space={space} cell={cell} env={env} {...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';\nimport { Query, Ref } from '@dxos/echo';\nimport { QueryBuilder } from '@dxos/echo-query';\nimport { invariant } from '@dxos/invariant';\nimport { useChatProcessor, useChatServices } from '@dxos/plugin-assistant';\nimport { Chat } from '@dxos/plugin-assistant';\nimport { Graph } from '@dxos/plugin-explorer/types';\nimport { createDocAccessor } from '@dxos/react-client/echo';\nimport { type Space } from '@dxos/react-client/echo';\nimport { useAsyncEffect, useThemeContext, useTranslation } from '@dxos/react-ui';\nimport { QueryEditor, type QueryEditorProps } from '@dxos/react-ui-components';\nimport {\n Editor,\n type EditorProps,\n createBasicExtensions,\n createDataExtensions,\n createMarkdownExtensions,\n createThemeExtensions,\n decorateMarkdown,\n} from '@dxos/react-ui-editor';\nimport { mx } from '@dxos/react-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 pis-3';\nconst valueStyles = 'p-1 pis-3';\n\nexport type NotebookCellProps = {\n space?: Space;\n graph?: ComputeGraph;\n dragging?: boolean;\n cell: Notebook.Cell;\n} & (Pick<NotebookMenuProps, 'onCellInsert' | 'onCellDelete'> & Pick<TypescriptEditorProps, 'env'>);\n\n// TODO(burdon): Display errors.\nexport const NotebookCell = ({ space, graph, dragging, cell, env }: NotebookCellProps) => {\n const { t } = useTranslation(meta.id);\n\n //\n // Common.\n //\n const extensions = useMemo(() => {\n return cell.script?.target\n ? [createDataExtensions({ id: cell.id, text: createDocAccessor(cell.script.target, ['content']) })].filter(\n isNonNullable,\n )\n : [];\n }, [cell.script?.target]);\n\n //\n // Query.\n //\n const view = cell.view?.target;\n const builder = useMemo(() => new QueryBuilder(), []);\n useAsyncEffect(async () => {\n if (!space || !cell.script?.target) {\n return;\n }\n\n if (cell.type === 'query') {\n const query = cell.script.target.content;\n const filter = builder.build(query);\n if (filter) {\n const ast = Query.select(filter).ast;\n const view = cell.view?.target;\n if (!view) {\n const graph = Graph.make({ query: { ast } });\n const { view } = await Graph.makeView({ space, presentation: graph });\n cell.view = Ref.make(view);\n } else {\n view.query.ast = ast;\n }\n }\n }\n }, [space, builder, cell, cell.script?.target?.content]);\n\n const handleQueryChange = useCallback<NonNullable<QueryEditorProps['onChange']>>(\n (value: string) => {\n invariant(cell.script?.target);\n cell.script.target.content = value;\n },\n [cell],\n );\n\n //\n // Prompt.\n // TODO(burdon): Add values to context or system message (via blueprint?).\n //\n const services = useChatServices({ space, chat: cell.chat?.target });\n const processor = useChatProcessor({ chat: cell.chat?.target, services });\n\n switch (cell.type) {\n case 'markdown':\n if (!cell.script?.target) {\n return null;\n }\n\n return (\n <MarkdownEditor\n id={cell.id}\n classNames={editorStyles}\n initialValue={cell.script.target.content}\n extensions={extensions}\n />\n );\n\n case 'script':\n if (!cell.script?.target) {\n return null;\n }\n\n return (\n <>\n <TypescriptEditor\n id={cell.id}\n role='section'\n classNames={editorStyles}\n initialValue={cell.script.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.script?.target) {\n return null;\n }\n\n return (\n <div className={mx('bs-full overflow-hidden grid', view && !dragging && 'grid-rows-[min-content_1fr]')}>\n <QueryEditor\n id={cell.id}\n classNames={[editorStyles, 'border-b border-subduedSeparator']}\n db={space?.db}\n value={cell.script.target.content}\n onChange={handleQueryChange}\n />\n {view && !dragging && <Surface role='section' limit={1} data={{ subject: view }} />}\n </div>\n );\n\n case 'prompt':\n if (!cell.chat?.target || !processor) {\n return null;\n }\n\n return (\n <Chat.Root chat={cell.chat.target} processor={processor}>\n <Chat.Thread overscroll={0} />\n <Chat.Prompt settings={false} classNames='p-2 border-t border-subduedSeparator' />\n </Chat.Root>\n );\n\n default:\n return null;\n }\n};\n\nconst NotebookCellValue = ({ cell, graph }: NotebookCellProps) => {\n const name = graph?.expressions.value[cell.id]?.name;\n const value = graph?.values.value[cell.id];\n if (value == null) {\n return null;\n }\n\n return (\n <div\n className={mx(\n 'flex is-full bg-groupSurface border-t border-subduedSeparator text-description font-mono',\n valueStyles,\n )}\n >\n {name && (\n <>\n <span className='text-successText'>{name}</span>\n <span className='text-description'>&nbsp;=&nbsp;</span>\n </>\n )}\n <span>{value}</span>\n </div>\n );\n};\n\nconst MarkdownEditor = ({ extensions: extensionsParam, ...props }: EditorProps) => {\n const { t } = useTranslation(meta.id);\n const { themeMode } = useThemeContext();\n const extensions = useMemo(() => {\n return [\n createBasicExtensions({ placeholder: t('notebook markdown placeholder') }),\n createThemeExtensions({ themeMode, syntaxHighlighting: true }),\n createMarkdownExtensions(),\n decorateMarkdown(),\n extensionsParam,\n ].filter(isNonNullable);\n }, [extensionsParam]);\n\n return <Editor {...props} extensions={extensions} moveToEnd />;\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "DropdownMenu", "useTranslation", "NotebookMenu", "cell", "onCellInsert", "onCellDelete", "t", "useTranslation", "meta", "id", "DropdownMenu", "Portal", "Content", "Viewport", "Item", "onClick", "Arrow", "React", "DropdownMenu", "IconButton", "useTranslation", "Stack", "StackItem", "React", "useCallback", "useMemo", "Surface", "Query", "Ref", "QueryBuilder", "invariant", "useChatProcessor", "useChatServices", "Chat", "Graph", "createDocAccessor", "useAsyncEffect", "useThemeContext", "useTranslation", "QueryEditor", "Editor", "createBasicExtensions", "createDataExtensions", "createMarkdownExtensions", "createThemeExtensions", "decorateMarkdown", "mx", "isNonNullable", "editorStyles", "valueStyles", "NotebookCell", "space", "graph", "dragging", "cell", "env", "t", "useTranslation", "meta", "id", "extensions", "useMemo", "script", "target", "createDataExtensions", "text", "createDocAccessor", "filter", "isNonNullable", "view", "builder", "QueryBuilder", "useAsyncEffect", "type", "query", "content", "build", "ast", "Query", "select", "Graph", "make", "makeView", "presentation", "Ref", "handleQueryChange", "useCallback", "value", "invariant", "services", "useChatServices", "chat", "processor", "useChatProcessor", "React", "MarkdownEditor", "classNames", "initialValue", "TypescriptEditor", "role", "options", "placeholder", "highlightActiveLine", "lineNumbers", "NotebookCellValue", "div", "className", "mx", "QueryEditor", "db", "onChange", "Surface", "limit", "data", "subject", "Chat", "Root", "Thread", "overscroll", "Prompt", "settings", "name", "expressions", "values", "span", "extensionsParam", "props", "themeMode", "useThemeContext", "createBasicExtensions", "createThemeExtensions", "syntaxHighlighting", "createMarkdownExtensions", "decorateMarkdown", "Editor", "moveToEnd", "minSectionHeight", "NotebookStack", "classNames", "notebook", "onRearrange", "props", "React", "Stack", "orientation", "size", "rail", "cells", "map", "cell", "i", "NotebookSection", "key", "space", "env", "onCellInsert", "onCellDelete", "t", "useTranslation", "meta", "id", "resizable", "type", "StackItem", "Root", "role", "item", "draggable", "Heading", "DragHandle", "asChild", "IconButton", "variant", "icon", "iconOnly", "label", "DropdownMenu", "Trigger", "NotebookMenu", "ResizeHandle", "DragPreview", "Content", "NotebookCell", "dragging"]
7
+ }
@@ -1,10 +1,10 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  useCreateAndDeployScriptTemplates
4
- } from "./chunk-PACUN7RS.mjs";
4
+ } from "./chunk-YW36TZ7K.mjs";
5
5
  import {
6
- SCRIPT_PLUGIN
7
- } from "./chunk-AHXJ6NQU.mjs";
6
+ meta
7
+ } from "./chunk-OG2SIKHE.mjs";
8
8
 
9
9
  // src/components/DeploymentDialog/DeploymentDialog.tsx
10
10
  import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
@@ -12,11 +12,11 @@ import React, { useEffect, useMemo } from "react";
12
12
  import { LayoutAction, createIntent, useIntentDispatcher } from "@dxos/app-framework";
13
13
  import { getSpace } from "@dxos/react-client/echo";
14
14
  import { Button, Dialog, Icon, useTranslation } from "@dxos/react-ui";
15
- var DEPLOYMENT_DIALOG = `${SCRIPT_PLUGIN}/deployment/dialog`;
15
+ var DEPLOYMENT_DIALOG = `${meta.id}/deployment/dialog`;
16
16
  var DeploymentDialog = ({ accessToken, scriptTemplates }) => {
17
17
  var _effect = _useSignals();
18
18
  try {
19
- const { t } = useTranslation(SCRIPT_PLUGIN);
19
+ const { t } = useTranslation(meta.id);
20
20
  const space = useMemo(() => getSpace(accessToken), [
21
21
  accessToken
22
22
  ]);
@@ -27,27 +27,27 @@ var DeploymentDialog = ({ accessToken, scriptTemplates }) => {
27
27
  void dispatch(createIntent(LayoutAction.AddToast, {
28
28
  part: "toast",
29
29
  subject: {
30
- id: `${SCRIPT_PLUGIN}/deployment-success`,
30
+ id: `${meta.id}/deployment-success`,
31
31
  icon: "ph--check--regular",
32
32
  duration: Infinity,
33
33
  title: [
34
34
  "script deployment toast label",
35
35
  {
36
- ns: SCRIPT_PLUGIN,
36
+ ns: meta.id,
37
37
  count: scriptTemplates.length
38
38
  }
39
39
  ],
40
40
  description: [
41
41
  "script deployment toast description",
42
42
  {
43
- ns: SCRIPT_PLUGIN,
43
+ ns: meta.id,
44
44
  count: scriptTemplates.length
45
45
  }
46
46
  ],
47
47
  closeLabel: [
48
48
  "script deployment toast close label",
49
49
  {
50
- ns: SCRIPT_PLUGIN,
50
+ ns: meta.id,
51
51
  count: scriptTemplates.length
52
52
  }
53
53
  ]
@@ -70,27 +70,27 @@ var DeploymentDialog = ({ accessToken, scriptTemplates }) => {
70
70
  void dispatch(createIntent(LayoutAction.AddToast, {
71
71
  part: "toast",
72
72
  subject: {
73
- id: `${SCRIPT_PLUGIN}/deployment-error`,
73
+ id: `${meta.id}/deployment-error`,
74
74
  icon: "ph--warning--regular",
75
75
  duration: Infinity,
76
76
  title: [
77
77
  "script deployment error toast label",
78
78
  {
79
- ns: SCRIPT_PLUGIN,
79
+ ns: meta.id,
80
80
  count: scriptTemplates.length
81
81
  }
82
82
  ],
83
83
  description: [
84
84
  "script deployment error toast description",
85
85
  {
86
- ns: SCRIPT_PLUGIN,
86
+ ns: meta.id,
87
87
  count: scriptTemplates.length
88
88
  }
89
89
  ],
90
90
  closeLabel: [
91
91
  "script deployment error toast close label",
92
92
  {
93
- ns: SCRIPT_PLUGIN,
93
+ ns: meta.id,
94
94
  count: scriptTemplates.length
95
95
  }
96
96
  ]
@@ -151,4 +151,4 @@ export {
151
151
  DEPLOYMENT_DIALOG,
152
152
  DeploymentDialog_default
153
153
  };
154
- //# sourceMappingURL=chunk-IO6T72KY.mjs.map
154
+ //# sourceMappingURL=chunk-C2ORIPKH.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/DeploymentDialog/DeploymentDialog.tsx", "../../../src/components/DeploymentDialog/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useEffect, useMemo } from 'react';\n\nimport { LayoutAction, createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { getSpace } from '@dxos/react-client/echo';\nimport { Button, Dialog, Icon, useTranslation } from '@dxos/react-ui';\nimport { type DataType } from '@dxos/schema';\n\nimport { useCreateAndDeployScriptTemplates } from '../../hooks/useCreateAndDeployScriptTemplates';\nimport { meta } from '../../meta';\nimport { type Template } from '../../templates';\n\nexport const DEPLOYMENT_DIALOG = `${meta.id}/deployment/dialog`;\n\n// TODO(ZaymonFC):\n// - Show activity and feedback to the user.\n// - Only take an array of templateIds and get the name from the data.\n// - Pending / onError states.\n\nexport type DeploymentDialogProps = {\n accessToken: DataType.AccessToken;\n scriptTemplates: Template[];\n};\n\nexport const DeploymentDialog = ({ accessToken, scriptTemplates }: DeploymentDialogProps) => {\n const { t } = useTranslation(meta.id);\n const space = useMemo(() => getSpace(accessToken), [accessToken]);\n\n // TODO(ZaymonFC): Thinking further. All of this should get moved to intents to run async in the background.\n // Deployment shouldn't be tied to the lifecycle of the dialogue component.\n const { handleCreateAndDeployScripts, status } = useCreateAndDeployScriptTemplates(space, scriptTemplates);\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n\n useEffect(() => {\n if (status === 'success') {\n // TODO(ZaymonFC): We can probably re-use this toast for normal script deployment.\n void dispatch(\n createIntent(LayoutAction.AddToast, {\n part: 'toast',\n subject: {\n id: `${meta.id}/deployment-success`,\n icon: 'ph--check--regular',\n duration: Infinity,\n title: ['script deployment toast label', { ns: meta.id, count: scriptTemplates.length }],\n description: ['script deployment toast description', { ns: meta.id, count: scriptTemplates.length }],\n closeLabel: ['script deployment toast close label', { ns: meta.id, count: scriptTemplates.length }],\n },\n }),\n );\n void dispatch(createIntent(LayoutAction.UpdateDialog, { part: 'dialog', options: { state: false } }));\n }\n if (status === 'error') {\n void dispatch(createIntent(LayoutAction.UpdateDialog, { part: 'dialog', options: { state: false } }));\n void dispatch(\n createIntent(LayoutAction.AddToast, {\n part: 'toast',\n subject: {\n id: `${meta.id}/deployment-error`,\n icon: 'ph--warning--regular',\n duration: Infinity,\n title: ['script deployment error toast label', { ns: meta.id, count: scriptTemplates.length }],\n description: ['script deployment error toast description', { ns: meta.id, count: scriptTemplates.length }],\n closeLabel: ['script deployment error toast close label', { ns: meta.id, count: scriptTemplates.length }],\n },\n }),\n );\n }\n }, [status, dispatch]);\n\n return (\n <Dialog.Content>\n <div className='flex justify-between items-center'>\n <Dialog.Title>{t('deployment dialog title')}</Dialog.Title>\n <Dialog.Close asChild>\n <Button density='fine' variant='ghost'>\n <Icon icon='ph--x--regular' size={4} />\n </Button>\n </Dialog.Close>\n </div>\n <div role='none' className='plb-4'>\n {/* TODO: Implement deployment logic and UI. */}\n <p>{t('deployment dialog scripts found message', { count: scriptTemplates.length })}</p>\n <ul className='pbs-2'>\n {scriptTemplates.map((template) => {\n return <li key={template.id}>{template.name}</li>;\n })}\n </ul>\n </div>\n <div role='none' className='flex flex-row-reverse gap-1'>\n <Button variant='primary' onClick={handleCreateAndDeployScripts} disabled={status === 'pending'}>\n {status === 'pending'\n ? t('deployment dialog deploy functions pending button label', { count: scriptTemplates.length })\n : t('deployment dialog deploy functions button label', { count: scriptTemplates.length })}\n </Button>\n <Dialog.Close asChild disabled={status === 'pending'}>\n <Button disabled={status === 'pending'}>{t('deployment dialog skip button label')}</Button>\n </Dialog.Close>\n </div>\n </Dialog.Content>\n );\n};\n\nexport default DeploymentDialog;\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { DEPLOYMENT_DIALOG, DeploymentDialog } from './DeploymentDialog';\n\nexport { DEPLOYMENT_DIALOG };\n\nexport default DeploymentDialog;\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "useEffect", "useMemo", "LayoutAction", "createIntent", "useIntentDispatcher", "getSpace", "Button", "Dialog", "Icon", "useTranslation", "DEPLOYMENT_DIALOG", "meta", "id", "DeploymentDialog", "accessToken", "scriptTemplates", "t", "useTranslation", "space", "useMemo", "getSpace", "handleCreateAndDeployScripts", "status", "useCreateAndDeployScriptTemplates", "dispatchPromise", "dispatch", "useIntentDispatcher", "useEffect", "createIntent", "LayoutAction", "AddToast", "part", "subject", "icon", "duration", "Infinity", "title", "ns", "count", "length", "description", "closeLabel", "UpdateDialog", "options", "state", "Dialog", "Content", "div", "className", "Title", "Close", "asChild", "Button", "density", "variant", "Icon", "size", "role", "p", "ul", "map", "template", "li", "key", "name", "onClick", "disabled", "DeploymentDialog"]
7
+ }
@@ -1,7 +1,7 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  meta
4
- } from "./chunk-AHXJ6NQU.mjs";
4
+ } from "./chunk-OG2SIKHE.mjs";
5
5
 
6
6
  // src/capabilities/capabilities.ts
7
7
  import { defineCapability } from "@dxos/app-framework";
@@ -13,4 +13,4 @@ var ScriptCapabilities;
13
13
  export {
14
14
  ScriptCapabilities
15
15
  };
16
- //# sourceMappingURL=chunk-35M3CHYE.mjs.map
16
+ //# sourceMappingURL=chunk-NUXZQQ6P.mjs.map
@@ -1,11 +1,10 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
 
3
3
  // src/meta.ts
4
- var SCRIPT_PLUGIN = "dxos.org/plugin/script";
5
4
  var meta = {
6
- id: SCRIPT_PLUGIN,
5
+ id: "dxos.org/plugin/script",
7
6
  name: "Scripts",
8
- description: "Scripts in Composer allow you to deploy custom functions that run on the edge. These functions can be referenced by your AI agent and called inside of cells in any Sheet. Use scripts to interact with API\u2019s or external data inside of Composer.",
7
+ description: "Scripts enable you to deploy custom functions that run on the edge. These functions can be referenced by your AI agent and called inside of cells in any Sheet. Use scripts to interact with API\u2019s or external data inside of Composer.",
9
8
  icon: "ph--code--regular",
10
9
  source: "https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-explorer",
11
10
  tags: [
@@ -23,8 +22,7 @@ var defaultScriptsForIntegration = {
23
22
  };
24
23
 
25
24
  export {
26
- SCRIPT_PLUGIN,
27
25
  meta,
28
26
  defaultScriptsForIntegration
29
27
  };
30
- //# sourceMappingURL=chunk-AHXJ6NQU.mjs.map
28
+ //# sourceMappingURL=chunk-OG2SIKHE.mjs.map