@dxos/plugin-script 0.8.4-main.7ace549 → 0.8.4-main.9735255

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 (372) hide show
  1. package/dist/lib/browser/DeploymentDialog-OSL6RMPA.mjs +14 -0
  2. package/dist/lib/browser/{NotebookContainer-MHY3DXDE.mjs → NotebookContainer-NBAXYESH.mjs} +266 -238
  3. package/dist/lib/browser/NotebookContainer-NBAXYESH.mjs.map +7 -0
  4. package/dist/lib/browser/ScriptContainer-WD33CJMI.mjs +149 -0
  5. package/dist/lib/browser/ScriptContainer-WD33CJMI.mjs.map +7 -0
  6. package/dist/lib/browser/app-graph-builder-7VO7AUI6.mjs +68 -0
  7. package/dist/lib/browser/app-graph-builder-7VO7AUI6.mjs.map +7 -0
  8. package/dist/lib/browser/blueprint-definition-OSOUYI7A.mjs +17 -0
  9. package/dist/lib/browser/blueprint-definition-OSOUYI7A.mjs.map +7 -0
  10. package/dist/lib/browser/blueprints/index.mjs +8 -0
  11. package/dist/lib/browser/chunk-BTWHM6FH.mjs +270 -0
  12. package/dist/lib/browser/chunk-BTWHM6FH.mjs.map +7 -0
  13. package/dist/lib/browser/{chunk-ULJFT73Q.mjs → chunk-C53UJGSU.mjs} +232 -188
  14. package/dist/lib/browser/chunk-C53UJGSU.mjs.map +7 -0
  15. package/dist/lib/browser/chunk-F3QKSKSF.mjs +35 -0
  16. package/dist/lib/browser/chunk-F3QKSKSF.mjs.map +7 -0
  17. package/dist/lib/browser/chunk-I7CSE6T3.mjs +110 -0
  18. package/dist/lib/browser/chunk-I7CSE6T3.mjs.map +7 -0
  19. package/dist/lib/browser/chunk-TWX2NMZN.mjs +137 -0
  20. package/dist/lib/browser/chunk-TWX2NMZN.mjs.map +7 -0
  21. package/dist/lib/browser/chunk-UUR4JNNB.mjs +113 -0
  22. package/dist/lib/browser/chunk-UUR4JNNB.mjs.map +7 -0
  23. package/dist/lib/browser/{chunk-2G2NA6DQ.mjs → chunk-UX4GHJ5E.mjs} +28 -11
  24. package/dist/lib/browser/chunk-UX4GHJ5E.mjs.map +7 -0
  25. package/dist/lib/browser/{chunk-EB6AXFXO.mjs → chunk-WYR4QHPE.mjs} +1 -1
  26. package/dist/lib/browser/chunk-WYR4QHPE.mjs.map +7 -0
  27. package/dist/lib/browser/chunk-XCN4D3Z5.mjs +606 -0
  28. package/dist/lib/browser/chunk-XCN4D3Z5.mjs.map +7 -0
  29. package/dist/lib/browser/compiler-76F3QAXC.mjs +161 -0
  30. package/dist/lib/browser/compiler-76F3QAXC.mjs.map +7 -0
  31. package/dist/lib/browser/index.mjs +92 -116
  32. package/dist/lib/browser/index.mjs.map +4 -4
  33. package/dist/lib/browser/meta.json +1 -1
  34. package/dist/lib/browser/operation-resolver-HUILPPKT.mjs +82 -0
  35. package/dist/lib/browser/operation-resolver-HUILPPKT.mjs.map +7 -0
  36. package/dist/lib/browser/{react-surface-R245YN52.mjs → react-surface-O6GKHB2J.mjs} +53 -42
  37. package/dist/lib/browser/react-surface-O6GKHB2J.mjs.map +7 -0
  38. package/dist/lib/browser/settings-3ENI25PI.mjs +35 -0
  39. package/dist/lib/browser/settings-3ENI25PI.mjs.map +7 -0
  40. package/dist/lib/browser/templates/index.mjs +1 -1
  41. package/dist/lib/browser/types/index.mjs +9 -5
  42. package/dist/lib/node-esm/{DeploymentDialog-2ULNOZQH.mjs → DeploymentDialog-OGBJPVIX.mjs} +6 -6
  43. package/dist/lib/node-esm/DeploymentDialog-OGBJPVIX.mjs.map +7 -0
  44. package/dist/lib/node-esm/{NotebookContainer-U4C2HQ4T.mjs → NotebookContainer-IUAYVJSD.mjs} +266 -238
  45. package/dist/lib/node-esm/NotebookContainer-IUAYVJSD.mjs.map +7 -0
  46. package/dist/lib/node-esm/ScriptContainer-K7JCEU5Z.mjs +150 -0
  47. package/dist/lib/node-esm/ScriptContainer-K7JCEU5Z.mjs.map +7 -0
  48. package/dist/lib/node-esm/app-graph-builder-NVE3EVBG.mjs +69 -0
  49. package/dist/lib/node-esm/app-graph-builder-NVE3EVBG.mjs.map +7 -0
  50. package/dist/lib/node-esm/blueprint-definition-NC7NNJGI.mjs +18 -0
  51. package/dist/lib/node-esm/blueprint-definition-NC7NNJGI.mjs.map +7 -0
  52. package/dist/lib/node-esm/blueprints/index.mjs +9 -0
  53. package/dist/lib/node-esm/blueprints/index.mjs.map +7 -0
  54. package/dist/lib/node-esm/{chunk-57JA6XL5.mjs → chunk-4F5FJZ36.mjs} +28 -11
  55. package/dist/lib/node-esm/chunk-4F5FJZ36.mjs.map +7 -0
  56. package/dist/lib/node-esm/chunk-4QNZMXW6.mjs +607 -0
  57. package/dist/lib/node-esm/chunk-4QNZMXW6.mjs.map +7 -0
  58. package/dist/lib/node-esm/{chunk-IBV2DR36.mjs → chunk-5HSJPAK7.mjs} +1 -1
  59. package/dist/lib/node-esm/chunk-5HSJPAK7.mjs.map +7 -0
  60. package/dist/lib/node-esm/{chunk-VJSRZRLI.mjs → chunk-BX5PP6AW.mjs} +232 -188
  61. package/dist/lib/node-esm/chunk-BX5PP6AW.mjs.map +7 -0
  62. package/dist/lib/node-esm/chunk-G3J76DWP.mjs +114 -0
  63. package/dist/lib/node-esm/chunk-G3J76DWP.mjs.map +7 -0
  64. package/dist/lib/node-esm/chunk-SLU3KRV3.mjs +112 -0
  65. package/dist/lib/node-esm/chunk-SLU3KRV3.mjs.map +7 -0
  66. package/dist/lib/node-esm/chunk-VQPIA4VF.mjs +138 -0
  67. package/dist/lib/node-esm/chunk-VQPIA4VF.mjs.map +7 -0
  68. package/dist/lib/node-esm/chunk-VWOLKNMO.mjs +271 -0
  69. package/dist/lib/node-esm/chunk-VWOLKNMO.mjs.map +7 -0
  70. package/dist/lib/node-esm/chunk-Y3G5NCTP.mjs +36 -0
  71. package/dist/lib/node-esm/chunk-Y3G5NCTP.mjs.map +7 -0
  72. package/dist/lib/node-esm/compiler-FNZH6TFN.mjs +162 -0
  73. package/dist/lib/node-esm/compiler-FNZH6TFN.mjs.map +7 -0
  74. package/dist/lib/node-esm/index.mjs +92 -116
  75. package/dist/lib/node-esm/index.mjs.map +4 -4
  76. package/dist/lib/node-esm/meta.json +1 -1
  77. package/dist/lib/node-esm/operation-resolver-JTCIY6HU.mjs +83 -0
  78. package/dist/lib/node-esm/operation-resolver-JTCIY6HU.mjs.map +7 -0
  79. package/dist/lib/node-esm/{react-surface-MHT3PJ6C.mjs → react-surface-RLANMVMB.mjs} +53 -42
  80. package/dist/lib/node-esm/react-surface-RLANMVMB.mjs.map +7 -0
  81. package/dist/lib/node-esm/settings-7AYC5VXN.mjs +36 -0
  82. package/dist/lib/node-esm/settings-7AYC5VXN.mjs.map +7 -0
  83. package/dist/lib/node-esm/templates/index.mjs +1 -1
  84. package/dist/lib/node-esm/types/index.mjs +9 -5
  85. package/dist/types/src/ScriptPlugin.d.ts +2 -1
  86. package/dist/types/src/ScriptPlugin.d.ts.map +1 -1
  87. package/dist/types/src/blueprints/index.d.ts +2 -0
  88. package/dist/types/src/blueprints/index.d.ts.map +1 -0
  89. package/dist/types/src/blueprints/script-blueprint.d.ts +22 -0
  90. package/dist/types/src/blueprints/script-blueprint.d.ts.map +1 -0
  91. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +6 -0
  92. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -0
  93. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +3 -0
  94. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +1 -0
  95. package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts +12 -0
  96. package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts.map +1 -0
  97. package/dist/types/src/capabilities/artifact-definition/index.d.ts +3 -0
  98. package/dist/types/src/capabilities/artifact-definition/index.d.ts.map +1 -0
  99. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +9 -0
  100. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +1 -0
  101. package/dist/types/src/capabilities/blueprint-definition/index.d.ts +3 -0
  102. package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +1 -0
  103. package/dist/types/src/capabilities/compiler/compiler.d.ts +6 -0
  104. package/dist/types/src/capabilities/compiler/compiler.d.ts.map +1 -0
  105. package/dist/types/src/capabilities/compiler/index.d.ts +3 -0
  106. package/dist/types/src/capabilities/compiler/index.d.ts.map +1 -0
  107. package/dist/types/src/capabilities/index.d.ts +6 -7
  108. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  109. package/dist/types/src/capabilities/operation-resolver/index.d.ts +3 -0
  110. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -0
  111. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +5 -0
  112. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -0
  113. package/dist/types/src/capabilities/react-surface/index.d.ts +3 -0
  114. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
  115. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +5 -0
  116. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
  117. package/dist/types/src/capabilities/settings/index.d.ts +7 -0
  118. package/dist/types/src/capabilities/settings/index.d.ts.map +1 -0
  119. package/dist/types/src/capabilities/settings/settings.d.ts +9 -0
  120. package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -0
  121. package/dist/types/src/compiler/compiler.d.ts +1 -1
  122. package/dist/types/src/compiler/compiler.d.ts.map +1 -1
  123. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.d.ts.map +1 -1
  124. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts +1 -3
  125. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts.map +1 -1
  126. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts.map +1 -1
  127. package/dist/types/src/components/NotebookContainer.d.ts +3 -5
  128. package/dist/types/src/components/NotebookContainer.d.ts.map +1 -1
  129. package/dist/types/src/components/NotebookContainer.stories.d.ts +3 -250
  130. package/dist/types/src/components/NotebookContainer.stories.d.ts.map +1 -1
  131. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts +3 -3
  132. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts.map +1 -1
  133. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts +1 -1
  134. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts.map +1 -1
  135. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts +2 -1
  136. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts.map +1 -1
  137. package/dist/types/src/components/QueryEditor/QueryEditor.d.ts +5 -0
  138. package/dist/types/src/components/QueryEditor/QueryEditor.d.ts.map +1 -0
  139. package/dist/types/src/components/QueryEditor/QueryEditor.stories.d.ts +13 -0
  140. package/dist/types/src/components/QueryEditor/QueryEditor.stories.d.ts.map +1 -0
  141. package/dist/types/src/components/QueryEditor/index.d.ts +2 -0
  142. package/dist/types/src/components/QueryEditor/index.d.ts.map +1 -0
  143. package/dist/types/src/components/ScriptContainer.d.ts +4 -5
  144. package/dist/types/src/components/ScriptContainer.d.ts.map +1 -1
  145. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts +2 -2
  146. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts.map +1 -1
  147. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts +2 -1
  148. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts.map +1 -1
  149. package/dist/types/src/components/Settings/ScriptObjectSettings.d.ts.map +1 -1
  150. package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts +4 -2
  151. package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts.map +1 -1
  152. package/dist/types/src/components/TestPanel/TestContainer.d.ts +1 -1
  153. package/dist/types/src/components/TestPanel/TestContainer.d.ts.map +1 -1
  154. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts +3 -2
  155. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts.map +1 -1
  156. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts +1 -1
  157. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts.map +1 -1
  158. package/dist/types/src/components/index.d.ts +2 -2
  159. package/dist/types/src/components/index.d.ts.map +1 -1
  160. package/dist/types/src/e2e/ai.test.d.ts +2 -0
  161. package/dist/types/src/e2e/ai.test.d.ts.map +1 -0
  162. package/dist/types/src/e2e/deploy.test.d.ts +2 -0
  163. package/dist/types/src/e2e/deploy.test.d.ts.map +1 -0
  164. package/dist/types/src/hooks/deploy.d.ts +9 -26
  165. package/dist/types/src/hooks/deploy.d.ts.map +1 -1
  166. package/dist/types/src/hooks/format.d.ts +2 -2
  167. package/dist/types/src/hooks/format.d.ts.map +1 -1
  168. package/dist/types/src/hooks/index.d.ts +1 -0
  169. package/dist/types/src/hooks/index.d.ts.map +1 -1
  170. package/dist/types/src/hooks/template.d.ts +2 -2
  171. package/dist/types/src/hooks/template.d.ts.map +1 -1
  172. package/dist/types/src/hooks/useCompiler.d.ts +7 -0
  173. package/dist/types/src/hooks/useCompiler.d.ts.map +1 -0
  174. package/dist/types/src/hooks/useCreateAndDeployScriptTemplates.d.ts.map +1 -1
  175. package/dist/types/src/hooks/useToolbarState.d.ts +8 -1
  176. package/dist/types/src/hooks/useToolbarState.d.ts.map +1 -1
  177. package/dist/types/src/index.d.ts +1 -1
  178. package/dist/types/src/index.d.ts.map +1 -1
  179. package/dist/types/src/meta.d.ts +2 -2
  180. package/dist/types/src/meta.d.ts.map +1 -1
  181. package/dist/types/src/notebook/compute-graph.d.ts +24 -11
  182. package/dist/types/src/notebook/compute-graph.d.ts.map +1 -1
  183. package/dist/types/src/templates/anthropic.d.ts +8 -0
  184. package/dist/types/src/templates/anthropic.d.ts.map +1 -0
  185. package/dist/types/src/templates/chess-bot.d.ts +16 -0
  186. package/dist/types/src/templates/chess-bot.d.ts.map +1 -0
  187. package/dist/types/src/templates/commentary.d.ts +16 -0
  188. package/dist/types/src/templates/commentary.d.ts.map +1 -0
  189. package/dist/types/src/templates/forex-effect.d.ts +4 -1
  190. package/dist/types/src/templates/forex-effect.d.ts.map +1 -1
  191. package/dist/types/src/templates/forex.d.ts +4 -1
  192. package/dist/types/src/templates/forex.d.ts.map +1 -1
  193. package/dist/types/src/templates/index.d.ts +12 -3
  194. package/dist/types/src/templates/index.d.ts.map +1 -1
  195. package/dist/types/src/templates/ping.d.ts +1 -4
  196. package/dist/types/src/templates/ping.d.ts.map +1 -1
  197. package/dist/types/src/testing/simulator.test.d.ts +2 -0
  198. package/dist/types/src/testing/simulator.test.d.ts.map +1 -0
  199. package/dist/types/src/types/Notebook.d.ts +88 -19
  200. package/dist/types/src/types/Notebook.d.ts.map +1 -1
  201. package/dist/types/src/types/actions.d.ts +30 -44
  202. package/dist/types/src/types/actions.d.ts.map +1 -1
  203. package/dist/types/src/types/capabilities.d.ts +12 -0
  204. package/dist/types/src/types/capabilities.d.ts.map +1 -0
  205. package/dist/types/src/types/events.d.ts +5 -0
  206. package/dist/types/src/types/events.d.ts.map +1 -0
  207. package/dist/types/src/types/index.d.ts +2 -0
  208. package/dist/types/src/types/index.d.ts.map +1 -1
  209. package/dist/types/src/util/deploy.d.ts.map +1 -1
  210. package/dist/types/src/util/functions.d.ts.map +1 -1
  211. package/dist/types/tsconfig.tsbuildinfo +1 -1
  212. package/package.json +113 -88
  213. package/src/ScriptPlugin.tsx +34 -60
  214. package/src/blueprints/index.ts +5 -0
  215. package/src/blueprints/script-blueprint.ts +24 -0
  216. package/src/capabilities/app-graph-builder/app-graph-builder.ts +55 -0
  217. package/src/capabilities/app-graph-builder/index.ts +7 -0
  218. package/src/capabilities/{artifact-definition.ts → artifact-definition/artifact-definition.ts} +97 -94
  219. package/src/capabilities/artifact-definition/index.ts +7 -0
  220. package/src/capabilities/blueprint-definition/blueprint-definition.ts +23 -0
  221. package/src/capabilities/blueprint-definition/index.ts +7 -0
  222. package/src/capabilities/compiler/compiler.ts +103 -0
  223. package/src/capabilities/compiler/index.ts +7 -0
  224. package/src/capabilities/index.ts +6 -10
  225. package/src/capabilities/operation-resolver/index.ts +7 -0
  226. package/src/capabilities/operation-resolver/operation-resolver.ts +74 -0
  227. package/src/capabilities/react-surface/index.ts +7 -0
  228. package/src/capabilities/react-surface/react-surface.tsx +118 -0
  229. package/src/capabilities/settings/index.ts +7 -0
  230. package/src/capabilities/settings/settings.ts +32 -0
  231. package/src/compiler/compiler.ts +10 -3
  232. package/src/components/DeploymentDialog/DeploymentDialog.stories.tsx +27 -23
  233. package/src/components/DeploymentDialog/DeploymentDialog.tsx +22 -42
  234. package/src/components/FrameContainer/FrameContainer.tsx +4 -2
  235. package/src/components/NotebookContainer.stories.tsx +23 -19
  236. package/src/components/NotebookContainer.tsx +51 -40
  237. package/src/components/NotebookStack/NotebookCell.tsx +16 -15
  238. package/src/components/NotebookStack/NotebookStack.stories.tsx +19 -18
  239. package/src/components/NotebookStack/NotebookStack.tsx +4 -4
  240. package/src/components/QueryEditor/QueryEditor.stories.tsx +100 -0
  241. package/src/components/QueryEditor/QueryEditor.tsx +47 -0
  242. package/src/components/QueryEditor/index.ts +5 -0
  243. package/src/components/ScriptContainer.tsx +46 -32
  244. package/src/components/ScriptToolbar/ScriptToolbar.stories.tsx +38 -15
  245. package/src/components/ScriptToolbar/ScriptToolbar.tsx +14 -17
  246. package/src/components/Settings/ScriptObjectSettings.tsx +40 -29
  247. package/src/components/Settings/ScriptPluginSettings.tsx +8 -3
  248. package/src/components/TestPanel/TestContainer.tsx +5 -5
  249. package/src/components/TestPanel/TestPanel.tsx +1 -1
  250. package/src/components/TypescriptEditor/TypescriptEditor.stories.tsx +12 -7
  251. package/src/components/TypescriptEditor/TypescriptEditor.tsx +69 -68
  252. package/src/e2e/ai.test.ts +92 -0
  253. package/src/e2e/deploy.test.ts +64 -0
  254. package/src/hooks/deploy.ts +33 -26
  255. package/src/hooks/format.ts +5 -1
  256. package/src/hooks/index.ts +1 -0
  257. package/src/hooks/template.ts +15 -9
  258. package/src/hooks/useCompiler.ts +24 -0
  259. package/src/hooks/useCreateAndDeployScriptTemplates.ts +13 -19
  260. package/src/hooks/useToolbarState.ts +29 -5
  261. package/src/index.ts +1 -1
  262. package/src/meta.ts +2 -2
  263. package/src/notebook/compute-graph.test.ts +20 -8
  264. package/src/notebook/compute-graph.ts +45 -21
  265. package/src/templates/anthropic.ts +42 -0
  266. package/src/templates/chess-bot.ts +58 -0
  267. package/src/templates/commentary.ts +232 -0
  268. package/src/templates/data-generator.ts +1 -1
  269. package/src/templates/forex-effect.ts +22 -27
  270. package/src/templates/forex.ts +7 -6
  271. package/src/templates/index.ts +18 -5
  272. package/src/templates/ping.ts +14 -5
  273. package/src/testing/simulator.test.ts +40 -0
  274. package/src/types/Notebook.ts +7 -8
  275. package/src/types/actions.ts +17 -25
  276. package/src/types/capabilities.ts +17 -0
  277. package/src/types/events.ts +11 -0
  278. package/src/types/index.ts +2 -0
  279. package/src/types/types.ts +1 -1
  280. package/src/util/deploy.ts +19 -25
  281. package/src/util/functions.ts +24 -22
  282. package/src/vite-env.d.ts +2 -0
  283. package/dist/lib/browser/DeploymentDialog-5TKNGPVR.mjs +0 -14
  284. package/dist/lib/browser/NotebookContainer-MHY3DXDE.mjs.map +0 -7
  285. package/dist/lib/browser/ScriptContainer-CW6YN3DQ.mjs +0 -148
  286. package/dist/lib/browser/ScriptContainer-CW6YN3DQ.mjs.map +0 -7
  287. package/dist/lib/browser/app-graph-builder-2WR2ATTJ.mjs +0 -66
  288. package/dist/lib/browser/app-graph-builder-2WR2ATTJ.mjs.map +0 -7
  289. package/dist/lib/browser/blueprint-definition-6PZWZM2Y.mjs +0 -30
  290. package/dist/lib/browser/blueprint-definition-6PZWZM2Y.mjs.map +0 -7
  291. package/dist/lib/browser/chunk-2G2NA6DQ.mjs.map +0 -7
  292. package/dist/lib/browser/chunk-ALS6X4HU.mjs +0 -304
  293. package/dist/lib/browser/chunk-ALS6X4HU.mjs.map +0 -7
  294. package/dist/lib/browser/chunk-EB6AXFXO.mjs.map +0 -7
  295. package/dist/lib/browser/chunk-M6KJPUJK.mjs +0 -111
  296. package/dist/lib/browser/chunk-M6KJPUJK.mjs.map +0 -7
  297. package/dist/lib/browser/chunk-N5EYLQOT.mjs +0 -647
  298. package/dist/lib/browser/chunk-N5EYLQOT.mjs.map +0 -7
  299. package/dist/lib/browser/chunk-QIZ3BPRK.mjs +0 -103
  300. package/dist/lib/browser/chunk-QIZ3BPRK.mjs.map +0 -7
  301. package/dist/lib/browser/chunk-SAN5Y7FI.mjs +0 -155
  302. package/dist/lib/browser/chunk-SAN5Y7FI.mjs.map +0 -7
  303. package/dist/lib/browser/chunk-ULJFT73Q.mjs.map +0 -7
  304. package/dist/lib/browser/chunk-UOQ6NCH3.mjs +0 -15
  305. package/dist/lib/browser/chunk-UOQ6NCH3.mjs.map +0 -7
  306. package/dist/lib/browser/compiler-4KHRSX7J.mjs +0 -86
  307. package/dist/lib/browser/compiler-4KHRSX7J.mjs.map +0 -7
  308. package/dist/lib/browser/intent-resolver-TXTBWOVD.mjs +0 -104
  309. package/dist/lib/browser/intent-resolver-TXTBWOVD.mjs.map +0 -7
  310. package/dist/lib/browser/react-surface-R245YN52.mjs.map +0 -7
  311. package/dist/lib/browser/settings-MHJXRGDF.mjs +0 -26
  312. package/dist/lib/browser/settings-MHJXRGDF.mjs.map +0 -7
  313. package/dist/lib/node-esm/NotebookContainer-U4C2HQ4T.mjs.map +0 -7
  314. package/dist/lib/node-esm/ScriptContainer-VRPEKB4T.mjs +0 -149
  315. package/dist/lib/node-esm/ScriptContainer-VRPEKB4T.mjs.map +0 -7
  316. package/dist/lib/node-esm/app-graph-builder-NCVLUL5R.mjs +0 -67
  317. package/dist/lib/node-esm/app-graph-builder-NCVLUL5R.mjs.map +0 -7
  318. package/dist/lib/node-esm/blueprint-definition-5R6YCSZZ.mjs +0 -31
  319. package/dist/lib/node-esm/blueprint-definition-5R6YCSZZ.mjs.map +0 -7
  320. package/dist/lib/node-esm/chunk-55JZVM6K.mjs +0 -16
  321. package/dist/lib/node-esm/chunk-55JZVM6K.mjs.map +0 -7
  322. package/dist/lib/node-esm/chunk-57JA6XL5.mjs.map +0 -7
  323. package/dist/lib/node-esm/chunk-HDKR5WCD.mjs +0 -113
  324. package/dist/lib/node-esm/chunk-HDKR5WCD.mjs.map +0 -7
  325. package/dist/lib/node-esm/chunk-IBV2DR36.mjs.map +0 -7
  326. package/dist/lib/node-esm/chunk-ND4BPYPR.mjs +0 -156
  327. package/dist/lib/node-esm/chunk-ND4BPYPR.mjs.map +0 -7
  328. package/dist/lib/node-esm/chunk-UEVZP5DN.mjs +0 -648
  329. package/dist/lib/node-esm/chunk-UEVZP5DN.mjs.map +0 -7
  330. package/dist/lib/node-esm/chunk-VJSRZRLI.mjs.map +0 -7
  331. package/dist/lib/node-esm/chunk-VTRMJSQL.mjs +0 -305
  332. package/dist/lib/node-esm/chunk-VTRMJSQL.mjs.map +0 -7
  333. package/dist/lib/node-esm/chunk-XYKKDWUR.mjs +0 -104
  334. package/dist/lib/node-esm/chunk-XYKKDWUR.mjs.map +0 -7
  335. package/dist/lib/node-esm/compiler-DU5NQISX.mjs +0 -87
  336. package/dist/lib/node-esm/compiler-DU5NQISX.mjs.map +0 -7
  337. package/dist/lib/node-esm/intent-resolver-D6AVAQRA.mjs +0 -105
  338. package/dist/lib/node-esm/intent-resolver-D6AVAQRA.mjs.map +0 -7
  339. package/dist/lib/node-esm/react-surface-MHT3PJ6C.mjs.map +0 -7
  340. package/dist/lib/node-esm/settings-BVJORMMJ.mjs +0 -27
  341. package/dist/lib/node-esm/settings-BVJORMMJ.mjs.map +0 -7
  342. package/dist/types/src/capabilities/app-graph-builder.d.ts +0 -4
  343. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +0 -1
  344. package/dist/types/src/capabilities/artifact-definition.d.ts +0 -11
  345. package/dist/types/src/capabilities/artifact-definition.d.ts.map +0 -1
  346. package/dist/types/src/capabilities/blueprint-definition.d.ts +0 -5
  347. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +0 -1
  348. package/dist/types/src/capabilities/capabilities.d.ts +0 -5
  349. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  350. package/dist/types/src/capabilities/compiler.d.ts +0 -4
  351. package/dist/types/src/capabilities/compiler.d.ts.map +0 -1
  352. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  353. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  354. package/dist/types/src/capabilities/react-surface.d.ts +0 -4
  355. package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
  356. package/dist/types/src/capabilities/settings.d.ts +0 -4
  357. package/dist/types/src/capabilities/settings.d.ts.map +0 -1
  358. package/dist/types/src/events.d.ts +0 -4
  359. package/dist/types/src/events.d.ts.map +0 -1
  360. package/dist/types/src/templates/chess.d.ts +0 -3
  361. package/dist/types/src/templates/chess.d.ts.map +0 -1
  362. package/src/capabilities/app-graph-builder.ts +0 -65
  363. package/src/capabilities/blueprint-definition.ts +0 -30
  364. package/src/capabilities/capabilities.ts +0 -12
  365. package/src/capabilities/compiler.ts +0 -34
  366. package/src/capabilities/intent-resolver.ts +0 -86
  367. package/src/capabilities/react-surface.tsx +0 -103
  368. package/src/capabilities/settings.ts +0 -21
  369. package/src/events.ts +0 -11
  370. package/src/templates/chess.ts +0 -49
  371. /package/dist/lib/browser/{DeploymentDialog-5TKNGPVR.mjs.map → DeploymentDialog-OSL6RMPA.mjs.map} +0 -0
  372. /package/dist/lib/{node-esm/DeploymentDialog-2ULNOZQH.mjs.map → browser/blueprints/index.mjs.map} +0 -0
@@ -0,0 +1,32 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import * as Effect from 'effect/Effect';
6
+
7
+ import { Capability, Common } from '@dxos/app-framework';
8
+ import { createKvsStore } from '@dxos/effect';
9
+
10
+ import { meta } from '../../meta';
11
+ import { ScriptCapabilities, ScriptSettings } from '../../types';
12
+
13
+ export default Capability.makeModule(() =>
14
+ Effect.sync(() => {
15
+ const settingsAtom = createKvsStore({
16
+ key: meta.id,
17
+ schema: ScriptSettings,
18
+ defaultValue: () => ({
19
+ editorInputMode: 'vscode' as const,
20
+ }),
21
+ });
22
+
23
+ return [
24
+ Capability.contributes(ScriptCapabilities.Settings, settingsAtom),
25
+ Capability.contributes(Common.Capability.Settings, {
26
+ prefix: meta.id,
27
+ schema: ScriptSettings,
28
+ atom: settingsAtom,
29
+ }),
30
+ ];
31
+ }),
32
+ );
@@ -12,6 +12,8 @@ import ts from 'typescript';
12
12
 
13
13
  import { invariant } from '@dxos/invariant';
14
14
 
15
+ const GLOBALS = 'globals.d.ts';
16
+
15
17
  const defaultOptions: ts.CompilerOptions = {
16
18
  lib: ['DOM', 'es2022'],
17
19
  target: ts.ScriptTarget.ES2022,
@@ -23,16 +25,21 @@ export class Compiler {
23
25
 
24
26
  constructor(private readonly _options: ts.CompilerOptions = defaultOptions) {}
25
27
 
26
- async initialize(): Promise<void> {
28
+ async initialize(globals?: string): Promise<void> {
27
29
  if (this._env) {
28
30
  return;
29
31
  }
30
32
 
31
33
  // TODO(wittjosiah): Figure out how to get workers working in plugin packages.
32
34
  // https://github.com/val-town/codemirror-ts?tab=readme-ov-file#setup-worker
33
- this._fsMap = await createDefaultMapFromCDN(this._options, '5.5.4', true, ts);
35
+ this._fsMap = await createDefaultMapFromCDN(this._options, '5.7.2', true, ts);
36
+ if (globals) {
37
+ this._fsMap.set(GLOBALS, globals);
38
+ }
39
+
40
+ const rootFiles = globals ? [GLOBALS] : [];
34
41
  const system = createSystem(this._fsMap);
35
- this._env = createVirtualTypeScriptEnvironment(system, [], ts, this._options);
42
+ this._env = createVirtualTypeScriptEnvironment(system, rootFiles, ts, this._options);
36
43
  }
37
44
 
38
45
  get environment() {
@@ -3,9 +3,9 @@
3
3
  //
4
4
 
5
5
  import { type Meta, type StoryObj } from '@storybook/react-vite';
6
- import React from 'react';
6
+ import React, { useMemo } from 'react';
7
7
 
8
- import { IntentPlugin } from '@dxos/app-framework';
8
+ import { OperationPlugin } from '@dxos/app-framework';
9
9
  import { withPluginManager } from '@dxos/app-framework/testing';
10
10
  import { Obj } from '@dxos/echo';
11
11
  import { ClientPlugin } from '@dxos/plugin-client';
@@ -15,44 +15,48 @@ import { AccessToken } from '@dxos/types';
15
15
 
16
16
  import { translations } from '../../translations';
17
17
 
18
- import { DeploymentDialog, type DeploymentDialogProps } from './DeploymentDialog';
19
-
20
- const DefaultStory = (props: DeploymentDialogProps) => {
18
+ import { DeploymentDialog } from './DeploymentDialog';
19
+
20
+ // TODO(wittjosiah): ECHO objects don't work when passed via Storybook args.
21
+ const DeploymentDialogStory = () => {
22
+ const accessToken = useMemo(
23
+ () =>
24
+ Obj.make(AccessToken.AccessToken, {
25
+ source: 'example.com',
26
+ token: 'example-token',
27
+ }),
28
+ [],
29
+ );
30
+ const scriptTemplates = useMemo(
31
+ () => [
32
+ { id: 't-1', name: 'Script 1', source: 'template1' },
33
+ { id: 't-2', name: 'Script 2', source: 'template2' },
34
+ { id: 't-3', name: 'Script 3', source: 'template3' },
35
+ ],
36
+ [],
37
+ );
21
38
  return (
22
39
  <Dialog.Root defaultOpen={true}>
23
- <DeploymentDialog {...props} />
40
+ <DeploymentDialog accessToken={accessToken} scriptTemplates={scriptTemplates} />
24
41
  </Dialog.Root>
25
42
  );
26
43
  };
27
44
 
28
45
  const meta = {
29
46
  title: 'plugins/plugin-script/DeploymentDialog',
30
- component: DeploymentDialog,
31
- render: DefaultStory,
47
+ component: DeploymentDialogStory,
32
48
  parameters: { translations },
33
49
  // TODO(wittjosiah): Try to write story which does not depend on plugin manager.
34
50
  decorators: [
35
51
  withTheme,
36
52
  withPluginManager({
37
- plugins: [IntentPlugin(), ClientPlugin({})],
53
+ plugins: [OperationPlugin(), ClientPlugin({})],
38
54
  }),
39
55
  ],
40
- } satisfies Meta<typeof DefaultStory>;
56
+ } satisfies Meta<typeof DeploymentDialogStory>;
41
57
 
42
58
  export default meta;
43
59
 
44
60
  type Story = StoryObj<typeof meta>;
45
61
 
46
- export const Default: Story = {
47
- args: {
48
- accessToken: Obj.make(AccessToken.AccessToken, {
49
- source: 'example.com',
50
- token: 'example-token',
51
- }),
52
- scriptTemplates: [
53
- { id: 't-1', name: 'Script 1', source: 'template1' },
54
- { id: 't-2', name: 'Script 2', source: 'template2' },
55
- { id: 't-3', name: 'Script 3', source: 'template3' },
56
- ],
57
- },
58
- };
62
+ export const Default: Story = {};
@@ -4,8 +4,8 @@
4
4
 
5
5
  import React, { useEffect, useMemo } from 'react';
6
6
 
7
- import { LayoutAction, createIntent } from '@dxos/app-framework';
8
- import { useIntentDispatcher } from '@dxos/app-framework/react';
7
+ import { Common } from '@dxos/app-framework';
8
+ import { useOperationInvoker } from '@dxos/app-framework/react';
9
9
  import { getSpace } from '@dxos/react-client/echo';
10
10
  import { Button, Dialog, IconButton, useTranslation } from '@dxos/react-ui';
11
11
  import { type AccessToken } from '@dxos/types';
@@ -33,53 +33,33 @@ export const DeploymentDialog = ({ accessToken, scriptTemplates }: DeploymentDia
33
33
  // TODO(ZaymonFC): Thinking further. All of this should get moved to intents to run async in the background.
34
34
  // Deployment shouldn't be tied to the lifecycle of the dialogue component.
35
35
  const { handleCreateAndDeployScripts, status } = useCreateAndDeployScriptTemplates(space, scriptTemplates);
36
- const { dispatchPromise: dispatch } = useIntentDispatcher();
36
+ const { invokePromise } = useOperationInvoker();
37
37
 
38
38
  useEffect(() => {
39
39
  if (status === 'success') {
40
40
  // TODO(ZaymonFC): We can probably re-use this toast for normal script deployment.
41
- void dispatch(
42
- createIntent(LayoutAction.AddToast, {
43
- part: 'toast',
44
- subject: {
45
- id: `${meta.id}/deployment-success`,
46
- icon: 'ph--check--regular',
47
- duration: Infinity,
48
- title: ['script deployment toast label', { ns: meta.id, count: scriptTemplates.length }],
49
- description: ['script deployment toast description', { ns: meta.id, count: scriptTemplates.length }],
50
- closeLabel: ['script deployment toast close label', { ns: meta.id, count: scriptTemplates.length }],
51
- },
52
- }),
53
- );
54
- void dispatch(
55
- createIntent(LayoutAction.UpdateDialog, {
56
- part: 'dialog',
57
- options: { state: false },
58
- }),
59
- );
41
+ void invokePromise(Common.LayoutOperation.AddToast, {
42
+ id: `${meta.id}/deployment-success`,
43
+ icon: 'ph--check--regular',
44
+ duration: Infinity,
45
+ title: ['script deployment toast label', { ns: meta.id, count: scriptTemplates.length }],
46
+ description: ['script deployment toast description', { ns: meta.id, count: scriptTemplates.length }],
47
+ closeLabel: ['script deployment toast close label', { ns: meta.id, count: scriptTemplates.length }],
48
+ });
49
+ void invokePromise(Common.LayoutOperation.UpdateDialog, { state: false });
60
50
  }
61
51
  if (status === 'error') {
62
- void dispatch(
63
- createIntent(LayoutAction.UpdateDialog, {
64
- part: 'dialog',
65
- options: { state: false },
66
- }),
67
- );
68
- void dispatch(
69
- createIntent(LayoutAction.AddToast, {
70
- part: 'toast',
71
- subject: {
72
- id: `${meta.id}/deployment-error`,
73
- icon: 'ph--warning--regular',
74
- duration: Infinity,
75
- title: ['script deployment error toast label', { ns: meta.id, count: scriptTemplates.length }],
76
- description: ['script deployment error toast description', { ns: meta.id, count: scriptTemplates.length }],
77
- closeLabel: ['script deployment error toast close label', { ns: meta.id, count: scriptTemplates.length }],
78
- },
79
- }),
80
- );
52
+ void invokePromise(Common.LayoutOperation.UpdateDialog, { state: false });
53
+ void invokePromise(Common.LayoutOperation.AddToast, {
54
+ id: `${meta.id}/deployment-error`,
55
+ icon: 'ph--warning--regular',
56
+ duration: Infinity,
57
+ title: ['script deployment error toast label', { ns: meta.id, count: scriptTemplates.length }],
58
+ description: ['script deployment error toast description', { ns: meta.id, count: scriptTemplates.length }],
59
+ closeLabel: ['script deployment error toast close label', { ns: meta.id, count: scriptTemplates.length }],
60
+ });
81
61
  }
82
- }, [status, dispatch]);
62
+ }, [status, invokePromise]);
83
63
 
84
64
  return (
85
65
  <Dialog.Content>
@@ -9,9 +9,9 @@ import { type BundleResult } from '@dxos/functions-runtime/bundler';
9
9
  import { invariant } from '@dxos/invariant';
10
10
  import { log } from '@dxos/log';
11
11
  import { useClient } from '@dxos/react-client';
12
- import { baseSurface, mx } from '@dxos/react-ui-theme';
13
12
  import { createProtoRpcPeer } from '@dxos/rpc';
14
13
  import { createIFramePort } from '@dxos/rpc-tunnel';
14
+ import { baseSurface, mx } from '@dxos/ui-theme';
15
15
 
16
16
  export type FrameContainerProps = {
17
17
  containerUrl: string;
@@ -49,7 +49,9 @@ export const FrameContainer = ({ containerUrl, result, debug = true }: FrameCont
49
49
  invariant(result.sourceHash, 'Source hash is required.');
50
50
  const sourceHash = Buffer.from(result.sourceHash).toString('hex');
51
51
  const src =
52
- 'bundle' in result ? `${containerUrl}?ts=${sourceHash}#code=${encodeURIComponent(result.bundle)}` : undefined;
52
+ 'bundle' in result
53
+ ? `${containerUrl}?ts=${sourceHash}#code=${encodeURIComponent(new TextDecoder().decode(Object.values(result.bundle as any)[0] as Uint8Array))}`
54
+ : undefined;
53
55
 
54
56
  return (
55
57
  <>
@@ -3,10 +3,10 @@
3
3
  //
4
4
 
5
5
  import { type Meta, type StoryObj } from '@storybook/react-vite';
6
+ import * as Effect from 'effect/Effect';
6
7
  import React from 'react';
7
8
 
8
9
  import { SERVICES_CONFIG } from '@dxos/ai/testing';
9
- import { IntentPlugin, SettingsPlugin } from '@dxos/app-framework';
10
10
  import { withPluginManager } from '@dxos/app-framework/testing';
11
11
  import { Agent } from '@dxos/assistant-toolkit';
12
12
  import { Filter } from '@dxos/echo';
@@ -16,7 +16,7 @@ import { AutomationPlugin } from '@dxos/plugin-automation';
16
16
  import { ClientPlugin } from '@dxos/plugin-client';
17
17
  import { ExplorerPlugin } from '@dxos/plugin-explorer';
18
18
  import { Markdown, MarkdownPlugin } from '@dxos/plugin-markdown';
19
- import { SpacePlugin } from '@dxos/plugin-space';
19
+ import { corePlugins } from '@dxos/plugin-testing';
20
20
  import { Config, useClient } from '@dxos/react-client';
21
21
  import { useQuery } from '@dxos/react-client/echo';
22
22
  import { withLayout, withTheme } from '@dxos/react-ui/testing';
@@ -28,20 +28,21 @@ import { Notebook } from '../types';
28
28
 
29
29
  import { NotebookContainer } from './NotebookContainer';
30
30
 
31
- const meta = {
31
+ const meta: Meta<typeof NotebookContainer> = {
32
32
  title: 'plugins/plugin-script/NotebookContainer',
33
33
  component: NotebookContainer,
34
34
  render: (args) => {
35
35
  const client = useClient();
36
36
  const space = client.spaces.default;
37
37
  const notebooks = useQuery(space?.db, Filter.type(Notebook.Notebook));
38
- return <NotebookContainer {...args} notebook={notebooks[0]} />;
38
+ return <NotebookContainer {...args} subject={notebooks[0]} />;
39
39
  },
40
40
  decorators: [
41
41
  withTheme,
42
- withLayout({ container: 'column', classNames: 'is-prose' }),
42
+ withLayout({ layout: 'column', classNames: 'is-proseMaxWidth' }),
43
43
  withPluginManager({
44
44
  plugins: [
45
+ ...corePlugins(),
45
46
  ClientPlugin({
46
47
  // TODO(wittjosiah): ComputeRuntime requires edge to be configured or it will throw.
47
48
  config: new Config({
@@ -50,20 +51,18 @@ const meta = {
50
51
  },
51
52
  }),
52
53
  types: [...DataTypes, Notebook.Notebook, Function.Function, Markdown.Document],
53
- onClientInitialized: async ({ client }) => {
54
- await client.halo.createIdentity();
55
- await client.spaces.waitUntilReady();
56
- const space = client.spaces.default;
57
- await space.waitUntilReady();
54
+ onClientInitialized: ({ client }) =>
55
+ Effect.gen(function* () {
56
+ yield* Effect.promise(() => client.halo.createIdentity());
57
+ yield* Effect.promise(() => client.spaces.waitUntilReady());
58
+ const space = client.spaces.default;
59
+ yield* Effect.promise(() => space.waitUntilReady());
58
60
 
59
- space.db.add(createNotebook());
60
- space.db.add(Markdown.make({ content: '# Hello World' }));
61
- space.db.add(serializeFunction(Agent.prompt));
62
- },
61
+ space.db.add(createNotebook());
62
+ space.db.add(Markdown.make({ content: '# Hello World' }));
63
+ space.db.add(serializeFunction(Agent.prompt));
64
+ }),
63
65
  }),
64
- SpacePlugin({}),
65
- SettingsPlugin(),
66
- IntentPlugin(),
67
66
  AssistantPlugin(),
68
67
  AutomationPlugin(),
69
68
  ExplorerPlugin(),
@@ -74,10 +73,15 @@ const meta = {
74
73
  parameters: {
75
74
  translations,
76
75
  },
77
- } satisfies Meta<typeof NotebookContainer>;
76
+ };
78
77
 
79
78
  export default meta;
80
79
 
81
80
  type Story = StoryObj<typeof meta>;
82
81
 
83
- export const Default: Story = {};
82
+ export const Default: Story = {
83
+ args: {
84
+ role: 'article',
85
+ subject: undefined as any,
86
+ },
87
+ };
@@ -2,26 +2,26 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
+ import { RegistryContext } from '@effect-atom/atom-react';
5
6
  import * as Cause from 'effect/Cause';
6
7
  import * as Effect from 'effect/Effect';
7
8
  import * as Exit from 'effect/Exit';
8
- import React, { useCallback, useMemo, useState } from 'react';
9
+ import type * as Types from 'effect/Types';
10
+ import React, { useCallback, useContext, useMemo, useState } from 'react';
9
11
 
12
+ import { type SurfaceComponentProps } from '@dxos/app-framework/react';
10
13
  import { Agent } from '@dxos/assistant-toolkit';
11
14
  import { Blueprint, Prompt } from '@dxos/blueprints';
12
15
  import { Filter, Obj, Query, Ref } from '@dxos/echo';
13
16
  import { QueryBuilder } from '@dxos/echo-query';
14
- import { type FunctionDefinition, FunctionInvocationService } from '@dxos/functions';
15
- import { InvocationTracer } from '@dxos/functions-runtime';
16
- import { TracingServiceExt } from '@dxos/functions-runtime';
17
+ import { type FunctionDefinition, FunctionInvocationService, TracingService } from '@dxos/functions';
17
18
  import { invariant } from '@dxos/invariant';
18
19
  import { log } from '@dxos/log';
19
20
  import { useComputeRuntimeCallback } from '@dxos/plugin-automation';
20
21
  import { Graph } from '@dxos/plugin-explorer/types';
21
- import { getSpace } from '@dxos/react-client/echo';
22
22
  import { DropdownMenu, IconButton, Toolbar, useTranslation } from '@dxos/react-ui';
23
23
  import { useAttention } from '@dxos/react-ui-attention';
24
- import { StackItem } from '@dxos/react-ui-stack';
24
+ import { Layout } from '@dxos/react-ui-mosaic';
25
25
  import { Text, View } from '@dxos/schema';
26
26
  import { isNonNullable } from '@dxos/util';
27
27
 
@@ -36,24 +36,22 @@ const INCLUDE_BLUEPRINTS = ['dxos.org/blueprint/assistant', 'dxos.org/blueprint/
36
36
 
37
37
  // TODO(burdon): Support calling named deployed functions (as with sheet).
38
38
 
39
- export type NotebookContainerProps = {
40
- role?: string;
41
- notebook?: Notebook.Notebook;
42
- } & Pick<TypescriptEditorProps, 'env'>;
39
+ export type NotebookContainerProps = SurfaceComponentProps<Notebook.Notebook, Pick<TypescriptEditorProps, 'env'>>;
43
40
 
44
- export const NotebookContainer = ({ notebook, env }: NotebookContainerProps) => {
41
+ export const NotebookContainer = ({ role, subject: notebook, env }: NotebookContainerProps) => {
45
42
  const { t } = useTranslation(meta.id);
46
- const space = getSpace(notebook);
43
+ const registry = useContext(RegistryContext);
44
+ const db = notebook && Obj.getDatabase(notebook);
47
45
  const attendableId = notebook ? Obj.getDXN(notebook).toString() : '';
48
46
  const { hasAttention } = useAttention(attendableId);
49
47
 
50
48
  // TODO(burdon): Consolidate execution and state (with graph).
51
49
  // Generalize ComputeGraph evaluation function (using effects).
52
- const graph = useMemo(() => notebook && new ComputeGraph(notebook), [notebook]);
50
+ const graph = useMemo(() => notebook && new ComputeGraph(notebook, registry), [notebook, registry]);
53
51
 
54
52
  const [queryValues, setQueryValues] = useState<Record<string, any>>({});
55
53
  const handleExecQueries = useCallback(async () => {
56
- invariant(space);
54
+ invariant(db);
57
55
 
58
56
  const builder = new QueryBuilder();
59
57
  for (const cell of notebook?.cells ?? []) {
@@ -65,12 +63,19 @@ export const NotebookContainer = ({ notebook, env }: NotebookContainerProps) =>
65
63
  const ast = Query.select(filter).ast;
66
64
  const graph = cell.graph?.target;
67
65
  if (!graph) {
68
- const { view } = await View.makeFromSpace({ space });
69
- const graph = Graph.make({ query: { ast }, view });
70
- cell.graph = Ref.make(graph);
71
- cell.name = name;
66
+ const { view } = await View.makeFromDatabase({ db });
67
+ const newGraph = Graph.make({ query: { ast }, view });
68
+ Obj.change(notebook!, (n) => {
69
+ const c = n.cells.find((c) => c.id === cell.id);
70
+ if (c) {
71
+ c.graph = Ref.make(newGraph);
72
+ c.name = name;
73
+ }
74
+ });
72
75
  } else {
73
- graph.query.ast = ast;
76
+ Obj.change(graph, (g) => {
77
+ g.query.ast = ast as Obj.Mutable<typeof ast>;
78
+ });
74
79
  }
75
80
  }
76
81
  }
@@ -78,17 +83,17 @@ export const NotebookContainer = ({ notebook, env }: NotebookContainerProps) =>
78
83
  if (cell.name && cell.graph?.target) {
79
84
  const graph = Obj.getSnapshot(cell.graph?.target);
80
85
  const query = Query.fromAst(graph.query.ast);
81
- const result = await space?.db.query(query).run();
82
- const objectIds = result?.objects?.map((obj) => obj.id);
86
+ const objects = await db.query(query).run();
87
+ const objectIds = objects?.map((obj) => obj.id);
83
88
  setQueryValues((prev) => ({ ...prev, [cell.name!]: objectIds }));
84
89
  }
85
90
  }
86
91
  }
87
- }, [space, notebook, graph]);
92
+ }, [db, notebook, graph]);
88
93
 
89
94
  const [promptResults, setPromptResults] = useState<Record<string, string>>({});
90
95
  const handleExecPrompts = useComputeRuntimeCallback(
91
- space,
96
+ db?.spaceId,
92
97
  Effect.fnUntraced(function* () {
93
98
  invariant(graph);
94
99
 
@@ -101,7 +106,7 @@ export const NotebookContainer = ({ notebook, env }: NotebookContainerProps) =>
101
106
  for (const prompt of prompts) {
102
107
  yield* runPrompt({
103
108
  prompt,
104
- input: { ...queryValues, ...graph.valuesByName.value },
109
+ input: { ...queryValues, ...graph.getValuesByName() },
105
110
  onResult: (result) =>
106
111
  setPromptResults((prev) => ({
107
112
  ...prev,
@@ -127,10 +132,12 @@ export const NotebookContainer = ({ notebook, env }: NotebookContainerProps) =>
127
132
  const from = notebook.cells.findIndex((cell) => cell.id === source.id);
128
133
  const to = notebook.cells.findIndex((cell) => cell.id === target.id);
129
134
  if (from != null && to != null) {
130
- const cell = notebook.cells.splice(from, 1)[0];
131
- if (cell) {
132
- notebook.cells.splice(to, 0, cell);
133
- }
135
+ Obj.change(notebook, (n) => {
136
+ const cell = n.cells.splice(from, 1)[0];
137
+ if (cell) {
138
+ n.cells.splice(to, 0, cell);
139
+ }
140
+ });
134
141
  }
135
142
  },
136
143
  [notebook],
@@ -139,7 +146,7 @@ export const NotebookContainer = ({ notebook, env }: NotebookContainerProps) =>
139
146
  const handleCellInsert = useCallback<NonNullable<NotebookStackProps['onCellInsert']>>(
140
147
  async (type, after) => {
141
148
  invariant(notebook);
142
- const cell: Notebook.Cell = { id: crypto.randomUUID(), type };
149
+ const cell: Types.Mutable<Notebook.Cell> = { id: crypto.randomUUID(), type };
143
150
  switch (type) {
144
151
  case 'markdown':
145
152
  case 'script':
@@ -149,9 +156,9 @@ export const NotebookContainer = ({ notebook, env }: NotebookContainerProps) =>
149
156
  }
150
157
 
151
158
  case 'prompt': {
152
- if (space) {
153
- const result = await space.db.query(Query.select(Filter.type(Blueprint.Blueprint))).run();
154
- const blueprints = result.objects
159
+ if (db) {
160
+ const objects = await db.query(Query.select(Filter.type(Blueprint.Blueprint))).run();
161
+ const blueprints = objects
155
162
  .filter((blueprint) => INCLUDE_BLUEPRINTS.includes(blueprint.key))
156
163
  .map((blueprint) => Ref.make(blueprint));
157
164
  cell.prompt = Ref.make(Prompt.make({ instructions: '', blueprints }));
@@ -161,9 +168,11 @@ export const NotebookContainer = ({ notebook, env }: NotebookContainerProps) =>
161
168
  }
162
169
 
163
170
  const idx = after ? notebook.cells.findIndex((cell) => cell.id === after) : notebook.cells.length;
164
- notebook.cells.splice(idx, 0, cell);
171
+ Obj.change(notebook, (n) => {
172
+ n.cells.splice(idx, 0, cell);
173
+ });
165
174
  },
166
- [space, notebook],
175
+ [db, notebook],
167
176
  );
168
177
 
169
178
  const handleCellDelete = useCallback<NonNullable<NotebookStackProps['onCellDelete']>>(
@@ -171,14 +180,16 @@ export const NotebookContainer = ({ notebook, env }: NotebookContainerProps) =>
171
180
  invariant(notebook);
172
181
  const idx = notebook.cells.findIndex((cell) => cell.id === id);
173
182
  if (idx !== -1) {
174
- notebook.cells.splice(idx, 1);
183
+ Obj.change(notebook, (n) => {
184
+ n.cells.splice(idx, 1);
185
+ });
175
186
  }
176
187
  },
177
188
  [notebook],
178
189
  );
179
190
 
180
191
  return (
181
- <StackItem.Content toolbar>
192
+ <Layout.Main role={role} toolbar>
182
193
  <Toolbar.Root disabled={!hasAttention} textBlockWidth>
183
194
  <DropdownMenu.Root>
184
195
  <DropdownMenu.Trigger asChild>
@@ -197,7 +208,7 @@ export const NotebookContainer = ({ notebook, env }: NotebookContainerProps) =>
197
208
  <div role='none' className='flex bs-full overflow-hidden -mis-[1px] -mie-[1px]'>
198
209
  <NotebookStack
199
210
  classNames='container-max-width border-l border-r border-subduedSeparator'
200
- space={space}
211
+ db={db}
201
212
  notebook={notebook}
202
213
  graph={graph}
203
214
  env={env}
@@ -207,7 +218,7 @@ export const NotebookContainer = ({ notebook, env }: NotebookContainerProps) =>
207
218
  onCellDelete={handleCellDelete}
208
219
  />
209
220
  </div>
210
- </StackItem.Content>
221
+ </Layout.Main>
211
222
  );
212
223
  };
213
224
 
@@ -227,7 +238,7 @@ const runPrompt = Effect.fn(function* ({
227
238
  prompt,
228
239
  input,
229
240
  };
230
- const tracer = yield* InvocationTracer;
241
+ const tracer = yield* TracingService;
231
242
  const trace = yield* tracer.traceInvocationStart({
232
243
  target: undefined,
233
244
  payload: {
@@ -237,7 +248,7 @@ const runPrompt = Effect.fn(function* ({
237
248
 
238
249
  // Invoke the function.
239
250
  const result = yield* FunctionInvocationService.invokeFunction(Agent.prompt, inputData).pipe(
240
- Effect.provide(TracingServiceExt.layerQueue(trace.invocationTraceQueue)),
251
+ Effect.provide(trace.invocationTraceQueue ? TracingService.layerInvocation(trace) : TracingService.layerNoop),
241
252
  Effect.exit,
242
253
  );
243
254