@dxos/plugin-script 0.8.4-main.3c1ae3b → 0.8.4-main.3fbcb4aa9b

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 (540) hide show
  1. package/README.md +15 -13
  2. package/dist/lib/neutral/DeploymentDialog-6DBF3V6C.mjs +112 -0
  3. package/dist/lib/neutral/DeploymentDialog-6DBF3V6C.mjs.map +7 -0
  4. package/dist/lib/{browser/NotebookContainer-GL2Z5I5Q.mjs → neutral/NotebookContainer-FIAQI3A2.mjs} +242 -299
  5. package/dist/lib/neutral/NotebookContainer-FIAQI3A2.mjs.map +7 -0
  6. package/dist/lib/neutral/ScriptContainer-2OPBAXFB.mjs +79 -0
  7. package/dist/lib/neutral/ScriptContainer-2OPBAXFB.mjs.map +7 -0
  8. package/dist/lib/neutral/ScriptPlugin.mjs +39 -0
  9. package/dist/lib/neutral/ScriptPlugin.mjs.map +7 -0
  10. package/dist/lib/neutral/ScriptPlugin.node.mjs +27 -0
  11. package/dist/lib/neutral/ScriptPlugin.node.mjs.map +7 -0
  12. package/dist/lib/neutral/ScriptPluginSettings-T4JMUSHN.mjs +31 -0
  13. package/dist/lib/neutral/ScriptPluginSettings-T4JMUSHN.mjs.map +7 -0
  14. package/dist/lib/neutral/ScriptProperties-F6NE6M4H.mjs +296 -0
  15. package/dist/lib/neutral/ScriptProperties-F6NE6M4H.mjs.map +7 -0
  16. package/dist/lib/neutral/TestContainer-JNFPLAJX.mjs +44 -0
  17. package/dist/lib/neutral/TestContainer-JNFPLAJX.mjs.map +7 -0
  18. package/dist/lib/neutral/access-token-created-ENMCEGVU.mjs +34 -0
  19. package/dist/lib/neutral/access-token-created-ENMCEGVU.mjs.map +7 -0
  20. package/dist/lib/neutral/app-graph-builder-7AWFCEQF.mjs +52 -0
  21. package/dist/lib/neutral/app-graph-builder-7AWFCEQF.mjs.map +7 -0
  22. package/dist/lib/neutral/blueprint-definition-T33SBPP2.mjs +15 -0
  23. package/dist/lib/neutral/blueprint-definition-T33SBPP2.mjs.map +7 -0
  24. package/dist/lib/neutral/blueprints/index.mjs +10 -0
  25. package/dist/lib/neutral/capabilities/index.mjs +21 -0
  26. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  27. package/dist/lib/neutral/capabilities/node.mjs +17 -0
  28. package/dist/lib/neutral/capabilities/node.mjs.map +7 -0
  29. package/dist/lib/neutral/chunk-2DMPFVUM.mjs +8 -0
  30. package/dist/lib/neutral/chunk-2DMPFVUM.mjs.map +7 -0
  31. package/dist/lib/neutral/chunk-4RJALG6K.mjs +151 -0
  32. package/dist/lib/neutral/chunk-4RJALG6K.mjs.map +7 -0
  33. package/dist/lib/neutral/chunk-B4FVQEHV.mjs +8 -0
  34. package/dist/lib/neutral/chunk-B4FVQEHV.mjs.map +7 -0
  35. package/dist/lib/neutral/chunk-BDRB6ZX2.mjs +52 -0
  36. package/dist/lib/neutral/chunk-BDRB6ZX2.mjs.map +7 -0
  37. package/dist/lib/{node-esm/chunk-2S43VHAM.mjs → neutral/chunk-BUKQITZT.mjs} +43 -28
  38. package/dist/lib/neutral/chunk-BUKQITZT.mjs.map +7 -0
  39. package/dist/lib/neutral/chunk-D7DFASAE.mjs +52 -0
  40. package/dist/lib/neutral/chunk-D7DFASAE.mjs.map +7 -0
  41. package/dist/lib/neutral/chunk-MI6X5CTJ.mjs +336 -0
  42. package/dist/lib/neutral/chunk-MI6X5CTJ.mjs.map +7 -0
  43. package/dist/lib/neutral/chunk-P2F3STZN.mjs +8 -0
  44. package/dist/lib/neutral/chunk-P2F3STZN.mjs.map +7 -0
  45. package/dist/lib/neutral/chunk-PDB6UOSB.mjs +125 -0
  46. package/dist/lib/neutral/chunk-PDB6UOSB.mjs.map +7 -0
  47. package/dist/lib/{browser/chunk-EB6AXFXO.mjs → neutral/chunk-UYR3YH4Q.mjs} +3 -3
  48. package/dist/lib/neutral/chunk-UYR3YH4Q.mjs.map +7 -0
  49. package/dist/lib/neutral/compiler-SMVIP5UN.mjs +101 -0
  50. package/dist/lib/neutral/compiler-SMVIP5UN.mjs.map +7 -0
  51. package/dist/lib/neutral/components/index.mjs +719 -0
  52. package/dist/lib/neutral/components/index.mjs.map +7 -0
  53. package/dist/lib/neutral/containers/index.mjs +17 -0
  54. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  55. package/dist/lib/neutral/create-OZRIZ7RN.mjs +44 -0
  56. package/dist/lib/neutral/create-OZRIZ7RN.mjs.map +7 -0
  57. package/dist/lib/neutral/create-object-F2NWICFV.mjs +44 -0
  58. package/dist/lib/neutral/create-object-F2NWICFV.mjs.map +7 -0
  59. package/dist/lib/neutral/create-script-VBA3SLSU.mjs +45 -0
  60. package/dist/lib/neutral/create-script-VBA3SLSU.mjs.map +7 -0
  61. package/dist/lib/neutral/delete-PAUWA2QM.mjs +21 -0
  62. package/dist/lib/neutral/delete-PAUWA2QM.mjs.map +7 -0
  63. package/dist/lib/neutral/deploy-CXVW54JJ.mjs +62 -0
  64. package/dist/lib/neutral/deploy-CXVW54JJ.mjs.map +7 -0
  65. package/dist/lib/neutral/hooks/index.mjs +369 -0
  66. package/dist/lib/neutral/hooks/index.mjs.map +7 -0
  67. package/dist/lib/neutral/index.mjs +41 -0
  68. package/dist/lib/neutral/inspect-invocations-LEOEP5I2.mjs +59 -0
  69. package/dist/lib/neutral/inspect-invocations-LEOEP5I2.mjs.map +7 -0
  70. package/dist/lib/neutral/install-function-5N24Q45W.mjs +51 -0
  71. package/dist/lib/neutral/install-function-5N24Q45W.mjs.map +7 -0
  72. package/dist/lib/neutral/invoke-5QVEZ3X5.mjs +33 -0
  73. package/dist/lib/neutral/invoke-5QVEZ3X5.mjs.map +7 -0
  74. package/dist/lib/neutral/meta.json +1 -0
  75. package/dist/lib/neutral/meta.mjs +10 -0
  76. package/dist/lib/neutral/operation-handler-OTCWYDFI.mjs +18 -0
  77. package/dist/lib/neutral/operation-handler-OTCWYDFI.mjs.map +7 -0
  78. package/dist/lib/neutral/operations/index.mjs +8 -0
  79. package/dist/lib/neutral/plugin.mjs +16 -0
  80. package/dist/lib/neutral/plugin.mjs.map +7 -0
  81. package/dist/lib/neutral/query-deployed-functions-FVD7NYPA.mjs +30 -0
  82. package/dist/lib/neutral/query-deployed-functions-FVD7NYPA.mjs.map +7 -0
  83. package/dist/lib/neutral/react-surface-JH2AOK7V.mjs +117 -0
  84. package/dist/lib/neutral/react-surface-JH2AOK7V.mjs.map +7 -0
  85. package/dist/lib/neutral/read-FFOSK6A3.mjs +26 -0
  86. package/dist/lib/neutral/read-FFOSK6A3.mjs.map +7 -0
  87. package/dist/lib/neutral/settings-VJBW4OMK.mjs +30 -0
  88. package/dist/lib/neutral/settings-VJBW4OMK.mjs.map +7 -0
  89. package/dist/lib/{browser → neutral}/templates/index.mjs +1 -1
  90. package/dist/lib/neutral/translations.mjs +104 -0
  91. package/dist/lib/neutral/translations.mjs.map +7 -0
  92. package/dist/lib/neutral/types/index.mjs +17 -0
  93. package/dist/lib/neutral/update-PJS5GG3Y.mjs +63 -0
  94. package/dist/lib/neutral/update-PJS5GG3Y.mjs.map +7 -0
  95. package/dist/types/src/ScriptPlugin.d.ts +3 -1
  96. package/dist/types/src/ScriptPlugin.d.ts.map +1 -1
  97. package/dist/types/src/ScriptPlugin.node.d.ts +4 -0
  98. package/dist/types/src/ScriptPlugin.node.d.ts.map +1 -0
  99. package/dist/types/src/ScriptPlugin.test.d.ts +2 -0
  100. package/dist/types/src/ScriptPlugin.test.d.ts.map +1 -0
  101. package/dist/types/src/blueprints/functions/create.d.ts +11 -0
  102. package/dist/types/src/blueprints/functions/create.d.ts.map +1 -0
  103. package/dist/types/src/blueprints/functions/definitions.d.ts +141 -0
  104. package/dist/types/src/blueprints/functions/definitions.d.ts.map +1 -0
  105. package/dist/types/src/blueprints/functions/delete.d.ts +18 -0
  106. package/dist/types/src/blueprints/functions/delete.d.ts.map +1 -0
  107. package/dist/types/src/blueprints/functions/deploy.d.ts +22 -0
  108. package/dist/types/src/blueprints/functions/deploy.d.ts.map +1 -0
  109. package/dist/types/src/blueprints/functions/index.d.ts +4 -0
  110. package/dist/types/src/blueprints/functions/index.d.ts.map +1 -0
  111. package/dist/types/src/blueprints/functions/inspect-invocations.d.ts +29 -0
  112. package/dist/types/src/blueprints/functions/inspect-invocations.d.ts.map +1 -0
  113. package/dist/types/src/blueprints/functions/install-function.d.ts +11 -0
  114. package/dist/types/src/blueprints/functions/install-function.d.ts.map +1 -0
  115. package/dist/types/src/blueprints/functions/invoke.d.ts +22 -0
  116. package/dist/types/src/blueprints/functions/invoke.d.ts.map +1 -0
  117. package/dist/types/src/blueprints/functions/query-deployed-functions.d.ts +13 -0
  118. package/dist/types/src/blueprints/functions/query-deployed-functions.d.ts.map +1 -0
  119. package/dist/types/src/blueprints/functions/read.d.ts +22 -0
  120. package/dist/types/src/blueprints/functions/read.d.ts.map +1 -0
  121. package/dist/types/src/blueprints/functions/update.d.ts +27 -0
  122. package/dist/types/src/blueprints/functions/update.d.ts.map +1 -0
  123. package/dist/types/src/blueprints/index.d.ts +2 -0
  124. package/dist/types/src/blueprints/index.d.ts.map +1 -0
  125. package/dist/types/src/blueprints/script-blueprint.d.ts +4 -0
  126. package/dist/types/src/blueprints/script-blueprint.d.ts.map +1 -0
  127. package/dist/types/src/capabilities/app-graph-builder.d.ts +4 -2
  128. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  129. package/dist/types/src/capabilities/artifact-definition.d.ts +3 -2
  130. package/dist/types/src/capabilities/artifact-definition.d.ts.map +1 -1
  131. package/dist/types/src/capabilities/blueprint-definition.d.ts +5 -4
  132. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -1
  133. package/dist/types/src/capabilities/compiler.d.ts +3 -1
  134. package/dist/types/src/capabilities/compiler.d.ts.map +1 -1
  135. package/dist/types/src/capabilities/create-object.d.ts +16 -0
  136. package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
  137. package/dist/types/src/capabilities/index.d.ts +19 -7
  138. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  139. package/dist/types/src/capabilities/node.d.ts +18 -0
  140. package/dist/types/src/capabilities/node.d.ts.map +1 -0
  141. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  142. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  143. package/dist/types/src/capabilities/react-surface.d.ts +3 -2
  144. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  145. package/dist/types/src/capabilities/settings.d.ts +5 -2
  146. package/dist/types/src/capabilities/settings.d.ts.map +1 -1
  147. package/dist/types/src/compiler/compiler.d.ts.map +1 -1
  148. package/dist/types/src/components/{FrameContainer/FrameContainer.d.ts → FramePanel/FramePanel.d.ts} +3 -3
  149. package/dist/types/src/components/FramePanel/FramePanel.d.ts.map +1 -0
  150. package/dist/types/src/components/FramePanel/index.d.ts +2 -0
  151. package/dist/types/src/components/FramePanel/index.d.ts.map +1 -0
  152. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts +4 -4
  153. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts.map +1 -1
  154. package/dist/types/src/components/NotebookStack/NotebookMenu.d.ts +1 -1
  155. package/dist/types/src/components/NotebookStack/NotebookMenu.d.ts.map +1 -1
  156. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts +5 -3
  157. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts.map +1 -1
  158. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts +221 -229
  159. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts.map +1 -1
  160. package/dist/types/src/components/QueryEditor/QueryEditor.d.ts.map +1 -1
  161. package/dist/types/src/components/QueryEditor/QueryEditor.stories.d.ts.map +1 -1
  162. package/dist/types/src/components/ScriptPluginSettings/ScriptPluginSettings.d.ts +8 -0
  163. package/dist/types/src/components/ScriptPluginSettings/ScriptPluginSettings.d.ts.map +1 -0
  164. package/dist/types/src/components/ScriptPluginSettings/ScriptPluginSettings.stories.d.ts +241 -0
  165. package/dist/types/src/components/ScriptPluginSettings/ScriptPluginSettings.stories.d.ts.map +1 -0
  166. package/dist/types/src/components/ScriptPluginSettings/index.d.ts +2 -0
  167. package/dist/types/src/components/ScriptPluginSettings/index.d.ts.map +1 -0
  168. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts +8 -6
  169. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts.map +1 -1
  170. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts +221 -229
  171. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts.map +1 -1
  172. package/dist/types/src/components/TestPanel/TestPanel.d.ts +4 -2
  173. package/dist/types/src/components/TestPanel/TestPanel.d.ts.map +1 -1
  174. package/dist/types/src/components/TestPanel/index.d.ts +0 -1
  175. package/dist/types/src/components/TestPanel/index.d.ts.map +1 -1
  176. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts +6 -2
  177. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts.map +1 -1
  178. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts +3 -1
  179. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts.map +1 -1
  180. package/dist/types/src/components/index.d.ts +6 -5
  181. package/dist/types/src/components/index.d.ts.map +1 -1
  182. package/dist/types/src/constants.d.ts +2 -0
  183. package/dist/types/src/constants.d.ts.map +1 -0
  184. package/dist/types/src/{components → containers}/DeploymentDialog/DeploymentDialog.d.ts +0 -2
  185. package/dist/types/src/containers/DeploymentDialog/DeploymentDialog.d.ts.map +1 -0
  186. package/dist/types/src/containers/DeploymentDialog/DeploymentDialog.stories.d.ts +240 -0
  187. package/dist/types/src/containers/DeploymentDialog/DeploymentDialog.stories.d.ts.map +1 -0
  188. package/dist/types/src/containers/DeploymentDialog/index.d.ts +2 -0
  189. package/dist/types/src/containers/DeploymentDialog/index.d.ts.map +1 -0
  190. package/dist/types/src/containers/NotebookContainer/NotebookContainer.d.ts +7 -0
  191. package/dist/types/src/containers/NotebookContainer/NotebookContainer.d.ts.map +1 -0
  192. package/dist/types/src/containers/NotebookContainer/NotebookContainer.stories.d.ts +7 -0
  193. package/dist/types/src/containers/NotebookContainer/NotebookContainer.stories.d.ts.map +1 -0
  194. package/dist/types/src/containers/NotebookContainer/index.d.ts +2 -0
  195. package/dist/types/src/containers/NotebookContainer/index.d.ts.map +1 -0
  196. package/dist/types/src/containers/ScriptContainer/ScriptContainer.d.ts +10 -0
  197. package/dist/types/src/containers/ScriptContainer/ScriptContainer.d.ts.map +1 -0
  198. package/dist/types/src/containers/ScriptContainer/ScriptContainer.stories.d.ts +242 -0
  199. package/dist/types/src/containers/ScriptContainer/ScriptContainer.stories.d.ts.map +1 -0
  200. package/dist/types/src/containers/ScriptContainer/index.d.ts +2 -0
  201. package/dist/types/src/containers/ScriptContainer/index.d.ts.map +1 -0
  202. package/dist/types/src/containers/ScriptProperties/BlueprintEditor.d.ts +7 -0
  203. package/dist/types/src/containers/ScriptProperties/BlueprintEditor.d.ts.map +1 -0
  204. package/dist/types/src/containers/ScriptProperties/FunctionBinding.d.ts +7 -0
  205. package/dist/types/src/containers/ScriptProperties/FunctionBinding.d.ts.map +1 -0
  206. package/dist/types/src/containers/ScriptProperties/FunctionPublishing.d.ts +7 -0
  207. package/dist/types/src/containers/ScriptProperties/FunctionPublishing.d.ts.map +1 -0
  208. package/dist/types/src/containers/ScriptProperties/ScriptProperties.d.ts +6 -0
  209. package/dist/types/src/containers/ScriptProperties/ScriptProperties.d.ts.map +1 -0
  210. package/dist/types/src/containers/ScriptProperties/ScriptProperties.stories.d.ts +242 -0
  211. package/dist/types/src/containers/ScriptProperties/ScriptProperties.stories.d.ts.map +1 -0
  212. package/dist/types/src/containers/ScriptProperties/index.d.ts +2 -0
  213. package/dist/types/src/containers/ScriptProperties/index.d.ts.map +1 -0
  214. package/dist/types/src/containers/TestContainer/TestContainer.d.ts +8 -0
  215. package/dist/types/src/containers/TestContainer/TestContainer.d.ts.map +1 -0
  216. package/dist/types/src/containers/TestContainer/index.d.ts +2 -0
  217. package/dist/types/src/containers/TestContainer/index.d.ts.map +1 -0
  218. package/dist/types/src/containers/index.d.ts +7 -0
  219. package/dist/types/src/containers/index.d.ts.map +1 -0
  220. package/dist/types/src/e2e/ai.test.d.ts +2 -0
  221. package/dist/types/src/e2e/ai.test.d.ts.map +1 -0
  222. package/dist/types/src/hooks/deploy.d.ts +25 -11
  223. package/dist/types/src/hooks/deploy.d.ts.map +1 -1
  224. package/dist/types/src/hooks/format.d.ts +4 -3
  225. package/dist/types/src/hooks/format.d.ts.map +1 -1
  226. package/dist/types/src/hooks/template.d.ts +4 -3
  227. package/dist/types/src/hooks/template.d.ts.map +1 -1
  228. package/dist/types/src/hooks/useCompiler.d.ts.map +1 -1
  229. package/dist/types/src/hooks/useCreateAndDeployScriptTemplates.d.ts.map +1 -1
  230. package/dist/types/src/hooks/useToolbarState.d.ts +8 -1
  231. package/dist/types/src/hooks/useToolbarState.d.ts.map +1 -1
  232. package/dist/types/src/index.d.ts +2 -3
  233. package/dist/types/src/index.d.ts.map +1 -1
  234. package/dist/types/src/meta.d.ts +2 -2
  235. package/dist/types/src/meta.d.ts.map +1 -1
  236. package/dist/types/src/notebook/compute-graph.d.ts +25 -12
  237. package/dist/types/src/notebook/compute-graph.d.ts.map +1 -1
  238. package/dist/types/src/notebook/eval.d.ts.map +1 -1
  239. package/dist/types/src/notebook/vfs-parser.d.ts.map +1 -1
  240. package/dist/types/src/operations/access-token-created.d.ts +5 -0
  241. package/dist/types/src/operations/access-token-created.d.ts.map +1 -0
  242. package/dist/types/src/operations/create-script.d.ts +5 -0
  243. package/dist/types/src/operations/create-script.d.ts.map +1 -0
  244. package/dist/types/src/operations/index.d.ts +3 -0
  245. package/dist/types/src/operations/index.d.ts.map +1 -0
  246. package/dist/types/src/plugin.d.ts +4 -0
  247. package/dist/types/src/plugin.d.ts.map +1 -0
  248. package/dist/types/src/templates/anthropic.d.ts +7 -0
  249. package/dist/types/src/templates/anthropic.d.ts.map +1 -0
  250. package/dist/types/src/templates/chat.d.ts.map +1 -1
  251. package/dist/types/src/templates/chess-bot.d.ts +12 -0
  252. package/dist/types/src/templates/chess-bot.d.ts.map +1 -0
  253. package/dist/types/src/templates/commentary.d.ts +13 -0
  254. package/dist/types/src/templates/commentary.d.ts.map +1 -0
  255. package/dist/types/src/templates/data-generator.d.ts.map +1 -1
  256. package/dist/types/src/templates/discord.d.ts.map +1 -1
  257. package/dist/types/src/templates/email.d.ts.map +1 -1
  258. package/dist/types/src/templates/forex-effect.d.ts +3 -2
  259. package/dist/types/src/templates/forex-effect.d.ts.map +1 -1
  260. package/dist/types/src/templates/forex.d.ts +3 -2
  261. package/dist/types/src/templates/forex.d.ts.map +1 -1
  262. package/dist/types/src/templates/gmail.d.ts.map +1 -1
  263. package/dist/types/src/templates/index.d.ts +33 -24
  264. package/dist/types/src/templates/index.d.ts.map +1 -1
  265. package/dist/types/src/templates/ping.d.ts +2 -4
  266. package/dist/types/src/templates/ping.d.ts.map +1 -1
  267. package/dist/types/src/testing/index.d.ts +2 -1
  268. package/dist/types/src/testing/index.d.ts.map +1 -1
  269. package/dist/types/src/testing/test-notebook.d.ts +3 -0
  270. package/dist/types/src/testing/test-notebook.d.ts.map +1 -0
  271. package/dist/types/src/testing/test-script.d.ts +7 -0
  272. package/dist/types/src/testing/test-script.d.ts.map +1 -0
  273. package/dist/types/src/translations.d.ts +222 -92
  274. package/dist/types/src/translations.d.ts.map +1 -1
  275. package/dist/types/src/types/Notebook.d.ts +111 -22
  276. package/dist/types/src/types/Notebook.d.ts.map +1 -1
  277. package/dist/types/src/types/ScriptCapabilities.d.ts +6 -0
  278. package/dist/types/src/types/ScriptCapabilities.d.ts.map +1 -0
  279. package/dist/types/src/types/ScriptEvents.d.ts +3 -0
  280. package/dist/types/src/types/ScriptEvents.d.ts.map +1 -0
  281. package/dist/types/src/types/ScriptOperation.d.ts +29 -0
  282. package/dist/types/src/types/ScriptOperation.d.ts.map +1 -0
  283. package/dist/types/src/types/Settings.d.ts +7 -0
  284. package/dist/types/src/types/Settings.d.ts.map +1 -0
  285. package/dist/types/src/types/index.d.ts +4 -2
  286. package/dist/types/src/types/index.d.ts.map +1 -1
  287. package/dist/types/src/types/types.d.ts +1 -5
  288. package/dist/types/src/types/types.d.ts.map +1 -1
  289. package/dist/types/src/util/deploy.d.ts +2 -2
  290. package/dist/types/src/util/deploy.d.ts.map +1 -1
  291. package/dist/types/src/util/functions.d.ts +2 -2
  292. package/dist/types/src/util/functions.d.ts.map +1 -1
  293. package/dist/types/tsconfig.tsbuildinfo +1 -1
  294. package/package.json +173 -101
  295. package/src/ScriptPlugin.node.ts +21 -0
  296. package/src/ScriptPlugin.test.ts +31 -0
  297. package/src/ScriptPlugin.tsx +23 -78
  298. package/src/blueprints/functions/create.ts +47 -0
  299. package/src/blueprints/functions/definitions.ts +323 -0
  300. package/src/blueprints/functions/delete.ts +23 -0
  301. package/src/blueprints/functions/deploy.ts +70 -0
  302. package/src/blueprints/functions/index.ts +19 -0
  303. package/src/blueprints/functions/inspect-invocations.ts +56 -0
  304. package/src/blueprints/functions/install-function.ts +56 -0
  305. package/src/blueprints/functions/invoke.ts +35 -0
  306. package/src/blueprints/functions/query-deployed-functions.ts +31 -0
  307. package/src/blueprints/functions/read.ts +29 -0
  308. package/src/blueprints/functions/update.ts +68 -0
  309. package/src/blueprints/index.ts +5 -0
  310. package/src/blueprints/script-blueprint.ts +55 -0
  311. package/src/capabilities/app-graph-builder.ts +40 -58
  312. package/src/capabilities/artifact-definition.ts +90 -88
  313. package/src/capabilities/blueprint-definition.ts +13 -24
  314. package/src/capabilities/compiler.ts +57 -30
  315. package/src/capabilities/create-object.ts +48 -0
  316. package/src/capabilities/index.ts +13 -9
  317. package/src/capabilities/node.ts +16 -0
  318. package/src/capabilities/operation-handler.ts +21 -0
  319. package/src/capabilities/react-surface.tsx +121 -93
  320. package/src/capabilities/settings.ts +26 -14
  321. package/src/compiler/compiler.ts +8 -1
  322. package/src/components/{FrameContainer/FrameContainer.tsx → FramePanel/FramePanel.tsx} +4 -5
  323. package/src/components/{FrameContainer → FramePanel}/index.ts +1 -1
  324. package/src/components/NotebookStack/NotebookCell.tsx +42 -32
  325. package/src/components/NotebookStack/NotebookMenu.tsx +7 -7
  326. package/src/components/NotebookStack/NotebookStack.stories.tsx +24 -25
  327. package/src/components/NotebookStack/NotebookStack.tsx +31 -20
  328. package/src/components/QueryEditor/QueryEditor.stories.tsx +25 -18
  329. package/src/components/ScriptPluginSettings/ScriptPluginSettings.stories.tsx +32 -0
  330. package/src/components/ScriptPluginSettings/ScriptPluginSettings.tsx +42 -0
  331. package/src/components/ScriptPluginSettings/index.ts +5 -0
  332. package/src/components/ScriptToolbar/ScriptToolbar.stories.tsx +42 -20
  333. package/src/components/ScriptToolbar/ScriptToolbar.tsx +38 -43
  334. package/src/components/TestPanel/TestPanel.tsx +110 -194
  335. package/src/components/TestPanel/index.ts +0 -1
  336. package/src/components/TypescriptEditor/TypescriptEditor.stories.tsx +24 -17
  337. package/src/components/TypescriptEditor/TypescriptEditor.tsx +74 -66
  338. package/src/components/index.ts +6 -7
  339. package/src/constants.ts +7 -0
  340. package/src/containers/DeploymentDialog/DeploymentDialog.stories.tsx +63 -0
  341. package/src/containers/DeploymentDialog/DeploymentDialog.tsx +99 -0
  342. package/src/containers/DeploymentDialog/index.ts +5 -0
  343. package/src/containers/NotebookContainer/NotebookContainer.stories.tsx +85 -0
  344. package/src/{components → containers/NotebookContainer}/NotebookContainer.tsx +87 -93
  345. package/src/containers/NotebookContainer/index.ts +5 -0
  346. package/src/containers/ScriptContainer/ScriptContainer.stories.tsx +106 -0
  347. package/src/containers/ScriptContainer/ScriptContainer.tsx +85 -0
  348. package/src/containers/ScriptContainer/index.ts +5 -0
  349. package/src/containers/ScriptProperties/BlueprintEditor.tsx +101 -0
  350. package/src/containers/ScriptProperties/FunctionBinding.tsx +83 -0
  351. package/src/containers/ScriptProperties/FunctionPublishing.tsx +121 -0
  352. package/src/containers/ScriptProperties/ScriptProperties.stories.tsx +75 -0
  353. package/src/containers/ScriptProperties/ScriptProperties.tsx +24 -0
  354. package/src/containers/ScriptProperties/index.ts +5 -0
  355. package/src/containers/TestContainer/TestContainer.tsx +44 -0
  356. package/src/containers/TestContainer/index.ts +5 -0
  357. package/src/containers/index.ts +11 -0
  358. package/src/e2e/ai.test.ts +93 -0
  359. package/src/e2e/deploy.test.ts +7 -5
  360. package/src/hooks/deploy.ts +42 -33
  361. package/src/hooks/format.ts +9 -4
  362. package/src/hooks/template.ts +19 -12
  363. package/src/hooks/useCompiler.ts +6 -4
  364. package/src/hooks/useCreateAndDeployScriptTemplates.ts +15 -20
  365. package/src/hooks/useToolbarState.ts +29 -4
  366. package/src/index.ts +2 -4
  367. package/src/meta.ts +4 -4
  368. package/src/notebook/compute-graph.test.ts +21 -9
  369. package/src/notebook/compute-graph.ts +46 -22
  370. package/src/notebook/vfs-parser.ts +10 -3
  371. package/src/operations/access-token-created.ts +37 -0
  372. package/src/operations/create-script.ts +46 -0
  373. package/src/operations/index.ts +10 -0
  374. package/src/plugin.ts +11 -0
  375. package/src/templates/anthropic.ts +49 -0
  376. package/src/templates/chat.ts +1 -1
  377. package/src/templates/chess-bot.ts +63 -0
  378. package/src/templates/commentary.ts +249 -0
  379. package/src/templates/data-generator.ts +1 -1
  380. package/src/templates/discord.ts +3 -3
  381. package/src/templates/forex-effect.ts +30 -19
  382. package/src/templates/forex.ts +24 -15
  383. package/src/templates/gmail.ts +4 -4
  384. package/src/templates/index.ts +31 -18
  385. package/src/templates/ping.ts +22 -5
  386. package/src/testing/index.ts +2 -1
  387. package/src/testing/simulator.test.ts +3 -4
  388. package/src/testing/{data.ts → test-notebook.ts} +11 -12
  389. package/src/testing/test-script.ts +29 -0
  390. package/src/translations.ts +86 -87
  391. package/src/types/Notebook.ts +18 -15
  392. package/src/types/ScriptCapabilities.ts +18 -0
  393. package/src/types/ScriptEvents.ts +11 -0
  394. package/src/types/ScriptOperation.ts +42 -0
  395. package/src/types/Settings.ts +20 -0
  396. package/src/types/index.ts +5 -2
  397. package/src/types/types.ts +1 -11
  398. package/src/util/deploy.ts +15 -9
  399. package/src/util/functions.ts +27 -24
  400. package/dist/lib/browser/DeploymentDialog-FIHD4UVK.mjs +0 -15
  401. package/dist/lib/browser/NotebookContainer-GL2Z5I5Q.mjs.map +0 -7
  402. package/dist/lib/browser/ScriptContainer-F4OK3OG6.mjs +0 -149
  403. package/dist/lib/browser/ScriptContainer-F4OK3OG6.mjs.map +0 -7
  404. package/dist/lib/browser/app-graph-builder-2WR2ATTJ.mjs +0 -66
  405. package/dist/lib/browser/app-graph-builder-2WR2ATTJ.mjs.map +0 -7
  406. package/dist/lib/browser/blueprint-definition-6PZWZM2Y.mjs +0 -30
  407. package/dist/lib/browser/blueprint-definition-6PZWZM2Y.mjs.map +0 -7
  408. package/dist/lib/browser/chunk-2SXDKBM7.mjs +0 -304
  409. package/dist/lib/browser/chunk-2SXDKBM7.mjs.map +0 -7
  410. package/dist/lib/browser/chunk-6X7QVTRB.mjs +0 -112
  411. package/dist/lib/browser/chunk-6X7QVTRB.mjs.map +0 -7
  412. package/dist/lib/browser/chunk-75RTLLH4.mjs +0 -155
  413. package/dist/lib/browser/chunk-75RTLLH4.mjs.map +0 -7
  414. package/dist/lib/browser/chunk-7WFISUBY.mjs +0 -647
  415. package/dist/lib/browser/chunk-7WFISUBY.mjs.map +0 -7
  416. package/dist/lib/browser/chunk-EB6AXFXO.mjs.map +0 -7
  417. package/dist/lib/browser/chunk-MQHBMJLH.mjs +0 -103
  418. package/dist/lib/browser/chunk-MQHBMJLH.mjs.map +0 -7
  419. package/dist/lib/browser/chunk-S22N3BUR.mjs +0 -88
  420. package/dist/lib/browser/chunk-S22N3BUR.mjs.map +0 -7
  421. package/dist/lib/browser/chunk-UGDRMROB.mjs +0 -542
  422. package/dist/lib/browser/chunk-UGDRMROB.mjs.map +0 -7
  423. package/dist/lib/browser/chunk-UOQ6NCH3.mjs +0 -15
  424. package/dist/lib/browser/chunk-UOQ6NCH3.mjs.map +0 -7
  425. package/dist/lib/browser/compiler-2HV5KXV4.mjs +0 -143
  426. package/dist/lib/browser/compiler-2HV5KXV4.mjs.map +0 -7
  427. package/dist/lib/browser/index.mjs +0 -255
  428. package/dist/lib/browser/index.mjs.map +0 -7
  429. package/dist/lib/browser/intent-resolver-3B4ESSCU.mjs +0 -105
  430. package/dist/lib/browser/intent-resolver-3B4ESSCU.mjs.map +0 -7
  431. package/dist/lib/browser/meta.json +0 -1
  432. package/dist/lib/browser/react-surface-ASV2KBRA.mjs +0 -128
  433. package/dist/lib/browser/react-surface-ASV2KBRA.mjs.map +0 -7
  434. package/dist/lib/browser/settings-4NKLTJTT.mjs +0 -26
  435. package/dist/lib/browser/settings-4NKLTJTT.mjs.map +0 -7
  436. package/dist/lib/browser/types/index.mjs +0 -14
  437. package/dist/lib/node-esm/DeploymentDialog-5EN2KZE5.mjs +0 -16
  438. package/dist/lib/node-esm/NotebookContainer-7RCEXND7.mjs +0 -818
  439. package/dist/lib/node-esm/NotebookContainer-7RCEXND7.mjs.map +0 -7
  440. package/dist/lib/node-esm/ScriptContainer-763IAKOD.mjs +0 -150
  441. package/dist/lib/node-esm/ScriptContainer-763IAKOD.mjs.map +0 -7
  442. package/dist/lib/node-esm/app-graph-builder-NCVLUL5R.mjs +0 -67
  443. package/dist/lib/node-esm/app-graph-builder-NCVLUL5R.mjs.map +0 -7
  444. package/dist/lib/node-esm/blueprint-definition-5R6YCSZZ.mjs +0 -31
  445. package/dist/lib/node-esm/blueprint-definition-5R6YCSZZ.mjs.map +0 -7
  446. package/dist/lib/node-esm/chunk-2S43VHAM.mjs.map +0 -7
  447. package/dist/lib/node-esm/chunk-32AMTGGN.mjs +0 -104
  448. package/dist/lib/node-esm/chunk-32AMTGGN.mjs.map +0 -7
  449. package/dist/lib/node-esm/chunk-4VVV5L5A.mjs +0 -543
  450. package/dist/lib/node-esm/chunk-4VVV5L5A.mjs.map +0 -7
  451. package/dist/lib/node-esm/chunk-535YDI5V.mjs +0 -156
  452. package/dist/lib/node-esm/chunk-535YDI5V.mjs.map +0 -7
  453. package/dist/lib/node-esm/chunk-55JZVM6K.mjs +0 -16
  454. package/dist/lib/node-esm/chunk-55JZVM6K.mjs.map +0 -7
  455. package/dist/lib/node-esm/chunk-6H4FYMCX.mjs +0 -114
  456. package/dist/lib/node-esm/chunk-6H4FYMCX.mjs.map +0 -7
  457. package/dist/lib/node-esm/chunk-DKS2EQW6.mjs +0 -648
  458. package/dist/lib/node-esm/chunk-DKS2EQW6.mjs.map +0 -7
  459. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +0 -11
  460. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +0 -7
  461. package/dist/lib/node-esm/chunk-IBV2DR36.mjs +0 -33
  462. package/dist/lib/node-esm/chunk-IBV2DR36.mjs.map +0 -7
  463. package/dist/lib/node-esm/chunk-NQN3JE2R.mjs +0 -305
  464. package/dist/lib/node-esm/chunk-NQN3JE2R.mjs.map +0 -7
  465. package/dist/lib/node-esm/compiler-KPEZKEHC.mjs +0 -144
  466. package/dist/lib/node-esm/compiler-KPEZKEHC.mjs.map +0 -7
  467. package/dist/lib/node-esm/index.mjs +0 -256
  468. package/dist/lib/node-esm/index.mjs.map +0 -7
  469. package/dist/lib/node-esm/intent-resolver-GIACMXI4.mjs +0 -106
  470. package/dist/lib/node-esm/intent-resolver-GIACMXI4.mjs.map +0 -7
  471. package/dist/lib/node-esm/meta.json +0 -1
  472. package/dist/lib/node-esm/react-surface-NXBO7VYB.mjs +0 -129
  473. package/dist/lib/node-esm/react-surface-NXBO7VYB.mjs.map +0 -7
  474. package/dist/lib/node-esm/settings-PW5NXWLW.mjs +0 -27
  475. package/dist/lib/node-esm/settings-PW5NXWLW.mjs.map +0 -7
  476. package/dist/lib/node-esm/templates/index.mjs +0 -11
  477. package/dist/lib/node-esm/types/index.mjs +0 -15
  478. package/dist/types/src/capabilities/capabilities.d.ts +0 -5
  479. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  480. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  481. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  482. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.d.ts.map +0 -1
  483. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts +0 -251
  484. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts.map +0 -1
  485. package/dist/types/src/components/DeploymentDialog/index.d.ts +0 -4
  486. package/dist/types/src/components/DeploymentDialog/index.d.ts.map +0 -1
  487. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts.map +0 -1
  488. package/dist/types/src/components/FrameContainer/frame.d.ts +0 -2
  489. package/dist/types/src/components/FrameContainer/frame.d.ts.map +0 -1
  490. package/dist/types/src/components/FrameContainer/index.d.ts +0 -2
  491. package/dist/types/src/components/FrameContainer/index.d.ts.map +0 -1
  492. package/dist/types/src/components/NotebookContainer.d.ts +0 -10
  493. package/dist/types/src/components/NotebookContainer.d.ts.map +0 -1
  494. package/dist/types/src/components/NotebookContainer.stories.d.ts +0 -254
  495. package/dist/types/src/components/NotebookContainer.stories.d.ts.map +0 -1
  496. package/dist/types/src/components/ScriptContainer.d.ts +0 -12
  497. package/dist/types/src/components/ScriptContainer.d.ts.map +0 -1
  498. package/dist/types/src/components/Settings/ScriptObjectSettings.d.ts +0 -8
  499. package/dist/types/src/components/Settings/ScriptObjectSettings.d.ts.map +0 -1
  500. package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts +0 -6
  501. package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts.map +0 -1
  502. package/dist/types/src/components/Settings/index.d.ts +0 -3
  503. package/dist/types/src/components/Settings/index.d.ts.map +0 -1
  504. package/dist/types/src/components/TestPanel/TestContainer.d.ts +0 -8
  505. package/dist/types/src/components/TestPanel/TestContainer.d.ts.map +0 -1
  506. package/dist/types/src/events.d.ts +0 -4
  507. package/dist/types/src/events.d.ts.map +0 -1
  508. package/dist/types/src/templates/chess.d.ts +0 -8
  509. package/dist/types/src/templates/chess.d.ts.map +0 -1
  510. package/dist/types/src/testing/data.d.ts +0 -3
  511. package/dist/types/src/testing/data.d.ts.map +0 -1
  512. package/dist/types/src/testing/deploy.test.d.ts +0 -2
  513. package/dist/types/src/testing/deploy.test.d.ts.map +0 -1
  514. package/dist/types/src/types/actions.d.ts +0 -54
  515. package/dist/types/src/types/actions.d.ts.map +0 -1
  516. package/src/capabilities/capabilities.ts +0 -12
  517. package/src/capabilities/intent-resolver.ts +0 -86
  518. package/src/components/DeploymentDialog/DeploymentDialog.stories.tsx +0 -58
  519. package/src/components/DeploymentDialog/DeploymentDialog.tsx +0 -123
  520. package/src/components/DeploymentDialog/index.ts +0 -9
  521. package/src/components/FrameContainer/frame.html +0 -25
  522. package/src/components/FrameContainer/frame.tsx +0 -51
  523. package/src/components/NotebookContainer.stories.tsx +0 -83
  524. package/src/components/ScriptContainer.tsx +0 -70
  525. package/src/components/Settings/ScriptObjectSettings.tsx +0 -298
  526. package/src/components/Settings/ScriptPluginSettings.tsx +0 -61
  527. package/src/components/Settings/index.ts +0 -6
  528. package/src/components/TestPanel/TestContainer.tsx +0 -27
  529. package/src/events.ts +0 -11
  530. package/src/templates/chess.ts +0 -50
  531. package/src/testing/deploy.test.ts +0 -63
  532. package/src/types/actions.ts +0 -53
  533. /package/dist/lib/{browser/templates → neutral/blueprints}/index.mjs.map +0 -0
  534. /package/dist/lib/{browser → neutral}/chunk-J5LGTIGS.mjs +0 -0
  535. /package/dist/lib/{browser → neutral}/chunk-J5LGTIGS.mjs.map +0 -0
  536. /package/dist/lib/{browser/types → neutral}/index.mjs.map +0 -0
  537. /package/dist/lib/{browser/DeploymentDialog-FIHD4UVK.mjs.map → neutral/meta.mjs.map} +0 -0
  538. /package/dist/lib/{node-esm/templates → neutral/operations}/index.mjs.map +0 -0
  539. /package/dist/lib/{node-esm/types → neutral/templates}/index.mjs.map +0 -0
  540. /package/dist/lib/{node-esm/DeploymentDialog-5EN2KZE5.mjs.map → neutral/types/index.mjs.map} +0 -0
@@ -2,11 +2,11 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { type Signal, signal } from '@preact/signals-core';
5
+ import { Atom, type Registry } from '@effect-atom/atom-react';
6
6
 
7
7
  import { log } from '@dxos/log';
8
8
 
9
- import { type Notebook } from '../types';
9
+ import { type Notebook } from '#types';
10
10
 
11
11
  import { evalScript } from './eval';
12
12
  import { type ParsedExpression, VirtualTypeScriptParser } from './vfs-parser';
@@ -18,38 +18,62 @@ import { type ParsedExpression, VirtualTypeScriptParser } from './vfs-parser';
18
18
  export class ComputeGraph {
19
19
  private readonly _parser = new VirtualTypeScriptParser();
20
20
 
21
- private _expressions = signal<Record<string, ParsedExpression>>({});
22
- private _valuesByCellId = signal<Record<string, any>>({});
23
- private _valuesByName = signal<Record<string, any>>({});
21
+ private _expressionsAtom = Atom.make<Record<string, ParsedExpression>>({});
22
+ private _valuesByCellIdAtom = Atom.make<Record<string, any>>({});
23
+ private _valuesByNameAtom = Atom.make<Record<string, any>>({});
24
24
 
25
- constructor(private readonly _notebook: Notebook.Notebook) {}
25
+ constructor(
26
+ private readonly _notebook: Notebook.Notebook,
27
+ private readonly _registry: Registry.Registry,
28
+ ) {}
26
29
 
27
30
  /**
28
- * Parsed expressions by cell ID.
31
+ * Atom for parsed expressions by cell ID.
29
32
  */
30
- get expressions(): Signal<Record<string, ParsedExpression>> {
31
- return this._expressions;
33
+ get expressions(): Atom.Atom<Record<string, ParsedExpression>> {
34
+ return this._expressionsAtom;
32
35
  }
33
36
 
34
37
  /**
35
- * Computed values by cell ID.
38
+ * Get current expressions by cell ID.
36
39
  */
37
- get values(): Signal<Record<string, any>> {
38
- return this._valuesByCellId;
40
+ getExpressions(): Record<string, ParsedExpression> {
41
+ return this._registry.get(this._expressionsAtom);
39
42
  }
40
43
 
41
44
  /**
42
- * Computed values by name.
45
+ * Atom for computed values by cell ID.
43
46
  */
44
- get valuesByName(): Signal<Record<string, any>> {
45
- return this._valuesByName;
47
+ get values(): Atom.Atom<Record<string, any>> {
48
+ return this._valuesByCellIdAtom;
49
+ }
50
+
51
+ /**
52
+ * Get computed values by cell ID.
53
+ */
54
+ getValues(): Record<string, any> {
55
+ return this._registry.get(this._valuesByCellIdAtom);
56
+ }
57
+
58
+ /**
59
+ * Atom for computed values by name.
60
+ */
61
+ get valuesByName(): Atom.Atom<Record<string, any>> {
62
+ return this._valuesByNameAtom;
63
+ }
64
+
65
+ /**
66
+ * Get current values by name.
67
+ */
68
+ getValuesByName(): Record<string, any> {
69
+ return this._registry.get(this._valuesByNameAtom);
46
70
  }
47
71
 
48
72
  /**
49
73
  * Get computed value by cell ID.
50
74
  */
51
- getValue(cellId: string) {
52
- return this._valuesByCellId.value[cellId];
75
+ getValue(cellId: string): any {
76
+ return this._registry.get(this._valuesByCellIdAtom)[cellId];
53
77
  }
54
78
 
55
79
  /**
@@ -58,8 +82,8 @@ export class ComputeGraph {
58
82
  async evaluate() {
59
83
  // Parse expressions.
60
84
  const { expressions, dependencyGraph } = this.parse();
61
- this._valuesByCellId.value = {};
62
- this._valuesByName.value = {};
85
+ this._registry.set(this._valuesByCellIdAtom, {});
86
+ this._registry.set(this._valuesByNameAtom, {});
63
87
 
64
88
  // Create a map of cell IDs to expressions for easy lookup.
65
89
  const cellExpressions = new Map<string, ParsedExpression>();
@@ -124,8 +148,8 @@ export class ComputeGraph {
124
148
  }
125
149
  }
126
150
 
127
- this._valuesByCellId.value = valuesByCellId;
128
- this._valuesByName.value = valuesByName;
151
+ this._registry.set(this._valuesByCellIdAtom, valuesByCellId);
152
+ this._registry.set(this._valuesByNameAtom, valuesByName);
129
153
  return valuesByCellId;
130
154
  }
131
155
 
@@ -151,7 +175,7 @@ export class ComputeGraph {
151
175
 
152
176
  // Build dependency graph.
153
177
  const dependencyGraph = this.buildDependencyGraph(expressions);
154
- this._expressions.value = expressions;
178
+ this._registry.set(this._expressionsAtom, expressions);
155
179
  return { expressions, dependencyGraph };
156
180
  }
157
181
 
@@ -42,6 +42,7 @@ export class VirtualTypeScriptParser {
42
42
  protected compilerOptions: ts.CompilerOptions = {
43
43
  target: ts.ScriptTarget.ES2020,
44
44
  module: ts.ModuleKind.ESNext,
45
+ moduleResolution: ts.ModuleResolutionKind.Bundler,
45
46
  strict: true,
46
47
  esModuleInterop: true,
47
48
  skipLibCheck: true,
@@ -91,7 +92,9 @@ export class VirtualTypeScriptParser {
91
92
  // Analyze each file.
92
93
  files.forEach((file) => {
93
94
  const sourceFile = env.getSourceFile(file.filename);
94
- if (!sourceFile || !typeChecker) return;
95
+ if (!sourceFile || !typeChecker) {
96
+ return;
97
+ }
95
98
 
96
99
  const fileResults = this.analyzeSourceFile(sourceFile, typeChecker);
97
100
  results.push(...fileResults);
@@ -207,7 +210,9 @@ export class VirtualTypeScriptParser {
207
210
  signature: ts.Signature | undefined,
208
211
  typeChecker: ts.TypeChecker,
209
212
  ): Array<{ name: string; type: string }> {
210
- if (!signature) return [];
213
+ if (!signature) {
214
+ return [];
215
+ }
211
216
 
212
217
  return signature.parameters.map((param) => ({
213
218
  name: param.getName(),
@@ -429,7 +434,9 @@ export class NotebookVirtualParser extends VirtualTypeScriptParser {
429
434
  const previousExports = new Set<string>();
430
435
  for (const [_prevCellId, prevAnalysis] of cellAnalysis) {
431
436
  prevAnalysis.exports.forEach((exp) => {
432
- if (exp.name) previousExports.add(exp.name);
437
+ if (exp.name) {
438
+ previousExports.add(exp.name);
439
+ }
433
440
  });
434
441
  }
435
442
 
@@ -0,0 +1,37 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import * as Effect from 'effect/Effect';
6
+ import * as Predicate from 'effect/Predicate';
7
+
8
+ import { LayoutOperation } from '@dxos/app-toolkit';
9
+ import { Operation } from '@dxos/compute';
10
+ import { IntegrationOperation } from '@dxos/plugin-integration';
11
+
12
+ import { defaultScriptsForIntegration } from '#meta';
13
+
14
+ import { DEPLOYMENT_DIALOG } from '../constants';
15
+ import { templates } from '../templates';
16
+
17
+ const handler: Operation.WithHandler<typeof IntegrationOperation.AccessTokenCreated> =
18
+ IntegrationOperation.AccessTokenCreated.pipe(
19
+ Operation.withHandler(
20
+ Effect.fnUntraced(function* ({ accessToken }) {
21
+ const scriptTemplates = (defaultScriptsForIntegration[accessToken.source] ?? [])
22
+ .map((id) => templates.find((t) => t.id === id))
23
+ .filter(Predicate.isNotNullable);
24
+
25
+ if (scriptTemplates.length > 0) {
26
+ yield* Operation.invoke(LayoutOperation.UpdateDialog, {
27
+ subject: DEPLOYMENT_DIALOG,
28
+ blockAlign: 'start',
29
+ state: true,
30
+ props: { accessToken, scriptTemplates },
31
+ });
32
+ }
33
+ }),
34
+ ),
35
+ );
36
+
37
+ export default handler;
@@ -0,0 +1,46 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { Octokit } from '@octokit/core';
6
+ import * as Effect from 'effect/Effect';
7
+
8
+ import { Script, Operation } from '@dxos/compute';
9
+
10
+ import { templates } from '../templates';
11
+ import { ScriptOperation } from '../types';
12
+
13
+ const handler: Operation.WithHandler<typeof ScriptOperation.CreateScript> = ScriptOperation.CreateScript.pipe(
14
+ Operation.withHandler(
15
+ Effect.fnUntraced(function* ({ name, gistUrl, initialTemplateId }) {
16
+ let source = templates[0].source;
17
+ let scriptName = name;
18
+
19
+ const gistId = gistUrl?.split('/').at(-1);
20
+ if (gistId) {
21
+ const octokit = new Octokit();
22
+ const response = yield* Effect.promise(() =>
23
+ octokit.request('GET /gists/{gist_id}', {
24
+ gist_id: gistId,
25
+ }),
26
+ );
27
+ const gistContent = Object.values(response.data.files ?? {})[0]?.content;
28
+ if (gistContent) {
29
+ source = gistContent;
30
+ }
31
+ }
32
+
33
+ if (initialTemplateId) {
34
+ const template = templates.find((template) => template.id === initialTemplateId);
35
+ if (template) {
36
+ source = template.source;
37
+ scriptName = scriptName || template.name;
38
+ }
39
+ }
40
+
41
+ return { object: Script.make({ name: scriptName, source }) };
42
+ }),
43
+ ),
44
+ );
45
+
46
+ export default handler;
@@ -0,0 +1,10 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { OperationHandlerSet } from '@dxos/compute';
6
+
7
+ export const ScriptOperationHandlerSet = OperationHandlerSet.lazy(
8
+ () => import('./access-token-created'),
9
+ () => import('./create-script'),
10
+ );
package/src/plugin.ts ADDED
@@ -0,0 +1,11 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { Plugin } from '@dxos/app-framework';
6
+
7
+ import { meta } from './meta';
8
+
9
+ export const ScriptPlugin = Plugin.lazy(meta, () => import('#plugin'));
10
+
11
+ export { ScriptOperationHandlerSet } from './operations';
@@ -0,0 +1,49 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import * as LanguageModel from '@effect/ai/LanguageModel';
6
+ import * as Chunk from 'effect/Chunk';
7
+ import * as Effect from 'effect/Effect';
8
+ import * as Schema from 'effect/Schema';
9
+ import * as Stream from 'effect/Stream';
10
+
11
+ import { AiService } from '@dxos/ai';
12
+ import { Operation } from '@dxos/compute';
13
+
14
+ const Anthropic = Operation.make({
15
+ meta: {
16
+ key: 'org.dxos.script.anthropic',
17
+ name: 'Anthropic Chat',
18
+ description: 'Chat with Anthropic',
19
+ },
20
+ input: Schema.Struct({
21
+ message: Schema.String,
22
+ }),
23
+ output: Schema.Any,
24
+ services: [AiService.AiService],
25
+ });
26
+
27
+ export default Anthropic.pipe(
28
+ Operation.withHandler(
29
+ Effect.fn(function* ({ message }) {
30
+ const model = (yield* AiService.AiService).model('@anthropic/claude-sonnet-4-5');
31
+
32
+ //
33
+ // Basic example.
34
+ //
35
+ const { text } = yield* LanguageModel.generateText({ prompt: message }).pipe(Effect.provide(model));
36
+
37
+ //
38
+ // Streaming example.
39
+ //
40
+ const parts = yield* LanguageModel.streamText({
41
+ prompt: 'Count from 1 to 5, one number per line.',
42
+ }).pipe(Stream.runCollect, Effect.map(Chunk.toArray), Effect.provide(model));
43
+ const textDeltas = parts.filter((p) => p.type === 'text-delta');
44
+ const fullText = textDeltas.map((p) => (p as { delta: string }).delta).join('');
45
+
46
+ return { response: text, streamText: fullText };
47
+ }),
48
+ ),
49
+ );
@@ -76,7 +76,7 @@ export default async ({ data: { bodyText }, context: { space, ai } }: any) => {
76
76
 
77
77
  const getContext = async ({ space }: any) => {
78
78
  let context = '';
79
- const { objects: docs } = await space.crud.query({ __typename: 'dxos.org/type/Document' }).run();
79
+ const { objects: docs } = await space.crud.query({ __typename: 'org.dxos.type.document' }).run();
80
80
  for (const doc of docs) {
81
81
  const { content } = await space.crud.query({ id: doc.content }).first();
82
82
  context += content + '\n\n';
@@ -0,0 +1,63 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { Chess as ChessJS } from 'chess.js';
6
+ import * as Effect from 'effect/Effect';
7
+ import * as Schema from 'effect/Schema';
8
+
9
+ import { Operation } from '@dxos/compute';
10
+ import { Database, Obj } from '@dxos/echo';
11
+ import { Chess } from '@dxos/plugin-chess';
12
+ import { GameRef, Game, loadGame } from '@dxos/plugin-game';
13
+
14
+ const ChessBot = Operation.make({
15
+ meta: {
16
+ key: 'org.dxos.script.chess-bot',
17
+ name: 'Chess Bot',
18
+ description: 'Plays a random move in a chess game.',
19
+ },
20
+ input: Schema.Struct({
21
+ game: GameRef(Chess.State).annotations({
22
+ description: 'The chess game to comment on.',
23
+ }),
24
+ player: Schema.optional(Schema.Literal('white', 'black')).annotations({
25
+ description: 'The player to play the game as.',
26
+ }),
27
+ }),
28
+ output: Schema.Struct({
29
+ state: Schema.String.annotations({
30
+ description: 'The state of the game as an ASCII art board.',
31
+ }),
32
+ }),
33
+ types: [Game, Chess.State],
34
+ services: [Database.Service],
35
+ });
36
+
37
+ export default ChessBot.pipe(
38
+ Operation.withHandler(
39
+ Effect.fnUntraced(function* ({ game, player = 'black' }) {
40
+ const { variant } = yield* loadGame(game, Chess.State);
41
+ const chess = new ChessJS();
42
+ chess.loadPgn(variant.pgn ?? '');
43
+ if (chess.turn() !== (player === 'white' ? 'w' : 'b')) {
44
+ return { state: chess.ascii() };
45
+ }
46
+
47
+ const moves = chess.moves({ verbose: true });
48
+ const move = moves[Math.floor(Math.random() * moves.length)];
49
+ if (!move) {
50
+ return { state: chess.ascii() };
51
+ }
52
+
53
+ chess.move(move.san);
54
+ const newPgn = chess.pgn();
55
+ Obj.update(variant, (variant) => {
56
+ const mutable = variant as Obj.Mutable<typeof variant>;
57
+ mutable.pgn = newPgn;
58
+ });
59
+ yield* Database.flush();
60
+ return { state: chess.ascii() };
61
+ }),
62
+ ),
63
+ );
@@ -0,0 +1,249 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import * as A from '@automerge/automerge';
6
+ import { Chess as ChessJS } from 'chess.js';
7
+ import * as Array from 'effect/Array';
8
+ import * as Effect from 'effect/Effect';
9
+ import * as Function from 'effect/Function';
10
+ import * as Layer from 'effect/Layer';
11
+ import * as Option from 'effect/Option';
12
+ import * as Schema from 'effect/Schema';
13
+
14
+ import { AiService, ConsolePrinter, ToolExecutionService, ToolResolverService } from '@dxos/ai';
15
+ import { AiRequest, GenerationObserver } from '@dxos/assistant';
16
+ import { ArtifactId } from '@dxos/assistant';
17
+ import { Trace, Operation, OperationRegistry } from '@dxos/compute';
18
+ import { Database, Filter, Obj, Ref, Relation } from '@dxos/echo';
19
+ import { Collection } from '@dxos/echo';
20
+ import { createDocAccessor } from '@dxos/echo-db';
21
+ import { log } from '@dxos/log';
22
+ import { Chess } from '@dxos/plugin-chess';
23
+ import { Game, GameRef, loadGame } from '@dxos/plugin-game';
24
+ import { Markdown } from '@dxos/plugin-markdown';
25
+ import { Text } from '@dxos/schema';
26
+ import { HasSubject } from '@dxos/types';
27
+ import { trim } from '@dxos/util';
28
+
29
+ const Commentary = Operation.make({
30
+ meta: {
31
+ key: 'org.dxos.function.chess.commentary',
32
+ name: 'Commentary',
33
+ description: 'Adds commentary about the most recent move to a markdown document associated with the chess game.',
34
+ },
35
+ input: Schema.Struct({
36
+ game: GameRef(Chess.State).annotations({
37
+ description: 'The chess game to comment on.',
38
+ }),
39
+ }),
40
+ output: Schema.Union(
41
+ Schema.Struct({
42
+ documentId: ArtifactId.annotations({
43
+ description: 'The ID of the markdown document that was updated or created.',
44
+ }),
45
+ commentary: Schema.String.annotations({
46
+ description: 'The commentary that was added.',
47
+ }),
48
+ }),
49
+ Schema.Void.annotations({
50
+ description: 'Function did not find anything to comment on.',
51
+ }),
52
+ ),
53
+ types: [Game, Chess.State, Markdown.Document, Text.Text, HasSubject.HasSubject, Collection.Collection],
54
+ services: [AiService.AiService, Database.Service],
55
+ });
56
+
57
+ export default Commentary.pipe(
58
+ Operation.withHandler(
59
+ Effect.fnUntraced(
60
+ function* ({ game: gameRef }) {
61
+ // Load the game and its Chess variant state.
62
+ log.info('load game', { gameRef });
63
+ const { game: chessGame, variant: chessState } = yield* loadGame(gameRef, Chess.State);
64
+
65
+ // Load the chess position from PGN or FEN.
66
+ const chess = new ChessJS();
67
+ if (chessState.pgn) {
68
+ chess.loadPgn(chessState.pgn);
69
+ } else if (chessState.fen) {
70
+ chess.load(chessState.fen);
71
+ } else {
72
+ log.info('Early return: no pgn or fen');
73
+ return;
74
+ }
75
+
76
+ // Get the most recent move
77
+ const history = chess.history({ verbose: true });
78
+ if (history.length === 0) {
79
+ throw new Error('No moves have been played yet');
80
+ }
81
+ const lastMove = history[history.length - 1];
82
+ const moveNumber = Math.ceil(history.length / 2);
83
+ const isWhiteMove = history.length % 2 === 1;
84
+ const player = isWhiteMove ? 'White' : 'Black';
85
+ const moveNotation = lastMove.san;
86
+
87
+ // Generate AI commentary about the move
88
+ const result = yield* new AiRequest({
89
+ observer: GenerationObserver.fromPrinter(new ConsolePrinter({ tag: 'chess-commentary' })),
90
+ }).run({
91
+ prompt:
92
+ `Comment on this chess move as if you're commentating a live match for an audience:\n\n` +
93
+ `Move ${moveNumber}: ${player} plays ${moveNotation} (${lastMove.from} to ${lastMove.to})${lastMove.captured ? `, capturing ${lastMove.captured}` : ''}\n` +
94
+ `Current position: ${chess.fen()}\n` +
95
+ `${chess.isCheck() ? 'The king is in check! ' : ''}` +
96
+ `${chess.isCheckmate() ? 'CHECKMATE! ' : ''}` +
97
+ `${chess.isStalemate() ? 'STALEMATE! ' : ''}` +
98
+ `\nGame so far:\n${chess.pgn()}`,
99
+ system: COMMENTARY_SYSTEM_PROMPT,
100
+ history: [],
101
+ });
102
+
103
+ const commentaryText = Function.pipe(
104
+ result,
105
+ Array.findLast((msg) => msg.sender.role === 'assistant' && msg.blocks.some((block) => block._tag === 'text')),
106
+ Option.flatMap((msg) =>
107
+ Function.pipe(
108
+ msg.blocks,
109
+ Array.findLast((block) => block._tag === 'text'),
110
+ Option.map((block) => block.text),
111
+ ),
112
+ ),
113
+ Option.getOrThrowWith(() => new Error('No commentary generated')),
114
+ );
115
+
116
+ const commentary = `## Move ${moveNumber}: ${player} plays ${moveNotation}\n\n${commentaryText}\n\n`;
117
+ log.info('commentary', { commentary });
118
+
119
+ // TODO(wittjosiah): Functions currently don't support traversals.
120
+ // const docs = yield* Database.runQuery(
121
+ // Query.select(Filter.id(chessGame.id)).targetOf(HasSubject.HasSubject).source(),
122
+ // ).pipe(Effect.map((objects) => objects.filter((object) => Obj.instanceOf(Markdown.Document, object))));
123
+ const docs = yield* Database.runQuery(Filter.type(HasSubject.HasSubject)).pipe(
124
+ Effect.map((relations) =>
125
+ relations.filter((relation) => {
126
+ // TODO(wittjosiah): This is a workaround for getTarget not handling deleted objects.
127
+ try {
128
+ log.info('relation', {
129
+ source: Obj.getDXN(Relation.getTarget(relation)).toString(),
130
+ game: Obj.getDXN(chessGame).toString(),
131
+ });
132
+ return Obj.getDXN(Relation.getTarget(relation)).toString() === Obj.getDXN(chessGame).toString();
133
+ } catch {
134
+ return false;
135
+ }
136
+ }),
137
+ ),
138
+ Effect.map((relations) =>
139
+ relations
140
+ .map((relation) => {
141
+ // TODO(wittjosiah): This is a workaround for getSource not handling deleted objects.
142
+ try {
143
+ return Relation.getSource(relation);
144
+ } catch {
145
+ return undefined;
146
+ }
147
+ })
148
+ .filter((source) => source !== undefined),
149
+ ),
150
+ Effect.map((sources) => {
151
+ const docs = sources.filter((source) => Obj.instanceOf(Markdown.Document, source));
152
+ log.info('docs', { sources, docs });
153
+ return docs;
154
+ }),
155
+ );
156
+ log.info('docs', { count: docs.length });
157
+
158
+ let document: Markdown.Document;
159
+ if (docs.length === 0) {
160
+ // TODO(wittjosiah): Deploy fails if `SpaceProperties` schema is imported because its from `client-protocol`.
161
+ const [properties] = yield* Database.runQuery(Filter.typename('org.dxos.type.spaceProperties'));
162
+ const rootCollection = yield* Database.load<Collection.Collection>(
163
+ properties[Collection.Collection.typename],
164
+ );
165
+
166
+ log.info('rootCollection', { rootCollection });
167
+
168
+ // Create a new markdown document
169
+ const gameName = chessGame.name || 'Chess Game';
170
+ document = yield* Database.add(
171
+ Markdown.make({
172
+ name: `${gameName} Commentary`,
173
+ content: `# ${gameName} Commentary\n\n${commentary}`,
174
+ }),
175
+ );
176
+
177
+ const documentRef = Ref.make(document);
178
+ Obj.update(rootCollection, (rootCollection) => {
179
+ rootCollection.objects.push(documentRef);
180
+ });
181
+
182
+ // Create the HasSubject relation
183
+ yield* Database.add(
184
+ Relation.make(HasSubject.HasSubject, {
185
+ [Relation.Source]: document,
186
+ [Relation.Target]: chessGame,
187
+ completedAt: new Date().toISOString(),
188
+ }),
189
+ );
190
+ } else {
191
+ document = docs[0];
192
+
193
+ // Load the text content and append the commentary
194
+ const text = yield* Database.load(document.content);
195
+ const accessor = createDocAccessor(text, ['content']);
196
+ accessor.handle.change((doc: A.Doc<Text.Text>) => {
197
+ A.splice(doc, accessor.path.slice(), text.content.length, 0, commentary);
198
+ });
199
+ }
200
+
201
+ log.info('result', { documentId: Obj.getDXN(document).toString(), commentary });
202
+
203
+ yield* Database.flush();
204
+
205
+ return {
206
+ documentId: Obj.getDXN(document).toString(),
207
+ commentary,
208
+ };
209
+ },
210
+ Effect.provide(
211
+ Layer.mergeAll(
212
+ AiService.model('@anthropic/claude-haiku-4-5'),
213
+ ToolResolverService.layerEmpty,
214
+ ToolExecutionService.layerEmpty,
215
+ Trace.writerLayerNoop,
216
+ Database.notAvailable,
217
+ Layer.succeed(Operation.Service, {
218
+ invoke: () => Effect.die('Not available.'),
219
+ schedule: () => Effect.die('Not available.'),
220
+ invokePromise: async () => ({ error: new Error('Not available.') }),
221
+ } as any),
222
+ Layer.succeed(OperationRegistry.Service, { resolve: () => Effect.succeed(undefined) } as any),
223
+ ),
224
+ ),
225
+ ),
226
+ ),
227
+ );
228
+
229
+ const COMMENTARY_SYSTEM_PROMPT = trim`
230
+ You are a professional chess commentator providing live commentary for a chess match.
231
+
232
+ # Style
233
+ - Write in an engaging, enthusiastic style as if commentating for a live audience
234
+ - Be concise but informative (2-4 sentences)
235
+ - Explain the strategic implications of the move
236
+ - Note any tactical elements (captures, threats, checks)
237
+ - Comment on the position and what it means for the game
238
+
239
+ # Format
240
+ - Write in plain text (no markdown formatting in the commentary itself)
241
+ - Be natural and conversational
242
+ - Use chess terminology appropriately but keep it accessible
243
+
244
+ # Special Situations
245
+ - If it's checkmate, express excitement about the conclusion
246
+ - If it's check, note the pressure on the king
247
+ - If a piece is captured, mention the material exchange
248
+ - Comment on the development of pieces and control of key squares when relevant
249
+ `;
@@ -8,7 +8,7 @@ import { Expando, S, create, defineFunction } from 'dxos:functions';
8
8
  import { randText } from 'https://esm.sh/@ngneat/falso@7.1.1?bundle=false';
9
9
 
10
10
  export default defineFunction({
11
- key: 'dxos.org/script/data-generator',
11
+ key: 'org.dxos.script.data-generator',
12
12
  name: 'Data Generator',
13
13
  inputSchema: S.Struct({
14
14
  documentAmount: S.optional(S.Number),
@@ -29,7 +29,7 @@ const MessageSchema = S.Struct({
29
29
  content: S.String,
30
30
  }).pipe(
31
31
  EchoObject({
32
- typename: 'example.com/type/Message',
32
+ typename: 'com.example.type.message',
33
33
  version: '0.1.0',
34
34
  }),
35
35
  );
@@ -42,7 +42,7 @@ const generateSnowflake = (unixTimestamp: number): bigint => {
42
42
  };
43
43
 
44
44
  export default defineFunction({
45
- key: 'dxos.org/script/discord',
45
+ key: 'org.dxos.script.discord',
46
46
  name: 'Discord',
47
47
  inputSchema: S.Struct({
48
48
  // TODO(wittjosiah): Remove. This is used to provide a terminal for a cron trigger.
@@ -60,7 +60,7 @@ export default defineFunction({
60
60
  handler: ({ data: { channelId, queueId, after = DEFAULT_AFTER, pageSize = 5 }, context: { space } }: any) =>
61
61
  Effect.gen(function* () {
62
62
  const { token } = yield* Effect.tryPromise({
63
- try: () => space.db.query(Filter.typename('dxos.org/type/AccessToken', { source: 'discord.com' })).first(),
63
+ try: () => space.db.query(Filter.typename('org.dxos.type.accessToken', { source: 'discord.com' })).first(),
64
64
  catch: (e: any) => e,
65
65
  });
66
66
  const { objects } = yield* Effect.tryPromise({