@dxos/plugin-script 0.8.4-main.72ec0f3 → 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-RTESC4OV.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 +124 -129
  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-SVD3A3D6.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 +124 -129
  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 +8 -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 +8 -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 +7 -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 +15 -30
  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 +4 -0
  278. package/dist/types/src/translations.d.ts.map +1 -1
  279. package/dist/types/src/types/Notebook.d.ts +102 -23
  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 -87
  293. package/src/ScriptPlugin.tsx +60 -83
  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 +25 -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 +24 -17
  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 +88 -83
  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 +65 -67
  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 +42 -33
  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 +4 -0
  375. package/src/types/Notebook.ts +19 -15
  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 +28 -32
  381. package/src/util/functions.ts +30 -26
  382. package/src/vite-env.d.ts +2 -0
  383. package/dist/lib/browser/DeploymentDialog-MZX4T77L.mjs +0 -14
  384. package/dist/lib/browser/NotebookContainer-RTESC4OV.mjs.map +0 -7
  385. package/dist/lib/browser/ScriptContainer-T2BAZDJ4.mjs +0 -147
  386. package/dist/lib/browser/ScriptContainer-T2BAZDJ4.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-3IJASGG5.mjs +0 -155
  394. package/dist/lib/browser/chunk-3IJASGG5.mjs.map +0 -7
  395. package/dist/lib/browser/chunk-4M7U2WVT.mjs +0 -304
  396. package/dist/lib/browser/chunk-4M7U2WVT.mjs.map +0 -7
  397. package/dist/lib/browser/chunk-5JSNQYZZ.mjs +0 -517
  398. package/dist/lib/browser/chunk-5JSNQYZZ.mjs.map +0 -7
  399. package/dist/lib/browser/chunk-EB6AXFXO.mjs.map +0 -7
  400. package/dist/lib/browser/chunk-GAFCKEII.mjs +0 -646
  401. package/dist/lib/browser/chunk-GAFCKEII.mjs.map +0 -7
  402. package/dist/lib/browser/chunk-LNNCD2H4.mjs +0 -102
  403. package/dist/lib/browser/chunk-LNNCD2H4.mjs.map +0 -7
  404. package/dist/lib/browser/chunk-M6KJPUJK.mjs +0 -111
  405. package/dist/lib/browser/chunk-M6KJPUJK.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-AFJ575VK.mjs +0 -104
  410. package/dist/lib/browser/intent-resolver-AFJ575VK.mjs.map +0 -7
  411. package/dist/lib/browser/react-surface-QEQ3QUQA.mjs +0 -128
  412. package/dist/lib/browser/react-surface-QEQ3QUQA.mjs.map +0 -7
  413. package/dist/lib/browser/settings-LNLSTZM4.mjs +0 -26
  414. package/dist/lib/browser/settings-LNLSTZM4.mjs.map +0 -7
  415. package/dist/lib/node-esm/DeploymentDialog-GL5AUWMR.mjs +0 -15
  416. package/dist/lib/node-esm/NotebookContainer-SVD3A3D6.mjs.map +0 -7
  417. package/dist/lib/node-esm/ScriptContainer-2CE3H3JJ.mjs +0 -148
  418. package/dist/lib/node-esm/ScriptContainer-2CE3H3JJ.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-IQTBVH4L.mjs +0 -518
  431. package/dist/lib/node-esm/chunk-IQTBVH4L.mjs.map +0 -7
  432. package/dist/lib/node-esm/chunk-KJKZ4KNO.mjs +0 -647
  433. package/dist/lib/node-esm/chunk-KJKZ4KNO.mjs.map +0 -7
  434. package/dist/lib/node-esm/chunk-NNHWLRHT.mjs +0 -103
  435. package/dist/lib/node-esm/chunk-NNHWLRHT.mjs.map +0 -7
  436. package/dist/lib/node-esm/chunk-RIE676OW.mjs +0 -156
  437. package/dist/lib/node-esm/chunk-RIE676OW.mjs.map +0 -7
  438. package/dist/lib/node-esm/chunk-YRTA4EHU.mjs +0 -305
  439. package/dist/lib/node-esm/chunk-YRTA4EHU.mjs.map +0 -7
  440. package/dist/lib/node-esm/compiler-DU5NQISX.mjs.map +0 -7
  441. package/dist/lib/node-esm/intent-resolver-A5VVK746.mjs +0 -105
  442. package/dist/lib/node-esm/intent-resolver-A5VVK746.mjs.map +0 -7
  443. package/dist/lib/node-esm/react-surface-U77YT7VF.mjs +0 -129
  444. package/dist/lib/node-esm/react-surface-U77YT7VF.mjs.map +0 -7
  445. package/dist/lib/node-esm/settings-IUFMOCXY.mjs +0 -27
  446. package/dist/lib/node-esm/settings-IUFMOCXY.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 -251
  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 -69
  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-MZX4T77L.mjs.map → blueprints/index.mjs.map} +0 -0
  508. /package/dist/lib/{node-esm/DeploymentDialog-GL5AUWMR.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 } 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 ?? []) {
@@ -63,35 +62,39 @@ export const NotebookContainer = ({ notebook, env }: NotebookContainerProps) =>
63
62
  const { name, filter } = builder.build(source);
64
63
  if (filter) {
65
64
  const ast = Query.select(filter).ast;
66
- const view = cell.view?.target;
67
- if (!view) {
68
- const graph = Graph.make({ query: { ast } });
69
- const { view } = await Graph.makeView({
70
- space,
71
- presentation: graph,
65
+ const graph = cell.graph?.target;
66
+ if (!graph) {
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
+ }
72
75
  });
73
- cell.view = Ref.make(view);
74
- cell.name = name;
75
76
  } else {
76
- view.query.ast = ast;
77
+ Obj.change(graph, (obj) => {
78
+ obj.query.ast = ast as Obj.Mutable<typeof ast>;
79
+ });
77
80
  }
78
81
  }
79
82
  }
80
83
 
81
- if (cell.name && cell.view?.target) {
82
- const view = Obj.getSnapshot(cell.view?.target);
83
- const query = Query.fromAst(view.query.ast);
84
- const result = await space?.db.query(query).run();
85
- const objectIds = result?.objects?.map((obj) => obj.id);
84
+ if (cell.name && cell.graph?.target) {
85
+ const graph = Obj.getSnapshot(cell.graph?.target);
86
+ const query = Query.fromAst(graph.query.ast);
87
+ const objects = await db.query(query).run();
88
+ const objectIds = objects?.map((obj) => obj.id);
86
89
  setQueryValues((prev) => ({ ...prev, [cell.name!]: objectIds }));
87
90
  }
88
91
  }
89
92
  }
90
- }, [space, notebook, graph]);
93
+ }, [db, notebook, graph]);
91
94
 
92
95
  const [promptResults, setPromptResults] = useState<Record<string, string>>({});
93
96
  const handleExecPrompts = useComputeRuntimeCallback(
94
- space,
97
+ db?.spaceId,
95
98
  Effect.fnUntraced(function* () {
96
99
  invariant(graph);
97
100
 
@@ -104,7 +107,7 @@ export const NotebookContainer = ({ notebook, env }: NotebookContainerProps) =>
104
107
  for (const prompt of prompts) {
105
108
  yield* runPrompt({
106
109
  prompt,
107
- input: { ...queryValues, ...graph.valuesByName.value },
110
+ input: { ...queryValues, ...graph.getValuesByName() },
108
111
  onResult: (result) =>
109
112
  setPromptResults((prev) => ({
110
113
  ...prev,
@@ -130,10 +133,12 @@ export const NotebookContainer = ({ notebook, env }: NotebookContainerProps) =>
130
133
  const from = notebook.cells.findIndex((cell) => cell.id === source.id);
131
134
  const to = notebook.cells.findIndex((cell) => cell.id === target.id);
132
135
  if (from != null && to != null) {
133
- const cell = notebook.cells.splice(from, 1)[0];
134
- if (cell) {
135
- notebook.cells.splice(to, 0, cell);
136
- }
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
+ });
137
142
  }
138
143
  },
139
144
  [notebook],
@@ -142,7 +147,7 @@ export const NotebookContainer = ({ notebook, env }: NotebookContainerProps) =>
142
147
  const handleCellInsert = useCallback<NonNullable<NotebookStackProps['onCellInsert']>>(
143
148
  async (type, after) => {
144
149
  invariant(notebook);
145
- const cell: Notebook.Cell = { id: crypto.randomUUID(), type };
150
+ const cell: Types.Mutable<Notebook.Cell> = { id: crypto.randomUUID(), type };
146
151
  switch (type) {
147
152
  case 'markdown':
148
153
  case 'script':
@@ -152,9 +157,9 @@ export const NotebookContainer = ({ notebook, env }: NotebookContainerProps) =>
152
157
  }
153
158
 
154
159
  case 'prompt': {
155
- if (space) {
156
- const result = await space.db.query(Query.select(Filter.type(Blueprint.Blueprint))).run();
157
- const blueprints = result.objects
160
+ if (db) {
161
+ const objects = await db.query(Query.select(Filter.type(Blueprint.Blueprint))).run();
162
+ const blueprints = objects
158
163
  .filter((blueprint) => INCLUDE_BLUEPRINTS.includes(blueprint.key))
159
164
  .map((blueprint) => Ref.make(blueprint));
160
165
  cell.prompt = Ref.make(Prompt.make({ instructions: '', blueprints }));
@@ -164,9 +169,11 @@ export const NotebookContainer = ({ notebook, env }: NotebookContainerProps) =>
164
169
  }
165
170
 
166
171
  const idx = after ? notebook.cells.findIndex((cell) => cell.id === after) : notebook.cells.length;
167
- notebook.cells.splice(idx, 0, cell);
172
+ Obj.change(notebook, (obj) => {
173
+ obj.cells.splice(idx, 0, cell);
174
+ });
168
175
  },
169
- [space, notebook],
176
+ [db, notebook],
170
177
  );
171
178
 
172
179
  const handleCellDelete = useCallback<NonNullable<NotebookStackProps['onCellDelete']>>(
@@ -174,33 +181,36 @@ export const NotebookContainer = ({ notebook, env }: NotebookContainerProps) =>
174
181
  invariant(notebook);
175
182
  const idx = notebook.cells.findIndex((cell) => cell.id === id);
176
183
  if (idx !== -1) {
177
- notebook.cells.splice(idx, 1);
184
+ Obj.change(notebook, (obj) => {
185
+ obj.cells.splice(idx, 1);
186
+ });
178
187
  }
179
188
  },
180
189
  [notebook],
181
190
  );
182
191
 
183
192
  return (
184
- <StackItem.Content toolbar>
185
- <Toolbar.Root disabled={!hasAttention} textBlockWidth>
186
- <DropdownMenu.Root>
187
- <DropdownMenu.Trigger asChild>
188
- <IconButton icon='ph--plus--regular' iconOnly label={t('notebook cell insert label')} />
189
- </DropdownMenu.Trigger>
190
- <NotebookMenu onCellInsert={handleCellInsert} />
191
- </DropdownMenu.Root>
192
- <Toolbar.IconButton
193
- icon='ph--play--fill'
194
- iconOnly
195
- label={t('compute label')}
196
- classNames='text-green-500'
197
- onClick={handleCompute}
198
- />
199
- </Toolbar.Root>
200
- <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>
201
212
  <NotebookStack
202
- classNames='container-max-width border-l border-r border-subduedSeparator'
203
- space={space}
213
+ db={db}
204
214
  notebook={notebook}
205
215
  graph={graph}
206
216
  env={env}
@@ -209,13 +219,11 @@ export const NotebookContainer = ({ notebook, env }: NotebookContainerProps) =>
209
219
  onCellInsert={handleCellInsert}
210
220
  onCellDelete={handleCellDelete}
211
221
  />
212
- </div>
213
- </StackItem.Content>
222
+ </Panel.Content>
223
+ </Panel.Root>
214
224
  );
215
225
  };
216
226
 
217
- export default NotebookContainer;
218
-
219
227
  // TODO(wittjosiah): Factor out. Copied from PromptArticle in plugin-assistant.
220
228
  const runPrompt = Effect.fn(function* ({
221
229
  prompt,
@@ -226,11 +234,8 @@ const runPrompt = Effect.fn(function* ({
226
234
  input: Record<string, any>;
227
235
  onResult: (result: string) => void;
228
236
  }) {
229
- const inputData: FunctionDefinition.Input<typeof Agent.prompt> = {
230
- prompt,
231
- input,
232
- };
233
- const tracer = yield* InvocationTracer;
237
+ const inputData: Operation.Definition.Input<typeof AgentPrompt> = { prompt, input };
238
+ const tracer = yield* TracingService;
234
239
  const trace = yield* tracer.traceInvocationStart({
235
240
  target: undefined,
236
241
  payload: {
@@ -239,8 +244,8 @@ const runPrompt = Effect.fn(function* ({
239
244
  });
240
245
 
241
246
  // Invoke the function.
242
- const result = yield* FunctionInvocationService.invokeFunction(Agent.prompt, inputData).pipe(
243
- 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),
244
249
  Effect.exit,
245
250
  );
246
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,14 +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
- import { Function, type Script, getUserFunctionIdInMetadata } from '@dxos/functions';
12
+ import { Filter, Obj, Ref } from '@dxos/echo';
13
+ import { type Script, getUserFunctionIdInMetadata } from '@dxos/functions';
14
+ import { Operation } from '@dxos/operation';
13
15
  import { getInvocationUrl } from '@dxos/functions-runtime';
14
16
  import { log } from '@dxos/log';
15
17
  import { useClient } from '@dxos/react-client';
16
- import { Filter, Ref, getMeta, getSpace, useQuery } from '@dxos/react-client/echo';
18
+ import { useQuery } from '@dxos/react-client/echo';
17
19
  import { Button, Clipboard, Input, useAsyncEffect, useControlledState, useTranslation } from '@dxos/react-ui';
18
20
  import { AccessToken } from '@dxos/types';
19
21
  import { kebabize } from '@dxos/util';
@@ -34,31 +36,15 @@ export const ScriptObjectSettings = ({ object }: ScriptObjectSettingsProps) => {
34
36
  );
35
37
  };
36
38
 
37
- export const ScriptProperties = ({ object }: ScriptObjectSettingsProps) => {
38
- const { t } = useTranslation(meta.id);
39
- return (
40
- <Input.Root>
41
- <Input.Label>{t('description label')}</Input.Label>
42
- <Input.TextInput
43
- placeholder={t('description placeholder')}
44
- value={object.description ?? ''}
45
- onChange={(event) => {
46
- object.description = event.target.value;
47
- }}
48
- />
49
- </Input.Root>
50
- );
51
- };
52
-
53
39
  const BlueprintEditor = ({ object }: ScriptObjectSettingsProps) => {
54
40
  const { t } = useTranslation(meta.id);
55
- const space = getSpace(object);
56
- const [fn] = useQuery(space, Filter.type(Function.Function, { source: Ref.make(object) }));
57
- 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));
58
44
 
59
45
  const [creating, setCreating] = useState(false);
60
46
  const [instructions, setInstructions] = useState<string>(`You can run the script "${object.name ?? 'script'}".`);
61
- const blueprintKey = `dxos.org/blueprint/${kebabize(object.name ?? 'script')}`;
47
+ const blueprintKey = `org.dxos.blueprint.${kebabize(object.name ?? 'script')}`;
62
48
  const existingBlueprint = blueprints.find((bp) => bp.key === blueprintKey);
63
49
 
64
50
  useAsyncEffect(async () => {
@@ -70,7 +56,7 @@ const BlueprintEditor = ({ object }: ScriptObjectSettingsProps) => {
70
56
  }, [existingBlueprint]);
71
57
 
72
58
  const handleSave = useCallback(async () => {
73
- if (!space) {
59
+ if (!db) {
74
60
  return;
75
61
  }
76
62
 
@@ -78,15 +64,19 @@ const BlueprintEditor = ({ object }: ScriptObjectSettingsProps) => {
78
64
  try {
79
65
  if (existingBlueprint) {
80
66
  const text = await existingBlueprint.instructions.source.load();
81
- text.content = instructions;
67
+ Obj.change(text, (obj) => {
68
+ obj.content = instructions;
69
+ });
82
70
  if (fn?.key) {
83
71
  const toolId = ToolId.make(fn.key);
84
72
  if (!existingBlueprint.tools?.includes(toolId)) {
85
- existingBlueprint.tools = [...(existingBlueprint.tools ?? []), toolId];
73
+ Obj.change(existingBlueprint, (obj) => {
74
+ obj.tools = [...(obj.tools ?? []), toolId];
75
+ });
86
76
  }
87
77
  }
88
78
  } else if (fn?.key) {
89
- space.db.add(
79
+ db.add(
90
80
  Blueprint.make({
91
81
  key: blueprintKey,
92
82
  name: object.name ?? 'Script',
@@ -97,14 +87,14 @@ const BlueprintEditor = ({ object }: ScriptObjectSettingsProps) => {
97
87
  }),
98
88
  );
99
89
  }
100
- await space.db.flush();
90
+ await db.flush();
101
91
  } finally {
102
92
  setCreating(false);
103
93
  }
104
- }, [space, existingBlueprint, fn, blueprintKey, object.name, instructions]);
94
+ }, [db, existingBlueprint, fn, blueprintKey, object.name, instructions]);
105
95
 
106
96
  return (
107
- <div className='flex flex-col gap-4 mlb-cardSpacingBlock'>
97
+ <div className='flex flex-col gap-4 my-form-padding'>
108
98
  <div>
109
99
  <h2>{t('blueprint editor label', { default: 'Blueprint' })}</h2>
110
100
  <p className='text-description text-sm'>
@@ -141,14 +131,14 @@ const BlueprintEditor = ({ object }: ScriptObjectSettingsProps) => {
141
131
  const Binding = ({ object }: ScriptObjectSettingsProps) => {
142
132
  const { t } = useTranslation(meta.id);
143
133
  const client = useClient();
144
- const space = getSpace(object);
145
- 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) }));
146
136
 
147
- const functionId = fn && getUserFunctionIdInMetadata(getMeta(fn));
137
+ const functionId = fn && getUserFunctionIdInMetadata(Obj.getMeta(fn));
148
138
  const functionUrl =
149
139
  functionId &&
150
140
  getInvocationUrl(functionId, client.config.values.runtime?.services?.edge?.url ?? '', {
151
- spaceId: space?.id,
141
+ spaceId: db?.spaceId,
152
142
  });
153
143
 
154
144
  const [binding, setBinding] = useControlledState(fn?.binding ?? '');
@@ -160,32 +150,39 @@ const Binding = ({ object }: ScriptObjectSettingsProps) => {
160
150
  );
161
151
 
162
152
  const handleBindingBlur = useCallback(() => {
163
- fn.binding = binding;
153
+ if (fn) {
154
+ Obj.change(fn, (obj) => {
155
+ obj.binding = binding;
156
+ });
157
+ }
164
158
  }, [fn, binding]);
165
159
 
166
- if (!fn || !functionUrl) {
160
+ if (!fn) {
167
161
  return null;
168
162
  }
169
163
 
170
- // TODO(burdon): Use form.
171
164
  return (
172
- <div role='form' className='flex flex-col gap-2 mlb-cardSpacingBlock'>
165
+ <div role='form' className='flex flex-col gap-2 my-form-padding'>
173
166
  <h2>{t('remote function settings heading')}</h2>
174
- <Input.Root>
175
- <div role='none' className='flex flex-col gap-1'>
176
- <Input.Label>{t('function url label')}</Input.Label>
177
- <div role='none' className='flex gap-1'>
178
- <Input.TextInput
179
- disabled
180
- value={functionUrl}
181
- onChange={(event) => {
182
- fn.name = event.target.value;
183
- }}
184
- />
185
- <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>
186
183
  </div>
187
- </div>
188
- </Input.Root>
184
+ </Input.Root>
185
+ )}
189
186
  <Input.Root>
190
187
  <div role='none' className='flex flex-col gap-1'>
191
188
  <Input.Label>{t('function binding label')}</Input.Label>
@@ -204,10 +201,10 @@ const Binding = ({ object }: ScriptObjectSettingsProps) => {
204
201
  // TODO(burdon): Move to separate tab?
205
202
  const Publishing = ({ object }: ScriptObjectSettingsProps) => {
206
203
  const { t } = useTranslation(meta.id);
207
- const { dispatchPromise: dispatch } = useIntentDispatcher();
208
- const space = getSpace(object);
209
- const [githubToken] = useQuery(space, Filter.type(AccessToken.AccessToken, { source: 'github.com' }));
210
- const gistKey = getMeta(object).keys.find(({ source }) => 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' }));
207
+ const gistKey = Obj.getMeta(object).keys.find(({ source }) => source === 'github.com');
211
208
  const [gistUrl, setGistUrl] = useState<string | undefined>();
212
209
 
213
210
  useAsyncEffect(async () => {
@@ -232,12 +229,10 @@ const Publishing = ({ object }: ScriptObjectSettingsProps) => {
232
229
 
233
230
  const handleOpenTokenManager = useCallback(
234
231
  () =>
235
- dispatch(
236
- createIntent(SettingsAction.Open, {
237
- plugin: 'dxos.org/plugin/token-manager',
238
- }),
239
- ),
240
- [],
232
+ invokePromise(SettingsOperation.Open, {
233
+ plugin: 'org.dxos.plugin.token-manager',
234
+ }),
235
+ [invokePromise],
241
236
  );
242
237
 
243
238
  const [publishing, setPublishing] = useState(false);
@@ -250,7 +245,7 @@ const Publishing = ({ object }: ScriptObjectSettingsProps) => {
250
245
 
251
246
  try {
252
247
  // TODO(wittjosiah): Factor out to intent.
253
- const meta = getMeta(object);
248
+ const meta = Obj.getMeta(object);
254
249
  const githubKey = meta.keys.find(({ source }) => source === 'github.com');
255
250
  const gistId = githubKey?.id;
256
251
  if (gistId) {
@@ -263,8 +258,11 @@ const Publishing = ({ object }: ScriptObjectSettingsProps) => {
263
258
  public: true,
264
259
  files,
265
260
  });
266
- if (response.data.id) {
267
- 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
+ });
268
266
  }
269
267
  }
270
268
  } finally {
@@ -273,7 +271,7 @@ const Publishing = ({ object }: ScriptObjectSettingsProps) => {
273
271
  }, [object, githubToken]);
274
272
 
275
273
  return (
276
- <div className='flex flex-col gap-4 mlb-cardSpacingBlock'>
274
+ <div className='flex flex-col gap-4 my-form-padding'>
277
275
  <div>
278
276
  <h2>{t('script publish settings label')}</h2>
279
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;