@dxos/plugin-script 0.8.4-main.dedc0f3 → 0.8.4-main.ead640a

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 (253) 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-AR7ITBCD.mjs → blueprint-definition-ET5KZ46I.mjs} +3 -3
  9. package/dist/lib/browser/{blueprint-definition-AR7ITBCD.mjs.map → blueprint-definition-ET5KZ46I.mjs.map} +1 -1
  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-6CAH7VIE.mjs → chunk-E7DXDICD.mjs} +18 -19
  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-GZKWMME3.mjs → chunk-I3QSGUFJ.mjs} +122 -32
  19. package/dist/lib/browser/chunk-I3QSGUFJ.mjs.map +7 -0
  20. package/dist/lib/browser/{chunk-NXKU3BNX.mjs → chunk-JO2O7W6J.mjs} +39 -7
  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-YCZPTTFO.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-2HJH34GM.mjs → compiler-G2N2CG63.mjs} +5 -5
  30. package/dist/lib/browser/{compiler-2HJH34GM.mjs.map → compiler-G2N2CG63.mjs.map} +1 -1
  31. package/dist/lib/browser/index.mjs +107 -36
  32. package/dist/lib/browser/index.mjs.map +3 -3
  33. package/dist/lib/browser/{intent-resolver-F4YSRPJI.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-BBHFU6MI.mjs → react-surface-76SDTUYG.mjs} +36 -13
  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-G6EHEPXN.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-TJY4TX6S.mjs → blueprint-definition-AIYFOT7Q.mjs} +3 -3
  50. package/dist/lib/node-esm/{blueprint-definition-TJY4TX6S.mjs.map → blueprint-definition-AIYFOT7Q.mjs.map} +1 -1
  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-ZA36GO4T.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-HUHVIOL5.mjs → chunk-SMFPSKQT.mjs} +122 -32
  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-2GBESIHU.mjs → chunk-VZAFGLD7.mjs} +18 -19
  67. package/dist/lib/node-esm/chunk-VZAFGLD7.mjs.map +7 -0
  68. package/dist/lib/node-esm/{chunk-M642JUOZ.mjs → chunk-YW36TZ7K.mjs} +39 -7
  69. package/dist/lib/node-esm/chunk-YW36TZ7K.mjs.map +7 -0
  70. package/dist/lib/node-esm/{compiler-7SP27RA6.mjs → compiler-PLDAZ5GJ.mjs} +5 -5
  71. package/dist/lib/node-esm/{compiler-7SP27RA6.mjs.map → compiler-PLDAZ5GJ.mjs.map} +1 -1
  72. package/dist/lib/node-esm/index.mjs +107 -36
  73. package/dist/lib/node-esm/index.mjs.map +3 -3
  74. package/dist/lib/node-esm/{intent-resolver-CGQYRWWD.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-UWIWPKZD.mjs → react-surface-SHEBNW4R.mjs} +36 -13
  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.map +1 -1
  86. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  87. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  88. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.d.ts +1 -1
  89. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.d.ts.map +1 -1
  90. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts +111 -5
  91. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts.map +1 -1
  92. package/dist/types/src/components/NotebookContainer.d.ts +10 -0
  93. package/dist/types/src/components/NotebookContainer.d.ts.map +1 -0
  94. package/dist/types/src/components/NotebookContainer.stories.d.ts +248 -0
  95. package/dist/types/src/components/NotebookContainer.stories.d.ts.map +1 -0
  96. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts +14 -0
  97. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts.map +1 -0
  98. package/dist/types/src/components/NotebookStack/NotebookMenu.d.ts +9 -0
  99. package/dist/types/src/components/NotebookStack/NotebookMenu.d.ts.map +1 -0
  100. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts +14 -0
  101. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts.map +1 -0
  102. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts +248 -0
  103. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts.map +1 -0
  104. package/dist/types/src/components/NotebookStack/index.d.ts +3 -0
  105. package/dist/types/src/components/NotebookStack/index.d.ts.map +1 -0
  106. package/dist/types/src/components/ScriptContainer.d.ts +2 -2
  107. package/dist/types/src/components/ScriptContainer.d.ts.map +1 -1
  108. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts.map +1 -1
  109. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts +239 -1
  110. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts.map +1 -1
  111. package/dist/types/src/components/Settings/ScriptObjectSettings.d.ts.map +1 -1
  112. package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts +2 -2
  113. package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts.map +1 -1
  114. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts +4 -2
  115. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts.map +1 -1
  116. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts +3 -3
  117. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts.map +1 -1
  118. package/dist/types/src/components/index.d.ts +2 -0
  119. package/dist/types/src/components/index.d.ts.map +1 -1
  120. package/dist/types/src/events.d.ts.map +1 -1
  121. package/dist/types/src/hooks/deploy.d.ts +6 -6
  122. package/dist/types/src/hooks/deploy.d.ts.map +1 -1
  123. package/dist/types/src/hooks/template.d.ts.map +1 -1
  124. package/dist/types/src/index.d.ts +1 -0
  125. package/dist/types/src/index.d.ts.map +1 -1
  126. package/dist/types/src/meta.d.ts +0 -1
  127. package/dist/types/src/meta.d.ts.map +1 -1
  128. package/dist/types/src/notebook/eval.d.ts +13 -0
  129. package/dist/types/src/notebook/eval.d.ts.map +1 -0
  130. package/dist/types/src/notebook/index.d.ts +2 -0
  131. package/dist/types/src/notebook/index.d.ts.map +1 -0
  132. package/dist/types/src/notebook/notebook.d.ts +35 -0
  133. package/dist/types/src/notebook/notebook.d.ts.map +1 -0
  134. package/dist/types/src/notebook/notebook.test.d.ts +2 -0
  135. package/dist/types/src/notebook/notebook.test.d.ts.map +1 -0
  136. package/dist/types/src/notebook/vfs-parser.d.ts +74 -0
  137. package/dist/types/src/notebook/vfs-parser.d.ts.map +1 -0
  138. package/dist/types/src/notebook/vfs-parser.test.d.ts +2 -0
  139. package/dist/types/src/notebook/vfs-parser.test.d.ts.map +1 -0
  140. package/dist/types/src/templates/chess.d.ts.map +1 -1
  141. package/dist/types/src/templates/data-generator.d.ts.map +1 -1
  142. package/dist/types/src/templates/discord.d.ts.map +1 -1
  143. package/dist/types/src/templates/forex-effect.d.ts.map +1 -1
  144. package/dist/types/src/templates/forex.d.ts.map +1 -1
  145. package/dist/types/src/templates/gmail.d.ts.map +1 -1
  146. package/dist/types/src/templates/index.d.ts +43 -1
  147. package/dist/types/src/templates/index.d.ts.map +1 -1
  148. package/dist/types/src/templates/{echo.d.ts → ping.d.ts} +1 -1
  149. package/dist/types/src/templates/ping.d.ts.map +1 -0
  150. package/dist/types/src/testing/data.d.ts +19 -0
  151. package/dist/types/src/testing/data.d.ts.map +1 -0
  152. package/dist/types/src/testing/index.d.ts +2 -0
  153. package/dist/types/src/testing/index.d.ts.map +1 -0
  154. package/dist/types/src/translations.d.ts +27 -2
  155. package/dist/types/src/translations.d.ts.map +1 -1
  156. package/dist/types/src/types/actions.d.ts +66 -0
  157. package/dist/types/src/types/actions.d.ts.map +1 -0
  158. package/dist/types/src/types/index.d.ts +1 -0
  159. package/dist/types/src/types/index.d.ts.map +1 -1
  160. package/dist/types/src/types/schema.d.ts +54 -31
  161. package/dist/types/src/types/schema.d.ts.map +1 -1
  162. package/dist/types/src/util/functions.d.ts +5 -2
  163. package/dist/types/src/util/functions.d.ts.map +1 -1
  164. package/dist/types/tsconfig.tsbuildinfo +1 -1
  165. package/package.json +67 -63
  166. package/src/ScriptPlugin.tsx +93 -68
  167. package/src/capabilities/app-graph-builder.ts +4 -3
  168. package/src/capabilities/artifact-definition.ts +1 -1
  169. package/src/capabilities/intent-resolver.ts +14 -4
  170. package/src/capabilities/react-surface.tsx +17 -5
  171. package/src/capabilities/settings.ts +3 -3
  172. package/src/components/DeploymentDialog/DeploymentDialog.stories.tsx +6 -4
  173. package/src/components/DeploymentDialog/DeploymentDialog.tsx +11 -17
  174. package/src/components/NotebookContainer.stories.tsx +32 -0
  175. package/src/components/NotebookContainer.tsx +124 -0
  176. package/src/components/NotebookStack/NotebookCell.tsx +217 -0
  177. package/src/components/NotebookStack/NotebookMenu.tsx +47 -0
  178. package/src/components/NotebookStack/NotebookStack.stories.tsx +32 -0
  179. package/src/components/NotebookStack/NotebookStack.tsx +79 -0
  180. package/src/components/NotebookStack/index.ts +6 -0
  181. package/src/components/ScriptContainer.tsx +2 -2
  182. package/src/components/ScriptToolbar/ScriptToolbar.stories.tsx +17 -5
  183. package/src/components/ScriptToolbar/ScriptToolbar.tsx +21 -24
  184. package/src/components/Settings/ScriptObjectSettings.tsx +92 -8
  185. package/src/components/Settings/ScriptPluginSettings.tsx +4 -19
  186. package/src/components/TestPanel/TestPanel.tsx +5 -5
  187. package/src/components/TypescriptEditor/TypescriptEditor.stories.tsx +71 -16
  188. package/src/components/TypescriptEditor/TypescriptEditor.tsx +29 -24
  189. package/src/components/index.ts +3 -0
  190. package/src/events.ts +2 -2
  191. package/src/hooks/deploy.ts +8 -9
  192. package/src/hooks/format.ts +2 -2
  193. package/src/hooks/template.ts +4 -3
  194. package/src/hooks/useCreateAndDeployScriptTemplates.ts +3 -3
  195. package/src/index.ts +1 -0
  196. package/src/meta.ts +2 -4
  197. package/src/notebook/eval.ts +105 -0
  198. package/src/notebook/index.ts +5 -0
  199. package/src/notebook/notebook.test.ts +70 -0
  200. package/src/notebook/notebook.ts +183 -0
  201. package/src/notebook/vfs-parser.test.ts +149 -0
  202. package/src/notebook/vfs-parser.ts +451 -0
  203. package/src/templates/chess.ts +2 -0
  204. package/src/templates/data-generator.ts +2 -0
  205. package/src/templates/discord.ts +9 -1
  206. package/src/templates/forex-effect.ts +5 -1
  207. package/src/templates/forex.ts +2 -0
  208. package/src/templates/gmail.ts +21 -9
  209. package/src/templates/index.ts +6 -6
  210. package/src/testing/data.ts +47 -0
  211. package/src/testing/index.ts +5 -0
  212. package/src/translations.ts +30 -4
  213. package/src/types/actions.ts +53 -0
  214. package/src/types/index.ts +1 -0
  215. package/src/types/schema.ts +30 -19
  216. package/src/util/functions.ts +32 -3
  217. package/dist/lib/browser/DeploymentDialog-QZSTVNIS.mjs +0 -12
  218. package/dist/lib/browser/ScriptContainer-DNNA6XC6.mjs +0 -265
  219. package/dist/lib/browser/ScriptContainer-DNNA6XC6.mjs.map +0 -7
  220. package/dist/lib/browser/app-graph-builder-IABOSTBK.mjs.map +0 -7
  221. package/dist/lib/browser/chunk-6CAH7VIE.mjs.map +0 -7
  222. package/dist/lib/browser/chunk-GZKWMME3.mjs.map +0 -7
  223. package/dist/lib/browser/chunk-IS4OG2UW.mjs +0 -39
  224. package/dist/lib/browser/chunk-IS4OG2UW.mjs.map +0 -7
  225. package/dist/lib/browser/chunk-NXKU3BNX.mjs.map +0 -7
  226. package/dist/lib/browser/chunk-QYAREHGH.mjs.map +0 -7
  227. package/dist/lib/browser/chunk-RNGIQIEJ.mjs +0 -88
  228. package/dist/lib/browser/chunk-RNGIQIEJ.mjs.map +0 -7
  229. package/dist/lib/browser/chunk-YCZPTTFO.mjs.map +0 -7
  230. package/dist/lib/browser/intent-resolver-F4YSRPJI.mjs.map +0 -7
  231. package/dist/lib/browser/react-surface-BBHFU6MI.mjs.map +0 -7
  232. package/dist/lib/browser/settings-KCTBK5TY.mjs.map +0 -7
  233. package/dist/lib/node-esm/ScriptContainer-KPYZN2KY.mjs +0 -266
  234. package/dist/lib/node-esm/ScriptContainer-KPYZN2KY.mjs.map +0 -7
  235. package/dist/lib/node-esm/app-graph-builder-CQTTAYHP.mjs.map +0 -7
  236. package/dist/lib/node-esm/chunk-2GBESIHU.mjs.map +0 -7
  237. package/dist/lib/node-esm/chunk-AHXJ6NQU.mjs.map +0 -7
  238. package/dist/lib/node-esm/chunk-GWHLP5LM.mjs +0 -90
  239. package/dist/lib/node-esm/chunk-GWHLP5LM.mjs.map +0 -7
  240. package/dist/lib/node-esm/chunk-HUHVIOL5.mjs.map +0 -7
  241. package/dist/lib/node-esm/chunk-JIPFLBYA.mjs +0 -40
  242. package/dist/lib/node-esm/chunk-JIPFLBYA.mjs.map +0 -7
  243. package/dist/lib/node-esm/chunk-M642JUOZ.mjs.map +0 -7
  244. package/dist/lib/node-esm/chunk-ZA36GO4T.mjs.map +0 -7
  245. package/dist/lib/node-esm/intent-resolver-CGQYRWWD.mjs.map +0 -7
  246. package/dist/lib/node-esm/react-surface-UWIWPKZD.mjs.map +0 -7
  247. package/dist/lib/node-esm/settings-DXZ334A3.mjs.map +0 -7
  248. package/dist/types/src/templates/echo.d.ts.map +0 -1
  249. /package/dist/lib/browser/{DeploymentDialog-QZSTVNIS.mjs.map → DeploymentDialog-65TWT6S5.mjs.map} +0 -0
  250. /package/dist/lib/browser/{chunk-5TVBECWH.mjs.map → chunk-OKXN2N7M.mjs.map} +0 -0
  251. /package/dist/lib/node-esm/{DeploymentDialog-G6EHEPXN.mjs.map → DeploymentDialog-I63ZC2HH.mjs.map} +0 -0
  252. /package/dist/lib/node-esm/{chunk-35M3CHYE.mjs.map → chunk-NUXZQQ6P.mjs.map} +0 -0
  253. /package/src/templates/{echo.ts → ping.ts} +0 -0
@@ -0,0 +1,13 @@
1
+ import {
2
+ DEPLOYMENT_DIALOG,
3
+ DeploymentDialog_default
4
+ } from "./chunk-NM4WQS4F.mjs";
5
+ import "./chunk-JO2O7W6J.mjs";
6
+ import "./chunk-5CYLWXRH.mjs";
7
+ import "./chunk-ST3ACVUC.mjs";
8
+ import "./chunk-EZVXV6DA.mjs";
9
+ export {
10
+ DEPLOYMENT_DIALOG,
11
+ DeploymentDialog_default as default
12
+ };
13
+ //# sourceMappingURL=DeploymentDialog-65TWT6S5.mjs.map
@@ -0,0 +1,683 @@
1
+ import {
2
+ NotebookMenu,
3
+ NotebookStack
4
+ } from "./chunk-75LH4EUR.mjs";
5
+ import "./chunk-N6M34EUC.mjs";
6
+ import {
7
+ meta
8
+ } from "./chunk-EZVXV6DA.mjs";
9
+
10
+ // src/components/NotebookContainer.tsx
11
+ import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
12
+ import React, { useCallback, useMemo } from "react";
13
+ import { Ref } from "@dxos/echo";
14
+ import { invariant as invariant2 } from "@dxos/invariant";
15
+ import { Assistant } from "@dxos/plugin-assistant";
16
+ import { getSpace } from "@dxos/react-client/echo";
17
+ import { DropdownMenu, IconButton, Toolbar, useTranslation } from "@dxos/react-ui";
18
+ import { StackItem } from "@dxos/react-ui-stack";
19
+ import { DataType } from "@dxos/schema";
20
+
21
+ // src/notebook/notebook.ts
22
+ import { signal } from "@preact/signals-core";
23
+ import { log } from "@dxos/log";
24
+
25
+ // src/notebook/eval.ts
26
+ import { trim } from "@dxos/util";
27
+ var evalScript = (code, deps = {}) => {
28
+ const sandbox = {
29
+ ...deps,
30
+ // Block access to global objects.
31
+ console: void 0,
32
+ document: void 0,
33
+ global: void 0,
34
+ globalThis: void 0,
35
+ self: void 0,
36
+ window: void 0,
37
+ // Allow some safe globals.
38
+ Array,
39
+ Boolean,
40
+ Date,
41
+ Error,
42
+ JSON,
43
+ Map,
44
+ Math,
45
+ Number,
46
+ Object,
47
+ Promise,
48
+ RegExp,
49
+ Set,
50
+ String,
51
+ // Functions.
52
+ isFinite,
53
+ isNaN,
54
+ parseFloat,
55
+ parseInt
56
+ };
57
+ const sandboxKeys = Object.keys(sandbox);
58
+ const sandboxValues = Object.values(sandbox);
59
+ const fn = new Function(...sandboxKeys, trim`
60
+ 'use strict';
61
+ return ${code};
62
+ `);
63
+ return fn(...sandboxValues);
64
+ };
65
+ var builtIns = /* @__PURE__ */ new Set([
66
+ // Types.
67
+ "Array",
68
+ "Date",
69
+ "Error",
70
+ "JSON",
71
+ "Map",
72
+ "Math",
73
+ "Number",
74
+ "Object",
75
+ "Promise",
76
+ "RegExp",
77
+ "Set",
78
+ "String",
79
+ // Functions.
80
+ "isFinite",
81
+ "isNaN",
82
+ "parseFloat",
83
+ "parseInt"
84
+ ]);
85
+ var systemDefinitions = trim`
86
+ interface Array<T> { length: number; [n: number]: T; }
87
+ interface Boolean {}
88
+ interface Function {}
89
+ interface IArguments {}
90
+ interface Number {}
91
+ interface Object {}
92
+ interface RegExp {}
93
+ interface String { length: number; }
94
+
95
+ interface CallableFunction extends Function {}
96
+ interface NewableFunction extends Function {}
97
+
98
+ declare var console: { log(...args: any[]): void };
99
+ `;
100
+
101
+ // src/notebook/vfs-parser.ts
102
+ import { createSystem, createVirtualTypeScriptEnvironment } from "@typescript/vfs";
103
+ import ts from "typescript";
104
+ import { invariant } from "@dxos/invariant";
105
+ function _define_property(obj, key, value) {
106
+ if (key in obj) {
107
+ Object.defineProperty(obj, key, {
108
+ value,
109
+ enumerable: true,
110
+ configurable: true,
111
+ writable: true
112
+ });
113
+ } else {
114
+ obj[key] = value;
115
+ }
116
+ return obj;
117
+ }
118
+ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-script/src/notebook/vfs-parser.ts";
119
+ var systemFiles = [
120
+ {
121
+ filename: "/lib.d.ts",
122
+ content: systemDefinitions
123
+ }
124
+ ];
125
+ var VirtualTypeScriptParser = class {
126
+ /**
127
+ * Parse a single expression or statement.
128
+ */
129
+ parseExpression(input) {
130
+ invariant(input.trim() !== "", "input must not be empty", {
131
+ F: __dxlog_file,
132
+ L: 57,
133
+ S: this,
134
+ A: [
135
+ "input.trim() !== ''",
136
+ "'input must not be empty'"
137
+ ]
138
+ });
139
+ const files = [
140
+ {
141
+ filename: "/temp.ts",
142
+ content: input
143
+ }
144
+ ];
145
+ const analysis = this.analyzeFiles(files);
146
+ if (analysis.length === 0) {
147
+ const sourcefilename = "/temp.ts";
148
+ const env = this.createEnvironment([
149
+ {
150
+ filename: sourcefilename,
151
+ content: input
152
+ }
153
+ ]);
154
+ const sourceFile = env.getSourceFile(sourcefilename);
155
+ const typeChecker = env.languageService.getProgram()?.getTypeChecker();
156
+ if (sourceFile && typeChecker) {
157
+ const assignmentInfo = this.findAssignmentExpression(sourceFile, typeChecker);
158
+ if (assignmentInfo) {
159
+ return assignmentInfo;
160
+ }
161
+ const references = this.findAllReferences(sourceFile, typeChecker);
162
+ return {
163
+ references
164
+ };
165
+ }
166
+ }
167
+ return analysis[0];
168
+ }
169
+ /**
170
+ * Analyze multiple files with full type information.
171
+ */
172
+ analyzeFiles(files) {
173
+ const env = this.createEnvironment(files);
174
+ const results = [];
175
+ const typeChecker = env.languageService.getProgram()?.getTypeChecker();
176
+ files.forEach((file) => {
177
+ const sourceFile = env.getSourceFile(file.filename);
178
+ if (!sourceFile || !typeChecker) return;
179
+ const fileResults = this.analyzeSourceFile(sourceFile, typeChecker);
180
+ results.push(...fileResults);
181
+ });
182
+ return results;
183
+ }
184
+ /**
185
+ * Analyze a source file with type information.
186
+ */
187
+ analyzeSourceFile(sourceFile, typeChecker) {
188
+ const results = [];
189
+ const visit = (node) => {
190
+ if (ts.isFunctionDeclaration(node) && node.name) {
191
+ const symbol = typeChecker.getSymbolAtLocation(node.name);
192
+ const type = symbol && typeChecker.getTypeOfSymbolAtLocation(symbol, node);
193
+ const signature = type && typeChecker.getSignaturesOfType(type, ts.SignatureKind.Call)[0];
194
+ results.push({
195
+ name: node.name.text,
196
+ type: "function",
197
+ parameters: this.extractParameters(signature, typeChecker),
198
+ returnType: signature ? typeChecker.typeToString(signature.getReturnType()) : "any",
199
+ references: this.findReferences(node, sourceFile, typeChecker)
200
+ });
201
+ } else if (ts.isVariableStatement(node)) {
202
+ node.declarationList.declarations.forEach((declaration) => {
203
+ if (ts.isIdentifier(declaration.name)) {
204
+ const symbol = typeChecker.getSymbolAtLocation(declaration.name);
205
+ const type = symbol && typeChecker.getTypeOfSymbolAtLocation(symbol, declaration);
206
+ let kind = "variable";
207
+ let parameters;
208
+ let returnType;
209
+ let value;
210
+ const typeString = type ? typeChecker.typeToString(type) : "any";
211
+ if (declaration.initializer) {
212
+ if (ts.isArrowFunction(declaration.initializer) || ts.isFunctionExpression(declaration.initializer)) {
213
+ kind = "function";
214
+ const funcType = typeChecker.getTypeAtLocation(declaration.initializer);
215
+ const signature = typeChecker.getSignaturesOfType(funcType, ts.SignatureKind.Call)[0];
216
+ if (signature) {
217
+ parameters = this.extractParameters(signature, typeChecker);
218
+ returnType = typeChecker.typeToString(signature.getReturnType());
219
+ }
220
+ } else {
221
+ if (ts.isNumericLiteral(declaration.initializer)) {
222
+ value = Number(declaration.initializer.text);
223
+ } else if (ts.isStringLiteral(declaration.initializer)) {
224
+ value = declaration.initializer.text;
225
+ }
226
+ }
227
+ }
228
+ const refs = declaration.initializer ? this.findReferences(declaration.initializer, sourceFile, typeChecker) : [];
229
+ results.push({
230
+ name: declaration.name.text,
231
+ type: kind,
232
+ valueType: typeString,
233
+ value,
234
+ parameters,
235
+ returnType,
236
+ references: refs
237
+ });
238
+ }
239
+ });
240
+ } else if (ts.isClassDeclaration(node) && node.name) {
241
+ results.push({
242
+ name: node.name.text,
243
+ type: "class",
244
+ references: this.findReferences(node, sourceFile, typeChecker)
245
+ });
246
+ } else if (ts.isInterfaceDeclaration(node)) {
247
+ results.push({
248
+ name: node.name.text,
249
+ type: "interface",
250
+ references: this.findReferences(node, sourceFile, typeChecker)
251
+ });
252
+ }
253
+ ts.forEachChild(node, visit);
254
+ };
255
+ visit(sourceFile);
256
+ return results;
257
+ }
258
+ /**
259
+ * Extract parameter information from a signature.
260
+ */
261
+ extractParameters(signature, typeChecker) {
262
+ if (!signature) return [];
263
+ return signature.parameters.map((param) => ({
264
+ name: param.getName(),
265
+ type: typeChecker.typeToString(typeChecker.getTypeOfSymbolAtLocation(param, param.valueDeclaration))
266
+ }));
267
+ }
268
+ /**
269
+ * Find all references to variables used in a node.
270
+ */
271
+ findReferences(node, _sourceFile, _typeChecker) {
272
+ const references = /* @__PURE__ */ new Set();
273
+ const localSymbols = /* @__PURE__ */ new Set();
274
+ const collectLocalSymbols = (node2) => {
275
+ if (ts.isFunctionDeclaration(node2) || ts.isArrowFunction(node2) || ts.isFunctionExpression(node2)) {
276
+ node2.parameters.forEach((param) => {
277
+ if (ts.isIdentifier(param.name)) {
278
+ localSymbols.add(param.name.text);
279
+ }
280
+ });
281
+ }
282
+ if (ts.isVariableDeclaration(node2) && ts.isIdentifier(node2.name)) {
283
+ localSymbols.add(node2.name.text);
284
+ }
285
+ ts.forEachChild(node2, collectLocalSymbols);
286
+ };
287
+ collectLocalSymbols(node);
288
+ const findRefs = (node2) => {
289
+ if (ts.isIdentifier(node2)) {
290
+ if (!localSymbols.has(node2.text)) {
291
+ const parent = node2.parent;
292
+ const isDeclaration = ts.isVariableDeclaration(parent) && parent.name === node2 || ts.isFunctionDeclaration(parent) && parent.name === node2 || ts.isParameter(parent) && parent.name === node2;
293
+ if (!isDeclaration && !this.isBuiltIn(node2.text)) {
294
+ references.add(node2.text);
295
+ }
296
+ }
297
+ }
298
+ ts.forEachChild(node2, findRefs);
299
+ };
300
+ findRefs(node);
301
+ return Array.from(references);
302
+ }
303
+ /**
304
+ * Check if a name is a built-in global.
305
+ */
306
+ isBuiltIn(name) {
307
+ return builtIns.has(name);
308
+ }
309
+ /**
310
+ * Find assignment expressions in a source file.
311
+ */
312
+ findAssignmentExpression(sourceFile, typeChecker) {
313
+ let result = null;
314
+ const visit = (node) => {
315
+ if (ts.isExpressionStatement(node) && ts.isBinaryExpression(node.expression)) {
316
+ const expr = node.expression;
317
+ if (expr.operatorToken.kind === ts.SyntaxKind.EqualsToken && ts.isIdentifier(expr.left)) {
318
+ const type = typeChecker.getTypeAtLocation(expr.right);
319
+ const typeString = typeChecker.typeToString(type);
320
+ let value;
321
+ if (ts.isNumericLiteral(expr.right)) {
322
+ value = Number(expr.right.text);
323
+ } else if (ts.isStringLiteral(expr.right)) {
324
+ value = expr.right.text;
325
+ }
326
+ const references = this.findReferences(expr.right, sourceFile, typeChecker);
327
+ result = {
328
+ name: expr.left.text,
329
+ type: "variable",
330
+ valueType: typeString,
331
+ value,
332
+ references
333
+ };
334
+ }
335
+ }
336
+ if (!result) {
337
+ ts.forEachChild(node, visit);
338
+ }
339
+ };
340
+ visit(sourceFile);
341
+ return result;
342
+ }
343
+ /**
344
+ * Find all identifier references in a source file.
345
+ */
346
+ findAllReferences(sourceFile, _typeChecker) {
347
+ const references = /* @__PURE__ */ new Set();
348
+ const visit = (node) => {
349
+ if (ts.isIdentifier(node)) {
350
+ const parent = node.parent;
351
+ const isDeclaration = ts.isVariableDeclaration(parent) && parent.name === node || ts.isFunctionDeclaration(parent) && parent.name === node || ts.isParameter(parent) && parent.name === node;
352
+ const isAssignmentTarget = ts.isBinaryExpression(parent) && parent.operatorToken.kind === ts.SyntaxKind.EqualsToken && parent.left === node;
353
+ if (!isDeclaration && !isAssignmentTarget && !this.isBuiltIn(node.text)) {
354
+ references.add(node.text);
355
+ }
356
+ }
357
+ ts.forEachChild(node, visit);
358
+ };
359
+ visit(sourceFile);
360
+ return Array.from(references);
361
+ }
362
+ createEnvironment(files) {
363
+ const allFiles = [
364
+ ...systemFiles,
365
+ ...files
366
+ ];
367
+ const fileMap = /* @__PURE__ */ new Map();
368
+ allFiles.forEach(({ filename, content }) => {
369
+ fileMap.set(filename, content);
370
+ });
371
+ const system = createSystem(fileMap);
372
+ return createVirtualTypeScriptEnvironment(system, allFiles.map(({ filename }) => filename), ts, this.compilerOptions);
373
+ }
374
+ constructor() {
375
+ _define_property(this, "compilerOptions", {
376
+ target: ts.ScriptTarget.ES2020,
377
+ module: ts.ModuleKind.ESNext,
378
+ strict: true,
379
+ esModuleInterop: true,
380
+ skipLibCheck: true,
381
+ forceConsistentCasingInfilenames: true,
382
+ jsx: ts.JsxEmit.React,
383
+ noLib: true
384
+ });
385
+ }
386
+ };
387
+
388
+ // src/notebook/notebook.ts
389
+ function _define_property2(obj, key, value) {
390
+ if (key in obj) {
391
+ Object.defineProperty(obj, key, {
392
+ value,
393
+ enumerable: true,
394
+ configurable: true,
395
+ writable: true
396
+ });
397
+ } else {
398
+ obj[key] = value;
399
+ }
400
+ return obj;
401
+ }
402
+ var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-script/src/notebook/notebook.ts";
403
+ var ComputeGraph = class {
404
+ /**
405
+ * Parsed expressions by cell ID.
406
+ */
407
+ get expressions() {
408
+ return this._expressions;
409
+ }
410
+ /**
411
+ * Computed values by cell ID.
412
+ */
413
+ get values() {
414
+ return this._values;
415
+ }
416
+ /**
417
+ * Compute values.
418
+ */
419
+ evaluate() {
420
+ const { expressions, dependencyGraph } = this.parse();
421
+ this._values.value = {};
422
+ const cellExpressions = /* @__PURE__ */ new Map();
423
+ Object.entries(expressions).forEach(([id, expr]) => {
424
+ cellExpressions.set(id, expr);
425
+ });
426
+ const evaluationOrder = this.topologicalSort(Object.keys(expressions), dependencyGraph);
427
+ const valuesByName = {};
428
+ const valuesByCellId = {};
429
+ for (const cellId of evaluationOrder) {
430
+ const expr = cellExpressions.get(cellId);
431
+ if (!expr) {
432
+ log.error("no expression for cell", {
433
+ cellId
434
+ }, {
435
+ F: __dxlog_file2,
436
+ L: 64,
437
+ S: this,
438
+ C: (f, a) => f(...a)
439
+ });
440
+ continue;
441
+ }
442
+ const cellSource = this._notebook.cells.find((cell) => cell.id === cellId)?.script?.target?.content;
443
+ if (!cellSource) {
444
+ log.error("no source for cell", {
445
+ cellId
446
+ }, {
447
+ F: __dxlog_file2,
448
+ L: 70,
449
+ S: this,
450
+ C: (f, a) => f(...a)
451
+ });
452
+ continue;
453
+ }
454
+ try {
455
+ if (expr.name && expr.value !== void 0) {
456
+ valuesByName[expr.name] = expr.value;
457
+ valuesByCellId[cellId] = expr.value;
458
+ } else if (expr.name) {
459
+ const equalIndex = cellSource.indexOf("=");
460
+ if (equalIndex !== -1) {
461
+ let rhs = cellSource.substring(equalIndex + 1).trim();
462
+ if (rhs.endsWith(";")) {
463
+ rhs = rhs.slice(0, -1).trim();
464
+ }
465
+ const result = evalScript(rhs, valuesByName);
466
+ valuesByName[expr.name] = result;
467
+ if (typeof result !== "function") {
468
+ valuesByCellId[cellId] = result;
469
+ }
470
+ }
471
+ } else {
472
+ const result = evalScript(cellSource, valuesByName);
473
+ valuesByCellId[cellId] = result;
474
+ }
475
+ } catch (error) {
476
+ log.error("error evaluating cell", {
477
+ cellId,
478
+ error
479
+ }, {
480
+ F: __dxlog_file2,
481
+ L: 105,
482
+ S: this,
483
+ C: (f, a) => f(...a)
484
+ });
485
+ }
486
+ }
487
+ this._values.value = valuesByCellId;
488
+ return valuesByCellId;
489
+ }
490
+ /**
491
+ * Parse expressions.
492
+ */
493
+ parse() {
494
+ const expressions = this._notebook.cells.filter((cell) => cell.type === "script").reduce((acc, cell) => {
495
+ const text = cell.script?.target?.content.trim();
496
+ if (text) {
497
+ const parsed = this._parser.parseExpression(text);
498
+ acc[cell.id] = parsed;
499
+ }
500
+ return acc;
501
+ }, {});
502
+ const dependencyGraph = this.buildDependencyGraph(expressions);
503
+ this._expressions.value = expressions;
504
+ return {
505
+ expressions,
506
+ dependencyGraph
507
+ };
508
+ }
509
+ topologicalSort(nodes, dependencies) {
510
+ const visited = /* @__PURE__ */ new Set();
511
+ const result = [];
512
+ const visit = (node) => {
513
+ if (visited.has(node)) {
514
+ return;
515
+ }
516
+ visited.add(node);
517
+ const deps = dependencies[node] || [];
518
+ deps.forEach((dep) => visit(dep));
519
+ result.push(node);
520
+ };
521
+ nodes.forEach((node) => visit(node));
522
+ return result;
523
+ }
524
+ buildDependencyGraph(expressions) {
525
+ const nameToCellId = /* @__PURE__ */ new Map();
526
+ Object.entries(expressions).forEach(([id, expr]) => {
527
+ if (expr.name) {
528
+ nameToCellId.set(expr.name, id);
529
+ }
530
+ });
531
+ const graph = {};
532
+ Object.entries(expressions).forEach(([id, expr]) => {
533
+ if (expr.references && expr.references.length > 0) {
534
+ const dependencyCellIds = expr.references.map((ref) => nameToCellId.get(ref)).filter((cellId) => cellId !== void 0 && cellId !== id);
535
+ if (dependencyCellIds.length > 0) {
536
+ graph[id] = dependencyCellIds;
537
+ }
538
+ }
539
+ });
540
+ return graph;
541
+ }
542
+ constructor(_notebook) {
543
+ _define_property2(this, "_notebook", void 0);
544
+ _define_property2(this, "_parser", void 0);
545
+ _define_property2(this, "_expressions", void 0);
546
+ _define_property2(this, "_values", void 0);
547
+ this._notebook = _notebook;
548
+ this._parser = new VirtualTypeScriptParser();
549
+ this._expressions = signal({});
550
+ this._values = signal({});
551
+ }
552
+ };
553
+
554
+ // src/components/NotebookContainer.tsx
555
+ var __dxlog_file3 = "/__w/dxos/dxos/packages/plugins/plugin-script/src/components/NotebookContainer.tsx";
556
+ var NotebookContainer = ({ notebook, env }) => {
557
+ var _effect = _useSignals();
558
+ try {
559
+ const { t } = useTranslation(meta.id);
560
+ const space = getSpace(notebook);
561
+ const graph = useMemo(() => notebook && new ComputeGraph(notebook), [
562
+ notebook
563
+ ]);
564
+ const handleCompute = useCallback(() => {
565
+ graph?.evaluate();
566
+ }, [
567
+ graph
568
+ ]);
569
+ const handleRearrange = useCallback((source, target) => {
570
+ invariant2(notebook, void 0, {
571
+ F: __dxlog_file3,
572
+ L: 41,
573
+ S: void 0,
574
+ A: [
575
+ "notebook",
576
+ ""
577
+ ]
578
+ });
579
+ const from = notebook.cells.findIndex((cell) => cell.id === source.id);
580
+ const to = notebook.cells.findIndex((cell) => cell.id === target.id);
581
+ if (from != null && to != null) {
582
+ const cell = notebook.cells.splice(from, 1)[0];
583
+ if (cell) {
584
+ notebook.cells.splice(to, 0, cell);
585
+ }
586
+ }
587
+ }, [
588
+ notebook
589
+ ]);
590
+ const handleCellInsert = useCallback((type, after) => {
591
+ invariant2(notebook, void 0, {
592
+ F: __dxlog_file3,
593
+ L: 56,
594
+ S: void 0,
595
+ A: [
596
+ "notebook",
597
+ ""
598
+ ]
599
+ });
600
+ const cell = {
601
+ id: crypto.randomUUID(),
602
+ type
603
+ };
604
+ switch (type) {
605
+ case "markdown":
606
+ case "script":
607
+ case "query": {
608
+ cell.script = Ref.make(DataType.makeText());
609
+ break;
610
+ }
611
+ case "prompt": {
612
+ if (space) {
613
+ cell.chat = Ref.make(Assistant.makeChat({
614
+ queue: space.queues.create()
615
+ }));
616
+ }
617
+ break;
618
+ }
619
+ }
620
+ const idx = after ? notebook.cells.findIndex((cell2) => cell2.id === after) : notebook.cells.length;
621
+ notebook.cells.splice(idx, 0, cell);
622
+ }, [
623
+ space,
624
+ notebook
625
+ ]);
626
+ const handleCellDelete = useCallback((id) => {
627
+ invariant2(notebook, void 0, {
628
+ F: __dxlog_file3,
629
+ L: 82,
630
+ S: void 0,
631
+ A: [
632
+ "notebook",
633
+ ""
634
+ ]
635
+ });
636
+ const idx = notebook.cells.findIndex((cell) => cell.id === id);
637
+ if (idx !== -1) {
638
+ notebook.cells.splice(idx, 1);
639
+ }
640
+ }, [
641
+ notebook
642
+ ]);
643
+ return /* @__PURE__ */ React.createElement(StackItem.Content, {
644
+ toolbar: true
645
+ }, /* @__PURE__ */ React.createElement(Toolbar.Root, {
646
+ textBlockWidth: true
647
+ }, /* @__PURE__ */ React.createElement(DropdownMenu.Root, null, /* @__PURE__ */ React.createElement(DropdownMenu.Trigger, {
648
+ asChild: true
649
+ }, /* @__PURE__ */ React.createElement(IconButton, {
650
+ icon: "ph--plus--regular",
651
+ iconOnly: true,
652
+ label: t("notebook cell insert label")
653
+ })), /* @__PURE__ */ React.createElement(NotebookMenu, {
654
+ onCellInsert: handleCellInsert
655
+ })), /* @__PURE__ */ React.createElement(Toolbar.IconButton, {
656
+ icon: "ph--play--fill",
657
+ iconOnly: true,
658
+ label: t("compute label"),
659
+ classNames: "text-green-500",
660
+ onClick: handleCompute
661
+ })), /* @__PURE__ */ React.createElement("div", {
662
+ role: "none",
663
+ className: "flex bs-full overflow-hidden -mis-[1px] -mie-[1px]"
664
+ }, /* @__PURE__ */ React.createElement(NotebookStack, {
665
+ classNames: "container-max-width border-l border-r border-subduedSeparator",
666
+ space,
667
+ notebook,
668
+ graph,
669
+ env,
670
+ onRearrange: handleRearrange,
671
+ onCellInsert: handleCellInsert,
672
+ onCellDelete: handleCellDelete
673
+ })));
674
+ } finally {
675
+ _effect.f();
676
+ }
677
+ };
678
+ var NotebookContainer_default = NotebookContainer;
679
+ export {
680
+ NotebookContainer,
681
+ NotebookContainer_default as default
682
+ };
683
+ //# sourceMappingURL=NotebookContainer-LVGRPFY3.mjs.map