@dxos/plugin-script 0.8.4-main.67995b8 → 0.8.4-main.69d29f4

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 (426) hide show
  1. package/dist/lib/browser/DeploymentDialog-OSL6RMPA.mjs +14 -0
  2. package/dist/lib/browser/NotebookContainer-NBAXYESH.mjs +845 -0
  3. package/dist/lib/browser/NotebookContainer-NBAXYESH.mjs.map +7 -0
  4. package/dist/lib/browser/ScriptContainer-WD33CJMI.mjs +149 -0
  5. package/dist/lib/browser/ScriptContainer-WD33CJMI.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-BTWHM6FH.mjs +270 -0
  12. package/dist/lib/browser/chunk-BTWHM6FH.mjs.map +7 -0
  13. package/dist/lib/browser/chunk-C53UJGSU.mjs +557 -0
  14. package/dist/lib/browser/chunk-C53UJGSU.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-J5LGTIGS.mjs +10 -0
  20. package/dist/lib/browser/chunk-J5LGTIGS.mjs.map +7 -0
  21. package/dist/lib/browser/chunk-TWX2NMZN.mjs +137 -0
  22. package/dist/lib/browser/chunk-TWX2NMZN.mjs.map +7 -0
  23. package/dist/lib/browser/chunk-UUR4JNNB.mjs +113 -0
  24. package/dist/lib/browser/chunk-UUR4JNNB.mjs.map +7 -0
  25. package/dist/lib/browser/chunk-UX4GHJ5E.mjs +105 -0
  26. package/dist/lib/browser/chunk-UX4GHJ5E.mjs.map +7 -0
  27. package/dist/lib/browser/{chunk-QYAREHGH.mjs → chunk-WYR4QHPE.mjs} +8 -5
  28. package/dist/lib/browser/chunk-WYR4QHPE.mjs.map +7 -0
  29. package/dist/lib/browser/chunk-XCN4D3Z5.mjs +606 -0
  30. package/dist/lib/browser/chunk-XCN4D3Z5.mjs.map +7 -0
  31. package/dist/lib/browser/compiler-76F3QAXC.mjs +161 -0
  32. package/dist/lib/browser/compiler-76F3QAXC.mjs.map +7 -0
  33. package/dist/lib/browser/index.mjs +138 -103
  34. package/dist/lib/browser/index.mjs.map +4 -4
  35. package/dist/lib/browser/meta.json +1 -1
  36. package/dist/lib/browser/operation-resolver-HUILPPKT.mjs +82 -0
  37. package/dist/lib/browser/operation-resolver-HUILPPKT.mjs.map +7 -0
  38. package/dist/lib/browser/react-surface-O6GKHB2J.mjs +139 -0
  39. package/dist/lib/browser/react-surface-O6GKHB2J.mjs.map +7 -0
  40. package/dist/lib/browser/settings-3ENI25PI.mjs +35 -0
  41. package/dist/lib/browser/settings-3ENI25PI.mjs.map +7 -0
  42. package/dist/lib/browser/templates/index.mjs +2 -1
  43. package/dist/lib/browser/types/index.mjs +14 -6
  44. package/dist/lib/node-esm/DeploymentDialog-OGBJPVIX.mjs +15 -0
  45. package/dist/lib/node-esm/DeploymentDialog-OGBJPVIX.mjs.map +7 -0
  46. package/dist/lib/node-esm/NotebookContainer-IUAYVJSD.mjs +846 -0
  47. package/dist/lib/node-esm/NotebookContainer-IUAYVJSD.mjs.map +7 -0
  48. package/dist/lib/node-esm/ScriptContainer-K7JCEU5Z.mjs +150 -0
  49. package/dist/lib/node-esm/ScriptContainer-K7JCEU5Z.mjs.map +7 -0
  50. package/dist/lib/node-esm/app-graph-builder-NVE3EVBG.mjs +69 -0
  51. package/dist/lib/node-esm/app-graph-builder-NVE3EVBG.mjs.map +7 -0
  52. package/dist/lib/node-esm/blueprint-definition-NC7NNJGI.mjs +18 -0
  53. package/dist/lib/node-esm/blueprint-definition-NC7NNJGI.mjs.map +7 -0
  54. package/dist/lib/node-esm/blueprints/index.mjs +9 -0
  55. package/dist/lib/node-esm/blueprints/index.mjs.map +7 -0
  56. package/dist/lib/node-esm/chunk-4F5FJZ36.mjs +107 -0
  57. package/dist/lib/node-esm/chunk-4F5FJZ36.mjs.map +7 -0
  58. package/dist/lib/node-esm/chunk-4QNZMXW6.mjs +607 -0
  59. package/dist/lib/node-esm/chunk-4QNZMXW6.mjs.map +7 -0
  60. package/dist/lib/node-esm/{chunk-AHXJ6NQU.mjs → chunk-5HSJPAK7.mjs} +8 -5
  61. package/dist/lib/node-esm/chunk-5HSJPAK7.mjs.map +7 -0
  62. package/dist/lib/node-esm/chunk-BX5PP6AW.mjs +558 -0
  63. package/dist/lib/node-esm/chunk-BX5PP6AW.mjs.map +7 -0
  64. package/dist/lib/node-esm/chunk-G3J76DWP.mjs +114 -0
  65. package/dist/lib/node-esm/chunk-G3J76DWP.mjs.map +7 -0
  66. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  67. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  68. package/dist/lib/node-esm/chunk-SLU3KRV3.mjs +112 -0
  69. package/dist/lib/node-esm/chunk-SLU3KRV3.mjs.map +7 -0
  70. package/dist/lib/node-esm/chunk-VQPIA4VF.mjs +138 -0
  71. package/dist/lib/node-esm/chunk-VQPIA4VF.mjs.map +7 -0
  72. package/dist/lib/node-esm/chunk-VWOLKNMO.mjs +271 -0
  73. package/dist/lib/node-esm/chunk-VWOLKNMO.mjs.map +7 -0
  74. package/dist/lib/node-esm/chunk-Y3G5NCTP.mjs +36 -0
  75. package/dist/lib/node-esm/chunk-Y3G5NCTP.mjs.map +7 -0
  76. package/dist/lib/node-esm/compiler-FNZH6TFN.mjs +162 -0
  77. package/dist/lib/node-esm/compiler-FNZH6TFN.mjs.map +7 -0
  78. package/dist/lib/node-esm/index.mjs +138 -103
  79. package/dist/lib/node-esm/index.mjs.map +4 -4
  80. package/dist/lib/node-esm/meta.json +1 -1
  81. package/dist/lib/node-esm/operation-resolver-JTCIY6HU.mjs +83 -0
  82. package/dist/lib/node-esm/operation-resolver-JTCIY6HU.mjs.map +7 -0
  83. package/dist/lib/node-esm/react-surface-RLANMVMB.mjs +140 -0
  84. package/dist/lib/node-esm/react-surface-RLANMVMB.mjs.map +7 -0
  85. package/dist/lib/node-esm/settings-7AYC5VXN.mjs +36 -0
  86. package/dist/lib/node-esm/settings-7AYC5VXN.mjs.map +7 -0
  87. package/dist/lib/node-esm/templates/index.mjs +2 -1
  88. package/dist/lib/node-esm/types/index.mjs +14 -6
  89. package/dist/types/src/ScriptPlugin.d.ts +2 -1
  90. package/dist/types/src/ScriptPlugin.d.ts.map +1 -1
  91. package/dist/types/src/blueprints/index.d.ts +2 -0
  92. package/dist/types/src/blueprints/index.d.ts.map +1 -0
  93. package/dist/types/src/blueprints/script-blueprint.d.ts +22 -0
  94. package/dist/types/src/blueprints/script-blueprint.d.ts.map +1 -0
  95. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +6 -0
  96. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -0
  97. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +3 -0
  98. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +1 -0
  99. package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts +12 -0
  100. package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts.map +1 -0
  101. package/dist/types/src/capabilities/artifact-definition/index.d.ts +3 -0
  102. package/dist/types/src/capabilities/artifact-definition/index.d.ts.map +1 -0
  103. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +9 -0
  104. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +1 -0
  105. package/dist/types/src/capabilities/blueprint-definition/index.d.ts +3 -0
  106. package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +1 -0
  107. package/dist/types/src/capabilities/compiler/compiler.d.ts +6 -0
  108. package/dist/types/src/capabilities/compiler/compiler.d.ts.map +1 -0
  109. package/dist/types/src/capabilities/compiler/index.d.ts +3 -0
  110. package/dist/types/src/capabilities/compiler/index.d.ts.map +1 -0
  111. package/dist/types/src/capabilities/index.d.ts +6 -7
  112. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  113. package/dist/types/src/capabilities/operation-resolver/index.d.ts +3 -0
  114. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -0
  115. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +5 -0
  116. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -0
  117. package/dist/types/src/capabilities/react-surface/index.d.ts +3 -0
  118. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
  119. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +5 -0
  120. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
  121. package/dist/types/src/capabilities/settings/index.d.ts +7 -0
  122. package/dist/types/src/capabilities/settings/index.d.ts.map +1 -0
  123. package/dist/types/src/capabilities/settings/settings.d.ts +9 -0
  124. package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -0
  125. package/dist/types/src/compiler/compiler.d.ts +1 -1
  126. package/dist/types/src/compiler/compiler.d.ts.map +1 -1
  127. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.d.ts +4 -4
  128. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.d.ts.map +1 -1
  129. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts +244 -13
  130. package/dist/types/src/components/DeploymentDialog/DeploymentDialog.stories.d.ts.map +1 -1
  131. package/dist/types/src/components/DeploymentDialog/index.d.ts +1 -1
  132. package/dist/types/src/components/DeploymentDialog/index.d.ts.map +1 -1
  133. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts +1 -1
  134. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts.map +1 -1
  135. package/dist/types/src/components/NotebookContainer.d.ts +8 -0
  136. package/dist/types/src/components/NotebookContainer.d.ts.map +1 -0
  137. package/dist/types/src/components/NotebookContainer.stories.d.ts +7 -0
  138. package/dist/types/src/components/NotebookContainer.stories.d.ts.map +1 -0
  139. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts +15 -0
  140. package/dist/types/src/components/NotebookStack/NotebookCell.d.ts.map +1 -0
  141. package/dist/types/src/components/NotebookStack/NotebookMenu.d.ts +9 -0
  142. package/dist/types/src/components/NotebookStack/NotebookMenu.d.ts.map +1 -0
  143. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts +14 -0
  144. package/dist/types/src/components/NotebookStack/NotebookStack.d.ts.map +1 -0
  145. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts +249 -0
  146. package/dist/types/src/components/NotebookStack/NotebookStack.stories.d.ts.map +1 -0
  147. package/dist/types/src/components/NotebookStack/index.d.ts +3 -0
  148. package/dist/types/src/components/NotebookStack/index.d.ts.map +1 -0
  149. package/dist/types/src/components/QueryEditor/QueryEditor.d.ts +5 -0
  150. package/dist/types/src/components/QueryEditor/QueryEditor.d.ts.map +1 -0
  151. package/dist/types/src/components/QueryEditor/QueryEditor.stories.d.ts +13 -0
  152. package/dist/types/src/components/QueryEditor/QueryEditor.stories.d.ts.map +1 -0
  153. package/dist/types/src/components/QueryEditor/index.d.ts +2 -0
  154. package/dist/types/src/components/QueryEditor/index.d.ts.map +1 -0
  155. package/dist/types/src/components/ScriptContainer.d.ts +7 -8
  156. package/dist/types/src/components/ScriptContainer.d.ts.map +1 -1
  157. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts +7 -8
  158. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts.map +1 -1
  159. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts +246 -10
  160. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.stories.d.ts.map +1 -1
  161. package/dist/types/src/components/Settings/ScriptObjectSettings.d.ts +2 -2
  162. package/dist/types/src/components/Settings/ScriptObjectSettings.d.ts.map +1 -1
  163. package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts +6 -4
  164. package/dist/types/src/components/Settings/ScriptPluginSettings.d.ts.map +1 -1
  165. package/dist/types/src/components/TestPanel/TestContainer.d.ts +3 -3
  166. package/dist/types/src/components/TestPanel/TestContainer.d.ts.map +1 -1
  167. package/dist/types/src/components/TestPanel/TestPanel.d.ts.map +1 -1
  168. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts +5 -2
  169. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts.map +1 -1
  170. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts +11 -4
  171. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.stories.d.ts.map +1 -1
  172. package/dist/types/src/components/index.d.ts +4 -5
  173. package/dist/types/src/components/index.d.ts.map +1 -1
  174. package/dist/types/src/e2e/ai.test.d.ts +2 -0
  175. package/dist/types/src/e2e/ai.test.d.ts.map +1 -0
  176. package/dist/types/src/e2e/deploy.test.d.ts +2 -0
  177. package/dist/types/src/e2e/deploy.test.d.ts.map +1 -0
  178. package/dist/types/src/hooks/deploy.d.ts +18 -32
  179. package/dist/types/src/hooks/deploy.d.ts.map +1 -1
  180. package/dist/types/src/hooks/format.d.ts +4 -4
  181. package/dist/types/src/hooks/format.d.ts.map +1 -1
  182. package/dist/types/src/hooks/index.d.ts +1 -0
  183. package/dist/types/src/hooks/index.d.ts.map +1 -1
  184. package/dist/types/src/hooks/template.d.ts +6 -16
  185. package/dist/types/src/hooks/template.d.ts.map +1 -1
  186. package/dist/types/src/hooks/useCompiler.d.ts +7 -0
  187. package/dist/types/src/hooks/useCompiler.d.ts.map +1 -0
  188. package/dist/types/src/hooks/useCreateAndDeployScriptTemplates.d.ts.map +1 -1
  189. package/dist/types/src/hooks/useToolbarState.d.ts +8 -1
  190. package/dist/types/src/hooks/useToolbarState.d.ts.map +1 -1
  191. package/dist/types/src/index.d.ts +2 -1
  192. package/dist/types/src/index.d.ts.map +1 -1
  193. package/dist/types/src/meta.d.ts +2 -3
  194. package/dist/types/src/meta.d.ts.map +1 -1
  195. package/dist/types/src/notebook/compute-graph.d.ts +58 -0
  196. package/dist/types/src/notebook/compute-graph.d.ts.map +1 -0
  197. package/dist/types/src/notebook/compute-graph.test.d.ts +2 -0
  198. package/dist/types/src/notebook/compute-graph.test.d.ts.map +1 -0
  199. package/dist/types/src/notebook/eval.d.ts +13 -0
  200. package/dist/types/src/notebook/eval.d.ts.map +1 -0
  201. package/dist/types/src/notebook/index.d.ts +2 -0
  202. package/dist/types/src/notebook/index.d.ts.map +1 -0
  203. package/dist/types/src/notebook/vfs-parser.d.ts +74 -0
  204. package/dist/types/src/notebook/vfs-parser.d.ts.map +1 -0
  205. package/dist/types/src/notebook/vfs-parser.test.d.ts +2 -0
  206. package/dist/types/src/notebook/vfs-parser.test.d.ts.map +1 -0
  207. package/dist/types/src/templates/anthropic.d.ts +8 -0
  208. package/dist/types/src/templates/anthropic.d.ts.map +1 -0
  209. package/dist/types/src/templates/chess-bot.d.ts +16 -0
  210. package/dist/types/src/templates/chess-bot.d.ts.map +1 -0
  211. package/dist/types/src/templates/commentary.d.ts +16 -0
  212. package/dist/types/src/templates/commentary.d.ts.map +1 -0
  213. package/dist/types/src/templates/data-generator.d.ts.map +1 -1
  214. package/dist/types/src/templates/discord.d.ts.map +1 -1
  215. package/dist/types/src/templates/forex-effect.d.ts +4 -1
  216. package/dist/types/src/templates/forex-effect.d.ts.map +1 -1
  217. package/dist/types/src/templates/forex.d.ts +4 -1
  218. package/dist/types/src/templates/forex.d.ts.map +1 -1
  219. package/dist/types/src/templates/gmail.d.ts.map +1 -1
  220. package/dist/types/src/templates/index.d.ts +52 -1
  221. package/dist/types/src/templates/index.d.ts.map +1 -1
  222. package/dist/types/src/templates/ping.d.ts +3 -0
  223. package/dist/types/src/templates/ping.d.ts.map +1 -0
  224. package/dist/types/src/testing/data.d.ts +3 -0
  225. package/dist/types/src/testing/data.d.ts.map +1 -0
  226. package/dist/types/src/testing/index.d.ts +2 -0
  227. package/dist/types/src/testing/index.d.ts.map +1 -0
  228. package/dist/types/src/testing/simulator.test.d.ts +2 -0
  229. package/dist/types/src/testing/simulator.test.d.ts.map +1 -0
  230. package/dist/types/src/translations.d.ts +32 -5
  231. package/dist/types/src/translations.d.ts.map +1 -1
  232. package/dist/types/src/types/Notebook.d.ts +100 -0
  233. package/dist/types/src/types/Notebook.d.ts.map +1 -0
  234. package/dist/types/src/types/actions.d.ts +40 -0
  235. package/dist/types/src/types/actions.d.ts.map +1 -0
  236. package/dist/types/src/types/capabilities.d.ts +12 -0
  237. package/dist/types/src/types/capabilities.d.ts.map +1 -0
  238. package/dist/types/src/types/events.d.ts +5 -0
  239. package/dist/types/src/types/events.d.ts.map +1 -0
  240. package/dist/types/src/types/index.d.ts +5 -1
  241. package/dist/types/src/types/index.d.ts.map +1 -1
  242. package/dist/types/src/types/types.d.ts +6 -0
  243. package/dist/types/src/types/types.d.ts.map +1 -0
  244. package/dist/types/src/util/deploy.d.ts +7 -7
  245. package/dist/types/src/util/deploy.d.ts.map +1 -1
  246. package/dist/types/src/util/functions.d.ts +6 -3
  247. package/dist/types/src/util/functions.d.ts.map +1 -1
  248. package/dist/types/tsconfig.tsbuildinfo +1 -1
  249. package/package.json +120 -85
  250. package/src/ScriptPlugin.tsx +56 -76
  251. package/src/blueprints/index.ts +5 -0
  252. package/src/blueprints/script-blueprint.ts +24 -0
  253. package/src/capabilities/app-graph-builder/app-graph-builder.ts +55 -0
  254. package/src/capabilities/app-graph-builder/index.ts +7 -0
  255. package/src/capabilities/{artifact-definition.ts → artifact-definition/artifact-definition.ts} +103 -98
  256. package/src/capabilities/artifact-definition/index.ts +7 -0
  257. package/src/capabilities/blueprint-definition/blueprint-definition.ts +23 -0
  258. package/src/capabilities/blueprint-definition/index.ts +7 -0
  259. package/src/capabilities/compiler/compiler.ts +103 -0
  260. package/src/capabilities/compiler/index.ts +7 -0
  261. package/src/capabilities/index.ts +6 -10
  262. package/src/capabilities/operation-resolver/index.ts +7 -0
  263. package/src/capabilities/operation-resolver/operation-resolver.ts +74 -0
  264. package/src/capabilities/react-surface/index.ts +7 -0
  265. package/src/capabilities/react-surface/react-surface.tsx +118 -0
  266. package/src/capabilities/settings/index.ts +7 -0
  267. package/src/capabilities/settings/settings.ts +32 -0
  268. package/src/compiler/compiler.ts +11 -4
  269. package/src/components/DeploymentDialog/DeploymentDialog.stories.tsx +45 -22
  270. package/src/components/DeploymentDialog/DeploymentDialog.tsx +45 -54
  271. package/src/components/DeploymentDialog/index.ts +1 -1
  272. package/src/components/FrameContainer/FrameContainer.tsx +8 -5
  273. package/src/components/NotebookContainer.stories.tsx +87 -0
  274. package/src/components/NotebookContainer.tsx +271 -0
  275. package/src/components/NotebookStack/NotebookCell.tsx +217 -0
  276. package/src/components/NotebookStack/NotebookMenu.tsx +47 -0
  277. package/src/components/NotebookStack/NotebookStack.stories.tsx +55 -0
  278. package/src/components/NotebookStack/NotebookStack.tsx +86 -0
  279. package/src/components/NotebookStack/index.ts +6 -0
  280. package/src/components/QueryEditor/QueryEditor.stories.tsx +100 -0
  281. package/src/components/QueryEditor/QueryEditor.tsx +47 -0
  282. package/src/components/QueryEditor/index.ts +5 -0
  283. package/src/components/ScriptContainer.tsx +52 -36
  284. package/src/components/ScriptToolbar/ScriptToolbar.stories.tsx +57 -17
  285. package/src/components/ScriptToolbar/ScriptToolbar.tsx +37 -33
  286. package/src/components/Settings/ScriptObjectSettings.tsx +151 -48
  287. package/src/components/Settings/ScriptPluginSettings.tsx +43 -48
  288. package/src/components/TestPanel/TestContainer.tsx +9 -8
  289. package/src/components/TestPanel/TestPanel.tsx +43 -20
  290. package/src/components/TypescriptEditor/TypescriptEditor.stories.tsx +86 -33
  291. package/src/components/TypescriptEditor/TypescriptEditor.tsx +84 -81
  292. package/src/components/index.ts +3 -0
  293. package/src/e2e/ai.test.ts +92 -0
  294. package/src/e2e/deploy.test.ts +64 -0
  295. package/src/hooks/deploy.ts +49 -42
  296. package/src/hooks/format.ts +9 -5
  297. package/src/hooks/index.ts +1 -0
  298. package/src/hooks/template.ts +20 -23
  299. package/src/hooks/useCompiler.ts +24 -0
  300. package/src/hooks/useCreateAndDeployScriptTemplates.ts +15 -16
  301. package/src/hooks/useToolbarState.ts +29 -5
  302. package/src/index.ts +2 -1
  303. package/src/meta.ts +9 -7
  304. package/src/notebook/compute-graph.test.ts +82 -0
  305. package/src/notebook/compute-graph.ts +230 -0
  306. package/src/notebook/eval.ts +105 -0
  307. package/src/notebook/index.ts +5 -0
  308. package/src/notebook/vfs-parser.test.ts +149 -0
  309. package/src/notebook/vfs-parser.ts +451 -0
  310. package/src/templates/anthropic.ts +42 -0
  311. package/src/templates/chess-bot.ts +58 -0
  312. package/src/templates/commentary.ts +232 -0
  313. package/src/templates/data-generator.ts +10 -4
  314. package/src/templates/discord.ts +12 -4
  315. package/src/templates/forex-effect.ts +24 -25
  316. package/src/templates/forex.ts +9 -6
  317. package/src/templates/gmail.ts +34 -64
  318. package/src/templates/index.ts +24 -11
  319. package/src/templates/ping.ts +17 -0
  320. package/src/testing/data.ts +72 -0
  321. package/src/testing/index.ts +5 -0
  322. package/src/testing/simulator.test.ts +40 -0
  323. package/src/translations.ts +35 -7
  324. package/src/types/Notebook.ts +41 -0
  325. package/src/types/actions.ts +45 -0
  326. package/src/types/capabilities.ts +17 -0
  327. package/src/types/events.ts +11 -0
  328. package/src/types/index.ts +5 -1
  329. package/src/types/types.ts +15 -0
  330. package/src/util/deploy.ts +38 -61
  331. package/src/util/functions.ts +58 -25
  332. package/src/vite-env.d.ts +2 -0
  333. package/dist/lib/browser/DeploymentDialog-M4QIHTDR.mjs +0 -12
  334. package/dist/lib/browser/ScriptContainer-Z6SIGRRC.mjs +0 -262
  335. package/dist/lib/browser/ScriptContainer-Z6SIGRRC.mjs.map +0 -7
  336. package/dist/lib/browser/app-graph-builder-HLQ7K3BT.mjs +0 -64
  337. package/dist/lib/browser/app-graph-builder-HLQ7K3BT.mjs.map +0 -7
  338. package/dist/lib/browser/artifact-definition-CK3BIBSI.mjs +0 -247
  339. package/dist/lib/browser/artifact-definition-CK3BIBSI.mjs.map +0 -7
  340. package/dist/lib/browser/chunk-3U6DTUH3.mjs +0 -283
  341. package/dist/lib/browser/chunk-3U6DTUH3.mjs.map +0 -7
  342. package/dist/lib/browser/chunk-5TVBECWH.mjs +0 -15
  343. package/dist/lib/browser/chunk-5TVBECWH.mjs.map +0 -7
  344. package/dist/lib/browser/chunk-FIM2MVNJ.mjs +0 -555
  345. package/dist/lib/browser/chunk-FIM2MVNJ.mjs.map +0 -7
  346. package/dist/lib/browser/chunk-FMDXKOP7.mjs +0 -233
  347. package/dist/lib/browser/chunk-FMDXKOP7.mjs.map +0 -7
  348. package/dist/lib/browser/chunk-IS4OG2UW.mjs +0 -39
  349. package/dist/lib/browser/chunk-IS4OG2UW.mjs.map +0 -7
  350. package/dist/lib/browser/chunk-P4HQKUCP.mjs +0 -153
  351. package/dist/lib/browser/chunk-P4HQKUCP.mjs.map +0 -7
  352. package/dist/lib/browser/chunk-QYAREHGH.mjs.map +0 -7
  353. package/dist/lib/browser/chunk-R4R7VOFY.mjs +0 -88
  354. package/dist/lib/browser/chunk-R4R7VOFY.mjs.map +0 -7
  355. package/dist/lib/browser/compiler-CXCUA4UQ.mjs +0 -82
  356. package/dist/lib/browser/compiler-CXCUA4UQ.mjs.map +0 -7
  357. package/dist/lib/browser/intent-resolver-S3H2SMUY.mjs +0 -89
  358. package/dist/lib/browser/intent-resolver-S3H2SMUY.mjs.map +0 -7
  359. package/dist/lib/browser/react-surface-FYYXZA7C.mjs +0 -104
  360. package/dist/lib/browser/react-surface-FYYXZA7C.mjs.map +0 -7
  361. package/dist/lib/browser/settings-KCTBK5TY.mjs +0 -24
  362. package/dist/lib/browser/settings-KCTBK5TY.mjs.map +0 -7
  363. package/dist/lib/node-esm/DeploymentDialog-3KPRWFE7.mjs +0 -13
  364. package/dist/lib/node-esm/ScriptContainer-KPU75HHI.mjs +0 -263
  365. package/dist/lib/node-esm/ScriptContainer-KPU75HHI.mjs.map +0 -7
  366. package/dist/lib/node-esm/app-graph-builder-7EYIHWH4.mjs +0 -65
  367. package/dist/lib/node-esm/app-graph-builder-7EYIHWH4.mjs.map +0 -7
  368. package/dist/lib/node-esm/artifact-definition-YCBV4YX2.mjs +0 -248
  369. package/dist/lib/node-esm/artifact-definition-YCBV4YX2.mjs.map +0 -7
  370. package/dist/lib/node-esm/chunk-35M3CHYE.mjs +0 -16
  371. package/dist/lib/node-esm/chunk-35M3CHYE.mjs.map +0 -7
  372. package/dist/lib/node-esm/chunk-7NMI4CEU.mjs +0 -556
  373. package/dist/lib/node-esm/chunk-7NMI4CEU.mjs.map +0 -7
  374. package/dist/lib/node-esm/chunk-AHXJ6NQU.mjs.map +0 -7
  375. package/dist/lib/node-esm/chunk-F5GFJ3PY.mjs +0 -90
  376. package/dist/lib/node-esm/chunk-F5GFJ3PY.mjs.map +0 -7
  377. package/dist/lib/node-esm/chunk-JIPFLBYA.mjs +0 -40
  378. package/dist/lib/node-esm/chunk-JIPFLBYA.mjs.map +0 -7
  379. package/dist/lib/node-esm/chunk-QKK3NDHW.mjs +0 -154
  380. package/dist/lib/node-esm/chunk-QKK3NDHW.mjs.map +0 -7
  381. package/dist/lib/node-esm/chunk-RT43MACC.mjs +0 -284
  382. package/dist/lib/node-esm/chunk-RT43MACC.mjs.map +0 -7
  383. package/dist/lib/node-esm/chunk-XJPK3IYI.mjs +0 -234
  384. package/dist/lib/node-esm/chunk-XJPK3IYI.mjs.map +0 -7
  385. package/dist/lib/node-esm/compiler-EPFKQXPE.mjs +0 -83
  386. package/dist/lib/node-esm/compiler-EPFKQXPE.mjs.map +0 -7
  387. package/dist/lib/node-esm/intent-resolver-OHKNJFCC.mjs +0 -90
  388. package/dist/lib/node-esm/intent-resolver-OHKNJFCC.mjs.map +0 -7
  389. package/dist/lib/node-esm/react-surface-V32NWHKN.mjs +0 -105
  390. package/dist/lib/node-esm/react-surface-V32NWHKN.mjs.map +0 -7
  391. package/dist/lib/node-esm/settings-DXZ334A3.mjs +0 -25
  392. package/dist/lib/node-esm/settings-DXZ334A3.mjs.map +0 -7
  393. package/dist/types/src/capabilities/app-graph-builder.d.ts +0 -4
  394. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +0 -1
  395. package/dist/types/src/capabilities/artifact-definition.d.ts +0 -11
  396. package/dist/types/src/capabilities/artifact-definition.d.ts.map +0 -1
  397. package/dist/types/src/capabilities/capabilities.d.ts +0 -5
  398. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  399. package/dist/types/src/capabilities/compiler.d.ts +0 -4
  400. package/dist/types/src/capabilities/compiler.d.ts.map +0 -1
  401. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  402. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  403. package/dist/types/src/capabilities/react-surface.d.ts +0 -4
  404. package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
  405. package/dist/types/src/capabilities/settings.d.ts +0 -4
  406. package/dist/types/src/capabilities/settings.d.ts.map +0 -1
  407. package/dist/types/src/events.d.ts +0 -4
  408. package/dist/types/src/events.d.ts.map +0 -1
  409. package/dist/types/src/templates/chess.d.ts +0 -3
  410. package/dist/types/src/templates/chess.d.ts.map +0 -1
  411. package/dist/types/src/templates/echo.d.ts +0 -6
  412. package/dist/types/src/templates/echo.d.ts.map +0 -1
  413. package/dist/types/src/types/schema.d.ts +0 -38
  414. package/dist/types/src/types/schema.d.ts.map +0 -1
  415. package/src/capabilities/app-graph-builder.ts +0 -64
  416. package/src/capabilities/capabilities.ts +0 -12
  417. package/src/capabilities/compiler.ts +0 -33
  418. package/src/capabilities/intent-resolver.ts +0 -77
  419. package/src/capabilities/react-surface.tsx +0 -89
  420. package/src/capabilities/settings.ts +0 -21
  421. package/src/events.ts +0 -11
  422. package/src/templates/chess.ts +0 -47
  423. package/src/templates/echo.ts +0 -8
  424. package/src/types/schema.ts +0 -37
  425. /package/dist/lib/browser/{DeploymentDialog-M4QIHTDR.mjs.map → DeploymentDialog-OSL6RMPA.mjs.map} +0 -0
  426. /package/dist/lib/{node-esm/DeploymentDialog-3KPRWFE7.mjs.map → browser/blueprints/index.mjs.map} +0 -0
@@ -0,0 +1,607 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ getAccessCredential,
4
+ useDeployState,
5
+ useToolbarState
6
+ } from "./chunk-BX5PP6AW.mjs";
7
+ import {
8
+ meta
9
+ } from "./chunk-5HSJPAK7.mjs";
10
+
11
+ // src/components/Settings/ScriptObjectSettings.tsx
12
+ import { Octokit } from "@octokit/core";
13
+ import React, { useCallback, useState } from "react";
14
+ import { ToolId } from "@dxos/ai";
15
+ import { SettingsOperation } from "@dxos/app-framework";
16
+ import { useOperationInvoker } from "@dxos/app-framework/react";
17
+ import { Blueprint, Template } from "@dxos/blueprints";
18
+ import { Filter, Obj, Ref } from "@dxos/echo";
19
+ import { Function, getUserFunctionIdInMetadata } from "@dxos/functions";
20
+ import { getInvocationUrl } from "@dxos/functions-runtime";
21
+ import { log } from "@dxos/log";
22
+ import { useClient } from "@dxos/react-client";
23
+ import { useQuery } from "@dxos/react-client/echo";
24
+ import { Button, Clipboard, Input, useAsyncEffect, useControlledState, useTranslation } from "@dxos/react-ui";
25
+ import { AccessToken } from "@dxos/types";
26
+ import { kebabize } from "@dxos/util";
27
+ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-script/src/components/Settings/ScriptObjectSettings.tsx";
28
+ var ScriptObjectSettings = ({ object }) => {
29
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Binding, {
30
+ object
31
+ }), /* @__PURE__ */ React.createElement(BlueprintEditor, {
32
+ object
33
+ }), /* @__PURE__ */ React.createElement(Publishing, {
34
+ object
35
+ }));
36
+ };
37
+ var ScriptProperties = ({ object }) => {
38
+ const { t } = useTranslation(meta.id);
39
+ return /* @__PURE__ */ React.createElement(Input.Root, null, /* @__PURE__ */ React.createElement(Input.Label, null, t("description label")), /* @__PURE__ */ React.createElement(Input.TextInput, {
40
+ placeholder: t("description placeholder"),
41
+ value: object.description ?? "",
42
+ onChange: (event) => {
43
+ Obj.change(object, (o) => {
44
+ o.description = event.target.value;
45
+ });
46
+ }
47
+ }));
48
+ };
49
+ var BlueprintEditor = ({ object }) => {
50
+ const { t } = useTranslation(meta.id);
51
+ const db = Obj.getDatabase(object);
52
+ const [fn] = useQuery(db, Filter.type(Function.Function, {
53
+ source: Ref.make(object)
54
+ }));
55
+ const blueprints = useQuery(db, Filter.type(Blueprint.Blueprint));
56
+ const [creating, setCreating] = useState(false);
57
+ const [instructions, setInstructions] = useState(`You can run the script "${object.name ?? "script"}".`);
58
+ const blueprintKey = `dxos.org/blueprint/${kebabize(object.name ?? "script")}`;
59
+ const existingBlueprint = blueprints.find((bp) => bp.key === blueprintKey);
60
+ useAsyncEffect(async () => {
61
+ if (!existingBlueprint) {
62
+ return;
63
+ }
64
+ const source = await existingBlueprint.instructions.source.load();
65
+ setInstructions(source.content ?? "");
66
+ }, [
67
+ existingBlueprint
68
+ ]);
69
+ const handleSave = useCallback(async () => {
70
+ if (!db) {
71
+ return;
72
+ }
73
+ setCreating(true);
74
+ try {
75
+ if (existingBlueprint) {
76
+ const text = await existingBlueprint.instructions.source.load();
77
+ Obj.change(text, (t2) => {
78
+ t2.content = instructions;
79
+ });
80
+ if (fn?.key) {
81
+ const toolId = ToolId.make(fn.key);
82
+ if (!existingBlueprint.tools?.includes(toolId)) {
83
+ Obj.change(existingBlueprint, (b) => {
84
+ b.tools = [
85
+ ...b.tools ?? [],
86
+ toolId
87
+ ];
88
+ });
89
+ }
90
+ }
91
+ } else if (fn?.key) {
92
+ db.add(Blueprint.make({
93
+ key: blueprintKey,
94
+ name: object.name ?? "Script",
95
+ instructions: Template.make({
96
+ source: instructions
97
+ }),
98
+ tools: [
99
+ ToolId.make(fn.key)
100
+ ]
101
+ }));
102
+ }
103
+ await db.flush();
104
+ } finally {
105
+ setCreating(false);
106
+ }
107
+ }, [
108
+ db,
109
+ existingBlueprint,
110
+ fn,
111
+ blueprintKey,
112
+ object.name,
113
+ instructions
114
+ ]);
115
+ return /* @__PURE__ */ React.createElement("div", {
116
+ className: "flex flex-col gap-4 mlb-cardSpacingBlock"
117
+ }, /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("h2", null, t("blueprint editor label", {
118
+ default: "Blueprint"
119
+ })), /* @__PURE__ */ React.createElement("p", {
120
+ className: "text-description text-sm"
121
+ }, t("blueprint editor description", {
122
+ default: "Create a blueprint that exposes this script as a tool."
123
+ }))), /* @__PURE__ */ React.createElement(Input.Root, null, /* @__PURE__ */ React.createElement("div", {
124
+ role: "none",
125
+ className: "flex flex-col gap-1"
126
+ }, /* @__PURE__ */ React.createElement(Input.Label, null, t("blueprint instructions label", {
127
+ default: "Instructions"
128
+ })), /* @__PURE__ */ React.createElement(Input.TextArea, {
129
+ placeholder: t("blueprint instructions placeholder", {
130
+ default: "Describe how this tool should be used."
131
+ }),
132
+ rows: 6,
133
+ value: instructions,
134
+ onChange: (event) => setInstructions(event.target.value),
135
+ classNames: "resize-y"
136
+ }))), /* @__PURE__ */ React.createElement("div", {
137
+ className: "flex justify-end gap-2"
138
+ }, /* @__PURE__ */ React.createElement(Button, {
139
+ disabled: !existingBlueprint && !fn?.key || creating,
140
+ onClick: handleSave
141
+ }, t(creating ? "creating label" : "create blueprint label", {
142
+ default: creating ? "Creating\u2026" : "Create blueprint"
143
+ }))));
144
+ };
145
+ var Binding = ({ object }) => {
146
+ const { t } = useTranslation(meta.id);
147
+ const client = useClient();
148
+ const db = Obj.getDatabase(object);
149
+ const [fn] = useQuery(db, Filter.type(Function.Function, {
150
+ source: Ref.make(object)
151
+ }));
152
+ const functionId = fn && getUserFunctionIdInMetadata(Obj.getMeta(fn));
153
+ const functionUrl = functionId && getInvocationUrl(functionId, client.config.values.runtime?.services?.edge?.url ?? "", {
154
+ spaceId: db?.spaceId
155
+ });
156
+ const [binding, setBinding] = useControlledState(fn?.binding ?? "");
157
+ const handleBindingChange = useCallback((event) => {
158
+ setBinding(event.target.value);
159
+ }, [
160
+ setBinding
161
+ ]);
162
+ const handleBindingBlur = useCallback(() => {
163
+ Obj.change(fn, (f) => {
164
+ f.binding = binding;
165
+ });
166
+ }, [
167
+ fn,
168
+ binding
169
+ ]);
170
+ if (!fn || !functionUrl) {
171
+ return null;
172
+ }
173
+ return /* @__PURE__ */ React.createElement("div", {
174
+ role: "form",
175
+ className: "flex flex-col gap-2 mlb-cardSpacingBlock"
176
+ }, /* @__PURE__ */ React.createElement("h2", null, t("remote function settings heading")), /* @__PURE__ */ React.createElement(Input.Root, null, /* @__PURE__ */ React.createElement("div", {
177
+ role: "none",
178
+ className: "flex flex-col gap-1"
179
+ }, /* @__PURE__ */ React.createElement(Input.Label, null, t("function url label")), /* @__PURE__ */ React.createElement("div", {
180
+ role: "none",
181
+ className: "flex gap-1"
182
+ }, /* @__PURE__ */ React.createElement(Input.TextInput, {
183
+ disabled: true,
184
+ value: functionUrl,
185
+ onChange: (event) => {
186
+ Obj.change(fn, (f) => {
187
+ f.name = event.target.value;
188
+ });
189
+ }
190
+ }), /* @__PURE__ */ React.createElement(Clipboard.IconButton, {
191
+ value: functionUrl
192
+ })))), /* @__PURE__ */ React.createElement(Input.Root, null, /* @__PURE__ */ React.createElement("div", {
193
+ role: "none",
194
+ className: "flex flex-col gap-1"
195
+ }, /* @__PURE__ */ React.createElement(Input.Label, null, t("function binding label")), /* @__PURE__ */ React.createElement(Input.TextInput, {
196
+ placeholder: t("function binding placeholder"),
197
+ value: binding,
198
+ onChange: handleBindingChange,
199
+ onBlur: handleBindingBlur
200
+ }))));
201
+ };
202
+ var Publishing = ({ object }) => {
203
+ const { t } = useTranslation(meta.id);
204
+ const { invokePromise } = useOperationInvoker();
205
+ const db = Obj.getDatabase(object);
206
+ const [githubToken] = useQuery(db, Filter.type(AccessToken.AccessToken, {
207
+ source: "github.com"
208
+ }));
209
+ const gistKey = Obj.getMeta(object).keys.find(({ source }) => source === "github.com");
210
+ const [gistUrl, setGistUrl] = useState();
211
+ useAsyncEffect(async () => {
212
+ const token = githubToken?.token;
213
+ const gistId = gistKey?.id;
214
+ if (!token || !gistId) {
215
+ setGistUrl(void 0);
216
+ return;
217
+ }
218
+ try {
219
+ const octokit = new Octokit({
220
+ auth: githubToken.token
221
+ });
222
+ const response = await octokit.request("GET /gists/{gist_id}", {
223
+ gist_id: gistId
224
+ });
225
+ setGistUrl(response.data.html_url);
226
+ } catch (err) {
227
+ log.catch(err, void 0, {
228
+ F: __dxlog_file,
229
+ L: 239,
230
+ S: void 0,
231
+ C: (f, a) => f(...a)
232
+ });
233
+ setGistUrl(void 0);
234
+ }
235
+ }, [
236
+ githubToken,
237
+ gistKey
238
+ ]);
239
+ const handleOpenTokenManager = useCallback(() => invokePromise(SettingsOperation.Open, {
240
+ plugin: "dxos.org/plugin/token-manager"
241
+ }), [
242
+ invokePromise
243
+ ]);
244
+ const [publishing, setPublishing] = useState(false);
245
+ const handlePublish = useCallback(async () => {
246
+ setPublishing(true);
247
+ const octokit = new Octokit({
248
+ auth: githubToken.token
249
+ });
250
+ const source = await object.source.load();
251
+ const filename = object.name ? kebabize(object.name) : "composer-script";
252
+ const files = {
253
+ [`${filename}.ts`]: {
254
+ content: source.content
255
+ }
256
+ };
257
+ try {
258
+ const meta2 = Obj.getMeta(object);
259
+ const githubKey = meta2.keys.find(({ source: source2 }) => source2 === "github.com");
260
+ const gistId = githubKey?.id;
261
+ if (gistId) {
262
+ await octokit.request("PATCH /gists/{gist_id}", {
263
+ gist_id: gistId,
264
+ files
265
+ });
266
+ } else {
267
+ const response = await octokit.request("POST /gists", {
268
+ public: true,
269
+ files
270
+ });
271
+ const gistId2 = response.data.id;
272
+ if (gistId2) {
273
+ Obj.change(object, (obj) => {
274
+ Obj.getMeta(obj).keys.push({
275
+ source: "github.com",
276
+ id: gistId2
277
+ });
278
+ });
279
+ }
280
+ }
281
+ } finally {
282
+ setPublishing(false);
283
+ }
284
+ }, [
285
+ object,
286
+ githubToken
287
+ ]);
288
+ return /* @__PURE__ */ React.createElement("div", {
289
+ className: "flex flex-col gap-4 mlb-cardSpacingBlock"
290
+ }, /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("h2", null, t("script publish settings label")), /* @__PURE__ */ React.createElement("p", {
291
+ className: "text-description text-sm"
292
+ }, t("script publish settings description"))), !githubToken && /* @__PURE__ */ React.createElement("div", {
293
+ className: "flex flex-col gap-2"
294
+ }, /* @__PURE__ */ React.createElement("span", null, t("no github token label")), /* @__PURE__ */ React.createElement(Button, {
295
+ onClick: handleOpenTokenManager
296
+ }, t("open token manager label"))), githubToken && /* @__PURE__ */ React.createElement("div", {
297
+ className: "flex justify-end gap-2"
298
+ }, gistUrl && /* @__PURE__ */ React.createElement(Clipboard.IconButton, {
299
+ value: gistUrl
300
+ }), /* @__PURE__ */ React.createElement(Button, {
301
+ disabled: publishing,
302
+ onClick: handlePublish
303
+ }, t(publishing ? "publishing label" : "publish label"))));
304
+ };
305
+
306
+ // src/components/Settings/ScriptPluginSettings.tsx
307
+ import React2 from "react";
308
+ import { useClient as useClient2 } from "@dxos/react-client";
309
+ import { Button as Button2, Select, useTranslation as useTranslation2 } from "@dxos/react-ui";
310
+ import { ControlGroup, ControlItemInput, ControlPage, ControlSection } from "@dxos/react-ui-form";
311
+ import { EditorInputModes } from "@dxos/ui-editor";
312
+ var ScriptPluginSettings = ({ settings, onSettingsChange }) => {
313
+ const { t } = useTranslation2(meta.id);
314
+ const client = useClient2();
315
+ const handleAuthenticate = async () => {
316
+ const { identityKey } = client.halo.identity.get();
317
+ await client.halo.writeCredentials([
318
+ getAccessCredential(identityKey)
319
+ ]);
320
+ };
321
+ return /* @__PURE__ */ React2.createElement(ControlPage, null, /* @__PURE__ */ React2.createElement(ControlSection, {
322
+ title: t("settings title", {
323
+ ns: meta.id
324
+ })
325
+ }, /* @__PURE__ */ React2.createElement(ControlGroup, null, /* @__PURE__ */ React2.createElement(ControlItemInput, {
326
+ title: t("authenticate action label")
327
+ }, /* @__PURE__ */ React2.createElement(Button2, {
328
+ onClick: handleAuthenticate
329
+ }, t("authenticate button label"))), /* @__PURE__ */ React2.createElement(ControlItemInput, {
330
+ title: t("editor input mode label")
331
+ }, /* @__PURE__ */ React2.createElement(Select.Root, {
332
+ value: settings.editorInputMode ?? "default",
333
+ onValueChange: (value) => {
334
+ onSettingsChange((s) => ({
335
+ ...s,
336
+ editorInputMode: value
337
+ }));
338
+ }
339
+ }, /* @__PURE__ */ React2.createElement(Select.TriggerButton, {
340
+ placeholder: t("select editor input mode placeholder")
341
+ }), /* @__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, {
342
+ key: mode,
343
+ value: mode
344
+ }, t(`settings editor input mode ${mode} label`)))), /* @__PURE__ */ React2.createElement(Select.Arrow, null))))))));
345
+ };
346
+
347
+ // src/components/TestPanel/TestPanel.tsx
348
+ import React3, { forwardRef, useEffect, useRef, useState as useState2 } from "react";
349
+ import { log as log2 } from "@dxos/log";
350
+ import { Avatar, Icon, Input as Input2, Toolbar, useTranslation as useTranslation3 } from "@dxos/react-ui";
351
+ import { SyntaxHighlighter } from "@dxos/react-ui-syntax-highlighter";
352
+ import { errorText, mx } from "@dxos/ui-theme";
353
+ var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-script/src/components/TestPanel/TestPanel.tsx";
354
+ var TestPanel = ({ classNames, functionUrl }) => {
355
+ const { t } = useTranslation3(meta.id);
356
+ const inputRef = useRef(null);
357
+ const [input, setInput] = useState2("");
358
+ const [result, setResult] = useState2("");
359
+ const [state, setState] = useState2(null);
360
+ const [history, setHistory] = useState2([]);
361
+ const scrollerRef = useRef(null);
362
+ const handleScroll = () => {
363
+ if (scrollerRef.current) {
364
+ scrollerRef.current.scrollTop = scrollerRef.current.scrollHeight;
365
+ }
366
+ };
367
+ const controller = useRef(null);
368
+ useEffect(() => {
369
+ return () => {
370
+ handleStop();
371
+ };
372
+ }, []);
373
+ const handleStop = () => {
374
+ controller.current?.abort("stop");
375
+ controller.current = null;
376
+ };
377
+ const handleClear = () => {
378
+ handleStop();
379
+ setInput("");
380
+ setResult("");
381
+ setHistory([]);
382
+ inputRef.current?.focus();
383
+ };
384
+ const handleResponse = ({ text, data, error } = {}) => {
385
+ controller.current = null;
386
+ setHistory((history2) => [
387
+ ...history2,
388
+ {
389
+ type: "response",
390
+ text,
391
+ data,
392
+ error
393
+ }
394
+ ]);
395
+ setResult("");
396
+ setState(null);
397
+ handleScroll();
398
+ };
399
+ const handleRequest = async (input2) => {
400
+ try {
401
+ setState("pending");
402
+ let data = null;
403
+ if (input2.charAt(0) === "{") {
404
+ try {
405
+ const validJsonString = input2.replace(/'/g, '"').replace(/([{,]\s*)([a-zA-Z0-9_]+)(\s*:)/g, '$1"$2"$3');
406
+ data = JSON.parse(validJsonString);
407
+ input2 = JSON.stringify(data, null, 2);
408
+ } catch (err) {
409
+ inputRef.current?.focus();
410
+ return;
411
+ }
412
+ }
413
+ setInput("");
414
+ setResult("");
415
+ setHistory((history2) => [
416
+ ...history2,
417
+ {
418
+ type: "request",
419
+ text: input2
420
+ }
421
+ ]);
422
+ setTimeout(() => {
423
+ handleScroll();
424
+ });
425
+ controller.current = new AbortController();
426
+ const response = await fetch(functionUrl, {
427
+ signal: controller.current.signal,
428
+ method: "POST",
429
+ body: input2,
430
+ headers: {
431
+ "Content-Type": data ? "application/json" : "text/plain"
432
+ }
433
+ });
434
+ if (!response.ok) {
435
+ const text2 = await response.text();
436
+ handleResponse({
437
+ error: new Error(text2 || response.statusText || String(response.status))
438
+ });
439
+ return;
440
+ }
441
+ const contentType = response.headers.get("content-type");
442
+ if (contentType === "application/json") {
443
+ const data2 = await response.json();
444
+ handleResponse({
445
+ data: data2
446
+ });
447
+ return;
448
+ }
449
+ setState("responding");
450
+ let text = "";
451
+ const reader = response.body.getReader();
452
+ const pump = async ({ done, value }) => {
453
+ text = text + new TextDecoder().decode(value);
454
+ if (!controller.current || done) {
455
+ handleResponse({
456
+ text
457
+ });
458
+ return;
459
+ }
460
+ setResult(text);
461
+ setTimeout(() => {
462
+ handleScroll();
463
+ });
464
+ return reader.read().then(pump);
465
+ };
466
+ void reader.read().then(pump).catch((err) => {
467
+ if (err.name !== "AbortError") {
468
+ log2.catch(err, void 0, {
469
+ F: __dxlog_file2,
470
+ L: 162,
471
+ S: void 0,
472
+ C: (f, a) => f(...a)
473
+ });
474
+ }
475
+ });
476
+ } catch (err) {
477
+ if (err !== "stop") {
478
+ const error = err instanceof Error ? err : new Error(err);
479
+ handleResponse({
480
+ error
481
+ });
482
+ log2.catch(err, void 0, {
483
+ F: __dxlog_file2,
484
+ L: 169,
485
+ S: void 0,
486
+ C: (f, a) => f(...a)
487
+ });
488
+ } else {
489
+ handleResponse();
490
+ }
491
+ }
492
+ };
493
+ return /* @__PURE__ */ React3.createElement("div", {
494
+ className: mx("flex flex-col bs-full overflow-hidden", classNames)
495
+ }, /* @__PURE__ */ React3.createElement(MessageThread, {
496
+ ref: scrollerRef,
497
+ state,
498
+ result,
499
+ history
500
+ }), /* @__PURE__ */ React3.createElement(Toolbar.Root, null, /* @__PURE__ */ React3.createElement(Input2.Root, null, /* @__PURE__ */ React3.createElement(Input2.TextInput, {
501
+ ref: inputRef,
502
+ autoFocus: true,
503
+ placeholder: t("function request placeholder"),
504
+ value: input,
505
+ onChange: (ev) => setInput(ev.target.value),
506
+ onKeyDown: (ev) => ev.key === "Enter" && handleRequest(input)
507
+ })), /* @__PURE__ */ React3.createElement(Toolbar.IconButton, {
508
+ icon: "ph--play--regular",
509
+ size: 4,
510
+ label: "Execute",
511
+ iconOnly: true,
512
+ onClick: () => handleRequest(input)
513
+ }), /* @__PURE__ */ React3.createElement(Toolbar.IconButton, {
514
+ icon: state ? "ph--stop--regular" : "ph--trash--regular",
515
+ size: 4,
516
+ label: state ? "Stop" : "Clear",
517
+ iconOnly: true,
518
+ onClick: () => state ? handleStop() : handleClear()
519
+ })));
520
+ };
521
+ var MessageThread = /* @__PURE__ */ forwardRef(({ state, history, result }, forwardedRef) => {
522
+ return /* @__PURE__ */ React3.createElement("div", {
523
+ ref: forwardedRef,
524
+ className: "flex flex-col gap-6 bs-full p-2 overflow-x-hidden overflow-y-auto"
525
+ }, history.map((message, i) => /* @__PURE__ */ React3.createElement("div", {
526
+ key: i,
527
+ className: "grid grid-cols-[2rem_1fr_2rem]"
528
+ }, /* @__PURE__ */ React3.createElement("div", {
529
+ className: "p-1"
530
+ }, message.type === "response" && /* @__PURE__ */ React3.createElement(RobotAvatar, null)), /* @__PURE__ */ React3.createElement("div", {
531
+ className: "overflow-auto"
532
+ }, /* @__PURE__ */ React3.createElement(MessageItem, {
533
+ message
534
+ })))), result?.length > 0 && /* @__PURE__ */ React3.createElement("div", {
535
+ className: "grid grid-cols-[2rem_1fr_2rem]"
536
+ }, /* @__PURE__ */ React3.createElement("div", {
537
+ className: "p-1"
538
+ }, state === "pending" && /* @__PURE__ */ React3.createElement(Icon, {
539
+ icon: "ph--spinner--regular",
540
+ size: 6,
541
+ classNames: "animate-spin"
542
+ }) || /* @__PURE__ */ React3.createElement(Icon, {
543
+ icon: "ph--robot--regular",
544
+ size: 6,
545
+ classNames: "animate-[pulse_1s_ease-in-out_infinite]"
546
+ })), /* @__PURE__ */ React3.createElement("div", {
547
+ className: "overflow-auto"
548
+ }, /* @__PURE__ */ React3.createElement(MessageItem, {
549
+ message: {
550
+ type: "response",
551
+ text: result
552
+ }
553
+ }))));
554
+ });
555
+ var MessageItem = ({ classNames, message }) => {
556
+ const { type, text, data, error } = message;
557
+ const wrapper = "p-1 pli-2 rounded-md bg-hoverSurface overflow-auto";
558
+ return /* @__PURE__ */ React3.createElement("div", {
559
+ className: mx("flex", type === "request" ? "ml-[1rem] justify-end" : "mr-[1rem]", classNames)
560
+ }, error && /* @__PURE__ */ React3.createElement("div", {
561
+ className: mx(wrapper, "whitespace-pre", errorText)
562
+ }, String(error)), text !== void 0 && /* @__PURE__ */ React3.createElement("div", {
563
+ className: mx(wrapper, type === "request" && "bg-primary-400 dark:bg-primary-600")
564
+ }, text || "\xD8"), data && /* @__PURE__ */ React3.createElement(SyntaxHighlighter, {
565
+ language: "json",
566
+ className: mx(wrapper, "text-xs")
567
+ }, JSON.stringify(data, null, 2)));
568
+ };
569
+ var RobotAvatar = () => /* @__PURE__ */ React3.createElement(Avatar.Root, null, /* @__PURE__ */ React3.createElement(Avatar.Content, {
570
+ size: 6,
571
+ variant: "circle",
572
+ icon: "ph--robot--regular"
573
+ }));
574
+
575
+ // src/components/TestPanel/TestContainer.tsx
576
+ import React4 from "react";
577
+ import { Layout } from "@dxos/react-ui-mosaic";
578
+ var TestContainer = ({ role, script }) => {
579
+ const state = useToolbarState();
580
+ useDeployState({
581
+ state,
582
+ script
583
+ });
584
+ return /* @__PURE__ */ React4.createElement(Layout.Main, {
585
+ role
586
+ }, /* @__PURE__ */ React4.createElement(TestPanel, {
587
+ functionUrl: state.value.functionUrl
588
+ }));
589
+ };
590
+
591
+ // src/components/index.ts
592
+ import { lazy } from "react";
593
+ var ScriptContainer = lazy(() => import("./ScriptContainer-K7JCEU5Z.mjs"));
594
+ var DeploymentDialog = lazy(() => import("./DeploymentDialog-OGBJPVIX.mjs"));
595
+ var NotebookContainer = lazy(() => import("./NotebookContainer-IUAYVJSD.mjs"));
596
+
597
+ export {
598
+ ScriptObjectSettings,
599
+ ScriptProperties,
600
+ ScriptPluginSettings,
601
+ TestPanel,
602
+ TestContainer,
603
+ ScriptContainer,
604
+ DeploymentDialog,
605
+ NotebookContainer
606
+ };
607
+ //# sourceMappingURL=chunk-4QNZMXW6.mjs.map