@dxos/plugin-script 0.8.4-main.abd8ff62ef → 0.8.4-main.bc2380dfbc

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 (316) hide show
  1. package/LICENSE +102 -5
  2. package/dist/lib/{browser/NotebookContainer-RO4NJRYH.mjs → neutral/NotebookArticle-3TE4WBZC.mjs} +13 -10
  3. package/dist/lib/neutral/NotebookArticle-3TE4WBZC.mjs.map +7 -0
  4. package/dist/lib/{browser/ScriptContainer-2OPBAXFB.mjs → neutral/ScriptArticle-UBT27SB6.mjs} +4 -4
  5. package/dist/lib/{browser/ScriptContainer-2OPBAXFB.mjs.map → neutral/ScriptArticle-UBT27SB6.mjs.map} +4 -4
  6. package/dist/lib/neutral/ScriptPlugin.mjs +39 -0
  7. package/dist/lib/neutral/ScriptPlugin.mjs.map +7 -0
  8. package/dist/lib/neutral/ScriptPlugin.node.mjs +27 -0
  9. package/dist/lib/neutral/ScriptPlugin.node.mjs.map +7 -0
  10. package/dist/lib/neutral/ScriptPlugin.workerd.mjs +21 -0
  11. package/dist/lib/neutral/ScriptPlugin.workerd.mjs.map +7 -0
  12. package/dist/lib/neutral/ScriptPluginSettings-T4JMUSHN.mjs +31 -0
  13. package/dist/lib/neutral/ScriptPluginSettings-T4JMUSHN.mjs.map +7 -0
  14. package/dist/lib/{browser/ScriptProperties-NRXG4PBX.mjs → neutral/ScriptProperties-RLXNAN3N.mjs} +9 -16
  15. package/dist/lib/neutral/ScriptProperties-RLXNAN3N.mjs.map +7 -0
  16. package/dist/lib/{browser/TestContainer-JNFPLAJX.mjs → neutral/TestContainer-AFVTBYSJ.mjs} +5 -5
  17. package/dist/lib/neutral/TestContainer-AFVTBYSJ.mjs.map +7 -0
  18. package/dist/lib/{browser/access-token-created-MSWZWZCT.mjs → neutral/access-token-created-XNDXOZ2U.mjs} +6 -9
  19. package/dist/lib/neutral/access-token-created-XNDXOZ2U.mjs.map +7 -0
  20. package/dist/lib/neutral/app-graph-builder-7AWFCEQF.mjs +52 -0
  21. package/dist/lib/neutral/app-graph-builder-7AWFCEQF.mjs.map +7 -0
  22. package/dist/lib/neutral/blueprint-definition-T33SBPP2.mjs +15 -0
  23. package/dist/lib/neutral/blueprint-definition-T33SBPP2.mjs.map +7 -0
  24. package/dist/lib/neutral/blueprints/index.mjs +10 -0
  25. package/dist/lib/neutral/capabilities/index.mjs +21 -0
  26. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  27. package/dist/lib/neutral/capabilities/node.mjs +17 -0
  28. package/dist/lib/neutral/capabilities/node.mjs.map +7 -0
  29. package/dist/lib/neutral/chunk-2REUEDUA.mjs +56 -0
  30. package/dist/lib/neutral/chunk-2REUEDUA.mjs.map +7 -0
  31. package/dist/lib/{browser/chunk-NSAF3763.mjs → neutral/chunk-A4LRH25S.mjs} +3 -3
  32. package/dist/lib/neutral/chunk-A4LRH25S.mjs.map +7 -0
  33. package/dist/lib/{browser/blueprints/index.mjs → neutral/chunk-BDRB6ZX2.mjs} +4 -10
  34. package/dist/lib/neutral/chunk-BDRB6ZX2.mjs.map +7 -0
  35. package/dist/lib/neutral/chunk-BMO5VOKL.mjs +125 -0
  36. package/dist/lib/neutral/chunk-BMO5VOKL.mjs.map +7 -0
  37. package/dist/lib/neutral/chunk-LYPVNW4K.mjs +8 -0
  38. package/dist/lib/neutral/chunk-LYPVNW4K.mjs.map +7 -0
  39. package/dist/lib/neutral/chunk-P2F3STZN.mjs +8 -0
  40. package/dist/lib/neutral/chunk-P2F3STZN.mjs.map +7 -0
  41. package/dist/lib/neutral/chunk-SNUWHNEW.mjs +8 -0
  42. package/dist/lib/neutral/chunk-SNUWHNEW.mjs.map +7 -0
  43. package/dist/lib/neutral/chunk-UYR3YH4Q.mjs +31 -0
  44. package/dist/lib/neutral/chunk-UYR3YH4Q.mjs.map +7 -0
  45. package/dist/lib/{browser/index.mjs → neutral/chunk-VXDJH6OL.mjs} +20 -63
  46. package/dist/lib/neutral/chunk-VXDJH6OL.mjs.map +7 -0
  47. package/dist/lib/neutral/compiler-ODK4UA2N.mjs +101 -0
  48. package/dist/lib/neutral/compiler-ODK4UA2N.mjs.map +7 -0
  49. package/dist/lib/neutral/components/index.mjs +721 -0
  50. package/dist/lib/neutral/components/index.mjs.map +7 -0
  51. package/dist/lib/neutral/containers/index.mjs +17 -0
  52. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  53. package/dist/lib/{browser/create-JDXWBARB.mjs → neutral/create-ZUHIXCBS.mjs} +4 -2
  54. package/dist/lib/{browser/create-JDXWBARB.mjs.map → neutral/create-ZUHIXCBS.mjs.map} +3 -3
  55. package/dist/lib/neutral/create-object-F2NWICFV.mjs +44 -0
  56. package/dist/lib/neutral/create-object-F2NWICFV.mjs.map +7 -0
  57. package/dist/lib/{browser/create-script-Q7B3CFAP.mjs → neutral/create-script-H5S4AO47.mjs} +5 -5
  58. package/dist/lib/neutral/create-script-H5S4AO47.mjs.map +7 -0
  59. package/dist/lib/{browser/deploy-CXVW54JJ.mjs → neutral/deploy-M73G7HMP.mjs} +4 -3
  60. package/dist/lib/{browser/deploy-CXVW54JJ.mjs.map → neutral/deploy-M73G7HMP.mjs.map} +3 -3
  61. package/dist/lib/neutral/hooks/index.mjs +369 -0
  62. package/dist/lib/neutral/hooks/index.mjs.map +7 -0
  63. package/dist/lib/neutral/index.mjs +41 -0
  64. package/dist/lib/{browser/inspect-invocations-LEOEP5I2.mjs → neutral/inspect-invocations-UO27IPCL.mjs} +3 -3
  65. package/dist/lib/{browser/inspect-invocations-LEOEP5I2.mjs.map → neutral/inspect-invocations-UO27IPCL.mjs.map} +2 -2
  66. package/dist/lib/{browser/install-function-5N24Q45W.mjs → neutral/install-function-MSWSC244.mjs} +5 -7
  67. package/dist/lib/neutral/install-function-MSWSC244.mjs.map +7 -0
  68. package/dist/lib/{browser/invoke-5QVEZ3X5.mjs → neutral/invoke-V6XYXKLD.mjs} +6 -7
  69. package/dist/lib/neutral/invoke-V6XYXKLD.mjs.map +7 -0
  70. package/dist/lib/neutral/meta.json +1 -0
  71. package/dist/lib/neutral/meta.mjs +10 -0
  72. package/dist/lib/neutral/operation-handler-KIZ7XZ5G.mjs +18 -0
  73. package/dist/lib/neutral/operation-handler-KIZ7XZ5G.mjs.map +7 -0
  74. package/dist/lib/neutral/operations/index.mjs +8 -0
  75. package/dist/lib/neutral/plugin.mjs +16 -0
  76. package/dist/lib/neutral/plugin.mjs.map +7 -0
  77. package/dist/lib/{browser/query-deployed-functions-FVD7NYPA.mjs → neutral/query-deployed-functions-4MMKQ6BR.mjs} +13 -9
  78. package/dist/lib/neutral/query-deployed-functions-4MMKQ6BR.mjs.map +7 -0
  79. package/dist/lib/neutral/react-surface-ZMU2CRJ7.mjs +117 -0
  80. package/dist/lib/neutral/react-surface-ZMU2CRJ7.mjs.map +7 -0
  81. package/dist/lib/neutral/settings-VJBW4OMK.mjs +30 -0
  82. package/dist/lib/neutral/settings-VJBW4OMK.mjs.map +7 -0
  83. package/dist/lib/{browser → neutral}/templates/index.mjs +1 -1
  84. package/dist/lib/neutral/types/index.mjs +17 -0
  85. package/dist/lib/neutral/types/index.mjs.map +7 -0
  86. package/dist/types/src/ScriptPlugin.d.ts.map +1 -1
  87. package/dist/types/src/ScriptPlugin.node.d.ts.map +1 -1
  88. package/dist/types/src/ScriptPlugin.workerd.d.ts +4 -0
  89. package/dist/types/src/ScriptPlugin.workerd.d.ts.map +1 -0
  90. package/dist/types/src/blueprints/functions/definitions.d.ts +0 -12
  91. package/dist/types/src/blueprints/functions/definitions.d.ts.map +1 -1
  92. package/dist/types/src/blueprints/functions/delete.d.ts +0 -2
  93. package/dist/types/src/blueprints/functions/deploy.d.ts +0 -2
  94. package/dist/types/src/blueprints/functions/inspect-invocations.d.ts +0 -2
  95. package/dist/types/src/blueprints/functions/invoke.d.ts +2 -4
  96. package/dist/types/src/blueprints/functions/invoke.d.ts.map +1 -1
  97. package/dist/types/src/blueprints/functions/read.d.ts +0 -2
  98. package/dist/types/src/blueprints/functions/update.d.ts +0 -2
  99. package/dist/types/src/capabilities/create-object.d.ts +16 -0
  100. package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
  101. package/dist/types/src/capabilities/index.d.ts +11 -0
  102. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  103. package/dist/types/src/capabilities/node.d.ts +18 -0
  104. package/dist/types/src/capabilities/node.d.ts.map +1 -0
  105. package/dist/types/src/compiler/compiler.d.ts.map +1 -1
  106. package/dist/types/src/components/QueryEditor/QueryEditor.d.ts.map +1 -1
  107. package/dist/types/src/containers/NotebookArticle/NotebookArticle.d.ts +7 -0
  108. package/dist/types/src/containers/NotebookArticle/NotebookArticle.d.ts.map +1 -0
  109. package/dist/types/src/containers/NotebookArticle/NotebookArticle.stories.d.ts +7 -0
  110. package/dist/types/src/containers/NotebookArticle/NotebookArticle.stories.d.ts.map +1 -0
  111. package/dist/types/src/containers/NotebookArticle/index.d.ts +2 -0
  112. package/dist/types/src/containers/{ScriptContainer → NotebookArticle}/index.d.ts.map +1 -1
  113. package/dist/types/src/containers/{ScriptContainer/ScriptContainer.d.ts → ScriptArticle/ScriptArticle.d.ts} +2 -2
  114. package/dist/types/src/containers/ScriptArticle/ScriptArticle.d.ts.map +1 -0
  115. package/dist/types/src/containers/{ScriptContainer/ScriptContainer.stories.d.ts → ScriptArticle/ScriptArticle.stories.d.ts} +1 -1
  116. package/dist/types/src/containers/ScriptArticle/ScriptArticle.stories.d.ts.map +1 -0
  117. package/dist/types/src/containers/ScriptArticle/index.d.ts +2 -0
  118. package/dist/types/src/containers/ScriptArticle/index.d.ts.map +1 -0
  119. package/dist/types/src/containers/ScriptProperties/BlueprintEditor.d.ts.map +1 -1
  120. package/dist/types/src/containers/ScriptProperties/ScriptProperties.stories.d.ts.map +1 -1
  121. package/dist/types/src/containers/index.d.ts +2 -2
  122. package/dist/types/src/containers/index.d.ts.map +1 -1
  123. package/dist/types/src/hooks/deploy.d.ts +0 -2
  124. package/dist/types/src/hooks/deploy.d.ts.map +1 -1
  125. package/dist/types/src/index.d.ts +2 -3
  126. package/dist/types/src/index.d.ts.map +1 -1
  127. package/dist/types/src/operations/access-token-created.d.ts +1 -1
  128. package/dist/types/src/operations/access-token-created.d.ts.map +1 -1
  129. package/dist/types/src/operations/create-script.d.ts +2 -2
  130. package/dist/types/src/operations/create-script.d.ts.map +1 -1
  131. package/dist/types/src/operations/index.d.ts +0 -1
  132. package/dist/types/src/operations/index.d.ts.map +1 -1
  133. package/dist/types/src/plugin.d.ts +4 -0
  134. package/dist/types/src/plugin.d.ts.map +1 -0
  135. package/dist/types/src/templates/chess-bot.d.ts +3 -9
  136. package/dist/types/src/templates/chess-bot.d.ts.map +1 -1
  137. package/dist/types/src/templates/commentary.d.ts +3 -9
  138. package/dist/types/src/templates/commentary.d.ts.map +1 -1
  139. package/dist/types/src/testing/test-script.d.ts.map +1 -1
  140. package/dist/types/src/types/Notebook.d.ts +13 -11
  141. package/dist/types/src/types/Notebook.d.ts.map +1 -1
  142. package/dist/types/src/types/ScriptCapabilities.d.ts +6 -0
  143. package/dist/types/src/types/ScriptCapabilities.d.ts.map +1 -0
  144. package/dist/types/src/types/ScriptEvents.d.ts +3 -0
  145. package/dist/types/src/types/ScriptEvents.d.ts.map +1 -0
  146. package/dist/types/src/{operations/definitions.d.ts → types/ScriptOperation.d.ts} +1 -1
  147. package/dist/types/src/types/ScriptOperation.d.ts.map +1 -0
  148. package/dist/types/src/types/index.d.ts +4 -3
  149. package/dist/types/src/types/index.d.ts.map +1 -1
  150. package/dist/types/tsconfig.tsbuildinfo +1 -1
  151. package/package.json +141 -111
  152. package/src/ScriptPlugin.node.ts +3 -52
  153. package/src/ScriptPlugin.test.ts +3 -3
  154. package/src/ScriptPlugin.tsx +2 -51
  155. package/src/ScriptPlugin.workerd.ts +18 -0
  156. package/src/blueprints/functions/create.ts +1 -1
  157. package/src/blueprints/functions/deploy.ts +2 -1
  158. package/src/blueprints/functions/inspect-invocations.ts +2 -2
  159. package/src/blueprints/functions/install-function.ts +4 -4
  160. package/src/blueprints/functions/invoke.ts +4 -5
  161. package/src/blueprints/functions/query-deployed-functions.ts +11 -7
  162. package/src/capabilities/artifact-definition.ts +2 -2
  163. package/src/capabilities/create-object.ts +48 -0
  164. package/src/capabilities/index.ts +1 -0
  165. package/src/capabilities/node.ts +16 -0
  166. package/src/capabilities/react-surface.tsx +5 -5
  167. package/src/compiler/compiler.ts +4 -0
  168. package/src/components/NotebookStack/NotebookStack.stories.tsx +2 -2
  169. package/src/components/QueryEditor/QueryEditor.stories.tsx +1 -1
  170. package/src/components/QueryEditor/QueryEditor.tsx +3 -1
  171. package/src/components/ScriptToolbar/ScriptToolbar.stories.tsx +1 -1
  172. package/src/components/TypescriptEditor/TypescriptEditor.stories.tsx +1 -1
  173. package/src/containers/DeploymentDialog/DeploymentDialog.stories.tsx +1 -1
  174. package/src/containers/{NotebookContainer/NotebookContainer.stories.tsx → NotebookArticle/NotebookArticle.stories.tsx} +11 -11
  175. package/src/containers/{NotebookContainer/NotebookContainer.tsx → NotebookArticle/NotebookArticle.tsx} +7 -7
  176. package/src/containers/NotebookArticle/index.ts +5 -0
  177. package/src/containers/{ScriptContainer/ScriptContainer.stories.tsx → ScriptArticle/ScriptArticle.stories.tsx} +7 -6
  178. package/src/containers/{ScriptContainer/ScriptContainer.tsx → ScriptArticle/ScriptArticle.tsx} +1 -1
  179. package/src/containers/ScriptArticle/index.ts +5 -0
  180. package/src/containers/ScriptProperties/BlueprintEditor.tsx +10 -9
  181. package/src/containers/ScriptProperties/FunctionBinding.tsx +1 -1
  182. package/src/containers/ScriptProperties/FunctionPublishing.tsx +4 -4
  183. package/src/containers/ScriptProperties/ScriptProperties.stories.tsx +3 -2
  184. package/src/containers/ScriptProperties/ScriptProperties.tsx +1 -1
  185. package/src/containers/TestContainer/TestContainer.tsx +4 -4
  186. package/src/containers/index.ts +2 -2
  187. package/src/e2e/deploy.test.ts +3 -1
  188. package/src/hooks/useCreateAndDeployScriptTemplates.ts +2 -2
  189. package/src/index.ts +2 -7
  190. package/src/operations/access-token-created.ts +1 -1
  191. package/src/operations/create-script.ts +2 -2
  192. package/src/operations/index.ts +0 -2
  193. package/src/plugin.ts +11 -0
  194. package/src/templates/chess-bot.ts +10 -8
  195. package/src/templates/commentary.ts +14 -14
  196. package/src/testing/test-notebook.ts +7 -7
  197. package/src/testing/test-script.ts +1 -2
  198. package/src/types/Notebook.ts +1 -1
  199. package/src/types/ScriptCapabilities.ts +18 -0
  200. package/src/types/ScriptEvents.ts +11 -0
  201. package/src/{operations/definitions.ts → types/ScriptOperation.ts} +2 -0
  202. package/src/types/index.ts +5 -3
  203. package/src/util/deploy.ts +1 -1
  204. package/src/util/functions.ts +4 -4
  205. package/dist/lib/browser/NotebookContainer-RO4NJRYH.mjs.map +0 -7
  206. package/dist/lib/browser/ScriptProperties-NRXG4PBX.mjs.map +0 -7
  207. package/dist/lib/browser/TestContainer-JNFPLAJX.mjs.map +0 -7
  208. package/dist/lib/browser/access-token-created-MSWZWZCT.mjs.map +0 -7
  209. package/dist/lib/browser/blueprints/index.mjs.map +0 -7
  210. package/dist/lib/browser/chunk-KF6H7J5N.mjs +0 -81
  211. package/dist/lib/browser/chunk-KF6H7J5N.mjs.map +0 -7
  212. package/dist/lib/browser/chunk-NSAF3763.mjs.map +0 -7
  213. package/dist/lib/browser/chunk-RQ5LDVFK.mjs +0 -49
  214. package/dist/lib/browser/chunk-RQ5LDVFK.mjs.map +0 -7
  215. package/dist/lib/browser/containers/index.mjs +0 -17
  216. package/dist/lib/browser/containers/index.mjs.map +0 -7
  217. package/dist/lib/browser/create-script-Q7B3CFAP.mjs.map +0 -7
  218. package/dist/lib/browser/index.mjs.map +0 -7
  219. package/dist/lib/browser/install-function-5N24Q45W.mjs.map +0 -7
  220. package/dist/lib/browser/invoke-5QVEZ3X5.mjs.map +0 -7
  221. package/dist/lib/browser/meta.json +0 -1
  222. package/dist/lib/browser/operations/index.mjs +0 -14
  223. package/dist/lib/browser/operations/index.mjs.map +0 -7
  224. package/dist/lib/browser/query-deployed-functions-FVD7NYPA.mjs.map +0 -7
  225. package/dist/lib/browser/types/index.mjs +0 -14
  226. package/dist/lib/node-esm/DeploymentDialog-A5BZHUJB.mjs +0 -113
  227. package/dist/lib/node-esm/DeploymentDialog-A5BZHUJB.mjs.map +0 -7
  228. package/dist/lib/node-esm/NotebookContainer-DPT65MA7.mjs +0 -761
  229. package/dist/lib/node-esm/NotebookContainer-DPT65MA7.mjs.map +0 -7
  230. package/dist/lib/node-esm/ScriptContainer-UKD7QORM.mjs +0 -80
  231. package/dist/lib/node-esm/ScriptContainer-UKD7QORM.mjs.map +0 -7
  232. package/dist/lib/node-esm/ScriptProperties-FQXEOJKG.mjs +0 -305
  233. package/dist/lib/node-esm/ScriptProperties-FQXEOJKG.mjs.map +0 -7
  234. package/dist/lib/node-esm/TestContainer-Y4XVV7KQ.mjs +0 -45
  235. package/dist/lib/node-esm/TestContainer-Y4XVV7KQ.mjs.map +0 -7
  236. package/dist/lib/node-esm/access-token-created-DCD6LYQC.mjs +0 -38
  237. package/dist/lib/node-esm/access-token-created-DCD6LYQC.mjs.map +0 -7
  238. package/dist/lib/node-esm/blueprints/index.mjs +0 -59
  239. package/dist/lib/node-esm/blueprints/index.mjs.map +0 -7
  240. package/dist/lib/node-esm/chunk-2DZNF5NG.mjs +0 -82
  241. package/dist/lib/node-esm/chunk-2DZNF5NG.mjs.map +0 -7
  242. package/dist/lib/node-esm/chunk-C55UYWN4.mjs +0 -50
  243. package/dist/lib/node-esm/chunk-C55UYWN4.mjs.map +0 -7
  244. package/dist/lib/node-esm/chunk-EW63XFRQ.mjs +0 -107
  245. package/dist/lib/node-esm/chunk-EW63XFRQ.mjs.map +0 -7
  246. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +0 -11
  247. package/dist/lib/node-esm/chunk-XFM2BEHY.mjs +0 -338
  248. package/dist/lib/node-esm/chunk-XFM2BEHY.mjs.map +0 -7
  249. package/dist/lib/node-esm/containers/index.mjs +0 -18
  250. package/dist/lib/node-esm/containers/index.mjs.map +0 -7
  251. package/dist/lib/node-esm/create-D2JDNXY6.mjs +0 -45
  252. package/dist/lib/node-esm/create-D2JDNXY6.mjs.map +0 -7
  253. package/dist/lib/node-esm/create-script-4AB4G7GQ.mjs +0 -46
  254. package/dist/lib/node-esm/create-script-4AB4G7GQ.mjs.map +0 -7
  255. package/dist/lib/node-esm/delete-YXLT7J27.mjs +0 -22
  256. package/dist/lib/node-esm/delete-YXLT7J27.mjs.map +0 -7
  257. package/dist/lib/node-esm/deploy-MXVZXAUC.mjs +0 -63
  258. package/dist/lib/node-esm/deploy-MXVZXAUC.mjs.map +0 -7
  259. package/dist/lib/node-esm/index.mjs +0 -194
  260. package/dist/lib/node-esm/index.mjs.map +0 -7
  261. package/dist/lib/node-esm/inspect-invocations-TVAKGYX5.mjs +0 -60
  262. package/dist/lib/node-esm/inspect-invocations-TVAKGYX5.mjs.map +0 -7
  263. package/dist/lib/node-esm/install-function-ST3VABJH.mjs +0 -52
  264. package/dist/lib/node-esm/install-function-ST3VABJH.mjs.map +0 -7
  265. package/dist/lib/node-esm/invoke-64WDU55Y.mjs +0 -34
  266. package/dist/lib/node-esm/invoke-64WDU55Y.mjs.map +0 -7
  267. package/dist/lib/node-esm/meta.json +0 -1
  268. package/dist/lib/node-esm/operations/index.mjs +0 -15
  269. package/dist/lib/node-esm/operations/index.mjs.map +0 -7
  270. package/dist/lib/node-esm/query-deployed-functions-2VCNGQ7X.mjs +0 -31
  271. package/dist/lib/node-esm/query-deployed-functions-2VCNGQ7X.mjs.map +0 -7
  272. package/dist/lib/node-esm/read-PECQUAPS.mjs +0 -27
  273. package/dist/lib/node-esm/read-PECQUAPS.mjs.map +0 -7
  274. package/dist/lib/node-esm/templates/index.mjs +0 -11
  275. package/dist/lib/node-esm/translations.mjs +0 -105
  276. package/dist/lib/node-esm/translations.mjs.map +0 -7
  277. package/dist/lib/node-esm/types/index.mjs +0 -15
  278. package/dist/lib/node-esm/update-XDFTGSPP.mjs +0 -64
  279. package/dist/lib/node-esm/update-XDFTGSPP.mjs.map +0 -7
  280. package/dist/types/src/containers/NotebookContainer/NotebookContainer.d.ts +0 -7
  281. package/dist/types/src/containers/NotebookContainer/NotebookContainer.d.ts.map +0 -1
  282. package/dist/types/src/containers/NotebookContainer/NotebookContainer.stories.d.ts +0 -7
  283. package/dist/types/src/containers/NotebookContainer/NotebookContainer.stories.d.ts.map +0 -1
  284. package/dist/types/src/containers/NotebookContainer/index.d.ts +0 -2
  285. package/dist/types/src/containers/NotebookContainer/index.d.ts.map +0 -1
  286. package/dist/types/src/containers/ScriptContainer/ScriptContainer.d.ts.map +0 -1
  287. package/dist/types/src/containers/ScriptContainer/ScriptContainer.stories.d.ts.map +0 -1
  288. package/dist/types/src/containers/ScriptContainer/index.d.ts +0 -2
  289. package/dist/types/src/operations/definitions.d.ts.map +0 -1
  290. package/dist/types/src/types/capabilities.d.ts +0 -9
  291. package/dist/types/src/types/capabilities.d.ts.map +0 -1
  292. package/dist/types/src/types/events.d.ts +0 -5
  293. package/dist/types/src/types/events.d.ts.map +0 -1
  294. package/src/containers/NotebookContainer/index.ts +0 -5
  295. package/src/containers/ScriptContainer/index.ts +0 -5
  296. package/src/types/capabilities.ts +0 -17
  297. package/src/types/events.ts +0 -11
  298. /package/dist/lib/{browser → neutral}/DeploymentDialog-6DBF3V6C.mjs +0 -0
  299. /package/dist/lib/{browser → neutral}/DeploymentDialog-6DBF3V6C.mjs.map +0 -0
  300. /package/dist/lib/{browser/templates → neutral/blueprints}/index.mjs.map +0 -0
  301. /package/dist/lib/{browser → neutral}/chunk-J5LGTIGS.mjs +0 -0
  302. /package/dist/lib/{browser → neutral}/chunk-J5LGTIGS.mjs.map +0 -0
  303. /package/dist/lib/{browser → neutral}/chunk-MI6X5CTJ.mjs +0 -0
  304. /package/dist/lib/{browser → neutral}/chunk-MI6X5CTJ.mjs.map +0 -0
  305. /package/dist/lib/{browser → neutral}/delete-PAUWA2QM.mjs +0 -0
  306. /package/dist/lib/{browser → neutral}/delete-PAUWA2QM.mjs.map +0 -0
  307. /package/dist/lib/{browser/types → neutral}/index.mjs.map +0 -0
  308. /package/dist/lib/{node-esm/chunk-HSLMI22Q.mjs.map → neutral/meta.mjs.map} +0 -0
  309. /package/dist/lib/{node-esm/templates → neutral/operations}/index.mjs.map +0 -0
  310. /package/dist/lib/{browser → neutral}/read-FFOSK6A3.mjs +0 -0
  311. /package/dist/lib/{browser → neutral}/read-FFOSK6A3.mjs.map +0 -0
  312. /package/dist/lib/{node-esm/types → neutral/templates}/index.mjs.map +0 -0
  313. /package/dist/lib/{browser → neutral}/translations.mjs +0 -0
  314. /package/dist/lib/{browser → neutral}/translations.mjs.map +0 -0
  315. /package/dist/lib/{browser → neutral}/update-PJS5GG3Y.mjs +0 -0
  316. /package/dist/lib/{browser → neutral}/update-PJS5GG3Y.mjs.map +0 -0
package/LICENSE CHANGED
@@ -1,8 +1,105 @@
1
- MIT License
2
- Copyright (c) 2022 DXOS
1
+ # Functional Source License, Version 1.1, ALv2 Future License
3
2
 
4
- Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
3
+ ## Abbreviation
5
4
 
6
- The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
5
+ FSL-1.1-Apache-2.0
7
6
 
8
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
7
+ ## Notice
8
+
9
+ Copyright 2026 DXOS
10
+
11
+ ## Terms and Conditions
12
+
13
+ ### Licensor ("We")
14
+
15
+ The party offering the Software under these Terms and Conditions.
16
+
17
+ ### The Software
18
+
19
+ The "Software" is each version of the software that we make available under
20
+ these Terms and Conditions, as indicated by our inclusion of these Terms and
21
+ Conditions with the Software.
22
+
23
+ ### License Grant
24
+
25
+ Subject to your compliance with this License Grant and the Patents,
26
+ Redistribution and Trademark clauses below, we hereby grant you the right to
27
+ use, copy, modify, create derivative works, publicly perform, publicly display
28
+ and redistribute the Software for any Permitted Purpose identified below.
29
+
30
+ ### Permitted Purpose
31
+
32
+ A Permitted Purpose is any purpose other than a Competing Use. A Competing Use
33
+ means making the Software available to others in a commercial product or
34
+ service that:
35
+
36
+ 1. substitutes for the Software;
37
+
38
+ 2. substitutes for any other product or service we offer using the Software
39
+ that exists as of the date we make the Software available; or
40
+
41
+ 3. offers the same or substantially similar functionality as the Software.
42
+
43
+ Permitted Purposes specifically include using the Software:
44
+
45
+ 1. for your internal use and access;
46
+
47
+ 2. for non-commercial education;
48
+
49
+ 3. for non-commercial research; and
50
+
51
+ 4. in connection with professional services that you provide to a licensee
52
+ using the Software in accordance with these Terms and Conditions.
53
+
54
+ ### Patents
55
+
56
+ To the extent your use for a Permitted Purpose would necessarily infringe our
57
+ patents, the license grant above includes a license under our patents. If you
58
+ make a claim against any party that the Software infringes or contributes to
59
+ the infringement of any patent, then your patent license to the Software ends
60
+ immediately.
61
+
62
+ ### Redistribution
63
+
64
+ The Terms and Conditions apply to all copies, modifications and derivatives of
65
+ the Software.
66
+
67
+ If you redistribute any copies, modifications or derivatives of the Software,
68
+ you must include a copy of or a link to these Terms and Conditions and not
69
+ remove any copyright notices provided in or with the Software.
70
+
71
+ ### Disclaimer
72
+
73
+ THE SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTIES OF ANY KIND, EXPRESS OR
74
+ IMPLIED, INCLUDING WITHOUT LIMITATION WARRANTIES OF FITNESS FOR A PARTICULAR
75
+ PURPOSE, MERCHANTABILITY, TITLE OR NON-INFRINGEMENT.
76
+
77
+ IN NO EVENT WILL WE HAVE ANY LIABILITY TO YOU ARISING OUT OF OR RELATED TO THE
78
+ SOFTWARE, INCLUDING INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES,
79
+ EVEN IF WE HAVE BEEN INFORMED OF THEIR POSSIBILITY IN ADVANCE.
80
+
81
+ ### Trademarks
82
+
83
+ Except for displaying the License Details and identifying us as the origin of
84
+ the Software, you have no right under these Terms and Conditions to use our
85
+ trademarks, trade names, service marks or product names.
86
+
87
+ ## Grant of Future License
88
+
89
+ We hereby irrevocably grant you an additional license to use the Software under
90
+ the Apache License, Version 2.0 that is effective on the second anniversary of
91
+ the date we make the Software available. On or after that date, you may use the
92
+ Software under the Apache License, Version 2.0, in which case the following
93
+ will apply:
94
+
95
+ Licensed under the Apache License, Version 2.0 (the "License"); you may not use
96
+ this file except in compliance with the License.
97
+
98
+ You may obtain a copy of the License at
99
+
100
+ http://www.apache.org/licenses/LICENSE-2.0
101
+
102
+ Unless required by applicable law or agreed to in writing, software distributed
103
+ under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
104
+ CONDITIONS OF ANY KIND, either express or implied. See the License for the
105
+ specific language governing permissions and limitations under the License.
@@ -1,6 +1,6 @@
1
1
  import "./chunk-J5LGTIGS.mjs";
2
2
 
3
- // src/containers/NotebookContainer/NotebookContainer.tsx
3
+ // src/containers/NotebookArticle/NotebookArticle.tsx
4
4
  import { RegistryContext } from "@effect-atom/atom-react";
5
5
  import * as Cause from "effect/Cause";
6
6
  import * as Effect from "effect/Effect";
@@ -14,7 +14,7 @@ import { QueryBuilder } from "@dxos/echo-query";
14
14
  import { invariant as invariant2 } from "@dxos/invariant";
15
15
  import { log as log2 } from "@dxos/log";
16
16
  import { useComputeRuntimeCallback } from "@dxos/plugin-automation/hooks";
17
- import { Graph } from "@dxos/plugin-explorer/types";
17
+ import { Graph } from "@dxos/plugin-explorer";
18
18
  import { DropdownMenu, IconButton, Panel, Toolbar, useTranslation } from "@dxos/react-ui";
19
19
  import { useAttention } from "@dxos/react-ui-attention";
20
20
  import { Text, ViewModel } from "@dxos/schema";
@@ -544,14 +544,14 @@ var ComputeGraph = class {
544
544
  }
545
545
  };
546
546
 
547
- // src/containers/NotebookContainer/NotebookContainer.tsx
548
- var __dxlog_file3 = "/__w/dxos/dxos/packages/plugins/plugin-script/src/containers/NotebookContainer/NotebookContainer.tsx";
547
+ // src/containers/NotebookArticle/NotebookArticle.tsx
548
+ var __dxlog_file3 = "/__w/dxos/dxos/packages/plugins/plugin-script/src/containers/NotebookArticle/NotebookArticle.tsx";
549
549
  var INCLUDE_BLUEPRINTS = [
550
550
  "org.dxos.blueprint.assistant",
551
551
  "org.dxos.blueprint.database",
552
552
  "org.dxos.blueprint.markdown"
553
553
  ];
554
- var NotebookContainer = ({ role, subject: notebook, attendableId, env }) => {
554
+ var NotebookArticle = ({ role, subject: notebook, attendableId, env }) => {
555
555
  const { t } = useTranslation(meta.id);
556
556
  const registry = useContext(RegistryContext);
557
557
  const db = Obj.getDatabase(notebook);
@@ -675,7 +675,10 @@ var NotebookContainer = ({ role, subject: notebook, attendableId, env }) => {
675
675
  case "prompt": {
676
676
  if (db) {
677
677
  const objects = await db.query(Query.select(Filter.type(Blueprint.Blueprint))).run();
678
- const blueprints = objects.filter((blueprint) => INCLUDE_BLUEPRINTS.includes(blueprint.key)).map((blueprint) => Ref.make(blueprint));
678
+ const blueprints = objects.filter((blueprint) => {
679
+ const key = Obj.getMeta(blueprint).key;
680
+ return key !== void 0 && INCLUDE_BLUEPRINTS.includes(key);
681
+ }).map((blueprint) => Ref.make(blueprint));
679
682
  cell.prompt = Ref.make(Routine.make({
680
683
  instructions: "",
681
684
  blueprints
@@ -693,7 +696,7 @@ var NotebookContainer = ({ role, subject: notebook, attendableId, env }) => {
693
696
  notebook
694
697
  ]);
695
698
  const handleCellDelete = useCallback((id) => {
696
- invariant2(notebook, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 178, S: void 0, A: ["notebook", ""] });
699
+ invariant2(notebook, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 181, S: void 0, A: ["notebook", ""] });
697
700
  const idx = notebook.cells.findIndex((cell) => cell.id === id);
698
701
  if (idx !== -1) {
699
702
  Obj.update(notebook, (notebook2) => {
@@ -746,7 +749,7 @@ var runPrompt = Effect.fn(function* ({ prompt, input, onResult }) {
746
749
  Exit.match(result, {
747
750
  onFailure: (cause) => {
748
751
  const error = Cause.prettyErrors(cause)[0];
749
- log2.error(error.message, error.cause ?? error.stack, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 233, S: this });
752
+ log2.error(error.message, error.cause ?? error.stack, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 236, S: this });
750
753
  onResult(error.message);
751
754
  },
752
755
  onSuccess: (result2) => {
@@ -755,6 +758,6 @@ var runPrompt = Effect.fn(function* ({ prompt, input, onResult }) {
755
758
  });
756
759
  });
757
760
  export {
758
- NotebookContainer as default
761
+ NotebookArticle as default
759
762
  };
760
- //# sourceMappingURL=NotebookContainer-RO4NJRYH.mjs.map
763
+ //# sourceMappingURL=NotebookArticle-3TE4WBZC.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/containers/NotebookArticle/NotebookArticle.tsx", "../../../src/notebook/compute-graph.ts", "../../../src/notebook/eval.ts", "../../../src/notebook/vfs-parser.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { RegistryContext } from '@effect-atom/atom-react';\nimport * as Cause from 'effect/Cause';\nimport * as Effect from 'effect/Effect';\nimport * as Exit from 'effect/Exit';\nimport type * as Types from 'effect/Types';\nimport React, { useCallback, useContext, useMemo, useState } from 'react';\n\nimport { type AppSurface } from '@dxos/app-toolkit/ui';\nimport { AgentPrompt } from '@dxos/assistant-toolkit';\nimport { Blueprint, Routine } from '@dxos/compute';\nimport { Operation } from '@dxos/compute';\nimport { Filter, Obj, Query, Ref } from '@dxos/echo';\nimport { QueryBuilder } from '@dxos/echo-query';\nimport { invariant } from '@dxos/invariant';\nimport { log } from '@dxos/log';\nimport { useComputeRuntimeCallback } from '@dxos/plugin-automation/hooks';\nimport { Graph } from '@dxos/plugin-explorer';\nimport { DropdownMenu, IconButton, Panel, Toolbar, useTranslation } from '@dxos/react-ui';\nimport { useAttention } from '@dxos/react-ui-attention';\nimport { Text, ViewModel } from '@dxos/schema';\nimport { isNonNullable } from '@dxos/util';\n\nimport { NotebookMenu, NotebookStack, type NotebookStackProps, type TypescriptEditorProps } from '#components';\nimport { meta } from '#meta';\nimport { type Notebook } from '#types';\n\nimport { ComputeGraph } from '../../notebook';\n\nconst INCLUDE_BLUEPRINTS = [\n 'org.dxos.blueprint.assistant',\n 'org.dxos.blueprint.database',\n 'org.dxos.blueprint.markdown',\n];\n\n// TODO(burdon): Support calling named deployed functions (as with sheet).\n\nexport type NotebookArticleProps = AppSurface.ObjectArticleProps<Notebook.Notebook, Pick<TypescriptEditorProps, 'env'>>;\n\nexport const NotebookArticle = ({ role, subject: notebook, attendableId, env }: NotebookArticleProps) => {\n const { t } = useTranslation(meta.id);\n const registry = useContext(RegistryContext);\n const db = Obj.getDatabase(notebook);\n const { hasAttention } = useAttention(attendableId);\n\n // TODO(burdon): Consolidate execution and state (with graph).\n // Generalize ComputeGraph evaluation function (using effects).\n const graph = useMemo(() => notebook && new ComputeGraph(notebook, registry), [notebook, registry]);\n\n const [queryValues, setQueryValues] = useState<Record<string, any>>({});\n const handleExecQueries = useCallback(async () => {\n invariant(db);\n\n const builder = new QueryBuilder();\n for (const cell of notebook?.cells ?? []) {\n if (cell.type === 'query') {\n if (cell.source?.target) {\n const source = cell.source.target.content;\n const { name, filter } = builder.build(source);\n if (filter) {\n const ast = Query.select(filter).ast;\n const graph = cell.graph?.target;\n if (!graph) {\n const { view } = await ViewModel.makeFromDatabase({ db });\n const newGraph = Graph.make({ query: { ast }, view });\n Obj.update(notebook!, (obj) => {\n const c = obj.cells.find((c) => c.id === cell.id);\n if (c) {\n c.graph = Ref.make(newGraph);\n c.name = name;\n }\n });\n } else {\n Obj.update(graph, (graph) => {\n graph.query.ast = ast as Obj.Mutable<typeof ast>;\n });\n }\n }\n }\n\n if (cell.name && cell.graph?.target) {\n const graph = Obj.getSnapshot(cell.graph?.target);\n const query = Query.fromAst(graph.query.ast);\n const objects = await db.query(query).run();\n const objectIds = objects?.map((obj) => obj.id);\n setQueryValues((prev) => ({ ...prev, [cell.name!]: objectIds }));\n }\n }\n }\n }, [db, notebook, graph]);\n\n const [promptResults, setPromptResults] = useState<Record<string, string>>({});\n const handleExecPrompts = useComputeRuntimeCallback(\n db?.spaceId,\n Effect.fnUntraced(function* () {\n invariant(graph);\n\n const prompts =\n notebook?.cells\n .filter((cell) => cell.type === 'prompt')\n .map((cell) => cell.prompt)\n .filter(isNonNullable) ?? [];\n\n for (const prompt of prompts) {\n yield* runPrompt({\n prompt,\n input: { ...queryValues, ...graph.getValuesByName() },\n onResult: (result) =>\n setPromptResults((prev) => ({\n ...prev,\n [prompt.dxn.toString()]: result,\n })),\n });\n }\n }),\n [notebook, graph, queryValues],\n );\n\n // TODO(burdon): Cache values in context (preserve when switched).\n const handleCompute = useCallback(async () => {\n // TODO(burdon): Generalize executors (dependencies).\n await graph?.evaluate();\n await handleExecQueries();\n await handleExecPrompts();\n }, [graph, handleExecQueries, handleExecPrompts]);\n\n const handleRearrange = useCallback<NonNullable<NotebookStackProps['onRearrange']>>(\n (source, target) => {\n invariant(notebook);\n const from = notebook.cells.findIndex((cell) => cell.id === source.id);\n const to = notebook.cells.findIndex((cell) => cell.id === target.id);\n if (from != null && to != null) {\n Obj.update(notebook, (notebook) => {\n const cell = notebook.cells.splice(from, 1)[0];\n if (cell) {\n notebook.cells.splice(to, 0, cell);\n }\n });\n }\n },\n [notebook],\n );\n\n const handleCellInsert = useCallback<NonNullable<NotebookStackProps['onCellInsert']>>(\n async (type, after) => {\n invariant(notebook);\n const cell: Types.Mutable<Notebook.Cell> = { id: crypto.randomUUID(), type };\n switch (type) {\n case 'markdown':\n case 'script':\n case 'query': {\n cell.source = Ref.make(Text.make());\n break;\n }\n\n case 'prompt': {\n if (db) {\n const objects = await db.query(Query.select(Filter.type(Blueprint.Blueprint))).run();\n const blueprints = objects\n .filter((blueprint) => {\n const key = Obj.getMeta(blueprint).key;\n return key !== undefined && INCLUDE_BLUEPRINTS.includes(key);\n })\n .map((blueprint) => Ref.make(blueprint));\n cell.prompt = Ref.make(Routine.make({ instructions: '', blueprints }));\n }\n break;\n }\n }\n\n const idx = after ? notebook.cells.findIndex((cell) => cell.id === after) : notebook.cells.length;\n Obj.update(notebook, (notebook) => {\n notebook.cells.splice(idx, 0, cell);\n });\n },\n [db, notebook],\n );\n\n const handleCellDelete = useCallback<NonNullable<NotebookStackProps['onCellDelete']>>(\n (id) => {\n invariant(notebook);\n const idx = notebook.cells.findIndex((cell) => cell.id === id);\n if (idx !== -1) {\n Obj.update(notebook, (notebook) => {\n notebook.cells.splice(idx, 1);\n });\n }\n },\n [notebook],\n );\n\n return (\n <Panel.Root role={role} className='dx-document'>\n <Panel.Toolbar asChild>\n <Toolbar.Root disabled={!hasAttention}>\n <DropdownMenu.Root>\n <DropdownMenu.Trigger asChild>\n <IconButton icon='ph--plus--regular' iconOnly label={t('notebook-cell-insert.label')} />\n </DropdownMenu.Trigger>\n <NotebookMenu onCellInsert={handleCellInsert} />\n </DropdownMenu.Root>\n <Toolbar.IconButton\n icon='ph--play--fill'\n iconOnly\n label={t('compute.label')}\n classNames='text-success-text'\n onClick={handleCompute}\n />\n </Toolbar.Root>\n </Panel.Toolbar>\n <Panel.Content asChild>\n <NotebookStack\n db={db}\n notebook={notebook}\n graph={graph}\n env={env}\n promptResults={promptResults}\n onRearrange={handleRearrange}\n onCellInsert={handleCellInsert}\n onCellDelete={handleCellDelete}\n />\n </Panel.Content>\n </Panel.Root>\n );\n};\n\n// TODO(wittjosiah): Factor out. Copied from PromptArticle in plugin-assistant.\nconst runPrompt = Effect.fn(function* ({\n prompt,\n input,\n onResult,\n}: {\n prompt: Ref.Ref<Routine.Routine>;\n input: Record<string, any>;\n onResult: (result: string) => void;\n}) {\n const inputData: Operation.Definition.Input<typeof AgentPrompt> = { prompt, input };\n // Invoke the function.\n const result = yield* Operation.invoke(AgentPrompt, inputData).pipe(Effect.orDie, Effect.exit);\n\n Exit.match(result, {\n onFailure: (cause) => {\n const error = Cause.prettyErrors(cause)[0];\n log.error(error.message, error.cause ?? error.stack);\n onResult(error.message);\n },\n onSuccess: (result: any) => {\n onResult(result.note);\n },\n });\n});\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Atom, type Registry } from '@effect-atom/atom-react';\n\nimport { log } from '@dxos/log';\n\nimport { type Notebook } from '#types';\n\nimport { evalScript } from './eval';\nimport { type ParsedExpression, VirtualTypeScriptParser } from './vfs-parser';\n\n/**\n * Compute graph that evaluates the notebook cells.\n */\n// TODO(burdon): Reconcile with @dxos/conductor.\nexport class ComputeGraph {\n private readonly _parser = new VirtualTypeScriptParser();\n\n private _expressionsAtom = Atom.make<Record<string, ParsedExpression>>({});\n private _valuesByCellIdAtom = Atom.make<Record<string, any>>({});\n private _valuesByNameAtom = Atom.make<Record<string, any>>({});\n\n constructor(\n private readonly _notebook: Notebook.Notebook,\n private readonly _registry: Registry.Registry,\n ) {}\n\n /**\n * Atom for parsed expressions by cell ID.\n */\n get expressions(): Atom.Atom<Record<string, ParsedExpression>> {\n return this._expressionsAtom;\n }\n\n /**\n * Get current expressions by cell ID.\n */\n getExpressions(): Record<string, ParsedExpression> {\n return this._registry.get(this._expressionsAtom);\n }\n\n /**\n * Atom for computed values by cell ID.\n */\n get values(): Atom.Atom<Record<string, any>> {\n return this._valuesByCellIdAtom;\n }\n\n /**\n * Get computed values by cell ID.\n */\n getValues(): Record<string, any> {\n return this._registry.get(this._valuesByCellIdAtom);\n }\n\n /**\n * Atom for computed values by name.\n */\n get valuesByName(): Atom.Atom<Record<string, any>> {\n return this._valuesByNameAtom;\n }\n\n /**\n * Get current values by name.\n */\n getValuesByName(): Record<string, any> {\n return this._registry.get(this._valuesByNameAtom);\n }\n\n /**\n * Get computed value by cell ID.\n */\n getValue(cellId: string): any {\n return this._registry.get(this._valuesByCellIdAtom)[cellId];\n }\n\n /**\n * Compute values.\n */\n async evaluate() {\n // Parse expressions.\n const { expressions, dependencyGraph } = this.parse();\n this._registry.set(this._valuesByCellIdAtom, {});\n this._registry.set(this._valuesByNameAtom, {});\n\n // Create a map of cell IDs to expressions for easy lookup.\n const cellExpressions = new Map<string, ParsedExpression>();\n Object.entries(expressions).forEach(([id, expr]) => {\n cellExpressions.set(id, expr);\n });\n\n // Topological sort to determine evaluation order.\n const evaluationOrder = this.topologicalSort(Object.keys(expressions), dependencyGraph);\n\n // Values by reference name.\n const valuesByName: Record<string, any> = {};\n const valuesByCellId: Record<string, any> = {};\n\n // Evaluate cells in dependency order.\n for (const cellId of evaluationOrder) {\n const expr = cellExpressions.get(cellId);\n if (!expr) {\n log.error('no expression for cell', { cellId });\n continue;\n }\n\n const cellSource = this._notebook.cells.find((cell) => cell.id === cellId)?.source?.target?.content;\n if (!cellSource) {\n log.error('no source for cell', { cellId });\n continue;\n }\n\n try {\n // For assignments or declarations, evaluate and store the value.\n if (expr.name && expr.value !== undefined) {\n // If the parser extracted a literal value, use it directly.\n valuesByName[expr.name] = expr.value;\n valuesByCellId[cellId] = expr.value;\n } else if (expr.name) {\n // For non-literal assignments, we need to evaluate the expression.\n // The parser identifies it's an assignment, so we can extract the RHS.\n const equalIndex = cellSource.indexOf('=');\n if (equalIndex !== -1) {\n // Find the actual assignment operator (not in strings or other contexts).\n let rhs = cellSource.substring(equalIndex + 1).trim();\n\n // Handle semicolon at the end.\n if (rhs.endsWith(';')) {\n rhs = rhs.slice(0, -1).trim();\n }\n\n const result = await this.eval(rhs, valuesByName);\n valuesByName[expr.name] = result;\n if (typeof result !== 'function') {\n valuesByCellId[cellId] = result;\n }\n }\n } else {\n // For expressions without assignment, just evaluate.\n const result = await this.eval(cellSource, valuesByName);\n valuesByCellId[cellId] = result;\n }\n } catch (error) {\n // TODO(burdon): Set error state.\n log.error('error evaluating cell', { cellId, error });\n }\n }\n\n this._registry.set(this._valuesByCellIdAtom, valuesByCellId);\n this._registry.set(this._valuesByNameAtom, valuesByName);\n return valuesByCellId;\n }\n\n private async eval(source: string, values: Record<string, any>) {\n return evalScript(source, values);\n }\n\n /**\n * Parse expressions.\n */\n parse() {\n const expressions = this._notebook.cells\n .filter((cell) => cell.type === 'script')\n .reduce<Record<string, ParsedExpression>>((acc, cell) => {\n const text = cell.source?.target?.content.trim();\n if (text) {\n const parsed = this._parser.parseExpression(text);\n acc[cell.id] = parsed;\n }\n\n return acc;\n }, {});\n\n // Build dependency graph.\n const dependencyGraph = this.buildDependencyGraph(expressions);\n this._registry.set(this._expressionsAtom, expressions);\n return { expressions, dependencyGraph };\n }\n\n private topologicalSort(nodes: string[], dependencies: Record<string, string[]>): string[] {\n const visited = new Set<string>();\n const result: string[] = [];\n\n const visit = (node: string) => {\n if (visited.has(node)) {\n return;\n }\n\n visited.add(node);\n\n // Visit dependencies first.\n const deps = dependencies[node] || [];\n deps.forEach((dep) => visit(dep));\n result.push(node);\n };\n\n // Visit all nodes.\n nodes.forEach((node) => visit(node));\n return result;\n }\n\n private buildDependencyGraph(expressions: Record<string, ParsedExpression>): Record<string, string[]> {\n // Create a map of variable names to their cell IDs.\n const nameToCellId = new Map<string, string>();\n Object.entries(expressions).forEach(([id, expr]) => {\n if (expr.name) {\n nameToCellId.set(expr.name, id);\n }\n });\n\n // Build the dependency graph using cell IDs.\n const graph: Record<string, string[]> = {};\n Object.entries(expressions).forEach(([id, expr]) => {\n if (expr.references && expr.references.length > 0) {\n // Map variable references to cell IDs.\n const dependencyCellIds = expr.references\n .map((ref) => nameToCellId.get(ref))\n .filter((cellId): cellId is string => cellId !== undefined && cellId !== id);\n\n if (dependencyCellIds.length > 0) {\n graph[id] = dependencyCellIds;\n }\n }\n });\n\n return graph;\n }\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { trim } from '@dxos/util';\n\n/**\n * Evaluate the script (with dependencies as arguments).\n */\nexport const evalScript = async (code: string, deps: Record<string, any> = {}) => {\n // Create a sandboxed environment that blocks access to window and document.\n const sandbox = {\n ...deps,\n\n // Block access to global objects.\n console: undefined,\n document: undefined,\n global: undefined,\n globalThis: undefined,\n self: undefined,\n window: undefined,\n\n // Allow some safe globals.\n Array,\n Boolean,\n Date,\n Error,\n JSON,\n Map,\n Math,\n Number,\n Object,\n Promise,\n RegExp,\n Set,\n String,\n\n // Functions.\n isFinite,\n isNaN,\n parseFloat,\n parseInt,\n\n // Note: undefined and null are not included as they are keywords, not variables.\n };\n\n // Create function with all sandbox keys as parameters.\n const sandboxKeys = Object.keys(sandbox);\n const sandboxValues = Object.values(sandbox);\n\n // eslint-disable-next-line @typescript-eslint/no-implied-eval\n const fn = new Function(\n ...sandboxKeys,\n trim`\n 'use strict';\n return ${code};\n `,\n );\n\n return fn(...sandboxValues);\n};\n\n/**\n * Globals.\n */\nexport const builtIns = new Set([\n // Types.\n 'Array',\n 'Date',\n 'Error',\n 'JSON',\n 'Map',\n 'Math',\n 'Number',\n 'Object',\n 'Promise',\n 'RegExp',\n 'Set',\n 'String',\n\n // Functions.\n 'isFinite',\n 'isNaN',\n 'parseFloat',\n 'parseInt',\n]);\n\n/**\n * Default system definitions.\n */\nexport const systemDefinitions = trim`\n interface Array<T> { length: number; [n: number]: T; }\n interface Boolean {}\n interface Function {}\n interface IArguments {}\n interface Number {}\n interface Object {}\n interface RegExp {}\n interface String { length: number; }\n\n interface CallableFunction extends Function {}\n interface NewableFunction extends Function {}\n\n declare var console: { log(...args: any[]): void };\n`;\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { createSystem, createVirtualTypeScriptEnvironment } from '@typescript/vfs';\nimport ts from 'typescript';\n\nimport { invariant } from '@dxos/invariant';\n\nimport { builtIns, systemDefinitions } from './eval';\n\n/**\n * Default system definitions.\n */\nconst systemFiles: VirtualFile[] = [\n {\n filename: '/lib.d.ts',\n content: systemDefinitions,\n },\n];\n\nexport type ParsedExpression = {\n name?: string;\n type?: 'function' | 'variable' | 'class' | 'interface';\n value?: any;\n valueType?: string;\n parameters?: Array<{ name: string; type: string }>;\n returnType?: string;\n references?: string[];\n};\n\nexport type VirtualFile = {\n filename: string;\n content: string;\n};\n\n/**\n * TypeScript parser using Virtual File System for browser compatibility.\n * This provides full TypeScript analysis including type information.\n */\nexport class VirtualTypeScriptParser {\n protected compilerOptions: ts.CompilerOptions = {\n target: ts.ScriptTarget.ES2020,\n module: ts.ModuleKind.ESNext,\n moduleResolution: ts.ModuleResolutionKind.Bundler,\n strict: true,\n esModuleInterop: true,\n skipLibCheck: true,\n forceConsistentCasingInfilenames: true,\n jsx: ts.JsxEmit.React,\n noLib: true, // Don't automatically include default lib files.\n };\n\n /**\n * Parse a single expression or statement.\n */\n parseExpression(input: string): ParsedExpression {\n invariant(input.trim() !== '', 'input must not be empty');\n const files: VirtualFile[] = [{ filename: '/temp.ts', content: input }];\n const analysis = this.analyzeFiles(files);\n\n // If no declarations found, check for standalone expression references.\n if (analysis.length === 0) {\n const sourcefilename = '/temp.ts';\n const env = this.createEnvironment([{ filename: sourcefilename, content: input }]);\n const sourceFile = env.getSourceFile(sourcefilename);\n const typeChecker = env.languageService.getProgram()?.getTypeChecker();\n\n if (sourceFile && typeChecker) {\n // Check for assignment expressions.\n const assignmentInfo = this.findAssignmentExpression(sourceFile, typeChecker);\n if (assignmentInfo) {\n return assignmentInfo;\n }\n\n const references = this.findAllReferences(sourceFile, typeChecker);\n return { references };\n }\n }\n\n return analysis[0];\n }\n\n /**\n * Analyze multiple files with full type information.\n */\n analyzeFiles(files: VirtualFile[]): ParsedExpression[] {\n const env = this.createEnvironment(files);\n const results: ParsedExpression[] = [];\n const typeChecker = env.languageService.getProgram()?.getTypeChecker();\n\n // Analyze each file.\n files.forEach((file) => {\n const sourceFile = env.getSourceFile(file.filename);\n if (!sourceFile || !typeChecker) {\n return;\n }\n\n const fileResults = this.analyzeSourceFile(sourceFile, typeChecker);\n results.push(...fileResults);\n });\n\n return results;\n }\n\n /**\n * Analyze a source file with type information.\n */\n protected analyzeSourceFile(sourceFile: ts.SourceFile, typeChecker: ts.TypeChecker): ParsedExpression[] {\n const results: ParsedExpression[] = [];\n\n const visit = (node: ts.Node) => {\n // Function declarations.\n if (ts.isFunctionDeclaration(node) && node.name) {\n const symbol = typeChecker.getSymbolAtLocation(node.name);\n const type = symbol && typeChecker.getTypeOfSymbolAtLocation(symbol, node);\n const signature = type && typeChecker.getSignaturesOfType(type, ts.SignatureKind.Call)[0];\n\n results.push({\n name: node.name.text,\n type: 'function',\n parameters: this.extractParameters(signature, typeChecker),\n returnType: signature ? typeChecker.typeToString(signature.getReturnType()) : 'any',\n references: this.findReferences(node, sourceFile, typeChecker),\n });\n }\n\n // Variable declarations.\n else if (ts.isVariableStatement(node)) {\n node.declarationList.declarations.forEach((declaration) => {\n if (ts.isIdentifier(declaration.name)) {\n const symbol = typeChecker.getSymbolAtLocation(declaration.name);\n const type = symbol && typeChecker.getTypeOfSymbolAtLocation(symbol, declaration);\n\n let kind: 'function' | 'variable' = 'variable';\n let parameters: Array<{ name: string; type: string }> | undefined;\n let returnType: string | undefined;\n let value: any;\n\n // Get the type string.\n const typeString = type ? typeChecker.typeToString(type) : 'any';\n\n // Check if it's a function.\n if (declaration.initializer) {\n if (ts.isArrowFunction(declaration.initializer) || ts.isFunctionExpression(declaration.initializer)) {\n kind = 'function';\n const funcType = typeChecker.getTypeAtLocation(declaration.initializer);\n const signature = typeChecker.getSignaturesOfType(funcType, ts.SignatureKind.Call)[0];\n if (signature) {\n parameters = this.extractParameters(signature, typeChecker);\n returnType = typeChecker.typeToString(signature.getReturnType());\n }\n } else {\n // Extract literal values\n if (ts.isNumericLiteral(declaration.initializer)) {\n value = Number(declaration.initializer.text);\n } else if (ts.isStringLiteral(declaration.initializer)) {\n value = declaration.initializer.text;\n }\n }\n }\n\n // Find references in the initializer only.\n const refs = declaration.initializer\n ? this.findReferences(declaration.initializer, sourceFile, typeChecker)\n : [];\n\n results.push({\n name: declaration.name.text,\n type: kind,\n valueType: typeString,\n value,\n parameters,\n returnType,\n references: refs,\n });\n }\n });\n }\n\n // Class declarations.\n else if (ts.isClassDeclaration(node) && node.name) {\n results.push({\n name: node.name.text,\n type: 'class',\n references: this.findReferences(node, sourceFile, typeChecker),\n });\n }\n\n // Interface declarations.\n else if (ts.isInterfaceDeclaration(node)) {\n results.push({\n name: node.name.text,\n type: 'interface',\n references: this.findReferences(node, sourceFile, typeChecker),\n });\n }\n\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n return results;\n }\n\n /**\n * Extract parameter information from a signature.\n */\n private extractParameters(\n signature: ts.Signature | undefined,\n typeChecker: ts.TypeChecker,\n ): Array<{ name: string; type: string }> {\n if (!signature) {\n return [];\n }\n\n return signature.parameters.map((param) => ({\n name: param.getName(),\n type: typeChecker.typeToString(typeChecker.getTypeOfSymbolAtLocation(param, param.valueDeclaration!)),\n }));\n }\n\n /**\n * Find all references to variables used in a node.\n */\n private findReferences(node: ts.Node, _sourceFile: ts.SourceFile, _typeChecker: ts.TypeChecker): string[] {\n const references = new Set<string>();\n const localSymbols = new Set<string>();\n\n // First, collect local symbols (parameters, local variables).\n const collectLocalSymbols = (node: ts.Node) => {\n if (ts.isFunctionDeclaration(node) || ts.isArrowFunction(node) || ts.isFunctionExpression(node)) {\n node.parameters.forEach((param) => {\n if (ts.isIdentifier(param.name)) {\n localSymbols.add(param.name.text);\n }\n });\n }\n\n if (ts.isVariableDeclaration(node) && ts.isIdentifier(node.name)) {\n localSymbols.add(node.name.text);\n }\n\n ts.forEachChild(node, collectLocalSymbols);\n };\n\n collectLocalSymbols(node);\n\n // Then find all identifier references.\n const findRefs = (node: ts.Node) => {\n if (ts.isIdentifier(node)) {\n // Skip if it's a local symbol.\n if (!localSymbols.has(node.text)) {\n // Check if it's a reference (not a declaration).\n const parent = node.parent;\n const isDeclaration =\n (ts.isVariableDeclaration(parent) && parent.name === node) ||\n (ts.isFunctionDeclaration(parent) && parent.name === node) ||\n (ts.isParameter(parent) && parent.name === node);\n\n if (!isDeclaration && !this.isBuiltIn(node.text)) {\n references.add(node.text);\n }\n }\n }\n ts.forEachChild(node, findRefs);\n };\n\n findRefs(node);\n return Array.from(references);\n }\n\n /**\n * Check if a name is a built-in global.\n */\n protected isBuiltIn(name: string): boolean {\n return builtIns.has(name);\n }\n\n /**\n * Find assignment expressions in a source file.\n */\n private findAssignmentExpression(sourceFile: ts.SourceFile, typeChecker: ts.TypeChecker): ParsedExpression | null {\n let result: ParsedExpression | null = null;\n\n const visit = (node: ts.Node) => {\n if (ts.isExpressionStatement(node) && ts.isBinaryExpression(node.expression)) {\n const expr = node.expression;\n if (expr.operatorToken.kind === ts.SyntaxKind.EqualsToken && ts.isIdentifier(expr.left)) {\n const type = typeChecker.getTypeAtLocation(expr.right);\n const typeString = typeChecker.typeToString(type);\n\n // Get the literal value if it's a literal.\n let value: any;\n if (ts.isNumericLiteral(expr.right)) {\n value = Number(expr.right.text);\n } else if (ts.isStringLiteral(expr.right)) {\n value = expr.right.text;\n }\n\n // Find references in the right-hand side.\n const references = this.findReferences(expr.right, sourceFile, typeChecker);\n\n result = {\n name: expr.left.text,\n type: 'variable',\n valueType: typeString,\n value,\n references,\n };\n }\n }\n if (!result) {\n ts.forEachChild(node, visit);\n }\n };\n\n visit(sourceFile);\n return result;\n }\n\n /**\n * Find all identifier references in a source file.\n */\n protected findAllReferences(sourceFile: ts.SourceFile, _typeChecker: ts.TypeChecker): string[] {\n const references = new Set<string>();\n\n const visit = (node: ts.Node) => {\n if (ts.isIdentifier(node)) {\n // Skip if it's a declaration.\n const parent = node.parent;\n const isDeclaration =\n (ts.isVariableDeclaration(parent) && parent.name === node) ||\n (ts.isFunctionDeclaration(parent) && parent.name === node) ||\n (ts.isParameter(parent) && parent.name === node);\n\n // Skip if it's the left-hand side of an assignment.\n const isAssignmentTarget =\n ts.isBinaryExpression(parent) &&\n parent.operatorToken.kind === ts.SyntaxKind.EqualsToken &&\n parent.left === node;\n\n if (!isDeclaration && !isAssignmentTarget && !this.isBuiltIn(node.text)) {\n references.add(node.text);\n }\n }\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n return Array.from(references);\n }\n\n protected createEnvironment(files: VirtualFile[]) {\n const allFiles = [...systemFiles, ...files];\n\n const fileMap = new Map<string, string>();\n allFiles.forEach(({ filename, content }) => {\n fileMap.set(filename, content);\n });\n\n const system = createSystem(fileMap);\n return createVirtualTypeScriptEnvironment(\n system,\n allFiles.map(({ filename }) => filename),\n ts,\n this.compilerOptions,\n );\n }\n}\n\n/**\n * Notebook-specific parser with dependency analysis.\n */\nexport class NotebookVirtualParser extends VirtualTypeScriptParser {\n /**\n * Analyze notebook cells with full type checking.\n */\n analyzeNotebook(cells: Array<{ id: string; code: string }>) {\n // Create cumulative environment where each cell can see previous cells.\n const cumulativeCode: string[] = [];\n const cellAnalysis: Map<\n string,\n {\n exports: ParsedExpression[];\n imports: string[];\n errors: ts.Diagnostic[];\n }\n > = new Map();\n\n cells.forEach((cell) => {\n // Create files for all cells up to current.\n const files: VirtualFile[] = [];\n\n // Add previous cells as context.\n if (cumulativeCode.length > 0) {\n files.push({\n filename: '/context.ts',\n content: cumulativeCode.join('\\n'),\n });\n }\n\n // Add current cell.\n const filename = `/cell/${cell.id}.ts`;\n files.push({\n filename,\n content: cell.code,\n });\n\n // Create environment.\n const env = this.createEnvironment(files);\n\n // Get diagnostics (errors).\n const diagnostics = env.languageService.getSemanticDiagnostics(filename);\n\n // Analyze current cell.\n const sourceFile = env.getSourceFile(filename);\n const typeChecker = env.languageService.getProgram()?.getTypeChecker();\n\n if (sourceFile && typeChecker) {\n const exports = this.analyzeSourceFile(sourceFile, typeChecker);\n\n // Find all references in the current cell.\n const allRefs = new Set<string>();\n exports.forEach((exp) => {\n exp.references?.forEach((ref) => allRefs.add(ref));\n });\n\n // Also check for references not in exports (e.g., console.log(y)).\n const additionalRefs = this.findAllReferences(sourceFile, typeChecker);\n additionalRefs.forEach((ref) => allRefs.add(ref));\n\n // Determine which references are imports from previous cells.\n const previousExports = new Set<string>();\n for (const [_prevCellId, prevAnalysis] of cellAnalysis) {\n prevAnalysis.exports.forEach((exp) => {\n if (exp.name) {\n previousExports.add(exp.name);\n }\n });\n }\n\n const imports = Array.from(allRefs).filter((ref) => previousExports.has(ref));\n\n cellAnalysis.set(cell.id, {\n exports,\n imports,\n errors: diagnostics,\n });\n }\n\n // Add current cell code to cumulative.\n cumulativeCode.push(cell.code);\n });\n\n return cellAnalysis;\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["RegistryContext", "Cause", "Effect", "Exit", "React", "useCallback", "useContext", "useMemo", "useState", "AgentPrompt", "Blueprint", "Routine", "Operation", "Filter", "Obj", "Query", "Ref", "QueryBuilder", "invariant", "log", "useComputeRuntimeCallback", "Graph", "DropdownMenu", "IconButton", "Panel", "Toolbar", "useTranslation", "useAttention", "Text", "ViewModel", "isNonNullable", "NotebookMenu", "NotebookStack", "meta", "Atom", "log", "trim", "evalScript", "code", "deps", "sandbox", "console", "undefined", "document", "global", "globalThis", "self", "window", "Array", "Boolean", "Date", "Error", "JSON", "Map", "Math", "Number", "Object", "Promise", "RegExp", "Set", "String", "isFinite", "isNaN", "parseFloat", "parseInt", "sandboxKeys", "keys", "sandboxValues", "values", "fn", "Function", "builtIns", "systemDefinitions", "createSystem", "createVirtualTypeScriptEnvironment", "ts", "invariant", "filename", "target", "ts", "ModuleKind", "moduleResolution", "ModuleResolutionKind", "strict", "esModuleInterop", "skipLibCheck", "forceConsistentCasingInfilenames", "jsx", "JsxEmit", "noLib", "analysis", "length", "env", "createEnvironment", "sourcefilename", "sourceFile", "typeChecker", "assignmentInfo", "references", "results", "languageService", "getProgram", "files", "forEach", "file", "node", "isFunctionDeclaration", "getTypeOfSymbolAtLocation", "signature", "getSignaturesOfType", "name", "type", "parameters", "returnType", "findReferences", "isVariableStatement", "declaration", "symbol", "getSymbolAtLocation", "kind", "value", "initializer", "getTypeAtLocation", "extractParameters", "isStringLiteral", "valueType", "typeString", "isInterfaceDeclaration", "forEachChild", "visit", "typeToString", "localSymbols", "Set", "collectLocalSymbols", "param", "has", "parent", "isDeclaration", "text", "findRefs", "isExpressionStatement", "expr", "SyntaxKind", "EqualsToken", "isIdentifier", "right", "isAssignmentTarget", "isBinaryExpression", "operatorToken", "systemFiles", "fileMap", "allFiles", "system", "createSystem", "__dxlog_file", "_parser", "_expressionsAtom", "_valuesByCellIdAtom", "_valuesByNameAtom", "Atom", "_registry", "_notebook", "expressions", "cellExpressions", "Map", "id", "expr", "valuesByName", "evaluationOrder", "log", "cellId", "name", "cellSource", "rhs", "endsWith", "result", "eval", "valuesByCellId", "error", "source", "parsed", "parseExpression", "acc", "cell", "dependencyGraph", "topologicalSort", "visit", "node", "visited", "has", "deps", "dependencies", "nodes", "buildDependencyGraph", "nameToCellId", "references", "dependencyCellIds", "map", "ref", "graph", "__dxlog_file", "INCLUDE_BLUEPRINTS", "registry", "useContext", "RegistryContext", "db", "Obj", "notebook", "hasAttention", "useAttention", "attendableId", "invariant", "QueryBuilder", "cell", "cells", "type", "source", "target", "filter", "ast", "Query", "select", "graph", "view", "update", "Ref", "make", "newGraph", "c", "name", "query", "fromAst", "objects", "objectIds", "map", "obj", "id", "setQueryValues", "prev", "prompt", "prompts", "runPrompt", "input", "onResult", "result", "setPromptResults", "dxn", "queryValues", "evaluate", "handleExecPrompts", "findIndex", "to", "from", "splice", "crypto", "randomUUID", "getMeta", "blueprint", "undefined", "instructions", "blueprints", "idx", "asChild", "Toolbar", "disabled", "DropdownMenu", "Root", "IconButton", "icon", "iconOnly", "label", "onCellInsert", "handleCellInsert", "classNames", "onClick", "handleCompute", "NotebookStack", "env", "promptResults", "onRearrange", "onCellDelete", "onFailure", "cause", "error", "message", "log", "onSuccess"]
7
+ }
@@ -1,6 +1,6 @@
1
1
  import "./chunk-J5LGTIGS.mjs";
2
2
 
3
- // src/containers/ScriptContainer/ScriptContainer.tsx
3
+ // src/containers/ScriptArticle/ScriptArticle.tsx
4
4
  import React, { useMemo } from "react";
5
5
  import { Obj } from "@dxos/echo";
6
6
  import { createDocAccessor } from "@dxos/echo-db";
@@ -10,7 +10,7 @@ import { Panel } from "@dxos/react-ui";
10
10
  import { createDataExtensions, listener, editorClassNames } from "@dxos/ui-editor";
11
11
  import { ScriptToolbar, TypescriptEditor } from "#components";
12
12
  import { useDeployState, useToolbarState } from "#hooks";
13
- var ScriptContainer = ({ role, attendableId, subject: script, settings = {
13
+ var ScriptArticle = ({ role, attendableId, subject: script, settings = {
14
14
  editorInputMode: "vscode"
15
15
  }, env }) => {
16
16
  const identity = useIdentity();
@@ -74,6 +74,6 @@ var ScriptContainer = ({ role, attendableId, subject: script, settings = {
74
74
  })));
75
75
  };
76
76
  export {
77
- ScriptContainer as default
77
+ ScriptArticle as default
78
78
  };
79
- //# sourceMappingURL=ScriptContainer-2OPBAXFB.mjs.map
79
+ //# sourceMappingURL=ScriptArticle-UBT27SB6.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../src/containers/ScriptContainer/ScriptContainer.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useMemo } from 'react';\n\nimport { type AppSurface } from '@dxos/app-toolkit/ui';\nimport { type Script } from '@dxos/compute';\nimport { Obj } from '@dxos/echo';\nimport { createDocAccessor } from '@dxos/echo-db';\nimport { getSpace } from '@dxos/react-client/echo';\nimport { useIdentity } from '@dxos/react-client/halo';\nimport { Panel } from '@dxos/react-ui';\nimport { createDataExtensions, listener, editorClassNames } from '@dxos/ui-editor';\n\nimport { ScriptToolbar, TypescriptEditor, type TypescriptEditorProps } from '#components';\nimport { useDeployState, useToolbarState } from '#hooks';\nimport { type Settings } from '#types';\n\nexport type ScriptEditorProps = AppSurface.ObjectArticleProps<\n Script.Script,\n {\n settings?: Settings.Settings;\n } & Pick<TypescriptEditorProps, 'env'>\n>;\n\nexport const ScriptContainer = ({\n role,\n attendableId,\n subject: script,\n settings = { editorInputMode: 'vscode' },\n env,\n}: ScriptEditorProps) => {\n const identity = useIdentity();\n const space = getSpace(script);\n const state = useToolbarState();\n useDeployState({ script, state });\n\n const extensions = useMemo(() => {\n if (!script.source.target) {\n return [];\n }\n\n return [\n createDataExtensions({\n id: script.id,\n text: createDocAccessor(script.source.target, ['content']),\n messenger: space,\n identity,\n }),\n listener({\n onChange: ({ text }) => {\n if (script.source.target?.content !== text) {\n Obj.update(script, (script) => {\n script.changed = true;\n });\n }\n },\n }),\n ];\n }, [identity, space, script, script.source.target]);\n\n if (!extensions.length) {\n return null;\n }\n\n return (\n <Panel.Root role={role}>\n <Panel.Toolbar asChild>\n <ScriptToolbar script={script} attendableId={attendableId} state={state} role={role} />\n </Panel.Toolbar>\n <Panel.Content asChild>\n <TypescriptEditor\n classNames={editorClassNames(role)}\n id={script.id}\n env={env}\n initialValue={script.source?.target?.content}\n extensions={extensions}\n inputMode={settings.editorInputMode}\n toolbar\n />\n </Panel.Content>\n </Panel.Root>\n );\n};\n"],
5
- "mappings": ";;;AAIA,OAAOA,SAASC,eAAe;AAI/B,SAASC,WAAW;AACpB,SAASC,yBAAyB;AAClC,SAASC,gBAAgB;AACzB,SAASC,mBAAmB;AAC5B,SAASC,aAAa;AACtB,SAASC,sBAAsBC,UAAUC,wBAAwB;AAEjE,SAASC,eAAeC,wBAAoD;AAC5E,SAASC,gBAAgBC,uBAAuB;AAUzC,IAAMC,kBAAkB,CAAC,EAC9BC,MACAC,cACAC,SAASC,QACTC,WAAW;EAAEC,iBAAiB;AAAS,GACvCC,IAAG,MACe;AAClB,QAAMC,WAAWjB,YAAAA;AACjB,QAAMkB,QAAQnB,SAASc,MAAAA;AACvB,QAAMM,QAAQX,gBAAAA;AACdD,iBAAe;IAAEM;IAAQM;EAAM,CAAA;AAE/B,QAAMC,aAAaxB,QAAQ,MAAA;AACzB,QAAI,CAACiB,OAAOQ,OAAOC,QAAQ;AACzB,aAAO,CAAA;IACT;AAEA,WAAO;MACLpB,qBAAqB;QACnBqB,IAAIV,OAAOU;QACXC,MAAM1B,kBAAkBe,OAAOQ,OAAOC,QAAQ;UAAC;SAAU;QACzDG,WAAWP;QACXD;MACF,CAAA;MACAd,SAAS;QACPuB,UAAU,CAAC,EAAEF,KAAI,MAAE;AACjB,cAAIX,OAAOQ,OAAOC,QAAQK,YAAYH,MAAM;AAC1C3B,gBAAI+B,OAAOf,QAAQ,CAACA,YAAAA;AAClBA,cAAAA,QAAOgB,UAAU;YACnB,CAAA;UACF;QACF;MACF,CAAA;;EAEJ,GAAG;IAACZ;IAAUC;IAAOL;IAAQA,OAAOQ,OAAOC;GAAO;AAElD,MAAI,CAACF,WAAWU,QAAQ;AACtB,WAAO;EACT;AAEA,SACE,sBAAA,cAAC7B,MAAM8B,MAAI;IAACrB;KACV,sBAAA,cAACT,MAAM+B,SAAO;IAACC,SAAAA;KACb,sBAAA,cAAC5B,eAAAA;IAAcQ;IAAgBF;IAA4BQ;IAAcT;OAE3E,sBAAA,cAACT,MAAMiC,SAAO;IAACD,SAAAA;KACb,sBAAA,cAAC3B,kBAAAA;IACC6B,YAAY/B,iBAAiBM,IAAAA;IAC7Ba,IAAIV,OAAOU;IACXP;IACAoB,cAAcvB,OAAOQ,QAAQC,QAAQK;IACrCP;IACAiB,WAAWvB,SAASC;IACpBuB,SAAAA;;AAKV;",
6
- "names": ["React", "useMemo", "Obj", "createDocAccessor", "getSpace", "useIdentity", "Panel", "createDataExtensions", "listener", "editorClassNames", "ScriptToolbar", "TypescriptEditor", "useDeployState", "useToolbarState", "ScriptContainer", "role", "attendableId", "subject", "script", "settings", "editorInputMode", "env", "identity", "space", "state", "extensions", "source", "target", "id", "text", "messenger", "onChange", "content", "update", "changed", "length", "Root", "Toolbar", "asChild", "Content", "classNames", "initialValue", "inputMode", "toolbar"]
3
+ "sources": ["../../../src/containers/ScriptArticle/ScriptArticle.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useMemo } from 'react';\n\nimport { type AppSurface } from '@dxos/app-toolkit/ui';\nimport { type Script } from '@dxos/compute';\nimport { Obj } from '@dxos/echo';\nimport { createDocAccessor } from '@dxos/echo-db';\nimport { getSpace } from '@dxos/react-client/echo';\nimport { useIdentity } from '@dxos/react-client/halo';\nimport { Panel } from '@dxos/react-ui';\nimport { createDataExtensions, listener, editorClassNames } from '@dxos/ui-editor';\n\nimport { ScriptToolbar, TypescriptEditor, type TypescriptEditorProps } from '#components';\nimport { useDeployState, useToolbarState } from '#hooks';\nimport { type Settings } from '#types';\n\nexport type ScriptEditorProps = AppSurface.ObjectArticleProps<\n Script.Script,\n {\n settings?: Settings.Settings;\n } & Pick<TypescriptEditorProps, 'env'>\n>;\n\nexport const ScriptArticle = ({\n role,\n attendableId,\n subject: script,\n settings = { editorInputMode: 'vscode' },\n env,\n}: ScriptEditorProps) => {\n const identity = useIdentity();\n const space = getSpace(script);\n const state = useToolbarState();\n useDeployState({ script, state });\n\n const extensions = useMemo(() => {\n if (!script.source.target) {\n return [];\n }\n\n return [\n createDataExtensions({\n id: script.id,\n text: createDocAccessor(script.source.target, ['content']),\n messenger: space,\n identity,\n }),\n listener({\n onChange: ({ text }) => {\n if (script.source.target?.content !== text) {\n Obj.update(script, (script) => {\n script.changed = true;\n });\n }\n },\n }),\n ];\n }, [identity, space, script, script.source.target]);\n\n if (!extensions.length) {\n return null;\n }\n\n return (\n <Panel.Root role={role}>\n <Panel.Toolbar asChild>\n <ScriptToolbar script={script} attendableId={attendableId} state={state} role={role} />\n </Panel.Toolbar>\n <Panel.Content asChild>\n <TypescriptEditor\n classNames={editorClassNames(role)}\n id={script.id}\n env={env}\n initialValue={script.source?.target?.content}\n extensions={extensions}\n inputMode={settings.editorInputMode}\n toolbar\n />\n </Panel.Content>\n </Panel.Root>\n );\n};\n"],
5
+ "mappings": ";;;AAIA,OAAOA,SAASC,eAAe;AAI/B,SAASC,WAAW;AACpB,SAASC,yBAAyB;AAClC,SAASC,gBAAgB;AACzB,SAASC,mBAAmB;AAC5B,SAASC,aAAa;AACtB,SAASC,sBAAsBC,UAAUC,wBAAwB;AAEjE,SAASC,eAAeC,wBAAoD;AAC5E,SAASC,gBAAgBC,uBAAuB;AAUzC,IAAMC,gBAAgB,CAAC,EAC5BC,MACAC,cACAC,SAASC,QACTC,WAAW;EAAEC,iBAAiB;AAAS,GACvCC,IAAG,MACe;AAClB,QAAMC,WAAWjB,YAAAA;AACjB,QAAMkB,QAAQnB,SAASc,MAAAA;AACvB,QAAMM,QAAQX,gBAAAA;AACdD,iBAAe;IAAEM;IAAQM;EAAM,CAAA;AAE/B,QAAMC,aAAaxB,QAAQ,MAAA;AACzB,QAAI,CAACiB,OAAOQ,OAAOC,QAAQ;AACzB,aAAO,CAAA;IACT;AAEA,WAAO;MACLpB,qBAAqB;QACnBqB,IAAIV,OAAOU;QACXC,MAAM1B,kBAAkBe,OAAOQ,OAAOC,QAAQ;UAAC;SAAU;QACzDG,WAAWP;QACXD;MACF,CAAA;MACAd,SAAS;QACPuB,UAAU,CAAC,EAAEF,KAAI,MAAE;AACjB,cAAIX,OAAOQ,OAAOC,QAAQK,YAAYH,MAAM;AAC1C3B,gBAAI+B,OAAOf,QAAQ,CAACA,YAAAA;AAClBA,cAAAA,QAAOgB,UAAU;YACnB,CAAA;UACF;QACF;MACF,CAAA;;EAEJ,GAAG;IAACZ;IAAUC;IAAOL;IAAQA,OAAOQ,OAAOC;GAAO;AAElD,MAAI,CAACF,WAAWU,QAAQ;AACtB,WAAO;EACT;AAEA,SACE,sBAAA,cAAC7B,MAAM8B,MAAI;IAACrB;KACV,sBAAA,cAACT,MAAM+B,SAAO;IAACC,SAAAA;KACb,sBAAA,cAAC5B,eAAAA;IAAcQ;IAAgBF;IAA4BQ;IAAcT;OAE3E,sBAAA,cAACT,MAAMiC,SAAO;IAACD,SAAAA;KACb,sBAAA,cAAC3B,kBAAAA;IACC6B,YAAY/B,iBAAiBM,IAAAA;IAC7Ba,IAAIV,OAAOU;IACXP;IACAoB,cAAcvB,OAAOQ,QAAQC,QAAQK;IACrCP;IACAiB,WAAWvB,SAASC;IACpBuB,SAAAA;;AAKV;",
6
+ "names": ["React", "useMemo", "Obj", "createDocAccessor", "getSpace", "useIdentity", "Panel", "createDataExtensions", "listener", "editorClassNames", "ScriptToolbar", "TypescriptEditor", "useDeployState", "useToolbarState", "ScriptArticle", "role", "attendableId", "subject", "script", "settings", "editorInputMode", "env", "identity", "space", "state", "extensions", "source", "target", "id", "text", "messenger", "onChange", "content", "update", "changed", "length", "Root", "Toolbar", "asChild", "Content", "classNames", "initialValue", "inputMode", "toolbar"]
7
7
  }
@@ -0,0 +1,39 @@
1
+ import "./chunk-J5LGTIGS.mjs";
2
+
3
+ // src/ScriptPlugin.tsx
4
+ import { Plugin } from "@dxos/app-framework";
5
+ import { AppActivationEvents, AppPlugin } from "@dxos/app-toolkit";
6
+ import { Script } from "@dxos/compute";
7
+ import { AppGraphBuilder, BlueprintDefinition, Compiler, CreateObject, OperationHandler, ReactSurface, ScriptSettings } from "#capabilities";
8
+ import { meta } from "#meta";
9
+ import { translations } from "#translations";
10
+ import { ScriptEvents } from "#types";
11
+ var ScriptPlugin = Plugin.define(meta).pipe(AppPlugin.addAppGraphModule({
12
+ activate: AppGraphBuilder
13
+ }), AppPlugin.addBlueprintDefinitionModule({
14
+ activate: BlueprintDefinition
15
+ }), AppPlugin.addCreateObjectModule({
16
+ activate: CreateObject
17
+ }), AppPlugin.addOperationHandlerModule({
18
+ activate: OperationHandler
19
+ }), AppPlugin.addSchemaModule({
20
+ schema: [
21
+ Script.Script
22
+ ]
23
+ }), AppPlugin.addSurfaceModule({
24
+ activate: ReactSurface
25
+ }), AppPlugin.addTranslationsModule({
26
+ translations
27
+ }), Plugin.addModule({
28
+ activatesOn: AppActivationEvents.SetupSettings,
29
+ activate: ScriptSettings
30
+ }), Plugin.addModule({
31
+ activatesOn: ScriptEvents.SetupCompiler,
32
+ activate: Compiler
33
+ }), Plugin.make);
34
+ var ScriptPlugin_default = ScriptPlugin;
35
+ export {
36
+ ScriptPlugin,
37
+ ScriptPlugin_default as default
38
+ };
39
+ //# sourceMappingURL=ScriptPlugin.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/ScriptPlugin.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Plugin } from '@dxos/app-framework';\nimport { AppActivationEvents, AppPlugin } from '@dxos/app-toolkit';\nimport { Script } from '@dxos/compute';\n\nimport {\n AppGraphBuilder,\n BlueprintDefinition,\n Compiler,\n CreateObject,\n OperationHandler,\n ReactSurface,\n ScriptSettings,\n} from '#capabilities';\nimport { meta } from '#meta';\nimport { translations } from '#translations';\nimport { ScriptEvents } from '#types';\n\nexport const ScriptPlugin = Plugin.define(meta).pipe(\n AppPlugin.addAppGraphModule({ activate: AppGraphBuilder }),\n AppPlugin.addBlueprintDefinitionModule({ activate: BlueprintDefinition }),\n AppPlugin.addCreateObjectModule({ activate: CreateObject }),\n AppPlugin.addOperationHandlerModule({ activate: OperationHandler }),\n AppPlugin.addSchemaModule({ schema: [Script.Script] }),\n AppPlugin.addSurfaceModule({ activate: ReactSurface }),\n AppPlugin.addTranslationsModule({ translations }),\n Plugin.addModule({\n activatesOn: AppActivationEvents.SetupSettings,\n activate: ScriptSettings,\n }),\n Plugin.addModule({\n activatesOn: ScriptEvents.SetupCompiler,\n activate: Compiler,\n }),\n Plugin.make,\n);\n\nexport default ScriptPlugin;\n"],
5
+ "mappings": ";;;AAIA,SAASA,cAAc;AACvB,SAASC,qBAAqBC,iBAAiB;AAC/C,SAASC,cAAc;AAEvB,SACEC,iBACAC,qBACAC,UACAC,cACAC,kBACAC,cACAC,sBACK;AACP,SAASC,YAAY;AACrB,SAASC,oBAAoB;AAC7B,SAASC,oBAAoB;AAEtB,IAAMC,eAAed,OAAOe,OAAOJ,IAAAA,EAAMK,KAC9Cd,UAAUe,kBAAkB;EAAEC,UAAUd;AAAgB,CAAA,GACxDF,UAAUiB,6BAA6B;EAAED,UAAUb;AAAoB,CAAA,GACvEH,UAAUkB,sBAAsB;EAAEF,UAAUX;AAAa,CAAA,GACzDL,UAAUmB,0BAA0B;EAAEH,UAAUV;AAAiB,CAAA,GACjEN,UAAUoB,gBAAgB;EAAEC,QAAQ;IAACpB,OAAOA;;AAAQ,CAAA,GACpDD,UAAUsB,iBAAiB;EAAEN,UAAUT;AAAa,CAAA,GACpDP,UAAUuB,sBAAsB;EAAEb;AAAa,CAAA,GAC/CZ,OAAO0B,UAAU;EACfC,aAAa1B,oBAAoB2B;EACjCV,UAAUR;AACZ,CAAA,GACAV,OAAO0B,UAAU;EACfC,aAAad,aAAagB;EAC1BX,UAAUZ;AACZ,CAAA,GACAN,OAAO8B,IAAI;AAGb,IAAA,uBAAehB;",
6
+ "names": ["Plugin", "AppActivationEvents", "AppPlugin", "Script", "AppGraphBuilder", "BlueprintDefinition", "Compiler", "CreateObject", "OperationHandler", "ReactSurface", "ScriptSettings", "meta", "translations", "ScriptEvents", "ScriptPlugin", "define", "pipe", "addAppGraphModule", "activate", "addBlueprintDefinitionModule", "addCreateObjectModule", "addOperationHandlerModule", "addSchemaModule", "schema", "addSurfaceModule", "addTranslationsModule", "addModule", "activatesOn", "SetupSettings", "SetupCompiler", "make"]
7
+ }
@@ -0,0 +1,27 @@
1
+ import "./chunk-J5LGTIGS.mjs";
2
+
3
+ // src/ScriptPlugin.node.ts
4
+ import { Plugin } from "@dxos/app-framework";
5
+ import { AppPlugin } from "@dxos/app-toolkit";
6
+ import { Script } from "@dxos/compute";
7
+ import { AppGraphBuilder, BlueprintDefinition, CreateObject, OperationHandler } from "#capabilities";
8
+ import { meta } from "#meta";
9
+ var ScriptPlugin = Plugin.define(meta).pipe(AppPlugin.addAppGraphModule({
10
+ activate: AppGraphBuilder
11
+ }), AppPlugin.addBlueprintDefinitionModule({
12
+ activate: BlueprintDefinition
13
+ }), AppPlugin.addCreateObjectModule({
14
+ activate: CreateObject
15
+ }), AppPlugin.addOperationHandlerModule({
16
+ activate: OperationHandler
17
+ }), AppPlugin.addSchemaModule({
18
+ schema: [
19
+ Script.Script
20
+ ]
21
+ }), Plugin.make);
22
+ var ScriptPlugin_node_default = ScriptPlugin;
23
+ export {
24
+ ScriptPlugin,
25
+ ScriptPlugin_node_default as default
26
+ };
27
+ //# sourceMappingURL=ScriptPlugin.node.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/ScriptPlugin.node.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Plugin } from '@dxos/app-framework';\nimport { AppPlugin } from '@dxos/app-toolkit';\nimport { Script } from '@dxos/compute';\n\nimport { AppGraphBuilder, BlueprintDefinition, CreateObject, OperationHandler } from '#capabilities';\nimport { meta } from '#meta';\n\nexport const ScriptPlugin = Plugin.define(meta).pipe(\n AppPlugin.addAppGraphModule({ activate: AppGraphBuilder }),\n AppPlugin.addBlueprintDefinitionModule({ activate: BlueprintDefinition }),\n AppPlugin.addCreateObjectModule({ activate: CreateObject }),\n AppPlugin.addOperationHandlerModule({ activate: OperationHandler }),\n AppPlugin.addSchemaModule({ schema: [Script.Script] }),\n Plugin.make,\n);\n\nexport default ScriptPlugin;\n"],
5
+ "mappings": ";;;AAIA,SAASA,cAAc;AACvB,SAASC,iBAAiB;AAC1B,SAASC,cAAc;AAEvB,SAASC,iBAAiBC,qBAAqBC,cAAcC,wBAAwB;AACrF,SAASC,YAAY;AAEd,IAAMC,eAAeR,OAAOS,OAAOF,IAAAA,EAAMG,KAC9CT,UAAUU,kBAAkB;EAAEC,UAAUT;AAAgB,CAAA,GACxDF,UAAUY,6BAA6B;EAAED,UAAUR;AAAoB,CAAA,GACvEH,UAAUa,sBAAsB;EAAEF,UAAUP;AAAa,CAAA,GACzDJ,UAAUc,0BAA0B;EAAEH,UAAUN;AAAiB,CAAA,GACjEL,UAAUe,gBAAgB;EAAEC,QAAQ;IAACf,OAAOA;;AAAQ,CAAA,GACpDF,OAAOkB,IAAI;AAGb,IAAA,4BAAeV;",
6
+ "names": ["Plugin", "AppPlugin", "Script", "AppGraphBuilder", "BlueprintDefinition", "CreateObject", "OperationHandler", "meta", "ScriptPlugin", "define", "pipe", "addAppGraphModule", "activate", "addBlueprintDefinitionModule", "addCreateObjectModule", "addOperationHandlerModule", "addSchemaModule", "schema", "make"]
7
+ }
@@ -0,0 +1,21 @@
1
+ import "./chunk-J5LGTIGS.mjs";
2
+
3
+ // src/ScriptPlugin.workerd.ts
4
+ import { Plugin } from "@dxos/app-framework";
5
+ import { AppPlugin } from "@dxos/app-toolkit";
6
+ import { Script } from "@dxos/compute";
7
+ import { OperationHandler } from "#capabilities";
8
+ import { meta } from "#meta";
9
+ var ScriptPlugin = Plugin.define(meta).pipe(AppPlugin.addOperationHandlerModule({
10
+ activate: OperationHandler
11
+ }), AppPlugin.addSchemaModule({
12
+ schema: [
13
+ Script.Script
14
+ ]
15
+ }), Plugin.make);
16
+ var ScriptPlugin_workerd_default = ScriptPlugin;
17
+ export {
18
+ ScriptPlugin,
19
+ ScriptPlugin_workerd_default as default
20
+ };
21
+ //# sourceMappingURL=ScriptPlugin.workerd.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/ScriptPlugin.workerd.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Plugin } from '@dxos/app-framework';\nimport { AppPlugin } from '@dxos/app-toolkit';\nimport { Script } from '@dxos/compute';\n\nimport { OperationHandler } from '#capabilities';\nimport { meta } from '#meta';\n\nexport const ScriptPlugin = Plugin.define(meta).pipe(\n AppPlugin.addOperationHandlerModule({ activate: OperationHandler }),\n AppPlugin.addSchemaModule({ schema: [Script.Script] }),\n Plugin.make,\n);\n\nexport default ScriptPlugin;\n"],
5
+ "mappings": ";;;AAIA,SAASA,cAAc;AACvB,SAASC,iBAAiB;AAC1B,SAASC,cAAc;AAEvB,SAASC,wBAAwB;AACjC,SAASC,YAAY;AAEd,IAAMC,eAAeL,OAAOM,OAAOF,IAAAA,EAAMG,KAC9CN,UAAUO,0BAA0B;EAAEC,UAAUN;AAAiB,CAAA,GACjEF,UAAUS,gBAAgB;EAAEC,QAAQ;IAACT,OAAOA;;AAAQ,CAAA,GACpDF,OAAOY,IAAI;AAGb,IAAA,+BAAeP;",
6
+ "names": ["Plugin", "AppPlugin", "Script", "OperationHandler", "meta", "ScriptPlugin", "define", "pipe", "addOperationHandlerModule", "activate", "addSchemaModule", "schema", "make"]
7
+ }
@@ -0,0 +1,31 @@
1
+ import "./chunk-J5LGTIGS.mjs";
2
+
3
+ // src/components/ScriptPluginSettings/ScriptPluginSettings.tsx
4
+ import React from "react";
5
+ import { Button, useTranslation } from "@dxos/react-ui";
6
+ import { Settings as SettingsForm } from "@dxos/react-ui-form";
7
+ import { meta } from "#meta";
8
+ import { Settings } from "#types";
9
+ var ScriptPluginSettings = ({ settings, onSettingsChange, onAuthenticate }) => {
10
+ const { t } = useTranslation(meta.id);
11
+ return /* @__PURE__ */ React.createElement(SettingsForm.Viewport, null, /* @__PURE__ */ React.createElement(SettingsForm.Section, {
12
+ title: t("settings.title", {
13
+ ns: meta.id
14
+ })
15
+ }, /* @__PURE__ */ React.createElement(SettingsForm.Item, {
16
+ title: t("authenticate-action.label"),
17
+ description: t("authenticate-action.description")
18
+ }, /* @__PURE__ */ React.createElement(Button, {
19
+ disabled: !onSettingsChange,
20
+ onClick: onAuthenticate
21
+ }, t("authenticate-button.label"))), /* @__PURE__ */ React.createElement(SettingsForm.FieldSet, {
22
+ readonly: !onSettingsChange,
23
+ schema: Settings.Settings,
24
+ values: settings,
25
+ onValuesChanged: (values) => onSettingsChange?.(() => values)
26
+ })));
27
+ };
28
+ export {
29
+ ScriptPluginSettings as default
30
+ };
31
+ //# sourceMappingURL=ScriptPluginSettings-T4JMUSHN.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/ScriptPluginSettings/ScriptPluginSettings.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type AppSurface } from '@dxos/app-toolkit/ui';\nimport { Button, useTranslation } from '@dxos/react-ui';\nimport { Settings as SettingsForm } from '@dxos/react-ui-form';\n\nimport { meta } from '#meta';\nimport { Settings } from '#types';\n\nexport type ScriptPluginSettingsProps = AppSurface.SettingsArticleProps<\n Settings.Settings,\n {\n onAuthenticate?: () => void;\n }\n>;\n\nexport const ScriptPluginSettings = ({ settings, onSettingsChange, onAuthenticate }: ScriptPluginSettingsProps) => {\n const { t } = useTranslation(meta.id);\n\n return (\n <SettingsForm.Viewport>\n <SettingsForm.Section title={t('settings.title', { ns: meta.id })}>\n {/* TODO(wittjosiah): Hide outside of dev environments. */}\n <SettingsForm.Item title={t('authenticate-action.label')} description={t('authenticate-action.description')}>\n <Button disabled={!onSettingsChange} onClick={onAuthenticate}>\n {t('authenticate-button.label')}\n </Button>\n </SettingsForm.Item>\n <SettingsForm.FieldSet\n readonly={!onSettingsChange}\n schema={Settings.Settings}\n values={settings}\n onValuesChanged={(values) => onSettingsChange?.(() => values)}\n />\n </SettingsForm.Section>\n </SettingsForm.Viewport>\n );\n};\n"],
5
+ "mappings": ";;;AAIA,OAAOA,WAAW;AAGlB,SAASC,QAAQC,sBAAsB;AACvC,SAASC,YAAYC,oBAAoB;AAEzC,SAASC,YAAY;AACrB,SAASF,gBAAgB;AASlB,IAAMG,uBAAuB,CAAC,EAAEC,UAAUC,kBAAkBC,eAAc,MAA6B;AAC5G,QAAM,EAAEC,EAAC,IAAKR,eAAeG,KAAKM,EAAE;AAEpC,SACE,sBAAA,cAACP,aAAaQ,UAAQ,MACpB,sBAAA,cAACR,aAAaS,SAAO;IAACC,OAAOJ,EAAE,kBAAkB;MAAEK,IAAIV,KAAKM;IAAG,CAAA;KAE7D,sBAAA,cAACP,aAAaY,MAAI;IAACF,OAAOJ,EAAE,2BAAA;IAA8BO,aAAaP,EAAE,iCAAA;KACvE,sBAAA,cAACT,QAAAA;IAAOiB,UAAU,CAACV;IAAkBW,SAASV;KAC3CC,EAAE,2BAAA,CAAA,CAAA,GAGP,sBAAA,cAACN,aAAagB,UAAQ;IACpBC,UAAU,CAACb;IACXc,QAAQnB,SAASA;IACjBoB,QAAQhB;IACRiB,iBAAiB,CAACD,WAAWf,mBAAmB,MAAMe,MAAAA;;AAKhE;",
6
+ "names": ["React", "Button", "useTranslation", "Settings", "SettingsForm", "meta", "ScriptPluginSettings", "settings", "onSettingsChange", "onAuthenticate", "t", "id", "Viewport", "Section", "title", "ns", "Item", "description", "disabled", "onClick", "FieldSet", "readonly", "schema", "values", "onValuesChanged"]
7
+ }