@dxos/plugin-script 0.8.4-main.406dc2a → 0.8.4-main.4a85c3132b

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 (497) hide show
  1. package/README.md +15 -13
  2. package/dist/lib/browser/DeploymentDialog-IIOXAS47.mjs +138 -0
  3. package/dist/lib/browser/DeploymentDialog-IIOXAS47.mjs.map +7 -0
  4. package/dist/lib/browser/{NotebookContainer-LVGRPFY3.mjs → NotebookContainer-VVZOKGRC.mjs} +367 -200
  5. package/dist/lib/browser/NotebookContainer-VVZOKGRC.mjs.map +7 -0
  6. package/dist/lib/browser/ScriptContainer-A5SSIUH6.mjs +93 -0
  7. package/dist/lib/browser/ScriptContainer-A5SSIUH6.mjs.map +7 -0
  8. package/dist/lib/browser/ScriptObjectSettings-HYYC7KXC.mjs +294 -0
  9. package/dist/lib/browser/ScriptObjectSettings-HYYC7KXC.mjs.map +7 -0
  10. package/dist/lib/browser/ScriptPluginSettings-UTWA7CBT.mjs +55 -0
  11. package/dist/lib/browser/ScriptPluginSettings-UTWA7CBT.mjs.map +7 -0
  12. package/dist/lib/browser/ScriptProperties-HREPUE65.mjs +28 -0
  13. package/dist/lib/browser/ScriptProperties-HREPUE65.mjs.map +7 -0
  14. package/dist/lib/browser/TestContainer-D4Y2K2TT.mjs +39 -0
  15. package/dist/lib/browser/TestContainer-D4Y2K2TT.mjs.map +7 -0
  16. package/dist/lib/browser/app-graph-builder-66ZDI72K.mjs +69 -0
  17. package/dist/lib/browser/app-graph-builder-66ZDI72K.mjs.map +7 -0
  18. package/dist/lib/browser/blueprint-definition-YMZEJBAZ.mjs +17 -0
  19. package/dist/lib/browser/blueprint-definition-YMZEJBAZ.mjs.map +7 -0
  20. package/dist/lib/browser/blueprints/index.mjs +8 -0
  21. package/dist/lib/browser/chunk-6IXFDTAI.mjs +113 -0
  22. package/dist/lib/browser/chunk-6IXFDTAI.mjs.map +7 -0
  23. package/dist/lib/browser/chunk-ATTZUDT7.mjs +67 -0
  24. package/dist/lib/browser/chunk-ATTZUDT7.mjs.map +7 -0
  25. package/dist/lib/browser/chunk-G3XIOLLI.mjs +174 -0
  26. package/dist/lib/browser/chunk-G3XIOLLI.mjs.map +7 -0
  27. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  28. package/dist/lib/browser/{chunk-ST3ACVUC.mjs → chunk-J7PGML5B.mjs} +29 -12
  29. package/dist/lib/browser/chunk-J7PGML5B.mjs.map +7 -0
  30. package/dist/lib/browser/chunk-MUEVLYXJ.mjs +397 -0
  31. package/dist/lib/browser/chunk-MUEVLYXJ.mjs.map +7 -0
  32. package/dist/lib/browser/chunk-PLDBKKYO.mjs +789 -0
  33. package/dist/lib/browser/chunk-PLDBKKYO.mjs.map +7 -0
  34. package/dist/lib/browser/chunk-Q66L5EUR.mjs +20 -0
  35. package/dist/lib/browser/chunk-Q66L5EUR.mjs.map +7 -0
  36. package/dist/lib/browser/chunk-TW27W3EL.mjs +29 -0
  37. package/dist/lib/browser/chunk-TW27W3EL.mjs.map +7 -0
  38. package/dist/lib/browser/{chunk-EZVXV6DA.mjs → chunk-WYR4QHPE.mjs} +7 -2
  39. package/dist/lib/browser/chunk-WYR4QHPE.mjs.map +7 -0
  40. package/dist/lib/browser/chunk-ZYU2LP6U.mjs +11 -0
  41. package/dist/lib/browser/chunk-ZYU2LP6U.mjs.map +7 -0
  42. package/dist/lib/browser/compiler-53G6ZHQM.mjs +99 -0
  43. package/dist/lib/browser/compiler-53G6ZHQM.mjs.map +7 -0
  44. package/dist/lib/browser/index.mjs +111 -140
  45. package/dist/lib/browser/index.mjs.map +4 -4
  46. package/dist/lib/browser/meta.json +1 -1
  47. package/dist/lib/browser/operation-resolver-CYEISDDK.mjs +79 -0
  48. package/dist/lib/browser/operation-resolver-CYEISDDK.mjs.map +7 -0
  49. package/dist/lib/browser/react-surface-26P6HAFD.mjs +141 -0
  50. package/dist/lib/browser/react-surface-26P6HAFD.mjs.map +7 -0
  51. package/dist/lib/browser/settings-76UM7442.mjs +36 -0
  52. package/dist/lib/browser/settings-76UM7442.mjs.map +7 -0
  53. package/dist/lib/browser/templates/index.mjs +2 -1
  54. package/dist/lib/browser/types/index.mjs +12 -7
  55. package/dist/lib/node-esm/DeploymentDialog-ZHPHEV2H.mjs +139 -0
  56. package/dist/lib/node-esm/DeploymentDialog-ZHPHEV2H.mjs.map +7 -0
  57. package/dist/lib/node-esm/{NotebookContainer-QY5NJGJI.mjs → NotebookContainer-ZLWTNMQA.mjs} +367 -200
  58. package/dist/lib/node-esm/NotebookContainer-ZLWTNMQA.mjs.map +7 -0
  59. package/dist/lib/node-esm/ScriptContainer-S4UKQAWP.mjs +94 -0
  60. package/dist/lib/node-esm/ScriptContainer-S4UKQAWP.mjs.map +7 -0
  61. package/dist/lib/node-esm/ScriptObjectSettings-C5QBRERY.mjs +295 -0
  62. package/dist/lib/node-esm/ScriptObjectSettings-C5QBRERY.mjs.map +7 -0
  63. package/dist/lib/node-esm/ScriptPluginSettings-MFACDW4R.mjs +56 -0
  64. package/dist/lib/node-esm/ScriptPluginSettings-MFACDW4R.mjs.map +7 -0
  65. package/dist/lib/node-esm/ScriptProperties-FMNIX3KU.mjs +29 -0
  66. package/dist/lib/node-esm/ScriptProperties-FMNIX3KU.mjs.map +7 -0
  67. package/dist/lib/node-esm/TestContainer-AO45YPGV.mjs +40 -0
  68. package/dist/lib/node-esm/TestContainer-AO45YPGV.mjs.map +7 -0
  69. package/dist/lib/node-esm/app-graph-builder-IGAZTJ45.mjs +70 -0
  70. package/dist/lib/node-esm/app-graph-builder-IGAZTJ45.mjs.map +7 -0
  71. package/dist/lib/node-esm/blueprint-definition-5MGY6BRQ.mjs +18 -0
  72. package/dist/lib/node-esm/blueprint-definition-5MGY6BRQ.mjs.map +7 -0
  73. package/dist/lib/node-esm/blueprints/index.mjs +9 -0
  74. package/dist/lib/node-esm/blueprints/index.mjs.map +7 -0
  75. package/dist/lib/node-esm/chunk-5BG7OJGQ.mjs +176 -0
  76. package/dist/lib/node-esm/chunk-5BG7OJGQ.mjs.map +7 -0
  77. package/dist/lib/node-esm/{chunk-OG2SIKHE.mjs → chunk-5HSJPAK7.mjs} +7 -2
  78. package/dist/lib/node-esm/chunk-5HSJPAK7.mjs.map +7 -0
  79. package/dist/lib/node-esm/chunk-H46R2RS5.mjs +790 -0
  80. package/dist/lib/node-esm/chunk-H46R2RS5.mjs.map +7 -0
  81. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  82. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  83. package/dist/lib/node-esm/chunk-JGN7TDJH.mjs +69 -0
  84. package/dist/lib/node-esm/chunk-JGN7TDJH.mjs.map +7 -0
  85. package/dist/lib/node-esm/{chunk-2GVTWESW.mjs → chunk-QG6ANK4B.mjs} +29 -12
  86. package/dist/lib/node-esm/chunk-QG6ANK4B.mjs.map +7 -0
  87. package/dist/lib/node-esm/chunk-S7DSCLOW.mjs +31 -0
  88. package/dist/lib/node-esm/chunk-S7DSCLOW.mjs.map +7 -0
  89. package/dist/lib/node-esm/chunk-TZ2EBTPQ.mjs +22 -0
  90. package/dist/lib/node-esm/chunk-TZ2EBTPQ.mjs.map +7 -0
  91. package/dist/lib/node-esm/chunk-UFBVE33O.mjs +12 -0
  92. package/dist/lib/node-esm/chunk-UFBVE33O.mjs.map +7 -0
  93. package/dist/lib/node-esm/chunk-WWD5LUU6.mjs +114 -0
  94. package/dist/lib/node-esm/chunk-WWD5LUU6.mjs.map +7 -0
  95. package/dist/lib/node-esm/chunk-ZDJ2FI7E.mjs +398 -0
  96. package/dist/lib/node-esm/chunk-ZDJ2FI7E.mjs.map +7 -0
  97. package/dist/lib/node-esm/compiler-HHQW7EP3.mjs +100 -0
  98. package/dist/lib/node-esm/compiler-HHQW7EP3.mjs.map +7 -0
  99. package/dist/lib/node-esm/index.mjs +111 -140
  100. package/dist/lib/node-esm/index.mjs.map +4 -4
  101. package/dist/lib/node-esm/meta.json +1 -1
  102. package/dist/lib/node-esm/operation-resolver-HFFDXWND.mjs +80 -0
  103. package/dist/lib/node-esm/operation-resolver-HFFDXWND.mjs.map +7 -0
  104. package/dist/lib/node-esm/react-surface-THCIK266.mjs +142 -0
  105. package/dist/lib/node-esm/react-surface-THCIK266.mjs.map +7 -0
  106. package/dist/lib/node-esm/settings-CCHDPLFJ.mjs +37 -0
  107. package/dist/lib/node-esm/settings-CCHDPLFJ.mjs.map +7 -0
  108. package/dist/lib/node-esm/templates/index.mjs +2 -1
  109. package/dist/lib/node-esm/types/index.mjs +12 -7
  110. package/dist/types/src/ScriptPlugin.d.ts +2 -1
  111. package/dist/types/src/ScriptPlugin.d.ts.map +1 -1
  112. package/dist/types/src/blueprints/index.d.ts +2 -0
  113. package/dist/types/src/blueprints/index.d.ts.map +1 -0
  114. package/dist/types/src/blueprints/script-blueprint.d.ts +4 -0
  115. package/dist/types/src/blueprints/script-blueprint.d.ts.map +1 -0
  116. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +6 -0
  117. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -0
  118. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +3 -0
  119. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +1 -0
  120. package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts +12 -0
  121. package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts.map +1 -0
  122. package/dist/types/src/capabilities/artifact-definition/index.d.ts +3 -0
  123. package/dist/types/src/capabilities/artifact-definition/index.d.ts.map +1 -0
  124. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +6 -0
  125. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +1 -0
  126. package/dist/types/src/capabilities/blueprint-definition/index.d.ts +3 -0
  127. package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +1 -0
  128. package/dist/types/src/capabilities/compiler/compiler.d.ts +6 -0
  129. package/dist/types/src/capabilities/compiler/compiler.d.ts.map +1 -0
  130. package/dist/types/src/capabilities/compiler/index.d.ts +3 -0
  131. package/dist/types/src/capabilities/compiler/index.d.ts.map +1 -0
  132. package/dist/types/src/capabilities/index.d.ts +6 -7
  133. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  134. package/dist/types/src/capabilities/operation-resolver/index.d.ts +3 -0
  135. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -0
  136. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +5 -0
  137. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -0
  138. package/dist/types/src/capabilities/react-surface/index.d.ts +3 -0
  139. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
  140. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +5 -0
  141. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
  142. package/dist/types/src/capabilities/settings/index.d.ts +7 -0
  143. package/dist/types/src/capabilities/settings/index.d.ts.map +1 -0
  144. package/dist/types/src/capabilities/settings/settings.d.ts +10 -0
  145. package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -0
  146. package/dist/types/src/compiler/compiler.d.ts +1 -1
  147. package/dist/types/src/compiler/compiler.d.ts.map +1 -1
  148. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts +1 -1
  149. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts.map +1 -1
  150. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts +4 -3
  151. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts.map +1 -1
  152. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts +1 -1
  153. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts.map +1 -1
  154. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts +5 -4
  155. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts.map +1 -1
  156. package/dist/types/src/components/QueryEditor/QueryEditor.d.ts +5 -0
  157. package/dist/types/src/components/QueryEditor/QueryEditor.d.ts.map +1 -0
  158. package/dist/types/src/components/QueryEditor/QueryEditor.stories.d.ts +13 -0
  159. package/dist/types/src/components/QueryEditor/QueryEditor.stories.d.ts.map +1 -0
  160. package/dist/types/src/components/QueryEditor/index.d.ts +2 -0
  161. package/dist/types/src/components/QueryEditor/index.d.ts.map +1 -0
  162. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts +8 -8
  163. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts.map +1 -1
  164. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts +5 -4
  165. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts.map +1 -1
  166. package/dist/types/src/components/TestPanel/TestPanel.d.ts.map +1 -1
  167. package/dist/types/src/components/TestPanel/index.d.ts +0 -1
  168. package/dist/types/src/components/TestPanel/index.d.ts.map +1 -1
  169. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts +3 -2
  170. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts.map +1 -1
  171. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts +1 -1
  172. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts.map +1 -1
  173. package/dist/types/src/components/index.d.ts +4 -5
  174. package/dist/types/src/components/index.d.ts.map +1 -1
  175. package/dist/types/src/constants.d.ts +2 -0
  176. package/dist/types/src/constants.d.ts.map +1 -0
  177. package/dist/types/src/{components → containers}/DeploymentDialog/DeploymentDialog.d.ts +2 -4
  178. package/dist/types/src/containers/DeploymentDialog/DeploymentDialog.d.ts.map +1 -0
  179. package/dist/types/src/{components/NotebookContainer.stories.d.ts → containers/DeploymentDialog/DeploymentDialog.stories.d.ts} +7 -6
  180. package/dist/types/src/containers/DeploymentDialog/DeploymentDialog.stories.d.ts.map +1 -0
  181. package/dist/types/src/containers/DeploymentDialog/index.d.ts +3 -0
  182. package/dist/types/src/containers/DeploymentDialog/index.d.ts.map +1 -0
  183. package/dist/types/src/containers/NotebookContainer/NotebookContainer.d.ts +7 -0
  184. package/dist/types/src/containers/NotebookContainer/NotebookContainer.d.ts.map +1 -0
  185. package/dist/types/src/containers/NotebookContainer/NotebookContainer.stories.d.ts +7 -0
  186. package/dist/types/src/containers/NotebookContainer/NotebookContainer.stories.d.ts.map +1 -0
  187. package/dist/types/src/containers/NotebookContainer/index.d.ts +3 -0
  188. package/dist/types/src/containers/NotebookContainer/index.d.ts.map +1 -0
  189. package/dist/types/src/containers/ScriptContainer/ScriptContainer.d.ts +10 -0
  190. package/dist/types/src/containers/ScriptContainer/ScriptContainer.d.ts.map +1 -0
  191. package/dist/types/src/containers/ScriptContainer/index.d.ts +3 -0
  192. package/dist/types/src/containers/ScriptContainer/index.d.ts.map +1 -0
  193. package/dist/types/src/containers/ScriptObjectSettings/ScriptObjectSettings.d.ts +7 -0
  194. package/dist/types/src/containers/ScriptObjectSettings/ScriptObjectSettings.d.ts.map +1 -0
  195. package/dist/types/src/containers/ScriptObjectSettings/index.d.ts +3 -0
  196. package/dist/types/src/containers/ScriptObjectSettings/index.d.ts.map +1 -0
  197. package/dist/types/src/containers/ScriptPluginSettings/ScriptPluginSettings.d.ts +8 -0
  198. package/dist/types/src/containers/ScriptPluginSettings/ScriptPluginSettings.d.ts.map +1 -0
  199. package/dist/types/src/containers/ScriptPluginSettings/index.d.ts +3 -0
  200. package/dist/types/src/containers/ScriptPluginSettings/index.d.ts.map +1 -0
  201. package/dist/types/src/containers/ScriptProperties/ScriptProperties.d.ts +7 -0
  202. package/dist/types/src/containers/ScriptProperties/ScriptProperties.d.ts.map +1 -0
  203. package/dist/types/src/containers/ScriptProperties/index.d.ts +3 -0
  204. package/dist/types/src/containers/ScriptProperties/index.d.ts.map +1 -0
  205. package/dist/types/src/containers/TestContainer/TestContainer.d.ts +8 -0
  206. package/dist/types/src/containers/TestContainer/TestContainer.d.ts.map +1 -0
  207. package/dist/types/src/containers/TestContainer/index.d.ts +3 -0
  208. package/dist/types/src/containers/TestContainer/index.d.ts.map +1 -0
  209. package/dist/types/src/containers/index.d.ts +9 -0
  210. package/dist/types/src/containers/index.d.ts.map +1 -0
  211. package/dist/types/src/e2e/ai.test.d.ts +2 -0
  212. package/dist/types/src/e2e/ai.test.d.ts.map +1 -0
  213. package/dist/types/src/e2e/deploy.test.d.ts +2 -0
  214. package/dist/types/src/e2e/deploy.test.d.ts.map +1 -0
  215. package/dist/types/src/hooks/deploy.d.ts +17 -31
  216. package/dist/types/src/hooks/deploy.d.ts.map +1 -1
  217. package/dist/types/src/hooks/format.d.ts +5 -4
  218. package/dist/types/src/hooks/format.d.ts.map +1 -1
  219. package/dist/types/src/hooks/index.d.ts +1 -0
  220. package/dist/types/src/hooks/index.d.ts.map +1 -1
  221. package/dist/types/src/hooks/template.d.ts +7 -16
  222. package/dist/types/src/hooks/template.d.ts.map +1 -1
  223. package/dist/types/src/hooks/useCompiler.d.ts +7 -0
  224. package/dist/types/src/hooks/useCompiler.d.ts.map +1 -0
  225. package/dist/types/src/hooks/useCreateAndDeployScriptTemplates.d.ts.map +1 -1
  226. package/dist/types/src/hooks/useToolbarState.d.ts +8 -1
  227. package/dist/types/src/hooks/useToolbarState.d.ts.map +1 -1
  228. package/dist/types/src/index.d.ts +2 -1
  229. package/dist/types/src/index.d.ts.map +1 -1
  230. package/dist/types/src/meta.d.ts +2 -2
  231. package/dist/types/src/meta.d.ts.map +1 -1
  232. package/dist/types/src/notebook/compute-graph.d.ts +58 -0
  233. package/dist/types/src/notebook/compute-graph.d.ts.map +1 -0
  234. package/dist/types/src/notebook/compute-graph.test.d.ts +2 -0
  235. package/dist/types/src/notebook/compute-graph.test.d.ts.map +1 -0
  236. package/dist/types/src/notebook/eval.d.ts +1 -1
  237. package/dist/types/src/notebook/eval.d.ts.map +1 -1
  238. package/dist/types/src/notebook/index.d.ts +1 -1
  239. package/dist/types/src/notebook/index.d.ts.map +1 -1
  240. package/dist/types/src/templates/anthropic.d.ts +8 -0
  241. package/dist/types/src/templates/anthropic.d.ts.map +1 -0
  242. package/dist/types/src/templates/chess-bot.d.ts +16 -0
  243. package/dist/types/src/templates/chess-bot.d.ts.map +1 -0
  244. package/dist/types/src/templates/commentary.d.ts +16 -0
  245. package/dist/types/src/templates/commentary.d.ts.map +1 -0
  246. package/dist/types/src/templates/forex-effect.d.ts +4 -1
  247. package/dist/types/src/templates/forex-effect.d.ts.map +1 -1
  248. package/dist/types/src/templates/forex.d.ts +4 -1
  249. package/dist/types/src/templates/forex.d.ts.map +1 -1
  250. package/dist/types/src/templates/index.d.ts +12 -3
  251. package/dist/types/src/templates/index.d.ts.map +1 -1
  252. package/dist/types/src/templates/ping.d.ts +1 -4
  253. package/dist/types/src/templates/ping.d.ts.map +1 -1
  254. package/dist/types/src/testing/data.d.ts +2 -18
  255. package/dist/types/src/testing/data.d.ts.map +1 -1
  256. package/dist/types/src/testing/simulator.test.d.ts +2 -0
  257. package/dist/types/src/testing/simulator.test.d.ts.map +1 -0
  258. package/dist/types/src/translations.d.ts +4 -3
  259. package/dist/types/src/translations.d.ts.map +1 -1
  260. package/dist/types/src/types/Notebook.d.ts +108 -0
  261. package/dist/types/src/types/Notebook.d.ts.map +1 -0
  262. package/dist/types/src/types/actions.d.ts +30 -56
  263. package/dist/types/src/types/actions.d.ts.map +1 -1
  264. package/dist/types/src/types/capabilities.d.ts +12 -0
  265. package/dist/types/src/types/capabilities.d.ts.map +1 -0
  266. package/dist/types/src/types/events.d.ts +5 -0
  267. package/dist/types/src/types/events.d.ts.map +1 -0
  268. package/dist/types/src/types/index.d.ts +4 -1
  269. package/dist/types/src/types/index.d.ts.map +1 -1
  270. package/dist/types/src/types/types.d.ts +6 -0
  271. package/dist/types/src/types/types.d.ts.map +1 -0
  272. package/dist/types/src/util/deploy.d.ts +4 -4
  273. package/dist/types/src/util/deploy.d.ts.map +1 -1
  274. package/dist/types/src/util/functions.d.ts +3 -3
  275. package/dist/types/src/util/functions.d.ts.map +1 -1
  276. package/dist/types/tsconfig.tsbuildinfo +1 -1
  277. package/package.json +114 -82
  278. package/src/ScriptPlugin.tsx +45 -87
  279. package/src/blueprints/index.ts +5 -0
  280. package/src/blueprints/script-blueprint.ts +31 -0
  281. package/src/capabilities/app-graph-builder/app-graph-builder.ts +56 -0
  282. package/src/capabilities/app-graph-builder/index.ts +7 -0
  283. package/src/capabilities/{artifact-definition.ts → artifact-definition/artifact-definition.ts} +97 -95
  284. package/src/capabilities/artifact-definition/index.ts +7 -0
  285. package/src/capabilities/blueprint-definition/blueprint-definition.ts +17 -0
  286. package/src/capabilities/blueprint-definition/index.ts +7 -0
  287. package/src/capabilities/compiler/compiler.ts +103 -0
  288. package/src/capabilities/compiler/index.ts +7 -0
  289. package/src/capabilities/index.ts +6 -10
  290. package/src/capabilities/operation-resolver/index.ts +7 -0
  291. package/src/capabilities/operation-resolver/operation-resolver.ts +75 -0
  292. package/src/capabilities/react-surface/index.ts +7 -0
  293. package/src/capabilities/react-surface/react-surface.tsx +121 -0
  294. package/src/capabilities/settings/index.ts +7 -0
  295. package/src/capabilities/settings/settings.ts +33 -0
  296. package/src/compiler/compiler.ts +10 -3
  297. package/src/components/FrameContainer/FrameContainer.tsx +6 -5
  298. package/src/components/FrameContainer/frame.html +21 -21
  299. package/src/components/NotebookStack/NotebookCell.tsx +85 -87
  300. package/src/components/NotebookStack/NotebookStack.stories.tsx +32 -10
  301. package/src/components/NotebookStack/NotebookStack.tsx +16 -9
  302. package/src/components/QueryEditor/QueryEditor.stories.tsx +102 -0
  303. package/src/components/QueryEditor/QueryEditor.tsx +47 -0
  304. package/src/components/QueryEditor/index.ts +5 -0
  305. package/src/components/ScriptToolbar/ScriptToolbar.stories.tsx +42 -20
  306. package/src/components/ScriptToolbar/ScriptToolbar.tsx +28 -31
  307. package/src/components/TestPanel/TestPanel.tsx +61 -36
  308. package/src/components/TestPanel/index.ts +0 -1
  309. package/src/components/TypescriptEditor/TypescriptEditor.stories.tsx +25 -18
  310. package/src/components/TypescriptEditor/TypescriptEditor.tsx +70 -74
  311. package/src/components/index.ts +4 -9
  312. package/src/constants.ts +7 -0
  313. package/src/containers/DeploymentDialog/DeploymentDialog.stories.tsx +61 -0
  314. package/src/containers/DeploymentDialog/DeploymentDialog.tsx +99 -0
  315. package/src/containers/DeploymentDialog/index.ts +7 -0
  316. package/src/containers/NotebookContainer/NotebookContainer.stories.tsx +87 -0
  317. package/src/containers/NotebookContainer/NotebookContainer.tsx +268 -0
  318. package/src/containers/NotebookContainer/index.ts +7 -0
  319. package/src/containers/ScriptContainer/ScriptContainer.tsx +84 -0
  320. package/src/containers/ScriptContainer/index.ts +7 -0
  321. package/src/{components/Settings → containers/ScriptObjectSettings}/ScriptObjectSettings.tsx +55 -50
  322. package/src/containers/ScriptObjectSettings/index.ts +7 -0
  323. package/src/{components/Settings → containers/ScriptPluginSettings}/ScriptPluginSettings.tsx +19 -14
  324. package/src/containers/ScriptPluginSettings/index.ts +7 -0
  325. package/src/containers/ScriptProperties/ScriptProperties.tsx +33 -0
  326. package/src/containers/ScriptProperties/index.ts +7 -0
  327. package/src/containers/TestContainer/TestContainer.tsx +28 -0
  328. package/src/containers/TestContainer/index.ts +7 -0
  329. package/src/containers/index.ts +13 -0
  330. package/src/e2e/ai.test.ts +92 -0
  331. package/src/e2e/deploy.test.ts +64 -0
  332. package/src/hooks/deploy.ts +43 -35
  333. package/src/hooks/format.ts +8 -3
  334. package/src/hooks/index.ts +1 -0
  335. package/src/hooks/template.ts +22 -26
  336. package/src/hooks/useCompiler.ts +24 -0
  337. package/src/hooks/useCreateAndDeployScriptTemplates.ts +14 -16
  338. package/src/hooks/useToolbarState.ts +29 -4
  339. package/src/index.ts +2 -1
  340. package/src/meta.ts +8 -4
  341. package/src/notebook/{notebook.test.ts → compute-graph.test.ts} +31 -19
  342. package/src/notebook/{notebook.ts → compute-graph.ts} +65 -18
  343. package/src/notebook/eval.ts +1 -1
  344. package/src/notebook/index.ts +1 -1
  345. package/src/templates/anthropic.ts +42 -0
  346. package/src/templates/chess-bot.ts +58 -0
  347. package/src/templates/commentary.ts +231 -0
  348. package/src/templates/data-generator.ts +1 -1
  349. package/src/templates/forex-effect.ts +22 -27
  350. package/src/templates/forex.ts +7 -6
  351. package/src/templates/gmail.ts +1 -2
  352. package/src/templates/index.ts +18 -5
  353. package/src/templates/ping.ts +14 -5
  354. package/src/testing/data.ts +34 -9
  355. package/src/testing/simulator.test.ts +40 -0
  356. package/src/translations.ts +4 -3
  357. package/src/types/Notebook.ts +41 -0
  358. package/src/types/actions.ts +18 -26
  359. package/src/types/capabilities.ts +17 -0
  360. package/src/types/events.ts +11 -0
  361. package/src/types/index.ts +4 -1
  362. package/src/types/types.ts +15 -0
  363. package/src/util/deploy.ts +30 -40
  364. package/src/util/functions.ts +32 -28
  365. package/src/vite-env.d.ts +2 -0
  366. package/dist/lib/browser/DeploymentDialog-65TWT6S5.mjs +0 -13
  367. package/dist/lib/browser/NotebookContainer-LVGRPFY3.mjs.map +0 -7
  368. package/dist/lib/browser/ScriptContainer-LRTRN7JW.mjs +0 -149
  369. package/dist/lib/browser/ScriptContainer-LRTRN7JW.mjs.map +0 -7
  370. package/dist/lib/browser/app-graph-builder-DPYULSME.mjs +0 -65
  371. package/dist/lib/browser/app-graph-builder-DPYULSME.mjs.map +0 -7
  372. package/dist/lib/browser/blueprint-definition-ET5KZ46I.mjs +0 -28
  373. package/dist/lib/browser/blueprint-definition-ET5KZ46I.mjs.map +0 -7
  374. package/dist/lib/browser/chunk-5CYLWXRH.mjs +0 -89
  375. package/dist/lib/browser/chunk-5CYLWXRH.mjs.map +0 -7
  376. package/dist/lib/browser/chunk-75LH4EUR.mjs +0 -326
  377. package/dist/lib/browser/chunk-75LH4EUR.mjs.map +0 -7
  378. package/dist/lib/browser/chunk-E7DXDICD.mjs +0 -282
  379. package/dist/lib/browser/chunk-E7DXDICD.mjs.map +0 -7
  380. package/dist/lib/browser/chunk-EZVXV6DA.mjs.map +0 -7
  381. package/dist/lib/browser/chunk-I3QSGUFJ.mjs +0 -646
  382. package/dist/lib/browser/chunk-I3QSGUFJ.mjs.map +0 -7
  383. package/dist/lib/browser/chunk-JO2O7W6J.mjs +0 -254
  384. package/dist/lib/browser/chunk-JO2O7W6J.mjs.map +0 -7
  385. package/dist/lib/browser/chunk-N6M34EUC.mjs +0 -112
  386. package/dist/lib/browser/chunk-N6M34EUC.mjs.map +0 -7
  387. package/dist/lib/browser/chunk-NM4WQS4F.mjs +0 -153
  388. package/dist/lib/browser/chunk-NM4WQS4F.mjs.map +0 -7
  389. package/dist/lib/browser/chunk-OKXN2N7M.mjs +0 -15
  390. package/dist/lib/browser/chunk-OKXN2N7M.mjs.map +0 -7
  391. package/dist/lib/browser/chunk-ST3ACVUC.mjs.map +0 -7
  392. package/dist/lib/browser/compiler-G2N2CG63.mjs +0 -98
  393. package/dist/lib/browser/compiler-G2N2CG63.mjs.map +0 -7
  394. package/dist/lib/browser/intent-resolver-JLU7DVLQ.mjs +0 -105
  395. package/dist/lib/browser/intent-resolver-JLU7DVLQ.mjs.map +0 -7
  396. package/dist/lib/browser/react-surface-76SDTUYG.mjs +0 -127
  397. package/dist/lib/browser/react-surface-76SDTUYG.mjs.map +0 -7
  398. package/dist/lib/browser/settings-ERFKVNUK.mjs +0 -25
  399. package/dist/lib/browser/settings-ERFKVNUK.mjs.map +0 -7
  400. package/dist/lib/node-esm/DeploymentDialog-I63ZC2HH.mjs +0 -14
  401. package/dist/lib/node-esm/NotebookContainer-QY5NJGJI.mjs.map +0 -7
  402. package/dist/lib/node-esm/ScriptContainer-SVXCSLNH.mjs +0 -150
  403. package/dist/lib/node-esm/ScriptContainer-SVXCSLNH.mjs.map +0 -7
  404. package/dist/lib/node-esm/app-graph-builder-UXJGHXSL.mjs +0 -66
  405. package/dist/lib/node-esm/app-graph-builder-UXJGHXSL.mjs.map +0 -7
  406. package/dist/lib/node-esm/blueprint-definition-AIYFOT7Q.mjs +0 -30
  407. package/dist/lib/node-esm/blueprint-definition-AIYFOT7Q.mjs.map +0 -7
  408. package/dist/lib/node-esm/chunk-2GVTWESW.mjs.map +0 -7
  409. package/dist/lib/node-esm/chunk-4X375PGY.mjs +0 -90
  410. package/dist/lib/node-esm/chunk-4X375PGY.mjs.map +0 -7
  411. package/dist/lib/node-esm/chunk-67OVZHI3.mjs +0 -327
  412. package/dist/lib/node-esm/chunk-67OVZHI3.mjs.map +0 -7
  413. package/dist/lib/node-esm/chunk-C2ORIPKH.mjs +0 -154
  414. package/dist/lib/node-esm/chunk-C2ORIPKH.mjs.map +0 -7
  415. package/dist/lib/node-esm/chunk-NUXZQQ6P.mjs +0 -16
  416. package/dist/lib/node-esm/chunk-NUXZQQ6P.mjs.map +0 -7
  417. package/dist/lib/node-esm/chunk-OG2SIKHE.mjs.map +0 -7
  418. package/dist/lib/node-esm/chunk-SMFPSKQT.mjs +0 -647
  419. package/dist/lib/node-esm/chunk-SMFPSKQT.mjs.map +0 -7
  420. package/dist/lib/node-esm/chunk-VRSDE4CI.mjs +0 -114
  421. package/dist/lib/node-esm/chunk-VRSDE4CI.mjs.map +0 -7
  422. package/dist/lib/node-esm/chunk-VZAFGLD7.mjs +0 -283
  423. package/dist/lib/node-esm/chunk-VZAFGLD7.mjs.map +0 -7
  424. package/dist/lib/node-esm/chunk-YW36TZ7K.mjs +0 -255
  425. package/dist/lib/node-esm/chunk-YW36TZ7K.mjs.map +0 -7
  426. package/dist/lib/node-esm/compiler-PLDAZ5GJ.mjs +0 -99
  427. package/dist/lib/node-esm/compiler-PLDAZ5GJ.mjs.map +0 -7
  428. package/dist/lib/node-esm/intent-resolver-SFGTIFOG.mjs +0 -106
  429. package/dist/lib/node-esm/intent-resolver-SFGTIFOG.mjs.map +0 -7
  430. package/dist/lib/node-esm/react-surface-SHEBNW4R.mjs +0 -128
  431. package/dist/lib/node-esm/react-surface-SHEBNW4R.mjs.map +0 -7
  432. package/dist/lib/node-esm/settings-5TYXQ42N.mjs +0 -26
  433. package/dist/lib/node-esm/settings-5TYXQ42N.mjs.map +0 -7
  434. package/dist/types/src/capabilities/app-graph-builder.d.ts +0 -4
  435. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +0 -1
  436. package/dist/types/src/capabilities/artifact-definition.d.ts +0 -11
  437. package/dist/types/src/capabilities/artifact-definition.d.ts.map +0 -1
  438. package/dist/types/src/capabilities/blueprint-definition.d.ts +0 -5
  439. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +0 -1
  440. package/dist/types/src/capabilities/capabilities.d.ts +0 -5
  441. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  442. package/dist/types/src/capabilities/compiler.d.ts +0 -4
  443. package/dist/types/src/capabilities/compiler.d.ts.map +0 -1
  444. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  445. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  446. package/dist/types/src/capabilities/react-surface.d.ts +0 -4
  447. package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
  448. package/dist/types/src/capabilities/settings.d.ts +0 -4
  449. package/dist/types/src/capabilities/settings.d.ts.map +0 -1
  450. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.d.ts.map +0 -1
  451. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts +0 -251
  452. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts.map +0 -1
  453. package/dist/types/src/components/DeploymentDialog/index.d.ts +0 -4
  454. package/dist/types/src/components/DeploymentDialog/index.d.ts.map +0 -1
  455. package/dist/types/src/components/NotebookContainer.d.ts +0 -10
  456. package/dist/types/src/components/NotebookContainer.d.ts.map +0 -1
  457. package/dist/types/src/components/NotebookContainer.stories.d.ts.map +0 -1
  458. package/dist/types/src/components/ScriptContainer.d.ts +0 -12
  459. package/dist/types/src/components/ScriptContainer.d.ts.map +0 -1
  460. package/dist/types/src/components/Settings/ScriptObjectSettings.d.ts +0 -8
  461. package/dist/types/src/components/Settings/ScriptObjectSettings.d.ts.map +0 -1
  462. package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts +0 -6
  463. package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts.map +0 -1
  464. package/dist/types/src/components/Settings/index.d.ts +0 -3
  465. package/dist/types/src/components/Settings/index.d.ts.map +0 -1
  466. package/dist/types/src/components/TestPanel/TestContainer.d.ts +0 -8
  467. package/dist/types/src/components/TestPanel/TestContainer.d.ts.map +0 -1
  468. package/dist/types/src/events.d.ts +0 -4
  469. package/dist/types/src/events.d.ts.map +0 -1
  470. package/dist/types/src/notebook/notebook.d.ts +0 -35
  471. package/dist/types/src/notebook/notebook.d.ts.map +0 -1
  472. package/dist/types/src/notebook/notebook.test.d.ts +0 -2
  473. package/dist/types/src/notebook/notebook.test.d.ts.map +0 -1
  474. package/dist/types/src/templates/chess.d.ts +0 -3
  475. package/dist/types/src/templates/chess.d.ts.map +0 -1
  476. package/dist/types/src/types/schema.d.ts +0 -61
  477. package/dist/types/src/types/schema.d.ts.map +0 -1
  478. package/src/capabilities/app-graph-builder.ts +0 -65
  479. package/src/capabilities/blueprint-definition.ts +0 -30
  480. package/src/capabilities/capabilities.ts +0 -12
  481. package/src/capabilities/compiler.ts +0 -34
  482. package/src/capabilities/intent-resolver.ts +0 -87
  483. package/src/capabilities/react-surface.tsx +0 -102
  484. package/src/capabilities/settings.ts +0 -21
  485. package/src/components/DeploymentDialog/DeploymentDialog.stories.tsx +0 -53
  486. package/src/components/DeploymentDialog/DeploymentDialog.tsx +0 -106
  487. package/src/components/DeploymentDialog/index.ts +0 -9
  488. package/src/components/NotebookContainer.stories.tsx +0 -32
  489. package/src/components/NotebookContainer.tsx +0 -124
  490. package/src/components/ScriptContainer.tsx +0 -69
  491. package/src/components/Settings/index.ts +0 -6
  492. package/src/components/TestPanel/TestContainer.tsx +0 -27
  493. package/src/events.ts +0 -11
  494. package/src/templates/chess.ts +0 -49
  495. package/src/types/schema.ts +0 -48
  496. /package/dist/lib/browser/{DeploymentDialog-65TWT6S5.mjs.map → blueprints/index.mjs.map} +0 -0
  497. /package/dist/lib/{node-esm/DeploymentDialog-I63ZC2HH.mjs.map → browser/chunk-J5LGTIGS.mjs.map} +0 -0
@@ -5,10 +5,11 @@
5
5
  // ISSUE(burdon): defineArtifact
6
6
  // @ts-nocheck
7
7
 
8
+ import * as Effect from 'effect/Effect';
8
9
  import * as Schema from 'effect/Schema';
9
10
 
10
11
  import { ToolResult, createTool } from '@dxos/ai';
11
- import { Capabilities, type PromiseIntentDispatcher, contributes, createIntent } from '@dxos/app-framework';
12
+ import { Capabilities, Capability, type PromiseIntentDispatcher, createIntent } from '@dxos/app-framework';
12
13
  import { ArtifactId, createArtifactElement } from '@dxos/assistant';
13
14
  import { defineArtifact } from '@dxos/blueprints';
14
15
  import { Filter, Obj, Ref } from '@dxos/echo';
@@ -16,9 +17,8 @@ import { ScriptType } from '@dxos/functions';
16
17
  import { invariant } from '@dxos/invariant';
17
18
  import { SpaceAction } from '@dxos/plugin-space/types';
18
19
  import { type Space } from '@dxos/react-client/echo';
19
- import { DataType } from '@dxos/schema';
20
20
 
21
- import { meta } from '../meta';
21
+ import { meta } from '../../meta';
22
22
 
23
23
  // TODO(burdon): Factor out.
24
24
  declare global {
@@ -28,14 +28,15 @@ declare global {
28
28
  }
29
29
  }
30
30
 
31
- export default () => {
32
- const definition = defineArtifact({
33
- id: `artifact:${meta.id}`,
34
- name: meta.name,
35
- // TODO(dmaretskyi): Since writing scripts requires a lot of domain knowledge,
36
- // we should offload the work of synthesizing the code to a separate model.
37
- // The main reasoning model will give it a concrete task and the script model will synthesize the code, knowing all the docs.
38
- instructions: `
31
+ export default Capability.makeModule(() =>
32
+ Effect.sync(() => {
33
+ const definition = defineArtifact({
34
+ id: `artifact:${meta.id}`,
35
+ name: meta.name,
36
+ // TODO(dmaretskyi): Since writing scripts requires a lot of domain knowledge,
37
+ // we should offload the work of synthesizing the code to a separate model.
38
+ // The main reasoning model will give it a concrete task and the script model will synthesize the code, knowing all the docs.
39
+ instructions: `
39
40
  If the user explicitly requests you to write a script, you can create one.
40
41
  If the user requests you to change one of the existing script, you can update it.
41
42
  You must not create a script unless the user explicitly requests it.
@@ -55,7 +56,7 @@ export default () => {
55
56
  The description is used by AI to understand the script and its purpose.
56
57
  The description must provide cases on when the script should be used.
57
58
 
58
- Schema:
59
+ Schema:
59
60
  The schema is defined using a schema-DSL library called Effect Schema.
60
61
  The input schema describes the arguments that the script accepts.
61
62
  The output schema describes the result that the script produces.
@@ -76,18 +77,18 @@ export default () => {
76
77
  - Detailed output schema
77
78
 
78
79
  <apis>
79
- export function defineFunction(params: {
80
- description: string,
81
- inputSchema: Schema.Schema,
82
- outputSchema: Schema.Schema,
83
- handler: (params: { event: { data: TInput } }) => Promise<TOutput>
80
+ export function defineFunction(params: {
81
+ description: string,
82
+ inputSchema: Schema.Schema,
83
+ outputSchema: Schema.Schema,
84
+ handler: (params: { event: { data: TInput } }) => Promise<TOutput>
84
85
  }): FunctionDefinition
85
86
  /**
86
87
  * Effect Schema
87
88
  */
88
- export const Schema;
89
+ export const Schema;
89
90
 
90
- // Examples:
91
+ // Examples:
91
92
 
92
93
  Schema.String
93
94
  Schema.Number
@@ -105,7 +106,7 @@ export default () => {
105
106
  <handler_function>
106
107
  Async function that takes the argument in the form of:
107
108
 
108
- type HandlerFunctionParam = {
109
+ type HandlerFunctionProp = {
109
110
  event: {
110
111
  data: T // The input schema
111
112
  },
@@ -113,7 +114,7 @@ export default () => {
113
114
 
114
115
  The function must return the result that matches the output schema.
115
116
  </handler_function>
116
-
117
+
117
118
  <example>
118
119
  import { defineFunction, S } from 'dxos:functions';
119
120
 
@@ -144,82 +145,83 @@ export default () => {
144
145
  });
145
146
  </example>
146
147
  `,
147
- schema: ScriptType,
148
- tools: [
149
- createTool(meta.id, {
150
- name: 'create',
151
- description: 'Create a new script. Returns the artifact definition for the script',
152
- caption: 'Creating script...',
153
- schema: Schema.Struct({
154
- name: Schema.String.annotations({ description: 'The name of the script' }),
155
- code: Schema.String.annotations({
156
- description: 'The full code of the script in JavaScript or TypeScript. Must be valid executable code.',
148
+ schema: ScriptType,
149
+ tools: [
150
+ createTool(meta.id, {
151
+ name: 'create',
152
+ description: 'Create a new script. Returns the artifact definition for the script',
153
+ caption: 'Creating script...',
154
+ schema: Schema.Struct({
155
+ name: Schema.String.annotations({ description: 'The name of the script' }),
156
+ code: Schema.String.annotations({
157
+ description: 'The full code of the script in JavaScript or TypeScript. Must be valid executable code.',
158
+ }),
157
159
  }),
160
+ execute: async ({ name, code }, { extensions }) => {
161
+ invariant(extensions?.space, 'No space');
162
+ invariant(extensions?.dispatch, 'No intent dispatcher');
163
+ const script = Obj.make(ScriptType, { name, source: Ref.make(Text.make(code)) });
164
+ extensions.space.db.add(script);
165
+ await extensions.space.db.flush();
166
+
167
+ const intent = createIntent(SpaceAction.AddObject, { target: extensions.space, object: script });
168
+ const { data, error } = await extensions.dispatch(intent);
169
+ if (!data || error) {
170
+ return ToolResult.Error(error?.message ?? 'Failed to create chess game');
171
+ }
172
+
173
+ return ToolResult.Success(createArtifactElement(script.id));
174
+ },
158
175
  }),
159
- execute: async ({ name, code }, { extensions }) => {
160
- invariant(extensions?.space, 'No space');
161
- invariant(extensions?.dispatch, 'No intent dispatcher');
162
- const script = Obj.make(ScriptType, { name, source: Ref.make(DataType.makeText(code)) });
163
- extensions.space.db.add(script);
164
- await extensions.space.db.flush();
165
-
166
- const intent = createIntent(SpaceAction.AddObject, { target: extensions.space, object: script });
167
- const { data, error } = await extensions.dispatch(intent);
168
- if (!data || error) {
169
- return ToolResult.Error(error?.message ?? 'Failed to create chess game');
170
- }
171
-
172
- return ToolResult.Success(createArtifactElement(script.id));
173
- },
174
- }),
175
- createTool(meta.id, {
176
- name: 'inspect',
177
- description: 'Inspect a script. Returns the artifact definition for the script',
178
- caption: 'Inspecting script...',
179
- schema: Schema.Struct({
180
- id: ArtifactId,
176
+ createTool(meta.id, {
177
+ name: 'inspect',
178
+ description: 'Inspect a script. Returns the artifact definition for the script',
179
+ caption: 'Inspecting script...',
180
+ schema: Schema.Struct({
181
+ id: ArtifactId,
182
+ }),
183
+ execute: async ({ id }, { extensions }) => {
184
+ invariant(extensions?.space, 'No space');
185
+
186
+ const script = (await extensions.space.db.query(Filter.id(id)).first()) as ScriptType;
187
+ const { content } = await script.source.load();
188
+
189
+ return ToolResult.Success({
190
+ name: script.name,
191
+ code: content,
192
+ });
193
+ },
181
194
  }),
182
- execute: async ({ id }, { extensions }) => {
183
- invariant(extensions?.space, 'No space');
184
-
185
- const script = (await extensions.space.db.query(Filter.ids(id)).first()) as ScriptType;
186
- const { content } = await script.source.load();
187
-
188
- return ToolResult.Success({
189
- name: script.name,
190
- code: content,
191
- });
192
- },
193
- }),
194
- createTool(meta.id, {
195
- name: 'update',
196
- description: 'Update a script. Returns the artifact definition for the script',
197
- caption: 'Updating script...',
198
- schema: Schema.Struct({
199
- id: ArtifactId,
200
- code: Schema.String.annotations({
201
- description: 'The full code of the script in JavaScript or TypeScript. Must be valid executable code.',
195
+ createTool(meta.id, {
196
+ name: 'update',
197
+ description: 'Update a script. Returns the artifact definition for the script',
198
+ caption: 'Updating script...',
199
+ schema: Schema.Struct({
200
+ id: ArtifactId,
201
+ code: Schema.String.annotations({
202
+ description: 'The full code of the script in JavaScript or TypeScript. Must be valid executable code.',
203
+ }),
202
204
  }),
205
+ execute: async ({ id, code }, { extensions }) => {
206
+ invariant(extensions?.space, 'No space');
207
+
208
+ const script = (await extensions.space.db.query(Filter.id(id)).first()) as ScriptType;
209
+ const source = await script.source.load();
210
+ if (!source) {
211
+ return ToolResult.Error('Script not found');
212
+ }
213
+
214
+ source.content = code;
215
+ await extensions.space?.db.flush();
216
+
217
+ return ToolResult.Success({
218
+ name: script.name,
219
+ });
220
+ },
203
221
  }),
204
- execute: async ({ id, code }, { extensions }) => {
205
- invariant(extensions?.space, 'No space');
206
-
207
- const script = (await extensions.space.db.query(Filter.ids(id)).first()) as ScriptType;
208
- const source = await script.source.load();
209
- if (!source) {
210
- return ToolResult.Error('Script not found');
211
- }
212
-
213
- source.content = code;
214
- await extensions.space?.db.flush();
215
-
216
- return ToolResult.Success({
217
- name: script.name,
218
- });
219
- },
220
- }),
221
- ],
222
- });
223
-
224
- return contributes(Capabilities.ArtifactDefinition, definition);
225
- };
222
+ ],
223
+ });
224
+
225
+ return Capability.contributes(Capabilities.ArtifactDefinition, definition);
226
+ }),
227
+ );
@@ -0,0 +1,7 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { Capability } from '@dxos/app-framework';
6
+
7
+ export const ArtifactDefinition = Capability.lazy('ArtifactDefinition', () => import('./artifact-definition'));
@@ -0,0 +1,17 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import * as Effect from 'effect/Effect';
6
+
7
+ import { Capability } from '@dxos/app-framework';
8
+ import { AppCapabilities } from '@dxos/app-toolkit';
9
+
10
+ import { ScriptBlueprint } from '../../blueprints';
11
+
12
+ const blueprintDefinition = Capability.makeModule<
13
+ [],
14
+ Capability.Capability<typeof AppCapabilities.BlueprintDefinition>[]
15
+ >(() => Effect.succeed([Capability.contributes(AppCapabilities.BlueprintDefinition, ScriptBlueprint)]));
16
+
17
+ export default blueprintDefinition;
@@ -0,0 +1,7 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { Capability } from '@dxos/app-framework';
6
+
7
+ export const BlueprintDefinition = Capability.lazy('BlueprintDefinition', () => import('./blueprint-definition'));
@@ -0,0 +1,103 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import * as FetchHttpClient from '@effect/platform/FetchHttpClient';
6
+ import * as HttpClient from '@effect/platform/HttpClient';
7
+ import * as Effect from 'effect/Effect';
8
+ import * as Schedule from 'effect/Schedule';
9
+ import * as Schema from 'effect/Schema';
10
+ import wasmUrl from 'esbuild-wasm/esbuild.wasm?url';
11
+ import * as ts from 'typescript';
12
+
13
+ import { Capability } from '@dxos/app-framework';
14
+ import { initializeBundler } from '@dxos/functions-runtime/bundler';
15
+ import { log } from '@dxos/log';
16
+ import { trim } from '@dxos/util';
17
+
18
+ import { Compiler } from '../../compiler';
19
+ import { ScriptCapabilities } from '../../types';
20
+
21
+ // TODO(burdon): Document.
22
+ const SCRIPT_PACKAGES_BUCKET = 'https://pub-5745ae82e450484aa28f75fc6a175935.r2.dev/dev/';
23
+ const DECLARATION_EXTS = ['.d.ts', '.d.mts'];
24
+ const NO_TYPES = true; // Types temopararly disabled due to compiler erorrs.
25
+
26
+ export default Capability.makeModule(() =>
27
+ Effect.gen(function* () {
28
+ yield* Effect.tryPromise(() => initializeBundler({ wasmUrl }));
29
+
30
+ const runtimeModules = yield* fetchRuntimeModules().pipe(Effect.provide(FetchHttpClient.layer));
31
+
32
+ const compiler = new Compiler({
33
+ skipLibCheck: true,
34
+ moduleResolution: ts.ModuleResolutionKind.Bundler,
35
+ allowImportingTsExtensions: true,
36
+ noEmit: true,
37
+ strict: true,
38
+ esModuleInterop: true,
39
+ paths: Object.fromEntries(runtimeModules.map((mod: any) => [mod.moduleName, [`./src/${mod.filename}`]])),
40
+ });
41
+
42
+ yield* Effect.tryPromise(() =>
43
+ compiler.initialize(trim`
44
+ declare module 'https://*';
45
+ ${NO_TYPES ? '' : 'declare module "*";'}
46
+ `),
47
+ );
48
+ if (!NO_TYPES) {
49
+ for (const mod of runtimeModules) {
50
+ compiler.setFile(`/src/${mod.filename}`, mod.content);
51
+ }
52
+ }
53
+
54
+ return Capability.contributes(ScriptCapabilities.Compiler, compiler);
55
+ }),
56
+ );
57
+
58
+ const fetchRuntimeModules = Effect.fnUntraced(function* () {
59
+ // { key, size, contentType }
60
+ const manifest = yield* HttpClient.get(new URL('manifest.json', SCRIPT_PACKAGES_BUCKET)).pipe(
61
+ Effect.flatMap((_) => _.json),
62
+ Effect.flatMap(
63
+ Schema.decodeUnknown(
64
+ Schema.Struct({
65
+ files: Schema.Array(
66
+ Schema.Struct({
67
+ key: Schema.String,
68
+ }),
69
+ ),
70
+ }),
71
+ ),
72
+ ),
73
+ Effect.map((manifest) => ({ ...manifest, files: manifest.files.map((f) => f.key) })),
74
+ );
75
+
76
+ const declarationFiles = manifest.files.filter((file) => DECLARATION_EXTS.some((ext) => file.endsWith(ext)));
77
+
78
+ let fetched = 0;
79
+ const modules = yield* Effect.forEach(
80
+ declarationFiles,
81
+ Effect.fnUntraced(
82
+ function* (filename) {
83
+ const response = yield* HttpClient.get(new URL(filename, SCRIPT_PACKAGES_BUCKET)).pipe(
84
+ Effect.retry(Schedule.exponential(1_000).pipe(Schedule.compose(Schedule.recurs(3)))),
85
+ );
86
+ const content = yield* response.text;
87
+ const moduleName = filename.replace(/\.d\.(ts|mts)$/, '');
88
+ fetched++;
89
+
90
+ return {
91
+ moduleName,
92
+ filename,
93
+ content,
94
+ };
95
+ },
96
+ Effect.retry(Schedule.exponential(1_000).pipe(Schedule.compose(Schedule.recurs(3)))),
97
+ ),
98
+ { concurrency: 20 },
99
+ );
100
+
101
+ log.info('runtime modules', { manifest: manifest.files.length, files: declarationFiles.length, fetched });
102
+ return modules;
103
+ });
@@ -0,0 +1,7 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { Capability } from '@dxos/app-framework';
6
+
7
+ export const Compiler = Capability.lazy('Compiler', () => import('./compiler'));
@@ -2,13 +2,9 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { lazy } from '@dxos/app-framework';
6
-
7
- export const AppGraphBuilder = lazy(() => import('./app-graph-builder'));
8
- export const BlueprintDefinition = lazy(() => import('./blueprint-definition'));
9
- export const Compiler = lazy(() => import('./compiler'));
10
- export const IntentResolver = lazy(() => import('./intent-resolver'));
11
- export const ReactSurface = lazy(() => import('./react-surface'));
12
- export const ScriptSettings = lazy(() => import('./settings'));
13
-
14
- export * from './capabilities';
5
+ export * from './app-graph-builder';
6
+ export * from './blueprint-definition';
7
+ export * from './compiler';
8
+ export * from './operation-resolver';
9
+ export * from './react-surface';
10
+ export * from './settings';
@@ -0,0 +1,7 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { Capability } from '@dxos/app-framework';
6
+
7
+ export const OperationResolver = Capability.lazy('OperationResolver', () => import('./operation-resolver'));
@@ -0,0 +1,75 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { Octokit } from '@octokit/core';
6
+ import * as Effect from 'effect/Effect';
7
+ import * as Predicate from 'effect/Predicate';
8
+
9
+ import { Capabilities, Capability } from '@dxos/app-framework';
10
+ import { LayoutOperation } from '@dxos/app-toolkit';
11
+ import { Script } from '@dxos/functions';
12
+ import { Operation, OperationResolver } from '@dxos/operation';
13
+ import { TokenManagerOperation } from '@dxos/plugin-token-manager/types';
14
+
15
+ import { DEPLOYMENT_DIALOG } from '../../constants';
16
+ import { defaultScriptsForIntegration } from '../../meta';
17
+ import { templates } from '../../templates';
18
+ import { ScriptOperation } from '../../types';
19
+
20
+ export default Capability.makeModule(
21
+ Effect.fnUntraced(function* () {
22
+ return Capability.contributes(Capabilities.OperationResolver, [
23
+ OperationResolver.make({
24
+ operation: ScriptOperation.CreateScript,
25
+ handler: Effect.fnUntraced(function* ({ name, gistUrl, initialTemplateId }) {
26
+ let source = templates[0].source;
27
+ let scriptName = name;
28
+
29
+ const gistId = gistUrl?.split('/').at(-1);
30
+ if (gistId) {
31
+ // TODO(wittjosiah): Capability which contributes Octokit?
32
+ // NOTE: AccessToken not needed to read public gists.
33
+ const octokit = new Octokit();
34
+ const response = yield* Effect.promise(() =>
35
+ octokit.request('GET /gists/{gist_id}', {
36
+ gist_id: gistId,
37
+ }),
38
+ );
39
+ const gistContent = Object.values(response.data.files ?? {})[0]?.content;
40
+ if (gistContent) {
41
+ source = gistContent;
42
+ }
43
+ }
44
+
45
+ if (initialTemplateId) {
46
+ const template = templates.find((template) => template.id === initialTemplateId);
47
+ if (template) {
48
+ source = template.source;
49
+ scriptName = scriptName || template.name;
50
+ }
51
+ }
52
+
53
+ return { object: Script.make({ name: scriptName, source }) };
54
+ }),
55
+ }),
56
+ OperationResolver.make({
57
+ operation: TokenManagerOperation.AccessTokenCreated,
58
+ handler: Effect.fnUntraced(function* ({ accessToken }) {
59
+ const scriptTemplates = (defaultScriptsForIntegration[accessToken.source] ?? [])
60
+ .map((id) => templates.find((t) => t.id === id))
61
+ .filter(Predicate.isNotNullable);
62
+
63
+ if (scriptTemplates.length > 0) {
64
+ yield* Operation.invoke(LayoutOperation.UpdateDialog, {
65
+ subject: DEPLOYMENT_DIALOG,
66
+ blockAlign: 'start',
67
+ state: true,
68
+ props: { accessToken, scriptTemplates },
69
+ });
70
+ }
71
+ }),
72
+ }),
73
+ ]);
74
+ }),
75
+ );
@@ -0,0 +1,7 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { Capability } from '@dxos/app-framework';
6
+
7
+ export const ReactSurface = Capability.lazy('ReactSurface', () => import('./react-surface'));
@@ -0,0 +1,121 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import * as Effect from 'effect/Effect';
6
+ import React from 'react';
7
+
8
+ import { Capabilities, Capability } from '@dxos/app-framework';
9
+ import { Surface, useAtomCapability, useSettingsState } from '@dxos/app-framework/ui';
10
+ import { AppCapabilities } from '@dxos/app-toolkit';
11
+ import { InvocationTraceContainer } from '@dxos/devtools';
12
+ import { Obj } from '@dxos/echo';
13
+ import { Script } from '@dxos/functions';
14
+ import { getSpace } from '@dxos/react-client/echo';
15
+ import { Panel } from '@dxos/react-ui';
16
+ import { type AccessToken } from '@dxos/types';
17
+
18
+ import { DEPLOYMENT_DIALOG } from '../../constants';
19
+ import {
20
+ DeploymentDialog,
21
+ NotebookContainer,
22
+ ScriptContainer,
23
+ ScriptObjectSettings,
24
+ ScriptPluginSettings,
25
+ ScriptProperties,
26
+ TestContainer,
27
+ } from '../../containers';
28
+ import { useCompiler } from '../../hooks';
29
+ import { meta } from '../../meta';
30
+ import { Notebook, ScriptCapabilities, type ScriptSettings } from '../../types';
31
+
32
+ export default Capability.makeModule(() =>
33
+ Effect.succeed(
34
+ Capability.contributes(Capabilities.ReactSurface, [
35
+ Surface.create({
36
+ id: `${meta.id}/plugin-settings`,
37
+ role: 'article',
38
+ filter: (data): data is { subject: AppCapabilities.Settings } =>
39
+ AppCapabilities.isSettings(data.subject) && data.subject.prefix === meta.id,
40
+ component: ({ data: { subject } }) => {
41
+ const { settings, updateSettings } = useSettingsState<ScriptSettings>(subject.atom);
42
+ return <ScriptPluginSettings settings={settings} onSettingsChange={updateSettings} />;
43
+ },
44
+ }),
45
+ Surface.create({
46
+ id: `${meta.id}/script/article`,
47
+ role: ['article', 'section'],
48
+ filter: (data): data is { subject: Script.Script } => Obj.instanceOf(Script.Script, data.subject),
49
+ component: ({ data, role }) => {
50
+ const compiler = useCompiler();
51
+ const settings = useAtomCapability(ScriptCapabilities.Settings);
52
+ // TODO(wittjosiah): Why? The editor should be allow to render even if the environment is not ready.
53
+ if (!compiler?.environment) {
54
+ return null;
55
+ }
56
+
57
+ return <ScriptContainer role={role} subject={data.subject} settings={settings} env={compiler?.environment} />;
58
+ },
59
+ }),
60
+ Surface.create({
61
+ id: `${meta.id}/notebook/article`,
62
+ role: 'article',
63
+ filter: (data): data is { subject: Notebook.Notebook } => Obj.instanceOf(Notebook.Notebook, data.subject),
64
+ component: ({ data, role }) => {
65
+ const compiler = useCompiler();
66
+ return <NotebookContainer role={role} subject={data.subject} env={compiler?.environment} />;
67
+ },
68
+ }),
69
+ // TODO(burdon): Standardize PluginSettings vs ObjectSettings.
70
+ // TODO(burdon): Why is ScriptProperties different from ScriptObjectSettings?
71
+ Surface.create({
72
+ id: `${meta.id}/companion/base-settings`,
73
+ role: 'base-object-settings',
74
+ filter: (data): data is { subject: Script.Script } => Obj.instanceOf(Script.Script, data.subject),
75
+ component: ({ data }) => <ScriptProperties object={data.subject} />,
76
+ }),
77
+ Surface.create({
78
+ id: `${meta.id}/companion/settings`,
79
+ role: 'object-settings',
80
+ filter: (data): data is { subject: Script.Script } => Obj.instanceOf(Script.Script, data.subject),
81
+ component: ({ data }) => <ScriptObjectSettings object={data.subject} />,
82
+ }),
83
+ Surface.create({
84
+ id: `${meta.id}/companion/execute`,
85
+ role: 'article',
86
+ filter: (data): data is { companionTo: Script.Script } =>
87
+ Obj.instanceOf(Script.Script, data.companionTo) && data.subject === 'execute',
88
+ component: ({ data, role }) => <TestContainer script={data.companionTo} role={role} />,
89
+ }),
90
+ Surface.create({
91
+ id: `${meta.id}/companion/logs`,
92
+ role: 'article',
93
+ filter: (data): data is { companionTo: Script.Script } =>
94
+ Obj.instanceOf(Script.Script, data.companionTo) && data.subject === 'logs',
95
+ component: ({ data, role }) => {
96
+ const space = getSpace(data.companionTo);
97
+ const queueDxn = space?.properties.invocationTraceQueue?.dxn;
98
+ return (
99
+ <Panel.Root role={role}>
100
+ <Panel.Content asChild>
101
+ <InvocationTraceContainer
102
+ db={space?.db}
103
+ queueDxn={queueDxn}
104
+ target={data.companionTo}
105
+ detailAxis='block'
106
+ />
107
+ </Panel.Content>
108
+ </Panel.Root>
109
+ );
110
+ },
111
+ }),
112
+ Surface.create({
113
+ id: DEPLOYMENT_DIALOG,
114
+ role: 'dialog',
115
+ filter: (data): data is { props: { accessToken: AccessToken.AccessToken; scriptTemplates: any } } =>
116
+ data.component === DEPLOYMENT_DIALOG,
117
+ component: ({ data }) => <DeploymentDialog {...data.props} />,
118
+ }),
119
+ ]),
120
+ ),
121
+ );
@@ -0,0 +1,7 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { Capability } from '@dxos/app-framework';
6
+
7
+ export const ScriptSettings = Capability.lazy('ScriptSettings', () => import('./settings'));