@dxos/plugin-script 0.8.4-main.70d3990 → 0.8.4-main.7996785055

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 (508) hide show
  1. package/README.md +15 -13
  2. package/dist/lib/browser/DeploymentDialog-LGEGIX64.mjs +124 -0
  3. package/dist/lib/browser/DeploymentDialog-LGEGIX64.mjs.map +7 -0
  4. package/dist/lib/browser/{NotebookContainer-MHY3DXDE.mjs → NotebookContainer-CC3G32Q5.mjs} +281 -248
  5. package/dist/lib/browser/NotebookContainer-CC3G32Q5.mjs.map +7 -0
  6. package/dist/lib/browser/ScriptContainer-Z3MCPN2D.mjs +95 -0
  7. package/dist/lib/browser/ScriptContainer-Z3MCPN2D.mjs.map +7 -0
  8. package/dist/lib/browser/ScriptObjectSettings-LST7DUAN.mjs +297 -0
  9. package/dist/lib/browser/ScriptObjectSettings-LST7DUAN.mjs.map +7 -0
  10. package/dist/lib/browser/ScriptPluginSettings-IKWRISC3.mjs +55 -0
  11. package/dist/lib/browser/ScriptPluginSettings-IKWRISC3.mjs.map +7 -0
  12. package/dist/lib/browser/ScriptProperties-ZCRTZTAK.mjs +28 -0
  13. package/dist/lib/browser/ScriptProperties-ZCRTZTAK.mjs.map +7 -0
  14. package/dist/lib/browser/TestContainer-ACNQMKVU.mjs +61 -0
  15. package/dist/lib/browser/TestContainer-ACNQMKVU.mjs.map +7 -0
  16. package/dist/lib/browser/access-token-created-ZHVVOEL7.mjs +36 -0
  17. package/dist/lib/browser/access-token-created-ZHVVOEL7.mjs.map +7 -0
  18. package/dist/lib/browser/app-graph-builder-QPXX4YK5.mjs +63 -0
  19. package/dist/lib/browser/app-graph-builder-QPXX4YK5.mjs.map +7 -0
  20. package/dist/lib/browser/blueprint-definition-MC264VR5.mjs +17 -0
  21. package/dist/lib/browser/blueprint-definition-MC264VR5.mjs.map +7 -0
  22. package/dist/lib/browser/blueprints/index.mjs +8 -0
  23. package/dist/lib/browser/{chunk-EB6AXFXO.mjs → chunk-37XPSUAH.mjs} +3 -3
  24. package/dist/lib/browser/chunk-37XPSUAH.mjs.map +7 -0
  25. package/dist/lib/browser/chunk-4XJSGCAS.mjs +742 -0
  26. package/dist/lib/browser/chunk-4XJSGCAS.mjs.map +7 -0
  27. package/dist/lib/browser/chunk-7JI376EM.mjs +20 -0
  28. package/dist/lib/browser/chunk-7JI376EM.mjs.map +7 -0
  29. package/dist/lib/browser/{compiler-4KHRSX7J.mjs → chunk-ATTZUDT7.mjs} +14 -33
  30. package/dist/lib/browser/chunk-ATTZUDT7.mjs.map +7 -0
  31. package/dist/lib/browser/chunk-BHRCZLLU.mjs +105 -0
  32. package/dist/lib/browser/chunk-BHRCZLLU.mjs.map +7 -0
  33. package/dist/lib/browser/chunk-CMHREENI.mjs +8 -0
  34. package/dist/lib/browser/chunk-CMHREENI.mjs.map +7 -0
  35. package/dist/lib/browser/chunk-DBEYGFVF.mjs +400 -0
  36. package/dist/lib/browser/chunk-DBEYGFVF.mjs.map +7 -0
  37. package/dist/lib/browser/chunk-E6BQ4P6L.mjs +179 -0
  38. package/dist/lib/browser/chunk-E6BQ4P6L.mjs.map +7 -0
  39. package/dist/lib/browser/chunk-GB2HL4ZE.mjs +26 -0
  40. package/dist/lib/browser/chunk-GB2HL4ZE.mjs.map +7 -0
  41. package/dist/lib/browser/chunk-NQJRENSK.mjs +75 -0
  42. package/dist/lib/browser/chunk-NQJRENSK.mjs.map +7 -0
  43. package/dist/lib/browser/chunk-QLFFA4Y4.mjs +52 -0
  44. package/dist/lib/browser/chunk-QLFFA4Y4.mjs.map +7 -0
  45. package/dist/lib/browser/chunk-X44CJ7F5.mjs +11 -0
  46. package/dist/lib/browser/chunk-X44CJ7F5.mjs.map +7 -0
  47. package/dist/lib/browser/compiler-MZKFKYCG.mjs +98 -0
  48. package/dist/lib/browser/compiler-MZKFKYCG.mjs.map +7 -0
  49. package/dist/lib/browser/create-script-Z7J4HDV2.mjs +47 -0
  50. package/dist/lib/browser/create-script-Z7J4HDV2.mjs.map +7 -0
  51. package/dist/lib/browser/index.mjs +120 -120
  52. package/dist/lib/browser/index.mjs.map +4 -4
  53. package/dist/lib/browser/meta.json +1 -1
  54. package/dist/lib/browser/operation-handler-76AHUB5G.mjs +18 -0
  55. package/dist/lib/browser/operation-handler-76AHUB5G.mjs.map +7 -0
  56. package/dist/lib/browser/operations/index.mjs +14 -0
  57. package/dist/lib/browser/react-surface-2VVUIV66.mjs +145 -0
  58. package/dist/lib/browser/react-surface-2VVUIV66.mjs.map +7 -0
  59. package/dist/lib/browser/settings-BV3KXROF.mjs +35 -0
  60. package/dist/lib/browser/settings-BV3KXROF.mjs.map +7 -0
  61. package/dist/lib/browser/templates/index.mjs +1 -1
  62. package/dist/lib/browser/types/index.mjs +6 -5
  63. package/dist/lib/node-esm/DeploymentDialog-XSP2EDU2.mjs +125 -0
  64. package/dist/lib/node-esm/DeploymentDialog-XSP2EDU2.mjs.map +7 -0
  65. package/dist/lib/node-esm/{NotebookContainer-U4C2HQ4T.mjs → NotebookContainer-LNWMJD2D.mjs} +281 -248
  66. package/dist/lib/node-esm/NotebookContainer-LNWMJD2D.mjs.map +7 -0
  67. package/dist/lib/node-esm/ScriptContainer-TSU4DBGA.mjs +96 -0
  68. package/dist/lib/node-esm/ScriptContainer-TSU4DBGA.mjs.map +7 -0
  69. package/dist/lib/node-esm/ScriptObjectSettings-OGY7X3UE.mjs +298 -0
  70. package/dist/lib/node-esm/ScriptObjectSettings-OGY7X3UE.mjs.map +7 -0
  71. package/dist/lib/node-esm/ScriptPluginSettings-HIUSAHCP.mjs +56 -0
  72. package/dist/lib/node-esm/ScriptPluginSettings-HIUSAHCP.mjs.map +7 -0
  73. package/dist/lib/node-esm/ScriptProperties-I6SC4P3R.mjs +29 -0
  74. package/dist/lib/node-esm/ScriptProperties-I6SC4P3R.mjs.map +7 -0
  75. package/dist/lib/node-esm/TestContainer-WKISNRNU.mjs +62 -0
  76. package/dist/lib/node-esm/TestContainer-WKISNRNU.mjs.map +7 -0
  77. package/dist/lib/node-esm/access-token-created-7CGU7FXD.mjs +37 -0
  78. package/dist/lib/node-esm/access-token-created-7CGU7FXD.mjs.map +7 -0
  79. package/dist/lib/node-esm/app-graph-builder-GNGOYXIU.mjs +64 -0
  80. package/dist/lib/node-esm/app-graph-builder-GNGOYXIU.mjs.map +7 -0
  81. package/dist/lib/node-esm/blueprint-definition-DTRGTRZA.mjs +18 -0
  82. package/dist/lib/node-esm/blueprint-definition-DTRGTRZA.mjs.map +7 -0
  83. package/dist/lib/node-esm/blueprints/index.mjs +9 -0
  84. package/dist/lib/node-esm/blueprints/index.mjs.map +7 -0
  85. package/dist/lib/node-esm/chunk-2NGQCFVE.mjs +28 -0
  86. package/dist/lib/node-esm/chunk-2NGQCFVE.mjs.map +7 -0
  87. package/dist/lib/node-esm/chunk-4YAEFFW2.mjs +12 -0
  88. package/dist/lib/node-esm/chunk-4YAEFFW2.mjs.map +7 -0
  89. package/dist/lib/node-esm/chunk-C3GH2SDF.mjs +76 -0
  90. package/dist/lib/node-esm/chunk-C3GH2SDF.mjs.map +7 -0
  91. package/dist/lib/node-esm/chunk-CKYUNEE5.mjs +10 -0
  92. package/dist/lib/node-esm/chunk-CKYUNEE5.mjs.map +7 -0
  93. package/dist/lib/node-esm/{compiler-DU5NQISX.mjs → chunk-JGN7TDJH.mjs} +14 -32
  94. package/dist/lib/node-esm/chunk-JGN7TDJH.mjs.map +7 -0
  95. package/dist/lib/node-esm/{chunk-IBV2DR36.mjs → chunk-L3JLWXB5.mjs} +3 -3
  96. package/dist/lib/node-esm/chunk-L3JLWXB5.mjs.map +7 -0
  97. package/dist/lib/node-esm/chunk-L55OBVT5.mjs +53 -0
  98. package/dist/lib/node-esm/chunk-L55OBVT5.mjs.map +7 -0
  99. package/dist/lib/node-esm/chunk-P4Q2BPBB.mjs +22 -0
  100. package/dist/lib/node-esm/chunk-P4Q2BPBB.mjs.map +7 -0
  101. package/dist/lib/node-esm/chunk-RN2SMYCL.mjs +401 -0
  102. package/dist/lib/node-esm/chunk-RN2SMYCL.mjs.map +7 -0
  103. package/dist/lib/node-esm/chunk-RTM3D4T5.mjs +181 -0
  104. package/dist/lib/node-esm/chunk-RTM3D4T5.mjs.map +7 -0
  105. package/dist/lib/node-esm/chunk-SV742UH7.mjs +743 -0
  106. package/dist/lib/node-esm/chunk-SV742UH7.mjs.map +7 -0
  107. package/dist/lib/node-esm/chunk-Y5VWHRVU.mjs +107 -0
  108. package/dist/lib/node-esm/chunk-Y5VWHRVU.mjs.map +7 -0
  109. package/dist/lib/node-esm/compiler-QBWP7ERK.mjs +99 -0
  110. package/dist/lib/node-esm/compiler-QBWP7ERK.mjs.map +7 -0
  111. package/dist/lib/node-esm/create-script-TAJHVROB.mjs +48 -0
  112. package/dist/lib/node-esm/create-script-TAJHVROB.mjs.map +7 -0
  113. package/dist/lib/node-esm/index.mjs +120 -120
  114. package/dist/lib/node-esm/index.mjs.map +4 -4
  115. package/dist/lib/node-esm/meta.json +1 -1
  116. package/dist/lib/node-esm/operation-handler-OUROH3T7.mjs +19 -0
  117. package/dist/lib/node-esm/operation-handler-OUROH3T7.mjs.map +7 -0
  118. package/dist/lib/node-esm/operations/index.mjs +15 -0
  119. package/dist/lib/node-esm/operations/index.mjs.map +7 -0
  120. package/dist/lib/node-esm/react-surface-OJ55GFCP.mjs +146 -0
  121. package/dist/lib/node-esm/react-surface-OJ55GFCP.mjs.map +7 -0
  122. package/dist/lib/node-esm/settings-2TK3XPLD.mjs +36 -0
  123. package/dist/lib/node-esm/settings-2TK3XPLD.mjs.map +7 -0
  124. package/dist/lib/node-esm/templates/index.mjs +1 -1
  125. package/dist/lib/node-esm/types/index.mjs +6 -5
  126. package/dist/types/src/ScriptPlugin.d.ts +2 -1
  127. package/dist/types/src/ScriptPlugin.d.ts.map +1 -1
  128. package/dist/types/src/blueprints/index.d.ts +2 -0
  129. package/dist/types/src/blueprints/index.d.ts.map +1 -0
  130. package/dist/types/src/blueprints/script-blueprint.d.ts +4 -0
  131. package/dist/types/src/blueprints/script-blueprint.d.ts.map +1 -0
  132. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +6 -0
  133. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -0
  134. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +3 -0
  135. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +1 -0
  136. package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts +12 -0
  137. package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts.map +1 -0
  138. package/dist/types/src/capabilities/artifact-definition/index.d.ts +3 -0
  139. package/dist/types/src/capabilities/artifact-definition/index.d.ts.map +1 -0
  140. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +6 -0
  141. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +1 -0
  142. package/dist/types/src/capabilities/blueprint-definition/index.d.ts +3 -0
  143. package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +1 -0
  144. package/dist/types/src/capabilities/compiler/compiler.d.ts +6 -0
  145. package/dist/types/src/capabilities/compiler/compiler.d.ts.map +1 -0
  146. package/dist/types/src/capabilities/compiler/index.d.ts +3 -0
  147. package/dist/types/src/capabilities/compiler/index.d.ts.map +1 -0
  148. package/dist/types/src/capabilities/index.d.ts +6 -7
  149. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  150. package/dist/types/src/capabilities/operation-handler/index.d.ts +4 -0
  151. package/dist/types/src/capabilities/operation-handler/index.d.ts.map +1 -0
  152. package/dist/types/src/capabilities/operation-handler/operation-handler.d.ts +6 -0
  153. package/dist/types/src/capabilities/operation-handler/operation-handler.d.ts.map +1 -0
  154. package/dist/types/src/capabilities/react-surface/index.d.ts +3 -0
  155. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
  156. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +5 -0
  157. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
  158. package/dist/types/src/capabilities/settings/index.d.ts +7 -0
  159. package/dist/types/src/capabilities/settings/index.d.ts.map +1 -0
  160. package/dist/types/src/capabilities/settings/settings.d.ts +10 -0
  161. package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -0
  162. package/dist/types/src/compiler/compiler.d.ts +1 -1
  163. package/dist/types/src/compiler/compiler.d.ts.map +1 -1
  164. package/dist/types/src/components/{FrameContainer/FrameContainer.d.ts → FramePanel/FramePanel.d.ts} +3 -3
  165. package/dist/types/src/components/FramePanel/FramePanel.d.ts.map +1 -0
  166. package/dist/types/src/components/FramePanel/index.d.ts +2 -0
  167. package/dist/types/src/components/FramePanel/index.d.ts.map +1 -0
  168. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts +3 -3
  169. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts.map +1 -1
  170. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts +8 -2
  171. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts.map +1 -1
  172. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts +5 -1
  173. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts.map +1 -1
  174. package/dist/types/src/components/QueryEditor/QueryEditor.d.ts +5 -0
  175. package/dist/types/src/components/QueryEditor/QueryEditor.d.ts.map +1 -0
  176. package/dist/types/src/components/QueryEditor/QueryEditor.stories.d.ts +13 -0
  177. package/dist/types/src/components/QueryEditor/QueryEditor.stories.d.ts.map +1 -0
  178. package/dist/types/src/components/QueryEditor/index.d.ts +2 -0
  179. package/dist/types/src/components/QueryEditor/index.d.ts.map +1 -0
  180. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts +11 -5
  181. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts.map +1 -1
  182. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts +5 -1
  183. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts.map +1 -1
  184. package/dist/types/src/components/TestPanel/TestPanel.d.ts +8 -2
  185. package/dist/types/src/components/TestPanel/TestPanel.d.ts.map +1 -1
  186. package/dist/types/src/components/TestPanel/index.d.ts +0 -1
  187. package/dist/types/src/components/TestPanel/index.d.ts.map +1 -1
  188. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts +9 -2
  189. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts.map +1 -1
  190. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts +7 -1
  191. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts.map +1 -1
  192. package/dist/types/src/components/index.d.ts +4 -5
  193. package/dist/types/src/components/index.d.ts.map +1 -1
  194. package/dist/types/src/constants.d.ts +2 -0
  195. package/dist/types/src/constants.d.ts.map +1 -0
  196. package/dist/types/src/{components → containers}/DeploymentDialog/DeploymentDialog.d.ts +0 -2
  197. package/dist/types/src/containers/DeploymentDialog/DeploymentDialog.d.ts.map +1 -0
  198. package/dist/types/src/{components → containers}/DeploymentDialog/DeploymentDialog.stories.d.ts +4 -3
  199. package/dist/types/src/containers/DeploymentDialog/DeploymentDialog.stories.d.ts.map +1 -0
  200. package/dist/types/src/containers/DeploymentDialog/index.d.ts +3 -0
  201. package/dist/types/src/containers/DeploymentDialog/index.d.ts.map +1 -0
  202. package/dist/types/src/containers/NotebookContainer/NotebookContainer.d.ts +7 -0
  203. package/dist/types/src/containers/NotebookContainer/NotebookContainer.d.ts.map +1 -0
  204. package/dist/types/src/containers/NotebookContainer/NotebookContainer.stories.d.ts +7 -0
  205. package/dist/types/src/containers/NotebookContainer/NotebookContainer.stories.d.ts.map +1 -0
  206. package/dist/types/src/containers/NotebookContainer/index.d.ts +3 -0
  207. package/dist/types/src/containers/NotebookContainer/index.d.ts.map +1 -0
  208. package/dist/types/src/containers/ScriptContainer/ScriptContainer.d.ts +10 -0
  209. package/dist/types/src/containers/ScriptContainer/ScriptContainer.d.ts.map +1 -0
  210. package/dist/types/src/containers/ScriptContainer/index.d.ts +3 -0
  211. package/dist/types/src/containers/ScriptContainer/index.d.ts.map +1 -0
  212. package/dist/types/src/{components/Settings → containers/ScriptObjectSettings}/ScriptObjectSettings.d.ts +0 -1
  213. package/dist/types/src/containers/ScriptObjectSettings/ScriptObjectSettings.d.ts.map +1 -0
  214. package/dist/types/src/containers/ScriptObjectSettings/index.d.ts +3 -0
  215. package/dist/types/src/containers/ScriptObjectSettings/index.d.ts.map +1 -0
  216. package/dist/types/src/containers/ScriptPluginSettings/ScriptPluginSettings.d.ts +8 -0
  217. package/dist/types/src/containers/ScriptPluginSettings/ScriptPluginSettings.d.ts.map +1 -0
  218. package/dist/types/src/containers/ScriptPluginSettings/index.d.ts +3 -0
  219. package/dist/types/src/containers/ScriptPluginSettings/index.d.ts.map +1 -0
  220. package/dist/types/src/containers/ScriptProperties/ScriptProperties.d.ts +7 -0
  221. package/dist/types/src/containers/ScriptProperties/ScriptProperties.d.ts.map +1 -0
  222. package/dist/types/src/containers/ScriptProperties/index.d.ts +3 -0
  223. package/dist/types/src/containers/ScriptProperties/index.d.ts.map +1 -0
  224. package/dist/types/src/{components/TestPanel → containers/TestContainer}/TestContainer.d.ts +1 -1
  225. package/dist/types/src/containers/TestContainer/TestContainer.d.ts.map +1 -0
  226. package/dist/types/src/containers/TestContainer/index.d.ts +3 -0
  227. package/dist/types/src/containers/TestContainer/index.d.ts.map +1 -0
  228. package/dist/types/src/containers/index.d.ts +9 -0
  229. package/dist/types/src/containers/index.d.ts.map +1 -0
  230. package/dist/types/src/e2e/ai.test.d.ts +2 -0
  231. package/dist/types/src/e2e/ai.test.d.ts.map +1 -0
  232. package/dist/types/src/e2e/deploy.test.d.ts +2 -0
  233. package/dist/types/src/e2e/deploy.test.d.ts.map +1 -0
  234. package/dist/types/src/hooks/deploy.d.ts +14 -29
  235. package/dist/types/src/hooks/deploy.d.ts.map +1 -1
  236. package/dist/types/src/hooks/format.d.ts +3 -2
  237. package/dist/types/src/hooks/format.d.ts.map +1 -1
  238. package/dist/types/src/hooks/index.d.ts +1 -0
  239. package/dist/types/src/hooks/index.d.ts.map +1 -1
  240. package/dist/types/src/hooks/template.d.ts +3 -2
  241. package/dist/types/src/hooks/template.d.ts.map +1 -1
  242. package/dist/types/src/hooks/useCompiler.d.ts +7 -0
  243. package/dist/types/src/hooks/useCompiler.d.ts.map +1 -0
  244. package/dist/types/src/hooks/useCreateAndDeployScriptTemplates.d.ts.map +1 -1
  245. package/dist/types/src/hooks/useToolbarState.d.ts +8 -1
  246. package/dist/types/src/hooks/useToolbarState.d.ts.map +1 -1
  247. package/dist/types/src/index.d.ts +2 -1
  248. package/dist/types/src/index.d.ts.map +1 -1
  249. package/dist/types/src/meta.d.ts +2 -2
  250. package/dist/types/src/meta.d.ts.map +1 -1
  251. package/dist/types/src/notebook/compute-graph.d.ts +24 -11
  252. package/dist/types/src/notebook/compute-graph.d.ts.map +1 -1
  253. package/dist/types/src/operations/access-token-created.d.ts +5 -0
  254. package/dist/types/src/operations/access-token-created.d.ts.map +1 -0
  255. package/dist/types/src/operations/create-script.d.ts +5 -0
  256. package/dist/types/src/operations/create-script.d.ts.map +1 -0
  257. package/dist/types/src/operations/definitions.d.ts +28 -0
  258. package/dist/types/src/operations/definitions.d.ts.map +1 -0
  259. package/dist/types/src/operations/index.d.ts +4 -0
  260. package/dist/types/src/operations/index.d.ts.map +1 -0
  261. package/dist/types/src/templates/anthropic.d.ts +7 -0
  262. package/dist/types/src/templates/anthropic.d.ts.map +1 -0
  263. package/dist/types/src/templates/chess-bot.d.ts +18 -0
  264. package/dist/types/src/templates/chess-bot.d.ts.map +1 -0
  265. package/dist/types/src/templates/commentary.d.ts +19 -0
  266. package/dist/types/src/templates/commentary.d.ts.map +1 -0
  267. package/dist/types/src/templates/forex-effect.d.ts +5 -1
  268. package/dist/types/src/templates/forex-effect.d.ts.map +1 -1
  269. package/dist/types/src/templates/forex.d.ts +5 -1
  270. package/dist/types/src/templates/forex.d.ts.map +1 -1
  271. package/dist/types/src/templates/index.d.ts +25 -16
  272. package/dist/types/src/templates/index.d.ts.map +1 -1
  273. package/dist/types/src/templates/ping.d.ts +2 -4
  274. package/dist/types/src/templates/ping.d.ts.map +1 -1
  275. package/dist/types/src/testing/simulator.test.d.ts +2 -0
  276. package/dist/types/src/testing/simulator.test.d.ts.map +1 -0
  277. package/dist/types/src/translations.d.ts +2 -0
  278. package/dist/types/src/translations.d.ts.map +1 -1
  279. package/dist/types/src/types/Notebook.d.ts +100 -21
  280. package/dist/types/src/types/Notebook.d.ts.map +1 -1
  281. package/dist/types/src/types/capabilities.d.ts +12 -0
  282. package/dist/types/src/types/capabilities.d.ts.map +1 -0
  283. package/dist/types/src/types/events.d.ts +5 -0
  284. package/dist/types/src/types/events.d.ts.map +1 -0
  285. package/dist/types/src/types/index.d.ts +2 -1
  286. package/dist/types/src/types/index.d.ts.map +1 -1
  287. package/dist/types/src/util/deploy.d.ts +3 -2
  288. package/dist/types/src/util/deploy.d.ts.map +1 -1
  289. package/dist/types/src/util/functions.d.ts +3 -2
  290. package/dist/types/src/util/functions.d.ts.map +1 -1
  291. package/dist/types/tsconfig.tsbuildinfo +1 -1
  292. package/package.json +125 -88
  293. package/src/ScriptPlugin.tsx +60 -70
  294. package/src/blueprints/index.ts +5 -0
  295. package/src/blueprints/script-blueprint.ts +28 -0
  296. package/src/capabilities/app-graph-builder/app-graph-builder.ts +56 -0
  297. package/src/capabilities/app-graph-builder/index.ts +7 -0
  298. package/src/capabilities/{artifact-definition.ts → artifact-definition/artifact-definition.ts} +97 -94
  299. package/src/capabilities/artifact-definition/index.ts +7 -0
  300. package/src/capabilities/blueprint-definition/blueprint-definition.ts +17 -0
  301. package/src/capabilities/blueprint-definition/index.ts +7 -0
  302. package/src/capabilities/compiler/compiler.ts +103 -0
  303. package/src/capabilities/compiler/index.ts +7 -0
  304. package/src/capabilities/index.ts +6 -10
  305. package/src/capabilities/operation-handler/index.ts +11 -0
  306. package/src/capabilities/operation-handler/operation-handler.ts +16 -0
  307. package/src/capabilities/react-surface/index.ts +7 -0
  308. package/src/capabilities/react-surface/react-surface.tsx +138 -0
  309. package/src/capabilities/settings/index.ts +7 -0
  310. package/src/capabilities/settings/settings.ts +33 -0
  311. package/src/compiler/compiler.ts +10 -3
  312. package/src/components/{FrameContainer/FrameContainer.tsx → FramePanel/FramePanel.tsx} +7 -6
  313. package/src/components/{FrameContainer → FramePanel}/index.ts +1 -1
  314. package/src/components/NotebookStack/NotebookCell.tsx +23 -24
  315. package/src/components/NotebookStack/NotebookStack.stories.tsx +20 -21
  316. package/src/components/NotebookStack/NotebookStack.tsx +27 -16
  317. package/src/components/QueryEditor/QueryEditor.stories.tsx +96 -0
  318. package/src/components/QueryEditor/QueryEditor.tsx +47 -0
  319. package/src/components/QueryEditor/index.ts +5 -0
  320. package/src/components/ScriptToolbar/ScriptToolbar.stories.tsx +39 -17
  321. package/src/components/ScriptToolbar/ScriptToolbar.tsx +35 -40
  322. package/src/components/TestPanel/TestPanel.tsx +106 -186
  323. package/src/components/TestPanel/index.ts +0 -1
  324. package/src/components/TypescriptEditor/TypescriptEditor.stories.tsx +23 -16
  325. package/src/components/TypescriptEditor/TypescriptEditor.tsx +73 -65
  326. package/src/components/index.ts +4 -9
  327. package/src/constants.ts +7 -0
  328. package/src/{components → containers}/DeploymentDialog/DeploymentDialog.stories.tsx +29 -24
  329. package/src/containers/DeploymentDialog/DeploymentDialog.tsx +98 -0
  330. package/src/containers/DeploymentDialog/index.ts +7 -0
  331. package/src/{components → containers/NotebookContainer}/NotebookContainer.stories.tsx +30 -29
  332. package/src/{components → containers/NotebookContainer}/NotebookContainer.tsx +84 -76
  333. package/src/containers/NotebookContainer/index.ts +7 -0
  334. package/src/containers/ScriptContainer/ScriptContainer.tsx +85 -0
  335. package/src/containers/ScriptContainer/index.ts +7 -0
  336. package/src/{components/Settings → containers/ScriptObjectSettings}/ScriptObjectSettings.tsx +61 -64
  337. package/src/containers/ScriptObjectSettings/index.ts +7 -0
  338. package/src/{components/Settings → containers/ScriptPluginSettings}/ScriptPluginSettings.tsx +19 -14
  339. package/src/containers/ScriptPluginSettings/index.ts +7 -0
  340. package/src/containers/ScriptProperties/ScriptProperties.tsx +33 -0
  341. package/src/containers/ScriptProperties/index.ts +7 -0
  342. package/src/containers/TestContainer/TestContainer.tsx +45 -0
  343. package/src/containers/TestContainer/index.ts +7 -0
  344. package/src/containers/index.ts +13 -0
  345. package/src/e2e/ai.test.ts +93 -0
  346. package/src/e2e/deploy.test.ts +65 -0
  347. package/src/hooks/deploy.ts +39 -31
  348. package/src/hooks/format.ts +6 -1
  349. package/src/hooks/index.ts +1 -0
  350. package/src/hooks/template.ts +17 -11
  351. package/src/hooks/useCompiler.ts +24 -0
  352. package/src/hooks/useCreateAndDeployScriptTemplates.ts +13 -19
  353. package/src/hooks/useToolbarState.ts +29 -4
  354. package/src/index.ts +2 -1
  355. package/src/meta.ts +4 -4
  356. package/src/notebook/compute-graph.test.ts +20 -8
  357. package/src/notebook/compute-graph.ts +45 -21
  358. package/src/operations/access-token-created.ts +36 -0
  359. package/src/operations/create-script.ts +47 -0
  360. package/src/operations/definitions.ts +40 -0
  361. package/src/operations/index.ts +12 -0
  362. package/src/templates/anthropic.ts +49 -0
  363. package/src/templates/chat.ts +1 -1
  364. package/src/templates/chess-bot.ts +61 -0
  365. package/src/templates/commentary.ts +243 -0
  366. package/src/templates/data-generator.ts +2 -2
  367. package/src/templates/discord.ts +3 -3
  368. package/src/templates/forex-effect.ts +35 -29
  369. package/src/templates/forex.ts +27 -17
  370. package/src/templates/gmail.ts +4 -4
  371. package/src/templates/index.ts +31 -18
  372. package/src/templates/ping.ts +22 -5
  373. package/src/testing/simulator.test.ts +40 -0
  374. package/src/translations.ts +2 -0
  375. package/src/types/Notebook.ts +16 -13
  376. package/src/types/capabilities.ts +17 -0
  377. package/src/types/events.ts +11 -0
  378. package/src/types/index.ts +2 -1
  379. package/src/types/types.ts +1 -1
  380. package/src/util/deploy.ts +24 -28
  381. package/src/util/functions.ts +27 -24
  382. package/src/vite-env.d.ts +2 -0
  383. package/dist/lib/browser/DeploymentDialog-5TKNGPVR.mjs +0 -14
  384. package/dist/lib/browser/NotebookContainer-MHY3DXDE.mjs.map +0 -7
  385. package/dist/lib/browser/ScriptContainer-CW6YN3DQ.mjs +0 -148
  386. package/dist/lib/browser/ScriptContainer-CW6YN3DQ.mjs.map +0 -7
  387. package/dist/lib/browser/app-graph-builder-2WR2ATTJ.mjs +0 -66
  388. package/dist/lib/browser/app-graph-builder-2WR2ATTJ.mjs.map +0 -7
  389. package/dist/lib/browser/blueprint-definition-6PZWZM2Y.mjs +0 -30
  390. package/dist/lib/browser/blueprint-definition-6PZWZM2Y.mjs.map +0 -7
  391. package/dist/lib/browser/chunk-2G2NA6DQ.mjs +0 -88
  392. package/dist/lib/browser/chunk-2G2NA6DQ.mjs.map +0 -7
  393. package/dist/lib/browser/chunk-ALS6X4HU.mjs +0 -304
  394. package/dist/lib/browser/chunk-ALS6X4HU.mjs.map +0 -7
  395. package/dist/lib/browser/chunk-EB6AXFXO.mjs.map +0 -7
  396. package/dist/lib/browser/chunk-M6KJPUJK.mjs +0 -111
  397. package/dist/lib/browser/chunk-M6KJPUJK.mjs.map +0 -7
  398. package/dist/lib/browser/chunk-N5EYLQOT.mjs +0 -647
  399. package/dist/lib/browser/chunk-N5EYLQOT.mjs.map +0 -7
  400. package/dist/lib/browser/chunk-QIZ3BPRK.mjs +0 -103
  401. package/dist/lib/browser/chunk-QIZ3BPRK.mjs.map +0 -7
  402. package/dist/lib/browser/chunk-SAN5Y7FI.mjs +0 -155
  403. package/dist/lib/browser/chunk-SAN5Y7FI.mjs.map +0 -7
  404. package/dist/lib/browser/chunk-ULJFT73Q.mjs +0 -513
  405. package/dist/lib/browser/chunk-ULJFT73Q.mjs.map +0 -7
  406. package/dist/lib/browser/chunk-UOQ6NCH3.mjs +0 -15
  407. package/dist/lib/browser/chunk-UOQ6NCH3.mjs.map +0 -7
  408. package/dist/lib/browser/compiler-4KHRSX7J.mjs.map +0 -7
  409. package/dist/lib/browser/intent-resolver-TXTBWOVD.mjs +0 -104
  410. package/dist/lib/browser/intent-resolver-TXTBWOVD.mjs.map +0 -7
  411. package/dist/lib/browser/react-surface-R245YN52.mjs +0 -128
  412. package/dist/lib/browser/react-surface-R245YN52.mjs.map +0 -7
  413. package/dist/lib/browser/settings-MHJXRGDF.mjs +0 -26
  414. package/dist/lib/browser/settings-MHJXRGDF.mjs.map +0 -7
  415. package/dist/lib/node-esm/DeploymentDialog-2ULNOZQH.mjs +0 -15
  416. package/dist/lib/node-esm/NotebookContainer-U4C2HQ4T.mjs.map +0 -7
  417. package/dist/lib/node-esm/ScriptContainer-VRPEKB4T.mjs +0 -149
  418. package/dist/lib/node-esm/ScriptContainer-VRPEKB4T.mjs.map +0 -7
  419. package/dist/lib/node-esm/app-graph-builder-NCVLUL5R.mjs +0 -67
  420. package/dist/lib/node-esm/app-graph-builder-NCVLUL5R.mjs.map +0 -7
  421. package/dist/lib/node-esm/blueprint-definition-5R6YCSZZ.mjs +0 -31
  422. package/dist/lib/node-esm/blueprint-definition-5R6YCSZZ.mjs.map +0 -7
  423. package/dist/lib/node-esm/chunk-55JZVM6K.mjs +0 -16
  424. package/dist/lib/node-esm/chunk-55JZVM6K.mjs.map +0 -7
  425. package/dist/lib/node-esm/chunk-57JA6XL5.mjs +0 -90
  426. package/dist/lib/node-esm/chunk-57JA6XL5.mjs.map +0 -7
  427. package/dist/lib/node-esm/chunk-HDKR5WCD.mjs +0 -113
  428. package/dist/lib/node-esm/chunk-HDKR5WCD.mjs.map +0 -7
  429. package/dist/lib/node-esm/chunk-IBV2DR36.mjs.map +0 -7
  430. package/dist/lib/node-esm/chunk-ND4BPYPR.mjs +0 -156
  431. package/dist/lib/node-esm/chunk-ND4BPYPR.mjs.map +0 -7
  432. package/dist/lib/node-esm/chunk-UEVZP5DN.mjs +0 -648
  433. package/dist/lib/node-esm/chunk-UEVZP5DN.mjs.map +0 -7
  434. package/dist/lib/node-esm/chunk-VJSRZRLI.mjs +0 -514
  435. package/dist/lib/node-esm/chunk-VJSRZRLI.mjs.map +0 -7
  436. package/dist/lib/node-esm/chunk-VTRMJSQL.mjs +0 -305
  437. package/dist/lib/node-esm/chunk-VTRMJSQL.mjs.map +0 -7
  438. package/dist/lib/node-esm/chunk-XYKKDWUR.mjs +0 -104
  439. package/dist/lib/node-esm/chunk-XYKKDWUR.mjs.map +0 -7
  440. package/dist/lib/node-esm/compiler-DU5NQISX.mjs.map +0 -7
  441. package/dist/lib/node-esm/intent-resolver-D6AVAQRA.mjs +0 -105
  442. package/dist/lib/node-esm/intent-resolver-D6AVAQRA.mjs.map +0 -7
  443. package/dist/lib/node-esm/react-surface-MHT3PJ6C.mjs +0 -129
  444. package/dist/lib/node-esm/react-surface-MHT3PJ6C.mjs.map +0 -7
  445. package/dist/lib/node-esm/settings-BVJORMMJ.mjs +0 -27
  446. package/dist/lib/node-esm/settings-BVJORMMJ.mjs.map +0 -7
  447. package/dist/types/src/capabilities/app-graph-builder.d.ts +0 -4
  448. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +0 -1
  449. package/dist/types/src/capabilities/artifact-definition.d.ts +0 -11
  450. package/dist/types/src/capabilities/artifact-definition.d.ts.map +0 -1
  451. package/dist/types/src/capabilities/blueprint-definition.d.ts +0 -5
  452. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +0 -1
  453. package/dist/types/src/capabilities/capabilities.d.ts +0 -5
  454. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  455. package/dist/types/src/capabilities/compiler.d.ts +0 -4
  456. package/dist/types/src/capabilities/compiler.d.ts.map +0 -1
  457. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  458. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  459. package/dist/types/src/capabilities/react-surface.d.ts +0 -4
  460. package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
  461. package/dist/types/src/capabilities/settings.d.ts +0 -4
  462. package/dist/types/src/capabilities/settings.d.ts.map +0 -1
  463. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.d.ts.map +0 -1
  464. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts.map +0 -1
  465. package/dist/types/src/components/DeploymentDialog/index.d.ts +0 -4
  466. package/dist/types/src/components/DeploymentDialog/index.d.ts.map +0 -1
  467. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts.map +0 -1
  468. package/dist/types/src/components/FrameContainer/frame.d.ts +0 -2
  469. package/dist/types/src/components/FrameContainer/frame.d.ts.map +0 -1
  470. package/dist/types/src/components/FrameContainer/index.d.ts +0 -2
  471. package/dist/types/src/components/FrameContainer/index.d.ts.map +0 -1
  472. package/dist/types/src/components/NotebookContainer.d.ts +0 -10
  473. package/dist/types/src/components/NotebookContainer.d.ts.map +0 -1
  474. package/dist/types/src/components/NotebookContainer.stories.d.ts +0 -254
  475. package/dist/types/src/components/NotebookContainer.stories.d.ts.map +0 -1
  476. package/dist/types/src/components/ScriptContainer.d.ts +0 -12
  477. package/dist/types/src/components/ScriptContainer.d.ts.map +0 -1
  478. package/dist/types/src/components/Settings/ScriptObjectSettings.d.ts.map +0 -1
  479. package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts +0 -6
  480. package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts.map +0 -1
  481. package/dist/types/src/components/Settings/index.d.ts +0 -3
  482. package/dist/types/src/components/Settings/index.d.ts.map +0 -1
  483. package/dist/types/src/components/TestPanel/TestContainer.d.ts.map +0 -1
  484. package/dist/types/src/events.d.ts +0 -4
  485. package/dist/types/src/events.d.ts.map +0 -1
  486. package/dist/types/src/templates/chess.d.ts +0 -3
  487. package/dist/types/src/templates/chess.d.ts.map +0 -1
  488. package/dist/types/src/types/actions.d.ts +0 -54
  489. package/dist/types/src/types/actions.d.ts.map +0 -1
  490. package/src/capabilities/app-graph-builder.ts +0 -65
  491. package/src/capabilities/blueprint-definition.ts +0 -30
  492. package/src/capabilities/capabilities.ts +0 -12
  493. package/src/capabilities/compiler.ts +0 -34
  494. package/src/capabilities/intent-resolver.ts +0 -86
  495. package/src/capabilities/react-surface.tsx +0 -103
  496. package/src/capabilities/settings.ts +0 -21
  497. package/src/components/DeploymentDialog/DeploymentDialog.tsx +0 -123
  498. package/src/components/DeploymentDialog/index.ts +0 -9
  499. package/src/components/FrameContainer/frame.html +0 -25
  500. package/src/components/FrameContainer/frame.tsx +0 -51
  501. package/src/components/ScriptContainer.tsx +0 -70
  502. package/src/components/Settings/index.ts +0 -6
  503. package/src/components/TestPanel/TestContainer.tsx +0 -27
  504. package/src/events.ts +0 -11
  505. package/src/templates/chess.ts +0 -49
  506. package/src/types/actions.ts +0 -53
  507. /package/dist/lib/browser/{DeploymentDialog-5TKNGPVR.mjs.map → blueprints/index.mjs.map} +0 -0
  508. /package/dist/lib/{node-esm/DeploymentDialog-2ULNOZQH.mjs.map → browser/operations/index.mjs.map} +0 -0
@@ -2,58 +2,57 @@
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
 
10
- import { Agent } from '@dxos/assistant-toolkit';
12
+ import { type SurfaceComponentProps } from '@dxos/app-toolkit/ui';
13
+ import { AgentPrompt } 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 { FunctionInvocationService, TracingService } from '@dxos/functions';
18
+ import { Operation } from '@dxos/operation';
17
19
  import { invariant } from '@dxos/invariant';
18
20
  import { log } from '@dxos/log';
19
21
  import { useComputeRuntimeCallback } from '@dxos/plugin-automation';
20
22
  import { Graph } from '@dxos/plugin-explorer/types';
21
- import { getSpace } from '@dxos/react-client/echo';
22
- import { DropdownMenu, IconButton, Toolbar, useTranslation } from '@dxos/react-ui';
23
+ import { DropdownMenu, IconButton, Panel, Toolbar, useTranslation } from '@dxos/react-ui';
23
24
  import { useAttention } from '@dxos/react-ui-attention';
24
- import { StackItem } from '@dxos/react-ui-stack';
25
- import { Text, View } from '@dxos/schema';
25
+ import { Text, ViewModel } from '@dxos/schema';
26
26
  import { isNonNullable } from '@dxos/util';
27
27
 
28
- import { meta } from '../meta';
29
- import { ComputeGraph } from '../notebook';
30
- import { type Notebook } from '../types';
28
+ import { NotebookMenu, NotebookStack, type NotebookStackProps, type TypescriptEditorProps } from '../../components';
29
+ import { meta } from '../../meta';
30
+ import { ComputeGraph } from '../../notebook';
31
+ import { type Notebook } from '../../types';
31
32
 
32
- import { NotebookMenu, NotebookStack, type NotebookStackProps } from './NotebookStack';
33
- import { type TypescriptEditorProps } from './TypescriptEditor';
34
-
35
- const INCLUDE_BLUEPRINTS = ['dxos.org/blueprint/assistant', 'dxos.org/blueprint/markdown'];
33
+ const INCLUDE_BLUEPRINTS = [
34
+ 'org.dxos.blueprint.assistant',
35
+ 'org.dxos.blueprint.database',
36
+ 'org.dxos.blueprint.markdown',
37
+ ];
36
38
 
37
39
  // TODO(burdon): Support calling named deployed functions (as with sheet).
38
40
 
39
- export type NotebookContainerProps = {
40
- role?: string;
41
- notebook?: Notebook.Notebook;
42
- } & Pick<TypescriptEditorProps, 'env'>;
41
+ export type NotebookContainerProps = SurfaceComponentProps<Notebook.Notebook, Pick<TypescriptEditorProps, 'env'>>;
43
42
 
44
- export const NotebookContainer = ({ notebook, env }: NotebookContainerProps) => {
43
+ export const NotebookContainer = ({ role, subject: notebook, attendableId, env }: NotebookContainerProps) => {
45
44
  const { t } = useTranslation(meta.id);
46
- const space = getSpace(notebook);
47
- const attendableId = notebook ? Obj.getDXN(notebook).toString() : '';
45
+ const registry = useContext(RegistryContext);
46
+ const db = Obj.getDatabase(notebook);
48
47
  const { hasAttention } = useAttention(attendableId);
49
48
 
50
49
  // TODO(burdon): Consolidate execution and state (with graph).
51
50
  // Generalize ComputeGraph evaluation function (using effects).
52
- const graph = useMemo(() => notebook && new ComputeGraph(notebook), [notebook]);
51
+ const graph = useMemo(() => notebook && new ComputeGraph(notebook, registry), [notebook, registry]);
53
52
 
54
53
  const [queryValues, setQueryValues] = useState<Record<string, any>>({});
55
54
  const handleExecQueries = useCallback(async () => {
56
- invariant(space);
55
+ invariant(db);
57
56
 
58
57
  const builder = new QueryBuilder();
59
58
  for (const cell of notebook?.cells ?? []) {
@@ -65,12 +64,19 @@ export const NotebookContainer = ({ notebook, env }: NotebookContainerProps) =>
65
64
  const ast = Query.select(filter).ast;
66
65
  const graph = cell.graph?.target;
67
66
  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;
67
+ const { view } = await ViewModel.makeFromDatabase({ db });
68
+ const newGraph = Graph.make({ query: { ast }, view });
69
+ Obj.change(notebook!, (obj) => {
70
+ const c = obj.cells.find((c) => c.id === cell.id);
71
+ if (c) {
72
+ c.graph = Ref.make(newGraph);
73
+ c.name = name;
74
+ }
75
+ });
72
76
  } else {
73
- graph.query.ast = ast;
77
+ Obj.change(graph, (obj) => {
78
+ obj.query.ast = ast as Obj.Mutable<typeof ast>;
79
+ });
74
80
  }
75
81
  }
76
82
  }
@@ -78,17 +84,17 @@ export const NotebookContainer = ({ notebook, env }: NotebookContainerProps) =>
78
84
  if (cell.name && cell.graph?.target) {
79
85
  const graph = Obj.getSnapshot(cell.graph?.target);
80
86
  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);
87
+ const objects = await db.query(query).run();
88
+ const objectIds = objects?.map((obj) => obj.id);
83
89
  setQueryValues((prev) => ({ ...prev, [cell.name!]: objectIds }));
84
90
  }
85
91
  }
86
92
  }
87
- }, [space, notebook, graph]);
93
+ }, [db, notebook, graph]);
88
94
 
89
95
  const [promptResults, setPromptResults] = useState<Record<string, string>>({});
90
96
  const handleExecPrompts = useComputeRuntimeCallback(
91
- space,
97
+ db?.spaceId,
92
98
  Effect.fnUntraced(function* () {
93
99
  invariant(graph);
94
100
 
@@ -101,7 +107,7 @@ export const NotebookContainer = ({ notebook, env }: NotebookContainerProps) =>
101
107
  for (const prompt of prompts) {
102
108
  yield* runPrompt({
103
109
  prompt,
104
- input: { ...queryValues, ...graph.valuesByName.value },
110
+ input: { ...queryValues, ...graph.getValuesByName() },
105
111
  onResult: (result) =>
106
112
  setPromptResults((prev) => ({
107
113
  ...prev,
@@ -127,10 +133,12 @@ export const NotebookContainer = ({ notebook, env }: NotebookContainerProps) =>
127
133
  const from = notebook.cells.findIndex((cell) => cell.id === source.id);
128
134
  const to = notebook.cells.findIndex((cell) => cell.id === target.id);
129
135
  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
- }
136
+ Obj.change(notebook, (obj) => {
137
+ const cell = obj.cells.splice(from, 1)[0];
138
+ if (cell) {
139
+ obj.cells.splice(to, 0, cell);
140
+ }
141
+ });
134
142
  }
135
143
  },
136
144
  [notebook],
@@ -139,7 +147,7 @@ export const NotebookContainer = ({ notebook, env }: NotebookContainerProps) =>
139
147
  const handleCellInsert = useCallback<NonNullable<NotebookStackProps['onCellInsert']>>(
140
148
  async (type, after) => {
141
149
  invariant(notebook);
142
- const cell: Notebook.Cell = { id: crypto.randomUUID(), type };
150
+ const cell: Types.Mutable<Notebook.Cell> = { id: crypto.randomUUID(), type };
143
151
  switch (type) {
144
152
  case 'markdown':
145
153
  case 'script':
@@ -149,9 +157,9 @@ export const NotebookContainer = ({ notebook, env }: NotebookContainerProps) =>
149
157
  }
150
158
 
151
159
  case 'prompt': {
152
- if (space) {
153
- const result = await space.db.query(Query.select(Filter.type(Blueprint.Blueprint))).run();
154
- const blueprints = result.objects
160
+ if (db) {
161
+ const objects = await db.query(Query.select(Filter.type(Blueprint.Blueprint))).run();
162
+ const blueprints = objects
155
163
  .filter((blueprint) => INCLUDE_BLUEPRINTS.includes(blueprint.key))
156
164
  .map((blueprint) => Ref.make(blueprint));
157
165
  cell.prompt = Ref.make(Prompt.make({ instructions: '', blueprints }));
@@ -161,9 +169,11 @@ export const NotebookContainer = ({ notebook, env }: NotebookContainerProps) =>
161
169
  }
162
170
 
163
171
  const idx = after ? notebook.cells.findIndex((cell) => cell.id === after) : notebook.cells.length;
164
- notebook.cells.splice(idx, 0, cell);
172
+ Obj.change(notebook, (obj) => {
173
+ obj.cells.splice(idx, 0, cell);
174
+ });
165
175
  },
166
- [space, notebook],
176
+ [db, notebook],
167
177
  );
168
178
 
169
179
  const handleCellDelete = useCallback<NonNullable<NotebookStackProps['onCellDelete']>>(
@@ -171,33 +181,36 @@ export const NotebookContainer = ({ notebook, env }: NotebookContainerProps) =>
171
181
  invariant(notebook);
172
182
  const idx = notebook.cells.findIndex((cell) => cell.id === id);
173
183
  if (idx !== -1) {
174
- notebook.cells.splice(idx, 1);
184
+ Obj.change(notebook, (obj) => {
185
+ obj.cells.splice(idx, 1);
186
+ });
175
187
  }
176
188
  },
177
189
  [notebook],
178
190
  );
179
191
 
180
192
  return (
181
- <StackItem.Content toolbar>
182
- <Toolbar.Root disabled={!hasAttention} textBlockWidth>
183
- <DropdownMenu.Root>
184
- <DropdownMenu.Trigger asChild>
185
- <IconButton icon='ph--plus--regular' iconOnly label={t('notebook cell insert label')} />
186
- </DropdownMenu.Trigger>
187
- <NotebookMenu onCellInsert={handleCellInsert} />
188
- </DropdownMenu.Root>
189
- <Toolbar.IconButton
190
- icon='ph--play--fill'
191
- iconOnly
192
- label={t('compute label')}
193
- classNames='text-green-500'
194
- onClick={handleCompute}
195
- />
196
- </Toolbar.Root>
197
- <div role='none' className='flex bs-full overflow-hidden -mis-[1px] -mie-[1px]'>
193
+ <Panel.Root role={role} className='dx-document'>
194
+ <Panel.Toolbar asChild>
195
+ <Toolbar.Root disabled={!hasAttention}>
196
+ <DropdownMenu.Root>
197
+ <DropdownMenu.Trigger asChild>
198
+ <IconButton icon='ph--plus--regular' iconOnly label={t('notebook cell insert label')} />
199
+ </DropdownMenu.Trigger>
200
+ <NotebookMenu onCellInsert={handleCellInsert} />
201
+ </DropdownMenu.Root>
202
+ <Toolbar.IconButton
203
+ icon='ph--play--fill'
204
+ iconOnly
205
+ label={t('compute label')}
206
+ classNames='text-success-text'
207
+ onClick={handleCompute}
208
+ />
209
+ </Toolbar.Root>
210
+ </Panel.Toolbar>
211
+ <Panel.Content asChild>
198
212
  <NotebookStack
199
- classNames='container-max-width border-l border-r border-subduedSeparator'
200
- space={space}
213
+ db={db}
201
214
  notebook={notebook}
202
215
  graph={graph}
203
216
  env={env}
@@ -206,13 +219,11 @@ export const NotebookContainer = ({ notebook, env }: NotebookContainerProps) =>
206
219
  onCellInsert={handleCellInsert}
207
220
  onCellDelete={handleCellDelete}
208
221
  />
209
- </div>
210
- </StackItem.Content>
222
+ </Panel.Content>
223
+ </Panel.Root>
211
224
  );
212
225
  };
213
226
 
214
- export default NotebookContainer;
215
-
216
227
  // TODO(wittjosiah): Factor out. Copied from PromptArticle in plugin-assistant.
217
228
  const runPrompt = Effect.fn(function* ({
218
229
  prompt,
@@ -223,11 +234,8 @@ const runPrompt = Effect.fn(function* ({
223
234
  input: Record<string, any>;
224
235
  onResult: (result: string) => void;
225
236
  }) {
226
- const inputData: FunctionDefinition.Input<typeof Agent.prompt> = {
227
- prompt,
228
- input,
229
- };
230
- const tracer = yield* InvocationTracer;
237
+ const inputData: Operation.Definition.Input<typeof AgentPrompt> = { prompt, input };
238
+ const tracer = yield* TracingService;
231
239
  const trace = yield* tracer.traceInvocationStart({
232
240
  target: undefined,
233
241
  payload: {
@@ -236,8 +244,8 @@ const runPrompt = Effect.fn(function* ({
236
244
  });
237
245
 
238
246
  // Invoke the function.
239
- const result = yield* FunctionInvocationService.invokeFunction(Agent.prompt, inputData).pipe(
240
- Effect.provide(TracingServiceExt.layerQueue(trace.invocationTraceQueue)),
247
+ const result = yield* FunctionInvocationService.invokeFunction(AgentPrompt, inputData).pipe(
248
+ Effect.provide(trace.invocationTraceQueue ? TracingService.layerInvocation(trace) : TracingService.layerNoop),
241
249
  Effect.exit,
242
250
  );
243
251
 
@@ -0,0 +1,7 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { NotebookContainer } from './NotebookContainer';
6
+
7
+ export default NotebookContainer;
@@ -0,0 +1,85 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ import React, { useMemo } from 'react';
6
+
7
+ import { type SurfaceComponentProps } from '@dxos/app-toolkit/ui';
8
+ import { Obj } from '@dxos/echo';
9
+ import { createDocAccessor } from '@dxos/echo-db';
10
+ import { type Script } from '@dxos/functions';
11
+ import { getSpace } from '@dxos/react-client/echo';
12
+ import { useIdentity } from '@dxos/react-client/halo';
13
+ import { Panel } from '@dxos/react-ui';
14
+ import { createDataExtensions, listener, stackItemContentEditorClassNames } from '@dxos/ui-editor';
15
+
16
+ import { ScriptToolbar, TypescriptEditor, type TypescriptEditorProps } from '../../components';
17
+ import { useDeployState, useToolbarState } from '../../hooks';
18
+ import { type ScriptSettings } from '../../types';
19
+
20
+ export type ScriptEditorProps = SurfaceComponentProps<
21
+ Script.Script,
22
+ {
23
+ settings?: ScriptSettings;
24
+ } & Pick<TypescriptEditorProps, 'env'>
25
+ >;
26
+
27
+ export const ScriptContainer = ({
28
+ role,
29
+ attendableId,
30
+ subject: script,
31
+ settings = { editorInputMode: 'vscode' },
32
+ env,
33
+ }: ScriptEditorProps) => {
34
+ const identity = useIdentity();
35
+ const space = getSpace(script);
36
+ const state = useToolbarState();
37
+ useDeployState({ script, state });
38
+
39
+ const extensions = useMemo(() => {
40
+ if (!script.source.target) {
41
+ return [];
42
+ }
43
+
44
+ return [
45
+ createDataExtensions({
46
+ id: script.id,
47
+ text: createDocAccessor(script.source.target, ['content']),
48
+ messenger: space,
49
+ identity,
50
+ }),
51
+ listener({
52
+ onChange: ({ text }) => {
53
+ if (script.source.target?.content !== text) {
54
+ Obj.change(script, (obj) => {
55
+ obj.changed = true;
56
+ });
57
+ }
58
+ },
59
+ }),
60
+ ];
61
+ }, [identity, space, script, script.source.target]);
62
+
63
+ if (!extensions.length) {
64
+ return null;
65
+ }
66
+
67
+ return (
68
+ <Panel.Root role={role}>
69
+ <Panel.Toolbar asChild>
70
+ <ScriptToolbar script={script} attendableId={attendableId} state={state} role={role} />
71
+ </Panel.Toolbar>
72
+ <Panel.Content asChild>
73
+ <TypescriptEditor
74
+ classNames={stackItemContentEditorClassNames(role)}
75
+ id={script.id}
76
+ env={env}
77
+ initialValue={script.source?.target?.content}
78
+ extensions={extensions}
79
+ inputMode={settings.editorInputMode}
80
+ toolbar
81
+ />
82
+ </Panel.Content>
83
+ </Panel.Root>
84
+ );
85
+ };
@@ -0,0 +1,7 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ import { ScriptContainer } from './ScriptContainer';
6
+
7
+ export default ScriptContainer;
@@ -6,15 +6,16 @@ import { Octokit } from '@octokit/core';
6
6
  import React, { type ChangeEvent, useCallback, useState } from 'react';
7
7
 
8
8
  import { ToolId } from '@dxos/ai';
9
- import { SettingsAction, createIntent } from '@dxos/app-framework';
10
- import { useIntentDispatcher } from '@dxos/app-framework/react';
9
+ import { useOperationInvoker } from '@dxos/app-framework/ui';
10
+ import { SettingsOperation } from '@dxos/app-toolkit';
11
11
  import { Blueprint, Template } from '@dxos/blueprints';
12
12
  import { Filter, Obj, Ref } from '@dxos/echo';
13
- import { Function, type Script, getUserFunctionIdInMetadata } from '@dxos/functions';
13
+ import { type Script, getUserFunctionIdInMetadata } from '@dxos/functions';
14
+ import { Operation } from '@dxos/operation';
14
15
  import { getInvocationUrl } from '@dxos/functions-runtime';
15
16
  import { log } from '@dxos/log';
16
17
  import { useClient } from '@dxos/react-client';
17
- import { getSpace, useQuery } from '@dxos/react-client/echo';
18
+ import { useQuery } from '@dxos/react-client/echo';
18
19
  import { Button, Clipboard, Input, useAsyncEffect, useControlledState, useTranslation } from '@dxos/react-ui';
19
20
  import { AccessToken } from '@dxos/types';
20
21
  import { kebabize } from '@dxos/util';
@@ -35,31 +36,15 @@ export const ScriptObjectSettings = ({ object }: ScriptObjectSettingsProps) => {
35
36
  );
36
37
  };
37
38
 
38
- export const ScriptProperties = ({ object }: ScriptObjectSettingsProps) => {
39
- const { t } = useTranslation(meta.id);
40
- return (
41
- <Input.Root>
42
- <Input.Label>{t('description label')}</Input.Label>
43
- <Input.TextInput
44
- placeholder={t('description placeholder')}
45
- value={object.description ?? ''}
46
- onChange={(event) => {
47
- object.description = event.target.value;
48
- }}
49
- />
50
- </Input.Root>
51
- );
52
- };
53
-
54
39
  const BlueprintEditor = ({ object }: ScriptObjectSettingsProps) => {
55
40
  const { t } = useTranslation(meta.id);
56
- const space = getSpace(object);
57
- const [fn] = useQuery(space, Filter.type(Function.Function, { source: Ref.make(object) }));
58
- const blueprints = useQuery(space, Filter.type(Blueprint.Blueprint));
41
+ const db = Obj.getDatabase(object);
42
+ const [fn] = useQuery(db, Filter.type(Operation.PersistentOperation, { source: Ref.make(object) }));
43
+ const blueprints = useQuery(db, Filter.type(Blueprint.Blueprint));
59
44
 
60
45
  const [creating, setCreating] = useState(false);
61
46
  const [instructions, setInstructions] = useState<string>(`You can run the script "${object.name ?? 'script'}".`);
62
- const blueprintKey = `dxos.org/blueprint/${kebabize(object.name ?? 'script')}`;
47
+ const blueprintKey = `org.dxos.blueprint.${kebabize(object.name ?? 'script')}`;
63
48
  const existingBlueprint = blueprints.find((bp) => bp.key === blueprintKey);
64
49
 
65
50
  useAsyncEffect(async () => {
@@ -71,7 +56,7 @@ const BlueprintEditor = ({ object }: ScriptObjectSettingsProps) => {
71
56
  }, [existingBlueprint]);
72
57
 
73
58
  const handleSave = useCallback(async () => {
74
- if (!space) {
59
+ if (!db) {
75
60
  return;
76
61
  }
77
62
 
@@ -79,15 +64,19 @@ const BlueprintEditor = ({ object }: ScriptObjectSettingsProps) => {
79
64
  try {
80
65
  if (existingBlueprint) {
81
66
  const text = await existingBlueprint.instructions.source.load();
82
- text.content = instructions;
67
+ Obj.change(text, (obj) => {
68
+ obj.content = instructions;
69
+ });
83
70
  if (fn?.key) {
84
71
  const toolId = ToolId.make(fn.key);
85
72
  if (!existingBlueprint.tools?.includes(toolId)) {
86
- existingBlueprint.tools = [...(existingBlueprint.tools ?? []), toolId];
73
+ Obj.change(existingBlueprint, (obj) => {
74
+ obj.tools = [...(obj.tools ?? []), toolId];
75
+ });
87
76
  }
88
77
  }
89
78
  } else if (fn?.key) {
90
- space.db.add(
79
+ db.add(
91
80
  Blueprint.make({
92
81
  key: blueprintKey,
93
82
  name: object.name ?? 'Script',
@@ -98,14 +87,14 @@ const BlueprintEditor = ({ object }: ScriptObjectSettingsProps) => {
98
87
  }),
99
88
  );
100
89
  }
101
- await space.db.flush();
90
+ await db.flush();
102
91
  } finally {
103
92
  setCreating(false);
104
93
  }
105
- }, [space, existingBlueprint, fn, blueprintKey, object.name, instructions]);
94
+ }, [db, existingBlueprint, fn, blueprintKey, object.name, instructions]);
106
95
 
107
96
  return (
108
- <div className='flex flex-col gap-4 mlb-cardSpacingBlock'>
97
+ <div className='flex flex-col gap-4 my-form-padding'>
109
98
  <div>
110
99
  <h2>{t('blueprint editor label', { default: 'Blueprint' })}</h2>
111
100
  <p className='text-description text-sm'>
@@ -142,14 +131,14 @@ const BlueprintEditor = ({ object }: ScriptObjectSettingsProps) => {
142
131
  const Binding = ({ object }: ScriptObjectSettingsProps) => {
143
132
  const { t } = useTranslation(meta.id);
144
133
  const client = useClient();
145
- const space = getSpace(object);
146
- const [fn] = useQuery(space, Filter.type(Function.Function, { source: Ref.make(object) }));
134
+ const db = Obj.getDatabase(object);
135
+ const [fn] = useQuery(db, Filter.type(Operation.PersistentOperation, { source: Ref.make(object) }));
147
136
 
148
137
  const functionId = fn && getUserFunctionIdInMetadata(Obj.getMeta(fn));
149
138
  const functionUrl =
150
139
  functionId &&
151
140
  getInvocationUrl(functionId, client.config.values.runtime?.services?.edge?.url ?? '', {
152
- spaceId: space?.id,
141
+ spaceId: db?.spaceId,
153
142
  });
154
143
 
155
144
  const [binding, setBinding] = useControlledState(fn?.binding ?? '');
@@ -161,32 +150,39 @@ const Binding = ({ object }: ScriptObjectSettingsProps) => {
161
150
  );
162
151
 
163
152
  const handleBindingBlur = useCallback(() => {
164
- fn.binding = binding;
153
+ if (fn) {
154
+ Obj.change(fn, (obj) => {
155
+ obj.binding = binding;
156
+ });
157
+ }
165
158
  }, [fn, binding]);
166
159
 
167
- if (!fn || !functionUrl) {
160
+ if (!fn) {
168
161
  return null;
169
162
  }
170
163
 
171
- // TODO(burdon): Use form.
172
164
  return (
173
- <div role='form' className='flex flex-col gap-2 mlb-cardSpacingBlock'>
165
+ <div role='form' className='flex flex-col gap-2 my-form-padding'>
174
166
  <h2>{t('remote function settings heading')}</h2>
175
- <Input.Root>
176
- <div role='none' className='flex flex-col gap-1'>
177
- <Input.Label>{t('function url label')}</Input.Label>
178
- <div role='none' className='flex gap-1'>
179
- <Input.TextInput
180
- disabled
181
- value={functionUrl}
182
- onChange={(event) => {
183
- fn.name = event.target.value;
184
- }}
185
- />
186
- <Clipboard.IconButton value={functionUrl} />
167
+ {functionUrl && (
168
+ <Input.Root>
169
+ <div role='none' className='flex flex-col gap-1'>
170
+ <Input.Label>{t('function url label')}</Input.Label>
171
+ <div role='none' className='flex gap-1'>
172
+ <Input.TextInput
173
+ disabled
174
+ value={functionUrl}
175
+ onChange={(event) => {
176
+ Obj.change(fn, (obj) => {
177
+ obj.name = event.target.value;
178
+ });
179
+ }}
180
+ />
181
+ <Clipboard.IconButton value={functionUrl} />
182
+ </div>
187
183
  </div>
188
- </div>
189
- </Input.Root>
184
+ </Input.Root>
185
+ )}
190
186
  <Input.Root>
191
187
  <div role='none' className='flex flex-col gap-1'>
192
188
  <Input.Label>{t('function binding label')}</Input.Label>
@@ -205,9 +201,9 @@ const Binding = ({ object }: ScriptObjectSettingsProps) => {
205
201
  // TODO(burdon): Move to separate tab?
206
202
  const Publishing = ({ object }: ScriptObjectSettingsProps) => {
207
203
  const { t } = useTranslation(meta.id);
208
- const { dispatchPromise: dispatch } = useIntentDispatcher();
209
- const space = getSpace(object);
210
- const [githubToken] = useQuery(space, Filter.type(AccessToken.AccessToken, { source: 'github.com' }));
204
+ const { invokePromise } = useOperationInvoker();
205
+ const db = Obj.getDatabase(object);
206
+ const [githubToken] = useQuery(db, Filter.type(AccessToken.AccessToken, { source: 'github.com' }));
211
207
  const gistKey = Obj.getMeta(object).keys.find(({ source }) => source === 'github.com');
212
208
  const [gistUrl, setGistUrl] = useState<string | undefined>();
213
209
 
@@ -233,12 +229,10 @@ const Publishing = ({ object }: ScriptObjectSettingsProps) => {
233
229
 
234
230
  const handleOpenTokenManager = useCallback(
235
231
  () =>
236
- dispatch(
237
- createIntent(SettingsAction.Open, {
238
- plugin: 'dxos.org/plugin/token-manager',
239
- }),
240
- ),
241
- [],
232
+ invokePromise(SettingsOperation.Open, {
233
+ plugin: 'org.dxos.plugin.token-manager',
234
+ }),
235
+ [invokePromise],
242
236
  );
243
237
 
244
238
  const [publishing, setPublishing] = useState(false);
@@ -264,8 +258,11 @@ const Publishing = ({ object }: ScriptObjectSettingsProps) => {
264
258
  public: true,
265
259
  files,
266
260
  });
267
- if (response.data.id) {
268
- meta.keys.push({ source: 'github.com', id: response.data.id });
261
+ const gistId = response.data.id;
262
+ if (gistId) {
263
+ Obj.change(object, (obj) => {
264
+ Obj.getMeta(obj).keys.push({ source: 'github.com', id: gistId });
265
+ });
269
266
  }
270
267
  }
271
268
  } finally {
@@ -274,7 +271,7 @@ const Publishing = ({ object }: ScriptObjectSettingsProps) => {
274
271
  }, [object, githubToken]);
275
272
 
276
273
  return (
277
- <div className='flex flex-col gap-4 mlb-cardSpacingBlock'>
274
+ <div className='flex flex-col gap-4 my-form-padding'>
278
275
  <div>
279
276
  <h2>{t('script publish settings label')}</h2>
280
277
  <p className='text-description text-sm'>{t('script publish settings description')}</p>
@@ -0,0 +1,7 @@
1
+ //
2
+ // Copyright 2024 DXOS.org
3
+ //
4
+
5
+ import { ScriptObjectSettings } from './ScriptObjectSettings';
6
+
7
+ export default ScriptObjectSettings;