@dxos/plugin-script 0.8.4-main.7ace549 → 0.8.4-main.937b3ca

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 (372) hide show
  1. package/dist/lib/browser/DeploymentDialog-GXNRUXF6.mjs +14 -0
  2. package/dist/lib/browser/{NotebookContainer-MHY3DXDE.mjs → NotebookContainer-4MM2VAQF.mjs} +265 -237
  3. package/dist/lib/browser/NotebookContainer-4MM2VAQF.mjs.map +7 -0
  4. package/dist/lib/browser/ScriptContainer-X6GCYZZW.mjs +149 -0
  5. package/dist/lib/browser/ScriptContainer-X6GCYZZW.mjs.map +7 -0
  6. package/dist/lib/browser/app-graph-builder-7VO7AUI6.mjs +68 -0
  7. package/dist/lib/browser/app-graph-builder-7VO7AUI6.mjs.map +7 -0
  8. package/dist/lib/browser/blueprint-definition-OSOUYI7A.mjs +17 -0
  9. package/dist/lib/browser/blueprint-definition-OSOUYI7A.mjs.map +7 -0
  10. package/dist/lib/browser/blueprints/index.mjs +8 -0
  11. package/dist/lib/browser/chunk-3O2DQGCP.mjs +113 -0
  12. package/dist/lib/browser/chunk-3O2DQGCP.mjs.map +7 -0
  13. package/dist/lib/browser/chunk-BTWHM6FH.mjs +270 -0
  14. package/dist/lib/browser/chunk-BTWHM6FH.mjs.map +7 -0
  15. package/dist/lib/browser/chunk-F3QKSKSF.mjs +35 -0
  16. package/dist/lib/browser/chunk-F3QKSKSF.mjs.map +7 -0
  17. package/dist/lib/browser/chunk-I7CSE6T3.mjs +110 -0
  18. package/dist/lib/browser/chunk-I7CSE6T3.mjs.map +7 -0
  19. package/dist/lib/browser/chunk-IQRLM6JK.mjs +137 -0
  20. package/dist/lib/browser/chunk-IQRLM6JK.mjs.map +7 -0
  21. package/dist/lib/browser/chunk-NWSK27QB.mjs +606 -0
  22. package/dist/lib/browser/chunk-NWSK27QB.mjs.map +7 -0
  23. package/dist/lib/browser/{chunk-2G2NA6DQ.mjs → chunk-UX4GHJ5E.mjs} +28 -11
  24. package/dist/lib/browser/chunk-UX4GHJ5E.mjs.map +7 -0
  25. package/dist/lib/browser/{chunk-ULJFT73Q.mjs → chunk-WX2NVNFQ.mjs} +232 -188
  26. package/dist/lib/browser/chunk-WX2NVNFQ.mjs.map +7 -0
  27. package/dist/lib/browser/{chunk-EB6AXFXO.mjs → chunk-WYR4QHPE.mjs} +1 -1
  28. package/dist/lib/browser/chunk-WYR4QHPE.mjs.map +7 -0
  29. package/dist/lib/browser/compiler-XRBFQFXO.mjs +161 -0
  30. package/dist/lib/browser/compiler-XRBFQFXO.mjs.map +7 -0
  31. package/dist/lib/browser/index.mjs +92 -116
  32. package/dist/lib/browser/index.mjs.map +4 -4
  33. package/dist/lib/browser/meta.json +1 -1
  34. package/dist/lib/browser/operation-resolver-MUNR376F.mjs +82 -0
  35. package/dist/lib/browser/operation-resolver-MUNR376F.mjs.map +7 -0
  36. package/dist/lib/browser/{react-surface-R245YN52.mjs → react-surface-5TEC66UY.mjs} +53 -42
  37. package/dist/lib/browser/react-surface-5TEC66UY.mjs.map +7 -0
  38. package/dist/lib/browser/settings-R4WKREUJ.mjs +35 -0
  39. package/dist/lib/browser/settings-R4WKREUJ.mjs.map +7 -0
  40. package/dist/lib/browser/templates/index.mjs +1 -1
  41. package/dist/lib/browser/types/index.mjs +9 -5
  42. package/dist/lib/node-esm/{DeploymentDialog-2ULNOZQH.mjs → DeploymentDialog-EVFV2VJT.mjs} +6 -6
  43. package/dist/lib/node-esm/DeploymentDialog-EVFV2VJT.mjs.map +7 -0
  44. package/dist/lib/node-esm/{NotebookContainer-U4C2HQ4T.mjs → NotebookContainer-QLW5ZYGS.mjs} +265 -237
  45. package/dist/lib/node-esm/NotebookContainer-QLW5ZYGS.mjs.map +7 -0
  46. package/dist/lib/node-esm/ScriptContainer-3DZ3BMHW.mjs +150 -0
  47. package/dist/lib/node-esm/ScriptContainer-3DZ3BMHW.mjs.map +7 -0
  48. package/dist/lib/node-esm/app-graph-builder-NVE3EVBG.mjs +69 -0
  49. package/dist/lib/node-esm/app-graph-builder-NVE3EVBG.mjs.map +7 -0
  50. package/dist/lib/node-esm/blueprint-definition-NC7NNJGI.mjs +18 -0
  51. package/dist/lib/node-esm/blueprint-definition-NC7NNJGI.mjs.map +7 -0
  52. package/dist/lib/node-esm/blueprints/index.mjs +9 -0
  53. package/dist/lib/node-esm/blueprints/index.mjs.map +7 -0
  54. package/dist/lib/node-esm/{chunk-57JA6XL5.mjs → chunk-4F5FJZ36.mjs} +28 -11
  55. package/dist/lib/node-esm/chunk-4F5FJZ36.mjs.map +7 -0
  56. package/dist/lib/node-esm/{chunk-IBV2DR36.mjs → chunk-5HSJPAK7.mjs} +1 -1
  57. package/dist/lib/node-esm/chunk-5HSJPAK7.mjs.map +7 -0
  58. package/dist/lib/node-esm/chunk-KN6SQYUF.mjs +114 -0
  59. package/dist/lib/node-esm/chunk-KN6SQYUF.mjs.map +7 -0
  60. package/dist/lib/node-esm/{chunk-VJSRZRLI.mjs → chunk-MGWKULCD.mjs} +232 -188
  61. package/dist/lib/node-esm/chunk-MGWKULCD.mjs.map +7 -0
  62. package/dist/lib/node-esm/chunk-SLU3KRV3.mjs +112 -0
  63. package/dist/lib/node-esm/chunk-SLU3KRV3.mjs.map +7 -0
  64. package/dist/lib/node-esm/chunk-VWOLKNMO.mjs +271 -0
  65. package/dist/lib/node-esm/chunk-VWOLKNMO.mjs.map +7 -0
  66. package/dist/lib/node-esm/chunk-Y3G5NCTP.mjs +36 -0
  67. package/dist/lib/node-esm/chunk-Y3G5NCTP.mjs.map +7 -0
  68. package/dist/lib/node-esm/chunk-YEWLTVBT.mjs +138 -0
  69. package/dist/lib/node-esm/chunk-YEWLTVBT.mjs.map +7 -0
  70. package/dist/lib/node-esm/chunk-ZQGHFNO3.mjs +607 -0
  71. package/dist/lib/node-esm/chunk-ZQGHFNO3.mjs.map +7 -0
  72. package/dist/lib/node-esm/compiler-ORJAXDN7.mjs +162 -0
  73. package/dist/lib/node-esm/compiler-ORJAXDN7.mjs.map +7 -0
  74. package/dist/lib/node-esm/index.mjs +92 -116
  75. package/dist/lib/node-esm/index.mjs.map +4 -4
  76. package/dist/lib/node-esm/meta.json +1 -1
  77. package/dist/lib/node-esm/operation-resolver-CLE4ZCC5.mjs +83 -0
  78. package/dist/lib/node-esm/operation-resolver-CLE4ZCC5.mjs.map +7 -0
  79. package/dist/lib/node-esm/{react-surface-MHT3PJ6C.mjs → react-surface-O3UDMKOQ.mjs} +53 -42
  80. package/dist/lib/node-esm/react-surface-O3UDMKOQ.mjs.map +7 -0
  81. package/dist/lib/node-esm/settings-OFIMHU7K.mjs +36 -0
  82. package/dist/lib/node-esm/settings-OFIMHU7K.mjs.map +7 -0
  83. package/dist/lib/node-esm/templates/index.mjs +1 -1
  84. package/dist/lib/node-esm/types/index.mjs +9 -5
  85. package/dist/types/src/ScriptPlugin.d.ts +2 -1
  86. package/dist/types/src/ScriptPlugin.d.ts.map +1 -1
  87. package/dist/types/src/blueprints/index.d.ts +2 -0
  88. package/dist/types/src/blueprints/index.d.ts.map +1 -0
  89. package/dist/types/src/blueprints/script-blueprint.d.ts +22 -0
  90. package/dist/types/src/blueprints/script-blueprint.d.ts.map +1 -0
  91. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +6 -0
  92. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -0
  93. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +3 -0
  94. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +1 -0
  95. package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts +12 -0
  96. package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts.map +1 -0
  97. package/dist/types/src/capabilities/artifact-definition/index.d.ts +3 -0
  98. package/dist/types/src/capabilities/artifact-definition/index.d.ts.map +1 -0
  99. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +9 -0
  100. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +1 -0
  101. package/dist/types/src/capabilities/blueprint-definition/index.d.ts +3 -0
  102. package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +1 -0
  103. package/dist/types/src/capabilities/compiler/compiler.d.ts +6 -0
  104. package/dist/types/src/capabilities/compiler/compiler.d.ts.map +1 -0
  105. package/dist/types/src/capabilities/compiler/index.d.ts +3 -0
  106. package/dist/types/src/capabilities/compiler/index.d.ts.map +1 -0
  107. package/dist/types/src/capabilities/index.d.ts +6 -7
  108. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  109. package/dist/types/src/capabilities/operation-resolver/index.d.ts +3 -0
  110. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -0
  111. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +5 -0
  112. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -0
  113. package/dist/types/src/capabilities/react-surface/index.d.ts +3 -0
  114. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
  115. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +5 -0
  116. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
  117. package/dist/types/src/capabilities/settings/index.d.ts +7 -0
  118. package/dist/types/src/capabilities/settings/index.d.ts.map +1 -0
  119. package/dist/types/src/capabilities/settings/settings.d.ts +9 -0
  120. package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -0
  121. package/dist/types/src/compiler/compiler.d.ts +1 -1
  122. package/dist/types/src/compiler/compiler.d.ts.map +1 -1
  123. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.d.ts.map +1 -1
  124. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts +1 -3
  125. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts.map +1 -1
  126. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts.map +1 -1
  127. package/dist/types/src/components/NotebookContainer.d.ts +3 -5
  128. package/dist/types/src/components/NotebookContainer.d.ts.map +1 -1
  129. package/dist/types/src/components/NotebookContainer.stories.d.ts +3 -250
  130. package/dist/types/src/components/NotebookContainer.stories.d.ts.map +1 -1
  131. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts +3 -3
  132. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts.map +1 -1
  133. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts +1 -1
  134. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts.map +1 -1
  135. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts +2 -1
  136. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts.map +1 -1
  137. package/dist/types/src/components/QueryEditor/QueryEditor.d.ts +5 -0
  138. package/dist/types/src/components/QueryEditor/QueryEditor.d.ts.map +1 -0
  139. package/dist/types/src/components/QueryEditor/QueryEditor.stories.d.ts +13 -0
  140. package/dist/types/src/components/QueryEditor/QueryEditor.stories.d.ts.map +1 -0
  141. package/dist/types/src/components/QueryEditor/index.d.ts +2 -0
  142. package/dist/types/src/components/QueryEditor/index.d.ts.map +1 -0
  143. package/dist/types/src/components/ScriptContainer.d.ts +4 -5
  144. package/dist/types/src/components/ScriptContainer.d.ts.map +1 -1
  145. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts +2 -2
  146. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts.map +1 -1
  147. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts +2 -1
  148. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts.map +1 -1
  149. package/dist/types/src/components/Settings/ScriptObjectSettings.d.ts.map +1 -1
  150. package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts +4 -2
  151. package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts.map +1 -1
  152. package/dist/types/src/components/TestPanel/TestContainer.d.ts +1 -1
  153. package/dist/types/src/components/TestPanel/TestContainer.d.ts.map +1 -1
  154. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts +3 -2
  155. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts.map +1 -1
  156. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts +1 -1
  157. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts.map +1 -1
  158. package/dist/types/src/components/index.d.ts +2 -2
  159. package/dist/types/src/components/index.d.ts.map +1 -1
  160. package/dist/types/src/e2e/ai.test.d.ts +2 -0
  161. package/dist/types/src/e2e/ai.test.d.ts.map +1 -0
  162. package/dist/types/src/e2e/deploy.test.d.ts +2 -0
  163. package/dist/types/src/e2e/deploy.test.d.ts.map +1 -0
  164. package/dist/types/src/hooks/deploy.d.ts +9 -26
  165. package/dist/types/src/hooks/deploy.d.ts.map +1 -1
  166. package/dist/types/src/hooks/format.d.ts +2 -2
  167. package/dist/types/src/hooks/format.d.ts.map +1 -1
  168. package/dist/types/src/hooks/index.d.ts +1 -0
  169. package/dist/types/src/hooks/index.d.ts.map +1 -1
  170. package/dist/types/src/hooks/template.d.ts +2 -2
  171. package/dist/types/src/hooks/template.d.ts.map +1 -1
  172. package/dist/types/src/hooks/useCompiler.d.ts +7 -0
  173. package/dist/types/src/hooks/useCompiler.d.ts.map +1 -0
  174. package/dist/types/src/hooks/useCreateAndDeployScriptTemplates.d.ts.map +1 -1
  175. package/dist/types/src/hooks/useToolbarState.d.ts +8 -1
  176. package/dist/types/src/hooks/useToolbarState.d.ts.map +1 -1
  177. package/dist/types/src/index.d.ts +1 -1
  178. package/dist/types/src/index.d.ts.map +1 -1
  179. package/dist/types/src/meta.d.ts +2 -2
  180. package/dist/types/src/meta.d.ts.map +1 -1
  181. package/dist/types/src/notebook/compute-graph.d.ts +24 -11
  182. package/dist/types/src/notebook/compute-graph.d.ts.map +1 -1
  183. package/dist/types/src/templates/anthropic.d.ts +8 -0
  184. package/dist/types/src/templates/anthropic.d.ts.map +1 -0
  185. package/dist/types/src/templates/chess-bot.d.ts +16 -0
  186. package/dist/types/src/templates/chess-bot.d.ts.map +1 -0
  187. package/dist/types/src/templates/commentary.d.ts +16 -0
  188. package/dist/types/src/templates/commentary.d.ts.map +1 -0
  189. package/dist/types/src/templates/forex-effect.d.ts +4 -1
  190. package/dist/types/src/templates/forex-effect.d.ts.map +1 -1
  191. package/dist/types/src/templates/forex.d.ts +4 -1
  192. package/dist/types/src/templates/forex.d.ts.map +1 -1
  193. package/dist/types/src/templates/index.d.ts +12 -3
  194. package/dist/types/src/templates/index.d.ts.map +1 -1
  195. package/dist/types/src/templates/ping.d.ts +1 -4
  196. package/dist/types/src/templates/ping.d.ts.map +1 -1
  197. package/dist/types/src/testing/simulator.test.d.ts +2 -0
  198. package/dist/types/src/testing/simulator.test.d.ts.map +1 -0
  199. package/dist/types/src/types/Notebook.d.ts +87 -18
  200. package/dist/types/src/types/Notebook.d.ts.map +1 -1
  201. package/dist/types/src/types/actions.d.ts +30 -44
  202. package/dist/types/src/types/actions.d.ts.map +1 -1
  203. package/dist/types/src/types/capabilities.d.ts +12 -0
  204. package/dist/types/src/types/capabilities.d.ts.map +1 -0
  205. package/dist/types/src/types/events.d.ts +5 -0
  206. package/dist/types/src/types/events.d.ts.map +1 -0
  207. package/dist/types/src/types/index.d.ts +2 -0
  208. package/dist/types/src/types/index.d.ts.map +1 -1
  209. package/dist/types/src/util/deploy.d.ts.map +1 -1
  210. package/dist/types/src/util/functions.d.ts.map +1 -1
  211. package/dist/types/tsconfig.tsbuildinfo +1 -1
  212. package/package.json +113 -88
  213. package/src/ScriptPlugin.tsx +34 -60
  214. package/src/blueprints/index.ts +5 -0
  215. package/src/blueprints/script-blueprint.ts +24 -0
  216. package/src/capabilities/app-graph-builder/app-graph-builder.ts +55 -0
  217. package/src/capabilities/app-graph-builder/index.ts +7 -0
  218. package/src/capabilities/{artifact-definition.ts → artifact-definition/artifact-definition.ts} +97 -94
  219. package/src/capabilities/artifact-definition/index.ts +7 -0
  220. package/src/capabilities/blueprint-definition/blueprint-definition.ts +23 -0
  221. package/src/capabilities/blueprint-definition/index.ts +7 -0
  222. package/src/capabilities/compiler/compiler.ts +103 -0
  223. package/src/capabilities/compiler/index.ts +7 -0
  224. package/src/capabilities/index.ts +6 -10
  225. package/src/capabilities/operation-resolver/index.ts +7 -0
  226. package/src/capabilities/operation-resolver/operation-resolver.ts +74 -0
  227. package/src/capabilities/react-surface/index.ts +7 -0
  228. package/src/capabilities/react-surface/react-surface.tsx +118 -0
  229. package/src/capabilities/settings/index.ts +7 -0
  230. package/src/capabilities/settings/settings.ts +32 -0
  231. package/src/compiler/compiler.ts +10 -3
  232. package/src/components/DeploymentDialog/DeploymentDialog.stories.tsx +27 -23
  233. package/src/components/DeploymentDialog/DeploymentDialog.tsx +22 -42
  234. package/src/components/FrameContainer/FrameContainer.tsx +4 -2
  235. package/src/components/NotebookContainer.stories.tsx +23 -19
  236. package/src/components/NotebookContainer.tsx +49 -39
  237. package/src/components/NotebookStack/NotebookCell.tsx +16 -15
  238. package/src/components/NotebookStack/NotebookStack.stories.tsx +19 -18
  239. package/src/components/NotebookStack/NotebookStack.tsx +4 -4
  240. package/src/components/QueryEditor/QueryEditor.stories.tsx +100 -0
  241. package/src/components/QueryEditor/QueryEditor.tsx +47 -0
  242. package/src/components/QueryEditor/index.ts +5 -0
  243. package/src/components/ScriptContainer.tsx +46 -32
  244. package/src/components/ScriptToolbar/ScriptToolbar.stories.tsx +38 -15
  245. package/src/components/ScriptToolbar/ScriptToolbar.tsx +14 -17
  246. package/src/components/Settings/ScriptObjectSettings.tsx +40 -29
  247. package/src/components/Settings/ScriptPluginSettings.tsx +8 -3
  248. package/src/components/TestPanel/TestContainer.tsx +5 -5
  249. package/src/components/TestPanel/TestPanel.tsx +1 -1
  250. package/src/components/TypescriptEditor/TypescriptEditor.stories.tsx +12 -7
  251. package/src/components/TypescriptEditor/TypescriptEditor.tsx +69 -68
  252. package/src/e2e/ai.test.ts +92 -0
  253. package/src/e2e/deploy.test.ts +64 -0
  254. package/src/hooks/deploy.ts +33 -26
  255. package/src/hooks/format.ts +5 -1
  256. package/src/hooks/index.ts +1 -0
  257. package/src/hooks/template.ts +15 -9
  258. package/src/hooks/useCompiler.ts +24 -0
  259. package/src/hooks/useCreateAndDeployScriptTemplates.ts +13 -19
  260. package/src/hooks/useToolbarState.ts +29 -5
  261. package/src/index.ts +1 -1
  262. package/src/meta.ts +2 -2
  263. package/src/notebook/compute-graph.test.ts +20 -8
  264. package/src/notebook/compute-graph.ts +45 -21
  265. package/src/templates/anthropic.ts +42 -0
  266. package/src/templates/chess-bot.ts +58 -0
  267. package/src/templates/commentary.ts +232 -0
  268. package/src/templates/data-generator.ts +1 -1
  269. package/src/templates/forex-effect.ts +22 -27
  270. package/src/templates/forex.ts +7 -6
  271. package/src/templates/index.ts +18 -5
  272. package/src/templates/ping.ts +14 -5
  273. package/src/testing/simulator.test.ts +40 -0
  274. package/src/types/Notebook.ts +5 -6
  275. package/src/types/actions.ts +17 -25
  276. package/src/types/capabilities.ts +17 -0
  277. package/src/types/events.ts +11 -0
  278. package/src/types/index.ts +2 -0
  279. package/src/types/types.ts +1 -1
  280. package/src/util/deploy.ts +19 -25
  281. package/src/util/functions.ts +24 -22
  282. package/src/vite-env.d.ts +2 -0
  283. package/dist/lib/browser/DeploymentDialog-5TKNGPVR.mjs +0 -14
  284. package/dist/lib/browser/NotebookContainer-MHY3DXDE.mjs.map +0 -7
  285. package/dist/lib/browser/ScriptContainer-CW6YN3DQ.mjs +0 -148
  286. package/dist/lib/browser/ScriptContainer-CW6YN3DQ.mjs.map +0 -7
  287. package/dist/lib/browser/app-graph-builder-2WR2ATTJ.mjs +0 -66
  288. package/dist/lib/browser/app-graph-builder-2WR2ATTJ.mjs.map +0 -7
  289. package/dist/lib/browser/blueprint-definition-6PZWZM2Y.mjs +0 -30
  290. package/dist/lib/browser/blueprint-definition-6PZWZM2Y.mjs.map +0 -7
  291. package/dist/lib/browser/chunk-2G2NA6DQ.mjs.map +0 -7
  292. package/dist/lib/browser/chunk-ALS6X4HU.mjs +0 -304
  293. package/dist/lib/browser/chunk-ALS6X4HU.mjs.map +0 -7
  294. package/dist/lib/browser/chunk-EB6AXFXO.mjs.map +0 -7
  295. package/dist/lib/browser/chunk-M6KJPUJK.mjs +0 -111
  296. package/dist/lib/browser/chunk-M6KJPUJK.mjs.map +0 -7
  297. package/dist/lib/browser/chunk-N5EYLQOT.mjs +0 -647
  298. package/dist/lib/browser/chunk-N5EYLQOT.mjs.map +0 -7
  299. package/dist/lib/browser/chunk-QIZ3BPRK.mjs +0 -103
  300. package/dist/lib/browser/chunk-QIZ3BPRK.mjs.map +0 -7
  301. package/dist/lib/browser/chunk-SAN5Y7FI.mjs +0 -155
  302. package/dist/lib/browser/chunk-SAN5Y7FI.mjs.map +0 -7
  303. package/dist/lib/browser/chunk-ULJFT73Q.mjs.map +0 -7
  304. package/dist/lib/browser/chunk-UOQ6NCH3.mjs +0 -15
  305. package/dist/lib/browser/chunk-UOQ6NCH3.mjs.map +0 -7
  306. package/dist/lib/browser/compiler-4KHRSX7J.mjs +0 -86
  307. package/dist/lib/browser/compiler-4KHRSX7J.mjs.map +0 -7
  308. package/dist/lib/browser/intent-resolver-TXTBWOVD.mjs +0 -104
  309. package/dist/lib/browser/intent-resolver-TXTBWOVD.mjs.map +0 -7
  310. package/dist/lib/browser/react-surface-R245YN52.mjs.map +0 -7
  311. package/dist/lib/browser/settings-MHJXRGDF.mjs +0 -26
  312. package/dist/lib/browser/settings-MHJXRGDF.mjs.map +0 -7
  313. package/dist/lib/node-esm/NotebookContainer-U4C2HQ4T.mjs.map +0 -7
  314. package/dist/lib/node-esm/ScriptContainer-VRPEKB4T.mjs +0 -149
  315. package/dist/lib/node-esm/ScriptContainer-VRPEKB4T.mjs.map +0 -7
  316. package/dist/lib/node-esm/app-graph-builder-NCVLUL5R.mjs +0 -67
  317. package/dist/lib/node-esm/app-graph-builder-NCVLUL5R.mjs.map +0 -7
  318. package/dist/lib/node-esm/blueprint-definition-5R6YCSZZ.mjs +0 -31
  319. package/dist/lib/node-esm/blueprint-definition-5R6YCSZZ.mjs.map +0 -7
  320. package/dist/lib/node-esm/chunk-55JZVM6K.mjs +0 -16
  321. package/dist/lib/node-esm/chunk-55JZVM6K.mjs.map +0 -7
  322. package/dist/lib/node-esm/chunk-57JA6XL5.mjs.map +0 -7
  323. package/dist/lib/node-esm/chunk-HDKR5WCD.mjs +0 -113
  324. package/dist/lib/node-esm/chunk-HDKR5WCD.mjs.map +0 -7
  325. package/dist/lib/node-esm/chunk-IBV2DR36.mjs.map +0 -7
  326. package/dist/lib/node-esm/chunk-ND4BPYPR.mjs +0 -156
  327. package/dist/lib/node-esm/chunk-ND4BPYPR.mjs.map +0 -7
  328. package/dist/lib/node-esm/chunk-UEVZP5DN.mjs +0 -648
  329. package/dist/lib/node-esm/chunk-UEVZP5DN.mjs.map +0 -7
  330. package/dist/lib/node-esm/chunk-VJSRZRLI.mjs.map +0 -7
  331. package/dist/lib/node-esm/chunk-VTRMJSQL.mjs +0 -305
  332. package/dist/lib/node-esm/chunk-VTRMJSQL.mjs.map +0 -7
  333. package/dist/lib/node-esm/chunk-XYKKDWUR.mjs +0 -104
  334. package/dist/lib/node-esm/chunk-XYKKDWUR.mjs.map +0 -7
  335. package/dist/lib/node-esm/compiler-DU5NQISX.mjs +0 -87
  336. package/dist/lib/node-esm/compiler-DU5NQISX.mjs.map +0 -7
  337. package/dist/lib/node-esm/intent-resolver-D6AVAQRA.mjs +0 -105
  338. package/dist/lib/node-esm/intent-resolver-D6AVAQRA.mjs.map +0 -7
  339. package/dist/lib/node-esm/react-surface-MHT3PJ6C.mjs.map +0 -7
  340. package/dist/lib/node-esm/settings-BVJORMMJ.mjs +0 -27
  341. package/dist/lib/node-esm/settings-BVJORMMJ.mjs.map +0 -7
  342. package/dist/types/src/capabilities/app-graph-builder.d.ts +0 -4
  343. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +0 -1
  344. package/dist/types/src/capabilities/artifact-definition.d.ts +0 -11
  345. package/dist/types/src/capabilities/artifact-definition.d.ts.map +0 -1
  346. package/dist/types/src/capabilities/blueprint-definition.d.ts +0 -5
  347. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +0 -1
  348. package/dist/types/src/capabilities/capabilities.d.ts +0 -5
  349. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  350. package/dist/types/src/capabilities/compiler.d.ts +0 -4
  351. package/dist/types/src/capabilities/compiler.d.ts.map +0 -1
  352. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  353. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  354. package/dist/types/src/capabilities/react-surface.d.ts +0 -4
  355. package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
  356. package/dist/types/src/capabilities/settings.d.ts +0 -4
  357. package/dist/types/src/capabilities/settings.d.ts.map +0 -1
  358. package/dist/types/src/events.d.ts +0 -4
  359. package/dist/types/src/events.d.ts.map +0 -1
  360. package/dist/types/src/templates/chess.d.ts +0 -3
  361. package/dist/types/src/templates/chess.d.ts.map +0 -1
  362. package/src/capabilities/app-graph-builder.ts +0 -65
  363. package/src/capabilities/blueprint-definition.ts +0 -30
  364. package/src/capabilities/capabilities.ts +0 -12
  365. package/src/capabilities/compiler.ts +0 -34
  366. package/src/capabilities/intent-resolver.ts +0 -86
  367. package/src/capabilities/react-surface.tsx +0 -103
  368. package/src/capabilities/settings.ts +0 -21
  369. package/src/events.ts +0 -11
  370. package/src/templates/chess.ts +0 -49
  371. /package/dist/lib/browser/{DeploymentDialog-5TKNGPVR.mjs.map → DeploymentDialog-GXNRUXF6.mjs.map} +0 -0
  372. /package/dist/lib/{node-esm/DeploymentDialog-2ULNOZQH.mjs.map → browser/blueprints/index.mjs.map} +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/DeploymentDialog/DeploymentDialog.tsx", "../../../src/components/DeploymentDialog/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useEffect, useMemo } from 'react';\n\nimport { Common } from '@dxos/app-framework';\nimport { useOperationInvoker } from '@dxos/app-framework/react';\nimport { getSpace } from '@dxos/react-client/echo';\nimport { Button, Dialog, IconButton, useTranslation } from '@dxos/react-ui';\nimport { type AccessToken } from '@dxos/types';\n\nimport { useCreateAndDeployScriptTemplates } from '../../hooks';\nimport { meta } from '../../meta';\nimport { type Template } from '../../templates';\n\nexport const DEPLOYMENT_DIALOG = `${meta.id}/deployment/dialog`;\n\n// TODO(ZaymonFC):\n// - Show activity and feedback to the user.\n// - Only take an array of templateIds and get the name from the data.\n// - Pending / onError states.\n\nexport type DeploymentDialogProps = {\n accessToken: AccessToken.AccessToken;\n scriptTemplates: Template[];\n};\n\nexport const DeploymentDialog = ({ accessToken, scriptTemplates }: DeploymentDialogProps) => {\n const { t } = useTranslation(meta.id);\n const space = useMemo(() => getSpace(accessToken), [accessToken]);\n\n // TODO(ZaymonFC): Thinking further. All of this should get moved to intents to run async in the background.\n // Deployment shouldn't be tied to the lifecycle of the dialogue component.\n const { handleCreateAndDeployScripts, status } = useCreateAndDeployScriptTemplates(space, scriptTemplates);\n const { invokePromise } = useOperationInvoker();\n\n useEffect(() => {\n if (status === 'success') {\n // TODO(ZaymonFC): We can probably re-use this toast for normal script deployment.\n void invokePromise(Common.LayoutOperation.AddToast, {\n id: `${meta.id}/deployment-success`,\n icon: 'ph--check--regular',\n duration: Infinity,\n title: ['script deployment toast label', { ns: meta.id, count: scriptTemplates.length }],\n description: ['script deployment toast description', { ns: meta.id, count: scriptTemplates.length }],\n closeLabel: ['script deployment toast close label', { ns: meta.id, count: scriptTemplates.length }],\n });\n void invokePromise(Common.LayoutOperation.UpdateDialog, { state: false });\n }\n if (status === 'error') {\n void invokePromise(Common.LayoutOperation.UpdateDialog, { state: false });\n void invokePromise(Common.LayoutOperation.AddToast, {\n id: `${meta.id}/deployment-error`,\n icon: 'ph--warning--regular',\n duration: Infinity,\n title: ['script deployment error toast label', { ns: meta.id, count: scriptTemplates.length }],\n description: ['script deployment error toast description', { ns: meta.id, count: scriptTemplates.length }],\n closeLabel: ['script deployment error toast close label', { ns: meta.id, count: scriptTemplates.length }],\n });\n }\n }, [status, invokePromise]);\n\n return (\n <Dialog.Content>\n <div className='flex justify-between items-center'>\n <Dialog.Title>{t('deployment dialog title')}</Dialog.Title>\n <Dialog.Close asChild>\n <IconButton icon='ph--x--regular' size={4} label='Close' iconOnly density='fine' variant='ghost' />\n </Dialog.Close>\n </div>\n <div role='none' className='plb-4'>\n {/* TODO: Implement deployment logic and UI. */}\n <p>\n {t('deployment dialog scripts found message', {\n count: scriptTemplates.length,\n })}\n </p>\n <ul className='pbs-2'>\n {scriptTemplates.map((template) => {\n return <li key={template.id}>{template.name}</li>;\n })}\n </ul>\n </div>\n <div role='none' className='flex flex-row-reverse gap-1'>\n <Button variant='primary' onClick={handleCreateAndDeployScripts} disabled={status === 'pending'}>\n {status === 'pending'\n ? t('deployment dialog deploy functions pending button label', {\n count: scriptTemplates.length,\n })\n : t('deployment dialog deploy functions button label', {\n count: scriptTemplates.length,\n })}\n </Button>\n <Dialog.Close asChild disabled={status === 'pending'}>\n <Button disabled={status === 'pending'}>{t('deployment dialog skip button label')}</Button>\n </Dialog.Close>\n </div>\n </Dialog.Content>\n );\n};\n\nexport default DeploymentDialog;\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { DEPLOYMENT_DIALOG, DeploymentDialog } from './DeploymentDialog';\n\nexport { DEPLOYMENT_DIALOG };\n\nexport default DeploymentDialog;\n"],
5
+ "mappings": ";;;;;;;;AAIA,OAAOA,SAASC,WAAWC,eAAe;AAE1C,SAASC,cAAc;AACvB,SAASC,2BAA2B;AACpC,SAASC,gBAAgB;AACzB,SAASC,QAAQC,QAAQC,YAAYC,sBAAsB;AAOpD,IAAMC,oBAAoB,GAAGC,KAAKC,EAAE;AAYpC,IAAMC,mBAAmB,CAAC,EAAEC,aAAaC,gBAAe,MAAyB;AACtF,QAAM,EAAEC,EAAC,IAAKC,eAAeN,KAAKC,EAAE;AACpC,QAAMM,QAAQC,QAAQ,MAAMC,SAASN,WAAAA,GAAc;IAACA;GAAY;AAIhE,QAAM,EAAEO,8BAA8BC,OAAM,IAAKC,kCAAkCL,OAAOH,eAAAA;AAC1F,QAAM,EAAES,cAAa,IAAKC,oBAAAA;AAE1BC,YAAU,MAAA;AACR,QAAIJ,WAAW,WAAW;AAExB,WAAKE,cAAcG,OAAOC,gBAAgBC,UAAU;QAClDjB,IAAI,GAAGD,KAAKC,EAAE;QACdkB,MAAM;QACNC,UAAUC;QACVC,OAAO;UAAC;UAAiC;YAAEC,IAAIvB,KAAKC;YAAIuB,OAAOpB,gBAAgBqB;UAAO;;QACtFC,aAAa;UAAC;UAAuC;YAAEH,IAAIvB,KAAKC;YAAIuB,OAAOpB,gBAAgBqB;UAAO;;QAClGE,YAAY;UAAC;UAAuC;YAAEJ,IAAIvB,KAAKC;YAAIuB,OAAOpB,gBAAgBqB;UAAO;;MACnG,CAAA;AACA,WAAKZ,cAAcG,OAAOC,gBAAgBW,cAAc;QAAEC,OAAO;MAAM,CAAA;IACzE;AACA,QAAIlB,WAAW,SAAS;AACtB,WAAKE,cAAcG,OAAOC,gBAAgBW,cAAc;QAAEC,OAAO;MAAM,CAAA;AACvE,WAAKhB,cAAcG,OAAOC,gBAAgBC,UAAU;QAClDjB,IAAI,GAAGD,KAAKC,EAAE;QACdkB,MAAM;QACNC,UAAUC;QACVC,OAAO;UAAC;UAAuC;YAAEC,IAAIvB,KAAKC;YAAIuB,OAAOpB,gBAAgBqB;UAAO;;QAC5FC,aAAa;UAAC;UAA6C;YAAEH,IAAIvB,KAAKC;YAAIuB,OAAOpB,gBAAgBqB;UAAO;;QACxGE,YAAY;UAAC;UAA6C;YAAEJ,IAAIvB,KAAKC;YAAIuB,OAAOpB,gBAAgBqB;UAAO;;MACzG,CAAA;IACF;EACF,GAAG;IAACd;IAAQE;GAAc;AAE1B,SACE,sBAAA,cAACiB,OAAOC,SAAO,MACb,sBAAA,cAACC,OAAAA;IAAIC,WAAU;KACb,sBAAA,cAACH,OAAOI,OAAK,MAAE7B,EAAE,yBAAA,CAAA,GACjB,sBAAA,cAACyB,OAAOK,OAAK;IAACC,SAAAA;KACZ,sBAAA,cAACC,YAAAA;IAAWlB,MAAK;IAAiBmB,MAAM;IAAGC,OAAM;IAAQC,UAAAA;IAASC,SAAQ;IAAOC,SAAQ;QAG7F,sBAAA,cAACV,OAAAA;IAAIW,MAAK;IAAOV,WAAU;KAEzB,sBAAA,cAACW,KAAAA,MACEvC,EAAE,2CAA2C;IAC5CmB,OAAOpB,gBAAgBqB;EACzB,CAAA,CAAA,GAEF,sBAAA,cAACoB,MAAAA;IAAGZ,WAAU;KACX7B,gBAAgB0C,IAAI,CAACC,aAAAA;AACpB,WAAO,sBAAA,cAACC,MAAAA;MAAGC,KAAKF,SAAS9C;OAAK8C,SAASG,IAAI;EAC7C,CAAA,CAAA,CAAA,GAGJ,sBAAA,cAAClB,OAAAA;IAAIW,MAAK;IAAOV,WAAU;KACzB,sBAAA,cAACkB,QAAAA;IAAOT,SAAQ;IAAUU,SAAS1C;IAA8B2C,UAAU1C,WAAW;KACnFA,WAAW,YACRN,EAAE,2DAA2D;IAC3DmB,OAAOpB,gBAAgBqB;EACzB,CAAA,IACApB,EAAE,mDAAmD;IACnDmB,OAAOpB,gBAAgBqB;EACzB,CAAA,CAAA,GAEN,sBAAA,cAACK,OAAOK,OAAK;IAACC,SAAAA;IAAQiB,UAAU1C,WAAW;KACzC,sBAAA,cAACwC,QAAAA;IAAOE,UAAU1C,WAAW;KAAYN,EAAE,qCAAA,CAAA,CAAA,CAAA,CAAA;AAKrD;;;AC5FA,IAAA,2BAAeiD;",
6
+ "names": ["React", "useEffect", "useMemo", "Common", "useOperationInvoker", "getSpace", "Button", "Dialog", "IconButton", "useTranslation", "DEPLOYMENT_DIALOG", "meta", "id", "DeploymentDialog", "accessToken", "scriptTemplates", "t", "useTranslation", "space", "useMemo", "getSpace", "handleCreateAndDeployScripts", "status", "useCreateAndDeployScriptTemplates", "invokePromise", "useOperationInvoker", "useEffect", "Common", "LayoutOperation", "AddToast", "icon", "duration", "Infinity", "title", "ns", "count", "length", "description", "closeLabel", "UpdateDialog", "state", "Dialog", "Content", "div", "className", "Title", "Close", "asChild", "IconButton", "size", "label", "iconOnly", "density", "variant", "role", "p", "ul", "map", "template", "li", "key", "name", "Button", "onClick", "disabled", "DeploymentDialog"]
7
+ }
@@ -0,0 +1,606 @@
1
+ import {
2
+ getAccessCredential,
3
+ useDeployState,
4
+ useToolbarState
5
+ } from "./chunk-WX2NVNFQ.mjs";
6
+ import {
7
+ meta
8
+ } from "./chunk-WYR4QHPE.mjs";
9
+
10
+ // src/components/Settings/ScriptObjectSettings.tsx
11
+ import { Octokit } from "@octokit/core";
12
+ import React, { useCallback, useState } from "react";
13
+ import { ToolId } from "@dxos/ai";
14
+ import { SettingsOperation } from "@dxos/app-framework";
15
+ import { useOperationInvoker } from "@dxos/app-framework/react";
16
+ import { Blueprint, Template } from "@dxos/blueprints";
17
+ import { Filter, Obj, Ref } from "@dxos/echo";
18
+ import { Function, getUserFunctionIdInMetadata } from "@dxos/functions";
19
+ import { getInvocationUrl } from "@dxos/functions-runtime";
20
+ import { log } from "@dxos/log";
21
+ import { useClient } from "@dxos/react-client";
22
+ import { useQuery } from "@dxos/react-client/echo";
23
+ import { Button, Clipboard, Input, useAsyncEffect, useControlledState, useTranslation } from "@dxos/react-ui";
24
+ import { AccessToken } from "@dxos/types";
25
+ import { kebabize } from "@dxos/util";
26
+ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-script/src/components/Settings/ScriptObjectSettings.tsx";
27
+ var ScriptObjectSettings = ({ object }) => {
28
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Binding, {
29
+ object
30
+ }), /* @__PURE__ */ React.createElement(BlueprintEditor, {
31
+ object
32
+ }), /* @__PURE__ */ React.createElement(Publishing, {
33
+ object
34
+ }));
35
+ };
36
+ var ScriptProperties = ({ object }) => {
37
+ const { t } = useTranslation(meta.id);
38
+ return /* @__PURE__ */ React.createElement(Input.Root, null, /* @__PURE__ */ React.createElement(Input.Label, null, t("description label")), /* @__PURE__ */ React.createElement(Input.TextInput, {
39
+ placeholder: t("description placeholder"),
40
+ value: object.description ?? "",
41
+ onChange: (event) => {
42
+ Obj.change(object, (o) => {
43
+ o.description = event.target.value;
44
+ });
45
+ }
46
+ }));
47
+ };
48
+ var BlueprintEditor = ({ object }) => {
49
+ const { t } = useTranslation(meta.id);
50
+ const db = Obj.getDatabase(object);
51
+ const [fn] = useQuery(db, Filter.type(Function.Function, {
52
+ source: Ref.make(object)
53
+ }));
54
+ const blueprints = useQuery(db, Filter.type(Blueprint.Blueprint));
55
+ const [creating, setCreating] = useState(false);
56
+ const [instructions, setInstructions] = useState(`You can run the script "${object.name ?? "script"}".`);
57
+ const blueprintKey = `dxos.org/blueprint/${kebabize(object.name ?? "script")}`;
58
+ const existingBlueprint = blueprints.find((bp) => bp.key === blueprintKey);
59
+ useAsyncEffect(async () => {
60
+ if (!existingBlueprint) {
61
+ return;
62
+ }
63
+ const source = await existingBlueprint.instructions.source.load();
64
+ setInstructions(source.content ?? "");
65
+ }, [
66
+ existingBlueprint
67
+ ]);
68
+ const handleSave = useCallback(async () => {
69
+ if (!db) {
70
+ return;
71
+ }
72
+ setCreating(true);
73
+ try {
74
+ if (existingBlueprint) {
75
+ const text = await existingBlueprint.instructions.source.load();
76
+ Obj.change(text, (t2) => {
77
+ t2.content = instructions;
78
+ });
79
+ if (fn?.key) {
80
+ const toolId = ToolId.make(fn.key);
81
+ if (!existingBlueprint.tools?.includes(toolId)) {
82
+ Obj.change(existingBlueprint, (b) => {
83
+ b.tools = [
84
+ ...b.tools ?? [],
85
+ toolId
86
+ ];
87
+ });
88
+ }
89
+ }
90
+ } else if (fn?.key) {
91
+ db.add(Blueprint.make({
92
+ key: blueprintKey,
93
+ name: object.name ?? "Script",
94
+ instructions: Template.make({
95
+ source: instructions
96
+ }),
97
+ tools: [
98
+ ToolId.make(fn.key)
99
+ ]
100
+ }));
101
+ }
102
+ await db.flush();
103
+ } finally {
104
+ setCreating(false);
105
+ }
106
+ }, [
107
+ db,
108
+ existingBlueprint,
109
+ fn,
110
+ blueprintKey,
111
+ object.name,
112
+ instructions
113
+ ]);
114
+ return /* @__PURE__ */ React.createElement("div", {
115
+ className: "flex flex-col gap-4 mlb-cardSpacingBlock"
116
+ }, /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("h2", null, t("blueprint editor label", {
117
+ default: "Blueprint"
118
+ })), /* @__PURE__ */ React.createElement("p", {
119
+ className: "text-description text-sm"
120
+ }, t("blueprint editor description", {
121
+ default: "Create a blueprint that exposes this script as a tool."
122
+ }))), /* @__PURE__ */ React.createElement(Input.Root, null, /* @__PURE__ */ React.createElement("div", {
123
+ role: "none",
124
+ className: "flex flex-col gap-1"
125
+ }, /* @__PURE__ */ React.createElement(Input.Label, null, t("blueprint instructions label", {
126
+ default: "Instructions"
127
+ })), /* @__PURE__ */ React.createElement(Input.TextArea, {
128
+ placeholder: t("blueprint instructions placeholder", {
129
+ default: "Describe how this tool should be used."
130
+ }),
131
+ rows: 6,
132
+ value: instructions,
133
+ onChange: (event) => setInstructions(event.target.value),
134
+ classNames: "resize-y"
135
+ }))), /* @__PURE__ */ React.createElement("div", {
136
+ className: "flex justify-end gap-2"
137
+ }, /* @__PURE__ */ React.createElement(Button, {
138
+ disabled: !existingBlueprint && !fn?.key || creating,
139
+ onClick: handleSave
140
+ }, t(creating ? "creating label" : "create blueprint label", {
141
+ default: creating ? "Creating\u2026" : "Create blueprint"
142
+ }))));
143
+ };
144
+ var Binding = ({ object }) => {
145
+ const { t } = useTranslation(meta.id);
146
+ const client = useClient();
147
+ const db = Obj.getDatabase(object);
148
+ const [fn] = useQuery(db, Filter.type(Function.Function, {
149
+ source: Ref.make(object)
150
+ }));
151
+ const functionId = fn && getUserFunctionIdInMetadata(Obj.getMeta(fn));
152
+ const functionUrl = functionId && getInvocationUrl(functionId, client.config.values.runtime?.services?.edge?.url ?? "", {
153
+ spaceId: db?.spaceId
154
+ });
155
+ const [binding, setBinding] = useControlledState(fn?.binding ?? "");
156
+ const handleBindingChange = useCallback((event) => {
157
+ setBinding(event.target.value);
158
+ }, [
159
+ setBinding
160
+ ]);
161
+ const handleBindingBlur = useCallback(() => {
162
+ Obj.change(fn, (f) => {
163
+ f.binding = binding;
164
+ });
165
+ }, [
166
+ fn,
167
+ binding
168
+ ]);
169
+ if (!fn || !functionUrl) {
170
+ return null;
171
+ }
172
+ return /* @__PURE__ */ React.createElement("div", {
173
+ role: "form",
174
+ className: "flex flex-col gap-2 mlb-cardSpacingBlock"
175
+ }, /* @__PURE__ */ React.createElement("h2", null, t("remote function settings heading")), /* @__PURE__ */ React.createElement(Input.Root, null, /* @__PURE__ */ React.createElement("div", {
176
+ role: "none",
177
+ className: "flex flex-col gap-1"
178
+ }, /* @__PURE__ */ React.createElement(Input.Label, null, t("function url label")), /* @__PURE__ */ React.createElement("div", {
179
+ role: "none",
180
+ className: "flex gap-1"
181
+ }, /* @__PURE__ */ React.createElement(Input.TextInput, {
182
+ disabled: true,
183
+ value: functionUrl,
184
+ onChange: (event) => {
185
+ Obj.change(fn, (f) => {
186
+ f.name = event.target.value;
187
+ });
188
+ }
189
+ }), /* @__PURE__ */ React.createElement(Clipboard.IconButton, {
190
+ value: functionUrl
191
+ })))), /* @__PURE__ */ React.createElement(Input.Root, null, /* @__PURE__ */ React.createElement("div", {
192
+ role: "none",
193
+ className: "flex flex-col gap-1"
194
+ }, /* @__PURE__ */ React.createElement(Input.Label, null, t("function binding label")), /* @__PURE__ */ React.createElement(Input.TextInput, {
195
+ placeholder: t("function binding placeholder"),
196
+ value: binding,
197
+ onChange: handleBindingChange,
198
+ onBlur: handleBindingBlur
199
+ }))));
200
+ };
201
+ var Publishing = ({ object }) => {
202
+ const { t } = useTranslation(meta.id);
203
+ const { invokePromise } = useOperationInvoker();
204
+ const db = Obj.getDatabase(object);
205
+ const [githubToken] = useQuery(db, Filter.type(AccessToken.AccessToken, {
206
+ source: "github.com"
207
+ }));
208
+ const gistKey = Obj.getMeta(object).keys.find(({ source }) => source === "github.com");
209
+ const [gistUrl, setGistUrl] = useState();
210
+ useAsyncEffect(async () => {
211
+ const token = githubToken?.token;
212
+ const gistId = gistKey?.id;
213
+ if (!token || !gistId) {
214
+ setGistUrl(void 0);
215
+ return;
216
+ }
217
+ try {
218
+ const octokit = new Octokit({
219
+ auth: githubToken.token
220
+ });
221
+ const response = await octokit.request("GET /gists/{gist_id}", {
222
+ gist_id: gistId
223
+ });
224
+ setGistUrl(response.data.html_url);
225
+ } catch (err) {
226
+ log.catch(err, void 0, {
227
+ F: __dxlog_file,
228
+ L: 239,
229
+ S: void 0,
230
+ C: (f, a) => f(...a)
231
+ });
232
+ setGistUrl(void 0);
233
+ }
234
+ }, [
235
+ githubToken,
236
+ gistKey
237
+ ]);
238
+ const handleOpenTokenManager = useCallback(() => invokePromise(SettingsOperation.Open, {
239
+ plugin: "dxos.org/plugin/token-manager"
240
+ }), [
241
+ invokePromise
242
+ ]);
243
+ const [publishing, setPublishing] = useState(false);
244
+ const handlePublish = useCallback(async () => {
245
+ setPublishing(true);
246
+ const octokit = new Octokit({
247
+ auth: githubToken.token
248
+ });
249
+ const source = await object.source.load();
250
+ const filename = object.name ? kebabize(object.name) : "composer-script";
251
+ const files = {
252
+ [`${filename}.ts`]: {
253
+ content: source.content
254
+ }
255
+ };
256
+ try {
257
+ const meta2 = Obj.getMeta(object);
258
+ const githubKey = meta2.keys.find(({ source: source2 }) => source2 === "github.com");
259
+ const gistId = githubKey?.id;
260
+ if (gistId) {
261
+ await octokit.request("PATCH /gists/{gist_id}", {
262
+ gist_id: gistId,
263
+ files
264
+ });
265
+ } else {
266
+ const response = await octokit.request("POST /gists", {
267
+ public: true,
268
+ files
269
+ });
270
+ const gistId2 = response.data.id;
271
+ if (gistId2) {
272
+ Obj.change(object, (obj) => {
273
+ Obj.getMeta(obj).keys.push({
274
+ source: "github.com",
275
+ id: gistId2
276
+ });
277
+ });
278
+ }
279
+ }
280
+ } finally {
281
+ setPublishing(false);
282
+ }
283
+ }, [
284
+ object,
285
+ githubToken
286
+ ]);
287
+ return /* @__PURE__ */ React.createElement("div", {
288
+ className: "flex flex-col gap-4 mlb-cardSpacingBlock"
289
+ }, /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("h2", null, t("script publish settings label")), /* @__PURE__ */ React.createElement("p", {
290
+ className: "text-description text-sm"
291
+ }, t("script publish settings description"))), !githubToken && /* @__PURE__ */ React.createElement("div", {
292
+ className: "flex flex-col gap-2"
293
+ }, /* @__PURE__ */ React.createElement("span", null, t("no github token label")), /* @__PURE__ */ React.createElement(Button, {
294
+ onClick: handleOpenTokenManager
295
+ }, t("open token manager label"))), githubToken && /* @__PURE__ */ React.createElement("div", {
296
+ className: "flex justify-end gap-2"
297
+ }, gistUrl && /* @__PURE__ */ React.createElement(Clipboard.IconButton, {
298
+ value: gistUrl
299
+ }), /* @__PURE__ */ React.createElement(Button, {
300
+ disabled: publishing,
301
+ onClick: handlePublish
302
+ }, t(publishing ? "publishing label" : "publish label"))));
303
+ };
304
+
305
+ // src/components/Settings/ScriptPluginSettings.tsx
306
+ import React2 from "react";
307
+ import { useClient as useClient2 } from "@dxos/react-client";
308
+ import { Button as Button2, Select, useTranslation as useTranslation2 } from "@dxos/react-ui";
309
+ import { ControlGroup, ControlItemInput, ControlPage, ControlSection } from "@dxos/react-ui-form";
310
+ import { EditorInputModes } from "@dxos/ui-editor";
311
+ var ScriptPluginSettings = ({ settings, onSettingsChange }) => {
312
+ const { t } = useTranslation2(meta.id);
313
+ const client = useClient2();
314
+ const handleAuthenticate = async () => {
315
+ const { identityKey } = client.halo.identity.get();
316
+ await client.halo.writeCredentials([
317
+ getAccessCredential(identityKey)
318
+ ]);
319
+ };
320
+ return /* @__PURE__ */ React2.createElement(ControlPage, null, /* @__PURE__ */ React2.createElement(ControlSection, {
321
+ title: t("settings title", {
322
+ ns: meta.id
323
+ })
324
+ }, /* @__PURE__ */ React2.createElement(ControlGroup, null, /* @__PURE__ */ React2.createElement(ControlItemInput, {
325
+ title: t("authenticate action label")
326
+ }, /* @__PURE__ */ React2.createElement(Button2, {
327
+ onClick: handleAuthenticate
328
+ }, t("authenticate button label"))), /* @__PURE__ */ React2.createElement(ControlItemInput, {
329
+ title: t("editor input mode label")
330
+ }, /* @__PURE__ */ React2.createElement(Select.Root, {
331
+ value: settings.editorInputMode ?? "default",
332
+ onValueChange: (value) => {
333
+ onSettingsChange((s) => ({
334
+ ...s,
335
+ editorInputMode: value
336
+ }));
337
+ }
338
+ }, /* @__PURE__ */ React2.createElement(Select.TriggerButton, {
339
+ placeholder: t("select editor input mode placeholder")
340
+ }), /* @__PURE__ */ React2.createElement(Select.Portal, null, /* @__PURE__ */ React2.createElement(Select.Content, null, /* @__PURE__ */ React2.createElement(Select.Viewport, null, EditorInputModes.map((mode) => /* @__PURE__ */ React2.createElement(Select.Option, {
341
+ key: mode,
342
+ value: mode
343
+ }, t(`settings editor input mode ${mode} label`)))), /* @__PURE__ */ React2.createElement(Select.Arrow, null))))))));
344
+ };
345
+
346
+ // src/components/TestPanel/TestPanel.tsx
347
+ import React3, { forwardRef, useEffect, useRef, useState as useState2 } from "react";
348
+ import { log as log2 } from "@dxos/log";
349
+ import { Avatar, Icon, Input as Input2, Toolbar, useTranslation as useTranslation3 } from "@dxos/react-ui";
350
+ import { SyntaxHighlighter } from "@dxos/react-ui-syntax-highlighter";
351
+ import { errorText, mx } from "@dxos/ui-theme";
352
+ var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-script/src/components/TestPanel/TestPanel.tsx";
353
+ var TestPanel = ({ classNames, functionUrl }) => {
354
+ const { t } = useTranslation3(meta.id);
355
+ const inputRef = useRef(null);
356
+ const [input, setInput] = useState2("");
357
+ const [result, setResult] = useState2("");
358
+ const [state, setState] = useState2(null);
359
+ const [history, setHistory] = useState2([]);
360
+ const scrollerRef = useRef(null);
361
+ const handleScroll = () => {
362
+ if (scrollerRef.current) {
363
+ scrollerRef.current.scrollTop = scrollerRef.current.scrollHeight;
364
+ }
365
+ };
366
+ const controller = useRef(null);
367
+ useEffect(() => {
368
+ return () => {
369
+ handleStop();
370
+ };
371
+ }, []);
372
+ const handleStop = () => {
373
+ controller.current?.abort("stop");
374
+ controller.current = null;
375
+ };
376
+ const handleClear = () => {
377
+ handleStop();
378
+ setInput("");
379
+ setResult("");
380
+ setHistory([]);
381
+ inputRef.current?.focus();
382
+ };
383
+ const handleResponse = ({ text, data, error } = {}) => {
384
+ controller.current = null;
385
+ setHistory((history2) => [
386
+ ...history2,
387
+ {
388
+ type: "response",
389
+ text,
390
+ data,
391
+ error
392
+ }
393
+ ]);
394
+ setResult("");
395
+ setState(null);
396
+ handleScroll();
397
+ };
398
+ const handleRequest = async (input2) => {
399
+ try {
400
+ setState("pending");
401
+ let data = null;
402
+ if (input2.charAt(0) === "{") {
403
+ try {
404
+ const validJsonString = input2.replace(/'/g, '"').replace(/([{,]\s*)([a-zA-Z0-9_]+)(\s*:)/g, '$1"$2"$3');
405
+ data = JSON.parse(validJsonString);
406
+ input2 = JSON.stringify(data, null, 2);
407
+ } catch (err) {
408
+ inputRef.current?.focus();
409
+ return;
410
+ }
411
+ }
412
+ setInput("");
413
+ setResult("");
414
+ setHistory((history2) => [
415
+ ...history2,
416
+ {
417
+ type: "request",
418
+ text: input2
419
+ }
420
+ ]);
421
+ setTimeout(() => {
422
+ handleScroll();
423
+ });
424
+ controller.current = new AbortController();
425
+ const response = await fetch(functionUrl, {
426
+ signal: controller.current.signal,
427
+ method: "POST",
428
+ body: input2,
429
+ headers: {
430
+ "Content-Type": data ? "application/json" : "text/plain"
431
+ }
432
+ });
433
+ if (!response.ok) {
434
+ const text2 = await response.text();
435
+ handleResponse({
436
+ error: new Error(text2 || response.statusText || String(response.status))
437
+ });
438
+ return;
439
+ }
440
+ const contentType = response.headers.get("content-type");
441
+ if (contentType === "application/json") {
442
+ const data2 = await response.json();
443
+ handleResponse({
444
+ data: data2
445
+ });
446
+ return;
447
+ }
448
+ setState("responding");
449
+ let text = "";
450
+ const reader = response.body.getReader();
451
+ const pump = async ({ done, value }) => {
452
+ text = text + new TextDecoder().decode(value);
453
+ if (!controller.current || done) {
454
+ handleResponse({
455
+ text
456
+ });
457
+ return;
458
+ }
459
+ setResult(text);
460
+ setTimeout(() => {
461
+ handleScroll();
462
+ });
463
+ return reader.read().then(pump);
464
+ };
465
+ void reader.read().then(pump).catch((err) => {
466
+ if (err.name !== "AbortError") {
467
+ log2.catch(err, void 0, {
468
+ F: __dxlog_file2,
469
+ L: 162,
470
+ S: void 0,
471
+ C: (f, a) => f(...a)
472
+ });
473
+ }
474
+ });
475
+ } catch (err) {
476
+ if (err !== "stop") {
477
+ const error = err instanceof Error ? err : new Error(err);
478
+ handleResponse({
479
+ error
480
+ });
481
+ log2.catch(err, void 0, {
482
+ F: __dxlog_file2,
483
+ L: 169,
484
+ S: void 0,
485
+ C: (f, a) => f(...a)
486
+ });
487
+ } else {
488
+ handleResponse();
489
+ }
490
+ }
491
+ };
492
+ return /* @__PURE__ */ React3.createElement("div", {
493
+ className: mx("flex flex-col bs-full overflow-hidden", classNames)
494
+ }, /* @__PURE__ */ React3.createElement(MessageThread, {
495
+ ref: scrollerRef,
496
+ state,
497
+ result,
498
+ history
499
+ }), /* @__PURE__ */ React3.createElement(Toolbar.Root, null, /* @__PURE__ */ React3.createElement(Input2.Root, null, /* @__PURE__ */ React3.createElement(Input2.TextInput, {
500
+ ref: inputRef,
501
+ autoFocus: true,
502
+ placeholder: t("function request placeholder"),
503
+ value: input,
504
+ onChange: (ev) => setInput(ev.target.value),
505
+ onKeyDown: (ev) => ev.key === "Enter" && handleRequest(input)
506
+ })), /* @__PURE__ */ React3.createElement(Toolbar.IconButton, {
507
+ icon: "ph--play--regular",
508
+ size: 4,
509
+ label: "Execute",
510
+ iconOnly: true,
511
+ onClick: () => handleRequest(input)
512
+ }), /* @__PURE__ */ React3.createElement(Toolbar.IconButton, {
513
+ icon: state ? "ph--stop--regular" : "ph--trash--regular",
514
+ size: 4,
515
+ label: state ? "Stop" : "Clear",
516
+ iconOnly: true,
517
+ onClick: () => state ? handleStop() : handleClear()
518
+ })));
519
+ };
520
+ var MessageThread = /* @__PURE__ */ forwardRef(({ state, history, result }, forwardedRef) => {
521
+ return /* @__PURE__ */ React3.createElement("div", {
522
+ ref: forwardedRef,
523
+ className: "flex flex-col gap-6 bs-full p-2 overflow-x-hidden overflow-y-auto"
524
+ }, history.map((message, i) => /* @__PURE__ */ React3.createElement("div", {
525
+ key: i,
526
+ className: "grid grid-cols-[2rem_1fr_2rem]"
527
+ }, /* @__PURE__ */ React3.createElement("div", {
528
+ className: "p-1"
529
+ }, message.type === "response" && /* @__PURE__ */ React3.createElement(RobotAvatar, null)), /* @__PURE__ */ React3.createElement("div", {
530
+ className: "overflow-auto"
531
+ }, /* @__PURE__ */ React3.createElement(MessageItem, {
532
+ message
533
+ })))), result?.length > 0 && /* @__PURE__ */ React3.createElement("div", {
534
+ className: "grid grid-cols-[2rem_1fr_2rem]"
535
+ }, /* @__PURE__ */ React3.createElement("div", {
536
+ className: "p-1"
537
+ }, state === "pending" && /* @__PURE__ */ React3.createElement(Icon, {
538
+ icon: "ph--spinner--regular",
539
+ size: 6,
540
+ classNames: "animate-spin"
541
+ }) || /* @__PURE__ */ React3.createElement(Icon, {
542
+ icon: "ph--robot--regular",
543
+ size: 6,
544
+ classNames: "animate-[pulse_1s_ease-in-out_infinite]"
545
+ })), /* @__PURE__ */ React3.createElement("div", {
546
+ className: "overflow-auto"
547
+ }, /* @__PURE__ */ React3.createElement(MessageItem, {
548
+ message: {
549
+ type: "response",
550
+ text: result
551
+ }
552
+ }))));
553
+ });
554
+ var MessageItem = ({ classNames, message }) => {
555
+ const { type, text, data, error } = message;
556
+ const wrapper = "p-1 pli-2 rounded-md bg-hoverSurface overflow-auto";
557
+ return /* @__PURE__ */ React3.createElement("div", {
558
+ className: mx("flex", type === "request" ? "ml-[1rem] justify-end" : "mr-[1rem]", classNames)
559
+ }, error && /* @__PURE__ */ React3.createElement("div", {
560
+ className: mx(wrapper, "whitespace-pre", errorText)
561
+ }, String(error)), text !== void 0 && /* @__PURE__ */ React3.createElement("div", {
562
+ className: mx(wrapper, type === "request" && "bg-primary-400 dark:bg-primary-600")
563
+ }, text || "\xD8"), data && /* @__PURE__ */ React3.createElement(SyntaxHighlighter, {
564
+ language: "json",
565
+ className: mx(wrapper, "text-xs")
566
+ }, JSON.stringify(data, null, 2)));
567
+ };
568
+ var RobotAvatar = () => /* @__PURE__ */ React3.createElement(Avatar.Root, null, /* @__PURE__ */ React3.createElement(Avatar.Content, {
569
+ size: 6,
570
+ variant: "circle",
571
+ icon: "ph--robot--regular"
572
+ }));
573
+
574
+ // src/components/TestPanel/TestContainer.tsx
575
+ import React4 from "react";
576
+ import { Layout } from "@dxos/react-ui-mosaic";
577
+ var TestContainer = ({ role, script }) => {
578
+ const state = useToolbarState();
579
+ useDeployState({
580
+ state,
581
+ script
582
+ });
583
+ return /* @__PURE__ */ React4.createElement(Layout.Main, {
584
+ role
585
+ }, /* @__PURE__ */ React4.createElement(TestPanel, {
586
+ functionUrl: state.value.functionUrl
587
+ }));
588
+ };
589
+
590
+ // src/components/index.ts
591
+ import { lazy } from "react";
592
+ var ScriptContainer = lazy(() => import("./ScriptContainer-X6GCYZZW.mjs"));
593
+ var DeploymentDialog = lazy(() => import("./DeploymentDialog-GXNRUXF6.mjs"));
594
+ var NotebookContainer = lazy(() => import("./NotebookContainer-4MM2VAQF.mjs"));
595
+
596
+ export {
597
+ ScriptObjectSettings,
598
+ ScriptProperties,
599
+ ScriptPluginSettings,
600
+ TestPanel,
601
+ TestContainer,
602
+ ScriptContainer,
603
+ DeploymentDialog,
604
+ NotebookContainer
605
+ };
606
+ //# sourceMappingURL=chunk-NWSK27QB.mjs.map