@dxos/plugin-script 0.12.0-next-73daef452f1464b62efdbca75fb0067c1066f264 → 0.13.0

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 (329) hide show
  1. package/PLUGIN.mdl +93 -17
  2. package/README.md +1 -1
  3. package/dist/lib/Notebook.mjs +4 -5
  4. package/dist/lib/Notebook.mjs.map +1 -1
  5. package/dist/lib/ScriptCapabilities.mjs.map +1 -1
  6. package/dist/lib/ScriptOperation.mjs +1 -1
  7. package/dist/lib/ScriptOperation.mjs.map +1 -1
  8. package/dist/lib/ScriptOperationHandlerSet.mjs.map +1 -1
  9. package/dist/lib/ScriptSkill.mjs +1 -1
  10. package/dist/lib/ScriptSkill.mjs.map +1 -1
  11. package/dist/lib/capabilities.browser.mjs +51 -0
  12. package/dist/lib/capabilities.browser.mjs.map +1 -0
  13. package/dist/lib/capabilities.mjs +17 -7
  14. package/dist/lib/capabilities.mjs.map +1 -1
  15. package/dist/lib/capabilities.node.mjs +16 -4
  16. package/dist/lib/capabilities.node.mjs.map +1 -1
  17. package/dist/lib/capabilities.tauri.mjs +51 -0
  18. package/dist/lib/capabilities.tauri.mjs.map +1 -0
  19. package/dist/lib/capabilities.workerd.mjs +1 -1
  20. package/dist/lib/capabilities.workerd.mjs.map +1 -1
  21. package/dist/lib/chunk-DeploymentDialog.mjs +12 -9
  22. package/dist/lib/chunk-DeploymentDialog.mjs.map +1 -1
  23. package/dist/lib/chunk-NotebookArticle.mjs +37 -36
  24. package/dist/lib/chunk-NotebookArticle.mjs.map +1 -1
  25. package/dist/lib/chunk-PLUGIN.mjs +6 -0
  26. package/dist/lib/chunk-PLUGIN.mjs.map +1 -0
  27. package/dist/lib/chunk-ScriptArticle.mjs +14 -15
  28. package/dist/lib/chunk-ScriptArticle.mjs.map +1 -1
  29. package/dist/lib/chunk-ScriptProperties.mjs +91 -94
  30. package/dist/lib/chunk-ScriptProperties.mjs.map +1 -1
  31. package/dist/lib/chunk-ScriptSettings.mjs +11 -8
  32. package/dist/lib/chunk-ScriptSettings.mjs.map +1 -1
  33. package/dist/lib/chunk-TestContainer.mjs +5 -5
  34. package/dist/lib/chunk-TestContainer.mjs.map +1 -1
  35. package/dist/lib/chunk-app-graph-builder.mjs +2 -0
  36. package/dist/lib/chunk-app-graph-builder.mjs.map +1 -1
  37. package/dist/lib/chunk-compiler.mjs +87 -4
  38. package/dist/lib/chunk-compiler.mjs.map +1 -1
  39. package/dist/lib/chunk-create-object.mjs +1 -1
  40. package/dist/lib/chunk-create-script.mjs.map +1 -1
  41. package/dist/lib/chunk-create.mjs +4 -4
  42. package/dist/lib/chunk-create.mjs.map +1 -1
  43. package/dist/lib/chunk-definitions.mjs +246 -0
  44. package/dist/lib/chunk-definitions.mjs.map +1 -0
  45. package/dist/lib/chunk-delete.mjs +2 -2
  46. package/dist/lib/chunk-delete.mjs.map +1 -1
  47. package/dist/lib/chunk-deploy.mjs +16 -12
  48. package/dist/lib/chunk-deploy.mjs.map +1 -1
  49. package/dist/lib/chunk-errors.mjs +8 -0
  50. package/dist/lib/chunk-errors.mjs.map +1 -0
  51. package/dist/lib/chunk-functions.mjs +66 -246
  52. package/dist/lib/chunk-functions.mjs.map +1 -1
  53. package/dist/lib/chunk-inspect-invocations.mjs +3 -3
  54. package/dist/lib/chunk-inspect-invocations.mjs.map +1 -1
  55. package/dist/lib/chunk-install-function.mjs +11 -11
  56. package/dist/lib/chunk-install-function.mjs.map +1 -1
  57. package/dist/lib/chunk-invoke.mjs +6 -6
  58. package/dist/lib/chunk-invoke.mjs.map +1 -1
  59. package/dist/lib/chunk-operation-handler.mjs +16 -2
  60. package/dist/lib/chunk-operation-handler.mjs.map +1 -1
  61. package/dist/lib/chunk-query-deployed-functions.mjs +5 -6
  62. package/dist/lib/chunk-query-deployed-functions.mjs.map +1 -1
  63. package/dist/lib/chunk-react-surface.mjs +14 -10
  64. package/dist/lib/chunk-react-surface.mjs.map +1 -1
  65. package/dist/lib/chunk-read.mjs +4 -3
  66. package/dist/lib/chunk-read.mjs.map +1 -1
  67. package/dist/lib/chunk-settings.mjs +2 -2
  68. package/dist/lib/chunk-settings.mjs.map +1 -1
  69. package/dist/lib/chunk-skill-definition.mjs +1 -1
  70. package/dist/lib/chunk-templates.mjs +3 -3
  71. package/dist/lib/chunk-update.mjs +4 -3
  72. package/dist/lib/chunk-update.mjs.map +1 -1
  73. package/dist/lib/components.mjs +114 -123
  74. package/dist/lib/components.mjs.map +1 -1
  75. package/dist/lib/containers.mjs.map +1 -1
  76. package/dist/lib/hooks.mjs +96 -16
  77. package/dist/lib/hooks.mjs.map +1 -1
  78. package/dist/lib/index.mjs +5 -3
  79. package/dist/lib/meta.mjs.map +1 -1
  80. package/dist/lib/ns/ScriptFunction.mjs +12 -0
  81. package/dist/lib/ns/ScriptFunction.mjs.map +1 -0
  82. package/dist/lib/ns/Templates.mjs +11 -0
  83. package/dist/lib/ns/Templates.mjs.map +1 -0
  84. package/dist/lib/testing.mjs +1 -1
  85. package/dist/lib/translations.mjs +2 -1
  86. package/dist/lib/translations.mjs.map +1 -1
  87. package/dist/types/src/ScriptFunction.d.ts +2 -0
  88. package/dist/types/src/ScriptFunction.d.ts.map +1 -0
  89. package/dist/types/src/Templates.d.ts +2 -0
  90. package/dist/types/src/Templates.d.ts.map +1 -0
  91. package/dist/types/src/capabilities/ScriptSurfaces.d.ts.map +1 -1
  92. package/dist/types/src/capabilities/compiler.d.ts +2 -1
  93. package/dist/types/src/capabilities/compiler.d.ts.map +1 -1
  94. package/dist/types/src/capabilities/errors.d.ts +33 -0
  95. package/dist/types/src/capabilities/errors.d.ts.map +1 -0
  96. package/dist/types/src/capabilities/gen/browser.d.ts +12 -0
  97. package/dist/types/src/capabilities/gen/browser.d.ts.map +1 -0
  98. package/dist/types/src/capabilities/gen/node.d.ts.map +1 -1
  99. package/dist/types/src/capabilities/gen/tauri.d.ts +12 -0
  100. package/dist/types/src/capabilities/gen/tauri.d.ts.map +1 -0
  101. package/dist/types/src/capabilities/gen/workerd.d.ts.map +1 -1
  102. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  103. package/dist/types/src/compiler/index.d.ts +1 -1
  104. package/dist/types/src/compiler/index.d.ts.map +1 -1
  105. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts +3 -3
  106. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts.map +1 -1
  107. package/dist/types/src/components/NotebookStack/NotebookMenu.d.ts.map +1 -1
  108. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts +4 -4
  109. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts.map +1 -1
  110. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts +10 -0
  111. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts.map +1 -1
  112. package/dist/types/src/components/NotebookStack/index.d.ts +2 -2
  113. package/dist/types/src/components/NotebookStack/index.d.ts.map +1 -1
  114. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts +2 -2
  115. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts.map +1 -1
  116. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts +10 -0
  117. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts.map +1 -1
  118. package/dist/types/src/components/ScriptToolbar/index.d.ts +1 -1
  119. package/dist/types/src/components/ScriptToolbar/index.d.ts.map +1 -1
  120. package/dist/types/src/components/TestPanel/TestPanel.d.ts +2 -2
  121. package/dist/types/src/components/TestPanel/TestPanel.d.ts.map +1 -1
  122. package/dist/types/src/components/TestPanel/index.d.ts +1 -1
  123. package/dist/types/src/components/TestPanel/index.d.ts.map +1 -1
  124. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts +2 -2
  125. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts.map +1 -1
  126. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts +1 -1
  127. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts.map +1 -1
  128. package/dist/types/src/components/TypescriptEditor/index.d.ts +1 -1
  129. package/dist/types/src/components/TypescriptEditor/index.d.ts.map +1 -1
  130. package/dist/types/src/components/index.d.ts +4 -5
  131. package/dist/types/src/components/index.d.ts.map +1 -1
  132. package/dist/types/src/containers/DeploymentDialog/DeploymentDialog.d.ts +1 -1
  133. package/dist/types/src/containers/DeploymentDialog/DeploymentDialog.d.ts.map +1 -1
  134. package/dist/types/src/containers/DeploymentDialog/DeploymentDialog.stories.d.ts +10 -0
  135. package/dist/types/src/containers/DeploymentDialog/DeploymentDialog.stories.d.ts.map +1 -1
  136. package/dist/types/src/containers/DeploymentDialog/index.d.ts +1 -1
  137. package/dist/types/src/containers/DeploymentDialog/index.d.ts.map +1 -1
  138. package/dist/types/src/containers/NotebookArticle/NotebookArticle.d.ts +1 -1
  139. package/dist/types/src/containers/NotebookArticle/NotebookArticle.d.ts.map +1 -1
  140. package/dist/types/src/containers/NotebookArticle/NotebookArticle.stories.d.ts +1 -1
  141. package/dist/types/src/containers/NotebookArticle/NotebookArticle.stories.d.ts.map +1 -1
  142. package/dist/types/src/containers/NotebookArticle/index.d.ts +1 -1
  143. package/dist/types/src/containers/NotebookArticle/index.d.ts.map +1 -1
  144. package/dist/types/src/containers/ScriptArticle/ScriptArticle.d.ts +1 -1
  145. package/dist/types/src/containers/ScriptArticle/ScriptArticle.d.ts.map +1 -1
  146. package/dist/types/src/containers/ScriptArticle/ScriptArticle.stories.d.ts +10 -0
  147. package/dist/types/src/containers/ScriptArticle/ScriptArticle.stories.d.ts.map +1 -1
  148. package/dist/types/src/containers/ScriptArticle/index.d.ts +1 -1
  149. package/dist/types/src/containers/ScriptArticle/index.d.ts.map +1 -1
  150. package/dist/types/src/containers/ScriptProperties/FunctionBinding.d.ts.map +1 -1
  151. package/dist/types/src/containers/ScriptProperties/FunctionPublishing.d.ts.map +1 -1
  152. package/dist/types/src/containers/ScriptProperties/ScriptProperties.d.ts +1 -1
  153. package/dist/types/src/containers/ScriptProperties/ScriptProperties.d.ts.map +1 -1
  154. package/dist/types/src/containers/ScriptProperties/ScriptProperties.stories.d.ts +10 -0
  155. package/dist/types/src/containers/ScriptProperties/ScriptProperties.stories.d.ts.map +1 -1
  156. package/dist/types/src/containers/ScriptProperties/SkillEditor.d.ts.map +1 -1
  157. package/dist/types/src/containers/ScriptProperties/index.d.ts +1 -1
  158. package/dist/types/src/containers/ScriptProperties/index.d.ts.map +1 -1
  159. package/dist/types/src/containers/ScriptSettings/ScriptSettings.d.ts +2 -2
  160. package/dist/types/src/containers/ScriptSettings/ScriptSettings.d.ts.map +1 -1
  161. package/dist/types/src/containers/ScriptSettings/ScriptSettings.stories.d.ts +11 -1
  162. package/dist/types/src/containers/ScriptSettings/ScriptSettings.stories.d.ts.map +1 -1
  163. package/dist/types/src/containers/ScriptSettings/index.d.ts +1 -1
  164. package/dist/types/src/containers/ScriptSettings/index.d.ts.map +1 -1
  165. package/dist/types/src/containers/TestContainer/index.d.ts +1 -1
  166. package/dist/types/src/containers/TestContainer/index.d.ts.map +1 -1
  167. package/dist/types/src/containers/index.d.ts.map +1 -1
  168. package/dist/types/src/hooks/deploy.d.ts +3 -3
  169. package/dist/types/src/hooks/deploy.d.ts.map +1 -1
  170. package/dist/types/src/hooks/index.d.ts +6 -6
  171. package/dist/types/src/hooks/index.d.ts.map +1 -1
  172. package/dist/types/src/hooks/useCompiler.d.ts +1 -1
  173. package/dist/types/src/hooks/useCompiler.d.ts.map +1 -1
  174. package/dist/types/src/hooks/useCreateAndDeployScriptTemplates.d.ts +1 -1
  175. package/dist/types/src/hooks/useCreateAndDeployScriptTemplates.d.ts.map +1 -1
  176. package/dist/types/src/hooks/useToolbarState.d.ts +2 -2
  177. package/dist/types/src/hooks/useToolbarState.d.ts.map +1 -1
  178. package/dist/types/src/index.d.ts +5 -3
  179. package/dist/types/src/index.d.ts.map +1 -1
  180. package/dist/types/src/notebook/compute-graph.d.ts +3 -3
  181. package/dist/types/src/notebook/compute-graph.d.ts.map +1 -1
  182. package/dist/types/src/notebook/index.d.ts +1 -1
  183. package/dist/types/src/notebook/index.d.ts.map +1 -1
  184. package/dist/types/src/operations/ScriptOperationHandlerSet.d.ts.map +1 -1
  185. package/dist/types/src/operations/index.d.ts +1 -1
  186. package/dist/types/src/operations/index.d.ts.map +1 -1
  187. package/dist/types/src/skills/ScriptSkill.d.ts.map +1 -1
  188. package/dist/types/src/skills/functions/definitions.d.ts +8 -6
  189. package/dist/types/src/skills/functions/definitions.d.ts.map +1 -1
  190. package/dist/types/src/skills/functions/deploy.d.ts +4 -2
  191. package/dist/types/src/skills/functions/deploy.d.ts.map +1 -1
  192. package/dist/types/src/skills/functions/errors.d.ts +33 -0
  193. package/dist/types/src/skills/functions/errors.d.ts.map +1 -0
  194. package/dist/types/src/skills/functions/index.d.ts +1 -1
  195. package/dist/types/src/skills/functions/index.d.ts.map +1 -1
  196. package/dist/types/src/skills/functions/install-function.d.ts +3 -2
  197. package/dist/types/src/skills/functions/install-function.d.ts.map +1 -1
  198. package/dist/types/src/skills/functions/invoke.d.ts +2 -2
  199. package/dist/types/src/skills/functions/invoke.d.ts.map +1 -1
  200. package/dist/types/src/skills/functions/query-deployed-functions.d.ts +2 -2
  201. package/dist/types/src/skills/functions/query-deployed-functions.d.ts.map +1 -1
  202. package/dist/types/src/skills/index.d.ts +1 -1
  203. package/dist/types/src/skills/index.d.ts.map +1 -1
  204. package/dist/types/src/templates/forex-effect.d.ts.map +1 -1
  205. package/dist/types/src/testing/index.d.ts +2 -2
  206. package/dist/types/src/testing/index.d.ts.map +1 -1
  207. package/dist/types/src/translations.d.ts +10 -0
  208. package/dist/types/src/translations.d.ts.map +1 -1
  209. package/dist/types/src/types/Notebook.d.ts.map +1 -1
  210. package/dist/types/src/types/ScriptCapabilities.d.ts +3 -3
  211. package/dist/types/src/types/ScriptCapabilities.d.ts.map +1 -1
  212. package/dist/types/src/types/index.d.ts +5 -5
  213. package/dist/types/src/types/index.d.ts.map +1 -1
  214. package/dist/types/src/util/deploy.d.ts +6 -3
  215. package/dist/types/src/util/deploy.d.ts.map +1 -1
  216. package/dist/types/src/util/functions.d.ts +1 -1
  217. package/dist/types/src/util/functions.d.ts.map +1 -1
  218. package/dist/types/src/util/index.d.ts +2 -2
  219. package/dist/types/src/util/index.d.ts.map +1 -1
  220. package/dist/types/tsconfig.tsbuildinfo +1 -1
  221. package/package.json +106 -96
  222. package/src/ScriptFunction.ts +7 -0
  223. package/src/Templates.ts +7 -0
  224. package/src/capabilities/ScriptSurfaces.tsx +19 -10
  225. package/src/capabilities/app-graph-builder.ts +2 -0
  226. package/src/capabilities/compiler.ts +6 -5
  227. package/src/capabilities/errors.ts +8 -0
  228. package/src/capabilities/gen/browser.ts +62 -0
  229. package/src/capabilities/gen/node.ts +10 -10
  230. package/src/capabilities/gen/tauri.ts +62 -0
  231. package/src/capabilities/gen/workerd.ts +4 -4
  232. package/src/capabilities/index.ts +11 -11
  233. package/src/capabilities/operation-handler.ts +1 -1
  234. package/src/capabilities/react-surface.ts +4 -4
  235. package/src/capabilities/settings.ts +2 -2
  236. package/src/compiler/compiler.browser.test.ts +1 -1
  237. package/src/compiler/index.ts +1 -1
  238. package/src/components/NotebookStack/NotebookCell.tsx +35 -29
  239. package/src/components/NotebookStack/NotebookMenu.tsx +27 -26
  240. package/src/components/NotebookStack/NotebookStack.stories.tsx +3 -3
  241. package/src/components/NotebookStack/NotebookStack.tsx +20 -17
  242. package/src/components/NotebookStack/index.ts +2 -2
  243. package/src/components/ScriptToolbar/ScriptToolbar.stories.tsx +5 -5
  244. package/src/components/ScriptToolbar/ScriptToolbar.tsx +14 -15
  245. package/src/components/ScriptToolbar/index.ts +1 -1
  246. package/src/components/TestPanel/TestPanel.tsx +29 -23
  247. package/src/components/TestPanel/index.ts +1 -1
  248. package/src/components/TypescriptEditor/TypescriptEditor.stories.tsx +10 -8
  249. package/src/components/TypescriptEditor/TypescriptEditor.tsx +11 -7
  250. package/src/components/TypescriptEditor/index.ts +1 -1
  251. package/src/components/index.ts +4 -5
  252. package/src/containers/DeploymentDialog/DeploymentDialog.stories.tsx +5 -7
  253. package/src/containers/DeploymentDialog/DeploymentDialog.tsx +18 -15
  254. package/src/containers/DeploymentDialog/index.ts +1 -1
  255. package/src/containers/NotebookArticle/NotebookArticle.stories.tsx +6 -6
  256. package/src/containers/NotebookArticle/NotebookArticle.tsx +25 -21
  257. package/src/containers/NotebookArticle/index.ts +1 -1
  258. package/src/containers/ScriptArticle/ScriptArticle.stories.tsx +3 -3
  259. package/src/containers/ScriptArticle/ScriptArticle.tsx +13 -11
  260. package/src/containers/ScriptArticle/index.ts +1 -1
  261. package/src/containers/ScriptProperties/FunctionBinding.tsx +18 -18
  262. package/src/containers/ScriptProperties/FunctionPublishing.tsx +22 -22
  263. package/src/containers/ScriptProperties/ScriptProperties.stories.tsx +3 -3
  264. package/src/containers/ScriptProperties/ScriptProperties.tsx +10 -10
  265. package/src/containers/ScriptProperties/SkillEditor.tsx +16 -14
  266. package/src/containers/ScriptProperties/index.ts +1 -1
  267. package/src/containers/ScriptSettings/ScriptSettings.stories.tsx +1 -1
  268. package/src/containers/ScriptSettings/ScriptSettings.tsx +16 -11
  269. package/src/containers/ScriptSettings/index.ts +1 -1
  270. package/src/containers/TestContainer/TestContainer.tsx +4 -4
  271. package/src/containers/TestContainer/index.ts +1 -1
  272. package/src/containers/index.ts +6 -6
  273. package/src/e2e/ai.test.ts +1 -1
  274. package/src/hooks/deploy.ts +12 -5
  275. package/src/hooks/index.ts +6 -6
  276. package/src/hooks/template.ts +1 -1
  277. package/src/hooks/useCompiler.ts +8 -7
  278. package/src/hooks/useCreateAndDeployScriptTemplates.ts +10 -5
  279. package/src/hooks/useToolbarState.ts +4 -4
  280. package/src/index.ts +5 -3
  281. package/src/meta.ts +1 -1
  282. package/src/notebook/compute-graph.test.ts +2 -2
  283. package/src/notebook/compute-graph.ts +4 -4
  284. package/src/notebook/index.ts +1 -1
  285. package/src/notebook/vfs-parser.test.ts +1 -1
  286. package/src/notebook/vfs-parser.ts +1 -1
  287. package/src/operations/ScriptOperationHandlerSet.ts +3 -1
  288. package/src/operations/create-script.ts +1 -1
  289. package/src/operations/index.ts +1 -1
  290. package/src/plugin.test.ts +2 -2
  291. package/src/skills/ScriptSkill.ts +3 -1
  292. package/src/skills/functions/create.ts +4 -4
  293. package/src/skills/functions/definitions.ts +8 -6
  294. package/src/skills/functions/delete.ts +1 -1
  295. package/src/skills/functions/deploy.ts +13 -9
  296. package/src/skills/functions/errors.ts +8 -0
  297. package/src/skills/functions/index.ts +11 -11
  298. package/src/skills/functions/inspect-invocations.ts +1 -1
  299. package/src/skills/functions/install-function.ts +11 -14
  300. package/src/skills/functions/invoke.ts +5 -5
  301. package/src/skills/functions/query-deployed-functions.ts +3 -4
  302. package/src/skills/functions/read.ts +3 -2
  303. package/src/skills/functions/update.ts +3 -2
  304. package/src/skills/index.ts +1 -1
  305. package/src/templates/anthropic.ts +2 -2
  306. package/src/templates/commentary.ts +1 -1
  307. package/src/templates/forex-effect.ts +7 -4
  308. package/src/testing/index.ts +2 -2
  309. package/src/translations.ts +4 -2
  310. package/src/types/Notebook.ts +6 -4
  311. package/src/types/ScriptCapabilities.ts +3 -3
  312. package/src/types/ScriptOperation.ts +1 -1
  313. package/src/types/index.ts +5 -5
  314. package/src/util/deploy.ts +10 -7
  315. package/src/util/functions.ts +24 -15
  316. package/src/util/index.ts +2 -2
  317. package/dist/lib/chunk-compiler2.mjs +0 -76
  318. package/dist/lib/chunk-compiler2.mjs.map +0 -1
  319. package/dist/lib/chunk-util.mjs +0 -146
  320. package/dist/lib/chunk-util.mjs.map +0 -1
  321. package/dist/types/src/components/QueryEditor/QueryEditor.d.ts +0 -5
  322. package/dist/types/src/components/QueryEditor/QueryEditor.d.ts.map +0 -1
  323. package/dist/types/src/components/QueryEditor/QueryEditor.stories.d.ts +0 -14
  324. package/dist/types/src/components/QueryEditor/QueryEditor.stories.d.ts.map +0 -1
  325. package/dist/types/src/components/QueryEditor/index.d.ts +0 -2
  326. package/dist/types/src/components/QueryEditor/index.d.ts.map +0 -1
  327. package/src/components/QueryEditor/QueryEditor.stories.tsx +0 -91
  328. package/src/components/QueryEditor/QueryEditor.tsx +0 -50
  329. package/src/components/QueryEditor/index.ts +0 -5
@@ -5,9 +5,17 @@
5
5
  import React, { forwardRef, useRef, useState } from 'react';
6
6
 
7
7
  import { log } from '@dxos/log';
8
- import { Avatar, Icon, Input, ScrollArea, type ThemedClassName, Toolbar, useTranslation } from '@dxos/react-ui';
9
- import { composable, composableProps } from '@dxos/react-ui';
10
8
  import { JsonHighlighter } from '@dxos/react-ui-syntax-highlighter';
9
+ import * as Avatar from '@dxos/react-ui/Avatar';
10
+ import * as Button from '@dxos/react-ui/Button';
11
+ import * as Field from '@dxos/react-ui/Field';
12
+ import * as Hooks from '@dxos/react-ui/Hooks';
13
+ import * as Icon from '@dxos/react-ui/Icon';
14
+ import * as Input from '@dxos/react-ui/Input';
15
+ import * as Layout from '@dxos/react-ui/Layout';
16
+ import * as ScrollArea from '@dxos/react-ui/ScrollArea';
17
+ import * as Toolbar from '@dxos/react-ui/Toolbar';
18
+ import * as Util from '@dxos/react-ui/Util';
11
19
  import { mx } from '@dxos/ui-theme';
12
20
 
13
21
  import { meta } from '#meta';
@@ -24,14 +32,14 @@ type Message = {
24
32
  error?: Error;
25
33
  };
26
34
 
27
- export type TestPanelProps = ThemedClassName<{
35
+ export type TestPanelProps = Util.ThemedClassName<{
28
36
  onInvoke?: (input: unknown) => Promise<unknown>;
29
37
  }>;
30
38
 
31
39
  // TODO(burdon): Need persistent history (currently lost when switching tabs).
32
- export const TestPanel = composable<HTMLDivElement, TestPanelProps>(
40
+ export const TestPanel = Util.composable<HTMLDivElement, TestPanelProps>(
33
41
  ({ classNames, onInvoke, ...props }, forwardedRef) => {
34
- const { t } = useTranslation(meta.profile.key);
42
+ const { t } = Hooks.useTranslation(meta.profile.key);
35
43
 
36
44
  const inputRef = useRef<HTMLInputElement>(null);
37
45
  const [input, setInput] = useState('');
@@ -108,15 +116,15 @@ export const TestPanel = composable<HTMLDivElement, TestPanelProps>(
108
116
 
109
117
  return (
110
118
  <div
111
- {...composableProps(props, { classNames: ['flex flex-col h-full overflow-hidden', classNames] })}
119
+ {...Util.composableProps(props, { classNames: ['flex flex-col h-full overflow-hidden', classNames] })}
112
120
  ref={forwardedRef}
113
121
  >
114
122
  {/* TODO(burdon): Replace with Thread. */}
115
123
  <MessageThread ref={scrollerRef} state={state} history={history} />
116
124
  {/* TODO(burdon): Replace with Form based on the function's input schema. */}
117
125
  <Toolbar.Root>
118
- <Input.Root>
119
- <Input.TextInput
126
+ <Field.Root>
127
+ <Input.Root
120
128
  ref={inputRef}
121
129
  autoFocus
122
130
  placeholder={t('function-request.placeholder')}
@@ -124,9 +132,9 @@ export const TestPanel = composable<HTMLDivElement, TestPanelProps>(
124
132
  onChange={(ev) => setInput(ev.target.value)}
125
133
  onKeyDown={(ev) => ev.key === 'Enter' && handleRequest(input)}
126
134
  />
127
- </Input.Root>
128
- <Toolbar.IconButton icon='ph--play--regular' label='Execute' iconOnly onClick={() => handleRequest(input)} />
129
- <Toolbar.IconButton icon='ph--trash--regular' label='Clear' iconOnly onClick={handleClear} />
135
+ </Field.Root>
136
+ <Button.Root icon='ph--play--regular' label='Execute' iconOnly onClick={() => handleRequest(input)} />
137
+ <Button.Root icon='ph--trash--regular' label='Clear' iconOnly onClick={handleClear} />
130
138
  </Toolbar.Root>
131
139
  </div>
132
140
  );
@@ -140,26 +148,28 @@ type MessageThreadProps = {
140
148
  history: Message[];
141
149
  };
142
150
 
151
+ const MESSAGE_COLS = ['var(--dx-rail-item)', 'fill', 'var(--dx-rail-item)'] as const;
152
+
143
153
  const MessageThread = forwardRef<HTMLDivElement, MessageThreadProps>(
144
154
  ({ state, history }: MessageThreadProps, forwardedRef) => {
145
155
  return (
146
156
  <ScrollArea.Root orientation='vertical' classNames='h-full' ref={forwardedRef}>
147
157
  <ScrollArea.Viewport classNames='gap-6 p-2'>
148
158
  {history.map((message, i) => (
149
- <div key={i} className='grid grid-cols-[var(--dx-rail-item)_1fr_var(--dx-rail-item)]'>
159
+ <Layout.Grid key={i} cols={MESSAGE_COLS}>
150
160
  <div className='p-1'>{message.type === 'response' && <RobotAvatar />}</div>
151
161
  <div className='overflow-auto'>
152
162
  <MessageItem message={message} />
153
163
  </div>
154
- </div>
164
+ </Layout.Grid>
155
165
  ))}
156
166
 
157
167
  {state === 'pending' && (
158
- <div className='grid grid-cols-[var(--dx-rail-item)_1fr_var(--dx-rail-item)]'>
168
+ <Layout.Grid cols={MESSAGE_COLS}>
159
169
  <div className='p-1'>
160
- <Icon icon='ph--spinner--regular' size={6} classNames='animate-spin' />
170
+ <Icon.Icon icon='ph--spinner--regular' size='xl' spin />
161
171
  </div>
162
- </div>
172
+ </Layout.Grid>
163
173
  )}
164
174
  </ScrollArea.Viewport>
165
175
  </ScrollArea.Root>
@@ -167,9 +177,9 @@ const MessageThread = forwardRef<HTMLDivElement, MessageThreadProps>(
167
177
  },
168
178
  );
169
179
 
170
- const MessageItem = ({ classNames, message }: ThemedClassName<{ message: Message }>) => {
180
+ const MessageItem = ({ classNames, message }: Util.ThemedClassName<{ message: Message }>) => {
171
181
  const { type, text, data, error } = message;
172
- const wrapper = 'p-1 px-2 rounded-md bg-hover-surface overflow-auto';
182
+ const wrapper = 'p-1 px-2 rounded-md bg-hover-surface';
173
183
  return (
174
184
  <div className={mx('flex', type === 'request' ? 'ml-[1rem] justify-end' : 'mr-[1rem]', classNames)}>
175
185
  {error && <div className={mx(wrapper, 'whitespace-pre text-error-text')}>{String(error)}</div>}
@@ -185,8 +195,4 @@ const MessageItem = ({ classNames, message }: ThemedClassName<{ message: Message
185
195
  );
186
196
  };
187
197
 
188
- const RobotAvatar = () => (
189
- <Avatar.Root>
190
- <Avatar.Content size={6} variant='circle' icon='ph--drone--regular' />
191
- </Avatar.Root>
192
- );
198
+ const RobotAvatar = () => <Avatar.Root size='sm' variant='circle' icon='ph--drone--regular' />;
@@ -2,4 +2,4 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- export * from './TestPanel';
5
+ export * from './TestPanel.tsx';
@@ -7,13 +7,15 @@ import React, { useCallback, useMemo, useState } from 'react';
7
7
 
8
8
  import { Doc } from '@dxos/echo-doc';
9
9
  import { createObject } from '@dxos/react-client/echo';
10
- import { Panel, Toolbar } from '@dxos/react-ui';
11
10
  import { JsonHighlighter } from '@dxos/react-ui-syntax-highlighter';
11
+ import * as Button from '@dxos/react-ui/Button';
12
+ import * as Panel from '@dxos/react-ui/Panel';
12
13
  import { withLayout, withTheme } from '@dxos/react-ui/testing';
14
+ import * as Toolbar from '@dxos/react-ui/Toolbar';
13
15
  import { createDataExtensions } from '@dxos/ui-editor';
14
16
  import { trim } from '@dxos/util';
15
17
 
16
- import { TypescriptEditor, type TypescriptEditorProps } from './TypescriptEditor';
18
+ import { TypescriptEditor, type TypescriptEditorProps } from './TypescriptEditor.tsx';
17
19
 
18
20
  const SCRIPT = trim`
19
21
  x * 2
@@ -66,17 +68,17 @@ const DefaultStory = (props: TypescriptEditorProps) => {
66
68
 
67
69
  return (
68
70
  <Panel.Root>
69
- <Panel.Toolbar asChild>
71
+ <Panel.Header>
70
72
  <Toolbar.Root>
71
- <Toolbar.Button onClick={handleRun}>Run</Toolbar.Button>
73
+ <Button.Root onClick={handleRun}>Run</Button.Root>
72
74
  </Toolbar.Root>
73
- </Panel.Toolbar>
74
- <Panel.Content>
75
+ </Panel.Header>
76
+ <Panel.Body>
75
77
  <div className='grid grid-rows-[1fr_min-content] h-full overflow-hidden text-sm'>
76
78
  <TypescriptEditor {...props} initialValue={object.content} extensions={extensions} />
77
- <JsonHighlighter data={result} classNames='shrink-0 p-2 border-y border-subdued-separator' />
79
+ <JsonHighlighter data={result} classNames='shrink-0 p-2 border-y border-separator-subtle' />
78
80
  </div>
79
- </Panel.Content>
81
+ </Panel.Body>
80
82
  </Panel.Root>
81
83
  );
82
84
  };
@@ -9,15 +9,15 @@ import { lintKeymap } from '@codemirror/lint';
9
9
  import { Prec } from '@codemirror/state';
10
10
  import { keymap } from '@codemirror/view';
11
11
  import { tags } from '@lezer/highlight';
12
- import { composeRefs } from '@radix-ui/react-compose-refs';
13
12
  import { type VirtualTypeScriptEnvironment } from '@typescript/vfs';
14
13
  import { continueKeymap } from '@valtown/codemirror-continue';
15
14
  import { type HoverInfo, tsAutocomplete, tsFacet, tsHover, tsLinter, tsSync } from '@valtown/codemirror-ts';
16
15
  import React from 'react';
17
16
 
18
- import { type ThemedClassName, type ThemeMode, useThemeContext } from '@dxos/react-ui';
19
- import { composable, composableProps } from '@dxos/react-ui';
17
+ import { composeRefs } from '@dxos/react-hooks';
20
18
  import { type UseTextEditorProps, useTextEditor } from '@dxos/react-ui-editor';
19
+ import * as Hooks from '@dxos/react-ui/Hooks';
20
+ import * as Util from '@dxos/react-ui/Util';
21
21
  import { Domino } from '@dxos/ui';
22
22
  import {
23
23
  type BasicExtensionsOptions,
@@ -27,9 +27,10 @@ import {
27
27
  defaultStyles,
28
28
  } from '@dxos/ui-editor';
29
29
  import { type EditorInputMode } from '@dxos/ui-editor/types';
30
+ import { type ThemeMode } from '@dxos/ui-types';
30
31
  import { isNonNullable } from '@dxos/util';
31
32
 
32
- export type TypescriptEditorProps = ThemedClassName<
33
+ export type TypescriptEditorProps = Util.ThemedClassName<
33
34
  {
34
35
  id: string;
35
36
  role?: string;
@@ -40,7 +41,7 @@ export type TypescriptEditorProps = ThemedClassName<
40
41
  } & Pick<UseTextEditorProps, 'initialValue' | 'extensions' | 'scrollTo' | 'selection'>
41
42
  >;
42
43
 
43
- export const TypescriptEditor = composable<HTMLDivElement, TypescriptEditorProps>(
44
+ export const TypescriptEditor = Util.composable<HTMLDivElement, TypescriptEditorProps>(
44
45
  (
45
46
  {
46
47
  classNames,
@@ -57,7 +58,7 @@ export const TypescriptEditor = composable<HTMLDivElement, TypescriptEditorProps
57
58
  },
58
59
  forwardedRef,
59
60
  ) => {
60
- const { themeMode } = useThemeContext();
61
+ const themeMode = Hooks.useThemeMode();
61
62
  const { parentRef, focusAttributes } = useTextEditor(
62
63
  () => ({
63
64
  id,
@@ -104,7 +105,10 @@ export const TypescriptEditor = composable<HTMLDivElement, TypescriptEditorProps
104
105
  );
105
106
 
106
107
  return (
107
- <div {...composableProps(props, { classNames, ...focusAttributes })} ref={composeRefs(parentRef, forwardedRef)} />
108
+ <div
109
+ {...Util.composableProps(props, { classNames, ...focusAttributes })}
110
+ ref={composeRefs(parentRef, forwardedRef)}
111
+ />
108
112
  );
109
113
  },
110
114
  );
@@ -2,4 +2,4 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- export * from './TypescriptEditor';
5
+ export * from './TypescriptEditor.tsx';
@@ -2,8 +2,7 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- export * from './NotebookStack';
6
- export * from './QueryEditor';
7
- export * from './ScriptToolbar';
8
- export * from './TestPanel';
9
- export * from './TypescriptEditor';
5
+ export * from './NotebookStack/index.ts';
6
+ export * from './ScriptToolbar/index.ts';
7
+ export * from './TestPanel/index.ts';
8
+ export * from './TypescriptEditor/index.ts';
@@ -5,17 +5,17 @@
5
5
  import { type Meta, type StoryObj } from '@storybook/react-vite';
6
6
  import React, { useMemo } from 'react';
7
7
 
8
- import { ProcessManagerPlugin } from '@dxos/app-framework';
8
+ import * as ProcessManagerPlugin from '@dxos/app-framework/ProcessManagerPlugin';
9
9
  import { withPluginManager } from '@dxos/app-framework/testing';
10
10
  import { Obj } from '@dxos/echo';
11
11
  import { AccessToken } from '@dxos/link';
12
12
  import { ClientPlugin } from '@dxos/plugin-client/testing';
13
- import { Dialog } from '@dxos/react-ui';
13
+ import * as Dialog from '@dxos/react-ui/Dialog';
14
14
  import { withTheme } from '@dxos/react-ui/testing';
15
15
 
16
16
  import { translations } from '#translations';
17
17
 
18
- import { DeploymentDialog } from './DeploymentDialog';
18
+ import { DeploymentDialog } from './DeploymentDialog.tsx';
19
19
 
20
20
  const DeploymentDialogStory = () => {
21
21
  const accessToken = useMemo(
@@ -36,9 +36,7 @@ const DeploymentDialogStory = () => {
36
36
  );
37
37
  return (
38
38
  <Dialog.Root defaultOpen={true}>
39
- <Dialog.Overlay>
40
- <DeploymentDialog accessToken={accessToken} scriptTemplates={scriptTemplates} />
41
- </Dialog.Overlay>
39
+ <DeploymentDialog accessToken={accessToken} scriptTemplates={scriptTemplates} />
42
40
  </Dialog.Root>
43
41
  );
44
42
  };
@@ -51,7 +49,7 @@ const meta = {
51
49
  decorators: [
52
50
  withTheme(),
53
51
  withPluginManager({
54
- plugins: [ProcessManagerPlugin(), ClientPlugin.make({})],
52
+ plugins: [ProcessManagerPlugin.make(), ClientPlugin.make({})],
55
53
  }),
56
54
  ],
57
55
  } satisfies Meta<typeof DeploymentDialogStory>;
@@ -4,16 +4,19 @@
4
4
 
5
5
  import React, { useEffect, useMemo } from 'react';
6
6
 
7
- import { useOperationInvoker } from '@dxos/app-framework/ui';
7
+ import * as Hooks from '@dxos/app-framework/Hooks';
8
8
  import * as LayoutOperation from '@dxos/app-toolkit/LayoutOperation';
9
9
  import { Obj } from '@dxos/echo';
10
10
  import { type AccessToken } from '@dxos/link';
11
- import { Button, Dialog, useTranslation } from '@dxos/react-ui';
11
+ import * as Button from '@dxos/react-ui/Button';
12
+ import * as Dialog from '@dxos/react-ui/Dialog';
13
+ import * as UiHooks from '@dxos/react-ui/Hooks';
14
+ import * as SystemButton from '@dxos/react-ui/SystemButton';
12
15
 
13
16
  import { useCreateAndDeployScriptTemplates } from '#hooks';
14
17
  import { meta } from '#meta';
15
18
 
16
- import { type Template } from '../../templates';
19
+ import { type Template } from '../../templates/index.ts';
17
20
 
18
21
  // TODO(ZaymonFC):
19
22
  // - Show activity and feedback to the user.
@@ -26,13 +29,13 @@ export type DeploymentDialogProps = {
26
29
  };
27
30
 
28
31
  export const DeploymentDialog = ({ accessToken, scriptTemplates }: DeploymentDialogProps) => {
29
- const { t } = useTranslation(meta.profile.key);
32
+ const { t } = UiHooks.useTranslation(meta.profile.key);
30
33
  const db = useMemo(() => Obj.getDatabase(accessToken), [accessToken]);
31
34
 
32
35
  // TODO(ZaymonFC): Thinking further. All of this should get moved to intents to run async in the background.
33
36
  // Deployment shouldn't be tied to the lifecycle of the dialogue component.
34
37
  const { handleCreateAndDeployScripts, status } = useCreateAndDeployScriptTemplates(db, scriptTemplates);
35
- const { invokePromise } = useOperationInvoker();
38
+ const { invokePromise } = Hooks.useOperationInvoker();
36
39
 
37
40
  useEffect(() => {
38
41
  if (status === 'success') {
@@ -70,9 +73,9 @@ export const DeploymentDialog = ({ accessToken, scriptTemplates }: DeploymentDia
70
73
  <Dialog.Content>
71
74
  <Dialog.Header>
72
75
  <Dialog.Title>{t('deployment-dialog.title')}</Dialog.Title>
73
- <Dialog.Close asChild>
74
- <Dialog.ActionIconButton action='close' />
75
- </Dialog.Close>
76
+ <Dialog.CloseTrigger asChild>
77
+ <SystemButton.Close />
78
+ </Dialog.CloseTrigger>
76
79
  </Dialog.Header>
77
80
  <Dialog.Body>
78
81
  <p>
@@ -86,11 +89,11 @@ export const DeploymentDialog = ({ accessToken, scriptTemplates }: DeploymentDia
86
89
  })}
87
90
  </ul>
88
91
  </Dialog.Body>
89
- <Dialog.ActionBar>
90
- <Dialog.Close asChild>
91
- <Button disabled={status === 'pending'}>{t('deployment-dialog-skip-button.label')}</Button>
92
- </Dialog.Close>
93
- <Button variant='primary' onClick={handleCreateAndDeployScripts} disabled={status === 'pending'}>
92
+ <Dialog.Footer>
93
+ <Dialog.CloseTrigger asChild>
94
+ <Button.Root disabled={status === 'pending'}>{t('deployment-dialog-skip-button.label')}</Button.Root>
95
+ </Dialog.CloseTrigger>
96
+ <Button.Root variant='primary' onClick={handleCreateAndDeployScripts} disabled={status === 'pending'}>
94
97
  {status === 'pending'
95
98
  ? t('deployment-dialog-deploy-functions-pending-button.label', {
96
99
  count: scriptTemplates.length,
@@ -98,8 +101,8 @@ export const DeploymentDialog = ({ accessToken, scriptTemplates }: DeploymentDia
98
101
  : t('deployment-dialog-deploy-functions-button.label', {
99
102
  count: scriptTemplates.length,
100
103
  })}
101
- </Button>
102
- </Dialog.ActionBar>
104
+ </Button.Root>
105
+ </Dialog.Footer>
103
106
  </Dialog.Content>
104
107
  );
105
108
  };
@@ -2,4 +2,4 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- export { DeploymentDialog as default } from './DeploymentDialog';
5
+ export { DeploymentDialog as default } from './DeploymentDialog.tsx';
@@ -8,8 +8,8 @@ import React from 'react';
8
8
 
9
9
  import { SERVICES_CONFIG } from '@dxos/ai/testing';
10
10
  import { withPluginManager } from '@dxos/app-framework/testing';
11
- import { AppSurface } from '@dxos/app-toolkit/ui';
12
- import { RunInstructions } from '@dxos/assistant-toolkit';
11
+ import * as AppSurface from '@dxos/app-toolkit/AppSurface';
12
+ import * as AgentOperation from '@dxos/assistant-toolkit/AgentOperation';
13
13
  import * as Operation from '@dxos/compute/Operation';
14
14
  import { Filter } from '@dxos/echo';
15
15
  import { useQuery } from '@dxos/echo-react';
@@ -20,7 +20,7 @@ import { ExplorerPlugin } from '@dxos/plugin-explorer/testing';
20
20
  import * as Markdown from '@dxos/plugin-markdown/Markdown';
21
21
  import { MarkdownPlugin } from '@dxos/plugin-markdown/testing';
22
22
  import { RoutinePlugin } from '@dxos/plugin-routine/testing';
23
- import { corePlugins } from '@dxos/plugin-testing';
23
+ import * as CorePlugins from '@dxos/plugin-testing/CorePlugins';
24
24
  import { Config, useClient } from '@dxos/react-client';
25
25
  import { withLayout } from '@dxos/react-ui/testing';
26
26
  import { DataTypes } from '@dxos/schema';
@@ -29,7 +29,7 @@ import { createNotebook } from '#testing';
29
29
  import { translations } from '#translations';
30
30
  import { Notebook } from '#types';
31
31
 
32
- import { NotebookArticle } from './NotebookArticle';
32
+ import { NotebookArticle } from './NotebookArticle.tsx';
33
33
 
34
34
  const meta: Meta<typeof NotebookArticle> = {
35
35
  title: 'plugins/plugin-script/containers/NotebookArticle',
@@ -44,7 +44,7 @@ const meta: Meta<typeof NotebookArticle> = {
44
44
  withLayout({ layout: 'column', classNames: 'w-document-max-width' }),
45
45
  withPluginManager({
46
46
  plugins: [
47
- ...corePlugins(),
47
+ ...CorePlugins.make(),
48
48
  ClientPlugin.make({
49
49
  // TODO(wittjosiah): ComputeRuntime requires edge to be configured or it will throw.
50
50
  config: new Config({
@@ -59,7 +59,7 @@ const meta: Meta<typeof NotebookArticle> = {
59
59
 
60
60
  defaultSpace.db.add(createNotebook());
61
61
  defaultSpace.db.add(Markdown.make({ content: '# Hello World' }));
62
- defaultSpace.db.add(Operation.serialize(RunInstructions));
62
+ defaultSpace.db.add(Operation.serialize(AgentOperation.RunInstructions));
63
63
  }),
64
64
  }),
65
65
  AssistantPlugin(),
@@ -9,9 +9,9 @@ import * as Exit from 'effect/Exit';
9
9
  import type * as Types from 'effect/Types';
10
10
  import React, { useCallback, useContext, useMemo, useState } from 'react';
11
11
 
12
- import { useSpaceCallback } from '@dxos/app-framework/ui';
13
- import { type AppSurface } from '@dxos/app-toolkit/ui';
14
- import { RunInstructions } from '@dxos/assistant-toolkit';
12
+ import * as Hooks from '@dxos/app-framework/Hooks';
13
+ import type * as AppSurface from '@dxos/app-toolkit/AppSurface';
14
+ import * as AgentOperation from '@dxos/assistant-toolkit/AgentOperation';
15
15
  import * as Instructions from '@dxos/compute/Instructions';
16
16
  import * as Operation from '@dxos/compute/Operation';
17
17
  import * as Skill from '@dxos/compute/Skill';
@@ -20,8 +20,12 @@ import { QueryBuilder } from '@dxos/echo-query';
20
20
  import { invariant } from '@dxos/invariant';
21
21
  import { log } from '@dxos/log';
22
22
  import * as Graph from '@dxos/plugin-explorer/Graph';
23
- import { DropdownMenu, IconButton, Panel, Toolbar, useTranslation } from '@dxos/react-ui';
24
23
  import { useAttention } from '@dxos/react-ui-attention';
24
+ import * as Button from '@dxos/react-ui/Button';
25
+ import * as UiHooks from '@dxos/react-ui/Hooks';
26
+ import * as Menu from '@dxos/react-ui/Menu';
27
+ import * as Panel from '@dxos/react-ui/Panel';
28
+ import * as Toolbar from '@dxos/react-ui/Toolbar';
25
29
  import { Text, ViewModel } from '@dxos/schema';
26
30
  import { isNonNullable } from '@dxos/util';
27
31
 
@@ -29,7 +33,7 @@ import { NotebookMenu, NotebookStack, type NotebookStackProps, type TypescriptEd
29
33
  import { meta } from '#meta';
30
34
  import { Notebook } from '#types';
31
35
 
32
- import { ComputeGraph } from '../../notebook';
36
+ import { ComputeGraph } from '../../notebook/index.ts';
33
37
 
34
38
  const INCLUDE_SKILLS = ['org.dxos.skill.assistant', 'org.dxos.skill.database', 'org.dxos.skill.markdown'];
35
39
 
@@ -38,7 +42,7 @@ const INCLUDE_SKILLS = ['org.dxos.skill.assistant', 'org.dxos.skill.database', '
38
42
  export type NotebookArticleProps = AppSurface.ObjectArticleProps<Notebook.Notebook, Pick<TypescriptEditorProps, 'env'>>;
39
43
 
40
44
  export const NotebookArticle = ({ role, subject: notebook, attendableId, env }: NotebookArticleProps) => {
41
- const { t } = useTranslation(meta.profile.key);
45
+ const { t } = UiHooks.useTranslation(meta.profile.key);
42
46
  const registry = useContext(RegistryContext);
43
47
  const db = notebook ? Obj.getDatabase(notebook) : undefined;
44
48
  const { hasAttention } = useAttention(attendableId);
@@ -90,7 +94,7 @@ export const NotebookArticle = ({ role, subject: notebook, attendableId, env }:
90
94
  }, [db, notebook, graph]);
91
95
 
92
96
  const [promptResults, setPromptResults] = useState<Record<string, string>>({});
93
- const handleExecPrompts = useSpaceCallback(
97
+ const handleExecPrompts = Hooks.useSpaceCallback(
94
98
  db?.spaceId,
95
99
  [] as const,
96
100
  Effect.fnUntraced(function* () {
@@ -174,16 +178,16 @@ export const NotebookArticle = ({ role, subject: notebook, attendableId, env }:
174
178
  );
175
179
 
176
180
  return (
177
- <Panel.Root role={role} classNames='dx-document'>
178
- <Panel.Toolbar asChild>
179
- <Toolbar.Root disabled={!hasAttention}>
180
- <DropdownMenu.Root>
181
- <DropdownMenu.Trigger asChild>
182
- <IconButton icon='ph--plus--regular' iconOnly label={t('notebook-cell-insert.label')} />
183
- </DropdownMenu.Trigger>
181
+ <Panel.Root role={role} width='document'>
182
+ <Panel.Header>
183
+ <Toolbar.Root inactive={!hasAttention}>
184
+ <Menu.Root>
185
+ <Menu.Trigger asChild>
186
+ <Button.Root icon='ph--plus--regular' iconOnly label={t('notebook-cell-insert.label')} />
187
+ </Menu.Trigger>
184
188
  <NotebookMenu onCellInsert={handleCellInsert} />
185
- </DropdownMenu.Root>
186
- <Toolbar.IconButton
189
+ </Menu.Root>
190
+ <Button.Root
187
191
  icon='ph--play--fill'
188
192
  iconOnly
189
193
  label={t('compute.label')}
@@ -191,8 +195,8 @@ export const NotebookArticle = ({ role, subject: notebook, attendableId, env }:
191
195
  onClick={handleCompute}
192
196
  />
193
197
  </Toolbar.Root>
194
- </Panel.Toolbar>
195
- <Panel.Content asChild>
198
+ </Panel.Header>
199
+ <Panel.Body asChild>
196
200
  <NotebookStack
197
201
  db={db}
198
202
  notebook={notebook}
@@ -202,7 +206,7 @@ export const NotebookArticle = ({ role, subject: notebook, attendableId, env }:
202
206
  onCellInsert={handleCellInsert}
203
207
  onCellDelete={handleCellDelete}
204
208
  />
205
- </Panel.Content>
209
+ </Panel.Body>
206
210
  </Panel.Root>
207
211
  );
208
212
  };
@@ -217,9 +221,9 @@ const runPrompt = Effect.fn(function* ({
217
221
  input: Record<string, any>;
218
222
  onResult: (result: string) => void;
219
223
  }) {
220
- const inputData: Operation.Definition.Input<typeof RunInstructions> = { instructions, input };
224
+ const inputData: Operation.Definition.Input<typeof AgentOperation.RunInstructions> = { instructions, input };
221
225
  // Invoke the function.
222
- const result = yield* Operation.invoke(RunInstructions, inputData).pipe(Effect.orDie, Effect.exit);
226
+ const result = yield* Operation.invoke(AgentOperation.RunInstructions, inputData).pipe(Effect.orDie, Effect.exit);
223
227
 
224
228
  Exit.match(result, {
225
229
  onFailure: (cause) => {
@@ -2,4 +2,4 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- export { NotebookArticle as default } from './NotebookArticle';
5
+ export { NotebookArticle as default } from './NotebookArticle.tsx';
@@ -15,7 +15,7 @@ import { Filter } from '@dxos/echo';
15
15
  import { useQuery } from '@dxos/echo-react';
16
16
  import { ClientPlugin } from '@dxos/plugin-client/testing';
17
17
  import { initializeIdentity } from '@dxos/plugin-client/testing';
18
- import { corePlugins } from '@dxos/plugin-testing';
18
+ import * as CorePlugins from '@dxos/plugin-testing/CorePlugins';
19
19
  import * as StorybookPlugin from '@dxos/plugin-testing/StorybookPlugin';
20
20
  import { Config } from '@dxos/react-client';
21
21
  import { useSpaces } from '@dxos/react-client/echo';
@@ -25,7 +25,7 @@ import { Text } from '@dxos/schema';
25
25
  import { createScript } from '#testing';
26
26
  import { translations } from '#translations';
27
27
 
28
- import { ScriptArticle } from './ScriptArticle';
28
+ import { ScriptArticle } from './ScriptArticle.tsx';
29
29
 
30
30
  type StoryArgs = {};
31
31
 
@@ -75,7 +75,7 @@ const meta = {
75
75
  withLayout({ layout: 'column', classNames: 'w-document-max-width' }),
76
76
  withPluginManager({
77
77
  plugins: [
78
- ...corePlugins(),
78
+ ...CorePlugins.make(),
79
79
  ClientPlugin.make({
80
80
  config: new Config({
81
81
  runtime: {
@@ -4,13 +4,14 @@
4
4
 
5
5
  import React, { useMemo } from 'react';
6
6
 
7
- import { type AppSurface } from '@dxos/app-toolkit/ui';
7
+ import type * as AppSurface from '@dxos/app-toolkit/AppSurface';
8
8
  import type * as Script from '@dxos/compute/Script';
9
9
  import { Obj } from '@dxos/echo';
10
10
  import { Doc } from '@dxos/echo-doc';
11
+ import { useResolveRef } from '@dxos/echo-react';
11
12
  import { useIdentity } from '@dxos/halo-react';
12
13
  import { getSpace } from '@dxos/react-client/echo';
13
- import { Panel } from '@dxos/react-ui';
14
+ import * as Panel from '@dxos/react-ui/Panel';
14
15
  import { createDataExtensions, editorClassNames, listener } from '@dxos/ui-editor';
15
16
 
16
17
  import { ScriptToolbar, TypescriptEditor, type TypescriptEditorProps } from '#components';
@@ -35,22 +36,23 @@ export const ScriptArticle = ({
35
36
  const space = getSpace(script);
36
37
  const state = useToolbarState();
37
38
  useDeployState({ script, state });
39
+ const source = useResolveRef(script.source);
38
40
 
39
41
  const extensions = useMemo(() => {
40
- if (!script.source.target) {
42
+ if (!source) {
41
43
  return [];
42
44
  }
43
45
 
44
46
  return [
45
47
  createDataExtensions({
46
48
  id: script.id,
47
- text: Doc.createAccessor(script.source.target, ['content']),
49
+ text: Doc.createAccessor(source, ['content']),
48
50
  messenger: space,
49
51
  identity,
50
52
  }),
51
53
  listener({
52
54
  onChange: ({ text }) => {
53
- if (script.source.target?.content !== text) {
55
+ if (source?.content !== text) {
54
56
  Obj.update(script, (script) => {
55
57
  script.changed = true;
56
58
  });
@@ -58,7 +60,7 @@ export const ScriptArticle = ({
58
60
  },
59
61
  }),
60
62
  ];
61
- }, [identity, space, script, script.source.target]);
63
+ }, [identity, space, script, source]);
62
64
 
63
65
  if (!extensions.length) {
64
66
  return null;
@@ -66,20 +68,20 @@ export const ScriptArticle = ({
66
68
 
67
69
  return (
68
70
  <Panel.Root role={role}>
69
- <Panel.Toolbar asChild>
71
+ <Panel.Header>
70
72
  <ScriptToolbar script={script} attendableId={attendableId} state={state} role={role} />
71
- </Panel.Toolbar>
72
- <Panel.Content asChild>
73
+ </Panel.Header>
74
+ <Panel.Body asChild>
73
75
  <TypescriptEditor
74
76
  classNames={editorClassNames(role)}
75
77
  id={script.id}
76
78
  env={env}
77
- initialValue={script.source?.target?.content}
79
+ initialValue={source?.content}
78
80
  extensions={extensions}
79
81
  inputMode={settings.editorInputMode}
80
82
  toolbar
81
83
  />
82
- </Panel.Content>
84
+ </Panel.Body>
83
85
  </Panel.Root>
84
86
  );
85
87
  };